zcw-shared 1.20.0 → 1.21.0
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/functions/array-object/deepClone.d.ts +12 -0
- package/dist/functions/array-object/deepClone.js +131 -0
- package/dist/functions/array-object/deepClone.js.map +1 -0
- package/dist/functions/array-object/flatten.d.ts +7 -0
- package/dist/functions/array-object/flatten.js +60 -0
- package/dist/functions/array-object/flatten.js.map +1 -0
- package/dist/functions/array-object/unique.d.ts +10 -0
- package/dist/functions/array-object/unique.js +85 -0
- package/dist/functions/array-object/unique.js.map +1 -0
- package/dist/functions/data-structures/Heap.d.ts +11 -0
- package/dist/functions/data-structures/Heap.js +91 -0
- package/dist/functions/data-structures/Heap.js.map +1 -0
- package/dist/functions/data-structures/LinkedList.d.ts +18 -0
- package/dist/functions/data-structures/LinkedList.js +135 -0
- package/dist/functions/data-structures/LinkedList.js.map +1 -0
- package/dist/functions/data-structures/PriorityQueue.d.ts +14 -0
- package/dist/functions/data-structures/PriorityQueue.js +77 -0
- package/dist/functions/data-structures/PriorityQueue.js.map +1 -0
- package/dist/functions/data-structures/Queue.d.ts +10 -0
- package/dist/functions/data-structures/Queue.js +27 -0
- package/dist/functions/data-structures/Queue.js.map +1 -0
- package/dist/functions/data-structures/Stack.d.ts +10 -0
- package/dist/functions/data-structures/Stack.js +27 -0
- package/dist/functions/data-structures/Stack.js.map +1 -0
- package/dist/functions/design-tokens/buildTokens.d.ts +76 -0
- package/dist/functions/design-tokens/buildTokens.js +183 -0
- package/dist/functions/design-tokens/buildTokens.js.map +1 -0
- package/dist/functions/design-tokens/generateVariables.d.ts +7 -0
- package/dist/functions/design-tokens/generateVariables.js +135 -0
- package/dist/functions/design-tokens/generateVariables.js.map +1 -0
- package/dist/functions/design-tokens/mixColors.d.ts +1 -0
- package/dist/functions/design-tokens/mixColors.js +38 -0
- package/dist/functions/design-tokens/mixColors.js.map +1 -0
- package/dist/functions/design-tokens/parseDesignTokens.d.ts +10 -0
- package/dist/functions/design-tokens/parseDesignTokens.js +216 -0
- package/dist/functions/design-tokens/parseDesignTokens.js.map +1 -0
- package/dist/functions/functional/compose.d.ts +1 -0
- package/dist/functions/functional/compose.js +10 -0
- package/dist/functions/functional/compose.js.map +1 -0
- package/dist/functions/functional/curry.d.ts +1 -0
- package/dist/functions/functional/curry.js +13 -0
- package/dist/functions/functional/curry.js.map +1 -0
- package/dist/functions/functional/pipe.d.ts +1 -0
- package/dist/functions/functional/pipe.js +10 -0
- package/dist/functions/functional/pipe.js.map +1 -0
- package/dist/functions/performance/debounce.d.ts +5 -0
- package/dist/functions/performance/debounce.js +12 -0
- package/dist/functions/performance/debounce.js.map +1 -0
- package/dist/functions/performance/memoize.d.ts +1 -0
- package/dist/functions/performance/memoize.js +13 -0
- package/dist/functions/performance/memoize.js.map +1 -0
- package/dist/functions/performance/throttle.d.ts +1 -0
- package/dist/functions/performance/throttle.js +11 -0
- package/dist/functions/performance/throttle.js.map +1 -0
- package/dist/functions/platform/tencent-cloud/deploy.tcb.d.ts +13 -0
- package/dist/functions/platform/tencent-cloud/deploy.tcb.js +46 -0
- package/dist/functions/platform/tencent-cloud/deploy.tcb.js.map +1 -0
- package/dist/functions/platform/tencent-cloud/getSecret.d.ts +4 -0
- package/dist/functions/platform/tencent-cloud/getSecret.js +19 -0
- package/dist/functions/platform/tencent-cloud/getSecret.js.map +1 -0
- package/dist/functions/platform/uniapp/app-plus/buildAndroidApp.d.ts +27 -0
- package/dist/functions/platform/uniapp/app-plus/buildAndroidApp.js +287 -0
- package/dist/functions/platform/uniapp/app-plus/buildAndroidApp.js.map +1 -0
- package/dist/functions/platform/uniapp/build.d.ts +21 -0
- package/dist/functions/platform/uniapp/build.js +83 -0
- package/dist/functions/platform/uniapp/build.js.map +1 -0
- package/dist/functions/platform/uniapp/detectAndroidProjectStructure.d.ts +11 -0
- package/dist/functions/platform/uniapp/detectAndroidProjectStructure.js +30 -0
- package/dist/functions/platform/uniapp/detectAndroidProjectStructure.js.map +1 -0
- package/dist/functions/platform/uniapp/detectProjectType.d.ts +20 -0
- package/dist/functions/platform/uniapp/detectProjectType.js +68 -0
- package/dist/functions/platform/uniapp/detectProjectType.js.map +1 -0
- package/dist/functions/platform/uniapp/parseManifest.d.ts +18 -0
- package/dist/functions/platform/uniapp/parseManifest.js +49 -0
- package/dist/functions/platform/uniapp/parseManifest.js.map +1 -0
- package/dist/functions/platform/uniapp/waitForPages.d.ts +7 -0
- package/dist/functions/platform/uniapp/waitForPages.js +20 -0
- package/dist/functions/platform/uniapp/waitForPages.js.map +1 -0
- package/dist/functions/principles/functionBind.d.ts +4 -0
- package/dist/functions/principles/functionBind.js +33 -0
- package/dist/functions/principles/functionBind.js.map +1 -0
- package/dist/functions/principles/myInstanceof.d.ts +5 -0
- package/dist/functions/principles/myInstanceof.js +56 -0
- package/dist/functions/principles/myInstanceof.js.map +1 -0
- package/dist/functions/principles/myNew.d.ts +3 -0
- package/dist/functions/principles/myNew.js +19 -0
- package/dist/functions/principles/myNew.js.map +1 -0
- package/dist/functions/utils/createI18n.d.ts +2 -0
- package/dist/functions/utils/createI18n.js +97 -0
- package/dist/functions/utils/createI18n.js.map +1 -0
- package/dist/functions/utils/createReactive.d.ts +10 -0
- package/dist/functions/utils/createReactive.js +50 -0
- package/dist/functions/utils/createReactive.js.map +1 -0
- package/dist/functions/utils/diff.d.ts +25 -0
- package/dist/functions/utils/diff.js +316 -0
- package/dist/functions/utils/diff.js.map +1 -0
- package/dist/functions/utils/formatString.d.ts +5 -0
- package/dist/functions/utils/formatString.js +9 -0
- package/dist/functions/utils/formatString.js.map +1 -0
- package/dist/functions/utils/i18n.d.ts +27 -0
- package/dist/functions/utils/i18n.js +119 -0
- package/dist/functions/utils/i18n.js.map +1 -0
- package/dist/functions/utils/permission.d.ts +40 -0
- package/dist/functions/utils/permission.js +189 -0
- package/dist/functions/utils/permission.js.map +1 -0
- package/dist/functions/utils/pinia.d.ts +52 -0
- package/dist/functions/utils/pinia.js +183 -0
- package/dist/functions/utils/pinia.js.map +1 -0
- package/dist/hooks/usePermission.d.ts +7 -0
- package/dist/hooks/usePermission.js +123 -0
- package/dist/hooks/usePermission.js.map +1 -0
- package/package.json +12 -2
- package/references/xlsx.d.ts +51 -0
- package/types/reactive.d.ts +67 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export function waitForPages(deps, timeout = 5000) {
|
|
2
|
+
return new Promise((resolve, reject) => {
|
|
3
|
+
const startTime = Date.now();
|
|
4
|
+
const checkPages = () => {
|
|
5
|
+
const pages = deps.getCurrentPages();
|
|
6
|
+
if (pages.length > 0) {
|
|
7
|
+
resolve(pages);
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
if (Date.now() - startTime > timeout) {
|
|
11
|
+
reject(new Error('等待页面栈超时'));
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
deps.setTimeout(checkPages, 100);
|
|
15
|
+
};
|
|
16
|
+
checkPages();
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
;
|
|
20
|
+
//# sourceMappingURL=waitForPages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"waitForPages.js","sourceRoot":"","sources":["../../../../src/functions/platform/uniapp/waitForPages.ts"],"names":[],"mappings":"AAwBA,MAAM,UAAU,YAAY,CAAC,IAAsB,EAAE,OAAO,GAAG,IAAI;IACjE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,MAAM,UAAU,GAAG,GAAG,EAAE;YACtB,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;YAErC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrB,OAAO,CAAC,KAAK,CAAC,CAAC;gBACf,OAAO;YACT,CAAC;YAGD,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,OAAO,EAAE,CAAC;gBACrC,MAAM,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;gBAC7B,OAAO;YACT,CAAC;YAGD,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QACnC,CAAC,CAAC;QAEF,UAAU,EAAE,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC;AAAA,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare function myBind<T extends (...args: any[]) => any>(func: T, thisArg: any, ...args: any[]): T;
|
|
2
|
+
export declare function myCall<T extends (...args: any[]) => any>(func: T, thisArg: any, ...args: Parameters<T>): ReturnType<T>;
|
|
3
|
+
export declare function myApply<T extends (...args: any[]) => any>(func: T, thisArg: any, args?: Parameters<T>): ReturnType<T>;
|
|
4
|
+
export declare function myBindSimple<T extends (...args: any[]) => any>(func: T, thisArg: any, ...args: any[]): T;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export function myBind(func, thisArg, ...args) {
|
|
2
|
+
const self = func;
|
|
3
|
+
const bound = function (...innerArgs) {
|
|
4
|
+
const context = this instanceof bound ? this : thisArg;
|
|
5
|
+
return self.apply(context, args.concat(innerArgs));
|
|
6
|
+
};
|
|
7
|
+
if (func.prototype) {
|
|
8
|
+
bound.prototype = Object.create(func.prototype);
|
|
9
|
+
}
|
|
10
|
+
return bound;
|
|
11
|
+
}
|
|
12
|
+
export function myCall(func, thisArg, ...args) {
|
|
13
|
+
const context = Object(thisArg);
|
|
14
|
+
const uniqueKey = Symbol('fn');
|
|
15
|
+
context[uniqueKey] = func;
|
|
16
|
+
const result = context[uniqueKey](...args);
|
|
17
|
+
delete context[uniqueKey];
|
|
18
|
+
return result;
|
|
19
|
+
}
|
|
20
|
+
export function myApply(func, thisArg, args) {
|
|
21
|
+
const context = Object(thisArg);
|
|
22
|
+
const uniqueKey = Symbol('fn');
|
|
23
|
+
context[uniqueKey] = func;
|
|
24
|
+
const result = args ? context[uniqueKey](...args) : context[uniqueKey]();
|
|
25
|
+
delete context[uniqueKey];
|
|
26
|
+
return result;
|
|
27
|
+
}
|
|
28
|
+
export function myBindSimple(func, thisArg, ...args) {
|
|
29
|
+
return function (...innerArgs) {
|
|
30
|
+
return func.apply(thisArg, args.concat(innerArgs));
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=functionBind.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"functionBind.js","sourceRoot":"","sources":["../../../src/functions/principles/functionBind.ts"],"names":[],"mappings":"AAwBA,MAAM,UAAU,MAAM,CACpB,IAAO,EACP,OAAY,EACZ,GAAG,IAAW;IAGd,MAAM,IAAI,GAAG,IAAI,CAAA;IAGjB,MAAM,KAAK,GAAG,UAAqB,GAAG,SAAgB;QAGpD,MAAM,OAAO,GAAG,IAAI,YAAY,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAA;QAGtD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAA;IACpD,CAAC,CAAA;IAGD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACjD,CAAC;IAED,OAAO,KAAU,CAAA;AACnB,CAAC;AA+BD,MAAM,UAAU,MAAM,CACpB,IAAO,EACP,OAAY,EACZ,GAAG,IAAmB;IAItB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;IAG/B,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;IAG9B,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI,CAAA;IAGzB,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA;IAG1C,OAAO,OAAO,CAAC,SAAS,CAAC,CAAA;IAEzB,OAAO,MAAM,CAAA;AACf,CAAC;AAwBD,MAAM,UAAU,OAAO,CACrB,IAAO,EACP,OAAY,EACZ,IAAoB;IAGpB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;IAG/B,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;IAG9B,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI,CAAA;IAGzB,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAA;IAGxE,OAAO,OAAO,CAAC,SAAS,CAAC,CAAA;IAEzB,OAAO,MAAM,CAAA;AACf,CAAC;AAKD,MAAM,UAAU,YAAY,CAC1B,IAAO,EACP,OAAY,EACZ,GAAG,IAAW;IAEd,OAAO,UAAqB,GAAG,SAAgB;QAC7C,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAA;IACpD,CAAM,CAAA;AACR,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare function myInstanceof(obj: any, constructor: any): boolean;
|
|
2
|
+
export declare function myInstanceofLegacy(obj: any, constructor: any): boolean;
|
|
3
|
+
export declare function myInstanceofSymbol(obj: any, constructor: any): boolean;
|
|
4
|
+
export declare function getPrototypeChain(obj: any): any[];
|
|
5
|
+
export declare function isDirectInstanceof(obj: any, constructor: any): boolean;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
export function myInstanceof(obj, constructor) {
|
|
2
|
+
if (obj === null || obj === undefined) {
|
|
3
|
+
return false;
|
|
4
|
+
}
|
|
5
|
+
if (typeof constructor !== 'function') {
|
|
6
|
+
throw new TypeError('Right-hand side of instanceof is not callable');
|
|
7
|
+
}
|
|
8
|
+
const prototype = constructor.prototype;
|
|
9
|
+
let proto = Object.getPrototypeOf(obj);
|
|
10
|
+
while (proto !== null) {
|
|
11
|
+
if (proto === prototype) {
|
|
12
|
+
return true;
|
|
13
|
+
}
|
|
14
|
+
proto = Object.getPrototypeOf(proto);
|
|
15
|
+
}
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
export function myInstanceofLegacy(obj, constructor) {
|
|
19
|
+
if (obj === null || obj === undefined) {
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
22
|
+
if (typeof constructor !== 'function') {
|
|
23
|
+
throw new TypeError('Right-hand side of instanceof is not callable');
|
|
24
|
+
}
|
|
25
|
+
const prototype = constructor.prototype;
|
|
26
|
+
let proto = obj.__proto__;
|
|
27
|
+
while (proto) {
|
|
28
|
+
if (proto === prototype) {
|
|
29
|
+
return true;
|
|
30
|
+
}
|
|
31
|
+
proto = proto.__proto__;
|
|
32
|
+
}
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
export function myInstanceofSymbol(obj, constructor) {
|
|
36
|
+
if (constructor[Symbol.hasInstance]) {
|
|
37
|
+
return constructor[Symbol.hasInstance](obj);
|
|
38
|
+
}
|
|
39
|
+
return myInstanceof(obj, constructor);
|
|
40
|
+
}
|
|
41
|
+
export function getPrototypeChain(obj) {
|
|
42
|
+
const chain = [];
|
|
43
|
+
let proto = Object.getPrototypeOf(obj);
|
|
44
|
+
while (proto !== null) {
|
|
45
|
+
chain.push(proto);
|
|
46
|
+
proto = Object.getPrototypeOf(proto);
|
|
47
|
+
}
|
|
48
|
+
return chain;
|
|
49
|
+
}
|
|
50
|
+
export function isDirectInstanceof(obj, constructor) {
|
|
51
|
+
if (obj === null || obj === undefined) {
|
|
52
|
+
return false;
|
|
53
|
+
}
|
|
54
|
+
return Object.getPrototypeOf(obj) === constructor.prototype;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=myInstanceof.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"myInstanceof.js","sourceRoot":"","sources":["../../../src/functions/principles/myInstanceof.ts"],"names":[],"mappings":"AA0BA,MAAM,UAAU,YAAY,CAAC,GAAQ,EAAE,WAAgB;IAErD,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtC,OAAO,KAAK,CAAA;IACd,CAAC;IAGD,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE,CAAC;QACtC,MAAM,IAAI,SAAS,CAAC,+CAA+C,CAAC,CAAA;IACtE,CAAC;IAGD,MAAM,SAAS,GAAG,WAAW,CAAC,SAAS,CAAA;IAGvC,IAAI,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAA;IAGtC,OAAO,KAAK,KAAK,IAAI,EAAE,CAAC;QACtB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,IAAI,CAAA;QACb,CAAC;QACD,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;IACtC,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC;AAKD,MAAM,UAAU,kBAAkB,CAAC,GAAQ,EAAE,WAAgB;IAC3D,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtC,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE,CAAC;QACtC,MAAM,IAAI,SAAS,CAAC,+CAA+C,CAAC,CAAA;IACtE,CAAC;IAED,MAAM,SAAS,GAAG,WAAW,CAAC,SAAS,CAAA;IACvC,IAAI,KAAK,GAAI,GAAW,CAAC,SAAS,CAAA;IAElC,OAAO,KAAK,EAAE,CAAC;QACb,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,IAAI,CAAA;QACb,CAAC;QACD,KAAK,GAAG,KAAK,CAAC,SAAS,CAAA;IACzB,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC;AAKD,MAAM,UAAU,kBAAkB,CAAC,GAAQ,EAAE,WAAgB;IAE3D,IAAI,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;QACpC,OAAO,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAA;IAC7C,CAAC;IAGD,OAAO,YAAY,CAAC,GAAG,EAAE,WAAW,CAAC,CAAA;AACvC,CAAC;AAKD,MAAM,UAAU,iBAAiB,CAAC,GAAQ;IACxC,MAAM,KAAK,GAAU,EAAE,CAAA;IACvB,IAAI,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAA;IAEtC,OAAO,KAAK,KAAK,IAAI,EAAE,CAAC;QACtB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACjB,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;IACtC,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC;AAKD,MAAM,UAAU,kBAAkB,CAAC,GAAQ,EAAE,WAAgB;IAC3D,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtC,OAAO,KAAK,CAAA;IACd,CAAC;IAED,OAAO,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,WAAW,CAAC,SAAS,CAAA;AAC7D,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export declare function myNew<T>(constructor: new (...args: any[]) => T, ...args: any[]): T;
|
|
2
|
+
export declare function myNewDetailed<T>(constructor: new (...args: any[]) => T, ...args: any[]): T;
|
|
3
|
+
export declare function myNewReflect<T>(constructor: new (...args: any[]) => T, ...args: any[]): T;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export function myNew(constructor, ...args) {
|
|
2
|
+
const obj = Object.create(constructor.prototype);
|
|
3
|
+
const result = constructor.apply(obj, args);
|
|
4
|
+
return (result !== null && typeof result === 'object') ? result : obj;
|
|
5
|
+
}
|
|
6
|
+
export function myNewDetailed(constructor, ...args) {
|
|
7
|
+
const obj = {};
|
|
8
|
+
Object.setPrototypeOf(obj, constructor.prototype);
|
|
9
|
+
const result = constructor.apply(obj, args);
|
|
10
|
+
const isObject = result !== null && typeof result === 'object';
|
|
11
|
+
const isFunction = typeof result === 'function';
|
|
12
|
+
return (isObject || isFunction) ? result : obj;
|
|
13
|
+
}
|
|
14
|
+
export function myNewReflect(constructor, ...args) {
|
|
15
|
+
const obj = Object.create(constructor.prototype);
|
|
16
|
+
const result = Reflect.apply(constructor, obj, args);
|
|
17
|
+
return (result !== null && typeof result === 'object') ? result : obj;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=myNew.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"myNew.js","sourceRoot":"","sources":["../../../src/functions/principles/myNew.ts"],"names":[],"mappings":"AA6BA,MAAM,UAAU,KAAK,CACnB,WAAsC,EACtC,GAAG,IAAW;IAGd,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAA;IAGhD,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IAG3C,OAAO,CAAC,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAA;AACvE,CAAC;AAKD,MAAM,UAAU,aAAa,CAC3B,WAAsC,EACtC,GAAG,IAAW;IAGd,MAAM,GAAG,GAAQ,EAAE,CAAA;IAInB,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,WAAW,CAAC,SAAS,CAAC,CAAA;IAKjD,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IAK3C,MAAM,QAAQ,GAAG,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,CAAA;IAC9D,MAAM,UAAU,GAAG,OAAO,MAAM,KAAK,UAAU,CAAA;IAE/C,OAAO,CAAC,QAAQ,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAA;AAChD,CAAC;AAKD,MAAM,UAAU,YAAY,CAC1B,WAAsC,EACtC,GAAG,IAAW;IAEd,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAA;IAChD,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;IACpD,OAAO,CAAC,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAA;AACvE,CAAC"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { createReactive } from './createReactive';
|
|
2
|
+
export const createI18n = (initialState, deps) => {
|
|
3
|
+
const reactiveI18n = createReactive(initialState, {
|
|
4
|
+
subscribers: new Set(),
|
|
5
|
+
notify: () => {
|
|
6
|
+
},
|
|
7
|
+
subscribe: (listener) => {
|
|
8
|
+
reactiveI18n.subscribers.add(listener);
|
|
9
|
+
return () => reactiveI18n.subscribers.delete(listener);
|
|
10
|
+
},
|
|
11
|
+
dispose: () => reactiveI18n.subscribers.clear(),
|
|
12
|
+
createProxy: (target, deps) => new Proxy(target, {
|
|
13
|
+
get(target, property) {
|
|
14
|
+
if (property === 'subscribe' || property === 'notify' ||
|
|
15
|
+
property === 'dispose' || property === 'subscribers') {
|
|
16
|
+
return deps[property];
|
|
17
|
+
}
|
|
18
|
+
return target[property];
|
|
19
|
+
},
|
|
20
|
+
set(target, property, value) {
|
|
21
|
+
if (property === 'currentLang') {
|
|
22
|
+
const newLang = String(value);
|
|
23
|
+
if (newLang !== target.currentLang) {
|
|
24
|
+
;
|
|
25
|
+
target[property] = newLang;
|
|
26
|
+
deps.notify();
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
return true;
|
|
30
|
+
}
|
|
31
|
+
;
|
|
32
|
+
target[property] = value;
|
|
33
|
+
deps.notify();
|
|
34
|
+
return true;
|
|
35
|
+
}
|
|
36
|
+
}),
|
|
37
|
+
getChangePath: (target, property) => [String(property)]
|
|
38
|
+
});
|
|
39
|
+
const t = (key, params) => {
|
|
40
|
+
const { currentLang, messages, fallbackLang } = reactiveI18n;
|
|
41
|
+
let message = messages[currentLang]?.[key];
|
|
42
|
+
if (!message && fallbackLang) {
|
|
43
|
+
message = messages[fallbackLang]?.[key];
|
|
44
|
+
}
|
|
45
|
+
if (!message) {
|
|
46
|
+
message = key;
|
|
47
|
+
}
|
|
48
|
+
if (params && Object.keys(params).length > 0) {
|
|
49
|
+
message = deps.format(message, params);
|
|
50
|
+
}
|
|
51
|
+
return message;
|
|
52
|
+
};
|
|
53
|
+
const addMessages = (lang, messages) => {
|
|
54
|
+
if (!reactiveI18n.messages[lang]) {
|
|
55
|
+
;
|
|
56
|
+
reactiveI18n.messages[lang] = {};
|
|
57
|
+
}
|
|
58
|
+
Object.assign(reactiveI18n.messages[lang], messages);
|
|
59
|
+
};
|
|
60
|
+
const removeMessages = (lang) => {
|
|
61
|
+
if (reactiveI18n.messages[lang]) {
|
|
62
|
+
delete reactiveI18n.messages[lang];
|
|
63
|
+
if (reactiveI18n.currentLang === lang) {
|
|
64
|
+
const fallbackLang = reactiveI18n.fallbackLang;
|
|
65
|
+
if (fallbackLang && reactiveI18n.messages[fallbackLang]) {
|
|
66
|
+
reactiveI18n.currentLang = fallbackLang;
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
const availableLangs = Object.keys(reactiveI18n.messages);
|
|
70
|
+
if (availableLangs.length > 0) {
|
|
71
|
+
reactiveI18n.currentLang = availableLangs[0];
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
const setLang = (lang) => {
|
|
78
|
+
if (reactiveI18n.messages[lang]) {
|
|
79
|
+
reactiveI18n.currentLang = lang;
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
deps.console?.warn(`Language "${lang}" is not available. Available languages:`, Object.keys(reactiveI18n.messages));
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
const getSupportedLangs = () => {
|
|
86
|
+
return Object.keys(reactiveI18n.messages);
|
|
87
|
+
};
|
|
88
|
+
Object.assign(reactiveI18n, {
|
|
89
|
+
t,
|
|
90
|
+
addMessages,
|
|
91
|
+
removeMessages,
|
|
92
|
+
setLang,
|
|
93
|
+
getSupportedLangs
|
|
94
|
+
});
|
|
95
|
+
return reactiveI18n;
|
|
96
|
+
};
|
|
97
|
+
//# sourceMappingURL=createI18n.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createI18n.js","sourceRoot":"","sources":["../../../src/functions/utils/createI18n.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { CreateReactive, ReactiveDeps } from '../../../types/reactive';
|
|
2
|
+
export interface CreateReactiveDeps {
|
|
3
|
+
subscribers: Set<(...args: any[]) => void>;
|
|
4
|
+
notify: () => void;
|
|
5
|
+
subscribe: (listener: () => void) => () => void;
|
|
6
|
+
dispose: () => void;
|
|
7
|
+
createProxy: <T extends Record<string, any>>(target: T, deps: ReactiveDeps) => T;
|
|
8
|
+
getChangePath: (target: any, property: string | symbol) => string[];
|
|
9
|
+
}
|
|
10
|
+
export declare const createReactive: CreateReactive;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
export const createReactive = (target, deps) => {
|
|
2
|
+
const subscribers = new Set();
|
|
3
|
+
const notify = () => {
|
|
4
|
+
subscribers.forEach(listener => listener());
|
|
5
|
+
};
|
|
6
|
+
const subscribe = (listener) => {
|
|
7
|
+
subscribers.add(listener);
|
|
8
|
+
return () => subscribers.delete(listener);
|
|
9
|
+
};
|
|
10
|
+
const dispose = () => {
|
|
11
|
+
subscribers.clear();
|
|
12
|
+
};
|
|
13
|
+
const getChangePath = (target, property) => {
|
|
14
|
+
return [String(property)];
|
|
15
|
+
};
|
|
16
|
+
const createProxy = (target, deps) => {
|
|
17
|
+
return new Proxy(target, {
|
|
18
|
+
get(target, property) {
|
|
19
|
+
if (property === 'subscribe' || property === 'notify' || property === 'dispose' || property === 'subscribers') {
|
|
20
|
+
return deps[property];
|
|
21
|
+
}
|
|
22
|
+
return target[property];
|
|
23
|
+
},
|
|
24
|
+
set(target, property, value) {
|
|
25
|
+
const oldValue = target[property];
|
|
26
|
+
target[property] = value;
|
|
27
|
+
deps.notify();
|
|
28
|
+
return true;
|
|
29
|
+
},
|
|
30
|
+
deleteProperty(target, property) {
|
|
31
|
+
if (property in target) {
|
|
32
|
+
delete target[property];
|
|
33
|
+
deps.notify();
|
|
34
|
+
return true;
|
|
35
|
+
}
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
};
|
|
40
|
+
const reactiveDeps = {
|
|
41
|
+
subscribers,
|
|
42
|
+
notify,
|
|
43
|
+
subscribe,
|
|
44
|
+
dispose,
|
|
45
|
+
getChangePath,
|
|
46
|
+
createProxy
|
|
47
|
+
};
|
|
48
|
+
return createProxy(target, reactiveDeps);
|
|
49
|
+
};
|
|
50
|
+
//# sourceMappingURL=createReactive.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createReactive.js","sourceRoot":"","sources":["../../../src/functions/utils/createReactive.ts"],"names":[],"mappings":"AA4EA,MAAM,CAAC,MAAM,cAAc,GAAmB,CAC5C,MAAS,EACT,IAAwB,EACX,EAAE;IAEf,MAAM,WAAW,GAAG,IAAI,GAAG,EAA4B,CAAA;IAGvD,MAAM,MAAM,GAAG,GAAG,EAAE;QAClB,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC7C,CAAC,CAAA;IAGD,MAAM,SAAS,GAAG,CAAC,QAAoB,EAAgB,EAAE;QACvD,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QACzB,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;IAC3C,CAAC,CAAA;IAGD,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,WAAW,CAAC,KAAK,EAAE,CAAA;IACrB,CAAC,CAAA;IAGD,MAAM,aAAa,GAAG,CAAC,MAAW,EAAE,QAAyB,EAAY,EAAE;QACzE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAA;IAC3B,CAAC,CAAA;IAGD,MAAM,WAAW,GAAG,CAClB,MAAS,EACT,IAAkB,EACf,EAAE;QACL,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;YACvB,GAAG,CAAC,MAAM,EAAE,QAAQ;gBAElB,IAAI,QAAQ,KAAK,WAAW,IAAI,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,aAAa,EAAE,CAAC;oBAC9G,OAAO,IAAI,CAAC,QAA8B,CAAC,CAAA;gBAC7C,CAAC;gBACD,OAAO,MAAM,CAAC,QAAmB,CAAC,CAAA;YACpC,CAAC;YACD,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK;gBACzB,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAmB,CAAC,CAC3C;gBAAC,MAAc,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAA;gBAGlC,IAAI,CAAC,MAAM,EAAE,CAAA;gBAEb,OAAO,IAAI,CAAA;YACb,CAAC;YACD,cAAc,CAAC,MAAM,EAAE,QAAQ;gBAC7B,IAAI,QAAQ,IAAI,MAAM,EAAE,CAAC;oBACvB,OAAO,MAAM,CAAC,QAAmB,CAAC,CAAA;oBAClC,IAAI,CAAC,MAAM,EAAE,CAAA;oBACb,OAAO,IAAI,CAAA;gBACb,CAAC;gBACD,OAAO,KAAK,CAAA;YACd,CAAC;SACF,CAAC,CAAA;IACJ,CAAC,CAAA;IAGD,MAAM,YAAY,GAAuB;QACvC,WAAW;QACX,MAAM;QACN,SAAS;QACT,OAAO;QACP,aAAa;QACb,WAAW;KACZ,CAAA;IAGD,OAAO,WAAW,CAAC,MAAM,EAAE,YAAY,CAAgB,CAAA;AACzD,CAAC,CAAA"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export type DiffType = 'added' | 'deleted' | 'modified' | 'unchanged';
|
|
2
|
+
export interface DiffItem {
|
|
3
|
+
path: string;
|
|
4
|
+
type: DiffType;
|
|
5
|
+
oldValue?: any;
|
|
6
|
+
newValue?: any;
|
|
7
|
+
}
|
|
8
|
+
export interface DiffResult {
|
|
9
|
+
hasChanges: boolean;
|
|
10
|
+
changes: DiffItem[];
|
|
11
|
+
added: DiffItem[];
|
|
12
|
+
deleted: DiffItem[];
|
|
13
|
+
modified: DiffItem[];
|
|
14
|
+
unchanged: DiffItem[];
|
|
15
|
+
}
|
|
16
|
+
export interface DiffOptions {
|
|
17
|
+
deep?: boolean;
|
|
18
|
+
ignoreArrayOrder?: boolean;
|
|
19
|
+
includeUnchanged?: boolean;
|
|
20
|
+
maxDepth?: number;
|
|
21
|
+
comparator?: (a: any, b: any) => boolean;
|
|
22
|
+
}
|
|
23
|
+
export declare function diff(oldValue: any, newValue: any, options?: DiffOptions): DiffResult;
|
|
24
|
+
export declare function applyDiff(target: any, changes: DiffItem[]): any;
|
|
25
|
+
export declare function mergeDiff(...results: DiffResult[]): DiffResult;
|