@sumaris-net/ngx-components 2.4.23-rc2 → 2.5.0-beta2

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.
Files changed (41) hide show
  1. package/doc/changelog.md +0 -3
  2. package/esm2020/public_api.mjs +2 -1
  3. package/esm2020/src/app/core/account/account.module.mjs +8 -4
  4. package/esm2020/src/app/core/account/account.page.mjs +78 -32
  5. package/esm2020/src/app/core/form/entity/entity-editor.class.mjs +28 -10
  6. package/esm2020/src/app/core/form/properties/properties.module.mjs +14 -6
  7. package/esm2020/src/app/core/form/properties/properties.table.mjs +218 -0
  8. package/esm2020/src/app/core/form/properties/property.validator.mjs +1 -1
  9. package/esm2020/src/app/core/services/account.service.mjs +31 -7
  10. package/esm2020/src/app/core/services/config/core.config.mjs +8 -1
  11. package/esm2020/src/app/core/services/model/account.model.mjs +72 -4
  12. package/esm2020/src/app/core/services/model/settings.model.mjs +1 -73
  13. package/esm2020/src/app/core/services/validator/account.validator.mjs +13 -10
  14. package/esm2020/src/app/core/services/validator/user-settings.validator.mjs +7 -9
  15. package/esm2020/src/app/core/table/entities-table-datasource.class.mjs +1 -1
  16. package/esm2020/src/app/shared/dates.mjs +1 -7
  17. package/esm2020/src/app/shared/material/autocomplete/material.autocomplete.mjs +7 -11
  18. package/esm2020/src/app/shared/material/datetime/material.datetime.mjs +3 -3
  19. package/esm2020/src/app/shared/toolbar/toolbar.mjs +6 -7
  20. package/fesm2015/sumaris-net.ngx-components.mjs +4144 -3848
  21. package/fesm2015/sumaris-net.ngx-components.mjs.map +1 -1
  22. package/fesm2020/sumaris-net.ngx-components.mjs +4030 -3756
  23. package/fesm2020/sumaris-net.ngx-components.mjs.map +1 -1
  24. package/package.json +1 -1
  25. package/public_api.d.ts +1 -0
  26. package/src/app/core/account/account.module.d.ts +2 -1
  27. package/src/app/core/account/account.page.d.ts +17 -13
  28. package/src/app/core/form/entity/entity-editor.class.d.ts +1 -1
  29. package/src/app/core/form/properties/properties.module.d.ts +5 -3
  30. package/src/app/core/form/properties/properties.table.d.ts +66 -0
  31. package/src/app/core/services/account.service.d.ts +16 -7
  32. package/src/app/core/services/config/core.config.d.ts +1 -0
  33. package/src/app/core/services/model/account.model.d.ts +16 -2
  34. package/src/app/core/services/model/settings.model.d.ts +0 -15
  35. package/src/app/core/services/validator/account.validator.d.ts +3 -1
  36. package/src/app/core/services/validator/user-settings.validator.d.ts +1 -1
  37. package/src/app/shared/dates.d.ts +0 -1
  38. package/src/app/shared/toolbar/toolbar.d.ts +2 -2
  39. package/src/assets/i18n/en-US.json +12 -1
  40. package/src/assets/i18n/en.json +12 -1
  41. package/src/assets/i18n/fr.json +17 -13
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": "2.4.23-rc2",
4
+ "version": "2.5.0-beta2",
5
5
  "author": "contact@e-is.pro",
6
6
  "license": "AGPL-3.0",
7
7
  "readmeFilename": "README.md",
package/public_api.d.ts CHANGED
@@ -161,6 +161,7 @@ export * from './src/app/core/form/entity/entity.module';
161
161
  export * from './src/app/core/form/list/list.form';
162
162
  export * from './src/app/core/form/list/list.module';
163
163
  export * from './src/app/core/form/properties/properties.form';
164
+ export * from './src/app/core/form/properties/properties.table';
164
165
  export * from './src/app/core/form/properties/properties.module';
165
166
  export * from './src/app/core/form/text-popover/text-form.component';
166
167
  export * from './src/app/core/form/text-popover/text-popover.component';
@@ -4,8 +4,9 @@ import * as i2 from "@angular/common";
4
4
  import * as i3 from "../../shared/shared.module";
