sx-ng-aggrid
Version:
Angular Grid Table(ag-grid) Componet
85 lines • 11.3 kB
JavaScript
export function gridFilterFormatter(staticFilterModel, gridFilterModel) {
if (!staticFilterModel && !gridFilterModel) {
return undefined;
}
const formattedFilter = {};
const filterModel = Object.assign(gridFilterModel, staticFilterModel);
Object.keys(filterModel).forEach((key) => {
// If we have a object notation '.' do nothing
// This will be handled in include params
if (key.indexOf('.') > 0) {
return;
}
const filter = filterModel[key];
switch (filter.filterType) {
case 'text':
formattedFilter[key] = textFilterFormatter(filter);
break;
case 'number':
formattedFilter[key] = numberFilterFormatter(filter);
break;
case 'date':
formattedFilter[key] = dateFilterFormatter(filter);
break;
default:
console.error(`Unsupported filter type ${filter.filterType}`);
break;
}
});
return JSON.stringify(formattedFilter);
}
function textFilterFormatter(filter) {
switch (filter.type) {
case 'equals':
return filter.filter;
case 'notEqual':
return { $ne: filter.filter };
case 'contains':
return { $like: '%' + filter.filter + '%' || '%' };
case 'notContains':
return { $notLike: '%' + filter.filter + '%' || '%' };
case 'startsWith':
return { $like: filter.filter + '%' || '%' };
case 'endsWith':
return { $like: '%' + filter.filter || '%' };
default:
console.error(`Unsupported filter type ${filter.type} for text`);
}
}
function numberFilterFormatter(filter) {
switch (filter.type) {
case 'equals':
return filter.filter;
case 'notEqual':
return { $ne: filter.filter };
case 'lessThan':
return { $lt: filter.filter };
case 'lessThanOrEqual':
return { $lte: filter.filter };
case 'greaterThan':
return { $gt: filter.filter };
case 'greaterThanOrEqual':
return { $gte: filter.filter };
case 'inRange':
return { $between: [filter.filter, filter.filterTo] };
default:
console.error(`Unsupported filter type ${filter.type} for number`);
}
}
function dateFilterFormatter(filter) {
switch (filter.type) {
case 'equals':
return filter.dateFrom;
case 'notEqual':
return { $ne: filter.dateFrom };
case 'lessThan':
return { $lt: filter.dateFrom };
case 'greaterThan':
return { $gt: filter.dateFrom };
case 'inRange':
return { $between: [filter.dateFrom, filter.dateTo] };
default:
console.error(`Unsupported filter type ${filter.type} for date`);
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1zZXF1ZWxpemUtZmlsdGVyLmpzIiwic291cmNlUm9vdCI6Im5nOi8vc3gtbmctYWdncmlkLyIsInNvdXJjZXMiOlsic3JjL2FwcC9tb2R1bGVzL2dyaWQvZ3JpZC1zZXF1ZWxpemUtZmlsdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWFBLE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxpQkFBK0IsRUFBRSxlQUE2QjtJQUM5RixJQUFJLENBQUMsaUJBQWlCLElBQUksQ0FBQyxlQUFlLEVBQUU7UUFDeEMsT0FBTyxTQUFTLENBQUM7S0FDcEI7SUFFRCxNQUFNLGVBQWUsR0FBUSxFQUFFLENBQUM7SUFDaEMsTUFBTSxXQUFXLEdBQWlCLE1BQU0sQ0FBQyxNQUFNLENBQUMsZUFBZSxFQUFFLGlCQUFpQixDQUFDLENBQUM7SUFDcEYsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtRQUVyQyw4Q0FBOEM7UUFDOUMseUNBQXlDO1FBQ3pDLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDdEIsT0FBTztTQUNWO1FBRUQsTUFBTSxNQUFNLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2hDLFFBQVEsTUFBTSxDQUFDLFVBQVUsRUFBRTtZQUN2QixLQUFLLE1BQU07Z0JBQ1AsZUFBZSxDQUFDLEdBQUcsQ0FBQyxHQUFHLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUNuRCxNQUFNO1lBQ1YsS0FBSyxRQUFRO2dCQUNULGVBQWUsQ0FBQyxHQUFHLENBQUMsR0FBRyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDckQsTUFBTTtZQUNWLEtBQUssTUFBTTtnQkFDUCxlQUFlLENBQUMsR0FBRyxDQUFDLEdBQUcsbUJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ25ELE1BQU07WUFDVjtnQkFDSSxPQUFPLENBQUMs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SyxDQUFDLDJCQUEyQixNQUFNLENBQUMsSUFBSSxXQUFXLENBQUMsQ0FBQztLQUN4RTtBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIElGaWx0ZXIge1xuICAgIGZpbHRlcjogc3RyaW5nIHwgbnVtYmVyO1xuICAgIGZpbHRlclRvPzogbnVtYmVyO1xuICAgIGRhdGVGcm9tPzogc3RyaW5nO1xuICAgIGRhdGVUbz86IHN0cmluZztcbiAgICBmaWx0ZXJUeXBlOiBzdHJpbmc7XG4gICAgdHlwZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElGaWx0ZXJNb2RlbCB7XG4gICAgW2luZGV4OiBzdHJpbmddOiBJRmlsdGVyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ3JpZEZpbHRlckZvcm1hdHRlcihzdGF0aWNGaWx0ZXJNb2RlbDogSUZpbHRlck1vZGVsLCBncmlkRmlsdGVyTW9kZWw6IElGaWx0ZXJNb2RlbCk6IHN0cmluZyB7XG4gICAgaWYgKCFzdGF0aWNGaWx0ZXJNb2RlbCAmJiAhZ3JpZEZpbHRlck1vZGVsKSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgY29uc3QgZm9ybWF0dGVkRmlsdGVyOiBhbnkgPSB7fTtcbiAgICBjb25zdCBmaWx0ZXJNb2RlbDogSUZpbHRlck1vZGVsID0gT2JqZWN0LmFzc2lnbihncmlkRmlsdGVyTW9kZWwsIHN0YXRpY0ZpbHRlck1vZGVsKTtcbiAgICBPYmplY3Qua2V5cyhmaWx0ZXJNb2RlbCkuZm9yRWFjaCgoa2V5KSA9PiB7XG5cbiAgICAgICAgLy8gSWYgd2UgaGF2ZSBhIG9iamVjdCBub3RhdGlvbiAnLicgZG8gbm90aGluZ1xuICAgICAgICAvLyBUaGlzIHdpbGwgYmUgaGFuZGxlZCBpbiBpbmNsdWRlIHBhcmFtc1xuICAgICAgICBpZiAoa2V5LmluZGV4T2YoJy4nKSA+IDApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGZpbHRlciA9IGZpbHRlck1vZGVsW2tleV07XG4gICAgICAgIHN3aXRjaCAoZmlsdGVyLmZpbHRlclR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ3RleHQnOlxuICAgICAgICAgICAgICAgIGZvcm1hdHRlZEZpbHRlcltrZXldID0gdGV4dEZpbHRlckZvcm1hdHRlcihmaWx0ZXIpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnbnVtYmVyJzpcbiAgICAgICAgICAgICAgICBmb3JtYXR0ZWRGaWx0ZXJba2V5XSA9IG51bWJlckZpbHRlckZvcm1hdHRlcihmaWx0ZXIpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnZGF0ZSc6XG4gICAgICAgICAgICAgICAgZm9ybWF0dGVkRmlsdGVyW2tleV0gPSBkYXRlRmlsdGVyRm9ybWF0dGVyKGZpbHRlcik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYFVuc3VwcG9ydGVkIGZpbHRlciB0eXBlICR7ZmlsdGVyLmZpbHRlclR5cGV9YCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoZm9ybWF0dGVkRmlsdGVyKTtcbn1cblxuZnVuY3Rpb24gdGV4dEZpbHRlckZvcm1hdHRlcihmaWx0ZXI6IElGaWx0ZXIpOiBhbnkge1xuICAgIHN3aXRjaCAoZmlsdGVyLnR5cGUpIHtcbiAgICAgICAgY2FzZSAnZXF1YWxzJzpcbiAgICAgICAgICAgIHJldHVybiBmaWx0ZXIuZmlsdGVyO1xuICAgICAgICBjYXNlICdub3RFcXVhbCc6XG4gICAgICAgICAgICByZXR1cm4geyAkbmU6IGZpbHRlci5maWx0ZXIgfTtcbiAgICAgICAgY2FzZSAnY29udGFpbnMnOlxuICAgICAgICAgICAgcmV0dXJuIHsgJGxpa2U6ICclJyArIGZpbHRlci5maWx0ZXIgKyAnJScgfHwgJyUnIH07XG4gICAgICAgIGNhc2UgJ25vdENvbnRhaW5zJzpcbiAgICAgICAgICAgIHJldHVybiB7ICRub3RMaWtlOiAnJScgKyBmaWx0ZXIuZmlsdGVyICsgJyUnIHx8ICclJyB9O1xuICAgICAgICBjYXNlICdzdGFydHNXaXRoJzpcbiAgICAgICAgICAgIHJldHVybiB7ICRsaWtlOiBmaWx0ZXIuZmlsdGVyICsgJyUnIHx8ICclJyB9O1xuICAgICAgICBjYXNlICdlbmRzV2l0aCc6XG4gICAgICAgICAgICByZXR1cm4geyAkbGlrZTogJyUnICsgZmlsdGVyLmZpbHRlciB8fCAnJScgfTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYFVuc3VwcG9ydGVkIGZpbHRlciB0eXBlICR7ZmlsdGVyLnR5cGV9IGZvciB0ZXh0YCk7XG4gICAgfVxufVxuXG5mdW5jdGlvbiBudW1iZXJGaWx0ZXJGb3JtYXR0ZXIoZmlsdGVyOiBJRmlsdGVyKTogYW55IHtcbiAgICBzd2l0Y2ggKGZpbHRlci50eXBlKSB7XG4gICAgICAgIGNhc2UgJ2VxdWFscyc6XG4gICAgICAgICAgICByZXR1cm4gZmlsdGVyLmZpbHRlcjtcbiAgICAgICAgY2FzZSAnbm90RXF1YWwnOlxuICAgICAgICAgICAgcmV0dXJuIHsgJG5lOiBmaWx0ZXIuZmlsdGVyIH07XG4gICAgICAgIGNhc2UgJ2xlc3NUaGFuJzpcbiAgICAgICAgICAgIHJldHVybiB7ICRsdDogZmlsdGVyLmZpbHRlciB9O1xuICAgICAgICBjYXNlICdsZXNzVGhhbk9yRXF1YWwnOlxuICAgICAgICAgICAgcmV0dXJuIHsgJGx0ZTogZmlsdGVyLmZpbHRlciB9O1xuICAgICAgICBjYXNlICdncmVhdGVyVGhhbic6XG4gICAgICAgICAgICByZXR1cm4geyAkZ3Q6IGZpbHRlci5maWx0ZXIgfTtcbiAgICAgICAgY2FzZSAnZ3JlYXRlclRoYW5PckVxdWFsJzpcbiAgICAgICAgICAgIHJldHVybiB7ICRndGU6IGZpbHRlci5maWx0ZXIgfTtcbiAgICAgICAgY2FzZSAnaW5SYW5nZSc6XG4gICAgICAgICAgICByZXR1cm4geyAkYmV0d2VlbjogW2ZpbHRlci5maWx0ZXIsIGZpbHRlci5maWx0ZXJUb10gfTtcblxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihgVW5zdXBwb3J0ZWQgZmlsdGVyIHR5cGUgJHtmaWx0ZXIudHlwZX0gZm9yIG51bWJlcmApO1xuICAgIH1cbn1cblxuZnVuY3Rpb24gZGF0ZUZpbHRlckZvcm1hdHRlcihmaWx0ZXI6IElGaWx0ZXIpOiBhbnkge1xuICAgIHN3aXRjaCAoZmlsdGVyLnR5cGUpIHtcbiAgICAgICAgY2FzZSAnZXF1YWxzJzpcbiAgICAgICAgICAgIHJldHVybiBmaWx0ZXIuZGF0ZUZyb207XG4gICAgICAgIGNhc2UgJ25vdEVxdWFsJzpcbiAgICAgICAgICAgIHJldHVybiB7ICRuZTogZmlsdGVyLmRhdGVGcm9tIH07XG4gICAgICAgIGNhc2UgJ2xlc3NUaGFuJzpcbiAgICAgICAgICAgIHJldHVybiB7ICRsdDogZmlsdGVyLmRhdGVGcm9tIH07XG4gICAgICAgIGNhc2UgJ2dyZWF0ZXJUaGFuJzpcbiAgICAgICAgICAgIHJldHVybiB7ICRndDogZmlsdGVyLmRhdGVGcm9tIH07XG4gICAgICAgIGNhc2UgJ2luUmFuZ2UnOlxuICAgICAgICAgICAgcmV0dXJuIHsgJGJldHdlZW46IFtmaWx0ZXIuZGF0ZUZyb20sIGZpbHRlci5kYXRlVG9dIH07XG5cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYFVuc3VwcG9ydGVkIGZpbHRlciB0eXBlICR7ZmlsdGVyLnR5cGV9IGZvciBkYXRlYCk7XG4gICAgfVxufVxuIl19