@sumaris-net/ngx-components 18.23.11 → 18.23.12
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 +4 -1
- package/esm2022/src/app/admin/users/person.filter.mjs +4 -4
- package/esm2022/src/app/admin/users/person.service.mjs +34 -158
- package/esm2022/src/app/admin/users/testing/person.testing.sevice.mjs +128 -0
- package/esm2022/src/app/admin/users/users.mjs +59 -53
- package/esm2022/src/app/core/account/account.page.mjs +76 -31
- package/esm2022/src/app/core/menu/menu.component.mjs +16 -5
- package/esm2022/src/app/core/register/register.form.mjs +3 -3
- package/esm2022/src/app/core/services/account.service.mjs +18 -12
- package/esm2022/src/app/core/services/config/core.config.mjs +7 -1
- package/esm2022/src/app/core/services/model/account.model.mjs +15 -1
- package/esm2022/src/app/core/services/model/entity.model.mjs +8 -1
- package/esm2022/src/app/core/services/model/person.model.mjs +4 -1
- package/esm2022/src/app/shared/form/field.model.mjs +18 -1
- package/esm2022/src/app/shared/image/image.service.mjs +5 -3
- package/esm2022/src/app/social/feed/feed.service.mjs +3 -3
- package/esm2022/src/app/social/message/message.service.mjs +2 -2
- package/esm2022/src/environments/environment.class.mjs +1 -1
- package/esm2022/src/environments/environment.mjs +2 -1
- package/fesm2022/sumaris-net.ngx-components.mjs +362 -252
- package/fesm2022/sumaris-net.ngx-components.mjs.map +1 -1
- package/package.json +1 -1
- package/src/app/admin/users/person.filter.d.ts +3 -3
- package/src/app/admin/users/person.service.d.ts +32 -28
- package/src/app/admin/users/testing/person.testing.sevice.d.ts +17 -0
- package/src/app/admin/users/users.d.ts +4 -4
- package/src/app/core/account/account.page.d.ts +9 -2
- package/src/app/core/menu/menu.component.d.ts +4 -2
- package/src/app/core/services/account.service.d.ts +5 -2
- package/src/app/core/services/config/core.config.d.ts +45 -44
- package/src/app/core/services/model/account.model.d.ts +10 -0
- package/src/app/core/services/model/entity.model.d.ts +1 -1
- package/src/app/core/services/model/person.model.d.ts +2 -0
- package/src/app/shared/form/field.model.d.ts +13 -3
- package/src/app/shared/image/image.service.d.ts +1 -0
- package/src/app/social/config/social.config.d.ts +1 -1
- package/src/app/social/feed/feed.service.d.ts +1 -2
- package/src/assets/i18n/en-US.json +10 -2
- package/src/assets/i18n/en.json +10 -2
- package/src/assets/i18n/fr.json +9 -5
- package/src/assets/manifest.json +1 -1
- package/src/environments/environment.class.d.ts +1 -0
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@ import { Person } from '../../core/services/model/person.model';
|
|
|
3
3
|
import { EntityAsObjectOptions } from '../../core/services/model/entity.model';
|
|
4
4
|
import { StoreObject } from '@apollo/client/core';
|
|
5
5
|
import { FilterFn } from '../../shared/types';
|
|
6
|
-
export declare class PersonFilter extends
|
|
6
|
+
export declare class PersonFilter<F extends PersonFilter<F, T> = PersonFilter<any, any>, T extends Person<T> = Person<any>> extends EntityFilter<F, T> {
|
|
7
7
|
static FIELDS: (keyof PersonFilter)[];
|
|
8
8
|
static fromObject: (source: any, opts?: any) => PersonFilter;
|
|
9
9
|
static asFilterFn(source: any): FilterFn<Person>;
|
|
@@ -20,13 +20,13 @@ export declare class PersonFilter extends EntityFilter<PersonFilter, Person> {
|
|
|
20
20
|
excludedIds: number[];
|
|
21
21
|
searchAttribute: string;
|
|
22
22
|
searchAttributes: string[];
|
|
23
|
-
additionalFields:
|
|
23
|
+
additionalFields: PersonFilterAdditionalFields;
|
|
24
24
|
constructor();
|
|
25
25
|
fromObject(source: any, opts?: EntityAsObjectOptions): void;
|
|
26
26
|
asObject(opts?: EntityAsObjectOptions): StoreObject;
|
|
27
27
|
protected buildFilter(): FilterFn<Person>[];
|
|
28
28
|
}
|
|
29
|
-
export declare class
|
|
29
|
+
export declare class PersonFilterAdditionalFields {
|
|
30
30
|
[key: string]: any;
|
|
31
31
|
static fromObject(source: any, opts?: any): {
|
|
32
32
|
[key: string]: any;
|
|
@@ -1,39 +1,43 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
2
|
import { GraphqlService } from '../../core/graphql/graphql.service';
|
|
3
|
-
import { NetworkService } from '../../core/services/network.service';
|
|
4
|
-
import { EntitiesStorage } from '../../core/services/storage/entities-storage.service';
|
|
5
3
|
import { Person } from '../../core/services/model/person.model';
|
|
6
4
|
import { SortDirection } from '@angular/material/sort';
|
|
7
|
-
import { EntitiesServiceLoadOptions, EntityServiceLoadOptions, LoadResult, SuggestService } from '../../shared/services/entity-service.class';
|
|
5
|
+
import { EntitiesServiceLoadOptions, EntitiesServiceWatchOptions, EntityServiceLoadOptions, IEntitiesService, LoadResult, SuggestService } from '../../shared/services/entity-service.class';
|
|
8
6
|
import { PlatformService } from '../../core/services/platform.service';
|
|
9
7
|
import { PersonFilter } from './person.filter';
|
|
10
|
-
import { BaseEntityService } from '../../core/services/base-entity-service.class';
|
|
8
|
+
import { BaseEntityGraphqlMutations, BaseEntityGraphqlQueries, BaseEntityGraphqlSubscriptions, BaseEntityService, BaseEntityServiceOptions } from '../../core/services/base-entity-service.class';
|
|
9
|
+
import { IStartableService } from '../../shared/services/startable-service.class';
|
|
10
|
+
import { NetworkService } from '../../core/services/network.service';
|
|
11
|
+
import { EntitiesStorage } from '../../core/services/storage/entities-storage.service';
|
|
11
12
|
import * as i0 from "@angular/core";
|
|
12
|
-
export declare const
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
personFilter: import("apollo-angular").TypedDocumentNode<unknown, unknown>;
|
|
16
|
-
};
|
|
17
|
-
export declare class PersonService extends BaseEntityService<Person, PersonFilter> implements SuggestService<Person, PersonFilter> {
|
|
18
|
-
protected graphql: GraphqlService;
|
|
19
|
-
protected platform: PlatformService;
|
|
20
|
-
protected network: NetworkService;
|
|
21
|
-
protected entities: EntitiesStorage;
|
|
22
|
-
constructor(graphql: GraphqlService, platform: PlatformService, network: NetworkService, entities: EntitiesStorage);
|
|
23
|
-
loadAll(offset: number, size: number, sortBy?: keyof Person | string, sortDirection?: SortDirection, filter?: Partial<PersonFilter>, opts?: EntitiesServiceLoadOptions & {
|
|
24
|
-
debug?: boolean;
|
|
25
|
-
}): Promise<LoadResult<Person>>;
|
|
26
|
-
loadAllLocally(offset: number, size: number, sortBy?: string, sortDirection?: SortDirection, filter?: Partial<PersonFilter>, opts?: EntitiesServiceLoadOptions & {
|
|
13
|
+
export declare const APP_PERSON_SERVICE: InjectionToken<IPersonService<any, any, number, EntitiesServiceWatchOptions<any, any>, EntitiesServiceLoadOptions<any, any>>>;
|
|
14
|
+
export interface IPersonService<E extends Person<E> = Person<any>, F extends PersonFilter = PersonFilter, ID = number, WO extends EntitiesServiceWatchOptions<E> = EntitiesServiceWatchOptions<E>, LO extends EntitiesServiceLoadOptions<E> = EntitiesServiceLoadOptions<E>> extends IEntitiesService<E, F, WO>, SuggestService<E, F>, IStartableService {
|
|
15
|
+
loadAll(offset: number, size: number, sortBy?: keyof Person | string, sortDirection?: SortDirection, filter?: Partial<PersonFilter>, opts?: LO & {
|
|
27
16
|
debug?: boolean;
|
|
28
17
|
}): Promise<LoadResult<Person>>;
|
|
29
|
-
suggest(value: any, filter?: Partial<PersonFilter>, sortBy?: keyof Person | string, sortDirection?: SortDirection, opts?: EntitiesServiceLoadOptions): Promise<LoadResult<Person>>;
|
|
30
|
-
executeImport(filter: Partial<PersonFilter>, opts: {
|
|
31
|
-
progression?: BehaviorSubject<number>;
|
|
32
|
-
maxProgression?: number;
|
|
33
|
-
}): Promise<void>;
|
|
34
18
|
loadById(id: number, opts?: EntityServiceLoadOptions): Promise<Person>;
|
|
35
19
|
loadByPubkey(pubkey: string, opts?: EntityServiceLoadOptions): Promise<Person>;
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
20
|
+
countAll(filter?: Partial<F>, opts?: LO): Promise<number>;
|
|
21
|
+
}
|
|
22
|
+
export interface AbstractPersonServiceOptions<T extends Person<any>, Q extends BaseEntityGraphqlQueries = BaseEntityGraphqlQueries, M extends BaseEntityGraphqlMutations = BaseEntityGraphqlMutations, S extends BaseEntityGraphqlSubscriptions = BaseEntityGraphqlSubscriptions> extends BaseEntityServiceOptions<T, number, Q, M, S> {
|
|
23
|
+
}
|
|
24
|
+
export declare abstract class AbstractPersonService<E extends Person<E> = Person<any>, F extends PersonFilter<F, E> = PersonFilter<any, E>, Q extends BaseEntityGraphqlQueries = BaseEntityGraphqlQueries, M extends BaseEntityGraphqlMutations = BaseEntityGraphqlMutations, S extends BaseEntityGraphqlSubscriptions = BaseEntityGraphqlSubscriptions, WO extends EntitiesServiceWatchOptions<E> = EntitiesServiceWatchOptions<E>, LO extends EntitiesServiceLoadOptions<E> = EntitiesServiceLoadOptions<E>, O extends AbstractPersonServiceOptions<E, Q, M, S> = AbstractPersonServiceOptions<E, Q, M, S>> extends BaseEntityService<E, F, number, WO, LO> implements IPersonService<E, F> {
|
|
25
|
+
protected dataType: new () => E;
|
|
26
|
+
protected filterType: new () => F;
|
|
27
|
+
protected options: O;
|
|
28
|
+
protected network: NetworkService;
|
|
29
|
+
protected entities: EntitiesStorage;
|
|
30
|
+
protected constructor(graphql: GraphqlService, platform: PlatformService, dataType: new () => E, filterType: new () => F, options: O);
|
|
31
|
+
loadAll(offset: number, size: number, sortBy?: keyof E | string, sortDirection?: SortDirection, filter?: Partial<F>, opts?: EntitiesServiceLoadOptions & {
|
|
32
|
+
debug?: boolean;
|
|
33
|
+
}): Promise<LoadResult<E>>;
|
|
34
|
+
protected loadAllLocally(offset: number, size: number, sortBy?: string, sortDirection?: SortDirection, filter?: Partial<F>, opts?: EntitiesServiceLoadOptions & {
|
|
35
|
+
debug?: boolean;
|
|
36
|
+
}): Promise<LoadResult<E>>;
|
|
37
|
+
suggest(value: any, filter?: Partial<F>, sortBy?: keyof E | string, sortDirection?: SortDirection, opts?: EntitiesServiceLoadOptions): Promise<LoadResult<E>>;
|
|
38
|
+
loadById(id: number, opts?: EntityServiceLoadOptions): Promise<E>;
|
|
39
|
+
loadByPubkey(pubkey: string, opts?: EntityServiceLoadOptions): Promise<E>;
|
|
40
|
+
protected asObject(source: E | any): any;
|
|
41
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AbstractPersonService<any, any, any, any, any, any, any, any>, never>;
|
|
42
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<AbstractPersonService<any, any, any, any, any, any, any, any>, never, never, {}, {}, never, never, false, never>;
|
|
39
43
|
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { AbstractPersonService, IPersonService } from '../person.service';
|
|
2
|
+
import { Person } from '../../../core/services/model/person.model';
|
|
3
|
+
import { PersonFilter } from '../person.filter';
|
|
4
|
+
import { GraphqlService } from '../../../core/graphql/graphql.service';
|
|
5
|
+
import { PlatformService } from '../../../core/services/platform.service';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export declare const PersonFragments: {
|
|
8
|
+
lightPerson: import("apollo-angular").TypedDocumentNode<unknown, unknown>;
|
|
9
|
+
person: import("apollo-angular").TypedDocumentNode<unknown, unknown>;
|
|
10
|
+
personFilter: import("apollo-angular").TypedDocumentNode<unknown, unknown>;
|
|
11
|
+
};
|
|
12
|
+
export declare class PersonTestService extends AbstractPersonService<Person, PersonFilter> implements IPersonService {
|
|
13
|
+
constructor(graphql: GraphqlService, platform: PlatformService);
|
|
14
|
+
protected asObject(source: Person | any): any;
|
|
15
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<PersonTestService, never>;
|
|
16
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<PersonTestService>;
|
|
17
|
+
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Injector, OnInit } from '@angular/core';
|
|
2
2
|
import { Person } from '../../core/services/model/person.model';
|
|
3
3
|
import { ReferentialRef } from '../../core/services/model/referential.model';
|
|
4
|
-
import {
|
|
4
|
+
import { IPersonService } from './person.service';
|
|
5
5
|
import { AccountService } from '../../core/services/account.service';
|
|
6
6
|
import { AbstractControl, UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';
|
|
7
7
|
import { AppTable } from '../../core/table/table.class';
|
|
@@ -18,7 +18,7 @@ export declare class UsersPage extends AppTable<Person, PersonFilter> implements
|
|
|
18
18
|
protected accountService: AccountService;
|
|
19
19
|
protected validatorService: ValidatorService;
|
|
20
20
|
protected configService: ConfigService;
|
|
21
|
-
protected dataService:
|
|
21
|
+
protected dataService: IPersonService;
|
|
22
22
|
protected messageService: MessageService;
|
|
23
23
|
protected menuService: MenuService;
|
|
24
24
|
protected modalCtrl: ModalController;
|
|
@@ -29,9 +29,9 @@ export declare class UsersPage extends AppTable<Person, PersonFilter> implements
|
|
|
29
29
|
readonly statusById: Readonly<import("@sumaris-net/ngx-components").KeyValueType<import("../../core/services/model/referential.model").IStatus>>;
|
|
30
30
|
readonly userProfileList: ReferentialRef[];
|
|
31
31
|
protected additionalFields: FormFieldDefinition[];
|
|
32
|
+
protected additionalFilterFields: FormFieldDefinition[];
|
|
32
33
|
protected filterCriteriaCount: number;
|
|
33
34
|
protected defaultCompact: boolean;
|
|
34
|
-
get filterableAdditionalFields(): FormFieldDefinition[];
|
|
35
35
|
set showUsernameColumn(value: boolean);
|
|
36
36
|
get showUsernameColumn(): boolean;
|
|
37
37
|
set showUsernameExtranetColumn(value: boolean);
|
|
@@ -57,7 +57,7 @@ export declare class UsersPage extends AppTable<Person, PersonFilter> implements
|
|
|
57
57
|
showFooter: boolean;
|
|
58
58
|
showToolbar: boolean;
|
|
59
59
|
showPaginator: boolean;
|
|
60
|
-
constructor(injector: Injector, formBuilder: UntypedFormBuilder, accountService: AccountService, validatorService: ValidatorService, configService: ConfigService, dataService:
|
|
60
|
+
constructor(injector: Injector, formBuilder: UntypedFormBuilder, accountService: AccountService, validatorService: ValidatorService, configService: ConfigService, dataService: IPersonService, messageService: MessageService, menuService: MenuService, modalCtrl: ModalController, environment: any);
|
|
61
61
|
filterExpansionPanel: MatExpansionPanel;
|
|
62
62
|
get firstUserColumn(): string;
|
|
63
63
|
ngOnInit(): Promise<void>;
|
|
@@ -15,6 +15,8 @@ import { AppPropertiesTable } from '../form/properties/properties.table';
|
|
|
15
15
|
import { UserTokenTable } from './token.table';
|
|
16
16
|
import { NavController } from '@ionic/angular';
|
|
17
17
|
import { Configuration } from '../services/model/config.model';
|
|
18
|
+
import { ImageService } from '../../shared/image/image.service';
|
|
19
|
+
import { Environment } from '../../../environments/environment.class';
|
|
18
20
|
import * as i0 from "@angular/core";
|
|
19
21
|
export declare class AccountPage extends AppForm<Account> implements OnInit, OnDestroy, CanLeave {
|
|
20
22
|
formBuilder: UntypedFormBuilder;
|
|
@@ -24,6 +26,8 @@ export declare class AccountPage extends AppForm<Account> implements OnInit, OnD
|
|
|
24
26
|
protected validatorService: AccountValidatorService;
|
|
25
27
|
protected configService: ConfigService;
|
|
26
28
|
protected cd: ChangeDetectorRef;
|
|
29
|
+
protected imageService: ImageService;
|
|
30
|
+
protected appBaseHref: string;
|
|
27
31
|
tabGroup: MatTabGroup;
|
|
28
32
|
propertiesTable: AppPropertiesTable;
|
|
29
33
|
tokensTable: UserTokenTable;
|
|
@@ -45,6 +49,7 @@ export declare class AccountPage extends AppForm<Account> implements OnInit, OnD
|
|
|
45
49
|
protected saving: boolean;
|
|
46
50
|
protected submitted: boolean;
|
|
47
51
|
protected accountReadOnly: boolean;
|
|
52
|
+
protected readonly defaultAvatarImage: string;
|
|
48
53
|
protected readonly mobile: boolean;
|
|
49
54
|
get valid(): boolean;
|
|
50
55
|
get invalid(): boolean;
|
|
@@ -54,8 +59,10 @@ export declare class AccountPage extends AppForm<Account> implements OnInit, OnD
|
|
|
54
59
|
protected showSecurityDetails: boolean;
|
|
55
60
|
protected showTechnicalDetails: boolean;
|
|
56
61
|
protected showApiTokens: boolean;
|
|
57
|
-
|
|
62
|
+
protected showAvatar: boolean;
|
|
63
|
+
constructor(injector: Injector, formBuilder: UntypedFormBuilder, accountService: AccountService, network: NetworkService, navController: NavController, validatorService: AccountValidatorService, configService: ConfigService, cd: ChangeDetectorRef, imageService: ImageService, environment: Environment, locales: LocaleConfig[], appBaseHref: string);
|
|
58
64
|
ngOnInit(): void;
|
|
65
|
+
onChangeAvatar(event: Event): Promise<void>;
|
|
59
66
|
ngOnDestroy(): void;
|
|
60
67
|
onLogin(account: Account): void;
|
|
61
68
|
onLogout(): void;
|
|
@@ -78,6 +85,6 @@ export declare class AccountPage extends AppForm<Account> implements OnInit, OnD
|
|
|
78
85
|
protected onConfigLoaded(config: Configuration): void;
|
|
79
86
|
protected markForCheck(): void;
|
|
80
87
|
protected openChangePasswordPage(): void;
|
|
81
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<AccountPage,
|
|
88
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AccountPage, [null, null, null, null, null, null, null, null, null, null, null, { optional: true; }]>;
|
|
82
89
|
static ɵcmp: i0.ɵɵComponentDeclaration<AccountPage, "app-account-page", never, {}, {}, never, never, false, never>;
|
|
83
90
|
}
|
|
@@ -19,6 +19,7 @@ export declare class MenuComponent implements OnInit {
|
|
|
19
19
|
protected menuService: MenuService;
|
|
20
20
|
protected router: Router;
|
|
21
21
|
protected environment: Environment;
|
|
22
|
+
protected appBaseHref: string;
|
|
22
23
|
protected route: ActivatedRoute;
|
|
23
24
|
id: string;
|
|
24
25
|
menuId: string;
|
|
@@ -34,9 +35,10 @@ export declare class MenuComponent implements OnInit {
|
|
|
34
35
|
accountName: string;
|
|
35
36
|
accountAvatar: string;
|
|
36
37
|
accountEmail: string;
|
|
38
|
+
protected readonly defaultAvatarImage: string;
|
|
37
39
|
private readonly _debug;
|
|
38
40
|
private _subscription;
|
|
39
|
-
constructor(accountService: AccountService, navController: NavController, menu: MenuController, modalCtrl: ModalController, translate: TranslateService, cd: ChangeDetectorRef, menuService: MenuService, router: Router, environment: Environment, route: ActivatedRoute);
|
|
41
|
+
constructor(accountService: AccountService, navController: NavController, menu: MenuController, modalCtrl: ModalController, translate: TranslateService, cd: ChangeDetectorRef, menuService: MenuService, router: Router, environment: Environment, appBaseHref: string, route: ActivatedRoute);
|
|
40
42
|
ngOnInit(): Promise<void>;
|
|
41
43
|
onLogin(account: Account): Promise<void>;
|
|
42
44
|
onLogout(skipRedirect?: boolean): Promise<void>;
|
|
@@ -61,6 +63,6 @@ export declare class MenuComponent implements OnInit {
|
|
|
61
63
|
protected detectChanges(): void;
|
|
62
64
|
protected markForCheck(): void;
|
|
63
65
|
protected togglePinned(event: Event, item: IMenuItem): void;
|
|
64
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<MenuComponent, [null, null, null, null, null, null, null, null, null, { optional: true; }]>;
|
|
66
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<MenuComponent, [null, null, null, null, null, null, null, null, null, { optional: true; }, { optional: true; }]>;
|
|
65
67
|
static ɵcmp: i0.ɵɵComponentDeclaration<MenuComponent, "app-menu", never, { "id": { "alias": "id"; "required": false; }; "menuId": { "alias": "menuId"; "required": false; }; "side": { "alias": "side"; "required": false; }; "contentId": { "alias": "contentId"; "required": false; }; "logo": { "alias": "logo"; "required": false; }; "appName": { "alias": "appName"; "required": false; }; "rxStrategy": { "alias": "rxStrategy"; "required": false; }; "appVersion": { "alias": "appVersion"; "required": false; }; }, {}, never, ["*", "[headerBottomRight]"], false, never>;
|
|
66
68
|
}
|
|
@@ -164,10 +164,13 @@ export declare class AccountService extends BaseGraphqlService<Account, any, num
|
|
|
164
164
|
resetPubkey(data: AuthData, token: string): Promise<boolean>;
|
|
165
165
|
listenChanges(opts?: AccountWatchOptions): Subscription;
|
|
166
166
|
get additionalFields(): FormFieldDefinition[];
|
|
167
|
+
/**
|
|
168
|
+
* @deprecated Use additionalFields$ instead
|
|
169
|
+
*/
|
|
167
170
|
get $additionalFields(): Observable<FormFieldDefinition[]>;
|
|
171
|
+
get additionalFields$(): Observable<FormFieldDefinition[]>;
|
|
168
172
|
getAdditionalField(key: string): FormFieldDefinition | undefined;
|
|
169
|
-
registerAdditionalField(
|
|
170
|
-
registerAdditionalFields(...fields: FormFieldDefinition[]): void;
|
|
173
|
+
registerAdditionalField(...fields: FormFieldDefinition[]): void;
|
|
171
174
|
get optionDefs(): FormFieldDefinition[];
|
|
172
175
|
registerOption(def: FormFieldDefinition): void;
|
|
173
176
|
registerOptions(defs: FormFieldDefinition[]): void;
|
|
@@ -1,50 +1,51 @@
|
|
|
1
1
|
import { FormFieldDefinition } from '../../../shared/form/field.model';
|
|
2
2
|
export declare const CORE_CONFIG_OPTIONS: Readonly<{
|
|
3
|
-
LOGO: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any>;
|
|
4
|
-
FAVICON: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any>;
|
|
5
|
-
DEFAULT_LOCALE: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any>;
|
|
6
|
-
DEFAULT_LAT_LONG_FORMAT: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any>;
|
|
3
|
+
LOGO: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any, any>;
|
|
4
|
+
FAVICON: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any, any>;
|
|
5
|
+
DEFAULT_LOCALE: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any, any>;
|
|
6
|
+
DEFAULT_LAT_LONG_FORMAT: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any, any>;
|
|
7
7
|
/**
|
|
8
8
|
* @deprecated Use `ACCOUNT_LAT_LONG_FORMAT_ENABLE` instead
|
|
9
9
|
*/
|
|
10
|
-
DEFAULT_LAT_LONG_FORMAT_ENABLED: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any>;
|
|
11
|
-
REGISTRATION_ENABLE: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any>;
|
|
12
|
-
AUTH_TOKEN_TYPE: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any>;
|
|
13
|
-
AUTH_RESET_PASSWORD_ENABLE: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any>;
|
|
14
|
-
AUTH_API_TOKEN_ENABLED: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any>;
|
|
15
|
-
AUTH_API_TOKEN_SCOPE_ENABLED: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any>;
|
|
16
|
-
DEFAULT_AUTH_API_TOKEN_SCOPE: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any>;
|
|
17
|
-
GRAVATAR_ENABLE: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any>;
|
|
18
|
-
GRAVATAR_URL: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any>;
|
|
19
|
-
TESTING: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any>;
|
|
20
|
-
APP_MIN_VERSION: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any>;
|
|
21
|
-
HELP_URL: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any>;
|
|
22
|
-
FORUM_URL: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any>;
|
|
23
|
-
REPORT_ISSUE_URL: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any>;
|
|
24
|
-
PRIVACY_POLICY_URL: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any>;
|
|
25
|
-
TERMS_OF_USE_URL: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any>;
|
|
26
|
-
LOGO_LARGE: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any>;
|
|
27
|
-
MENU_ITEMS: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any>;
|
|
28
|
-
HOME_PARTNERS_DEPARTMENTS: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any>;
|
|
29
|
-
HOME_BACKGROUND_IMAGE: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any>;
|
|
30
|
-
HOME_FEED_ENABLE: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any>;
|
|
31
|
-
HOME_FEED_URLS: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any>;
|
|
32
|
-
HOME_FEED_MAX_AGE_IN_MONTHS: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any>;
|
|
33
|
-
HOME_FEED_MAX_CONTENT_LENGTH: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any>;
|
|
34
|
-
COLOR_PRIMARY: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any>;
|
|
35
|
-
COLOR_SECONDARY: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any>;
|
|
36
|
-
COLOR_TERTIARY: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any>;
|
|
37
|
-
COLOR_SUCCESS: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any>;
|
|
38
|
-
COLOR_WARNING: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any>;
|
|
39
|
-
COLOR_ACCENT: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any>;
|
|
40
|
-
COLOR_DANGER: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any>;
|
|
41
|
-
FORM_FIELD_BACKGROUND_COLOR: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any>;
|
|
42
|
-
FORM_FIELD_FOCUS_BACKGROUND_COLOR: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any>;
|
|
43
|
-
FORM_FIELD_DISABLED_BACKGROUND_COLOR: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any>;
|
|
44
|
-
ANDROID_INSTALL_URL: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any>;
|
|
45
|
-
IOS_INSTALL_URL: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any>;
|
|
46
|
-
DESKTOP_INSTALL_URL: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any>;
|
|
47
|
-
DB_TIMEZONE: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any>;
|
|
48
|
-
ACCOUNT_LAT_LONG_FORMAT_ENABLE: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any>;
|
|
49
|
-
ACCOUNT_READONLY: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any>;
|
|
10
|
+
DEFAULT_LAT_LONG_FORMAT_ENABLED: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any, any>;
|
|
11
|
+
REGISTRATION_ENABLE: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any, any>;
|
|
12
|
+
AUTH_TOKEN_TYPE: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any, any>;
|
|
13
|
+
AUTH_RESET_PASSWORD_ENABLE: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any, any>;
|
|
14
|
+
AUTH_API_TOKEN_ENABLED: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any, any>;
|
|
15
|
+
AUTH_API_TOKEN_SCOPE_ENABLED: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any, any>;
|
|
16
|
+
DEFAULT_AUTH_API_TOKEN_SCOPE: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any, any>;
|
|
17
|
+
GRAVATAR_ENABLE: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any, any>;
|
|
18
|
+
GRAVATAR_URL: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any, any>;
|
|
19
|
+
TESTING: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any, any>;
|
|
20
|
+
APP_MIN_VERSION: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any, any>;
|
|
21
|
+
HELP_URL: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any, any>;
|
|
22
|
+
FORUM_URL: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any, any>;
|
|
23
|
+
REPORT_ISSUE_URL: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any, any>;
|
|
24
|
+
PRIVACY_POLICY_URL: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any, any>;
|
|
25
|
+
TERMS_OF_USE_URL: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any, any>;
|
|
26
|
+
LOGO_LARGE: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any, any>;
|
|
27
|
+
MENU_ITEMS: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any, any>;
|
|
28
|
+
HOME_PARTNERS_DEPARTMENTS: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any, any>;
|
|
29
|
+
HOME_BACKGROUND_IMAGE: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any, any>;
|
|
30
|
+
HOME_FEED_ENABLE: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any, any>;
|
|
31
|
+
HOME_FEED_URLS: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any, any>;
|
|
32
|
+
HOME_FEED_MAX_AGE_IN_MONTHS: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any, any>;
|
|
33
|
+
HOME_FEED_MAX_CONTENT_LENGTH: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any, any>;
|
|
34
|
+
COLOR_PRIMARY: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any, any>;
|
|
35
|
+
COLOR_SECONDARY: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any, any>;
|
|
36
|
+
COLOR_TERTIARY: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any, any>;
|
|
37
|
+
COLOR_SUCCESS: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any, any>;
|
|
38
|
+
COLOR_WARNING: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any, any>;
|
|
39
|
+
COLOR_ACCENT: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any, any>;
|
|
40
|
+
COLOR_DANGER: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any, any>;
|
|
41
|
+
FORM_FIELD_BACKGROUND_COLOR: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any, any>;
|
|
42
|
+
FORM_FIELD_FOCUS_BACKGROUND_COLOR: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any, any>;
|
|
43
|
+
FORM_FIELD_DISABLED_BACKGROUND_COLOR: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any, any>;
|
|
44
|
+
ANDROID_INSTALL_URL: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any, any>;
|
|
45
|
+
IOS_INSTALL_URL: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any, any>;
|
|
46
|
+
DESKTOP_INSTALL_URL: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any, any>;
|
|
47
|
+
DB_TIMEZONE: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any, any>;
|
|
48
|
+
ACCOUNT_LAT_LONG_FORMAT_ENABLE: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any, any>;
|
|
49
|
+
ACCOUNT_READONLY: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any, any>;
|
|
50
|
+
ACCOUNT_AVATAR_ENABLE: FormFieldDefinition<string, import("../../../shared/form/field.model").FormFieldType, any, any>;
|
|
50
51
|
}>;
|
|
@@ -20,11 +20,21 @@ export declare class Account extends Person<Account> {
|
|
|
20
20
|
asPerson(): Person;
|
|
21
21
|
get displayName(): string;
|
|
22
22
|
}
|
|
23
|
+
export type AccountViewName = 'registration' | 'account' | 'users' | 'usersFilter';
|
|
23
24
|
export declare abstract class AccountUtils {
|
|
24
25
|
static accountToString: typeof accountToString;
|
|
25
26
|
static hasMinProfile(account: Account | null, userProfile: UserProfileLabel): boolean;
|
|
26
27
|
static hasExactProfile(account: Account | null, label: UserProfileLabel): boolean;
|
|
27
28
|
static hasProfileAndIsEnable(account: Account | null, userProfile: UserProfileLabel): boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Determines whether an additional field is enabled for a particular account UI part (=the meta key).
|
|
31
|
+
*
|
|
32
|
+
* @param {FormFieldDefinition} field - The field definition object.
|
|
33
|
+
* @param {AccountViewName} viewName - The account view, to check the field's status.
|
|
34
|
+
* @return {boolean} Returns `true` if the field is enabled for the given account view, otherwise `false`.
|
|
35
|
+
*/
|
|
36
|
+
static isFieldEnableFor(field: FormFieldDefinition, viewName: AccountViewName): boolean;
|
|
37
|
+
static isFieldVisibleFor(field: FormFieldDefinition, viewName: AccountViewName): boolean;
|
|
28
38
|
}
|
|
29
39
|
export declare class UserSettings extends Entity<UserSettings> {
|
|
30
40
|
static SETTINGS_PROPERTIES: string[];
|
|
@@ -129,5 +129,5 @@ export declare abstract class EntityUtils {
|
|
|
129
129
|
* // Convert with options
|
|
130
130
|
* const result = EntityUtils.asObject(myEntity, { minify: true });
|
|
131
131
|
*/
|
|
132
|
-
static asObject(source: any, opts?:
|
|
132
|
+
static asObject(source: any, opts?: EntityAsObjectOptions, visited?: WeakSet<object>): any;
|
|
133
133
|
}
|
|
@@ -18,12 +18,14 @@ export declare class Person<T extends Person<any> = Person<any>> extends Entity<
|
|
|
18
18
|
usernameExtranet: string;
|
|
19
19
|
profiles: string[];
|
|
20
20
|
mainProfile: string;
|
|
21
|
+
programs: any;
|
|
21
22
|
constructor(__typename?: string);
|
|
22
23
|
asObject(opts?: ReferentialAsObjectOptions): any;
|
|
23
24
|
fromObject(source: any): void;
|
|
24
25
|
equals(other: T): boolean;
|
|
25
26
|
}
|
|
26
27
|
export declare class PersonUtils {
|
|
28
|
+
static DEFAULT_AVATAR_IMG: string;
|
|
27
29
|
static getMainProfile(profiles?: string[]): UserProfileLabel;
|
|
28
30
|
static getMainProfileIndex(profiles?: string[]): number;
|
|
29
31
|
static hasUpperOrEqualsProfile(actualProfiles: string[], expectedProfile: UserProfileLabel): boolean;
|
|
@@ -3,7 +3,7 @@ import { InjectionToken, Injector } from '@angular/core';
|
|
|
3
3
|
import { MatAutocompleteFieldConfig } from '../material/autocomplete/material.autocomplete.config';
|
|
4
4
|
import { UserProfileLabel } from '../../core/services/model/person.model';
|
|
5
5
|
export type FormFieldType = 'integer' | 'double' | 'boolean' | 'string' | 'enum' | 'enums' | 'color' | 'peer' | 'entity' | 'entities' | 'date' | 'dateTime';
|
|
6
|
-
export declare interface FormFieldDefinition<K = string, T = FormFieldType, E = any> {
|
|
6
|
+
export declare interface FormFieldDefinition<K = string, T = FormFieldType, E = any, F = any> {
|
|
7
7
|
key: K;
|
|
8
8
|
type: T;
|
|
9
9
|
label: string;
|
|
@@ -13,14 +13,15 @@ export declare interface FormFieldDefinition<K = string, T = FormFieldType, E =
|
|
|
13
13
|
defaultValue?: any;
|
|
14
14
|
isTransient?: boolean;
|
|
15
15
|
values?: (string | Property)[] | InjectionToken<(string | Property)[]>;
|
|
16
|
-
autocomplete?: MatAutocompleteFieldConfig<E>;
|
|
16
|
+
autocomplete?: MatAutocompleteFieldConfig<E, F>;
|
|
17
17
|
chipColor?: AppColors;
|
|
18
18
|
disabled?: boolean;
|
|
19
19
|
required?: boolean;
|
|
20
20
|
extra?: {
|
|
21
21
|
[key: string]: {
|
|
22
|
-
|
|
22
|
+
description?: string;
|
|
23
23
|
required: boolean;
|
|
24
|
+
disabled?: boolean;
|
|
24
25
|
};
|
|
25
26
|
};
|
|
26
27
|
minProfile?: UserProfileLabel;
|
|
@@ -67,6 +68,15 @@ export declare class FormFieldDefinitionUtils {
|
|
|
67
68
|
*/
|
|
68
69
|
static getEnumValues(injector: Injector, enumValues: (string | Property)[] | InjectionToken<(string | Property)[]>): Property[];
|
|
69
70
|
static getDisplayValueFn(definition: FormFieldDefinition): DisplayFn;
|
|
71
|
+
/**
|
|
72
|
+
* Determines whether an additional field is enabled for a particular context (=the extra key).
|
|
73
|
+
*
|
|
74
|
+
* @param {FormFieldDefinition} field - The field definition object.
|
|
75
|
+
* @param {string} extraKey - The extra key, to check the field's status.
|
|
76
|
+
* @return {boolean} Returns `true` if the field is enabled for the given key, otherwise `false`.
|
|
77
|
+
*/
|
|
78
|
+
static isFieldEnableFor(field: FormFieldDefinition, extraKey: string): boolean;
|
|
79
|
+
static isFieldVisibleFor(field: FormFieldDefinition, extraKey: string): boolean;
|
|
70
80
|
private static asPropertyArray;
|
|
71
81
|
}
|
|
72
82
|
export declare abstract class FormFieldValuesHolder {
|
|
@@ -23,6 +23,7 @@ export declare class ImageService extends StartableService {
|
|
|
23
23
|
quality?: number;
|
|
24
24
|
multiple?: boolean;
|
|
25
25
|
autoHideDropArea?: boolean;
|
|
26
|
+
style?: 'camera' | 'upload-popover' | 'auto';
|
|
26
27
|
} & Omit<ImageOptions, 'resultType'>): Promise<Image[] | undefined>;
|
|
27
28
|
protected addUploadedImages(event?: Event, opts?: {
|
|
28
29
|
maxHeight?: number;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { FormFieldDefinition } from '../../shared/form/field.model';
|
|
2
2
|
export declare const SOCIAL_CONFIG_OPTIONS: Readonly<{
|
|
3
|
-
ENABLE_NOTIFICATION_ICONS: FormFieldDefinition<string, import("../../shared/form/field.model").FormFieldType, any>;
|
|
3
|
+
ENABLE_NOTIFICATION_ICONS: FormFieldDefinition<string, import("../../shared/form/field.model").FormFieldType, any, any>;
|
|
4
4
|
}>;
|
|
@@ -7,7 +7,6 @@ import { NetworkService } from '../../core/services/network.service';
|
|
|
7
7
|
import { LocalSettingsService } from '../../core/services/local-settings.service';
|
|
8
8
|
import { RxState } from '@rx-angular/state';
|
|
9
9
|
import { Environment } from '../../../environments/environment.class';
|
|
10
|
-
import { PersonService } from '../../admin/users/person.service';
|
|
11
10
|
import { ModalController } from '@ionic/angular';
|
|
12
11
|
import { MessageService } from '../message/message.service';
|
|
13
12
|
import { AccountService } from '../../core/services/account.service';
|
|
@@ -48,7 +47,7 @@ export declare class FeedService<S extends FeedServiceState, T extends JsonFeed
|
|
|
48
47
|
protected network: NetworkService;
|
|
49
48
|
protected modalCtrl: ModalController;
|
|
50
49
|
protected messageService: MessageService;
|
|
51
|
-
protected personService:
|
|
50
|
+
protected personService: import("../../admin/users/person.service").IPersonService<any, any, number, import("../../shared/services/entity-service.class").EntitiesServiceWatchOptions<any, any>, import("../../shared/services/entity-service.class").EntitiesServiceLoadOptions<any, any>>;
|
|
52
51
|
protected locale$: Observable<S["locale"]>;
|
|
53
52
|
feedUrls$: Observable<S["feedUrls"]>;
|
|
54
53
|
get feedUrls(): string[];
|
|
@@ -173,7 +173,8 @@
|
|
|
173
173
|
"TERMS_OF_USE_URL": "App > Address to General terms of use (URL - Markdown preferred)",
|
|
174
174
|
"ACCOUNT": {
|
|
175
175
|
"ENABLE_LATLONG_FORMAT": "My Account > Settings > Enable lat/lon format?",
|
|
176
|
-
"READONLY": "My Account > Readonly
|
|
176
|
+
"READONLY": "My Account > Profile > Readonly? (readonly option)",
|
|
177
|
+
"AVATAR_ENABLE": "My Account > Profile > Enable avatar?"
|
|
177
178
|
},
|
|
178
179
|
"HOME": {
|
|
179
180
|
"LOGO_LARGE": "Home > Logo (max width 400px)",
|
|
@@ -495,6 +496,12 @@
|
|
|
495
496
|
"TITLE": "Select Users",
|
|
496
497
|
"BTN_TEST_MODAL": "Test Select Users Modal",
|
|
497
498
|
"SELECTED_COUNT": "{{count}} user(s) selected"
|
|
499
|
+
},
|
|
500
|
+
"EXTRA": {
|
|
501
|
+
"PROGRAM": "Data collection program",
|
|
502
|
+
"PROGRAMS": "Data collection program(s)",
|
|
503
|
+
"PROGRAMS_HELP": "<b>Data collection or experimental program</b> you would like to participate in:",
|
|
504
|
+
"PROGRAM_PRIVILEGES": "Program privilege(s)"
|
|
498
505
|
}
|
|
499
506
|
},
|
|
500
507
|
"NETWORK": {
|
|
@@ -540,7 +547,8 @@
|
|
|
540
547
|
"NOTIFICATION": {
|
|
541
548
|
"TITLE": "Notifications",
|
|
542
549
|
"EMPTY": "No notification",
|
|
543
|
-
"READ_ALL": "Mark all as read"
|
|
550
|
+
"READ_ALL": "Mark all as read",
|
|
551
|
+
"SHOW_ALL": "Show all"
|
|
544
552
|
},
|
|
545
553
|
"TYPE": "Type",
|
|
546
554
|
"ICON": "Icon",
|
package/src/assets/i18n/en.json
CHANGED
|
@@ -173,7 +173,8 @@
|
|
|
173
173
|
"TERMS_OF_USE_URL": "App > Address to General terms of use (URL - Markdown preferred)",
|
|
174
174
|
"ACCOUNT": {
|
|
175
175
|
"ENABLE_LATLONG_FORMAT": "My Account > Settings > Enable lat/lon format?",
|
|
176
|
-
"READONLY": "My Account > Readonly
|
|
176
|
+
"READONLY": "My Account > Profile > Readonly? (readonly option)",
|
|
177
|
+
"AVATAR_ENABLE": "My Account > Profile > Enable avatar?"
|
|
177
178
|
},
|
|
178
179
|
"HOME": {
|
|
179
180
|
"LOGO_LARGE": "Home > Logo (max width 400px)",
|
|
@@ -495,6 +496,12 @@
|
|
|
495
496
|
"TITLE": "Select Users",
|
|
496
497
|
"BTN_TEST_MODAL": "Test Select Users Modal",
|
|
497
498
|
"SELECTED_COUNT": "{{count}} user(s) selected"
|
|
499
|
+
},
|
|
500
|
+
"EXTRA": {
|
|
501
|
+
"PROGRAM": "Data collection program",
|
|
502
|
+
"PROGRAMS": "Data collection program(s)",
|
|
503
|
+
"PROGRAMS_HELP": "<b>Data collection or experimental program</b> you would like to participate in:",
|
|
504
|
+
"PROGRAM_PRIVILEGES": "Program privilege(s)"
|
|
498
505
|
}
|
|
499
506
|
},
|
|
500
507
|
"NETWORK": {
|
|
@@ -540,7 +547,8 @@
|
|
|
540
547
|
"NOTIFICATION": {
|
|
541
548
|
"TITLE": "Notifications",
|
|
542
549
|
"EMPTY": "No notification",
|
|
543
|
-
"READ_ALL": "Mark all as read"
|
|
550
|
+
"READ_ALL": "Mark all as read",
|
|
551
|
+
"SHOW_ALL": "Show all"
|
|
544
552
|
},
|
|
545
553
|
"TYPE": "Type",
|
|
546
554
|
"ICON": "Icon",
|
package/src/assets/i18n/fr.json
CHANGED
|
@@ -173,7 +173,8 @@
|
|
|
173
173
|
"TERMS_OF_USE_URL": "App > Adresse des Conditions Générales d'Utilisation (CGU) (URL - Markdown de préférence)",
|
|
174
174
|
"ACCOUNT": {
|
|
175
175
|
"ENABLE_LATLONG_FORMAT": "Mon Compte > Préférences > Activer le format lat/lon ?",
|
|
176
|
-
"READONLY": "Mon Compte > Profil
|
|
176
|
+
"READONLY": "Mon Compte > Profil > Lecture seule ? (option non modifiable)",
|
|
177
|
+
"AVATAR_ENABLE": "Mon Compte > Profil > Activer l'avatar ?"
|
|
177
178
|
},
|
|
178
179
|
"HOME": {
|
|
179
180
|
"LOGO_LARGE": "Accueil > Logo (largeur max 400px)",
|
|
@@ -342,7 +343,7 @@
|
|
|
342
343
|
"EMAIL_NOT_RECEIVED_QUESTION": "Si vous n'avez pas reçu l'email de validation,<br/>vous pouvez <b>demander un nouvel envoi</b> :",
|
|
343
344
|
"BTN_RESEND": "Renvoyer",
|
|
344
345
|
"USER_DETAILS": {
|
|
345
|
-
"TITLE": "
|
|
346
|
+
"TITLE": "Profil",
|
|
346
347
|
"DESCRIPTION": "Voici les données enregistrées concernant votre compte :",
|
|
347
348
|
"TECHNICAL_DIVIDER": "Information techniques",
|
|
348
349
|
"PROFILE": "Profil utilisateur",
|
|
@@ -485,9 +486,6 @@
|
|
|
485
486
|
"USER": "Observateur",
|
|
486
487
|
"GUEST": "Invité"
|
|
487
488
|
},
|
|
488
|
-
"PROGRAM": "Programme(s) de collecte",
|
|
489
|
-
"PROGRAM_LABEL": "Code programme",
|
|
490
|
-
"PROGRAM_NAME": "Libellé programme",
|
|
491
489
|
"LIST": {
|
|
492
490
|
"TITLE": "Utilisateurs",
|
|
493
491
|
"BTN_SEND_MESSAGE": "Envoyer un message",
|
|
@@ -500,6 +498,12 @@
|
|
|
500
498
|
"TITLE": "Sélectionner des utilisateurs",
|
|
501
499
|
"BTN_TEST_MODAL": "Tester la modale de sélection",
|
|
502
500
|
"SELECTED_COUNT": "{{count}} utilisateur(s) sélectionné(s)"
|
|
501
|
+
},
|
|
502
|
+
"EXTRA": {
|
|
503
|
+
"PROGRAM": "Programme de collecte",
|
|
504
|
+
"PROGRAMS": "Programme(s) de collecte",
|
|
505
|
+
"PROGRAMS_HELP": "<b>Programme de collecte ou d'expérimentation</b> auquel vous souhaitez participer :",
|
|
506
|
+
"PROGRAM_PRIVILEGES": "Privilège(s) de programme"
|
|
503
507
|
}
|
|
504
508
|
},
|
|
505
509
|
"NETWORK": {
|
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": "18.23.
|
|
5
|
+
"version": "18.23.12",
|
|
6
6
|
"default_locale": "fr",
|
|
7
7
|
"description": "Angular components for building beautiful and responsive Apps",
|
|
8
8
|
"icons": [{
|