@scion/workbench 18.0.0-beta.9 → 19.0.0-beta.1

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 (253) hide show
  1. package/design/_workbench-view-global-styles.scss +0 -1
  2. package/fesm2022/scion-workbench.mjs +8556 -8622
  3. package/fesm2022/scion-workbench.mjs.map +1 -1
  4. package/lib/common/css-class.util.d.ts +5 -0
  5. package/lib/common/math.util.d.ts +7 -0
  6. package/lib/common/objects.util.d.ts +1 -1
  7. package/lib/dialog/workbench-dialog.component.d.ts +1 -2
  8. package/lib/layout/migration/model/workbench-layout-migration-v6.model.d.ts +35 -0
  9. package/lib/layout/migration/workbench-layout-migration-v6.service.d.ts +12 -0
  10. package/lib/layout/workbench-layout.model.d.ts +0 -1
  11. package/lib/layout/workbench-layout.service.d.ts +10 -12
  12. package/lib/layout/workench-layout-serializer.service.d.ts +1 -2
  13. package/lib/part/part-action-bar/part-action-bar.component.d.ts +2 -6
  14. package/lib/part/part-bar/part-bar.component.d.ts +66 -48
  15. package/lib/part/view-tab/view-tab.component.d.ts +3 -3
  16. package/lib/public_api.d.ts +0 -2
  17. package/lib/routing/routing.util.d.ts +2 -2
  18. package/lib/view/view-move-handler.service.d.ts +16 -14
  19. package/lib/view/view.component.d.ts +1 -2
  20. package/lib/view//311/265workbench-view.model.d.ts +1 -9
  21. package/lib/view-dnd/grid-drop-targets.util.d.ts +1 -1
  22. package/lib/view-dnd/view-drag.service.d.ts +72 -49
  23. package/lib/view-dnd/view-tab-drag-image-renderer.service.d.ts +11 -36
  24. package/package.json +8 -10
  25. package/esm2022/lib/activation-instant.provider.mjs +0 -29
  26. package/esm2022/lib/common/animation-frame.observable.mjs +0 -37
  27. package/esm2022/lib/common/asserts.util.mjs +0 -31
  28. package/esm2022/lib/common/class-list.mjs +0 -99
  29. package/esm2022/lib/common/coerce-observable.pipe.mjs +0 -28
  30. package/esm2022/lib/common/disposable.mjs +0 -11
  31. package/esm2022/lib/common/dom.util.mjs +0 -100
  32. package/esm2022/lib/common/grid-element-if-visible.pipe.mjs +0 -32
  33. package/esm2022/lib/common/instanceof.pipe.mjs +0 -26
  34. package/esm2022/lib/common/map-coerce.pipe.mjs +0 -28
  35. package/esm2022/lib/common/null-if-empty.pipe.mjs +0 -38
  36. package/esm2022/lib/common/objects.util.mjs +0 -40
  37. package/esm2022/lib/common/observables.mjs +0 -72
  38. package/esm2022/lib/common/operators.mjs +0 -27
  39. package/esm2022/lib/common/public_api.mjs +0 -11
  40. package/esm2022/lib/common/stringify-error.util.mjs +0 -19
  41. package/esm2022/lib/common/throw-error.util.mjs +0 -16
  42. package/esm2022/lib/common/typeof.pipe.mjs +0 -26
  43. package/esm2022/lib/common/uid.util.mjs +0 -22
  44. package/esm2022/lib/common//311/265destroy-ref.mjs +0 -36
  45. package/esm2022/lib/communication/workbench-broadcast-channel.mjs +0 -38
  46. package/esm2022/lib/content-projection/content-as-overlay.component.mjs +0 -114
  47. package/esm2022/lib/content-projection/workbench-element-references.mjs +0 -32
  48. package/esm2022/lib/dialog/dialog-footer/dialog-action-filter.pipe.mjs +0 -26
  49. package/esm2022/lib/dialog/dialog-footer/dialog-footer.component.mjs +0 -34
  50. package/esm2022/lib/dialog/dialog-footer/workbench-dialog-action.directive.mjs +0 -51
  51. package/esm2022/lib/dialog/dialog-footer/workbench-dialog-footer.directive.mjs +0 -46
  52. package/esm2022/lib/dialog/dialog-header/dialog-header.component.mjs +0 -33
  53. package/esm2022/lib/dialog/dialog-header/workbench-dialog-header.directive.mjs +0 -46
  54. package/esm2022/lib/dialog/movable.directive.mjs +0 -126
  55. package/esm2022/lib/dialog/public_api.mjs +0 -15
  56. package/esm2022/lib/dialog/resizable.directive.mjs +0 -392
  57. package/esm2022/lib/dialog/workbench-dialog.component.mjs +0 -250
  58. package/esm2022/lib/dialog/workbench-dialog.mjs +0 -79
  59. package/esm2022/lib/dialog/workbench-dialog.options.mjs +0 -11
  60. package/esm2022/lib/dialog/workbench-dialog.registry.mjs +0 -73
  61. package/esm2022/lib/dialog/workbench-dialog.service.mjs +0 -96
  62. package/esm2022/lib/dialog//311/265workbench-dialog.mjs +0 -310
  63. package/esm2022/lib/dialog//311/265workbench-dialog.service.mjs +0 -98
  64. package/esm2022/lib/executor/latest-task-executor.mjs +0 -55
  65. package/esm2022/lib/executor/single-task-executor.mjs +0 -72
  66. package/esm2022/lib/filter-field/filter-field.component.mjs +0 -130
  67. package/esm2022/lib/glass-pane/blockable.mjs +0 -11
  68. package/esm2022/lib/glass-pane/blocking.mjs +0 -11
  69. package/esm2022/lib/glass-pane/glass-pane.directive.mjs +0 -120
  70. package/esm2022/lib/layout/grid-element/grid-element.component.mjs +0 -111
  71. package/esm2022/lib/layout/main-area-layout/main-area-layout.component.mjs +0 -97
  72. package/esm2022/lib/layout/migration/model/workbench-layout-migration-v2.model.mjs +0 -11
  73. package/esm2022/lib/layout/migration/model/workbench-layout-migration-v3.model.mjs +0 -11
  74. package/esm2022/lib/layout/migration/model/workbench-layout-migration-v4.model.mjs +0 -11
  75. package/esm2022/lib/layout/migration/model/workbench-layout-migration-v5.model.mjs +0 -11
  76. package/esm2022/lib/layout/migration/workbench-layout-migration-v3.service.mjs +0 -117
  77. package/esm2022/lib/layout/migration/workbench-layout-migration-v4.service.mjs +0 -57
  78. package/esm2022/lib/layout/migration/workbench-layout-migration-v5.service.mjs +0 -67
  79. package/esm2022/lib/layout/public_api.mjs +0 -12
  80. package/esm2022/lib/layout/stringifier.mjs +0 -70
  81. package/esm2022/lib/layout/workbench-layout.component.mjs +0 -90
  82. package/esm2022/lib/layout/workbench-layout.factory.mjs +0 -24
  83. package/esm2022/lib/layout/workbench-layout.mjs +0 -16
  84. package/esm2022/lib/layout/workbench-layout.model.mjs +0 -62
  85. package/esm2022/lib/layout/workbench-layout.service.mjs +0 -68
  86. package/esm2022/lib/layout/workbench-layouts.util.mjs +0 -58
  87. package/esm2022/lib/layout/workench-layout-serializer.service.mjs +0 -109
  88. package/esm2022/lib/layout//311/265workbench-layout.factory.mjs +0 -54
  89. package/esm2022/lib/layout//311/265workbench-layout.mjs +0 -876
  90. package/esm2022/lib/logging/console-appender.service.mjs +0 -46
  91. package/esm2022/lib/logging/index.mjs +0 -15
  92. package/esm2022/lib/logging/logger-names.mjs +0 -32
  93. package/esm2022/lib/logging/logger.mjs +0 -36
  94. package/esm2022/lib/logging/logging-support.mjs +0 -26
  95. package/esm2022/lib/logging/logging.model.mjs +0 -45
  96. package/esm2022/lib/logging/public_api.mjs +0 -12
  97. package/esm2022/lib/logging//311/265logger.mjs +0 -73
  98. package/esm2022/lib/message-box/message-box-footer/message-box-footer.component.mjs +0 -69
  99. package/esm2022/lib/message-box/message-box-header/message-box-header.component.mjs +0 -28
  100. package/esm2022/lib/message-box/public_api.mjs +0 -11
  101. package/esm2022/lib/message-box/workbench-message-box.component.mjs +0 -102
  102. package/esm2022/lib/message-box/workbench-message-box.options.mjs +0 -2
  103. package/esm2022/lib/message-box/workbench-message-box.service.mjs +0 -39
  104. package/esm2022/lib/message-box//311/265workbench-message-box.service.mjs +0 -45
  105. package/esm2022/lib/microfrontend-platform/common/microfrontend.util.mjs +0 -71
  106. package/esm2022/lib/microfrontend-platform/initialization/microfrontend-platform-initializer.service.mjs +0 -126
  107. package/esm2022/lib/microfrontend-platform/initialization/ng-zone-observable-decorator.mjs +0 -36
  108. package/esm2022/lib/microfrontend-platform/initialization/workbench-host-manifest-interceptor.service.mjs +0 -84
  109. package/esm2022/lib/microfrontend-platform/manifest-object-cache.service.mjs +0 -63
  110. package/esm2022/lib/microfrontend-platform/microfrontend-dialog/microfrontend-dialog-capability-validator.interceptor.mjs +0 -54
  111. package/esm2022/lib/microfrontend-platform/microfrontend-dialog/microfrontend-dialog-intent-handler.interceptor.mjs +0 -85
  112. package/esm2022/lib/microfrontend-platform/microfrontend-dialog/microfrontend-dialog.component.mjs +0 -140
  113. package/esm2022/lib/microfrontend-platform/microfrontend-host-dialog/microfrontend-host-dialog.component.mjs +0 -133
  114. package/esm2022/lib/microfrontend-platform/microfrontend-host-message-box/microfrontend-host-message-box.component.mjs +0 -113
  115. package/esm2022/lib/microfrontend-platform/microfrontend-host-message-box/text-message/text-message.component.mjs +0 -43
  116. package/esm2022/lib/microfrontend-platform/microfrontend-host-popup/microfrontend-host-popup.component.mjs +0 -101
  117. package/esm2022/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box-capability-validator.interceptor.mjs +0 -35
  118. package/esm2022/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box-intent-handler.interceptor.mjs +0 -88
  119. package/esm2022/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box-legacy-intent-translator.interceptor.mjs +0 -32
  120. package/esm2022/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box.component.mjs +0 -121
  121. package/esm2022/lib/microfrontend-platform/microfrontend-notification/microfrontend-notification-intent-handler.service.mjs +0 -45
  122. package/esm2022/lib/microfrontend-platform/microfrontend-perspective/microfrontend-perspective-capability-validator.interceptor.mjs +0 -39
  123. package/esm2022/lib/microfrontend-platform/microfrontend-perspective/microfrontend-perspective-installer.service.mjs +0 -120
  124. package/esm2022/lib/microfrontend-platform/microfrontend-perspective/microfrontend-perspective-intent-handler.interceptor.mjs +0 -55
  125. package/esm2022/lib/microfrontend-platform/microfrontend-perspective/workbench-perspective-data.mjs +0 -19
  126. package/esm2022/lib/microfrontend-platform/microfrontend-platform-config-loader.mjs +0 -13
  127. package/esm2022/lib/microfrontend-platform/microfrontend-platform.config.mjs +0 -11
  128. package/esm2022/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup-capability-validator.interceptor.mjs +0 -31
  129. package/esm2022/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup-intent-handler.interceptor.mjs +0 -132
  130. package/esm2022/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup.component.mjs +0 -115
  131. package/esm2022/lib/microfrontend-platform/microfrontend-splash/microfrontend-splash.component.mjs +0 -21
  132. package/esm2022/lib/microfrontend-platform/microfrontend-view/microfrontend-view-command-handler.service.mjs +0 -112
  133. package/esm2022/lib/microfrontend-platform/microfrontend-view/microfrontend-view.component.mjs +0 -313
  134. package/esm2022/lib/microfrontend-platform/microfrontend-view/microfrontend-workbench-view.model.mjs +0 -23
  135. package/esm2022/lib/microfrontend-platform/public_api.mjs +0 -13
  136. package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-capability-validator.interceptor.mjs +0 -31
  137. package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-intent-handler.interceptor.mjs +0 -127
  138. package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-routes.mjs +0 -125
  139. package/esm2022/lib/microfrontend-platform/stable-capability-id-assigner.interceptor.mjs +0 -32
  140. package/esm2022/lib/microfrontend-platform/workbench-microfrontend-support.mjs +0 -191
  141. package/esm2022/lib/migration/workbench-migration.mjs +0 -11
  142. package/esm2022/lib/migration/workbench-migrator.mjs +0 -38
  143. package/esm2022/lib/notification/notification-css-classes.pipe.mjs +0 -24
  144. package/esm2022/lib/notification/notification-list.component.mjs +0 -51
  145. package/esm2022/lib/notification/notification.component.mjs +0 -109
  146. package/esm2022/lib/notification/notification.config.mjs +0 -11
  147. package/esm2022/lib/notification/notification.mjs +0 -19
  148. package/esm2022/lib/notification/notification.service.mjs +0 -134
  149. package/esm2022/lib/notification/public_api.mjs +0 -12
  150. package/esm2022/lib/notification/text-notification.component.mjs +0 -23
  151. package/esm2022/lib/notification//311/265notification.mjs +0 -42
  152. package/esm2022/lib/page-not-found/page-not-found.component.mjs +0 -26
  153. package/esm2022/lib/part/part-action-bar/part-action-bar.component.mjs +0 -31
  154. package/esm2022/lib/part/part-action-bar/part-action.directive.mjs +0 -77
  155. package/esm2022/lib/part/part-bar/part-bar.component.mjs +0 -444
  156. package/esm2022/lib/part/part-portal.pipe.mjs +0 -35
  157. package/esm2022/lib/part/part.component.mjs +0 -135
  158. package/esm2022/lib/part/public_api.mjs +0 -13
  159. package/esm2022/lib/part/view-context-menu/accelerator-format.pipe.mjs +0 -31
  160. package/esm2022/lib/part/view-context-menu/text.component.mjs +0 -38
  161. package/esm2022/lib/part/view-context-menu/view-menu.component.mjs +0 -89
  162. package/esm2022/lib/part/view-context-menu/view-menu.directive.mjs +0 -76
  163. package/esm2022/lib/part/view-context-menu/view-menu.service.mjs +0 -340
  164. package/esm2022/lib/part/view-list/view-list.component.mjs +0 -117
  165. package/esm2022/lib/part/view-list-button/view-list-button.component.mjs +0 -82
  166. package/esm2022/lib/part/view-list-item/view-list-item.component.mjs +0 -60
  167. package/esm2022/lib/part/view-tab/view-tab.component.mjs +0 -218
  168. package/esm2022/lib/part/view-tab-content/view-tab-content.component.mjs +0 -29
  169. package/esm2022/lib/part/view-tab-drag-image/view-tab-drag-image.component.mjs +0 -81
  170. package/esm2022/lib/part/workbench-part-action.registry.mjs +0 -23
  171. package/esm2022/lib/part/workbench-part.model.mjs +0 -19
  172. package/esm2022/lib/part/workbench-part.registry.mjs +0 -23
  173. package/esm2022/lib/part//311/265workbench-part.model.mjs +0 -146
  174. package/esm2022/lib/perspective/migration/model/workbench-perspective-migration-v1.model.mjs +0 -11
  175. package/esm2022/lib/perspective/migration/model/workbench-perspective-migration-v2.model.mjs +0 -11
  176. package/esm2022/lib/perspective/migration/workbench-perspective-migration-v2.service.mjs +0 -57
  177. package/esm2022/lib/perspective/public_api.mjs +0 -11
  178. package/esm2022/lib/perspective/workbench-grid-merger.service.mjs +0 -39
  179. package/esm2022/lib/perspective/workbench-perspective-storage.service.mjs +0 -72
  180. package/esm2022/lib/perspective/workbench-perspective-view-conflict-resolver.service.mjs +0 -50
  181. package/esm2022/lib/perspective/workbench-perspective.model.mjs +0 -2
  182. package/esm2022/lib/perspective/workbench-perspective.registry.mjs +0 -23
  183. package/esm2022/lib/perspective/workbench-perspective.service.mjs +0 -180
  184. package/esm2022/lib/perspective/workench-perspective-serializer.service.mjs +0 -62
  185. package/esm2022/lib/perspective//311/265workbench-perspective.model.mjs +0 -210
  186. package/esm2022/lib/popup/popup.component.mjs +0 -124
  187. package/esm2022/lib/popup/popup.config.mjs +0 -100
  188. package/esm2022/lib/popup/popup.origin.mjs +0 -11
  189. package/esm2022/lib/popup/popup.service.mjs +0 -339
  190. package/esm2022/lib/popup/public_api.mjs +0 -12
  191. package/esm2022/lib/portal/wb-component-portal.mjs +0 -130
  192. package/esm2022/lib/portal/workbench-portal-outlet.directive.mjs +0 -68
  193. package/esm2022/lib/public_api.mjs +0 -32
  194. package/esm2022/lib/registry/workbench-object-registry.mjs +0 -104
  195. package/esm2022/lib/routing/empty-outlet/empty-outlet.component.mjs +0 -31
  196. package/esm2022/lib/routing/public_api.mjs +0 -14
  197. package/esm2022/lib/routing/routing.model.mjs +0 -11
  198. package/esm2022/lib/routing/routing.util.mjs +0 -215
  199. package/esm2022/lib/routing/url-segment-matcher.mjs +0 -46
  200. package/esm2022/lib/routing/workbench-auxiliary-route-installer.service.mjs +0 -110
  201. package/esm2022/lib/routing/workbench-dialog-differ.mjs +0 -51
  202. package/esm2022/lib/routing/workbench-layout-differ.mjs +0 -61
  203. package/esm2022/lib/routing/workbench-message-box-differ.mjs +0 -51
  204. package/esm2022/lib/routing/workbench-navigational-states.mjs +0 -33
  205. package/esm2022/lib/routing/workbench-popup-differ.mjs +0 -51
  206. package/esm2022/lib/routing/workbench-route-data.mjs +0 -39
  207. package/esm2022/lib/routing/workbench-route-guards.mjs +0 -57
  208. package/esm2022/lib/routing/workbench-router-link.directive.mjs +0 -124
  209. package/esm2022/lib/routing/workbench-router.service.mjs +0 -19
  210. package/esm2022/lib/routing/workbench-url-observer.service.mjs +0 -305
  211. package/esm2022/lib/routing/workbench-view-outlet-differ.mjs +0 -58
  212. package/esm2022/lib/routing//311/265location.mjs +0 -70
  213. package/esm2022/lib/routing//311/265workbench-router.service.mjs +0 -359
  214. package/esm2022/lib/startup/public_api.mjs +0 -12
  215. package/esm2022/lib/startup/splash/splash.component.mjs +0 -24
  216. package/esm2022/lib/startup/workbench-initializer.mjs +0 -96
  217. package/esm2022/lib/startup/workbench-launcher.service.mjs +0 -173
  218. package/esm2022/lib/storage/public_api.mjs +0 -11
  219. package/esm2022/lib/storage/workbench-storage.mjs +0 -37
  220. package/esm2022/lib/testing/public_api.mjs +0 -12
  221. package/esm2022/lib/testing/workbench-testing.module.mjs +0 -49
  222. package/esm2022/lib/testing/workbench.provider.mjs +0 -60
  223. package/esm2022/lib/theme/workbench-theme-switcher.service.mjs +0 -72
  224. package/esm2022/lib/view/public_api.mjs +0 -11
  225. package/esm2022/lib/view/view-context-provider.mjs +0 -31
  226. package/esm2022/lib/view/view-move-handler.service.mjs +0 -145
  227. package/esm2022/lib/view/view-portal.pipe.mjs +0 -33
  228. package/esm2022/lib/view/view.component.mjs +0 -128
  229. package/esm2022/lib/view/workbench-view.model.mjs +0 -12
  230. package/esm2022/lib/view/workbench-view.registry.mjs +0 -23
  231. package/esm2022/lib/view//311/265workbench-view.model.mjs +0 -375
  232. package/esm2022/lib/view-dnd/grid-drop-targets.util.mjs +0 -49
  233. package/esm2022/lib/view-dnd/requires-drop-zone.pipe.mjs +0 -58
  234. package/esm2022/lib/view-dnd/view-drag.service.mjs +0 -213
  235. package/esm2022/lib/view-dnd/view-drop-placeholder-renderer.service.mjs +0 -89
  236. package/esm2022/lib/view-dnd/view-drop-zone.directive.mjs +0 -183
  237. package/esm2022/lib/view-dnd/view-tab-drag-image-renderer.service.mjs +0 -224
  238. package/esm2022/lib/workbench-config.mjs +0 -15
  239. package/esm2022/lib/workbench-id.mjs +0 -21
  240. package/esm2022/lib/workbench.component.mjs +0 -146
  241. package/esm2022/lib/workbench.constants.mjs +0 -41
  242. package/esm2022/lib/workbench.model.mjs +0 -11
  243. package/esm2022/lib/workbench.module.mjs +0 -101
  244. package/esm2022/lib/workbench.provider.mjs +0 -111
  245. package/esm2022/lib/workbench.service.mjs +0 -29
  246. package/esm2022/lib//311/265workbench.service.mjs +0 -102
  247. package/esm2022/public-api.mjs +0 -14
  248. package/esm2022/scion-workbench.mjs +0 -5
  249. package/lib/common/animation-frame.observable.d.ts +0 -10
  250. package/lib/testing/public_api.d.ts +0 -2
  251. package/lib/testing/workbench-testing.module.d.ts +0 -40
  252. package/lib/testing/workbench.provider.d.ts +0 -31
  253. package/lib/workbench.module.d.ts +0 -65
