UNPKG

@asi-ngtools/lib

Version:

This project is a little components library, simple to use, which will help you to simplify your project.

186 lines (185 loc) 10.5 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ import { AsiTableInliner } from './asi-table-inliner.directive'; import { Directive, Input, ContentChild, EventEmitter, Output, ContentChildren, QueryList } from '@angular/core'; import { AsiComponentTemplateTableHeaderDef, AsiComponentTemplateCellDef } from '../common/asi-component-template'; export class AsiTableColumn { constructor() { /** * Sort in reserve */ this.inversSort = false; /** * Is the column sortable */ this.sortable = false; /** * The column will be inlined */ this.inlineColumn = false; /** * Type of the column (checkbox will display checkbox column) */ this.type = 'text'; /** * Event emitted when checkbox is checked */ this.onChecked = new EventEmitter(); /** * Event emitted when the 'allcheckbox' is checked */ this.onAllChecked = new EventEmitter(); this.asc = null; this.inliners = new Array(); } /** * @return {?} */ ngOnInit() { this.asc = this.sortByDefault; } /** * @return {?} */ toggleSort() { return this.asc = !this.asc; } /** * @return {?} */ unsort() { this.asc = null; } /** * @return {?} */ getAsc() { return this.inversSort ? !this.asc : this.asc; } /** * @return {?} */ getSortName() { return this.sortName != null ? this.sortName : this.name; } /** * @return {?} */ ngAfterContentInit() { this.queryColumns.forEach(inlined => { this.inliners.push(inlined); }); } } AsiTableColumn.decorators = [ { type: Directive, args: [{ /* tslint:disable-next-line:directive-selector */ selector: 'asi-table-column', },] } ]; /** @nocollapse */ AsiTableColumn.ctorParameters = () => []; AsiTableColumn.propDecorators = { name: [{ type: Input }], sortName: [{ type: Input }], libelle: [{ type: Input }], showIf: [{ type: Input }], hideIf: [{ type: Input }], inversSort: [{ type: Input }], sortable: [{ type: Input }], sortByDefault: [{ type: Input }], columnClass: [{ type: Input }], inlineColumn: [{ type: Input }], type: [{ type: Input }], customSort: [{ type: Input }], onChecked: [{ type: Output }], onAllChecked: [{ type: Output }], cellDef: [{ type: ContentChild, args: [AsiComponentTemplateCellDef,] }], headerDef: [{ type: ContentChild, args: [AsiComponentTemplateTableHeaderDef,] }], queryColumns: [{ type: ContentChildren, args: [AsiTableInliner,] }] }; if (false) { /** * Column name (used to extract data from bean if cell template not defined) * @type {?} */ AsiTableColumn.prototype.name; /** * name of the bean attribute used to sort the column * @type {?} */ AsiTableColumn.prototype.sortName; /** * Libelle of the header (is template not defined) * @type {?} */ AsiTableColumn.prototype.libelle; /** * ngIf for column * @type {?} */ AsiTableColumn.prototype.showIf; /** * !ngif for column * @type {?} */ AsiTableColumn.prototype.hideIf; /** * Sort in reserve * @type {?} */ AsiTableColumn.prototype.inversSort; /** * Is the column sortable * @type {?} */ AsiTableColumn.prototype.sortable; /** * Autosort this column when you give new data * @type {?} */ AsiTableColumn.prototype.sortByDefault; /** * Add a class to this column * @type {?} */ AsiTableColumn.prototype.columnClass; /** * The column will be inlined * @type {?} */ AsiTableColumn.prototype.inlineColumn; /** * Type of the column (checkbox will display checkbox column) * @type {?} */ AsiTableColumn.prototype.type; /** * If this function is define it's used to define a custom sort on column * @type {?} */ AsiTableColumn.prototype.customSort; /** * Event emitted when checkbox is checked * @type {?} */ AsiTableColumn.prototype.onChecked; /** * Event emitted when the 'allcheckbox' is checked * @type {?} */ AsiTableColumn.prototype.onAllChecked; /** @type {?} */ AsiTableColumn.prototype.asc; /** @type {?} */ AsiTableColumn.prototype.cellDef; /** @type {?} */ AsiTableColumn.prototype.headerDef; /** @type {?} */ AsiTableColumn.prototype.queryColumns; /** @type {?} */ AsiTableColumn.prototype.inliners; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNpLXRhYmxlLWNvbHVtbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYXNpLW5ndG9vbHMvbGliLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvYXNpLXRhYmxlL2FzaS10YWJsZS1jb2x1bW4uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQW9CLGVBQWUsRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDM0ksT0FBTyxFQUFFLGtDQUFrQyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFNbkgsTUFBTTtJQWlESjs7OzswQkFsQ3NCLEtBQUs7Ozs7d0JBR1AsS0FBSzs7Ozs0QkFTRCxLQUFLOzs7O29CQUdRLE1BQU07Ozs7eUJBTXJCLElBQUksWUFBWSxFQUFPOzs7OzRCQUdwQixJQUFJLFlBQVksRUFBVzttQkFFckMsSUFBSTt3QkFNZ0IsSUFBSSxLQUFLLEVBQW1CO0tBRS9DOzs7O0lBRWhCLFFBQVE7UUFDTixJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7S0FDL0I7Ozs7SUFHRCxVQUFVO1FBQ1IsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO0tBQzdCOzs7O0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDO0tBQ2pCOzs7O0lBRUQsTUFBTTtRQUNKLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7S0FDL0M7Ozs7SUFFRCxXQUFXO1FBQ1QsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO0tBQzFEOzs7O0lBRUQsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ2xDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1NBQzVCLENBQUMsQ0FBQztLQUNKOzs7WUFoRkYsU0FBUyxTQUFDOztnQkFFVCxRQUFRLEVBQUUsa0JBQWtCO2FBQzdCOzs7OzttQkFJRSxLQUFLO3VCQUVMLEtBQUs7c0JBRUwsS0FBSztxQkFHTCxLQUFLO3FCQUVMLEtBQUs7eUJBR0wsS0FBSzt1QkFHTCxLQUFLOzRCQUdMLEtBQUs7MEJBR0wsS0FBSzsyQkFHTCxLQUFLO21CQUdMLEtBQUs7eUJBR0wsS0FBSzt3QkFHTCxNQUFNOzJCQUdOLE1BQU07c0JBSU4sWUFBWSxTQUFDLDJCQUEyQjt3QkFDeEMsWUFBWSxTQUFDLGtDQUFrQzsyQkFFL0MsZUFBZSxTQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc2lUYWJsZUlubGluZXIgfSBmcm9tICcuL2FzaS10YWJsZS1pbmxpbmVyLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIENvbnRlbnRDaGlsZCwgRXZlbnRFbWl0dGVyLCBPdXRwdXQsIEFmdGVyQ29udGVudEluaXQsIENvbnRlbnRDaGlsZHJlbiwgUXVlcnlMaXN0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQXNpQ29tcG9uZW50VGVtcGxhdGVUYWJsZUhlYWRlckRlZiwgQXNpQ29tcG9uZW50VGVtcGxhdGVDZWxsRGVmIH0gZnJvbSAnLi4vY29tbW9uL2FzaS1jb21wb25lbnQtdGVtcGxhdGUnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgLyogdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmRpcmVjdGl2ZS1zZWxlY3RvciAqL1xyXG4gIHNlbGVjdG9yOiAnYXNpLXRhYmxlLWNvbHVtbicsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBc2lUYWJsZUNvbHVtbiBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIE9uSW5pdCB7XHJcblxyXG4gIC8qKiBDb2x1bW4gbmFtZSAodXNlZCB0byBleHRyYWN0IGRhdGEgZnJvbSBiZWFuIGlmIGNlbGwgdGVtcGxhdGUgbm90IGRlZmluZWQpICovXHJcbiAgQElucHV0KCkgbmFtZTogc3RyaW5nO1xyXG4gIC8qKiBuYW1lIG9mIHRoZSBiZWFuIGF0dHJpYnV0ZSB1c2VkIHRvIHNvcnQgdGhlIGNvbHVtbiAqL1xyXG4gIEBJbnB1dCgpIHNvcnROYW1lOiBzdHJpbmc7XHJcbiAgLyoqIExpYmVsbGUgb2YgdGhlIGhlYWRlciAoaXMgdGVtcGxhdGUgbm90IGRlZmluZWQpICovXHJcbiAgQElucHV0KCkgbGliZWxsZTogc3RyaW5nO1xyXG5cclxuICAvKiogbmdJZiBmb3IgY29sdW1uICovXHJcbiAgQElucHV0KCkgc2hvd0lmOiBib29sZWFuO1xyXG4gIC8qKiAhbmdpZiBmb3IgY29sdW1uICovXHJcbiAgQElucHV0KCkgaGlkZUlmOiBib29sZWFuO1xyXG5cclxuICAvKiogU29ydCBpbiByZXNlcnZlICovXHJcbiAgQElucHV0KCkgaW52ZXJzU29ydCA9IGZhbHNlO1xyXG5cclxuICAvKiogSXMgdGhlIGNvbHVtbiBzb3J0YWJsZSAqL1xyXG4gIEBJbnB1dCgpIHNvcnRhYmxlID0gZmFsc2U7XHJcblxyXG4gIC8qKiBBdXRvc29ydCB0aGlzIGNvbHVtbiB3aGVuIHlvdSBnaXZlIG5ldyBkYXRhICovXHJcbiAgQElucHV0KCkgc29ydEJ5RGVmYXVsdDogYm9vbGVhbjtcclxuXHJcbiAgLyoqIEFkZCBhIGNsYXNzIHRvIHRoaXMgY29sdW1uICovXHJcbiAgQElucHV0KCkgY29sdW1uQ2xhc3M6IGFueTtcclxuXHJcbiAgLyoqIFRoZSBjb2x1bW4gd2lsbCBiZSBpbmxpbmVkICovXHJcbiAgQElucHV0KCkgaW5saW5lQ29sdW1uID0gZmFsc2U7XHJcblxyXG4gIC8qKiBUeXBlIG9mIHRoZSBjb2x1bW4gKGNoZWNrYm94IHdpbGwgZGlzcGxheSBjaGVja2JveCBjb2x1bW4pICovXHJcbiAgQElucHV0KCkgdHlwZTogJ3RleHQnIHwgJ2NoZWNrYm94JyA9ICd0ZXh0JztcclxuXHJcbiAgLyoqIElmIHRoaXMgZnVuY3Rpb24gaXMgZGVmaW5lIGl0J3MgdXNlZCB0byBkZWZpbmUgYSBjdXN0b20gc29ydCBvbiBjb2x1bW4gKi9cclxuICBASW5wdXQoKSBjdXN0b21Tb3J0OiBGdW5jdGlvbjtcclxuXHJcbiAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiBjaGVja2JveCBpcyBjaGVja2VkICovXHJcbiAgQE91dHB1dCgpIG9uQ2hlY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICAvKiogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSAnYWxsY2hlY2tib3gnIGlzIGNoZWNrZWQgKi9cclxuICBAT3V0cHV0KCkgb25BbGxDaGVja2VkID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICBhc2M6IGJvb2xlYW4gPSBudWxsO1xyXG5cclxuICBAQ29udGVudENoaWxkKEFzaUNvbXBvbmVudFRlbXBsYXRlQ2VsbERlZikgY2VsbERlZjogQXNpQ29tcG9uZW50VGVtcGxhdGVDZWxsRGVmO1xyXG4gIEBDb250ZW50Q2hpbGQoQXNpQ29tcG9uZW50VGVtcGxhdGVUYWJsZUhlYWRlckRlZikgaGVhZGVyRGVmOiBBc2lDb21wb25lbnRUZW1wbGF0ZVRhYmxlSGVhZGVyRGVmO1xyXG5cclxuICBAQ29udGVudENoaWxkcmVuKEFzaVRhYmxlSW5saW5lcikgcXVlcnlDb2x1bW5zOiBRdWVyeUxpc3Q8QXNpVGFibGVJbmxpbmVyPjtcclxuICBpbmxpbmVyczogQXJyYXk8QXNpVGFibGVJbmxpbmVyPiA9IG5ldyBBcnJheTxBc2lUYWJsZUlubGluZXI+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge31cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmFzYyA9IHRoaXMuc29ydEJ5RGVmYXVsdDtcclxuICB9XHJcblxyXG4gIC8vIGFzYyAvIGRlc2MgLyBub3Qgc29ydFxyXG4gIHRvZ2dsZVNvcnQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5hc2MgPSAhdGhpcy5hc2M7XHJcbiAgfVxyXG5cclxuICB1bnNvcnQoKSB7XHJcbiAgICB0aGlzLmFzYyA9IG51bGw7XHJcbiAgfVxyXG5cclxuICBnZXRBc2MoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5pbnZlcnNTb3J0ID8gIXRoaXMuYXNjIDogdGhpcy5hc2M7XHJcbiAgfVxyXG5cclxuICBnZXRTb3J0TmFtZSgpIHtcclxuICAgIHJldHVybiB0aGlzLnNvcnROYW1lICE9IG51bGwgPyB0aGlzLnNvcnROYW1lIDogdGhpcy5uYW1lO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xyXG4gICAgdGhpcy5xdWVyeUNvbHVtbnMuZm9yRWFjaChpbmxpbmVkID0+IHtcclxuICAgICAgdGhpcy5pbmxpbmVycy5wdXNoKGlubGluZWQpXHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIl19