@scion/workbench 17.0.0-beta.9 → 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 (328) 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/activation-instant.provider.mjs +3 -3
  7. package/esm2022/lib/common/asserts.util.mjs +1 -1
  8. package/esm2022/lib/common/class-list.mjs +67 -29
  9. package/esm2022/lib/common/coerce-observable.pipe.mjs +3 -3
  10. package/esm2022/lib/common/dom.util.mjs +1 -1
  11. package/esm2022/lib/common/grid-element-if-visible.pipe.mjs +4 -4
  12. package/esm2022/lib/common/instanceof.pipe.mjs +3 -3
  13. package/esm2022/lib/common/map-coerce.pipe.mjs +3 -3
  14. package/esm2022/lib/common/math.util.mjs +16 -0
  15. package/esm2022/lib/common/null-if-empty.pipe.mjs +4 -4
  16. package/esm2022/lib/common/objects.util.mjs +7 -1
  17. package/esm2022/lib/common/observables.mjs +1 -1
  18. package/esm2022/lib/common/operators.mjs +1 -12
  19. package/esm2022/lib/common/stringify-error.util.mjs +1 -1
  20. package/esm2022/lib/common/typeof.pipe.mjs +3 -3
  21. package/esm2022/lib/common/uid.util.mjs +22 -0
  22. package/esm2022/lib/common//311/265destroy-ref.mjs +1 -1
  23. package/esm2022/lib/content-projection/content-as-overlay.component.mjs +87 -30
  24. package/esm2022/lib/content-projection/workbench-element-references.mjs +32 -0
  25. package/esm2022/lib/dialog/dialog-footer/dialog-action-filter.pipe.mjs +3 -3
  26. package/esm2022/lib/dialog/dialog-footer/dialog-footer.component.mjs +3 -3
  27. package/esm2022/lib/dialog/dialog-footer/workbench-dialog-action.directive.mjs +3 -3
  28. package/esm2022/lib/dialog/dialog-footer/workbench-dialog-footer.directive.mjs +3 -3
  29. package/esm2022/lib/dialog/dialog-header/dialog-header.component.mjs +5 -10
  30. package/esm2022/lib/dialog/dialog-header/workbench-dialog-header.directive.mjs +3 -3
  31. package/esm2022/lib/dialog/movable.directive.mjs +6 -6
  32. package/esm2022/lib/dialog/resizable.directive.mjs +6 -6
  33. package/esm2022/lib/dialog/workbench-dialog.component.mjs +27 -25
  34. package/esm2022/lib/dialog/workbench-dialog.mjs +61 -1
  35. package/esm2022/lib/dialog/workbench-dialog.registry.mjs +4 -4
  36. package/esm2022/lib/dialog/workbench-dialog.service.mjs +3 -3
  37. package/esm2022/lib/dialog//311/265workbench-dialog.mjs +99 -61
  38. package/esm2022/lib/dialog//311/265workbench-dialog.service.mjs +28 -25
  39. package/esm2022/lib/executor/latest-task-executor.mjs +55 -0
  40. package/esm2022/lib/executor/single-task-executor.mjs +9 -19
  41. package/esm2022/lib/filter-field/filter-field.component.mjs +8 -8
  42. package/esm2022/lib/glass-pane/glass-pane.directive.mjs +4 -4
  43. package/esm2022/lib/layout/grid-element/grid-element.component.mjs +10 -20
  44. package/esm2022/lib/layout/main-area-layout/main-area-layout.component.mjs +19 -22
  45. package/esm2022/lib/layout/migration/model/workbench-layout-migration-v5.model.mjs +11 -0
  46. package/esm2022/lib/layout/migration/model/workbench-layout-migration-v6.model.mjs +11 -0
  47. package/esm2022/lib/layout/migration/workbench-layout-migration-v3.service.mjs +7 -7
  48. package/esm2022/lib/layout/migration/workbench-layout-migration-v4.service.mjs +4 -4
  49. package/esm2022/lib/layout/migration/workbench-layout-migration-v5.service.mjs +67 -0
  50. package/esm2022/lib/layout/migration/workbench-layout-migration-v6.service.mjs +59 -0
  51. package/esm2022/lib/layout/stringifier.mjs +70 -0
  52. package/esm2022/lib/layout/workbench-layout.component.mjs +19 -23
  53. package/esm2022/lib/layout/workbench-layout.factory.mjs +3 -3
  54. package/esm2022/lib/layout/workbench-layout.mjs +1 -1
  55. package/esm2022/lib/layout/workbench-layout.model.mjs +1 -1
  56. package/esm2022/lib/layout/workbench-layout.service.mjs +28 -26
  57. package/esm2022/lib/layout/workbench-layouts.util.mjs +1 -9
  58. package/esm2022/lib/layout/workench-layout-serializer.service.mjs +22 -32
  59. package/esm2022/lib/layout//311/265workbench-layout.factory.mjs +6 -5
  60. package/esm2022/lib/layout//311/265workbench-layout.mjs +77 -66
  61. package/esm2022/lib/logging/console-appender.service.mjs +4 -4
  62. package/esm2022/lib/logging/logger.mjs +3 -3
  63. package/esm2022/lib/logging/logging-support.mjs +7 -13
  64. package/esm2022/lib/logging/logging.model.mjs +3 -3
  65. package/esm2022/lib/logging//311/265logger.mjs +12 -12
  66. package/esm2022/lib/message-box/message-box-footer/message-box-footer.component.mjs +9 -8
  67. package/esm2022/lib/message-box/message-box-header/message-box-header.component.mjs +5 -5
  68. package/esm2022/lib/message-box/workbench-message-box.component.mjs +5 -5
  69. package/esm2022/lib/message-box/workbench-message-box.service.mjs +3 -3
  70. package/esm2022/lib/message-box//311/265workbench-message-box.service.mjs +6 -5
  71. package/esm2022/lib/microfrontend-platform/common/microfrontend.util.mjs +22 -6
  72. package/esm2022/lib/microfrontend-platform/initialization/microfrontend-platform-initializer.service.mjs +29 -22
  73. package/esm2022/lib/microfrontend-platform/initialization/ng-zone-observable-decorator.mjs +6 -6
  74. package/esm2022/lib/microfrontend-platform/initialization/workbench-host-manifest-interceptor.service.mjs +14 -4
  75. package/esm2022/lib/microfrontend-platform/manifest-object-cache.service.mjs +63 -0
  76. package/esm2022/lib/microfrontend-platform/microfrontend-dialog/microfrontend-dialog-capability-validator.interceptor.mjs +8 -7
  77. package/esm2022/lib/microfrontend-platform/microfrontend-dialog/microfrontend-dialog-intent-handler.interceptor.mjs +4 -4
  78. package/esm2022/lib/microfrontend-platform/microfrontend-dialog/microfrontend-dialog.component.mjs +8 -12
  79. package/esm2022/lib/microfrontend-platform/microfrontend-host-dialog/microfrontend-host-dialog.component.mjs +21 -12
  80. package/esm2022/lib/microfrontend-platform/microfrontend-host-message-box/microfrontend-host-message-box.component.mjs +10 -9
  81. package/esm2022/lib/microfrontend-platform/microfrontend-host-message-box/text-message/text-message.component.mjs +6 -6
  82. package/esm2022/lib/microfrontend-platform/microfrontend-host-popup/microfrontend-host-popup.component.mjs +17 -15
  83. package/esm2022/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box-capability-validator.interceptor.mjs +6 -5
  84. package/esm2022/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box-intent-handler.interceptor.mjs +4 -4
  85. package/esm2022/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box-legacy-intent-translator.interceptor.mjs +4 -4
  86. package/esm2022/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box.component.mjs +10 -15
  87. package/esm2022/lib/microfrontend-platform/microfrontend-notification/microfrontend-notification-intent-handler.service.mjs +3 -3
  88. package/esm2022/lib/microfrontend-platform/microfrontend-perspective/microfrontend-perspective-capability-validator.interceptor.mjs +39 -0
  89. package/esm2022/lib/microfrontend-platform/microfrontend-perspective/microfrontend-perspective-installer.service.mjs +120 -0
  90. package/esm2022/lib/microfrontend-platform/microfrontend-perspective/microfrontend-perspective-intent-handler.interceptor.mjs +55 -0
  91. package/esm2022/lib/microfrontend-platform/microfrontend-perspective/workbench-perspective-data.mjs +19 -0
  92. package/esm2022/lib/microfrontend-platform/microfrontend-platform-config-loader.mjs +3 -3
  93. package/esm2022/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup-capability-validator.interceptor.mjs +7 -6
  94. package/esm2022/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup-intent-handler.interceptor.mjs +13 -14
  95. package/esm2022/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup.component.mjs +14 -30
  96. package/esm2022/lib/microfrontend-platform/microfrontend-splash/microfrontend-splash.component.mjs +5 -5
  97. package/esm2022/lib/microfrontend-platform/microfrontend-view/microfrontend-view-command-handler.service.mjs +13 -29
  98. package/esm2022/lib/microfrontend-platform/microfrontend-view/microfrontend-view.component.mjs +92 -72
  99. package/esm2022/lib/microfrontend-platform/public_api.mjs +2 -1
  100. package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-capability-validator.interceptor.mjs +8 -7
  101. package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-intent-handler.interceptor.mjs +20 -18
  102. package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-routes.mjs +30 -8
  103. package/esm2022/lib/microfrontend-platform/stable-capability-id-assigner.interceptor.mjs +32 -0
  104. package/esm2022/lib/microfrontend-platform/workbench-microfrontend-support.mjs +29 -11
  105. package/esm2022/lib/migration/workbench-migrator.mjs +1 -1
  106. package/esm2022/lib/notification/notification-css-classes.pipe.mjs +3 -3
  107. package/esm2022/lib/notification/notification-list.component.mjs +6 -10
  108. package/esm2022/lib/notification/notification.component.mjs +6 -7
  109. package/esm2022/lib/notification/notification.service.mjs +8 -7
  110. package/esm2022/lib/notification/text-notification.component.mjs +3 -3
  111. package/esm2022/lib/notification//311/265notification.mjs +1 -1
  112. package/esm2022/lib/page-not-found/page-not-found.component.mjs +7 -9
  113. package/esm2022/lib/part/part-action-bar/part-action-bar.component.mjs +12 -20
  114. package/esm2022/lib/part/part-action-bar/part-action.directive.mjs +7 -7
  115. package/esm2022/lib/part/part-bar/part-bar.component.mjs +334 -265
  116. package/esm2022/lib/part/part-portal.pipe.mjs +10 -10
  117. package/esm2022/lib/part/part.component.mjs +34 -43
  118. package/esm2022/lib/part/view-context-menu/accelerator-format.pipe.mjs +4 -4
  119. package/esm2022/lib/part/view-context-menu/text.component.mjs +17 -13
  120. package/esm2022/lib/part/view-context-menu/view-menu.component.mjs +6 -8
  121. package/esm2022/lib/part/view-context-menu/view-menu.directive.mjs +5 -5
  122. package/esm2022/lib/part/view-context-menu/view-menu.service.mjs +50 -51
  123. package/esm2022/lib/part/view-list/view-list.component.mjs +42 -49
  124. package/esm2022/lib/part/view-list-button/view-list-button.component.mjs +23 -27
  125. package/esm2022/lib/part/view-list-item/view-list-item.component.mjs +16 -18
  126. package/esm2022/lib/part/view-tab/view-tab.component.mjs +100 -111
  127. package/esm2022/lib/part/view-tab-content/view-tab-content.component.mjs +5 -6
  128. package/esm2022/lib/part/view-tab-drag-image/view-tab-drag-image.component.mjs +17 -18
  129. package/esm2022/lib/part/workbench-part-action.registry.mjs +18 -42
  130. package/esm2022/lib/part/workbench-part.model.mjs +10 -1
  131. package/esm2022/lib/part/workbench-part.registry.mjs +11 -45
  132. package/esm2022/lib/part//311/265workbench-part.model.mjs +71 -55
  133. package/esm2022/lib/perspective/migration/workbench-perspective-migration-v2.service.mjs +4 -4
  134. package/esm2022/lib/perspective/workbench-grid-merger.service.mjs +6 -6
  135. package/esm2022/lib/perspective/workbench-perspective-storage.service.mjs +4 -4
  136. package/esm2022/lib/perspective/workbench-perspective-view-conflict-resolver.service.mjs +4 -4
  137. package/esm2022/lib/perspective/workbench-perspective.model.mjs +1 -1
  138. package/esm2022/lib/perspective/workbench-perspective.registry.mjs +11 -43
  139. package/esm2022/lib/perspective/workbench-perspective.service.mjs +73 -64
  140. package/esm2022/lib/perspective/workench-perspective-serializer.service.mjs +5 -5
  141. package/esm2022/lib/perspective//311/265workbench-perspective.model.mjs +62 -47
  142. package/esm2022/lib/popup/popup.component.mjs +6 -6
  143. package/esm2022/lib/popup/popup.config.mjs +27 -25
  144. package/esm2022/lib/popup/popup.service.mjs +171 -176
  145. package/esm2022/lib/portal/wb-component-portal.mjs +18 -17
  146. package/esm2022/lib/portal/workbench-portal-outlet.directive.mjs +4 -4
  147. package/esm2022/lib/public_api.mjs +1 -1
  148. package/esm2022/lib/registry/workbench-object-registry.mjs +38 -17
  149. package/esm2022/lib/routing/empty-outlet/empty-outlet.component.mjs +3 -3
  150. package/esm2022/lib/routing/public_api.mjs +2 -2
  151. package/esm2022/lib/routing/routing.model.mjs +1 -1
  152. package/esm2022/lib/routing/routing.util.mjs +215 -0
  153. package/esm2022/lib/routing/url-segment-matcher.mjs +1 -1
  154. package/esm2022/lib/routing/workbench-auxiliary-route-installer.service.mjs +110 -0
  155. package/esm2022/lib/routing/workbench-dialog-differ.mjs +6 -6
  156. package/esm2022/lib/routing/workbench-layout-differ.mjs +6 -13
  157. package/esm2022/lib/routing/workbench-message-box-differ.mjs +6 -6
  158. package/esm2022/lib/routing/workbench-navigational-states.mjs +2 -2
  159. package/esm2022/lib/routing/workbench-popup-differ.mjs +6 -6
  160. package/esm2022/lib/routing/workbench-route-guards.mjs +57 -0
  161. package/esm2022/lib/routing/workbench-router-link.directive.mjs +5 -5
  162. package/esm2022/lib/routing/workbench-router.service.mjs +3 -3
  163. package/esm2022/lib/routing/workbench-url-observer.service.mjs +143 -151
  164. package/esm2022/lib/routing/workbench-view-outlet-differ.mjs +58 -0
  165. package/esm2022/lib/routing//311/265location.mjs +3 -3
  166. package/esm2022/lib/routing//311/265workbench-router.service.mjs +121 -76
  167. package/esm2022/lib/startup/splash/splash.component.mjs +5 -5
  168. package/esm2022/lib/startup/workbench-initializer.mjs +1 -1
  169. package/esm2022/lib/startup/workbench-launcher.service.mjs +28 -16
  170. package/esm2022/lib/storage/workbench-storage.mjs +3 -3
  171. package/esm2022/lib/testing/workbench-testing.module.mjs +4 -4
  172. package/esm2022/lib/testing/workbench.provider.mjs +5 -5
  173. package/esm2022/lib/theme/workbench-theme-switcher.service.mjs +18 -22
  174. package/esm2022/lib/view/public_api.mjs +1 -2
  175. package/esm2022/lib/view/view-move-handler.service.mjs +73 -58
  176. package/esm2022/lib/view/view-portal.pipe.mjs +9 -9
  177. package/esm2022/lib/view/view.component.mjs +55 -43
  178. package/esm2022/lib/view/workbench-view.model.mjs +1 -1
  179. package/esm2022/lib/view/workbench-view.registry.mjs +11 -45
  180. package/esm2022/lib/view//311/265workbench-view.model.mjs +183 -153
  181. package/esm2022/lib/view-dnd/grid-drop-targets.util.mjs +2 -2
  182. package/esm2022/lib/view-dnd/requires-drop-zone.pipe.mjs +4 -4
  183. package/esm2022/lib/view-dnd/view-drag.service.mjs +89 -73
  184. package/esm2022/lib/view-dnd/view-drop-placeholder-renderer.service.mjs +9 -9
  185. package/esm2022/lib/view-dnd/view-drop-zone.directive.mjs +9 -9
  186. package/esm2022/lib/view-dnd/view-tab-drag-image-renderer.service.mjs +45 -58
  187. package/esm2022/lib/workbench-config.mjs +2 -2
  188. package/esm2022/lib/workbench-id.mjs +3 -3
  189. package/esm2022/lib/workbench.component.mjs +67 -55
  190. package/esm2022/lib/workbench.constants.mjs +1 -5
  191. package/esm2022/lib/workbench.model.mjs +1 -1
  192. package/esm2022/lib/workbench.module.mjs +4 -4
  193. package/esm2022/lib/workbench.provider.mjs +3 -9
  194. package/esm2022/lib/workbench.service.mjs +4 -4
  195. package/esm2022/lib//311/265workbench.service.mjs +40 -44
  196. package/fesm2022/scion-workbench.mjs +4348 -3628
  197. package/fesm2022/scion-workbench.mjs.map +1 -1
  198. package/lib/common/class-list.d.ts +35 -22
  199. package/lib/common/math.util.d.ts +7 -0
  200. package/lib/common/objects.util.d.ts +6 -2
  201. package/lib/common/operators.d.ts +1 -6
  202. package/lib/common/uid.util.d.ts +9 -0
  203. package/lib/content-projection/content-as-overlay.component.d.ts +39 -22
  204. package/lib/content-projection/workbench-element-references.d.ts +13 -0
  205. package/lib/dialog/workbench-dialog.component.d.ts +3 -2
  206. package/lib/dialog/workbench-dialog.d.ts +57 -13
  207. package/lib/dialog//311/265workbench-dialog.d.ts +38 -24
  208. package/lib/dialog//311/265workbench-dialog.service.d.ts +10 -11
  209. package/lib/executor/latest-task-executor.d.ts +26 -0
  210. package/lib/executor/single-task-executor.d.ts +5 -8
  211. package/lib/filter-field/filter-field.component.d.ts +1 -1
  212. package/lib/layout/grid-element/grid-element.component.d.ts +1 -8
  213. package/lib/layout/main-area-layout/main-area-layout.component.d.ts +0 -4
  214. package/lib/layout/migration/model/workbench-layout-migration-v5.model.d.ts +36 -0
  215. package/lib/layout/migration/model/workbench-layout-migration-v6.model.d.ts +35 -0
  216. package/lib/layout/migration/{workbench-layout-migration-v2.service.d.ts → workbench-layout-migration-v5.service.d.ts} +4 -5
  217. package/lib/layout/migration/workbench-layout-migration-v6.service.d.ts +12 -0
  218. package/lib/layout/stringifier.d.ts +26 -0
  219. package/lib/layout/workbench-layout.component.d.ts +4 -5
  220. package/lib/layout/workbench-layout.d.ts +9 -6
  221. package/lib/layout/workbench-layout.model.d.ts +4 -3
  222. package/lib/layout/workbench-layout.service.d.ts +14 -16
  223. package/lib/layout/workbench-layouts.util.d.ts +0 -6
  224. package/lib/layout/workench-layout-serializer.service.d.ts +13 -16
  225. package/lib/layout//311/265workbench-layout.d.ts +18 -19
  226. package/lib/layout//311/265workbench-layout.factory.d.ts +3 -2
  227. package/lib/logging//311/265logger.d.ts +2 -3
  228. package/lib/microfrontend-platform/common/microfrontend.util.d.ts +5 -1
  229. package/lib/microfrontend-platform/initialization/microfrontend-platform-initializer.service.d.ts +7 -3
  230. package/lib/microfrontend-platform/manifest-object-cache.service.d.ts +33 -0
  231. package/lib/microfrontend-platform/microfrontend-host-dialog/microfrontend-host-dialog.component.d.ts +3 -6
  232. package/lib/microfrontend-platform/microfrontend-host-message-box/microfrontend-host-message-box.component.d.ts +2 -1
  233. package/lib/microfrontend-platform/microfrontend-host-message-box/text-message/text-message.component.d.ts +1 -1
  234. package/lib/microfrontend-platform/microfrontend-host-popup/microfrontend-host-popup.component.d.ts +2 -1
  235. package/lib/microfrontend-platform/microfrontend-perspective/microfrontend-perspective-capability-validator.interceptor.d.ts +10 -0
  236. package/lib/microfrontend-platform/microfrontend-perspective/microfrontend-perspective-installer.service.d.ts +24 -0
  237. package/lib/microfrontend-platform/microfrontend-perspective/microfrontend-perspective-intent-handler.interceptor.d.ts +20 -0
  238. package/lib/microfrontend-platform/microfrontend-perspective/workbench-perspective-data.d.ts +9 -0
  239. package/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup-intent-handler.interceptor.d.ts +4 -8
  240. package/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup.component.d.ts +0 -4
  241. package/lib/microfrontend-platform/microfrontend-view/microfrontend-view-command-handler.service.d.ts +5 -12
  242. package/lib/microfrontend-platform/microfrontend-view/microfrontend-view.component.d.ts +23 -33
  243. package/lib/microfrontend-platform/public_api.d.ts +1 -0
  244. package/lib/microfrontend-platform/routing/microfrontend-view-capability-validator.interceptor.d.ts +1 -1
  245. package/lib/microfrontend-platform/routing/microfrontend-view-intent-handler.interceptor.d.ts +3 -7
  246. package/lib/microfrontend-platform/routing/microfrontend-view-routes.d.ts +9 -2
  247. package/lib/microfrontend-platform/stable-capability-id-assigner.interceptor.d.ts +11 -0
  248. package/lib/notification/notification-list.component.d.ts +0 -2
  249. package/lib/page-not-found/page-not-found.component.d.ts +1 -0
  250. package/lib/part/part-action-bar/part-action-bar.component.d.ts +3 -4
  251. package/lib/part/part-action-bar/part-action.directive.d.ts +2 -2
  252. package/lib/part/part-bar/part-bar.component.d.ts +73 -63
  253. package/lib/part/part-portal.pipe.d.ts +3 -5
  254. package/lib/part/part.component.d.ts +9 -12
  255. package/lib/part/view-context-menu/text.component.d.ts +3 -4
  256. package/lib/part/view-context-menu/view-menu.directive.d.ts +1 -1
  257. package/lib/part/view-context-menu/view-menu.service.d.ts +13 -17
  258. package/lib/part/view-list/view-list.component.d.ts +8 -21
  259. package/lib/part/view-list-button/view-list-button.component.d.ts +8 -11
  260. package/lib/part/view-list-item/view-list-item.component.d.ts +3 -7
  261. package/lib/part/view-tab/view-tab.component.d.ts +19 -29
  262. package/lib/part/view-tab-drag-image/view-tab-drag-image.component.d.ts +4 -4
  263. package/lib/part/workbench-part-action.registry.d.ts +3 -23
  264. package/lib/part/workbench-part.model.d.ts +8 -27
  265. package/lib/part/workbench-part.registry.d.ts +3 -26
  266. package/lib/part//311/265workbench-part.model.d.ts +23 -17
  267. package/lib/perspective/workbench-perspective.model.d.ts +18 -25
  268. package/lib/perspective/workbench-perspective.registry.d.ts +3 -26
  269. package/lib/perspective/workbench-perspective.service.d.ts +16 -14
  270. package/lib/perspective/workench-perspective-serializer.service.d.ts +1 -1
  271. package/lib/perspective//311/265workbench-perspective.model.d.ts +30 -21
  272. package/lib/popup/popup.config.d.ts +11 -10
  273. package/lib/popup/popup.service.d.ts +15 -28
  274. package/lib/portal/wb-component-portal.d.ts +21 -5
  275. package/lib/public_api.d.ts +1 -1
  276. package/lib/registry/workbench-object-registry.d.ts +10 -6
  277. package/lib/routing/public_api.d.ts +2 -2
  278. package/lib/routing/routing.model.d.ts +25 -13
  279. package/lib/routing/{router.util.d.ts → routing.util.d.ts} +28 -1
  280. package/lib/routing/{workbench-auxiliary-routes-registrator.service.d.ts → workbench-auxiliary-route-installer.service.d.ts} +10 -3
  281. package/lib/routing/workbench-layout-differ.d.ts +1 -2
  282. package/lib/routing/workbench-navigational-states.d.ts +8 -4
  283. package/lib/{view/workbench-view-route-guards.d.ts → routing/workbench-route-guards.d.ts} +8 -2
  284. package/lib/routing/workbench-url-observer.service.d.ts +31 -55
  285. package/lib/routing/workbench-view-outlet-differ.d.ts +32 -0
  286. package/lib/routing//311/265workbench-router.service.d.ts +22 -18
  287. package/lib/startup/workbench-launcher.service.d.ts +4 -5
  288. package/lib/testing/workbench.provider.d.ts +3 -1
  289. package/lib/theme/workbench-theme-switcher.service.d.ts +4 -6
  290. package/lib/view/public_api.d.ts +0 -1
  291. package/lib/view/view-move-handler.service.d.ts +16 -14
  292. package/lib/view/view-portal.pipe.d.ts +1 -3
  293. package/lib/view/view.component.d.ts +21 -12
  294. package/lib/view/workbench-view.model.d.ts +88 -36
  295. package/lib/view/workbench-view.registry.d.ts +3 -27
  296. package/lib/view//311/265workbench-view.model.d.ts +62 -71
  297. package/lib/view-dnd/view-drag.service.d.ts +79 -49
  298. package/lib/view-dnd/view-drop-placeholder-renderer.service.d.ts +1 -1
  299. package/lib/view-dnd/view-tab-drag-image-renderer.service.d.ts +12 -36
  300. package/lib/workbench-config.d.ts +19 -7
  301. package/lib/workbench.component.d.ts +16 -30
  302. package/lib/workbench.constants.d.ts +0 -5
  303. package/lib/workbench.model.d.ts +31 -3
  304. package/lib/workbench.service.d.ts +58 -56
  305. package/lib//311/265workbench.service.d.ts +18 -31
  306. package/package.json +12 -12
  307. package/esm2022/lib/common/filter-by-predicate.pipe.mjs +0 -27
  308. package/esm2022/lib/common/filter-by-text.pipe.mjs +0 -39
  309. package/esm2022/lib/common/uuid.util.mjs +0 -17
  310. package/esm2022/lib/content-projection/content-projection.directive.mjs +0 -101
  311. package/esm2022/lib/content-projection/view-container.reference.mjs +0 -68
  312. package/esm2022/lib/layout/migration/model/workbench-layout-migration-v1.model.mjs +0 -11
  313. package/esm2022/lib/layout/migration/workbench-layout-migration-v2.service.mjs +0 -59
  314. package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-capability-id-assigner.interceptor.mjs +0 -41
  315. package/esm2022/lib/page-not-found/format-url.pipe.mjs +0 -26
  316. package/esm2022/lib/part/part-action-bar/part-action-filter.pipe.mjs +0 -26
  317. package/esm2022/lib/routing/router.util.mjs +0 -126
  318. package/esm2022/lib/routing/workbench-auxiliary-routes-registrator.service.mjs +0 -94
  319. package/esm2022/lib/view/workbench-view-route-guards.mjs +0 -47
  320. package/lib/common/filter-by-predicate.pipe.d.ts +0 -10
  321. package/lib/common/filter-by-text.pipe.d.ts +0 -12
  322. package/lib/common/uuid.util.d.ts +0 -8
  323. package/lib/content-projection/content-projection.directive.d.ts +0 -30
  324. package/lib/content-projection/view-container.reference.d.ts +0 -42
  325. package/lib/layout/migration/model/workbench-layout-migration-v1.model.d.ts +0 -16
  326. package/lib/microfrontend-platform/routing/microfrontend-view-capability-id-assigner.interceptor.d.ts +0 -10
  327. package/lib/page-not-found/format-url.pipe.d.ts +0 -11
  328. package/lib/part/part-action-bar/part-action-filter.pipe.d.ts +0 -11
