| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- import React, { PureComponent } from 'react';
- import {
- PanelEditorProps,
- PanelOptionsGrid,
- ValueMappingsEditor,
- FieldDisplayEditor,
- FieldDisplayOptions,
- FieldPropertiesEditor,
- PanelOptionsGroup,
- } from '@grafana/ui';
- import { ValueMapping, FieldConfig } from '@grafana/data';
- import { PieChartOptionsBox } from './PieChartOptionsBox';
- import { PieChartOptions } from './types';
- export class PieChartPanelEditor extends PureComponent<PanelEditorProps<PieChartOptions>> {
- onValueMappingsChanged = (mappings: ValueMapping[]) => {
- const current = this.props.options.fieldOptions.defaults;
- this.onDefaultsChange({
- ...current,
- mappings,
- });
- };
- onDisplayOptionsChanged = (fieldOptions: FieldDisplayOptions) =>
- this.props.onOptionsChange({
- ...this.props.options,
- fieldOptions,
- });
- onDefaultsChange = (field: FieldConfig) => {
- this.onDisplayOptionsChanged({
- ...this.props.options.fieldOptions,
- defaults: field,
- });
- };
- render() {
- const { onOptionsChange, options, data } = this.props;
- const { fieldOptions } = options;
- const { defaults } = fieldOptions;
- return (
- <>
- <PanelOptionsGrid>
- <PanelOptionsGroup title="Display">
- <FieldDisplayEditor onChange={this.onDisplayOptionsChanged} value={fieldOptions} />
- </PanelOptionsGroup>
- <PanelOptionsGroup title="Field (default)">
- <FieldPropertiesEditor showMinMax={true} onChange={this.onDefaultsChange} value={defaults} />
- </PanelOptionsGroup>
- <PieChartOptionsBox data={data} onOptionsChange={onOptionsChange} options={options} />
- </PanelOptionsGrid>
- <ValueMappingsEditor onChange={this.onValueMappingsChanged} valueMappings={defaults.mappings} />
- </>
- );
- }
- }
|