@sumaris-net/ngx-components 2.5.13 → 2.5.14-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.
Files changed (35) hide show
  1. package/esm2020/public_api.mjs +5 -2
  2. package/esm2020/src/app/core/account/account.module.mjs +22 -8
  3. package/esm2020/src/app/core/account/account.page.mjs +18 -4
  4. package/esm2020/src/app/core/account/new-token.modal.mjs +115 -0
  5. package/esm2020/src/app/core/account/token.table.mjs +137 -0
  6. package/esm2020/src/app/core/form/entity/entity-editor-modal.class.mjs +1 -1
  7. package/esm2020/src/app/core/form/form.class.mjs +1 -1
  8. package/esm2020/src/app/core/services/account.service.mjs +71 -14
  9. package/esm2020/src/app/core/services/model/account.model.mjs +5 -1
  10. package/esm2020/src/app/core/services/model/token.model.mjs +48 -0
  11. package/esm2020/src/app/core/services/validator/account.validator.mjs +3 -2
  12. package/esm2020/src/app/core/services/validator/user-token.validator.mjs +52 -0
  13. package/esm2020/src/app/shared/pipes/pipes.module.mjs +10 -2
  14. package/esm2020/src/app/shared/pipes/string.pipes.mjs +28 -2
  15. package/fesm2015/sumaris-net.ngx-components.mjs +2391 -1964
  16. package/fesm2015/sumaris-net.ngx-components.mjs.map +1 -1
  17. package/fesm2020/sumaris-net.ngx-components.mjs +2322 -1914
  18. package/fesm2020/sumaris-net.ngx-components.mjs.map +1 -1
  19. package/package.json +1 -1
  20. package/public_api.d.ts +4 -1
  21. package/src/app/core/account/account.module.d.ts +9 -6
  22. package/src/app/core/account/account.page.d.ts +2 -0
  23. package/src/app/core/account/new-token.modal.d.ts +41 -0
  24. package/src/app/core/account/token.table.d.ts +25 -0
  25. package/src/app/core/form/entity/entity-editor-modal.class.d.ts +1 -1
  26. package/src/app/core/form/form.class.d.ts +2 -2
  27. package/src/app/core/services/account.service.d.ts +11 -0
  28. package/src/app/core/services/model/account.model.d.ts +2 -0
  29. package/src/app/core/services/model/token.model.d.ts +21 -0
  30. package/src/app/core/services/validator/user-token.validator.d.ts +13 -0
  31. package/src/app/shared/pipes/pipes.module.d.ts +1 -1
  32. package/src/app/shared/pipes/string.pipes.d.ts +10 -0
  33. package/src/assets/i18n/en-US.json +32 -0
  34. package/src/assets/i18n/en.json +32 -0
  35. package/src/assets/i18n/fr.json +32 -0
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.5.13",
4
+ "version": "2.5.14-rc2",
5
5
  "author": "contact@e-is.pro",
6
6
  "license": "AGPL-3.0",
7
7
  "readmeFilename": "README.md",
package/public_api.d.ts CHANGED
@@ -117,6 +117,7 @@ export * from './src/app/shared/debug/debug.module';
117
117
  export * from './src/app/shared/debug/debug.component';
118
118
  export * from './src/app/core/core.module';
119
119
  export * from './src/app/core/services/model/account.model';
120
+ export * from './src/app/core/services/model/token.model';
120
121
  export * from './src/app/core/services/model/config.model';
121
122
  export * from './src/app/core/services/model/department.model';
122
123
  export * from './src/app/core/services/model/entity.model';
@@ -182,8 +183,10 @@ export * from './src/app/core/home/home';
182
183
  export * from './src/app/core/home/home.module';
183
184
  export * from './src/app/core/settings/settings.page';
184
185
  export * from './src/app/core/settings/settings.module';
185
- export * from './src/app/core/account/account.page';
186
186
  export * from './src/app/core/account/account.module';
187
+ export * from './src/app/core/account/account.page';
188
+ export * from './src/app/core/account/token.table';
189
+ export * from './src/app/core/account/new-token.modal';
187
190
  export * from './src/app/core/auth/auth.form';
188
191
  export * from './src/app/core/auth/auth.modal';
189
192
  export * from './src/app/core/auth/auth.module';
@@ -1,12 +1,15 @@
1
1
  import * as i0 from "@angular/core";
2
2
  import * as i1 from "./account.page";