5
5
  import * as i4 from "@ngx-translate/core";
6
6
  import * as i5 from "../form/buttons/form-buttons-bar.module";
7
+ import * as i6 from "../form/properties/properties.module";
7
8
  export declare class AppAccountModule {
8
9
  static ɵfac: i0.ɵɵFactoryDeclaration<AppAccountModule, never>;
9
- static ɵmod: i0.ɵɵNgModuleDeclaration<AppAccountModule, [typeof i1.AccountPage], [typeof i2.CommonModule, typeof i3.SharedModule, typeof i4.TranslateModule, typeof i5.AppFormButtonsBarModule], [typeof i4.TranslateModule, typeof i1.AccountPage]>;
10
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AppAccountModule, [typeof i1.AccountPage], [typeof i2.CommonModule, typeof i3.SharedModule, typeof i4.TranslateModule, typeof i5.AppFormButtonsBarModule, typeof i6.AppPropertiesFormModule], [typeof i4.TranslateModule, typeof i1.AccountPage]>;
10
11
  static ɵinj: i0.ɵɵInjectorDeclaration<AppAccountModule>;
11
12
  }
@@ -1,49 +1,53 @@
1
- import { ChangeDetectorRef, Injector, OnDestroy } from '@angular/core';
1
+ import { ChangeDetectorRef, Injector, OnDestroy, OnInit } from '@angular/core';
2
2
  import { Subscription } from 'rxjs';
3
3
  import { AccountService } from '../services/account.service';
4
4
  import { Account } from '../services/model/account.model';
