@grafana/scenes 5.28.2--canary.987.12125694286.0 → 5.29.0--canary.808.12161480494.0
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/esm/components/VizPanel/VizPanel.js.map +1 -1
- package/dist/esm/components/VizPanel/VizPanelRenderer.js +2 -2
- package/dist/esm/components/VizPanel/VizPanelRenderer.js.map +1 -1
- package/dist/esm/core/PanelBuilders/VizPanelBuilder.js +4 -0
- package/dist/esm/core/PanelBuilders/VizPanelBuilder.js.map +1 -1
- package/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFilterPill.js +2 -6
- package/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFilterPill.js.map +1 -1
- package/dist/esm/variables/adhoc/AdHocFiltersVariable.js.map +1 -1
- package/dist/esm/variables/variants/query/toMetricFindValues.js +2 -2
- package/dist/esm/variables/variants/query/toMetricFindValues.js.map +1 -1
- package/dist/esm/variables/variants/query/utils.js +7 -7
- package/dist/esm/variables/variants/query/utils.js.map +1 -1
- package/dist/index.d.ts +9 -6
- package/dist/index.js +17 -17
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"toMetricFindValues.js","sources":["../../../../../src/variables/variants/query/toMetricFindValues.ts"],"sourcesContent":["import {\n FieldType,\n getFieldDisplayName,\n isDataFrame,\n MetricFindValue,\n PanelData,\n getProcessedDataFrames,\n} from '@grafana/data';\nimport { map, OperatorFunction } from 'rxjs';\n\nexport function toMetricFindValues(): OperatorFunction<PanelData, MetricFindValue[]> {\n return (source) =>\n source.pipe(\n map((panelData) => {\n const frames = panelData.series;\n if (!frames || !frames.length) {\n return [];\n }\n\n if (areMetricFindValues(frames)) {\n return frames;\n }\n\n if (frames[0].fields.length === 0) {\n return [];\n }\n\n const processedDataFrames = getProcessedDataFrames(frames);\n const metrics: MetricFindValue[] = [];\n\n let valueIndex = -1;\n let textIndex = -1;\n let stringIndex = -1;\n let expandableIndex = -1;\n\n for (const frame of processedDataFrames) {\n for (let index = 0; index < frame.fields.length; index++) {\n const field = frame.fields[index];\n const fieldName = getFieldDisplayName(field, frame, frames).toLowerCase();\n\n if (field.type === FieldType.string && stringIndex === -1) {\n stringIndex = index;\n }\n\n if (fieldName === 'text' && field.type === FieldType.string && textIndex === -1) {\n textIndex = index;\n }\n\n if (fieldName === 'value' && field.type === FieldType.string && valueIndex === -1) {\n valueIndex = index;\n }\n\n if (\n fieldName === 'expandable' &&\n (field.type === FieldType.boolean || field.type === FieldType.number) &&\n expandableIndex === -1\n ) {\n expandableIndex = index;\n }\n }\n }\n\n if (stringIndex === -1) {\n throw new Error(\"Couldn't find any field of type string in the results.\");\n }\n\n for (const frame of frames) {\n for (let index = 0; index < frame.length; index++) {\n const expandable = expandableIndex !== -1 ? frame.fields[expandableIndex].values.get(index) : undefined;\n const string = frame.fields[stringIndex].values.get(index);\n const text = textIndex !== -1 ? frame.fields[textIndex].values.get(index) :
|
1
|
+
{"version":3,"file":"toMetricFindValues.js","sources":["../../../../../src/variables/variants/query/toMetricFindValues.ts"],"sourcesContent":["import {\n FieldType,\n getFieldDisplayName,\n isDataFrame,\n MetricFindValue,\n PanelData,\n getProcessedDataFrames,\n} from '@grafana/data';\nimport { map, OperatorFunction } from 'rxjs';\n\nexport function toMetricFindValues(): OperatorFunction<PanelData, MetricFindValue[]> {\n return (source) =>\n source.pipe(\n map((panelData) => {\n const frames = panelData.series;\n if (!frames || !frames.length) {\n return [];\n }\n\n if (areMetricFindValues(frames)) {\n return frames;\n }\n\n if (frames[0].fields.length === 0) {\n return [];\n }\n\n const processedDataFrames = getProcessedDataFrames(frames);\n const metrics: MetricFindValue[] = [];\n\n let valueIndex = -1;\n let textIndex = -1;\n let stringIndex = -1;\n let expandableIndex = -1;\n\n for (const frame of processedDataFrames) {\n for (let index = 0; index < frame.fields.length; index++) {\n const field = frame.fields[index];\n const fieldName = getFieldDisplayName(field, frame, frames).toLowerCase();\n\n if (field.type === FieldType.string && stringIndex === -1) {\n stringIndex = index;\n }\n\n if (fieldName === 'text' && field.type === FieldType.string && textIndex === -1) {\n textIndex = index;\n }\n\n if (fieldName === 'value' && field.type === FieldType.string && valueIndex === -1) {\n valueIndex = index;\n }\n\n if (\n fieldName === 'expandable' &&\n (field.type === FieldType.boolean || field.type === FieldType.number) &&\n expandableIndex === -1\n ) {\n expandableIndex = index;\n }\n }\n }\n\n if (stringIndex === -1) {\n throw new Error(\"Couldn't find any field of type string in the results.\");\n }\n\n for (const frame of frames) {\n for (let index = 0; index < frame.length; index++) {\n const expandable = expandableIndex !== -1 ? frame.fields[expandableIndex].values.get(index) : undefined;\n const string = frame.fields[stringIndex].values.get(index);\n const text = textIndex !== -1 ? frame.fields[textIndex].values.get(index) : '';\n const value = valueIndex !== -1 ? frame.fields[valueIndex].values.get(index) : '';\n\n if (valueIndex === -1 && textIndex === -1) {\n metrics.push({ text: string, value: string, expandable });\n continue;\n }\n\n if (valueIndex === -1 && textIndex !== -1) {\n metrics.push({ text, value: text, expandable });\n continue;\n }\n\n if (valueIndex !== -1 && textIndex === -1) {\n metrics.push({ text: value, value, expandable });\n continue;\n }\n\n metrics.push({ text, value, expandable });\n }\n }\n\n return metrics;\n })\n );\n}\n\nfunction areMetricFindValues(data: any[]): data is MetricFindValue[] {\n if (!data) {\n return false;\n }\n\n if (!data.length) {\n return true;\n }\n\n const firstValue: any = data[0];\n\n if (isDataFrame(firstValue)) {\n return false;\n }\n\n for (const firstValueKey in firstValue) {\n if (!firstValue.hasOwnProperty(firstValueKey)) {\n continue;\n }\n\n if (\n firstValue[firstValueKey] !== null &&\n typeof firstValue[firstValueKey] !== 'string' &&\n typeof firstValue[firstValueKey] !== 'number'\n ) {\n continue;\n }\n\n const key = firstValueKey.toLowerCase();\n\n if (key === 'text' || key === 'value') {\n return true;\n }\n }\n\n return false;\n}\n"],"names":[],"mappings":"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"}
|
@@ -1,8 +1,8 @@
|
|
1
1
|
import { isNumber, uniqBy, sortBy, toLower } from 'lodash';
|
2
2
|
import { stringToJsRegex, VariableSort } from '@grafana/data';
|
3
3
|
|
4
|
-
|
5
|
-
var _a, _b, _c, _d, _e, _f;
|
4
|
+
function metricNamesToVariableValues(variableRegEx, sort, metricNames) {
|
5
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;
|
6
6
|
let regex;
|
7
7
|
let options = [];
|
8
8
|
if (variableRegEx) {
|
@@ -10,8 +10,8 @@ const metricNamesToVariableValues = (variableRegEx, sort, metricNames) => {
|
|
10
10
|
}
|
11
11
|
for (let i = 0; i < metricNames.length; i++) {
|
12
12
|
const item = metricNames[i];
|
13
|
-
let text =
|
14
|
-
let value =
|
13
|
+
let text = (_b = (_a = item.text) != null ? _a : item.value) != null ? _b : "";
|
14
|
+
let value = (_d = (_c = item.value) != null ? _c : item.text) != null ? _d : "";
|
15
15
|
if (isNumber(value)) {
|
16
16
|
value = value.toString();
|
17
17
|
}
|
@@ -28,8 +28,8 @@ const metricNamesToVariableValues = (variableRegEx, sort, metricNames) => {
|
|
28
28
|
const firstMatch = matches.find((m) => m.length > 1);
|
29
29
|
const manyMatches = matches.length > 1 && firstMatch;
|
30
30
|
if (valueGroup || textGroup) {
|
31
|
-
value = (
|
32
|
-
text = (
|
31
|
+
value = (_g = (_e = valueGroup == null ? void 0 : valueGroup.groups) == null ? void 0 : _e.value) != null ? _g : (_f = textGroup == null ? void 0 : textGroup.groups) == null ? void 0 : _f.text;
|
32
|
+
text = (_j = (_h = textGroup == null ? void 0 : textGroup.groups) == null ? void 0 : _h.text) != null ? _j : (_i = valueGroup == null ? void 0 : valueGroup.groups) == null ? void 0 : _i.value;
|
33
33
|
} else if (manyMatches) {
|
34
34
|
for (let j = 0; j < matches.length; j++) {
|
35
35
|
const match = matches[j];
|
@@ -45,7 +45,7 @@ const metricNamesToVariableValues = (variableRegEx, sort, metricNames) => {
|
|
45
45
|
}
|
46
46
|
options = uniqBy(options, "value");
|
47
47
|
return sortVariableValues(options, sort);
|
48
|
-
}
|
48
|
+
}
|
49
49
|
const getAllMatches = (str, regex) => {
|
50
50
|
const results = [];
|
51
51
|
let matches = null;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"utils.js","sources":["../../../../../src/variables/variants/query/utils.ts"],"sourcesContent":["import { isNumber, sortBy, toLower, uniqBy } from 'lodash';\n\nimport { stringToJsRegex, VariableSort } from '@grafana/data';\n\nimport { VariableValueOption } from '../../types';\n\nexport
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../../../../src/variables/variants/query/utils.ts"],"sourcesContent":["import { isNumber, sortBy, toLower, uniqBy } from 'lodash';\n\nimport { stringToJsRegex, VariableSort } from '@grafana/data';\n\nimport { VariableValueOption } from '../../types';\n\nexport function metricNamesToVariableValues(variableRegEx: string, sort: VariableSort, metricNames: any[]) {\n let regex;\n let options: VariableValueOption[] = [];\n\n if (variableRegEx) {\n regex = stringToJsRegex(variableRegEx);\n }\n\n for (let i = 0; i < metricNames.length; i++) {\n const item = metricNames[i];\n let text = item.text ?? item.value ?? '';\n let value = item.value ?? item.text ?? '';\n\n if (isNumber(value)) {\n value = value.toString();\n }\n\n if (isNumber(text)) {\n text = text.toString();\n }\n\n if (regex) {\n const matches = getAllMatches(value, regex);\n if (!matches.length) {\n continue;\n }\n\n const valueGroup = matches.find((m) => m.groups && m.groups.value);\n const textGroup = matches.find((m) => m.groups && m.groups.text);\n const firstMatch = matches.find((m) => m.length > 1);\n const manyMatches = matches.length > 1 && firstMatch;\n\n if (valueGroup || textGroup) {\n value = valueGroup?.groups?.value ?? textGroup?.groups?.text;\n text = textGroup?.groups?.text ?? valueGroup?.groups?.value;\n } else if (manyMatches) {\n for (let j = 0; j < matches.length; j++) {\n const match = matches[j];\n options.push({ label: match[1], value: match[1] });\n }\n continue;\n } else if (firstMatch) {\n text = firstMatch[1];\n value = firstMatch[1];\n }\n }\n\n options.push({ label: text, value: value });\n }\n\n options = uniqBy(options, 'value');\n return sortVariableValues(options, sort);\n}\n\nconst getAllMatches = (str: string, regex: RegExp): RegExpExecArray[] => {\n const results: RegExpExecArray[] = [];\n let matches = null;\n\n regex.lastIndex = 0;\n\n do {\n matches = regex.exec(str);\n if (matches) {\n results.push(matches);\n }\n } while (regex.global && matches && matches[0] !== '' && matches[0] !== undefined);\n\n return results;\n};\n\nexport const sortVariableValues = (options: any[], sortOrder: VariableSort) => {\n if (sortOrder === VariableSort.disabled) {\n return options;\n }\n\n // @ts-ignore\n const sortByNumeric = (opt) => {\n if (!opt.text) {\n return -1;\n }\n const matches = opt.text.match(/.*?(\\d+).*/);\n if (!matches || matches.length < 2) {\n return -1;\n } else {\n return parseInt(matches[1], 10);\n }\n };\n\n // @ts-ignore\n const sortByNaturalSort = (options) => {\n //@ts-ignore\n return options.sort((a, b) => {\n if (!a.text) {\n return -1;\n }\n\n if (!b.text) {\n return 1;\n }\n\n return a.text.localeCompare(b.text, undefined, { numeric: true });\n });\n };\n\n switch (sortOrder) {\n case VariableSort.alphabeticalAsc:\n options = sortBy(options, 'label');\n break;\n case VariableSort.alphabeticalDesc:\n options = sortBy(options, 'label').reverse();\n break;\n case VariableSort.numericalAsc:\n options = sortBy(options, sortByNumeric);\n break;\n case VariableSort.numericalDesc:\n options = sortBy(options, sortByNumeric);\n options = options.reverse();\n break;\n case VariableSort.alphabeticalCaseInsensitiveAsc:\n options = sortBy(options, (opt) => {\n return toLower(opt.label);\n });\n break;\n case VariableSort.alphabeticalCaseInsensitiveDesc:\n options = sortBy(options, (opt) => {\n return toLower(opt.label);\n });\n options = options.reverse();\n break;\n case VariableSort.naturalAsc || 7:\n // Sort by natural sort\n options = sortByNaturalSort(options);\n break;\n case VariableSort.naturalDesc || 8:\n options = sortByNaturalSort(options);\n options = options.reverse();\n break;\n default:\n break;\n }\n return options;\n};\n"],"names":["options"],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
@@ -8,7 +8,7 @@ import * as _grafana_schema from '@grafana/schema';
|
|
8
8
|
import { VariableType, VariableHide, TimeZone, DataTopic, DataQuery, DataSourceRef, VariableRefresh, LoadingState, DashboardCursorSync, MatcherConfig, TableFieldOptions } from '@grafana/schema';
|
9
9
|
import { LocationService, VariableInterpolation } from '@grafana/runtime';
|
10
10
|
import { Location } from 'history';
|
11
|
-
import { PanelContext, IconName } from '@grafana/ui';
|
11
|
+
import { PanelContext, PanelChromeProps, IconName } from '@grafana/ui';
|
12
12
|
import ReactGridLayout from 'react-grid-layout';
|
13
13
|
import { RouteComponentProps } from 'react-router-dom';
|
14
14
|
import { Options, FieldConfig as FieldConfig$1 } from '@grafana/schema/dist/esm/raw/composable/barchart/panelcfg/x/BarChartPanelCfg_types.gen';
|
@@ -607,11 +607,6 @@ interface AdHocFiltersVariableState extends SceneVariableState {
|
|
607
607
|
* impact the current queries are presented to the user.
|
608
608
|
*/
|
609
609
|
useQueriesAsFilterForOptions?: boolean;
|
610
|
-
/**
|
611
|
-
* Populates the filter pill with the existing value.
|
612
|
-
* If true, this will hide any results from getTagValuesProvider that don't match the existing value until the user deletes the existing value.
|
613
|
-
*/
|
614
|
-
populateInputOnEdit?: boolean;
|
615
610
|
/**
|
616
611
|
* Flag that decides whether custom values can be added to the filter
|
617
612
|
*/
|
@@ -1790,6 +1785,10 @@ interface VizPanelState<TOptions = {}, TFieldConfig = {}> extends SceneObjectSta
|
|
1790
1785
|
* Mainly for advanced use cases that need custom handling of PanelContext callbacks.
|
1791
1786
|
*/
|
1792
1787
|
extendPanelContext?: (vizPanel: VizPanel, context: PanelContext) => void;
|
1788
|
+
/**
|
1789
|
+
* For advanced use cases that need to override PanelChrome props.
|
1790
|
+
*/
|
1791
|
+
panelChromeProps?: Partial<PanelChromeProps>;
|
1793
1792
|
/**
|
1794
1793
|
* @internal
|
1795
1794
|
* Only for use from core to handle migration from old angular panels
|
@@ -2469,6 +2468,10 @@ declare class VizPanelBuilder<TOptions extends {}, TFieldConfig extends {}> impl
|
|
2469
2468
|
* Set scene object or react component to use as panel header actions.
|
2470
2469
|
*/
|
2471
2470
|
setHeaderActions(headerActions: VizPanelState['headerActions']): this;
|
2471
|
+
/**
|
2472
|
+
* Set PanelChrome prop overrides
|
2473
|
+
*/
|
2474
|
+
setPanelChromeProps(props: Partial<PanelChromeProps>): this;
|
2472
2475
|
/**
|
2473
2476
|
* Set color.
|
2474
2477
|
*/
|
package/dist/index.js
CHANGED
@@ -4725,16 +4725,12 @@ function AdHocFilterPill({ filter, model, readOnly, focusOnWipInputRef }) {
|
|
4725
4725
|
className: css.cx(styles.combinedFilterPill, { [styles.readOnlyCombinedFilter]: readOnly }),
|
4726
4726
|
onClick: (e) => {
|
4727
4727
|
e.stopPropagation();
|
4728
|
-
|
4729
|
-
setPopulateInputOnEdit(true);
|
4730
|
-
}
|
4728
|
+
setPopulateInputOnEdit(true);
|
4731
4729
|
handleChangeViewMode();
|
4732
4730
|
},
|
4733
4731
|
onKeyDown: (e) => {
|
4734
4732
|
if (e.key === "Enter") {
|
4735
|
-
|
4736
|
-
setPopulateInputOnEdit(true);
|
4737
|
-
}
|
4733
|
+
setPopulateInputOnEdit(true);
|
4738
4734
|
handleChangeViewMode();
|
4739
4735
|
}
|
4740
4736
|
},
|
@@ -6132,8 +6128,8 @@ function ensureVariableQueryModelIsADataQuery(variable) {
|
|
6132
6128
|
return variable.state.query;
|
6133
6129
|
}
|
6134
6130
|
|
6135
|
-
|
6136
|
-
var _a, _b, _c, _d, _e, _f;
|
6131
|
+
function metricNamesToVariableValues(variableRegEx, sort, metricNames) {
|
6132
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;
|
6137
6133
|
let regex;
|
6138
6134
|
let options = [];
|
6139
6135
|
if (variableRegEx) {
|
@@ -6141,8 +6137,8 @@ const metricNamesToVariableValues = (variableRegEx, sort, metricNames) => {
|
|
6141
6137
|
}
|
6142
6138
|
for (let i = 0; i < metricNames.length; i++) {
|
6143
6139
|
const item = metricNames[i];
|
6144
|
-
let text =
|
6145
|
-
let value =
|
6140
|
+
let text = (_b = (_a = item.text) != null ? _a : item.value) != null ? _b : "";
|
6141
|
+
let value = (_d = (_c = item.value) != null ? _c : item.text) != null ? _d : "";
|
6146
6142
|
if (lodash.isNumber(value)) {
|
6147
6143
|
value = value.toString();
|
6148
6144
|
}
|
@@ -6159,8 +6155,8 @@ const metricNamesToVariableValues = (variableRegEx, sort, metricNames) => {
|
|
6159
6155
|
const firstMatch = matches.find((m) => m.length > 1);
|
6160
6156
|
const manyMatches = matches.length > 1 && firstMatch;
|
6161
6157
|
if (valueGroup || textGroup) {
|
6162
|
-
value = (
|
6163
|
-
text = (
|
6158
|
+
value = (_g = (_e = valueGroup == null ? void 0 : valueGroup.groups) == null ? void 0 : _e.value) != null ? _g : (_f = textGroup == null ? void 0 : textGroup.groups) == null ? void 0 : _f.text;
|
6159
|
+
text = (_j = (_h = textGroup == null ? void 0 : textGroup.groups) == null ? void 0 : _h.text) != null ? _j : (_i = valueGroup == null ? void 0 : valueGroup.groups) == null ? void 0 : _i.value;
|
6164
6160
|
} else if (manyMatches) {
|
6165
6161
|
for (let j = 0; j < matches.length; j++) {
|
6166
6162
|
const match = matches[j];
|
@@ -6176,7 +6172,7 @@ const metricNamesToVariableValues = (variableRegEx, sort, metricNames) => {
|
|
6176
6172
|
}
|
6177
6173
|
options = lodash.uniqBy(options, "value");
|
6178
6174
|
return sortVariableValues(options, sort);
|
6179
|
-
}
|
6175
|
+
}
|
6180
6176
|
const getAllMatches = (str, regex) => {
|
6181
6177
|
const results = [];
|
6182
6178
|
let matches = null;
|
@@ -6295,8 +6291,8 @@ function toMetricFindValues() {
|
|
6295
6291
|
for (let index = 0; index < frame.length; index++) {
|
6296
6292
|
const expandable = expandableIndex !== -1 ? frame.fields[expandableIndex].values.get(index) : void 0;
|
6297
6293
|
const string = frame.fields[stringIndex].values.get(index);
|
6298
|
-
const text = textIndex !== -1 ? frame.fields[textIndex].values.get(index) :
|
6299
|
-
const value = valueIndex !== -1 ? frame.fields[valueIndex].values.get(index) :
|
6294
|
+
const text = textIndex !== -1 ? frame.fields[textIndex].values.get(index) : "";
|
6295
|
+
const value = valueIndex !== -1 ? frame.fields[valueIndex].values.get(index) : "";
|
6300
6296
|
if (valueIndex === -1 && textIndex === -1) {
|
6301
6297
|
metrics.push({ text: string, value: string, expandable });
|
6302
6298
|
continue;
|
@@ -7072,7 +7068,7 @@ function VizPanelRenderer({ model }) {
|
|
7072
7068
|
ref,
|
7073
7069
|
className: absoluteWrapper,
|
7074
7070
|
"data-viz-panel-key": model.state.key
|
7075
|
-
}, width > 0 && height > 0 && /* @__PURE__ */ React__default["default"].createElement(ui.PanelChrome, {
|
7071
|
+
}, width > 0 && height > 0 && /* @__PURE__ */ React__default["default"].createElement(ui.PanelChrome, __spreadValues$t({
|
7076
7072
|
title: titleInterpolated,
|
7077
7073
|
description: (description == null ? void 0 : description.trim()) ? model.getDescription : void 0,
|
7078
7074
|
loadingState: data$1.state,
|
@@ -7094,7 +7090,7 @@ function VizPanelRenderer({ model }) {
|
|
7094
7090
|
onFocus: setPanelAttention,
|
7095
7091
|
onMouseEnter: setPanelAttention,
|
7096
7092
|
onMouseMove: debouncedMouseMove
|
7097
|
-
}, (innerWidth, innerHeight) => /* @__PURE__ */ React__default["default"].createElement(React__default["default"].Fragment, null, /* @__PURE__ */ React__default["default"].createElement(ui.ErrorBoundaryAlert, {
|
7093
|
+
}, model.state.panelChromeProps), (innerWidth, innerHeight) => /* @__PURE__ */ React__default["default"].createElement(React__default["default"].Fragment, null, /* @__PURE__ */ React__default["default"].createElement(ui.ErrorBoundaryAlert, {
|
7098
7094
|
dependencies: [plugin, data$1]
|
7099
7095
|
}, /* @__PURE__ */ React__default["default"].createElement(data.PluginContextProvider, {
|
7100
7096
|
meta: plugin.meta
|
@@ -13136,6 +13132,10 @@ class VizPanelBuilder {
|
|
13136
13132
|
this._state.headerActions = headerActions;
|
13137
13133
|
return this;
|
13138
13134
|
}
|
13135
|
+
setPanelChromeProps(props) {
|
13136
|
+
this._state.panelChromeProps = props;
|
13137
|
+
return this;
|
13138
|
+
}
|
13139
13139
|
setColor(color) {
|
13140
13140
|
this._fieldConfigBuilder.setColor(color);
|
13141
13141
|
return this;
|