UNPKG

truly-ui

Version:

Web Components for Desktop Applications.

87 lines 10.6 kB
/* * * MIT License * * Copyright (c) 2019 Temainfo Sistemas * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * / */ import { Component, Input, TemplateRef, HostBinding } from '@angular/core'; import * as objectPath from 'object-path'; import { DatePipe } from '@angular/common'; import * as i0 from "@angular/core"; import * as i1 from "@angular/common"; export class TlDatatableCell { get textAlign() { return this.collumn.alignment; } constructor(datePipe) { this.datePipe = datePipe; this.cellClass = true; this.height = '0px'; } ngOnInit() { } get isTemplate() { return this.collumn.template instanceof TemplateRef; } getDeepContent(fullContent) { const content = objectPath.get(fullContent, this.collumn.field); switch (this.collumn.type) { case 'date': { return this.datePipe.transform(content, this.collumn.format); } default: return content; } } } /** @nocollapse */ TlDatatableCell.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TlDatatableCell, deps: [{ token: i1.DatePipe }], target: i0.ɵɵFactoryTarget.Component }); /** @nocollapse */ TlDatatableCell.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TlDatatableCell, selector: "tl-datatable-cell", inputs: { content: "content", collumn: "collumn" }, host: { properties: { "class.ui-cel": "this.cellClass", "style.height": "this.height", "style.text-align": "this.textAlign" } }, providers: [ DatePipe ], ngImport: i0, template: ` <ng-container *ngIf="isTemplate; else textTemplate"> <ng-container *ngTemplateOutlet="collumn.template; context: {$implicit: content}"></ng-container> </ng-container> <ng-template #textTemplate>{{ getDeepContent(content) }}</ng-template> `, isInline: true, styles: [":host{display:table-cell;vertical-align:inherit;box-sizing:border-box;padding:0 5px;overflow:hidden;white-space:nowrap;align-items:center}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TlDatatableCell, decorators: [{ type: Component, args: [{ selector: 'tl-datatable-cell', template: ` <ng-container *ngIf="isTemplate; else textTemplate"> <ng-container *ngTemplateOutlet="collumn.template; context: {$implicit: content}"></ng-container> </ng-container> <ng-template #textTemplate>{{ getDeepContent(content) }}</ng-template> `, providers: [ DatePipe ], styles: [":host{display:table-cell;vertical-align:inherit;box-sizing:border-box;padding:0 5px;overflow:hidden;white-space:nowrap;align-items:center}\n"] }] }], ctorParameters: function () { return [{ type: i1.DatePipe }]; }, propDecorators: { content: [{ type: Input, args: ['content'] }], collumn: [{ type: Input, args: ['collumn'] }], cellClass: [{ type: HostBinding, args: ['class.ui-cel'] }], height: [{ type: HostBinding, args: ['style.height'] }], textAlign: [{ type: HostBinding, args: ['style.text-align'] }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXRhYmxlLWNlbGwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cnVseS11aS9zcmMvY29tcG9uZW50cy9kYXRhdGFibGUvcGFydHMvY2VsbC9kYXRhdGFibGUtY2VsbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQUNILE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUlMLFdBQVcsRUFFTyxXQUFXLEVBQzlCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sS0FBSyxVQUFVLE1BQU0sYUFBYSxDQUFDO0FBRTFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBeUIzQyxNQUFNLE9BQU8sZUFBZTtJQVUxQixJQUFxQyxTQUFTO1FBQzVDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUM7SUFDaEMsQ0FBQztJQUVELFlBQXFCLFFBQWtCO1FBQWxCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFSVixjQUFTLEdBQUcsSUFBSSxDQUFDO1FBRWpCLFdBQU0sR0FBRyxLQUFLLENBQUM7SUFNRixDQUFDO0lBRTNDLFFBQVEsS0FBSSxDQUFDO0lBRWIsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsWUFBWSxXQUFXLENBQUM7SUFDdEQsQ0FBQztJQUVELGNBQWMsQ0FBRSxXQUFXO1FBQ3ZCLE1BQU0sT0FBTyxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEUsUUFBUyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRztZQUMzQixLQUFLLE1BQU8sQ0FBQyxDQUFDO2dCQUNaLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFFLENBQUM7YUFDaEU7WUFDRCxPQUFRLENBQUMsQ0FBQyxPQUFPLE9BQU8sQ0FBQztTQUMxQjtJQUNMLENBQUM7O2dJQTlCVSxlQUFlO29IQUFmLGVBQWUsaU9BSmY7UUFDVCxRQUFRO0tBQ1QsMEJBcEJTOzs7OztLQUtQOzRGQWlCUSxlQUFlO2tCQXhCM0IsU0FBUzsrQkFDRSxtQkFBbUIsWUFDbkI7Ozs7O0tBS1AsYUFhUTt3QkFDVCxRQUFRO3FCQUNUOytGQUlpQixPQUFPO3NCQUF4QixLQUFLO3VCQUFDLFNBQVM7Z0JBRUUsT0FBTztzQkFBeEIsS0FBSzt1QkFBQyxTQUFTO2dCQUVhLFNBQVM7c0JBQXJDLFdBQVc7dUJBQUMsY0FBYztnQkFFRSxNQUFNO3NCQUFsQyxXQUFXO3VCQUFDLGNBQWM7Z0JBRVUsU0FBUztzQkFBN0MsV0FBVzt1QkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICpcbiAqICAgICBNSVQgTGljZW5zZVxuICpcbiAqICAgICBDb3B5cmlnaHQgKGMpIDIwMTkgVGVtYWluZm8gU2lzdGVtYXNcbiAqXG4gKiAgICAgUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuICogICAgIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbiAqICAgICBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4gKiAgICAgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuICogICAgIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuICogICAgIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4gKiAgICAgVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsXG4gKiAgICAgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbiAqICAgICBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4gKiAgICAgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4gKiAgICAgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4gKiAgICAgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuICogICAgIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4gKiAgICAgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEVcbiAqICAgICBTT0ZUV0FSRS5cbiAqIC9cbiAqL1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBJbmplY3RvcixcbiAgQ29udGVudENoaWxkLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBWaWV3Q29udGFpbmVyUmVmLCBIb3N0QmluZGluZywgSG9zdExpc3RlbmVyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgKiBhcyBvYmplY3RQYXRoIGZyb20gJ29iamVjdC1wYXRoJztcbmltcG9ydCB7IFRsRGF0YXRhYmxlQ29sdW1uIH0gZnJvbSAnLi4vY29sdW1uL2RhdGF0YWJsZS1jb2x1bW4nO1xuaW1wb3J0IHsgRGF0ZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuQENvbXBvbmVudCgge1xuICBzZWxlY3RvcjogJ3RsLWRhdGF0YWJsZS1jZWxsJyxcbiAgdGVtcGxhdGU6IGBcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc1RlbXBsYXRlOyBlbHNlIHRleHRUZW1wbGF0ZVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29sbHVtbi50ZW1wbGF0ZTsgY29udGV4dDogeyRpbXBsaWNpdDogY29udGVudH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLXRlbXBsYXRlICN0ZXh0VGVtcGxhdGU+e3sgZ2V0RGVlcENvbnRlbnQoY29udGVudCkgfX08L25nLXRlbXBsYXRlPlxuICAgIGAsXG4gIHN0eWxlczogW2BcbiAgICA6aG9zdCB7XG4gICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgdmVydGljYWwtYWxpZ246IGluaGVyaXQ7XG5cbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICBwYWRkaW5nOiAwIDVweDtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG4gIGBdLFxuICBwcm92aWRlcnM6IFtcbiAgICBEYXRlUGlwZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFRsRGF0YXRhYmxlQ2VsbCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KCdjb250ZW50JykgY29udGVudDogc3RyaW5nIHwgb2JqZWN0O1xuXG4gIEBJbnB1dCgnY29sbHVtbicpIGNvbGx1bW46IFRsRGF0YXRhYmxlQ29sdW1uO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MudWktY2VsJykgY2VsbENsYXNzID0gdHJ1ZTtcblxuICBASG9zdEJpbmRpbmcoJ3N0eWxlLmhlaWdodCcpIGhlaWdodCA9ICcwcHgnO1xuXG4gIEBIb3N0QmluZGluZygnc3R5bGUudGV4dC1hbGlnbicpIGdldCB0ZXh0QWxpZ24oKSB7XG4gICAgcmV0dXJuIHRoaXMuY29sbHVtbi5hbGlnbm1lbnQ7XG4gIH1cblxuICBjb25zdHJ1Y3RvciggcHJpdmF0ZSBkYXRlUGlwZTogRGF0ZVBpcGUpIHt9XG5cbiAgbmdPbkluaXQoKSB7fVxuXG4gIGdldCBpc1RlbXBsYXRlKCkge1xuICAgIHJldHVybiB0aGlzLmNvbGx1bW4udGVtcGxhdGUgaW5zdGFuY2VvZiBUZW1wbGF0ZVJlZjtcbiAgfVxuXG4gIGdldERlZXBDb250ZW50KCBmdWxsQ29udGVudCApIHtcbiAgICAgIGNvbnN0IGNvbnRlbnQgPSBvYmplY3RQYXRoLmdldChmdWxsQ29udGVudCwgdGhpcy5jb2xsdW1uLmZpZWxkKTtcbiAgICAgIHN3aXRjaCAoIHRoaXMuY29sbHVtbi50eXBlICkge1xuICAgICAgICBjYXNlICdkYXRlJyA6IHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0oIGNvbnRlbnQsIHRoaXMuY29sbHVtbi5mb3JtYXQgKTtcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0IDogcmV0dXJuIGNvbnRlbnQ7XG4gICAgICB9XG4gIH1cbn1cbiJdfQ==