UNPKG

@asi-ngtools/lib

Version:

This project is a little components library, simple to use, which will help you to simplify your project.

47 lines (46 loc) 4.82 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ import { Pipe } from '@angular/core'; import { isEmpty } from '../native-helper'; export class AsiHighlighPipe { constructor() { } /** * @param {?} text * @param {?} toHighlight * @return {?} */ transform(text, toHighlight) { if (!isEmpty(text) && !isEmpty(toHighlight)) { /** @type {?} */ let pos = 0; /** @type {?} */ let debut = 0; /** @type {?} */ const rechercheNormalisee = toHighlight.normalize('NFD').replace(/[\u0300-\u036f]/g, '').toLocaleLowerCase(); /** @type {?} */ const outputNormalise = text.normalize('NFD').replace(/[\u0300-\u036f]/g, '').toLocaleLowerCase(); /** @type {?} */ let highlightedOutput = ''; while (pos !== -1) { pos = outputNormalise.indexOf(rechercheNormalisee, debut); if (pos !== -1) { highlightedOutput += text.slice(debut, pos) + '<span class="highlight">' + text.slice(pos, pos + toHighlight.length) + '</span>'; debut = pos + rechercheNormalisee.length; } } highlightedOutput += text.slice(debut); text = highlightedOutput; } return text; } } AsiHighlighPipe.decorators = [ { type: Pipe, args: [{ name: 'asiHighligh' },] } ]; /** @nocollapse */ AsiHighlighPipe.ctorParameters = () => []; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNpLWhpZ2hsaWdodC5waXBlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFzaS1uZ3Rvb2xzL2xpYi8iLCJzb3VyY2VzIjpbImxpYi9waXBlcy9hc2ktaGlnaGxpZ2h0LnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUczQyxNQUFNO0lBQ0o7S0FDQzs7Ozs7O0lBQ0QsU0FBUyxDQUFDLElBQVksRUFBRSxXQUFtQjtRQUN6QyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7O1lBQzVDLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQzs7WUFDWixJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7O1lBR2QsTUFBTSxtQkFBbUIsR0FBRyxXQUFXLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLENBQUMsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDOztZQUM3RyxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLENBQUMsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDOztZQUVsRyxJQUFJLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztZQUMzQixPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUNsQixHQUFHLEdBQUcsZUFBZSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDMUQsRUFBRSxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDZixpQkFBaUIsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUM7d0JBQ3pDLDBCQUEwQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLEdBQUcsR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDLEdBQUcsU0FBUyxDQUFDO29CQUNyRixLQUFLLEdBQUcsR0FBRyxHQUFHLG1CQUFtQixDQUFDLE1BQU0sQ0FBQztpQkFDMUM7YUFDRjtZQUNELGlCQUFpQixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdkMsSUFBSSxHQUFHLGlCQUFpQixDQUFDO1NBQzFCO1FBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQztLQUNiOzs7WUExQkYsSUFBSSxTQUFDLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGlzRW1wdHkgfSBmcm9tICcuLi9uYXRpdmUtaGVscGVyJztcblxuQFBpcGUoeyBuYW1lOiAnYXNpSGlnaGxpZ2gnIH0pXG5leHBvcnQgY2xhc3MgQXNpSGlnaGxpZ2hQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICB9XG4gIHRyYW5zZm9ybSh0ZXh0OiBzdHJpbmcsIHRvSGlnaGxpZ2h0OiBzdHJpbmcpIHtcbiAgICBpZiAoIWlzRW1wdHkodGV4dCkgJiYgIWlzRW1wdHkodG9IaWdobGlnaHQpKSB7XG4gICAgICBsZXQgcG9zID0gMDtcbiAgICAgIGxldCBkZWJ1dCA9IDA7XG5cbiAgICAgIC8vIGxvd2VyIGNhc2UgYW5kIG5vcm1hbGl6ZVxuICAgICAgY29uc3QgcmVjaGVyY2hlTm9ybWFsaXNlZSA9IHRvSGlnaGxpZ2h0Lm5vcm1hbGl6ZSgnTkZEJykucmVwbGFjZSgvW1xcdTAzMDAtXFx1MDM2Zl0vZywgJycpLnRvTG9jYWxlTG93ZXJDYXNlKCk7XG4gICAgICBjb25zdCBvdXRwdXROb3JtYWxpc2UgPSB0ZXh0Lm5vcm1hbGl6ZSgnTkZEJykucmVwbGFjZSgvW1xcdTAzMDAtXFx1MDM2Zl0vZywgJycpLnRvTG9jYWxlTG93ZXJDYXNlKCk7XG5cbiAgICAgIGxldCBoaWdobGlnaHRlZE91dHB1dCA9ICcnO1xuICAgICAgd2hpbGUgKHBvcyAhPT0gLTEpIHtcbiAgICAgICAgcG9zID0gb3V0cHV0Tm9ybWFsaXNlLmluZGV4T2YocmVjaGVyY2hlTm9ybWFsaXNlZSwgZGVidXQpO1xuICAgICAgICBpZiAocG9zICE9PSAtMSkge1xuICAgICAgICAgIGhpZ2hsaWdodGVkT3V0cHV0ICs9IHRleHQuc2xpY2UoZGVidXQsIHBvcykgK1xuICAgICAgICAgICAgJzxzcGFuIGNsYXNzPVwiaGlnaGxpZ2h0XCI+JyArIHRleHQuc2xpY2UocG9zLCBwb3MgKyB0b0hpZ2hsaWdodC5sZW5ndGgpICsgJzwvc3Bhbj4nO1xuICAgICAgICAgIGRlYnV0ID0gcG9zICsgcmVjaGVyY2hlTm9ybWFsaXNlZS5sZW5ndGg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGhpZ2hsaWdodGVkT3V0cHV0ICs9IHRleHQuc2xpY2UoZGVidXQpO1xuICAgICAgdGV4dCA9IGhpZ2hsaWdodGVkT3V0cHV0O1xuICAgIH1cbiAgICByZXR1cm4gdGV4dDtcbiAgfVxufVxuIl19