air-lib
Version:
This is Air's angular component library
59 lines • 5.14 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Pipe } from '@angular/core';
import { escapeRegexp } from './common';
var HighlightPipe = /** @class */ (function () {
function HighlightPipe() {
}
/**
* @param {?} value
* @param {?} query
* @return {?}
*/
HighlightPipe.prototype.transform = /**
* @param {?} value
* @param {?} query
* @return {?}
*/
function (value, query) {
if (query.length < 1) {
return value;
}
if (query) {
/** @type {?} */
var tagRE = new RegExp('<[^<>]*>', 'ig');
// get ist of tags
/** @type {?} */
var tagList = value.match(tagRE);
// Replace tags with token
/** @type {?} */
var tmpValue = value.replace(tagRE, '$!$');
// Replace search words
value = tmpValue.replace(new RegExp(escapeRegexp(query), 'gi'), '<strong>$&</strong>');
// Reinsert HTML
for (var i = 0; value.indexOf('$!$') > -1; i++) {
value = value.replace('$!$', tagList != null ? tagList[i] : '');
}
}
return value;
};
HighlightPipe.decorators = [
{ type: Pipe, args: [{ name: 'highlight' },] }
];
return HighlightPipe;
}());
export { HighlightPipe };
/**
* @param {?} input
* @return {?}
*/
export function stripTags(input) {
/** @type {?} */
var tags = /<\/?([a-z][a-z0-9]*)\b[^>]*>/gi;
/** @type {?} */
var commentsAndPhpTags = /<!--[\s\S]*?-->|<\?(?:php)?[\s\S]*?\/gi;
return input.replace(commentsAndPhpTags, '').replace(tags, '');
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LXBpcGVzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vYWlyLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL25nMi1zZWxlY3QtY3VzdG9tL3NlbGVjdC9zZWxlY3QtcGlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFeEM7SUFBQTtJQXVCQSxDQUFDOzs7Ozs7SUFyQlEsaUNBQVM7Ozs7O0lBQWhCLFVBQWlCLEtBQWEsRUFBRSxLQUFhO1FBQzNDLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDcEIsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUVELElBQUssS0FBSyxFQUFHOztnQkFDSCxLQUFLLEdBQU0sSUFBSSxNQUFNLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQzs7O2dCQUV2QyxPQUFPLEdBQUksS0FBSyxDQUFDLEtBQUssQ0FBRSxLQUFLLENBQUU7OztnQkFFL0IsUUFBUSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQztZQUM3Qyx1QkFBdUI7WUFDdkIsS0FBSyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksQ0FBQyxFQUFFLHFCQUFxQixDQUFDLENBQUM7WUFDdkYsZ0JBQWdCO1lBQ2hCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQzlDLEtBQUssR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxPQUFPLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2FBQ2pFO1NBQ0o7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7O2dCQXJCRixJQUFJLFNBQUMsRUFBQyxJQUFJLEVBQUUsV0FBVyxFQUFDOztJQXVCekIsb0JBQUM7Q0FBQSxBQXZCRCxJQXVCQztTQXRCWSxhQUFhOzs7OztBQXdCMUIsTUFBTSxvQkFBb0IsS0FBWTs7UUFDaEMsSUFBSSxHQUFHLGdDQUFnQzs7UUFDdkMsa0JBQWtCLEdBQUcsMENBQTBDO0lBQ25FLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ2pFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGVzY2FwZVJlZ2V4cCB9IGZyb20gJy4vY29tbW9uJztcclxuXHJcbkBQaXBlKHtuYW1lOiAnaGlnaGxpZ2h0J30pXHJcbmV4cG9ydCBjbGFzcyBIaWdobGlnaHRQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcbiAgcHVibGljIHRyYW5zZm9ybSh2YWx1ZTogc3RyaW5nLCBxdWVyeTogc3RyaW5nKTogYW55IHtcclxuICAgIGlmIChxdWVyeS5sZW5ndGggPCAxKSB7XHJcbiAgICAgIHJldHVybiB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIHF1ZXJ5ICkge1xyXG4gICAgICAgIGNvbnN0IHRhZ1JFICAgID0gbmV3IFJlZ0V4cCgnPFtePD5dKj4nLCAnaWcnKTtcclxuICAgICAgICAvLyBnZXQgaXN0IG9mIHRhZ3NcclxuICAgICAgICBjb25zdCB0YWdMaXN0ICA9IHZhbHVlLm1hdGNoKCB0YWdSRSApO1xyXG4gICAgICAgIC8vIFJlcGxhY2UgdGFncyB3aXRoIHRva2VuXHJcbiAgICAgICAgY29uc3QgdG1wVmFsdWUgPSB2YWx1ZS5yZXBsYWNlKCB0YWdSRSwgJyQhJCcpO1xyXG4gICAgICAgIC8vIFJlcGxhY2Ugc2VhcmNoIHdvcmRzXHJcbiAgICAgICAgdmFsdWUgPSB0bXBWYWx1ZS5yZXBsYWNlKG5ldyBSZWdFeHAoZXNjYXBlUmVnZXhwKHF1ZXJ5KSwgJ2dpJyksICc8c3Ryb25nPiQmPC9zdHJvbmc+Jyk7XHJcbiAgICAgICAgLy8gUmVpbnNlcnQgSFRNTFxyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyB2YWx1ZS5pbmRleE9mKCckISQnKSA+IC0xOyBpKyspIHtcclxuICAgICAgICAgIHZhbHVlID0gdmFsdWUucmVwbGFjZSgnJCEkJywgdGFnTGlzdCAhPSBudWxsID8gdGFnTGlzdFtpXSA6ICcnKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdmFsdWU7XHJcbiAgfVxyXG5cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHN0cmlwVGFncyhpbnB1dDpzdHJpbmcpOnN0cmluZyB7XHJcbiAgbGV0IHRhZ3MgPSAvPFxcLz8oW2Etel1bYS16MC05XSopXFxiW14+XSo+L2dpO1xyXG4gIGxldCBjb21tZW50c0FuZFBocFRhZ3MgPSAvPCEtLVtcXHNcXFNdKj8tLT58PFxcPyg/OnBocCk/W1xcc1xcU10qP1xcPz4vZ2k7XHJcbiAgcmV0dXJuIGlucHV0LnJlcGxhY2UoY29tbWVudHNBbmRQaHBUYWdzLCAnJykucmVwbGFjZSh0YWdzLCAnJyk7XHJcbn1cclxuIl19