3
- import * as i2 from "@angular/common";
4
- import * as i3 from "../../shared/shared.module";
5
- import * as i4 from "@ngx-translate/core";
6
- import * as i5 from "../form/buttons/form-buttons-bar.module";
7
- import * as i6 from "../form/properties/properties.module";
3
+ import * as i2 from "./token.table";
4
+ import * as i3 from "./new-token.modal";
5
+ import * as i4 from "@angular/common";
6
+ import * as i5 from "../../shared/shared.module";
7
+ import * as i6 from "@ngx-translate/core";
8
+ import * as i7 from "../form/buttons/form-buttons-bar.module";
9
+ import * as i8 from "../form/properties/properties.module";
10
+ import * as i9 from "../table/table.module";
8
11
  export declare class AppAccountModule {
9
12
  static ɵfac: i0.ɵɵFactoryDeclaration<AppAccountModule, never>;
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]>;
13
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AppAccountModule, [typeof i1.AccountPage, typeof i2.UserTokenTable, typeof i3.NewTokenModal], [typeof i4.CommonModule, typeof i5.SharedModule, typeof i6.TranslateModule, typeof i7.AppFormButtonsBarModule, typeof i8.AppPropertiesFormModule, typeof i9.AppTableModule], [typeof i6.TranslateModule, typeof i1.AccountPage, typeof i2.UserTokenTable, typeof i3.NewTokenModal]>;
11
14
  static ɵinj: i0.ɵɵInjectorDeclaration<AppAccountModule>;
12
15
  }
@@ -13,6 +13,7 @@ import { NetworkService } from '../services/network.service';
13
13
  import { MatTabGroup } from '@angular/material/tabs';
14
14
  import { ConfigService } from '../services/config.service';
15
15
  import { AppPropertiesTable } from '../form/properties/properties.table';
16
+ import { UserTokenTable } from './token.table';
16
17
  import * as i0 from "@angular/core";
