@ngx-performance-ui/core
Version:
Ngx Performance UI - Core
175 lines • 13 kB
JavaScript
/**
* @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==