@fxlt/common-ui 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -62
- package/components.css +10 -1
- package/dialogs.css +45 -91
- package/fesm2022/fxlt-common-ui.mjs +371 -92
- package/fesm2022/fxlt-common-ui.mjs.map +1 -1
- package/index.d.ts +104 -34
- package/package.json +4 -2
- package/src/lib/styles/components.css +10 -1
- package/src/lib/styles/dialogs.css +45 -91
- package/src/lib/ui/components/button/button.component.html +1 -1
- package/src/lib/ui/components/checkbox/checkbox.component.html +6 -7
- package/src/lib/ui/components/input/input.component.html +2 -0
- package/src/lib/ui/components/rich-text-area/rich-text-area.component.html +3 -0
- package/src/lib/ui/components/select/select.component.css +22 -0
- package/src/lib/ui/components/select/select.component.html +14 -1
- package/src/lib/ui/components/skeleton-table-loading/skeleton-table-loading.component.html +21 -0
- package/src/lib/ui/components/switch/switch.component.html +1 -1
- package/src/lib/ui/components/toast/toast.component.html +1 -1
- package/src/lib/ui/dialogs/confirmation/confirmation.component.html +4 -4
package/index.d.ts
CHANGED
|
@@ -1,37 +1,37 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { OnDestroy, Injector, ApplicationRef, OnInit, AfterViewInit, ChangeDetectorRef, Type, EventEmitter, ModuleWithProviders, TemplateRef, ViewContainerRef, AfterContentInit, QueryList,
|
|
3
|
-
import * as
|
|
2
|
+
import { OnDestroy, Injector, ApplicationRef, OnInit, AfterViewInit, ChangeDetectorRef, Type, EventEmitter, ModuleWithProviders, TemplateRef, ViewContainerRef, ElementRef, AfterContentInit, QueryList, Renderer2, OnChanges } from '@angular/core';
|
|
3
|
+
import * as i34 from '@angular/material/paginator';
|
|
4
4
|
import { MatPaginator } from '@angular/material/paginator';
|
|
5
|
-
import * as
|
|
5
|
+
import * as i35 from '@angular/material/table';
|
|
6
6
|
import { MatTableDataSource, MatTable } from '@angular/material/table';
|
|
7
7
|
import { HttpClient, HttpErrorResponse, HttpInterceptor, HttpRequest, HttpHandler, HttpEvent } from '@angular/common/http';
|
|
8
|
-
import * as
|
|
9
|
-
import {
|
|
10
|
-
import * as
|
|
8
|
+
import * as rxjs from 'rxjs';
|
|
9
|
+
import { Subject, Observable } from 'rxjs';
|
|
10
|
+
import * as i24 from '@angular/forms';
|
|
11
|
+
import { NgForm, NgControl, ControlValueAccessor, ValidationErrors } from '@angular/forms';
|
|
12
|
+
import * as i37 from '@angular/material/dialog';
|
|
11
13
|
import { MatDialogRef, MatDialog } from '@angular/material/dialog';
|
|
12
14
|
import { TranslateHttpLoader } from '@ngx-translate/http-loader';
|
|
13
15
|
import * as i1 from '@ngx-translate/core';
|
|
14
16
|
import { TranslateService } from '@ngx-translate/core';
|
|
15
|
-
import * as rxjs from 'rxjs';
|
|
16
|
-
import { Subject, Observable } from 'rxjs';
|
|
17
17
|
import { CanActivate, Router } from '@angular/router';
|
|
18
18
|
import { EChartsOption } from 'echarts';
|
|
19
|
-
import * as
|
|
20
|
-
import * as
|
|
21
|
-
import * as
|
|
22
|
-
import * as
|
|
23
|
-
import * as
|
|
24
|
-
import * as
|
|
25
|
-
import * as
|
|
26
|
-
import * as
|
|
27
|
-
import * as
|
|
28
|
-
import * as
|
|
29
|
-
import * as
|
|
30
|
-
import * as
|
|
31
|
-
import * as
|
|
32
|
-
import * as
|
|
33
|
-
import * as
|
|
34
|
-
import * as
|
|
19
|
+
import * as i23 from '@angular/common';
|
|
20
|
+
import * as i25 from '@danielmoncada/angular-datetime-picker';
|
|
21
|
+
import * as i28 from '@dimaslz/ng-heroicons';
|
|
22
|
+
import * as i29 from 'ngx-echarts';
|
|
23
|
+
import * as i30 from '@angular/material/select';
|
|
24
|
+
import * as i31 from '@angular/material/radio';
|
|
25
|
+
import * as i32 from '@angular/material/button';
|
|
26
|
+
import * as i33 from '@angular/material/icon';
|
|
27
|
+
import * as i36 from '@angular/material/snack-bar';
|
|
28
|
+
import * as i38 from '@angular/material/checkbox';
|
|
29
|
+
import * as i39 from '@angular/material/card';
|
|
30
|
+
import * as i40 from '@angular/material/datepicker';
|
|
31
|
+
import * as i41 from '@angular/material/timepicker';
|
|
32
|
+
import * as i42 from '@angular/material/badge';
|
|
33
|
+
import * as i43 from '@angular/material/expansion';
|
|
34
|
+
import * as i44 from '@angular/material/form-field';
|
|
35
35
|
|
|
36
36
|
declare abstract class BaseComponent implements OnDestroy {
|
|
37
37
|
protected injector: Injector;
|
|
@@ -105,6 +105,7 @@ declare class BaseTableComponent<T = any> extends BaseComponent implements OnIni
|
|
|
105
105
|
expandedElement: any | null;
|
|
106
106
|
toastr: FxToastrService;
|
|
107
107
|
_lock: boolean;
|
|
108
|
+
keywordChange$: Subject<string>;
|
|
108
109
|
config: {
|
|
109
110
|
create?: {
|
|
110
111
|
dialog?: Type<{}>;
|
|
@@ -134,6 +135,9 @@ declare class BaseTableComponent<T = any> extends BaseComponent implements OnIni
|
|
|
134
135
|
cancelTitle?: string;
|
|
135
136
|
confirmTitle?: string;
|
|
136
137
|
};
|
|
138
|
+
updateStatus?: {
|
|
139
|
+
message?: string;
|
|
140
|
+
};
|
|
137
141
|
};
|
|
138
142
|
paginator: MatPaginator;
|
|
139
143
|
table: MatTable<T>;
|
|
@@ -147,6 +151,7 @@ declare class BaseTableComponent<T = any> extends BaseComponent implements OnIni
|
|
|
147
151
|
onPageChange(event: any): Promise<void>;
|
|
148
152
|
resolve(): {};
|
|
149
153
|
empty(): {};
|
|
154
|
+
onKeywordChange(keyword: string): void;
|
|
150
155
|
create(): Promise<void>;
|
|
151
156
|
update(model: any): Promise<void>;
|
|
152
157
|
view(model: any): Promise<void>;
|
|
@@ -154,6 +159,7 @@ declare class BaseTableComponent<T = any> extends BaseComponent implements OnIni
|
|
|
154
159
|
remove(model: any): Promise<any>;
|
|
155
160
|
value(model: any, key: string): any;
|
|
156
161
|
toggleExpand(element: any): void;
|
|
162
|
+
updateStatus(params: any): Promise<void>;
|
|
157
163
|
static ɵfac: i0.ɵɵFactoryDeclaration<BaseTableComponent<any>, never>;
|
|
158
164
|
static ɵdir: i0.ɵɵDirectiveDeclaration<BaseTableComponent<any>, never, never, {}, {}, never, never, true, never>;
|
|
159
165
|
}
|
|
@@ -165,6 +171,7 @@ declare class BaseDialogComponent<T = any> extends BaseComponent implements Afte
|
|
|
165
171
|
api: HttpWrapper;
|
|
166
172
|
dialog: MatDialog;
|
|
167
173
|
ngForm: NgForm;
|
|
174
|
+
method: string;
|
|
168
175
|
title: string;
|
|
169
176
|
model: any;
|
|
170
177
|
disabled: boolean;
|
|
@@ -179,7 +186,6 @@ declare class BaseDialogComponent<T = any> extends BaseComponent implements Afte
|
|
|
179
186
|
accept(form: NgForm, params?: null): void;
|
|
180
187
|
create(params?: any): void;
|
|
181
188
|
update(params?: any): void;
|
|
182
|
-
updateData(params?: any): void;
|
|
183
189
|
updateInfo(params?: any): void;
|
|
184
190
|
cancel(): void;
|
|
185
191
|
validate(): boolean;
|
|
@@ -270,6 +276,16 @@ declare class HasPermissionDirective {
|
|
|
270
276
|
static ɵdir: i0.ɵɵDirectiveDeclaration<HasPermissionDirective, "[hasPermission]", never, { "hasPermission": { "alias": "hasPermission"; "required": false; }; }, {}, never, never, true, never>;
|
|
271
277
|
}
|
|
272
278
|
|
|
279
|
+
declare class TrimOnBlurDirective {
|
|
280
|
+
private el;
|
|
281
|
+
private ngControl;
|
|
282
|
+
collapseWhitespace: boolean;
|
|
283
|
+
constructor(el: ElementRef<HTMLInputElement>, ngControl: NgControl);
|
|
284
|
+
onBlur(): void;
|
|
285
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TrimOnBlurDirective, never>;
|
|
286
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<TrimOnBlurDirective, "[appTrimOnBlur]", never, { "collapseWhitespace": { "alias": "appTrimOnBlurCollapse"; "required": false; }; }, {}, never, never, true, never>;
|
|
287
|
+
}
|
|
288
|
+
|
|
273
289
|
declare class PermissionGuard implements CanActivate {
|
|
274
290
|
private permissionService;
|
|
275
291
|
private router;
|
|
@@ -288,7 +304,7 @@ declare class FxStorageService {
|
|
|
288
304
|
|
|
289
305
|
declare class AuthStateService {
|
|
290
306
|
private _isLoggedIn$;
|
|
291
|
-
readonly isLoggedIn$: rxjs.Observable<boolean>;
|
|
307
|
+
readonly isLoggedIn$: rxjs.Observable<boolean | null>;
|
|
292
308
|
readonly unauthorized$: Subject<void>;
|
|
293
309
|
constructor();
|
|
294
310
|
setLoggedIn(value: boolean): void;
|
|
@@ -319,6 +335,20 @@ declare class BreadcrumbService {
|
|
|
319
335
|
static ɵprov: i0.ɵɵInjectableDeclaration<BreadcrumbService>;
|
|
320
336
|
}
|
|
321
337
|
|
|
338
|
+
declare class QuillStyleLoaderService {
|
|
339
|
+
private platformId;
|
|
340
|
+
private loaded;
|
|
341
|
+
private loadingPromise;
|
|
342
|
+
constructor(platformId: Object);
|
|
343
|
+
/**
|
|
344
|
+
* Load Quill CSS (only in browser). Returns a promise that resolves when
|
|
345
|
+
* the CSS links have been appended.
|
|
346
|
+
*/
|
|
347
|
+
load(): Promise<void>;
|
|
348
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<QuillStyleLoaderService, never>;
|
|
349
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<QuillStyleLoaderService>;
|
|
350
|
+
}
|
|
351
|
+
|
|
322
352
|
type ErrorMessages = {
|
|
323
353
|
[key: string]: any;
|
|
324
354
|
};
|
|
@@ -378,7 +408,7 @@ declare class InputComponent extends FxComponent<string> implements AfterViewIni
|
|
|
378
408
|
static ɵcmp: i0.ɵɵComponentDeclaration<InputComponent, "fx-ui-input", never, { "label": { "alias": "label"; "required": false; }; "type": { "alias": "type"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "errorMessages": { "alias": "errorMessages"; "required": false; }; "required": { "alias": "required"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "iconClass": { "alias": "iconClass"; "required": false; }; "suffixIcon": { "alias": "suffixIcon"; "required": false; }; "class": { "alias": "class"; "required": false; }; "maxlength": { "alias": "maxlength"; "required": false; }; "validateFn": { "alias": "validateFn"; "required": false; }; }, { "blurred": "blurred"; "focused": "focused"; "suffixClick": "suffixClick"; }, never, never, false, never>;
|
|
379
409
|
}
|
|
380
410
|
|
|
381
|
-
declare class SelectComponent extends FxComponent<string | string[]> implements AfterViewInit {
|
|
411
|
+
declare class SelectComponent extends FxComponent<string | string[]> implements AfterViewInit, OnInit {
|
|
382
412
|
private ref;
|
|
383
413
|
label: string;
|
|
384
414
|
placeholder: string;
|
|
@@ -393,12 +423,27 @@ declare class SelectComponent extends FxComponent<string | string[]> implements
|
|
|
393
423
|
};
|
|
394
424
|
required: boolean;
|
|
395
425
|
class?: any;
|
|
426
|
+
enableSearch: boolean;
|
|
427
|
+
searchFn?: (query: string) => Promise<{
|
|
428
|
+
label: string;
|
|
429
|
+
value: string;
|
|
430
|
+
}[]>;
|
|
431
|
+
searchTerm: string;
|
|
432
|
+
filteredOptions: {
|
|
433
|
+
label: string;
|
|
434
|
+
value: string;
|
|
435
|
+
}[];
|
|
436
|
+
private search$;
|
|
396
437
|
constructor(ngControl: NgControl, ref: ChangeDetectorRef);
|
|
438
|
+
ngOnInit(): void;
|
|
397
439
|
ngAfterViewInit(): void;
|
|
440
|
+
onOpened(open: boolean): void;
|
|
441
|
+
onSearchChange(value: string): void;
|
|
442
|
+
performSearch(term: string): Promise<void>;
|
|
398
443
|
onSelectionChange(value: any): void;
|
|
399
444
|
isSelected(value: string): boolean;
|
|
400
445
|
static ɵfac: i0.ɵɵFactoryDeclaration<SelectComponent, never>;
|
|
401
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<SelectComponent, "fx-ui-select", never, { "label": { "alias": "label"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "options": { "alias": "options"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "errorMessages": { "alias": "errorMessages"; "required": false; }; "required": { "alias": "required"; "required": false; }; "class": { "alias": "class"; "required": false; }; }, {}, never, never, false, never>;
|
|
446
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SelectComponent, "fx-ui-select", never, { "label": { "alias": "label"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "options": { "alias": "options"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "errorMessages": { "alias": "errorMessages"; "required": false; }; "required": { "alias": "required"; "required": false; }; "class": { "alias": "class"; "required": false; }; "enableSearch": { "alias": "enableSearch"; "required": false; }; "searchFn": { "alias": "searchFn"; "required": false; }; }, {}, never, never, false, never>;
|
|
402
447
|
}
|
|
403
448
|
|
|
404
449
|
interface IRadioButton {
|
|
@@ -431,7 +476,6 @@ declare class CheckboxComponent extends FxComponent<any> implements AfterViewIni
|
|
|
431
476
|
label: string;
|
|
432
477
|
disabled: boolean;
|
|
433
478
|
rounded: boolean;
|
|
434
|
-
size: 'normal' | 'large';
|
|
435
479
|
valueChange: EventEmitter<boolean>;
|
|
436
480
|
constructor(ngControl: NgControl, ref: ChangeDetectorRef);
|
|
437
481
|
ngAfterViewInit(): void;
|
|
@@ -439,7 +483,7 @@ declare class CheckboxComponent extends FxComponent<any> implements AfterViewIni
|
|
|
439
483
|
onInputChange(event: Event): void;
|
|
440
484
|
markTouched(): void;
|
|
441
485
|
static ɵfac: i0.ɵɵFactoryDeclaration<CheckboxComponent, never>;
|
|
442
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<CheckboxComponent, "fx-ui-checkbox", never, { "label": { "alias": "label"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "rounded": { "alias": "rounded"; "required": false; };
|
|
486
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<CheckboxComponent, "fx-ui-checkbox", never, { "label": { "alias": "label"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "rounded": { "alias": "rounded"; "required": false; }; }, { "valueChange": "valueChange"; }, never, never, false, never>;
|
|
443
487
|
}
|
|
444
488
|
|
|
445
489
|
type UploadResult = {
|
|
@@ -707,17 +751,43 @@ declare class SwitchComponent extends FxComponent<any> implements AfterViewInit
|
|
|
707
751
|
static ɵcmp: i0.ɵɵComponentDeclaration<SwitchComponent, "fx-ui-switch", never, { "disabled": { "alias": "disabled"; "required": false; }; }, { "onSwitch": "onSwitch"; }, never, never, false, never>;
|
|
708
752
|
}
|
|
709
753
|
|
|
754
|
+
declare class RichTextAreaComponent extends FxComponent<any> implements AfterViewInit {
|
|
755
|
+
private cdr;
|
|
756
|
+
private styleLoader;
|
|
757
|
+
private platformId;
|
|
758
|
+
editorContainer: ElementRef<HTMLDivElement>;
|
|
759
|
+
placeholder: string;
|
|
760
|
+
toolbarOptions: any;
|
|
761
|
+
contentChange: EventEmitter<string>;
|
|
762
|
+
private quillInstance;
|
|
763
|
+
constructor(ngControl: NgControl, cdr: ChangeDetectorRef, styleLoader: QuillStyleLoaderService, platformId: Object);
|
|
764
|
+
ngAfterViewInit(): Promise<void>;
|
|
765
|
+
writeValue(value: any): void;
|
|
766
|
+
setDisabledState(isDisabled: boolean): void;
|
|
767
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RichTextAreaComponent, never>;
|
|
768
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<RichTextAreaComponent, "fx-ui-rich-text-area", never, { "placeholder": { "alias": "placeholder"; "required": false; }; "toolbarOptions": { "alias": "toolbarOptions"; "required": false; }; }, { "contentChange": "contentChange"; }, never, never, false, never>;
|
|
769
|
+
}
|
|
770
|
+
|
|
771
|
+
declare class SkeletonTableLoadingComponent {
|
|
772
|
+
columns: number;
|
|
773
|
+
rows: number;
|
|
774
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SkeletonTableLoadingComponent, never>;
|
|
775
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SkeletonTableLoadingComponent, "fx-ui-skeleton-table-loading", never, { "columns": { "alias": "columns"; "required": false; }; "rows": { "alias": "rows"; "required": false; }; }, {}, never, never, false, never>;
|
|
776
|
+
}
|
|
777
|
+
|
|
710
778
|
declare class ConfirmationDialogComponent {
|
|
711
779
|
private ref;
|
|
780
|
+
bindings: any;
|
|
781
|
+
loading: boolean;
|
|
712
782
|
title: string;
|
|
713
783
|
message: string;
|
|
714
784
|
cancelLabel: string;
|
|
715
785
|
confirmLabel: string;
|
|
716
786
|
constructor(ref: MatDialogRef<ConfirmationDialogComponent>, bindings: any);
|
|
717
|
-
accept(): void
|
|
787
|
+
accept(): Promise<void>;
|
|
718
788
|
cancel(): void;
|
|
719
789
|
static ɵfac: i0.ɵɵFactoryDeclaration<ConfirmationDialogComponent, never>;
|
|
720
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ConfirmationDialogComponent, "ui-confirmation", never, {}, {}, never, never, false, never>;
|
|
790
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ConfirmationDialogComponent, "fx-ui-confirmation-dialog", never, {}, {}, never, never, false, never>;
|
|
721
791
|
}
|
|
722
792
|
|
|
723
793
|
declare const MY_FORMATS: {
|
|
@@ -731,9 +801,9 @@ declare const MY_FORMATS: {
|
|
|
731
801
|
};
|
|
732
802
|
declare class UiModule {
|
|
733
803
|
static ɵfac: i0.ɵɵFactoryDeclaration<UiModule, never>;
|
|
734
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<UiModule, [typeof InputComponent, typeof SelectComponent, typeof RadioButtonComponent, typeof CheckboxComponent, typeof DndUploadComponent, typeof ButtonComponent, typeof RadioButtonToggleComponent, typeof DatetimePicker, typeof LoadingPanel, typeof SearchBarComponent, typeof TabGroupComponent, typeof TabComponent, typeof HeroIconComponent, typeof ToastComponent, typeof ToastContainerComponent, typeof TagComponent, typeof ChartComponent, typeof SliderComponent, typeof SwitchComponent, typeof ConfirmationDialogComponent], [typeof
|
|
804
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<UiModule, [typeof InputComponent, typeof SelectComponent, typeof RadioButtonComponent, typeof CheckboxComponent, typeof DndUploadComponent, typeof ButtonComponent, typeof RadioButtonToggleComponent, typeof DatetimePicker, typeof LoadingPanel, typeof SearchBarComponent, typeof TabGroupComponent, typeof TabComponent, typeof HeroIconComponent, typeof ToastComponent, typeof ToastContainerComponent, typeof TagComponent, typeof ChartComponent, typeof SliderComponent, typeof SwitchComponent, typeof RichTextAreaComponent, typeof SkeletonTableLoadingComponent, typeof ConfirmationDialogComponent], [typeof i23.CommonModule, typeof i24.FormsModule, typeof i24.ReactiveFormsModule, typeof i25.OwlDateTimeModule, typeof i25.OwlNativeDateTimeModule, typeof HasPermissionDirective, typeof TrimOnBlurDirective, typeof i28.NgHeroiconsModule, typeof i29.NgxEchartsModule, typeof i30.MatSelectModule, typeof i31.MatRadioModule, typeof i32.MatButtonModule, typeof i33.MatIconModule, typeof i34.MatPaginatorModule, typeof i35.MatTableModule, typeof i36.MatSnackBarModule, typeof i37.MatDialogModule, typeof i38.MatCheckboxModule, typeof i39.MatCardModule, typeof i40.MatDatepickerModule, typeof i41.MatTimepickerModule, typeof i42.MatBadgeModule, typeof i43.MatExpansionModule, typeof i44.MatFormFieldModule], [typeof InputComponent, typeof SelectComponent, typeof RadioButtonComponent, typeof CheckboxComponent, typeof DndUploadComponent, typeof ButtonComponent, typeof RadioButtonToggleComponent, typeof DatetimePicker, typeof LoadingPanel, typeof SearchBarComponent, typeof TabGroupComponent, typeof TabComponent, typeof HeroIconComponent, typeof ToastComponent, typeof ToastContainerComponent, typeof TagComponent, typeof ChartComponent, typeof SliderComponent, typeof SwitchComponent, typeof RichTextAreaComponent, typeof SkeletonTableLoadingComponent, typeof ConfirmationDialogComponent, typeof i24.FormsModule, typeof i24.ReactiveFormsModule, typeof i25.OwlDateTimeModule, typeof i25.OwlNativeDateTimeModule, typeof HasPermissionDirective, typeof i28.NgHeroiconsModule, typeof i30.MatSelectModule, typeof i31.MatRadioModule, typeof i32.MatButtonModule, typeof i33.MatIconModule, typeof i34.MatPaginatorModule, typeof i35.MatTableModule, typeof i36.MatSnackBarModule, typeof i37.MatDialogModule, typeof i38.MatCheckboxModule, typeof i39.MatCardModule, typeof i40.MatDatepickerModule, typeof i41.MatTimepickerModule, typeof i42.MatBadgeModule, typeof i43.MatExpansionModule, typeof i44.MatFormFieldModule]>;
|
|
735
805
|
static ɵinj: i0.ɵɵInjectorDeclaration<UiModule>;
|
|
736
806
|
}
|
|
737
807
|
|
|
738
|
-
export { AuthInterceptor, AuthStateService, BaseComponent, BaseDialogComponent, BaseResolver, BaseTableComponent, BreadcrumbService, ButtonComponent, ChartComponent, CheckboxComponent, ConfirmationDialogComponent, DatetimePicker, DndUploadComponent, FxLoadingService, FxStorageService, FxToastrService, FxUtils, HasPermissionDirective, HeroIconComponent, HttpLoaderFactory, HttpWrapper, InputComponent, LoadingPanel, MY_FORMATS, PermissionGuard, PermissionService, RadioButtonComponent, RadioButtonToggleComponent, SearchBarComponent, SelectComponent, SliderComponent, SwitchComponent, TabComponent, TabGroupComponent, TagComponent, ToastComponent, ToastContainerComponent, TranslationModule, TranslationService, UiModule };
|
|
808
|
+
export { AuthInterceptor, AuthStateService, BaseComponent, BaseDialogComponent, BaseResolver, BaseTableComponent, BreadcrumbService, ButtonComponent, ChartComponent, CheckboxComponent, ConfirmationDialogComponent, DatetimePicker, DndUploadComponent, FxLoadingService, FxStorageService, FxToastrService, FxUtils, HasPermissionDirective, HeroIconComponent, HttpLoaderFactory, HttpWrapper, InputComponent, LoadingPanel, MY_FORMATS, PermissionGuard, PermissionService, QuillStyleLoaderService, RadioButtonComponent, RadioButtonToggleComponent, RichTextAreaComponent, SearchBarComponent, SelectComponent, SkeletonTableLoadingComponent, SliderComponent, SwitchComponent, TabComponent, TabGroupComponent, TagComponent, ToastComponent, ToastContainerComponent, TranslationModule, TranslationService, TrimOnBlurDirective, UiModule };
|
|
739
809
|
export type { Breadcrumb, IChartType, IRadioButton, TableResult, TagType, ToastData, UploadResult };
|
package/package.json
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fxlt/common-ui",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.2",
|
|
4
|
+
"license": "MIT",
|
|
4
5
|
"main": "bundles/ui.umd.js",
|
|
5
6
|
"module": "fesm2022/fxlt-common-ui.mjs",
|
|
6
7
|
"es2020": "fesm2020/ui.mjs",
|
|
@@ -29,7 +30,8 @@
|
|
|
29
30
|
"echarts": "^6.0.0",
|
|
30
31
|
"ngx-echarts": "^20.0.2",
|
|
31
32
|
"d3": "^7.9.0",
|
|
32
|
-
"@dimaslz/ng-heroicons": "^1.19.1"
|
|
33
|
+
"@dimaslz/ng-heroicons": "^1.19.1",
|
|
34
|
+
"quill": "^2.0.3"
|
|
33
35
|
},
|
|
34
36
|
"exports": {
|
|
35
37
|
"./SpaceMono-Regular.ttf": "./SpaceMono-Regular.ttf",
|
|
@@ -142,7 +142,10 @@
|
|
|
142
142
|
background-color: rgb(var(--bg-primary)) !important;
|
|
143
143
|
border-radius: 8px !important;
|
|
144
144
|
}
|
|
145
|
-
|
|
145
|
+
.mat-mdc-dialog-container .mat-mdc-dialog-content {
|
|
146
|
+
letter-spacing: 0 !important;
|
|
147
|
+
padding: 10px 20px !important;
|
|
148
|
+
}
|
|
146
149
|
|
|
147
150
|
input[type='number']::-webkit-outer-spin-button,
|
|
148
151
|
input[type='number']::-webkit-inner-spin-button {
|
|
@@ -187,6 +190,9 @@ input[type='password'] {
|
|
|
187
190
|
.txt-section-header {
|
|
188
191
|
@apply mb-1 text-xl text-text-primary font-semibold tracking-normal leading-7;
|
|
189
192
|
}
|
|
193
|
+
.txt-dialog-header {
|
|
194
|
+
@apply text-xl text-text-primary font-semibold tracking-normal leading-7 px-xl py-semi;
|
|
195
|
+
}
|
|
190
196
|
.txt-section-subtitle {
|
|
191
197
|
@apply text-sm text-text-secondary font-normal tracking-normal;
|
|
192
198
|
}
|
|
@@ -381,3 +387,6 @@ input[type='password'] {
|
|
|
381
387
|
padding-top: 16px !important;
|
|
382
388
|
padding-bottom: 16px !important;
|
|
383
389
|
}
|
|
390
|
+
.dialog-container {
|
|
391
|
+
@apply rounded-lg border border-border-default;
|
|
392
|
+
}
|
|
@@ -2,71 +2,25 @@
|
|
|
2
2
|
max-width: unset !important;
|
|
3
3
|
border-radius: 8px !important;
|
|
4
4
|
.mat-dialog-actions {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
border-top: 1px solid rgb(var(--border-default)) !important;
|
|
6
|
+
margin-left: -24px;
|
|
7
|
+
margin-right: -24px;
|
|
8
|
+
padding: 12px 24px 10px 10px;
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
.mat-dialog-title {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
.mat-dialog-content {
|
|
21
|
-
min-height: 110px;
|
|
22
|
-
letter-spacing: 0 !important;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
.fx-dialog3 {
|
|
27
|
-
.mat-dialog-actions {
|
|
28
|
-
border-top: 1px solid rgb(var(--border-default));
|
|
29
|
-
margin-left: -24px;
|
|
30
|
-
margin-right: -24px;
|
|
31
|
-
padding: 12px 24px 10px 10px;
|
|
12
|
+
margin-left: -24px;
|
|
13
|
+
margin-right: -24px;
|
|
14
|
+
padding-right: 24px;
|
|
15
|
+
padding-left: 24px;
|
|
16
|
+
border-bottom: 1px solid rgb(var(--border-default));
|
|
17
|
+
padding-bottom: 20px;
|
|
18
|
+
letter-spacing: 0 !important;
|
|
32
19
|
}
|
|
33
20
|
|
|
34
|
-
.mat-dialog-title {
|
|
35
|
-
margin-left: -24px;
|
|
36
|
-
margin-right: -24px;
|
|
37
|
-
padding-right: 24px;
|
|
38
|
-
padding-left: 24px;
|
|
39
|
-
border-bottom: 1px solid rgb(var(--border-default));
|
|
40
|
-
padding-bottom: 20px;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
21
|
.mat-dialog-content {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
letter-spacing: 0 !important;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
.fx-dialog4 {
|
|
51
|
-
max-width: unset !important;
|
|
52
|
-
.mat-dialog-actions {
|
|
53
|
-
border-top: 1px solid rgb(var(--border-default));
|
|
54
|
-
margin-left: -24px;
|
|
55
|
-
margin-right: -24px;
|
|
56
|
-
padding: 12px 24px 10px 10px;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
.mat-dialog-title {
|
|
60
|
-
margin-left: -24px;
|
|
61
|
-
margin-right: -24px;
|
|
62
|
-
padding-right: 24px;
|
|
63
|
-
padding-left: 24px;
|
|
64
|
-
border-bottom: 1px solid rgb(var(--border-default));
|
|
65
|
-
padding-bottom: 20px;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
.mat-dialog-content {
|
|
69
|
-
min-height: 50px;
|
|
22
|
+
min-height: 110px;
|
|
23
|
+
letter-spacing: 0 !important;
|
|
70
24
|
}
|
|
71
25
|
}
|
|
72
26
|
|
|
@@ -75,42 +29,42 @@
|
|
|
75
29
|
height: 100%;
|
|
76
30
|
|
|
77
31
|
mat-dialog-container {
|
|
78
|
-
|
|
32
|
+
padding: 0;
|
|
79
33
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
34
|
+
form.wrapped-form {
|
|
35
|
+
display: flex;
|
|
36
|
+
flex-direction: column;
|
|
37
|
+
height: 100%;
|
|
38
|
+
justify-content: space-between;
|
|
39
|
+
}
|
|
86
40
|
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
41
|
+
.mat-dialog-title {
|
|
42
|
+
background-color: rgb(var(--bg-primary));
|
|
43
|
+
box-shadow: 0px 4px 8px rgba(26, 28, 38, 0.15);
|
|
44
|
+
color: rgb(var(--text-primary));
|
|
45
|
+
padding: 12px 20px;
|
|
46
|
+
min-height: 24px;
|
|
93
47
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
}
|
|
48
|
+
h2 {
|
|
49
|
+
font-weight: 500;
|
|
50
|
+
font-size: 18px;
|
|
51
|
+
line-height: 24px;
|
|
99
52
|
}
|
|
53
|
+
}
|
|
100
54
|
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
55
|
+
.mat-dialog-content {
|
|
56
|
+
background: rgb(var(--bg-primary));
|
|
57
|
+
padding: 16px 20px;
|
|
58
|
+
margin: unset;
|
|
59
|
+
height: 100%;
|
|
60
|
+
max-height: unset;
|
|
61
|
+
letter-spacing: 0 !important;
|
|
62
|
+
}
|
|
109
63
|
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
64
|
+
.mat-dialog-actions {
|
|
65
|
+
background-color: rgb(var(--bg-primary));
|
|
66
|
+
padding: 12px 20px;
|
|
67
|
+
margin-bottom: unset;
|
|
68
|
+
}
|
|
115
69
|
}
|
|
116
|
-
}
|
|
70
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<label
|
|
2
|
-
class="
|
|
2
|
+
class="flex items-center gap-normal cursor-pointer select-none"
|
|
3
3
|
[class.opacity-50]="disabled"
|
|
4
4
|
[class.cursor-not-allowed]="disabled"
|
|
5
5
|
>
|
|
@@ -12,10 +12,10 @@
|
|
|
12
12
|
(blur)="onTouched()"
|
|
13
13
|
/>
|
|
14
14
|
<span
|
|
15
|
-
class="relative
|
|
16
|
-
[class]="rounded ? 'rounded-full' : 'rounded-sm'"
|
|
17
|
-
[class]="size === 'large' ? 'w-6 h-6' : 'w-4 h-4'"
|
|
15
|
+
class="relative w-4 h-4 border rounded-full transition-colors duration-150 shrink-0"
|
|
18
16
|
[ngClass]="{
|
|
17
|
+
'rounded-full': rounded,
|
|
18
|
+
'rounded-sm': !rounded,
|
|
19
19
|
'border-border-strong bg-transparent': !value,
|
|
20
20
|
'border-border-selected bg-border-selected': value
|
|
21
21
|
}"
|
|
@@ -24,8 +24,7 @@
|
|
|
24
24
|
<span class="absolute inset-0 flex items-center justify-center">
|
|
25
25
|
<svg
|
|
26
26
|
xmlns="http://www.w3.org/2000/svg"
|
|
27
|
-
class="text-bg-primary transition-opacity duration-150"
|
|
28
|
-
[class]="size === 'large' ? 'w-4.5 h-4.5' : 'w-3 h-3'"
|
|
27
|
+
class="text-bg-primary w-4 h-4 transition-opacity duration-150"
|
|
29
28
|
viewBox="0 0 24 24"
|
|
30
29
|
fill="none"
|
|
31
30
|
stroke="currentColor"
|
|
@@ -39,5 +38,5 @@
|
|
|
39
38
|
</span>
|
|
40
39
|
</span>
|
|
41
40
|
|
|
42
|
-
<span class="mb-0 txt-field-label">{{ label }}</span>
|
|
41
|
+
@if(label){<span class="mb-0 txt-field-label">{{ label }}</span>}
|
|
43
42
|
</label>
|
|
@@ -77,4 +77,26 @@
|
|
|
77
77
|
color: rgb(var(--text-primary)) !important;
|
|
78
78
|
font-size: 14px;
|
|
79
79
|
font-weight: 400;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
.mat-select-panel .search-option-full-width {
|
|
83
|
+
/* Remove default padding to allow the input to stretch */
|
|
84
|
+
padding-left: 0 !important;
|
|
85
|
+
padding-right: 0 !important;
|
|
86
|
+
/* Ensure it is a block element to take up full width */
|
|
87
|
+
display: block;
|
|
88
|
+
/* Prevent the option from being highlighted on hover/focus */
|
|
89
|
+
pointer-events: none;
|
|
90
|
+
/* Optional: Adjust height if needed */
|
|
91
|
+
line-height: initial;
|
|
92
|
+
height: auto;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
.mat-select-panel .search-option-full-width .search-bar {
|
|
96
|
+
width: 100%;
|
|
97
|
+
padding: 8px 16px; /* Add visual padding back to the input */
|
|
98
|
+
border: none;
|
|
99
|
+
/* Optional: Add a subtle border to separate it from the options */
|
|
100
|
+
border-bottom: 1px solid #ddd;
|
|
101
|
+
box-sizing: border-box; /* Include padding in the element's total width */
|
|
80
102
|
}
|
|
@@ -11,9 +11,22 @@
|
|
|
11
11
|
[multiple]="multiple"
|
|
12
12
|
[value]="value"
|
|
13
13
|
(selectionChange)="onSelectionChange($event.value)"
|
|
14
|
+
(openedChange)="onOpened($event)"
|
|
14
15
|
(blur)="onTouched()"
|
|
15
16
|
>
|
|
16
|
-
|
|
17
|
+
@if(enableSearch){
|
|
18
|
+
<div class="px-semi w-full">
|
|
19
|
+
<input
|
|
20
|
+
type="text"
|
|
21
|
+
[placeholder]="'Search'"
|
|
22
|
+
[(ngModel)]="searchTerm"
|
|
23
|
+
(ngModelChange)="onSearchChange($event)"
|
|
24
|
+
(click)="$event.stopPropagation()"
|
|
25
|
+
class="text-text-primary placeholder:text-text-placeholder w-full bg-bg-primary border-b px-semi py-normal border-border-default focus:outline-none focus:border-border-interactive text-sm text-text-primary tracking-normal ring-0 transition-colors duration-500 ease-in-out"
|
|
26
|
+
/>
|
|
27
|
+
</div>
|
|
28
|
+
}
|
|
29
|
+
<mat-option *ngFor="let option of filteredOptions" [value]="option.value">
|
|
17
30
|
<span class="txt-default">{{ option.label }}</span>
|
|
18
31
|
</mat-option>
|
|
19
32
|
</mat-select>
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
<div class="w-full animate-pulse space-y-normal">
|
|
2
|
+
<div
|
|
3
|
+
class="grid gap-small"
|
|
4
|
+
[ngStyle]="{ 'grid-template-columns': 'repeat(' + columns + ', minmax(0, 1fr))' }"
|
|
5
|
+
>
|
|
6
|
+
@for(col of [].constructor(columns); track col) {
|
|
7
|
+
<div class="h-6 bg-bg-hover rounded"></div>
|
|
8
|
+
}
|
|
9
|
+
</div>
|
|
10
|
+
|
|
11
|
+
@for(row of [].constructor(rows); track row) {
|
|
12
|
+
<div
|
|
13
|
+
class="grid gap-small"
|
|
14
|
+
[ngStyle]="{ 'grid-template-columns': 'repeat(' + columns + ', minmax(0, 1fr))' }"
|
|
15
|
+
>
|
|
16
|
+
@for(col of [].constructor(columns); track col) {
|
|
17
|
+
<div class="h-7 bg-bg-hover rounded"></div>
|
|
18
|
+
}
|
|
19
|
+
</div>
|
|
20
|
+
}
|
|
21
|
+
</div>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<div
|
|
2
|
-
class="relative
|
|
2
|
+
class="relative flex items-center w-10 h-5 rounded-full transition-colors duration-300 cursor-pointer"
|
|
3
3
|
[ngClass]="{
|
|
4
4
|
'bg-success': value && !disabled,
|
|
5
5
|
'bg-button-default': !value && !disabled,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<div
|
|
2
2
|
animate.enter="horizontal-fade-in-animation"
|
|
3
3
|
animate.leave="horizontal-fade-out-animation"
|
|
4
|
-
class="flex border-l-[3px] items-center bg-bg-primary gap-semi min-w-[250px] max-w-[
|
|
4
|
+
class="flex border-l-[3px] items-center bg-bg-primary gap-semi min-w-[250px] max-w-[400px] px-large py-semi rounded shadow-lg transition-all duration-300 ease-in-out transform opacity-100 translate-y-0"
|
|
5
5
|
[ngClass]="{
|
|
6
6
|
'border-success': type === 'success',
|
|
7
7
|
'border-critical': type === 'error',
|