@codeleap/utils 7.0.2 → 7.1.1
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/array.js +4 -10
- package/dist/array.js.map +1 -1
- package/dist/cloneDeep.js +1 -4
- package/dist/cloneDeep.js.map +1 -1
- package/dist/colors.js +7 -14
- package/dist/colors.js.map +1 -1
- package/dist/date.js +3 -9
- package/dist/date.js.map +1 -1
- package/dist/faker.js +1 -4
- package/dist/faker.js.map +1 -1
- package/dist/file.js +1 -4
- package/dist/file.js.map +1 -1
- package/dist/index.js +11 -27
- package/dist/index.js.map +1 -1
- package/dist/locale.js +1 -4
- package/dist/locale.js.map +1 -1
- package/dist/misc.js +10 -20
- package/dist/misc.js.map +1 -1
- package/dist/object.js +51 -42
- package/dist/object.js.map +1 -1
- package/dist/react.js +29 -56
- package/dist/react.js.map +1 -1
- package/dist/string.js +8 -17
- package/dist/string.js.map +1 -1
- package/package.json +4 -4
package/dist/array.js
CHANGED
|
@@ -1,9 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.objectFromArray = objectFromArray;
|
|
4
|
-
exports.uniqueArrayByProperty = uniqueArrayByProperty;
|
|
5
|
-
exports.flatten = flatten;
|
|
6
|
-
exports.range = range;
|
|
7
1
|
/**
|
|
8
2
|
* Indexes an array into an object keyed by a derived value.
|
|
9
3
|
*
|
|
@@ -11,7 +5,7 @@ exports.range = range;
|
|
|
11
5
|
* key. When omitted, array indices are used as keys. Duplicate keys silently
|
|
12
6
|
* overwrite earlier entries.
|
|
13
7
|
*/
|
|
14
|
-
function objectFromArray(arr, keyAccessor) {
|
|
8
|
+
export function objectFromArray(arr, keyAccessor) {
|
|
15
9
|
let getObjectKey = (_, idx) => idx;
|
|
16
10
|
if (keyAccessor) {
|
|
17
11
|
switch (typeof keyAccessor) {
|
|
@@ -33,7 +27,7 @@ function objectFromArray(arr, keyAccessor) {
|
|
|
33
27
|
* When duplicates exist, the **last** occurrence wins because `objectFromArray`
|
|
34
28
|
* overwrites earlier entries with the same key.
|
|
35
29
|
*/
|
|
36
|
-
function uniqueArrayByProperty(array, getProperty) {
|
|
30
|
+
export function uniqueArrayByProperty(array, getProperty) {
|
|
37
31
|
return Object.values(objectFromArray(array, getProperty));
|
|
38
32
|
}
|
|
39
33
|
/**
|
|
@@ -42,7 +36,7 @@ function uniqueArrayByProperty(array, getProperty) {
|
|
|
42
36
|
* Unlike `Array.prototype.flat(Infinity)`, this implementation does not rely on
|
|
43
37
|
* native flat support and works identically across all environments.
|
|
44
38
|
*/
|
|
45
|
-
function flatten(arr) {
|
|
39
|
+
export function flatten(arr) {
|
|
46
40
|
let newArr = [];
|
|
47
41
|
arr.forEach((item) => {
|
|
48
42
|
if (Array.isArray(item)) {
|
|
@@ -59,7 +53,7 @@ function flatten(arr) {
|
|
|
59
53
|
*
|
|
60
54
|
* Both bounds are included: `range(1, 3)` → `[1, 2, 3]`.
|
|
61
55
|
*/
|
|
62
|
-
function range(start, end) {
|
|
56
|
+
export function range(start, end) {
|
|
63
57
|
const length = end - start + 1;
|
|
64
58
|
return Array.from({ length }, (_, index) => index + start);
|
|
65
59
|
}
|
package/dist/array.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"array.js","sourceRoot":"","sources":["../src/array.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"array.js","sourceRoot":"","sources":["../src/array.ts"],"names":[],"mappings":"AAIA;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAC7B,GAAQ,EACR,WAAoB;IAEpB,IAAI,YAAY,GAA+C,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAA;IAE9E,IAAI,WAAW,EAAE,CAAC;QAChB,QAAQ,OAAO,WAAW,EAAE,CAAC;YAC3B,KAAK,QAAQ;gBACX,YAAY,GAAG,CAAC,KAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,WAAsB,CAA+B,CAAA;gBACxF,MAAK;YACP,KAAK,UAAU;gBACb,YAAY,GAAG,WAAyD,CAAA;gBACxE,MAAK;QACT,CAAC;IACH,CAAC;IAED,MAAM,UAAU,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,CAAA;IAE7E,OAAO,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,CAAA;AACvC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CACnC,KAAU,EACV,WAAc;IAEd,OAAO,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAA;AAC3D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,OAAO,CAAoB,GAAQ;IACjD,IAAI,MAAM,GAAG,EAAS,CAAA;IAEtB,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACnB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,MAAM,GAAG,CAAC,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;QACxC,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACnB,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,KAAK,CAAC,KAAa,EAAE,GAAW;IAC9C,MAAM,MAAM,GAAG,GAAG,GAAG,KAAK,GAAG,CAAC,CAAA;IAC9B,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC,CAAA;AAC5D,CAAC"}
|
package/dist/cloneDeep.js
CHANGED
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.cloneDeep = cloneDeep;
|
|
4
1
|
/**
|
|
5
2
|
* Produces a full recursive clone of `value` without any external dependencies.
|
|
6
3
|
*
|
|
@@ -9,7 +6,7 @@ exports.cloneDeep = cloneDeep;
|
|
|
9
6
|
* these built-ins are cloned as plain objects — prototype chain is not preserved.
|
|
10
7
|
* Circular references will cause a stack overflow.
|
|
11
8
|
*/
|
|
12
|
-
function cloneDeep(value) {
|
|
9
|
+
export function cloneDeep(value) {
|
|
13
10
|
if (value === null || typeof value !== 'object') {
|
|
14
11
|
return value;
|
|
15
12
|
}
|
package/dist/cloneDeep.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloneDeep.js","sourceRoot":"","sources":["../src/cloneDeep.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cloneDeep.js","sourceRoot":"","sources":["../src/cloneDeep.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,UAAU,SAAS,CAAU,KAAQ;IACzC,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAChD,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,SAAS,CAAiB,CAAA;IAC7C,CAAC;IAED,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;QAC1B,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAiB,CAAA;IAClD,CAAC;IAED,IAAI,KAAK,YAAY,GAAG,EAAE,CAAC;QACzB,MAAM,SAAS,GAAG,IAAI,GAAG,EAAE,CAAA;QAC3B,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACrB,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;QAChC,CAAC,CAAC,CAAA;QACF,OAAO,SAAyB,CAAA;IAClC,CAAC;IAED,IAAI,KAAK,YAAY,GAAG,EAAE,CAAC;QACzB,MAAM,SAAS,GAAG,IAAI,GAAG,EAAE,CAAA;QAC3B,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YAClB,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;QAC7B,CAAC,CAAC,CAAA;QACF,OAAO,SAAyB,CAAA;IAClC,CAAC;IAED,IAAI,KAAK,YAAY,MAAM,EAAE,CAAC;QAC5B,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAiB,CAAA;IAC9D,CAAC;IAED,MAAM,SAAS,GAA4B,EAAE,CAAA;IAE7C,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;YACrD,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,CAAE,KAAiC,CAAC,GAAG,CAAC,CAAC,CAAA;QACrE,CAAC;IACH,CAAC;IAED,OAAO,SAAyB,CAAA;AAClC,CAAC"}
|
package/dist/colors.js
CHANGED
|
@@ -1,19 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.hexToRgb = hexToRgb;
|
|
7
|
-
exports.shadeColor = shadeColor;
|
|
8
|
-
const tinycolor2_1 = __importDefault(require("tinycolor2"));
|
|
9
|
-
const types_1 = require("@codeleap/types");
|
|
1
|
+
import tinycolor from 'tinycolor2';
|
|
2
|
+
import { TypeGuards } from '@codeleap/types';
|
|
10
3
|
/**
|
|
11
4
|
* Parses a 6-digit hex colour string (with or without leading `#`) into its
|
|
12
5
|
* `{ r, g, b }` components.
|
|
13
6
|
*
|
|
14
7
|
* Returns `null` for invalid or short (3-digit) hex values.
|
|
15
8
|
*/
|
|
16
|
-
function hexToRgb(hex) {
|
|
9
|
+
export function hexToRgb(hex) {
|
|
17
10
|
const result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
|
|
18
11
|
return result
|
|
19
12
|
? {
|
|
@@ -33,17 +26,17 @@ const shadeColorCache = {};
|
|
|
33
26
|
* - Results are memoised in a module-level cache keyed by the serialised parameters,
|
|
34
27
|
* so repeated calls with identical arguments are effectively free.
|
|
35
28
|
*/
|
|
36
|
-
function shadeColor(color, percent = 0, opacity = null) {
|
|
29
|
+
export function shadeColor(color, percent = 0, opacity = null) {
|
|
37
30
|
const _color = color.trim();
|
|
38
31
|
const serialParams = [_color, percent.toString()];
|
|
39
|
-
if (
|
|
32
|
+
if (TypeGuards.isNumber(opacity)) {
|
|
40
33
|
serialParams.push(opacity.toString());
|
|
41
34
|
}
|
|
42
35
|
const cacheKey = serialParams.join('/');
|
|
43
36
|
if (!!shadeColorCache[cacheKey]) {
|
|
44
37
|
return shadeColorCache[cacheKey];
|
|
45
38
|
}
|
|
46
|
-
const cl = (
|
|
39
|
+
const cl = tinycolor(_color);
|
|
47
40
|
if (percent !== 0) {
|
|
48
41
|
const shouldDarken = percent < 0;
|
|
49
42
|
if (shouldDarken) {
|
|
@@ -53,7 +46,7 @@ function shadeColor(color, percent = 0, opacity = null) {
|
|
|
53
46
|
cl.lighten(percent);
|
|
54
47
|
}
|
|
55
48
|
}
|
|
56
|
-
if (
|
|
49
|
+
if (TypeGuards.isNumber(opacity)) {
|
|
57
50
|
cl.setAlpha(opacity);
|
|
58
51
|
}
|
|
59
52
|
const rgbObj = cl.toRgb();
|
package/dist/colors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"colors.js","sourceRoot":"","sources":["../src/colors.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"colors.js","sourceRoot":"","sources":["../src/colors.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5C;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CAAC,GAAW;IAClC,MAAM,MAAM,GAAG,2CAA2C,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACpE,OAAO,MAAM;QACX,CAAC,CAAC;YACA,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YAC1B,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YAC1B,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;SAC3B;QACD,CAAC,CAAC,IAAI,CAAA;AACV,CAAC;AAED,MAAM,eAAe,GAA2B,EAAE,CAAA;AAElD;;;;;;;;GAQG;AACH,MAAM,UAAU,UAAU,CAAC,KAAa,EAAE,OAAO,GAAG,CAAC,EAAE,UAAyB,IAAI;IAClF,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,EAAE,CAAA;IAC3B,MAAM,YAAY,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAA;IACjD,IAAI,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACjC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAA;IACvC,CAAC;IACD,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAEvC,IAAI,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChC,OAAO,eAAe,CAAC,QAAQ,CAAC,CAAA;IAClC,CAAC;IACD,MAAM,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC,CAAA;IAC5B,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;QAElB,MAAM,YAAY,GAAG,OAAO,GAAG,CAAC,CAAA;QAEhC,IAAI,YAAY,EAAE,CAAC;YACjB,EAAE,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAA;QACrB,CAAC;aAAM,CAAC;YACN,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QACrB,CAAC;IACH,CAAC;IACD,IAAI,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACjC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;IAEtB,CAAC;IAED,MAAM,MAAM,GAAG,EAAE,CAAC,KAAK,EAAE,CAAA;IACzB,MAAM,MAAM,GAAG,QAAQ,MAAM,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,GAAG,CAAA;IACtE,eAAe,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAA;IAClC,OAAO,MAAM,CAAA;AACf,CAAC"}
|
package/dist/date.js
CHANGED
|
@@ -1,10 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.dateUtils = void 0;
|
|
7
|
-
const dayjs_1 = __importDefault(require("dayjs"));
|
|
1
|
+
import dayjs from 'dayjs';
|
|
8
2
|
const removeTimezoneAndFormat = (date, format = 'YYYY-MM-DD') => {
|
|
9
3
|
if (!date)
|
|
10
4
|
return '';
|
|
@@ -15,7 +9,7 @@ const removeTimezoneAndFormat = (date, format = 'YYYY-MM-DD') => {
|
|
|
15
9
|
else if (typeof date === 'string' && date.includes('T')) {
|
|
16
10
|
normalizedDate = date.split('T')[0] + 'T12:00:00';
|
|
17
11
|
}
|
|
18
|
-
return (
|
|
12
|
+
return dayjs(normalizedDate).startOf('day').format(format);
|
|
19
13
|
};
|
|
20
14
|
/**
|
|
21
15
|
* Date helpers that normalise timezone-sensitive values before formatting.
|
|
@@ -26,7 +20,7 @@ const removeTimezoneAndFormat = (date, format = 'YYYY-MM-DD') => {
|
|
|
26
20
|
* falls on a different calendar day in the user's timezone. Returns `''` for
|
|
27
21
|
* falsy input.
|
|
28
22
|
*/
|
|
29
|
-
|
|
23
|
+
export const dateUtils = {
|
|
30
24
|
removeTimezoneAndFormat,
|
|
31
25
|
};
|
|
32
26
|
//# sourceMappingURL=date.js.map
|
package/dist/date.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date.js","sourceRoot":"","sources":["../src/date.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"date.js","sourceRoot":"","sources":["../src/date.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,MAAM,uBAAuB,GAAG,CAAC,IAAS,EAAE,MAAM,GAAG,YAAY,EAAE,EAAE;IACnE,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAA;IAEpB,IAAI,cAAc,GAAG,IAAI,CAAA;IAEzB,IAAI,IAAI,YAAY,IAAI,EAAE,CAAC;QACzB,cAAc,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,CAAA;IACjE,CAAC;SAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1D,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,CAAA;IACnD,CAAC;IAED,OAAO,KAAK,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;AAC5D,CAAC,CAAA;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,uBAAuB;CACxB,CAAA"}
|
package/dist/faker.js
CHANGED
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.faker = void 0;
|
|
4
1
|
const names = [
|
|
5
2
|
'James', 'John', 'Robert', 'Michael', 'William', 'David', 'Richard', 'Joseph', 'Thomas',
|
|
6
3
|
'Charles', 'Christopher', 'Daniel', 'Matthew', 'Anthony', 'Donald', 'Mark', 'Paul', 'Steven',
|
|
@@ -36,7 +33,7 @@ function number(min = 0, max = 100) {
|
|
|
36
33
|
* Use this instead of heavy faker libraries in tests or seed scripts where the
|
|
37
34
|
* small vocabulary is sufficient.
|
|
38
35
|
*/
|
|
39
|
-
|
|
36
|
+
export const faker = {
|
|
40
37
|
lastName: () => getRandom(surnames),
|
|
41
38
|
firstName: () => getRandom(names),
|
|
42
39
|
animal: () => getRandom(animals),
|
package/dist/faker.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"faker.js","sourceRoot":"","sources":["../src/faker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"faker.js","sourceRoot":"","sources":["../src/faker.ts"],"names":[],"mappings":"AAAA,MAAM,KAAK,GAAG;IACZ,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ;IACvF,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ;IAC5F,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS;IACxF,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO;CAC5C,CAAA;AAED,MAAM,QAAQ,GAAG;IACf,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO;IAC7E,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO;IAC1D,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO;IACtF,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ;CAChG,CAAA;AAED,MAAM,OAAO,GAAG;IACd,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM;IAClD,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO;CAC1D,CAAA;AAED,SAAS,SAAS,CAAC,IAAmB;IACpC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;AACtD,CAAC;AAED,SAAS,MAAM,CAAC,MAAc,CAAC,EAAE,MAAc,GAAG;IAChD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAA;AAC1D,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,QAAQ,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC;IACnC,SAAS,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC;IACjC,MAAM,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC;IAChC,MAAM;IACN,IAAI,EAAE,GAAG,EAAE,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,EAAE;CACzD,CAAA"}
|
package/dist/file.js
CHANGED
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.parseFilePathData = parseFilePathData;
|
|
4
1
|
const separators = /[\\\/]+/;
|
|
5
2
|
/**
|
|
6
3
|
* Splits a file system path into its directory, base name, and extension.
|
|
@@ -10,7 +7,7 @@ const separators = /[\\\/]+/;
|
|
|
10
7
|
* `extension`. The returned `path` is always joined with `/` regardless of the
|
|
11
8
|
* original separator.
|
|
12
9
|
*/
|
|
13
|
-
function parseFilePathData(path) {
|
|
10
|
+
export function parseFilePathData(path) {
|
|
14
11
|
const parts = path.split(separators);
|
|
15
12
|
const lastPart = parts[parts.length - 1];
|
|
16
13
|
let fileName = lastPart;
|
package/dist/file.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file.js","sourceRoot":"","sources":["../src/file.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"file.js","sourceRoot":"","sources":["../src/file.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,GAAG,SAAS,CAAA;AAE5B;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;IAEpC,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IAExC,IAAI,QAAQ,GAAG,QAAQ,CAAA;IACvB,IAAI,GAAG,GAAG,EAAE,CAAA;IAEZ,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;QACxC,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;QAExC,GAAG,GAAG,QAAQ,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IACtC,CAAC;IAED,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QAClC,SAAS,EAAE,GAAG;QACd,IAAI,EAAE,QAAQ;KACf,CAAA;AACH,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,28 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./array"), exports);
|
|
18
|
-
__exportStar(require("./colors"), exports);
|
|
19
|
-
__exportStar(require("./misc"), exports);
|
|
20
|
-
__exportStar(require("./object"), exports);
|
|
21
|
-
__exportStar(require("./react"), exports);
|
|
22
|
-
__exportStar(require("./file"), exports);
|
|
23
|
-
__exportStar(require("./string"), exports);
|
|
24
|
-
__exportStar(require("./faker"), exports);
|
|
25
|
-
__exportStar(require("./cloneDeep"), exports);
|
|
26
|
-
__exportStar(require("./locale"), exports);
|
|
27
|
-
__exportStar(require("./date"), exports);
|
|
1
|
+
export * from './array';
|
|
2
|
+
export * from './colors';
|
|
3
|
+
export * from './misc';
|
|
4
|
+
export * from './object';
|
|
5
|
+
export * from './react';
|
|
6
|
+
export * from './file';
|
|
7
|
+
export * from './string';
|
|
8
|
+
export * from './faker';
|
|
9
|
+
export * from './cloneDeep';
|
|
10
|
+
export * from './locale';
|
|
11
|
+
export * from './date';
|
|
28
12
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,QAAQ,CAAA;AACtB,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,QAAQ,CAAA;AACtB,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,aAAa,CAAA;AAC3B,cAAc,UAAU,CAAA;AACxB,cAAc,QAAQ,CAAA"}
|
package/dist/locale.js
CHANGED
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getSimilarLocale = getSimilarLocale;
|
|
4
1
|
/**
|
|
5
2
|
* Finds the closest matching key in `languageDictionary` for a given `locale`.
|
|
6
3
|
*
|
|
@@ -8,7 +5,7 @@ exports.getSimilarLocale = getSimilarLocale;
|
|
|
8
5
|
* will match an `'en-US'` dictionary key. Returns `defaultLocale` when no
|
|
9
6
|
* partial match exists.
|
|
10
7
|
*/
|
|
11
|
-
function getSimilarLocale(locale, defaultLocale, languageDictionary) {
|
|
8
|
+
export function getSimilarLocale(locale, defaultLocale, languageDictionary) {
|
|
12
9
|
const inputFirstPart = locale.substring(0, 2);
|
|
13
10
|
const keys = Object.keys(languageDictionary);
|
|
14
11
|
for (const key of keys) {
|
package/dist/locale.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"locale.js","sourceRoot":"","sources":["../src/locale.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"locale.js","sourceRoot":"","sources":["../src/locale.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAC9B,MAAc,EACd,aAAqB,EACrB,kBAA6B;IAE7B,MAAM,cAAc,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IAC7C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;IAC5C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,YAAY,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QACxC,IAAI,cAAc,KAAK,YAAY;YAAE,OAAO,GAAG,CAAA;IACjD,CAAC;IACD,OAAO,aAAa,CAAA;AACtB,CAAC"}
|
package/dist/misc.js
CHANGED
|
@@ -1,13 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.imagePathToFileObject = imagePathToFileObject;
|
|
4
|
-
exports.matchInitialToColor = matchInitialToColor;
|
|
5
|
-
exports.waitFor = waitFor;
|
|
6
|
-
exports.parseSourceUrl = parseSourceUrl;
|
|
7
|
-
exports.getNestedStylesByKey = getNestedStylesByKey;
|
|
8
|
-
exports.hasFastRefreshed = hasFastRefreshed;
|
|
9
|
-
exports.throttle = throttle;
|
|
10
|
-
const string_1 = require("./string");
|
|
1
|
+
import { capitalize } from './string';
|
|
11
2
|
/**
|
|
12
3
|
* Converts a remote image URL into a file-upload-compatible object
|
|
13
4
|
* (`{ uri, name, type }`).
|
|
@@ -15,7 +6,7 @@ const string_1 = require("./string");
|
|
|
15
6
|
* The `type` is inferred from the URL's file extension. Returns `null` when
|
|
16
7
|
* `imagePath` is falsy, making it safe to pass directly to optional file-input APIs.
|
|
17
8
|
*/
|
|
18
|
-
function imagePathToFileObject(imagePath) {
|
|
9
|
+
export function imagePathToFileObject(imagePath) {
|
|
19
10
|
const parts = imagePath ? imagePath.split('.') : '';
|
|
20
11
|
const ext = imagePath ? parts[parts.length - 1].toLowerCase() : '';
|
|
21
12
|
const fileValue = imagePath
|
|
@@ -62,20 +53,20 @@ const letterToColorMap = {
|
|
|
62
53
|
* Lookup is case-insensitive. Returns `'#999999'` for empty, undefined, or
|
|
63
54
|
* characters not in the `a–z` range.
|
|
64
55
|
*/
|
|
65
|
-
function matchInitialToColor(anyString) {
|
|
56
|
+
export function matchInitialToColor(anyString) {
|
|
66
57
|
if (!anyString)
|
|
67
58
|
return '#999999';
|
|
68
59
|
return letterToColorMap[anyString.toLowerCase().charAt(0)] || '#999999';
|
|
69
60
|
}
|
|
70
61
|
/** Returns a Promise that resolves after `ms` milliseconds. */
|
|
71
|
-
function waitFor(ms) {
|
|
62
|
+
export function waitFor(ms) {
|
|
72
63
|
return new Promise((resolve) => {
|
|
73
64
|
setTimeout(() => {
|
|
74
65
|
resolve();
|
|
75
66
|
}, ms);
|
|
76
67
|
});
|
|
77
68
|
}
|
|
78
|
-
function parseSourceUrl(args, Settings) {
|
|
69
|
+
export function parseSourceUrl(args, Settings) {
|
|
79
70
|
if (!args)
|
|
80
71
|
return null;
|
|
81
72
|
let res = '';
|
|
@@ -106,11 +97,11 @@ function parseSourceUrl(args, Settings) {
|
|
|
106
97
|
* Used internally by component style systems to pull out sub-part styles
|
|
107
98
|
* (e.g. `inputLabel`, `inputWrapper`) into their own namespaced objects.
|
|
108
99
|
*/
|
|
109
|
-
function getNestedStylesByKey(match, variantStyles) {
|
|
100
|
+
export function getNestedStylesByKey(match, variantStyles) {
|
|
110
101
|
const styles = {};
|
|
111
102
|
for (const [key, value] of Object.entries(variantStyles)) {
|
|
112
103
|
if (key.startsWith(match)) {
|
|
113
|
-
const partName =
|
|
104
|
+
const partName = capitalize(key.replace(match, ''), true);
|
|
114
105
|
styles[partName] = value;
|
|
115
106
|
}
|
|
116
107
|
}
|
|
@@ -125,9 +116,8 @@ function getNestedStylesByKey(match, variantStyles) {
|
|
|
125
116
|
* app start; anything longer suggests a subsequent refresh rather than cold boot.
|
|
126
117
|
* Returns `undefined` and logs a warning when `InitTime` is not set.
|
|
127
118
|
*/
|
|
128
|
-
function hasFastRefreshed(Settings) {
|
|
129
|
-
|
|
130
|
-
if ((_a = Settings === null || Settings === void 0 ? void 0 : Settings.Environment) === null || _a === void 0 ? void 0 : _a.InitTime) {
|
|
119
|
+
export function hasFastRefreshed(Settings) {
|
|
120
|
+
if (Settings?.Environment?.InitTime) {
|
|
131
121
|
const timeFromStartup = (new Date()).getTime() - Settings.Environment.InitTime.getTime();
|
|
132
122
|
// It usually takes less than a seconds (~300ms) from app launch to running this, so if's been more than that we've probably fast refreshed
|
|
133
123
|
const fastRefreshed = Settings.Environment.IsDev && timeFromStartup > 1000;
|
|
@@ -147,7 +137,7 @@ const throttleTimerId = {};
|
|
|
147
137
|
* Using a string/number `ref` allows multiple independent throttle timers to coexist
|
|
148
138
|
* in a single module without needing to hold separate timer handles.
|
|
149
139
|
*/
|
|
150
|
-
function throttle(func, ref, delay) {
|
|
140
|
+
export function throttle(func, ref, delay) {
|
|
151
141
|
if (throttleTimerId[ref]) {
|
|
152
142
|
return;
|
|
153
143
|
}
|
package/dist/misc.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"misc.js","sourceRoot":"","sources":["../src/misc.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"misc.js","sourceRoot":"","sources":["../src/misc.ts"],"names":[],"mappings":"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"}
|
package/dist/object.js
CHANGED
|
@@ -1,25 +1,13 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.deepGet = exports.deepSet = void 0;
|
|
4
|
-
exports.deepMerge = deepMerge;
|
|
5
|
-
exports.mapObject = mapObject;
|
|
6
|
-
exports.objectPaths = objectPaths;
|
|
7
|
-
exports.isValuePrimitive = isValuePrimitive;
|
|
8
|
-
exports.optionalObject = optionalObject;
|
|
9
|
-
exports.traverse = traverse;
|
|
10
|
-
exports.createSettings = createSettings;
|
|
11
|
-
exports.extractKey = extractKey;
|
|
12
|
-
exports.objectPickBy = objectPickBy;
|
|
13
|
-
exports.transformObject = transformObject;
|
|
14
|
-
exports.filterObjectByPrefix = filterObjectByPrefix;
|
|
15
1
|
/**
|
|
16
2
|
* Recursively merges `changes` into `base`, deep-merging nested plain objects.
|
|
17
3
|
*
|
|
18
4
|
* Arrays and `Date` instances are treated as scalar values — they replace rather
|
|
19
5
|
* than merge. If `changes` is not iterable, it is returned as-is.
|
|
20
6
|
*/
|
|
21
|
-
function deepMerge(base = {}, changes = {}) {
|
|
22
|
-
const obj =
|
|
7
|
+
export function deepMerge(base = {}, changes = {}) {
|
|
8
|
+
const obj = {
|
|
9
|
+
...base,
|
|
10
|
+
};
|
|
23
11
|
let changeEntries = [];
|
|
24
12
|
try {
|
|
25
13
|
changeEntries = Object.entries(changes);
|
|
@@ -41,7 +29,7 @@ function deepMerge(base = {}, changes = {}) {
|
|
|
41
29
|
* Returns an array — not a new object — so it is useful when you need to
|
|
42
30
|
* transform key-value pairs into arbitrary values (e.g. JSX elements).
|
|
43
31
|
*/
|
|
44
|
-
function mapObject(obj, callback) {
|
|
32
|
+
export function mapObject(obj, callback) {
|
|
45
33
|
return Object.entries(obj).map((args) => callback(args));
|
|
46
34
|
}
|
|
47
35
|
/**
|
|
@@ -50,38 +38,36 @@ function mapObject(obj, callback) {
|
|
|
50
38
|
*
|
|
51
39
|
* Numeric path segments are coerced to array indices when the current node is an array.
|
|
52
40
|
*/
|
|
53
|
-
const deepSet = (base = {}, path, value) => {
|
|
41
|
+
export const deepSet = (base = {}, path, value) => {
|
|
54
42
|
const keys = path.split('.');
|
|
55
43
|
const obj = base;
|
|
56
44
|
let thisKey = keys[0];
|
|
57
45
|
if (Array.isArray(base)) {
|
|
58
46
|
thisKey = Number(thisKey);
|
|
59
47
|
}
|
|
60
|
-
obj[thisKey] = keys.length === 1 ? value :
|
|
48
|
+
obj[thisKey] = keys.length === 1 ? value : deepSet(obj[thisKey], keys.slice(1).join('.'), value);
|
|
61
49
|
return obj;
|
|
62
50
|
};
|
|
63
|
-
exports.deepSet = deepSet;
|
|
64
51
|
/**
|
|
65
52
|
* Reads a value from `obj` at a dot-separated `path`.
|
|
66
53
|
*
|
|
67
54
|
* Returns `undefined` (without throwing) when any intermediate node is absent,
|
|
68
55
|
* because property access on `undefined` propagates silently through the loop.
|
|
69
56
|
*/
|
|
70
|
-
const deepGet = (path, obj) => {
|
|
57
|
+
export const deepGet = (path, obj) => {
|
|
71
58
|
const parts = path.split('.');
|
|
72
|
-
let newObj =
|
|
59
|
+
let newObj = { ...obj };
|
|
73
60
|
for (const prop of parts) {
|
|
74
61
|
newObj = newObj[prop];
|
|
75
62
|
}
|
|
76
63
|
return newObj;
|
|
77
64
|
};
|
|
78
|
-
exports.deepGet = deepGet;
|
|
79
65
|
/**
|
|
80
66
|
* Returns every dot-separated leaf path in a nested object.
|
|
81
67
|
*
|
|
82
68
|
* Array values are treated as leaves — their indices are not traversed.
|
|
83
69
|
*/
|
|
84
|
-
function objectPaths(obj) {
|
|
70
|
+
export function objectPaths(obj) {
|
|
85
71
|
let paths = [];
|
|
86
72
|
Object.entries(obj).forEach(([key, value]) => {
|
|
87
73
|
if (!Array.isArray(value) && typeof value === 'object') {
|
|
@@ -94,7 +80,7 @@ function objectPaths(obj) {
|
|
|
94
80
|
return paths;
|
|
95
81
|
}
|
|
96
82
|
/** Returns `true` only for `string`, `number`, and `boolean` — `null`, `undefined`, and objects are excluded. */
|
|
97
|
-
function isValuePrimitive(a) {
|
|
83
|
+
export function isValuePrimitive(a) {
|
|
98
84
|
return ['string', 'number', 'boolean'].includes(typeof a);
|
|
99
85
|
}
|
|
100
86
|
/**
|
|
@@ -103,7 +89,7 @@ function isValuePrimitive(a) {
|
|
|
103
89
|
* Intended for use inside object spreads where the ternary would otherwise
|
|
104
90
|
* require wrapping: `{ ...optionalObject(flag, trueProps, {}) }`.
|
|
105
91
|
*/
|
|
106
|
-
function optionalObject(condition, ifTrue, ifFalse) {
|
|
92
|
+
export function optionalObject(condition, ifTrue, ifFalse) {
|
|
107
93
|
return condition ? ifTrue : ifFalse;
|
|
108
94
|
}
|
|
109
95
|
/**
|
|
@@ -115,21 +101,45 @@ function optionalObject(condition, ifTrue, ifFalse) {
|
|
|
115
101
|
* from the callback is accepted by the type but **does not halt traversal** —
|
|
116
102
|
* the implementation does not check the return value.
|
|
117
103
|
*/
|
|
118
|
-
function traverse(obj = {}, callback, args) {
|
|
104
|
+
export function traverse(obj = {}, callback, args) {
|
|
119
105
|
const isPrimitive = isValuePrimitive(obj);
|
|
120
|
-
const info =
|
|
106
|
+
const info = {
|
|
107
|
+
path: [],
|
|
108
|
+
depth: 0,
|
|
109
|
+
key: '',
|
|
110
|
+
type: typeof obj,
|
|
111
|
+
value: obj,
|
|
112
|
+
primitive: isPrimitive,
|
|
113
|
+
...args,
|
|
114
|
+
};
|
|
121
115
|
if (isPrimitive) {
|
|
122
|
-
callback(
|
|
116
|
+
callback({
|
|
117
|
+
...info,
|
|
118
|
+
depth: info.depth,
|
|
119
|
+
});
|
|
123
120
|
}
|
|
124
121
|
else {
|
|
125
122
|
for (const [key, value] of Object.entries(obj || {})) {
|
|
126
123
|
const isPrimitive = isValuePrimitive(value);
|
|
127
124
|
if (!isPrimitive) {
|
|
128
|
-
callback(
|
|
129
|
-
|
|
125
|
+
callback({
|
|
126
|
+
...info,
|
|
127
|
+
key,
|
|
128
|
+
value,
|
|
129
|
+
type: typeof value,
|
|
130
|
+
primitive: isPrimitive,
|
|
131
|
+
path: [...info.path, key],
|
|
132
|
+
});
|
|
130
133
|
}
|
|
131
|
-
traverse(value, callback,
|
|
132
|
-
|
|
134
|
+
traverse(value, callback, {
|
|
135
|
+
...info,
|
|
136
|
+
key,
|
|
137
|
+
value,
|
|
138
|
+
type: typeof value,
|
|
139
|
+
primitive: isValuePrimitive(value),
|
|
140
|
+
path: [...info.path, key],
|
|
141
|
+
depth: info.depth + 1,
|
|
142
|
+
});
|
|
133
143
|
}
|
|
134
144
|
}
|
|
135
145
|
}
|
|
@@ -140,7 +150,7 @@ function traverse(obj = {}, callback, args) {
|
|
|
140
150
|
* objects so that editors provide autocompletion and type errors at the
|
|
141
151
|
* definition site rather than at the point of use.
|
|
142
152
|
*/
|
|
143
|
-
function createSettings(a) {
|
|
153
|
+
export function createSettings(a) {
|
|
144
154
|
return a;
|
|
145
155
|
}
|
|
146
156
|
/**
|
|
@@ -149,7 +159,7 @@ function createSettings(a) {
|
|
|
149
159
|
* Intended as a default `keyExtractor` in list utilities where records are
|
|
150
160
|
* expected to carry an `id` field.
|
|
151
161
|
*/
|
|
152
|
-
function extractKey(obj) {
|
|
162
|
+
export function extractKey(obj) {
|
|
153
163
|
if (obj.id) {
|
|
154
164
|
return obj.id;
|
|
155
165
|
}
|
|
@@ -159,12 +169,11 @@ function extractKey(obj) {
|
|
|
159
169
|
*
|
|
160
170
|
* Only own enumerable keys are visited; prototype-chain properties are skipped.
|
|
161
171
|
*/
|
|
162
|
-
function objectPickBy(obj, predicate) {
|
|
163
|
-
var _a;
|
|
172
|
+
export function objectPickBy(obj, predicate) {
|
|
164
173
|
const result = {};
|
|
165
174
|
for (const key in obj) {
|
|
166
|
-
if (
|
|
167
|
-
result[key] = obj
|
|
175
|
+
if (obj?.hasOwnProperty?.(key) && predicate?.(obj?.[key], key)) {
|
|
176
|
+
result[key] = obj?.[key];
|
|
168
177
|
}
|
|
169
178
|
}
|
|
170
179
|
return result;
|
|
@@ -176,10 +185,10 @@ function objectPickBy(obj, predicate) {
|
|
|
176
185
|
* Keys returned by `predicate` need not be unique — later entries silently
|
|
177
186
|
* overwrite earlier ones if they resolve to the same key.
|
|
178
187
|
*/
|
|
179
|
-
function transformObject(obj, predicate) {
|
|
188
|
+
export function transformObject(obj, predicate) {
|
|
180
189
|
const result = {};
|
|
181
190
|
for (const key in obj) {
|
|
182
|
-
const [newKey, newValue] = predicate
|
|
191
|
+
const [newKey, newValue] = predicate?.(obj?.[key], key);
|
|
183
192
|
result[newKey] = newValue;
|
|
184
193
|
}
|
|
185
194
|
return result;
|
|
@@ -191,7 +200,7 @@ function transformObject(obj, predicate) {
|
|
|
191
200
|
* Useful for splitting a flat props object into logical groups, e.g. separating
|
|
192
201
|
* all `inputXxx` props from a combined component interface.
|
|
193
202
|
*/
|
|
194
|
-
function filterObjectByPrefix(obj, prefix) {
|
|
203
|
+
export function filterObjectByPrefix(obj, prefix) {
|
|
195
204
|
const result = {};
|
|
196
205
|
for (const key in obj) {
|
|
197
206
|
if (key.startsWith(prefix)) {
|
package/dist/object.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"object.js","sourceRoot":"","sources":["../src/object.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"object.js","sourceRoot":"","sources":["../src/object.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAC,OAA4B,EAAE,EAAE,UAA+B,EAAE;IACzF,MAAM,GAAG,GAAwB;QAC/B,GAAG,IAAI;KACR,CAAA;IACD,IAAI,aAAa,GAAoB,EAAE,CAAA;IACvC,IAAI,CAAC;QACH,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IACzC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,aAAa,EAAE,CAAC;QACzC,GAAG,CAAC,GAAG,CAAC;YACN,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,YAAY,IAAI,CAAC;gBAC5E,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;gBACnC,CAAC,CAAC,KAAK,CAAA;IACb,CAAC;IAED,OAAO,GAAG,CAAA;AACZ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CACvB,GAAM,EACN,QAAoD;IAEpD,OAAO,MAAM,CAAC,OAAO,CAAC,GAA8B,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAA6B,CAAC,CAC1G,CAAA;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,OAAY,EAAE,EAAE,IAAY,EAAE,KAAU,EAAO,EAAE;IACvE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC5B,MAAM,GAAG,GAAG,IAAI,CAAA;IAChB,IAAI,OAAO,GAAoB,IAAI,CAAC,CAAC,CAAC,CAAA;IACtC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;IAC3B,CAAC;IACD,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAA;IAChG,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,IAAY,EAAE,GAAwB,EAAE,EAAE;IAChE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC7B,IAAI,MAAM,GAAwB,EAAE,GAAG,GAAG,EAAE,CAAA;IAE5C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;IACvB,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,GAAwB;IAClD,IAAI,KAAK,GAAa,EAAE,CAAA;IAExB,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QAC3C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACvD,KAAK,GAAG,CAAC,GAAG,KAAK,EAAE,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;QACrE,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACjB,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,OAAO,KAAK,CAAA;AACd,CAAC;AAED,iHAAiH;AACjH,MAAM,UAAU,gBAAgB,CAAC,CAAK;IACpC,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAA;AAC3D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,SAAkB,EAAE,MAAW,EAAE,OAAY;IAC1E,OAAO,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAA;AACrC,CAAC;AAMD;;;;;;;;GAQG;AACH,MAAM,UAAU,QAAQ,CAAC,MAAW,EAAE,EAAE,QAAyB,EAAE,IAAsB;IACvF,MAAM,WAAW,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAA;IAEzC,MAAM,IAAI,GAAG;QACX,IAAI,EAAE,EAAE;QACR,KAAK,EAAE,CAAC;QACR,GAAG,EAAE,EAAE;QACP,IAAI,EAAE,OAAO,GAAG;QAChB,KAAK,EAAE,GAAG;QACV,SAAS,EAAE,WAAW;QACtB,GAAG,IAAI;KACR,CAAA;IAED,IAAI,WAAW,EAAE,CAAC;QAChB,QAAQ,CAAC;YACP,GAAG,IAAI;YACP,KAAK,EAAE,IAAI,CAAC,KAAK;SAElB,CAAC,CAAA;IACJ,CAAC;SAAM,CAAC;QACN,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC;YACrD,MAAM,WAAW,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAA;YAE3C,IAAI,CAAC,WAAW,EAAE,CAAC;gBAEjB,QAAQ,CAAC;oBACP,GAAG,IAAI;oBACP,GAAG;oBACH,KAAK;oBACL,IAAI,EAAE,OAAO,KAAK;oBAClB,SAAS,EAAE,WAAW;oBACtB,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;iBAC1B,CAAC,CAAA;YACJ,CAAC;YAED,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE;gBACxB,GAAG,IAAI;gBACP,GAAG;gBACH,KAAK;gBACL,IAAI,EAAE,OAAO,KAAK;gBAClB,SAAS,EAAE,gBAAgB,CAAC,KAAK,CAAC;gBAClC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;gBACzB,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC;aACtB,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAwB,CAAG;IACvD,OAAO,CAAC,CAAA;AACV,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,GAAO;IAChC,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;QACX,OAAO,GAAG,CAAC,EAAE,CAAA;IACf,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAqC,GAAiB,EAAE,SAA2C;IAC7H,MAAM,MAAM,GAAG,EAAkB,CAAA;IAEjC,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;QACtB,IAAI,GAAG,EAAE,cAAc,EAAE,CAAC,GAAG,CAAC,IAAI,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;YAC/D,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,CAAA;QAC1B,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAuD,GAAiB,EAAE,SAAuC;IAC9I,MAAM,MAAM,GAAwB,EAAE,CAAA;IAEtC,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;QACtB,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAA;QAEvD,MAAM,CAAC,MAAgB,CAAC,GAAG,QAAQ,CAAA;IACrC,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAcD;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAClC,GAAM,EACN,MAAS;IAET,MAAM,MAAM,GAAG,EAAS,CAAA;IACxB,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;QACtB,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;YACvC,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YACrE,MAAM,CAAC,YAAY,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAA;QACjC,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC"}
|
package/dist/react.js
CHANGED
|
@@ -1,30 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
5
|
-
t[p] = s[p];
|
|
6
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
7
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
8
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
9
|
-
t[p[i]] = s[p[i]];
|
|
10
|
-
}
|
|
11
|
-
return t;
|
|
12
|
-
};
|
|
13
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.simplifyChildren = exports.flattenChildren = exports.deepEqual = void 0;
|
|
18
|
-
exports.arePropsEqual = arePropsEqual;
|
|
19
|
-
exports.getRenderedComponent = getRenderedComponent;
|
|
20
|
-
exports.memoize = memoize;
|
|
21
|
-
exports.memoChecker = memoChecker;
|
|
22
|
-
exports.memoBy = memoBy;
|
|
23
|
-
const deep_equal_1 = __importDefault(require("deep-equal"));
|
|
24
|
-
const react_1 = __importDefault(require("react"));
|
|
25
|
-
const types_1 = require("@codeleap/types");
|
|
1
|
+
import equals from 'deep-equal';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { TypeGuards } from '@codeleap/types';
|
|
26
4
|
/** Deep structural equality backed by the `deep-equal` package. */
|
|
27
|
-
|
|
5
|
+
export const deepEqual = equals;
|
|
28
6
|
/**
|
|
29
7
|
* Checks a specific subset of props for deep equality between two render cycles.
|
|
30
8
|
*
|
|
@@ -32,18 +10,18 @@ exports.deepEqual = deep_equal_1.default;
|
|
|
32
10
|
* comparison — this mutates the items inside `previous` and `next`.
|
|
33
11
|
* Pass only the keys you want to ignore, and be aware of the side-effect.
|
|
34
12
|
*/
|
|
35
|
-
function arePropsEqual(previous, next, options) {
|
|
13
|
+
export function arePropsEqual(previous, next, options) {
|
|
36
14
|
const { check, excludeKeys = [] } = options;
|
|
37
15
|
for (const c of check) {
|
|
38
16
|
const nextItem = next[c];
|
|
39
17
|
const prevItem = previous[c];
|
|
40
18
|
for (const key of excludeKeys) {
|
|
41
|
-
if (nextItem
|
|
19
|
+
if (nextItem?.[key])
|
|
42
20
|
delete nextItem[key];
|
|
43
|
-
if (prevItem
|
|
21
|
+
if (prevItem?.[key])
|
|
44
22
|
delete prevItem[key];
|
|
45
23
|
}
|
|
46
|
-
const propsAreEqual = (
|
|
24
|
+
const propsAreEqual = equals(nextItem, prevItem);
|
|
47
25
|
if (!propsAreEqual) {
|
|
48
26
|
return false;
|
|
49
27
|
}
|
|
@@ -58,14 +36,13 @@ function arePropsEqual(previous, next, options) {
|
|
|
58
36
|
* Only one level of `props.children` nesting is followed per call — deeply
|
|
59
37
|
* nested component trees (not just wrapper nodes) are not fully unwound.
|
|
60
38
|
*/
|
|
61
|
-
const flattenChildren = (children, flat = []) => {
|
|
62
|
-
flat = [...flat, ...
|
|
63
|
-
if (
|
|
64
|
-
return
|
|
39
|
+
export const flattenChildren = (children, flat = []) => {
|
|
40
|
+
flat = [...flat, ...React.Children.toArray(children)];
|
|
41
|
+
if (children?.props && children.props.children) {
|
|
42
|
+
return flattenChildren(children.props.children, flat);
|
|
65
43
|
}
|
|
66
44
|
return flat;
|
|
67
45
|
};
|
|
68
|
-
exports.flattenChildren = flattenChildren;
|
|
69
46
|
/**
|
|
70
47
|
* Flattens a children tree and strips the `children` prop from each element's
|
|
71
48
|
* props, returning a serialisable summary of the tree.
|
|
@@ -73,16 +50,12 @@ exports.flattenChildren = flattenChildren;
|
|
|
73
50
|
* Intended for introspection and testing — not for re-rendering, since `ref`
|
|
74
51
|
* and event-handler functions are preserved as-is.
|
|
75
52
|
*/
|
|
76
|
-
const simplifyChildren = (children) => {
|
|
77
|
-
const flat =
|
|
78
|
-
return flat.map((
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
key, ref, type, props,
|
|
82
|
-
});
|
|
83
|
-
});
|
|
53
|
+
export const simplifyChildren = (children) => {
|
|
54
|
+
const flat = flattenChildren(children);
|
|
55
|
+
return flat.map(({ key, ref, type, props: { children, ...props }, }) => ({
|
|
56
|
+
key, ref, type, props,
|
|
57
|
+
}));
|
|
84
58
|
};
|
|
85
|
-
exports.simplifyChildren = simplifyChildren;
|
|
86
59
|
/**
|
|
87
60
|
* Renders a slot that accepts a component, a props object, or a pre-rendered node.
|
|
88
61
|
*
|
|
@@ -95,20 +68,20 @@ exports.simplifyChildren = simplifyChildren;
|
|
|
95
68
|
* This lets call sites pass either a component override, extra props, or nothing,
|
|
96
69
|
* without needing separate conditional rendering logic.
|
|
97
70
|
*/
|
|
98
|
-
function getRenderedComponent(ComponentOrProps, DefaultComponent, props) {
|
|
71
|
+
export function getRenderedComponent(ComponentOrProps, DefaultComponent, props) {
|
|
99
72
|
const _ComponentOrProps = ComponentOrProps;
|
|
100
73
|
const _DefaultComponent = DefaultComponent;
|
|
101
|
-
if (
|
|
102
|
-
return
|
|
74
|
+
if (TypeGuards.isFunction(ComponentOrProps)) {
|
|
75
|
+
return React.createElement(_ComponentOrProps, { ...props });
|
|
103
76
|
}
|
|
104
|
-
if (
|
|
77
|
+
if (TypeGuards.isNil(ComponentOrProps) || Object.keys(ComponentOrProps).length === 0) {
|
|
105
78
|
return null;
|
|
106
79
|
}
|
|
107
|
-
if (
|
|
80
|
+
if (React.isValidElement(ComponentOrProps)) {
|
|
108
81
|
return ComponentOrProps;
|
|
109
82
|
}
|
|
110
83
|
const _props = ComponentOrProps;
|
|
111
|
-
return
|
|
84
|
+
return React.createElement(_DefaultComponent, { ...props, ..._props });
|
|
112
85
|
}
|
|
113
86
|
/**
|
|
114
87
|
* Memoizes a React functional component to prevent unnecessary re-renders.
|
|
@@ -123,8 +96,8 @@ function getRenderedComponent(ComponentOrProps, DefaultComponent, props) {
|
|
|
123
96
|
* @param ComponentToMemoize - The React functional component to memoize.
|
|
124
97
|
* @returns A memoized version of the input component (`React.NamedExoticComponent`).
|
|
125
98
|
*/
|
|
126
|
-
function memoize(ComponentToMemoize) {
|
|
127
|
-
return
|
|
99
|
+
export function memoize(ComponentToMemoize) {
|
|
100
|
+
return React.memo(ComponentToMemoize, () => true);
|
|
128
101
|
}
|
|
129
102
|
/**
|
|
130
103
|
* Checks whether a specific property in two sets of props is equal.
|
|
@@ -138,10 +111,10 @@ function memoize(ComponentToMemoize) {
|
|
|
138
111
|
* @param nextProps - The next props object.
|
|
139
112
|
* @returns `true` if the values of the specified property are deeply equal; otherwise, `false`.
|
|
140
113
|
*/
|
|
141
|
-
function memoChecker(prop, prevProps, nextProps) {
|
|
114
|
+
export function memoChecker(prop, prevProps, nextProps) {
|
|
142
115
|
const nextItem = nextProps[prop];
|
|
143
116
|
const prevItem = prevProps[prop];
|
|
144
|
-
return (
|
|
117
|
+
return equals(nextItem, prevItem);
|
|
145
118
|
}
|
|
146
119
|
/**
|
|
147
120
|
* Memoizes a React functional component based on specific props.
|
|
@@ -180,8 +153,8 @@ function memoChecker(prop, prevProps, nextProps) {
|
|
|
180
153
|
* <MemoizedByName name="Alice" age={25} />;
|
|
181
154
|
* <MemoizedByNameAndAge name="Alice" age={25} />;
|
|
182
155
|
*/
|
|
183
|
-
function memoBy(ComponentToMemoize, check) {
|
|
184
|
-
return
|
|
156
|
+
export function memoBy(ComponentToMemoize, check) {
|
|
157
|
+
return React.memo(ComponentToMemoize, (prevProps, nextProps) => {
|
|
185
158
|
const checks = Array.isArray(check) ? check : [check];
|
|
186
159
|
return checks.every((key) => memoChecker(key, prevProps, nextProps));
|
|
187
160
|
});
|
package/dist/react.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react.js","sourceRoot":"","sources":["../src/react.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"react.js","sourceRoot":"","sources":["../src/react.tsx"],"names":[],"mappings":"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"}
|
package/dist/string.js
CHANGED
|
@@ -1,15 +1,6 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.singleLine = singleLine;
|
|
4
|
-
exports.stringiparse = stringiparse;
|
|
5
|
-
exports.capitalize = capitalize;
|
|
6
|
-
exports.isUppercase = isUppercase;
|
|
7
|
-
exports.isLowercase = isLowercase;
|
|
8
|
-
exports.humanizeCamelCase = humanizeCamelCase;
|
|
9
|
-
exports.ellipsis = ellipsis;
|
|
10
1
|
/** Collapses all newline characters in `text` to single spaces. */
|
|
11
|
-
function singleLine(text) {
|
|
12
|
-
return text
|
|
2
|
+
export function singleLine(text) {
|
|
3
|
+
return text?.replace(/\n/g, ' ');
|
|
13
4
|
}
|
|
14
5
|
/**
|
|
15
6
|
* Round-trips a value through `JSON.stringify` → `JSON.parse`.
|
|
@@ -18,7 +9,7 @@ function singleLine(text) {
|
|
|
18
9
|
* and produces a plain-object clone. Throws if the value contains circular
|
|
19
10
|
* references.
|
|
20
11
|
*/
|
|
21
|
-
function stringiparse(string) {
|
|
12
|
+
export function stringiparse(string) {
|
|
22
13
|
return JSON.parse(JSON.stringify(string));
|
|
23
14
|
}
|
|
24
15
|
/**
|
|
@@ -27,7 +18,7 @@ function stringiparse(string) {
|
|
|
27
18
|
* When `reverse` is `true` the first character is lowercased instead of
|
|
28
19
|
* uppercased — useful for converting PascalCase to camelCase.
|
|
29
20
|
*/
|
|
30
|
-
function capitalize(str, reverse = false) {
|
|
21
|
+
export function capitalize(str, reverse = false) {
|
|
31
22
|
if (!str.length)
|
|
32
23
|
return str;
|
|
33
24
|
const firstChar = reverse ? str[0].toLowerCase() : str[0].toUpperCase();
|
|
@@ -39,11 +30,11 @@ function capitalize(str, reverse = false) {
|
|
|
39
30
|
* Covers the Unicode range `U+0080`–`U+024F` in addition to `A–Z`, so
|
|
40
31
|
* accented capitals (e.g. `É`, `Ñ`) are recognised correctly.
|
|
41
32
|
*/
|
|
42
|
-
function isUppercase(char) {
|
|
33
|
+
export function isUppercase(char) {
|
|
43
34
|
return /[A-Z]|[\u0080-\u024F]/.test(char) && char.toUpperCase() === char;
|
|
44
35
|
}
|
|
45
36
|
/** Returns `true` when `char` is **not** considered uppercase by {@link isUppercase}. */
|
|
46
|
-
function isLowercase(char) {
|
|
37
|
+
export function isLowercase(char) {
|
|
47
38
|
return !isUppercase(char);
|
|
48
39
|
}
|
|
49
40
|
/**
|
|
@@ -53,7 +44,7 @@ function isLowercase(char) {
|
|
|
53
44
|
* by a lowercase letter. The first character is always uppercased.
|
|
54
45
|
* Consecutive uppercase runs (e.g. acronyms like "URL") are not split.
|
|
55
46
|
*/
|
|
56
|
-
function humanizeCamelCase(str) {
|
|
47
|
+
export function humanizeCamelCase(str) {
|
|
57
48
|
const characters = [];
|
|
58
49
|
let previousCharacter = '';
|
|
59
50
|
str.split('').forEach((char, idx) => {
|
|
@@ -79,7 +70,7 @@ function humanizeCamelCase(str) {
|
|
|
79
70
|
* `maxLen` characters when truncated. Strings already at or below `maxLen` are
|
|
80
71
|
* returned unchanged.
|
|
81
72
|
*/
|
|
82
|
-
function ellipsis(str, maxLen) {
|
|
73
|
+
export function ellipsis(str, maxLen) {
|
|
83
74
|
if (str.length - 3 > maxLen) {
|
|
84
75
|
return str.slice(0, maxLen - 3) + '...';
|
|
85
76
|
}
|
package/dist/string.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"string.js","sourceRoot":"","sources":["../src/string.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"string.js","sourceRoot":"","sources":["../src/string.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,OAAO,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;AAClC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAAC,MAAc;IACzC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAA;AAC3C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,GAAW,EAAE,OAAO,GAAG,KAAK;IACrD,IAAI,CAAC,GAAG,CAAC,MAAM;QAAE,OAAO,GAAG,CAAA;IAC3B,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA;IACvE,OAAO,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;AACrC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,OAAO,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,CAAA;AAC1E,CAAC;AAED,yFAAyF;AACzF,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;AAC3B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAW;IAC3C,MAAM,UAAU,GAAa,EAAE,CAAA;IAC/B,IAAI,iBAAiB,GAAG,EAAE,CAAA;IAC1B,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;QAClC,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;YACd,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAA;QACrC,CAAC;aAAM,CAAC;YACN,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,iBAAiB,CAAC,EAAE,CAAC;gBACxD,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAA;YAC7B,CAAC;iBAAM,CAAC;gBACN,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACvB,CAAC;QACH,CAAC;QAED,iBAAiB,GAAG,IAAI,CAAA;IAC1B,CAAC,CAAC,CAAA;IAEF,OAAO,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AAC5B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,QAAQ,CAAC,GAAW,EAAE,MAAc;IAClD,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,EAAE,CAAC;QAC5B,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,KAAK,CAAA;IACzC,CAAC;IAED,OAAO,GAAG,CAAA;AACZ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codeleap/utils",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.1.1",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"types": "dist/index.d.ts",
|
|
6
6
|
"exports": {
|
|
@@ -22,8 +22,8 @@
|
|
|
22
22
|
"directory": "packages/utils"
|
|
23
23
|
},
|
|
24
24
|
"devDependencies": {
|
|
25
|
-
"@codeleap/config": "7.0.
|
|
26
|
-
"@codeleap/types": "7.0.
|
|
25
|
+
"@codeleap/config": "7.0.2",
|
|
26
|
+
"@codeleap/types": "7.0.2",
|
|
27
27
|
"ts-node-dev": "1.1.8"
|
|
28
28
|
},
|
|
29
29
|
"scripts": {
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"typecheck": "bun tsc --noEmit -p ./tsconfig.json"
|
|
32
32
|
},
|
|
33
33
|
"peerDependencies": {
|
|
34
|
-
"@codeleap/types": "7.0.
|
|
34
|
+
"@codeleap/types": "7.0.2",
|
|
35
35
|
"axios": "^1.7.9",
|
|
36
36
|
"dayjs": "1.11.18",
|
|
37
37
|
"typescript": "6.0.3",
|