@alauda-fe/common
Version:
Alauda frontend team common codes.
29 lines (28 loc) • 1.42 kB
TypeScript
import { InjectionToken } from '@angular/core';
import { ActivatedRouteSnapshot, CanActivate, CanActivateChild, RouterStateSnapshot } from '@angular/router';
import { Observable } from 'rxjs';
import { FeatureGateService } from '../services/feature-gate.service';
import { SilentlyNavigateService } from '../services/silently-navigate.service';
import * as i0 from "@angular/core";
export type GetCurrentCluster = (route: ActivatedRouteSnapshot) => string;
export declare const DEFAULT_FEATURE_FORBIDDEN_URL = "feature-forbidden";
export declare const GET_CURRENT_CLUSTER: InjectionToken<GetCurrentCluster>;
/**
* ```ts
* data: {
* path: 'home',
* canActivate: [ FeatureGuard ],
* data: { featureName: 'ace3', guard_url: 'xxx' }
* }
* ```
*/
export declare class FeatureGuard implements CanActivate, CanActivateChild {
private readonly featureGate;
private readonly silentlyNavigate;
private readonly getCluster;
constructor(featureGate: FeatureGateService, silentlyNavigate: SilentlyNavigateService, getCluster: GetCurrentCluster);
canActivateChild(childRoute: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean>;
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean>;
static ɵfac: i0.ɵɵFactoryDeclaration<FeatureGuard, [null, null, { optional: true; }]>;
static ɵprov: i0.ɵɵInjectableDeclaration<FeatureGuard>;
}