@@ -7,53 +7,39 @@
7
7
  *
8
8
  * SPDX-License-Identifier: EPL-2.0
9
9
  */
10
- import { Component, ElementRef, inject, ViewChild, ViewContainerRef } from '@angular/core';
11
- import { IFRAME_HOST, VIEW_DROP_PLACEHOLDER_HOST, WORKBENCH_ELEMENT_REF } from './content-projection/view-container.reference';
10
+ import { ChangeDetectorRef, Component, DestroyRef, effect, ElementRef, inject, viewChild, ViewContainerRef } from '@angular/core';
11
+ import { IFRAME_OVERLAY_HOST, VIEW_DROP_ZONE_OVERLAY_HOST, WORKBENCH_ELEMENT_REF } from './content-projection/workbench-element-references';
12
+ import { WorkbenchLauncher, WorkbenchStartup } from './startup/workbench-launcher.service';
12
13
  import { WorkbenchConfig } from './workbench-config';
13
14
  import { SplashComponent } from './startup/splash/splash.component';
14
- import { LoggerNames } from './logging';
15
+ import { Logger, LoggerNames } from './logging';
15
16
  import { AsyncPipe, DOCUMENT, NgComponentOutlet } from '@angular/common';
16
17
  import { WorkbenchLayoutComponent } from './layout/workbench-layout.component';
17
18
  import { NotificationListComponent } from './notification/notification-list.component';
18
- import { combineLatest, lastValueFrom } from 'rxjs';
19
- import { first, map } from 'rxjs/operators';
20
19
  import { GLASS_PANE_BLOCKABLE, GLASS_PANE_OPTIONS, GLASS_PANE_TARGET_ELEMENT, GlassPaneDirective } from './glass-pane/glass-pane.directive';
21
20
  import { WorkbenchDialogRegistry } from './dialog/workbench-dialog.registry';
22
- import { WORKBENCH_AUXILIARY_ROUTE_OUTLET } from './routing/workbench-auxiliary-routes-registrator.service';
21
+ import { WORKBENCH_AUXILIARY_ROUTE_OUTLET } from './routing/workbench-auxiliary-route-installer.service';
22
+ import { NavigationCancel, NavigationEnd, NavigationError, NavigationStart, Router } from '@angular/router';
23
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
24
+ import { Routing } from './routing/routing.util';
23
25
  import * as i0 from "@angular/core";
24
- import * as i1 from "./workbench-config";
25
- import * as i2 from "./startup/workbench-launcher.service";
26
- import * as i3 from "./logging";
27
26
  /**
28
27
  * Main entry point component of the SCION Workbench.
29
28
  */
30
29
  export class WorkbenchComponent {
31
- set injectIframeHost(vcr) {
32
- vcr && this.viewContainerReferences.iframeHost.set(vcr);
33
- }
34
- set injectViewDropPlaceholderHost(vcr) {
35
- vcr && this.viewContainerReferences.viewDropPlaceholderHost.set(vcr);
36
- }
37
- constructor(workbenchConfig, _workbenchLauncher, _logger, workbenchStartup) {
38
- this._workbenchLauncher = _workbenchLauncher;
39
- this._logger = _logger;
40
- this.workbenchStartup = workbenchStartup;
41
- /**
42
- * View containers required for the workbench to attach elements.
43
- */
44
- this.viewContainerReferences = {
45
- workbenchElement: inject(WORKBENCH_ELEMENT_REF),
46
- iframeHost: inject(IFRAME_HOST),
47
- viewDropPlaceholderHost: inject(VIEW_DROP_PLACEHOLDER_HOST),
48
- };
30
+ constructor() {
31
+ this._workbenchLauncher = inject(WorkbenchLauncher);
32
+ this._logger = inject(Logger);
33
+ this._iframeOverlayHost = viewChild('iframe_overlay_host', { read: ViewContainerRef });
34
+ this._viewDropZoneOverlayHost = viewChild('view_drop_zone_overlay_host', { read: ViewContainerRef });
35
+ /** Splash to display during workbench startup. */
36
+ this.splash = inject(WorkbenchConfig).startup?.splash ?? SplashComponent;
37
+ this.workbenchStartup = inject(WorkbenchStartup);
49
38
  this._logger.debug(() => 'Constructing WorkbenchComponent.', LoggerNames.LIFECYCLE);
50
- if (inject(WORKBENCH_AUXILIARY_ROUTE_OUTLET, { optional: true })) {
51
- throw Error(`[WorkbenchError] Workbench must not be loaded into a view. Did you navigate to the empty path route? Make sure that the application's root route is guarded with 'canMatchWorkbenchView(false)'. Example: "{path: '', canMatch: [canMatchWorkbenchView(false), ...]}"`);
52
- }
53
- this.viewContainerReferences.workbenchElement.set(inject(ViewContainerRef));
54
- this.splash = workbenchConfig?.startup?.splash || SplashComponent;
55
- this.whenViewContainersInjected = this.createHostViewContainersInjectedPromise();
39
+ this.throwOnCircularLoad();
56
40
  this.startWorkbench();
41
+ this.disableChangeDetectionDuringNavigation();
42
+ this.provideWorkbenchElementReferences();
57
43
  }
58
44
  /**
59
45
  * Starts the SCION Workbench. Has no effect if already started, e.g., in an app initializer or route guard.
@@ -64,28 +50,60 @@ export class WorkbenchComponent {
64
50
  }
65
51
  }
66
52
  /**
67
- * Creates a Promise that resolves once all the required view containers for the workbench to attach elements have been injected from the template.
53
+ * Disables change detection during navigation to avoid partial DOM updates of the workbench layout
54
+ * if the navigation is asynchronous (e.g., because of lazy loading, async guards, or resolvers).
68
55
  */
69
- createHostViewContainersInjectedPromise() {
70
- const references = Object.values(this.viewContainerReferences);
71
- return lastValueFrom(combineLatest(references.map(reference => reference.ref$))
72
- .pipe(first(vcrs => vcrs.every(Boolean)), map(() => true)));
56
+ disableChangeDetectionDuringNavigation() {
57
+ const changeDetector = inject(ChangeDetectorRef);
58
+ inject(Router).events
59
+ .pipe(takeUntilDestroyed())
60
+ .subscribe(event => {
61
+ if (event instanceof NavigationStart) {
62
+ changeDetector.detach();
63
+ }
64
+ else if (event instanceof NavigationEnd || event instanceof NavigationError || event instanceof NavigationCancel) {
65
+ changeDetector.reattach();
66
+ }
67
+ });
73
68
  }
74
69
  /**
75
- * Unsets view container references when this component is destroyed.
70
+ * Initializes tokens to inject references to workbench elements.
76
71
  */
77
- unsetViewContainerReferences() {
78
- Object.values(this.viewContainerReferences).forEach(ref => ref.unset());
72
+ provideWorkbenchElementReferences() {
73
+ // Provide reference to the workbench element.
74
+ const workbenchElementRef = inject(WORKBENCH_ELEMENT_REF);
75
+ workbenchElementRef.set(inject(ViewContainerRef));
76
+ inject(DestroyRef).onDestroy(() => workbenchElementRef.set(undefined));
77
+ // Provide reference to the iframe overlay host.
78
+ const iframeOverlayHost = inject(IFRAME_OVERLAY_HOST);
79
+ effect(() => iframeOverlayHost.set(this._iframeOverlayHost()), { allowSignalWrites: true });
80
+ inject(DestroyRef).onDestroy(() => iframeOverlayHost.set(undefined));
81
+ // Provide reference to the view drop zone overlay host.
82
+ const viewDropZoneOverlayHost = inject(VIEW_DROP_ZONE_OVERLAY_HOST);
83
+ effect(() => viewDropZoneOverlayHost.set(this._viewDropZoneOverlayHost()), { allowSignalWrites: true });
84
+ inject(DestroyRef).onDestroy(() => viewDropZoneOverlayHost.set(undefined));
79
85
  }
80
- ngOnDestroy() {
81
- this.unsetViewContainerReferences();
86
+ /**
87
+ * Throws if loading the workbench recursively.
88
+ */
89
+ throwOnCircularLoad() {
90
+ const outlet = inject(WORKBENCH_AUXILIARY_ROUTE_OUTLET, { optional: true });
91
+ if (!outlet) {
92
+ return;
93
+ }
94
+ if (Routing.isViewOutlet(outlet)) {
95
+ throw Error(`[WorkbenchError] Circular loading of the workbench component detected in view '${outlet}'. Did you forget to add the CanMatch guard 'canMatchWorkbenchView(false)' to the root (empty-path) route of the application?`);
96
+ }
97
+ else {
98
+ throw Error(`[WorkbenchError] Circular loading of the workbench component detected in outlet '${outlet}'.`);
99
+ }
82
100
  }
83
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: WorkbenchComponent, deps: [{ token: i1.WorkbenchConfig }, { token: i2.WorkbenchLauncher }, { token: i3.Logger }, { token: i2.WorkbenchStartup }], target: i0.ɵɵFactoryTarget.Component }); }
84
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.6", type: WorkbenchComponent, isStandalone: true, selector: "wb-workbench", viewQueries: [{ propertyName: "injectIframeHost", first: true, predicate: ["iframe_host"], descendants: true, read: ViewContainerRef }, { propertyName: "injectViewDropPlaceholderHost", first: true, predicate: ["view_drop_placeholder_host"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: "@if (workbenchStartup.whenStarted | async) {\n <div class=\"stacking-context-barrier\" wbGlassPane>\n @if (whenViewContainersInjected | async) {\n <wb-workbench-layout/>\n }\n <!-- Achor to attach iframes of embedded microfrontends -->\n <ng-container #iframe_host/>\n </div>\n\n <!-- Anchor to attach the visual placeholder when dragging a view over a valid drop zone -->\n <div #view_drop_placeholder_host class=\"view-drop-placeholder-host\"></div>\n\n <!-- Notifications -->\n <wb-notification-list/>\n} @else {\n <ng-container *ngComponentOutlet=\"splash\"/>\n}\n", styles: [":host{display:grid;position:relative;overflow:hidden;color:var(--sci-color-text);background-color:var(--sci-color-background-primary)}:host>div.stacking-context-barrier{display:flex;isolation:isolate}:host>div.stacking-context-barrier>wb-workbench-layout{flex:auto}:host>div.view-drop-placeholder-host{position:absolute}:host>wb-notification-list{position:absolute;inset:0}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "component", type: WorkbenchLayoutComponent, selector: "wb-workbench-layout" }, { kind: "component", type: NotificationListComponent, selector: "wb-notification-list" }, { kind: "directive", type: GlassPaneDirective, selector: "[wbGlassPane]" }], viewProviders: [
101
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: WorkbenchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
102
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: WorkbenchComponent, isStandalone: true, selector: "wb-workbench", viewQueries: [{ propertyName: "_iframeOverlayHost", first: true, predicate: ["iframe_overlay_host"], descendants: true, read: ViewContainerRef, isSignal: true }, { propertyName: "_viewDropZoneOverlayHost", first: true, predicate: ["view_drop_zone_overlay_host"], descendants: true, read: ViewContainerRef, isSignal: true }], ngImport: i0, template: "@if (workbenchStartup.isStarted()) {\n <div class=\"stacking-context-barrier\" wbGlassPane>\n <wb-workbench-layout/>\n <!-- Achor to attach iframes of embedded microfrontends -->\n <ng-container #iframe_overlay_host/>\n </div>\n\n <!-- Anchor to attach the visual placeholder when dragging a view over a valid drop zone -->\n <div #view_drop_zone_overlay_host class=\"view-drop-zone-overlay-host\"></div>\n\n <!-- Notifications -->\n <wb-notification-list/>\n} @else {\n <ng-container *ngComponentOutlet=\"splash\"/>\n}\n", styles: [":host{display:grid;position:relative;overflow:hidden;color:var(--sci-color-text);background-color:var(--sci-color-background-primary)}:host>div.stacking-context-barrier{display:flex;isolation:isolate}:host>div.stacking-context-barrier>wb-workbench-layout{flex:auto}:host>div.view-drop-zone-overlay-host{position:absolute}:host>wb-notification-list{position:absolute;inset:0}\n"], dependencies: [{ kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "component", type: WorkbenchLayoutComponent, selector: "wb-workbench-layout" }, { kind: "component", type: NotificationListComponent, selector: "wb-notification-list" }, { kind: "directive", type: GlassPaneDirective, selector: "[wbGlassPane]" }], viewProviders: [
85
103
  configureWorkbenchGlassPane(),
86
104
  ] }); }
87
105
  }
88
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: WorkbenchComponent, decorators: [{
106
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: WorkbenchComponent, decorators: [{
89
107
  type: Component,
90
108
  args: [{ selector: 'wb-workbench', standalone: true, imports: [
91
109
  AsyncPipe,
@@ -95,14 +113,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImpor
95
113
  GlassPaneDirective,
96
114
  ], viewProviders: [
97
115
  configureWorkbenchGlassPane(),
98
- ], template: "@if (workbenchStartup.whenStarted | async) {\n <div class=\"stacking-context-barrier\" wbGlassPane>\n @if (whenViewContainersInjected | async) {\n <wb-workbench-layout/>\n }\n <!-- Achor to attach iframes of embedded microfrontends -->\n <ng-container #iframe_host/>\n </div>\n\n <!-- Anchor to attach the visual placeholder when dragging a view over a valid drop zone -->\n <div #view_drop_placeholder_host class=\"view-drop-placeholder-host\"></div>\n\n <!-- Notifications -->\n <wb-notification-list/>\n} @else {\n <ng-container *ngComponentOutlet=\"splash\"/>\n}\n", styles: [":host{display:grid;position:relative;overflow:hidden;color:var(--sci-color-text);background-color:var(--sci-color-background-primary)}:host>div.stacking-context-barrier{display:flex;isolation:isolate}:host>div.stacking-context-barrier>wb-workbench-layout{flex:auto}:host>div.view-drop-placeholder-host{position:absolute}:host>wb-notification-list{position:absolute;inset:0}\n"] }]
99
- }], ctorParameters: () => [{ type: i1.WorkbenchConfig }, { type: i2.WorkbenchLauncher }, { type: i3.Logger }, { type: i2.WorkbenchStartup }], propDecorators: { injectIframeHost: [{
100
- type: ViewChild,
101
- args: ['iframe_host', { read: ViewContainerRef }]
102
- }], injectViewDropPlaceholderHost: [{
103
- type: ViewChild,
104
- args: ['view_drop_placeholder_host', { read: ViewContainerRef }]
105
- }] } });
116
+ ], template: "@if (workbenchStartup.isStarted()) {\n <div class=\"stacking-context-barrier\" wbGlassPane>\n <wb-workbench-layout/>\n <!-- Achor to attach iframes of embedded microfrontends -->\n <ng-container #iframe_overlay_host/>\n </div>\n\n <!-- Anchor to attach the visual placeholder when dragging a view over a valid drop zone -->\n <div #view_drop_zone_overlay_host class=\"view-drop-zone-overlay-host\"></div>\n\n <!-- Notifications -->\n <wb-notification-list/>\n} @else {\n <ng-container *ngComponentOutlet=\"splash\"/>\n}\n", styles: [":host{display:grid;position:relative;overflow:hidden;color:var(--sci-color-text);background-color:var(--sci-color-background-primary)}:host>div.stacking-context-barrier{display:flex;isolation:isolate}:host>div.stacking-context-barrier>wb-workbench-layout{flex:auto}:host>div.view-drop-zone-overlay-host{position:absolute}:host>wb-notification-list{position:absolute;inset:0}\n"] }]
117
+ }], ctorParameters: () => [] });
106
118
  /**
107
119
  * Blocks the workbench or the browser's viewport when opening an application-modal dialog.
108
120
  */
@@ -131,4 +143,4 @@ function configureWorkbenchGlassPane() {
131
143
  },
132
144
  ];
133
145
  }
