@scion/workbench 17.0.0-beta.7 → 17.0.0-beta.9

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 (304) hide show
  1. package/README.md +1 -1
  2. package/esm2022/lib/activation-instant.provider.mjs +3 -3
  3. package/esm2022/lib/common/asserts.util.mjs +2 -2
  4. package/esm2022/lib/common/coerce-observable.pipe.mjs +3 -3
  5. package/esm2022/lib/common/filter-by-predicate.pipe.mjs +3 -3
  6. package/esm2022/lib/common/filter-by-text.pipe.mjs +3 -3
  7. package/esm2022/lib/common/grid-element-if-visible.pipe.mjs +6 -6
  8. package/esm2022/lib/common/instanceof.pipe.mjs +3 -3
  9. package/esm2022/lib/common/map-coerce.pipe.mjs +3 -3
  10. package/esm2022/lib/common/null-if-empty.pipe.mjs +3 -3
  11. package/esm2022/lib/common/objects.util.mjs +34 -0
  12. package/esm2022/lib/common/typeof.pipe.mjs +3 -3
  13. package/esm2022/lib/common/uuid.util.mjs +17 -0
  14. package/esm2022/lib/content-projection/content-as-overlay.component.mjs +3 -3
  15. package/esm2022/lib/content-projection/content-projection.directive.mjs +3 -3
  16. package/esm2022/lib/dialog/dialog-footer/dialog-action-filter.pipe.mjs +3 -3
  17. package/esm2022/lib/dialog/dialog-footer/dialog-footer.component.mjs +3 -3
  18. package/esm2022/lib/dialog/dialog-footer/workbench-dialog-action.directive.mjs +9 -6
  19. package/esm2022/lib/dialog/dialog-footer/workbench-dialog-footer.directive.mjs +9 -6
  20. package/esm2022/lib/dialog/dialog-header/dialog-header.component.mjs +3 -3
  21. package/esm2022/lib/dialog/dialog-header/workbench-dialog-header.directive.mjs +9 -6
  22. package/esm2022/lib/dialog/movable.directive.mjs +3 -3
  23. package/esm2022/lib/dialog/resizable.directive.mjs +3 -3
  24. package/esm2022/lib/dialog/workbench-dialog.component.mjs +53 -24
  25. package/esm2022/lib/dialog/workbench-dialog.mjs +1 -1
  26. package/esm2022/lib/dialog/workbench-dialog.options.mjs +1 -1
  27. package/esm2022/lib/dialog/workbench-dialog.registry.mjs +4 -4
  28. package/esm2022/lib/dialog/workbench-dialog.service.mjs +5 -5
  29. package/esm2022/lib/dialog//311/265workbench-dialog.mjs +7 -7
  30. package/esm2022/lib/dialog//311/265workbench-dialog.service.mjs +3 -3
  31. package/esm2022/lib/executor/single-task-executor.mjs +26 -7
  32. package/esm2022/lib/filter-field/filter-field.component.mjs +6 -6
  33. package/esm2022/lib/glass-pane/glass-pane.directive.mjs +15 -7
  34. package/esm2022/lib/layout/grid-element/grid-element.component.mjs +10 -10
  35. package/esm2022/lib/layout/main-area-layout/main-area-layout.component.mjs +6 -4
  36. package/esm2022/lib/layout/migration/model/workbench-layout-migration-v1.model.mjs +11 -0
  37. package/esm2022/lib/layout/migration/model/workbench-layout-migration-v2.model.mjs +11 -0
  38. package/esm2022/lib/layout/migration/model/workbench-layout-migration-v3.model.mjs +11 -0
  39. package/esm2022/lib/layout/migration/model/workbench-layout-migration-v4.model.mjs +11 -0
  40. package/esm2022/lib/layout/migration/workbench-layout-migration-v2.service.mjs +59 -0
  41. package/esm2022/lib/layout/migration/workbench-layout-migration-v3.service.mjs +117 -0
  42. package/esm2022/lib/layout/migration/workbench-layout-migration-v4.service.mjs +57 -0
  43. package/esm2022/lib/layout/workbench-layout.component.mjs +6 -4
  44. package/esm2022/lib/layout/workbench-layout.factory.mjs +4 -4
  45. package/esm2022/lib/layout/workbench-layout.mjs +1 -1
  46. package/esm2022/lib/layout/workbench-layout.model.mjs +5 -6
  47. package/esm2022/lib/layout/workbench-layout.service.mjs +3 -3
  48. package/esm2022/lib/layout/workbench-layouts.util.mjs +37 -1
  49. package/esm2022/lib/layout/workench-layout-serializer.service.mjs +53 -21
  50. package/esm2022/lib/layout//311/265workbench-layout.factory.mjs +8 -5
  51. package/esm2022/lib/layout//311/265workbench-layout.mjs +382 -195
  52. package/esm2022/lib/logging/console-appender.service.mjs +3 -3
  53. package/esm2022/lib/logging/logger.mjs +3 -3
  54. package/esm2022/lib/logging/logging-support.mjs +4 -4
  55. package/esm2022/lib/logging/logging.model.mjs +3 -3
  56. package/esm2022/lib/logging//311/265logger.mjs +3 -3
  57. package/esm2022/lib/message-box/message-box-footer/message-box-footer.component.mjs +18 -20
  58. package/esm2022/lib/message-box/message-box-header/message-box-header.component.mjs +3 -3
  59. package/esm2022/lib/message-box/workbench-message-box.component.mjs +15 -6
  60. package/esm2022/lib/message-box/workbench-message-box.options.mjs +1 -1
  61. package/esm2022/lib/message-box/workbench-message-box.service.mjs +5 -5
  62. package/esm2022/lib/message-box//311/265workbench-message-box.service.mjs +5 -5
  63. package/esm2022/lib/microfrontend-platform/initialization/microfrontend-platform-initializer.service.mjs +26 -13
  64. package/esm2022/lib/microfrontend-platform/initialization/ng-zone-observable-decorator.mjs +3 -3
  65. package/esm2022/lib/microfrontend-platform/initialization/workbench-host-manifest-interceptor.service.mjs +25 -13
  66. package/esm2022/lib/microfrontend-platform/microfrontend-dialog/microfrontend-dialog-capability-validator.interceptor.mjs +3 -3
  67. package/esm2022/lib/microfrontend-platform/microfrontend-dialog/microfrontend-dialog-intent-handler.interceptor.mjs +11 -11
  68. package/esm2022/lib/microfrontend-platform/microfrontend-dialog/microfrontend-dialog.component.mjs +5 -5
  69. package/esm2022/lib/microfrontend-platform/microfrontend-host-dialog/microfrontend-host-dialog.component.mjs +11 -9
  70. package/esm2022/lib/microfrontend-platform/microfrontend-host-message-box/microfrontend-host-message-box.component.mjs +112 -0
  71. package/esm2022/lib/microfrontend-platform/microfrontend-host-message-box/text-message/text-message.component.mjs +43 -0
  72. package/esm2022/lib/microfrontend-platform/microfrontend-host-popup/microfrontend-host-popup.component.mjs +16 -13
  73. package/esm2022/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box-capability-validator.interceptor.mjs +34 -0
  74. package/esm2022/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box-intent-handler.interceptor.mjs +88 -0
  75. package/esm2022/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box-legacy-intent-translator.interceptor.mjs +32 -0
  76. package/esm2022/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box.component.mjs +121 -0
  77. package/esm2022/lib/microfrontend-platform/microfrontend-notification/microfrontend-notification-intent-handler.service.mjs +3 -3
  78. package/esm2022/lib/microfrontend-platform/microfrontend-platform-config-loader.mjs +3 -3
  79. package/esm2022/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup-capability-validator.interceptor.mjs +3 -3
  80. package/esm2022/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup-intent-handler.interceptor.mjs +9 -6
  81. package/esm2022/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup.component.mjs +9 -15
  82. package/esm2022/lib/microfrontend-platform/microfrontend-splash/microfrontend-splash.component.mjs +3 -3
  83. package/esm2022/lib/microfrontend-platform/microfrontend-view/microfrontend-view-command-handler.service.mjs +4 -4
  84. package/esm2022/lib/microfrontend-platform/microfrontend-view/microfrontend-view.component.mjs +37 -32
  85. package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-capability-id-assigner.interceptor.mjs +3 -3
  86. package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-capability-validator.interceptor.mjs +3 -3
  87. package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-intent-handler.interceptor.mjs +13 -11
  88. package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-routes.mjs +14 -9
  89. package/esm2022/lib/microfrontend-platform/workbench-microfrontend-support.mjs +54 -23
  90. package/esm2022/lib/migration/workbench-migration.mjs +11 -0
  91. package/esm2022/lib/migration/workbench-migrator.mjs +38 -0
  92. package/esm2022/lib/notification/notification-css-classes.pipe.mjs +3 -3
  93. package/esm2022/lib/notification/notification-list.component.mjs +3 -3
  94. package/esm2022/lib/notification/notification.component.mjs +3 -3
  95. package/esm2022/lib/notification/notification.config.mjs +1 -1
  96. package/esm2022/lib/notification/notification.mjs +1 -1
  97. package/esm2022/lib/notification/notification.service.mjs +9 -9
  98. package/esm2022/lib/notification/text-notification.component.mjs +3 -3
  99. package/esm2022/lib/page-not-found/format-url.pipe.mjs +26 -0
  100. package/esm2022/lib/page-not-found/page-not-found.component.mjs +28 -0
  101. package/esm2022/lib/part/part-action-bar/part-action-bar.component.mjs +3 -3
  102. package/esm2022/lib/part/part-action-bar/part-action-filter.pipe.mjs +3 -3
  103. package/esm2022/lib/part/part-action-bar/part-action.directive.mjs +4 -4
  104. package/esm2022/lib/part/part-bar/part-bar.component.mjs +10 -8
  105. package/esm2022/lib/part/part-portal.pipe.mjs +3 -3
  106. package/esm2022/lib/part/part.component.mjs +6 -4
  107. package/esm2022/lib/part/view-context-menu/accelerator-format.pipe.mjs +3 -3
  108. package/esm2022/lib/part/view-context-menu/text.component.mjs +3 -3
  109. package/esm2022/lib/part/view-context-menu/view-menu.component.mjs +3 -3
  110. package/esm2022/lib/part/view-context-menu/view-menu.directive.mjs +4 -4
  111. package/esm2022/lib/part/view-context-menu/view-menu.service.mjs +18 -18
  112. package/esm2022/lib/part/view-list/view-list.component.mjs +3 -3
  113. package/esm2022/lib/part/view-list-button/view-list-button.component.mjs +3 -3
  114. package/esm2022/lib/part/view-list-item/view-list-item.component.mjs +9 -9
  115. package/esm2022/lib/part/view-tab/view-tab.component.mjs +13 -11
  116. package/esm2022/lib/part/view-tab-content/view-tab-content.component.mjs +5 -5
  117. package/esm2022/lib/part/view-tab-drag-image/view-tab-drag-image.component.mjs +9 -9
  118. package/esm2022/lib/part/workbench-part-action.registry.mjs +3 -3
  119. package/esm2022/lib/part/workbench-part.model.mjs +1 -1
  120. package/esm2022/lib/part/workbench-part.registry.mjs +3 -3
  121. package/esm2022/lib/part//311/265workbench-part.model.mjs +3 -3
  122. package/esm2022/lib/perspective/migration/model/workbench-perspective-migration-v1.model.mjs +11 -0
  123. package/esm2022/lib/perspective/migration/model/workbench-perspective-migration-v2.model.mjs +11 -0
  124. package/esm2022/lib/perspective/migration/workbench-perspective-migration-v2.service.mjs +57 -0
  125. package/esm2022/lib/perspective/workbench-grid-merger.service.mjs +19 -51
  126. package/esm2022/lib/perspective/workbench-perspective-storage.service.mjs +23 -18
  127. package/esm2022/lib/perspective/workbench-perspective-view-conflict-resolver.service.mjs +27 -42
  128. package/esm2022/lib/perspective/workbench-perspective.model.mjs +1 -1
  129. package/esm2022/lib/perspective/workbench-perspective.registry.mjs +3 -3
  130. package/esm2022/lib/perspective/workbench-perspective.service.mjs +15 -10
  131. package/esm2022/lib/perspective/workench-perspective-serializer.service.mjs +62 -0
  132. package/esm2022/lib/perspective//311/265workbench-perspective.model.mjs +98 -78
  133. package/esm2022/lib/popup/popup.component.mjs +22 -10
  134. package/esm2022/lib/popup/popup.config.mjs +3 -1
  135. package/esm2022/lib/popup/popup.service.mjs +4 -4
  136. package/esm2022/lib/portal/workbench-portal-outlet.directive.mjs +6 -6
  137. package/esm2022/lib/public_api.mjs +3 -2
  138. package/esm2022/lib/registry/workbench-object-registry.mjs +3 -3
  139. package/esm2022/lib/routing/empty-outlet/empty-outlet.component.mjs +31 -0
  140. package/esm2022/lib/routing/public_api.mjs +1 -1
  141. package/esm2022/lib/routing/router.util.mjs +89 -35
  142. package/esm2022/lib/routing/routing.model.mjs +1 -1
  143. package/esm2022/lib/routing/url-segment-matcher.mjs +46 -0
  144. package/esm2022/lib/routing/workbench-auxiliary-routes-registrator.service.mjs +58 -49
  145. package/esm2022/lib/routing/workbench-dialog-differ.mjs +6 -6
  146. package/esm2022/lib/routing/workbench-layout-differ.mjs +14 -17
  147. package/esm2022/lib/routing/workbench-message-box-differ.mjs +51 -0
  148. package/esm2022/lib/routing/workbench-navigational-states.mjs +4 -28
  149. package/esm2022/lib/routing/workbench-popup-differ.mjs +6 -6
  150. package/esm2022/lib/routing/workbench-route-data.mjs +14 -4
  151. package/esm2022/lib/routing/workbench-router-link.directive.mjs +24 -32
  152. package/esm2022/lib/routing/workbench-router.service.mjs +13 -378
  153. package/esm2022/lib/routing/workbench-url-observer.service.mjs +69 -82
  154. package/esm2022/lib/routing//311/265location.mjs +3 -3
  155. package/esm2022/lib/routing//311/265workbench-router.service.mjs +314 -0
  156. package/esm2022/lib/startup/splash/splash.component.mjs +3 -3
  157. package/esm2022/lib/startup/workbench-launcher.service.mjs +11 -11
  158. package/esm2022/lib/storage/workbench-storage.mjs +3 -3
  159. package/esm2022/lib/testing/public_api.mjs +2 -1
  160. package/esm2022/lib/testing/workbench-testing.module.mjs +13 -39
  161. package/esm2022/lib/testing/workbench.provider.mjs +60 -0
  162. package/esm2022/lib/theme/workbench-theme-switcher.service.mjs +3 -3
  163. package/esm2022/lib/view/public_api.mjs +2 -1
  164. package/esm2022/lib/view/view-move-handler.service.mjs +42 -62
  165. package/esm2022/lib/view/view-portal.pipe.mjs +4 -4
  166. package/esm2022/lib/view/view.component.mjs +20 -40
  167. package/esm2022/lib/view/workbench-view-route-guards.mjs +47 -0
  168. package/esm2022/lib/view/workbench-view.model.mjs +6 -4
  169. package/esm2022/lib/view/workbench-view.registry.mjs +4 -4
  170. package/esm2022/lib/view//311/265workbench-view.model.mjs +106 -27
  171. package/esm2022/lib/view-dnd/requires-drop-zone.pipe.mjs +7 -7
  172. package/esm2022/lib/view-dnd/view-drag.service.mjs +6 -6
  173. package/esm2022/lib/view-dnd/view-drop-placeholder-renderer.service.mjs +3 -3
  174. package/esm2022/lib/view-dnd/view-drop-zone.directive.mjs +4 -4
  175. package/esm2022/lib/view-dnd/view-tab-drag-image-renderer.service.mjs +6 -4
  176. package/esm2022/lib/workbench-config.mjs +15 -0
  177. package/esm2022/lib/workbench-id.mjs +3 -3
  178. package/esm2022/lib/workbench.component.mjs +20 -12
  179. package/esm2022/lib/workbench.constants.mjs +7 -9
  180. package/esm2022/lib/workbench.model.mjs +1 -1
  181. package/esm2022/lib/workbench.module.mjs +15 -86
  182. package/esm2022/lib/workbench.provider.mjs +117 -0
  183. package/esm2022/lib/workbench.service.mjs +5 -5
  184. package/esm2022/lib//311/265workbench.service.mjs +15 -21
  185. package/fesm2022/scion-workbench.mjs +5490 -4166
  186. package/fesm2022/scion-workbench.mjs.map +1 -1
  187. package/lib/common/objects.util.d.ts +17 -0
  188. package/lib/common/uuid.util.d.ts +8 -0
  189. package/lib/dialog/workbench-dialog.component.d.ts +16 -7
  190. package/lib/dialog/workbench-dialog.d.ts +1 -1
  191. package/lib/dialog/workbench-dialog.options.d.ts +4 -3
  192. package/lib/dialog/workbench-dialog.registry.d.ts +4 -3
  193. package/lib/dialog/workbench-dialog.service.d.ts +1 -1
  194. package/lib/dialog//311/265workbench-dialog.d.ts +2 -2
  195. package/lib/executor/single-task-executor.d.ts +6 -1
  196. package/lib/filter-field/filter-field.component.d.ts +1 -1
  197. package/lib/glass-pane/glass-pane.directive.d.ts +21 -0
  198. package/lib/layout/grid-element/grid-element.component.d.ts +2 -2
  199. package/lib/layout/migration/model/workbench-layout-migration-v1.model.d.ts +16 -0
  200. package/lib/layout/migration/model/workbench-layout-migration-v2.model.d.ts +22 -0
  201. package/lib/layout/migration/model/workbench-layout-migration-v3.model.d.ts +30 -0
  202. package/lib/layout/migration/model/workbench-layout-migration-v4.model.d.ts +31 -0
  203. package/lib/layout/migration/workbench-layout-migration-v2.service.d.ts +13 -0
  204. package/lib/layout/migration/workbench-layout-migration-v3.service.d.ts +16 -0
  205. package/lib/layout/migration/workbench-layout-migration-v4.service.d.ts +12 -0
  206. package/lib/layout/workbench-layout.d.ts +61 -7
  207. package/lib/layout/workbench-layout.factory.d.ts +1 -1
  208. package/lib/layout/workbench-layout.model.d.ts +19 -9
  209. package/lib/layout/workbench-layouts.util.d.ts +18 -0
  210. package/lib/layout/workench-layout-serializer.service.d.ts +28 -7
  211. package/lib/layout//311/265workbench-layout.d.ts +172 -98
  212. package/lib/layout//311/265workbench-layout.factory.d.ts +4 -0
  213. package/lib/logging/logging-support.d.ts +2 -2
  214. package/lib/message-box/workbench-message-box.component.d.ts +3 -0
  215. package/lib/message-box/workbench-message-box.options.d.ts +4 -3
  216. package/lib/message-box/workbench-message-box.service.d.ts +1 -1
  217. package/lib/microfrontend-platform/initialization/microfrontend-platform-initializer.service.d.ts +7 -1
  218. package/lib/microfrontend-platform/microfrontend-host-dialog/microfrontend-host-dialog.component.d.ts +1 -0
  219. package/lib/microfrontend-platform/microfrontend-host-message-box/microfrontend-host-message-box.component.d.ts +39 -0
  220. package/lib/microfrontend-platform/microfrontend-host-message-box/text-message/text-message.component.d.ts +25 -0
  221. package/lib/microfrontend-platform/microfrontend-host-popup/microfrontend-host-popup.component.d.ts +4 -2
  222. package/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box-capability-validator.interceptor.d.ts +10 -0
  223. package/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box-intent-handler.interceptor.d.ts +28 -0
  224. package/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box-legacy-intent-translator.interceptor.d.ts +11 -0
  225. package/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box.component.d.ts +48 -0
  226. package/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup.component.d.ts +3 -7
  227. package/lib/microfrontend-platform/microfrontend-view/microfrontend-view.component.d.ts +4 -9
  228. package/lib/microfrontend-platform/workbench-microfrontend-support.d.ts +3 -3
  229. package/lib/migration/workbench-migration.d.ts +9 -0
  230. package/lib/migration/workbench-migrator.d.ts +18 -0
  231. package/lib/notification/notification.config.d.ts +1 -1
  232. package/lib/notification/notification.d.ts +1 -3
  233. package/lib/page-not-found/format-url.pipe.d.ts +11 -0
  234. package/lib/page-not-found/page-not-found.component.d.ts +8 -0
  235. package/lib/part/part-action-bar/part-action.directive.d.ts +1 -1
  236. package/lib/part/part-bar/part-bar.component.d.ts +4 -3
  237. package/lib/part/view-context-menu/view-menu.directive.d.ts +1 -1
  238. package/lib/part/view-context-menu/view-menu.service.d.ts +5 -4
  239. package/lib/part/view-list-item/view-list-item.component.d.ts +5 -4
  240. package/lib/part/view-tab/view-tab.component.d.ts +6 -5
  241. package/lib/part/view-tab-drag-image/view-tab-drag-image.component.d.ts +3 -3
  242. package/lib/part/workbench-part.model.d.ts +5 -4
  243. package/lib/part//311/265workbench-part.model.d.ts +5 -4
  244. package/lib/perspective/migration/model/workbench-perspective-migration-v1.model.d.ts +8 -0
  245. package/lib/perspective/migration/model/workbench-perspective-migration-v2.model.d.ts +10 -0
  246. package/lib/perspective/migration/workbench-perspective-migration-v2.service.d.ts +13 -0
  247. package/lib/perspective/workbench-grid-merger.service.d.ts +9 -16
  248. package/lib/perspective/workbench-perspective-storage.service.d.ts +10 -28
  249. package/lib/perspective/workbench-perspective-view-conflict-resolver.service.d.ts +8 -25
  250. package/lib/perspective/workbench-perspective.model.d.ts +123 -14
  251. package/lib/perspective/workbench-perspective.service.d.ts +10 -3
  252. package/lib/perspective/workench-perspective-serializer.service.d.ts +26 -0
  253. package/lib/perspective//311/265workbench-perspective.model.d.ts +16 -14
  254. package/lib/popup/popup.component.d.ts +1 -0
  255. package/lib/popup/popup.config.d.ts +4 -3
  256. package/lib/portal/workbench-portal-outlet.directive.d.ts +2 -2
  257. package/lib/public_api.d.ts +4 -3
  258. package/lib/registry/workbench-object-registry.d.ts +2 -2
  259. package/lib/routing/empty-outlet/empty-outlet.component.d.ts +15 -0
  260. package/lib/routing/public_api.d.ts +2 -2
  261. package/lib/routing/router.util.d.ts +45 -19
  262. package/lib/routing/routing.model.d.ts +107 -8
  263. package/lib/routing/url-segment-matcher.d.ts +20 -0
  264. package/lib/routing/workbench-auxiliary-routes-registrator.service.d.ts +25 -15
  265. package/lib/routing/workbench-layout-differ.d.ts +4 -7
  266. package/lib/routing/workbench-message-box-differ.d.ts +25 -0
  267. package/lib/routing/workbench-navigational-states.d.ts +6 -19
  268. package/lib/routing/workbench-route-data.d.ts +13 -3
  269. package/lib/routing/workbench-router-link.directive.d.ts +22 -7
  270. package/lib/routing/workbench-router.service.d.ts +42 -142
  271. package/lib/routing/workbench-url-observer.service.d.ts +10 -28
  272. package/lib/routing//311/265workbench-router.service.d.ts +74 -0
  273. package/lib/startup/workbench-launcher.service.d.ts +4 -4
  274. package/lib/testing/public_api.d.ts +1 -0
  275. package/lib/testing/workbench-testing.module.d.ts +7 -6
  276. package/lib/testing/workbench.provider.d.ts +29 -0
  277. package/lib/view/public_api.d.ts +2 -1
  278. package/lib/view/view-move-handler.service.d.ts +2 -4
  279. package/lib/view/view-portal.pipe.d.ts +2 -1
  280. package/lib/view/view.component.d.ts +1 -11
  281. package/lib/view/workbench-view-route-guards.d.ts +36 -0
  282. package/lib/view/workbench-view.model.d.ts +37 -5
  283. package/lib/view/workbench-view.registry.d.ts +4 -3
  284. package/lib/view//311/265workbench-view.model.d.ts +61 -15
  285. package/lib/view-dnd/view-drag.service.d.ts +9 -4
  286. package/lib/view-dnd/view-drop-zone.directive.d.ts +1 -1
  287. package/lib/{workbench-module-config.d.ts → workbench-config.d.ts} +29 -71
  288. package/lib/workbench.component.d.ts +2 -2
  289. package/lib/workbench.constants.d.ts +6 -8
  290. package/lib/workbench.model.d.ts +20 -8
  291. package/lib/workbench.module.d.ts +12 -7
  292. package/lib/workbench.provider.d.ts +38 -0
  293. package/lib/workbench.service.d.ts +32 -8
  294. package/lib//311/265workbench.service.d.ts +9 -3
  295. package/package.json +8 -8
  296. package/esm2022/lib/layout/migration/workbench-layout-migrator.service.mjs +0 -38
  297. package/esm2022/lib/layout/migration/workbench-layout-v1-migrator.service.mjs +0 -59
  298. package/esm2022/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box-intent-handler.service.mjs +0 -46
  299. package/esm2022/lib/view/workbench-view-pre-destroy.guard.mjs +0 -36
  300. package/esm2022/lib/workbench-module-config.mjs +0 -15
  301. package/lib/layout/migration/workbench-layout-migrator.service.d.ts +0 -15
  302. package/lib/layout/migration/workbench-layout-v1-migrator.service.d.ts +0 -12
  303. package/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box-intent-handler.service.d.ts +0 -17
  304. package/lib/view/workbench-view-pre-destroy.guard.d.ts +0 -5
