UNPKG

ngx-easy-table

Version:
95 lines 7.71 kB
/** * @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