@codeleap/utils 7.0.1 → 7.0.2
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 +10 -4
- package/dist/array.js.map +1 -1
- package/dist/cloneDeep.js +4 -1
- package/dist/cloneDeep.js.map +1 -1
- package/dist/colors.js +14 -7
- package/dist/colors.js.map +1 -1
- package/dist/date.js +9 -3
- package/dist/date.js.map +1 -1
- package/dist/faker.js +4 -1
- package/dist/faker.js.map +1 -1
- package/dist/file.js +4 -1
- package/dist/file.js.map +1 -1
- package/dist/index.js +27 -11
- package/dist/index.js.map +1 -1
- package/dist/locale.js +4 -1
- package/dist/locale.js.map +1 -1
- package/dist/misc.js +18 -9
- package/dist/misc.js.map +1 -1
- package/dist/object.js +30 -14
- package/dist/object.js.map +1 -1
- package/dist/react.js +36 -23
- package/dist/react.js.map +1 -1
- package/dist/string.js +16 -7
- package/dist/string.js.map +1 -1
- package/package.json +1 -1
package/dist/array.js
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
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;
|
|
1
7
|
/**
|
|
2
8
|
* Indexes an array into an object keyed by a derived value.
|
|
3
9
|
*
|
|
@@ -5,7 +11,7 @@
|
|
|
5
11
|
* key. When omitted, array indices are used as keys. Duplicate keys silently
|
|
6
12
|
* overwrite earlier entries.
|
|
7
13
|
*/
|
|
8
|
-
|
|
14
|
+
function objectFromArray(arr, keyAccessor) {
|
|
9
15
|
let getObjectKey = (_, idx) => idx;
|
|
10
16
|
if (keyAccessor) {
|
|
11
17
|
switch (typeof keyAccessor) {
|
|
@@ -27,7 +33,7 @@ export function objectFromArray(arr, keyAccessor) {
|
|
|
27
33
|
* When duplicates exist, the **last** occurrence wins because `objectFromArray`
|
|
28
34
|
* overwrites earlier entries with the same key.
|
|
29
35
|
*/
|
|
30
|
-
|
|
36
|
+
function uniqueArrayByProperty(array, getProperty) {
|
|
31
37
|
return Object.values(objectFromArray(array, getProperty));
|
|
32
38
|
}
|
|
33
39
|
/**
|
|
@@ -36,7 +42,7 @@ export function uniqueArrayByProperty(array, getProperty) {
|
|
|
36
42
|
* Unlike `Array.prototype.flat(Infinity)`, this implementation does not rely on
|
|
37
43
|
* native flat support and works identically across all environments.
|
|
38
44
|
*/
|
|
39
|
-
|
|
45
|
+
function flatten(arr) {
|
|
40
46
|
let newArr = [];
|
|
41
47
|
arr.forEach((item) => {
|
|
42
48
|
if (Array.isArray(item)) {
|
|
@@ -53,7 +59,7 @@ export function flatten(arr) {
|
|
|
53
59
|
*
|
|
54
60
|
* Both bounds are included: `range(1, 3)` → `[1, 2, 3]`.
|
|
55
61
|
*/
|
|
56
|
-
|
|
62
|
+
function range(start, end) {
|
|
57
63
|
const length = end - start + 1;
|
|
58
64
|
return Array.from({ length }, (_, index) => index + start);
|
|
59
65
|
}
|
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":";;AAWA,0CAoBC;AASD,sDAKC;AAQD,0BAYC;AAOD,sBAGC;AAvED;;;;;;GAMG;AACH,SAAgB,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,SAAgB,qBAAqB,CACnC,KAAU,EACV,WAAc;IAEd,OAAO,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAA;AAC3D,CAAC;AAED;;;;;GAKG;AACH,SAAgB,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,SAAgB,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,3 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.cloneDeep = cloneDeep;
|
|
1
4
|
/**
|
|
2
5
|
* Produces a full recursive clone of `value` without any external dependencies.
|
|
3
6
|
*
|
|
@@ -6,7 +9,7 @@
|
|
|
6
9
|
* these built-ins are cloned as plain objects — prototype chain is not preserved.
|
|
7
10
|
* Circular references will cause a stack overflow.
|
|
8
11
|
*/
|
|
9
|
-
|
|
12
|
+
function cloneDeep(value) {
|
|
10
13
|
if (value === null || typeof value !== 'object') {
|
|
11
14
|
return value;
|
|
12
15
|
}
|
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":";;AAQA,8BA0CC;AAlDD;;;;;;;GAOG;AACH,SAAgB,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,12 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
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.hexToRgb = hexToRgb;
|
|
7
|
+
exports.shadeColor = shadeColor;
|
|
8
|
+
const tinycolor2_1 = __importDefault(require("tinycolor2"));
|
|
9
|
+
const types_1 = require("@codeleap/types");
|
|
3
10
|
/**
|
|
4
11
|
* Parses a 6-digit hex colour string (with or without leading `#`) into its
|
|
5
12
|
* `{ r, g, b }` components.
|
|
6
13
|
*
|
|
7
14
|
* Returns `null` for invalid or short (3-digit) hex values.
|
|
8
15
|
*/
|
|
9
|
-
|
|
16
|
+
function hexToRgb(hex) {
|
|
10
17
|
const result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
|
|
11
18
|
return result
|
|
12
19
|
? {
|
|
@@ -26,17 +33,17 @@ const shadeColorCache = {};
|
|
|
26
33
|
* - Results are memoised in a module-level cache keyed by the serialised parameters,
|
|
27
34
|
* so repeated calls with identical arguments are effectively free.
|
|
28
35
|
*/
|
|
29
|
-
|
|
36
|
+
function shadeColor(color, percent = 0, opacity = null) {
|
|
30
37
|
const _color = color.trim();
|
|
31
38
|
const serialParams = [_color, percent.toString()];
|
|
32
|
-
if (TypeGuards.isNumber(opacity)) {
|
|
39
|
+
if (types_1.TypeGuards.isNumber(opacity)) {
|
|
33
40
|
serialParams.push(opacity.toString());
|
|
34
41
|
}
|
|
35
42
|
const cacheKey = serialParams.join('/');
|
|
36
43
|
if (!!shadeColorCache[cacheKey]) {
|
|
37
44
|
return shadeColorCache[cacheKey];
|
|
38
45
|
}
|
|
39
|
-
const cl =
|
|
46
|
+
const cl = (0, tinycolor2_1.default)(_color);
|
|
40
47
|
if (percent !== 0) {
|
|
41
48
|
const shouldDarken = percent < 0;
|
|
42
49
|
if (shouldDarken) {
|
|
@@ -46,7 +53,7 @@ export function shadeColor(color, percent = 0, opacity = null) {
|
|
|
46
53
|
cl.lighten(percent);
|
|
47
54
|
}
|
|
48
55
|
}
|
|
49
|
-
if (TypeGuards.isNumber(opacity)) {
|
|
56
|
+
if (types_1.TypeGuards.isNumber(opacity)) {
|
|
50
57
|
cl.setAlpha(opacity);
|
|
51
58
|
}
|
|
52
59
|
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":";;;;;AASA,4BASC;AAaD,gCA+BC;AA9DD,4DAAkC;AAClC,2CAA4C;AAE5C;;;;;GAKG;AACH,SAAgB,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,SAAgB,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,kBAAU,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,IAAA,oBAAS,EAAC,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,kBAAU,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,4 +1,10 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
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"));
|
|
2
8
|
const removeTimezoneAndFormat = (date, format = 'YYYY-MM-DD') => {
|
|
3
9
|
if (!date)
|
|
4
10
|
return '';
|
|
@@ -9,7 +15,7 @@ const removeTimezoneAndFormat = (date, format = 'YYYY-MM-DD') => {
|
|
|
9
15
|
else if (typeof date === 'string' && date.includes('T')) {
|
|
10
16
|
normalizedDate = date.split('T')[0] + 'T12:00:00';
|
|
11
17
|
}
|
|
12
|
-
return
|
|
18
|
+
return (0, dayjs_1.default)(normalizedDate).startOf('day').format(format);
|
|
13
19
|
};
|
|
14
20
|
/**
|
|
15
21
|
* Date helpers that normalise timezone-sensitive values before formatting.
|
|
@@ -20,7 +26,7 @@ const removeTimezoneAndFormat = (date, format = 'YYYY-MM-DD') => {
|
|
|
20
26
|
* falls on a different calendar day in the user's timezone. Returns `''` for
|
|
21
27
|
* falsy input.
|
|
22
28
|
*/
|
|
23
|
-
|
|
29
|
+
exports.dateUtils = {
|
|
24
30
|
removeTimezoneAndFormat,
|
|
25
31
|
};
|
|
26
32
|
//# 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":"AAAA,
|
|
1
|
+
{"version":3,"file":"date.js","sourceRoot":"","sources":["../src/date.ts"],"names":[],"mappings":";;;;;;AAAA,kDAAyB;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,IAAA,eAAK,EAAC,cAAc,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;AAC5D,CAAC,CAAA;AAED;;;;;;;;GAQG;AACU,QAAA,SAAS,GAAG;IACvB,uBAAuB;CACxB,CAAA"}
|
package/dist/faker.js
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.faker = void 0;
|
|
1
4
|
const names = [
|
|
2
5
|
'James', 'John', 'Robert', 'Michael', 'William', 'David', 'Richard', 'Joseph', 'Thomas',
|
|
3
6
|
'Charles', 'Christopher', 'Daniel', 'Matthew', 'Anthony', 'Donald', 'Mark', 'Paul', 'Steven',
|
|
@@ -33,7 +36,7 @@ function number(min = 0, max = 100) {
|
|
|
33
36
|
* Use this instead of heavy faker libraries in tests or seed scripts where the
|
|
34
37
|
* small vocabulary is sufficient.
|
|
35
38
|
*/
|
|
36
|
-
|
|
39
|
+
exports.faker = {
|
|
37
40
|
lastName: () => getRandom(surnames),
|
|
38
41
|
firstName: () => getRandom(names),
|
|
39
42
|
animal: () => getRandom(animals),
|
package/dist/faker.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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;
|
|
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;AACU,QAAA,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,3 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseFilePathData = parseFilePathData;
|
|
1
4
|
const separators = /[\\\/]+/;
|
|
2
5
|
/**
|
|
3
6
|
* Splits a file system path into its directory, base name, and extension.
|
|
@@ -7,7 +10,7 @@ const separators = /[\\\/]+/;
|
|
|
7
10
|
* `extension`. The returned `path` is always joined with `/` regardless of the
|
|
8
11
|
* original separator.
|
|
9
12
|
*/
|
|
10
|
-
|
|
13
|
+
function parseFilePathData(path) {
|
|
11
14
|
const parts = path.split(separators);
|
|
12
15
|
const lastPart = parts[parts.length - 1];
|
|
13
16
|
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":";;AAUA,8CAoBC;AA9BD,MAAM,UAAU,GAAG,SAAS,CAAA;AAE5B;;;;;;;GAOG;AACH,SAAgB,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,12 +1,28 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
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);
|
|
12
28
|
//# 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":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAuB;AACvB,2CAAwB;AACxB,yCAAsB;AACtB,2CAAwB;AACxB,0CAAuB;AACvB,yCAAsB;AACtB,2CAAwB;AACxB,0CAAuB;AACvB,8CAA2B;AAC3B,2CAAwB;AACxB,yCAAsB"}
|
package/dist/locale.js
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getSimilarLocale = getSimilarLocale;
|
|
1
4
|
/**
|
|
2
5
|
* Finds the closest matching key in `languageDictionary` for a given `locale`.
|
|
3
6
|
*
|
|
@@ -5,7 +8,7 @@
|
|
|
5
8
|
* will match an `'en-US'` dictionary key. Returns `defaultLocale` when no
|
|
6
9
|
* partial match exists.
|
|
7
10
|
*/
|
|
8
|
-
|
|
11
|
+
function getSimilarLocale(locale, defaultLocale, languageDictionary) {
|
|
9
12
|
const inputFirstPart = locale.substring(0, 2);
|
|
10
13
|
const keys = Object.keys(languageDictionary);
|
|
11
14
|
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":";;AASA,4CAYC;AAnBD;;;;;;GAMG;AACH,SAAgB,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,4 +1,13 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
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");
|
|
2
11
|
/**
|
|
3
12
|
* Converts a remote image URL into a file-upload-compatible object
|
|
4
13
|
* (`{ uri, name, type }`).
|
|
@@ -6,7 +15,7 @@ import { capitalize } from './string';
|
|
|
6
15
|
* The `type` is inferred from the URL's file extension. Returns `null` when
|
|
7
16
|
* `imagePath` is falsy, making it safe to pass directly to optional file-input APIs.
|
|
8
17
|
*/
|
|
9
|
-
|
|
18
|
+
function imagePathToFileObject(imagePath) {
|
|
10
19
|
const parts = imagePath ? imagePath.split('.') : '';
|
|
11
20
|
const ext = imagePath ? parts[parts.length - 1].toLowerCase() : '';
|
|
12
21
|
const fileValue = imagePath
|
|
@@ -53,20 +62,20 @@ const letterToColorMap = {
|
|
|
53
62
|
* Lookup is case-insensitive. Returns `'#999999'` for empty, undefined, or
|
|
54
63
|
* characters not in the `a–z` range.
|
|
55
64
|
*/
|
|
56
|
-
|
|
65
|
+
function matchInitialToColor(anyString) {
|
|
57
66
|
if (!anyString)
|
|
58
67
|
return '#999999';
|
|
59
68
|
return letterToColorMap[anyString.toLowerCase().charAt(0)] || '#999999';
|
|
60
69
|
}
|
|
61
70
|
/** Returns a Promise that resolves after `ms` milliseconds. */
|
|
62
|
-
|
|
71
|
+
function waitFor(ms) {
|
|
63
72
|
return new Promise((resolve) => {
|
|
64
73
|
setTimeout(() => {
|
|
65
74
|
resolve();
|
|
66
75
|
}, ms);
|
|
67
76
|
});
|
|
68
77
|
}
|
|
69
|
-
|
|
78
|
+
function parseSourceUrl(args, Settings) {
|
|
70
79
|
if (!args)
|
|
71
80
|
return null;
|
|
72
81
|
let res = '';
|
|
@@ -97,11 +106,11 @@ export function parseSourceUrl(args, Settings) {
|
|
|
97
106
|
* Used internally by component style systems to pull out sub-part styles
|
|
98
107
|
* (e.g. `inputLabel`, `inputWrapper`) into their own namespaced objects.
|
|
99
108
|
*/
|
|
100
|
-
|
|
109
|
+
function getNestedStylesByKey(match, variantStyles) {
|
|
101
110
|
const styles = {};
|
|
102
111
|
for (const [key, value] of Object.entries(variantStyles)) {
|
|
103
112
|
if (key.startsWith(match)) {
|
|
104
|
-
const partName = capitalize(key.replace(match, ''), true);
|
|
113
|
+
const partName = (0, string_1.capitalize)(key.replace(match, ''), true);
|
|
105
114
|
styles[partName] = value;
|
|
106
115
|
}
|
|
107
116
|
}
|
|
@@ -116,7 +125,7 @@ export function getNestedStylesByKey(match, variantStyles) {
|
|
|
116
125
|
* app start; anything longer suggests a subsequent refresh rather than cold boot.
|
|
117
126
|
* Returns `undefined` and logs a warning when `InitTime` is not set.
|
|
118
127
|
*/
|
|
119
|
-
|
|
128
|
+
function hasFastRefreshed(Settings) {
|
|
120
129
|
var _a;
|
|
121
130
|
if ((_a = Settings === null || Settings === void 0 ? void 0 : Settings.Environment) === null || _a === void 0 ? void 0 : _a.InitTime) {
|
|
122
131
|
const timeFromStartup = (new Date()).getTime() - Settings.Environment.InitTime.getTime();
|
|
@@ -138,7 +147,7 @@ const throttleTimerId = {};
|
|
|
138
147
|
* Using a string/number `ref` allows multiple independent throttle timers to coexist
|
|
139
148
|
* in a single module without needing to hold separate timer handles.
|
|
140
149
|
*/
|
|
141
|
-
|
|
150
|
+
function throttle(func, ref, delay) {
|
|
142
151
|
if (throttleTimerId[ref]) {
|
|
143
152
|
return;
|
|
144
153
|
}
|
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,10 +1,24 @@
|
|
|
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;
|
|
1
15
|
/**
|
|
2
16
|
* Recursively merges `changes` into `base`, deep-merging nested plain objects.
|
|
3
17
|
*
|
|
4
18
|
* Arrays and `Date` instances are treated as scalar values — they replace rather
|
|
5
19
|
* than merge. If `changes` is not iterable, it is returned as-is.
|
|
6
20
|
*/
|
|
7
|
-
|
|
21
|
+
function deepMerge(base = {}, changes = {}) {
|
|
8
22
|
const obj = Object.assign({}, base);
|
|
9
23
|
let changeEntries = [];
|
|
10
24
|
try {
|
|
@@ -27,7 +41,7 @@ export function deepMerge(base = {}, changes = {}) {
|
|
|
27
41
|
* Returns an array — not a new object — so it is useful when you need to
|
|
28
42
|
* transform key-value pairs into arbitrary values (e.g. JSX elements).
|
|
29
43
|
*/
|
|
30
|
-
|
|
44
|
+
function mapObject(obj, callback) {
|
|
31
45
|
return Object.entries(obj).map((args) => callback(args));
|
|
32
46
|
}
|
|
33
47
|
/**
|
|
@@ -36,23 +50,24 @@ export function mapObject(obj, callback) {
|
|
|
36
50
|
*
|
|
37
51
|
* Numeric path segments are coerced to array indices when the current node is an array.
|
|
38
52
|
*/
|
|
39
|
-
|
|
53
|
+
const deepSet = (base = {}, path, value) => {
|
|
40
54
|
const keys = path.split('.');
|
|
41
55
|
const obj = base;
|
|
42
56
|
let thisKey = keys[0];
|
|
43
57
|
if (Array.isArray(base)) {
|
|
44
58
|
thisKey = Number(thisKey);
|
|
45
59
|
}
|
|
46
|
-
obj[thisKey] = keys.length === 1 ? value : deepSet(obj[thisKey], keys.slice(1).join('.'), value);
|
|
60
|
+
obj[thisKey] = keys.length === 1 ? value : (0, exports.deepSet)(obj[thisKey], keys.slice(1).join('.'), value);
|
|
47
61
|
return obj;
|
|
48
62
|
};
|
|
63
|
+
exports.deepSet = deepSet;
|
|
49
64
|
/**
|
|
50
65
|
* Reads a value from `obj` at a dot-separated `path`.
|
|
51
66
|
*
|
|
52
67
|
* Returns `undefined` (without throwing) when any intermediate node is absent,
|
|
53
68
|
* because property access on `undefined` propagates silently through the loop.
|
|
54
69
|
*/
|
|
55
|
-
|
|
70
|
+
const deepGet = (path, obj) => {
|
|
56
71
|
const parts = path.split('.');
|
|
57
72
|
let newObj = Object.assign({}, obj);
|
|
58
73
|
for (const prop of parts) {
|
|
@@ -60,12 +75,13 @@ export const deepGet = (path, obj) => {
|
|
|
60
75
|
}
|
|
61
76
|
return newObj;
|
|
62
77
|
};
|
|
78
|
+
exports.deepGet = deepGet;
|
|
63
79
|
/**
|
|
64
80
|
* Returns every dot-separated leaf path in a nested object.
|
|
65
81
|
*
|
|
66
82
|
* Array values are treated as leaves — their indices are not traversed.
|
|
67
83
|
*/
|
|
68
|
-
|
|
84
|
+
function objectPaths(obj) {
|
|
69
85
|
let paths = [];
|
|
70
86
|
Object.entries(obj).forEach(([key, value]) => {
|
|
71
87
|
if (!Array.isArray(value) && typeof value === 'object') {
|
|
@@ -78,7 +94,7 @@ export function objectPaths(obj) {
|
|
|
78
94
|
return paths;
|
|
79
95
|
}
|
|
80
96
|
/** Returns `true` only for `string`, `number`, and `boolean` — `null`, `undefined`, and objects are excluded. */
|
|
81
|
-
|
|
97
|
+
function isValuePrimitive(a) {
|
|
82
98
|
return ['string', 'number', 'boolean'].includes(typeof a);
|
|
83
99
|
}
|
|
84
100
|
/**
|
|
@@ -87,7 +103,7 @@ export function isValuePrimitive(a) {
|
|
|
87
103
|
* Intended for use inside object spreads where the ternary would otherwise
|
|
88
104
|
* require wrapping: `{ ...optionalObject(flag, trueProps, {}) }`.
|
|
89
105
|
*/
|
|
90
|
-
|
|
106
|
+
function optionalObject(condition, ifTrue, ifFalse) {
|
|
91
107
|
return condition ? ifTrue : ifFalse;
|
|
92
108
|
}
|
|
93
109
|
/**
|
|
@@ -99,7 +115,7 @@ export function optionalObject(condition, ifTrue, ifFalse) {
|
|
|
99
115
|
* from the callback is accepted by the type but **does not halt traversal** —
|
|
100
116
|
* the implementation does not check the return value.
|
|
101
117
|
*/
|
|
102
|
-
|
|
118
|
+
function traverse(obj = {}, callback, args) {
|
|
103
119
|
const isPrimitive = isValuePrimitive(obj);
|
|
104
120
|
const info = Object.assign({ path: [], depth: 0, key: '', type: typeof obj, value: obj, primitive: isPrimitive }, args);
|
|
105
121
|
if (isPrimitive) {
|
|
@@ -124,7 +140,7 @@ export function traverse(obj = {}, callback, args) {
|
|
|
124
140
|
* objects so that editors provide autocompletion and type errors at the
|
|
125
141
|
* definition site rather than at the point of use.
|
|
126
142
|
*/
|
|
127
|
-
|
|
143
|
+
function createSettings(a) {
|
|
128
144
|
return a;
|
|
129
145
|
}
|
|
130
146
|
/**
|
|
@@ -133,7 +149,7 @@ export function createSettings(a) {
|
|
|
133
149
|
* Intended as a default `keyExtractor` in list utilities where records are
|
|
134
150
|
* expected to carry an `id` field.
|
|
135
151
|
*/
|
|
136
|
-
|
|
152
|
+
function extractKey(obj) {
|
|
137
153
|
if (obj.id) {
|
|
138
154
|
return obj.id;
|
|
139
155
|
}
|
|
@@ -143,7 +159,7 @@ export function extractKey(obj) {
|
|
|
143
159
|
*
|
|
144
160
|
* Only own enumerable keys are visited; prototype-chain properties are skipped.
|
|
145
161
|
*/
|
|
146
|
-
|
|
162
|
+
function objectPickBy(obj, predicate) {
|
|
147
163
|
var _a;
|
|
148
164
|
const result = {};
|
|
149
165
|
for (const key in obj) {
|
|
@@ -160,7 +176,7 @@ export function objectPickBy(obj, predicate) {
|
|
|
160
176
|
* Keys returned by `predicate` need not be unique — later entries silently
|
|
161
177
|
* overwrite earlier ones if they resolve to the same key.
|
|
162
178
|
*/
|
|
163
|
-
|
|
179
|
+
function transformObject(obj, predicate) {
|
|
164
180
|
const result = {};
|
|
165
181
|
for (const key in obj) {
|
|
166
182
|
const [newKey, newValue] = predicate === null || predicate === void 0 ? void 0 : predicate(obj === null || obj === void 0 ? void 0 : obj[key], key);
|
|
@@ -175,7 +191,7 @@ export function transformObject(obj, predicate) {
|
|
|
175
191
|
* Useful for splitting a flat props object into logical groups, e.g. separating
|
|
176
192
|
* all `inputXxx` props from a combined component interface.
|
|
177
193
|
*/
|
|
178
|
-
|
|
194
|
+
function filterObjectByPrefix(obj, prefix) {
|
|
179
195
|
const result = {};
|
|
180
196
|
for (const key in obj) {
|
|
181
197
|
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":"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"}
|
package/dist/react.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
var __rest = (this && this.__rest) || function (s, e) {
|
|
2
3
|
var t = {};
|
|
3
4
|
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
@@ -9,11 +10,21 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
9
10
|
}
|
|
10
11
|
return t;
|
|
11
12
|
};
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
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");
|
|
15
26
|
/** Deep structural equality backed by the `deep-equal` package. */
|
|
16
|
-
|
|
27
|
+
exports.deepEqual = deep_equal_1.default;
|
|
17
28
|
/**
|
|
18
29
|
* Checks a specific subset of props for deep equality between two render cycles.
|
|
19
30
|
*
|
|
@@ -21,7 +32,7 @@ export const deepEqual = equals;
|
|
|
21
32
|
* comparison — this mutates the items inside `previous` and `next`.
|
|
22
33
|
* Pass only the keys you want to ignore, and be aware of the side-effect.
|
|
23
34
|
*/
|
|
24
|
-
|
|
35
|
+
function arePropsEqual(previous, next, options) {
|
|
25
36
|
const { check, excludeKeys = [] } = options;
|
|
26
37
|
for (const c of check) {
|
|
27
38
|
const nextItem = next[c];
|
|
@@ -32,7 +43,7 @@ export function arePropsEqual(previous, next, options) {
|
|
|
32
43
|
if (prevItem === null || prevItem === void 0 ? void 0 : prevItem[key])
|
|
33
44
|
delete prevItem[key];
|
|
34
45
|
}
|
|
35
|
-
const propsAreEqual =
|
|
46
|
+
const propsAreEqual = (0, deep_equal_1.default)(nextItem, prevItem);
|
|
36
47
|
if (!propsAreEqual) {
|
|
37
48
|
return false;
|
|
38
49
|
}
|
|
@@ -47,13 +58,14 @@ export function arePropsEqual(previous, next, options) {
|
|
|
47
58
|
* Only one level of `props.children` nesting is followed per call — deeply
|
|
48
59
|
* nested component trees (not just wrapper nodes) are not fully unwound.
|
|
49
60
|
*/
|
|
50
|
-
|
|
51
|
-
flat = [...flat, ...
|
|
61
|
+
const flattenChildren = (children, flat = []) => {
|
|
62
|
+
flat = [...flat, ...react_1.default.Children.toArray(children)];
|
|
52
63
|
if ((children === null || children === void 0 ? void 0 : children.props) && children.props.children) {
|
|
53
|
-
return flattenChildren(children.props.children, flat);
|
|
64
|
+
return (0, exports.flattenChildren)(children.props.children, flat);
|
|
54
65
|
}
|
|
55
66
|
return flat;
|
|
56
67
|
};
|
|
68
|
+
exports.flattenChildren = flattenChildren;
|
|
57
69
|
/**
|
|
58
70
|
* Flattens a children tree and strips the `children` prop from each element's
|
|
59
71
|
* props, returning a serialisable summary of the tree.
|
|
@@ -61,8 +73,8 @@ export const flattenChildren = (children, flat = []) => {
|
|
|
61
73
|
* Intended for introspection and testing — not for re-rendering, since `ref`
|
|
62
74
|
* and event-handler functions are preserved as-is.
|
|
63
75
|
*/
|
|
64
|
-
|
|
65
|
-
const flat = flattenChildren(children);
|
|
76
|
+
const simplifyChildren = (children) => {
|
|
77
|
+
const flat = (0, exports.flattenChildren)(children);
|
|
66
78
|
return flat.map((_a) => {
|
|
67
79
|
var { key, ref, type } = _a, _b = _a.props, { children } = _b, props = __rest(_b, ["children"]);
|
|
68
80
|
return ({
|
|
@@ -70,6 +82,7 @@ export const simplifyChildren = (children) => {
|
|
|
70
82
|
});
|
|
71
83
|
});
|
|
72
84
|
};
|
|
85
|
+
exports.simplifyChildren = simplifyChildren;
|
|
73
86
|
/**
|
|
74
87
|
* Renders a slot that accepts a component, a props object, or a pre-rendered node.
|
|
75
88
|
*
|
|
@@ -82,20 +95,20 @@ export const simplifyChildren = (children) => {
|
|
|
82
95
|
* This lets call sites pass either a component override, extra props, or nothing,
|
|
83
96
|
* without needing separate conditional rendering logic.
|
|
84
97
|
*/
|
|
85
|
-
|
|
98
|
+
function getRenderedComponent(ComponentOrProps, DefaultComponent, props) {
|
|
86
99
|
const _ComponentOrProps = ComponentOrProps;
|
|
87
100
|
const _DefaultComponent = DefaultComponent;
|
|
88
|
-
if (TypeGuards.isFunction(ComponentOrProps)) {
|
|
89
|
-
return
|
|
101
|
+
if (types_1.TypeGuards.isFunction(ComponentOrProps)) {
|
|
102
|
+
return react_1.default.createElement(_ComponentOrProps, Object.assign({}, props));
|
|
90
103
|
}
|
|
91
|
-
if (TypeGuards.isNil(ComponentOrProps) || Object.keys(ComponentOrProps).length === 0) {
|
|
104
|
+
if (types_1.TypeGuards.isNil(ComponentOrProps) || Object.keys(ComponentOrProps).length === 0) {
|
|
92
105
|
return null;
|
|
93
106
|
}
|
|
94
|
-
if (
|
|
107
|
+
if (react_1.default.isValidElement(ComponentOrProps)) {
|
|
95
108
|
return ComponentOrProps;
|
|
96
109
|
}
|
|
97
110
|
const _props = ComponentOrProps;
|
|
98
|
-
return
|
|
111
|
+
return react_1.default.createElement(_DefaultComponent, Object.assign({}, props, _props));
|
|
99
112
|
}
|
|
100
113
|
/**
|
|
101
114
|
* Memoizes a React functional component to prevent unnecessary re-renders.
|
|
@@ -110,8 +123,8 @@ export function getRenderedComponent(ComponentOrProps, DefaultComponent, props)
|
|
|
110
123
|
* @param ComponentToMemoize - The React functional component to memoize.
|
|
111
124
|
* @returns A memoized version of the input component (`React.NamedExoticComponent`).
|
|
112
125
|
*/
|
|
113
|
-
|
|
114
|
-
return
|
|
126
|
+
function memoize(ComponentToMemoize) {
|
|
127
|
+
return react_1.default.memo(ComponentToMemoize, () => true);
|
|
115
128
|
}
|
|
116
129
|
/**
|
|
117
130
|
* Checks whether a specific property in two sets of props is equal.
|
|
@@ -125,10 +138,10 @@ export function memoize(ComponentToMemoize) {
|
|
|
125
138
|
* @param nextProps - The next props object.
|
|
126
139
|
* @returns `true` if the values of the specified property are deeply equal; otherwise, `false`.
|
|
127
140
|
*/
|
|
128
|
-
|
|
141
|
+
function memoChecker(prop, prevProps, nextProps) {
|
|
129
142
|
const nextItem = nextProps[prop];
|
|
130
143
|
const prevItem = prevProps[prop];
|
|
131
|
-
return
|
|
144
|
+
return (0, deep_equal_1.default)(nextItem, prevItem);
|
|
132
145
|
}
|
|
133
146
|
/**
|
|
134
147
|
* Memoizes a React functional component based on specific props.
|
|
@@ -167,8 +180,8 @@ export function memoChecker(prop, prevProps, nextProps) {
|
|
|
167
180
|
* <MemoizedByName name="Alice" age={25} />;
|
|
168
181
|
* <MemoizedByNameAndAge name="Alice" age={25} />;
|
|
169
182
|
*/
|
|
170
|
-
|
|
171
|
-
return
|
|
183
|
+
function memoBy(ComponentToMemoize, check) {
|
|
184
|
+
return react_1.default.memo(ComponentToMemoize, (prevProps, nextProps) => {
|
|
172
185
|
const checks = Array.isArray(check) ? check : [check];
|
|
173
186
|
return checks.every((key) => memoChecker(key, prevProps, nextProps));
|
|
174
187
|
});
|
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,5 +1,14 @@
|
|
|
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;
|
|
1
10
|
/** Collapses all newline characters in `text` to single spaces. */
|
|
2
|
-
|
|
11
|
+
function singleLine(text) {
|
|
3
12
|
return text === null || text === void 0 ? void 0 : text.replace(/\n/g, ' ');
|
|
4
13
|
}
|
|
5
14
|
/**
|
|
@@ -9,7 +18,7 @@ export function singleLine(text) {
|
|
|
9
18
|
* and produces a plain-object clone. Throws if the value contains circular
|
|
10
19
|
* references.
|
|
11
20
|
*/
|
|
12
|
-
|
|
21
|
+
function stringiparse(string) {
|
|
13
22
|
return JSON.parse(JSON.stringify(string));
|
|
14
23
|
}
|
|
15
24
|
/**
|
|
@@ -18,7 +27,7 @@ export function stringiparse(string) {
|
|
|
18
27
|
* When `reverse` is `true` the first character is lowercased instead of
|
|
19
28
|
* uppercased — useful for converting PascalCase to camelCase.
|
|
20
29
|
*/
|
|
21
|
-
|
|
30
|
+
function capitalize(str, reverse = false) {
|
|
22
31
|
if (!str.length)
|
|
23
32
|
return str;
|
|
24
33
|
const firstChar = reverse ? str[0].toLowerCase() : str[0].toUpperCase();
|
|
@@ -30,11 +39,11 @@ export function capitalize(str, reverse = false) {
|
|
|
30
39
|
* Covers the Unicode range `U+0080`–`U+024F` in addition to `A–Z`, so
|
|
31
40
|
* accented capitals (e.g. `É`, `Ñ`) are recognised correctly.
|
|
32
41
|
*/
|
|
33
|
-
|
|
42
|
+
function isUppercase(char) {
|
|
34
43
|
return /[A-Z]|[\u0080-\u024F]/.test(char) && char.toUpperCase() === char;
|
|
35
44
|
}
|
|
36
45
|
/** Returns `true` when `char` is **not** considered uppercase by {@link isUppercase}. */
|
|
37
|
-
|
|
46
|
+
function isLowercase(char) {
|
|
38
47
|
return !isUppercase(char);
|
|
39
48
|
}
|
|
40
49
|
/**
|
|
@@ -44,7 +53,7 @@ export function isLowercase(char) {
|
|
|
44
53
|
* by a lowercase letter. The first character is always uppercased.
|
|
45
54
|
* Consecutive uppercase runs (e.g. acronyms like "URL") are not split.
|
|
46
55
|
*/
|
|
47
|
-
|
|
56
|
+
function humanizeCamelCase(str) {
|
|
48
57
|
const characters = [];
|
|
49
58
|
let previousCharacter = '';
|
|
50
59
|
str.split('').forEach((char, idx) => {
|
|
@@ -70,7 +79,7 @@ export function humanizeCamelCase(str) {
|
|
|
70
79
|
* `maxLen` characters when truncated. Strings already at or below `maxLen` are
|
|
71
80
|
* returned unchanged.
|
|
72
81
|
*/
|
|
73
|
-
|
|
82
|
+
function ellipsis(str, maxLen) {
|
|
74
83
|
if (str.length - 3 > maxLen) {
|
|
75
84
|
return str.slice(0, maxLen - 3) + '...';
|
|
76
85
|
}
|
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":";;AACA,gCAEC;AASD,oCAEC;AAQD,gCAIC;AAQD,kCAEC;AAGD,kCAEC;AASD,8CAkBC;AASD,4BAMC;AAnFD,mEAAmE;AACnE,SAAgB,UAAU,CAAC,IAAY;IACrC,OAAO,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;AAClC,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,YAAY,CAAC,MAAc;IACzC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAA;AAC3C,CAAC;AAED;;;;;GAKG;AACH,SAAgB,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,SAAgB,WAAW,CAAC,IAAY;IACtC,OAAO,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,CAAA;AAC1E,CAAC;AAED,yFAAyF;AACzF,SAAgB,WAAW,CAAC,IAAY;IACtC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;AAC3B,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,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,SAAgB,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"}
|