import { CanDeactivate } from '@angular/router' import { Injectable } from '@angular/core' import { Observable } from 'rxjs' export interface ComponentCanDeactivate { canDeactivate: () => boolean | Observable } @Injectable() export class DirtyDocGuard implements CanDeactivate { canDeactivate( component: ComponentCanDeactivate ): boolean | Observable { return component.canDeactivate() ? true : confirm( $localize`Warning: You have unsaved changes to your document(s).` ) } }