stream-charts 1.0.1 → 1.1.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/README.md +756 -343
- package/changes.md +7 -0
- package/dist/src/app/charts/Chart.d.ts +116 -87
- package/dist/src/app/charts/Chart.js +96 -101
- package/dist/src/app/charts/Chart.js.map +1 -1
- package/dist/src/app/charts/axes/AxesState.d.ts +64 -0
- package/dist/src/app/charts/axes/AxesState.js +97 -0
- package/dist/src/app/charts/axes/AxesState.js.map +1 -0
- package/dist/src/app/charts/axes/AxesState.test.js +30 -0
- package/dist/src/app/charts/axes/AxesState.test.js.map +1 -0
- package/dist/src/app/charts/axes/AxisInterval.d.ts +92 -0
- package/dist/src/app/charts/axes/AxisInterval.js +126 -0
- package/dist/src/app/charts/axes/AxisInterval.js.map +1 -0
- package/dist/src/app/charts/axes/AxisInterval.test.js +120 -0
- package/dist/src/app/charts/axes/AxisInterval.test.js.map +1 -0
- package/dist/src/app/charts/axes/BaseAxisRange.d.ts +83 -0
- package/dist/src/app/charts/axes/BaseAxisRange.js +58 -0
- package/dist/src/app/charts/axes/BaseAxisRange.js.map +1 -0
- package/dist/src/app/charts/axes/ContinuousAxis.d.ts +22 -0
- package/dist/src/app/charts/axes/ContinuousAxis.js +96 -0
- package/dist/src/app/charts/axes/ContinuousAxis.js.map +1 -0
- package/dist/src/app/charts/axes/ContinuousAxisRange.d.ts +59 -0
- package/dist/src/app/charts/axes/ContinuousAxisRange.js +84 -0
- package/dist/src/app/charts/axes/ContinuousAxisRange.js.map +1 -0
- package/dist/src/app/charts/axes/ContinuousAxisRange.test.js +47 -0
- package/dist/src/app/charts/axes/ContinuousAxisRange.test.js.map +1 -0
- package/dist/src/app/charts/axes/OrdinalAxis.d.ts +23 -0
- package/dist/src/app/charts/axes/OrdinalAxis.js +124 -0
- package/dist/src/app/charts/axes/OrdinalAxis.js.map +1 -0
- package/dist/src/app/charts/axes/OrdinalAxisRange.d.ts +69 -0
- package/dist/src/app/charts/axes/OrdinalAxisRange.js +100 -0
- package/dist/src/app/charts/axes/OrdinalAxisRange.js.map +1 -0
- package/dist/src/app/charts/axes/OrdinalAxisRange.test.js +48 -0
- package/dist/src/app/charts/axes/OrdinalAxisRange.test.js.map +1 -0
- package/dist/src/app/charts/axes/axes.d.ts +391 -0
- package/dist/src/app/charts/axes/axes.js +1046 -0
- package/dist/src/app/charts/axes/axes.js.map +1 -0
- package/dist/src/app/charts/d3types.d.ts +10 -10
- package/dist/src/app/charts/filters/regexFilter.d.ts +9 -0
- package/dist/src/app/charts/filters/regexFilter.js +18 -0
- package/dist/src/app/charts/filters/regexFilter.js.map +1 -0
- package/dist/src/app/charts/filters/regexFilter.test.d.ts +1 -0
- package/dist/src/app/charts/filters/regexFilter.test.js +11 -0
- package/dist/src/app/charts/filters/regexFilter.test.js.map +1 -0
- package/dist/src/app/charts/hooks/useAxes.d.ts +144 -0
- package/dist/src/app/charts/hooks/useAxes.js +187 -0
- package/dist/src/app/charts/hooks/useAxes.js.map +1 -0
- package/dist/src/app/charts/hooks/useChart.d.ts +30 -201
- package/dist/src/app/charts/hooks/useChart.js +33 -134
- package/dist/src/app/charts/hooks/useChart.js.map +1 -1
- package/dist/src/app/charts/hooks/useDataObservable.d.ts +74 -0
- package/dist/src/app/charts/hooks/useDataObservable.js +76 -0
- package/dist/src/app/charts/hooks/useDataObservable.js.map +1 -0
- package/dist/src/app/charts/hooks/useInitialData.d.ts +38 -0
- package/dist/src/app/charts/hooks/useInitialData.js +29 -0
- package/dist/src/app/charts/hooks/useInitialData.js.map +1 -0
- package/dist/src/app/charts/hooks/useMouse.d.ts +53 -0
- package/dist/src/app/charts/hooks/useMouse.js +65 -0
- package/dist/src/app/charts/hooks/useMouse.js.map +1 -0
- package/dist/src/app/charts/hooks/usePlotDimensions.d.ts +34 -0
- package/dist/src/app/charts/hooks/usePlotDimensions.js +73 -0
- package/dist/src/app/charts/hooks/usePlotDimensions.js.map +1 -0
- package/dist/src/app/charts/hooks/useTooltip.d.ts +64 -0
- package/dist/src/app/charts/hooks/useTooltip.js +52 -0
- package/dist/src/app/charts/hooks/useTooltip.js.map +1 -0
- package/dist/src/app/charts/observables/ChartData.d.ts +23 -0
- package/dist/src/app/charts/observables/ChartData.js +20 -0
- package/dist/src/app/charts/observables/ChartData.js.map +1 -0
- package/dist/src/app/charts/observables/iterates.d.ts +52 -0
- package/dist/src/app/charts/observables/iterates.js +121 -0
- package/dist/src/app/charts/observables/iterates.js.map +1 -0
- package/dist/src/app/charts/observables/iterates.test.d.ts +1 -0
- package/dist/src/app/charts/observables/iterates.test.js +180 -0
- package/dist/src/app/charts/observables/iterates.test.js.map +1 -0
- package/dist/src/app/charts/observables/ordinals.d.ts +75 -0
- package/dist/src/app/charts/observables/ordinals.js +141 -0
- package/dist/src/app/charts/observables/ordinals.js.map +1 -0
- package/dist/src/app/charts/observables/ordinals.test.d.ts +1 -0
- package/dist/src/app/charts/observables/ordinals.test.js +102 -0
- package/dist/src/app/charts/observables/ordinals.test.js.map +1 -0
- package/dist/src/app/charts/plots/BarPlot.d.ts +81 -0
- package/dist/src/app/charts/plots/BarPlot.js +557 -0
- package/dist/src/app/charts/plots/BarPlot.js.map +1 -0
- package/dist/src/app/charts/plots/PoincarePlot.d.ts +78 -0
- package/dist/src/app/charts/plots/PoincarePlot.js +504 -0
- package/dist/src/app/charts/plots/PoincarePlot.js.map +1 -0
- package/dist/src/app/charts/{RasterPlot.d.ts → plots/RasterPlot.d.ts} +1 -1
- package/dist/src/app/charts/{RasterPlot.js → plots/RasterPlot.js} +152 -133
- package/dist/src/app/charts/plots/RasterPlot.js.map +1 -0
- package/dist/src/app/charts/{ScatterPlot.d.ts → plots/ScatterPlot.d.ts} +10 -8
- package/dist/src/app/charts/plots/ScatterPlot.js +379 -0
- package/dist/src/app/charts/plots/ScatterPlot.js.map +1 -0
- package/dist/src/app/charts/{plot.d.ts → plots/plot.d.ts} +12 -14
- package/dist/src/app/charts/{plot.js → plots/plot.js} +19 -17
- package/dist/src/app/charts/plots/plot.js.map +1 -0
- package/dist/src/app/charts/series/baseSeries.d.ts +38 -0
- package/dist/src/app/charts/series/baseSeries.js +36 -0
- package/dist/src/app/charts/series/baseSeries.js.map +1 -0
- package/dist/src/app/charts/series/datumSeries.test.d.ts +1 -0
- package/dist/src/app/charts/series/datumSeries.test.js +50 -0
- package/dist/src/app/charts/series/datumSeries.test.js.map +1 -0
- package/dist/src/app/charts/series/iterateSeries.d.ts +42 -0
- package/dist/src/app/charts/series/iterateSeries.js +34 -0
- package/dist/src/app/charts/series/iterateSeries.js.map +1 -0
- package/dist/src/app/charts/series/ordinalSeries.d.ts +54 -0
- package/dist/src/app/charts/series/ordinalSeries.js +98 -0
- package/dist/src/app/charts/series/ordinalSeries.js.map +1 -0
- package/dist/src/app/charts/series/timeSeries.d.ts +30 -0
- package/dist/src/app/charts/series/timeSeries.js +19 -0
- package/dist/src/app/charts/series/timeSeries.js.map +1 -0
- package/dist/src/app/charts/{chartData.d.ts → series/timeSeriesChartData.d.ts} +11 -6
- package/dist/src/app/charts/series/timeSeriesChartData.js +32 -0
- package/dist/src/app/charts/series/timeSeriesChartData.js.map +1 -0
- package/dist/src/app/charts/styling/barPlotStyle.d.ts +41 -0
- package/dist/src/app/charts/styling/barPlotStyle.js +84 -0
- package/dist/src/app/charts/styling/barPlotStyle.js.map +1 -0
- package/dist/src/app/charts/{margins.d.ts → styling/margins.d.ts} +7 -5
- package/dist/src/app/charts/{margins.js → styling/margins.js} +19 -9
- package/dist/src/app/charts/styling/margins.js.map +1 -0
- package/dist/src/app/charts/styling/margins.test.d.ts +1 -0
- package/dist/src/app/charts/styling/margins.test.js +19 -0
- package/dist/src/app/charts/styling/margins.test.js.map +1 -0
- package/dist/src/app/charts/styling/svgStyle.d.ts +76 -0
- package/dist/src/app/charts/styling/svgStyle.js +84 -0
- package/dist/src/app/charts/styling/svgStyle.js.map +1 -0
- package/dist/src/app/charts/subscriptions/subscription.test.d.ts +1 -0
- package/dist/src/app/charts/subscriptions/subscription.test.js +395 -0
- package/dist/src/app/charts/subscriptions/subscription.test.js.map +1 -0
- package/dist/src/app/charts/subscriptions/subscriptions.d.ts +100 -0
- package/dist/src/app/charts/subscriptions/subscriptions.js +449 -0
- package/dist/src/app/charts/subscriptions/subscriptions.js.map +1 -0
- package/dist/src/app/charts/tooltips/BarPlotTooltipContent.d.ts +90 -0
- package/dist/src/app/charts/tooltips/BarPlotTooltipContent.js +302 -0
- package/dist/src/app/charts/tooltips/BarPlotTooltipContent.js.map +1 -0
- package/dist/src/app/charts/tooltips/PoincarePlotTooltipContent.d.ts +100 -0
- package/dist/src/app/charts/tooltips/PoincarePlotTooltipContent.js +190 -0
- package/dist/src/app/charts/tooltips/PoincarePlotTooltipContent.js.map +1 -0
- package/dist/src/app/charts/{RasterPlotTooltipContent.js → tooltips/RasterPlotTooltipContent.js} +40 -44
- package/dist/src/app/charts/tooltips/RasterPlotTooltipContent.js.map +1 -0
- package/dist/src/app/charts/tooltips/ScatterPlotTooltipContent.js +154 -0
- package/dist/src/app/charts/tooltips/ScatterPlotTooltipContent.js.map +1 -0
- package/dist/src/app/charts/{Tooltip.d.ts → tooltips/Tooltip.d.ts} +4 -2
- package/dist/src/app/charts/{Tooltip.js → tooltips/Tooltip.js} +23 -28
- package/dist/src/app/charts/tooltips/Tooltip.js.map +1 -0
- package/dist/src/app/charts/{tooltipUtils.d.ts → tooltips/tooltipUtils.d.ts} +11 -6
- package/dist/src/app/charts/{tooltipUtils.js → tooltips/tooltipUtils.js} +33 -17
- package/dist/src/app/charts/tooltips/tooltipUtils.js.map +1 -0
- package/dist/src/app/charts/{Tracker.d.ts → trackers/Tracker.d.ts} +6 -5
- package/dist/src/app/charts/trackers/Tracker.js +60 -0
- package/dist/src/app/charts/trackers/Tracker.js.map +1 -0
- package/dist/src/app/charts/{trackerUtils.d.ts → trackers/trackerUtils.d.ts} +13 -8
- package/dist/src/app/charts/trackers/trackerUtils.js +359 -0
- package/dist/src/app/charts/trackers/trackerUtils.js.map +1 -0
- package/dist/src/app/charts/utils.d.ts +22 -32
- package/dist/src/app/charts/utils.js +36 -37
- package/dist/src/app/charts/utils.js.map +1 -1
- package/dist/src/index.d.ts +48 -15
- package/dist/src/index.js +71 -15
- package/dist/src/index.js.map +1 -1
- package/package.json +30 -20
- package/src/app/charts/Chart.tsx +334 -0
- package/src/app/charts/axes/AxesState.test.ts +34 -0
- package/src/app/charts/axes/AxesState.ts +112 -0
- package/src/app/charts/axes/AxisInterval.test.ts +143 -0
- package/src/app/charts/axes/AxisInterval.ts +139 -0
- package/src/app/charts/axes/BaseAxisRange.ts +113 -0
- package/src/app/charts/axes/ContinuousAxis.tsx +192 -0
- package/src/app/charts/axes/ContinuousAxisRange.test.ts +55 -0
- package/src/app/charts/axes/ContinuousAxisRange.ts +96 -0
- package/src/app/charts/axes/OrdinalAxis.tsx +223 -0
- package/src/app/charts/axes/OrdinalAxisRange.test.ts +55 -0
- package/src/app/charts/axes/OrdinalAxisRange.ts +112 -0
- package/src/app/charts/axes/axes.ts +1569 -0
- package/src/app/charts/d3types.ts +16 -0
- package/src/app/charts/filters/regexFilter.test.ts +13 -0
- package/src/app/charts/filters/regexFilter.ts +17 -0
- package/src/app/charts/hooks/useAxes.tsx +341 -0
- package/src/app/charts/hooks/useChart.tsx +159 -0
- package/src/app/charts/hooks/useDataObservable.tsx +175 -0
- package/src/app/charts/hooks/useInitialData.tsx +65 -0
- package/src/app/charts/hooks/useMouse.tsx +125 -0
- package/src/app/charts/hooks/usePlotDimensions.tsx +120 -0
- package/src/app/charts/hooks/useTooltip.tsx +112 -0
- package/src/app/charts/observables/ChartData.ts +31 -0
- package/src/app/charts/observables/iterates.test.ts +201 -0
- package/src/app/charts/observables/iterates.ts +203 -0
- package/src/app/charts/observables/ordinals.test.ts +135 -0
- package/src/app/charts/observables/ordinals.ts +248 -0
- package/src/app/charts/plots/BarPlot.tsx +1088 -0
- package/src/app/charts/plots/PoincarePlot.tsx +832 -0
- package/src/app/charts/plots/RasterPlot.tsx +676 -0
- package/src/app/charts/plots/ScatterPlot.tsx +653 -0
- package/src/app/charts/plots/plot.ts +75 -0
- package/src/app/charts/series/baseSeries.ts +52 -0
- package/src/app/charts/series/datumSeries.test.ts +60 -0
- package/src/app/charts/series/iterateSeries.ts +56 -0
- package/src/app/charts/series/ordinalSeries.ts +164 -0
- package/src/app/charts/series/timeSeries.ts +40 -0
- package/src/app/charts/series/timeSeriesChartData.ts +68 -0
- package/src/app/charts/styling/barPlotStyle.ts +126 -0
- package/src/app/charts/styling/margins.test.ts +22 -0
- package/src/app/charts/styling/margins.ts +58 -0
- package/src/app/charts/styling/svgStyle.ts +118 -0
- package/src/app/charts/subscriptions/subscription.test.ts +499 -0
- package/src/app/charts/subscriptions/subscriptions.ts +635 -0
- package/src/app/charts/tooltips/BarPlotTooltipContent.tsx +440 -0
- package/src/app/charts/tooltips/PoincarePlotTooltipContent.tsx +352 -0
- package/src/app/charts/tooltips/RasterPlotTooltipContent.tsx +274 -0
- package/src/app/charts/tooltips/ScatterPlotTooltipContent.tsx +319 -0
- package/src/app/charts/tooltips/Tooltip.tsx +148 -0
- package/src/app/charts/tooltips/tooltipUtils.ts +216 -0
- package/src/app/charts/trackers/Tracker.tsx +129 -0
- package/src/app/charts/trackers/trackerUtils.ts +494 -0
- package/src/app/charts/utils.ts +109 -0
- package/dist/src/app/charts/CategoryAxis.d.ts +0 -20
- package/dist/src/app/charts/CategoryAxis.js +0 -112
- package/dist/src/app/charts/CategoryAxis.js.map +0 -1
- package/dist/src/app/charts/ContinuousAxis.d.ts +0 -16
- package/dist/src/app/charts/ContinuousAxis.js +0 -186
- package/dist/src/app/charts/ContinuousAxis.js.map +0 -1
- package/dist/src/app/charts/RasterPlot.js.map +0 -1
- package/dist/src/app/charts/RasterPlotTooltipContent.js.map +0 -1
- package/dist/src/app/charts/ScatterPlot.js +0 -351
- package/dist/src/app/charts/ScatterPlot.js.map +0 -1
- package/dist/src/app/charts/ScatterPlotTooltipContent.js +0 -163
- package/dist/src/app/charts/ScatterPlotTooltipContent.js.map +0 -1
- package/dist/src/app/charts/Tooltip.js.map +0 -1
- package/dist/src/app/charts/Tracker.js +0 -65
- package/dist/src/app/charts/Tracker.js.map +0 -1
- package/dist/src/app/charts/axes.d.ts +0 -132
- package/dist/src/app/charts/axes.js +0 -265
- package/dist/src/app/charts/axes.js.map +0 -1
- package/dist/src/app/charts/chartData.js +0 -32
- package/dist/src/app/charts/chartData.js.map +0 -1
- package/dist/src/app/charts/continuousAxisRangeFor.d.ts +0 -20
- package/dist/src/app/charts/continuousAxisRangeFor.js +0 -68
- package/dist/src/app/charts/continuousAxisRangeFor.js.map +0 -1
- package/dist/src/app/charts/datumSeries.d.ts +0 -59
- package/dist/src/app/charts/datumSeries.js +0 -55
- package/dist/src/app/charts/datumSeries.js.map +0 -1
- package/dist/src/app/charts/datumSeries.test.js +0 -50
- package/dist/src/app/charts/datumSeries.test.js.map +0 -1
- package/dist/src/app/charts/hooks/AxesState.d.ts +0 -37
- package/dist/src/app/charts/hooks/AxesState.js +0 -44
- package/dist/src/app/charts/hooks/AxesState.js.map +0 -1
- package/dist/src/app/charts/margins.js.map +0 -1
- package/dist/src/app/charts/margins.test.js +0 -14
- package/dist/src/app/charts/margins.test.js.map +0 -1
- package/dist/src/app/charts/plot.js.map +0 -1
- package/dist/src/app/charts/regexFilter.d.ts +0 -9
- package/dist/src/app/charts/regexFilter.js +0 -17
- package/dist/src/app/charts/regexFilter.js.map +0 -1
- package/dist/src/app/charts/regexFilter.test.js +0 -11
- package/dist/src/app/charts/regexFilter.test.js.map +0 -1
- package/dist/src/app/charts/subscriptions.d.ts +0 -43
- package/dist/src/app/charts/subscriptions.js +0 -213
- package/dist/src/app/charts/subscriptions.js.map +0 -1
- package/dist/src/app/charts/svgStyle.d.ts +0 -27
- package/dist/src/app/charts/svgStyle.js +0 -32
- package/dist/src/app/charts/svgStyle.js.map +0 -1
- package/dist/src/app/charts/timeRange.test.js +0 -54
- package/dist/src/app/charts/timeRange.test.js.map +0 -1
- package/dist/src/app/charts/tooltipUtils.js.map +0 -1
- package/dist/src/app/charts/trackerUtils.js +0 -130
- package/dist/src/app/charts/trackerUtils.js.map +0 -1
- /package/dist/src/app/charts/{datumSeries.test.d.ts → axes/AxesState.test.d.ts} +0 -0
- /package/dist/src/app/charts/{margins.test.d.ts → axes/AxisInterval.test.d.ts} +0 -0
- /package/dist/src/app/charts/{regexFilter.test.d.ts → axes/ContinuousAxisRange.test.d.ts} +0 -0
- /package/dist/src/app/charts/{timeRange.test.d.ts → axes/OrdinalAxisRange.test.d.ts} +0 -0
- /package/dist/src/app/charts/{RasterPlotTooltipContent.d.ts → tooltips/RasterPlotTooltipContent.d.ts} +0 -0
- /package/dist/src/app/charts/{ScatterPlotTooltipContent.d.ts → tooltips/ScatterPlotTooltipContent.d.ts} +0 -0
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { emptySeries, seriesFrom } from "./baseSeries";
|
|
2
|
+
describe('should be able to create an empty series', () => {
|
|
3
|
+
test('an empty series should be empty', () => {
|
|
4
|
+
expect(emptySeries('test1').isEmpty());
|
|
5
|
+
});
|
|
6
|
+
test('an empty series should not have a last element', () => {
|
|
7
|
+
expect(emptySeries('test1').last().failed);
|
|
8
|
+
});
|
|
9
|
+
test('an empty series should have 0 length', () => {
|
|
10
|
+
expect(emptySeries('test1').length()).toBe(0);
|
|
11
|
+
});
|
|
12
|
+
test('an empty series should not have any data', () => {
|
|
13
|
+
expect(emptySeries('test1').data.length).toBe(0);
|
|
14
|
+
});
|
|
15
|
+
test('an empty series should have the specified name', () => {
|
|
16
|
+
expect(emptySeries('test1').name).toBe('test1');
|
|
17
|
+
});
|
|
18
|
+
});
|
|
19
|
+
describe('should be able to create a series from data', () => {
|
|
20
|
+
const data = [
|
|
21
|
+
{ time: 1, value: 10 },
|
|
22
|
+
{ time: 2, value: 20 },
|
|
23
|
+
{ time: 3, value: 30 },
|
|
24
|
+
{ time: 4, value: 40 },
|
|
25
|
+
{ time: 5, value: 50 },
|
|
26
|
+
{ time: 6, value: 60 },
|
|
27
|
+
{ time: 7, value: 70 },
|
|
28
|
+
{ time: 8, value: 80 },
|
|
29
|
+
{ time: 9, value: 90 },
|
|
30
|
+
{ time: 10, value: 100 },
|
|
31
|
+
];
|
|
32
|
+
const series = seriesFrom('test2', data);
|
|
33
|
+
test('series should not be empty', () => {
|
|
34
|
+
expect(!series.isEmpty());
|
|
35
|
+
});
|
|
36
|
+
test('series name should be test2', () => {
|
|
37
|
+
expect(series.name).toEqual('test2');
|
|
38
|
+
});
|
|
39
|
+
test('series should have 10 points', () => {
|
|
40
|
+
expect(series.length()).toBe(10);
|
|
41
|
+
});
|
|
42
|
+
test('last value in series should be (10, 100)', () => {
|
|
43
|
+
const lastElement = series.last().getOrElse({ time: NaN, value: NaN });
|
|
44
|
+
expect(lastElement).toEqual({ time: 10, value: 100 });
|
|
45
|
+
});
|
|
46
|
+
test('series data should equal original data', () => {
|
|
47
|
+
expect(series.data).toEqual(data);
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
//# sourceMappingURL=datumSeries.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"datumSeries.test.js","sourceRoot":"","sources":["../../../../../src/app/charts/series/datumSeries.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { BaseSeries } from "./baseSeries";
|
|
2
|
+
/**
|
|
3
|
+
* An immutable datum object that holds the iterate `(f[n](x), f[n+1](x))` with an
|
|
4
|
+
* informational time
|
|
5
|
+
*/
|
|
6
|
+
export interface IterateDatum {
|
|
7
|
+
readonly time: number;
|
|
8
|
+
readonly iterateN: number;
|
|
9
|
+
readonly iterateN_1: number;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Creates an empty iterate datum
|
|
13
|
+
*/
|
|
14
|
+
export declare const emptyIterateDatum: IterateDatum;
|
|
15
|
+
/**
|
|
16
|
+
* Creates an iterate datum
|
|
17
|
+
* @param time The informational time
|
|
18
|
+
* @param iterateN The n-th iterate (i.e. `f[n](x)`)
|
|
19
|
+
* @param iterateN_1 The (n+1)-th iterate (i.e. `f[n+1](x)`)
|
|
20
|
+
* @return An iterate datum
|
|
21
|
+
*/
|
|
22
|
+
export declare const iterateDatumOf: (time: number, iterateN: number, iterateN_1: number) => IterateDatum;
|
|
23
|
+
/**
|
|
24
|
+
* Returns whether the iterate datum is considered empty. An iterate datum is considered
|
|
25
|
+
* empty when the time, `f[n](x)`, `f[n+1](x)` values are all `NaN`
|
|
26
|
+
* @param datum The iterate datum to test
|
|
27
|
+
* @return `true` if the iterate datum is empty; `false` otherwise
|
|
28
|
+
*/
|
|
29
|
+
export declare const nonEmptyIterateDatum: (datum: IterateDatum) => boolean;
|
|
30
|
+
/**
|
|
31
|
+
* A series of iterate (i.e. `(f[n](x), f[n+1](x))` pairs)
|
|
32
|
+
*/
|
|
33
|
+
export type IterateSeries = BaseSeries<IterateDatum>;
|
|
34
|
+
/**
|
|
35
|
+
* Creates a series from the name and the optional array of (x, y) pairs (tuples)
|
|
36
|
+
* @param name The name of the series
|
|
37
|
+
* @param data The optional array of (x, y) pairs (tuples)
|
|
38
|
+
* @return A `Series` for object that can be used by the `PoincarePlot`
|
|
39
|
+
* @see seriesFrom
|
|
40
|
+
* @see emptySeries
|
|
41
|
+
*/
|
|
42
|
+
export declare const iterateSeriesFromTuples: (name: string, data?: Array<[number, number, number]>) => IterateSeries;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { seriesFrom } from "./baseSeries";
|
|
2
|
+
/**
|
|
3
|
+
* Creates an empty iterate datum
|
|
4
|
+
*/
|
|
5
|
+
export const emptyIterateDatum = { time: NaN, iterateN: NaN, iterateN_1: NaN };
|
|
6
|
+
/**
|
|
7
|
+
* Creates an iterate datum
|
|
8
|
+
* @param time The informational time
|
|
9
|
+
* @param iterateN The n-th iterate (i.e. `f[n](x)`)
|
|
10
|
+
* @param iterateN_1 The (n+1)-th iterate (i.e. `f[n+1](x)`)
|
|
11
|
+
* @return An iterate datum
|
|
12
|
+
*/
|
|
13
|
+
export const iterateDatumOf = (time, iterateN, iterateN_1) => ({
|
|
14
|
+
time,
|
|
15
|
+
iterateN,
|
|
16
|
+
iterateN_1
|
|
17
|
+
});
|
|
18
|
+
/**
|
|
19
|
+
* Returns whether the iterate datum is considered empty. An iterate datum is considered
|
|
20
|
+
* empty when the time, `f[n](x)`, `f[n+1](x)` values are all `NaN`
|
|
21
|
+
* @param datum The iterate datum to test
|
|
22
|
+
* @return `true` if the iterate datum is empty; `false` otherwise
|
|
23
|
+
*/
|
|
24
|
+
export const nonEmptyIterateDatum = (datum) => !isNaN(datum.time) && !isNaN(datum.iterateN) && !isNaN(datum.iterateN_1);
|
|
25
|
+
/**
|
|
26
|
+
* Creates a series from the name and the optional array of (x, y) pairs (tuples)
|
|
27
|
+
* @param name The name of the series
|
|
28
|
+
* @param data The optional array of (x, y) pairs (tuples)
|
|
29
|
+
* @return A `Series` for object that can be used by the `PoincarePlot`
|
|
30
|
+
* @see seriesFrom
|
|
31
|
+
* @see emptySeries
|
|
32
|
+
*/
|
|
33
|
+
export const iterateSeriesFromTuples = (name, data = []) => seriesFrom(name, data.map(([t, fn, fn_1]) => iterateDatumOf(t, fn, fn_1)));
|
|
34
|
+
//# sourceMappingURL=iterateSeries.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iterateSeries.js","sourceRoot":"","sources":["../../../../../src/app/charts/series/iterateSeries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,UAAU,EAAC,MAAM,cAAc,CAAC;AAYpD;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAiB,EAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAC,CAAA;AAE1F;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,IAAY,EAAE,QAAgB,EAAE,UAAkB,EAAgB,EAAE,CAAC,CAAC;IACjG,IAAI;IACJ,QAAQ;IACR,UAAU;CACb,CAAC,CAAA;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,KAAmB,EAAW,EAAE,CACjE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;AAO5E;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,IAAY,EAAE,OAAwC,EAAE,EAAiB,EAAE,CAC/G,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { BaseSeries } from "./baseSeries";
|
|
2
|
+
import { OrdinalChartData, OrdinalStats } from "../observables/ordinals";
|
|
3
|
+
/**
|
|
4
|
+
* An immutable datum object for series with a category and value.
|
|
5
|
+
* This could be a series of (ordinal, value) where the category runs
|
|
6
|
+
* along the x-axis. Or, it could be a series of (value, ordinal) where
|
|
7
|
+
* the categories run along the y-axis.
|
|
8
|
+
*/
|
|
9
|
+
export interface OrdinalDatum {
|
|
10
|
+
readonly time: number;
|
|
11
|
+
readonly ordinal: string;
|
|
12
|
+
readonly value: number;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Creates an empty ordinal datum
|
|
16
|
+
*/
|
|
17
|
+
export declare const emptyOrdinalDatum: OrdinalDatum;
|
|
18
|
+
export declare const copyOrdinalDatum: (datum: OrdinalDatum) => OrdinalDatum;
|
|
19
|
+
/**
|
|
20
|
+
* Creates an iterate datum
|
|
21
|
+
* @param time The datum time, which is mostly informational
|
|
22
|
+
* @param ordinal The category name or identifier
|
|
23
|
+
* @param value The value
|
|
24
|
+
* @return An iterate datum
|
|
25
|
+
*/
|
|
26
|
+
export declare const ordinalDatumOf: (time: number, ordinal: string, value: number) => OrdinalDatum;
|
|
27
|
+
/**
|
|
28
|
+
* Returns whether the ordinal datum is empty. An ordinal datum is considered empty
|
|
29
|
+
* when the time is NaN, the ordinal is blank (empty or only whitespace), and the value
|
|
30
|
+
* is NaN.
|
|
31
|
+
* @param datum The iterate datum to test
|
|
32
|
+
* @return `true` if the iterate datum is empty; `false` otherwise
|
|
33
|
+
*/
|
|
34
|
+
export declare const nonEmptyOrdinalDatum: (datum: OrdinalDatum) => boolean;
|
|
35
|
+
/**
|
|
36
|
+
* A series of ordinal datum
|
|
37
|
+
*/
|
|
38
|
+
export type OrdinalSeries = BaseSeries<OrdinalDatum>;
|
|
39
|
+
/**
|
|
40
|
+
* Creates a series from the name and the optional array of (time, ordinal, value) tuples
|
|
41
|
+
* @param name The name of the series
|
|
42
|
+
* @param data The optional array of (time, ordinal, value) tuples
|
|
43
|
+
* @return An {@link OrdinalSeries} for charts where one axis is the category, and the other a value
|
|
44
|
+
* @see seriesFrom
|
|
45
|
+
* @see emptySeries
|
|
46
|
+
*/
|
|
47
|
+
export declare function ordinateSeriesFromTuples(name: string, data?: Array<[time: number, ordinal: string, value: number]>): OrdinalSeries;
|
|
48
|
+
/**
|
|
49
|
+
* Creates an empty chart data object with all the values set to 0
|
|
50
|
+
* @param seriesList The list of series names (identifiers) to update
|
|
51
|
+
* @return An empty chart data object
|
|
52
|
+
*/
|
|
53
|
+
export declare function initialOrdinalChartData(seriesList: Array<OrdinalSeries>): OrdinalChartData;
|
|
54
|
+
export declare function calculateOrdinalStats(seriesList: Array<OrdinalSeries>): OrdinalStats;
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { seriesFrom } from "./baseSeries";
|
|
2
|
+
import { initialMaxTimeDatum, initialMaxValueDatum, initialMinTimeDatum, initialMinValueDatum } from "../observables/ordinals";
|
|
3
|
+
/**
|
|
4
|
+
* Creates an empty ordinal datum
|
|
5
|
+
*/
|
|
6
|
+
export const emptyOrdinalDatum = {
|
|
7
|
+
time: NaN,
|
|
8
|
+
ordinal: "",
|
|
9
|
+
value: NaN,
|
|
10
|
+
};
|
|
11
|
+
export const copyOrdinalDatum = (datum) => ({
|
|
12
|
+
time: datum.time,
|
|
13
|
+
ordinal: datum.ordinal,
|
|
14
|
+
value: datum.value,
|
|
15
|
+
});
|
|
16
|
+
/**
|
|
17
|
+
* Creates an iterate datum
|
|
18
|
+
* @param time The datum time, which is mostly informational
|
|
19
|
+
* @param ordinal The category name or identifier
|
|
20
|
+
* @param value The value
|
|
21
|
+
* @return An iterate datum
|
|
22
|
+
*/
|
|
23
|
+
export const ordinalDatumOf = (time, ordinal, value) => ({
|
|
24
|
+
time,
|
|
25
|
+
ordinal,
|
|
26
|
+
value,
|
|
27
|
+
});
|
|
28
|
+
/**
|
|
29
|
+
* Returns whether the ordinal datum is empty. An ordinal datum is considered empty
|
|
30
|
+
* when the time is NaN, the ordinal is blank (empty or only whitespace), and the value
|
|
31
|
+
* is NaN.
|
|
32
|
+
* @param datum The iterate datum to test
|
|
33
|
+
* @return `true` if the iterate datum is empty; `false` otherwise
|
|
34
|
+
*/
|
|
35
|
+
export const nonEmptyOrdinalDatum = (datum) => !isNaN(datum.time) && datum.ordinal.replace(/\s/g, "").length > 0 && !isNaN(datum.value);
|
|
36
|
+
/**
|
|
37
|
+
* Creates a series from the name and the optional array of (time, ordinal, value) tuples
|
|
38
|
+
* @param name The name of the series
|
|
39
|
+
* @param data The optional array of (time, ordinal, value) tuples
|
|
40
|
+
* @return An {@link OrdinalSeries} for charts where one axis is the category, and the other a value
|
|
41
|
+
* @see seriesFrom
|
|
42
|
+
* @see emptySeries
|
|
43
|
+
*/
|
|
44
|
+
export function ordinateSeriesFromTuples(name, data = []) {
|
|
45
|
+
return seriesFrom(name, data.map(([t, ordinal, value]) => ordinalDatumOf(t, ordinal, value)));
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Creates an empty chart data object with all the values set to 0
|
|
49
|
+
* @param seriesList The list of series names (identifiers) to update
|
|
50
|
+
* @return An empty chart data object
|
|
51
|
+
*/
|
|
52
|
+
export function initialOrdinalChartData(seriesList) {
|
|
53
|
+
return {
|
|
54
|
+
seriesNames: new Set(seriesList.map(series => series.name)),
|
|
55
|
+
stats: calculateOrdinalStats(seriesList),
|
|
56
|
+
newPoints: new Map(seriesList.map(series => [
|
|
57
|
+
series.name,
|
|
58
|
+
series.data.map(datum => ({
|
|
59
|
+
time: datum.time,
|
|
60
|
+
ordinal: datum.ordinal,
|
|
61
|
+
value: datum.value,
|
|
62
|
+
}))
|
|
63
|
+
]))
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
export function calculateOrdinalStats(seriesList) {
|
|
67
|
+
const ordinalValueStats = new Map(seriesList.map((series) => {
|
|
68
|
+
const seriesMin = series.data.reduce((min, datum) => datum.value < min.value ? datum : min, initialMinValueDatum());
|
|
69
|
+
const seriesMax = series.data.reduce((max, datum) => datum.value > max.value ? datum : max, initialMaxValueDatum());
|
|
70
|
+
const seriesSum = series.data.reduce((sum, datum) => sum + datum.value, 0);
|
|
71
|
+
const seriesSumSquared = series.data.reduce((sumSquared, datum) => sumSquared + datum.value * datum.value, 0);
|
|
72
|
+
const seriesMean = series.data.length > 0 ? seriesSum / series.data.length : NaN;
|
|
73
|
+
return [series.name, {
|
|
74
|
+
max: seriesMax,
|
|
75
|
+
min: seriesMin,
|
|
76
|
+
count: series.data.length,
|
|
77
|
+
sum: seriesSum,
|
|
78
|
+
sumSquared: seriesSumSquared,
|
|
79
|
+
mean: seriesMean,
|
|
80
|
+
}];
|
|
81
|
+
}));
|
|
82
|
+
const minValueDatum = Array.from(ordinalValueStats.values()).reduce((min, value) => value.min.value < min.value ? value.min : min, initialMinValueDatum());
|
|
83
|
+
const maxValueDatum = Array.from(ordinalValueStats.values()).reduce((max, value) => value.max.value > max.value ? value.max : max, initialMaxValueDatum());
|
|
84
|
+
const minTimeDatum = seriesList.reduce((globalMin, series) => {
|
|
85
|
+
const seriesMin = series.data.reduce((min, datum) => datum.value < min.value ? datum : min, globalMin);
|
|
86
|
+
return seriesMin.value < globalMin.value ? seriesMin : globalMin;
|
|
87
|
+
}, initialMinTimeDatum());
|
|
88
|
+
const maxTimeDatum = seriesList.reduce((globalMax, series) => {
|
|
89
|
+
const seriesMax = series.data.reduce((max, datum) => datum.value > max.value ? datum : max, globalMax);
|
|
90
|
+
return seriesMax.value > globalMax.value ? seriesMax : globalMax;
|
|
91
|
+
}, initialMaxTimeDatum());
|
|
92
|
+
return {
|
|
93
|
+
maxDatum: { time: maxTimeDatum, value: maxValueDatum },
|
|
94
|
+
minDatum: { time: minTimeDatum, value: minValueDatum },
|
|
95
|
+
valueStatsForSeries: ordinalValueStats
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=ordinalSeries.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ordinalSeries.js","sourceRoot":"","sources":["../../../../../src/app/charts/series/ordinalSeries.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { BaseSeries } from "./baseSeries";
|
|
2
|
+
/**
|
|
3
|
+
* An immutable datum object that holds the spike (time, value) representing a neuron spike
|
|
4
|
+
*/
|
|
5
|
+
export interface Datum {
|
|
6
|
+
readonly time: number;
|
|
7
|
+
readonly value: number;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Creates a datum from a (time, value) pair
|
|
11
|
+
* @param time The time
|
|
12
|
+
* @param value The value
|
|
13
|
+
* @return A {@link Datum} instance with the specified (time, value)
|
|
14
|
+
*/
|
|
15
|
+
export declare const datumOf: (time: number, value: number) => Datum;
|
|
16
|
+
export declare const emptyDatum: () => Datum;
|
|
17
|
+
export type TimeSeries = BaseSeries<Datum>;
|
|
18
|
+
/**
|
|
19
|
+
* Creates a series from the name and the optional array of (x, y) pairs (tuples)
|
|
20
|
+
* @param name The name of the series
|
|
21
|
+
* @param data The optional array of (x, y) pairs (tuples)
|
|
22
|
+
* @return A `Series` for object that can be used by the `RasterChart`
|
|
23
|
+
* @see seriesFrom
|
|
24
|
+
* @see emptySeries
|
|
25
|
+
*/
|
|
26
|
+
export declare const timeSeriesFromTuples: (name: string, data?: Array<[number, number]>) => TimeSeries;
|
|
27
|
+
export interface PixelDatum extends Datum {
|
|
28
|
+
x: number;
|
|
29
|
+
y: number;
|
|
30
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { seriesFrom } from "./baseSeries";
|
|
2
|
+
/**
|
|
3
|
+
* Creates a datum from a (time, value) pair
|
|
4
|
+
* @param time The time
|
|
5
|
+
* @param value The value
|
|
6
|
+
* @return A {@link Datum} instance with the specified (time, value)
|
|
7
|
+
*/
|
|
8
|
+
export const datumOf = (time, value) => ({ time, value });
|
|
9
|
+
export const emptyDatum = () => ({ time: NaN, value: NaN });
|
|
10
|
+
/**
|
|
11
|
+
* Creates a series from the name and the optional array of (x, y) pairs (tuples)
|
|
12
|
+
* @param name The name of the series
|
|
13
|
+
* @param data The optional array of (x, y) pairs (tuples)
|
|
14
|
+
* @return A `Series` for object that can be used by the `RasterChart`
|
|
15
|
+
* @see seriesFrom
|
|
16
|
+
* @see emptySeries
|
|
17
|
+
*/
|
|
18
|
+
export const timeSeriesFromTuples = (name, data = []) => seriesFrom(name, data.map(([t, y]) => datumOf(t, y)));
|
|
19
|
+
//# sourceMappingURL=timeSeries.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timeSeries.js","sourceRoot":"","sources":["../../../../../src/app/charts/series/timeSeries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,UAAU,EAAC,MAAM,cAAc,CAAC;AAUpD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,IAAY,EAAE,KAAa,EAAS,EAAE,CAAC,CAAC,EAAC,IAAI,EAAE,KAAK,EAAC,CAAC,CAAA;AAE9E,MAAM,CAAC,MAAM,UAAU,GAAG,GAAU,EAAE,CAAC,CAAC,EAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAC,CAAC,CAAA;AAKhE;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,IAAY,EAAE,OAAgC,EAAE,EAAc,EAAE,CACjG,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { Datum,
|
|
1
|
+
import { Datum, TimeSeries } from "./timeSeries";
|
|
2
|
+
import { ChartData } from "../observables/ChartData";
|
|
2
3
|
/**
|
|
3
|
-
* The spike-chart data produced by the rxjs observable that is pushed to
|
|
4
|
+
* The spike-chart data produced by the rxjs observable that is pushed to a streaming chart
|
|
4
5
|
*/
|
|
5
|
-
export interface ChartData {
|
|
6
|
+
export interface TimeSeriesChartData extends ChartData {
|
|
6
7
|
/**
|
|
7
8
|
* The max (latest) time for the data in the newPoints map
|
|
8
9
|
*/
|
|
@@ -16,17 +17,21 @@ export interface ChartData {
|
|
|
16
17
|
* data points for that time-series (`map(series_name -> array(datum))`)
|
|
17
18
|
*/
|
|
18
19
|
newPoints: Map<string, Array<Datum>>;
|
|
20
|
+
/**
|
|
21
|
+
* The current time (for example, when used with cadence)
|
|
22
|
+
*/
|
|
19
23
|
currentTime?: number;
|
|
20
24
|
}
|
|
21
25
|
/**
|
|
22
26
|
* Creates an empty chart data object with all the values set to 0
|
|
23
27
|
* @param {Array<string>} series The list of series names (identifiers) to update
|
|
24
|
-
* @return {
|
|
28
|
+
* @return {TimeSeriesChartData} An empty chart data object
|
|
25
29
|
*/
|
|
26
|
-
export declare function
|
|
30
|
+
export declare function emptyTimeSeriesChartData(series: Array<string>): TimeSeriesChartData;
|
|
27
31
|
/**
|
|
28
32
|
* Creates an empty chart data object with all the values set to 0
|
|
29
33
|
* @param seriesList The list of series names (identifiers) to update
|
|
34
|
+
* @param [currentTime=0] The current time
|
|
30
35
|
* @return An empty chart data object
|
|
31
36
|
*/
|
|
32
|
-
export declare function
|
|
37
|
+
export declare function initialTimeSeriesChartData(seriesList: Array<TimeSeries>, currentTime?: number): TimeSeriesChartData;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { defaultChartData } from "../observables/ChartData";
|
|
2
|
+
/**
|
|
3
|
+
* Creates an empty chart data object with all the values set to 0
|
|
4
|
+
* @param {Array<string>} series The list of series names (identifiers) to update
|
|
5
|
+
* @return {TimeSeriesChartData} An empty chart data object
|
|
6
|
+
*/
|
|
7
|
+
export function emptyTimeSeriesChartData(series) {
|
|
8
|
+
return Object.assign(Object.assign({}, defaultChartData()), { maxTime: 0, maxTimes: new Map(series.map(name => [name, 0])), newPoints: new Map(series.map(name => [name, [{ time: 0, value: 0 }]])) });
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Creates an empty chart data object with all the values set to 0
|
|
12
|
+
* @param seriesList The list of series names (identifiers) to update
|
|
13
|
+
* @param [currentTime=0] The current time
|
|
14
|
+
* @return An empty chart data object
|
|
15
|
+
*/
|
|
16
|
+
export function initialTimeSeriesChartData(seriesList, currentTime = 0) {
|
|
17
|
+
const maxTime = seriesList.reduce((tMax, series) => Math.max(tMax, series.last().map(datum => datum.time).getOrElse(-Infinity)), -Infinity);
|
|
18
|
+
return {
|
|
19
|
+
seriesNames: new Set(seriesList.map(series => series.name)),
|
|
20
|
+
maxTime,
|
|
21
|
+
maxTimes: new Map(seriesList.map(series => [series.name, series.last().map(datum => datum.time).getOrElse(0)])),
|
|
22
|
+
newPoints: new Map(seriesList.map(series => [
|
|
23
|
+
series.name,
|
|
24
|
+
[{
|
|
25
|
+
time: series.last().map(datum => datum.time).getOrElse(0),
|
|
26
|
+
value: series.last().map(datum => datum.value).getOrElse(0)
|
|
27
|
+
}]
|
|
28
|
+
])),
|
|
29
|
+
currentTime: currentTime
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=timeSeriesChartData.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timeSeriesChartData.js","sourceRoot":"","sources":["../../../../../src/app/charts/series/timeSeriesChartData.ts"],"names":[],"mappings":"AACA,OAAO,EAAY,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AA4BrE;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CAAC,MAAqB;IAC1D,uCACO,gBAAgB,EAAE,KACrB,OAAO,EAAE,CAAC,EACV,QAAQ,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAChD,SAAS,EAAE,IAAI,GAAG,CAAuB,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,EAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,IAC9F;AACL,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,0BAA0B,CAAC,UAA6B,EAAE,cAAsB,CAAC;IAC7F,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAC7B,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,EAC7F,CAAC,QAAQ,CACZ,CAAA;IACD,OAAO;QACH,WAAW,EAAE,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC3D,OAAO;QACP,QAAQ,EAAE,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/G,SAAS,EAAE,IAAI,GAAG,CAAuB,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9D,MAAM,CAAC,IAAI;YACX,CAAC;oBACG,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;oBACzD,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;iBAC9D,CAAC;SACL,CAAC,CAAC;QACH,WAAW,EAAE,WAAW;KAC3B,CAAA;AACL,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { SeriesStyle } from "../axes/axes";
|
|
2
|
+
import { SvgFillStyle, SvgStrokeStyle } from "./svgStyle";
|
|
3
|
+
export interface BarSeriesStyle extends SeriesStyle {
|
|
4
|
+
/**
|
|
5
|
+
* The bar style for the lifetime min/max range bar. The style is for the width, fill,
|
|
6
|
+
* and stroke.
|
|
7
|
+
*/
|
|
8
|
+
minMaxBar: BarStyle;
|
|
9
|
+
/**
|
|
10
|
+
* The bar style for the windowed min/max range bar. The style is for the width, fill,
|
|
11
|
+
* and stroke.
|
|
12
|
+
*/
|
|
13
|
+
windowedMinMaxBar: BarStyle;
|
|
14
|
+
/**
|
|
15
|
+
* The line style for the current value.
|
|
16
|
+
*/
|
|
17
|
+
valueLine: LineStyle;
|
|
18
|
+
/**
|
|
19
|
+
* The line style for the mean value.
|
|
20
|
+
*/
|
|
21
|
+
meanValueLine: LineStyle;
|
|
22
|
+
/**
|
|
23
|
+
* The line style for the windowed-mean value.
|
|
24
|
+
*/
|
|
25
|
+
windowedMeanValueLine: LineStyle;
|
|
26
|
+
}
|
|
27
|
+
export interface BarStyle {
|
|
28
|
+
widthFraction: number;
|
|
29
|
+
fill: SvgFillStyle;
|
|
30
|
+
stroke: SvgStrokeStyle;
|
|
31
|
+
}
|
|
32
|
+
export interface LineStyle {
|
|
33
|
+
regular: SvgStrokeStyle;
|
|
34
|
+
highlight: SvgStrokeStyle;
|
|
35
|
+
}
|
|
36
|
+
export declare function defaultMinMaxBarStyle(color?: string): BarStyle;
|
|
37
|
+
export declare function defaultWindowedMinMaxBarStyle(color?: string): BarStyle;
|
|
38
|
+
export declare function defaultValueLineStyle(color?: string): LineStyle;
|
|
39
|
+
export declare function defaultMeanValueLineStyle(color?: string): LineStyle;
|
|
40
|
+
export declare function defaultWindowedMeanValueLineStyle(color?: string): LineStyle;
|
|
41
|
+
export declare function defaultBarSeriesStyle(color?: string): BarSeriesStyle;
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import * as d3 from "d3";
|
|
2
|
+
export function defaultMinMaxBarStyle(color = "#008aad") {
|
|
3
|
+
return {
|
|
4
|
+
widthFraction: 0.65,
|
|
5
|
+
fill: {
|
|
6
|
+
color,
|
|
7
|
+
opacity: 0.4
|
|
8
|
+
},
|
|
9
|
+
stroke: {
|
|
10
|
+
width: 1,
|
|
11
|
+
opacity: 0.6,
|
|
12
|
+
color,
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
export function defaultWindowedMinMaxBarStyle(color = "#008aad") {
|
|
17
|
+
var _a, _b, _c, _d;
|
|
18
|
+
return {
|
|
19
|
+
widthFraction: 0.25,
|
|
20
|
+
fill: {
|
|
21
|
+
color: (_b = (_a = d3.color(color)) === null || _a === void 0 ? void 0 : _a.darker(0.3).toString()) !== null && _b !== void 0 ? _b : color,
|
|
22
|
+
opacity: 0.6
|
|
23
|
+
},
|
|
24
|
+
stroke: {
|
|
25
|
+
width: 0,
|
|
26
|
+
opacity: 0,
|
|
27
|
+
color: (_d = (_c = d3.color(color)) === null || _c === void 0 ? void 0 : _c.darker(0.3).toString()) !== null && _d !== void 0 ? _d : color,
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
export function defaultValueLineStyle(color = "#008aad") {
|
|
32
|
+
return {
|
|
33
|
+
regular: {
|
|
34
|
+
color,
|
|
35
|
+
opacity: 0.6,
|
|
36
|
+
width: 3
|
|
37
|
+
},
|
|
38
|
+
highlight: {
|
|
39
|
+
color,
|
|
40
|
+
opacity: 1,
|
|
41
|
+
width: 5
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
export function defaultMeanValueLineStyle(color = "#008aad") {
|
|
46
|
+
return {
|
|
47
|
+
regular: {
|
|
48
|
+
color,
|
|
49
|
+
opacity: 0.6,
|
|
50
|
+
width: 1
|
|
51
|
+
},
|
|
52
|
+
highlight: {
|
|
53
|
+
color,
|
|
54
|
+
opacity: 1,
|
|
55
|
+
width: 3
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
export function defaultWindowedMeanValueLineStyle(color = "#008aad") {
|
|
60
|
+
return {
|
|
61
|
+
regular: {
|
|
62
|
+
color: 'red',
|
|
63
|
+
opacity: 0.6,
|
|
64
|
+
width: 1
|
|
65
|
+
},
|
|
66
|
+
highlight: {
|
|
67
|
+
color: 'red',
|
|
68
|
+
opacity: 1,
|
|
69
|
+
width: 3
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
export function defaultBarSeriesStyle(color = "#008aad") {
|
|
74
|
+
return {
|
|
75
|
+
color,
|
|
76
|
+
highlightColor: color,
|
|
77
|
+
minMaxBar: defaultMinMaxBarStyle(color),
|
|
78
|
+
windowedMinMaxBar: defaultWindowedMinMaxBarStyle(color),
|
|
79
|
+
valueLine: defaultValueLineStyle(color),
|
|
80
|
+
meanValueLine: defaultMeanValueLineStyle(color),
|
|
81
|
+
windowedMeanValueLine: defaultWindowedMeanValueLineStyle(color),
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=barPlotStyle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"barPlotStyle.js","sourceRoot":"","sources":["../../../../../src/app/charts/styling/barPlotStyle.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAsCzB,MAAM,UAAU,qBAAqB,CAAC,QAAgB,SAAS;IAC3D,OAAO;QACH,aAAa,EAAE,IAAI;QACnB,IAAI,EAAE;YACF,KAAK;YACL,OAAO,EAAE,GAAG;SACf;QACD,MAAM,EAAE;YACJ,KAAK,EAAE,CAAC;YACR,OAAO,EAAE,GAAG;YACZ,KAAK;SACR;KACJ,CAAA;AACL,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,QAAgB,SAAS;;IACnE,OAAO;QACH,aAAa,EAAE,IAAI;QACnB,IAAI,EAAE;YACF,KAAK,EAAE,MAAA,MAAA,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,0CAAE,MAAM,CAAC,GAAG,EAAE,QAAQ,EAAE,mCAAI,KAAK;YACvD,OAAO,EAAE,GAAG;SACf;QACD,MAAM,EAAE;YACJ,KAAK,EAAE,CAAC;YACR,OAAO,EAAE,CAAC;YACV,KAAK,EAAE,MAAA,MAAA,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,0CAAE,MAAM,CAAC,GAAG,EAAE,QAAQ,EAAE,mCAAI,KAAK;SAC1D;KACJ,CAAA;AACL,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,QAAgB,SAAS;IAC3D,OAAO;QACH,OAAO,EAAE;YACL,KAAK;YACL,OAAO,EAAE,GAAG;YACZ,KAAK,EAAE,CAAC;SACX;QACD,SAAS,EAAE;YACP,KAAK;YACL,OAAO,EAAE,CAAC;YACV,KAAK,EAAE,CAAC;SACX;KACJ,CAAA;AACL,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,QAAgB,SAAS;IAC/D,OAAO;QACH,OAAO,EAAE;YACL,KAAK;YACL,OAAO,EAAE,GAAG;YACZ,KAAK,EAAE,CAAC;SACX;QACD,SAAS,EAAE;YACP,KAAK;YACL,OAAO,EAAE,CAAC;YACV,KAAK,EAAE,CAAC;SACX;KACJ,CAAA;AACL,CAAC;AAED,MAAM,UAAU,iCAAiC,CAAC,QAAgB,SAAS;IACvE,OAAO;QACH,OAAO,EAAE;YACL,KAAK,EAAE,KAAK;YACZ,OAAO,EAAE,GAAG;YACZ,KAAK,EAAE,CAAC;SACX;QACD,SAAS,EAAE;YACP,KAAK,EAAE,KAAK;YACZ,OAAO,EAAE,CAAC;YACV,KAAK,EAAE,CAAC;SACX;KACJ,CAAA;AACL,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,QAAgB,SAAS;IAC3D,OAAO;QACH,KAAK;QACL,cAAc,EAAE,KAAK;QACrB,SAAS,EAAE,qBAAqB,CAAC,KAAK,CAAC;QACvC,iBAAiB,EAAE,6BAA6B,CAAC,KAAK,CAAC;QACvD,SAAS,EAAE,qBAAqB,CAAC,KAAK,CAAC;QACvC,aAAa,EAAE,yBAAyB,CAAC,KAAK,CAAC;QAC/C,qBAAqB,EAAE,iCAAiC,CAAC,KAAK,CAAC;KAClE,CAAA;AACL,CAAC"}
|
|
@@ -9,12 +9,12 @@ export interface Margin {
|
|
|
9
9
|
}
|
|
10
10
|
export declare function noMargins(): Margin;
|
|
11
11
|
export interface Dimensions {
|
|
12
|
-
width: number;
|
|
13
|
-
height: number;
|
|
12
|
+
readonly width: number;
|
|
13
|
+
readonly height: number;
|
|
14
14
|
}
|
|
15
15
|
/**
|
|
16
16
|
* Given the dimensions of the plot (width, height) based on the container's width and height,
|
|
17
|
-
* and the
|
|
17
|
+
* and the plot's margins. Calculates the dimensions of the actual plot by subtracting the margins.
|
|
18
18
|
* @param containerWidth The overall width of the container (plot and margins)
|
|
19
19
|
* @param containerHeight The overall height of the container (plot and margins)
|
|
20
20
|
* @param plotMargins The margins around the plot (top, bottom, left, right)
|
|
@@ -22,7 +22,7 @@ export interface Dimensions {
|
|
|
22
22
|
* from the overall dimensions
|
|
23
23
|
* @see containerDimensionsFrom
|
|
24
24
|
*/
|
|
25
|
-
export declare
|
|
25
|
+
export declare function plotDimensionsFrom(containerWidth: number, containerHeight: number, plotMargins: Margin): Dimensions;
|
|
26
26
|
/**
|
|
27
27
|
* Calculates the container's dimensions from the plot dimensions and the plot margin. The container
|
|
28
28
|
* dimensions are the plot dimensions plus the margins.
|
|
@@ -31,4 +31,6 @@ export declare const plotDimensionsFrom: (containerWidth: number, containerHeigh
|
|
|
31
31
|
* @return The container dimensions.
|
|
32
32
|
* @see plotDimensionsFrom
|
|
33
33
|
*/
|
|
34
|
-
export declare
|
|
34
|
+
export declare function containerDimensionsFrom(plotDimensions: Dimensions, plotMargin: Margin): Dimensions;
|
|
35
|
+
export declare function dimensionsEqual(dimension1: Dimensions, dimension2: Dimensions): boolean;
|
|
36
|
+
export declare function dimensionsNotEqual(dimension1: Dimensions, dimension2: Dimensions): boolean;
|
|
@@ -3,7 +3,7 @@ export function noMargins() {
|
|
|
3
3
|
}
|
|
4
4
|
/**
|
|
5
5
|
* Given the dimensions of the plot (width, height) based on the container's width and height,
|
|
6
|
-
* and the
|
|
6
|
+
* and the plot's margins. Calculates the dimensions of the actual plot by subtracting the margins.
|
|
7
7
|
* @param containerWidth The overall width of the container (plot and margins)
|
|
8
8
|
* @param containerHeight The overall height of the container (plot and margins)
|
|
9
9
|
* @param plotMargins The margins around the plot (top, bottom, left, right)
|
|
@@ -11,10 +11,12 @@ export function noMargins() {
|
|
|
11
11
|
* from the overall dimensions
|
|
12
12
|
* @see containerDimensionsFrom
|
|
13
13
|
*/
|
|
14
|
-
export
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
14
|
+
export function plotDimensionsFrom(containerWidth, containerHeight, plotMargins) {
|
|
15
|
+
return {
|
|
16
|
+
width: containerWidth - plotMargins.left - plotMargins.right,
|
|
17
|
+
height: containerHeight - plotMargins.top - plotMargins.bottom
|
|
18
|
+
};
|
|
19
|
+
}
|
|
18
20
|
/**
|
|
19
21
|
* Calculates the container's dimensions from the plot dimensions and the plot margin. The container
|
|
20
22
|
* dimensions are the plot dimensions plus the margins.
|
|
@@ -23,8 +25,16 @@ export var plotDimensionsFrom = function (containerWidth, containerHeight, plotM
|
|
|
23
25
|
* @return The container dimensions.
|
|
24
26
|
* @see plotDimensionsFrom
|
|
25
27
|
*/
|
|
26
|
-
export
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
28
|
+
export function containerDimensionsFrom(plotDimensions, plotMargin) {
|
|
29
|
+
return {
|
|
30
|
+
width: plotDimensions.width + plotMargin.left + plotMargin.right,
|
|
31
|
+
height: plotDimensions.height + plotMargin.top + plotMargin.bottom
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
export function dimensionsEqual(dimension1, dimension2) {
|
|
35
|
+
return dimension1.height === dimension2.height && dimension1.width === dimension2.width;
|
|
36
|
+
}
|
|
37
|
+
export function dimensionsNotEqual(dimension1, dimension2) {
|
|
38
|
+
return !dimensionsEqual(dimension1, dimension2);
|
|
39
|
+
}
|
|
30
40
|
//# sourceMappingURL=margins.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"margins.js","sourceRoot":"","sources":["../../../../../src/app/charts/styling/margins.ts"],"names":[],"mappings":"AAUA,MAAM,UAAU,SAAS;IACrB,OAAO,EAAC,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAC,CAAA;AACjD,CAAC;AAOD;;;;;;;;;GASG;AACH,MAAM,UAAU,kBAAkB,CAAC,cAAsB,EAAE,eAAuB,EAAE,WAAmB;IACnG,OAAO;QACH,KAAK,EAAE,cAAc,GAAG,WAAW,CAAC,IAAI,GAAG,WAAW,CAAC,KAAK;QAC5D,MAAM,EAAE,eAAe,GAAG,WAAW,CAAC,GAAG,GAAG,WAAW,CAAC,MAAM;KACjE,CAAA;AACL,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,uBAAuB,CAAC,cAA0B,EAAE,UAAkB;IAClF,OAAO;QACH,KAAK,EAAE,cAAc,CAAC,KAAK,GAAG,UAAU,CAAC,IAAI,GAAG,UAAU,CAAC,KAAK;QAChE,MAAM,EAAE,cAAc,CAAC,MAAM,GAAG,UAAU,CAAC,GAAG,GAAG,UAAU,CAAC,MAAM;KACrE,CAAA;AACL,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,UAAsB,EAAE,UAAsB;IAC1E,OAAO,UAAU,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM,IAAI,UAAU,CAAC,KAAK,KAAK,UAAU,CAAC,KAAK,CAAA;AAC3F,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,UAAsB,EAAE,UAAsB;IAC7E,OAAO,CAAC,eAAe,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA;AACnD,CAAC"}
|