UNPKG

@coreui/angular

Version:

CoreUI for Angular UI components library

147 lines 16 kB
import { Directive, HostBinding, Input } from '@angular/core'; import { coerceBooleanProperty } from '@angular/cdk/coercion'; import * as i0 from "@angular/core"; export class TableDirective { constructor(renderer, hostElement) { this.renderer = renderer; this.hostElement = hostElement; this._bordered = false; this._borderless = false; this._hover = false; this._small = false; this._striped = false; this._stripedColumns = false; } /** * Add borders on all sides of the table and cells. * @type boolean */ set bordered(value) { this._bordered = coerceBooleanProperty(value); } ; get bordered() { return this._bordered; } /** * Remove borders on all sides of the table and cells. * @type boolean */ set borderless(value) { this._borderless = coerceBooleanProperty(value); } ; get borderless() { return this._borderless; } /** * Enable a hover state on table rows within table body. * @type boolean */ set hover(value) { this._hover = coerceBooleanProperty(value); } ; get hover() { return this._hover; } /** * Make table more compact by cutting all cell `padding` in half. * @type boolean */ set small(value) { this._small = coerceBooleanProperty(value); } ; get small() { return this._small; } /** * Add zebra-striping to any table row within the table body. * @type boolean */ set striped(value) { this._striped = coerceBooleanProperty(value); } ; get striped() { return this._striped; } /** * Add zebra-striping to any table column. * @type boolean * @since 4.2.4 */ set stripedColumns(value) { this._stripedColumns = coerceBooleanProperty(value); } ; get stripedColumns() { return this._stripedColumns; } get hostClasses() { return { table: true, [`align-${this.align}`]: !!this.align, [`caption-${this.caption}`]: !!this.caption, [`border-${this.borderColor}`]: !!this.borderColor, 'table-bordered': this.bordered, 'table-borderless': this.borderless, [`table-${this.color}`]: !!this.color, 'table-hover': this.hover, 'table-sm': this.small, 'table-striped': this.striped, 'table-striped-columns': this.stripedColumns }; } ngOnInit() { this.setResponsiveWrapper(); } // todo setResponsiveWrapper() { if (!!this.responsive) { const nativeElement = this.hostElement.nativeElement; const wrapper = this.renderer.createElement('div'); const className = this.responsive === true ? 'table-responsive' : `table-responsive-${this.responsive}`; this.renderer.addClass(wrapper, className); const parentNode = this.renderer.parentNode(nativeElement); this.renderer.appendChild(parentNode, wrapper); this.renderer.insertBefore(parentNode, wrapper, nativeElement); this.renderer.appendChild(wrapper, nativeElement); } } } TableDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: TableDirective, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); TableDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.8", type: TableDirective, selector: "[cTable]", inputs: { align: "align", borderColor: "borderColor", bordered: "bordered", borderless: "borderless", caption: "caption", color: "color", hover: "hover", responsive: "responsive", small: "small", striped: "striped", stripedColumns: "stripedColumns" }, host: { properties: { "class": "this.hostClasses" } }, ngImport: i0 }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: TableDirective, decorators: [{ type: Directive, args: [{ selector: '[cTable]' }] }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }]; }, propDecorators: { align: [{ type: Input }], borderColor: [{ type: Input }], bordered: [{ type: Input }], borderless: [{ type: Input }], caption: [{ type: Input }], color: [{ type: Input }], hover: [{ type: Input }], responsive: [{ type: Input }], small: [{ type: Input }], striped: [{ type: Input }], stripedColumns: [{ type: Input }], hostClasses: [{ type: HostBinding, args: ['class'] }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi90YWJsZS90YWJsZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxXQUFXLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUU3RixPQUFPLEVBQWdCLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBSzVFLE1BQU0sT0FBTyxjQUFjO0lBa0l6QixZQUNVLFFBQW1CLEVBQ25CLFdBQXVCO1FBRHZCLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFsR3pCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFlbEIsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUEyQnBCLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFxQmYsV0FBTSxHQUFHLEtBQUssQ0FBQztRQWVmLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFnQmpCLG9CQUFlLEdBQUcsS0FBSyxDQUFDO0lBSzVCLENBQUM7SUFoSEw7OztPQUdHO0lBQ0gsSUFDSSxRQUFRLENBQUMsS0FBYztRQUN6QixJQUFJLENBQUMsU0FBUyxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFBQSxDQUFDO0lBRUYsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFJRDs7O09BR0c7SUFDSCxJQUNJLFVBQVUsQ0FBQyxLQUFjO1FBQzNCLElBQUksQ0FBQyxXQUFXLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUFBLENBQUM7SUFFRixJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQWdCRDs7O09BR0c7SUFD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QUFDO1lBQy9ELElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxhQUFhLENBQUMsQ0FBQztTQUNuRDtJQUNILENBQUM7OzJHQXhLVSxjQUFjOytGQUFkLGNBQWM7MkZBQWQsY0FBYztrQkFIMUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsVUFBVTtpQkFDckI7eUhBY1UsS0FBSztzQkFBYixLQUFLO2dCQU1HLFdBQVc7c0JBQW5CLEtBQUs7Z0JBT0YsUUFBUTtzQkFEWCxLQUFLO2dCQWdCRixVQUFVO3NCQURiLEtBQUs7Z0JBZUcsT0FBTztzQkFBZixLQUFLO2dCQU1HLEtBQUs7c0JBQWIsS0FBSztnQkFPRixLQUFLO3NCQURSLEtBQUs7Z0JBZUcsVUFBVTtzQkFBbEIsS0FBSztnQkFPRixLQUFLO3NCQURSLEtBQUs7Z0JBZ0JGLE9BQU87c0JBRFYsS0FBSztnQkFpQkYsY0FBYztzQkFEakIsS0FBSztnQkFpQkYsV0FBVztzQkFEZCxXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25Jbml0LCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQnJlYWtwb2ludHMsIENvbG9ycyB9IGZyb20gJy4uL2NvcmV1aS50eXBlcyc7XHJcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2NUYWJsZV0nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUYWJsZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2JvcmRlcmVkOiBCb29sZWFuSW5wdXQ7XHJcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2JvcmRlcmxlc3M6IEJvb2xlYW5JbnB1dDtcclxuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfaG92ZXI6IEJvb2xlYW5JbnB1dDtcclxuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfc21hbGw6IEJvb2xlYW5JbnB1dDtcclxuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfc3RyaXBlZDogQm9vbGVhbklucHV0O1xyXG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9zdHJpcGVkQ29sdW1uczogQm9vbGVhbklucHV0O1xyXG5cclxuICAvKipcclxuICAgKiBTZXQgdGhlIHZlcnRpY2FsIGFsaWdubWVudC5cclxuICAgKiBAdHlwZSBzdHJpbmdcclxuICAgKiBAdmFsdWVzICdib3R0b20nIHwgJ21pZGRsZScgfCAndG9wJ1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGFsaWduPzogJ2JvdHRvbScgfCAnbWlkZGxlJyB8ICd0b3AnO1xyXG5cclxuICAvKipcclxuICAgKiBTZXRzIHRoZSBib3JkZXIgY29sb3Igb2YgdGhlIGNvbXBvbmVudCB0byBvbmUgb2YgQ29yZVVJ4oCZcyB0aGVtZWQgY29sb3JzLlxyXG4gICAqIEB0eXBlIENvbG9yc1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGJvcmRlckNvbG9yPzogQ29sb3JzO1xyXG5cclxuICAvKipcclxuICAgKiBBZGQgYm9yZGVycyBvbiBhbGwgc2lkZXMgb2YgdGhlIHRhYmxlIGFuZCBjZWxscy5cclxuICAgKiBAdHlwZSBib29sZWFuXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBzZXQgYm9yZGVyZWQodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX2JvcmRlcmVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcclxuICB9O1xyXG5cclxuICBnZXQgYm9yZGVyZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fYm9yZGVyZWQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9ib3JkZXJlZCA9IGZhbHNlO1xyXG5cclxuICAvKipcclxuICAgKiBSZW1vdmUgYm9yZGVycyBvbiBhbGwgc2lkZXMgb2YgdGhlIHRhYmxlIGFuZCBjZWxscy5cclxuICAgKiBAdHlwZSBib29sZWFuXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBzZXQgYm9yZGVybGVzcyh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fYm9yZGVybGVzcyA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XHJcbiAgfTtcclxuXHJcbiAgZ2V0IGJvcmRlcmxlc3MoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fYm9yZGVybGVzcztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2JvcmRlcmxlc3MgPSBmYWxzZTtcclxuXHJcbiAgLyoqXHJcbiAgICogUHV0IHRoZSBgPGNhcHRpb24+YCBvbiB0aGUgdG9wIG9mIHRoZSB0YWJsZS5cclxuICAgKiBAdmFsdWVzICd0b3AnXHJcbiAgICovXHJcbiAgQElucHV0KCkgY2FwdGlvbj86ICd0b3AnO1xyXG5cclxuICAvKipcclxuICAgKiBTZXRzIHRoZSBjb2xvciBjb250ZXh0IG9mIHRoZSBjb21wb25lbnQgdG8gb25lIG9mIENvcmVVSeKAmXMgdGhlbWVkIGNvbG9ycy5cclxuICAgKiBAdHlwZSBDb2xvcnNcclxuICAgKi9cclxuICBASW5wdXQoKSBjb2xvcj86IENvbG9ycztcclxuXHJcbiAgLyoqXHJcbiAgICogRW5hYmxlIGEgaG92ZXIgc3RhdGUgb24gdGFibGUgcm93cyB3aXRoaW4gdGFibGUgYm9keS5cclxuICAgKiBAdHlwZSBib29sZWFuXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBzZXQgaG92ZXIodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX2hvdmVyID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcclxuICB9O1xyXG5cclxuICBnZXQgaG92ZXIoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5faG92ZXI7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9ob3ZlciA9IGZhbHNlO1xyXG5cclxuICAvKipcclxuICAgKiBNYWtlIHRhYmxlIHJlc3BvbnNpdmUgYWNyb3NzIGFsbCB2aWV3cG9ydHMgb3IgcGljayBhIG1heGltdW0gYnJlYWtwb2ludCB3aXRoIHdoaWNoIHRvIGhhdmUgYSByZXNwb25zaXZlIHRhYmxlIHVwIHRvLlxyXG4gICAqIEB0eXBlOiB7Ym9vbGVhbiB8ICdzbScgfCAnbWQnIHwgJ2xnJyB8ICd4bCcgfCAneHhsJ31cclxuICAgKi9cclxuICBASW5wdXQoKSByZXNwb25zaXZlPzogYm9vbGVhbiB8IE9taXQ8QnJlYWtwb2ludHMsICd4cyc+O1xyXG5cclxuICAvKipcclxuICAgKiBNYWtlIHRhYmxlIG1vcmUgY29tcGFjdCBieSBjdXR0aW5nIGFsbCBjZWxsIGBwYWRkaW5nYCBpbiBoYWxmLlxyXG4gICAqIEB0eXBlIGJvb2xlYW5cclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHNldCBzbWFsbCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fc21hbGwgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xyXG4gIH07XHJcblxyXG4gIGdldCBzbWFsbCgpIHtcclxuICAgIHJldHVybiB0aGlzLl9zbWFsbDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3NtYWxsID0gZmFsc2U7XHJcblxyXG4gIC8qKlxyXG4gICAqIEFkZCB6ZWJyYS1zdHJpcGluZyB0byBhbnkgdGFibGUgcm93IHdpdGhpbiB0aGUgdGFibGUgYm9keS5cclxuICAgKiBAdHlwZSBib29sZWFuXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBzZXQgc3RyaXBlZCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fc3RyaXBlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XHJcbiAgfTtcclxuXHJcbiAgZ2V0IHN0cmlwZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fc3RyaXBlZDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3N0cmlwZWQgPSBmYWxzZTtcclxuXHJcbiAgLyoqXHJcbiAgICogQWRkIHplYnJhLXN0cmlwaW5nIHRvIGFueSB0YWJsZSBjb2x1bW4uXHJcbiAgICogQHR5cGUgYm9vbGVhblxyXG4gICAqIEBzaW5jZSA0LjIuNFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IHN0cmlwZWRDb2x1bW5zKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9zdHJpcGVkQ29sdW1ucyA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XHJcbiAgfTtcclxuXHJcbiAgZ2V0IHN0cmlwZWRDb2x1bW5zKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3N0cmlwZWRDb2x1bW5zO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfc3RyaXBlZENvbHVtbnMgPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICBwcml2YXRlIGhvc3RFbGVtZW50OiBFbGVtZW50UmVmXHJcbiAgKSB7IH1cclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXHJcbiAgZ2V0IGhvc3RDbGFzc2VzKCk6IGFueSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB0YWJsZTogdHJ1ZSxcclxuICAgICAgW2BhbGlnbi0ke3RoaXMuYWxpZ259YF06ICEhdGhpcy5hbGlnbixcclxuICAgICAgW2BjYXB0aW9uLSR7dGhpcy5jYXB0aW9ufWBdOiAhIXRoaXMuY2FwdGlvbixcclxuICAgICAgW2Bib3JkZXItJHt0aGlzLmJvcmRlckNvbG9yfWBdOiAhIXRoaXMuYm9yZGVyQ29sb3IsXHJcbiAgICAgICd0YWJsZS1ib3JkZXJlZCc6IHRoaXMuYm9yZGVyZWQsXHJcbiAgICAgICd0YWJsZS1ib3JkZXJsZXNzJzogdGhpcy5ib3JkZXJsZXNzLFxyXG4gICAgICBbYHRhYmxlLSR7dGhpcy5jb2xvcn1gXTogISF0aGlzLmNvbG9yLFxyXG4gICAgICAndGFibGUtaG92ZXInOiB0aGlzLmhvdmVyLFxyXG4gICAgICAndGFibGUtc20nOiB0aGlzLnNtYWxsLFxyXG4gICAgICAndGFibGUtc3RyaXBlZCc6IHRoaXMuc3RyaXBlZCxcclxuICAgICAgJ3RhYmxlLXN0cmlwZWQtY29sdW1ucyc6IHRoaXMuc3RyaXBlZENvbHVtbnNcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2V0UmVzcG9uc2l2ZVdyYXBwZXIoKTtcclxuICB9XHJcblxyXG4gIC8vIHRvZG9cclxuICBzZXRSZXNwb25zaXZlV3JhcHBlcigpOiB2b2lkIHtcclxuICAgIGlmICghIXRoaXMucmVzcG9uc2l2ZSkge1xyXG4gICAgICBjb25zdCBuYXRpdmVFbGVtZW50OiBIVE1MRWxlbWVudCA9IHRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudDtcclxuICAgICAgY29uc3Qgd3JhcHBlciA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICAgIGNvbnN0IGNsYXNzTmFtZSA9IHRoaXMucmVzcG9uc2l2ZSA9PT0gdHJ1ZSA/ICd0YWJsZS1yZXNwb25zaXZlJyA6IGB0YWJsZS1yZXNwb25zaXZlLSR7dGhpcy5yZXNwb25zaXZlfWA7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3Mod3JhcHBlciwgY2xhc3NOYW1lKTtcclxuICAgICAgY29uc3QgcGFyZW50Tm9kZSA9IHRoaXMucmVuZGVyZXIucGFyZW50Tm9kZShuYXRpdmVFbGVtZW50KTtcclxuICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChwYXJlbnROb2RlLCB3cmFwcGVyKTtcclxuICAgICAgdGhpcy5yZW5kZXJlci5pbnNlcnRCZWZvcmUocGFyZW50Tm9kZSwgd3JhcHBlciwgbmF0aXZlRWxlbWVudCk7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQod3JhcHBlciwgbmF0aXZlRWxlbWVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==