@etsoo/appscript 1.5.64 → 1.5.65
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/.github/workflows/main.yml +6 -5
- package/__tests__/app/CoreApp.ts +141 -143
- package/__tests__/app/Culture.ts +23 -23
- package/__tests__/app/TestApp.ts +107 -105
- package/__tests__/business/BusinessUtils.ts +37 -37
- package/__tests__/result/ActionResult.ts +14 -14
- package/__tests__/tsconfig.json +16 -16
- package/lib/cjs/address/AddressAutocomplete.d.ts +1 -1
- package/lib/cjs/address/AddressPlace.d.ts +3 -3
- package/lib/cjs/address/AddressPlaceBase.d.ts +1 -1
- package/lib/cjs/address/AddressRegion.d.ts +2 -2
- package/lib/cjs/address/AddressRegion.js +12 -12
- package/lib/cjs/address/AddressUtils.d.ts +1 -1
- package/lib/cjs/api/AuthApi.d.ts +14 -14
- package/lib/cjs/api/AuthApi.js +17 -17
- package/lib/cjs/api/BaseApi.d.ts +1 -1
- package/lib/cjs/api/EntityApi.d.ts +8 -8
- package/lib/cjs/api/EntityApi.js +4 -4
- package/lib/cjs/api/dto/IdLabelDto.d.ts +1 -1
- package/lib/cjs/api/dto/IdLabelPrimaryDto.d.ts +1 -1
- package/lib/cjs/api/dto/ResultPayload.d.ts +2 -2
- package/lib/cjs/api/rq/AuthRequest.d.ts +1 -1
- package/lib/cjs/api/rq/LoginRQ.d.ts +2 -2
- package/lib/cjs/api/rq/MergeRQ.d.ts +1 -1
- package/lib/cjs/api/rq/QueryRQ.d.ts +2 -2
- package/lib/cjs/api/rq/StatusQueryRQ.d.ts +3 -3
- package/lib/cjs/api/rq/UpdateModel.d.ts +2 -2
- package/lib/cjs/api/rq/UpdateStatusRQ.d.ts +2 -2
- package/lib/cjs/app/AppSettings.d.ts +3 -3
- package/lib/cjs/bridges/FlutterHost.d.ts +2 -2
- package/lib/cjs/bridges/FlutterHost.js +11 -11
- package/lib/cjs/business/BusinessTax.js +6 -6
- package/lib/cjs/business/BusinessUtils.d.ts +2 -2
- package/lib/cjs/business/BusinessUtils.js +5 -5
- package/lib/cjs/business/Currency.d.ts +1 -1
- package/lib/cjs/business/Currency.js +10 -10
- package/lib/cjs/business/ProductUnit.d.ts +1 -1
- package/lib/cjs/business/ShoppingCart.d.ts +9 -9
- package/lib/cjs/business/ShoppingCart.js +11 -11
- package/lib/cjs/custom/CustomField.d.ts +1 -1
- package/lib/cjs/custom/CustomFieldData.d.ts +2 -2
- package/lib/cjs/i18n/Culture.d.ts +31 -0
- package/lib/cjs/i18n/Culture.js +51 -0
- package/lib/cjs/index.d.ts +1 -4
- package/lib/cjs/index.js +1 -4
- package/lib/cjs/result/ActionResult.d.ts +1 -1
- package/lib/cjs/result/ActionResultError.d.ts +1 -1
- package/lib/cjs/result/ActionResultError.js +3 -3
- package/lib/cjs/result/InitCallResult.d.ts +1 -1
- package/lib/cjs/state/Culture.d.ts +2 -2
- package/lib/cjs/state/User.d.ts +1 -1
- package/lib/mjs/address/AddressAutocomplete.d.ts +1 -1
- package/lib/mjs/address/AddressPlace.d.ts +3 -3
- package/lib/mjs/address/AddressPlaceBase.d.ts +1 -1
- package/lib/mjs/address/AddressRegion.d.ts +2 -2
- package/lib/mjs/address/AddressRegion.js +13 -13
- package/lib/mjs/address/AddressUtils.d.ts +1 -1
- package/lib/mjs/address/AddressUtils.js +1 -1
- package/lib/mjs/api/AuthApi.d.ts +14 -14
- package/lib/mjs/api/AuthApi.js +19 -19
- package/lib/mjs/api/BaseApi.d.ts +1 -1
- package/lib/mjs/api/EntityApi.d.ts +8 -8
- package/lib/mjs/api/EntityApi.js +5 -5
- package/lib/mjs/api/dto/IdLabelDto.d.ts +1 -1
- package/lib/mjs/api/dto/IdLabelPrimaryDto.d.ts +1 -1
- package/lib/mjs/api/dto/ResultPayload.d.ts +2 -2
- package/lib/mjs/api/rq/AuthRequest.d.ts +1 -1
- package/lib/mjs/api/rq/LoginRQ.d.ts +2 -2
- package/lib/mjs/api/rq/MergeRQ.d.ts +1 -1
- package/lib/mjs/api/rq/QueryRQ.d.ts +2 -2
- package/lib/mjs/api/rq/StatusQueryRQ.d.ts +3 -3
- package/lib/mjs/api/rq/UpdateModel.d.ts +2 -2
- package/lib/mjs/api/rq/UpdateStatusRQ.d.ts +2 -2
- package/lib/mjs/app/AppSettings.d.ts +3 -3
- package/lib/mjs/bridges/FlutterHost.d.ts +2 -2
- package/lib/mjs/bridges/FlutterHost.js +13 -13
- package/lib/mjs/business/BusinessTax.js +6 -6
- package/lib/mjs/business/BusinessUtils.d.ts +2 -2
- package/lib/mjs/business/BusinessUtils.js +5 -5
- package/lib/mjs/business/Currency.d.ts +1 -1
- package/lib/mjs/business/Currency.js +10 -10
- package/lib/mjs/business/ProductUnit.d.ts +1 -1
- package/lib/mjs/business/ProductUnit.js +1 -1
- package/lib/mjs/business/ShoppingCart.d.ts +9 -9
- package/lib/mjs/business/ShoppingCart.js +12 -12
- package/lib/mjs/custom/CustomField.d.ts +1 -1
- package/lib/mjs/custom/CustomFieldData.d.ts +2 -2
- package/lib/mjs/i18n/Culture.d.ts +31 -0
- package/lib/mjs/i18n/Culture.js +48 -0
- package/lib/mjs/index.d.ts +1 -4
- package/lib/mjs/index.js +1 -4
- package/lib/mjs/result/ActionResult.d.ts +1 -1
- package/lib/mjs/result/ActionResult.js +1 -1
- package/lib/mjs/result/ActionResultError.d.ts +1 -1
- package/lib/mjs/result/ActionResultError.js +3 -3
- package/lib/mjs/result/InitCallResult.d.ts +1 -1
- package/lib/mjs/state/Culture.d.ts +2 -2
- package/lib/mjs/state/User.d.ts +1 -1
- package/package.json +1 -1
- package/src/address/AddressAutocomplete.ts +16 -16
- package/src/address/AddressCity.ts +12 -12
- package/src/address/AddressContinent.ts +35 -35
- package/src/address/AddressDistrict.ts +12 -12
- package/src/address/AddressLocation.ts +8 -8
- package/src/address/AddressPlace.ts +23 -23
- package/src/address/AddressPlaceBase.ts +31 -31
- package/src/address/AddressRegion.ts +286 -286
- package/src/address/AddressState.ts +12 -12
- package/src/address/AddressUtils.ts +27 -27
- package/src/api/AuthApi.ts +194 -194
- package/src/api/BaseApi.ts +13 -13
- package/src/api/EntityApi.ts +181 -194
- package/src/api/dto/AntiforgeryRequestToken.ts +15 -15
- package/src/api/dto/ApiRefreshTokenDto.ts +16 -16
- package/src/api/dto/IdLabelDto.ts +3 -3
- package/src/api/dto/IdLabelPrimaryDto.ts +7 -7
- package/src/api/dto/InitCallDto.ts +12 -12
- package/src/api/dto/ResultPayload.ts +6 -6
- package/src/api/rq/ApiRefreshTokenRQ.ts +8 -8
- package/src/api/rq/AuthRequest.ts +40 -40
- package/src/api/rq/GetLogInUrlRQ.ts +8 -8
- package/src/api/rq/LoginIdRQ.ts +12 -12
- package/src/api/rq/LoginRQ.ts +18 -18
- package/src/api/rq/MergeRQ.ts +13 -13
- package/src/api/rq/QueryPagingData.ts +16 -16
- package/src/api/rq/QueryRQ.ts +22 -22
- package/src/api/rq/RefreshTokenRQ.ts +4 -4
- package/src/api/rq/ResetPasswordRQ.ts +20 -20
- package/src/api/rq/SignoutRQ.ts +8 -8
- package/src/api/rq/StatusQueryRQ.ts +11 -11
- package/src/api/rq/SwitchOrgRQ.ts +8 -8
- package/src/api/rq/TokenRQ.ts +4 -4
- package/src/api/rq/UpdateModel.ts +12 -12
- package/src/api/rq/UpdateStatusRQ.ts +10 -10
- package/src/app/AppSettings.ts +27 -27
- package/src/app/UserRole.ts +44 -44
- package/src/bridges/FlutterHost.ts +92 -97
- package/src/bridges/IBridgeHost.ts +49 -51
- package/src/business/ApiService.ts +25 -25
- package/src/business/BusinessTax.ts +63 -63
- package/src/business/BusinessUtils.ts +75 -75
- package/src/business/CultureItem.ts +43 -43
- package/src/business/Currency.ts +11 -11
- package/src/business/DataPrivacy.ts +35 -35
- package/src/business/EntityStatus.ts +44 -44
- package/src/business/ProductUnit.ts +58 -58
- package/src/business/RepeatOption.ts +50 -50
- package/src/business/ShoppingCart.ts +696 -706
- package/src/custom/CustomField.ts +20 -20
- package/src/custom/CustomFieldData.ts +43 -43
- package/src/def/ListItem.ts +12 -12
- package/src/i18n/Culture.ts +60 -0
- package/src/i18n/en.json +244 -244
- package/src/i18n/zh-Hans.json +244 -244
- package/src/i18n/zh-Hant.json +244 -244
- package/src/index.ts +1 -4
- package/src/result/ActionResult.ts +19 -19
- package/src/result/ActionResultError.ts +30 -30
- package/src/result/InitCallResult.ts +21 -21
- package/src/state/Culture.ts +3 -3
- package/src/state/State.ts +5 -5
- package/src/state/User.ts +92 -92
- package/lib/cjs/i18n/CultureUtils.d.ts +0 -13
- package/lib/cjs/i18n/CultureUtils.js +0 -32
- package/lib/cjs/i18n/en.d.ts +0 -6
- package/lib/cjs/i18n/en.js +0 -12
- package/lib/cjs/i18n/zhHans.d.ts +0 -6
- package/lib/cjs/i18n/zhHans.js +0 -12
- package/lib/cjs/i18n/zhHant.d.ts +0 -6
- package/lib/cjs/i18n/zhHant.js +0 -12
- package/lib/mjs/i18n/CultureUtils.d.ts +0 -13
- package/lib/mjs/i18n/CultureUtils.js +0 -29
- package/lib/mjs/i18n/en.d.ts +0 -6
- package/lib/mjs/i18n/en.js +0 -8
- package/lib/mjs/i18n/zhHans.d.ts +0 -6
- package/lib/mjs/i18n/zhHans.js +0 -8
- package/lib/mjs/i18n/zhHant.d.ts +0 -6
- package/lib/mjs/i18n/zhHant.js +0 -8
- package/src/i18n/CultureUtils.ts +0 -36
- package/src/i18n/en.ts +0 -10
- package/src/i18n/zhHans.ts +0 -10
- package/src/i18n/zhHant.ts +0 -10
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { DataTypes, ExtendUtils } from
|
|
2
|
-
import { BridgeHostName, IBridgeHost } from
|
|
1
|
+
import { DataTypes, ExtendUtils } from "@etsoo/shared";
|
|
2
|
+
import { BridgeHostName, IBridgeHost } from "./IBridgeHost";
|
|
3
3
|
|
|
4
4
|
// Call handler type
|
|
5
5
|
type CallHandlerType = (
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
name: string,
|
|
7
|
+
...args: unknown[]
|
|
8
8
|
) => PromiseLike<DataTypes.StringRecord | void>;
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -12,107 +12,102 @@ type CallHandlerType = (
|
|
|
12
12
|
* https://inappwebview.dev/docs/javascript/communication/
|
|
13
13
|
*/
|
|
14
14
|
export class FlutterHost implements IBridgeHost {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
15
|
+
/**
|
|
16
|
+
* Name
|
|
17
|
+
*/
|
|
18
|
+
readonly name = BridgeHostName.Flutter;
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Start Url
|
|
22
|
+
*/
|
|
23
|
+
private startUrl: string | null | undefined;
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Cached commands
|
|
27
|
+
*/
|
|
28
|
+
private cachedCommands: Record<string, unknown[]> = {};
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Constructor
|
|
32
|
+
* @param callHandler Call handler
|
|
33
|
+
*/
|
|
34
|
+
constructor(private host: { callHandler?: CallHandlerType }) {
|
|
35
|
+
window.addEventListener("flutterInAppWebViewPlatformReady", (_event) => {
|
|
36
|
+
if (this.host.callHandler == null) return;
|
|
37
|
+
|
|
38
|
+
for (const key in this.cachedCommands) {
|
|
39
|
+
// Args
|
|
40
|
+
const args = this.cachedCommands[key];
|
|
41
|
+
|
|
42
|
+
// Execute
|
|
43
|
+
this.host.callHandler(key, ...args);
|
|
44
|
+
|
|
45
|
+
// Remove the key
|
|
46
|
+
delete this.cachedCommands[key];
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
cacheCommand(name: string, ...args: unknown[]): void {
|
|
52
|
+
this.cachedCommands[name] = args;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
changeCulture(locale: string): void {
|
|
56
|
+
if (this.host.callHandler) this.host.callHandler("changeCulture", locale);
|
|
57
|
+
else this.cacheCommand("changeCulture", locale);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
closable(): boolean {
|
|
61
|
+
return false;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
exit(): void {
|
|
65
|
+
if (this.host.callHandler) this.host.callHandler("exit");
|
|
66
|
+
else this.cacheCommand("exit");
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
async getLabels<T extends string>(...keys: T[]) {
|
|
70
|
+
// Try 500 miliseconds
|
|
71
|
+
let count = 5;
|
|
72
|
+
while (this.host.callHandler == null) {
|
|
73
|
+
count--;
|
|
74
|
+
await ExtendUtils.sleep(100);
|
|
75
|
+
|
|
76
|
+
if (count === 0) break;
|
|
52
77
|
}
|
|
53
78
|
|
|
54
|
-
|
|
55
|
-
this.cachedCommands[name] = args;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
changeCulture(locale: string): void {
|
|
59
|
-
if (this.host.callHandler)
|
|
60
|
-
this.host.callHandler('changeCulture', locale);
|
|
61
|
-
else this.cacheCommand('changeCulture', locale);
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
closable(): boolean {
|
|
65
|
-
return false;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
exit(): void {
|
|
69
|
-
if (this.host.callHandler) this.host.callHandler('exit');
|
|
70
|
-
else this.cacheCommand('exit');
|
|
71
|
-
}
|
|
79
|
+
const init: any = {};
|
|
72
80
|
|
|
73
|
-
|
|
74
|
-
// Try 500 miliseconds
|
|
75
|
-
let count = 5;
|
|
76
|
-
while (this.host.callHandler == null) {
|
|
77
|
-
count--;
|
|
78
|
-
await ExtendUtils.sleep(100);
|
|
81
|
+
if (this.host.callHandler == null) return init;
|
|
79
82
|
|
|
80
|
-
|
|
81
|
-
}
|
|
83
|
+
const result = (await this.host.callHandler("getLabels")) ?? {};
|
|
82
84
|
|
|
83
|
-
|
|
85
|
+
return keys.reduce(
|
|
86
|
+
(a, v) => ({
|
|
87
|
+
...a,
|
|
88
|
+
[v]: result[v] ?? ""
|
|
89
|
+
}),
|
|
90
|
+
init
|
|
91
|
+
);
|
|
92
|
+
}
|
|
84
93
|
|
|
85
|
-
|
|
94
|
+
getStartUrl(): string | null | undefined {
|
|
95
|
+
return this.startUrl;
|
|
96
|
+
}
|
|
86
97
|
|
|
87
|
-
|
|
98
|
+
loadApp(name: string, startUrl?: string): void {
|
|
99
|
+
this.startUrl = startUrl;
|
|
100
|
+
if (this.host.callHandler) this.host.callHandler("loadApp", name, startUrl);
|
|
101
|
+
else this.cacheCommand("loadApp", name, startUrl);
|
|
102
|
+
}
|
|
88
103
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
init
|
|
95
|
-
);
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
getStartUrl(): string | null | undefined {
|
|
99
|
-
return this.startUrl;
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
loadApp(name: string, startUrl?: string): void {
|
|
103
|
-
this.startUrl = startUrl;
|
|
104
|
-
if (this.host.callHandler)
|
|
105
|
-
this.host.callHandler('loadApp', name, startUrl);
|
|
106
|
-
else this.cacheCommand('loadApp', name, startUrl);
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
userAuthorization(authorized: boolean): void {
|
|
110
|
-
if (this.host.callHandler)
|
|
111
|
-
this.host.callHandler('userAuthorization', authorized);
|
|
112
|
-
else this.cacheCommand('userAuthorization', authorized);
|
|
113
|
-
}
|
|
104
|
+
userAuthorization(authorized: boolean): void {
|
|
105
|
+
if (this.host.callHandler)
|
|
106
|
+
this.host.callHandler("userAuthorization", authorized);
|
|
107
|
+
else this.cacheCommand("userAuthorization", authorized);
|
|
108
|
+
}
|
|
114
109
|
|
|
115
|
-
|
|
110
|
+
onUpdate(func: (app: string, version: string) => void) {}
|
|
116
111
|
|
|
117
|
-
|
|
112
|
+
setTitle(title: string) {}
|
|
118
113
|
}
|
|
@@ -2,70 +2,68 @@
|
|
|
2
2
|
* Bridge host names enum
|
|
3
3
|
*/
|
|
4
4
|
export enum BridgeHostName {
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
Electron = 0,
|
|
6
|
+
Flutter = 1
|
|
7
7
|
}
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* Bridge host interface
|
|
11
11
|
*/
|
|
12
12
|
export interface IBridgeHost {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
13
|
+
/**
|
|
14
|
+
* Name
|
|
15
|
+
*/
|
|
16
|
+
readonly name: BridgeHostName;
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
18
|
+
/**
|
|
19
|
+
* Change culture
|
|
20
|
+
* @param locale Locale
|
|
21
|
+
*/
|
|
22
|
+
changeCulture(locale: string): void;
|
|
23
23
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
24
|
+
/**
|
|
25
|
+
* Closable from client
|
|
26
|
+
*/
|
|
27
|
+
closable(): boolean;
|
|
28
28
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
29
|
+
/**
|
|
30
|
+
* Exit the application
|
|
31
|
+
*/
|
|
32
|
+
exit(): void;
|
|
33
33
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
...keys: T[]
|
|
40
|
-
): PromiseLike<{ [K in T]: string }>;
|
|
34
|
+
/**
|
|
35
|
+
* Get multiple culture labels
|
|
36
|
+
* @param keys Keys
|
|
37
|
+
*/
|
|
38
|
+
getLabels<T extends string>(...keys: T[]): PromiseLike<{ [K in T]: string }>;
|
|
41
39
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
40
|
+
/**
|
|
41
|
+
* Get app start Url / router Url
|
|
42
|
+
*/
|
|
43
|
+
getStartUrl(): string | undefined | null;
|
|
46
44
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
45
|
+
/**
|
|
46
|
+
* Load application
|
|
47
|
+
* @param name App name
|
|
48
|
+
* @param startUrl Start Url / router Url
|
|
49
|
+
*/
|
|
50
|
+
loadApp(name: string, startUrl?: string): void;
|
|
53
51
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
52
|
+
/**
|
|
53
|
+
* User authorization notice
|
|
54
|
+
* @param authorized Authorized or not
|
|
55
|
+
*/
|
|
56
|
+
userAuthorization(authorized: boolean): void;
|
|
59
57
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
58
|
+
/**
|
|
59
|
+
* On update callback
|
|
60
|
+
* @param func Callback function
|
|
61
|
+
*/
|
|
62
|
+
onUpdate(func: (app: string, version: string) => void): void;
|
|
65
63
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
64
|
+
/**
|
|
65
|
+
* Set window title
|
|
66
|
+
* @param title Title
|
|
67
|
+
*/
|
|
68
|
+
setTitle(title: string): void;
|
|
71
69
|
}
|
|
@@ -2,33 +2,33 @@
|
|
|
2
2
|
* API service enum
|
|
3
3
|
*/
|
|
4
4
|
export enum ApiService {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
5
|
+
/**
|
|
6
|
+
* SMTP
|
|
7
|
+
* 邮件发送
|
|
8
|
+
*/
|
|
9
|
+
SMTP = 1,
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
11
|
+
/**
|
|
12
|
+
* SMTP delegation
|
|
13
|
+
* 邮件发送代理
|
|
14
|
+
*/
|
|
15
|
+
SMTPDelegation = 2,
|
|
16
16
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
17
|
+
/**
|
|
18
|
+
* SMS
|
|
19
|
+
* 短信发送
|
|
20
|
+
*/
|
|
21
|
+
SMS = 3,
|
|
22
22
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
23
|
+
/**
|
|
24
|
+
* Wechat service account
|
|
25
|
+
* 微信服务号
|
|
26
|
+
*/
|
|
27
|
+
Wechat = 4,
|
|
28
28
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
29
|
+
/**
|
|
30
|
+
* Business Wechat
|
|
31
|
+
* 企业微信
|
|
32
|
+
*/
|
|
33
|
+
WechatBusiness = 5
|
|
34
34
|
}
|
|
@@ -2,25 +2,25 @@
|
|
|
2
2
|
* Business tax interface
|
|
3
3
|
*/
|
|
4
4
|
export interface IBusinessTax {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
/**
|
|
6
|
+
* Id
|
|
7
|
+
*/
|
|
8
|
+
readonly id: string;
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
/**
|
|
11
|
+
* Name
|
|
12
|
+
*/
|
|
13
|
+
readonly name: string;
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
15
|
+
/**
|
|
16
|
+
* Mask
|
|
17
|
+
*/
|
|
18
|
+
readonly mask: string;
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
20
|
+
/**
|
|
21
|
+
* Get label key
|
|
22
|
+
*/
|
|
23
|
+
readonly labelKey: string;
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
/**
|
|
@@ -28,59 +28,59 @@ export interface IBusinessTax {
|
|
|
28
28
|
* https://imask.js.org/
|
|
29
29
|
*/
|
|
30
30
|
export class BusinessTax implements IBusinessTax {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
31
|
+
/**
|
|
32
|
+
* CN
|
|
33
|
+
* Unified Social Credit Code (USCC) / 统一信用代码
|
|
34
|
+
* https://zh.wikisource.org/wiki/GB_32100-2015_%E6%B3%95%E4%BA%BA%E5%92%8C%E5%85%B6%E4%BB%96%E7%BB%84%E7%BB%87%E7%BB%9F%E4%B8%80%E7%A4%BE%E4%BC%9A%E4%BF%A1%E7%94%A8%E4%BB%A3%E7%A0%81%E7%BC%96%E7%A0%81%E8%A7%84%E5%88%99
|
|
35
|
+
*/
|
|
36
|
+
static CN = new BusinessTax("CN", "USCC", "*0-000000-**********");
|
|
37
37
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
38
|
+
/**
|
|
39
|
+
* NZ, Inland Revenue (IRD)
|
|
40
|
+
*/
|
|
41
|
+
static NZ = new BusinessTax("NZ", "IRD", "00[0]-000-000");
|
|
42
42
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
43
|
+
/**
|
|
44
|
+
* US, Employer Identification Number (EIN)
|
|
45
|
+
*/
|
|
46
|
+
static US = new BusinessTax("US", "EIN", "00-0000000");
|
|
47
47
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
48
|
+
/**
|
|
49
|
+
* CA, tax ID number (Business Number, BN)
|
|
50
|
+
*/
|
|
51
|
+
static CA = new BusinessTax("CA", "BN", "000000000");
|
|
52
52
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
53
|
+
/**
|
|
54
|
+
* HK, Business Registration Number (BRN)
|
|
55
|
+
*/
|
|
56
|
+
static HK = new BusinessTax("HK", "BRN", "00000000");
|
|
57
57
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
58
|
+
/**
|
|
59
|
+
* All countries and regions
|
|
60
|
+
*/
|
|
61
|
+
static all = [
|
|
62
|
+
BusinessTax.CN,
|
|
63
|
+
BusinessTax.NZ,
|
|
64
|
+
BusinessTax.US,
|
|
65
|
+
BusinessTax.CA,
|
|
66
|
+
BusinessTax.HK
|
|
67
|
+
];
|
|
68
68
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
69
|
+
/**
|
|
70
|
+
* Get country or region by id
|
|
71
|
+
* @param id Country id
|
|
72
|
+
*/
|
|
73
|
+
static getById(id: string) {
|
|
74
|
+
return BusinessTax.all.find((c) => c.id === id);
|
|
75
|
+
}
|
|
76
76
|
|
|
77
|
-
|
|
78
|
-
|
|
77
|
+
// Typescript constructor shorthand
|
|
78
|
+
constructor(public id: string, public name: string, public mask: string) {}
|
|
79
79
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
80
|
+
/**
|
|
81
|
+
* Get label key
|
|
82
|
+
*/
|
|
83
|
+
get labelKey() {
|
|
84
|
+
return "tax" + this.id + this.name;
|
|
85
|
+
}
|
|
86
86
|
}
|