17
18
  export declare class AccountPage extends AppForm<Account> implements OnInit, OnDestroy, CanLeave {
18
19
  formBuilder: UntypedFormBuilder;
@@ -24,6 +25,7 @@ export declare class AccountPage extends AppForm<Account> implements OnInit, OnD
24
25
  protected cd: ChangeDetectorRef;
25
26
  tabGroup: MatTabGroup;
26
27
  propertiesTable: AppPropertiesTable;
28
+ tokensTable: UserTokenTable;
27
29
  selectedTabIndex: number;
28
30
  isLogin: boolean;
29
31
  changesSubscription: Subscription;
@@ -0,0 +1,41 @@
1
+ import { AppEntityEditorModal, IEntityEditorModalOptions } from '../form/entity/entity-editor-modal.class';
2
+ import { TokenScope, UserToken } from '../services/model/token.model';
3
+ import { UntypedFormGroup } from '@angular/forms';
4
+ import { Injector, OnInit } from '@angular/core';
5
+ import { UserTokenValidatorService } from '../services/validator/user-token.validator';
6
+ import { TranslateService } from '@ngx-translate/core';
7
+ import { MatAutocompleteFieldConfig } from '../../shared/material/autocomplete/material.autocomplete.config';
8
+ import { IAppForm } from '../form/form.utils';
9
+ import { AccountService } from '../services/account.service';
10
+ import * as i0 from "@angular/core";
11
+ export interface INewTokenModalOptions extends IEntityEditorModalOptions<UserToken> {
12
+ tokenScopes: TokenScope[];
13
+ existingNames: string[];
14
+ }
15
+ export declare class NewTokenModal extends AppEntityEditorModal<UserToken> implements OnInit, INewTokenModalOptions {
16
+ private injector;
17
+ protected translate: TranslateService;
18
+ protected validator: UserTokenValidatorService;
19
+ protected accountService: AccountService;
20
+ tokenForm: UntypedFormGroup;
21
+ tokenAppForm: IAppForm;
22
+ tokenConfig: MatAutocompleteFieldConfig;
23
+ copiedLabel: string;
24
+ tokenScopes: TokenScope[];
25
+ existingNames: string[];
26
+ constructor(injector: Injector, translate: TranslateService, validator: UserTokenValidatorService, accountService: AccountService);
27
+ get valid(): boolean;
28
+ get invalid(): boolean;
29
+ ngOnInit(): void;
30
+ protected computeTitle(data: UserToken): Promise<string>;
31
+ protected get form(): UntypedFormGroup;
32
+ protected getFirstInvalidTabIndex(): number;
33
+ protected registerForms(): void;
34
+ protected setValue(data: UserToken): Promise<void> | void;
35
+ protected getValue(): Promise<UserToken>;
36
+ generate(event: UIEvent): Promise<void>;
37
+ copy(event: UIEvent): Promise<void>;
38
+ protected getFlags(scopes: TokenScope[]): number;
39
+ static ɵfac: i0.ɵɵFactoryDeclaration<NewTokenModal, never>;
40
+ static ɵcmp: i0.ɵɵComponentDeclaration<NewTokenModal, "app-new-token-modal", never, { "tokenScopes": "tokenScopes"; "existingNames": "existingNames"; }, {}, never, ["*"], false>;
41
+ }
@@ -0,0 +1,25 @@
1
+ import { Injector, OnInit } from '@angular/core';
2
+ import { UntypedFormBuilder } from '@angular/forms';
3
+ import { ValidatorService } from '@e-is/ngx-material-table';
4
+ import { TokenScope, UserToken } from '../services/model/token.model';
5
+ import { AppInMemoryTable } from '../table/memory-table.class';
6
+ import { Environment } from '../../../environments/environment.class';
7
+ import * as i0 from "@angular/core";
8
+ export declare class UserTokenTable extends AppInMemoryTable<UserToken> implements OnInit {
9
+ protected injector: Injector;
10
+ protected formBuilder: UntypedFormBuilder;
11
+ protected validatorService: ValidatorService;
12
+ protected tokenScopes: TokenScope[];
13
+ useSticky: boolean;
14
+ constructor(injector: Injector, formBuilder: UntypedFormBuilder, validatorService: ValidatorService, environment: Environment, tokenScopes: TokenScope[]);
15
+ ngOnInit(): void;
16
+ get value(): UserToken[];
17
+ set value(data: UserToken[]);
18
+ setValue(value: UserToken[], opts?: {
19
+ emitEvent?: boolean;
20
+ }): void;
21
+ addToken(event: UIEvent): Promise<void>;
22
+ display(scopes: TokenScope[]): string;
23
+ static ɵfac: i0.ɵɵFactoryDeclaration<UserTokenTable, [null, null, null, null, { optional: true; }]>;
24
+ static ɵcmp: i0.ɵɵComponentDeclaration<UserTokenTable, "app-user-token-table", never, { "useSticky": "useSticky"; }, {}, never, never, false>;
25
+ }
@@ -72,7 +72,7 @@ export declare abstract class AppEntityEditorModal<T extends Entity<T, ID>, ID =
72
72
  unload(opts?: {
73
73
  emitEvent?: boolean;
74
74
  }): Promise<void>;
75
- updateView(data: T | null, opts?: {
75
+ updateView(data: T, opts?: {
76
76
  emitEvent?: boolean;
77
77
  openTabIndex?: number;
78
78
  }): Promise<void>;
@@ -8,7 +8,7 @@ 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 abstract class AppForm<T> implements IAppForm, OnInit, OnDestroy, IFormControlPathTranslator {
11
+ export declare class AppForm<T> implements IAppForm, OnInit, OnDestroy, IFormControlPathTranslator {
12
12
  private _subscription;
13
13
  private _form;
14
14
  protected _enable: boolean;
@@ -71,7 +71,7 @@ export declare abstract class AppForm<T> implements IAppForm, OnInit, OnDestroy,
71
71
  get form(): UntypedFormGroup;
72
72
  onCancel: EventEmitter<any>;
73
73
  onSubmit: EventEmitter<any>;
74
- protected constructor(injector: Injector, form?: UntypedFormGroup);
74
+ constructor(injector: Injector, form?: UntypedFormGroup);
75
75
  ngOnInit(): void;
76
76
  ngOnDestroy(): void;
77
77
  cancel(): Promise<void>;
@@ -19,6 +19,7 @@ import { ShowToastOptions } from '../../shared/toast/toasts';
19
19
  import { OverlayEventDetail } from '@ionic/core';
20
20
  import { ToastController } from '@ionic/angular';
21
21
  import { TranslateService } from '@ngx-translate/core';
22
+ import { TokenScope, UserToken } from './model/token.model';
22
23
  import * as i0 from "@angular/core";
23
24
  export declare interface AccountDetails {
24
25
  loaded: boolean;
@@ -42,10 +43,16 @@ export interface UserSettingsOptions {
42
43
  options: FormFieldDefinitionMap;
43
44
  }
44
45
  export declare const APP_USER_SETTINGS_OPTIONS: InjectionToken<UserSettingsOptions>;
46
+ export declare const APP_USER_TOKEN_SCOPES: InjectionToken<TokenScope[]>;
45
47
  export declare interface IsEmailExistsVariables {
46
48
  email: string;
47
49
  hash: string;
48
50
  }
51
+ interface IAuthChallenge {
52
+ pubkey: string;
53
+ challenge: string;
54
+ signature: string;
55
+ }
49
56
  export interface AccountWatchOptions {
50
57
  intervalInSeconds?: number;
51
58
  }
@@ -115,6 +122,7 @@ export declare class AccountService extends BaseGraphqlService<Account, any, num
115
122
  offline?: boolean;
116
123
  fetchPolicy?: FetchPolicy;
117
124
  }): Promise<Account | undefined>;
125
+ generateToken(flags: number): Promise<string | undefined>;
118
126
  /**
119
127
  * Check if email is available for new account registration.
120
128
  * Throw an error if not available
@@ -164,12 +172,15 @@ export declare class AccountService extends BaseGraphqlService<Account, any, num
164
172
  */
165
173
  protected saveSettingsRemotely(settings: UserSettings): Promise<void>;
166
174
  protected authenticateAndGetToken(token?: string, counter?: number): Promise<string>;
175
+ protected getAuthChallenge(): Promise<IAuthChallenge>;
167
176
  protected startListenRemoteChanges(opts?: AccountWatchOptions): Subscription;
168
177
  protected stopListenRemoteChanges(): void;
169
178
  protected watchChanges(opts?: AccountWatchOptions): Observable<Account>;
170
179
  protected copyIdAndUpdateDate(source: Account | undefined, target: Account): void;
171
180
  protected copyIdAndUpdateDateSettings(source: UserSettings | undefined, target: UserSettings): void;
181
+ protected copyIdAndUpdateDateToken(sources: UserToken[] | undefined, targets: UserToken[]): void;
172
182
  protected showToast<T = any>(opts: ShowToastOptions): Promise<OverlayEventDetail<T>>;
173
183
  static ɵfac: i0.ɵɵFactoryDeclaration<AccountService, [null, null, null, null, null, { optional: true; }, { optional: true; }, null, { optional: true; }]>;
174
184
  static ɵprov: i0.ɵɵInjectableDeclaration<AccountService>;
175
185
  }
186
+ export {};
@@ -2,12 +2,14 @@ import { LocalSettings } from './settings.model';
2
2
  import { Person } from './person.model';
3
3
  import { Entity, EntityAsObjectOptions } from './entity.model';
4
4
  import { LatLongPattern } from '../../../shared/material/latlong/latlong.utils';
5
+ import { UserToken } from './token.model';
5
6
  /**
6
7
  * A user account
7
8
  */
8
9
  export declare class Account extends Person<Account> {
9
10
  static fromObject: (source: any, opts?: any) => Account;
10
11
  settings: UserSettings;
12
+ tokens: UserToken[];
11
13
  constructor();
12
14
  asObject(opts?: EntityAsObjectOptions): any;
13
15
  fromObject(source: any): void;
@@ -0,0 +1,21 @@
1
+ import { Entity, EntityAsObjectOptions } from './entity.model';
2
+ import { Moment } from 'moment/moment';
3
+ export declare class TokenScope {
4
+ id: string;
5
+ flag: number;
6
+ name: string;
7
+ }
8
+ export declare class UserToken extends Entity<UserToken> {
9
+ static fromObject: (source: any, opts?: any) => UserToken;
10
+ pubkey: string;
11
+ token: string;
12
+ name: string;
13
+ flags: number;
14
+ scopes: TokenScope[];
15
+ expirationDate: Moment;
16
+ lastUsedDate: Moment;
17
+ creationDate: Moment;
18
+ constructor();
19
+ asObject(opts?: EntityAsObjectOptions): any;
20
+ fromObject(source: any, opts?: any): void;
21
+ }
@@ -0,0 +1,13 @@
1
+ import { UntypedFormBuilder, UntypedFormControl, UntypedFormGroup, ValidationErrors, ValidatorFn } from '@angular/forms';
2
+ import { AppValidatorService } from './base.validator.class';
3
+ import { UserToken } from '../model/token.model';
4
+ import * as i0 from "@angular/core";
5
+ export declare class UserTokenValidatorService extends AppValidatorService<UserToken> {
6
+ constructor(formBuilder: UntypedFormBuilder);
7
+ getFormGroup(data?: UserToken): UntypedFormGroup;
8
+ updateFormGroup(formGroup: UntypedFormGroup, existingNames: string[]): void;
9
+ static notAlreadyExists(existingNames: string[]): ValidatorFn;
10
+ static notEmptyArray(control: UntypedFormControl): ValidationErrors | null;
11
+ static ɵfac: i0.ɵɵFactoryDeclaration<UserTokenValidatorService, never>;
12
+ static ɵprov: i0.ɵɵInjectableDeclaration<UserTokenValidatorService>;
13
+ }
@@ -21,6 +21,6 @@ import * as i19 from "@ionic/angular";
21
21
  import * as i20 from "@ngx-translate/core";
22
22
  export declare class SharedPipesModule {
23
23
  static ɵfac: i0.ɵɵFactoryDeclaration<SharedPipesModule, never>;
24
- 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.IsNotNilOrNaNPipe, typeof i13.IsNotNilPipe, typeof i13.ToStringPipe, 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.CommonModule, typeof i19.IonicModule, typeof i20.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.IsNotNilOrNaNPipe, typeof i13.IsNotNilPipe, typeof i13.ToStringPipe, 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]>;
24
+ 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.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.CommonModule, typeof i19.IonicModule, typeof i20.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.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]>;
25
25
  static ɵinj: i0.ɵɵInjectorDeclaration<SharedPipesModule>;
26
26
  }
@@ -10,6 +10,11 @@ export declare class IsNilOrBlankPipe implements PipeTransform {
10
10
  static ɵfac: i0.ɵɵFactoryDeclaration<IsNilOrBlankPipe, never>;
11
11
  static ɵpipe: i0.ɵɵPipeDeclaration<IsNilOrBlankPipe, "isNilOrBlank", false>;
12
12
  }
13
+ export declare class IsNilOrNaNPipe implements PipeTransform {
14
+ transform(value: number): boolean;
15
+ static ɵfac: i0.ɵɵFactoryDeclaration<IsNilOrNaNPipe, never>;
16
+ static ɵpipe: i0.ɵɵPipeDeclaration<IsNilOrNaNPipe, "isNilOrNaN", false>;
17
+ }
13
18
  export declare class IsNotNilOrNaNPipe implements PipeTransform {
14
19
  transform(value: number): boolean;
15
20
  static ɵfac: i0.ɵɵFactoryDeclaration<IsNotNilOrNaNPipe, never>;
@@ -20,6 +25,11 @@ export declare class IsNotNilPipe implements PipeTransform {
20
25
  static ɵfac: i0.ɵɵFactoryDeclaration<IsNotNilPipe, never>;
21
26
  static ɵpipe: i0.ɵɵPipeDeclaration<IsNotNilPipe, "isNotNil", false>;
22
27
  }
28
+ export declare class IsNilPipe implements PipeTransform {
29
+ transform(value: any): boolean;
30
+ static ɵfac: i0.ɵɵFactoryDeclaration<IsNilPipe, never>;
31
+ static ɵpipe: i0.ɵɵPipeDeclaration<IsNilPipe, "isNil", false>;
32
+ }
23
33
  export declare class ToStringPipe implements PipeTransform {
24
34
  transform(value: number): string;
25
35
  static ɵfac: i0.ɵɵFactoryDeclaration<ToStringPipe, never>;
@@ -294,6 +294,38 @@
294
294
  "VALUE": "Value"
295
295
  }
296
296
  },
297
+ "TOKENS": {
298
+ "TITLE": "Tokens",
299
+ "DESCRIPTION": "Authentication tokens",
300
+ "SCOPES": {
301
+ "READ": "Read",
302
+ "WRITE": "Write",
303
+ "ADMIN": "Administration"
304
+ },
305
+ "TABLE": {
306
+ "NAME": "Name",
307
+ "UNKNOWN": "Unknown token",
308
+ "FLAGS": "Scopes (numeric)",
309
+ "SCOPES": "Scopes",
310
+ "CREATION_DATE": "Creation date",
311
+ "UPDATE_DATE": "Update date",
312
+ "LAST_USED_DATE": "Last used date",
313
+ "EXPIRATION_DATE": "Expiration date"
314
+ },
315
+ "CREATE": {
316
+ "TITLE": "Create new token",
317
+ "DESCRIPTION": "Give this token a name, but don't enter any sensitive information that could be recovered by a third party!",
318
+ "NAME": "Name",
319
+ "NAME_ALREADY_EXISTS": "This name already exists",
320
+ "SCOPES": "Scopes",
321
+ "EXPIRATION_DATE": "Expiration date",
322
+ "BTN_GENERATE": "Generate",
323
+ "BTN_GENERATE_TITLE": "Generate",
324
+ "COPY_HELP": "Please copy the token below to the clipboard by clicking on the button. Once validated, this token will no longer be visible.",
325
+ "BTN_COPY_TITLE": "Copy the token to the clipboard",
326
+ "COPIED": "Copied"
327
+ }
328
+ },
297
329
  "INFO": {
298
330
  "RELOADED": "Your user account has been updated!"
299
331
  },
@@ -294,6 +294,38 @@
294
294
  "VALUE": "Value"
295
295
  }
296
296
  },