134
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2JlbmNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL3dvcmtiZW5jaC9zcmMvbGliL3dvcmtiZW5jaC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi93b3JrYmVuY2gvc3JjL2xpYi93b3JrYmVuY2guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0dBUUc7QUFFSCxPQUFPLEVBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQXVCLFNBQVMsRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM5RyxPQUFPLEVBQUMsV0FBVyxFQUFFLDBCQUEwQixFQUFFLHFCQUFxQixFQUFDLE1BQU0sK0NBQStDLENBQUM7QUFFN0gsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBRW5ELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUNsRSxPQUFPLEVBQVMsV0FBVyxFQUFDLE1BQU0sV0FBVyxDQUFDO0FBQzlDLE9BQU8sRUFBQyxTQUFTLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDdkUsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDN0UsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sNENBQTRDLENBQUM7QUFDckYsT0FBTyxFQUFDLGFBQWEsRUFBRSxhQUFhLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDbEQsT0FBTyxFQUFDLEtBQUssRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxQyxPQUFPLEVBQUMsb0JBQW9CLEVBQUUsa0JBQWtCLEVBQUUseUJBQXlCLEVBQUUsa0JBQWtCLEVBQW1CLE1BQU0sbUNBQW1DLENBQUM7QUFDNUosT0FBTyxFQUFDLHVCQUF1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WUFDSCxDQUFDO1NBQ0Y7UUFDRDtZQUNFLE9BQU8sRUFBRSxrQkFBa0I7WUFDM0IsUUFBUSxFQUFFLEVBQUMsUUFBUSxFQUFFLGVBQWUsRUFBNEI7U0FDakU7S0FDRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyMyBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wXG4gKi9cblxuaW1wb3J0IHtDb21wb25lbnQsIEVsZW1lbnRSZWYsIGluamVjdCwgT25EZXN0cm95LCBQcm92aWRlciwgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7SUZSQU1FX0hPU1QsIFZJRVdfRFJPUF9QTEFDRUhPTERFUl9IT1NULCBXT1JLQkVOQ0hfRUxFTUVOVF9SRUZ9IGZyb20gJy4vY29udGVudC1wcm9qZWN0aW9uL3ZpZXctY29udGFpbmVyLnJlZmVyZW5jZSc7XG5pbXBvcnQge1dvcmtiZW5jaExhdW5jaGVyLCBXb3JrYmVuY2hTdGFydHVwfSBmcm9tICcuL3N0YXJ0dXAvd29ya2JlbmNoLWxhdW5jaGVyLnNlcnZpY2UnO1xuaW1wb3J0IHtXb3JrYmVuY2hDb25maWd9IGZyb20gJy4vd29ya2JlbmNoLWNvbmZpZyc7XG5pbXBvcnQge0NvbXBvbmVudFR5cGV9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHtTcGxhc2hDb21wb25lbnR9IGZyb20gJy4vc3RhcnR1cC9zcGxhc2gvc3BsYXNoLmNvbXBvbmVudCc7XG5pbXBvcnQge0xvZ2dlciwgTG9nZ2VyTmFtZXN9IGZyb20gJy4vbG9nZ2luZyc7XG5pbXBvcnQge0FzeW5jUGlwZSwgRE9DVU1FTlQsIE5nQ29tcG9uZW50T3V0bGV0fSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtXb3JrYmVuY2hMYXlvdXRDb21wb25lbnR9IGZyb20gJy4vbGF5b3V0L3dvcmtiZW5jaC1sYXlvdXQuY29tcG9uZW50JztcbmltcG9ydCB7Tm90aWZpY2F0aW9uTGlzdENvbXBvbmVudH0gZnJvbSAnLi9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7Y29tYmluZUxhdGVzdCwgbGFzdFZhbHVlRnJvbX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2ZpcnN0LCBtYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7R0xBU1NfUEFORV9CTE9DS0FCTEUsIEdMQVNTX1BBTkVfT1BUSU9OUywgR0xBU1NfUEFORV9UQVJHRVRfRUxFTUVOVCwgR2xhc3NQYW5lRGlyZWN0aXZlLCBHbGFzc1BhbmVPcHRpb25zfSBmcm9tICcuL2dsYXNzLXBhbmUvZ2xhc3MtcGFuZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHtXb3JrYmVuY2hEaWFsb2dSZWdpc3RyeX0gZnJvbSAnLi9kaWFsb2cvd29ya2JlbmNoLWRpYWxvZy5yZWdpc3RyeSc7XG5pbXBvcnQge0Jsb2NrYWJsZX0gZnJvbSAnLi9nbGFzcy1wYW5lL2Jsb2NrYWJsZSc7XG5pbXBvcnQge1dPUktCRU5DSF9BVVhJTElBUllfUk9VVEVfT1VUTEVUfSBmcm9tICcuL3JvdXRpbmcvd29ya2JlbmNoLWF1eGlsaWFyeS1yb3V0ZXMtcmVnaXN0cmF0b3Iuc2VydmljZSc7XG5cbi8qKlxuICogTWFpbiBlbnRyeSBwb2ludCBjb21wb25lbnQgb2YgdGhlIFNDSU9OIFdvcmtiZW5jaC5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnd2Itd29ya2JlbmNoJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3dvcmtiZW5jaC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3dvcmtiZW5jaC5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQXN5bmNQaXBlLFxuICAgIE5nQ29tcG9uZW50T3V0bGV0LFxuICAgIFdvcmtiZW5jaExheW91dENvbXBvbmVudCxcbiAgICBOb3RpZmljYXRpb25MaXN0Q29tcG9uZW50LFxuICAgIEdsYXNzUGFuZURpcmVjdGl2ZSxcbiAgXSxcbiAgdmlld1Byb3ZpZGVyczogW1xuICAgIGNvbmZpZ3VyZVdvcmtiZW5jaEdsYXNzUGFuZSgpLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBXb3JrYmVuY2hDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gIC8qKlxuICAgKiBWaWV3IGNvbnRhaW5lcnMgcmVxdWlyZWQgZm9yIHRoZSB3b3JrYmVuY2ggdG8gYXR0YWNoIGVsZW1lbnRzLlxuICAgKi9cbiAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmZXJlbmNlcyA9IHtcbiAgICB3b3JrYmVuY2hFbGVtZW50OiBpbmplY3QoV09SS0JFTkNIX0VMRU1FTlRfUkVGKSxcbiAgICBpZnJhbWVIb3N0OiBpbmplY3QoSUZSQU1FX0hPU1QpLFxuICAgIHZpZXdEcm9wUGxhY2Vob2xkZXJIb3N0OiBpbmplY3QoVklFV19EUk9QX1BMQUNFSE9MREVSX0hPU1QpLFxuICB9O1xuXG4gIC8qKlxuICAgKiBTcGxhc2ggdG8gZGlzcGxheSBkdXJpbmcgd29ya2JlbmNoIHN0YXJ0dXAuXG4gICAqL1xuICBwcm90ZWN0ZWQgc3BsYXNoOiBDb21wb25lbnRUeXBlPHVua25vd24+O1xuXG4gIC8qKlxuICAgKiBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgb25jZSBhbGwgdGhlIHJlcXVpcmVkIHZpZXcgY29udGFpbmVycyBmb3IgdGhlIHdvcmtiZW5jaCB0byBhdHRhY2ggZWxlbWVudHMgaGF2ZSBiZWVuIGluamVjdGVkIGZyb20gdGhlIHRlbXBsYXRlLlxuICAgKlxuICAgKiBUbyBhdm9pZCBhbiBgRXhwcmVzc2lvbkNoYW5nZWRBZnRlckl0SGFzQmVlbkNoZWNrZWRFcnJvcmAsIG1ha2Ugc3VyZSBub3QgdG8gYWRkIHRoZSB7QGxpbmsgV29ya2JlbmNoTGF5b3V0Q29tcG9uZW50fSBiZWZvcmUgdGhlIHJlbGV2YW50XG4gICAqIHZpZXcgY29udGFpbmVycyBoYXZlIGJlZW4gaW5qZWN0ZWQuIE90aGVyd2lzZSwgd2hlbiBsb2FkaW5nIGFuIGV4aXN0aW5nIHdvcmtiZW5jaCBsYXlvdXQgKGUuZy4sIGZyb20gVVJMKSBpbnRvIHRoZSB3b3JrYmVuY2gsIEFuZ3VsYXJcbiAgICogd2lsbCB0aHJvdyB0aGlzIGVycm9yIGJlY2F1c2Ugdmlld3MgYXJlIHJlbmRlcmVkIGJlZm9yZSB2aWV3IGNvbnRhaW5lcnMgYXJlIGF2YWlsYWJsZS5cbiAgICovXG4gIHByb3RlY3RlZCB3aGVuVmlld0NvbnRhaW5lcnNJbmplY3RlZDogUHJvbWlzZTx0cnVlPjtcblxuICBAVmlld0NoaWxkKCdpZnJhbWVfaG9zdCcsIHtyZWFkOiBWaWV3Q29udGFpbmVyUmVmfSlcbiAgcHJvdGVjdGVkIHNldCBpbmplY3RJZnJhbWVIb3N0KHZjcjogVmlld0NvbnRhaW5lclJlZikge1xuICAgIHZjciAmJiB0aGlzLnZpZXdDb250YWluZXJSZWZlcmVuY2VzLmlmcmFtZUhvc3Quc2V0KHZjcik7XG4gIH1cblxuICBAVmlld0NoaWxkKCd2aWV3X2Ryb3BfcGxhY2Vob2xkZXJfaG9zdCcsIHtyZWFkOiBWaWV3Q29udGFpbmVyUmVmfSlcbiAgcHJvdGVjdGVkIHNldCBpbmplY3RWaWV3RHJvcFBsYWNlaG9sZGVySG9zdCh2Y3I6IFZpZXdDb250YWluZXJSZWYpIHtcbiAgICB2Y3IgJiYgdGhpcy52aWV3Q29udGFpbmVyUmVmZXJlbmNlcy52aWV3RHJvcFBsYWNlaG9sZGVySG9zdC5zZXQodmNyKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHdvcmtiZW5jaENvbmZpZzogV29ya2JlbmNoQ29uZmlnLFxuICAgICAgICAgICAgICBwcml2YXRlIF93b3JrYmVuY2hMYXVuY2hlcjogV29ya2JlbmNoTGF1bmNoZXIsXG4gICAgICAgICAgICAgIHByaXZhdGUgX2xvZ2dlcjogTG9nZ2VyLFxuICAgICAgICAgICAgICBwcm90ZWN0ZWQgd29ya2JlbmNoU3RhcnR1cDogV29ya2JlbmNoU3RhcnR1cCkge1xuICAgIHRoaXMuX2xvZ2dlci5kZWJ1ZygoKSA9PiAnQ29uc3RydWN0aW5nIFdvcmtiZW5jaENvbXBvbmVudC4nLCBMb2dnZXJOYW1lcy5MSUZFQ1lDTEUpO1xuICAgIGlmIChpbmplY3QoV09SS0JFTkNIX0FVWElMSUFSWV9ST1VURV9PVVRMRVQsIHtvcHRpb25hbDogdHJ1ZX0pKSB7XG4gICAgICB0aHJvdyBFcnJvcihgW1dvcmtiZW5jaEVycm9yXSBXb3JrYmVuY2ggbXVzdCBub3QgYmUgbG9hZGVkIGludG8gYSB2aWV3LiBEaWQgeW91IG5hdmlnYXRlIHRvIHRoZSBlbXB0eSBwYXRoIHJvdXRlPyBNYWtlIHN1cmUgdGhhdCB0aGUgYXBwbGljYXRpb24ncyByb290IHJvdXRlIGlzIGd1YXJkZWQgd2l0aCAnY2FuTWF0Y2hXb3JrYmVuY2hWaWV3KGZhbHNlKScuIEV4YW1wbGU6IFwie3BhdGg6ICcnLCBjYW5NYXRjaDogW2Nhbk1hdGNoV29ya2JlbmNoVmlldyhmYWxzZSksIC4uLl19XCJgKTtcbiAgICB9XG4gICAgdGhpcy52aWV3Q29udGFpbmVyUmVmZXJlbmNlcy53b3JrYmVuY2hFbGVtZW50LnNldChpbmplY3QoVmlld0NvbnRhaW5lclJlZikpO1xuICAgIHRoaXMuc3BsYXNoID0gd29ya2JlbmNoQ29uZmlnPy5zdGFydHVwPy5zcGxhc2ggfHwgU3BsYXNoQ29tcG9uZW50O1xuICAgIHRoaXMud2hlblZpZXdDb250YWluZXJzSW5qZWN0ZWQgPSB0aGlzLmNyZWF0ZUhvc3RWaWV3Q29udGFpbmVyc0luamVjdGVkUHJvbWlzZSgpO1xuICAgIHRoaXMuc3RhcnRXb3JrYmVuY2goKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdGFydHMgdGhlIFNDSU9OIFdvcmtiZW5jaC4gSGFzIG5vIGVmZmVjdCBpZiBhbHJlYWR5IHN0YXJ0ZWQsIGUuZy4sIGluIGFuIGFwcCBpbml0aWFsaXplciBvciByb3V0ZSBndWFyZC5cbiAgICovXG4gIHByaXZhdGUgc3RhcnRXb3JrYmVuY2goKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLndvcmtiZW5jaFN0YXJ0dXAuaXNTdGFydGVkKCkpIHtcbiAgICAgIHRoaXMuX3dvcmtiZW5jaExhdW5jaGVyLmxhdW5jaCgpLmNhdGNoKGVycm9yID0+IHRoaXMuX2xvZ2dlci5lcnJvcignRmFpbGVkIHRvIHN0YXJ0IFNDSU9OIFdvcmtiZW5jaCcsIGVycm9yKSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgb25jZSBhbGwgdGhlIHJlcXVpcmVkIHZpZXcgY29udGFpbmVycyBmb3IgdGhlIHdvcmtiZW5jaCB0byBhdHRhY2ggZWxlbWVudHMgaGF2ZSBiZWVuIGluamVjdGVkIGZyb20gdGhlIHRlbXBsYXRlLlxuICAgKi9cbiAgcHJpdmF0ZSBjcmVhdGVIb3N0Vmlld0NvbnRhaW5lcnNJbmplY3RlZFByb21pc2UoKTogUHJvbWlzZTx0cnVlPiB7XG4gICAgY29uc3QgcmVmZXJlbmNlcyA9IE9iamVjdC52YWx1ZXModGhpcy52aWV3Q29udGFpbmVyUmVmZXJlbmNlcyk7XG4gICAgcmV0dXJuIGxhc3RWYWx1ZUZyb20oY29tYmluZUxhdGVzdChyZWZlcmVuY2VzLm1hcChyZWZlcmVuY2UgPT4gcmVmZXJlbmNlLnJlZiQpKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpcnN0KHZjcnMgPT4gdmNycy5ldmVyeShCb29sZWFuKSksXG4gICAgICAgIG1hcCgoKSA9PiB0cnVlKSxcbiAgICAgICkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVuc2V0cyB2aWV3IGNvbnRhaW5lciByZWZlcmVuY2VzIHdoZW4gdGhpcyBjb21wb25lbnQgaXMgZGVzdHJveWVkLlxuICAgKi9cbiAgcHJpdmF0ZSB1bnNldFZpZXdDb250YWluZXJSZWZlcmVuY2VzKCk6IHZvaWQge1xuICAgIE9iamVjdC52YWx1ZXModGhpcy52aWV3Q29udGFpbmVyUmVmZXJlbmNlcykuZm9yRWFjaChyZWYgPT4gcmVmLnVuc2V0KCkpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMudW5zZXRWaWV3Q29udGFpbmVyUmVmZXJlbmNlcygpO1xuICB9XG59XG5cbi8qKlxuICogQmxvY2tzIHRoZSB3b3JrYmVuY2ggb3IgdGhlIGJyb3dzZXIncyB2aWV3cG9ydCB3aGVuIG9wZW5pbmcgYW4gYXBwbGljYXRpb24tbW9kYWwgZGlhbG9nLlxuICovXG5mdW5jdGlvbiBjb25maWd1cmVXb3JrYmVuY2hHbGFzc1BhbmUoKTogUHJvdmlkZXJbXSB7XG4gIHJldHVybiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogR0xBU1NfUEFORV9CTE9DS0FCTEUsXG4gICAgICB1c2VGYWN0b3J5OiAoKTogQmxvY2thYmxlID0+ICh7XG4gICAgICAgIGJsb2NrZWRCeSQ6IGluamVjdChXb3JrYmVuY2hEaWFsb2dSZWdpc3RyeSkudG9wJCgpLFxuICAgICAgfSksXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBHTEFTU19QQU5FX1RBUkdFVF9FTEVNRU5ULFxuICAgICAgdXNlRmFjdG9yeTogKCkgPT4ge1xuICAgICAgICBpZiAoaW5qZWN0KFdvcmtiZW5jaENvbmZpZykuZGlhbG9nPy5tb2RhbGl0eVNjb3BlID09PSAndmlld3BvcnQnKSB7XG4gICAgICAgICAgcmV0dXJuIGluamVjdChET0NVTUVOVCkuYm9keTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogR0xBU1NfUEFORV9PUFRJT05TLFxuICAgICAgdXNlVmFsdWU6IHtjc3NDbGFzczogJ2UyZS13b3JrYmVuY2gnfSBzYXRpc2ZpZXMgR2xhc3NQYW5lT3B0aW9ucyxcbiAgICB9LFxuICBdO1xufVxuIiwiQGlmICh3b3JrYmVuY2hTdGFydHVwLndoZW5TdGFydGVkIHwgYXN5bmMpIHtcbiAgPGRpdiBjbGFzcz1cInN0YWNraW5nLWNvbnRleHQtYmFycmllclwiIHdiR2xhc3NQYW5lPlxuICAgIEBpZiAod2hlblZpZXdDb250YWluZXJzSW5qZWN0ZWQgfCBhc3luYykge1xuICAgICAgPHdiLXdvcmtiZW5jaC1sYXlvdXQvPlxuICAgIH1cbiAgICA8IS0tIEFjaG9yIHRvIGF0dGFjaCBpZnJhbWVzIG9mIGVtYmVkZGVkIG1pY3JvZnJvbnRlbmRzIC0tPlxuICAgIDxuZy1jb250YWluZXIgI2lmcmFtZV9ob3N0Lz5cbiAgPC9kaXY+XG5cbiAgPCEtLSBBbmNob3IgdG8gYXR0YWNoIHRoZSB2aXN1YWwgcGxhY2Vob2xkZXIgd2hlbiBkcmFnZ2luZyBhIHZpZXcgb3ZlciBhIHZhbGlkIGRyb3Agem9uZSAtLT5cbiAgPGRpdiAjdmlld19kcm9wX3BsYWNlaG9sZGVyX2hvc3QgY2xhc3M9XCJ2aWV3LWRyb3AtcGxhY2Vob2xkZXItaG9zdFwiPjwvZGl2PlxuXG4gIDwhLS0gTm90aWZpY2F0aW9ucyAtLT5cbiAgPHdiLW5vdGlmaWNhdGlvbi1saXN0Lz5cbn0gQGVsc2Uge1xuICA8bmctY29udGFpbmVyICpuZ0NvbXBvbmVudE91dGxldD1cInNwbGFzaFwiLz5cbn1cbiJdfQ==
146
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2JlbmNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL3dvcmtiZW5jaC9zcmMvbGliL3dvcmtiZW5jaC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi93b3JrYmVuY2gvc3JjL2xpYi93b3JrYmVuY2guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0dBUUc7QUFFSCxPQUFPLEVBQUMsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBWSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDMUksT0FBTyxFQUFDLG1CQUFtQixFQUFFLDJCQUEyQixFQUFFLHFCQUFxQixFQUFDLE1BQU0sbURBQW1ELENBQUM7QUFDMUksT0FBTyxFQUFDLGlCQUFpQixFQUFFLGdCQUFnQixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDekYsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUNsRSxPQUFPLEVBQUMsTUFBTSxFQUFFLFdBQVcsRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUM5QyxPQUFPLEVBQUMsU0FBUyxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZFLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQzdFLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLDRDQUE0QyxDQUFDO0FBQ3JGLE9BQU8sRUFBQyxvQkFBb0IsRUFBRSxrQkFBa0IsRUFBRSx5QkFBeUIsRUFBRSxrQkFBa0IsRUFBbUIsTUFBTSxtQ0FBbUMsQ0FBQztBQUM1SixPQUFPLEVBQUMsdUJBQXVCLEVB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QWtCLDhLQUt3QyxnQkFBZ0Isa0pBQ0YsZ0JBQWdCLDZDQ3BEckcsMmhCQWVBLGtiRHNCSSxpQkFBaUIsb1BBQ2pCLHdCQUF3QixnRUFDeEIseUJBQXlCLGlFQUN6QixrQkFBa0IsK0NBRUw7WUFDYiwyQkFBMkIsRUFBRTtTQUM5Qjs7MkZBRVUsa0JBQWtCO2tCQWhCOUIsU0FBUzsrQkFDRSxjQUFjLGNBR1osSUFBSSxXQUNQO3dCQUNQLFNBQVM7d0JBQ1QsaUJBQWlCO3dCQUNqQix3QkFBd0I7d0JBQ3hCLHlCQUF5Qjt3QkFDekIsa0JBQWtCO3FCQUNuQixpQkFDYzt3QkFDYiwyQkFBMkIsRUFBRTtxQkFDOUI7O0FBd0ZIOztHQUVHO0FBQ0gsU0FBUywyQkFBMkI7SUFDbEMsT0FBTztRQUNMO1lBQ0UsT0FBTyxFQUFFLG9CQUFvQjtZQUM3QixVQUFVLEVBQUUsR0FBYyxFQUFFLENBQUMsQ0FBQztnQkFDNUIsVUFBVSxFQUFFLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLElBQUksRUFBRTthQUNuRCxDQUFDO1NBQ0g7UUFDRDtZQUNFLE9BQU8sRUFBRSx5QkFBeUI7WUFDbEMsVUFBVSxFQUFFLEdBQUcsRUFBRTtnQkFDZixJQUFJLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQyxNQUFNLEVBQUUsYUFBYSxLQUFLLFVBQVUsRUFBRSxDQUFDO29CQUNqRSxPQUFPLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUM7Z0JBQy9CLENBQUM7cUJBQ0ksQ0FBQztvQkFDSixPQUFPLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDNUIsQ0FBQztZQUNILENBQUM7U0FDRjtRQUNEO1lBQ0UsT0FBTyxFQUFFLGtCQUFrQjtZQUMzQixRQUFRLEVBQUUsRUFBQyxRQUFRLEVBQUUsZUFBZSxFQUE0QjtTQUNqRTtLQUNGLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIzIFN3aXNzIEZlZGVyYWwgUmFpbHdheXNcbiAqXG4gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlXG4gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMFxuICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjBcbiAqL1xuXG5pbXBvcnQge0NoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIERlc3Ryb3lSZWYsIGVmZmVjdCwgRWxlbWVudFJlZiwgaW5qZWN0LCBQcm92aWRlciwgdmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7SUZSQU1FX09WRVJMQVlfSE9TVCwgVklFV19EUk9QX1pPTkVfT1ZFUkxBWV9IT1NULCBXT1JLQkVOQ0hfRUxFTUVOVF9SRUZ9IGZyb20gJy4vY29udGVudC1wcm9qZWN0aW9uL3dvcmtiZW5jaC1lbGVtZW50LXJlZmVyZW5jZXMnO1xuaW1wb3J0IHtXb3JrYmVuY2hMYXVuY2hlciwgV29ya2JlbmNoU3RhcnR1cH0gZnJvbSAnLi9zdGFydHVwL3dvcmtiZW5jaC1sYXVuY2hlci5zZXJ2aWNlJztcbmltcG9ydCB7V29ya2JlbmNoQ29uZmlnfSBmcm9tICcuL3dvcmtiZW5jaC1jb25maWcnO1xuaW1wb3J0IHtTcGxhc2hDb21wb25lbnR9IGZyb20gJy4vc3RhcnR1cC9zcGxhc2gvc3BsYXNoLmNvbXBvbmVudCc7XG5pbXBvcnQge0xvZ2dlciwgTG9nZ2VyTmFtZXN9IGZyb20gJy4vbG9nZ2luZyc7XG5pbXBvcnQge0FzeW5jUGlwZSwgRE9DVU1FTlQsIE5nQ29tcG9uZW50T3V0bGV0fSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtXb3JrYmVuY2hMYXlvdXRDb21wb25lbnR9IGZyb20gJy4vbGF5b3V0L3dvcmtiZW5jaC1sYXlvdXQuY29tcG9uZW50JztcbmltcG9ydCB7Tm90aWZpY2F0aW9uTGlzdENvbXBvbmVudH0gZnJvbSAnLi9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7R0xBU1NfUEFORV9CTE9DS0FCTEUsIEdMQVNTX1BBTkVfT1BUSU9OUywgR0xBU1NfUEFORV9UQVJHRVRfRUxFTUVOVCwgR2xhc3NQYW5lRGlyZWN0aXZlLCBHbGFzc1BhbmVPcHRpb25zfSBmcm9tICcuL2dsYXNzLXBhbmUvZ2xhc3MtcGFuZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHtXb3JrYmVuY2hEaWFsb2dSZWdpc3RyeX0gZnJvbSAnLi9kaWFsb2cvd29ya2JlbmNoLWRpYWxvZy5yZWdpc3RyeSc7XG5pbXBvcnQge0Jsb2NrYWJsZX0gZnJvbSAnLi9nbGFzcy1wYW5lL2Jsb2NrYWJsZSc7XG5pbXBvcnQge1dPUktCRU5DSF9BVVhJTElBUllfUk9VVEVfT1VUTEVUfSBmcm9tICcuL3JvdXRpbmcvd29ya2JlbmNoLWF1eGlsaWFyeS1yb3V0ZS1pbnN0YWxsZXIuc2VydmljZSc7XG5pbXBvcnQge05hdmlnYXRpb25DYW5jZWwsIE5hdmlnYXRpb25FbmQsIE5hdmlnYXRpb25FcnJvciwgTmF2aWdhdGlvblN0YXJ0LCBSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge3Rha2VVbnRpbERlc3Ryb3llZH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHtSb3V0aW5nfSBmcm9tICcuL3JvdXRpbmcvcm91dGluZy51dGlsJztcblxuLyoqXG4gKiBNYWluIGVudHJ5IHBvaW50IGNvbXBvbmVudCBvZiB0aGUgU0NJT04gV29ya2JlbmNoLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd3Yi13b3JrYmVuY2gnLFxuICB0ZW1wbGF0ZVVybDogJy4vd29ya2JlbmNoLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vd29ya2JlbmNoLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBBc3luY1BpcGUsXG4gICAgTmdDb21wb25lbnRPdXRsZXQsXG4gICAgV29ya2JlbmNoTGF5b3V0Q29tcG9uZW50LFxuICAgIE5vdGlmaWNhdGlvbkxpc3RDb21wb25lbnQsXG4gICAgR2xhc3NQYW5lRGlyZWN0aXZlLFxuICBdLFxuICB2aWV3UHJvdmlkZXJzOiBbXG4gICAgY29uZmlndXJlV29ya2JlbmNoR2xhc3NQYW5lKCksXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFdvcmtiZW5jaENvbXBvbmVudCB7XG5cbiAgcHJpdmF0ZSBfd29ya2JlbmNoTGF1bmNoZXIgPSBpbmplY3QoV29ya2JlbmNoTGF1bmNoZXIpO1xuICBwcml2YXRlIF9sb2dnZXIgPSBpbmplY3QoTG9nZ2VyKTtcblxuICBwcml2YXRlIF9pZnJhbWVPdmVybGF5SG9zdCA9IHZpZXdDaGlsZCgnaWZyYW1lX292ZXJsYXlfaG9zdCcsIHtyZWFkOiBWaWV3Q29udGFpbmVyUmVmfSk7XG4gIHByaXZhdGUgX3ZpZXdEcm9wWm9uZU92ZXJsYXlIb3N0ID0gdmlld0NoaWxkKCd2aWV3X2Ryb3Bfem9uZV9vdmVybGF5X2hvc3QnLCB7cmVhZDogVmlld0NvbnRhaW5lclJlZn0pO1xuXG4gIC8qKiBTcGxhc2ggdG8gZGlzcGxheSBkdXJpbmcgd29ya2JlbmNoIHN0YXJ0dXAuICovXG4gIHByb3RlY3RlZCBzcGxhc2ggPSBpbmplY3QoV29ya2JlbmNoQ29uZmlnKS5zdGFydHVwPy5zcGxhc2ggPz8gU3BsYXNoQ29tcG9uZW50O1xuICBwcm90ZWN0ZWQgd29ya2JlbmNoU3RhcnR1cCA9IGluamVjdChXb3JrYmVuY2hTdGFydHVwKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLl9sb2dnZXIuZGVidWcoKCkgPT4gJ0NvbnN0cnVjdGluZyBXb3JrYmVuY2hDb21wb25lbnQuJywgTG9nZ2VyTmFtZXMuTElGRUNZQ0xFKTtcbiAgICB0aGlzLnRocm93T25DaXJjdWxhckxvYWQoKTtcbiAgICB0aGlzLnN0YXJ0V29ya2JlbmNoKCk7XG4gICAgdGhpcy5kaXNhYmxlQ2hhbmdlRGV0ZWN0aW9uRHVyaW5nTmF2aWdhdGlvbigpO1xuICAgIHRoaXMucHJvdmlkZVdvcmtiZW5jaEVsZW1lbnRSZWZlcmVuY2VzKCk7XG4gIH1cblxuICAvKipcbiAgICogU3RhcnRzIHRoZSBTQ0lPTiBXb3JrYmVuY2guIEhhcyBubyBlZmZlY3QgaWYgYWxyZWFkeSBzdGFydGVkLCBlLmcuLCBpbiBhbiBhcHAgaW5pdGlhbGl6ZXIgb3Igcm91dGUgZ3VhcmQuXG4gICAqL1xuICBwcml2YXRlIHN0YXJ0V29ya2JlbmNoKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy53b3JrYmVuY2hTdGFydHVwLmlzU3RhcnRlZCgpKSB7XG4gICAgICB0aGlzLl93b3JrYmVuY2hMYXVuY2hlci5sYXVuY2goKS5jYXRjaChlcnJvciA9PiB0aGlzLl9sb2dnZXIuZXJyb3IoJ0ZhaWxlZCB0byBzdGFydCBTQ0lPTiBXb3JrYmVuY2gnLCBlcnJvcikpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBEaXNhYmxlcyBjaGFuZ2UgZGV0ZWN0aW9uIGR1cmluZyBuYXZpZ2F0aW9uIHRvIGF2b2lkIHBhcnRpYWwgRE9NIHVwZGF0ZXMgb2YgdGhlIHdvcmtiZW5jaCBsYXlvdXRcbiAgICogaWYgdGhlIG5hdmlnYXRpb24gaXMgYXN5bmNocm9ub3VzIChlLmcuLCBiZWNhdXNlIG9mIGxhenkgbG9hZGluZywgYXN5bmMgZ3VhcmRzLCBvciByZXNvbHZlcnMpLlxuICAgKi9cbiAgcHJpdmF0ZSBkaXNhYmxlQ2hhbmdlRGV0ZWN0aW9uRHVyaW5nTmF2aWdhdGlvbigpOiB2b2lkIHtcbiAgICBjb25zdCBjaGFuZ2VEZXRlY3RvciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgICBpbmplY3QoUm91dGVyKS5ldmVudHNcbiAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKVxuICAgICAgLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICAgIGlmIChldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25TdGFydCkge1xuICAgICAgICAgIGNoYW5nZURldGVjdG9yLmRldGFjaCgpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCB8fCBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FcnJvciB8fCBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25DYW5jZWwpIHtcbiAgICAgICAgICBjaGFuZ2VEZXRlY3Rvci5yZWF0dGFjaCgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplcyB0b2tlbnMgdG8gaW5qZWN0IHJlZmVyZW5jZXMgdG8gd29ya2JlbmNoIGVsZW1lbnRzLlxuICAgKi9cbiAgcHJpdmF0ZSBwcm92aWRlV29ya2JlbmNoRWxlbWVudFJlZmVyZW5jZXMoKTogdm9pZCB7XG4gICAgLy8gUHJvdmlkZSByZWZlcmVuY2UgdG8gdGhlIHdvcmtiZW5jaCBlbGVtZW50LlxuICAgIGNvbnN0IHdvcmtiZW5jaEVsZW1lbnRSZWYgPSBpbmplY3QoV09SS0JFTkNIX0VMRU1FTlRfUkVGKTtcbiAgICB3b3JrYmVuY2hFbGVtZW50UmVmLnNldChpbmplY3QoVmlld0NvbnRhaW5lclJlZikpO1xuICAgIGluamVjdChEZXN0cm95UmVmKS5vbkRlc3Ryb3koKCkgPT4gd29ya2JlbmNoRWxlbWVudFJlZi5zZXQodW5kZWZpbmVkKSk7XG5cbiAgICAvLyBQcm92aWRlIHJlZmVyZW5jZSB0byB0aGUgaWZyYW1lIG92ZXJsYXkgaG9zdC5cbiAgICBjb25zdCBpZnJhbWVPdmVybGF5SG9zdCA9IGluamVjdChJRlJBTUVfT1ZFUkxBWV9IT1NUKTtcbiAgICBlZmZlY3QoKCkgPT4gaWZyYW1lT3ZlcmxheUhvc3Quc2V0KHRoaXMuX2lmcmFtZU92ZXJsYXlIb3N0KCkpLCB7YWxsb3dTaWduYWxXcml0ZXM6IHRydWV9KTtcbiAgICBpbmplY3QoRGVzdHJveVJlZikub25EZXN0cm95KCgpID0+IGlmcmFtZU92ZXJsYXlIb3N0LnNldCh1bmRlZmluZWQpKTtcblxuICAgIC8vIFByb3ZpZGUgcmVmZXJlbmNlIHRvIHRoZSB2aWV3IGRyb3Agem9uZSBvdmVybGF5IGhvc3QuXG4gICAgY29uc3Qgdmlld0Ryb3Bab25lT3ZlcmxheUhvc3QgPSBpbmplY3QoVklFV19EUk9QX1pPTkVfT1ZFUkxBWV9IT1NUKTtcbiAgICBlZmZlY3QoKCkgPT4gdmlld0Ryb3Bab25lT3ZlcmxheUhvc3Quc2V0KHRoaXMuX3ZpZXdEcm9wWm9uZU92ZXJsYXlIb3N0KCkpLCB7YWxsb3dTaWduYWxXcml0ZXM6IHRydWV9KTtcbiAgICBpbmplY3QoRGVzdHJveVJlZikub25EZXN0cm95KCgpID0+IHZpZXdEcm9wWm9uZU92ZXJsYXlIb3N0LnNldCh1bmRlZmluZWQpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaHJvd3MgaWYgbG9hZGluZyB0aGUgd29ya2JlbmNoIHJlY3Vyc2l2ZWx5LlxuICAgKi9cbiAgcHJpdmF0ZSB0aHJvd09uQ2lyY3VsYXJMb2FkKCk6IHZvaWQge1xuICAgIGNvbnN0IG91dGxldCA9IGluamVjdChXT1JLQkVOQ0hfQVVYSUxJQVJZX1JPVVRFX09VVExFVCwge29wdGlvbmFsOiB0cnVlfSk7XG4gICAgaWYgKCFvdXRsZXQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoUm91dGluZy5pc1ZpZXdPdXRsZXQob3V0bGV0KSkge1xuICAgICAgdGhyb3cgRXJyb3IoYFtXb3JrYmVuY2hFcnJvcl0gQ2lyY3VsYXIgbG9hZGluZyBvZiB0aGUgd29ya2JlbmNoIGNvbXBvbmVudCBkZXRlY3RlZCBpbiB2aWV3ICcke291dGxldH0nLiBEaWQgeW91IGZvcmdldCB0byBhZGQgdGhlIENhbk1hdGNoIGd1YXJkICdjYW5NYXRjaFdvcmtiZW5jaFZpZXcoZmFsc2UpJyB0byB0aGUgcm9vdCAoZW1wdHktcGF0aCkgcm91dGUgb2YgdGhlIGFwcGxpY2F0aW9uP2ApO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHRocm93IEVycm9yKGBbV29ya2JlbmNoRXJyb3JdIENpcmN1bGFyIGxvYWRpbmcgb2YgdGhlIHdvcmtiZW5jaCBjb21wb25lbnQgZGV0ZWN0ZWQgaW4gb3V0bGV0ICcke291dGxldH0nLmApO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIEJsb2NrcyB0aGUgd29ya2JlbmNoIG9yIHRoZSBicm93c2VyJ3Mgdmlld3BvcnQgd2hlbiBvcGVuaW5nIGFuIGFwcGxpY2F0aW9uLW1vZGFsIGRpYWxvZy5cbiAqL1xuZnVuY3Rpb24gY29uZmlndXJlV29ya2JlbmNoR2xhc3NQYW5lKCk6IFByb3ZpZGVyW10ge1xuICByZXR1cm4gW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IEdMQVNTX1BBTkVfQkxPQ0tBQkxFLFxuICAgICAgdXNlRmFjdG9yeTogKCk6IEJsb2NrYWJsZSA9PiAoe1xuICAgICAgICBibG9ja2VkQnkkOiBpbmplY3QoV29ya2JlbmNoRGlhbG9nUmVnaXN0cnkpLnRvcCQoKSxcbiAgICAgIH0pLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogR0xBU1NfUEFORV9UQVJHRVRfRUxFTUVOVCxcbiAgICAgIHVzZUZhY3Rvcnk6ICgpID0+IHtcbiAgICAgICAgaWYgKGluamVjdChXb3JrYmVuY2hDb25maWcpLmRpYWxvZz8ubW9kYWxpdHlTY29wZSA9PT0gJ3ZpZXdwb3J0Jykge1xuICAgICAgICAgIHJldHVybiBpbmplY3QoRE9DVU1FTlQpLmJvZHk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIGluamVjdChFbGVtZW50UmVmKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IEdMQVNTX1BBTkVfT1BUSU9OUyxcbiAgICAgIHVzZVZhbHVlOiB7Y3NzQ2xhc3M6ICdlMmUtd29ya2JlbmNoJ30gc2F0aXNmaWVzIEdsYXNzUGFuZU9wdGlvbnMsXG4gICAgfSxcbiAgXTtcbn1cbiIsIkBpZiAod29ya2JlbmNoU3RhcnR1cC5pc1N0YXJ0ZWQoKSkge1xuICA8ZGl2IGNsYXNzPVwic3RhY2tpbmctY29udGV4dC1iYXJyaWVyXCIgd2JHbGFzc1BhbmU+XG4gICAgPHdiLXdvcmtiZW5jaC1sYXlvdXQvPlxuICAgIDwhLS0gQWNob3IgdG8gYXR0YWNoIGlmcmFtZXMgb2YgZW1iZWRkZWQgbWljcm9mcm9udGVuZHMgLS0+XG4gICAgPG5nLWNvbnRhaW5lciAjaWZyYW1lX292ZXJsYXlfaG9zdC8+XG4gIDwvZGl2PlxuXG4gIDwhLS0gQW5jaG9yIHRvIGF0dGFjaCB0aGUgdmlzdWFsIHBsYWNlaG9sZGVyIHdoZW4gZHJhZ2dpbmcgYSB2aWV3IG92ZXIgYSB2YWxpZCBkcm9wIHpvbmUgLS0+XG4gIDxkaXYgI3ZpZXdfZHJvcF96b25lX292ZXJsYXlfaG9zdCBjbGFzcz1cInZpZXctZHJvcC16b25lLW92ZXJsYXktaG9zdFwiPjwvZGl2PlxuXG4gIDwhLS0gTm90aWZpY2F0aW9ucyAtLT5cbiAgPHdiLW5vdGlmaWNhdGlvbi1saXN0Lz5cbn0gQGVsc2Uge1xuICA8bmctY29udGFpbmVyICpuZ0NvbXBvbmVudE91dGxldD1cInNwbGFzaFwiLz5cbn1cbiJdfQ==
@@ -34,12 +34,8 @@ export const MAIN_AREA_LAYOUT_QUERY_PARAM = 'main_area';
34
34
  * DI token to inject the context in which the view tab is rendered.
