@splunk/visualizations 28.0.0 → 28.2.0
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/Area.config.js +27 -0
- package/Area.config.js.map +2 -2
- package/Area.js +722 -355
- package/Area.js.map +4 -4
- package/Bar.config.js +27 -0
- package/Bar.config.js.map +2 -2
- package/Bar.js +754 -387
- package/Bar.js.map +4 -4
- package/Bubble.config.js +27 -0
- package/Bubble.config.js.map +2 -2
- package/Bubble.js +684 -321
- package/Bubble.js.map +4 -4
- package/CHANGELOG.external.md +63 -2
- package/ChoroplethSvg.js +582 -202
- package/ChoroplethSvg.js.map +4 -4
- package/Column.config.js +27 -0
- package/Column.config.js.map +2 -2
- package/Column.js +769 -402
- package/Column.js.map +4 -4
- package/Ellipse.js +593 -214
- package/Ellipse.js.map +4 -4
- package/Events.js +592 -201
- package/Events.js.map +4 -4
- package/FEATUREFLAGS.md +1 -0
- package/FillerGauge.config.js +124 -3
- package/FillerGauge.config.js.map +3 -3
- package/FillerGauge.js +1371 -256
- package/FillerGauge.js.map +4 -4
- package/Image.js +590 -217
- package/Image.js.map +4 -4
- package/Line.config.js +28 -1
- package/Line.config.js.map +2 -2
- package/Line.js +737 -370
- package/Line.js.map +4 -4
- package/LinkGraph.js +1095 -692
- package/LinkGraph.js.map +4 -4
- package/Map.config.js +49 -3
- package/Map.config.js.map +2 -2
- package/Map.js +581 -145
- package/Map.js.map +4 -4
- package/Markdown.js +617 -230
- package/Markdown.js.map +4 -4
- package/MarkerGauge.js +544 -169
- package/MarkerGauge.js.map +4 -4
- package/ParallelCoordinates.js +565 -174
- package/ParallelCoordinates.js.map +4 -4
- package/Pie.js +651 -316
- package/Pie.js.map +4 -4
- package/Punchcard.js +589 -200
- package/Punchcard.js.map +4 -4
- package/Rectangle.js +604 -224
- package/Rectangle.js.map +4 -4
- package/Sankey.js +577 -201
- package/Sankey.js.map +4 -4
- package/Scatter.config.js +27 -0
- package/Scatter.config.js.map +2 -2
- package/Scatter.js +688 -326
- package/Scatter.js.map +4 -4
- package/SingleValue.js +543 -166
- package/SingleValue.js.map +4 -4
- package/SingleValueIcon.js +535 -160
- package/SingleValueIcon.js.map +4 -4
- package/SingleValueRadial.js +528 -153
- package/SingleValueRadial.js.map +4 -4
- package/TRELLIS.md +2 -2
- package/Table.config.js +109 -33
- package/Table.config.js.map +4 -4
- package/Table.js +986 -322
- package/Table.js.map +4 -4
- package/Timeline.js +626 -247
- package/Timeline.js.map +4 -4
- package/common/Charting.js +49 -111
- package/common/Charting.js.map +4 -4
- package/common/GaugeMajorTicks.js +6 -14
- package/common/GaugeMajorTicks.js.map +2 -2
- package/common/GaugeValueMarker.js +6 -14
- package/common/GaugeValueMarker.js.map +2 -2
- package/common/OptionsDoc.js +3 -2
- package/common/OptionsDoc.js.map +2 -2
- package/common/SplunkVisualization.js +1 -1
- package/common/SplunkVisualization.js.map +2 -2
- package/common/TimeSeriesChartWrapper.js +485 -0
- package/common/TimeSeriesChartWrapper.js.map +7 -0
- package/common/chartingUtils.js +252 -1
- package/common/chartingUtils.js.map +4 -4
- package/common/shapeUtils.js.map +1 -1
- package/common/utils/hocUtils.js +1 -1
- package/common/utils/hocUtils.js.map +2 -2
- package/common/utils/mapUtils.js.map +1 -1
- package/common/utils/tableUtils.js +60 -0
- package/common/utils/tableUtils.js.map +7 -0
- package/common/withDashboardViz.js +552 -161
- package/common/withDashboardViz.js.map +4 -4
- package/dist/types/Area/Area.d.ts +13 -0
- package/dist/types/Area/Area.d.ts.map +1 -0
- package/dist/types/Area/areaUtils.d.ts +15 -0
- package/dist/types/Area/areaUtils.d.ts.map +1 -0
- package/dist/types/Area/config.d.ts +4 -0
- package/dist/types/Area/config.d.ts.map +1 -0
- package/dist/types/Area/index.d.ts +3 -0
- package/dist/types/Area/index.d.ts.map +1 -0
- package/dist/types/Bar/Bar.d.ts +13 -0
- package/dist/types/Bar/Bar.d.ts.map +1 -0
- package/dist/types/Bar/barUtils.d.ts +30 -0
- package/dist/types/Bar/barUtils.d.ts.map +1 -0
- package/dist/types/Bar/config.d.ts +4 -0
- package/dist/types/Bar/config.d.ts.map +1 -0
- package/dist/types/Bar/index.d.ts +3 -0
- package/dist/types/Bar/index.d.ts.map +1 -0
- package/dist/types/Bubble/Bubble.d.ts +9 -0
- package/dist/types/Bubble/Bubble.d.ts.map +1 -0
- package/dist/types/Bubble/bubbleUtils.d.ts +47 -0
- package/dist/types/Bubble/bubbleUtils.d.ts.map +1 -0
- package/dist/types/Bubble/config.d.ts +4 -0
- package/dist/types/Bubble/config.d.ts.map +1 -0
- package/dist/types/Bubble/index.d.ts +3 -0
- package/dist/types/Bubble/index.d.ts.map +1 -0
- package/dist/types/ChoroplethSvg/ChoroplethSvg.d.ts +24 -0
- package/dist/types/ChoroplethSvg/ChoroplethSvg.d.ts.map +1 -0
- package/dist/types/ChoroplethSvg/ErrorMessage/ErrorMessage.d.ts +6 -0
- package/dist/types/ChoroplethSvg/ErrorMessage/ErrorMessage.d.ts.map +1 -0
- package/dist/types/ChoroplethSvg/PureChoroplethSvg/PureChoroplethSvg.d.ts +29 -0
- package/dist/types/ChoroplethSvg/PureChoroplethSvg/PureChoroplethSvg.d.ts.map +1 -0
- package/dist/types/ChoroplethSvg/PureChoroplethSvg/SvgChoroplethDynamic.d.ts +34 -0
- package/dist/types/ChoroplethSvg/PureChoroplethSvg/SvgChoroplethDynamic.d.ts.map +1 -0
- package/dist/types/ChoroplethSvg/PureChoroplethSvg/SvgMutator.d.ts +144 -0
- package/dist/types/ChoroplethSvg/PureChoroplethSvg/SvgMutator.d.ts.map +1 -0
- package/dist/types/ChoroplethSvg/config.d.ts +4 -0
- package/dist/types/ChoroplethSvg/config.d.ts.map +1 -0
- package/dist/types/ChoroplethSvg/index.d.ts +3 -0
- package/dist/types/ChoroplethSvg/index.d.ts.map +1 -0
- package/dist/types/Column/Column.d.ts +11 -0
- package/dist/types/Column/Column.d.ts.map +1 -0
- package/dist/types/Column/columnUtils.d.ts +82 -0
- package/dist/types/Column/columnUtils.d.ts.map +1 -0
- package/dist/types/Column/config.d.ts +4 -0
- package/dist/types/Column/config.d.ts.map +1 -0
- package/dist/types/Column/index.d.ts +3 -0
- package/dist/types/Column/index.d.ts.map +1 -0
- package/dist/types/Ellipse/Ellipse.d.ts +7 -0
- package/dist/types/Ellipse/Ellipse.d.ts.map +1 -0
- package/dist/types/Ellipse/config.d.ts +4 -0
- package/dist/types/Ellipse/config.d.ts.map +1 -0
- package/dist/types/Ellipse/index.d.ts +3 -0
- package/dist/types/Ellipse/index.d.ts.map +1 -0
- package/dist/types/Events/EventUtils.d.ts +137 -0
- package/dist/types/Events/EventUtils.d.ts.map +1 -0
- package/dist/types/Events/Events.d.ts +19 -0
- package/dist/types/Events/Events.d.ts.map +1 -0
- package/dist/types/Events/PureEvents/FieldSummaryTooltip.d.ts +50 -0
- package/dist/types/Events/PureEvents/FieldSummaryTooltip.d.ts.map +1 -0
- package/dist/types/Events/PureEvents/PureEvents.d.ts +34 -0
- package/dist/types/Events/PureEvents/PureEvents.d.ts.map +1 -0
- package/dist/types/Events/PureEvents/TimeControlsPopover.d.ts +33 -0
- package/dist/types/Events/PureEvents/TimeControlsPopover.d.ts.map +1 -0
- package/dist/types/Events/config.d.ts +4 -0
- package/dist/types/Events/config.d.ts.map +1 -0
- package/dist/types/Events/index.d.ts +3 -0
- package/dist/types/Events/index.d.ts.map +1 -0
- package/dist/types/FillerGauge/FillerGauge.d.ts +13 -0
- package/dist/types/FillerGauge/FillerGauge.d.ts.map +1 -0
- package/dist/types/FillerGauge/PureFillerGauge/FillerGauge.d.ts +32 -0
- package/dist/types/FillerGauge/PureFillerGauge/FillerGauge.d.ts.map +1 -0
- package/dist/types/FillerGauge/config.d.ts +4 -0
- package/dist/types/FillerGauge/config.d.ts.map +1 -0
- package/dist/types/FillerGauge/index.d.ts +3 -0
- package/dist/types/FillerGauge/index.d.ts.map +1 -0
- package/dist/types/Image/Image.d.ts +13 -0
- package/dist/types/Image/Image.d.ts.map +1 -0
- package/dist/types/Image/ImageApi.d.ts +15 -0
- package/dist/types/Image/ImageApi.d.ts.map +1 -0
- package/dist/types/Image/config.d.ts +4 -0
- package/dist/types/Image/config.d.ts.map +1 -0
- package/dist/types/Image/index.d.ts +3 -0
- package/dist/types/Image/index.d.ts.map +1 -0
- package/dist/types/Line/Line.d.ts +13 -0
- package/dist/types/Line/Line.d.ts.map +1 -0
- package/dist/types/Line/config.d.ts +4 -0
- package/dist/types/Line/config.d.ts.map +1 -0
- package/dist/types/Line/index.d.ts +3 -0
- package/dist/types/Line/index.d.ts.map +1 -0
- package/dist/types/Line/lineUtils.d.ts +22 -0
- package/dist/types/Line/lineUtils.d.ts.map +1 -0
- package/dist/types/Line/mockdata/LineData.d.ts +184 -0
- package/dist/types/Line/mockdata/LineData.d.ts.map +1 -0
- package/dist/types/LinkGraph/ESTestDataSources.d.ts +32 -0
- package/dist/types/LinkGraph/ESTestDataSources.d.ts.map +1 -0
- package/dist/types/LinkGraph/ESTestTemplate.d.ts +2 -0
- package/dist/types/LinkGraph/ESTestTemplate.d.ts.map +1 -0
- package/dist/types/LinkGraph/LinkGraph.d.ts +22 -0
- package/dist/types/LinkGraph/LinkGraph.d.ts.map +1 -0
- package/dist/types/LinkGraph/PureLinkGraph/PureLinkGraph.d.ts +89 -0
- package/dist/types/LinkGraph/PureLinkGraph/PureLinkGraph.d.ts.map +1 -0
- package/dist/types/LinkGraph/PureLinkGraph/PureLinkGraphUtils.d.ts +74 -0
- package/dist/types/LinkGraph/PureLinkGraph/PureLinkGraphUtils.d.ts.map +1 -0
- package/dist/types/LinkGraph/PureLinkGraph/components/Edges.d.ts +9 -0
- package/dist/types/LinkGraph/PureLinkGraph/components/Edges.d.ts.map +1 -0
- package/dist/types/LinkGraph/PureLinkGraph/components/Field.d.ts +14 -0
- package/dist/types/LinkGraph/PureLinkGraph/components/Field.d.ts.map +1 -0
- package/dist/types/LinkGraph/PureLinkGraph/components/FieldStyles.d.ts +5 -0
- package/dist/types/LinkGraph/PureLinkGraph/components/FieldStyles.d.ts.map +1 -0
- package/dist/types/LinkGraph/PureLinkGraph/components/Graph.d.ts +49 -0
- package/dist/types/LinkGraph/PureLinkGraph/components/Graph.d.ts.map +1 -0
- package/dist/types/LinkGraph/PureLinkGraph/components/GraphStyles.d.ts +11 -0
- package/dist/types/LinkGraph/PureLinkGraph/components/GraphStyles.d.ts.map +1 -0
- package/dist/types/LinkGraph/PureLinkGraph/components/Node.d.ts +24 -0
- package/dist/types/LinkGraph/PureLinkGraph/components/Node.d.ts.map +1 -0
- package/dist/types/LinkGraph/PureLinkGraph/components/Nodes.d.ts +16 -0
- package/dist/types/LinkGraph/PureLinkGraph/components/Nodes.d.ts.map +1 -0
- package/dist/types/LinkGraph/PureLinkGraph/utils/iconLoader.d.ts +168 -0
- package/dist/types/LinkGraph/PureLinkGraph/utils/iconLoader.d.ts.map +1 -0
- package/dist/types/LinkGraph/config.d.ts +4 -0
- package/dist/types/LinkGraph/config.d.ts.map +1 -0
- package/dist/types/LinkGraph/index.d.ts +3 -0
- package/dist/types/LinkGraph/index.d.ts.map +1 -0
- package/dist/types/Map/Map.d.ts +28 -0
- package/dist/types/Map/Map.d.ts.map +1 -0
- package/dist/types/Map/MapContextDefault.d.ts +39 -0
- package/dist/types/Map/MapContextDefault.d.ts.map +1 -0
- package/dist/types/Map/PureMap/BubbleLayer.d.ts +51 -0
- package/dist/types/Map/PureMap/BubbleLayer.d.ts.map +1 -0
- package/dist/types/Map/PureMap/ChoroplethLayer.d.ts +36 -0
- package/dist/types/Map/PureMap/ChoroplethLayer.d.ts.map +1 -0
- package/dist/types/Map/PureMap/ClusterLayer.d.ts +17 -0
- package/dist/types/Map/PureMap/ClusterLayer.d.ts.map +1 -0
- package/dist/types/Map/PureMap/LocalChoroplethLayer.d.ts +18 -0
- package/dist/types/Map/PureMap/LocalChoroplethLayer.d.ts.map +1 -0
- package/dist/types/Map/PureMap/MapUtils.d.ts +141 -0
- package/dist/types/Map/PureMap/MapUtils.d.ts.map +1 -0
- package/dist/types/Map/PureMap/MarkerLayer.d.ts +34 -0
- package/dist/types/Map/PureMap/MarkerLayer.d.ts.map +1 -0
- package/dist/types/Map/PureMap/MarkerWrapper.d.ts +17 -0
- package/dist/types/Map/PureMap/MarkerWrapper.d.ts.map +1 -0
- package/dist/types/Map/PureMap/PureMap.d.ts +102 -0
- package/dist/types/Map/PureMap/PureMap.d.ts.map +1 -0
- package/dist/types/Map/PureMap/PureMapContainer.d.ts +15 -0
- package/dist/types/Map/PureMap/PureMapContainer.d.ts.map +1 -0
- package/dist/types/Map/PureMap/Tooltip.d.ts +20 -0
- package/dist/types/Map/PureMap/Tooltip.d.ts.map +1 -0
- package/dist/types/Map/PureMap/mockdata/data.d.ts +90 -0
- package/dist/types/Map/PureMap/mockdata/data.d.ts.map +1 -0
- package/dist/types/Map/config.d.ts +4 -0
- package/dist/types/Map/config.d.ts.map +1 -0
- package/dist/types/Map/index.d.ts +3 -0
- package/dist/types/Map/index.d.ts.map +1 -0
- package/dist/types/Markdown/Markdown.d.ts +31 -0
- package/dist/types/Markdown/Markdown.d.ts.map +1 -0
- package/dist/types/Markdown/config.d.ts +4 -0
- package/dist/types/Markdown/config.d.ts.map +1 -0
- package/dist/types/Markdown/index.d.ts +3 -0
- package/dist/types/Markdown/index.d.ts.map +1 -0
- package/dist/types/MarkerGauge/MarkerGauge.d.ts +55 -0
- package/dist/types/MarkerGauge/MarkerGauge.d.ts.map +1 -0
- package/dist/types/MarkerGauge/PureMarkerGauge/MarkerGauge.d.ts +72 -0
- package/dist/types/MarkerGauge/PureMarkerGauge/MarkerGauge.d.ts.map +1 -0
- package/dist/types/MarkerGauge/config.d.ts +4 -0
- package/dist/types/MarkerGauge/config.d.ts.map +1 -0
- package/dist/types/MarkerGauge/index.d.ts +3 -0
- package/dist/types/MarkerGauge/index.d.ts.map +1 -0
- package/dist/types/ParallelCoordinates/ParallelCoordinates.d.ts +58 -0
- package/dist/types/ParallelCoordinates/ParallelCoordinates.d.ts.map +1 -0
- package/dist/types/ParallelCoordinates/PureParallelCoordinates/PureParallelCoordinates.d.ts +69 -0
- package/dist/types/ParallelCoordinates/PureParallelCoordinates/PureParallelCoordinates.d.ts.map +1 -0
- package/dist/types/ParallelCoordinates/PureParallelCoordinates/src/ParallelCoordinatesCanvas.d.ts +30 -0
- package/dist/types/ParallelCoordinates/PureParallelCoordinates/src/ParallelCoordinatesCanvas.d.ts.map +1 -0
- package/dist/types/ParallelCoordinates/PureParallelCoordinates/src/ParallelCoordinatesChart.d.ts +42 -0
- package/dist/types/ParallelCoordinates/PureParallelCoordinates/src/ParallelCoordinatesChart.d.ts.map +1 -0
- package/dist/types/ParallelCoordinates/PureParallelCoordinates/src/ParallelCoordinatesPrompt.d.ts +22 -0
- package/dist/types/ParallelCoordinates/PureParallelCoordinates/src/ParallelCoordinatesPrompt.d.ts.map +1 -0
- package/dist/types/ParallelCoordinates/config.d.ts +4 -0
- package/dist/types/ParallelCoordinates/config.d.ts.map +1 -0
- package/dist/types/ParallelCoordinates/index.d.ts +3 -0
- package/dist/types/ParallelCoordinates/index.d.ts.map +1 -0
- package/dist/types/ParallelCoordinates/mockdata/arrayValueData.d.ts +6 -0
- package/dist/types/ParallelCoordinates/mockdata/arrayValueData.d.ts.map +1 -0
- package/dist/types/ParallelCoordinates/mockdata/sampleCarData.d.ts +6 -0
- package/dist/types/ParallelCoordinates/mockdata/sampleCarData.d.ts.map +1 -0
- package/dist/types/ParallelCoordinates/mockdata/sampleCarNumericalData.d.ts +6 -0
- package/dist/types/ParallelCoordinates/mockdata/sampleCarNumericalData.d.ts.map +1 -0
- package/dist/types/ParallelCoordinates/mockdata/sampleFoodData.d.ts +6 -0
- package/dist/types/ParallelCoordinates/mockdata/sampleFoodData.d.ts.map +1 -0
- package/dist/types/ParallelCoordinates/mockdata/sampleStringNumericalData.d.ts +6 -0
- package/dist/types/ParallelCoordinates/mockdata/sampleStringNumericalData.d.ts.map +1 -0
- package/dist/types/Pie/Pie.d.ts +15 -0
- package/dist/types/Pie/Pie.d.ts.map +1 -0
- package/dist/types/Pie/config.d.ts +4 -0
- package/dist/types/Pie/config.d.ts.map +1 -0
- package/dist/types/Pie/index.d.ts +3 -0
- package/dist/types/Pie/index.d.ts.map +1 -0
- package/dist/types/Pie/pieUtils.d.ts +78 -0
- package/dist/types/Pie/pieUtils.d.ts.map +1 -0
- package/dist/types/Punchcard/Punchcard.d.ts +13 -0
- package/dist/types/Punchcard/Punchcard.d.ts.map +1 -0
- package/dist/types/Punchcard/PurePunchcard/Punchcard.d.ts +40 -0
- package/dist/types/Punchcard/PurePunchcard/Punchcard.d.ts.map +1 -0
- package/dist/types/Punchcard/PurePunchcard/src/PunchcardAxis.d.ts +20 -0
- package/dist/types/Punchcard/PurePunchcard/src/PunchcardAxis.d.ts.map +1 -0
- package/dist/types/Punchcard/PurePunchcard/src/PunchcardBubble.d.ts +27 -0
- package/dist/types/Punchcard/PurePunchcard/src/PunchcardBubble.d.ts.map +1 -0
- package/dist/types/Punchcard/PurePunchcard/src/PunchcardChartArea.d.ts +40 -0
- package/dist/types/Punchcard/PurePunchcard/src/PunchcardChartArea.d.ts.map +1 -0
- package/dist/types/Punchcard/PurePunchcard/src/PunchcardGridLines.d.ts +17 -0
- package/dist/types/Punchcard/PurePunchcard/src/PunchcardGridLines.d.ts.map +1 -0
- package/dist/types/Punchcard/PurePunchcard/src/PunchcardLegend.d.ts +21 -0
- package/dist/types/Punchcard/PurePunchcard/src/PunchcardLegend.d.ts.map +1 -0
- package/dist/types/Punchcard/PurePunchcard/src/PunchcardRow.d.ts +10 -0
- package/dist/types/Punchcard/PurePunchcard/src/PunchcardRow.d.ts.map +1 -0
- package/dist/types/Punchcard/PurePunchcard/src/utils/punchcardUtils.d.ts +285 -0
- package/dist/types/Punchcard/PurePunchcard/src/utils/punchcardUtils.d.ts.map +1 -0
- package/dist/types/Punchcard/config.d.ts +4 -0
- package/dist/types/Punchcard/config.d.ts.map +1 -0
- package/dist/types/Punchcard/index.d.ts +3 -0
- package/dist/types/Punchcard/index.d.ts.map +1 -0
- package/dist/types/Punchcard/punchcardUtils.d.ts +32 -0
- package/dist/types/Punchcard/punchcardUtils.d.ts.map +1 -0
- package/dist/types/Rectangle/Rectangle.d.ts +14 -0
- package/dist/types/Rectangle/Rectangle.d.ts.map +1 -0
- package/dist/types/Rectangle/config.d.ts +4 -0
- package/dist/types/Rectangle/config.d.ts.map +1 -0
- package/dist/types/Rectangle/index.d.ts +3 -0
- package/dist/types/Rectangle/index.d.ts.map +1 -0
- package/dist/types/Sankey/PureSankey/PureSankey.d.ts +98 -0
- package/dist/types/Sankey/PureSankey/PureSankey.d.ts.map +1 -0
- package/dist/types/Sankey/PureSankey/SankeyLink.d.ts +33 -0
- package/dist/types/Sankey/PureSankey/SankeyLink.d.ts.map +1 -0
- package/dist/types/Sankey/PureSankey/SankeyModels.d.ts +48 -0
- package/dist/types/Sankey/PureSankey/SankeyModels.d.ts.map +1 -0
- package/dist/types/Sankey/PureSankey/SankeyNode.d.ts +38 -0
- package/dist/types/Sankey/PureSankey/SankeyNode.d.ts.map +1 -0
- package/dist/types/Sankey/PureSankey/SankeyTooltip.d.ts +43 -0
- package/dist/types/Sankey/PureSankey/SankeyTooltip.d.ts.map +1 -0
- package/dist/types/Sankey/PureSankey/SankeyUtils.d.ts +20 -0
- package/dist/types/Sankey/PureSankey/SankeyUtils.d.ts.map +1 -0
- package/dist/types/Sankey/PureSankey/mockdata/data.d.ts +35 -0
- package/dist/types/Sankey/PureSankey/mockdata/data.d.ts.map +1 -0
- package/dist/types/Sankey/Sankey.d.ts +31 -0
- package/dist/types/Sankey/Sankey.d.ts.map +1 -0
- package/dist/types/Sankey/config.d.ts +4 -0
- package/dist/types/Sankey/config.d.ts.map +1 -0
- package/dist/types/Sankey/index.d.ts +3 -0
- package/dist/types/Sankey/index.d.ts.map +1 -0
- package/dist/types/Scatter/Scatter.d.ts +11 -0
- package/dist/types/Scatter/Scatter.d.ts.map +1 -0
- package/dist/types/Scatter/config.d.ts +4 -0
- package/dist/types/Scatter/config.d.ts.map +1 -0
- package/dist/types/Scatter/index.d.ts +3 -0
- package/dist/types/Scatter/index.d.ts.map +1 -0
- package/dist/types/Scatter/mockdata/data.d.ts +35 -0
- package/dist/types/Scatter/mockdata/data.d.ts.map +1 -0
- package/dist/types/Scatter/scatterUtils.d.ts +47 -0
- package/dist/types/Scatter/scatterUtils.d.ts.map +1 -0
- package/dist/types/SingleValue/SingleValue.d.ts +16 -0
- package/dist/types/SingleValue/SingleValue.d.ts.map +1 -0
- package/dist/types/SingleValue/config.d.ts +4 -0
- package/dist/types/SingleValue/config.d.ts.map +1 -0
- package/dist/types/SingleValue/index.d.ts +3 -0
- package/dist/types/SingleValue/index.d.ts.map +1 -0
- package/dist/types/SingleValueBasic/index.d.ts +3 -0
- package/dist/types/SingleValueBasic/index.d.ts.map +1 -0
- package/dist/types/SingleValueIcon/SingleValueIcon.d.ts +29 -0
- package/dist/types/SingleValueIcon/SingleValueIcon.d.ts.map +1 -0
- package/dist/types/SingleValueIcon/config.d.ts +4 -0
- package/dist/types/SingleValueIcon/config.d.ts.map +1 -0
- package/dist/types/SingleValueIcon/index.d.ts +3 -0
- package/dist/types/SingleValueIcon/index.d.ts.map +1 -0
- package/dist/types/SingleValueRadial/PureSingleValueRadial/GaugeGraph.d.ts +20 -0
- package/dist/types/SingleValueRadial/PureSingleValueRadial/GaugeGraph.d.ts.map +1 -0
- package/dist/types/SingleValueRadial/PureSingleValueRadial/utils/gaugeUtils.d.ts +82 -0
- package/dist/types/SingleValueRadial/PureSingleValueRadial/utils/gaugeUtils.d.ts.map +1 -0
- package/dist/types/SingleValueRadial/SingleValueRadial.d.ts +17 -0
- package/dist/types/SingleValueRadial/SingleValueRadial.d.ts.map +1 -0
- package/dist/types/SingleValueRadial/config.d.ts +4 -0
- package/dist/types/SingleValueRadial/config.d.ts.map +1 -0
- package/dist/types/SingleValueRadial/index.d.ts +3 -0
- package/dist/types/SingleValueRadial/index.d.ts.map +1 -0
- package/dist/types/SparkLine/index.d.ts +2 -0
- package/dist/types/SparkLine/index.d.ts.map +1 -0
- package/dist/types/Table/PureTable.d.ts +50 -0
- package/dist/types/Table/PureTable.d.ts.map +1 -0
- package/dist/types/Table/Table.d.ts +10 -0
- package/dist/types/Table/Table.d.ts.map +1 -0
- package/dist/types/Table/cells/ArrayCell.d.ts +12 -0
- package/dist/types/Table/cells/ArrayCell.d.ts.map +1 -0
- package/dist/types/Table/cells/SparklineCell.d.ts +13 -0
- package/dist/types/Table/cells/SparklineCell.d.ts.map +1 -0
- package/dist/types/Table/cells/SwitchTableCell.d.ts +5 -0
- package/dist/types/Table/cells/SwitchTableCell.d.ts.map +1 -0
- package/dist/types/Table/cells/TextCell.d.ts +12 -0
- package/dist/types/Table/cells/TextCell.d.ts.map +1 -0
- package/dist/types/Table/cells/index.d.ts +5 -0
- package/dist/types/Table/cells/index.d.ts.map +1 -0
- package/dist/types/Table/config.d.ts +4 -0
- package/dist/types/Table/config.d.ts.map +1 -0
- package/dist/types/Table/hooks.d.ts +130 -0
- package/dist/types/Table/hooks.d.ts.map +1 -0
- package/dist/types/Table/index.d.ts +3 -0
- package/dist/types/Table/index.d.ts.map +1 -0
- package/dist/types/Timeline/PureTimeline/PureTimeline.d.ts +81 -0
- package/dist/types/Timeline/PureTimeline/PureTimeline.d.ts.map +1 -0
- package/dist/types/Timeline/PureTimeline/src/CursorPlugin.d.ts +8 -0
- package/dist/types/Timeline/PureTimeline/src/CursorPlugin.d.ts.map +1 -0
- package/dist/types/Timeline/PureTimeline/src/TimelineLegend.d.ts +28 -0
- package/dist/types/Timeline/PureTimeline/src/TimelineLegend.d.ts.map +1 -0
- package/dist/types/Timeline/PureTimeline/src/TimelinePlugin.d.ts +16 -0
- package/dist/types/Timeline/PureTimeline/src/TimelinePlugin.d.ts.map +1 -0
- package/dist/types/Timeline/PureTimeline/src/TimelineTooltip.d.ts +11 -0
- package/dist/types/Timeline/PureTimeline/src/TimelineTooltip.d.ts.map +1 -0
- package/dist/types/Timeline/PureTimeline/src/TimelineUplot.d.ts +22 -0
- package/dist/types/Timeline/PureTimeline/src/TimelineUplot.d.ts.map +1 -0
- package/dist/types/Timeline/PureTimeline/src/TimelineYAxis.d.ts +20 -0
- package/dist/types/Timeline/PureTimeline/src/TimelineYAxis.d.ts.map +1 -0
- package/dist/types/Timeline/PureTimeline/src/XAxisPlugin.d.ts +18 -0
- package/dist/types/Timeline/PureTimeline/src/XAxisPlugin.d.ts.map +1 -0
- package/dist/types/Timeline/PureTimeline/src/utils/timelineUtils.d.ts +34 -0
- package/dist/types/Timeline/PureTimeline/src/utils/timelineUtils.d.ts.map +1 -0
- package/dist/types/Timeline/Timeline.d.ts +22 -0
- package/dist/types/Timeline/Timeline.d.ts.map +1 -0
- package/dist/types/Timeline/config.d.ts +4 -0
- package/dist/types/Timeline/config.d.ts.map +1 -0
- package/dist/types/Timeline/index.d.ts +3 -0
- package/dist/types/Timeline/index.d.ts.map +1 -0
- package/dist/types/Timeline/mockdata/basicTimelineData.d.ts +76 -0
- package/dist/types/Timeline/mockdata/basicTimelineData.d.ts.map +1 -0
- package/dist/types/Timeline/mockdata/categoricalTimelineData.d.ts +31 -0
- package/dist/types/Timeline/mockdata/categoricalTimelineData.d.ts.map +1 -0
- package/dist/types/Timeline/mockdata/timelineDataSource.d.ts +52 -0
- package/dist/types/Timeline/mockdata/timelineDataSource.d.ts.map +1 -0
- package/dist/types/common/Charting.d.ts +46 -0
- package/dist/types/common/Charting.d.ts.map +1 -0
- package/dist/types/common/ChartingApi.d.ts +36 -0
- package/dist/types/common/ChartingApi.d.ts.map +1 -0
- package/dist/types/common/DocExampleWithVizSandbox.d.ts +22 -0
- package/dist/types/common/DocExampleWithVizSandbox.d.ts.map +1 -0
- package/dist/types/common/OverviewDoc.d.ts +20 -0
- package/dist/types/common/OverviewDoc.d.ts.map +1 -0
- package/dist/types/common/SplunkVisualization.d.ts +16 -0
- package/dist/types/common/SplunkVisualization.d.ts.map +1 -0
- package/dist/types/common/SplunkVisualizationApi.d.ts +16 -0
- package/dist/types/common/SplunkVisualizationApi.d.ts.map +1 -0
- package/dist/types/common/ThemedDefaults.d.ts +2 -0
- package/dist/types/common/ThemedDefaults.d.ts.map +1 -0
- package/dist/types/common/TimeSeriesChartWrapper.d.ts +7 -0
- package/dist/types/common/TimeSeriesChartWrapper.d.ts.map +1 -0
- package/dist/types/common/chartingUtils.d.ts +164 -0
- package/dist/types/common/chartingUtils.d.ts.map +1 -0
- package/dist/types/common/components/IconPlaceholder.d.ts +21 -0
- package/dist/types/common/components/IconPlaceholder.d.ts.map +1 -0
- package/dist/types/common/components/MissingPropsMessage.d.ts +28 -0
- package/dist/types/common/components/MissingPropsMessage.d.ts.map +1 -0
- package/dist/types/common/components/TrellisTitle.d.ts +10 -0
- package/dist/types/common/components/TrellisTitle.d.ts.map +1 -0
- package/dist/types/common/configContext/singleValueContext.d.ts +3 -0
- package/dist/types/common/configContext/singleValueContext.d.ts.map +1 -0
- package/dist/types/common/docUtils.d.ts +24 -0
- package/dist/types/common/docUtils.d.ts.map +1 -0
- package/dist/types/common/editorConfig/AxesChartColorAndStyle.d.ts +5 -0
- package/dist/types/common/editorConfig/AxesChartColorAndStyle.d.ts.map +1 -0
- package/dist/types/common/editorConfig/AxesChartDataConfig.d.ts +31 -0
- package/dist/types/common/editorConfig/AxesChartDataConfig.d.ts.map +1 -0
- package/dist/types/common/editorConfig/AxesChartDataDisplay.d.ts +14 -0
- package/dist/types/common/editorConfig/AxesChartDataDisplay.d.ts.map +1 -0
- package/dist/types/common/editorConfig/AxesChartLegend.d.ts +8 -0
- package/dist/types/common/editorConfig/AxesChartLegend.d.ts.map +1 -0
- package/dist/types/common/editorConfig/AxesChartXGridAndLabels.d.ts +6 -0
- package/dist/types/common/editorConfig/AxesChartXGridAndLabels.d.ts.map +1 -0
- package/dist/types/common/editorConfig/AxesChartY2GridAndLabels.d.ts +11 -0
- package/dist/types/common/editorConfig/AxesChartY2GridAndLabels.d.ts.map +1 -0
- package/dist/types/common/editorConfig/AxesChartYGridAndLabels.d.ts +4 -0
- package/dist/types/common/editorConfig/AxesChartYGridAndLabels.d.ts.map +1 -0
- package/dist/types/common/editorConfig/BackgroundColor.d.ts +10 -0
- package/dist/types/common/editorConfig/BackgroundColor.d.ts.map +1 -0
- package/dist/types/common/editorConfig/DynamicFillColorEditor.d.ts +29 -0
- package/dist/types/common/editorConfig/DynamicFillColorEditor.d.ts.map +1 -0
- package/dist/types/common/editorConfig/DynamicGaugeColorEditor.d.ts +29 -0
- package/dist/types/common/editorConfig/DynamicGaugeColorEditor.d.ts.map +1 -0
- package/dist/types/common/editorConfig/DynamicStrokeColorEditor.d.ts +29 -0
- package/dist/types/common/editorConfig/DynamicStrokeColorEditor.d.ts.map +1 -0
- package/dist/types/common/editorConfig/Gauge.d.ts +4 -0
- package/dist/types/common/editorConfig/Gauge.d.ts.map +1 -0
- package/dist/types/common/editorConfig/Legend.d.ts +4 -0
- package/dist/types/common/editorConfig/Legend.d.ts.map +1 -0
- package/dist/types/common/editorConfig/RadialBackgroundColor.d.ts +10 -0
- package/dist/types/common/editorConfig/RadialBackgroundColor.d.ts.map +1 -0
- package/dist/types/common/editorConfig/StaticFillColorEditor.d.ts +10 -0
- package/dist/types/common/editorConfig/StaticFillColorEditor.d.ts.map +1 -0
- package/dist/types/common/editorConfig/StaticGaugeColorEditor.d.ts +10 -0
- package/dist/types/common/editorConfig/StaticGaugeColorEditor.d.ts.map +1 -0
- package/dist/types/common/editorConfig/StaticStrokeColorEditor.d.ts +10 -0
- package/dist/types/common/editorConfig/StaticStrokeColorEditor.d.ts.map +1 -0
- package/dist/types/common/editorConfig/TrellisEditors.d.ts +66 -0
- package/dist/types/common/editorConfig/TrellisEditors.d.ts.map +1 -0
- package/dist/types/common/gaugeUtils.d.ts +387 -0
- package/dist/types/common/gaugeUtils.d.ts.map +1 -0
- package/dist/types/common/hocs/FixedSizeContainer.d.ts +9 -0
- package/dist/types/common/hocs/FixedSizeContainer.d.ts.map +1 -0
- package/dist/types/common/hocs/mockdata/trellisData.d.ts +1288 -0
- package/dist/types/common/hocs/mockdata/trellisData.d.ts.map +1 -0
- package/dist/types/common/hocs/withEditModeCover.d.ts +10 -0
- package/dist/types/common/hocs/withEditModeCover.d.ts.map +1 -0
- package/dist/types/common/hocs/withPlaceholder.d.ts +8 -0
- package/dist/types/common/hocs/withPlaceholder.d.ts.map +1 -0
- package/dist/types/common/hocs/withTrellis.d.ts +18 -0
- package/dist/types/common/hocs/withTrellis.d.ts.map +1 -0
- package/dist/types/common/hooks/useDeepMemo.d.ts +15 -0
- package/dist/types/common/hooks/useDeepMemo.d.ts.map +1 -0
- package/dist/types/common/hooks/useDownsampleDataSources.d.ts +7 -0
- package/dist/types/common/hooks/useDownsampleDataSources.d.ts.map +1 -0
- package/dist/types/common/hooks/useEventCallback.d.ts +9 -0
- package/dist/types/common/hooks/useEventCallback.d.ts.map +1 -0
- package/dist/types/common/hooks/useGetXAndYFields.d.ts +10 -0
- package/dist/types/common/hooks/useGetXAndYFields.d.ts.map +1 -0
- package/dist/types/common/hooks/usePagination.d.ts +21 -0
- package/dist/types/common/hooks/usePagination.d.ts.map +1 -0
- package/dist/types/common/hooks/usePrevious.d.ts +2 -0
- package/dist/types/common/hooks/usePrevious.d.ts.map +1 -0
- package/dist/types/common/hooks/useSorting.d.ts +17 -0
- package/dist/types/common/hooks/useSorting.d.ts.map +1 -0
- package/dist/types/common/hooks/useTrellisEnabled.d.ts +4 -0
- package/dist/types/common/hooks/useTrellisEnabled.d.ts.map +1 -0
- package/dist/types/common/interfaces/ChartEvent.d.ts +26 -0
- package/dist/types/common/interfaces/ChartEvent.d.ts.map +1 -0
- package/dist/types/common/interfaces/DashboardVizProps.d.ts +27 -0
- package/dist/types/common/interfaces/DashboardVizProps.d.ts.map +1 -0
- package/dist/types/common/interfaces/DataContract.d.ts +19 -0
- package/dist/types/common/interfaces/DataContract.d.ts.map +1 -0
- package/dist/types/common/interfaces/DataSource.d.ts +45 -0
- package/dist/types/common/interfaces/DataSource.d.ts.map +1 -0
- package/dist/types/common/interfaces/DefaultContext.d.ts +30 -0
- package/dist/types/common/interfaces/DefaultContext.d.ts.map +1 -0
- package/dist/types/common/interfaces/Editor.d.ts +23 -0
- package/dist/types/common/interfaces/Editor.d.ts.map +1 -0
- package/dist/types/common/interfaces/ExtendedDashViz.d.ts +7 -0
- package/dist/types/common/interfaces/ExtendedDashViz.d.ts.map +1 -0
- package/dist/types/common/interfaces/Object.d.ts +4 -0
- package/dist/types/common/interfaces/Object.d.ts.map +1 -0
- package/dist/types/common/interfaces/Overview.d.ts +14 -0
- package/dist/types/common/interfaces/Overview.d.ts.map +1 -0
- package/dist/types/common/interfaces/ThemedDefaults.d.ts +5 -0
- package/dist/types/common/interfaces/ThemedDefaults.d.ts.map +1 -0
- package/dist/types/common/interfaces/VizActionHandler.d.ts +15 -0
- package/dist/types/common/interfaces/VizActionHandler.d.ts.map +1 -0
- package/dist/types/common/interfaces/VizBehavior.d.ts +25 -0
- package/dist/types/common/interfaces/VizBehavior.d.ts.map +1 -0
- package/dist/types/common/interfaces/VizCategory.d.ts +16 -0
- package/dist/types/common/interfaces/VizCategory.d.ts.map +1 -0
- package/dist/types/common/interfaces/VizConfig.d.ts +34 -0
- package/dist/types/common/interfaces/VizConfig.d.ts.map +1 -0
- package/dist/types/common/interfaces/VizEvent.d.ts +13 -0
- package/dist/types/common/interfaces/VizEvent.d.ts.map +1 -0
- package/dist/types/common/interfaces/VizProps.d.ts +8 -0
- package/dist/types/common/interfaces/VizProps.d.ts.map +1 -0
- package/dist/types/common/interfaces/VizRegistry.d.ts +7 -0
- package/dist/types/common/interfaces/VizRegistry.d.ts.map +1 -0
- package/dist/types/common/interfaces/VizSize.d.ts +8 -0
- package/dist/types/common/interfaces/VizSize.d.ts.map +1 -0
- package/dist/types/common/interfaces/VizStatus.d.ts +2 -0
- package/dist/types/common/interfaces/VizStatus.d.ts.map +1 -0
- package/dist/types/common/interfaces/index.d.ts +19 -0
- package/dist/types/common/interfaces/index.d.ts.map +1 -0
- package/dist/types/common/shapeUtils.d.ts +26 -0
- package/dist/types/common/shapeUtils.d.ts.map +1 -0
- package/dist/types/common/utils/configUtils.d.ts +59 -0
- package/dist/types/common/utils/configUtils.d.ts.map +1 -0
- package/dist/types/common/utils/dataUtils.d.ts +31 -0
- package/dist/types/common/utils/dataUtils.d.ts.map +1 -0
- package/dist/types/common/utils/featureFlagUtils.d.ts +3 -0
- package/dist/types/common/utils/featureFlagUtils.d.ts.map +1 -0
- package/dist/types/common/utils/hocUtils.d.ts +12 -0
- package/dist/types/common/utils/hocUtils.d.ts.map +1 -0
- package/dist/types/common/utils/mapUtils.d.ts +2 -0
- package/dist/types/common/utils/mapUtils.d.ts.map +1 -0
- package/dist/types/common/utils/styleUtils.d.ts +2 -0
- package/dist/types/common/utils/styleUtils.d.ts.map +1 -0
- package/dist/types/common/utils/tableUtils.d.ts +3 -0
- package/dist/types/common/utils/tableUtils.d.ts.map +1 -0
- package/dist/types/common/utils/trellisUtils.d.ts +60 -0
- package/dist/types/common/utils/trellisUtils.d.ts.map +1 -0
- package/dist/types/common/utils/urlUtils.d.ts +2 -0
- package/dist/types/common/utils/urlUtils.d.ts.map +1 -0
- package/dist/types/common/withDashboardViz.d.ts +22 -0
- package/dist/types/common/withDashboardViz.d.ts.map +1 -0
- package/package.json +37 -39
package/FillerGauge.js
CHANGED
|
@@ -306,6 +306,110 @@ var defaultBackgroundColor = (props) => pick_default({
|
|
|
306
306
|
prisma: variables_default.backgroundColorSection(props)
|
|
307
307
|
})(props);
|
|
308
308
|
|
|
309
|
+
// src/common/editorConfig/TrellisEditors.ts
|
|
310
|
+
var isTrellisFeatureFlagOn = ({ featureFlags }) => {
|
|
311
|
+
return Boolean(featureFlags == null ? void 0 : featureFlags.visualizations_enableTrellis);
|
|
312
|
+
};
|
|
313
|
+
var isTrellisEnabled = ({ options, featureFlags }) => {
|
|
314
|
+
const { splitByLayout = visualization_schemas_exports.LAYOUT_TYPE.Off } = options;
|
|
315
|
+
return isTrellisFeatureFlagOn({ featureFlags }) && splitByLayout === visualization_schemas_exports.LAYOUT_TYPE.Trellis;
|
|
316
|
+
};
|
|
317
|
+
var TrellisEditorConfig = [
|
|
318
|
+
[
|
|
319
|
+
{
|
|
320
|
+
label: (0, i18n_exports._)("Trellis layout"),
|
|
321
|
+
option: "splitByLayout",
|
|
322
|
+
editor: "editor.toggle",
|
|
323
|
+
showEditor: isTrellisFeatureFlagOn
|
|
324
|
+
}
|
|
325
|
+
],
|
|
326
|
+
[
|
|
327
|
+
{
|
|
328
|
+
label: (0, i18n_exports._)("Split by"),
|
|
329
|
+
option: "trellisSplitBy",
|
|
330
|
+
editor: "editor.trellisSplitBy",
|
|
331
|
+
editorProps: {
|
|
332
|
+
dataSourceKey: "primary"
|
|
333
|
+
},
|
|
334
|
+
showEditor: isTrellisEnabled
|
|
335
|
+
}
|
|
336
|
+
],
|
|
337
|
+
[
|
|
338
|
+
{
|
|
339
|
+
label: (0, i18n_exports._)("Number of columns"),
|
|
340
|
+
option: "trellisColumns",
|
|
341
|
+
editor: "editor.number",
|
|
342
|
+
editorProps: {
|
|
343
|
+
min: 1
|
|
344
|
+
},
|
|
345
|
+
showEditor: isTrellisEnabled
|
|
346
|
+
}
|
|
347
|
+
],
|
|
348
|
+
[
|
|
349
|
+
{
|
|
350
|
+
label: (0, i18n_exports._)("Min column width"),
|
|
351
|
+
option: "trellisMinColumnWidth",
|
|
352
|
+
editor: "editor.number",
|
|
353
|
+
editorProps: {
|
|
354
|
+
min: 1
|
|
355
|
+
},
|
|
356
|
+
showEditor: isTrellisEnabled
|
|
357
|
+
},
|
|
358
|
+
{
|
|
359
|
+
label: (0, i18n_exports._)("Row height"),
|
|
360
|
+
option: "trellisRowHeight",
|
|
361
|
+
editor: "editor.number",
|
|
362
|
+
editorProps: {
|
|
363
|
+
min: 1
|
|
364
|
+
},
|
|
365
|
+
showEditor: isTrellisEnabled
|
|
366
|
+
}
|
|
367
|
+
],
|
|
368
|
+
[
|
|
369
|
+
{
|
|
370
|
+
label: (0, i18n_exports._)("Max number of components per page"),
|
|
371
|
+
option: "trellisPageCount",
|
|
372
|
+
editor: "editor.number",
|
|
373
|
+
editorProps: {
|
|
374
|
+
min: 1
|
|
375
|
+
},
|
|
376
|
+
showEditor: isTrellisEnabled
|
|
377
|
+
}
|
|
378
|
+
]
|
|
379
|
+
];
|
|
380
|
+
var TimechartTrellisEditorConfig = [
|
|
381
|
+
[
|
|
382
|
+
{
|
|
383
|
+
label: (0, i18n_exports._)("Trellis layout"),
|
|
384
|
+
option: "splitByLayout",
|
|
385
|
+
editor: "editor.toggle",
|
|
386
|
+
showEditor: isTrellisFeatureFlagOn,
|
|
387
|
+
// add help text for timecharts
|
|
388
|
+
editorProps: {
|
|
389
|
+
help: (0, i18n_exports._)(
|
|
390
|
+
"Y2-axis and overlay field configurations are not supported when trellis is enabled."
|
|
391
|
+
),
|
|
392
|
+
helpFormat: "under"
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
],
|
|
396
|
+
...TrellisEditorConfig.slice(1),
|
|
397
|
+
[
|
|
398
|
+
{
|
|
399
|
+
label: (0, i18n_exports._)("Shared y-axis scale"),
|
|
400
|
+
option: "trellisSharedScale",
|
|
401
|
+
editor: "editor.checkbox",
|
|
402
|
+
showEditor: isTrellisEnabled
|
|
403
|
+
}
|
|
404
|
+
]
|
|
405
|
+
];
|
|
406
|
+
var TrellisBackgroundColorEditor = {
|
|
407
|
+
label: (0, i18n_exports._)("Trellis background"),
|
|
408
|
+
option: "trellisBackgroundColor",
|
|
409
|
+
editor: "editor.color",
|
|
410
|
+
showEditor: isTrellisEnabled
|
|
411
|
+
};
|
|
412
|
+
|
|
309
413
|
// src/FillerGauge/config.ts
|
|
310
414
|
var dataContract = {
|
|
311
415
|
requiredDataSources: [
|
|
@@ -356,6 +460,13 @@ var themes = {
|
|
|
356
460
|
valueMarkerLabelFillColor: (props) => pick_default({
|
|
357
461
|
light: variables_default.gray96(props),
|
|
358
462
|
dark: variables_default.black(props)
|
|
463
|
+
})(props),
|
|
464
|
+
defaultFontColor: (props) => pick_default({
|
|
465
|
+
enterprise: {
|
|
466
|
+
dark: variables_default.textColor(props),
|
|
467
|
+
light: variables_default.textColor(props)
|
|
468
|
+
},
|
|
469
|
+
prisma: variables_default.contentColorDefault(props)
|
|
359
470
|
})(props)
|
|
360
471
|
};
|
|
361
472
|
var basePresetContext = {
|
|
@@ -415,7 +526,10 @@ var editorConfig = [
|
|
|
415
526
|
]
|
|
416
527
|
]
|
|
417
528
|
},
|
|
418
|
-
|
|
529
|
+
{
|
|
530
|
+
label: Gauge_default.label,
|
|
531
|
+
layout: [...Gauge_default.layout, ...TrellisEditorConfig]
|
|
532
|
+
},
|
|
419
533
|
{
|
|
420
534
|
label: (0, i18n_exports._)("Color and style"),
|
|
421
535
|
layout: [
|
|
@@ -446,7 +560,14 @@ var editorConfig = [
|
|
|
446
560
|
}
|
|
447
561
|
})
|
|
448
562
|
],
|
|
449
|
-
BackgroundColor_default({ themes })
|
|
563
|
+
BackgroundColor_default({ themes }),
|
|
564
|
+
[
|
|
565
|
+
__spreadProps(__spreadValues({}, TrellisBackgroundColorEditor), {
|
|
566
|
+
editorProps: {
|
|
567
|
+
themes
|
|
568
|
+
}
|
|
569
|
+
})
|
|
570
|
+
]
|
|
450
571
|
]
|
|
451
572
|
}
|
|
452
573
|
];
|
|
@@ -470,7 +591,7 @@ var config = {
|
|
|
470
591
|
defaultContext,
|
|
471
592
|
optionsSchema: visualization_schemas_exports.fillerGaugeOptionsSchema,
|
|
472
593
|
editorConfig,
|
|
473
|
-
supports: ["dynamic-options" /* DYNAMIC_OPTIONS */, "placeholder" /* PLACEHOLDER */],
|
|
594
|
+
supports: ["dynamic-options" /* DYNAMIC_OPTIONS */, "placeholder" /* PLACEHOLDER */, "trellis" /* TRELLIS */],
|
|
474
595
|
themes
|
|
475
596
|
};
|
|
476
597
|
var config_default = enhanceConfig(config);
|
|
@@ -685,7 +806,7 @@ SplunkVisualization.propTypes = {
|
|
|
685
806
|
/**
|
|
686
807
|
*
|
|
687
808
|
*/
|
|
688
|
-
SplunkVisualization.
|
|
809
|
+
SplunkVisualization.defaults = {
|
|
689
810
|
// BaseVisualization in dashboard-visualizations uses 100% for width but 250 for height
|
|
690
811
|
width: "100%",
|
|
691
812
|
height: INITIAL_HEIGHT,
|
|
@@ -706,13 +827,13 @@ var SplunkVisualization_default = SplunkVisualization;
|
|
|
706
827
|
// src/common/interfaces/DataSource.ts
|
|
707
828
|
var validSortDirs = ["asc", "desc", "none"];
|
|
708
829
|
|
|
709
|
-
// src/common/hooks/
|
|
830
|
+
// src/common/hooks/useSorting.ts
|
|
710
831
|
var SortParamsPropTypes = prop_types_exports.shape({
|
|
711
832
|
currentSortKey: prop_types_exports.string,
|
|
712
833
|
currentSortDir: prop_types_exports.oneOf(validSortDirs),
|
|
713
834
|
onSort: prop_types_exports.func
|
|
714
835
|
});
|
|
715
|
-
var
|
|
836
|
+
var useSortingParams = ({ requestParams, onRequestParamsChange }) => {
|
|
716
837
|
let currentSortKey;
|
|
717
838
|
let currentSortDir;
|
|
718
839
|
const nextSortDirMap = {
|
|
@@ -742,14 +863,14 @@ var getSortingParams = ({ requestParams, onRequestParamsChange }) => {
|
|
|
742
863
|
};
|
|
743
864
|
};
|
|
744
865
|
|
|
745
|
-
// src/common/hooks/
|
|
866
|
+
// src/common/hooks/usePagination.ts
|
|
746
867
|
var PaginatorParamsPropTypes = prop_types_exports.shape({
|
|
747
868
|
isPaging: prop_types_exports.bool,
|
|
748
869
|
current: prop_types_exports.number,
|
|
749
870
|
totalPages: prop_types_exports.number,
|
|
750
871
|
onChange: prop_types_exports.func
|
|
751
872
|
});
|
|
752
|
-
var
|
|
873
|
+
var usePaginationParams = ({
|
|
753
874
|
requestParams,
|
|
754
875
|
meta,
|
|
755
876
|
onRequestParamsChange
|
|
@@ -802,14 +923,84 @@ var defaultImport24 = __toESM(require("@splunk/visualizations-shared/Message"));
|
|
|
802
923
|
__reExport(Message_exports, require("@splunk/visualizations-shared/Message"));
|
|
803
924
|
var Message_default = "default" in defaultImport24 ? defaultImport24.default : defaultImport24;
|
|
804
925
|
|
|
805
|
-
// esm-externals:@splunk/visualizations-shared/
|
|
806
|
-
var
|
|
807
|
-
__export(
|
|
808
|
-
default: () =>
|
|
926
|
+
// esm-externals:@splunk/visualizations-shared/SizeAwareWrapper
|
|
927
|
+
var SizeAwareWrapper_exports = {};
|
|
928
|
+
__export(SizeAwareWrapper_exports, {
|
|
929
|
+
default: () => SizeAwareWrapper_default
|
|
809
930
|
});
|
|
810
|
-
var defaultImport25 = __toESM(require("@splunk/visualizations-shared/
|
|
811
|
-
__reExport(
|
|
812
|
-
var
|
|
931
|
+
var defaultImport25 = __toESM(require("@splunk/visualizations-shared/SizeAwareWrapper"));
|
|
932
|
+
__reExport(SizeAwareWrapper_exports, require("@splunk/visualizations-shared/SizeAwareWrapper"));
|
|
933
|
+
var SizeAwareWrapper_default = "default" in defaultImport25 ? defaultImport25.default : defaultImport25;
|
|
934
|
+
|
|
935
|
+
// src/common/components/MissingPropsMessage.tsx
|
|
936
|
+
var isMissing = (v) => {
|
|
937
|
+
return v === null || v === void 0;
|
|
938
|
+
};
|
|
939
|
+
var missingKeys = (keys, target) => keys.filter((k) => isMissing(target[k]));
|
|
940
|
+
var MissingPropsMessage = (props) => {
|
|
941
|
+
const {
|
|
942
|
+
width = SplunkVisualization_default.defaults.width,
|
|
943
|
+
height = SplunkVisualization_default.defaults.height,
|
|
944
|
+
missingProps,
|
|
945
|
+
backgroundColor
|
|
946
|
+
} = props;
|
|
947
|
+
const cachedHandleResize = react_exports.useCallback((w, h) => {
|
|
948
|
+
setContainerWidth(w);
|
|
949
|
+
setContainerHeight(h);
|
|
950
|
+
}, []);
|
|
951
|
+
const [containerWidth, setContainerWidth] = react_exports.useState(Number(width));
|
|
952
|
+
const [containerHeight, setContainerHeight] = react_exports.useState(Number(height));
|
|
953
|
+
return /* @__PURE__ */ react_exports.createElement("div", { style: { width: containerWidth, height: containerHeight, background: backgroundColor } }, /* @__PURE__ */ react_exports.createElement(SizeAwareWrapper_default, { width, height, onResize: cachedHandleResize }), /* @__PURE__ */ react_exports.createElement(
|
|
954
|
+
Message_default,
|
|
955
|
+
{
|
|
956
|
+
"data-test": "message",
|
|
957
|
+
width,
|
|
958
|
+
height,
|
|
959
|
+
message: (0, i18n_exports._)(`Missing property: ${missingProps.join(", ")}`),
|
|
960
|
+
level: "error"
|
|
961
|
+
}
|
|
962
|
+
));
|
|
963
|
+
};
|
|
964
|
+
var MissingPropsMessage_default = MissingPropsMessage;
|
|
965
|
+
|
|
966
|
+
// src/common/utils/hocUtils.ts
|
|
967
|
+
var extendStaticWrapperProps = ({
|
|
968
|
+
Wrapper,
|
|
969
|
+
Visualization
|
|
970
|
+
}) => {
|
|
971
|
+
const extendProperties = ["propTypes", "config"];
|
|
972
|
+
extendProperties.forEach((prop) => {
|
|
973
|
+
if (Visualization[prop]) {
|
|
974
|
+
Wrapper[prop] = Visualization[prop];
|
|
975
|
+
}
|
|
976
|
+
});
|
|
977
|
+
};
|
|
978
|
+
|
|
979
|
+
// src/common/hocs/withEditModeCover.tsx
|
|
980
|
+
var Cover = styled_components_default.div`
|
|
981
|
+
position: absolute;
|
|
982
|
+
left: 0;
|
|
983
|
+
right: 0;
|
|
984
|
+
top: 0;
|
|
985
|
+
bottom: 0;
|
|
986
|
+
`;
|
|
987
|
+
var Blocker = styled_components_default.div.attrs({
|
|
988
|
+
"data-splunk-visualization-version": "28.2.0 - 7eea200d8"
|
|
989
|
+
})`
|
|
990
|
+
position: relative;
|
|
991
|
+
width: 100%;
|
|
992
|
+
height: 100%;
|
|
993
|
+
`;
|
|
994
|
+
var withEditModeCover = (Visualization, disableEditModeCover) => {
|
|
995
|
+
const Wrapper = (props) => {
|
|
996
|
+
const { mode } = props;
|
|
997
|
+
const showEditCover = mode === "edit" && !disableEditModeCover;
|
|
998
|
+
return /* @__PURE__ */ react_exports.createElement(Blocker, null, /* @__PURE__ */ react_exports.createElement(Visualization, __spreadValues({}, props)), showEditCover && /* @__PURE__ */ react_exports.createElement(Cover, { "data-test": "edit-mode-cover" }));
|
|
999
|
+
};
|
|
1000
|
+
extendStaticWrapperProps({ Wrapper, Visualization });
|
|
1001
|
+
return Wrapper;
|
|
1002
|
+
};
|
|
1003
|
+
var withEditModeCover_default = withEditModeCover;
|
|
813
1004
|
|
|
814
1005
|
// esm-externals:@splunk/visualizations-shared/colorUtils
|
|
815
1006
|
var colorUtils_exports = {};
|
|
@@ -820,14 +1011,14 @@ var defaultImport26 = __toESM(require("@splunk/visualizations-shared/colorUtils"
|
|
|
820
1011
|
__reExport(colorUtils_exports, require("@splunk/visualizations-shared/colorUtils"));
|
|
821
1012
|
var colorUtils_default = "default" in defaultImport26 ? defaultImport26.default : defaultImport26;
|
|
822
1013
|
|
|
823
|
-
// esm-externals:@splunk/visualizations-shared/
|
|
824
|
-
var
|
|
825
|
-
__export(
|
|
826
|
-
default: () =>
|
|
1014
|
+
// esm-externals:@splunk/visualizations-shared/style
|
|
1015
|
+
var style_exports = {};
|
|
1016
|
+
__export(style_exports, {
|
|
1017
|
+
default: () => style_default
|
|
827
1018
|
});
|
|
828
|
-
var defaultImport27 = __toESM(require("@splunk/visualizations-shared/
|
|
829
|
-
__reExport(
|
|
830
|
-
var
|
|
1019
|
+
var defaultImport27 = __toESM(require("@splunk/visualizations-shared/style"));
|
|
1020
|
+
__reExport(style_exports, require("@splunk/visualizations-shared/style"));
|
|
1021
|
+
var style_default = "default" in defaultImport27 ? defaultImport27.default : defaultImport27;
|
|
831
1022
|
|
|
832
1023
|
// src/common/hocs/FixedSizeContainer.tsx
|
|
833
1024
|
var Item = styled_components_default.div.attrs(({ width }) => ({
|
|
@@ -879,7 +1070,7 @@ var withFixedSizeContainer = (Viz) => {
|
|
|
879
1070
|
FixSizeItem,
|
|
880
1071
|
{
|
|
881
1072
|
"data-test": "fix-size-item",
|
|
882
|
-
"data-splunk-visualization-version": "28.
|
|
1073
|
+
"data-splunk-visualization-version": "28.2.0 - 7eea200d8",
|
|
883
1074
|
width,
|
|
884
1075
|
height,
|
|
885
1076
|
backgroundColor
|
|
@@ -892,76 +1083,6 @@ var withFixedSizeContainer = (Viz) => {
|
|
|
892
1083
|
};
|
|
893
1084
|
var FixedSizeContainer_default = withFixedSizeContainer;
|
|
894
1085
|
|
|
895
|
-
// src/common/components/MissingPropsMessage.tsx
|
|
896
|
-
var isMissing = (v) => {
|
|
897
|
-
return v === null || v === void 0;
|
|
898
|
-
};
|
|
899
|
-
var missingKeys = (keys, target) => keys.filter((k) => isMissing(target[k]));
|
|
900
|
-
var propTypes = {
|
|
901
|
-
width: prop_types_exports.oneOfType([prop_types_exports.string, prop_types_exports.number]),
|
|
902
|
-
height: prop_types_exports.oneOfType([prop_types_exports.string, prop_types_exports.number]),
|
|
903
|
-
// eslint-disable-next-line react/no-unused-prop-types
|
|
904
|
-
backgroundColor: prop_types_exports.string,
|
|
905
|
-
missingProps: prop_types_exports.arrayOf(prop_types_exports.string)
|
|
906
|
-
};
|
|
907
|
-
var MissingPropsMessage = (props) => {
|
|
908
|
-
const { width, height, missingProps } = props;
|
|
909
|
-
return /* @__PURE__ */ react_exports.createElement(
|
|
910
|
-
Message_default,
|
|
911
|
-
{
|
|
912
|
-
"data-test": "message",
|
|
913
|
-
width,
|
|
914
|
-
height,
|
|
915
|
-
message: (0, i18n_exports._)(`Missing property: ${missingProps.join(", ")}`)
|
|
916
|
-
}
|
|
917
|
-
);
|
|
918
|
-
};
|
|
919
|
-
MissingPropsMessage.propTypes = propTypes;
|
|
920
|
-
MissingPropsMessage.defaultProps = {
|
|
921
|
-
width: "100%",
|
|
922
|
-
height: 250
|
|
923
|
-
};
|
|
924
|
-
var MissingPropsMessage_default = FixedSizeContainer_default(MissingPropsMessage);
|
|
925
|
-
|
|
926
|
-
// src/common/utils/hocUtils.ts
|
|
927
|
-
var extendStaticWrapperProps = ({
|
|
928
|
-
Wrapper,
|
|
929
|
-
Visualization
|
|
930
|
-
}) => {
|
|
931
|
-
const extendProperties = ["propTypes", "defaultProps", "config"];
|
|
932
|
-
extendProperties.forEach((prop) => {
|
|
933
|
-
if (Visualization[prop]) {
|
|
934
|
-
Wrapper[prop] = Visualization[prop];
|
|
935
|
-
}
|
|
936
|
-
});
|
|
937
|
-
};
|
|
938
|
-
|
|
939
|
-
// src/common/hocs/withEditModeCover.tsx
|
|
940
|
-
var Cover = styled_components_default.div`
|
|
941
|
-
position: absolute;
|
|
942
|
-
left: 0;
|
|
943
|
-
right: 0;
|
|
944
|
-
top: 0;
|
|
945
|
-
bottom: 0;
|
|
946
|
-
`;
|
|
947
|
-
var Blocker = styled_components_default.div.attrs({
|
|
948
|
-
"data-splunk-visualization-version": "28.0.0 - 0c5f07712"
|
|
949
|
-
})`
|
|
950
|
-
position: relative;
|
|
951
|
-
width: 100%;
|
|
952
|
-
height: 100%;
|
|
953
|
-
`;
|
|
954
|
-
var withEditModeCover = (Visualization, disableEditModeCover) => {
|
|
955
|
-
const Wrapper = (props) => {
|
|
956
|
-
const { mode } = props;
|
|
957
|
-
const showEditCover = mode === "edit" && !disableEditModeCover;
|
|
958
|
-
return /* @__PURE__ */ react_exports.createElement(Blocker, null, /* @__PURE__ */ react_exports.createElement(Visualization, __spreadValues({}, props)), showEditCover && /* @__PURE__ */ react_exports.createElement(Cover, { "data-test": "edit-mode-cover" }));
|
|
959
|
-
};
|
|
960
|
-
extendStaticWrapperProps({ Wrapper, Visualization });
|
|
961
|
-
return Wrapper;
|
|
962
|
-
};
|
|
963
|
-
var withEditModeCover_default = withEditModeCover;
|
|
964
|
-
|
|
965
1086
|
// src/common/components/IconPlaceholder.tsx
|
|
966
1087
|
var shouldShowIconPlaceholder = (dataSources, loading = false) => {
|
|
967
1088
|
const data = (0, lodash_exports.get)(dataSources, "primary.data.columns[0]", void 0);
|
|
@@ -970,18 +1091,23 @@ var shouldShowIconPlaceholder = (dataSources, loading = false) => {
|
|
|
970
1091
|
const noFields = fields === void 0;
|
|
971
1092
|
return loading || noData || noFields;
|
|
972
1093
|
};
|
|
973
|
-
var propTypes2 = {
|
|
974
|
-
icon: prop_types_exports.func,
|
|
975
|
-
width: prop_types_exports.oneOfType([prop_types_exports.string, prop_types_exports.number]),
|
|
976
|
-
height: prop_types_exports.oneOfType([prop_types_exports.string, prop_types_exports.number]),
|
|
977
|
-
// eslint-disable-next-line react/no-unused-prop-types
|
|
978
|
-
backgroundColor: prop_types_exports.string,
|
|
979
|
-
iconColor: prop_types_exports.string
|
|
980
|
-
};
|
|
981
1094
|
var IconPlaceholder = (props) => {
|
|
982
|
-
const {
|
|
1095
|
+
const {
|
|
1096
|
+
width = SplunkVisualization_default.defaults.width,
|
|
1097
|
+
height = SplunkVisualization_default.defaults.height,
|
|
1098
|
+
icon,
|
|
1099
|
+
iconColor,
|
|
1100
|
+
backgroundColor
|
|
1101
|
+
} = props;
|
|
1102
|
+
const cachedHandleResize = react_exports.useCallback((w, h) => {
|
|
1103
|
+
setContainerWidth(w);
|
|
1104
|
+
setContainerHeight(h);
|
|
1105
|
+
}, []);
|
|
1106
|
+
const [containerWidth, setContainerWidth] = react_exports.useState(Number(width));
|
|
1107
|
+
const [containerHeight, setContainerHeight] = react_exports.useState(Number(height));
|
|
1108
|
+
let content = /* @__PURE__ */ react_exports.createElement(Message_default, { width, height, level: "warning", message: (0, i18n_exports._)("No DataSource Connected") });
|
|
983
1109
|
if (icon) {
|
|
984
|
-
|
|
1110
|
+
content = react_exports.createElement(icon, {
|
|
985
1111
|
style: {
|
|
986
1112
|
left: "50%",
|
|
987
1113
|
top: "50%",
|
|
@@ -995,12 +1121,7 @@ var IconPlaceholder = (props) => {
|
|
|
995
1121
|
"data-test": "icon-placeholder"
|
|
996
1122
|
});
|
|
997
1123
|
}
|
|
998
|
-
return /* @__PURE__ */ react_exports.createElement(
|
|
999
|
-
};
|
|
1000
|
-
IconPlaceholder.propTypes = propTypes2;
|
|
1001
|
-
IconPlaceholder.defaultProps = {
|
|
1002
|
-
width: "100%",
|
|
1003
|
-
height: 250
|
|
1124
|
+
return /* @__PURE__ */ react_exports.createElement("div", { style: { width: containerWidth, height: containerHeight, background: backgroundColor } }, /* @__PURE__ */ react_exports.createElement(SizeAwareWrapper_default, { width, height, onResize: cachedHandleResize }), content);
|
|
1004
1125
|
};
|
|
1005
1126
|
var IconPlaceholder_default = FixedSizeContainer_default(IconPlaceholder);
|
|
1006
1127
|
|
|
@@ -1010,11 +1131,17 @@ var withPlaceholder = (Visualization, useIconPlaceholder = shouldShowIconPlaceho
|
|
|
1010
1131
|
const { themes: themes3 } = config3;
|
|
1011
1132
|
const Wrapper = (props) => {
|
|
1012
1133
|
var _a, _b;
|
|
1013
|
-
const {
|
|
1134
|
+
const {
|
|
1135
|
+
dataSources,
|
|
1136
|
+
loading,
|
|
1137
|
+
options,
|
|
1138
|
+
height = SplunkVisualization_default.defaults.height,
|
|
1139
|
+
width = SplunkVisualization_default.defaults.width
|
|
1140
|
+
} = props;
|
|
1014
1141
|
const showPlaceholder = useIconPlaceholder(dataSources, loading, options);
|
|
1015
|
-
const
|
|
1016
|
-
const icon = (_b = config3.placeholderIcon) != null ? _b : config3.icon;
|
|
1142
|
+
const icon = (_a = config3.placeholderIcon) != null ? _a : config3.icon;
|
|
1017
1143
|
const iconColor = variables_default.contentColorActive(props);
|
|
1144
|
+
const bgColorFromTheme = (0, colorUtils_exports.isColor)(options == null ? void 0 : options.backgroundColor) ? options == null ? void 0 : options.backgroundColor : (_b = themes3 == null ? void 0 : themes3.defaultBackgroundColor) == null ? void 0 : _b.call(themes3, props);
|
|
1018
1145
|
if (config3.supports.includes("placeholder" /* PLACEHOLDER */) && showPlaceholder) {
|
|
1019
1146
|
return /* @__PURE__ */ react_exports.createElement(
|
|
1020
1147
|
IconPlaceholder_default,
|
|
@@ -1447,6 +1574,309 @@ __reExport(trellisUtils_exports, require("@splunk/visualizations-shared/trellisU
|
|
|
1447
1574
|
var trellisUtils_default = "default" in defaultImport30 ? defaultImport30.default : defaultImport30;
|
|
1448
1575
|
|
|
1449
1576
|
// src/common/utils/trellisUtils.ts
|
|
1577
|
+
var AGGREGATIONS = "aggregations";
|
|
1578
|
+
var dataSourcesSplitByAggregationsUnknown = (dataSource) => {
|
|
1579
|
+
var _a, _b, _c, _d;
|
|
1580
|
+
const fields = (_b = (_a = dataSource == null ? void 0 : dataSource.primary) == null ? void 0 : _a.data) == null ? void 0 : _b.fields;
|
|
1581
|
+
const columns = (_d = (_c = dataSource == null ? void 0 : dataSource.primary) == null ? void 0 : _c.data) == null ? void 0 : _d.columns;
|
|
1582
|
+
let splitDataSources = null;
|
|
1583
|
+
let errorCode = null;
|
|
1584
|
+
if (fields && fields.length) {
|
|
1585
|
+
splitDataSources = {};
|
|
1586
|
+
for (let i = 0; i < fields.length; i += 1) {
|
|
1587
|
+
const fieldName = fields[i].name;
|
|
1588
|
+
if (!(fieldName == null ? void 0 : fieldName.startsWith("_"))) {
|
|
1589
|
+
splitDataSources[fieldName] = (0, lodash_exports.cloneDeep)(
|
|
1590
|
+
(0, lodash_exports.omit)(dataSource, ["primary.data.fields", "primary.data.columns"])
|
|
1591
|
+
);
|
|
1592
|
+
splitDataSources[fieldName].primary.data.fields = [fields[i]];
|
|
1593
|
+
splitDataSources[fieldName].primary.data.columns = [columns[i]];
|
|
1594
|
+
}
|
|
1595
|
+
}
|
|
1596
|
+
} else {
|
|
1597
|
+
errorCode = "INVALID_SPLIT_BY_FIELD";
|
|
1598
|
+
}
|
|
1599
|
+
return { splitDataSources, errorCode };
|
|
1600
|
+
};
|
|
1601
|
+
var toFieldEntries = (fields) => {
|
|
1602
|
+
return fields.map((field) => {
|
|
1603
|
+
if (typeof field === "string") {
|
|
1604
|
+
return { name: field };
|
|
1605
|
+
}
|
|
1606
|
+
return field;
|
|
1607
|
+
});
|
|
1608
|
+
};
|
|
1609
|
+
var dataSourcesSplitByAggregationsTimechartAndChart = (dataSource) => {
|
|
1610
|
+
var _a, _b, _c, _d;
|
|
1611
|
+
const fields = toFieldEntries((_b = (_a = dataSource == null ? void 0 : dataSource.primary) == null ? void 0 : _a.data) == null ? void 0 : _b.fields);
|
|
1612
|
+
const columns = (_d = (_c = dataSource == null ? void 0 : dataSource.primary) == null ? void 0 : _c.data) == null ? void 0 : _d.columns;
|
|
1613
|
+
let splitDataSources = null;
|
|
1614
|
+
let splitByFields = [];
|
|
1615
|
+
let errorCode = null;
|
|
1616
|
+
if (typeof fields[0] !== "string") {
|
|
1617
|
+
splitByFields = (0, trellisUtils_exports.extractDataSourceAggregationKeysChart)(fields);
|
|
1618
|
+
}
|
|
1619
|
+
if (splitByFields && splitByFields.length > 0) {
|
|
1620
|
+
splitDataSources = {};
|
|
1621
|
+
splitByFields.forEach((splitByField) => {
|
|
1622
|
+
splitDataSources[splitByField] = (0, lodash_exports.cloneDeep)(
|
|
1623
|
+
(0, lodash_exports.omit)(dataSource, ["primary.data.fields", "primary.data.columns"])
|
|
1624
|
+
);
|
|
1625
|
+
splitDataSources[splitByField].primary.data.fields = [fields[0]];
|
|
1626
|
+
splitDataSources[splitByField].primary.data.columns = [columns[0]];
|
|
1627
|
+
fields.forEach((field, idx) => {
|
|
1628
|
+
const fieldName = field == null ? void 0 : field.name;
|
|
1629
|
+
if (fieldName !== "_time" && !(fieldName == null ? void 0 : fieldName.startsWith("_")) && field.data_source === splitByField) {
|
|
1630
|
+
splitDataSources[splitByField].primary.data.fields.push(field);
|
|
1631
|
+
splitDataSources[splitByField].primary.data.columns.push(columns[idx]);
|
|
1632
|
+
}
|
|
1633
|
+
});
|
|
1634
|
+
});
|
|
1635
|
+
} else if ((!splitByFields || !splitByFields.length) && fields.length > 1) {
|
|
1636
|
+
splitDataSources = {};
|
|
1637
|
+
for (let i = 1; i < fields.length; i += 1) {
|
|
1638
|
+
const fieldName = fields[i].name;
|
|
1639
|
+
if (!(fieldName == null ? void 0 : fieldName.startsWith("_"))) {
|
|
1640
|
+
splitDataSources[fieldName] = (0, lodash_exports.cloneDeep)(
|
|
1641
|
+
(0, lodash_exports.omit)(dataSource, ["primary.data.fields", "primary.data.columns"])
|
|
1642
|
+
);
|
|
1643
|
+
splitDataSources[fieldName].primary.data.fields = [fields[0], fields[i]];
|
|
1644
|
+
splitDataSources[fieldName].primary.data.columns = [columns[0], columns[i]];
|
|
1645
|
+
}
|
|
1646
|
+
}
|
|
1647
|
+
} else {
|
|
1648
|
+
errorCode = "INVALID_SPLIT_BY_FIELD";
|
|
1649
|
+
}
|
|
1650
|
+
return { splitDataSources, errorCode };
|
|
1651
|
+
};
|
|
1652
|
+
var dataSourcesSplitByAggregationsStats = (dataSource) => {
|
|
1653
|
+
var _a, _b, _c, _d;
|
|
1654
|
+
const fields = (_b = (_a = dataSource == null ? void 0 : dataSource.primary) == null ? void 0 : _a.data) == null ? void 0 : _b.fields;
|
|
1655
|
+
const columns = (_d = (_c = dataSource == null ? void 0 : dataSource.primary) == null ? void 0 : _c.data) == null ? void 0 : _d.columns;
|
|
1656
|
+
let splitDataSources = null;
|
|
1657
|
+
let splitByFields = [];
|
|
1658
|
+
let errorCode = null;
|
|
1659
|
+
if (typeof fields[0] !== "string") {
|
|
1660
|
+
splitByFields = (0, trellisUtils_exports.extractDataSourceAggregationKeysStats)(fields);
|
|
1661
|
+
}
|
|
1662
|
+
if (splitByFields && splitByFields.length > 0) {
|
|
1663
|
+
splitDataSources = {};
|
|
1664
|
+
splitByFields.forEach((splitByField) => {
|
|
1665
|
+
splitDataSources[splitByField] = (0, lodash_exports.cloneDeep)(
|
|
1666
|
+
(0, lodash_exports.omit)(dataSource, ["primary.data.fields", "primary.data.columns"])
|
|
1667
|
+
);
|
|
1668
|
+
splitDataSources[splitByField].primary.data.fields = [fields[0]];
|
|
1669
|
+
splitDataSources[splitByField].primary.data.columns = [columns[0]];
|
|
1670
|
+
const idx = fields.findIndex((field) => field.name === splitByField);
|
|
1671
|
+
if (idx > 0) {
|
|
1672
|
+
splitDataSources[splitByField].primary.data.fields.push(fields[idx]);
|
|
1673
|
+
splitDataSources[splitByField].primary.data.columns.push(columns[idx]);
|
|
1674
|
+
}
|
|
1675
|
+
});
|
|
1676
|
+
} else {
|
|
1677
|
+
errorCode = "INVALID_SPLIT_BY_FIELD";
|
|
1678
|
+
}
|
|
1679
|
+
return { splitDataSources, errorCode };
|
|
1680
|
+
};
|
|
1681
|
+
var dataSourcesSplitByModeTimechart = (dataSource, splitBy) => {
|
|
1682
|
+
var _a, _b, _c, _d, _e;
|
|
1683
|
+
const fields = (_b = (_a = dataSource == null ? void 0 : dataSource.primary) == null ? void 0 : _a.data) == null ? void 0 : _b.fields;
|
|
1684
|
+
const columns = (_d = (_c = dataSource == null ? void 0 : dataSource.primary) == null ? void 0 : _c.data) == null ? void 0 : _d.columns;
|
|
1685
|
+
let splitDataSources = null;
|
|
1686
|
+
let splitByFields = [];
|
|
1687
|
+
let errorCode = null;
|
|
1688
|
+
if (typeof fields[0] !== "string") {
|
|
1689
|
+
splitByFields = (0, trellisUtils_exports.extractSplitByFieldsChartFields)(fields);
|
|
1690
|
+
}
|
|
1691
|
+
if (splitByFields && splitByFields.indexOf(splitBy) > -1) {
|
|
1692
|
+
splitDataSources = {};
|
|
1693
|
+
const dataSourceKeys = (0, trellisUtils_exports.extractDataSourceAggregationKeysChart)(fields);
|
|
1694
|
+
const valueKeys = [];
|
|
1695
|
+
for (let i = 1; i < fields.length; i += 1) {
|
|
1696
|
+
if (!((_e = fields[i].name) == null ? void 0 : _e.startsWith("_"))) {
|
|
1697
|
+
valueKeys.push(fields[i].splitby_value ? fields[i].splitby_value : fields[i].name);
|
|
1698
|
+
}
|
|
1699
|
+
}
|
|
1700
|
+
valueKeys.forEach((val) => {
|
|
1701
|
+
splitDataSources[val] = (0, lodash_exports.cloneDeep)(
|
|
1702
|
+
(0, lodash_exports.omit)(dataSource, ["primary.data.fields", "primary.data.columns"])
|
|
1703
|
+
);
|
|
1704
|
+
splitDataSources[val].primary.data.fields = [
|
|
1705
|
+
{ name: fields[0].name },
|
|
1706
|
+
...dataSourceKeys.map((k) => ({
|
|
1707
|
+
name: k
|
|
1708
|
+
}))
|
|
1709
|
+
];
|
|
1710
|
+
splitDataSources[val].primary.data.columns = [[...columns[0]]];
|
|
1711
|
+
dataSourceKeys.forEach((dsKey) => {
|
|
1712
|
+
fields.forEach((field, idx) => {
|
|
1713
|
+
if (field.data_source === dsKey && (field.splitby_value === val || field.name === val)) {
|
|
1714
|
+
splitDataSources[val].primary.data.columns.push([...columns[idx]]);
|
|
1715
|
+
}
|
|
1716
|
+
});
|
|
1717
|
+
});
|
|
1718
|
+
});
|
|
1719
|
+
} else {
|
|
1720
|
+
errorCode = "INVALID_SPLIT_BY_FIELD";
|
|
1721
|
+
}
|
|
1722
|
+
return { splitDataSources, errorCode };
|
|
1723
|
+
};
|
|
1724
|
+
var dataSourcesSplitByModeChart = (dataSource, splitBy) => {
|
|
1725
|
+
var _a, _b, _c, _d;
|
|
1726
|
+
const fields = (_b = (_a = dataSource == null ? void 0 : dataSource.primary) == null ? void 0 : _a.data) == null ? void 0 : _b.fields;
|
|
1727
|
+
const columns = (_d = (_c = dataSource == null ? void 0 : dataSource.primary) == null ? void 0 : _c.data) == null ? void 0 : _d.columns;
|
|
1728
|
+
let splitDataSources = null;
|
|
1729
|
+
let splitByFields = [];
|
|
1730
|
+
let errorCode = null;
|
|
1731
|
+
if (typeof fields[0] !== "string") {
|
|
1732
|
+
splitByFields = (0, trellisUtils_exports.extractSplitByFieldsChartFields)(fields);
|
|
1733
|
+
}
|
|
1734
|
+
if (splitByFields && splitByFields.indexOf(splitBy) > -1) {
|
|
1735
|
+
splitDataSources = {};
|
|
1736
|
+
const splitByFieldIdx = splitByFields.findIndex((f) => f === splitBy);
|
|
1737
|
+
const otherSplitBy = splitByFields.filter((f) => f !== splitBy);
|
|
1738
|
+
const dataSourceKeys = (0, trellisUtils_exports.extractDataSourceAggregationKeysChart)(fields);
|
|
1739
|
+
const nonDataSourceAggregations = [];
|
|
1740
|
+
if (!dataSourceKeys.length && fields[0].groupby_rank === "0" && fields.length && !fields[1].groupby_rank) {
|
|
1741
|
+
for (let i = 1; i < fields.length; i += 1) {
|
|
1742
|
+
nonDataSourceAggregations.push(fields[i].name);
|
|
1743
|
+
}
|
|
1744
|
+
}
|
|
1745
|
+
if (splitByFieldIdx === 0) {
|
|
1746
|
+
const valueKeys = (0, lodash_exports.cloneDeep)(columns[0]);
|
|
1747
|
+
valueKeys.forEach((val, idx) => {
|
|
1748
|
+
splitDataSources[val] = (0, lodash_exports.cloneDeep)(
|
|
1749
|
+
(0, lodash_exports.omit)(dataSource, ["primary.data.fields", "primary.data.columns"])
|
|
1750
|
+
);
|
|
1751
|
+
splitDataSources[val].primary.data.fields = [];
|
|
1752
|
+
if (otherSplitBy.length) {
|
|
1753
|
+
splitDataSources[val].primary.data.fields = [{ name: otherSplitBy[0] }];
|
|
1754
|
+
}
|
|
1755
|
+
if (dataSourceKeys.length) {
|
|
1756
|
+
const columnValues = [[]];
|
|
1757
|
+
splitDataSources[val].primary.data.fields = [
|
|
1758
|
+
...splitDataSources[val].primary.data.fields,
|
|
1759
|
+
...dataSourceKeys.map((k) => ({
|
|
1760
|
+
name: k
|
|
1761
|
+
}))
|
|
1762
|
+
];
|
|
1763
|
+
dataSourceKeys.forEach(() => {
|
|
1764
|
+
columnValues.push([]);
|
|
1765
|
+
});
|
|
1766
|
+
for (let i = 1; i <= Math.ceil((fields.length - 1) / dataSourceKeys.length); i += 1) {
|
|
1767
|
+
columnValues[0].push(
|
|
1768
|
+
fields[i].splitby_value ? fields[i].splitby_value : fields[i].name
|
|
1769
|
+
);
|
|
1770
|
+
dataSourceKeys.forEach((dskey, dsIndx) => {
|
|
1771
|
+
const mul = (fields.length - 1) / dataSourceKeys.length;
|
|
1772
|
+
columnValues[dsIndx + 1].push(columns[i + dsIndx * mul][idx]);
|
|
1773
|
+
});
|
|
1774
|
+
}
|
|
1775
|
+
splitDataSources[val].primary.data.columns = columnValues;
|
|
1776
|
+
} else if (nonDataSourceAggregations.length) {
|
|
1777
|
+
const columnValues = [];
|
|
1778
|
+
fields.forEach((aggregationField, fieldIdx) => {
|
|
1779
|
+
if (fieldIdx > 0) {
|
|
1780
|
+
splitDataSources[val].primary.data.fields.push(aggregationField);
|
|
1781
|
+
columnValues.push([columns[fieldIdx][idx]]);
|
|
1782
|
+
}
|
|
1783
|
+
});
|
|
1784
|
+
splitDataSources[val].primary.data.columns = columnValues;
|
|
1785
|
+
}
|
|
1786
|
+
});
|
|
1787
|
+
} else {
|
|
1788
|
+
const valueKeys = [];
|
|
1789
|
+
for (let i = 1; i < fields.length; i += 1) {
|
|
1790
|
+
valueKeys.push(fields[i].splitby_value ? fields[i].splitby_value : fields[i].name);
|
|
1791
|
+
}
|
|
1792
|
+
valueKeys.forEach((val) => {
|
|
1793
|
+
splitDataSources[val] = (0, lodash_exports.cloneDeep)(
|
|
1794
|
+
(0, lodash_exports.omit)(dataSource, ["primary.data.fields", "primary.data.columns"])
|
|
1795
|
+
);
|
|
1796
|
+
splitDataSources[val].primary.data.fields = [
|
|
1797
|
+
{ name: otherSplitBy[0] },
|
|
1798
|
+
...dataSourceKeys.map((k) => ({
|
|
1799
|
+
name: k
|
|
1800
|
+
}))
|
|
1801
|
+
];
|
|
1802
|
+
splitDataSources[val].primary.data.columns = [[...columns[0]]];
|
|
1803
|
+
dataSourceKeys.forEach((dsKey) => {
|
|
1804
|
+
fields.forEach((field, idx) => {
|
|
1805
|
+
if (field.data_source === dsKey && (field.splitby_value === val || field.name === val)) {
|
|
1806
|
+
splitDataSources[val].primary.data.columns.push([...columns[idx]]);
|
|
1807
|
+
}
|
|
1808
|
+
});
|
|
1809
|
+
});
|
|
1810
|
+
});
|
|
1811
|
+
}
|
|
1812
|
+
} else {
|
|
1813
|
+
errorCode = "INVALID_SPLIT_BY_FIELD";
|
|
1814
|
+
}
|
|
1815
|
+
return { splitDataSources, errorCode };
|
|
1816
|
+
};
|
|
1817
|
+
var dataSourcesSplitByModeStatsorUnknown = (dataSource, splitBy, splitMode) => {
|
|
1818
|
+
var _a, _b, _c, _d, _e, _f;
|
|
1819
|
+
const fields = (_b = (_a = dataSource == null ? void 0 : dataSource.primary) == null ? void 0 : _a.data) == null ? void 0 : _b.fields;
|
|
1820
|
+
const columns = (_d = (_c = dataSource == null ? void 0 : dataSource.primary) == null ? void 0 : _c.data) == null ? void 0 : _d.columns;
|
|
1821
|
+
let splitDataSources = null;
|
|
1822
|
+
let splitByFields = [];
|
|
1823
|
+
let errorCode = null;
|
|
1824
|
+
if (typeof fields[0] !== "string") {
|
|
1825
|
+
splitByFields = splitMode !== trellisUtils_exports.UNKNOWN ? (0, trellisUtils_exports.extractSplitByFieldsForStats)(fields) : (0, trellisUtils_exports.extractSplitByFieldsForUnknown)(fields);
|
|
1826
|
+
}
|
|
1827
|
+
const splitByIndex = fields == null ? void 0 : fields.findIndex(
|
|
1828
|
+
(field) => field === splitBy || field.name === splitBy
|
|
1829
|
+
);
|
|
1830
|
+
if (splitByFields && splitByFields.indexOf(splitBy) > -1) {
|
|
1831
|
+
const splitByColumn = (_f = (_e = dataSource == null ? void 0 : dataSource.primary) == null ? void 0 : _e.data) == null ? void 0 : _f.columns[splitByIndex];
|
|
1832
|
+
splitDataSources = {};
|
|
1833
|
+
splitByColumn.forEach((val, idx) => {
|
|
1834
|
+
if (!splitDataSources[val]) {
|
|
1835
|
+
splitDataSources[val] = [idx];
|
|
1836
|
+
} else {
|
|
1837
|
+
splitDataSources[val].push(idx);
|
|
1838
|
+
}
|
|
1839
|
+
});
|
|
1840
|
+
const cloneFields = (0, lodash_exports.cloneDeep)(fields);
|
|
1841
|
+
cloneFields.splice(splitByIndex, 1);
|
|
1842
|
+
const valueKeys = Object.keys(splitDataSources);
|
|
1843
|
+
valueKeys.forEach((val) => {
|
|
1844
|
+
const valIndices = (0, lodash_exports.cloneDeep)(splitDataSources[val]);
|
|
1845
|
+
splitDataSources[val] = (0, lodash_exports.cloneDeep)(
|
|
1846
|
+
(0, lodash_exports.omit)(dataSource, ["primary.data.fields", "primary.data.columns"])
|
|
1847
|
+
);
|
|
1848
|
+
splitDataSources[val].primary.data.fields = cloneFields;
|
|
1849
|
+
splitDataSources[val].primary.data.columns = [];
|
|
1850
|
+
columns.forEach((col, idx) => {
|
|
1851
|
+
if (idx !== splitByIndex) {
|
|
1852
|
+
const newCol = valIndices.map((valIdx) => col[valIdx]);
|
|
1853
|
+
splitDataSources[val].primary.data.columns.push(newCol);
|
|
1854
|
+
}
|
|
1855
|
+
});
|
|
1856
|
+
});
|
|
1857
|
+
} else {
|
|
1858
|
+
errorCode = "INVALID_SPLIT_BY_FIELD";
|
|
1859
|
+
}
|
|
1860
|
+
return { splitDataSources, errorCode };
|
|
1861
|
+
};
|
|
1862
|
+
var getTrellisDataSourcesBySplitMode = (splitMode, dataSources, trellisSplitBy) => {
|
|
1863
|
+
let result = null;
|
|
1864
|
+
try {
|
|
1865
|
+
if (splitMode === trellisUtils_exports.TIMECHART) {
|
|
1866
|
+
result = trellisSplitBy === AGGREGATIONS ? dataSourcesSplitByAggregationsTimechartAndChart(dataSources) : dataSourcesSplitByModeTimechart(dataSources, trellisSplitBy);
|
|
1867
|
+
} else if (splitMode === trellisUtils_exports.STATS) {
|
|
1868
|
+
result = trellisSplitBy === AGGREGATIONS ? dataSourcesSplitByAggregationsStats(dataSources) : dataSourcesSplitByModeStatsorUnknown(dataSources, trellisSplitBy, trellisUtils_exports.STATS);
|
|
1869
|
+
} else if (splitMode === trellisUtils_exports.CHART) {
|
|
1870
|
+
result = trellisSplitBy === AGGREGATIONS ? dataSourcesSplitByAggregationsTimechartAndChart(dataSources) : dataSourcesSplitByModeChart(dataSources, trellisSplitBy);
|
|
1871
|
+
} else if (splitMode === trellisUtils_exports.UNKNOWN) {
|
|
1872
|
+
result = trellisSplitBy === AGGREGATIONS ? dataSourcesSplitByAggregationsUnknown(dataSources) : dataSourcesSplitByModeStatsorUnknown(dataSources, trellisSplitBy, trellisUtils_exports.UNKNOWN);
|
|
1873
|
+
}
|
|
1874
|
+
} catch (ex) {
|
|
1875
|
+
console.error("getTrellisDataSourcesBySplitMode ", ex);
|
|
1876
|
+
result = { splitDataSources: null, errorCode: "UNKNOWN" };
|
|
1877
|
+
}
|
|
1878
|
+
return result;
|
|
1879
|
+
};
|
|
1450
1880
|
var turnOffLegendDisplayWhenTrellisIsOn = (isTrellisOn, options) => {
|
|
1451
1881
|
if (isTrellisOn && !options.legendDisplay) {
|
|
1452
1882
|
return {
|
|
@@ -1455,6 +1885,412 @@ var turnOffLegendDisplayWhenTrellisIsOn = (isTrellisOn, options) => {
|
|
|
1455
1885
|
}
|
|
1456
1886
|
return {};
|
|
1457
1887
|
};
|
|
1888
|
+
var calculateSharedMinMax = (splitData) => {
|
|
1889
|
+
let max = -Infinity;
|
|
1890
|
+
let min = Infinity;
|
|
1891
|
+
Object.keys(splitData).forEach((splitByKey) => {
|
|
1892
|
+
const datasources = splitData[splitByKey];
|
|
1893
|
+
Object.keys(datasources).forEach((datasourceName) => {
|
|
1894
|
+
const dataColumns = datasources[datasourceName].data.columns;
|
|
1895
|
+
dataColumns.forEach((column) => {
|
|
1896
|
+
column.forEach((point) => {
|
|
1897
|
+
const pointNumber = Number(point);
|
|
1898
|
+
if (pointNumber > max) {
|
|
1899
|
+
max = pointNumber;
|
|
1900
|
+
}
|
|
1901
|
+
if (pointNumber < min) {
|
|
1902
|
+
min = pointNumber;
|
|
1903
|
+
}
|
|
1904
|
+
});
|
|
1905
|
+
});
|
|
1906
|
+
});
|
|
1907
|
+
});
|
|
1908
|
+
return [min, max];
|
|
1909
|
+
};
|
|
1910
|
+
var determineMinMax = (splitData, trellisSharedScale, yAxisMin, yAxisMax, stackMode) => {
|
|
1911
|
+
if (!trellisSharedScale || stackMode === "stacked100" || yAxisMin !== "auto" && yAxisMax !== "auto")
|
|
1912
|
+
return [yAxisMin, yAxisMax];
|
|
1913
|
+
const [sharedMin, sharedMax] = calculateSharedMinMax(splitData);
|
|
1914
|
+
const shouldUseSharedMax = sharedMax !== -Infinity && yAxisMax === "auto";
|
|
1915
|
+
const shouldUseSharedMin = sharedMin !== Infinity && yAxisMin === "auto";
|
|
1916
|
+
return [shouldUseSharedMin ? sharedMin : yAxisMin, shouldUseSharedMax ? sharedMax : yAxisMax];
|
|
1917
|
+
};
|
|
1918
|
+
|
|
1919
|
+
// esm-externals:@splunk/visualization-canvas
|
|
1920
|
+
var visualization_canvas_exports = {};
|
|
1921
|
+
__export(visualization_canvas_exports, {
|
|
1922
|
+
default: () => visualization_canvas_default
|
|
1923
|
+
});
|
|
1924
|
+
var defaultImport31 = __toESM(require("@splunk/visualization-canvas"));
|
|
1925
|
+
__reExport(visualization_canvas_exports, require("@splunk/visualization-canvas"));
|
|
1926
|
+
var visualization_canvas_default = "default" in defaultImport31 ? defaultImport31.default : defaultImport31;
|
|
1927
|
+
|
|
1928
|
+
// src/common/components/VizStyleWrapper.jsx
|
|
1929
|
+
var VizStyleWrapper = styled_components_default.div.attrs(({ dataTestKey }) => ({
|
|
1930
|
+
"data-test": dataTestKey,
|
|
1931
|
+
"data-testid": dataTestKey
|
|
1932
|
+
}))`
|
|
1933
|
+
display: flex;
|
|
1934
|
+
justify-content: center;
|
|
1935
|
+
flex-direction: column;
|
|
1936
|
+
width: 100%;
|
|
1937
|
+
height: 100%;
|
|
1938
|
+
background-color: ${(props) => props.backgroundColor};
|
|
1939
|
+
`;
|
|
1940
|
+
VizStyleWrapper.displayName = "VizStyleWrapper";
|
|
1941
|
+
var VizStyleWrapper_default = VizStyleWrapper;
|
|
1942
|
+
|
|
1943
|
+
// esm-externals:@splunk/react-icons/Triangle
|
|
1944
|
+
var Triangle_exports = {};
|
|
1945
|
+
__export(Triangle_exports, {
|
|
1946
|
+
default: () => Triangle_default
|
|
1947
|
+
});
|
|
1948
|
+
var defaultImport32 = __toESM(require("@splunk/react-icons/Triangle"));
|
|
1949
|
+
__reExport(Triangle_exports, require("@splunk/react-icons/Triangle"));
|
|
1950
|
+
var Triangle_default = "default" in defaultImport32 ? defaultImport32.default : defaultImport32;
|
|
1951
|
+
|
|
1952
|
+
// src/common/chartingUtils.ts
|
|
1953
|
+
var DEFAULT_LINE_WIDTH = 2;
|
|
1954
|
+
var getAnnotationsForCanvas = ({
|
|
1955
|
+
annotationX,
|
|
1956
|
+
annotationColor,
|
|
1957
|
+
annotationLabel
|
|
1958
|
+
}) => (annotationX == null ? void 0 : annotationX.length) ? annotationX.map((timestamp, i) => ({
|
|
1959
|
+
key: annotationLabel == null ? void 0 : annotationLabel[i],
|
|
1960
|
+
time: timestamp,
|
|
1961
|
+
color: annotationColor == null ? void 0 : annotationColor[i]
|
|
1962
|
+
})) : [];
|
|
1963
|
+
var StyledTriangle = styled_components_default(Triangle_default)`
|
|
1964
|
+
color: ${(props) => props.eventColor || variables_default.severityColorNotice(props)};
|
|
1965
|
+
`;
|
|
1966
|
+
var triangleEventAnnotationRenderer = ({ event }) => {
|
|
1967
|
+
const eventWithColor = event;
|
|
1968
|
+
return react_default.createElement(StyledTriangle, {
|
|
1969
|
+
viewBox: "0 0 24 24",
|
|
1970
|
+
variant: "filled",
|
|
1971
|
+
eventColor: eventWithColor.color
|
|
1972
|
+
});
|
|
1973
|
+
};
|
|
1974
|
+
var canvasSupportedTimeSeriesCharts = ["splunk.line"];
|
|
1975
|
+
var isTimeSeriesCanvasRenderSupported = (vizConfigKey) => {
|
|
1976
|
+
return canvasSupportedTimeSeriesCharts.indexOf(vizConfigKey) > -1;
|
|
1977
|
+
};
|
|
1978
|
+
var filterChartDataFromInternalFields = (chartData) => {
|
|
1979
|
+
const { fields, columns } = chartData;
|
|
1980
|
+
const keepIndexes = fields.reduce((acc, field, index) => {
|
|
1981
|
+
const fieldName = typeof field === "object" ? field == null ? void 0 : field.name : field;
|
|
1982
|
+
if (!(fieldName == null ? void 0 : fieldName.startsWith("_")) || fieldName === "_time") {
|
|
1983
|
+
acc.push(index);
|
|
1984
|
+
}
|
|
1985
|
+
return acc;
|
|
1986
|
+
}, []);
|
|
1987
|
+
const filteredFields = keepIndexes.map((index) => fields[index]);
|
|
1988
|
+
const filteredColumns = keepIndexes.map((index) => columns[index]);
|
|
1989
|
+
return { fields: filteredFields, columns: filteredColumns };
|
|
1990
|
+
};
|
|
1991
|
+
var convert2DArrayToNumbers = (arr) => {
|
|
1992
|
+
return arr.map((subArray) => subArray.map((element) => parseFloat(element)));
|
|
1993
|
+
};
|
|
1994
|
+
var SideLegendWidth = 75;
|
|
1995
|
+
var commonLegendProps = { center: true, fontSize: 12, largerTiles: true, hideSeriesValue: true };
|
|
1996
|
+
var getLegend = (props) => {
|
|
1997
|
+
const legendPlacement = props == null ? void 0 : props.legendDisplay;
|
|
1998
|
+
switch (legendPlacement) {
|
|
1999
|
+
case "off":
|
|
2000
|
+
return false;
|
|
2001
|
+
case "left":
|
|
2002
|
+
return (0, visualization_canvas_exports.LeftLegendFactory)(__spreadValues({
|
|
2003
|
+
width: SideLegendWidth
|
|
2004
|
+
}, commonLegendProps));
|
|
2005
|
+
case "bottom":
|
|
2006
|
+
return (0, visualization_canvas_exports.BottomLegendFactory)(__spreadValues({
|
|
2007
|
+
wrap: true
|
|
2008
|
+
}, commonLegendProps));
|
|
2009
|
+
case "top":
|
|
2010
|
+
return (0, visualization_canvas_exports.TopLegendFactory)(__spreadValues({
|
|
2011
|
+
wrap: true
|
|
2012
|
+
}, commonLegendProps));
|
|
2013
|
+
default:
|
|
2014
|
+
return (0, visualization_canvas_exports.SideLegendFactory)(__spreadValues({
|
|
2015
|
+
width: SideLegendWidth
|
|
2016
|
+
}, commonLegendProps));
|
|
2017
|
+
}
|
|
2018
|
+
};
|
|
2019
|
+
var getComputedAxisTitles = (inputAxisTitle, fields, axisTitleVisibility) => {
|
|
2020
|
+
if (axisTitleVisibility === "collapsed") {
|
|
2021
|
+
return "";
|
|
2022
|
+
}
|
|
2023
|
+
let fieldTitle = fields.length > 1 ? "" : fields[0];
|
|
2024
|
+
if (!fieldTitle) {
|
|
2025
|
+
fieldTitle = "";
|
|
2026
|
+
}
|
|
2027
|
+
return (inputAxisTitle == null ? void 0 : inputAxisTitle.length) ? inputAxisTitle.trim() : fieldTitle;
|
|
2028
|
+
};
|
|
2029
|
+
var ellipsisAxisTitle = (axisTitle, containerSpacing, fontSize = 12) => {
|
|
2030
|
+
if (!axisTitle) {
|
|
2031
|
+
return "";
|
|
2032
|
+
}
|
|
2033
|
+
if (Number.isNaN(containerSpacing) || containerSpacing <= 0) {
|
|
2034
|
+
return axisTitle;
|
|
2035
|
+
}
|
|
2036
|
+
const availableHeight = containerSpacing * 0.6;
|
|
2037
|
+
const avgCharWidth = fontSize * 0.55;
|
|
2038
|
+
const maxChars = Math.floor(availableHeight / avgCharWidth);
|
|
2039
|
+
if (axisTitle.length <= maxChars) {
|
|
2040
|
+
return axisTitle;
|
|
2041
|
+
}
|
|
2042
|
+
if (maxChars <= 3) {
|
|
2043
|
+
return "...";
|
|
2044
|
+
}
|
|
2045
|
+
const availableChars = maxChars - 3;
|
|
2046
|
+
const halfChars = Math.floor(availableChars / 2);
|
|
2047
|
+
const start = axisTitle.slice(0, halfChars);
|
|
2048
|
+
const end = axisTitle.slice(-halfChars);
|
|
2049
|
+
return `${start}...${end}`;
|
|
2050
|
+
};
|
|
2051
|
+
var getFieldName = (field) => {
|
|
2052
|
+
const fieldName = typeof field === "object" ? field == null ? void 0 : field.name : field;
|
|
2053
|
+
return fieldName;
|
|
2054
|
+
};
|
|
2055
|
+
var getFieldNames = (fields) => {
|
|
2056
|
+
return fields.map((field) => getFieldName(field));
|
|
2057
|
+
};
|
|
2058
|
+
var getXScaleConfig = (label) => {
|
|
2059
|
+
const xConfig = { x: {} };
|
|
2060
|
+
xConfig.x.label = label;
|
|
2061
|
+
return xConfig;
|
|
2062
|
+
};
|
|
2063
|
+
var getYScaleConfig = (label, yAxisAbbreviation, yAxisScale) => {
|
|
2064
|
+
const scaleType = yAxisScale != null ? yAxisScale : "linear";
|
|
2065
|
+
const yConfig = { y: {} };
|
|
2066
|
+
yConfig.y.label = label;
|
|
2067
|
+
yConfig.y.type = scaleType;
|
|
2068
|
+
if (yAxisAbbreviation !== "none") {
|
|
2069
|
+
yConfig.y.tickFmt = (v) => (0, visualization_canvas_exports.shortenNumber)(v, 1);
|
|
2070
|
+
}
|
|
2071
|
+
if (yAxisAbbreviation === "none") {
|
|
2072
|
+
yConfig.y.width = 55;
|
|
2073
|
+
} else {
|
|
2074
|
+
yConfig.y.width = label && label.length > 0 ? 30 : 10;
|
|
2075
|
+
}
|
|
2076
|
+
return yConfig;
|
|
2077
|
+
};
|
|
2078
|
+
var getY2ScaleConfig = (label, axisAbbreviation, axisScale, roundAxisLabelsToInteger) => {
|
|
2079
|
+
const y2Config = { y2: {} };
|
|
2080
|
+
const scaleType = axisScale != null ? axisScale : "linear";
|
|
2081
|
+
y2Config.y2.label = label;
|
|
2082
|
+
y2Config.y2.side = "right";
|
|
2083
|
+
y2Config.y2.showGrid = false;
|
|
2084
|
+
y2Config.y2.type = scaleType;
|
|
2085
|
+
if (axisAbbreviation !== "none") {
|
|
2086
|
+
y2Config.y2.tickFmt = (v) => (0, visualization_canvas_exports.shortenNumber)(v, 1, roundAxisLabelsToInteger);
|
|
2087
|
+
} else if (roundAxisLabelsToInteger) {
|
|
2088
|
+
y2Config.y2.tickFmt = (v) => roundAxisLabelsToInteger ? Math.round(v).toString() : v.toString();
|
|
2089
|
+
}
|
|
2090
|
+
return y2Config;
|
|
2091
|
+
};
|
|
2092
|
+
var getSeriesOverrides = (yfields, y2fields, lineWidth, overlayFields, y2Enabled, nullValueMode) => {
|
|
2093
|
+
const seriesConfig = {};
|
|
2094
|
+
let spanGaps;
|
|
2095
|
+
let replaceNullsWithZero;
|
|
2096
|
+
if (nullValueMode === "gaps") {
|
|
2097
|
+
spanGaps = false;
|
|
2098
|
+
} else if (nullValueMode === "connect" || nullValueMode === "zero") {
|
|
2099
|
+
spanGaps = true;
|
|
2100
|
+
if (nullValueMode === "zero") {
|
|
2101
|
+
replaceNullsWithZero = true;
|
|
2102
|
+
}
|
|
2103
|
+
}
|
|
2104
|
+
yfields.forEach((field) => {
|
|
2105
|
+
seriesConfig[field] = {
|
|
2106
|
+
overrides: { width: lineWidth != null ? lineWidth : DEFAULT_LINE_WIDTH }
|
|
2107
|
+
};
|
|
2108
|
+
if (spanGaps !== void 0) {
|
|
2109
|
+
seriesConfig[field].overrides.spanGaps = spanGaps;
|
|
2110
|
+
}
|
|
2111
|
+
if (y2Enabled) {
|
|
2112
|
+
const shouldAssignToY2 = (
|
|
2113
|
+
// If y2Fields are present, assign all y2Fields to y2 scale
|
|
2114
|
+
(y2fields == null ? void 0 : y2fields.length) > 0 && y2fields.includes(field) || // Else, assign all overlayFields to y2 scale
|
|
2115
|
+
(!y2fields || y2fields.length === 0) && (overlayFields == null ? void 0 : overlayFields.includes(field))
|
|
2116
|
+
);
|
|
2117
|
+
if (shouldAssignToY2) {
|
|
2118
|
+
seriesConfig[field].overrides.scale = "y2";
|
|
2119
|
+
}
|
|
2120
|
+
}
|
|
2121
|
+
if (overlayFields == null ? void 0 : overlayFields.includes(field)) {
|
|
2122
|
+
seriesConfig[field].type = "line";
|
|
2123
|
+
}
|
|
2124
|
+
if (replaceNullsWithZero !== void 0) {
|
|
2125
|
+
seriesConfig[field].replaceNullsWithZero = replaceNullsWithZero;
|
|
2126
|
+
}
|
|
2127
|
+
});
|
|
2128
|
+
return seriesConfig;
|
|
2129
|
+
};
|
|
2130
|
+
|
|
2131
|
+
// src/common/TimeSeriesChartWrapper.tsx
|
|
2132
|
+
var TimeSeriesChartContainer = styled_components_default.div`
|
|
2133
|
+
overflow: hidden;
|
|
2134
|
+
${(props) => (0, style_exports.toDimension)((0, lodash_exports.pick)(props, ["width", "height"]))};
|
|
2135
|
+
|
|
2136
|
+
canvas {
|
|
2137
|
+
position: absolute !important; // This is needed for canvas element export pdf/png to work correctly
|
|
2138
|
+
}
|
|
2139
|
+
`;
|
|
2140
|
+
var handleClick = (chartEvent, props) => {
|
|
2141
|
+
const payload = __spreadProps(__spreadValues({}, (0, lodash_exports.pick)(chartEvent, "value", "seriesKey")), {
|
|
2142
|
+
name: chartEvent.seriesKey
|
|
2143
|
+
});
|
|
2144
|
+
delete payload.seriesKey;
|
|
2145
|
+
const clickHandler = props == null ? void 0 : props.onClick;
|
|
2146
|
+
if (clickHandler) {
|
|
2147
|
+
clickHandler({
|
|
2148
|
+
type: "point.click",
|
|
2149
|
+
originalEvent: chartEvent,
|
|
2150
|
+
payload
|
|
2151
|
+
});
|
|
2152
|
+
}
|
|
2153
|
+
};
|
|
2154
|
+
var handleLegendClick = (chartEvent, props) => {
|
|
2155
|
+
const payload = {
|
|
2156
|
+
name: chartEvent
|
|
2157
|
+
};
|
|
2158
|
+
const clickHandler = props == null ? void 0 : props.onClick;
|
|
2159
|
+
if (clickHandler) {
|
|
2160
|
+
clickHandler({
|
|
2161
|
+
type: "legend.click",
|
|
2162
|
+
originalEvent: chartEvent,
|
|
2163
|
+
payload
|
|
2164
|
+
});
|
|
2165
|
+
}
|
|
2166
|
+
};
|
|
2167
|
+
var TimeSeriesChartWrapper = (props) => {
|
|
2168
|
+
const { width, height, chartData, options, userLocale, annotationX, annotationLabel, annotationColor } = props;
|
|
2169
|
+
const {
|
|
2170
|
+
backgroundColor,
|
|
2171
|
+
seriesColors: seriesColorsStr,
|
|
2172
|
+
fieldColors,
|
|
2173
|
+
"axisTitleX.text": xAxisTitleText,
|
|
2174
|
+
"axisTitleY.text": yAxisTitleText,
|
|
2175
|
+
"axisTitleY2.text": y2AxisTitleText,
|
|
2176
|
+
"axisTitleX.visibility": xAxisTitleVisibility,
|
|
2177
|
+
"axisTitleY.visibility": yAxisTitleVisibility,
|
|
2178
|
+
"axisTitleY2.visibility": y2AxisTitleVisibility,
|
|
2179
|
+
"axisY.abbreviation": yAxisAbbreviation,
|
|
2180
|
+
"axisY.scale": yAxisScale,
|
|
2181
|
+
"axisY2.abbreviation": y2AxisAbbreviation,
|
|
2182
|
+
"axisY2.fields": y2FieldsStr,
|
|
2183
|
+
"axisY2.scale": y2AxisScale,
|
|
2184
|
+
"axisY2.enabled": y2Enabled,
|
|
2185
|
+
"axisLabelsY2.integerUnits": y2IntegerUnits,
|
|
2186
|
+
"chart.overlayFields": overlayFieldsStr,
|
|
2187
|
+
"chart.nullValueMode": nullValueMode,
|
|
2188
|
+
lineWidth
|
|
2189
|
+
} = options;
|
|
2190
|
+
const seriesColors = seriesColorsStr ? JSON.parse(seriesColorsStr) : void 0;
|
|
2191
|
+
const seriesColorsByField = fieldColors ? JSON.parse(fieldColors) : void 0;
|
|
2192
|
+
const [containerWidth, setContainerWidth] = react_exports.useState(Number(props.width));
|
|
2193
|
+
const [containerHeight, setContainerHeight] = react_exports.useState(Number(props.height));
|
|
2194
|
+
const cachedHandleResize = react_exports.useCallback((w, h) => {
|
|
2195
|
+
setContainerWidth(w);
|
|
2196
|
+
setContainerHeight(h);
|
|
2197
|
+
}, []);
|
|
2198
|
+
const filteredChartData = filterChartDataFromInternalFields({
|
|
2199
|
+
fields: chartData.fields,
|
|
2200
|
+
columns: chartData.seriesList
|
|
2201
|
+
});
|
|
2202
|
+
const xField = getFieldName(filteredChartData.fields[0]);
|
|
2203
|
+
const yFields = getFieldNames(
|
|
2204
|
+
filteredChartData.fields.length > 1 ? filteredChartData.fields.slice(1) : []
|
|
2205
|
+
);
|
|
2206
|
+
const y2Fields = y2FieldsStr ? y2FieldsStr.split(",").map((f) => f.trim()) : [];
|
|
2207
|
+
const overlayFields = overlayFieldsStr ? overlayFieldsStr.split(",").map((f) => f.trim()) : [];
|
|
2208
|
+
let xAxisTitle = getComputedAxisTitles(xAxisTitleText, [xField], xAxisTitleVisibility);
|
|
2209
|
+
xAxisTitle = ellipsisAxisTitle(xAxisTitle, containerWidth);
|
|
2210
|
+
let yAxisTitle = getComputedAxisTitles(yAxisTitleText, yFields, yAxisTitleVisibility);
|
|
2211
|
+
yAxisTitle = ellipsisAxisTitle(yAxisTitle, containerHeight);
|
|
2212
|
+
const fieldsForY2Axis = y2Fields.length > 0 ? y2Fields : overlayFields;
|
|
2213
|
+
let y2AxisTitle = getComputedAxisTitles(y2AxisTitleText, fieldsForY2Axis, y2AxisTitleVisibility);
|
|
2214
|
+
y2AxisTitle = ellipsisAxisTitle(y2AxisTitle, containerHeight);
|
|
2215
|
+
const xScaleConfig = getXScaleConfig(xAxisTitle);
|
|
2216
|
+
const yScaleConfig = getYScaleConfig(yAxisTitle, yAxisAbbreviation, yAxisScale);
|
|
2217
|
+
let y2ScaleConfig = {};
|
|
2218
|
+
if (y2Enabled) {
|
|
2219
|
+
y2ScaleConfig = getY2ScaleConfig(y2AxisTitle, y2AxisAbbreviation, y2AxisScale, y2IntegerUnits);
|
|
2220
|
+
}
|
|
2221
|
+
const uplotContainerElement = (0, react_exports.useRef)(null);
|
|
2222
|
+
const seriesDataFormatted = [
|
|
2223
|
+
filteredChartData.columns[0],
|
|
2224
|
+
...convert2DArrayToNumbers(filteredChartData.columns.slice(1))
|
|
2225
|
+
];
|
|
2226
|
+
chartData.fields = filteredChartData.fields;
|
|
2227
|
+
chartData.columns = seriesDataFormatted;
|
|
2228
|
+
const seriesOverrides = getSeriesOverrides(
|
|
2229
|
+
yFields,
|
|
2230
|
+
y2Fields,
|
|
2231
|
+
lineWidth,
|
|
2232
|
+
overlayFields,
|
|
2233
|
+
y2Enabled,
|
|
2234
|
+
nullValueMode
|
|
2235
|
+
);
|
|
2236
|
+
const chartingEventAnnotations = getAnnotationsForCanvas({
|
|
2237
|
+
annotationX,
|
|
2238
|
+
annotationColor,
|
|
2239
|
+
annotationLabel
|
|
2240
|
+
});
|
|
2241
|
+
const MemoizedChart = react_exports.memo(visualization_canvas_exports.TimeSeriesChart);
|
|
2242
|
+
const scaleConfig = __spreadValues(__spreadValues(__spreadValues({}, xScaleConfig), yScaleConfig), y2ScaleConfig);
|
|
2243
|
+
const memoizedChart = (0, react_exports.useMemo)(
|
|
2244
|
+
() => /* @__PURE__ */ react_exports.createElement(
|
|
2245
|
+
MemoizedChart,
|
|
2246
|
+
{
|
|
2247
|
+
data: chartData,
|
|
2248
|
+
width: containerWidth,
|
|
2249
|
+
height: containerHeight,
|
|
2250
|
+
seriesColors,
|
|
2251
|
+
seriesColorsByField,
|
|
2252
|
+
seriesConfig: seriesOverrides,
|
|
2253
|
+
legend: getLegend(props),
|
|
2254
|
+
scaleConfig,
|
|
2255
|
+
timestampFormat: "expanded",
|
|
2256
|
+
onCrosshairClick: (event) => handleClick(event, props),
|
|
2257
|
+
onSeriesClick: (event) => handleLegendClick(event, props),
|
|
2258
|
+
userLocale,
|
|
2259
|
+
events: chartingEventAnnotations,
|
|
2260
|
+
eventsConfig: { renderer: triangleEventAnnotationRenderer }
|
|
2261
|
+
}
|
|
2262
|
+
),
|
|
2263
|
+
[
|
|
2264
|
+
MemoizedChart,
|
|
2265
|
+
chartData,
|
|
2266
|
+
containerWidth,
|
|
2267
|
+
containerHeight,
|
|
2268
|
+
seriesColors,
|
|
2269
|
+
seriesColorsByField,
|
|
2270
|
+
seriesOverrides,
|
|
2271
|
+
lineWidth,
|
|
2272
|
+
props,
|
|
2273
|
+
scaleConfig,
|
|
2274
|
+
userLocale,
|
|
2275
|
+
chartingEventAnnotations
|
|
2276
|
+
]
|
|
2277
|
+
);
|
|
2278
|
+
const memoizedVisualization = (0, react_exports.useMemo)(() => {
|
|
2279
|
+
return /* @__PURE__ */ react_exports.createElement(VizStyleWrapper_default, { backgroundColor }, memoizedChart);
|
|
2280
|
+
}, [backgroundColor]);
|
|
2281
|
+
return /* @__PURE__ */ react_exports.createElement(
|
|
2282
|
+
TimeSeriesChartContainer,
|
|
2283
|
+
{
|
|
2284
|
+
height,
|
|
2285
|
+
width,
|
|
2286
|
+
ref: uplotContainerElement,
|
|
2287
|
+
"data-test": "timeseries-chart-wrapper"
|
|
2288
|
+
},
|
|
2289
|
+
/* @__PURE__ */ react_exports.createElement(SizeAwareWrapper_default, { width, height, onResize: cachedHandleResize }),
|
|
2290
|
+
memoizedVisualization
|
|
2291
|
+
);
|
|
2292
|
+
};
|
|
2293
|
+
var TimeSeriesChartWrapper_default = TimeSeriesChartWrapper;
|
|
1458
2294
|
|
|
1459
2295
|
// src/common/withDashboardViz.tsx
|
|
1460
2296
|
var withDashboardViz = (opts) => {
|
|
@@ -1473,30 +2309,29 @@ var withDashboardViz = (opts) => {
|
|
|
1473
2309
|
const DashboardViz = (props) => {
|
|
1474
2310
|
var _a;
|
|
1475
2311
|
const {
|
|
1476
|
-
mode,
|
|
2312
|
+
mode = "view",
|
|
1477
2313
|
hasEventHandlers,
|
|
1478
2314
|
dataSources,
|
|
1479
2315
|
// type of { [key: string]: DataSource }
|
|
1480
|
-
options,
|
|
2316
|
+
options = {},
|
|
1481
2317
|
context = {},
|
|
1482
2318
|
width,
|
|
1483
2319
|
height,
|
|
1484
|
-
onComputedProps,
|
|
1485
|
-
onEventTrigger,
|
|
2320
|
+
onComputedProps = lodash_exports.noop,
|
|
2321
|
+
onEventTrigger = SplunkVisualization_default.defaults.onEventTrigger,
|
|
1486
2322
|
theme,
|
|
1487
|
-
onRequestParamsChange
|
|
2323
|
+
onRequestParamsChange = lodash_exports.noop
|
|
1488
2324
|
} = props;
|
|
1489
|
-
const
|
|
1490
|
-
if (serializedTimezone) {
|
|
2325
|
+
const localeContext = react_exports.useContext(TimezoneContext_default);
|
|
2326
|
+
if (localeContext.serializedTimezone) {
|
|
1491
2327
|
if (!moment_default.getDefaultSplunkTimezone()) {
|
|
1492
|
-
moment_default.setDefaultSplunkTimezone(serializedTimezone);
|
|
2328
|
+
moment_default.setDefaultSplunkTimezone(localeContext.serializedTimezone);
|
|
1493
2329
|
}
|
|
1494
2330
|
}
|
|
1495
2331
|
const themeFunc = (themeVar) => {
|
|
1496
2332
|
var _a2, _b;
|
|
1497
2333
|
return (_b = (_a2 = vizConfig.themes)[themeVar]) == null ? void 0 : _b.call(_a2, props);
|
|
1498
2334
|
};
|
|
1499
|
-
const bgColorFromTheme = themeFunc("defaultBackgroundColor");
|
|
1500
2335
|
const {
|
|
1501
2336
|
family: currentThemeFamily,
|
|
1502
2337
|
colorScheme: currentThemeColorScheme,
|
|
@@ -1514,10 +2349,14 @@ var withDashboardViz = (opts) => {
|
|
|
1514
2349
|
const isDownsamplingEnabledByFeatureFlag = Boolean(
|
|
1515
2350
|
featureFlagContext == null ? void 0 : featureFlagContext.visualizations_enableDownsampling
|
|
1516
2351
|
);
|
|
1517
|
-
const
|
|
2352
|
+
const isTrellisFeatureFlagOn2 = Boolean(
|
|
1518
2353
|
featureFlagContext && featureFlagContext.visualizations_enableTrellis
|
|
1519
2354
|
);
|
|
1520
|
-
const isTrellisOn =
|
|
2355
|
+
const isTrellisOn = isTrellisFeatureFlagOn2 && ((_a = vizConfig == null ? void 0 : vizConfig.supports) == null ? void 0 : _a.includes("trellis" /* TRELLIS */)) && (options == null ? void 0 : options.splitByLayout) === "trellis" /* TRELLIS */;
|
|
2356
|
+
const isAcceleratedRenderFeatureFlagOn = Boolean(
|
|
2357
|
+
featureFlagContext == null ? void 0 : featureFlagContext.visualizations_enableAcceleratedRender
|
|
2358
|
+
);
|
|
2359
|
+
const isAcceleratedRenderOn = isAcceleratedRenderFeatureFlagOn && isTimeSeriesCanvasRenderSupported(vizConfig.key) && (options == null ? void 0 : options.acceleratedRender) === true;
|
|
1521
2360
|
const isMounted = react_exports.useRef(true);
|
|
1522
2361
|
const optionsToEvaluate = react_exports.useMemo(() => {
|
|
1523
2362
|
var _a2;
|
|
@@ -1612,10 +2451,34 @@ var withDashboardViz = (opts) => {
|
|
|
1612
2451
|
currentThemeDensity,
|
|
1613
2452
|
optionsToEvaluate,
|
|
1614
2453
|
downsampledDataSources,
|
|
1615
|
-
serializedTimezone,
|
|
2454
|
+
localeContext.serializedTimezone,
|
|
1616
2455
|
useAsyncEvaluatedOptions
|
|
1617
2456
|
]);
|
|
1618
2457
|
const evaluatedOptionsToUse = !useAsyncEvaluatedOptions ? evaluatedOptions : evaluatedOptionsAsync;
|
|
2458
|
+
let dataSourceMetadata = {};
|
|
2459
|
+
const OptionKey = "paginateDataSourceKey";
|
|
2460
|
+
const optsKey = (0, lodash_exports.has)(evaluatedOptionsToUse, OptionKey) && evaluatedOptionsToUse[OptionKey];
|
|
2461
|
+
const paginateDataSourceKey = typeof optsKey === "string" ? optsKey : "primary";
|
|
2462
|
+
const requestParams = (0, lodash_exports.get)(dataSources, [paginateDataSourceKey, "requestParams"], {});
|
|
2463
|
+
const meta = (0, lodash_exports.get)(dataSources, [paginateDataSourceKey, "meta"], {});
|
|
2464
|
+
const handleRequestParamsChange = (payload) => onRequestParamsChange(paginateDataSourceKey, payload);
|
|
2465
|
+
const sortParams = useSortingParams({
|
|
2466
|
+
requestParams,
|
|
2467
|
+
meta,
|
|
2468
|
+
onRequestParamsChange: handleRequestParamsChange
|
|
2469
|
+
});
|
|
2470
|
+
const paginatorParams = usePaginationParams({
|
|
2471
|
+
requestParams,
|
|
2472
|
+
meta,
|
|
2473
|
+
onRequestParamsChange: handleRequestParamsChange
|
|
2474
|
+
});
|
|
2475
|
+
dataSourceMetadata = {
|
|
2476
|
+
sortParams,
|
|
2477
|
+
paginatorParams
|
|
2478
|
+
};
|
|
2479
|
+
if (vizConfig.supports.indexOf("page-and-sort" /* PAGE_AND_SORT */) === -1 && !(0, lodash_exports.has)(dataSources, paginateDataSourceKey)) {
|
|
2480
|
+
dataSourceMetadata = {};
|
|
2481
|
+
}
|
|
1619
2482
|
const clonedEvaluatedOptions = __spreadValues({}, evaluatedOptionsToUse);
|
|
1620
2483
|
if (isTrellisOn) {
|
|
1621
2484
|
clonedEvaluatedOptions.backgroundColor = clonedEvaluatedOptions == null ? void 0 : clonedEvaluatedOptions.trellisBackgroundColor;
|
|
@@ -1641,7 +2504,7 @@ var withDashboardViz = (opts) => {
|
|
|
1641
2504
|
width,
|
|
1642
2505
|
height,
|
|
1643
2506
|
missingProps: missing,
|
|
1644
|
-
backgroundColor:
|
|
2507
|
+
backgroundColor: themeFunc("defaultBackgroundColor")
|
|
1645
2508
|
}
|
|
1646
2509
|
);
|
|
1647
2510
|
}
|
|
@@ -1659,7 +2522,7 @@ var withDashboardViz = (opts) => {
|
|
|
1659
2522
|
}
|
|
1660
2523
|
eventCallbackProps[eventCallbackPropName] = (ev) => {
|
|
1661
2524
|
if (ev && ev.payload) {
|
|
1662
|
-
payload = ev.payload;
|
|
2525
|
+
payload = __spreadValues({}, ev.payload);
|
|
1663
2526
|
}
|
|
1664
2527
|
return onEventTrigger({
|
|
1665
2528
|
originalEvent: ev,
|
|
@@ -1679,45 +2542,27 @@ var withDashboardViz = (opts) => {
|
|
|
1679
2542
|
const computedVizProps = computeVizProps2(__spreadProps(__spreadValues(__spreadValues(__spreadValues({}, props), evaluatedOptionsToUse), eventCallbackProps), {
|
|
1680
2543
|
themeFunc
|
|
1681
2544
|
}));
|
|
1682
|
-
let dataSourceMetadata = {};
|
|
1683
|
-
const OptionKey = "paginateDataSourceKey";
|
|
1684
|
-
const optsKey = (0, lodash_exports.has)(evaluatedOptionsToUse, OptionKey) && evaluatedOptionsToUse[OptionKey];
|
|
1685
|
-
const paginateDataSourceKey = typeof optsKey === "string" ? optsKey : "primary";
|
|
1686
|
-
if (vizConfig.supports.indexOf("page-and-sort" /* PAGE_AND_SORT */) > -1 && (0, lodash_exports.has)(dataSources, paginateDataSourceKey)) {
|
|
1687
|
-
const requestParams = (0, lodash_exports.get)(dataSources, [paginateDataSourceKey, "requestParams"], {});
|
|
1688
|
-
const meta = (0, lodash_exports.get)(dataSources, [paginateDataSourceKey, "meta"], {});
|
|
1689
|
-
const handleRequestParamsChange = (payload) => onRequestParamsChange(paginateDataSourceKey, payload);
|
|
1690
|
-
const sortParams = getSortingParams({
|
|
1691
|
-
requestParams,
|
|
1692
|
-
meta,
|
|
1693
|
-
onRequestParamsChange: handleRequestParamsChange
|
|
1694
|
-
});
|
|
1695
|
-
const paginatorParams = getPaginationParams({
|
|
1696
|
-
requestParams,
|
|
1697
|
-
meta,
|
|
1698
|
-
onRequestParamsChange: handleRequestParamsChange
|
|
1699
|
-
});
|
|
1700
|
-
dataSourceMetadata = {
|
|
1701
|
-
sortParams,
|
|
1702
|
-
paginatorParams
|
|
1703
|
-
};
|
|
1704
|
-
}
|
|
1705
2545
|
if (useAsyncEvaluatedOptions && Object.keys(evaluatedOptionsToUse).length === 0) {
|
|
1706
2546
|
return null;
|
|
1707
2547
|
}
|
|
2548
|
+
let SanitizedViz = SanitizedReactViz;
|
|
2549
|
+
if (isAcceleratedRenderOn) {
|
|
2550
|
+
SanitizedViz = (0, SanitizeProps_exports.withSanitizedProps)(TimeSeriesChartWrapper_default);
|
|
2551
|
+
}
|
|
1708
2552
|
return /* @__PURE__ */ react_exports.createElement(
|
|
1709
|
-
|
|
1710
|
-
__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues({
|
|
2553
|
+
SanitizedViz,
|
|
2554
|
+
__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadProps(__spreadValues({}, SplunkVisualization_default.defaults), {
|
|
1711
2555
|
mode,
|
|
1712
|
-
width,
|
|
1713
|
-
height
|
|
1714
|
-
|
|
2556
|
+
width: width || SplunkVisualization_default.defaults.width,
|
|
2557
|
+
height: height || SplunkVisualization_default.defaults.height,
|
|
2558
|
+
userLocale: localeContext
|
|
2559
|
+
}), downsamplingProps), evaluatedOptionsToUse), computedVizProps), eventCallbackProps), dataSourceMetadata)
|
|
1715
2560
|
);
|
|
1716
2561
|
};
|
|
1717
2562
|
DashboardViz.propTypes = __spreadValues(__spreadValues({}, SplunkVisualization_default.propTypes), ReactViz.propTypes);
|
|
1718
|
-
DashboardViz.defaultProps = __spreadProps(__spreadValues(
|
|
1719
|
-
//
|
|
1720
|
-
|
|
2563
|
+
DashboardViz.defaultProps = __spreadProps(__spreadValues({}, ReactViz.defaultProps), {
|
|
2564
|
+
// we still need ReactViz.defaultProps for the visualizations that still have them
|
|
2565
|
+
onEventTrigger: SplunkVisualization_default.defaults.onEventTrigger
|
|
1721
2566
|
});
|
|
1722
2567
|
DashboardViz.config = vizConfig;
|
|
1723
2568
|
return (0, styled_components_exports.withTheme)(
|
|
@@ -1731,9 +2576,9 @@ var colorConstants_exports = {};
|
|
|
1731
2576
|
__export(colorConstants_exports, {
|
|
1732
2577
|
default: () => colorConstants_default
|
|
1733
2578
|
});
|
|
1734
|
-
var
|
|
2579
|
+
var defaultImport33 = __toESM(require("@splunk/visualizations-shared/colorConstants"));
|
|
1735
2580
|
__reExport(colorConstants_exports, require("@splunk/visualizations-shared/colorConstants"));
|
|
1736
|
-
var colorConstants_default = "default" in
|
|
2581
|
+
var colorConstants_default = "default" in defaultImport33 ? defaultImport33.default : defaultImport33;
|
|
1737
2582
|
|
|
1738
2583
|
// src/common/gaugeUtils.ts
|
|
1739
2584
|
var GAUGE_THICKNESS = 50;
|
|
@@ -1989,12 +2834,12 @@ var MajorTicks = (_a) => {
|
|
|
1989
2834
|
height,
|
|
1990
2835
|
startX,
|
|
1991
2836
|
startY,
|
|
1992
|
-
min,
|
|
1993
|
-
max,
|
|
1994
|
-
majorUnit,
|
|
1995
|
-
orientation,
|
|
1996
|
-
showLabels,
|
|
1997
|
-
usePercentageRange,
|
|
2837
|
+
min = 0,
|
|
2838
|
+
max = 100,
|
|
2839
|
+
majorUnit = "auto",
|
|
2840
|
+
orientation = "horizontal",
|
|
2841
|
+
showLabels = true,
|
|
2842
|
+
usePercentageRange = false,
|
|
1998
2843
|
majorTickFillColor,
|
|
1999
2844
|
majorTickStrokeColor
|
|
2000
2845
|
} = props;
|
|
@@ -2079,14 +2924,6 @@ MajorTicks.propTypes = {
|
|
|
2079
2924
|
majorTickFillColor: prop_types_default.string,
|
|
2080
2925
|
majorTickStrokeColor: prop_types_default.string
|
|
2081
2926
|
};
|
|
2082
|
-
MajorTicks.defaultProps = {
|
|
2083
|
-
min: 0,
|
|
2084
|
-
max: 100,
|
|
2085
|
-
majorUnit: "auto",
|
|
2086
|
-
orientation: "horizontal",
|
|
2087
|
-
showLabels: true,
|
|
2088
|
-
usePercentageRange: false
|
|
2089
|
-
};
|
|
2090
2927
|
var GaugeMajorTicks_default = MajorTicks;
|
|
2091
2928
|
|
|
2092
2929
|
// esm-externals:@splunk/ui-utils/format
|
|
@@ -2094,9 +2931,9 @@ var format_exports = {};
|
|
|
2094
2931
|
__export(format_exports, {
|
|
2095
2932
|
default: () => format_default
|
|
2096
2933
|
});
|
|
2097
|
-
var
|
|
2934
|
+
var defaultImport34 = __toESM(require("@splunk/ui-utils/format"));
|
|
2098
2935
|
__reExport(format_exports, require("@splunk/ui-utils/format"));
|
|
2099
|
-
var format_default = "default" in
|
|
2936
|
+
var format_default = "default" in defaultImport34 ? defaultImport34.default : defaultImport34;
|
|
2100
2937
|
|
|
2101
2938
|
// src/common/GaugeValueMarker.jsx
|
|
2102
2939
|
var MARKER_THICKNESS = 15;
|
|
@@ -2167,15 +3004,15 @@ var ValueMarker = (_a) => {
|
|
|
2167
3004
|
x,
|
|
2168
3005
|
y,
|
|
2169
3006
|
length,
|
|
2170
|
-
min,
|
|
2171
|
-
max,
|
|
3007
|
+
min = 0,
|
|
3008
|
+
max = 100,
|
|
2172
3009
|
value,
|
|
2173
|
-
orientation,
|
|
2174
|
-
showValue,
|
|
2175
|
-
usePercentageValue,
|
|
3010
|
+
orientation = "horizontal",
|
|
3011
|
+
showValue = true,
|
|
3012
|
+
usePercentageValue = false,
|
|
2176
3013
|
valueMarkerFillColor,
|
|
2177
3014
|
valueMarkerLabelFillColor,
|
|
2178
|
-
alignCenter
|
|
3015
|
+
alignCenter = false
|
|
2179
3016
|
} = props;
|
|
2180
3017
|
const valueMarkerRectLength = length + DELTA_LENGTH;
|
|
2181
3018
|
const { labelRectX, labelRectY, labelX, labelY } = positionLabel({
|
|
@@ -2239,16 +3076,50 @@ ValueMarker.propTypes = {
|
|
|
2239
3076
|
valueMarkerLabelFillColor: prop_types_default.string,
|
|
2240
3077
|
alignCenter: prop_types_default.bool
|
|
2241
3078
|
};
|
|
2242
|
-
ValueMarker.defaultProps = {
|
|
2243
|
-
min: 0,
|
|
2244
|
-
max: 100,
|
|
2245
|
-
orientation: "horizontal",
|
|
2246
|
-
showValue: true,
|
|
2247
|
-
usePercentageValue: false,
|
|
2248
|
-
alignCenter: false
|
|
2249
|
-
};
|
|
2250
3079
|
var GaugeValueMarker_default = ValueMarker;
|
|
2251
3080
|
|
|
3081
|
+
// src/common/hooks/useTrellisEnabled.ts
|
|
3082
|
+
var useTrellisFeatureFlagOn = () => {
|
|
3083
|
+
const context = (0, react_exports.useContext)(FeatureFlagContext_default);
|
|
3084
|
+
return Boolean(context == null ? void 0 : context.visualizations_enableTrellis);
|
|
3085
|
+
};
|
|
3086
|
+
var useTrellisEnabled = (layoutType = visualization_schemas_exports.LAYOUT_TYPE.Off) => {
|
|
3087
|
+
const trellisFeatureEnabled = useTrellisFeatureFlagOn();
|
|
3088
|
+
return trellisFeatureEnabled && layoutType === visualization_schemas_exports.LAYOUT_TYPE.Trellis;
|
|
3089
|
+
};
|
|
3090
|
+
|
|
3091
|
+
// src/common/components/TrellisTitle.tsx
|
|
3092
|
+
var TRELLIS_TITLE_HEIGHT = 28;
|
|
3093
|
+
var TrellisTitleText = styled_components_default.div`
|
|
3094
|
+
margin-left: 10px;
|
|
3095
|
+
margin-right: 10px;
|
|
3096
|
+
padding-top: 8px;
|
|
3097
|
+
text-overflow: ellipsis;
|
|
3098
|
+
white-space: nowrap;
|
|
3099
|
+
overflow: hidden;
|
|
3100
|
+
`;
|
|
3101
|
+
var TrellisTitleDiv = styled_components_default.div`
|
|
3102
|
+
height: ${TRELLIS_TITLE_HEIGHT}px;
|
|
3103
|
+
font-size: 14px;
|
|
3104
|
+
font-weight: 700;
|
|
3105
|
+
color: ${(props) => props.fontColor};
|
|
3106
|
+
background-color: ${(props) => props.backgroundColor};
|
|
3107
|
+
box-shadow: 0 1px ${(props) => props.backgroundColor}; // this is added to avoid a 1px gap between title and viz divs that showed up intermittently because of pixel rounding error in chrome.
|
|
3108
|
+
`;
|
|
3109
|
+
var TrellisTitle = (props) => {
|
|
3110
|
+
const titleText = String(props.trellisKey).toString();
|
|
3111
|
+
return /* @__PURE__ */ react_exports.createElement(
|
|
3112
|
+
TrellisTitleDiv,
|
|
3113
|
+
{
|
|
3114
|
+
fontColor: props.fontColor,
|
|
3115
|
+
backgroundColor: props.backgroundColor,
|
|
3116
|
+
"data-test": "trellis-title",
|
|
3117
|
+
title: titleText
|
|
3118
|
+
},
|
|
3119
|
+
/* @__PURE__ */ react_exports.createElement(TrellisTitleText, null, titleText)
|
|
3120
|
+
);
|
|
3121
|
+
};
|
|
3122
|
+
|
|
2252
3123
|
// src/FillerGauge/PureFillerGauge/FillerGauge.tsx
|
|
2253
3124
|
var Container = styled_components_default.div`
|
|
2254
3125
|
overflow: hidden;
|
|
@@ -2286,25 +3157,29 @@ var MIN_HORIZONTAL_CONTAINER_HEIGHT = 100;
|
|
|
2286
3157
|
var FillerGauge = (_a) => {
|
|
2287
3158
|
var props = __objRest(_a, []);
|
|
2288
3159
|
const {
|
|
2289
|
-
width,
|
|
2290
|
-
height,
|
|
3160
|
+
width = "100%",
|
|
3161
|
+
height = 250,
|
|
2291
3162
|
value,
|
|
2292
3163
|
gaugeColor,
|
|
2293
|
-
min,
|
|
2294
|
-
max,
|
|
2295
|
-
orientation,
|
|
2296
|
-
majorUnit,
|
|
2297
|
-
showLabels,
|
|
2298
|
-
showValue,
|
|
2299
|
-
usePercentageRange,
|
|
2300
|
-
usePercentageValue,
|
|
2301
|
-
backgroundColor,
|
|
2302
|
-
backgroundBarFillColor,
|
|
2303
|
-
majorTickFillColor,
|
|
2304
|
-
majorTickStrokeColor,
|
|
2305
|
-
valueMarkerFillColor,
|
|
2306
|
-
valueMarkerLabelFillColor
|
|
3164
|
+
min = 0,
|
|
3165
|
+
max = 100,
|
|
3166
|
+
orientation = "vertical",
|
|
3167
|
+
majorUnit = "auto",
|
|
3168
|
+
showLabels = true,
|
|
3169
|
+
showValue = true,
|
|
3170
|
+
usePercentageRange = false,
|
|
3171
|
+
usePercentageValue = false,
|
|
3172
|
+
backgroundColor = "transparent",
|
|
3173
|
+
backgroundBarFillColor = "#f2f4f5",
|
|
3174
|
+
majorTickFillColor = "#3c444d",
|
|
3175
|
+
majorTickStrokeColor = "#6b7785",
|
|
3176
|
+
valueMarkerFillColor = "#3c444d",
|
|
3177
|
+
valueMarkerLabelFillColor = "#f2f4f5",
|
|
3178
|
+
splitByLayout = visualization_schemas_exports.LAYOUT_TYPE.Off,
|
|
3179
|
+
defaultFontColor = "#000",
|
|
3180
|
+
trellisKey = ""
|
|
2307
3181
|
} = props;
|
|
3182
|
+
const trellisEnabled = useTrellisEnabled(splitByLayout);
|
|
2308
3183
|
const cachedHandleResize = react_exports.useCallback((w, h) => {
|
|
2309
3184
|
setContainerWidth(w);
|
|
2310
3185
|
setContainerHeight(h);
|
|
@@ -2420,54 +3295,291 @@ var FillerGauge = (_a) => {
|
|
|
2420
3295
|
)
|
|
2421
3296
|
));
|
|
2422
3297
|
};
|
|
3298
|
+
if (trellisEnabled) {
|
|
3299
|
+
return /* @__PURE__ */ react_exports.createElement(react_exports.Fragment, null, /* @__PURE__ */ react_exports.createElement(
|
|
3300
|
+
TrellisTitle,
|
|
3301
|
+
{
|
|
3302
|
+
fontColor: defaultFontColor,
|
|
3303
|
+
backgroundColor,
|
|
3304
|
+
trellisKey
|
|
3305
|
+
}
|
|
3306
|
+
), /* @__PURE__ */ react_exports.createElement(
|
|
3307
|
+
Container,
|
|
3308
|
+
{
|
|
3309
|
+
width,
|
|
3310
|
+
height: Number(height) - TRELLIS_TITLE_HEIGHT,
|
|
3311
|
+
backgroundColor
|
|
3312
|
+
},
|
|
3313
|
+
/* @__PURE__ */ react_exports.createElement(SizeAwareWrapper_default, { width, height, onResize: cachedHandleResize }),
|
|
3314
|
+
renderVisualization()
|
|
3315
|
+
));
|
|
3316
|
+
}
|
|
2423
3317
|
return /* @__PURE__ */ react_exports.createElement(Container, { width, height, backgroundColor }, /* @__PURE__ */ react_exports.createElement(SizeAwareWrapper_default, { width, height, onResize: cachedHandleResize }), renderVisualization());
|
|
2424
3318
|
};
|
|
2425
|
-
var propTypes3 = {
|
|
2426
|
-
width: prop_types_exports.oneOfType([prop_types_exports.string, prop_types_exports.number]),
|
|
2427
|
-
height: prop_types_exports.oneOfType([prop_types_exports.string, prop_types_exports.number]),
|
|
2428
|
-
value: prop_types_exports.number,
|
|
2429
|
-
gaugeColor: prop_types_exports.string,
|
|
2430
|
-
min: prop_types_exports.number,
|
|
2431
|
-
max: prop_types_exports.number,
|
|
2432
|
-
// valueFieldName: T.string, // todo: need add it back when displaying name later
|
|
2433
|
-
// gaugeColorFieldName: T.string, // todo: may need add it back may not
|
|
2434
|
-
orientation: prop_types_exports.oneOf(["horizontal", "vertical"]),
|
|
2435
|
-
majorUnit: prop_types_exports.oneOfType([prop_types_exports.string, prop_types_exports.number]),
|
|
2436
|
-
showLabels: prop_types_exports.bool,
|
|
2437
|
-
showValue: prop_types_exports.bool,
|
|
2438
|
-
usePercentageRange: prop_types_exports.bool,
|
|
2439
|
-
usePercentageValue: prop_types_exports.bool,
|
|
2440
|
-
backgroundColor: prop_types_exports.string,
|
|
2441
|
-
backgroundBarFillColor: prop_types_exports.string,
|
|
2442
|
-
majorTickFillColor: prop_types_exports.string,
|
|
2443
|
-
majorTickStrokeColor: prop_types_exports.string,
|
|
2444
|
-
valueMarkerFillColor: prop_types_exports.string,
|
|
2445
|
-
valueMarkerLabelFillColor: prop_types_exports.string
|
|
2446
|
-
};
|
|
2447
|
-
var defaultProps = {
|
|
2448
|
-
width: "100%",
|
|
2449
|
-
height: 250,
|
|
2450
|
-
value: void 0,
|
|
2451
|
-
gaugeColor: void 0,
|
|
2452
|
-
orientation: "vertical",
|
|
2453
|
-
min: 0,
|
|
2454
|
-
max: 100,
|
|
2455
|
-
majorUnit: "auto",
|
|
2456
|
-
showLabels: true,
|
|
2457
|
-
showValue: true,
|
|
2458
|
-
usePercentageRange: false,
|
|
2459
|
-
usePercentageValue: false,
|
|
2460
|
-
backgroundColor: "transparent",
|
|
2461
|
-
backgroundBarFillColor: "#f2f4f5",
|
|
2462
|
-
majorTickFillColor: "#3c444d",
|
|
2463
|
-
majorTickStrokeColor: "#6b7785",
|
|
2464
|
-
valueMarkerFillColor: "#3c444d",
|
|
2465
|
-
valueMarkerLabelFillColor: "#f2f4f5"
|
|
2466
|
-
};
|
|
2467
|
-
FillerGauge.propTypes = propTypes3;
|
|
2468
|
-
FillerGauge.defaultProps = defaultProps;
|
|
2469
3319
|
var FillerGauge_default = FillerGauge;
|
|
2470
3320
|
|
|
3321
|
+
// esm-externals:@splunk/react-ui/Paginator
|
|
3322
|
+
var Paginator_exports = {};
|
|
3323
|
+
__export(Paginator_exports, {
|
|
3324
|
+
default: () => Paginator_default
|
|
3325
|
+
});
|
|
3326
|
+
var defaultImport35 = __toESM(require("@splunk/react-ui/Paginator"));
|
|
3327
|
+
__reExport(Paginator_exports, require("@splunk/react-ui/Paginator"));
|
|
3328
|
+
var Paginator_default = "default" in defaultImport35 ? defaultImport35.default : defaultImport35;
|
|
3329
|
+
|
|
3330
|
+
// esm-externals:@splunk/themes
|
|
3331
|
+
var themes_exports = {};
|
|
3332
|
+
__export(themes_exports, {
|
|
3333
|
+
default: () => themes_default
|
|
3334
|
+
});
|
|
3335
|
+
var defaultImport36 = __toESM(require("@splunk/themes"));
|
|
3336
|
+
__reExport(themes_exports, require("@splunk/themes"));
|
|
3337
|
+
var themes_default = "default" in defaultImport36 ? defaultImport36.default : defaultImport36;
|
|
3338
|
+
|
|
3339
|
+
// esm-externals:@splunk/themes/useSplunkTheme
|
|
3340
|
+
var useSplunkTheme_exports = {};
|
|
3341
|
+
__export(useSplunkTheme_exports, {
|
|
3342
|
+
default: () => useSplunkTheme_default
|
|
3343
|
+
});
|
|
3344
|
+
var defaultImport37 = __toESM(require("@splunk/themes/useSplunkTheme"));
|
|
3345
|
+
__reExport(useSplunkTheme_exports, require("@splunk/themes/useSplunkTheme"));
|
|
3346
|
+
var useSplunkTheme_default = "default" in defaultImport37 ? defaultImport37.default : defaultImport37;
|
|
3347
|
+
|
|
3348
|
+
// src/common/hocs/withTrellis.tsx
|
|
3349
|
+
var TrellisContainer = styled_components_default.div`
|
|
3350
|
+
overflow: hidden;
|
|
3351
|
+
display: flex;
|
|
3352
|
+
flex-direction: column;
|
|
3353
|
+
background-color: ${(props) => props.backgroundColor};
|
|
3354
|
+
${(props) => (0, style_exports.toDimension)((0, lodash_exports.pick)(props, ["width", "height"]))};
|
|
3355
|
+
> [data-test='paginator'] {
|
|
3356
|
+
align-self: flex-end;
|
|
3357
|
+
margin-bottom: 10px;
|
|
3358
|
+
}
|
|
3359
|
+
`;
|
|
3360
|
+
var TrellisContainerGrid = styled_components_default.div`
|
|
3361
|
+
display: grid;
|
|
3362
|
+
height: ${(props) => {
|
|
3363
|
+
return `${props.height}px`;
|
|
3364
|
+
}};
|
|
3365
|
+
gap: 10px 10px;
|
|
3366
|
+
grid-template-columns: ${(props) => {
|
|
3367
|
+
return props.colCount ? `repeat(${props.colCount}, minmax(${props.colMinWidth}px, 1fr))` : `repeat(auto-fit, minmax(${props.colMinWidth}px, 1fr))`;
|
|
3368
|
+
}};
|
|
3369
|
+
overflow: auto;
|
|
3370
|
+
justify-items: stretch;
|
|
3371
|
+
grid-auto-rows: ${(props) => `${props.rowHeight}px`};
|
|
3372
|
+
.child {
|
|
3373
|
+
height: ${(props) => `${props.rowHeight}px`};
|
|
3374
|
+
}
|
|
3375
|
+
`;
|
|
3376
|
+
var showErrorMessage = (errorCode, width, height) => {
|
|
3377
|
+
if (errorCode === "INVALID_SPLIT_BY_FIELD") {
|
|
3378
|
+
return /* @__PURE__ */ react_exports.createElement(
|
|
3379
|
+
Message_default,
|
|
3380
|
+
{
|
|
3381
|
+
width,
|
|
3382
|
+
height,
|
|
3383
|
+
message: (0, i18n_exports._)("Select a valid trellis split by field"),
|
|
3384
|
+
level: "info"
|
|
3385
|
+
}
|
|
3386
|
+
);
|
|
3387
|
+
}
|
|
3388
|
+
if (errorCode === "UNKNOWN_DATA_SPLIT_MODE") {
|
|
3389
|
+
return /* @__PURE__ */ react_exports.createElement(Message_default, { width, height, message: (0, i18n_exports._)("Unknown data split mode"), level: "info" });
|
|
3390
|
+
}
|
|
3391
|
+
return /* @__PURE__ */ react_exports.createElement(Message_default, { width, height, message: (0, i18n_exports._)("Error render in trellis"), level: "info" });
|
|
3392
|
+
};
|
|
3393
|
+
var withTrellis = (Viz) => {
|
|
3394
|
+
const VizWithTrellis = (opts) => {
|
|
3395
|
+
const cachedHandleResize = react_exports.useCallback((w, h) => {
|
|
3396
|
+
setContainerWidth(w);
|
|
3397
|
+
setContainerHeight(h);
|
|
3398
|
+
}, []);
|
|
3399
|
+
const [containerWidth, setContainerWidth] = react_exports.useState(Number(opts.width));
|
|
3400
|
+
const [containerHeight, setContainerHeight] = react_exports.useState(Number(opts.height));
|
|
3401
|
+
const _a = opts, { options = {}, height, width } = _a, otherProps = __objRest(_a, ["options", "height", "width"]);
|
|
3402
|
+
const defaultOptions = (0, JSONSchemaUtils_exports.pickFieldFromJSONSchema)(Viz.config.optionsSchema, "default");
|
|
3403
|
+
const mergedOptions = (0, hocUtils_exports.deepMergeWithArrayPrimitiveOverrides)({}, options, defaultOptions);
|
|
3404
|
+
const {
|
|
3405
|
+
trellisColumns,
|
|
3406
|
+
trellisPageCount,
|
|
3407
|
+
trellisMinColumnWidth,
|
|
3408
|
+
trellisRowHeight,
|
|
3409
|
+
splitByLayout,
|
|
3410
|
+
trellisSplitBy,
|
|
3411
|
+
trellisSharedScale,
|
|
3412
|
+
stackMode,
|
|
3413
|
+
yAxisMin,
|
|
3414
|
+
yAxisMax
|
|
3415
|
+
} = mergedOptions;
|
|
3416
|
+
const colCount = trellisColumns > 0 ? trellisColumns : defaultOptions.trellisColumns;
|
|
3417
|
+
const pageCount = +trellisPageCount > 0 ? +trellisPageCount : defaultOptions.trellisPageCount;
|
|
3418
|
+
const colMinWidth = trellisMinColumnWidth > 0 ? trellisMinColumnWidth : defaultOptions.trellisMinColumnWidth;
|
|
3419
|
+
const rowHeight = trellisRowHeight > 0 ? trellisRowHeight : defaultOptions.trellisRowHeight;
|
|
3420
|
+
const [pageNum, setPageNum] = (0, react_exports.useState)(1);
|
|
3421
|
+
const [pagedData, setPagedData] = (0, react_exports.useState)(null);
|
|
3422
|
+
let splitByKeys = [];
|
|
3423
|
+
let totalPages = 0;
|
|
3424
|
+
let showPaginator = false;
|
|
3425
|
+
const { dataSources } = otherProps;
|
|
3426
|
+
const theme = {
|
|
3427
|
+
splunkThemeV1: useSplunkTheme_default()
|
|
3428
|
+
};
|
|
3429
|
+
const {
|
|
3430
|
+
family: currentThemeFamily,
|
|
3431
|
+
colorScheme: currentThemeColorScheme,
|
|
3432
|
+
density: currentThemeDensity
|
|
3433
|
+
} = (0, themes_exports.getSettingsFromThemedProps)({ theme });
|
|
3434
|
+
const trellisBackgroundColor = (0, react_exports.useMemo)(() => {
|
|
3435
|
+
const themeFunc = (themeVar) => {
|
|
3436
|
+
var _a2, _b;
|
|
3437
|
+
return (_b = (_a2 = Viz.config.themes)[themeVar]) == null ? void 0 : _b.call(_a2, {
|
|
3438
|
+
trellisBackgroundColor: mergedOptions.trellisBackgroundColor,
|
|
3439
|
+
theme
|
|
3440
|
+
});
|
|
3441
|
+
};
|
|
3442
|
+
const evaluated = Options_exports.Options.evaluate(
|
|
3443
|
+
{
|
|
3444
|
+
context: Viz.config.context,
|
|
3445
|
+
options: {
|
|
3446
|
+
trellisBackgroundColor: mergedOptions.trellisBackgroundColor
|
|
3447
|
+
}
|
|
3448
|
+
},
|
|
3449
|
+
{},
|
|
3450
|
+
themeFunc
|
|
3451
|
+
);
|
|
3452
|
+
return evaluated.trellisBackgroundColor;
|
|
3453
|
+
}, [
|
|
3454
|
+
mergedOptions.trellisBackgroundColor,
|
|
3455
|
+
currentThemeFamily,
|
|
3456
|
+
currentThemeColorScheme,
|
|
3457
|
+
currentThemeDensity
|
|
3458
|
+
]);
|
|
3459
|
+
const columns = (0, lodash_exports.get)(dataSources, "primary.data.columns", void 0);
|
|
3460
|
+
const fields = (0, lodash_exports.get)(dataSources, "primary.data.fields", void 0);
|
|
3461
|
+
const noColumns = columns === void 0;
|
|
3462
|
+
const noFields = fields === void 0;
|
|
3463
|
+
const updateDataDisplay = (currPage) => {
|
|
3464
|
+
if (!showPaginator) {
|
|
3465
|
+
setPagedData(splitByKeys);
|
|
3466
|
+
setPageNum(1);
|
|
3467
|
+
} else {
|
|
3468
|
+
const startIdx = pageCount * (currPage - 1);
|
|
3469
|
+
const paged = splitByKeys.slice(startIdx, startIdx + pageCount);
|
|
3470
|
+
setPagedData(paged);
|
|
3471
|
+
}
|
|
3472
|
+
};
|
|
3473
|
+
(0, react_exports.useEffect)(() => {
|
|
3474
|
+
setPageNum(1);
|
|
3475
|
+
updateDataDisplay(1);
|
|
3476
|
+
}, [pageCount, trellisSplitBy]);
|
|
3477
|
+
(0, react_exports.useEffect)(() => {
|
|
3478
|
+
updateDataDisplay(pageNum);
|
|
3479
|
+
}, [columns, fields, trellisSplitBy, pageNum, splitByLayout]);
|
|
3480
|
+
const handlePageChange = (0, react_exports.useCallback)(
|
|
3481
|
+
(event, { page }) => {
|
|
3482
|
+
setPageNum(page);
|
|
3483
|
+
},
|
|
3484
|
+
[pageNum, pagedData]
|
|
3485
|
+
);
|
|
3486
|
+
const featureFlagContext = react_exports.useContext(FeatureFlagContext_default);
|
|
3487
|
+
const isTrellisFeatureFlagOn2 = Boolean(
|
|
3488
|
+
featureFlagContext && featureFlagContext.visualizations_enableTrellis
|
|
3489
|
+
);
|
|
3490
|
+
if (!isTrellisFeatureFlagOn2 || !splitByLayout || splitByLayout !== visualization_schemas_exports.LAYOUT_TYPE.Trellis) {
|
|
3491
|
+
return /* @__PURE__ */ react_exports.createElement(Viz, __spreadValues({}, opts));
|
|
3492
|
+
}
|
|
3493
|
+
if (splitByLayout === visualization_schemas_exports.LAYOUT_TYPE.Trellis) {
|
|
3494
|
+
if (noColumns || noFields) {
|
|
3495
|
+
return /* @__PURE__ */ react_exports.createElement(Message_default, { width, height, message: (0, i18n_exports._)("Loading"), level: "info" });
|
|
3496
|
+
}
|
|
3497
|
+
let currTrellisSplitBy = trellisSplitBy;
|
|
3498
|
+
if (!trellisSplitBy || trellisSplitBy.length === 0) {
|
|
3499
|
+
const splitByPossibleFields = (0, trellisUtils_exports.getAllPossibleSplitByFields)(fields);
|
|
3500
|
+
currTrellisSplitBy = splitByPossibleFields.fields && splitByPossibleFields.fields.length ? splitByPossibleFields.fields[0] : AGGREGATIONS;
|
|
3501
|
+
}
|
|
3502
|
+
const splitMode = (0, trellisUtils_exports.getTrellisDataSplitterMode)(fields);
|
|
3503
|
+
const dataSplitResult = getTrellisDataSourcesBySplitMode(
|
|
3504
|
+
splitMode,
|
|
3505
|
+
dataSources,
|
|
3506
|
+
currTrellisSplitBy
|
|
3507
|
+
);
|
|
3508
|
+
const modifiedDataSourceBySplitBy = dataSplitResult == null ? void 0 : dataSplitResult.splitDataSources;
|
|
3509
|
+
const dataSplitErrorCode = dataSplitResult == null ? void 0 : dataSplitResult.errorCode;
|
|
3510
|
+
if (!modifiedDataSourceBySplitBy || Object.keys(modifiedDataSourceBySplitBy).length === 0 || dataSplitErrorCode) {
|
|
3511
|
+
return showErrorMessage(dataSplitErrorCode, width, height);
|
|
3512
|
+
}
|
|
3513
|
+
const splitByKeysModified = modifiedDataSourceBySplitBy ? Object.keys(modifiedDataSourceBySplitBy) : [];
|
|
3514
|
+
if (splitByKeysModified) {
|
|
3515
|
+
showPaginator = splitByKeysModified.length > pageCount;
|
|
3516
|
+
splitByKeys = splitByKeysModified;
|
|
3517
|
+
totalPages = splitByKeysModified ? Math.ceil(splitByKeysModified.length / pageCount) : 0;
|
|
3518
|
+
}
|
|
3519
|
+
const [calculatedMin, calculatedMax] = determineMinMax(
|
|
3520
|
+
modifiedDataSourceBySplitBy,
|
|
3521
|
+
trellisSharedScale,
|
|
3522
|
+
yAxisMin,
|
|
3523
|
+
yAxisMax,
|
|
3524
|
+
stackMode
|
|
3525
|
+
);
|
|
3526
|
+
return /* @__PURE__ */ react_exports.createElement(TrellisContainer, { height, width, backgroundColor: trellisBackgroundColor }, /* @__PURE__ */ react_exports.createElement(
|
|
3527
|
+
TrellisContainerGrid,
|
|
3528
|
+
{
|
|
3529
|
+
height,
|
|
3530
|
+
colCount,
|
|
3531
|
+
colMinWidth,
|
|
3532
|
+
rowHeight
|
|
3533
|
+
},
|
|
3534
|
+
pagedData == null ? void 0 : pagedData.map((splitByKey, idx) => /* @__PURE__ */ react_exports.createElement(
|
|
3535
|
+
"div",
|
|
3536
|
+
{
|
|
3537
|
+
className: "child",
|
|
3538
|
+
"data-test": "trellis-child",
|
|
3539
|
+
key: `div-child-${idx.toString()}`
|
|
3540
|
+
},
|
|
3541
|
+
/* @__PURE__ */ react_exports.createElement(
|
|
3542
|
+
SizeAwareWrapper_default,
|
|
3543
|
+
{
|
|
3544
|
+
width,
|
|
3545
|
+
height,
|
|
3546
|
+
onResize: cachedHandleResize
|
|
3547
|
+
}
|
|
3548
|
+
),
|
|
3549
|
+
/* @__PURE__ */ react_exports.createElement(
|
|
3550
|
+
Viz,
|
|
3551
|
+
__spreadProps(__spreadValues({}, otherProps), {
|
|
3552
|
+
trellisKey: splitByKey,
|
|
3553
|
+
trellisSplitBy: currTrellisSplitBy,
|
|
3554
|
+
dataSources: modifiedDataSourceBySplitBy[splitByKey],
|
|
3555
|
+
options: __spreadProps(__spreadValues({}, options), {
|
|
3556
|
+
yAxisMin: calculatedMin,
|
|
3557
|
+
yAxisMax: calculatedMax
|
|
3558
|
+
}),
|
|
3559
|
+
key: `viz-${idx.toString()}`,
|
|
3560
|
+
height: containerHeight,
|
|
3561
|
+
width: containerWidth
|
|
3562
|
+
})
|
|
3563
|
+
)
|
|
3564
|
+
))
|
|
3565
|
+
), showPaginator && totalPages >= pageNum && /* @__PURE__ */ react_exports.createElement(
|
|
3566
|
+
Paginator_default,
|
|
3567
|
+
{
|
|
3568
|
+
onChange: handlePageChange,
|
|
3569
|
+
current: pageNum,
|
|
3570
|
+
alwaysShowLastPageLink: true,
|
|
3571
|
+
totalPages
|
|
3572
|
+
}
|
|
3573
|
+
));
|
|
3574
|
+
}
|
|
3575
|
+
return null;
|
|
3576
|
+
};
|
|
3577
|
+
VizWithTrellis.propTypes = Viz.proptypes;
|
|
3578
|
+
VizWithTrellis.config = Viz.config;
|
|
3579
|
+
return VizWithTrellis;
|
|
3580
|
+
};
|
|
3581
|
+
var withTrellis_default = withTrellis;
|
|
3582
|
+
|
|
2471
3583
|
// src/FillerGauge/FillerGauge.ts
|
|
2472
3584
|
var config2 = config_default;
|
|
2473
3585
|
var PureFillerGauge = FillerGauge_default;
|
|
@@ -2480,15 +3592,18 @@ var computeVizProps = (_a) => {
|
|
|
2480
3592
|
majorTickFillColor: config2.themes.majorTickFillColor(props),
|
|
2481
3593
|
majorTickStrokeColor: config2.themes.majorTickStrokeColor(props),
|
|
2482
3594
|
valueMarkerFillColor: config2.themes.valueMarkerFillColor(props),
|
|
2483
|
-
valueMarkerLabelFillColor: config2.themes.valueMarkerLabelFillColor(props)
|
|
3595
|
+
valueMarkerLabelFillColor: config2.themes.valueMarkerLabelFillColor(props),
|
|
3596
|
+
defaultFontColor: props.themeFunc("defaultFontColor")
|
|
2484
3597
|
};
|
|
2485
|
-
return __spreadValues(__spreadValues({}, options), defaultColors);
|
|
3598
|
+
return __spreadProps(__spreadValues(__spreadValues({}, options), defaultColors), { trellisKey: props.trellisKey });
|
|
2486
3599
|
};
|
|
2487
|
-
var viz =
|
|
2488
|
-
|
|
2489
|
-
|
|
2490
|
-
|
|
2491
|
-
|
|
3600
|
+
var viz = withTrellis_default(
|
|
3601
|
+
withDashboardViz_default({
|
|
3602
|
+
ReactViz: FillerGauge_default,
|
|
3603
|
+
computeVizProps,
|
|
3604
|
+
vizConfig: config_default
|
|
3605
|
+
})
|
|
3606
|
+
);
|
|
2492
3607
|
var { themes: themes2 } = config_default;
|
|
2493
3608
|
var FillerGauge_default2 = viz;
|
|
2494
3609
|
//# sourceMappingURL=FillerGauge.js.map
|