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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (275) hide show
  1. package/_index.scss +7 -5
  2. package/design/_workbench-global-styles.scss +18 -0
  3. package/design/_workbench-icon-font.scss +1 -1
  4. package/design/_workbench-popup-global-styles.scss +1 -1
  5. package/design/{_workbench-view-drag-image-global-styles.scss → _workbench-view-global-styles.scss} +1 -2
  6. package/esm2022/lib/common/class-list.mjs +67 -29
  7. package/esm2022/lib/common/math.util.mjs +16 -0
  8. package/esm2022/lib/common/objects.util.mjs +7 -1
  9. package/esm2022/lib/common/operators.mjs +1 -12
  10. package/esm2022/lib/common/uid.util.mjs +22 -0
  11. package/esm2022/lib/content-projection/content-as-overlay.component.mjs +85 -28
  12. package/esm2022/lib/content-projection/workbench-element-references.mjs +32 -0
  13. package/esm2022/lib/dialog/dialog-header/dialog-header.component.mjs +3 -8
  14. package/esm2022/lib/dialog/movable.directive.mjs +3 -3
  15. package/esm2022/lib/dialog/resizable.directive.mjs +3 -3
  16. package/esm2022/lib/dialog/workbench-dialog.component.mjs +25 -23
  17. package/esm2022/lib/dialog/workbench-dialog.mjs +61 -1
  18. package/esm2022/lib/dialog//311/265workbench-dialog.mjs +98 -60
  19. package/esm2022/lib/dialog//311/265workbench-dialog.service.mjs +26 -23
  20. package/esm2022/lib/executor/latest-task-executor.mjs +55 -0
  21. package/esm2022/lib/executor/single-task-executor.mjs +9 -19
  22. package/esm2022/lib/filter-field/filter-field.component.mjs +5 -5
  23. package/esm2022/lib/layout/grid-element/grid-element.component.mjs +8 -18
  24. package/esm2022/lib/layout/main-area-layout/main-area-layout.component.mjs +18 -21
  25. package/esm2022/lib/layout/migration/model/workbench-layout-migration-v5.model.mjs +11 -0
  26. package/esm2022/lib/layout/migration/model/workbench-layout-migration-v6.model.mjs +11 -0
  27. package/esm2022/lib/layout/migration/workbench-layout-migration-v3.service.mjs +4 -4
  28. package/esm2022/lib/layout/migration/workbench-layout-migration-v5.service.mjs +67 -0
  29. package/esm2022/lib/layout/migration/workbench-layout-migration-v6.service.mjs +59 -0
  30. package/esm2022/lib/layout/stringifier.mjs +70 -0
  31. package/esm2022/lib/layout/workbench-layout.component.mjs +18 -22
  32. package/esm2022/lib/layout/workbench-layout.mjs +1 -1
  33. package/esm2022/lib/layout/workbench-layout.model.mjs +1 -1
  34. package/esm2022/lib/layout/workbench-layout.service.mjs +26 -24
  35. package/esm2022/lib/layout/workbench-layouts.util.mjs +1 -9
  36. package/esm2022/lib/layout/workench-layout-serializer.service.mjs +19 -27
  37. package/esm2022/lib/layout//311/265workbench-layout.factory.mjs +3 -2
  38. package/esm2022/lib/layout//311/265workbench-layout.mjs +73 -62
  39. package/esm2022/lib/logging/logging-support.mjs +7 -13
  40. package/esm2022/lib/logging//311/265logger.mjs +10 -10
  41. package/esm2022/lib/message-box/message-box-footer/message-box-footer.component.mjs +7 -6
  42. package/esm2022/lib/message-box/message-box-header/message-box-header.component.mjs +3 -3
  43. package/esm2022/lib/message-box/workbench-message-box.component.mjs +2 -2
  44. package/esm2022/lib/message-box//311/265workbench-message-box.service.mjs +3 -2
  45. package/esm2022/lib/microfrontend-platform/common/microfrontend.util.mjs +22 -6
  46. package/esm2022/lib/microfrontend-platform/initialization/microfrontend-platform-initializer.service.mjs +28 -21
  47. package/esm2022/lib/microfrontend-platform/initialization/ng-zone-observable-decorator.mjs +3 -3
  48. package/esm2022/lib/microfrontend-platform/initialization/workbench-host-manifest-interceptor.service.mjs +11 -1
  49. package/esm2022/lib/microfrontend-platform/manifest-object-cache.service.mjs +63 -0
  50. package/esm2022/lib/microfrontend-platform/microfrontend-dialog/microfrontend-dialog-capability-validator.interceptor.mjs +5 -4
  51. package/esm2022/lib/microfrontend-platform/microfrontend-dialog/microfrontend-dialog.component.mjs +6 -10
  52. package/esm2022/lib/microfrontend-platform/microfrontend-host-dialog/microfrontend-host-dialog.component.mjs +18 -9
  53. package/esm2022/lib/microfrontend-platform/microfrontend-host-message-box/microfrontend-host-message-box.component.mjs +7 -6
  54. package/esm2022/lib/microfrontend-platform/microfrontend-host-message-box/text-message/text-message.component.mjs +3 -3
  55. package/esm2022/lib/microfrontend-platform/microfrontend-host-popup/microfrontend-host-popup.component.mjs +15 -13
  56. package/esm2022/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box-capability-validator.interceptor.mjs +3 -2
  57. package/esm2022/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box.component.mjs +6 -11
  58. package/esm2022/lib/microfrontend-platform/microfrontend-perspective/microfrontend-perspective-capability-validator.interceptor.mjs +39 -0
  59. package/esm2022/lib/microfrontend-platform/microfrontend-perspective/microfrontend-perspective-installer.service.mjs +120 -0
  60. package/esm2022/lib/microfrontend-platform/microfrontend-perspective/microfrontend-perspective-intent-handler.interceptor.mjs +55 -0
  61. package/esm2022/lib/microfrontend-platform/microfrontend-perspective/workbench-perspective-data.mjs +19 -0
  62. package/esm2022/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup-capability-validator.interceptor.mjs +4 -3
  63. package/esm2022/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup-intent-handler.interceptor.mjs +11 -12
  64. package/esm2022/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup.component.mjs +12 -28
  65. package/esm2022/lib/microfrontend-platform/microfrontend-splash/microfrontend-splash.component.mjs +3 -3
  66. package/esm2022/lib/microfrontend-platform/microfrontend-view/microfrontend-view-command-handler.service.mjs +11 -27
  67. package/esm2022/lib/microfrontend-platform/microfrontend-view/microfrontend-view.component.mjs +91 -71
  68. package/esm2022/lib/microfrontend-platform/public_api.mjs +2 -1
  69. package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-capability-validator.interceptor.mjs +5 -4
  70. package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-intent-handler.interceptor.mjs +18 -16
  71. package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-routes.mjs +30 -8
  72. package/esm2022/lib/microfrontend-platform/stable-capability-id-assigner.interceptor.mjs +32 -0
  73. package/esm2022/lib/microfrontend-platform/workbench-microfrontend-support.mjs +26 -8
  74. package/esm2022/lib/notification/notification-list.component.mjs +4 -8
  75. package/esm2022/lib/notification/notification.component.mjs +4 -5
  76. package/esm2022/lib/notification/notification.service.mjs +5 -4
  77. package/esm2022/lib/page-not-found/page-not-found.component.mjs +5 -7
  78. package/esm2022/lib/part/part-action-bar/part-action-bar.component.mjs +11 -19
  79. package/esm2022/lib/part/part-action-bar/part-action.directive.mjs +4 -4
  80. package/esm2022/lib/part/part-bar/part-bar.component.mjs +333 -264
  81. package/esm2022/lib/part/part-portal.pipe.mjs +8 -8
  82. package/esm2022/lib/part/part.component.mjs +33 -42
  83. package/esm2022/lib/part/view-context-menu/text.component.mjs +16 -12
  84. package/esm2022/lib/part/view-context-menu/view-menu.component.mjs +4 -6
  85. package/esm2022/lib/part/view-context-menu/view-menu.directive.mjs +2 -2
  86. package/esm2022/lib/part/view-context-menu/view-menu.service.mjs +48 -49
  87. package/esm2022/lib/part/view-list/view-list.component.mjs +41 -48
  88. package/esm2022/lib/part/view-list-button/view-list-button.component.mjs +22 -26
  89. package/esm2022/lib/part/view-list-item/view-list-item.component.mjs +15 -17
  90. package/esm2022/lib/part/view-tab/view-tab.component.mjs +99 -110
  91. package/esm2022/lib/part/view-tab-content/view-tab-content.component.mjs +3 -4
  92. package/esm2022/lib/part/view-tab-drag-image/view-tab-drag-image.component.mjs +16 -17
  93. package/esm2022/lib/part/workbench-part-action.registry.mjs +18 -42
  94. package/esm2022/lib/part/workbench-part.model.mjs +10 -1
  95. package/esm2022/lib/part/workbench-part.registry.mjs +11 -45
  96. package/esm2022/lib/part//311/265workbench-part.model.mjs +71 -55
  97. package/esm2022/lib/perspective/workbench-grid-merger.service.mjs +3 -3
  98. package/esm2022/lib/perspective/workbench-perspective.model.mjs +1 -1
  99. package/esm2022/lib/perspective/workbench-perspective.registry.mjs +11 -43
  100. package/esm2022/lib/perspective/workbench-perspective.service.mjs +71 -62
  101. package/esm2022/lib/perspective/workench-perspective-serializer.service.mjs +2 -2
  102. package/esm2022/lib/perspective//311/265workbench-perspective.model.mjs +62 -47
  103. package/esm2022/lib/popup/popup.component.mjs +3 -3
  104. package/esm2022/lib/popup/popup.config.mjs +27 -25
  105. package/esm2022/lib/popup/popup.service.mjs +169 -174
  106. package/esm2022/lib/portal/wb-component-portal.mjs +18 -17
  107. package/esm2022/lib/public_api.mjs +1 -1
  108. package/esm2022/lib/registry/workbench-object-registry.mjs +38 -17
  109. package/esm2022/lib/routing/public_api.mjs +2 -2
  110. package/esm2022/lib/routing/routing.model.mjs +1 -1
  111. package/esm2022/lib/routing/routing.util.mjs +215 -0
  112. package/esm2022/lib/routing/workbench-auxiliary-route-installer.service.mjs +110 -0
  113. package/esm2022/lib/routing/workbench-dialog-differ.mjs +3 -3
  114. package/esm2022/lib/routing/workbench-layout-differ.mjs +3 -10
  115. package/esm2022/lib/routing/workbench-message-box-differ.mjs +3 -3
  116. package/esm2022/lib/routing/workbench-navigational-states.mjs +2 -2
  117. package/esm2022/lib/routing/workbench-popup-differ.mjs +3 -3
  118. package/esm2022/lib/routing/workbench-route-guards.mjs +57 -0
  119. package/esm2022/lib/routing/workbench-url-observer.service.mjs +140 -148
  120. package/esm2022/lib/routing/workbench-view-outlet-differ.mjs +58 -0
  121. package/esm2022/lib/routing//311/265workbench-router.service.mjs +119 -74
  122. package/esm2022/lib/startup/splash/splash.component.mjs +3 -3
  123. package/esm2022/lib/startup/workbench-launcher.service.mjs +22 -10
  124. package/esm2022/lib/testing/workbench.provider.mjs +2 -2
  125. package/esm2022/lib/theme/workbench-theme-switcher.service.mjs +15 -19
  126. package/esm2022/lib/view/public_api.mjs +1 -2
  127. package/esm2022/lib/view/view-move-handler.service.mjs +71 -56
  128. package/esm2022/lib/view/view-portal.pipe.mjs +7 -7
  129. package/esm2022/lib/view/view.component.mjs +54 -42
  130. package/esm2022/lib/view/workbench-view.model.mjs +1 -1
  131. package/esm2022/lib/view/workbench-view.registry.mjs +11 -45
  132. package/esm2022/lib/view//311/265workbench-view.model.mjs +183 -153
  133. package/esm2022/lib/view-dnd/grid-drop-targets.util.mjs +2 -2
  134. package/esm2022/lib/view-dnd/view-drag.service.mjs +87 -71
  135. package/esm2022/lib/view-dnd/view-drop-placeholder-renderer.service.mjs +6 -6
  136. package/esm2022/lib/view-dnd/view-drop-zone.directive.mjs +6 -6
  137. package/esm2022/lib/view-dnd/view-tab-drag-image-renderer.service.mjs +43 -56
  138. package/esm2022/lib/workbench-config.mjs +2 -2
  139. package/esm2022/lib/workbench-id.mjs +3 -3
  140. package/esm2022/lib/workbench.component.mjs +66 -54
  141. package/esm2022/lib/workbench.constants.mjs +1 -5
  142. package/esm2022/lib/workbench.model.mjs +1 -1
  143. package/esm2022/lib/workbench.provider.mjs +3 -9
  144. package/esm2022/lib/workbench.service.mjs +1 -1
  145. package/esm2022/lib//311/265workbench.service.mjs +38 -42
  146. package/fesm2022/scion-workbench.mjs +4054 -3276
  147. package/fesm2022/scion-workbench.mjs.map +1 -1
  148. package/lib/common/class-list.d.ts +35 -22
  149. package/lib/common/math.util.d.ts +7 -0
  150. package/lib/common/objects.util.d.ts +4 -0
  151. package/lib/common/operators.d.ts +1 -6
  152. package/lib/common/uid.util.d.ts +9 -0
  153. package/lib/content-projection/content-as-overlay.component.d.ts +39 -22
  154. package/lib/content-projection/workbench-element-references.d.ts +13 -0
  155. package/lib/dialog/workbench-dialog.component.d.ts +3 -2
  156. package/lib/dialog/workbench-dialog.d.ts +57 -13
  157. package/lib/dialog//311/265workbench-dialog.d.ts +38 -24
  158. package/lib/dialog//311/265workbench-dialog.service.d.ts +10 -11
  159. package/lib/executor/latest-task-executor.d.ts +26 -0
  160. package/lib/executor/single-task-executor.d.ts +5 -8
  161. package/lib/filter-field/filter-field.component.d.ts +1 -1
  162. package/lib/layout/grid-element/grid-element.component.d.ts +1 -8
  163. package/lib/layout/main-area-layout/main-area-layout.component.d.ts +0 -4
  164. package/lib/layout/migration/model/workbench-layout-migration-v5.model.d.ts +36 -0
  165. package/lib/layout/migration/model/workbench-layout-migration-v6.model.d.ts +35 -0
  166. package/lib/layout/migration/workbench-layout-migration-v5.service.d.ts +12 -0
  167. package/lib/layout/migration/workbench-layout-migration-v6.service.d.ts +12 -0
  168. package/lib/layout/stringifier.d.ts +26 -0
  169. package/lib/layout/workbench-layout.component.d.ts +4 -5
  170. package/lib/layout/workbench-layout.d.ts +9 -6
  171. package/lib/layout/workbench-layout.model.d.ts +4 -3
  172. package/lib/layout/workbench-layout.service.d.ts +14 -16
  173. package/lib/layout/workbench-layouts.util.d.ts +0 -6
  174. package/lib/layout/workench-layout-serializer.service.d.ts +13 -16
  175. package/lib/layout//311/265workbench-layout.d.ts +18 -19
  176. package/lib/layout//311/265workbench-layout.factory.d.ts +3 -2
  177. package/lib/logging//311/265logger.d.ts +2 -3
  178. package/lib/microfrontend-platform/common/microfrontend.util.d.ts +5 -1
  179. package/lib/microfrontend-platform/initialization/microfrontend-platform-initializer.service.d.ts +7 -3
  180. package/lib/microfrontend-platform/manifest-object-cache.service.d.ts +33 -0
  181. package/lib/microfrontend-platform/microfrontend-host-dialog/microfrontend-host-dialog.component.d.ts +3 -6
  182. package/lib/microfrontend-platform/microfrontend-host-message-box/microfrontend-host-message-box.component.d.ts +2 -1
  183. package/lib/microfrontend-platform/microfrontend-host-message-box/text-message/text-message.component.d.ts +1 -1
  184. package/lib/microfrontend-platform/microfrontend-host-popup/microfrontend-host-popup.component.d.ts +2 -1
  185. package/lib/microfrontend-platform/microfrontend-perspective/microfrontend-perspective-capability-validator.interceptor.d.ts +10 -0
  186. package/lib/microfrontend-platform/microfrontend-perspective/microfrontend-perspective-installer.service.d.ts +24 -0
  187. package/lib/microfrontend-platform/microfrontend-perspective/microfrontend-perspective-intent-handler.interceptor.d.ts +20 -0
  188. package/lib/microfrontend-platform/microfrontend-perspective/workbench-perspective-data.d.ts +9 -0
  189. package/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup-intent-handler.interceptor.d.ts +4 -8
  190. package/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup.component.d.ts +0 -4
  191. package/lib/microfrontend-platform/microfrontend-view/microfrontend-view-command-handler.service.d.ts +5 -12
  192. package/lib/microfrontend-platform/microfrontend-view/microfrontend-view.component.d.ts +23 -33
  193. package/lib/microfrontend-platform/public_api.d.ts +1 -0
  194. package/lib/microfrontend-platform/routing/microfrontend-view-capability-validator.interceptor.d.ts +1 -1
  195. package/lib/microfrontend-platform/routing/microfrontend-view-intent-handler.interceptor.d.ts +3 -7
  196. package/lib/microfrontend-platform/routing/microfrontend-view-routes.d.ts +9 -2
  197. package/lib/microfrontend-platform/stable-capability-id-assigner.interceptor.d.ts +11 -0
  198. package/lib/notification/notification-list.component.d.ts +0 -2
  199. package/lib/page-not-found/page-not-found.component.d.ts +1 -0
  200. package/lib/part/part-action-bar/part-action-bar.component.d.ts +3 -4
  201. package/lib/part/part-action-bar/part-action.directive.d.ts +2 -2
  202. package/lib/part/part-bar/part-bar.component.d.ts +73 -63
  203. package/lib/part/part-portal.pipe.d.ts +3 -5
  204. package/lib/part/part.component.d.ts +9 -12
  205. package/lib/part/view-context-menu/text.component.d.ts +3 -4
  206. package/lib/part/view-context-menu/view-menu.directive.d.ts +1 -1
  207. package/lib/part/view-context-menu/view-menu.service.d.ts +13 -17
  208. package/lib/part/view-list/view-list.component.d.ts +8 -21
  209. package/lib/part/view-list-button/view-list-button.component.d.ts +8 -11
  210. package/lib/part/view-list-item/view-list-item.component.d.ts +3 -7
  211. package/lib/part/view-tab/view-tab.component.d.ts +19 -29
  212. package/lib/part/view-tab-drag-image/view-tab-drag-image.component.d.ts +4 -4
  213. package/lib/part/workbench-part-action.registry.d.ts +3 -23
  214. package/lib/part/workbench-part.model.d.ts +8 -27
  215. package/lib/part/workbench-part.registry.d.ts +3 -26
  216. package/lib/part//311/265workbench-part.model.d.ts +23 -17
  217. package/lib/perspective/workbench-perspective.model.d.ts +18 -25
  218. package/lib/perspective/workbench-perspective.registry.d.ts +3 -26
  219. package/lib/perspective/workbench-perspective.service.d.ts +16 -14
  220. package/lib/perspective/workench-perspective-serializer.service.d.ts +1 -1
  221. package/lib/perspective//311/265workbench-perspective.model.d.ts +30 -21
  222. package/lib/popup/popup.config.d.ts +11 -10
  223. package/lib/popup/popup.service.d.ts +15 -28
  224. package/lib/portal/wb-component-portal.d.ts +21 -5
  225. package/lib/public_api.d.ts +1 -1
  226. package/lib/registry/workbench-object-registry.d.ts +10 -6
  227. package/lib/routing/public_api.d.ts +2 -2
  228. package/lib/routing/routing.model.d.ts +25 -13
  229. package/lib/routing/{router.util.d.ts → routing.util.d.ts} +28 -1
  230. package/lib/routing/{workbench-auxiliary-routes-registrator.service.d.ts → workbench-auxiliary-route-installer.service.d.ts} +10 -3
  231. package/lib/routing/workbench-layout-differ.d.ts +1 -2
  232. package/lib/routing/workbench-navigational-states.d.ts +8 -4
  233. package/lib/{view/workbench-view-route-guards.d.ts → routing/workbench-route-guards.d.ts} +8 -2
  234. package/lib/routing/workbench-url-observer.service.d.ts +31 -55
  235. package/lib/routing/workbench-view-outlet-differ.d.ts +32 -0
  236. package/lib/routing//311/265workbench-router.service.d.ts +22 -18
  237. package/lib/startup/workbench-launcher.service.d.ts +4 -5
  238. package/lib/testing/workbench.provider.d.ts +3 -1
  239. package/lib/theme/workbench-theme-switcher.service.d.ts +4 -6
  240. package/lib/view/public_api.d.ts +0 -1
  241. package/lib/view/view-move-handler.service.d.ts +16 -14
  242. package/lib/view/view-portal.pipe.d.ts +1 -3
  243. package/lib/view/view.component.d.ts +21 -12
  244. package/lib/view/workbench-view.model.d.ts +88 -36
  245. package/lib/view/workbench-view.registry.d.ts +3 -27
  246. package/lib/view//311/265workbench-view.model.d.ts +62 -71
  247. package/lib/view-dnd/view-drag.service.d.ts +79 -49
  248. package/lib/view-dnd/view-drop-placeholder-renderer.service.d.ts +1 -1
  249. package/lib/view-dnd/view-tab-drag-image-renderer.service.d.ts +12 -36
  250. package/lib/workbench-config.d.ts +19 -7
  251. package/lib/workbench.component.d.ts +16 -30
  252. package/lib/workbench.constants.d.ts +0 -5
  253. package/lib/workbench.model.d.ts +31 -3
  254. package/lib/workbench.service.d.ts +58 -56
  255. package/lib//311/265workbench.service.d.ts +18 -31
  256. package/package.json +5 -5
  257. package/esm2022/lib/common/filter-by-predicate.pipe.mjs +0 -27
  258. package/esm2022/lib/common/filter-by-text.pipe.mjs +0 -39
  259. package/esm2022/lib/common/uuid.util.mjs +0 -17
  260. package/esm2022/lib/content-projection/content-projection.directive.mjs +0 -101
  261. package/esm2022/lib/content-projection/view-container.reference.mjs +0 -68
  262. package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-capability-id-assigner.interceptor.mjs +0 -41
  263. package/esm2022/lib/page-not-found/format-url.pipe.mjs +0 -26
  264. package/esm2022/lib/part/part-action-bar/part-action-filter.pipe.mjs +0 -26
  265. package/esm2022/lib/routing/router.util.mjs +0 -126
  266. package/esm2022/lib/routing/workbench-auxiliary-routes-registrator.service.mjs +0 -94
  267. package/esm2022/lib/view/workbench-view-route-guards.mjs +0 -47
  268. package/lib/common/filter-by-predicate.pipe.d.ts +0 -10
  269. package/lib/common/filter-by-text.pipe.d.ts +0 -12
  270. package/lib/common/uuid.util.d.ts +0 -8
  271. package/lib/content-projection/content-projection.directive.d.ts +0 -30
  272. package/lib/content-projection/view-container.reference.d.ts +0 -42
  273. package/lib/microfrontend-platform/routing/microfrontend-view-capability-id-assigner.interceptor.d.ts +0 -10
  274. package/lib/page-not-found/format-url.pipe.d.ts +0 -11
  275. package/lib/part/part-action-bar/part-action-filter.pipe.d.ts +0 -11
