@etsoo/appscript 1.6.28 → 1.6.30
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/lib/cjs/app/CoreApp.d.ts +6 -0
- package/lib/cjs/app/CoreApp.js +8 -0
- package/lib/cjs/business/BusinessUtils.d.ts +9 -1
- package/lib/cjs/business/BusinessUtils.js +38 -0
- package/lib/cjs/def/CustomCulture.d.ts +13 -8
- package/lib/mjs/app/CoreApp.d.ts +6 -0
- package/lib/mjs/app/CoreApp.js +8 -0
- package/lib/mjs/business/BusinessUtils.d.ts +9 -1
- package/lib/mjs/business/BusinessUtils.js +38 -0
- package/lib/mjs/def/CustomCulture.d.ts +13 -8
- package/package.json +2 -2
- package/src/app/CoreApp.ts +14 -0
- package/src/business/BusinessUtils.ts +47 -1
- package/src/def/CustomCulture.ts +14 -9
package/lib/cjs/app/CoreApp.d.ts
CHANGED
|
@@ -354,6 +354,12 @@ export declare abstract class CoreApp<U extends IUser, S extends IAppSettings, N
|
|
|
354
354
|
* @param onReady On ready callback
|
|
355
355
|
*/
|
|
356
356
|
changeCulture(culture: DataTypes.CultureDefinition): Promise<DataTypes.StringRecord>;
|
|
357
|
+
/**
|
|
358
|
+
* Load custom resources, override to implement custom resources
|
|
359
|
+
* @param resources Resources
|
|
360
|
+
* @param culture Culture name
|
|
361
|
+
*/
|
|
362
|
+
protected loadCustomResources(resources: DataTypes.StringRecord, culture: string): Promise<void> | void;
|
|
357
363
|
/**
|
|
358
364
|
* Update current region label
|
|
359
365
|
*/
|
package/lib/cjs/app/CoreApp.js
CHANGED
|
@@ -829,9 +829,17 @@ class CoreApp {
|
|
|
829
829
|
// Set static resources back
|
|
830
830
|
culture.resources = resources;
|
|
831
831
|
}
|
|
832
|
+
// Load system custom resources
|
|
833
|
+
await this.loadCustomResources(resources, name);
|
|
832
834
|
this.updateRegionLabel();
|
|
833
835
|
return resources;
|
|
834
836
|
}
|
|
837
|
+
/**
|
|
838
|
+
* Load custom resources, override to implement custom resources
|
|
839
|
+
* @param resources Resources
|
|
840
|
+
* @param culture Culture name
|
|
841
|
+
*/
|
|
842
|
+
loadCustomResources(resources, culture) { }
|
|
835
843
|
/**
|
|
836
844
|
* Update current region label
|
|
837
845
|
*/
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { ListType } from "@etsoo/shared";
|
|
1
|
+
import { DataTypes, ListType } from "@etsoo/shared";
|
|
2
|
+
import { CustomCultureData } from "../def/CustomCulture";
|
|
2
3
|
/**
|
|
3
4
|
* Business utils
|
|
4
5
|
*/
|
|
@@ -18,4 +19,11 @@ export declare namespace BusinessUtils {
|
|
|
18
19
|
* @returns 12 months
|
|
19
20
|
*/
|
|
20
21
|
function getMonths(monthLabels: string[], startMonth?: number): ListType[];
|
|
22
|
+
/**
|
|
23
|
+
* Merge custom resources to target collection
|
|
24
|
+
* @param target Target collection merges to
|
|
25
|
+
* @param resources New resources to merge
|
|
26
|
+
*/
|
|
27
|
+
function mergeCustomResources(target: DataTypes.StringRecord, resources: CustomCultureData[]): void;
|
|
28
|
+
function restoreResources(target?: DataTypes.StringRecord): void;
|
|
21
29
|
}
|
|
@@ -6,6 +6,7 @@ exports.BusinessUtils = void 0;
|
|
|
6
6
|
*/
|
|
7
7
|
var BusinessUtils;
|
|
8
8
|
(function (BusinessUtils) {
|
|
9
|
+
let resourcesCache = {};
|
|
9
10
|
/**
|
|
10
11
|
* Format avatar title
|
|
11
12
|
* @param title Title
|
|
@@ -55,4 +56,41 @@ var BusinessUtils;
|
|
|
55
56
|
return months;
|
|
56
57
|
}
|
|
57
58
|
BusinessUtils.getMonths = getMonths;
|
|
59
|
+
/**
|
|
60
|
+
* Merge custom resources to target collection
|
|
61
|
+
* @param target Target collection merges to
|
|
62
|
+
* @param resources New resources to merge
|
|
63
|
+
*/
|
|
64
|
+
function mergeCustomResources(target, resources) {
|
|
65
|
+
for (const item of resources) {
|
|
66
|
+
if (item.organizationId) {
|
|
67
|
+
// Backup
|
|
68
|
+
const backup = target[item.key];
|
|
69
|
+
if (backup != null &&
|
|
70
|
+
(typeof backup !== "object" || !("organizationId" in backup))) {
|
|
71
|
+
resourcesCache[item.key] = backup;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
if (item.description || item.jsonData) {
|
|
75
|
+
const { key, ...rest } = item;
|
|
76
|
+
target[key] = rest;
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
target[item.key] = item.title;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
BusinessUtils.mergeCustomResources = mergeCustomResources;
|
|
84
|
+
function restoreResources(target) {
|
|
85
|
+
// Clear cache if no target
|
|
86
|
+
if (target == null) {
|
|
87
|
+
resourcesCache = {};
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
// Restore resources
|
|
91
|
+
for (const key in resourcesCache) {
|
|
92
|
+
target[key] = resourcesCache[key];
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
BusinessUtils.restoreResources = restoreResources;
|
|
58
96
|
})(BusinessUtils || (exports.BusinessUtils = BusinessUtils = {}));
|
|
@@ -1,15 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Custom culture
|
|
2
|
+
* Custom culture data
|
|
3
3
|
*/
|
|
4
|
-
export type
|
|
4
|
+
export type CustomCultureData = {
|
|
5
5
|
/**
|
|
6
|
-
*
|
|
6
|
+
* Key
|
|
7
7
|
*/
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Culture, like zh-Hans
|
|
11
|
-
*/
|
|
12
|
-
culture: string;
|
|
8
|
+
key: string;
|
|
13
9
|
/**
|
|
14
10
|
* Organization id
|
|
15
11
|
*/
|
|
@@ -28,3 +24,12 @@ export type CustomCulture = {
|
|
|
28
24
|
*/
|
|
29
25
|
jsonData?: string;
|
|
30
26
|
};
|
|
27
|
+
/**
|
|
28
|
+
* Custom culture
|
|
29
|
+
*/
|
|
30
|
+
export type CustomCulture = CustomCultureData & {
|
|
31
|
+
/**
|
|
32
|
+
* Culture, like zh-Hans
|
|
33
|
+
*/
|
|
34
|
+
culture: string;
|
|
35
|
+
};
|
package/lib/mjs/app/CoreApp.d.ts
CHANGED
|
@@ -354,6 +354,12 @@ export declare abstract class CoreApp<U extends IUser, S extends IAppSettings, N
|
|
|
354
354
|
* @param onReady On ready callback
|
|
355
355
|
*/
|
|
356
356
|
changeCulture(culture: DataTypes.CultureDefinition): Promise<DataTypes.StringRecord>;
|
|
357
|
+
/**
|
|
358
|
+
* Load custom resources, override to implement custom resources
|
|
359
|
+
* @param resources Resources
|
|
360
|
+
* @param culture Culture name
|
|
361
|
+
*/
|
|
362
|
+
protected loadCustomResources(resources: DataTypes.StringRecord, culture: string): Promise<void> | void;
|
|
357
363
|
/**
|
|
358
364
|
* Update current region label
|
|
359
365
|
*/
|
package/lib/mjs/app/CoreApp.js
CHANGED
|
@@ -826,9 +826,17 @@ export class CoreApp {
|
|
|
826
826
|
// Set static resources back
|
|
827
827
|
culture.resources = resources;
|
|
828
828
|
}
|
|
829
|
+
// Load system custom resources
|
|
830
|
+
await this.loadCustomResources(resources, name);
|
|
829
831
|
this.updateRegionLabel();
|
|
830
832
|
return resources;
|
|
831
833
|
}
|
|
834
|
+
/**
|
|
835
|
+
* Load custom resources, override to implement custom resources
|
|
836
|
+
* @param resources Resources
|
|
837
|
+
* @param culture Culture name
|
|
838
|
+
*/
|
|
839
|
+
loadCustomResources(resources, culture) { }
|
|
832
840
|
/**
|
|
833
841
|
* Update current region label
|
|
834
842
|
*/
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { ListType } from "@etsoo/shared";
|
|
1
|
+
import { DataTypes, ListType } from "@etsoo/shared";
|
|
2
|
+
import { CustomCultureData } from "../def/CustomCulture";
|
|
2
3
|
/**
|
|
3
4
|
* Business utils
|
|
4
5
|
*/
|
|
@@ -18,4 +19,11 @@ export declare namespace BusinessUtils {
|
|
|
18
19
|
* @returns 12 months
|
|
19
20
|
*/
|
|
20
21
|
function getMonths(monthLabels: string[], startMonth?: number): ListType[];
|
|
22
|
+
/**
|
|
23
|
+
* Merge custom resources to target collection
|
|
24
|
+
* @param target Target collection merges to
|
|
25
|
+
* @param resources New resources to merge
|
|
26
|
+
*/
|
|
27
|
+
function mergeCustomResources(target: DataTypes.StringRecord, resources: CustomCultureData[]): void;
|
|
28
|
+
function restoreResources(target?: DataTypes.StringRecord): void;
|
|
21
29
|
}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export var BusinessUtils;
|
|
5
5
|
(function (BusinessUtils) {
|
|
6
|
+
let resourcesCache = {};
|
|
6
7
|
/**
|
|
7
8
|
* Format avatar title
|
|
8
9
|
* @param title Title
|
|
@@ -52,4 +53,41 @@ export var BusinessUtils;
|
|
|
52
53
|
return months;
|
|
53
54
|
}
|
|
54
55
|
BusinessUtils.getMonths = getMonths;
|
|
56
|
+
/**
|
|
57
|
+
* Merge custom resources to target collection
|
|
58
|
+
* @param target Target collection merges to
|
|
59
|
+
* @param resources New resources to merge
|
|
60
|
+
*/
|
|
61
|
+
function mergeCustomResources(target, resources) {
|
|
62
|
+
for (const item of resources) {
|
|
63
|
+
if (item.organizationId) {
|
|
64
|
+
// Backup
|
|
65
|
+
const backup = target[item.key];
|
|
66
|
+
if (backup != null &&
|
|
67
|
+
(typeof backup !== "object" || !("organizationId" in backup))) {
|
|
68
|
+
resourcesCache[item.key] = backup;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
if (item.description || item.jsonData) {
|
|
72
|
+
const { key, ...rest } = item;
|
|
73
|
+
target[key] = rest;
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
target[item.key] = item.title;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
BusinessUtils.mergeCustomResources = mergeCustomResources;
|
|
81
|
+
function restoreResources(target) {
|
|
82
|
+
// Clear cache if no target
|
|
83
|
+
if (target == null) {
|
|
84
|
+
resourcesCache = {};
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
// Restore resources
|
|
88
|
+
for (const key in resourcesCache) {
|
|
89
|
+
target[key] = resourcesCache[key];
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
BusinessUtils.restoreResources = restoreResources;
|
|
55
93
|
})(BusinessUtils || (BusinessUtils = {}));
|
|
@@ -1,15 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Custom culture
|
|
2
|
+
* Custom culture data
|
|
3
3
|
*/
|
|
4
|
-
export type
|
|
4
|
+
export type CustomCultureData = {
|
|
5
5
|
/**
|
|
6
|
-
*
|
|
6
|
+
* Key
|
|
7
7
|
*/
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Culture, like zh-Hans
|
|
11
|
-
*/
|
|
12
|
-
culture: string;
|
|
8
|
+
key: string;
|
|
13
9
|
/**
|
|
14
10
|
* Organization id
|
|
15
11
|
*/
|
|
@@ -28,3 +24,12 @@ export type CustomCulture = {
|
|
|
28
24
|
*/
|
|
29
25
|
jsonData?: string;
|
|
30
26
|
};
|
|
27
|
+
/**
|
|
28
|
+
* Custom culture
|
|
29
|
+
*/
|
|
30
|
+
export type CustomCulture = CustomCultureData & {
|
|
31
|
+
/**
|
|
32
|
+
* Culture, like zh-Hans
|
|
33
|
+
*/
|
|
34
|
+
culture: string;
|
|
35
|
+
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@etsoo/appscript",
|
|
3
|
-
"version": "1.6.
|
|
3
|
+
"version": "1.6.30",
|
|
4
4
|
"description": "Applications shared TypeScript framework",
|
|
5
5
|
"main": "lib/cjs/index.js",
|
|
6
6
|
"module": "lib/mjs/index.js",
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"dependencies": {
|
|
38
38
|
"@etsoo/notificationbase": "^1.1.60",
|
|
39
39
|
"@etsoo/restclient": "^1.1.27",
|
|
40
|
-
"@etsoo/shared": "^1.2.
|
|
40
|
+
"@etsoo/shared": "^1.2.70",
|
|
41
41
|
"crypto-js": "^4.2.0"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
package/src/app/CoreApp.ts
CHANGED
|
@@ -1229,11 +1229,25 @@ export abstract class CoreApp<
|
|
|
1229
1229
|
// Set static resources back
|
|
1230
1230
|
culture.resources = resources;
|
|
1231
1231
|
}
|
|
1232
|
+
|
|
1233
|
+
// Load system custom resources
|
|
1234
|
+
await this.loadCustomResources(resources, name);
|
|
1235
|
+
|
|
1232
1236
|
this.updateRegionLabel();
|
|
1233
1237
|
|
|
1234
1238
|
return resources;
|
|
1235
1239
|
}
|
|
1236
1240
|
|
|
1241
|
+
/**
|
|
1242
|
+
* Load custom resources, override to implement custom resources
|
|
1243
|
+
* @param resources Resources
|
|
1244
|
+
* @param culture Culture name
|
|
1245
|
+
*/
|
|
1246
|
+
protected loadCustomResources(
|
|
1247
|
+
resources: DataTypes.StringRecord,
|
|
1248
|
+
culture: string
|
|
1249
|
+
): Promise<void> | void {}
|
|
1250
|
+
|
|
1237
1251
|
/**
|
|
1238
1252
|
* Update current region label
|
|
1239
1253
|
*/
|
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
import { ListType } from "@etsoo/shared";
|
|
1
|
+
import { DataTypes, ListType } from "@etsoo/shared";
|
|
2
|
+
import { CustomCultureData } from "../def/CustomCulture";
|
|
2
3
|
|
|
3
4
|
/**
|
|
4
5
|
* Business utils
|
|
5
6
|
*/
|
|
6
7
|
export namespace BusinessUtils {
|
|
8
|
+
let resourcesCache: DataTypes.StringRecord = {};
|
|
9
|
+
|
|
7
10
|
/**
|
|
8
11
|
* Format avatar title
|
|
9
12
|
* @param title Title
|
|
@@ -62,4 +65,47 @@ export namespace BusinessUtils {
|
|
|
62
65
|
|
|
63
66
|
return months;
|
|
64
67
|
}
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Merge custom resources to target collection
|
|
71
|
+
* @param target Target collection merges to
|
|
72
|
+
* @param resources New resources to merge
|
|
73
|
+
*/
|
|
74
|
+
export function mergeCustomResources(
|
|
75
|
+
target: DataTypes.StringRecord,
|
|
76
|
+
resources: CustomCultureData[]
|
|
77
|
+
) {
|
|
78
|
+
for (const item of resources) {
|
|
79
|
+
if (item.organizationId) {
|
|
80
|
+
// Backup
|
|
81
|
+
const backup = target[item.key];
|
|
82
|
+
if (
|
|
83
|
+
backup != null &&
|
|
84
|
+
(typeof backup !== "object" || !("organizationId" in backup))
|
|
85
|
+
) {
|
|
86
|
+
resourcesCache[item.key] = backup;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
if (item.description || item.jsonData) {
|
|
91
|
+
const { key, ...rest } = item;
|
|
92
|
+
target[key] = rest;
|
|
93
|
+
} else {
|
|
94
|
+
target[item.key] = item.title;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
export function restoreResources(target?: DataTypes.StringRecord) {
|
|
100
|
+
// Clear cache if no target
|
|
101
|
+
if (target == null) {
|
|
102
|
+
resourcesCache = {};
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
// Restore resources
|
|
107
|
+
for (const key in resourcesCache) {
|
|
108
|
+
target[key] = resourcesCache[key];
|
|
109
|
+
}
|
|
110
|
+
}
|
|
65
111
|
}
|
package/src/def/CustomCulture.ts
CHANGED
|
@@ -1,16 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Custom culture
|
|
2
|
+
* Custom culture data
|
|
3
3
|
*/
|
|
4
|
-
export type
|
|
5
|
-
/**
|
|
6
|
-
* Target id
|
|
7
|
-
*/
|
|
8
|
-
id: string;
|
|
9
|
-
|
|
4
|
+
export type CustomCultureData = {
|
|
10
5
|
/**
|
|
11
|
-
*
|
|
6
|
+
* Key
|
|
12
7
|
*/
|
|
13
|
-
|
|
8
|
+
key: string;
|
|
14
9
|
|
|
15
10
|
/**
|
|
16
11
|
* Organization id
|
|
@@ -33,3 +28,13 @@ export type CustomCulture = {
|
|
|
33
28
|
*/
|
|
34
29
|
jsonData?: string;
|
|
35
30
|
};
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Custom culture
|
|
34
|
+
*/
|
|
35
|
+
export type CustomCulture = CustomCultureData & {
|
|
36
|
+
/**
|
|
37
|
+
* Culture, like zh-Hans
|
|
38
|
+
*/
|
|
39
|
+
culture: string;
|
|
40
|
+
};
|