297
+ "TOKENS": {
298
+ "TITLE": "Tokens",
299
+ "DESCRIPTION": "Authentication tokens",
300
+ "SCOPES": {
301
+ "READ": "Read",
302
+ "WRITE": "Write",
303
+ "ADMIN": "Administration"
304
+ },
305
+ "TABLE": {
306
+ "NAME": "Name",
307
+ "UNKNOWN": "Unknown token",
308
+ "FLAGS": "Scopes (numeric)",
309
+ "SCOPES": "Scopes",
310
+ "CREATION_DATE": "Creation date",
311
+ "UPDATE_DATE": "Update date",
312
+ "LAST_USED_DATE": "Last used date",
313
+ "EXPIRATION_DATE": "Expiration date"
314
+ },
315
+ "CREATE": {
316
+ "TITLE": "Create new token",
317
+ "DESCRIPTION": "Give this token a name, but don't enter any sensitive information that could be recovered by a third party!",
318
+ "NAME": "Name",
319
+ "NAME_ALREADY_EXISTS": "This name already exists",
320
+ "SCOPES": "Scopes",
321
+ "EXPIRATION_DATE": "Expiration date",
322
+ "BTN_GENERATE": "Generate",
323
+ "BTN_GENERATE_TITLE": "Generate",
324
+ "COPY_HELP": "Please copy the token below to the clipboard by clicking on the button. Once validated, this token will no longer be visible.",
325
+ "BTN_COPY_TITLE": "Copy the token to the clipboard",
326
+ "COPIED": "Copied"
327
+ }
328
+ },
297
329
  "INFO": {
298
330
  "RELOADED": "Your user account has been updated!"
299
331
  },
