UNPKG

design-angular-kit

Version:

Un toolkit Angular conforme alle linee guida di design per i servizi web della PA

48 lines 5.99 kB
import { Pipe } from '@angular/core'; import * as i0 from "@angular/core"; import * as i1 from "@angular/platform-browser"; /** * Allows you to highlight text with the <mark> tag */ export class ItMarkMatchingTextPipe { constructor(domSanitizer) { this.domSanitizer = domSanitizer; } /** * Allows you to highlight text with the <mark> tag * @param allString the full text to search from * @param searchString the string to search */ transform(allString, searchString) { if (!searchString) { return allString; } else if (!allString) { return ''; } if (typeof searchString === 'number') { searchString = searchString.toString(); } // Check if search string is a substring of pivot string (no case-sensitive) const idxOfMatchString = allString.toLowerCase().indexOf(searchString.toLowerCase()); if (idxOfMatchString !== -1) { // retrieve the exactly substring const matchingString = allString.substring(idxOfMatchString, idxOfMatchString + searchString.length); // Replace original string marking as <strong> (bold) the matchinng substring const regEx = new RegExp('(' + matchingString + ')', 'gi'); const res = allString.replace(regEx, '<mark>$1</mark>'); return this.domSanitizer.bypassSecurityTrustHtml(res); } return allString; } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: ItMarkMatchingTextPipe, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe }); } static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.0.6", ngImport: i0, type: ItMarkMatchingTextPipe, isStandalone: true, name: "itMarkMatchingText" }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: ItMarkMatchingTextPipe, decorators: [{ type: Pipe, args: [{ standalone: true, name: 'itMarkMatchingText', }] }], ctorParameters: () => [{ type: i1.DomSanitizer }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFyay1tYXRjaGluZy10ZXh0LnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tYW5ndWxhci1raXQvc3JjL2xpYi9waXBlcy9tYXJrLW1hdGNoaW5nLXRleHQucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7O0FBR3BEOztHQUVHO0FBS0gsTUFBTSxPQUFPLHNCQUFzQjtJQUNqQyxZQUE2QixZQUEwQjtRQUExQixpQkFBWSxHQUFaLFlBQVksQ0FBYztJQUFHLENBQUM7SUFFM0Q7Ozs7T0FJRztJQUNILFNBQVMsQ0FBQyxTQUE2QixFQUFFLFlBQWdEO1FBQ3ZGLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNsQixPQUFPLFNBQVMsQ0FBQztRQUNuQixDQUFDO2FBQU0sSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3RCLE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztRQUVELElBQUksT0FBTyxZQUFZLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDckMsWUFBWSxHQUFHLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN6QyxDQUFDO1FBRUQsNEVBQTRFO1FBQzVFLE1BQU0sZ0JBQWdCLEdBQUcsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUNyRixJQUFJLGdCQUFnQixLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDNUIsaUNBQWlDO1lBQ2pDLE1BQU0sY0FBYyxHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLEVBQUUsZ0JBQWdCLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3JHLDZFQUE2RTtZQUM3RSxNQUFNLEtBQUssR0FBRyxJQUFJLE1BQU0sQ0FBQyxHQUFHLEdBQUcsY0FBYyxHQUFHLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUMzRCxNQUFNLEdBQUcsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1lBQ3hELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN4RCxDQUFDO1FBRUQsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQzs4R0EvQlUsc0JBQXNCOzRHQUF0QixzQkFBc0I7OzJGQUF0QixzQkFBc0I7a0JBSmxDLElBQUk7bUJBQUM7b0JBQ0osVUFBVSxFQUFFLElBQUk7b0JBQ2hCLElBQUksRUFBRSxvQkFBb0I7aUJBQzNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlSHRtbCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuXG4vKipcbiAqIEFsbG93cyB5b3UgdG8gaGlnaGxpZ2h0IHRleHQgd2l0aCB0aGUgPG1hcms+IHRhZ1xuICovXG5AUGlwZSh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIG5hbWU6ICdpdE1hcmtNYXRjaGluZ1RleHQnLFxufSlcbmV4cG9ydCBjbGFzcyBJdE1hcmtNYXRjaGluZ1RleHRQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZG9tU2FuaXRpemVyOiBEb21TYW5pdGl6ZXIpIHt9XG5cbiAgLyoqXG4gICAqIEFsbG93cyB5b3UgdG8gaGlnaGxpZ2h0IHRleHQgd2l0aCB0aGUgPG1hcms+IHRhZ1xuICAgKiBAcGFyYW0gYWxsU3RyaW5nIHRoZSBmdWxsIHRleHQgdG8gc2VhcmNoIGZyb21cbiAgICogQHBhcmFtIHNlYXJjaFN0cmluZyB0aGUgc3RyaW5nIHRvIHNlYXJjaFxuICAgKi9cbiAgdHJhbnNmb3JtKGFsbFN0cmluZzogc3RyaW5nIHwgdW5kZWZpbmVkLCBzZWFyY2hTdHJpbmc6IHN0cmluZyB8IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQpOiBTYWZlSHRtbCB8IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCFzZWFyY2hTdHJpbmcpIHtcbiAgICAgIHJldHVybiBhbGxTdHJpbmc7XG4gICAgfSBlbHNlIGlmICghYWxsU3RyaW5nKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBzZWFyY2hTdHJpbmcgPT09ICdudW1iZXInKSB7XG4gICAgICBzZWFyY2hTdHJpbmcgPSBzZWFyY2hTdHJpbmcudG9TdHJpbmcoKTtcbiAgICB9XG5cbiAgICAvLyBDaGVjayBpZiBzZWFyY2ggc3RyaW5nIGlzIGEgc3Vic3RyaW5nIG9mIHBpdm90IHN0cmluZyAobm8gY2FzZS1zZW5zaXRpdmUpXG4gICAgY29uc3QgaWR4T2ZNYXRjaFN0cmluZyA9IGFsbFN0cmluZy50b0xvd2VyQ2FzZSgpLmluZGV4T2Yoc2VhcmNoU3RyaW5nLnRvTG93ZXJDYXNlKCkpO1xuICAgIGlmIChpZHhPZk1hdGNoU3RyaW5nICE9PSAtMSkge1xuICAgICAgLy8gcmV0cmlldmUgdGhlIGV4YWN0bHkgc3Vic3RyaW5nXG4gICAgICBjb25zdCBtYXRjaGluZ1N0cmluZyA9IGFsbFN0cmluZy5zdWJzdHJpbmcoaWR4T2ZNYXRjaFN0cmluZywgaWR4T2ZNYXRjaFN0cmluZyArIHNlYXJjaFN0cmluZy5sZW5ndGgpO1xuICAgICAgLy8gUmVwbGFjZSBvcmlnaW5hbCBzdHJpbmcgbWFya2luZyBhcyA8c3Ryb25nPiAoYm9sZCkgdGhlIG1hdGNoaW5uZyBzdWJzdHJpbmdcbiAgICAgIGNvbnN0IHJlZ0V4ID0gbmV3IFJlZ0V4cCgnKCcgKyBtYXRjaGluZ1N0cmluZyArICcpJywgJ2dpJyk7XG4gICAgICBjb25zdCByZXMgPSBhbGxTdHJpbmcucmVwbGFjZShyZWdFeCwgJzxtYXJrPiQxPC9tYXJrPicpO1xuICAgICAgcmV0dXJuIHRoaXMuZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKHJlcyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGFsbFN0cmluZztcbiAgfVxufVxuIl19