@asi-ngtools/lib
Version:
This project is a little components library, simple to use, which will help you to simplify your project.
54 lines (53 loc) • 5.1 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
import { Pipe } from '@angular/core';
import { isEmpty } from '../native-helper';
var AsiHighlighPipe = /** @class */ (function () {
function AsiHighlighPipe() {
}
/**
* @param {?} text
* @param {?} toHighlight
* @return {?}
*/
AsiHighlighPipe.prototype.transform = /**
* @param {?} text
* @param {?} toHighlight
* @return {?}
*/
function (text, toHighlight) {
if (!isEmpty(text) && !isEmpty(toHighlight)) {
/** @type {?} */
var pos = 0;
/** @type {?} */
var debut = 0;
/** @type {?} */
var rechercheNormalisee = toHighlight.normalize('NFD').replace(/[\u0300-\u036f]/g, '').toLocaleLowerCase();
/** @type {?} */
var outputNormalise = text.normalize('NFD').replace(/[\u0300-\u036f]/g, '').toLocaleLowerCase();
/** @type {?} */
var 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 = function () { return []; };
return AsiHighlighPipe;
}());
export { AsiHighlighPipe };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNpLWhpZ2hsaWdodC5waXBlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFzaS1uZ3Rvb2xzL2xpYi8iLCJzb3VyY2VzIjpbImxpYi9waXBlcy9hc2ktaGlnaGxpZ2h0LnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7SUFJekM7S0FDQzs7Ozs7O0lBQ0QsbUNBQVM7Ozs7O0lBQVQsVUFBVSxJQUFZLEVBQUUsV0FBbUI7UUFDekMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDOztZQUM1QyxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUM7O1lBQ1osSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDOztZQUdkLElBQU0sbUJBQW1CLEdBQUcsV0FBVyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxDQUFDLENBQUMsaUJBQWlCLEVBQUUsQ0FBQzs7WUFDN0csSUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxDQUFDLENBQUMsaUJBQWlCLEVBQUUsQ0FBQzs7WUFFbEcsSUFBSSxpQkFBaUIsR0FBRyxFQUFFLENBQUM7WUFDM0IsT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDbEIsR0FBRyxHQUFHLGVBQWUsQ0FBQyxPQUFPLENBQUMsbUJBQW1CLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBQzFELEVBQUUsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ2YsaUJBQWlCLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDO3dCQUN6QywwQkFBMEIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxHQUFHLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxHQUFHLFNBQVMsQ0FBQztvQkFDckYsS0FBSyxHQUFHLEdBQUcsR0FBRyxtQkFBbUIsQ0FBQyxNQUFNLENBQUM7aUJBQzFDO2FBQ0Y7WUFDRCxpQkFBaUIsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3ZDLElBQUksR0FBRyxpQkFBaUIsQ0FBQztTQUMxQjtRQUNELE1BQU0sQ0FBQyxJQUFJLENBQUM7S0FDYjs7Z0JBMUJGLElBQUksU0FBQyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUU7Ozs7MEJBSDdCOztTQUlhLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpc0VtcHR5IH0gZnJvbSAnLi4vbmF0aXZlLWhlbHBlcic7XG5cbkBQaXBlKHsgbmFtZTogJ2FzaUhpZ2hsaWdoJyB9KVxuZXhwb3J0IGNsYXNzIEFzaUhpZ2hsaWdoUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgfVxuICB0cmFuc2Zvcm0odGV4dDogc3RyaW5nLCB0b0hpZ2hsaWdodDogc3RyaW5nKSB7XG4gICAgaWYgKCFpc0VtcHR5KHRleHQpICYmICFpc0VtcHR5KHRvSGlnaGxpZ2h0KSkge1xuICAgICAgbGV0IHBvcyA9IDA7XG4gICAgICBsZXQgZGVidXQgPSAwO1xuXG4gICAgICAvLyBsb3dlciBjYXNlIGFuZCBub3JtYWxpemVcbiAgICAgIGNvbnN0IHJlY2hlcmNoZU5vcm1hbGlzZWUgPSB0b0hpZ2hsaWdodC5ub3JtYWxpemUoJ05GRCcpLnJlcGxhY2UoL1tcXHUwMzAwLVxcdTAzNmZdL2csICcnKS50b0xvY2FsZUxvd2VyQ2FzZSgpO1xuICAgICAgY29uc3Qgb3V0cHV0Tm9ybWFsaXNlID0gdGV4dC5ub3JtYWxpemUoJ05GRCcpLnJlcGxhY2UoL1tcXHUwMzAwLVxcdTAzNmZdL2csICcnKS50b0xvY2FsZUxvd2VyQ2FzZSgpO1xuXG4gICAgICBsZXQgaGlnaGxpZ2h0ZWRPdXRwdXQgPSAnJztcbiAgICAgIHdoaWxlIChwb3MgIT09IC0xKSB7XG4gICAgICAgIHBvcyA9IG91dHB1dE5vcm1hbGlzZS5pbmRleE9mKHJlY2hlcmNoZU5vcm1hbGlzZWUsIGRlYnV0KTtcbiAgICAgICAgaWYgKHBvcyAhPT0gLTEpIHtcbiAgICAgICAgICBoaWdobGlnaHRlZE91dHB1dCArPSB0ZXh0LnNsaWNlKGRlYnV0LCBwb3MpICtcbiAgICAgICAgICAgICc8c3BhbiBjbGFzcz1cImhpZ2hsaWdodFwiPicgKyB0ZXh0LnNsaWNlKHBvcywgcG9zICsgdG9IaWdobGlnaHQubGVuZ3RoKSArICc8L3NwYW4+JztcbiAgICAgICAgICBkZWJ1dCA9IHBvcyArIHJlY2hlcmNoZU5vcm1hbGlzZWUubGVuZ3RoO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBoaWdobGlnaHRlZE91dHB1dCArPSB0ZXh0LnNsaWNlKGRlYnV0KTtcbiAgICAgIHRleHQgPSBoaWdobGlnaHRlZE91dHB1dDtcbiAgICB9XG4gICAgcmV0dXJuIHRleHQ7XG4gIH1cbn1cbiJdfQ==