@sumaris-net/ngx-components 0.27.2 → 0.27.6

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/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@sumaris-net/ngx-components",
3
3
  "description": "SUMARiS Angular components",
4
- "version": "0.27.2",
4
+ "version": "0.27.6",
5
5
  "author": "contact@e-is.pro",
6
6
  "license": "AGPL-3.0",
7
7
  "readmeFilename": "README.md",
@@ -14,7 +14,7 @@
14
14
  "tslib": "^2.2.0"
15
15
  },
16
16
  "peerDependencies": {
17
- "@apollo/client": "~3.4.17"
17
+ "@apollo/client": "^3.4.17"
18
18
  },
19
19
  "repository": {
20
20
  "type": "git",
@@ -3,7 +3,7 @@ import { ActivatedRoute, Params, Router } from '@angular/router';
3
3
  import { MatTabChangeEvent, MatTabGroup } from '@angular/material/tabs';
4
4
  import { AlertController, IonContent, ToastController } from '@ionic/angular';
5
5
  import { TranslateService } from '@ngx-translate/core';
6
- import { Subscription, TeardownLogic } from 'rxjs';
6
+ import { BehaviorSubject, Subscription, TeardownLogic } from 'rxjs';
7
7
  import { AppTable } from '../table/table.class';
8
8
  import { FormButtonsBarToken } from './form-buttons-bar.component';
9
9
  import { IAppForm, IAppFormGetter } from './form.utils';
@@ -31,7 +31,7 @@ export declare class AppTabEditorOptions {
31
31
  */
32
32
  enableSwipe?: boolean;
33
33
  }
34
- export declare abstract class AppTabEditor<T = any, ID = number, O = any> implements IAppEditor, OnInit, OnDestroy, AfterViewInit {
34
+ export declare abstract class AppEditor<T = any, ID = number, O = any> implements IAppEditor, OnInit, OnDestroy, AfterViewInit {
35
35
  protected route: ActivatedRoute;
36
36
  protected router: Router;
37
37
  protected alertCtrl: AlertController;
@@ -41,11 +41,8 @@ export declare abstract class AppTabEditor<T = any, ID = number, O = any> implem
41
41
  protected _enabled: boolean;
42
42
  protected _dirty: boolean;
43
43
  protected _loading: boolean;
44
- protected _selectedTabIndex: number;
44
+ protected _$ready: BehaviorSubject<boolean>;
45
45
  protected toastController: ToastController;
46
- tabCount: number;
47
- enableSwipe: boolean;
48
- tabGroupAnimationDuration: string;
49
46
  debug: boolean;
50
47
  previousDataId: ID;
51
48
  submitted: boolean;
@@ -55,8 +52,6 @@ export declare abstract class AppTabEditor<T = any, ID = number, O = any> implem
55
52
  prefix: string;
56
53
  suffix: string;
57
54
  };
58
- queryTabIndexParamName: string;
59
- tabGroup: MatTabGroup;
60
55
  toolbar: ToolbarToken | null;
61
56
  formButtonsBar: FormButtonsBarToken | null;
62
57
  content: IonContent;
@@ -73,16 +68,13 @@ export declare abstract class AppTabEditor<T = any, ID = number, O = any> implem
73
68
  get disabled(): boolean;
74
69
  get children(): IAppForm[];
75
70
  get empty(): boolean;
76
- get selectedTabIndex(): number;
77
- set selectedTabIndex(value: number);
78
- readonly selectedTabIndexChange: EventEmitter<number>;
79
71
  abstract get isNewData(): boolean;
80
- protected constructor(route: ActivatedRoute, router: Router, alertCtrl: AlertController, translate: TranslateService, options?: AppTabEditorOptions);
72
+ protected constructor(route: ActivatedRoute, router: Router, alertCtrl: AlertController, translate: TranslateService);
81
73
  ngOnInit(): void;
82
74
  ngAfterViewInit(): void;
83
75
  ngOnDestroy(): void;
84
- addChildForm(form: IAppForm | IAppFormGetter): AppTabEditor<T, ID, O>;
85
- addChildForms(forms: (IAppForm | IAppFormGetter)[]): AppTabEditor<T, ID, O>;
76
+ addChildForm(form: IAppForm | IAppFormGetter): AppEditor<T, ID, O>;
77
+ addChildForms(forms: (IAppForm | IAppFormGetter)[]): AppEditor<T, ID, O>;
86
78
  disable(opts?: {
87
79
  onlySelf?: boolean;
88
80
  emitEvent?: boolean;
@@ -122,12 +114,11 @@ export declare abstract class AppTabEditor<T = any, ID = number, O = any> implem
122
114
  onlySelf?: boolean;
123
115
  emitEvent?: boolean;
124
116
  }): void;
125
- onTabChange(event: MatTabChangeEvent, queryTabIndexParamName?: string): boolean;
126
- /**
127
- * Action triggered when user swipes
128
- */
129
- onSwipeTab(event: HammerSwipeEvent): boolean;
130
- onSubTabChange(event: MatTabChangeEvent): void;
117
+ markAsReady(opts?: {
118
+ emitEvent?: boolean;
119
+ }): void;
120
+ ready(opts?: WaitForOptions): Promise<any>;
121
+ waitIdle(opts?: WaitForOptions): Promise<any>;
131
122
  cancel(event?: Event): Promise<void>;
132
123
  /**
133
124
  * Unload the page (remove all data). Useful when reusing angular cache a cancelled page
@@ -139,14 +130,10 @@ export declare abstract class AppTabEditor<T = any, ID = number, O = any> implem
139
130
  }): Promise<void>;
140
131
  reloadWithConfirmation(confirm?: boolean): Promise<void>;
141
132
  goBack(event?: Event): Promise<void | boolean>;
142
- setSelectedTabIndex(value: number, opts?: {
143
- emitEvent?: boolean;
144
- realignInkBar?: boolean;
145
- }): void;
146
- waitIdle(opts?: WaitForOptions): Promise<any>;
147
133
  abstract load(id?: ID, options?: O): Promise<void>;
148
134
  abstract save(event?: Event, options?: any): Promise<boolean>;
149
135
  abstract reload(): Promise<void>;
136
+ logFormErrors(): void;
150
137
  protected scrollToTop(duration?: number): Promise<void>;
151
138
  protected registerSubscription(sub: Subscription | TeardownLogic): void;
152
139
  protected unregisterSubscription(sub: Subscription): void;
@@ -154,7 +141,37 @@ export declare abstract class AppTabEditor<T = any, ID = number, O = any> implem
154
141
  emitEvent: boolean;
155
142
  }): Promise<boolean>;
156
143
  protected showToast(opts: ShowToastOptions): Promise<void>;
157
- protected logFormErrors(): void;
158
144
  protected logChildrenFormErrors(c: IAppForm | AbstractControl, prefix?: string, path?: string): void;
159
145
  protected markForCheck(): void;
160
146
  }
147
+ export declare abstract class AppTabEditor<T = any, ID = number, O = any> extends AppEditor<T, ID, O> {
148
+ protected route: ActivatedRoute;
149
+ protected router: Router;
150
+ protected alertCtrl: AlertController;
151
+ protected translate: TranslateService;
152
+ protected _selectedTabIndex: number;
153
+ tabCount: number;
154
+ enableSwipe: boolean;
155
+ tabGroupAnimationDuration: string;
156
+ queryTabIndexParamName: string;
157
+ set selectedTabIndex(value: number);
158
+ get selectedTabIndex(): number;
159
+ readonly selectedTabIndexChange: EventEmitter<number>;
160
+ tabGroup: MatTabGroup;
161
+ protected constructor(route: ActivatedRoute, router: Router, alertCtrl: AlertController, translate: TranslateService, options?: AppTabEditorOptions);
162
+ ngOnInit(): void;
163
+ ngOnDestroy(): void;
164
+ setSelectedTabIndex(value: number, opts?: {
165
+ emitEvent?: boolean;
166
+ realignInkBar?: boolean;
167
+ }): void;
168
+ onTabChange(event: MatTabChangeEvent, queryTabIndexParamName?: string): boolean;
169
+ /**
170
+ * Action triggered when user swipes
171
+ */
172
+ onSwipeTab(event: HammerSwipeEvent): boolean;
173
+ onSubTabChange(event: MatTabChangeEvent): void;
174
+ unload(opts?: {
175
+ emitEvent?: boolean;
176
+ }): Promise<void>;
177
+ }
@@ -1,6 +1,6 @@
1
1
  import { EventEmitter, Injector, OnDestroy, OnInit } from '@angular/core';
2
2
  import { FormGroup } from '@angular/forms';
3
- import { Subscription } from 'rxjs';
3
+ import { BehaviorSubject, Subscription } from 'rxjs';
4
4
  import { IAppForm } from './form.utils';
5
5
  import { LocalSettingsService } from '../services/local-settings.service';
6
6
  import { MatAutocompleteConfigHolder, MatAutocompleteFieldAddOptions, MatAutocompleteFieldConfig } from '../../shared/material/autocomplete/material.autocomplete';
@@ -15,6 +15,7 @@ export declare abstract class AppForm<T> implements IAppForm, OnInit, OnDestroy,
15
15
  protected settings: LocalSettingsService;
16
16
  protected errorTranslator: FormErrorTranslator;
17
17
  protected _enable: boolean;
18
+ protected _$ready: BehaviorSubject<boolean>;
18
19
  protected _loading: boolean;
19
20
  protected i18nFieldPrefix: string;
20
21
  private _subscription;
@@ -53,7 +54,7 @@ export declare abstract class AppForm<T> implements IAppForm, OnInit, OnDestroy,
53
54
  setValue(data: T, opts?: {
54
55
  emitEvent?: boolean;
55
56
  onlySelf?: boolean;
56
- }): void;
57
+ }): Promise<void> | void;
57
58
  reset(data?: T, opts?: {
58
59
  emitEvent?: boolean;
59
60
  onlySelf?: boolean;
@@ -89,6 +90,15 @@ export declare abstract class AppForm<T> implements IAppForm, OnInit, OnDestroy,
89
90
  onlySelf?: boolean;
90
91
  emitEvent?: boolean;
91
92
  }): void;
