@sumaris-net/ngx-components 2.7.6 → 2.8.0-rc2
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/doc/changelog.md +8 -0
- package/esm2022/public_api.mjs +7 -3
- package/esm2022/src/app/admin/users/users.mjs +5 -3
- package/esm2022/src/app/core/account/new-token.modal.mjs +4 -4
- package/esm2022/src/app/core/auth/auth.form.mjs +2 -2
- package/esm2022/src/app/core/core.testing.module.mjs +2 -2
- package/esm2022/src/app/core/form/entity/editor.class.mjs +33 -487
- package/esm2022/src/app/core/form/entity/entity-editor-modal.class.mjs +14 -26
- package/esm2022/src/app/core/form/entity/entity-editor.class.mjs +5 -4
- package/esm2022/src/app/core/form/entity/tab-editor.class.mjs +194 -0
- package/esm2022/src/app/core/form/form-container.class.mjs +312 -0
- package/esm2022/src/app/core/form/form.class.mjs +27 -36
- package/esm2022/src/app/core/form/form.utils.mjs +1 -1
- package/esm2022/src/app/core/menu/testing/menu.testing.mjs +2 -2
- package/esm2022/src/app/core/services/model/settings.model.mjs +2 -1
- package/esm2022/src/app/core/settings/settings.page.mjs +5 -9
- package/esm2022/src/app/core/table/table.class.mjs +9 -5
- package/esm2022/src/app/core/table/table.module.mjs +16 -3
- package/esm2022/src/app/core/table/table.pipes.mjs +74 -0
- package/esm2022/src/app/core/table/testing/table.testing.mjs +39 -17
- package/esm2022/src/app/core/table/testing/table2.testing.mjs +40 -22
- package/esm2022/src/app/shared/material/boolean/material.boolean.mjs +3 -3
- package/esm2022/src/app/shared/pipes/form.pipes.mjs +10 -10
- package/esm2022/src/app/shared/pipes/pipes.module.mjs +28 -3
- package/esm2022/src/app/shared/pipes/selection.pipes.mjs +176 -0
- package/esm2022/src/app/shared/validator/validators.mjs +3 -2
- package/fesm2022/sumaris-net.ngx-components.mjs +655 -321
- package/fesm2022/sumaris-net.ngx-components.mjs.map +1 -1
- package/package.json +1 -1
- package/public_api.d.ts +6 -2
- package/src/app/core/account/new-token.modal.d.ts +1 -1
- package/src/app/core/form/entity/editor.class.d.ts +18 -177
- package/src/app/core/form/entity/entity-editor-modal.class.d.ts +9 -12
- package/src/app/core/form/entity/entity-editor.class.d.ts +10 -6
- package/src/app/core/form/entity/tab-editor.class.d.ts +70 -0
- package/src/app/core/form/form-container.class.d.ts +123 -0
- package/src/app/core/form/form.class.d.ts +11 -21
- package/src/app/core/form/form.utils.d.ts +38 -23
- package/src/app/core/menu/testing/menu.testing.d.ts +1 -1
- package/src/app/core/services/model/settings.model.d.ts +1 -0
- package/src/app/core/settings/settings.page.d.ts +1 -2
- package/src/app/core/table/table.module.d.ts +4 -3
- package/src/app/core/table/table.pipes.d.ts +28 -0
- package/src/app/core/table/testing/table.testing.d.ts +9 -5
- package/src/app/core/table/testing/table2.testing.d.ts +10 -5
- package/src/app/shared/pipes/form.pipes.d.ts +1 -1
- package/src/app/shared/pipes/pipes.module.d.ts +5 -4
- package/src/app/shared/pipes/selection.pipes.d.ts +62 -0
- package/src/app/shared/validator/validators.d.ts +1 -0
- package/src/assets/manifest.json +1 -1
- package/src/theme/_ngx-components.scss +4 -0
- package/src/theme/_ngx-components.table.scss +4 -14
|
@@ -8,38 +8,22 @@ import { FormErrorTranslator, FormErrorTranslatorOptions, IFormControlPathTransl
|
|
|
8
8
|
import { TranslateService } from '@ngx-translate/core';
|
|
9
9
|
import { MatAutocompleteConfigHolder, MatAutocompleteFieldAddOptions, MatAutocompleteFieldConfig } from '../../shared/material/autocomplete/material.autocomplete.config';
|
|
10
10
|
import * as i0 from "@angular/core";
|
|
11
|
-
export declare class AppForm<T> implements IAppForm
|
|
11
|
+
export declare class AppForm<T> implements IAppForm<T>, OnInit, OnDestroy, IFormControlPathTranslator {
|
|
12
12
|
private _subscription;
|
|
13
13
|
protected _form: UntypedFormGroup;
|
|
14
|
-
protected
|
|
14
|
+
protected _enabled: boolean;
|
|
15
15
|
protected errorTranslator: FormErrorTranslator;
|
|
16
16
|
protected i18nFieldPrefix: string;
|
|
17
17
|
protected readonly translate: TranslateService;
|
|
18
18
|
protected readonly settings: LocalSettingsService;
|
|
19
19
|
protected readonly destroySubject: Subject<void>;
|
|
20
|
+
readonly readySubject: BehaviorSubject<boolean>;
|
|
21
|
+
readonly loadingSubject: BehaviorSubject<boolean>;
|
|
22
|
+
readonly errorSubject: BehaviorSubject<string>;
|
|
20
23
|
readonly autocompleteHelper: MatAutocompleteConfigHolder;
|
|
21
24
|
readonly autocompleteFields: {
|
|
22
25
|
[key: string]: MatAutocompleteFieldConfig;
|
|
23
26
|
};
|
|
24
|
-
readonly readySubject: BehaviorSubject<boolean>;
|
|
25
|
-
readonly loadingSubject: BehaviorSubject<boolean>;
|
|
26
|
-
readonly errorSubject: BehaviorSubject<string>;
|
|
27
|
-
/**
|
|
28
|
-
* @deprecated
|
|
29
|
-
*/
|
|
30
|
-
protected set _loading(value: boolean);
|
|
31
|
-
/**
|
|
32
|
-
* @deprecated
|
|
33
|
-
*/
|
|
34
|
-
protected get _loading(): boolean;
|
|
35
|
-
/**
|
|
36
|
-
* @deprecated
|
|
37
|
-
*/
|
|
38
|
-
protected get _$ready(): BehaviorSubject<boolean>;
|
|
39
|
-
/**
|
|
40
|
-
* @deprecated
|
|
41
|
-
*/
|
|
42
|
-
protected get _$loading(): BehaviorSubject<boolean>;
|
|
43
27
|
get error(): string;
|
|
44
28
|
set error(error: string);
|
|
45
29
|
get loading(): boolean;
|
|
@@ -55,6 +39,11 @@ export declare class AppForm<T> implements IAppForm, OnInit, OnDestroy, IFormCon
|
|
|
55
39
|
get untouched(): boolean;
|
|
56
40
|
get enabled(): boolean;
|
|
57
41
|
get disabled(): boolean;
|
|
42
|
+
/**
|
|
43
|
+
* @deprecated
|
|
44
|
+
*/
|
|
45
|
+
protected get _enable(): boolean;
|
|
46
|
+
protected set _enable(value: boolean);
|
|
58
47
|
disable(opts?: {
|
|
59
48
|
onlySelf?: boolean;
|
|
60
49
|
emitEvent?: boolean;
|
|
@@ -84,6 +73,7 @@ export declare class AppForm<T> implements IAppForm, OnInit, OnDestroy, IFormCon
|
|
|
84
73
|
checkValid?: boolean;
|
|
85
74
|
}): Promise<void>;
|
|
86
75
|
setForm(form: UntypedFormGroup): void;
|
|
76
|
+
getValue(): Promise<T> | T;
|
|
87
77
|
setValue(data: T, opts?: {
|
|
88
78
|
emitEvent?: boolean;
|
|
89
79
|
onlySelf?: boolean;
|
|
@@ -7,7 +7,7 @@ export declare type IAppFormGetter = () => IAppForm;
|
|
|
7
7
|
export declare interface OnReady {
|
|
8
8
|
ngOnReady(): any;
|
|
9
9
|
}
|
|
10
|
-
export interface IAppForm {
|
|
10
|
+
export interface IAppForm<T = any> {
|
|
11
11
|
invalid: boolean;
|
|
12
12
|
valid: boolean;
|
|
13
13
|
dirty: boolean;
|
|
@@ -17,49 +17,64 @@ export interface IAppForm {
|
|
|
17
17
|
disabled: boolean;
|
|
18
18
|
touched: boolean;
|
|
19
19
|
untouched: boolean;
|
|
20
|
+
disable(opts?: {
|
|
21
|
+
onlySelf?: boolean;
|
|
22
|
+
emitEvent?: boolean;
|
|
23
|
+
}): void;
|
|
24
|
+
enable(opts?: {
|
|
25
|
+
onlySelf?: boolean;
|
|
26
|
+
emitEvent?: boolean;
|
|
27
|
+
}): void;
|
|
20
28
|
empty?: boolean;
|
|
21
29
|
loading?: boolean;
|
|
30
|
+
loaded?: boolean;
|
|
31
|
+
destroyed?: boolean;
|
|
22
32
|
ready(): Promise<void>;
|
|
23
33
|
waitIdle(opts?: WaitForOptions): Promise<any>;
|
|
24
|
-
|
|
34
|
+
setValue?: (data: T, opts?: {
|
|
25
35
|
onlySelf?: boolean;
|
|
26
36
|
emitEvent?: boolean;
|
|
27
|
-
})
|
|
28
|
-
|
|
37
|
+
}) => Promise<void> | void;
|
|
38
|
+
patchValue?: (data: T, opts?: {
|
|
39
|
+
onlySelf?: boolean;
|
|
40
|
+
emitEvent?: boolean;
|
|
41
|
+
}) => Promise<void> | void;
|
|
42
|
+
reset?: (data?: T, opts?: {
|
|
29
43
|
onlySelf?: boolean;
|
|
30
44
|
emitEvent?: boolean;
|
|
31
|
-
})
|
|
45
|
+
}) => void;
|
|
46
|
+
getValue?: () => Promise<T> | T;
|
|
32
47
|
markAsPristine(opts?: {
|
|
33
48
|
onlySelf?: boolean;
|
|
34
49
|
emitEvent?: boolean;
|
|
35
|
-
}):
|
|
50
|
+
}): void;
|
|
36
51
|
markAsUntouched(opts?: {
|
|
37
52
|
onlySelf?: boolean;
|
|
38
53
|
emitEvent?: boolean;
|
|
39
|
-
}):
|
|
54
|
+
}): void;
|
|
40
55
|
markAsTouched(opts?: {
|
|
41
56
|
onlySelf?: boolean;
|
|
42
57
|
emitEvent?: boolean;
|
|
43
|
-
}):
|
|
58
|
+
}): void;
|
|
44
59
|
markAllAsTouched(opts?: {
|
|
45
60
|
emitEvent?: boolean;
|
|
46
|
-
}):
|
|
61
|
+
}): void;
|
|
47
62
|
markAsDirty(opts?: {
|
|
48
63
|
onlySelf?: boolean;
|
|
49
64
|
emitEvent?: boolean;
|
|
50
|
-
}):
|
|
65
|
+
}): void;
|
|
51
66
|
markAsLoading(opts?: {
|
|
52
67
|
onlySelf?: boolean;
|
|
53
68
|
emitEvent?: boolean;
|
|
54
|
-
}):
|
|
69
|
+
}): void;
|
|
55
70
|
markAsLoaded(opts?: {
|
|
56
71
|
onlySelf?: boolean;
|
|
57
72
|
emitEvent?: boolean;
|
|
58
|
-
}):
|
|
73
|
+
}): void;
|
|
59
74
|
markAsReady(opts?: {
|
|
60
75
|
onlySelf?: boolean;
|
|
61
76
|
emitEvent?: boolean;
|
|
62
|
-
}):
|
|
77
|
+
}): void;
|
|
63
78
|
}
|
|
64
79
|
/**
|
|
65
80
|
* A form that do nothing
|
|
@@ -140,42 +155,42 @@ export declare class AppFormProvider<F extends IAppForm = IAppForm> implements I
|
|
|
140
155
|
disable(opts?: {
|
|
141
156
|
onlySelf?: boolean;
|
|
142
157
|
emitEvent?: boolean;
|
|
143
|
-
}):
|
|
158
|
+
}): void;
|
|
144
159
|
enable(opts?: {
|
|
145
160
|
onlySelf?: boolean;
|
|
146
161
|
emitEvent?: boolean;
|
|
147
|
-
}):
|
|
162
|
+
}): void;
|
|
148
163
|
markAsPristine(opts?: {
|
|
149
164
|
onlySelf?: boolean;
|
|
150
165
|
emitEvent?: boolean;
|
|
151
|
-
}):
|
|
166
|
+
}): void;
|
|
152
167
|
markAsUntouched(opts?: {
|
|
153
168
|
onlySelf?: boolean;
|
|
154
169
|
emitEvent?: boolean;
|
|
155
|
-
}):
|
|
170
|
+
}): void;
|
|
156
171
|
markAsTouched(opts?: {
|
|
157
172
|
onlySelf?: boolean;
|
|
158
173
|
emitEvent?: boolean;
|
|
159
|
-
}):
|
|
174
|
+
}): void;
|
|
160
175
|
markAllAsTouched(opts?: {
|
|
161
176
|
emitEvent?: boolean;
|
|
162
|
-
}):
|
|
177
|
+
}): void;
|
|
163
178
|
markAsDirty(opts?: {
|
|
164
179
|
onlySelf?: boolean;
|
|
165
180
|
emitEvent?: boolean;
|
|
166
|
-
}):
|
|
181
|
+
}): void;
|
|
167
182
|
markAsLoading(opts?: {
|
|
168
183
|
onlySelf?: boolean;
|
|
169
184
|
emitEvent?: boolean;
|
|
170
|
-
}):
|
|
185
|
+
}): void;
|
|
171
186
|
markAsLoaded(opts?: {
|
|
172
187
|
onlySelf?: boolean;
|
|
173
188
|
emitEvent?: boolean;
|
|
174
|
-
}):
|
|
189
|
+
}): void;
|
|
175
190
|
markAsReady(opts?: {
|
|
176
191
|
onlySelf?: boolean;
|
|
177
192
|
emitEvent?: boolean;
|
|
178
|
-
}):
|
|
193
|
+
}): void;
|
|
179
194
|
}
|
|
180
195
|
export interface FormArrayHelperOptions {
|
|
181
196
|
allowEmptyArray: boolean;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { AfterViewInit, EventEmitter, OnDestroy, OnInit } from '@angular/core';
|
|
2
2
|
import { MenuService } from '../menu.service';
|
|
3
|
-
import { AppTabEditor } from '../../form/entity/editor.class';
|
|
4
3
|
import { ActivatedRoute, Router } from '@angular/router';
|
|
5
4
|
import { AlertController, NavController } from '@ionic/angular';
|
|
6
5
|
import { TranslateService } from '@ngx-translate/core';
|
|
7
6
|
import { Subject } from 'rxjs';
|
|
8
7
|
import { MatTabGroup } from '@angular/material/tabs';
|
|
8
|
+
import { AppTabEditor } from '../../form/entity/tab-editor.class';
|
|
9
9
|
import * as i0 from "@angular/core";
|
|
10
10
|
export declare class MenuTestingPage extends AppTabEditor implements OnInit, OnDestroy, AfterViewInit {
|
|
11
11
|
protected menuService: MenuService;
|
|
@@ -2,6 +2,7 @@ import { PropertiesMap, Property } from '../../../shared/types';
|
|
|
2
2
|
import { InjectionToken } from '@angular/core';
|
|
3
3
|
import { HistoryPageReference } from './history.model';
|
|
4
4
|
export type UsageMode = 'DESK' | 'FIELD';
|
|
5
|
+
export declare function isOnFieldMode(usageMode: UsageMode): void;
|
|
5
6
|
export declare interface LocaleConfig extends Property {
|
|
6
7
|
country?: string;
|
|
7
8
|
}
|
|
@@ -61,8 +61,7 @@ export declare class SettingsPage extends AppForm<LocalSettings> implements OnIn
|
|
|
61
61
|
close(_?: Event): Promise<boolean>;
|
|
62
62
|
clearCache(event?: Event): Promise<void>;
|
|
63
63
|
executeAction(event: Event, item: IMenuItem): Promise<void>;
|
|
64
|
-
|
|
65
|
-
protected getJsonValueToSave(): Promise<any>;
|
|
64
|
+
getValue(): Promise<LocalSettings>;
|
|
66
65
|
protected toggleDarkMode(): Promise<void>;
|
|
67
66
|
protected markForCheck(): void;
|
|
68
67
|
static ɵfac: i0.ɵɵFactoryDeclaration<SettingsPage, [null, null, null, null, null, null, null, null, null, null, null, null, { optional: true; }]>;
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import * as i0 from "@angular/core";
|
|
2
2
|
import * as i1 from "./table-select-columns.component";
|
|
3
3
|
import * as i2 from "./actions-column.component";
|
|
4
|
-
import * as i3 from "
|
|
5
|
-
import * as i4 from "
|
|
4
|
+
import * as i3 from "./table.pipes";
|
|
5
|
+
import * as i4 from "../../shared/shared.module";
|
|
6
|
+
import * as i5 from "@ngx-translate/core";
|
|
6
7
|
export declare class AppTableModule {
|
|
7
8
|
static ɵfac: i0.ɵɵFactoryDeclaration<AppTableModule, never>;
|
|
8
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<AppTableModule, [typeof i1.TableSelectColumnsComponent, typeof i2.ActionsColumnComponent], [typeof
|
|
9
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<AppTableModule, [typeof i1.TableSelectColumnsComponent, typeof i2.ActionsColumnComponent, typeof i3.IsAllSelectedPipe, typeof i3.IsNotAllSelectedPipe], [typeof i4.SharedModule, typeof i5.TranslateModule], [typeof i5.TranslateModule, typeof i1.TableSelectColumnsComponent, typeof i2.ActionsColumnComponent, typeof i3.IsAllSelectedPipe, typeof i3.IsNotAllSelectedPipe]>;
|
|
9
10
|
static ɵinj: i0.ɵɵInjectorDeclaration<AppTableModule>;
|
|
10
11
|
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { ChangeDetectorRef } from '@angular/core';
|
|
2
|
+
import { SelectionModel } from '@angular/cdk/collections';
|
|
3
|
+
import { AbstractSelectionModelPipe } from '../../shared/pipes/selection.pipes';
|
|
4
|
+
import { AppTable } from './table.class';
|
|
5
|
+
import { Subscription } from 'rxjs';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export type AppTableRowCountProperty = 'visibleRowCount' | 'totalRowCount';
|
|
8
|
+
export declare abstract class AbstractTableSelectionPipe<R, O, T extends AppTable<any> = AppTable<any>> extends AbstractSelectionModelPipe<any, R, O> {
|
|
9
|
+
private _onRowsChanges;
|
|
10
|
+
protected constructor(_ref: ChangeDetectorRef);
|
|
11
|
+
transform(selectionOrTable: SelectionModel<any> | T, tableOrOpts?: T | O, opts?: O): R;
|
|
12
|
+
protected _subscribe(selection: SelectionModel<any>, table?: T, opts?: O): Subscription;
|
|
13
|
+
protected _dispose(): void;
|
|
14
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AbstractTableSelectionPipe<any, any, any>, never>;
|
|
15
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<AbstractTableSelectionPipe<any, any, any>, never, never, {}, {}, never, never, false, never>;
|
|
16
|
+
}
|
|
17
|
+
export declare class IsAllSelectedPipe extends AbstractTableSelectionPipe<boolean, AppTableRowCountProperty> {
|
|
18
|
+
constructor(_ref: ChangeDetectorRef);
|
|
19
|
+
protected _transform(selection: SelectionModel<any>, table: AppTable<any>, countPropertyName?: AppTableRowCountProperty): boolean;
|
|
20
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<IsAllSelectedPipe, never>;
|
|
21
|
+
static ɵpipe: i0.ɵɵPipeDeclaration<IsAllSelectedPipe, "isAllSelected", false>;
|
|
22
|
+
}
|
|
23
|
+
export declare class IsNotAllSelectedPipe extends IsAllSelectedPipe {
|
|
24
|
+
constructor(_ref: ChangeDetectorRef);
|
|
25
|
+
protected _transform(selection: SelectionModel<any>, table: AppTable<any>, countPropertyName?: AppTableRowCountProperty): boolean;
|
|
26
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<IsNotAllSelectedPipe, never>;
|
|
27
|
+
static ɵpipe: i0.ɵɵPipeDeclaration<IsNotAllSelectedPipe, "isNotAllSelected", false>;
|
|
28
|
+
}
|
|
@@ -26,30 +26,34 @@ export declare class TableTestPage extends AppTable<Referential, ReferentialFilt
|
|
|
26
26
|
readonly statusList: readonly import("../../services/model/referential.model").IStatus[];
|
|
27
27
|
readonly statusById: Readonly<import("@sumaris-net/ngx-components").KeyValueType<import("../../services/model/referential.model").IStatus>>;
|
|
28
28
|
readonly columnDefinitions: FormFieldDefinitionMap;
|
|
29
|
+
filterPanelFloating: boolean;
|
|
29
30
|
enableInfiniteScroll: boolean;
|
|
30
|
-
|
|
31
|
+
sticky: boolean;
|
|
32
|
+
stickyEnd: boolean;
|
|
31
33
|
get hasMoreData(): boolean;
|
|
32
34
|
filterExpansionPanel: MatExpansionPanel;
|
|
33
35
|
infiniteScroll: IonInfiniteScroll;
|
|
34
36
|
get dataService(): InMemoryEntitiesService<Referential>;
|
|
35
37
|
constructor(injector: Injector, validatorService: AppValidatorService, formBuilder: UntypedFormBuilder, cd: ChangeDetectorRef);
|
|
36
38
|
ngOnInit(): void;
|
|
37
|
-
ngAfterViewInit(): void
|
|
39
|
+
ngAfterViewInit(): Promise<void>;
|
|
38
40
|
ngOnDestroy(): void;
|
|
39
|
-
protected restoreFilter(): void
|
|
41
|
+
protected restoreFilter(): Promise<void>;
|
|
40
42
|
toggleTimer(): void;
|
|
41
|
-
load(): void
|
|
43
|
+
load(): Promise<void>;
|
|
42
44
|
fetchMore(event: any): Promise<void>;
|
|
43
45
|
save(opts?: {
|
|
44
46
|
keepEditing?: boolean;
|
|
45
47
|
}): Promise<boolean>;
|
|
46
48
|
clearControlValue(event: Event, formControl: AbstractControl): boolean;
|
|
49
|
+
toggleFilterPanelFloating(): void;
|
|
47
50
|
applyFilterAndClosePanel(event?: Event): void;
|
|
51
|
+
closeFilterPanel(): void;
|
|
48
52
|
resetFilter(_?: Event): void;
|
|
49
53
|
startTimer(): void;
|
|
50
54
|
stopTimer(): void;
|
|
51
55
|
protected generateData(offset?: number, size?: number): Referential[];
|
|
52
56
|
protected markForCheck(): void;
|
|
53
57
|
static ɵfac: i0.ɵɵFactoryDeclaration<TableTestPage, never>;
|
|
54
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<TableTestPage, "app-table-testing", never, { "enableInfiniteScroll": { "alias": "enableInfiniteScroll"; "required": false; }; "
|
|
58
|
+
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>;
|
|
55
59
|
}
|
|
@@ -21,25 +21,30 @@ export declare class Table2TestPage extends AppTable<Referential, ReferentialFil
|
|
|
21
21
|
enableInfiniteScroll: boolean;
|
|
22
22
|
checkBoxSelection: boolean;
|
|
23
23
|
resizable: boolean;
|
|
24
|
+
filterPanelFloating: boolean;
|
|
25
|
+
sticky: boolean;
|
|
26
|
+
stickyEnd: boolean;
|
|
24
27
|
get hasMoreData(): boolean;
|
|
25
28
|
filterExpansionPanel: MatExpansionPanel;
|
|
26
29
|
infiniteScroll: IonInfiniteScroll;
|
|
27
30
|
get dataService(): InMemoryEntitiesService<Referential>;
|
|
28
31
|
constructor(injector: Injector, validatorService: AppValidatorService, formBuilder: UntypedFormBuilder, cd: ChangeDetectorRef);
|
|
29
32
|
ngOnInit(): void;
|
|
30
|
-
ngAfterViewInit(): void
|
|
33
|
+
ngAfterViewInit(): Promise<void>;
|
|
31
34
|
ngOnDestroy(): void;
|
|
32
|
-
protected restoreFilter(): void
|
|
33
|
-
load(): void
|
|
35
|
+
protected restoreFilter(): Promise<void>;
|
|
36
|
+
load(): Promise<void>;
|
|
34
37
|
fetchMore(event: any): Promise<void>;
|
|
35
38
|
save(opts?: {
|
|
36
39
|
keepEditing?: boolean;
|
|
37
40
|
}): Promise<boolean>;
|
|
38
41
|
clearControlValue(event: Event, formControl: AbstractControl): boolean;
|
|
42
|
+
toggleFilterPanelFloating(): void;
|
|
39
43
|
applyFilterAndClosePanel(event?: Event): void;
|
|
40
|
-
|
|
44
|
+
closeFilterPanel(): void;
|
|
45
|
+
resetFilter(_?: Event): void;
|
|
41
46
|
protected generateData(offset?: number, size?: number): Referential[];
|
|
42
47
|
protected markForCheck(): void;
|
|
43
48
|
static ɵfac: i0.ɵɵFactoryDeclaration<Table2TestPage, never>;
|
|
44
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<Table2TestPage, "app-table2-testing", never, {}, {}, never, ["[suffix]"], false, never>;
|
|
49
|
+
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>;
|
|
45
50
|
}
|
|
@@ -42,7 +42,7 @@ export declare class FormGetGroupPipe implements PipeTransform {
|
|
|
42
42
|
}
|
|
43
43
|
export declare class FormGetValuePipe implements PipeTransform, OnDestroy {
|
|
44
44
|
private _ref;
|
|
45
|
-
|
|
45
|
+
private _value;
|
|
46
46
|
private _lastControl;
|
|
47
47
|
private _lastPath;
|
|
48
48
|
private _onControlValueChanges;
|
|
@@ -18,11 +18,12 @@ import * as i16 from "./form.pipes";
|
|
|
18
18
|
import * as i17 from "./colors.pipe";
|
|
19
19
|
import * as i18 from "./types.pipes";
|
|
20
20
|
import * as i19 from "./maskito.pipe";
|
|
21
|
-
import * as i20 from "
|
|
22
|
-
import * as i21 from "@
|
|
23
|
-
import * as i22 from "@
|
|
21
|
+
import * as i20 from "./selection.pipes";
|
|
22
|
+
import * as i21 from "@angular/common";
|
|
23
|
+
import * as i22 from "@ionic/angular";
|
|
24
|
+
import * as i23 from "@ngx-translate/core";
|
|
24
25
|
export declare class SharedPipesModule {
|
|
25
26
|
static ɵfac: i0.ɵɵFactoryDeclaration<SharedPipesModule, never>;
|
|
26
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<SharedPipesModule, [typeof i1.PropertyGetPipe, typeof i1.PropertyFormatPipe, typeof i2.DateFormatPipe, typeof i3.DateDiffDurationPipe, typeof i4.DurationPipe, typeof i5.DateFromNowPipe, typeof i6.LatLongFormatPipe, typeof i6.LatitudeFormatPipe, typeof i6.LongitudeFormatPipe, typeof i7.HighlightPipe, typeof i8.NumberFormatPipe, typeof i9.FileSizePipe, typeof i10.MathAbsPipe, typeof i10.OddPipe, typeof i10.EvenPipe, typeof i11.NotEmptyArrayPipe, typeof i11.EmptyArrayPipe, typeof i11.ArrayLengthPipe, typeof i11.ArrayFirstPipe, typeof i11.ArrayPluckPipe, typeof i11.ArrayIncludesPipe, typeof i11.ArrayFilterPipe, typeof i11.ArrayJoinPipe, typeof i12.MapGetPipe, typeof i12.MapKeysPipe, typeof i12.MapValuesPipe, typeof i13.IsNilOrBlankPipe, typeof i13.IsNotNilOrBlankPipe, typeof i13.IsNilOrNaNPipe, typeof i13.IsNotNilOrNaNPipe, typeof i13.IsNotNilPipe, typeof i13.IsNilPipe, typeof i13.ToStringPipe, typeof i13.CapitalizePipe, typeof i13.StrLengthPipe, typeof i13.StrIncludesPipe, typeof i14.TranslateContextPipe, typeof i14.TranslatablePipe, typeof i15.NgInitDirective, typeof i16.FormErrorTranslatePipe, typeof i16.FormGetPipe, typeof i16.FormGetControlPipe, typeof i16.FormGetArrayPipe, typeof i16.FormGetGroupPipe, typeof i16.FormGetValuePipe, typeof i1.PropertyFormatPipe, typeof i17.MatColorPipe, typeof i18.AsAnyPipe, typeof i18.AsArrayPipe, typeof i18.AsObservablePipe, typeof i18.AsFloatLabelTypePipe, typeof i19.MaskitoPlaceholderPipe], [typeof
|
|
27
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<SharedPipesModule, [typeof i1.PropertyGetPipe, typeof i1.PropertyFormatPipe, typeof i2.DateFormatPipe, typeof i3.DateDiffDurationPipe, typeof i4.DurationPipe, typeof i5.DateFromNowPipe, typeof i6.LatLongFormatPipe, typeof i6.LatitudeFormatPipe, typeof i6.LongitudeFormatPipe, typeof i7.HighlightPipe, typeof i8.NumberFormatPipe, typeof i9.FileSizePipe, typeof i10.MathAbsPipe, typeof i10.OddPipe, typeof i10.EvenPipe, typeof i11.NotEmptyArrayPipe, typeof i11.EmptyArrayPipe, typeof i11.ArrayLengthPipe, typeof i11.ArrayFirstPipe, typeof i11.ArrayPluckPipe, typeof i11.ArrayIncludesPipe, typeof i11.ArrayFilterPipe, typeof i11.ArrayJoinPipe, typeof i12.MapGetPipe, typeof i12.MapKeysPipe, typeof i12.MapValuesPipe, typeof i13.IsNilOrBlankPipe, typeof i13.IsNotNilOrBlankPipe, typeof i13.IsNilOrNaNPipe, typeof i13.IsNotNilOrNaNPipe, typeof i13.IsNotNilPipe, typeof i13.IsNilPipe, typeof i13.ToStringPipe, typeof i13.CapitalizePipe, typeof i13.StrLengthPipe, typeof i13.StrIncludesPipe, typeof i14.TranslateContextPipe, typeof i14.TranslatablePipe, typeof i15.NgInitDirective, typeof i16.FormErrorTranslatePipe, typeof i16.FormGetPipe, typeof i16.FormGetControlPipe, typeof i16.FormGetArrayPipe, typeof i16.FormGetGroupPipe, typeof i16.FormGetValuePipe, typeof i1.PropertyFormatPipe, typeof i17.MatColorPipe, typeof i18.AsAnyPipe, typeof i18.AsArrayPipe, typeof i18.AsObservablePipe, typeof i18.AsFloatLabelTypePipe, typeof i19.MaskitoPlaceholderPipe, typeof i20.IsSelectedPipe, typeof i20.IsNotEmptySelectionPipe, typeof i20.IsEmptySelectionPipe, typeof i20.SelectionLengthPipe, typeof i20.IsMultipleSelectionPipe, typeof i20.IsSingleSelectionPipe], [typeof i21.CommonModule, typeof i22.IonicModule, typeof i23.TranslateModule], [typeof i1.PropertyGetPipe, typeof i1.PropertyFormatPipe, typeof i2.DateFormatPipe, typeof i5.DateFromNowPipe, typeof i3.DateDiffDurationPipe, typeof i4.DurationPipe, typeof i6.LatLongFormatPipe, typeof i6.LatitudeFormatPipe, typeof i6.LongitudeFormatPipe, typeof i7.HighlightPipe, typeof i8.NumberFormatPipe, typeof i9.FileSizePipe, typeof i10.MathAbsPipe, typeof i10.OddPipe, typeof i10.EvenPipe, typeof i11.NotEmptyArrayPipe, typeof i11.EmptyArrayPipe, typeof i11.ArrayLengthPipe, typeof i11.ArrayFirstPipe, typeof i11.ArrayPluckPipe, typeof i11.ArrayJoinPipe, typeof i12.MapGetPipe, typeof i12.MapKeysPipe, typeof i12.MapValuesPipe, typeof i13.IsNilOrBlankPipe, typeof i13.IsNotNilOrBlankPipe, typeof i13.IsNilOrNaNPipe, typeof i13.IsNotNilOrNaNPipe, typeof i13.IsNotNilPipe, typeof i13.IsNilPipe, typeof i13.ToStringPipe, typeof i13.CapitalizePipe, typeof i13.StrLengthPipe, typeof i13.StrIncludesPipe, typeof i11.ArrayIncludesPipe, typeof i11.ArrayFilterPipe, typeof i14.TranslateContextPipe, typeof i14.TranslatablePipe, typeof i15.NgInitDirective, typeof i16.FormErrorTranslatePipe, typeof i16.FormGetPipe, typeof i16.FormGetControlPipe, typeof i16.FormGetArrayPipe, typeof i16.FormGetGroupPipe, typeof i16.FormGetValuePipe, typeof i17.MatColorPipe, typeof i18.AsAnyPipe, typeof i18.AsArrayPipe, typeof i18.AsObservablePipe, typeof i18.AsFloatLabelTypePipe, typeof i19.MaskitoPlaceholderPipe, typeof i20.IsSelectedPipe, typeof i20.IsNotEmptySelectionPipe, typeof i20.IsEmptySelectionPipe, typeof i20.SelectionLengthPipe, typeof i20.IsMultipleSelectionPipe, typeof i20.IsSingleSelectionPipe]>;
|
|
27
28
|
static ɵinj: i0.ɵɵInjectorDeclaration<SharedPipesModule>;
|
|
28
29
|
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { ChangeDetectorRef, OnDestroy, PipeTransform } from '@angular/core';
|
|
2
|
+
import { SelectionChange, SelectionModel } from '@angular/cdk/collections';
|
|
3
|
+
import { Subscription } from 'rxjs';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export declare abstract class AbstractSelectionModelPipe<T, R, O = void> implements PipeTransform, OnDestroy {
|
|
6
|
+
protected _ref: ChangeDetectorRef;
|
|
7
|
+
protected _result: R;
|
|
8
|
+
private _lastSelection;
|
|
9
|
+
private _lastValue;
|
|
10
|
+
private _lastOpts;
|
|
11
|
+
protected _shouldSubscribeToChanges: boolean;
|
|
12
|
+
private _onSelectionChanges;
|
|
13
|
+
protected constructor(_ref: ChangeDetectorRef);
|
|
14
|
+
transform(selection: SelectionModel<any>, value?: T, opts?: O): R;
|
|
15
|
+
ngOnDestroy(): void;
|
|
16
|
+
protected _subscribe(selection: SelectionModel<T>, value: T, opts?: O): Subscription;
|
|
17
|
+
/**
|
|
18
|
+
* Clean any existing subscription to change events
|
|
19
|
+
*/
|
|
20
|
+
protected _dispose(): void;
|
|
21
|
+
protected abstract _transform(selection: SelectionModel<T>, value?: T, opts?: O): R;
|
|
22
|
+
protected _filterSelectionChange(selectionChange: SelectionChange<any>, value?: T, opts?: O): boolean;
|
|
23
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AbstractSelectionModelPipe<any, any, any>, never>;
|
|
24
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<AbstractSelectionModelPipe<any, any, any>, never, never, {}, {}, never, never, false, never>;
|
|
25
|
+
}
|
|
26
|
+
export declare class IsSelectedPipe extends AbstractSelectionModelPipe<any, boolean> {
|
|
27
|
+
constructor(_ref: ChangeDetectorRef);
|
|
28
|
+
protected _transform(selection: SelectionModel<any>, value: any): boolean;
|
|
29
|
+
protected _filterSelectionChange(selectionChange: SelectionChange<any>, value: any): boolean;
|
|
30
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<IsSelectedPipe, never>;
|
|
31
|
+
static ɵpipe: i0.ɵɵPipeDeclaration<IsSelectedPipe, "isSelected", false>;
|
|
32
|
+
}
|
|
33
|
+
export declare class IsNotEmptySelectionPipe extends AbstractSelectionModelPipe<void, boolean> {
|
|
34
|
+
constructor(_ref: ChangeDetectorRef);
|
|
35
|
+
protected _transform(selection: SelectionModel<any>): boolean;
|
|
36
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<IsNotEmptySelectionPipe, never>;
|
|
37
|
+
static ɵpipe: i0.ɵɵPipeDeclaration<IsNotEmptySelectionPipe, "isNotEmptySelection", false>;
|
|
38
|
+
}
|
|
39
|
+
export declare class IsEmptySelectionPipe extends AbstractSelectionModelPipe<void, boolean> {
|
|
40
|
+
constructor(_ref: ChangeDetectorRef);
|
|
41
|
+
protected _transform(selection: SelectionModel<any>): boolean;
|
|
42
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<IsEmptySelectionPipe, never>;
|
|
43
|
+
static ɵpipe: i0.ɵɵPipeDeclaration<IsEmptySelectionPipe, "isEmptySelection", false>;
|
|
44
|
+
}
|
|
45
|
+
export declare class SelectionLengthPipe extends AbstractSelectionModelPipe<void, number> {
|
|
46
|
+
constructor(_ref: ChangeDetectorRef);
|
|
47
|
+
protected _transform(selection: SelectionModel<any>): number;
|
|
48
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SelectionLengthPipe, never>;
|
|
49
|
+
static ɵpipe: i0.ɵɵPipeDeclaration<SelectionLengthPipe, "selectionLength", false>;
|
|
50
|
+
}
|
|
51
|
+
export declare class IsMultipleSelectionPipe extends AbstractSelectionModelPipe<void, boolean> {
|
|
52
|
+
constructor(_ref: ChangeDetectorRef);
|
|
53
|
+
protected _transform(selection: SelectionModel<any>): boolean;
|
|
54
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<IsMultipleSelectionPipe, never>;
|
|
55
|
+
static ɵpipe: i0.ɵɵPipeDeclaration<IsMultipleSelectionPipe, "isMultipleSelection", false>;
|
|
56
|
+
}
|
|
57
|
+
export declare class IsSingleSelectionPipe extends AbstractSelectionModelPipe<void, boolean> {
|
|
58
|
+
constructor(_ref: ChangeDetectorRef);
|
|
59
|
+
protected _transform(selection: SelectionModel<any>): boolean;
|
|
60
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<IsSingleSelectionPipe, never>;
|
|
61
|
+
static ɵpipe: i0.ɵɵPipeDeclaration<IsSingleSelectionPipe, "isSingleSelection", false>;
|
|
62
|
+
}
|
|
@@ -65,6 +65,7 @@ export declare class SharedFormGroupValidators {
|
|
|
65
65
|
static dateMinDuration(startDateField: string, endDateField: string, minDuration: number, durationUnit?: moment.unitOfTime.Diff): ValidatorFn;
|
|
66
66
|
static requiredIf(fieldName: string, anotherFieldToCheck: string | AbstractControl, opts?: {
|
|
67
67
|
fieldOnly?: boolean;
|
|
68
|
+
predicate?: (control: AbstractControl) => boolean;
|
|
68
69
|
}): ValidatorFn;
|
|
69
70
|
static requiredIfTrue(fieldName: string, anotherFieldToCheck: string | AbstractControl, opts?: {
|
|
70
71
|
fieldOnly?: boolean;
|
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.
|
|
5
|
+
"version": "2.8.0-rc2",
|
|
6
6
|
"default_locale": "fr",
|
|
7
7
|
"description": "Angular components for building beautiful and responsive Apps",
|
|
8
8
|
"icons": [{
|
|
@@ -419,6 +419,10 @@ mat-expansion-panel {
|
|
|
419
419
|
right: 0;
|
|
420
420
|
}
|
|
421
421
|
|
|
422
|
+
&.filter-panel-pinned {
|
|
423
|
+
overflow-y: scroll;
|
|
424
|
+
}
|
|
425
|
+
|
|
422
426
|
.mat-expansion-panel-header,
|
|
423
427
|
mat-expansion-panel-header {
|
|
424
428
|
padding: var(--expansion-panel-header-padding, var(--expansion-panel-padding));
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
.mat-mdc-table {
|
|
21
21
|
min-width: calc(100% - 1px);
|
|
22
22
|
border-collapse: separate;
|
|
23
|
-
--mat-table-background-color: var(--ion-background-color);
|
|
23
|
+
--mat-table-background-color: var(--background, var(--ion-background-color));
|
|
24
24
|
--mat-table-row-item-label-text-color: var(--ion-text-color);
|
|
25
25
|
--mat-table-row-item-outline-color: var(--ion-border-color);
|
|
26
26
|
--mat-table-row-item-label-text-size: 14px;
|
|
@@ -37,6 +37,7 @@
|
|
|
37
37
|
--mat-form-field-state-layer-color: transparent;
|
|
38
38
|
--mat-form-field-subscript-text-size: 10px;
|
|
39
39
|
--mdc-checkbox-state-layer-size: 20px;
|
|
40
|
+
--mdc-radio-state-layer-size: 20px;
|
|
40
41
|
--mdc-filled-text-field-container-color: transparent;
|
|
41
42
|
--mdc-filled-text-field-disabled-container-color: transparent;
|
|
42
43
|
--mdc-filled-text-field-input-text-color: var(--ion-text-color);
|
|
@@ -46,6 +47,7 @@
|
|
|
46
47
|
|
|
47
48
|
.mat-mdc-header-cell {
|
|
48
49
|
color: var(--ion-color-primary);
|
|
50
|
+
background: var(--mat-table-background-color) !important;
|
|
49
51
|
|
|
50
52
|
&.disabled {
|
|
51
53
|
color: var(--ion-color-medium, grey);
|
|
@@ -444,22 +446,10 @@
|
|
|
444
446
|
}
|
|
445
447
|
}
|
|
446
448
|
|
|
447
|
-
.mat-boolean-field-radio.mat-mdc-form-field-appearance-fill .mat-mdc-form-field-infix,
|
|
448
|
-
.mat-boolean-field-radio .mat-mdc-form-field-infix {
|
|
449
|
-
// Reduce top border (because of radio height)
|
|
450
|
-
border-top: 0.5em solid transparent !important;
|
|
451
|
-
}
|
|
452
|
-
|
|
453
|
-
.mat-boolean-field-checkbox.mat-mdc-form-field-appearance-fill .mat-mdc-form-field-infix,
|
|
454
|
-
.mat-boolean-field-checkbox .mat-mdc-form-field-infix {
|
|
455
|
-
// Increase top border (because of checkbox height)
|
|
456
|
-
padding-top: 0.4em;
|
|
457
|
-
}
|
|
458
|
-
|
|
459
449
|
.mat-boolean-field-button.mat-mdc-form-field-appearance-fill .mat-mdc-form-field-infix,
|
|
460
450
|
.mat-boolean-field-button .mat-mdc-form-field-infix {
|
|
461
451
|
// Increase top border (because of button height)
|
|
462
|
-
|
|
452
|
+
|
|
463
453
|
}
|
|
464
454
|
|
|
465
455
|
mat-date-time-field {
|