@catull/igniteui-angular
Version:
Ignite UI for Angular is a dependency-free Angular toolkit for building modern web apps
86 lines • 9.38 kB
JavaScript
import { __decorate, __metadata, __param } from "tslib";
import { Inject, Pipe } from '@angular/core';
import { cloneArray } from '../core/utils';
import { DataUtil } from '../data-operations/data-util';
import { SortingDirection } from '../data-operations/sorting-expression.interface';
import { IGX_COMBO_COMPONENT } from './combo.common';
import { DefaultSortingStrategy } from '../data-operations/sorting-strategy';
/**
* @hidden
*/
let IgxComboFilteringPipe = class IgxComboFilteringPipe {
transform(collection, searchValue, displayKey, shouldFilter) {
if (!collection) {
return [];
}
if (!searchValue || !shouldFilter) {
return collection;
}
else {
const searchTerm = searchValue.toLowerCase().trim();
if (displayKey != null) {
return collection.filter(e => e[displayKey].toLowerCase().includes(searchTerm));
}
else {
return collection.filter(e => e.toLowerCase().includes(searchTerm));
}
}
}
};
IgxComboFilteringPipe = __decorate([
Pipe({
name: 'comboFiltering'
})
], IgxComboFilteringPipe);
export { IgxComboFilteringPipe };
/**
* @hidden
*/
let IgxComboGroupingPipe = class IgxComboGroupingPipe {
constructor(combo) {
this.combo = combo;
}
transform(collection, groupKey, valueKey) {
this.combo.filteredData = collection;
if ((!groupKey && groupKey !== 0) || !collection.length) {
return collection;
}
const sorted = DataUtil.sort(cloneArray(collection), [{
fieldName: groupKey,
dir: SortingDirection.Asc,
ignoreCase: true,
strategy: DefaultSortingStrategy.instance()
}]);
const data = cloneArray(sorted);
let inserts = 0;
let currentHeader = null;
for (let i = 0; i < sorted.length; i++) {
let insertFlag = 0;
if (currentHeader !== sorted[i][groupKey]) {
currentHeader = sorted[i][groupKey];
insertFlag = 1;
}
if (insertFlag) {
data.splice(i + inserts, 0, {
[valueKey]: currentHeader,
[groupKey]: currentHeader,
isHeader: true
});
inserts++;
}
}
return data;
}
};
IgxComboGroupingPipe.ctorParameters = () => [
{ type: undefined, decorators: [{ type: Inject, args: [IGX_COMBO_COMPONENT,] }] }
];
IgxComboGroupingPipe = __decorate([
Pipe({
name: 'comboGrouping'
}),
__param(0, Inject(IGX_COMBO_COMPONENT)),
__metadata("design:paramtypes", [Object])
], IgxComboGroupingPipe);
export { IgxComboGroupingPipe };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYm8ucGlwZXMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9pZ25pdGV1aS1hbmd1bGFyLyIsInNvdXJjZXMiOlsibGliL2NvbWJvL2NvbWJvLnBpcGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBZ0IsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDbkYsT0FBTyxFQUFFLG1CQUFtQixFQUFnQixNQUFNLGdCQUFnQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRzdFOztHQUVHO0FBSUgsSUFBYSxxQkFBcUIsR0FBbEMsTUFBYSxxQkFBcUI7SUFDdkIsU0FBUyxDQUFDLFVBQWlCLEVBQUUsV0FBZ0IsRUFBRSxVQUFlLEVBQUUsWUFBcUI7UUFDeEYsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNiLE9BQU8sRUFBRSxDQUFDO1NBQ2I7UUFDRCxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQy9CLE9BQU8sVUFBVSxDQUFDO1NBQ3JCO2FBQU07WUFDSCxNQUFNLFVBQVUsR0FBRyxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDcEQsSUFBSSxVQUFVLElBQUksSUFBSSxFQUFFO2dCQUNwQixPQUFPLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7YUFDbkY7aUJBQU07Z0JBQ0gsT0FBTyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO2FBQ3ZFO1NBQ0o7SUFDTCxDQUFDO0NBQ0osQ0FBQTtBQWhCWSxxQkFBcUI7SUFIakMsSUFBSSxDQUFDO1FBQ0YsSUFBSSxFQUFFLGdCQUFnQjtLQUN6QixDQUFDO0dBQ1cscUJBQXFCLENBZ0JqQztTQWhCWSxxQkFBcUI7QUFrQmxDOztHQUVHO0FBSUgsSUFBYSxvQkFBb0IsR0FBakMsTUFBYSxvQkFBb0I7SUFFN0IsWUFBZ0QsS0FBbUI7UUFBbkIsVUFBSyxHQUFMLEtBQUssQ0FBYztJQUFJLENBQUM7SUFFakUsU0FBUyxDQUFDLFVBQWlCLEVBQUUsUUFBYSxFQUFFLFFBQWE7UUFDNUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLEdBQUcsVUFBVSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxDQUFDLFFBQVEsSUFBSSxRQUFRLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFO1lBQ3JELE9BQU8sVUFBVSxDQUFDO1NBQ3JCO1FBQ0QsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztnQkFDbEQsU0FBUyxFQUFFLFFBQVE7Z0JBQ25CLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHO2dCQUN6QixVQUFVLEVBQUUsSUFBSTtnQkFDaEIsUUFBUSxFQUFFLHNCQUFzQixDQUFDLFFBQVEsRUFBRTthQUM5QyxDQUFDLENBQUMsQ0FBQztRQUNKLE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNoQyxJQUFJLE9BQU8sR0FBRyxDQUFDLENBQUM7UUFDaEIsSUFBSSxhQUFhLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3BDLElBQUksVUFBVSxHQUFHLENBQUMsQ0FBQztZQUNuQixJQUFJLGFBQWEsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQ3ZDLGFBQWEsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ3BDLFVBQVUsR0FBRyxDQUFDLENBQUM7YUFDbEI7WUFDRCxJQUFJLFVBQVUsRUFBRTtnQkFDWixJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxPQUFPLEVBQUUsQ0FBQyxFQUFFO29CQUN4QixDQUFDLFFBQVEsQ0FBQyxFQUFFLGFBQWE7b0JBQ3pCLENBQUMsUUFBUSxDQUFDLEVBQUUsYUFBYTtvQkFDekIsUUFBUSxFQUFFLElBQUk7aUJBQ2pCLENBQUMsQ0FBQztnQkFDSCxPQUFPLEVBQUUsQ0FBQzthQUNiO1NBQ0o7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0NBQ0osQ0FBQTs7NENBakNnQixNQUFNLFNBQUMsbUJBQW1COztBQUY5QixvQkFBb0I7SUFIaEMsSUFBSSxDQUFDO1FBQ0YsSUFBSSxFQUFFLGVBQWU7S0FDeEIsQ0FBQztJQUdlLFdBQUEsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUE7O0dBRi9CLG9CQUFvQixDQW1DaEM7U0FuQ1ksb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBQaXBlLCBQaXBlVHJhbnNmb3JtfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNsb25lQXJyYXkgfSBmcm9tICcuLi9jb3JlL3V0aWxzJztcbmltcG9ydCB7IERhdGFVdGlsIH0gZnJvbSAnLi4vZGF0YS1vcGVyYXRpb25zL2RhdGEtdXRpbCc7XG5pbXBvcnQgeyBTb3J0aW5nRGlyZWN0aW9uIH0gZnJvbSAnLi4vZGF0YS1vcGVyYXRpb25zL3NvcnRpbmctZXhwcmVzc2lvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSUdYX0NPTUJPX0NPTVBPTkVOVCwgSWd4Q29tYm9CYXNlIH0gZnJvbSAnLi9jb21iby5jb21tb24nO1xuaW1wb3J0IHsgRGVmYXVsdFNvcnRpbmdTdHJhdGVneSB9IGZyb20gJy4uL2RhdGEtb3BlcmF0aW9ucy9zb3J0aW5nLXN0cmF0ZWd5JztcblxuXG4vKipcbiAqIEBoaWRkZW5cbiAqL1xuQFBpcGUoe1xuICAgIG5hbWU6ICdjb21ib0ZpbHRlcmluZydcbn0pXG5leHBvcnQgY2xhc3MgSWd4Q29tYm9GaWx0ZXJpbmdQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgcHVibGljIHRyYW5zZm9ybShjb2xsZWN0aW9uOiBhbnlbXSwgc2VhcmNoVmFsdWU6IGFueSwgZGlzcGxheUtleTogYW55LCBzaG91bGRGaWx0ZXI6IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKCFjb2xsZWN0aW9uKSB7XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFzZWFyY2hWYWx1ZSB8fCAhc2hvdWxkRmlsdGVyKSB7XG4gICAgICAgICAgICByZXR1cm4gY29sbGVjdGlvbjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHNlYXJjaFRlcm0gPSBzZWFyY2hWYWx1ZS50b0xvd2VyQ2FzZSgpLnRyaW0oKTtcbiAgICAgICAgICAgIGlmIChkaXNwbGF5S2V5ICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY29sbGVjdGlvbi5maWx0ZXIoZSA9PiBlW2Rpc3BsYXlLZXldLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVGVybSkpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY29sbGVjdGlvbi5maWx0ZXIoZSA9PiBlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVGVybSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vKipcbiAqIEBoaWRkZW5cbiAqL1xuQFBpcGUoe1xuICAgIG5hbWU6ICdjb21ib0dyb3VwaW5nJ1xufSlcbmV4cG9ydCBjbGFzcyBJZ3hDb21ib0dyb3VwaW5nUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuXG4gICAgY29uc3RydWN0b3IoQEluamVjdChJR1hfQ09NQk9fQ09NUE9ORU5UKSBwdWJsaWMgY29tYm86IElneENvbWJvQmFzZSkgeyB9XG5cbiAgICBwdWJsaWMgdHJhbnNmb3JtKGNvbGxlY3Rpb246IGFueVtdLCBncm91cEtleTogYW55LCB2YWx1ZUtleTogYW55KSB7XG4gICAgICAgIHRoaXMuY29tYm8uZmlsdGVyZWREYXRhID0gY29sbGVjdGlvbjtcbiAgICAgICAgaWYgKCghZ3JvdXBLZXkgJiYgZ3JvdXBLZXkgIT09IDApIHx8ICFjb2xsZWN0aW9uLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIGNvbGxlY3Rpb247XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc29ydGVkID0gRGF0YVV0aWwuc29ydChjbG9uZUFycmF5KGNvbGxlY3Rpb24pLCBbe1xuICAgICAgICAgICAgZmllbGROYW1lOiBncm91cEtleSxcbiAgICAgICAgICAgIGRpcjogU29ydGluZ0RpcmVjdGlvbi5Bc2MsXG4gICAgICAgICAgICBpZ25vcmVDYXNlOiB0cnVlLFxuICAgICAgICAgICAgc3RyYXRlZ3k6IERlZmF1bHRTb3J0aW5nU3RyYXRlZ3kuaW5zdGFuY2UoKVxuICAgICAgICB9XSk7XG4gICAgICAgIGNvbnN0IGRhdGEgPSBjbG9uZUFycmF5KHNvcnRlZCk7XG4gICAgICAgIGxldCBpbnNlcnRzID0gMDtcbiAgICAgICAgbGV0IGN1cnJlbnRIZWFkZXIgPSBudWxsO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNvcnRlZC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgbGV0IGluc2VydEZsYWcgPSAwO1xuICAgICAgICAgICAgaWYgKGN1cnJlbnRIZWFkZXIgIT09IHNvcnRlZFtpXVtncm91cEtleV0pIHtcbiAgICAgICAgICAgICAgICBjdXJyZW50SGVhZGVyID0gc29ydGVkW2ldW2dyb3VwS2V5XTtcbiAgICAgICAgICAgICAgICBpbnNlcnRGbGFnID0gMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpbnNlcnRGbGFnKSB7XG4gICAgICAgICAgICAgICAgZGF0YS5zcGxpY2UoaSArIGluc2VydHMsIDAsIHtcbiAgICAgICAgICAgICAgICAgICAgW3ZhbHVlS2V5XTogY3VycmVudEhlYWRlcixcbiAgICAgICAgICAgICAgICAgICAgW2dyb3VwS2V5XTogY3VycmVudEhlYWRlcixcbiAgICAgICAgICAgICAgICAgICAgaXNIZWFkZXI6IHRydWVcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpbnNlcnRzKys7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxufVxuIl19