import {ICellRendererAngularComp} from 'ag-grid-angular'; import {Component} from '@angular/core'; import {ICellRendererParams} from 'ag-grid-community'; import {EditorService} from '../../../../service/editor.service'; @Component({ selector: 'editor-boolean-renderer', template: ` {{ display }}
`, styles: [` :host { width: 100%; height: 100%; display: inline-block; } `], }) export class BooleanRendererComponent implements ICellRendererAngularComp { public params: ICellRendererParams; public emptyValue = ''; public trueValue = 'True'; public falseValue = 'False'; public checkbox = false; public checked = false; constructor( public editorService: EditorService, ) { } agInit(params: ICellRendererParams): void { console.log('bool renderer', this); this.params = params; // @ts-ignore if ( this.params.colDef._parentEditorUUID ) { // @ts-ignore this.editorService = this.editorService.getEditor(this.params.colDef._parentEditorUUID) } // @ts-ignore this.checkbox = params.colDef.additionalData.labelType === 'checkbox'; if ( !this.checkbox ) { // @ts-ignore const labelType = params.colDef.additionalData.labelType.split('_').map(x => x.charAt(0).toUpperCase() + x.slice(1)); this.trueValue = labelType[0]; this.falseValue = labelType[1]; } } public get display() { if ( this.params.value === true ) { return this.trueValue; } else if ( this.params.value === false ) { return this.falseValue; } else { return this.emptyValue; } } refresh(params: any): boolean { return false; } onChecked($event) { const checked = !this.params.value; const colId = this.params.column.getColId(); this.params.node.setDataValue(colId, checked); } }