ag-grid-enterprise
Version:
ag-Grid Enterprise Features
62 lines (51 loc) • 2.14 kB
text/typescript
import {
AgCheckbox,
Autowired,
ColumnController,
Component,
Context,
Events,
EventService,
GridOptionsWrapper,
PreConstruct,
QuerySelector
} from "ag-grid-community/main";
export class PivotModePanel extends Component {
private columnController: ColumnController;
private eventService: EventService;
private context: Context;
private gridOptionsWrapper: GridOptionsWrapper;
private cbPivotMode: AgCheckbox;
constructor() {
super();
}
private createTemplate(): string {
let localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();
return `<div class="ag-pivot-mode-panel">
<ag-checkbox class="ag-pivot-mode-select" label="${localeTextFunc('pivotMode', 'Pivot Mode')}"></ag-checkbox>
</div>`;
}
public init(): void {
this.setTemplate(this.createTemplate());
this.instantiate(this.context);
this.cbPivotMode.setSelected(this.columnController.isPivotMode());
this.addDestroyableEventListener(this.cbPivotMode, AgCheckbox.EVENT_CHANGED, this.onBtPivotMode.bind(this));
this.addDestroyableEventListener(this.eventService, Events.EVENT_COLUMN_EVERYTHING_CHANGED, this.onPivotModeChanged.bind(this));
this.addDestroyableEventListener(this.eventService, Events.EVENT_COLUMN_PIVOT_MODE_CHANGED, this.onPivotModeChanged.bind(this));
}
private onBtPivotMode(): void {
let newValue = this.cbPivotMode.isSelected();
if (newValue !== this.columnController.isPivotMode()) {
this.columnController.setPivotMode(newValue, "toolPanelUi");
const api = this.gridOptionsWrapper.getApi();
if(api) {
api.refreshHeader();
}
}
}
private onPivotModeChanged(): void {
let pivotModeActive = this.columnController.isPivotMode();
this.cbPivotMode.setSelected(pivotModeActive);
}
}