35
35
  */
36
36
  export const VIEW_TAB_RENDERING_CONTEXT = new InjectionToken('VIEW_TAB_RENDERING_CONTEXT');
37
- /**
38
- * DI token representing the configured workbench layout.
39
- */
40
- export const WORKBENCH_LAYOUT_CONFIG = new InjectionToken('WORKBENCH_LAYOUT_CONFIG');
41
37
  /**
42
38
  * Prefix used to identify an anonymous perspective that the workbench creates for views moved to a new window.
43
39
  */
44
40
  export const ANONYMOUS_PERSPECTIVE_ID_PREFIX = 'anonymous.';
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2JlbmNoLmNvbnN0YW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL3dvcmtiZW5jaC9zcmMvbGliL3dvcmtiZW5jaC5jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0dBUUc7QUFFSCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRzdDOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDO0FBRXRDOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLFFBQVEsQ0FBQztBQUV4Qzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLFNBQVMsQ0FBQztBQUUxQzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLGFBQWEsQ0FBQztBQUVuRDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFHLFdBQVcsQ0FBQztBQVd4RDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLElBQUksY0FBYyxDQUEwQiw0QkFBNEIsQ0FBQyxDQUFDO0FBRXBIOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxjQUFjLENBQTRDLHlCQUF5QixDQUFDLENBQUM7QUFFaEk7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSwrQkFBK0IsR0FBRyxZQUFZLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjQgU3dpc3MgRmVkZXJhbCBSYWlsd2F5c1xuICpcbiAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGVcbiAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wXG4gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC9cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMFxuICovXG5cbmltcG9ydCB7SW5qZWN0aW9uVG9rZW59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtXb3JrYmVuY2hMYXlvdXRGbiwgV29ya2JlbmNoUGVyc3BlY3RpdmVzfSBmcm9tICcuL3BlcnNwZWN0aXZlL3dvcmtiZW5jaC1wZXJzcGVjdGl2ZS5tb2RlbCc7XG5cbi8qKlxuICogUmVwcmVzZW50cyB0aGUgaWQgcHJlZml4IG9mIHZpZXdzLlxuICpcbiAqIEBzZWUgVmlld0lkXG4gKi9cbmV4cG9ydCBjb25zdCBWSUVXX0lEX1BSRUZJWCA9ICd2aWV3Lic7XG5cbi8qKlxuICogUmVwcmVzZW50cyB0aGUgaWQgcHJlZml4IG9mIHBvcHVwcy5cbiAqL1xuZXhwb3J0IGNvbnN0IFBPUFVQX0lEX1BSRUZJWCA9ICdwb3B1cC4nO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIGlkIHByZWZpeCBvZiBkaWFsb2dzLlxuICovXG5leHBvcnQgY29uc3QgRElBTE9HX0lEX1BSRUZJWCA9ICdkaWFsb2cuJztcblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBpZCBwcmVmaXggb2YgbWVzc2FnZSBib3hlcy5cbiAqL1xuZXhwb3J0IGNvbnN0IE1FU1NBR0VfQk9YX0lEX1BSRUZJWCA9ICdtZXNzYWdlYm94Lic7XG5cbi8qKlxuICogTmFtZSBvZiB0aGUgcXVlcnkgcGFyYW1ldGVyIHRoYXQgY29udGFpbnMgdGhlIGxheW91dCBvZiB0aGUgbWFpbiBhcmVhLlxuICovXG5leHBvcnQgY29uc3QgTUFJTl9BUkVBX0xBWU9VVF9RVUVSWV9QQVJBTSA9ICdtYWluX2FyZWEnO1xuXG4vKipcbiAqIERlZmluZXMgdGhlIGNvbnRleHQgaW4gd2hpY2ggYSB2aWV3dGFiIGlzIHJlbmRlcmVkLlxuICpcbiAqIC0gYHRhYmA6IGlmIHJlbmRlcmVkIGFzIHZpZXcgdGFiIGluIHRoZSB0YWJiYXJcbiAqIC0gYGxpc3QtaXRlbWA6ICBpZiByZW5kZXJlZCBhcyBsaXN0IGl0ZW0gaW4gdGhlIHZpZXcgbGlzdCBtZW51XG4gKiAtIGBkcmFnLWltYWdlYDogaWYgcmVuZGVyZWQgYXMgZHJhZyBpbWFnZSB3aGlsZSBkcmFnZ2luZyBhIHZpZXcgdGFiXG4gKi9cbmV4cG9ydCB0eXBlIFZpZXdUYWJSZW5kZXJpbmdDb250ZXh0ID0gJ3RhYicgfCAnbGlzdC1pdGVtJyB8ICdkcmFnLWltYWdlJztcblxuLyoqXG4gKiBESSB0b2tlbiB0byBpbmplY3QgdGhlIGNvbnRleHQgaW4gd2hpY2ggdGhlIHZpZXcgdGFiIGlzIHJlbmRlcmVkLlxuICovXG5leHBvcnQgY29uc3QgVklFV19UQUJfUkVOREVSSU5HX0NPTlRFWFQgPSBuZXcgSW5qZWN0aW9uVG9rZW48Vmlld1RhYlJlbmRlcmluZ0NvbnRleHQ+KCdWSUVXX1RBQl9SRU5ERVJJTkdfQ09OVEVYVCcpO1xuXG4vKipcbiAqIERJIHRva2VuIHJlcHJlc2VudGluZyB0aGUgY29uZmlndXJlZCB3b3JrYmVuY2ggbGF5b3V0LlxuICovXG5leHBvcnQgY29uc3QgV09SS0JFTkNIX0xBWU9VVF9DT05GSUcgPSBuZXcgSW5qZWN0aW9uVG9rZW48V29ya2JlbmNoTGF5b3V0Rm4gfCBXb3JrYmVuY2hQZXJzcGVjdGl2ZXM+KCdXT1JLQkVOQ0hfTEFZT1VUX0NPTkZJRycpO1xuXG4vKipcbiAqIFByZWZpeCB1c2VkIHRvIGlkZW50aWZ5IGFuIGFub255bW91cyBwZXJzcGVjdGl2ZSB0aGF0IHRoZSB3b3JrYmVuY2ggY3JlYXRlcyBmb3Igdmlld3MgbW92ZWQgdG8gYSBuZXcgd2luZG93LlxuICovXG5leHBvcnQgY29uc3QgQU5PTllNT1VTX1BFUlNQRUNUSVZFX0lEX1BSRUZJWCA9ICdhbm9ueW1vdXMuJztcbiJdfQ==
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2JlbmNoLmNvbnN0YW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL3dvcmtiZW5jaC9zcmMvbGliL3dvcmtiZW5jaC5jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0dBUUc7QUFFSCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRTdDOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDO0FBRXRDOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLFFBQVEsQ0FBQztBQUV4Qzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLFNBQVMsQ0FBQztBQUUxQzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLGFBQWEsQ0FBQztBQUVuRDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFHLFdBQVcsQ0FBQztBQVd4RDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLElBQUksY0FBYyxDQUEwQiw0QkFBNEIsQ0FBQyxDQUFDO0FBRXBIOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQUcsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDI0IFN3aXNzIEZlZGVyYWwgUmFpbHdheXNcbiAqXG4gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlXG4gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMFxuICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjBcbiAqL1xuXG5pbXBvcnQge0luamVjdGlvblRva2VufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBpZCBwcmVmaXggb2Ygdmlld3MuXG4gKlxuICogQHNlZSBWaWV3SWRcbiAqL1xuZXhwb3J0IGNvbnN0IFZJRVdfSURfUFJFRklYID0gJ3ZpZXcuJztcblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBpZCBwcmVmaXggb2YgcG9wdXBzLlxuICovXG5leHBvcnQgY29uc3QgUE9QVVBfSURfUFJFRklYID0gJ3BvcHVwLic7XG5cbi8qKlxuICogUmVwcmVzZW50cyB0aGUgaWQgcHJlZml4IG9mIGRpYWxvZ3MuXG4gKi9cbmV4cG9ydCBjb25zdCBESUFMT0dfSURfUFJFRklYID0gJ2RpYWxvZy4nO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIGlkIHByZWZpeCBvZiBtZXNzYWdlIGJveGVzLlxuICovXG5leHBvcnQgY29uc3QgTUVTU0FHRV9CT1hfSURfUFJFRklYID0gJ21lc3NhZ2Vib3guJztcblxuLyoqXG4gKiBOYW1lIG9mIHRoZSBxdWVyeSBwYXJhbWV0ZXIgdGhhdCBjb250YWlucyB0aGUgbGF5b3V0IG9mIHRoZSBtYWluIGFyZWEuXG4gKi9cbmV4cG9ydCBjb25zdCBNQUlOX0FSRUFfTEFZT1VUX1FVRVJZX1BBUkFNID0gJ21haW5fYXJlYSc7XG5cbi8qKlxuICogRGVmaW5lcyB0aGUgY29udGV4dCBpbiB3aGljaCBhIHZpZXd0YWIgaXMgcmVuZGVyZWQuXG4gKlxuICogLSBgdGFiYDogaWYgcmVuZGVyZWQgYXMgdmlldyB0YWIgaW4gdGhlIHRhYmJhclxuICogLSBgbGlzdC1pdGVtYDogIGlmIHJlbmRlcmVkIGFzIGxpc3QgaXRlbSBpbiB0aGUgdmlldyBsaXN0IG1lbnVcbiAqIC0gYGRyYWctaW1hZ2VgOiBpZiByZW5kZXJlZCBhcyBkcmFnIGltYWdlIHdoaWxlIGRyYWdnaW5nIGEgdmlldyB0YWJcbiAqL1xuZXhwb3J0IHR5cGUgVmlld1RhYlJlbmRlcmluZ0NvbnRleHQgPSAndGFiJyB8ICdsaXN0LWl0ZW0nIHwgJ2RyYWctaW1hZ2UnO1xuXG4vKipcbiAqIERJIHRva2VuIHRvIGluamVjdCB0aGUgY29udGV4dCBpbiB3aGljaCB0aGUgdmlldyB0YWIgaXMgcmVuZGVyZWQuXG4gKi9cbmV4cG9ydCBjb25zdCBWSUVXX1RBQl9SRU5ERVJJTkdfQ09OVEVYVCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxWaWV3VGFiUmVuZGVyaW5nQ29udGV4dD4oJ1ZJRVdfVEFCX1JFTkRFUklOR19DT05URVhUJyk7XG5cbi8qKlxuICogUHJlZml4IHVzZWQgdG8gaWRlbnRpZnkgYW4gYW5vbnltb3VzIHBlcnNwZWN0aXZlIHRoYXQgdGhlIHdvcmtiZW5jaCBjcmVhdGVzIGZvciB2aWV3cyBtb3ZlZCB0byBhIG5ldyB3aW5kb3cuXG4gKi9cbmV4cG9ydCBjb25zdCBBTk9OWU1PVVNfUEVSU1BFQ1RJVkVfSURfUFJFRklYID0gJ2Fub255bW91cy4nO1xuIl19
@@ -8,4 +8,4 @@
8
8
  * SPDX-License-Identifier: EPL-2.0
9
9
  */
