@microsoft/windows-admin-center-sdk
Version:
Microsoft - Windows Admin Center Shell
35 lines • 4.74 kB
JavaScript
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=