@sumaris-net/ngx-components 18.7.1-rc3 → 18.7.1
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 +15 -0
- package/esm2022/src/app/admin/services/person.service.mjs +2 -2
- package/esm2022/src/app/admin/users/users.mjs +138 -26
- package/esm2022/src/app/core/form/entity/entity-editor.class.mjs +1 -1
- package/esm2022/src/app/core/home/home.mjs +17 -3
- package/esm2022/src/app/core/services/config.service.mjs +2 -2
- package/esm2022/src/app/core/services/local-settings.service.mjs +4 -4
- package/esm2022/src/app/core/services/network.service.mjs +14 -3
- package/esm2022/src/app/core/services/platform.service.mjs +12 -6
- package/esm2022/src/app/core/table/table.model.mjs +6 -1
- package/esm2022/src/app/shared/audio/audio.mjs +12 -12
- package/esm2022/src/app/shared/dates.mjs +4 -2
- package/esm2022/src/app/shared/functions.mjs +1 -1
- package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.mjs +11 -11
- package/esm2022/src/app/shared/material/autocomplete/testing/autocomplete.test.mjs +2 -2
- package/esm2022/src/app/shared/material/datetime/testing/mat-date-time.test.mjs +2 -2
- package/esm2022/src/app/shared/material/latlong/material.latlong-input.mjs +29 -11
- package/esm2022/src/app/shared/material/latlong/material.latlong.mjs +6 -4
- package/esm2022/src/app/shared/material/latlong/testing/latlong.test.mjs +11 -3
- package/esm2022/src/app/shared/services.mjs +7 -3
- package/esm2022/src/app/social/message/message.service.mjs +2 -2
- package/fesm2022/sumaris-net.ngx-components.mjs +246 -69
- package/fesm2022/sumaris-net.ngx-components.mjs.map +1 -1
- package/package.json +6 -7
- package/src/app/admin/services/person.service.d.ts +1 -1
- package/src/app/admin/users/users.d.ts +19 -3
- package/src/app/core/home/home.d.ts +5 -0
- package/src/app/core/services/config.service.d.ts +1 -1
- package/src/app/core/services/network.service.d.ts +9 -1
- package/src/app/core/services/platform.service.d.ts +2 -1
- package/src/app/core/table/table.model.d.ts +5 -0
- package/src/app/shared/audio/audio.d.ts +2 -2
- package/src/app/shared/functions.d.ts +1 -1
- package/src/app/shared/material/autocomplete/material.autocomplete.d.ts +1 -0
- package/src/app/shared/material/latlong/material.latlong-input.d.ts +14 -13
- package/src/app/shared/material/latlong/material.latlong.d.ts +2 -0
- package/src/assets/i18n/en-US.json +10 -3
- package/src/assets/i18n/en.json +10 -2
- package/src/assets/i18n/fr.json +7 -3
- package/src/assets/manifest.json +1 -1
- package/src/theme/_material.scss +6 -0
- package/src/theme/_ngx-components.scss +33 -4
- package/src/theme/_ngx-components.table.scss +1 -1
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": "18.7.1
|
|
4
|
+
"version": "18.7.1",
|
|
5
5
|
"author": "contact@e-is.pro",
|
|
6
6
|
"license": "AGPL-3.0",
|
|
7
7
|
"readmeFilename": "README.md",
|
|
@@ -53,9 +53,9 @@
|
|
|
53
53
|
"@capacitor/status-bar": "~6.0.2",
|
|
54
54
|
"@e-is/cordova-plugin-audiomanagement": "^1.0.3",
|
|
55
55
|
"@e-is/cordova-plugin-downloader": "^1.2.0",
|
|
56
|
-
"@
|
|
57
|
-
"@
|
|
58
|
-
"@
|
|
56
|
+
"@awesome-cordova-plugins/core": "^6.15.0",
|
|
57
|
+
"@awesome-cordova-plugins/audio-management": "^6.15.0",
|
|
58
|
+
"@awesome-cordova-plugins/downloader": "^6.15.0",
|
|
59
59
|
"clipboard": "^2.0.11",
|
|
60
60
|
"cordova-sqlite-storage": "~6.0.0",
|
|
61
61
|
"emoji-toolkit": ">= 8.0.0 < 10.0.0",
|
|
@@ -71,9 +71,8 @@
|
|
|
71
71
|
"url": "https://gitlab.ifremer.fr/sih-public/sumaris/ngx-sumaris-components/-/issues"
|
|
72
72
|
},
|
|
73
73
|
"engines": {
|
|
74
|
-
"node": ">=
|
|
75
|
-
"npm": ">=
|
|
76
|
-
"yarn": ">= 1.22.19"
|
|
74
|
+
"node": ">= 20.17.0",
|
|
75
|
+
"npm": ">= 10.7.0"
|
|
77
76
|
},
|
|
78
77
|
"optimizeDeps": {
|
|
79
78
|
"exclude": [
|
|
@@ -10,7 +10,7 @@ import { PersonFilter } from './filter/person.filter';
|
|
|
10
10
|
import { BaseEntityService } from '../../core/services/base-entity-service.class';
|
|
11
11
|
import * as i0 from "@angular/core";
|
|
12
12
|
export declare const PersonFragments: {
|
|
13
|
-
person: import("
|
|
13
|
+
person: import("apollo-angular").TypedDocumentNode<unknown, unknown>;
|
|
14
14
|
};
|
|
15
15
|
export declare class PersonService extends BaseEntityService<Person, PersonFilter> implements SuggestService<Person, PersonFilter> {
|
|
16
16
|
protected graphql: GraphqlService;
|
|
@@ -25,12 +25,18 @@ export declare class UsersPage extends AppTable<Person, PersonFilter> implements
|
|
|
25
25
|
readonly profiles: import("../../core/services/model/person.model").UserProfileLabel[];
|
|
26
26
|
readonly statusList: readonly import("../../core/services/model/referential.model").IStatus[];
|
|
27
27
|
readonly statusById: Readonly<import("@sumaris-net/ngx-components").KeyValueType<import("../../core/services/model/referential.model").IStatus>>;
|
|
28
|
-
additionalFields: FormFieldDefinition[];
|
|
29
|
-
filterCriteriaCount: number;
|
|
28
|
+
protected additionalFields: FormFieldDefinition[];
|
|
29
|
+
protected filterCriteriaCount: number;
|
|
30
|
+
protected defaultCompact: boolean;
|
|
30
31
|
set showUsernameColumn(value: boolean);
|
|
32
|
+
get showUsernameColumn(): boolean;
|
|
31
33
|
set showUsernameExtranetColumn(value: boolean);
|
|
34
|
+
get showUsernameExtranetColumn(): boolean;
|
|
35
|
+
compact: boolean;
|
|
36
|
+
usePageSettings: boolean;
|
|
32
37
|
sticky: boolean;
|
|
33
38
|
stickyEnd: boolean;
|
|
39
|
+
canDownload: boolean;
|
|
34
40
|
constructor(injector: Injector, formBuilder: UntypedFormBuilder, accountService: AccountService, validatorService: ValidatorService, configService: ConfigService, dataService: PersonService, messageService: MessageService, menuService: MenuService, environment: any);
|
|
35
41
|
filterExpansionPanel: MatExpansionPanel;
|
|
36
42
|
get firstUserColumn(): string;
|
|
@@ -40,6 +46,16 @@ export declare class UsersPage extends AppTable<Person, PersonFilter> implements
|
|
|
40
46
|
protected restoreFilterOrLoad(): Promise<void>;
|
|
41
47
|
clearControlValue(event: Event, formControl: AbstractControl): boolean;
|
|
42
48
|
openComposeMessageModal(event?: Event): Promise<any>;
|
|
49
|
+
restoreCompactMode(opts?: {
|
|
50
|
+
emitEvent?: boolean;
|
|
51
|
+
}): Promise<void>;
|
|
52
|
+
toggleCompactMode(): Promise<void>;
|
|
53
|
+
exportToCsv(event: Event): Promise<void>;
|
|
43
54
|
static ɵfac: i0.ɵɵFactoryDeclaration<UsersPage, never>;
|
|
44
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<UsersPage, "app-users-table", never, { "sticky": { "alias": "sticky"; "required": false; }; "stickyEnd": { "alias": "stickyEnd"; "required": false; }; }, {}, never, never, false, never>;
|
|
55
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<UsersPage, "app-users-table", never, { "compact": { "alias": "compact"; "required": false; }; "usePageSettings": { "alias": "usePageSettings"; "required": false; }; "sticky": { "alias": "sticky"; "required": false; }; "stickyEnd": { "alias": "stickyEnd"; "required": false; }; "canDownload": { "alias": "canDownload"; "required": false; }; }, {}, never, never, false, never>;
|
|
56
|
+
static ngAcceptInputType_compact: unknown;
|
|
57
|
+
static ngAcceptInputType_usePageSettings: unknown;
|
|
58
|
+
static ngAcceptInputType_sticky: unknown;
|
|
59
|
+
static ngAcceptInputType_stickyEnd: unknown;
|
|
60
|
+
static ngAcceptInputType_canDownload: unknown;
|
|
45
61
|
}
|
|
@@ -32,6 +32,7 @@ export interface HomePageState {
|
|
|
32
32
|
showLegalInformation: boolean;
|
|
33
33
|
showInstallLinks: boolean;
|
|
34
34
|
pageHistory: HistoryPageReference[];
|
|
35
|
+
darkMode: boolean;
|
|
35
36
|
}
|
|
36
37
|
export declare class HomePage extends RxState<HomePageState> implements OnDestroy {
|
|
37
38
|
private accountService;
|
|
@@ -49,6 +50,7 @@ export declare class HomePage extends RxState<HomePageState> implements OnDestro
|
|
|
49
50
|
private readonly _debug;
|
|
50
51
|
private _subscription;
|
|
51
52
|
private _config;
|
|
53
|
+
protected darkMode$: import("rxjs").Observable<boolean>;
|
|
52
54
|
protected pageHistory$: import("rxjs").Observable<HistoryPageReference[]>;
|
|
53
55
|
protected loading$: import("rxjs").Observable<boolean>;
|
|
54
56
|
protected readonly mobile: boolean;
|
|
@@ -79,6 +81,8 @@ export declare class HomePage extends RxState<HomePageState> implements OnDestro
|
|
|
79
81
|
get showLegalInformation(): boolean;
|
|
80
82
|
set showInstallLinks(value: boolean);
|
|
81
83
|
get showInstallLinks(): boolean;
|
|
84
|
+
set darkMode(value: boolean);
|
|
85
|
+
get darkMode(): boolean;
|
|
82
86
|
get currentLocaleCode(): string;
|
|
83
87
|
get partnerBannerSize(): number;
|
|
84
88
|
constructor(accountService: AccountService, modalCtrl: ModalController, translate: TranslateService, toastController: ToastController, configService: ConfigService, platform: PlatformService, cd: ChangeDetectorRef, network: NetworkService, settings: LocalSettingsService, environment: Environment, locales: LocaleConfig[], buttons: IMenuItem[]);
|
|
@@ -97,6 +101,7 @@ export declare class HomePage extends RxState<HomePageState> implements OnDestro
|
|
|
97
101
|
protected onLogout(): void;
|
|
98
102
|
protected refreshButtons(account?: Account): void;
|
|
99
103
|
openMarkdownModal(event?: Event, item?: IMenuItem): Promise<void>;
|
|
104
|
+
protected toggleDarkMode(): Promise<void>;
|
|
100
105
|
protected removePageHistory(path: string): Promise<void>;
|
|
101
106
|
protected markForCheck(): void;
|
|
102
107
|
static ɵfac: i0.ɵɵFactoryDeclaration<HomePage, [null, null, null, null, null, null, null, null, null, null, null, { optional: true; }]>;
|
|
@@ -16,7 +16,7 @@ import { IStartableService } from '../../shared/services/startable-service.class
|
|
|
16
16
|
import { AccountService } from './account.service';
|
|
17
17
|
import * as i0 from "@angular/core";
|
|
18
18
|
export declare const ConfigFragments: {
|
|
19
|
-
config: import("
|
|
19
|
+
config: import("apollo-angular").TypedDocumentNode<unknown, unknown>;
|
|
20
20
|
};
|
|
21
21
|
export declare const APP_CONFIG_OPTIONS: InjectionToken<FormFieldDefinitionMap>;
|
|
22
22
|
export declare class ConfigService extends BaseGraphqlService<Configuration, any, number, Configuration> implements IEntityService<Configuration>, IStartableService<Configuration> {
|
|
@@ -76,9 +76,17 @@ export declare class NetworkService extends StartableObservableService<Peer, Pee
|
|
|
76
76
|
* Check if the peer is alive
|
|
77
77
|
*
|
|
78
78
|
* @param peer
|
|
79
|
-
* @param opts
|
|
80
79
|
*/
|
|
81
80
|
checkPeerAlive(peer?: string | Peer): Promise<NodeInfo>;
|
|
81
|
+
/**
|
|
82
|
+
* Checks whether a peer is compatible based on its software version and the required minimum version.
|
|
83
|
+
* Optionally displays a toast notification if the peer is not compatible.
|
|
84
|
+
*
|
|
85
|
+
* @param {NodeInfo} peerInfo - Information about the peer, including its software version.
|
|
86
|
+
* @param {Object} [opts] - Additional options for the compatibility check.
|
|
87
|
+
* @param {boolean} [opts.showToast] - Whether to show a toast notification if the peer is not compatible. Defaults to true.
|
|
88
|
+
* @return {Promise<boolean>} - A promise that resolves to `true` if the peer is compatible, otherwise `false`.
|
|
89
|
+
*/
|
|
82
90
|
checkPeerCompatible(peerInfo: NodeInfo, opts?: {
|
|
83
91
|
showToast?: boolean;
|
|
84
92
|
}): Promise<boolean>;
|
|
@@ -13,7 +13,7 @@ import { BehaviorSubject, Observable } from 'rxjs';
|
|
|
13
13
|
import { Environment } from '../../../environments/environment.class';
|
|
14
14
|
import { ConfigService } from './config.service';
|
|
15
15
|
import { MomentDateAdapter } from '@angular/material-moment-adapter';
|
|
16
|
-
import { Downloader, DownloadRequest } from '@
|
|
16
|
+
import { Downloader, DownloadRequest } from '@awesome-cordova-plugins/downloader/ngx';
|
|
17
17
|
import { StartableService } from '../../shared/services/startable-service.class';
|
|
18
18
|
import { OpenOptions } from '@capacitor/browser';
|
|
19
19
|
import { ILoggingService } from '../../shared/logging/logger.model';
|
|
@@ -92,6 +92,7 @@ export declare class PlatformService extends StartableService {
|
|
|
92
92
|
} & Partial<DownloadRequest>): Observable<string | undefined>;
|
|
93
93
|
copyToClipboard(data: string | WriteOptions, opts?: ShowToastOptions): Promise<void>;
|
|
94
94
|
toggleDarkTheme(enable: boolean): void;
|
|
95
|
+
toggleHighContrast(enable: boolean): void;
|
|
95
96
|
showToast(opts: ShowToastOptions): Promise<HTMLIonToastElement>;
|
|
96
97
|
closeToast(id?: string): Promise<boolean>;
|
|
97
98
|
protected configureTheme(mobile: boolean, win?: any): Promise<void>;
|
|
@@ -3,11 +3,16 @@ export declare const SETTINGS_DISPLAY_COLUMNS = "displayColumns";
|
|
|
3
3
|
export declare const SETTINGS_SORTED_COLUMN = "sortedColumn";
|
|
4
4
|
export declare const SETTINGS_FILTER = "filter";
|
|
5
5
|
export declare const SETTINGS_PAGE_SIZE = "pageSize";
|
|
6
|
+
export declare const SETTINGS_COMPACT_ROWS = "compactRows";
|
|
6
7
|
export declare const DEFAULT_PAGE_SIZE = 20;
|
|
7
8
|
export declare const DEFAULT_PAGE_SIZE_OPTIONS: number[];
|
|
8
9
|
export declare const RESERVED_START_COLUMNS: string[];
|
|
9
10
|
export declare const RESERVED_END_COLUMNS: string[];
|
|
10
11
|
export declare const DEFAULT_REQUIRED_COLUMNS: string[];
|
|
12
|
+
export declare const TABLE_SETTINGS_ENUM: {
|
|
13
|
+
FILTER_KEY: string;
|
|
14
|
+
COMPACT_ROWS_KEY: string;
|
|
15
|
+
};
|
|
11
16
|
export declare class CellValueChangeListener {
|
|
12
17
|
subject: Subject<any>;
|
|
13
18
|
subscription: Subscription;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Platform } from '@ionic/angular';
|
|
2
|
-
import { AudioManagement } from '@
|
|
2
|
+
import { AudioManagement, AudioMode } from '@awesome-cordova-plugins/audio-management/ngx';
|
|
3
3
|
import { StartableService } from '../services/startable-service.class';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export type AudioType = 'html5' | 'native';
|
|
@@ -38,7 +38,7 @@ export declare class AudioProvider extends StartableService<void> {
|
|
|
38
38
|
* @param duration Duration of the vibration in milliseconds.
|
|
39
39
|
*/
|
|
40
40
|
vibrate(duration?: number | number[]): Promise<void>;
|
|
41
|
-
setAudioMode(mode:
|
|
41
|
+
setAudioMode(mode: AudioMode): Promise<void>;
|
|
42
42
|
protected readAudioMode(): Promise<void>;
|
|
43
43
|
static ɵfac: i0.ɵɵFactoryDeclaration<AudioProvider, [null, { optional: true; }]>;
|
|
44
44
|
static ɵprov: i0.ɵɵInjectableDeclaration<AudioProvider>;
|
|
@@ -14,7 +14,7 @@ export declare function arrayResize<T>(array: T[] | null | undefined, size: numb
|
|
|
14
14
|
export declare function newArray<T>(size: number, defaultValue?: T): T[];
|
|
15
15
|
export declare function isNotNilBoolean(obj: any | null | undefined): obj is boolean;
|
|
16
16
|
export declare function isNotNilString(obj: any | null | undefined): obj is string;
|
|
17
|
-
export declare function isNotNilObject(obj: any | null | undefined): obj is
|
|
17
|
+
export declare function isNotNilObject(obj: any | null | undefined): obj is object;
|
|
18
18
|
export declare function isBlankString(obj: any | null | undefined): obj is string;
|
|
19
19
|
export declare function notNilOrDefault<T>(obj: T | null | undefined, defaultValue: T): T;
|
|
20
20
|
export declare function arraySize<T>(obj: T[] | null | undefined): number;
|
|
@@ -32,6 +32,7 @@ export declare class MatAutocompleteField implements OnInit, AfterViewInit, OnDe
|
|
|
32
32
|
private _itemCount;
|
|
33
33
|
private _suggestExecutionId;
|
|
34
34
|
private _reload$;
|
|
35
|
+
private _destroy$;
|
|
35
36
|
protected _readonly: boolean;
|
|
36
37
|
protected _tabindex: number;
|
|
37
38
|
protected _$inputItems: BehaviorSubject<any[]>;
|
|
@@ -46,19 +46,19 @@ export declare class MatLatLongFieldInput implements MatFormFieldControl<number>
|
|
|
46
46
|
defaultSign: LatLongSign;
|
|
47
47
|
maxDecimals: number;
|
|
48
48
|
readonly: boolean;
|
|
49
|
-
degreesSymbolUnit: string;
|
|
50
|
-
minutesSymbolUnit: string;
|
|
51
|
-
secondsSymbolUnit: string;
|
|
52
|
-
showMinutes: boolean;
|
|
53
|
-
showSeconds: boolean;
|
|
54
|
-
showSign: boolean;
|
|
55
|
-
degreesMask: MaskitoOptions;
|
|
56
|
-
minutesMask: MaskitoOptions;
|
|
57
|
-
secondsMask: MaskitoOptions;
|
|
58
|
-
degreesPlaceholder: string;
|
|
59
|
-
minutesPlaceholder: string;
|
|
60
|
-
secondsPlaceholder: string;
|
|
61
|
-
lastInputMaxDecimals: number;
|
|
49
|
+
protected degreesSymbolUnit: string;
|
|
50
|
+
protected minutesSymbolUnit: string;
|
|
51
|
+
protected secondsSymbolUnit: string;
|
|
52
|
+
protected showMinutes: boolean;
|
|
53
|
+
protected showSeconds: boolean;
|
|
54
|
+
protected showSign: boolean;
|
|
55
|
+
protected degreesMask: MaskitoOptions;
|
|
56
|
+
protected minutesMask: MaskitoOptions;
|
|
57
|
+
protected secondsMask: MaskitoOptions;
|
|
58
|
+
protected degreesPlaceholder: string;
|
|
59
|
+
protected minutesPlaceholder: string;
|
|
60
|
+
protected secondsPlaceholder: string;
|
|
61
|
+
protected lastInputMaxDecimals: number;
|
|
62
62
|
private logPrefix;
|
|
63
63
|
private _subscription;
|
|
64
64
|
private cd;
|
|
@@ -79,6 +79,7 @@ export declare class MatLatLongFieldInput implements MatFormFieldControl<number>
|
|
|
79
79
|
setDisabledState(isDisabled: boolean): void;
|
|
80
80
|
private computeLatLongFormGroupValue;
|
|
81
81
|
private safeParseFloat;
|
|
82
|
+
private updateValidators;
|
|
82
83
|
static ɵfac: i0.ɵɵFactoryDeclaration<MatLatLongFieldInput, [null, { optional: true; }, { optional: true; self: true; }]>;
|
|
83
84
|
static ɵcmp: i0.ɵɵComponentDeclaration<MatLatLongFieldInput, "mat-latlong-input", never, { "userAriaDescribedBy": { "alias": "aria-describedby"; "required": false; }; "required": { "alias": "required"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "value": { "alias": "value"; "required": false; }; "type": { "alias": "type"; "required": false; }; "pattern": { "alias": "latLongPattern"; "required": false; }; "defaultSign": { "alias": "defaultSign"; "required": false; }; "maxDecimals": { "alias": "maxDecimals"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; }, {}, never, never, false, never>;
|
|
84
85
|
}
|
|
@@ -82,6 +82,8 @@ export declare class MatLatLongField implements ControlValueAccessor, OnInit, Af
|
|
|
82
82
|
private markForCheck;
|
|
83
83
|
static ɵfac: i0.ɵɵFactoryDeclaration<MatLatLongField, [null, { optional: true; }, null]>;
|
|
84
84
|
static ɵcmp: i0.ɵɵComponentDeclaration<MatLatLongField, "mat-latlong-field", never, { "formControl": { "alias": "formControl"; "required": false; }; "formControlName": { "alias": "formControlName"; "required": false; }; "type": { "alias": "type"; "required": false; }; "pattern": { "alias": "latLongPattern"; "required": false; }; "maxDecimals": { "alias": "maxDecimals"; "required": false; }; "required": { "alias": "required"; "required": false; }; "floatLabel": { "alias": "floatLabel"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "defaultSign": { "alias": "defaultSign"; "required": false; }; "autofocus": { "alias": "autofocus"; "required": false; }; "mobile": { "alias": "mobile"; "required": false; }; "clearable": { "alias": "clearable"; "required": false; }; "classList": { "alias": "class"; "required": false; }; "tabindex": { "alias": "tabindex"; "required": false; }; "appearance": { "alias": "appearance"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "subscriptSizing": { "alias": "subscriptSizing"; "required": false; }; }, {}, never, ["[matPrefix]", "[matSuffix]", "mat-error,[matError]", "mat-hint:not([align='end']),[matHint]", "mat-hint[align='end']"], false, never>;
|
|
85
|
+
static ngAcceptInputType_required: unknown;
|
|
86
|
+
static ngAcceptInputType_autofocus: unknown;
|
|
85
87
|
static ngAcceptInputType_mobile: unknown;
|
|
86
88
|
static ngAcceptInputType_clearable: unknown;
|
|
87
89
|
static ngAcceptInputType_tabindex: unknown;
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
"BTN_COPY": "Copy",
|
|
14
14
|
"BTN_CLEAR": "Clear",
|
|
15
15
|
"BTN_CLOSE": "Close",
|
|
16
|
+
"BTN_COMPACT_ROWS": "Compact rows",
|
|
16
17
|
"BTN_DONE": "Done",
|
|
17
18
|
"BTN_DOWNLOAD": "Download",
|
|
18
19
|
"BTN_IMPORT": "Import",
|
|
@@ -261,6 +262,7 @@
|
|
|
261
262
|
"BTN_DISCONNECT": "Disconnect this account",
|
|
262
263
|
"BTN_MY_ACCOUNT": "My account",
|
|
263
264
|
"BTN_REGISTER": "Register",
|
|
265
|
+
"BTN_DARK_MODE": "Dark or light theme",
|
|
264
266
|
"SHOW_AT": "Show at",
|
|
265
267
|
"LEGAL_INFORMATION": "Legal information",
|
|
266
268
|
"PRIVACY_POLICY": "Privacy policy",
|
|
@@ -464,6 +466,9 @@
|
|
|
464
466
|
},
|
|
465
467
|
"STATUS": "State",
|
|
466
468
|
"PUBKEY": "Public key",
|
|
469
|
+
"CREATION_DATE": "Creation date",
|
|
470
|
+
"UPDATE_DATE": "Update date",
|
|
471
|
+
|
|
467
472
|
"PROFILE": "Profile",
|
|
468
473
|
"PROFILE_ENUM": {
|
|
469
474
|
"ADMIN": "Administrator",
|
|
@@ -548,7 +553,7 @@
|
|
|
548
553
|
},
|
|
549
554
|
"MESSAGE": {
|
|
550
555
|
"TYPE": "Message type",
|
|
551
|
-
"RECIPIENTS": "Recipients"
|
|
556
|
+
"RECIPIENTS": "Recipients",²
|
|
552
557
|
"RECIPIENT_FILTER_COUNT": "{{count}} filtered users",
|
|
553
558
|
"SUBJECT": "Object",
|
|
554
559
|
"BODY_HELP": "Your message...",
|
|
@@ -576,11 +581,13 @@
|
|
|
576
581
|
},
|
|
577
582
|
"FILE": {
|
|
578
583
|
"JSON": {
|
|
579
|
-
"ENCODING": "UTF-8"
|
|
584
|
+
"ENCODING": "UTF-8",
|
|
585
|
+
"BTN_DOWNLOAD_HELP": "Download data (JSON)"
|
|
580
586
|
},
|
|
581
587
|
"CSV": {
|
|
582
588
|
"SEPARATOR": ",",
|
|
583
|
-
"ENCODING": "UTF-8"
|
|
589
|
+
"ENCODING": "UTF-8",
|
|
590
|
+
"BTN_DOWNLOAD_HELP": "Download data (CSV)"
|
|
584
591
|
},
|
|
585
592
|
"UPLOAD": {
|
|
586
593
|
"DRAG_AND_DROP": "Drag and drop a file{{ extension }} here<br/>or",
|
package/src/assets/i18n/en.json
CHANGED
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
"BTN_COPY": "Copy",
|
|
14
14
|
"BTN_CLEAR": "Clear",
|
|
15
15
|
"BTN_CLOSE": "Close",
|
|
16
|
+
"BTN_COMPACT_ROWS": "Compact rows",
|
|
16
17
|
"BTN_DONE": "Done",
|
|
17
18
|
"BTN_DOWNLOAD": "Download",
|
|
18
19
|
"BTN_IMPORT": "Import",
|
|
@@ -63,6 +64,7 @@
|
|
|
63
64
|
"BTN_DECIMAL_SEPARATOR": ".",
|
|
64
65
|
"EMPTY_OPTION": "(Empty)",
|
|
65
66
|
"All_OPTION": "(All)",
|
|
67
|
+
|
|
66
68
|
"DATE_PATTERN": "DD/MM/YYYY",
|
|
67
69
|
"DATE_TIME_PATTERN": "DD/MM/YYYY HH:mm",
|
|
68
70
|
"DATE_TIME_SECONDS_PATTERN": "DD/MM/YYYY HH:mm:ss",
|
|
@@ -260,6 +262,7 @@
|
|
|
260
262
|
"BTN_DISCONNECT": "Disconnect this account",
|
|
261
263
|
"BTN_MY_ACCOUNT": "My account",
|
|
262
264
|
"BTN_REGISTER": "Register",
|
|
265
|
+
"BTN_DARK_MODE": "Dark or light theme",
|
|
263
266
|
"SHOW_AT": "Show at",
|
|
264
267
|
"LEGAL_INFORMATION": "Legal information",
|
|
265
268
|
"PRIVACY_POLICY": "Privacy policy",
|
|
@@ -463,6 +466,9 @@
|
|
|
463
466
|
},
|
|
464
467
|
"STATUS": "State",
|
|
465
468
|
"PUBKEY": "Public key",
|
|
469
|
+
"CREATION_DATE": "Creation date",
|
|
470
|
+
"UPDATE_DATE": "Update date",
|
|
471
|
+
|
|
466
472
|
"PROFILE": "Profile",
|
|
467
473
|
"PROFILE_ENUM": {
|
|
468
474
|
"ADMIN": "Administrator",
|
|
@@ -575,11 +581,13 @@
|
|
|
575
581
|
},
|
|
576
582
|
"FILE": {
|
|
577
583
|
"JSON": {
|
|
578
|
-
"ENCODING": "UTF-8"
|
|
584
|
+
"ENCODING": "UTF-8",
|
|
585
|
+
"BTN_DOWNLOAD_HELP": "Download data (JSON)"
|
|
579
586
|
},
|
|
580
587
|
"CSV": {
|
|
581
588
|
"SEPARATOR": ",",
|
|
582
|
-
"ENCODING": "UTF-8"
|
|
589
|
+
"ENCODING": "UTF-8",
|
|
590
|
+
"BTN_DOWNLOAD_HELP": "Download data (CSV)"
|
|
583
591
|
},
|
|
584
592
|
"UPLOAD": {
|
|
585
593
|
"DRAG_AND_DROP": "Drag and drop a file{{ extension }} here<br/>or",
|
package/src/assets/i18n/fr.json
CHANGED
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
"BTN_COPY": "Copier",
|
|
14
14
|
"BTN_CLEAR": "Vider",
|
|
15
15
|
"BTN_CLOSE": "Fermer",
|
|
16
|
+
"BTN_COMPACT_ROWS": "Compacter les lignes",
|
|
16
17
|
"BTN_DONE": "Terminer",
|
|
17
18
|
"BTN_DOWNLOAD": "Télécharger",
|
|
18
19
|
"BTN_IMPORT": "Importer",
|
|
@@ -105,7 +106,6 @@
|
|
|
105
106
|
"DURATION_DOTS": "Durée :",
|
|
106
107
|
"YES": "Oui",
|
|
107
108
|
"NO": "Non",
|
|
108
|
-
|
|
109
109
|
"UPDATED_ON": "Mis à jour le",
|
|
110
110
|
"RECORDER": "Saisisseur",
|
|
111
111
|
"RESULT_COUNT": "{{count}} résultats",
|
|
@@ -260,6 +260,7 @@
|
|
|
260
260
|
"BTN_DISCONNECT": "Déconnecter ce compte",
|
|
261
261
|
"BTN_MY_ACCOUNT": "Mon compte",
|
|
262
262
|
"BTN_REGISTER": "S'inscrire",
|
|
263
|
+
"BTN_DARK_MODE": "Thème (sombre ou clair)",
|
|
263
264
|
"SHOW_AT": "Consulté le ",
|
|
264
265
|
"LEGAL_INFORMATION": "Informations légales",
|
|
265
266
|
"PRIVACY_POLICY": "Politique de confidentialité",
|
|
@@ -414,7 +415,7 @@
|
|
|
414
415
|
"NETWORK_DIVIDER": "Paramètres réseau",
|
|
415
416
|
"PEER_URL": "Adresse du nœud réseau",
|
|
416
417
|
"BTN_CHANGE_PEER": "Voir les nœuds disponibles",
|
|
417
|
-
"BTN_DARK_MODE": "
|
|
418
|
+
"BTN_DARK_MODE": "Thème sombre ? (expérimental)",
|
|
418
419
|
"BTN_SHOW_ACCOUNT": "Voir mon compte",
|
|
419
420
|
"BTN_SHOW_MORE_HELP": "Afficher plus de paramètres",
|
|
420
421
|
"BTN_SHOW_OPTION_KEY": "Afficher le code des options ?",
|
|
@@ -465,6 +466,8 @@
|
|
|
465
466
|
},
|
|
466
467
|
"STATUS": "Etat",
|
|
467
468
|
"PUBKEY": "Clé publique",
|
|
469
|
+
"CREATION_DATE": "Date création",
|
|
470
|
+
"UPDATE_DATE": "Date MAJ",
|
|
468
471
|
"PROFILE": "Profil",
|
|
469
472
|
"PROFILE_ENUM": {
|
|
470
473
|
"ADMIN": "Administrateur",
|
|
@@ -581,7 +584,8 @@
|
|
|
581
584
|
},
|
|
582
585
|
"CSV": {
|
|
583
586
|
"SEPARATOR": ";",
|
|
584
|
-
"ENCODING": "UTF-8"
|
|
587
|
+
"ENCODING": "UTF-8",
|
|
588
|
+
"BTN_DOWNLOAD_HELP": "Télécharger les données (CSV)"
|
|
585
589
|
},
|
|
586
590
|
"UPLOAD": {
|
|
587
591
|
"DRAG_AND_DROP": "Glisser et déposer un fichier{{ extension }} ici<br/>ou",
|
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.
|
|
5
|
+
"version": "18.7.1",
|
|
6
6
|
"default_locale": "fr",
|
|
7
7
|
"description": "Angular components for building beautiful and responsive Apps",
|
|
8
8
|
"icons": [{
|
package/src/theme/_material.scss
CHANGED
|
@@ -280,8 +280,10 @@ mat-option:not(:last-of-type) {
|
|
|
280
280
|
.mat-mdc-select-panel,
|
|
281
281
|
.mat-mdc-autocomplete-panel {
|
|
282
282
|
/* when multiple selection enable */
|
|
283
|
-
mat-pseudo-checkbox
|
|
284
|
-
|
|
283
|
+
.mat-mdc-option mat-pseudo-checkbox,
|
|
284
|
+
.mat-mdc-option .mat-pseudo-checkbox-full {
|
|
285
|
+
margin-left: 12px;
|
|
286
|
+
margin-right: 4px;
|
|
285
287
|
}
|
|
286
288
|
|
|
287
289
|
padding: 0 !important;
|
|
@@ -353,6 +355,7 @@ ion-list,
|
|
|
353
355
|
|
|
354
356
|
.searchbar-input {
|
|
355
357
|
--background: var(--app-form-field-background-color, var(--ion-background-color));
|
|
358
|
+
padding-inline-end: 34px; // Keep a place for the clear button
|
|
356
359
|
}
|
|
357
360
|
}
|
|
358
361
|
|
|
@@ -421,7 +424,7 @@ ion-list,
|
|
|
421
424
|
ion-col {
|
|
422
425
|
--padding-start: 8px;
|
|
423
426
|
padding: 0 !important;
|
|
424
|
-
padding-left: var(--padding-start) !important;
|
|
427
|
+
padding-left: var(--padding-start, 0) !important;
|
|
425
428
|
text-overflow: ellipsis;
|
|
426
429
|
overflow: hidden;
|
|
427
430
|
white-space: nowrap;
|
|
@@ -734,12 +737,34 @@ mat-calendar {
|
|
|
734
737
|
// --------------------------------------------------
|
|
735
738
|
|
|
736
739
|
.timepicker {
|
|
737
|
-
.timepicker-header
|
|
740
|
+
.timepicker-header,
|
|
741
|
+
.timepicker-header .mat-toolbar.mat-accent{
|
|
738
742
|
// Change header color to 'secondary'
|
|
739
743
|
--mat-toolbar-container-background-color: var(--ion-color-secondary) !important;
|
|
744
|
+
--mat-toolbar-container-text-color: var(--ion-color-secondary-contrast) !important;
|
|
745
|
+
}
|
|
746
|
+
|
|
747
|
+
ngx-mat-timepicker-face .clock-face {
|
|
748
|
+
background-color: var(--app-form-field-background-color) !important;
|
|
749
|
+
|
|
750
|
+
.mat-toolbar.mat-accent {
|
|
751
|
+
--mat-toolbar-container-background-color: var(--ion-color-accent);
|
|
752
|
+
--mat-toolbar-container-text-color: var(--ion-color-accent-contrast);
|
|
753
|
+
}
|
|
754
|
+
button.mat-mdc-mini-fab {
|
|
755
|
+
&.mat-unthemed {
|
|
756
|
+
--mat-fab-small-foreground-color: var(--ion-text-color);
|
|
757
|
+
}
|
|
758
|
+
|
|
759
|
+
&.mat-accent {
|
|
760
|
+
--mdc-fab-small-container-color: var(--ion-color-accent);
|
|
761
|
+
--mat-fab-small-foreground-color: var(--ion-color-accent-contrast);
|
|
762
|
+
}
|
|
763
|
+
}
|
|
740
764
|
}
|
|
741
765
|
}
|
|
742
766
|
|
|
767
|
+
|
|
743
768
|
.ngx-mat-timepicker-dialog {
|
|
744
769
|
// Increase max-width for very small screen
|
|
745
770
|
--mat-dialog-container-small-max-width: calc(100vw - var(--ion-padding, 16px) * 2);
|
|
@@ -975,3 +1000,7 @@ mat-toolbar app-named-filter-selector {
|
|
|
975
1000
|
visibility: hidden;
|
|
976
1001
|
}
|
|
977
1002
|
}
|
|
1003
|
+
|
|
1004
|
+
// --------------------------------------------------
|
|
1005
|
+
// Toolbar
|
|
1006
|
+
// --------------------------------------------------
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
--mat-table-row-item-outline-color: var(--ion-border-color);
|
|
28
28
|
--mat-table-row-item-label-text-size: 14px;
|
|
29
29
|
--mat-table-row-item-label-text-tracking: normal;
|
|
30
|
-
--mat-row-height: #{$app-table-row-height}
|
|
30
|
+
--mat-row-height: #{$app-table-row-height};
|
|
31
31
|
--mat-row-max-height: #{$app-table-row-max-height} !important;
|
|
32
32
|
--mat-cell-horizontal-padding: #{$app-table-cell-horizontal-padding};
|
|
33
33
|
--mat-cell-padding-top: calc(var(--mat-row-height) / 2 - var(--mat-table-row-item-label-text-size, 14px));
|