@angular-generic-table/core
Version:
A generic table component for Angular
77 lines (76 loc) • 6.79 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
import { Pipe } from '@angular/core';
import { DomSanitizer } from '@angular/platform-browser';
var GtHighlightPipe = /** @class */ (function () {
function GtHighlightPipe(sanitizer) {
this.sanitizer = sanitizer;
}
/**
* @param {?} text
* @param {?} searchTerm
* @return {?}
*/
GtHighlightPipe.prototype.transform = /**
* @param {?} text
* @param {?} searchTerm
* @return {?}
*/
function (text, searchTerm) {
var /** @type {?} */ haystackAlwaysString = text + '';
var /** @type {?} */ highlightedText = haystackAlwaysString; // fallback
var /** @type {?} */ searchPattern;
try {
searchPattern = new RegExp('(' +
searchTerm
.toLowerCase()
.match(/".*?"|[^ ]+/g) // extract words
.map(function (needle) { return needle.replace(/"(.*?)"/, '$1'); } // strip away '"'
// strip away '"'
)
.join('|') + // combine words
')', 'ig');
}
catch (/** @type {?} */ error) {
return this.sanitizer.bypassSecurityTrustHtml(highlightedText);
}
var /** @type {?} */ containsTagPattern = /(<.*)(.*)(<\/.*)/gi;
var /** @type {?} */ containsTagMatches = containsTagPattern.exec(haystackAlwaysString);
if (containsTagMatches) {
// tag exists in haystack
highlightedText =
containsTagMatches[1] +
containsTagMatches[2].replace(searchPattern, '<span class="gt-highlight-search">$1</span>') +
containsTagMatches[3];
}
else {
highlightedText = haystackAlwaysString.replace(searchPattern, '<span class="gt-highlight-search">$1</span>');
}
return this.sanitizer.bypassSecurityTrustHtml(highlightedText);
};
GtHighlightPipe.decorators = [
{ type: Pipe, args: [{
name: 'gtHighlight'
},] },
];
/** @nocollapse */
GtHighlightPipe.ctorParameters = function () { return [
{ type: DomSanitizer, },
]; };
return GtHighlightPipe;
}());
export { GtHighlightPipe };
function GtHighlightPipe_tsickle_Closure_declarations() {
/** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
GtHighlightPipe.decorators;
/**
* @nocollapse
* @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>}
*/
GtHighlightPipe.ctorParameters;
/** @type {?} */
GtHighlightPipe.prototype.sanitizer;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3QtaGlnaGxpZ2h0LnBpcGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYW5ndWxhci1nZW5lcmljLXRhYmxlL2NvcmUvIiwic291cmNlcyI6WyJwaXBlcy9ndC1oaWdobGlnaHQucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBWSxNQUFNLDJCQUEyQixDQUFDOztJQU1sRSx5QkFBb0IsU0FBdUI7UUFBdkIsY0FBUyxHQUFULFNBQVMsQ0FBYztLQUFJOzs7Ozs7SUFFL0MsbUNBQVM7Ozs7O0lBQVQsVUFBVSxJQUFZLEVBQUUsVUFBa0I7UUFDekMscUJBQU0sb0JBQW9CLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUN2QyxxQkFBSSxlQUFlLEdBQUcsb0JBQW9CLENBQUM7UUFFM0MscUJBQUksYUFBYSxDQUFDO1FBQ2xCLElBQUksQ0FBQztZQUNKLGFBQWEsR0FBRyxJQUFJLE1BQU0sQ0FDekIsR0FBRztnQkFDSCxVQUFVO3FCQUNSLFdBQVcsRUFBRTtxQkFDYixLQUFLLENBQUMsY0FBYyxDQUFDO3FCQUNyQixHQUFHLENBQ0gsVUFBQSxNQUFNLElBQUksT0FBQSxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsRUFBL0IsQ0FBK0I7Z0JBQUMsaUJBQWlCO2lCQUMzRDtxQkFDQSxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsZ0JBQWdCO2dCQUM3QixHQUFHLEVBQ0osSUFBSSxDQUNKLENBQUM7U0FDRjtRQUFDLEtBQUssQ0FBQyxDQUFDLGlCQUFBLEtBQUssRUFBRSxDQUFDO1lBQ2hCLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLHVCQUF1QixDQUFDLGVBQWUsQ0FBQyxDQUFDO1NBQy9EO1FBRUQscUJBQU0sa0JBQWtCLEdBQUcsd0JBQXdCLENBQUM7UUFDcEQscUJBQU0sa0JBQWtCLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFFekUsRUFBRSxDQUFDLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDOztZQUV4QixlQUFlO2dCQUNkLGtCQUFrQixDQUFDLENBQUMsQ0FBQztvQkFDckIsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUM1QixhQUFhLEVBQ2IsNkNBQTZDLENBQzdDO29CQUNELGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3ZCO1FBQUMsSUFBSSxDQUFDLENBQUM7WUFDUCxlQUFlLEdBQUcsb0JBQW9CLENBQUMsT0FBTyxDQUM3QyxhQUFhLEVBQ2IsNkNBQTZDLENBQzdDLENBQUM7U0FDRjtRQUVELE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLHVCQUF1QixDQUFDLGVBQWUsQ0FBQyxDQUFDO0tBQy9EOztnQkFoREQsSUFBSSxTQUFDO29CQUNMLElBQUksRUFBRSxhQUFhO2lCQUNuQjs7OztnQkFKUSxZQUFZOzswQkFEckI7O1NBTWEsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERvbVNhbml0aXplciwgU2FmZUh0bWwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcblxuQFBpcGUoe1xuXHRuYW1lOiAnZ3RIaWdobGlnaHQnXG59KVxuZXhwb3J0IGNsYXNzIEd0SGlnaGxpZ2h0UGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuXHRjb25zdHJ1Y3Rvcihwcml2YXRlIHNhbml0aXplcjogRG9tU2FuaXRpemVyKSB7fVxuXG5cdHRyYW5zZm9ybSh0ZXh0OiBzdHJpbmcsIHNlYXJjaFRlcm06IHN0cmluZyk6IFNhZmVIdG1sIHtcblx0XHRjb25zdCBoYXlzdGFja0Fsd2F5c1N0cmluZyA9IHRleHQgKyAnJztcblx0XHRsZXQgaGlnaGxpZ2h0ZWRUZXh0ID0gaGF5c3RhY2tBbHdheXNTdHJpbmc7IC8vIGZhbGxiYWNrXG5cblx0XHRsZXQgc2VhcmNoUGF0dGVybjtcblx0XHR0cnkge1xuXHRcdFx0c2VhcmNoUGF0dGVybiA9IG5ldyBSZWdFeHAoXG5cdFx0XHRcdCcoJyArXG5cdFx0XHRcdHNlYXJjaFRlcm1cblx0XHRcdFx0XHQudG9Mb3dlckNhc2UoKVxuXHRcdFx0XHRcdC5tYXRjaCgvXCIuKj9cInxbXiBdKy9nKSAvLyBleHRyYWN0IHdvcmRzXG5cdFx0XHRcdFx0Lm1hcChcblx0XHRcdFx0XHRcdG5lZWRsZSA9PiBuZWVkbGUucmVwbGFjZSgvXCIoLio/KVwiLywgJyQxJykgLy8gc3RyaXAgYXdheSAnXCInXG5cdFx0XHRcdFx0KVxuXHRcdFx0XHRcdC5qb2luKCd8JykgKyAvLyBjb21iaW5lIHdvcmRzXG5cdFx0XHRcdFx0JyknLFxuXHRcdFx0XHQnaWcnXG5cdFx0XHQpO1xuXHRcdH0gY2F0Y2ggKGVycm9yKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoaGlnaGxpZ2h0ZWRUZXh0KTtcblx0XHR9XG5cblx0XHRjb25zdCBjb250YWluc1RhZ1BhdHRlcm4gPSAvKDwuKj8+KSguKikoPFxcLy4qPz4pL2dpO1xuXHRcdGNvbnN0IGNvbnRhaW5zVGFnTWF0Y2hlcyA9IGNvbnRhaW5zVGFnUGF0dGVybi5leGVjKGhheXN0YWNrQWx3YXlzU3RyaW5nKTtcblxuXHRcdGlmIChjb250YWluc1RhZ01hdGNoZXMpIHtcblx0XHRcdC8vIHRhZyBleGlzdHMgaW4gaGF5c3RhY2tcblx0XHRcdGhpZ2hsaWdodGVkVGV4dCA9XG5cdFx0XHRcdGNvbnRhaW5zVGFnTWF0Y2hlc1sxXSArXG5cdFx0XHRcdGNvbnRhaW5zVGFnTWF0Y2hlc1syXS5yZXBsYWNlKFxuXHRcdFx0XHRcdHNlYXJjaFBhdHRlcm4sXG5cdFx0XHRcdFx0JzxzcGFuIGNsYXNzPVwiZ3QtaGlnaGxpZ2h0LXNlYXJjaFwiPiQxPC9zcGFuPidcblx0XHRcdFx0KSArXG5cdFx0XHRcdGNvbnRhaW5zVGFnTWF0Y2hlc1szXTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0aGlnaGxpZ2h0ZWRUZXh0ID0gaGF5c3RhY2tBbHdheXNTdHJpbmcucmVwbGFjZShcblx0XHRcdFx0c2VhcmNoUGF0dGVybixcblx0XHRcdFx0JzxzcGFuIGNsYXNzPVwiZ3QtaGlnaGxpZ2h0LXNlYXJjaFwiPiQxPC9zcGFuPidcblx0XHRcdCk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKGhpZ2hsaWdodGVkVGV4dCk7XG5cdH1cbn1cbiJdfQ==