UNPKG

ng-zorro-antd

Version:

An enterprise-class UI components based on Ant Design and Angular

77 lines (71 loc) 2.74 kB
import { Pipe, NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; /** * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE */ // Regular Expressions for parsing tags and attributes const SURROGATE_PAIR_REGEXP = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g; // ! to ~ is the ASCII range. const NON_ALPHANUMERIC_REGEXP = /([^\#-~ |!])/g; /** * Escapes all potentially dangerous characters, so that the * resulting string can be safely inserted into attribute or * element text. */ function encodeEntities(value) { return value .replace(/&/g, '&amp;') .replace(SURROGATE_PAIR_REGEXP, (match) => { const hi = match.charCodeAt(0); const low = match.charCodeAt(1); return `&#${(hi - 0xd800) * 0x400 + (low - 0xdc00) + 0x10000};`; }) .replace(NON_ALPHANUMERIC_REGEXP, (match) => `&#${match.charCodeAt(0)};`) .replace(/</g, '&lt;') .replace(/>/g, '&gt;'); } class NzHighlightPipe { constructor() { this.UNIQUE_WRAPPERS = ['##==-open_tag-==##', '##==-close_tag-==##']; } transform(value, highlightValue, flags, klass) { if (!highlightValue) { return value; } // Escapes regex keyword to interpret these characters literally const searchValue = new RegExp(highlightValue.replace(/([.*+?^=!:${}()|[\]\/\\])/g, '\\$&'), flags); const wrapValue = value.replace(searchValue, `${this.UNIQUE_WRAPPERS[0]}$&${this.UNIQUE_WRAPPERS[1]}`); return encodeEntities(wrapValue) .replace(new RegExp(this.UNIQUE_WRAPPERS[0], 'g'), klass ? `<span class="${klass}">` : '<span>') .replace(new RegExp(this.UNIQUE_WRAPPERS[1], 'g'), '</span>'); } } NzHighlightPipe.decorators = [ { type: Pipe, args: [{ name: 'nzHighlight', pure: true },] } ]; /** * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE */ class NzHighlightModule { } NzHighlightModule.decorators = [ { type: NgModule, args: [{ imports: [CommonModule], exports: [NzHighlightPipe], declarations: [NzHighlightPipe] },] } ]; /** * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE */ /** * Generated bundle index. Do not edit. */ export { NzHighlightModule, NzHighlightPipe }; //# sourceMappingURL=ng-zorro-antd-core-highlight.js.map