column.directive.js 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. /**
  2. * @fileoverview added by tsickle
  3. * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
  4. */
  5. import { Directive, TemplateRef, ContentChild, Input } from '@angular/core';
  6. import { DataTableColumnHeaderDirective } from './column-header.directive';
  7. import { DataTableColumnCellDirective } from './column-cell.directive';
  8. import { DataTableColumnCellTreeToggle } from './tree.directive';
  9. import { ColumnChangesService } from '../../services/column-changes.service';
  10. export class DataTableColumnDirective {
  11. /**
  12. * @param {?} columnChangesService
  13. */
  14. constructor(columnChangesService) {
  15. this.columnChangesService = columnChangesService;
  16. this.isFirstChange = true;
  17. }
  18. /**
  19. * @return {?}
  20. */
  21. get cellTemplate() {
  22. return this._cellTemplateInput || this._cellTemplateQuery;
  23. }
  24. /**
  25. * @return {?}
  26. */
  27. get headerTemplate() {
  28. return this._headerTemplateInput || this._headerTemplateQuery;
  29. }
  30. /**
  31. * @return {?}
  32. */
  33. get treeToggleTemplate() {
  34. return this._treeToggleTemplateInput || this._treeToggleTemplateQuery;
  35. }
  36. /**
  37. * @return {?}
  38. */
  39. ngOnChanges() {
  40. if (this.isFirstChange) {
  41. this.isFirstChange = false;
  42. }
  43. else {
  44. this.columnChangesService.onInputChange();
  45. }
  46. }
  47. }
  48. DataTableColumnDirective.decorators = [
  49. { type: Directive, args: [{ selector: 'ngx-datatable-column' },] }
  50. ];
  51. /** @nocollapse */
  52. DataTableColumnDirective.ctorParameters = () => [
  53. { type: ColumnChangesService }
  54. ];
  55. DataTableColumnDirective.propDecorators = {
  56. name: [{ type: Input }],
  57. prop: [{ type: Input }],
  58. frozenLeft: [{ type: Input }],
  59. frozenRight: [{ type: Input }],
  60. flexGrow: [{ type: Input }],
  61. resizeable: [{ type: Input }],
  62. comparator: [{ type: Input }],
  63. pipe: [{ type: Input }],
  64. sortable: [{ type: Input }],
  65. draggable: [{ type: Input }],
  66. canAutoResize: [{ type: Input }],
  67. minWidth: [{ type: Input }],
  68. width: [{ type: Input }],
  69. maxWidth: [{ type: Input }],
  70. checkboxable: [{ type: Input }],
  71. headerCheckboxable: [{ type: Input }],
  72. headerClass: [{ type: Input }],
  73. cellClass: [{ type: Input }],
  74. isTreeColumn: [{ type: Input }],
  75. treeLevelIndent: [{ type: Input }],
  76. summaryFunc: [{ type: Input }],
  77. summaryTemplate: [{ type: Input }],
  78. _cellTemplateInput: [{ type: Input, args: ['cellTemplate',] }],
  79. _cellTemplateQuery: [{ type: ContentChild, args: [DataTableColumnCellDirective, { read: TemplateRef, static: true },] }],
  80. _headerTemplateInput: [{ type: Input, args: ['headerTemplate',] }],
  81. _headerTemplateQuery: [{ type: ContentChild, args: [DataTableColumnHeaderDirective, { read: TemplateRef, static: true },] }],
  82. _treeToggleTemplateInput: [{ type: Input, args: ['treeToggleTemplate',] }],
  83. _treeToggleTemplateQuery: [{ type: ContentChild, args: [DataTableColumnCellTreeToggle, { read: TemplateRef, static: true },] }]
  84. };
  85. if (false) {
  86. /** @type {?} */
  87. DataTableColumnDirective.prototype.name;
  88. /** @type {?} */
  89. DataTableColumnDirective.prototype.prop;
  90. /** @type {?} */
  91. DataTableColumnDirective.prototype.frozenLeft;
  92. /** @type {?} */
  93. DataTableColumnDirective.prototype.frozenRight;
  94. /** @type {?} */
  95. DataTableColumnDirective.prototype.flexGrow;
  96. /** @type {?} */
  97. DataTableColumnDirective.prototype.resizeable;
  98. /** @type {?} */
  99. DataTableColumnDirective.prototype.comparator;
  100. /** @type {?} */
  101. DataTableColumnDirective.prototype.pipe;
  102. /** @type {?} */
  103. DataTableColumnDirective.prototype.sortable;
  104. /** @type {?} */
  105. DataTableColumnDirective.prototype.draggable;
  106. /** @type {?} */
  107. DataTableColumnDirective.prototype.canAutoResize;
  108. /** @type {?} */
  109. DataTableColumnDirective.prototype.minWidth;
  110. /** @type {?} */
  111. DataTableColumnDirective.prototype.width;
  112. /** @type {?} */
  113. DataTableColumnDirective.prototype.maxWidth;
  114. /** @type {?} */
  115. DataTableColumnDirective.prototype.checkboxable;
  116. /** @type {?} */
  117. DataTableColumnDirective.prototype.headerCheckboxable;
  118. /** @type {?} */
  119. DataTableColumnDirective.prototype.headerClass;
  120. /** @type {?} */
  121. DataTableColumnDirective.prototype.cellClass;
  122. /** @type {?} */
  123. DataTableColumnDirective.prototype.isTreeColumn;
  124. /** @type {?} */
  125. DataTableColumnDirective.prototype.treeLevelIndent;
  126. /** @type {?} */
  127. DataTableColumnDirective.prototype.summaryFunc;
  128. /** @type {?} */
  129. DataTableColumnDirective.prototype.summaryTemplate;
  130. /** @type {?} */
  131. DataTableColumnDirective.prototype._cellTemplateInput;
  132. /** @type {?} */
  133. DataTableColumnDirective.prototype._cellTemplateQuery;
  134. /** @type {?} */
  135. DataTableColumnDirective.prototype._headerTemplateInput;
  136. /** @type {?} */
  137. DataTableColumnDirective.prototype._headerTemplateQuery;
  138. /** @type {?} */
  139. DataTableColumnDirective.prototype._treeToggleTemplateInput;
  140. /** @type {?} */
  141. DataTableColumnDirective.prototype._treeToggleTemplateQuery;
  142. /**
  143. * @type {?}
  144. * @private
  145. */
  146. DataTableColumnDirective.prototype.isFirstChange;
  147. /**
  148. * @type {?}
  149. * @private
  150. */
  151. DataTableColumnDirective.prototype.columnChangesService;
  152. }
  153. //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bzd2ltbGFuZS9uZ3gtZGF0YXRhYmxlLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvY29sdW1ucy9jb2x1bW4uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUE0QixNQUFNLGVBQWUsQ0FBQztBQUN0RyxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUk3RSxNQUFNLE9BQU8sd0JBQXdCOzs7O0lBd0RuQyxZQUFvQixvQkFBMEM7UUFBMUMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQUZ0RCxrQkFBYSxHQUFHLElBQUksQ0FBQztJQUVvQyxDQUFDOzs7O0lBMUJsRSxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUM7SUFDNUQsQ0FBQzs7OztJQVFELElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxvQkFBb0IsSUFBSSxJQUFJLENBQUMsb0JBQW9CLENBQUM7SUFDaEUsQ0FBQzs7OztJQVFELElBQUksa0JBQWtCO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLHdCQUF3QixJQUFJLElBQUksQ0FBQyx3QkFBd0IsQ0FBQztJQUN4RSxDQUFDOzs7O0lBTUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN0QixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztTQUM1QjthQUFNO1lBQ0wsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQzNDO0lBQ0gsQ0FBQzs7O1lBakVGLFNBQVMsU0FBQyxFQUFFLFFBQVEsRUFBRSxzQkFBc0IsRUFBRTs7OztZQUh0QyxvQkFBb0I7OzttQkFLMUIsS0FBSzttQkFDTCxLQUFLO3lCQUNMLEtBQUs7MEJBQ0wsS0FBSzt1QkFDTCxLQUFLO3lCQUNMLEtBQUs7eUJBQ0wsS0FBSzttQkFDTCxLQUFLO3VCQUNMLEtBQUs7d0JBQ0wsS0FBSzs0QkFDTCxLQUFLO3VCQUNMLEtBQUs7b0JBQ0wsS0FBSzt1QkFDTCxLQUFLOzJCQUNMLEtBQUs7aUNBQ0wsS0FBSzswQkFDTCxLQUFLO3dCQUNMLEtBQUs7MkJBQ0wsS0FBSzs4QkFDTCxLQUFLOzBCQUNMLEtBQUs7OEJBQ0wsS0FBSztpQ0FFTCxLQUFLLFNBQUMsY0FBYztpQ0FHcEIsWUFBWSxTQUFDLDRCQUE0QixFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO21DQU85RSxLQUFLLFNBQUMsZ0JBQWdCO21DQUd0QixZQUFZLFNBQUMsOEJBQThCLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7dUNBT2hGLEtBQUssU0FBQyxvQkFBb0I7dUNBRzFCLFlBQVksU0FBQyw2QkFBNkIsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTs7OztJQTlDaEYsd0NBQXNCOztJQUN0Qix3Q0FBK0I7O0lBQy9CLDhDQUF5Qjs7SUFDekIsK0NBQTBCOztJQUMxQiw0Q0FBMEI7O0lBQzFCLDhDQUE2Qjs7SUFDN0IsOENBQXlCOztJQUN6Qix3Q0FBbUI7O0lBQ25CLDRDQUEyQjs7SUFDM0IsNkNBQTRCOztJQUM1QixpREFBZ0M7O0lBQ2hDLDRDQUEwQjs7SUFDMUIseUNBQXVCOztJQUN2Qiw0Q0FBMEI7O0lBQzFCLGdEQUErQjs7SUFDL0Isc0RBQXFDOztJQUNyQywrQ0FBNkQ7O0lBQzdELDZDQUEyRDs7SUFDM0QsZ0RBQStCOztJQUMvQixtREFBaUM7O0lBQ2pDLCtDQUE0Qzs7SUFDNUMsbURBQTJDOztJQUUzQyxzREFDcUM7O0lBRXJDLHNEQUNxQzs7SUFNckMsd0RBQ3VDOztJQUV2Qyx3REFDdUM7O0lBTXZDLDREQUMyQzs7SUFFM0MsNERBQzJDOzs7OztJQU0zQyxpREFBNkI7Ozs7O0lBRWpCLHdEQUFrRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgVGVtcGxhdGVSZWYsIENvbnRlbnRDaGlsZCwgSW5wdXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGF0YVRhYmxlQ29sdW1uSGVhZGVyRGlyZWN0aXZlIH0gZnJvbSAnLi9jb2x1bW4taGVhZGVyLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBEYXRhVGFibGVDb2x1bW5DZWxsRGlyZWN0aXZlIH0gZnJvbSAnLi9jb2x1bW4tY2VsbC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRGF0YVRhYmxlQ29sdW1uQ2VsbFRyZWVUb2dnbGUgfSBmcm9tICcuL3RyZWUuZGlyZWN0aXZlJztcbmltcG9ydCB7IENvbHVtbkNoYW5nZXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY29sdW1uLWNoYW5nZXMuc2VydmljZSc7XG5pbXBvcnQgeyBUYWJsZUNvbHVtblByb3AgfSBmcm9tICcuLi8uLi90eXBlcy90YWJsZS1jb2x1bW4udHlwZSc7XG5cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ25neC1kYXRhdGFibGUtY29sdW1uJyB9KVxuZXhwb3J0IGNsYXNzIERhdGFUYWJsZUNvbHVtbkRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIG5hbWU6IHN0cmluZztcbiAgQElucHV0KCkgcHJvcDogVGFibGVDb2x1bW5Qcm9wO1xuICBASW5wdXQoKSBmcm96ZW5MZWZ0OiBhbnk7XG4gIEBJbnB1dCgpIGZyb3plblJpZ2h0OiBhbnk7XG4gIEBJbnB1dCgpIGZsZXhHcm93OiBudW1iZXI7XG4gIEBJbnB1dCgpIHJlc2l6ZWFibGU6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGNvbXBhcmF0b3I6IGFueTtcbiAgQElucHV0KCkgcGlwZTogYW55O1xuICBASW5wdXQoKSBzb3J0YWJsZTogYm9vbGVhbjtcbiAgQElucHV0KCkgZHJhZ2dhYmxlOiBib29sZWFuO1xuICBASW5wdXQoKSBjYW5BdXRvUmVzaXplOiBib29sZWFuO1xuICBASW5wdXQoKSBtaW5XaWR0aDogbnVtYmVyO1xuICBASW5wdXQoKSB3aWR0aDogbnVtYmVyO1xuICBASW5wdXQoKSBtYXhXaWR0aDogbnVtYmVyO1xuICBASW5wdXQoKSBjaGVja2JveGFibGU6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGhlYWRlckNoZWNrYm94YWJsZTogYm9vbGVhbjtcbiAgQElucHV0KCkgaGVhZGVyQ2xhc3M6IHN0cmluZyB8ICgoZGF0YTogYW55KSA9PiBzdHJpbmcgfCBhbnkpO1xuICBASW5wdXQoKSBjZWxsQ2xhc3M6IHN0cmluZyB8ICgoZGF0YTogYW55KSA9PiBzdHJpbmcgfCBhbnkpO1xuICBASW5wdXQoKSBpc1RyZWVDb2x1bW46IGJvb2xlYW47XG4gIEBJbnB1dCgpIHRyZWVMZXZlbEluZGVudDogbnVtYmVyO1xuICBASW5wdXQoKSBzdW1tYXJ5RnVuYzogKGNlbGxzOiBhbnlbXSkgPT4gYW55O1xuICBASW5wdXQoKSBzdW1tYXJ5VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgQElucHV0KCdjZWxsVGVtcGxhdGUnKVxuICBfY2VsbFRlbXBsYXRlSW5wdXQ6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgQENvbnRlbnRDaGlsZChEYXRhVGFibGVDb2x1bW5DZWxsRGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IHRydWUgfSlcbiAgX2NlbGxUZW1wbGF0ZVF1ZXJ5OiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIGdldCBjZWxsVGVtcGxhdGUoKTogVGVtcGxhdGVSZWY8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuX2NlbGxUZW1wbGF0ZUlucHV0IHx8IHRoaXMuX2NlbGxUZW1wbGF0ZVF1ZXJ5O1xuICB9XG5cbiAgQElucHV0KCdoZWFkZXJUZW1wbGF0ZScpXG4gIF9oZWFkZXJUZW1wbGF0ZUlucHV0OiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBDb250ZW50Q2hpbGQoRGF0YVRhYmxlQ29sdW1uSGVhZGVyRGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IHRydWUgfSlcbiAgX2hlYWRlclRlbXBsYXRlUXVlcnk6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgZ2V0IGhlYWRlclRlbXBsYXRlKCk6IFRlbXBsYXRlUmVmPGFueT4ge1xuICAgIHJldHVybiB0aGlzLl9oZWFkZXJUZW1wbGF0ZUlucHV0IHx8IHRoaXMuX2hlYWRlclRlbXBsYXRlUXVlcnk7XG4gIH1cblxuICBASW5wdXQoJ3RyZWVUb2dnbGVUZW1wbGF0ZScpXG4gIF90cmVlVG9nZ2xlVGVtcGxhdGVJbnB1dDogVGVtcGxhdGVSZWY8YW55PjtcblxuICBAQ29udGVudENoaWxkKERhdGFUYWJsZUNvbHVtbkNlbGxUcmVlVG9nZ2xlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IHRydWUgfSlcbiAgX3RyZWVUb2dnbGVUZW1wbGF0ZVF1ZXJ5OiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIGdldCB0cmVlVG9nZ2xlVGVtcGxhdGUoKTogVGVtcGxhdGVSZWY8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuX3RyZWVUb2dnbGVUZW1wbGF0ZUlucHV0IHx8IHRoaXMuX3RyZWVUb2dnbGVUZW1wbGF0ZVF1ZXJ5O1xuICB9XG5cbiAgcHJpdmF0ZSBpc0ZpcnN0Q2hhbmdlID0gdHJ1ZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbHVtbkNoYW5nZXNTZXJ2aWNlOiBDb2x1bW5DaGFuZ2VzU2VydmljZSkge31cblxuICBuZ09uQ2hhbmdlcygpIHtcbiAgICBpZiAodGhpcy5pc0ZpcnN0Q2hhbmdlKSB7XG4gICAgICB0aGlzLmlzRmlyc3RDaGFuZ2UgPSBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb2x1bW5DaGFuZ2VzU2VydmljZS5vbklucHV0Q2hhbmdlKCk7XG4gICAgfVxuICB9XG59XG4iXX0=