design-angular-kit
Version:
Un toolkit Angular conforme alle linee guida di design per i servizi web della PA
48 lines • 5.99 kB
JavaScript
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