UNPKG

@ng-select/ng-option-highlight

Version:

## Build

133 lines 7.95 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Directive, ElementRef, Input, Renderer2 } from '@angular/core'; var NgOptionHighlightDirective = /** @class */ (function () { function NgOptionHighlightDirective(elementRef, renderer) { this.elementRef = elementRef; this.renderer = renderer; this.element = this.elementRef.nativeElement; } /** * @return {?} */ NgOptionHighlightDirective.prototype.ngOnChanges = /** * @return {?} */ function () { if (this._canHighlight) { this._highlightLabel(); } }; /** * @return {?} */ NgOptionHighlightDirective.prototype.ngAfterViewInit = /** * @return {?} */ function () { this.label = this.element.innerHTML; if (this._canHighlight) { this._highlightLabel(); } }; /** * @private * @return {?} */ NgOptionHighlightDirective.prototype._highlightLabel = /** * @private * @return {?} */ function () { /** @type {?} */ var label = this.label; if (!this.term) { this._setInnerHtml(label); return; } /** @type {?} */ var alternationString = this.term.replace(' ', '|'); /** @type {?} */ var termRegex = new RegExp(alternationString, 'gi'); this._setInnerHtml(label.replace(termRegex, "<span class=\"highlighted\">$&</span>")); }; Object.defineProperty(NgOptionHighlightDirective.prototype, "_canHighlight", { get: /** * @private * @return {?} */ function () { return this._isDefined(this.term) && this._isDefined(this.label); }, enumerable: true, configurable: true }); /** * @private * @param {?} html * @return {?} */ NgOptionHighlightDirective.prototype._setInnerHtml = /** * @private * @param {?} html * @return {?} */ function (html) { this.renderer.setProperty(this.elementRef.nativeElement, 'innerHTML', html); }; /** * @private * @param {?} value * @return {?} */ NgOptionHighlightDirective.prototype._isDefined = /** * @private * @param {?} value * @return {?} */ function (value) { return value !== undefined && value !== null; }; NgOptionHighlightDirective.decorators = [ { type: Directive, args: [{ selector: '[ngOptionHighlight]' },] } ]; /** @nocollapse */ NgOptionHighlightDirective.ctorParameters = function () { return [ { type: ElementRef }, { type: Renderer2 } ]; }; NgOptionHighlightDirective.propDecorators = { term: [{ type: Input, args: ['ngOptionHighlight',] }] }; return NgOptionHighlightDirective; }()); export { NgOptionHighlightDirective }; if (false) { /** @type {?} */ NgOptionHighlightDirective.prototype.term; /** * @type {?} * @private */ NgOptionHighlightDirective.prototype.element; /** * @type {?} * @private */ NgOptionHighlightDirective.prototype.label; /** * @type {?} * @private */ NgOptionHighlightDirective.prototype.elementRef; /** * @type {?} * @private */ NgOptionHighlightDirective.prototype.renderer; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctb3B0aW9uLWhpZ2hsaWdodC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmctc2VsZWN0L25nLW9wdGlvbi1oaWdobGlnaHQvIiwic291cmNlcyI6WyJsaWIvbmctb3B0aW9uLWhpZ2hsaWdodC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUNBLE9BQU8sRUFFSCxTQUFTLEVBQ1QsVUFBVSxFQUNWLEtBQUssRUFFTCxTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFFdkI7SUFVSSxvQ0FDWSxVQUFzQixFQUN0QixRQUFtQjtRQURuQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDM0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQztJQUNqRCxDQUFDOzs7O0lBRUQsZ0RBQVc7OztJQUFYO1FBQ0ksSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3BCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztTQUMxQjtJQUNMLENBQUM7Ozs7SUFFRCxvREFBZTs7O0lBQWY7UUFDSSxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDO1FBQ3BDLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUNwQixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7U0FDMUI7SUFDTCxDQUFDOzs7OztJQUVPLG9EQUFlOzs7O0lBQXZCOztZQUNVLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSztRQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNaLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDMUIsT0FBTztTQUNWOztZQUVLLGlCQUFpQixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUM7O1lBQy9DLFNBQVMsR0FBRyxJQUFJLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUM7UUFDckQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSx1Q0FBdUMsQ0FBQyxDQUFDLENBQUE7SUFDekYsQ0FBQztJQUVELHNCQUFZLHFEQUFhOzs7OztRQUF6QjtZQUNJLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckUsQ0FBQzs7O09BQUE7Ozs7OztJQUVPLGtEQUFhOzs7OztJQUFyQixVQUFzQixJQUFJO1FBQ3RCLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNoRixDQUFDOzs7Ozs7SUFFTywrQ0FBVTs7Ozs7SUFBbEIsVUFBbUIsS0FBVTtRQUN6QixPQUFPLEtBQUssS0FBSyxTQUFTLElBQUksS0FBSyxLQUFLLElBQUksQ0FBQztJQUNqRCxDQUFDOztnQkFuREosU0FBUyxTQUFDO29CQUNQLFFBQVEsRUFBRSxxQkFBcUI7aUJBQ2xDOzs7O2dCQVJHLFVBQVU7Z0JBR1YsU0FBUzs7O3VCQVFSLEtBQUssU0FBQyxtQkFBbUI7O0lBK0M5QixpQ0FBQztDQUFBLEFBcERELElBb0RDO1NBakRZLDBCQUEwQjs7O0lBRW5DLDBDQUF5Qzs7Ozs7SUFFekMsNkNBQTZCOzs7OztJQUM3QiwyQ0FBc0I7Ozs7O0lBR2xCLGdEQUE4Qjs7Ozs7SUFDOUIsOENBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgc2VhcmNoSGVscGVyIGZyb20gJy4vc2VhcmNoLWhlbHBlcic7XG5pbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIFJlbmRlcmVyMlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbbmdPcHRpb25IaWdobGlnaHRdJ1xufSlcbmV4cG9ydCBjbGFzcyBOZ09wdGlvbkhpZ2hsaWdodERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgICBASW5wdXQoJ25nT3B0aW9uSGlnaGxpZ2h0JykgdGVybTogc3RyaW5nO1xuXG4gICAgcHJpdmF0ZSBlbGVtZW50OiBIVE1MRWxlbWVudDtcbiAgICBwcml2YXRlIGxhYmVsOiBzdHJpbmc7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHtcbiAgICAgICAgdGhpcy5lbGVtZW50ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoKSB7XG4gICAgICAgIGlmICh0aGlzLl9jYW5IaWdobGlnaHQpIHtcbiAgICAgICAgICAgIHRoaXMuX2hpZ2hsaWdodExhYmVsKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIHRoaXMubGFiZWwgPSB0aGlzLmVsZW1lbnQuaW5uZXJIVE1MO1xuICAgICAgICBpZiAodGhpcy5fY2FuSGlnaGxpZ2h0KSB7XG4gICAgICAgICAgICB0aGlzLl9oaWdobGlnaHRMYWJlbCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfaGlnaGxpZ2h0TGFiZWwoKSB7XG4gICAgICAgIGNvbnN0IGxhYmVsID0gdGhpcy5sYWJlbDtcbiAgICAgICAgaWYgKCF0aGlzLnRlcm0pIHtcbiAgICAgICAgICAgIHRoaXMuX3NldElubmVySHRtbChsYWJlbCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBhbHRlcm5hdGlvblN0cmluZyA9IHRoaXMudGVybS5yZXBsYWNlKCcgJywgJ3wnKVxuICAgICAgICBjb25zdCB0ZXJtUmVnZXggPSBuZXcgUmVnRXhwKGFsdGVybmF0aW9uU3RyaW5nLCAnZ2knKVxuICAgICAgICB0aGlzLl9zZXRJbm5lckh0bWwobGFiZWwucmVwbGFjZSh0ZXJtUmVnZXgsIGA8c3BhbiBjbGFzcz1cXFwiaGlnaGxpZ2h0ZWRcXFwiPiQmPC9zcGFuPmApKVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IF9jYW5IaWdobGlnaHQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0RlZmluZWQodGhpcy50ZXJtKSAmJiB0aGlzLl9pc0RlZmluZWQodGhpcy5sYWJlbCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc2V0SW5uZXJIdG1sKGh0bWwpIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2lubmVySFRNTCcsIGh0bWwpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2lzRGVmaW5lZCh2YWx1ZTogYW55KSB7XG4gICAgICAgIHJldHVybiB2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHZhbHVlICE9PSBudWxsO1xuICAgIH1cbn0gICBcbiJdfQ==