Skip to content

Releases: SchweizerischeBundesbahnen/scion-workbench

19.0.0-beta.1 (@scion/workbench)

13 Dec 10:34
Compare
Choose a tag to compare

19.0.0-beta.1 (2024-12-13)

Dependencies

  • workbench: update @scion/workbench to Angular 19 (e3f358f)

Chore

  • workbench: remove deprecated workbench modules (df3eb4e)

BREAKING CHANGES

  • workbench: Updating @scion/workbench to Angular 19 introduced a breaking change.

    To migrate:

  • workbench: Removing deprecated workbench modules introduced the following breaking changes.

    The following APIs have been removed:

    • WorkbenchModule.forRoot => register SCION Workbench providers using provideWorkbench function and import standalone components and directives instead;
    • WorkbenchModule.forChild => no replacement; import standalone workbench components and directives instead;
    • WorkbenchTestingModule.forTest => no replacement; use provideWorkbench instead;
    • provideWorkbenchForTest => no replacement; use provideWorkbench instead;

18.0.0-beta.10 (@scion/workbench)

09 Dec 21:56
Compare
Choose a tag to compare

18.0.0-beta.10 (2024-12-09)

Bug Fixes

  • workbench/view: do not scroll the active tab into view when opening or closing an inactive tab (a5d4d7e)
  • workbench/view: scroll the active tab into view when navigating the active tab (d10d25b)

Performance Improvements

  • workbench: improve drag experience when dragging tabs in the tabbar (0ae78eb)

18.0.0-beta.9 (@scion/workbench)

25 Nov 15:56
Compare
Choose a tag to compare

18.0.0-beta.9 (2024-11-25)

Bug Fixes

  • workbench/view: invoke CanClose guard in view injection context (07ba936), closes #578
  • workbench/view: prevent CanClose guard from blocking workbench navigation (12e9e91), closes #558
  • workbench/view: prevent closing views with a pending CanClose guard (4326a63)

Features

  • workbench/view: add functional CanClose guard, deprecate class-based guard (c2ee531)

Deprecations

  • workbench/view: The class-based CanClose guard has been deprecated in favor of a functional guard that can be registered on WorkbenchView.canClose.

    Migrate by registering a callback on WorkbenchView.canClose instead of implementing the CanClose interface.

    Before migration:

    import {CanClose} from '@scion/workbench';
    import {Component} from '@angular/core';
    
    @Component({})
    export class ViewComponent implements CanClose {
    
      public canClose(): boolean {
        return true;
      }
    }

    After migration:

    import {Component, inject} from '@angular/core';
    import {WorkbenchView} from '@scion/workbench';
    
    @Component({})
    export class ViewComponent {
    
      constructor() {
        inject(WorkbenchView).canClose(() => {
          return true;
        });
      }
    }

1.0.0-beta.28 (@scion/workbench-client)

25 Nov 15:41
Compare
Choose a tag to compare

1.0.0-beta.28 (2024-11-25)

Features

  • workbench-client/view: add functional CanClose guard, deprecate class-based guard (ecd52b3)

Deprecations

  • workbench-client/view: The class-based CanClose guard has been deprecated in favor of a functional guard that can be registered on WorkbenchView.canClose.

    Migrate by registering a callback on WorkbenchView.canClose instead of implementing the CanClose interface.

    Before migration:

    import {CanClose, WorkbenchView} from '@scion/workbench-client';
    import {Beans} from '@scion/toolkit/bean-manager';
    
    export class ViewComponent implements CanClose {
    
      constructor() {
        Beans.get(WorkbenchView).addCanClose(this);
      }
    
      public canClose(): boolean {
        return true;
      }
    }

    After migration:

    import {WorkbenchView} from '@scion/workbench-client';
    import {Beans} from '@scion/toolkit/bean-manager';
    
    export class ViewComponent {
    
      constructor() {
        Beans.get(WorkbenchView).canClose(() => {
          return true;
        });
      }
    }

18.0.0-beta.8 (@scion/workbench)

29 Oct 14:56
Compare
Choose a tag to compare

18.0.0-beta.8 (2024-10-28)

Bug Fixes

  • workbench/popup: ensure the popup anchor not leaving view boundaries (c629f49)
  • workbench/view: ensure view overlays align with view boundaries when view position changes (2998295)

Features

  • workbench: prevent tracking unwanted dependencies in effects (7a7eaf8)

