@mui/x-data-grid-premium
Version:
The Premium plan edition of the MUI X Data Grid Components.
146 lines (145 loc) • 3.1 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.GRID_AGGREGATION_FUNCTIONS = void 0;
var _internals = require("@mui/x-data-grid-pro/internals");
const sumAgg = {
apply: ({
values
}) => {
let sum = 0;
for (let i = 0; i < values.length; i += 1) {
const value = values[i];
if (typeof value === 'number' && !Number.isNaN(value)) {
sum += value;
}
}
return sum;
},
columnTypes: ['number']
};
const avgAgg = {
apply: ({
values
}) => {
if (values.length === 0) {
return null;
}
let sum = 0;
let valuesCount = 0;
for (let i = 0; i < values.length; i += 1) {
const value = values[i];
if (typeof value === 'number' && !Number.isNaN(value)) {
valuesCount += 1;
sum += value;
}
}
if (sum === 0) {
return null;
}
return sum / valuesCount;
},
columnTypes: ['number']
};
const minAgg = {
apply: ({
values
}) => {
if (values.length === 0) {
return null;
}
let hasValidValue = false;
let min = +Infinity;
for (let i = 0; i < values.length; i += 1) {
const value = values[i];
if (value != null && value < min) {
min = value;
hasValidValue = true;
}
}
if (!hasValidValue) {
return null;
}
return min;
},
columnTypes: ['number', 'date', 'dateTime']
};
const maxAgg = {
apply: ({
values
}) => {
if (values.length === 0) {
return null;
}
let hasValidValue = false;
let max = -Infinity;
for (let i = 0; i < values.length; i += 1) {
const value = values[i];
if (value != null && value > max) {
max = value;
hasValidValue = true;
}
}
if (!hasValidValue) {
return null;
}
return max;
},
columnTypes: ['number', 'date', 'dateTime']
};
const sizeAgg = {
apply: ({
values
}) => {
return values.filter(value => typeof value !== 'undefined').length;
},
valueFormatter: value => {
if (value == null || !(0, _internals.isNumber)(value)) {
return value;
}
return value.toLocaleString();
},
hasCellUnit: false
};
const sizeTrueAgg = {
apply: ({
values
}) => {
return values.filter(value => value === true).length;
},
columnTypes: ['boolean'],
label: 'size(true)',
valueFormatter: value => {
if (value == null || !(0, _internals.isNumber)(value)) {
return value;
}
return value.toLocaleString();
},
hasCellUnit: false
};
const sizeFalseAgg = {
apply: ({
values
}) => {
return values.filter(value => value === false).length;
},
columnTypes: ['boolean'],
label: 'size(false)',
valueFormatter: value => {
if (value == null || !(0, _internals.isNumber)(value)) {
return value;
}
return value.toLocaleString();
},
hasCellUnit: false
};
const GRID_AGGREGATION_FUNCTIONS = exports.GRID_AGGREGATION_FUNCTIONS = {
sum: sumAgg,
avg: avgAgg,
min: minAgg,
max: maxAgg,
size: sizeAgg,
sizeTrue: sizeTrueAgg,
sizeFalse: sizeFalseAgg
};