@scion/workbench 17.0.0-beta.9 → 18.0.0-beta.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (328) hide show
  1. package/_index.scss +7 -5
  2. package/design/_workbench-global-styles.scss +18 -0
  3. package/design/_workbench-icon-font.scss +1 -1
  4. package/design/_workbench-popup-global-styles.scss +1 -1
  5. package/design/{_workbench-view-drag-image-global-styles.scss → _workbench-view-global-styles.scss} +1 -2
  6. package/esm2022/lib/activation-instant.provider.mjs +3 -3
  7. package/esm2022/lib/common/asserts.util.mjs +1 -1
  8. package/esm2022/lib/common/class-list.mjs +67 -29
  9. package/esm2022/lib/common/coerce-observable.pipe.mjs +3 -3
  10. package/esm2022/lib/common/dom.util.mjs +1 -1
  11. package/esm2022/lib/common/grid-element-if-visible.pipe.mjs +4 -4
  12. package/esm2022/lib/common/instanceof.pipe.mjs +3 -3
  13. package/esm2022/lib/common/map-coerce.pipe.mjs +3 -3
  14. package/esm2022/lib/common/math.util.mjs +16 -0
  15. package/esm2022/lib/common/null-if-empty.pipe.mjs +4 -4
  16. package/esm2022/lib/common/objects.util.mjs +7 -1
  17. package/esm2022/lib/common/observables.mjs +1 -1
  18. package/esm2022/lib/common/operators.mjs +1 -12
  19. package/esm2022/lib/common/stringify-error.util.mjs +1 -1
  20. package/esm2022/lib/common/typeof.pipe.mjs +3 -3
  21. package/esm2022/lib/common/uid.util.mjs +22 -0
  22. package/esm2022/lib/common//311/265destroy-ref.mjs +1 -1
  23. package/esm2022/lib/content-projection/content-as-overlay.component.mjs +87 -30
  24. package/esm2022/lib/content-projection/workbench-element-references.mjs +32 -0
  25. package/esm2022/lib/dialog/dialog-footer/dialog-action-filter.pipe.mjs +3 -3
  26. package/esm2022/lib/dialog/dialog-footer/dialog-footer.component.mjs +3 -3
  27. package/esm2022/lib/dialog/dialog-footer/workbench-dialog-action.directive.mjs +3 -3
  28. package/esm2022/lib/dialog/dialog-footer/workbench-dialog-footer.directive.mjs +3 -3
  29. package/esm2022/lib/dialog/dialog-header/dialog-header.component.mjs +5 -10
  30. package/esm2022/lib/dialog/dialog-header/workbench-dialog-header.directive.mjs +3 -3
  31. package/esm2022/lib/dialog/movable.directive.mjs +6 -6
  32. package/esm2022/lib/dialog/resizable.directive.mjs +6 -6
  33. package/esm2022/lib/dialog/workbench-dialog.component.mjs +27 -25
  34. package/esm2022/lib/dialog/workbench-dialog.mjs +61 -1
  35. package/esm2022/lib/dialog/workbench-dialog.registry.mjs +4 -4
  36. package/esm2022/lib/dialog/workbench-dialog.service.mjs +3 -3
  37. package/esm2022/lib/dialog//311/265workbench-dialog.mjs +99 -61
  38. package/esm2022/lib/dialog//311/265workbench-dialog.service.mjs +28 -25
  39. package/esm2022/lib/executor/latest-task-executor.mjs +55 -0
  40. package/esm2022/lib/executor/single-task-executor.mjs +9 -19
  41. package/esm2022/lib/filter-field/filter-field.component.mjs +8 -8
  42. package/esm2022/lib/glass-pane/glass-pane.directive.mjs +4 -4
  43. package/esm2022/lib/layout/grid-element/grid-element.component.mjs +10 -20
  44. package/esm2022/lib/layout/main-area-layout/main-area-layout.component.mjs +19 -22
  45. package/esm2022/lib/layout/migration/model/workbench-layout-migration-v5.model.mjs +11 -0
  46. package/esm2022/lib/layout/migration/model/workbench-layout-migration-v6.model.mjs +11 -0
  47. package/esm2022/lib/layout/migration/workbench-layout-migration-v3.service.mjs +7 -7
  48. package/esm2022/lib/layout/migration/workbench-layout-migration-v4.service.mjs +4 -4
  49. package/esm2022/lib/layout/migration/workbench-layout-migration-v5.service.mjs +67 -0
  50. package/esm2022/lib/layout/migration/workbench-layout-migration-v6.service.mjs +59 -0
  51. package/esm2022/lib/layout/stringifier.mjs +70 -0
  52. package/esm2022/lib/layout/workbench-layout.component.mjs +19 -23
  53. package/esm2022/lib/layout/workbench-layout.factory.mjs +3 -3
  54. package/esm2022/lib/layout/workbench-layout.mjs +1 -1
  55. package/esm2022/lib/layout/workbench-layout.model.mjs +1 -1
  56. package/esm2022/lib/layout/workbench-layout.service.mjs +28 -26
  57. package/esm2022/lib/layout/workbench-layouts.util.mjs +1 -9
  58. package/esm2022/lib/layout/workench-layout-serializer.service.mjs +22 -32
  59. package/esm2022/lib/layout//311/265workbench-layout.factory.mjs +6 -5
  60. package/esm2022/lib/layout//311/265workbench-layout.mjs +77 -66
  61. package/esm2022/lib/logging/console-appender.service.mjs +4 -4
  62. package/esm2022/lib/logging/logger.mjs +3 -3
  63. package/esm2022/lib/logging/logging-support.mjs +7 -13
  64. package/esm2022/lib/logging/logging.model.mjs +3 -3
  65. package/esm2022/lib/logging//311/265logger.mjs +12 -12
  66. package/esm2022/lib/message-box/message-box-footer/message-box-footer.component.mjs +9 -8
  67. package/esm2022/lib/message-box/message-box-header/message-box-header.component.mjs +5 -5
  68. package/esm2022/lib/message-box/workbench-message-box.component.mjs +5 -5
  69. package/esm2022/lib/message-box/workbench-message-box.service.mjs +3 -3
  70. package/esm2022/lib/message-box//311/265workbench-message-box.service.mjs +6 -5
  71. package/esm2022/lib/microfrontend-platform/common/microfrontend.util.mjs +22 -6
  72. package/esm2022/lib/microfrontend-platform/initialization/microfrontend-platform-initializer.service.mjs +29 -22
  73. package/esm2022/lib/microfrontend-platform/initialization/ng-zone-observable-decorator.mjs +6 -6
  74. package/esm2022/lib/microfrontend-platform/initialization/workbench-host-manifest-interceptor.service.mjs +14 -4
  75. package/esm2022/lib/microfrontend-platform/manifest-object-cache.service.mjs +63 -0
  76. package/esm2022/lib/microfrontend-platform/microfrontend-dialog/microfrontend-dialog-capability-validator.interceptor.mjs +8 -7
  77. package/esm2022/lib/microfrontend-platform/microfrontend-dialog/microfrontend-dialog-intent-handler.interceptor.mjs +4 -4
  78. package/esm2022/lib/microfrontend-platform/microfrontend-dialog/microfrontend-dialog.component.mjs +8 -12
  79. package/esm2022/lib/microfrontend-platform/microfrontend-host-dialog/microfrontend-host-dialog.component.mjs +21 -12
  80. package/esm2022/lib/microfrontend-platform/microfrontend-host-message-box/microfrontend-host-message-box.component.mjs +10 -9
  81. package/esm2022/lib/microfrontend-platform/microfrontend-host-message-box/text-message/text-message.component.mjs +6 -6
  82. package/esm2022/lib/microfrontend-platform/microfrontend-host-popup/microfrontend-host-popup.component.mjs +17 -15
  83. package/esm2022/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box-capability-validator.interceptor.mjs +6 -5
  84. package/esm2022/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box-intent-handler.interceptor.mjs +4 -4
  85. package/esm2022/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box-legacy-intent-translator.interceptor.mjs +4 -4
  86. package/esm2022/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box.component.mjs +10 -15
  87. package/esm2022/lib/microfrontend-platform/microfrontend-notification/microfrontend-notification-intent-handler.service.mjs +3 -3
  88. package/esm2022/lib/microfrontend-platform/microfrontend-perspective/microfrontend-perspective-capability-validator.interceptor.mjs +39 -0
  89. package/esm2022/lib/microfrontend-platform/microfrontend-perspective/microfrontend-perspective-installer.service.mjs +120 -0
  90. package/esm2022/lib/microfrontend-platform/microfrontend-perspective/microfrontend-perspective-intent-handler.interceptor.mjs +55 -0
  91. package/esm2022/lib/microfrontend-platform/microfrontend-perspective/workbench-perspective-data.mjs +19 -0
  92. package/esm2022/lib/microfrontend-platform/microfrontend-platform-config-loader.mjs +3 -3
  93. package/esm2022/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup-capability-validator.interceptor.mjs +7 -6
  94. package/esm2022/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup-intent-handler.interceptor.mjs +13 -14
  95. package/esm2022/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup.component.mjs +14 -30
  96. package/esm2022/lib/microfrontend-platform/microfrontend-splash/microfrontend-splash.component.mjs +5 -5
  97. package/esm2022/lib/microfrontend-platform/microfrontend-view/microfrontend-view-command-handler.service.mjs +13 -29
  98. package/esm2022/lib/microfrontend-platform/microfrontend-view/microfrontend-view.component.mjs +92 -72
  99. package/esm2022/lib/microfrontend-platform/public_api.mjs +2 -1
  100. package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-capability-validator.interceptor.mjs +8 -7
  101. package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-intent-handler.interceptor.mjs +20 -18
  102. package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-routes.mjs +30 -8
  103. package/esm2022/lib/microfrontend-platform/stable-capability-id-assigner.interceptor.mjs +32 -0
  104. package/esm2022/lib/microfrontend-platform/workbench-microfrontend-support.mjs +29 -11
  105. package/esm2022/lib/migration/workbench-migrator.mjs +1 -1
  106. package/esm2022/lib/notification/notification-css-classes.pipe.mjs +3 -3
  107. package/esm2022/lib/notification/notification-list.component.mjs +6 -10
  108. package/esm2022/lib/notification/notification.component.mjs +6 -7
  109. package/esm2022/lib/notification/notification.service.mjs +8 -7
  110. package/esm2022/lib/notification/text-notification.component.mjs +3 -3
  111. package/esm2022/lib/notification//311/265notification.mjs +1 -1
  112. package/esm2022/lib/page-not-found/page-not-found.component.mjs +7 -9
  113. package/esm2022/lib/part/part-action-bar/part-action-bar.component.mjs +12 -20
  114. package/esm2022/lib/part/part-action-bar/part-action.directive.mjs +7 -7
  115. package/esm2022/lib/part/part-bar/part-bar.component.mjs +334 -265
  116. package/esm2022/lib/part/part-portal.pipe.mjs +10 -10
  117. package/esm2022/lib/part/part.component.mjs +34 -43
  118. package/esm2022/lib/part/view-context-menu/accelerator-format.pipe.mjs +4 -4
  119. package/esm2022/lib/part/view-context-menu/text.component.mjs +17 -13
  120. package/esm2022/lib/part/view-context-menu/view-menu.component.mjs +6 -8
  121. package/esm2022/lib/part/view-context-menu/view-menu.directive.mjs +5 -5
  122. package/esm2022/lib/part/view-context-menu/view-menu.service.mjs +50 -51
  123. package/esm2022/lib/part/view-list/view-list.component.mjs +42 -49
  124. package/esm2022/lib/part/view-list-button/view-list-button.component.mjs +23 -27
  125. package/esm2022/lib/part/view-list-item/view-list-item.component.mjs +16 -18
  126. package/esm2022/lib/part/view-tab/view-tab.component.mjs +100 -111
  127. package/esm2022/lib/part/view-tab-content/view-tab-content.component.mjs +5 -6
  128. package/esm2022/lib/part/view-tab-drag-image/view-tab-drag-image.component.mjs +17 -18
  129. package/esm2022/lib/part/workbench-part-action.registry.mjs +18 -42
  130. package/esm2022/lib/part/workbench-part.model.mjs +10 -1
  131. package/esm2022/lib/part/workbench-part.registry.mjs +11 -45
  132. package/esm2022/lib/part//311/265workbench-part.model.mjs +71 -55
  133. package/esm2022/lib/perspective/migration/workbench-perspective-migration-v2.service.mjs +4 -4
  134. package/esm2022/lib/perspective/workbench-grid-merger.service.mjs +6 -6
  135. package/esm2022/lib/perspective/workbench-perspective-storage.service.mjs +4 -4
  136. package/esm2022/lib/perspective/workbench-perspective-view-conflict-resolver.service.mjs +4 -4
  137. package/esm2022/lib/perspective/workbench-perspective.model.mjs +1 -1
  138. package/esm2022/lib/perspective/workbench-perspective.registry.mjs +11 -43
  139. package/esm2022/lib/perspective/workbench-perspective.service.mjs +73 -64
  140. package/esm2022/lib/perspective/workench-perspective-serializer.service.mjs +5 -5
  141. package/esm2022/lib/perspective//311/265workbench-perspective.model.mjs +62 -47
  142. package/esm2022/lib/popup/popup.component.mjs +6 -6
  143. package/esm2022/lib/popup/popup.config.mjs +27 -25
  144. package/esm2022/lib/popup/popup.service.mjs +171 -176
  145. package/esm2022/lib/portal/wb-component-portal.mjs +18 -17
  146. package/esm2022/lib/portal/workbench-portal-outlet.directive.mjs +4 -4
  147. package/esm2022/lib/public_api.mjs +1 -1
  148. package/esm2022/lib/registry/workbench-object-registry.mjs +38 -17
  149. package/esm2022/lib/routing/empty-outlet/empty-outlet.component.mjs +3 -3
  150. package/esm2022/lib/routing/public_api.mjs +2 -2
  151. package/esm2022/lib/routing/routing.model.mjs +1 -1
  152. package/esm2022/lib/routing/routing.util.mjs +215 -0
  153. package/esm2022/lib/routing/url-segment-matcher.mjs +1 -1
  154. package/esm2022/lib/routing/workbench-auxiliary-route-installer.service.mjs +110 -0
  155. package/esm2022/lib/routing/workbench-dialog-differ.mjs +6 -6
  156. package/esm2022/lib/routing/workbench-layout-differ.mjs +6 -13
  157. package/esm2022/lib/routing/workbench-message-box-differ.mjs +6 -6
  158. package/esm2022/lib/routing/workbench-navigational-states.mjs +2 -2
  159. package/esm2022/lib/routing/workbench-popup-differ.mjs +6 -6
  160. package/esm2022/lib/routing/workbench-route-guards.mjs +57 -0
  161. package/esm2022/lib/routing/workbench-router-link.directive.mjs +5 -5
  162. package/esm2022/lib/routing/workbench-router.service.mjs +3 -3
  163. package/esm2022/lib/routing/workbench-url-observer.service.mjs +143 -151
  164. package/esm2022/lib/routing/workbench-view-outlet-differ.mjs +58 -0
  165. package/esm2022/lib/routing//311/265location.mjs +3 -3
  166. package/esm2022/lib/routing//311/265workbench-router.service.mjs +121 -76
  167. package/esm2022/lib/startup/splash/splash.component.mjs +5 -5
  168. package/esm2022/lib/startup/workbench-initializer.mjs +1 -1
  169. package/esm2022/lib/startup/workbench-launcher.service.mjs +28 -16
  170. package/esm2022/lib/storage/workbench-storage.mjs +3 -3
  171. package/esm2022/lib/testing/workbench-testing.module.mjs +4 -4
  172. package/esm2022/lib/testing/workbench.provider.mjs +5 -5
  173. package/esm2022/lib/theme/workbench-theme-switcher.service.mjs +18 -22
  174. package/esm2022/lib/view/public_api.mjs +1 -2
  175. package/esm2022/lib/view/view-move-handler.service.mjs +73 -58
  176. package/esm2022/lib/view/view-portal.pipe.mjs +9 -9
  177. package/esm2022/lib/view/view.component.mjs +55 -43
  178. package/esm2022/lib/view/workbench-view.model.mjs +1 -1
  179. package/esm2022/lib/view/workbench-view.registry.mjs +11 -45
  180. package/esm2022/lib/view//311/265workbench-view.model.mjs +183 -153
  181. package/esm2022/lib/view-dnd/grid-drop-targets.util.mjs +2 -2
  182. package/esm2022/lib/view-dnd/requires-drop-zone.pipe.mjs +4 -4
  183. package/esm2022/lib/view-dnd/view-drag.service.mjs +89 -73
  184. package/esm2022/lib/view-dnd/view-drop-placeholder-renderer.service.mjs +9 -9
  185. package/esm2022/lib/view-dnd/view-drop-zone.directive.mjs +9 -9
  186. package/esm2022/lib/view-dnd/view-tab-drag-image-renderer.service.mjs +45 -58
  187. package/esm2022/lib/workbench-config.mjs +2 -2
  188. package/esm2022/lib/workbench-id.mjs +3 -3
  189. package/esm2022/lib/workbench.component.mjs +67 -55
  190. package/esm2022/lib/workbench.constants.mjs +1 -5
  191. package/esm2022/lib/workbench.model.mjs +1 -1
  192. package/esm2022/lib/workbench.module.mjs +4 -4
  193. package/esm2022/lib/workbench.provider.mjs +3 -9
  194. package/esm2022/lib/workbench.service.mjs +4 -4
  195. package/esm2022/lib//311/265workbench.service.mjs +40 -44
  196. package/fesm2022/scion-workbench.mjs +4348 -3628
  197. package/fesm2022/scion-workbench.mjs.map +1 -1
  198. package/lib/common/class-list.d.ts +35 -22
  199. package/lib/common/math.util.d.ts +7 -0
  200. package/lib/common/objects.util.d.ts +6 -2
  201. package/lib/common/operators.d.ts +1 -6
  202. package/lib/common/uid.util.d.ts +9 -0
  203. package/lib/content-projection/content-as-overlay.component.d.ts +39 -22
  204. package/lib/content-projection/workbench-element-references.d.ts +13 -0
  205. package/lib/dialog/workbench-dialog.component.d.ts +3 -2
  206. package/lib/dialog/workbench-dialog.d.ts +57 -13
  207. package/lib/dialog//311/265workbench-dialog.d.ts +38 -24
  208. package/lib/dialog//311/265workbench-dialog.service.d.ts +10 -11
  209. package/lib/executor/latest-task-executor.d.ts +26 -0
  210. package/lib/executor/single-task-executor.d.ts +5 -8
  211. package/lib/filter-field/filter-field.component.d.ts +1 -1
  212. package/lib/layout/grid-element/grid-element.component.d.ts +1 -8
  213. package/lib/layout/main-area-layout/main-area-layout.component.d.ts +0 -4
  214. package/lib/layout/migration/model/workbench-layout-migration-v5.model.d.ts +36 -0
  215. package/lib/layout/migration/model/workbench-layout-migration-v6.model.d.ts +35 -0
  216. package/lib/layout/migration/{workbench-layout-migration-v2.service.d.ts → workbench-layout-migration-v5.service.d.ts} +4 -5
  217. package/lib/layout/migration/workbench-layout-migration-v6.service.d.ts +12 -0
  218. package/lib/layout/stringifier.d.ts +26 -0
  219. package/lib/layout/workbench-layout.component.d.ts +4 -5
  220. package/lib/layout/workbench-layout.d.ts +9 -6
  221. package/lib/layout/workbench-layout.model.d.ts +4 -3
  222. package/lib/layout/workbench-layout.service.d.ts +14 -16
  223. package/lib/layout/workbench-layouts.util.d.ts +0 -6
  224. package/lib/layout/workench-layout-serializer.service.d.ts +13 -16
  225. package/lib/layout//311/265workbench-layout.d.ts +18 -19
  226. package/lib/layout//311/265workbench-layout.factory.d.ts +3 -2
  227. package/lib/logging//311/265logger.d.ts +2 -3
  228. package/lib/microfrontend-platform/common/microfrontend.util.d.ts +5 -1
  229. package/lib/microfrontend-platform/initialization/microfrontend-platform-initializer.service.d.ts +7 -3
  230. package/lib/microfrontend-platform/manifest-object-cache.service.d.ts +33 -0
  231. package/lib/microfrontend-platform/microfrontend-host-dialog/microfrontend-host-dialog.component.d.ts +3 -6
  232. package/lib/microfrontend-platform/microfrontend-host-message-box/microfrontend-host-message-box.component.d.ts +2 -1
  233. package/lib/microfrontend-platform/microfrontend-host-message-box/text-message/text-message.component.d.ts +1 -1
  234. package/lib/microfrontend-platform/microfrontend-host-popup/microfrontend-host-popup.component.d.ts +2 -1
  235. package/lib/microfrontend-platform/microfrontend-perspective/microfrontend-perspective-capability-validator.interceptor.d.ts +10 -0
  236. package/lib/microfrontend-platform/microfrontend-perspective/microfrontend-perspective-installer.service.d.ts +24 -0
  237. package/lib/microfrontend-platform/microfrontend-perspective/microfrontend-perspective-intent-handler.interceptor.d.ts +20 -0
  238. package/lib/microfrontend-platform/microfrontend-perspective/workbench-perspective-data.d.ts +9 -0
  239. package/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup-intent-handler.interceptor.d.ts +4 -8
  240. package/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup.component.d.ts +0 -4
  241. package/lib/microfrontend-platform/microfrontend-view/microfrontend-view-command-handler.service.d.ts +5 -12
  242. package/lib/microfrontend-platform/microfrontend-view/microfrontend-view.component.d.ts +23 -33
  243. package/lib/microfrontend-platform/public_api.d.ts +1 -0
  244. package/lib/microfrontend-platform/routing/microfrontend-view-capability-validator.interceptor.d.ts +1 -1
  245. package/lib/microfrontend-platform/routing/microfrontend-view-intent-handler.interceptor.d.ts +3 -7
  246. package/lib/microfrontend-platform/routing/microfrontend-view-routes.d.ts +9 -2
  247. package/lib/microfrontend-platform/stable-capability-id-assigner.interceptor.d.ts +11 -0
  248. package/lib/notification/notification-list.component.d.ts +0 -2
  249. package/lib/page-not-found/page-not-found.component.d.ts +1 -0
  250. package/lib/part/part-action-bar/part-action-bar.component.d.ts +3 -4
  251. package/lib/part/part-action-bar/part-action.directive.d.ts +2 -2
  252. package/lib/part/part-bar/part-bar.component.d.ts +73 -63
  253. package/lib/part/part-portal.pipe.d.ts +3 -5
  254. package/lib/part/part.component.d.ts +9 -12
  255. package/lib/part/view-context-menu/text.component.d.ts +3 -4
  256. package/lib/part/view-context-menu/view-menu.directive.d.ts +1 -1
  257. package/lib/part/view-context-menu/view-menu.service.d.ts +13 -17
  258. package/lib/part/view-list/view-list.component.d.ts +8 -21
  259. package/lib/part/view-list-button/view-list-button.component.d.ts +8 -11
  260. package/lib/part/view-list-item/view-list-item.component.d.ts +3 -7
  261. package/lib/part/view-tab/view-tab.component.d.ts +19 -29
  262. package/lib/part/view-tab-drag-image/view-tab-drag-image.component.d.ts +4 -4
  263. package/lib/part/workbench-part-action.registry.d.ts +3 -23
  264. package/lib/part/workbench-part.model.d.ts +8 -27
  265. package/lib/part/workbench-part.registry.d.ts +3 -26
  266. package/lib/part//311/265workbench-part.model.d.ts +23 -17
  267. package/lib/perspective/workbench-perspective.model.d.ts +18 -25
  268. package/lib/perspective/workbench-perspective.registry.d.ts +3 -26
  269. package/lib/perspective/workbench-perspective.service.d.ts +16 -14
  270. package/lib/perspective/workench-perspective-serializer.service.d.ts +1 -1
  271. package/lib/perspective//311/265workbench-perspective.model.d.ts +30 -21
  272. package/lib/popup/popup.config.d.ts +11 -10
  273. package/lib/popup/popup.service.d.ts +15 -28
  274. package/lib/portal/wb-component-portal.d.ts +21 -5
  275. package/lib/public_api.d.ts +1 -1
  276. package/lib/registry/workbench-object-registry.d.ts +10 -6
  277. package/lib/routing/public_api.d.ts +2 -2
  278. package/lib/routing/routing.model.d.ts +25 -13
  279. package/lib/routing/{router.util.d.ts → routing.util.d.ts} +28 -1
  280. package/lib/routing/{workbench-auxiliary-routes-registrator.service.d.ts → workbench-auxiliary-route-installer.service.d.ts} +10 -3
  281. package/lib/routing/workbench-layout-differ.d.ts +1 -2
  282. package/lib/routing/workbench-navigational-states.d.ts +8 -4
  283. package/lib/{view/workbench-view-route-guards.d.ts → routing/workbench-route-guards.d.ts} +8 -2
  284. package/lib/routing/workbench-url-observer.service.d.ts +31 -55
  285. package/lib/routing/workbench-view-outlet-differ.d.ts +32 -0
  286. package/lib/routing//311/265workbench-router.service.d.ts +22 -18
  287. package/lib/startup/workbench-launcher.service.d.ts +4 -5
  288. package/lib/testing/workbench.provider.d.ts +3 -1
  289. package/lib/theme/workbench-theme-switcher.service.d.ts +4 -6
  290. package/lib/view/public_api.d.ts +0 -1
  291. package/lib/view/view-move-handler.service.d.ts +16 -14
  292. package/lib/view/view-portal.pipe.d.ts +1 -3
  293. package/lib/view/view.component.d.ts +21 -12
  294. package/lib/view/workbench-view.model.d.ts +88 -36
  295. package/lib/view/workbench-view.registry.d.ts +3 -27
  296. package/lib/view//311/265workbench-view.model.d.ts +62 -71
  297. package/lib/view-dnd/view-drag.service.d.ts +79 -49
  298. package/lib/view-dnd/view-drop-placeholder-renderer.service.d.ts +1 -1
  299. package/lib/view-dnd/view-tab-drag-image-renderer.service.d.ts +12 -36
  300. package/lib/workbench-config.d.ts +19 -7
  301. package/lib/workbench.component.d.ts +16 -30
  302. package/lib/workbench.constants.d.ts +0 -5
  303. package/lib/workbench.model.d.ts +31 -3
  304. package/lib/workbench.service.d.ts +58 -56
  305. package/lib//311/265workbench.service.d.ts +18 -31
  306. package/package.json +12 -12
  307. package/esm2022/lib/common/filter-by-predicate.pipe.mjs +0 -27
  308. package/esm2022/lib/common/filter-by-text.pipe.mjs +0 -39
  309. package/esm2022/lib/common/uuid.util.mjs +0 -17
  310. package/esm2022/lib/content-projection/content-projection.directive.mjs +0 -101
  311. package/esm2022/lib/content-projection/view-container.reference.mjs +0 -68
  312. package/esm2022/lib/layout/migration/model/workbench-layout-migration-v1.model.mjs +0 -11
  313. package/esm2022/lib/layout/migration/workbench-layout-migration-v2.service.mjs +0 -59
  314. package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-capability-id-assigner.interceptor.mjs +0 -41
  315. package/esm2022/lib/page-not-found/format-url.pipe.mjs +0 -26
  316. package/esm2022/lib/part/part-action-bar/part-action-filter.pipe.mjs +0 -26
  317. package/esm2022/lib/routing/router.util.mjs +0 -126
  318. package/esm2022/lib/routing/workbench-auxiliary-routes-registrator.service.mjs +0 -94
  319. package/esm2022/lib/view/workbench-view-route-guards.mjs +0 -47
  320. package/lib/common/filter-by-predicate.pipe.d.ts +0 -10
  321. package/lib/common/filter-by-text.pipe.d.ts +0 -12
  322. package/lib/common/uuid.util.d.ts +0 -8
  323. package/lib/content-projection/content-projection.directive.d.ts +0 -30
  324. package/lib/content-projection/view-container.reference.d.ts +0 -42
  325. package/lib/layout/migration/model/workbench-layout-migration-v1.model.d.ts +0 -16
  326. package/lib/microfrontend-platform/routing/microfrontend-view-capability-id-assigner.interceptor.d.ts +0 -10
  327. package/lib/page-not-found/format-url.pipe.d.ts +0 -11
  328. package/lib/part/part-action-bar/part-action-filter.pipe.d.ts +0 -11
