@true-directive/grid
Version:
Angular Data Grid from Yopsilon.
74 lines • 7.13 kB
JavaScript
import * as tslib_1 from "tslib";
/**
* Copyright (c) 2018-2019 Aleksey Melnikov, True Directive Company.
* @link https://truedirective.com/
* @license MIT
*/
import { Component, EventEmitter, ViewChild } from '@angular/core';
/**
* Component for displaying links.
*/
let CellRefComponent = class CellRefComponent {
/**
* Component for displaying links.
*/
constructor() {
this.event = new EventEmitter();
this.disabled = false;
}
get ref() {
return this.row[this.column.referenceField];
}
/**
* Found substring's Highlighting
* @param v Cell's value
* @return Highlighted html
*/
highlight(v) {
const s = this.state.dataSource.searchString.toLowerCase();
if (s === '') {
return v;
}
const i = v.toLowerCase().indexOf(s);
const start = v.substring(0, i);
const found = v.substring(i, i + s.length);
const end = v.substring(i + s.length);
if (i >= 0) {
return `${start}<span class='true-hl'>${found}</span>${end}`;
}
else {
return v;
}
}
/**
* Initialization
* @param value Cell's value
*/
init(value) {
const hl = this.highlight(value);
let t = ``;
if (this.column.referenceTarget !== '') {
t = ` target="${this.column.referenceTarget}"`;
}
const a = `<a href="${this.ref}"${t}>${hl}</a>`;
this.value = a;
this.content.nativeElement.innerHTML = a;
}
};
tslib_1.__decorate([
ViewChild('content', { static: true }),
tslib_1.__metadata("design:type", Object)
], CellRefComponent.prototype, "content", void 0);
CellRefComponent = tslib_1.__decorate([
Component({
selector: 'true-cell-ref',
template: `<div #content></div>`,
styles: [`
:host {
padding: 0;
}
`]
})
], CellRefComponent);
export { CellRefComponent };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1yZWYuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRydWUtZGlyZWN0aXZlL2dyaWQvIiwic291cmNlcyI6WyJzcmMvY2VsbHMvY2VsbC1yZWYuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7OztFQUlFO0FBQ0YsT0FBTyxFQUFFLFNBQVMsRUFBaUIsWUFBWSxFQUFFLFNBQVMsRUFDdEMsTUFBTSxlQUFlLENBQUM7QUFPMUM7O0dBRUc7QUFVSCxJQUFhLGdCQUFnQixHQUE3QixNQUFhLGdCQUFnQjtJQVo3Qjs7T0FFRztJQUNIO1FBbUJFLFVBQUssR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUtuRCxhQUFRLEdBQVksS0FBSyxDQUFDO0lBeUM1QixDQUFDO0lBbkRDLElBQUksR0FBRztRQUNMLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFVRDs7OztPQUlHO0lBQ08sU0FBUyxDQUFDLENBQVM7UUFFM0IsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzNELElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNaLE9BQU8sQ0FBQyxDQUFDO1NBQ1Y7UUFFRCxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JDLE1BQU0sS0FBSyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2hDLE1BQU0sS0FBSyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDM0MsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNWLE9BQU8sR0FBRyxLQUFLLHlCQUF5QixLQUFLLFVBQVUsR0FBRyxFQUFFLENBQUM7U0FDOUQ7YUFBTTtZQUNMLE9BQU8sQ0FBQyxDQUFDO1NBQ1Y7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFBSSxDQUFDLEtBQVU7UUFDYixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWpDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNYLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLEtBQUssRUFBRSxFQUFFO1lBQ3RDLENBQUMsR0FBRyxZQUFZLElBQUksQ0FBQyxNQUFNLENBQUMsZUFBZSxHQUFHLENBQUM7U0FDaEQ7UUFFRCxNQUFNLENBQUMsR0FBRyxZQUFZLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDO1FBQ2hELElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQztJQUMzQyxDQUFDO0NBQ0YsQ0FBQTtBQXJEQztJQURDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUM7O2lEQUMxQjtBQUhGLGdCQUFnQjtJQVQ1QixTQUFTLENBQUM7UUFDVCxRQUFRLEVBQUUsZUFBZTtRQUN6QixRQUFRLEVBQUUsc0JBQXNCO2lCQUN2Qjs7OztLQUlOO0tBQ0YsQ0FBQztHQUNTLGdCQUFnQixDQXdENUI7U0F4RFksZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDE5IEFsZWtzZXkgTWVsbmlrb3YsIFRydWUgRGlyZWN0aXZlIENvbXBhbnkuXHJcbiAqIEBsaW5rIGh0dHBzOi8vdHJ1ZWRpcmVjdGl2ZS5jb20vXHJcbiAqIEBsaWNlbnNlIE1JVFxyXG4qL1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgVmlld0NoaWxkLFxyXG4gICAgICAgICBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IENvbHVtbiB9IGZyb20gJ0B0cnVlLWRpcmVjdGl2ZS9iYXNlJztcclxuaW1wb3J0IHsgR3JpZFN0YXRlU2VydmljZSB9IGZyb20gJy4uL2dyaWQtc3RhdGUuc2VydmljZSc7XHJcblxyXG5pbXBvcnQgeyBJQ2VsbCB9IGZyb20gJy4vY2VsbC5pbnRlcmZhY2UnO1xyXG5cclxuLyoqXHJcbiAqIENvbXBvbmVudCBmb3IgZGlzcGxheWluZyBsaW5rcy5cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndHJ1ZS1jZWxsLXJlZicsXHJcbiAgdGVtcGxhdGU6IGA8ZGl2ICNjb250ZW50PjwvZGl2PmAsXHJcbiAgc3R5bGVzOiBbYFxyXG4gICAgOmhvc3Qge1xyXG4gICAgICBwYWRkaW5nOiAwO1xyXG4gICAgfVxyXG4gICAgYF1cclxuICB9KVxyXG5leHBvcnQgY2xhc3MgQ2VsbFJlZkNvbXBvbmVudCBpbXBsZW1lbnRzIElDZWxsIHtcclxuXHJcbiAgQFZpZXdDaGlsZCgnY29udGVudCcsIHsgc3RhdGljOiB0cnVlIH0pXHJcbiAgY29udGVudDogYW55O1xyXG5cclxuICBnZXQgcmVmKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5yb3dbdGhpcy5jb2x1bW4ucmVmZXJlbmNlRmllbGRdO1xyXG4gIH1cclxuXHJcbiAgdmFsdWU6IHN0cmluZztcclxuICBldmVudDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgY29sdW1uOiBDb2x1bW47XHJcbiAgcm93OiBhbnk7XHJcbiAgc3RhdGU6IEdyaWRTdGF0ZVNlcnZpY2U7XHJcbiAgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqXHJcbiAgICogRm91bmQgc3Vic3RyaW5nJ3MgSGlnaGxpZ2h0aW5nXHJcbiAgICogQHBhcmFtICB2IENlbGwncyB2YWx1ZVxyXG4gICAqIEByZXR1cm4gICBIaWdobGlnaHRlZCBodG1sXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGhpZ2hsaWdodCh2OiBzdHJpbmcpOiBzdHJpbmcge1xyXG5cclxuICAgIGNvbnN0IHMgPSB0aGlzLnN0YXRlLmRhdGFTb3VyY2Uuc2VhcmNoU3RyaW5nLnRvTG93ZXJDYXNlKCk7XHJcbiAgICBpZiAocyA9PT0gJycpIHtcclxuICAgICAgcmV0dXJuIHY7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgaSA9IHYudG9Mb3dlckNhc2UoKS5pbmRleE9mKHMpO1xyXG4gICAgY29uc3Qgc3RhcnQgPSB2LnN1YnN0cmluZygwLCBpKTtcclxuICAgIGNvbnN0IGZvdW5kID0gdi5zdWJzdHJpbmcoaSwgaSArIHMubGVuZ3RoKTtcclxuICAgIGNvbnN0IGVuZCA9IHYuc3Vic3RyaW5nKGkgKyBzLmxlbmd0aCk7XHJcbiAgICBpZiAoaSA+PSAwKSB7XHJcbiAgICAgIHJldHVybiBgJHtzdGFydH08c3BhbiBjbGFzcz0ndHJ1ZS1obCc+JHtmb3VuZH08L3NwYW4+JHtlbmR9YDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB2O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW5pdGlhbGl6YXRpb25cclxuICAgKiBAcGFyYW0gIHZhbHVlIENlbGwncyB2YWx1ZVxyXG4gICAqL1xyXG4gIGluaXQodmFsdWU6IGFueSkge1xyXG4gICAgY29uc3QgaGwgPSB0aGlzLmhpZ2hsaWdodCh2YWx1ZSk7XHJcblxyXG4gICAgbGV0IHQgPSBgYDtcclxuICAgIGlmICh0aGlzLmNvbHVtbi5yZWZlcmVuY2VUYXJnZXQgIT09ICcnKSB7XHJcbiAgICAgIHQgPSBgIHRhcmdldD1cIiR7dGhpcy5jb2x1bW4ucmVmZXJlbmNlVGFyZ2V0fVwiYDtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBhID0gYDxhIGhyZWY9XCIke3RoaXMucmVmfVwiJHt0fT4ke2hsfTwvYT5gO1xyXG4gICAgdGhpcy52YWx1ZSA9IGE7XHJcbiAgICB0aGlzLmNvbnRlbnQubmF0aXZlRWxlbWVudC5pbm5lckhUTUwgPSBhO1xyXG4gIH1cclxufVxyXG4iXX0=