ngx-easy-table
Version:
Angular easy table
95 lines • 7.71 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Pipe } from '@angular/core';
import { FiltersService } from '../services/filters.service';
export class SearchPipe {
constructor() {
this.filters = {};
}
/**
* @param {?} array
* @param {?} filter
* @param {?} filteredCountSubject
* @param {?=} config
* @return {?}
*/
transform(array, filter, filteredCountSubject, config) {
filteredCountSubject.next(0);
if (typeof array === 'undefined') {
return;
}
if (typeof filter === 'undefined') {
filteredCountSubject.next(array.length);
return array;
}
filter.forEach((/**
* @param {?} f
* @return {?}
*/
(f) => {
this.filters[f.key] = f.value.toString().toLocaleLowerCase();
if (Object.keys(f).length === 0 || f.value === '') {
delete this.filters[f.key];
}
}));
if (config && config.groupRows) {
return array.map((/**
* @param {?} arr
* @return {?}
*/
(arr) => this.filterGroup(arr, filteredCountSubject)));
}
return this.filterGroup(array, filteredCountSubject);
}
/**
* @private
* @param {?} array
* @param {?} filteredCountSubject
* @return {?}
*/
filterGroup(array, filteredCountSubject) {
/** @type {?} */
const arr = array.filter((/**
* @param {?} obj
* @return {?}
*/
(obj) => {
return Object.keys(this.filters).every((/**
* @param {?} c
* @return {?}
*/
(c) => {
/** @type {?} */
const split = c.split('.');
/** @type {?} */
const val = FiltersService.getPath(split, obj);
/** @type {?} */
const element = (typeof val === 'object') ? JSON.stringify(val) : val.toString().toLocaleLowerCase();
/** @type {?} */
const strings = this.filters[c].split(',');
return strings.some((/**
* @param {?} string
* @return {?}
*/
(string) => element.indexOf(string.trim()) > -1));
}));
}));
filteredCountSubject.next(arr.length);
return arr;
}
}
SearchPipe.decorators = [
{ type: Pipe, args: [{
name: 'search',
},] }
];
if (false) {
/**
* @type {?}
* @private
*/
SearchPipe.prototype.filters;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXBpcGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtZWFzeS10YWJsZS8iLCJzb3VyY2VzIjpbImxpYi9waXBlcy9zZWFyY2gtcGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBUTdELE1BQU0sT0FBTyxVQUFVO0lBSnZCO1FBS1UsWUFBTyxHQUE4QixFQUFFLENBQUM7SUFvQ2xELENBQUM7Ozs7Ozs7O0lBbENDLFNBQVMsQ0FBQyxLQUFZLEVBQUUsTUFBNkMsRUFBRSxvQkFBcUMsRUFBRSxNQUFlO1FBQzNILG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3QixJQUFJLE9BQU8sS0FBSyxLQUFLLFdBQVcsRUFBRTtZQUNoQyxPQUFPO1NBQ1I7UUFDRCxJQUFJLE9BQU8sTUFBTSxLQUFLLFdBQVcsRUFBRTtZQUNqQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3hDLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFDRCxNQUFNLENBQUMsT0FBTzs7OztRQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDbkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQzdELElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEtBQUssRUFBRSxFQUFFO2dCQUNqRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQzVCO1FBQ0gsQ0FBQyxFQUFDLENBQUM7UUFDSCxJQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMsU0FBUyxFQUFFO1lBQzlCLE9BQU8sS0FBSyxDQUFDLEdBQUc7Ozs7WUFBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsb0JBQW9CLENBQUMsRUFBQyxDQUFDO1NBQ3hFO1FBQ0QsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7Ozs7Ozs7SUFFTyxXQUFXLENBQUMsS0FBWSxFQUFFLG9CQUFxQzs7Y0FDL0QsR0FBRyxHQUFHLEtBQUssQ0FBQyxNQUFNOzs7O1FBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUMvQixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUs7Ozs7WUFBQyxDQUFDLENBQUMsRUFBRSxFQUFFOztzQkFDckMsS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDOztzQkFDcEIsR0FBRyxHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQzs7c0JBQ3hDLE9BQU8sR0FBRyxDQUFDLE9BQU8sR0FBRyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsaUJBQWlCLEVBQUU7O3NCQUM5RixPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDO2dCQUMxQyxPQUFPLE9BQU8sQ0FBQyxJQUFJOzs7O2dCQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFDLENBQUM7WUFDdkUsQ0FBQyxFQUFDLENBQUM7UUFDTCxDQUFDLEVBQUM7UUFDRixvQkFBb0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3RDLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQzs7O1lBeENGLElBQUksU0FBQztnQkFDSixJQUFJLEVBQUUsUUFBUTthQUNmOzs7Ozs7O0lBR0MsNkJBQWdEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmlsdGVyc1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9maWx0ZXJzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29uZmlnIH0gZnJvbSAnLi4nO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICdzZWFyY2gnLFxufSlcblxuZXhwb3J0IGNsYXNzIFNlYXJjaFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgcHJpdmF0ZSBmaWx0ZXJzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge307XG5cbiAgdHJhbnNmb3JtKGFycmF5OiBhbnlbXSwgZmlsdGVyOiBBcnJheTx7IHZhbHVlOiBzdHJpbmcsIGtleTogc3RyaW5nIH0+LCBmaWx0ZXJlZENvdW50U3ViamVjdDogU3ViamVjdDxudW1iZXI+LCBjb25maWc/OiBDb25maWcpOiBhbnkge1xuICAgIGZpbHRlcmVkQ291bnRTdWJqZWN0Lm5leHQoMCk7XG4gICAgaWYgKHR5cGVvZiBhcnJheSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBmaWx0ZXIgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBmaWx0ZXJlZENvdW50U3ViamVjdC5uZXh0KGFycmF5Lmxlbmd0aCk7XG4gICAgICByZXR1cm4gYXJyYXk7XG4gICAgfVxuICAgIGZpbHRlci5mb3JFYWNoKChmKSA9PiB7XG4gICAgICB0aGlzLmZpbHRlcnNbZi5rZXldID0gZi52YWx1ZS50b1N0cmluZygpLnRvTG9jYWxlTG93ZXJDYXNlKCk7XG4gICAgICBpZiAoT2JqZWN0LmtleXMoZikubGVuZ3RoID09PSAwIHx8IGYudmFsdWUgPT09ICcnKSB7XG4gICAgICAgIGRlbGV0ZSB0aGlzLmZpbHRlcnNbZi5rZXldO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGlmIChjb25maWcgJiYgY29uZmlnLmdyb3VwUm93cykge1xuICAgICAgcmV0dXJuIGFycmF5Lm1hcCgoYXJyKSA9PiB0aGlzLmZpbHRlckdyb3VwKGFyciwgZmlsdGVyZWRDb3VudFN1YmplY3QpKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyR3JvdXAoYXJyYXksIGZpbHRlcmVkQ291bnRTdWJqZWN0KTtcbiAgfVxuXG4gIHByaXZhdGUgZmlsdGVyR3JvdXAoYXJyYXk6IGFueVtdLCBmaWx0ZXJlZENvdW50U3ViamVjdDogU3ViamVjdDxudW1iZXI+KTogYW55W10ge1xuICAgIGNvbnN0IGFyciA9IGFycmF5LmZpbHRlcigob2JqKSA9PiB7XG4gICAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5maWx0ZXJzKS5ldmVyeSgoYykgPT4ge1xuICAgICAgICBjb25zdCBzcGxpdCA9IGMuc3BsaXQoJy4nKTtcbiAgICAgICAgY29uc3QgdmFsID0gRmlsdGVyc1NlcnZpY2UuZ2V0UGF0aChzcGxpdCwgb2JqKTtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9ICh0eXBlb2YgdmFsID09PSAnb2JqZWN0JykgPyBKU09OLnN0cmluZ2lmeSh2YWwpIDogdmFsLnRvU3RyaW5nKCkudG9Mb2NhbGVMb3dlckNhc2UoKTtcbiAgICAgICAgY29uc3Qgc3RyaW5ncyA9IHRoaXMuZmlsdGVyc1tjXS5zcGxpdCgnLCcpO1xuICAgICAgICByZXR1cm4gc3RyaW5ncy5zb21lKChzdHJpbmcpID0+IGVsZW1lbnQuaW5kZXhPZihzdHJpbmcudHJpbSgpKSA+IC0xKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIGZpbHRlcmVkQ291bnRTdWJqZWN0Lm5leHQoYXJyLmxlbmd0aCk7XG4gICAgcmV0dXJuIGFycjtcbiAgfVxufVxuIl19