@@ -0,0 +1,24 @@
1
+ import { ManifestService } from '@scion/microfrontend-platform';
2
+ import { WorkbenchService } from '../../workbench.service';
3
+ import { Logger } from '../../logging';
4
+ import * as i0 from "@angular/core";
5
+ /**
6
+ * Registers perspectives for workbench perspective capabilities.
7
+ */
8
+ export declare class MicrofrontendPerspectiveInstaller {
9
+ private _manifestService;
10
+ private _workbenchService;
11
+ private _logger;
12
+ constructor(_manifestService: ManifestService, _workbenchService: WorkbenchService, _logger: Logger);
13
+ private installPerspectiveCapabilityListener;
14
+ private registerPerspective;
15
+ private createLayout;
16
+ /**
17
+ * Searches for views that match the specified qualifier and are accessible to the perspective provider,
18
+ * i.e., its own view capabilities or public view capabilities of other applications the perspective provider
19
+ * has an intention for.
20
+ */
21
+ private lookupViewCapabilities;
22
+ static ɵfac: i0.ɵɵFactoryDeclaration<MicrofrontendPerspectiveInstaller, never>;
23
+ static ɵprov: i0.ɵɵInjectableDeclaration<MicrofrontendPerspectiveInstaller>;
24
+ }
@@ -0,0 +1,20 @@
1
+ import { Handler, IntentInterceptor, IntentMessage } from '@scion/microfrontend-platform';
2
+ import { Logger } from '../../logging';
3
+ import { WorkbenchService } from '../../workbench.service';
4
+ import * as i0 from "@angular/core";
5
+ /**
6
+ * Handles perspective intents, instructing the workbench to switch perspective.
7
+ */
8
+ export declare class MicrofrontendPerspectiveIntentHandler implements IntentInterceptor {
9
+ private _workbenchService;
10
+ private _logger;
11
+ constructor(_workbenchService: WorkbenchService, _logger: Logger);
12
+ /**
13
+ * Perspective intents are handled in this interceptor and then swallowed.
14
+ */
15
+ intercept(intentMessage: IntentMessage, next: Handler<IntentMessage>): Promise<void>;
16
+ private consumePerspectiveIntent;
17
+ private switchPerspective;
18
+ static ɵfac: i0.ɵɵFactoryDeclaration<MicrofrontendPerspectiveIntentHandler, never>;
19
+ static ɵprov: i0.ɵɵInjectableDeclaration<MicrofrontendPerspectiveIntentHandler>;
20
+ }
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Keys for associating workbench-specific data with a perspective.
3
+ */
4
+ export declare const WorkbenchPerspectiveData: {
5
+ /**
6
+ * Property to get the capability providing the perspective.
7
+ */
8
+ readonly capability: "ɵcapability";
9
+ };
@@ -1,7 +1,4 @@
1
1
  import { Handler, IntentInterceptor, IntentMessage } from '@scion/microfrontend-platform';
