@controladad/ng-base
Version:
Everything you need for Angular
54 lines (53 loc) • 2.1 kB
TypeScript
import { Observable } from 'rxjs';
import { Router } from '@angular/router';
import { BaseStore } from './_base.store';
import { StateStorage } from '@ngneat/elf-persist-state';
import { AppBaseStore } from './app-base.store';
import * as i0 from "@angular/core";
export interface AuthBaseStoreProps<USER> {
token?: string;
user?: USER;
}
export interface AuthBaseStoreLoginModel {
username: string;
password: string;
rememberMe?: boolean;
}
export declare const AuthStorageEngine: StateStorage;
export declare class _AuthBaseStore<T extends AuthBaseStoreProps<any>, L extends AuthBaseStoreLoginModel> extends BaseStore<T> {
opts: {
loginApi: (model: L) => Observable<T>;
meApi: () => Observable<T['user']>;
};
protected router: Router;
protected app: AppBaseStore;
private readonly snackbar;
constructor(opts?: {
loginApi: (model: L) => Observable<T>;
meApi: () => Observable<T['user']>;
});
isAuthenticatedSignal: import("@angular/core").Signal<boolean>;
isLoggedInSignal: import("@angular/core").Signal<boolean>;
permissionKeysSignal: import("@angular/core").Signal<string[]>;
isAuthenticated$: Observable<boolean>;
isLoggedIn$: Observable<boolean>;
permissionKeys$: Observable<string[]>;
isAuthenticated(state?: T): boolean;
isLoggedIn(state?: T): boolean;
isSuper(): boolean;
permissionKeys(state?: T): string[];
login(model: L): Observable<T>;
logout(optionalNavigate?: boolean): Promise<boolean>;
/**
*
* @param intervalPeriod ms - if provided, it will call the refresh within that interval repeatedly
*/
refresh(intervalPeriod?: number): Observable<boolean>;
protected checkLoginValidity(result: T): Observable<T>;
protected isForbiddenToEnter(state: T): boolean;
}
export declare class AuthBaseStore extends _AuthBaseStore<AuthBaseStoreProps<any>, AuthBaseStoreLoginModel> {
constructor();
static ɵfac: i0.ɵɵFactoryDeclaration<AuthBaseStore, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<AuthBaseStore>;
}