UNPKG

@ngx-performance-ui/core

Version:
175 lines 13 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import * as tslib_1 from "tslib"; import { Directive, Input, ElementRef, Renderer2 } from '@angular/core'; import { normalizeDiacritics } from '../utils'; var HighlightDirective = /** @class */ (function () { function HighlightDirective(elRef, renderer) { this.elRef = elRef; this.renderer = renderer; this.value = ''; this.class = 'text-primary'; this.hide = false; this.hideWhenNull = false; this.hideClass = 'd-none'; } Object.defineProperty(HighlightDirective.prototype, "pHighlight", { set: /** * @param {?} value * @return {?} */ function (value) { if (!value && value !== '' && typeof value !== 'string') return; this.value = normalizeDiacritics(value.replace(/\s+/gm, ' ')); }, enumerable: true, configurable: true }); /** * @private * @param {?} text * @return {?} */ HighlightDirective.prototype.setHighlight = /** * @private * @param {?} text * @return {?} */ function (text) { var _this = this; if (!this.value || this.value === '' || this.value === ' ') return text; text = normalizeDiacritics(text.replace(/\s+/gm, ' ')); /** @type {?} */ var splitText = text.split(' ').filter((/** * @param {?} value * @return {?} */ function (value) { return value !== ''; })); /** @type {?} */ var splitValue = this.value.split(' ').filter((/** * @param {?} value * @return {?} */ function (value) { return value !== ''; })); /** @type {?} */ var found = []; splitValue.forEach((/** * @param {?} value * @return {?} */ function (value) { found = tslib_1.__spread(found, splitText .map((/** * @param {?} text * @param {?} index * @return {?} */ function (text, index) { return ({ text: text, index: index, value: value }); })) .filter((/** * @param {?} __0 * @return {?} */ function (_a) { var text = _a.text; return text.toLocaleLowerCase().indexOf(value.toLocaleLowerCase()) > -1; }))); })); if (!found.length) return text; return splitText.reduce((/** * @param {?} acc * @param {?} val * @param {?} index * @return {?} */ function (acc, val, index) { var value = (found.find((/** * @param {?} data * @return {?} */ function (data) { return data.index === index; })) || ((/** @type {?} */ ({})))).value; if (value) { /** @type {?} */ var text_1 = val.substr(val.toLocaleLowerCase().indexOf(value.toLocaleLowerCase()), value.length); val = val.replace(RegExp(value, 'mig'), "<span class=\"" + _this.class + "\">" + text_1 + "</span>"); } return (acc += val + " "); }), ''); }; /** * @return {?} */ HighlightDirective.prototype.ngOnChanges = /** * @return {?} */ function () { var _this = this; setTimeout((/** * @return {?} */ function () { /** @type {?} */ var element = (/** @type {?} */ (_this.elRef.nativeElement)); /** @type {?} */ var text = element.textContent; if (!text) return; _this.renderer.removeClass(element, _this.hideClass); /** @type {?} */ var patchedText = _this.setHighlight(text); element.innerHTML = patchedText; if (patchedText.indexOf('span') < 0 && _this.hide && (_this.hideWhenNull ? true : _this.value)) { _this.renderer.addClass(element, _this.hideClass); } }), 0); }; HighlightDirective.decorators = [ { type: Directive, args: [{ selector: '[pHighlight]', },] } ]; /** @nocollapse */ HighlightDirective.ctorParameters = function () { return [ { type: ElementRef }, { type: Renderer2 } ]; }; HighlightDirective.propDecorators = { pHighlight: [{ type: Input }], class: [{ type: Input, args: ['pHighlightClass',] }], hide: [{ type: Input, args: ['pHighlightHide',] }], hideWhenNull: [{ type: Input, args: ['pHighlightHideWhenNull',] }], hideClass: [{ type: Input, args: ['pHighlightHideClass',] }] }; return HighlightDirective; }()); export { HighlightDirective }; if (false) { /** * @type {?} * @private */ HighlightDirective.prototype.value; /** @type {?} */ HighlightDirective.prototype.class; /** @type {?} */ HighlightDirective.prototype.hide; /** @type {?} */ HighlightDirective.prototype.hideWhenNull; /** @type {?} */ HighlightDirective.prototype.hideClass; /** * @type {?} * @private */ HighlightDirective.prototype.elRef; /** * @type {?} * @private */ HighlightDirective.prototype.renderer; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlnaGxpZ2h0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ3gtcGVyZm9ybWFuY2UtdWkvY29yZS8iLCJzb3VyY2VzIjpbImxpYi9kaXJlY3RpdmVzL2hpZ2hsaWdodC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBYSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUcvQztJQXFCRSw0QkFBb0IsS0FBaUIsRUFBVSxRQUFtQjtRQUE5QyxVQUFLLEdBQUwsS0FBSyxDQUFZO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQWpCMUQsVUFBSyxHQUFXLEVBQUUsQ0FBQztRQVNELFVBQUssR0FBVyxjQUFjLENBQUM7UUFFaEMsU0FBSSxHQUFZLEtBQUssQ0FBQztRQUVkLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBRWpDLGNBQVMsR0FBVyxRQUFRLENBQUM7SUFFVSxDQUFDO0lBZnRFLHNCQUNJLDBDQUFVOzs7OztRQURkLFVBQ2UsS0FBYTtZQUMxQixJQUFJLENBQUMsS0FBSyxJQUFJLEtBQUssS0FBSyxFQUFFLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUTtnQkFBRSxPQUFPO1lBRWhFLElBQUksQ0FBQyxLQUFLLEdBQUcsbUJBQW1CLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNoRSxDQUFDOzs7T0FBQTs7Ozs7O0lBWU8seUNBQVk7Ozs7O0lBQXBCLFVBQXFCLElBQVk7UUFBakMsaUJBNEJDO1FBM0JDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssRUFBRSxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssR0FBRztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBRXhFLElB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Z0JBbkVGLFNBQVMsU0FBQztvQkFDVCxRQUFRLEVBQUUsY0FBYztpQkFDekI7Ozs7Z0JBTnFDLFVBQVU7Z0JBQUUsU0FBUzs7OzZCQVV4RCxLQUFLO3dCQU9MLEtBQUssU0FBQyxpQkFBaUI7dUJBRXZCLEtBQUssU0FBQyxnQkFBZ0I7K0JBRXRCLEtBQUssU0FBQyx3QkFBd0I7NEJBRTlCLEtBQUssU0FBQyxxQkFBcUI7O0lBaUQ5Qix5QkFBQztDQUFBLEFBcEVELElBb0VDO1NBakVZLGtCQUFrQjs7Ozs7O0lBQzdCLG1DQUEyQjs7SUFTM0IsbUNBQXlEOztJQUV6RCxrQ0FBK0M7O0lBRS9DLDBDQUErRDs7SUFFL0QsdUNBQTJEOzs7OztJQUUvQyxtQ0FBeUI7Ozs7O0lBQUUsc0NBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCwgT25DaGFuZ2VzLCBFbGVtZW50UmVmLCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IG5vcm1hbGl6ZURpYWNyaXRpY3MgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3BIaWdobGlnaHRdJyxcbn0pXG5leHBvcnQgY2xhc3MgSGlnaGxpZ2h0RGlyZWN0aXZlIGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgcHJpdmF0ZSB2YWx1ZTogc3RyaW5nID0gJyc7XG5cbiAgQElucHV0KClcbiAgc2V0IHBIaWdobGlnaHQodmFsdWU6IHN0cmluZykge1xuICAgIGlmICghdmFsdWUgJiYgdmFsdWUgIT09ICcnICYmIHR5cGVvZiB2YWx1ZSAhPT0gJ3N0cmluZycpIHJldHVybjtcblxuICAgIHRoaXMudmFsdWUgPSBub3JtYWxpemVEaWFjcml0aWNzKHZhbHVlLnJlcGxhY2UoL1xccysvZ20sICcgJykpO1xuICB9XG5cbiAgQElucHV0KCdwSGlnaGxpZ2h0Q2xhc3MnKSBjbGFzczogc3RyaW5nID0gJ3RleHQtcHJpbWFyeSc7XG5cbiAgQElucHV0KCdwSGlnaGxpZ2h0SGlkZScpIGhpZGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoJ3BIaWdobGlnaHRIaWRlV2hlbk51bGwnKSBoaWRlV2hlbk51bGw6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoJ3BIaWdobGlnaHRIaWRlQ2xhc3MnKSBoaWRlQ2xhc3M6IHN0cmluZyA9ICdkLW5vbmUnO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxSZWY6IEVsZW1lbnRSZWYsIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMikge31cblxuICBwcml2YXRlIHNldEhpZ2hsaWdodCh0ZXh0OiBzdHJpbmcpIHtcbiAgICBpZiAoIXRoaXMudmFsdWUgfHwgdGhpcy52YWx1ZSA9PT0gJycgfHwgdGhpcy52YWx1ZSA9PT0gJyAnKSByZXR1cm4gdGV4dDtcblxuICAgIHRleHQgPSBub3JtYWxpemVEaWFjcml0aWNzKHRleHQucmVwbGFjZSgvXFxzKy9nbSwgJyAnKSk7XG5cbiAgICBjb25zdCBzcGxpdFRleHQgPSB0ZXh0LnNwbGl0KCcgJykuZmlsdGVyKHZhbHVlID0+IHZhbHVlICE9PSAnJyk7XG4gICAgY29uc3Qgc3BsaXRWYWx1ZSA9IHRoaXMudmFsdWUuc3BsaXQoJyAnKS5maWx0ZXIodmFsdWUgPT4gdmFsdWUgIT09ICcnKTtcbiAgICBsZXQgZm91bmQ6IHsgaW5kZXg6IG51bWJlcjsgdGV4dDogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH1bXSA9IFtdO1xuXG4gICAgc3BsaXRWYWx1ZS5mb3JFYWNoKHZhbHVlID0+IHtcbiAgICAgIGZvdW5kID0gW1xuICAgICAgICAuLi5mb3VuZCxcbiAgICAgICAgLi4uc3BsaXRUZXh0XG4gICAgICAgICAgLm1hcCgodGV4dCwgaW5kZXgpID0+ICh7IHRleHQsIGluZGV4LCB2YWx1ZSB9KSlcbiAgICAgICAgICAuZmlsdGVyKCh7IHRleHQgfSkgPT4gdGV4dC50b0xvY2FsZUxvd2VyQ2FzZSgpLmluZGV4T2YodmFsdWUudG9Mb2NhbGVMb3dlckNhc2UoKSkgPiAtMSksXG4gICAgICBdO1xuICAgIH0pO1xuXG4gICAgaWYgKCFmb3VuZC5sZW5ndGgpIHJldHVybiB0ZXh0O1xuXG4gICAgcmV0dXJuIHNwbGl0VGV4dC5yZWR1Y2UoKGFjYywgdmFsLCBpbmRleCkgPT4ge1xuICAgICAgY29uc3QgeyB2YWx1ZSB9ID0gZm91bmQuZmluZChkYXRhID0+IGRhdGEuaW5kZXggPT09IGluZGV4KSB8fCAoe30gYXMgYW55KTtcbiAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICBjb25zdCB0ZXh0ID0gdmFsLnN1YnN0cih2YWwudG9Mb2NhbGVMb3dlckNhc2UoKS5pbmRleE9mKHZhbHVlLnRvTG9jYWxlTG93ZXJDYXNlKCkpLCB2YWx1ZS5sZW5ndGgpO1xuICAgICAgICB2YWwgPSB2YWwucmVwbGFjZShSZWdFeHAodmFsdWUsICdtaWcnKSwgYDxzcGFuIGNsYXNzPVwiJHt0aGlzLmNsYXNzfVwiPiR7dGV4dH08L3NwYW4+YCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gKGFjYyArPSBgJHt2YWx9IGApO1xuICAgIH0sICcnKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKCkge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcbiAgICAgIGNvbnN0IHRleHQgPSBlbGVtZW50LnRleHRDb250ZW50O1xuICAgICAgaWYgKCF0ZXh0KSByZXR1cm47XG5cbiAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3MoZWxlbWVudCwgdGhpcy5oaWRlQ2xhc3MpO1xuICAgICAgY29uc3QgcGF0Y2hlZFRleHQgPSB0aGlzLnNldEhpZ2hsaWdodCh0ZXh0KTtcbiAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gcGF0Y2hlZFRleHQ7XG5cbiAgICAgIGlmIChwYXRjaGVkVGV4dC5pbmRleE9mKCdzcGFuJykgPCAwICYmIHRoaXMuaGlkZSAmJiAodGhpcy5oaWRlV2hlbk51bGwgPyB0cnVlIDogdGhpcy52YWx1ZSkpIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhlbGVtZW50LCB0aGlzLmhpZGVDbGFzcyk7XG4gICAgICB9XG4gICAgfSwgMCk7XG4gIH1cbn1cbiJdfQ==