dimorder-orderapp-lib 1.7.21 → 1.7.23
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/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/libs/index.d.ts +2 -0
- package/dist/libs/index.d.ts.map +1 -1
- package/dist/libs/index.js +2 -0
- package/dist/libs/index.js.map +1 -1
- package/dist/libs/locale.d.ts +59 -0
- package/dist/libs/locale.d.ts.map +1 -0
- package/dist/libs/locale.js +137 -0
- package/dist/libs/locale.js.map +1 -0
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -33,6 +33,7 @@ export declare const libs: {
|
|
|
33
33
|
generate: typeof import("./libs/shortCode").generate;
|
|
34
34
|
};
|
|
35
35
|
Logger: typeof import("./libs/Logger").default;
|
|
36
|
+
locale: typeof import("./libs/locale").default;
|
|
36
37
|
};
|
|
37
38
|
export declare const types: {
|
|
38
39
|
auth: import("./types/Auth").default;
|
|
@@ -89,6 +90,7 @@ declare const _default: {
|
|
|
89
90
|
generate: typeof import("./libs/shortCode").generate;
|
|
90
91
|
};
|
|
91
92
|
Logger: typeof import("./libs/Logger").default;
|
|
93
|
+
locale: typeof import("./libs/locale").default;
|
|
92
94
|
};
|
|
93
95
|
types: {
|
|
94
96
|
auth: import("./types/Auth").default;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,GAAG;;;CAAO,CAAA;AACvB,eAAO,MAAM,IAAI
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,GAAG;;;CAAO,CAAA;AACvB,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAQ,CAAA;AACzB,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;CAAS,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAE3B,wBAIC"}
|
package/dist/libs/index.d.ts
CHANGED
|
@@ -22,6 +22,7 @@ import setDeliveryTypeMenuPrice from './setDeliveryTypeMenuPrice';
|
|
|
22
22
|
import getComboList from './getComboList';
|
|
23
23
|
import getItemDataId from './getItemDataId';
|
|
24
24
|
import Logger from './Logger';
|
|
25
|
+
import locale from './locale';
|
|
25
26
|
declare const _default: {
|
|
26
27
|
libConfig: {
|
|
27
28
|
rounding: import("../types/Order").IOrderRounding;
|
|
@@ -53,6 +54,7 @@ declare const _default: {
|
|
|
53
54
|
generate: typeof import("./shortCode").generate;
|
|
54
55
|
};
|
|
55
56
|
Logger: typeof Logger;
|
|
57
|
+
locale: typeof locale;
|
|
56
58
|
};
|
|
57
59
|
export default _default;
|
|
58
60
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/libs/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/libs/index.ts"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,QAAQ,CAAA;AACzB,OAAO,kBAAkB,MAAM,sBAAsB,CAAA;AACrD,OAAO,kBAAkB,MAAM,sBAAsB,CAAA;AACrD,OAAO,sBAAsB,MAAM,0BAA0B,CAAA;AAC7D,OAAO,uBAAuB,MAAM,4BAA4B,CAAA;AAChE,OAAO,YAAY,MAAM,gBAAgB,CAAA;AACzC,OAAO,mBAAmB,MAAM,uBAAuB,CAAA;AACvD,OAAO,uBAAuB,MAAM,2BAA2B,CAAA;AAC/D,OAAO,aAAa,MAAM,iBAAiB,CAAA;AAC3C,OAAO,WAAW,MAAM,eAAe,CAAA;AACvC,OAAO,wBAAwB,MAAM,4BAA4B,CAAA;AACjE,OAAO,+BAA+B,MAAM,mCAAmC,CAAA;AAC/E,OAAO,cAAc,MAAM,kBAAkB,CAAA;AAC7C,OAAO,qBAAqB,MAAM,yBAAyB,CAAA;AAC3D,OAAO,cAAc,MAAM,kBAAkB,CAAA;AAC7C,OAAO,qBAAqB,MAAM,yBAAyB,CAAA;AAC3D,OAAO,qBAAqB,MAAM,yBAAyB,CAAA;AAC3D,OAAO,kBAAkB,MAAM,sBAAsB,CAAA;AACrD,OAAO,YAAY,MAAM,gBAAgB,CAAA;AACzC,OAAO,mBAAmB,MAAM,uBAAuB,CAAA;AACvD,OAAO,wBAAwB,MAAM,4BAA4B,CAAA;AACjE,OAAO,YAAY,MAAM,gBAAgB,CAAA;AACzC,OAAO,aAAa,MAAM,iBAAiB,CAAA;AAE3C,OAAO,MAAM,MAAM,UAAU,CAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/libs/index.ts"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,QAAQ,CAAA;AACzB,OAAO,kBAAkB,MAAM,sBAAsB,CAAA;AACrD,OAAO,kBAAkB,MAAM,sBAAsB,CAAA;AACrD,OAAO,sBAAsB,MAAM,0BAA0B,CAAA;AAC7D,OAAO,uBAAuB,MAAM,4BAA4B,CAAA;AAChE,OAAO,YAAY,MAAM,gBAAgB,CAAA;AACzC,OAAO,mBAAmB,MAAM,uBAAuB,CAAA;AACvD,OAAO,uBAAuB,MAAM,2BAA2B,CAAA;AAC/D,OAAO,aAAa,MAAM,iBAAiB,CAAA;AAC3C,OAAO,WAAW,MAAM,eAAe,CAAA;AACvC,OAAO,wBAAwB,MAAM,4BAA4B,CAAA;AACjE,OAAO,+BAA+B,MAAM,mCAAmC,CAAA;AAC/E,OAAO,cAAc,MAAM,kBAAkB,CAAA;AAC7C,OAAO,qBAAqB,MAAM,yBAAyB,CAAA;AAC3D,OAAO,cAAc,MAAM,kBAAkB,CAAA;AAC7C,OAAO,qBAAqB,MAAM,yBAAyB,CAAA;AAC3D,OAAO,qBAAqB,MAAM,yBAAyB,CAAA;AAC3D,OAAO,kBAAkB,MAAM,sBAAsB,CAAA;AACrD,OAAO,YAAY,MAAM,gBAAgB,CAAA;AACzC,OAAO,mBAAmB,MAAM,uBAAuB,CAAA;AACvD,OAAO,wBAAwB,MAAM,4BAA4B,CAAA;AACjE,OAAO,YAAY,MAAM,gBAAgB,CAAA;AACzC,OAAO,aAAa,MAAM,iBAAiB,CAAA;AAE3C,OAAO,MAAM,MAAM,UAAU,CAAA;AAC7B,OAAO,MAAM,MAAM,UAAU,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAE7B,wBA4BC"}
|
package/dist/libs/index.js
CHANGED
|
@@ -29,6 +29,7 @@ const getComboList_1 = __importDefault(require("./getComboList"));
|
|
|
29
29
|
const getItemDataId_1 = __importDefault(require("./getItemDataId"));
|
|
30
30
|
const shortCode_1 = __importDefault(require("./shortCode"));
|
|
31
31
|
const Logger_1 = __importDefault(require("./Logger"));
|
|
32
|
+
const locale_1 = __importDefault(require("./locale"));
|
|
32
33
|
exports.default = {
|
|
33
34
|
libConfig: libConfig_1.default,
|
|
34
35
|
wait: wait_1.default,
|
|
@@ -56,5 +57,6 @@ exports.default = {
|
|
|
56
57
|
getComboList: getComboList_1.default,
|
|
57
58
|
shortCode: shortCode_1.default,
|
|
58
59
|
Logger: Logger_1.default,
|
|
60
|
+
locale: locale_1.default,
|
|
59
61
|
};
|
|
60
62
|
//# sourceMappingURL=index.js.map
|
package/dist/libs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/libs/index.ts"],"names":[],"mappings":";;;;;AAAA,4DAAmC;AACnC,kDAAyB;AACzB,8EAAqD;AACrD,8EAAqD;AACrD,sFAA6D;AAC7D,0FAAgE;AAChE,kEAAyC;AACzC,gFAAuD;AACvD,wFAA+D;AAC/D,oEAA2C;AAC3C,gEAAuC;AACvC,0FAAiE;AACjE,wGAA+E;AAC/E,sEAA6C;AAC7C,oFAA2D;AAC3D,sEAA6C;AAC7C,oFAA2D;AAC3D,oFAA2D;AAC3D,8EAAqD;AACrD,kEAAyC;AACzC,gFAAuD;AACvD,0FAAiE;AACjE,kEAAyC;AACzC,oEAA2C;AAC3C,4DAAmC;AACnC,sDAA6B;AAE7B,kBAAe;IACb,SAAS,EAAT,mBAAS;IACT,IAAI,EAAJ,cAAI;IACJ,qBAAqB,EAArB,+BAAqB;IACrB,mBAAmB,EAAnB,6BAAmB;IACnB,uBAAuB,EAAvB,iCAAuB;IACvB,kBAAkB,EAAlB,4BAAkB;IAClB,kBAAkB,EAAlB,4BAAkB;IAClB,sBAAsB,EAAtB,gCAAsB;IACtB,uBAAuB,EAAvB,kCAAuB;IACvB,cAAc,EAAd,wBAAc;IACd,YAAY,EAAZ,sBAAY;IACZ,aAAa,EAAb,uBAAa;IACb,wBAAwB,EAAxB,kCAAwB;IACxB,+BAA+B,EAA/B,yCAA+B;IAC/B,qBAAqB,EAArB,+BAAqB;IACrB,aAAa,EAAb,uBAAa;IACb,cAAc,EAAd,wBAAc;IACd,mBAAmB,EAAnB,6BAAmB;IACnB,wBAAwB,EAAxB,kCAAwB;IACxB,qBAAqB,EAArB,+BAAqB;IACrB,kBAAkB,EAAlB,4BAAkB;IAClB,YAAY,EAAZ,sBAAY;IACZ,WAAW,EAAX,qBAAW;IACX,YAAY,EAAZ,sBAAY;IACZ,SAAS,EAAT,mBAAS;IACT,MAAM,EAAN,gBAAM;CACP,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/libs/index.ts"],"names":[],"mappings":";;;;;AAAA,4DAAmC;AACnC,kDAAyB;AACzB,8EAAqD;AACrD,8EAAqD;AACrD,sFAA6D;AAC7D,0FAAgE;AAChE,kEAAyC;AACzC,gFAAuD;AACvD,wFAA+D;AAC/D,oEAA2C;AAC3C,gEAAuC;AACvC,0FAAiE;AACjE,wGAA+E;AAC/E,sEAA6C;AAC7C,oFAA2D;AAC3D,sEAA6C;AAC7C,oFAA2D;AAC3D,oFAA2D;AAC3D,8EAAqD;AACrD,kEAAyC;AACzC,gFAAuD;AACvD,0FAAiE;AACjE,kEAAyC;AACzC,oEAA2C;AAC3C,4DAAmC;AACnC,sDAA6B;AAC7B,sDAA6B;AAE7B,kBAAe;IACb,SAAS,EAAT,mBAAS;IACT,IAAI,EAAJ,cAAI;IACJ,qBAAqB,EAArB,+BAAqB;IACrB,mBAAmB,EAAnB,6BAAmB;IACnB,uBAAuB,EAAvB,iCAAuB;IACvB,kBAAkB,EAAlB,4BAAkB;IAClB,kBAAkB,EAAlB,4BAAkB;IAClB,sBAAsB,EAAtB,gCAAsB;IACtB,uBAAuB,EAAvB,kCAAuB;IACvB,cAAc,EAAd,wBAAc;IACd,YAAY,EAAZ,sBAAY;IACZ,aAAa,EAAb,uBAAa;IACb,wBAAwB,EAAxB,kCAAwB;IACxB,+BAA+B,EAA/B,yCAA+B;IAC/B,qBAAqB,EAArB,+BAAqB;IACrB,aAAa,EAAb,uBAAa;IACb,cAAc,EAAd,wBAAc;IACd,mBAAmB,EAAnB,6BAAmB;IACnB,wBAAwB,EAAxB,kCAAwB;IACxB,qBAAqB,EAArB,+BAAqB;IACrB,kBAAkB,EAAlB,4BAAkB;IAClB,YAAY,EAAZ,sBAAY;IACZ,WAAW,EAAX,qBAAW;IACX,YAAY,EAAZ,sBAAY;IACZ,SAAS,EAAT,mBAAS;IACT,MAAM,EAAN,gBAAM;IACN,MAAM,EAAN,gBAAM;CACP,CAAA"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
export interface PhoneCountry {
|
|
2
|
+
code: string;
|
|
3
|
+
label: string;
|
|
4
|
+
maxLength: number;
|
|
5
|
+
a2: string;
|
|
6
|
+
regex: RegExp;
|
|
7
|
+
}
|
|
8
|
+
export interface LocaleConfig {
|
|
9
|
+
allowedLanguages?: string[];
|
|
10
|
+
defaultLanguage?: string;
|
|
11
|
+
phoneCountries?: PhoneCountry[];
|
|
12
|
+
getCountryFromStore?: () => string | undefined;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Get the country code (A2 format) from navigator language or custom store
|
|
16
|
+
*/
|
|
17
|
+
export declare function getCountryCodeA2(config?: LocaleConfig): string | undefined;
|
|
18
|
+
/**
|
|
19
|
+
* Get the preferred language code based on country
|
|
20
|
+
*/
|
|
21
|
+
export declare function getPreferredLanguageCode(config?: LocaleConfig): string;
|
|
22
|
+
/**
|
|
23
|
+
* Get available phone countries
|
|
24
|
+
*/
|
|
25
|
+
export declare function getPhoneCountries(config?: LocaleConfig): PhoneCountry[];
|
|
26
|
+
/**
|
|
27
|
+
* Get the preferred country based on current location
|
|
28
|
+
*/
|
|
29
|
+
export declare function getPreferredCountry(config?: LocaleConfig): PhoneCountry;
|
|
30
|
+
/**
|
|
31
|
+
* Validate phone number against country regex
|
|
32
|
+
*/
|
|
33
|
+
export declare function validatePhoneNumber(phoneNumber: string, country?: PhoneCountry): boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Format phone number with country code
|
|
36
|
+
*/
|
|
37
|
+
export declare function formatPhoneNumber(phoneNumber: string, country: PhoneCountry): string;
|
|
38
|
+
/**
|
|
39
|
+
* Get country by A2 code
|
|
40
|
+
*/
|
|
41
|
+
export declare function getCountryByA2(a2Code: string, config?: LocaleConfig): PhoneCountry | undefined;
|
|
42
|
+
/**
|
|
43
|
+
* Get country by phone code
|
|
44
|
+
*/
|
|
45
|
+
export declare function getCountryByPhoneCode(phoneCode: string, config?: LocaleConfig): PhoneCountry | undefined;
|
|
46
|
+
/**
|
|
47
|
+
* Create a locale helper with custom configuration
|
|
48
|
+
*/
|
|
49
|
+
export default function createLocaleHelper(config: LocaleConfig): {
|
|
50
|
+
getCountryCodeA2: () => string | undefined;
|
|
51
|
+
getPreferredLanguageCode: () => string;
|
|
52
|
+
getPhoneCountries: () => PhoneCountry[];
|
|
53
|
+
getPreferredCountry: () => PhoneCountry;
|
|
54
|
+
validatePhoneNumber: (phoneNumber: string, country?: PhoneCountry) => boolean;
|
|
55
|
+
formatPhoneNumber: (phoneNumber: string, country: PhoneCountry) => string;
|
|
56
|
+
getCountryByA2: (a2Code: string) => PhoneCountry | undefined;
|
|
57
|
+
getCountryByPhoneCode: (phoneCode: string) => PhoneCountry | undefined;
|
|
58
|
+
};
|
|
59
|
+
//# sourceMappingURL=locale.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"locale.d.ts","sourceRoot":"","sources":["../../src/libs/locale.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,cAAc,CAAC,EAAE,YAAY,EAAE,CAAA;IAC/B,mBAAmB,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAA;CAC/C;AAsBD;;GAEG;AACH,wBAAgB,gBAAgB,CAAE,MAAM,CAAC,EAAE,YAAY,GAAG,MAAM,GAAG,SAAS,CAmB3E;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAE,MAAM,CAAC,EAAE,YAAY,GAAG,MAAM,CAiBvE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAE,MAAM,CAAC,EAAE,YAAY,GAAG,YAAY,EAAE,CAExE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAE,MAAM,CAAC,EAAE,YAAY,GAAG,YAAY,CASxE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAE,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAMzF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,MAAM,CAMrF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,YAAY,GAAG,SAAS,CAG/F;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,YAAY,GAAG,SAAS,CAIzG;AAED;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAE,MAAM,EAAE,YAAY,GAAG;IACjE,gBAAgB,EAAE,MAAM,MAAM,GAAG,SAAS,CAAA;IAC1C,wBAAwB,EAAE,MAAM,MAAM,CAAA;IACtC,iBAAiB,EAAE,MAAM,YAAY,EAAE,CAAA;IACvC,mBAAmB,EAAE,MAAM,YAAY,CAAA;IACvC,mBAAmB,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,KAAK,OAAO,CAAA;IAC7E,iBAAiB,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,KAAK,MAAM,CAAA;IACzE,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,YAAY,GAAG,SAAS,CAAA;IAC5D,qBAAqB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,YAAY,GAAG,SAAS,CAAA;CACvE,CAaA"}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getCountryByPhoneCode = exports.getCountryByA2 = exports.formatPhoneNumber = exports.validatePhoneNumber = exports.getPreferredCountry = exports.getPhoneCountries = exports.getPreferredLanguageCode = exports.getCountryCodeA2 = void 0;
|
|
4
|
+
const DEFAULT_ALLOWED_LANGUAGES = ['zh-HK', 'en-US', 'jp', 'th-TH'];
|
|
5
|
+
const DEFAULT_LANGUAGE = 'zh-HK';
|
|
6
|
+
const DEFAULT_PHONE_COUNTRIES = [
|
|
7
|
+
{
|
|
8
|
+
code: '+852',
|
|
9
|
+
label: '🇭🇰',
|
|
10
|
+
maxLength: 8,
|
|
11
|
+
a2: 'HK',
|
|
12
|
+
regex: /^\+852[569]\d{7}$/,
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
code: '+66',
|
|
16
|
+
label: '🇹🇭',
|
|
17
|
+
maxLength: 9,
|
|
18
|
+
a2: 'TH',
|
|
19
|
+
regex: /^\+660?[689]\d{8}$/,
|
|
20
|
+
},
|
|
21
|
+
];
|
|
22
|
+
/**
|
|
23
|
+
* Get the country code (A2 format) from navigator language or custom store
|
|
24
|
+
*/
|
|
25
|
+
function getCountryCodeA2(config) {
|
|
26
|
+
var _a;
|
|
27
|
+
// First try to get from custom store function if provided
|
|
28
|
+
if ((config === null || config === void 0 ? void 0 : config.getCountryFromStore) != null) {
|
|
29
|
+
const storeCountry = config.getCountryFromStore();
|
|
30
|
+
if (storeCountry != null) {
|
|
31
|
+
return storeCountry;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
// Fallback to navigator language
|
|
35
|
+
if (typeof navigator !== 'undefined') {
|
|
36
|
+
const lang = (_a = navigator.language) !== null && _a !== void 0 ? _a : navigator.userLanguage;
|
|
37
|
+
if (lang != null) {
|
|
38
|
+
const [, country] = lang.split('-');
|
|
39
|
+
return country;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return undefined;
|
|
43
|
+
}
|
|
44
|
+
exports.getCountryCodeA2 = getCountryCodeA2;
|
|
45
|
+
/**
|
|
46
|
+
* Get the preferred language code based on country
|
|
47
|
+
*/
|
|
48
|
+
function getPreferredLanguageCode(config) {
|
|
49
|
+
var _a, _b;
|
|
50
|
+
const allowedLanguages = (_a = config === null || config === void 0 ? void 0 : config.allowedLanguages) !== null && _a !== void 0 ? _a : DEFAULT_ALLOWED_LANGUAGES;
|
|
51
|
+
const defaultLanguage = (_b = config === null || config === void 0 ? void 0 : config.defaultLanguage) !== null && _b !== void 0 ? _b : DEFAULT_LANGUAGE;
|
|
52
|
+
const countryCode = getCountryCodeA2(config);
|
|
53
|
+
if (countryCode == null) {
|
|
54
|
+
return defaultLanguage;
|
|
55
|
+
}
|
|
56
|
+
for (const allowedLang of allowedLanguages) {
|
|
57
|
+
const [, a2] = allowedLang.split('-');
|
|
58
|
+
if ((countryCode !== null && countryCode !== void 0 ? countryCode : '').toLowerCase() === (a2 !== null && a2 !== void 0 ? a2 : '').toLowerCase()) {
|
|
59
|
+
return allowedLang;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return defaultLanguage;
|
|
63
|
+
}
|
|
64
|
+
exports.getPreferredLanguageCode = getPreferredLanguageCode;
|
|
65
|
+
/**
|
|
66
|
+
* Get available phone countries
|
|
67
|
+
*/
|
|
68
|
+
function getPhoneCountries(config) {
|
|
69
|
+
var _a;
|
|
70
|
+
return (_a = config === null || config === void 0 ? void 0 : config.phoneCountries) !== null && _a !== void 0 ? _a : DEFAULT_PHONE_COUNTRIES;
|
|
71
|
+
}
|
|
72
|
+
exports.getPhoneCountries = getPhoneCountries;
|
|
73
|
+
/**
|
|
74
|
+
* Get the preferred country based on current location
|
|
75
|
+
*/
|
|
76
|
+
function getPreferredCountry(config) {
|
|
77
|
+
var _a;
|
|
78
|
+
const countries = getPhoneCountries(config);
|
|
79
|
+
const countryCodeA2 = getCountryCodeA2(config);
|
|
80
|
+
const selectedCountry = (_a = countries.find(c => c.a2 === countryCodeA2)) !== null && _a !== void 0 ? _a : countries[0];
|
|
81
|
+
return selectedCountry;
|
|
82
|
+
}
|
|
83
|
+
exports.getPreferredCountry = getPreferredCountry;
|
|
84
|
+
/**
|
|
85
|
+
* Validate phone number against country regex
|
|
86
|
+
*/
|
|
87
|
+
function validatePhoneNumber(phoneNumber, country) {
|
|
88
|
+
if (country == null) {
|
|
89
|
+
return false;
|
|
90
|
+
}
|
|
91
|
+
return country.regex.test(phoneNumber);
|
|
92
|
+
}
|
|
93
|
+
exports.validatePhoneNumber = validatePhoneNumber;
|
|
94
|
+
/**
|
|
95
|
+
* Format phone number with country code
|
|
96
|
+
*/
|
|
97
|
+
function formatPhoneNumber(phoneNumber, country) {
|
|
98
|
+
// Remove any existing country code or formatting
|
|
99
|
+
const cleanNumber = phoneNumber.replace(/^\+?\d{1,4}/, '').replace(/\D/g, '');
|
|
100
|
+
// Add country code
|
|
101
|
+
return `${country.code}${cleanNumber}`;
|
|
102
|
+
}
|
|
103
|
+
exports.formatPhoneNumber = formatPhoneNumber;
|
|
104
|
+
/**
|
|
105
|
+
* Get country by A2 code
|
|
106
|
+
*/
|
|
107
|
+
function getCountryByA2(a2Code, config) {
|
|
108
|
+
const countries = getPhoneCountries(config);
|
|
109
|
+
return countries.find(country => country.a2.toLowerCase() === a2Code.toLowerCase());
|
|
110
|
+
}
|
|
111
|
+
exports.getCountryByA2 = getCountryByA2;
|
|
112
|
+
/**
|
|
113
|
+
* Get country by phone code
|
|
114
|
+
*/
|
|
115
|
+
function getCountryByPhoneCode(phoneCode, config) {
|
|
116
|
+
const countries = getPhoneCountries(config);
|
|
117
|
+
const normalizedCode = phoneCode.startsWith('+') ? phoneCode : `+${phoneCode}`;
|
|
118
|
+
return countries.find(country => country.code === normalizedCode);
|
|
119
|
+
}
|
|
120
|
+
exports.getCountryByPhoneCode = getCountryByPhoneCode;
|
|
121
|
+
/**
|
|
122
|
+
* Create a locale helper with custom configuration
|
|
123
|
+
*/
|
|
124
|
+
function createLocaleHelper(config) {
|
|
125
|
+
return {
|
|
126
|
+
getCountryCodeA2: () => getCountryCodeA2(config),
|
|
127
|
+
getPreferredLanguageCode: () => getPreferredLanguageCode(config),
|
|
128
|
+
getPhoneCountries: () => getPhoneCountries(config),
|
|
129
|
+
getPreferredCountry: () => getPreferredCountry(config),
|
|
130
|
+
validatePhoneNumber: (phoneNumber, country) => validatePhoneNumber(phoneNumber, country),
|
|
131
|
+
formatPhoneNumber: (phoneNumber, country) => formatPhoneNumber(phoneNumber, country),
|
|
132
|
+
getCountryByA2: (a2Code) => getCountryByA2(a2Code, config),
|
|
133
|
+
getCountryByPhoneCode: (phoneCode) => getCountryByPhoneCode(phoneCode, config),
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
exports.default = createLocaleHelper;
|
|
137
|
+
//# sourceMappingURL=locale.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"locale.js","sourceRoot":"","sources":["../../src/libs/locale.ts"],"names":[],"mappings":"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"}
|