@@ -1,16 +1,11 @@
1
- import { ENVIRONMENT_INITIALIZER, importProvidersFrom, inject, Injectable, NgModule } from '@angular/core';
2
- import { WorkbenchModule } from '../workbench.module';
3
- import { ActivationInstantProvider } from '../activation-instant.provider';
4
- import { MAIN_AREA_INITIAL_PART_ID } from '../layout/ɵworkbench-layout';
5
- import { Router } from '@angular/router';
6
- import { provideNoopAnimations } from '@angular/platform-browser/animations';
7
- import { ComponentFixtureAutoDetect } from '@angular/core/testing';
1
+ import { NgModule } from '@angular/core';
2
+ import { provideWorkbenchForTest } from './workbench.provider';
8
3
  import * as i0 from "@angular/core";
9
4
  /**
10
5
  * Sets up the SCION Workbench to be used for testing.
11
6
  *
12
- * It does the following:
13
- * - provides the workbench applying given config
7
+ * Does the following:
8
+ * - provides the workbench with given config
14
9
  * - configures the workbench to name the initial part 'main'
15
10
  * - installs a sequence for activation instants
16
11
  * - configures the testbed to auto-detect changes
@@ -31,6 +26,8 @@ import * as i0 from "@angular/core";
31
26
  * });
32
27
  * });
33
28
  * ```
29
+ *
30
+ * @deprecated since version 17.0.0-beta.8; Register SCION Workbench providers using `provideWorkbench` function instead; API will be removed in a future release; API will be removed in a future release.
34
31
  */
