UNPKG

@angular-generic-table/core

Version:
77 lines (76 loc) 6.79 kB
/** * @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==