@perses-dev/table-plugin 0.11.2 → 0.13.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/__mf/css/async/362.85c2cbf6.css +1 -0
- package/__mf/font/inter-cyrillic-300-normal.432f2b21.woff +0 -0
- package/__mf/font/inter-cyrillic-300-normal.9da91009.woff2 +0 -0
- package/__mf/font/inter-cyrillic-400-normal.372704ff.woff2 +0 -0
- package/__mf/font/inter-cyrillic-400-normal.a6b6ef6f.woff +0 -0
- package/__mf/font/inter-cyrillic-500-normal.7c15bba8.woff2 +0 -0
- package/__mf/font/inter-cyrillic-500-normal.b9f8c929.woff +0 -0
- package/__mf/font/inter-cyrillic-600-normal.2f42892a.woff2 +0 -0
- package/__mf/font/inter-cyrillic-600-normal.c3987adc.woff +0 -0
- package/__mf/font/inter-cyrillic-700-normal.93eba3c3.woff +0 -0
- package/__mf/font/inter-cyrillic-700-normal.e9e5b2dc.woff2 +0 -0
- package/__mf/font/inter-cyrillic-900-normal.f285bd7a.woff2 +0 -0
- package/__mf/font/inter-cyrillic-900-normal.ffbd8a3a.woff +0 -0
- package/__mf/font/inter-cyrillic-ext-300-normal.95bb9038.woff2 +0 -0
- package/__mf/font/inter-cyrillic-ext-300-normal.cfc143a9.woff +0 -0
- package/__mf/font/inter-cyrillic-ext-400-normal.2a31c04b.woff +0 -0
- package/__mf/font/inter-cyrillic-ext-400-normal.f572b170.woff2 +0 -0
- package/__mf/font/inter-cyrillic-ext-500-normal.5a6bb1da.woff +0 -0
- package/__mf/font/inter-cyrillic-ext-500-normal.fe0d9b14.woff2 +0 -0
- package/__mf/font/inter-cyrillic-ext-600-normal.ecbdecad.woff +0 -0
- package/__mf/font/inter-cyrillic-ext-600-normal.f7b3c15b.woff2 +0 -0
- package/__mf/font/inter-cyrillic-ext-700-normal.4b4022a6.woff +0 -0
- package/__mf/font/inter-cyrillic-ext-700-normal.74b516d2.woff2 +0 -0
- package/__mf/font/inter-cyrillic-ext-900-normal.9970ddb5.woff +0 -0
- package/__mf/font/inter-cyrillic-ext-900-normal.a0d59adc.woff2 +0 -0
- package/__mf/font/inter-greek-300-normal.0d7be683.woff2 +0 -0
- package/__mf/font/inter-greek-300-normal.8f0b988e.woff +0 -0
- package/__mf/font/inter-greek-400-normal.cc58c11b.woff +0 -0
- package/__mf/font/inter-greek-400-normal.d7020e3c.woff2 +0 -0
- package/__mf/font/inter-greek-500-normal.d9a33207.woff +0 -0
- package/__mf/font/inter-greek-500-normal.f41f43db.woff2 +0 -0
- package/__mf/font/inter-greek-600-normal.4ec0c1c1.woff +0 -0
- package/__mf/font/inter-greek-600-normal.cc532937.woff2 +0 -0
- package/__mf/font/inter-greek-700-normal.5ec6c758.woff +0 -0
- package/__mf/font/inter-greek-700-normal.97f0eeeb.woff2 +0 -0
- package/__mf/font/inter-greek-900-normal.46b66369.woff2 +0 -0
- package/__mf/font/inter-greek-900-normal.9ae3a3c5.woff +0 -0
- package/__mf/font/inter-greek-ext-300-normal.10247a66.woff2 +0 -0
- package/__mf/font/inter-greek-ext-300-normal.4668e5cb.woff +0 -0
- package/__mf/font/inter-greek-ext-400-normal.4ce1df5d.woff2 +0 -0
- package/__mf/font/inter-greek-ext-400-normal.88ede1ea.woff +0 -0
- package/__mf/font/inter-greek-ext-500-normal.7a4aa726.woff +0 -0
- package/__mf/font/inter-greek-ext-500-normal.cbd51e2d.woff2 +0 -0
- package/__mf/font/inter-greek-ext-600-normal.089a95ee.woff +0 -0
- package/__mf/font/inter-greek-ext-600-normal.1f33d317.woff2 +0 -0
- package/__mf/font/inter-greek-ext-700-normal.31f1075d.woff +0 -0
- package/__mf/font/inter-greek-ext-700-normal.827cd618.woff2 +0 -0
- package/__mf/font/inter-greek-ext-900-normal.531bcee7.woff +0 -0
- package/__mf/font/inter-greek-ext-900-normal.8a9b36b9.woff2 +0 -0
- package/__mf/font/inter-latin-300-normal.15fb600d.woff2 +0 -0
- package/__mf/font/inter-latin-300-normal.6f95f590.woff +0 -0
- package/__mf/font/inter-latin-400-normal.2c7a775c.woff +0 -0
- package/__mf/font/inter-latin-400-normal.ef6d3f52.woff2 +0 -0
- package/__mf/font/inter-latin-500-normal.b7b43ace.woff2 +0 -0
- package/__mf/font/inter-latin-500-normal.cb4c8ceb.woff +0 -0
- package/__mf/font/inter-latin-600-normal.8fb1a964.woff2 +0 -0
- package/__mf/font/inter-latin-600-normal.ce0f5f43.woff +0 -0
- package/__mf/font/inter-latin-700-normal.953b7aa5.woff2 +0 -0
- package/__mf/font/inter-latin-700-normal.9c21d4dc.woff +0 -0
- package/__mf/font/inter-latin-900-normal.2a8028ec.woff2 +0 -0
- package/__mf/font/inter-latin-900-normal.fa252135.woff +0 -0
- package/__mf/font/inter-latin-ext-300-normal.167cc8c9.woff2 +0 -0
- package/__mf/font/inter-latin-ext-300-normal.f695be66.woff +0 -0
- package/__mf/font/inter-latin-ext-400-normal.32a25442.woff2 +0 -0
- package/__mf/font/inter-latin-ext-400-normal.4edcaace.woff +0 -0
- package/__mf/font/inter-latin-ext-500-normal.a19a84a6.woff +0 -0
- package/__mf/font/inter-latin-ext-500-normal.d9b491de.woff2 +0 -0
- package/__mf/font/inter-latin-ext-600-normal.38b075d8.woff2 +0 -0
- package/__mf/font/inter-latin-ext-600-normal.49faa47a.woff +0 -0
- package/__mf/font/inter-latin-ext-700-normal.93534b50.woff +0 -0
- package/__mf/font/inter-latin-ext-700-normal.b63daa1a.woff2 +0 -0
- package/__mf/font/inter-latin-ext-900-normal.0efdb307.woff +0 -0
- package/__mf/font/inter-latin-ext-900-normal.9c0fc2c7.woff2 +0 -0
- package/__mf/font/inter-vietnamese-300-normal.aad496d8.woff +0 -0
- package/__mf/font/inter-vietnamese-300-normal.ad9ef503.woff2 +0 -0
- package/__mf/font/inter-vietnamese-400-normal.a9dd2faf.woff +0 -0
- package/__mf/font/inter-vietnamese-400-normal.de4fc44f.woff2 +0 -0
- package/__mf/font/inter-vietnamese-500-normal.7c0a695f.woff2 +0 -0
- package/__mf/font/inter-vietnamese-500-normal.a3a73b95.woff +0 -0
- package/__mf/font/inter-vietnamese-600-normal.9d518599.woff2 +0 -0
- package/__mf/font/inter-vietnamese-600-normal.c5ce3fcb.woff +0 -0
- package/__mf/font/inter-vietnamese-700-normal.bc68b199.woff +0 -0
- package/__mf/font/inter-vietnamese-700-normal.faf12809.woff2 +0 -0
- package/__mf/font/inter-vietnamese-900-normal.2b782045.woff +0 -0
- package/__mf/font/inter-vietnamese-900-normal.e639b65a.woff2 +0 -0
- package/__mf/js/Table.216368cb.js +7 -0
- package/__mf/js/async/1432.47ca9bc7.js +1 -0
- package/__mf/js/async/1616.29b0085e.js +1 -0
- package/__mf/js/async/2043.0b0ffaef.js +2 -0
- package/__mf/js/async/2082.c0b3db38.js +1 -0
- package/__mf/js/async/2842.cee1ed42.js +1 -0
- package/__mf/js/async/339.db885c93.js +1 -0
- package/__mf/js/async/3613.83b242dc.js +22 -0
- package/__mf/js/async/362.4a21f6da.js +7 -0
- package/__mf/js/async/{550.8bab52fc.js.LICENSE.txt → 362.4a21f6da.js.LICENSE.txt} +19 -1
- package/__mf/js/async/392.eef36bcd.js +2 -0
- package/__mf/js/async/4121.403fdade.js +2 -0
- package/__mf/js/async/4320.5cbfbd1c.js +1 -0
- package/__mf/js/async/5002.fd6ad994.js +1 -0
- package/__mf/js/async/5071.1684b9fd.js +1 -0
- package/__mf/js/async/5587.966d92d2.js +1 -0
- package/__mf/js/async/6274.71776a1d.js +2 -0
- package/__mf/js/async/6811.6a011de7.js +38 -0
- package/__mf/js/async/7177.f0c1cf85.js +1 -0
- package/__mf/js/async/7192.f9d57dbb.js +1 -0
- package/__mf/js/async/7413.a78d135c.js +1 -0
- package/__mf/js/async/7862.de8ef786.js +2 -0
- package/__mf/js/async/7968.545aab42.js +1 -0
- package/__mf/js/async/7978.61f7fc2d.js +1 -0
- package/__mf/js/async/8002.0a3e62a4.js +3 -0
- package/__mf/js/async/8356.7a060c2c.js +1 -0
- package/__mf/js/async/8470.dac32d6a.js +2 -0
- package/__mf/js/async/868.a08b9f5f.js +110 -0
- package/__mf/js/async/{868.9f710584.js.LICENSE.txt → 868.a08b9f5f.js.LICENSE.txt} +1 -1
- package/__mf/js/async/873.bb80627c.js +1 -0
- package/__mf/js/async/9051.2db4f8e5.js +1 -0
- package/__mf/js/async/9235.35b8884a.js +1 -0
- package/__mf/js/async/941.97799379.js +2 -0
- package/__mf/js/async/9546.f3c1cf02.js +2 -0
- package/__mf/js/async/{1117.b21b0ae4.js.LICENSE.txt → 9546.f3c1cf02.js.LICENSE.txt} +1 -1
- package/__mf/js/async/9588.178c0b3f.js +1 -0
- package/__mf/js/async/9701.4ae63d2f.js +1 -0
- package/__mf/js/async/__federation_expose_Table.a4d61f93.js +1 -0
- package/__mf/js/async/lib-router.5fad6e02.js +2 -0
- package/__mf/js/async/{lib-router.2e1dec85.js.LICENSE.txt → lib-router.5fad6e02.js.LICENSE.txt} +3 -3
- package/__mf/js/main.db87300f.js +7 -0
- package/lib/TableExportAction.d.ts +1 -1
- package/lib/TableExportAction.d.ts.map +1 -1
- package/lib/TableExportAction.js +1 -2
- package/lib/TableExportAction.js.map +1 -1
- package/lib/cjs/TableExportAction.js +1 -2
- package/lib/cjs/components/ColumnsEditor/ColumnEditor.js +60 -22
- package/lib/cjs/components/ColumnsEditor/EmbeddedPanelOptionsEditor.js +124 -0
- package/lib/cjs/components/TablePanel.js +243 -21
- package/lib/cjs/models/table-model.js +32 -6
- package/lib/components/ColumnsEditor/ColumnEditor.d.ts.map +1 -1
- package/lib/components/ColumnsEditor/ColumnEditor.js +61 -23
- package/lib/components/ColumnsEditor/ColumnEditor.js.map +1 -1
- package/lib/components/ColumnsEditor/EmbeddedPanelOptionsEditor.d.ts +13 -0
- package/lib/components/ColumnsEditor/EmbeddedPanelOptionsEditor.d.ts.map +1 -0
- package/lib/components/ColumnsEditor/EmbeddedPanelOptionsEditor.js +114 -0
- package/lib/components/ColumnsEditor/EmbeddedPanelOptionsEditor.js.map +1 -0
- package/lib/components/EmbeddedPanel.d.ts +1 -1
- package/lib/components/EmbeddedPanel.d.ts.map +1 -1
- package/lib/components/EmbeddedPanel.js.map +1 -1
- package/lib/components/TablePanel.d.ts +1 -1
- package/lib/components/TablePanel.d.ts.map +1 -1
- package/lib/components/TablePanel.js +243 -21
- package/lib/components/TablePanel.js.map +1 -1
- package/lib/components/TableTransformsEditor.d.ts.map +1 -1
- package/lib/components/TableTransformsEditor.js.map +1 -1
- package/lib/models/table-model.d.ts +2 -2
- package/lib/models/table-model.d.ts.map +1 -1
- package/lib/models/table-model.js +32 -6
- package/lib/models/table-model.js.map +1 -1
- package/lib/table-data-utils.d.ts +1 -1
- package/lib/table-data-utils.d.ts.map +1 -1
- package/lib/table-data-utils.js.map +1 -1
- package/lib/test/mock-query-results.d.ts +1 -1
- package/lib/test/mock-query-results.js.map +1 -1
- package/mf-manifest.json +91 -75
- package/mf-stats.json +106 -78
- package/package.json +6 -5
- package/__mf/css/async/3061.d3010b86.css +0 -1
- package/__mf/css/async/5442.d3010b86.css +0 -1
- package/__mf/css/async/7823.d3010b86.css +0 -1
- package/__mf/font/lato-all-300-normal.322bdf14.woff +0 -0
- package/__mf/font/lato-all-400-normal.63513b00.woff +0 -0
- package/__mf/font/lato-all-700-normal.bb27db94.woff +0 -0
- package/__mf/font/lato-all-900-normal.a27049a3.woff +0 -0
- package/__mf/font/lato-latin-300-normal.c5195215.woff2 +0 -0
- package/__mf/font/lato-latin-400-normal.b7ffde23.woff2 +0 -0
- package/__mf/font/lato-latin-700-normal.d5eb20bc.woff2 +0 -0
- package/__mf/font/lato-latin-900-normal.d884a71c.woff2 +0 -0
- package/__mf/font/lato-latin-ext-300-normal.abcc64a9.woff2 +0 -0
- package/__mf/font/lato-latin-ext-400-normal.6ebed106.woff2 +0 -0
- package/__mf/font/lato-latin-ext-700-normal.8697d1d5.woff2 +0 -0
- package/__mf/font/lato-latin-ext-900-normal.20a2b415.woff2 +0 -0
- package/__mf/js/Table.e34e0ae1.js +0 -6
- package/__mf/js/async/1103.ffbc2bec.js +0 -1
- package/__mf/js/async/1117.b21b0ae4.js +0 -2
- package/__mf/js/async/1432.acd0ad59.js +0 -1
- package/__mf/js/async/1616.7a74f4ef.js +0 -1
- package/__mf/js/async/2043.fdebf89c.js +0 -2
- package/__mf/js/async/208.2b17c08c.js +0 -3
- package/__mf/js/async/2082.78532c3c.js +0 -1
- package/__mf/js/async/272.3bc7825c.js +0 -1
- package/__mf/js/async/392.49e51fc5.js +0 -2
- package/__mf/js/async/4121.8e97ef88.js +0 -2
- package/__mf/js/async/5002.3189d214.js +0 -1
- package/__mf/js/async/5019.5318688a.js +0 -1
- package/__mf/js/async/5071.91e1c002.js +0 -1
- package/__mf/js/async/54.8b007a26.js +0 -22
- package/__mf/js/async/550.8bab52fc.js +0 -7
- package/__mf/js/async/5587.f5f2b0cc.js +0 -1
- package/__mf/js/async/6274.14683c28.js +0 -2
- package/__mf/js/async/6283.e044c368.js +0 -2
- package/__mf/js/async/6753.032ce611.js +0 -1
- package/__mf/js/async/6811.4e18bc66.js +0 -38
- package/__mf/js/async/7177.356298ae.js +0 -1
- package/__mf/js/async/7192.66c9e3a5.js +0 -1
- package/__mf/js/async/7968.a66bfadb.js +0 -1
- package/__mf/js/async/7978.a19f5a4f.js +0 -1
- package/__mf/js/async/8356.8ae40b6a.js +0 -1
- package/__mf/js/async/8470.1b8b20ff.js +0 -2
- package/__mf/js/async/868.9f710584.js +0 -110
- package/__mf/js/async/873.a7310675.js +0 -1
- package/__mf/js/async/9051.e3054e02.js +0 -1
- package/__mf/js/async/9235.eee50e10.js +0 -1
- package/__mf/js/async/941.333875f4.js +0 -2
- package/__mf/js/async/9588.7b021071.js +0 -1
- package/__mf/js/async/9701.3b068d23.js +0 -1
- package/__mf/js/async/__federation_expose_Table.894a962f.js +0 -1
- package/__mf/js/async/lib-router.2e1dec85.js +0 -2
- package/__mf/js/main.5b8b137b.js +0 -6
- /package/__mf/js/async/{2043.fdebf89c.js.LICENSE.txt → 2043.0b0ffaef.js.LICENSE.txt} +0 -0
- /package/__mf/js/async/{54.8b007a26.js.LICENSE.txt → 3613.83b242dc.js.LICENSE.txt} +0 -0
- /package/__mf/js/async/{392.49e51fc5.js.LICENSE.txt → 392.eef36bcd.js.LICENSE.txt} +0 -0
- /package/__mf/js/async/{4121.8e97ef88.js.LICENSE.txt → 4121.403fdade.js.LICENSE.txt} +0 -0
- /package/__mf/js/async/{6274.14683c28.js.LICENSE.txt → 6274.71776a1d.js.LICENSE.txt} +0 -0
- /package/__mf/js/async/{6283.e044c368.js.LICENSE.txt → 7862.de8ef786.js.LICENSE.txt} +0 -0
- /package/__mf/js/async/{8470.1b8b20ff.js.LICENSE.txt → 8470.dac32d6a.js.LICENSE.txt} +0 -0
- /package/__mf/js/async/{941.333875f4.js.LICENSE.txt → 941.97799379.js.LICENSE.txt} +0 -0
|
@@ -11,12 +11,13 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
11
11
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
12
|
// See the License for the specific language governing permissions and
|
|
13
13
|
// limitations under the License.
|
|
14
|
-
import { Button, ButtonGroup, Stack, Switch, TextField } from '@mui/material';
|
|
14
|
+
import { Button, ButtonGroup, Stack, Switch, TextField, Typography } from '@mui/material';
|
|
15
15
|
import { useState } from 'react';
|
|
16
16
|
import { AlignSelector, FormatControls, OptionsEditorColumn, OptionsEditorControl, OptionsEditorGrid, OptionsEditorGroup, SortSelectorButtons } from '@perses-dev/components';
|
|
17
17
|
import { PluginKindSelect } from '@perses-dev/plugin-system';
|
|
18
18
|
import { ConditionalPanel } from '../ConditionalPanel';
|
|
19
19
|
import { DataLinkEditor } from './DataLinkEditorDialog';
|
|
20
|
+
import { EmbeddedPanelOptionsEditor } from './EmbeddedPanelOptionsEditor';
|
|
20
21
|
const DEFAULT_FORMAT = {
|
|
21
22
|
unit: 'decimal',
|
|
22
23
|
shortValues: true
|
|
@@ -115,39 +116,53 @@ export function ColumnEditor({ column, onChange, ...others }) {
|
|
|
115
116
|
})
|
|
116
117
|
}),
|
|
117
118
|
/*#__PURE__*/ _jsx(OptionsEditorControl, {
|
|
118
|
-
label: "
|
|
119
|
-
control: /*#__PURE__*/ _jsxs(
|
|
120
|
-
|
|
121
|
-
size: "small",
|
|
119
|
+
label: "Cell display",
|
|
120
|
+
control: /*#__PURE__*/ _jsxs(Stack, {
|
|
121
|
+
spacing: 1,
|
|
122
122
|
children: [
|
|
123
|
-
/*#__PURE__*/
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
123
|
+
/*#__PURE__*/ _jsxs(ButtonGroup, {
|
|
124
|
+
"aria-label": "Cell display",
|
|
125
|
+
size: "small",
|
|
126
|
+
children: [
|
|
127
|
+
/*#__PURE__*/ _jsx(Button, {
|
|
128
|
+
variant: !column.plugin ? 'contained' : 'outlined',
|
|
129
|
+
onClick: ()=>onChange({
|
|
130
|
+
...column,
|
|
131
|
+
plugin: undefined
|
|
132
|
+
}),
|
|
133
|
+
children: "Text"
|
|
128
134
|
}),
|
|
129
|
-
|
|
135
|
+
/*#__PURE__*/ _jsx(Button, {
|
|
136
|
+
variant: column.plugin ? 'contained' : 'outlined',
|
|
137
|
+
onClick: ()=>onChange({
|
|
138
|
+
...column,
|
|
139
|
+
plugin: {
|
|
140
|
+
kind: 'GaugeChart',
|
|
141
|
+
spec: {}
|
|
142
|
+
}
|
|
143
|
+
}),
|
|
144
|
+
children: "Visualization"
|
|
145
|
+
})
|
|
146
|
+
]
|
|
130
147
|
}),
|
|
131
|
-
/*#__PURE__*/ _jsx(
|
|
132
|
-
variant:
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
}
|
|
139
|
-
}),
|
|
140
|
-
children: "Embedded Panel"
|
|
148
|
+
/*#__PURE__*/ _jsx(Typography, {
|
|
149
|
+
variant: "caption",
|
|
150
|
+
color: "text.secondary",
|
|
151
|
+
sx: {
|
|
152
|
+
maxWidth: 360
|
|
153
|
+
},
|
|
154
|
+
children: "Visualizations reuse panel settings (thresholds, units, colors). Text mode uses value formatting below."
|
|
141
155
|
})
|
|
142
156
|
]
|
|
143
157
|
})
|
|
144
158
|
}),
|
|
145
159
|
column.plugin ? /*#__PURE__*/ _jsx(OptionsEditorControl, {
|
|
146
|
-
label: "
|
|
160
|
+
label: "Visualization type",
|
|
147
161
|
control: /*#__PURE__*/ _jsx(PluginKindSelect, {
|
|
148
162
|
pluginTypes: [
|
|
149
163
|
'Panel'
|
|
150
164
|
],
|
|
165
|
+
size: "small",
|
|
151
166
|
value: {
|
|
152
167
|
type: 'Panel',
|
|
153
168
|
kind: column.plugin.kind
|
|
@@ -221,9 +236,32 @@ export function ColumnEditor({ column, onChange, ...others }) {
|
|
|
221
236
|
})
|
|
222
237
|
]
|
|
223
238
|
}),
|
|
239
|
+
column.plugin?.kind === 'GaugeChart' && /*#__PURE__*/ _jsx(Stack, {
|
|
240
|
+
sx: {
|
|
241
|
+
px: 8,
|
|
242
|
+
mt: 4,
|
|
243
|
+
width: '100%'
|
|
244
|
+
},
|
|
245
|
+
spacing: 2,
|
|
246
|
+
children: /*#__PURE__*/ _jsx(OptionsEditorGroup, {
|
|
247
|
+
title: "Visualization settings",
|
|
248
|
+
children: /*#__PURE__*/ _jsx(EmbeddedPanelOptionsEditor, {
|
|
249
|
+
kind: "GaugeChart",
|
|
250
|
+
spec: column.plugin.spec,
|
|
251
|
+
onChange: (nextSpec)=>onChange({
|
|
252
|
+
...column,
|
|
253
|
+
plugin: {
|
|
254
|
+
kind: 'GaugeChart',
|
|
255
|
+
spec: nextSpec
|
|
256
|
+
}
|
|
257
|
+
})
|
|
258
|
+
})
|
|
259
|
+
})
|
|
260
|
+
}),
|
|
224
261
|
/*#__PURE__*/ _jsx(Stack, {
|
|
225
262
|
sx: {
|
|
226
|
-
px: 8
|
|
263
|
+
px: 8,
|
|
264
|
+
mt: column.plugin?.kind === 'GaugeChart' ? 3 : 0
|
|
227
265
|
},
|
|
228
266
|
children: /*#__PURE__*/ _jsx(OptionsEditorGroup, {
|
|
229
267
|
title: "Conditional Cell Format",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/ColumnsEditor/ColumnEditor.tsx"],"sourcesContent":["// Copyright The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { Button, ButtonGroup, Stack, StackProps, Switch, TextField } from '@mui/material';\nimport { ReactElement, useState } from 'react';\nimport {\n AlignSelector,\n FormatControls,\n OptionsEditorColumn,\n OptionsEditorControl,\n OptionsEditorGrid,\n OptionsEditorGroup,\n SortSelectorButtons,\n} from '@perses-dev/components';\nimport { FormatOptions } from '@perses-dev/core';\nimport { PluginKindSelect } from '@perses-dev/plugin-system';\n\nimport { ColumnSettings } from '../../models';\nimport { ConditionalPanel } from '../ConditionalPanel';\nimport { DataLinkEditor } from './DataLinkEditorDialog';\n\nconst DEFAULT_FORMAT: FormatOptions = {\n unit: 'decimal',\n shortValues: true,\n};\n\ntype OmittedMuiProps = 'children' | 'value' | 'onChange';\n\nexport interface ColumnEditorProps extends Omit<StackProps, OmittedMuiProps> {\n column: ColumnSettings;\n onChange: (column: ColumnSettings) => void;\n}\n\nexport function ColumnEditor({ column, onChange, ...others }: ColumnEditorProps): ReactElement {\n const [width, setWidth] = useState<number>(\n column.width === undefined || column.width === 'auto' ? 100 : column.width\n );\n\n return (\n <Stack {...others}>\n <OptionsEditorGrid>\n <OptionsEditorColumn>\n <OptionsEditorGroup title=\"Column\">\n <OptionsEditorControl\n label=\"Name*\"\n control={\n <TextField\n value={column.name}\n onChange={(e) => onChange({ ...column, name: e.target.value })}\n required\n />\n }\n />\n <OptionsEditorControl\n label=\"Header\"\n control={\n <TextField\n value={column.header ?? ''}\n onChange={(e) => onChange({ ...column, header: e.target.value ? e.target.value : undefined })}\n />\n }\n />\n <OptionsEditorControl\n label=\"Header Tooltip\"\n control={\n <TextField\n value={column.headerDescription ?? ''}\n onChange={(e) =>\n onChange({ ...column, headerDescription: e.target.value ? e.target.value : undefined })\n }\n />\n }\n />\n <OptionsEditorControl\n label=\"Cell Tooltip\"\n control={\n <TextField\n value={column.cellDescription ?? ''}\n onChange={(e) =>\n onChange({ ...column, cellDescription: e.target.value ? e.target.value : undefined })\n }\n />\n }\n />\n <OptionsEditorControl\n label=\"Enable sorting\"\n control={\n <Switch\n checked={column.enableSorting ?? false}\n onChange={(e) => onChange({ ...column, enableSorting: e.target.checked })}\n />\n }\n />\n {column.enableSorting && (\n <OptionsEditorControl\n label=\"Default Sort\"\n control={\n <SortSelectorButtons\n size=\"medium\"\n value={column.sort}\n sx={{\n margin: 0.5,\n }}\n onChange={(sort) => onChange({ ...column, sort: sort })}\n />\n }\n />\n )}\n </OptionsEditorGroup>\n </OptionsEditorColumn>\n\n <OptionsEditorColumn>\n <OptionsEditorGroup title=\"Visual\">\n <OptionsEditorControl\n label=\"Show column\"\n control={\n <Switch\n checked={!(column.hide ?? false)}\n onChange={(e) => onChange({ ...column, hide: !e.target.checked })}\n />\n }\n />\n <OptionsEditorControl\n label=\"Display\"\n control={\n <ButtonGroup aria-label=\"Display\" size=\"small\">\n <Button\n variant={!column.plugin ? 'contained' : 'outlined'}\n onClick={() => onChange({ ...column, plugin: undefined })}\n >\n Text\n </Button>\n <Button\n variant={column.plugin ? 'contained' : 'outlined'}\n onClick={() => onChange({ ...column, plugin: { kind: 'StatChart', spec: {} } })}\n >\n Embedded Panel\n </Button>\n </ButtonGroup>\n }\n />\n {column.plugin ? (\n <OptionsEditorControl\n label=\"Panel Type\"\n control={\n <PluginKindSelect\n pluginTypes={['Panel']}\n value={{ type: 'Panel', kind: column.plugin.kind }}\n onChange={(event) => onChange({ ...column, plugin: { kind: event.kind, spec: {} } })}\n />\n }\n />\n ) : (\n <FormatControls\n value={column.format ?? DEFAULT_FORMAT}\n onChange={(newFormat): void =>\n onChange({\n ...column,\n format: newFormat,\n })\n }\n />\n )}\n <OptionsEditorControl\n label=\"Alignment\"\n control={\n <AlignSelector\n size=\"small\"\n value={column.align ?? 'left'}\n onChange={(align) => onChange({ ...column, align: align })}\n />\n }\n />\n <OptionsEditorControl\n label=\"Custom width\"\n control={\n <Switch\n checked={column.width !== undefined && column.width !== 'auto'}\n onChange={(e) => onChange({ ...column, width: e.target.checked ? width : 'auto' })}\n />\n }\n />\n {column.width !== undefined && column.width !== 'auto' && (\n <OptionsEditorControl\n label=\"Width\"\n control={\n <TextField\n type=\"number\"\n value={width}\n slotProps={{ htmlInput: { min: 1 } }}\n onChange={(e) => {\n setWidth(+e.target.value);\n onChange({ ...column, width: +e.target.value });\n }}\n />\n }\n />\n )}\n </OptionsEditorGroup>\n </OptionsEditorColumn>\n <OptionsEditorColumn>\n <OptionsEditorGroup title=\"Link\">\n <DataLinkEditor column={column} onChange={onChange} />\n </OptionsEditorGroup>\n </OptionsEditorColumn>\n </OptionsEditorGrid>\n <Stack sx={{ px: 8 }}>\n <OptionsEditorGroup title=\"Conditional Cell Format\">\n <ConditionalPanel\n cellSettings={column.cellSettings}\n onChange={(cellSettings) => onChange({ ...column, cellSettings })}\n />\n </OptionsEditorGroup>\n </Stack>\n </Stack>\n );\n}\n"],"names":["Button","ButtonGroup","Stack","Switch","TextField","useState","AlignSelector","FormatControls","OptionsEditorColumn","OptionsEditorControl","OptionsEditorGrid","OptionsEditorGroup","SortSelectorButtons","PluginKindSelect","ConditionalPanel","DataLinkEditor","DEFAULT_FORMAT","unit","shortValues","ColumnEditor","column","onChange","others","width","setWidth","undefined","title","label","control","value","name","e","target","required","header","headerDescription","cellDescription","checked","enableSorting","size","sort","sx","margin","hide","aria-label","variant","plugin","onClick","kind","spec","pluginTypes","type","event","format","newFormat","align","slotProps","htmlInput","min","px","cellSettings"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/ColumnsEditor/ColumnEditor.tsx"],"sourcesContent":["// Copyright The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { Button, ButtonGroup, Stack, StackProps, Switch, TextField, Typography } from '@mui/material';\nimport { ReactElement, useState } from 'react';\nimport {\n AlignSelector,\n FormatControls,\n FormatOptions,\n OptionsEditorColumn,\n OptionsEditorControl,\n OptionsEditorGrid,\n OptionsEditorGroup,\n SortSelectorButtons,\n} from '@perses-dev/components';\nimport { PluginKindSelect } from '@perses-dev/plugin-system';\n\nimport { ColumnSettings } from '../../models';\nimport { ConditionalPanel } from '../ConditionalPanel';\nimport { DataLinkEditor } from './DataLinkEditorDialog';\nimport { EmbeddedPanelOptionsEditor } from './EmbeddedPanelOptionsEditor';\n\nconst DEFAULT_FORMAT: FormatOptions = {\n unit: 'decimal',\n shortValues: true,\n};\n\ntype OmittedMuiProps = 'children' | 'value' | 'onChange';\n\nexport interface ColumnEditorProps extends Omit<StackProps, OmittedMuiProps> {\n column: ColumnSettings;\n onChange: (column: ColumnSettings) => void;\n}\n\nexport function ColumnEditor({ column, onChange, ...others }: ColumnEditorProps): ReactElement {\n const [width, setWidth] = useState<number>(\n column.width === undefined || column.width === 'auto' ? 100 : column.width\n );\n\n return (\n <Stack {...others}>\n <OptionsEditorGrid>\n <OptionsEditorColumn>\n <OptionsEditorGroup title=\"Column\">\n <OptionsEditorControl\n label=\"Name*\"\n control={\n <TextField\n value={column.name}\n onChange={(e) => onChange({ ...column, name: e.target.value })}\n required\n />\n }\n />\n <OptionsEditorControl\n label=\"Header\"\n control={\n <TextField\n value={column.header ?? ''}\n onChange={(e) => onChange({ ...column, header: e.target.value ? e.target.value : undefined })}\n />\n }\n />\n <OptionsEditorControl\n label=\"Header Tooltip\"\n control={\n <TextField\n value={column.headerDescription ?? ''}\n onChange={(e) =>\n onChange({ ...column, headerDescription: e.target.value ? e.target.value : undefined })\n }\n />\n }\n />\n <OptionsEditorControl\n label=\"Cell Tooltip\"\n control={\n <TextField\n value={column.cellDescription ?? ''}\n onChange={(e) =>\n onChange({ ...column, cellDescription: e.target.value ? e.target.value : undefined })\n }\n />\n }\n />\n <OptionsEditorControl\n label=\"Enable sorting\"\n control={\n <Switch\n checked={column.enableSorting ?? false}\n onChange={(e) => onChange({ ...column, enableSorting: e.target.checked })}\n />\n }\n />\n {column.enableSorting && (\n <OptionsEditorControl\n label=\"Default Sort\"\n control={\n <SortSelectorButtons\n size=\"medium\"\n value={column.sort}\n sx={{\n margin: 0.5,\n }}\n onChange={(sort) => onChange({ ...column, sort: sort })}\n />\n }\n />\n )}\n </OptionsEditorGroup>\n </OptionsEditorColumn>\n\n <OptionsEditorColumn>\n <OptionsEditorGroup title=\"Visual\">\n <OptionsEditorControl\n label=\"Show column\"\n control={\n <Switch\n checked={!(column.hide ?? false)}\n onChange={(e) => onChange({ ...column, hide: !e.target.checked })}\n />\n }\n />\n <OptionsEditorControl\n label=\"Cell display\"\n control={\n <Stack spacing={1}>\n <ButtonGroup aria-label=\"Cell display\" size=\"small\">\n <Button\n variant={!column.plugin ? 'contained' : 'outlined'}\n onClick={() => onChange({ ...column, plugin: undefined })}\n >\n Text\n </Button>\n <Button\n variant={column.plugin ? 'contained' : 'outlined'}\n onClick={() => onChange({ ...column, plugin: { kind: 'GaugeChart', spec: {} } })}\n >\n Visualization\n </Button>\n </ButtonGroup>\n <Typography variant=\"caption\" color=\"text.secondary\" sx={{ maxWidth: 360 }}>\n Visualizations reuse panel settings (thresholds, units, colors). Text mode uses value formatting\n below.\n </Typography>\n </Stack>\n }\n />\n {column.plugin ? (\n <OptionsEditorControl\n label=\"Visualization type\"\n control={\n <PluginKindSelect\n pluginTypes={['Panel']}\n size=\"small\"\n value={{ type: 'Panel', kind: column.plugin.kind }}\n onChange={(event) => onChange({ ...column, plugin: { kind: event.kind, spec: {} } })}\n />\n }\n />\n ) : (\n <FormatControls\n value={column.format ?? DEFAULT_FORMAT}\n onChange={(newFormat): void =>\n onChange({\n ...column,\n format: newFormat,\n })\n }\n />\n )}\n <OptionsEditorControl\n label=\"Alignment\"\n control={\n <AlignSelector\n size=\"small\"\n value={column.align ?? 'left'}\n onChange={(align) => onChange({ ...column, align: align })}\n />\n }\n />\n <OptionsEditorControl\n label=\"Custom width\"\n control={\n <Switch\n checked={column.width !== undefined && column.width !== 'auto'}\n onChange={(e) => onChange({ ...column, width: e.target.checked ? width : 'auto' })}\n />\n }\n />\n {column.width !== undefined && column.width !== 'auto' && (\n <OptionsEditorControl\n label=\"Width\"\n control={\n <TextField\n type=\"number\"\n value={width}\n slotProps={{ htmlInput: { min: 1 } }}\n onChange={(e) => {\n setWidth(+e.target.value);\n onChange({ ...column, width: +e.target.value });\n }}\n />\n }\n />\n )}\n </OptionsEditorGroup>\n </OptionsEditorColumn>\n <OptionsEditorColumn>\n <OptionsEditorGroup title=\"Link\">\n <DataLinkEditor column={column} onChange={onChange} />\n </OptionsEditorGroup>\n </OptionsEditorColumn>\n </OptionsEditorGrid>\n {column.plugin?.kind === 'GaugeChart' && (\n <Stack sx={{ px: 8, mt: 4, width: '100%' }} spacing={2}>\n <OptionsEditorGroup title=\"Visualization settings\">\n <EmbeddedPanelOptionsEditor\n kind=\"GaugeChart\"\n spec={column.plugin.spec}\n onChange={(nextSpec) =>\n onChange({\n ...column,\n plugin: { kind: 'GaugeChart', spec: nextSpec },\n })\n }\n />\n </OptionsEditorGroup>\n </Stack>\n )}\n <Stack sx={{ px: 8, mt: column.plugin?.kind === 'GaugeChart' ? 3 : 0 }}>\n <OptionsEditorGroup title=\"Conditional Cell Format\">\n <ConditionalPanel\n cellSettings={column.cellSettings}\n onChange={(cellSettings) => onChange({ ...column, cellSettings })}\n />\n </OptionsEditorGroup>\n </Stack>\n </Stack>\n );\n}\n"],"names":["Button","ButtonGroup","Stack","Switch","TextField","Typography","useState","AlignSelector","FormatControls","OptionsEditorColumn","OptionsEditorControl","OptionsEditorGrid","OptionsEditorGroup","SortSelectorButtons","PluginKindSelect","ConditionalPanel","DataLinkEditor","EmbeddedPanelOptionsEditor","DEFAULT_FORMAT","unit","shortValues","ColumnEditor","column","onChange","others","width","setWidth","undefined","title","label","control","value","name","e","target","required","header","headerDescription","cellDescription","checked","enableSorting","size","sort","sx","margin","hide","spacing","aria-label","variant","plugin","onClick","kind","spec","color","maxWidth","pluginTypes","type","event","format","newFormat","align","slotProps","htmlInput","min","px","mt","nextSpec","cellSettings"],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { UnknownSpec } from '@perses-dev/spec';
|
|
2
|
+
import { ReactElement } from 'react';
|
|
3
|
+
export interface EmbeddedPanelOptionsEditorProps {
|
|
4
|
+
kind: string;
|
|
5
|
+
spec: UnknownSpec;
|
|
6
|
+
onChange: (next: UnknownSpec) => void;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Renders a panel plugin's settings tabs (thresholds, units, colors, …).
|
|
10
|
+
* Used for embedded GaugeChart columns only; other embedded panel kinds use defaults.
|
|
11
|
+
*/
|
|
12
|
+
export declare function EmbeddedPanelOptionsEditor({ kind, spec, onChange }: EmbeddedPanelOptionsEditorProps): ReactElement;
|
|
13
|
+
//# sourceMappingURL=EmbeddedPanelOptionsEditor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmbeddedPanelOptionsEditor.d.ts","sourceRoot":"","sources":["../../../../src/components/ColumnsEditor/EmbeddedPanelOptionsEditor.tsx"],"names":[],"mappings":"AAeA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,YAAY,EAA8B,MAAM,OAAO,CAAC;AAEjE,MAAM,WAAW,+BAA+B;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;CACvC;AAaD;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,+BAA+B,GAAG,YAAY,CAyElH"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
// Copyright The Perses Authors
|
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
// you may not use this file except in compliance with the License.
|
|
5
|
+
// You may obtain a copy of the License at
|
|
6
|
+
//
|
|
7
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
//
|
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
// See the License for the specific language governing permissions and
|
|
13
|
+
// limitations under the License.
|
|
14
|
+
import { CircularProgress, Stack, Typography } from '@mui/material';
|
|
15
|
+
import { OptionsEditorTabs, usePlugin } from '@perses-dev/plugin-system';
|
|
16
|
+
import merge from 'lodash/merge';
|
|
17
|
+
import { useEffect, useMemo, useRef } from 'react';
|
|
18
|
+
function isSpecEmpty(spec) {
|
|
19
|
+
if (spec === undefined || spec === null) return true;
|
|
20
|
+
if (typeof spec !== 'object') return false;
|
|
21
|
+
return Object.keys(spec).length === 0;
|
|
22
|
+
}
|
|
23
|
+
function mergeWithPluginDefaults(plugin, spec) {
|
|
24
|
+
const initial = plugin.createInitialOptions() ?? {};
|
|
25
|
+
return merge({}, initial, spec ?? {});
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Renders a panel plugin's settings tabs (thresholds, units, colors, …).
|
|
29
|
+
* Used for embedded GaugeChart columns only; other embedded panel kinds use defaults.
|
|
30
|
+
*/ export function EmbeddedPanelOptionsEditor({ kind, spec, onChange }) {
|
|
31
|
+
const { data: plugin, isLoading, isError, error } = usePlugin('Panel', kind);
|
|
32
|
+
const panelPlugin = plugin;
|
|
33
|
+
const mergedSpec = useMemo(()=>{
|
|
34
|
+
if (!panelPlugin) {
|
|
35
|
+
return spec;
|
|
36
|
+
}
|
|
37
|
+
return mergeWithPluginDefaults(panelPlugin, spec);
|
|
38
|
+
}, [
|
|
39
|
+
panelPlugin,
|
|
40
|
+
spec
|
|
41
|
+
]);
|
|
42
|
+
const onChangeRef = useRef(onChange);
|
|
43
|
+
onChangeRef.current = onChange;
|
|
44
|
+
// Persist plugin defaults when the column still has an empty spec (e.g. after switching panel kind).
|
|
45
|
+
useEffect(()=>{
|
|
46
|
+
if (!panelPlugin || !isSpecEmpty(spec)) {
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
onChangeRef.current(mergeWithPluginDefaults(panelPlugin, spec));
|
|
50
|
+
}, [
|
|
51
|
+
panelPlugin,
|
|
52
|
+
kind,
|
|
53
|
+
spec
|
|
54
|
+
]);
|
|
55
|
+
if (isLoading) {
|
|
56
|
+
return /*#__PURE__*/ _jsxs(Stack, {
|
|
57
|
+
direction: "row",
|
|
58
|
+
alignItems: "center",
|
|
59
|
+
spacing: 1,
|
|
60
|
+
sx: {
|
|
61
|
+
py: 1
|
|
62
|
+
},
|
|
63
|
+
children: [
|
|
64
|
+
/*#__PURE__*/ _jsx(CircularProgress, {
|
|
65
|
+
size: 22
|
|
66
|
+
}),
|
|
67
|
+
/*#__PURE__*/ _jsx(Typography, {
|
|
68
|
+
variant: "body2",
|
|
69
|
+
color: "text.secondary",
|
|
70
|
+
children: "Loading panel settings…"
|
|
71
|
+
})
|
|
72
|
+
]
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
if (isError || !plugin) {
|
|
76
|
+
return /*#__PURE__*/ _jsx(Typography, {
|
|
77
|
+
variant: "body2",
|
|
78
|
+
color: "error",
|
|
79
|
+
children: error?.message ?? 'Could not load panel plugin.'
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
const loadedPlugin = plugin;
|
|
83
|
+
const editorTabs = loadedPlugin.panelOptionsEditorComponents ?? [];
|
|
84
|
+
if (editorTabs.length === 0) {
|
|
85
|
+
return /*#__PURE__*/ _jsx(Typography, {
|
|
86
|
+
variant: "body2",
|
|
87
|
+
color: "text.secondary",
|
|
88
|
+
children: "This visualization has no editable settings."
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
return /*#__PURE__*/ _jsx(Stack, {
|
|
92
|
+
spacing: 2.5,
|
|
93
|
+
sx: {
|
|
94
|
+
width: '100%',
|
|
95
|
+
py: 1
|
|
96
|
+
},
|
|
97
|
+
children: /*#__PURE__*/ _jsx(OptionsEditorTabs, {
|
|
98
|
+
tabs: editorTabs.map((tab)=>{
|
|
99
|
+
const Content = tab.content;
|
|
100
|
+
return {
|
|
101
|
+
label: tab.label,
|
|
102
|
+
content: /*#__PURE__*/ _jsx(Content, {
|
|
103
|
+
value: mergedSpec,
|
|
104
|
+
onChange: (next)=>{
|
|
105
|
+
onChange(next);
|
|
106
|
+
}
|
|
107
|
+
})
|
|
108
|
+
};
|
|
109
|
+
})
|
|
110
|
+
})
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
//# sourceMappingURL=EmbeddedPanelOptionsEditor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/ColumnsEditor/EmbeddedPanelOptionsEditor.tsx"],"sourcesContent":["// Copyright The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { CircularProgress, Stack, Typography } from '@mui/material';\nimport { OptionsEditorTabs, PanelPlugin, usePlugin } from '@perses-dev/plugin-system';\nimport { UnknownSpec } from '@perses-dev/spec';\nimport merge from 'lodash/merge';\nimport { ReactElement, useEffect, useMemo, useRef } from 'react';\n\nexport interface EmbeddedPanelOptionsEditorProps {\n kind: string;\n spec: UnknownSpec;\n onChange: (next: UnknownSpec) => void;\n}\n\nfunction isSpecEmpty(spec: UnknownSpec | undefined): boolean {\n if (spec === undefined || spec === null) return true;\n if (typeof spec !== 'object') return false;\n return Object.keys(spec as object).length === 0;\n}\n\nfunction mergeWithPluginDefaults(plugin: PanelPlugin, spec: UnknownSpec | undefined): UnknownSpec {\n const initial = plugin.createInitialOptions() ?? {};\n return merge({}, initial, spec ?? {}) as UnknownSpec;\n}\n\n/**\n * Renders a panel plugin's settings tabs (thresholds, units, colors, …).\n * Used for embedded GaugeChart columns only; other embedded panel kinds use defaults.\n */\nexport function EmbeddedPanelOptionsEditor({ kind, spec, onChange }: EmbeddedPanelOptionsEditorProps): ReactElement {\n const { data: plugin, isLoading, isError, error } = usePlugin('Panel', kind);\n\n const panelPlugin = plugin as PanelPlugin | undefined;\n\n const mergedSpec = useMemo(() => {\n if (!panelPlugin) {\n return spec;\n }\n return mergeWithPluginDefaults(panelPlugin, spec);\n }, [panelPlugin, spec]);\n\n const onChangeRef = useRef(onChange);\n onChangeRef.current = onChange;\n\n // Persist plugin defaults when the column still has an empty spec (e.g. after switching panel kind).\n useEffect(() => {\n if (!panelPlugin || !isSpecEmpty(spec)) {\n return;\n }\n onChangeRef.current(mergeWithPluginDefaults(panelPlugin, spec));\n }, [panelPlugin, kind, spec]);\n\n if (isLoading) {\n return (\n <Stack direction=\"row\" alignItems=\"center\" spacing={1} sx={{ py: 1 }}>\n <CircularProgress size={22} />\n <Typography variant=\"body2\" color=\"text.secondary\">\n Loading panel settings…\n </Typography>\n </Stack>\n );\n }\n\n if (isError || !plugin) {\n return (\n <Typography variant=\"body2\" color=\"error\">\n {error?.message ?? 'Could not load panel plugin.'}\n </Typography>\n );\n }\n\n const loadedPlugin = plugin as PanelPlugin;\n const editorTabs = loadedPlugin.panelOptionsEditorComponents ?? [];\n\n if (editorTabs.length === 0) {\n return (\n <Typography variant=\"body2\" color=\"text.secondary\">\n This visualization has no editable settings.\n </Typography>\n );\n }\n\n return (\n <Stack spacing={2.5} sx={{ width: '100%', py: 1 }}>\n <OptionsEditorTabs\n tabs={editorTabs.map((tab) => {\n const Content = tab.content;\n return {\n label: tab.label,\n content: (\n <Content\n value={mergedSpec}\n onChange={(next) => {\n onChange(next as UnknownSpec);\n }}\n />\n ),\n };\n })}\n />\n </Stack>\n );\n}\n"],"names":["CircularProgress","Stack","Typography","OptionsEditorTabs","usePlugin","merge","useEffect","useMemo","useRef","isSpecEmpty","spec","undefined","Object","keys","length","mergeWithPluginDefaults","plugin","initial","createInitialOptions","EmbeddedPanelOptionsEditor","kind","onChange","data","isLoading","isError","error","panelPlugin","mergedSpec","onChangeRef","current","direction","alignItems","spacing","sx","py","size","variant","color","message","loadedPlugin","editorTabs","panelOptionsEditorComponents","width","tabs","map","tab","Content","content","label","value","next"],"mappings":";AAAA,+BAA+B;AAC/B,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,SAASA,gBAAgB,EAAEC,KAAK,EAAEC,UAAU,QAAQ,gBAAgB;AACpE,SAASC,iBAAiB,EAAeC,SAAS,QAAQ,4BAA4B;AAEtF,OAAOC,WAAW,eAAe;AACjC,SAAuBC,SAAS,EAAEC,OAAO,EAAEC,MAAM,QAAQ,QAAQ;AAQjE,SAASC,YAAYC,IAA6B;IAChD,IAAIA,SAASC,aAAaD,SAAS,MAAM,OAAO;IAChD,IAAI,OAAOA,SAAS,UAAU,OAAO;IACrC,OAAOE,OAAOC,IAAI,CAACH,MAAgBI,MAAM,KAAK;AAChD;AAEA,SAASC,wBAAwBC,MAAmB,EAAEN,IAA6B;IACjF,MAAMO,UAAUD,OAAOE,oBAAoB,MAAM,CAAC;IAClD,OAAOb,MAAM,CAAC,GAAGY,SAASP,QAAQ,CAAC;AACrC;AAEA;;;CAGC,GACD,OAAO,SAASS,2BAA2B,EAAEC,IAAI,EAAEV,IAAI,EAAEW,QAAQ,EAAmC;IAClG,MAAM,EAAEC,MAAMN,MAAM,EAAEO,SAAS,EAAEC,OAAO,EAAEC,KAAK,EAAE,GAAGrB,UAAU,SAASgB;IAEvE,MAAMM,cAAcV;IAEpB,MAAMW,aAAapB,QAAQ;QACzB,IAAI,CAACmB,aAAa;YAChB,OAAOhB;QACT;QACA,OAAOK,wBAAwBW,aAAahB;IAC9C,GAAG;QAACgB;QAAahB;KAAK;IAEtB,MAAMkB,cAAcpB,OAAOa;IAC3BO,YAAYC,OAAO,GAAGR;IAEtB,qGAAqG;IACrGf,UAAU;QACR,IAAI,CAACoB,eAAe,CAACjB,YAAYC,OAAO;YACtC;QACF;QACAkB,YAAYC,OAAO,CAACd,wBAAwBW,aAAahB;IAC3D,GAAG;QAACgB;QAAaN;QAAMV;KAAK;IAE5B,IAAIa,WAAW;QACb,qBACE,MAACtB;YAAM6B,WAAU;YAAMC,YAAW;YAASC,SAAS;YAAGC,IAAI;gBAAEC,IAAI;YAAE;;8BACjE,KAAClC;oBAAiBmC,MAAM;;8BACxB,KAACjC;oBAAWkC,SAAQ;oBAAQC,OAAM;8BAAiB;;;;IAKzD;IAEA,IAAIb,WAAW,CAACR,QAAQ;QACtB,qBACE,KAACd;YAAWkC,SAAQ;YAAQC,OAAM;sBAC/BZ,OAAOa,WAAW;;IAGzB;IAEA,MAAMC,eAAevB;IACrB,MAAMwB,aAAaD,aAAaE,4BAA4B,IAAI,EAAE;IAElE,IAAID,WAAW1B,MAAM,KAAK,GAAG;QAC3B,qBACE,KAACZ;YAAWkC,SAAQ;YAAQC,OAAM;sBAAiB;;IAIvD;IAEA,qBACE,KAACpC;QAAM+B,SAAS;QAAKC,IAAI;YAAES,OAAO;YAAQR,IAAI;QAAE;kBAC9C,cAAA,KAAC/B;YACCwC,MAAMH,WAAWI,GAAG,CAAC,CAACC;gBACpB,MAAMC,UAAUD,IAAIE,OAAO;gBAC3B,OAAO;oBACLC,OAAOH,IAAIG,KAAK;oBAChBD,uBACE,KAACD;wBACCG,OAAOtB;wBACPN,UAAU,CAAC6B;4BACT7B,SAAS6B;wBACX;;gBAGN;YACF;;;AAIR"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { PanelData } from '@perses-dev/plugin-system';
|
|
2
|
-
import { QueryDataType, UnknownSpec } from '@perses-dev/core';
|
|
3
2
|
import { ReactElement } from 'react';
|
|
3
|
+
import { QueryDataType, UnknownSpec } from '@perses-dev/spec';
|
|
4
4
|
interface EmbeddedPanelProps {
|
|
5
5
|
kind: string;
|
|
6
6
|
spec: UnknownSpec;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EmbeddedPanel.d.ts","sourceRoot":"","sources":["../../../src/components/EmbeddedPanel.tsx"],"names":[],"mappings":"AAaA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"EmbeddedPanel.d.ts","sourceRoot":"","sources":["../../../src/components/EmbeddedPanel.tsx"],"names":[],"mappings":"AAaA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAItD,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE9D,UAAU,kBAAkB;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,WAAW,CAAC;IAClB,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC;CAC/C;AAED,wBAAgB,aAAa,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,kBAAkB,GAAG,YAAY,CAS5F"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/EmbeddedPanel.tsx"],"sourcesContent":["// Copyright The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { PanelData } from '@perses-dev/plugin-system';\nimport {
|
|
1
|
+
{"version":3,"sources":["../../../src/components/EmbeddedPanel.tsx"],"sourcesContent":["// Copyright The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { PanelData } from '@perses-dev/plugin-system';\nimport { PanelPluginLoader } from '@perses-dev/dashboards';\nimport useResizeObserver from 'use-resize-observer';\nimport { ErrorAlert, ErrorBoundary } from '@perses-dev/components';\nimport { ReactElement } from 'react';\nimport { QueryDataType, UnknownSpec } from '@perses-dev/spec';\n\ninterface EmbeddedPanelProps {\n kind: string;\n spec: UnknownSpec;\n queryResults: Array<PanelData<QueryDataType>>;\n}\n\nexport function EmbeddedPanel({ kind, spec, queryResults }: EmbeddedPanelProps): ReactElement {\n const { ref, width = 1, height = 1 } = useResizeObserver<HTMLDivElement>();\n return (\n <div ref={ref} style={{ height: '100%' }}>\n <ErrorBoundary FallbackComponent={ErrorAlert}>\n <PanelPluginLoader kind={kind} contentDimensions={{ width, height }} spec={spec} queryResults={queryResults} />\n </ErrorBoundary>\n </div>\n );\n}\n"],"names":["PanelPluginLoader","useResizeObserver","ErrorAlert","ErrorBoundary","EmbeddedPanel","kind","spec","queryResults","ref","width","height","div","style","FallbackComponent","contentDimensions"],"mappings":"AAAA,+BAA+B;AAC/B,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;;AAGjC,SAASA,iBAAiB,QAAQ,yBAAyB;AAC3D,OAAOC,uBAAuB,sBAAsB;AACpD,SAASC,UAAU,EAAEC,aAAa,QAAQ,yBAAyB;AAUnE,OAAO,SAASC,cAAc,EAAEC,IAAI,EAAEC,IAAI,EAAEC,YAAY,EAAsB;IAC5E,MAAM,EAAEC,GAAG,EAAEC,QAAQ,CAAC,EAAEC,SAAS,CAAC,EAAE,GAAGT;IACvC,qBACE,KAACU;QAAIH,KAAKA;QAAKI,OAAO;YAAEF,QAAQ;QAAO;kBACrC,cAAA,KAACP;YAAcU,mBAAmBX;sBAChC,cAAA,KAACF;gBAAkBK,MAAMA;gBAAMS,mBAAmB;oBAAEL;oBAAOC;gBAAO;gBAAGJ,MAAMA;gBAAMC,cAAcA;;;;AAIvG"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { TimeSeriesData } from '@perses-dev/core';
|
|
2
1
|
import { PanelProps } from '@perses-dev/plugin-system';
|
|
3
2
|
import { ReactElement } from 'react';
|
|
3
|
+
import { TimeSeriesData } from '@perses-dev/spec';
|
|
4
4
|
import { TableOptions } from '../models';
|
|
5
5
|
export declare function getTablePanelQueryOptions(spec: TableOptions): {
|
|
6
6
|
mode: 'instant' | 'range';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TablePanel.d.ts","sourceRoot":"","sources":["../../../src/components/TablePanel.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TablePanel.d.ts","sourceRoot":"","sources":["../../../src/components/TablePanel.tsx"],"names":[],"mappings":"AAwBA,OAAO,EAIL,UAAU,EAIX,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,YAAY,EAAqD,MAAM,OAAO,CAAC;AACxF,OAAO,EAAiB,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAA+D,YAAY,EAAE,MAAM,WAAW,CAAC;AAqVtG,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,YAAY,GAAG;IAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAAA;CAAE,CAK3F;AAED,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;AAElE,wBAAgB,UAAU,CAAC,EAAE,iBAAiB,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,UAAU,GAAG,YAAY,GAAG,IAAI,CA2drG"}
|