35
32
  export class WorkbenchTestingModule {
36
33
  /**
@@ -39,37 +36,14 @@ export class WorkbenchTestingModule {
39
36
  static forTest(config) {
40
37
  return {
41
38
  ngModule: WorkbenchTestingModule,
42
- providers: [
43
- importProvidersFrom(WorkbenchModule.forRoot(config)),
44
- provideNoopAnimations(),
45
- { provide: ActivationInstantProvider, useClass: SequenceInstantProvider },
46
- { provide: MAIN_AREA_INITIAL_PART_ID, useValue: 'main' },
47
- { provide: ComponentFixtureAutoDetect, useValue: true },
48
- { provide: ENVIRONMENT_INITIALIZER, multi: true, useValue: () => inject(Router).initialNavigation() },
49
- { provide: ENVIRONMENT_INITIALIZER, multi: true, useValue: () => localStorage.clear() },
50
- { provide: ENVIRONMENT_INITIALIZER, multi: true, useValue: () => window.name = '' },
51
- ],
39
+ providers: [provideWorkbenchForTest(config)],
52
40
  };
53
41
  }
54
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: WorkbenchTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
55
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.3", ngImport: i0, type: WorkbenchTestingModule, exports: [WorkbenchModule] }); }
56
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: WorkbenchTestingModule, imports: [WorkbenchModule] }); }
57
- }
58
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: WorkbenchTestingModule, decorators: [{
59
- type: NgModule,
60
- args: [{ exports: [WorkbenchModule] }]
61
- }] });
62
- class SequenceInstantProvider {
63
- constructor() {
64
- this._sequence = 0;
65
- }
66
- now() {
67
- return this._sequence++;
68
- }
69
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: SequenceInstantProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
70
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: SequenceInstantProvider }); }
42
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: WorkbenchTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
43
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.6", ngImport: i0, type: WorkbenchTestingModule }); }
44
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: WorkbenchTestingModule }); }
71
45
  }
72
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: SequenceInstantProvider, decorators: [{
73
- type: Injectable
46
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: WorkbenchTestingModule, decorators: [{
47
+ type: NgModule
74
48
  }] });
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2JlbmNoLXRlc3RpbmcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vd29ya2JlbmNoL3NyYy9saWIvdGVzdGluZy93b3JrYmVuY2gtdGVzdGluZy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHVCQUF1QixFQUFFLG1CQUFtQixFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQXVCLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM5SCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFFcEQsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDekUsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDdEUsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLHVCQUF1QixDQUFDOztBQUVqRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXlCRztBQUVILE1BQU0sT0FBTyxzQkFBc0I7SUFFakM7O09BRUc7SUFDSSxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQThCO1FBQ2xELE9BQU87WUFDTCxRQUFRLEVBQUUsc0JBQXNCO1lBQ2hDLFNBQVMsRUFBRTtnQkFDVCxtQkFBbUIsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUNwRCxxQkFBcUIsRUFBRTtnQkFDdkIsRUFBQyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsUUFBUSxFQUFFLHVCQUF1QixFQUFDO2dCQUN2RSxFQUFDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFDO2dCQUN0RCxFQUFDLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFDO2dCQUNyRCxFQUFDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsaUJBQWlCLEVBQUUsRUFBQztnQkFDbkcsRUFBQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxFQUFDO2dCQUNyRixFQUFDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLEVBQUUsRUFBQzthQUNsRjtTQUNGLENBQUM7SUFDSixDQUFDOzhHQW5CVSxzQkFBc0I7K0dBQXRCLHNCQUFzQixZQURkLGVBQWU7K0dBQ3ZCLHNCQUFzQixZQURkLGVBQWU7OzJGQUN2QixzQkFBc0I7a0JBRGxDLFFBQVE7bUJBQUMsRUFBQyxPQUFPLEVBQUUsQ0FBQyxlQUFlLENBQUMsRUFBQzs7QUF1QnRDLE1BQ00sdUJBQXVCO0lBRDdCO1FBR1UsY0FBUyxHQUFHLENBQUMsQ0FBQztLQUt2QjtJQUhRLEdBQUc7UUFDUixPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUMxQixDQUFDOzhHQU5HLHVCQUF1QjtrSEFBdkIsdUJBQXVCOzsyRkFBdkIsdUJBQXVCO2tCQUQ1QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtFTlZJUk9OTUVOVF9JTklUSUFMSVpFUiwgaW1wb3J0UHJvdmlkZXJzRnJvbSwgaW5qZWN0LCBJbmplY3RhYmxlLCBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1dvcmtiZW5jaE1vZHVsZX0gZnJvbSAnLi4vd29ya2JlbmNoLm1vZHVsZSc7XG5pbXBvcnQge1dvcmtiZW5jaE1vZHVsZUNvbmZpZ30gZnJvbSAnLi4vd29ya2JlbmNoLW1vZHVsZS1jb25maWcnO1xuaW1wb3J0IHtBY3RpdmF0aW9uSW5zdGFudFByb3ZpZGVyfSBmcm9tICcuLi9hY3RpdmF0aW9uLWluc3RhbnQucHJvdmlkZXInO1xuaW1wb3J0IHtNQUlOX0FSRUFfSU5JVElBTF9QQVJUX0lEfSBmcm9tICcuLi9sYXlvdXQvybV3b3JrYmVuY2gtbGF5b3V0JztcbmltcG9ydCB7Um91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtwcm92aWRlTm9vcEFuaW1hdGlvbnN9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQge0NvbXBvbmVudEZpeHR1cmVBdXRvRGV0ZWN0fSBmcm9tICdAYW5ndWxhci9jb3JlL3Rlc3RpbmcnO1xuXG4vKipcbiAqIFNldHMgdXAgdGhlIFNDSU9OIFdvcmtiZW5jaCB0byBiZSB1c2VkIGZvciB0ZXN0aW5nLlxuICpcbiAqIEl0IGRvZXMgdGhlIGZvbGxvd2luZzpcbiAqIC0gcHJvdmlkZXMgdGhlIHdvcmtiZW5jaCBhcHBseWluZyBnaXZlbiBjb25maWdcbiAqIC0gY29uZmlndXJlcyB0aGUgd29ya2JlbmNoIHRvIG5hbWUgdGhlIGluaXRpYWwgcGFydCAnbWFpbidcbiAqIC0gaW5zdGFsbHMgYSBzZXF1ZW5jZSBmb3IgYWN0aXZhdGlvbiBpbnN0YW50c1xuICogLSBjb25maWd1cmVzIHRoZSB0ZXN0YmVkIHRvIGF1dG8tZGV0ZWN0IGNoYW5nZXNcbiAqIC0gZGlzYWJsZXMgYW5pbWF0aW9uc1xuICogLSBwZXJmb3JtcyB0aGUgaW5pdGlhbCBuYXZpZ2F0aW9uXG4gKlxuICogIyMjIFVzYWdlXG4gKlxuICogYGBgXG4gKiBiZWZvcmVFYWNoKCgpID0+IHtcbiAqICAgVGVzdEJlZC5jb25maWd1cmVUZXN0aW5nTW9kdWxlKHtcbiAqICAgICAgaW1wb3J0czogW1xuICogICAgICAgIFdvcmtiZW5jaFRlc3RpbmdNb2R1bGUuZm9yVGVzdCgpLFxuICogICAgICAgIFJvdXRlclRlc3RpbmdNb2R1bGUud2l0aFJvdXRlcyhbXG4gKiAgICAgICAgICB7cGF0aDogJ3Rlc3QtdmlldycsIGNvbXBvbmVudDogVGVzdENvbXBvbmVudH0sXG4gKiAgICAgICAgXSksXG4gKiAgICAgIF0sXG4gKiAgICB9KTtcbiAqIH0pO1xuICogYGBgXG4gKi9cbkBOZ01vZHVsZSh7ZXhwb3J0czogW1dvcmtiZW5jaE1vZHVsZV19KVxuZXhwb3J0IGNsYXNzIFdvcmtiZW5jaFRlc3RpbmdNb2R1bGUge1xuXG4gIC8qKlxuICAgKiBTZXRzIHVwIHRoZSBTQ0lPTiBXb3JrYmVuY2ggdG8gYmUgdXNlZCBmb3IgdGVzdGluZy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZm9yVGVzdChjb25maWc/OiBXb3JrYmVuY2hNb2R1bGVDb25maWcpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPFdvcmtiZW5jaFRlc3RpbmdNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IFdvcmtiZW5jaFRlc3RpbmdNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgaW1wb3J0UHJvdmlkZXJzRnJvbShXb3JrYmVuY2hNb2R1bGUuZm9yUm9vdChjb25maWcpKSxcbiAgICAgICAgcHJvdmlkZU5vb3BBbmltYXRpb25zKCksXG4gICAgICAgIHtwcm92aWRlOiBBY3RpdmF0aW9uSW5zdGFudFByb3ZpZGVyLCB1c2VDbGFzczogU2VxdWVuY2VJbnN0YW50UHJvdmlkZXJ9LFxuICAgICAgICB7cHJvdmlkZTogTUFJTl9BUkVBX0lOSVRJQUxfUEFSVF9JRCwgdXNlVmFsdWU6ICdtYWluJ30sXG4gICAgICAgIHtwcm92aWRlOiBDb21wb25lbnRGaXh0dXJlQXV0b0RldGVjdCwgdXNlVmFsdWU6IHRydWV9LFxuICAgICAgICB7cHJvdmlkZTogRU5WSVJPTk1FTlRfSU5JVElBTElaRVIsIG11bHRpOiB0cnVlLCB1c2VWYWx1ZTogKCkgPT4gaW5qZWN0KFJvdXRlcikuaW5pdGlhbE5hdmlnYXRpb24oKX0sXG4gICAgICAgIHtwcm92aWRlOiBFTlZJUk9OTUVOVF9JTklUSUFMSVpFUiwgbXVsdGk6IHRydWUsIHVzZVZhbHVlOiAoKSA9PiBsb2NhbFN0b3JhZ2UuY2xlYXIoKX0sXG4gICAgICAgIHtwcm92aWRlOiBFTlZJUk9OTUVOVF9JTklUSUFMSVpFUiwgbXVsdGk6IHRydWUsIHVzZVZhbHVlOiAoKSA9PiB3aW5kb3cubmFtZSA9ICcnfSxcbiAgICAgIF0sXG4gICAgfTtcbiAgfVxufVxuXG5ASW5qZWN0YWJsZSgvKiBETyBOT1QgUFJPVklERSB2aWEgJ3Byb3ZpZGVkSW4nIG1ldGFkYXRhIGFzIHJlZ2lzdGVyZWQgb25seSBpZiB1c2luZyBgV29ya2JlbmNoVGVzdGluZ01vZHVsZWAuICovKVxuY2xhc3MgU2VxdWVuY2VJbnN0YW50UHJvdmlkZXIgaW1wbGVtZW50cyBBY3RpdmF0aW9uSW5zdGFudFByb3ZpZGVyIHtcblxuICBwcml2YXRlIF9zZXF1ZW5jZSA9IDA7XG5cbiAgcHVibGljIG5vdygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9zZXF1ZW5jZSsrO1xuICB9XG59XG4iXX0=
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2JlbmNoLXRlc3RpbmcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vd29ya2JlbmNoL3NyYy9saWIvdGVzdGluZy93b3JrYmVuY2gtdGVzdGluZy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFzQixRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFNUQsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sc0JBQXNCLENBQUM7O0FBRTdEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EyQkc7QUFFSCxNQUFNLE9BQU8sc0JBQXNCO0lBRWpDOztPQUVHO0lBQ0ksTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUF3QjtRQUM1QyxPQUFPO1lBQ0wsUUFBUSxFQUFFLHNCQUFzQjtZQUNoQyxTQUFTLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUM3QyxDQUFDO0lBQ0osQ0FBQzs4R0FWVSxzQkFBc0I7K0dBQXRCLHNCQUFzQjsrR0FBdEIsc0JBQXNCOzsyRkFBdEIsc0JBQXNCO2tCQURsQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1dvcmtiZW5jaENvbmZpZ30gZnJvbSAnLi4vd29ya2JlbmNoLWNvbmZpZyc7XG5pbXBvcnQge3Byb3ZpZGVXb3JrYmVuY2hGb3JUZXN0fSBmcm9tICcuL3dvcmtiZW5jaC5wcm92aWRlcic7XG5cbi8qKlxuICogU2V0cyB1cCB0aGUgU0NJT04gV29ya2JlbmNoIHRvIGJlIHVzZWQgZm9yIHRlc3RpbmcuXG4gKlxuICogRG9lcyB0aGUgZm9sbG93aW5nOlxuICogLSBwcm92aWRlcyB0aGUgd29ya2JlbmNoIHdpdGggZ2l2ZW4gY29uZmlnXG4gKiAtIGNvbmZpZ3VyZXMgdGhlIHdvcmtiZW5jaCB0byBuYW1lIHRoZSBpbml0aWFsIHBhcnQgJ21haW4nXG4gKiAtIGluc3RhbGxzIGEgc2VxdWVuY2UgZm9yIGFjdGl2YXRpb24gaW5zdGFudHNcbiAqIC0gY29uZmlndXJlcyB0aGUgdGVzdGJlZCB0byBhdXRvLWRldGVjdCBjaGFuZ2VzXG4gKiAtIGRpc2FibGVzIGFuaW1hdGlvbnNcbiAqIC0gcGVyZm9ybXMgdGhlIGluaXRpYWwgbmF2aWdhdGlvblxuICpcbiAqICMjIyBVc2FnZVxuICpcbiAqIGBgYFxuICogYmVmb3JlRWFjaCgoKSA9PiB7XG4gKiAgIFRlc3RCZWQuY29uZmlndXJlVGVzdGluZ01vZHVsZSh7XG4gKiAgICAgIGltcG9ydHM6IFtcbiAqICAgICAgICBXb3JrYmVuY2hUZXN0aW5nTW9kdWxlLmZvclRlc3QoKSxcbiAqICAgICAgICBSb3V0ZXJUZXN0aW5nTW9kdWxlLndpdGhSb3V0ZXMoW1xuICogICAgICAgICAge3BhdGg6ICd0ZXN0LXZpZXcnLCBjb21wb25lbnQ6IFRlc3RDb21wb25lbnR9LFxuICogICAgICAgIF0pLFxuICogICAgICBdLFxuICogICAgfSk7XG4gKiB9KTtcbiAqIGBgYFxuICpcbiAqIEBkZXByZWNhdGVkIHNpbmNlIHZlcnNpb24gMTcuMC4wLWJldGEuODsgUmVnaXN0ZXIgU0NJT04gV29ya2JlbmNoIHByb3ZpZGVycyB1c2luZyBgcHJvdmlkZVdvcmtiZW5jaGAgZnVuY3Rpb24gaW5zdGVhZDsgQVBJIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlOyBBUEkgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuXG4gKi9cbkBOZ01vZHVsZSgpXG5leHBvcnQgY2xhc3MgV29ya2JlbmNoVGVzdGluZ01vZHVsZSB7XG5cbiAgLyoqXG4gICAqIFNldHMgdXAgdGhlIFNDSU9OIFdvcmtiZW5jaCB0byBiZSB1c2VkIGZvciB0ZXN0aW5nLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmb3JUZXN0KGNvbmZpZz86IFdvcmtiZW5jaENvbmZpZyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8V29ya2JlbmNoVGVzdGluZ01vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogV29ya2JlbmNoVGVzdGluZ01vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW3Byb3ZpZGVXb3JrYmVuY2hGb3JUZXN0KGNvbmZpZyldLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,60 @@
1
+ import { ENVIRONMENT_INITIALIZER, inject, Injectable, makeEnvironmentProviders } from '@angular/core';
2
+ import { provideWorkbench } from '../workbench.provider';
3
+ import { provideNoopAnimations } from '@angular/platform-browser/animations';
4
+ import { ActivationInstantProvider } from '../activation-instant.provider';
5
+ import { MAIN_AREA_INITIAL_PART_ID } from '../layout/ɵworkbench-layout';
6
+ import { ComponentFixtureAutoDetect } from '@angular/core/testing';
7
+ import { Router } from '@angular/router';
8
+ import * as i0 from "@angular/core";
9
+ /**
10
+ * Returns the set of dependency-injection providers to enable and configure the SCION Workbench in tests.
11
+ *
12
+ * Does the following:
13
+ * - provides the workbench with given config
14
+ * - configures the workbench to name the initial part 'main'
15
+ * - installs a sequence for activation instants
16
+ * - configures the testbed to auto-detect changes
17
+ * - disables animations
18
+ * - performs the initial navigation
19
+ *
20
+ * ### Usage
21
+ *
22
+ * ```
23
+ * beforeEach(() => {
24
+ * TestBed.configureTestingModule({
25
+ * imports: [
26
+ * WorkbenchTestingModule.forTest(),
27
+ * RouterTestingModule.withRoutes([
28
+ * {path: 'test-view', component: TestComponent},
29
+ * ]),
30
+ * ],
31
+ * });
32
+ * });
33
+ * ```
34
+ */
35
+ export function provideWorkbenchForTest(config) {
36
+ return makeEnvironmentProviders([
37
+ provideWorkbench(config),
38
+ provideNoopAnimations(),
39
+ { provide: ActivationInstantProvider, useClass: SequenceInstantProvider },
40
+ { provide: MAIN_AREA_INITIAL_PART_ID, useValue: 'main' },
41
+ { provide: ComponentFixtureAutoDetect, useValue: true },
42
+ { provide: ENVIRONMENT_INITIALIZER, multi: true, useValue: () => inject(Router).initialNavigation() },
43
+ { provide: ENVIRONMENT_INITIALIZER, multi: true, useValue: () => localStorage.clear() },
44
+ { provide: ENVIRONMENT_INITIALIZER, multi: true, useValue: () => window.name = '' },
45
+ ]);
46
+ }
47
+ class SequenceInstantProvider {
48
+ constructor() {
49
+ this._sequence = 0;
50
+ }
51
+ now() {
52
+ return this._sequence++;
53
+ }
54
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: SequenceInstantProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
55
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: SequenceInstantProvider }); }
56
+ }
57
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: SequenceInstantProvider, decorators: [{
58
+ type: Injectable
59
+ }] });
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2JlbmNoLnByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vd29ya2JlbmNoL3NyYy9saWIvdGVzdGluZy93b3JrYmVuY2gucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLHVCQUF1QixFQUF3QixNQUFNLEVBQUUsVUFBVSxFQUFFLHdCQUF3QixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzFILE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ3pFLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ3RFLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ2pFLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQzs7QUFFdkM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F5Qkc7QUFDSCxNQUFNLFVBQVUsdUJBQXVCLENBQUMsTUFBd0I7SUFDOUQsT0FBTyx3QkFBd0IsQ0FBQztRQUM5QixnQkFBZ0IsQ0FBQyxNQUFNLENBQUM7UUFDeEIscUJBQXFCLEVBQUU7UUFDdkIsRUFBQyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsUUFBUSxFQUFFLHVCQUF1QixFQUFDO1FBQ3ZFLEVBQUMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUM7UUFDdEQsRUFBQyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBQztRQUNyRCxFQUFDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsaUJBQWlCLEVBQUUsRUFBQztRQUNuRyxFQUFDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLEVBQUM7UUFDckYsRUFBQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxFQUFFLEVBQUM7S0FDbEYsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELE1BQ00sdUJBQXVCO0lBRDdCO1FBR1UsY0FBUyxHQUFHLENBQUMsQ0FBQztLQUt2QjtJQUhRLEdBQUc7UUFDUixPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUMxQixDQUFDOzhHQU5HLHVCQUF1QjtrSEFBdkIsdUJBQXVCOzsyRkFBdkIsdUJBQXVCO2tCQUQ1QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtXb3JrYmVuY2hDb25maWd9IGZyb20gJy4uL3dvcmtiZW5jaC1jb25maWcnO1xuaW1wb3J0IHtFTlZJUk9OTUVOVF9JTklUSUFMSVpFUiwgRW52aXJvbm1lbnRQcm92aWRlcnMsIGluamVjdCwgSW5qZWN0YWJsZSwgbWFrZUVudmlyb25tZW50UHJvdmlkZXJzfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7cHJvdmlkZVdvcmtiZW5jaH0gZnJvbSAnLi4vd29ya2JlbmNoLnByb3ZpZGVyJztcbmltcG9ydCB7cHJvdmlkZU5vb3BBbmltYXRpb25zfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHtBY3RpdmF0aW9uSW5zdGFudFByb3ZpZGVyfSBmcm9tICcuLi9hY3RpdmF0aW9uLWluc3RhbnQucHJvdmlkZXInO1xuaW1wb3J0IHtNQUlOX0FSRUFfSU5JVElBTF9QQVJUX0lEfSBmcm9tICcuLi9sYXlvdXQvybV3b3JrYmVuY2gtbGF5b3V0JztcbmltcG9ydCB7Q29tcG9uZW50Rml4dHVyZUF1dG9EZXRlY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvdGVzdGluZyc7XG5pbXBvcnQge1JvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBzZXQgb2YgZGVwZW5kZW5jeS1pbmplY3Rpb24gcHJvdmlkZXJzIHRvIGVuYWJsZSBhbmQgY29uZmlndXJlIHRoZSBTQ0lPTiBXb3JrYmVuY2ggaW4gdGVzdHMuXG4gKlxuICogRG9lcyB0aGUgZm9sbG93aW5nOlxuICogLSBwcm92aWRlcyB0aGUgd29ya2JlbmNoIHdpdGggZ2l2ZW4gY29uZmlnXG4gKiAtIGNvbmZpZ3VyZXMgdGhlIHdvcmtiZW5jaCB0byBuYW1lIHRoZSBpbml0aWFsIHBhcnQgJ21haW4nXG4gKiAtIGluc3RhbGxzIGEgc2VxdWVuY2UgZm9yIGFjdGl2YXRpb24gaW5zdGFudHNcbiAqIC0gY29uZmlndXJlcyB0aGUgdGVzdGJlZCB0byBhdXRvLWRldGVjdCBjaGFuZ2VzXG4gKiAtIGRpc2FibGVzIGFuaW1hdGlvbnNcbiAqIC0gcGVyZm9ybXMgdGhlIGluaXRpYWwgbmF2aWdhdGlvblxuICpcbiAqICMjIyBVc2FnZVxuICpcbiAqIGBgYFxuICogYmVmb3JlRWFjaCgoKSA9PiB7XG4gKiAgIFRlc3RCZWQuY29uZmlndXJlVGVzdGluZ01vZHVsZSh7XG4gKiAgICAgIGltcG9ydHM6IFtcbiAqICAgICAgICBXb3JrYmVuY2hUZXN0aW5nTW9kdWxlLmZvclRlc3QoKSxcbiAqICAgICAgICBSb3V0ZXJUZXN0aW5nTW9kdWxlLndpdGhSb3V0ZXMoW1xuICogICAgICAgICAge3BhdGg6ICd0ZXN0LXZpZXcnLCBjb21wb25lbnQ6IFRlc3RDb21wb25lbnR9LFxuICogICAgICAgIF0pLFxuICogICAgICBdLFxuICogICAgfSk7XG4gKiB9KTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZVdvcmtiZW5jaEZvclRlc3QoY29uZmlnPzogV29ya2JlbmNoQ29uZmlnKTogRW52aXJvbm1lbnRQcm92aWRlcnMge1xuICByZXR1cm4gbWFrZUVudmlyb25tZW50UHJvdmlkZXJzKFtcbiAgICBwcm92aWRlV29ya2JlbmNoKGNvbmZpZyksXG4gICAgcHJvdmlkZU5vb3BBbmltYXRpb25zKCksXG4gICAge3Byb3ZpZGU6IEFjdGl2YXRpb25JbnN0YW50UHJvdmlkZXIsIHVzZUNsYXNzOiBTZXF1ZW5jZUluc3RhbnRQcm92aWRlcn0sXG4gICAge3Byb3ZpZGU6IE1BSU5fQVJFQV9JTklUSUFMX1BBUlRfSUQsIHVzZVZhbHVlOiAnbWFpbid9LFxuICAgIHtwcm92aWRlOiBDb21wb25lbnRGaXh0dXJlQXV0b0RldGVjdCwgdXNlVmFsdWU6IHRydWV9LFxuICAgIHtwcm92aWRlOiBFTlZJUk9OTUVOVF9JTklUSUFMSVpFUiwgbXVsdGk6IHRydWUsIHVzZVZhbHVlOiAoKSA9PiBpbmplY3QoUm91dGVyKS5pbml0aWFsTmF2aWdhdGlvbigpfSxcbiAgICB7cHJvdmlkZTogRU5WSVJPTk1FTlRfSU5JVElBTElaRVIsIG11bHRpOiB0cnVlLCB1c2VWYWx1ZTogKCkgPT4gbG9jYWxTdG9yYWdlLmNsZWFyKCl9LFxuICAgIHtwcm92aWRlOiBFTlZJUk9OTUVOVF9JTklUSUFMSVpFUiwgbXVsdGk6IHRydWUsIHVzZVZhbHVlOiAoKSA9PiB3aW5kb3cubmFtZSA9ICcnfSxcbiAgXSk7XG59XG5cbkBJbmplY3RhYmxlKC8qIERPIE5PVCBQUk9WSURFIHZpYSAncHJvdmlkZWRJbicgbWV0YWRhdGEgYXMgcmVnaXN0ZXJlZCBvbmx5IGlmIHVzaW5nIGBXb3JrYmVuY2hUZXN0aW5nTW9kdWxlYC4gKi8pXG5jbGFzcyBTZXF1ZW5jZUluc3RhbnRQcm92aWRlciBpbXBsZW1lbnRzIEFjdGl2YXRpb25JbnN0YW50UHJvdmlkZXIge1xuXG4gIHByaXZhdGUgX3NlcXVlbmNlID0gMDtcblxuICBwdWJsaWMgbm93KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3NlcXVlbmNlKys7XG4gIH1cbn1cbiJdfQ==
@@ -66,10 +66,10 @@ export class WorkbenchThemeSwitcher {
66
66
  await this.switchTheme(theme);
67
67
  }
