@flusys/ng-shared 1.0.0-beta → 1.1.0-beta
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 +308 -1
- package/fesm2022/flusys-ng-shared.mjs +166 -91
- package/fesm2022/flusys-ng-shared.mjs.map +1 -1
- package/package.json +2 -2
- package/types/flusys-ng-shared.d.ts +316 -36
|
@@ -5,18 +5,20 @@ import { isPlatformServer, CommonModule, NgOptimizedImage, NgComponentOutlet, Da
|
|
|
5
5
|
import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';
|
|
6
6
|
import { APP_CONFIG, getServiceUrl, ApiLoaderService } from '@flusys/ng-core';
|
|
7
7
|
import { of, firstValueFrom, skip, debounceTime, distinctUntilChanged, tap as tap$1, map as map$1 } from 'rxjs';
|
|
8
|
-
import { tap, catchError
|
|
8
|
+
import { map, tap, catchError } from 'rxjs/operators';
|
|
9
9
|
import * as i1$2 from '@angular/forms';
|
|
10
10
|
import { NgControl, FormsModule, ReactiveFormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
11
11
|
import { RouterOutlet, RouterLink, Router } from '@angular/router';
|
|
12
12
|
import { AutoCompleteModule } from 'primeng/autocomplete';
|
|
13
|
+
import { AvatarModule } from 'primeng/avatar';
|
|
13
14
|
import * as i1$3 from 'primeng/button';
|
|
14
15
|
import { ButtonModule } from 'primeng/button';
|
|
15
16
|
import { CardModule } from 'primeng/card';
|
|
16
|
-
import * as
|
|
17
|
+
import * as i1$1 from 'primeng/checkbox';
|
|
17
18
|
import { CheckboxModule } from 'primeng/checkbox';
|
|
19
|
+
import { ConfirmDialogModule } from 'primeng/confirmdialog';
|
|
18
20
|
import { DatePickerModule } from 'primeng/datepicker';
|
|
19
|
-
import * as
|
|
21
|
+
import * as i5 from 'primeng/dialog';
|
|
20
22
|
import { DialogModule } from 'primeng/dialog';
|
|
21
23
|
import { DividerModule } from 'primeng/divider';
|
|
22
24
|
import { FileUploadModule } from 'primeng/fileupload';
|
|
@@ -24,7 +26,7 @@ import { IconFieldModule } from 'primeng/iconfield';
|
|
|
24
26
|
import { ImageModule } from 'primeng/image';
|
|
25
27
|
import { InputIconModule } from 'primeng/inputicon';
|
|
26
28
|
import { InputNumberModule } from 'primeng/inputnumber';
|
|
27
|
-
import * as
|
|
29
|
+
import * as i2 from 'primeng/inputtext';
|
|
28
30
|
import { InputTextModule } from 'primeng/inputtext';
|
|
29
31
|
import { ListboxModule } from 'primeng/listbox';
|
|
30
32
|
import { MultiSelectModule } from 'primeng/multiselect';
|
|
@@ -39,17 +41,19 @@ import { RippleModule } from 'primeng/ripple';
|
|
|
39
41
|
import * as i3 from 'primeng/select';
|
|
40
42
|
import { SelectModule } from 'primeng/select';
|
|
41
43
|
import { SelectButtonModule } from 'primeng/selectbutton';
|
|
44
|
+
import { SkeletonModule } from 'primeng/skeleton';
|
|
42
45
|
import { SplitButtonModule } from 'primeng/splitbutton';
|
|
43
46
|
import { StepsModule } from 'primeng/steps';
|
|
44
47
|
import { TableModule } from 'primeng/table';
|
|
45
48
|
import { TabsModule } from 'primeng/tabs';
|
|
46
49
|
import { TagModule } from 'primeng/tag';
|
|
47
50
|
import { TextareaModule } from 'primeng/textarea';
|
|
51
|
+
import { ToastModule } from 'primeng/toast';
|
|
48
52
|
import { ToggleSwitchModule } from 'primeng/toggleswitch';
|
|
49
53
|
import { TooltipModule } from 'primeng/tooltip';
|
|
50
54
|
import { TreeTableModule } from 'primeng/treetable';
|
|
51
55
|
import { toSignal, toObservable } from '@angular/core/rxjs-interop';
|
|
52
|
-
import * as
|
|
56
|
+
import * as i3$1 from 'primeng/api';
|
|
53
57
|
import { MessageService } from 'primeng/api';
|
|
54
58
|
|
|
55
59
|
;
|
|
@@ -198,25 +202,54 @@ class FileUrlService {
|
|
|
198
202
|
}
|
|
199
203
|
/**
|
|
200
204
|
* Fetch file URLs from backend and update cache.
|
|
201
|
-
*
|
|
205
|
+
* Skips IDs already in cache to prevent duplicate calls.
|
|
206
|
+
* Returns Observable of fetched files (including cached ones).
|
|
202
207
|
*/
|
|
203
|
-
fetchFileUrls(fileIds) {
|
|
208
|
+
fetchFileUrls(fileIds, forceRefresh = false) {
|
|
204
209
|
if (!fileIds.length)
|
|
205
210
|
return of([]);
|
|
206
|
-
const
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
211
|
+
const cache = this.urlCache();
|
|
212
|
+
// Filter out IDs already in cache (unless force refresh)
|
|
213
|
+
const missingIds = forceRefresh
|
|
214
|
+
? fileIds
|
|
215
|
+
: fileIds.filter((id) => !cache.has(id));
|
|
216
|
+
// If all files are cached, return from cache
|
|
217
|
+
if (missingIds.length === 0) {
|
|
218
|
+
const cachedFiles = fileIds
|
|
219
|
+
.map((id) => cache.get(id))
|
|
220
|
+
.filter((f) => !!f);
|
|
221
|
+
return of(cachedFiles);
|
|
222
|
+
}
|
|
223
|
+
const requestDto = missingIds.map((id) => ({ id }));
|
|
224
|
+
return this.http
|
|
225
|
+
.post(`${getServiceUrl(this.appConfig, 'storage')}/file-manager/get-files`, requestDto)
|
|
226
|
+
.pipe(map((response) => response.data ?? []), tap((files) => {
|
|
227
|
+
// Update cache with new files
|
|
228
|
+
const newCache = new Map(this.urlCache());
|
|
229
|
+
files.forEach((file) => newCache.set(file.id, file));
|
|
230
|
+
this.urlCache.set(newCache);
|
|
231
|
+
}), map(() => {
|
|
232
|
+
// Return all requested files (cached + newly fetched)
|
|
233
|
+
const allCache = this.urlCache();
|
|
234
|
+
return fileIds
|
|
235
|
+
.map((id) => allCache.get(id))
|
|
236
|
+
.filter((f) => !!f);
|
|
212
237
|
}), catchError(() => of([])));
|
|
213
238
|
}
|
|
214
239
|
/**
|
|
215
240
|
* Fetch a single file URL.
|
|
241
|
+
* Uses cache if available to prevent duplicate calls.
|
|
216
242
|
* Returns Observable of file info or null if not found.
|
|
217
243
|
*/
|
|
218
|
-
fetchSingleFileUrl(fileId) {
|
|
219
|
-
|
|
244
|
+
fetchSingleFileUrl(fileId, forceRefresh = false) {
|
|
245
|
+
// Return from cache immediately if available
|
|
246
|
+
if (!forceRefresh) {
|
|
247
|
+
const cached = this.urlCache().get(fileId);
|
|
248
|
+
if (cached) {
|
|
249
|
+
return of(cached);
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
return this.fetchFileUrls([fileId], forceRefresh).pipe(map((files) => files[0] ?? null));
|
|
220
253
|
}
|
|
221
254
|
/**
|
|
222
255
|
* Clear the URL cache.
|
|
@@ -684,109 +717,121 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImpor
|
|
|
684
717
|
|
|
685
718
|
class PrimeModule {
|
|
686
719
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: PrimeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
687
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.1.3", ngImport: i0, type: PrimeModule, exports: [
|
|
688
|
-
|
|
689
|
-
SelectButtonModule,
|
|
690
|
-
PasswordModule,
|
|
720
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.1.3", ngImport: i0, type: PrimeModule, exports: [AutoCompleteModule,
|
|
721
|
+
AvatarModule,
|
|
691
722
|
ButtonModule,
|
|
692
|
-
|
|
723
|
+
CardModule,
|
|
693
724
|
CheckboxModule,
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
TableModule,
|
|
699
|
-
InputNumberModule,
|
|
700
|
-
TextareaModule,
|
|
701
|
-
ProgressBarModule,
|
|
725
|
+
ConfirmDialogModule,
|
|
726
|
+
DatePickerModule,
|
|
727
|
+
DialogModule,
|
|
728
|
+
DividerModule,
|
|
702
729
|
FileUploadModule,
|
|
703
|
-
CardModule,
|
|
704
|
-
SelectModule,
|
|
705
|
-
InputIconModule,
|
|
706
730
|
IconFieldModule,
|
|
707
|
-
|
|
731
|
+
ImageModule,
|
|
732
|
+
InputIconModule,
|
|
733
|
+
InputNumberModule,
|
|
734
|
+
InputTextModule,
|
|
708
735
|
ListboxModule,
|
|
736
|
+
MultiSelectModule,
|
|
737
|
+
PaginatorModule,
|
|
738
|
+
PanelModule,
|
|
739
|
+
PasswordModule,
|
|
740
|
+
PopoverModule,
|
|
741
|
+
ProgressBarModule,
|
|
709
742
|
RadioButtonModule,
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
743
|
+
RippleModule,
|
|
744
|
+
SelectButtonModule,
|
|
745
|
+
SelectModule,
|
|
746
|
+
SkeletonModule,
|
|
713
747
|
SplitButtonModule,
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
AutoCompleteModule,
|
|
748
|
+
StepsModule,
|
|
749
|
+
TableModule,
|
|
717
750
|
TabsModule,
|
|
718
|
-
DialogModule,
|
|
719
|
-
TreeTableModule] });
|
|
720
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: PrimeModule, imports: [InputTextModule,
|
|
721
751
|
TagModule,
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
752
|
+
TextareaModule,
|
|
753
|
+
ToastModule,
|
|
754
|
+
ToggleSwitchModule,
|
|
725
755
|
TooltipModule,
|
|
756
|
+
TreeTableModule] });
|
|
757
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: PrimeModule, imports: [AutoCompleteModule,
|
|
758
|
+
AvatarModule,
|
|
759
|
+
ButtonModule,
|
|
760
|
+
CardModule,
|
|
726
761
|
CheckboxModule,
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
TableModule,
|
|
732
|
-
InputNumberModule,
|
|
733
|
-
TextareaModule,
|
|
734
|
-
ProgressBarModule,
|
|
762
|
+
ConfirmDialogModule,
|
|
763
|
+
DatePickerModule,
|
|
764
|
+
DialogModule,
|
|
765
|
+
DividerModule,
|
|
735
766
|
FileUploadModule,
|
|
736
|
-
CardModule,
|
|
737
|
-
SelectModule,
|
|
738
|
-
InputIconModule,
|
|
739
767
|
IconFieldModule,
|
|
740
|
-
|
|
768
|
+
ImageModule,
|
|
769
|
+
InputIconModule,
|
|
770
|
+
InputNumberModule,
|
|
771
|
+
InputTextModule,
|
|
741
772
|
ListboxModule,
|
|
773
|
+
MultiSelectModule,
|
|
774
|
+
PaginatorModule,
|
|
775
|
+
PanelModule,
|
|
776
|
+
PasswordModule,
|
|
777
|
+
PopoverModule,
|
|
778
|
+
ProgressBarModule,
|
|
742
779
|
RadioButtonModule,
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
780
|
+
RippleModule,
|
|
781
|
+
SelectButtonModule,
|
|
782
|
+
SelectModule,
|
|
783
|
+
SkeletonModule,
|
|
746
784
|
SplitButtonModule,
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
AutoCompleteModule,
|
|
785
|
+
StepsModule,
|
|
786
|
+
TableModule,
|
|
750
787
|
TabsModule,
|
|
751
|
-
|
|
788
|
+
TagModule,
|
|
789
|
+
TextareaModule,
|
|
790
|
+
ToastModule,
|
|
791
|
+
ToggleSwitchModule,
|
|
792
|
+
TooltipModule,
|
|
752
793
|
TreeTableModule] });
|
|
753
794
|
}
|
|
754
795
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: PrimeModule, decorators: [{
|
|
755
796
|
type: NgModule,
|
|
756
797
|
args: [{
|
|
757
798
|
exports: [
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
SelectButtonModule,
|
|
761
|
-
PasswordModule,
|
|
799
|
+
AutoCompleteModule,
|
|
800
|
+
AvatarModule,
|
|
762
801
|
ButtonModule,
|
|
763
|
-
|
|
802
|
+
CardModule,
|
|
764
803
|
CheckboxModule,
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
TableModule,
|
|
770
|
-
InputNumberModule,
|
|
771
|
-
TextareaModule,
|
|
772
|
-
ProgressBarModule,
|
|
804
|
+
ConfirmDialogModule,
|
|
805
|
+
DatePickerModule,
|
|
806
|
+
DialogModule,
|
|
807
|
+
DividerModule,
|
|
773
808
|
FileUploadModule,
|
|
774
|
-
CardModule,
|
|
775
|
-
SelectModule,
|
|
776
|
-
InputIconModule,
|
|
777
809
|
IconFieldModule,
|
|
778
|
-
|
|
810
|
+
ImageModule,
|
|
811
|
+
InputIconModule,
|
|
812
|
+
InputNumberModule,
|
|
813
|
+
InputTextModule,
|
|
779
814
|
ListboxModule,
|
|
815
|
+
MultiSelectModule,
|
|
816
|
+
PaginatorModule,
|
|
817
|
+
PanelModule,
|
|
818
|
+
PasswordModule,
|
|
819
|
+
PopoverModule,
|
|
820
|
+
ProgressBarModule,
|
|
780
821
|
RadioButtonModule,
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
822
|
+
RippleModule,
|
|
823
|
+
SelectButtonModule,
|
|
824
|
+
SelectModule,
|
|
825
|
+
SkeletonModule,
|
|
784
826
|
SplitButtonModule,
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
AutoCompleteModule,
|
|
827
|
+
StepsModule,
|
|
828
|
+
TableModule,
|
|
788
829
|
TabsModule,
|
|
789
|
-
|
|
830
|
+
TagModule,
|
|
831
|
+
TextareaModule,
|
|
832
|
+
ToastModule,
|
|
833
|
+
ToggleSwitchModule,
|
|
834
|
+
TooltipModule,
|
|
790
835
|
TreeTableModule,
|
|
791
836
|
],
|
|
792
837
|
}]
|
|
@@ -1348,7 +1393,7 @@ class LazyMultiSelectComponent extends BaseFormControl {
|
|
|
1348
1393
|
this.value.set([]);
|
|
1349
1394
|
}
|
|
1350
1395
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: LazyMultiSelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1351
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.3", type: LazyMultiSelectComponent, isStandalone: true, selector: "lib-lazy-multi-select", inputs: { placeHolder: { classPropertyName: "placeHolder", publicName: "placeHolder", isSignal: true, isRequired: false, transformFunction: null }, isEditMode: { classPropertyName: "isEditMode", publicName: "isEditMode", isSignal: true, isRequired: true, transformFunction: null }, isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: true, isRequired: true, transformFunction: null }, total: { classPropertyName: "total", publicName: "total", isSignal: true, isRequired: true, transformFunction: null }, pagination: { classPropertyName: "pagination", publicName: "pagination", isSignal: true, isRequired: true, transformFunction: null }, selectDataList: { classPropertyName: "selectDataList", publicName: "selectDataList", isSignal: true, isRequired: true, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", onSearch: "onSearch", onPagination: "onPagination" }, host: { listeners: { "document:click": "handleDocumentClick($event)" } }, providers: [provideValueAccessor(LazyMultiSelectComponent)], viewQueries: [{ propertyName: "multiScrollContainer", first: true, predicate: ["multiScrollContainer"], descendants: true, isSignal: true }, { propertyName: "pSelectRef", first: true, predicate: ["pSelect"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"p-select w-full\" #pSelect (click)=\"onSelectClick($event)\"\n [class.p-disabled]=\"disabled()\">\n @if(selectedValueDisplay()){\n <span class=\"p-select-label\">{{selectedValueDisplay()}}</span>\n }@else {\n <span class=\"p-select-label p-placeholder\">{{placeHolder()}}</span>\n }\n <span class=\"p-select-clear-icon\" (click)=\"clear($event)\"><i class=\"pi pi-times\"></i></span>\n <div class=\"p-select-dropdown\">\n <span class=\"p-select-dropdown-icon flex items-center\">\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\n data-p-icon=\"chevron-down\" class=\"p-multiselect-dropdown-icon p-icon ng-star-inserted\"\n data-pc-section=\"triggericon\" aria-hidden=\"true\" pc75=\"\">\n <path\n d=\"M7.01744 10.398C6.91269 10.3985 6.8089 10.378 6.71215 10.3379C6.61541 10.2977 6.52766 10.2386 6.45405 10.1641L1.13907 4.84913C1.03306 4.69404 0.985221 4.5065 1.00399 4.31958C1.02276 4.13266 1.10693 3.95838 1.24166 3.82747C1.37639 3.69655 1.55301 3.61742 1.74039 3.60402C1.92777 3.59062 2.11386 3.64382 2.26584 3.75424L7.01744 8.47394L11.769 3.75424C11.9189 3.65709 12.097 3.61306 12.2748 3.62921C12.4527 3.64535 12.6199 3.72073 12.7498 3.84328C12.8797 3.96582 12.9647 4.12842 12.9912 4.30502C13.0177 4.48162 12.9841 4.662 12.8958 4.81724L7.58083 10.1322C7.50996 10.2125 7.42344 10.2775 7.32656 10.3232C7.22968 10.3689 7.12449 10.3944 7.01744 10.398Z\"\n fill=\"currentColor\"></path>\n </svg>\n </span>\n </div>\n @if(openOptions()){\n <div class=\"p-select-overlay\" (click)=\"onOverlayClick($event)\">\n <div class=\"p-select-header flex flex-row gap-2 items-center\">\n <p-checkbox binary=\"true\" (onChange)=\"changeSelectAll($event)\" [ngModel]=\"isSelectAll()\" [disabled]=\"disabled()\"/>\n <input type=\"text\" pInputText class=\"w-full\" [ngModel]=\"searchTerm()\"\n (ngModelChange)=\"searchTerm.set($event)\" [ngModelOptions]=\"{ standalone: true }\"\n placeholder=\"Search...\" />\n </div>\n <div class=\"p-select-list-container\" (scroll)=\"onScroll($event)\">\n <ul class=\"p-select-list\">\n @for (data of selectDataList(); track key(data); let i = $index) {\n <li class=\"p-select-option flex flex-row gap-2 items-center\"\n [ngClass]=\"{ 'p-select-option-selected': isSelected(data) }\">\n <p-checkbox binary=\"true\" (onChange)=\"selectValue($event,data)\" [ngModel]=\"isSelected(data)\" [disabled]=\"disabled()\" />\n <span>{{data.label}}</span>\n </li>\n }\n </ul>\n </div>\n </div>\n }\n</div>", styles: [".p-select-overlay{top:33px;z-index:1004;transform-origin:center top;margin-top:2px}.p-select-option:hover{background:var(--p-select-option-focus-background);color:var(--p-select-option-focus-color)}.p-select-list-container{max-height:200px}.p-select-option.p-select-option-selected{background:var(--p-select-option-selected-background);color:var(--p-select-option-selected-color)}.p-select-option.p-select-option-selected:hover{background:var(--p-select-option-selected-focus-background);color:var(--p-select-option-selected-focus-color)}\n"], dependencies: [{ kind: "ngmodule", type: PrimeModule }, { kind: "
|
|
1396
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.3", type: LazyMultiSelectComponent, isStandalone: true, selector: "lib-lazy-multi-select", inputs: { placeHolder: { classPropertyName: "placeHolder", publicName: "placeHolder", isSignal: true, isRequired: false, transformFunction: null }, isEditMode: { classPropertyName: "isEditMode", publicName: "isEditMode", isSignal: true, isRequired: true, transformFunction: null }, isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: true, isRequired: true, transformFunction: null }, total: { classPropertyName: "total", publicName: "total", isSignal: true, isRequired: true, transformFunction: null }, pagination: { classPropertyName: "pagination", publicName: "pagination", isSignal: true, isRequired: true, transformFunction: null }, selectDataList: { classPropertyName: "selectDataList", publicName: "selectDataList", isSignal: true, isRequired: true, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", onSearch: "onSearch", onPagination: "onPagination" }, host: { listeners: { "document:click": "handleDocumentClick($event)" } }, providers: [provideValueAccessor(LazyMultiSelectComponent)], viewQueries: [{ propertyName: "multiScrollContainer", first: true, predicate: ["multiScrollContainer"], descendants: true, isSignal: true }, { propertyName: "pSelectRef", first: true, predicate: ["pSelect"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"p-select w-full\" #pSelect (click)=\"onSelectClick($event)\"\n [class.p-disabled]=\"disabled()\">\n @if(selectedValueDisplay()){\n <span class=\"p-select-label\">{{selectedValueDisplay()}}</span>\n }@else {\n <span class=\"p-select-label p-placeholder\">{{placeHolder()}}</span>\n }\n <span class=\"p-select-clear-icon\" (click)=\"clear($event)\"><i class=\"pi pi-times\"></i></span>\n <div class=\"p-select-dropdown\">\n <span class=\"p-select-dropdown-icon flex items-center\">\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\n data-p-icon=\"chevron-down\" class=\"p-multiselect-dropdown-icon p-icon ng-star-inserted\"\n data-pc-section=\"triggericon\" aria-hidden=\"true\" pc75=\"\">\n <path\n d=\"M7.01744 10.398C6.91269 10.3985 6.8089 10.378 6.71215 10.3379C6.61541 10.2977 6.52766 10.2386 6.45405 10.1641L1.13907 4.84913C1.03306 4.69404 0.985221 4.5065 1.00399 4.31958C1.02276 4.13266 1.10693 3.95838 1.24166 3.82747C1.37639 3.69655 1.55301 3.61742 1.74039 3.60402C1.92777 3.59062 2.11386 3.64382 2.26584 3.75424L7.01744 8.47394L11.769 3.75424C11.9189 3.65709 12.097 3.61306 12.2748 3.62921C12.4527 3.64535 12.6199 3.72073 12.7498 3.84328C12.8797 3.96582 12.9647 4.12842 12.9912 4.30502C13.0177 4.48162 12.9841 4.662 12.8958 4.81724L7.58083 10.1322C7.50996 10.2125 7.42344 10.2775 7.32656 10.3232C7.22968 10.3689 7.12449 10.3944 7.01744 10.398Z\"\n fill=\"currentColor\"></path>\n </svg>\n </span>\n </div>\n @if(openOptions()){\n <div class=\"p-select-overlay\" (click)=\"onOverlayClick($event)\">\n <div class=\"p-select-header flex flex-row gap-2 items-center\">\n <p-checkbox binary=\"true\" (onChange)=\"changeSelectAll($event)\" [ngModel]=\"isSelectAll()\" [disabled]=\"disabled()\"/>\n <input type=\"text\" pInputText class=\"w-full\" [ngModel]=\"searchTerm()\"\n (ngModelChange)=\"searchTerm.set($event)\" [ngModelOptions]=\"{ standalone: true }\"\n placeholder=\"Search...\" />\n </div>\n <div class=\"p-select-list-container\" (scroll)=\"onScroll($event)\">\n <ul class=\"p-select-list\">\n @for (data of selectDataList(); track key(data); let i = $index) {\n <li class=\"p-select-option flex flex-row gap-2 items-center\"\n [ngClass]=\"{ 'p-select-option-selected': isSelected(data) }\">\n <p-checkbox binary=\"true\" (onChange)=\"selectValue($event,data)\" [ngModel]=\"isSelected(data)\" [disabled]=\"disabled()\" />\n <span>{{data.label}}</span>\n </li>\n }\n </ul>\n </div>\n </div>\n }\n</div>", styles: [".p-select-overlay{top:33px;z-index:1004;transform-origin:center top;margin-top:2px}.p-select-option:hover{background:var(--p-select-option-focus-background);color:var(--p-select-option-focus-color)}.p-select-list-container{max-height:200px}.p-select-option.p-select-option-selected{background:var(--p-select-option-selected-background);color:var(--p-select-option-selected-color)}.p-select-option.p-select-option-selected:hover{background:var(--p-select-option-selected-focus-background);color:var(--p-select-option-selected-focus-color)}\n"], dependencies: [{ kind: "ngmodule", type: PrimeModule }, { kind: "component", type: i1$1.Checkbox, selector: "p-checkbox, p-checkBox, p-check-box", inputs: ["hostName", "value", "binary", "ariaLabelledBy", "ariaLabel", "tabindex", "inputId", "inputStyle", "styleClass", "inputClass", "indeterminate", "formControl", "checkboxIcon", "readonly", "autofocus", "trueValue", "falseValue", "variant", "size"], outputs: ["onChange", "onFocus", "onBlur"] }, { kind: "directive", type: i2.InputText, selector: "[pInputText]", inputs: ["hostName", "ptInputText", "pInputTextPT", "pInputTextUnstyled", "pSize", "variant", "fluid", "invalid"] }, { kind: "ngmodule", type: AngularModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1352
1397
|
}
|
|
1353
1398
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: LazyMultiSelectComponent, decorators: [{
|
|
1354
1399
|
type: Component,
|
|
@@ -1437,7 +1482,7 @@ class LazySelectComponent extends BaseFormControl {
|
|
|
1437
1482
|
this.markAsTouched();
|
|
1438
1483
|
}
|
|
1439
1484
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: LazySelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1440
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.1.3", type: LazySelectComponent, isStandalone: true, selector: "lib-lazy-select", inputs: { placeHolder: { classPropertyName: "placeHolder", publicName: "placeHolder", isSignal: true, isRequired: false, transformFunction: null }, optionLabel: { classPropertyName: "optionLabel", publicName: "optionLabel", isSignal: true, isRequired: true, transformFunction: null }, optionValue: { classPropertyName: "optionValue", publicName: "optionValue", isSignal: true, isRequired: true, transformFunction: null }, isEditMode: { classPropertyName: "isEditMode", publicName: "isEditMode", isSignal: true, isRequired: true, transformFunction: null }, isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: true, isRequired: true, transformFunction: null }, total: { classPropertyName: "total", publicName: "total", isSignal: true, isRequired: true, transformFunction: null }, pagination: { classPropertyName: "pagination", publicName: "pagination", isSignal: true, isRequired: true, transformFunction: null }, selectDataList: { classPropertyName: "selectDataList", publicName: "selectDataList", isSignal: true, isRequired: true, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", onSearch: "onSearch", onPagination: "onPagination" }, providers: [provideValueAccessor(LazySelectComponent)], viewQueries: [{ propertyName: "scrollContainer", first: true, predicate: ["scrollContainer"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div #scrollContainer class=\"lib-scroll-container\">\n <p-select\n [options]=\"selectDataList()\"\n [(ngModel)]=\"value\"\n [optionLabel]=\"optionLabel()\"\n [optionValue]=\"optionValue()\"\n [filter]=\"true\"\n [showClear]=\"true\"\n [placeholder]=\"placeHolder()\"\n [disabled]=\"disabled()\"\n class=\"w-full\"\n appEditModeElementChanger\n [isEditMode]=\"isEditMode()\"\n (click)=\"showPanel()\"\n (onBlur)=\"onBlur()\">\n <ng-template let-filter #filter>\n <input\n pInputText\n [ngModel]=\"searchTerm()\"\n (ngModelChange)=\"searchTerm.set($event)\"\n [ngModelOptions]=\"{standalone:true}\"\n class=\"w-full\" />\n </ng-template>\n <ng-template #selectedItem let-selectedOption>\n {{ selectedOption[optionLabel()] }}\n </ng-template>\n <ng-template let-item #item>\n {{ item[optionLabel()] }}\n </ng-template>\n </p-select>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: AngularModule }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: PrimeModule }, { kind: "directive", type:
|
|
1485
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.1.3", type: LazySelectComponent, isStandalone: true, selector: "lib-lazy-select", inputs: { placeHolder: { classPropertyName: "placeHolder", publicName: "placeHolder", isSignal: true, isRequired: false, transformFunction: null }, optionLabel: { classPropertyName: "optionLabel", publicName: "optionLabel", isSignal: true, isRequired: true, transformFunction: null }, optionValue: { classPropertyName: "optionValue", publicName: "optionValue", isSignal: true, isRequired: true, transformFunction: null }, isEditMode: { classPropertyName: "isEditMode", publicName: "isEditMode", isSignal: true, isRequired: true, transformFunction: null }, isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: true, isRequired: true, transformFunction: null }, total: { classPropertyName: "total", publicName: "total", isSignal: true, isRequired: true, transformFunction: null }, pagination: { classPropertyName: "pagination", publicName: "pagination", isSignal: true, isRequired: true, transformFunction: null }, selectDataList: { classPropertyName: "selectDataList", publicName: "selectDataList", isSignal: true, isRequired: true, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", onSearch: "onSearch", onPagination: "onPagination" }, providers: [provideValueAccessor(LazySelectComponent)], viewQueries: [{ propertyName: "scrollContainer", first: true, predicate: ["scrollContainer"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div #scrollContainer class=\"lib-scroll-container\">\n <p-select\n [options]=\"selectDataList()\"\n [(ngModel)]=\"value\"\n [optionLabel]=\"optionLabel()\"\n [optionValue]=\"optionValue()\"\n [filter]=\"true\"\n [showClear]=\"true\"\n [placeholder]=\"placeHolder()\"\n [disabled]=\"disabled()\"\n class=\"w-full\"\n appEditModeElementChanger\n [isEditMode]=\"isEditMode()\"\n (click)=\"showPanel()\"\n (onBlur)=\"onBlur()\">\n <ng-template let-filter #filter>\n <input\n pInputText\n [ngModel]=\"searchTerm()\"\n (ngModelChange)=\"searchTerm.set($event)\"\n [ngModelOptions]=\"{standalone:true}\"\n class=\"w-full\" />\n </ng-template>\n <ng-template #selectedItem let-selectedOption>\n {{ selectedOption[optionLabel()] }}\n </ng-template>\n <ng-template let-item #item>\n {{ item[optionLabel()] }}\n </ng-template>\n </p-select>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: AngularModule }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: PrimeModule }, { kind: "directive", type: i2.InputText, selector: "[pInputText]", inputs: ["hostName", "ptInputText", "pInputTextPT", "pInputTextUnstyled", "pSize", "variant", "fluid", "invalid"] }, { kind: "component", type: i3.Select, selector: "p-select", inputs: ["id", "scrollHeight", "filter", "panelStyle", "styleClass", "panelStyleClass", "readonly", "editable", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "filterValue", "options", "appendTo", "motionOptions"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "directive", type: EditModeElementChangerDirective, selector: "[appEditModeElementChanger]", inputs: ["isEditMode"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1441
1486
|
}
|
|
1442
1487
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: LazySelectComponent, decorators: [{
|
|
1443
1488
|
type: Component,
|
|
@@ -1513,6 +1558,36 @@ const AUTH_STATE_PROVIDER = new InjectionToken('AUTH_STATE_PROVIDER', {
|
|
|
1513
1558
|
throw new Error('AUTH_STATE_PROVIDER not configured. Please provide an implementation in app.config.ts');
|
|
1514
1559
|
},
|
|
1515
1560
|
});
|
|
1561
|
+
/**
|
|
1562
|
+
* Profile Permission Provider Token
|
|
1563
|
+
*
|
|
1564
|
+
* Provides user permission data for profile display.
|
|
1565
|
+
* Optional - if not configured, profile permissions section is hidden.
|
|
1566
|
+
* Use with `inject(PROFILE_PERMISSION_PROVIDER, { optional: true })`.
|
|
1567
|
+
*/
|
|
1568
|
+
const PROFILE_PERMISSION_PROVIDER = new InjectionToken('PROFILE_PERMISSION_PROVIDER');
|
|
1569
|
+
/**
|
|
1570
|
+
* Profile Upload Provider Token
|
|
1571
|
+
*
|
|
1572
|
+
* Provides file upload functionality for profile pictures.
|
|
1573
|
+
* Optional - if not configured or storage not enabled, upload section is hidden.
|
|
1574
|
+
* Use with `inject(PROFILE_UPLOAD_PROVIDER, { optional: true })`.
|
|
1575
|
+
*/
|
|
1576
|
+
const PROFILE_UPLOAD_PROVIDER = new InjectionToken('PROFILE_UPLOAD_PROVIDER');
|
|
1577
|
+
/**
|
|
1578
|
+
* User List Provider Token
|
|
1579
|
+
*
|
|
1580
|
+
* Provides extra actions, columns, and data enrichment for user list.
|
|
1581
|
+
* Optional - if not configured, default user list behavior is used.
|
|
1582
|
+
* Use with `inject(USER_LIST_PROVIDER, { optional: true })`.
|
|
1583
|
+
*
|
|
1584
|
+
* @example
|
|
1585
|
+
* // In app.config.ts
|
|
1586
|
+
* providers: [
|
|
1587
|
+
* { provide: USER_LIST_PROVIDER, useClass: MyUserListProvider },
|
|
1588
|
+
* ]
|
|
1589
|
+
*/
|
|
1590
|
+
const USER_LIST_PROVIDER = new InjectionToken('USER_LIST_PROVIDER');
|
|
1516
1591
|
|
|
1517
1592
|
const DEFAULT_PAGE_SIZE$2 = 20;
|
|
1518
1593
|
/**
|
|
@@ -2591,7 +2666,7 @@ class FileSelectorDialogComponent {
|
|
|
2591
2666
|
></button>
|
|
2592
2667
|
</ng-template>
|
|
2593
2668
|
</p-dialog>
|
|
2594
|
-
`, isInline: true, styles: [".file-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1rem;max-height:400px;overflow-y:auto;padding:.5rem}.file-card{border:2px solid var(--surface-border);border-radius:var(--border-radius);cursor:pointer;transition:all .2s;overflow:hidden}.file-card:hover:not(.disabled){border-color:var(--primary-color)}.file-card.selected{border-color:var(--primary-color);background:var(--primary-50)}.file-card.disabled{opacity:.5;cursor:not-allowed}.file-preview{position:relative;height:100px;display:flex;align-items:center;justify-content:center;background:var(--surface-ground)}.preview-image{width:100%;height:100%;object-fit:cover}.preview-icon{font-size:3rem;color:var(--text-color-secondary)}.selected-overlay{position:absolute;inset:0;background:rgba(var(--primary-color-rgb),.3);display:flex;align-items:center;justify-content:center}.selected-overlay i{font-size:2rem;color:var(--primary-color);background:#fff;border-radius:50%;padding:.5rem}.file-info{padding:.5rem;text-align:center}.file-name{display:block;font-size:.875rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-size{display:block;font-size:.75rem;color:var(--text-color-secondary)}\n"], dependencies: [{ kind: "ngmodule", type: AngularModule }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: IsEmptyImageDirective, selector: "img", inputs: ["src"] }, { kind: "ngmodule", type: PrimeModule }, { kind: "directive", type:
|
|
2669
|
+
`, isInline: true, styles: [".file-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1rem;max-height:400px;overflow-y:auto;padding:.5rem}.file-card{border:2px solid var(--surface-border);border-radius:var(--border-radius);cursor:pointer;transition:all .2s;overflow:hidden}.file-card:hover:not(.disabled){border-color:var(--primary-color)}.file-card.selected{border-color:var(--primary-color);background:var(--primary-50)}.file-card.disabled{opacity:.5;cursor:not-allowed}.file-preview{position:relative;height:100px;display:flex;align-items:center;justify-content:center;background:var(--surface-ground)}.preview-image{width:100%;height:100%;object-fit:cover}.preview-icon{font-size:3rem;color:var(--text-color-secondary)}.selected-overlay{position:absolute;inset:0;background:rgba(var(--primary-color-rgb),.3);display:flex;align-items:center;justify-content:center}.selected-overlay i{font-size:2rem;color:var(--primary-color);background:#fff;border-radius:50%;padding:.5rem}.file-info{padding:.5rem;text-align:center}.file-name{display:block;font-size:.875rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-size{display:block;font-size:.75rem;color:var(--text-color-secondary)}\n"], dependencies: [{ kind: "ngmodule", type: AngularModule }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: IsEmptyImageDirective, selector: "img", inputs: ["src"] }, { kind: "ngmodule", type: PrimeModule }, { kind: "directive", type: i3$1.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "directive", type: i1$3.ButtonDirective, selector: "[pButton]", inputs: ["ptButtonDirective", "pButtonPT", "pButtonUnstyled", "hostName", "text", "plain", "raised", "size", "outlined", "rounded", "iconPos", "loadingIcon", "fluid", "label", "icon", "loading", "buttonProps", "severity"] }, { kind: "component", type: i5.Dialog, selector: "p-dialog", inputs: ["hostName", "header", "draggable", "resizable", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "breakpoints", "styleClass", "maskStyleClass", "maskStyle", "showHeader", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "maskMotionOptions", "motionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "closeButtonProps", "maximizeButtonProps", "visible", "style", "position", "role", "appendTo", "content", "contentTemplate", "footerTemplate", "closeIconTemplate", "maximizeIconTemplate", "minimizeIconTemplate", "headlessTemplate"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { kind: "directive", type: i2.InputText, selector: "[pInputText]", inputs: ["hostName", "ptInputText", "pInputTextPT", "pInputTextUnstyled", "pSize", "variant", "fluid", "invalid"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2595
2670
|
}
|
|
2596
2671
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: FileSelectorDialogComponent, decorators: [{
|
|
2597
2672
|
type: Component,
|
|
@@ -2829,5 +2904,5 @@ function allPermissionsGuard(permissions, redirectTo = '/') {
|
|
|
2829
2904
|
* Generated bundle index. Do not edit.
|
|
2830
2905
|
*/
|
|
2831
2906
|
|
|
2832
|
-
export { AUTH_STATE_PROVIDER, AngularModule, ApiResourceService, ApiResourceService as ApiService, COMPANY_API_PROVIDER, ContactTypeEnum, CookieService, EditModeElementChangerDirective, FILE_TYPE_FILTERS, FileSelectorDialogComponent, FileUploaderComponent, FileUrlService, HasPermissionDirective, IconComponent, IconTypeEnum, IsEmptyImageDirective, LazyMultiSelectComponent, LazySelectComponent, PermissionValidatorService, PlatformService, PreventDefaultDirective, PrimeModule, USER_PERMISSION_PROVIDER, USER_PROVIDER, UserMultiSelectComponent, UserSelectComponent, allPermissionsGuard, anyPermissionGuard, evaluateLogicNode, evaluatePermission, formatFileSize, getAcceptString, getFileIconClass, hasAllPermissions, hasAnyPermission, isFileTypeAllowed, permissionGuard };
|
|
2907
|
+
export { AUTH_STATE_PROVIDER, AngularModule, ApiResourceService, ApiResourceService as ApiService, COMPANY_API_PROVIDER, ContactTypeEnum, CookieService, EditModeElementChangerDirective, FILE_TYPE_FILTERS, FileSelectorDialogComponent, FileUploaderComponent, FileUrlService, HasPermissionDirective, IconComponent, IconTypeEnum, IsEmptyImageDirective, LazyMultiSelectComponent, LazySelectComponent, PROFILE_PERMISSION_PROVIDER, PROFILE_UPLOAD_PROVIDER, PermissionValidatorService, PlatformService, PreventDefaultDirective, PrimeModule, USER_LIST_PROVIDER, USER_PERMISSION_PROVIDER, USER_PROVIDER, UserMultiSelectComponent, UserSelectComponent, allPermissionsGuard, anyPermissionGuard, evaluateLogicNode, evaluatePermission, formatFileSize, getAcceptString, getFileIconClass, hasAllPermissions, hasAnyPermission, isFileTypeAllowed, permissionGuard };
|
|
2833
2908
|
//# sourceMappingURL=flusys-ng-shared.mjs.map
|