@netgrif/components-core
Version:
Netgrif Application engine frontend core Angular library
115 lines (114 loc) • 3.93 kB
TypeScript
import { OnDestroy } from '@angular/core';
import { Observable } from 'rxjs';
import { UserResourceService } from '../../resources/engine-endpoint/user-resource.service';
import { LoggerService } from '../../logger/services/logger.service';
import { SnackBarService } from '../../snack-bar/services/snack-bar.service';
import { TranslateService } from '@ngx-translate/core';
import { MessageResource } from '../../resources/interface/message-resource';
import { UserResource } from '../../resources/interface/user-resource';
import * as i0 from "@angular/core";
export interface UserListItem extends UserResource {
selected: boolean;
roles: Set<string>;
toggle(): void;
}
export interface RolesObject {
[k: string]: RoleObject;
}
interface RoleObject {
perform?: boolean;
delegate?: boolean;
view?: boolean;
}
/**
* Performs paged loading users from backend for [UserAssignComponent]{@link AbstractUserAssignComponent}.
*/
export declare class UserListService implements OnDestroy {
private _resources;
private _log;
private _snackbar;
private _translate;
/**
* UserValue array stream, that represents users loading from backend.
*/
private readonly _users$;
/**
* Emit users loading status from backend.
*/
private _loading$;
/**
* Number stream of next page users list, that to be requested from backend.
*/
private _nextPage$;
/**
* Signals the end of loaded users.
*/
private _endOfData;
/**
* Necessary for pagination parameters in user assign loading from backend.
*/
private _pagination;
/**
* Signals if response is empty or no.
*/
private _clear;
/**
* The search content that should be applied to the request
*/
private _searchQuery;
/**
* Roles that should be applied to the request
*/
rolesQuery: Array<string>;
/**
* negative Roles that should be applied to the request
*/
negativeRolesQuery: Array<string>;
private _updateProgress$;
private _usersReload$;
/**
* Inject services.
* Initialize declared attributes.
*
* Loading and mapped stream of users.
* @param _resources Loading users from backend.
* @param _log Logging action status.
* @param _snackbar Display info about loading from backend for user.
* @param _translate Translate messages for user.
*/
constructor(_resources: UserResourceService, _log: LoggerService, _snackbar: SnackBarService, _translate: TranslateService);
ngOnDestroy(): void;
get loading(): boolean;
get loading$(): Observable<boolean>;
get usersReload$(): Observable<void>;
get users$(): Observable<Array<UserListItem>>;
get updating$(): Observable<boolean>;
get totalUsers(): number;
/**
* Get all users from backend and mapped to [UserValue]{@link UserValue} interface with catching errors.
* @param page Page number that is requested. / Next page users list.
*/
loadPage(page: number): Observable<{
[k: string]: UserListItem;
}>;
/**
* Set value to nextPage stream as next page users list.
* @param lastRendered Last rendered user index.
* @param totalRendered Total loaded size users.
*/
nextPage(lastRendered: number, totalRendered: number): void;
/**
* Reload page with users.
*/
reload(newSearchQuery?: string): void;
updateRoles(selectedUsers: Array<UserListItem>, selectedRoles?: Array<string>): Observable<Array<MessageResource>>;
/**
* Returns HttpParams with page params addition.
* @param params Existing HttpParams.
* @param page Page number that is requested. / Next page users list.
*/
private addPageParams;
static ɵfac: i0.ɵɵFactoryDeclaration<UserListService, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<UserListService>;
}
export {};