@sumaris-net/ngx-components 18.2.26 → 18.2.27-alpha1
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/esm2022/public_api.mjs +2 -1
- package/esm2022/src/app/core/table/testing/table.testing.mjs +2 -2
- package/esm2022/src/app/shared/inputs.mjs +6 -2
- package/esm2022/src/app/shared/material/latlong/latlong.utils.mjs +16 -25
- package/esm2022/src/app/shared/material/latlong/material.latlong.mjs +14 -5
- package/esm2022/src/app/shared/material/latlong/material.latlong.module.mjs +6 -5
- package/esm2022/src/app/shared/material/latlong/material.latlong2.mjs +631 -0
- package/esm2022/src/app/shared/material/latlong/testing/latlong.test.mjs +18 -7
- package/fesm2022/sumaris-net.ngx-components.mjs +688 -72
- package/fesm2022/sumaris-net.ngx-components.mjs.map +1 -1
- package/package.json +1 -1
- package/public_api.d.ts +1 -0
- package/src/app/shared/material/latlong/latlong.utils.d.ts +10 -0
- package/src/app/shared/material/latlong/material.latlong.d.ts +1 -1
- package/src/app/shared/material/latlong/material.latlong.module.d.ts +15 -14
- package/src/app/shared/material/latlong/material.latlong2.d.ts +164 -0
- package/src/app/shared/material/latlong/testing/latlong.test.d.ts +3 -2
- package/src/assets/i18n/en-US.json +0 -2
- package/src/assets/i18n/en.json +16 -18
- package/src/assets/i18n/fr.json +16 -11
package/package.json
CHANGED
package/public_api.d.ts
CHANGED
|
@@ -23,6 +23,7 @@ export { MatDateShort } from './src/app/shared/material/datetime/material.datesh
|
|
|
23
23
|
export { MatDateTime } from './src/app/shared/material/datetime/material.datetime';
|
|
24
24
|
export { MatDate } from './src/app/shared/material/datetime/material.date';
|
|
25
25
|
export { MatLatLongField } from './src/app/shared/material/latlong/material.latlong';
|
|
26
|
+
export { MatLatLongField2 } from './src/app/shared/material/latlong/material.latlong2';
|
|
26
27
|
export * from './src/app/shared/material/latlong/material.latlong.module';
|
|
27
28
|
export * from './src/app/shared/material/duration/duration.module';
|
|
28
29
|
export { MatDuration } from './src/app/shared/material/duration/material.duration';
|
|
@@ -18,4 +18,14 @@ export declare const LAT_LONG_DEFAULT_MAX_DECIMALS = 3;
|
|
|
18
18
|
export declare function formatLatLong(value: number, type: LatLongType, opts?: Partial<LatLongFormatOptions>): string;
|
|
19
19
|
export declare function formatLatitude(value: number | null, opts?: Partial<LatLongFormatOptions>): string;
|
|
20
20
|
export declare function formatLongitude(value: number | null, opts?: Partial<LatLongFormatOptions>): string;
|
|
21
|
+
export declare function splitNumberToFieldsDD(value: number, opts: LatLongFormatOptions & {
|
|
22
|
+
longitude: boolean;
|
|
23
|
+
}): (number | string)[];
|
|
24
|
+
export declare function splitNumberToFieldsDDMM(value: number, opts: LatLongFormatOptions & {
|
|
25
|
+
longitude: boolean;
|
|
26
|
+
}): number[];
|
|
27
|
+
export declare function splitNumberToFieldsDDMMSS(value: number, opts: LatLongFormatOptions & {
|
|
28
|
+
longitude: boolean;
|
|
29
|
+
}): number[];
|
|
21
30
|
export declare function parseLatitudeOrLongitude(input: string, pattern: string, maxDecimals?: number, placeholderChar?: string): number | null;
|
|
31
|
+
export declare function computeDecimalDegrees(degrees: number, minutes: number, seconds: number, sign: -1 | 1, maxDecimals?: number): number;
|
|
@@ -68,6 +68,6 @@ export declare class MatLatLongField implements OnInit, OnDestroy, ControlValueA
|
|
|
68
68
|
private parseValue;
|
|
69
69
|
private markForCheck;
|
|
70
70
|
static ɵfac: i0.ɵɵFactoryDeclaration<MatLatLongField, [null, null, null, { optional: true; }, null]>;
|
|
71
|
-
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; }; "required": { "alias": "required"; "required": false; }; "floatLabel": { "alias": "floatLabel"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "tabindex": { "alias": "tabindex"; "required": false; }; "defaultSign": { "alias": "defaultSign"; "required": false; }; "maxDecimals": { "alias": "maxDecimals"; "required": false; }; "placeholderChar": { "alias": "placeholderChar"; "required": false; }; "autofocus": { "alias": "autofocus"; "required": false; }; "mobile": { "alias": "mobile"; "required": false; }; "appearance": { "alias": "appearance"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "subscriptSizing": { "alias": "subscriptSizing"; "required": false; }; }, { "onBlur": "onBlur"; "onFocus": "onFocus"; }, never, ["[matPrefix]", "[matSuffix]", "mat-error,[matError]", "mat-hint:not([align='end']),[matHint]", "mat-hint[align='end']"], false, never>;
|
|
71
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<MatLatLongField, "mat-latlong-field-old", never, { "formControl": { "alias": "formControl"; "required": false; }; "formControlName": { "alias": "formControlName"; "required": false; }; "type": { "alias": "type"; "required": false; }; "pattern": { "alias": "latLongPattern"; "required": false; }; "required": { "alias": "required"; "required": false; }; "floatLabel": { "alias": "floatLabel"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "tabindex": { "alias": "tabindex"; "required": false; }; "defaultSign": { "alias": "defaultSign"; "required": false; }; "maxDecimals": { "alias": "maxDecimals"; "required": false; }; "placeholderChar": { "alias": "placeholderChar"; "required": false; }; "autofocus": { "alias": "autofocus"; "required": false; }; "mobile": { "alias": "mobile"; "required": false; }; "appearance": { "alias": "appearance"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "subscriptSizing": { "alias": "subscriptSizing"; "required": false; }; }, { "onBlur": "onBlur"; "onFocus": "onFocus"; }, never, ["[matPrefix]", "[matSuffix]", "mat-error,[matError]", "mat-hint:not([align='end']),[matHint]", "mat-hint[align='end']"], false, never>;
|
|
72
72
|
static ngAcceptInputType_mobile: unknown;
|
|
73
73
|
}
|
|
@@ -1,20 +1,21 @@
|
|
|
1
1
|
import * as i0 from "@angular/core";
|
|
2
2
|
import * as i1 from "./material.latlong";
|
|
3
|
-
import * as i2 from "
|
|
4
|
-
import * as i3 from "@
|
|
5
|
-
import * as i4 from "@angular
|
|
6
|
-
import * as i5 from "
|
|
7
|
-
import * as i6 from "../../
|
|
8
|
-
import * as i7 from "
|
|
9
|
-
import * as i8 from "@angular/material/
|
|
10
|
-
import * as i9 from "@angular/material/
|
|
11
|
-
import * as i10 from "@angular/material/
|
|
12
|
-
import * as i11 from "@
|
|
13
|
-
import * as i12 from "@angular
|
|
14
|
-
import * as i13 from "@angular/material/
|
|
15
|
-
import * as i14 from "@
|
|
3
|
+
import * as i2 from "./material.latlong2";
|
|
4
|
+
import * as i3 from "@angular/common";
|
|
5
|
+
import * as i4 from "@ionic/angular";
|
|
6
|
+
import * as i5 from "@angular/forms";
|
|
7
|
+
import * as i6 from "../../directives/directives.module";
|
|
8
|
+
import * as i7 from "../../pipes/pipes.module";
|
|
9
|
+
import * as i8 from "@angular/material/core";
|
|
10
|
+
import * as i9 from "@angular/material/form-field";
|
|
11
|
+
import * as i10 from "@angular/material/input";
|
|
12
|
+
import * as i11 from "@angular/material/button";
|
|
13
|
+
import * as i12 from "@maskito/angular";
|
|
14
|
+
import * as i13 from "@angular/material/icon";
|
|
15
|
+
import * as i14 from "@angular/material/select";
|
|
16
|
+
import * as i15 from "@ngx-translate/core";
|
|
16
17
|
export declare class SharedMatLatLongModule {
|
|
17
18
|
static ɵfac: i0.ɵɵFactoryDeclaration<SharedMatLatLongModule, never>;
|
|
18
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<SharedMatLatLongModule, [typeof i1.MatLatLongField], [typeof
|
|
19
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<SharedMatLatLongModule, [typeof i1.MatLatLongField, typeof i2.MatLatLongField2], [typeof i3.CommonModule, typeof i4.IonicModule, typeof i5.ReactiveFormsModule, typeof i6.SharedDirectivesModule, typeof i7.SharedPipesModule, typeof i8.MatCommonModule, typeof i9.MatFormFieldModule, typeof i10.MatInputModule, typeof i11.MatButtonModule, typeof i12.MaskitoDirective, typeof i13.MatIconModule, typeof i14.MatSelectModule, typeof i15.TranslateModule], [typeof i1.MatLatLongField, typeof i2.MatLatLongField2]>;
|
|
19
20
|
static ɵinj: i0.ɵɵInjectorDeclaration<SharedMatLatLongModule>;
|
|
20
21
|
}
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
import { ChangeDetectorRef, ElementRef, EventEmitter, OnDestroy, OnInit } from '@angular/core';
|
|
2
|
+
import { ControlValueAccessor, FormControl, FormGroupDirective, UntypedFormControl } from '@angular/forms';
|
|
3
|
+
import { MatFormField, MatFormFieldAppearance, MatFormFieldDefaultOptions, SubscriptSizing } from '@angular/material/form-field';
|
|
4
|
+
import { AppFloatLabelType } from '../../form/field.model';
|
|
5
|
+
import { LatLongPattern, LatLongType } from './latlong.utils';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
declare type LatLongSign = 1 | -1;
|
|
8
|
+
interface ILatLongData {
|
|
9
|
+
degrees: number;
|
|
10
|
+
minutes: number;
|
|
11
|
+
seconds: number;
|
|
12
|
+
sign: LatLongSign;
|
|
13
|
+
}
|
|
14
|
+
export declare class MatLatLongField2 implements OnInit, OnDestroy, ControlValueAccessor {
|
|
15
|
+
private cd;
|
|
16
|
+
private formGroupDir;
|
|
17
|
+
private _onChangeCallback;
|
|
18
|
+
private _onTouchedCallback;
|
|
19
|
+
private _subscription;
|
|
20
|
+
private _disabling;
|
|
21
|
+
private _writing;
|
|
22
|
+
private _appearance;
|
|
23
|
+
private _subscriptSizing;
|
|
24
|
+
private _readonly;
|
|
25
|
+
private _tabindex;
|
|
26
|
+
private readonly _defaultAppearance;
|
|
27
|
+
private readonly _defaultSubscriptSizing;
|
|
28
|
+
protected _focused: boolean;
|
|
29
|
+
protected _touched: boolean;
|
|
30
|
+
protected degreesControl: FormControl<number>;
|
|
31
|
+
protected minutesControl: FormControl<number>;
|
|
32
|
+
protected secondsControl: FormControl<number>;
|
|
33
|
+
protected signControl: FormControl<LatLongSign>;
|
|
34
|
+
protected showMinutes: boolean;
|
|
35
|
+
protected showSeconds: boolean;
|
|
36
|
+
protected showSignControl: boolean;
|
|
37
|
+
protected degreesPlaceholder: string;
|
|
38
|
+
protected minutesPlaceholder: string;
|
|
39
|
+
protected secondsPlaceholder: string;
|
|
40
|
+
protected maxDecimals: number;
|
|
41
|
+
protected i18nErrorKeys: {
|
|
42
|
+
required: string;
|
|
43
|
+
min: string;
|
|
44
|
+
max: string;
|
|
45
|
+
minlength: string;
|
|
46
|
+
maxlength: string;
|
|
47
|
+
pubkey: string;
|
|
48
|
+
validDate: string;
|
|
49
|
+
dateIsAfter: string;
|
|
50
|
+
dateIsBefore: string;
|
|
51
|
+
dateRange: string;
|
|
52
|
+
dateMinDuration: string;
|
|
53
|
+
dateMaxDuration: string;
|
|
54
|
+
maxDecimals: string;
|
|
55
|
+
decimal: string;
|
|
56
|
+
integer: string;
|
|
57
|
+
precision: string;
|
|
58
|
+
email: string;
|
|
59
|
+
latitude: string;
|
|
60
|
+
longitude: string;
|
|
61
|
+
pattern: string;
|
|
62
|
+
unique: string;
|
|
63
|
+
entity: string;
|
|
64
|
+
invalid: string;
|
|
65
|
+
inconsistent: string;
|
|
66
|
+
equals: string;
|
|
67
|
+
};
|
|
68
|
+
protected minMaxValues: {
|
|
69
|
+
degrees?: {
|
|
70
|
+
min: number;
|
|
71
|
+
max: number;
|
|
72
|
+
step: number;
|
|
73
|
+
};
|
|
74
|
+
minutes?: {
|
|
75
|
+
min: number;
|
|
76
|
+
max: number;
|
|
77
|
+
step: number;
|
|
78
|
+
};
|
|
79
|
+
seconds?: {
|
|
80
|
+
min: number;
|
|
81
|
+
max: number;
|
|
82
|
+
step: number;
|
|
83
|
+
};
|
|
84
|
+
};
|
|
85
|
+
protected inputWidth: {
|
|
86
|
+
degrees: string;
|
|
87
|
+
degreesUnit: string;
|
|
88
|
+
minutes?: string;
|
|
89
|
+
minutesUnit?: string;
|
|
90
|
+
seconds?: string;
|
|
91
|
+
secondsUnit?: string;
|
|
92
|
+
};
|
|
93
|
+
formControl: UntypedFormControl;
|
|
94
|
+
formControlName: string;
|
|
95
|
+
type: LatLongType;
|
|
96
|
+
pattern: LatLongPattern;
|
|
97
|
+
required: boolean;
|
|
98
|
+
floatLabel: AppFloatLabelType;
|
|
99
|
+
placeholder: string;
|
|
100
|
+
defaultSign: '-' | '+';
|
|
101
|
+
autofocus: boolean;
|
|
102
|
+
mobile: boolean;
|
|
103
|
+
degreesSymbolUnit: string;
|
|
104
|
+
minutesSymbolUnit: string;
|
|
105
|
+
secondsSymbolUnit: string;
|
|
106
|
+
clearable: boolean;
|
|
107
|
+
set tabindex(value: number);
|
|
108
|
+
get tabindex(): number;
|
|
109
|
+
set appearance(value: MatFormFieldAppearance);
|
|
110
|
+
get appearance(): MatFormFieldAppearance;
|
|
111
|
+
set readonly(value: boolean);
|
|
112
|
+
get readonly(): boolean;
|
|
113
|
+
set subscriptSizing(value: SubscriptSizing);
|
|
114
|
+
get subscriptSizing(): SubscriptSizing;
|
|
115
|
+
get showFields(): boolean;
|
|
116
|
+
get disabled(): any;
|
|
117
|
+
keyupEnter: EventEmitter<any>;
|
|
118
|
+
blurred: EventEmitter<FocusEvent>;
|
|
119
|
+
focused: EventEmitter<FocusEvent>;
|
|
120
|
+
formField: MatFormField;
|
|
121
|
+
fakeInput: ElementRef;
|
|
122
|
+
inputDegrees: ElementRef;
|
|
123
|
+
inputMinutes: ElementRef;
|
|
124
|
+
inputSeconds: ElementRef;
|
|
125
|
+
inputSign: ElementRef;
|
|
126
|
+
constructor(cd: ChangeDetectorRef, formGroupDir: FormGroupDirective, defaultOptions?: MatFormFieldDefaultOptions);
|
|
127
|
+
ngOnInit(): void;
|
|
128
|
+
ngOnDestroy(): void;
|
|
129
|
+
registerOnChange(fn: any): void;
|
|
130
|
+
registerOnTouched(fn: any): void;
|
|
131
|
+
writeValue(value: number | string): void;
|
|
132
|
+
setDisabledState(isDisabled: boolean): void;
|
|
133
|
+
clearValue(event?: Event): void;
|
|
134
|
+
protected get inputsElements(): HTMLElement[];
|
|
135
|
+
protected onFocusFakeInput(event: FocusEvent): void;
|
|
136
|
+
protected onBlurFakeInput(event: FocusEvent): void;
|
|
137
|
+
protected _onFocusInput(event: FocusEvent): void;
|
|
138
|
+
protected _onBlurInput(event: FocusEvent): void;
|
|
139
|
+
protected _onClickInput(event: Event): void;
|
|
140
|
+
focus(focusOnDegrees?: boolean): boolean;
|
|
141
|
+
protected format(rawValue: number): string;
|
|
142
|
+
protected computeDecimalPart(value: number, nbOfDecimals: number): number;
|
|
143
|
+
protected computeLatLongFormGroupValue(rawValue: number | string): ILatLongData;
|
|
144
|
+
protected markAsTouched(): void;
|
|
145
|
+
private patchValue;
|
|
146
|
+
private onFormChange;
|
|
147
|
+
private emitChange;
|
|
148
|
+
private _checkIfTouched;
|
|
149
|
+
private markForCheck;
|
|
150
|
+
/**
|
|
151
|
+
* Show/Hide the fake input
|
|
152
|
+
*/
|
|
153
|
+
private updateFakeInput;
|
|
154
|
+
/**
|
|
155
|
+
* This is a special case, because, this component has a temporary component displayed before the first focus event
|
|
156
|
+
*/
|
|
157
|
+
private updateTabIndex;
|
|
158
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<MatLatLongField2, [null, { optional: true; }, null]>;
|
|
159
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<MatLatLongField2, "mat-latlong-field", never, { "formControl": { "alias": "formControl"; "required": false; }; "formControlName": { "alias": "formControlName"; "required": false; }; "type": { "alias": "type"; "required": false; }; "pattern": { "alias": "latLongPattern"; "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; }; "degreesSymbolUnit": { "alias": "degreesSymbolUnit"; "required": false; }; "minutesSymbolUnit": { "alias": "minutesSymbolUnit"; "required": false; }; "secondsSymbolUnit": { "alias": "secondsSymbolUnit"; "required": false; }; "clearable": { "alias": "clearable"; "required": false; }; "tabindex": { "alias": "tabindex"; "required": false; }; "appearance": { "alias": "appearance"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "subscriptSizing": { "alias": "subscriptSizing"; "required": false; }; }, { "keyupEnter": "keyup.enter"; "blurred": "blur"; "focused": "focus"; }, never, ["[matPrefix]", "[matSuffix]", "mat-error,[matError]", "mat-hint:not([align='end']),[matHint]", "mat-hint[align='end']"], false, never>;
|
|
160
|
+
static ngAcceptInputType_mobile: unknown;
|
|
161
|
+
static ngAcceptInputType_clearable: unknown;
|
|
162
|
+
static ngAcceptInputType_tabindex: unknown;
|
|
163
|
+
}
|
|
164
|
+
export {};
|
|
@@ -9,13 +9,14 @@ export declare class LatLongTestPage implements OnInit {
|
|
|
9
9
|
protected platform: PlatformService;
|
|
10
10
|
form: UntypedFormGroup;
|
|
11
11
|
geoPositionMessage: string;
|
|
12
|
-
mode: 'desktop' | '
|
|
12
|
+
mode: 'mobile' | 'desktop' | 'dev' | 'temp';
|
|
13
|
+
selectedFormat: string;
|
|
13
14
|
appearance: MatFormFieldAppearance;
|
|
14
15
|
constructor(formBuilder: UntypedFormBuilder, platform: PlatformService);
|
|
15
16
|
ngOnInit(): void;
|
|
16
17
|
toggleMode(value: any): void;
|
|
17
18
|
loadData(): Promise<void>;
|
|
18
|
-
doSubmit(event:
|
|
19
|
+
doSubmit(event: Event): void;
|
|
19
20
|
geoPosition(event: Event, controlName?: string): Promise<void>;
|
|
20
21
|
toggleAppearance(event: MatCheckboxChange): void;
|
|
21
22
|
stringify: {
|
|
@@ -33,8 +33,6 @@
|
|
|
33
33
|
"BTN_SAVE": "Save",
|
|
34
34
|
"BTN_SAVE_WITH_SHORTCUT": "<u>S</u>ave",
|
|
35
35
|
"BTN_SAVE_WITH_SHORTCUT_HELP": "Save (Ctrl+S)",
|
|
36
|
-
"BTN_SAVE_AND_CLOSE": "Save and close",
|
|
37
|
-
"BTN_SAVE_AND_NEXT": "Save and next",
|
|
38
36
|
"BTN_FILTER": "Filter",
|
|
39
37
|
"BTN_RELOAD": "Reload",
|
|
40
38
|
"BTN_REFRESH": "Refresh",
|
package/src/assets/i18n/en.json
CHANGED
|
@@ -33,8 +33,6 @@
|
|
|
33
33
|
"BTN_SAVE": "Save",
|
|
34
34
|
"BTN_SAVE_WITH_SHORTCUT": "<u>S</u>ave",
|
|
35
35
|
"BTN_SAVE_WITH_SHORTCUT_HELP": "Save (Ctrl+S)",
|
|
36
|
-
"BTN_SAVE_AND_CLOSE": "Save and close",
|
|
37
|
-
"BTN_SAVE_AND_NEXT": "Save and next",
|
|
38
36
|
"BTN_FILTER": "Filter",
|
|
39
37
|
"BTN_RELOAD": "Reload",
|
|
40
38
|
"BTN_REFRESH": "Refresh",
|
|
@@ -128,11 +126,11 @@
|
|
|
128
126
|
},
|
|
129
127
|
"DEBUG": {
|
|
130
128
|
"TITLE": "Debug",
|
|
131
|
-
"BTN_DEBUG_DOTS": "
|
|
129
|
+
"BTN_DEBUG_DOTS": "Debug...",
|
|
132
130
|
"BTN_ENABLE_DEBUG": "Enable debug?"
|
|
133
131
|
},
|
|
134
132
|
"NAMED_FILTER": {
|
|
135
|
-
"TITLE": "Saved
|
|
133
|
+
"TITLE": "Saved filter",
|
|
136
134
|
"SAVE": "Save the filter",
|
|
137
135
|
"DELETE": "Delete the filter",
|
|
138
136
|
"DELETED": "Filter deleted",
|
|
@@ -145,8 +143,8 @@
|
|
|
145
143
|
},
|
|
146
144
|
"CONFIGURATION": {
|
|
147
145
|
"OPTIONS": {
|
|
148
|
-
"ANDROID_INSTALL_URL": "Android > Install App URL",
|
|
149
|
-
"IOS_INSTALL_URL": "iOS > Install App URL",
|
|
146
|
+
"ANDROID_INSTALL_URL": "App > Android > Install App URL",
|
|
147
|
+
"IOS_INSTALL_URL": "App > iOS > Install App URL",
|
|
150
148
|
"DB_TIMEZONE": "Persistence > Database timezone (readonly option)",
|
|
151
149
|
"LOGO": "Menu > Logo (max width 110px)",
|
|
152
150
|
"FAVICON": "favicon",
|
|
@@ -401,13 +399,13 @@
|
|
|
401
399
|
"BTN_CHANGE_PEER": "See available nodes",
|
|
402
400
|
"BTN_DARK_MODE": "Dark theme?",
|
|
403
401
|
"BTN_SHOW_MORE_HELP": "Show more parameters",
|
|
404
|
-
"BTN_SHOW_OPTION_KEY": "Show
|
|
402
|
+
"BTN_SHOW_OPTION_KEY": "Show options code?",
|
|
405
403
|
"BTN_CLEAR_CACHE": "Clear data cache",
|
|
406
404
|
"OFFLINE_MODE": "Force offline mode? (experimental)",
|
|
407
405
|
"DATA_ENTRY_DIVIDER": "Data entry settings",
|
|
408
406
|
"USAGE_MODE": "Usage mode",
|
|
409
|
-
"USAGE_MODE_FIELD": "<b>
|
|
410
|
-
"USAGE_MODE_DESK": "<b>
|
|
407
|
+
"USAGE_MODE_FIELD": "Mode on <b>field</b>",
|
|
408
|
+
"USAGE_MODE_DESK": "Mode in <b>office</b>",
|
|
411
409
|
"USAGE_MODES": {
|
|
412
410
|
"FIELD": "On field",
|
|
413
411
|
"DESK": "In office"
|
|
@@ -415,7 +413,7 @@
|
|
|
415
413
|
"PROPERTY_KEY": "Entry field",
|
|
416
414
|
"PROPERTY_VALUE": "Display",
|
|
417
415
|
"BTN_ADD_PROPERTY": "Add a entry field",
|
|
418
|
-
"BTN_RESET_PROPERTY": "Reset option",
|
|
416
|
+
"BTN_RESET_PROPERTY": "Reset the option",
|
|
419
417
|
"FIELDS": {
|
|
420
418
|
"DEPARTMENT": "Dropdown list > Departments",
|
|
421
419
|
"ATTRIBUTES": {
|
|
@@ -454,7 +452,7 @@
|
|
|
454
452
|
"ADMIN": "Administrator",
|
|
455
453
|
"SUPERVISOR": "Manager",
|
|
456
454
|
"USER": "Observer",
|
|
457
|
-
"GUEST": "
|
|
455
|
+
"GUEST": "Guest"
|
|
458
456
|
},
|
|
459
457
|
"LIST": {
|
|
460
458
|
"TITLE": "Users",
|
|
@@ -484,9 +482,9 @@
|
|
|
484
482
|
}
|
|
485
483
|
},
|
|
486
484
|
"SYNCHRONIZATION_STATUS": {
|
|
487
|
-
"DIRTY": "
|
|
485
|
+
"DIRTY": "Not sent",
|
|
488
486
|
"READY_TO_SYNC": "Ready to synchronize",
|
|
489
|
-
"SYNC": "
|
|
487
|
+
"SYNC": "Sent"
|
|
490
488
|
},
|
|
491
489
|
"INFO": {
|
|
492
490
|
"IMPORTATION_PCT_DOTS": "Importation... {{pct}}%",
|
|
@@ -534,7 +532,7 @@
|
|
|
534
532
|
"MESSAGE": {
|
|
535
533
|
"TYPE": "Message type",
|
|
536
534
|
"RECIPIENTS": "Recipients",
|
|
537
|
-
"RECIPIENT_FILTER_COUNT": "{{count}} filtered
|
|
535
|
+
"RECIPIENT_FILTER_COUNT": "{{count}} filtered user(s)",
|
|
538
536
|
"SUBJECT": "Object",
|
|
539
537
|
"BODY_HELP": "Your message...",
|
|
540
538
|
"NEW": {
|
|
@@ -601,7 +599,7 @@
|
|
|
601
599
|
"FIELD_INCONSISTENT": "Inconsistent value",
|
|
602
600
|
"FIELD_NOT_VALID_DECIMAL": "Expected decimal value",
|
|
603
601
|
"FIELD_NOT_VALID_INTEGER": "Expected integer value",
|
|
604
|
-
"FIELD_NOT_VALID_PRECISION": "
|
|
602
|
+
"FIELD_NOT_VALID_PRECISION": "Minimal precision: {{precision}}",
|
|
605
603
|
"FIELD_NOT_VALID_PRECISION_COMPACT": "Min precision {{precision}}",
|
|
606
604
|
"FIELD_NOT_VALID_EMAIL": "Invalid email address",
|
|
607
605
|
"FIELD_NOT_VALID_DATE": "Invalid date",
|
|
@@ -620,7 +618,7 @@
|
|
|
620
618
|
"FIELD_NOT_EQUALS": "Value not equals",
|
|
621
619
|
"SPACE_NOT_ALLOW": "Spaces or special characters not allowed",
|
|
622
620
|
"SCRYPT_ERROR": "Unable to create account keys",
|
|
623
|
-
"INVALID_OR_INCOMPLETE_FILL": "
|
|
621
|
+
"INVALID_OR_INCOMPLETE_FILL": "Incomplete or invalid entry",
|
|
624
622
|
"UNKNOWN_ACCOUNT_EMAIL": "No account matches this email.",
|
|
625
623
|
"BAD_PASSWORD": "Incorrect password.",
|
|
626
624
|
"EMAIL_ALREADY_REGISTERED": "Email already registered",
|
|
@@ -673,7 +671,7 @@
|
|
|
673
671
|
"LOAD_ERROR": "Error while loading",
|
|
674
672
|
"SAVE_ERROR": "Error while saving",
|
|
675
673
|
"SUBSCRIBE_ERROR": "Error while subscribe to changes",
|
|
676
|
-
"FIELD_NOT_EXISTS": "
|
|
674
|
+
"FIELD_NOT_EXISTS": "Value doesn't exist",
|
|
677
675
|
"FIREFOX_NO_STORAGE": "The application cannot run with Firefox in 'private' mode or without keeping navigation history",
|
|
678
676
|
"FEATURE_NOT_IMPLEMENTED": "Feature not implemented! <small><br/>Please contact your administrator.</small>"
|
|
679
677
|
},
|
|
@@ -695,7 +693,7 @@
|
|
|
695
693
|
},
|
|
696
694
|
"INFO": {
|
|
697
695
|
"ALERT_HEADER": "Information",
|
|
698
|
-
"SYNCHRONIZATION_SUCCEED": "Synchronization completed
|
|
696
|
+
"SYNCHRONIZATION_SUCCEED": "Synchronization <b>completed successfully</b>!<br/>The data has been received by the server.",
|
|
699
697
|
"COPY_SUCCEED": "Copy successfully!",
|
|
700
698
|
"DEBUG_DATA_SEND": "Help request sent to administrator",
|
|
701
699
|
"DATA_MIGRATION_STARTED": "Data recovery in progress. <br/><b>Please wait ...</b>",
|
package/src/assets/i18n/fr.json
CHANGED
|
@@ -33,8 +33,6 @@
|
|
|
33
33
|
"BTN_SAVE": "Sauvegarder",
|
|
34
34
|
"BTN_SAVE_WITH_SHORTCUT": "<u>S</u>auvegarder",
|
|
35
35
|
"BTN_SAVE_WITH_SHORTCUT_HELP": "Sauvegarder (Ctrl+S)",
|
|
36
|
-
"BTN_SAVE_AND_CLOSE": "Sauvegarder et fermer",
|
|
37
|
-
"BTN_SAVE_AND_NEXT": "Sauvegarder et suivant",
|
|
38
36
|
"BTN_FILTER": "Filtrer",
|
|
39
37
|
"BTN_RELOAD": "Recharger",
|
|
40
38
|
"BTN_REFRESH": "Rafraichir",
|
|
@@ -88,7 +86,14 @@
|
|
|
88
86
|
"LAT_SIGN_S": "S",
|
|
89
87
|
"LONG_SIGN_PLACEHOLDER": "E|W",
|
|
90
88
|
"LONG_SIGN_E": "E",
|
|
91
|
-
"LONG_SIGN_W": "W"
|
|
89
|
+
"LONG_SIGN_W": "W",
|
|
90
|
+
"SINGLE_FIELD_PATTERN": {
|
|
91
|
+
"DD": "DD",
|
|
92
|
+
"DDD": "DDD",
|
|
93
|
+
"MM": "MM",
|
|
94
|
+
"MM_MMM": "MM.MMM",
|
|
95
|
+
"SS_SS": "SS.SS"
|
|
96
|
+
}
|
|
92
97
|
},
|
|
93
98
|
"METADATA": "Metadata:",
|
|
94
99
|
"DAY_UNIT": "j",
|
|
@@ -132,10 +137,10 @@
|
|
|
132
137
|
"BTN_ENABLE_DEBUG": "Activer le débogage ?"
|
|
133
138
|
},
|
|
134
139
|
"NAMED_FILTER": {
|
|
135
|
-
"TITLE": "
|
|
140
|
+
"TITLE": "Filtre enregistré",
|
|
136
141
|
"SAVE": "Sauvegarder le filtre",
|
|
137
142
|
"DELETE": "Supprimer le filtre",
|
|
138
|
-
"DELETED": "Filtre
|
|
143
|
+
"DELETED": "Filtre <b>supprimé</b>",
|
|
139
144
|
"EXPORT": "Télécharger le filtre",
|
|
140
145
|
"IMPORT": "Importer un filtre...",
|
|
141
146
|
"LOAD_FAILED": "Échec du chargement du filtre",
|
|
@@ -145,8 +150,8 @@
|
|
|
145
150
|
},
|
|
146
151
|
"CONFIGURATION": {
|
|
147
152
|
"OPTIONS": {
|
|
148
|
-
"ANDROID_INSTALL_URL": "Android > URL d'installation App",
|
|
149
|
-
"IOS_INSTALL_URL": "iOS > URL d'installation App",
|
|
153
|
+
"ANDROID_INSTALL_URL": "App > Android > URL d'installation App",
|
|
154
|
+
"IOS_INSTALL_URL": "App > iOS > URL d'installation App",
|
|
150
155
|
"DB_TIMEZONE": "Persistance > Timezone de la base de données (option non modifiable)",
|
|
151
156
|
"LOGO": "Menu > Logo (largeur max 110px)",
|
|
152
157
|
"FAVICON": "favicon",
|
|
@@ -201,7 +206,7 @@
|
|
|
201
206
|
"ENTITY_TRASH": "Activer la corbeille du pod ?",
|
|
202
207
|
"UPDATE_TECHNICAL_TABLES": "Pod > Tables techniques : mise à jour auto ?",
|
|
203
208
|
"ANALYTIC_REFERENCES_ENABLE": "Stratégie > Références analytiques : Activer ?",
|
|
204
|
-
"AUTH_TOKEN_TYPE_PLACEHOLDER": "
|
|
209
|
+
"AUTH_TOKEN_TYPE_PLACEHOLDER": "Sécurité > Type d'authentification",
|
|
205
210
|
"AUTH_TOKEN_TYPE": {
|
|
206
211
|
"BASIC": "Basique",
|
|
207
212
|
"TOKEN": "Cryptographique",
|
|
@@ -534,7 +539,7 @@
|
|
|
534
539
|
"MESSAGE": {
|
|
535
540
|
"TYPE": "Type d'envoi",
|
|
536
541
|
"RECIPIENTS": "Destinataires",
|
|
537
|
-
"RECIPIENT_FILTER_COUNT": "{{count}}
|
|
542
|
+
"RECIPIENT_FILTER_COUNT": "{{count}} utilisateur(s) filtré(s)",
|
|
538
543
|
"SUBJECT": "Objet",
|
|
539
544
|
"BODY_HELP": "Votre message...",
|
|
540
545
|
"NEW": {
|
|
@@ -665,14 +670,14 @@
|
|
|
665
670
|
"DELETE_ENTITY_ERROR": "Erreur lors de la suppression. <small><br/>Si le problème persiste, veuillez contacter votre administrateur.</small>",
|
|
666
671
|
"SUBSCRIBE_ENTITY_ERROR": "Erreur lors de l'abonnement aux modifications distantes",
|
|
667
672
|
"CONTROL_ENTITY_ERROR": "Erreur lors du contrôle de la validité des données",
|
|
668
|
-
"TERMINATE_ENTITY_ERROR": "
|
|
673
|
+
"TERMINATE_ENTITY_ERROR": "Terminaison de la saisie impossible. <small><br/>Si le problème persiste, veuillez contacter votre administrateur.</small>",
|
|
669
674
|
"VALIDATE_ENTITY_ERROR": "Erreur lors de la validation",
|
|
670
675
|
"UNVALIDATE_ENTITY_ERROR": "Erreur lors de la dévalidation",
|
|
671
676
|
"QUALIFY_ENTITY_ERROR": "Erreur lors de la qualification",
|
|
672
677
|
"SYNCHRONIZE_ENTITY_ERROR": "Synchronisation impossible. <small><br/>Si le problème persiste, veuillez contacter votre administrateur.</small>",
|
|
673
678
|
"LOAD_ERROR": "Erreur de chargement",
|
|
674
679
|
"SAVE_ERROR": "Erreur de sauvegarde",
|
|
675
|
-
"SUBSCRIBE_ERROR": "
|
|
680
|
+
"SUBSCRIBE_ERROR": "Échec de l'abonnement distant aux modifications",
|
|
676
681
|
"FIELD_NOT_EXISTS": "Cette valeur n'existe pas",
|
|
677
682
|
"FIREFOX_NO_STORAGE": "L'application ne peut pas fonctionner sur Firefox en mode 'navigation privée' ou si la conservation de l'historique est désactivée",
|
|
678
683
|
"FEATURE_NOT_IMPLEMENTED": "Fonctionnalité non implémentée ! <small><br/>Veuillez contacter votre administrateur.</small>"
|