@scion/workbench 17.0.0-beta.6 → 17.0.0-beta.8

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 (314) 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/class-list.mjs +61 -0
  5. package/esm2022/lib/common/coerce-observable.pipe.mjs +3 -3
  6. package/esm2022/lib/common/filter-by-predicate.pipe.mjs +3 -3
  7. package/esm2022/lib/common/filter-by-text.pipe.mjs +3 -3
  8. package/esm2022/lib/common/grid-element-if-visible.pipe.mjs +6 -6
  9. package/esm2022/lib/common/instanceof.pipe.mjs +3 -3
  10. package/esm2022/lib/common/map-coerce.pipe.mjs +3 -3
  11. package/esm2022/lib/common/null-if-empty.pipe.mjs +3 -3
  12. package/esm2022/lib/common/objects.util.mjs +34 -0
  13. package/esm2022/lib/common/typeof.pipe.mjs +3 -3
  14. package/esm2022/lib/common/uuid.util.mjs +17 -0
  15. package/esm2022/lib/content-projection/content-as-overlay.component.mjs +3 -3
  16. package/esm2022/lib/content-projection/content-projection.directive.mjs +3 -3
  17. package/esm2022/lib/dialog/dialog-footer/dialog-action-filter.pipe.mjs +3 -3
  18. package/esm2022/lib/dialog/dialog-footer/dialog-footer.component.mjs +3 -3
  19. package/esm2022/lib/dialog/dialog-footer/workbench-dialog-action.directive.mjs +3 -3
  20. package/esm2022/lib/dialog/dialog-footer/workbench-dialog-footer.directive.mjs +3 -3
  21. package/esm2022/lib/dialog/dialog-header/dialog-header.component.mjs +3 -3
  22. package/esm2022/lib/dialog/dialog-header/workbench-dialog-header.directive.mjs +3 -3
  23. package/esm2022/lib/dialog/movable.directive.mjs +3 -3
  24. package/esm2022/lib/dialog/resizable.directive.mjs +3 -3
  25. package/esm2022/lib/dialog/workbench-dialog.component.mjs +3 -3
  26. package/esm2022/lib/dialog/workbench-dialog.mjs +1 -1
  27. package/esm2022/lib/dialog/workbench-dialog.options.mjs +1 -1
  28. package/esm2022/lib/dialog/workbench-dialog.registry.mjs +4 -4
  29. package/esm2022/lib/dialog/workbench-dialog.service.mjs +5 -5
  30. package/esm2022/lib/dialog//311/265workbench-dialog.mjs +8 -26
  31. package/esm2022/lib/dialog//311/265workbench-dialog.service.mjs +3 -3
  32. package/esm2022/lib/filter-field/filter-field.component.mjs +6 -6
  33. package/esm2022/lib/glass-pane/glass-pane.directive.mjs +3 -3
  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 +7 -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 +7 -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 +53 -16
  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-names.mjs +8 -9
  54. package/esm2022/lib/logging/logger.mjs +3 -3
  55. package/esm2022/lib/logging/logging-support.mjs +4 -4
  56. package/esm2022/lib/logging/logging.model.mjs +3 -3
  57. package/esm2022/lib/logging//311/265logger.mjs +3 -3
  58. package/esm2022/lib/message-box/message-box-footer/message-box-footer.component.mjs +18 -20
  59. package/esm2022/lib/message-box/message-box-header/message-box-header.component.mjs +3 -3
  60. package/esm2022/lib/message-box/workbench-message-box.component.mjs +3 -3
  61. package/esm2022/lib/message-box/workbench-message-box.options.mjs +1 -1
  62. package/esm2022/lib/message-box/workbench-message-box.service.mjs +5 -5
  63. package/esm2022/lib/message-box//311/265workbench-message-box.service.mjs +5 -5
  64. package/esm2022/lib/microfrontend-platform/common/microfrontend.util.mjs +55 -0
  65. package/esm2022/lib/microfrontend-platform/initialization/microfrontend-platform-initializer.service.mjs +34 -22
  66. package/esm2022/lib/microfrontend-platform/initialization/ng-zone-observable-decorator.mjs +3 -3
  67. package/esm2022/lib/microfrontend-platform/initialization/workbench-host-manifest-interceptor.service.mjs +3 -3
  68. package/esm2022/lib/microfrontend-platform/microfrontend-dialog/microfrontend-dialog-capability-validator.interceptor.mjs +53 -0
  69. package/esm2022/lib/microfrontend-platform/microfrontend-dialog/microfrontend-dialog-intent-handler.interceptor.mjs +85 -0
  70. package/esm2022/lib/microfrontend-platform/microfrontend-dialog/microfrontend-dialog.component.mjs +140 -0
  71. package/esm2022/lib/microfrontend-platform/microfrontend-host-dialog/microfrontend-host-dialog.component.mjs +122 -0
  72. package/esm2022/lib/microfrontend-platform/microfrontend-host-popup/microfrontend-host-popup.component.mjs +11 -10
  73. package/esm2022/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box-intent-handler.service.mjs +3 -3
  74. package/esm2022/lib/microfrontend-platform/microfrontend-notification/microfrontend-notification-intent-handler.service.mjs +3 -3
  75. package/esm2022/lib/microfrontend-platform/microfrontend-platform-config-loader.mjs +3 -3
  76. package/esm2022/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup-capability-validator.interceptor.mjs +30 -0
  77. package/esm2022/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup-intent-handler.interceptor.mjs +130 -0
  78. package/esm2022/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup.component.mjs +18 -30
  79. package/esm2022/lib/microfrontend-platform/microfrontend-splash/microfrontend-splash.component.mjs +3 -3
  80. package/esm2022/lib/microfrontend-platform/microfrontend-view/microfrontend-view-command-handler.service.mjs +9 -31
  81. package/esm2022/lib/microfrontend-platform/microfrontend-view/microfrontend-view.component.mjs +88 -144
  82. package/esm2022/lib/microfrontend-platform/microfrontend-view/microfrontend-workbench-view.model.mjs +23 -0
  83. package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-capability-id-assigner.interceptor.mjs +41 -0
  84. package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-capability-validator.interceptor.mjs +30 -0
  85. package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-intent-handler.interceptor.mjs +125 -0
  86. package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-routes.mjs +103 -0
  87. package/esm2022/lib/microfrontend-platform/workbench-microfrontend-support.mjs +45 -47
  88. package/esm2022/lib/migration/workbench-migration.mjs +11 -0
  89. package/esm2022/lib/migration/workbench-migrator.mjs +38 -0
  90. package/esm2022/lib/notification/notification-css-classes.pipe.mjs +3 -3
  91. package/esm2022/lib/notification/notification-list.component.mjs +3 -3
  92. package/esm2022/lib/notification/notification.component.mjs +3 -3
  93. package/esm2022/lib/notification/notification.config.mjs +1 -1
  94. package/esm2022/lib/notification/notification.mjs +1 -1
  95. package/esm2022/lib/notification/notification.service.mjs +9 -9
  96. package/esm2022/lib/notification/text-notification.component.mjs +3 -3
  97. package/esm2022/lib/page-not-found/format-url.pipe.mjs +26 -0
  98. package/esm2022/lib/page-not-found/page-not-found.component.mjs +28 -0
  99. package/esm2022/lib/part/part-action-bar/part-action-bar.component.mjs +3 -3
  100. package/esm2022/lib/part/part-action-bar/part-action-filter.pipe.mjs +3 -3
  101. package/esm2022/lib/part/part-action-bar/part-action.directive.mjs +4 -4
  102. package/esm2022/lib/part/part-bar/part-bar.component.mjs +11 -8
  103. package/esm2022/lib/part/part-portal.pipe.mjs +3 -3
  104. package/esm2022/lib/part/part.component.mjs +7 -4
  105. package/esm2022/lib/part/view-context-menu/accelerator-format.pipe.mjs +3 -3
  106. package/esm2022/lib/part/view-context-menu/text.component.mjs +3 -3
  107. package/esm2022/lib/part/view-context-menu/view-menu.component.mjs +3 -3
  108. package/esm2022/lib/part/view-context-menu/view-menu.directive.mjs +4 -4
  109. package/esm2022/lib/part/view-context-menu/view-menu.service.mjs +19 -19
  110. package/esm2022/lib/part/view-list/view-list.component.mjs +3 -3
  111. package/esm2022/lib/part/view-list-button/view-list-button.component.mjs +3 -3
  112. package/esm2022/lib/part/view-list-item/view-list-item.component.mjs +9 -9
  113. package/esm2022/lib/part/view-tab/view-tab.component.mjs +16 -13
  114. package/esm2022/lib/part/view-tab-content/view-tab-content.component.mjs +5 -5
  115. package/esm2022/lib/part/view-tab-drag-image/view-tab-drag-image.component.mjs +9 -9
  116. package/esm2022/lib/part/workbench-part-action.registry.mjs +3 -3
  117. package/esm2022/lib/part/workbench-part.model.mjs +1 -1
  118. package/esm2022/lib/part/workbench-part.registry.mjs +3 -3
  119. package/esm2022/lib/part//311/265workbench-part.model.mjs +3 -3
  120. package/esm2022/lib/perspective/migration/model/workbench-perspective-migration-v1.model.mjs +11 -0
  121. package/esm2022/lib/perspective/migration/model/workbench-perspective-migration-v2.model.mjs +11 -0
  122. package/esm2022/lib/perspective/migration/workbench-perspective-migration-v2.service.mjs +57 -0
  123. package/esm2022/lib/perspective/workbench-grid-merger.service.mjs +19 -51
  124. package/esm2022/lib/perspective/workbench-perspective-storage.service.mjs +23 -18
  125. package/esm2022/lib/perspective/workbench-perspective-view-conflict-resolver.service.mjs +27 -42
  126. package/esm2022/lib/perspective/workbench-perspective.model.mjs +1 -1
  127. package/esm2022/lib/perspective/workbench-perspective.registry.mjs +3 -3
  128. package/esm2022/lib/perspective/workbench-perspective.service.mjs +15 -10
  129. package/esm2022/lib/perspective/workench-perspective-serializer.service.mjs +62 -0
  130. package/esm2022/lib/perspective//311/265workbench-perspective.model.mjs +98 -78
  131. package/esm2022/lib/popup/popup.component.mjs +3 -3
  132. package/esm2022/lib/popup/popup.config.mjs +1 -1
  133. package/esm2022/lib/popup/popup.service.mjs +3 -3
  134. package/esm2022/lib/portal/workbench-portal-outlet.directive.mjs +6 -6
  135. package/esm2022/lib/public_api.mjs +3 -2
  136. package/esm2022/lib/registry/workbench-object-registry.mjs +3 -3
  137. package/esm2022/lib/routing/empty-outlet/empty-outlet.component.mjs +31 -0
  138. package/esm2022/lib/routing/public_api.mjs +1 -1
  139. package/esm2022/lib/routing/router.util.mjs +96 -71
  140. package/esm2022/lib/routing/routing.model.mjs +11 -0
  141. package/esm2022/lib/routing/url-segment-matcher.mjs +46 -0
  142. package/esm2022/lib/routing/workbench-auxiliary-routes-registrator.service.mjs +58 -50
  143. package/esm2022/lib/routing/workbench-dialog-differ.mjs +51 -0
  144. package/esm2022/lib/routing/workbench-layout-differ.mjs +14 -17
  145. package/esm2022/lib/routing/workbench-navigational-states.mjs +11 -25
  146. package/esm2022/lib/routing/workbench-popup-differ.mjs +6 -6
  147. package/esm2022/lib/routing/workbench-route-data.mjs +15 -14
  148. package/esm2022/lib/routing/workbench-router-link.directive.mjs +24 -33
  149. package/esm2022/lib/routing/workbench-router.service.mjs +13 -378
  150. package/esm2022/lib/routing/workbench-url-observer.service.mjs +65 -36
  151. package/esm2022/lib/routing//311/265location.mjs +3 -3
  152. package/esm2022/lib/routing//311/265workbench-router.service.mjs +317 -0
  153. package/esm2022/lib/startup/splash/splash.component.mjs +3 -3
  154. package/esm2022/lib/startup/workbench-launcher.service.mjs +11 -11
  155. package/esm2022/lib/storage/workbench-storage.mjs +3 -3
  156. package/esm2022/lib/testing/public_api.mjs +2 -1
  157. package/esm2022/lib/testing/workbench-testing.module.mjs +13 -39
  158. package/esm2022/lib/testing/workbench.provider.mjs +60 -0
  159. package/esm2022/lib/theme/workbench-theme-switcher.service.mjs +3 -3
  160. package/esm2022/lib/view/public_api.mjs +2 -1
  161. package/esm2022/lib/view/view-move-handler.service.mjs +42 -62
  162. package/esm2022/lib/view/view-portal.pipe.mjs +4 -4
  163. package/esm2022/lib/view/view.component.mjs +8 -38
  164. package/esm2022/lib/view/workbench-view-route-guards.mjs +47 -0
  165. package/esm2022/lib/view/workbench-view.model.mjs +6 -4
  166. package/esm2022/lib/view/workbench-view.registry.mjs +4 -4
  167. package/esm2022/lib/view//311/265workbench-view.model.mjs +135 -28
  168. package/esm2022/lib/view-dnd/grid-drop-targets.util.mjs +33 -32
  169. package/esm2022/lib/view-dnd/requires-drop-zone.pipe.mjs +7 -7
  170. package/esm2022/lib/view-dnd/view-drag.service.mjs +6 -6
  171. package/esm2022/lib/view-dnd/view-drop-placeholder-renderer.service.mjs +3 -3
  172. package/esm2022/lib/view-dnd/view-drop-zone.directive.mjs +4 -4
  173. package/esm2022/lib/view-dnd/view-tab-drag-image-renderer.service.mjs +11 -9
  174. package/esm2022/lib/workbench-config.mjs +15 -0
  175. package/esm2022/lib/workbench-id.mjs +3 -3
  176. package/esm2022/lib/workbench.component.mjs +14 -10
  177. package/esm2022/lib/workbench.constants.mjs +8 -10
  178. package/esm2022/lib/workbench.model.mjs +1 -1
  179. package/esm2022/lib/workbench.module.mjs +15 -86
  180. package/esm2022/lib/workbench.provider.mjs +117 -0
  181. package/esm2022/lib/workbench.service.mjs +5 -5
  182. package/esm2022/lib//311/265workbench.service.mjs +15 -21
  183. package/fesm2022/scion-workbench.mjs +5527 -4289
  184. package/fesm2022/scion-workbench.mjs.map +1 -1
  185. package/lib/common/class-list.d.ts +51 -0
  186. package/lib/common/objects.util.d.ts +17 -0
  187. package/lib/common/uuid.util.d.ts +8 -0
  188. package/lib/dialog/workbench-dialog.d.ts +3 -7
  189. package/lib/dialog/workbench-dialog.options.d.ts +5 -4
  190. package/lib/dialog/workbench-dialog.registry.d.ts +4 -3
  191. package/lib/dialog/workbench-dialog.service.d.ts +1 -1
  192. package/lib/dialog//311/265workbench-dialog.d.ts +4 -6
  193. package/lib/filter-field/filter-field.component.d.ts +1 -1
  194. package/lib/layout/grid-element/grid-element.component.d.ts +2 -2
  195. package/lib/layout/migration/model/workbench-layout-migration-v1.model.d.ts +16 -0
  196. package/lib/layout/migration/model/workbench-layout-migration-v2.model.d.ts +22 -0
  197. package/lib/layout/migration/model/workbench-layout-migration-v3.model.d.ts +30 -0
  198. package/lib/layout/migration/model/workbench-layout-migration-v4.model.d.ts +31 -0
  199. package/lib/layout/migration/workbench-layout-migration-v2.service.d.ts +13 -0
  200. package/lib/layout/migration/workbench-layout-migration-v3.service.d.ts +16 -0
  201. package/lib/layout/migration/workbench-layout-migration-v4.service.d.ts +12 -0
  202. package/lib/layout/workbench-layout.d.ts +61 -7
  203. package/lib/layout/workbench-layout.factory.d.ts +1 -1
  204. package/lib/layout/workbench-layout.model.d.ts +19 -9
  205. package/lib/layout/workbench-layouts.util.d.ts +22 -6
  206. package/lib/layout/workench-layout-serializer.service.d.ts +28 -7
  207. package/lib/layout//311/265workbench-layout.d.ts +172 -98
  208. package/lib/layout//311/265workbench-layout.factory.d.ts +4 -0
  209. package/lib/logging/logger-names.d.ts +7 -7
  210. package/lib/logging/logging-support.d.ts +2 -2
  211. package/lib/message-box/workbench-message-box.options.d.ts +4 -3
  212. package/lib/message-box/workbench-message-box.service.d.ts +1 -1
  213. package/lib/microfrontend-platform/common/microfrontend.util.d.ts +22 -0
  214. package/lib/microfrontend-platform/initialization/microfrontend-platform-initializer.service.d.ts +15 -9
  215. package/lib/microfrontend-platform/microfrontend-dialog/microfrontend-dialog-capability-validator.interceptor.d.ts +11 -0
  216. package/lib/microfrontend-platform/microfrontend-dialog/microfrontend-dialog-intent-handler.interceptor.d.ts +28 -0
  217. package/lib/microfrontend-platform/microfrontend-dialog/microfrontend-dialog.component.d.ts +52 -0
  218. package/lib/microfrontend-platform/microfrontend-host-dialog/microfrontend-host-dialog.component.d.ts +37 -0
  219. package/lib/microfrontend-platform/microfrontend-host-popup/microfrontend-host-popup.component.d.ts +2 -1
  220. package/lib/microfrontend-platform/microfrontend-popup/{microfrontend-popup-capability-interceptor.service.d.ts → microfrontend-popup-capability-validator.interceptor.d.ts} +3 -3
  221. package/lib/microfrontend-platform/microfrontend-popup/{microfrontend-popup-intent-interceptor.service.d.ts → microfrontend-popup-intent-handler.interceptor.d.ts} +9 -6
  222. package/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup.component.d.ts +7 -10
  223. package/lib/microfrontend-platform/microfrontend-view/microfrontend-view-command-handler.service.d.ts +2 -9
  224. package/lib/microfrontend-platform/microfrontend-view/microfrontend-view.component.d.ts +12 -23
  225. package/lib/microfrontend-platform/microfrontend-view/microfrontend-workbench-view.model.d.ts +14 -0
  226. package/lib/microfrontend-platform/routing/microfrontend-view-capability-id-assigner.interceptor.d.ts +10 -0
  227. package/lib/microfrontend-platform/routing/{microfrontend-view-capability-interceptor.service.d.ts → microfrontend-view-capability-validator.interceptor.d.ts} +3 -3
  228. package/lib/microfrontend-platform/routing/{microfrontend-view-intent-interceptor.service.d.ts → microfrontend-view-intent-handler.interceptor.d.ts} +6 -5
  229. package/lib/microfrontend-platform/routing/microfrontend-view-routes.d.ts +49 -0
  230. package/lib/microfrontend-platform/workbench-microfrontend-support.d.ts +3 -2
  231. package/lib/migration/workbench-migration.d.ts +9 -0
  232. package/lib/migration/workbench-migrator.d.ts +18 -0
  233. package/lib/notification/notification.config.d.ts +1 -1
  234. package/lib/notification/notification.d.ts +1 -3
  235. package/lib/page-not-found/format-url.pipe.d.ts +11 -0
  236. package/lib/page-not-found/page-not-found.component.d.ts +8 -0
  237. package/lib/part/part-action-bar/part-action.directive.d.ts +1 -1
  238. package/lib/part/part-bar/part-bar.component.d.ts +4 -3
  239. package/lib/part/view-context-menu/view-menu.directive.d.ts +1 -1
  240. package/lib/part/view-context-menu/view-menu.service.d.ts +5 -4
  241. package/lib/part/view-list-item/view-list-item.component.d.ts +5 -4
  242. package/lib/part/view-tab/view-tab.component.d.ts +6 -5
  243. package/lib/part/view-tab-drag-image/view-tab-drag-image.component.d.ts +3 -3
  244. package/lib/part/workbench-part.model.d.ts +5 -4
  245. package/lib/part//311/265workbench-part.model.d.ts +5 -4
  246. package/lib/perspective/migration/model/workbench-perspective-migration-v1.model.d.ts +8 -0
  247. package/lib/perspective/migration/model/workbench-perspective-migration-v2.model.d.ts +10 -0
  248. package/lib/perspective/migration/workbench-perspective-migration-v2.service.d.ts +13 -0
  249. package/lib/perspective/workbench-grid-merger.service.d.ts +9 -16
  250. package/lib/perspective/workbench-perspective-storage.service.d.ts +10 -28
  251. package/lib/perspective/workbench-perspective-view-conflict-resolver.service.d.ts +8 -25
  252. package/lib/perspective/workbench-perspective.model.d.ts +123 -14
  253. package/lib/perspective/workbench-perspective.service.d.ts +10 -3
  254. package/lib/perspective/workench-perspective-serializer.service.d.ts +26 -0
  255. package/lib/perspective//311/265workbench-perspective.model.d.ts +16 -14
  256. package/lib/popup/popup.config.d.ts +4 -3
  257. package/lib/portal/workbench-portal-outlet.directive.d.ts +2 -2
  258. package/lib/public_api.d.ts +4 -3
  259. package/lib/registry/workbench-object-registry.d.ts +2 -2
  260. package/lib/routing/empty-outlet/empty-outlet.component.d.ts +15 -0
  261. package/lib/routing/public_api.d.ts +2 -1
  262. package/lib/routing/router.util.d.ts +45 -31
  263. package/lib/routing/routing.model.d.ts +129 -0
  264. package/lib/routing/url-segment-matcher.d.ts +20 -0
  265. package/lib/routing/workbench-auxiliary-routes-registrator.service.d.ts +25 -16
  266. package/lib/routing/workbench-dialog-differ.d.ts +25 -0
  267. package/lib/routing/workbench-layout-differ.d.ts +4 -7
  268. package/lib/routing/workbench-navigational-states.d.ts +11 -21
  269. package/lib/routing/workbench-route-data.d.ts +14 -12
  270. package/lib/routing/workbench-router-link.directive.d.ts +22 -7
  271. package/lib/routing/workbench-router.service.d.ts +42 -157
  272. package/lib/routing/workbench-url-observer.service.d.ts +18 -6
  273. package/lib/routing//311/265workbench-router.service.d.ts +75 -0
  274. package/lib/startup/workbench-launcher.service.d.ts +4 -4
  275. package/lib/testing/public_api.d.ts +1 -0
  276. package/lib/testing/workbench-testing.module.d.ts +7 -6
  277. package/lib/testing/workbench.provider.d.ts +29 -0
  278. package/lib/view/public_api.d.ts +2 -1
  279. package/lib/view/view-move-handler.service.d.ts +2 -4
  280. package/lib/view/view-portal.pipe.d.ts +2 -1
  281. package/lib/view/view.component.d.ts +1 -11
  282. package/lib/view/workbench-view-route-guards.d.ts +36 -0
  283. package/lib/view/workbench-view.model.d.ts +46 -13
  284. package/lib/view/workbench-view.registry.d.ts +4 -3
  285. package/lib/view//311/265workbench-view.model.d.ts +79 -14
  286. package/lib/view-dnd/grid-drop-targets.util.d.ts +15 -17
  287. package/lib/view-dnd/view-drag.service.d.ts +12 -4
  288. package/lib/view-dnd/view-drop-zone.directive.d.ts +1 -1
  289. package/lib/{workbench-module-config.d.ts → workbench-config.d.ts} +29 -71
  290. package/lib/workbench.component.d.ts +2 -2
  291. package/lib/workbench.constants.d.ts +6 -8
  292. package/lib/workbench.model.d.ts +20 -8
  293. package/lib/workbench.module.d.ts +12 -7
  294. package/lib/workbench.provider.d.ts +38 -0
  295. package/lib/workbench.service.d.ts +32 -8
  296. package/lib//311/265workbench.service.d.ts +9 -3
  297. package/package.json +8 -8
  298. package/esm2022/lib/layout/migration/workbench-layout-migrator.service.mjs +0 -38
  299. package/esm2022/lib/layout/migration/workbench-layout-v1-migrator.service.mjs +0 -59
  300. package/esm2022/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup-capability-interceptor.service.mjs +0 -30
  301. package/esm2022/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup-intent-interceptor.service.mjs +0 -130
  302. package/esm2022/lib/microfrontend-platform/routing/microfrontend-navigational-states.mjs +0 -22
  303. package/esm2022/lib/microfrontend-platform/routing/microfrontend-routes.mjs +0 -71
  304. package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-capability-interceptor.service.mjs +0 -54
  305. package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-intent-interceptor.service.mjs +0 -123
  306. package/esm2022/lib/routing/navigation-state.resolver.mjs +0 -54
  307. package/esm2022/lib/view/workbench-view-pre-destroy.guard.mjs +0 -36
  308. package/esm2022/lib/workbench-module-config.mjs +0 -15
  309. package/lib/layout/migration/workbench-layout-migrator.service.d.ts +0 -15
  310. package/lib/layout/migration/workbench-layout-v1-migrator.service.d.ts +0 -12
  311. package/lib/microfrontend-platform/routing/microfrontend-navigational-states.d.ts +0 -11
  312. package/lib/microfrontend-platform/routing/microfrontend-routes.d.ts +0 -38
  313. package/lib/routing/navigation-state.resolver.d.ts +0 -12
  314. package/lib/view/workbench-view-pre-destroy.guard.d.ts +0 -5
