@tidyjs/tidy 2.4.5 → 2.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/es/groupBy.js.map +1 -1
- package/dist/es/index.js +1 -0
- package/dist/es/index.js.map +1 -1
- package/dist/es/item/rate.js +7 -7
- package/dist/es/item/rate.js.map +1 -1
- package/dist/es/mutate.js +5 -5
- package/dist/es/mutate.js.map +1 -1
- package/dist/es/summary/deviation.js.map +1 -1
- package/dist/es/summary/first.js.map +1 -1
- package/dist/es/summary/last.js.map +1 -1
- package/dist/es/summary/max.js.map +1 -1
- package/dist/es/summary/mean.js.map +1 -1
- package/dist/es/summary/meanRate.js.map +1 -1
- package/dist/es/summary/median.js.map +1 -1
- package/dist/es/summary/min.js.map +1 -1
- package/dist/es/summary/n.js +5 -1
- package/dist/es/summary/n.js.map +1 -1
- package/dist/es/summary/nDistinct.js +2 -1
- package/dist/es/summary/nDistinct.js.map +1 -1
- package/dist/es/summary/sum.js +7 -2
- package/dist/es/summary/sum.js.map +1 -1
- package/dist/es/summary/variance.js.map +1 -1
- package/dist/es/total.js.map +1 -1
- package/dist/es/vector/cumsum.js.map +1 -1
- package/dist/es/vector/lag.js +1 -1
- package/dist/es/vector/lag.js.map +1 -1
- package/dist/es/vector/lead.js +1 -1
- package/dist/es/vector/lead.js.map +1 -1
- package/dist/es/vector/roll.js +4 -3
- package/dist/es/vector/roll.js.map +1 -1
- package/dist/es/vector/rowNumber.js +10 -0
- package/dist/es/vector/rowNumber.js.map +1 -0
- package/dist/lib/groupBy.js.map +1 -1
- package/dist/lib/index.js +2 -0
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/item/rate.js +7 -7
- package/dist/lib/item/rate.js.map +1 -1
- package/dist/lib/mutate.js +5 -5
- package/dist/lib/mutate.js.map +1 -1
- package/dist/lib/summary/deviation.js.map +1 -1
- package/dist/lib/summary/first.js.map +1 -1
- package/dist/lib/summary/last.js.map +1 -1
- package/dist/lib/summary/max.js.map +1 -1
- package/dist/lib/summary/mean.js.map +1 -1
- package/dist/lib/summary/meanRate.js.map +1 -1
- package/dist/lib/summary/median.js.map +1 -1
- package/dist/lib/summary/min.js.map +1 -1
- package/dist/lib/summary/n.js +5 -1
- package/dist/lib/summary/n.js.map +1 -1
- package/dist/lib/summary/nDistinct.js +2 -1
- package/dist/lib/summary/nDistinct.js.map +1 -1
- package/dist/lib/summary/sum.js +7 -2
- package/dist/lib/summary/sum.js.map +1 -1
- package/dist/lib/summary/variance.js.map +1 -1
- package/dist/lib/total.js.map +1 -1
- package/dist/lib/vector/cumsum.js.map +1 -1
- package/dist/lib/vector/lag.js +1 -1
- package/dist/lib/vector/lag.js.map +1 -1
- package/dist/lib/vector/lead.js +1 -1
- package/dist/lib/vector/lead.js.map +1 -1
- package/dist/lib/vector/roll.js +4 -3
- package/dist/lib/vector/roll.js.map +1 -1
- package/dist/lib/vector/rowNumber.js +14 -0
- package/dist/lib/vector/rowNumber.js.map +1 -0
- package/dist/tidy.d.ts +893 -32
- package/dist/umd/tidy.js +41 -21
- package/dist/umd/tidy.js.map +1 -1
- package/dist/umd/tidy.min.js +1 -1
- package/dist/umd/tidy.min.js.map +1 -1
- package/package.json +2 -2
package/dist/umd/tidy.js
CHANGED
|
@@ -217,15 +217,15 @@
|
|
|
217
217
|
|
|
218
218
|
function mutate(mutateSpec) {
|
|
219
219
|
const _mutate = (items) => {
|
|
220
|
-
const mutatedItems =
|
|
221
|
-
|
|
222
|
-
|
|
220
|
+
const mutatedItems = items.map((d) => ({...d}));
|
|
221
|
+
let i = 0;
|
|
222
|
+
for (const mutatedItem of mutatedItems) {
|
|
223
223
|
for (const key in mutateSpec) {
|
|
224
224
|
const mutateSpecValue = mutateSpec[key];
|
|
225
|
-
const mutatedResult = typeof mutateSpecValue === "function" ? mutateSpecValue(mutatedItem) : mutateSpecValue;
|
|
225
|
+
const mutatedResult = typeof mutateSpecValue === "function" ? mutateSpecValue(mutatedItem, i, mutatedItems) : mutateSpecValue;
|
|
226
226
|
mutatedItem[key] = mutatedResult;
|
|
227
227
|
}
|
|
228
|
-
|
|
228
|
+
++i;
|
|
229
229
|
}
|
|
230
230
|
return mutatedItems;
|
|
231
231
|
};
|
|
@@ -515,12 +515,21 @@
|
|
|
515
515
|
return groupTraversal(grouped, initialOutputObject, [], addSubgroup, addLeaf);
|
|
516
516
|
}
|
|
517
517
|
|
|
518
|
-
function n() {
|
|
518
|
+
function n(options) {
|
|
519
|
+
if (options == null ? void 0 : options.predicate) {
|
|
520
|
+
const predicate = options.predicate;
|
|
521
|
+
return (items) => items.reduce((n2, d, i) => predicate(d, i, items) ? n2 + 1 : n2, 0);
|
|
522
|
+
}
|
|
519
523
|
return (items) => items.length;
|
|
520
524
|
}
|
|
521
525
|
|
|
522
|
-
function sum(key) {
|
|
523
|
-
|
|
526
|
+
function sum(key, options) {
|
|
527
|
+
let keyFn = typeof key === "function" ? key : (d) => d[key];
|
|
528
|
+
if (options == null ? void 0 : options.predicate) {
|
|
529
|
+
const originalKeyFn = keyFn;
|
|
530
|
+
const predicate = options.predicate;
|
|
531
|
+
keyFn = (d, index, array) => predicate(d, index, array) ? originalKeyFn(d, index, array) : 0;
|
|
532
|
+
}
|
|
524
533
|
return (items) => d3Array.fsum(items, keyFn);
|
|
525
534
|
}
|
|
526
535
|
|
|
@@ -1105,15 +1114,15 @@
|
|
|
1105
1114
|
const numeratorFn = typeof numerator === "function" ? numerator : (d) => d[numerator];
|
|
1106
1115
|
const denominatorFn = typeof denominator === "function" ? denominator : (d) => d[denominator];
|
|
1107
1116
|
const {predicate, allowDivideByZero} = options != null ? options : {};
|
|
1108
|
-
return predicate == null ? (d) => {
|
|
1109
|
-
const denom = denominatorFn(d);
|
|
1110
|
-
const numer = numeratorFn(d);
|
|
1117
|
+
return predicate == null ? (d, index, array) => {
|
|
1118
|
+
const denom = denominatorFn(d, index, array);
|
|
1119
|
+
const numer = numeratorFn(d, index, array);
|
|
1111
1120
|
return rate(numer, denom, allowDivideByZero);
|
|
1112
|
-
} : (d) => {
|
|
1113
|
-
if (!predicate(d))
|
|
1121
|
+
} : (d, index, array) => {
|
|
1122
|
+
if (!predicate(d, index, array))
|
|
1114
1123
|
return void 0;
|
|
1115
|
-
const denom = denominatorFn(d);
|
|
1116
|
-
const numer = numeratorFn(d);
|
|
1124
|
+
const denom = denominatorFn(d, index, array);
|
|
1125
|
+
const numer = numeratorFn(d, index, array);
|
|
1117
1126
|
return rate(numer, denom, allowDivideByZero);
|
|
1118
1127
|
};
|
|
1119
1128
|
}
|
|
@@ -1139,11 +1148,12 @@
|
|
|
1139
1148
|
}
|
|
1140
1149
|
|
|
1141
1150
|
function roll(width, rollFn, options) {
|
|
1142
|
-
const {partial = false} = options != null ? options : {};
|
|
1151
|
+
const {partial = false, align = "right"} = options != null ? options : {};
|
|
1152
|
+
const halfWidth = Math.floor(width / 2);
|
|
1143
1153
|
return (items) => {
|
|
1144
1154
|
return items.map((_, i) => {
|
|
1145
|
-
const endIndex = i;
|
|
1146
|
-
if (!partial && endIndex - width + 1 < 0) {
|
|
1155
|
+
const endIndex = align === "right" ? i : align === "center" ? i + halfWidth : i + width - 1;
|
|
1156
|
+
if (!partial && (endIndex - width + 1 < 0 || endIndex >= items.length)) {
|
|
1147
1157
|
return void 0;
|
|
1148
1158
|
}
|
|
1149
1159
|
const startIndex = Math.max(0, endIndex - width + 1);
|
|
@@ -1159,7 +1169,7 @@
|
|
|
1159
1169
|
return (items) => {
|
|
1160
1170
|
return items.map((_, i) => {
|
|
1161
1171
|
const lagItem = items[i - n];
|
|
1162
|
-
return lagItem == null ? defaultValue : keyFn(lagItem);
|
|
1172
|
+
return lagItem == null ? defaultValue : keyFn(lagItem, i, items);
|
|
1163
1173
|
});
|
|
1164
1174
|
};
|
|
1165
1175
|
}
|
|
@@ -1170,11 +1180,19 @@
|
|
|
1170
1180
|
return (items) => {
|
|
1171
1181
|
return items.map((_, i) => {
|
|
1172
1182
|
const leadItem = items[i + n];
|
|
1173
|
-
return leadItem == null ? defaultValue : keyFn(leadItem);
|
|
1183
|
+
return leadItem == null ? defaultValue : keyFn(leadItem, i, items);
|
|
1174
1184
|
});
|
|
1175
1185
|
};
|
|
1176
1186
|
}
|
|
1177
1187
|
|
|
1188
|
+
function rowNumber(options) {
|
|
1189
|
+
var _a;
|
|
1190
|
+
const startAt = (_a = options == null ? void 0 : options.startAt) != null ? _a : 0;
|
|
1191
|
+
return (items) => {
|
|
1192
|
+
return items.map((_, i) => i + startAt);
|
|
1193
|
+
};
|
|
1194
|
+
}
|
|
1195
|
+
|
|
1178
1196
|
function min(key) {
|
|
1179
1197
|
const keyFn = typeof key === "function" ? key : (d) => d[key];
|
|
1180
1198
|
return (items) => d3Array.min(items, keyFn);
|
|
@@ -1220,8 +1238,9 @@
|
|
|
1220
1238
|
return (items) => {
|
|
1221
1239
|
const uniques = new Map();
|
|
1222
1240
|
let count = 0;
|
|
1241
|
+
let i = 0;
|
|
1223
1242
|
for (const item of items) {
|
|
1224
|
-
const value = keyFn(item);
|
|
1243
|
+
const value = keyFn(item, i++, items);
|
|
1225
1244
|
if (!uniques.has(value)) {
|
|
1226
1245
|
if (!options.includeUndefined && value === void 0 || options.includeNull === false && value === null) {
|
|
1227
1246
|
continue;
|
|
@@ -1355,6 +1374,7 @@
|
|
|
1355
1374
|
exports.rename = rename;
|
|
1356
1375
|
exports.replaceNully = replaceNully;
|
|
1357
1376
|
exports.roll = roll;
|
|
1377
|
+
exports.rowNumber = rowNumber;
|
|
1358
1378
|
exports.select = select;
|
|
1359
1379
|
exports.slice = slice;
|
|
1360
1380
|
exports.sliceHead = sliceHead;
|