68
68
  }
69
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: WorkbenchThemeSwitcher, deps: [{ token: i1.WorkbenchStorage }], target: i0.ɵɵFactoryTarget.Injectable }); }
70
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: WorkbenchThemeSwitcher, providedIn: 'root' }); }
69
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: WorkbenchThemeSwitcher, deps: [{ token: i1.WorkbenchStorage }], target: i0.ɵɵFactoryTarget.Injectable }); }
70
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: WorkbenchThemeSwitcher, providedIn: 'root' }); }
71
71
  }
72
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: WorkbenchThemeSwitcher, decorators: [{
72
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: WorkbenchThemeSwitcher, decorators: [{
73
73
  type: Injectable,
74
74
  args: [{ providedIn: 'root' }]
75
75
  }], ctorParameters: () => [{ type: i1.WorkbenchStorage }] });
@@ -8,4 +8,5 @@
8
8
  * SPDX-License-Identifier: EPL-2.0
9
9
  */
10
10
  export { WorkbenchView } from './workbench-view.model';
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL3dvcmtiZW5jaC9zcmMvbGliL3ZpZXcvcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUVILE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyMyBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wXG4gKi9cblxuZXhwb3J0IHtXb3JrYmVuY2hWaWV3fSBmcm9tICcuL3dvcmtiZW5jaC12aWV3Lm1vZGVsJztcbiJdfQ==
11
+ export { canMatchWorkbenchView } from './workbench-view-route-guards';
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL3dvcmtiZW5jaC9zcmMvbGliL3ZpZXcvcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUVILE9BQU8sRUFBQyxhQUFhLEVBQVMsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RCxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyMyBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wXG4gKi9cblxuZXhwb3J0IHtXb3JrYmVuY2hWaWV3LCBWaWV3SWR9IGZyb20gJy4vd29ya2JlbmNoLXZpZXcubW9kZWwnO1xuZXhwb3J0IHtjYW5NYXRjaFdvcmtiZW5jaFZpZXd9IGZyb20gJy4vd29ya2JlbmNoLXZpZXctcm91dGUtZ3VhcmRzJztcbiJdfQ==
@@ -1,14 +1,13 @@
1
- import { Inject, Injectable, Injector } from '@angular/core';
2
- import { UUID } from '@scion/toolkit/uuid';
1
+ import { Inject, Injectable } from '@angular/core';
3
2
  import { RouterUtils } from '../routing/router.util';
4
3
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
5
4
  import { Defined } from '@scion/toolkit/util';
6
5
  import { generatePerspectiveWindowName } from '../perspective/workbench-perspective.service';
7
6
  import { ANONYMOUS_PERSPECTIVE_ID_PREFIX } from '../workbench.constants';
8
- import { MAIN_AREA_INITIAL_PART_ID } from '../layout/ɵworkbench-layout';
9
7
  import { WORKBENCH_ID } from '../workbench-id';
8
+ import { randomUUID } from '../common/uuid.util';
10
9
  import * as i0 from "@angular/core";
11
- import * as i1 from "../routing/workbench-router.service";
10
+ import * as i1 from "../routing/\u0275workbench-router.service";
12
11
  import * as i2 from "../layout/\u0275workbench-layout.factory";
13
12
  import * as i3 from "../view-dnd/view-drag.service";
14
13
  import * as i4 from "@angular/router";
@@ -17,14 +16,13 @@ import * as i5 from "@angular/common";
17
16
  * Updates the workbench layout when the user moves a view.
18
17
  */
