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 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?.[property];
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.isOriginFileObj = exports.isFileUpload = exports.isFileOrBlob = exports.isFileList = exports.isFileArray = exports.isCustomFileArray = exports.isCustomFile = exports.serializeForm = exports.parseFormData = 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.getMissingElements = exports.getDuplicatesFromArray = exports.getDuplicates = exports.findMissingElements = exports.extractMissingElements = exports.extractDuplicatesFromArray = exports.extractDuplicates = exports.createOptionsArray = exports.sortAnArray = exports.Finder = 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.getClassDetails = exports.deepParsePrimitives = exports.debounceAction = exports.countStaticMethods = exports.countInstanceMethods = exports.convertArrayToString = exports.saveToSessionStorage = exports.saveToLocalStorage = exports.removeFromSessionStorage = 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.deleteObjectFields = exports.omitObjectFields = exports.omitFields = exports.deleteFields = exports.remapObjectFields = exports.remapFields = exports.pickObjectFieldsByCondition = exports.pickObjectFields = exports.pickFieldsByCondition = exports.pickFields = 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 = void 0;
23
- exports.isValidMap = exports.isValidJSON = exports.isValidArray = exports.isSet = exports.isReturningPromise = exports.isRegularExpression = exports.isRegExp = exports.isPromise = exports.isObjectWithKeys = 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 = 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 = 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 NormalPrimitiveKey<T>>(source: T[] | undefined, property: P): Array<T[]>;
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,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEzD,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,CAclD;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"}
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"}
@@ -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, pickFields, pickObjectFieldsByCondition as pickFieldsByCondition, pickFields as pickObjectFields, pickObjectFieldsByCondition, remapFields, remapFields as remapObjectFields, deleteFields, deleteFields as omitFields, deleteFields as omitObjectFields, deleteFields as deleteObjectFields, deleteFields as removeFields, deleteFields as removeObjectFields, } from './object/convert';
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';
@@ -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,EAAE,GAAG,SAAS,CAAC,KAAG,QAAQ,CAAC,CAAC,CA8BzE,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,GAAI,CAAC,SAAS,OAAO,EACvD,GAAG,SAAS,CAAC,KACX,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CA8B1B,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,GAAI,CAAC,SAAS,aAAa,EAC5D,QAAQ,CAAC,KACP,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAkBhC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,GAAI,CAAC,SAAS,aAAa,EAC/D,QAAQ,CAAC,KACP,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAgC5B,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"}
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?.[property];
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, pickFields, pickObjectFieldsByCondition as pickFieldsByCondition, pickFields as pickObjectFields, pickObjectFieldsByCondition, remapFields, remapFields as remapObjectFields, deleteFields, deleteFields as omitFields, deleteFields as omitObjectFields, deleteFields as deleteObjectFields, deleteFields as removeFields, deleteFields as removeObjectFields, } from './object/convert.js';
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.50",
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",