UNPKG

@netgrif/components-core

Version:

Netgrif Application engine frontend core Angular library

115 lines (114 loc) 3.93 kB
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 {};