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