@perses-dev/components 0.0.0-snapshot-saving-defaults-refinements-1b25cec → 0.0.0-snapshot-time-chart-rewrite-4667058
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/dist/ContentWithLegend/ContentWithLegend.d.ts +1 -1
- package/dist/ContentWithLegend/ContentWithLegend.d.ts.map +1 -1
- package/dist/ContentWithLegend/ContentWithLegend.js +5 -3
- package/dist/ContentWithLegend/ContentWithLegend.js.map +1 -1
- package/dist/ContentWithLegend/model/content-with-legend-model.d.ts +10 -4
- package/dist/ContentWithLegend/model/content-with-legend-model.d.ts.map +1 -1
- package/dist/ContentWithLegend/model/content-with-legend-model.js +27 -8
- package/dist/ContentWithLegend/model/content-with-legend-model.js.map +1 -1
- package/dist/DateTimeRangePicker/DateTimeRangePicker.d.ts +1 -1
- package/dist/DateTimeRangePicker/DateTimeRangePicker.d.ts.map +1 -1
- package/dist/DateTimeRangePicker/DateTimeRangePicker.js.map +1 -1
- package/dist/DateTimeRangePicker/TimeRangeSelector.d.ts +2 -5
- package/dist/DateTimeRangePicker/TimeRangeSelector.d.ts.map +1 -1
- package/dist/DateTimeRangePicker/TimeRangeSelector.js.map +1 -1
- package/dist/Drawer/Drawer.js +1 -1
- package/dist/Drawer/Drawer.js.map +1 -1
- package/dist/EChart/EChart.d.ts +2 -1
- package/dist/EChart/EChart.d.ts.map +1 -1
- package/dist/EChart/EChart.js +15 -3
- package/dist/EChart/EChart.js.map +1 -1
- package/dist/GaugeChart/GaugeChart.d.ts +2 -2
- package/dist/GaugeChart/GaugeChart.d.ts.map +1 -1
- package/dist/GaugeChart/GaugeChart.js +7 -5
- package/dist/GaugeChart/GaugeChart.js.map +1 -1
- package/dist/Legend/CompactLegend.d.ts +4 -2
- package/dist/Legend/CompactLegend.d.ts.map +1 -1
- package/dist/Legend/CompactLegend.js +6 -3
- package/dist/Legend/CompactLegend.js.map +1 -1
- package/dist/Legend/Legend.d.ts +17 -3
- package/dist/Legend/Legend.d.ts.map +1 -1
- package/dist/Legend/Legend.js +7 -4
- package/dist/Legend/Legend.js.map +1 -1
- package/dist/Legend/ListLegend.d.ts +4 -2
- package/dist/Legend/ListLegend.d.ts.map +1 -1
- package/dist/Legend/ListLegend.js +6 -5
- package/dist/Legend/ListLegend.js.map +1 -1
- package/dist/Legend/ListLegendItem.d.ts +16 -3
- package/dist/Legend/ListLegendItem.d.ts.map +1 -1
- package/dist/Legend/ListLegendItem.js +17 -5
- package/dist/Legend/ListLegendItem.js.map +1 -1
- package/dist/Legend/TableLegend.d.ts +6 -3
- package/dist/Legend/TableLegend.d.ts.map +1 -1
- package/dist/Legend/TableLegend.js +17 -3
- package/dist/Legend/TableLegend.js.map +1 -1
- package/dist/Legend/index.d.ts +1 -0
- package/dist/Legend/index.d.ts.map +1 -1
- package/dist/Legend/index.js +1 -0
- package/dist/Legend/index.js.map +1 -1
- package/dist/Legend/legend-model.d.ts +24 -0
- package/dist/Legend/legend-model.d.ts.map +1 -0
- package/dist/Legend/legend-model.js +19 -0
- package/dist/Legend/legend-model.js.map +1 -0
- package/dist/LineChart/LineChart.d.ts +6 -11
- package/dist/LineChart/LineChart.d.ts.map +1 -1
- package/dist/LineChart/LineChart.js +36 -9
- package/dist/LineChart/LineChart.js.map +1 -1
- package/dist/LineChart/index.d.ts +0 -1
- package/dist/LineChart/index.d.ts.map +1 -1
- package/dist/LineChart/index.js.map +1 -1
- package/dist/OptionsEditorLayout/OptionsEditorControl.js +1 -1
- package/dist/OptionsEditorLayout/OptionsEditorControl.js.map +1 -1
- package/dist/RefreshIntervalPicker/RefreshIntervalPicker.d.ts +12 -0
- package/dist/RefreshIntervalPicker/RefreshIntervalPicker.d.ts.map +1 -0
- package/dist/RefreshIntervalPicker/RefreshIntervalPicker.js +45 -0
- package/dist/RefreshIntervalPicker/RefreshIntervalPicker.js.map +1 -0
- package/dist/RefreshIntervalPicker/index.d.ts +2 -0
- package/dist/RefreshIntervalPicker/index.d.ts.map +1 -0
- package/dist/{model/units → RefreshIntervalPicker}/index.js +1 -3
- package/dist/RefreshIntervalPicker/index.js.map +1 -0
- package/dist/SettingsAutocomplete/SettingsAutocomplete.d.ts +36 -0
- package/dist/SettingsAutocomplete/SettingsAutocomplete.d.ts.map +1 -0
- package/dist/SettingsAutocomplete/SettingsAutocomplete.js +65 -0
- package/dist/SettingsAutocomplete/SettingsAutocomplete.js.map +1 -0
- package/dist/SettingsAutocomplete/index.d.ts +2 -0
- package/dist/SettingsAutocomplete/index.d.ts.map +1 -0
- package/dist/{model/units/constants.js → SettingsAutocomplete/index.js} +2 -4
- package/dist/SettingsAutocomplete/index.js.map +1 -0
- package/dist/StatChart/StatChart.d.ts +3 -2
- package/dist/StatChart/StatChart.d.ts.map +1 -1
- package/dist/StatChart/StatChart.js +75 -22
- package/dist/StatChart/StatChart.js.map +1 -1
- package/dist/StatChart/calculateFontSize.d.ts +14 -0
- package/dist/StatChart/calculateFontSize.d.ts.map +1 -0
- package/dist/StatChart/calculateFontSize.js +47 -0
- package/dist/StatChart/calculateFontSize.js.map +1 -0
- package/dist/Table/InnerTable.js +3 -3
- package/dist/Table/InnerTable.js.map +1 -1
- package/dist/Table/Table.d.ts +1 -1
- package/dist/Table/Table.d.ts.map +1 -1
- package/dist/Table/Table.js +58 -10
- package/dist/Table/Table.js.map +1 -1
- package/dist/Table/TableCell.d.ts +16 -3
- package/dist/Table/TableCell.d.ts.map +1 -1
- package/dist/Table/TableCell.js +13 -5
- package/dist/Table/TableCell.js.map +1 -1
- package/dist/Table/TableCheckbox.js +1 -1
- package/dist/Table/TableCheckbox.js.map +1 -1
- package/dist/Table/TableHeaderCell.d.ts +23 -0
- package/dist/Table/TableHeaderCell.d.ts.map +1 -0
- package/dist/Table/TableHeaderCell.js +53 -0
- package/dist/Table/TableHeaderCell.js.map +1 -0
- package/dist/Table/TableRow.d.ts.map +1 -1
- package/dist/Table/TableRow.js +3 -3
- package/dist/Table/TableRow.js.map +1 -1
- package/dist/Table/VirtualizedTable.d.ts +3 -3
- package/dist/Table/VirtualizedTable.d.ts.map +1 -1
- package/dist/Table/VirtualizedTable.js +51 -10
- package/dist/Table/VirtualizedTable.js.map +1 -1
- package/dist/Table/model/table-model.d.ts +81 -3
- package/dist/Table/model/table-model.d.ts.map +1 -1
- package/dist/Table/model/table-model.js +22 -7
- package/dist/Table/model/table-model.js.map +1 -1
- package/dist/TimeChart/TimeChart.d.ts +23 -0
- package/dist/TimeChart/TimeChart.d.ts.map +1 -0
- package/dist/TimeChart/TimeChart.js +314 -0
- package/dist/TimeChart/TimeChart.js.map +1 -0
- package/dist/TimeChart/index.d.ts +2 -0
- package/dist/TimeChart/index.d.ts.map +1 -0
- package/dist/{LegendOptionsEditor → TimeChart}/index.js +1 -1
- package/dist/TimeChart/index.js.map +1 -0
- package/dist/TimeSeriesTooltip/{TimeSeriesTooltip.d.ts → LineChartTooltip.d.ts} +5 -4
- package/dist/TimeSeriesTooltip/LineChartTooltip.d.ts.map +1 -0
- package/dist/TimeSeriesTooltip/{TimeSeriesTooltip.js → LineChartTooltip.js} +7 -6
- package/dist/TimeSeriesTooltip/LineChartTooltip.js.map +1 -0
- package/dist/TimeSeriesTooltip/TimeChartTooltip.d.ts +16 -0
- package/dist/TimeSeriesTooltip/TimeChartTooltip.d.ts.map +1 -0
- package/dist/TimeSeriesTooltip/TimeChartTooltip.js +76 -0
- package/dist/TimeSeriesTooltip/TimeChartTooltip.js.map +1 -0
- package/dist/TimeSeriesTooltip/TooltipHeader.d.ts +2 -2
- package/dist/TimeSeriesTooltip/TooltipHeader.d.ts.map +1 -1
- package/dist/TimeSeriesTooltip/TooltipHeader.js +10 -8
- package/dist/TimeSeriesTooltip/TooltipHeader.js.map +1 -1
- package/dist/TimeSeriesTooltip/index.d.ts +2 -1
- package/dist/TimeSeriesTooltip/index.d.ts.map +1 -1
- package/dist/TimeSeriesTooltip/index.js +2 -1
- package/dist/TimeSeriesTooltip/index.js.map +1 -1
- package/dist/TimeSeriesTooltip/nearby-series.d.ts +23 -4
- package/dist/TimeSeriesTooltip/nearby-series.d.ts.map +1 -1
- package/dist/TimeSeriesTooltip/nearby-series.js +175 -17
- package/dist/TimeSeriesTooltip/nearby-series.js.map +1 -1
- package/dist/TimeSeriesTooltip/tooltip-model.d.ts +4 -0
- package/dist/TimeSeriesTooltip/tooltip-model.d.ts.map +1 -1
- package/dist/TimeSeriesTooltip/tooltip-model.js.map +1 -1
- package/dist/TimeSeriesTooltip/utils.d.ts +25 -0
- package/dist/TimeSeriesTooltip/utils.d.ts.map +1 -1
- package/dist/TimeSeriesTooltip/utils.js +29 -1
- package/dist/TimeSeriesTooltip/utils.js.map +1 -1
- package/dist/UnitSelector/UnitSelector.d.ts +1 -1
- package/dist/UnitSelector/UnitSelector.d.ts.map +1 -1
- package/dist/UnitSelector/UnitSelector.js +11 -24
- package/dist/UnitSelector/UnitSelector.js.map +1 -1
- package/dist/YAxisLabel.js +1 -1
- package/dist/YAxisLabel.js.map +1 -1
- package/dist/cjs/ContentWithLegend/ContentWithLegend.js +5 -3
- package/dist/cjs/ContentWithLegend/model/content-with-legend-model.js +28 -9
- package/dist/cjs/Drawer/Drawer.js +1 -1
- package/dist/cjs/EChart/EChart.js +22 -5
- package/dist/cjs/GaugeChart/GaugeChart.js +7 -5
- package/dist/cjs/Legend/CompactLegend.js +7 -4
- package/dist/cjs/Legend/Legend.js +8 -5
- package/dist/cjs/Legend/ListLegend.js +7 -6
- package/dist/cjs/Legend/ListLegendItem.js +17 -5
- package/dist/cjs/Legend/TableLegend.js +17 -3
- package/dist/cjs/Legend/index.js +1 -0
- package/dist/cjs/{model/units/types.js → Legend/legend-model.js} +7 -10
- package/dist/cjs/LineChart/LineChart.js +35 -47
- package/dist/cjs/OptionsEditorLayout/OptionsEditorControl.js +1 -1
- package/dist/cjs/RefreshIntervalPicker/RefreshIntervalPicker.js +51 -0
- package/dist/cjs/{model/units → RefreshIntervalPicker}/index.js +1 -3
- package/dist/cjs/SettingsAutocomplete/SettingsAutocomplete.js +66 -0
- package/dist/cjs/SettingsAutocomplete/index.js +28 -0
- package/dist/cjs/StatChart/StatChart.js +82 -24
- package/dist/cjs/StatChart/calculateFontSize.js +51 -0
- package/dist/cjs/Table/InnerTable.js +3 -3
- package/dist/cjs/Table/Table.js +57 -9
- package/dist/cjs/Table/TableCell.js +13 -5
- package/dist/cjs/Table/TableCheckbox.js +1 -1
- package/dist/cjs/Table/TableHeaderCell.js +59 -0
- package/dist/cjs/Table/TableRow.js +2 -2
- package/dist/cjs/Table/VirtualizedTable.js +51 -10
- package/dist/cjs/Table/model/table-model.js +22 -7
- package/dist/cjs/TimeChart/TimeChart.js +320 -0
- package/dist/cjs/{LegendOptionsEditor → TimeChart}/index.js +1 -1
- package/dist/cjs/TimeSeriesTooltip/{TimeSeriesTooltip.js → LineChartTooltip.js} +7 -45
- package/dist/cjs/TimeSeriesTooltip/TimeChartTooltip.js +87 -0
- package/dist/cjs/TimeSeriesTooltip/TooltipHeader.js +10 -8
- package/dist/cjs/TimeSeriesTooltip/index.js +2 -1
- package/dist/cjs/TimeSeriesTooltip/nearby-series.js +171 -17
- package/dist/cjs/TimeSeriesTooltip/utils.js +35 -3
- package/dist/cjs/UnitSelector/UnitSelector.js +15 -28
- package/dist/cjs/YAxisLabel.js +1 -1
- package/dist/cjs/index.js +3 -1
- package/dist/cjs/model/index.js +1 -2
- package/dist/cjs/model/timeOption.js +16 -0
- package/dist/cjs/{model/units/constants.js → theme/component-overrides/paper.js} +9 -5
- package/dist/cjs/theme/palette/background.js +2 -2
- package/dist/cjs/theme/theme.js +2 -0
- package/dist/cjs/utils/axis.js +58 -0
- package/dist/cjs/{LineChart/utils.js → utils/chart-actions.js} +9 -47
- package/dist/cjs/utils/format.js +47 -1
- package/dist/cjs/utils/index.js +3 -1
- package/dist/cjs/utils/theme-gen.js +44 -2
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/model/graph.d.ts +20 -3
- package/dist/model/graph.d.ts.map +1 -1
- package/dist/model/graph.js.map +1 -1
- package/dist/model/index.d.ts +1 -2
- package/dist/model/index.d.ts.map +1 -1
- package/dist/model/index.js +1 -2
- package/dist/model/index.js.map +1 -1
- package/dist/model/theme.d.ts +4 -6
- package/dist/model/theme.d.ts.map +1 -1
- package/dist/model/theme.js.map +1 -1
- package/dist/model/timeOption.d.ts +6 -0
- package/dist/model/timeOption.d.ts.map +1 -0
- package/dist/model/{units/types.js → timeOption.js} +2 -9
- package/dist/model/timeOption.js.map +1 -0
- package/dist/theme/component-overrides/paper.d.ts +3 -0
- package/dist/theme/component-overrides/paper.d.ts.map +1 -0
- package/dist/theme/component-overrides/paper.js +21 -0
- package/dist/theme/component-overrides/paper.js.map +1 -0
- package/dist/theme/palette/background.js +2 -2
- package/dist/theme/palette/background.js.map +1 -1
- package/dist/theme/theme.d.ts.map +1 -1
- package/dist/theme/theme.js +2 -0
- package/dist/theme/theme.js.map +1 -1
- package/dist/utils/axis.d.ts +14 -0
- package/dist/utils/axis.d.ts.map +1 -0
- package/dist/utils/axis.js +45 -0
- package/dist/utils/axis.js.map +1 -0
- package/dist/utils/chart-actions.d.ts +18 -0
- package/dist/utils/chart-actions.d.ts.map +1 -0
- package/dist/utils/chart-actions.js +52 -0
- package/dist/utils/chart-actions.js.map +1 -0
- package/dist/utils/format.d.ts +6 -0
- package/dist/utils/format.d.ts.map +1 -1
- package/dist/utils/format.js +47 -0
- package/dist/utils/format.js.map +1 -1
- package/dist/utils/index.d.ts +3 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +3 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/theme-gen.d.ts.map +1 -1
- package/dist/utils/theme-gen.js +38 -1
- package/dist/utils/theme-gen.js.map +1 -1
- package/package.json +5 -9
- package/dist/LegendOptionsEditor/LegendOptionsEditor.d.ts +0 -8
- package/dist/LegendOptionsEditor/LegendOptionsEditor.d.ts.map +0 -1
- package/dist/LegendOptionsEditor/LegendOptionsEditor.js +0 -109
- package/dist/LegendOptionsEditor/LegendOptionsEditor.js.map +0 -1
- package/dist/LegendOptionsEditor/index.d.ts +0 -2
- package/dist/LegendOptionsEditor/index.d.ts.map +0 -1
- package/dist/LegendOptionsEditor/index.js.map +0 -1
- package/dist/LineChart/utils.d.ts +0 -30
- package/dist/LineChart/utils.d.ts.map +0 -1
- package/dist/LineChart/utils.js +0 -90
- package/dist/LineChart/utils.js.map +0 -1
- package/dist/TimeSeriesTooltip/TimeSeriesTooltip.d.ts.map +0 -1
- package/dist/TimeSeriesTooltip/TimeSeriesTooltip.js.map +0 -1
- package/dist/cjs/LegendOptionsEditor/LegendOptionsEditor.js +0 -115
- package/dist/cjs/model/legend.js +0 -102
- package/dist/cjs/model/units/bytes.js +0 -84
- package/dist/cjs/model/units/decimal.js +0 -62
- package/dist/cjs/model/units/percent.js +0 -73
- package/dist/cjs/model/units/time.js +0 -105
- package/dist/cjs/model/units/units.js +0 -101
- package/dist/cjs/model/units/utils.js +0 -42
- package/dist/model/legend.d.ts +0 -36
- package/dist/model/legend.d.ts.map +0 -1
- package/dist/model/legend.js +0 -81
- package/dist/model/legend.js.map +0 -1
- package/dist/model/units/bytes.d.ts +0 -13
- package/dist/model/units/bytes.d.ts.map +0 -1
- package/dist/model/units/bytes.js +0 -66
- package/dist/model/units/bytes.js.map +0 -1
- package/dist/model/units/constants.d.ts +0 -2
- package/dist/model/units/constants.d.ts.map +0 -1
- package/dist/model/units/constants.js.map +0 -1
- package/dist/model/units/decimal.d.ts +0 -13
- package/dist/model/units/decimal.d.ts.map +0 -1
- package/dist/model/units/decimal.js +0 -49
- package/dist/model/units/decimal.js.map +0 -1
- package/dist/model/units/index.d.ts +0 -4
- package/dist/model/units/index.d.ts.map +0 -1
- package/dist/model/units/index.js.map +0 -1
- package/dist/model/units/percent.d.ts +0 -12
- package/dist/model/units/percent.d.ts.map +0 -1
- package/dist/model/units/percent.js +0 -60
- package/dist/model/units/percent.js.map +0 -1
- package/dist/model/units/time.d.ts +0 -22
- package/dist/model/units/time.d.ts.map +0 -1
- package/dist/model/units/time.js +0 -91
- package/dist/model/units/time.js.map +0 -1
- package/dist/model/units/types.d.ts +0 -47
- package/dist/model/units/types.d.ts.map +0 -1
- package/dist/model/units/types.js.map +0 -1
- package/dist/model/units/units.d.ts +0 -40
- package/dist/model/units/units.d.ts.map +0 -1
- package/dist/model/units/units.js +0 -80
- package/dist/model/units/units.js.map +0 -1
- package/dist/model/units/utils.d.ts +0 -4
- package/dist/model/units/utils.d.ts.map +0 -1
- package/dist/model/units/utils.js +0 -32
- package/dist/model/units/utils.js.map +0 -1
|
@@ -14,13 +14,13 @@
|
|
|
14
14
|
Object.defineProperty(exports, "__esModule", {
|
|
15
15
|
value: true
|
|
16
16
|
});
|
|
17
|
-
Object.defineProperty(exports, "
|
|
17
|
+
Object.defineProperty(exports, "LineChartTooltip", {
|
|
18
18
|
enumerable: true,
|
|
19
|
-
get: ()=>
|
|
19
|
+
get: ()=>LineChartTooltip
|
|
20
20
|
});
|
|
21
21
|
const _jsxRuntime = require("react/jsx-runtime");
|
|
22
22
|
const _material = require("@mui/material");
|
|
23
|
-
const _react =
|
|
23
|
+
const _react = require("react");
|
|
24
24
|
const _useResizeObserver = /*#__PURE__*/ _interopRequireDefault(require("use-resize-observer"));
|
|
25
25
|
const _tooltipContent = require("./TooltipContent");
|
|
26
26
|
const _tooltipHeader = require("./TooltipHeader");
|
|
@@ -32,46 +32,7 @@ function _interopRequireDefault(obj) {
|
|
|
32
32
|
default: obj
|
|
33
33
|
};
|
|
34
34
|
}
|
|
35
|
-
function
|
|
36
|
-
if (typeof WeakMap !== "function") return null;
|
|
37
|
-
var cacheBabelInterop = new WeakMap();
|
|
38
|
-
var cacheNodeInterop = new WeakMap();
|
|
39
|
-
return (_getRequireWildcardCache = function(nodeInterop) {
|
|
40
|
-
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
|
|
41
|
-
})(nodeInterop);
|
|
42
|
-
}
|
|
43
|
-
function _interopRequireWildcard(obj, nodeInterop) {
|
|
44
|
-
if (!nodeInterop && obj && obj.__esModule) {
|
|
45
|
-
return obj;
|
|
46
|
-
}
|
|
47
|
-
if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
|
|
48
|
-
return {
|
|
49
|
-
default: obj
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
var cache = _getRequireWildcardCache(nodeInterop);
|
|
53
|
-
if (cache && cache.has(obj)) {
|
|
54
|
-
return cache.get(obj);
|
|
55
|
-
}
|
|
56
|
-
var newObj = {};
|
|
57
|
-
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
58
|
-
for(var key in obj){
|
|
59
|
-
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
60
|
-
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
|
|
61
|
-
if (desc && (desc.get || desc.set)) {
|
|
62
|
-
Object.defineProperty(newObj, key, desc);
|
|
63
|
-
} else {
|
|
64
|
-
newObj[key] = obj[key];
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
newObj.default = obj;
|
|
69
|
-
if (cache) {
|
|
70
|
-
cache.set(obj, newObj);
|
|
71
|
-
}
|
|
72
|
-
return newObj;
|
|
73
|
-
}
|
|
74
|
-
const TimeSeriesTooltip = /*#__PURE__*/ _react.default.memo(function TimeSeriesTooltip({ chartRef , chartData , wrapLabels , unit , onUnpinClick , pinnedPos }) {
|
|
35
|
+
const LineChartTooltip = /*#__PURE__*/ (0, _react.memo)(function LineChartTooltip({ chartRef , chartData , wrapLabels , unit , onUnpinClick , pinnedPos }) {
|
|
75
36
|
const [showAllSeries, setShowAllSeries] = (0, _react.useState)(false);
|
|
76
37
|
const mousePos = (0, _tooltipModel.useMousePosition)();
|
|
77
38
|
const { height , width , ref: tooltipRef } = (0, _useResizeObserver.default)();
|
|
@@ -84,7 +45,7 @@ const TimeSeriesTooltip = /*#__PURE__*/ _react.default.memo(function TimeSeriesT
|
|
|
84
45
|
const chartWidth = (ref = chart === null || chart === void 0 ? void 0 : chart.getWidth()) !== null && ref !== void 0 ? ref : _tooltipModel.FALLBACK_CHART_WIDTH; // Fallback width not likely to ever be needed.
|
|
85
46
|
const cursorTransform = (0, _utils.assembleTransform)(mousePos, chartWidth, pinnedPos, height !== null && height !== void 0 ? height : 0, width !== null && width !== void 0 ? width : 0);
|
|
86
47
|
// Get series nearby the cursor and pass into tooltip content children.
|
|
87
|
-
const nearbySeries = (0, _nearbySeries.
|
|
48
|
+
const nearbySeries = (0, _nearbySeries.legacyGetNearbySeriesData)({
|
|
88
49
|
mousePos,
|
|
89
50
|
chartData,
|
|
90
51
|
pinnedPos,
|
|
@@ -117,7 +78,8 @@ const TimeSeriesTooltip = /*#__PURE__*/ _react.default.memo(function TimeSeriesT
|
|
|
117
78
|
visibility: 'visible',
|
|
118
79
|
opacity: 1,
|
|
119
80
|
transition: 'all 0.1s ease-out',
|
|
120
|
-
|
|
81
|
+
// Ensure pinned tooltip shows behind edit panel drawer and sticky header
|
|
82
|
+
zIndex: pinnedPos !== null ? 'auto' : theme.zIndex.tooltip,
|
|
121
83
|
overflow: 'hidden',
|
|
122
84
|
'&:hover': {
|
|
123
85
|
overflowY: 'auto'
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
// Copyright 2023 The Perses Authors
|
|
2
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
3
|
+
// you may not use this file except in compliance with the License.
|
|
4
|
+
// You may obtain a copy of the License at
|
|
5
|
+
//
|
|
6
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
7
|
+
//
|
|
8
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
9
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
10
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
11
|
+
// See the License for the specific language governing permissions and
|
|
12
|
+
// limitations under the License.
|
|
13
|
+
"use strict";
|
|
14
|
+
Object.defineProperty(exports, "__esModule", {
|
|
15
|
+
value: true
|
|
16
|
+
});
|
|
17
|
+
Object.defineProperty(exports, "TimeChartTooltip", {
|
|
18
|
+
enumerable: true,
|
|
19
|
+
get: ()=>TimeChartTooltip
|
|
20
|
+
});
|
|
21
|
+
const _jsxRuntime = require("react/jsx-runtime");
|
|
22
|
+
const _react = require("react");
|
|
23
|
+
const _material = require("@mui/material");
|
|
24
|
+
const _useResizeObserver = /*#__PURE__*/ _interopRequireDefault(require("use-resize-observer"));
|
|
25
|
+
const _tooltipModel = require("./tooltip-model");
|
|
26
|
+
const _utils = require("./utils");
|
|
27
|
+
const _nearbySeries = require("./nearby-series");
|
|
28
|
+
const _tooltipHeader = require("./TooltipHeader");
|
|
29
|
+
const _tooltipContent = require("./TooltipContent");
|
|
30
|
+
function _interopRequireDefault(obj) {
|
|
31
|
+
return obj && obj.__esModule ? obj : {
|
|
32
|
+
default: obj
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
const TimeChartTooltip = /*#__PURE__*/ (0, _react.memo)(function TimeChartTooltip({ chartRef , data , seriesMapping , wrapLabels , unit , onUnpinClick , pinnedPos }) {
|
|
36
|
+
const [showAllSeries, setShowAllSeries] = (0, _react.useState)(false);
|
|
37
|
+
const mousePos = (0, _tooltipModel.useMousePosition)();
|
|
38
|
+
const { height , width , ref: tooltipRef } = (0, _useResizeObserver.default)();
|
|
39
|
+
const isTooltipPinned = pinnedPos !== null;
|
|
40
|
+
if (mousePos === null || mousePos.target === null || data === null) return null;
|
|
41
|
+
// Ensure user is hovering over a chart before checking for nearby series.
|
|
42
|
+
if (pinnedPos === null && mousePos.target.tagName !== 'CANVAS') return null;
|
|
43
|
+
const chart = chartRef.current;
|
|
44
|
+
var ref;
|
|
45
|
+
const chartWidth = (ref = chart === null || chart === void 0 ? void 0 : chart.getWidth()) !== null && ref !== void 0 ? ref : _tooltipModel.FALLBACK_CHART_WIDTH; // Fallback width not likely to ever be needed.
|
|
46
|
+
const cursorTransform = (0, _utils.assembleTransform)(mousePos, chartWidth, pinnedPos, height !== null && height !== void 0 ? height : 0, width !== null && width !== void 0 ? width : 0);
|
|
47
|
+
// Get series nearby the cursor and pass into tooltip content children.
|
|
48
|
+
const nearbySeries = (0, _nearbySeries.getNearbySeriesData)({
|
|
49
|
+
mousePos,
|
|
50
|
+
data,
|
|
51
|
+
seriesMapping,
|
|
52
|
+
pinnedPos,
|
|
53
|
+
chart,
|
|
54
|
+
unit,
|
|
55
|
+
showAllSeries
|
|
56
|
+
});
|
|
57
|
+
if (nearbySeries.length === 0) {
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
const totalSeries = data.length;
|
|
61
|
+
return /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Portal, {
|
|
62
|
+
children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Box, {
|
|
63
|
+
ref: tooltipRef,
|
|
64
|
+
sx: (theme)=>(0, _utils.getTooltipStyles)(theme, pinnedPos),
|
|
65
|
+
style: {
|
|
66
|
+
transform: cursorTransform
|
|
67
|
+
},
|
|
68
|
+
children: /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_material.Stack, {
|
|
69
|
+
spacing: 0.5,
|
|
70
|
+
children: [
|
|
71
|
+
/*#__PURE__*/ (0, _jsxRuntime.jsx)(_tooltipHeader.TooltipHeader, {
|
|
72
|
+
nearbySeries: nearbySeries,
|
|
73
|
+
totalSeries: totalSeries,
|
|
74
|
+
isTooltipPinned: isTooltipPinned,
|
|
75
|
+
showAllSeries: showAllSeries,
|
|
76
|
+
onShowAllClick: (checked)=>setShowAllSeries(checked),
|
|
77
|
+
onUnpinClick: onUnpinClick
|
|
78
|
+
}),
|
|
79
|
+
/*#__PURE__*/ (0, _jsxRuntime.jsx)(_tooltipContent.TooltipContent, {
|
|
80
|
+
series: nearbySeries,
|
|
81
|
+
wrapLabels: wrapLabels
|
|
82
|
+
})
|
|
83
|
+
]
|
|
84
|
+
})
|
|
85
|
+
})
|
|
86
|
+
});
|
|
87
|
+
});
|
|
@@ -22,17 +22,16 @@ const _jsxRuntime = require("react/jsx-runtime");
|
|
|
22
22
|
const _material = require("@mui/material");
|
|
23
23
|
const _pin = /*#__PURE__*/ _interopRequireDefault(require("mdi-material-ui/Pin"));
|
|
24
24
|
const _pinOutline = /*#__PURE__*/ _interopRequireDefault(require("mdi-material-ui/PinOutline"));
|
|
25
|
-
const _react =
|
|
26
|
-
const
|
|
25
|
+
const _react = require("react");
|
|
26
|
+
const _dateFns = require("date-fns");
|
|
27
27
|
const _tooltipModel = require("./tooltip-model");
|
|
28
28
|
function _interopRequireDefault(obj) {
|
|
29
29
|
return obj && obj.__esModule ? obj : {
|
|
30
30
|
default: obj
|
|
31
31
|
};
|
|
32
32
|
}
|
|
33
|
-
const TooltipHeader = /*#__PURE__*/ _react.
|
|
33
|
+
const TooltipHeader = /*#__PURE__*/ (0, _react.memo)(function TooltipHeader({ nearbySeries , totalSeries , isTooltipPinned , showAllSeries , onShowAllClick , onUnpinClick }) {
|
|
34
34
|
var ref;
|
|
35
|
-
const { formatWithUserTimeZone } = (0, _timeZoneProvider.useTimeZone)();
|
|
36
35
|
var ref1;
|
|
37
36
|
const seriesTimeMs = (ref1 = (ref = nearbySeries[0]) === null || ref === void 0 ? void 0 : ref.date) !== null && ref1 !== void 0 ? ref1 : null;
|
|
38
37
|
if (seriesTimeMs === null) {
|
|
@@ -40,8 +39,8 @@ const TooltipHeader = /*#__PURE__*/ _react.default.memo(function TooltipHeader({
|
|
|
40
39
|
}
|
|
41
40
|
const formatTimeSeriesHeader = (timeMs)=>{
|
|
42
41
|
const date = new Date(timeMs);
|
|
43
|
-
const formattedDate =
|
|
44
|
-
const formattedTime =
|
|
42
|
+
const formattedDate = (0, _dateFns.format)(date, 'MMM dd, yyyy - ');
|
|
43
|
+
const formattedTime = (0, _dateFns.format)(date, 'HH:mm:ss');
|
|
45
44
|
return /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_material.Box, {
|
|
46
45
|
children: [
|
|
47
46
|
/*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Typography, {
|
|
@@ -96,7 +95,7 @@ const TooltipHeader = /*#__PURE__*/ _react.default.memo(function TooltipHeader({
|
|
|
96
95
|
children: [
|
|
97
96
|
showAllSeriesToggle && /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_material.Stack, {
|
|
98
97
|
direction: "row",
|
|
99
|
-
gap:
|
|
98
|
+
gap: 0.5,
|
|
100
99
|
alignItems: "center",
|
|
101
100
|
sx: {
|
|
102
101
|
textAlign: 'right'
|
|
@@ -106,7 +105,7 @@ const TooltipHeader = /*#__PURE__*/ _react.default.memo(function TooltipHeader({
|
|
|
106
105
|
sx: {
|
|
107
106
|
fontSize: 11
|
|
108
107
|
},
|
|
109
|
-
children: "Show All
|
|
108
|
+
children: "Show All"
|
|
110
109
|
}),
|
|
111
110
|
/*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Switch, {
|
|
112
111
|
checked: showAllSeries,
|
|
@@ -119,6 +118,9 @@ const TooltipHeader = /*#__PURE__*/ _react.default.memo(function TooltipHeader({
|
|
|
119
118
|
sx: (theme)=>({
|
|
120
119
|
'& .MuiSwitch-switchBase': {
|
|
121
120
|
color: theme.palette.common.white
|
|
121
|
+
},
|
|
122
|
+
'& .MuiSwitch-track': {
|
|
123
|
+
backgroundColor: theme.palette.common.white
|
|
122
124
|
}
|
|
123
125
|
})
|
|
124
126
|
})
|
|
@@ -14,10 +14,11 @@
|
|
|
14
14
|
Object.defineProperty(exports, "__esModule", {
|
|
15
15
|
value: true
|
|
16
16
|
});
|
|
17
|
-
_exportStar(require("./
|
|
17
|
+
_exportStar(require("./LineChartTooltip"), exports);
|
|
18
18
|
_exportStar(require("./SeriesInfo"), exports);
|
|
19
19
|
_exportStar(require("./SeriesLabelsStack"), exports);
|
|
20
20
|
_exportStar(require("./SeriesMarker"), exports);
|
|
21
|
+
_exportStar(require("./TimeChartTooltip"), exports);
|
|
21
22
|
_exportStar(require("./TooltipContent"), exports);
|
|
22
23
|
_exportStar(require("./TooltipHeader"), exports);
|
|
23
24
|
_exportStar(require("./nearby-series"), exports);
|
|
@@ -24,16 +24,134 @@ _export(exports, {
|
|
|
24
24
|
INCREASE_NEARBY_SERIES_MULTIPLIER: ()=>INCREASE_NEARBY_SERIES_MULTIPLIER,
|
|
25
25
|
DYNAMIC_NEARBY_SERIES_MULTIPLIER: ()=>DYNAMIC_NEARBY_SERIES_MULTIPLIER,
|
|
26
26
|
SHOW_FEWER_SERIES_LIMIT: ()=>SHOW_FEWER_SERIES_LIMIT,
|
|
27
|
-
|
|
27
|
+
checkforNearbyTimeSeries: ()=>checkforNearbyTimeSeries,
|
|
28
|
+
legacyCheckforNearbySeries: ()=>legacyCheckforNearbySeries,
|
|
28
29
|
getNearbySeriesData: ()=>getNearbySeriesData,
|
|
30
|
+
legacyGetNearbySeriesData: ()=>legacyGetNearbySeriesData,
|
|
29
31
|
isWithinPercentageRange: ()=>isWithinPercentageRange,
|
|
30
32
|
getYBuffer: ()=>getYBuffer
|
|
31
33
|
});
|
|
34
|
+
const _core = require("@perses-dev/core");
|
|
32
35
|
const _model = require("../model");
|
|
33
36
|
const INCREASE_NEARBY_SERIES_MULTIPLIER = 5.5; // adjusts how many series show in tooltip (higher == more series shown)
|
|
34
37
|
const DYNAMIC_NEARBY_SERIES_MULTIPLIER = 30; // used for adjustment after series number divisor
|
|
35
38
|
const SHOW_FEWER_SERIES_LIMIT = 5;
|
|
36
|
-
function
|
|
39
|
+
function checkforNearbyTimeSeries(data, seriesMapping, pointInGrid, yBuffer, chart, unit) {
|
|
40
|
+
const currentNearbySeriesData = [];
|
|
41
|
+
var ref;
|
|
42
|
+
const cursorX = (ref = pointInGrid[0]) !== null && ref !== void 0 ? ref : null;
|
|
43
|
+
var ref1;
|
|
44
|
+
const cursorY = (ref1 = pointInGrid[1]) !== null && ref1 !== void 0 ? ref1 : null;
|
|
45
|
+
if (cursorX === null || cursorY === null) return currentNearbySeriesData;
|
|
46
|
+
if (!Array.isArray(data)) return currentNearbySeriesData;
|
|
47
|
+
// TODO: better way to calc xBuffer for longer time ranges
|
|
48
|
+
// const xBuffer = cursorX * 0.0000005;
|
|
49
|
+
const nearbySeriesIndexes = [];
|
|
50
|
+
const emphasizedSeriesIndexes = [];
|
|
51
|
+
const nonEmphasizedSeriesIndexes = [];
|
|
52
|
+
const totalSeries = data.length;
|
|
53
|
+
let closestTimestamp = null;
|
|
54
|
+
let closestDistance = Infinity;
|
|
55
|
+
// find the timestamp with data that is closest to cursorX
|
|
56
|
+
for(let seriesIdx = 0; seriesIdx < totalSeries; seriesIdx++){
|
|
57
|
+
const currentSeries = seriesMapping[seriesIdx];
|
|
58
|
+
if (currentSeries === undefined) break;
|
|
59
|
+
const currentDataset = totalSeries > 0 ? data[seriesIdx] : null;
|
|
60
|
+
if (currentDataset == null) break;
|
|
61
|
+
const currentDatasetValues = currentDataset.values;
|
|
62
|
+
for (const [timestamp] of currentDatasetValues){
|
|
63
|
+
const distance = Math.abs(timestamp - cursorX);
|
|
64
|
+
if (distance < closestDistance) {
|
|
65
|
+
closestTimestamp = timestamp;
|
|
66
|
+
closestDistance = distance;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
if (currentDatasetValues === undefined || !Array.isArray(currentDatasetValues)) break;
|
|
70
|
+
const lineSeries = currentSeries;
|
|
71
|
+
const currentSeriesName = lineSeries.name ? lineSeries.name.toString() : '';
|
|
72
|
+
var _color;
|
|
73
|
+
const markerColor = (_color = lineSeries.color) !== null && _color !== void 0 ? _color : '#000';
|
|
74
|
+
if (Array.isArray(data)) {
|
|
75
|
+
for(let datumIdx = 0; datumIdx < currentDatasetValues.length; datumIdx++){
|
|
76
|
+
const nearbyTimeSeries = currentDatasetValues[datumIdx];
|
|
77
|
+
if (nearbyTimeSeries === undefined || !Array.isArray(nearbyTimeSeries)) break;
|
|
78
|
+
const xValue = nearbyTimeSeries[0];
|
|
79
|
+
const yValue = nearbyTimeSeries[1];
|
|
80
|
+
// TODO: ensure null values not displayed in tooltip
|
|
81
|
+
if (yValue !== undefined && yValue !== null) {
|
|
82
|
+
// if (cursorX < xValue + xBuffer && cursorX > xValue - xBuffer) {
|
|
83
|
+
if (closestTimestamp === xValue) {
|
|
84
|
+
if (cursorY <= yValue + yBuffer && cursorY >= yValue - yBuffer) {
|
|
85
|
+
// show fewer bold series in tooltip when many total series
|
|
86
|
+
const minPercentRange = totalSeries > SHOW_FEWER_SERIES_LIMIT ? 2 : 5;
|
|
87
|
+
const percentRangeToCheck = Math.max(minPercentRange, 100 / totalSeries);
|
|
88
|
+
const isClosestToCursor = isWithinPercentageRange({
|
|
89
|
+
valueToCheck: cursorY,
|
|
90
|
+
baseValue: yValue,
|
|
91
|
+
percentage: percentRangeToCheck
|
|
92
|
+
});
|
|
93
|
+
if (isClosestToCursor) {
|
|
94
|
+
emphasizedSeriesIndexes.push(seriesIdx);
|
|
95
|
+
} else {
|
|
96
|
+
nonEmphasizedSeriesIndexes.push(seriesIdx);
|
|
97
|
+
// ensure series not close to cursor are not highlighted
|
|
98
|
+
if ((chart === null || chart === void 0 ? void 0 : chart.dispatchAction) !== undefined) {
|
|
99
|
+
chart.dispatchAction({
|
|
100
|
+
type: 'downplay',
|
|
101
|
+
seriesIndex: seriesIdx
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
// determine whether to convert timestamp to ms, see: https://stackoverflow.com/a/23982005/17575201
|
|
106
|
+
// const xValueMilliSeconds = xValue > 99999999999 ? xValue : xValue * 1000;
|
|
107
|
+
const formattedY = (0, _core.formatValue)(yValue, unit);
|
|
108
|
+
currentNearbySeriesData.push({
|
|
109
|
+
seriesIdx: seriesIdx,
|
|
110
|
+
datumIdx: datumIdx,
|
|
111
|
+
seriesName: currentSeriesName,
|
|
112
|
+
date: closestTimestamp,
|
|
113
|
+
x: xValue,
|
|
114
|
+
y: yValue,
|
|
115
|
+
formattedY: formattedY,
|
|
116
|
+
markerColor: markerColor.toString(),
|
|
117
|
+
isClosestToCursor
|
|
118
|
+
});
|
|
119
|
+
nearbySeriesIndexes.push(seriesIdx);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
if ((chart === null || chart === void 0 ? void 0 : chart.dispatchAction) !== undefined) {
|
|
127
|
+
// Clears emphasis state of all lines that are not emphasized.
|
|
128
|
+
// Emphasized is a subset of just the nearby series that are closest to cursor.
|
|
129
|
+
chart.dispatchAction({
|
|
130
|
+
type: 'downplay',
|
|
131
|
+
seriesIndex: nonEmphasizedSeriesIndexes
|
|
132
|
+
});
|
|
133
|
+
// https://echarts.apache.org/en/api.html#action.highlight
|
|
134
|
+
if (emphasizedSeriesIndexes.length > 0) {
|
|
135
|
+
// Fadeout opacity of all series not closest to cursor.
|
|
136
|
+
chart.dispatchAction({
|
|
137
|
+
type: 'highlight',
|
|
138
|
+
seriesIndex: emphasizedSeriesIndexes,
|
|
139
|
+
notBlur: false,
|
|
140
|
+
escapeConnect: true
|
|
141
|
+
});
|
|
142
|
+
} else {
|
|
143
|
+
// When no emphasized series with bold text, notBlur allows opacity fadeout to not trigger.
|
|
144
|
+
chart.dispatchAction({
|
|
145
|
+
type: 'highlight',
|
|
146
|
+
seriesIndex: nearbySeriesIndexes,
|
|
147
|
+
notBlur: true,
|
|
148
|
+
escapeConnect: true
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
return currentNearbySeriesData;
|
|
153
|
+
}
|
|
154
|
+
function legacyCheckforNearbySeries(data, pointInGrid, yBuffer, chart, unit) {
|
|
37
155
|
const currentNearbySeriesData = [];
|
|
38
156
|
var ref;
|
|
39
157
|
const cursorX = (ref = pointInGrid[0]) !== null && ref !== void 0 ? ref : null;
|
|
@@ -84,7 +202,7 @@ function checkforNearbySeries(data, pointInGrid, yBuffer, chart, unit) {
|
|
|
84
202
|
}
|
|
85
203
|
// determine whether to convert timestamp to ms, see: https://stackoverflow.com/a/23982005/17575201
|
|
86
204
|
const xValueMilliSeconds = xValue > 99999999999 ? xValue : xValue * 1000;
|
|
87
|
-
const formattedY = (0,
|
|
205
|
+
const formattedY = (0, _core.formatValue)(yValue, unit);
|
|
88
206
|
currentNearbySeriesData.push({
|
|
89
207
|
seriesIdx: seriesIdx,
|
|
90
208
|
datumIdx: datumIdx,
|
|
@@ -117,20 +235,22 @@ function checkforNearbySeries(data, pointInGrid, yBuffer, chart, unit) {
|
|
|
117
235
|
chart.dispatchAction({
|
|
118
236
|
type: 'highlight',
|
|
119
237
|
seriesIndex: emphasizedSeriesIndexes,
|
|
120
|
-
notBlur: false
|
|
238
|
+
notBlur: false,
|
|
239
|
+
escapeConnect: true
|
|
121
240
|
});
|
|
122
241
|
} else {
|
|
123
242
|
// When no emphasized series with bold text, notBlur allows opacity fadeout to not trigger.
|
|
124
243
|
chart.dispatchAction({
|
|
125
244
|
type: 'highlight',
|
|
126
245
|
seriesIndex: nearbySeriesIndexes,
|
|
127
|
-
notBlur: true
|
|
246
|
+
notBlur: true,
|
|
247
|
+
escapeConnect: true
|
|
128
248
|
});
|
|
129
249
|
}
|
|
130
250
|
}
|
|
131
251
|
return currentNearbySeriesData;
|
|
132
252
|
}
|
|
133
|
-
function getNearbySeriesData({ mousePos , pinnedPos ,
|
|
253
|
+
function getNearbySeriesData({ mousePos , pinnedPos , data , seriesMapping , chart , unit , showAllSeries =false }) {
|
|
134
254
|
if (chart === undefined || mousePos === null) return [];
|
|
135
255
|
// prevents multiple tooltips showing from adjacent charts unless tooltip is pinned
|
|
136
256
|
let cursorTargetMatchesChart = false;
|
|
@@ -152,10 +272,10 @@ function getNearbySeriesData({ mousePos , pinnedPos , chartData , chart , unit ,
|
|
|
152
272
|
cursorTargetMatchesChart = true;
|
|
153
273
|
}
|
|
154
274
|
if (cursorTargetMatchesChart === false) return [];
|
|
155
|
-
if (chart['_model'] === undefined) return [];
|
|
275
|
+
if (chart['_model'] === undefined || data === null) return [];
|
|
156
276
|
const chartModel = chart['_model'];
|
|
157
277
|
const yInterval = chartModel.getComponent('yAxis').axis.scale._interval;
|
|
158
|
-
const totalSeries =
|
|
278
|
+
const totalSeries = data.length;
|
|
159
279
|
const yBuffer = getYBuffer({
|
|
160
280
|
yInterval,
|
|
161
281
|
totalSeries,
|
|
@@ -169,17 +289,51 @@ function getNearbySeriesData({ mousePos , pinnedPos , chartData , chart , unit ,
|
|
|
169
289
|
if (chart.containPixel('grid', pointInPixel)) {
|
|
170
290
|
const pointInGrid = chart.convertFromPixel('grid', pointInPixel);
|
|
171
291
|
if (pointInGrid[0] !== undefined && pointInGrid[1] !== undefined) {
|
|
172
|
-
return
|
|
292
|
+
return checkforNearbyTimeSeries(data, seriesMapping, pointInGrid, yBuffer, chart, unit);
|
|
173
293
|
}
|
|
174
294
|
}
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
295
|
+
return [];
|
|
296
|
+
}
|
|
297
|
+
function legacyGetNearbySeriesData({ mousePos , pinnedPos , chartData , chart , unit , showAllSeries =false }) {
|
|
298
|
+
if (chart === undefined || mousePos === null) return [];
|
|
299
|
+
// prevents multiple tooltips showing from adjacent charts unless tooltip is pinned
|
|
300
|
+
let cursorTargetMatchesChart = false;
|
|
301
|
+
if (mousePos.target !== null) {
|
|
302
|
+
const currentParent = mousePos.target.parentElement;
|
|
303
|
+
if (currentParent !== null) {
|
|
304
|
+
const currentGrandparent = currentParent.parentElement;
|
|
305
|
+
if (currentGrandparent !== null) {
|
|
306
|
+
const chartDom = chart.getDom();
|
|
307
|
+
if (chartDom === currentGrandparent) {
|
|
308
|
+
cursorTargetMatchesChart = true;
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
// allows moving cursor inside tooltip without it fading away
|
|
314
|
+
if (pinnedPos !== null) {
|
|
315
|
+
mousePos = pinnedPos;
|
|
316
|
+
cursorTargetMatchesChart = true;
|
|
317
|
+
}
|
|
318
|
+
if (cursorTargetMatchesChart === false) return [];
|
|
319
|
+
if (chart['_model'] === undefined) return [];
|
|
320
|
+
const chartModel = chart['_model'];
|
|
321
|
+
const yInterval = chartModel.getComponent('yAxis').axis.scale._interval;
|
|
322
|
+
const totalSeries = chartData.timeSeries.length;
|
|
323
|
+
const yBuffer = getYBuffer({
|
|
324
|
+
yInterval,
|
|
325
|
+
totalSeries,
|
|
326
|
+
showAllSeries
|
|
327
|
+
});
|
|
328
|
+
var _x, _y;
|
|
329
|
+
const pointInPixel = [
|
|
330
|
+
(_x = mousePos.plotCanvas.x) !== null && _x !== void 0 ? _x : 0,
|
|
331
|
+
(_y = mousePos.plotCanvas.y) !== null && _y !== void 0 ? _y : 0
|
|
332
|
+
];
|
|
333
|
+
if (chart.containPixel('grid', pointInPixel)) {
|
|
334
|
+
const pointInGrid = chart.convertFromPixel('grid', pointInPixel);
|
|
335
|
+
if (pointInGrid[0] !== undefined && pointInGrid[1] !== undefined) {
|
|
336
|
+
return legacyCheckforNearbySeries(chartData, pointInGrid, yBuffer, chart, unit);
|
|
183
337
|
}
|
|
184
338
|
}
|
|
185
339
|
return [];
|
|
@@ -14,9 +14,15 @@
|
|
|
14
14
|
Object.defineProperty(exports, "__esModule", {
|
|
15
15
|
value: true
|
|
16
16
|
});
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
17
|
+
function _export(target, all) {
|
|
18
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: all[name]
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
_export(exports, {
|
|
24
|
+
assembleTransform: ()=>assembleTransform,
|
|
25
|
+
getTooltipStyles: ()=>getTooltipStyles
|
|
20
26
|
});
|
|
21
27
|
const _tooltipModel = require("./tooltip-model");
|
|
22
28
|
function assembleTransform(mousePos, chartWidth, pinnedPos, tooltipHeight, tooltipWidth) {
|
|
@@ -43,3 +49,29 @@ function assembleTransform(mousePos, chartWidth, pinnedPos, tooltipHeight, toolt
|
|
|
43
49
|
// reposition so tooltip is never too close to right side of chart or left side of browser window
|
|
44
50
|
return mousePos.plotCanvas.x > xPosAdjustThreshold && x > _tooltipModel.TOOLTIP_MAX_WIDTH ? `translate3d(${x - cursorPaddingX}px, ${y}px, 0) translateX(-100%)` : `translate3d(${x + cursorPaddingX}px, ${y}px, 0)`;
|
|
45
51
|
}
|
|
52
|
+
function getTooltipStyles(theme, pinnedPos) {
|
|
53
|
+
var ref;
|
|
54
|
+
var ref1;
|
|
55
|
+
return {
|
|
56
|
+
minWidth: _tooltipModel.TOOLTIP_MIN_WIDTH,
|
|
57
|
+
maxWidth: _tooltipModel.TOOLTIP_MAX_WIDTH,
|
|
58
|
+
maxHeight: _tooltipModel.TOOLTIP_MAX_HEIGHT,
|
|
59
|
+
padding: 0,
|
|
60
|
+
position: 'absolute',
|
|
61
|
+
top: 0,
|
|
62
|
+
left: 0,
|
|
63
|
+
backgroundColor: (ref1 = (ref = theme.palette.designSystem) === null || ref === void 0 ? void 0 : ref.grey[800]) !== null && ref1 !== void 0 ? ref1 : _tooltipModel.TOOLTIP_BG_COLOR_FALLBACK,
|
|
64
|
+
borderRadius: '6px',
|
|
65
|
+
color: '#fff',
|
|
66
|
+
fontSize: '11px',
|
|
67
|
+
visibility: 'visible',
|
|
68
|
+
opacity: 1,
|
|
69
|
+
transition: 'all 0.1s ease-out',
|
|
70
|
+
// Ensure pinned tooltip shows behind edit panel drawer and sticky header
|
|
71
|
+
zIndex: pinnedPos !== null ? 'auto' : theme.zIndex.tooltip,
|
|
72
|
+
overflow: 'hidden',
|
|
73
|
+
'&:hover': {
|
|
74
|
+
overflowY: 'auto'
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
}
|
|
@@ -20,10 +20,10 @@ Object.defineProperty(exports, "UnitSelector", {
|
|
|
20
20
|
});
|
|
21
21
|
const _jsxRuntime = require("react/jsx-runtime");
|
|
22
22
|
const _material = require("@mui/material");
|
|
23
|
-
const
|
|
24
|
-
const _utils = require("../model/units/utils");
|
|
23
|
+
const _core = require("@perses-dev/core");
|
|
25
24
|
const _optionsEditorLayout = require("../OptionsEditorLayout");
|
|
26
|
-
const
|
|
25
|
+
const _settingsAutocomplete = require("../SettingsAutocomplete");
|
|
26
|
+
const KIND_OPTIONS = Object.entries(_core.UNIT_CONFIG).map(([id, config])=>{
|
|
27
27
|
return {
|
|
28
28
|
id: id,
|
|
29
29
|
...config
|
|
@@ -31,26 +31,32 @@ const KIND_OPTIONS = Object.entries(_model.UNIT_CONFIG).map(([id, config])=>{
|
|
|
31
31
|
}).filter((config)=>!config.disableSelectorOption);
|
|
32
32
|
const DECIMAL_PLACES_OPTIONS = [
|
|
33
33
|
{
|
|
34
|
+
id: 'default',
|
|
34
35
|
label: 'Default',
|
|
35
36
|
decimal_places: undefined
|
|
36
37
|
},
|
|
37
38
|
{
|
|
39
|
+
id: '0',
|
|
38
40
|
label: '0',
|
|
39
41
|
decimal_places: 0
|
|
40
42
|
},
|
|
41
43
|
{
|
|
44
|
+
id: '1',
|
|
42
45
|
label: '1',
|
|
43
46
|
decimal_places: 1
|
|
44
47
|
},
|
|
45
48
|
{
|
|
49
|
+
id: '2',
|
|
46
50
|
label: '2',
|
|
47
51
|
decimal_places: 2
|
|
48
52
|
},
|
|
49
53
|
{
|
|
54
|
+
id: '3',
|
|
50
55
|
label: '3',
|
|
51
56
|
decimal_places: 3
|
|
52
57
|
},
|
|
53
58
|
{
|
|
59
|
+
id: '4',
|
|
54
60
|
label: '4',
|
|
55
61
|
decimal_places: 4
|
|
56
62
|
}
|
|
@@ -59,8 +65,8 @@ function getOptionByDecimalPlaces(decimal_places) {
|
|
|
59
65
|
return DECIMAL_PLACES_OPTIONS.find((o)=>o.decimal_places === decimal_places);
|
|
60
66
|
}
|
|
61
67
|
function UnitSelector({ value , onChange }) {
|
|
62
|
-
const hasDecimalPlaces = (0,
|
|
63
|
-
const hasAbbreviate = (0,
|
|
68
|
+
const hasDecimalPlaces = (0, _core.isUnitWithDecimalPlaces)(value);
|
|
69
|
+
const hasAbbreviate = (0, _core.isUnitWithAbbreviate)(value);
|
|
64
70
|
const handleKindChange = (_, newValue)=>{
|
|
65
71
|
onChange({
|
|
66
72
|
kind: newValue.id
|
|
@@ -82,55 +88,36 @@ function UnitSelector({ value , onChange }) {
|
|
|
82
88
|
});
|
|
83
89
|
}
|
|
84
90
|
};
|
|
85
|
-
const kindConfig =
|
|
91
|
+
const kindConfig = _core.UNIT_CONFIG[value.kind];
|
|
86
92
|
return /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
87
93
|
children: [
|
|
88
94
|
/*#__PURE__*/ (0, _jsxRuntime.jsx)(_optionsEditorLayout.OptionsEditorControl, {
|
|
89
95
|
label: "Abbreviate",
|
|
90
96
|
control: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Switch, {
|
|
91
|
-
checked: hasAbbreviate ? (0,
|
|
97
|
+
checked: hasAbbreviate ? (0, _core.shouldAbbreviate)(value.abbreviate) : false,
|
|
92
98
|
onChange: handleAbbreviateChange,
|
|
93
99
|
disabled: !hasAbbreviate
|
|
94
100
|
})
|
|
95
101
|
}),
|
|
96
102
|
/*#__PURE__*/ (0, _jsxRuntime.jsx)(_optionsEditorLayout.OptionsEditorControl, {
|
|
97
103
|
label: "Unit",
|
|
98
|
-
control: /*#__PURE__*/ (0, _jsxRuntime.jsx)(
|
|
104
|
+
control: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_settingsAutocomplete.SettingsAutocomplete, {
|
|
99
105
|
value: {
|
|
100
106
|
id: value.kind,
|
|
101
107
|
...kindConfig
|
|
102
108
|
},
|
|
103
109
|
options: KIND_OPTIONS,
|
|
104
|
-
isOptionEqualToValue: (option, value)=>option.id === value.id,
|
|
105
110
|
groupBy: (option)=>option.group,
|
|
106
|
-
renderInput: (params)=>/*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.TextField, {
|
|
107
|
-
...params
|
|
108
|
-
}),
|
|
109
|
-
renderOption: (renderOptsProps, option)=>{
|
|
110
|
-
// Custom option needed to get some increased left padding to make
|
|
111
|
-
// the items more distinct from the group label.
|
|
112
|
-
return /*#__PURE__*/ (0, _jsxRuntime.jsx)("li", {
|
|
113
|
-
...renderOptsProps,
|
|
114
|
-
children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.Box, {
|
|
115
|
-
paddingLeft: (theme)=>theme.spacing(1),
|
|
116
|
-
children: option.label
|
|
117
|
-
})
|
|
118
|
-
});
|
|
119
|
-
},
|
|
120
111
|
onChange: handleKindChange,
|
|
121
112
|
disableClearable: true
|
|
122
113
|
})
|
|
123
114
|
}),
|
|
124
115
|
/*#__PURE__*/ (0, _jsxRuntime.jsx)(_optionsEditorLayout.OptionsEditorControl, {
|
|
125
116
|
label: "Decimals",
|
|
126
|
-
control: /*#__PURE__*/ (0, _jsxRuntime.jsx)(
|
|
117
|
+
control: /*#__PURE__*/ (0, _jsxRuntime.jsx)(_settingsAutocomplete.SettingsAutocomplete, {
|
|
127
118
|
value: getOptionByDecimalPlaces(value.decimal_places),
|
|
128
119
|
options: DECIMAL_PLACES_OPTIONS,
|
|
129
120
|
getOptionLabel: (o)=>o.label,
|
|
130
|
-
isOptionEqualToValue: (option, value)=>option.label === value.label,
|
|
131
|
-
renderInput: (params)=>/*#__PURE__*/ (0, _jsxRuntime.jsx)(_material.TextField, {
|
|
132
|
-
...params
|
|
133
|
-
}),
|
|
134
121
|
onChange: handleDecimalPlacesChange,
|
|
135
122
|
disabled: !hasDecimalPlaces,
|
|
136
123
|
disableClearable: true
|