ichec-angular-core 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  import * as rxjs from 'rxjs';
2
2
  import { Observable, BehaviorSubject } from 'rxjs';
3
3
  import { HttpClient, HttpErrorResponse } from '@angular/common/http';
4
- import * as i0 from '@angular/core';
5
- import { InjectionToken, OnInit, WritableSignal } from '@angular/core';
4
+ import * as _angular_core from '@angular/core';
5
+ import { InjectionToken, OnInit, WritableSignal, AfterViewInit, TemplateRef } from '@angular/core';
6
6
  import * as ichec_angular_core from 'ichec-angular-core';
7
7
  import { MatSidenavContent } from '@angular/material/sidenav';
8
8
  import { ActivatedRoute } from '@angular/router';
@@ -10,6 +10,10 @@ import { Location } from '@angular/common';
10
10
  import * as _angular_forms from '@angular/forms';
11
11
  import { FormControl, FormGroup } from '@angular/forms';
12
12
  import { MatTable } from '@angular/material/table';
13
+ import { MatSort } from '@angular/material/sort';
14
+ import { MatPaginator } from '@angular/material/paginator';
15
+ import { DataSource, CollectionViewer, ListRange } from '@angular/cdk/collections';
16
+ import { MatButtonToggleChange } from '@angular/material/button-toggle';
13
17
 