19
18
  export class ViewMoveHandler {
20
- constructor(_workbenchId, _workbenchRouter, _workbenchLayoutFactory, _viewDragService, _router, _locationStrategy, _injector) {
19
+ constructor(_workbenchId, _workbenchRouter, _workbenchLayoutFactory, _viewDragService, _router, _locationStrategy) {
21
20
  this._workbenchId = _workbenchId;
22
21
  this._workbenchRouter = _workbenchRouter;
23
22
  this._workbenchLayoutFactory = _workbenchLayoutFactory;
24
23
  this._viewDragService = _viewDragService;
25
24
  this._router = _router;
26
25
  this._locationStrategy = _locationStrategy;
27
- this._injector = _injector;
28
26
  this.installViewMoveListener();
29
27
  }
30
28
  installViewMoveListener() {
@@ -60,94 +58,76 @@ export class ViewMoveHandler {
60
58
  const region = event.target.region;
61
59
  const addToNewPart = !!region;
62
60
  const commands = RouterUtils.segmentsToCommands(event.source.viewUrlSegments);
63
- await this._workbenchRouternavigate(layout => {
64
- const newViewId = RouterUtils.isPrimaryRouteTarget(event.source.viewId) ? layout.computeNextViewId() : event.source.viewId;
61
+ await this._workbenchRouter.navigate(layout => {
62
+ const newViewId = event.source.alternativeViewId ?? layout.computeNextViewId();
65
63
  if (addToNewPart) {
66
- const newPartId = event.target.newPart?.id ?? UUID.randomUUID();
67
- return {
68
- layout: layout
69
- .addPart(newPartId, { relativeTo: event.target.elementId, align: coerceAlignProperty(region), ratio: event.target.newPart?.ratio }, { structural: false })
70
- .addView(newViewId, { partId: newPartId, activateView: true, activatePart: true }),
71
- viewOutlets: { [newViewId]: commands },
72
- };
64
+ const newPartId = event.target.newPart?.id ?? randomUUID();
65
+ return layout
66
+ .addPart(newPartId, { relativeTo: event.target.elementId, align: coerceAlignProperty(region), ratio: event.target.newPart?.ratio }, { structural: false })
67
+ .addView(newViewId, { partId: newPartId, activateView: true, activatePart: true, cssClass: event.source.classList?.get('layout') })
68
+ .navigateView(newViewId, commands, { hint: event.source.navigationHint, cssClass: event.source.classList?.get('navigation') });
73
69
  }
74
70
  else {
75
- return {
76
- layout: layout.addView(newViewId, {
77
- partId: Defined.orElseThrow(event.target.elementId, () => Error(`[IllegalArgumentError] Target part mandatory for region 'center'.`)),
78
- position: event.target.position ?? 'after-active-view',
79
- activateView: true,
80
- activatePart: true,
81
- }),
82
- viewOutlets: { [newViewId]: commands },
83
- };
71
+ return layout
72
+ .addView(newViewId, {
73
+ partId: Defined.orElseThrow(event.target.elementId, () => Error(`[ViewMoveError] Target part required for region 'center'.`)),
74
+ position: event.target.position ?? 'after-active-view',
75
+ cssClass: event.source.classList?.get('layout'),
76
+ activateView: true,
77
+ activatePart: true,
78
+ })
79
+ .navigateView(newViewId, commands, { hint: event.source.navigationHint, cssClass: event.source.classList?.get('navigation') });
84
80
  }
85
81
  });
86
82
  }
87
83
  async moveViewToNewWindow(event) {
88
84
  // Open the view "standalone" in a blank window in an anonymous perspective.
89
- const urlTree = await this._workbenchRouter.createUrlTree(layout => {
90
- const mainAreaPartId = UUID.randomUUID();
91
- return {
92
- layout: this._workbenchLayoutFactory
93
- .create({
94
- injector: Injector.create({
95
- parent: this._injector,
96
- // Instruct factory not to use UUID as identity for the initial part of the main area
97
- providers: [{ provide: MAIN_AREA_INITIAL_PART_ID, useValue: mainAreaPartId }],
98
- }),
99
- })
100
- .addView(event.source.viewId, {
101
- partId: mainAreaPartId,
102
- activateView: true,
103
- activatePart: true,
104
- }),
105
- viewOutlets: layout.views() // Remove other views
106
- .map(view => view.id)
107
- .filter(viewId => viewId !== event.source.viewId)
108
- .reduce((acc, viewId) => ({ ...acc, [viewId]: null }), {}),
109
- };
85
+ const urlTree = await this._workbenchRouter.createUrlTree(() => {
86
+ const newLayout = this._workbenchLayoutFactory.create();
87
+ const newViewId = event.source.alternativeViewId ?? newLayout.computeNextViewId();
88
+ const commands = RouterUtils.segmentsToCommands(event.source.viewUrlSegments);
89
+ return newLayout
90
+ .addView(newViewId, {
91
+ partId: newLayout.activePart({ grid: 'mainArea' }).id,
92
+ activateView: true,
93
+ cssClass: event.source.classList?.get('layout'),
94
+ })
95
+ .navigateView(newViewId, commands, { hint: event.source.navigationHint, cssClass: event.source.classList?.get('navigation') });
110
96
  });
111
- const target = generatePerspectiveWindowName(`${ANONYMOUS_PERSPECTIVE_ID_PREFIX}${UUID.randomUUID()}`);
97
+ const target = generatePerspectiveWindowName(`${ANONYMOUS_PERSPECTIVE_ID_PREFIX}${randomUUID()}`);
112
98
  if (window.open(this._locationStrategy.prepareExternalUrl(this._router.serializeUrl(urlTree)), target)) {
113
99
  await this.removeView(event);
114
100
  }
115
101
  }
116
102
  async removeView(event) {
117
- const viewId = event.source.viewId;
118
- await this._workbenchRouter.ɵnavigate(layout => {
119
- return {
120
- layout: layout.removeView(viewId),
121
- viewOutlets: { [viewId]: null },
122
- };
123
- });
103
+ await this._workbenchRouter.navigate(layout => layout.removeView(event.source.viewId, { force: true }));
124
104
  }
125
105
  async moveView(event) {
126
106
  const addToNewPart = !!event.target.region;
127
107
  if (addToNewPart) {
128
- const newPartId = event.target.newPart?.id ?? UUID.randomUUID();
129
- await this._workbenchRouternavigate(layout => layout
108
+ const newPartId = event.target.newPart?.id ?? randomUUID();
109
+ await this._workbenchRouter.navigate(layout => layout
130
110
  .addPart(newPartId, { relativeTo: event.target.elementId, align: coerceAlignProperty(event.target.region), ratio: event.target.newPart?.ratio }, { structural: false })
131
111
  .moveView(event.source.viewId, newPartId, { activatePart: true, activateView: true }));
132
112
  }
133
113
  else {
134
- const targetPartId = Defined.orElseThrow(event.target.elementId, () => Error(`[IllegalArgumentError] Target part mandatory for region 'center'.`));
135
- await this._workbenchRouternavigate(layout => layout.moveView(event.source.viewId, targetPartId, {
114
+ const targetPartId = Defined.orElseThrow(event.target.elementId, () => Error(`[ViewMoveError] Target part required for region 'center'.`));
115
+ await this._workbenchRouter.navigate(layout => layout.moveView(event.source.viewId, targetPartId, {
136
116
  position: event.target.position ?? (event.source.partId === targetPartId ? undefined : 'after-active-view'),
137
117
  activateView: true,
138
118
  activatePart: true,
139
119
  }));
140
120
  }
141
121
  }
142
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: ViewMoveHandler, deps: [{ token: WORKBENCH_ID }, { token: i1.WorkbenchRouter }, { token: i2.ɵWorkbenchLayoutFactory }, { token: i3.ViewDragService }, { token: i4.Router }, { token: i5.LocationStrategy }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
143
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: ViewMoveHandler }); }
122
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: ViewMoveHandler, deps: [{ token: WORKBENCH_ID }, { token: i1WorkbenchRouter }, { token: i2.ɵWorkbenchLayoutFactory }, { token: i3.ViewDragService }, { token: i4.Router }, { token: i5.LocationStrategy }], target: i0.ɵɵFactoryTarget.Injectable }); }
123
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: ViewMoveHandler }); }
144
124
  }
145
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: ViewMoveHandler, decorators: [{
125
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: ViewMoveHandler, decorators: [{
146
126
  type: Injectable
147
127
  }], ctorParameters: () => [{ type: undefined, decorators: [{
148
128
  type: Inject,
149
129
  args: [WORKBENCH_ID]
150
- }] }, { type: i1.WorkbenchRouter }, { type: i2.ɵWorkbenchLayoutFactory }, { type: i3.ViewDragService }, { type: i4.Router }, { type: i5.LocationStrategy }, { type: i0.Injector }] });
130
+ }] }, { type: i1WorkbenchRouter }, { type: i2.ɵWorkbenchLayoutFactory }, { type: i3.ViewDragService }, { type: i4.Router }, { type: i5.LocationStrategy }] });
151
131
  function coerceAlignProperty(region) {
152
132
  switch (region) {
153
133
  case 'west':
@@ -162,4 +142,4 @@ function coerceAlignProperty(region) {
162
142
  throw Error(`[UnsupportedRegionError] Supported regions are 'north', 'east', 'south' or 'west', but is '${region}'.`);
163
143
  }
164
144
  }
165
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy1tb3ZlLWhhbmRsZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL3dvcmtiZW5jaC9zcmMvbGliL3ZpZXcvdmlldy1tb3ZlLWhhbmRsZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFM0QsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBSXpDLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUVuRCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDNUMsT0FBTyxFQUFDLDZCQUE2QixFQUFDLE1BQU0sOENBQThDLENBQUM7QUFDM0YsT0FBTyxFQUFDLCtCQUErQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDdkUsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDdEUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7O0FBRTdDOztHQUVHO0FBRUgsTUFBTSxPQUFPLGVBQWU7SUFFMUIsWUFBMEMsWUFBb0IsRUFDMUMsZ0JBQWlDLEVBQ2pDLHVCQUFnRCxFQUNoRCxnQkFBaUMsRUFDakMsT0FBZSxFQUNmLGlCQUFtQyxFQUNuQyxTQUFtQjtRQU5HLGlCQUFZLEdBQVosWUFBWSxDQUFRO1FBQzFDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBaUI7UUFDakMsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUF5QjtRQUNoRCxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWlCO1FBQ2pDLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFDZixzQkFBaUIsR0FBakIsaUJB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QUMsTUFBTSxFQUFFLFlBQVksRUFBRTtnQkFDakcsUUFBUSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEtBQUssWUFBWSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDO2dCQUMzRyxZQUFZLEVBQUUsSUFBSTtnQkFDbEIsWUFBWSxFQUFFLElBQUk7YUFDbkIsQ0FBQyxDQUFDLENBQUM7U0FDTDtJQUNILENBQUM7OEdBcklVLGVBQWUsa0JBRU4sWUFBWTtrSEFGckIsZUFBZTs7MkZBQWYsZUFBZTtrQkFEM0IsVUFBVTs7MEJBR0ksTUFBTTsyQkFBQyxZQUFZOztBQXNJbEMsU0FBUyxtQkFBbUIsQ0FBQyxNQUFzRDtJQUNqRixRQUFRLE1BQU0sRUFBRTtRQUNkLEtBQUssTUFBTTtZQUNULE9BQU8sTUFBTSxDQUFDO1FBQ2hCLEtBQUssTUFBTTtZQUNULE9BQU8sT0FBTyxDQUFDO1FBQ2pCLEtBQUssT0FBTztZQUNWLE9BQU8sS0FBSyxDQUFDO1FBQ2YsS0FBSyxPQUFPO1lBQ1YsT0FBTyxRQUFRLENBQUM7UUFDbEI7WUFDRSxNQUFNLEtBQUssQ0FBQyw4RkFBOEYsTUFBTSxJQUFJLENBQUMsQ0FBQztLQUN6SDtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0b3J9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtWaWV3RHJhZ1NlcnZpY2UsIFZpZXdNb3ZlRXZlbnR9IGZyb20gJy4uL3ZpZXctZG5kL3ZpZXctZHJhZy5zZXJ2aWNlJztcbmltcG9ydCB7VVVJRH0gZnJvbSAnQHNjaW9uL3Rvb2xraXQvdXVpZCc7XG5pbXBvcnQge1JvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7TG9jYXRpb25TdHJhdGVneX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7V29ya2JlbmNoUm91dGVyfSBmcm9tICcuLi9yb3V0aW5nL3dvcmtiZW5jaC1yb3V0ZXIuc2VydmljZSc7XG5pbXBvcnQge1JvdXRlclV0aWxzfSBmcm9tICcuLi9yb3V0aW5nL3JvdXRlci51dGlsJztcbmltcG9ydCB7ybVXb3JrYmVuY2hMYXlvdXRGYWN0b3J5fSBmcm9tICcuLi9sYXlvdXQvybV3b3JrYmVuY2gtbGF5b3V0LmZhY3RvcnknO1xuaW1wb3J0IHt0YWtlVW50aWxEZXN0cm95ZWR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7RGVmaW5lZH0gZnJvbSAnQHNjaW9uL3Rvb2xraXQvdXRpbCc7XG5pbXBvcnQge2dlbmVyYXRlUGVyc3BlY3RpdmVXaW5kb3dOYW1lfSBmcm9tICcuLi9wZXJzcGVjdGl2ZS93b3JrYmVuY2gtcGVyc3BlY3RpdmUuc2VydmljZSc7XG5pbXBvcnQge0FOT05ZTU9VU19QRVJTUEVDVElWRV9JRF9QUkVGSVh9IGZyb20gJy4uL3dvcmtiZW5jaC5jb25zdGFudHMnO1xuaW1wb3J0IHtNQUlOX0FSRUFfSU5JVElBTF9QQVJUX0lEfSBmcm9tICcuLi9sYXlvdXQvybV3b3JrYmVuY2gtbGF5b3V0JztcbmltcG9ydCB7V09SS0JFTkNIX0lEfSBmcm9tICcuLi93b3JrYmVuY2gtaWQnO1xuXG4vKipcbiAqIFVwZGF0ZXMgdGhlIHdvcmtiZW5jaCBsYXlvdXQgd2hlbiB0aGUgdXNlciBtb3ZlcyBhIHZpZXcuXG4gKi9cbkBJbmplY3RhYmxlKC8qIERPIE5PVCBQUk9WSURFIHZpYSAncHJvdmlkZWRJbicgbWV0YWRhdGEgYXMgcmVnaXN0ZXJlZCB2aWEgd29ya2JlbmNoIHN0YXJ0dXAgaG9vay4gKi8pXG5leHBvcnQgY2xhc3MgVmlld01vdmVIYW5kbGVyIHtcblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KFdPUktCRU5DSF9JRCkgcHJpdmF0ZSBfd29ya2JlbmNoSWQ6IHN0cmluZyxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfd29ya2JlbmNoUm91dGVyOiBXb3JrYmVuY2hSb3V0ZXIsXG4gICAgICAgICAgICAgIHByaXZhdGUgX3dvcmtiZW5jaExheW91dEZhY3Rvcnk6IMm1V29ya2JlbmNoTGF5b3V0RmFjdG9yeSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfdmlld0RyYWdTZXJ2aWNlOiBWaWV3RHJhZ1NlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgX3JvdXRlcjogUm91dGVyLFxuICAgICAgICAgICAgICBwcml2YXRlIF9sb2NhdGlvblN0cmF0ZWd5OiBMb2NhdGlvblN0cmF0ZWd5LFxuICAgICAgICAgICAgICBwcml2YXRlIF9pbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICB0aGlzLmluc3RhbGxWaWV3TW92ZUxpc3RlbmVyKCk7XG4gIH1cblxuICBwcml2YXRlIGluc3RhbGxWaWV3TW92ZUxpc3RlbmVyKCk6IHZvaWQge1xuICAgIHRoaXMuX3ZpZXdEcmFnU2VydmljZS52aWV3TW92ZSRcbiAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKVxuICAgICAgLnN1YnNjcmliZShhc3luYyAoZXZlbnQ6IFZpZXdNb3ZlRXZlbnQpID0+IHsgLy8gZXNsaW50LWRpc2FibGUtbGluZSByeGpzL25vLWFzeW5jLXN1YnNjcmliZVxuICAgICAgICAvLyBDaGVjayBpZiB0aGlzIHdvcmtiZW5jaCBpbnN0YW5jZSB0YWtlcyBwYXJ0IGluIHRoZSB2aWV3IGRyYWcgb3BlcmF0aW9uLiBJZiBub3QsIGRvIG5vdGhpbmcuXG4gICAgICAgIGlmIChldmVudC5zb3VyY2Uud29ya2JlbmNoSWQgIT09IHRoaXMuX3dvcmtiZW5jaElkICYmIGV2ZW50LnRhcmdldC53b3JrYmVuY2hJZCAhPT0gdGhpcy5fd29ya2JlbmNoSWQpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjcm9zc1dvcmtiZW5jaFZpZXdEcmFnID0gKGV2ZW50LnNvdXJjZS53b3JrYmVuY2hJZCAhPT0gZXZlbnQudGFyZ2V0LndvcmtiZW5jaElkKTtcblxuICAgICAgICAvLyBDaGVjayBpZiB0byByZW1vdmUgdGhlIHZpZXcgZnJvbSB0aGlzIHdvcmtiZW5jaCBpbnN0YW5jZSBpZiBiZWluZyBtb3ZlZCB0byBhbm90aGVyIHdvcmtiZW5jaCBpbnN0YW5jZS5cbiAgICAgICAgaWYgKGNyb3NzV29ya2JlbmNoVmlld0RyYWcgJiYgZXZlbnQuc291cmNlLndvcmtiZW5jaElkID09PSB0aGlzLl93b3JrYmVuY2hJZCkge1xuICAgICAgICAgIC8vIENoZWNrIGlmIHRvIGFkZCB0aGUgdmlldyB0byBhIG5ldyBicm93c2VyIHdpbmRvdy5cbiAgICAgICAgICBpZiAoZXZlbnQudGFyZ2V0LndvcmtiZW5jaElkID09PSAnbmV3LXdpbmRvdycpIHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMubW92ZVZpZXdUb05ld1dpbmRvdyhldmVudCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5yZW1vdmVWaWV3KGV2ZW50KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gQ2hlY2sgaWYgdG8gYWRkIHRoZSB2aWV3IHRvIHRoaXMgd29ya2JlbmNoIGluc3RhbmNlIGlmIGJlaW5nIG1vdmVkIGZyb20gYW5vdGhlciB3b3JrYmVuY2ggaW5zdGFuY2UgdG8gdGhpcyB3b3JrYmVuY2ggaW5zdGFuY2UuXG4gICAgICAgIGVsc2UgaWYgKGNyb3NzV29ya2JlbmNoVmlld0RyYWcgJiYgZXZlbnQudGFyZ2V0LndvcmtiZW5jaElkID09PSB0aGlzLl93b3JrYmVuY2hJZCkge1xuICAgICAgICAgIGF3YWl0IHRoaXMuYWRkVmlldyhldmVudCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gTW92ZSB0aGUgdmlldyB3aXRoaW4gdGhlIHNhbWUgd29ya2JlbmNoIGluc3RhbmNlLlxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICBhd2FpdCB0aGlzLm1vdmVWaWV3KGV2ZW50KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGFkZFZpZXcoZXZlbnQ6IFZpZXdNb3ZlRXZlbnQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCByZWdpb24gPSBldmVudC50YXJnZXQucmVnaW9uO1xuICAgIGNvbnN0IGFkZFRvTmV3UGFydCA9ICEhcmVnaW9uO1xuICAgIGNvbnN0IGNvbW1hbmRzID0gUm91dGVyVXRpbHMuc2VnbWVudHNUb0NvbW1hbmRzKGV2ZW50LnNvdXJjZS52aWV3VXJsU2VnbWVudHMpO1xuXG4gICAgYXdhaXQgdGhpcy5fd29ya2JlbmNoUm91dGVyLsm1bmF2aWdhdGUobGF5b3V0ID0+IHtcbiAgICAgIGNvbnN0IG5ld1ZpZXdJZCA9IFJvdXRlclV0aWxzLmlzUHJpbWFyeVJvdXRlVGFyZ2V0KGV2ZW50LnNvdXJjZS52aWV3SWQpID8gbGF5b3V0LmNvbXB1dGVOZXh0Vmlld0lkKCkgOiBldmVudC5zb3VyY2Uudmlld0lkO1xuICAgICAgaWYgKGFkZFRvTmV3UGFydCkge1xuICAgICAgICBjb25zdCBuZXdQYXJ0SWQgPSBldmVudC50YXJnZXQubmV3UGFydD8uaWQgPz8gVVVJRC5yYW5kb21VVUlEKCk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgbGF5b3V0OiBsYXlvdXRcbiAgICAgICAgICAgIC5hZGRQYXJ0KG5ld1BhcnRJZCwge3JlbGF0aXZlVG86IGV2ZW50LnRhcmdldC5lbGVtZW50SWQsIGFsaWduOiBjb2VyY2VBbGlnblByb3BlcnR5KHJlZ2lvbiEpLCByYXRpbzogZXZlbnQudGFyZ2V0Lm5ld1BhcnQ/LnJhdGlvfSwge3N0cnVjdHVyYWw6IGZhbHNlfSlcbiAgICAgICAgICAgIC5hZGRWaWV3KG5ld1ZpZXdJZCwge3BhcnRJZDogbmV3UGFydElkLCBhY3RpdmF0ZVZpZXc6IHRydWUsIGFjdGl2YXRlUGFydDogdHJ1ZX0pLFxuICAgICAgICAgIHZpZXdPdXRsZXRzOiB7W25ld1ZpZXdJZF06IGNvbW1hbmRzfSxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGxheW91dDogbGF5b3V0LmFkZFZpZXcobmV3Vmlld0lkLCB7XG4gICAgICAgICAgICBwYXJ0SWQ6IERlZmluZWQub3JFbHNlVGhyb3coZXZlbnQudGFyZ2V0LmVsZW1lbnRJZCwgKCkgPT4gRXJyb3IoYFtJbGxlZ2FsQXJndW1lbnRFcnJvcl0gVGFyZ2V0IHBhcnQgbWFuZGF0b3J5IGZvciByZWdpb24gJ2NlbnRlcicuYCkpLFxuICAgICAgICAgICAgcG9zaXRpb246IGV2ZW50LnRhcmdldC5wb3NpdGlvbiA/PyAnYWZ0ZXItYWN0aXZlLXZpZXcnLFxuICAgICAgICAgICAgYWN0aXZhdGVWaWV3OiB0cnVlLFxuICAgICAgICAgICAgYWN0aXZhdGVQYXJ0OiB0cnVlLFxuICAgICAgICAgIH0pLFxuICAgICAgICAgIHZpZXdPdXRsZXRzOiB7W25ld1ZpZXdJZF06IGNvbW1hbmRzfSxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbW92ZVZpZXdUb05ld1dpbmRvdyhldmVudDogVmlld01vdmVFdmVudCk6IFByb21pc2U8dm9pZD4ge1xuICAgIC8vIE9wZW4gdGhlIHZpZXcgXCJzdGFuZGFsb25lXCIgaW4gYSBibGFuayB3aW5kb3cgaW4gYW4gYW5vbnltb3VzIHBlcnNwZWN0aXZlLlxuICAgIGNvbnN0IHVybFRyZWUgPSBhd2FpdCB0aGlzLl93b3JrYmVuY2hSb3V0ZXIuY3JlYXRlVXJsVHJlZShsYXlvdXQgPT4ge1xuICAgICAgY29uc3QgbWFpbkFyZWFQYXJ0SWQgPSBVVUlELnJhbmRvbVVVSUQoKTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbGF5b3V0OiB0aGlzLl93b3JrYmVuY2hMYXlvdXRGYWN0b3J5XG4gICAgICAgICAgLmNyZWF0ZSh7XG4gICAgICAgICAgICBpbmplY3RvcjogSW5qZWN0b3IuY3JlYXRlKHtcbiAgICAgICAgICAgICAgcGFyZW50OiB0aGlzLl9pbmplY3RvcixcbiAgICAgICAgICAgICAgLy8gSW5zdHJ1Y3QgZmFjdG9yeSBub3QgdG8gdXNlIFVVSUQgYXMgaWRlbnRpdHkgZm9yIHRoZSBpbml0aWFsIHBhcnQgb2YgdGhlIG1haW4gYXJlYVxuICAgICAgICAgICAgICBwcm92aWRlcnM6IFt7cHJvdmlkZTogTUFJTl9BUkVBX0lOSVRJQUxfUEFSVF9JRCwgdXNlVmFsdWU6IG1haW5BcmVhUGFydElkfV0sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5hZGRWaWV3KGV2ZW50LnNvdXJjZS52aWV3SWQsIHtcbiAgICAgICAgICAgICAgcGFydElkOiBtYWluQXJlYVBhcnRJZCxcbiAgICAgICAgICAgICAgYWN0aXZhdGVWaWV3OiB0cnVlLFxuICAgICAgICAgICAgICBhY3RpdmF0ZVBhcnQ6IHRydWUsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICksXG4gICAgICAgIHZpZXdPdXRsZXRzOiBsYXlvdXQudmlld3MoKSAvLyBSZW1vdmUgb3RoZXIgdmlld3NcbiAgICAgICAgICAubWFwKHZpZXcgPT4gdmlldy5pZClcbiAgICAgICAgICAuZmlsdGVyKHZpZXdJZCA9PiB2aWV3SWQgIT09IGV2ZW50LnNvdXJjZS52aWV3SWQpXG4gICAgICAgICAgLnJlZHVjZSgoYWNjLCB2aWV3SWQpID0+ICh7Li4uYWNjLCBbdmlld0lkXTogbnVsbH0pLCB7fSksXG4gICAgICB9O1xuICAgIH0pO1xuICAgIGNvbnN0IHRhcmdldCA9IGdlbmVyYXRlUGVyc3BlY3RpdmVXaW5kb3dOYW1lKGAke0FOT05ZTU9VU19QRVJTUEVDVElWRV9JRF9QUkVGSVh9JHtVVUlELnJhbmRvbVVVSUQoKX1gKTtcbiAgICBpZiAod2luZG93Lm9wZW4odGhpcy5fbG9jYXRpb25TdHJhdGVneS5wcmVwYXJlRXh0ZXJuYWxVcmwodGhpcy5fcm91dGVyLnNlcmlhbGl6ZVVybCh1cmxUcmVlKSksIHRhcmdldCkpIHtcbiAgICAgIGF3YWl0IHRoaXMucmVtb3ZlVmlldyhldmVudCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyByZW1vdmVWaWV3KGV2ZW50OiBWaWV3TW92ZUV2ZW50KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3Qgdmlld0lkID0gZXZlbnQuc291cmNlLnZpZXdJZDtcbiAgICBhd2FpdCB0aGlzLl93b3JrYmVuY2hSb3V0ZXIuybVuYXZpZ2F0ZShsYXlvdXQgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbGF5b3V0OiBsYXlvdXQucmVtb3ZlVmlldyh2aWV3SWQpLFxuICAgICAgICB2aWV3T3V0bGV0czoge1t2aWV3SWRdOiBudWxsfSxcbiAgICAgIH07XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIG1vdmVWaWV3KGV2ZW50OiBWaWV3TW92ZUV2ZW50KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgYWRkVG9OZXdQYXJ0ID0gISFldmVudC50YXJnZXQucmVnaW9uO1xuICAgIGlmIChhZGRUb05ld1BhcnQpIHtcbiAgICAgIGNvbnN0IG5ld1BhcnRJZCA9IGV2ZW50LnRhcmdldC5uZXdQYXJ0Py5pZCA/PyBVVUlELnJhbmRvbVVVSUQoKTtcbiAgICAgIGF3YWl0IHRoaXMuX3dvcmtiZW5jaFJvdXRlci7JtW5hdmlnYXRlKGxheW91dCA9PiBsYXlvdXRcbiAgICAgICAgLmFkZFBhcnQobmV3UGFydElkLCB7cmVsYXRpdmVUbzogZXZlbnQudGFyZ2V0LmVsZW1lbnRJZCwgYWxpZ246IGNvZXJjZUFsaWduUHJvcGVydHkoZXZlbnQudGFyZ2V0LnJlZ2lvbiEpLCByYXRpbzogZXZlbnQudGFyZ2V0Lm5ld1BhcnQ/LnJhdGlvfSwge3N0cnVjdHVyYWw6IGZhbHNlfSlcbiAgICAgICAgLm1vdmVWaWV3KGV2ZW50LnNvdXJjZS52aWV3SWQsIG5ld1BhcnRJZCwge2FjdGl2YXRlUGFydDogdHJ1ZSwgYWN0aXZhdGVWaWV3OiB0cnVlfSksXG4gICAgICApO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGNvbnN0IHRhcmdldFBhcnRJZCA9IERlZmluZWQub3JFbHNlVGhyb3coZXZlbnQudGFyZ2V0LmVsZW1lbnRJZCwgKCkgPT4gRXJyb3IoYFtJbGxlZ2FsQXJndW1lbnRFcnJvcl0gVGFyZ2V0IHBhcnQgbWFuZGF0b3J5IGZvciByZWdpb24gJ2NlbnRlcicuYCkpO1xuICAgICAgYXdhaXQgdGhpcy5fd29ya2JlbmNoUm91dGVyLsm1bmF2aWdhdGUobGF5b3V0ID0+IGxheW91dC5tb3ZlVmlldyhldmVudC5zb3VyY2Uudmlld0lkLCB0YXJnZXRQYXJ0SWQsIHtcbiAgICAgICAgcG9zaXRpb246IGV2ZW50LnRhcmdldC5wb3NpdGlvbiA/PyAoZXZlbnQuc291cmNlLnBhcnRJZCA9PT0gdGFyZ2V0UGFydElkID8gdW5kZWZpbmVkIDogJ2FmdGVyLWFjdGl2ZS12aWV3JyksXG4gICAgICAgIGFjdGl2YXRlVmlldzogdHJ1ZSxcbiAgICAgICAgYWN0aXZhdGVQYXJ0OiB0cnVlLFxuICAgICAgfSkpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBjb2VyY2VBbGlnblByb3BlcnR5KHJlZ2lvbjogJ25vcnRoJyB8ICdlYXN0JyB8ICdzb3V0aCcgfCAnd2VzdCcgfCAnY2VudGVyJyk6ICdsZWZ0JyB8ICdyaWdodCcgfCAndG9wJyB8ICdib3R0b20nIHtcbiAgc3dpdGNoIChyZWdpb24pIHtcbiAgICBjYXNlICd3ZXN0JzpcbiAgICAgIHJldHVybiAnbGVmdCc7XG4gICAgY2FzZSAnZWFzdCc6XG4gICAgICByZXR1cm4gJ3JpZ2h0JztcbiAgICBjYXNlICdub3J0aCc6XG4gICAgICByZXR1cm4gJ3RvcCc7XG4gICAgY2FzZSAnc291dGgnOlxuICAgICAgcmV0dXJuICdib3R0b20nO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBFcnJvcihgW1Vuc3VwcG9ydGVkUmVnaW9uRXJyb3JdIFN1cHBvcnRlZCByZWdpb25zIGFyZSAnbm9ydGgnLCAnZWFzdCcsICdzb3V0aCcgb3IgJ3dlc3QnLCBidXQgaXMgJyR7cmVnaW9ufScuYCk7XG4gIH1cbn1cbiJdfQ==
145
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy1tb3ZlLWhhbmRsZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL3dvcmtiZW5jaC9zcmMvbGliL3ZpZXcvdmlldy1tb3ZlLWhhbmRsZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUtqRCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFFbkQsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQzVDLE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBQzNGLE9BQU8sRUFBQywrQkFBK0IsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0scUJBQXFCLENBQUM7Ozs7Ozs7QUFFL0M7O0dBRUc7QUFFSCxNQUFNLE9BQU8sZUFBZTtJQUUxQixZQUEwQyxZQUFvQixFQUMxQyxnQkFBa0MsRUFDbEMsdUJBQWdELEVBQ2hELGdCQUFpQyxFQUNqQyxPQUFlLEVBQ2YsaUJBQW1DO1FBTGIsaUJBQVksR0FBWixZQUFZLENBQVE7UUFDMUMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXlCO1FBQ2hELHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBaUI7UUFDakMsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNmLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBa0I7UUFDckQsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVPLHVCQUF1QjtR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QUFtQixDQUFDO2dCQUMzRyxZQUFZLEVBQUUsSUFBSTtnQkFDbEIsWUFBWSxFQUFFLElBQUk7YUFDbkIsQ0FBQyxDQUFDLENBQUM7U0FDTDtJQUNILENBQUM7OEdBaEhVLGVBQWUsa0JBRU4sWUFBWTtrSEFGckIsZUFBZTs7MkZBQWYsZUFBZTtrQkFEM0IsVUFBVTs7MEJBR0ksTUFBTTsyQkFBQyxZQUFZOztBQWlIbEMsU0FBUyxtQkFBbUIsQ0FBQyxNQUFzRDtJQUNqRixRQUFRLE1BQU0sRUFBRTtRQUNkLEtBQUssTUFBTTtZQUNULE9BQU8sTUFBTSxDQUFDO1FBQ2hCLEtBQUssTUFBTTtZQUNULE9BQU8sT0FBTyxDQUFDO1FBQ2pCLEtBQUssT0FBTztZQUNWLE9BQU8sS0FBSyxDQUFDO1FBQ2YsS0FBSyxPQUFPO1lBQ1YsT0FBTyxRQUFRLENBQUM7UUFDbEI7WUFDRSxNQUFNLEtBQUssQ0FBQyw4RkFBOEYsTUFBTSxJQUFJLENBQUMsQ0FBQztLQUN6SDtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdCwgSW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1ZpZXdEcmFnU2VydmljZSwgVmlld01vdmVFdmVudH0gZnJvbSAnLi4vdmlldy1kbmQvdmlldy1kcmFnLnNlcnZpY2UnO1xuaW1wb3J0IHtSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge0xvY2F0aW9uU3RyYXRlZ3l9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge8m1V29ya2JlbmNoUm91dGVyfSBmcm9tICcuLi9yb3V0aW5nL8m1d29ya2JlbmNoLXJvdXRlci5zZXJ2aWNlJztcbmltcG9ydCB7Um91dGVyVXRpbHN9IGZyb20gJy4uL3JvdXRpbmcvcm91dGVyLnV0aWwnO1xuaW1wb3J0IHvJtVdvcmtiZW5jaExheW91dEZhY3Rvcnl9IGZyb20gJy4uL2xheW91dC/JtXdvcmtiZW5jaC1sYXlvdXQuZmFjdG9yeSc7XG5pbXBvcnQge3Rha2VVbnRpbERlc3Ryb3llZH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHtEZWZpbmVkfSBmcm9tICdAc2Npb24vdG9vbGtpdC91dGlsJztcbmltcG9ydCB7Z2VuZXJhdGVQZXJzcGVjdGl2ZVdpbmRvd05hbWV9IGZyb20gJy4uL3BlcnNwZWN0aXZlL3dvcmtiZW5jaC1wZXJzcGVjdGl2ZS5zZXJ2aWNlJztcbmltcG9ydCB7QU5PTllNT1VTX1BFUlNQRUNUSVZFX0lEX1BSRUZJWH0gZnJvbSAnLi4vd29ya2JlbmNoLmNvbnN0YW50cyc7XG5pbXBvcnQge1dPUktCRU5DSF9JRH0gZnJvbSAnLi4vd29ya2JlbmNoLWlkJztcbmltcG9ydCB7cmFuZG9tVVVJRH0gZnJvbSAnLi4vY29tbW9uL3V1aWQudXRpbCc7XG5cbi8qKlxuICogVXBkYXRlcyB0aGUgd29ya2JlbmNoIGxheW91dCB3aGVuIHRoZSB1c2VyIG1vdmVzIGEgdmlldy5cbiAqL1xuQEluamVjdGFibGUoLyogRE8gTk9UIFBST1ZJREUgdmlhICdwcm92aWRlZEluJyBtZXRhZGF0YSBhcyByZWdpc3RlcmVkIHZpYSB3b3JrYmVuY2ggc3RhcnR1cCBob29rLiAqLylcbmV4cG9ydCBjbGFzcyBWaWV3TW92ZUhhbmRsZXIge1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoV09SS0JFTkNIX0lEKSBwcml2YXRlIF93b3JrYmVuY2hJZDogc3RyaW5nLFxuICAgICAgICAgICAgICBwcml2YXRlIF93b3JrYmVuY2hSb3V0ZXI6IMm1V29ya2JlbmNoUm91dGVyLFxuICAgICAgICAgICAgICBwcml2YXRlIF93b3JrYmVuY2hMYXlvdXRGYWN0b3J5OiDJtVdvcmtiZW5jaExheW91dEZhY3RvcnksXG4gICAgICAgICAgICAgIHByaXZhdGUgX3ZpZXdEcmFnU2VydmljZTogVmlld0RyYWdTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIF9yb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfbG9jYXRpb25TdHJhdGVneTogTG9jYXRpb25TdHJhdGVneSkge1xuICAgIHRoaXMuaW5zdGFsbFZpZXdNb3ZlTGlzdGVuZXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5zdGFsbFZpZXdNb3ZlTGlzdGVuZXIoKTogdm9pZCB7XG4gICAgdGhpcy5fdmlld0RyYWdTZXJ2aWNlLnZpZXdNb3ZlJFxuICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCkpXG4gICAgICAuc3Vic2NyaWJlKGFzeW5jIChldmVudDogVmlld01vdmVFdmVudCkgPT4geyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIHJ4anMvbm8tYXN5bmMtc3Vic2NyaWJlXG4gICAgICAgIC8vIENoZWNrIGlmIHRoaXMgd29ya2JlbmNoIGluc3RhbmNlIHRha2VzIHBhcnQgaW4gdGhlIHZpZXcgZHJhZyBvcGVyYXRpb24uIElmIG5vdCwgZG8gbm90aGluZy5cbiAgICAgICAgaWYgKGV2ZW50LnNvdXJjZS53b3JrYmVuY2hJZCAhPT0gdGhpcy5fd29ya2JlbmNoSWQgJiYgZXZlbnQudGFyZ2V0LndvcmtiZW5jaElkICE9PSB0aGlzLl93b3JrYmVuY2hJZCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNyb3NzV29ya2JlbmNoVmlld0RyYWcgPSAoZXZlbnQuc291cmNlLndvcmtiZW5jaElkICE9PSBldmVudC50YXJnZXQud29ya2JlbmNoSWQpO1xuXG4gICAgICAgIC8vIENoZWNrIGlmIHRvIHJlbW92ZSB0aGUgdmlldyBmcm9tIHRoaXMgd29ya2JlbmNoIGluc3RhbmNlIGlmIGJlaW5nIG1vdmVkIHRvIGFub3RoZXIgd29ya2JlbmNoIGluc3RhbmNlLlxuICAgICAgICBpZiAoY3Jvc3NXb3JrYmVuY2hWaWV3RHJhZyAmJiBldmVudC5zb3VyY2Uud29ya2JlbmNoSWQgPT09IHRoaXMuX3dvcmtiZW5jaElkKSB7XG4gICAgICAgICAgLy8gQ2hlY2sgaWYgdG8gYWRkIHRoZSB2aWV3IHRvIGEgbmV3IGJyb3dzZXIgd2luZG93LlxuICAgICAgICAgIGlmIChldmVudC50YXJnZXQud29ya2JlbmNoSWQgPT09ICduZXctd2luZG93Jykge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5tb3ZlVmlld1RvTmV3V2luZG93KGV2ZW50KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLnJlbW92ZVZpZXcoZXZlbnQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBDaGVjayBpZiB0byBhZGQgdGhlIHZpZXcgdG8gdGhpcyB3b3JrYmVuY2ggaW5zdGFuY2UgaWYgYmVpbmcgbW92ZWQgZnJvbSBhbm90aGVyIHdvcmtiZW5jaCBpbnN0YW5jZSB0byB0aGlzIHdvcmtiZW5jaCBpbnN0YW5jZS5cbiAgICAgICAgZWxzZSBpZiAoY3Jvc3NXb3JrYmVuY2hWaWV3RHJhZyAmJiBldmVudC50YXJnZXQud29ya2JlbmNoSWQgPT09IHRoaXMuX3dvcmtiZW5jaElkKSB7XG4gICAgICAgICAgYXdhaXQgdGhpcy5hZGRWaWV3KGV2ZW50KTtcbiAgICAgICAgfVxuICAgICAgICAvLyBNb3ZlIHRoZSB2aWV3IHdpdGhpbiB0aGUgc2FtZSB3b3JrYmVuY2ggaW5zdGFuY2UuXG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIGF3YWl0IHRoaXMubW92ZVZpZXcoZXZlbnQpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgYWRkVmlldyhldmVudDogVmlld01vdmVFdmVudCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHJlZ2lvbiA9IGV2ZW50LnRhcmdldC5yZWdpb247XG4gICAgY29uc3QgYWRkVG9OZXdQYXJ0ID0gISFyZWdpb247XG4gICAgY29uc3QgY29tbWFuZHMgPSBSb3V0ZXJVdGlscy5zZWdtZW50c1RvQ29tbWFuZHMoZXZlbnQuc291cmNlLnZpZXdVcmxTZWdtZW50cyk7XG5cbiAgICBhd2FpdCB0aGlzLl93b3JrYmVuY2hSb3V0ZXIubmF2aWdhdGUobGF5b3V0ID0+IHtcbiAgICAgIGNvbnN0IG5ld1ZpZXdJZCA9IGV2ZW50LnNvdXJjZS5hbHRlcm5hdGl2ZVZpZXdJZCA/PyBsYXlvdXQuY29tcHV0ZU5leHRWaWV3SWQoKTtcbiAgICAgIGlmIChhZGRUb05ld1BhcnQpIHtcbiAgICAgICAgY29uc3QgbmV3UGFydElkID0gZXZlbnQudGFyZ2V0Lm5ld1BhcnQ/LmlkID8/IHJhbmRvbVVVSUQoKTtcbiAgICAgICAgcmV0dXJuIGxheW91dFxuICAgICAgICAgIC5hZGRQYXJ0KG5ld1BhcnRJZCwge3JlbGF0aXZlVG86IGV2ZW50LnRhcmdldC5lbGVtZW50SWQsIGFsaWduOiBjb2VyY2VBbGlnblByb3BlcnR5KHJlZ2lvbiEpLCByYXRpbzogZXZlbnQudGFyZ2V0Lm5ld1BhcnQ/LnJhdGlvfSwge3N0cnVjdHVyYWw6IGZhbHNlfSlcbiAgICAgICAgICAuYWRkVmlldyhuZXdWaWV3SWQsIHtwYXJ0SWQ6IG5ld1BhcnRJZCwgYWN0aXZhdGVWaWV3OiB0cnVlLCBhY3RpdmF0ZVBhcnQ6IHRydWUsIGNzc0NsYXNzOiBldmVudC5zb3VyY2UuY2xhc3NMaXN0Py5nZXQoJ2xheW91dCcpfSlcbiAgICAgICAgICAubmF2aWdhdGVWaWV3KG5ld1ZpZXdJZCwgY29tbWFuZHMsIHtoaW50OiBldmVudC5zb3VyY2UubmF2aWdhdGlvbkhpbnQsIGNzc0NsYXNzOiBldmVudC5zb3VyY2UuY2xhc3NMaXN0Py5nZXQoJ25hdmlnYXRpb24nKX0pO1xuICAgICAgfVxuICAgICAgZWxzZSB7XG4gICAgICAgIHJldHVybiBsYXlvdXRcbiAgICAgICAgICAuYWRkVmlldyhuZXdWaWV3SWQsIHtcbiAgICAgICAgICAgIHBhcnRJZDogRGVmaW5lZC5vckVsc2VUaHJvdyhldmVudC50YXJnZXQuZWxlbWVudElkLCAoKSA9PiBFcnJvcihgW1ZpZXdNb3ZlRXJyb3JdIFRhcmdldCBwYXJ0IHJlcXVpcmVkIGZvciByZWdpb24gJ2NlbnRlcicuYCkpLFxuICAgICAgICAgICAgcG9zaXRpb246IGV2ZW50LnRhcmdldC5wb3NpdGlvbiA/PyAnYWZ0ZXItYWN0aXZlLXZpZXcnLFxuICAgICAgICAgICAgY3NzQ2xhc3M6IGV2ZW50LnNvdXJjZS5jbGFzc0xpc3Q/LmdldCgnbGF5b3V0JyksXG4gICAgICAgICAgICBhY3RpdmF0ZVZpZXc6IHRydWUsXG4gICAgICAgICAgICBhY3RpdmF0ZVBhcnQ6IHRydWUsXG4gICAgICAgICAgfSlcbiAgICAgICAgICAubmF2aWdhdGVWaWV3KG5ld1ZpZXdJZCwgY29tbWFuZHMsIHtoaW50OiBldmVudC5zb3VyY2UubmF2aWdhdGlvbkhpbnQsIGNzc0NsYXNzOiBldmVudC5zb3VyY2UuY2xhc3NMaXN0Py5nZXQoJ25hdmlnYXRpb24nKX0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBtb3ZlVmlld1RvTmV3V2luZG93KGV2ZW50OiBWaWV3TW92ZUV2ZW50KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gT3BlbiB0aGUgdmlldyBcInN0YW5kYWxvbmVcIiBpbiBhIGJsYW5rIHdpbmRvdyBpbiBhbiBhbm9ueW1vdXMgcGVyc3BlY3RpdmUuXG4gICAgY29uc3QgdXJsVHJlZSA9IGF3YWl0IHRoaXMuX3dvcmtiZW5jaFJvdXRlci5jcmVhdGVVcmxUcmVlKCgpID0+IHtcbiAgICAgIGNvbnN0IG5ld0xheW91dCA9IHRoaXMuX3dvcmtiZW5jaExheW91dEZhY3RvcnkuY3JlYXRlKCk7XG4gICAgICBjb25zdCBuZXdWaWV3SWQgPSBldmVudC5zb3VyY2UuYWx0ZXJuYXRpdmVWaWV3SWQgPz8gbmV3TGF5b3V0LmNvbXB1dGVOZXh0Vmlld0lkKCk7XG4gICAgICBjb25zdCBjb21tYW5kcyA9IFJvdXRlclV0aWxzLnNlZ21lbnRzVG9Db21tYW5kcyhldmVudC5zb3VyY2Uudmlld1VybFNlZ21lbnRzKTtcbiAgICAgIHJldHVybiBuZXdMYXlvdXRcbiAgICAgICAgLmFkZFZpZXcobmV3Vmlld0lkLCB7XG4gICAgICAgICAgcGFydElkOiBuZXdMYXlvdXQuYWN0aXZlUGFydCh7Z3JpZDogJ21haW5BcmVhJ30pIS5pZCxcbiAgICAgICAgICBhY3RpdmF0ZVZpZXc6IHRydWUsXG4gICAgICAgICAgY3NzQ2xhc3M6IGV2ZW50LnNvdXJjZS5jbGFzc0xpc3Q/LmdldCgnbGF5b3V0JyksXG4gICAgICAgIH0pXG4gICAgICAgIC5uYXZpZ2F0ZVZpZXcobmV3Vmlld0lkLCBjb21tYW5kcywge2hpbnQ6IGV2ZW50LnNvdXJjZS5uYXZpZ2F0aW9uSGludCwgY3NzQ2xhc3M6IGV2ZW50LnNvdXJjZS5jbGFzc0xpc3Q/LmdldCgnbmF2aWdhdGlvbicpfSk7XG4gICAgfSk7XG4gICAgY29uc3QgdGFyZ2V0ID0gZ2VuZXJhdGVQZXJzcGVjdGl2ZVdpbmRvd05hbWUoYCR7QU5PTllNT1VTX1BFUlNQRUNUSVZFX0lEX1BSRUZJWH0ke3JhbmRvbVVVSUQoKX1gKTtcbiAgICBpZiAod2luZG93Lm9wZW4odGhpcy5fbG9jYXRpb25TdHJhdGVneS5wcmVwYXJlRXh0ZXJuYWxVcmwodGhpcy5fcm91dGVyLnNlcmlhbGl6ZVVybCh1cmxUcmVlISkpLCB0YXJnZXQpKSB7XG4gICAgICBhd2FpdCB0aGlzLnJlbW92ZVZpZXcoZXZlbnQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcmVtb3ZlVmlldyhldmVudDogVmlld01vdmVFdmVudCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuX3dvcmtiZW5jaFJvdXRlci5uYXZpZ2F0ZShsYXlvdXQgPT4gbGF5b3V0LnJlbW92ZVZpZXcoZXZlbnQuc291cmNlLnZpZXdJZCwge2ZvcmNlOiB0cnVlfSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBtb3ZlVmlldyhldmVudDogVmlld01vdmVFdmVudCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGFkZFRvTmV3UGFydCA9ICEhZXZlbnQudGFyZ2V0LnJlZ2lvbjtcbiAgICBpZiAoYWRkVG9OZXdQYXJ0KSB7XG4gICAgICBjb25zdCBuZXdQYXJ0SWQgPSBldmVudC50YXJnZXQubmV3UGFydD8uaWQgPz8gcmFuZG9tVVVJRCgpO1xuICAgICAgYXdhaXQgdGhpcy5fd29ya2JlbmNoUm91dGVyLm5hdmlnYXRlKGxheW91dCA9PiBsYXlvdXRcbiAgICAgICAgLmFkZFBhcnQobmV3UGFydElkLCB7cmVsYXRpdmVUbzogZXZlbnQudGFyZ2V0LmVsZW1lbnRJZCwgYWxpZ246IGNvZXJjZUFsaWduUHJvcGVydHkoZXZlbnQudGFyZ2V0LnJlZ2lvbiEpLCByYXRpbzogZXZlbnQudGFyZ2V0Lm5ld1BhcnQ/LnJhdGlvfSwge3N0cnVjdHVyYWw6IGZhbHNlfSlcbiAgICAgICAgLm1vdmVWaWV3KGV2ZW50LnNvdXJjZS52aWV3SWQsIG5ld1BhcnRJZCwge2FjdGl2YXRlUGFydDogdHJ1ZSwgYWN0aXZhdGVWaWV3OiB0cnVlfSksXG4gICAgICApO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGNvbnN0IHRhcmdldFBhcnRJZCA9IERlZmluZWQub3JFbHNlVGhyb3coZXZlbnQudGFyZ2V0LmVsZW1lbnRJZCwgKCkgPT4gRXJyb3IoYFtWaWV3TW92ZUVycm9yXSBUYXJnZXQgcGFydCByZXF1aXJlZCBmb3IgcmVnaW9uICdjZW50ZXInLmApKTtcbiAgICAgIGF3YWl0IHRoaXMuX3dvcmtiZW5jaFJvdXRlci5uYXZpZ2F0ZShsYXlvdXQgPT4gbGF5b3V0Lm1vdmVWaWV3KGV2ZW50LnNvdXJjZS52aWV3SWQsIHRhcmdldFBhcnRJZCwge1xuICAgICAgICBwb3NpdGlvbjogZXZlbnQudGFyZ2V0LnBvc2l0aW9uID8/IChldmVudC5zb3VyY2UucGFydElkID09PSB0YXJnZXRQYXJ0SWQgPyB1bmRlZmluZWQgOiAnYWZ0ZXItYWN0aXZlLXZpZXcnKSxcbiAgICAgICAgYWN0aXZhdGVWaWV3OiB0cnVlLFxuICAgICAgICBhY3RpdmF0ZVBhcnQ6IHRydWUsXG4gICAgICB9KSk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGNvZXJjZUFsaWduUHJvcGVydHkocmVnaW9uOiAnbm9ydGgnIHwgJ2Vhc3QnIHwgJ3NvdXRoJyB8ICd3ZXN0JyB8ICdjZW50ZXInKTogJ2xlZnQnIHwgJ3JpZ2h0JyB8ICd0b3AnIHwgJ2JvdHRvbScge1xuICBzd2l0Y2ggKHJlZ2lvbikge1xuICAgIGNhc2UgJ3dlc3QnOlxuICAgICAgcmV0dXJuICdsZWZ0JztcbiAgICBjYXNlICdlYXN0JzpcbiAgICAgIHJldHVybiAncmlnaHQnO1xuICAgIGNhc2UgJ25vcnRoJzpcbiAgICAgIHJldHVybiAndG9wJztcbiAgICBjYXNlICdzb3V0aCc6XG4gICAgICByZXR1cm4gJ2JvdHRvbSc7XG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IEVycm9yKGBbVW5zdXBwb3J0ZWRSZWdpb25FcnJvcl0gU3VwcG9ydGVkIHJlZ2lvbnMgYXJlICdub3J0aCcsICdlYXN0JywgJ3NvdXRoJyBvciAnd2VzdCcsIGJ1dCBpcyAnJHtyZWdpb259Jy5gKTtcbiAgfVxufVxuIl19
@@ -23,11 +23,11 @@ export class ViewPortalPipe {
23
23
  }
24
24
  return this._viewRegistry.get(viewId).portal;
25
25
  }
