nhb-toolbox 4.12.50 → 4.12.61
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/CHANGELOG.md +16 -0
- package/dist/cjs/array/calc.js +112 -0
- package/dist/cjs/array/helpers.js +46 -0
- package/dist/cjs/array/transform.js +5 -3
- package/dist/cjs/index.js +18 -8
- package/dist/dts/array/calc.d.ts +70 -0
- package/dist/dts/array/calc.d.ts.map +1 -0
- package/dist/dts/array/helpers.d.ts +18 -0
- package/dist/dts/array/helpers.d.ts.map +1 -0
- package/dist/dts/array/transform.d.ts +3 -4
- package/dist/dts/array/transform.d.ts.map +1 -1
- package/dist/dts/index.d.ts +3 -2
- package/dist/dts/index.d.ts.map +1 -1
- package/dist/dts/object/objectify.d.ts +5 -5
- package/dist/dts/object/objectify.d.ts.map +1 -1
- package/dist/dts/object/types.d.ts +12 -0
- package/dist/dts/object/types.d.ts.map +1 -1
- package/dist/esm/array/calc.js +105 -0
- package/dist/esm/array/helpers.js +42 -0
- package/dist/esm/array/transform.js +5 -3
- package/dist/esm/index.js +3 -2
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,22 @@ All notable changes to the package will be documented here.
|
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
9
|
+
## [4.12.61] - 2025-06-28
|
|
10
|
+
|
|
11
|
+
- **Added** new utility type `Expand<T>` to resolve complex helper-wrapped types into readable structures, similar to `Prettify<T>` but only for special types to use with.
|
|
12
|
+
- **Improved** type display for special cases where types were previously wrapped in multiple utility layers (e.g., `MergeAll`, `FlattenValue` etc.).
|
|
13
|
+
|
|
14
|
+
## [4.12.60] - 2025-06-27
|
|
15
|
+
|
|
16
|
+
- **Added** new array utilities:
|
|
17
|
+
- `sumByField`
|
|
18
|
+
- `averageByField`
|
|
19
|
+
- `sumFieldDifference`
|
|
20
|
+
- `groupAndSumByField`
|
|
21
|
+
- `groupAndAverageByField`
|
|
22
|
+
|
|
23
|
+
- **Updated** `splitArrayByProperty` utility to allow nested field as dot-notation.
|
|
24
|
+
|
|
9
25
|
## [4.12.50] - 2025-06-27
|
|
10
26
|
|
|
11
27
|
- **Updated** return type definition and **enhanced** internal logic for `mergeObjects`, `mergeAndFlattenObjects`, `flattenObjectKeyValue`, `flattenObjectDotNotation`.
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.sumFieldDifference = sumFieldDifference;
|
|
4
|
+
exports.sumByField = sumByField;
|
|
5
|
+
exports.averageByField = averageByField;
|
|
6
|
+
exports.groupAndSumByField = groupAndSumByField;
|
|
7
|
+
exports.groupAndAverageByField = groupAndAverageByField;
|
|
8
|
+
const non_primitives_1 = require("../guards/non-primitives");
|
|
9
|
+
const basics_1 = require("../number/basics");
|
|
10
|
+
const helpers_1 = require("./helpers");
|
|
11
|
+
const transform_1 = require("./transform");
|
|
12
|
+
/**
|
|
13
|
+
* * Calculates the sum of differences between two numeric fields for each item in the array.
|
|
14
|
+
*
|
|
15
|
+
* @param data - The array of objects to process.
|
|
16
|
+
* @param first - The field name to subtract **from** (minuend), supports nested dot notation.
|
|
17
|
+
* @param second - The field name to subtract (subtrahend), supports nested dot notation.
|
|
18
|
+
* @param roundTo - Decimal places to round the result to. Defaults to 2.
|
|
19
|
+
* @returns The total sum of differences between the two fields across all items.
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* sumFieldDifference([{ buy: 10, sell: 3 }, { buy: 8, sell: 5 }], 'buy', 'sell');
|
|
23
|
+
* // => 10
|
|
24
|
+
*/
|
|
25
|
+
function sumFieldDifference(data, first, second, roundTo = 2) {
|
|
26
|
+
if (!(0, non_primitives_1.isValidArray)(data))
|
|
27
|
+
return 0;
|
|
28
|
+
const total = data?.reduce((acc, item) => {
|
|
29
|
+
return (acc + ((0, helpers_1._getNumericProp)(item, first) - (0, helpers_1._getNumericProp)(item, second)));
|
|
30
|
+
}, 0);
|
|
31
|
+
return (0, basics_1.roundNumber)(total, roundTo);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* * Calculates the total sum of a numeric field across all items.
|
|
35
|
+
*
|
|
36
|
+
* @param data - The array of objects to process.
|
|
37
|
+
* @param field - The field to sum values from. Supports nested dot notation.
|
|
38
|
+
* @param roundTo - Decimal places to round the result to. Defaults to 2.
|
|
39
|
+
* @returns The rounded total sum.
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* sumByField([{ a: 5 }, { a: 3 }], 'a');
|
|
43
|
+
* // => 8
|
|
44
|
+
*/
|
|
45
|
+
function sumByField(data, field, roundTo = 2) {
|
|
46
|
+
if (!(0, non_primitives_1.isValidArray)(data))
|
|
47
|
+
return 0;
|
|
48
|
+
const total = data?.reduce((acc, item) => acc + (0, helpers_1._getNumericProp)(item, field), 0);
|
|
49
|
+
return (0, basics_1.roundNumber)(total, roundTo);
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* * Calculates the average of a numeric field across all items.
|
|
53
|
+
*
|
|
54
|
+
* @param data - The array of objects to process.
|
|
55
|
+
* @param field - The field to calculate the average from. Supports nested dot notation.
|
|
56
|
+
* @param roundTo - Decimal places to round the result to. Defaults to 2.
|
|
57
|
+
* @returns The rounded average.
|
|
58
|
+
*
|
|
59
|
+
* @example
|
|
60
|
+
* averageByField([{ a: 4 }, { a: 6 }], 'a');
|
|
61
|
+
* // => 5
|
|
62
|
+
*/
|
|
63
|
+
function averageByField(data, field, roundTo = 2) {
|
|
64
|
+
if (!(0, non_primitives_1.isValidArray)(data))
|
|
65
|
+
return 0;
|
|
66
|
+
const total = data?.reduce((acc, item) => acc + (0, helpers_1._getNumericProp)(item, field), 0);
|
|
67
|
+
return (0, basics_1.roundNumber)(total / data.length, roundTo);
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* * Groups an array of objects by a primitive field and sums another numeric field per group.
|
|
71
|
+
*
|
|
72
|
+
* @param data - The array of objects to group.
|
|
73
|
+
* @param groupBy - The field to group by. Supports nested dot notation.
|
|
74
|
+
* @param sumBy - The numeric field to sum within each group. Supports nested dot notation.
|
|
75
|
+
* @param roundTo - Decimal places to round each group’s result to. Defaults to 2.
|
|
76
|
+
* @returns An array of records, each with the group key and its corresponding summed value.
|
|
77
|
+
*
|
|
78
|
+
* @example
|
|
79
|
+
* groupAndSumByField([{ type: 'A', val: 2 }, { type: 'A', val: 3 }, { type: 'B', val: 1 }], 'type', 'val');
|
|
80
|
+
* // => [{ A: 5 }, { B: 1 }]
|
|
81
|
+
*/
|
|
82
|
+
function groupAndSumByField(data, groupBy, sumBy, roundTo = 2) {
|
|
83
|
+
if (!(0, non_primitives_1.isValidArray)(data))
|
|
84
|
+
return [];
|
|
85
|
+
const groups = (0, transform_1.splitArrayByProperty)(data, groupBy);
|
|
86
|
+
const result = groups.map((group) => ({
|
|
87
|
+
[`${(0, helpers_1._resolveNestedKey)(group[0], groupBy)}`]: sumByField(group, sumBy, roundTo),
|
|
88
|
+
}));
|
|
89
|
+
return result;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* * Groups an array of objects by a primitive field and averages another numeric field per group.
|
|
93
|
+
*
|
|
94
|
+
* @param data - The array of objects to group.
|
|
95
|
+
* @param groupBy - The field to group by. Supports nested dot notation.
|
|
96
|
+
* @param averageBy - The numeric field to average within each group. Supports nested dot notation.
|
|
97
|
+
* @param roundTo - Decimal places to round each group’s average to. Defaults to 2.
|
|
98
|
+
* @returns An array of records, each with the group key and its corresponding average value.
|
|
99
|
+
*
|
|
100
|
+
* @example
|
|
101
|
+
* groupAndAverageByField([{ type: 'A', val: 2 }, { type: 'A', val: 4 }, { type: 'B', val: 6 }], 'type', 'val');
|
|
102
|
+
* // => [{ A: 3 }, { B: 6 }]
|
|
103
|
+
*/
|
|
104
|
+
function groupAndAverageByField(data, groupBy, averageBy, roundTo = 2) {
|
|
105
|
+
if (!(0, non_primitives_1.isValidArray)(data))
|
|
106
|
+
return [];
|
|
107
|
+
const groups = (0, transform_1.splitArrayByProperty)(data, groupBy);
|
|
108
|
+
const result = groups.map((group) => ({
|
|
109
|
+
[`${(0, helpers_1._resolveNestedKey)(group[0], groupBy)}`]: averageByField(group, averageBy, roundTo),
|
|
110
|
+
}));
|
|
111
|
+
return result;
|
|
112
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports._resolveNestedKey = _resolveNestedKey;
|
|
4
|
+
exports._getNumericProp = _getNumericProp;
|
|
5
|
+
const non_primitives_1 = require("../guards/non-primitives");
|
|
6
|
+
const primitives_1 = require("../guards/primitives");
|
|
7
|
+
const specials_1 = require("../guards/specials");
|
|
8
|
+
/**
|
|
9
|
+
* Safely resolves nested keys from a dot-separated string like "user.city".
|
|
10
|
+
*
|
|
11
|
+
* @param obj - The source object
|
|
12
|
+
* @param path - The nested path string (e.g. "user.city")
|
|
13
|
+
* @returns The resolved value or `undefined`
|
|
14
|
+
*/
|
|
15
|
+
function _resolveNestedKey(obj, path) {
|
|
16
|
+
if ((0, non_primitives_1.isNotEmptyObject)(obj)) {
|
|
17
|
+
return path.split('.').reduce((acc, key) => {
|
|
18
|
+
if ((0, non_primitives_1.isNotEmptyObject)(acc)) {
|
|
19
|
+
return acc[key];
|
|
20
|
+
}
|
|
21
|
+
}, obj);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Retrieves a numeric value from a nested property in dot notation.
|
|
26
|
+
* Falls back to 0 if value is not a number or numeric string.
|
|
27
|
+
*
|
|
28
|
+
* @param obj - The source object to read from.
|
|
29
|
+
* @param path - The path string like 'user.income.tax'.
|
|
30
|
+
* @returns The numeric value at that path, or 0 if not valid.
|
|
31
|
+
*/
|
|
32
|
+
function _getNumericProp(obj, path) {
|
|
33
|
+
if ((0, non_primitives_1.isNotEmptyObject)(obj)) {
|
|
34
|
+
const value = path.split('.').reduce((acc, key) => {
|
|
35
|
+
if ((0, non_primitives_1.isNotEmptyObject)(acc)) {
|
|
36
|
+
return acc[key];
|
|
37
|
+
}
|
|
38
|
+
}, obj);
|
|
39
|
+
return ((0, primitives_1.isNumber)(value) ? value
|
|
40
|
+
: (0, specials_1.isNumericString)(value) ? Number(value)
|
|
41
|
+
: 0);
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
return 0;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
@@ -11,6 +11,7 @@ exports.moveArrayElement = moveArrayElement;
|
|
|
11
11
|
const non_primitives_1 = require("../guards/non-primitives");
|
|
12
12
|
const primitives_1 = require("../guards/primitives");
|
|
13
13
|
const index_1 = require("../utils/index");
|
|
14
|
+
const helpers_1 = require("./helpers");
|
|
14
15
|
/**
|
|
15
16
|
* * Converts an array of objects into a formatted array of options.
|
|
16
17
|
*
|
|
@@ -104,7 +105,7 @@ function splitArray(arr, chunkSize) {
|
|
|
104
105
|
* * Group an array of objects by a specified key, returning only arrays of grouped objects.
|
|
105
106
|
*
|
|
106
107
|
* @param source - The source array of objects to group.
|
|
107
|
-
* @param property - The property to group the array by. Property can be a string, number, boolean, undefined or null.
|
|
108
|
+
* @param property - The property to group the array by. Property can be a string, number, boolean, undefined or null. Supports nested dot notation.
|
|
108
109
|
*
|
|
109
110
|
* @returns An array of grouped arrays. Each sub-array contains objects that share the same value for the specified property.
|
|
110
111
|
*
|
|
@@ -121,10 +122,11 @@ function splitArrayByProperty(source, property) {
|
|
|
121
122
|
return [];
|
|
122
123
|
const grouped = {};
|
|
123
124
|
source.forEach((item) => {
|
|
124
|
-
const rawKey = item
|
|
125
|
+
const rawKey = (0, helpers_1._resolveNestedKey)(item, property);
|
|
125
126
|
const key = rawKey != null ? String(rawKey) : '__undefined__';
|
|
126
|
-
if (!grouped[key])
|
|
127
|
+
if (!grouped[key]) {
|
|
127
128
|
grouped[key] = [];
|
|
129
|
+
}
|
|
128
130
|
grouped[key].push(item);
|
|
129
131
|
});
|
|
130
132
|
return Object.values(grouped);
|
package/dist/cjs/index.js
CHANGED
|
@@ -18,10 +18,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
18
18
|
exports.Unit = exports.Currency = exports.sumOfNumbers = exports.sumNumbers = exports.sumDigits = exports.roundToDecimal = exports.roundNumber = exports.reverseNumber = exports.getSumOfNumbers = exports.getRandomNumber = exports.getRandomInt = exports.getAverageOfNumbers = exports.getAverage = exports.convertToFixed = exports.convertToDecimal = exports.calculateLCM = exports.calculateLCD = exports.calculateHCF = exports.calculateGCD = exports.calculateAverage = exports.wordCount = exports.parseNumbersFromText = exports.levenshteinDistance = exports.getLevenshteinDistance = exports.extractNumbersFromString = exports.extractNumbers = exports.countWordsInString = exports.countWords = exports.slugifyString = exports.reverseString = exports.replaceAllInString = exports.normalizeString = exports.maskString = exports.formatWithPlural = exports.formatUnitWithPlural = exports.formatNumberWithPluralUnit = exports.extractURLs = exports.extractEmails = exports.convertStringCase = exports.isSnakeCase = exports.isPascalCase = exports.isPalindrome = exports.isKebabCase = exports.isEmojiOnly = exports.isCamelCase = exports.generateAnagrams = exports.truncateString = exports.trimString = exports.generateRandomID = exports.capitalizeString = void 0;
|
|
19
19
|
exports.numberToOrdinal = exports.getRandomFloat = exports.getRandomDecimal = exports.getOrdinalNumber = exports.getOrdinal = exports.formatCurrency = exports.convertToOrdinal = exports.convertNumberToOrdinal = exports.convertNumberToCurrency = exports.clampNumber = exports.cardinalToOrdinal = exports.isPrimeNumber = exports.isPrime = exports.getPrimeNumbers = exports.findPrimeNumbers = exports.toRomanNumeral = exports.toRoman = exports.numericToRoman = exports.numberToWordsOrdinal = exports.numberToWords = exports.numberToRoman = exports.integerToRoman = exports.convertToRomanNumerals = exports.convertNumberToWordsOrdinal = exports.convertNumberToWords = exports.cardinalWordsToOrdinal = exports.isPerfectSquare = exports.isParOfFibonacciSeries = exports.isParOfFibonacci = exports.isOddNumber = exports.isOdd = exports.isNumberInvalid = exports.isMultiple = exports.isInvalidNumber = exports.isFibonacci = exports.isEvenNumber = exports.isEven = exports.areNumbersInvalid = exports.areInvalidNumbers = exports.getNthFibonacci = exports.getMemoizedFibonacciSeries = exports.getMemoizedFibonacci = exports.getFibonacciSeriesMemo = exports.getFibonacciSeries = exports.getFibonacciNumbers = exports.getFibonacci = exports.generateFibonacci = exports.fibonacciGenerator = exports.calculatePercentage = exports.UnitConverter = void 0;
|
|
20
20
|
exports.extractTimeStringFromUTC = exports.extractTimeFromUTC = exports.extractMinutesFromUTC = exports.extractHourMinute = exports.convertMinutesToUTCOffset = exports.convertMinutesToTime = exports.convertMinutesToHourMinutes = exports.chronusts = exports.chronusjs = exports.chronus = exports.chronosts = exports.chronosjs = exports.chronos = exports.INTERNALS = exports.Chronus = exports.Chronos = exports.isValidUTCOffSet = exports.isValidUTC = exports.isValidTimeString = exports.isValidTime = exports.isLeapYear = exports.isDateLike = exports.greet = exports.getGreeting = exports.generateGreeting = exports.extractSolidColorValues = exports.extractAlphaColorValues = exports.Colour = exports.Color = exports.convertRgbToRgba = exports.convertRgbToHsl = exports.convertRgbToHex = exports.convertRgbaToHsla = exports.convertRgbaToHex8 = exports.convertHslToRgb = exports.convertHslToHex = exports.convertHslaToRgba = exports.convertHslaToHex8 = exports.convertHexToRgb = exports.convertHexToHsl = exports.convertHex8ToRgba = exports.convertHex8ToHsla = exports.convertColorCode = exports.generateRandomHSLColor = exports.generateRandomColorInHexRGB = exports.getColorForInitial = exports.getNumbersInRange = exports.roundToNearestInterval = exports.roundToNearest = exports.roundNumberToNearestInterval = void 0;
|
|
21
|
-
exports.
|
|
22
|
-
exports.
|
|
23
|
-
exports.
|
|
24
|
-
exports.isValidURL = exports.isValidEmail = exports.isUUID = exports.isURL = exports.isPhoneNumber = exports.isNumericString = exports.isNodeEnvironment = exports.isNodeENV = exports.isNode = exports.isIPAddress = exports.isExpectedNodeENV = exports.isEnvironment = exports.isEmailArray = exports.isEmail = exports.isDateString = exports.isBrowser = exports.isBase64 = exports.isValidSet = exports.isValidObject = void 0;
|
|
21
|
+
exports.createFormData = exports.createControlledFormData = exports.convertIntoFormData = exports.naturalSortForString = exports.naturalSort = exports.compareSorter = exports.compareNaturally = exports.splitArrayByProperty = exports.splitArray = exports.rotateArray = exports.removeDuplicatesFromArray = exports.removeDuplicates = exports.moveArrayElement = exports.groupArrayByProperty = exports.getMissingElements = exports.getDuplicatesFromArray = exports.getDuplicates = exports.findMissingElements = exports.extractMissingElements = exports.extractDuplicatesFromArray = exports.extractDuplicates = exports.createOptionsArray = exports.sortAnArray = exports.Finder = exports.totalDeltaByField = exports.sumFieldDifference = exports.sumByField = exports.groupAndSumByField = exports.groupAndAvgByField = exports.groupAndAverageByField = exports.avgByField = exports.averageByField = exports.shuffleArray = exports.isValidEmptyArray = exports.isInvalidOrEmptyArray = exports.getLastArrayElement = exports.flattenArray = exports.filterArrayOfObjects = exports.minutesToUTCOffset = exports.getTotalMinutesFromUTC = exports.getTotalMinutesFromTime = exports.getTotalMinutes = exports.getTimeStringFromUTC = exports.getTimeFromMinutes = exports.getMinutesFromUTC = exports.getHourMinutesFromMinutes = exports.getCurrentTime = exports.getCurrentDateTime = exports.formatUTCOffset = exports.extractTotalMinutesFromTime = void 0;
|
|
22
|
+
exports.removeFromLocalStorage = exports.getFromSessionStorage = exports.getFromLocalStorage = exports.toggleFullScreen = exports.smoothScrollTo = exports.copyToClipboard = exports.updateQueryParam = exports.queryStringToObject = exports.parseQueryString = exports.getQueryStringAsObject = exports.getQueryParams = exports.generateQueryParams = exports.formatQueryParams = exports.createQueryParams = exports.removeObjectFields = exports.removeFields = exports.remapObjectFields = exports.remapFields = exports.pickObjectFieldsByCondition = exports.pickObjectFields = exports.pickFieldsByCondition = exports.pickFields = exports.omitObjectFields = exports.omitFields = exports.deleteObjectFields = exports.deleteFields = exports.convertObjectValues = exports.sanitizeData = exports.parseStringifiedObjectValues = exports.parseObjectValues = exports.parseJsonToObject = exports.mergeObjects = exports.mergeAndFlattenObjects = exports.flattenObjectKeyValue = exports.flattenObjectDotNotation = exports.extractUpdatedFields = exports.extractUpdatedAndNewFields = exports.extractNewFields = exports.countObjectFields = exports.cloneObject = exports.isValidFormData = exports.isOriginFileObj = exports.isFileUpload = exports.isFileOrBlob = exports.isFileList = exports.isFileArray = exports.isCustomFileArray = exports.isCustomFile = exports.serializeForm = exports.parseFormData = void 0;
|
|
23
|
+
exports.isObjectEmpty = exports.isObject = exports.isNotEmptyObject = exports.isMethodDescriptor = exports.isMethod = exports.isMap = exports.isJSONObject = exports.isJSON = exports.isFunction = exports.isError = exports.isEmptyObjectGuard = exports.isEmptyObject = exports.isDate = exports.isArrayWithLength = exports.isArrayOfType = exports.isArray = exports.doesReturnPromise = exports.isUndefined = exports.isTruthy = exports.isSymbol = exports.isString = exports.isPrimitive = exports.isPositiveInteger = exports.isNumber = exports.isNull = exports.isNormalPrimitive = exports.isNonEmptyString = exports.isInteger = exports.isFalsy = exports.isBoolean = exports.isBigInt = exports.Paginator = exports.throttleAction = exports.parsePrimitivesDeep = exports.parseJsonDeep = exports.parseJSON = exports.isDeepEqual = exports.getStaticMethodsCount = exports.getStaticMethodNames = exports.getInstanceMethodsCount = exports.getInstanceMethodNames = exports.getClassDetails = exports.deepParsePrimitives = exports.debounceAction = exports.countStaticMethods = exports.countInstanceMethods = exports.convertArrayToString = exports.saveToSessionStorage = exports.saveToLocalStorage = exports.removeFromSessionStorage = void 0;
|
|
24
|
+
exports.isValidURL = exports.isValidEmail = exports.isUUID = exports.isURL = exports.isPhoneNumber = exports.isNumericString = exports.isNodeEnvironment = exports.isNodeENV = exports.isNode = exports.isIPAddress = exports.isExpectedNodeENV = exports.isEnvironment = exports.isEmailArray = exports.isEmail = exports.isDateString = exports.isBrowser = exports.isBase64 = exports.isValidSet = exports.isValidObject = exports.isValidMap = exports.isValidJSON = exports.isValidArray = exports.isSet = exports.isReturningPromise = exports.isRegularExpression = exports.isRegExp = exports.isPromise = exports.isObjectWithKeys = void 0;
|
|
25
25
|
// ! String Utilities
|
|
26
26
|
var basics_1 = require("./string/basics");
|
|
27
27
|
Object.defineProperty(exports, "capitalizeString", { enumerable: true, get: function () { return basics_1.capitalizeString; } });
|
|
@@ -226,6 +226,15 @@ Object.defineProperty(exports, "getLastArrayElement", { enumerable: true, get: f
|
|
|
226
226
|
Object.defineProperty(exports, "isInvalidOrEmptyArray", { enumerable: true, get: function () { return basics_3.isInvalidOrEmptyArray; } });
|
|
227
227
|
Object.defineProperty(exports, "isValidEmptyArray", { enumerable: true, get: function () { return basics_3.isInvalidOrEmptyArray; } });
|
|
228
228
|
Object.defineProperty(exports, "shuffleArray", { enumerable: true, get: function () { return basics_3.shuffleArray; } });
|
|
229
|
+
var calc_1 = require("./array/calc");
|
|
230
|
+
Object.defineProperty(exports, "averageByField", { enumerable: true, get: function () { return calc_1.averageByField; } });
|
|
231
|
+
Object.defineProperty(exports, "avgByField", { enumerable: true, get: function () { return calc_1.averageByField; } });
|
|
232
|
+
Object.defineProperty(exports, "groupAndAverageByField", { enumerable: true, get: function () { return calc_1.groupAndAverageByField; } });
|
|
233
|
+
Object.defineProperty(exports, "groupAndAvgByField", { enumerable: true, get: function () { return calc_1.groupAndAverageByField; } });
|
|
234
|
+
Object.defineProperty(exports, "groupAndSumByField", { enumerable: true, get: function () { return calc_1.groupAndSumByField; } });
|
|
235
|
+
Object.defineProperty(exports, "sumByField", { enumerable: true, get: function () { return calc_1.sumByField; } });
|
|
236
|
+
Object.defineProperty(exports, "sumFieldDifference", { enumerable: true, get: function () { return calc_1.sumFieldDifference; } });
|
|
237
|
+
Object.defineProperty(exports, "totalDeltaByField", { enumerable: true, get: function () { return calc_1.sumFieldDifference; } });
|
|
229
238
|
var Finder_1 = require("./array/Finder");
|
|
230
239
|
Object.defineProperty(exports, "Finder", { enumerable: true, get: function () { return Finder_1.Finder; } });
|
|
231
240
|
var sort_1 = require("./array/sort");
|
|
@@ -239,6 +248,7 @@ Object.defineProperty(exports, "findMissingElements", { enumerable: true, get: f
|
|
|
239
248
|
Object.defineProperty(exports, "getDuplicates", { enumerable: true, get: function () { return transform_1.getDuplicates; } });
|
|
240
249
|
Object.defineProperty(exports, "getDuplicatesFromArray", { enumerable: true, get: function () { return transform_1.getDuplicates; } });
|
|
241
250
|
Object.defineProperty(exports, "getMissingElements", { enumerable: true, get: function () { return transform_1.findMissingElements; } });
|
|
251
|
+
Object.defineProperty(exports, "groupArrayByProperty", { enumerable: true, get: function () { return transform_1.splitArrayByProperty; } });
|
|
242
252
|
Object.defineProperty(exports, "moveArrayElement", { enumerable: true, get: function () { return transform_1.moveArrayElement; } });
|
|
243
253
|
Object.defineProperty(exports, "removeDuplicates", { enumerable: true, get: function () { return transform_1.removeDuplicatesFromArray; } });
|
|
244
254
|
Object.defineProperty(exports, "removeDuplicatesFromArray", { enumerable: true, get: function () { return transform_1.removeDuplicatesFromArray; } });
|
|
@@ -286,16 +296,16 @@ Object.defineProperty(exports, "parseStringifiedObjectValues", { enumerable: tru
|
|
|
286
296
|
Object.defineProperty(exports, "sanitizeData", { enumerable: true, get: function () { return sanitize_1.sanitizeData; } });
|
|
287
297
|
var convert_5 = require("./object/convert");
|
|
288
298
|
Object.defineProperty(exports, "convertObjectValues", { enumerable: true, get: function () { return convert_5.convertObjectValues; } });
|
|
299
|
+
Object.defineProperty(exports, "deleteFields", { enumerable: true, get: function () { return convert_5.deleteFields; } });
|
|
300
|
+
Object.defineProperty(exports, "deleteObjectFields", { enumerable: true, get: function () { return convert_5.deleteFields; } });
|
|
301
|
+
Object.defineProperty(exports, "omitFields", { enumerable: true, get: function () { return convert_5.deleteFields; } });
|
|
302
|
+
Object.defineProperty(exports, "omitObjectFields", { enumerable: true, get: function () { return convert_5.deleteFields; } });
|
|
289
303
|
Object.defineProperty(exports, "pickFields", { enumerable: true, get: function () { return convert_5.pickFields; } });
|
|
290
304
|
Object.defineProperty(exports, "pickFieldsByCondition", { enumerable: true, get: function () { return convert_5.pickObjectFieldsByCondition; } });
|
|
291
305
|
Object.defineProperty(exports, "pickObjectFields", { enumerable: true, get: function () { return convert_5.pickFields; } });
|
|
292
306
|
Object.defineProperty(exports, "pickObjectFieldsByCondition", { enumerable: true, get: function () { return convert_5.pickObjectFieldsByCondition; } });
|
|
293
307
|
Object.defineProperty(exports, "remapFields", { enumerable: true, get: function () { return convert_5.remapFields; } });
|
|
294
308
|
Object.defineProperty(exports, "remapObjectFields", { enumerable: true, get: function () { return convert_5.remapFields; } });
|
|
295
|
-
Object.defineProperty(exports, "deleteFields", { enumerable: true, get: function () { return convert_5.deleteFields; } });
|
|
296
|
-
Object.defineProperty(exports, "omitFields", { enumerable: true, get: function () { return convert_5.deleteFields; } });
|
|
297
|
-
Object.defineProperty(exports, "omitObjectFields", { enumerable: true, get: function () { return convert_5.deleteFields; } });
|
|
298
|
-
Object.defineProperty(exports, "deleteObjectFields", { enumerable: true, get: function () { return convert_5.deleteFields; } });
|
|
299
309
|
Object.defineProperty(exports, "removeFields", { enumerable: true, get: function () { return convert_5.deleteFields; } });
|
|
300
310
|
Object.defineProperty(exports, "removeObjectFields", { enumerable: true, get: function () { return convert_5.deleteFields; } });
|
|
301
311
|
// ! DOM Utilities
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import type { GenericObject, NestedPrimitiveKey, NumericDotKey } from '../object/types';
|
|
2
|
+
/**
|
|
3
|
+
* * Calculates the sum of differences between two numeric fields for each item in the array.
|
|
4
|
+
*
|
|
5
|
+
* @param data - The array of objects to process.
|
|
6
|
+
* @param first - The field name to subtract **from** (minuend), supports nested dot notation.
|
|
7
|
+
* @param second - The field name to subtract (subtrahend), supports nested dot notation.
|
|
8
|
+
* @param roundTo - Decimal places to round the result to. Defaults to 2.
|
|
9
|
+
* @returns The total sum of differences between the two fields across all items.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* sumFieldDifference([{ buy: 10, sell: 3 }, { buy: 8, sell: 5 }], 'buy', 'sell');
|
|
13
|
+
* // => 10
|
|
14
|
+
*/
|
|
15
|
+
export declare function sumFieldDifference<T extends GenericObject, P extends NumericDotKey<T>>(data: T[] | undefined, first: P, second: P, roundTo?: number): number;
|
|
16
|
+
/**
|
|
17
|
+
* * Calculates the total sum of a numeric field across all items.
|
|
18
|
+
*
|
|
19
|
+
* @param data - The array of objects to process.
|
|
20
|
+
* @param field - The field to sum values from. Supports nested dot notation.
|
|
21
|
+
* @param roundTo - Decimal places to round the result to. Defaults to 2.
|
|
22
|
+
* @returns The rounded total sum.
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* sumByField([{ a: 5 }, { a: 3 }], 'a');
|
|
26
|
+
* // => 8
|
|
27
|
+
*/
|
|
28
|
+
export declare function sumByField<T extends GenericObject>(data: T[] | undefined, field: NumericDotKey<T>, roundTo?: number): number;
|
|
29
|
+
/**
|
|
30
|
+
* * Calculates the average of a numeric field across all items.
|
|
31
|
+
*
|
|
32
|
+
* @param data - The array of objects to process.
|
|
33
|
+
* @param field - The field to calculate the average from. Supports nested dot notation.
|
|
34
|
+
* @param roundTo - Decimal places to round the result to. Defaults to 2.
|
|
35
|
+
* @returns The rounded average.
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* averageByField([{ a: 4 }, { a: 6 }], 'a');
|
|
39
|
+
* // => 5
|
|
40
|
+
*/
|
|
41
|
+
export declare function averageByField<T extends GenericObject>(data: T[] | undefined, field: NumericDotKey<T>, roundTo?: number): number;
|
|
42
|
+
/**
|
|
43
|
+
* * Groups an array of objects by a primitive field and sums another numeric field per group.
|
|
44
|
+
*
|
|
45
|
+
* @param data - The array of objects to group.
|
|
46
|
+
* @param groupBy - The field to group by. Supports nested dot notation.
|
|
47
|
+
* @param sumBy - The numeric field to sum within each group. Supports nested dot notation.
|
|
48
|
+
* @param roundTo - Decimal places to round each group’s result to. Defaults to 2.
|
|
49
|
+
* @returns An array of records, each with the group key and its corresponding summed value.
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* groupAndSumByField([{ type: 'A', val: 2 }, { type: 'A', val: 3 }, { type: 'B', val: 1 }], 'type', 'val');
|
|
53
|
+
* // => [{ A: 5 }, { B: 1 }]
|
|
54
|
+
*/
|
|
55
|
+
export declare function groupAndSumByField<T extends GenericObject>(data: T[] | undefined, groupBy: NestedPrimitiveKey<T>, sumBy: NumericDotKey<T>, roundTo?: number): Array<Record<string, number>>;
|
|
56
|
+
/**
|
|
57
|
+
* * Groups an array of objects by a primitive field and averages another numeric field per group.
|
|
58
|
+
*
|
|
59
|
+
* @param data - The array of objects to group.
|
|
60
|
+
* @param groupBy - The field to group by. Supports nested dot notation.
|
|
61
|
+
* @param averageBy - The numeric field to average within each group. Supports nested dot notation.
|
|
62
|
+
* @param roundTo - Decimal places to round each group’s average to. Defaults to 2.
|
|
63
|
+
* @returns An array of records, each with the group key and its corresponding average value.
|
|
64
|
+
*
|
|
65
|
+
* @example
|
|
66
|
+
* groupAndAverageByField([{ type: 'A', val: 2 }, { type: 'A', val: 4 }, { type: 'B', val: 6 }], 'type', 'val');
|
|
67
|
+
* // => [{ A: 3 }, { B: 6 }]
|
|
68
|
+
*/
|
|
69
|
+
export declare function groupAndAverageByField<T extends GenericObject>(data: T[] | undefined, groupBy: NestedPrimitiveKey<T>, averageBy: NumericDotKey<T>, roundTo?: number): Array<Record<string, number>>;
|
|
70
|
+
//# sourceMappingURL=calc.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calc.d.ts","sourceRoot":"","sources":["../../../src/array/calc.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACX,aAAa,EACb,kBAAkB,EAClB,aAAa,EACb,MAAM,iBAAiB,CAAC;AAIzB;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CACjC,CAAC,SAAS,aAAa,EACvB,CAAC,SAAS,aAAa,CAAC,CAAC,CAAC,EACzB,IAAI,EAAE,CAAC,EAAE,GAAG,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,SAAI,GAAG,MAAM,CAUjE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,aAAa,EACjD,IAAI,EAAE,CAAC,EAAE,GAAG,SAAS,EACrB,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EACvB,OAAO,SAAI,GACT,MAAM,CASR;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,aAAa,EACrD,IAAI,EAAE,CAAC,EAAE,GAAG,SAAS,EACrB,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EACvB,OAAO,SAAI,GACT,MAAM,CASR;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,aAAa,EACzD,IAAI,EAAE,CAAC,EAAE,GAAG,SAAS,EACrB,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAC9B,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EACvB,OAAO,SAAI,GACT,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAc/B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,SAAS,aAAa,EAC7D,IAAI,EAAE,CAAC,EAAE,GAAG,SAAS,EACrB,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAC9B,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC,EAC3B,OAAO,SAAI,GACT,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAc/B"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Safely resolves nested keys from a dot-separated string like "user.city".
|
|
3
|
+
*
|
|
4
|
+
* @param obj - The source object
|
|
5
|
+
* @param path - The nested path string (e.g. "user.city")
|
|
6
|
+
* @returns The resolved value or `undefined`
|
|
7
|
+
*/
|
|
8
|
+
export declare function _resolveNestedKey(obj: unknown, path: string): unknown;
|
|
9
|
+
/**
|
|
10
|
+
* Retrieves a numeric value from a nested property in dot notation.
|
|
11
|
+
* Falls back to 0 if value is not a number or numeric string.
|
|
12
|
+
*
|
|
13
|
+
* @param obj - The source object to read from.
|
|
14
|
+
* @param path - The path string like 'user.income.tax'.
|
|
15
|
+
* @returns The numeric value at that path, or 0 if not valid.
|
|
16
|
+
*/
|
|
17
|
+
export declare function _getNumericProp(obj: unknown, path: string): number;
|
|
18
|
+
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/array/helpers.ts"],"names":[],"mappings":"AAIA;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAQrE;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAgBlE"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import type { GenericObject } from '../object/types';
|
|
2
|
-
import type { NormalPrimitiveKey } from '../types/index';
|
|
1
|
+
import type { GenericObject, NestedPrimitiveKey } from '../object/types';
|
|
3
2
|
import type { FieldValue, OptionsConfig } from './types';
|
|
4
3
|
/**
|
|
5
4
|
* * Converts an array of objects into a formatted array of options.
|
|
@@ -54,7 +53,7 @@ export declare function splitArray<T>(arr: T[], chunkSize: number): Array<T[]>;
|
|
|
54
53
|
* * Group an array of objects by a specified key, returning only arrays of grouped objects.
|
|
55
54
|
*
|
|
56
55
|
* @param source - The source array of objects to group.
|
|
57
|
-
* @param property - The property to group the array by. Property can be a string, number, boolean, undefined or null.
|
|
56
|
+
* @param property - The property to group the array by. Property can be a string, number, boolean, undefined or null. Supports nested dot notation.
|
|
58
57
|
*
|
|
59
58
|
* @returns An array of grouped arrays. Each sub-array contains objects that share the same value for the specified property.
|
|
60
59
|
*
|
|
@@ -66,7 +65,7 @@ export declare function splitArray<T>(arr: T[], chunkSize: number): Array<T[]>;
|
|
|
66
65
|
* - Returns an empty array if the input is invalid or empty.
|
|
67
66
|
* - Groups objects even when the group key is `undefined` or `null` (object with `null` & `undefined` property-values are grouped together).
|
|
68
67
|
*/
|
|
69
|
-
export declare function splitArrayByProperty<T extends GenericObject, P extends
|
|
68
|
+
export declare function splitArrayByProperty<T extends GenericObject, P extends NestedPrimitiveKey<T>>(source: T[] | undefined, property: P): Array<T[]>;
|
|
70
69
|
/**
|
|
71
70
|
* * Rotates an array left or right by a given number of steps.
|
|
72
71
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../../src/array/transform.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../../src/array/transform.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAGzE,OAAO,KAAK,EAAE,UAAU,EAAU,aAAa,EAAE,MAAM,SAAS,CAAC;AAEjE;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CACjC,CAAC,SAAS,aAAa,EACvB,EAAE,SAAS,MAAM,GAAG,OAAO,EAC3B,EAAE,SAAS,MAAM,GAAG,OAAO,EAC3B,CAAC,SAAS,OAAO,GAAG,KAAK,EAEzB,IAAI,EAAE,CAAC,EAAE,EACT,MAAM,EAAE,aAAa,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,GACjC,KAAK,CAAC;KAAG,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;CAAE,CAAC,CAwBxD;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAK5D;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAgBhD;AAED;;;;;GAKG;AAEH;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,CAAC,EACvC,MAAM,EAAE,CAAC,EAAE,EACX,MAAM,EAAE,CAAC,EAAE,EACX,WAAW,EAAE,YAAY,GAAG,aAAa,GACvC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAKX;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CAQrE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,oBAAoB,CACnC,CAAC,SAAS,aAAa,EACvB,CAAC,SAAS,kBAAkB,CAAC,CAAC,CAAC,EAC9B,MAAM,EAAE,CAAC,EAAE,GAAG,SAAS,EAAE,QAAQ,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CAiBlD;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,EAAE,CAQ3D;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EACjC,GAAG,EAAE,CAAC,EAAE,EACR,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACb,CAAC,EAAE,CAQL"}
|
package/dist/dts/index.d.ts
CHANGED
|
@@ -40,9 +40,10 @@ export { INTERNALS } from './date/constants';
|
|
|
40
40
|
export { chronos, chronos as chronosjs, chronos as chronosts, chronos as chronus, chronos as chronusjs, chronos as chronusts, } from './date/chronos-fn';
|
|
41
41
|
export { convertMinutesToTime as convertMinutesToHourMinutes, convertMinutesToTime, formatUTCOffset as convertMinutesToUTCOffset, extractHourMinute, extractMinutesFromUTC, extractTimeFromUTC, extractTimeFromUTC as extractTimeStringFromUTC, getTotalMinutes as extractTotalMinutesFromTime, formatUTCOffset, getCurrentDateTime, getCurrentDateTime as getCurrentTime, convertMinutesToTime as getHourMinutesFromMinutes, extractMinutesFromUTC as getMinutesFromUTC, convertMinutesToTime as getTimeFromMinutes, extractTimeFromUTC as getTimeStringFromUTC, getTotalMinutes, getTotalMinutes as getTotalMinutesFromTime, extractMinutesFromUTC as getTotalMinutesFromUTC, formatUTCOffset as minutesToUTCOffset, } from './date/utils';
|
|
42
42
|
export { filterArrayOfObjects, flattenArray, getLastArrayElement, isInvalidOrEmptyArray, isInvalidOrEmptyArray as isValidEmptyArray, shuffleArray, } from './array/basics';
|
|
43
|
+
export { averageByField, averageByField as avgByField, groupAndAverageByField, groupAndAverageByField as groupAndAvgByField, groupAndSumByField, sumByField, sumFieldDifference, sumFieldDifference as totalDeltaByField, } from './array/calc';
|
|
43
44
|
export { Finder } from './array/Finder';
|
|
44
45
|
export { sortAnArray } from './array/sort';
|
|
45
|
-
export { createOptionsArray, getDuplicates as extractDuplicates, getDuplicates as extractDuplicatesFromArray, findMissingElements as extractMissingElements, findMissingElements, getDuplicates, getDuplicates as getDuplicatesFromArray, findMissingElements as getMissingElements, moveArrayElement, removeDuplicatesFromArray as removeDuplicates, removeDuplicatesFromArray, rotateArray, splitArray, splitArrayByProperty, } from './array/transform';
|
|
46
|
+
export { createOptionsArray, getDuplicates as extractDuplicates, getDuplicates as extractDuplicatesFromArray, findMissingElements as extractMissingElements, findMissingElements, getDuplicates, getDuplicates as getDuplicatesFromArray, findMissingElements as getMissingElements, splitArrayByProperty as groupArrayByProperty, moveArrayElement, removeDuplicatesFromArray as removeDuplicates, removeDuplicatesFromArray, rotateArray, splitArray, splitArrayByProperty, } from './array/transform';
|
|
46
47
|
export { naturalSort as compareNaturally, naturalSort as compareSorter, naturalSort, naturalSort as naturalSortForString, } from './array/utils';
|
|
47
48
|
export { createControlledFormData as convertIntoFormData, createControlledFormData, createControlledFormData as createFormData, } from './form/convert';
|
|
48
49
|
export { parseFormData, serializeForm } from './form/transform';
|
|
@@ -50,7 +51,7 @@ export { isCustomFile, isCustomFileArray, isFileArray, isFileList, isFileOrBlob,
|
|
|
50
51
|
export { cloneObject, countObjectFields } from './object/basics';
|
|
51
52
|
export { extractNewFields, extractUpdatedAndNewFields, extractUpdatedFields, flattenObjectDotNotation, flattenObjectKeyValue, mergeAndFlattenObjects, mergeObjects, parseJsonToObject, } from './object/objectify';
|
|
52
53
|
export { parseObjectValues, parseObjectValues as parseStringifiedObjectValues, sanitizeData, } from './object/sanitize';
|
|
53
|
-
export { convertObjectValues,
|
|
54
|
+
export { convertObjectValues, deleteFields, deleteFields as deleteObjectFields, deleteFields as omitFields, deleteFields as omitObjectFields, pickFields, pickObjectFieldsByCondition as pickFieldsByCondition, pickFields as pickObjectFields, pickObjectFieldsByCondition, remapFields, remapFields as remapObjectFields, deleteFields as removeFields, deleteFields as removeObjectFields, } from './object/convert';
|
|
54
55
|
export { generateQueryParams as createQueryParams, generateQueryParams as formatQueryParams, generateQueryParams, getQueryParams, parseQueryString as getQueryStringAsObject, parseQueryString, parseQueryString as queryStringToObject, updateQueryParam, } from './dom/query';
|
|
55
56
|
export { copyToClipboard, smoothScrollTo, toggleFullScreen } from './dom/utils';
|
|
56
57
|
export { getFromLocalStorage, getFromSessionStorage, removeFromLocalStorage, removeFromSessionStorage, saveToLocalStorage, saveToSessionStorage, } from './dom/storage';
|
package/dist/dts/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { FlattenPartial } from '../types/index';
|
|
2
|
-
import type { FlattenLeafValue, FlattenValue, GenericObject, MergeAll, Objects } from './types';
|
|
2
|
+
import type { FlattenLeafValue, FlattenValue, GenericObject, MergeAll, Objects, Expand } from './types';
|
|
3
3
|
/**
|
|
4
4
|
* Deeply merges two or more objects.
|
|
5
5
|
* Objects are merged recursively. Later values override earlier ones unless both are plain objects.
|
|
@@ -21,7 +21,7 @@ import type { FlattenLeafValue, FlattenValue, GenericObject, MergeAll, Objects }
|
|
|
21
21
|
* );
|
|
22
22
|
* // => { a: 1, b: 2, p: { c: 3, e: 5 }, d: 4, f: 6 }
|
|
23
23
|
*/
|
|
24
|
-
export declare const mergeObjects: <T extends Objects>(...objects: T) => MergeAll<T
|
|
24
|
+
export declare const mergeObjects: <T extends Objects>(...objects: T) => Expand<MergeAll<T>>;
|
|
25
25
|
/**
|
|
26
26
|
* * Deeply merge objects and flatten nested objects.
|
|
27
27
|
* * Useful for flattening a single object or merging multiple objects with duplicate key(s).
|
|
@@ -30,21 +30,21 @@ export declare const mergeObjects: <T extends Objects>(...objects: T) => MergeAl
|
|
|
30
30
|
* @param objects Objects to merge.
|
|
31
31
|
* @returns Merged object with flattened structure.
|
|
32
32
|
*/
|
|
33
|
-
export declare const mergeAndFlattenObjects: <T extends Objects>(...objects: T) => FlattenValue<MergeAll<T
|
|
33
|
+
export declare const mergeAndFlattenObjects: <T extends Objects>(...objects: T) => Expand<FlattenValue<MergeAll<T>>>;
|
|
34
34
|
/**
|
|
35
35
|
* * Flattens a nested object into key-value format.
|
|
36
36
|
*
|
|
37
37
|
* @param object - The `object` to flatten.
|
|
38
38
|
* @returns A `flattened object` in key-value format.
|
|
39
39
|
*/
|
|
40
|
-
export declare const flattenObjectKeyValue: <T extends GenericObject>(object: T) => FlattenLeafValue<MergeAll<[T]
|
|
40
|
+
export declare const flattenObjectKeyValue: <T extends GenericObject>(object: T) => Expand<FlattenLeafValue<MergeAll<[T]>>>;
|
|
41
41
|
/**
|
|
42
42
|
* * Flattens a nested object into a dot notation format.
|
|
43
43
|
*
|
|
44
44
|
* @param object - The `object` to flatten.
|
|
45
45
|
* @returns A `flattened object` with dot notation keys.
|
|
46
46
|
*/
|
|
47
|
-
export declare const flattenObjectDotNotation: <T extends GenericObject>(object: T) => FlattenValue<MergeAll<[T]
|
|
47
|
+
export declare const flattenObjectDotNotation: <T extends GenericObject>(object: T) => Expand<FlattenValue<MergeAll<[T]>>>;
|
|
48
48
|
/**
|
|
49
49
|
* * Extracts only the fields that have changed between the original and updated object.
|
|
50
50
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"objectify.d.ts","sourceRoot":"","sources":["../../../src/object/objectify.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGrD,OAAO,KAAK,EACX,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,QAAQ,EACR,OAAO,EACP,MAAM,SAAS,CAAC;AAEjB;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,OAAO,
|
|
1
|
+
{"version":3,"file":"objectify.d.ts","sourceRoot":"","sources":["../../../src/object/objectify.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGrD,OAAO,KAAK,EACX,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,QAAQ,EACR,OAAO,EACP,MAAM,EACN,MAAM,SAAS,CAAC;AAEjB;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,OAAO,EAC7C,GAAG,SAAS,CAAC,KACX,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CA8BpB,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,GAAI,CAAC,SAAS,OAAO,EACvD,GAAG,SAAS,CAAC,KACX,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CA8BlC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,GAAI,CAAC,SAAS,aAAa,EAC5D,QAAQ,CAAC,KACP,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAkBxC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,GAAI,CAAC,SAAS,aAAa,EAC/D,QAAQ,CAAC,KACP,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAgCpC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,GAAI,CAAC,SAAS,aAAa,EAC3D,YAAY,CAAC,EACb,eAAe,cAAc,CAAC,CAAC,CAAC,KAC9B,cAAc,CAAC,CAAC,CAwBlB,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,GAC5B,CAAC,SAAS,aAAa,EACvB,CAAC,SAAS,aAAa,EAEvB,YAAY,CAAC,EACb,eAAe,cAAc,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,KAClD,cAAc,CAAC,CAAC,CAyBlB,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,0BAA0B,GACtC,CAAC,SAAS,aAAa,EACvB,CAAC,SAAS,aAAa,EAEvB,YAAY,CAAC,EACb,eAAe,cAAc,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,KAClD,cAAc,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAwBtC,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,iBAAiB,GAAI,CAAC,SAAS,aAAa,GAAG,aAAa,EACxE,OAAO,MAAM,EACb,yBAAsB,KACpB,CAYF,CAAC"}
|
|
@@ -5,6 +5,14 @@ export type StrictObject = Record<string, unknown>;
|
|
|
5
5
|
export type GenericObject = Record<string, any>;
|
|
6
6
|
/** - A tuple of generic objects */
|
|
7
7
|
export type Objects = readonly [GenericObject, ...GenericObject[]];
|
|
8
|
+
/**
|
|
9
|
+
* - Prettify all object properties into a readable form.
|
|
10
|
+
*
|
|
11
|
+
* @note It is recommended to use it only with `MergeAll<T>`, `FlattenValue<T>` and/or `FlattenLeafValue<T>`. For other other cases use {@link https://nhb-toolbox.vercel.app/docs/types/utility-types#prettifyt Prettify<T>}
|
|
12
|
+
*/
|
|
13
|
+
export type Expand<T> = T extends AdvancedTypes ? T : T extends GenericObject ? {
|
|
14
|
+
[K in keyof T]: Expand<T[K]>;
|
|
15
|
+
} : T;
|
|
8
16
|
/** - Converts a union type to an intersection type. */
|
|
9
17
|
type UnionToIntersection<U> = (U extends unknown ? (arg: U) => void : never) extends ((arg: infer I) => void) ? I : never;
|
|
10
18
|
/** - Merges all properties of the input objects into a single object type. */
|
|
@@ -71,6 +79,10 @@ export type NestedKeyString<T> = T extends AdvancedTypes ? never : T extends Gen
|
|
|
71
79
|
export type NestedPrimitiveKey<T> = T extends AdvancedTypes ? never : T extends GenericObject ? {
|
|
72
80
|
[K in keyof T & string]: T[K] extends Function ? never : T[K] extends NormalPrimitive ? K : T[K] extends GenericObject ? `${K}.${NestedPrimitiveKey<T[K]>}` : never;
|
|
73
81
|
}[keyof T & string] : never;
|
|
82
|
+
/** Extract only number, string, undefined and null keys from an object, including nested dot-notation keys. */
|
|
83
|
+
export type NumericDotKey<T> = T extends AdvancedTypes ? never : T extends GenericObject ? {
|
|
84
|
+
[K in keyof T & string]: T[K] extends Function ? never : T[K] extends Exclude<NormalPrimitive, boolean> ? K : T[K] extends GenericObject ? `${K}.${NumericDotKey<T[K]>}` : never;
|
|
85
|
+
}[keyof T & string] : never;
|
|
74
86
|
/** - Options for `sanitizeData` utility. */
|
|
75
87
|
export interface SanitizeOptions<T> {
|
|
76
88
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/object/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/object/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { isValidArray } from '../guards/non-primitives.js';
|
|
2
|
+
import { roundNumber } from '../number/basics.js';
|
|
3
|
+
import { _getNumericProp, _resolveNestedKey } from './helpers.js';
|
|
4
|
+
import { splitArrayByProperty } from './transform.js';
|
|
5
|
+
/**
|
|
6
|
+
* * Calculates the sum of differences between two numeric fields for each item in the array.
|
|
7
|
+
*
|
|
8
|
+
* @param data - The array of objects to process.
|
|
9
|
+
* @param first - The field name to subtract **from** (minuend), supports nested dot notation.
|
|
10
|
+
* @param second - The field name to subtract (subtrahend), supports nested dot notation.
|
|
11
|
+
* @param roundTo - Decimal places to round the result to. Defaults to 2.
|
|
12
|
+
* @returns The total sum of differences between the two fields across all items.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* sumFieldDifference([{ buy: 10, sell: 3 }, { buy: 8, sell: 5 }], 'buy', 'sell');
|
|
16
|
+
* // => 10
|
|
17
|
+
*/
|
|
18
|
+
export function sumFieldDifference(data, first, second, roundTo = 2) {
|
|
19
|
+
if (!isValidArray(data))
|
|
20
|
+
return 0;
|
|
21
|
+
const total = data?.reduce((acc, item) => {
|
|
22
|
+
return (acc + (_getNumericProp(item, first) - _getNumericProp(item, second)));
|
|
23
|
+
}, 0);
|
|
24
|
+
return roundNumber(total, roundTo);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* * Calculates the total sum of a numeric field across all items.
|
|
28
|
+
*
|
|
29
|
+
* @param data - The array of objects to process.
|
|
30
|
+
* @param field - The field to sum values from. Supports nested dot notation.
|
|
31
|
+
* @param roundTo - Decimal places to round the result to. Defaults to 2.
|
|
32
|
+
* @returns The rounded total sum.
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* sumByField([{ a: 5 }, { a: 3 }], 'a');
|
|
36
|
+
* // => 8
|
|
37
|
+
*/
|
|
38
|
+
export function sumByField(data, field, roundTo = 2) {
|
|
39
|
+
if (!isValidArray(data))
|
|
40
|
+
return 0;
|
|
41
|
+
const total = data?.reduce((acc, item) => acc + _getNumericProp(item, field), 0);
|
|
42
|
+
return roundNumber(total, roundTo);
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* * Calculates the average of a numeric field across all items.
|
|
46
|
+
*
|
|
47
|
+
* @param data - The array of objects to process.
|
|
48
|
+
* @param field - The field to calculate the average from. Supports nested dot notation.
|
|
49
|
+
* @param roundTo - Decimal places to round the result to. Defaults to 2.
|
|
50
|
+
* @returns The rounded average.
|
|
51
|
+
*
|
|
52
|
+
* @example
|
|
53
|
+
* averageByField([{ a: 4 }, { a: 6 }], 'a');
|
|
54
|
+
* // => 5
|
|
55
|
+
*/
|
|
56
|
+
export function averageByField(data, field, roundTo = 2) {
|
|
57
|
+
if (!isValidArray(data))
|
|
58
|
+
return 0;
|
|
59
|
+
const total = data?.reduce((acc, item) => acc + _getNumericProp(item, field), 0);
|
|
60
|
+
return roundNumber(total / data.length, roundTo);
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* * Groups an array of objects by a primitive field and sums another numeric field per group.
|
|
64
|
+
*
|
|
65
|
+
* @param data - The array of objects to group.
|
|
66
|
+
* @param groupBy - The field to group by. Supports nested dot notation.
|
|
67
|
+
* @param sumBy - The numeric field to sum within each group. Supports nested dot notation.
|
|
68
|
+
* @param roundTo - Decimal places to round each group’s result to. Defaults to 2.
|
|
69
|
+
* @returns An array of records, each with the group key and its corresponding summed value.
|
|
70
|
+
*
|
|
71
|
+
* @example
|
|
72
|
+
* groupAndSumByField([{ type: 'A', val: 2 }, { type: 'A', val: 3 }, { type: 'B', val: 1 }], 'type', 'val');
|
|
73
|
+
* // => [{ A: 5 }, { B: 1 }]
|
|
74
|
+
*/
|
|
75
|
+
export function groupAndSumByField(data, groupBy, sumBy, roundTo = 2) {
|
|
76
|
+
if (!isValidArray(data))
|
|
77
|
+
return [];
|
|
78
|
+
const groups = splitArrayByProperty(data, groupBy);
|
|
79
|
+
const result = groups.map((group) => ({
|
|
80
|
+
[`${_resolveNestedKey(group[0], groupBy)}`]: sumByField(group, sumBy, roundTo),
|
|
81
|
+
}));
|
|
82
|
+
return result;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* * Groups an array of objects by a primitive field and averages another numeric field per group.
|
|
86
|
+
*
|
|
87
|
+
* @param data - The array of objects to group.
|
|
88
|
+
* @param groupBy - The field to group by. Supports nested dot notation.
|
|
89
|
+
* @param averageBy - The numeric field to average within each group. Supports nested dot notation.
|
|
90
|
+
* @param roundTo - Decimal places to round each group’s average to. Defaults to 2.
|
|
91
|
+
* @returns An array of records, each with the group key and its corresponding average value.
|
|
92
|
+
*
|
|
93
|
+
* @example
|
|
94
|
+
* groupAndAverageByField([{ type: 'A', val: 2 }, { type: 'A', val: 4 }, { type: 'B', val: 6 }], 'type', 'val');
|
|
95
|
+
* // => [{ A: 3 }, { B: 6 }]
|
|
96
|
+
*/
|
|
97
|
+
export function groupAndAverageByField(data, groupBy, averageBy, roundTo = 2) {
|
|
98
|
+
if (!isValidArray(data))
|
|
99
|
+
return [];
|
|
100
|
+
const groups = splitArrayByProperty(data, groupBy);
|
|
101
|
+
const result = groups.map((group) => ({
|
|
102
|
+
[`${_resolveNestedKey(group[0], groupBy)}`]: averageByField(group, averageBy, roundTo),
|
|
103
|
+
}));
|
|
104
|
+
return result;
|
|
105
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { isNotEmptyObject } from '../guards/non-primitives.js';
|
|
2
|
+
import { isNumber } from '../guards/primitives.js';
|
|
3
|
+
import { isNumericString } from '../guards/specials.js';
|
|
4
|
+
/**
|
|
5
|
+
* Safely resolves nested keys from a dot-separated string like "user.city".
|
|
6
|
+
*
|
|
7
|
+
* @param obj - The source object
|
|
8
|
+
* @param path - The nested path string (e.g. "user.city")
|
|
9
|
+
* @returns The resolved value or `undefined`
|
|
10
|
+
*/
|
|
11
|
+
export function _resolveNestedKey(obj, path) {
|
|
12
|
+
if (isNotEmptyObject(obj)) {
|
|
13
|
+
return path.split('.').reduce((acc, key) => {
|
|
14
|
+
if (isNotEmptyObject(acc)) {
|
|
15
|
+
return acc[key];
|
|
16
|
+
}
|
|
17
|
+
}, obj);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Retrieves a numeric value from a nested property in dot notation.
|
|
22
|
+
* Falls back to 0 if value is not a number or numeric string.
|
|
23
|
+
*
|
|
24
|
+
* @param obj - The source object to read from.
|
|
25
|
+
* @param path - The path string like 'user.income.tax'.
|
|
26
|
+
* @returns The numeric value at that path, or 0 if not valid.
|
|
27
|
+
*/
|
|
28
|
+
export function _getNumericProp(obj, path) {
|
|
29
|
+
if (isNotEmptyObject(obj)) {
|
|
30
|
+
const value = path.split('.').reduce((acc, key) => {
|
|
31
|
+
if (isNotEmptyObject(acc)) {
|
|
32
|
+
return acc[key];
|
|
33
|
+
}
|
|
34
|
+
}, obj);
|
|
35
|
+
return (isNumber(value) ? value
|
|
36
|
+
: isNumericString(value) ? Number(value)
|
|
37
|
+
: 0);
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
return 0;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { isValidArray } from '../guards/non-primitives.js';
|
|
2
2
|
import { isNumber } from '../guards/primitives.js';
|
|
3
3
|
import { isDeepEqual } from '../utils/index.js';
|
|
4
|
+
import { _resolveNestedKey } from './helpers.js';
|
|
4
5
|
/**
|
|
5
6
|
* * Converts an array of objects into a formatted array of options.
|
|
6
7
|
*
|
|
@@ -94,7 +95,7 @@ export function splitArray(arr, chunkSize) {
|
|
|
94
95
|
* * Group an array of objects by a specified key, returning only arrays of grouped objects.
|
|
95
96
|
*
|
|
96
97
|
* @param source - The source array of objects to group.
|
|
97
|
-
* @param property - The property to group the array by. Property can be a string, number, boolean, undefined or null.
|
|
98
|
+
* @param property - The property to group the array by. Property can be a string, number, boolean, undefined or null. Supports nested dot notation.
|
|
98
99
|
*
|
|
99
100
|
* @returns An array of grouped arrays. Each sub-array contains objects that share the same value for the specified property.
|
|
100
101
|
*
|
|
@@ -111,10 +112,11 @@ export function splitArrayByProperty(source, property) {
|
|
|
111
112
|
return [];
|
|
112
113
|
const grouped = {};
|
|
113
114
|
source.forEach((item) => {
|
|
114
|
-
const rawKey = item
|
|
115
|
+
const rawKey = _resolveNestedKey(item, property);
|
|
115
116
|
const key = rawKey != null ? String(rawKey) : '__undefined__';
|
|
116
|
-
if (!grouped[key])
|
|
117
|
+
if (!grouped[key]) {
|
|
117
118
|
grouped[key] = [];
|
|
119
|
+
}
|
|
118
120
|
grouped[key].push(item);
|
|
119
121
|
});
|
|
120
122
|
return Object.values(grouped);
|
package/dist/esm/index.js
CHANGED
|
@@ -49,9 +49,10 @@ export { chronos, chronos as chronosjs, chronos as chronosts, chronos as chronus
|
|
|
49
49
|
export { convertMinutesToTime as convertMinutesToHourMinutes, convertMinutesToTime, formatUTCOffset as convertMinutesToUTCOffset, extractHourMinute, extractMinutesFromUTC, extractTimeFromUTC, extractTimeFromUTC as extractTimeStringFromUTC, getTotalMinutes as extractTotalMinutesFromTime, formatUTCOffset, getCurrentDateTime, getCurrentDateTime as getCurrentTime, convertMinutesToTime as getHourMinutesFromMinutes, extractMinutesFromUTC as getMinutesFromUTC, convertMinutesToTime as getTimeFromMinutes, extractTimeFromUTC as getTimeStringFromUTC, getTotalMinutes, getTotalMinutes as getTotalMinutesFromTime, extractMinutesFromUTC as getTotalMinutesFromUTC, formatUTCOffset as minutesToUTCOffset, } from './date/utils.js';
|
|
50
50
|
// ! Array Utilities
|
|
51
51
|
export { filterArrayOfObjects, flattenArray, getLastArrayElement, isInvalidOrEmptyArray, isInvalidOrEmptyArray as isValidEmptyArray, shuffleArray, } from './array/basics.js';
|
|
52
|
+
export { averageByField, averageByField as avgByField, groupAndAverageByField, groupAndAverageByField as groupAndAvgByField, groupAndSumByField, sumByField, sumFieldDifference, sumFieldDifference as totalDeltaByField, } from './array/calc.js';
|
|
52
53
|
export { Finder } from './array/Finder.js';
|
|
53
54
|
export { sortAnArray } from './array/sort.js';
|
|
54
|
-
export { createOptionsArray, getDuplicates as extractDuplicates, getDuplicates as extractDuplicatesFromArray, findMissingElements as extractMissingElements, findMissingElements, getDuplicates, getDuplicates as getDuplicatesFromArray, findMissingElements as getMissingElements, moveArrayElement, removeDuplicatesFromArray as removeDuplicates, removeDuplicatesFromArray, rotateArray, splitArray, splitArrayByProperty, } from './array/transform.js';
|
|
55
|
+
export { createOptionsArray, getDuplicates as extractDuplicates, getDuplicates as extractDuplicatesFromArray, findMissingElements as extractMissingElements, findMissingElements, getDuplicates, getDuplicates as getDuplicatesFromArray, findMissingElements as getMissingElements, splitArrayByProperty as groupArrayByProperty, moveArrayElement, removeDuplicatesFromArray as removeDuplicates, removeDuplicatesFromArray, rotateArray, splitArray, splitArrayByProperty, } from './array/transform.js';
|
|
55
56
|
export { naturalSort as compareNaturally, naturalSort as compareSorter, naturalSort, naturalSort as naturalSortForString, } from './array/utils.js';
|
|
56
57
|
// ! Form Utilities
|
|
57
58
|
export { createControlledFormData as convertIntoFormData, createControlledFormData, createControlledFormData as createFormData, } from './form/convert.js';
|
|
@@ -61,7 +62,7 @@ export { isCustomFile, isCustomFileArray, isFileArray, isFileList, isFileOrBlob,
|
|
|
61
62
|
export { cloneObject, countObjectFields } from './object/basics.js';
|
|
62
63
|
export { extractNewFields, extractUpdatedAndNewFields, extractUpdatedFields, flattenObjectDotNotation, flattenObjectKeyValue, mergeAndFlattenObjects, mergeObjects, parseJsonToObject, } from './object/objectify.js';
|
|
63
64
|
export { parseObjectValues, parseObjectValues as parseStringifiedObjectValues, sanitizeData, } from './object/sanitize.js';
|
|
64
|
-
export { convertObjectValues,
|
|
65
|
+
export { convertObjectValues, deleteFields, deleteFields as deleteObjectFields, deleteFields as omitFields, deleteFields as omitObjectFields, pickFields, pickObjectFieldsByCondition as pickFieldsByCondition, pickFields as pickObjectFields, pickObjectFieldsByCondition, remapFields, remapFields as remapObjectFields, deleteFields as removeFields, deleteFields as removeObjectFields, } from './object/convert.js';
|
|
65
66
|
// ! DOM Utilities
|
|
66
67
|
export { generateQueryParams as createQueryParams, generateQueryParams as formatQueryParams, generateQueryParams, getQueryParams, parseQueryString as getQueryStringAsObject, parseQueryString, parseQueryString as queryStringToObject, updateQueryParam, } from './dom/query.js';
|
|
67
68
|
export { copyToClipboard, smoothScrollTo, toggleFullScreen } from './dom/utils.js';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nhb-toolbox",
|
|
3
|
-
"version": "4.12.
|
|
3
|
+
"version": "4.12.61",
|
|
4
4
|
"description": "A versatile collection of smart, efficient, and reusable utility functions and classes for everyday development needs.",
|
|
5
5
|
"main": "dist/cjs/index.js",
|
|
6
6
|
"module": "dist/esm/index.js",
|