UNPKG

@angular-generic-table/core

Version:
113 lines (112 loc) 12.5 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes} checked by tsc */ import { Pipe } from '@angular/core'; // unsupported: template constraints. /** * @template R */ export class GtSearchPipe { constructor() { /** * Return property */ this.getProperty = function (array, key) { for (let /** @type {?} */ i = 0; i < array.length; i++) { if (array[i].objectKey === key) { return array[i]; } } }; } /** * @param {?} allRows * @param {?} searchTerms * @param {?} gtInfo * @param {?} settings * @param {?} fields * @param {?} refreshData * @return {?} */ transform(allRows, searchTerms, gtInfo, settings, fields, refreshData) { // if no search terms are defined... if (!searchTerms || searchTerms.replace(/"/g, '').length === 0) { // ...return all rows const /** @type {?} */ length = allRows === null ? 0 : allRows.length; gtInfo.recordsAfterSearch = length; return allRows; } const /** @type {?} */ searchFunction = {}; const /** @type {?} */ fieldsTemp = []; for (let /** @type {?} */ k = 0; k < fields.length; k++) { const /** @type {?} */ field = fields[k]; // check if field should be included in global search const /** @type {?} */ include = this.getProperty(settings, field.objectKey).search === false ? false : true; // if include... if (include) { // ...and if search function is defined... if (typeof field.search === 'function') { // ...add it as search function for field searchFunction[field.objectKey] = field.search; } else if (typeof field.value === 'function') { // ...add it as search function for field searchFunction[field.objectKey] = field.value; } // ...push it to our fields array fieldsTemp.push(field); } } const /** @type {?} */ filteredRows = []; searchTerms = typeof searchTerms === 'undefined' ? '' : searchTerms; const /** @type {?} */ searchTermsArray = searchTerms.toLowerCase().match(/(".*"|[^\s]+)/g); for (let /** @type {?} */ i = 0; i < allRows.length; i++) { const /** @type {?} */ row = allRows[i]; let /** @type {?} */ string = ''; for (let /** @type {?} */ j = 0; j < fieldsTemp.length; j++) { const /** @type {?} */ separator = j === 0 ? '' : ' & '; string += searchFunction[fieldsTemp[j].objectKey] ? separator + searchFunction[fieldsTemp[j].objectKey](row, j) : separator + row[fieldsTemp[j].objectKey]; } string = string.toLowerCase(); let /** @type {?} */ match = true; for (let /** @type {?} */ k = 0; k < searchTermsArray.length; k++) { const /** @type {?} */ term = searchTermsArray[k].replace(/"/g, ''); match = string.indexOf(term) !== -1; if (!match) { break; } } if (match) { filteredRows.push(row); } } gtInfo.recordsAfterSearch = filteredRows.length; // gtInfo.refresh(filteredRows.length,gt); return filteredRows; } } GtSearchPipe.decorators = [ { type: Pipe, args: [{ name: 'gtSearch' },] }, ]; function GtSearchPipe_tsickle_Closure_declarations() { /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */ GtSearchPipe.decorators; /** * @nocollapse * @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>} */ GtSearchPipe.ctorParameters; /** * Return property * @type {?} */ GtSearchPipe.prototype.getProperty; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3Qtc2VhcmNoLnBpcGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYW5ndWxhci1nZW5lcmljLXRhYmxlL2NvcmUvIiwic291cmNlcyI6WyJwaXBlcy9ndC1zZWFyY2gucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7Ozs7O0FBU3BELE1BQU07Ozs7OzJCQUVpQixVQUFTLEtBQWlCLEVBQUUsR0FBVztZQUM1RCxHQUFHLENBQUMsQ0FBQyxxQkFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBQ3ZDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztvQkFDaEMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDaEI7YUFDRDtTQUNEOzs7Ozs7Ozs7OztJQUVELFNBQVMsQ0FDUixPQUFZLEVBQ1osV0FBbUIsRUFDbkIsTUFBcUIsRUFDckIsUUFBZ0MsRUFDaEMsTUFBb0MsRUFDcEMsV0FBbUI7O1FBR25CLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxJQUFJLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDOztZQUVoRSx1QkFBTSxNQUFNLEdBQUcsT0FBTyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO1lBQ3JELE1BQU0sQ0FBQyxrQkFBa0IsR0FBRyxNQUFNLENBQUM7WUFDbkMsTUFBTSxDQUFDLE9BQU8sQ0FBQztTQUNmO1FBRUQsdUJBQU0sY0FBYyxHQUFRLEVBQUUsQ0FBQztRQUMvQix1QkFBTSxVQUFVLEdBQWUsRUFBRSxDQUFD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QUFLLENBQUMsQ0FBQyxDQUFDO29CQUNaLEtBQUssQ0FBQztpQkFDTjthQUNEO1lBQ0QsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztnQkFDWCxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ3ZCO1NBQ0Q7UUFDRCxNQUFNLENBQUMsa0JBQWtCLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQzs7UUFFaEQsTUFBTSxDQUFDLFlBQVksQ0FBQztLQUNwQjs7O1lBM0ZELElBQUksU0FBQztnQkFDTCxJQUFJLEVBQUUsVUFBVTthQUNoQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEd0Q29uZmlnRmllbGQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2d0LWNvbmZpZy1maWVsZCc7XG5pbXBvcnQgeyBHdFJvdyB9IGZyb20gJy4uL2ludGVyZmFjZXMvZ3Qtcm93JztcbmltcG9ydCB7IEd0Q29uZmlnU2V0dGluZyB9IGZyb20gJy4uL2ludGVyZmFjZXMvZ3QtY29uZmlnLXNldHRpbmcnO1xuaW1wb3J0IHsgR3RJbmZvcm1hdGlvbiB9IGZyb20gJy4uL2ludGVyZmFjZXMvZ3QtaW5mb3JtYXRpb24nO1xuXG5AUGlwZSh7XG5cdG5hbWU6ICdndFNlYXJjaCdcbn0pXG5leHBvcnQgY2xhc3MgR3RTZWFyY2hQaXBlPFIgZXh0ZW5kcyBHdFJvdz4gaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcblx0LyoqIFJldHVybiBwcm9wZXJ0eSAqL1xuXHRwcml2YXRlIGdldFByb3BlcnR5ID0gZnVuY3Rpb24oYXJyYXk6IEFycmF5PGFueT4sIGtleTogc3RyaW5nKSB7XG5cdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBhcnJheS5sZW5ndGg7IGkrKykge1xuXHRcdFx0aWYgKGFycmF5W2ldLm9iamVjdEtleSA9PT0ga2V5KSB7XG5cdFx0XHRcdHJldHVybiBhcnJheVtpXTtcblx0XHRcdH1cblx0XHR9XG5cdH07XG5cblx0dHJhbnNmb3JtKFxuXHRcdGFsbFJvd3M6IGFueSxcblx0XHRzZWFyY2hUZXJtczogc3RyaW5nLFxuXHRcdGd0SW5mbzogR3RJbmZvcm1hdGlvbixcblx0XHRzZXR0aW5nczogQXJyYXk8R3RDb25maWdTZXR0aW5nPixcblx0XHRmaWVsZHM6IEFycmF5PEd0Q29uZmlnRmllbGQ8UiwgYW55Pj4sXG5cdFx0cmVmcmVzaERhdGE6IG51bWJlclxuXHQpOiBhbnkge1xuXHRcdC8vICBpZiBubyBzZWFyY2ggdGVybXMgYXJlIGRlZmluZWQuLi5cblx0XHRpZiAoIXNlYXJjaFRlcm1zIHx8IHNlYXJjaFRlcm1zLnJlcGxhY2UoL1wiL2csICcnKS5sZW5ndGggPT09IDApIHtcblx0XHRcdC8vIC4uLnJldHVybiBhbGwgcm93c1xuXHRcdFx0Y29uc3QgbGVuZ3RoID0gYWxsUm93cyA9PT0gbnVsbCA/IDAgOiBhbGxSb3dzLmxlbmd0aDtcblx0XHRcdGd0SW5mby5yZWNvcmRzQWZ0ZXJTZWFyY2ggPSBsZW5ndGg7XG5cdFx0XHRyZXR1cm4gYWxsUm93cztcblx0XHR9XG5cblx0XHRjb25zdCBzZWFyY2hGdW5jdGlvbjogYW55ID0ge307XG5cdFx0Y29uc3QgZmllbGRzVGVtcDogQXJyYXk8YW55PiA9IFtdO1xuXG5cdFx0Zm9yIChsZXQgayA9IDA7IGsgPCBmaWVsZHMubGVuZ3RoOyBrKyspIHtcblx0XHRcdGNvbnN0IGZpZWxkID0gZmllbGRzW2tdO1xuXG5cdFx0XHQvLyBjaGVjayBpZiBmaWVsZCBzaG91bGQgYmUgaW5jbHVkZWQgaW4gZ2xvYmFsIHNlYXJjaFxuXHRcdFx0Y29uc3QgaW5jbHVkZSA9XG5cdFx0XHRcdHRoaXMuZ2V0UHJvcGVydHkoc2V0dGluZ3MsIGZpZWxkLm9iamVjdEtleSkuc2VhcmNoID09PSBmYWxzZVxuXHRcdFx0XHRcdD8gZmFsc2Vcblx0XHRcdFx0XHQ6IHRydWU7XG5cblx0XHRcdC8vIGlmIGluY2x1ZGUuLi5cblx0XHRcdGlmIChpbmNsdWRlKSB7XG5cdFx0XHRcdC8vIC4uLmFuZCBpZiBzZWFyY2ggZnVuY3Rpb24gaXMgZGVmaW5lZC4uLlxuXHRcdFx0XHRpZiAodHlwZW9mIGZpZWxkLnNlYXJjaCA9PT0gJ2Z1bmN0aW9uJykge1xuXHRcdFx0XHRcdC8vIC4uLmFkZCBpdCBhcyBzZWFyY2ggZnVuY3Rpb24gZm9yIGZpZWxkXG5cdFx0XHRcdFx0c2VhcmNoRnVuY3Rpb25bZmllbGQub2JqZWN0S2V5XSA9IGZpZWxkLnNlYXJjaDtcblx0XHRcdFx0fVxuXHRcdFx0XHQvLyAuLi5pZiBubyBzZWFyY2ggZnVuY3Rpb24gaXMgZGVmaW5lZCBidXQgdmFsdWUgZnVuY3Rpb24gaXMgZGVmaW5lZC4uLlxuXHRcdFx0XHRlbHNlIGlmICh0eXBlb2YgZmllbGQudmFsdWUgPT09ICdmdW5jdGlvbicpIHtcblx0XHRcdFx0XHQvLyAuLi5hZGQgaXQgYXMgc2VhcmNoIGZ1bmN0aW9uIGZvciBmaWVsZFxuXHRcdFx0XHRcdHNlYXJjaEZ1bmN0aW9uW2ZpZWxkLm9iamVjdEtleV0gPSBmaWVsZC52YWx1ZTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIC4uLnB1c2ggaXQgdG8gb3VyIGZpZWxkcyBhcnJheVxuXHRcdFx0XHRmaWVsZHNUZW1wLnB1c2goZmllbGQpO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGNvbnN0IGZpbHRlcmVkUm93czogQXJyYXk8YW55PiA9IFtdO1xuXHRcdHNlYXJjaFRlcm1zID0gdHlwZW9mIHNlYXJjaFRlcm1zID09PSAndW5kZWZpbmVkJyA/ICcnIDogc2VhcmNoVGVybXM7XG5cdFx0Y29uc3Qgc2VhcmNoVGVybXNBcnJheSA9IHNlYXJjaFRlcm1zLnRvTG93ZXJDYXNlKCkubWF0Y2goLyhcIi4qXCJ8W15cXHNdKykvZyk7XG5cblx0XHRmb3IgKGxldCBpID0gMDsgaSA8IGFsbFJvd3MubGVuZ3RoOyBpKyspIHtcblx0XHRcdGNvbnN0IHJvdyA9IGFsbFJvd3NbaV07XG5cdFx0XHRsZXQgc3RyaW5nID0gJyc7XG5cblx0XHRcdGZvciAobGV0IGogPSAwOyBqIDwgZmllbGRzVGVtcC5sZW5ndGg7IGorKykge1xuXHRcdFx0XHRjb25zdCBzZXBhcmF0b3IgPSBqID09PSAwID8gJycgOiAnICYgJztcblx0XHRcdFx0c3RyaW5nICs9IHNlYXJjaEZ1bmN0aW9uW2ZpZWxkc1RlbXBbal0ub2JqZWN0S2V5XVxuXHRcdFx0XHRcdD8gc2VwYXJhdG9yICsgc2VhcmNoRnVuY3Rpb25bZmllbGRzVGVtcFtqXS5vYmplY3RLZXldKHJvdywgailcblx0XHRcdFx0XHQ6IHNlcGFyYXRvciArIHJvd1tmaWVsZHNUZW1wW2pdLm9iamVjdEtleV07XG5cdFx0XHR9XG5cdFx0XHRzdHJpbmcgPSBzdHJpbmcudG9Mb3dlckNhc2UoKTtcblx0XHRcdGxldCBtYXRjaDogQm9vbGVhbiA9IHRydWU7XG5cblx0XHRcdGZvciAobGV0IGsgPSAwOyBrIDwgc2VhcmNoVGVybXNBcnJheS5sZW5ndGg7IGsrKykge1xuXHRcdFx0XHRjb25zdCB0ZXJtID0gc2VhcmNoVGVybXNBcnJheVtrXS5yZXBsYWNlKC9cIi9nLCAnJyk7XG5cdFx0XHRcdG1hdGNoID0gc3RyaW5nLmluZGV4T2YodGVybSkgIT09IC0xO1xuXG5cdFx0XHRcdGlmICghbWF0Y2gpIHtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0aWYgKG1hdGNoKSB7XG5cdFx0XHRcdGZpbHRlcmVkUm93cy5wdXNoKHJvdyk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdGd0SW5mby5yZWNvcmRzQWZ0ZXJTZWFyY2ggPSBmaWx0ZXJlZFJvd3MubGVuZ3RoO1xuXHRcdC8vIGd0SW5mby5yZWZyZXNoKGZpbHRlcmVkUm93cy5sZW5ndGgsZ3QpO1xuXHRcdHJldHVybiBmaWx0ZXJlZFJvd3M7XG5cdH1cbn1cbiJdfQ==