@@ -1,71 +0,0 @@
1
- /*
2
- * Copyright (c) 2018-2022 Swiss Federal Railways
3
- *
4
- * This program and the accompanying materials are made
5
- * available under the terms of the Eclipse Public License 2.0
6
- * which is available at https://www.eclipse.org/legal/epl-2.0/
7
- *
8
- * SPDX-License-Identifier: EPL-2.0
9
- */
10
- import { Dictionaries } from '@scion/toolkit/util';
11
- import { WorkbenchRouteData } from '../../routing/workbench-route-data';
12
- import { MicrofrontendNavigationalStates } from './microfrontend-navigational-states';
13
- export var MicrofrontendViewRoutes;
14
- (function (MicrofrontendViewRoutes) {
15
- /**
16
- * Route prefix to identify routes of microfrontends.
17
- */
18
- MicrofrontendViewRoutes.ROUTE_PREFIX = '~';
19
- function isMicrofrontendRoute(route) {
20
- const segments = Array.isArray(route) ? route : route.url;
21
- return segments.length === 2 && segments[0].path === MicrofrontendViewRoutes.ROUTE_PREFIX;
22
- }
23
- MicrofrontendViewRoutes.isMicrofrontendRoute = isMicrofrontendRoute;
24
- /**
25
- * Parses the params of a given microfrontend route. Throws if not a valid microfrontend route.
26
- *
27
- * Note that transient parameters are not part of the URL segments and are only returned if passing a {@link ActivatedRouteSnapshot} object.
28
- */
29
- function parseParams(route) {
30
- if (!isMicrofrontendRoute(route)) {
31
- throw Error(`[NullMicrofrontendRouteError] Given URL segments do not match a microfrontend route. [segments=${route.toString()}]`);
32
- }
33
- const segments = Array.isArray(route) ? route : route.url;
34
- return {
35
- viewCapabilityId: segments[1].path,
36
- qualifier: segments[0].parameters,
37
- urlParams: segments[1].parameters,
38
- transientParams: Array.isArray(route) ? {} : route.data[WorkbenchRouteData.state]?.[MicrofrontendNavigationalStates.transientParams] || {},
39
- };
40
- }
41
- MicrofrontendViewRoutes.parseParams = parseParams;
42
- /**
43
- * Splits given params into two groups of URL and transient params.
44
- *
45
- * URL params are passed with the URL, transient params via transient state. Transient params do not survive a page reload.
46
- */
47
- function splitParams(params, viewCapability) {
48
- const transientParamNames = new Set(viewCapability.params?.filter(param => param.transient).map(param => param.name));
49
- return Object.entries(Dictionaries.coerce(params)).reduce((groups, [name, value]) => {
50
- if (transientParamNames.has(name)) {
51
- groups.transientParams[name] = value;
52
- }
53
- else {
54
- groups.urlParams[name] = value;
55
- }
56
- return groups;
57
- }, { urlParams: {}, transientParams: {} });
58
- }
59
- MicrofrontendViewRoutes.splitParams = splitParams;
60
- /**
61
- * Builds the command array to be passed to the workbench router for navigating to a microfrontend view.
62
- *
63
- * Format: ['~', {qualifier}, '<viewCapabilityId>', {params}]
64
- */
65
- function buildRouterNavigateCommand(viewCapabilityId, qualifier, params) {
66
- const paramsCommand = Object.keys(params).length > 0 ? [params] : [];
67
- return [MicrofrontendViewRoutes.ROUTE_PREFIX, qualifier, viewCapabilityId, ...paramsCommand];
68
- }
69
- MicrofrontendViewRoutes.buildRouterNavigateCommand = buildRouterNavigateCommand;
70
- })(MicrofrontendViewRoutes || (MicrofrontendViewRoutes = {}));
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWljcm9mcm9udGVuZC1yb3V0ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi93b3JrYmVuY2gvc3JjL2xpYi9taWNyb2Zyb250ZW5kLXBsYXRmb3JtL3JvdXRpbmcvbWljcm9mcm9udGVuZC1yb3V0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0dBUUc7QUFLSCxPQUFPLEVBQUMsWUFBWSxFQUFhLE1BQU0scUJBQXFCLENBQUM7QUFDN0QsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDdEUsT0FBTyxFQUFDLCtCQUErQixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFFcEYsTUFBTSxLQUFXLHVCQUF1QixDQTJEdkM7QUEzREQsV0FBaUIsdUJBQXVCO0lBRXRDOztPQUVHO0lBQ1Usb0NBQVksR0FBRyxHQUFHLENBQUM7SUFFaEMsU0FBZ0Isb0JBQW9CLENBQUMsS0FBNEM7UUFDL0UsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDO1FBQzFELE9BQU8sUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyx3QkFBQSxZQUFZLENBQUM7SUFDcEUsQ0FBQztJQUhlLDRDQUFvQix1QkFHbkMsQ0FBQTtJQUVEOzs7O09BSUc7SUFDSCxTQUFnQixXQUFXLENBQUMsS0FBNEM7UUFDdEUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2hDLE1BQU0sS0FBSyxDQUFDLGtHQUFrRyxLQUFLLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQ3BJO1FBRUQsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDO1FBQzFELE9BQU87WUFDTCxnQkFBZ0IsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtZQUNsQyxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVU7WUFDakMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVO1lBQ2pDLGVBQWUsRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQywrQkFBK0IsQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFO1NBQzNJLENBQUM7SUFDSixDQUFDO0lBWmUsbUNBQVcsY0FZMUIsQ0FBQTtJQUVEOzs7O09BSUc7SUFDSCxTQUFnQixXQUFXLENBQUMsTUFBaUQsRUFBRSxjQUF1QztRQUNwSCxNQUFNLG1CQUFtQixHQUFHLElBQUksR0FBRyxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBRXRILE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUU7WUFDbEYsSUFBSSxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ2pDLE1BQU0sQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDO2FBQ3RDO2lCQUNJO2dCQUNILE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDO2FBQ2hDO1lBQ0QsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQyxFQUFFLEVBQUMsU0FBUyxFQUFFLEVBQWdCLEVBQUUsZUFBZSxFQUFFLEVBQWdCLEVBQUMsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFaZSxtQ0FBVyxjQVkxQixDQUFBO0lBRUQ7Ozs7T0FJRztJQUNILFNBQWdCLDBCQUEwQixDQUFDLGdCQUF3QixFQUFFLFNBQW9CLEVBQUUsTUFBYztRQUN2RyxNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNyRSxPQUFPLENBQUMsd0JBQUEsWUFBWSxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxHQUFHLGFBQWEsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFIZSxrREFBMEIsNkJBR3pDLENBQUE7QUFDSCxDQUFDLEVBM0RnQix1QkFBdUIsS0FBdkIsdUJBQXVCLFFBMkR2QyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyMiBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wXG4gKi9cblxuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBQYXJhbXMsIFVybFNlZ21lbnR9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1dvcmtiZW5jaFZpZXdDYXBhYmlsaXR5fSBmcm9tICdAc2Npb24vd29ya2JlbmNoLWNsaWVudCc7XG5pbXBvcnQge1F1YWxpZmllcn0gZnJvbSAnQHNjaW9uL21pY3JvZnJvbnRlbmQtcGxhdGZvcm0nO1xuaW1wb3J0IHtEaWN0aW9uYXJpZXMsIERpY3Rpb25hcnl9IGZyb20gJ0BzY2lvbi90b29sa2l0L3V0aWwnO1xuaW1wb3J0IHtXb3JrYmVuY2hSb3V0ZURhdGF9IGZyb20gJy4uLy4uL3JvdXRpbmcvd29ya2JlbmNoLXJvdXRlLWRhdGEnO1xuaW1wb3J0IHtNaWNyb2Zyb250ZW5kTmF2aWdhdGlvbmFsU3RhdGVzfSBmcm9tICcuL21pY3JvZnJvbnRlbmQtbmF2aWdhdGlvbmFsLXN0YXRlcyc7XG5cbmV4cG9ydCBuYW1lc3BhY2UgTWljcm9mcm9udGVuZFZpZXdSb3V0ZXMge1xuXG4gIC8qKlxuICAgKiBSb3V0ZSBwcmVmaXggdG8gaWRlbnRpZnkgcm91dGVzIG9mIG1pY3JvZnJvbnRlbmRzLlxuICAgKi9cbiAgZXhwb3J0IGNvbnN0IFJPVVRFX1BSRUZJWCA9ICd+JztcblxuICBleHBvcnQgZnVuY3Rpb24gaXNNaWNyb2Zyb250ZW5kUm91dGUocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QgfCBVcmxTZWdtZW50W10pOiBib29sZWFuIHtcbiAgICBjb25zdCBzZWdtZW50cyA9IEFycmF5LmlzQXJyYXkocm91dGUpID8gcm91dGUgOiByb3V0ZS51cmw7XG4gICAgcmV0dXJuIHNlZ21lbnRzLmxlbmd0aCA9PT0gMiAmJiBzZWdtZW50c1swXS5wYXRoID09PSBST1VURV9QUkVGSVg7XG4gIH1cblxuICAvKipcbiAgICogUGFyc2VzIHRoZSBwYXJhbXMgb2YgYSBnaXZlbiBtaWNyb2Zyb250ZW5kIHJvdXRlLiBUaHJvd3MgaWYgbm90IGEgdmFsaWQgbWljcm9mcm9udGVuZCByb3V0ZS5cbiAgICpcbiAgICogTm90ZSB0aGF0IHRyYW5zaWVudCBwYXJhbWV0ZXJzIGFyZSBub3QgcGFydCBvZiB0aGUgVVJMIHNlZ21lbnRzIGFuZCBhcmUgb25seSByZXR1cm5lZCBpZiBwYXNzaW5nIGEge0BsaW5rIEFjdGl2YXRlZFJvdXRlU25hcHNob3R9IG9iamVjdC5cbiAgICovXG4gIGV4cG9ydCBmdW5jdGlvbiBwYXJzZVBhcmFtcyhyb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCB8IFVybFNlZ21lbnRbXSk6IE1pY3JvZnJvbnRlbmRSb3V0ZVBhcmFtcyB7XG4gICAgaWYgKCFpc01pY3JvZnJvbnRlbmRSb3V0ZShyb3V0ZSkpIHtcbiAgICAgIHRocm93IEVycm9yKGBbTnVsbE1pY3JvZnJvbnRlbmRSb3V0ZUVycm9yXSBHaXZlbiBVUkwgc2VnbWVudHMgZG8gbm90IG1hdGNoIGEgbWljcm9mcm9udGVuZCByb3V0ZS4gW3NlZ21lbnRzPSR7cm91dGUudG9TdHJpbmcoKX1dYCk7XG4gICAgfVxuXG4gICAgY29uc3Qgc2VnbWVudHMgPSBBcnJheS5pc0FycmF5KHJvdXRlKSA/IHJvdXRlIDogcm91dGUudXJsO1xuICAgIHJldHVybiB7XG4gICAgICB2aWV3Q2FwYWJpbGl0eUlkOiBzZWdtZW50c1sxXS5wYXRoLFxuICAgICAgcXVhbGlmaWVyOiBzZWdtZW50c1swXS5wYXJhbWV0ZXJzLFxuICAgICAgdXJsUGFyYW1zOiBzZWdtZW50c1sxXS5wYXJhbWV0ZXJzLFxuICAgICAgdHJhbnNpZW50UGFyYW1zOiBBcnJheS5pc0FycmF5KHJvdXRlKSA/IHt9IDogcm91dGUuZGF0YVtXb3JrYmVuY2hSb3V0ZURhdGEuc3RhdGVdPy5bTWljcm9mcm9udGVuZE5hdmlnYXRpb25hbFN0YXRlcy50cmFuc2llbnRQYXJhbXNdIHx8IHt9LFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogU3BsaXRzIGdpdmVuIHBhcmFtcyBpbnRvIHR3byBncm91cHMgb2YgVVJMIGFuZCB0cmFuc2llbnQgcGFyYW1zLlxuICAgKlxuICAgKiBVUkwgcGFyYW1zIGFyZSBwYXNzZWQgd2l0aCB0aGUgVVJMLCB0cmFuc2llbnQgcGFyYW1zIHZpYSB0cmFuc2llbnQgc3RhdGUuIFRyYW5zaWVudCBwYXJhbXMgZG8gbm90IHN1cnZpdmUgYSBwYWdlIHJlbG9hZC5cbiAgICovXG4gIGV4cG9ydCBmdW5jdGlvbiBzcGxpdFBhcmFtcyhwYXJhbXM6IE1hcDxzdHJpbmcsIGFueT4gfCBEaWN0aW9uYXJ5IHwgdW5kZWZpbmVkLCB2aWV3Q2FwYWJpbGl0eTogV29ya2JlbmNoVmlld0NhcGFiaWxpdHkpOiB7dXJsUGFyYW1zOiBEaWN0aW9uYXJ5OyB0cmFuc2llbnRQYXJhbXM6IERpY3Rpb25hcnl9IHtcbiAgICBjb25zdCB0cmFuc2llbnRQYXJhbU5hbWVzID0gbmV3IFNldCh2aWV3Q2FwYWJpbGl0eS5wYXJhbXM/LmZpbHRlcihwYXJhbSA9PiBwYXJhbS50cmFuc2llbnQpLm1hcChwYXJhbSA9PiBwYXJhbS5uYW1lKSk7XG5cbiAgICByZXR1cm4gT2JqZWN0LmVudHJpZXMoRGljdGlvbmFyaWVzLmNvZXJjZShwYXJhbXMpKS5yZWR1Y2UoKGdyb3VwcywgW25hbWUsIHZhbHVlXSkgPT4ge1xuICAgICAgaWYgKHRyYW5zaWVudFBhcmFtTmFtZXMuaGFzKG5hbWUpKSB7XG4gICAgICAgIGdyb3Vwcy50cmFuc2llbnRQYXJhbXNbbmFtZV0gPSB2YWx1ZTtcbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICBncm91cHMudXJsUGFyYW1zW25hbWVdID0gdmFsdWU7XG4gICAgICB9XG4gICAgICByZXR1cm4gZ3JvdXBzO1xuICAgIH0sIHt1cmxQYXJhbXM6IHt9IGFzIERpY3Rpb25hcnksIHRyYW5zaWVudFBhcmFtczoge30gYXMgRGljdGlvbmFyeX0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkcyB0aGUgY29tbWFuZCBhcnJheSB0byBiZSBwYXNzZWQgdG8gdGhlIHdvcmtiZW5jaCByb3V0ZXIgZm9yIG5hdmlnYXRpbmcgdG8gYSBtaWNyb2Zyb250ZW5kIHZpZXcuXG4gICAqXG4gICAqIEZvcm1hdDogWyd+Jywge3F1YWxpZmllcn0sICc8dmlld0NhcGFiaWxpdHlJZD4nLCB7cGFyYW1zfV1cbiAgICovXG4gIGV4cG9ydCBmdW5jdGlvbiBidWlsZFJvdXRlck5hdmlnYXRlQ29tbWFuZCh2aWV3Q2FwYWJpbGl0eUlkOiBzdHJpbmcsIHF1YWxpZmllcjogUXVhbGlmaWVyLCBwYXJhbXM6IFBhcmFtcyk6IGFueVtdIHtcbiAgICBjb25zdCBwYXJhbXNDb21tYW5kID0gT2JqZWN0LmtleXMocGFyYW1zKS5sZW5ndGggPiAwID8gW3BhcmFtc10gOiBbXTtcbiAgICByZXR1cm4gW1JPVVRFX1BSRUZJWCwgcXVhbGlmaWVyLCB2aWV3Q2FwYWJpbGl0eUlkLCAuLi5wYXJhbXNDb21tYW5kXTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1pY3JvZnJvbnRlbmRSb3V0ZVBhcmFtcyB7XG4gIHZpZXdDYXBhYmlsaXR5SWQ6IHN0cmluZztcbiAgcXVhbGlmaWVyOiBQYXJhbXM7XG4gIHVybFBhcmFtczogUGFyYW1zO1xuICB0cmFuc2llbnRQYXJhbXM6IFBhcmFtcztcbn1cbiJdfQ==
@@ -1,54 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { WorkbenchCapabilities } from '@scion/workbench-client';
3
- import { Crypto } from '@scion/toolkit/crypto';
4
- import * as i0 from "@angular/core";
5
- /**
6
- * Asserts view capabilities to have required properties and assigns each view capability a stable identifer required for persistent navigation.
7
- */
8
- export class MicrofrontendViewCapabilityInterceptor {
9
- async intercept(capability) {
10
- if (capability.type !== WorkbenchCapabilities.View) {
11
- return capability;
12
- }
13
- const viewCapability = capability;
14
- // Assert the view capability to have a qualifier set.
15
- if (!viewCapability.qualifier || !Object.keys(viewCapability.qualifier).length) {
16
- throw Error(`[NullQualifierError] View capability requires a qualifier [capability=${JSON.stringify(viewCapability)}]`);
17
- }
18
- // Assert the view capability to have a path set.
19
- const path = viewCapability.properties?.path;
20
- if (path === undefined || path === null) {
21
- throw Error(`[NullPathError] View capability requires a path to the microfrontend in its properties [capability=${JSON.stringify(viewCapability)}]`);
22
- }
23
- // Set a stable identifier required for persistent navigation.
24
- return {
25
- ...viewCapability,
26
- metadata: {
27
- ...viewCapability.metadata,
28
- id: await createStableViewIdentifier(viewCapability),
29
- },
30
- };
31
- }
32
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: MicrofrontendViewCapabilityInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
33
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: MicrofrontendViewCapabilityInterceptor }); }
34
- }
35
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: MicrofrontendViewCapabilityInterceptor, decorators: [{
36
- type: Injectable
37
- }] });
38
- /**
39
- * Creates a stable identifier for given view capability.
40
- */
41
- async function createStableViewIdentifier(capability) {
42
- const qualifier = capability.qualifier;
43
- const vendor = capability.metadata.appSymbolicName;
44
- // Create identifier consisting of vendor and sorted qualifier entries.
45
- const identifier = Object.keys(qualifier)
46
- .sort()
47
- .reduce((acc, qualifierKey) => acc.concat(qualifierKey).concat(`${qualifier[qualifierKey]}`), [vendor])
48
- .join(';');
49
- // Hash the identifier.
50
- const identifierHash = await Crypto.digest(identifier);
51
- // Use the first 7 digits of the hash.
52
- return identifierHash.substring(0, 7);
53
- }
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWljcm9mcm9udGVuZC12aWV3LWNhcGFiaWxpdHktaW50ZXJjZXB0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL3dvcmtiZW5jaC9zcmMvbGliL21pY3JvZnJvbnRlbmQtcGxhdGZvcm0vcm91dGluZy9taWNyb2Zyb250ZW5kLXZpZXctY2FwYWJpbGl0eS1pbnRlcmNlcHRvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVdBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLHFCQUFxQixFQUEwQixNQUFNLHlCQUF5QixDQUFDO0FBQ3ZGLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQzs7QUFFN0M7O0dBRUc7QUFFSCxNQUFNLE9BQU8sc0NBQXNDO0lBRTFDLEtBQUssQ0FBQyxTQUFTLENBQUMsVUFBc0I7UUFDM0MsSUFBSSxVQUFVLENBQUMsSUFBSSxLQUFLLHFCQUFxQixDQUFDLElBQUksRUFBRTtZQUNsRCxPQUFPLFVBQVUsQ0FBQztTQUNuQjtRQUVELE1BQU0sY0FBYyxHQUFHLFVBQXFDLENBQUM7UUFDN0Qsc0RBQXNEO1FBQ3RELElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFO1lBQzlFLE1BQU0sS0FBSyxDQUFDLHlFQUF5RSxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN6SDtRQUVELGlEQUFpRDtRQUNqRCxNQUFNLElBQUksR0FBRyxjQUFjLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQztRQUM3QyxJQUFJLElBQUksS0FBSyxTQUFTLElBQUksSUFBSSxLQUFLLElBQUksRUFBRTtZQUN2QyxNQUFNLEtBQUssQ0FBQyxzR0FBc0csSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDdEo7UUFFRCw4REFBOEQ7UUFDOUQsT0FBTztZQUNMLEdBQUcsY0FBYztZQUNqQixRQUFRLEVBQUU7Z0JBQ1IsR0FBRyxjQUFjLENBQUMsUUFBUztnQkFDM0IsRUFBRSxFQUFFLE1BQU0sMEJBQTBCLENBQUMsY0FBYyxDQUFDO2FBQ3JEO1NBQ0YsQ0FBQztJQUNKLENBQUM7OEdBM0JVLHNDQUFzQztrSEFBdEMsc0NBQXNDOzsyRkFBdEMsc0NBQXNDO2tCQURsRCxVQUFVOztBQStCWDs7R0FFRztBQUNILEtBQUssVUFBVSwwQkFBMEIsQ0FBQyxVQUFtQztJQUMzRSxNQUFNLFNBQVMsR0FBRyxVQUFVLENBQUMsU0FBVSxDQUFDO0lBQ3hDLE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxRQUFTLENBQUMsZUFBZSxDQUFDO0lBRXBELHVFQUF1RTtJQUN2RSxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztTQUN0QyxJQUFJLEVBQUU7U0FDTixNQUFNLENBQ0wsQ0FBQyxHQUFHLEVBQUUsWUFBWSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLFNBQVMsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLEVBQ3BGLENBQUMsTUFBTSxDQUFDLENBQ1Q7U0FDQSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFYix1QkFBdUI7SUFDdkIsTUFBTSxjQUFjLEdBQUcsTUFBTSxNQUFNLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3ZELHNDQUFzQztJQUN0QyxPQUFPLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ3hDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjIgU3dpc3MgRmVkZXJhbCBSYWlsd2F5c1xuICpcbiAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGVcbiAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wXG4gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC9cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMFxuICovXG5cbmltcG9ydCB7Q2FwYWJpbGl0eSwgQ2FwYWJpbGl0eUludGVyY2VwdG9yfSBmcm9tICdAc2Npb24vbWljcm9mcm9udGVuZC1wbGF0Zm9ybSc7XG5pbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtXb3JrYmVuY2hDYXBhYmlsaXRpZXMsIFdvcmtiZW5jaFZpZXdDYXBhYmlsaXR5fSBmcm9tICdAc2Npb24vd29ya2JlbmNoLWNsaWVudCc7XG5pbXBvcnQge0NyeXB0b30gZnJvbSAnQHNjaW9uL3Rvb2xraXQvY3J5cHRvJztcblxuLyoqXG4gKiBBc3NlcnRzIHZpZXcgY2FwYWJpbGl0aWVzIHRvIGhhdmUgcmVxdWlyZWQgcHJvcGVydGllcyBhbmQgYXNzaWducyBlYWNoIHZpZXcgY2FwYWJpbGl0eSBhIHN0YWJsZSBpZGVudGlmZXIgcmVxdWlyZWQgZm9yIHBlcnNpc3RlbnQgbmF2aWdhdGlvbi5cbiAqL1xuQEluamVjdGFibGUoLyogRE8gTk9UIFBST1ZJREUgdmlhICdwcm92aWRlZEluJyBtZXRhZGF0YSBhcyBvbmx5IHJlZ2lzdGVyZWQgaWYgbWljcm9mcm9udGVuZCBzdXBwb3J0IGlzIGVuYWJsZWQuICovKVxuZXhwb3J0IGNsYXNzIE1pY3JvZnJvbnRlbmRWaWV3Q2FwYWJpbGl0eUludGVyY2VwdG9yIGltcGxlbWVudHMgQ2FwYWJpbGl0eUludGVyY2VwdG9yIHtcblxuICBwdWJsaWMgYXN5bmMgaW50ZXJjZXB0KGNhcGFiaWxpdHk6IENhcGFiaWxpdHkpOiBQcm9taXNlPENhcGFiaWxpdHk+IHtcbiAgICBpZiAoY2FwYWJpbGl0eS50eXBlICE9PSBXb3JrYmVuY2hDYXBhYmlsaXRpZXMuVmlldykge1xuICAgICAgcmV0dXJuIGNhcGFiaWxpdHk7XG4gICAgfVxuXG4gICAgY29uc3Qgdmlld0NhcGFiaWxpdHkgPSBjYXBhYmlsaXR5IGFzIFdvcmtiZW5jaFZpZXdDYXBhYmlsaXR5O1xuICAgIC8vIEFzc2VydCB0aGUgdmlldyBjYXBhYmlsaXR5IHRvIGhhdmUgYSBxdWFsaWZpZXIgc2V0LlxuICAgIGlmICghdmlld0NhcGFiaWxpdHkucXVhbGlmaWVyIHx8ICFPYmplY3Qua2V5cyh2aWV3Q2FwYWJpbGl0eS5xdWFsaWZpZXIpLmxlbmd0aCkge1xuICAgICAgdGhyb3cgRXJyb3IoYFtOdWxsUXVhbGlmaWVyRXJyb3JdIFZpZXcgY2FwYWJpbGl0eSByZXF1aXJlcyBhIHF1YWxpZmllciBbY2FwYWJpbGl0eT0ke0pTT04uc3RyaW5naWZ5KHZpZXdDYXBhYmlsaXR5KX1dYCk7XG4gICAgfVxuXG4gICAgLy8gQXNzZXJ0IHRoZSB2aWV3IGNhcGFiaWxpdHkgdG8gaGF2ZSBhIHBhdGggc2V0LlxuICAgIGNvbnN0IHBhdGggPSB2aWV3Q2FwYWJpbGl0eS5wcm9wZXJ0aWVzPy5wYXRoO1xuICAgIGlmIChwYXRoID09PSB1bmRlZmluZWQgfHwgcGF0aCA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgRXJyb3IoYFtOdWxsUGF0aEVycm9yXSBWaWV3IGNhcGFiaWxpdHkgcmVxdWlyZXMgYSBwYXRoIHRvIHRoZSBtaWNyb2Zyb250ZW5kIGluIGl0cyBwcm9wZXJ0aWVzIFtjYXBhYmlsaXR5PSR7SlNPTi5zdHJpbmdpZnkodmlld0NhcGFiaWxpdHkpfV1gKTtcbiAgICB9XG5cbiAgICAvLyBTZXQgYSBzdGFibGUgaWRlbnRpZmllciByZXF1aXJlZCBmb3IgcGVyc2lzdGVudCBuYXZpZ2F0aW9uLlxuICAgIHJldHVybiB7XG4gICAgICAuLi52aWV3Q2FwYWJpbGl0eSxcbiAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgIC4uLnZpZXdDYXBhYmlsaXR5Lm1ldGFkYXRhISxcbiAgICAgICAgaWQ6IGF3YWl0IGNyZWF0ZVN0YWJsZVZpZXdJZGVudGlmaWVyKHZpZXdDYXBhYmlsaXR5KSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBzdGFibGUgaWRlbnRpZmllciBmb3IgZ2l2ZW4gdmlldyBjYXBhYmlsaXR5LlxuICovXG5hc3luYyBmdW5jdGlvbiBjcmVhdGVTdGFibGVWaWV3SWRlbnRpZmllcihjYXBhYmlsaXR5OiBXb3JrYmVuY2hWaWV3Q2FwYWJpbGl0eSk6IFByb21pc2U8c3RyaW5nPiB7XG4gIGNvbnN0IHF1YWxpZmllciA9IGNhcGFiaWxpdHkucXVhbGlmaWVyITtcbiAgY29uc3QgdmVuZG9yID0gY2FwYWJpbGl0eS5tZXRhZGF0YSEuYXBwU3ltYm9saWNOYW1lO1xuXG4gIC8vIENyZWF0ZSBpZGVudGlmaWVyIGNvbnNpc3Rpbmcgb2YgdmVuZG9yIGFuZCBzb3J0ZWQgcXVhbGlmaWVyIGVudHJpZXMuXG4gIGNvbnN0IGlkZW50aWZpZXIgPSBPYmplY3Qua2V5cyhxdWFsaWZpZXIpXG4gICAgLnNvcnQoKVxuICAgIC5yZWR1Y2UoXG4gICAgICAoYWNjLCBxdWFsaWZpZXJLZXkpID0+IGFjYy5jb25jYXQocXVhbGlmaWVyS2V5KS5jb25jYXQoYCR7cXVhbGlmaWVyW3F1YWxpZmllcktleV19YCksXG4gICAgICBbdmVuZG9yXSxcbiAgICApXG4gICAgLmpvaW4oJzsnKTtcblxuICAvLyBIYXNoIHRoZSBpZGVudGlmaWVyLlxuICBjb25zdCBpZGVudGlmaWVySGFzaCA9IGF3YWl0IENyeXB0by5kaWdlc3QoaWRlbnRpZmllcik7XG4gIC8vIFVzZSB0aGUgZmlyc3QgNyBkaWdpdHMgb2YgdGhlIGhhc2guXG4gIHJldHVybiBpZGVudGlmaWVySGFzaC5zdWJzdHJpbmcoMCwgNyk7XG59XG4iXX0=
@@ -1,123 +0,0 @@
1
- /*
2
- * Copyright (c) 2018-2022 Swiss Federal Railways
3
- *
4
- * This program and the accompanying materials are made
5
- * available under the terms of the Eclipse Public License 2.0
6
- * which is available at https://www.eclipse.org/legal/epl-2.0/
7
- *
8
- * SPDX-License-Identifier: EPL-2.0
9
- */
10
- import { MessageClient, MessageHeaders, ResponseStatusCodes } from '@scion/microfrontend-platform';
11
- import { Injectable } from '@angular/core';
12
- import { WorkbenchCapabilities } from '@scion/workbench-client';
13
- import { MicrofrontendViewRoutes } from './microfrontend-routes';
14
- import { LoggerNames } from '../../logging';
15
- import { Beans } from '@scion/toolkit/bean-manager';
16
- import { Arrays, Dictionaries } from '@scion/toolkit/util';
17
- import { MicrofrontendNavigationalStates } from './microfrontend-navigational-states';
18
- import * as i0 from "@angular/core";
19
- import * as i1 from "../../routing/workbench-router.service";
20
- import * as i2 from "../../view/workbench-view.registry";
21
- import * as i3 from "../../logging";
22
- /**
23
- * Handles microfrontend view intents, instructing the Workbench Router to navigate to the microfrontend of given view capabilities.
24
- *
25
- * View intents are handled in this interceptor in order to support microfrontends not using the SCION Workbench. They are not transported to the providing application.
26
- */
27
- export class MicrofrontendViewIntentInterceptor {
28
- constructor(_workbenchRouter, _viewRegistry, _logger) {
29
- this._workbenchRouter = _workbenchRouter;
30
- this._viewRegistry = _viewRegistry;
31
- this._logger = _logger;
32
- }
33
- /**
34
- * View intents are handled in this interceptor and then swallowed.
35
- */
36
- intercept(intentMessage, next) {
37
- if (intentMessage.intent.type === WorkbenchCapabilities.View) {
38
- return this.consumeViewIntent(intentMessage);
39
- }
40
- else {
41
- return next.handle(intentMessage);
42
- }
43
- }
44
- async consumeViewIntent(message) {
45
- const replyTo = message.headers.get(MessageHeaders.ReplyTo);
46
- const success = await this.navigate(message);
47
- await Beans.get(MessageClient).publish(replyTo, success, { headers: new Map().set(MessageHeaders.Status, ResponseStatusCodes.TERMINAL) });
48
- }
49
- async navigate(message) {
50
- const viewCapability = message.capability;
51
- const intent = message.intent;
52
- const extras = message.body ?? {};
53
- const intentParams = Dictionaries.withoutUndefinedEntries(Dictionaries.coerce(intent.params));
54
- const { urlParams, transientParams } = MicrofrontendViewRoutes.splitParams(intentParams, viewCapability);
55
- const qualifier = Dictionaries.withoutUndefinedEntries(intent.qualifier);
56
- const targets = this.resolveTargets(message, extras);
57
- const routerNavigateCommand = extras.close ? [] : MicrofrontendViewRoutes.buildRouterNavigateCommand(viewCapability.metadata.id, qualifier, urlParams);
58
- this._logger.debug(() => `Navigating to: ${viewCapability.properties.path}`, LoggerNames.MICROFRONTEND_ROUTING, routerNavigateCommand, viewCapability, transientParams);
59
- const navigations = await Promise.all(Arrays.coerce(targets).map(target => {
60
- return this._workbenchRouter.navigate(routerNavigateCommand, {
61
- target,
62
- activate: extras.activate,
63
- close: extras.close,
64
- blankInsertionIndex: extras.blankInsertionIndex,
65
- cssClass: extras.cssClass,
66
- state: {
67
- [MicrofrontendNavigationalStates.transientParams]: transientParams,
68
- },
69
- });
70
- }));
71
- return navigations.every(Boolean);
72
- }
73
- /**
74
- * Resolves the target(s) for this navigation.
75
- */
76
- resolveTargets(intentMessage, extras) {
77
- // Closing a microfrontend view by viewId is not allowed, as this would violate the concept of intent-based view navigation.
78
- if (extras.close && extras.target) {
79
- throw Error(`[WorkbenchRouterError][IllegalArgumentError] The target must be empty if closing a view [target=${(extras.target)}]`);
80
- }
81
- if (extras.close) {
82
- return this.resolvePresentViewIds(intentMessage, { matchWildcardParams: true }) ?? [];
83
- }
84
- if (!extras.target || extras.target === 'auto') {
85
- return this.resolvePresentViewIds(intentMessage) ?? 'blank';
86
- }
87
- return extras.target;
88
- }
89
- /**
90
- * Resolves opened views which match the given view intent.
91
- * A view matches if its view capability and all its required parameters are equal.
92
- *
93
- * Allows matching wildcard parameters by setting the option `matchWildcardParameters` to `true`.
94
- */
95
- resolvePresentViewIds(intentMessage, options) {
96
- const requiredParams = intentMessage.capability.params?.filter(param => param.required).map(param => param.name) ?? [];
97
- const matchWildcardParams = options?.matchWildcardParams ?? false;
98
- const viewIds = this._viewRegistry.views
99
- .filter(view => {
100
- if (!MicrofrontendViewRoutes.isMicrofrontendRoute(view.urlSegments)) {
101
- return false;
102
- }
103
- // Test whether the capability matches.
104
- const viewParams = MicrofrontendViewRoutes.parseParams(view.urlSegments);
105
- if (viewParams.viewCapabilityId !== intentMessage.capability.metadata.id) {
106
- return false;
107
- }
108
- // Test whether all "navigational" params match.
109
- return requiredParams.every(name => {
110
- const intentParam = intentMessage.intent.params.get(name);
111
- return (matchWildcardParams && intentParam === '*') || intentParam === viewParams.urlParams[name];
112
- });
113
- })
114
- .map(view => view.id);
115
- return viewIds.length ? viewIds : null;
116
- }
117
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: MicrofrontendViewIntentInterceptor, deps: [{ token: i1.WorkbenchRouter }, { token: i2.WorkbenchViewRegistry }, { token: i3.Logger }], target: i0.ɵɵFactoryTarget.Injectable }); }
118
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: MicrofrontendViewIntentInterceptor }); }
119
- }
120
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: MicrofrontendViewIntentInterceptor, decorators: [{
121
- type: Injectable
122
- }], ctorParameters: () => [{ type: i1.WorkbenchRouter }, { type: i2.WorkbenchViewRegistry }, { type: i3.Logger }] });
123
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWljcm9mcm9udGVuZC12aWV3LWludGVudC1pbnRlcmNlcHRvci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vd29ya2JlbmNoL3NyYy9saWIvbWljcm9mcm9udGVuZC1wbGF0Zm9ybS9yb3V0aW5nL21pY3JvZnJvbnRlbmQtdmlldy1pbnRlbnQtaW50ZXJjZXB0b3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUVILE9BQU8sRUFBNEMsYUFBYSxFQUFFLGNBQWMsRUFBRSxtQkFBbUIsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQzVJLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLHFCQUFxQixFQUFxRCxNQUFNLHlCQUF5QixDQUFDO0FBRWxILE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQy9ELE9BQU8sRUFBUyxXQUFXLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ2xELE9BQU8sRUFBQyxNQUFNLEVBQUUsWUFBWSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDekQsT0FBTyxFQUFDLCtCQUErQixFQUFDLE1BQU0scUNBQXFDLENBQUM7Ozs7O0FBR3BGOzs7O0dBSUc7QUFFSCxNQUFNLE9BQU8sa0NBQWtDO0lBRTdDLFlBQW9CLGdCQUFpQyxFQUNqQyxhQUFvQyxFQUNwQyxPQUFlO1FBRmYscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFpQjtRQUNqQyxrQkFBYSxHQUFiLGFBQWEsQ0FBdUI7UUFDcEMsWUFBTyxHQUFQLE9BQU8sQ0FBUTtJQUNuQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxTQUFTLENBQUMsYUFBNEIsRUFBRSxJQUE0QjtRQUN6RSxJQUFJLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLHFCQUFxQixDQUFDLElBQUksRUFBRTtZQUM1RCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUM5QzthQUNJO1lBQ0gsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBQ25DO0lBQ0gsQ0FBQztJQUVPLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxPQUE2RDtRQUMzRixNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDNUQsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzdDLE1BQU0sS0FBSyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxFQUFDLE9BQU8sRUFBRSxJQUFJLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxFQUFDLENBQUMsQ0FBQztJQUMxSSxDQUFDO0lBRU8sS0FBSyxDQUFDLFFBQVEsQ0FBQyxPQUE2RDtRQUNsRixNQUFNLGNBQWMsR0FBRyxPQUFPLENBQUMsVUFBcUMsQ0FBQztRQUNyRSxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDO1FBQzlCLE1BQU0sTUFBTSxHQUE4QixPQUFPLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUU3RCxNQUFNLFlBQVksR0FBRyxZQUFZLENBQUMsdUJBQXVCLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUM5RixNQUFNLEVBQUMsU0FBUyxFQUFFLGVBQWUsRUFBQyxHQUFHLHVCQUF1QixDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFDdkcsTUFBTSxTQUFTLEdBQUcsWUFBWSxDQUFDLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxTQUFVLENBQUMsQ0FBQztRQUMxRSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNyRCxNQUFNLHFCQUFxQixHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsdUJBQXVCLENBQUMsMEJBQTBCLENBQUMsY0FBYyxDQUFDLFFBQVMsQ0FBQyxFQUFFLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBRXhKLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLGtCQUFrQixjQUFjLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxFQUFFLFdBQVcsQ0FBQyxxQkFBcUIsRUFBRSxxQkFBcUIsRUFBRSxjQUFjLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFDeEssTUFBTSxXQUFXLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3hFLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxxQkFBcUIsRUFBRTtnQkFDM0QsTUFBTTtnQkFDTixRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVE7Z0JBQ3pCLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSztnQkFDbkIsbUJBQW1CLEVBQUUsTUFBTSxDQUFDLG1CQUFtQjtnQkFDL0MsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRO2dCQUN6QixLQUFLLEVBQUU7b0JBQ0wsQ0FBQywrQkFBK0IsQ0FBQyxlQUFlLENBQUMsRUFBRSxlQUFlO2lCQUNuRTthQUNGLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDSixPQUFPLFdBQVcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVEOztPQUVHO0lBQ0ssY0FBYyxDQUFDLGFBQTRCLEVBQUUsTUFBaUM7UUFDcEYsNEhBQTRIO1FBQzVILElBQUksTUFBTSxDQUFDLEtBQUssSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFO1lBQ2pDLE1BQU0sS0FBSyxDQUFDLG1HQUFtRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDcEk7UUFDRCxJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUU7WUFDaEIsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUMsYUFBYSxFQUFFLEVBQUMsbUJBQW1CLEVBQUUsSUFBSSxFQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDckY7UUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLE1BQU0sRUFBRTtZQUM5QyxPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxhQUFhLENBQUMsSUFBSSxPQUFPLENBQUM7U0FDN0Q7UUFDRCxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0sscUJBQXFCLENBQUMsYUFBNEIsRUFBRSxPQUF5QztRQUNuRyxNQUFNLGNBQWMsR0FBRyxhQUFhLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN2SCxNQUFNLG1CQUFtQixHQUFHLE9BQU8sRUFBRSxtQkFBbUIsSUFBSSxLQUFLLENBQUM7UUFFbEUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLO2FBQ3JDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNiLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUU7Z0JBQ25FLE9BQU8sS0FBSyxDQUFDO2FBQ2Q7WUFFRCx1Q0FBdUM7WUFDdkMsTUFBTSxVQUFVLEdBQUcsdUJBQXVCLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN6RSxJQUFJLFVBQVUsQ0FBQyxnQkFBZ0IsS0FBSyxhQUFhLENBQUMsVUFBVSxDQUFDLFFBQVMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3pFLE9BQU8sS0FBSyxDQUFDO2FBQ2Q7WUFFRCxnREFBZ0Q7WUFDaEQsT0FBTyxjQUFjLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUNqQyxNQUFNLFdBQVcsR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLE1BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzNELE9BQU8sQ0FBQyxtQkFBbUIsSUFBSSxXQUFXLEtBQUssR0FBRyxDQUFDLElBQUksV0FBVyxLQUFLLFVBQVUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDcEcsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUM7YUFDRCxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFeEIsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUN6QyxDQUFDOzhHQXBHVSxrQ0FBa0M7a0hBQWxDLGtDQUFrQzs7MkZBQWxDLGtDQUFrQztrQkFEOUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyMiBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wXG4gKi9cblxuaW1wb3J0IHtIYW5kbGVyLCBJbnRlbnRJbnRlcmNlcHRvciwgSW50ZW50TWVzc2FnZSwgTWVzc2FnZUNsaWVudCwgTWVzc2FnZUhlYWRlcnMsIFJlc3BvbnNlU3RhdHVzQ29kZXN9IGZyb20gJ0BzY2lvbi9taWNyb2Zyb250ZW5kLXBsYXRmb3JtJztcbmltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1dvcmtiZW5jaENhcGFiaWxpdGllcywgV29ya2JlbmNoTmF2aWdhdGlvbkV4dHJhcywgV29ya2JlbmNoVmlld0NhcGFiaWxpdHl9IGZyb20gJ0BzY2lvbi93b3JrYmVuY2gtY2xpZW50JztcbmltcG9ydCB7V29ya2JlbmNoUm91dGVyfSBmcm9tICcuLi8uLi9yb3V0aW5nL3dvcmtiZW5jaC1yb3V0ZXIuc2VydmljZSc7XG5pbXBvcnQge01pY3JvZnJvbnRlbmRWaWV3Um91dGVzfSBmcm9tICcuL21pY3JvZnJvbnRlbmQtcm91dGVzJztcbmltcG9ydCB7TG9nZ2VyLCBMb2dnZXJOYW1lc30gZnJvbSAnLi4vLi4vbG9nZ2luZyc7XG5pbXBvcnQge0JlYW5zfSBmcm9tICdAc2Npb24vdG9vbGtpdC9iZWFuLW1hbmFnZXInO1xuaW1wb3J0IHtBcnJheXMsIERpY3Rpb25hcmllc30gZnJvbSAnQHNjaW9uL3Rvb2xraXQvdXRpbCc7XG5pbXBvcnQge01pY3JvZnJvbnRlbmROYXZpZ2F0aW9uYWxTdGF0ZXN9IGZyb20gJy4vbWljcm9mcm9udGVuZC1uYXZpZ2F0aW9uYWwtc3RhdGVzJztcbmltcG9ydCB7V29ya2JlbmNoVmlld1JlZ2lzdHJ5fSBmcm9tICcuLi8uLi92aWV3L3dvcmtiZW5jaC12aWV3LnJlZ2lzdHJ5JztcblxuLyoqXG4gKiBIYW5kbGVzIG1pY3JvZnJvbnRlbmQgdmlldyBpbnRlbnRzLCBpbnN0cnVjdGluZyB0aGUgV29ya2JlbmNoIFJvdXRlciB0byBuYXZpZ2F0ZSB0byB0aGUgbWljcm9mcm9udGVuZCBvZiBnaXZlbiB2aWV3IGNhcGFiaWxpdGllcy5cbiAqXG4gKiBWaWV3IGludGVudHMgYXJlIGhhbmRsZWQgaW4gdGhpcyBpbnRlcmNlcHRvciBpbiBvcmRlciB0byBzdXBwb3J0IG1pY3JvZnJvbnRlbmRzIG5vdCB1c2luZyB0aGUgU0NJT04gV29ya2JlbmNoLiBUaGV5IGFyZSBub3QgdHJhbnNwb3J0ZWQgdG8gdGhlIHByb3ZpZGluZyBhcHBsaWNhdGlvbi5cbiAqL1xuQEluamVjdGFibGUoLyogRE8gTk9UIFBST1ZJREUgdmlhICdwcm92aWRlZEluJyBtZXRhZGF0YSBhcyBvbmx5IHJlZ2lzdGVyZWQgaWYgbWljcm9mcm9udGVuZCBzdXBwb3J0IGlzIGVuYWJsZWQuICovKVxuZXhwb3J0IGNsYXNzIE1pY3JvZnJvbnRlbmRWaWV3SW50ZW50SW50ZXJjZXB0b3IgaW1wbGVtZW50cyBJbnRlbnRJbnRlcmNlcHRvciB7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfd29ya2JlbmNoUm91dGVyOiBXb3JrYmVuY2hSb3V0ZXIsXG4gICAgICAgICAgICAgIHByaXZhdGUgX3ZpZXdSZWdpc3RyeTogV29ya2JlbmNoVmlld1JlZ2lzdHJ5LFxuICAgICAgICAgICAgICBwcml2YXRlIF9sb2dnZXI6IExvZ2dlcikge1xuICB9XG5cbiAgLyoqXG4gICAqIFZpZXcgaW50ZW50cyBhcmUgaGFuZGxlZCBpbiB0aGlzIGludGVyY2VwdG9yIGFuZCB0aGVuIHN3YWxsb3dlZC5cbiAgICovXG4gIHB1YmxpYyBpbnRlcmNlcHQoaW50ZW50TWVzc2FnZTogSW50ZW50TWVzc2FnZSwgbmV4dDogSGFuZGxlcjxJbnRlbnRNZXNzYWdlPik6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmIChpbnRlbnRNZXNzYWdlLmludGVudC50eXBlID09PSBXb3JrYmVuY2hDYXBhYmlsaXRpZXMuVmlldykge1xuICAgICAgcmV0dXJuIHRoaXMuY29uc3VtZVZpZXdJbnRlbnQoaW50ZW50TWVzc2FnZSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKGludGVudE1lc3NhZ2UpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgY29uc3VtZVZpZXdJbnRlbnQobWVzc2FnZTogSW50ZW50TWVzc2FnZTxXb3JrYmVuY2hOYXZpZ2F0aW9uRXh0cmFzIHwgdW5kZWZpbmVkPik6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHJlcGx5VG8gPSBtZXNzYWdlLmhlYWRlcnMuZ2V0KE1lc3NhZ2VIZWFkZXJzLlJlcGx5VG8pO1xuICAgIGNvbnN0IHN1Y2Nlc3MgPSBhd2FpdCB0aGlzLm5hdmlnYXRlKG1lc3NhZ2UpO1xuICAgIGF3YWl0IEJlYW5zLmdldChNZXNzYWdlQ2xpZW50KS5wdWJsaXNoKHJlcGx5VG8sIHN1Y2Nlc3MsIHtoZWFkZXJzOiBuZXcgTWFwKCkuc2V0KE1lc3NhZ2VIZWFkZXJzLlN0YXR1cywgUmVzcG9uc2VTdGF0dXNDb2Rlcy5URVJNSU5BTCl9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbmF2aWdhdGUobWVzc2FnZTogSW50ZW50TWVzc2FnZTxXb3JrYmVuY2hOYXZpZ2F0aW9uRXh0cmFzIHwgdW5kZWZpbmVkPik6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IHZpZXdDYXBhYmlsaXR5ID0gbWVzc2FnZS5jYXBhYmlsaXR5IGFzIFdvcmtiZW5jaFZpZXdDYXBhYmlsaXR5O1xuICAgIGNvbnN0IGludGVudCA9IG1lc3NhZ2UuaW50ZW50O1xuICAgIGNvbnN0IGV4dHJhczogV29ya2JlbmNoTmF2aWdhdGlvbkV4dHJhcyA9IG1lc3NhZ2UuYm9keSA/PyB7fTtcblxuICAgIGNvbnN0IGludGVudFBhcmFtcyA9IERpY3Rpb25hcmllcy53aXRob3V0VW5kZWZpbmVkRW50cmllcyhEaWN0aW9uYXJpZXMuY29lcmNlKGludGVudC5wYXJhbXMpKTtcbiAgICBjb25zdCB7dXJsUGFyYW1zLCB0cmFuc2llbnRQYXJhbXN9ID0gTWljcm9mcm9udGVuZFZpZXdSb3V0ZXMuc3BsaXRQYXJhbXMoaW50ZW50UGFyYW1zLCB2aWV3Q2FwYWJpbGl0eSk7XG4gICAgY29uc3QgcXVhbGlmaWVyID0gRGljdGlvbmFyaWVzLndpdGhvdXRVbmRlZmluZWRFbnRyaWVzKGludGVudC5xdWFsaWZpZXIhKTtcbiAgICBjb25zdCB0YXJnZXRzID0gdGhpcy5yZXNvbHZlVGFyZ2V0cyhtZXNzYWdlLCBleHRyYXMpO1xuICAgIGNvbnN0IHJvdXRlck5hdmlnYXRlQ29tbWFuZCA9IGV4dHJhcy5jbG9zZSA/IFtdIDogTWljcm9mcm9udGVuZFZpZXdSb3V0ZXMuYnVpbGRSb3V0ZXJOYXZpZ2F0ZUNvbW1hbmQodmlld0NhcGFiaWxpdHkubWV0YWRhdGEhLmlkLCBxdWFsaWZpZXIsIHVybFBhcmFtcyk7XG5cbiAgICB0aGlzLl9sb2dnZXIuZGVidWcoKCkgPT4gYE5hdmlnYXRpbmcgdG86ICR7dmlld0NhcGFiaWxpdHkucHJvcGVydGllcy5wYXRofWAsIExvZ2dlck5hbWVzLk1JQ1JPRlJPTlRFTkRfUk9VVElORywgcm91dGVyTmF2aWdhdGVDb21tYW5kLCB2aWV3Q2FwYWJpbGl0eSwgdHJhbnNpZW50UGFyYW1zKTtcbiAgICBjb25zdCBuYXZpZ2F0aW9ucyA9IGF3YWl0IFByb21pc2UuYWxsKEFycmF5cy5jb2VyY2UodGFyZ2V0cykubWFwKHRhcmdldCA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5fd29ya2JlbmNoUm91dGVyLm5hdmlnYXRlKHJvdXRlck5hdmlnYXRlQ29tbWFuZCwge1xuICAgICAgICB0YXJnZXQsXG4gICAgICAgIGFjdGl2YXRlOiBleHRyYXMuYWN0aXZhdGUsXG4gICAgICAgIGNsb3NlOiBleHRyYXMuY2xvc2UsXG4gICAgICAgIGJsYW5rSW5zZXJ0aW9uSW5kZXg6IGV4dHJhcy5ibGFua0luc2VydGlvbkluZGV4LFxuICAgICAgICBjc3NDbGFzczogZXh0cmFzLmNzc0NsYXNzLFxuICAgICAgICBzdGF0ZToge1xuICAgICAgICAgIFtNaWNyb2Zyb250ZW5kTmF2aWdhdGlvbmFsU3RhdGVzLnRyYW5zaWVudFBhcmFtc106IHRyYW5zaWVudFBhcmFtcyxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH0pKTtcbiAgICByZXR1cm4gbmF2aWdhdGlvbnMuZXZlcnkoQm9vbGVhbik7XG4gIH1cblxuICAvKipcbiAgICogUmVzb2x2ZXMgdGhlIHRhcmdldChzKSBmb3IgdGhpcyBuYXZpZ2F0aW9uLlxuICAgKi9cbiAgcHJpdmF0ZSByZXNvbHZlVGFyZ2V0cyhpbnRlbnRNZXNzYWdlOiBJbnRlbnRNZXNzYWdlLCBleHRyYXM6IFdvcmtiZW5jaE5hdmlnYXRpb25FeHRyYXMpOiBzdHJpbmcgfCBzdHJpbmdbXSB7XG4gICAgLy8gQ2xvc2luZyBhIG1pY3JvZnJvbnRlbmQgdmlldyBieSB2aWV3SWQgaXMgbm90IGFsbG93ZWQsIGFzIHRoaXMgd291bGQgdmlvbGF0ZSB0aGUgY29uY2VwdCBvZiBpbnRlbnQtYmFzZWQgdmlldyBuYXZpZ2F0aW9uLlxuICAgIGlmIChleHRyYXMuY2xvc2UgJiYgZXh0cmFzLnRhcmdldCkge1xuICAgICAgdGhyb3cgRXJyb3IoYFtXb3JrYmVuY2hSb3V0ZXJFcnJvcl1bSWxsZWdhbEFyZ3VtZW50RXJyb3JdIFRoZSB0YXJnZXQgbXVzdCBiZSBlbXB0eSBpZiBjbG9zaW5nIGEgdmlldyBbdGFyZ2V0PSR7KGV4dHJhcy50YXJnZXQpfV1gKTtcbiAgICB9XG4gICAgaWYgKGV4dHJhcy5jbG9zZSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVzb2x2ZVByZXNlbnRWaWV3SWRzKGludGVudE1lc3NhZ2UsIHttYXRjaFdpbGRjYXJkUGFyYW1zOiB0cnVlfSkgPz8gW107XG4gICAgfVxuICAgIGlmICghZXh0cmFzLnRhcmdldCB8fCBleHRyYXMudGFyZ2V0ID09PSAnYXV0bycpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlc29sdmVQcmVzZW50Vmlld0lkcyhpbnRlbnRNZXNzYWdlKSA/PyAnYmxhbmsnO1xuICAgIH1cbiAgICByZXR1cm4gZXh0cmFzLnRhcmdldDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNvbHZlcyBvcGVuZWQgdmlld3Mgd2hpY2ggbWF0Y2ggdGhlIGdpdmVuIHZpZXcgaW50ZW50LlxuICAgKiBBIHZpZXcgbWF0Y2hlcyBpZiBpdHMgdmlldyBjYXBhYmlsaXR5IGFuZCBhbGwgaXRzIHJlcXVpcmVkIHBhcmFtZXRlcnMgYXJlIGVxdWFsLlxuICAgKlxuICAgKiBBbGxvd3MgbWF0Y2hpbmcgd2lsZGNhcmQgcGFyYW1ldGVycyBieSBzZXR0aW5nIHRoZSBvcHRpb24gYG1hdGNoV2lsZGNhcmRQYXJhbWV0ZXJzYCB0byBgdHJ1ZWAuXG4gICAqL1xuICBwcml2YXRlIHJlc29sdmVQcmVzZW50Vmlld0lkcyhpbnRlbnRNZXNzYWdlOiBJbnRlbnRNZXNzYWdlLCBvcHRpb25zPzoge21hdGNoV2lsZGNhcmRQYXJhbXM/OiBib29sZWFufSk6IHN0cmluZ1tdIHwgbnVsbCB7XG4gICAgY29uc3QgcmVxdWlyZWRQYXJhbXMgPSBpbnRlbnRNZXNzYWdlLmNhcGFiaWxpdHkucGFyYW1zPy5maWx0ZXIocGFyYW0gPT4gcGFyYW0ucmVxdWlyZWQpLm1hcChwYXJhbSA9PiBwYXJhbS5uYW1lKSA/PyBbXTtcbiAgICBjb25zdCBtYXRjaFdpbGRjYXJkUGFyYW1zID0gb3B0aW9ucz8ubWF0Y2hXaWxkY2FyZFBhcmFtcyA/PyBmYWxzZTtcblxuICAgIGNvbnN0IHZpZXdJZHMgPSB0aGlzLl92aWV3UmVnaXN0cnkudmlld3NcbiAgICAgIC5maWx0ZXIodmlldyA9PiB7XG4gICAgICAgIGlmICghTWljcm9mcm9udGVuZFZpZXdSb3V0ZXMuaXNNaWNyb2Zyb250ZW5kUm91dGUodmlldy51cmxTZWdtZW50cykpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBUZXN0IHdoZXRoZXIgdGhlIGNhcGFiaWxpdHkgbWF0Y2hlcy5cbiAgICAgICAgY29uc3Qgdmlld1BhcmFtcyA9IE1pY3JvZnJvbnRlbmRWaWV3Um91dGVzLnBhcnNlUGFyYW1zKHZpZXcudXJsU2VnbWVudHMpO1xuICAgICAgICBpZiAodmlld1BhcmFtcy52aWV3Q2FwYWJpbGl0eUlkICE9PSBpbnRlbnRNZXNzYWdlLmNhcGFiaWxpdHkubWV0YWRhdGEhLmlkKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVGVzdCB3aGV0aGVyIGFsbCBcIm5hdmlnYXRpb25hbFwiIHBhcmFtcyBtYXRjaC5cbiAgICAgICAgcmV0dXJuIHJlcXVpcmVkUGFyYW1zLmV2ZXJ5KG5hbWUgPT4ge1xuICAgICAgICAgIGNvbnN0IGludGVudFBhcmFtID0gaW50ZW50TWVzc2FnZS5pbnRlbnQucGFyYW1zIS5nZXQobmFtZSk7XG4gICAgICAgICAgcmV0dXJuIChtYXRjaFdpbGRjYXJkUGFyYW1zICYmIGludGVudFBhcmFtID09PSAnKicpIHx8IGludGVudFBhcmFtID09PSB2aWV3UGFyYW1zLnVybFBhcmFtc1tuYW1lXTtcbiAgICAgICAgfSk7XG4gICAgICB9KVxuICAgICAgLm1hcCh2aWV3ID0+IHZpZXcuaWQpO1xuXG4gICAgcmV0dXJuIHZpZXdJZHMubGVuZ3RoID8gdmlld0lkcyA6IG51bGw7XG4gIH1cbn1cbiJdfQ==
@@ -1,54 +0,0 @@
1
- /*
2
- * Copyright (c) 2018-2022 Swiss Federal Railways
3
- *
4
- * This program and the accompanying materials are made
5
- * available under the terms of the Eclipse Public License 2.0
6
- * which is available at https://www.eclipse.org/legal/epl-2.0/
7
- *
8
- * SPDX-License-Identifier: EPL-2.0
9
- */
10
- import { Router } from '@angular/router';
11
- import { inject } from '@angular/core';
12
- import { WorkbenchRouteData } from './workbench-route-data';
13
- import { WorkbenchNavigationalStates } from './workbench-navigational-states';
14
- /**
15
- * Makes navigational view state available to the activated route via {@link ActivatedRoute#data} under the key {@link WorkbenchRouteData.state}.
16
- *
17
- * Depending on the route configuration, the Angular router runs this resolver on every navigation. See {@link Route#runGuardsAndResolvers}.
18
- * Then, we resolve to the current state of the activated route.
19
- *
20
- * Note that Angular performs a reference equality check to decide whether resolved data has changed.
21
- * Therefore, we resolve to `undefined` if the state object is empty.
22
- */
23
- export const resolveNavigationalViewState = route => {
24
- const navigationalViewState = getNavigationalViewState(route.outlet);
25
- return isEmpty(navigationalViewState) ? undefined : navigationalViewState;
26
- };
27
- /**
28
- * Returns navigational view state from either the navigation or the activated route.
29
- */
30
- function getNavigationalViewState(viewId) {
31
- const router = inject(Router);
32
- const navigationalViewState = WorkbenchNavigationalStates.fromNavigation(router.getCurrentNavigation())?.viewStates[viewId];
33
- if (navigationalViewState) {
34
- return navigationalViewState;
35
- }
36
- const activatedRoute = router.routerState.snapshot.root.children.find(child => child.outlet === viewId);
37
- return activatedRoute?.data?.[WorkbenchRouteData.state];
38
- }
39
- /**
40
- * Tests whether the passed dictionary is empty or contains only `undefined` or empty object values.
41
- */
42
- function isEmpty(dictionary) {
43
- if (dictionary === undefined || dictionary === null) {
44
- return true;
45
- }
46
- if (!Object.keys(dictionary).length) {
47
- return true;
48
- }
49
- if (Object.values(dictionary).every(value => value === undefined || (typeof value === 'object' && !Object.keys(value).length))) {
50
- return true;
51
- }
52
- return false;
53
- }
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1zdGF0ZS5yZXNvbHZlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL3dvcmtiZW5jaC9zcmMvbGliL3JvdXRpbmcvbmF2aWdhdGlvbi1zdGF0ZS5yZXNvbHZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUVILE9BQU8sRUFBWSxNQUFNLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXJDLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBRTVFOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQTZDLEtBQUssQ0FBQyxFQUFFO0lBQzVGLE1BQU0scUJBQXFCLEdBQUcsd0JBQXdCLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3JFLE9BQU8sT0FBTyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUM7QUFDNUUsQ0FBQyxDQUFDO0FBRUY7O0dBRUc7QUFDSCxTQUFTLHdCQUF3QixDQUFDLE1BQWM7SUFDOUMsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRTlCLE1BQU0scUJBQXFCLEdBQUcsMkJBQTJCLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsRUFBRyxDQUFDLEVBQUUsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzdILElBQUkscUJBQXFCLEVBQUU7UUFDekIsT0FBTyxxQkFBcUIsQ0FBQztLQUM5QjtJQUVELE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sS0FBSyxNQUFNLENBQUMsQ0FBQztJQUN4RyxPQUFPLGNBQWMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUMxRCxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFTLE9BQU8sQ0FBQyxVQUF5QztJQUN4RCxJQUFJLFVBQVUsS0FBSyxTQUFTLElBQUksVUFBVSxLQUFLLElBQUksRUFBRTtRQUNuRCxPQUFPLElBQUksQ0FBQztLQUNiO0lBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxFQUFFO1FBQ25DLE9BQU8sSUFBSSxDQUFDO0tBQ2I7SUFDRCxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxLQUFLLFNBQVMsSUFBSSxDQUFDLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRTtRQUM5SCxPQUFPLElBQUksQ0FBQztLQUNiO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIyIFN3aXNzIEZlZGVyYWwgUmFpbHdheXNcbiAqXG4gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlXG4gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMFxuICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjBcbiAqL1xuXG5pbXBvcnQge1Jlc29sdmVGbiwgUm91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtpbmplY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtEaWN0aW9uYXJ5fSBmcm9tICdAc2Npb24vdG9vbGtpdC91dGlsJztcbmltcG9ydCB7V29ya2JlbmNoUm91dGVEYXRhfSBmcm9tICcuL3dvcmtiZW5jaC1yb3V0ZS1kYXRhJztcbmltcG9ydCB7V29ya2JlbmNoTmF2aWdhdGlvbmFsU3RhdGVzfSBmcm9tICcuL3dvcmtiZW5jaC1uYXZpZ2F0aW9uYWwtc3RhdGVzJztcblxuLyoqXG4gKiBNYWtlcyBuYXZpZ2F0aW9uYWwgdmlldyBzdGF0ZSBhdmFpbGFibGUgdG8gdGhlIGFjdGl2YXRlZCByb3V0ZSB2aWEge0BsaW5rIEFjdGl2YXRlZFJvdXRlI2RhdGF9IHVuZGVyIHRoZSBrZXkge0BsaW5rIFdvcmtiZW5jaFJvdXRlRGF0YS5zdGF0ZX0uXG4gKlxuICogRGVwZW5kaW5nIG9uIHRoZSByb3V0ZSBjb25maWd1cmF0aW9uLCB0aGUgQW5ndWxhciByb3V0ZXIgcnVucyB0aGlzIHJlc29sdmVyIG9uIGV2ZXJ5IG5hdmlnYXRpb24uIFNlZSB7QGxpbmsgUm91dGUjcnVuR3VhcmRzQW5kUmVzb2x2ZXJzfS5cbiAqIFRoZW4sIHdlIHJlc29sdmUgdG8gdGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIGFjdGl2YXRlZCByb3V0ZS5cbiAqXG4gKiBOb3RlIHRoYXQgQW5ndWxhciBwZXJmb3JtcyBhIHJlZmVyZW5jZSBlcXVhbGl0eSBjaGVjayB0byBkZWNpZGUgd2hldGhlciByZXNvbHZlZCBkYXRhIGhhcyBjaGFuZ2VkLlxuICogVGhlcmVmb3JlLCB3ZSByZXNvbHZlIHRvIGB1bmRlZmluZWRgIGlmIHRoZSBzdGF0ZSBvYmplY3QgaXMgZW1wdHkuXG4gKi9cbmV4cG9ydCBjb25zdCByZXNvbHZlTmF2aWdhdGlvbmFsVmlld1N0YXRlOiBSZXNvbHZlRm48RGljdGlvbmFyeSB8IHVuZGVmaW5lZCB8IG51bGw+ID0gcm91dGUgPT4ge1xuICBjb25zdCBuYXZpZ2F0aW9uYWxWaWV3U3RhdGUgPSBnZXROYXZpZ2F0aW9uYWxWaWV3U3RhdGUocm91dGUub3V0bGV0KTtcbiAgcmV0dXJuIGlzRW1wdHkobmF2aWdhdGlvbmFsVmlld1N0YXRlKSA/IHVuZGVmaW5lZCA6IG5hdmlnYXRpb25hbFZpZXdTdGF0ZTtcbn07XG5cbi8qKlxuICogUmV0dXJucyBuYXZpZ2F0aW9uYWwgdmlldyBzdGF0ZSBmcm9tIGVpdGhlciB0aGUgbmF2aWdhdGlvbiBvciB0aGUgYWN0aXZhdGVkIHJvdXRlLlxuICovXG5mdW5jdGlvbiBnZXROYXZpZ2F0aW9uYWxWaWV3U3RhdGUodmlld0lkOiBzdHJpbmcpOiBEaWN0aW9uYXJ5IHwgdW5kZWZpbmVkIHtcbiAgY29uc3Qgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG5cbiAgY29uc3QgbmF2aWdhdGlvbmFsVmlld1N0YXRlID0gV29ya2JlbmNoTmF2aWdhdGlvbmFsU3RhdGVzLmZyb21OYXZpZ2F0aW9uKHJvdXRlci5nZXRDdXJyZW50TmF2aWdhdGlvbigpISk/LnZpZXdTdGF0ZXNbdmlld0lkXTtcbiAgaWYgKG5hdmlnYXRpb25hbFZpZXdTdGF0ZSkge1xuICAgIHJldHVybiBuYXZpZ2F0aW9uYWxWaWV3U3RhdGU7XG4gIH1cblxuICBjb25zdCBhY3RpdmF0ZWRSb3V0ZSA9IHJvdXRlci5yb3V0ZXJTdGF0ZS5zbmFwc2hvdC5yb290LmNoaWxkcmVuLmZpbmQoY2hpbGQgPT4gY2hpbGQub3V0bGV0ID09PSB2aWV3SWQpO1xuICByZXR1cm4gYWN0aXZhdGVkUm91dGU/LmRhdGE/LltXb3JrYmVuY2hSb3V0ZURhdGEuc3RhdGVdO1xufVxuXG4vKipcbiAqIFRlc3RzIHdoZXRoZXIgdGhlIHBhc3NlZCBkaWN0aW9uYXJ5IGlzIGVtcHR5IG9yIGNvbnRhaW5zIG9ubHkgYHVuZGVmaW5lZGAgb3IgZW1wdHkgb2JqZWN0IHZhbHVlcy5cbiAqL1xuZnVuY3Rpb24gaXNFbXB0eShkaWN0aW9uYXJ5OiBEaWN0aW9uYXJ5IHwgdW5kZWZpbmVkIHwgbnVsbCk6IGJvb2xlYW4ge1xuICBpZiAoZGljdGlvbmFyeSA9PT0gdW5kZWZpbmVkIHx8IGRpY3Rpb25hcnkgPT09IG51bGwpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBpZiAoIU9iamVjdC5rZXlzKGRpY3Rpb25hcnkpLmxlbmd0aCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIGlmIChPYmplY3QudmFsdWVzKGRpY3Rpb25hcnkpLmV2ZXJ5KHZhbHVlID0+IHZhbHVlID09PSB1bmRlZmluZWQgfHwgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgIU9iamVjdC5rZXlzKHZhbHVlKS5sZW5ndGgpKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cbiJdfQ==
@@ -1,36 +0,0 @@
1
- /*
2
- * Copyright (c) 2018-2022 Swiss Federal Railways
3
- *
4
- * This program and the accompanying materials are made
5
- * available under the terms of the Eclipse Public License 2.0
6
- * which is available at https://www.eclipse.org/legal/epl-2.0/
7
- *
8
- * SPDX-License-Identifier: EPL-2.0
9
- */
10
- import { inject } from '@angular/core';
11
- import { WorkbenchRouter } from '../routing/workbench-router.service';
12
- /**
13
- * Invokes {@link WorkbenchViewPreDestroy#onWorkbenchViewPreDestroy} lifecycle hook if implemented by the component.
14
- */
15
- export const canDeactivateWorkbenchView = (component, currentRoute) => {
16
- // Depending on the route configuration, this guard can be called even if the component is not to be destroyed.
17
- // Therefore, we need to check if the view is actually being closed before invoking the `onWorkbenchViewPreDestroy`
18
- // lifecycle hook. For an example, see {@link provideMicrofrontendRoutes}.
19
- if (isViewToBeRemoved(currentRoute.outlet) && implementsWorkbenchViewPreDestroyHook(component)) {
20
- return component.onWorkbenchViewPreDestroy();
21
- }
22
- return true;
23
- };
24
- /**
25
- * Tests if given view is to be removed.
26
- */
27
- function isViewToBeRemoved(currentViewId) {
28
- return inject(WorkbenchRouter).getCurrentNavigationContext()?.layoutDiff.removedViews.includes(currentViewId) ?? false;
29
- }
30
- /**
31
- * Tests if given component implements {@link WorkbenchViewPreDestroy} interface.
32
- */
33
- function implementsWorkbenchViewPreDestroyHook(component) {
34
- return typeof component?.onWorkbenchViewPreDestroy === 'function';
35
- }
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2JlbmNoLXZpZXctcHJlLWRlc3Ryb3kuZ3VhcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi93b3JrYmVuY2gvc3JjL2xpYi92aWV3L3dvcmtiZW5jaC12aWV3LXByZS1kZXN0cm95Lmd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBSUgsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNyQyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFFcEU7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBNkIsQ0FBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEVBQUU7SUFDOUYsK0dBQStHO0lBQy9HLG1IQUFtSDtJQUNuSCwwRUFBMEU7SUFDMUUsSUFBSSxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLElBQUkscUNBQXFDLENBQUMsU0FBUyxDQUFDLEVBQUU7UUFDOUYsT0FBTyxTQUFTLENBQUMseUJBQXlCLEVBQUUsQ0FBQztLQUM5QztJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyxDQUFDO0FBRUY7O0dBRUc7QUFDSCxTQUFTLGlCQUFpQixDQUFDLGFBQXFCO0lBQzlDLE9BQU8sTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDLDJCQUEyQixFQUFFLEVBQUUsVUFBVSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLElBQUksS0FBSyxDQUFDO0FBQ3pILENBQUM7QUFFRDs7R0FFRztBQUNILFNBQVMscUNBQXFDLENBQUMsU0FBa0I7SUFDL0QsT0FBTyxPQUFRLFNBQXFDLEVBQUUseUJBQXlCLEtBQUssVUFBVSxDQUFDO0FBQ2pHLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjIgU3dpc3MgRmVkZXJhbCBSYWlsd2F5c1xuICpcbiAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGVcbiAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wXG4gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC9cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMFxuICovXG5cbmltcG9ydCB7Q2FuRGVhY3RpdmF0ZUZufSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtXb3JrYmVuY2hWaWV3UHJlRGVzdHJveX0gZnJvbSAnLi4vd29ya2JlbmNoLm1vZGVsJztcbmltcG9ydCB7aW5qZWN0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7V29ya2JlbmNoUm91dGVyfSBmcm9tICcuLi9yb3V0aW5nL3dvcmtiZW5jaC1yb3V0ZXIuc2VydmljZSc7XG5cbi8qKlxuICogSW52b2tlcyB7QGxpbmsgV29ya2JlbmNoVmlld1ByZURlc3Ryb3kjb25Xb3JrYmVuY2hWaWV3UHJlRGVzdHJveX0gbGlmZWN5Y2xlIGhvb2sgaWYgaW1wbGVtZW50ZWQgYnkgdGhlIGNvbXBvbmVudC5cbiAqL1xuZXhwb3J0IGNvbnN0IGNhbkRlYWN0aXZhdGVXb3JrYmVuY2hWaWV3OiBDYW5EZWFjdGl2YXRlRm48dW5rbm93bj4gPSAoY29tcG9uZW50LCBjdXJyZW50Um91dGUpID0+IHtcbiAgLy8gRGVwZW5kaW5nIG9uIHRoZSByb3V0ZSBjb25maWd1cmF0aW9uLCB0aGlzIGd1YXJkIGNhbiBiZSBjYWxsZWQgZXZlbiBpZiB0aGUgY29tcG9uZW50IGlzIG5vdCB0byBiZSBkZXN0cm95ZWQuXG4gIC8vIFRoZXJlZm9yZSwgd2UgbmVlZCB0byBjaGVjayBpZiB0aGUgdmlldyBpcyBhY3R1YWxseSBiZWluZyBjbG9zZWQgYmVmb3JlIGludm9raW5nIHRoZSBgb25Xb3JrYmVuY2hWaWV3UHJlRGVzdHJveWBcbiAgLy8gbGlmZWN5Y2xlIGhvb2suIEZvciBhbiBleGFtcGxlLCBzZWUge0BsaW5rIHByb3ZpZGVNaWNyb2Zyb250ZW5kUm91dGVzfS5cbiAgaWYgKGlzVmlld1RvQmVSZW1vdmVkKGN1cnJlbnRSb3V0ZS5vdXRsZXQpICYmIGltcGxlbWVudHNXb3JrYmVuY2hWaWV3UHJlRGVzdHJveUhvb2soY29tcG9uZW50KSkge1xuICAgIHJldHVybiBjb21wb25lbnQub25Xb3JrYmVuY2hWaWV3UHJlRGVzdHJveSgpO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59O1xuXG4vKipcbiAqIFRlc3RzIGlmIGdpdmVuIHZpZXcgaXMgdG8gYmUgcmVtb3ZlZC5cbiAqL1xuZnVuY3Rpb24gaXNWaWV3VG9CZVJlbW92ZWQoY3VycmVudFZpZXdJZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiBpbmplY3QoV29ya2JlbmNoUm91dGVyKS5nZXRDdXJyZW50TmF2aWdhdGlvbkNvbnRleHQoKT8ubGF5b3V0RGlmZi5yZW1vdmVkVmlld3MuaW5jbHVkZXMoY3VycmVudFZpZXdJZCkgPz8gZmFsc2U7XG59XG5cbi8qKlxuICogVGVzdHMgaWYgZ2l2ZW4gY29tcG9uZW50IGltcGxlbWVudHMge0BsaW5rIFdvcmtiZW5jaFZpZXdQcmVEZXN0cm95fSBpbnRlcmZhY2UuXG4gKi9cbmZ1bmN0aW9uIGltcGxlbWVudHNXb3JrYmVuY2hWaWV3UHJlRGVzdHJveUhvb2soY29tcG9uZW50OiB1bmtub3duKTogY29tcG9uZW50IGlzIFdvcmtiZW5jaFZpZXdQcmVEZXN0cm95IHtcbiAgcmV0dXJuIHR5cGVvZiAoY29tcG9uZW50IGFzIFdvcmtiZW5jaFZpZXdQcmVEZXN0cm95KT8ub25Xb3JrYmVuY2hWaWV3UHJlRGVzdHJveSA9PT0gJ2Z1bmN0aW9uJztcbn1cbiJdfQ==
@@ -1,15 +0,0 @@
1
- /*
2
- * Copyright (c) 2018-2022 Swiss Federal Railways
3
- *
4
- * This program and the accompanying materials are made
5
- * available under the terms of the Eclipse Public License 2.0
6
- * which is available at https://www.eclipse.org/legal/epl-2.0/
7
- *
8
- * SPDX-License-Identifier: EPL-2.0
9
- */
10
- /**
11
- * Configures the SCION Workbench module.
12
- */
13
- export class WorkbenchModuleConfig {
14
- }
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2JlbmNoLW1vZHVsZS1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi93b3JrYmVuY2gvc3JjL2xpYi93b3JrYmVuY2gtbW9kdWxlLWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQVVIOztHQUVHO0FBQ0gsTUFBTSxPQUFnQixxQkFBcUI7Q0FvSzFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIyIFN3aXNzIEZlZGVyYWwgUmFpbHdheXNcbiAqXG4gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlXG4gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMFxuICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjBcbiAqL1xuXG5pbXBvcnQge0NvbXBvbmVudFR5cGV9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHtUeXBlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TG9nQXBwZW5kZXIsIExvZ0xldmVsfSBmcm9tICcuL2xvZ2dpbmcnO1xuaW1wb3J0IHtNaWNyb2Zyb250ZW5kUGxhdGZvcm1Db25maWd9IGZyb20gJ0BzY2lvbi9taWNyb2Zyb250ZW5kLXBsYXRmb3JtJztcbmltcG9ydCB7TWljcm9mcm9udGVuZFBsYXRmb3JtQ29uZmlnTG9hZGVyfSBmcm9tICcuL21pY3JvZnJvbnRlbmQtcGxhdGZvcm0vbWljcm9mcm9udGVuZC1wbGF0Zm9ybS1jb25maWctbG9hZGVyJztcbmltcG9ydCB7V29ya2JlbmNoTGF5b3V0Rm4sIFdvcmtiZW5jaFBlcnNwZWN0aXZlc30gZnJvbSAnLi9wZXJzcGVjdGl2ZS93b3JrYmVuY2gtcGVyc3BlY3RpdmUubW9kZWwnO1xuaW1wb3J0IHtXb3JrYmVuY2hTdG9yYWdlfSBmcm9tICcuL3N0b3JhZ2Uvd29ya2JlbmNoLXN0b3JhZ2UnO1xuXG4vKipcbiAqIENvbmZpZ3VyZXMgdGhlIFNDSU9OIFdvcmtiZW5jaCBtb2R1bGUuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBXb3JrYmVuY2hNb2R1bGVDb25maWcge1xuICAvKipcbiAgICogQWxsb3dzIGN1c3RvbWl6aW5nIHRoZSBhcHBlYXJhbmNlIG9mIGEgdmlldyB0YWIgYnkgcHJvdmlkaW5nIGEgY3VzdG9tIHZpZXcgdGFiIGNvbXBvbmVudC5cbiAgICpcbiAgICogSW5qZWN0IHtAbGluayBXb3JrYmVuY2hWaWV3fSBhbmQge0BsaW5rIFZJRVdfVEFCX0NPTlRFWFR9IHRva2VuIGludG8gdGhlIGNvbXBvbmVudCB0byBnZXQgYSByZWZlcmVuY2UgdG8gdGhlIHZpZXcgYW5kIHRoZSByZW5kZXJpbmcgY29udGV4dC5cbiAgICpcbiAgICpcbiAgICogLS0tXG4gICAqIEV4YW1wbGU6XG4gICAqXG4gICAqIEBDb21wb25lbnQoLi4uKVxuICAgKiBleHBvcnQgY2xhc3MgVmlld1RhYkNvbnRlbnRDb21wb25lbnQge1xuICAgKiAgIGNvbnN0cnVjdG9yKHZpZXc6IFdvcmtiZW5jaFZpZXcsIEBJbmplY3QoVklFV19UQUJfQ09OVEVYVCkgY29udGV4dDogVmlld1RhYkNvbnRleHQpIHt9XG4gICAqIH1cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCB2aWV3VGFiQ29tcG9uZW50PzogQ29tcG9uZW50VHlwZTxhbnk+O1xuXG4gIC8qKlxuICAgKiBDb250cm9scyB3aGljaCBidWlsdC1pbiBtZW51IGl0ZW1zIHRvIGRpc3BsYXkgaW4gdGhlIHZpZXcgY29udGV4dCBtZW51LlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHZpZXdNZW51SXRlbXM/OiBWaWV3TWVudUl0ZW1zQ29uZmlnO1xuXG4gIC8qKlxuICAgKiBDb25maWd1cmVzIGxvZ2dpbmcgZm9yIHRoZSB3b3JrYmVuY2guXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgbG9nZ2luZz86IHtcbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBtaW5pbXVtIHNldmVyaXR5IGxldmVsIGEgbG9nIG1lc3NhZ2UgbXVzdCBoYXZlIGluIG9yZGVyIHRvIGJlIGxvZ2dlZC4gQnkgZGVmYXVsdCwgaWYgbm90IHNwZWNpZmllZCwgaXQgaXMgc2V0IHRvIHtAbGluayBMb2dMZXZlbCNJTkZPfS5cbiAgICAgKlxuICAgICAqIEF0IHJ1bnRpbWUsIHlvdSBjYW4gY2hhbmdlIHRoZSBtaW5pbXVtIHJlcXVpcmVkIGxvZyBsZXZlbCBieSBzZXR0aW5nIHRoZSBgbG9nbGV2ZWxgIHF1ZXJ5IHBhcmFtZXRlci5cbiAgICAgKi9cbiAgICBsb2dMZXZlbD86IExvZ0xldmVsO1xuICAgIC8qKlxuICAgICAqIFJlZ2lzdGVycyBsb2cgYXBwZW5kZXJzIHRvIG91dHB1dCBsb2cgbWVzc2FnZXMuIE11bHRpcGxlIGFwcGVuZGVycyBhcmUgYWxsb3dlZC4gQnkgZGVmYXVsdCwgaWYgbm90IHNwZWNpZmllZCwgbG9nIG1lc3NhZ2VzIGFyZSB3cml0dGVuIHRvIHRoZSBjb25zb2xlLlxuICAgICAqL1xuICAgIGxvZ0FwcGVuZGVycz86IFR5cGU8TG9nQXBwZW5kZXI+W107XG4gIH07XG5cbiAgLyoqXG4gICAqIEFsbG93cyBjb25maWd1cmluZyB0aGUgd29ya2JlbmNoIHN0YXJ0dXAuXG4gICAqXG4gICAqIFRoZSB7QGxpbmsgV29ya2JlbmNoTGF1bmNoZXJ9IGlzIHVzZWQgdG8gc3RhcnQgdGhlIHdvcmtiZW5jaC4gRHVyaW5nIHN0YXJ0dXAsIGl0IHJ1bnMgcmVnaXN0ZXJlZCB3b3JrYmVuY2ggaW5pdGlhbGl6ZXJzXG4gICAqIGFuZCB3YWl0cyBmb3IgdGhlbSB0byBjb21wbGV0ZS4gWW91IGNhbiBpbmplY3Qge0BsaW5rIFdvcmtiZW5jaFN0YXJ0dXB9IHRvIGdldCBub3RpZmllZCB3aGVuIHRoZSBzdGFydHVwIGlzIGNvbXBsZXRlLlxuICAgKlxuICAgKiBSZWZlciB0byB7QGxpbmsgV29ya2JlbmNoSW5pdGlhbGl6ZXJ9IHRvIGxlYXJuIGhvdyB0byByZWdpc3RlciBhIHdvcmtiZW5jaCBpbml0aWFsaXplci5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBzdGFydHVwPzoge1xuICAgIC8qKlxuICAgICAqIENvbmZpZ3VyZXMgdGhlIHdvcmtiZW5jaCBsYXVuY2hpbmcgc3RyYXRlZ3kuXG4gICAgICpcbiAgICAgKiAgLSAqKkFQUF9JTklUSUFMSVpFUioqXG4gICAgICogICBMYXVuY2hlcyB0aGUgd29ya2JlbmNoIGluIGFuIEFuZ3VsYXIgYEFQUF9JTklUSUFMSVpFUmAsIHdoaWNoIGlzIGJlZm9yZSBib290c3RyYXBwaW5nIHRoZSBhcHAgY29tcG9uZW50LlxuICAgICAqXG4gICAgICogLSAqKkxBWlkqKiAod2hpY2ggaXMgdGhlIGRlZmF1bHQpXG4gICAgICogICBMYXVuY2hlcyB0aGUgd29ya2JlbmNoIGF0IHRoZSBsYXRlc3Qgd2hlbiBib290c3RyYXBwaW5nIHRoZSB3b3JrYmVuY2ggcm9vdCBjb21wb25lbnQgYDx3Yi13b3JrYmVuY2g+YC5cbiAgICAgKlxuICAgICAqICAgV2l0aCB0aGlzIHN0cmF0ZWd5LCB5b3UgYXJlIGZsZXhpYmxlIHdoZW4gdG8gc3RhcnQgdGhlIHdvcmtiZW5jaC4gWW91IGNhbiBzdGFydCB0aGUgd29ya2JlbmNoIGV4cGxpY2l0bHkgYnlcbiAgICAgKiAgIGNhbGxpbmcge0BsaW5rIFdvcmtiZW5jaExhdW5jaGVyI2xhdW5jaH0sIGUuZy4sIHRvIGxhdW5jaCB0aGUgd29ya2JlbmNoIGZyb20gYSByb3V0ZSBndWFyZCBvciBhcHAgaW5pdGlhbGl6ZXIsXG4gICAgICogICBvciBzdGFydCBpdCBhdXRvbWF0aWNhbGx5IHdoZW4gYWRkaW5nIHRoZSB3b3JrYmVuY2ggcm9vdCBjb21wb25lbnQgYDx3Yi13b3JrYmVuY2g+YCB0byB0aGUgQW5ndWxhciBjb21wb25lbnRcbiAgICAgKiAgIHRyZWUuXG4gICAgICovXG4gICAgbGF1bmNoZXI/OiAnQVBQX0lOSVRJQUxJWkVSJyB8ICdMQVpZJztcblxuICAgIC8qKlxuICAgICAqIFRoZSBzcGxhc2ggY29tcG9uZW50IHRvIGRpc3BsYXkgd2hlbiBtb3VudGluZyB0aGUgd29ya2JlbmNoIHJvb3QgY29tcG9uZW50IGA8d2Itd29ya2JlbmNoPmAgdG8gdGhlIERPTSBiZWZvcmUgdGhlXG4gICAgICogd29ya2JlbmNoIHN0YXJ0dXAgaGFzIGZpbmlzaGVkLlxuICAgICAqXG4gICAgICogTm90ZSB0aGF0IHdoZW4gbGF1bmNoaW5nIHRoZSB3b3JrYmVuY2ggaW4gYW4gQW5ndWxhciBgQVBQX0lOSVRJQUxJWkVSYCwgbm8gc3BsYXNoIHdpbGwgZGlzcGxheSBzaW5jZSB0aGUgd29ya2JlbmNoXG4gICAgICogd2lsbCBzdGFydCB1cGZyb250LlxuICAgICAqL1xuICAgIHNwbGFzaD86IENvbXBvbmVudFR5cGU8dW5rbm93bj47XG4gIH07XG5cbiAgLyoqXG4gICAqIENvbmZpZ3VyZXMgbWljcm9mcm9udGVuZCBzdXBwb3J0IGluIHRoZSB3b3JrYmVuY2gsIGFsbG93aW5nIHRoZSBpbnRlZ3JhdGlvbiBvZiBtaWNyb2Zyb250ZW5kcyBhcyB3b3JrYmVuY2ggdmlld3Mgb3JcbiAgICogd29ya2JlbmNoIHBvcHVwcy5cbiAgICpcbiAgICogVGhlIHdvcmtiZW5jaCB1c2VzIHRoZSBcIlNDSU9OIE1pY3JvZnJvbnRlbmQgUGxhdGZvcm1cIiBmb3IgcHJvdmlkaW5nIG1pY3JvZnJvbnRlbmQgc3VwcG9ydC4gVG8gbGVhcm4gbW9yZSBhYm91dCB0aGVcbiAgICogXCJTQ0lPTiBNaWNyb2Zyb250ZW5kIFBsYXRmb3JtXCIsIHJlZmVyIHRvIGh0dHBzOi8vZ2l0aHViLmNvbS9TY2h3ZWl6ZXJpc2NoZUJ1bmRlc2JhaG5lbi9zY2lvbi1taWNyb2Zyb250ZW5kLXBsYXRmb3JtLlxuICAgKlxuICAgKiBUaGUgd29ya2JlbmNoIGFsbG93cyBhbnkgd2ViIHBhZ2UgdG8gYmUgZW1iZWRkZWQgYXMgYSB3b3JrYmVuY2ggdmlldyBvciB3b3JrYmVuY2ggcG9wdXAuIFRoZSB3ZWIgYXBwIGhhcyB0byBwcm92aWRlXG4gICAqIGEgbWFuaWZlc3QgaW4gd2hpY2ggaXQgZGVzY3JpYmVzIGl0cyB2aWV3cyBhbmQgcG9wdXBzLiBUbyBpbnRlZ3JhdGUgYSB0aGlyZC1wYXJ0eSBhcHBsaWNhdGlvbiB3aGVyZSBjdXN0b21pemF0aW9uIGlzIG5vdFxuICAgKiBwb3NzaWJsZSwgdGhlIGhvc3QgYXBwbGljYXRpb24gY2FuIHByb3ZpZGUgYSBtYW5pZmVzdCBmb3IgdGhhdCBhcHBsaWNhdGlvbi4gSWYgZW1iZWRkZWQgY29udGVudCBuZWVkcyB0byBpbnRlcmFjdCB3aXRoXG4gICAqIHRoZSB3b3JrYmVuY2gsIHRoZSB3ZWIgYXBwIGNhbiB1c2UgdGhlIGxpYnJhcnkgYEBzY2lvbi93b3JrYmVuY2gtY2xpZW50YCwgYSBwdXJlIFR5cGVTY3JpcHQgbGlicmFyeSBiYXNlZCBvbiB0aGVcbiAgICogd2ViIHN0YWNrLWFnbm9zdGljIGBAc2Npb24vbWljcm9mcm9udGVuZC1wbGF0Zm9ybWAgbGlicmFyeS5cbiAgICpcbiAgICogVGhlIHdvcmtiZW5jaCBpbnRlZ3JhdGVzIG1pY3JvZnJvbnRlbmRzIHRocm91Z2ggc28tY2FsbGVkIGludGVudHMsIGEgbWVjaGFuaXNtIGtub3duIGZyb20gQW5kcm9pZCBkZXZlbG9wbWVudCwgZW5hYmxpbmdcbiAgICogY29udHJvbGxlZCBjb2xsYWJvcmF0aW9uIGFjcm9zcyBhcHBsaWNhdGlvbiBib3VuZGFyaWVzLiBcIlNDSU9OIE1pY3JvZnJvbnRlbmQgUGxhdGZvcm0gRGV2VG9vbHNcIiBjYW4gaGVscCB0byBpbnNwZWN0XG4gICAqIGludGVncmF0ZWQgYXBwbGljYXRpb25zIGFuZCBkZXBlbmRlbmNpZXMuIFRoZSBEZXZUb29scyBhcmUgYXZhaWxhYmxlIGluIHRoZSBmb3JtIG9mIGEgbWljcm9mcm9udGVuZCB0aGF0IGNhbiBiZSBlbWJlZGRlZFxuICAgKiBsaWtlIGFueSBvdGhlciBtaWNyb2Zyb250ZW5kLiBSZWZlciB0byB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgZGV0YWlsZWQgaW5zdHJ1Y3Rpb25zIG9uIGhvdyB0byBpbnRlZ3JhdGVcbiAgICogXCJTQ0lPTiBNaWNyb2Zyb250ZW5kIFBsYXRmb3JtIERldlRvb2xzXCIuXG4gICAqXG4gICAqIFR5cGljYWxseSwgdGhlIGhvc3QgYXBwIHByb3ZpZGVzIEFQSSB0byBpbnRlZ3JhdGVkIG1pY3JvIGFwcHMgdmlhIHRoZSBpbnRlbnQgbWVjaGFuaXNtLiBDb25zaWRlciByZWdpc3RlcmluZyBpbnRlbnQgaGFuZGxlcnNcbiAgICogdW5kZXIgdGhlIERJIHRva2VuIHtAbGluayBNSUNST0ZST05URU5EX1BMQVRGT1JNX1BPU1RfU1RBUlRVUH0uXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgbWljcm9mcm9udGVuZFBsYXRmb3JtPzogTWljcm9mcm9udGVuZFBsYXRmb3JtQ29uZmlnIHwgVHlwZTxNaWNyb2Zyb250ZW5kUGxhdGZvcm1Db25maWdMb2FkZXI+O1xuXG4gIC8qKlxuICAgKlxuICAgKiBEZWZpbmVzIHRoZSB3b3JrYmVuY2ggbGF5b3V0LiBNdWx0aXBsZSBsYXlvdXRzIGNhbiBiZSBkZWZpbmVkIGluIHRoZSBmb3JtIG9mIHBlcnNwZWN0aXZlcy5cbiAgICogSWYgbm90IHNldCwgZGVmYXVsdHMgdG8gYSBsYXlvdXQgd2l0aCBvbmx5IGEgbWFpbiBhcmVhLlxuICAgKlxuICAgKiBUaGUgd29ya2JlbmNoIGxheW91dCBpcyBhIGdyaWQgb2YgcGFydHMuIFBhcnRzIGFyZSBhbGlnbmVkIHJlbGF0aXZlIHRvIGVhY2ggb3RoZXIuIEEgcGFydCBpcyBhIHN0YWNrIG9mIHZpZXdzLiBDb250ZW50IGlzXG4gICAqIGRpc3BsYXllZCBpbiB2aWV3cy5cbiAgICpcbiAgICogVGhlIGxheW91dCBjYW4gYmUgZGl2aWRlZCBpbnRvIGEgbWFpbiBhbmQgYSBwZXJpcGhlcmFsIGFyZWEsIHdpdGggdGhlIG1haW4gYXJlYSBhcyB0aGUgcHJpbWFyeSBwbGFjZSBmb3Igb3BlbmluZyB2aWV3cy5cbiAgICogVGhlIHBlcmlwaGVyYWwgYXJlYSBhcnJhbmdlcyBwYXJ0cyBhcm91bmQgdGhlIG1haW4gYXJlYSB0byBwcm92aWRlIG5hdmlnYXRpb24gb3IgY29udGV4dC1zZW5zaXRpdmUgYXNzaXN0YW5jZSB0byBzdXBwb3J0XG4gICAqIHRoZSB1c2VyJ3Mgd29ya2Zsb3cuIERlZmluaW5nIGEgbWFpbiBhcmVhIGlzIG9wdGlvbmFsIGFuZCByZWNvbW1lbmRlZCBmb3IgYXBwbGljYXRpb25zIHJlcXVpcmluZyBhIGRlZGljYXRlZCBhbmQgbWF4aW1pemFibGVcbiAgICogYXJlYSBmb3IgdXNlciBpbnRlcmFjdGlvbi5cbiAgICpcbiAgICogTXVsdGlwbGUgbGF5b3V0cywgY2FsbGVkIHBlcnNwZWN0aXZlcywgYXJlIHN1cHBvcnRlZC4gUGVyc3BlY3RpdmVzIGNhbiBiZSBzd2l0Y2hlZCB3aXRoIG9uZSBwZXJzcGVjdGl2ZSBhY3RpdmUgYXQgYSB0aW1lLlxuICAgKiBQZXJzcGVjdGl2ZXMgc2hhcmUgdGhlIHNhbWUgbWFpbiBhcmVhLCBpZiBhbnkuXG4gICAqXG4gICAqXG4gICAqICMjIEV4YW1wbGUgb2YgYSBsYXlvdXQgdGhhdCBoYXMgYSBtYWluIGFyZWEgYW5kIHRocmVlIHBhcnRzIGluIHRoZSBwZXJpcGhlcmFsIGFyZWE6XG4gICAqXG4gICAqIGBgYHBsYWluXG4gICAqICstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tK1xuICAgKiB8ICB0b3AgICB8ICAgICAgICAgICAgICAgIHxcbiAgICogfCAgbGVmdCAgfCAgICAgICAgICAgICAgICB8XG4gICAqIHwtLS0tLS0tLSsgICBtYWluIGFyZWEgICAgfFxuICAgKiB8IGJvdHRvbSB8ICAgICAgICAgICAgICAgIHxcbiAgICogfCAgbGVmdCAgfCAgICAgICAgICAgICAgICB8XG4gICAqICstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tK1xuICAgKiB8ICAgICAgICAgIGJvdHRvbSAgICAgICAgIHxcbiAgICogKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rXG4gICAqIGBgYFxuICAgKlxuICAgKiBgYGB0c1xuICAgKiBXb3JrYmVuY2hNb2R1bGUuZm9yUm9vdCh7XG4gICAqICAgbGF5b3V0OiAoZmFjdG9yeTogV29ya2JlbmNoTGF5b3V0RmFjdG9yeSkgPT4gZmFjdG9yeVxuICAgKiAgICAgLmFkZFBhcnQoTUFJTl9BUkVBKVxuICAgKiAgICAgLmFkZFBhcnQoJ3RvcExlZnQnLCB7YWxpZ246ICdsZWZ0JywgcmF0aW86IC4yNX0pXG4gICAqICAgICAuYWRkUGFydCgnYm90dG9tTGVmdCcsIHtyZWxhdGl2ZVRvOiAndG9wTGVmdCcsIGFsaWduOiAnYm90dG9tJywgcmF0aW86IC41fSlcbiAgICogICAgIC5hZGRQYXJ0KCdib3R0b20nLCB7YWxpZ246ICdib3R0b20nLCByYXRpbzogLjN9KVxuICAgKiAgICAgLmFkZFZpZXcoJ25hdmlnYXRvcicsIHtwYXJ0SWQ6ICd0b3BMZWZ0JywgYWN0aXZhdGVWaWV3OiB0cnVlfSlcbiAgICogICAgIC5hZGRWaWV3KCdleHBsb3JlcicsIHtwYXJ0SWQ6ICd0b3BMZWZ0J30pXG4gICAqICAgICAuYWRkVmlldygncmVwb3NpdG9yaWVzJywge3BhcnRJZDogJ2JvdHRvbUxlZnQnLCBhY3RpdmF0ZVZpZXc6IHRydWV9KVxuICAgKiAgICAgLmFkZFZpZXcoJ2NvbnNvbGUnLCB7cGFydElkOiAnYm90dG9tJywgYWN0aXZhdGVWaWV3OiB0cnVlfSlcbiAgICogICAgIC5hZGRWaWV3KCdwcm9ibGVtcycsIHtwYXJ0SWQ6ICdib3R0b20nfSlcbiAgICogICAgIC5hZGRWaWV3KCdzZWFyY2gnLCB7cGFydElkOiAnYm90dG9tJ30pXG4gICAqIH0pO1xuICAgKiBgYGBcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBsYXlvdXQ/OiBXb3JrYmVuY2hMYXlvdXRGbiB8IFdvcmtiZW5jaFBlcnNwZWN0aXZlcztcbiAgLyoqXG4gICAqIFByb3ZpZGVzIHBlcnNpc3RlbnQgc3RvcmFnZSB0byB0aGUgU0NJT04gV29ya2JlbmNoLlxuICAgKlxuICAgKiBJZiBub3Qgc2V0LCB0aGUgd29ya2JlbmNoIHVzZXMgdGhlIGJyb3dzZXIncyBsb2NhbCBzdG9yYWdlIGFzIHBlcnNpc3RlbnQgc3RvcmFnZS5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBzdG9yYWdlPzogVHlwZTxXb3JrYmVuY2hTdG9yYWdlPjtcbiAgLyoqXG4gICAqIENvbmZpZ3VyZXMgdGhlIGJlaGF2aW9yIG9mIHdvcmtiZW5jaCBkaWFsb2dzLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGRpYWxvZz86IHtcbiAgICAvKipcbiAgICAgKiBDb25maWd1cmVzIHRoZSBhcmVhIHRvIGJsb2NrIGZvciBhcHBsaWNhdGlvbi1tb2RhbCBkaWFsb2dzLiBJZiBub3Qgc2V0LCBkZWZhdWx0cyB0byBgd29ya2JlbmNoYC5cbiAgICAgKlxuICAgICAqIC0gKip3b3JrYmVuY2g6KiogYmxvY2tzIHRoZSB7QGxpbmsgV29ya2JlbmNoQ29tcG9uZW50fHdvcmtiZW5jaCBlbGVtZW50fSwgc3RpbGwgYWxsb3dpbmcgaW50ZXJhY3Rpb24gd2l0aCBlbGVtZW50cyBvdXRzaWRlIHRoZSB3b3JrYmVuY2ggZWxlbWVudC5cbiAgICAgKlxuICAgICAqIC0gKip2aWV3cG9ydCoqIGJsb2NrcyB0aGUgYnJvd3NlciB2aWV3cG9ydCwgcHJldmVudGluZyBpbnRlcmFjdGlvbiB3aXRoIHRoZSBhcHBsaWNhdGlvbiB1bnRpbCBhcHBsaWNhdGlvbi1tb2RhbCBkaWFsb2dzIGFyZSBjbG9zZWQuXG4gICAgICovXG4gICAgbW9kYWxpdHlTY29wZT86ICd3b3JrYmVuY2gnIHwgJ3ZpZXdwb3J0JztcbiAgfTtcbn1cblxuLyoqXG4gKiBDb250cm9scyB3aGljaCBidWlsdC1pbiBtZW51IGl0ZW1zIHRvIGRpc3BsYXkgaW4gdGhlIHZpZXcgY29udGV4dCBtZW51LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZpZXdNZW51SXRlbXNDb25maWcge1xuICBjbG9zZT86IE1lbnVJdGVtQ29uZmlnO1xuICBjbG9zZU90aGVycz86IE1lbnVJdGVtQ29uZmlnO1xuICBjbG9zZUFsbD86IE1lbnVJdGVtQ29uZmlnO1xuICBjbG9zZVRvVGhlUmlnaHQ/OiBNZW51SXRlbUNvbmZpZztcbiAgY2xvc2VUb1RoZUxlZnQ/OiBNZW51SXRlbUNvbmZpZztcbiAgbW92ZVVwPzogTWVudUl0ZW1Db25maWc7XG4gIG1vdmVSaWdodD86IE1lbnVJdGVtQ29uZmlnO1xuICBtb3ZlRG93bj86IE1lbnVJdGVtQ29uZmlnO1xuICBtb3ZlTGVmdD86IE1lbnVJdGVtQ29uZmlnO1xuICBtb3ZlVG9OZXdXaW5kb3c/OiBNZW51SXRlbUNvbmZpZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNZW51SXRlbUNvbmZpZyB7XG4gIHZpc2libGU/OiBib29sZWFuO1xuICB0ZXh0Pzogc3RyaW5nO1xuICBhY2NlbGVyYXRvcj86IHN0cmluZ1tdO1xuICBncm91cD86IHN0cmluZztcbiAgY3NzQ2xhc3M/OiBzdHJpbmcgfCBzdHJpbmdbXTtcbn1cbiJdfQ==
@@ -1,15 +0,0 @@
1
- import { WorkbenchLayoutV1Migrator } from './workbench-layout-v1-migrator.service';
2
- import * as i0 from "@angular/core";
3
- /**
4
- * Migrates a workbench layout to the latest version.
5
- */
6
- export declare class WorkbenchLayoutMigrator {
7
- private _workbenchLayoutV1Migrator;
8
- constructor(_workbenchLayoutV1Migrator: WorkbenchLayoutV1Migrator);
9
- /**
10
- * Migrates a workbench layout to the latest version.
11
- */
12
- migrate(version: number, json: string): string;
13
- static ɵfac: i0.ɵɵFactoryDeclaration<WorkbenchLayoutMigrator, never>;
14
- static ɵprov: i0.ɵɵInjectableDeclaration<WorkbenchLayoutMigrator>;
15
- }
@@ -1,12 +0,0 @@
1
- import * as i0 from "@angular/core";
2
- /**
3
- * Migrates a workbench layout in version 1 to the latest version.
4
- *
5
- * TODO [Angular 18] Remove migrator.
6
- */
7
- export declare class WorkbenchLayoutV1Migrator {
8
- migrate(json: string): string;
9
- private migrateGridElement;
10
- static ɵfac: i0.ɵɵFactoryDeclaration<WorkbenchLayoutV1Migrator, never>;
11
- static ɵprov: i0.ɵɵInjectableDeclaration<WorkbenchLayoutV1Migrator>;
12
- }
@@ -1,11 +0,0 @@
1
- /**
2
- * Keys for associating microfrontend-specific data with a navigation.
3
- *
4
- * State can be read from {@link ActivatedRoute.data} using the {@link WorkbenchRouteData.state} key.
5
- */
6
- export declare namespace MicrofrontendNavigationalStates {
7
- /**
8
- * Key for associating transient parameters with a navigation.
9
- */
10
- const transientParams = "\u0275transientParams";
11
- }
@@ -1,38 +0,0 @@
1
- import { ActivatedRouteSnapshot, Params, UrlSegment } from '@angular/router';
2
- import { WorkbenchViewCapability } from '@scion/workbench-client';
3
- import { Qualifier } from '@scion/microfrontend-platform';
4
- import { Dictionary } from '@scion/toolkit/util';
5
- export declare namespace MicrofrontendViewRoutes {
6
- /**
7
- * Route prefix to identify routes of microfrontends.
8
- */
9
- const ROUTE_PREFIX = "~";
10
- function isMicrofrontendRoute(route: ActivatedRouteSnapshot | UrlSegment[]): boolean;
11
- /**
12
- * Parses the params of a given microfrontend route. Throws if not a valid microfrontend route.
13
- *
14
- * Note that transient parameters are not part of the URL segments and are only returned if passing a {@link ActivatedRouteSnapshot} object.
15
- */
16
- function parseParams(route: ActivatedRouteSnapshot | UrlSegment[]): MicrofrontendRouteParams;
17
- /**
18
- * Splits given params into two groups of URL and transient params.
19
- *
20
- * URL params are passed with the URL, transient params via transient state. Transient params do not survive a page reload.
21
- */
22
- function splitParams(params: Map<string, any> | Dictionary | undefined, viewCapability: WorkbenchViewCapability): {
23
- urlParams: Dictionary;
24
- transientParams: Dictionary;
25
- };
26
- /**
27
- * Builds the command array to be passed to the workbench router for navigating to a microfrontend view.
28
- *
29
- * Format: ['~', {qualifier}, '<viewCapabilityId>', {params}]
30
- */
31
- function buildRouterNavigateCommand(viewCapabilityId: string, qualifier: Qualifier, params: Params): any[];
32
- }
33
- export interface MicrofrontendRouteParams {
34
- viewCapabilityId: string;
35
- qualifier: Params;
36
- urlParams: Params;
37
- transientParams: Params;
38
- }
@@ -1,12 +0,0 @@
1
- import { ResolveFn } from '@angular/router';
2
- import { Dictionary } from '@scion/toolkit/util';
3
- /**
4
- * Makes navigational view state available to the activated route via {@link ActivatedRoute#data} under the key {@link WorkbenchRouteData.state}.
5
- *
6
- * Depending on the route configuration, the Angular router runs this resolver on every navigation. See {@link Route#runGuardsAndResolvers}.
7
- * Then, we resolve to the current state of the activated route.
8
- *
9
- * Note that Angular performs a reference equality check to decide whether resolved data has changed.
10
- * Therefore, we resolve to `undefined` if the state object is empty.
11
- */
12
- export declare const resolveNavigationalViewState: ResolveFn<Dictionary | undefined | null>;
@@ -1,5 +0,0 @@
1
- import { CanDeactivateFn } from '@angular/router';
2
- /**
3
- * Invokes {@link WorkbenchViewPreDestroy#onWorkbenchViewPreDestroy} lifecycle hook if implemented by the component.
4
- */
5
- export declare const canDeactivateWorkbenchView: CanDeactivateFn<unknown>;