93
+ markAsReady(opts?: {
94
+ onlySelf?: boolean;
95
+ emitEvent?: boolean;
96
+ }): void;
97
+ /**
98
+ * Wait form is ready
99
+ * @param opts
100
+ */
101
+ ready(opts?: WaitForOptions): Promise<boolean>;
92
102
  /**
93
103
  * Wait form is idle (not loading)
94
104
  * @param opts
@@ -3,6 +3,9 @@ import { Entity } from '../services/model/entity.model';
3
3
  import { filterNumberInput, selectInputContent } from '../../shared/inputs';
4
4
  import { WaitForOptions } from '../../shared/observables';
5
5
  export declare type IAppFormGetter = () => IAppForm;
6
+ export declare interface OnReady {
7
+ ngOnReady(): any;
8
+ }
6
9
  export interface IAppForm {
7
10
  invalid: boolean;
8
11
  valid: boolean;
@@ -13,6 +16,7 @@ export interface IAppForm {
13
16
  disabled: boolean;
14
17
  empty?: boolean;
15
18
  loading?: boolean;
19
+ ready(): Promise<any>;
16
20
  disable(opts?: {
17
21
  onlySelf?: boolean;
18
22
  emitEvent?: boolean;
@@ -48,6 +52,10 @@ export interface IAppForm {
48
52
  onlySelf?: boolean;
49
53
  emitEvent?: boolean;
50
54
  }): any;
55
+ markAsReady(opts?: {
56
+ onlySelf?: boolean;
57
+ emitEvent?: boolean;
58
+ }): any;
51
59
  }
52
60
  /**
53
61
  * A form that do nothing
@@ -97,6 +105,12 @@ export declare class AppNullForm implements IAppForm {
97
105
  onlySelf?: boolean;
98
106
  emitEvent?: boolean;
99
107
  }): void;
108
+ markAsReady(opts?: {
109
+ onlySelf?: boolean;
110
+ emitEvent?: boolean;
111
+ }): void;
112
+ waitIdle(opts?: WaitForOptions): Promise<any>;
113
+ ready(): Promise<any>;
100
114
  }
101
115
  export declare class AppFormProvider<F extends IAppForm = IAppForm> implements IAppForm {
102
116
  private getterFn;
@@ -113,6 +127,7 @@ export declare class AppFormProvider<F extends IAppForm = IAppForm> implements I
113
127
  get empty(): boolean;
114
128
  get pending(): boolean;
115
129
  get loading(): boolean;
130
+ ready(): Promise<any>;
116
131
  disable(opts?: {
117
132
  onlySelf?: boolean;
118
133
  emitEvent?: boolean;
@@ -148,6 +163,10 @@ export declare class AppFormProvider<F extends IAppForm = IAppForm> implements I
148
163
  onlySelf?: boolean;
149
164
  emitEvent?: boolean;
150
165
  }): any;
166
+ markAsReady(opts?: {
167
+ onlySelf?: boolean;
168
+ emitEvent?: boolean;
169
+ }): any;
151
170
  }
152
171
  export declare class AppFormUtils {
153
172
  static copyEntity2Form: typeof copyEntity2Form;
@@ -71,6 +71,7 @@ export declare abstract class AppTable<T extends IEntity<T, ID>, F = any, ID = n
71
71
  totalRowCount: number | null;
72
72
  visibleRowCount: number;
73
73
  errorTranslatorOptions: FormErrorTranslatorOptions;
74
+ readySubject: BehaviorSubject<boolean>;
74
75
  loadingSubject: BehaviorSubject<boolean>;
75
76
  savingSubject: BehaviorSubject<boolean>;
76
77
  dirtySubject: BehaviorSubject<boolean>;
@@ -199,6 +200,9 @@ export declare abstract class AppTable<T extends IEntity<T, ID>, F = any, ID = n
199
200
  onlySelf?: boolean;
200
201
  emitEVent?: boolean;
201
202
  }): void;
203
+ markAsReady(opts?: {
204
+ emitEvent?: boolean;
205
+ }): void;
202
206
  get loading(): boolean;
203
207
  get loaded(): boolean;
204
208
  enableSort(): void;
@@ -286,6 +290,7 @@ export declare abstract class AppTable<T extends IEntity<T, ID>, F = any, ID = n
286
290
  selectRowByData(data: T): Promise<boolean>;
287
291
  clickRow(event: UIEvent | undefined, row: TableElement<T>): boolean;
288
292
  moveRow(id: number, direction: number): void;
293
+ ready(): Promise<any>;
289
294
  waitIdle(): Promise<any>;
290
295
  openSelectColumnsModal(event?: Event): Promise<any>;
291
296
  trackByFn(index: number, row: TableElement<T>): number;