14
18
  interface Identifiable {
15
19
  id: number;
@@ -62,6 +66,7 @@ declare class PortalMember implements IPortalMember {
62
66
  profile_url: string;
63
67
  all_permissions: never[];
64
68
  constructor(params?: Partial<IPortalMember>);
69
+ static getInitials(member: IPortalMember): string;
65
70
  }
66
71
  interface IGroup extends Identifiable {
67
72
  name: string;
@@ -75,6 +80,60 @@ declare class Group implements IGroup {
75
80
  constructor(params?: Partial<IGroup>);
76
81
  }
77
82
 
83
+ interface ICountry {
84
+ name: string;
85
+ code: string;
86
+ flag: string;
87
+ }
88
+ interface IAddress extends Identifiable {
89
+ line1: string;
90
+ line2: string | null;
91
+ line3: string | null;
92
+ city: string | null;
93
+ region: string;
94
+ postcode: string | null;
95
+ country: string;
96
+ country_name: string;
97
+ country_flag: string;
98
+ }
99
+ declare class Address implements IAddress {
100
+ static typename: string;
101
+ static plural: string;
102
+ id: number;
103
+ url: string;
104
+ line1: string;
105
+ line2: null;
106
+ line3: null;
107
+ city: null;
108
+ region: string;
109
+ postcode: null;
110
+ country: string;
111
+ country_name: string;
112
+ country_flag: string;
113
+ constructor(params?: Partial<IAddress>);
114
+ }
115
+ interface IOrganization extends Identifiable {
116
+ name: string;
117
+ acronym: string;
118
+ description: string;
119
+ address: string;
120
+ website: string;
121
+ members: string[];
122
+ }
123
+ declare class Organization implements IOrganization {
124
+ static typename: string;
125
+ static plural: string;
126
+ id: number;
127
+ url: string;
128
+ name: string;
129
+ acronym: string;
130
+ description: string;
131
+ address: string;
132
+ website: string;
133
+ members: string[];
134
+ constructor(params?: Partial<IOrganization>);
135
+ }
136
+
78
137
  interface IItemQuery {
79
138
  queries: Map<string, string>;
80
139
  page: number;
@@ -154,11 +213,13 @@ declare class RestService<T extends Identifiable> {
154
213
  }
155
214
 
156
215
  declare class ItemService<T extends Identifiable> extends RestService<T> {
157
- itemType: string;
216
+ typenamePlural: string;
217
+ typename: string;
158
218
  canEdit(): boolean;
159
219
  canCreate(): boolean;
160
220
  canDelete(): boolean;
161
221
  canView(): boolean;
222
+ typePlural(): string;
162
223
  instantiateType(_: T): T;
163
224
  getItem(id: number): Observable<T>;
164
225
  }
@@ -175,7 +236,7 @@ declare class UserService extends ItemService<IPortalMember> {
175
236
  */
176
237
  loggedInUser: BehaviorSubject<IPortalMember | null>;
177
238
  readonly _url: string;
178
- itemType: string;
239
+ typename: string;
179
240
  private permissions;
180
241
  instantiateType(item: IPortalMember): IPortalMember;
181
242
  login(username: string, password: string): Observable<void>;
@@ -188,58 +249,47 @@ declare class UserService extends ItemService<IPortalMember> {
188
249
  private onLoggedIn;
189
250
  private parsePermission;
190
251
  private processPermissions;
191
- static ɵfac: i0.ɵɵFactoryDeclaration<UserService, never>;
192
- static ɵprov: i0.ɵɵInjectableDeclaration<UserService>;
252
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<UserService, never>;
253
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<UserService>;
193
254
  }
194
255
 
195
- declare class GroupService extends ItemService<IGroup> {
196
- userService: UserService;
197
- userItems: BehaviorSubject<IGroup[]>;
198
- readonly _url: string;
199
- itemType: string;
200
- constructor();
201
- private refreshUserItems;
202
- instantiateType(item: IGroup): IGroup;
203
- static ɵfac: i0.ɵɵFactoryDeclaration<GroupService, never>;
204
- static ɵprov: i0.ɵɵInjectableDeclaration<GroupService>;
256
+ declare class ItemWithUserService<T extends Identifiable> extends ItemService<T> {
257
+ protected userService: UserService;
258
+ userItems: BehaviorSubject<T[]>;
259
+ canCreate(): boolean;
260
+ canView(): boolean;
261
+ canEdit(): boolean;
262
+ canDelete(): boolean;
263
+ private permissionName;
264
+ getUserItems(): Observable<IPaginated<T>>;
265
+ protected refreshUserItems(user: IPortalMember | null): void;
266
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ItemWithUserService<any>, never>;
267
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<ItemWithUserService<any>>;
205
268
  }
206
269
 
207
- interface ICountry {
208
- name: string;
209
- code: string;
210
- flag: string;
211
- }
212
- interface IAddress extends Identifiable {
213
- line1: string;
214
- line2: string;
215
- line3: string;
216
- city: string;
217
- region: string;
218
- postcode: string;
219
- country: string;
220
- country_name: string;
221
- country_flag: string;
270
+ declare class AddressService extends ItemWithUserService<IAddress> {
271
+ readonly _url: string;
272
+ typename: string;
273
+ instantiateType(item: IAddress): IAddress;
274
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AddressService, never>;
275
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<AddressService>;
222
276
  }
223
- interface IOrganization extends Identifiable {
224
- name: string;
225
- acronym: string;
226
- description: string;
227
- address: string;
228
- website: string;
229
- members: string[];
277
+
278
+ declare class GroupService extends ItemWithUserService<IGroup> {
279
+ readonly _url: string;
280
+ typename: string;
281
+ constructor();
282
+ instantiateType(item: IGroup): IGroup;
283
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<GroupService, never>;
284
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<GroupService>;
230
285
  }
231
286
 
232
- declare class OrganizationService extends ItemService<IOrganization> {
287
+ declare class OrganizationService extends ItemWithUserService<IOrganization> {
233
288
  readonly _url: string;
234
- itemType: string;
235
- private userService;
289
+ typename: string;
236
290
  instantiateType(item: IOrganization): IOrganization;
237
- canCreate(): boolean;
238
- canView(): boolean;
239
- canEdit(): boolean;
240
- canDelete(): boolean;
241
- static ɵfac: i0.ɵɵFactoryDeclaration<OrganizationService, never>;
242
- static ɵprov: i0.ɵɵInjectableDeclaration<OrganizationService>;
291
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<OrganizationService, never>;
292
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<OrganizationService>;
243
293
  }
244
294
 
245
295
  interface NavOption {
@@ -260,27 +310,35 @@ declare class LeftNavService {
260
310
  addNavGroup(group: NavGroup): void;
261
311
  setDefaultOptions(options: NavOption[]): void;
262
312
  setGroups(groups: NavGroup[]): void;
263
- static ɵfac: i0.ɵɵFactoryDeclaration<LeftNavService, never>;
264
- static ɵprov: i0.ɵɵInjectableDeclaration<LeftNavService>;
313
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<LeftNavService, never>;
314
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<LeftNavService>;
315
+ }
316
+
317
+ declare class MockItemService {
318
+ canEdit(): boolean;
319
+ canDelete(): boolean;
320
+ canCreate(): boolean;
321
+ typePlural(): string;
265
322
  }
266
323
 
267
324
  declare class TopBarComponent implements OnInit {
268
- readonly title: i0.InputSignal<string | undefined>;
269
- protected user: WritableSignal<IPortalMember | null>;
325
+ readonly title: _angular_core.InputSignal<string | undefined>;
326
+ protected user: _angular_core.WritableSignal<IPortalMember | null>;
270
327
  private userService;
271
328
  private leftNavService;
272
329
  ngOnInit(): void;
273
330
  onLogout(): void;
274
- static ɵfac: i0.ɵɵFactoryDeclaration<TopBarComponent, never>;
275
- static ɵcmp: i0.ɵɵComponentDeclaration<TopBarComponent, "lib-top-bar", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
331
+ getInitials(): string;
332
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TopBarComponent, never>;
333
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TopBarComponent, "lib-top-bar", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
276
334
  }
277
335
 
278
336
  declare class LeftNavComponent {
279
337
  private _leftNavService;
280
- sideNavContent: i0.Signal<MatSidenavContent | undefined>;
338
+ sideNavContent: _angular_core.Signal<MatSidenavContent | undefined>;
281
339
  getOptions(): Set<ichec_angular_core.NavOption>;
282
- static ɵfac: i0.ɵɵFactoryDeclaration<LeftNavComponent, never>;
283
- static ɵcmp: i0.ɵɵComponentDeclaration<LeftNavComponent, "lib-left-nav", never, {}, {}, never, never, true, never>;
340
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<LeftNavComponent, never>;
341
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<LeftNavComponent, "lib-left-nav", never, {}, {}, never, never, true, never>;
284
342
  }
285
343
 
286
344
  interface LoginUser {
@@ -292,15 +350,26 @@ declare const LOGIN_USER: InjectionToken<LoginUser>;
292
350
  declare class LandingComponent implements OnInit {
293
351
  loginUser: LoginUser;
294
352
  loginError: WritableSignal<string>;
295
- message: i0.InputSignal<string | undefined>;
353
+ message: _angular_core.InputSignal<string | undefined>;
296
354
  private userService;
297
355
  private router;
298
356
  ngOnInit(): void;
299
357
  login(): rxjs.Subscription;
300
358
  onLoginError(error: HttpErrorResponse): void;
301
359
  onLoggedIn(): void;
302
- static ɵfac: i0.ɵɵFactoryDeclaration<LandingComponent, never>;
303
- static ɵcmp: i0.ɵɵComponentDeclaration<LandingComponent, "lib-landing", never, { "message": { "alias": "message"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
360
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<LandingComponent, never>;
361
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<LandingComponent, "lib-landing", never, { "message": { "alias": "message"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
362
+ }
363
+
364
+ declare class FeedbackComponent {
365
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<FeedbackComponent, never>;
366
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<FeedbackComponent, "lib-feedback", never, {}, {}, never, never, true, never>;
367
+ }
368
+
369
+ declare class AvatarComponent {
370
+ text: _angular_core.InputSignal<string>;
371
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AvatarComponent, never>;
372
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AvatarComponent, "lib-avatar", never, { "text": { "alias": "text"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
304
373
  }
305
374
 
306
375
  declare abstract class DetailView<T extends Identifiable> {
@@ -310,6 +379,7 @@ declare abstract class DetailView<T extends Identifiable> {
310
379
  protected itemService: ItemService<T>;
311
380
  constructor(itemService: ItemService<T>);
312
381
  onInit(): void;
382
+ title(): string;
313
383
  onItemAvailable(item: T): void;
314
384
  onItemAndUserAvailable(_item: T, _user: IPortalMember): void;
315
385
  private getItem;
@@ -319,15 +389,14 @@ declare abstract class DetailView<T extends Identifiable> {
319
389
  }
320
390
 
321
391
  declare abstract class EditView<T extends Identifiable> {
322
- readonly typename: string;
323
392
  createMode: WritableSignal<boolean>;
324
- heading: i0.Signal<string>;
393
+ heading: _angular_core.Signal<string>;
325
394
  protected item: WritableSignal<T | null>;
326
395
  protected _route: ActivatedRoute;
327
396
  protected _location: Location;
328
397
  protected _userService: UserService;
329
- protected _restService: RestService<T>;
330
- constructor(_restService: RestService<T>);
398
+ protected itemService: ItemService<T>;
399
+ constructor(itemService: ItemService<T>);
331
400
  onInit(): void;
332
401
  onItemAvailable(): void;
333
402
  onItemAndUserAvailable(_: IPortalMember): void;
@@ -335,6 +404,7 @@ declare abstract class EditView<T extends Identifiable> {
335
404
  submit(): void;
336
405
  save(): void;
337
406
  cancel(): void;
407
+ getTitle(): string;
338
408
  protected fetchRestOptions(): void;
339
409
  protected onUploadedFileReady(_file: File): void;
340
410
  protected onFileRead(_content: string | ArrayBuffer): void;
@@ -349,20 +419,27 @@ declare abstract class EditView<T extends Identifiable> {
349
419
  protected onPostActions(_actions: Record<string, OptionAction>): void;
350
420
  }
351
421
 
352
- declare class ListView<T extends Identifiable> {
353
- protected count: i0.WritableSignal<number>;
354
- protected items: i0.WritableSignal<T[]>;
355
- protected next_url: string | null;
356
- protected _route: ActivatedRoute;
357
- protected _location: Location;
358
- protected _userService: UserService;
359
- protected _itemService: ItemService<T>;
360
- constructor(_itemService: ItemService<T>);
361
- getItems(query?: IItemQuery): void;
362
- protected onItems(paginated: IPaginated<T>): void;
363
- private onUserAvailable;
364
- protected isSelfList(): boolean;
365
- goBack(): void;
422
+ declare class ListDataSource<T extends Identifiable> extends DataSource<T> {
423
+ length: _angular_core.WritableSignal<number>;
424
+ loading: _angular_core.WritableSignal<boolean>;
425
+ searchTerm: _angular_core.WritableSignal<string>;
426
+ pageSize: _angular_core.WritableSignal<number>;
427
+ hasFetched: _angular_core.WritableSignal<boolean>;
428
+ sourceIsEmpty: _angular_core.Signal<boolean>;
429
+ private consumerType;
430
+ private items;
431
+ itemService: ItemService<T>;
432
+ private subscription;
433
+ private fetchedPages;
434
+ constructor(itemService: ItemService<T>, consumerType?: string);
435
+ connect(collectionViewer: CollectionViewer): Observable<T[]>;
436
+ hasTableConsumer(): boolean;
437
+ onRange(range: ListRange): void;
438
+ reset(searchTerm?: string, pageSize?: number): void;
439
+ fetchPage(idx: number): void;
440
+ fetch(query: IItemQuery): void;
441
+ onResponse(response: IPaginated<T>): void;
442
+ disconnect(): void;
366
443
  }
367
444
 
368
445
  interface TableColumn {
@@ -370,47 +447,108 @@ interface TableColumn {
370
447
  title: string;
371
448
  element_type: string;
372
449
  }
450
+ declare class ListTableViewComponent implements AfterViewInit {
451
+ itemType: _angular_core.InputSignal<string>;
452
+ columns: _angular_core.InputSignal<TableColumn[]>;
453
+ dataSource: _angular_core.InputSignal<ListDataSource<any> | undefined>;
454
+ searchFilter: _angular_core.InputSignal<string>;
455
+ pageSizeOptions: number[];
456
+ initialPageSize: number;
457
+ columnNames: _angular_core.Signal<string[]>;
458
+ sort: _angular_core.Signal<MatSort | undefined>;
459
+ paginator: _angular_core.Signal<MatPaginator | undefined>;
460
+ ngAfterViewInit(): void;
461
+ reset(): void;
462
+ fetch(): void;
463
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ListTableViewComponent, never>;
464
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ListTableViewComponent, "lib-list-table-view", never, { "itemType": { "alias": "itemType"; "required": false; "isSignal": true; }; "columns": { "alias": "columns"; "required": false; "isSignal": true; }; "dataSource": { "alias": "dataSource"; "required": false; "isSignal": true; }; "searchFilter": { "alias": "searchFilter"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
465
+ }
373
466
 
374
467
  interface Selectable<T extends Identifiable> {
375
468
  title: string;
376
469
  item: T;
377
470
  }
378
471
  declare class SelectTableComponent<T extends Identifiable> implements OnInit {
379
- itemType: i0.InputSignal<string>;
380
- selected: i0.InputSignal<T[]>;
381
- options: i0.InputSignal<Selectable<T>[]>;
382
- columns: i0.InputSignal<TableColumn[]>;
383
- itemAdded: i0.OutputEmitterRef<string>;
384
- itemRemoved: i0.OutputEmitterRef<number>;
385
- searchChanged: i0.OutputEmitterRef<string | null>;
386
- columnNames: i0.Signal<string[]>;
472
+ itemType: _angular_core.InputSignal<string>;
473
+ selected: _angular_core.InputSignal<T[]>;
474
+ options: _angular_core.InputSignal<Selectable<T>[]>;
475
+ columns: _angular_core.InputSignal<TableColumn[]>;
476
+ itemAdded: _angular_core.OutputEmitterRef<string>;
477
+ itemRemoved: _angular_core.OutputEmitterRef<number>;
478
+ searchChanged: _angular_core.OutputEmitterRef<string | null>;
479
+ columnNames: _angular_core.Signal<string[]>;
387
480
  searchControl: FormControl<string | null>;
388
- table: i0.Signal<MatTable<any> | undefined>;
481
+ table: _angular_core.Signal<MatTable<any> | undefined>;
389
482
  ngOnInit(): void;
390
483
  remove(id: number): void;
391
484
  add(): void;
392
- static ɵfac: i0.ɵɵFactoryDeclaration<SelectTableComponent<any>, never>;
393
- static ɵcmp: i0.ɵɵComponentDeclaration<SelectTableComponent<any>, "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; }; }, { "itemAdded": "itemAdded"; "itemRemoved": "itemRemoved"; "searchChanged": "searchChanged"; }, never, never, true, never>;
485
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SelectTableComponent<any>, never>;
486
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SelectTableComponent<any>, "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; }; }, { "itemAdded": "itemAdded"; "itemRemoved": "itemRemoved"; "searchChanged": "searchChanged"; }, never, never, true, never>;
487
+ }
488
+
489
+ declare class ListViewComponent<T extends Identifiable> implements OnInit, AfterViewInit {
490
+ viewType: _angular_core.InputSignal<string>;
491
+ itemService: _angular_core.InputSignal<ItemService<T> | undefined>;
492
+ itemDetailTemplate: _angular_core.InputSignal<TemplateRef<unknown> | null>;
493
+ columns: _angular_core.InputSignal<TableColumn[]>;
494
+ sortFields: _angular_core.InputSignal<string[]>;
495
+ noSelfItemsMessage: _angular_core.InputSignal<string | undefined>;
496
+ noItemsCanCreateMessage: _angular_core.InputSignal<string | undefined>;
497
+ noItemsMessage: _angular_core.InputSignal<string | undefined>;
498
+ selectedViewType: _angular_core.WritableSignal<string>;
499
+ pageSize: number;
500
+ pageSizeOptions: number[];
501
+ protected route: ActivatedRoute;
502
+ dataSource: ListDataSource<T> | undefined;
503
+ sort: _angular_core.Signal<MatSort | undefined>;
504
+ columnNames: _angular_core.Signal<string[]>;
505
+ searchTerm: string;
506
+ ngOnInit(): void;
507
+ ngAfterViewInit(): void;
508
+ onSearchChange(value: string): void;
509
+ canCreate(): boolean;
510
+ itemType(): string;
511
+ title(): string;
512
+ isTableView(): boolean;
513
+ resetDataSource(): void;
514
+ reset(): void;
515
+ viewChanged(event: MatButtonToggleChange): void;
516
+ protected isSelfList(): boolean;
517
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ListViewComponent<any>, never>;
518
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ListViewComponent<any>, "lib-list-view", never, { "viewType": { "alias": "viewType"; "required": false; "isSignal": true; }; "itemService": { "alias": "itemService"; "required": false; "isSignal": true; }; "itemDetailTemplate": { "alias": "itemDetailTemplate"; "required": false; "isSignal": true; }; "columns": { "alias": "columns"; "required": false; "isSignal": true; }; "sortFields": { "alias": "sortFields"; "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; }; }, {}, never, never, true, never>;
394
519
  }
395
520
 
396
521
  declare class BackButtonComponent {
397
522
  protected location: Location;
398
523
  protected goBack(): void;
399
- static ɵfac: i0.ɵɵFactoryDeclaration<BackButtonComponent, never>;
400
- static ɵcmp: i0.ɵɵComponentDeclaration<BackButtonComponent, "lib-back-button", never, {}, {}, never, never, true, never>;
524
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<BackButtonComponent, never>;
525
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<BackButtonComponent, "lib-back-button", never, {}, {}, never, never, true, never>;
401
526
  }
402
527
 
403
528
  declare class DetailHeaderComponent {
404
- id: i0.InputSignal<number>;
405
- text: i0.InputSignal<string>;
406
- route: i0.InputSignal<string>;
407
- canEdit: i0.InputSignal<boolean>;
408
- canDelete: i0.InputSignal<boolean>;
409
- deleteClicked: i0.OutputEmitterRef<void>;
410
- fullRoute: i0.Signal<string>;
529
+ id: _angular_core.InputSignal<number>;
530
+ text: _angular_core.InputSignal<string>;
531
+ route: _angular_core.InputSignal<string>;
532
+ canEdit: _angular_core.InputSignal<boolean>;
533
+ canDelete: _angular_core.InputSignal<boolean>;
534
+ deleteClicked: _angular_core.OutputEmitterRef<void>;
535
+ fullRoute: _angular_core.Signal<string>;
411
536
  deleteClick(): void;
412
- static ɵfac: i0.ɵɵFactoryDeclaration<DetailHeaderComponent, never>;
413
- static ɵcmp: i0.ɵɵComponentDeclaration<DetailHeaderComponent, "lib-detail-header", never, { "id": { "alias": "id"; "required": false; "isSignal": true; }; "text": { "alias": "text"; "required": false; "isSignal": true; }; "route": { "alias": "route"; "required": false; "isSignal": true; }; "canEdit": { "alias": "canEdit"; "required": false; "isSignal": true; }; "canDelete": { "alias": "canDelete"; "required": false; "isSignal": true; }; }, { "deleteClicked": "deleteClicked"; }, never, never, true, never>;
537
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DetailHeaderComponent, never>;
538
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DetailHeaderComponent, "lib-detail-header", never, { "id": { "alias": "id"; "required": false; "isSignal": true; }; "text": { "alias": "text"; "required": false; "isSignal": true; }; "route": { "alias": "route"; "required": false; "isSignal": true; }; "canEdit": { "alias": "canEdit"; "required": false; "isSignal": true; }; "canDelete": { "alias": "canDelete"; "required": false; "isSignal": true; }; }, { "deleteClicked": "deleteClicked"; }, never, never, true, never>;
539
+ }
540
+
541
+ declare class SearchBarComponent implements AfterViewInit {
542
+ itemType: _angular_core.InputSignal<string>;
543
+ sortFields: _angular_core.InputSignal<string[]>;
544
+ sortAscending: _angular_core.WritableSignal<boolean>;
545
+ searchChanged: _angular_core.OutputEmitterRef<string>;
546
+ searchFilter: FormControl<any>;
547
+ ngAfterViewInit(): void;
548
+ clearSearch(): void;
549
+ searchEntered(): void;
550
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SearchBarComponent, never>;
551
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SearchBarComponent, "lib-search-bar", never, { "itemType": { "alias": "itemType"; "required": false; "isSignal": true; }; "sortFields": { "alias": "sortFields"; "required": false; "isSignal": true; }; }, { "searchChanged": "searchChanged"; }, never, never, true, never>;
414
552
  }
415
553
 
416
554
  interface IFileRecord {
@@ -440,27 +578,27 @@ interface IFileUpload {
440
578
  file: File;
441
579
  }
442
580
  declare class FileUploadComponent {
443
- files: i0.InputSignal<IFileRecord[]>;
444
- previewLoaded: i0.OutputEmitterRef<IPreview>;
445
- fileUploaded: i0.OutputEmitterRef<IFileUpload>;
581
+ files: _angular_core.InputSignal<IFileRecord[]>;
582
+ previewLoaded: _angular_core.OutputEmitterRef<IPreview>;
583
+ fileUploaded: _angular_core.OutputEmitterRef<IFileUpload>;
584
+ clearLocal: _angular_core.OutputEmitterRef<void>;
446
585
  protected onPreviewRead(name: string, content: string | ArrayBuffer): void;
447
586
  protected onFileUpload(name: string, event: Event): void;
448
587
  protected readFile(name: string, file: File): void;
449
- static ɵfac: i0.ɵɵFactoryDeclaration<FileUploadComponent, never>;
450
- static ɵcmp: i0.ɵɵComponentDeclaration<FileUploadComponent, "lib-file-upload", never, { "files": { "alias": "files"; "required": false; "isSignal": true; }; }, { "previewLoaded": "previewLoaded"; "fileUploaded": "fileUploaded"; }, never, never, true, never>;
588
+ protected onClearLocal(): void;
589
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<FileUploadComponent, never>;
590
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<FileUploadComponent, "lib-file-upload", never, { "files": { "alias": "files"; "required": false; "isSignal": true; }; }, { "previewLoaded": "previewLoaded"; "fileUploaded": "fileUploaded"; "clearLocal": "clearLocal"; }, never, never, true, never>;
451
591
  }
452
592
 
453
593
  declare class UserDetailComponent extends DetailView<IPortalMember> implements OnInit {
454
- protected typename: string;
455
594
  constructor();
456
595
  ngOnInit(): void;
457
- static ɵfac: i0.ɵɵFactoryDeclaration<UserDetailComponent, never>;
458
- static ɵcmp: i0.ɵɵComponentDeclaration<UserDetailComponent, "lib-user-detail", never, {}, {}, never, never, true, never>;
596
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<UserDetailComponent, never>;
597
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<UserDetailComponent, "lib-user-detail", never, {}, {}, never, never, true, never>;
459
598
  }
460
599
 
461
600
  declare class UserEditComponent extends EditView<IPortalMember> implements OnInit {
462
- readonly typename: string;
463
- files: WritableSignal<IFileRecord[]>;
601
+ files: _angular_core.WritableSignal<FileRecord[]>;
464
602
  private formBuilder;
465
603
  form: _angular_forms.FormGroup<{
466
604
  username: _angular_forms.FormControl<string | null>;
@@ -478,57 +616,43 @@ declare class UserEditComponent extends EditView<IPortalMember> implements OnIni
478
616
  onPreviewLoaded(preview: IPreview): void;
479
617
  onFileUploaded(upload: IFileUpload): void;
480
618
  protected saveFiles(item: IPortalMember): void;
481
- static ɵfac: i0.ɵɵFactoryDeclaration<UserEditComponent, never>;
482
- static ɵcmp: i0.ɵɵComponentDeclaration<UserEditComponent, "lib-user-edit", never, {}, {}, never, never, true, never>;
619
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<UserEditComponent, never>;
620
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<UserEditComponent, "lib-user-edit", never, {}, {}, never, never, true, never>;
483
621
  }
484
622
 
485
623
  declare class UserComponent {
486
- viewType: i0.WritableSignal<string>;
624
+ viewType: _angular_core.WritableSignal<string>;
487
625
  itemService: UserService;
488
- columns: TableColumn[];
489
- static ɵfac: i0.ɵɵFactoryDeclaration<UserComponent, never>;
490
- static ɵcmp: i0.ɵɵComponentDeclaration<UserComponent, "lib-user", never, {}, {}, never, never, true, never>;
626
+ columns: ichec_angular_core.TableColumn[];
627
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<UserComponent, never>;
628
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<UserComponent, "lib-user", never, {}, {}, never, never, true, never>;
491
629
  }
492
630
 
493
631
  declare class GroupDetailComponent extends DetailView<IGroup> implements OnInit {
494
- protected typename: string;
495
632
  constructor();
496
633
  ngOnInit(): void;
497
- static ɵfac: i0.ɵɵFactoryDeclaration<GroupDetailComponent, never>;
498
- static ɵcmp: i0.ɵɵComponentDeclaration<GroupDetailComponent, "lib-group-detail", never, {}, {}, never, never, true, never>;
634
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<GroupDetailComponent, never>;
635
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<GroupDetailComponent, "lib-group-detail", never, {}, {}, never, never, true, never>;
499
636
  }
500
637
 
501
638
  declare class GroupComponent {
502
639
  itemService: GroupService;
503
640
  columns: TableColumn[];
504
- static ɵfac: i0.ɵɵFactoryDeclaration<GroupComponent, never>;
505
- static ɵcmp: i0.ɵɵComponentDeclaration<GroupComponent, "lib-group", never, {}, {}, never, never, true, never>;
641
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<GroupComponent, never>;
642
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<GroupComponent, "lib-group", never, {}, {}, never, never, true, never>;
506
643
  }
507
644
 
508
- declare class OrganizationComponent {
509
- itemService: OrganizationService;
510
- columns: TableColumn[];
511
- static ɵfac: i0.ɵɵFactoryDeclaration<OrganizationComponent, never>;
512
- static ɵcmp: i0.ɵɵComponentDeclaration<OrganizationComponent, "lib-organization", never, {}, {}, never, never, true, never>;
513
- }
514
-
515
- declare class OrganizationDetailComponent extends DetailView<IOrganization> implements OnInit {
516
- typename: string;
517
- address: i0.WritableSignal<IAddress | null>;
518
- private addressService;
519
- constructor();
520
- ngOnInit(): void;
521
- onItemAndUserAvailable(item: IOrganization, _user: IPortalMember): void;
522
- static ɵfac: i0.ɵɵFactoryDeclaration<OrganizationDetailComponent, never>;
523
- static ɵcmp: i0.ɵɵComponentDeclaration<OrganizationDetailComponent, "lib-organization-detail", never, {}, {}, never, never, true, never>;
645
+ declare class AddressEditComponent {
646
+ countryOptions: _angular_core.InputSignal<ICountry[]>;
647
+ form: _angular_core.InputSignal<FormGroup<any> | undefined>;
648
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AddressEditComponent, never>;
649
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AddressEditComponent, "lib-address-edit", never, { "countryOptions": { "alias": "countryOptions"; "required": false; "isSignal": true; }; "form": { "alias": "form"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
524
650
  }
525
651
 
526
- declare class AddressService extends ItemService<IAddress> {
527
- readonly _url: string;
528
- itemType: string;
529
- instantiateType(item: IAddress): IAddress;
530
- static ɵfac: i0.ɵɵFactoryDeclaration<AddressService, never>;
531
- static ɵprov: i0.ɵɵInjectableDeclaration<AddressService>;
652
+ declare class AddressDetailComponent {
653
+ address: _angular_core.InputSignal<IAddress | undefined>;
654
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AddressDetailComponent, never>;
655
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AddressDetailComponent, "lib-address-detail", never, { "address": { "alias": "address"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
532
656
  }
533
657
 
534
658
  declare class AddressForm {
@@ -546,6 +670,35 @@ declare class AddressForm {
546
670
  updateItem(item: IAddress): IAddress;
547
671
  }
548
672
 
673
+ declare class OrganizationComponent {
674
+ itemService: OrganizationService;
675
+ columns: TableColumn[];
676
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<OrganizationComponent, never>;
677
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<OrganizationComponent, "lib-organization", never, {}, {}, never, never, true, never>;
678
+ }
679
+
680
+ declare class OrganizationDetailComponent extends DetailView<IOrganization> implements OnInit {
681
+ address: _angular_core.WritableSignal<IAddress | null>;
682
+ private addressService;
683
+ constructor();
684
+ ngOnInit(): void;
685
+ onItemAndUserAvailable(item: IOrganization, _user: IPortalMember): void;
686
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<OrganizationDetailComponent, never>;
687
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<OrganizationDetailComponent, "lib-organization-detail", never, {}, {}, never, never, true, never>;
688
+ }
689
+
690
+ declare class SelectionManager {
691
+ candidates: _angular_core.WritableSignal<Selectable<IPortalMember>[]>;
692
+ selected: _angular_core.WritableSignal<IPortalMember[]>;
693
+ columns: ichec_angular_core.TableColumn[];
694
+ userService: UserService;
695
+ fetchCandidates(item: string, id: number): void;
696
+ protected updateCandidates(users: IPaginated<IPortalMember>): void;
697
+ onRemoved(id: number): string;
698
+ onAdded(title: string): string;
699
+ onSearchChanged(searchTerm: string | null): void;
700
+ }
701
+
549
702
  declare class OrganizationForm {
550
703
  private formBuilder;
551
704
  form: FormGroup;
@@ -556,18 +709,14 @@ declare class OrganizationForm {
556
709
  }
557
710
 
558
711
  declare class OrganizationEditComponent extends EditView<IOrganization> implements OnInit {
559
- readonly typename: string;
560
- countryOptions: i0.WritableSignal<ICountry[]>;
561
- candidateMembers: i0.WritableSignal<Selectable<IPortalMember>[]>;
562
- selectedMembers: i0.WritableSignal<IPortalMember[]>;
563
- columns: TableColumn[];
712
+ countryOptions: _angular_core.WritableSignal<ICountry[]>;
713
+ selectionManager: SelectionManager;
564
714
  form: OrganizationForm;
565
715
  address: IAddress;
566
716
  addressService: AddressService;
567
717
  constructor();
568
718
  ngOnInit(): void;
569
719
  onItemAndUserAvailable(_: IPortalMember): void;
570
- protected updateCandidates(users: IPaginated<IPortalMember>): void;
571
720
  submit(): void;
572
721
  protected fetchAddress(url: string): void;
573
722
  protected updateAddress(): void;
@@ -578,12 +727,13 @@ declare class OrganizationEditComponent extends EditView<IOrganization> implemen
578
727
  protected getTemplateItem(): IOrganization;
579
728
  protected onPostActions(actions: Record<string, OptionAction>): void;
580
729
  protected onCountryChoices(choices: OptionActionChoice[]): void;
730
+ addMember(url: string): void;
731
+ removeMember(url: string): void;
581
732
  onMemberRemoved(id: number): void;
582
733
  onMemberAdded(title: string): void;
583
- onSearchChanged(searchTerm: string | null): void;
584
- static ɵfac: i0.ɵɵFactoryDeclaration<OrganizationEditComponent, never>;
585
- static ɵcmp: i0.ɵɵComponentDeclaration<OrganizationEditComponent, "lib-organization-edit", never, {}, {}, never, never, true, never>;
734
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<OrganizationEditComponent, never>;
735
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<OrganizationEditComponent, "lib-organization-edit", never, {}, {}, never, never, true, never>;
586
736
  }
587
737
 
588
- export { ApiError, BackButtonComponent, DetailHeaderComponent, DetailView, ENDPOINT_URL, EditView, ErrorCode, FileRecord, FileUploadComponent, Group, GroupComponent, GroupDetailComponent, GroupService, ItemQuery, LOGIN_USER, LandingComponent, LeftNavComponent, LeftNavService, ListView, OrganizationComponent, OrganizationDetailComponent, OrganizationEditComponent, OrganizationService, Paginated, Permission, PortalMember, ResolvedPermission, RestService, SelectTableComponent, TopBarComponent, UserComponent, UserDetailComponent, UserEditComponent, UserService };
589
- export type { IFileRecord, IFileUpload, IGroup, IItemQuery, IPaginated, IPermission, IPortalMember, IPreview, IRestOptions, Identifiable, LeftNavCategory, LeftNavOption, NavGroup, NavOption, OptionAction, OptionActionChoice, Selectable };
738
+ export { Address, AddressDetailComponent, AddressEditComponent, AddressForm, AddressService, ApiError, AvatarComponent, BackButtonComponent, DetailHeaderComponent, DetailView, ENDPOINT_URL, EditView, ErrorCode, FeedbackComponent, FileRecord, FileUploadComponent, Group, GroupComponent, GroupDetailComponent, GroupService, ItemQuery, ItemService, ItemWithUserService, LOGIN_USER, LandingComponent, LeftNavComponent, LeftNavService, ListTableViewComponent, ListViewComponent, MockItemService, Organization, OrganizationComponent, OrganizationDetailComponent, OrganizationEditComponent, OrganizationService, Paginated, Permission, PortalMember, ResolvedPermission, RestService, SearchBarComponent, SelectTableComponent, TopBarComponent, UserComponent, UserDetailComponent, UserEditComponent, UserService };
739
+ export type { IAddress, ICountry, IFileRecord, IFileUpload, IGroup, IItemQuery, IOrganization, IPaginated, IPermission, IPortalMember, IPreview, IRestOptions, Identifiable, LeftNavCategory, LeftNavOption, NavGroup, NavOption, OptionAction, OptionActionChoice, Selectable, TableColumn };