@@ -1,62 +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 { assertType } from '../common/asserts.util';
11
- import { Defined } from '@scion/toolkit/util';
12
- /**
13
- * Represents a node in the grid.
14
- *
15
- * A node contains two children, which are either a {@link MPart} or a {@link MTreeNode}, respectively.
16
- * The ratio together with the direction describes how to arrange the two children.
17
- *
18
- * The M-prefix indicates this object is a model object that is serialized and stored, requiring migration on breaking change.
19
- */
20
- export class MTreeNode {
21
- constructor(treeNode) {
22
- /**
23
- * Discriminator to unmarshall {@link MTreeNode} to its class type.
24
- */
25
- this.type = 'MTreeNode';
26
- treeNode.parent && assertType(treeNode.parent, { toBeOneOf: MTreeNode }); // assert not to be an object literal
27
- assertType(treeNode.child1, { toBeOneOf: [MTreeNode, MPart] }); // assert not to be an object literal
28
- assertType(treeNode.child2, { toBeOneOf: [MTreeNode, MPart] }); // assert not to be an object literal
29
- Object.assign(this, treeNode);
30
- }
31
- /**
32
- * Tests if the given object is a {@link MTreeNode}.
33
- */
34
- static isMTreeNode(object) {
35
- return object && object.type === 'MTreeNode';
36
- }
37
- }
38
- /**
39
- * Represents a part in the grid.
40
- *
41
- * A part is a container for views.
42
- *
43
- * The M-prefix indicates this object is a model object that is serialized and stored, requiring migration on breaking change.
44
- */
45
- export class MPart {
46
- constructor(part) {
47
- /**
48
- * Discriminator to unmarshall {@link MPart} to its class type.
49
- */
50
- this.type = 'MPart';
51
- Defined.orElseThrow(part.id, () => Error('MPart requires an id'));
52
- part.parent && assertType(part.parent, { toBeOneOf: MTreeNode }); // assert not to be an object literal
53
- Object.assign(this, part);
54
- }
55
- /**
56
- * Tests if the given object is a {@link MPart}.
57
- */
58
- static isMPart(object) {
59
- return object && object.type === 'MPart';
60
- }
61
- }
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2JlbmNoLWxheW91dC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL3dvcmtiZW5jaC9zcmMvbGliL2xheW91dC93b3JrYmVuY2gtbGF5b3V0Lm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ2xELE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQXdCNUM7Ozs7Ozs7R0FPRztBQUNILE1BQU0sT0FBTyxTQUFTO0lBYXBCLFlBQVksUUFBaUM7UUFYN0M7O1dBRUc7UUFDYSxTQUFJLEdBQUcsV0FBVyxDQUFDO1FBU2pDLFFBQVEsQ0FBQyxNQUFNLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsRUFBQyxTQUFTLEVBQUUsU0FBUyxFQUFDLENBQUMsQ0FBQyxDQUFDLHFDQUFxQztRQUM3RyxVQUFVLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxFQUFDLFNBQVMsRUFBRSxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxxQ0FBcUM7UUFDbkcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsRUFBQyxTQUFTLEVBQUUsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMscUNBQXFDO1FBQ25HLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxXQUFXLENBQUMsTUFBVztRQUNuQyxPQUFPLE1BQU0sSUFBSyxNQUFvQixDQUFDLElBQUksS0FBSyxXQUFXLENBQUM7SUFDOUQsQ0FBQztDQUNGO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxPQUFPLEtBQUs7SUFZaEIsWUFBWSxJQUF5QjtRQVZyQzs7V0FFRztRQUNhLFNBQUksR0FBRyxPQUFPLENBQUM7UUFRN0IsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUM7UUFDbEUsSUFBSSxDQUFDLE1BQU0sSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUMsQ0FBQyxDQUFDLENBQUMscUNBQXFDO1FBQ3JHLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBVztRQUMvQixPQUFPLE1BQU0sSUFBSyxNQUFnQixDQUFDLElBQUksS0FBSyxPQUFPLENBQUM7SUFDdEQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIzIFN3aXNzIEZlZGVyYWwgUmFpbHdheXNcbiAqXG4gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlXG4gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMFxuICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjBcbiAqL1xuXG5pbXBvcnQge2Fzc2VydFR5cGV9IGZyb20gJy4uL2NvbW1vbi9hc3NlcnRzLnV0aWwnO1xuaW1wb3J0IHtEZWZpbmVkfSBmcm9tICdAc2Npb24vdG9vbGtpdC91dGlsJztcbmltcG9ydCB7Vmlld0lkfSBmcm9tICcuLi92aWV3L3dvcmtiZW5jaC12aWV3Lm1vZGVsJztcbmltcG9ydCB7TmF2aWdhdGlvbkRhdGF9IGZyb20gJy4uL3JvdXRpbmcvcm91dGluZy5tb2RlbCc7XG5cbi8qKlxuICogUmVwcmVzZW50cyB0aGUgYXJyYW5nZW1lbnQgb2YgcGFydHMgYXMgZ3JpZC5cbiAqXG4gKiBUaGUgTS1wcmVmaXggaW5kaWNhdGVzIHRoaXMgb2JqZWN0IGlzIGEgbW9kZWwgb2JqZWN0IHRoYXQgaXMgc2VyaWFsaXplZCBhbmQgc3RvcmVkLCByZXF1aXJpbmcgbWlncmF0aW9uIG9uIGJyZWFraW5nIGNoYW5nZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNUGFydEdyaWQge1xuICByb290OiBNVHJlZU5vZGUgfCBNUGFydDtcbiAgYWN0aXZlUGFydElkOiBzdHJpbmc7XG59XG5cbi8qKlxuICoge0BsaW5rIE1QYXJ0R3JpZH0gd2l0aCBhZGRpdGlvbmFsIGZpZWxkcyBub3Qgc2VyaWFsaXplZCBpbnRvIHRoZSBVUkwuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgybVNUGFydEdyaWQgZXh0ZW5kcyBNUGFydEdyaWQge1xuICAvKipcbiAgICogSW5kaWNhdGVzIGlmIHRoaXMgZ3JpZCB3YXMgbWlncmF0ZWQgZnJvbSBhbiBvbGRlciB2ZXJzaW9uLlxuICAgKi9cbiAgbWlncmF0ZWQ/OiB0cnVlO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBub2RlIGluIHRoZSBncmlkLlxuICpcbiAqIEEgbm9kZSBjb250YWlucyB0d28gY2hpbGRyZW4sIHdoaWNoIGFyZSBlaXRoZXIgYSB7QGxpbmsgTVBhcnR9IG9yIGEge0BsaW5rIE1UcmVlTm9kZX0sIHJlc3BlY3RpdmVseS5cbiAqIFRoZSByYXRpbyB0b2dldGhlciB3aXRoIHRoZSBkaXJlY3Rpb24gZGVzY3JpYmVzIGhvdyB0byBhcnJhbmdlIHRoZSB0d28gY2hpbGRyZW4uXG4gKlxuICogVGhlIE0tcHJlZml4IGluZGljYXRlcyB0aGlzIG9iamVjdCBpcyBhIG1vZGVsIG9iamVjdCB0aGF0IGlzIHNlcmlhbGl6ZWQgYW5kIHN0b3JlZCwgcmVxdWlyaW5nIG1pZ3JhdGlvbiBvbiBicmVha2luZyBjaGFuZ2UuXG4gKi9cbmV4cG9ydCBjbGFzcyBNVHJlZU5vZGUge1xuXG4gIC8qKlxuICAgKiBEaXNjcmltaW5hdG9yIHRvIHVubWFyc2hhbGwge0BsaW5rIE1UcmVlTm9kZX0gdG8gaXRzIGNsYXNzIHR5cGUuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdHlwZSA9ICdNVHJlZU5vZGUnO1xuICBwdWJsaWMgcmVhZG9ubHkgaWQhOiBzdHJpbmc7XG4gIHB1YmxpYyBjaGlsZDEhOiBNVHJlZU5vZGUgfCBNUGFydDtcbiAgcHVibGljIGNoaWxkMiE6IE1UcmVlTm9kZSB8IE1QYXJ0O1xuICBwdWJsaWMgcmF0aW8hOiBudW1iZXI7XG4gIHB1YmxpYyBkaXJlY3Rpb24hOiAnY29sdW1uJyB8ICdyb3cnO1xuICBwdWJsaWMgcGFyZW50PzogTVRyZWVOb2RlO1xuXG4gIGNvbnN0cnVjdG9yKHRyZWVOb2RlOiBPbWl0PE1UcmVlTm9kZSwgJ3R5cGUnPikge1xuICAgIHRyZWVOb2RlLnBhcmVudCAmJiBhc3NlcnRUeXBlKHRyZWVOb2RlLnBhcmVudCwge3RvQmVPbmVPZjogTVRyZWVOb2RlfSk7IC8vIGFzc2VydCBub3QgdG8gYmUgYW4gb2JqZWN0IGxpdGVyYWxcbiAgICBhc3NlcnRUeXBlKHRyZWVOb2RlLmNoaWxkMSwge3RvQmVPbmVPZjogW01UcmVlTm9kZSwgTVBhcnRdfSk7IC8vIGFzc2VydCBub3QgdG8gYmUgYW4gb2JqZWN0IGxpdGVyYWxcbiAgICBhc3NlcnRUeXBlKHRyZWVOb2RlLmNoaWxkMiwge3RvQmVPbmVPZjogW01UcmVlTm9kZSwgTVBhcnRdfSk7IC8vIGFzc2VydCBub3QgdG8gYmUgYW4gb2JqZWN0IGxpdGVyYWxcbiAgICBPYmplY3QuYXNzaWduKHRoaXMsIHRyZWVOb2RlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUZXN0cyBpZiB0aGUgZ2l2ZW4gb2JqZWN0IGlzIGEge0BsaW5rIE1UcmVlTm9kZX0uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGlzTVRyZWVOb2RlKG9iamVjdDogYW55KTogb2JqZWN0IGlzIE1UcmVlTm9kZSB7XG4gICAgcmV0dXJuIG9iamVjdCAmJiAob2JqZWN0IGFzIE1UcmVlTm9kZSkudHlwZSA9PT0gJ01UcmVlTm9kZSc7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgcGFydCBpbiB0aGUgZ3JpZC5cbiAqXG4gKiBBIHBhcnQgaXMgYSBjb250YWluZXIgZm9yIHZpZXdzLlxuICpcbiAqIFRoZSBNLXByZWZpeCBpbmRpY2F0ZXMgdGhpcyBvYmplY3QgaXMgYSBtb2RlbCBvYmplY3QgdGhhdCBpcyBzZXJpYWxpemVkIGFuZCBzdG9yZWQsIHJlcXVpcmluZyBtaWdyYXRpb24gb24gYnJlYWtpbmcgY2hhbmdlLlxuICovXG5leHBvcnQgY2xhc3MgTVBhcnQge1xuXG4gIC8qKlxuICAgKiBEaXNjcmltaW5hdG9yIHRvIHVubWFyc2hhbGwge0BsaW5rIE1QYXJ0fSB0byBpdHMgY2xhc3MgdHlwZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB0eXBlID0gJ01QYXJ0JztcbiAgcHVibGljIHJlYWRvbmx5IGlkITogc3RyaW5nO1xuICBwdWJsaWMgcGFyZW50PzogTVRyZWVOb2RlO1xuICBwdWJsaWMgdmlld3MhOiBNVmlld1tdO1xuICBwdWJsaWMgYWN0aXZlVmlld0lkPzogVmlld0lkO1xuICBwdWJsaWMgc3RydWN0dXJhbCE6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IocGFydDogT21pdDxNUGFydCwgJ3R5cGUnPikge1xuICAgIERlZmluZWQub3JFbHNlVGhyb3cocGFydC5pZCwgKCkgPT4gRXJyb3IoJ01QYXJ0IHJlcXVpcmVzIGFuIGlkJykpO1xuICAgIHBhcnQucGFyZW50ICYmIGFzc2VydFR5cGUocGFydC5wYXJlbnQsIHt0b0JlT25lT2Y6IE1UcmVlTm9kZX0pOyAvLyBhc3NlcnQgbm90IHRvIGJlIGFuIG9iamVjdCBsaXRlcmFsXG4gICAgT2JqZWN0LmFzc2lnbih0aGlzLCBwYXJ0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUZXN0cyBpZiB0aGUgZ2l2ZW4gb2JqZWN0IGlzIGEge0BsaW5rIE1QYXJ0fS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaXNNUGFydChvYmplY3Q6IGFueSk6IG9iamVjdCBpcyBNUGFydCB7XG4gICAgcmV0dXJuIG9iamVjdCAmJiAob2JqZWN0IGFzIE1QYXJ0KS50eXBlID09PSAnTVBhcnQnO1xuICB9XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIHZpZXcgY29udGFpbmVkIGluIGEge0BsaW5rIE1QYXJ0fS5cbiAqXG4gKiBUaGUgTS1wcmVmaXggaW5kaWNhdGVzIHRoaXMgb2JqZWN0IGlzIGEgbW9kZWwgb2JqZWN0IHRoYXQgaXMgc2VyaWFsaXplZCBhbmQgc3RvcmVkLCByZXF1aXJpbmcgbWlncmF0aW9uIG9uIGJyZWFraW5nIGNoYW5nZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNVmlldyB7XG4gIGlkOiBWaWV3SWQ7XG4gIGFsdGVybmF0aXZlSWQ/OiBzdHJpbmc7XG4gIHVpZDogc3RyaW5nO1xuICBjc3NDbGFzcz86IHN0cmluZ1tdO1xuICBtYXJrZWRGb3JSZW1vdmFsPzogdHJ1ZTtcbiAgbmF2aWdhdGlvbj86IHtcbiAgICBpZDogc3RyaW5nO1xuICAgIGhpbnQ/OiBzdHJpbmc7XG4gICAgZGF0YT86IE5hdmlnYXRpb25EYXRhO1xuICAgIGNzc0NsYXNzPzogc3RyaW5nW107XG4gIH07XG59XG4iXX0=
@@ -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 { BehaviorSubject, merge, skip, Subject } from 'rxjs';
11
- import { Injectable } from '@angular/core';
12
- import { map } from 'rxjs/operators';
13
- import { filterNull } from '../common/operators';
14
- import { toSignal } from '@angular/core/rxjs-interop';
15
- import * as i0 from "@angular/core";
16
- import * as i1 from "../view-dnd/view-drag.service";
17
- /**
18
- * Provides access to the workbench layout.
19
- */
20
- export class WorkbenchLayoutService {
21
- constructor(viewDragService) {
22
- this._layout$ = new BehaviorSubject(null);
23
- this._dragStart$ = new Subject();
24
- this._dragEnd$ = new Subject();
25
- /**
26
- * Provides the current {@link WorkbenchLayout}, or `null` until Angular has performed the initial navigation.
27
- */
28
- this.layout = toSignal(this._layout$, { requireSync: true });
29
- /**
30
- * Emits the current {@link WorkbenchLayout}.
31
- *
32
- * Upon subscription, emits the current layout, and then emits the updated layout every time it changes.
33
- *
34
- * The Observable will not emit until Angular has performed the initial navigation.
35
- */
36
- this.layout$ = this._layout$.pipe(filterNull());
37
- /**
38
- * Notifies when the workbench layout has changed.
39
- */
40
- this.onLayoutChange$ = this._layout$.pipe(skip(1), filterNull());
41
- this.dragging$ = merge(merge(this._dragStart$, viewDragService.viewDragStart$).pipe(map(() => 'start')), merge(this._dragEnd$, viewDragService.viewDragEnd$).pipe(map(() => 'end')));
42
- }
43
- /**
44
- * Invoke to inform the layout when about to start a drag operation, like when start moving the splitter between parts.
45
- */
46
- notifyDragStarting() {
47
- this._dragStart$.next();
48
- }
49
- /**
50
- * Invoke to inform the layout when about to end a drag operation, like when end moving the splitter between parts.
51
- */
52
- notifyDragEnding() {
53
- this._dragEnd$.next();
54
- }
55
- /**
56
- * Sets the given {@link WorkbenchLayout}.
57
- */
58
- setLayout(layout) {
59
- this._layout$.next(layout);
60
- }
61
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: WorkbenchLayoutService, deps: [{ token: i1.ViewDragService }], target: i0.ɵɵFactoryTarget.Injectable }); }
62
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: WorkbenchLayoutService, providedIn: 'root' }); }
63
- }
64
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: WorkbenchLayoutService, decorators: [{
65
- type: Injectable,
66
- args: [{ providedIn: 'root' }]
67
- }], ctorParameters: () => [{ type: i1.ViewDragService }] });
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2JlbmNoLWxheW91dC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vd29ya2JlbmNoL3NyYy9saWIvbGF5b3V0L3dvcmtiZW5jaC1sYXlvdXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUVILE9BQU8sRUFBQyxlQUFlLEVBQUUsS0FBSyxFQUFjLElBQUksRUFBRSxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDdkUsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFHbkMsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQy9DLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQzs7O0FBRXBEOztHQUVHO0FBRUgsTUFBTSxPQUFPLHNCQUFzQjtJQStCakMsWUFBWSxlQUFnQztRQTdCcEMsYUFBUSxHQUFHLElBQUksZUFBZSxDQUEwQixJQUFJLENBQUMsQ0FBQztRQUM5RCxnQkFBVyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDbEMsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFFeEM7O1dBRUc7UUFDSSxXQUFNLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBQyxXQUFXLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztRQUU3RDs7Ozs7O1dBTUc7UUFDYSxZQUFPLEdBQWlDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFFekY7O1dBRUc7UUFDYSxvQkFBZSxHQUFpQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztRQVN4RyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FDcEIsS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsZUFBZSxDQUFDLGNBQWMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBWSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsRUFDekYsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsZUFBZSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBVSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FDbEYsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNJLGtCQUFrQjtRQUN2QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRDs7T0FFRztJQUNJLGdCQUFnQjtRQUNyQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7T0FFRztJQUNJLFNBQVMsQ0FBQyxNQUF3QjtRQUN2QyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3QixDQUFDOzhHQXpEVSxzQkFBc0I7a0hBQXRCLHNCQUFzQixjQURWLE1BQU07OzJGQUNsQixzQkFBc0I7a0JBRGxDLFVBQVU7bUJBQUMsRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIyIFN3aXNzIEZlZGVyYWwgUmFpbHdheXNcbiAqXG4gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlXG4gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMFxuICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjBcbiAqL1xuXG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgbWVyZ2UsIE9ic2VydmFibGUsIHNraXAsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1ZpZXdEcmFnU2VydmljZX0gZnJvbSAnLi4vdmlldy1kbmQvdmlldy1kcmFnLnNlcnZpY2UnO1xuaW1wb3J0IHvJtVdvcmtiZW5jaExheW91dH0gZnJvbSAnLi/JtXdvcmtiZW5jaC1sYXlvdXQnO1xuaW1wb3J0IHtmaWx0ZXJOdWxsfSBmcm9tICcuLi9jb21tb24vb3BlcmF0b3JzJztcbmltcG9ydCB7dG9TaWduYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcblxuLyoqXG4gKiBQcm92aWRlcyBhY2Nlc3MgdG8gdGhlIHdvcmtiZW5jaCBsYXlvdXQuXG4gKi9cbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCd9KVxuZXhwb3J0IGNsYXNzIFdvcmtiZW5jaExheW91dFNlcnZpY2Uge1xuXG4gIHByaXZhdGUgX2xheW91dCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PMm1V29ya2JlbmNoTGF5b3V0IHwgbnVsbD4obnVsbCk7XG4gIHByaXZhdGUgX2RyYWdTdGFydCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIF9kcmFnRW5kJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgLyoqXG4gICAqIFByb3ZpZGVzIHRoZSBjdXJyZW50IHtAbGluayBXb3JrYmVuY2hMYXlvdXR9LCBvciBgbnVsbGAgdW50aWwgQW5ndWxhciBoYXMgcGVyZm9ybWVkIHRoZSBpbml0aWFsIG5hdmlnYXRpb24uXG4gICAqL1xuICBwdWJsaWMgbGF5b3V0ID0gdG9TaWduYWwodGhpcy5fbGF5b3V0JCwge3JlcXVpcmVTeW5jOiB0cnVlfSk7XG5cbiAgLyoqXG4gICAqIEVtaXRzIHRoZSBjdXJyZW50IHtAbGluayBXb3JrYmVuY2hMYXlvdXR9LlxuICAgKlxuICAgKiBVcG9uIHN1YnNjcmlwdGlvbiwgZW1pdHMgdGhlIGN1cnJlbnQgbGF5b3V0LCBhbmQgdGhlbiBlbWl0cyB0aGUgdXBkYXRlZCBsYXlvdXQgZXZlcnkgdGltZSBpdCBjaGFuZ2VzLlxuICAgKlxuICAgKiBUaGUgT2JzZXJ2YWJsZSB3aWxsIG5vdCBlbWl0IHVudGlsIEFuZ3VsYXIgaGFzIHBlcmZvcm1lZCB0aGUgaW5pdGlhbCBuYXZpZ2F0aW9uLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGxheW91dCQ6IE9ic2VydmFibGU8ybVXb3JrYmVuY2hMYXlvdXQ+ID0gdGhpcy5fbGF5b3V0JC5waXBlKGZpbHRlck51bGwoKSk7XG5cbiAgLyoqXG4gICAqIE5vdGlmaWVzIHdoZW4gdGhlIHdvcmtiZW5jaCBsYXlvdXQgaGFzIGNoYW5nZWQuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgb25MYXlvdXRDaGFuZ2UkOiBPYnNlcnZhYmxlPMm1V29ya2JlbmNoTGF5b3V0PiA9IHRoaXMuX2xheW91dCQucGlwZShza2lwKDEpLCBmaWx0ZXJOdWxsKCkpO1xuXG4gIC8qKlxuICAgKiBOb3RpZmllcyB3aGVuIHRoZSB1c2VyIHN0YXJ0cyBvciBlbmRzIG1vZGlmeWluZyB0aGUgbGF5b3V0IHVzaW5nIGRyYWcgYW5kIGRyb3AsIGUuZy4sIG1vdmluZyB0aGUgc3BsaXR0ZXIgYmV0d2VlbiBwYXJ0cyxcbiAgICogbW92aW5nIGEgbWVzc2FnZSBib3gsIG9yIG1vdmluZyBhIHZpZXcuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZHJhZ2dpbmckOiBPYnNlcnZhYmxlPCdzdGFydCcgfCAnZW5kJz47XG5cbiAgY29uc3RydWN0b3Iodmlld0RyYWdTZXJ2aWNlOiBWaWV3RHJhZ1NlcnZpY2UpIHtcbiAgICB0aGlzLmRyYWdnaW5nJCA9IG1lcmdlKFxuICAgICAgbWVyZ2UodGhpcy5fZHJhZ1N0YXJ0JCwgdmlld0RyYWdTZXJ2aWNlLnZpZXdEcmFnU3RhcnQkKS5waXBlKG1hcCgoKTogJ3N0YXJ0JyA9PiAnc3RhcnQnKSksXG4gICAgICBtZXJnZSh0aGlzLl9kcmFnRW5kJCwgdmlld0RyYWdTZXJ2aWNlLnZpZXdEcmFnRW5kJCkucGlwZShtYXAoKCk6ICdlbmQnID0+ICdlbmQnKSksXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbnZva2UgdG8gaW5mb3JtIHRoZSBsYXlvdXQgd2hlbiBhYm91dCB0byBzdGFydCBhIGRyYWcgb3BlcmF0aW9uLCBsaWtlIHdoZW4gc3RhcnQgbW92aW5nIHRoZSBzcGxpdHRlciBiZXR3ZWVuIHBhcnRzLlxuICAgKi9cbiAgcHVibGljIG5vdGlmeURyYWdTdGFydGluZygpOiB2b2lkIHtcbiAgICB0aGlzLl9kcmFnU3RhcnQkLm5leHQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbnZva2UgdG8gaW5mb3JtIHRoZSBsYXlvdXQgd2hlbiBhYm91dCB0byBlbmQgYSBkcmFnIG9wZXJhdGlvbiwgbGlrZSB3aGVuIGVuZCBtb3ZpbmcgdGhlIHNwbGl0dGVyIGJldHdlZW4gcGFydHMuXG4gICAqL1xuICBwdWJsaWMgbm90aWZ5RHJhZ0VuZGluZygpOiB2b2lkIHtcbiAgICB0aGlzLl9kcmFnRW5kJC5uZXh0KCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgZ2l2ZW4ge0BsaW5rIFdvcmtiZW5jaExheW91dH0uXG4gICAqL1xuICBwdWJsaWMgc2V0TGF5b3V0KGxheW91dDogybVXb3JrYmVuY2hMYXlvdXQpOiB2b2lkIHtcbiAgICB0aGlzLl9sYXlvdXQkLm5leHQobGF5b3V0KTtcbiAgfVxufVxuIl19
@@ -1,58 +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 { MPart } from './workbench-layout.model';
11
- import { MAIN_AREA } from './workbench-layout';
12
- import { VIEW_ID_PREFIX } from '../workbench.constants';
13
- /**
14
- * Provides helper functions for operating on a workbench layout.
15
- */
16
- export const WorkbenchLayouts = {
17
- /**
18
- * Recursively collects all parts of a given element and its descendants.
19
- */
20
- collectParts: (element) => {
21
- const parts = new Array();
22
- if (element instanceof MPart) {
23
- parts.push(element);
24
- }
25
- else {
26
- parts.push(...WorkbenchLayouts.collectParts(element.child1));
27
- parts.push(...WorkbenchLayouts.collectParts(element.child2));
28
- }
29
- return parts;
30
- },
31
- /**
32
- * Tests if the given {@link MTreeNode} or {@link MPart} is visible.
33
- *
34
- * - A part is considered visible if it is the main area part or has at least one view.
35
- * - A node is considered visible if it has at least one visible part in its child hierarchy.
36
- */
37
- isGridElementVisible: (element) => {
38
- if (element instanceof MPart) {
39
- return element.id === MAIN_AREA || element.views.length > 0;
40
- }
41
- return WorkbenchLayouts.isGridElementVisible(element.child1) || WorkbenchLayouts.isGridElementVisible(element.child2);
42
- },
43
- /**
44
- * Computes the next available view id.
45
- */
46
- computeNextViewId: (viewIds) => {
47
- const ids = Array.from(viewIds)
48
- .map(viewId => Number(viewId.substring(VIEW_ID_PREFIX.length)))
49
- .reduce((set, id) => set.add(id), new Set());
50
- for (let i = 1; i <= ids.size; i++) {
51
- if (!ids.has(i)) {
52
- return VIEW_ID_PREFIX.concat(`${i}`);
53
- }
54
- }
55
- return VIEW_ID_PREFIX.concat(`${ids.size + 1}`);
56
- },
57
- };
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2JlbmNoLWxheW91dHMudXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL3dvcmtiZW5jaC9zcmMvbGliL2xheW91dC93b3JrYmVuY2gtbGF5b3V0cy51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBQ0gsT0FBTyxFQUFDLEtBQUssRUFBWSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUU3QyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFFdEQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRztJQUU5Qjs7T0FFRztJQUNILFlBQVksRUFBRSxDQUFDLE9BQTBCLEVBQVcsRUFBRTtRQUNwRCxNQUFNLEtBQUssR0FBRyxJQUFJLEtBQUssRUFBUyxDQUFDO1FBQ2pDLElBQUksT0FBTyxZQUFZLEtBQUssRUFBRSxDQUFDO1lBQzdCLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdEIsQ0FBQzthQUNJLENBQUM7WUFDSixLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQzdELEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDL0QsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsb0JBQW9CLEVBQUUsQ0FBQyxPQUEwQixFQUFXLEVBQUU7UUFDNUQsSUFBSSxPQUFPLFlBQVksS0FBSyxFQUFFLENBQUM7WUFDN0IsT0FBTyxPQUFPLENBQUMsRUFBRSxLQUFLLFNBQVMsSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDOUQsQ0FBQztRQUNELE9BQU8sZ0JBQWdCLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLGdCQUFnQixDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN4SCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxpQkFBaUIsRUFBRSxDQUFDLE9BQXlCLEVBQVUsRUFBRTtRQUN2RCxNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQzthQUM1QixHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQzthQUM5RCxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksR0FBRyxFQUFVLENBQUMsQ0FBQztRQUV2RCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ25DLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ2hCLE9BQU8sY0FBYyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFXLENBQUM7WUFDakQsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLGNBQWMsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFXLENBQUM7SUFDNUQsQ0FBQztDQUNPLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjQgU3dpc3MgRmVkZXJhbCBSYWlsd2F5c1xuICpcbiAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGVcbiAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wXG4gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC9cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMFxuICovXG5pbXBvcnQge01QYXJ0LCBNVHJlZU5vZGV9IGZyb20gJy4vd29ya2JlbmNoLWxheW91dC5tb2RlbCc7XG5pbXBvcnQge01BSU5fQVJFQX0gZnJvbSAnLi93b3JrYmVuY2gtbGF5b3V0JztcbmltcG9ydCB7Vmlld0lkfSBmcm9tICcuLi92aWV3L3dvcmtiZW5jaC12aWV3Lm1vZGVsJztcbmltcG9ydCB7VklFV19JRF9QUkVGSVh9IGZyb20gJy4uL3dvcmtiZW5jaC5jb25zdGFudHMnO1xuXG4vKipcbiAqIFByb3ZpZGVzIGhlbHBlciBmdW5jdGlvbnMgZm9yIG9wZXJhdGluZyBvbiBhIHdvcmtiZW5jaCBsYXlvdXQuXG4gKi9cbmV4cG9ydCBjb25zdCBXb3JrYmVuY2hMYXlvdXRzID0ge1xuXG4gIC8qKlxuICAgKiBSZWN1cnNpdmVseSBjb2xsZWN0cyBhbGwgcGFydHMgb2YgYSBnaXZlbiBlbGVtZW50IGFuZCBpdHMgZGVzY2VuZGFudHMuXG4gICAqL1xuICBjb2xsZWN0UGFydHM6IChlbGVtZW50OiBNUGFydCB8IE1UcmVlTm9kZSk6IE1QYXJ0W10gPT4ge1xuICAgIGNvbnN0IHBhcnRzID0gbmV3IEFycmF5PE1QYXJ0PigpO1xuICAgIGlmIChlbGVtZW50IGluc3RhbmNlb2YgTVBhcnQpIHtcbiAgICAgIHBhcnRzLnB1c2goZWxlbWVudCk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgcGFydHMucHVzaCguLi5Xb3JrYmVuY2hMYXlvdXRzLmNvbGxlY3RQYXJ0cyhlbGVtZW50LmNoaWxkMSkpO1xuICAgICAgcGFydHMucHVzaCguLi5Xb3JrYmVuY2hMYXlvdXRzLmNvbGxlY3RQYXJ0cyhlbGVtZW50LmNoaWxkMikpO1xuICAgIH1cbiAgICByZXR1cm4gcGFydHM7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFRlc3RzIGlmIHRoZSBnaXZlbiB7QGxpbmsgTVRyZWVOb2RlfSBvciB7QGxpbmsgTVBhcnR9IGlzIHZpc2libGUuXG4gICAqXG4gICAqIC0gQSBwYXJ0IGlzIGNvbnNpZGVyZWQgdmlzaWJsZSBpZiBpdCBpcyB0aGUgbWFpbiBhcmVhIHBhcnQgb3IgaGFzIGF0IGxlYXN0IG9uZSB2aWV3LlxuICAgKiAtIEEgbm9kZSBpcyBjb25zaWRlcmVkIHZpc2libGUgaWYgaXQgaGFzIGF0IGxlYXN0IG9uZSB2aXNpYmxlIHBhcnQgaW4gaXRzIGNoaWxkIGhpZXJhcmNoeS5cbiAgICovXG4gIGlzR3JpZEVsZW1lbnRWaXNpYmxlOiAoZWxlbWVudDogTVRyZWVOb2RlIHwgTVBhcnQpOiBib29sZWFuID0+IHtcbiAgICBpZiAoZWxlbWVudCBpbnN0YW5jZW9mIE1QYXJ0KSB7XG4gICAgICByZXR1cm4gZWxlbWVudC5pZCA9PT0gTUFJTl9BUkVBIHx8IGVsZW1lbnQudmlld3MubGVuZ3RoID4gMDtcbiAgICB9XG4gICAgcmV0dXJuIFdvcmtiZW5jaExheW91dHMuaXNHcmlkRWxlbWVudFZpc2libGUoZWxlbWVudC5jaGlsZDEpIHx8IFdvcmtiZW5jaExheW91dHMuaXNHcmlkRWxlbWVudFZpc2libGUoZWxlbWVudC5jaGlsZDIpO1xuICB9LFxuXG4gIC8qKlxuICAgKiBDb21wdXRlcyB0aGUgbmV4dCBhdmFpbGFibGUgdmlldyBpZC5cbiAgICovXG4gIGNvbXB1dGVOZXh0Vmlld0lkOiAodmlld0lkczogSXRlcmFibGU8Vmlld0lkPik6IFZpZXdJZCA9PiB7XG4gICAgY29uc3QgaWRzID0gQXJyYXkuZnJvbSh2aWV3SWRzKVxuICAgICAgLm1hcCh2aWV3SWQgPT4gTnVtYmVyKHZpZXdJZC5zdWJzdHJpbmcoVklFV19JRF9QUkVGSVgubGVuZ3RoKSkpXG4gICAgICAucmVkdWNlKChzZXQsIGlkKSA9PiBzZXQuYWRkKGlkKSwgbmV3IFNldDxudW1iZXI+KCkpO1xuXG4gICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gaWRzLnNpemU7IGkrKykge1xuICAgICAgaWYgKCFpZHMuaGFzKGkpKSB7XG4gICAgICAgIHJldHVybiBWSUVXX0lEX1BSRUZJWC5jb25jYXQoYCR7aX1gKSBhcyBWaWV3SWQ7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBWSUVXX0lEX1BSRUZJWC5jb25jYXQoYCR7aWRzLnNpemUgKyAxfWApIGFzIFZpZXdJZDtcbiAgfSxcbn0gYXMgY29uc3Q7XG4iXX0=
@@ -1,109 +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 { inject, Injectable } from '@angular/core';
11
- import { MPart, MTreeNode } from './workbench-layout.model';
12
- import { UrlSegment } from '@angular/router';
13
- import { WorkbenchLayoutMigrationV3 } from './migration/workbench-layout-migration-v3.service';
14
- import { WorkbenchMigrator } from '../migration/workbench-migrator';
15
- import { WorkbenchLayoutMigrationV4 } from './migration/workbench-layout-migration-v4.service';
16
- import { WorkbenchLayoutMigrationV5 } from './migration/workbench-layout-migration-v5.service';
17
- import { stringify } from './stringifier';
18
- import * as i0 from "@angular/core";
19
- /**
20
- * Serializes and deserializes a base64-encoded JSON into a {@link MPartGrid}.
21
- */
22
- export class WorkbenchLayoutSerializer {
23
- constructor() {
24
- this._workbenchLayoutMigrator = new WorkbenchMigrator()
25
- .registerMigration(2, inject(WorkbenchLayoutMigrationV3))
26
- .registerMigration(3, inject(WorkbenchLayoutMigrationV4))
27
- .registerMigration(4, inject(WorkbenchLayoutMigrationV5));
28
- }
29
- serializeGrid(grid, flags) {
30
- if (grid === null || grid === undefined) {
31
- return null;
32
- }
33
- const json = stringify(grid, new Array()
34
- .concat('**/parent')
35
- .concat('migrated')
36
- .concat(flags?.excludeTreeNodeId ? ({ path: '**/id', predicate: context => context.at(-1) instanceof MTreeNode }) : [])
37
- .concat(flags?.excludeViewUid ? '**/views/*/uid' : [])
38
- .concat(flags?.excludeViewMarkedForRemoval ? '**/views/*/markedForRemoval' : [])
39
- .concat(flags?.excludeViewNavigationId ? '**/views/*/navigation/id' : []));
40
- return window.btoa(`${json}${VERSION_SEPARATOR}${WORKBENCH_LAYOUT_VERSION}`);
41
- }
42
- /**
43
- * Deserializes the given base64-serialized grid, applying necessary migrations if the serialized grid is outdated.
44
- */
45
- deserializeGrid(serialized) {
46
- const [jsonGrid, jsonGridVersion] = window.atob(serialized).split(VERSION_SEPARATOR, 2);
47
- const gridVersion = Number.isNaN(Number(jsonGridVersion)) ? 1 : Number(jsonGridVersion);
48
- const migratedJsonGrid = this._workbenchLayoutMigrator.migrate(jsonGrid, { from: gridVersion, to: WORKBENCH_LAYOUT_VERSION });
49
- // Parse the JSON.
50
- const grid = JSON.parse(migratedJsonGrid, (key, value) => {
51
- if (MPart.isMPart(value)) {
52
- return new MPart(value); // create a class object from the object literal
53
- }
54
- if (MTreeNode.isMTreeNode(value)) {
55
- return new MTreeNode(value); // create a class object from the object literal
56
- }
57
- return value;
58
- });
59
- // Link parent tree nodes
60
- (function linkParentNodes(node, parent) {
61
- node.parent = parent;
62
- if (node instanceof MTreeNode) {
63
- linkParentNodes(node.child1, node);
64
- linkParentNodes(node.child2, node);
65
- }
66
- })(grid.root, undefined);
67
- return (gridVersion < WORKBENCH_LAYOUT_VERSION) ? { ...grid, migrated: true } : grid;
68
- }
69
- /**
70
- * Serializes the given outlets.
71
- */
72
- serializeViewOutlets(viewOutlets) {
73
- return JSON.stringify(Object.fromEntries(Object.entries(viewOutlets)
74
- .map(([viewId, segments]) => {
75
- return [viewId, segments.map(segment => ({ path: segment.path, parameters: segment.parameters }))];
76
- })));
77
- }
78
- /**
79
- * Deserializes the given outlets.
80
- */
81
- deserializeViewOutlets(serialized) {
82
- const viewOutlets = JSON.parse(serialized);
83
- return Object.fromEntries(Object.entries(viewOutlets)
84
- .map(([viewId, segments]) => {
85
- return [viewId, segments.map(segment => new UrlSegment(segment.path, segment.parameters))];
86
- }));
87
- }
88
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: WorkbenchLayoutSerializer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
89
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: WorkbenchLayoutSerializer, providedIn: 'root' }); }
90
- }
91
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: WorkbenchLayoutSerializer, decorators: [{
92
- type: Injectable,
93
- args: [{ providedIn: 'root' }]
94
- }] });
95
- /**
96
- * Represents the current version of the workbench layout model.
97
- *
98
- * Increment this version and write a migrator when introducing a breaking layout model change.
99
- *
100
- * @see WorkbenchMigrator
101
- */
102
- export const WORKBENCH_LAYOUT_VERSION = 5;
103
- /**
104
- * Separates the serialized JSON model and its version in the base64-encoded string.
105
- *
106
- * Format: <json>//<version>
107
- */
108
- const VERSION_SEPARATOR = '//';
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2VuY2gtbGF5b3V0LXNlcmlhbGl6ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL3dvcmtiZW5jaC9zcmMvbGliL2xheW91dC93b3JrZW5jaC1sYXlvdXQtc2VyaWFsaXplci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFDLEtBQUssRUFBYSxTQUFTLEVBQWEsTUFBTSwwQkFBMEIsQ0FBQztBQUVqRixPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sbURBQW1ELENBQUM7QUFDN0YsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFFbEUsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sbURBQW1ELENBQUM7QUFDN0YsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sbURBQW1ELENBQUM7QUFDN0YsT0FBTyxFQUFZLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7QUFFbkQ7O0dBRUc7QUFFSCxNQUFNLE9BQU8seUJBQXlCO0lBRHRDO1FBR1UsNkJBQXdCLEdBQUcsSUFBSSxpQkFBaUIsRUFBRTthQUN2RCxpQkFBaUIsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLDBCQUEwQixDQUFDLENBQUM7YUFDeEQsaUJBQWlCLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO2FBQ3hELGlCQUFpQixDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsMEJBQTBCLENBQUMsQ0FBQyxDQUFDO0tBOEU3RDtJQXBFUSxhQUFhLENBQUMsSUFBa0MsRUFBRSxLQUE4QjtRQUNyRixJQUFJLElBQUksS0FBSyxJ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QVU7bUJBQUMsRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDOztBQXNGaEM7Ozs7OztHQU1HO0FBQ0gsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsQ0FBQyxDQUFDO0FBRTFDOzs7O0dBSUc7QUFDSCxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyMyBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wXG4gKi9cblxuaW1wb3J0IHtpbmplY3QsIEluamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtNUGFydCwgTVBhcnRHcmlkLCBNVHJlZU5vZGUsIMm1TVBhcnRHcmlkfSBmcm9tICcuL3dvcmtiZW5jaC1sYXlvdXQubW9kZWwnO1xuaW1wb3J0IHtWaWV3T3V0bGV0c30gZnJvbSAnLi4vcm91dGluZy9yb3V0aW5nLm1vZGVsJztcbmltcG9ydCB7VXJsU2VnbWVudH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7V29ya2JlbmNoTGF5b3V0TWlncmF0aW9uVjN9IGZyb20gJy4vbWlncmF0aW9uL3dvcmtiZW5jaC1sYXlvdXQtbWlncmF0aW9uLXYzLnNlcnZpY2UnO1xuaW1wb3J0IHtXb3JrYmVuY2hNaWdyYXRvcn0gZnJvbSAnLi4vbWlncmF0aW9uL3dvcmtiZW5jaC1taWdyYXRvcic7XG5pbXBvcnQge1ZpZXdJZH0gZnJvbSAnLi4vdmlldy93b3JrYmVuY2gtdmlldy5tb2RlbCc7XG5pbXBvcnQge1dvcmtiZW5jaExheW91dE1pZ3JhdGlvblY0fSBmcm9tICcuL21pZ3JhdGlvbi93b3JrYmVuY2gtbGF5b3V0LW1pZ3JhdGlvbi12NC5zZXJ2aWNlJztcbmltcG9ydCB7V29ya2JlbmNoTGF5b3V0TWlncmF0aW9uVjV9IGZyb20gJy4vbWlncmF0aW9uL3dvcmtiZW5jaC1sYXlvdXQtbWlncmF0aW9uLXY1LnNlcnZpY2UnO1xuaW1wb3J0IHtFeGNsdXNpb24sIHN0cmluZ2lmeX0gZnJvbSAnLi9zdHJpbmdpZmllcic7XG5cbi8qKlxuICogU2VyaWFsaXplcyBhbmQgZGVzZXJpYWxpemVzIGEgYmFzZTY0LWVuY29kZWQgSlNPTiBpbnRvIGEge0BsaW5rIE1QYXJ0R3JpZH0uXG4gKi9cbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCd9KVxuZXhwb3J0IGNsYXNzIFdvcmtiZW5jaExheW91dFNlcmlhbGl6ZXIge1xuXG4gIHByaXZhdGUgX3dvcmtiZW5jaExheW91dE1pZ3JhdG9yID0gbmV3IFdvcmtiZW5jaE1pZ3JhdG9yKClcbiAgICAucmVnaXN0ZXJNaWdyYXRpb24oMiwgaW5qZWN0KFdvcmtiZW5jaExheW91dE1pZ3JhdGlvblYzKSlcbiAgICAucmVnaXN0ZXJNaWdyYXRpb24oMywgaW5qZWN0KFdvcmtiZW5jaExheW91dE1pZ3JhdGlvblY0KSlcbiAgICAucmVnaXN0ZXJNaWdyYXRpb24oNCwgaW5qZWN0KFdvcmtiZW5jaExheW91dE1pZ3JhdGlvblY1KSk7XG5cbiAgLyoqXG4gICAqIFNlcmlhbGl6ZXMgdGhlIGdpdmVuIGdyaWQgaW50byBhIFVSTC1zYWZlIGJhc2U2NCBzdHJpbmcuXG4gICAqXG4gICAqIEBwYXJhbSBncmlkIC0gU3BlY2lmaWVzIHRoZSBncmlkIHRvIGJlIHNlcmlhbGl6ZWQuXG4gICAqIEBwYXJhbSBmbGFncyAtIENvbnRyb2xzIHdoaWNoIGZpZWxkcyBub3QgdG8gc2VyaWFsaXplLiBCeSBkZWZhdWx0LCBhbGwgZmllbGRzIGFyZSBzZXJpYWxpemVkLlxuICAgKi9cbiAgcHVibGljIHNlcmlhbGl6ZUdyaWQoZ3JpZDogTVBhcnRHcmlkLCBmbGFncz86IEdyaWRTZXJpYWxpemF0aW9uRmxhZ3MpOiBzdHJpbmc7XG4gIHB1YmxpYyBzZXJpYWxpemVHcmlkKGdyaWQ6IE1QYXJ0R3JpZCB8IHVuZGVmaW5lZCB8IG51bGwsIGZsYWdzPzogR3JpZFNlcmlhbGl6YXRpb25GbGFncyk6IG51bGwgfCBzdHJpbmc7XG4gIHB1YmxpYyBzZXJpYWxpemVHcmlkKGdyaWQ6IE1QYXJ0R3JpZCB8IHVuZGVmaW5lZCB8IG51bGwsIGZsYWdzPzogR3JpZFNlcmlhbGl6YXRpb25GbGFncyk6IHN0cmluZyB8IG51bGwge1xuICAgIGlmIChncmlkID09PSBudWxsIHx8IGdyaWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3QganNvbiA9IHN0cmluZ2lmeShncmlkLCBuZXcgQXJyYXk8c3RyaW5nIHwgRXhjbHVzaW9uPigpXG4gICAgICAuY29uY2F0KCcqKi9wYXJlbnQnKVxuICAgICAgLmNvbmNhdCgnbWlncmF0ZWQnKVxuICAgICAgLmNvbmNhdChmbGFncz8uZXhjbHVkZVRyZWVOb2RlSWQgPyAoe3BhdGg6ICcqKi9pZCcsIHByZWRpY2F0ZTogY29udGV4dCA9PiBjb250ZXh0LmF0KC0xKSBpbnN0YW5jZW9mIE1UcmVlTm9kZX0pIDogW10pXG4gICAgICAuY29uY2F0KGZsYWdzPy5leGNsdWRlVmlld1VpZCA/ICcqKi92aWV3cy8qL3VpZCcgOiBbXSlcbiAgICAgIC5jb25jYXQoZmxhZ3M/LmV4Y2x1ZGVWaWV3TWFya2VkRm9yUmVtb3ZhbCA/ICcqKi92aWV3cy8qL21hcmtlZEZvclJlbW92YWwnIDogW10pXG4gICAgICAuY29uY2F0KGZsYWdzPy5leGNsdWRlVmlld05hdmlnYXRpb25JZCA/ICcqKi92aWV3cy8qL25hdmlnYXRpb24vaWQnIDogW10pKTtcbiAgICByZXR1cm4gd2luZG93LmJ0b2EoYCR7anNvbn0ke1ZFUlNJT05fU0VQQVJBVE9SfSR7V09SS0JFTkNIX0xBWU9VVF9WRVJTSU9OfWApO1xuICB9XG5cbiAgLyoqXG4gICAqIERlc2VyaWFsaXplcyB0aGUgZ2l2ZW4gYmFzZTY0LXNlcmlhbGl6ZWQgZ3JpZCwgYXBwbHlpbmcgbmVjZXNzYXJ5IG1pZ3JhdGlvbnMgaWYgdGhlIHNlcmlhbGl6ZWQgZ3JpZCBpcyBvdXRkYXRlZC5cbiAgICovXG4gIHB1YmxpYyBkZXNlcmlhbGl6ZUdyaWQoc2VyaWFsaXplZDogc3RyaW5nKTogybVNUGFydEdyaWQge1xuICAgIGNvbnN0IFtqc29uR3JpZCwganNvbkdyaWRWZXJzaW9uXSA9IHdpbmRvdy5hdG9iKHNlcmlhbGl6ZWQpLnNwbGl0KFZFUlNJT05fU0VQQVJBVE9SLCAyKTtcbiAgICBjb25zdCBncmlkVmVyc2lvbiA9IE51bWJlci5pc05hTihOdW1iZXIoanNvbkdyaWRWZXJzaW9uKSkgPyAxIDogTnVtYmVyKGpzb25HcmlkVmVyc2lvbik7XG4gICAgY29uc3QgbWlncmF0ZWRKc29uR3JpZCA9IHRoaXMuX3dvcmtiZW5jaExheW91dE1pZ3JhdG9yLm1pZ3JhdGUoanNvbkdyaWQsIHtmcm9tOiBncmlkVmVyc2lvbiwgdG86IFdPUktCRU5DSF9MQVlPVVRfVkVSU0lPTn0pO1xuXG4gICAgLy8gUGFyc2UgdGhlIEpTT04uXG4gICAgY29uc3QgZ3JpZDogTVBhcnRHcmlkID0gSlNPTi5wYXJzZShtaWdyYXRlZEpzb25HcmlkLCAoa2V5LCB2YWx1ZSkgPT4ge1xuICAgICAgaWYgKE1QYXJ0LmlzTVBhcnQodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiBuZXcgTVBhcnQodmFsdWUpOyAvLyBjcmVhdGUgYSBjbGFzcyBvYmplY3QgZnJvbSB0aGUgb2JqZWN0IGxpdGVyYWxcbiAgICAgIH1cbiAgICAgIGlmIChNVHJlZU5vZGUuaXNNVHJlZU5vZGUodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiBuZXcgTVRyZWVOb2RlKHZhbHVlKTsgLy8gY3JlYXRlIGEgY2xhc3Mgb2JqZWN0IGZyb20gdGhlIG9iamVjdCBsaXRlcmFsXG4gICAgICB9XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfSk7XG5cbiAgICAvLyBMaW5rIHBhcmVudCB0cmVlIG5vZGVzXG4gICAgKGZ1bmN0aW9uIGxpbmtQYXJlbnROb2Rlcyhub2RlOiBNVHJlZU5vZGUgfCBNUGFydCwgcGFyZW50OiBNVHJlZU5vZGUgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICAgIG5vZGUucGFyZW50ID0gcGFyZW50O1xuXG4gICAgICBpZiAobm9kZSBpbnN0YW5jZW9mIE1UcmVlTm9kZSkge1xuICAgICAgICBsaW5rUGFyZW50Tm9kZXMobm9kZS5jaGlsZDEsIG5vZGUpO1xuICAgICAgICBsaW5rUGFyZW50Tm9kZXMobm9kZS5jaGlsZDIsIG5vZGUpO1xuICAgICAgfVxuICAgIH0pKGdyaWQucm9vdCwgdW5kZWZpbmVkKTtcblxuICAgIHJldHVybiAoZ3JpZFZlcnNpb24gPCBXT1JLQkVOQ0hfTEFZT1VUX1ZFUlNJT04pID8gey4uLmdyaWQsIG1pZ3JhdGVkOiB0cnVlfSA6IGdyaWQ7XG4gIH1cblxuICAvKipcbiAgICogU2VyaWFsaXplcyB0aGUgZ2l2ZW4gb3V0bGV0cy5cbiAgICovXG4gIHB1YmxpYyBzZXJpYWxpemVWaWV3T3V0bGV0cyh2aWV3T3V0bGV0czogVmlld091dGxldHMpOiBzdHJpbmcge1xuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShPYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmVudHJpZXModmlld091dGxldHMpXG4gICAgICAubWFwKChbdmlld0lkLCBzZWdtZW50c106IFtzdHJpbmcsIFVybFNlZ21lbnRbXV0pOiBbc3RyaW5nLCBNVXJsU2VnbWVudFtdXSA9PiB7XG4gICAgICAgIHJldHVybiBbdmlld0lkLCBzZWdtZW50cy5tYXAoc2VnbWVudCA9PiAoe3BhdGg6IHNlZ21lbnQucGF0aCwgcGFyYW1ldGVyczogc2VnbWVudC5wYXJhbWV0ZXJzfSkpXTtcbiAgICAgIH0pKSk7XG4gIH1cblxuICAvKipcbiAgICogRGVzZXJpYWxpemVzIHRoZSBnaXZlbiBvdXRsZXRzLlxuICAgKi9cbiAgcHVibGljIGRlc2VyaWFsaXplVmlld091dGxldHMoc2VyaWFsaXplZDogc3RyaW5nKTogVmlld091dGxldHMge1xuICAgIGNvbnN0IHZpZXdPdXRsZXRzOiB7W3ZpZXdJZDogVmlld0lkXTogTVVybFNlZ21lbnRbXX0gPSBKU09OLnBhcnNlKHNlcmlhbGl6ZWQpO1xuXG4gICAgcmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyh2aWV3T3V0bGV0cylcbiAgICAgIC5tYXAoKFt2aWV3SWQsIHNlZ21lbnRzXTogW3N0cmluZywgTVVybFNlZ21lbnRbXV0pOiBbc3RyaW5nLCBVcmxTZWdtZW50W11dID0+IHtcbiAgICAgICAgcmV0dXJuIFt2aWV3SWQsIHNlZ21lbnRzLm1hcChzZWdtZW50ID0+IG5ldyBVcmxTZWdtZW50KHNlZ21lbnQucGF0aCwgc2VnbWVudC5wYXJhbWV0ZXJzKSldO1xuICAgICAgfSkpO1xuICB9XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyB0aGUgY3VycmVudCB2ZXJzaW9uIG9mIHRoZSB3b3JrYmVuY2ggbGF5b3V0IG1vZGVsLlxuICpcbiAqIEluY3JlbWVudCB0aGlzIHZlcnNpb24gYW5kIHdyaXRlIGEgbWlncmF0b3Igd2hlbiBpbnRyb2R1Y2luZyBhIGJyZWFraW5nIGxheW91dCBtb2RlbCBjaGFuZ2UuXG4gKlxuICogQHNlZSBXb3JrYmVuY2hNaWdyYXRvclxuICovXG5leHBvcnQgY29uc3QgV09SS0JFTkNIX0xBWU9VVF9WRVJTSU9OID0gNTtcblxuLyoqXG4gKiBTZXBhcmF0ZXMgdGhlIHNlcmlhbGl6ZWQgSlNPTiBtb2RlbCBhbmQgaXRzIHZlcnNpb24gaW4gdGhlIGJhc2U2NC1lbmNvZGVkIHN0cmluZy5cbiAqXG4gKiBGb3JtYXQ6IDxqc29uPi8vPHZlcnNpb24+XG4gKi9cbmNvbnN0IFZFUlNJT05fU0VQQVJBVE9SID0gJy8vJztcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgc2VnbWVudCBpbiB0aGUgVVJMLlxuICpcbiAqIFRoZSBNLXByZWZpeCBpbmRpY2F0ZXMgdGhpcyBvYmplY3QgaXMgYSBtb2RlbCBvYmplY3QgdGhhdCBpcyBzZXJpYWxpemVkIGFuZCBzdG9yZWQsIHJlcXVpcmluZyBtaWdyYXRpb24gb24gYnJlYWtpbmcgY2hhbmdlLlxuICovXG5pbnRlcmZhY2UgTVVybFNlZ21lbnQge1xuICBwYXRoOiBzdHJpbmc7XG4gIHBhcmFtZXRlcnM6IHtbbmFtZTogc3RyaW5nXTogc3RyaW5nfTtcbn1cblxuLyoqXG4gKiBDb250cm9scyB3aGljaCBmaWVsZHMgbm90IHRvIHNlcmlhbGl6ZS4gQnkgZGVmYXVsdCwgYWxsIGZpZWxkcyBhcmUgc2VyaWFsaXplZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcmlkU2VyaWFsaXphdGlvbkZsYWdzIHtcbiAgZXhjbHVkZVRyZWVOb2RlSWQ/OiB0cnVlO1xuICBleGNsdWRlVmlld1VpZD86IHRydWU7XG4gIGV4Y2x1ZGVWaWV3TWFya2VkRm9yUmVtb3ZhbD86IHRydWU7XG4gIGV4Y2x1ZGVWaWV3TmF2aWdhdGlvbklkPzogdHJ1ZTtcbn1cbiJdfQ==
@@ -1,54 +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 { ɵWorkbenchLayout } from './ɵworkbench-layout';
11
- import { MPart } from './workbench-layout.model';
12
- import { Injectable, runInInjectionContext } from '@angular/core';
13
- import * as i0 from "@angular/core";
14
- /**
15
- * @inheritDoc
16
- */
17
- export class ɵWorkbenchLayoutFactory {
18
- constructor(_environmentInjector) {
19
- this._environmentInjector = _environmentInjector;
20
- }
21
- /**
22
- * @inheritDoc
23
- */
24
- addPart(id) {
25
- return this.create({
26
- workbenchGrid: { root: new MPart({ id, structural: true, views: [] }), activePartId: id },
27
- });
28
- }
29
- /**
30
- * Creates a workbench layout that consists of the specified grids.
31
- *
32
- * - If not specifying the workbench grid, creates a workbench grid with a main area.
33
- * - If not specifying the main area grid, but the workbench grid has a main area part, creates a main area grid with an initial part.
34
- * To control the identity of the initial part, pass an injector and set the DI token {@link MAIN_AREA_INITIAL_PART_ID}.
35
- * - Grids and outlets can be passed in serialized or deserialized form.
36
- */
37
- create(options) {
38
- return runInInjectionContext(options?.injector ?? this._environmentInjector, () => new ɵWorkbenchLayout({
39
- workbenchGrid: options?.workbenchGrid,
40
- mainAreaGrid: options?.mainAreaGrid,
41
- perspectiveId: options?.perspectiveId,
42
- maximized: options?.maximized,
43
- viewOutlets: options?.viewOutlets,
44
- navigationStates: options?.navigationStates,
45
- }));
46
- }
47
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ɵWorkbenchLayoutFactory, deps: [{ token: i0.EnvironmentInjector }], target: i0.ɵɵFactoryTarget.Injectable }); }
48
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ɵWorkbenchLayoutFactory, providedIn: 'root' }); }
49
- }
50
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ɵWorkbenchLayoutFactory, decorators: [{
51
- type: Injectable,
52
- args: [{ providedIn: 'root' }]
53
- }], ctorParameters: () => [{ type: i0.EnvironmentInjector }] });
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiybV3b3JrYmVuY2gtbGF5b3V0LmZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi93b3JrYmVuY2gvc3JjL2xpYi9sYXlvdXQvybV3b3JrYmVuY2gtbGF5b3V0LmZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0dBUUc7QUFFSCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUMsS0FBSyxFQUFZLE1BQU0sMEJBQTBCLENBQUM7QUFFMUQsT0FBTyxFQUFzQixVQUFVLEVBQVkscUJBQXFCLEVBQUMsTUFBTSxlQUFlLENBQUM7O0FBSS9GOztHQUVHO0FBRUgsTUFBTSxPQUFPLHVCQUF1QjtJQUVsQyxZQUFvQixvQkFBeUM7UUFBekMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFxQjtJQUM3RCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxPQUFPLENBQUMsRUFBc0I7UUFDbkMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO1lBQ2pCLGFBQWEsRUFBRSxFQUFDLElBQUksRUFBRSxJQUFJLEtBQUssQ0FBQyxFQUFDLEVBQUUsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUMsQ0FBQyxFQUFFLFlBQVksRUFBRSxFQUFFLEVBQUM7U0FDdEYsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSSxNQUFNLENBQUMsT0FBME87UUFDdFAsT0FBTyxxQkFBcUIsQ0FBQyxPQUFPLEVBQUUsUUFBUSxJQUFJLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLGdCQUFnQixDQUFDO1lBQ3RHLGFBQWEsRUFBRSxPQUFPLEVBQUUsYUFBYTtZQUNyQyxZQUFZLEVBQUUsT0FBTyxFQUFFLFlBQVk7WUFDbkMsYUFBYSxFQUFFLE9BQU8sRUFBRSxhQUFhO1lBQ3JDLFNBQVMsRUFBRSxPQUFPLEVBQUUsU0FBUztZQUM3QixXQUFXLEVBQUUsT0FBTyxFQUFFLFdBQVc7WUFDakMsZ0JBQWdCLEVBQUUsT0FBTyxFQUFFLGdCQUFnQjtTQUM1QyxDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7OEdBL0JVLHVCQUF1QjtrSEFBdkIsdUJBQXVCLGNBRFgsTUFBTTs7MkZBQ2xCLHVCQUF1QjtrQkFEbkMsVUFBVTttQkFBQyxFQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjMgU3dpc3MgRmVkZXJhbCBSYWlsd2F5c1xuICpcbiAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGVcbiAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wXG4gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC9cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMFxuICovXG5cbmltcG9ydCB7ybVXb3JrYmVuY2hMYXlvdXR9IGZyb20gJy4vybV3b3JrYmVuY2gtbGF5b3V0JztcbmltcG9ydCB7TVBhcnQsIE1QYXJ0R3JpZH0gZnJvbSAnLi93b3JrYmVuY2gtbGF5b3V0Lm1vZGVsJztcbmltcG9ydCB7V29ya2JlbmNoTGF5b3V0RmFjdG9yeX0gZnJvbSAnLi93b3JrYmVuY2gtbGF5b3V0LmZhY3RvcnknO1xuaW1wb3J0IHtFbnZpcm9ubWVudEluamVjdG9yLCBJbmplY3RhYmxlLCBJbmplY3RvciwgcnVuSW5JbmplY3Rpb25Db250ZXh0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TUFJTl9BUkVBfSBmcm9tICcuL3dvcmtiZW5jaC1sYXlvdXQnO1xuaW1wb3J0IHtOYXZpZ2F0aW9uU3RhdGVzLCBWaWV3T3V0bGV0c30gZnJvbSAnLi4vcm91dGluZy9yb3V0aW5nLm1vZGVsJztcblxuLyoqXG4gKiBAaW5oZXJpdERvY1xuICovXG5ASW5qZWN0YWJsZSh7cHJvdmlkZWRJbjogJ3Jvb3QnfSlcbmV4cG9ydCBjbGFzcyDJtVdvcmtiZW5jaExheW91dEZhY3RvcnkgaW1wbGVtZW50cyBXb3JrYmVuY2hMYXlvdXRGYWN0b3J5IHtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9lbnZpcm9ubWVudEluamVjdG9yOiBFbnZpcm9ubWVudEluamVjdG9yKSB7XG4gIH1cblxuICAvKipcbiAgICogQGluaGVyaXREb2NcbiAgICovXG4gIHB1YmxpYyBhZGRQYXJ0KGlkOiBzdHJpbmcgfCBNQUlOX0FSRUEpOiDJtVdvcmtiZW5jaExheW91dCB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlKHtcbiAgICAgIHdvcmtiZW5jaEdyaWQ6IHtyb290OiBuZXcgTVBhcnQoe2lkLCBzdHJ1Y3R1cmFsOiB0cnVlLCB2aWV3czogW119KSwgYWN0aXZlUGFydElkOiBpZH0sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHdvcmtiZW5jaCBsYXlvdXQgdGhhdCBjb25zaXN0cyBvZiB0aGUgc3BlY2lmaWVkIGdyaWRzLlxuICAgKlxuICAgKiAtIElmIG5vdCBzcGVjaWZ5aW5nIHRoZSB3b3JrYmVuY2ggZ3JpZCwgY3JlYXRlcyBhIHdvcmtiZW5jaCBncmlkIHdpdGggYSBtYWluIGFyZWEuXG4gICAqIC0gSWYgbm90IHNwZWNpZnlpbmcgdGhlIG1haW4gYXJlYSBncmlkLCBidXQgdGhlIHdvcmtiZW5jaCBncmlkIGhhcyBhIG1haW4gYXJlYSBwYXJ0LCBjcmVhdGVzIGEgbWFpbiBhcmVhIGdyaWQgd2l0aCBhbiBpbml0aWFsIHBhcnQuXG4gICAqICAgVG8gY29udHJvbCB0aGUgaWRlbnRpdHkgb2YgdGhlIGluaXRpYWwgcGFydCwgcGFzcyBhbiBpbmplY3RvciBhbmQgc2V0IHRoZSBESSB0b2tlbiB7QGxpbmsgTUFJTl9BUkVBX0lOSVRJQUxfUEFSVF9JRH0uXG4gICAqIC0gR3JpZHMgYW5kIG91dGxldHMgY2FuIGJlIHBhc3NlZCBpbiBzZXJpYWxpemVkIG9yIGRlc2VyaWFsaXplZCBmb3JtLlxuICAgKi9cbiAgcHVibGljIGNyZWF0ZShvcHRpb25zPzoge3dvcmtiZW5jaEdyaWQ/OiBzdHJpbmcgfCBNUGFydEdyaWQgfCBudWxsOyBtYWluQXJlYUdyaWQ/OiBzdHJpbmcgfCBNUGFydEdyaWQgfCBudWxsOyBwZXJzcGVjdGl2ZUlkPzogc3RyaW5nOyB2aWV3T3V0bGV0cz86IFZpZXdPdXRsZXRzIHwgc3RyaW5nOyBuYXZpZ2F0aW9uU3RhdGVzPzogTmF2aWdhdGlvblN0YXRlczsgaW5qZWN0b3I/OiBJbmplY3RvcjsgbWF4aW1pemVkPzogYm9vbGVhbn0pOiDJtVdvcmtiZW5jaExheW91dCB7XG4gICAgcmV0dXJuIHJ1bkluSW5qZWN0aW9uQ29udGV4dChvcHRpb25zPy5pbmplY3RvciA/PyB0aGlzLl9lbnZpcm9ubWVudEluamVjdG9yLCAoKSA9PiBuZXcgybVXb3JrYmVuY2hMYXlvdXQoe1xuICAgICAgd29ya2JlbmNoR3JpZDogb3B0aW9ucz8ud29ya2JlbmNoR3JpZCxcbiAgICAgIG1haW5BcmVhR3JpZDogb3B0aW9ucz8ubWFpbkFyZWFHcmlkLFxuICAgICAgcGVyc3BlY3RpdmVJZDogb3B0aW9ucz8ucGVyc3BlY3RpdmVJZCxcbiAgICAgIG1heGltaXplZDogb3B0aW9ucz8ubWF4aW1pemVkLFxuICAgICAgdmlld091dGxldHM6IG9wdGlvbnM/LnZpZXdPdXRsZXRzLFxuICAgICAgbmF2aWdhdGlvblN0YXRlczogb3B0aW9ucz8ubmF2aWdhdGlvblN0YXRlcyxcbiAgICB9KSk7XG4gIH1cbn1cbiJdfQ==