2
- import { Logger } from '../../logging';
3
- import { PopupService } from '../../popup/popup.service';
4
- import { WorkbenchViewRegistry } from '../../view/workbench-view.registry';
5
2
  import * as i0 from "@angular/core";
6
3
  /**
7
4
  * Handles popup intents, instructing the workbench to open a popup with the microfrontend declared on the resolved capability.
@@ -12,11 +9,10 @@ import * as i0 from "@angular/core";
12
9
  * that are not connected to the SCION Workbench.
13
10
  */
14
11
  export declare class MicrofrontendPopupIntentHandler implements IntentInterceptor {
15
- private _popupService;
16
- private _viewRegistry;
17
- private _logger;
18
- private _openedPopups;
19
- constructor(_popupService: PopupService, _viewRegistry: WorkbenchViewRegistry, _logger: Logger);
12
+ private readonly _popupService;
13
+ private readonly _viewRegistry;
14
+ private readonly _logger;
15
+ private readonly _openedPopups;
20
16
  /**
21
17
  * Popup intents are handled in this interceptor and then swallowed.
22
18
  */
@@ -35,10 +35,6 @@ export declare class MicrofrontendPopupComponent implements OnInit, OnDestroy {
35
35
  constructor(popup: ɵPopup<ɵPopupContext>, _host: ElementRef<HTMLElement>, _outletRouter: OutletRouter, _manifestService: ManifestService, _messageClient: MessageClient, _destroyRef: DestroyRef, _workbenchLayoutService: WorkbenchLayoutService, _injector: Injector, _logger: Logger);
36
36
  ngOnInit(): void;
37
37
  onFocusWithin(event: Event): void;
38
- /**
39
- * Looks up the application registered under the given symbolic name. Returns `undefined` if not found.
40
- */
41
- private lookupApplication;
42
38
  /**
43
39
  * Sets the {@link isWorkbenchDrag} property when a workbench drag operation is detected,
44
40
  * such as when dragging a view or moving a sash.
@@ -1,7 +1,4 @@
1
1
  import { OnDestroy } from '@angular/core';
2
- import { MessageClient } from '@scion/microfrontend-platform';
3
- import { Logger } from '../../logging';
4
- import { WorkbenchViewRegistry } from '../../view/workbench-view.registry';
5
2
  import * as i0 from "@angular/core";
6
3
  /**
7
4
  * Handles commands of microfrontends loaded into workbench views, such as setting view tab properties or closing the view.
@@ -9,15 +6,11 @@ import * as i0 from "@angular/core";
9
6
  * This class is constructed after connected to the SCION Microfrontend Platform via {@link MICROFRONTEND_PLATFORM_POST_STARTUP} DI token.
10
7
  */
11
8
  export declare class MicrofrontendViewCommandHandler implements OnDestroy {
12
- private _messageClient;
13
- private _viewRegistry;
14
- private _logger;
15
- private _subscriptions;
16
- constructor(_messageClient: MessageClient, _viewRegistry: WorkbenchViewRegistry, _logger: Logger);
17
- /**
18
- * Notifies microfrontends about the active state of the embedding view.
19
- */
20
- private installViewActiveStatePublisher;
9
+ private readonly _messageClient;
10
+ private readonly _viewRegistry;
11
+ private readonly _logger;
12
+ private readonly _subscriptions;
13
+ constructor();
21
14
  /**
22
15
  * Handles commands to update the title of a view.
23
16
  */
@@ -1,52 +1,40 @@
1
- import { ChangeDetectorRef, DestroyRef, ElementRef, Injector, OnDestroy, OnInit } from '@angular/core';
2
- import { ActivatedRoute } from '@angular/router';
1
+ import { OnDestroy, OnInit } from '@angular/core';
3
2
  import { Observable } from 'rxjs';
4
- import { ManifestService, MessageClient, OutletRouter, SciRouterOutletElement } from '@scion/microfrontend-platform';
5
3
  import { WorkbenchViewCapability } from '@scion/workbench-client';
6
- import { Logger } from '../../logging';
7
- import { CanClose } from '../../workbench.model';
8
- import { ViewContainerReference } from '../../content-projection/view-container.reference';
9
4
  import { ɵWorkbenchView } from '../../view/ɵworkbench-view.model';
10
- import { ViewMenuService } from '../../part/view-context-menu/view-menu.service';
11
- import { WorkbenchRouter } from '../../routing/workbench-router.service';
12
- import { WorkbenchLayoutService } from '../../layout/workbench-layout.service';
13
- import { ComponentType } from '@angular/cdk/portal';
5
+ import { ContentAsOverlayConfig } from '../../content-projection/content-as-overlay.component';
14
6
  import * as i0 from "@angular/core";
15
7
  /**
16
8
  * Embeds the microfrontend of a view capability.
17
9
  */
18
- export declare class MicrofrontendViewComponent implements OnInit, OnDestroy, CanClose {
10
+ export declare class MicrofrontendViewComponent implements OnInit, OnDestroy {
19
11
  private _host;
20
12
  private _route;
21
13
  private _outletRouter;
22
14
  private _manifestService;
15
+ private _manifestObjectCache;
23
16
  private _messageClient;
24
- private _destroyRef;
25
17
  private _logger;
26
18
  private _viewContextMenuService;
27
19
  private _workbenchLayoutService;
28
20
  private _workbenchRouter;
29
21
  private _injector;
30
- private _cd;
31
- view: ɵWorkbenchView;
32
- protected iframeHostRef: ViewContainerReference;
22
+ private _changeDetectorRef;
23
+ private _destroyRef;
24
+ private _routerOutletElement;
33
25
  private _unsubscribeParamsUpdater$;
34
26
  private _universalKeystrokes;
35
- protected capability: WorkbenchViewCapability | undefined;
36
- /**
37
- * Splash to display until the microfrontend signals readiness.
38
- */
39
- protected splash: ComponentType<unknown>;
40
- routerOutletElement: ElementRef<SciRouterOutletElement>;
41
- /**
42
- * Keystrokes which to bubble across iframe boundaries of embedded content.
43
- */
44
- keystrokesToBubble$: Observable<string[]>;
45
- /**
46
- * Indicates whether a workbench drag operation is in progress, such as when dragging a view or moving a sash.
47
- */
48
- isWorkbenchDrag: boolean;
49
- constructor(_host: ElementRef<HTMLElement>, _route: ActivatedRoute, _outletRouter: OutletRouter, _manifestService: ManifestService, _messageClient: MessageClient, _destroyRef: DestroyRef, _logger: Logger, _viewContextMenuService: ViewMenuService, _workbenchLayoutService: WorkbenchLayoutService, _workbenchRouter: WorkbenchRouter, _injector: Injector, _cd: ChangeDetectorRef, view: ɵWorkbenchView, iframeHostRef: ViewContainerReference);
27
+ protected view: ɵWorkbenchView;
28
+ protected capability: WorkbenchViewCapability | null;
29
+ /** Splash to display until the microfrontend signals readiness. */
30
+ protected splash: import("@angular/cdk/portal").ComponentType<unknown>;
31
+ /** Keystrokes which to bubble across iframe boundaries from embedded content. */
32
+ protected keystrokesToBubble$: Observable<string[]>;
33
+ /** Indicates whether a workbench drag operation is in progress, such as when dragging a view or moving a sash. */
34
+ protected isWorkbenchDrag: boolean;
35
+ /** Configures iframe projection. */
36
+ protected overlayConfig: ContentAsOverlayConfig;
37
+ constructor();
50
38
  ngOnInit(): void;
51
39
  private installNavigator;
52
40
  private onNavigate;
@@ -60,13 +48,14 @@ export declare class MicrofrontendViewComponent implements OnInit, OnDestroy, Ca
60
48
  * Updates the properties of this view, such as the view title, as defined by the capability.
61
49
  */
62
50
  private setViewProperties;
51
+ private installViewActivePublisher;
52
+ private installPartIdPublisher;
63
53
  /**
64
54
  * Promise that resolves once params contain the given capability id.
65
55
  */
66
56
  private waitForCapabilityParam;
67
- /** @inheritDoc */
68
- canClose(): Promise<boolean>;
69
- onFocusWithin(event: Event): void;
57
+ private installCanCloseGuard;
58
+ protected onFocusWithin(event: Event): void;
70
59
  /**
71
60
  * Upon subscription, emits the keystrokes registered with menu items of this view's context menu,
72
61
  * and then continuously when they change. The observable never completes.
@@ -78,6 +67,7 @@ export declare class MicrofrontendViewComponent implements OnInit, OnDestroy, Ca
78
67
  */
79
68
  private installWorkbenchDragDetector;
80
69
  private propagateWorkbenchTheme;
70
+ private unload;
81
71
  ngOnDestroy(): void;
82
72
  static ɵfac: i0.ɵɵFactoryDeclaration<MicrofrontendViewComponent, never>;
83
73
  static ɵcmp: i0.ɵɵComponentDeclaration<MicrofrontendViewComponent, "wb-microfrontend-view", never, {}, {}, never, never, true, never>;
@@ -1,2 +1,3 @@
1
1
  export { MicrofrontendPlatformConfigLoader } from './microfrontend-platform-config-loader';
2
+ export { WorkbenchPerspectiveData } from './microfrontend-perspective/workbench-perspective-data';
2
3
  export * from './microfrontend-platform.config';
@@ -1,7 +1,7 @@
1
1
  import { Capability, CapabilityInterceptor } from '@scion/microfrontend-platform';
2
2
  import * as i0 from "@angular/core";
3
3
  /**
4
- * Asserts view capabilities to have required properties and assigns each view capability a stable identifer required for persistent navigation.
4
+ * Asserts view capabilities to have required properties.
5
5
  */
6
6
  export declare class MicrofrontendViewCapabilityValidator implements CapabilityInterceptor {
7
7
  intercept(capability: Capability): Promise<Capability>;
@@ -1,7 +1,4 @@
1
1
  import { Handler, IntentInterceptor, IntentMessage } from '@scion/microfrontend-platform';
2
- import { WorkbenchRouter } from '../../routing/workbench-router.service';
3
- import { Logger } from '../../logging';
4
- import { WorkbenchViewRegistry } from '../../view/workbench-view.registry';
5
2
  import * as i0 from "@angular/core";
6
3
  /**
7
4
  * Handles microfrontend view intents, instructing the workbench to navigate to the microfrontend of the resolved capability.
@@ -10,10 +7,9 @@ import * as i0 from "@angular/core";
10
7
  * that are not connected to the SCION Workbench.
11
8
  */
12
9
  export declare class MicrofrontendViewIntentHandler implements IntentInterceptor {
13
- private _workbenchRouter;
14
- private _viewRegistry;
15
- private _logger;
16
- constructor(_workbenchRouter: WorkbenchRouter, _viewRegistry: WorkbenchViewRegistry, _logger: Logger);
10
+ private readonly _workbenchRouter;
11
+ private readonly _viewRegistry;
12
+ private readonly _logger;
17
13
  /**
18
14
  * View intents are handled in this interceptor and then swallowed.
19
15
  */
@@ -1,4 +1,4 @@
1
- import { Params, UrlMatcher, UrlSegment } from '@angular/router';
1
+ import { Params, Route, UrlMatcher, UrlSegment } from '@angular/router';
2
2
  import { WorkbenchViewCapability } from '@scion/workbench-client';
3
3
  import { Commands } from '../../routing/routing.model';
4
4
  /**
@@ -38,7 +38,10 @@ export declare const MicrofrontendViewRoutes: {
38
38
  /**
39
39
  * Tests given URL to be a microfrontend route.
40
40
  */
41
- readonly isMicrofrontendRoute: (segments: UrlSegment[]) => boolean;
41
+ readonly parseMicrofrontendRoute: (segments: UrlSegment[]) => {
42
+ capabilityId: string;
43
+ params: Params;
44
+ } | null;
42
45
  /**
43
46
  * Splits given params into URL and transient params.
44
47
  */
@@ -46,4 +49,8 @@ export declare const MicrofrontendViewRoutes: {
46
49
  urlParams: Params;
47
50
  transientParams: Params;
48
51
  };
52
+ /**
53
+ * Matches the route if target of a view capability (microfrontend) and the capability exists.
54
+ */
55
+ readonly canMatchViewCapability: (_route: Route, segments: UrlSegment[]) => boolean;
49
56
  };
@@ -0,0 +1,11 @@
1
+ import { Capability, CapabilityInterceptor } from '@scion/microfrontend-platform';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * Assigns perspective and view capabilities a stable identifer based on the qualifier and application.
5
+ */
6
+ export declare class StableCapabilityIdAssigner implements CapabilityInterceptor {
7
+ private readonly _types;
8
+ intercept(capability: Capability): Promise<Capability>;
9
+ static ɵfac: i0.ɵɵFactoryDeclaration<StableCapabilityIdAssigner, never>;
10
+ static ɵprov: i0.ɵɵInjectableDeclaration<StableCapabilityIdAssigner>;
11
+ }
@@ -1,4 +1,3 @@
1
- import { TrackByFunction } from '@angular/core';
2
1
  import { NotificationService } from './notification.service';
3
2
  import { ɵNotification } from './ɵnotification';
4
3
  import { Observable } from 'rxjs';
@@ -11,7 +10,6 @@ export declare class NotificationListComponent {
11
10
  notifications$: Observable<ɵNotification[]>;
12
11
  constructor(_notificationService: NotificationService);
13
12
  onNotificationClose(notification: ɵNotification): void;
14
- trackByFn: TrackByFunction<ɵNotification>;
15
13
  /**
16
14
  * Returns animation metadata to slide-in a new notification, and to fade-out upon dismiss.
17
15
  */
@@ -3,6 +3,7 @@ import * as i0 from "@angular/core";
3
3
  export default class PageNotFoundComponent {
4
4
  protected isDevMode: boolean;
5
5
  protected view: WorkbenchView;
6
+ protected urlSegments: import("@angular/core").Signal<string>;
6
7
  static ɵfac: i0.ɵɵFactoryDeclaration<PageNotFoundComponent, never>;
7
8
  static ɵcmp: i0.ɵɵComponentDeclaration<PageNotFoundComponent, "wb-page-not-found", never, {}, {}, never, never, true, never>;
8
9
  }
@@ -1,8 +1,7 @@
1
- import { WorkbenchPart } from '../workbench-part.model';
1
+ import { WorkbenchPartAction } from '../../workbench.model';
2
2
  import * as i0 from "@angular/core";
3
3
  export declare class PartActionBarComponent {
4
- part: WorkbenchPart;
5
- constructor(part: WorkbenchPart);
4
+ actions: import("@angular/core").InputSignal<WorkbenchPartAction[]>;
6
5
  static ɵfac: i0.ɵɵFactoryDeclaration<PartActionBarComponent, never>;
7
- static ɵcmp: i0.ɵɵComponentDeclaration<PartActionBarComponent, "wb-part-action-bar", never, {}, {}, never, never, true, never>;
6
+ static ɵcmp: i0.ɵɵComponentDeclaration<PartActionBarComponent, "wb-part-action-bar", never, { "actions": { "alias": "actions"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
8
7
  }
@@ -4,9 +4,9 @@ import { WorkbenchView } from '../../view/workbench-view.model';
4
4
  import { CanMatchPartFn } from '../../workbench.model';
5
5
  import * as i0 from "@angular/core";
6
6
  /**
7
- * Use this directive to contribute an action to a part's action bar.
7
+ * Use this directive to contribute an action to the action bar of a {@link WorkbenchPart}.
8
8
  *
9
- * Part actions are displayed to the right of the view tab bar and enable interaction with the part and its content.
9
+ * Part actions are displayed to the right of the view tabs and enable interaction with the part and its content.
10
10
  *
11
11
  * The host element of this modeling directive must be a <ng-template>. The action shares the lifecycle of the host element.
12
12
  *
@@ -1,12 +1,6 @@
1
- import { DestroyRef, ElementRef, NgZone, OnInit, QueryList } from '@angular/core';
1
+ import { OnDestroy, Signal } from '@angular/core';
2
2
  import { ViewTabComponent } from '../view-tab/view-tab.component';
3
- import { WorkbenchLayoutService } from '../../layout/workbench-layout.service';
4
- import { Observable } from 'rxjs';
5
- import { ViewTabDragImageRenderer } from '../../view-dnd/view-tab-drag-image-renderer.service';
6
- import { ViewDragService } from '../../view-dnd/view-drag.service';
7
3
  import { ɵWorkbenchPart } from '../ɵworkbench-part.model';
8
- import { ɵWorkbenchRouter } from '../../routing/ɵworkbench-router.service';
9
- import { ViewId } from '../../view/workbench-view.model';
10
4
  import * as i0 from "@angular/core";
11
5
  /**
12
6
  * Renders view tabs and actions of a {@link WorkbenchPart}.
@@ -14,15 +8,19 @@ import * as i0 from "@angular/core";
14
8
  * Tabs are added to a viewport, which the user can scroll if not enough space. The viewport grows with its tabs,
15
9
  * allowing actions to be placed directly after the last tab or on the right side.
16
10
  *
17
- * ## Drag Events
11
+ * ## Drag and Drop
12
+ * This component subscribes to drag events to visualize tabs during a drag operation. The drag operation is initiated in {@link ViewTabComponent}.
13
+ *
18
14
  * We use native drag and drop to support dragging views to other windows.
19
15
  *
20
- * By listening to drag events, the tabbar visualizes tabs during a drag operation. The drag operation is initiated in {@link ViewTabComponent}.
21
- * - `dragstart` and `dragend` events are fired in the tabbar where the drag operation was initiated.
22
- * - `dragenter` event is fired when a tab enters the tabbar.
23
- * - `dragover` events are fired when dragging a tab over the tabbar.
24
- * - `dragleave` event is fired when a tab leaves the tabbar.
25
- * - `drop` event is fired when the user drops a tab in the tabbar.
16
+ * Following events are triggered:
17
+ * - dragstart: when start dragging a tab (only received in the tabbar where the drag operation has started)
18
+ * - dragend: when end dragging a tab, either via drop or cancel (only received in the tabbar where the drag operation has started)
19
+ * - dragenter: when a tab enters the tabbar
20
+ * - dragover: when dragging a tab over the tabbar, every few hundred milliseconds
21
+ * - dragleave: when a tab leaves the tabbar
22
+ * - drop: when the user drops a tab in the tabbar
23
+ *
26
24
  * - Note that `dragleave` event is not fired on drop action. Therefore, always handle both events, `dragleave` and `drop` events, respectively.
27
25
  *
28
26
  * ## Terminology
@@ -31,36 +29,35 @@ import * as i0 from "@angular/core";
31
29
  * - Drag image: Image for the tab to be dragged. We do not use the native drag image support to control drag image position and size,
32
30
  * e.g., to snap the drag image to the tabbar when dragging near it.
33
31
  */
34
- export declare class PartBarComponent implements OnInit {
35
- private _workbenchId;
36
- private _workbenchLayoutService;
37
- private _router;
38
- private _viewTabDragImageRenderer;
39
- private _part;
40
- private _viewDragService;
41
- private _destroyRef;
42
- private _zone;
32
+ export declare class PartBarComponent implements OnDestroy {
43
33
  private readonly _host;
44
34
  private readonly _viewportChange$;
45
- private readonly _viewTabs$;
46
- private readonly _dragenter$;
47
- private readonly _dragleave$;
48
- private readonly _dragend$;
49
- readonly dragover$: Observable<boolean>;
50
- private _viewportElement;
51
- private _viewportComponent;
52
- private _tabCornerRadiusElement;
53
- private _paddingInlineElement;
54
- set injectViewTabs(queryList: QueryList<ViewTabComponent>);
35
+ private readonly _workbenchId;
36
+ private readonly _router;
37
+ private readonly _viewTabDragImageRenderer;
38
+ private readonly _viewDragService;
39
+ private readonly _zone;
40
+ private readonly _viewTabs;
41
+ private readonly _hostBoundingClientRect;
42
+ private readonly _viewportComponent;
43
+ private readonly _viewportComponentElement;
44
+ private readonly _tabCornerRadiusElement;
45
+ private readonly _paddingInlineElement;
46
+ private readonly _fillerElement;
47
+ private readonly _viewportBoundingBox;
48
+ private readonly _maxViewportWidth;
49
+ protected readonly part: ɵWorkbenchPart;
50
+ protected readonly startActions: Signal<import("@scion/workbench").WorkbenchPartAction[]>;
51
+ protected readonly endActions: Signal<import("@scion/workbench").WorkbenchPartAction[]>;
55
52
  /**
56
53
  * Reference to the tab before which to insert the drag source on drop, or `end` if dropping it after the last tab.
57
54
  */
58
- dropTargetViewTab: ViewTabComponent | 'end' | null;
55
+ protected dropTargetViewTab: import("@angular/core").WritableSignal<"end" | ViewTabComponent | null>;
59
56
  /**
60
57
  * Reference to the tab where the drag operation was started.
61
58
  * This reference is only set if the drag operation started on a tab of this tabbar.
62
59
  */
63
- dragSourceViewTab: ViewTabComponent | null;
60
+ protected dragSourceViewTab: import("@angular/core").WritableSignal<ViewTabComponent | null>;
64
61
  /**
65
62
  * Transfer data of the tab being dragged over this tabbar.
66
63
  */
@@ -69,30 +66,28 @@ export declare class PartBarComponent implements OnInit {
69
66
  * Function for snapping the drag image to the tabbar when dragging near it.
70
67
  */
71
68
  private _constrainFn;
69
+ /**
70
+ * Signals when unsetting drag state.
71
+ */
72
+ private _onUnsetDragState;
72
73
  /**
73
74
  * Tabbar indents where to display the rounded bottom corners of the first and last view tab.
74
75
  */
75
76
  private _tabbarIndent;
77
+ constructor();
78
+ protected onDoubleClick(event: MouseEvent): void;
76
79
  /**
77
- * Notifies when the drag animation has finished, i.e., tabs have transitioned to their final position.
80
+ * Method invoked when the user starts dragging a tab of this tabbar, only in the tabbar where the drag started.
78
81
  */
79
- private _dragAnimationStable$;
80
- constructor(host: ElementRef<HTMLElement>, _workbenchId: string, _workbenchLayoutService: WorkbenchLayoutService, _router: ɵWorkbenchRouter, _viewTabDragImageRenderer: ViewTabDragImageRenderer, _part: ɵWorkbenchPart, _viewDragService: ViewDragService, _destroyRef: DestroyRef, _zone: NgZone);
81
- ngOnInit(): void;
82
- onDoubleClick(event: MouseEvent): void;
83
- get viewIds$(): Observable<ViewId[]>;
84
- onTabbarViewportDimensionChange(): void;
85
- onScroll(): void;
82
+ private onTabDragStart;
86
83
  /**
87
- * Method invoked when the user starts dragging a tab of this tabbar.
84
+ * Method invoked when the user ends dragging a tab of this tabbar, either by drop or cancel, only in the tabbar where the drag started.
88
85
  */
89
- onViewDragStart(event: DragEvent): void;
86
+ private onTabDragEnd;
90
87
  /**
91
- * Method invoked when the user ends dragging a tab of this tabbar.
92
- *
93
- * Invoked only in the tabbar where the drag operation started, regardless of whether the drag operation was completed or canceled.
88
+ * Method invoked when the layout has changed after a drop. The drop may not be related to a tab of this tabbar.
94
89
  */
95
- onViewDragEnd(): void;
90
+ private onTabMoved;
96
91
  /**
97
92
  * Method invoked when the user drags a tab into this tabbar.
98
93
  */
@@ -102,7 +97,7 @@ export declare class PartBarComponent implements OnInit {
102
97
  */
103
98
  private onTabbarDragLeave;
104
99
  /**
105
- * Method invoked while the user is dragging a tab over this tabbar.
100
+ * Method invoked when the user is dragging a tab over this tabbar.
106
101
  */
107
102
  private onTabbarDragOver;
108
103
  /**
@@ -112,34 +107,39 @@ export declare class PartBarComponent implements OnInit {
112
107
  /**
113
108
  * Locates the tab before which the dragged tab is to be inserted when it is dropped. Dragging beyond the last tab returns `end`.
114
109
  */
115
- computeDropTarget(event: DragEvent): ViewTabComponent | 'end';
110
+ private computeDropTarget;
116
111
  /**
117
112
  * Creates the function for snapping the drag image to the tabbar when dragging near it.
118
113
  */
119
114
  private createDragImageConstrainFn;
120
115
  /**
121
- * Calculates the maximum width of the tabbar viewport before an overflow would occur, which can then be used to constrain the drag image.
122
- *
123
- * To calculate the effective width, we need to simulate an overflow in the DOM. Therefore, call this method only from `dragstart` and not
124
- * from `dragover` and disable animations.
116
+ * Calculates the maximum width of the tabbar viewport before an overflow would occur.
117
+ * Use to constrain the drag image to the tabbar bounds.
125
118
  */
126
119
  private calculateMaxViewportWidth;
127
120
  /**
128
- * Calculates the width for the drag image placeholder.
121
+ * Calculates the width for the drag placeholder.
122
+ *
123
+ * The placeholder expands the viewport when dragging a tab to the right, moving part actions along with the dragover event.
129
124
  *
125
+ * Calculation:
130
126
  * - When dragging over tabs, the width is equal to the width of the drag source.
131
- * - When dragging to the right of the last tab, the width of the placeholder is calculated as the distance between the
132
- * last tab and the position of the dragover event. Applying this width will resize the viewport, moving part actions along
133
- * with the dragover event.
127
+ * - When dragging to the right of the last tab, the width of the placeholder is the distance between the last tab and the position of the drag pointer.
134
128
  */
135
- private calculateDragImagePlaceholderWidth;
129
+ private calculateDragPlaceholderWidth;
136
130
  /**
137
131
  * Indicates whether CSS animations have finished when dragging a tab over the tabbar.
138
132
  * The animation is considered stable when all tabs have moved to their final position.
139
133
  */
140
134
  private isDragAnimationStable;
135
+ /**
136
+ * Cleans up the drag state, unsetting drag data and drag source based on provided options.
137
+ */
141
138
  private unsetDragState;
142
- private get _viewTabs();
139
+ /**
140
+ * Executes given function when the drag animation has finished, i.e., tabs have transitioned to their final position.
141
+ */
142
+ private onDragAnimationStable;
143
143
  /**
144
144
  * Scrolls the tab of the active view into view.
145
145
  */
@@ -148,9 +148,19 @@ export declare class PartBarComponent implements OnInit {
148
148
  * Updates {@link ɵWorkbenchView} when its tab is scrolled into view.
149
149
  */
150
150
  private installScrolledIntoViewUpdater;
151
+ /**
152
+ * Subscribes to drag events.
153
+ */
151
154
  private installViewDragListener;
152
- private installViewportClientSizeDetector;
153
- private installTabbarIndentSizeDetector;
155
+ /**
156
+ * Emits on {@link _viewportChange$} when the viewport size or scroll position changes.
157
+ */
158
+ private installViewportChangeTracker;
159
+ /**
160
+ * Tracks the tabbar indents.
161
+ */
162
+ private installTabbarIndentSizeTracker;
163
+ ngOnDestroy(): void;
154
164
  static ɵfac: i0.ɵɵFactoryDeclaration<PartBarComponent, never>;
155
165
  static ɵcmp: i0.ɵɵComponentDeclaration<PartBarComponent, "wb-part-bar", never, {}, {}, never, never, true, never>;
156
166
  }
@@ -1,5 +1,4 @@
1
- import { Injector, PipeTransform } from '@angular/core';
2
- import { WorkbenchPartRegistry } from './workbench-part.registry';
1
+ import { PipeTransform } from '@angular/core';
3
2
  import type { PartComponent } from './part.component';
4
3
  import type { MainAreaLayoutComponent } from '../layout/main-area-layout/main-area-layout.component';
5
4
  import { ComponentPortal } from '@angular/cdk/portal';
@@ -9,9 +8,8 @@ import * as i0 from "@angular/core";
9
8
  * or throws an error if the part is not registered.
10
9
  */
11
10
  export declare class PartPortalPipe implements PipeTransform {
12
- private _partRegistry;
13
- private _injector;
14
- constructor(_partRegistry: WorkbenchPartRegistry, _injector: Injector);
11
+ private readonly _partRegistry;
12
+ private readonly _injector;
15
13
  transform(partId: string | null): ComponentPortal<PartComponent | MainAreaLayoutComponent> | null;
16
14
  static ɵfac: i0.ɵɵFactoryDeclaration<PartPortalPipe, never>;
17
15
  static ɵpipe: i0.ɵɵPipeDeclaration<PartPortalPipe, "wbPartPortal", true>;
@@ -1,24 +1,21 @@
1
- import { ChangeDetectorRef, Injector, OnDestroy, OnInit } from '@angular/core';
1
+ import { OnDestroy, OnInit } from '@angular/core';
2
2
  import { WbViewDropEvent } from '../view-dnd/view-drop-zone.directive';
3
- import { ViewDragService } from '../view-dnd/view-drag.service';
4
3
  import { ɵWorkbenchPart } from './ɵworkbench-part.model';
5
- import { Logger } from '../logging';
6
- import { WorkbenchViewRegistry } from '../view/workbench-view.registry';
7
4
  import * as i0 from "@angular/core";
8
5
  export declare class PartComponent implements OnInit, OnDestroy {
9
- private _workbenchId;
10
- private _viewRegistry;
11
- private _viewDragService;
12
- private _injector;
13
- private _logger;
14
- private _cd;
15
- part: ɵWorkbenchPart;
16
6
  tabIndex: number;
17
7
  get partId(): string;
18
8
  get isInMainArea(): boolean;
19
9
  get isMainArea(): boolean;
20
10
  get isActive(): boolean;
21
- constructor(_workbenchId: string, _viewRegistry: WorkbenchViewRegistry, _viewDragService: ViewDragService, _injector: Injector, _logger: Logger, _cd: ChangeDetectorRef, part: ɵWorkbenchPart);
11
+ private readonly _workbenchId;
12
+ private readonly _viewRegistry;
13
+ private readonly _viewDragService;
14
+ private readonly _injector;
15
+ private readonly _logger;
16
+ private readonly _cd;
17
+ protected readonly part: ɵWorkbenchPart;
18
+ constructor();
22
19
  ngOnInit(): void;
23
20
  /**
24
21
  * Method invoked to move a view into this part.
@@ -1,12 +1,11 @@
1
- import { InjectionToken } from '@angular/core';
1
+ import { InjectionToken, Signal } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
- export declare const TEXT: InjectionToken<string>;
3
+ export declare const TEXT: InjectionToken<string | (() => string | Signal<string>)>;
4
4
  /**
5
5
  * Component which renders text injected via {@link TEXT} injection token.
6
6
  */
7
7
  export declare class TextComponent {
8
- text: string;
9
- constructor(text: string);
8
+ protected text: Signal<string>;
10
9
  static ɵfac: i0.ɵɵFactoryDeclaration<TextComponent, never>;
11
10
  static ɵcmp: i0.ɵɵComponentDeclaration<TextComponent, "wb-text", never, {}, {}, never, never, true, never>;
12
11
  }