@yamada-ui/utils 1.5.2 → 1.5.3-dev-20241006032009
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/assertion.d.mts +2 -1
- package/dist/assertion.d.ts +2 -1
- package/dist/assertion.js +6 -1
- package/dist/assertion.js.map +1 -1
- package/dist/assertion.mjs +3 -1
- package/dist/calc.d.mts +5 -5
- package/dist/calc.d.ts +5 -5
- package/dist/calc.js +6 -6
- package/dist/calc.js.map +1 -1
- package/dist/calc.mjs +1 -1
- package/dist/{chunk-RCW53QOG.mjs → chunk-23I7TQOH.mjs} +2 -2
- package/dist/chunk-23I7TQOH.mjs.map +1 -0
- package/dist/{chunk-AF6MSVQN.mjs → chunk-47Z7BHBJ.mjs} +9 -7
- package/dist/chunk-47Z7BHBJ.mjs.map +1 -0
- package/dist/{chunk-OM7WYVSS.mjs → chunk-5J34UVTP.mjs} +7 -7
- package/dist/chunk-5J34UVTP.mjs.map +1 -0
- package/dist/{chunk-C3VXOUDJ.mjs → chunk-CCLWFJAZ.mjs} +11 -16
- package/dist/chunk-CCLWFJAZ.mjs.map +1 -0
- package/dist/{chunk-7XL7BPER.mjs → chunk-EJPLJ6FG.mjs} +9 -10
- package/dist/chunk-EJPLJ6FG.mjs.map +1 -0
- package/dist/{chunk-TJ7CW2M5.mjs → chunk-K4FGNB3Y.mjs} +8 -7
- package/dist/chunk-K4FGNB3Y.mjs.map +1 -0
- package/dist/{chunk-WU6FTFUV.mjs → chunk-MBMGLDTD.mjs} +1 -1
- package/dist/chunk-MBMGLDTD.mjs.map +1 -0
- package/dist/{chunk-Z4AGSEWZ.mjs → chunk-QWVYBC6R.mjs} +6 -2
- package/dist/chunk-QWVYBC6R.mjs.map +1 -0
- package/dist/{chunk-QTCZ2LU5.mjs → chunk-SAYAT2RG.mjs} +4 -3
- package/dist/chunk-SAYAT2RG.mjs.map +1 -0
- package/dist/color.d.mts +5 -5
- package/dist/color.d.ts +5 -5
- package/dist/color.js +10 -8
- package/dist/color.js.map +1 -1
- package/dist/color.mjs +3 -3
- package/dist/dom.d.mts +4 -4
- package/dist/dom.d.ts +4 -4
- package/dist/dom.js +8 -6
- package/dist/dom.js.map +1 -1
- package/dist/dom.mjs +2 -2
- package/dist/event.d.mts +2 -2
- package/dist/event.d.ts +2 -2
- package/dist/event.js +3 -2
- package/dist/event.js.map +1 -1
- package/dist/event.mjs +1 -1
- package/dist/function.d.mts +1 -1
- package/dist/function.d.ts +1 -1
- package/dist/function.js.map +1 -1
- package/dist/function.mjs +2 -2
- package/dist/index.d.mts +9 -9
- package/dist/index.d.ts +9 -9
- package/dist/index.js +688 -683
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +11 -10
- package/dist/index.types.d.mts +5 -5
- package/dist/index.types.d.ts +5 -5
- package/dist/index.types.js.map +1 -1
- package/dist/index.types.mjs +0 -1
- package/dist/object.d.mts +3 -3
- package/dist/object.d.ts +3 -3
- package/dist/object.js +8 -9
- package/dist/object.js.map +1 -1
- package/dist/object.mjs +2 -2
- package/dist/react.d.mts +40 -35
- package/dist/react.d.ts +40 -35
- package/dist/react.js +9 -14
- package/dist/react.js.map +1 -1
- package/dist/react.mjs +2 -2
- package/dist/string.js.map +1 -1
- package/dist/string.mjs +1 -1
- package/package.json +1 -1
- package/dist/chunk-7XL7BPER.mjs.map +0 -1
- package/dist/chunk-AF6MSVQN.mjs.map +0 -1
- package/dist/chunk-C3VXOUDJ.mjs.map +0 -1
- package/dist/chunk-OM7WYVSS.mjs.map +0 -1
- package/dist/chunk-QTCZ2LU5.mjs.map +0 -1
- package/dist/chunk-RCW53QOG.mjs.map +0 -1
- package/dist/chunk-RSDBT4DI.mjs +0 -1
- package/dist/chunk-RSDBT4DI.mjs.map +0 -1
- package/dist/chunk-TJ7CW2M5.mjs.map +0 -1
- package/dist/chunk-WU6FTFUV.mjs.map +0 -1
- package/dist/chunk-Z4AGSEWZ.mjs.map +0 -1
package/dist/assertion.d.mts
CHANGED
|
@@ -11,8 +11,9 @@ declare function isNull(value: any): value is null;
|
|
|
11
11
|
declare function isObject<T extends Dict>(value: any): value is T;
|
|
12
12
|
declare function isArray<T extends any[]>(value: any): value is T;
|
|
13
13
|
declare function isEmpty(value: any): boolean;
|
|
14
|
+
declare function isEmptyObject(value: any): boolean;
|
|
14
15
|
declare function isFunction<T extends Function = Function>(value: any): value is T;
|
|
15
16
|
declare function isUnit(value: any): boolean;
|
|
16
17
|
declare function cast<T>(value: any): T;
|
|
17
18
|
|
|
18
|
-
export { cast, is, isArray, isBoolean, isEmpty, isFunction, isNotNumber, isNull, isNumber, isNumeric, isObject, isString, isUndefined, isUnit };
|
|
19
|
+
export { cast, is, isArray, isBoolean, isEmpty, isEmptyObject, isFunction, isNotNumber, isNull, isNumber, isNumeric, isObject, isString, isUndefined, isUnit };
|
package/dist/assertion.d.ts
CHANGED
|
@@ -11,8 +11,9 @@ declare function isNull(value: any): value is null;
|
|
|
11
11
|
declare function isObject<T extends Dict>(value: any): value is T;
|
|
12
12
|
declare function isArray<T extends any[]>(value: any): value is T;
|
|
13
13
|
declare function isEmpty(value: any): boolean;
|
|
14
|
+
declare function isEmptyObject(value: any): boolean;
|
|
14
15
|
declare function isFunction<T extends Function = Function>(value: any): value is T;
|
|
15
16
|
declare function isUnit(value: any): boolean;
|
|
16
17
|
declare function cast<T>(value: any): T;
|
|
17
18
|
|
|
18
|
-
export { cast, is, isArray, isBoolean, isEmpty, isFunction, isNotNumber, isNull, isNumber, isNumeric, isObject, isString, isUndefined, isUnit };
|
|
19
|
+
export { cast, is, isArray, isBoolean, isEmpty, isEmptyObject, isFunction, isNotNumber, isNull, isNumber, isNumeric, isObject, isString, isUndefined, isUnit };
|
package/dist/assertion.js
CHANGED
|
@@ -25,6 +25,7 @@ __export(assertion_exports, {
|
|
|
25
25
|
isArray: () => isArray,
|
|
26
26
|
isBoolean: () => isBoolean,
|
|
27
27
|
isEmpty: () => isEmpty,
|
|
28
|
+
isEmptyObject: () => isEmptyObject,
|
|
28
29
|
isFunction: () => isFunction,
|
|
29
30
|
isNotNumber: () => isNotNumber,
|
|
30
31
|
isNull: () => isNull,
|
|
@@ -55,7 +56,7 @@ function isBoolean(value) {
|
|
|
55
56
|
return typeof value === "boolean";
|
|
56
57
|
}
|
|
57
58
|
function isUndefined(value) {
|
|
58
|
-
return typeof value === "undefined"
|
|
59
|
+
return typeof value === "undefined";
|
|
59
60
|
}
|
|
60
61
|
function isNull(value) {
|
|
61
62
|
return value === null;
|
|
@@ -69,6 +70,9 @@ function isArray(value) {
|
|
|
69
70
|
function isEmpty(value) {
|
|
70
71
|
return !isArray(value) || !value.length || value.every((v) => v == null);
|
|
71
72
|
}
|
|
73
|
+
function isEmptyObject(value) {
|
|
74
|
+
return isObject(value) && !Object.keys(value).length;
|
|
75
|
+
}
|
|
72
76
|
function isFunction(value) {
|
|
73
77
|
return typeof value === "function";
|
|
74
78
|
}
|
|
@@ -87,6 +91,7 @@ function cast(value) {
|
|
|
87
91
|
isArray,
|
|
88
92
|
isBoolean,
|
|
89
93
|
isEmpty,
|
|
94
|
+
isEmptyObject,
|
|
90
95
|
isFunction,
|
|
91
96
|
isNotNumber,
|
|
92
97
|
isNull,
|
package/dist/assertion.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/assertion.ts"],"sourcesContent":["import type { Dict } from \"./index.types\"\n\nexport function is(x: any, y: any) {\n return (x === y && (x !== 0 || 1 / x === 1 / y)) || (x !== x && y !== y)\n}\n\nexport function isNumber(value: any): value is number {\n return typeof value === \"number\"\n}\n\nexport function isNotNumber(value: any): boolean {\n return (\n typeof value !== \"number\" || Number.isNaN(value) || !Number.isFinite(value)\n )\n}\n\nexport function isNumeric(value: any): boolean {\n return (\n !isNaN(parseFloat(String(value))) &&\n isFinite(Number(value)) &&\n /^-?\\d*\\.?\\d+$/.test(String(value))\n )\n}\n\nexport function isString(value: any): value is string {\n return Object.prototype.toString.call(value) === \"[object String]\"\n}\n\nexport function isBoolean(value: any): value is boolean {\n return typeof value === \"boolean\"\n}\n\nexport function isUndefined(value: any): value is undefined {\n return typeof value === \"undefined\"
|
|
1
|
+
{"version":3,"sources":["../src/assertion.ts"],"sourcesContent":["import type { Dict } from \"./index.types\"\n\nexport function is(x: any, y: any) {\n return (x === y && (x !== 0 || 1 / x === 1 / y)) || (x !== x && y !== y)\n}\n\nexport function isNumber(value: any): value is number {\n return typeof value === \"number\"\n}\n\nexport function isNotNumber(value: any): boolean {\n return (\n typeof value !== \"number\" || Number.isNaN(value) || !Number.isFinite(value)\n )\n}\n\nexport function isNumeric(value: any): boolean {\n return (\n !isNaN(parseFloat(String(value))) &&\n isFinite(Number(value)) &&\n /^-?\\d*\\.?\\d+$/.test(String(value))\n )\n}\n\nexport function isString(value: any): value is string {\n return Object.prototype.toString.call(value) === \"[object String]\"\n}\n\nexport function isBoolean(value: any): value is boolean {\n return typeof value === \"boolean\"\n}\n\nexport function isUndefined(value: any): value is undefined {\n return typeof value === \"undefined\"\n}\n\nexport function isNull(value: any): value is null {\n return value === null\n}\n\nexport function isObject<T extends Dict>(value: any): value is T {\n return (\n value !== null &&\n (typeof value === \"object\" || typeof value === \"function\") &&\n !isArray(value)\n )\n}\n\nexport function isArray<T extends any[]>(value: any): value is T {\n return Array.isArray(value)\n}\n\nexport function isEmpty(value: any): boolean {\n return !isArray(value) || !value.length || value.every((v) => v == null)\n}\n\nexport function isEmptyObject(value: any): boolean {\n return isObject(value) && !Object.keys(value).length\n}\n\nexport function isFunction<T extends Function = Function>(\n value: any,\n): value is T {\n return typeof value === \"function\"\n}\n\nexport function isUnit(value: any): boolean {\n return /[0-9].*(em|rem|ex|rex|cap|rcap|ch|rch|ic|ric|lh|rlh|vw|svw|lvw|dvw|vh|svh|lvh|dvh|vi|svi|lvi|dvi|vb|svb|lvb|dvb|vmin|svmin|lvmin|dvmin|vmax|svmax|lvmax|dvmax|cm|mm|Q|in|pc|pt|px|%|cqw|cqh|cqi|cqb|cqmin|cqmax)$/.test(\n value,\n )\n}\n\nexport function cast<T>(value: any) {\n return value as T\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEO,SAAS,GAAG,GAAQ,GAAQ;AACjC,SAAQ,MAAM,MAAM,MAAM,KAAK,IAAI,MAAM,IAAI,MAAQ,MAAM,KAAK,MAAM;AACxE;AAEO,SAAS,SAAS,OAA6B;AACpD,SAAO,OAAO,UAAU;AAC1B;AAEO,SAAS,YAAY,OAAqB;AAC/C,SACE,OAAO,UAAU,YAAY,OAAO,MAAM,KAAK,KAAK,CAAC,OAAO,SAAS,KAAK;AAE9E;AAEO,SAAS,UAAU,OAAqB;AAC7C,SACE,CAAC,MAAM,WAAW,OAAO,KAAK,CAAC,CAAC,KAChC,SAAS,OAAO,KAAK,CAAC,KACtB,gBAAgB,KAAK,OAAO,KAAK,CAAC;AAEtC;AAEO,SAAS,SAAS,OAA6B;AACpD,SAAO,OAAO,UAAU,SAAS,KAAK,KAAK,MAAM;AACnD;AAEO,SAAS,UAAU,OAA8B;AACtD,SAAO,OAAO,UAAU;AAC1B;AAEO,SAAS,YAAY,OAAgC;AAC1D,SAAO,OAAO,UAAU;AAC1B;AAEO,SAAS,OAAO,OAA2B;AAChD,SAAO,UAAU;AACnB;AAEO,SAAS,SAAyB,OAAwB;AAC/D,SACE,UAAU,SACT,OAAO,UAAU,YAAY,OAAO,UAAU,eAC/C,CAAC,QAAQ,KAAK;AAElB;AAEO,SAAS,QAAyB,OAAwB;AAC/D,SAAO,MAAM,QAAQ,KAAK;AAC5B;AAEO,SAAS,QAAQ,OAAqB;AAC3C,SAAO,CAAC,QAAQ,KAAK,KAAK,CAAC,MAAM,UAAU,MAAM,MAAM,CAAC,MAAM,KAAK,IAAI;AACzE;AAEO,SAAS,cAAc,OAAqB;AACjD,SAAO,SAAS,KAAK,KAAK,CAAC,OAAO,KAAK,KAAK,EAAE;AAChD;AAEO,SAAS,WACd,OACY;AACZ,SAAO,OAAO,UAAU;AAC1B;AAEO,SAAS,OAAO,OAAqB;AAC1C,SAAO,oNAAoN;AAAA,IACzN;AAAA,EACF;AACF;AAEO,SAAS,KAAQ,OAAY;AAClC,SAAO;AACT;","names":[]}
|
package/dist/assertion.mjs
CHANGED
|
@@ -4,6 +4,7 @@ import {
|
|
|
4
4
|
isArray,
|
|
5
5
|
isBoolean,
|
|
6
6
|
isEmpty,
|
|
7
|
+
isEmptyObject,
|
|
7
8
|
isFunction,
|
|
8
9
|
isNotNumber,
|
|
9
10
|
isNull,
|
|
@@ -13,13 +14,14 @@ import {
|
|
|
13
14
|
isString,
|
|
14
15
|
isUndefined,
|
|
15
16
|
isUnit
|
|
16
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-QWVYBC6R.mjs";
|
|
17
18
|
export {
|
|
18
19
|
cast,
|
|
19
20
|
is,
|
|
20
21
|
isArray,
|
|
21
22
|
isBoolean,
|
|
22
23
|
isEmpty,
|
|
24
|
+
isEmptyObject,
|
|
23
25
|
isFunction,
|
|
24
26
|
isNotNumber,
|
|
25
27
|
isNull,
|
package/dist/calc.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
type Operand =
|
|
1
|
+
type Operand = number | string;
|
|
2
2
|
declare function add(...args: Operand[]): string;
|
|
3
3
|
declare function subtract(...args: Operand[]): string;
|
|
4
4
|
declare function multiply(...args: Operand[]): string;
|
|
@@ -6,18 +6,18 @@ declare function divide(...args: Operand[]): string;
|
|
|
6
6
|
declare function negate(value: Operand): string;
|
|
7
7
|
interface Calc {
|
|
8
8
|
add: (...args: Operand[]) => Calc;
|
|
9
|
-
subtract: (...args: Operand[]) => Calc;
|
|
10
|
-
multiply: (...args: Operand[]) => Calc;
|
|
11
9
|
divide: (...args: Operand[]) => Calc;
|
|
10
|
+
multiply: (...args: Operand[]) => Calc;
|
|
12
11
|
negate: () => Calc;
|
|
12
|
+
subtract: (...args: Operand[]) => Calc;
|
|
13
13
|
toString: () => string;
|
|
14
14
|
}
|
|
15
15
|
declare const calc: ((x: Operand) => Calc) & {
|
|
16
16
|
add: typeof add;
|
|
17
|
-
subtract: typeof subtract;
|
|
18
|
-
multiply: typeof multiply;
|
|
19
17
|
divide: typeof divide;
|
|
18
|
+
multiply: typeof multiply;
|
|
20
19
|
negate: typeof negate;
|
|
20
|
+
subtract: typeof subtract;
|
|
21
21
|
};
|
|
22
22
|
|
|
23
23
|
export { type Operand, calc };
|
package/dist/calc.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
type Operand =
|
|
1
|
+
type Operand = number | string;
|
|
2
2
|
declare function add(...args: Operand[]): string;
|
|
3
3
|
declare function subtract(...args: Operand[]): string;
|
|
4
4
|
declare function multiply(...args: Operand[]): string;
|
|
@@ -6,18 +6,18 @@ declare function divide(...args: Operand[]): string;
|
|
|
6
6
|
declare function negate(value: Operand): string;
|
|
7
7
|
interface Calc {
|
|
8
8
|
add: (...args: Operand[]) => Calc;
|
|
9
|
-
subtract: (...args: Operand[]) => Calc;
|
|
10
|
-
multiply: (...args: Operand[]) => Calc;
|
|
11
9
|
divide: (...args: Operand[]) => Calc;
|
|
10
|
+
multiply: (...args: Operand[]) => Calc;
|
|
12
11
|
negate: () => Calc;
|
|
12
|
+
subtract: (...args: Operand[]) => Calc;
|
|
13
13
|
toString: () => string;
|
|
14
14
|
}
|
|
15
15
|
declare const calc: ((x: Operand) => Calc) & {
|
|
16
16
|
add: typeof add;
|
|
17
|
-
subtract: typeof subtract;
|
|
18
|
-
multiply: typeof multiply;
|
|
19
17
|
divide: typeof divide;
|
|
18
|
+
multiply: typeof multiply;
|
|
20
19
|
negate: typeof negate;
|
|
20
|
+
subtract: typeof subtract;
|
|
21
21
|
};
|
|
22
22
|
|
|
23
23
|
export { type Operand, calc };
|
package/dist/calc.js
CHANGED
|
@@ -39,25 +39,25 @@ function divide(...args) {
|
|
|
39
39
|
return `calc(${toExpression("/", ...args)})`;
|
|
40
40
|
}
|
|
41
41
|
function negate(value) {
|
|
42
|
-
if (
|
|
42
|
+
if (!isNaN(parseFloat(value.toString())))
|
|
43
43
|
return String(value).startsWith("-") ? String(value).slice(1) : `-${value}`;
|
|
44
44
|
return multiply(value, -1);
|
|
45
45
|
}
|
|
46
46
|
var calc = Object.assign(
|
|
47
47
|
(x) => ({
|
|
48
48
|
add: (...args) => calc(add(x, ...args)),
|
|
49
|
-
subtract: (...args) => calc(subtract(x, ...args)),
|
|
50
|
-
multiply: (...args) => calc(multiply(x, ...args)),
|
|
51
49
|
divide: (...args) => calc(divide(x, ...args)),
|
|
50
|
+
multiply: (...args) => calc(multiply(x, ...args)),
|
|
52
51
|
negate: () => calc(negate(x)),
|
|
52
|
+
subtract: (...args) => calc(subtract(x, ...args)),
|
|
53
53
|
toString: () => x.toString()
|
|
54
54
|
}),
|
|
55
55
|
{
|
|
56
56
|
add,
|
|
57
|
-
subtract,
|
|
58
|
-
multiply,
|
|
59
57
|
divide,
|
|
60
|
-
|
|
58
|
+
multiply,
|
|
59
|
+
negate,
|
|
60
|
+
subtract
|
|
61
61
|
}
|
|
62
62
|
);
|
|
63
63
|
// Annotate the CommonJS export names for ESM import in node:
|
package/dist/calc.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/calc.ts"],"sourcesContent":["type Operator = \"
|
|
1
|
+
{"version":3,"sources":["../src/calc.ts"],"sourcesContent":["type Operator = \"*\" | \"+\" | \"/\" | \"-\"\n\nexport type Operand = number | string\n\nfunction toExpression(operator: Operator, ...args: Operand[]) {\n return args.join(` ${operator} `).replace(/calc/g, \"\")\n}\n\nfunction add(...args: Operand[]) {\n return `calc(${toExpression(\"+\", ...args)})`\n}\n\nfunction subtract(...args: Operand[]) {\n return `calc(${toExpression(\"-\", ...args)})`\n}\n\nfunction multiply(...args: Operand[]) {\n return `calc(${toExpression(\"*\", ...args)})`\n}\n\nfunction divide(...args: Operand[]) {\n return `calc(${toExpression(\"/\", ...args)})`\n}\n\nfunction negate(value: Operand) {\n if (!isNaN(parseFloat(value.toString())))\n return String(value).startsWith(\"-\") ? String(value).slice(1) : `-${value}`\n\n return multiply(value, -1)\n}\n\ninterface Calc {\n add: (...args: Operand[]) => Calc\n divide: (...args: Operand[]) => Calc\n multiply: (...args: Operand[]) => Calc\n negate: () => Calc\n subtract: (...args: Operand[]) => Calc\n toString: () => string\n}\n\nexport const calc = Object.assign(\n (x: Operand): Calc => ({\n add: (...args) => calc(add(x, ...args)),\n divide: (...args) => calc(divide(x, ...args)),\n multiply: (...args) => calc(multiply(x, ...args)),\n negate: () => calc(negate(x)),\n subtract: (...args) => calc(subtract(x, ...args)),\n toString: () => x.toString(),\n }),\n {\n add,\n divide,\n multiply,\n negate,\n subtract,\n },\n)\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,SAAS,aAAa,aAAuB,MAAiB;AAC5D,SAAO,KAAK,KAAK,IAAI,QAAQ,GAAG,EAAE,QAAQ,SAAS,EAAE;AACvD;AAEA,SAAS,OAAO,MAAiB;AAC/B,SAAO,QAAQ,aAAa,KAAK,GAAG,IAAI,CAAC;AAC3C;AAEA,SAAS,YAAY,MAAiB;AACpC,SAAO,QAAQ,aAAa,KAAK,GAAG,IAAI,CAAC;AAC3C;AAEA,SAAS,YAAY,MAAiB;AACpC,SAAO,QAAQ,aAAa,KAAK,GAAG,IAAI,CAAC;AAC3C;AAEA,SAAS,UAAU,MAAiB;AAClC,SAAO,QAAQ,aAAa,KAAK,GAAG,IAAI,CAAC;AAC3C;AAEA,SAAS,OAAO,OAAgB;AAC9B,MAAI,CAAC,MAAM,WAAW,MAAM,SAAS,CAAC,CAAC;AACrC,WAAO,OAAO,KAAK,EAAE,WAAW,GAAG,IAAI,OAAO,KAAK,EAAE,MAAM,CAAC,IAAI,IAAI,KAAK;AAE3E,SAAO,SAAS,OAAO,EAAE;AAC3B;AAWO,IAAM,OAAO,OAAO;AAAA,EACzB,CAAC,OAAsB;AAAA,IACrB,KAAK,IAAI,SAAS,KAAK,IAAI,GAAG,GAAG,IAAI,CAAC;AAAA,IACtC,QAAQ,IAAI,SAAS,KAAK,OAAO,GAAG,GAAG,IAAI,CAAC;AAAA,IAC5C,UAAU,IAAI,SAAS,KAAK,SAAS,GAAG,GAAG,IAAI,CAAC;AAAA,IAChD,QAAQ,MAAM,KAAK,OAAO,CAAC,CAAC;AAAA,IAC5B,UAAU,IAAI,SAAS,KAAK,SAAS,GAAG,GAAG,IAAI,CAAC;AAAA,IAChD,UAAU,MAAM,EAAE,SAAS;AAAA,EAC7B;AAAA,EACA;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;","names":[]}
|
package/dist/calc.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
isFunction
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-QWVYBC6R.mjs";
|
|
4
4
|
|
|
5
5
|
// src/function.ts
|
|
6
6
|
var noop = () => {
|
|
@@ -28,4 +28,4 @@ export {
|
|
|
28
28
|
handlerAll,
|
|
29
29
|
funcAll
|
|
30
30
|
};
|
|
31
|
-
//# sourceMappingURL=chunk-
|
|
31
|
+
//# sourceMappingURL=chunk-23I7TQOH.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/function.ts"],"sourcesContent":["import { isFunction } from \"./assertion\"\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nexport const noop = () => {}\n\nexport function runIfFunc<T, U extends any[]>(\n valOrFunc: ((...funcArgs: U) => T) | T,\n ...args: U\n): T {\n return isFunction(valOrFunc) ? valOrFunc(...args) : valOrFunc\n}\n\nexport function handlerAll<T extends (event: any, ...args: any[]) => void>(\n ...funcs: (T | undefined)[]\n) {\n return function (\n event: T extends (event: infer R, ...args: any[]) => any ? R : never,\n ...args: T extends (event: any, ...args: infer R) => any ? R : never\n ) {\n funcs.some((func) => {\n func?.(event, ...args)\n\n return event?.defaultPrevented\n })\n }\n}\n\nexport function funcAll<T extends (...args: any[]) => any>(\n ...funcs: (T | undefined)[]\n) {\n return function (...args: T extends (...args: infer R) => any ? R : never) {\n return funcs.forEach((func) => func?.(...args))\n }\n}\n"],"mappings":";;;;;AAGO,IAAM,OAAO,MAAM;AAAC;AAEpB,SAAS,UACd,cACG,MACA;AACH,SAAO,WAAW,SAAS,IAAI,UAAU,GAAG,IAAI,IAAI;AACtD;AAEO,SAAS,cACX,OACH;AACA,SAAO,SACL,UACG,MACH;AACA,UAAM,KAAK,CAAC,SAAS;AACnB,mCAAO,OAAO,GAAG;AAEjB,aAAO,+BAAO;AAAA,IAChB,CAAC;AAAA,EACH;AACF;AAEO,SAAS,WACX,OACH;AACA,SAAO,YAAa,MAAuD;AACzE,WAAO,MAAM,QAAQ,CAAC,SAAS,6BAAO,GAAG,KAAK;AAAA,EAChD;AACF;","names":[]}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
isNumber,
|
|
3
3
|
isUndefined
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-QWVYBC6R.mjs";
|
|
5
5
|
|
|
6
6
|
// src/dom.ts
|
|
7
7
|
function createdDom() {
|
|
8
|
-
|
|
8
|
+
var _a;
|
|
9
|
+
return !!(typeof window !== "undefined" && // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
10
|
+
((_a = window.document) == null ? void 0 : _a.createElement));
|
|
9
11
|
}
|
|
10
12
|
function getPlatform() {
|
|
11
13
|
var _a, _b;
|
|
@@ -40,7 +42,7 @@ function isHidden(el) {
|
|
|
40
42
|
return el.hidden;
|
|
41
43
|
}
|
|
42
44
|
function isDisabled(el) {
|
|
43
|
-
return Boolean(el.getAttribute("disabled"))
|
|
45
|
+
return Boolean(el.getAttribute("disabled")) || Boolean(el.getAttribute("data-disabled")) || Boolean(el.getAttribute("aria-disabled"));
|
|
44
46
|
}
|
|
45
47
|
function isVisible(el) {
|
|
46
48
|
return el.offsetWidth > 0 && el.offsetHeight > 0;
|
|
@@ -108,7 +110,7 @@ function isFocusable(el) {
|
|
|
108
110
|
}
|
|
109
111
|
const { localName } = el;
|
|
110
112
|
const focusableTags = ["input", "select", "textarea", "button"];
|
|
111
|
-
if (focusableTags.
|
|
113
|
+
if (focusableTags.includes(localName)) return true;
|
|
112
114
|
const others = {
|
|
113
115
|
a: () => el.hasAttribute("href"),
|
|
114
116
|
audio: () => el.hasAttribute("controls"),
|
|
@@ -128,8 +130,8 @@ function isTouchDevice() {
|
|
|
128
130
|
return "ontouchstart" in window;
|
|
129
131
|
}
|
|
130
132
|
function getOwnerWindow(node) {
|
|
131
|
-
var _a
|
|
132
|
-
return (
|
|
133
|
+
var _a;
|
|
134
|
+
return (_a = getOwnerDocument(node).defaultView) != null ? _a : window;
|
|
133
135
|
}
|
|
134
136
|
function getOwnerDocument(el) {
|
|
135
137
|
return isElement(el) ? el.ownerDocument : document;
|
|
@@ -170,4 +172,4 @@ export {
|
|
|
170
172
|
getActiveElement,
|
|
171
173
|
isActiveElement
|
|
172
174
|
};
|
|
173
|
-
//# sourceMappingURL=chunk-
|
|
175
|
+
//# sourceMappingURL=chunk-47Z7BHBJ.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/dom.ts"],"sourcesContent":["import type React from \"react\"\nimport { isNumber, isUndefined } from \"./assertion\"\n\nexport function createdDom(): boolean {\n return !!(\n typeof window !== \"undefined\" &&\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n window.document?.createElement\n )\n}\n\nexport function getPlatform(): string {\n return (navigator as any).userAgentData?.platform ?? navigator.platform\n}\n\nexport function vendor(v: RegExp): boolean {\n return createdDom() && v.test(navigator.vendor)\n}\n\nexport function platform(v: RegExp): boolean {\n return createdDom() && v.test(getPlatform())\n}\n\nexport function isMac(): boolean {\n return platform(/^mac/i)\n}\n\nexport function isApple(): boolean {\n return platform(/mac|iphone|ipad|ipod/i)\n}\n\nexport function isSafari(): boolean {\n return isApple() && vendor(/apple/i)\n}\n\nexport function isElement(el: any): el is Element {\n return (\n el != null &&\n typeof el == \"object\" &&\n \"nodeType\" in el &&\n el.nodeType === Node.ELEMENT_NODE\n )\n}\n\nexport function isHTMLElement(el: any): el is HTMLElement {\n if (!isElement(el)) return false\n\n const win = el.ownerDocument.defaultView ?? window\n\n return el instanceof win.HTMLElement\n}\n\nexport function isHidden(el: HTMLElement): boolean {\n if (el.parentElement && isHidden(el.parentElement)) return true\n\n return el.hidden\n}\n\nexport function isDisabled(el: HTMLElement): boolean {\n return (\n Boolean(el.getAttribute(\"disabled\")) ||\n Boolean(el.getAttribute(\"data-disabled\")) ||\n Boolean(el.getAttribute(\"aria-disabled\"))\n )\n}\n\nfunction isVisible(el: HTMLElement) {\n return el.offsetWidth > 0 && el.offsetHeight > 0\n}\n\nexport function hasTabIndex(el: HTMLElement): boolean {\n return el.hasAttribute(\"tabindex\")\n}\n\nexport function isContentEditable(el: HTMLElement): boolean {\n const value = el.getAttribute(\"contenteditable\")\n\n return value !== \"false\" && value != null\n}\n\nexport function isContains(\n parent: HTMLElement | null,\n child: HTMLElement | null,\n): boolean | undefined {\n return parent === child || parent?.contains(child)\n}\n\nexport function getPx(value: number | string | undefined): number {\n if (isNumber(value)) return value\n\n if (isUndefined(value)) return 0\n\n if (value.includes(\"px\")) return parseFloat(value)\n\n const isBrowser = createdDom()\n let fontSize = 16\n\n if (isBrowser) {\n const style = window.getComputedStyle(document.documentElement)\n\n const computedFontSize = parseFloat(style.fontSize)\n\n if (!isNaN(computedFontSize)) fontSize = computedFontSize\n }\n\n return parseFloat(value) * fontSize\n}\n\nexport function getEventRelatedTarget(ev: React.FocusEvent | React.MouseEvent) {\n return (ev.relatedTarget ??\n ev.currentTarget.ownerDocument.activeElement) as HTMLElement | null\n}\n\ntype Booleanish = \"false\" | \"true\" | boolean\n\nexport function dataAttr(condition: boolean | undefined) {\n return (condition ? \"\" : undefined) as Booleanish\n}\n\nexport function ariaAttr(condition: boolean | undefined): boolean | undefined {\n return condition ? true : undefined\n}\n\nexport interface FocusableElement {\n focus: (options?: FocusOptions) => void\n}\n\nconst focusableElList = [\n \"input:not(:disabled):not([disabled])\",\n \"select:not(:disabled):not([disabled])\",\n \"textarea:not(:disabled):not([disabled])\",\n \"embed\",\n \"iframe\",\n \"object\",\n \"a[href]\",\n \"area[href]\",\n \"button:not(:disabled):not([disabled])\",\n \"[tabindex]\",\n \"audio[controls]\",\n \"video[controls]\",\n \"*[tabindex]:not([aria-disabled])\",\n \"*[contenteditable]\",\n]\n\nconst focusableElSelector: string = focusableElList.join()\n\nexport function getAllFocusable<T extends HTMLElement>(container: T): T[] {\n const focusableEls: T[] = Array.from(\n container.querySelectorAll<T>(focusableElSelector),\n )\n\n focusableEls.unshift(container)\n\n return focusableEls.filter((el) => isFocusable(el) && isVisible(el))\n}\n\nexport function isFocusable(el: HTMLElement): boolean {\n if (!isHTMLElement(el) || isHidden(el) || isDisabled(el)) {\n return false\n }\n\n const { localName } = el\n const focusableTags = [\"input\", \"select\", \"textarea\", \"button\"]\n\n if (focusableTags.includes(localName)) return true\n\n const others = {\n a: () => el.hasAttribute(\"href\"),\n audio: () => el.hasAttribute(\"controls\"),\n video: () => el.hasAttribute(\"controls\"),\n }\n\n if (localName in others) return others[localName as keyof typeof others]()\n\n if (isContentEditable(el)) return true\n\n return hasTabIndex(el)\n}\n\nexport function hasNegativeTabIndex(el: HTMLElement): boolean {\n return hasTabIndex(el) && el.tabIndex === -1\n}\n\nexport function isTabbable(el?: HTMLElement | null): boolean {\n return el\n ? isHTMLElement(el) && isFocusable(el) && !hasNegativeTabIndex(el)\n : false\n}\n\nexport function isTouchDevice(): boolean {\n return \"ontouchstart\" in window\n}\n\nexport function getOwnerWindow(\n node?: Element | null,\n): typeof globalThis & Window {\n return getOwnerDocument(node).defaultView ?? window\n}\n\nexport function getOwnerDocument(el?: Element | null): Document {\n return isElement(el) ? el.ownerDocument : document\n}\n\nexport function getActiveElement(el?: HTMLElement): HTMLElement | null {\n return getOwnerDocument(el).activeElement as HTMLElement | null\n}\n\nexport function isActiveElement(el: HTMLElement): boolean {\n return getActiveElement(el) === el\n}\n"],"mappings":"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","names":[]}
|
|
@@ -15,29 +15,29 @@ function divide(...args) {
|
|
|
15
15
|
return `calc(${toExpression("/", ...args)})`;
|
|
16
16
|
}
|
|
17
17
|
function negate(value) {
|
|
18
|
-
if (
|
|
18
|
+
if (!isNaN(parseFloat(value.toString())))
|
|
19
19
|
return String(value).startsWith("-") ? String(value).slice(1) : `-${value}`;
|
|
20
20
|
return multiply(value, -1);
|
|
21
21
|
}
|
|
22
22
|
var calc = Object.assign(
|
|
23
23
|
(x) => ({
|
|
24
24
|
add: (...args) => calc(add(x, ...args)),
|
|
25
|
-
subtract: (...args) => calc(subtract(x, ...args)),
|
|
26
|
-
multiply: (...args) => calc(multiply(x, ...args)),
|
|
27
25
|
divide: (...args) => calc(divide(x, ...args)),
|
|
26
|
+
multiply: (...args) => calc(multiply(x, ...args)),
|
|
28
27
|
negate: () => calc(negate(x)),
|
|
28
|
+
subtract: (...args) => calc(subtract(x, ...args)),
|
|
29
29
|
toString: () => x.toString()
|
|
30
30
|
}),
|
|
31
31
|
{
|
|
32
32
|
add,
|
|
33
|
-
subtract,
|
|
34
|
-
multiply,
|
|
35
33
|
divide,
|
|
36
|
-
|
|
34
|
+
multiply,
|
|
35
|
+
negate,
|
|
36
|
+
subtract
|
|
37
37
|
}
|
|
38
38
|
);
|
|
39
39
|
|
|
40
40
|
export {
|
|
41
41
|
calc
|
|
42
42
|
};
|
|
43
|
-
//# sourceMappingURL=chunk-
|
|
43
|
+
//# sourceMappingURL=chunk-5J34UVTP.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/calc.ts"],"sourcesContent":["type Operator = \"*\" | \"+\" | \"/\" | \"-\"\n\nexport type Operand = number | string\n\nfunction toExpression(operator: Operator, ...args: Operand[]) {\n return args.join(` ${operator} `).replace(/calc/g, \"\")\n}\n\nfunction add(...args: Operand[]) {\n return `calc(${toExpression(\"+\", ...args)})`\n}\n\nfunction subtract(...args: Operand[]) {\n return `calc(${toExpression(\"-\", ...args)})`\n}\n\nfunction multiply(...args: Operand[]) {\n return `calc(${toExpression(\"*\", ...args)})`\n}\n\nfunction divide(...args: Operand[]) {\n return `calc(${toExpression(\"/\", ...args)})`\n}\n\nfunction negate(value: Operand) {\n if (!isNaN(parseFloat(value.toString())))\n return String(value).startsWith(\"-\") ? String(value).slice(1) : `-${value}`\n\n return multiply(value, -1)\n}\n\ninterface Calc {\n add: (...args: Operand[]) => Calc\n divide: (...args: Operand[]) => Calc\n multiply: (...args: Operand[]) => Calc\n negate: () => Calc\n subtract: (...args: Operand[]) => Calc\n toString: () => string\n}\n\nexport const calc = Object.assign(\n (x: Operand): Calc => ({\n add: (...args) => calc(add(x, ...args)),\n divide: (...args) => calc(divide(x, ...args)),\n multiply: (...args) => calc(multiply(x, ...args)),\n negate: () => calc(negate(x)),\n subtract: (...args) => calc(subtract(x, ...args)),\n toString: () => x.toString(),\n }),\n {\n add,\n divide,\n multiply,\n negate,\n subtract,\n },\n)\n"],"mappings":";AAIA,SAAS,aAAa,aAAuB,MAAiB;AAC5D,SAAO,KAAK,KAAK,IAAI,QAAQ,GAAG,EAAE,QAAQ,SAAS,EAAE;AACvD;AAEA,SAAS,OAAO,MAAiB;AAC/B,SAAO,QAAQ,aAAa,KAAK,GAAG,IAAI,CAAC;AAC3C;AAEA,SAAS,YAAY,MAAiB;AACpC,SAAO,QAAQ,aAAa,KAAK,GAAG,IAAI,CAAC;AAC3C;AAEA,SAAS,YAAY,MAAiB;AACpC,SAAO,QAAQ,aAAa,KAAK,GAAG,IAAI,CAAC;AAC3C;AAEA,SAAS,UAAU,MAAiB;AAClC,SAAO,QAAQ,aAAa,KAAK,GAAG,IAAI,CAAC;AAC3C;AAEA,SAAS,OAAO,OAAgB;AAC9B,MAAI,CAAC,MAAM,WAAW,MAAM,SAAS,CAAC,CAAC;AACrC,WAAO,OAAO,KAAK,EAAE,WAAW,GAAG,IAAI,OAAO,KAAK,EAAE,MAAM,CAAC,IAAI,IAAI,KAAK;AAE3E,SAAO,SAAS,OAAO,EAAE;AAC3B;AAWO,IAAM,OAAO,OAAO;AAAA,EACzB,CAAC,OAAsB;AAAA,IACrB,KAAK,IAAI,SAAS,KAAK,IAAI,GAAG,GAAG,IAAI,CAAC;AAAA,IACtC,QAAQ,IAAI,SAAS,KAAK,OAAO,GAAG,GAAG,IAAI,CAAC;AAAA,IAC5C,UAAU,IAAI,SAAS,KAAK,SAAS,GAAG,GAAG,IAAI,CAAC;AAAA,IAChD,QAAQ,MAAM,KAAK,OAAO,CAAC,CAAC;AAAA,IAC5B,UAAU,IAAI,SAAS,KAAK,SAAS,GAAG,GAAG,IAAI,CAAC;AAAA,IAChD,UAAU,MAAM,EAAE,SAAS;AAAA,EAC7B;AAAA,EACA;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;","names":[]}
|
|
@@ -2,42 +2,37 @@ import {
|
|
|
2
2
|
isNumber,
|
|
3
3
|
isObject,
|
|
4
4
|
isString
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-QWVYBC6R.mjs";
|
|
6
6
|
|
|
7
7
|
// src/react.tsx
|
|
8
8
|
import * as React from "react";
|
|
9
9
|
function createContext2({
|
|
10
|
-
strict = true,
|
|
11
|
-
errorMessage = "useContext: `context` is undefined. Seems you forgot to wrap component within the Provider",
|
|
12
10
|
name,
|
|
13
|
-
defaultValue
|
|
11
|
+
defaultValue,
|
|
12
|
+
errorMessage = "useContext: `context` is undefined. Seems you forgot to wrap component within the Provider",
|
|
13
|
+
strict = true
|
|
14
14
|
} = {}) {
|
|
15
15
|
const Context = React.createContext(defaultValue);
|
|
16
16
|
Context.displayName = name;
|
|
17
17
|
const useContext2 = () => {
|
|
18
|
-
var _a;
|
|
19
18
|
const context = React.useContext(Context);
|
|
20
19
|
if (!context && strict) {
|
|
21
20
|
const error = new Error(errorMessage);
|
|
22
21
|
error.name = "ContextError";
|
|
23
|
-
|
|
22
|
+
Error.captureStackTrace(error, useContext2);
|
|
24
23
|
throw error;
|
|
25
24
|
}
|
|
26
25
|
return context;
|
|
27
26
|
};
|
|
28
|
-
return [
|
|
29
|
-
Context.Provider,
|
|
30
|
-
useContext2,
|
|
31
|
-
Context
|
|
32
|
-
];
|
|
27
|
+
return [Context.Provider, useContext2, Context];
|
|
33
28
|
}
|
|
34
|
-
var useSafeLayoutEffect = Boolean(globalThis
|
|
29
|
+
var useSafeLayoutEffect = Boolean(globalThis.document) ? React.useLayoutEffect : React.useEffect;
|
|
35
30
|
function useUnmountEffect(callback) {
|
|
36
31
|
return React.useEffect(() => () => callback(), []);
|
|
37
32
|
}
|
|
38
33
|
function useIsMounted({
|
|
39
|
-
|
|
40
|
-
|
|
34
|
+
delay = 0,
|
|
35
|
+
rerender = false
|
|
41
36
|
} = {}) {
|
|
42
37
|
const isMountedRef = React.useRef(false);
|
|
43
38
|
const [isMounted, setIsMounted] = React.useState(false);
|
|
@@ -196,7 +191,7 @@ function useAsyncFunc(func, deps = [], initialState = { loading: false }) {
|
|
|
196
191
|
return func(...args).then(
|
|
197
192
|
(value) => {
|
|
198
193
|
if (isMounted() && callId === lastCallId.current)
|
|
199
|
-
setState({
|
|
194
|
+
setState({ loading: false, value });
|
|
200
195
|
return value;
|
|
201
196
|
},
|
|
202
197
|
(error) => {
|
|
@@ -251,4 +246,4 @@ export {
|
|
|
251
246
|
useAsyncRetry,
|
|
252
247
|
createId
|
|
253
248
|
};
|
|
254
|
-
//# sourceMappingURL=chunk-
|
|
249
|
+
//# sourceMappingURL=chunk-CCLWFJAZ.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/react.tsx"],"sourcesContent":["import * as React from \"react\"\nimport { isNumber, isObject, isString } from \"./assertion\"\n\nexport type MaybeRenderProp<Y> =\n | ((props: Y) => React.ReactNode)\n | React.ReactNode\n\ninterface Options<Y = any> {\n name?: string\n defaultValue?: Y\n errorMessage?: string\n strict?: boolean\n}\n\ntype CreateContextReturn<Y> = [React.Provider<Y>, () => Y, React.Context<Y>]\n\nexport function createContext<Y = any>(options: {\n name?: string\n defaultValue?: Y\n errorMessage?: string\n strict?: true\n}): CreateContextReturn<Y>\n\nexport function createContext<Y = any>(options: {\n name?: string\n defaultValue?: Y\n errorMessage?: string\n strict?: false\n}): CreateContextReturn<undefined | Y>\n\nexport function createContext<Y = any>({\n name,\n defaultValue,\n errorMessage = \"useContext: `context` is undefined. Seems you forgot to wrap component within the Provider\",\n strict = true,\n}: Options<Y> = {}) {\n const Context = React.createContext<undefined | Y>(defaultValue)\n\n Context.displayName = name\n\n const useContext = () => {\n const context = React.useContext(Context)\n\n if (!context && strict) {\n const error = new Error(errorMessage)\n error.name = \"ContextError\"\n Error.captureStackTrace(error, useContext)\n throw error\n }\n\n return context\n }\n\n return [Context.Provider, useContext, Context] as CreateContextReturn<\n undefined | Y\n >\n}\n\nexport const useSafeLayoutEffect = Boolean(globalThis.document)\n ? React.useLayoutEffect\n : React.useEffect\n\nexport function useUnmountEffect(callback: () => void) {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n return React.useEffect(() => () => callback(), [])\n}\n\nexport interface UseIsMountedProps {\n delay?: number\n rerender?: boolean\n}\n\nexport function useIsMounted({\n delay = 0,\n rerender = false,\n}: UseIsMountedProps = {}): [() => boolean, boolean] {\n const isMountedRef = React.useRef(false)\n const [isMounted, setIsMounted] = React.useState(false)\n\n useSafeLayoutEffect(() => {\n isMountedRef.current = true\n\n let timeoutId: any = null\n\n if (rerender) {\n if (delay > 0) {\n timeoutId = setTimeout(() => setIsMounted(true), delay)\n } else {\n setIsMounted(true)\n }\n }\n\n return () => {\n isMountedRef.current = false\n\n if (rerender) setIsMounted(false)\n\n if (timeoutId) clearTimeout(timeoutId)\n }\n }, [delay, rerender])\n\n return [React.useCallback(() => isMountedRef.current, []), isMounted]\n}\n\nexport type UseIsMountedReturn = ReturnType<typeof useIsMounted>\n\nexport function getValidChildren(\n children: React.ReactNode,\n): React.ReactElement[] {\n return React.Children.toArray(children).filter((child) =>\n React.isValidElement(child),\n )\n}\n\nexport function isValidElement(child: any): child is React.ReactNode {\n return React.isValidElement(child) || isString(child) || isNumber(child)\n}\n\nexport function isSomeElement(child: any, type: any): boolean {\n if (child.type === type) return true\n\n if (!!child.__ui__ && !!type.__ui__) {\n if (child.__ui__ === type.__ui__) return true\n }\n\n const payload = child.type._payload\n\n if (!!payload?.value?.__ui__ && !!type.__ui__) {\n if (payload?.value?.__ui__ === type.__ui__) return true\n }\n\n return false\n}\n\nexport function findChild(\n children: React.ReactElement[],\n ...types: (React.JSXElementConstructor<any> | string)[]\n): React.ReactElement | undefined {\n const child = children.find((child) =>\n types.some((type) => isSomeElement(child, type)),\n )\n\n return child\n}\n\nexport function findChildren(\n children: React.ReactElement[],\n ...types: (React.JSXElementConstructor<any> | string)[]\n): [React.ReactElement | undefined, ...React.ReactElement[]] {\n const child = children.find((child) =>\n types.some((type) => isSomeElement(child, type)),\n )\n\n if (child) {\n return children.sort((a, b) => {\n if (types.some((type) => isSomeElement(a, type))) {\n return -1\n } else if (types.some((type) => isSomeElement(b, type))) {\n return 1\n } else {\n return 0\n }\n }) as [React.ReactElement | undefined, ...React.ReactElement[]]\n } else {\n return [undefined, ...children]\n }\n}\n\nexport function includesChildren(\n children: React.ReactElement[],\n ...types: (React.JSXElementConstructor<any> | string)[]\n): boolean {\n return children.some((child) => {\n if (types.some((type) => isSomeElement(child, type))) return true\n\n const children = getValidChildren(child.props.children)\n\n return children.length ? includesChildren(children, ...types) : false\n })\n}\n\nexport function omitChildren(\n children: React.ReactElement[],\n ...types: (React.JSXElementConstructor<any> | string)[]\n): React.ReactElement[] {\n return children.filter((child) =>\n types.every((type) => !isSomeElement(child, type)),\n )\n}\n\nexport function pickChildren(\n children: React.ReactElement[],\n ...types: (React.JSXElementConstructor<any> | string)[]\n): React.ReactElement[] {\n return children.filter((child) =>\n types.every((type) => isSomeElement(child, type)),\n )\n}\n\nexport function cx(...classNames: (string | undefined)[]) {\n return classNames.filter(Boolean).join(\" \")\n}\n\ntype ReactRef<T> = React.LegacyRef<T> | React.MutableRefObject<T> | React.Ref<T>\n\nexport function isRefObject(val: any): val is { current: any } {\n return isObject(val) && \"current\" in val\n}\n\nexport function assignRef<T = any>(ref: ReactRef<T> | undefined, value: T) {\n if (ref == null) return\n\n if (typeof ref === \"function\") {\n ref(value)\n\n return\n }\n\n try {\n // @ts-ignore\n ref.current = value\n } catch {\n throw new Error(`Cannot assign value '${value}' to ref '${ref}'`)\n }\n}\n\nexport function mergeRefs<T = any>(\n ...refs: (null | ReactRef<T> | undefined)[]\n) {\n return function (node: null | T) {\n return refs.forEach((ref) => {\n assignRef(ref, node)\n })\n }\n}\n\nexport function useMergeRefs<T = any>(...refs: (ReactRef<T> | undefined)[]) {\n return React.useMemo(() => mergeRefs(...refs), [refs])\n}\n\nexport function useCallbackRef<T extends (...args: any[]) => any>(\n callback: T | undefined,\n deps: React.DependencyList = [],\n) {\n const callbackRef = React.useRef(callback)\n\n React.useEffect(() => {\n callbackRef.current = callback\n })\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n return React.useCallback(\n ((...args) => callbackRef.current?.(...args)) as T,\n deps,\n )\n}\n\n/**\n * `useUpdateEffect` is a custom hook that skips side effects on the initial render, and only runs them when the dependency array changes.\n *\n * @see Docs https://yamada-ui.com/hooks/use-update-effect\n */\nexport function useUpdateEffect(\n callback: React.EffectCallback,\n deps: React.DependencyList,\n) {\n const renderCycleRef = React.useRef(false)\n const effectCycleRef = React.useRef(false)\n\n React.useEffect(() => {\n const mounted = renderCycleRef.current\n const run = mounted && effectCycleRef.current\n\n if (run) return callback()\n\n effectCycleRef.current = true\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, deps)\n\n React.useEffect(() => {\n renderCycleRef.current = true\n\n return () => {\n renderCycleRef.current = false\n }\n }, [])\n}\n\nexport type FunctionReturningPromise = (...args: any[]) => Promise<any>\n\n/**\n * `useAsync` is a custom hook that executes an asynchronous function and tracks its state.\n *\n * @see Docs https://yamada-ui.com/hooks/use-async\n */\nexport function useAsync<T extends FunctionReturningPromise>(\n func: T,\n deps: React.DependencyList = [],\n) {\n const [state, callback] = useAsyncFunc(func, deps, { loading: true })\n\n React.useEffect(() => {\n callback()\n }, [callback])\n\n return state\n}\n\nexport type AsyncState<T> =\n | {\n error: Error\n loading: false\n value?: undefined\n }\n | {\n loading: boolean\n error?: undefined\n value?: undefined\n }\n | {\n loading: false\n value: T\n error?: undefined\n }\n | {\n loading: true\n error?: Error | undefined\n value?: T\n }\n\nexport type PromiseType<P extends Promise<any>> =\n P extends Promise<infer T> ? T : never\n\ntype StateFromFunctionReturningPromise<T extends FunctionReturningPromise> =\n AsyncState<PromiseType<ReturnType<T>>>\n\nexport type AsyncFnReturn<\n T extends FunctionReturningPromise = FunctionReturningPromise,\n> = [StateFromFunctionReturningPromise<T>, T]\n\nexport function useAsyncFunc<T extends FunctionReturningPromise>(\n func: T,\n deps: React.DependencyList = [],\n initialState: StateFromFunctionReturningPromise<T> = { loading: false },\n): AsyncFnReturn<T> {\n const lastCallId = React.useRef(0)\n const [isMounted] = useIsMounted()\n const [state, setState] =\n React.useState<StateFromFunctionReturningPromise<T>>(initialState)\n\n const callback = React.useCallback(\n (...args: Parameters<T>): ReturnType<T> => {\n const callId = ++lastCallId.current\n\n if (!state.loading)\n setState((prevState) => ({ ...prevState, loading: true }))\n\n return func(...args).then(\n (value) => {\n if (isMounted() && callId === lastCallId.current)\n setState({ loading: false, value })\n\n return value\n },\n (error) => {\n if (isMounted() && callId === lastCallId.current)\n setState({ error, loading: false })\n\n return error\n },\n ) as ReturnType<T>\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n deps,\n )\n\n return [state, callback as unknown as T]\n}\n\nexport type AsyncStateRetry<T> = {\n retry(): void\n} & AsyncState<T>\n\nexport function useAsyncRetry<T>(\n func: () => Promise<T>,\n deps: React.DependencyList = [],\n) {\n const [attempt, setAttempt] = React.useState<number>(0)\n const state = useAsync(func, [...deps, attempt])\n\n const stateLoading = state.loading\n\n const retry = React.useCallback(() => {\n if (stateLoading) return\n\n setAttempt((currentAttempt) => currentAttempt + 1)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [...deps, stateLoading])\n\n return { ...state, retry }\n}\n\nlet createIdCounter = 0\n\nexport function createId(prefix: string) {\n return `${prefix}-${++createIdCounter}-${new Date().getTime()}`\n}\n"],"mappings":";;;;;;;AAAA,YAAY,WAAW;AA8BhB,SAASA,eAAuB;AAAA,EACrC;AAAA,EACA;AAAA,EACA,eAAe;AAAA,EACf,SAAS;AACX,IAAgB,CAAC,GAAG;AAClB,QAAM,UAAgB,oBAA6B,YAAY;AAE/D,UAAQ,cAAc;AAEtB,QAAMC,cAAa,MAAM;AACvB,UAAM,UAAgB,iBAAW,OAAO;AAExC,QAAI,CAAC,WAAW,QAAQ;AACtB,YAAM,QAAQ,IAAI,MAAM,YAAY;AACpC,YAAM,OAAO;AACb,YAAM,kBAAkB,OAAOA,WAAU;AACzC,YAAM;AAAA,IACR;AAEA,WAAO;AAAA,EACT;AAEA,SAAO,CAAC,QAAQ,UAAUA,aAAY,OAAO;AAG/C;AAEO,IAAM,sBAAsB,QAAQ,WAAW,QAAQ,IACpD,wBACA;AAEH,SAAS,iBAAiB,UAAsB;AAErD,SAAa,gBAAU,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC;AACnD;AAOO,SAAS,aAAa;AAAA,EAC3B,QAAQ;AAAA,EACR,WAAW;AACb,IAAuB,CAAC,GAA6B;AACnD,QAAM,eAAqB,aAAO,KAAK;AACvC,QAAM,CAAC,WAAW,YAAY,IAAU,eAAS,KAAK;AAEtD,sBAAoB,MAAM;AACxB,iBAAa,UAAU;AAEvB,QAAI,YAAiB;AAErB,QAAI,UAAU;AACZ,UAAI,QAAQ,GAAG;AACb,oBAAY,WAAW,MAAM,aAAa,IAAI,GAAG,KAAK;AAAA,MACxD,OAAO;AACL,qBAAa,IAAI;AAAA,MACnB;AAAA,IACF;AAEA,WAAO,MAAM;AACX,mBAAa,UAAU;AAEvB,UAAI,SAAU,cAAa,KAAK;AAEhC,UAAI,UAAW,cAAa,SAAS;AAAA,IACvC;AAAA,EACF,GAAG,CAAC,OAAO,QAAQ,CAAC;AAEpB,SAAO,CAAO,kBAAY,MAAM,aAAa,SAAS,CAAC,CAAC,GAAG,SAAS;AACtE;AAIO,SAAS,iBACd,UACsB;AACtB,SAAa,eAAS,QAAQ,QAAQ,EAAE;AAAA,IAAO,CAAC,UACxC,qBAAe,KAAK;AAAA,EAC5B;AACF;AAEO,SAASC,gBAAe,OAAsC;AACnE,SAAa,qBAAe,KAAK,KAAK,SAAS,KAAK,KAAK,SAAS,KAAK;AACzE;AAEO,SAAS,cAAc,OAAY,MAAoB;AAtH9D;AAuHE,MAAI,MAAM,SAAS,KAAM,QAAO;AAEhC,MAAI,CAAC,CAAC,MAAM,UAAU,CAAC,CAAC,KAAK,QAAQ;AACnC,QAAI,MAAM,WAAW,KAAK,OAAQ,QAAO;AAAA,EAC3C;AAEA,QAAM,UAAU,MAAM,KAAK;AAE3B,MAAI,CAAC,GAAC,wCAAS,UAAT,mBAAgB,WAAU,CAAC,CAAC,KAAK,QAAQ;AAC7C,UAAI,wCAAS,UAAT,mBAAgB,YAAW,KAAK,OAAQ,QAAO;AAAA,EACrD;AAEA,SAAO;AACT;AAEO,SAAS,UACd,aACG,OAC6B;AAChC,QAAM,QAAQ,SAAS;AAAA,IAAK,CAACC,WAC3B,MAAM,KAAK,CAAC,SAAS,cAAcA,QAAO,IAAI,CAAC;AAAA,EACjD;AAEA,SAAO;AACT;AAEO,SAAS,aACd,aACG,OACwD;AAC3D,QAAM,QAAQ,SAAS;AAAA,IAAK,CAACA,WAC3B,MAAM,KAAK,CAAC,SAAS,cAAcA,QAAO,IAAI,CAAC;AAAA,EACjD;AAEA,MAAI,OAAO;AACT,WAAO,SAAS,KAAK,CAAC,GAAG,MAAM;AAC7B,UAAI,MAAM,KAAK,CAAC,SAAS,cAAc,GAAG,IAAI,CAAC,GAAG;AAChD,eAAO;AAAA,MACT,WAAW,MAAM,KAAK,CAAC,SAAS,cAAc,GAAG,IAAI,CAAC,GAAG;AACvD,eAAO;AAAA,MACT,OAAO;AACL,eAAO;AAAA,MACT;AAAA,IACF,CAAC;AAAA,EACH,OAAO;AACL,WAAO,CAAC,QAAW,GAAG,QAAQ;AAAA,EAChC;AACF;AAEO,SAAS,iBACd,aACG,OACM;AACT,SAAO,SAAS,KAAK,CAAC,UAAU;AAC9B,QAAI,MAAM,KAAK,CAAC,SAAS,cAAc,OAAO,IAAI,CAAC,EAAG,QAAO;AAE7D,UAAMC,YAAW,iBAAiB,MAAM,MAAM,QAAQ;AAEtD,WAAOA,UAAS,SAAS,iBAAiBA,WAAU,GAAG,KAAK,IAAI;AAAA,EAClE,CAAC;AACH;AAEO,SAAS,aACd,aACG,OACmB;AACtB,SAAO,SAAS;AAAA,IAAO,CAAC,UACtB,MAAM,MAAM,CAAC,SAAS,CAAC,cAAc,OAAO,IAAI,CAAC;AAAA,EACnD;AACF;AAEO,SAAS,aACd,aACG,OACmB;AACtB,SAAO,SAAS;AAAA,IAAO,CAAC,UACtB,MAAM,MAAM,CAAC,SAAS,cAAc,OAAO,IAAI,CAAC;AAAA,EAClD;AACF;AAEO,SAAS,MAAM,YAAoC;AACxD,SAAO,WAAW,OAAO,OAAO,EAAE,KAAK,GAAG;AAC5C;AAIO,SAAS,YAAY,KAAmC;AAC7D,SAAO,SAAS,GAAG,KAAK,aAAa;AACvC;AAEO,SAAS,UAAmB,KAA8B,OAAU;AACzE,MAAI,OAAO,KAAM;AAEjB,MAAI,OAAO,QAAQ,YAAY;AAC7B,QAAI,KAAK;AAET;AAAA,EACF;AAEA,MAAI;AAEF,QAAI,UAAU;AAAA,EAChB,QAAQ;AACN,UAAM,IAAI,MAAM,wBAAwB,KAAK,aAAa,GAAG,GAAG;AAAA,EAClE;AACF;AAEO,SAAS,aACX,MACH;AACA,SAAO,SAAU,MAAgB;AAC/B,WAAO,KAAK,QAAQ,CAAC,QAAQ;AAC3B,gBAAU,KAAK,IAAI;AAAA,IACrB,CAAC;AAAA,EACH;AACF;AAEO,SAAS,gBAAyB,MAAmC;AAC1E,SAAa,cAAQ,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC;AACvD;AAEO,SAAS,eACd,UACA,OAA6B,CAAC,GAC9B;AACA,QAAM,cAAoB,aAAO,QAAQ;AAEzC,EAAM,gBAAU,MAAM;AACpB,gBAAY,UAAU;AAAA,EACxB,CAAC;AAGD,SAAa;AAAA,IACV,IAAI,SAAM;AA5Pf;AA4PkB,+BAAY,YAAZ,qCAAsB,GAAG;AAAA;AAAA,IACvC;AAAA,EACF;AACF;AAOO,SAAS,gBACd,UACA,MACA;AACA,QAAM,iBAAuB,aAAO,KAAK;AACzC,QAAM,iBAAuB,aAAO,KAAK;AAEzC,EAAM,gBAAU,MAAM;AACpB,UAAM,UAAU,eAAe;AAC/B,UAAM,MAAM,WAAW,eAAe;AAEtC,QAAI,IAAK,QAAO,SAAS;AAEzB,mBAAe,UAAU;AAAA,EAE3B,GAAG,IAAI;AAEP,EAAM,gBAAU,MAAM;AACpB,mBAAe,UAAU;AAEzB,WAAO,MAAM;AACX,qBAAe,UAAU;AAAA,IAC3B;AAAA,EACF,GAAG,CAAC,CAAC;AACP;AASO,SAAS,SACd,MACA,OAA6B,CAAC,GAC9B;AACA,QAAM,CAAC,OAAO,QAAQ,IAAI,aAAa,MAAM,MAAM,EAAE,SAAS,KAAK,CAAC;AAEpE,EAAM,gBAAU,MAAM;AACpB,aAAS;AAAA,EACX,GAAG,CAAC,QAAQ,CAAC;AAEb,SAAO;AACT;AAkCO,SAAS,aACd,MACA,OAA6B,CAAC,GAC9B,eAAqD,EAAE,SAAS,MAAM,GACpD;AAClB,QAAM,aAAmB,aAAO,CAAC;AACjC,QAAM,CAAC,SAAS,IAAI,aAAa;AACjC,QAAM,CAAC,OAAO,QAAQ,IACd,eAA+C,YAAY;AAEnE,QAAM,WAAiB;AAAA,IACrB,IAAI,SAAuC;AACzC,YAAM,SAAS,EAAE,WAAW;AAE5B,UAAI,CAAC,MAAM;AACT,iBAAS,CAAC,eAAe,EAAE,GAAG,WAAW,SAAS,KAAK,EAAE;AAE3D,aAAO,KAAK,GAAG,IAAI,EAAE;AAAA,QACnB,CAAC,UAAU;AACT,cAAI,UAAU,KAAK,WAAW,WAAW;AACvC,qBAAS,EAAE,SAAS,OAAO,MAAM,CAAC;AAEpC,iBAAO;AAAA,QACT;AAAA,QACA,CAAC,UAAU;AACT,cAAI,UAAU,KAAK,WAAW,WAAW;AACvC,qBAAS,EAAE,OAAO,SAAS,MAAM,CAAC;AAEpC,iBAAO;AAAA,QACT;AAAA,MACF;AAAA,IACF;AAAA;AAAA,IAEA;AAAA,EACF;AAEA,SAAO,CAAC,OAAO,QAAwB;AACzC;AAMO,SAAS,cACd,MACA,OAA6B,CAAC,GAC9B;AACA,QAAM,CAAC,SAAS,UAAU,IAAU,eAAiB,CAAC;AACtD,QAAM,QAAQ,SAAS,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC;AAE/C,QAAM,eAAe,MAAM;AAE3B,QAAM,QAAc,kBAAY,MAAM;AACpC,QAAI,aAAc;AAElB,eAAW,CAAC,mBAAmB,iBAAiB,CAAC;AAAA,EAEnD,GAAG,CAAC,GAAG,MAAM,YAAY,CAAC;AAE1B,SAAO,EAAE,GAAG,OAAO,MAAM;AAC3B;AAEA,IAAI,kBAAkB;AAEf,SAAS,SAAS,QAAgB;AACvC,SAAO,GAAG,MAAM,IAAI,EAAE,eAAe,KAAI,oBAAI,KAAK,GAAE,QAAQ,CAAC;AAC/D;","names":["createContext","useContext","isValidElement","child","children"]}
|
|
@@ -4,17 +4,17 @@ import {
|
|
|
4
4
|
isObject,
|
|
5
5
|
isString,
|
|
6
6
|
isUndefined
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-QWVYBC6R.mjs";
|
|
8
8
|
|
|
9
9
|
// src/object.ts
|
|
10
10
|
function omitObjectHelper(obj, path) {
|
|
11
11
|
if (!path.length) return obj;
|
|
12
12
|
const [primaryKey, ...restKeys] = path;
|
|
13
|
-
if (restKeys.length === 0 && primaryKey in obj) {
|
|
13
|
+
if (restKeys.length === 0 && primaryKey && primaryKey in obj) {
|
|
14
14
|
const { [primaryKey]: _, ...rest } = obj;
|
|
15
15
|
return rest;
|
|
16
16
|
}
|
|
17
|
-
if (obj[primaryKey] && isObject(obj[primaryKey])) {
|
|
17
|
+
if (primaryKey && obj[primaryKey] && isObject(obj[primaryKey])) {
|
|
18
18
|
return {
|
|
19
19
|
...obj,
|
|
20
20
|
[primaryKey]: omitObjectHelper(obj[primaryKey], restKeys)
|
|
@@ -93,7 +93,7 @@ function flattenObject(obj, { maxDepth, omitKeys, separator, shouldProcess } = {
|
|
|
93
93
|
separator != null ? separator : separator = ".";
|
|
94
94
|
if (!isObject(obj) && !isArray(obj) || !maxDepth) return obj;
|
|
95
95
|
return Object.entries(obj).reduce((result, [key, value]) => {
|
|
96
|
-
if (isObject(value) && !Object.keys(value).some((key2) => omitKeys
|
|
96
|
+
if (isObject(value) && !Object.keys(value).some((key2) => omitKeys.includes(key2)) && (!shouldProcess || shouldProcess(value))) {
|
|
97
97
|
Object.entries(
|
|
98
98
|
flattenObject(value, {
|
|
99
99
|
maxDepth: maxDepth - 1,
|
|
@@ -132,10 +132,11 @@ function replaceObject(objOrArray, callBack) {
|
|
|
132
132
|
}
|
|
133
133
|
}
|
|
134
134
|
function getObject(obj, path, fallback, i) {
|
|
135
|
-
const
|
|
136
|
-
for (i = 0; i <
|
|
135
|
+
const keys = isString(path) ? path.split(/\[(.*?)\]|\./).filter(Boolean) : [path];
|
|
136
|
+
for (i = 0; i < keys.length; i += 1) {
|
|
137
137
|
if (!obj) break;
|
|
138
|
-
|
|
138
|
+
const key = keys[i];
|
|
139
|
+
obj = key ? obj[key] : void 0;
|
|
139
140
|
}
|
|
140
141
|
return obj === void 0 ? fallback : obj;
|
|
141
142
|
}
|
|
@@ -154,8 +155,6 @@ function memoizeObject(func) {
|
|
|
154
155
|
}
|
|
155
156
|
var getMemoizedObject = memoizeObject(getObject);
|
|
156
157
|
function assignAfter(target, ...sources) {
|
|
157
|
-
if (target == null)
|
|
158
|
-
throw new TypeError("Cannot convert undefined or null to object");
|
|
159
158
|
const result = { ...target };
|
|
160
159
|
for (const nextSource of sources) {
|
|
161
160
|
if (nextSource == null) continue;
|
|
@@ -184,4 +183,4 @@ export {
|
|
|
184
183
|
getMemoizedObject,
|
|
185
184
|
assignAfter
|
|
186
185
|
};
|
|
187
|
-
//# sourceMappingURL=chunk-
|
|
186
|
+
//# sourceMappingURL=chunk-EJPLJ6FG.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/object.ts"],"sourcesContent":["import type { Dict } from \"./index.types\"\nimport {\n isArray,\n isFunction,\n isObject,\n isString,\n isUndefined,\n} from \"./assertion\"\n\nfunction omitObjectHelper<Y extends Dict, M extends keyof Y>(\n obj: Y,\n path: M[] | readonly M[],\n): any {\n if (!path.length) return obj\n\n const [primaryKey, ...restKeys] = path\n\n if (restKeys.length === 0 && primaryKey && primaryKey in obj) {\n const { [primaryKey]: _, ...rest } = obj\n\n return rest\n }\n\n if (primaryKey && obj[primaryKey] && isObject(obj[primaryKey])) {\n return {\n ...obj,\n [primaryKey]: omitObjectHelper(obj[primaryKey], restKeys),\n }\n }\n\n return obj\n}\n\nexport function omitObject<\n Y extends Dict,\n M extends keyof Y = keyof Y,\n D = any,\n>(obj: Y, keys: M[] | readonly M[]) {\n return (keys as M[]).reduce((prev, key) => {\n const path = (isString(key) ? key.split(\".\") : []) as M[]\n\n return omitObjectHelper(prev, path)\n }, obj) as unknown as D extends unknown ? Omit<Y, M> : D\n}\n\nexport function pickObject<\n Y extends Dict,\n M extends keyof Y = keyof Y,\n D = any,\n>(obj: Y, keys: M[] | readonly M[], fallbackValue = \"__fallback\") {\n return (keys as M[]).reduce((prev, key) => {\n const path = isString(key) ? key.split(\".\") : []\n\n if (!path.length) return prev\n\n const value = getMemoizedObject(obj, key as string, fallbackValue)\n\n if (value === fallbackValue) return prev\n\n prev = merge(\n prev,\n path.reduceRight(\n (prev, key) => ({ [key]: key === path.at(-1) ? value : prev }),\n {},\n ),\n )\n\n return prev\n }, {}) as D extends unknown ? { [H in M]: Y[H] } : D\n}\n\nexport function splitObject<Y extends Dict, M extends keyof Y>(\n obj: Y,\n keys: M[] | readonly M[],\n) {\n const picked: Dict = {}\n const omitted: Dict = {}\n\n for (const [key, value] of Object.entries(obj)) {\n if (keys.includes(key as Y[M])) {\n picked[key] = value\n } else {\n omitted[key] = value\n }\n }\n\n return [picked, omitted] as [{ [P in M]: Y[P] }, Omit<Y, M>]\n}\n\nexport function filterObject<Y extends Dict, M extends Dict>(\n obj: Y,\n func: (key: keyof Y, value: Y[keyof Y], obj: Y) => boolean,\n): M {\n const result: Dict = {}\n\n Object.entries(obj).forEach(([key, value]) => {\n const shouldPass = func(key, value, obj)\n\n if (shouldPass) result[key] = value\n })\n\n return result as M\n}\n\nexport function filterUndefined<Y extends Dict>(obj: Y): Y {\n return filterObject(obj, (_, val) => val !== null && val !== undefined)\n}\n\nexport function merge<Y extends Dict>(\n target: any,\n source: any,\n mergeArray = false,\n): Y {\n let result = Object.assign({}, target)\n\n if (isObject(source)) {\n if (isObject(target)) {\n for (const [sourceKey, sourceValue] of Object.entries(source)) {\n const targetValue: any = target[sourceKey]\n\n if (mergeArray && isArray(sourceValue) && isArray(targetValue)) {\n result[sourceKey] = targetValue.concat(...sourceValue)\n } else if (\n !isFunction(sourceValue) &&\n isObject(sourceValue) &&\n target.hasOwnProperty(sourceKey)\n ) {\n result[sourceKey] = merge(targetValue, sourceValue, mergeArray)\n } else {\n Object.assign(result, { [sourceKey]: sourceValue })\n }\n }\n } else {\n result = source\n }\n }\n\n return result as Y\n}\n\nexport interface FlattenObjectOptions {\n maxDepth?: number\n omitKeys?: string[]\n separator?: string\n shouldProcess?: (obj: any) => boolean\n}\n\nexport function flattenObject<Y extends Dict>(\n obj: any,\n { maxDepth, omitKeys, separator, shouldProcess }: FlattenObjectOptions = {},\n): Y {\n maxDepth ??= Infinity\n omitKeys ??= []\n separator ??= \".\"\n\n if ((!isObject(obj) && !isArray(obj)) || !maxDepth) return obj\n\n return Object.entries(obj).reduce<any>((result, [key, value]) => {\n if (\n isObject(value) &&\n !Object.keys(value).some((key) => omitKeys.includes(key)) &&\n (!shouldProcess || shouldProcess(value))\n ) {\n Object.entries(\n flattenObject(value, {\n maxDepth: maxDepth - 1,\n omitKeys,\n separator,\n shouldProcess,\n }),\n ).forEach(([childKey, childValue]) => {\n result[`${key}${separator}${childKey}`] = childValue\n })\n } else {\n result[key] = value\n }\n\n return result\n }, {}) as Y\n}\n\nexport function objectFromEntries<Y extends Dict>(entries: any[][]): Y {\n return entries.reduce<any>((result, [key, value]) => {\n result[key] = value\n\n return result\n }, {}) as Y\n}\n\nexport function keysFormObject<Y extends object>(obj: Y): (keyof Y)[] {\n return Object.keys(obj) as (keyof Y)[]\n}\n\nexport function replaceObject<Y = any>(\n objOrArray: Y,\n callBack: (value: any) => any,\n): Y {\n if (isArray(objOrArray)) {\n return objOrArray.map(callBack) as Y\n } else if (isObject(objOrArray)) {\n return Object.entries(objOrArray).reduce<Dict>((obj, [key, value]) => {\n obj[key] = callBack(value)\n\n return obj\n }, {}) as Y\n } else {\n return callBack(objOrArray)\n }\n}\n\nexport function getObject(\n obj: Dict | undefined,\n path: number | string,\n fallback?: any,\n i?: number,\n) {\n const keys = isString(path)\n ? path.split(/\\[(.*?)\\]|\\./).filter(Boolean)\n : [path]\n\n for (i = 0; i < keys.length; i += 1) {\n if (!obj) break\n\n const key = keys[i]\n\n obj = key ? obj[key] : undefined\n }\n\n return obj === undefined ? fallback : obj\n}\n\nexport function memoizeObject(func: typeof getObject) {\n const cache = new WeakMap()\n\n function memoizedFunc<Y>(\n obj: Dict,\n path: number | string,\n fallback?: any,\n i?: number,\n ): Y {\n if (isUndefined(obj)) return func(obj, path, fallback)\n\n if (!cache.has(obj)) cache.set(obj, new Map())\n\n const map = cache.get(obj)\n\n if (map.has(path)) return map.get(path)\n\n const value = func(obj, path, fallback, i)\n\n map.set(path, value)\n\n return value as Y\n }\n\n return memoizedFunc\n}\n\nexport const getMemoizedObject = memoizeObject(getObject)\n\nexport function assignAfter(target: { [key: string]: any }, ...sources: any[]) {\n const result: { [key: string]: unknown } = { ...target }\n\n for (const nextSource of sources) {\n if (nextSource == null) continue\n\n for (const nextKey in nextSource) {\n if (!Object.prototype.hasOwnProperty.call(nextSource, nextKey)) continue\n\n if (nextKey in result) delete result[nextKey]\n\n result[nextKey] = nextSource[nextKey]\n }\n }\n\n return result\n}\n"],"mappings":"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","names":["prev","key"]}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getMemoizedObject
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-EJPLJ6FG.mjs";
|
|
4
4
|
import {
|
|
5
5
|
isArray,
|
|
6
6
|
isNumber,
|
|
7
7
|
isObject
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-QWVYBC6R.mjs";
|
|
9
9
|
|
|
10
10
|
// src/color.ts
|
|
11
11
|
import * as c from "color2k";
|
|
@@ -128,13 +128,14 @@ function transparentizeColor(color, alpha) {
|
|
|
128
128
|
};
|
|
129
129
|
}
|
|
130
130
|
function randomColor({
|
|
131
|
-
|
|
132
|
-
|
|
131
|
+
colors,
|
|
132
|
+
string
|
|
133
133
|
} = {}) {
|
|
134
|
+
var _a, _b;
|
|
134
135
|
const fallback = randomHex();
|
|
135
|
-
if (string && colors) return randomColorFromList(string, colors);
|
|
136
|
+
if (string && colors) return (_a = randomColorFromList(string, colors)) != null ? _a : fallback;
|
|
136
137
|
if (string && !colors) return randomColorFromString(string);
|
|
137
|
-
if (colors && !string) return randomFromList(colors);
|
|
138
|
+
if (colors && !string) return (_b = randomFromList(colors)) != null ? _b : fallback;
|
|
138
139
|
return fallback;
|
|
139
140
|
}
|
|
140
141
|
function randomHex() {
|
|
@@ -362,4 +363,4 @@ export {
|
|
|
362
363
|
hsvTo,
|
|
363
364
|
sameColor
|
|
364
365
|
};
|
|
365
|
-
//# sourceMappingURL=chunk-
|
|
366
|
+
//# sourceMappingURL=chunk-K4FGNB3Y.mjs.map
|