text-marker
Version:
Simple text marker with custom styles
52 lines • 4.47 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: lib/text-marker.component.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Component, ViewChild, ElementRef, Input } from '@angular/core';
export class TextMarkerComponent {
constructor() { }
/**
* @param {?} value
* @return {?}
*/
set inputQuery(value) {
this.innerHtmlContent = this.originalContent;
this.innerHtmlContent = value ? this.innerHtmlContent && this.innerHtmlContent.replace(new RegExp(value, 'g'), `<span class="${this.styleClass}">${value}</span>`) : this.innerHtmlContent;
}
/**
* @return {?}
*/
ngOnInit() {
this.innerHtmlContent = this.originalContent = this.content ? this.content.nativeElement.textContent : '';
}
}
TextMarkerComponent.decorators = [
{ type: Component, args: [{
selector: 'jk-text-marker',
template: `
<div #content [hidden]="true">
<ng-content></ng-content>
</div>
<div [innerHTML]="innerHtmlContent"></div>
`
}] }
];
/** @nocollapse */
TextMarkerComponent.ctorParameters = () => [];
TextMarkerComponent.propDecorators = {
content: [{ type: ViewChild, args: ['content', null,] }],
styleClass: [{ type: Input }],
inputQuery: [{ type: Input }]
};
if (false) {
/** @type {?} */
TextMarkerComponent.prototype.content;
/** @type {?} */
TextMarkerComponent.prototype.styleClass;
/** @type {?} */
TextMarkerComponent.prototype.innerHtmlContent;
/** @type {?} */
TextMarkerComponent.prototype.originalContent;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1tYXJrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vdGV4dC1tYXJrZXIvIiwic291cmNlcyI6WyJsaWIvdGV4dC1tYXJrZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVloRixNQUFNLE9BQU8sbUJBQW1CO0lBYTVCLGdCQUFnQixDQUFDOzs7OztJQVRqQixJQUFhLFVBQVUsQ0FBQyxLQUFLO1FBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDO1FBQzdDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsRUFDekcsZ0JBQWdCLElBQUksQ0FBQyxVQUFVLEtBQUssS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQ3BGLENBQUM7Ozs7SUFPRCxRQUFRO1FBQ0osSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDOUcsQ0FBQzs7O1lBM0JKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsZ0JBQWdCO2dCQUMxQixRQUFRLEVBQUU7Ozs7O0dBS1g7YUFFRjs7Ozs7c0JBR0ksU0FBUyxTQUFDLFNBQVMsRUFBRSxJQUFJO3lCQUN6QixLQUFLO3lCQUNMLEtBQUs7Ozs7SUFGTixzQ0FBZ0Q7O0lBQ2hELHlDQUE0Qjs7SUFPNUIsK0NBQXlCOztJQUN6Qiw4Q0FBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgVmlld0NoaWxkLCBFbGVtZW50UmVmLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2prLXRleHQtbWFya2VyJyxcclxuICAgIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2ICNjb250ZW50IFtoaWRkZW5dPVwidHJ1ZVwiPlxyXG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBbaW5uZXJIVE1MXT1cImlubmVySHRtbENvbnRlbnRcIj48L2Rpdj5cclxuICBgLFxyXG4gICAgc3R5bGVzOiBbXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGV4dE1hcmtlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gICAgQFZpZXdDaGlsZCgnY29udGVudCcsIG51bGwpIGNvbnRlbnQ6IEVsZW1lbnRSZWY7XHJcbiAgICBASW5wdXQoKSBzdHlsZUNsYXNzOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBzZXQgaW5wdXRRdWVyeSh2YWx1ZSkge1xyXG4gICAgICAgIHRoaXMuaW5uZXJIdG1sQ29udGVudCA9IHRoaXMub3JpZ2luYWxDb250ZW50O1xyXG4gICAgICAgIHRoaXMuaW5uZXJIdG1sQ29udGVudCA9IHZhbHVlID8gdGhpcy5pbm5lckh0bWxDb250ZW50ICYmIHRoaXMuaW5uZXJIdG1sQ29udGVudC5yZXBsYWNlKG5ldyBSZWdFeHAodmFsdWUsICdnJyksXHJcbiAgICAgICAgICAgIGA8c3BhbiBjbGFzcz1cIiR7dGhpcy5zdHlsZUNsYXNzfVwiPiR7dmFsdWV9PC9zcGFuPmApIDogdGhpcy5pbm5lckh0bWxDb250ZW50O1xyXG4gICAgfVxyXG5cclxuICAgIGlubmVySHRtbENvbnRlbnQ6IHN0cmluZztcclxuICAgIG9yaWdpbmFsQ29udGVudDogc3RyaW5nO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgdGhpcy5pbm5lckh0bWxDb250ZW50ID0gdGhpcy5vcmlnaW5hbENvbnRlbnQgPSB0aGlzLmNvbnRlbnQgPyB0aGlzLmNvbnRlbnQubmF0aXZlRWxlbWVudC50ZXh0Q29udGVudCA6ICcnO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==