10
10
  export {};
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2JlbmNoLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vd29ya2JlbmNoL3NyYy9saWIvd29ya2JlbmNoLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIyIFN3aXNzIEZlZGVyYWwgUmFpbHdheXNcbiAqXG4gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlXG4gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMFxuICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjBcbiAqL1xuXG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtDb21wb25lbnRQb3J0YWwsIFBvcnRhbCwgVGVtcGxhdGVQb3J0YWx9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHtXb3JrYmVuY2hWaWV3fSBmcm9tICcuL3ZpZXcvd29ya2JlbmNoLXZpZXcubW9kZWwnO1xuaW1wb3J0IHtXb3JrYmVuY2hQYXJ0fSBmcm9tICcuL3BhcnQvd29ya2JlbmNoLXBhcnQubW9kZWwnO1xuXG4vKipcbiAqIEd1YXJkIHRoYXQgYSB2aWV3IGNhbiBpbXBsZW1lbnQgdG8gZGVjaWRlIHdoZXRoZXIgaXQgY2FuIGJlIGNsb3NlZC5cbiAqXG4gKiBUaGUgZm9sbG93aW5nIGV4YW1wbGUgaW1wbGVtZW50cyBhIGBDYW5DbG9zZWAgZ3VhcmQgdGhhdCBhc2tzIHRoZSB1c2VyIHdoZXRoZXIgdGhlIHZpZXcgY2FuIGJlIGNsb3NlZC5cbiAqXG4gKiBgYGB0c1xuICogY2xhc3MgVmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIENhbkNsb3NlIHtcbiAqXG4gKiAgIHB1YmxpYyBhc3luYyBjYW5DbG9zZSgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAqICAgICBjb25zdCBhY3Rpb24gPSBhd2FpdCBpbmplY3QoV29ya2JlbmNoTWVzc2FnZUJveFNlcnZpY2UpLm9wZW4oJ0RvIHlvdSB3YW50IHRvIGNsb3NlIHRoaXMgdmlldz8nLCB7XG4gKiAgICAgICBhY3Rpb25zOiB7eWVzOiAnWWVzJywgbm86ICdObyd9LFxuICogICAgIH0pO1xuICogICAgIHJldHVybiBhY3Rpb24gPT09ICd5ZXMnO1xuICogICB9XG4gKiB9XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDYW5DbG9zZSB7XG5cbiAgLyoqXG4gICAqIERlY2lkZXMgd2hldGhlciB0aGlzIHZpZXcgY2FuIGJlIGNsb3NlZC5cbiAgICpcbiAgICogVGhpcyBmdW5jdGlvbiBjYW4gY2FsbCBgaW5qZWN0YCB0byBnZXQgYW55IHJlcXVpcmVkIGRlcGVuZGVuY2llcy5cbiAgICovXG4gIGNhbkNsb3NlKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4gfCBQcm9taXNlPGJvb2xlYW4+IHwgYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBEZXNjcmliZXMgYW4gYWN0aW9uIGNvbnRyaWJ1dGVkIHRvIGEgcGFydC5cbiAqXG4gKiBQYXJ0IGFjdGlvbnMgYXJlIGRpc3BsYXllZCB0byB0aGUgcmlnaHQgb2YgdGhlIHZpZXcgdGFiIGJhciBhbmQgZW5hYmxlIGludGVyYWN0aW9uIHdpdGggdGhlIHBhcnQgYW5kIGl0cyBjb250ZW50LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtiZW5jaFBhcnRBY3Rpb24ge1xuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBwb3J0YWwgdG8gcmVuZGVyIHRoZSBhY3Rpb24uXG4gICAqXG4gICAqIFVzZSBhIHtAbGluayBDb21wb25lbnRQb3J0YWx9IHRvIHJlbmRlciBhIGNvbXBvbmVudCwgb3IgYSB7QGxpbmsgVGVtcGxhdGVQb3J0YWx9IHRvIHJlbmRlciBhIHRlbXBsYXRlLlxuICAgKi9cbiAgcG9ydGFsOiBQb3J0YWw8dW5rbm93bj47XG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgd2hlcmUgdG8gcGxhY2UgdGhpcyBhY3Rpb24gaW4gdGhlIGFjdGlvbiBiYXIuXG4gICAqL1xuICBhbGlnbj86ICdzdGFydCcgfCAnZW5kJztcbiAgLyoqXG4gICAqIFByZWRpY2F0ZSB0byBtYXRjaCBhIHNwZWNpZmljIHBhcnQsIHBhcnRzIGluIGEgc3BlY2lmaWMgYXJlYSwgb3IgcGFydHMgZnJvbSBhIHNwZWNpZmljIHBlcnNwZWN0aXZlLlxuICAgKlxuICAgKiBCeSBkZWZhdWx0LCBpZiBub3Qgc3BlY2lmaWVkLCBtYXRjaGVzIGFueSBwYXJ0LlxuICAgKlxuICAgKiBUaGUgZnVuY3Rpb24gY2FuIGNhbGwgYGluamVjdGAgdG8gZ2V0IGFueSByZXF1aXJlZCBkZXBlbmRlbmNpZXMuXG4gICAqL1xuICBjYW5NYXRjaD86IENhbk1hdGNoUGFydEZuO1xuICAvKipcbiAgICogU3BlY2lmaWVzIENTUyBjbGFzcyhlcykgdG8gYWRkIHRvIHRoZSBhY3Rpb24sIGUuZy4sIHRvIGxvY2F0ZSB0aGUgYWN0aW9uIGluIHRlc3RzLlxuICAgKi9cbiAgY3NzQ2xhc3M/OiBzdHJpbmcgfCBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBUaGUgc2lnbmF0dXJlIG9mIGEgZnVuY3Rpb24gdXNlZCBhcyBhIGBjYW5NYXRjaGAgY29uZGl0aW9uIGZvciBhIHBhcnQuXG4gKlxuICogVGhlIGZ1bmN0aW9uIGNhbiBjYWxsIGBpbmplY3RgIHRvIGdldCBhbnkgcmVxdWlyZWQgZGVwZW5kZW5jaWVzLlxuICovXG5leHBvcnQgdHlwZSBDYW5NYXRjaFBhcnRGbiA9IChwYXJ0OiBXb3JrYmVuY2hQYXJ0KSA9PiBib29sZWFuO1xuXG4vKipcbiAqIEZhY3RvcnkgZnVuY3Rpb24gdG8gY3JlYXRlIGEge0BsaW5rIFdvcmtiZW5jaE1lbnVJdGVtfS5cbiAqL1xuZXhwb3J0IHR5cGUgV29ya2JlbmNoTWVudUl0ZW1GYWN0b3J5Rm4gPSAodmlldzogV29ya2JlbmNoVmlldykgPT4gV29ya2JlbmNoTWVudUl0ZW0gfCBudWxsO1xuXG4vKipcbiAqIE1lbnUgaXRlbSBpbiBhIG1lbnUgb3IgY29udGV4dCBtZW51LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtiZW5jaE1lbnVJdGVtIHtcbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgY29udGVudCBvZiB0aGUgbWVudSBpdGVtLlxuICAgKi9cbiAgcG9ydGFsOiBUZW1wbGF0ZVBvcnRhbCB8IENvbXBvbmVudFBvcnRhbDxhbnk+O1xuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBjYWxsYmFjayB0cmlnZ2VyZWQgd2hlbiBjbGlja2luZyB0aGlzIG1lbnUgaXRlbS5cbiAgICpcbiAgICogVGhlIGZ1bmN0aW9uIGNhbiBjYWxsIGBpbmplY3RgIHRvIGdldCBhbnkgcmVxdWlyZWQgZGVwZW5kZW5jaWVzLlxuICAgKi9cbiAgb25BY3Rpb246ICgpID0+IHZvaWQ7XG4gIC8qKlxuICAgKiBBbGxvd3MgdGhlIHVzZXIgdG8gaW50ZXJhY3Qgd2l0aCB0aGUgbWVudSBpdGVtIHVzaW5nIGtleXMgb24gdGhlIGtleWJvYXJkLCBlLmcuLCBbJ2N0cmwnLCAnYWx0JywgMV0uXG4gICAqXG4gICAqIFN1cHBvcnRlZCBtb2RpZmllcnMgYXJlICdjdHJsJywgJ3NoaWZ0JywgJ2FsdCcgYW5kICdtZXRhJy5cbiAgICovXG4gIGFjY2VsZXJhdG9yPzogc3RyaW5nW107XG4gIC8qKlxuICAgKiBBbGxvd3MgZ3JvdXBpbmcgbWVudSBpdGVtcyBvZiB0aGUgc2FtZSBncm91cC5cbiAgICovXG4gIGdyb3VwPzogc3RyaW5nO1xuICAvKipcbiAgICogQWxsb3dzIGRpc2FibGluZyB0aGUgbWVudSBpdGVtIGJhc2VkIG9uIGEgY29uZGl0aW9uLlxuICAgKi9cbiAgaXNEaXNhYmxlZD86ICgpID0+IGJvb2xlYW47XG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgQ1NTIGNsYXNzKGVzKSB0byBhZGQgdG8gdGhlIG1lbnUgaXRlbSwgZS5nLiwgdG8gbG9jYXRlIHRoZSBtZW51IGl0ZW0gaW4gdGVzdHMuXG4gICAqL1xuICBjc3NDbGFzcz86IHN0cmluZyB8IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIEluZm9ybWF0aW9uIGFib3V0IGEgd29ya2JlbmNoIHRoZW1lLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtiZW5jaFRoZW1lIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSB0aGVtZS5cbiAgICovXG4gIG5hbWU6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBjb2xvciBzY2hlbWUgb2YgdGhlIHRoZW1lLlxuICAgKi9cbiAgY29sb3JTY2hlbWU6ICdsaWdodCcgfCAnZGFyayc7XG59XG4iXX0=
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2JlbmNoLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vd29ya2JlbmNoL3NyYy9saWIvd29ya2JlbmNoLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIyIFN3aXNzIEZlZGVyYWwgUmFpbHdheXNcbiAqXG4gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlXG4gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMFxuICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjBcbiAqL1xuXG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtDb21wb25lbnRQb3J0YWwsIFBvcnRhbCwgVGVtcGxhdGVQb3J0YWx9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHtXb3JrYmVuY2hWaWV3fSBmcm9tICcuL3ZpZXcvd29ya2JlbmNoLXZpZXcubW9kZWwnO1xuaW1wb3J0IHtXb3JrYmVuY2hQYXJ0fSBmcm9tICcuL3BhcnQvd29ya2JlbmNoLXBhcnQubW9kZWwnO1xuXG4vKipcbiAqIEd1YXJkIHRoYXQgYSB2aWV3IGNhbiBpbXBsZW1lbnQgdG8gZGVjaWRlIHdoZXRoZXIgaXQgY2FuIGJlIGNsb3NlZC5cbiAqXG4gKiBUaGUgZm9sbG93aW5nIGV4YW1wbGUgaW1wbGVtZW50cyBhIGBDYW5DbG9zZWAgZ3VhcmQgdGhhdCBhc2tzIHRoZSB1c2VyIHdoZXRoZXIgdGhlIHZpZXcgY2FuIGJlIGNsb3NlZC5cbiAqXG4gKiBgYGB0c1xuICogY2xhc3MgVmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIENhbkNsb3NlIHtcbiAqXG4gKiAgIHB1YmxpYyBhc3luYyBjYW5DbG9zZSgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAqICAgICBjb25zdCBhY3Rpb24gPSBhd2FpdCBpbmplY3QoV29ya2JlbmNoTWVzc2FnZUJveFNlcnZpY2UpLm9wZW4oJ0RvIHlvdSB3YW50IHRvIGNsb3NlIHRoaXMgdmlldz8nLCB7XG4gKiAgICAgICBhY3Rpb25zOiB7eWVzOiAnWWVzJywgbm86ICdObyd9LFxuICogICAgIH0pO1xuICogICAgIHJldHVybiBhY3Rpb24gPT09ICd5ZXMnO1xuICogICB9XG4gKiB9XG4gKiBgYGBcbiAqIEBkZXByZWNhdGVkIHNpbmNlIHZlcnNpb24gMTguMC4wLWJldGEuOS4gUmVnaXN0ZXIgYSBjYWxsYmFjayBvbiB7QGxpbmsgV29ya2JlbmNoVmlldy5jYW5DbG9zZX0gaW5zdGVhZCBvZiBpbXBsZW1lbnRpbmcgdGhlIHtAbGluayBDYW5DbG9zZX0gbGlmZWN5Y2xlIGhvb2suIFJlZmVyIHRvIHRoZSB7QGxpbmsgV29ya2JlbmNoVmlldy5jYW5DbG9zZX0gZG9jdW1lbnRhdGlvbiBmb3IgYW4gZXhhbXBsZS4gVGhpcyBBUEkgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2FuQ2xvc2Uge1xuXG4gIC8qKlxuICAgKiBEZWNpZGVzIHdoZXRoZXIgdGhpcyB2aWV3IGNhbiBiZSBjbG9zZWQuXG4gICAqXG4gICAqIFRoaXMgZnVuY3Rpb24gY2FuIGNhbGwgYGluamVjdGAgdG8gZ2V0IGFueSByZXF1aXJlZCBkZXBlbmRlbmNpZXMuXG4gICAqXG4gICAqIEBkZXByZWNhdGVkIHNpbmNlIHZlcnNpb24gMTguMC4wLWJldGEuOS4gUmVnaXN0ZXIgYSBjYWxsYmFjayBvbiB7QGxpbmsgV29ya2JlbmNoVmlldy5jYW5DbG9zZX0gaW5zdGVhZCBvZiBpbXBsZW1lbnRpbmcgdGhlIHtAbGluayBDYW5DbG9zZX0gbGlmZWN5Y2xlIGhvb2suIFJlZmVyIHRvIHRoZSB7QGxpbmsgV29ya2JlbmNoVmlldy5jYW5DbG9zZX0gZG9jdW1lbnRhdGlvbiBmb3IgYW4gZXhhbXBsZS4gVGhpcyBBUEkgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuXG4gICAqL1xuICBjYW5DbG9zZSgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHwgUHJvbWlzZTxib29sZWFuPiB8IGJvb2xlYW47XG59XG5cbi8qKlxuICogVGhlIHNpZ25hdHVyZSBvZiBhIGZ1bmN0aW9uIHRvIGNvbmZpcm0gY2xvc2luZyBhIHZpZXcuLCBlLmcuLCBpZiBkaXJ0eS5cbiAqXG4gKiBUaGUgZnVuY3Rpb24gY2FuIGNhbGwgYGluamVjdGAgdG8gZ2V0IGRlcGVuZGVuY2llcy5cbiAqL1xuZXhwb3J0IHR5cGUgQ2FuQ2xvc2VGbiA9ICgpID0+IE9ic2VydmFibGU8Ym9vbGVhbj4gfCBQcm9taXNlPGJvb2xlYW4+IHwgYm9vbGVhbjtcblxuLyoqXG4gKiBSZWZlcmVuY2UgdG8gYSBgQ2FuQ2xvc2VgIGd1YXJkIHJlZ2lzdGVyZWQgb24gYSB2aWV3LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENhbkNsb3NlUmVmIHtcblxuICAvKipcbiAgICogUmVtb3ZlcyB0aGUgYENhbkNsb3NlYCBndWFyZCBmcm9tIHRoZSB2aWV3LlxuICAgKlxuICAgKiBIYXMgbm8gZWZmZWN0IGlmIGFub3RoZXIgZ3VhcmQgd2FzIHJlZ2lzdGVyZWQgaW4gdGhlIG1lYW50aW1lLlxuICAgKi9cbiAgZGlzcG9zZSgpOiB2b2lkO1xufVxuXG4vKipcbiAqIERlc2NyaWJlcyBhbiBhY3Rpb24gY29udHJpYnV0ZWQgdG8gYSBwYXJ0LlxuICpcbiAqIFBhcnQgYWN0aW9ucyBhcmUgZGlzcGxheWVkIHRvIHRoZSByaWdodCBvZiB0aGUgdmlldyB0YWJzIGFuZCBlbmFibGUgaW50ZXJhY3Rpb24gd2l0aCB0aGUgcGFydCBhbmQgaXRzIGNvbnRlbnQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgV29ya2JlbmNoUGFydEFjdGlvbiB7XG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIHBvcnRhbCB0byByZW5kZXIgdGhlIGFjdGlvbi5cbiAgICpcbiAgICogVXNlIGEge0BsaW5rIENvbXBvbmVudFBvcnRhbH0gdG8gcmVuZGVyIGEgY29tcG9uZW50LCBvciBhIHtAbGluayBUZW1wbGF0ZVBvcnRhbH0gdG8gcmVuZGVyIGEgdGVtcGxhdGUuXG4gICAqL1xuICBwb3J0YWw6IFBvcnRhbDx1bmtub3duPjtcbiAgLyoqXG4gICAqIFNwZWNpZmllcyB3aGVyZSB0byBwbGFjZSB0aGlzIGFjdGlvbiBpbiB0aGUgYWN0aW9uIGJhci5cbiAgICovXG4gIGFsaWduPzogJ3N0YXJ0JyB8ICdlbmQnO1xuICAvKipcbiAgICogUHJlZGljYXRlIHRvIG1hdGNoIGEgc3BlY2lmaWMgcGFydCwgcGFydHMgaW4gYSBzcGVjaWZpYyBhcmVhLCBvciBwYXJ0cyBmcm9tIGEgc3BlY2lmaWMgcGVyc3BlY3RpdmUuXG4gICAqXG4gICAqIEJ5IGRlZmF1bHQsIGlmIG5vdCBzcGVjaWZpZWQsIG1hdGNoZXMgYW55IHBhcnQuXG4gICAqXG4gICAqIFRoZSBmdW5jdGlvbjpcbiAgICogLSBDYW4gY2FsbCBgaW5qZWN0YCB0byBnZXQgYW55IHJlcXVpcmVkIGRlcGVuZGVuY2llcy5cbiAgICogLSBSdW5zIGluIGEgcmVhY3RpdmUgY29udGV4dCwgcmUtZXZhbHVhdGluZyB3aGVuIHRyYWNrZWQgc2lnbmFscyBjaGFuZ2UuXG4gICAqICAgVG8gZXhlY3V0ZSBjb2RlIG91dHNpZGUgdGhpcyByZWFjdGl2ZSBjb250ZXh0LCB1c2UgQW5ndWxhcidzIGB1bnRyYWNrZWRgIGZ1bmN0aW9uLlxuICAgKi9cbiAgY2FuTWF0Y2g/OiBDYW5NYXRjaFBhcnRGbjtcbiAgLyoqXG4gICAqIFNwZWNpZmllcyBDU1MgY2xhc3MoZXMpIHRvIGFkZCB0byB0aGUgYWN0aW9uLCBlLmcuLCB0byBsb2NhdGUgdGhlIGFjdGlvbiBpbiB0ZXN0cy5cbiAgICovXG4gIGNzc0NsYXNzPzogc3RyaW5nIHwgc3RyaW5nW107XG59XG5cbi8qKlxuICogVGhlIHNpZ25hdHVyZSBvZiBhIGZ1bmN0aW9uIHVzZWQgYXMgYSBgY2FuTWF0Y2hgIGNvbmRpdGlvbiBmb3IgYSBwYXJ0LlxuICpcbiAqIFRoZSBmdW5jdGlvbjpcbiAqIC0gQ2FuIGNhbGwgYGluamVjdGAgdG8gZ2V0IGFueSByZXF1aXJlZCBkZXBlbmRlbmNpZXMuXG4gKiAtIFJ1bnMgaW4gYSByZWFjdGl2ZSBjb250ZXh0LCByZS1ldmFsdWF0aW5nIHdoZW4gdHJhY2tlZCBzaWduYWxzIGNoYW5nZS5cbiAqICAgVG8gZXhlY3V0ZSBjb2RlIG91dHNpZGUgdGhpcyByZWFjdGl2ZSBjb250ZXh0LCB1c2UgQW5ndWxhcidzIGB1bnRyYWNrZWRgIGZ1bmN0aW9uLlxuICovXG5leHBvcnQgdHlwZSBDYW5NYXRjaFBhcnRGbiA9IChwYXJ0OiBXb3JrYmVuY2hQYXJ0KSA9PiBib29sZWFuO1xuXG4vKipcbiAqIEZhY3RvcnkgZnVuY3Rpb24gdG8gY3JlYXRlIGEge0BsaW5rIFdvcmtiZW5jaE1lbnVJdGVtfS5cbiAqXG4gKiBUaGUgZnVuY3Rpb24gd2lsbCBiZSBpbnZva2VkIHdoZW4gb3BlbmluZyBhIHZpZXcncyBjb250ZXh0IG1lbnUuIFVzZSB0aGUgcGFzc2VkIHZpZXcgaGFuZGxlIHRvIGRlY2lkZSB3aGV0aGVyIHRvIGRpc3BsYXkgdGhlIG1lbnUgaXRlbS5cbiAqL1xuZXhwb3J0IHR5cGUgV29ya2JlbmNoTWVudUl0ZW1GYWN0b3J5Rm4gPSAodmlldzogV29ya2JlbmNoVmlldykgPT4gV29ya2JlbmNoTWVudUl0ZW0gfCBudWxsO1xuXG4vKipcbiAqIE1lbnUgaXRlbSBpbiBhIG1lbnUgb3IgY29udGV4dCBtZW51LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtiZW5jaE1lbnVJdGVtIHtcbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgY29udGVudCBvZiB0aGUgbWVudSBpdGVtLlxuICAgKi9cbiAgcG9ydGFsOiBUZW1wbGF0ZVBvcnRhbCB8IENvbXBvbmVudFBvcnRhbDxhbnk+O1xuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBjYWxsYmFjayB0cmlnZ2VyZWQgd2hlbiBjbGlja2luZyB0aGlzIG1lbnUgaXRlbS5cbiAgICpcbiAgICogVGhlIGZ1bmN0aW9uIGNhbiBjYWxsIGBpbmplY3RgIHRvIGdldCBhbnkgcmVxdWlyZWQgZGVwZW5kZW5jaWVzLlxuICAgKi9cbiAgb25BY3Rpb246ICgpID0+IHZvaWQ7XG4gIC8qKlxuICAgKiBBbGxvd3MgdGhlIHVzZXIgdG8gaW50ZXJhY3Qgd2l0aCB0aGUgbWVudSBpdGVtIHVzaW5nIGtleXMgb24gdGhlIGtleWJvYXJkLCBlLmcuLCBbJ2N0cmwnLCAnYWx0JywgMV0uXG4gICAqXG4gICAqIFN1cHBvcnRlZCBtb2RpZmllcnMgYXJlICdjdHJsJywgJ3NoaWZ0JywgJ2FsdCcgYW5kICdtZXRhJy5cbiAgICovXG4gIGFjY2VsZXJhdG9yPzogc3RyaW5nW107XG4gIC8qKlxuICAgKiBBbGxvd3MgZ3JvdXBpbmcgbWVudSBpdGVtcyBvZiB0aGUgc2FtZSBncm91cC5cbiAgICovXG4gIGdyb3VwPzogc3RyaW5nO1xuICAvKipcbiAgICogQWxsb3dzIGRpc2FibGluZyB0aGUgbWVudSBpdGVtIGJhc2VkIG9uIGEgY29uZGl0aW9uLlxuICAgKi9cbiAgaXNEaXNhYmxlZD86ICgpID0+IGJvb2xlYW47XG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgQ1NTIGNsYXNzKGVzKSB0byBhZGQgdG8gdGhlIG1lbnUgaXRlbSwgZS5nLiwgdG8gbG9jYXRlIHRoZSBtZW51IGl0ZW0gaW4gdGVzdHMuXG4gICAqL1xuICBjc3NDbGFzcz86IHN0cmluZyB8IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIEluZm9ybWF0aW9uIGFib3V0IGEgd29ya2JlbmNoIHRoZW1lLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtiZW5jaFRoZW1lIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSB0aGVtZS5cbiAgICovXG4gIG5hbWU6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBjb2xvciBzY2hlbWUgb2YgdGhlIHRoZW1lLlxuICAgKi9cbiAgY29sb3JTY2hlbWU6ICdsaWdodCcgfCAnZGFyayc7XG59XG4iXX0=
@@ -71,17 +71,17 @@ export class WorkbenchModule {
71
71
  providers: [], // do not register any providers in 'forChild' but in 'forRoot' instead
72
72
  };
73
73
  }
74
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: WorkbenchModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
75
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.6", ngImport: i0, type: WorkbenchModule, imports: [WorkbenchComponent,
74
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: WorkbenchModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
75
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.2", ngImport: i0, type: WorkbenchModule, imports: [WorkbenchComponent,
76
76
  WorkbenchRouterLinkDirective,
77
77
  WorkbenchPartActionDirective,
78
78
  WorkbenchViewMenuItemDirective], exports: [WorkbenchComponent,
79
79
  WorkbenchRouterLinkDirective,
80
80
  WorkbenchPartActionDirective,
81
81
  WorkbenchViewMenuItemDirective] }); }
82
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: WorkbenchModule, imports: [WorkbenchComponent] }); }
82
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: WorkbenchModule, imports: [WorkbenchComponent] }); }
83
83
  }