@@ -1,68 +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 { InjectionToken } from '@angular/core';
11
- import { BehaviorSubject } from 'rxjs';
12
- /**
13
- * Handle holding a reference to a DOM location.
14
- */
15
- export class ViewContainerReference {
16
- constructor() {
17
- this._ref$ = new BehaviorSubject(undefined);
18
- }
19
- /**
20
- * Sets the given {@link ViewContainerRef}.
21
- */
22
- set(vcr) {
23
- this._ref$.next(vcr);
24
- }
25
- /**
26
- * Unsets the reference.
27
- */
28
- unset() {
29
- this._ref$.next(undefined);
30
- }
31
- ref(options) {
32
- if (!this._ref$.value && !options) {
33
- throw Error('[NullViewContainerReference] ViewContainer not set.');
34
- }
35
- return this._ref$.value;
36
- }
37
- /**
38
- * Emits the {@link ViewContainerRef}, or undefined if not set.
39
- *
40
- * Upon subscription, emits the current reference (or `undefined` if not set), and then continues to emit each time the reference changes.
41
- * The observable never completes.
42
- */
43
- get ref$() {
44
- return this._ref$;
45
- }
46
- }
47
- /**
48
- * DI token to inject the DOM location where to attach iframes.
49
- */
50
- export const IFRAME_HOST = new InjectionToken('IFRAME_HOST', {
51
- providedIn: 'root',
52
- factory: () => new ViewContainerReference(),
53
- });
54
- /**
55
- * DI token to inject the DOM location where to attach the visual placeholder when dragging a view over a valid drop zone.
56
- */
57
- export const VIEW_DROP_PLACEHOLDER_HOST = new InjectionToken('VIEW_DROP_PLACEHOLDER_HOST', {
58
- providedIn: 'root',
59
- factory: () => new ViewContainerReference(),
60
- });
61
- /**
62
- * DI token to inject the DOM location of the {@link WorkbenchComponent} HTML element.
63
- */
64
- export const WORKBENCH_ELEMENT_REF = new InjectionToken('WORKBENCH_ELEMENT_REF', {
65
- providedIn: 'root',
66
- factory: () => new ViewContainerReference(),
67
- });
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy1jb250YWluZXIucmVmZXJlbmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vd29ya2JlbmNoL3NyYy9saWIvY29udGVudC1wcm9qZWN0aW9uL3ZpZXctY29udGFpbmVyLnJlZmVyZW5jZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUVILE9BQU8sRUFBQyxjQUFjLEVBQW1CLE1BQU0sZUFBZSxDQUFDO0FBQy9ELE9BQU8sRUFBQyxlQUFlLEVBQWEsTUFBTSxNQUFNLENBQUM7QUFFakQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sc0JBQXNCO0lBQW5DO1FBRVUsVUFBSyxHQUFHLElBQUksZUFBZSxDQUErQixTQUFTLENBQUMsQ0FBQztJQXFDL0UsQ0FBQztJQW5DQzs7T0FFRztJQUNJLEdBQUcsQ0FBQyxHQUFxQjtRQUM5QixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLO1FBQ1YsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQU9NLEdBQUcsQ0FBQyxPQUE2QjtRQUN0QyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNsQyxNQUFNLEtBQUssQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO1FBQ3JFLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO0lBQzFCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILElBQVcsSUFBSTtRQUNiLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0NBQ0Y7QUFFRDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxJQUFJLGNBQWMsQ0FBeUIsYUFBYSxFQUFFO0lBQ25GLFVBQVUsRUFBRSxNQUFNO0lBQ2xCLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLHNCQUFzQixFQUFFO0NBQzVDLENBQUMsQ0FBQztBQUVIOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsSUFBSSxjQUFjLENBQXlCLDRCQUE0QixFQUFFO0lBQ2pILFVBQVUsRUFBRSxNQUFNO0lBQ2xCLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLHNCQUFzQixFQUFFO0NBQzVDLENBQUMsQ0FBQztBQUVIOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxjQUFjLENBQXlCLHVCQUF1QixFQUFFO0lBQ3ZHLFVBQVUsRUFBRSxNQUFNO0lBQ2xCLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLHNCQUFzQixFQUFFO0NBQzVDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyMiBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wXG4gKi9cblxuaW1wb3J0IHtJbmplY3Rpb25Ub2tlbiwgVmlld0NvbnRhaW5lclJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5cbi8qKlxuICogSGFuZGxlIGhvbGRpbmcgYSByZWZlcmVuY2UgdG8gYSBET00gbG9jYXRpb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBWaWV3Q29udGFpbmVyUmVmZXJlbmNlIHtcblxuICBwcml2YXRlIF9yZWYkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxWaWV3Q29udGFpbmVyUmVmIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBnaXZlbiB7QGxpbmsgVmlld0NvbnRhaW5lclJlZn0uXG4gICAqL1xuICBwdWJsaWMgc2V0KHZjcjogVmlld0NvbnRhaW5lclJlZik6IHZvaWQge1xuICAgIHRoaXMuX3JlZiQubmV4dCh2Y3IpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVuc2V0cyB0aGUgcmVmZXJlbmNlLlxuICAgKi9cbiAgcHVibGljIHVuc2V0KCk6IHZvaWQge1xuICAgIHRoaXMuX3JlZiQubmV4dCh1bmRlZmluZWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHtAbGluayBWaWV3Q29udGFpbmVyUmVmfS4gSWYgbm90IHNldCwgYnkgZGVmYXVsdCwgdGhyb3dzIGFuIGVycm9yIHVubGVzcyBzZXR0aW5nIHRoZSBgb3JFbHNlVW5kZWZpbmVkYCBvcHRpb24uXG4gICAqL1xuICBwdWJsaWMgcmVmKCk6IFZpZXdDb250YWluZXJSZWY7XG4gIHB1YmxpYyByZWYob3B0aW9uczoge29yRWxzZTogdW5kZWZpbmVkfSk6IFZpZXdDb250YWluZXJSZWYgfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyByZWYob3B0aW9ucz86IHtvckVsc2U6IHVuZGVmaW5lZH0pOiBWaWV3Q29udGFpbmVyUmVmIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoIXRoaXMuX3JlZiQudmFsdWUgJiYgIW9wdGlvbnMpIHtcbiAgICAgIHRocm93IEVycm9yKCdbTnVsbFZpZXdDb250YWluZXJSZWZlcmVuY2VdIFZpZXdDb250YWluZXIgbm90IHNldC4nKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX3JlZiQudmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogRW1pdHMgdGhlIHtAbGluayBWaWV3Q29udGFpbmVyUmVmfSwgb3IgdW5kZWZpbmVkIGlmIG5vdCBzZXQuXG4gICAqXG4gICAqIFVwb24gc3Vic2NyaXB0aW9uLCBlbWl0cyB0aGUgY3VycmVudCByZWZlcmVuY2UgKG9yIGB1bmRlZmluZWRgIGlmIG5vdCBzZXQpLCBhbmQgdGhlbiBjb250aW51ZXMgdG8gZW1pdCBlYWNoIHRpbWUgdGhlIHJlZmVyZW5jZSBjaGFuZ2VzLlxuICAgKiBUaGUgb2JzZXJ2YWJsZSBuZXZlciBjb21wbGV0ZXMuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHJlZiQoKTogT2JzZXJ2YWJsZTxWaWV3Q29udGFpbmVyUmVmIHwgdW5kZWZpbmVkPiB7XG4gICAgcmV0dXJuIHRoaXMuX3JlZiQ7XG4gIH1cbn1cblxuLyoqXG4gKiBESSB0b2tlbiB0byBpbmplY3QgdGhlIERPTSBsb2NhdGlvbiB3aGVyZSB0byBhdHRhY2ggaWZyYW1lcy5cbiAqL1xuZXhwb3J0IGNvbnN0IElGUkFNRV9IT1NUID0gbmV3IEluamVjdGlvblRva2VuPFZpZXdDb250YWluZXJSZWZlcmVuY2U+KCdJRlJBTUVfSE9TVCcsIHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxuICBmYWN0b3J5OiAoKSA9PiBuZXcgVmlld0NvbnRhaW5lclJlZmVyZW5jZSgpLFxufSk7XG5cbi8qKlxuICogREkgdG9rZW4gdG8gaW5qZWN0IHRoZSBET00gbG9jYXRpb24gd2hlcmUgdG8gYXR0YWNoIHRoZSB2aXN1YWwgcGxhY2Vob2xkZXIgd2hlbiBkcmFnZ2luZyBhIHZpZXcgb3ZlciBhIHZhbGlkIGRyb3Agem9uZS5cbiAqL1xuZXhwb3J0IGNvbnN0IFZJRVdfRFJPUF9QTEFDRUhPTERFUl9IT1NUID0gbmV3IEluamVjdGlvblRva2VuPFZpZXdDb250YWluZXJSZWZlcmVuY2U+KCdWSUVXX0RST1BfUExBQ0VIT0xERVJfSE9TVCcsIHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxuICBmYWN0b3J5OiAoKSA9PiBuZXcgVmlld0NvbnRhaW5lclJlZmVyZW5jZSgpLFxufSk7XG5cbi8qKlxuICogREkgdG9rZW4gdG8gaW5qZWN0IHRoZSBET00gbG9jYXRpb24gb2YgdGhlIHtAbGluayBXb3JrYmVuY2hDb21wb25lbnR9IEhUTUwgZWxlbWVudC5cbiAqL1xuZXhwb3J0IGNvbnN0IFdPUktCRU5DSF9FTEVNRU5UX1JFRiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxWaWV3Q29udGFpbmVyUmVmZXJlbmNlPignV09SS0JFTkNIX0VMRU1FTlRfUkVGJywge1xuICBwcm92aWRlZEluOiAncm9vdCcsXG4gIGZhY3Rvcnk6ICgpID0+IG5ldyBWaWV3Q29udGFpbmVyUmVmZXJlbmNlKCksXG59KTtcbiJdfQ==
@@ -1,41 +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
- * Assigns each view capability a stable identifer required for persistent navigation.
7
- */
8
- export class MicrofrontendViewCapabilityIdAssigner {
9
- async intercept(capability) {
10
- if (capability.type !== WorkbenchCapabilities.View) {
11
- return capability;
12
- }
13
- const stableIdentifier = await createStableViewIdentifier(capability);
14
- return {
15
- ...capability,
16
- metadata: { ...capability.metadata, id: stableIdentifier },
17
- };
18
- }
19
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: MicrofrontendViewCapabilityIdAssigner, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
20
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: MicrofrontendViewCapabilityIdAssigner }); }
21
- }
22
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: MicrofrontendViewCapabilityIdAssigner, decorators: [{
23
- type: Injectable
24
- }] });
25
- /**
26
- * Creates a stable identifier for given view capability.
27
- */
28
- async function createStableViewIdentifier(capability) {
29
- const qualifier = capability.qualifier;
30
- const vendor = capability.metadata.appSymbolicName;
31
- // Create identifier consisting of vendor and sorted qualifier entries.
32
- const identifier = Object.keys(qualifier)
33
- .sort()
34
- .reduce((acc, qualifierKey) => acc.concat(qualifierKey).concat(`${qualifier[qualifierKey]}`), [vendor])
35
- .join(';');
36
- // Hash the identifier.
37
- const identifierHash = await Crypto.digest(identifier);
38
- // Use the first 7 digits of the hash.
39
- return identifierHash.substring(0, 7);
40
- }
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWljcm9mcm9udGVuZC12aWV3LWNhcGFiaWxpdHktaWQtYXNzaWduZXIuaW50ZXJjZXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi93b3JrYmVuY2gvc3JjL2xpYi9taWNyb2Zyb250ZW5kLXBsYXRmb3JtL3JvdXRpbmcvbWljcm9mcm9udGVuZC12aWV3LWNhcGFiaWxpdHktaWQtYXNzaWduZXIuaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBV0EsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sdUJBQXVCLENBQUM7O0FBRTdDOztHQUVHO0FBRUgsTUFBTSxPQUFPLHFDQUFxQztJQUV6QyxLQUFLLENBQUMsU0FBUyxDQUFDLFVBQXNCO1FBQzNDLElBQUksVUFBVSxDQUFDLElBQUksS0FBSyxxQkFBcUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNuRCxPQUFPLFVBQVUsQ0FBQztRQUNwQixDQUFDO1FBRUQsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLDBCQUEwQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3RFLE9BQU87WUFDTCxHQUFHLFVBQVU7WUFDYixRQUFRLEVBQUUsRUFBQyxHQUFHLFVBQVUsQ0FBQyxRQUFTLEVBQUUsRUFBRSxFQUFFLGdCQUFnQixFQUFDO1NBQzFELENBQUM7SUFDSixDQUFDOzhHQVpVLHFDQUFxQztrSEFBckMscUNBQXFDOzsyRkFBckMscUNBQXFDO2tCQURqRCxVQUFVOztBQWdCWDs7R0FFRztBQUNILEtBQUssVUFBVSwwQkFBMEIsQ0FBQyxVQUFzQjtJQUM5RCxNQUFNLFNBQVMsR0FBRyxVQUFVLENBQUMsU0FBVSxDQUFDO0lBQ3hDLE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxRQUFTLENBQUMsZUFBZSxDQUFDO0lBRXBELHVFQUF1RTtJQUN2RSxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztTQUN0QyxJQUFJLEVBQUU7U0FDTixNQUFNLENBQ0wsQ0FBQyxHQUFHLEVBQUUsWUFBWSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLFNBQVMsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLEVBQ3BGLENBQUMsTUFBTSxDQUFDLENBQ1Q7U0FDQSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFYix1QkFBdUI7SUFDdkIsTUFBTSxjQUFjLEdBQUcsTUFBTSxNQUFNLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3ZELHNDQUFzQztJQUN0QyxPQUFPLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ3hDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjIgU3dpc3MgRmVkZXJhbCBSYWlsd2F5c1xuICpcbiAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGVcbiAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wXG4gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC9cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMFxuICovXG5cbmltcG9ydCB7Q2FwYWJpbGl0eSwgQ2FwYWJpbGl0eUludGVyY2VwdG9yfSBmcm9tICdAc2Npb24vbWljcm9mcm9udGVuZC1wbGF0Zm9ybSc7XG5pbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtXb3JrYmVuY2hDYXBhYmlsaXRpZXN9IGZyb20gJ0BzY2lvbi93b3JrYmVuY2gtY2xpZW50JztcbmltcG9ydCB7Q3J5cHRvfSBmcm9tICdAc2Npb24vdG9vbGtpdC9jcnlwdG8nO1xuXG4vKipcbiAqIEFzc2lnbnMgZWFjaCB2aWV3IGNhcGFiaWxpdHkgYSBzdGFibGUgaWRlbnRpZmVyIHJlcXVpcmVkIGZvciBwZXJzaXN0ZW50IG5hdmlnYXRpb24uXG4gKi9cbkBJbmplY3RhYmxlKC8qIERPIE5PVCBQUk9WSURFIHZpYSAncHJvdmlkZWRJbicgbWV0YWRhdGEgYXMgb25seSByZWdpc3RlcmVkIGlmIG1pY3JvZnJvbnRlbmQgc3VwcG9ydCBpcyBlbmFibGVkLiAqLylcbmV4cG9ydCBjbGFzcyBNaWNyb2Zyb250ZW5kVmlld0NhcGFiaWxpdHlJZEFzc2lnbmVyIGltcGxlbWVudHMgQ2FwYWJpbGl0eUludGVyY2VwdG9yIHtcblxuICBwdWJsaWMgYXN5bmMgaW50ZXJjZXB0KGNhcGFiaWxpdHk6IENhcGFiaWxpdHkpOiBQcm9taXNlPENhcGFiaWxpdHk+IHtcbiAgICBpZiAoY2FwYWJpbGl0eS50eXBlICE9PSBXb3JrYmVuY2hDYXBhYmlsaXRpZXMuVmlldykge1xuICAgICAgcmV0dXJuIGNhcGFiaWxpdHk7XG4gICAgfVxuXG4gICAgY29uc3Qgc3RhYmxlSWRlbnRpZmllciA9IGF3YWl0IGNyZWF0ZVN0YWJsZVZpZXdJZGVudGlmaWVyKGNhcGFiaWxpdHkpO1xuICAgIHJldHVybiB7XG4gICAgICAuLi5jYXBhYmlsaXR5LFxuICAgICAgbWV0YWRhdGE6IHsuLi5jYXBhYmlsaXR5Lm1ldGFkYXRhISwgaWQ6IHN0YWJsZUlkZW50aWZpZXJ9LFxuICAgIH07XG4gIH1cbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgc3RhYmxlIGlkZW50aWZpZXIgZm9yIGdpdmVuIHZpZXcgY2FwYWJpbGl0eS5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gY3JlYXRlU3RhYmxlVmlld0lkZW50aWZpZXIoY2FwYWJpbGl0eTogQ2FwYWJpbGl0eSk6IFByb21pc2U8c3RyaW5nPiB7XG4gIGNvbnN0IHF1YWxpZmllciA9IGNhcGFiaWxpdHkucXVhbGlmaWVyITtcbiAgY29uc3QgdmVuZG9yID0gY2FwYWJpbGl0eS5tZXRhZGF0YSEuYXBwU3ltYm9saWNOYW1lO1xuXG4gIC8vIENyZWF0ZSBpZGVudGlmaWVyIGNvbnNpc3Rpbmcgb2YgdmVuZG9yIGFuZCBzb3J0ZWQgcXVhbGlmaWVyIGVudHJpZXMuXG4gIGNvbnN0IGlkZW50aWZpZXIgPSBPYmplY3Qua2V5cyhxdWFsaWZpZXIpXG4gICAgLnNvcnQoKVxuICAgIC5yZWR1Y2UoXG4gICAgICAoYWNjLCBxdWFsaWZpZXJLZXkpID0+IGFjYy5jb25jYXQocXVhbGlmaWVyS2V5KS5jb25jYXQoYCR7cXVhbGlmaWVyW3F1YWxpZmllcktleV19YCksXG4gICAgICBbdmVuZG9yXSxcbiAgICApXG4gICAgLmpvaW4oJzsnKTtcblxuICAvLyBIYXNoIHRoZSBpZGVudGlmaWVyLlxuICBjb25zdCBpZGVudGlmaWVySGFzaCA9IGF3YWl0IENyeXB0by5kaWdlc3QoaWRlbnRpZmllcik7XG4gIC8vIFVzZSB0aGUgZmlyc3QgNyBkaWdpdHMgb2YgdGhlIGhhc2guXG4gIHJldHVybiBpZGVudGlmaWVySGFzaC5zdWJzdHJpbmcoMCwgNyk7XG59XG4iXX0=
@@ -1,26 +0,0 @@
1
- /*
2
- * Copyright (c) 2018-2024 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 { Pipe } from '@angular/core';
11
- import * as i0 from "@angular/core";
12
- /**
13
- * Formats given URL.
14
- */
15
- export class FormatUrlPipe {
16
- transform(url) {
17
- return url.map(segment => segment.path).join('/');
18
- }
19
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: FormatUrlPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
20
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.0.2", ngImport: i0, type: FormatUrlPipe, isStandalone: true, name: "appFormatUrl" }); }
21
- }
22
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: FormatUrlPipe, decorators: [{
23
- type: Pipe,
24
- args: [{ name: 'appFormatUrl', standalone: true }]
25
- }] });
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LXVybC5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vd29ya2JlbmNoL3NyYy9saWIvcGFnZS1ub3QtZm91bmQvZm9ybWF0LXVybC5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsT0FBTyxFQUFDLElBQUksRUFBZ0IsTUFBTSxlQUFlLENBQUM7O0FBR2xEOztHQUVHO0FBRUgsTUFBTSxPQUFPLGFBQWE7SUFFakIsU0FBUyxDQUFDLEdBQWlCO1FBQ2hDLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDcEQsQ0FBQzs4R0FKVSxhQUFhOzRHQUFiLGFBQWE7OzJGQUFiLGFBQWE7a0JBRHpCLElBQUk7bUJBQUMsRUFBQyxJQUFJLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjQgU3dpc3MgRmVkZXJhbCBSYWlsd2F5c1xuICpcbiAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGVcbiAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wXG4gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC9cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMFxuICovXG5cbmltcG9ydCB7UGlwZSwgUGlwZVRyYW5zZm9ybX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1VybFNlZ21lbnR9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbi8qKlxuICogRm9ybWF0cyBnaXZlbiBVUkwuXG4gKi9cbkBQaXBlKHtuYW1lOiAnYXBwRm9ybWF0VXJsJywgc3RhbmRhbG9uZTogdHJ1ZX0pXG5leHBvcnQgY2xhc3MgRm9ybWF0VXJsUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuXG4gIHB1YmxpYyB0cmFuc2Zvcm0odXJsOiBVcmxTZWdtZW50W10pOiBzdHJpbmcge1xuICAgIHJldHVybiB1cmwubWFwKHNlZ21lbnQgPT4gc2VnbWVudC5wYXRoKS5qb2luKCcvJyk7XG4gIH1cbn1cbiJdfQ==
@@ -1,26 +0,0 @@
1
- /*
2
- * Copyright (c) 2018-2023 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 { Pipe } from '@angular/core';
11
- import * as i0 from "@angular/core";
12
- /**
13
- * Filters actions by specified alignment.
14
- */
15
- export class PartActionFilterPipe {
16
- transform(actions, align) {
17
- return actions?.filter(action => (action.align ?? 'start') === align) ?? [];
18
- }
19
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: PartActionFilterPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
20
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.0.2", ngImport: i0, type: PartActionFilterPipe, isStandalone: true, name: "wbPartActionFilter" }); }
21
- }
22
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: PartActionFilterPipe, decorators: [{
23
- type: Pipe,
24
- args: [{ name: 'wbPartActionFilter', standalone: true }]
25
- }] });
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFydC1hY3Rpb24tZmlsdGVyLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi93b3JrYmVuY2gvc3JjL2xpYi9wYXJ0L3BhcnQtYWN0aW9uLWJhci9wYXJ0LWFjdGlvbi1maWx0ZXIucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUVILE9BQU8sRUFBQyxJQUFJLEVBQWdCLE1BQU0sZUFBZSxDQUFDOztBQUdsRDs7R0FFRztBQUVILE1BQU0sT0FBTyxvQkFBb0I7SUFFeEIsU0FBUyxDQUFDLE9BQTBELEVBQUUsS0FBc0I7UUFDakcsT0FBTyxPQUFPLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxJQUFJLE9BQU8sQ0FBQyxLQUFLLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM5RSxDQUFDOzhHQUpVLG9CQUFvQjs0R0FBcEIsb0JBQW9COzsyRkFBcEIsb0JBQW9CO2tCQURoQyxJQUFJO21CQUFDLEVBQUMsSUFBSSxFQUFFLG9CQUFvQixFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjMgU3dpc3MgRmVkZXJhbCBSYWlsd2F5c1xuICpcbiAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGVcbiAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wXG4gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC9cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMFxuICovXG5cbmltcG9ydCB7UGlwZSwgUGlwZVRyYW5zZm9ybX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1dvcmtiZW5jaFBhcnRBY3Rpb259IGZyb20gJy4uLy4uL3dvcmtiZW5jaC5tb2RlbCc7XG5cbi8qKlxuICogRmlsdGVycyBhY3Rpb25zIGJ5IHNwZWNpZmllZCBhbGlnbm1lbnQuXG4gKi9cbkBQaXBlKHtuYW1lOiAnd2JQYXJ0QWN0aW9uRmlsdGVyJywgc3RhbmRhbG9uZTogdHJ1ZX0pXG5leHBvcnQgY2xhc3MgUGFydEFjdGlvbkZpbHRlclBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcblxuICBwdWJsaWMgdHJhbnNmb3JtKGFjdGlvbnM6IHJlYWRvbmx5IFdvcmtiZW5jaFBhcnRBY3Rpb25bXSB8IG51bGwgfCB1bmRlZmluZWQsIGFsaWduOiAnc3RhcnQnIHwgJ2VuZCcpOiBXb3JrYmVuY2hQYXJ0QWN0aW9uW10ge1xuICAgIHJldHVybiBhY3Rpb25zPy5maWx0ZXIoYWN0aW9uID0+IChhY3Rpb24uYWxpZ24gPz8gJ3N0YXJ0JykgPT09IGFsaWduKSA/PyBbXTtcbiAgfVxufVxuIl19
@@ -1,126 +0,0 @@
1
- /*
2
- * Copyright (c) 2018-2024 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 { PRIMARY_OUTLET, Router } from '@angular/router';
11
- import { DIALOG_ID_PREFIX, MESSAGE_BOX_ID_PREFIX, POPUP_ID_PREFIX } from '../workbench.constants';
12
- import { inject } from '@angular/core';
13
- import { WorkbenchLayouts } from '../layout/workbench-layouts.util';
14
- /**
15
- * Provides utility functions for router operations.
16
- */
17
- export const RouterUtils = {
18
- /**
19
- * Converts given URL segments into an array of commands that can be passed to the Angular router for navigation.
20
- */
21
- segmentsToCommands: (segments) => {
22
- const commands = new Array();
23
- segments.forEach(segment => {
24
- if (segment.path) {
25
- commands.push(segment.path);
26
- }
27
- if (segment.parameters && Object.keys(segment.parameters).length) {
28
- commands.push(segment.parameters);
29
- }
30
- });
31
- return commands;
32
- },
33
- /**
34
- * Constructs URL segments from given commands, resolving any relative navigational symbols.
35
- *
36
- * This function must be called inside an injection context.
37
- */
38
- commandsToSegments: (commands, options) => {
39
- // Ignore `relativeTo` for absolute commands.
40
- const isAbsolutePath = typeof commands[0] === 'string' && commands[0].startsWith('/');
41
- const relativeTo = isAbsolutePath ? null : (options?.relativeTo || null);
42
- // Angular throws the error 'NG04003: Root segment cannot have matrix parameters' when passing an empty path command
43
- // followed by a matrix params object, but not when passing matrix params as the first command. For consistency, when
44
- // passing matrix params as the first command, we prepend an empty path for Angular to throw the same error.
45
- if (typeof commands[0] === 'object' && (!relativeTo || RouterUtils.hasEmptyPathFromRoot(relativeTo))) {
46
- commands = ['', ...commands];
47
- }
48
- const urlTree = inject(Router).createUrlTree(commands, { relativeTo });
49
- return urlTree.root.children[relativeTo?.pathFromRoot[1]?.outlet ?? PRIMARY_OUTLET]?.segments ?? [];
50
- },
51
- /**
52
- * Parses the given path and matrix parameters into an array of commands that can be passed to the Angular router for navigation.
53
- *
54
- * This function must be called inside an injection context.
55
- */
56
- pathToCommands: (path) => {
57
- const urlTree = inject(Router).parseUrl(path);
58
- const segments = urlTree.root.children[PRIMARY_OUTLET]?.segments;
59
- if (!segments) {
60
- throw Error(`[RouterError] Cannot match any routes for path '${path}'.`);
61
- }
62
- return RouterUtils.segmentsToCommands(segments);
63
- },
64
- /**
65
- * Resolves the effective (=leaf) {@link ActivatedRoute} activated in a router outlet.
66
- *
67
- * Depending on the route hierarchy, when navigating to a child route with component-less parent routes, the route of an outlet may not be the effectively activated child route.
68
- */
69
- resolveEffectiveRoute: (route) => {
70
- return route.firstChild ? RouterUtils.resolveEffectiveRoute(route.firstChild) : route;
71
- },
72
- /**
73
- * Resolves the effective (=leaf) {@link OutletContext} of a router outlet.
74
- *
75
- * Depending on the route hierarchy, when navigating to a child route with component-less parent routes, the context of an outlet may not be the effectively activated child context.
76
- */
77
- resolveEffectiveOutletContext: (outletContext) => {
78
- const childOutletContext = outletContext?.children.getContext(PRIMARY_OUTLET);
79
- return childOutletContext ? RouterUtils.resolveEffectiveOutletContext(childOutletContext) : outletContext;
80
- },
81
- /**
82
- * Looks for requested data on given route, or its parent route(s) if not found.
83
- */
84
- lookupRouteData: (activatedRoute, dataKey) => {
85
- return activatedRoute.pathFromRoot.reduceRight((resolvedData, route) => resolvedData ?? route.data[dataKey], undefined);
86
- },
87
- /**
88
- * Tests if the given outlet matches the format of a popup outlet.
89
- */
90
- isPopupOutlet: (outlet) => {
91
- return outlet?.startsWith(POPUP_ID_PREFIX) ?? false;
92
- },
93
- /**
94
- * Tests if the given outlet matches the format of a dialog outlet.
95
- */
96
- isDialogOutlet: (outlet) => {
97
- return outlet?.startsWith(DIALOG_ID_PREFIX) ?? false;
98
- },
99
- /**
100
- * Tests if the given outlet matches the format of a message box outlet.
101
- */
102
- isMessageBoxOutlet: (outlet) => {
103
- return outlet?.startsWith(MESSAGE_BOX_ID_PREFIX) ?? false;
104
- },
105
- /**
106
- * Reads view outlets from given URL.
107
- *
108
- * A view outlet contains the URL segments of a view contained in the workbench layout.
109
- */
110
- parseViewOutlets: (url) => {
111
- const viewOutlets = new Map();
112
- Object.entries(url.root.children).forEach(([outlet, segmentGroup]) => {
113
- if (WorkbenchLayouts.isViewId(outlet)) {
114
- viewOutlets.set(outlet, segmentGroup.segments);
115
- }
116
- });
117
- return viewOutlets;
118
- },
119
- /**
120
- * Tests if given route has an empty path from root.
121
- */
122
- hasEmptyPathFromRoot(route) {
123
- return route.snapshot.pathFromRoot.flatMap(route => route.url).filter(segment => segment.path.length).length === 0;
124
- },
125
- };
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi93b3JrYmVuY2gvc3JjL2xpYi9yb3V0aW5nL3JvdXRlci51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsT0FBTyxFQUF3RCxjQUFjLEVBQUUsTUFBTSxFQUFzQixNQUFNLGlCQUFpQixDQUFDO0FBRW5JLE9BQU8sRUFBQyxnQkFBZ0IsRUFBRSxxQkFBcUIsRUFBRSxlQUFlLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUNoRyxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXJDLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBRWxFOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHO0lBRXpCOztPQUVHO0lBQ0gsa0JBQWtCLEVBQUUsQ0FBQyxRQUFzQixFQUFZLEVBQUU7UUFDdkQsTUFBTSxRQUFRLEdBQUcsSUFBSSxLQUFLLEVBQU8sQ0FBQztRQUVsQyxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ3pCLElBQUksT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNqQixRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM5QixDQUFDO1lBQ0QsSUFBSSxPQUFPLENBQUMsVUFBVSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNqRSxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNwQyxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGtCQUFrQixFQUFFLENBQUMsUUFBa0IsRUFBRSxPQUE4QyxFQUFnQixFQUFFO1FBQ3ZHLDZDQUE2QztRQUM3QyxNQUFNLGNBQWMsR0FBRyxPQUFPLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxRQUFRLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN0RixNQUFNLFVBQVUsR0FBRyxjQUFjLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsVUFBVSxJQUFJLElBQUksQ0FBQyxDQUFDO1FBRXpFLG9IQUFvSDtRQUNwSCxxSEFBcUg7UUFDckgsNEdBQTRHO1FBQzVHLElBQUksT0FBTyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssUUFBUSxJQUFJLENBQUMsQ0FBQyxVQUFVLElBQUksV0FBVyxDQUFDLG9CQUFvQixDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNyRyxRQUFRLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxRQUFRLENBQUMsQ0FBQztRQUMvQixDQUFDO1FBRUQsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsRUFBQyxVQUFVLEVBQUMsQ0FBQyxDQUFDO1FBQ3JFLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLElBQUksY0FBYyxDQUFDLEVBQUUsUUFBUSxJQUFJLEVBQUUsQ0FBQztJQUN0RyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGNBQWMsRUFBRSxDQUFDLElBQVksRUFBWSxFQUFFO1FBQ3pDLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUMsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLEVBQUUsUUFBUSxDQUFDO1FBQ2pFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNkLE1BQU0sS0FBSyxDQUFDLG1EQUFtRCxJQUFJLElBQUksQ0FBQyxDQUFDO1FBQzNFLENBQUM7UUFDRCxPQUFPLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILHFCQUFxQixFQUFFLENBQUMsS0FBcUIsRUFBa0IsRUFBRTtRQUMvRCxPQUFPLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUN4RixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILDZCQUE2QixFQUFFLENBQUMsYUFBbUMsRUFBd0IsRUFBRTtRQUMzRixNQUFNLGtCQUFrQixHQUFHLGFBQWEsRUFBRSxRQUFRLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzlFLE9BQU8sa0JBQWtCLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyw2QkFBNkIsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUM7SUFDNUcsQ0FBQztJQUVEOztPQUVHO0lBQ0gsZUFBZSxFQUFFLENBQUksY0FBc0MsRUFBRSxPQUFlLEVBQWlCLEVBQUU7UUFDN0YsT0FBTyxjQUFjLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDLFlBQVksRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLFlBQVksSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQzFILENBQUM7SUFFRDs7T0FFRztJQUNILGFBQWEsRUFBRSxDQUFDLE1BQWlDLEVBQStCLEVBQUU7UUFDaEYsT0FBTyxNQUFNLEVBQUUsVUFBVSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEtBQUssQ0FBQztJQUN0RCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxjQUFjLEVBQUUsQ0FBQyxNQUFpQyxFQUFnQyxFQUFFO1FBQ2xGLE9BQU8sTUFBTSxFQUFFLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEtBQUssQ0FBQztJQUN2RCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxrQkFBa0IsRUFBRSxDQUFDLE1BQWlDLEVBQW9DLEVBQUU7UUFDMUYsT0FBTyxNQUFNLEVBQUUsVUFBVSxDQUFDLHFCQUFxQixDQUFDLElBQUksS0FBSyxDQUFDO0lBQzVELENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsZ0JBQWdCLEVBQUUsQ0FBQyxHQUFZLEVBQTZCLEVBQUU7UUFDNUQsTUFBTSxXQUFXLEdBQUcsSUFBSSxHQUFHLEVBQXdCLENBQUM7UUFDcEQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxFQUFFLEVBQUU7WUFDbkUsSUFBSSxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztnQkFDdEMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2pELENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7SUFFRDs7T0FFRztJQUNILG9CQUFvQixDQUFDLEtBQXFCO1FBQ3hDLE9BQU8sS0FBSyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztJQUNySCxDQUFDO0NBQ08sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyNCBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wXG4gKi9cblxuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZSwgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgT3V0bGV0Q29udGV4dCwgUFJJTUFSWV9PVVRMRVQsIFJvdXRlciwgVXJsU2VnbWVudCwgVXJsVHJlZX0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7Q29tbWFuZHN9IGZyb20gJy4uL3JvdXRpbmcvcm91dGluZy5tb2RlbCc7XG5pbXBvcnQge0RJQUxPR19JRF9QUkVGSVgsIE1FU1NBR0VfQk9YX0lEX1BSRUZJWCwgUE9QVVBfSURfUFJFRklYfSBmcm9tICcuLi93b3JrYmVuY2guY29uc3RhbnRzJztcbmltcG9ydCB7aW5qZWN0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Vmlld0lkfSBmcm9tICcuLi92aWV3L3dvcmtiZW5jaC12aWV3Lm1vZGVsJztcbmltcG9ydCB7V29ya2JlbmNoTGF5b3V0c30gZnJvbSAnLi4vbGF5b3V0L3dvcmtiZW5jaC1sYXlvdXRzLnV0aWwnO1xuXG4vKipcbiAqIFByb3ZpZGVzIHV0aWxpdHkgZnVuY3Rpb25zIGZvciByb3V0ZXIgb3BlcmF0aW9ucy5cbiAqL1xuZXhwb3J0IGNvbnN0IFJvdXRlclV0aWxzID0ge1xuXG4gIC8qKlxuICAgKiBDb252ZXJ0cyBnaXZlbiBVUkwgc2VnbWVudHMgaW50byBhbiBhcnJheSBvZiBjb21tYW5kcyB0aGF0IGNhbiBiZSBwYXNzZWQgdG8gdGhlIEFuZ3VsYXIgcm91dGVyIGZvciBuYXZpZ2F0aW9uLlxuICAgKi9cbiAgc2VnbWVudHNUb0NvbW1hbmRzOiAoc2VnbWVudHM6IFVybFNlZ21lbnRbXSk6IENvbW1hbmRzID0+IHtcbiAgICBjb25zdCBjb21tYW5kcyA9IG5ldyBBcnJheTxhbnk+KCk7XG5cbiAgICBzZWdtZW50cy5mb3JFYWNoKHNlZ21lbnQgPT4ge1xuICAgICAgaWYgKHNlZ21lbnQucGF0aCkge1xuICAgICAgICBjb21tYW5kcy5wdXNoKHNlZ21lbnQucGF0aCk7XG4gICAgICB9XG4gICAgICBpZiAoc2VnbWVudC5wYXJhbWV0ZXJzICYmIE9iamVjdC5rZXlzKHNlZ21lbnQucGFyYW1ldGVycykubGVuZ3RoKSB7XG4gICAgICAgIGNvbW1hbmRzLnB1c2goc2VnbWVudC5wYXJhbWV0ZXJzKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBjb21tYW5kcztcbiAgfSxcblxuICAvKipcbiAgICogQ29uc3RydWN0cyBVUkwgc2VnbWVudHMgZnJvbSBnaXZlbiBjb21tYW5kcywgcmVzb2x2aW5nIGFueSByZWxhdGl2ZSBuYXZpZ2F0aW9uYWwgc3ltYm9scy5cbiAgICpcbiAgICogVGhpcyBmdW5jdGlvbiBtdXN0IGJlIGNhbGxlZCBpbnNpZGUgYW4gaW5qZWN0aW9uIGNvbnRleHQuXG4gICAqL1xuICBjb21tYW5kc1RvU2VnbWVudHM6IChjb21tYW5kczogQ29tbWFuZHMsIG9wdGlvbnM/OiB7cmVsYXRpdmVUbz86IEFjdGl2YXRlZFJvdXRlIHwgbnVsbH0pOiBVcmxTZWdtZW50W10gPT4ge1xuICAgIC8vIElnbm9yZSBgcmVsYXRpdmVUb2AgZm9yIGFic29sdXRlIGNvbW1hbmRzLlxuICAgIGNvbnN0IGlzQWJzb2x1dGVQYXRoID0gdHlwZW9mIGNvbW1hbmRzWzBdID09PSAnc3RyaW5nJyAmJiBjb21tYW5kc1swXS5zdGFydHNXaXRoKCcvJyk7XG4gICAgY29uc3QgcmVsYXRpdmVUbyA9IGlzQWJzb2x1dGVQYXRoID8gbnVsbCA6IChvcHRpb25zPy5yZWxhdGl2ZVRvIHx8IG51bGwpO1xuXG4gICAgLy8gQW5ndWxhciB0aHJvd3MgdGhlIGVycm9yICdORzA0MDAzOiBSb290IHNlZ21lbnQgY2Fubm90IGhhdmUgbWF0cml4IHBhcmFtZXRlcnMnIHdoZW4gcGFzc2luZyBhbiBlbXB0eSBwYXRoIGNvbW1hbmRcbiAgICAvLyBmb2xsb3dlZCBieSBhIG1hdHJpeCBwYXJhbXMgb2JqZWN0LCBidXQgbm90IHdoZW4gcGFzc2luZyBtYXRyaXggcGFyYW1zIGFzIHRoZSBmaXJzdCBjb21tYW5kLiBGb3IgY29uc2lzdGVuY3ksIHdoZW5cbiAgICAvLyBwYXNzaW5nIG1hdHJpeCBwYXJhbXMgYXMgdGhlIGZpcnN0IGNvbW1hbmQsIHdlIHByZXBlbmQgYW4gZW1wdHkgcGF0aCBmb3IgQW5ndWxhciB0byB0aHJvdyB0aGUgc2FtZSBlcnJvci5cbiAgICBpZiAodHlwZW9mIGNvbW1hbmRzWzBdID09PSAnb2JqZWN0JyAmJiAoIXJlbGF0aXZlVG8gfHwgUm91dGVyVXRpbHMuaGFzRW1wdHlQYXRoRnJvbVJvb3QocmVsYXRpdmVUbykpKSB7XG4gICAgICBjb21tYW5kcyA9IFsnJywgLi4uY29tbWFuZHNdO1xuICAgIH1cblxuICAgIGNvbnN0IHVybFRyZWUgPSBpbmplY3QoUm91dGVyKS5jcmVhdGVVcmxUcmVlKGNvbW1hbmRzLCB7cmVsYXRpdmVUb30pO1xuICAgIHJldHVybiB1cmxUcmVlLnJvb3QuY2hpbGRyZW5bcmVsYXRpdmVUbz8ucGF0aEZyb21Sb290WzFdPy5vdXRsZXQgPz8gUFJJTUFSWV9PVVRMRVRdPy5zZWdtZW50cyA/PyBbXTtcbiAgfSxcblxuICAvKipcbiAgICogUGFyc2VzIHRoZSBnaXZlbiBwYXRoIGFuZCBtYXRyaXggcGFyYW1ldGVycyBpbnRvIGFuIGFycmF5IG9mIGNvbW1hbmRzIHRoYXQgY2FuIGJlIHBhc3NlZCB0byB0aGUgQW5ndWxhciByb3V0ZXIgZm9yIG5hdmlnYXRpb24uXG4gICAqXG4gICAqIFRoaXMgZnVuY3Rpb24gbXVzdCBiZSBjYWxsZWQgaW5zaWRlIGFuIGluamVjdGlvbiBjb250ZXh0LlxuICAgKi9cbiAgcGF0aFRvQ29tbWFuZHM6IChwYXRoOiBzdHJpbmcpOiBDb21tYW5kcyA9PiB7XG4gICAgY29uc3QgdXJsVHJlZSA9IGluamVjdChSb3V0ZXIpLnBhcnNlVXJsKHBhdGgpO1xuICAgIGNvbnN0IHNlZ21lbnRzID0gdXJsVHJlZS5yb290LmNoaWxkcmVuW1BSSU1BUllfT1VUTEVUXT8uc2VnbWVudHM7XG4gICAgaWYgKCFzZWdtZW50cykge1xuICAgICAgdGhyb3cgRXJyb3IoYFtSb3V0ZXJFcnJvcl0gQ2Fubm90IG1hdGNoIGFueSByb3V0ZXMgZm9yIHBhdGggJyR7cGF0aH0nLmApO1xuICAgIH1cbiAgICByZXR1cm4gUm91dGVyVXRpbHMuc2VnbWVudHNUb0NvbW1hbmRzKHNlZ21lbnRzKTtcbiAgfSxcblxuICAvKipcbiAgICogUmVzb2x2ZXMgdGhlIGVmZmVjdGl2ZSAoPWxlYWYpIHtAbGluayBBY3RpdmF0ZWRSb3V0ZX0gYWN0aXZhdGVkIGluIGEgcm91dGVyIG91dGxldC5cbiAgICpcbiAgICogRGVwZW5kaW5nIG9uIHRoZSByb3V0ZSBoaWVyYXJjaHksIHdoZW4gbmF2aWdhdGluZyB0byBhIGNoaWxkIHJvdXRlIHdpdGggY29tcG9uZW50LWxlc3MgcGFyZW50IHJvdXRlcywgdGhlIHJvdXRlIG9mIGFuIG91dGxldCBtYXkgbm90IGJlIHRoZSBlZmZlY3RpdmVseSBhY3RpdmF0ZWQgY2hpbGQgcm91dGUuXG4gICAqL1xuICByZXNvbHZlRWZmZWN0aXZlUm91dGU6IChyb3V0ZTogQWN0aXZhdGVkUm91dGUpOiBBY3RpdmF0ZWRSb3V0ZSA9PiB7XG4gICAgcmV0dXJuIHJvdXRlLmZpcnN0Q2hpbGQgPyBSb3V0ZXJVdGlscy5yZXNvbHZlRWZmZWN0aXZlUm91dGUocm91dGUuZmlyc3RDaGlsZCkgOiByb3V0ZTtcbiAgfSxcblxuICAvKipcbiAgICogUmVzb2x2ZXMgdGhlIGVmZmVjdGl2ZSAoPWxlYWYpIHtAbGluayBPdXRsZXRDb250ZXh0fSBvZiBhIHJvdXRlciBvdXRsZXQuXG4gICAqXG4gICAqIERlcGVuZGluZyBvbiB0aGUgcm91dGUgaGllcmFyY2h5LCB3aGVuIG5hdmlnYXRpbmcgdG8gYSBjaGlsZCByb3V0ZSB3aXRoIGNvbXBvbmVudC1sZXNzIHBhcmVudCByb3V0ZXMsIHRoZSBjb250ZXh0IG9mIGFuIG91dGxldCBtYXkgbm90IGJlIHRoZSBlZmZlY3RpdmVseSBhY3RpdmF0ZWQgY2hpbGQgY29udGV4dC5cbiAgICovXG4gIHJlc29sdmVFZmZlY3RpdmVPdXRsZXRDb250ZXh0OiAob3V0bGV0Q29udGV4dDogT3V0bGV0Q29udGV4dCB8IG51bGwpOiBPdXRsZXRDb250ZXh0IHwgbnVsbCA9PiB7XG4gICAgY29uc3QgY2hpbGRPdXRsZXRDb250ZXh0ID0gb3V0bGV0Q29udGV4dD8uY2hpbGRyZW4uZ2V0Q29udGV4dChQUklNQVJZX09VVExFVCk7XG4gICAgcmV0dXJuIGNoaWxkT3V0bGV0Q29udGV4dCA/IFJvdXRlclV0aWxzLnJlc29sdmVFZmZlY3RpdmVPdXRsZXRDb250ZXh0KGNoaWxkT3V0bGV0Q29udGV4dCkgOiBvdXRsZXRDb250ZXh0O1xuICB9LFxuXG4gIC8qKlxuICAgKiBMb29rcyBmb3IgcmVxdWVzdGVkIGRhdGEgb24gZ2l2ZW4gcm91dGUsIG9yIGl0cyBwYXJlbnQgcm91dGUocykgaWYgbm90IGZvdW5kLlxuICAgKi9cbiAgbG9va3VwUm91dGVEYXRhOiA8VD4oYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIGRhdGFLZXk6IHN0cmluZyk6IFQgfCB1bmRlZmluZWQgPT4ge1xuICAgIHJldHVybiBhY3RpdmF0ZWRSb3V0ZS5wYXRoRnJvbVJvb3QucmVkdWNlUmlnaHQoKHJlc29sdmVkRGF0YSwgcm91dGUpID0+IHJlc29sdmVkRGF0YSA/PyByb3V0ZS5kYXRhW2RhdGFLZXldLCB1bmRlZmluZWQpO1xuICB9LFxuXG4gIC8qKlxuICAgKiBUZXN0cyBpZiB0aGUgZ2l2ZW4gb3V0bGV0IG1hdGNoZXMgdGhlIGZvcm1hdCBvZiBhIHBvcHVwIG91dGxldC5cbiAgICovXG4gIGlzUG9wdXBPdXRsZXQ6IChvdXRsZXQ6IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGwpOiBvdXRsZXQgaXMgYHBvcHVwLiR7c3RyaW5nfWAgPT4ge1xuICAgIHJldHVybiBvdXRsZXQ/LnN0YXJ0c1dpdGgoUE9QVVBfSURfUFJFRklYKSA/PyBmYWxzZTtcbiAgfSxcblxuICAvKipcbiAgICogVGVzdHMgaWYgdGhlIGdpdmVuIG91dGxldCBtYXRjaGVzIHRoZSBmb3JtYXQgb2YgYSBkaWFsb2cgb3V0bGV0LlxuICAgKi9cbiAgaXNEaWFsb2dPdXRsZXQ6IChvdXRsZXQ6IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGwpOiBvdXRsZXQgaXMgYGRpYWxvZy4ke3N0cmluZ31gID0+IHtcbiAgICByZXR1cm4gb3V0bGV0Py5zdGFydHNXaXRoKERJQUxPR19JRF9QUkVGSVgpID8/IGZhbHNlO1xuICB9LFxuXG4gIC8qKlxuICAgKiBUZXN0cyBpZiB0aGUgZ2l2ZW4gb3V0bGV0IG1hdGNoZXMgdGhlIGZvcm1hdCBvZiBhIG1lc3NhZ2UgYm94IG91dGxldC5cbiAgICovXG4gIGlzTWVzc2FnZUJveE91dGxldDogKG91dGxldDogc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbCk6IG91dGxldCBpcyBgbWVzc2FnZWJveC4ke3N0cmluZ31gID0+IHtcbiAgICByZXR1cm4gb3V0bGV0Py5zdGFydHNXaXRoKE1FU1NBR0VfQk9YX0lEX1BSRUZJWCkgPz8gZmFsc2U7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFJlYWRzIHZpZXcgb3V0bGV0cyBmcm9tIGdpdmVuIFVSTC5cbiAgICpcbiAgICogQSB2aWV3IG91dGxldCBjb250YWlucyB0aGUgVVJMIHNlZ21lbnRzIG9mIGEgdmlldyBjb250YWluZWQgaW4gdGhlIHdvcmtiZW5jaCBsYXlvdXQuXG4gICAqL1xuICBwYXJzZVZpZXdPdXRsZXRzOiAodXJsOiBVcmxUcmVlKTogTWFwPFZpZXdJZCwgVXJsU2VnbWVudFtdPiA9PiB7XG4gICAgY29uc3Qgdmlld091dGxldHMgPSBuZXcgTWFwPFZpZXdJZCwgVXJsU2VnbWVudFtdPigpO1xuICAgIE9iamVjdC5lbnRyaWVzKHVybC5yb290LmNoaWxkcmVuKS5mb3JFYWNoKChbb3V0bGV0LCBzZWdtZW50R3JvdXBdKSA9PiB7XG4gICAgICBpZiAoV29ya2JlbmNoTGF5b3V0cy5pc1ZpZXdJZChvdXRsZXQpKSB7XG4gICAgICAgIHZpZXdPdXRsZXRzLnNldChvdXRsZXQsIHNlZ21lbnRHcm91cC5zZWdtZW50cyk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHZpZXdPdXRsZXRzO1xuICB9LFxuXG4gIC8qKlxuICAgKiBUZXN0cyBpZiBnaXZlbiByb3V0ZSBoYXMgYW4gZW1wdHkgcGF0aCBmcm9tIHJvb3QuXG4gICAqL1xuICBoYXNFbXB0eVBhdGhGcm9tUm9vdChyb3V0ZTogQWN0aXZhdGVkUm91dGUpOiBib29sZWFuIHtcbiAgICByZXR1cm4gcm91dGUuc25hcHNob3QucGF0aEZyb21Sb290LmZsYXRNYXAocm91dGUgPT4gcm91dGUudXJsKS5maWx0ZXIoc2VnbWVudCA9PiBzZWdtZW50LnBhdGgubGVuZ3RoKS5sZW5ndGggPT09IDA7XG4gIH0sXG59IGFzIGNvbnN0O1xuIl19
@@ -1,94 +0,0 @@
1
- /*
2
- * Copyright (c) 2018-2024 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 { Injectable, InjectionToken } from '@angular/core';
11
- import { PRIMARY_OUTLET } from '@angular/router';
12
- import PageNotFoundComponent from '../page-not-found/page-not-found.component';
13
- import { WorkbenchRouteData } from './workbench-route-data';
14
- import { ɵEmptyOutletComponent } from './empty-outlet/empty-outlet.component';
15
- import * as i0 from "@angular/core";
16
- import * as i1 from "../workbench-config";
17
- import * as i2 from "@angular/router";
18
- /**
19
- * Facilitates the registration of auxiliary routes of top-level routes.
20
- */
21
- export class WorkbenchAuxiliaryRoutesRegistrator {
22
- constructor(_workbenchConfig, _router) {
23
- this._workbenchConfig = _workbenchConfig;
24
- this._router = _router;
25
- }
26
- /**
27
- * Registers an auxiliary route for each top-level route, enabling navigation in the specified router outlet(s).
28
- *
29
- * @param outlets - Specifies outlets for which to create auxiliary routes.
30
- * @param config - Specifies the config of the auxiliary routes.
31
- */
32
- registerAuxiliaryRoutes(outlets, config = {}) {
33
- if (!outlets.length) {
34
- return [];
35
- }
36
- const registeredRoutes = outlets.map(outlet => ({
37
- path: '',
38
- outlet,
39
- providers: [{ provide: WORKBENCH_AUXILIARY_ROUTE_OUTLET, useValue: outlet }],
40
- component: ɵEmptyOutletComponent,
41
- children: [
42
- ...this._router.config
43
- .filter(route => !route.outlet || route.outlet === PRIMARY_OUTLET)
44
- .map(route => ({ ...route, data: { ...route.data, [WorkbenchRouteData.ɵoutlet]: outlet } })),
45
- // Register "Page Not Found" route as the last route of the outlet.
46
- {
47
- path: '**',
48
- loadComponent: () => this._workbenchConfig.pageNotFoundComponent ?? PageNotFoundComponent,
49
- data: { [WorkbenchRouteData.title]: 'Page Not Found', [WorkbenchRouteData.cssClass]: 'e2e-page-not-found' },
50
- canMatch: config.canMatchNotFoundPage,
51
- },
52
- ],
53
- }));
54
- this.replaceRouterConfig([
55
- ...this._router.config,
56
- ...registeredRoutes,
57
- ]);
58
- return registeredRoutes;
59
- }
60
- /**
61
- * Unregisters auxiliary routes for the given outlet.
62
- */
63
- unregisterAuxiliaryRoutes(outlets) {
64
- const outletsToRemove = new Set(outlets);
65
- function shouldRemoveRoute(route) {
66
- return !!route.outlet && outletsToRemove.has(route.outlet);
67
- }
68
- this.replaceRouterConfig(this._router.config.filter(route => !shouldRemoveRoute(route)));
69
- }
70
- /**
71
- * Replaces the router configuration to install or uninstall auxiliary routes.
72
- */
73
- replaceRouterConfig(config) {
74
- // Note:
75
- // - Do not use Router.resetConfig(...) which would destroy any currently routed component because copying all routes
76
- // - Do not assign the router a new Routes object (Router.config = ...) to allow resolution of routes added during `NavigationStart` (since Angular 7.x)
77
- // (because Angular uses a reference to the Routes object during route navigation)
78
- const newRoutes = [...config];
79
- this._router.config.splice(0, this._router.config.length, ...newRoutes);
80
- }
81
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: WorkbenchAuxiliaryRoutesRegistrator, deps: [{ token: i1.WorkbenchConfig }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
82
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: WorkbenchAuxiliaryRoutesRegistrator, providedIn: 'root' }); }
83
- }
84
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: WorkbenchAuxiliaryRoutesRegistrator, decorators: [{
85
- type: Injectable,
86
- args: [{ providedIn: 'root' }]
87
- }], ctorParameters: () => [{ type: i1.WorkbenchConfig }, { type: i2.Router }] });
88
- /**
89
- * DI token to inject the outlet name of a workbench auxiliary route.
90
- *
91
- * Can be injected in a `CanMatch` guard to obtain a reference to the workbench element.
92
- */
93
- export const WORKBENCH_AUXILIARY_ROUTE_OUTLET = new InjectionToken('ɵWORKBENCH_AUXILIARY_ROUTE_OUTLET');
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2JlbmNoLWF1eGlsaWFyeS1yb3V0ZXMtcmVnaXN0cmF0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL3dvcmtiZW5jaC9zcmMvbGliL3JvdXRpbmcvd29ya2JlbmNoLWF1eGlsaWFyeS1yb3V0ZXMtcmVnaXN0cmF0b3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7RUFRRTtBQUVGLE9BQU8sRUFBQyxVQUFVLEVBQUUsY0FBYyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBYSxjQUFjLEVBQXdCLE1BQU0saUJBQWlCLENBQUM7QUFFbEYsT0FBTyxxQkFBcUIsTUFBTSw0Q0FBNEMsQ0FBQztBQUMvRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRCxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQzs7OztBQUU1RTs7R0FFRztBQUVILE1BQU0sT0FBTyxtQ0FBbUM7SUFFOUMsWUFBb0IsZ0JBQWlDLEVBQVUsT0FBZTtRQUExRCxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWlCO1FBQVUsWUFBTyxHQUFQLE9BQU8sQ0FBUTtJQUM5RSxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSx1QkFBdUIsQ0FBQyxPQUFpQixFQUFFLFNBQStCLEVBQUU7UUFDakYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNwQixPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7UUFFRCxNQUFNLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzlDLElBQUksRUFBRSxFQUFFO1lBQ1IsTUFBTTtZQUNOLFNBQVMsRUFBRSxDQUFDLEVBQUMsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUMsQ0FBQztZQUMxRSxTQUFTLEVBQUUscUJBQXFCO1lBQ2hDLFFBQVEsRUFBRTtnQkFDUixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTTtxQkFDbkIsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssY0FBYyxDQUFDO3FCQUNqRSxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsR0FBRyxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUMsR0FBRyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLEVBQUUsTUFBTSxFQUFDLEVBQUMsQ0FBQyxDQUFDO2dCQUMxRixtRUFBbUU7Z0JBQ25FO29CQUNFLElBQUksRUFBRSxJQUFJO29CQUNWLGFBQWEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMscUJBQXFCLElBQUkscUJBQXFCO29CQUN6RixJQUFJLEVBQUUsRUFBQyxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxFQUFFLGdCQUFnQixFQUFFLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLEVBQUUsb0JBQW9CLEVBQUM7b0JBQ3pHLFFBQVEsRUFBRSxNQUFNLENBQUMsb0JBQW9CO2lCQUN0QzthQUNGO1NBQ0YsQ0FBQyxDQUFDLENBQUM7UUFFSixJQUFJLENBQUMsbUJBQW1CLENBQUM7WUFDdkIsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU07WUFDdEIsR0FBRyxnQkFBZ0I7U0FDcEIsQ0FBQyxDQUFDO1FBRUgsT0FBTyxnQkFBZ0IsQ0FBQztJQUMxQixDQUFDO0lBRUQ7O09BRUc7SUFDSSx5QkFBeUIsQ0FBQyxPQUFpQjtRQUNoRCxNQUFNLGVBQWUsR0FBRyxJQUFJLEdBQUcsQ0FBUyxPQUFPLENBQUMsQ0FBQztRQUVqRCxTQUFTLGlCQUFpQixDQUFDLEtBQVk7WUFDckMsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sSUFBSSxlQUFlLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3RCxDQUFDO1FBRUQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzNGLENBQUM7SUFFRDs7T0FFRztJQUNLLG1CQUFtQixDQUFDLE1BQWM7UUFDeEMsUUFBUTtRQUNSLHVIQUF1SDtRQUN2SCwwSkFBMEo7UUFDMUosc0ZBQXNGO1FBQ3RGLE1BQU0sU0FBUyxHQUFXLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxHQUFHLFNBQVMsQ0FBQyxDQUFDO0lBQzFFLENBQUM7OEdBbEVVLG1DQUFtQztrSEFBbkMsbUNBQW1DLGNBRHZCLE1BQU07OzJGQUNsQixtQ0FBbUM7a0JBRC9DLFVBQVU7bUJBQUMsRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDOztBQWlGaEM7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLGdDQUFnQyxHQUFHLElBQUksY0FBYyxDQUFTLG1DQUFtQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyNCBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4qXG4qIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGVcbiogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvXG4qXG4qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wXG4qL1xuXG5pbXBvcnQge0luamVjdGFibGUsIEluamVjdGlvblRva2VufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q2FuTWF0Y2hGbiwgUFJJTUFSWV9PVVRMRVQsIFJvdXRlLCBSb3V0ZXIsIFJvdXRlc30gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7V29ya2JlbmNoQ29uZmlnfSBmcm9tICcuLi93b3JrYmVuY2gtY29uZmlnJztcbmltcG9ydCBQYWdlTm90Rm91bmRDb21wb25lbnQgZnJvbSAnLi4vcGFnZS1ub3QtZm91bmQvcGFnZS1ub3QtZm91bmQuY29tcG9uZW50JztcbmltcG9ydCB7V29ya2JlbmNoUm91dGVEYXRhfSBmcm9tICcuL3dvcmtiZW5jaC1yb3V0ZS1kYXRhJztcbmltcG9ydCB7ybVFbXB0eU91dGxldENvbXBvbmVudH0gZnJvbSAnLi9lbXB0eS1vdXRsZXQvZW1wdHktb3V0bGV0LmNvbXBvbmVudCc7XG5cbi8qKlxuICogRmFjaWxpdGF0ZXMgdGhlIHJlZ2lzdHJhdGlvbiBvZiBhdXhpbGlhcnkgcm91dGVzIG9mIHRvcC1sZXZlbCByb3V0ZXMuXG4gKi9cbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCd9KVxuZXhwb3J0IGNsYXNzIFdvcmtiZW5jaEF1eGlsaWFyeVJvdXRlc1JlZ2lzdHJhdG9yIHtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF93b3JrYmVuY2hDb25maWc6IFdvcmtiZW5jaENvbmZpZywgcHJpdmF0ZSBfcm91dGVyOiBSb3V0ZXIpIHtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlcnMgYW4gYXV4aWxpYXJ5IHJvdXRlIGZvciBlYWNoIHRvcC1sZXZlbCByb3V0ZSwgZW5hYmxpbmcgbmF2aWdhdGlvbiBpbiB0aGUgc3BlY2lmaWVkIHJvdXRlciBvdXRsZXQocykuXG4gICAqXG4gICAqIEBwYXJhbSBvdXRsZXRzIC0gU3BlY2lmaWVzIG91dGxldHMgZm9yIHdoaWNoIHRvIGNyZWF0ZSBhdXhpbGlhcnkgcm91dGVzLlxuICAgKiBAcGFyYW0gY29uZmlnIC0gU3BlY2lmaWVzIHRoZSBjb25maWcgb2YgdGhlIGF1eGlsaWFyeSByb3V0ZXMuXG4gICAqL1xuICBwdWJsaWMgcmVnaXN0ZXJBdXhpbGlhcnlSb3V0ZXMob3V0bGV0czogc3RyaW5nW10sIGNvbmZpZzogQXV4aWxpYXJ5Um91dGVDb25maWcgPSB7fSk6IFJvdXRlcyB7XG4gICAgaWYgKCFvdXRsZXRzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGNvbnN0IHJlZ2lzdGVyZWRSb3V0ZXMgPSBvdXRsZXRzLm1hcChvdXRsZXQgPT4gKHtcbiAgICAgIHBhdGg6ICcnLFxuICAgICAgb3V0bGV0LFxuICAgICAgcHJvdmlkZXJzOiBbe3Byb3ZpZGU6IFdPUktCRU5DSF9BVVhJTElBUllfUk9VVEVfT1VUTEVULCB1c2VWYWx1ZTogb3V0bGV0fV0sXG4gICAgICBjb21wb25lbnQ6IMm1RW1wdHlPdXRsZXRDb21wb25lbnQsXG4gICAgICBjaGlsZHJlbjogW1xuICAgICAgICAuLi50aGlzLl9yb3V0ZXIuY29uZmlnXG4gICAgICAgICAgLmZpbHRlcihyb3V0ZSA9PiAhcm91dGUub3V0bGV0IHx8IHJvdXRlLm91dGxldCA9PT0gUFJJTUFSWV9PVVRMRVQpXG4gICAgICAgICAgLm1hcChyb3V0ZSA9PiAoey4uLnJvdXRlLCBkYXRhOiB7Li4ucm91dGUuZGF0YSwgW1dvcmtiZW5jaFJvdXRlRGF0YS7JtW91dGxldF06IG91dGxldH19KSksXG4gICAgICAgIC8vIFJlZ2lzdGVyIFwiUGFnZSBOb3QgRm91bmRcIiByb3V0ZSBhcyB0aGUgbGFzdCByb3V0ZSBvZiB0aGUgb3V0bGV0LlxuICAgICAgICB7XG4gICAgICAgICAgcGF0aDogJyoqJyxcbiAgICAgICAgICBsb2FkQ29tcG9uZW50OiAoKSA9PiB0aGlzLl93b3JrYmVuY2hDb25maWcucGFnZU5vdEZvdW5kQ29tcG9uZW50ID8/IFBhZ2VOb3RGb3VuZENvbXBvbmVudCxcbiAgICAgICAgICBkYXRhOiB7W1dvcmtiZW5jaFJvdXRlRGF0YS50aXRsZV06ICdQYWdlIE5vdCBGb3VuZCcsIFtXb3JrYmVuY2hSb3V0ZURhdGEuY3NzQ2xhc3NdOiAnZTJlLXBhZ2Utbm90LWZvdW5kJ30sXG4gICAgICAgICAgY2FuTWF0Y2g6IGNvbmZpZy5jYW5NYXRjaE5vdEZvdW5kUGFnZSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSkpO1xuXG4gICAgdGhpcy5yZXBsYWNlUm91dGVyQ29uZmlnKFtcbiAgICAgIC4uLnRoaXMuX3JvdXRlci5jb25maWcsXG4gICAgICAuLi5yZWdpc3RlcmVkUm91dGVzLFxuICAgIF0pO1xuXG4gICAgcmV0dXJuIHJlZ2lzdGVyZWRSb3V0ZXM7XG4gIH1cblxuICAvKipcbiAgICogVW5yZWdpc3RlcnMgYXV4aWxpYXJ5IHJvdXRlcyBmb3IgdGhlIGdpdmVuIG91dGxldC5cbiAgICovXG4gIHB1YmxpYyB1bnJlZ2lzdGVyQXV4aWxpYXJ5Um91dGVzKG91dGxldHM6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgY29uc3Qgb3V0bGV0c1RvUmVtb3ZlID0gbmV3IFNldDxzdHJpbmc+KG91dGxldHMpO1xuXG4gICAgZnVuY3Rpb24gc2hvdWxkUmVtb3ZlUm91dGUocm91dGU6IFJvdXRlKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gISFyb3V0ZS5vdXRsZXQgJiYgb3V0bGV0c1RvUmVtb3ZlLmhhcyhyb3V0ZS5vdXRsZXQpO1xuICAgIH1cblxuICAgIHRoaXMucmVwbGFjZVJvdXRlckNvbmZpZyh0aGlzLl9yb3V0ZXIuY29uZmlnLmZpbHRlcihyb3V0ZSA9PiAhc2hvdWxkUmVtb3ZlUm91dGUocm91dGUpKSk7XG4gIH1cblxuICAvKipcbiAgICogUmVwbGFjZXMgdGhlIHJvdXRlciBjb25maWd1cmF0aW9uIHRvIGluc3RhbGwgb3IgdW5pbnN0YWxsIGF1eGlsaWFyeSByb3V0ZXMuXG4gICAqL1xuICBwcml2YXRlIHJlcGxhY2VSb3V0ZXJDb25maWcoY29uZmlnOiBSb3V0ZXMpOiB2b2lkIHtcbiAgICAvLyBOb3RlOlxuICAgIC8vICAgLSBEbyBub3QgdXNlIFJvdXRlci5yZXNldENvbmZpZyguLi4pIHdoaWNoIHdvdWxkIGRlc3Ryb3kgYW55IGN1cnJlbnRseSByb3V0ZWQgY29tcG9uZW50IGJlY2F1c2UgY29weWluZyBhbGwgcm91dGVzXG4gICAgLy8gICAtIERvIG5vdCBhc3NpZ24gdGhlIHJvdXRlciBhIG5ldyBSb3V0ZXMgb2JqZWN0IChSb3V0ZXIuY29uZmlnID0gLi4uKSB0byBhbGxvdyByZXNvbHV0aW9uIG9mIHJvdXRlcyBhZGRlZCBkdXJpbmcgYE5hdmlnYXRpb25TdGFydGAgKHNpbmNlIEFuZ3VsYXIgNy54KVxuICAgIC8vICAgICAoYmVjYXVzZSBBbmd1bGFyIHVzZXMgYSByZWZlcmVuY2UgdG8gdGhlIFJvdXRlcyBvYmplY3QgZHVyaW5nIHJvdXRlIG5hdmlnYXRpb24pXG4gICAgY29uc3QgbmV3Um91dGVzOiBSb3V0ZXMgPSBbLi4uY29uZmlnXTtcbiAgICB0aGlzLl9yb3V0ZXIuY29uZmlnLnNwbGljZSgwLCB0aGlzLl9yb3V0ZXIuY29uZmlnLmxlbmd0aCwgLi4ubmV3Um91dGVzKTtcbiAgfVxufVxuXG4vKipcbiAqIENvbmZpZ3VyZXMgYXV4aWxpYXJ5IHJvdXRlcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBdXhpbGlhcnlSb3V0ZUNvbmZpZyB7XG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgXCJDYW5NYXRjaFwiIGd1YXJkKHMpIHRvIGluc3RhbGwgb24gdGhlIHdpbGRjYXJkIHJvdXRlIChgKipgKSxcbiAgICogc2VsZWN0ZWQgYnkgdGhlIHJvdXRlciBpZiBubyByb3V0ZSBtYXRjaGVzIHRoZSByZXF1ZXN0ZWQgVVJMLlxuICAgKi9cbiAgY2FuTWF0Y2hOb3RGb3VuZFBhZ2U/OiBBcnJheTxDYW5NYXRjaEZuPjtcbn1cblxuLyoqXG4gKiBESSB0b2tlbiB0byBpbmplY3QgdGhlIG91dGxldCBuYW1lIG9mIGEgd29ya2JlbmNoIGF1eGlsaWFyeSByb3V0ZS5cbiAqXG4gKiBDYW4gYmUgaW5qZWN0ZWQgaW4gYSBgQ2FuTWF0Y2hgIGd1YXJkIHRvIG9idGFpbiBhIHJlZmVyZW5jZSB0byB0aGUgd29ya2JlbmNoIGVsZW1lbnQuXG4gKi9cbmV4cG9ydCBjb25zdCBXT1JLQkVOQ0hfQVVYSUxJQVJZX1JPVVRFX09VVExFVCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KCfJtVdPUktCRU5DSF9BVVhJTElBUllfUk9VVEVfT1VUTEVUJyk7XG4iXX0=
@@ -1,47 +0,0 @@
1
- /*
2
- * Copyright (c) 2018-2024 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
- import { WorkbenchLayouts } from '../layout/workbench-layouts.util';
13
- import { WORKBENCH_AUXILIARY_ROUTE_OUTLET } from '../routing/workbench-auxiliary-routes-registrator.service';
14
- export function canMatchWorkbenchView(condition) {
15
- return () => {
16
- const outlet = inject(WORKBENCH_AUXILIARY_ROUTE_OUTLET, { optional: true });
17
- switch (condition) {
18
- case true:
19
- return WorkbenchLayouts.isViewId(outlet);
20
- case false:
21
- return !WorkbenchLayouts.isViewId(outlet);
22
- default: { // hint
23
- if (!WorkbenchLayouts.isViewId(outlet)) {
24
- return false;
25
- }
26
- const layout = inject(ɵWorkbenchRouter).getCurrentNavigationContext().layout;
27
- const view = layout.view({ viewId: outlet }, { orElse: null });
28
- return view?.navigation?.hint === condition;
29
- }
30
- }
31
- };
32
- }
33
- /**
34
- * Matches if the view has been navigated (or cannot be found).
35
- *
36
- * The view cannot be found during initial navigation as the workbench layout is loaded asynchronously.
37
- */
38
- export const canMatchNotFoundPage = () => {
39
- const outlet = inject(WORKBENCH_AUXILIARY_ROUTE_OUTLET, { optional: true });
40
- if (!WorkbenchLayouts.isViewId(outlet)) {
41
- throw Error(`[ViewError] CanMatchFn must be installed on a view auxiliary route. [outlet=${outlet}]`);
42
- }
43
- const layout = inject(ɵWorkbenchRouter).getCurrentNavigationContext().layout;
44
- const view = layout.view({ viewId: outlet }, { orElse: null });
45
- return !view || !!view.navigation;
46
- };
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2JlbmNoLXZpZXctcm91dGUtZ3VhcmRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vd29ya2JlbmNoL3NyYy9saWIvdmlldy93b3JrYmVuY2gtdmlldy1yb3V0ZS1ndWFyZHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0dBUUc7QUFHSCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3JDLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQ3RFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQ2xFLE9BQU8sRUFBQyxnQ0FBZ0MsRUFBQyxNQUFNLDJEQUEyRCxDQUFDO0FBK0IzRyxNQUFNLFVBQVUscUJBQXFCLENBQUMsU0FBMkI7SUFDL0QsT0FBTyxHQUFZLEVBQUU7UUFDbkIsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLGdDQUFnQyxFQUFFLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7UUFFMUUsUUFBUSxTQUFTLEVBQUUsQ0FBQztZQUNsQixLQUFLLElBQUk7Z0JBQ1AsT0FBTyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDM0MsS0FBSyxLQUFLO2dCQUNSLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDNUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU87Z0JBQ2hCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztvQkFDdkMsT0FBTyxLQUFLLENBQUM7Z0JBQ2YsQ0FBQztnQkFFRCxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQywyQkFBMkIsRUFBRSxDQUFDLE1BQU0sQ0FBQztnQkFDN0UsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUMsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO2dCQUMzRCxPQUFPLElBQUksRUFBRSxVQUFVLEVBQUUsSUFBSSxLQUFLLFNBQVMsQ0FBQztZQUM5QyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQWUsR0FBWSxFQUFFO0lBQzVELE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxnQ0FBZ0MsRUFBRSxFQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO0lBRTFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUN2QyxNQUFNLEtBQUssQ0FBQywrRUFBK0UsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUN4RyxDQUFDO0lBRUQsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUMsMkJBQTJCLEVBQUUsQ0FBQyxNQUFNLENBQUM7SUFDN0UsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUMsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO0lBQzNELE9BQU8sQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7QUFDcEMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDI0IFN3aXNzIEZlZGVyYWwgUmFpbHdheXNcbiAqXG4gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlXG4gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMFxuICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjBcbiAqL1xuXG5pbXBvcnQge0Nhbk1hdGNoRm59IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge2luamVjdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge8m1V29ya2JlbmNoUm91dGVyfSBmcm9tICcuLi9yb3V0aW5nL8m1d29ya2JlbmNoLXJvdXRlci5zZXJ2aWNlJztcbmltcG9ydCB7V29ya2JlbmNoTGF5b3V0c30gZnJvbSAnLi4vbGF5b3V0L3dvcmtiZW5jaC1sYXlvdXRzLnV0aWwnO1xuaW1wb3J0IHtXT1JLQkVOQ0hfQVVYSUxJQVJZX1JPVVRFX09VVExFVH0gZnJvbSAnLi4vcm91dGluZy93b3JrYmVuY2gtYXV4aWxpYXJ5LXJvdXRlcy1yZWdpc3RyYXRvci5zZXJ2aWNlJztcblxuLyoqXG4gKiBNYXRjaGVzIHRoZSByb3V0ZSBpZiB0YXJnZXQgb2YgYSB3b3JrYmVuY2ggdmlldyBhbmQgbmF2aWdhdGluZyB3aXRoIHRoZSBnaXZlbiBoaW50LlxuICpcbiAqIENhbiBiZSB1c2VkIHRvIGRpZmZlcmVudGlhdGUgYmV0d2VlbiByb3V0ZXMgd2l0aCBhbiBpZGVudGljYWwgcGF0aC4gRm9yIGV4YW1wbGUsIHRoZSB2aWV3cyBvZiB0aGUgaW5pdGlhbCBsYXlvdXQgb3IgYSBwZXJzcGVjdGl2ZVxuICogYXJlIHVzdWFsbHkgbmF2aWdhdGVkIHRvIHRoZSBlbXB0eSBwYXRoIHJvdXRlIHRvIGF2b2lkIGNsdXR0ZXJpbmcgdGhlIFVSTC4gQSBoaW50IGNhbiBiZSBzZXQgd2hlbiBuYXZpZ2F0aW5nIHRoZSB2aWV3IHRvIG1hdGNoIGFcbiAqIHBhcnRpY3VsYXIgcm91dGUuXG4gKlxuICogIyMjIEV4YW1wbGU6XG4gKlxuICogVGhlIGZvbGxvd2luZyByb3V0ZXMgYm90aCBtYXRjaCB0aGUgZW1wdHkgcGF0aCwgYnV0IG9ubHkgaWYgbmF2aWdhdGVkIHdpdGggYSBzcGVjaWZpYyBoaW50LlxuICogYGBgdHNcbiAqIGNvbnN0IHJvdXRlczogUm91dGVzID0gW1xuICogICB7cGF0aDogJycsIGNhbk1hdGNoOiBbY2FuTWF0Y2hXb3JrYmVuY2hWaWV3KCduYXZpZ2F0b3InKV0sIGNvbXBvbmVudDogTmF2aWdhdG9yQ29tcG9uZW50fSxcbiAqICAge3BhdGg6ICcnLCBjYW5NYXRjaDogW2Nhbk1hdGNoV29ya2JlbmNoVmlldygnb3V0bGluZScpXSwgY29tcG9uZW50OiBPdXRsaW5lQ29tcG9uZW50fSxcbiAqIF07XG4gKiBgYGBcbiAqXG4gKiBUaGUgZm9sbG93aW5nIGV4YW1wbGUgbmF2aWdhdGVzIHRvIHRoZSBgT3V0bGluZUNvbXBvbmVudGAsIHBhc3NpbmcgYSBoaW50IHRvIG1hdGNoIHRoZSByb3V0ZS5cbiAqIGBgYHRzXG4gKiBpbmplY3QoV29ya2JlbmNoUm91dGVyKS5uYXZpZ2F0ZShbXSwge2hpbnQ6ICdvdXRsaW5lJ30pO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjYW5NYXRjaFdvcmtiZW5jaFZpZXcobmF2aWdhdGlvbkhpbnQ6IHN0cmluZyk6IENhbk1hdGNoRm47XG4vKipcbiAqIE1hdGNoZXMgdGhlIHJvdXRlIGlmLCBvciBpZiBub3QgdGFyZ2V0IG9mIGEgd29ya2JlbmNoIHZpZXcuXG4gKlxuICogQ2FuIGJlIHVzZWQgdG8gZ3VhcmQgdGhlIGFwcGxpY2F0aW9uJ3Mgcm9vdCByb3V0ZSBmcm9tIG1hdGNoaW5nIGFuIGVtcHR5IHBhdGggdmlldyBuYXZpZ2F0aW9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY2FuTWF0Y2hXb3JrYmVuY2hWaWV3KGNhbk1hdGNoOiBib29sZWFuKTogQ2FuTWF0Y2hGbjtcbmV4cG9ydCBmdW5jdGlvbiBjYW5NYXRjaFdvcmtiZW5jaFZpZXcoY29uZGl0aW9uOiBzdHJpbmcgfCBib29sZWFuKTogQ2FuTWF0Y2hGbiB7XG4gIHJldHVybiAoKTogYm9vbGVhbiA9PiB7XG4gICAgY29uc3Qgb3V0bGV0ID0gaW5qZWN0KFdPUktCRU5DSF9BVVhJTElBUllfUk9VVEVfT1VUTEVULCB7b3B0aW9uYWw6IHRydWV9KTtcblxuICAgIHN3aXRjaCAoY29uZGl0aW9uKSB7XG4gICAgICBjYXNlIHRydWU6XG4gICAgICAgIHJldHVybiBXb3JrYmVuY2hMYXlvdXRzLmlzVmlld0lkKG91dGxldCk7XG4gICAgICBjYXNlIGZhbHNlOlxuICAgICAgICByZXR1cm4gIVdvcmtiZW5jaExheW91dHMuaXNWaWV3SWQob3V0bGV0KTtcbiAgICAgIGRlZmF1bHQ6IHsgLy8gaGludFxuICAgICAgICBpZiAoIVdvcmtiZW5jaExheW91dHMuaXNWaWV3SWQob3V0bGV0KSkge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGxheW91dCA9IGluamVjdCjJtVdvcmtiZW5jaFJvdXRlcikuZ2V0Q3VycmVudE5hdmlnYXRpb25Db250ZXh0KCkubGF5b3V0O1xuICAgICAgICBjb25zdCB2aWV3ID0gbGF5b3V0LnZpZXcoe3ZpZXdJZDogb3V0bGV0fSwge29yRWxzZTogbnVsbH0pO1xuICAgICAgICByZXR1cm4gdmlldz8ubmF2aWdhdGlvbj8uaGludCA9PT0gY29uZGl0aW9uO1xuICAgICAgfVxuICAgIH1cbiAgfTtcbn1cblxuLyoqXG4gKiBNYXRjaGVzIGlmIHRoZSB2aWV3IGhhcyBiZWVuIG5hdmlnYXRlZCAob3IgY2Fubm90IGJlIGZvdW5kKS5cbiAqXG4gKiBUaGUgdmlldyBjYW5ub3QgYmUgZm91bmQgZHVyaW5nIGluaXRpYWwgbmF2aWdhdGlvbiBhcyB0aGUgd29ya2JlbmNoIGxheW91dCBpcyBsb2FkZWQgYXN5bmNocm9ub3VzbHkuXG4gKi9cbmV4cG9ydCBjb25zdCBjYW5NYXRjaE5vdEZvdW5kUGFnZTogQ2FuTWF0Y2hGbiA9ICgpOiBib29sZWFuID0+IHtcbiAgY29uc3Qgb3V0bGV0ID0gaW5qZWN0KFdPUktCRU5DSF9BVVhJTElBUllfUk9VVEVfT1VUTEVULCB7b3B0aW9uYWw6IHRydWV9KTtcblxuICBpZiAoIVdvcmtiZW5jaExheW91dHMuaXNWaWV3SWQob3V0bGV0KSkge1xuICAgIHRocm93IEVycm9yKGBbVmlld0Vycm9yXSBDYW5NYXRjaEZuIG11c3QgYmUgaW5zdGFsbGVkIG9uIGEgdmlldyBhdXhpbGlhcnkgcm91dGUuIFtvdXRsZXQ9JHtvdXRsZXR9XWApO1xuICB9XG5cbiAgY29uc3QgbGF5b3V0ID0gaW5qZWN0KMm1V29ya2JlbmNoUm91dGVyKS5nZXRDdXJyZW50TmF2aWdhdGlvbkNvbnRleHQoKS5sYXlvdXQ7XG4gIGNvbnN0IHZpZXcgPSBsYXlvdXQudmlldyh7dmlld0lkOiBvdXRsZXR9LCB7b3JFbHNlOiBudWxsfSk7XG4gIHJldHVybiAhdmlldyB8fCAhIXZpZXcubmF2aWdhdGlvbjtcbn07XG4iXX0=
@@ -1,10 +0,0 @@
1
- import { PipeTransform, Predicate } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- /**
4
- * Filters items that match the given predicate.
5
- */
6
- export declare class FilterByPredicatePipe implements PipeTransform {
7
- transform<T>(items: T[] | null | undefined, predicate: Predicate<T>): T[];
8
- static ɵfac: i0.ɵɵFactoryDeclaration<FilterByPredicatePipe, never>;
9
- static ɵpipe: i0.ɵɵPipeDeclaration<FilterByPredicatePipe, "wbFilterByPredicate", true>;
10
- }
@@ -1,12 +0,0 @@
1
- import { PipeTransform } from '@angular/core';
2
- import { FormControl } from '@angular/forms';
3
- import { Observable } from 'rxjs';
4
- import * as i0 from "@angular/core";
5
- /**
6
- * Filters items that match the text of the given {@link FormControl}.
7
- */
8
- export declare class FilterByTextPipe implements PipeTransform {
9
- transform<T>(items: T[] | null | undefined, filterControl: FormControl<string>, itemTextFn: (item: T) => string | undefined): Observable<T[]>;
10
- static ɵfac: i0.ɵɵFactoryDeclaration<FilterByTextPipe, never>;
11
- static ɵpipe: i0.ɵɵPipeDeclaration<FilterByTextPipe, "wbFilterByText$", true>;
12
- }
@@ -1,8 +0,0 @@
1
- /**
2
- * Format of a UUID (universally unique identifier) compliant with the RFC 4122 version 4.
3
- */
4
- export type UUID = `${string}-${string}-${string}-${string}-${string}`;
5
- /**
6
- * Generates a UUID (universally unique identifier) compliant with the RFC 4122 version 4.
7
- */
8
- export declare function randomUUID(): UUID;
@@ -1,30 +0,0 @@
1
- import { ElementRef, OnChanges, OnDestroy, SimpleChanges, TemplateRef, ViewContainerRef } from '@angular/core';
2
- import { ɵWorkbenchView } from '../view/ɵworkbench-view.model';
3
- import * as i0 from "@angular/core";
4
- /**
5
- * Renders a given template as overlay. The template will stick to the bounding box of the host element of this directive.
6
- */
7
- export declare class ContentProjectionDirective implements OnChanges, OnDestroy {
8
- private _host;
9
- private _view;
10
- private _contentViewRef;
11
- /**
12
- * Reference to the view container where to insert the overlay.
13
- */
14
- overlayHost: ViewContainerRef | undefined | null;
15
- /**
16
- * Template which to render as overlay. The template will stick to the bounding box of the host element of this directive.
17
- */
18
- contentTemplateRef: TemplateRef<void>;
19
- constructor(_host: ElementRef<HTMLElement>, _view: ɵWorkbenchView);
20
- ngOnChanges(changes: SimpleChanges): void;
21
- /**
22
- * Aligns the content of the projection to the boundaries of the host element.
23
- */
24
- private alignContentToHostBoundaries;
25
- private setVisible;
26
- private styleContent;
27
- ngOnDestroy(): void;
28
- static ɵfac: i0.ɵɵFactoryDeclaration<ContentProjectionDirective, [null, { optional: true; }]>;
29
- static ɵdir: i0.ɵɵDirectiveDeclaration<ContentProjectionDirective, "[wbContentProjection]", never, { "overlayHost": { "alias": "wbContentProjectionOverlayHost"; "required": true; }; "contentTemplateRef": { "alias": "wbContentProjectionContent"; "required": true; }; }, {}, never, never, true, never>;
30
- }
@@ -1,42 +0,0 @@
1
- import { InjectionToken, ViewContainerRef } from '@angular/core';
2
- import { Observable } from 'rxjs';
3
- /**
4
- * Handle holding a reference to a DOM location.
5
- */
6
- export declare class ViewContainerReference {
7
- private _ref$;
8
- /**
9
- * Sets the given {@link ViewContainerRef}.
10
- */
11
- set(vcr: ViewContainerRef): void;
12
- /**
13
- * Unsets the reference.
14
- */
15
- unset(): void;
16
- /**
17
- * Returns the {@link ViewContainerRef}. If not set, by default, throws an error unless setting the `orElseUndefined` option.
18
- */
19
- ref(): ViewContainerRef;
20
- ref(options: {
21
- orElse: undefined;
22
- }): ViewContainerRef | undefined;
23
- /**
24
- * Emits the {@link ViewContainerRef}, or undefined if not set.
25
- *
26
- * Upon subscription, emits the current reference (or `undefined` if not set), and then continues to emit each time the reference changes.
27
- * The observable never completes.
28
- */
29
- get ref$(): Observable<ViewContainerRef | undefined>;
30
- }
31
- /**
32
- * DI token to inject the DOM location where to attach iframes.
33
- */
34
- export declare const IFRAME_HOST: InjectionToken<ViewContainerReference>;
35
- /**
36
- * DI token to inject the DOM location where to attach the visual placeholder when dragging a view over a valid drop zone.
37
- */
38
- export declare const VIEW_DROP_PLACEHOLDER_HOST: InjectionToken<ViewContainerReference>;
39
- /**
40
- * DI token to inject the DOM location of the {@link WorkbenchComponent} HTML element.
41
- */
42
- export declare const WORKBENCH_ELEMENT_REF: InjectionToken<ViewContainerReference>;
@@ -1,10 +0,0 @@
1
- import { Capability, CapabilityInterceptor } from '@scion/microfrontend-platform';
2
- import * as i0 from "@angular/core";
3
- /**
4
- * Assigns each view capability a stable identifer required for persistent navigation.
5
- */
6
- export declare class MicrofrontendViewCapabilityIdAssigner implements CapabilityInterceptor {
7
- intercept(capability: Capability): Promise<Capability>;
8
- static ɵfac: i0.ɵɵFactoryDeclaration<MicrofrontendViewCapabilityIdAssigner, never>;
9
- static ɵprov: i0.ɵɵInjectableDeclaration<MicrofrontendViewCapabilityIdAssigner>;
10
- }