sx-ng-aggrid
Version:
Angular Grid Table(ag-grid) Componet
25 lines • 4.23 kB
JavaScript
import { gridFilterFormatter } from './grid-sequelize-filter';
export function gridIncludeFormatter(includeModel, filterModel) {
if (!includeModel) {
return null;
}
if (!filterModel) {
return JSON.stringify(includeModel);
}
const includeModelCopy = JSON.parse(JSON.stringify(includeModel));
Object.keys(filterModel).forEach((key) => {
if (key.indexOf('.') < 0) {
return;
}
const modelName = key.substring(0, key.indexOf('.'));
const fieldName = key.substring(key.indexOf('.') + 1);
for (let i = 0; i < includeModel.length; i++) {
if (modelName === includeModel[i].model || modelName === includeModel[i].as) {
let filter = filterModel[key];
includeModelCopy[i].where = JSON.parse(gridFilterFormatter({}, { [fieldName]: filter }));
}
}
});
return JSON.stringify(includeModelCopy);
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1zZXF1ZWxpemUtaW5jbHVkZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL3N4LW5nLWFnZ3JpZC8iLCJzb3VyY2VzIjpbInNyYy9hcHAvbW9kdWxlcy9ncmlkL2dyaWQtc2VxdWVsaXplLWluY2x1ZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUFnQixNQUFNLHlCQUF5QixDQUFDO0FBUzVFLE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxZQUFpQyxFQUFFLFdBQXlCO0lBQzdGLElBQUksQ0FBQyxZQUFZLEVBQUU7UUFDZixPQUFPLElBQUksQ0FBQztLQUNmO0lBQ0QsSUFBSSxDQUFDLFdBQVcsRUFBRTtRQUNkLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQztLQUN2QztJQUVELE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7SUFDbEUsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtRQUNyQyxJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3RCLE9BQU87U0FDVjtRQUNELE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNyRCxNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDdEQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDMUMsSUFBSSxTQUFTLEtBQUssWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxTQUFTLEtBQUssWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDekUsSUFBSSxNQUFNLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUM5QixnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQzthQUM1RjtTQUNKO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztBQUM1QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ3JpZEZpbHRlckZvcm1hdHRlciwgSUZpbHRlck1vZGVsIH0gZnJvbSAnLi9ncmlkLXNlcXVlbGl6ZS1maWx0ZXInO1xuXG5leHBvcnQgaW50ZXJmYWNlIElJbmNsdWRlTW9kZWxJdGVtIHtcbiAgICBtb2RlbDogc3RyaW5nO1xuICAgIGF0dHJpYnV0ZXM/OiBzdHJpbmdbXTtcbiAgICB3aGVyZT86IGFueTtcbiAgICBhcz86IHN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdyaWRJbmNsdWRlRm9ybWF0dGVyKGluY2x1ZGVNb2RlbDogSUluY2x1ZGVNb2RlbEl0ZW1bXSwgZmlsdGVyTW9kZWw6IElGaWx0ZXJNb2RlbCk6IHN0cmluZyB7XG4gICAgaWYgKCFpbmNsdWRlTW9kZWwpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGlmICghZmlsdGVyTW9kZWwpIHtcbiAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGluY2x1ZGVNb2RlbCk7XG4gICAgfVxuXG4gICAgY29uc3QgaW5jbHVkZU1vZGVsQ29weSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoaW5jbHVkZU1vZGVsKSk7XG4gICAgT2JqZWN0LmtleXMoZmlsdGVyTW9kZWwpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICBpZiAoa2V5LmluZGV4T2YoJy4nKSA8IDApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBtb2RlbE5hbWUgPSBrZXkuc3Vic3RyaW5nKDAsIGtleS5pbmRleE9mKCcuJykpO1xuICAgICAgICBjb25zdCBmaWVsZE5hbWUgPSBrZXkuc3Vic3RyaW5nKGtleS5pbmRleE9mKCcuJykgKyAxKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpbmNsdWRlTW9kZWwubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChtb2RlbE5hbWUgPT09IGluY2x1ZGVNb2RlbFtpXS5tb2RlbCB8fCBtb2RlbE5hbWUgPT09IGluY2x1ZGVNb2RlbFtpXS5hcykge1xuICAgICAgICAgICAgICAgIGxldCBmaWx0ZXIgPSBmaWx0ZXJNb2RlbFtrZXldO1xuICAgICAgICAgICAgICAgIGluY2x1ZGVNb2RlbENvcHlbaV0ud2hlcmUgPSBKU09OLnBhcnNlKGdyaWRGaWx0ZXJGb3JtYXR0ZXIoe30sIHsgW2ZpZWxkTmFtZV06IGZpbHRlciB9KSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShpbmNsdWRlTW9kZWxDb3B5KTtcbn1cbiJdfQ==