84
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: WorkbenchModule, decorators: [{
84
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: WorkbenchModule, decorators: [{
85
85
  type: NgModule,
86
86
  args: [{
87
87
  imports: [
@@ -11,17 +11,15 @@ import { ENVIRONMENT_INITIALIZER, inject, makeEnvironmentProviders } from '@angu
11
11
  import { WorkbenchService } from './workbench.service';
12
12
  import { WorkbenchUrlObserver } from './routing/workbench-url-observer.service';
13
13
  import { WorkbenchConfig } from './workbench-config';
14
- import { WORKBENCH_LAYOUT_CONFIG } from './workbench.constants';
15
14
  import { ViewMenuService } from './part/view-context-menu/view-menu.service';
16
15
  import { ViewMoveHandler } from './view/view-move-handler.service';
17
16
  import { provideWorkbenchMicrofrontendSupport } from './microfrontend-platform/workbench-microfrontend-support';
18
17
  import { provideWorkbenchLauncher } from './startup/workbench-launcher.service';
19
18
  import { provideLogging } from './logging';
20
- import { WORKBENCH_POST_STARTUP, WORKBENCH_PRE_STARTUP, WORKBENCH_STARTUP } from './startup/workbench-initializer';
19
+ import { WORKBENCH_POST_STARTUP, WORKBENCH_PRE_STARTUP } from './startup/workbench-initializer';
21
20
  import { WorkbenchPerspectiveService } from './perspective/workbench-perspective.service';
22
21
  import { DefaultWorkbenchStorage, WorkbenchStorage } from './storage/workbench-storage';
23
22
  import { provideLocationPatch } from './routing/ɵlocation';
24
- import { MAIN_AREA } from './layout/workbench-layout';
25
23
  import { WorkbenchThemeSwitcher } from './theme/workbench-theme-switcher.service';
26
24
  /**
27
25
  * Enables and configures the SCION Workbench in an application, returning a set of dependency-injection providers to be registered in Angular.
@@ -69,17 +67,13 @@ export function provideWorkbench(config) {
69
67
  provide: WorkbenchStorage,
70
68
  useClass: config.storage ?? DefaultWorkbenchStorage,
71
69
  },
72
- {
73
- provide: WORKBENCH_LAYOUT_CONFIG,
74
- useFactory: () => config.layout ?? ((factory) => factory.addPart(MAIN_AREA)),
75
- },
76
70
  {
77
71
  provide: WORKBENCH_PRE_STARTUP,
78
72
  useExisting: WorkbenchThemeSwitcher,
79
73
  multi: true,
80
74
  },
81
75
  {
82
- provide: WORKBENCH_STARTUP,
76
+ provide: WORKBENCH_POST_STARTUP,
83
77
  multi: true,
84
78
  useExisting: WorkbenchPerspectiveService,
85
79
  },
@@ -114,4 +108,4 @@ export function provideWorkbench(config) {
114
108
  provideWorkbenchMicrofrontendSupport(config),
115
109
  ]);
116
110
  }
117
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2JlbmNoLnByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vd29ya2JlbmNoL3NyYy9saWIvd29ya2JlbmNoLnByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsT0FBTyxFQUFDLHVCQUF1QixFQUF3QixNQUFNLEVBQUUsd0JBQXdCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDOUcsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFDOUUsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQ25ELE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQzlELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUMzRSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDakUsT0FBTyxFQUFDLG9DQUFvQyxFQUFDLE1BQU0sMERBQTBELENBQUM7QUFDOUcsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDOUUsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUN6QyxPQUFPLEVBQUMsc0JBQXNCLEVBQUUscUJBQXFCLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUNqSCxPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSw2Q0FBNkMsQ0FBQztBQUN4RixPQUFPLEVBQUMsdUJBQXVCLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RixPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUV6RCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDcEQsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFFaEY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQ0c7QUFDSCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsTUFBd0I7SUFDdkQsTUFBTSxLQUFLLEVBQUUsQ0FBQztJQUVkLE9BQU8sd0JBQXdCLENBQUM7UUFDOUI7WUFDRSxPQUFPLEVBQUUsZUFBZTtZQUN4QixRQUFRLEVBQUUsTUFBTTtTQUNqQjtRQUNEO1lBQ0UsT0FBTyxFQUFFLGdCQUFnQjtZQUN6QixRQUFRLEVBQUUsTUFBTSxDQUFDLE9BQU8sSUFBSSx1QkFBdUI7U0FDcEQ7UUFDRDtZQUNFLE9BQU8sRUFBRSx1QkFBdUI7WUFDaEMsVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLE9BQStCLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDdEc7UUFDRDtZQUNFLE9BQU8sRUFBRSxxQkFBcUI7WUFDOUIsV0FBVyxFQUFFLHNCQUFzQjtZQUNuQyxLQUFLLEVBQUUsSUFBSTtTQUNaO1FBQ0Q7WUFDRSxPQUFPLEVBQUUsaUJBQWlCO1lBQzFCLEtBQUssRUFBRSxJQUFJO1lBQ1gsV0FBVyxFQUFFLDJCQUEyQjtTQUN6QztRQUNEO1lBQ0UsT0FBTyxFQUFFLHNCQUFzQjtZQUMvQixXQUFXLEVBQUUsZUFBZTtZQUM1QixLQUFLLEVBQUUsSUFBSTtTQUNaO1FBQ0Q7WUFDRSxPQUFPLEVBQUUsc0JBQXNCO1lBQy9CLFFBQVEsRUFBRSxlQUFlO1lBQ3pCLEtBQUssRUFBRSxJQUFJO1NBQ1o7UUFDRDtZQUNFLE9BQU8sRUFBRSx1QkFBdUI7WUFDaEMsS0FBSyxFQUFFLElBQUk7WUFDWCxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLG9CQUFvQixDQUFDO1NBQzdDO1FBQ0Q7WUFDRSxPQUFPLEVBQUUsdUJBQXVCO1lBQ2hDLEtBQUssRUFBRSxJQUFJO1lBQ1gsUUFBUSxFQUFFLEdBQUcsRUFBRTtnQkFDYixJQUFJLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxFQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBQyxDQUFDLEVBQUU7b0JBQzlELE1BQU0sS0FBSyxDQUFDLCtFQUErRSxDQUFDLENBQUM7aUJBQzlGO2dCQUNELE9BQU8sTUFBTSxDQUFDO1lBQ2hCLENBQUM7U0FDRjtRQUNELHdCQUF3QixDQUFDLE1BQU0sQ0FBQztRQUNoQyxjQUFjLENBQUMsTUFBTSxDQUFDO1FBQ3RCLG9CQUFvQixFQUFFO1FBQ3RCLG9DQUFvQyxDQUFDLE1BQU0sQ0FBQztLQUM3QyxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDI0IFN3aXNzIEZlZGVyYWwgUmFpbHdheXNcbiAqXG4gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlXG4gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMFxuICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjBcbiAqL1xuXG5pbXBvcnQge0VOVklST05NRU5UX0lOSVRJQUxJWkVSLCBFbnZpcm9ubWVudFByb3ZpZGVycywgaW5qZWN0LCBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnN9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtXb3JrYmVuY2hTZXJ2aWNlfSBmcm9tICcuL3dvcmtiZW5jaC5zZXJ2aWNlJztcbmltcG9ydCB7V29ya2JlbmNoVXJsT2JzZXJ2ZXJ9IGZyb20gJy4vcm91dGluZy93b3JrYmVuY2gtdXJsLW9ic2VydmVyLnNlcnZpY2UnO1xuaW1wb3J0IHtXb3JrYmVuY2hDb25maWd9IGZyb20gJy4vd29ya2JlbmNoLWNvbmZpZyc7XG5pbXBvcnQge1dPUktCRU5DSF9MQVlPVVRfQ09ORklHfSBmcm9tICcuL3dvcmtiZW5jaC5jb25zdGFudHMnO1xuaW1wb3J0IHtWaWV3TWVudVNlcnZpY2V9IGZyb20gJy4vcGFydC92aWV3LWNvbnRleHQtbWVudS92aWV3LW1lbnUuc2VydmljZSc7XG5pbXBvcnQge1ZpZXdNb3ZlSGFuZGxlcn0gZnJvbSAnLi92aWV3L3ZpZXctbW92ZS1oYW5kbGVyLnNlcnZpY2UnO1xuaW1wb3J0IHtwcm92aWRlV29ya2JlbmNoTWljcm9mcm9udGVuZFN1cHBvcnR9IGZyb20gJy4vbWljcm9mcm9udGVuZC1wbGF0Zm9ybS93b3JrYmVuY2gtbWljcm9mcm9udGVuZC1zdXBwb3J0JztcbmltcG9ydCB7cHJvdmlkZVdvcmtiZW5jaExhdW5jaGVyfSBmcm9tICcuL3N0YXJ0dXAvd29ya2JlbmNoLWxhdW5jaGVyLnNlcnZpY2UnO1xuaW1wb3J0IHtwcm92aWRlTG9nZ2luZ30gZnJvbSAnLi9sb2dnaW5nJztcbmltcG9ydCB7V09SS0JFTkNIX1BPU1RfU1RBUlRVUCwgV09SS0JFTkNIX1BSRV9TVEFSVFVQLCBXT1JLQkVOQ0hfU1RBUlRVUH0gZnJvbSAnLi9zdGFydHVwL3dvcmtiZW5jaC1pbml0aWFsaXplcic7XG5pbXBvcnQge1dvcmtiZW5jaFBlcnNwZWN0aXZlU2VydmljZX0gZnJvbSAnLi9wZXJzcGVjdGl2ZS93b3JrYmVuY2gtcGVyc3BlY3RpdmUuc2VydmljZSc7XG5pbXBvcnQge0RlZmF1bHRXb3JrYmVuY2hTdG9yYWdlLCBXb3JrYmVuY2hTdG9yYWdlfSBmcm9tICcuL3N0b3JhZ2Uvd29ya2JlbmNoLXN0b3JhZ2UnO1xuaW1wb3J0IHtwcm92aWRlTG9jYXRpb25QYXRjaH0gZnJvbSAnLi9yb3V0aW5nL8m1bG9jYXRpb24nO1xuaW1wb3J0IHtXb3JrYmVuY2hMYXlvdXRGYWN0b3J5fSBmcm9tICcuL2xheW91dC93b3JrYmVuY2gtbGF5b3V0LmZhY3RvcnknO1xuaW1wb3J0IHtNQUlOX0FSRUF9IGZyb20gJy4vbGF5b3V0L3dvcmtiZW5jaC1sYXlvdXQnO1xuaW1wb3J0IHtXb3JrYmVuY2hUaGVtZVN3aXRjaGVyfSBmcm9tICcuL3RoZW1lL3dvcmtiZW5jaC10aGVtZS1zd2l0Y2hlci5zZXJ2aWNlJztcblxuLyoqXG4gKiBFbmFibGVzIGFuZCBjb25maWd1cmVzIHRoZSBTQ0lPTiBXb3JrYmVuY2ggaW4gYW4gYXBwbGljYXRpb24sIHJldHVybmluZyBhIHNldCBvZiBkZXBlbmRlbmN5LWluamVjdGlvbiBwcm92aWRlcnMgdG8gYmUgcmVnaXN0ZXJlZCBpbiBBbmd1bGFyLlxuICpcbiAqIFNDSU9OIFdvcmtiZW5jaCBlbmFibGVzIHRoZSBjcmVhdGlvbiBvZiBBbmd1bGFyIHdlYiBhcHBsaWNhdGlvbnMgdGhhdCByZXF1aXJlIGEgZmxleGlibGUgbGF5b3V0IHRvIGFycmFuZ2UgY29udGVudCBzaWRlLWJ5LXNpZGVcbiAqIG9yIHN0YWNrZWQsIGFsbCBwZXJzb25hbGl6YWJsZSBieSB0aGUgdXNlciB2aWEgZHJhZyAmIGRyb3AuIFRoaXMgdHlwZSBvZiBsYXlvdXQgaXMgaWRlYWwgZm9yIGFwcGxpY2F0aW9ucyB3aXRoIG5vbi1saW5lYXIgd29ya2Zsb3dzLFxuICogZW5hYmxpbmcgdXNlcnMgdG8gd29yayBvbiBjb250ZW50IGluIHBhcmFsbGVsLlxuICpcbiAqIFRoZSB3b3JrYmVuY2ggbGF5b3V0IGlzIGEgZ3JpZCBvZiBwYXJ0cy4gUGFydHMgYXJlIGFsaWduZWQgcmVsYXRpdmUgdG8gZWFjaCBvdGhlci4gQSBwYXJ0IGlzIGEgc3RhY2sgb2Ygdmlld3MuIENvbnRlbnQgaXMgZGlzcGxheWVkIGluIHZpZXdzLlxuICpcbiAqIFRoZSBsYXlvdXQgY2FuIGJlIGRpdmlkZWQgaW50byBhIG1haW4gYW5kIGEgcGVyaXBoZXJhbCBhcmVhLCB3aXRoIHRoZSBtYWluIGFyZWEgYXMgdGhlIHByaW1hcnkgcGxhY2UgZm9yIG9wZW5pbmcgdmlld3MuXG4gKiBUaGUgcGVyaXBoZXJhbCBhcmVhIGFycmFuZ2VzIHBhcnRzIGFyb3VuZCB0aGUgbWFpbiBhcmVhIHRvIHByb3ZpZGUgbmF2aWdhdGlvbiBvciBjb250ZXh0LXNlbnNpdGl2ZSBhc3Npc3RhbmNlIHRvIHN1cHBvcnRcbiAqIHRoZSB1c2VyJ3Mgd29ya2Zsb3cuIERlZmluaW5nIGEgbWFpbiBhcmVhIGlzIG9wdGlvbmFsIGFuZCByZWNvbW1lbmRlZCBmb3IgYXBwbGljYXRpb25zIHJlcXVpcmluZyBhIGRlZGljYXRlZCBhbmQgbWF4aW1pemFibGVcbiAqIGFyZWEgZm9yIHVzZXIgaW50ZXJhY3Rpb24uXG4gKlxuICogTXVsdGlwbGUgbGF5b3V0cywgY2FsbGVkIHBlcnNwZWN0aXZlcywgYXJlIHN1cHBvcnRlZC4gUGVyc3BlY3RpdmVzIGNhbiBiZSBzd2l0Y2hlZC4gT25seSBvbmUgcGVyc3BlY3RpdmUgaXMgYWN0aXZlIGF0IGEgdGltZS5cbiAqIFBlcnNwZWN0aXZlcyBzaGFyZSB0aGUgc2FtZSBtYWluIGFyZWEsIGlmIGFueS5cbiAqXG4gKiAtLS1cbiAqIFVzYWdlOlxuICpcbiAqIGBgYHRzXG4gKiBpbXBvcnQge2Jvb3RzdHJhcEFwcGxpY2F0aW9ufSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbiAqIGltcG9ydCB7cHJvdmlkZVJvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbiAqIGltcG9ydCB7cHJvdmlkZUFuaW1hdGlvbnN9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXIvYW5pbWF0aW9ucyc7XG4gKiBpbXBvcnQge3Byb3ZpZGVXb3JrYmVuY2h9IGZyb20gJ0BzY2lvbi93b3JrYmVuY2gnO1xuICpcbiAqIGJvb3RzdHJhcEFwcGxpY2F0aW9uKEFwcENvbXBvbmVudCwge1xuICogICBwcm92aWRlcnM6IFtcbiAqICAgICBwcm92aWRlV29ya2JlbmNoKCksXG4gKiAgICAgcHJvdmlkZVJvdXRlcihbXSksIC8vIHJlcXVpcmVkIGJ5IHRoZSBTQ0lPTiBXb3JrYmVuY2hcbiAqICAgICBwcm92aWRlQW5pbWF0aW9ucygpLCAvLyByZXF1aXJlZCBieSB0aGUgU0NJT04gV29ya2JlbmNoXG4gKiAgIF0sXG4gKiB9KTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZVdvcmtiZW5jaChjb25maWc/OiBXb3JrYmVuY2hDb25maWcpOiBFbnZpcm9ubWVudFByb3ZpZGVycyB7XG4gIGNvbmZpZyA/Pz0ge307XG5cbiAgcmV0dXJuIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyhbXG4gICAge1xuICAgICAgcHJvdmlkZTogV29ya2JlbmNoQ29uZmlnLFxuICAgICAgdXNlVmFsdWU6IGNvbmZpZyxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IFdvcmtiZW5jaFN0b3JhZ2UsXG4gICAgICB1c2VDbGFzczogY29uZmlnLnN0b3JhZ2UgPz8gRGVmYXVsdFdvcmtiZW5jaFN0b3JhZ2UsXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBXT1JLQkVOQ0hfTEFZT1VUX0NPTkZJRyxcbiAgICAgIHVzZUZhY3Rvcnk6ICgpID0+IGNvbmZpZyEubGF5b3V0ID8/ICgoZmFjdG9yeTogV29ya2JlbmNoTGF5b3V0RmFjdG9yeSkgPT4gZmFjdG9yeS5hZGRQYXJ0KE1BSU5fQVJFQSkpLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogV09SS0JFTkNIX1BSRV9TVEFSVFVQLFxuICAgICAgdXNlRXhpc3Rpbmc6IFdvcmtiZW5jaFRoZW1lU3dpdGNoZXIsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IFdPUktCRU5DSF9TVEFSVFVQLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgICB1c2VFeGlzdGluZzogV29ya2JlbmNoUGVyc3BlY3RpdmVTZXJ2aWNlLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogV09SS0JFTkNIX1BPU1RfU1RBUlRVUCxcbiAgICAgIHVzZUV4aXN0aW5nOiBWaWV3TWVudVNlcnZpY2UsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IFdPUktCRU5DSF9QT1NUX1NUQVJUVVAsXG4gICAgICB1c2VDbGFzczogVmlld01vdmVIYW5kbGVyLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBFTlZJUk9OTUVOVF9JTklUSUFMSVpFUixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgdXNlVmFsdWU6ICgpID0+IGluamVjdChXb3JrYmVuY2hVcmxPYnNlcnZlciksXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBFTlZJUk9OTUVOVF9JTklUSUFMSVpFUixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgdXNlVmFsdWU6ICgpID0+IHtcbiAgICAgICAgaWYgKGluamVjdChXb3JrYmVuY2hTZXJ2aWNlLCB7b3B0aW9uYWw6IHRydWUsIHNraXBTZWxmOiB0cnVlfSkpIHtcbiAgICAgICAgICB0aHJvdyBFcnJvcignW1Byb3ZpZGVXb3JrYmVuY2hFcnJvcl0gU0NJT04gV29ya2JlbmNoIG11c3QgYmUgcHJvdmlkZWQgaW4gcm9vdCBlbnZpcm9ubWVudC4nKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gJ3Jvb3QnO1xuICAgICAgfSxcbiAgICB9LFxuICAgIHByb3ZpZGVXb3JrYmVuY2hMYXVuY2hlcihjb25maWcpLFxuICAgIHByb3ZpZGVMb2dnaW5nKGNvbmZpZyksXG4gICAgcHJvdmlkZUxvY2F0aW9uUGF0Y2goKSxcbiAgICBwcm92aWRlV29ya2JlbmNoTWljcm9mcm9udGVuZFN1cHBvcnQoY29uZmlnKSxcbiAgXSk7XG59XG4iXX0=
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2JlbmNoLnByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vd29ya2JlbmNoL3NyYy9saWIvd29ya2JlbmNoLnByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsT0FBTyxFQUFDLHVCQUF1QixFQUF3QixNQUFNLEVBQUUsd0JBQXdCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDOUcsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFDOUUsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUMzRSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDakUsT0FBTyxFQUFDLG9DQUFvQyxFQUFDLE1BQU0sMERBQTBELENBQUM7QUFDOUcsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDOUUsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUN6QyxPQUFPLEVBQUMsc0JBQXNCLEVBQUUscUJBQXFCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RixPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSw2Q0FBNkMsQ0FBQztBQUN4RixPQUFPLEVBQUMsdUJBQXVCLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RixPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUVoRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtDRztBQUNILE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxNQUF3QjtJQUN2RCxNQUFNLEtBQUssRUFBRSxDQUFDO0lBRWQsT0FBTyx3QkFBd0IsQ0FBQztRQUM5QjtZQUNFLE9BQU8sRUFBRSxlQUFlO1lBQ3hCLFFBQVEsRUFBRSxNQUFNO1NBQ2pCO1FBQ0Q7WUFDRSxPQUFPLEVBQUUsZ0JBQWdCO1lBQ3pCLFFBQVEsRUFBRSxNQUFNLENBQUMsT0FBTyxJQUFJLHVCQUF1QjtTQUNwRDtRQUNEO1lBQ0UsT0FBTyxFQUFFLHFCQUFxQjtZQUM5QixXQUFXLEVBQUUsc0JBQXNCO1lBQ25DLEtBQUssRUFBRSxJQUFJO1NBQ1o7UUFDRDtZQUNFLE9BQU8sRUFBRSxzQkFBc0I7WUFDL0IsS0FBSyxFQUFFLElBQUk7WUFDWCxXQUFXLEVBQUUsMkJBQTJCO1NBQ3pDO1FBQ0Q7WUFDRSxPQUFPLEVBQUUsc0JBQXNCO1lBQy9CLFdBQVcsRUFBRSxlQUFlO1lBQzVCLEtBQUssRUFBRSxJQUFJO1NBQ1o7UUFDRDtZQUNFLE9BQU8sRUFBRSxzQkFBc0I7WUFDL0IsUUFBUSxFQUFFLGVBQWU7WUFDekIsS0FBSyxFQUFFLElBQUk7U0FDWjtRQUNEO1lBQ0UsT0FBTyxFQUFFLHVCQUF1QjtZQUNoQyxLQUFLLEVBQUUsSUFBSTtZQUNYLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsb0JBQW9CLENBQUM7U0FDN0M7UUFDRDtZQUNFLE9BQU8sRUFBRSx1QkFBdUI7WUFDaEMsS0FBSyxFQUFFLElBQUk7WUFDWCxRQUFRLEVBQUUsR0FBRyxFQUFFO2dCQUNiLElBQUksTUFBTSxDQUFDLGdCQUFnQixFQUFFLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFDLENBQUMsRUFBRSxDQUFDO29CQUMvRCxNQUFNLEtBQUssQ0FBQywrRUFBK0UsQ0FBQyxDQUFDO2dCQUMvRixDQUFDO2dCQUNELE9BQU8sTUFBTSxDQUFDO1lBQ2hCLENBQUM7U0FDRjtRQUNELHdCQUF3QixDQUFDLE1BQU0sQ0FBQztRQUNoQyxjQUFjLENBQUMsTUFBTSxDQUFDO1FBQ3RCLG9CQUFvQixFQUFFO1FBQ3RCLG9DQUFvQyxDQUFDLE1BQU0sQ0FBQztLQUM3QyxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDI0IFN3aXNzIEZlZGVyYWwgUmFpbHdheXNcbiAqXG4gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlXG4gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMFxuICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjBcbiAqL1xuXG5pbXBvcnQge0VOVklST05NRU5UX0lOSVRJQUxJWkVSLCBFbnZpcm9ubWVudFByb3ZpZGVycywgaW5qZWN0LCBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnN9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtXb3JrYmVuY2hTZXJ2aWNlfSBmcm9tICcuL3dvcmtiZW5jaC5zZXJ2aWNlJztcbmltcG9ydCB7V29ya2JlbmNoVXJsT2JzZXJ2ZXJ9IGZyb20gJy4vcm91dGluZy93b3JrYmVuY2gtdXJsLW9ic2VydmVyLnNlcnZpY2UnO1xuaW1wb3J0IHtXb3JrYmVuY2hDb25maWd9IGZyb20gJy4vd29ya2JlbmNoLWNvbmZpZyc7XG5pbXBvcnQge1ZpZXdNZW51U2VydmljZX0gZnJvbSAnLi9wYXJ0L3ZpZXctY29udGV4dC1tZW51L3ZpZXctbWVudS5zZXJ2aWNlJztcbmltcG9ydCB7Vmlld01vdmVIYW5kbGVyfSBmcm9tICcuL3ZpZXcvdmlldy1tb3ZlLWhhbmRsZXIuc2VydmljZSc7XG5pbXBvcnQge3Byb3ZpZGVXb3JrYmVuY2hNaWNyb2Zyb250ZW5kU3VwcG9ydH0gZnJvbSAnLi9taWNyb2Zyb250ZW5kLXBsYXRmb3JtL3dvcmtiZW5jaC1taWNyb2Zyb250ZW5kLXN1cHBvcnQnO1xuaW1wb3J0IHtwcm92aWRlV29ya2JlbmNoTGF1bmNoZXJ9IGZyb20gJy4vc3RhcnR1cC93b3JrYmVuY2gtbGF1bmNoZXIuc2VydmljZSc7XG5pbXBvcnQge3Byb3ZpZGVMb2dnaW5nfSBmcm9tICcuL2xvZ2dpbmcnO1xuaW1wb3J0IHtXT1JLQkVOQ0hfUE9TVF9TVEFSVFVQLCBXT1JLQkVOQ0hfUFJFX1NUQVJUVVB9IGZyb20gJy4vc3RhcnR1cC93b3JrYmVuY2gtaW5pdGlhbGl6ZXInO1xuaW1wb3J0IHtXb3JrYmVuY2hQZXJzcGVjdGl2ZVNlcnZpY2V9IGZyb20gJy4vcGVyc3BlY3RpdmUvd29ya2JlbmNoLXBlcnNwZWN0aXZlLnNlcnZpY2UnO1xuaW1wb3J0IHtEZWZhdWx0V29ya2JlbmNoU3RvcmFnZSwgV29ya2JlbmNoU3RvcmFnZX0gZnJvbSAnLi9zdG9yYWdlL3dvcmtiZW5jaC1zdG9yYWdlJztcbmltcG9ydCB7cHJvdmlkZUxvY2F0aW9uUGF0Y2h9IGZyb20gJy4vcm91dGluZy/JtWxvY2F0aW9uJztcbmltcG9ydCB7V29ya2JlbmNoVGhlbWVTd2l0Y2hlcn0gZnJvbSAnLi90aGVtZS93b3JrYmVuY2gtdGhlbWUtc3dpdGNoZXIuc2VydmljZSc7XG5cbi8qKlxuICogRW5hYmxlcyBhbmQgY29uZmlndXJlcyB0aGUgU0NJT04gV29ya2JlbmNoIGluIGFuIGFwcGxpY2F0aW9uLCByZXR1cm5pbmcgYSBzZXQgb2YgZGVwZW5kZW5jeS1pbmplY3Rpb24gcHJvdmlkZXJzIHRvIGJlIHJlZ2lzdGVyZWQgaW4gQW5ndWxhci5cbiAqXG4gKiBTQ0lPTiBXb3JrYmVuY2ggZW5hYmxlcyB0aGUgY3JlYXRpb24gb2YgQW5ndWxhciB3ZWIgYXBwbGljYXRpb25zIHRoYXQgcmVxdWlyZSBhIGZsZXhpYmxlIGxheW91dCB0byBhcnJhbmdlIGNvbnRlbnQgc2lkZS1ieS1zaWRlXG4gKiBvciBzdGFja2VkLCBhbGwgcGVyc29uYWxpemFibGUgYnkgdGhlIHVzZXIgdmlhIGRyYWcgJiBkcm9wLiBUaGlzIHR5cGUgb2YgbGF5b3V0IGlzIGlkZWFsIGZvciBhcHBsaWNhdGlvbnMgd2l0aCBub24tbGluZWFyIHdvcmtmbG93cyxcbiAqIGVuYWJsaW5nIHVzZXJzIHRvIHdvcmsgb24gY29udGVudCBpbiBwYXJhbGxlbC5cbiAqXG4gKiBUaGUgd29ya2JlbmNoIGxheW91dCBpcyBhIGdyaWQgb2YgcGFydHMuIFBhcnRzIGFyZSBhbGlnbmVkIHJlbGF0aXZlIHRvIGVhY2ggb3RoZXIuIEEgcGFydCBpcyBhIHN0YWNrIG9mIHZpZXdzLiBDb250ZW50IGlzIGRpc3BsYXllZCBpbiB2aWV3cy5cbiAqXG4gKiBUaGUgbGF5b3V0IGNhbiBiZSBkaXZpZGVkIGludG8gYSBtYWluIGFuZCBhIHBlcmlwaGVyYWwgYXJlYSwgd2l0aCB0aGUgbWFpbiBhcmVhIGFzIHRoZSBwcmltYXJ5IHBsYWNlIGZvciBvcGVuaW5nIHZpZXdzLlxuICogVGhlIHBlcmlwaGVyYWwgYXJlYSBhcnJhbmdlcyBwYXJ0cyBhcm91bmQgdGhlIG1haW4gYXJlYSB0byBwcm92aWRlIG5hdmlnYXRpb24gb3IgY29udGV4dC1zZW5zaXRpdmUgYXNzaXN0YW5jZSB0byBzdXBwb3J0XG4gKiB0aGUgdXNlcidzIHdvcmtmbG93LiBEZWZpbmluZyBhIG1haW4gYXJlYSBpcyBvcHRpb25hbCBhbmQgcmVjb21tZW5kZWQgZm9yIGFwcGxpY2F0aW9ucyByZXF1aXJpbmcgYSBkZWRpY2F0ZWQgYW5kIG1heGltaXphYmxlXG4gKiBhcmVhIGZvciB1c2VyIGludGVyYWN0aW9uLlxuICpcbiAqIE11bHRpcGxlIGxheW91dHMsIGNhbGxlZCBwZXJzcGVjdGl2ZXMsIGFyZSBzdXBwb3J0ZWQuIFBlcnNwZWN0aXZlcyBjYW4gYmUgc3dpdGNoZWQuIE9ubHkgb25lIHBlcnNwZWN0aXZlIGlzIGFjdGl2ZSBhdCBhIHRpbWUuXG4gKiBQZXJzcGVjdGl2ZXMgc2hhcmUgdGhlIHNhbWUgbWFpbiBhcmVhLCBpZiBhbnkuXG4gKlxuICogLS0tXG4gKiBVc2FnZTpcbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0IHtib290c3RyYXBBcHBsaWNhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG4gKiBpbXBvcnQge3Byb3ZpZGVSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG4gKiBpbXBvcnQge3Byb3ZpZGVBbmltYXRpb25zfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyL2FuaW1hdGlvbnMnO1xuICogaW1wb3J0IHtwcm92aWRlV29ya2JlbmNofSBmcm9tICdAc2Npb24vd29ya2JlbmNoJztcbiAqXG4gKiBib290c3RyYXBBcHBsaWNhdGlvbihBcHBDb21wb25lbnQsIHtcbiAqICAgcHJvdmlkZXJzOiBbXG4gKiAgICAgcHJvdmlkZVdvcmtiZW5jaCgpLFxuICogICAgIHByb3ZpZGVSb3V0ZXIoW10pLCAvLyByZXF1aXJlZCBieSB0aGUgU0NJT04gV29ya2JlbmNoXG4gKiAgICAgcHJvdmlkZUFuaW1hdGlvbnMoKSwgLy8gcmVxdWlyZWQgYnkgdGhlIFNDSU9OIFdvcmtiZW5jaFxuICogICBdLFxuICogfSk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVXb3JrYmVuY2goY29uZmlnPzogV29ya2JlbmNoQ29uZmlnKTogRW52aXJvbm1lbnRQcm92aWRlcnMge1xuICBjb25maWcgPz89IHt9O1xuXG4gIHJldHVybiBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMoW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IFdvcmtiZW5jaENvbmZpZyxcbiAgICAgIHVzZVZhbHVlOiBjb25maWcsXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBXb3JrYmVuY2hTdG9yYWdlLFxuICAgICAgdXNlQ2xhc3M6IGNvbmZpZy5zdG9yYWdlID8/IERlZmF1bHRXb3JrYmVuY2hTdG9yYWdlLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogV09SS0JFTkNIX1BSRV9TVEFSVFVQLFxuICAgICAgdXNlRXhpc3Rpbmc6IFdvcmtiZW5jaFRoZW1lU3dpdGNoZXIsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IFdPUktCRU5DSF9QT1NUX1NUQVJUVVAsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgIHVzZUV4aXN0aW5nOiBXb3JrYmVuY2hQZXJzcGVjdGl2ZVNlcnZpY2UsXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBXT1JLQkVOQ0hfUE9TVF9TVEFSVFVQLFxuICAgICAgdXNlRXhpc3Rpbmc6IFZpZXdNZW51U2VydmljZSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogV09SS0JFTkNIX1BPU1RfU1RBUlRVUCxcbiAgICAgIHVzZUNsYXNzOiBWaWV3TW92ZUhhbmRsZXIsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IEVOVklST05NRU5UX0lOSVRJQUxJWkVSLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgICB1c2VWYWx1ZTogKCkgPT4gaW5qZWN0KFdvcmtiZW5jaFVybE9ic2VydmVyKSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IEVOVklST05NRU5UX0lOSVRJQUxJWkVSLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgICB1c2VWYWx1ZTogKCkgPT4ge1xuICAgICAgICBpZiAoaW5qZWN0KFdvcmtiZW5jaFNlcnZpY2UsIHtvcHRpb25hbDogdHJ1ZSwgc2tpcFNlbGY6IHRydWV9KSkge1xuICAgICAgICAgIHRocm93IEVycm9yKCdbUHJvdmlkZVdvcmtiZW5jaEVycm9yXSBTQ0lPTiBXb3JrYmVuY2ggbXVzdCBiZSBwcm92aWRlZCBpbiByb290IGVudmlyb25tZW50LicpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAncm9vdCc7XG4gICAgICB9LFxuICAgIH0sXG4gICAgcHJvdmlkZVdvcmtiZW5jaExhdW5jaGVyKGNvbmZpZyksXG4gICAgcHJvdmlkZUxvZ2dpbmcoY29uZmlnKSxcbiAgICBwcm92aWRlTG9jYXRpb25QYXRjaCgpLFxuICAgIHByb3ZpZGVXb3JrYmVuY2hNaWNyb2Zyb250ZW5kU3VwcG9ydChjb25maWcpLFxuICBdKTtcbn1cbiJdfQ==
@@ -19,11 +19,11 @@ import * as i0 from "@angular/core";
19
19
  * Perspectives share the same main area, if any.
20
20
  */
21
21
  export class WorkbenchService {
22
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: WorkbenchService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
23
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: WorkbenchService, providedIn: 'root', useExisting: ɵWorkbenchService }); }
22
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: WorkbenchService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
23
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: WorkbenchService, providedIn: 'root', useExisting: ɵWorkbenchService }); }
24
24
  }
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: WorkbenchService, decorators: [{
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: WorkbenchService, decorators: [{
26
26
  type: Injectable,
27
27
  args: [{ providedIn: 'root', useExisting: ɵWorkbenchService }]
28
28
  }] });
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2JlbmNoLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi93b3JrYmVuY2gvc3JjL2xpYi93b3JrYmVuY2guc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFnQkEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQzs7QUFHdkQ7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQkc7QUFFSCxNQUFNLE9BQWdCLGdCQUFnQjs4R0FBaEIsZ0JBQWdCO2tIQUFoQixnQkFBZ0IsY0FEYixNQUFNLGVBQWUsaUJBQWlCOzsyRkFDekMsZ0JBQWdCO2tCQURyQyxVQUFVO21CQUFDLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjIgU3dpc3MgRmVkZXJhbCBSYWlsd2F5c1xuICpcbiAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGVcbiAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wXG4gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC9cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMFxuICovXG5cbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0Rpc3Bvc2FibGV9IGZyb20gJy4vY29tbW9uL2Rpc3Bvc2FibGUnO1xuaW1wb3J0IHtXb3JrYmVuY2hNZW51SXRlbUZhY3RvcnlGbiwgV29ya2JlbmNoUGFydEFjdGlvbiwgV29ya2JlbmNoVGhlbWV9IGZyb20gJy4vd29ya2JlbmNoLm1vZGVsJztcbmltcG9ydCB7Vmlld0lkLCBXb3JrYmVuY2hWaWV3fSBmcm9tICcuL3ZpZXcvd29ya2JlbmNoLXZpZXcubW9kZWwnO1xuaW1wb3J0IHtXb3JrYmVuY2hQZXJzcGVjdGl2ZSwgV29ya2JlbmNoUGVyc3BlY3RpdmVEZWZpbml0aW9ufSBmcm9tICcuL3BlcnNwZWN0aXZlL3dvcmtiZW5jaC1wZXJzcGVjdGl2ZS5tb2RlbCc7XG5pbXBvcnQge1dvcmtiZW5jaFBhcnR9IGZyb20gJy4vcGFydC93b3JrYmVuY2gtcGFydC5tb2RlbCc7XG5pbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHvJtVdvcmtiZW5jaFNlcnZpY2V9IGZyb20gJy4vybV3b3JrYmVuY2guc2VydmljZSc7XG5pbXBvcnQge1dvcmtiZW5jaExheW91dH0gZnJvbSAnLi9sYXlvdXQvd29ya2JlbmNoLWxheW91dCc7XG5cbi8qKlxuICogVGhlIGNlbnRyYWwgY2xhc3Mgb2YgdGhlIFNDSU9OIFdvcmtiZW5jaC5cbiAqXG4gKiBTQ0lPTiBXb3JrYmVuY2ggZW5hYmxlcyB0aGUgY3JlYXRpb24gb2YgQW5ndWxhciB3ZWIgYXBwbGljYXRpb25zIHRoYXQgcmVxdWlyZSBhIGZsZXhpYmxlIGxheW91dCB0byBhcnJhbmdlIGNvbnRlbnQgc2lkZS1ieS1zaWRlXG4gKiBvciBzdGFja2VkLCBhbGwgcGVyc29uYWxpemFibGUgYnkgdGhlIHVzZXIgdmlhIGRyYWcgJiBkcm9wLiBUaGlzIHR5cGUgb2YgbGF5b3V0IGlzIGlkZWFsIGZvciBhcHBsaWNhdGlvbnMgd2l0aCBub24tbGluZWFyIHdvcmtmbG93cyxcbiAqIGVuYWJsaW5nIHVzZXJzIHRvIHdvcmsgb24gY29udGVudCBpbiBwYXJhbGxlbC5cbiAqXG4gKiBUaGUgd29ya2JlbmNoIGxheW91dCBpcyBhIGdyaWQgb2YgcGFydHMuIFBhcnRzIGFyZSBhbGlnbmVkIHJlbGF0aXZlIHRvIGVhY2ggb3RoZXIuIEEgcGFydCBpcyBhIHN0YWNrIG9mIHZpZXdzLiBDb250ZW50IGlzIGRpc3BsYXllZCBpbiB2aWV3cy5cbiAqXG4gKiBUaGUgbGF5b3V0IGNhbiBiZSBkaXZpZGVkIGludG8gYSBtYWluIGFuZCBhIHBlcmlwaGVyYWwgYXJlYSwgd2l0aCB0aGUgbWFpbiBhcmVhIGFzIHRoZSBwcmltYXJ5IHBsYWNlIGZvciBvcGVuaW5nIHZpZXdzLlxuICogVGhlIHBlcmlwaGVyYWwgYXJlYSBhcnJhbmdlcyBwYXJ0cyBhcm91bmQgdGhlIG1haW4gYXJlYSB0byBwcm92aWRlIG5hdmlnYXRpb24gb3IgY29udGV4dC1zZW5zaXRpdmUgYXNzaXN0YW5jZSB0byBzdXBwb3J0XG4gKiB0aGUgdXNlcidzIHdvcmtmbG93LiBEZWZpbmluZyBhIG1haW4gYXJlYSBpcyBvcHRpb25hbCBhbmQgcmVjb21tZW5kZWQgZm9yIGFwcGxpY2F0aW9ucyByZXF1aXJpbmcgYSBkZWRpY2F0ZWQgYW5kIG1heGltaXphYmxlXG4gKiBhcmVhIGZvciB1c2VyIGludGVyYWN0aW9uLlxuICpcbiAqIE11bHRpcGxlIGxheW91dHMsIGNhbGxlZCBwZXJzcGVjdGl2ZXMsIGFyZSBzdXBwb3J0ZWQuIFBlcnNwZWN0aXZlcyBjYW4gYmUgc3dpdGNoZWQuIE9ubHkgb25lIHBlcnNwZWN0aXZlIGlzIGFjdGl2ZSBhdCBhIHRpbWUuXG4gKiBQZXJzcGVjdGl2ZXMgc2hhcmUgdGhlIHNhbWUgbWFpbiBhcmVhLCBpZiBhbnkuXG4gKi9cbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCcsIHVzZUV4aXN0aW5nOiDJtVdvcmtiZW5jaFNlcnZpY2V9KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFdvcmtiZW5jaFNlcnZpY2Uge1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IHtAbGluayBXb3JrYmVuY2hMYXlvdXR9LlxuICAgKlxuICAgKiBUaGUgbGF5b3V0IGlzIGFuIGltbXV0YWJsZSBvYmplY3QuIE1vZGlmaWNhdGlvbnMgaGF2ZSBubyBzaWRlIGVmZmVjdHMuIFRoZSBsYXlvdXQgY2FuIGJlIG1vZGlmaWVkIHVzaW5nIHtAbGluayBXb3JrYmVuY2hSb3V0ZXIubmF2aWdhdGV9LlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGxheW91dDogV29ya2JlbmNoTGF5b3V0O1xuXG4gIC8qKlxuICAgKiBFbWl0cyB0aGUgY3VycmVudCB7QGxpbmsgV29ya2JlbmNoTGF5b3V0fS5cbiAgICpcbiAgICogVXBvbiBzdWJzY3JpcHRpb24sIGVtaXRzIHRoZSBjdXJyZW50IHdvcmtiZW5jaCBsYXlvdXQsIGFuZCB0aGVuIGVtaXRzIGNvbnRpbnVvdXNseVxuICAgKiB3aGVuIHRoZSBsYXlvdXQgY2hhbmdlcy4gSXQgbmV2ZXIgY29tcGxldGVzLlxuICAgKlxuICAgKiBUaGUgbGF5b3V0IGlzIGFuIGltbXV0YWJsZSBvYmplY3QuIE1vZGlmaWNhdGlvbnMgaGF2ZSBubyBzaWRlIGVmZmVjdHMuIFRoZSBsYXlvdXQgY2FuIGJlIG1vZGlmaWVkIHVzaW5nIHtAbGluayBXb3JrYmVuY2hSb3V0ZXIubmF2aWdhdGV9LlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGxheW91dCQ6IE9ic2VydmFibGU8V29ya2JlbmNoTGF5b3V0PjtcblxuICAvKipcbiAgICogUGVyc3BlY3RpdmVzIHJlZ2lzdGVyZWQgd2l0aCB0aGUgd29ya2JlbmNoLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IHBlcnNwZWN0aXZlczogcmVhZG9ubHkgV29ya2JlbmNoUGVyc3BlY3RpdmVbXTtcblxuICAvKipcbiAgICogRW1pdHMgdGhlIHBlcnNwZWN0aXZlcyByZWdpc3RlcmVkIHdpdGggdGhlIHdvcmtiZW5jaC5cbiAgICpcbiAgICogVXBvbiBzdWJzY3JpcHRpb24sIGVtaXRzIHJlZ2lzdGVyZWQgcGVyc3BlY3RpdmVzLCBhbmQgdGhlbiBlbWl0cyBjb250aW51b3VzbHlcbiAgICogd2hlbiBuZXcgcGVyc3BlY3RpdmVzIGFyZSByZWdpc3RlcmVkIG9yIGV4aXN0aW5nIHBlcnNwZWN0aXZlcyB1bnJlZ2lzdGVyZWQuIEl0IG5ldmVyIGNvbXBsZXRlcy5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBwZXJzcGVjdGl2ZXMkOiBPYnNlcnZhYmxlPHJlYWRvbmx5IFdvcmtiZW5jaFBlcnNwZWN0aXZlW10+O1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgcmVmZXJlbmNlIHRvIHRoZSBzcGVjaWZpZWQge0BsaW5rIFdvcmtiZW5jaFBlcnNwZWN0aXZlfSwgb3IgYG51bGxgIGlmIG5vdCBmb3VuZC5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBnZXRQZXJzcGVjdGl2ZShwZXJzcGVjdGl2ZUlkOiBzdHJpbmcpOiBXb3JrYmVuY2hQZXJzcGVjdGl2ZSB8IG51bGw7XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVycyB0aGUgZ2l2ZW4gcGVyc3BlY3RpdmUgdG8gYXJyYW5nZSB2aWV3cyBhcm91bmQgdGhlIG1haW4gYXJlYS5cbiAgICogVGhlIHBlcnNwZWN0aXZlIGNhbiBiZSBhY3RpdmF0ZWQgdmlhIHRoZSB7QGxpbmsgV29ya2JlbmNoU2VydmljZSNzd2l0Y2hQZXJzcGVjdGl2ZX0gbWV0aG9kLlxuICAgKlxuICAgKiBAc2VlIFdvcmtiZW5jaFBlcnNwZWN0aXZlXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgcmVnaXN0ZXJQZXJzcGVjdGl2ZShwZXJzcGVjdGl2ZTogV29ya2JlbmNoUGVyc3BlY3RpdmVEZWZpbml0aW9uKTogUHJvbWlzZTx2b2lkPjtcblxuICAvKipcbiAgICogU3dpdGNoZXMgdG8gdGhlIHNwZWNpZmllZCBwZXJzcGVjdGl2ZS4gTGF5b3V0IGFuZCB2aWV3cyBvZiB0aGUgbWFpbiBhcmVhIGRvIG5vdCBjaGFuZ2UuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3Qgc3dpdGNoUGVyc3BlY3RpdmUoaWQ6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj47XG5cbiAgLyoqXG4gICAqIFJlc2V0cyB0aGUgY3VycmVudGx5IGFjdGl2ZSBwZXJzcGVjdGl2ZSB0byBpdHMgaW5pdGlhbCBsYXlvdXQuIExheW91dCBhbmQgdmlld3Mgb2YgdGhlIG1haW4gYXJlYSBkbyBub3QgY2hhbmdlLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHJlc2V0UGVyc3BlY3RpdmUoKTogUHJvbWlzZTx2b2lkPjtcblxuICAvKipcbiAgICogUGFydHMgaW4gdGhlIHdvcmtiZW5jaCBsYXlvdXQuXG4gICAqXG4gICAqIEVhY2gge0BsaW5rIFdvcmtiZW5jaFBhcnR9IG9iamVjdCByZXByZXNlbnRzIGEgcGFydCBpbiB0aGUgd29ya2JlbmNoIGxheW91dCB0aGF0IGNhbiBiZSBpbnRlcmFjdGVkIHdpdGguXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgcGFydHM6IHJlYWRvbmx5IFdvcmtiZW5jaFBhcnRbXTtcblxuICAvKipcbiAgICogRW1pdHMgdGhlIHBhcnRzIGluIHRoZSB3b3JrYmVuY2ggbGF5b3V0LlxuICAgKlxuICAgKiBVcG9uIHN1YnNjcmlwdGlvbiwgZW1pdHMgcGFydHMgY29udGFpbmVkIGluIHRoZSBsYXlvdXQsIGFuZCB0aGVuIGVtaXRzIGNvbnRpbnVvdXNseVxuICAgKiB3aGVuIG5ldyBwYXJ0cyBhcmUgYWRkZWQgb3IgZXhpc3RpbmcgcGFydHMgcmVtb3ZlZC4gSXQgbmV2ZXIgY29tcGxldGVzLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IHBhcnRzJDogT2JzZXJ2YWJsZTxyZWFkb25seSBXb3JrYmVuY2hQYXJ0W10+O1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgcmVmZXJlbmNlIHRvIHRoZSBzcGVjaWZpZWQge0BsaW5rIFdvcmtiZW5jaFBhcnR9LCBvciBgbnVsbGAgaWYgbm90IGZvdW5kLlxuICAgKlxuICAgKiBBIHtAbGluayBXb3JrYmVuY2hQYXJ0fSBvYmplY3QgcmVwcmVzZW50cyBhIHBhcnQgaW4gdGhlIHdvcmtiZW5jaCBsYXlvdXQgdGhhdCBjYW4gYmUgaW50ZXJhY3RlZCB3aXRoLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGdldFBhcnQocGFydElkOiBzdHJpbmcpOiBXb3JrYmVuY2hQYXJ0IHwgbnVsbDtcblxuICAvKipcbiAgICogVmlld3MgaW4gdGhlIHdvcmtiZW5jaCBsYXlvdXQuXG4gICAqXG4gICAqIEVhY2gge0BsaW5rIFdvcmtiZW5jaFZpZXd9IG9iamVjdCByZXByZXNlbnRzIGEgdmlldyBpbiB0aGUgd29ya2JlbmNoIGxheW91dCB0aGF0IGNhbiBiZSBpbnRlcmFjdGVkIHdpdGguXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgdmlld3M6IHJlYWRvbmx5IFdvcmtiZW5jaFZpZXdbXTtcblxuICAvKipcbiAgICogRW1pdHMgdGhlIHZpZXdzIG9wZW5lZCBpbiB0aGUgd29ya2JlbmNoLlxuICAgKlxuICAgKiBVcG9uIHN1YnNjcmlwdGlvbiwgZW1pdHMgdmlld3MgY29udGFpbmVkIGluIHRoZSBsYXlvdXQsIGFuZCB0aGVuIGVtaXRzIGNvbnRpbnVvdXNseVxuICAgKiB3aGVuIG5ldyB2aWV3cyBhcmUgb3BlbmVkIG9yIGV4aXN0aW5nIHZpZXdzIGNsb3NlZC4gSXQgbmV2ZXIgY29tcGxldGVzLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IHZpZXdzJDogT2JzZXJ2YWJsZTxyZWFkb25seSBXb3JrYmVuY2hWaWV3W10+O1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgcmVmZXJlbmNlIHRvIHRoZSBzcGVjaWZpZWQge0BsaW5rIFdvcmtiZW5jaFZpZXd9LCBvciBgbnVsbGAgaWYgbm90IGZvdW5kLlxuICAgKlxuICAgKiBBIHtAbGluayBXb3JrYmVuY2hWaWV3fSBvYmplY3QgcmVwcmVzZW50cyBhIHZpZXcgaW4gdGhlIHdvcmtiZW5jaCBsYXlvdXQgdGhhdCBjYW4gYmUgaW50ZXJhY3RlZCB3aXRoLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGdldFZpZXcodmlld0lkOiBWaWV3SWQpOiBXb3JrYmVuY2hWaWV3IHwgbnVsbDtcblxuICAvKipcbiAgICogQ2xvc2VzIHRoZSBzcGVjaWZpZWQgd29ya2JlbmNoIHZpZXdzLlxuICAgKlxuICAgKiBOb3RlOiBUaGlzIGluc3RydWN0aW9uIHJ1bnMgYXN5bmNocm9ub3VzbHkgdmlhIFVSTCByb3V0aW5nLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGNsb3NlVmlld3MoLi4udmlld0lkczogVmlld0lkW10pOiBQcm9taXNlPGJvb2xlYW4+O1xuXG4gIC8qKlxuICAgKiBDb250cmlidXRlcyBhbiBhY3Rpb24gdG8gYSBwYXJ0J3MgYWN0aW9uIGJhci5cbiAgICpcbiAgICogUGFydCBhY3Rpb25zIGFyZSBkaXNwbGF5ZWQgdG8gdGhlIHJpZ2h0IG9mIHRoZSB2aWV3IHRhYiBiYXIgYW5kIGVuYWJsZSBpbnRlcmFjdGlvbiB3aXRoIHRoZSBwYXJ0IGFuZCBpdHMgY29udGVudC5cbiAgICpcbiAgICogQHJldHVybiBoYW5kbGUgdG8gdW5yZWdpc3RlciB0aGUgcGFydCBhY3Rpb24uXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgcmVnaXN0ZXJQYXJ0QWN0aW9uKGFjdGlvbjogV29ya2JlbmNoUGFydEFjdGlvbik6IERpc3Bvc2FibGU7XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVycyBhIHZpZXcgbWVudSBpdGVtIHdoaWNoIGlzIGFkZGVkIHRvIHRoZSBjb250ZXh0IG1lbnUgb2YgZXZlcnkgdmlldyB0YWIuXG4gICAqXG4gICAqIFRoZSBmYWN0b3J5IGZ1bmN0aW9uIGlzIGludm9rZWQgd2l0aCB0aGUgdmlldyBhcyBpdHMgYXJndW1lbnQgd2hlbiB0aGUgbWVudSBpcyBhYm91dCB0byBzaG93LlxuICAgKlxuICAgKiBAcmV0dXJuIGhhbmRsZSB0byB1bnJlZ2lzdGVyIHRoZSBtZW51IGl0ZW0uXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgcmVnaXN0ZXJWaWV3TWVudUl0ZW0oZmFjdG9yeUZuOiBXb3JrYmVuY2hNZW51SXRlbUZhY3RvcnlGbik6IERpc3Bvc2FibGU7XG5cbiAgLyoqXG4gICAqIFN3aXRjaGVzIHRoZSB0aGVtZSBvZiB0aGUgd29ya2JlbmNoLlxuICAgKlxuICAgKiBUaGVtZXMgY2FuIGJlIHJlZ2lzdGVyZWQgd2hlbiBsb2FkaW5nIHRoZSBgQHNjaW9uL3dvcmtiZW5jaGAgU0NTUyBtb2R1bGUgaW4gdGhlIGFwcGxpY2F0aW9uJ3MgYHN0eWxlcy5zY3NzYCBmaWxlLlxuICAgKiBCeSBkZWZhdWx0LCBTQ0lPTiBwcm92aWRlcyBhIGxpZ2h0IGFuZCBhIGRhcmsgdGhlbWUsIGBzY2lvbi1saWdodGAgYW5kIGBzY2lvbi1kYXJrYC5cbiAgICpcbiAgICogU2VlIHRoZSBkb2N1bWVudGF0aW9uIG9mIGBAc2Npb24vd29ya2JlbmNoYCBTQ1NTIG1vZHVsZSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHRoZW1lIC0gVGhlIG5hbWUgb2YgdGhlIHRoZW1lIHRvIHN3aXRjaCB0by5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBzd2l0Y2hUaGVtZSh0aGVtZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPjtcblxuICAvKipcbiAgICogRW1pdHMgdGhlIGN1cnJlbnQgd29ya2JlbmNoIHRoZW1lLlxuICAgKlxuICAgKiBVcG9uIHN1YnNjcmlwdGlvbiwgZW1pdHMgdGhlIGN1cnJlbnQgdGhlbWUsIGFuZCB0aGVuIGNvbnRpbnVvdXNseSBlbWl0cyB3aGVuIHN3aXRjaGluZyB0aGUgdGhlbWUuIEl0IG5ldmVyIGNvbXBsZXRlcy5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSB0aGVtZSQ6IE9ic2VydmFibGU8V29ya2JlbmNoVGhlbWUgfCBudWxsPjtcbn1cbiJdfQ==
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2JlbmNoLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi93b3JrYmVuY2gvc3JjL2xpYi93b3JrYmVuY2guc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFlQSxPQUFPLEVBQUMsVUFBVSxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHNCQUFzQixDQUFDOztBQUd2RDs7Ozs7Ozs7Ozs7Ozs7OztHQWdCRztBQUVILE1BQU0sT0FBZ0IsZ0JBQWdCOzhHQUFoQixnQkFBZ0I7a0hBQWhCLGdCQUFnQixjQURiLE1BQU0sZUFBZSxpQkFBaUI7OzJGQUN6QyxnQkFBZ0I7a0JBRHJDLFVBQVU7bUJBQUMsRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyMiBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wXG4gKi9cblxuaW1wb3J0IHtEaXNwb3NhYmxlfSBmcm9tICcuL2NvbW1vbi9kaXNwb3NhYmxlJztcbmltcG9ydCB7V29ya2JlbmNoTWVudUl0ZW1GYWN0b3J5Rm4sIFdvcmtiZW5jaFBhcnRBY3Rpb24sIFdvcmtiZW5jaFRoZW1lfSBmcm9tICcuL3dvcmtiZW5jaC5tb2RlbCc7XG5pbXBvcnQge1ZpZXdJZCwgV29ya2JlbmNoVmlld30gZnJvbSAnLi92aWV3L3dvcmtiZW5jaC12aWV3Lm1vZGVsJztcbmltcG9ydCB7V29ya2JlbmNoUGVyc3BlY3RpdmUsIFdvcmtiZW5jaFBlcnNwZWN0aXZlRGVmaW5pdGlvbn0gZnJvbSAnLi9wZXJzcGVjdGl2ZS93b3JrYmVuY2gtcGVyc3BlY3RpdmUubW9kZWwnO1xuaW1wb3J0IHtXb3JrYmVuY2hQYXJ0fSBmcm9tICcuL3BhcnQvd29ya2JlbmNoLXBhcnQubW9kZWwnO1xuaW1wb3J0IHtJbmplY3RhYmxlLCBTaWduYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHvJtVdvcmtiZW5jaFNlcnZpY2V9IGZyb20gJy4vybV3b3JrYmVuY2guc2VydmljZSc7XG5pbXBvcnQge1dvcmtiZW5jaExheW91dH0gZnJvbSAnLi9sYXlvdXQvd29ya2JlbmNoLWxheW91dCc7XG5cbi8qKlxuICogVGhlIGNlbnRyYWwgY2xhc3Mgb2YgdGhlIFNDSU9OIFdvcmtiZW5jaC5cbiAqXG4gKiBTQ0lPTiBXb3JrYmVuY2ggZW5hYmxlcyB0aGUgY3JlYXRpb24gb2YgQW5ndWxhciB3ZWIgYXBwbGljYXRpb25zIHRoYXQgcmVxdWlyZSBhIGZsZXhpYmxlIGxheW91dCB0byBhcnJhbmdlIGNvbnRlbnQgc2lkZS1ieS1zaWRlXG4gKiBvciBzdGFja2VkLCBhbGwgcGVyc29uYWxpemFibGUgYnkgdGhlIHVzZXIgdmlhIGRyYWcgJiBkcm9wLiBUaGlzIHR5cGUgb2YgbGF5b3V0IGlzIGlkZWFsIGZvciBhcHBsaWNhdGlvbnMgd2l0aCBub24tbGluZWFyIHdvcmtmbG93cyxcbiAqIGVuYWJsaW5nIHVzZXJzIHRvIHdvcmsgb24gY29udGVudCBpbiBwYXJhbGxlbC5cbiAqXG4gKiBUaGUgd29ya2JlbmNoIGxheW91dCBpcyBhIGdyaWQgb2YgcGFydHMuIFBhcnRzIGFyZSBhbGlnbmVkIHJlbGF0aXZlIHRvIGVhY2ggb3RoZXIuIEEgcGFydCBpcyBhIHN0YWNrIG9mIHZpZXdzLiBDb250ZW50IGlzIGRpc3BsYXllZCBpbiB2aWV3cy5cbiAqXG4gKiBUaGUgbGF5b3V0IGNhbiBiZSBkaXZpZGVkIGludG8gYSBtYWluIGFuZCBhIHBlcmlwaGVyYWwgYXJlYSwgd2l0aCB0aGUgbWFpbiBhcmVhIGFzIHRoZSBwcmltYXJ5IHBsYWNlIGZvciBvcGVuaW5nIHZpZXdzLlxuICogVGhlIHBlcmlwaGVyYWwgYXJlYSBhcnJhbmdlcyBwYXJ0cyBhcm91bmQgdGhlIG1haW4gYXJlYSB0byBwcm92aWRlIG5hdmlnYXRpb24gb3IgY29udGV4dC1zZW5zaXRpdmUgYXNzaXN0YW5jZSB0byBzdXBwb3J0XG4gKiB0aGUgdXNlcidzIHdvcmtmbG93LiBEZWZpbmluZyBhIG1haW4gYXJlYSBpcyBvcHRpb25hbCBhbmQgcmVjb21tZW5kZWQgZm9yIGFwcGxpY2F0aW9ucyByZXF1aXJpbmcgYSBkZWRpY2F0ZWQgYW5kIG1heGltaXphYmxlXG4gKiBhcmVhIGZvciB1c2VyIGludGVyYWN0aW9uLlxuICpcbiAqIE11bHRpcGxlIGxheW91dHMsIGNhbGxlZCBwZXJzcGVjdGl2ZXMsIGFyZSBzdXBwb3J0ZWQuIFBlcnNwZWN0aXZlcyBjYW4gYmUgc3dpdGNoZWQuIE9ubHkgb25lIHBlcnNwZWN0aXZlIGlzIGFjdGl2ZSBhdCBhIHRpbWUuXG4gKiBQZXJzcGVjdGl2ZXMgc2hhcmUgdGhlIHNhbWUgbWFpbiBhcmVhLCBpZiBhbnkuXG4gKi9cbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCcsIHVzZUV4aXN0aW5nOiDJtVdvcmtiZW5jaFNlcnZpY2V9KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFdvcmtiZW5jaFNlcnZpY2Uge1xuXG4gIC8qKlxuICAgKiBQcm92aWRlcyB0aGUgc25hcHNob3Qgb2YgdGhlIGN1cnJlbnQgd29ya2JlbmNoIGxheW91dC5cbiAgICpcbiAgICogVGhlIGxheW91dCBpcyBhbiBpbW11dGFibGUgb2JqZWN0LiBNb2RpZmljYXRpb25zIGhhdmUgbm8gc2lkZSBlZmZlY3RzLiBUaGUgbGF5b3V0IGNhbiBiZSBtb2RpZmllZCB1c2luZyB7QGxpbmsgV29ya2JlbmNoUm91dGVyLm5hdmlnYXRlfS5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBsYXlvdXQ6IFNpZ25hbDxXb3JrYmVuY2hMYXlvdXQ+O1xuXG4gIC8qKlxuICAgKiBQcm92aWRlcyB0aGUgaGFuZGxlcyBvZiB0aGUgcGVyc3BlY3RpdmVzIHJlZ2lzdGVyZWQgaW4gdGhlIHdvcmtiZW5jaC5cbiAgICpcbiAgICogRWFjaCBoYW5kbGUgcmVwcmVzZW50cyBhIHBlcnNwZWN0aXZlIHJlZ2lzdGVyZWQgaW4gdGhlIHdvcmtiZW5jaC4gVGhlIGhhbmRsZSBoYXMgbWV0aG9kcyB0byBpbnRlcmFjdCB3aXRoIHRoZSBwZXJzcGVjdGl2ZS5cbiAgICogUGVyc3BlY3RpdmVzIGFyZSByZWdpc3RlcmVkIHZpYSB7QGxpbmsgV29ya2JlbmNoQ29uZmlnfSBwYXNzZWQgdG8ge0BsaW5rIHByb3ZpZGVXb3JrYmVuY2h9IG9yIHZpYSB7QGxpbmsgV29ya2JlbmNoU2VydmljZX0uXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgcGVyc3BlY3RpdmVzOiBTaWduYWw8V29ya2JlbmNoUGVyc3BlY3RpdmVbXT47XG5cbiAgLyoqXG4gICAqIFByb3ZpZGVzIHRoZSBhY3RpdmUgcGVyc3BlY3RpdmUsIG9yIGB1bmRlZmluZWRgIGlmIG5vbmUgaXMgYWN0aXZlIChlLmcuLCBkdXJpbmcgd29ya2JlbmNoIHN0YXJ0dXApLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGFjdGl2ZVBlcnNwZWN0aXZlOiBTaWduYWw8V29ya2JlbmNoUGVyc3BlY3RpdmUgfCB1bmRlZmluZWQ+O1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBoYW5kbGUgb2YgdGhlIHNwZWNpZmllZCBwZXJzcGVjdGl2ZSwgb3IgYG51bGxgIGlmIG5vdCBmb3VuZC5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBnZXRQZXJzcGVjdGl2ZShwZXJzcGVjdGl2ZUlkOiBzdHJpbmcpOiBXb3JrYmVuY2hQZXJzcGVjdGl2ZSB8IG51bGw7XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVycyB0aGUgZ2l2ZW4gcGVyc3BlY3RpdmUuXG4gICAqXG4gICAqIFRoZSBwZXJzcGVjdGl2ZSBjYW4gYmUgYWN0aXZhdGVkIHZpYSB7QGxpbmsgV29ya2JlbmNoU2VydmljZSNzd2l0Y2hQZXJzcGVjdGl2ZX0uXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgcmVnaXN0ZXJQZXJzcGVjdGl2ZShwZXJzcGVjdGl2ZTogV29ya2JlbmNoUGVyc3BlY3RpdmVEZWZpbml0aW9uKTogUHJvbWlzZTx2b2lkPjtcblxuICAvKipcbiAgICogU3dpdGNoZXMgdG8gdGhlIHNwZWNpZmllZCBwZXJzcGVjdGl2ZS5cbiAgICpcbiAgICogU3dpdGNoaW5nIHBlcnNwZWN0aXZlIGRvZXMgbm90IGNoYW5nZSB0aGUgbGF5b3V0IG9mIHRoZSBtYWluIGFyZWEsIGlmIGFueS5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBzd2l0Y2hQZXJzcGVjdGl2ZShpZDogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPjtcblxuICAvKipcbiAgICogUmVzZXRzIHRoZSBjdXJyZW50bHkgYWN0aXZlIHBlcnNwZWN0aXZlIHRvIGl0cyBpbml0aWFsIGxheW91dC4gUmVzZXR0aW5nIHRoZSBwZXJzcGVjdGl2ZSBkb2VzIG5vdCBjaGFuZ2UgdGhlIGxheW91dCBvZiB0aGUgbWFpbiBhcmVhLCBpZiBhbnkuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgcmVzZXRQZXJzcGVjdGl2ZSgpOiBQcm9taXNlPHZvaWQ+O1xuXG4gIC8qKlxuICAgKiBQcm92aWRlcyB0aGUgaGFuZGxlcyBvZiB0aGUgcGFydHMgaW4gdGhlIGN1cnJlbnQgd29ya2JlbmNoIGxheW91dC5cbiAgICpcbiAgICogRWFjaCBoYW5kbGUgcmVwcmVzZW50cyBhIHBhcnQgaW4gdGhlIGxheW91dC4gVGhlIGhhbmRsZSBoYXMgbWV0aG9kcyB0byBpbnRlcmFjdCB3aXRoIHRoZSBwYXJ0LiBQYXJ0cyBhcmUgYWRkZWQgdG8gdGhlIGxheW91dCB2aWEge0BsaW5rIFdvcmtiZW5jaFJvdXRlcn0uXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgcGFydHM6IFNpZ25hbDxXb3JrYmVuY2hQYXJ0W10+O1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBoYW5kbGUgb2YgdGhlIHNwZWNpZmllZCBwYXJ0LCBvciBgbnVsbGAgaWYgbm90IGZvdW5kLlxuICAgKlxuICAgKiBBIGhhbmRsZSByZXByZXNlbnRzIGEgcGFydCBpbiB0aGUgbGF5b3V0LiBUaGUgaGFuZGxlIGhhcyBtZXRob2RzIHRvIGludGVyYWN0IHdpdGggdGhlIHBhcnQuIEEgcGFydCBpcyBhZGRlZCB0byB0aGUgbGF5b3V0IHZpYSB7QGxpbmsgV29ya2JlbmNoUm91dGVyfS5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBnZXRQYXJ0KHBhcnRJZDogc3RyaW5nKTogV29ya2JlbmNoUGFydCB8IG51bGw7XG5cbiAgLyoqXG4gICAqIFByb3ZpZGVzIHRoZSBoYW5kbGVzIG9mIHRoZSB2aWV3cyBpbiB0aGUgY3VycmVudCB3b3JrYmVuY2ggbGF5b3V0LlxuICAgKlxuICAgKiBFYWNoIGhhbmRsZSByZXByZXNlbnRzIGEgdmlldyBpbiB0aGUgbGF5b3V0LiBUaGUgaGFuZGxlIGhhcyBtZXRob2RzIHRvIGludGVyYWN0IHdpdGggdGhlIHZpZXcuIFZpZXdzIGFyZSBvcGVuZWQgdmlhIHtAbGluayBXb3JrYmVuY2hSb3V0ZXJ9LlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IHZpZXdzOiBTaWduYWw8V29ya2JlbmNoVmlld1tdPjtcblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgaGFuZGxlIG9mIHRoZSBzcGVjaWZpZWQgdmlldywgb3IgYG51bGxgIGlmIG5vdCBmb3VuZC5cbiAgICpcbiAgICogQSBoYW5kbGUgcmVwcmVzZW50cyBhIHZpZXcgaW4gdGhlIGxheW91dC4gVGhlIGhhbmRsZSBoYXMgbWV0aG9kcyB0byBpbnRlcmFjdCB3aXRoIHRoZSB2aWV3LiBBIHZpZXcgaXMgb3BlbmVkIHZpYSB7QGxpbmsgV29ya2JlbmNoUm91dGVyfS5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBnZXRWaWV3KHZpZXdJZDogVmlld0lkKTogV29ya2JlbmNoVmlldyB8IG51bGw7XG5cbiAgLyoqXG4gICAqIENsb3NlcyB0aGUgc3BlY2lmaWVkIHdvcmtiZW5jaCB2aWV3cy5cbiAgICpcbiAgICogTm90ZTogVGhpcyBpbnN0cnVjdGlvbiBydW5zIGFzeW5jaHJvbm91c2x5IHZpYSBVUkwgcm91dGluZy5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBjbG9zZVZpZXdzKC4uLnZpZXdJZHM6IFZpZXdJZFtdKTogUHJvbWlzZTxib29sZWFuPjtcblxuICAvKipcbiAgICogQ29udHJpYnV0ZXMgYW4gYWN0aW9uIHRvIHRoZSBhY3Rpb24gYmFyIG9mIGEge0BsaW5rIFdvcmtiZW5jaFBhcnR9LlxuICAgKlxuICAgKiBQYXJ0IGFjdGlvbnMgYXJlIGRpc3BsYXllZCB0byB0aGUgcmlnaHQgb2YgdGhlIHZpZXcgdGFicyBhbmQgZW5hYmxlIGludGVyYWN0aW9uIHdpdGggdGhlIHBhcnQgYW5kIGl0cyBjb250ZW50LlxuICAgKlxuICAgKiAtLS1cbiAgICogQXMgYW4gYWx0ZXJuYXRpdmUgdG8gcHJvZ3JhbW1hdGljIHJlZ2lzdHJhdGlvbiwgYWN0aW9ucyBjYW4gYmUgY29udHJpYnV0ZWQgZGVjbGFyYXRpdmVseSBmcm9tIGFuIEhUTUwgdGVtcGxhdGUuXG4gICAqIERlY2xhcmluZyBhbiBhY3Rpb24gaW4gdGhlIEhUTUwgdGVtcGxhdGUgb2YgYSB3b3JrYmVuY2ggdmlldyBkaXNwbGF5cyBpdCBvbmx5IGlmIHRoYXQgdmlldyBpcyBhY3RpdmUuIFRvIGRpc3BsYXkgaXQgZm9yIGV2ZXJ5XG4gICAqIHZpZXcgb3IgYmFzZWQgb24gc29tZSBjb25kaXRpb24sIGRlY2xhcmUgaXQgb3V0c2lkZSBhIHZpZXcgY29udGV4dCwgc3VjaCBhcyBpbiBgYXBwLmNvbXBvbmVudC5odG1sYCwgb3IgcmVnaXN0ZXIgaXQgcHJvZ3JhbW1hdGljYWxseS5cbiAgICogUmVmZXIgdG8ge0BsaW5rIFdvcmtiZW5jaFBhcnRBY3Rpb25EaXJlY3RpdmV9IGZvciBtb3JlIGluZm9ybWF0aW9uLlxuICAgKlxuICAgKiBFeGFtcGxlOlxuICAgKiBgYGBodG1sXG4gICAqIDxuZy10ZW1wbGF0ZSB3YlBhcnRBY3Rpb24+XG4gICAqICAgPGJ1dHRvbiB3YlJvdXRlckxpbms9XCIvcGF0aC90by92aWV3XCIgW3diUm91dGVyTGlua0V4dHJhc109XCJ7dGFyZ2V0OiAnYmxhbmsnfVwiIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnNcIj5cbiAgICogICAgIGFkZFxuICAgKiAgIDwvYnV0dG9uPlxuICAgKiA8L25nLXRlbXBsYXRlPlxuICAgKiBgYGBcbiAgICpcbiAgICogQHJldHVybiBoYW5kbGUgdG8gdW5yZWdpc3RlciB0aGUgcGFydCBhY3Rpb24uXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgcmVnaXN0ZXJQYXJ0QWN0aW9uKGFjdGlvbjogV29ya2JlbmNoUGFydEFjdGlvbik6IERpc3Bvc2FibGU7XG5cbiAgLyoqXG4gICAqIENvbnRyaWJ1dGVzIGEgbWVudSBpdGVtIHRvIGEgdmlldydzIGNvbnRleHQgbWVudS5cbiAgICpcbiAgICogLS0tXG4gICAqIEFzIGFuIGFsdGVybmF0aXZlIHRvIHByb2dyYW1tYXRpYyByZWdpc3RyYXRpb24sIG1lbnUgaXRlbXMgY2FuIGJlIGNvbnRyaWJ1dGVkIGRlY2xhcmF0aXZlbHkgZnJvbSBhbiBIVE1MIHRlbXBsYXRlLlxuICAgKiBEZWNsYXJpbmcgYSBtZW51IGl0ZW0gaW4gdGhlIEhUTUwgdGVtcGxhdGUgb2YgYSB3b3JrYmVuY2ggdmlldyBhZGRzIGl0IHRvIHRoYXQgdmlldyBvbmx5LiBUbyBhZGQgaXQgdG8gZXZlcnkgdmlldyxcbiAgICogZGVjbGFyZSBpdCBvdXRzaWRlIGEgdmlldyBjb250ZXh0LCBzdWNoIGFzIGluIGBhcHAuY29tcG9uZW50Lmh0bWxgLCBvciByZWdpc3RlciBpdCBwcm9ncmFtbWF0aWNhbGx5LlxuICAgKiBSZWZlciB0byB7QGxpbmsgV29ya2JlbmNoVmlld01lbnVJdGVtRGlyZWN0aXZlfSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiAgICpcbiAgICogRXhhbXBsZTpcbiAgICogYGBgaHRtbFxuICAgKiA8bmctdGVtcGxhdGUgd2JWaWV3TWVudUl0ZW0gW2FjY2VsZXJhdG9yXT1cIlsnY3RybCcsICdiJ11cIiAoYWN0aW9uKT1cIi4uLlwiIGxldC12aWV3PlxuICAgKiAgIC4uLlxuICAgKiA8L25nLXRlbXBsYXRlPlxuICAgKiBgYGBcbiAgICpcbiAgICogQHJldHVybiBoYW5kbGUgdG8gdW5yZWdpc3RlciB0aGUgbWVudSBpdGVtLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHJlZ2lzdGVyVmlld01lbnVJdGVtKGZhY3RvcnlGbjogV29ya2JlbmNoTWVudUl0ZW1GYWN0b3J5Rm4pOiBEaXNwb3NhYmxlO1xuXG4gIC8qKlxuICAgKiBTd2l0Y2hlcyB0aGUgdGhlbWUgb2YgdGhlIHdvcmtiZW5jaC5cbiAgICpcbiAgICogVGhlbWVzIGNhbiBiZSByZWdpc3RlcmVkIHdoZW4gbG9hZGluZyB0aGUgYEBzY2lvbi93b3JrYmVuY2hgIFNDU1MgbW9kdWxlIGluIHRoZSBhcHBsaWNhdGlvbidzIGBzdHlsZXMuc2Nzc2AgZmlsZS5cbiAgICogQnkgZGVmYXVsdCwgU0NJT04gcHJvdmlkZXMgYSBsaWdodCBhbmQgYSBkYXJrIHRoZW1lLCBgc2Npb24tbGlnaHRgIGFuZCBgc2Npb24tZGFya2AuXG4gICAqXG4gICAqIFNlZSB0aGUgZG9jdW1lbnRhdGlvbiBvZiBgQHNjaW9uL3dvcmtiZW5jaGAgU0NTUyBtb2R1bGUgZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4gICAqXG4gICAqIEBwYXJhbSB0aGVtZSAtIFRoZSBuYW1lIG9mIHRoZSB0aGVtZSB0byBzd2l0Y2ggdG8uXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3Qgc3dpdGNoVGhlbWUodGhlbWU6IHN0cmluZyk6IFByb21pc2U8dm9pZD47XG5cbiAgLyoqXG4gICAqIFByb3ZpZGVzIHRoZSBjdXJyZW50IHdvcmtiZW5jaCB0aGVtZSwgaWYgYW55LlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IHRoZW1lOiBTaWduYWw8V29ya2JlbmNoVGhlbWUgfCBudWxsPjtcbn1cbiJdfQ==