UNPKG

@microsoft/windows-admin-center-sdk

Version:

Microsoft - Windows Admin Center Shell

35 lines 4.74 kB
import { Pipe } from '@angular/core'; import * as i0 from "@angular/core"; /** * @smeDoc {@label HighlightPipe @id smeHighlight} * * @overview * @file {@filepath ./examples/highlight-overview.md} * * @example {@label Example enum Converter @id highlight-example } * @file {@filename component.html @filepath ./examples/highlight-example.component.html} * @file {@filename component.ts @filepath ./examples/highlight-example.component.ts} */ export class HighlightPipe { transform(attribute, search, highlightClass) { if (search === undefined || search === null || search === '' || attribute == null) { return attribute; } highlightClass = highlightClass || 'sme-highlight'; // escape regex control chars // *.exe searched literally instead of giving error for invalid regular expression const pattern = search.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, '\\$&'); // g is global modifier for all matches // i is case-insensitive modifier const regex = new RegExp(pattern, 'gi'); const text = attribute.toString(); return text.replace(regex, (match) => `<mark class="${highlightClass}">${match}</mark>`); } } /** @nocollapse */ HighlightPipe.ɵfac = function HighlightPipe_Factory(t) { return new (t || HighlightPipe)(); }; /** @nocollapse */ HighlightPipe.ɵpipe = /** @pureOrBreakMyCode */ i0.ɵɵdefinePipe({ name: "smeHighlight", type: HighlightPipe, pure: true }); (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(HighlightPipe, [{ type: Pipe, args: [{ name: 'smeHighlight' }] }], null, null); })(); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlnaGxpZ2h0LXBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9hbmd1bGFyL3NyYy9waXBlcy9oaWdobGlnaHQtcGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7QUFFcEQ7Ozs7Ozs7OztHQVNHO0FBRUgsTUFBTSxPQUFPLGFBQWE7SUFDakIsU0FBUyxDQUFDLFNBQVMsRUFBRSxNQUFjLEVBQUUsY0FBdUI7UUFDakUsSUFBSSxNQUFNLEtBQUssU0FBUyxJQUFJLE1BQU0sS0FBSyxJQUFJLElBQUksTUFBTSxLQUFLLEVBQUUsSUFBSSxTQUFTLElBQUksSUFBSSxFQUFFO1lBQ2pGLE9BQU8sU0FBUyxDQUFDO1NBQ2xCO1FBRUQsY0FBYyxHQUFHLGNBQWMsSUFBSSxlQUFlLENBQUM7UUFFbkQsNkJBQTZCO1FBQzdCLGtGQUFrRjtRQUNsRixNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLHFDQUFxQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRTlFLHVDQUF1QztRQUN2QyxpQ0FBaUM7UUFDakMsTUFBTSxLQUFLLEdBQUcsSUFBSSxNQUFNLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRXhDLE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNsQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxnQkFBZ0IsY0FBYyxLQUFLLEtBQUssU0FBUyxDQUFDLENBQUM7SUFDM0YsQ0FBQzs7NkZBbEJVLGFBQWE7aUhBQWIsYUFBYTt1RkFBYixhQUFhO2NBRHpCLElBQUk7ZUFBQyxFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG4vKipcclxuICogQHNtZURvYyB7QGxhYmVsIEhpZ2hsaWdodFBpcGUgQGlkIHNtZUhpZ2hsaWdodH1cclxuICpcclxuICogQG92ZXJ2aWV3XHJcbiAqIEBmaWxlIHtAZmlsZXBhdGggLi9leGFtcGxlcy9oaWdobGlnaHQtb3ZlcnZpZXcubWR9XHJcbiAqXHJcbiAqIEBleGFtcGxlIHtAbGFiZWwgRXhhbXBsZSBlbnVtIENvbnZlcnRlciBAaWQgaGlnaGxpZ2h0LWV4YW1wbGUgfVxyXG4gKiBAZmlsZSB7QGZpbGVuYW1lIGNvbXBvbmVudC5odG1sIEBmaWxlcGF0aCAuL2V4YW1wbGVzL2hpZ2hsaWdodC1leGFtcGxlLmNvbXBvbmVudC5odG1sfVxyXG4gKiBAZmlsZSB7QGZpbGVuYW1lIGNvbXBvbmVudC50cyBAZmlsZXBhdGggLi9leGFtcGxlcy9oaWdobGlnaHQtZXhhbXBsZS5jb21wb25lbnQudHN9XHJcbiAqL1xyXG5AUGlwZSh7IG5hbWU6ICdzbWVIaWdobGlnaHQnIH0pXHJcbmV4cG9ydCBjbGFzcyBIaWdobGlnaHRQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcbiAgcHVibGljIHRyYW5zZm9ybShhdHRyaWJ1dGUsIHNlYXJjaDogc3RyaW5nLCBoaWdobGlnaHRDbGFzcz86IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBpZiAoc2VhcmNoID09PSB1bmRlZmluZWQgfHwgc2VhcmNoID09PSBudWxsIHx8IHNlYXJjaCA9PT0gJycgfHwgYXR0cmlidXRlID09IG51bGwpIHtcclxuICAgICAgcmV0dXJuIGF0dHJpYnV0ZTtcclxuICAgIH1cclxuXHJcbiAgICBoaWdobGlnaHRDbGFzcyA9IGhpZ2hsaWdodENsYXNzIHx8ICdzbWUtaGlnaGxpZ2h0JztcclxuXHJcbiAgICAvLyBlc2NhcGUgcmVnZXggY29udHJvbCBjaGFyc1xyXG4gICAgLy8gKi5leGUgc2VhcmNoZWQgbGl0ZXJhbGx5IGluc3RlYWQgb2YgZ2l2aW5nIGVycm9yIGZvciBpbnZhbGlkIHJlZ3VsYXIgZXhwcmVzc2lvblxyXG4gICAgY29uc3QgcGF0dGVybiA9IHNlYXJjaC5yZXBsYWNlKC9bXFwtXFxbXFxdXFwvXFx7XFx9XFwoXFwpXFwqXFwrXFw/XFwuXFxcXFxcXlxcJFxcfF0vZywgJ1xcXFwkJicpO1xyXG5cclxuICAgIC8vIGcgaXMgZ2xvYmFsIG1vZGlmaWVyIGZvciBhbGwgbWF0Y2hlc1xyXG4gICAgLy8gaSBpcyBjYXNlLWluc2Vuc2l0aXZlIG1vZGlmaWVyXHJcbiAgICBjb25zdCByZWdleCA9IG5ldyBSZWdFeHAocGF0dGVybiwgJ2dpJyk7XHJcblxyXG4gICAgY29uc3QgdGV4dCA9IGF0dHJpYnV0ZS50b1N0cmluZygpO1xyXG4gICAgcmV0dXJuIHRleHQucmVwbGFjZShyZWdleCwgKG1hdGNoKSA9PiBgPG1hcmsgY2xhc3M9XCIke2hpZ2hsaWdodENsYXNzfVwiPiR7bWF0Y2h9PC9tYXJrPmApO1xyXG4gIH1cclxufVxyXG4iXX0=