Stat: Add panel option to control wide layout (#77018)

Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
Co-authored-by: drew08t <drew08@gmail.com>
This commit is contained in:
Nathan Marrs 2023-11-10 10:42:24 -07:00 committed by GitHub
parent 8cd8eb7882
commit e9e7e0b628
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 48 additions and 17 deletions

View File

@ -32,6 +32,7 @@ It extends [SingleStatBaseOptions](#singlestatbaseoptions).
| `graphMode` | string | **Yes** | | TODO docs<br/>Possible values are: `none`, `line`, `area`. |
| `justifyMode` | string | **Yes** | | TODO docs<br/>Possible values are: `auto`, `center`. |
| `textMode` | string | **Yes** | | TODO docs<br/>Possible values are: `auto`, `value`, `value_and_name`, `name`, `none`. |
| `wideLayout` | boolean | **Yes** | `true` | |
| `orientation` | string | No | | *(Inherited from [SingleStatBaseOptions](#singlestatbaseoptions))*<br/>TODO docs<br/>Possible values are: `auto`, `vertical`, `horizontal`. |
| `reduceOptions` | [ReduceDataOptions](#reducedataoptions) | No | | *(Inherited from [SingleStatBaseOptions](#singlestatbaseoptions))*<br/>TODO docs |
| `text` | [VizTextDisplayOptions](#viztextdisplayoptions) | No | | *(Inherited from [SingleStatBaseOptions](#singlestatbaseoptions))*<br/>TODO docs |

View File

@ -88,6 +88,17 @@ You can use the Text mode option to control what text the visualization renders.
- **Name -** Show name instead of value. Value is displayed in the hover tooltip.
- **None -** Show nothing (empty). Name and value are displayed in the hover tooltip.
### Wide layout
Set whether wide layout is enabled or not. Wide layout is enabled by default.
- **On -** Wide layout is enabled.
- **Off -** Wide layout is disabled.
{{% admonition type="note" %}}
This option is only applicable when **Text mode** is set to **Value and name**. When wide layout is enabled, the value and name are displayed side-by-side with the value on the right, if the panel is wide enough. When wide layout is disabled, the value is always rendered underneath the name.
{{% /admonition %}}
### Color mode
Select a color mode.

View File

@ -18,6 +18,7 @@ export interface Options extends common.SingleStatBaseOptions {
graphMode: common.BigValueGraphMode;
justifyMode: common.BigValueJustifyMode;
textMode: common.BigValueTextMode;
wideLayout: boolean;
}
export const defaultOptions: Partial<Options> = {
@ -25,4 +26,5 @@ export const defaultOptions: Partial<Options> = {
graphMode: common.BigValueGraphMode.Area,
justifyMode: common.BigValueJustifyMode.Auto,
textMode: common.BigValueTextMode.Auto,
wideLayout: true,
};

View File

@ -48,7 +48,7 @@ export class StatPanel extends PureComponent<PanelProps<Options>> {
theme={config.theme2}
onClick={openMenu}
className={targetClassName}
disableWideLayout={true}
disableWideLayout={!options.wideLayout}
/>
);
};

View File

@ -17,22 +17,36 @@ export const plugin = new PanelPlugin<Options>(StatPanel)
addOrientationOption(builder, mainCategory);
commonOptionsBuilder.addTextSizeOptions(builder);
builder.addSelect({
path: 'textMode',
name: 'Text mode',
description: 'Control if name and value is displayed or just name',
category: mainCategory,
settings: {
options: [
{ value: BigValueTextMode.Auto, label: 'Auto' },
{ value: BigValueTextMode.Value, label: 'Value' },
{ value: BigValueTextMode.ValueAndName, label: 'Value and name' },
{ value: BigValueTextMode.Name, label: 'Name' },
{ value: BigValueTextMode.None, label: 'None' },
],
},
defaultValue: defaultOptions.textMode,
});
builder
.addSelect({
path: 'textMode',
name: 'Text mode',
description: 'Control if name and value is displayed or just name',
category: mainCategory,
settings: {
options: [
{ value: BigValueTextMode.Auto, label: 'Auto' },
{ value: BigValueTextMode.Value, label: 'Value' },
{ value: BigValueTextMode.ValueAndName, label: 'Value and name' },
{ value: BigValueTextMode.Name, label: 'Name' },
{ value: BigValueTextMode.None, label: 'None' },
],
},
defaultValue: defaultOptions.textMode,
})
.addRadio({
path: 'wideLayout',
name: 'Wide layout',
category: mainCategory,
settings: {
options: [
{ value: true, label: 'On' },
{ value: false, label: 'Off' },
],
},
defaultValue: defaultOptions.wideLayout,
showIf: (config) => config.textMode === BigValueTextMode.ValueAndName,
});
builder
.addSelect({

View File

@ -31,6 +31,7 @@ composableKinds: PanelCfg: {
colorMode: common.BigValueColorMode & (*"value" | _)
justifyMode: common.BigValueJustifyMode & (*"auto" | _)
textMode: common.BigValueTextMode & (*"auto" | _)
wideLayout: bool | *true
} @cuetsy(kind="interface")
}
}]

View File

@ -15,6 +15,7 @@ export interface Options extends common.SingleStatBaseOptions {
graphMode: common.BigValueGraphMode;
justifyMode: common.BigValueJustifyMode;
textMode: common.BigValueTextMode;
wideLayout: boolean;
}
export const defaultOptions: Partial<Options> = {
@ -22,4 +23,5 @@ export const defaultOptions: Partial<Options> = {
graphMode: common.BigValueGraphMode.Area,
justifyMode: common.BigValueJustifyMode.Auto,
textMode: common.BigValueTextMode.Auto,
wideLayout: true,
};