26
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: ViewPortalPipe, deps: [{ token: i1.WorkbenchViewRegistry }], target: i0.ɵɵFactoryTarget.Pipe }); }
27
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.0.3", ngImport: i0, type: ViewPortalPipe, isStandalone: true, name: "wbViewPortal" }); }
26
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: ViewPortalPipe, deps: [{ token: i1.WorkbenchViewRegistry }], target: i0.ɵɵFactoryTarget.Pipe }); }
27
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.0.6", ngImport: i0, type: ViewPortalPipe, isStandalone: true, name: "wbViewPortal" }); }
28
28
  }
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: ViewPortalPipe, decorators: [{
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: ViewPortalPipe, decorators: [{
30
30
  type: Pipe,
31
31
  args: [{ name: 'wbViewPortal', standalone: true }]
32
32
  }], ctorParameters: () => [{ type: i1.WorkbenchViewRegistry }] });
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy1wb3J0YWwucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL3dvcmtiZW5jaC9zcmMvbGliL3ZpZXcvdmlldy1wb3J0YWwucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUVILE9BQU8sRUFBQyxJQUFJLEVBQWdCLE1BQU0sZUFBZSxDQUFDOzs7QUFLbEQ7O0dBRUc7QUFFSCxNQUFNLE9BQU8sY0FBYztJQUV6QixZQUFvQixhQUFvQztRQUFwQyxrQkFBYSxHQUFiLGFBQWEsQ0FBdUI7SUFDeEQsQ0FBQztJQUVNLFNBQVMsQ0FBQyxNQUFxQjtRQUNwQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1gsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQy9DLENBQUM7OEdBVlUsY0FBYzs0R0FBZCxjQUFjOzsyRkFBZCxjQUFjO2tCQUQxQixJQUFJO21CQUFDLEVBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIzIFN3aXNzIEZlZGVyYWwgUmFpbHdheXNcbiAqXG4gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlXG4gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMFxuICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjBcbiAqL1xuXG5pbXBvcnQge1BpcGUsIFBpcGVUcmFuc2Zvcm19IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtXb3JrYmVuY2hWaWV3UmVnaXN0cnl9IGZyb20gJy4vd29ya2JlbmNoLXZpZXcucmVnaXN0cnknO1xuaW1wb3J0IHtXYkNvbXBvbmVudFBvcnRhbH0gZnJvbSAnLi4vcG9ydGFsL3diLWNvbXBvbmVudC1wb3J0YWwnO1xuaW1wb3J0IHR5cGUge1ZpZXdDb21wb25lbnR9IGZyb20gJy4uL3ZpZXcvdmlldy5jb21wb25lbnQnO1xuXG4vKipcbiAqIFJlc29sdmVzIHRoZSBwb3J0YWwgZm9yIHRoZSBnaXZlbiB2aWV3LCBvciB0aHJvd3MgYW4gZXJyb3IgaWYgdGhlIHZpZXcgaXMgbm90IHJlZ2lzdGVyZWQuXG4gKi9cbkBQaXBlKHtuYW1lOiAnd2JWaWV3UG9ydGFsJywgc3RhbmRhbG9uZTogdHJ1ZX0pXG5leHBvcnQgY2xhc3MgVmlld1BvcnRhbFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF92aWV3UmVnaXN0cnk6IFdvcmtiZW5jaFZpZXdSZWdpc3RyeSkge1xuICB9XG5cbiAgcHVibGljIHRyYW5zZm9ybSh2aWV3SWQ6IHN0cmluZyB8IG51bGwpOiBXYkNvbXBvbmVudFBvcnRhbDxWaWV3Q29tcG9uZW50PiB8IG51bGwge1xuICAgIGlmICghdmlld0lkKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX3ZpZXdSZWdpc3RyeS5nZXQodmlld0lkKS5wb3J0YWw7XG4gIH1cbn1cbiJdfQ==
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy1wb3J0YWwucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL3dvcmtiZW5jaC9zcmMvbGliL3ZpZXcvdmlldy1wb3J0YWwucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUVILE9BQU8sRUFBQyxJQUFJLEVBQWdCLE1BQU0sZUFBZSxDQUFDOzs7QUFNbEQ7O0dBRUc7QUFFSCxNQUFNLE9BQU8sY0FBYztJQUV6QixZQUFvQixhQUFvQztRQUFwQyxrQkFBYSxHQUFiLGFBQWEsQ0FBdUI7SUFDeEQsQ0FBQztJQUVNLFNBQVMsQ0FBQyxNQUFxQjtRQUNwQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1gsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQy9DLENBQUM7OEdBVlUsY0FBYzs0R0FBZCxjQUFjOzsyRkFBZCxjQUFjO2tCQUQxQixJQUFJO21CQUFDLEVBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIzIFN3aXNzIEZlZGVyYWwgUmFpbHdheXNcbiAqXG4gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlXG4gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMFxuICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjBcbiAqL1xuXG5pbXBvcnQge1BpcGUsIFBpcGVUcmFuc2Zvcm19IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtXb3JrYmVuY2hWaWV3UmVnaXN0cnl9IGZyb20gJy4vd29ya2JlbmNoLXZpZXcucmVnaXN0cnknO1xuaW1wb3J0IHtXYkNvbXBvbmVudFBvcnRhbH0gZnJvbSAnLi4vcG9ydGFsL3diLWNvbXBvbmVudC1wb3J0YWwnO1xuaW1wb3J0IHR5cGUge1ZpZXdDb21wb25lbnR9IGZyb20gJy4uL3ZpZXcvdmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHtWaWV3SWR9IGZyb20gJy4vd29ya2JlbmNoLXZpZXcubW9kZWwnO1xuXG4vKipcbiAqIFJlc29sdmVzIHRoZSBwb3J0YWwgZm9yIHRoZSBnaXZlbiB2aWV3LCBvciB0aHJvd3MgYW4gZXJyb3IgaWYgdGhlIHZpZXcgaXMgbm90IHJlZ2lzdGVyZWQuXG4gKi9cbkBQaXBlKHtuYW1lOiAnd2JWaWV3UG9ydGFsJywgc3RhbmRhbG9uZTogdHJ1ZX0pXG5leHBvcnQgY2xhc3MgVmlld1BvcnRhbFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF92aWV3UmVnaXN0cnk6IFdvcmtiZW5jaFZpZXdSZWdpc3RyeSkge1xuICB9XG5cbiAgcHVibGljIHRyYW5zZm9ybSh2aWV3SWQ6IFZpZXdJZCB8IG51bGwpOiBXYkNvbXBvbmVudFBvcnRhbDxWaWV3Q29tcG9uZW50PiB8IG51bGwge1xuICAgIGlmICghdmlld0lkKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX3ZpZXdSZWdpc3RyeS5nZXQodmlld0lkKS5wb3J0YWw7XG4gIH1cbn1cbiJdfQ==