UNPKG

@true-directive/grid

Version:

Angular Data Grid from Yopsilon.

74 lines 7.13 kB
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=