BREAKING CHANGES

  • workbench: SCION Workbench requires @scion/toolkit version 1.6.0 or later.

  • workbench: SCION Workbench requires @scion/components version 18.1.1 or later.

  • workbench: Calling following workbench methods in a reactive (tracking) context (e.g., effect) now throws an error. Migrate by using Angular's untracked() function.

    • WorkbenchRouter.navigate
    • WorkbenchService.registerPerspective
    • WorkbenchService.switchPerspective
    • WorkbenchService.resetPerspective
    • WorkbenchService.closeViews
    • WorkbenchService.switchTheme
    • WorkbenchService.registerPartAction
    • WorkbenchService.registerViewMenuItem
    • WorkbenchLauncher.launch
    • WorkbenchDialogService.open
    • WorkbenchMessageBoxService.open
    • NotificationService.notify
    • PopupService.open
    • WorkbenchPart.activate
    • WorkbenchView.activate
    • WorkbenchView.close
    • WorkbenchView.move
    • WorkbenchView.registerMenuItem
    • WorkbenchDialog.close
    • Popup.close

    Migration Example

    import {effect, inject, untracked} from '@angular/core';
    import {WorkbenchRouter} from '@scion/workbench';
    
    const workbenchRouter = inject(WorkbenchRouter);
    
    // Before
    effect(() => {
      if (someSignal()) {
        workbenchRouter.navigate(['path/to/view']);
      }
    });
    
    // After
    effect(() => {
      if (someSignal()) {
        untracked(() => workbenchRouter.navigate(['path/to/view']));
      }
    });

18.0.0-beta.7 (@scion/workbench)

11 Oct 18:11
Compare
Choose a tag to compare

18.0.0-beta.7 (2024-10-11)

Bug Fixes

  • workbench/dialog: enable updating dialog properties in an Angular effect (7da2418)
  • workbench/view: enable updating view properties in an Angular effect (a7d3594)
  • workbench: position document root as required by @scion/toolkit (0d2f6c2)

1.0.0-beta.27 (@scion/workbench-client)

11 Oct 17:44
Compare
Choose a tag to compare

1.0.0-beta.27 (2024-10-11)

Bug Fixes

  • workbench-client: position document root as required by @scion/toolkit (007e9c3)

18.0.0-beta.6 (@scion/workbench)

11 Sep 11:29
Compare
Choose a tag to compare

18.0.0-beta.6 (2024-09-11)

Bug Fixes

  • workbench/messagebox: display message if opened from a CanClose guard of a microfrontend view (b0829b3), closes #591
  • workbench/view: restore scroll position when switching views (9265951), closes #588
  • workbench: disable change detection during navigation to prevent inconsistent layout rendering (68ecca7)

Features

  • workbench/popup: support returning result on focus loss (ce5089e)
  • workbench/view: enable translation of built-in context menu (9bfdf74)

BREAKING CHANGES

  • workbench/popup: The method closeWithError has been removed from the Popup handle. Instead, pass an Error object to the close method.

Before migration:

import {inject} from '@angular/core';
import {Popup} from '@scion/workbench';

inject(Popup).closeWithError('some error');

After migration:

import {inject} from '@angular/core';
import {Popup} from '@scion/workbench';

inject(Popup).close(new Error('some error'));

1.0.0-beta.26 (@scion/workbench-client)

11 Sep 11:21
Compare
Choose a tag to compare

1.0.0-beta.26 (2024-09-11)

Features

  • workbench-client/popup: support returning result on focus loss (ce5089e)

BREAKING CHANGES

  • workbench-client/popup: The method closeWithError has been removed from the WorkbenchPopup handle. Instead, pass an Error object to the close method.

Before migration:

import {Beans} from '@scion/toolkit/bean-manager';
import {WorkbenchPopup} from '@scion/workbench-client';

Beans.get(WorkbenchPopup).closeWithError('some error');

After migration:

import {Beans} from '@scion/toolkit/bean-manager';
import {WorkbenchPopup} from '@scion/workbench-client';

Beans.get(WorkbenchPopup).close(new Error('some error'));

18.0.0-beta.5 (@scion/workbench)

02 Sep 09:39
Compare
Choose a tag to compare

18.0.0-beta.5 (2024-09-02)

Bug Fixes

  • workbench/perspective: support browser back navigation after switching perspective (5777728), closes #579

BREAKING CHANGES

  • workbench/perspective: The active perspective is now set after navigation completes (previously before navigation), so it is unavailable during route resolution/activation. Route guards (like canMatch) should use the canMatchWorkbenchPerspective function instead of WorkbenchService or WorkbenchPerspective to determine the perspective’s activation state.

    Migration Example:

    Before:

    import {Route} from '@angular/router';
    import {inject} from '@angular/core';
    import {WorkbenchService} from '@scion/workbench';
    
    const route: Route = {
      canMatch: [() => inject(WorkbenchService).activePerspective()?.id === 'perspective'],
      // or
      canMatch: [() => inject(WorkbenchService).perspectives().find(perspective => perspective.id === 'perspective')?.active()],
    };

    After:

    import {Route} from '@angular/router';
    import {canMatchWorkbenchPerspective} from '@scion/workbench';
    
    const route: Route = {
      canMatch: [canMatchWorkbenchPerspective('perspective')],
    };