5
- import { UserSettingsValidatorService } from '../services/validator/user-settings.validator';
6
5
  import { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';
7
6
  import { AccountValidatorService } from '../services/validator/account.validator';
8
7
  import { AppForm } from '../form/form.class';
9
- import { TranslateService } from '@ngx-translate/core';
10
8
  import { FormFieldDefinition } from '../../shared/form/field.model';
11
- import { LocalSettingsService } from '../services/local-settings.service';
12
9
  import { LocaleConfig } from '../services/model/settings.model';
13
10
  import { Router } from '@angular/router';
14
11
  import { CanLeave } from '../../shared/guard/component-dirty.guard';
15
12
  import { NetworkService } from '../services/network.service';
16
13
  import { MatTabGroup } from '@angular/material/tabs';
14
+ import { ConfigService } from '../services/config.service';
15
+ import { AppPropertiesTable } from '../form/properties/properties.table';
17
16
  import * as i0 from "@angular/core";
18
- export declare class AccountPage extends AppForm<Account> implements OnDestroy, CanLeave {
17
+ export declare class AccountPage extends AppForm<Account> implements OnInit, OnDestroy, CanLeave {
19
18
  formBuilder: UntypedFormBuilder;
20
19
  accountService: AccountService;
21
20
  network: NetworkService;
22
21
  protected router: Router;
23
22
  protected validatorService: AccountValidatorService;
24
- protected settingsValidatorService: UserSettingsValidatorService;
25
- protected translate: TranslateService;
26
- protected settings: LocalSettingsService;
23
+ protected configService: ConfigService;
27
24
  protected cd: ChangeDetectorRef;
25
+ tabGroup: MatTabGroup;
26
+ propertiesTable: AppPropertiesTable;
28
27
  selectedTabIndex: number;
29
28
  isLogin: boolean;
30
29
  changesSubscription: Subscription;
31
30
  networkSubscription: Subscription;
32
- account: Account;
33
31
  email: any;
34
32
  additionalFields: FormFieldDefinition[];
35
- settingsForm: UntypedFormGroup;
36
- settingsContentForm: UntypedFormGroup;
33
+ optionDefinitions: FormFieldDefinition[];
34
+ get settingsForm(): UntypedFormGroup;
37
35
  locales: LocaleConfig[];
38
36
  latLongFormats: import("../../shared/material/latlong/latlong.utils").LatLongPattern[];
39
37
  saving: boolean;
40
38
  submitted: boolean;
41
- tabGroup: MatTabGroup;
42
- constructor(injector: Injector, formBuilder: UntypedFormBuilder, accountService: AccountService, network: NetworkService, router: Router, validatorService: AccountValidatorService, settingsValidatorService: UserSettingsValidatorService, translate: TranslateService, settings: LocalSettingsService, cd: ChangeDetectorRef, locales: any);
39
+ accountReadOnly: boolean;
40
+ readonly mobile: boolean;
41
+ get valid(): boolean;
42
+ constructor(injector: Injector, formBuilder: UntypedFormBuilder, accountService: AccountService, network: NetworkService, router: Router, validatorService: AccountValidatorService, configService: ConfigService, cd: ChangeDetectorRef, locales: any);
43
43
  ngOnInit(): void;
44
44
  ngOnDestroy(): void;
45
45
  onLogin(account: Account): void;
46
46
  onLogout(): void;
47
+ setValue(data: Account, opts?: {
48
+ emitEvent?: boolean;
49
+ onlySelf?: boolean;
50
+ }): Promise<void>;
47
51
  refresh(event?: Event): Promise<Account>;
48
52
  startListenChanges(): void;
49
53
  stopListenChanges(): void;
@@ -185,7 +185,7 @@ export declare abstract class AppEntityEditor<T extends Entity<T, ID>, S extends
185
185
  * Open the first tab that is invalid
186
186
  */
187
187
  private openFirstInvalidTab;
188
- protected updateRoute(data: T, queryParams?: any): Promise<boolean>;
188
+ protected updateRoute(data: T, queryParams: any): Promise<boolean>;
189
189
  static ɵfac: i0.ɵɵFactoryDeclaration<AppEntityEditor<any, any, any>, never>;
190
190
  static ɵdir: i0.ɵɵDirectiveDeclaration<AppEntityEditor<any, any, any>, never, never, {}, {}, never, never, false>;
191
191
  }
@@ -1,9 +1,11 @@
1
1
  import * as i0 from "@angular/core";
2
2
  import * as i1 from "./properties.form";
3
- import * as i2 from "../../../shared/shared.module";
4
- import * as i3 from "@ngx-translate/core";
3
+ import * as i2 from "./properties.table";
4
+ import * as i3 from "../../../shared/shared.module";
5
+ import * as i4 from "@ngx-translate/core";
6
+ import * as i5 from "../../table/table.module";
5
7
  export declare class AppPropertiesFormModule {
6
8
  static ɵfac: i0.ɵɵFactoryDeclaration<AppPropertiesFormModule, never>;
7
- static ɵmod: i0.ɵɵNgModuleDeclaration<AppPropertiesFormModule, [typeof i1.AppPropertiesForm], [typeof i2.SharedModule, typeof i3.TranslateModule], [typeof i3.TranslateModule, typeof i1.AppPropertiesForm]>;
9
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AppPropertiesFormModule, [typeof i1.AppPropertiesForm, typeof i2.AppPropertiesTable], [typeof i3.SharedModule, typeof i4.TranslateModule, typeof i5.AppTableModule], [typeof i4.TranslateModule, typeof i1.AppPropertiesForm, typeof i2.AppPropertiesTable]>;
8
10
  static ɵinj: i0.ɵɵInjectorDeclaration<AppPropertiesFormModule>;
9
11
  }
@@ -0,0 +1,66 @@
1
+ import { AppInMemoryTable } from '../../table/memory-table.class';
2
+ import { Injector, OnInit } from '@angular/core';
3
+ import { Entity, EntityAsObjectOptions } from '../../services/model/entity.model';
4
+ import { AppValidatorService } from '../../services/validator/base.validator.class';
5
+ import { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';
6
+ import { FormFieldDefinition, FormFieldDefinitionMap } from '../../../shared/form/field.model';
7
+ import { FilterFn, LoadResult } from '../../../shared/services/entity-service.class';
8
+ import { BehaviorSubject } from 'rxjs';
9
+ import { Environment } from '../../../../environments/environment.class';
10
+ import { TableElement } from '@e-is/ngx-material-table';
11
+ import { EntityFilter } from '../../services/model/filter.model';
12
+ import { ObjectMap } from '../../../shared/types';
13
+ import * as i0 from "@angular/core";
14
+ interface TranslatedFormFieldDefinition extends FormFieldDefinition {
15
+ translatedLabel?: string;
16
+ }
17
+ export declare class PropertyEntity extends Entity<PropertyEntity, string> {
18
+ static fromObject: (source: any, opts?: any) => PropertyEntity;
19
+ definition: TranslatedFormFieldDefinition;
20
+ value: any;
21
+ fromObject(source: any): void;
22
+ asObject(opts?: EntityAsObjectOptions): any;
23
+ }
24
+ export declare class PropertyEntityFilter extends EntityFilter<PropertyEntityFilter, PropertyEntity> {
25
+ static fromObject: (source: any, opts?: any) => PropertyEntityFilter;
26
+ all: boolean;
27
+ fromObject(source: any): void;
28
+ asObject(opts?: EntityAsObjectOptions): any;
29
+ protected buildFilter(): FilterFn<PropertyEntity>[];
30
+ }
31
+ export declare class PropertyEntityValidator extends AppValidatorService<PropertyEntity> {
32
+ protected formBuilder: UntypedFormBuilder;
33
+ constructor(formBuilder: UntypedFormBuilder);
34
+ getFormGroupConfig(data?: PropertyEntity): {
35
+ [p: string]: any;
36
+ };
37
+ static ɵfac: i0.ɵɵFactoryDeclaration<PropertyEntityValidator, never>;
38
+ static ɵdir: i0.ɵɵDirectiveDeclaration<PropertyEntityValidator, never, never, {}, {}, never, never, false>;
39
+ }
40
+ export declare class AppPropertiesTable extends AppInMemoryTable<PropertyEntity, PropertyEntityFilter, string> implements OnInit {
41
+ protected injector: Injector;
42
+ protected formBuilder: UntypedFormBuilder;
43
+ protected validatorService: PropertyEntityValidator;
44
+ definitions: FormFieldDefinition[];
45
+ showToolbar: boolean;
46
+ availableDefinitions$: BehaviorSubject<TranslatedFormFieldDefinition[]>;
47
+ definitionsMapByKey: FormFieldDefinitionMap;
48
+ translationsByKey: ObjectMap<string>;
49
+ filterForm: UntypedFormGroup;
50
+ constructor(injector: Injector, formBuilder: UntypedFormBuilder, validatorService: PropertyEntityValidator, environment: Environment);
51
+ ngOnInit(): void;
52
+ get value(): PropertyEntity[];
53
+ set value(data: PropertyEntity[]);
54
+ setValue(value: PropertyEntity[], opts?: {
55
+ emitEvent?: boolean;
56
+ }): void;
57
+ confirmEditCreate(event?: Event, row?: TableElement<PropertyEntity>): boolean;
58
+ updateView(res: LoadResult<PropertyEntity> | undefined, opts?: {
59
+ emitEvent?: boolean;
60
+ }): Promise<void>;
61
+ protected updateAvailableDefinitions(): Promise<void>;
62
+ toTranslatedFormFieldDefinition: (definition: FormFieldDefinition) => TranslatedFormFieldDefinition;
63
+ static ɵfac: i0.ɵɵFactoryDeclaration<AppPropertiesTable, never>;
64
+ static ɵcmp: i0.ɵɵComponentDeclaration<AppPropertiesTable, "app-properties-table", never, { "definitions": "definitions"; "showToolbar": "showToolbar"; }, {}, never, never, false>;
65
+ }
66
+ export {};
@@ -1,15 +1,16 @@
1
+ import { InjectionToken } from '@angular/core';
1
2
  import { Keypair } from './crypto.service';
2
3
  import { Department } from './model/department.model';
3
- import { Account } from './model/account.model';
4
+ import { Account, UserSettings } from './model/account.model';
4
5
  import { Person, UserProfileLabel } from './model/person.model';
5
- import { LocalSettings, UsageMode, UserSettings } from './model/settings.model';
6
+ import { LocalSettings, UsageMode } from './model/settings.model';
6
7
  import { BehaviorSubject, Observable, Subject, Subscription } from 'rxjs';
7
8
  import { FetchPolicy } from '@apollo/client/core';
8
9
  import { Storage } from '@ionic/storage-angular';
9
10
  import { BaseGraphqlService } from './base-graphql-service.class';
10
11
  import { GraphqlService } from '../graphql/graphql.service';
11
12
  import { LocalSettingsService } from './local-settings.service';
12
- import { FormFieldDefinition } from '../../shared/form/field.model';
13
+ import { FormFieldDefinition, FormFieldDefinitionMap } from '../../shared/form/field.model';
13
14
  import { NetworkService } from './network.service';
14
15
  import { AuthTokenType } from './network.types';
15
16
  import { FileService } from '../../shared/file/file.service';
@@ -27,7 +28,7 @@ export declare interface AccountDetails {
27
28
  pubkey: string;
28
29
  person: Person;
29
30
  department: Department;
30
- mainProfile: String;
31
+ mainProfile: string;
31
32
  }
32
33
  export interface AuthData {
33
34
  username: string;
@@ -37,6 +38,10 @@ export interface AuthData {
37
38
  export interface RegisterData extends AuthData {
38
39
  account: Account;
39
40
  }
41
+ export interface UserSettingsOptions {
42
+ options: FormFieldDefinitionMap;
43
+ }
44
+ export declare const APP_USER_SETTINGS_OPTIONS: InjectionToken<UserSettingsOptions>;
40
45
  export declare interface IsEmailExistsVariables {
41
46
  email: string;
42
47
  hash: string;
@@ -62,6 +67,7 @@ export declare class AccountService extends BaseGraphqlService<Account, any, num
62
67
  private readonly _enableListenChanges;
63
68
  private readonly _listenIntervalInSeconds;
64
69
  private _cache;
70
+ private readonly _optionDefs;
65
71
  private _$additionalFields;
66
72
  private _tokenType$;
67
73
  get account(): Account;
@@ -69,7 +75,7 @@ export declare class AccountService extends BaseGraphqlService<Account, any, num
69
75
  get department(): Department;
70
76
  get tokenType(): AuthTokenType;
71
77
  set tokenType(value: AuthTokenType);
72
- constructor(network: NetworkService, graphql: GraphqlService, settings: LocalSettingsService, storage: Storage, file: FileService, translate: TranslateService, toastController: ToastController, environment: any);
78
+ constructor(network: NetworkService, graphql: GraphqlService, settings: LocalSettingsService, storage: Storage, file: FileService, translate: TranslateService, toastController: ToastController, environment: any, options: UserSettingsOptions);
73
79
  ngOnStart(): Promise<Account>;
74
80
  protected ngOnStop(): Promise<void>;
75
81
  isLogin(): boolean;
@@ -123,12 +129,15 @@ export declare class AccountService extends BaseGraphqlService<Account, any, num
123
129
  */
124
130
  isEmailExists(email: string): Promise<boolean>;
125
131
  sendConfirmationEmail(email: string, locale?: string): Promise<boolean>;
126
- confirmEmail(email: String, code: String): Promise<boolean>;
132
+ confirmEmail(email: string, code: string): Promise<boolean>;
127
133
  listenChanges(opts?: AccountWatchOptions): Subscription;
128
134
  get additionalFields(): FormFieldDefinition[];
129
135
  get $additionalFields(): Observable<FormFieldDefinition[]>;
130
136
  getAdditionalField(key: string): FormFieldDefinition | undefined;
131
137
  registerAdditionalField(field: FormFieldDefinition): void;
138
+ get optionDefs(): FormFieldDefinition[];
139
+ registerOption(def: FormFieldDefinition): void;
140
+ registerOptions(defs: FormFieldDefinition[]): void;
132
141
  protected resetData(): void;
133
142
  protected loadData(opts?: {
134
143
  offline?: boolean;
@@ -161,6 +170,6 @@ export declare class AccountService extends BaseGraphqlService<Account, any, num
161
170
  protected copyIdAndUpdateDate(source: Account | undefined, target: Account): void;
162
171
  protected copyIdAndUpdateDateSettings(source: UserSettings | undefined, target: UserSettings): void;
163
172
  protected showToast<T = any>(opts: ShowToastOptions): Promise<OverlayEventDetail<T>>;
164
- static ɵfac: i0.ɵɵFactoryDeclaration<AccountService, [null, null, null, null, null, { optional: true; }, { optional: true; }, null]>;
173
+ static ɵfac: i0.ɵɵFactoryDeclaration<AccountService, [null, null, null, null, null, { optional: true; }, { optional: true; }, null, { optional: true; }]>;
165
174
  static ɵprov: i0.ɵɵInjectableDeclaration<AccountService>;
166
175
  }
@@ -25,4 +25,5 @@ export declare const CORE_CONFIG_OPTIONS: Readonly<{
25
25
  COLOR_DANGER: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any>;
26
26
  ANDROID_INSTALL_URL: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any>;
27
27
  DB_TIMEZONE: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any>;
28
+ ACCOUNT_READONLY: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any>;
28
29
  }>;
@@ -1,6 +1,7 @@
1
- import { UserSettings } from './settings.model';
1
+ import { LocalSettings } from './settings.model';
2
2
  import { Person } from './person.model';
3
- import { EntityAsObjectOptions } from './entity.model';
3
+ import { Entity, EntityAsObjectOptions } from './entity.model';
4
+ import { LatLongPattern } from '../../../shared/material/latlong/latlong.utils';
4
5
  /**
5
6
  * A user account
6
7
  */
@@ -16,4 +17,17 @@ export declare class Account extends Person<Account> {
16
17
  asPerson(): Person;
17
18
  get displayName(): string;
18
19
  }
20
+ export declare class UserSettings extends Entity<UserSettings> {
21
+ static SETTINGS_PROPERTIES: string[];
22
+ static fromObject: (source: any, opts?: any) => UserSettings;
23
+ locale: string;
24
+ latLongFormat: LatLongPattern;
25
+ content: any;
26
+ nonce: string;
27
+ constructor();
28
+ asObject(opts?: EntityAsObjectOptions): any;
29
+ fromObject(source: any, opts?: any): void;
30
+ merge<S = LocalSettings>(source: S, includesProperties: (keyof S)[]): boolean;
31
+ asLocalSettings(): Partial<LocalSettings>;
32
+ }
19
33
  export declare function accountToString(data: Account): string;
@@ -1,5 +1,3 @@
1
- import { Entity, EntityAsObjectOptions } from './entity.model';
2
- import { LatLongPattern } from '../../../shared/material/latlong/latlong.utils';
3
1
  import { PropertiesMap, Property } from '../../../shared/types';
4
2
  import { InjectionToken } from '@angular/core';
5
3
  import { HistoryPageReference } from './history.model';
@@ -26,16 +24,3 @@ export declare interface LocalSettings {
26
24
  offlineFeatures?: (string | OfflineFeature)[];
27
25
  pageHistoryMaxSize: number;
28
26
  }
29
- export declare class UserSettings extends Entity<UserSettings> {
30
- static SETTINGS_PROPERTIES: string[];
31
- static fromObject: (source: any, opts?: any) => UserSettings;
32
- locale: string;
33
- latLongFormat: LatLongPattern;
34
- content: {};
35
- nonce: string;
36
- constructor();
37
- asObject(opts?: EntityAsObjectOptions): any;
38
- fromObject(source: any, opts?: any): void;
39
- merge<S = LocalSettings>(source: S, includesProperties: (keyof S)[]): boolean;
40
- asLocalSettings(): Partial<LocalSettings>;
41
- }
@@ -3,11 +3,13 @@ import { Account } from '../model/account.model';
3
3
  import { AccountService } from '../account.service';
4
4
  import { FormFieldDefinition } from '../../../shared/form/field.model';
5
5
  import { AppValidatorService } from './base.validator.class';
6
+ import { UserSettingsValidatorService } from './user-settings.validator';
6
7
  import * as i0 from "@angular/core";
7
8
  export declare class AccountValidatorService extends AppValidatorService<Account> {
8
9
  protected formBuilder: UntypedFormBuilder;
9
10
  protected accountService: AccountService;
10
- constructor(formBuilder: UntypedFormBuilder, accountService: AccountService);
11
+ protected userSettingsValidatorService: UserSettingsValidatorService;
12
+ constructor(formBuilder: UntypedFormBuilder, accountService: AccountService, userSettingsValidatorService: UserSettingsValidatorService);
11
13
  getFormGroupConfig(data?: Account): any;
12
14
  getValidators(field: FormFieldDefinition): ValidatorFn | ValidatorFn[];
13
15
  static ɵfac: i0.ɵɵFactoryDeclaration<AccountValidatorService, never>;
@@ -1,6 +1,6 @@
1
1
  import { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';
2
- import { UserSettings } from '../model/settings.model';
3
2
  import { AppValidatorService } from './base.validator.class';
3
+ import { UserSettings } from '../model/account.model';
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class UserSettingsValidatorService extends AppValidatorService<UserSettings> {
6
6
  constructor(formBuilder: UntypedFormBuilder);
@@ -22,7 +22,6 @@ export declare class DateUtils {
22
22
  */
23
23
  static resetTime(value: Moment | string, timezone?: string, keepLocalTime?: boolean): Moment | undefined;
24
24
  static markNoTime(value: Moment): Moment | undefined;
25
- static markTime(value: Moment): Moment | undefined;
26
25
  static isNoTime(value: Moment): boolean;
27
26
  /**
28
27
  * Test if a date is on the given day of week
@@ -11,7 +11,7 @@ import * as i0 from "@angular/core";
11
11
  export declare abstract class ToolbarToken {
12
12
  abstract onBackClick: Observable<Event>;
13
13
  abstract doBackClick(event: Event): any;
14
- abstract goBack(): Promise<boolean>;
14
+ abstract goBack(): Promise<void>;
15
15
  abstract canGoBack: boolean;
16
16
  }
17
17
  export declare class ToolbarComponent implements ToolbarToken, OnInit, OnDestroy {
@@ -52,7 +52,7 @@ export declare class ToolbarComponent implements ToolbarToken, OnInit, OnDestroy
52
52
  ngOnDestroy(): void;
53
53
  toggleSearchBar(): Promise<void>;
54
54
  doBackClick(event: Event): void;
55
- goBack(): Promise<boolean>;
55
+ goBack(): Promise<void>;
56
56
  tapClose(event: HammerTapEvent): void;
57
57
  tapValidate(event: HammerTapEvent): void;
58
58
  protected ionSearchBarChanged(event: Event): void;
@@ -281,7 +281,18 @@
281
281
  "TITLE": "Settings",
282
282
  "DESCRIPTION": "The preferences below are used for all emails or reports that are sent to you:",
283
283
  "LOCALE": "Language",
284
- "LAT_LONG_FORMAT": "Latitude/longitude format"
284
+ "LAT_LONG_FORMAT": "Latitude/longitude format",
285
+ "DUMMY_1": "c - third",
286
+ "DUMMY_2": "b - second",
287
+ "DUMMY_3": "a - first",
288
+ "DUMMY_4": "e - fifth",
289
+ "DUMMY_5": "d - fourth",
290
+ "OPTIONS": {
291
+ "TITLE": "Options",
292
+ "DEFINITION": "Option",
293
+ "DEFAULT_VALUE": "Default value",
294
+ "VALUE": "Value"
295
+ }
285
296
  },
286
297
  "INFO": {
287
298
  "RELOADED": "Your user account has been updated!"
@@ -281,7 +281,18 @@
281
281
  "TITLE": "Settings",
282
282
  "DESCRIPTION": "The preferences below are used for all emails or reports that are sent to you:",
283
283
  "LOCALE": "Language",
284
- "LAT_LONG_FORMAT": "Latitude/longitude format"
284
+ "LAT_LONG_FORMAT": "Latitude/longitude format",
285
+ "DUMMY_1": "c - third",
286
+ "DUMMY_2": "b - second",
287
+ "DUMMY_3": "a - first",
288
+ "DUMMY_4": "e - fifth",
289
+ "DUMMY_5": "d - fourth",
290
+ "OPTIONS": {
291
+ "TITLE": "Options",
292
+ "DEFINITION": "Option",
293
+ "DEFAULT_VALUE": "Default value",
294
+ "VALUE": "Value"
295
+ }
285
296
  },
286
297
  "INFO": {
287
298
  "RELOADED": "Your user account has been updated!"
@@ -62,7 +62,6 @@
62
62
  "BTN_DECIMAL_SEPARATOR": ",",
63
63
  "EMPTY_OPTION": "(Vide)",
64
64
  "All_OPTION": "(Tous)",
65
-
66
65
  "DATE_PATTERN": "DD/MM/YYYY",
67
66
  "DATE_TIME_PATTERN": "DD/MM/YYYY HH:mm",
68
67
  "DATE_TIME_SECONDS_PATTERN": "DD/MM/YYYY HH:mm:ss",
@@ -74,7 +73,6 @@
74
73
  "DATE_YEAR_PLACEHOLDER": "aaaa",
75
74
  "DATE_PLACEHOLDER": "jj/mm/aaaa",
76
75
  "DATE_TIME_PLACEHOLDER": "jj/mm/aaaa hh:mm",
77
-
78
76
  "LAT_LONG": {
79
77
  "DDMMSS_PLACEHOLDER": "DD° MM' SS\"",
80
78
  "DDMM_PLACEHOLDER": "DD° MM.MMM'",
@@ -89,9 +87,7 @@
89
87
  "LONG_SIGN_E": "E",
90
88
  "LONG_SIGN_W": "W"
91
89
  },
92
-
93
90
  "METADATA": "Metadata:",
94
-
95
91
  "DAY_UNIT": "j",
96
92
  "DATE": "Date",
97
93
  "TIME": "Heure",
@@ -100,10 +96,8 @@
100
96
  "TIME_PLACEHOLDER": "hh:mm",
101
97
  "DURATION_PLACEHOLDER": "hhh:mm",
102
98
  "DURATION_DOTS": "Durée :",
103
-
104
99
  "YES": "Oui",
105
100
  "NO": "Non",
106
-
107
101
  "DEBUG": "Debug",
108
102
  "UPDATED_ON": "Mise à jour le",
109
103
  "RECORDER": "Saisisseur",
@@ -113,17 +107,15 @@
113
107
  "PLEASE_WAIT": "Veuillez patienter...",
114
108
  "NO_DATA": "Aucune donnée",
115
109
  "MISSING": "Manquant",
116
-
117
110
  "DISPLAYED_COLUMNS": "Paramétrage des colonnes",
118
111
  "DISPLAYED_COLUMNS_DOTS": "Paramétrage des colonnes...",
119
-
120
112
  "FORM": {
121
113
  "HAS_ERROR": "Veuillez corriger des erreurs dans le formulaire"
122
114
  },
123
115
  "PAGINATOR": {
124
- "ITEMS_PER_PAGE":"Nombre de lignes",
125
- "NEXT_PAGE":"Page suivante",
126
- "PREVIOUS_PAGE":"Page précédente",
116
+ "ITEMS_PER_PAGE": "Nombre de lignes",
117
+ "NEXT_PAGE": "Page suivante",
118
+ "PREVIOUS_PAGE": "Page précédente",
127
119
  "OF": "sur"
128
120
  },
129
121
  "TABLE": {
@@ -286,7 +278,18 @@
286
278
  "TITLE": "Préférences",
287
279
  "DESCRIPTION": "Les préférences ci-dessous serviront dans les courriers électroniques et rapports que vous recevrez.",
288
280
  "LOCALE": "Langue",
289
- "LAT_LONG_FORMAT": "Format latitude/longitude"
281
+ "LAT_LONG_FORMAT": "Format latitude/longitude",
282
+ "DUMMY_1": "c - troisieme",
283
+ "DUMMY_2": "b - deuxieme",
284
+ "DUMMY_3": "a - premier",
285
+ "DUMMY_4": "e - cinquieme",
286
+ "DUMMY_5": "d - quatrieme",
287
+ "OPTIONS": {
288
+ "TITLE": "Options",
289
+ "DEFINITION": "Option",
290
+ "DEFAULT_VALUE": "Valeur par défaut",
291
+ "VALUE": "Valeur"
292
+ }
290
293
  },
291
294
  "INFO": {
292
295
  "RELOADED": "Votre compte utilisateur a été <b>actualisé</b> !"
@@ -311,13 +314,14 @@
311
314
  "USAGE_MODE": "Mode de saisie",
312
315
  "USAGE_MODE_FIELD": "Mode saisie <b>terrain</b>",
313
316
  "USAGE_MODE_DESK": "Mode saisie <b>bureau</b>",
314
- "USAGE_MODES": {
317
+ "USAGE_MODES": {
315
318
  "FIELD": "Saisie terrain",
316
319
  "DESK": "Saisie bureau"
317
320
  },
318
321
  "PROPERTY_KEY": "Option",
319
322
  "PROPERTY_VALUE": "Valeur",
320
323
  "BTN_ADD_PROPERTY": "Ajouter une option",
324
+ "BTN_SHOW_ALL_PROPERTIES": "Afficher toutes les options",
321
325
  "FIELDS": {
322
326
  "DEPARTMENT": "Liste déroulante > Organismes",
323
327
  "ATTRIBUTES": {