@hxui/angular
Version:
This README includes the steps that are necessary to import the HxUi-angular into a project or to contribute with development.
65 lines (64 loc) • 5.64 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
/**
* Example use
* Array of objects: *ngFor="#row of rows | simpleSearch : 'the search term'"
*/
import { Pipe } from '@angular/core';
/**
* @record
*/
export function ISimpleSearchPipe() { }
function ISimpleSearchPipe_tsickle_Closure_declarations() {
/** @type {?} */
ISimpleSearchPipe.prototype.searchValue;
}
export class SimpleSearchPipe {
constructor() {
this.searchValue = (item, searchTerm = '') => {
const /** @type {?} */ keys = Object.keys(item);
for (let /** @type {?} */ i = 0, /** @type {?} */ len = keys.length; i < len; i++) {
let /** @type {?} */ match = false, /** @type {?} */
propertyValue = item[keys[i]];
if (propertyValue)
match = (propertyValue.toString().toLowerCase().indexOf(searchTerm.toLowerCase()) > -1);
if (match || searchTerm == '')
return true;
}
return false;
};
}
/**
* @param {?} items
* @param {?} args
* @return {?}
*/
transform(items, args) {
if (!Array.isArray(items))
return items;
// filter items array, items which match and return true will be kept, false will be filtered out
return items.filter(item => (args) ? this.searchValue(item, args.toString()) : item);
}
}
SimpleSearchPipe.decorators = [
{ type: Pipe, args: [{
name: 'simpleSearch',
pure: false
},] },
];
/** @nocollapse */
SimpleSearchPipe.ctorParameters = () => [];
function SimpleSearchPipe_tsickle_Closure_declarations() {
/** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
SimpleSearchPipe.decorators;
/**
* @nocollapse
* @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>}
*/
SimpleSearchPipe.ctorParameters;
/** @type {?} */
SimpleSearchPipe.prototype.searchValue;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlLXNlYXJjaC5waXBlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGh4dWkvYW5ndWxhci8iLCJzb3VyY2VzIjpbImxpYi91dGlscy9waXBlcy9zaW1wbGUtc2VhcmNoLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFLQSxPQUFPLEVBQUMsSUFBSSxFQUFnQixNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7O0FBV2xELE1BQU07SUFFRjsyQkFFcUIsQ0FBQyxJQUFTLEVBQUUsYUFBcUIsRUFBRSxFQUFXLEVBQUU7WUFFakUsdUJBQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDL0IsR0FBRyxDQUFDLENBQUMscUJBQUksQ0FBQyxHQUFHLENBQUMsbUJBQUUsR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFDL0MsQ0FBQztnQkFDRyxxQkFBSSxLQUFLLEdBQUcsS0FBSztnQkFDYixhQUFhLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUVsQyxFQUFFLENBQUMsQ0FBQyxhQUFhLENBQUM7b0JBQ2QsS0FBSyxHQUFHLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUU1RixFQUFFLENBQUMsQ0FBQyxLQUFLLElBQUksVUFBVSxJQUFJLEVBQUUsQ0FBQztvQkFDMUIsTUFBTSxDQUFDLElBQUksQ0FBQzthQUNuQjtZQUVELE1BQU0sQ0FBQyxLQUFLLENBQUM7U0FDaEI7S0FsQmM7Ozs7OztJQW9CZixTQUFTLENBQUMsS0FBWSxFQUFFLElBQVc7UUFFL0IsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQzs7UUFHeEMsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDeEY7OztZQWpDSixJQUFJLFNBQUM7Z0JBQ0YsSUFBSSxFQUFFLGNBQWM7Z0JBQ3BCLElBQUksRUFBRSxLQUFLO2FBQ2QiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogRXhhbXBsZSB1c2VcclxuICogQXJyYXkgb2Ygb2JqZWN0czogKm5nRm9yPVwiI3JvdyBvZiByb3dzIHwgc2ltcGxlU2VhcmNoIDogJ3RoZSBzZWFyY2ggdGVybSdcIlxyXG4gKi9cclxuXHJcbmltcG9ydCB7UGlwZSwgUGlwZVRyYW5zZm9ybX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElTaW1wbGVTZWFyY2hQaXBlIGV4dGVuZHMgUGlwZVRyYW5zZm9ybSB7XHJcbiAgICBzZWFyY2hWYWx1ZShpdGVtOiBhbnksIHNlYXJjaFRlcm06IHN0cmluZyk6IGJvb2xlYW47XHJcbn1cclxuXHJcbkBQaXBlKHtcclxuICAgIG5hbWU6ICdzaW1wbGVTZWFyY2gnLFxyXG4gICAgcHVyZTogZmFsc2VcclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBTaW1wbGVTZWFyY2hQaXBlIGltcGxlbWVudHMgSVNpbXBsZVNlYXJjaFBpcGV7XHJcblxyXG4gICAgY29uc3RydWN0b3IoKXt9XHJcblxyXG4gICAgcHVibGljIHNlYXJjaFZhbHVlID0gKGl0ZW06IGFueSwgc2VhcmNoVGVybTogc3RyaW5nID0gJycpOiBib29sZWFuID0+XHJcbiAgICB7XHJcbiAgICAgICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKGl0ZW0pO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwLCBsZW4gPSBrZXlzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgbGV0IG1hdGNoID0gZmFsc2UsXHJcbiAgICAgICAgICAgICAgICBwcm9wZXJ0eVZhbHVlID0gaXRlbVtrZXlzW2ldXTtcclxuXHJcbiAgICAgICAgICAgIGlmIChwcm9wZXJ0eVZhbHVlKVxyXG4gICAgICAgICAgICAgICAgbWF0Y2ggPSAocHJvcGVydHlWYWx1ZS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihzZWFyY2hUZXJtLnRvTG93ZXJDYXNlKCkpID4gLTEpO1xyXG5cclxuICAgICAgICAgICAgaWYgKG1hdGNoIHx8IHNlYXJjaFRlcm0gPT0gJycpXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICB0cmFuc2Zvcm0oaXRlbXM6IGFueVtdLCBhcmdzOiBhbnlbXSk6IGFueVxyXG4gICAge1xyXG4gICAgICAgIGlmICghQXJyYXkuaXNBcnJheShpdGVtcykpIHJldHVybiBpdGVtcztcclxuXHJcbiAgICAgICAgLy8gZmlsdGVyIGl0ZW1zIGFycmF5LCBpdGVtcyB3aGljaCBtYXRjaCBhbmQgcmV0dXJuIHRydWUgd2lsbCBiZSBrZXB0LCBmYWxzZSB3aWxsIGJlIGZpbHRlcmVkIG91dFxyXG4gICAgICAgIHJldHVybiBpdGVtcy5maWx0ZXIoaXRlbSA9PiAoYXJncykgPyB0aGlzLnNlYXJjaFZhbHVlKGl0ZW0sIGFyZ3MudG9TdHJpbmcoKSkgOiBpdGVtKTtcclxuICAgIH1cclxufVxyXG4iXX0=