@ibiz-template/core 0.2.6 → 0.2.15
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.esm.js +47 -0
- package/dist/index.system.min.js +1 -1
- package/dist/index.system.min.js.map +1 -1
- package/out/utils/bit-mask/bit-mask.d.ts +46 -0
- package/out/utils/bit-mask/bit-mask.d.ts.map +1 -0
- package/out/utils/bit-mask/bit-mask.js +72 -0
- package/out/utils/index.d.ts +1 -0
- package/out/utils/index.d.ts.map +1 -1
- package/out/utils/index.js +1 -0
- package/out/utils/util/util.d.ts +9 -0
- package/out/utils/util/util.d.ts.map +1 -1
- package/out/utils/util/util.js +26 -0
- package/package.json +4 -5
- package/src/utils/bit-mask/bit-mask.ts +85 -0
- package/src/utils/index.ts +1 -0
- package/src/utils/util/util.ts +25 -0
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 检查权限码是否有效
|
|
3
|
+
* @author lxm
|
|
4
|
+
* @date 2023-11-10 10:49:57
|
|
5
|
+
* @static
|
|
6
|
+
* @param {number} permission
|
|
7
|
+
*/
|
|
8
|
+
declare function validate(permission: number): boolean;
|
|
9
|
+
/**
|
|
10
|
+
* 设置权限
|
|
11
|
+
* @author lxm
|
|
12
|
+
* @date 2023-11-10 10:50:22
|
|
13
|
+
* @static
|
|
14
|
+
* @param {number} [allPermissions=0] 当前所有权限
|
|
15
|
+
* @param {number} permission 要设置的权限
|
|
16
|
+
* @return {*} {number}
|
|
17
|
+
*/
|
|
18
|
+
declare function setPermission(allPermissions: number | undefined, permission: number): number;
|
|
19
|
+
/**
|
|
20
|
+
* 移出权限
|
|
21
|
+
* @author lxm
|
|
22
|
+
* @date 2023-11-10 10:50:45
|
|
23
|
+
* @static
|
|
24
|
+
* @param {number} [allPermissions=0] 当前所有权限
|
|
25
|
+
* @param {number} permission 要移出的权限
|
|
26
|
+
* @return {*} {number}
|
|
27
|
+
*/
|
|
28
|
+
declare function removePermission(allPermissions: number | undefined, permission: number): number;
|
|
29
|
+
/**
|
|
30
|
+
* 检查是否有某个权限
|
|
31
|
+
* @author lxm
|
|
32
|
+
* @date 2023-11-10 10:50:46
|
|
33
|
+
* @static
|
|
34
|
+
* @param {number} [allPermissions=0]
|
|
35
|
+
* @param {number} permission
|
|
36
|
+
* @return {*} {number}
|
|
37
|
+
*/
|
|
38
|
+
declare function checkPermission(allPermissions: number | undefined, permission: number): boolean;
|
|
39
|
+
export declare const BitMask: {
|
|
40
|
+
validate: typeof validate;
|
|
41
|
+
setPermission: typeof setPermission;
|
|
42
|
+
removePermission: typeof removePermission;
|
|
43
|
+
checkPermission: typeof checkPermission;
|
|
44
|
+
};
|
|
45
|
+
export {};
|
|
46
|
+
//# sourceMappingURL=bit-mask.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bit-mask.d.ts","sourceRoot":"","sources":["../../../src/utils/bit-mask/bit-mask.ts"],"names":[],"mappings":"AAKA;;;;;;GAMG;AACH,iBAAS,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAE7C;AAiBD;;;;;;;;GAQG;AACH,iBAAS,aAAa,CAAC,cAAc,oBAAY,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAG7E;AAED;;;;;;;;GAQG;AACH,iBAAS,gBAAgB,CACvB,cAAc,oBAAY,EAC1B,UAAU,EAAE,MAAM,GACjB,MAAM,CAGR;AAED;;;;;;;;GAQG;AACH,iBAAS,eAAe,CACtB,cAAc,oBAAY,EAC1B,UAAU,EAAE,MAAM,GACjB,OAAO,CAGT;AAED,eAAO,MAAM,OAAO;;;;;CAKnB,CAAC"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/* eslint-disable default-param-last */
|
|
2
|
+
/* eslint-disable no-bitwise */
|
|
3
|
+
import { RuntimeError } from '../../error';
|
|
4
|
+
/**
|
|
5
|
+
* 检查权限码是否有效
|
|
6
|
+
* @author lxm
|
|
7
|
+
* @date 2023-11-10 10:49:57
|
|
8
|
+
* @static
|
|
9
|
+
* @param {number} permission
|
|
10
|
+
*/
|
|
11
|
+
function validate(permission) {
|
|
12
|
+
return !!permission && !(permission & (permission - 1));
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* 检查权限码是否有效,无效抛错
|
|
16
|
+
* @author lxm
|
|
17
|
+
* @date 2023-11-10 10:56:00
|
|
18
|
+
* @private
|
|
19
|
+
* @static
|
|
20
|
+
* @param {number} permission
|
|
21
|
+
*/
|
|
22
|
+
function validateAndThrow(permission) {
|
|
23
|
+
const isPowerOf2 = validate(permission);
|
|
24
|
+
if (!isPowerOf2) {
|
|
25
|
+
throw new RuntimeError(`${permission}不是2的幂`);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* 设置权限
|
|
30
|
+
* @author lxm
|
|
31
|
+
* @date 2023-11-10 10:50:22
|
|
32
|
+
* @static
|
|
33
|
+
* @param {number} [allPermissions=0] 当前所有权限
|
|
34
|
+
* @param {number} permission 要设置的权限
|
|
35
|
+
* @return {*} {number}
|
|
36
|
+
*/
|
|
37
|
+
function setPermission(allPermissions = 0, permission) {
|
|
38
|
+
validateAndThrow(permission);
|
|
39
|
+
return allPermissions | permission;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* 移出权限
|
|
43
|
+
* @author lxm
|
|
44
|
+
* @date 2023-11-10 10:50:45
|
|
45
|
+
* @static
|
|
46
|
+
* @param {number} [allPermissions=0] 当前所有权限
|
|
47
|
+
* @param {number} permission 要移出的权限
|
|
48
|
+
* @return {*} {number}
|
|
49
|
+
*/
|
|
50
|
+
function removePermission(allPermissions = 0, permission) {
|
|
51
|
+
validateAndThrow(permission);
|
|
52
|
+
return allPermissions & ~permission;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* 检查是否有某个权限
|
|
56
|
+
* @author lxm
|
|
57
|
+
* @date 2023-11-10 10:50:46
|
|
58
|
+
* @static
|
|
59
|
+
* @param {number} [allPermissions=0]
|
|
60
|
+
* @param {number} permission
|
|
61
|
+
* @return {*} {number}
|
|
62
|
+
*/
|
|
63
|
+
function checkPermission(allPermissions = 0, permission) {
|
|
64
|
+
validateAndThrow(permission);
|
|
65
|
+
return (allPermissions & permission) !== 0;
|
|
66
|
+
}
|
|
67
|
+
export const BitMask = {
|
|
68
|
+
validate,
|
|
69
|
+
setPermission,
|
|
70
|
+
removePermission,
|
|
71
|
+
checkPermission,
|
|
72
|
+
};
|
package/out/utils/index.d.ts
CHANGED
|
@@ -18,4 +18,5 @@ export * from './style/remote-style';
|
|
|
18
18
|
export * from './recursive/find-recursive-child';
|
|
19
19
|
export { DataTypes } from './data-type/data-types';
|
|
20
20
|
export * from './clone/clone';
|
|
21
|
+
export { BitMask } from './bit-mask/bit-mask';
|
|
21
22
|
//# sourceMappingURL=index.d.ts.map
|
package/out/utils/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,yBAAyB,CAAC;AACxC,cAAc,eAAe,CAAC;AAC9B,cAAc,+BAA+B,CAAC;AAC9C,cAAc,eAAe,CAAC;AAC9B,cAAc,+BAA+B,CAAC;AAC9C,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,QAAQ,CAAC;AACvB,cAAc,sBAAsB,CAAC;AACrC,cAAc,kCAAkC,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,cAAc,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,yBAAyB,CAAC;AACxC,cAAc,eAAe,CAAC;AAC9B,cAAc,+BAA+B,CAAC;AAC9C,cAAc,eAAe,CAAC;AAC9B,cAAc,+BAA+B,CAAC;AAC9C,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,QAAQ,CAAC;AACvB,cAAc,sBAAsB,CAAC;AACrC,cAAc,kCAAkC,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC"}
|
package/out/utils/index.js
CHANGED
package/out/utils/util/util.d.ts
CHANGED
|
@@ -119,4 +119,13 @@ export declare function toNumberOrNil(value: unknown): number | undefined;
|
|
|
119
119
|
* @return {*} {boolean}
|
|
120
120
|
*/
|
|
121
121
|
export declare function isSvg(str: string): boolean;
|
|
122
|
+
/**
|
|
123
|
+
* 处理浮点数相加
|
|
124
|
+
* @param {number} a
|
|
125
|
+
* @param {number} b
|
|
126
|
+
* @return {*}
|
|
127
|
+
* @author: zhujiamin
|
|
128
|
+
* @Date: 2023-11-08 17:04:09
|
|
129
|
+
*/
|
|
130
|
+
export declare function plus(a: number, b: number): number;
|
|
122
131
|
//# sourceMappingURL=util.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../src/utils/util/util.ts"],"names":[],"mappings":"AAMA;;;;;;;GAOG;AACH,wBAAgB,QAAQ,IAAI,MAAM,GAAG,IAAI,CAExC;AAED;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAG3D;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,GAAG,EAAE,EACX,IAAI,EAAE,GAAG,EAAE,EACX,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAUT;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EAChE,IAAI,EAAE,CAAC,EACP,SAAS,EAAE,CACT,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,EACxB,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,KACrB,UAAU,CAAC,CAAC,CAAC,EAClB,IAAI,CAAC,EAAE,MAAM,GACZ,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,GAAG,CAiBjC;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,qBAAqB,CACnC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,EAE1C,IAAI,EAAE,CAAC,EACP,SAAS,EAAE,CACT,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,EACxB,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,KACrB,UAAU,CAAC,CAAC,CAAC,EAClB,IAAI,CAAC,EAAE,MAAM,GACZ,CAAC,CAoCH;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,IAAI,CAMpD;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,IAAI,CAM3D;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,KAAK,EAAE,EACb,IAAI,EAAE,KAAK,EAAE,EACb,QAAQ,CAAC,EAAE,MAAM,GAChB;IACD,IAAI,EAAE,KAAK,EAAE,CAAC;IACd,IAAI,EAAE,KAAK,EAAE,CAAC;IACd,IAAI,EAAE,KAAK,EAAE,CAAC;CACf,CAuCA;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAShE;AAID;;;;;;;GAOG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAE1C"}
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../src/utils/util/util.ts"],"names":[],"mappings":"AAMA;;;;;;;GAOG;AACH,wBAAgB,QAAQ,IAAI,MAAM,GAAG,IAAI,CAExC;AAED;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAG3D;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,GAAG,EAAE,EACX,IAAI,EAAE,GAAG,EAAE,EACX,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAUT;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EAChE,IAAI,EAAE,CAAC,EACP,SAAS,EAAE,CACT,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,EACxB,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,KACrB,UAAU,CAAC,CAAC,CAAC,EAClB,IAAI,CAAC,EAAE,MAAM,GACZ,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,GAAG,CAiBjC;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,qBAAqB,CACnC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,EAE1C,IAAI,EAAE,CAAC,EACP,SAAS,EAAE,CACT,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,EACxB,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,KACrB,UAAU,CAAC,CAAC,CAAC,EAClB,IAAI,CAAC,EAAE,MAAM,GACZ,CAAC,CAoCH;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,IAAI,CAMpD;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,IAAI,CAM3D;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,KAAK,EAAE,EACb,IAAI,EAAE,KAAK,EAAE,EACb,QAAQ,CAAC,EAAE,MAAM,GAChB;IACD,IAAI,EAAE,KAAK,EAAE,CAAC;IACd,IAAI,EAAE,KAAK,EAAE,CAAC;IACd,IAAI,EAAE,KAAK,EAAE,CAAC;CACf,CAuCA;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAShE;AAID;;;;;;;GAOG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAE1C;AAED;;;;;;;GAOG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAejD"}
|
package/out/utils/util/util.js
CHANGED
|
@@ -250,3 +250,29 @@ const SvgPattern = /<svg\b[^>]*>[\s\S]*?<\/svg>/;
|
|
|
250
250
|
export function isSvg(str) {
|
|
251
251
|
return SvgPattern.test(str);
|
|
252
252
|
}
|
|
253
|
+
/**
|
|
254
|
+
* 处理浮点数相加
|
|
255
|
+
* @param {number} a
|
|
256
|
+
* @param {number} b
|
|
257
|
+
* @return {*}
|
|
258
|
+
* @author: zhujiamin
|
|
259
|
+
* @Date: 2023-11-08 17:04:09
|
|
260
|
+
*/
|
|
261
|
+
export function plus(a, b) {
|
|
262
|
+
let c;
|
|
263
|
+
let d;
|
|
264
|
+
try {
|
|
265
|
+
c = a.toString().split('.')[1].length;
|
|
266
|
+
}
|
|
267
|
+
catch (f) {
|
|
268
|
+
c = 0;
|
|
269
|
+
}
|
|
270
|
+
try {
|
|
271
|
+
d = b.toString().split('.')[1].length;
|
|
272
|
+
}
|
|
273
|
+
catch (f) {
|
|
274
|
+
d = 0;
|
|
275
|
+
}
|
|
276
|
+
const e = 10 ** Math.max(c, d);
|
|
277
|
+
return (a * e + b * e) / e;
|
|
278
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ibiz-template/core",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.15",
|
|
4
4
|
"description": "核心包",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "out/index.js",
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
"license": "MIT",
|
|
33
33
|
"dependencies": {
|
|
34
34
|
"@microsoft/fetch-event-source": "^2.0.1",
|
|
35
|
-
"axios": "^1.
|
|
35
|
+
"axios": "^1.6.1",
|
|
36
36
|
"lodash-es": "^4.17.21",
|
|
37
37
|
"loglevel": "^1.8.1",
|
|
38
38
|
"loglevel-plugin-prefix": "^0.8.4",
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"ramda": "^0.29.1"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
|
-
"@types/qs": "^6.9.
|
|
44
|
+
"@types/qs": "^6.9.10"
|
|
45
45
|
},
|
|
46
46
|
"peerDependencies": {
|
|
47
47
|
"axios": "^1.4.0",
|
|
@@ -49,6 +49,5 @@
|
|
|
49
49
|
"qs": "^6.11.0",
|
|
50
50
|
"qx-util": "^0.4.8",
|
|
51
51
|
"ramda": "^0.29.0"
|
|
52
|
-
}
|
|
53
|
-
"gitHead": "9e2ff8788567c10c7f048f95797e1a533b0027e8"
|
|
52
|
+
}
|
|
54
53
|
}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/* eslint-disable default-param-last */
|
|
2
|
+
/* eslint-disable no-bitwise */
|
|
3
|
+
|
|
4
|
+
import { RuntimeError } from '../../error';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* 检查权限码是否有效
|
|
8
|
+
* @author lxm
|
|
9
|
+
* @date 2023-11-10 10:49:57
|
|
10
|
+
* @static
|
|
11
|
+
* @param {number} permission
|
|
12
|
+
*/
|
|
13
|
+
function validate(permission: number): boolean {
|
|
14
|
+
return !!permission && !(permission & (permission - 1));
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* 检查权限码是否有效,无效抛错
|
|
19
|
+
* @author lxm
|
|
20
|
+
* @date 2023-11-10 10:56:00
|
|
21
|
+
* @private
|
|
22
|
+
* @static
|
|
23
|
+
* @param {number} permission
|
|
24
|
+
*/
|
|
25
|
+
function validateAndThrow(permission: number): void {
|
|
26
|
+
const isPowerOf2 = validate(permission);
|
|
27
|
+
if (!isPowerOf2) {
|
|
28
|
+
throw new RuntimeError(`${permission}不是2的幂`);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* 设置权限
|
|
34
|
+
* @author lxm
|
|
35
|
+
* @date 2023-11-10 10:50:22
|
|
36
|
+
* @static
|
|
37
|
+
* @param {number} [allPermissions=0] 当前所有权限
|
|
38
|
+
* @param {number} permission 要设置的权限
|
|
39
|
+
* @return {*} {number}
|
|
40
|
+
*/
|
|
41
|
+
function setPermission(allPermissions: number = 0, permission: number): number {
|
|
42
|
+
validateAndThrow(permission);
|
|
43
|
+
return allPermissions | permission;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* 移出权限
|
|
48
|
+
* @author lxm
|
|
49
|
+
* @date 2023-11-10 10:50:45
|
|
50
|
+
* @static
|
|
51
|
+
* @param {number} [allPermissions=0] 当前所有权限
|
|
52
|
+
* @param {number} permission 要移出的权限
|
|
53
|
+
* @return {*} {number}
|
|
54
|
+
*/
|
|
55
|
+
function removePermission(
|
|
56
|
+
allPermissions: number = 0,
|
|
57
|
+
permission: number,
|
|
58
|
+
): number {
|
|
59
|
+
validateAndThrow(permission);
|
|
60
|
+
return allPermissions & ~permission;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* 检查是否有某个权限
|
|
65
|
+
* @author lxm
|
|
66
|
+
* @date 2023-11-10 10:50:46
|
|
67
|
+
* @static
|
|
68
|
+
* @param {number} [allPermissions=0]
|
|
69
|
+
* @param {number} permission
|
|
70
|
+
* @return {*} {number}
|
|
71
|
+
*/
|
|
72
|
+
function checkPermission(
|
|
73
|
+
allPermissions: number = 0,
|
|
74
|
+
permission: number,
|
|
75
|
+
): boolean {
|
|
76
|
+
validateAndThrow(permission);
|
|
77
|
+
return (allPermissions & permission) !== 0;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
export const BitMask = {
|
|
81
|
+
validate,
|
|
82
|
+
setPermission,
|
|
83
|
+
removePermission,
|
|
84
|
+
checkPermission,
|
|
85
|
+
};
|
package/src/utils/index.ts
CHANGED
package/src/utils/util/util.ts
CHANGED
|
@@ -290,3 +290,28 @@ const SvgPattern = /<svg\b[^>]*>[\s\S]*?<\/svg>/;
|
|
|
290
290
|
export function isSvg(str: string): boolean {
|
|
291
291
|
return SvgPattern.test(str);
|
|
292
292
|
}
|
|
293
|
+
|
|
294
|
+
/**
|
|
295
|
+
* 处理浮点数相加
|
|
296
|
+
* @param {number} a
|
|
297
|
+
* @param {number} b
|
|
298
|
+
* @return {*}
|
|
299
|
+
* @author: zhujiamin
|
|
300
|
+
* @Date: 2023-11-08 17:04:09
|
|
301
|
+
*/
|
|
302
|
+
export function plus(a: number, b: number): number {
|
|
303
|
+
let c;
|
|
304
|
+
let d;
|
|
305
|
+
try {
|
|
306
|
+
c = a.toString().split('.')[1].length;
|
|
307
|
+
} catch (f) {
|
|
308
|
+
c = 0;
|
|
309
|
+
}
|
|
310
|
+
try {
|
|
311
|
+
d = b.toString().split('.')[1].length;
|
|
312
|
+
} catch (f) {
|
|
313
|
+
d = 0;
|
|
314
|
+
}
|
|
315
|
+
const e = 10 ** Math.max(c, d);
|
|
316
|
+
return (a * e + b * e) / e;
|
|
317
|
+
}
|