@@ -291,6 +291,38 @@
291
291
  "VALUE": "Valeur"
292
292
  }
293
293
  },
294
+ "TOKENS": {
295
+ "TITLE": "Jetons",
296
+ "DESCRIPTION": "Liste des jetons d'authentification",
297
+ "SCOPES": {
298
+ "READ": "Lecture",
299
+ "WRITE": "Écriture",
300
+ "ADMIN": "Administration"
301
+ },
302
+ "TABLE": {
303
+ "NAME": "Nom",
304
+ "UNKNOWN": "Jeton inconnu",
305
+ "FLAGS": "Droits (numeric)",
306
+ "SCOPES": "Droits",
307
+ "CREATION_DATE": "Date de création",
308
+ "UPDATE_DATE": "Date de modification",
309
+ "LAST_USED_DATE": "Date de dernière utilisation",
310
+ "EXPIRATION_DATE": "Date d'expiration"
311
+ },
312
+ "CREATE": {
313
+ "TITLE": "Création d'un nouveau jeton",
314
+ "DESCRIPTION": "Donnez un nom à ce jeton, mais n'entrez pas d'information sensible qui pourrait être récupérée par une tierce personne !",
315
+ "NAME": "Nom",
316
+ "NAME_ALREADY_EXISTS": "Ce nom est déjà utilisé",
317
+ "SCOPES": "Droits",
318
+ "EXPIRATION_DATE": "Date d'expiration",
319
+ "BTN_GENERATE": "Générer",
320
+ "BTN_GENERATE_TITLE": "Générer",
321
+ "COPY_HELP": "Veuillez copier le jeton ci-dessous dans le presse-papier en cliquant sur le bouton. Une fois validé, ce jeton ne sera plus visible.",
322
+ "BTN_COPY_TITLE": "Copier le jeton dans le presse-papier",
323
+ "COPIED": "Copié"
324
+ }
325
+ },
294
326
  "INFO": {
295
327
  "RELOADED": "Votre compte utilisateur a été <b>actualisé</b> !"
296
328
  },