@sumaris-net/ngx-components 2.12.25-rc4 → 2.12.26-rc1
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/esm2022/src/app/admin/users/users.mjs +5 -11
- package/esm2022/src/app/core/account/account.page.mjs +5 -12
- package/esm2022/src/app/core/account/new-token.modal.mjs +8 -15
- package/esm2022/src/app/core/account/password/change-password.form.mjs +5 -10
- package/esm2022/src/app/core/account/token.table.mjs +5 -12
- package/esm2022/src/app/core/auth/auth.form.mjs +5 -11
- package/esm2022/src/app/core/form/array/testing/form-array.test.mjs +5 -13
- package/esm2022/src/app/core/form/entity/editor.class.mjs +15 -20
- package/esm2022/src/app/core/form/entity/entity-editor-modal.class.mjs +10 -18
- package/esm2022/src/app/core/form/entity/entity-editor.class.mjs +11 -21
- package/esm2022/src/app/core/form/entity/tab-editor.class.mjs +5 -21
- package/esm2022/src/app/core/form/form.class.mjs +13 -13
- package/esm2022/src/app/core/form/list/list.form.mjs +10 -20
- package/esm2022/src/app/core/form/properties/properties.form.mjs +17 -26
- package/esm2022/src/app/core/form/properties/properties.table.mjs +5 -7
- package/esm2022/src/app/core/form/username/username.form.mjs +5 -10
- package/esm2022/src/app/core/menu/testing/menu-other.testing.mjs +13 -15
- package/esm2022/src/app/core/menu/testing/menu.testing.mjs +13 -15
- package/esm2022/src/app/core/settings/settings.page.mjs +25 -35
- package/esm2022/src/app/core/table/async-table.class.mjs +21 -30
- package/esm2022/src/app/core/table/column/actions-column.component.mjs +4 -4
- package/esm2022/src/app/core/table/column/nav-actions-column.component.mjs +31 -4
- package/esm2022/src/app/core/table/column/row-field.component.mjs +6 -11
- package/esm2022/src/app/core/table/entities-async-table-datasource.class.mjs +2 -2
- package/esm2022/src/app/core/table/memory-table.class.mjs +4 -4
- package/esm2022/src/app/core/table/table.class.mjs +21 -33
- package/esm2022/src/app/core/table/testing/table.testing.mjs +7 -12
- package/esm2022/src/app/core/table/testing/table2.testing.mjs +9 -13
- package/esm2022/src/app/shared/form/field.component.mjs +14 -16
- package/esm2022/src/app/shared/help/help.modal.mjs +20 -25
- package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.mjs +14 -18
- package/esm2022/src/app/shared/material/boolean/testing/boolean.test.page.mjs +5 -12
- package/esm2022/src/app/shared/material/text/text-form.component.mjs +5 -12
- package/esm2022/src/app/shared/named-filter/named-filter-selector.component.mjs +6 -13
- package/esm2022/src/app/social/message/message.form.mjs +5 -10
- package/fesm2022/sumaris-net.ngx-components.mjs +332 -493
- package/fesm2022/sumaris-net.ngx-components.mjs.map +1 -1
- package/package.json +1 -1
- package/src/app/admin/users/users.d.ts +2 -4
- package/src/app/core/account/account.page.d.ts +2 -4
- package/src/app/core/account/new-token.modal.d.ts +2 -3
- package/src/app/core/account/password/change-password.form.d.ts +2 -4
- package/src/app/core/account/token.table.d.ts +3 -6
- package/src/app/core/auth/auth.form.d.ts +3 -5
- package/src/app/core/form/array/testing/form-array.test.d.ts +2 -5
- package/src/app/core/form/entity/editor.class.d.ts +9 -8
- package/src/app/core/form/entity/entity-editor-modal.class.d.ts +3 -4
- package/src/app/core/form/entity/entity-editor.class.d.ts +4 -6
- package/src/app/core/form/entity/tab-editor.class.d.ts +2 -11
- package/src/app/core/form/form.class.d.ts +5 -3
- package/src/app/core/form/list/list.form.d.ts +3 -8
- package/src/app/core/form/properties/properties.form.d.ts +3 -7
- package/src/app/core/form/properties/properties.table.d.ts +2 -3
- package/src/app/core/form/username/username.form.d.ts +3 -5
- package/src/app/core/menu/testing/menu-other.testing.d.ts +1 -5
- package/src/app/core/menu/testing/menu.testing.d.ts +1 -5
- package/src/app/core/settings/settings.page.d.ts +3 -9
- package/src/app/core/table/async-table.class.d.ts +15 -13
- package/src/app/core/table/column/nav-actions-column.component.d.ts +15 -1
- package/src/app/core/table/column/row-field.component.d.ts +2 -2
- package/src/app/core/table/memory-table.class.d.ts +2 -2
- package/src/app/core/table/table.class.d.ts +15 -14
- package/src/app/core/table/testing/table.testing.d.ts +2 -4
- package/src/app/core/table/testing/table2.testing.d.ts +2 -4
- package/src/app/shared/form/field.component.d.ts +5 -5
- package/src/app/shared/help/help.modal.d.ts +7 -8
- package/src/app/shared/inputs.d.ts +1 -1
- package/src/app/shared/material/autocomplete/material.autocomplete.d.ts +6 -7
- package/src/app/shared/material/boolean/testing/boolean.test.page.d.ts +2 -5
- package/src/app/shared/material/text/text-form.component.d.ts +3 -6
- package/src/app/shared/named-filter/named-filter-selector.component.d.ts +2 -5
- package/src/app/social/message/message.form.d.ts +2 -4
- package/src/assets/manifest.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AfterViewInit,
|
|
1
|
+
import { AfterViewInit, ChangeDetectorRef, EventEmitter, OnDestroy, OnInit } from '@angular/core';
|
|
2
2
|
import { MatPaginator } from '@angular/material/paginator';
|
|
3
3
|
import { MatSort, MatSortable, SortDirection } from '@angular/material/sort';
|
|
4
4
|
import { MatTable } from '@angular/material/table';
|
|
@@ -31,21 +31,22 @@ export declare abstract class AppAsyncTable<T extends IEntity<T, ID>, F = any, I
|
|
|
31
31
|
private _subscription;
|
|
32
32
|
private _dataSourceLoadingSubscription;
|
|
33
33
|
private _cellValueChangesDefs;
|
|
34
|
+
protected readonly route: ActivatedRoute;
|
|
35
|
+
protected readonly router: Router;
|
|
36
|
+
protected readonly navController: NavController;
|
|
37
|
+
protected readonly location: Location;
|
|
38
|
+
protected readonly settings: LocalSettingsService;
|
|
39
|
+
protected readonly translate: TranslateService;
|
|
40
|
+
protected readonly modalCtrl: ModalController;
|
|
41
|
+
protected readonly alertCtrl: AlertController;
|
|
42
|
+
protected readonly toastController: ToastController;
|
|
43
|
+
protected readonly formErrorAdapter: FormErrorTranslator;
|
|
44
|
+
protected readonly cd: ChangeDetectorRef;
|
|
45
|
+
protected readonly destroySubject: Subject<void>;
|
|
34
46
|
protected _enabled: boolean;
|
|
35
47
|
protected _autocompleteConfigHolder: MatAutocompleteConfigHolder;
|
|
36
48
|
protected allowRowDetail: boolean;
|
|
37
|
-
protected route: ActivatedRoute;
|
|
38
|
-
protected router: Router;
|
|
39
|
-
protected navController: NavController;
|
|
40
|
-
protected location: Location;
|
|
41
|
-
protected settings: LocalSettingsService;
|
|
42
|
-
protected translate: TranslateService;
|
|
43
|
-
protected modalCtrl: ModalController;
|
|
44
|
-
protected alertCtrl: AlertController;
|
|
45
|
-
protected toastController: ToastController;
|
|
46
49
|
protected previouslyEditedRowId: number;
|
|
47
|
-
protected formErrorAdapter: FormErrorTranslator;
|
|
48
|
-
protected readonly destroySubject: Subject<void>;
|
|
49
50
|
excludesColumns: string[];
|
|
50
51
|
displayedColumns: string[];
|
|
51
52
|
totalRowCount: number | null;
|
|
@@ -190,7 +191,7 @@ export declare abstract class AppAsyncTable<T extends IEntity<T, ID>, F = any, I
|
|
|
190
191
|
table: MatTable<T>;
|
|
191
192
|
childPaginator: MatPaginator;
|
|
192
193
|
sort: MatSort;
|
|
193
|
-
protected constructor(
|
|
194
|
+
protected constructor(columns: string[], _dataSource?: EntitiesAsyncTableDataSource<T, F, ID>, _filter?: F);
|
|
194
195
|
ngOnInit(): void;
|
|
195
196
|
ngAfterViewInit(): void;
|
|
196
197
|
ngOnDestroy(): void;
|
|
@@ -337,6 +338,7 @@ export declare abstract class AppAsyncTable<T extends IEntity<T, ID>, F = any, I
|
|
|
337
338
|
protected getShowColumn(columnName: string): boolean;
|
|
338
339
|
protected startsWithUpperCase(input: string, search: string): boolean;
|
|
339
340
|
protected markForCheck(): void;
|
|
341
|
+
protected detectChanges(): void;
|
|
340
342
|
protected askDeleteConfirmation(event?: Event, rows?: AsyncTableElement<T>[]): Promise<boolean>;
|
|
341
343
|
protected askCancelConfirmation(event?: Event, rows?: AsyncTableElement<T>[]): Promise<boolean>;
|
|
342
344
|
protected askRestoreConfirmation(event?: Event): Promise<boolean>;
|
|
@@ -4,10 +4,20 @@ import { MatColumnDef, MatTable } from '@angular/material/table';
|
|
|
4
4
|
import { MatMenuTrigger } from '@angular/material/menu';
|
|
5
5
|
import { AppTable } from '../table.class';
|
|
6
6
|
import { AppAsyncTable } from '../async-table.class';
|
|
7
|
+
import { Subject, Subscription } from 'rxjs';
|
|
7
8
|
import * as i0 from "@angular/core";
|
|
8
9
|
export declare class NavActionsColumnComponent<T extends TableElement<any> | AsyncTableElement<any> = TableElement<any>> implements OnInit, OnDestroy {
|
|
9
10
|
private matTable;
|
|
10
11
|
private cd;
|
|
12
|
+
_subscription: Subscription;
|
|
13
|
+
_forwardEventSubject: Subject<{
|
|
14
|
+
event: Event;
|
|
15
|
+
row: T;
|
|
16
|
+
}>;
|
|
17
|
+
_backwardEventSubject: Subject<{
|
|
18
|
+
event: Event;
|
|
19
|
+
row: T;
|
|
20
|
+
}>;
|
|
11
21
|
columnDef: MatColumnDef;
|
|
12
22
|
matMenuTrigger: MatMenuTrigger;
|
|
13
23
|
appTable: AppTable<any> | AppAsyncTable<any>;
|
|
@@ -21,12 +31,16 @@ export declare class NavActionsColumnComponent<T extends TableElement<any> | Asy
|
|
|
21
31
|
cellTemplate: TemplateRef<{
|
|
22
32
|
$implicit: T;
|
|
23
33
|
}>;
|
|
34
|
+
throttleTime: number;
|
|
24
35
|
optionsClick: EventEmitter<Event>;
|
|
25
36
|
constructor(matTable: MatTable<any>, cd: ChangeDetectorRef, appTable: AppTable<any>, appAsyncTable: AppAsyncTable<any>);
|
|
26
37
|
ngOnInit(): void;
|
|
27
38
|
ngOnDestroy(): void;
|
|
39
|
+
protected cancelOrDelete(event: Event, row: T): void;
|
|
40
|
+
protected confirmAndForward(event: Event, row: T): void;
|
|
41
|
+
protected confirmAndBackward(event: Event, row: T): void;
|
|
28
42
|
static ɵfac: i0.ɵɵFactoryDeclaration<NavActionsColumnComponent<any>, [null, null, { optional: true; }, { optional: true; }]>;
|
|
29
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<NavActionsColumnComponent<any>, "app-nav-actions-column", never, { "appTable": { "alias": "appTable"; "required": false; }; "matColumnDef": { "alias": "matColumnDef"; "required": false; }; "style": { "alias": "style"; "required": false; }; "stickyEnd": { "alias": "stickyEnd"; "required": false; }; "showPending": { "alias": "showPending"; "required": false; }; "dirtyIcon": { "alias": "dirtyIcon"; "required": false; }; "optionsTitle": { "alias": "optionsTitle"; "required": false; }; "classList": { "alias": "class"; "required": false; }; "cellTemplate": { "alias": "cellTemplate"; "required": false; }; }, { "optionsClick": "optionsClick"; }, never, ["[matHeader]", "[matFooter]", "[matHeader]", "[matFooter]"], false, never>;
|
|
43
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NavActionsColumnComponent<any>, "app-nav-actions-column", never, { "appTable": { "alias": "appTable"; "required": false; }; "matColumnDef": { "alias": "matColumnDef"; "required": false; }; "style": { "alias": "style"; "required": false; }; "stickyEnd": { "alias": "stickyEnd"; "required": false; }; "showPending": { "alias": "showPending"; "required": false; }; "dirtyIcon": { "alias": "dirtyIcon"; "required": false; }; "optionsTitle": { "alias": "optionsTitle"; "required": false; }; "classList": { "alias": "class"; "required": false; }; "cellTemplate": { "alias": "cellTemplate"; "required": false; }; "throttleTime": { "alias": "throttleTime"; "required": false; }; }, { "optionsClick": "optionsClick"; }, never, ["[matHeader]", "[matFooter]", "[matHeader]", "[matFooter]"], false, never>;
|
|
30
44
|
static ngAcceptInputType_stickyEnd: unknown;
|
|
31
45
|
static ngAcceptInputType_showPending: unknown;
|
|
32
46
|
}
|
|
@@ -7,7 +7,6 @@ import { MatColumnDef, MatTable } from '@angular/material/table';
|
|
|
7
7
|
import { AsyncTableElement, TableElement } from '@e-is/ngx-material-table';
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
9
9
|
export declare class AppRowField implements OnInit, OnDestroy {
|
|
10
|
-
protected cd: ChangeDetectorRef;
|
|
11
10
|
matTable: MatTable<any>;
|
|
12
11
|
columnDef: MatColumnDef;
|
|
13
12
|
name: string;
|
|
@@ -32,7 +31,8 @@ export declare class AppRowField implements OnInit, OnDestroy {
|
|
|
32
31
|
classList: string;
|
|
33
32
|
debug: boolean;
|
|
34
33
|
protected logPrefix: string;
|
|
35
|
-
|
|
34
|
+
protected readonly cd: ChangeDetectorRef;
|
|
35
|
+
constructor(matTable: MatTable<any>);
|
|
36
36
|
ngOnInit(): void;
|
|
37
37
|
ngOnDestroy(): void;
|
|
38
38
|
static ɵfac: i0.ɵɵFactoryDeclaration<AppRowField, never>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { OnInit } from '@angular/core';
|
|
2
2
|
import { ValidatorService } from '@e-is/ngx-material-table';
|
|
3
3
|
import { EntitiesTableDataSourceConfig } from './entities-table-datasource.class';
|
|
4
4
|
import { AppTable } from './table.class';
|
|
@@ -14,7 +14,7 @@ export declare abstract class AppInMemoryTable<T extends IEntity<T, ID>, F = any
|
|
|
14
14
|
canDelete: boolean;
|
|
15
15
|
set value(data: T[]);
|
|
16
16
|
get value(): T[];
|
|
17
|
-
protected constructor(
|
|
17
|
+
protected constructor(columns: string[], dataType: new () => T, memoryDataService: InMemoryEntitiesService<T, F, ID>, validatorService: ValidatorService, options?: EntitiesTableDataSourceConfig<T, ID>, filter?: F);
|
|
18
18
|
ngOnInit(): void;
|
|
19
19
|
setValue(value: T[], opts?: {
|
|
20
20
|
emitEvent?: boolean;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AfterViewInit,
|
|
1
|
+
import { AfterViewInit, ChangeDetectorRef, EventEmitter, OnDestroy, OnInit } from '@angular/core';
|
|
2
2
|
import { MatSort, MatSortable, SortDirection } from '@angular/material/sort';
|
|
3
3
|
import { BehaviorSubject, Observable, Subject, Subscription } from 'rxjs';
|
|
4
4
|
import { TableElement } from '@e-is/ngx-material-table';
|
|
@@ -31,22 +31,23 @@ export declare abstract class AppTable<T extends IEntity<T, ID>, F = any, ID = n
|
|
|
31
31
|
private _subscription;
|
|
32
32
|
private _dataSourceLoadingSubscription;
|
|
33
33
|
private _cellValueChangesDefs;
|
|
34
|
+
protected readonly route: ActivatedRoute;
|
|
35
|
+
protected readonly router: Router;
|
|
36
|
+
protected readonly navController: NavController;
|
|
37
|
+
protected readonly location: Location;
|
|
38
|
+
protected readonly settings: LocalSettingsService;
|
|
39
|
+
protected readonly translate: TranslateService;
|
|
40
|
+
protected readonly modalCtrl: ModalController;
|
|
41
|
+
protected readonly alertCtrl: AlertController;
|
|
42
|
+
protected readonly toastController: ToastController;
|
|
43
|
+
protected readonly formErrorAdapter: FormErrorTranslator;
|
|
44
|
+
protected readonly cd: ChangeDetectorRef;
|
|
45
|
+
protected readonly destroySubject: Subject<void>;
|
|
34
46
|
protected _enabled: boolean;
|
|
35
47
|
protected _autocompleteConfigHolder: MatAutocompleteConfigHolder;
|
|
36
48
|
protected allowRowDetail: boolean;
|
|
37
|
-
protected route: ActivatedRoute;
|
|
38
|
-
protected router: Router;
|
|
39
|
-
protected navController: NavController;
|
|
40
|
-
protected location: Location;
|
|
41
|
-
protected settings: LocalSettingsService;
|
|
42
|
-
protected translate: TranslateService;
|
|
43
|
-
protected modalCtrl: ModalController;
|
|
44
|
-
protected alertCtrl: AlertController;
|
|
45
|
-
protected toastController: ToastController;
|
|
46
49
|
protected previouslyEditedRowId: number;
|
|
47
|
-
protected
|
|
48
|
-
protected readonly destroySubject: Subject<void>;
|
|
49
|
-
protected forceDetectChanges: boolean;
|
|
50
|
+
protected detectChangesOnEditRow: boolean;
|
|
50
51
|
excludesColumns: string[];
|
|
51
52
|
displayedColumns: string[];
|
|
52
53
|
totalRowCount: number | null;
|
|
@@ -196,7 +197,7 @@ export declare abstract class AppTable<T extends IEntity<T, ID>, F = any, ID = n
|
|
|
196
197
|
table: MatTable<T>;
|
|
197
198
|
childPaginator: MatPaginator;
|
|
198
199
|
sort: MatSort;
|
|
199
|
-
protected constructor(
|
|
200
|
+
protected constructor(columns: string[], _dataSource?: EntitiesTableDataSource<T, F, ID>, _filter?: F);
|
|
200
201
|
ngOnInit(): void;
|
|
201
202
|
ngAfterViewInit(): void;
|
|
202
203
|
ngOnDestroy(): void;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AfterViewInit,
|
|
1
|
+
import { AfterViewInit, OnDestroy, OnInit } from '@angular/core';
|
|
2
2
|
import { AppTable } from '../table.class';
|
|
3
3
|
import { Referential } from '../../services/model/referential.model';
|
|
4
4
|
import { IonInfiniteScroll } from '@ionic/angular';
|
|
@@ -12,7 +12,6 @@ import * as i0 from "@angular/core";
|
|
|
12
12
|
export declare class TableTestPage extends AppTable<Referential, ReferentialFilter> implements OnInit, OnDestroy, AfterViewInit {
|
|
13
13
|
protected validatorService: AppValidatorService;
|
|
14
14
|
protected formBuilder: UntypedFormBuilder;
|
|
15
|
-
protected cd: ChangeDetectorRef;
|
|
16
15
|
readonly maxRowCount = 100;
|
|
17
16
|
timer: Subscription;
|
|
18
17
|
canEdit: boolean;
|
|
@@ -31,7 +30,7 @@ export declare class TableTestPage extends AppTable<Referential, ReferentialFilt
|
|
|
31
30
|
filterExpansionPanel: MatExpansionPanel;
|
|
32
31
|
infiniteScroll: IonInfiniteScroll;
|
|
33
32
|
get dataService(): InMemoryEntitiesService<Referential>;
|
|
34
|
-
constructor(
|
|
33
|
+
constructor(validatorService: AppValidatorService, formBuilder: UntypedFormBuilder);
|
|
35
34
|
ngOnInit(): void;
|
|
36
35
|
ngAfterViewInit(): Promise<void>;
|
|
37
36
|
ngOnDestroy(): void;
|
|
@@ -50,7 +49,6 @@ export declare class TableTestPage extends AppTable<Referential, ReferentialFilt
|
|
|
50
49
|
startTimer(): void;
|
|
51
50
|
stopTimer(): void;
|
|
52
51
|
protected generateData(offset?: number, size?: number): Referential[];
|
|
53
|
-
protected markForCheck(): void;
|
|
54
52
|
static ɵfac: i0.ɵɵFactoryDeclaration<TableTestPage, never>;
|
|
55
53
|
static ɵcmp: i0.ɵɵComponentDeclaration<TableTestPage, "app-table-testing", never, { "filterPanelFloating": { "alias": "filterPanelFloating"; "required": false; }; "enableInfiniteScroll": { "alias": "enableInfiniteScroll"; "required": false; }; "sticky": { "alias": "sticky"; "required": false; }; "stickyEnd": { "alias": "stickyEnd"; "required": false; }; }, {}, never, never, false, never>;
|
|
56
54
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AfterViewInit,
|
|
1
|
+
import { AfterViewInit, OnDestroy, OnInit } from '@angular/core';
|
|
2
2
|
import { AppTable } from '../table.class';
|
|
3
3
|
import { Referential } from '../../services/model/referential.model';
|
|
4
4
|
import { IonInfiniteScroll } from '@ionic/angular';
|
|
@@ -11,7 +11,6 @@ import * as i0 from "@angular/core";
|
|
|
11
11
|
export declare class Table2TestPage extends AppTable<Referential, ReferentialFilter> implements OnInit, OnDestroy, AfterViewInit {
|
|
12
12
|
protected validatorService: AppValidatorService;
|
|
13
13
|
protected formBuilder: UntypedFormBuilder;
|
|
14
|
-
protected cd: ChangeDetectorRef;
|
|
15
14
|
readonly maxRowCount = 100;
|
|
16
15
|
canEdit: boolean;
|
|
17
16
|
data: Referential[];
|
|
@@ -28,7 +27,7 @@ export declare class Table2TestPage extends AppTable<Referential, ReferentialFil
|
|
|
28
27
|
filterExpansionPanel: MatExpansionPanel;
|
|
29
28
|
infiniteScroll: IonInfiniteScroll;
|
|
30
29
|
get dataService(): InMemoryEntitiesService<Referential>;
|
|
31
|
-
constructor(
|
|
30
|
+
constructor(validatorService: AppValidatorService, formBuilder: UntypedFormBuilder);
|
|
32
31
|
ngOnInit(): void;
|
|
33
32
|
ngAfterViewInit(): Promise<void>;
|
|
34
33
|
ngOnDestroy(): void;
|
|
@@ -44,7 +43,6 @@ export declare class Table2TestPage extends AppTable<Referential, ReferentialFil
|
|
|
44
43
|
closeFilterPanel(): void;
|
|
45
44
|
resetFilter(_?: Event): void;
|
|
46
45
|
protected generateData(offset?: number, size?: number): Referential[];
|
|
47
|
-
protected markForCheck(): void;
|
|
48
46
|
static ɵfac: i0.ɵɵFactoryDeclaration<Table2TestPage, never>;
|
|
49
47
|
static ɵcmp: i0.ɵɵComponentDeclaration<Table2TestPage, "app-table2-testing", never, { "filterPanelFloating": { "alias": "filterPanelFloating"; "required": false; }; "sticky": { "alias": "sticky"; "required": false; }; "stickyEnd": { "alias": "stickyEnd"; "required": false; }; }, {}, never, ["[suffix]"], false, never>;
|
|
50
48
|
}
|
|
@@ -10,9 +10,6 @@ import { MatAutocompleteField } from '../material/autocomplete/material.autocomp
|
|
|
10
10
|
import { MatFormFieldAppearance } from '@angular/material/form-field';
|
|
11
11
|
import * as i0 from "@angular/core";
|
|
12
12
|
export declare class AppFormField implements OnInit, ControlValueAccessor {
|
|
13
|
-
protected translate: TranslateService;
|
|
14
|
-
protected cd: ChangeDetectorRef;
|
|
15
|
-
protected injector: Injector;
|
|
16
13
|
private formGroupDir;
|
|
17
14
|
private _onChangeCallback;
|
|
18
15
|
private _onTouchedCallback;
|
|
@@ -20,6 +17,9 @@ export declare class AppFormField implements OnInit, ControlValueAccessor {
|
|
|
20
17
|
protected _values: Property[];
|
|
21
18
|
protected type: FormFieldType;
|
|
22
19
|
protected numberInputStep: string;
|
|
20
|
+
protected readonly translate: TranslateService;
|
|
21
|
+
protected readonly cd: ChangeDetectorRef;
|
|
22
|
+
protected readonly injector: Injector;
|
|
23
23
|
set definition(value: FormFieldDefinition);
|
|
24
24
|
get definition(): FormFieldDefinition;
|
|
25
25
|
required: boolean;
|
|
@@ -41,7 +41,7 @@ export declare class AppFormField implements OnInit, ControlValueAccessor {
|
|
|
41
41
|
get value(): any;
|
|
42
42
|
matInput: ElementRef;
|
|
43
43
|
autocompleteField: MatAutocompleteField;
|
|
44
|
-
constructor(
|
|
44
|
+
constructor(formGroupDir: FormGroupDirective);
|
|
45
45
|
ngOnInit(): void;
|
|
46
46
|
writeValue(obj: any): void;
|
|
47
47
|
registerOnChange(fn: any): void;
|
|
@@ -68,6 +68,6 @@ export declare class AppFormField implements OnInit, ControlValueAccessor {
|
|
|
68
68
|
emitEvent?: boolean;
|
|
69
69
|
}): void;
|
|
70
70
|
protected updateTabIndex(timeout?: number): void;
|
|
71
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<AppFormField, [
|
|
71
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AppFormField, [{ optional: true; }]>;
|
|
72
72
|
static ɵcmp: i0.ɵɵComponentDeclaration<AppFormField, "app-form-field", never, { "definition": { "alias": "definition"; "required": false; }; "required": { "alias": "required"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "formControl": { "alias": "formControl"; "required": false; }; "formControlName": { "alias": "formControlName"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "compact": { "alias": "compact"; "required": false; }; "floatLabel": { "alias": "floatLabel"; "required": false; }; "appearance": { "alias": "appearance"; "required": false; }; "tabindex": { "alias": "tabindex"; "required": false; }; "autofocus": { "alias": "autofocus"; "required": false; }; "clearable": { "alias": "clearable"; "required": false; }; "chipColor": { "alias": "chipColor"; "required": false; }; "classList": { "alias": "class"; "required": false; }; "debug": { "alias": "debug"; "required": false; }; }, { "onKeyupEnter": "keyup.enter"; }, never, ["[matSuffix]", "[matSuffix]", "[matSuffix]", "[matSuffix]", "[matSuffix]", "[matSuffix]", "[matPrefix]", "[matSuffix]", "[matSuffix]", "[matPrefix]", "[matSuffix]", "[matPrefix]", "[matSuffix]", "[matSuffix]"], false, never>;
|
|
73
73
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ChangeDetectorRef
|
|
1
|
+
import { ChangeDetectorRef } from '@angular/core';
|
|
2
2
|
import { ModalController } from '@ionic/angular';
|
|
3
3
|
import { PlatformService } from '../../core/services/platform.service';
|
|
4
4
|
import { LocalSettingsService } from '../../core/services/local-settings.service';
|
|
@@ -11,12 +11,6 @@ export interface AppHelpModalOptions {
|
|
|
11
11
|
showError?: boolean;
|
|
12
12
|
}
|
|
13
13
|
export declare class AppHelpModal implements AppHelpModalOptions {
|
|
14
|
-
protected injector: Injector;
|
|
15
|
-
protected viewCtrl: ModalController;
|
|
16
|
-
protected platform: PlatformService;
|
|
17
|
-
protected settings: LocalSettingsService;
|
|
18
|
-
protected translate: TranslateService;
|
|
19
|
-
protected cd: ChangeDetectorRef;
|
|
20
14
|
readonly debug: boolean;
|
|
21
15
|
loading: boolean;
|
|
22
16
|
error: string;
|
|
@@ -24,7 +18,12 @@ export declare class AppHelpModal implements AppHelpModalOptions {
|
|
|
24
18
|
showError: boolean;
|
|
25
19
|
markdownContent: string;
|
|
26
20
|
markdownUrl: string;
|
|
27
|
-
|
|
21
|
+
protected readonly viewCtrl: ModalController;
|
|
22
|
+
protected readonly platform: PlatformService;
|
|
23
|
+
protected readonly settings: LocalSettingsService;
|
|
24
|
+
protected readonly translate: TranslateService;
|
|
25
|
+
protected readonly cd: ChangeDetectorRef;
|
|
26
|
+
constructor();
|
|
28
27
|
close(_?: Event): Promise<boolean>;
|
|
29
28
|
markAsLoaded(): void;
|
|
30
29
|
onLoadError(error?: string | Error): void;
|
|
@@ -16,7 +16,7 @@ export interface InputElement extends FocusableElement {
|
|
|
16
16
|
}
|
|
17
17
|
export declare function isInputElement(object: any): object is InputElement;
|
|
18
18
|
export declare function asInputElement(object: ElementRef): InputElement | undefined;
|
|
19
|
-
export declare function tabindexComparator(a: InputElement, b: InputElement):
|
|
19
|
+
export declare function tabindexComparator(a: InputElement, b: InputElement): 0 | 1 | -1;
|
|
20
20
|
export interface CanGainFocusOptions {
|
|
21
21
|
minTabindex?: number;
|
|
22
22
|
maxTabindex?: number;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter,
|
|
1
|
+
import { AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter, OnDestroy, OnInit, Renderer2 } from '@angular/core';
|
|
2
2
|
import { ControlValueAccessor, FormGroupDirective, UntypedFormControl } from '@angular/forms';
|
|
3
3
|
import { BehaviorSubject, Observable } from 'rxjs';
|
|
4
4
|
import { SuggestFn } from '../../services/entity-service.class';
|
|
@@ -11,11 +11,7 @@ import { IonSearchbar, ModalController } from '@ionic/angular';
|
|
|
11
11
|
import { MatAutocompleteFieldConfig } from './material.autocomplete.config';
|
|
12
12
|
import * as i0 from "@angular/core";
|
|
13
13
|
export declare class MatAutocompleteField implements OnInit, AfterViewInit, OnDestroy, InputElement, ControlValueAccessor {
|
|
14
|
-
protected injector: Injector;
|
|
15
14
|
protected el: ElementRef<HTMLElement>;
|
|
16
|
-
protected cd: ChangeDetectorRef;
|
|
17
|
-
protected modalController: ModalController;
|
|
18
|
-
protected renderer: Renderer2;
|
|
19
15
|
private formGroupDir;
|
|
20
16
|
private _onChangeCallback;
|
|
21
17
|
private _onTouchedCallback;
|
|
@@ -35,6 +31,9 @@ export declare class MatAutocompleteField implements OnInit, AfterViewInit, OnDe
|
|
|
35
31
|
protected _moreItemsCount: number;
|
|
36
32
|
protected _fetchMore$: EventEmitter<Event>;
|
|
37
33
|
protected _defaultPanelWidth: string;
|
|
34
|
+
protected readonly cd: ChangeDetectorRef;
|
|
35
|
+
protected readonly modalController: ModalController;
|
|
36
|
+
protected readonly renderer: Renderer2;
|
|
38
37
|
equals: EqualsFn;
|
|
39
38
|
logPrefix: string;
|
|
40
39
|
formControl: UntypedFormControl;
|
|
@@ -93,7 +92,7 @@ export declare class MatAutocompleteField implements OnInit, AfterViewInit, OnDe
|
|
|
93
92
|
matInputText: ElementRef;
|
|
94
93
|
autocomplete: MatAutocomplete;
|
|
95
94
|
autocompleteTrigger: MatAutocompleteTrigger;
|
|
96
|
-
constructor(
|
|
95
|
+
constructor(el: ElementRef<HTMLElement>, formGroupDir: FormGroupDirective);
|
|
97
96
|
get itemCount(): number;
|
|
98
97
|
get canFetchMore(): boolean;
|
|
99
98
|
set filter(value: any);
|
|
@@ -149,7 +148,7 @@ export declare class MatAutocompleteField implements OnInit, AfterViewInit, OnDe
|
|
|
149
148
|
* @private
|
|
150
149
|
*/
|
|
151
150
|
private _fixSearchbarOverlay;
|
|
152
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<MatAutocompleteField, [null,
|
|
151
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<MatAutocompleteField, [null, { optional: true; }]>;
|
|
153
152
|
static ɵcmp: i0.ɵɵComponentDeclaration<MatAutocompleteField, "mat-autocomplete-field", never, { "equals": { "alias": "equals"; "required": false; }; "logPrefix": { "alias": "logPrefix"; "required": false; }; "formControl": { "alias": "formControl"; "required": false; }; "formControlName": { "alias": "formControlName"; "required": false; }; "floatLabel": { "alias": "floatLabel"; "required": false; }; "appearance": { "alias": "appearance"; "required": false; }; "subscriptSizing": { "alias": "subscriptSizing"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "suggestFn": { "alias": "suggestFn"; "required": false; }; "required": { "alias": "required"; "required": false; }; "mobile": { "alias": "mobile"; "required": false; }; "clearable": { "alias": "clearable"; "required": false; }; "debounceTime": { "alias": "debounceTime"; "required": false; }; "displaySeparator": { "alias": "displaySeparator"; "required": false; }; "displayWith": { "alias": "displayWith"; "required": false; }; "displayAttributes": { "alias": "displayAttributes"; "required": false; }; "displayColumnSizes": { "alias": "displayColumnSizes"; "required": false; }; "displayColumnNames": { "alias": "displayColumnNames"; "required": false; }; "highlightAccent": { "alias": "highlightAccent"; "required": false; }; "showAllOnFocus": { "alias": "showAllOnFocus"; "required": false; }; "showPanelOnFocus": { "alias": "showPanelOnFocus"; "required": false; }; "autofocus": { "alias": "autofocus"; "required": false; }; "config": { "alias": "config"; "required": false; }; "i18nPrefix": { "alias": "i18nPrefix"; "required": false; }; "noResultMessage": { "alias": "noResultMessage"; "required": false; }; "panelClass": { "alias": "panelClass"; "required": false; }; "panelWidth": { "alias": "panelWidth"; "required": false; }; "disableRipple": { "alias": "disableRipple"; "required": false; }; "matAutocompletePosition": { "alias": "matAutocompletePosition"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "fetchMoreThreshold": { "alias": "fetchMoreThreshold"; "required": false; }; "suggestLengthThreshold": { "alias": "suggestLengthThreshold"; "required": false; }; "showLoadingSpinner": { "alias": "showLoadingSpinner"; "required": false; }; "debug": { "alias": "debug"; "required": false; }; "showSearchBar": { "alias": "showSearchBar"; "required": false; }; "stickySearchBar": { "alias": "stickySearchBar"; "required": false; }; "applyImplicitValue": { "alias": "applyImplicitValue"; "required": false; }; "dropButtonTitle": { "alias": "dropButtonTitle"; "required": false; }; "clearButtonTitle": { "alias": "clearButtonTitle"; "required": false; }; "trimSearchText": { "alias": "trimSearchText"; "required": false; }; "splitSearchText": { "alias": "splitSearchText"; "required": false; }; "classList": { "alias": "class"; "required": false; }; "filter": { "alias": "filter"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "tabindex": { "alias": "tabindex"; "required": false; }; "items": { "alias": "items"; "required": false; }; }, { "clicked": "click"; "blurred": "blur"; "focused": "focus"; "dropButtonClick": "dropButtonClick"; "keydownEscape": "keydown.escape"; "keyupEnter": "keyup.enter"; "optionSelected": "optionSelected"; }, never, ["[matAfter]", "[matPrefix]", "[matSuffix]", "mat-error,[matError]", "mat-hint:not([align='end']),[matHint]", "mat-hint[align='end']"], false, never>;
|
|
154
153
|
static ngAcceptInputType_required: unknown;
|
|
155
154
|
static ngAcceptInputType_mobile: unknown;
|
|
@@ -1,21 +1,18 @@
|
|
|
1
|
-
import { AfterViewInit,
|
|
1
|
+
import { AfterViewInit, OnInit } from '@angular/core';
|
|
2
2
|
import { AppForm } from '../../../../core/form/form.class';
|
|
3
3
|
import { UntypedFormBuilder } from '@angular/forms';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export declare class BooleanTestPage extends AppForm<any> implements OnInit, AfterViewInit {
|
|
6
|
-
protected injector: Injector;
|
|
7
6
|
protected formBuilder: UntypedFormBuilder;
|
|
8
|
-
protected cd: ChangeDetectorRef;
|
|
9
7
|
stringify: {
|
|
10
8
|
(value: any, replacer?: (this: any, key: string, value: any) => any, space?: string | number): string;
|
|
11
9
|
(value: any, replacer?: (string | number)[], space?: string | number): string;
|
|
12
10
|
};
|
|
13
11
|
mode: 'radio' | 'checkbox' | 'button';
|
|
14
12
|
styles: string[];
|
|
15
|
-
constructor(
|
|
13
|
+
constructor(formBuilder: UntypedFormBuilder);
|
|
16
14
|
ngAfterViewInit(): void;
|
|
17
15
|
toggleMode(value: any): void;
|
|
18
|
-
protected markForCheck(): void;
|
|
19
16
|
protected clearControlValue(path: string, event?: Event): void;
|
|
20
17
|
static ɵfac: i0.ɵɵFactoryDeclaration<BooleanTestPage, never>;
|
|
21
18
|
static ɵcmp: i0.ɵɵComponentDeclaration<BooleanTestPage, "app-boolean-test-page", never, {}, {}, never, never, false, never>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ElementRef, EventEmitter, OnInit } from '@angular/core';
|
|
2
2
|
import { ControlValueAccessor, FormGroupDirective, UntypedFormBuilder, UntypedFormControl, ValidatorFn } from '@angular/forms';
|
|
3
3
|
import { CdkTextareaAutosize } from '@angular/cdk/text-field';
|
|
4
4
|
import { AppForm } from '../../../core/form/form.class';
|
|
@@ -8,8 +8,6 @@ import * as i0 from "@angular/core";
|
|
|
8
8
|
export declare class TextForm extends AppForm<{
|
|
9
9
|
text: string;
|
|
10
10
|
}> implements OnInit, ControlValueAccessor {
|
|
11
|
-
protected injector: Injector;
|
|
12
|
-
protected cd: ChangeDetectorRef;
|
|
13
11
|
protected formBuilder: UntypedFormBuilder;
|
|
14
12
|
private formGroupDir;
|
|
15
13
|
showError: boolean;
|
|
@@ -39,7 +37,7 @@ export declare class TextForm extends AppForm<{
|
|
|
39
37
|
textControl: UntypedFormControl;
|
|
40
38
|
private _onChangeCallback;
|
|
41
39
|
private _onTouchedCallback;
|
|
42
|
-
constructor(
|
|
40
|
+
constructor(formBuilder: UntypedFormBuilder, formGroupDir: FormGroupDirective);
|
|
43
41
|
ngOnInit(): void;
|
|
44
42
|
containerResize(): void;
|
|
45
43
|
focusInput(): void;
|
|
@@ -47,12 +45,11 @@ export declare class TextForm extends AppForm<{
|
|
|
47
45
|
registerOnTouched(fn: any): void;
|
|
48
46
|
setDisabledState(isDisabled: boolean): void;
|
|
49
47
|
writeValue(value: any): void;
|
|
50
|
-
protected markForCheck(): void;
|
|
51
48
|
protected checkIfTouched(opts?: {
|
|
52
49
|
emitEvent?: boolean;
|
|
53
50
|
}): void;
|
|
54
51
|
private textFormValueChanged;
|
|
55
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<TextForm, [null,
|
|
52
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TextForm, [null, { optional: true; }]>;
|
|
56
53
|
static ɵcmp: i0.ɵɵComponentDeclaration<TextForm, "app-text-form", never, { "showError": { "alias": "showError"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "multiline": { "alias": "multiline"; "required": false; }; "autoSize": { "alias": "autoSize"; "required": false; }; "autoSizeMinRows": { "alias": "autoSizeMinRows"; "required": false; }; "autoSizeMaxRows": { "alias": "autoSizeMaxRows"; "required": false; }; "maxLength": { "alias": "maxLength"; "required": false; }; "autofocus": { "alias": "autofocus"; "required": false; }; "validator": { "alias": "validator"; "required": false; }; "standalone": { "alias": "standalone"; "required": false; }; "formControl": { "alias": "formControl"; "required": false; }; "formControlName": { "alias": "formControlName"; "required": false; }; "floatLabel": { "alias": "floatLabel"; "required": false; }; "appearance": { "alias": "appearance"; "required": false; }; "subscriptSizing": { "alias": "subscriptSizing"; "required": false; }; "autoHeight": { "alias": "autoHeight"; "required": false; }; }, { "textAreaChanges": "textAreaChanges"; }, never, ["[matError]"], false, never>;
|
|
57
54
|
static ngAcceptInputType_showError: unknown;
|
|
58
55
|
static ngAcceptInputType_multiline: unknown;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { EventEmitter, OnInit } from '@angular/core';
|
|
2
2
|
import { UntypedFormBuilder } from '@angular/forms';
|
|
3
3
|
import { PopoverController, ToastController } from '@ionic/angular';
|
|
4
4
|
import { AppForm } from '../../core/form/form.class';
|
|
@@ -9,9 +9,7 @@ import { INamedFilterService, NamedFilterLoadOptions, NamedFilterWatchOptions }
|
|
|
9
9
|
import { MatFormFieldAppearance, SubscriptSizing } from '@angular/material/form-field';
|
|
10
10
|
import * as i0 from "@angular/core";
|
|
11
11
|
export declare class NamedFilterSelector extends AppForm<any> implements OnInit {
|
|
12
|
-
protected injector: Injector;
|
|
13
12
|
protected formBuilder: UntypedFormBuilder;
|
|
14
|
-
protected cd: ChangeDetectorRef;
|
|
15
13
|
protected toastController: ToastController;
|
|
16
14
|
protected popoverController: PopoverController;
|
|
17
15
|
protected dataService: INamedFilterService<INamedFilter<any>, INamedFilterFilter<any, any>, NamedFilterWatchOptions, NamedFilterLoadOptions>;
|
|
@@ -38,14 +36,13 @@ export declare class NamedFilterSelector extends AppForm<any> implements OnInit
|
|
|
38
36
|
filterDeleted: EventEmitter<NamedFilter<NamedFilter<any>>>;
|
|
39
37
|
filterCleared: EventEmitter<void>;
|
|
40
38
|
autocompleteField: MatAutocompleteField;
|
|
41
|
-
constructor(
|
|
39
|
+
constructor(formBuilder: UntypedFormBuilder, toastController: ToastController, popoverController: PopoverController, dataService: INamedFilterService<INamedFilter<any>, INamedFilterFilter<any, any>, NamedFilterWatchOptions, NamedFilterLoadOptions>);
|
|
42
40
|
get isNew(): boolean;
|
|
43
41
|
get saveDisabled(): boolean;
|
|
44
42
|
get deleteDisabled(): boolean;
|
|
45
43
|
get dirty(): boolean;
|
|
46
44
|
ngOnInit(): void;
|
|
47
45
|
getFilter(): any;
|
|
48
|
-
markForCheck(): void;
|
|
49
46
|
save(event: UIEvent): Promise<void>;
|
|
50
47
|
delete(event?: UIEvent): Promise<void>;
|
|
51
48
|
export(event?: UIEvent): Promise<void>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { OnInit } from '@angular/core';
|
|
2
2
|
import { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';
|
|
3
3
|
import { Message } from './message.model';
|
|
4
4
|
import { AppForm } from '../../core/form/form.class';
|
|
@@ -8,7 +8,6 @@ import { PersonFilter } from '../../admin/services/filter/person.filter';
|
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
9
9
|
export declare class MessageForm extends AppForm<Message> implements OnInit {
|
|
10
10
|
private formBuilder;
|
|
11
|
-
private readonly cd;
|
|
12
11
|
readonly mobile: boolean;
|
|
13
12
|
suggestFn: SuggestFn<Person, PersonFilter>;
|
|
14
13
|
subjectMinLength: number;
|
|
@@ -23,14 +22,13 @@ export declare class MessageForm extends AppForm<Message> implements OnInit {
|
|
|
23
22
|
icon: string;
|
|
24
23
|
label: string;
|
|
25
24
|
}[];
|
|
26
|
-
constructor(
|
|
25
|
+
constructor(formBuilder: UntypedFormBuilder);
|
|
27
26
|
ngOnInit(): void;
|
|
28
27
|
isSamePerson(o1: Person, o2: Person): boolean;
|
|
29
28
|
protected updateFormGroup(formGroup: UntypedFormGroup, opts?: {
|
|
30
29
|
type?: string;
|
|
31
30
|
recipientRequired?: boolean;
|
|
32
31
|
}): void;
|
|
33
|
-
protected markForCheck(): void;
|
|
34
32
|
static ɵfac: i0.ɵɵFactoryDeclaration<MessageForm, never>;
|
|
35
33
|
static ɵcmp: i0.ɵɵComponentDeclaration<MessageForm, "app-message-form", never, { "suggestFn": { "alias": "suggestFn"; "required": false; }; "subjectMinLength": { "alias": "subjectMinLength"; "required": false; }; "subjectMaxLength": { "alias": "subjectMaxLength"; "required": false; }; "bodyMaxLength": { "alias": "bodyMaxLength"; "required": false; }; "bodyAutoHeight": { "alias": "bodyAutoHeight"; "required": false; }; "canSelectType": { "alias": "canSelectType"; "required": false; }; "canRecipientFilter": { "alias": "canRecipientFilter"; "required": false; }; "recipientFilterCount": { "alias": "recipientFilterCount"; "required": false; }; }, {}, never, never, false, never>;
|
|
36
34
|
}
|
package/src/assets/manifest.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "ngx-sumaris-components",
|
|
3
3
|
"short_name": "ngx-sumaris-components",
|
|
4
4
|
"manifest_version": 1,
|
|
5
|
-
"version": "2.12.
|
|
5
|
+
"version": "2.12.25",
|
|
6
6
|
"default_locale": "fr",
|
|
7
7
|
"description": "Angular components for building beautiful and responsive Apps",
|
|
8
8
|
"icons": [{
|