import * as _angular_forms from '@angular/forms'; import { FormGroup, FormControl, FormBuilder, FormArray, AbstractControl } from '@angular/forms'; import * as ichec_angular_core from 'ichec-angular-core'; import { BehaviorSubject, Observable } from 'rxjs'; import { HttpClient, HttpParams, HttpHeaders, HttpErrorResponse } from '@angular/common/http'; import * as _angular_core from '@angular/core'; import { InjectionToken, OnInit, TemplateRef, AfterViewInit } from '@angular/core'; import { CookieService } from 'ngx-cookie-service'; import { Location } from '@angular/common'; import { ActivatedRoute, UrlSerializer } from '@angular/router'; import { MatDialog } from '@angular/material/dialog'; import { MatSnackBar } from '@angular/material/snack-bar'; import { MatTable } from '@angular/material/table'; import { MatSort } from '@angular/material/sort'; import { MatButtonToggleChange } from '@angular/material/button-toggle'; import { DataSource, CollectionViewer, ListRange } from '@angular/cdk/collections'; import { MatPaginator } from '@angular/material/paginator'; import { MatSidenavContent } from '@angular/material/sidenav'; interface Identifiable { id: number; url: string; } interface IPaginated { count: number; next: string | null; previous: string | null; results: T[]; } declare class Paginated implements IPaginated { count: number; next: null; previous: null; results: T[]; } interface IPermission extends Identifiable { codename: string; } declare class Permission { static typename: string; static plural: string; } interface IForm { form: FormGroup; setValue(item: D): void; createItem(): C; updateItem(item: D): U; } interface IMemberIdentifierBase { id_type: string; value: string; } type IMemberIdentifierCreate = IMemberIdentifierBase; interface IMemberIdentifierDetail extends IMemberIdentifierBase { id: number; } interface IPreferences { notifications: string; } interface IFeedbackCreate { comments: string; } interface IFeedbackDetail extends Identifiable { comments: string; } declare class Feedback { static typename: string; static plural: string; } interface IPortalMemberBase { username: string; email: string; first_name: string; last_name: string; phone: string; preferences: IPreferences | null; } interface IPortalMemberCreate extends IPortalMemberBase { identifiers: IMemberIdentifierCreate[]; } interface IPortalMemberList extends IPortalMemberBase, Identifiable { organization: string; profile: string | null; profile_thumbnail: string | null; permissions: string[]; identifiers: IMemberIdentifierDetail[]; verified: boolean; } interface IMemberInvitation { user_first_name: string; user_last_name: string; user_email: string; invite_type: string; resource_id: number | null; action_url: string; } type IPortalMemberDetail = IPortalMemberList; declare class PortalMember { static typename: string; static plural: string; static getInitials(member: IPortalMemberDetail): string; } interface IGroupBase { name: string; user_set: string[]; } type IGroupCreate = IGroupBase; interface IGroupList extends IGroupBase, Identifiable { } type IGroupDetail = IGroupList; declare class Group { static typename: string; static plural: string; } interface ICountry { name: string; code: string; flag: string; } interface IAddressBase { line1: string; line2: string | null; line3: string | null; city: string | null; region: string; postcode: string | null; country: string; } type IAddressCreate = IAddressBase; interface IAddressList extends IAddressBase, Identifiable { country_name: string; country_flag: string; } type IAddressDetail = IAddressList; declare class Address { static typename: string; static plural: string; } interface IOrganizationBase { name: string; acronym: string; description: string; website: string; members: string[]; public: boolean; } interface IOrganizationCreate extends IOrganizationBase { address: IAddressCreate; } interface IOrganizationList extends IOrganizationBase, Identifiable { address: string; } interface IOrganizationDetail extends IOrganizationBase, Identifiable { address: IAddressDetail; } declare class Organization { static typename: string; static plural: string; } interface IItemQuery { queries: Map; page: number; page_size: number; sort_field: string; sort_order: string; filter: string; } declare class ItemQuery { queries: Map; page: number; page_size: number; sort_field: string; sort_order: string; filter: string; constructor(params?: Partial); } declare enum ErrorCode { UnknownError = 1 } declare class ApiError { code: ErrorCode; text: string; } interface OptionActionChoice { value: string; display_name: string; } interface OptionAction { label: string; type: string; required: boolean; read_only: boolean; max_length?: number; choices?: OptionActionChoice[]; children: OptionAction[]; } interface IRestOptions { name: string; description: string; renders: string[]; parses: string[]; actions?: Record>; } interface IFileRecord { name: string; display_name: string; file_type: string; file: File | null; remote: string; local: string | ArrayBuffer; } declare class FileRecord { name: string; display_name: string; file_type: string; file: File | null; remote: string; local: string | ArrayBuffer; constructor(params?: Partial); } interface TypeChoice { value: string; display_name: string; } declare enum FieldType { Boolean = 0, Char = 1, Text = 2, RichText = 3, Selection = 4, Integer = 5, File = 6, Undefined = 7 } declare const FORM_FIELD_CHOICES: TypeChoice[]; declare function getFieldTypeFromKey(key: string): FieldType; interface IFormFieldBase { label: string; key: string; required: boolean; order: number; field_type: string; description: string; tooltip: string; default: string; options: string | null; } type IFormFieldCreate = IFormFieldBase; interface IFormFieldDetail extends IFormFieldBase { id: number; template: string | null; } interface IFormGroupBase { label: string | null; description: string | null; order: number; } interface IFormGroupCreate extends IFormGroupBase { fields: IFormFieldCreate[]; } interface IFormGroupDetail extends IFormGroupBase { id: number; fields: IFormFieldDetail[]; } interface IFormGroupUpdate extends IFormGroupBase { id: number; fields: IFormFieldBase[]; } interface IFormCreate { groups: IFormGroupCreate[]; } interface IFormDetail { id: number; groups: IFormGroupDetail[]; } interface IFormUpdate { id: number; groups: IFormGroupBase[]; } interface IFileField { id: number; file: IFileRecord; } declare function getFileFieldIds(form: IFormDetail): number[]; interface IFormFieldValueBase { value: string; asset: string | null; } interface IFormFieldValueCreate extends IFormFieldValueBase { field: number; } interface IFormFieldValueUpdate extends IFormFieldValueBase { id: number; field: number; } interface IFormFieldValueDetail extends IFormFieldValueBase { id: number; field: IFormFieldDetail; } interface IPopulatedFormCreate { values: IFormFieldValueCreate[]; } interface IPopulatedFormDetail { id: number; values: IFormFieldValueDetail[]; } interface IPopulatedFormUpdate { id: number; values: IFormFieldValueUpdate[]; } interface IFilterChoice { display_name: string; value: string; } interface ISortField { display_name: string; value: string; } interface IFilter { display_name: string; key: string; type: string; tooltip: string; choices: IFilterChoice[]; default: string | null; include_if_null: boolean; } interface IFilterRow { filters: IFilter[]; } interface IFilters { rows: IFilterRow[]; } interface IQuery { key: string; value: string; } interface ISearchFields { filter: IFilters; sortFields: ISortField[]; defaultQueries: IQuery[]; pageSize: number; pageSizeOptions: number[]; } declare class SearchFields { filter: { rows: never[]; }; sortFields: never[]; defaultQueries: never[]; pageSize: number; pageSizeOptions: number[]; constructor(params?: Partial); } declare function getFilter(filters: IFilters, key: string): IFilter | null; interface LeftNavOption { name: string; route: string; } interface LeftNavCategory { name: string; options: LeftNavOption[]; } interface RestServiceConfig { endpoint_url: string; self_url: string; auth_type: string; } interface IRequestBase { headers: HttpHeaders; credentials: RequestCredentials; params: HttpParams; } interface IServerManifest { login_url: string; logout_url: string; docs_url: string; supports_cors: boolean; } declare const REST_SERVICE_CONFIG: InjectionToken; declare class RestService { manifest: BehaviorSubject; loggedInUser: BehaviorSubject; loginFailed: BehaviorSubject; readonly _url: string; readonly userQuery = "user"; config: RestServiceConfig; protected document: Document; protected _http: HttpClient; protected cookieService: CookieService; deleteItem(id: number): Observable; getForUser(user: IPortalMemberDetail, query?: IItemQuery): Observable>; protected _getServiceManifest(): Observable; get(query?: IItemQuery): Observable>; getItem(id: number): Observable; getUrl(url: string): Observable; getPaginatedUrl(url: string): Observable>; getOptions(): Observable; putItem(item: U, content_type?: string): Observable; patchItemMedia(id: number, form: FormData): Observable; postFile(id: number, field: string, file: File): Observable; putFile(id: number, field: string, file: File): Observable; putFileStandalone(url: string, file: File): Observable; patchItem(item: U, include_keys: string[], exclude_keys: string[]): Observable; postItem(item: C): Observable; private getHeaders; protected get baseUrl(): string; private get mediaUrl(); protected getRequestBase(content_type?: string, params?: HttpParams, file?: string, xhr?: boolean): IRequestBase; handleError(error: HttpErrorResponse): Observable; } declare class ItemService extends RestService { typenamePlural: string; typename: string; canEdit(): boolean; canCreate(): boolean; canDelete(): boolean; canView(): boolean; typePlural(): string; get typeTitleCase(): string; } declare class ResolvedPermission { canEdit: boolean; canAdd: boolean; canView: boolean; canDelete: boolean; } interface ILogoutManifest { url: string; } declare class UserService extends ItemService { /** Service to handle IPortalMember via REST and also handle logins. */ readonly _url: string; typename: string; private permissions; login(next?: string): void; logout(next?: string): void; _logout_redirect(manifest: ILogoutManifest): void; getSelf(): Observable; canCreate(): boolean; inviteMember(invite: IMemberInvitation): Observable; private _getSelf; private _selfFetchFailed; private _do_login; hasAddPermission(feature: string): boolean; hasDeletePermission(feature: string): boolean; hasEditPermission(feature: string): boolean; hasViewPermission(feature: string): boolean; private onSelf; private parsePermission; private processPermissions; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵprov: _angular_core.ɵɵInjectableDeclaration; } declare class ItemWithUserService extends ItemService { protected userService: UserService; userItems: BehaviorSubject; constructor(); canCreate(): boolean; canView(): boolean; canEdit(): boolean; canDelete(): boolean; private permissionName; getUserItems(): Observable>; protected refreshUserItems(user: IPortalMemberDetail | null): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration, never>; static ɵprov: _angular_core.ɵɵInjectableDeclaration>; } interface IFieldFile { id: number; asset: IFileRecord; } declare class FormService { static getBaseTemplate(): IFileRecord; toFormGroup(form: IFormDetail): FormGroup; createFieldValue(key: string, control: FormControl, input: IFormDetail): IFormFieldValueCreate; createItem(form: FormGroup, input: IFormDetail): IPopulatedFormCreate; getValueId(field_id: number, populated: IPopulatedFormDetail): number; getFiles(form: FormGroup, input: IFormDetail, populated: IPopulatedFormDetail): IFieldFile[]; hasRequiredFiles(form: FormGroup, input: IFormDetail): boolean; updateFieldValue(control: FormControl, item: IFormFieldValueDetail): IFormFieldValueUpdate; getType(key: string, input: IFormDetail): string; isRequired(key: string, input: IFormDetail): boolean; getValue(key: string, item: IPopulatedFormDetail): IFormFieldValueDetail | null; updateItem(form: FormGroup, item: IPopulatedFormDetail): IPopulatedFormUpdate; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵprov: _angular_core.ɵɵInjectableDeclaration; } interface NavOption { name: string; route: string; icon: string; } interface NavGrouping { name: string; options: NavOption[]; } interface NavGroup { name: string; groupings: NavGrouping[]; } declare class LeftNavService { activeGroupings: _angular_core.WritableSignal>; wide: _angular_core.WritableSignal; private _defaultGroupings; private _groups; private _groupService; constructor(); onGroupsUpdated(groups: IGroupList[]): void; setDefaultGroupings(groupings: NavGrouping[]): void; setGroups(groups: NavGroup[]): void; toggle(): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵprov: _angular_core.ɵɵInjectableDeclaration; } declare class GroupService extends ItemWithUserService { readonly _url: string; typename: string; constructor(); static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵprov: _angular_core.ɵɵInjectableDeclaration; } declare class OrganizationService extends ItemWithUserService { readonly _url: string; typename: string; countryOptions: _angular_core.WritableSignal; refreshCountryOptions(): void; protected onOptions(options: IRestOptions): void; protected onAddressOption(option: OptionAction): void; protected onPostActions(actions: Record): void; protected onCountryChoices(choices: OptionActionChoice[]): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵprov: _angular_core.ɵɵInjectableDeclaration; } declare class MockItemService { canEdit(): boolean; canDelete(): boolean; canCreate(): boolean; typePlural(): string; } declare abstract class DetailView { protected item: _angular_core.WritableSignal; protected route: ActivatedRoute; protected userService: UserService; protected itemService: ItemService; protected location: Location; protected urlSerializer: UrlSerializer; readonly deleteDialog: MatDialog; protected requiresLogin: boolean; constructor(itemService: ItemService); onInit(embedded?: boolean, requiresLogin?: boolean): void; onLoginFailed(): void; onSelection(id: number | null): void; title(): string; onItemAvailable(item: D): void; onItemAndUserAvailable(_item: D, _user: IPortalMemberDetail): void; onDeleteClicked(): void; onDelete(): void; goBack(): void; protected canEdit(): boolean; protected canDelete(): boolean; private _getItem; } declare class FeedbackService extends ItemWithUserService { readonly _url: string; typename: string; sendError(e: HttpErrorResponse): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵprov: _angular_core.ɵɵInjectableDeclaration; } declare abstract class EditView { createMode: _angular_core.WritableSignal; heading: _angular_core.Signal; submitting: _angular_core.WritableSignal; errorType: _angular_core.WritableSignal; protected item: _angular_core.WritableSignal; protected fileKeys: string[]; protected _route: ActivatedRoute; protected _location: Location; protected _userService: UserService; protected feedbackService: FeedbackService; protected form: IForm; protected itemService: ItemService; protected snackBar: MatSnackBar; private uploadedFiles; constructor(itemService: ItemService, form: IForm); onInit(): void; onItemAvailable(item: D): void; onItemAndUserAvailable(_item: D, _user: IPortalMemberDetail): void; goBack(): void; submit(): void; save(): void; cancel(): void; getTitle(): string; protected fetchRestOptions(): void; protected onUploadedFileReady(_file: File): void; protected onFileRead(_content: string | ArrayBuffer): void; protected createItem(): C; protected updateItem(item: D): U; protected postItem(): void; protected onPostError(e: HttpErrorResponse): void; protected onPostErrorSnackBar(_e: HttpErrorResponse): void; protected putItem(item: D): void; protected onPutError(e: HttpErrorResponse): void; protected onPutErrorSnackBar(_e: HttpErrorResponse): void; protected saveFiles(item: D): void; saveFile(item: D, record: IFileRecord): void; getNextFileForUpload(): IFileRecord | null; onPutFileError(e: HttpErrorResponse): void; onPutFileErrorSnackbar(_e: HttpErrorResponse): void; private isCreateRoute; private getItem; protected onItemUpdated(item: D): void; protected postItemUpdated(): void; protected onOptions(options: IRestOptions): void; protected onPostActions(_actions: Record): void; } interface TableColumn { name: string; title: string; element_type: string; } interface Selectable { title: string; item: T; } declare class SelectTableComponent implements OnInit { itemType: _angular_core.InputSignal; selected: _angular_core.InputSignal; options: _angular_core.InputSignal[]>; columns: _angular_core.InputSignal; itemAdded: _angular_core.OutputEmitterRef; itemRemoved: _angular_core.OutputEmitterRef; searchChanged: _angular_core.OutputEmitterRef; itemTemplate: _angular_core.InputSignal | null | undefined>; columnNames: _angular_core.Signal; searchControl: FormControl; table: _angular_core.Signal | undefined>; ngOnInit(): void; remove(id: number): void; add(): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration, never>; static ɵcmp: _angular_core.ɵɵComponentDeclaration, "lib-select-table", never, { "itemType": { "alias": "itemType"; "required": false; "isSignal": true; }; "selected": { "alias": "selected"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "columns": { "alias": "columns"; "required": false; "isSignal": true; }; "itemTemplate": { "alias": "itemTemplate"; "required": false; "isSignal": true; }; }, { "itemAdded": "itemAdded"; "itemRemoved": "itemRemoved"; "searchChanged": "searchChanged"; }, never, never, true, never>; } declare abstract class SelectionManager { candidates: _angular_core.WritableSignal[]>; dirty: _angular_core.WritableSignal; selected: _angular_core.WritableSignal; columns: TableColumn[]; itemService: ItemService; constructor(itemService: ItemService); fetchCandidates(item: string, id: number): void; protected updateCandidates(items: IPaginated): void; abstract toSelectable(item: L): Selectable; onRemoved(id: number): string; onAdded(title: string): string; abstract hasTitle(item: L, title: string): boolean; onSearchChanged(searchTerm: string | null): void; } declare class MemberSelectionManager extends SelectionManager { columns: TableColumn[]; constructor(); toSelectable(item: IPortalMemberDetail): Selectable; hasTitle(item: IPortalMemberDetail, title: string): boolean; } declare class BackButtonComponent { protected location: Location; protected goBack(): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class DetailHeaderComponent { id: _angular_core.InputSignal; text: _angular_core.InputSignal; route: _angular_core.InputSignal; canEdit: _angular_core.InputSignal; canDelete: _angular_core.InputSignal; deleteClicked: _angular_core.OutputEmitterRef; fullRoute: _angular_core.Signal; deleteClick(): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } interface ISearchForm { sortAscending: FormControl; sortField: FormControl; search: FormControl; pageSize: FormControl; filters: FormGroup; } declare class SearchForm { form: FormGroup; searchFields: ISearchFields; constructor(searchFields: ISearchFields, fb: FormBuilder); get filterControls(): { [key: string]: _angular_forms.AbstractControl; }; resetFilters(): void; toQuery(): IItemQuery; } declare class SearchBarComponent { itemType: _angular_core.InputSignal; showFilters: _angular_core.WritableSignal; form: _angular_core.InputSignal; get searchControl(): FormControl; get sortControl(): FormControl; clearFilters(): void; toggleFilterVisibility(): void; clearSearch(): void; toggleSortOrder(): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class FileUploadComponent { control: _angular_core.InputSignal>; uploadCategory: _angular_core.InputSignal; allowedSizeMb: _angular_core.InputSignal; showHeading: _angular_core.InputSignal; error: _angular_core.WritableSignal; get accepts(): string; get acceptTitle(): string; get maxSize(): string; protected onFileUpload(event: Event): void; isImage(): boolean; protected onFileUploaded(file: File): void; protected onPreviewLoaded(preview: string | ArrayBuffer): void; protected onClearLocal(): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } interface IOption { key: string; value: string; } interface IFormFieldForm { label: FormControl; key: FormControl; required: FormControl; description: FormControl; tooltip: FormControl; template: FormControl; options: FormControl; default: FormControl; field_type: FormControl; order: FormControl; id: FormControl; } declare class FormFieldDetailComponent { readonly field: _angular_core.InputSignal; form: _angular_core.InputSignal>; resolveOptions(options: string | null): IOption[]; get key(): string; get control(): FormControl; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class FormFieldEditComponent { availableTypes: ichec_angular_core.TypeChoice[]; readonly FieldType: typeof FieldType; readonly deleteDialog: MatDialog; protected table: _angular_core.Signal | undefined>; protected keyControl: FormControl; protected valueControl: FormControl; form: _angular_core.InputSignal>; canOrderUp: _angular_core.InputSignal; canOrderDown: _angular_core.InputSignal; orderUp: _angular_core.OutputEmitterRef; orderDown: _angular_core.OutputEmitterRef; deleted: _angular_core.OutputEmitterRef; get templateControl(): FormControl; get optionsControl(): FormControl; get fieldType(): FieldType; onOrderUp(): void; onOrderDown(): void; onDelete(): void; onDeleteClicked(): void; addChoice(): void; removeOption(value: string): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } interface IFormGroupForm { label: FormControl; description: FormControl; order: FormControl; id: FormControl; fields: FormArray>; } interface IDynamicFormForm { groups: FormArray>; } declare class DynamicFormForm { fb: FormBuilder; form: FormGroup; constructor(); get groups(): FormArray>; groupSize(id: number): number; getFileFields(form: IFormDetail): IFileField[]; orderUp(id: number): void; orderDown(id: number): void; reorder(id: number, newIndex: number): void; fieldOrderUp(group_id: number, id: number): void; fieldOrderDown(group_id: number, id: number): void; reorderField(group_id: number, id: number, newIndex: number): void; createGroup(group: FormGroup): void; deleteGroup(id: number): void; deleteField(group_id: number, field_id: number): void; reset(): void; setValue(item: IFormDetail): void; createItem(): IFormCreate; createOrUpdateGroup(form: FormGroup, items: IFormGroupBase[]): IFormGroupCreate | IFormGroupUpdate; updateItem(item: IFormDetail): IFormCreate | IFormUpdate; } interface IFormFieldValueForm { value: FormControl; id: FormControl; field: FormControl; } declare class FormFieldValueForm { static createForm(fb: FormBuilder): FormGroup; static fromItem(item: IFormFieldValueDetail, builder: FormBuilder): FormGroup; static setValue(form: FormGroup, item: IFormFieldValueDetail): void; static createItem(form: FormGroup): IFormFieldValueCreate; static updateItem(form: FormGroup, item: IFormFieldValueDetail): IFormFieldValueDetail; } interface IPopulatedFormForm { values: FormArray>; } declare class PopulatedFormForm { fb: FormBuilder; form: FormGroup; constructor(); get values(): FormArray>; reset(): void; setValue(item: IPopulatedFormDetail): void; createItem(): IPopulatedFormCreate; updateValue(form: FormGroup, items: IFormFieldValueBase[]): IFormFieldValueDetail; updateItem(item: IPopulatedFormDetail): IPopulatedFormDetail; } declare class DynamicFormComponent { private readonly formService; readonly inputForm: _angular_core.InputSignal; readonly form: _angular_core.Signal>; payLoad: string; onSubmit(): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } interface IActiveGroup { index: number; group: FormGroup; } interface IActiveField { index: number; group_index: number; field: FormGroup; } declare class DynamicFormBuilderComponent { form: _angular_core.InputSignal; handleSubmit: _angular_core.InputSignal; submitted: _angular_core.OutputEmitterRef; dirty: _angular_core.WritableSignal; activeGroup: _angular_core.WritableSignal; activeField: _angular_core.WritableSignal; fb: FormBuilder; onGroupClick(index: number, group: FormGroup): void; onFieldClick(index: number, group_index: number, field: FormGroup): void; protected getFields(group: FormGroup): FormArray>; isGroupSelected(id: number): boolean; isFieldSelected(group_id: number, id: number): boolean; getGroupLabel(control: AbstractControl): string; getFieldLabel(control: AbstractControl): string; allowOrderUp(): boolean; allowOrderDown(): boolean; allowGroupOrderUp(): boolean; allowGroupOrderDown(): boolean; onOrderUp(id: number): void; onOrderDown(id: number): void; addGroup(): void; addField(group: FormGroup): void; deleteGroup(id: number): void; deleteField(): void; onFieldOrderUp(): void; onFieldOrderDown(): void; onGroupOrderUp(): void; onGroupOrderDown(): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class PopulatedFormComponent { form: _angular_core.InputSignal; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class ListDataSource extends DataSource { length: _angular_core.WritableSignal; loading: _angular_core.WritableSignal; activeQuery: _angular_core.WritableSignal; hasFetched: _angular_core.WritableSignal; sourceIsEmpty: _angular_core.Signal; private consumerType; items: BehaviorSubject; itemService: ItemService; private subscription; private fetchedPages; private defaultQueries; constructor(itemService: ItemService, consumerType?: string, defaultQueries?: IQuery[]); connect(collectionViewer: CollectionViewer): Observable; hasTableConsumer(): boolean; onRange(range: ListRange): void; reset(query: IItemQuery): void; fetchPage(idx: number): void; fetch(query: IItemQuery): void; onResponse(response: IPaginated): void; disconnect(): void; } declare class ListScrollViewComponent { itemHeight: _angular_core.InputSignal; itemWidth: _angular_core.InputSignal; dataSource: _angular_core.InputSignal | undefined>; listItemTemplate: _angular_core.InputSignal | null | undefined>; routerMode: _angular_core.InputSignal; selection: _angular_core.WritableSignal; selected: _angular_core.OutputEmitterRef; onSelected(id: number | null): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class ListViewComponent implements OnInit, AfterViewInit { viewType: _angular_core.InputSignal; itemService: _angular_core.InputSignal | undefined>; listItemTemplate: _angular_core.InputSignal | null>; itemDetailTemplate: _angular_core.InputSignal | null>; itemHeight: _angular_core.InputSignal; itemWidth: _angular_core.InputSignal; columns: _angular_core.InputSignal; canCreateForceOff: _angular_core.InputSignal; noSelfItemsMessage: _angular_core.InputSignal; noItemsCanCreateMessage: _angular_core.InputSignal; noItemsMessage: _angular_core.InputSignal; searchFields: _angular_core.InputSignal; embeddedMode: _angular_core.InputSignal; selectedViewType: _angular_core.WritableSignal; selected: _angular_core.OutputEmitterRef; protected route: ActivatedRoute; dataSource: ListDataSource | undefined; sort: _angular_core.Signal; columnNames: _angular_core.Signal; fb: FormBuilder; searchForm: _angular_core.WritableSignal; scrollView: _angular_core.Signal; get resolvedItemWidth(): string; ngOnInit(): void; ngAfterViewInit(): void; showControls(): boolean; canCreate(): boolean; itemType(): string; title(): string; isTableView(): boolean; resetDataSource(): void; onSearchItems(items: L[]): void; reset(): void; viewChanged(event: MatButtonToggleChange): void; onSelection(id: number | null): void; protected isSelfList(): boolean; static ɵfac: _angular_core.ɵɵFactoryDeclaration, never>; static ɵcmp: _angular_core.ɵɵComponentDeclaration, "lib-list-view", never, { "viewType": { "alias": "viewType"; "required": false; "isSignal": true; }; "itemService": { "alias": "itemService"; "required": false; "isSignal": true; }; "listItemTemplate": { "alias": "listItemTemplate"; "required": false; "isSignal": true; }; "itemDetailTemplate": { "alias": "itemDetailTemplate"; "required": false; "isSignal": true; }; "itemHeight": { "alias": "itemHeight"; "required": false; "isSignal": true; }; "itemWidth": { "alias": "itemWidth"; "required": false; "isSignal": true; }; "columns": { "alias": "columns"; "required": false; "isSignal": true; }; "canCreateForceOff": { "alias": "canCreateForceOff"; "required": false; "isSignal": true; }; "noSelfItemsMessage": { "alias": "noSelfItemsMessage"; "required": false; "isSignal": true; }; "noItemsCanCreateMessage": { "alias": "noItemsCanCreateMessage"; "required": false; "isSignal": true; }; "noItemsMessage": { "alias": "noItemsMessage"; "required": false; "isSignal": true; }; "searchFields": { "alias": "searchFields"; "required": true; "isSignal": true; }; "embeddedMode": { "alias": "embeddedMode"; "required": false; "isSignal": true; }; }, { "selected": "selected"; }, never, never, true, never>; } declare class ListTableViewComponent implements AfterViewInit { itemType: _angular_core.InputSignal; columns: _angular_core.InputSignal; dataSource: _angular_core.InputSignal | undefined>; searchFilter: _angular_core.InputSignal; pageSizeOptions: number[]; initialPageSize: number; columnNames: _angular_core.Signal; sort: _angular_core.Signal; paginator: _angular_core.Signal; ngAfterViewInit(): void; reset(): void; fetch(): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class TopBarComponent { readonly title: _angular_core.InputSignal; readonly logo: _angular_core.InputSignal; readonly background: _angular_core.InputSignal; readonly user: _angular_core.WritableSignal; readonly loginRoute: _angular_core.InputSignal; private userService; protected leftNavService: LeftNavService; constructor(); onLogout(): void; onLogin(): void; get initials(): string; get backgroundStyle(): string; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class LeftNavComponent { readonly background: _angular_core.InputSignal; user: _angular_core.WritableSignal; width: _angular_core.Signal<"200px" | "100px">; protected userService: UserService; protected leftNavService: LeftNavService; sideNavContent: _angular_core.Signal; constructor(); getGroupings(): _angular_core.WritableSignal>; get backgroundStyle(): string; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class FeedbackComponent extends EditView implements OnInit { helpLink: _angular_core.WritableSignal; constructor(); ngOnInit(): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class AvatarComponent { text: _angular_core.InputSignal; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class UserDetailComponent extends DetailView implements OnInit { showBack: _angular_core.InputSignal; constructor(); ngOnInit(): void; protected canEdit(): boolean; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class UserEditComponent extends EditView implements OnInit { protected fileKeys: string[]; constructor(); ngOnInit(): void; get profileControl(): FormControl; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } interface IUserCreateForm { user_email: FormControl; user_first_name: FormControl; user_last_name: FormControl; } declare class UserCreateForm { private type; private resource_id; private action_url; constructor(type?: string, resource_id?: number | null, action_url?: string); private fb; form: _angular_forms.FormGroup<{ user_email: FormControl; user_first_name: FormControl; user_last_name: FormControl; }>; createItem(): IMemberInvitation; } declare class UserCreateComponent { form: _angular_core.InputSignal; embedded: _angular_core.InputSignal; userService: UserService; submitted: _angular_core.OutputEmitterRef; protected _location: Location; submit(): void; goBack(): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class UserComponent { itemService: UserService; detailView: _angular_core.Signal; searchFields: ISearchFields; onSelected(id: number | null): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class GroupDetailComponent extends DetailView implements OnInit { showBack: _angular_core.InputSignal; constructor(); ngOnInit(): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class GroupEditComponent extends EditView implements OnInit { selectionManager: MemberSelectionManager; constructor(); ngOnInit(): void; get showSubmit(): boolean; createItem(): IGroupCreate; protected updateItem(item: IGroupDetail): IGroupDetail; onItemAndUserAvailable(item: IGroupDetail, _: IPortalMemberDetail): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class GroupComponent { itemService: GroupService; detailView: _angular_core.Signal; searchFields: ISearchFields; onSelected(id: number | null): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class AddressEditComponent { countryOptions: _angular_core.InputSignal; form: _angular_core.InputSignal | undefined>; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class AddressDetailComponent { address: _angular_core.InputSignal; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } interface IAddressForm { line1: FormControl; line2: FormControl; line3: FormControl; city: FormControl; region: FormControl; postcode: FormControl; country: FormControl; } declare class AddressForm { static createForm(fb: FormBuilder): FormGroup; static fromItem(item: IAddressDetail, fb: FormBuilder): FormGroup; static setValue(form: FormGroup, item: IAddressDetail): void; static createItem(form: FormGroup): IAddressCreate; static updateItem(form: FormGroup, item: IAddressDetail): IAddressDetail; } declare class OrganizationDetailComponent extends DetailView implements OnInit { showBack: _angular_core.InputSignal; constructor(); ngOnInit(): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class OrganizationComponent { embedded: _angular_core.InputSignal; itemService: OrganizationService; columns: TableColumn[]; searchFields: _angular_core.InputSignal; detailView: _angular_core.Signal; onSelected(id: number | null): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class OrganizationEditComponent extends EditView implements OnInit { selectionManager: MemberSelectionManager; constructor(); ngOnInit(): void; get organizationService(): OrganizationService; addressForm(): FormGroup; get showSubmit(): boolean; createItem(): IOrganizationCreate; protected updateItem(item: IOrganizationDetail): IOrganizationDetail; onItemAndUserAvailable(item: IOrganizationDetail, _: IPortalMemberDetail): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } export { Address, AddressDetailComponent, AddressEditComponent, AddressForm, ApiError, AvatarComponent, BackButtonComponent, DetailHeaderComponent, DetailView, DynamicFormBuilderComponent, DynamicFormComponent, DynamicFormForm, EditView, ErrorCode, FORM_FIELD_CHOICES, Feedback, FeedbackComponent, FieldType, FileRecord, FileUploadComponent, FormFieldDetailComponent, FormFieldEditComponent, FormFieldValueForm, FormService, Group, GroupComponent, GroupDetailComponent, GroupEditComponent, GroupService, ItemQuery, ItemService, ItemWithUserService, LeftNavComponent, LeftNavService, ListTableViewComponent, ListViewComponent, MemberSelectionManager, MockItemService, Organization, OrganizationComponent, OrganizationDetailComponent, OrganizationEditComponent, OrganizationService, Paginated, Permission, PopulatedFormComponent, PopulatedFormForm, PortalMember, REST_SERVICE_CONFIG, ResolvedPermission, RestService, SearchBarComponent, SearchFields, SelectTableComponent, SelectionManager, TopBarComponent, UserComponent, UserCreateComponent, UserCreateForm, UserDetailComponent, UserEditComponent, UserService, getFieldTypeFromKey, getFileFieldIds, getFilter }; export type { IAddressBase, IAddressCreate, IAddressDetail, IAddressForm, IAddressList, ICountry, IDynamicFormForm, IFeedbackCreate, IFeedbackDetail, IFieldFile, IFileField, IFileRecord, IFilter, IFilterChoice, IFilterRow, IFilters, IForm, IFormCreate, IFormDetail, IFormFieldBase, IFormFieldCreate, IFormFieldDetail, IFormFieldValueBase, IFormFieldValueCreate, IFormFieldValueDetail, IFormFieldValueForm, IFormFieldValueUpdate, IFormGroupBase, IFormGroupCreate, IFormGroupDetail, IFormGroupUpdate, IFormUpdate, IGroupBase, IGroupCreate, IGroupDetail, IGroupList, IItemQuery, IMemberIdentifierBase, IMemberIdentifierCreate, IMemberIdentifierDetail, IMemberInvitation, IOrganizationBase, IOrganizationCreate, IOrganizationDetail, IOrganizationList, IPaginated, IPermission, IPopulatedFormCreate, IPopulatedFormDetail, IPopulatedFormForm, IPopulatedFormUpdate, IPortalMemberBase, IPortalMemberCreate, IPortalMemberDetail, IPortalMemberList, IPreferences, IQuery, IRestOptions, ISearchFields, IServerManifest, ISortField, IUserCreateForm, Identifiable, LeftNavCategory, LeftNavOption, NavGroup, NavGrouping, NavOption, OptionAction, OptionActionChoice, RestServiceConfig, Selectable, TableColumn, TypeChoice };