@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
JavaScript
/**
* @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