@asi-ngtools/lib
Version:
This project is a little components library, simple to use, which will help you to simplify your project.
192 lines (191 loc) • 10.9 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 }],
disabledCheckbox: [{ 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 the column is a checkbox, this function is used to define if the checkbox is disabled
* @type {?}
*/
AsiTableColumn.prototype.disabledCheckbox;
/**
* 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNpLXRhYmxlLWNvbHVtbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYXNpLW5ndG9vbHMvbGliLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvYXNpLXRhYmxlL2FzaS10YWJsZS1jb2x1bW4uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQW9CLGVBQWUsRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDM0ksT0FBTyxFQUFFLGtDQUFrQyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFNbkgsTUFBTTtJQW9ESjs7OzswQkFyQ3NCLEtBQUs7Ozs7d0JBR1AsS0FBSzs7Ozs0QkFTRCxLQUFLOzs7O29CQUdRLE1BQU07Ozs7eUJBU3JCLElBQUksWUFBWSxFQUFPOzs7OzRCQUdwQixJQUFJLFlBQVksRUFBVzttQkFFckMsSUFBSTt3QkFNZ0IsSUFBSSxLQUFLLEVBQW1CO0tBRS9DOzs7O0lBRWhCLFFBQVE7UUFDTixJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7S0FDL0I7Ozs7SUFHRCxVQUFVO1FBQ1IsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO0tBQzdCOzs7O0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDO0tBQ2pCOzs7O0lBRUQsTUFBTTtRQUNKLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7S0FDL0M7Ozs7SUFFRCxXQUFXO1FBQ1QsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO0tBQzFEOzs7O0lBRUQsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ2xDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1NBQzVCLENBQUMsQ0FBQztLQUNKOzs7WUFuRkYsU0FBUyxTQUFDOztnQkFFVCxRQUFRLEVBQUUsa0JBQWtCO2FBQzdCOzs7OzttQkFJRSxLQUFLO3VCQUVMLEtBQUs7c0JBRUwsS0FBSztxQkFHTCxLQUFLO3FCQUVMLEtBQUs7eUJBR0wsS0FBSzt1QkFHTCxLQUFLOzRCQUdMLEtBQUs7MEJBR0wsS0FBSzsyQkFHTCxLQUFLO21CQUdMLEtBQUs7K0JBR0wsS0FBSzt5QkFHTCxLQUFLO3dCQUdMLE1BQU07MkJBR04sTUFBTTtzQkFJTixZQUFZLFNBQUMsMkJBQTJCO3dCQUN4QyxZQUFZLFNBQUMsa0NBQWtDOzJCQUUvQyxlQUFlLFNBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFzaVRhYmxlSW5saW5lciB9IGZyb20gJy4vYXNpLXRhYmxlLWlubGluZXIuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCwgQ29udGVudENoaWxkLCBFdmVudEVtaXR0ZXIsIE91dHB1dCwgQWZ0ZXJDb250ZW50SW5pdCwgQ29udGVudENoaWxkcmVuLCBRdWVyeUxpc3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBc2lDb21wb25lbnRUZW1wbGF0ZVRhYmxlSGVhZGVyRGVmLCBBc2lDb21wb25lbnRUZW1wbGF0ZUNlbGxEZWYgfSBmcm9tICcuLi9jb21tb24vYXNpLWNvbXBvbmVudC10ZW1wbGF0ZSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICAvKiB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6ZGlyZWN0aXZlLXNlbGVjdG9yICovXHJcbiAgc2VsZWN0b3I6ICdhc2ktdGFibGUtY29sdW1uJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFzaVRhYmxlQ29sdW1uIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgT25Jbml0IHtcclxuXHJcbiAgLyoqIENvbHVtbiBuYW1lICh1c2VkIHRvIGV4dHJhY3QgZGF0YSBmcm9tIGJlYW4gaWYgY2VsbCB0ZW1wbGF0ZSBub3QgZGVmaW5lZCkgKi9cclxuICBASW5wdXQoKSBuYW1lOiBzdHJpbmc7XHJcbiAgLyoqIG5hbWUgb2YgdGhlIGJlYW4gYXR0cmlidXRlIHVzZWQgdG8gc29ydCB0aGUgY29sdW1uICovXHJcbiAgQElucHV0KCkgc29ydE5hbWU6IHN0cmluZztcclxuICAvKiogTGliZWxsZSBvZiB0aGUgaGVhZGVyIChpcyB0ZW1wbGF0ZSBub3QgZGVmaW5lZCkgKi9cclxuICBASW5wdXQoKSBsaWJlbGxlOiBzdHJpbmc7XHJcblxyXG4gIC8qKiBuZ0lmIGZvciBjb2x1bW4gKi9cclxuICBASW5wdXQoKSBzaG93SWY6IGJvb2xlYW47XHJcbiAgLyoqICFuZ2lmIGZvciBjb2x1bW4gKi9cclxuICBASW5wdXQoKSBoaWRlSWY6IGJvb2xlYW47XHJcblxyXG4gIC8qKiBTb3J0IGluIHJlc2VydmUgKi9cclxuICBASW5wdXQoKSBpbnZlcnNTb3J0ID0gZmFsc2U7XHJcblxyXG4gIC8qKiBJcyB0aGUgY29sdW1uIHNvcnRhYmxlICovXHJcbiAgQElucHV0KCkgc29ydGFibGUgPSBmYWxzZTtcclxuXHJcbiAgLyoqIEF1dG9zb3J0IHRoaXMgY29sdW1uIHdoZW4geW91IGdpdmUgbmV3IGRhdGEgKi9cclxuICBASW5wdXQoKSBzb3J0QnlEZWZhdWx0OiBib29sZWFuO1xyXG5cclxuICAvKiogQWRkIGEgY2xhc3MgdG8gdGhpcyBjb2x1bW4gKi9cclxuICBASW5wdXQoKSBjb2x1bW5DbGFzczogYW55O1xyXG5cclxuICAvKiogVGhlIGNvbHVtbiB3aWxsIGJlIGlubGluZWQgKi9cclxuICBASW5wdXQoKSBpbmxpbmVDb2x1bW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqIFR5cGUgb2YgdGhlIGNvbHVtbiAoY2hlY2tib3ggd2lsbCBkaXNwbGF5IGNoZWNrYm94IGNvbHVtbikgKi9cclxuICBASW5wdXQoKSB0eXBlOiAndGV4dCcgfCAnY2hlY2tib3gnID0gJ3RleHQnO1xyXG5cclxuICAvKiogSWYgdGhlIGNvbHVtbiBpcyBhIGNoZWNrYm94LCB0aGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gZGVmaW5lIGlmIHRoZSBjaGVja2JveCBpcyBkaXNhYmxlZCAqL1xyXG4gIEBJbnB1dCgpIGRpc2FibGVkQ2hlY2tib3g6IChyb3c6IGFueSkgPT4gYm9vbGVhbjtcclxuXHJcbiAgLyoqIElmIHRoaXMgZnVuY3Rpb24gaXMgZGVmaW5lIGl0J3MgdXNlZCB0byBkZWZpbmUgYSBjdXN0b20gc29ydCBvbiBjb2x1bW4gKi9cclxuICBASW5wdXQoKSBjdXN0b21Tb3J0OiBGdW5jdGlvbjtcclxuXHJcbiAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiBjaGVja2JveCBpcyBjaGVja2VkICovXHJcbiAgQE91dHB1dCgpIG9uQ2hlY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICAvKiogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSAnYWxsY2hlY2tib3gnIGlzIGNoZWNrZWQgKi9cclxuICBAT3V0cHV0KCkgb25BbGxDaGVja2VkID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICBhc2M6IGJvb2xlYW4gPSBudWxsO1xyXG5cclxuICBAQ29udGVudENoaWxkKEFzaUNvbXBvbmVudFRlbXBsYXRlQ2VsbERlZikgY2VsbERlZjogQXNpQ29tcG9uZW50VGVtcGxhdGVDZWxsRGVmO1xyXG4gIEBDb250ZW50Q2hpbGQoQXNpQ29tcG9uZW50VGVtcGxhdGVUYWJsZUhlYWRlckRlZikgaGVhZGVyRGVmOiBBc2lDb21wb25lbnRUZW1wbGF0ZVRhYmxlSGVhZGVyRGVmO1xyXG5cclxuICBAQ29udGVudENoaWxkcmVuKEFzaVRhYmxlSW5saW5lcikgcXVlcnlDb2x1bW5zOiBRdWVyeUxpc3Q8QXNpVGFibGVJbmxpbmVyPjtcclxuICBpbmxpbmVyczogQXJyYXk8QXNpVGFibGVJbmxpbmVyPiA9IG5ldyBBcnJheTxBc2lUYWJsZUlubGluZXI+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge31cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmFzYyA9IHRoaXMuc29ydEJ5RGVmYXVsdDtcclxuICB9XHJcblxyXG4gIC8vIGFzYyAvIGRlc2MgLyBub3Qgc29ydFxyXG4gIHRvZ2dsZVNvcnQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5hc2MgPSAhdGhpcy5hc2M7XHJcbiAgfVxyXG5cclxuICB1bnNvcnQoKSB7XHJcbiAgICB0aGlzLmFzYyA9IG51bGw7XHJcbiAgfVxyXG5cclxuICBnZXRBc2MoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5pbnZlcnNTb3J0ID8gIXRoaXMuYXNjIDogdGhpcy5hc2M7XHJcbiAgfVxyXG5cclxuICBnZXRTb3J0TmFtZSgpIHtcclxuICAgIHJldHVybiB0aGlzLnNvcnROYW1lICE9IG51bGwgPyB0aGlzLnNvcnROYW1lIDogdGhpcy5uYW1lO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xyXG4gICAgdGhpcy5xdWVyeUNvbHVtbnMuZm9yRWFjaChpbmxpbmVkID0+IHtcclxuICAgICAgdGhpcy5pbmxpbmVycy5wdXNoKGlubGluZWQpXHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIl19