ornamentum
Version:
Angular Toolkit
114 lines • 9.88 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Component, Injector, Input, Renderer2 } from '@angular/core';
import { PopoverComponentLoaderFactoryService } from '../../../utility/utility.module';
import { DataFetchMode } from '../../models/data-fetch-mode.enum';
import { DataTableColumnSelectorComponent } from '../data-table-column-selector/data-table-column-selector.component';
import { DataTableConfigService } from '../../services/data-table-config.service';
import { DataTableEventStateService } from '../../services/data-table-event.service';
import { DataTableDataStateService } from '../../services/data-table-data-state.service';
/**
* Data table header component. Render table title header with column selector widget.
*/
export class DataTableHeaderComponent {
/**
* @param {?} componentLoaderFactory
* @param {?} injector
* @param {?} eventStateService
* @param {?} renderer
* @param {?} dataStateService
* @param {?} config
*/
constructor(componentLoaderFactory, injector, eventStateService, renderer, dataStateService, config) {
this.componentLoaderFactory = componentLoaderFactory;
this.injector = injector;
this.eventStateService = eventStateService;
this.renderer = renderer;
this.dataStateService = dataStateService;
this.config = config;
this.componentLoader = this.componentLoaderFactory.createLoader(this.renderer);
}
/**
* Toggle column selector.
* @param {?} element DOM element reference.
* @return {?}
*/
toggleColumnSelector(element) {
this.componentLoader.toggle(DataTableColumnSelectorComponent, element, this.injector, {
// relativeParent: element, // this.dataStateService.relativeParentElement,
context: {
columns: this.columns,
width: this.config.columnSelectorWidth,
},
position: 'bottom-right'
});
}
/**
* On data reload click event handler.
* @return {?}
*/
onReload() {
this.eventStateService.dataFetchStream.next(DataFetchMode.HARD_RELOAD);
}
/**
* Component destroy lifecycle event handler.
* @return {?}
*/
ngOnDestroy() {
this.componentLoader.dispose();
}
}
DataTableHeaderComponent.decorators = [
{ type: Component, args: [{
selector: 'ng-data-table-header',
template: "<div class=\"ng-data-table-top-header-container\" #header>\n <h4 class=\"ng-data-table-top-header-title\" [textContent]=\"config.title\"></h4>\n <div class=\"ng-data-table-top-header-button-container\">\n <button\n title=\"Refresh\"\n type=\"button\"\n class=\"ng-data-table-action-button ng-data-table-refresh-button\"\n (click)=\"onReload()\"\n *ngIf=\"config.showRefreshButton\"\n [disabled]=\"dataStateService.dataLoading\"></button>\n <button\n title=\"Select Column\"\n type=\"button\"\n class=\"ng-data-table-action-button ng-data-table-column-selector-button\"\n (click)=\"toggleColumnSelector(header)\"\n *ngIf=\"config.showColumnSelector\"></button>\n </div>\n</div>\n"
}] }
];
/** @nocollapse */
DataTableHeaderComponent.ctorParameters = () => [
{ type: PopoverComponentLoaderFactoryService },
{ type: Injector },
{ type: DataTableEventStateService },
{ type: Renderer2 },
{ type: DataTableDataStateService },
{ type: DataTableConfigService }
];
DataTableHeaderComponent.propDecorators = {
columns: [{ type: Input }]
};
if (false) {
/**
* @type {?}
* @private
*/
DataTableHeaderComponent.prototype.componentLoader;
/** @type {?} */
DataTableHeaderComponent.prototype.columns;
/**
* @type {?}
* @private
*/
DataTableHeaderComponent.prototype.componentLoaderFactory;
/**
* @type {?}
* @private
*/
DataTableHeaderComponent.prototype.injector;
/**
* @type {?}
* @private
*/
DataTableHeaderComponent.prototype.eventStateService;
/**
* @type {?}
* @private
*/
DataTableHeaderComponent.prototype.renderer;
/** @type {?} */
DataTableHeaderComponent.prototype.dataStateService;
/** @type {?} */
DataTableHeaderComponent.prototype.config;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS1oZWFkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vb3JuYW1lbnR1bS8iLCJzb3VyY2VzIjpbImRhdGEtdGFibGUvY29tcG9uZW50cy9kYXRhLXRhYmxlLWhlYWRlci9kYXRhLXRhYmxlLWhlYWRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBYSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFakYsT0FBTyxFQUFtQixvQ0FBb0MsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRXhHLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUVsRSxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxvRUFBb0UsQ0FBQztBQUd0SCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNsRixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNyRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQzs7OztBQVN6RixNQUFNLE9BQU8sd0JBQXdCOzs7Ozs7Ozs7SUFNbkMsWUFDVSxzQkFBNEQsRUFDNUQsUUFBa0IsRUFDbEIsaUJBQTZDLEVBQzdDLFFBQW1CLEVBQ3BCLGdCQUEyQyxFQUMzQyxNQUE4QjtRQUw3QiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXNDO1FBQzVELGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUE0QjtRQUM3QyxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ3BCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBMkI7UUFDM0MsV0FBTSxHQUFOLE1BQU0sQ0FBd0I7UUFFckMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsWUFBWSxDQUFtQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbkgsQ0FBQzs7Ozs7O0lBTU0sb0JBQW9CLENBQUMsT0FBb0I7UUFDOUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsZ0NBQWdDLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUU7O1lBRXBGLE9BQU8sRUFBRTtnQkFDUCxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87Z0JBQ3JCLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLG1CQUFtQjthQUN2QztZQUNELFFBQVEsRUFBRSxjQUFjO1NBQ3pCLENBQUMsQ0FBQztJQUNMLENBQUM7Ozs7O0lBS00sUUFBUTtRQUNiLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN6RSxDQUFDOzs7OztJQUtNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNqQyxDQUFDOzs7WUFoREYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxzQkFBc0I7Z0JBQ2hDLGt2QkFBaUQ7YUFDbEQ7Ozs7WUFqQnlCLG9DQUFvQztZQUYxQyxRQUFRO1lBVW5CLDBCQUEwQjtZQVZhLFNBQVM7WUFXaEQseUJBQXlCO1lBRnpCLHNCQUFzQjs7O3NCQWM1QixLQUFLOzs7Ozs7O0lBRk4sbURBQTJFOztJQUUzRSwyQ0FDMkM7Ozs7O0lBR3pDLDBEQUFvRTs7Ozs7SUFDcEUsNENBQTBCOzs7OztJQUMxQixxREFBcUQ7Ozs7O0lBQ3JELDRDQUEyQjs7SUFDM0Isb0RBQWtEOztJQUNsRCwwQ0FBcUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdG9yLCBJbnB1dCwgT25EZXN0cm95LCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQ29tcG9uZW50TG9hZGVyLCBQb3BvdmVyQ29tcG9uZW50TG9hZGVyRmFjdG9yeVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi91dGlsaXR5L3V0aWxpdHkubW9kdWxlJztcblxuaW1wb3J0IHsgRGF0YUZldGNoTW9kZSB9IGZyb20gJy4uLy4uL21vZGVscy9kYXRhLWZldGNoLW1vZGUuZW51bSc7XG5cbmltcG9ydCB7IERhdGFUYWJsZUNvbHVtblNlbGVjdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vZGF0YS10YWJsZS1jb2x1bW4tc2VsZWN0b3IvZGF0YS10YWJsZS1jb2x1bW4tc2VsZWN0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IERhdGFUYWJsZUNvbHVtbkNvbXBvbmVudCB9IGZyb20gJy4uL2RhdGEtdGFibGUtY29sdW1uL2RhdGEtdGFibGUtY29sdW1uLmNvbXBvbmVudCc7XG5cbmltcG9ydCB7IERhdGFUYWJsZUNvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kYXRhLXRhYmxlLWNvbmZpZy5zZXJ2aWNlJztcbmltcG9ydCB7IERhdGFUYWJsZUV2ZW50U3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZGF0YS10YWJsZS1ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IERhdGFUYWJsZURhdGFTdGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kYXRhLXRhYmxlLWRhdGEtc3RhdGUuc2VydmljZSc7XG5cbi8qKlxuICogRGF0YSB0YWJsZSBoZWFkZXIgY29tcG9uZW50LiBSZW5kZXIgdGFibGUgdGl0bGUgaGVhZGVyIHdpdGggY29sdW1uIHNlbGVjdG9yIHdpZGdldC5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmctZGF0YS10YWJsZS1oZWFkZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0YS10YWJsZS1oZWFkZXIuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIERhdGFUYWJsZUhlYWRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgY29tcG9uZW50TG9hZGVyOiBDb21wb25lbnRMb2FkZXI8RGF0YVRhYmxlQ29sdW1uU2VsZWN0b3JDb21wb25lbnQ+O1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBjb2x1bW5zOiBEYXRhVGFibGVDb2x1bW5Db21wb25lbnRbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNvbXBvbmVudExvYWRlckZhY3Rvcnk6IFBvcG92ZXJDb21wb25lbnRMb2FkZXJGYWN0b3J5U2VydmljZSxcbiAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIGV2ZW50U3RhdGVTZXJ2aWNlOiBEYXRhVGFibGVFdmVudFN0YXRlU2VydmljZSxcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHVibGljIGRhdGFTdGF0ZVNlcnZpY2U6IERhdGFUYWJsZURhdGFTdGF0ZVNlcnZpY2UsXG4gICAgcHVibGljIGNvbmZpZzogRGF0YVRhYmxlQ29uZmlnU2VydmljZVxuICApIHtcbiAgICB0aGlzLmNvbXBvbmVudExvYWRlciA9IHRoaXMuY29tcG9uZW50TG9hZGVyRmFjdG9yeS5jcmVhdGVMb2FkZXI8RGF0YVRhYmxlQ29sdW1uU2VsZWN0b3JDb21wb25lbnQ+KHRoaXMucmVuZGVyZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRvZ2dsZSBjb2x1bW4gc2VsZWN0b3IuXG4gICAqIEBwYXJhbSBlbGVtZW50IERPTSBlbGVtZW50IHJlZmVyZW5jZS5cbiAgICovXG4gIHB1YmxpYyB0b2dnbGVDb2x1bW5TZWxlY3RvcihlbGVtZW50OiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgIHRoaXMuY29tcG9uZW50TG9hZGVyLnRvZ2dsZShEYXRhVGFibGVDb2x1bW5TZWxlY3RvckNvbXBvbmVudCwgZWxlbWVudCwgdGhpcy5pbmplY3Rvciwge1xuICAgICAgLy8gcmVsYXRpdmVQYXJlbnQ6IGVsZW1lbnQsIC8vIHRoaXMuZGF0YVN0YXRlU2VydmljZS5yZWxhdGl2ZVBhcmVudEVsZW1lbnQsXG4gICAgICBjb250ZXh0OiB7XG4gICAgICAgIGNvbHVtbnM6IHRoaXMuY29sdW1ucyxcbiAgICAgICAgd2lkdGg6IHRoaXMuY29uZmlnLmNvbHVtblNlbGVjdG9yV2lkdGgsXG4gICAgICB9LFxuICAgICAgcG9zaXRpb246ICdib3R0b20tcmlnaHQnXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogT24gZGF0YSByZWxvYWQgY2xpY2sgZXZlbnQgaGFuZGxlci5cbiAgICovXG4gIHB1YmxpYyBvblJlbG9hZCgpOiB2b2lkIHtcbiAgICB0aGlzLmV2ZW50U3RhdGVTZXJ2aWNlLmRhdGFGZXRjaFN0cmVhbS5uZXh0KERhdGFGZXRjaE1vZGUuSEFSRF9SRUxPQUQpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbXBvbmVudCBkZXN0cm95IGxpZmVjeWNsZSBldmVudCBoYW5kbGVyLlxuICAgKi9cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuY29tcG9uZW50TG9hZGVyLmRpc3Bvc2UoKTtcbiAgfVxufVxuIl19