@duoduo-oba/ng-devui
Version:
DevUI components based on Angular
70 lines • 5.02 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: highlight.component.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { ChangeDetectionStrategy, Component, Input, HostBinding } from '@angular/core';
export class HighlightComponent {
constructor() {
this.display = 'inline';
}
/**
* @return {?}
*/
get htmlContent() { return this.highlightHtml; }
/**
* @param {?} changes
* @return {?}
*/
ngOnChanges(changes) {
this.highlightHtml = this.transform(this.value, this.term);
}
/**
* @param {?} value
* @param {?} term
* @return {?}
*/
transform(value, term) {
return value && term ? this.highlight(value, term) : value;
}
/**
* @param {?} value
* @param {?} term
* @return {?}
*/
highlight(value, term) {
/** @type {?} */
const regExp = new RegExp(term.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&'), 'gi');
return value.replace(regExp, (/**
* @param {?} match
* @return {?}
*/
function (match) {
return `<b class="re-highlight">${match}</b>`;
}));
}
}
HighlightComponent.decorators = [
{ type: Component, args: [{
selector: 'd-highlight',
template: ``,
changeDetection: ChangeDetectionStrategy.OnPush
}] }
];
HighlightComponent.propDecorators = {
htmlContent: [{ type: HostBinding, args: ['innerHTML',] }],
display: [{ type: HostBinding, args: ['style.display',] }],
value: [{ type: Input }],
term: [{ type: Input }]
};
if (false) {
/** @type {?} */
HighlightComponent.prototype.display;
/** @type {?} */
HighlightComponent.prototype.value;
/** @type {?} */
HighlightComponent.prototype.term;
/** @type {?} */
HighlightComponent.prototype.highlightHtml;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlnaGxpZ2h0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25nLWRldnVpL2F1dG8tY29tcGxldGUvIiwic291cmNlcyI6WyJoaWdobGlnaHQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQTRCLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU9qSCxNQUFNLE9BQU8sa0JBQWtCO0lBTC9CO1FBT2dDLFlBQU8sR0FBRyxRQUFRLENBQUM7SUFtQm5ELENBQUM7Ozs7SUFwQkMsSUFBOEIsV0FBVyxLQUFLLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7Ozs7O0lBTTFFLFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0QsQ0FBQzs7Ozs7O0lBRUQsU0FBUyxDQUFDLEtBQWEsRUFBRSxJQUFZO1FBQ25DLE9BQU8sS0FBSyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUM3RCxDQUFDOzs7Ozs7SUFFRCxTQUFTLENBQUMsS0FBYSxFQUFFLElBQVk7O2NBQzdCLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLDBCQUEwQixFQUFFLE1BQU0sQ0FBQyxFQUFFLElBQUksQ0FBQztRQUNqRixPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTTs7OztRQUFFLFVBQVUsS0FBSztZQUMxQyxPQUFPLDJCQUEyQixLQUFLLE1BQU0sQ0FBQztRQUNoRCxDQUFDLEVBQUMsQ0FBQztJQUNMLENBQUM7OztZQXpCRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGFBQWE7Z0JBQ3ZCLFFBQVEsRUFBRSxFQUFFO2dCQUNaLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2FBQ2hEOzs7MEJBRUUsV0FBVyxTQUFDLFdBQVc7c0JBQ3ZCLFdBQVcsU0FBQyxlQUFlO29CQUMzQixLQUFLO21CQUNMLEtBQUs7Ozs7SUFGTixxQ0FBaUQ7O0lBQ2pELG1DQUF1Qjs7SUFDdkIsa0NBQXNCOztJQUN0QiwyQ0FBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzLCBIb3N0QmluZGluZyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdkLWhpZ2hsaWdodCcsXHJcbiAgdGVtcGxhdGU6IGBgLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBIaWdobGlnaHRDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xyXG4gIEBIb3N0QmluZGluZygnaW5uZXJIVE1MJykgZ2V0IGh0bWxDb250ZW50KCkgeyByZXR1cm4gdGhpcy5oaWdobGlnaHRIdG1sOyB9XHJcbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS5kaXNwbGF5JykgZGlzcGxheSA9ICdpbmxpbmUnO1xyXG4gIEBJbnB1dCgpIHZhbHVlOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgdGVybTogc3RyaW5nO1xyXG4gIGhpZ2hsaWdodEh0bWw6IHN0cmluZztcclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgdGhpcy5oaWdobGlnaHRIdG1sID0gdGhpcy50cmFuc2Zvcm0odGhpcy52YWx1ZSwgdGhpcy50ZXJtKTtcclxuICB9XHJcblxyXG4gIHRyYW5zZm9ybSh2YWx1ZTogc3RyaW5nLCB0ZXJtOiBzdHJpbmcpOiBhbnkge1xyXG4gICAgcmV0dXJuIHZhbHVlICYmIHRlcm0gPyB0aGlzLmhpZ2hsaWdodCh2YWx1ZSwgdGVybSkgOiB2YWx1ZTtcclxuICB9XHJcblxyXG4gIGhpZ2hsaWdodCh2YWx1ZTogc3RyaW5nLCB0ZXJtOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHJlZ0V4cCA9IG5ldyBSZWdFeHAodGVybS5yZXBsYWNlKC9bLVtcXF17fSgpKis/LixcXFxcXiR8I1xcc10vZywgJ1xcXFwkJicpLCAnZ2knKTtcclxuICAgIHJldHVybiB2YWx1ZS5yZXBsYWNlKHJlZ0V4cCwgZnVuY3Rpb24gKG1hdGNoKSB7XHJcbiAgICAgIHJldHVybiBgPGIgY2xhc3M9XCJyZS1oaWdobGlnaHRcIj4ke21hdGNofTwvYj5gO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==