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;
}
var formattedFilter = {};
var filterModel = Object.assign(gridFilterModel, staticFilterModel);
Object.keys(filterModel).forEach(function (key) {
// If we have a object notation '.' do nothing
// This will be handled in include params
if (key.indexOf('.') > 0) {
return;
}
var 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1zZXF1ZWxpemUtZmlsdGVyLmpzIiwic291cmNlUm9vdCI6Im5nOi8vc3gtbmctYWdncmlkLyIsInNvdXJjZXMiOlsic3JjL2FwcC9tb2R1bGVzL2dyaWQvZ3JpZC1zZXF1ZWxpemUtZmlsdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWFBLE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxpQkFBK0IsRUFBRSxlQUE2QjtJQUM5RixJQUFJLENBQUMsaUJBQWlCLElBQUksQ0FBQyxlQUFlLEVBQUU7UUFDeEMsT0FBTyxTQUFTLENBQUM7S0FDcEI7SUFFRCxJQUFNLGVBQWUsR0FBUSxFQUFFLENBQUM7SUFDaEMsSUFBTSxXQUFXLEdBQWlCLE1BQU0sQ0FBQyxNQUFNLENBQUMsZUFBZSxFQUFFLGlCQUFpQixDQUFDLENBQUM7SUFDcEYsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBQyxHQUFHO1FBRWpDLDhDQUE4QztRQUM5Qyx5Q0FBeUM7UUFDekMsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN0QixPQUFPO1NBQ1Y7UUFFRCxJQUFNLE1BQU0sR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDaEMsUUFBUSxNQUFNLENBQUMsVUFBVSxFQUFFO1lBQ3ZCLEtBQUssTUFBTTtnQkFDUCxlQUFlLENBQUMsR0FBRyxDQUFDLEdBQUcsbUJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ25ELE1BQU07WUFDVixLQUFLLFFBQVE7Z0JBQ1QsZUFBZSxDQUFDLEdBQUcsQ0FBQyxHQUFHLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUNyRCxNQUFNO1lBQ1YsS0FBSyxNQUFNO2dCQUNQLGVBQWUsQ0FBQyxHQUFHLENBQUMsR0FBRyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDbkQsTUFBTTtZQUNWO2dCQUNJLE9BQU8sQ0FBQyxLQUFLLENBQUMs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TUFBTSxDQUFDLElBQUksY0FBVyxDQUFDLENBQUM7S0FDeEU7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBJRmlsdGVyIHtcbiAgICBmaWx0ZXI6IHN0cmluZyB8IG51bWJlcjtcbiAgICBmaWx0ZXJUbz86IG51bWJlcjtcbiAgICBkYXRlRnJvbT86IHN0cmluZztcbiAgICBkYXRlVG8/OiBzdHJpbmc7XG4gICAgZmlsdGVyVHlwZTogc3RyaW5nO1xuICAgIHR5cGU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRmlsdGVyTW9kZWwge1xuICAgIFtpbmRleDogc3RyaW5nXTogSUZpbHRlcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdyaWRGaWx0ZXJGb3JtYXR0ZXIoc3RhdGljRmlsdGVyTW9kZWw6IElGaWx0ZXJNb2RlbCwgZ3JpZEZpbHRlck1vZGVsOiBJRmlsdGVyTW9kZWwpOiBzdHJpbmcge1xuICAgIGlmICghc3RhdGljRmlsdGVyTW9kZWwgJiYgIWdyaWRGaWx0ZXJNb2RlbCkge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGNvbnN0IGZvcm1hdHRlZEZpbHRlcjogYW55ID0ge307XG4gICAgY29uc3QgZmlsdGVyTW9kZWw6IElGaWx0ZXJNb2RlbCA9IE9iamVjdC5hc3NpZ24oZ3JpZEZpbHRlck1vZGVsLCBzdGF0aWNGaWx0ZXJNb2RlbCk7XG4gICAgT2JqZWN0LmtleXMoZmlsdGVyTW9kZWwpLmZvckVhY2goKGtleSkgPT4ge1xuXG4gICAgICAgIC8vIElmIHdlIGhhdmUgYSBvYmplY3Qgbm90YXRpb24gJy4nIGRvIG5vdGhpbmdcbiAgICAgICAgLy8gVGhpcyB3aWxsIGJlIGhhbmRsZWQgaW4gaW5jbHVkZSBwYXJhbXNcbiAgICAgICAgaWYgKGtleS5pbmRleE9mKCcuJykgPiAwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBmaWx0ZXIgPSBmaWx0ZXJNb2RlbFtrZXldO1xuICAgICAgICBzd2l0Y2ggKGZpbHRlci5maWx0ZXJUeXBlKSB7XG4gICAgICAgICAgICBjYXNlICd0ZXh0JzpcbiAgICAgICAgICAgICAgICBmb3JtYXR0ZWRGaWx0ZXJba2V5XSA9IHRleHRGaWx0ZXJGb3JtYXR0ZXIoZmlsdGVyKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ251bWJlcic6XG4gICAgICAgICAgICAgICAgZm9ybWF0dGVkRmlsdGVyW2tleV0gPSBudW1iZXJGaWx0ZXJGb3JtYXR0ZXIoZmlsdGVyKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2RhdGUnOlxuICAgICAgICAgICAgICAgIGZvcm1hdHRlZEZpbHRlcltrZXldID0gZGF0ZUZpbHRlckZvcm1hdHRlcihmaWx0ZXIpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGBVbnN1cHBvcnRlZCBmaWx0ZXIgdHlwZSAke2ZpbHRlci5maWx0ZXJUeXBlfWApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGZvcm1hdHRlZEZpbHRlcik7XG59XG5cbmZ1bmN0aW9uIHRleHRGaWx0ZXJGb3JtYXR0ZXIoZmlsdGVyOiBJRmlsdGVyKTogYW55IHtcbiAgICBzd2l0Y2ggKGZpbHRlci50eXBlKSB7XG4gICAgICAgIGNhc2UgJ2VxdWFscyc6XG4gICAgICAgICAgICByZXR1cm4gZmlsdGVyLmZpbHRlcjtcbiAgICAgICAgY2FzZSAnbm90RXF1YWwnOlxuICAgICAgICAgICAgcmV0dXJuIHsgJG5lOiBmaWx0ZXIuZmlsdGVyIH07XG4gICAgICAgIGNhc2UgJ2NvbnRhaW5zJzpcbiAgICAgICAgICAgIHJldHVybiB7ICRsaWtlOiAnJScgKyBmaWx0ZXIuZmlsdGVyICsgJyUnIHx8ICclJyB9O1xuICAgICAgICBjYXNlICdub3RDb250YWlucyc6XG4gICAgICAgICAgICByZXR1cm4geyAkbm90TGlrZTogJyUnICsgZmlsdGVyLmZpbHRlciArICclJyB8fCAnJScgfTtcbiAgICAgICAgY2FzZSAnc3RhcnRzV2l0aCc6XG4gICAgICAgICAgICByZXR1cm4geyAkbGlrZTogZmlsdGVyLmZpbHRlciArICclJyB8fCAnJScgfTtcbiAgICAgICAgY2FzZSAnZW5kc1dpdGgnOlxuICAgICAgICAgICAgcmV0dXJuIHsgJGxpa2U6ICclJyArIGZpbHRlci5maWx0ZXIgfHwgJyUnIH07XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGBVbnN1cHBvcnRlZCBmaWx0ZXIgdHlwZSAke2ZpbHRlci50eXBlfSBmb3IgdGV4dGApO1xuICAgIH1cbn1cblxuZnVuY3Rpb24gbnVtYmVyRmlsdGVyRm9ybWF0dGVyKGZpbHRlcjogSUZpbHRlcik6IGFueSB7XG4gICAgc3dpdGNoIChmaWx0ZXIudHlwZSkge1xuICAgICAgICBjYXNlICdlcXVhbHMnOlxuICAgICAgICAgICAgcmV0dXJuIGZpbHRlci5maWx0ZXI7XG4gICAgICAgIGNhc2UgJ25vdEVxdWFsJzpcbiAgICAgICAgICAgIHJldHVybiB7ICRuZTogZmlsdGVyLmZpbHRlciB9O1xuICAgICAgICBjYXNlICdsZXNzVGhhbic6XG4gICAgICAgICAgICByZXR1cm4geyAkbHQ6IGZpbHRlci5maWx0ZXIgfTtcbiAgICAgICAgY2FzZSAnbGVzc1RoYW5PckVxdWFsJzpcbiAgICAgICAgICAgIHJldHVybiB7ICRsdGU6IGZpbHRlci5maWx0ZXIgfTtcbiAgICAgICAgY2FzZSAnZ3JlYXRlclRoYW4nOlxuICAgICAgICAgICAgcmV0dXJuIHsgJGd0OiBmaWx0ZXIuZmlsdGVyIH07XG4gICAgICAgIGNhc2UgJ2dyZWF0ZXJUaGFuT3JFcXVhbCc6XG4gICAgICAgICAgICByZXR1cm4geyAkZ3RlOiBmaWx0ZXIuZmlsdGVyIH07XG4gICAgICAgIGNhc2UgJ2luUmFuZ2UnOlxuICAgICAgICAgICAgcmV0dXJuIHsgJGJldHdlZW46IFtmaWx0ZXIuZmlsdGVyLCBmaWx0ZXIuZmlsdGVyVG9dIH07XG5cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYFVuc3VwcG9ydGVkIGZpbHRlciB0eXBlICR7ZmlsdGVyLnR5cGV9IGZvciBudW1iZXJgKTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIGRhdGVGaWx0ZXJGb3JtYXR0ZXIoZmlsdGVyOiBJRmlsdGVyKTogYW55IHtcbiAgICBzd2l0Y2ggKGZpbHRlci50eXBlKSB7XG4gICAgICAgIGNhc2UgJ2VxdWFscyc6XG4gICAgICAgICAgICByZXR1cm4gZmlsdGVyLmRhdGVGcm9tO1xuICAgICAgICBjYXNlICdub3RFcXVhbCc6XG4gICAgICAgICAgICByZXR1cm4geyAkbmU6IGZpbHRlci5kYXRlRnJvbSB9O1xuICAgICAgICBjYXNlICdsZXNzVGhhbic6XG4gICAgICAgICAgICByZXR1cm4geyAkbHQ6IGZpbHRlci5kYXRlRnJvbSB9O1xuICAgICAgICBjYXNlICdncmVhdGVyVGhhbic6XG4gICAgICAgICAgICByZXR1cm4geyAkZ3Q6IGZpbHRlci5kYXRlRnJvbSB9O1xuICAgICAgICBjYXNlICdpblJhbmdlJzpcbiAgICAgICAgICAgIHJldHVybiB7ICRiZXR3ZWVuOiBbZmlsdGVyLmRhdGVGcm9tLCBmaWx0ZXIuZGF0ZVRvXSB9O1xuXG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGBVbnN1cHBvcnRlZCBmaWx0ZXIgdHlwZSAke2ZpbHRlci50eXBlfSBmb3IgZGF0ZWApO1xuICAgIH1cbn1cbiJdfQ==