@flusys/ng-shared 3.0.0 → 4.0.0-lts
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/README.md +435 -359
- package/fesm2022/flusys-ng-shared.mjs +1648 -614
- package/fesm2022/flusys-ng-shared.mjs.map +1 -1
- package/package.json +5 -3
- package/types/flusys-ng-shared.d.ts +286 -308
|
@@ -1,11 +1,12 @@
|
|
|
1
|
+
import * as rxjs from 'rxjs';
|
|
1
2
|
import { Observable } from 'rxjs';
|
|
2
3
|
import * as _angular_core from '@angular/core';
|
|
3
|
-
import { Signal, Injector, ResourceRef, model, ElementRef, DestroyRef, InjectionToken } from '@angular/core';
|
|
4
|
+
import { Signal, PipeTransform, Provider, Injector, ResourceRef, model, OnDestroy, ElementRef, TemplateRef, DestroyRef, InjectionToken } from '@angular/core';
|
|
5
|
+
import * as i3 from '@angular/router';
|
|
6
|
+
import { ResolveFn, CanActivateFn, Router, ActivatedRoute } from '@angular/router';
|
|
4
7
|
import * as i1 from '@angular/common';
|
|
5
8
|
import * as i2 from '@angular/forms';
|
|
6
9
|
import { ControlValueAccessor } from '@angular/forms';
|
|
7
|
-
import * as i3 from '@angular/router';
|
|
8
|
-
import { CanActivateFn, Router, ActivatedRoute } from '@angular/router';
|
|
9
10
|
import * as i1$1 from 'primeng/autocomplete';
|
|
10
11
|
import * as i2$1 from 'primeng/avatar';
|
|
11
12
|
import * as i3$1 from 'primeng/button';
|
|
@@ -41,25 +42,18 @@ import * as i31 from 'primeng/tabs';
|
|
|
41
42
|
import * as i32 from 'primeng/tag';
|
|
42
43
|
import * as i33 from 'primeng/textarea';
|
|
43
44
|
import * as i34 from 'primeng/toast';
|
|
44
|
-
import * as i35 from 'primeng/
|
|
45
|
-
import * as i36 from 'primeng/
|
|
46
|
-
import * as i37 from 'primeng/
|
|
45
|
+
import * as i35 from 'primeng/togglebutton';
|
|
46
|
+
import * as i36 from 'primeng/toggleswitch';
|
|
47
|
+
import * as i37 from 'primeng/tooltip';
|
|
48
|
+
import * as i38 from 'primeng/treetable';
|
|
49
|
+
import * as i39 from 'primeng/progressspinner';
|
|
50
|
+
import * as i40 from 'primeng/colorpicker';
|
|
47
51
|
import * as _flusys_ng_shared from '@flusys/ng-shared';
|
|
48
52
|
import { HttpClient, HttpParams, HttpHeaders } from '@angular/common/http';
|
|
49
53
|
import { FormValueControl } from '@angular/forms/signals';
|
|
50
|
-
import { MessageService, ConfirmationService } from 'primeng/api';
|
|
51
54
|
import * as _flusys_ng_core from '@flusys/ng-core';
|
|
55
|
+
import { MessageService, ConfirmationService } from 'primeng/api';
|
|
52
56
|
|
|
53
|
-
/**
|
|
54
|
-
* Centralized Permission Codes
|
|
55
|
-
*
|
|
56
|
-
* Single source of truth for all permission codes used across the application.
|
|
57
|
-
* Use these constants instead of hardcoded strings to prevent typos and enable easy refactoring.
|
|
58
|
-
*
|
|
59
|
-
* Naming Convention: <entity>.<action>
|
|
60
|
-
* - entity: The resource being accessed (e.g., user, role, company)
|
|
61
|
-
* - action: The operation being performed (create, read, update, delete, assign)
|
|
62
|
-
*/
|
|
63
57
|
declare const USER_PERMISSIONS: {
|
|
64
58
|
readonly CREATE: "user.create";
|
|
65
59
|
readonly READ: "user.read";
|
|
@@ -142,9 +136,42 @@ declare const FORM_PERMISSIONS: {
|
|
|
142
136
|
readonly UPDATE: "form.update";
|
|
143
137
|
readonly DELETE: "form.delete";
|
|
144
138
|
};
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
139
|
+
declare const EVENT_PERMISSIONS: {
|
|
140
|
+
readonly CREATE: "event.create";
|
|
141
|
+
readonly READ: "event.read";
|
|
142
|
+
readonly UPDATE: "event.update";
|
|
143
|
+
readonly DELETE: "event.delete";
|
|
144
|
+
};
|
|
145
|
+
declare const EVENT_PARTICIPANT_PERMISSIONS: {
|
|
146
|
+
readonly CREATE: "event-participant.create";
|
|
147
|
+
readonly READ: "event-participant.read";
|
|
148
|
+
readonly UPDATE: "event-participant.update";
|
|
149
|
+
readonly DELETE: "event-participant.delete";
|
|
150
|
+
};
|
|
151
|
+
declare const NOTIFICATION_PERMISSIONS: {
|
|
152
|
+
readonly CREATE: "notification.create";
|
|
153
|
+
readonly READ: "notification.read";
|
|
154
|
+
readonly UPDATE: "notification.update";
|
|
155
|
+
readonly DELETE: "notification.delete";
|
|
156
|
+
};
|
|
157
|
+
declare const LANGUAGE_PERMISSIONS: {
|
|
158
|
+
readonly CREATE: "language.create";
|
|
159
|
+
readonly READ: "language.read";
|
|
160
|
+
readonly UPDATE: "language.update";
|
|
161
|
+
readonly DELETE: "language.delete";
|
|
162
|
+
};
|
|
163
|
+
declare const TRANSLATION_KEY_PERMISSIONS: {
|
|
164
|
+
readonly CREATE: "translation-key.create";
|
|
165
|
+
readonly READ: "translation-key.read";
|
|
166
|
+
readonly UPDATE: "translation-key.update";
|
|
167
|
+
readonly DELETE: "translation-key.delete";
|
|
168
|
+
};
|
|
169
|
+
declare const TRANSLATION_PERMISSIONS: {
|
|
170
|
+
readonly CREATE: "translation.create";
|
|
171
|
+
readonly READ: "translation.read";
|
|
172
|
+
readonly UPDATE: "translation.update";
|
|
173
|
+
readonly DELETE: "translation.delete";
|
|
174
|
+
};
|
|
148
175
|
declare const PERMISSIONS: {
|
|
149
176
|
readonly USER: {
|
|
150
177
|
readonly CREATE: "user.create";
|
|
@@ -228,9 +255,47 @@ declare const PERMISSIONS: {
|
|
|
228
255
|
readonly UPDATE: "form.update";
|
|
229
256
|
readonly DELETE: "form.delete";
|
|
230
257
|
};
|
|
258
|
+
readonly EVENT: {
|
|
259
|
+
readonly CREATE: "event.create";
|
|
260
|
+
readonly READ: "event.read";
|
|
261
|
+
readonly UPDATE: "event.update";
|
|
262
|
+
readonly DELETE: "event.delete";
|
|
263
|
+
};
|
|
264
|
+
readonly EVENT_PARTICIPANT: {
|
|
265
|
+
readonly CREATE: "event-participant.create";
|
|
266
|
+
readonly READ: "event-participant.read";
|
|
267
|
+
readonly UPDATE: "event-participant.update";
|
|
268
|
+
readonly DELETE: "event-participant.delete";
|
|
269
|
+
};
|
|
270
|
+
readonly NOTIFICATION: {
|
|
271
|
+
readonly CREATE: "notification.create";
|
|
272
|
+
readonly READ: "notification.read";
|
|
273
|
+
readonly UPDATE: "notification.update";
|
|
274
|
+
readonly DELETE: "notification.delete";
|
|
275
|
+
};
|
|
276
|
+
readonly LANGUAGE: {
|
|
277
|
+
readonly CREATE: "language.create";
|
|
278
|
+
readonly READ: "language.read";
|
|
279
|
+
readonly UPDATE: "language.update";
|
|
280
|
+
readonly DELETE: "language.delete";
|
|
281
|
+
};
|
|
282
|
+
readonly TRANSLATION_KEY: {
|
|
283
|
+
readonly CREATE: "translation-key.create";
|
|
284
|
+
readonly READ: "translation-key.read";
|
|
285
|
+
readonly UPDATE: "translation-key.update";
|
|
286
|
+
readonly DELETE: "translation-key.delete";
|
|
287
|
+
};
|
|
288
|
+
readonly TRANSLATION: {
|
|
289
|
+
readonly CREATE: "translation.create";
|
|
290
|
+
readonly READ: "translation.read";
|
|
291
|
+
readonly UPDATE: "translation.update";
|
|
292
|
+
readonly DELETE: "translation.delete";
|
|
293
|
+
};
|
|
231
294
|
};
|
|
232
295
|
type PermissionCode = (typeof PERMISSIONS)[keyof typeof PERMISSIONS][keyof (typeof PERMISSIONS)[keyof typeof PERMISSIONS]];
|
|
233
296
|
|
|
297
|
+
declare const SHARED_MESSAGES: Record<string, string>;
|
|
298
|
+
|
|
234
299
|
/**
|
|
235
300
|
* Base entity interface - matches backend Identity entity
|
|
236
301
|
*/
|
|
@@ -329,12 +394,8 @@ interface IPagination {
|
|
|
329
394
|
pageSize: number;
|
|
330
395
|
currentPage: number;
|
|
331
396
|
}
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
}
|
|
335
|
-
interface IFilter {
|
|
336
|
-
[key: string]: string | number | boolean | null | undefined | string[] | number[];
|
|
337
|
-
}
|
|
397
|
+
type ISort = Record<string, 'ASC' | 'DESC'>;
|
|
398
|
+
type IFilter = Record<string, string | number | boolean | null | undefined | string[] | number[]>;
|
|
338
399
|
interface IFilterData {
|
|
339
400
|
filter?: IFilter;
|
|
340
401
|
pagination?: IPagination;
|
|
@@ -385,6 +446,8 @@ interface IValidationError {
|
|
|
385
446
|
interface ISingleResponse<T> {
|
|
386
447
|
success: boolean;
|
|
387
448
|
message: string;
|
|
449
|
+
messageKey?: string;
|
|
450
|
+
messageParams?: Record<string, unknown>;
|
|
388
451
|
data?: T;
|
|
389
452
|
_meta?: IRequestMeta;
|
|
390
453
|
}
|
|
@@ -394,6 +457,8 @@ interface ISingleResponse<T> {
|
|
|
394
457
|
interface IListResponse<T> {
|
|
395
458
|
success: boolean;
|
|
396
459
|
message: string;
|
|
460
|
+
messageKey?: string;
|
|
461
|
+
messageParams?: Record<string, unknown>;
|
|
397
462
|
data?: T[];
|
|
398
463
|
meta: IPaginationMeta;
|
|
399
464
|
_meta?: IRequestMeta;
|
|
@@ -404,6 +469,8 @@ interface IListResponse<T> {
|
|
|
404
469
|
interface IBulkResponse<T> {
|
|
405
470
|
success: boolean;
|
|
406
471
|
message: string;
|
|
472
|
+
messageKey?: string;
|
|
473
|
+
messageParams?: Record<string, unknown>;
|
|
407
474
|
data?: T[];
|
|
408
475
|
meta: IBulkMeta;
|
|
409
476
|
_meta?: IRequestMeta;
|
|
@@ -414,6 +481,8 @@ interface IBulkResponse<T> {
|
|
|
414
481
|
interface IMessageResponse {
|
|
415
482
|
success: boolean;
|
|
416
483
|
message: string;
|
|
484
|
+
messageKey?: string;
|
|
485
|
+
messageParams?: Record<string, unknown>;
|
|
417
486
|
_meta?: IRequestMeta;
|
|
418
487
|
}
|
|
419
488
|
/**
|
|
@@ -422,7 +491,8 @@ interface IMessageResponse {
|
|
|
422
491
|
interface IErrorResponse {
|
|
423
492
|
success: false;
|
|
424
493
|
message: string;
|
|
425
|
-
|
|
494
|
+
messageKey?: string;
|
|
495
|
+
messageParams?: Record<string, unknown>;
|
|
426
496
|
errors?: IValidationError[];
|
|
427
497
|
_meta?: IRequestMeta;
|
|
428
498
|
}
|
|
@@ -484,9 +554,6 @@ interface IFileData {
|
|
|
484
554
|
createdAt: Date;
|
|
485
555
|
}
|
|
486
556
|
|
|
487
|
-
/**
|
|
488
|
-
* Basic file info for selectors and displays
|
|
489
|
-
*/
|
|
490
557
|
interface IFileBasicInfo {
|
|
491
558
|
id: string;
|
|
492
559
|
name: string;
|
|
@@ -494,9 +561,23 @@ interface IFileBasicInfo {
|
|
|
494
561
|
size: string;
|
|
495
562
|
url: string | null;
|
|
496
563
|
}
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
564
|
+
interface IUploadedFile {
|
|
565
|
+
id?: string;
|
|
566
|
+
name: string;
|
|
567
|
+
key: string;
|
|
568
|
+
size: number;
|
|
569
|
+
contentType: string;
|
|
570
|
+
}
|
|
571
|
+
interface IFolderBasicInfo {
|
|
572
|
+
id: string;
|
|
573
|
+
name: string;
|
|
574
|
+
slug: string;
|
|
575
|
+
}
|
|
576
|
+
interface IStorageConfigBasicInfo {
|
|
577
|
+
id: string;
|
|
578
|
+
name: string;
|
|
579
|
+
isDefault: boolean;
|
|
580
|
+
}
|
|
500
581
|
interface IFileUploadOptions {
|
|
501
582
|
storageConfigId?: string;
|
|
502
583
|
folderPath?: string;
|
|
@@ -504,42 +585,22 @@ interface IFileUploadOptions {
|
|
|
504
585
|
maxHeight?: number;
|
|
505
586
|
quality?: number;
|
|
506
587
|
compress?: boolean;
|
|
588
|
+
isPrivate?: boolean;
|
|
507
589
|
}
|
|
508
|
-
|
|
509
|
-
* Uploaded file response
|
|
510
|
-
*/
|
|
511
|
-
interface IUploadedFile {
|
|
512
|
-
id?: string;
|
|
513
|
-
name: string;
|
|
514
|
-
key: string;
|
|
515
|
-
size: number;
|
|
516
|
-
contentType: string;
|
|
517
|
-
}
|
|
518
|
-
/**
|
|
519
|
-
* Filter params for file selector
|
|
520
|
-
*/
|
|
521
|
-
interface IFileSelectFilter {
|
|
590
|
+
interface ISelectFilter {
|
|
522
591
|
page: number;
|
|
523
592
|
pageSize: number;
|
|
524
593
|
search: string;
|
|
594
|
+
}
|
|
595
|
+
interface IFileSelectFilter extends ISelectFilter {
|
|
525
596
|
contentTypes?: string[];
|
|
526
597
|
folderId?: string;
|
|
598
|
+
storageConfigId?: string;
|
|
527
599
|
}
|
|
528
|
-
/**
|
|
529
|
-
* Function type for loading files
|
|
530
|
-
*/
|
|
531
600
|
type LoadFilesFn = (filter: IFileSelectFilter) => Observable<IListResponse<IFileBasicInfo>>;
|
|
532
|
-
/**
|
|
533
|
-
* Function type for uploading a file
|
|
534
|
-
*/
|
|
535
601
|
type UploadFileFn = (file: File, options?: IFileUploadOptions) => Observable<ISingleResponse<IUploadedFile>>;
|
|
536
|
-
|
|
537
|
-
* Function type for getting file URLs (presigned URL refresh)
|
|
538
|
-
*/
|
|
602
|
+
type UploadMultipleFilesFn = (files: File[], options?: IFileUploadOptions) => Observable<ISingleResponse<IUploadedFile[]>>;
|
|
539
603
|
type GetFileUrlsFn = (fileIds: string[]) => Observable<ISingleResponse<IFileBasicInfo[]>>;
|
|
540
|
-
/**
|
|
541
|
-
* Common file type filters
|
|
542
|
-
*/
|
|
543
604
|
declare const FILE_TYPE_FILTERS: {
|
|
544
605
|
readonly IMAGES: readonly ["image/jpeg", "image/png", "image/gif", "image/webp", "image/svg+xml"];
|
|
545
606
|
readonly DOCUMENTS: readonly ["application/pdf", "application/msword", "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "application/vnd.ms-excel", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"];
|
|
@@ -547,21 +608,9 @@ declare const FILE_TYPE_FILTERS: {
|
|
|
547
608
|
readonly AUDIO: readonly ["audio/mpeg", "audio/wav", "audio/ogg", "audio/webm"];
|
|
548
609
|
readonly ALL: string[];
|
|
549
610
|
};
|
|
550
|
-
/**
|
|
551
|
-
* Get accept string for file input from content types
|
|
552
|
-
*/
|
|
553
611
|
declare function getAcceptString(contentTypes: string[]): string;
|
|
554
|
-
/**
|
|
555
|
-
* Check if file matches allowed content types
|
|
556
|
-
*/
|
|
557
612
|
declare function isFileTypeAllowed(file: File, allowedTypes: string[]): boolean;
|
|
558
|
-
/**
|
|
559
|
-
* Get file icon class based on content type
|
|
560
|
-
*/
|
|
561
613
|
declare function getFileIconClass(contentType: string): string;
|
|
562
|
-
/**
|
|
563
|
-
* Format file size for display
|
|
564
|
-
*/
|
|
565
614
|
declare function formatFileSize(sizeInKb: string | number): string;
|
|
566
615
|
|
|
567
616
|
/**
|
|
@@ -661,31 +710,6 @@ interface IProfilePermissionProvider {
|
|
|
661
710
|
getUserRoles(userId: string, branchId?: string): Observable<ISingleResponse<IProfileRoleInfo[]>>;
|
|
662
711
|
getUserActions(userId: string, branchId?: string): Observable<ISingleResponse<IProfileActionInfo[]>>;
|
|
663
712
|
}
|
|
664
|
-
/**
|
|
665
|
-
* Uploaded file result with file manager ID
|
|
666
|
-
*/
|
|
667
|
-
interface IProfileUploadResult {
|
|
668
|
-
id: string;
|
|
669
|
-
name: string;
|
|
670
|
-
key: string;
|
|
671
|
-
size: number;
|
|
672
|
-
contentType: string;
|
|
673
|
-
}
|
|
674
|
-
/**
|
|
675
|
-
* Profile Upload Options
|
|
676
|
-
*/
|
|
677
|
-
interface IProfileUploadOptions {
|
|
678
|
-
folderPath?: string;
|
|
679
|
-
compress?: boolean;
|
|
680
|
-
maxWidth?: number;
|
|
681
|
-
maxHeight?: number;
|
|
682
|
-
}
|
|
683
|
-
/**
|
|
684
|
-
* Profile Upload Provider Interface - Provides file upload functionality for profile pictures.
|
|
685
|
-
*/
|
|
686
|
-
interface IProfileUploadProvider {
|
|
687
|
-
uploadProfilePicture(file: File, options?: IProfileUploadOptions): Observable<ISingleResponse<IProfileUploadResult>>;
|
|
688
|
-
}
|
|
689
713
|
/**
|
|
690
714
|
* Base user interface for list operations
|
|
691
715
|
*/
|
|
@@ -745,6 +769,24 @@ interface IUserListProvider<T extends IUserListItem = IUserListItem> {
|
|
|
745
769
|
enrichListData?(users: T[]): Observable<T[]>;
|
|
746
770
|
getExtraFilters?(): IUserListFilter[];
|
|
747
771
|
}
|
|
772
|
+
/**
|
|
773
|
+
* File Provider Interface - Provides file loading and upload functionality.
|
|
774
|
+
* Used by FileSelectorDialogComponent to load files and handle uploads.
|
|
775
|
+
*/
|
|
776
|
+
interface IFileProvider {
|
|
777
|
+
/** Load files with filtering and pagination */
|
|
778
|
+
loadFiles(filter: IFileSelectFilter): Observable<IListResponse<IFileBasicInfo>>;
|
|
779
|
+
/** Upload a single file and register in file manager */
|
|
780
|
+
uploadFile(file: File, options?: IFileUploadOptions): Observable<ISingleResponse<IUploadedFile>>;
|
|
781
|
+
/** Upload multiple files at once (more efficient batch upload) */
|
|
782
|
+
uploadMultipleFiles?(files: File[], options?: IFileUploadOptions): Observable<ISingleResponse<IUploadedFile[]>>;
|
|
783
|
+
/** Get file URLs by IDs (for refreshing presigned URLs) */
|
|
784
|
+
getFileUrls?(fileIds: string[]): Observable<ISingleResponse<IFileBasicInfo[]>>;
|
|
785
|
+
/** Load folders for folder selector (optional) */
|
|
786
|
+
loadFolders?(filter: ISelectFilter): Observable<IListResponse<IFolderBasicInfo>>;
|
|
787
|
+
/** Load storage configs for config selector (optional) */
|
|
788
|
+
loadStorageConfigs?(filter: ISelectFilter): Observable<IListResponse<IStorageConfigBasicInfo>>;
|
|
789
|
+
}
|
|
748
790
|
|
|
749
791
|
declare enum ContactTypeEnum {
|
|
750
792
|
PHONE = 1,
|
|
@@ -937,6 +979,35 @@ declare class PreventDefaultDirective {
|
|
|
937
979
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<PreventDefaultDirective, "[appPreventDefault]", never, { "eventType": { "alias": "eventType"; "required": false; "isSignal": true; }; "preventKey": { "alias": "preventKey"; "required": false; "isSignal": true; }; }, { "action": "action"; }, never, never, true, never>;
|
|
938
980
|
}
|
|
939
981
|
|
|
982
|
+
declare class TranslatePipe implements PipeTransform {
|
|
983
|
+
private readonly translateAdapter;
|
|
984
|
+
private readonly fallbackMessages;
|
|
985
|
+
transform(key: string, params?: Record<string, string | number>): string;
|
|
986
|
+
private getFromFallback;
|
|
987
|
+
private interpolate;
|
|
988
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TranslatePipe, never>;
|
|
989
|
+
static ɵpipe: _angular_core.ɵɵPipeDeclaration<TranslatePipe, "translate", true>;
|
|
990
|
+
}
|
|
991
|
+
|
|
992
|
+
interface IResolverModuleConfig {
|
|
993
|
+
modules: string[];
|
|
994
|
+
fallbackMessages?: Record<string, string>;
|
|
995
|
+
}
|
|
996
|
+
declare function resolveTranslationModule(config: IResolverModuleConfig): ResolveFn<boolean>;
|
|
997
|
+
|
|
998
|
+
/**
|
|
999
|
+
* Provide fallback localization when @flusys/ng-localization is not used.
|
|
1000
|
+
* Uses hardcoded fallback messages registered by route resolvers.
|
|
1001
|
+
*
|
|
1002
|
+
* @example
|
|
1003
|
+
* ```typescript
|
|
1004
|
+
* providers: [
|
|
1005
|
+
* ...provideFallbackLocalization(),
|
|
1006
|
+
* ]
|
|
1007
|
+
* ```
|
|
1008
|
+
*/
|
|
1009
|
+
declare function provideFallbackLocalization(): Provider[];
|
|
1010
|
+
|
|
940
1011
|
declare class AngularModule {
|
|
941
1012
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AngularModule, never>;
|
|
942
1013
|
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<AngularModule, never, [typeof i1.CommonModule, typeof i2.FormsModule, typeof i2.ReactiveFormsModule, typeof i3.RouterOutlet, typeof i3.RouterLink, typeof i3.RouterLinkActive, typeof IsEmptyImageDirective, typeof i1.NgOptimizedImage, typeof i1.NgComponentOutlet, typeof PreventDefaultDirective], [typeof i1.CommonModule, typeof i2.FormsModule, typeof i2.ReactiveFormsModule, typeof i3.RouterOutlet, typeof i3.RouterLink, typeof i3.RouterLinkActive, typeof IsEmptyImageDirective, typeof i1.NgOptimizedImage, typeof i1.NgComponentOutlet, typeof PreventDefaultDirective]>;
|
|
@@ -945,26 +1016,15 @@ declare class AngularModule {
|
|
|
945
1016
|
|
|
946
1017
|
declare class PrimeModule {
|
|
947
1018
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PrimeModule, never>;
|
|
948
|
-
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<PrimeModule, never, never, [typeof i1$1.AutoCompleteModule, typeof i2$1.AvatarModule, typeof i3$1.ButtonModule, typeof i4.CardModule, typeof i5.CheckboxModule, typeof i6.ConfirmDialogModule, typeof i7.DatePickerModule, typeof i8.DialogModule, typeof i9.DividerModule, typeof i10.FileUploadModule, typeof i11.IconFieldModule, typeof i12.ImageModule, typeof i13.InputIconModule, typeof i14.InputNumberModule, typeof i15.InputTextModule, typeof i16.ListboxModule, typeof i17.MultiSelectModule, typeof i18.PaginatorModule, typeof i19.PanelModule, typeof i20.PasswordModule, typeof i21.PopoverModule, typeof i22.ProgressBarModule, typeof i23.RadioButtonModule, typeof i24.RippleModule, typeof i25.SelectButtonModule, typeof i26.SelectModule, typeof i27.SkeletonModule, typeof i28.SplitButtonModule, typeof i29.StepsModule, typeof i30.TableModule, typeof i31.TabsModule, typeof i32.TagModule, typeof i33.TextareaModule, typeof i34.ToastModule, typeof i35.
|
|
1019
|
+
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<PrimeModule, never, never, [typeof i1$1.AutoCompleteModule, typeof i2$1.AvatarModule, typeof i3$1.ButtonModule, typeof i4.CardModule, typeof i5.CheckboxModule, typeof i6.ConfirmDialogModule, typeof i7.DatePickerModule, typeof i8.DialogModule, typeof i9.DividerModule, typeof i10.FileUploadModule, typeof i11.IconFieldModule, typeof i12.ImageModule, typeof i13.InputIconModule, typeof i14.InputNumberModule, typeof i15.InputTextModule, typeof i16.ListboxModule, typeof i17.MultiSelectModule, typeof i18.PaginatorModule, typeof i19.PanelModule, typeof i20.PasswordModule, typeof i21.PopoverModule, typeof i22.ProgressBarModule, typeof i23.RadioButtonModule, typeof i24.RippleModule, typeof i25.SelectButtonModule, typeof i26.SelectModule, typeof i27.SkeletonModule, typeof i28.SplitButtonModule, typeof i29.StepsModule, typeof i30.TableModule, typeof i31.TabsModule, typeof i32.TagModule, typeof i33.TextareaModule, typeof i34.ToastModule, typeof i35.ToggleButtonModule, typeof i36.ToggleSwitchModule, typeof i37.TooltipModule, typeof i38.TreeTableModule, typeof i39.ProgressSpinnerModule, typeof i40.ColorPickerModule]>;
|
|
949
1020
|
static ɵinj: _angular_core.ɵɵInjectorDeclaration<PrimeModule>;
|
|
950
1021
|
}
|
|
951
1022
|
|
|
952
|
-
|
|
953
|
-
type ServiceName = 'auth' | 'administration' | 'iam' | 'storage' | 'formBuilder' | 'email';
|
|
1023
|
+
type ServiceName = 'auth' | 'administration' | 'iam' | 'storage' | 'formBuilder' | 'email' | 'eventManager' | 'notification';
|
|
954
1024
|
|
|
955
1025
|
/**
|
|
956
1026
|
* Service interface for CRUD operations.
|
|
957
|
-
* Matches NestJS shared API controller endpoints
|
|
958
|
-
*
|
|
959
|
-
* | Angular Method | HTTP | NestJS Endpoint | Response Type |
|
|
960
|
-
* |------------------|--------|------------------------|------------------------|
|
|
961
|
-
* | insert() | POST | /{resource}/insert | ISingleResponse<T> |
|
|
962
|
-
* | insertMany() | POST | /{resource}/insert-many| IBulkResponse<T> |
|
|
963
|
-
* | findById() | POST | /{resource}/get/:id | ISingleResponse<T> |
|
|
964
|
-
* | getAll() | POST | /{resource}/get-all | IListResponse<T> |
|
|
965
|
-
* | update() | POST | /{resource}/update | ISingleResponse<T> |
|
|
966
|
-
* | updateMany() | POST | /{resource}/update-many| IBulkResponse<T> |
|
|
967
|
-
* | delete() | POST | /{resource}/delete | IMessageResponse |
|
|
1027
|
+
* Matches NestJS shared API controller endpoints (all POST, RPC-style).
|
|
968
1028
|
*/
|
|
969
1029
|
interface IApiService<DtoT, InterfaceT> {
|
|
970
1030
|
insert(dto: DtoT): Observable<ISingleResponse<InterfaceT>>;
|
|
@@ -978,51 +1038,15 @@ interface IApiService<DtoT, InterfaceT> {
|
|
|
978
1038
|
/**
|
|
979
1039
|
* Abstract base class for API services using Angular 21 resource() API.
|
|
980
1040
|
* Provides signal-based reactive data fetching with automatic loading states.
|
|
981
|
-
* Response types match FLUSYS_NEST backend DTOs.
|
|
982
|
-
*
|
|
983
|
-
* ## Endpoint Mapping
|
|
984
|
-
*
|
|
985
|
-
* All endpoints use POST method (RPC-style API):
|
|
986
|
-
* - `POST /{resource}/insert` - Create single item
|
|
987
|
-
* - `POST /{resource}/insert-many` - Create multiple items
|
|
988
|
-
* - `POST /{resource}/get/:id` - Get single item by ID
|
|
989
|
-
* - `POST /{resource}/get-all?q=` - List with pagination/filter
|
|
990
|
-
* - `POST /{resource}/update` - Update single item
|
|
991
|
-
* - `POST /{resource}/update-many` - Update multiple items
|
|
992
|
-
* - `POST /{resource}/delete` - Delete/restore/permanent delete
|
|
993
1041
|
*
|
|
994
1042
|
* @example
|
|
995
1043
|
* ```typescript
|
|
996
|
-
* // Define service with global apiBaseUrl
|
|
997
1044
|
* @Injectable({ providedIn: 'root' })
|
|
998
1045
|
* export class UserService extends ApiResourceService<UserDto, User> {
|
|
999
1046
|
* constructor() {
|
|
1000
1047
|
* super('auth/users', inject(HttpClient));
|
|
1001
1048
|
* }
|
|
1002
1049
|
* }
|
|
1003
|
-
*
|
|
1004
|
-
* // Define service with feature-specific baseUrl
|
|
1005
|
-
* @Injectable({ providedIn: 'root' })
|
|
1006
|
-
* export class FormService extends ApiResourceService<FormDto, Form> {
|
|
1007
|
-
* constructor() {
|
|
1008
|
-
* super('form', inject(HttpClient), 'formBuilder');
|
|
1009
|
-
* // URL: services.formBuilder.baseUrl + '/form'
|
|
1010
|
-
* }
|
|
1011
|
-
* }
|
|
1012
|
-
*
|
|
1013
|
-
* // In component - use signals
|
|
1014
|
-
* userService = inject(UserService);
|
|
1015
|
-
* users = this.userService.data; // Signal<User[]>
|
|
1016
|
-
* isLoading = this.userService.isLoading; // Signal<boolean>
|
|
1017
|
-
* total = this.userService.total; // Signal<number>
|
|
1018
|
-
*
|
|
1019
|
-
* // Trigger fetch
|
|
1020
|
-
* this.userService.fetchList('search', { pagination: { currentPage: 0, pageSize: 10 } });
|
|
1021
|
-
*
|
|
1022
|
-
* // CRUD operations
|
|
1023
|
-
* await this.userService.insertAsync({ name: 'John', email: 'john@example.com' });
|
|
1024
|
-
* await this.userService.updateAsync({ id: '123', name: 'John Updated' });
|
|
1025
|
-
* await this.userService.deleteAsync({ id: '123', type: 'delete' });
|
|
1026
1050
|
* ```
|
|
1027
1051
|
*/
|
|
1028
1052
|
declare abstract class ApiResourceService<DtoT, InterfaceT> implements IApiService<DtoT, InterfaceT> {
|
|
@@ -1030,149 +1054,41 @@ declare abstract class ApiResourceService<DtoT, InterfaceT> implements IApiServi
|
|
|
1030
1054
|
protected readonly injector: Injector;
|
|
1031
1055
|
protected readonly http: HttpClient;
|
|
1032
1056
|
protected readonly moduleApiName: string;
|
|
1033
|
-
/** Current search term */
|
|
1034
1057
|
readonly searchTerm: _angular_core.WritableSignal<string>;
|
|
1035
|
-
/** Current filter and pagination state */
|
|
1036
1058
|
readonly filterData: _angular_core.WritableSignal<IFilterData>;
|
|
1037
|
-
/**
|
|
1038
|
-
* Resource for list data - lazy initialized to prevent auto-fetch on service injection.
|
|
1039
|
-
* Call initListResource() or any list method (fetchList, reload, etc.) to initialize.
|
|
1040
|
-
*/
|
|
1041
1059
|
private _listResource;
|
|
1042
|
-
/** Whether the list resource has been initialized */
|
|
1043
1060
|
private _resourceInitialized;
|
|
1044
|
-
/**
|
|
1045
|
-
* Signal to track resource initialization for computed signals.
|
|
1046
|
-
* This allows computed signals to re-evaluate when the resource is created.
|
|
1047
|
-
* Without this, computed signals would not detect when _listResource changes from null.
|
|
1048
|
-
*/
|
|
1049
1061
|
private readonly _resourceInitSignal;
|
|
1050
|
-
/** Get or create the list resource (lazy initialization) */
|
|
1051
1062
|
get listResource(): ResourceRef<IListResponse<InterfaceT> | undefined>;
|
|
1052
|
-
/**
|
|
1053
|
-
* Initialize the list resource. Called automatically when accessing listResource
|
|
1054
|
-
* or any list-related computed signals/methods.
|
|
1055
|
-
* Uses runInInjectionContext to support lazy initialization outside constructor.
|
|
1056
|
-
*/
|
|
1057
1063
|
initListResource(): void;
|
|
1058
|
-
/**
|
|
1059
|
-
* Whether data is currently loading.
|
|
1060
|
-
* Tracks _resourceInitSignal to re-evaluate when resource is created.
|
|
1061
|
-
*/
|
|
1062
1064
|
readonly isLoading: _angular_core.Signal<boolean>;
|
|
1063
|
-
/**
|
|
1064
|
-
* List data array.
|
|
1065
|
-
* Tracks _resourceInitSignal to re-evaluate when resource is created.
|
|
1066
|
-
*/
|
|
1067
1065
|
readonly data: _angular_core.Signal<InterfaceT[]>;
|
|
1068
|
-
/**
|
|
1069
|
-
* Total count of items.
|
|
1070
|
-
* Tracks _resourceInitSignal to re-evaluate when resource is created.
|
|
1071
|
-
*/
|
|
1072
1066
|
readonly total: _angular_core.Signal<number>;
|
|
1073
|
-
/**
|
|
1074
|
-
* Pagination metadata.
|
|
1075
|
-
* Tracks _resourceInitSignal to re-evaluate when resource is created.
|
|
1076
|
-
*/
|
|
1077
1067
|
readonly pageInfo: _angular_core.Signal<_flusys_ng_shared.IPaginationMeta | undefined>;
|
|
1078
|
-
/**
|
|
1079
|
-
* Whether there are more pages.
|
|
1080
|
-
* Tracks _resourceInitSignal to re-evaluate when resource is created.
|
|
1081
|
-
*/
|
|
1082
1068
|
readonly hasMore: _angular_core.Signal<boolean>;
|
|
1083
|
-
/**
|
|
1084
|
-
* @param moduleApiName - The API resource path (e.g., 'form' for /form-builder/form)
|
|
1085
|
-
* @param http - HttpClient instance
|
|
1086
|
-
* @param serviceName - Optional service name for feature-specific base URL (e.g., 'formBuilder')
|
|
1087
|
-
*/
|
|
1088
1069
|
constructor(moduleApiName: string, http: HttpClient, serviceName?: ServiceName);
|
|
1089
1070
|
protected getHttpOptions(endpoint: string, params?: HttpParams): {
|
|
1090
1071
|
params?: HttpParams | undefined;
|
|
1091
1072
|
headers: HttpHeaders;
|
|
1092
1073
|
};
|
|
1093
|
-
/**
|
|
1094
|
-
* Fetch list data (triggers resource initialization and reload)
|
|
1095
|
-
*/
|
|
1096
1074
|
fetchList(search?: string, filter?: Partial<IFilterData>): void;
|
|
1097
|
-
/**
|
|
1098
|
-
* Update pagination
|
|
1099
|
-
*/
|
|
1100
1075
|
setPagination(pagination: IPagination): void;
|
|
1101
|
-
/**
|
|
1102
|
-
* Go to next page
|
|
1103
|
-
*/
|
|
1104
1076
|
nextPage(): void;
|
|
1105
|
-
/**
|
|
1106
|
-
* Reset to first page
|
|
1107
|
-
*/
|
|
1108
1077
|
resetPagination(): void;
|
|
1109
|
-
/**
|
|
1110
|
-
* Reload current data
|
|
1111
|
-
*/
|
|
1112
1078
|
reload(): void;
|
|
1113
|
-
/**
|
|
1114
|
-
* Insert single item (Observable)
|
|
1115
|
-
* POST /{resource}/insert
|
|
1116
|
-
*/
|
|
1117
1079
|
insert(dto: DtoT): Observable<ISingleResponse<InterfaceT>>;
|
|
1118
|
-
/**
|
|
1119
|
-
* Insert multiple items (Observable)
|
|
1120
|
-
* POST /{resource}/insert-many
|
|
1121
|
-
*/
|
|
1122
1080
|
insertMany(dtos: DtoT[]): Observable<IBulkResponse<InterfaceT>>;
|
|
1123
|
-
/**
|
|
1124
|
-
* Find single item by ID (Observable)
|
|
1125
|
-
* POST /{resource}/get/:id
|
|
1126
|
-
*/
|
|
1127
1081
|
findById(id: string, select?: string[]): Observable<ISingleResponse<InterfaceT>>;
|
|
1128
|
-
/**
|
|
1129
|
-
* Get all items with pagination (Observable)
|
|
1130
|
-
* POST /{resource}/get-all?q=search
|
|
1131
|
-
*/
|
|
1132
1082
|
getAll(search: string, filter: IFilterData): Observable<IListResponse<InterfaceT>>;
|
|
1133
|
-
/**
|
|
1134
|
-
* Update single item (Observable)
|
|
1135
|
-
* POST /{resource}/update
|
|
1136
|
-
*/
|
|
1137
1083
|
update(dto: DtoT): Observable<ISingleResponse<InterfaceT>>;
|
|
1138
|
-
/**
|
|
1139
|
-
* Update multiple items (Observable)
|
|
1140
|
-
* POST /{resource}/update-many
|
|
1141
|
-
*/
|
|
1142
1084
|
updateMany(dtos: DtoT[]): Observable<IBulkResponse<InterfaceT>>;
|
|
1143
|
-
/**
|
|
1144
|
-
* Delete items (Observable)
|
|
1145
|
-
* POST /{resource}/delete
|
|
1146
|
-
* @param deleteDto - { id: string | string[], type: 'delete' | 'restore' | 'permanent' }
|
|
1147
|
-
*/
|
|
1148
1085
|
delete(deleteDto: IDeleteData): Observable<IMessageResponse>;
|
|
1149
|
-
|
|
1150
|
-
* Fetch paginated list (async)
|
|
1151
|
-
*/
|
|
1152
|
-
protected fetchAllAsync(search: string, filter: IFilterData): Promise<IListResponse<InterfaceT>>;
|
|
1153
|
-
/**
|
|
1154
|
-
* Find single item by ID (async)
|
|
1155
|
-
*/
|
|
1086
|
+
getAllAsync(filter: IFilterData, search?: string): Promise<IListResponse<InterfaceT>>;
|
|
1156
1087
|
findByIdAsync(id: string, select?: string[]): Promise<ISingleResponse<InterfaceT>>;
|
|
1157
|
-
/**
|
|
1158
|
-
* Insert single item (async)
|
|
1159
|
-
*/
|
|
1160
1088
|
insertAsync(dto: DtoT): Promise<ISingleResponse<InterfaceT>>;
|
|
1161
|
-
/**
|
|
1162
|
-
* Insert multiple items (async)
|
|
1163
|
-
*/
|
|
1164
1089
|
insertManyAsync(dtos: DtoT[]): Promise<IBulkResponse<InterfaceT>>;
|
|
1165
|
-
/**
|
|
1166
|
-
* Update single item (async)
|
|
1167
|
-
*/
|
|
1168
1090
|
updateAsync(dto: DtoT): Promise<ISingleResponse<InterfaceT>>;
|
|
1169
|
-
/**
|
|
1170
|
-
* Update multiple items (async)
|
|
1171
|
-
*/
|
|
1172
1091
|
updateManyAsync(dtos: DtoT[]): Promise<IBulkResponse<InterfaceT>>;
|
|
1173
|
-
/**
|
|
1174
|
-
* Delete items (async)
|
|
1175
|
-
*/
|
|
1176
1092
|
deleteAsync(deleteDto: IDeleteData): Promise<IMessageResponse>;
|
|
1177
1093
|
}
|
|
1178
1094
|
|
|
@@ -1282,12 +1198,16 @@ declare class IconComponent {
|
|
|
1282
1198
|
* - Reactive forms: `[formControl]="ctrl"` or `formControlName="field"`
|
|
1283
1199
|
* - Signal forms: `[formField]="formTree.field"`
|
|
1284
1200
|
*/
|
|
1285
|
-
declare class LazyMultiSelectComponent extends BaseFormControl<string[] | null> {
|
|
1286
|
-
private readonly
|
|
1201
|
+
declare class LazyMultiSelectComponent extends BaseFormControl<string[] | null> implements OnDestroy {
|
|
1202
|
+
private readonly document;
|
|
1203
|
+
private readonly appRef;
|
|
1204
|
+
private readonly translateAdapter;
|
|
1287
1205
|
private readonly onDocumentClickBound;
|
|
1288
|
-
private isDestroyed;
|
|
1289
1206
|
readonly pSelectRef: _angular_core.Signal<ElementRef<HTMLDivElement>>;
|
|
1207
|
+
readonly overlayTemplate: _angular_core.Signal<TemplateRef<unknown>>;
|
|
1208
|
+
private overlayViewRef;
|
|
1290
1209
|
readonly placeHolder: _angular_core.InputSignal<string>;
|
|
1210
|
+
readonly displayPlaceholder: _angular_core.Signal<string>;
|
|
1291
1211
|
readonly isEditMode: _angular_core.InputSignal<boolean>;
|
|
1292
1212
|
readonly isLoading: _angular_core.InputSignal<boolean>;
|
|
1293
1213
|
readonly total: _angular_core.InputSignal<number | undefined>;
|
|
@@ -1301,15 +1221,18 @@ declare class LazyMultiSelectComponent extends BaseFormControl<string[] | null>
|
|
|
1301
1221
|
readonly selectedValueDisplay: _angular_core.Signal<string>;
|
|
1302
1222
|
readonly isSelectAll: _angular_core.Signal<boolean>;
|
|
1303
1223
|
constructor();
|
|
1224
|
+
ngOnDestroy(): void;
|
|
1304
1225
|
onScroll(event: Event): void;
|
|
1305
|
-
onSelectClick(
|
|
1226
|
+
onSelectClick(): void;
|
|
1227
|
+
private openOverlay;
|
|
1228
|
+
private closeOverlay;
|
|
1306
1229
|
onOverlayClick(event: Event): void;
|
|
1307
1230
|
private handleDocumentClick;
|
|
1308
1231
|
isSelected(data: IDropDown): boolean;
|
|
1309
|
-
key(option: IDropDown): string;
|
|
1310
1232
|
selectValue(event: CheckboxChangeEvent, option: IDropDown): void;
|
|
1311
1233
|
changeSelectAll(event: CheckboxChangeEvent): void;
|
|
1312
1234
|
clear(event: Event): void;
|
|
1235
|
+
private t;
|
|
1313
1236
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<LazyMultiSelectComponent, never>;
|
|
1314
1237
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<LazyMultiSelectComponent, "lib-lazy-multi-select", never, { "placeHolder": { "alias": "placeHolder"; "required": false; "isSignal": true; }; "isEditMode": { "alias": "isEditMode"; "required": true; "isSignal": true; }; "isLoading": { "alias": "isLoading"; "required": true; "isSignal": true; }; "total": { "alias": "total"; "required": true; "isSignal": true; }; "pagination": { "alias": "pagination"; "required": true; "isSignal": true; }; "selectDataList": { "alias": "selectDataList"; "required": true; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "onSearch": "onSearch"; "onPagination": "onPagination"; }, never, never, true, never>;
|
|
1315
1238
|
}
|
|
@@ -1324,11 +1247,13 @@ declare class LazyMultiSelectComponent extends BaseFormControl<string[] | null>
|
|
|
1324
1247
|
*/
|
|
1325
1248
|
declare class LazySelectComponent extends BaseFormControl<string | null> {
|
|
1326
1249
|
private readonly destroyRef;
|
|
1250
|
+
private readonly translateAdapter;
|
|
1327
1251
|
private readonly onScrollBound;
|
|
1328
1252
|
private scrollTargetEl;
|
|
1329
1253
|
private isDestroyed;
|
|
1330
1254
|
readonly scrollContainer: _angular_core.Signal<ElementRef<HTMLDivElement>>;
|
|
1331
1255
|
readonly placeHolder: _angular_core.InputSignal<string>;
|
|
1256
|
+
readonly displayPlaceholder: _angular_core.Signal<string>;
|
|
1332
1257
|
readonly optionLabel: _angular_core.InputSignal<string>;
|
|
1333
1258
|
readonly optionValue: _angular_core.InputSignal<string>;
|
|
1334
1259
|
readonly isEditMode: _angular_core.InputSignal<boolean>;
|
|
@@ -1345,6 +1270,7 @@ declare class LazySelectComponent extends BaseFormControl<string | null> {
|
|
|
1345
1270
|
onScroll(event: Event): void;
|
|
1346
1271
|
showPanel(): void;
|
|
1347
1272
|
onBlur(): void;
|
|
1273
|
+
private t;
|
|
1348
1274
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<LazySelectComponent, never>;
|
|
1349
1275
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<LazySelectComponent, "lib-lazy-select", never, { "placeHolder": { "alias": "placeHolder"; "required": false; "isSignal": true; }; "optionLabel": { "alias": "optionLabel"; "required": true; "isSignal": true; }; "optionValue": { "alias": "optionValue"; "required": true; "isSignal": true; }; "isEditMode": { "alias": "isEditMode"; "required": true; "isSignal": true; }; "isLoading": { "alias": "isLoading"; "required": true; "isSignal": true; }; "total": { "alias": "total"; "required": true; "isSignal": true; }; "pagination": { "alias": "pagination"; "required": true; "isSignal": true; }; "selectDataList": { "alias": "selectDataList"; "required": true; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "onSearch": "onSearch"; "onPagination": "onPagination"; }, never, never, true, never>;
|
|
1350
1276
|
}
|
|
@@ -1360,6 +1286,7 @@ declare abstract class BaseUserSelectComponent {
|
|
|
1360
1286
|
protected readonly destroyRef: DestroyRef;
|
|
1361
1287
|
protected readonly injector: Injector;
|
|
1362
1288
|
protected readonly userProvider: IUserProvider;
|
|
1289
|
+
protected readonly translateAdapter: _flusys_ng_core.ITranslateAdapter | null;
|
|
1363
1290
|
protected abortController: AbortController | null;
|
|
1364
1291
|
readonly loadUsers: _angular_core.InputSignal<LoadUsersFn | undefined>;
|
|
1365
1292
|
readonly placeHolder: _angular_core.InputSignal<string>;
|
|
@@ -1374,6 +1301,7 @@ declare abstract class BaseUserSelectComponent {
|
|
|
1374
1301
|
readonly pagination: _angular_core.WritableSignal<IPagination>;
|
|
1375
1302
|
readonly searchTerm: _angular_core.WritableSignal<string>;
|
|
1376
1303
|
readonly dropdownUsers: _angular_core.Signal<IDropDown[]>;
|
|
1304
|
+
readonly displayPlaceholder: _angular_core.Signal<string>;
|
|
1377
1305
|
constructor();
|
|
1378
1306
|
/** Setup effect to track value changes and emit selection events */
|
|
1379
1307
|
protected abstract setupValueEffect(): void;
|
|
@@ -1384,6 +1312,7 @@ declare abstract class BaseUserSelectComponent {
|
|
|
1384
1312
|
protected fetchUsers(append?: boolean): Promise<void>;
|
|
1385
1313
|
/** Load users from USER_PROVIDER with active filter */
|
|
1386
1314
|
private loadUsersFromProvider;
|
|
1315
|
+
protected t(key: string, variables?: Record<string, string | number>): string;
|
|
1387
1316
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<BaseUserSelectComponent, never>;
|
|
1388
1317
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<BaseUserSelectComponent, never, never, { "loadUsers": { "alias": "loadUsers"; "required": false; "isSignal": true; }; "placeHolder": { "alias": "placeHolder"; "required": false; "isSignal": true; }; "isEditMode": { "alias": "isEditMode"; "required": true; "isSignal": true; }; "filterActive": { "alias": "filterActive"; "required": false; "isSignal": true; }; "additionalFilters": { "alias": "additionalFilters"; "required": false; "isSignal": true; }; "pageSize": { "alias": "pageSize"; "required": false; "isSignal": true; }; }, { "onError": "onError"; }, never, never, true, never>;
|
|
1389
1318
|
}
|
|
@@ -1462,11 +1391,33 @@ declare class UserMultiSelectComponent extends BaseUserSelectComponent {
|
|
|
1462
1391
|
/**
|
|
1463
1392
|
* File Uploader Component - Drag & drop file upload with type filtering.
|
|
1464
1393
|
*
|
|
1465
|
-
*
|
|
1394
|
+
* Uses FILE_PROVIDER when available (no inputs needed).
|
|
1395
|
+
* Optionally pass `uploadFile` to override the provider.
|
|
1396
|
+
*
|
|
1397
|
+
* @example
|
|
1398
|
+
* ```html
|
|
1399
|
+
* <!-- Using FILE_PROVIDER (recommended) -->
|
|
1400
|
+
* <lib-file-uploader
|
|
1401
|
+
* [acceptTypes]="['image/*']"
|
|
1402
|
+
* (fileUploaded)="onFileUploaded($event)"
|
|
1403
|
+
* />
|
|
1404
|
+
*
|
|
1405
|
+
* <!-- Custom upload function -->
|
|
1406
|
+
* <lib-file-uploader
|
|
1407
|
+
* [uploadFile]="customUploadFn"
|
|
1408
|
+
* (fileUploaded)="onFileUploaded($event)"
|
|
1409
|
+
* />
|
|
1410
|
+
* ```
|
|
1466
1411
|
*/
|
|
1467
1412
|
declare class FileUploaderComponent {
|
|
1468
1413
|
private readonly messageService;
|
|
1469
|
-
readonly
|
|
1414
|
+
private readonly translateAdapter;
|
|
1415
|
+
private readonly fileProvider;
|
|
1416
|
+
readonly uploadFile: _angular_core.InputSignal<UploadFileFn | undefined>;
|
|
1417
|
+
readonly uploadMultipleFiles: _angular_core.InputSignal<UploadMultipleFilesFn | undefined>;
|
|
1418
|
+
readonly hasUploadCapability: _angular_core.Signal<boolean>;
|
|
1419
|
+
private getUploadFn;
|
|
1420
|
+
private getUploadMultipleFn;
|
|
1470
1421
|
readonly acceptTypes: _angular_core.InputSignal<string[]>;
|
|
1471
1422
|
readonly multiple: _angular_core.InputSignal<boolean>;
|
|
1472
1423
|
readonly maxFiles: _angular_core.InputSignal<number>;
|
|
@@ -1493,67 +1444,55 @@ declare class FileUploaderComponent {
|
|
|
1493
1444
|
private handleFiles;
|
|
1494
1445
|
removeFile(file: File): void;
|
|
1495
1446
|
uploadFiles(files?: File[]): Promise<void>;
|
|
1447
|
+
private uploadBatch;
|
|
1448
|
+
private uploadSequential;
|
|
1496
1449
|
getFileIcon(file: File): string;
|
|
1497
1450
|
formatSize(bytes: number): string;
|
|
1451
|
+
private t;
|
|
1498
1452
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FileUploaderComponent, never>;
|
|
1499
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<FileUploaderComponent, "lib-file-uploader", never, { "uploadFile": { "alias": "uploadFile"; "required": true; "isSignal": true; }; "acceptTypes": { "alias": "acceptTypes"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "maxFiles": { "alias": "maxFiles"; "required": false; "isSignal": true; }; "maxSizeMb": { "alias": "maxSizeMb"; "required": false; "isSignal": true; }; "uploadOptions": { "alias": "uploadOptions"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "showPreview": { "alias": "showPreview"; "required": false; "isSignal": true; }; "autoUpload": { "alias": "autoUpload"; "required": false; "isSignal": true; }; }, { "fileUploaded": "fileUploaded"; "filesUploaded": "filesUploaded"; "onError": "onError"; "fileSelected": "fileSelected"; }, never, never, true, never>;
|
|
1453
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<FileUploaderComponent, "lib-file-uploader", never, { "uploadFile": { "alias": "uploadFile"; "required": false; "isSignal": true; }; "uploadMultipleFiles": { "alias": "uploadMultipleFiles"; "required": false; "isSignal": true; }; "acceptTypes": { "alias": "acceptTypes"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "maxFiles": { "alias": "maxFiles"; "required": false; "isSignal": true; }; "maxSizeMb": { "alias": "maxSizeMb"; "required": false; "isSignal": true; }; "uploadOptions": { "alias": "uploadOptions"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "showPreview": { "alias": "showPreview"; "required": false; "isSignal": true; }; "autoUpload": { "alias": "autoUpload"; "required": false; "isSignal": true; }; }, { "fileUploaded": "fileUploaded"; "filesUploaded": "filesUploaded"; "onError": "onError"; "fileSelected": "fileSelected"; }, never, never, true, never>;
|
|
1500
1454
|
}
|
|
1501
1455
|
|
|
1502
1456
|
/**
|
|
1503
|
-
* File Selector Dialog -
|
|
1457
|
+
* File Selector Dialog - Self-contained file browser with upload support.
|
|
1504
1458
|
*
|
|
1505
|
-
*
|
|
1459
|
+
* Uses FILE_PROVIDER internally - no external functions needed.
|
|
1460
|
+
* Just configure with inputs and handle selection events.
|
|
1506
1461
|
*
|
|
1507
1462
|
* Features:
|
|
1508
1463
|
* - Search with debouncing
|
|
1509
|
-
* - File type filtering
|
|
1464
|
+
* - File type filtering (acceptTypes)
|
|
1465
|
+
* - Folder filtering
|
|
1510
1466
|
* - Infinite scroll pagination
|
|
1511
1467
|
* - Single or multiple selection
|
|
1468
|
+
* - Built-in file upload (withUploader)
|
|
1512
1469
|
* - File preview with icons
|
|
1513
1470
|
*
|
|
1514
1471
|
* @example
|
|
1515
|
-
* ```typescript
|
|
1516
|
-
* // In component
|
|
1517
|
-
* readonly fileService = inject(FileManagerApiService);
|
|
1518
|
-
*
|
|
1519
|
-
* readonly loadFiles: LoadFilesFn = (filter) =>
|
|
1520
|
-
* this.fileService.getAll(filter.search, {
|
|
1521
|
-
* pagination: { currentPage: filter.page, pageSize: filter.pageSize },
|
|
1522
|
-
* filter: { contentTypes: filter.contentTypes },
|
|
1523
|
-
* }).pipe(
|
|
1524
|
-
* map(res => ({
|
|
1525
|
-
* ...res,
|
|
1526
|
-
* data: res.data?.map(f => ({
|
|
1527
|
-
* id: f.id,
|
|
1528
|
-
* name: f.name,
|
|
1529
|
-
* contentType: f.contentType,
|
|
1530
|
-
* size: f.size,
|
|
1531
|
-
* url: f.url
|
|
1532
|
-
* }))
|
|
1533
|
-
* }))
|
|
1534
|
-
* );
|
|
1535
|
-
* ```
|
|
1536
|
-
*
|
|
1537
1472
|
* ```html
|
|
1538
1473
|
* <lib-file-selector-dialog
|
|
1539
|
-
* [(visible)]="
|
|
1540
|
-
* [loadFiles]="loadFiles"
|
|
1474
|
+
* [(visible)]="showSelector"
|
|
1541
1475
|
* [acceptTypes]="['image/*']"
|
|
1542
|
-
* [multiple]="
|
|
1543
|
-
*
|
|
1476
|
+
* [multiple]="true"
|
|
1477
|
+
* [withUploader]="true"
|
|
1478
|
+
* (filesSelected)="onFilesSelected($event)"
|
|
1544
1479
|
* />
|
|
1545
1480
|
* ```
|
|
1546
1481
|
*/
|
|
1547
1482
|
declare class FileSelectorDialogComponent {
|
|
1548
1483
|
private readonly destroyRef;
|
|
1484
|
+
private readonly translateAdapter;
|
|
1485
|
+
readonly fileProvider: _flusys_ng_shared.IFileProvider | null;
|
|
1549
1486
|
private abortController;
|
|
1550
1487
|
private searchDebounceTimer;
|
|
1551
|
-
readonly
|
|
1552
|
-
readonly header: _angular_core.InputSignal<string>;
|
|
1488
|
+
readonly header: _angular_core.InputSignal<string | undefined>;
|
|
1553
1489
|
readonly acceptTypes: _angular_core.InputSignal<string[]>;
|
|
1554
1490
|
readonly multiple: _angular_core.InputSignal<boolean>;
|
|
1491
|
+
readonly dialogHeader: _angular_core.Signal<string>;
|
|
1555
1492
|
readonly maxSelection: _angular_core.InputSignal<number>;
|
|
1556
1493
|
readonly pageSize: _angular_core.InputSignal<number>;
|
|
1494
|
+
readonly folderId: _angular_core.InputSignal<string | undefined>;
|
|
1495
|
+
readonly withUploader: _angular_core.InputSignal<boolean>;
|
|
1557
1496
|
readonly visible: _angular_core.ModelSignal<boolean>;
|
|
1558
1497
|
readonly fileSelected: _angular_core.OutputEmitterRef<IFileBasicInfo>;
|
|
1559
1498
|
readonly filesSelected: _angular_core.OutputEmitterRef<IFileBasicInfo[]>;
|
|
@@ -1565,7 +1504,19 @@ declare class FileSelectorDialogComponent {
|
|
|
1565
1504
|
readonly total: _angular_core.WritableSignal<number | undefined>;
|
|
1566
1505
|
readonly pagination: _angular_core.WritableSignal<IPagination>;
|
|
1567
1506
|
readonly searchTerm: _angular_core.WritableSignal<string>;
|
|
1568
|
-
readonly
|
|
1507
|
+
readonly folders: _angular_core.WritableSignal<IFolderBasicInfo[]>;
|
|
1508
|
+
readonly selectedFolderId: _angular_core.WritableSignal<string | null>;
|
|
1509
|
+
readonly foldersLoading: _angular_core.WritableSignal<boolean>;
|
|
1510
|
+
readonly foldersPagination: _angular_core.WritableSignal<IPagination>;
|
|
1511
|
+
readonly foldersTotal: _angular_core.WritableSignal<number | undefined>;
|
|
1512
|
+
readonly storageConfigs: _angular_core.WritableSignal<IStorageConfigBasicInfo[]>;
|
|
1513
|
+
readonly selectedStorageConfigId: _angular_core.WritableSignal<string | null>;
|
|
1514
|
+
readonly storageConfigsLoading: _angular_core.WritableSignal<boolean>;
|
|
1515
|
+
readonly storageConfigsPagination: _angular_core.WritableSignal<IPagination>;
|
|
1516
|
+
readonly storageConfigsTotal: _angular_core.WritableSignal<number | undefined>;
|
|
1517
|
+
readonly effectiveStorageConfigId: _angular_core.Signal<string | undefined>;
|
|
1518
|
+
readonly uploadFileFn: (file: File, options?: IFileUploadOptions) => rxjs.Observable<_flusys_ng_shared.ISingleResponse<IUploadedFile>>;
|
|
1519
|
+
readonly uploadMultipleFilesFn: ((files: File[], options?: IFileUploadOptions) => rxjs.Observable<_flusys_ng_shared.ISingleResponse<IUploadedFile[]>>) | undefined;
|
|
1569
1520
|
constructor();
|
|
1570
1521
|
onSearchChange(value: string): void;
|
|
1571
1522
|
onScroll(event: Event): void;
|
|
@@ -1578,10 +1529,22 @@ declare class FileSelectorDialogComponent {
|
|
|
1578
1529
|
onCancel(): void;
|
|
1579
1530
|
onConfirm(): void;
|
|
1580
1531
|
onDialogHide(): void;
|
|
1532
|
+
onFolderChange(folderId: string | null): void;
|
|
1533
|
+
onFolderSearch(event: {
|
|
1534
|
+
filter: string;
|
|
1535
|
+
}): void;
|
|
1536
|
+
loadFolders(search?: string): Promise<void>;
|
|
1537
|
+
onStorageConfigChange(configId: string | null): void;
|
|
1538
|
+
onStorageConfigSearch(event: {
|
|
1539
|
+
filter: string;
|
|
1540
|
+
}): void;
|
|
1541
|
+
loadStorageConfigs(search?: string): Promise<void>;
|
|
1542
|
+
onFileUploaded(uploadedFile: IUploadedFile): void;
|
|
1581
1543
|
private resetState;
|
|
1582
1544
|
private fetchFiles;
|
|
1545
|
+
private t;
|
|
1583
1546
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FileSelectorDialogComponent, never>;
|
|
1584
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<FileSelectorDialogComponent, "lib-file-selector-dialog", never, { "
|
|
1547
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<FileSelectorDialogComponent, "lib-file-selector-dialog", never, { "header": { "alias": "header"; "required": false; "isSignal": true; }; "acceptTypes": { "alias": "acceptTypes"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "maxSelection": { "alias": "maxSelection"; "required": false; "isSignal": true; }; "pageSize": { "alias": "pageSize"; "required": false; "isSignal": true; }; "folderId": { "alias": "folderId"; "required": false; "isSignal": true; }; "withUploader": { "alias": "withUploader"; "required": false; "isSignal": true; }; "visible": { "alias": "visible"; "required": false; "isSignal": true; }; }, { "visible": "visibleChange"; "fileSelected": "fileSelected"; "filesSelected": "filesSelected"; "closed": "closed"; "onError": "onError"; }, never, never, true, never>;
|
|
1585
1548
|
}
|
|
1586
1549
|
|
|
1587
1550
|
/**
|
|
@@ -1637,14 +1600,6 @@ declare const AUTH_STATE_PROVIDER: InjectionToken<IAuthStateProvider>;
|
|
|
1637
1600
|
* Use with `inject(PROFILE_PERMISSION_PROVIDER, { optional: true })`.
|
|
1638
1601
|
*/
|
|
1639
1602
|
declare const PROFILE_PERMISSION_PROVIDER: InjectionToken<IProfilePermissionProvider>;
|
|
1640
|
-
/**
|
|
1641
|
-
* Profile Upload Provider Token
|
|
1642
|
-
*
|
|
1643
|
-
* Provides file upload functionality for profile pictures.
|
|
1644
|
-
* Optional - if not configured or storage not enabled, upload section is hidden.
|
|
1645
|
-
* Use with `inject(PROFILE_UPLOAD_PROVIDER, { optional: true })`.
|
|
1646
|
-
*/
|
|
1647
|
-
declare const PROFILE_UPLOAD_PROVIDER: InjectionToken<IProfileUploadProvider>;
|
|
1648
1603
|
/**
|
|
1649
1604
|
* User List Provider Token
|
|
1650
1605
|
*
|
|
@@ -1659,6 +1614,20 @@ declare const PROFILE_UPLOAD_PROVIDER: InjectionToken<IProfileUploadProvider>;
|
|
|
1659
1614
|
* ]
|
|
1660
1615
|
*/
|
|
1661
1616
|
declare const USER_LIST_PROVIDER: InjectionToken<IUserListProvider<IUserListItem>>;
|
|
1617
|
+
/**
|
|
1618
|
+
* File Provider Token
|
|
1619
|
+
*
|
|
1620
|
+
* Provides file loading and upload functionality for file selectors.
|
|
1621
|
+
* Optional - if not configured, file selector requires loadFiles/uploadFile inputs.
|
|
1622
|
+
* Use with `inject(FILE_PROVIDER, { optional: true })`.
|
|
1623
|
+
*
|
|
1624
|
+
* @example
|
|
1625
|
+
* // In app.config.ts
|
|
1626
|
+
* providers: [
|
|
1627
|
+
* { provide: FILE_PROVIDER, useClass: StorageFileProvider },
|
|
1628
|
+
* ]
|
|
1629
|
+
*/
|
|
1630
|
+
declare const FILE_PROVIDER: InjectionToken<IFileProvider>;
|
|
1662
1631
|
|
|
1663
1632
|
/**
|
|
1664
1633
|
* Permission Guard - Single permission or ILogicNode check.
|
|
@@ -1712,8 +1681,7 @@ declare function allPermissionsGuard(permissions: string[], redirectTo?: string)
|
|
|
1712
1681
|
* @Component({
|
|
1713
1682
|
* selector: 'app-product-form',
|
|
1714
1683
|
* standalone: true,
|
|
1715
|
-
*
|
|
1716
|
-
* template: `...`
|
|
1684
|
+
* * template: `...`
|
|
1717
1685
|
* })
|
|
1718
1686
|
* export class ProductFormComponent extends BaseFormPage<IProduct, IProductFormModel> {
|
|
1719
1687
|
* private readonly productService = inject(ProductApiService);
|
|
@@ -1780,6 +1748,7 @@ declare abstract class BaseFormPage<T, TFormModel> {
|
|
|
1780
1748
|
protected readonly route: ActivatedRoute;
|
|
1781
1749
|
protected readonly messageService: MessageService;
|
|
1782
1750
|
protected readonly destroyRef: DestroyRef;
|
|
1751
|
+
protected readonly translateAdapter: _flusys_ng_core.ITranslateAdapter | null;
|
|
1783
1752
|
protected readonly routeParams: Signal<i3.ParamMap | undefined>;
|
|
1784
1753
|
protected initialized: boolean;
|
|
1785
1754
|
/** Loading state for async operations */
|
|
@@ -1852,6 +1821,10 @@ declare abstract class BaseFormPage<T, TFormModel> {
|
|
|
1852
1821
|
* @param detail The error message to display
|
|
1853
1822
|
*/
|
|
1854
1823
|
protected showError(detail: string): void;
|
|
1824
|
+
/**
|
|
1825
|
+
* Translate a key using the adapter, fallback to key if not available.
|
|
1826
|
+
*/
|
|
1827
|
+
protected t(key: string, variables?: Record<string, string | number>): string;
|
|
1855
1828
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<BaseFormPage<any, any>, never>;
|
|
1856
1829
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<BaseFormPage<any, any>, never, never, {}, {}, never, never, true, never>;
|
|
1857
1830
|
}
|
|
@@ -1885,6 +1858,7 @@ declare abstract class BaseListPage<T> {
|
|
|
1885
1858
|
protected readonly appConfig: _flusys_ng_core.IAppConfig;
|
|
1886
1859
|
protected readonly confirmationService: ConfirmationService;
|
|
1887
1860
|
protected readonly destroyRef: DestroyRef;
|
|
1861
|
+
protected readonly translateAdapter: _flusys_ng_core.ITranslateAdapter | null;
|
|
1888
1862
|
/** Items list */
|
|
1889
1863
|
readonly items: _angular_core.WritableSignal<T[]>;
|
|
1890
1864
|
/** Loading state */
|
|
@@ -1955,6 +1929,10 @@ declare abstract class BaseListPage<T> {
|
|
|
1955
1929
|
* Show warning toast message
|
|
1956
1930
|
*/
|
|
1957
1931
|
protected showWarn(detail: string, summary?: string): void;
|
|
1932
|
+
/**
|
|
1933
|
+
* Translate a key using the adapter, fallback to key if not available.
|
|
1934
|
+
*/
|
|
1935
|
+
protected t(key: string, variables?: Record<string, string | number>): string;
|
|
1958
1936
|
/**
|
|
1959
1937
|
* Delete an item with confirmation dialog
|
|
1960
1938
|
* @param item The item to delete
|
|
@@ -2037,5 +2015,5 @@ interface ScrollPaginationConfig {
|
|
|
2037
2015
|
*/
|
|
2038
2016
|
declare function checkScrollPagination(event: Event, config: ScrollPaginationConfig): IPagination | null;
|
|
2039
2017
|
|
|
2040
|
-
export { ACTION_PERMISSIONS, AUTH_STATE_PROVIDER, AngularModule, ApiResourceService, ApiResourceService as ApiService, BRANCH_PERMISSIONS, BaseFormControl, BaseFormPage, BaseListPage, BaseUserSelectComponent, COMPANY_ACTION_PERMISSIONS, COMPANY_API_PROVIDER, COMPANY_PERMISSIONS, ContactTypeEnum, CookieService, EMAIL_CONFIG_PERMISSIONS, EMAIL_TEMPLATE_PERMISSIONS, EditModeElementChangerDirective, FILE_PERMISSIONS, FILE_TYPE_FILTERS, FOLDER_PERMISSIONS, FORM_PERMISSIONS, FileSelectorDialogComponent, FileUploaderComponent, FileUrlService, HasPermissionDirective, IconComponent, IconTypeEnum, IsEmptyImageDirective, LazyMultiSelectComponent, LazySelectComponent, PERMISSIONS, PROFILE_PERMISSION_PROVIDER,
|
|
2041
|
-
export type { ApiResponse, DeleteType, FilesResponseDto, GetFileUrlsFn, IActionNode, IActivatable, IApiService, IAuthStateProvider, IBaseEntity, IBulkMeta, IBulkResponse, ICompanyApiProvider, ICompanyBasicInfo, IDeleteData, IDropDown, IErrorResponse, IFileBasicInfo, IFileData, IFileSelectFilter, IFileUploadOptions, IFilter, IFilterData, IGroupNode, IListResponse, ILoggedUserInfo, ILogicNode, ILoginResponse, ILoginUserData, IMessageResponse, IMetadata, IOrderable, IPagination, IPaginationMeta, IProfileActionInfo, IProfilePermissionProvider, IProfileRoleInfo,
|
|
2018
|
+
export { ACTION_PERMISSIONS, AUTH_STATE_PROVIDER, AngularModule, ApiResourceService, ApiResourceService as ApiService, BRANCH_PERMISSIONS, BaseFormControl, BaseFormPage, BaseListPage, BaseUserSelectComponent, COMPANY_ACTION_PERMISSIONS, COMPANY_API_PROVIDER, COMPANY_PERMISSIONS, ContactTypeEnum, CookieService, EMAIL_CONFIG_PERMISSIONS, EMAIL_TEMPLATE_PERMISSIONS, EVENT_PARTICIPANT_PERMISSIONS, EVENT_PERMISSIONS, EditModeElementChangerDirective, FILE_PERMISSIONS, FILE_PROVIDER, FILE_TYPE_FILTERS, FOLDER_PERMISSIONS, FORM_PERMISSIONS, FileSelectorDialogComponent, FileUploaderComponent, FileUrlService, HasPermissionDirective, IconComponent, IconTypeEnum, IsEmptyImageDirective, LANGUAGE_PERMISSIONS, LazyMultiSelectComponent, LazySelectComponent, NOTIFICATION_PERMISSIONS, PERMISSIONS, PROFILE_PERMISSION_PROVIDER, PermissionValidatorService, PlatformService, PreventDefaultDirective, PrimeModule, ROLE_ACTION_PERMISSIONS, ROLE_PERMISSIONS, SHARED_MESSAGES, STORAGE_CONFIG_PERMISSIONS, TRANSLATION_KEY_PERMISSIONS, TRANSLATION_PERMISSIONS, TranslatePipe, USER_ACTION_PERMISSIONS, USER_LIST_PROVIDER, USER_PERMISSIONS, USER_PERMISSION_PROVIDER, USER_PROVIDER, USER_ROLE_PERMISSIONS, UserMultiSelectComponent, UserSelectComponent, allPermissionsGuard, anyPermissionGuard, checkScrollPagination, evaluateLogicNode, evaluatePermission, formatFileSize, getAcceptString, getFileIconClass, hasAllPermissions, hasAnyPermission, hasPermission, isFileTypeAllowed, permissionGuard, provideFallbackLocalization, provideValueAccessor, resolveTranslationModule };
|
|
2019
|
+
export type { ApiResponse, DeleteType, FilesResponseDto, GetFileUrlsFn, IActionNode, IActivatable, IApiService, IAuthStateProvider, IBaseEntity, IBulkMeta, IBulkResponse, ICompanyApiProvider, ICompanyBasicInfo, IDeleteData, IDropDown, IErrorResponse, IFileBasicInfo, IFileData, IFileProvider, IFileSelectFilter, IFileUploadOptions, IFilter, IFilterData, IFolderBasicInfo, IGroupNode, IListResponse, ILoggedUserInfo, ILogicNode, ILoginResponse, ILoginUserData, IMessageResponse, IMetadata, IOrderable, IPagination, IPaginationMeta, IProfileActionInfo, IProfilePermissionProvider, IProfileRoleInfo, IRefreshTokenResponse, IRequestMeta, IResolverModuleConfig, ISelectFilter, ISingleResponse, ISoftDeletable, ISort, IStorageConfigBasicInfo, ITimestampable, IUploadedFile, IUserBasicInfo, IUserBranchPayload, IUserBranchPermission, IUserCompanyPayload, IUserListAction, IUserListColumn, IUserListFilter, IUserListItem, IUserListProvider, IUserPermissionProvider, IUserProvider, IUserSelectFilter, IValidationError, LoadFilesFn, LoadUsersFn, PermissionCode, ScrollPaginationConfig, ServiceName, UploadFileFn, UploadMultipleFilesFn };
|