@elliemae/ds-dataviz 3.10.3 → 3.11.0-next.2
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/cjs/graphs/Chart/Chart.js.map +2 -2
- package/dist/cjs/graphs/Chart/ChartContext.js.map +1 -1
- package/dist/cjs/graphs/Chart/DataTestIds.js +36 -0
- package/dist/cjs/graphs/Chart/DataTestIds.js.map +7 -0
- package/dist/cjs/graphs/Chart/config/useChart.js +73 -36
- package/dist/cjs/graphs/Chart/config/useChart.js.map +2 -2
- package/dist/cjs/graphs/Chart/config/useGetters.js +5 -4
- package/dist/cjs/graphs/Chart/config/useGetters.js.map +2 -2
- package/dist/cjs/graphs/Chart/config/useInternalMargins.js +8 -3
- package/dist/cjs/graphs/Chart/config/useInternalMargins.js.map +2 -2
- package/dist/cjs/graphs/Chart/config/useKeyboardNavigation.js +2 -2
- package/dist/cjs/graphs/Chart/config/useKeyboardNavigation.js.map +2 -2
- package/dist/cjs/graphs/Chart/config/useScales.js +1 -2
- package/dist/cjs/graphs/Chart/config/useScales.js.map +2 -2
- package/dist/cjs/graphs/Chart/helpers/index.js +1 -1
- package/dist/cjs/graphs/Chart/helpers/index.js.map +2 -2
- package/dist/cjs/graphs/Chart/helpers/useUniqueData.js +8 -15
- package/dist/cjs/graphs/Chart/helpers/useUniqueData.js.map +2 -2
- package/dist/cjs/graphs/Chart/parts/Axis/Axes.js +2 -4
- package/dist/cjs/graphs/Chart/parts/Axis/Axes.js.map +2 -2
- package/dist/cjs/graphs/Chart/parts/Axis/AxisBottom.js +5 -3
- package/dist/cjs/graphs/Chart/parts/Axis/AxisBottom.js.map +2 -2
- package/dist/cjs/graphs/Chart/parts/Axis/AxisLeft.js +4 -1
- package/dist/cjs/graphs/Chart/parts/Axis/AxisLeft.js.map +2 -2
- package/dist/cjs/graphs/Chart/parts/ChartContainer.js +58 -27
- package/dist/cjs/graphs/Chart/parts/ChartContainer.js.map +2 -2
- package/dist/cjs/graphs/Chart/parts/ClipPaths.js +14 -38
- package/dist/cjs/graphs/Chart/parts/ClipPaths.js.map +2 -2
- package/dist/cjs/graphs/Chart/parts/Legend/Legend.js +6 -5
- package/dist/cjs/graphs/Chart/parts/Legend/Legend.js.map +2 -2
- package/dist/cjs/graphs/Chart/parts/Legend/TopLegend.js +3 -3
- package/dist/cjs/graphs/Chart/parts/Legend/TopLegend.js.map +2 -2
- package/dist/cjs/graphs/Chart/parts/Scrapper/VerticalScrapper.js +1 -2
- package/dist/cjs/graphs/Chart/parts/Scrapper/VerticalScrapper.js.map +2 -2
- package/dist/cjs/graphs/Chart/parts/Scrapper/VerticalScrapperLine.js +3 -2
- package/dist/cjs/graphs/Chart/parts/Scrapper/VerticalScrapperLine.js.map +2 -2
- package/dist/cjs/graphs/Chart/parts/Scroller/BlurMask.js +26 -5
- package/dist/cjs/graphs/Chart/parts/Scroller/BlurMask.js.map +2 -2
- package/dist/cjs/graphs/Chart/parts/Scroller/Controllers.js +80 -0
- package/dist/cjs/graphs/Chart/parts/Scroller/Controllers.js.map +7 -0
- package/dist/cjs/graphs/Chart/parts/Scroller/ScrollBarX.js +4 -3
- package/dist/cjs/graphs/Chart/parts/Scroller/ScrollBarX.js.map +2 -2
- package/dist/cjs/graphs/Chart/parts/Scroller/ScrollBarY.js +3 -3
- package/dist/cjs/graphs/Chart/parts/Scroller/ScrollBarY.js.map +2 -2
- package/dist/cjs/graphs/Chart/parts/Scroller/ScrollableContainerX.js +79 -9
- package/dist/cjs/graphs/Chart/parts/Scroller/ScrollableContainerX.js.map +2 -2
- package/dist/cjs/graphs/Chart/parts/Scroller/ScrollableContainerY.js +15 -24
- package/dist/cjs/graphs/Chart/parts/Scroller/ScrollableContainerY.js.map +2 -2
- package/dist/cjs/graphs/Chart/parts/SeriesFactory.js.map +2 -2
- package/dist/cjs/graphs/Chart/parts/TrendHighlight.js +52 -0
- package/dist/cjs/graphs/Chart/parts/TrendHighlight.js.map +7 -0
- package/dist/cjs/graphs/Chart/react-desc-prop-types.js.map +2 -2
- package/dist/cjs/graphs/Chart/series/Bars.js +2 -1
- package/dist/cjs/graphs/Chart/series/Bars.js.map +2 -2
- package/dist/cjs/graphs/Chart/series/HorizontalBars.js +19 -4
- package/dist/cjs/graphs/Chart/series/HorizontalBars.js.map +2 -2
- package/dist/cjs/graphs/Chart/series/HorizontalStackedBars.js +4 -3
- package/dist/cjs/graphs/Chart/series/HorizontalStackedBars.js.map +2 -2
- package/dist/cjs/graphs/Chart/series/Line.js +3 -1
- package/dist/cjs/graphs/Chart/series/Line.js.map +2 -2
- package/dist/cjs/graphs/Chart/series/Point.js +36 -14
- package/dist/cjs/graphs/Chart/series/Point.js.map +2 -2
- package/dist/cjs/graphs/Chart/series/Points.js +12 -15
- package/dist/cjs/graphs/Chart/series/Points.js.map +2 -2
- package/dist/cjs/graphs/Chart/series/Rect.js +17 -2
- package/dist/cjs/graphs/Chart/series/Rect.js.map +2 -2
- package/dist/cjs/graphs/Chart/series/StackedBar.js +5 -4
- package/dist/cjs/graphs/Chart/series/StackedBar.js.map +2 -2
- package/dist/cjs/graphs/Chart/styles.js +3 -0
- package/dist/cjs/graphs/Chart/styles.js.map +2 -2
- package/dist/esm/graphs/Chart/Chart.js.map +2 -2
- package/dist/esm/graphs/Chart/ChartContext.js.map +1 -1
- package/dist/esm/graphs/Chart/DataTestIds.js +10 -0
- package/dist/esm/graphs/Chart/DataTestIds.js.map +7 -0
- package/dist/esm/graphs/Chart/config/useChart.js +74 -37
- package/dist/esm/graphs/Chart/config/useChart.js.map +2 -2
- package/dist/esm/graphs/Chart/config/useGetters.js +5 -4
- package/dist/esm/graphs/Chart/config/useGetters.js.map +2 -2
- package/dist/esm/graphs/Chart/config/useInternalMargins.js +8 -3
- package/dist/esm/graphs/Chart/config/useInternalMargins.js.map +2 -2
- package/dist/esm/graphs/Chart/config/useKeyboardNavigation.js +2 -2
- package/dist/esm/graphs/Chart/config/useKeyboardNavigation.js.map +2 -2
- package/dist/esm/graphs/Chart/config/useScales.js +1 -2
- package/dist/esm/graphs/Chart/config/useScales.js.map +2 -2
- package/dist/esm/graphs/Chart/helpers/index.js +2 -2
- package/dist/esm/graphs/Chart/helpers/index.js.map +2 -2
- package/dist/esm/graphs/Chart/helpers/useUniqueData.js +8 -15
- package/dist/esm/graphs/Chart/helpers/useUniqueData.js.map +2 -2
- package/dist/esm/graphs/Chart/parts/Axis/Axes.js +2 -4
- package/dist/esm/graphs/Chart/parts/Axis/Axes.js.map +2 -2
- package/dist/esm/graphs/Chart/parts/Axis/AxisBottom.js +5 -3
- package/dist/esm/graphs/Chart/parts/Axis/AxisBottom.js.map +2 -2
- package/dist/esm/graphs/Chart/parts/Axis/AxisLeft.js +4 -1
- package/dist/esm/graphs/Chart/parts/Axis/AxisLeft.js.map +2 -2
- package/dist/esm/graphs/Chart/parts/ChartContainer.js +60 -29
- package/dist/esm/graphs/Chart/parts/ChartContainer.js.map +2 -2
- package/dist/esm/graphs/Chart/parts/ClipPaths.js +15 -39
- package/dist/esm/graphs/Chart/parts/ClipPaths.js.map +2 -2
- package/dist/esm/graphs/Chart/parts/Legend/Legend.js +6 -5
- package/dist/esm/graphs/Chart/parts/Legend/Legend.js.map +2 -2
- package/dist/esm/graphs/Chart/parts/Legend/TopLegend.js +3 -3
- package/dist/esm/graphs/Chart/parts/Legend/TopLegend.js.map +2 -2
- package/dist/esm/graphs/Chart/parts/Scrapper/VerticalScrapper.js +1 -2
- package/dist/esm/graphs/Chart/parts/Scrapper/VerticalScrapper.js.map +2 -2
- package/dist/esm/graphs/Chart/parts/Scrapper/VerticalScrapperLine.js +3 -2
- package/dist/esm/graphs/Chart/parts/Scrapper/VerticalScrapperLine.js.map +2 -2
- package/dist/esm/graphs/Chart/parts/Scroller/BlurMask.js +26 -5
- package/dist/esm/graphs/Chart/parts/Scroller/BlurMask.js.map +2 -2
- package/dist/esm/graphs/Chart/parts/Scroller/Controllers.js +54 -0
- package/dist/esm/graphs/Chart/parts/Scroller/Controllers.js.map +7 -0
- package/dist/esm/graphs/Chart/parts/Scroller/ScrollBarX.js +4 -3
- package/dist/esm/graphs/Chart/parts/Scroller/ScrollBarX.js.map +2 -2
- package/dist/esm/graphs/Chart/parts/Scroller/ScrollBarY.js +3 -3
- package/dist/esm/graphs/Chart/parts/Scroller/ScrollBarY.js.map +2 -2
- package/dist/esm/graphs/Chart/parts/Scroller/ScrollableContainerX.js +80 -10
- package/dist/esm/graphs/Chart/parts/Scroller/ScrollableContainerX.js.map +2 -2
- package/dist/esm/graphs/Chart/parts/Scroller/ScrollableContainerY.js +15 -24
- package/dist/esm/graphs/Chart/parts/Scroller/ScrollableContainerY.js.map +2 -2
- package/dist/esm/graphs/Chart/parts/SeriesFactory.js.map +2 -2
- package/dist/esm/graphs/Chart/parts/TrendHighlight.js +26 -0
- package/dist/esm/graphs/Chart/parts/TrendHighlight.js.map +7 -0
- package/dist/esm/graphs/Chart/react-desc-prop-types.js.map +2 -2
- package/dist/esm/graphs/Chart/series/Bars.js +2 -1
- package/dist/esm/graphs/Chart/series/Bars.js.map +2 -2
- package/dist/esm/graphs/Chart/series/HorizontalBars.js +19 -4
- package/dist/esm/graphs/Chart/series/HorizontalBars.js.map +2 -2
- package/dist/esm/graphs/Chart/series/HorizontalStackedBars.js +4 -3
- package/dist/esm/graphs/Chart/series/HorizontalStackedBars.js.map +2 -2
- package/dist/esm/graphs/Chart/series/Line.js +3 -1
- package/dist/esm/graphs/Chart/series/Line.js.map +2 -2
- package/dist/esm/graphs/Chart/series/Point.js +38 -16
- package/dist/esm/graphs/Chart/series/Point.js.map +2 -2
- package/dist/esm/graphs/Chart/series/Points.js +12 -15
- package/dist/esm/graphs/Chart/series/Points.js.map +2 -2
- package/dist/esm/graphs/Chart/series/Rect.js +18 -3
- package/dist/esm/graphs/Chart/series/Rect.js.map +2 -2
- package/dist/esm/graphs/Chart/series/StackedBar.js +5 -4
- package/dist/esm/graphs/Chart/series/StackedBar.js.map +2 -2
- package/dist/esm/graphs/Chart/styles.js +3 -0
- package/dist/esm/graphs/Chart/styles.js.map +2 -2
- package/package.json +8 -8
|
@@ -41,45 +41,21 @@ const ClipPaths = () => {
|
|
|
41
41
|
props: { xAxis, yAxis }
|
|
42
42
|
} = (0, import_react.useContext)(import_ChartContext.ChartContext);
|
|
43
43
|
const yScroll = yAxis.advanced?.pointSpacing?.value > 1;
|
|
44
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.
|
|
45
|
-
children:
|
|
46
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
y: -4
|
|
57
|
-
})
|
|
44
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, {
|
|
45
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("defs", {
|
|
46
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("clipPath", {
|
|
47
|
+
id: `rect-focus-ring-${chartId}`,
|
|
48
|
+
children: yScroll ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("rect", {
|
|
49
|
+
width: innerWidth + 4,
|
|
50
|
+
height: innerHeight * containerRatio,
|
|
51
|
+
x: -4
|
|
52
|
+
}) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)("rect", {
|
|
53
|
+
width: innerWidth * containerRatio,
|
|
54
|
+
height: innerHeight + 4,
|
|
55
|
+
y: -4
|
|
58
56
|
})
|
|
59
|
-
})
|
|
60
|
-
|
|
61
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("clipPath", {
|
|
62
|
-
id: `rects-positive-${chartId}`,
|
|
63
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("rect", {
|
|
64
|
-
width: innerWidth * containerRatio,
|
|
65
|
-
height: yScale(0) + 8,
|
|
66
|
-
y: -8,
|
|
67
|
-
x: -10
|
|
68
|
-
})
|
|
69
|
-
})
|
|
70
|
-
}),
|
|
71
|
-
innerHeight - yScale(0) > 0 ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("defs", {
|
|
72
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("clipPath", {
|
|
73
|
-
id: `rects-negative-${chartId}`,
|
|
74
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("rect", {
|
|
75
|
-
width: innerWidth * containerRatio,
|
|
76
|
-
height: innerHeight - yScale(0),
|
|
77
|
-
x: -10,
|
|
78
|
-
y: yScale(0)
|
|
79
|
-
})
|
|
80
|
-
})
|
|
81
|
-
}) : null
|
|
82
|
-
]
|
|
57
|
+
})
|
|
58
|
+
})
|
|
83
59
|
});
|
|
84
60
|
};
|
|
85
61
|
//# sourceMappingURL=ClipPaths.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/graphs/Chart/parts/ClipPaths.tsx", "../../../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
-
"sourcesContent": ["/* eslint-disable arrow-body-style */\n/* eslint-disable indent */\nimport React, { useContext } from 'react';\nimport { ChartContext } from '../ChartContext';\n\nexport const ClipPaths = () => {\n const {\n innerWidth,\n containerRatio,\n innerHeight,\n chartId,\n yScale,\n props: { xAxis, yAxis },\n } = useContext(ChartContext);\n\n const yScroll = yAxis.advanced?.pointSpacing?.value > 1;\n\n return (\n <>\n <defs>\n <clipPath id={`rect-focus-ring-${chartId}`}>\n {yScroll ? (\n <rect width={innerWidth + 4} height={innerHeight * containerRatio} x={-4} />\n ) : (\n <rect width={innerWidth * containerRatio} height={innerHeight + 4} y={-4} />\n )}\n </clipPath>\n </defs>\n <defs>\n <clipPath id={`rects-positive-${chartId}`}>\n <rect width={innerWidth * containerRatio} height={yScale(0) + 8} y={-8} x={-10} />\n </clipPath>\n </defs>\n {innerHeight - yScale(0) > 0 ? (\n <defs>\n <clipPath id={`rects-negative-${chartId}`}>\n <rect width={innerWidth * containerRatio} height={innerHeight - yScale(0)} x={-10} y={yScale(0)} />\n </clipPath>\n </defs>\n ) : null}\n </>\n );\n};\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB;AAEA,mBAAkC;AAClC,0BAA6B;AAEtB,MAAM,YAAY,MAAM;AAC7B,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,OAAO,EAAE,OAAO,MAAM;AAAA,EACxB,QAAI,yBAAW,gCAAY;AAE3B,QAAM,UAAU,MAAM,UAAU,cAAc,QAAQ;AAEtD,SACE;AAAA,IACE
|
|
4
|
+
"sourcesContent": ["/* eslint-disable arrow-body-style */\n/* eslint-disable indent */\nimport React, { useContext } from 'react';\nimport { ChartContext } from '../ChartContext';\n\nexport const ClipPaths = () => {\n const {\n innerWidth,\n containerRatio,\n innerHeight,\n chartId,\n yScale,\n props: { xAxis, yAxis },\n } = useContext(ChartContext);\n\n const yScroll = yAxis.advanced?.pointSpacing?.value > 1;\n\n return (\n <>\n <defs>\n <clipPath id={`rect-focus-ring-${chartId}`}>\n {yScroll ? (\n <rect width={innerWidth + 4} height={innerHeight * containerRatio} x={-4} />\n ) : (\n <rect width={innerWidth * containerRatio} height={innerHeight + 4} y={-4} />\n )}\n </clipPath>\n </defs>\n {/* \n this can be useful when implementing animations\n <defs>\n <clipPath id={`rects-positive-${chartId}`}>\n <rect width={innerWidth * containerRatio} height={yScale(0) + 8} y={-8} x={-10} />\n </clipPath>\n </defs>\n {innerHeight - yScale(0) > 0 ? (\n <defs>\n <clipPath id={`rects-negative-${chartId}`}>\n <rect width={innerWidth * containerRatio} height={innerHeight - yScale(0)} x={-10} y={yScale(0)} />\n </clipPath>\n </defs>\n ) : null} */}\n </>\n );\n};\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB;AAEA,mBAAkC;AAClC,0BAA6B;AAEtB,MAAM,YAAY,MAAM;AAC7B,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,OAAO,EAAE,OAAO,MAAM;AAAA,EACxB,QAAI,yBAAW,gCAAY;AAE3B,QAAM,UAAU,MAAM,UAAU,cAAc,QAAQ;AAEtD,SACE;AAAA,IACE,sDAAC;AAAA,MACC,sDAAC;AAAA,QAAS,IAAI,mBAAmB;AAAA,QAC9B,oBACC,4CAAC;AAAA,UAAK,OAAO,aAAa;AAAA,UAAG,QAAQ,cAAc;AAAA,UAAgB,GAAG;AAAA,SAAI,IAE1E,4CAAC;AAAA,UAAK,OAAO,aAAa;AAAA,UAAgB,QAAQ,cAAc;AAAA,UAAG,GAAG;AAAA,SAAI;AAAA,OAE9E;AAAA,KACF;AAAA,GAeF;AAEJ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -37,14 +37,15 @@ var import_BottomLegend = require("./BottomLegend");
|
|
|
37
37
|
var import_LeftLegend = require("./LeftLegend");
|
|
38
38
|
const Legend = () => {
|
|
39
39
|
const {
|
|
40
|
-
props: { legend }
|
|
40
|
+
props: { legend },
|
|
41
|
+
width
|
|
41
42
|
} = (0, import_react.useContext)(import_ChartContext.ChartContext);
|
|
42
|
-
if (legend?.position === "
|
|
43
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_RightLegend.RightLegend, {});
|
|
44
|
-
if (legend?.position === "top")
|
|
43
|
+
if (legend?.position === "top" || legend?.position === "left" && width <= 400)
|
|
45
44
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_TopLegend.TopLegend, {});
|
|
46
|
-
if (legend?.position === "bottom")
|
|
45
|
+
if (legend?.position === "bottom" || legend?.position === "right" && width <= 400)
|
|
47
46
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_BottomLegend.BottomLegend, {});
|
|
47
|
+
if (legend?.position === "right")
|
|
48
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_RightLegend.RightLegend, {});
|
|
48
49
|
if (legend?.position === "left")
|
|
49
50
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_LeftLegend.LeftLegend, {});
|
|
50
51
|
return null;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../src/graphs/Chart/parts/Legend/Legend.tsx", "../../../../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
-
"sourcesContent": ["import React, { useContext } from 'react';\nimport { RightLegend } from './RightLegend';\nimport { TopLegend } from './TopLegend';\nimport { ChartContext } from '../../ChartContext';\nimport { BottomLegend } from './BottomLegend';\nimport { LeftLegend } from './LeftLegend';\nexport const Legend = () => {\n const {\n props: { legend },\n } = useContext(ChartContext);\n
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB;AAAA,mBAAkC;AAClC,yBAA4B;AAC5B,uBAA0B;AAC1B,0BAA6B;AAC7B,0BAA6B;AAC7B,wBAA2B;AACpB,MAAM,SAAS,MAAM;AAC1B,QAAM;AAAA,IACJ,OAAO,EAAE,OAAO;AAAA,
|
|
4
|
+
"sourcesContent": ["import React, { useContext } from 'react';\nimport { RightLegend } from './RightLegend';\nimport { TopLegend } from './TopLegend';\nimport { ChartContext } from '../../ChartContext';\nimport { BottomLegend } from './BottomLegend';\nimport { LeftLegend } from './LeftLegend';\nexport const Legend = () => {\n const {\n props: { legend },\n width,\n } = useContext(ChartContext);\n if (legend?.position === 'top' || (legend?.position === 'left' && width <= 400)) return <TopLegend />;\n if (legend?.position === 'bottom' || (legend?.position === 'right' && width <= 400)) return <BottomLegend />;\n if (legend?.position === 'right') return <RightLegend />;\n if (legend?.position === 'left') return <LeftLegend />;\n return null;\n};\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB;AAAA,mBAAkC;AAClC,yBAA4B;AAC5B,uBAA0B;AAC1B,0BAA6B;AAC7B,0BAA6B;AAC7B,wBAA2B;AACpB,MAAM,SAAS,MAAM;AAC1B,QAAM;AAAA,IACJ,OAAO,EAAE,OAAO;AAAA,IAChB;AAAA,EACF,QAAI,yBAAW,gCAAY;AAC3B,MAAI,QAAQ,aAAa,SAAU,QAAQ,aAAa,UAAU,SAAS;AAAM,WAAO,4CAAC,8BAAU;AACnG,MAAI,QAAQ,aAAa,YAAa,QAAQ,aAAa,WAAW,SAAS;AAAM,WAAO,4CAAC,oCAAa;AAC1G,MAAI,QAAQ,aAAa;AAAS,WAAO,4CAAC,kCAAY;AACtD,MAAI,QAAQ,aAAa;AAAQ,WAAO,4CAAC,gCAAW;AACpD,SAAO;AACT;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -34,7 +34,7 @@ var import_d3 = require("d3");
|
|
|
34
34
|
var import_ChartContext = require("../../ChartContext");
|
|
35
35
|
var import_LegendItem = require("./LegendItem");
|
|
36
36
|
const TopLegend = () => {
|
|
37
|
-
const { colorScale, internalMargin, innerWidth, setTopLegend } = (0, import_react.useContext)(import_ChartContext.ChartContext);
|
|
37
|
+
const { colorScale, internalMargin, innerWidth, setTopLegend, toolbarHeight } = (0, import_react.useContext)(import_ChartContext.ChartContext);
|
|
38
38
|
const ref = (0, import_react.useRef)(null);
|
|
39
39
|
const firstRender = (0, import_react.useRef)(true);
|
|
40
40
|
const [xTransform, setXTransform] = (0, import_react.useState)(innerWidth / 2 + internalMargin.left);
|
|
@@ -60,7 +60,7 @@ const TopLegend = () => {
|
|
|
60
60
|
const render = (0, import_react.useMemo)(
|
|
61
61
|
() => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("g", {
|
|
62
62
|
ref,
|
|
63
|
-
transform: `translate(${xTransform}
|
|
63
|
+
transform: `translate(${xTransform},${toolbarHeight + 30})`,
|
|
64
64
|
children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("g", {
|
|
65
65
|
ref: setTopLegend,
|
|
66
66
|
children: [
|
|
@@ -75,7 +75,7 @@ const TopLegend = () => {
|
|
|
75
75
|
]
|
|
76
76
|
})
|
|
77
77
|
}),
|
|
78
|
-
[colorScale, setTopLegend, xTransform]
|
|
78
|
+
[colorScale, setTopLegend, xTransform, toolbarHeight]
|
|
79
79
|
);
|
|
80
80
|
return render;
|
|
81
81
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../src/graphs/Chart/parts/Legend/TopLegend.tsx", "../../../../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
-
"sourcesContent": ["import React, { useContext, useMemo, useLayoutEffect, useRef, useState } from 'react';\n\nimport { selectAll, select } from 'd3';\nimport { ChartContext } from '../../ChartContext';\nimport { LegendItem } from './LegendItem';\n\nexport const TopLegend = () => {\n const { colorScale, internalMargin, innerWidth, setTopLegend } = useContext(ChartContext);\n\n const ref = useRef(null);\n const firstRender = useRef(true);\n\n const [xTransform, setXTransform] = useState(innerWidth / 2 + internalMargin.left);\n\n useLayoutEffect(() => {\n if (ref.current && firstRender.current) {\n const cells = selectAll('.cell');\n const padding = 40;\n let offset = 0;\n cells.each((d, i) => {\n if (cells._groups[0][i - 1]) {\n const lastCell = select(cells._groups[0][i - 1]);\n const d3sel = select(cells._groups[0][i]);\n\n const { width } = lastCell.node().getBBox();\n offset += width + padding;\n d3sel.attr('transform', `translate(${offset}, 0)`);\n }\n });\n const bounds = ref.current.getBoundingClientRect();\n setXTransform((prev) => prev - bounds.width / 2);\n firstRender.current = false;\n }\n }, []);\n\n const render = useMemo(\n () => (\n <g ref={ref} transform={`translate(${xTransform}
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB;AAAA,mBAA8E;AAE9E,gBAAkC;AAClC,0BAA6B;AAC7B,wBAA2B;AAEpB,MAAM,YAAY,MAAM;AAC7B,QAAM,EAAE,YAAY,gBAAgB,YAAY,
|
|
4
|
+
"sourcesContent": ["import React, { useContext, useMemo, useLayoutEffect, useRef, useState } from 'react';\n\nimport { selectAll, select } from 'd3';\nimport { ChartContext } from '../../ChartContext';\nimport { LegendItem } from './LegendItem';\n\nexport const TopLegend = () => {\n const { colorScale, internalMargin, innerWidth, setTopLegend, toolbarHeight } = useContext(ChartContext);\n\n const ref = useRef(null);\n const firstRender = useRef(true);\n\n const [xTransform, setXTransform] = useState(innerWidth / 2 + internalMargin.left);\n\n useLayoutEffect(() => {\n if (ref.current && firstRender.current) {\n const cells = selectAll('.cell');\n const padding = 40;\n let offset = 0;\n cells.each((d, i) => {\n if (cells._groups[0][i - 1]) {\n const lastCell = select(cells._groups[0][i - 1]);\n const d3sel = select(cells._groups[0][i]);\n\n const { width } = lastCell.node().getBBox();\n offset += width + padding;\n d3sel.attr('transform', `translate(${offset}, 0)`);\n }\n });\n const bounds = ref.current.getBoundingClientRect();\n setXTransform((prev) => prev - bounds.width / 2);\n firstRender.current = false;\n }\n }, []);\n\n const render = useMemo(\n () => (\n <g ref={ref} transform={`translate(${xTransform},${toolbarHeight + 30})`}>\n <g ref={setTopLegend}>\n <rect height={40} width={1} fill=\"transparent\" />\n {colorScale.domain().map((domainValue, i) => (\n <LegendItem key={domainValue} domainValue={domainValue} />\n ))}\n </g>\n </g>\n ),\n\n [colorScale, setTopLegend, xTransform, toolbarHeight],\n );\n\n return render;\n};\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB;AAAA,mBAA8E;AAE9E,gBAAkC;AAClC,0BAA6B;AAC7B,wBAA2B;AAEpB,MAAM,YAAY,MAAM;AAC7B,QAAM,EAAE,YAAY,gBAAgB,YAAY,cAAc,cAAc,QAAI,yBAAW,gCAAY;AAEvG,QAAM,UAAM,qBAAO,IAAI;AACvB,QAAM,kBAAc,qBAAO,IAAI;AAE/B,QAAM,CAAC,YAAY,aAAa,QAAI,uBAAS,aAAa,IAAI,eAAe,IAAI;AAEjF,oCAAgB,MAAM;AACpB,QAAI,IAAI,WAAW,YAAY,SAAS;AACtC,YAAM,YAAQ,qBAAU,OAAO;AAC/B,YAAM,UAAU;AAChB,UAAI,SAAS;AACb,YAAM,KAAK,CAAC,GAAG,MAAM;AACnB,YAAI,MAAM,QAAQ,GAAG,IAAI,IAAI;AAC3B,gBAAM,eAAW,kBAAO,MAAM,QAAQ,GAAG,IAAI,EAAE;AAC/C,gBAAM,YAAQ,kBAAO,MAAM,QAAQ,GAAG,EAAE;AAExC,gBAAM,EAAE,MAAM,IAAI,SAAS,KAAK,EAAE,QAAQ;AAC1C,oBAAU,QAAQ;AAClB,gBAAM,KAAK,aAAa,aAAa,YAAY;AAAA,QACnD;AAAA,MACF,CAAC;AACD,YAAM,SAAS,IAAI,QAAQ,sBAAsB;AACjD,oBAAc,CAAC,SAAS,OAAO,OAAO,QAAQ,CAAC;AAC/C,kBAAY,UAAU;AAAA,IACxB;AAAA,EACF,GAAG,CAAC,CAAC;AAEL,QAAM,aAAS;AAAA,IACb,MACE,4CAAC;AAAA,MAAE;AAAA,MAAU,WAAW,aAAa,cAAc,gBAAgB;AAAA,MACjE,uDAAC;AAAA,QAAE,KAAK;AAAA,QACN;AAAA,sDAAC;AAAA,YAAK,QAAQ;AAAA,YAAI,OAAO;AAAA,YAAG,MAAK;AAAA,WAAc;AAAA,UAC9C,WAAW,OAAO,EAAE,IAAI,CAAC,aAAa,MACrC,4CAAC;AAAA,YAA6B;AAAA,aAAb,WAAuC,CACzD;AAAA;AAAA,OACH;AAAA,KACF;AAAA,IAGF,CAAC,YAAY,cAAc,YAAY,aAAa;AAAA,EACtD;AAEA,SAAO;AACT;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -34,7 +34,7 @@ var import_VerticalScrapperLine = require("./VerticalScrapperLine");
|
|
|
34
34
|
var import_useUniqueData = require("../../helpers/useUniqueData");
|
|
35
35
|
const VerticalScrapper = () => {
|
|
36
36
|
const uniqueData = (0, import_useUniqueData.useUniqueData)();
|
|
37
|
-
|
|
37
|
+
return (0, import_react.useMemo)(
|
|
38
38
|
() => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("g", {
|
|
39
39
|
className: "vertical-scrapper",
|
|
40
40
|
children: uniqueData.map((line) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_VerticalScrapperLine.VerticalScrapperLine, {
|
|
@@ -45,6 +45,5 @@ const VerticalScrapper = () => {
|
|
|
45
45
|
}),
|
|
46
46
|
[uniqueData]
|
|
47
47
|
);
|
|
48
|
-
return render;
|
|
49
48
|
};
|
|
50
49
|
//# sourceMappingURL=VerticalScrapper.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../src/graphs/Chart/parts/Scrapper/VerticalScrapper.tsx", "../../../../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
-
"sourcesContent": ["import React, { useMemo } from 'react';\nimport { VerticalScrapperLine } from './VerticalScrapperLine';\nimport { useUniqueData } from '../../helpers/useUniqueData';\nexport const VerticalScrapper = () => {\n const uniqueData = useUniqueData();\n
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB;AAAA,mBAA+B;AAC/B,kCAAqC;AACrC,2BAA8B;AACvB,MAAM,mBAAmB,MAAM;AACpC,QAAM,iBAAa,oCAAc;AACjC,
|
|
4
|
+
"sourcesContent": ["import React, { useMemo } from 'react';\nimport { VerticalScrapperLine } from './VerticalScrapperLine';\nimport { useUniqueData } from '../../helpers/useUniqueData';\nexport const VerticalScrapper = () => {\n const uniqueData = useUniqueData();\n return useMemo(\n () => (\n <g className=\"vertical-scrapper\">\n {uniqueData.map((line) => (\n <VerticalScrapperLine\n rectDetector={line?.rectDetector}\n xPosition={line.xPosition}\n key={line.xPosition}\n datum={line.datum}\n />\n ))}\n </g>\n ),\n\n [uniqueData],\n );\n};\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB;AAAA,mBAA+B;AAC/B,kCAAqC;AACrC,2BAA8B;AACvB,MAAM,mBAAmB,MAAM;AACpC,QAAM,iBAAa,oCAAc;AACjC,aAAO;AAAA,IACL,MACE,4CAAC;AAAA,MAAE,WAAU;AAAA,MACV,qBAAW,IAAI,CAAC,SACf,4CAAC;AAAA,QACC,cAAc,MAAM;AAAA,QACpB,WAAW,KAAK;AAAA,QAEhB,OAAO,KAAK;AAAA,SADP,KAAK,SAEZ,CACD;AAAA,KACH;AAAA,IAGF,CAAC,UAAU;AAAA,EACb;AACF;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -40,6 +40,7 @@ const VerticalScrapperLine = import_react.default.memo(({ rectDetector, xPositio
|
|
|
40
40
|
setScrapperPosX,
|
|
41
41
|
isGrabbed,
|
|
42
42
|
xScale,
|
|
43
|
+
yScale,
|
|
43
44
|
setActivePoint,
|
|
44
45
|
innerHeight,
|
|
45
46
|
props: { TooltipRenderer, scrapper }
|
|
@@ -52,8 +53,9 @@ const VerticalScrapperLine = import_react.default.memo(({ rectDetector, xPositio
|
|
|
52
53
|
setScrapperPosX(xPosition);
|
|
53
54
|
setActivePoint(null);
|
|
54
55
|
}, [isGrabbed, setActivePoint, setScrapperPosX, xPosition]);
|
|
55
|
-
|
|
56
|
+
return (0, import_react.useMemo)(
|
|
56
57
|
() => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("g", {
|
|
58
|
+
transform: `translate(${xScale.bandwidth ? xScale.bandwidth() / 2 : 0}, 0)`,
|
|
57
59
|
children: [
|
|
58
60
|
isActive && !isGrabbed ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("g", {
|
|
59
61
|
children: [
|
|
@@ -114,6 +116,5 @@ const VerticalScrapperLine = import_react.default.memo(({ rectDetector, xPositio
|
|
|
114
116
|
rectDetector
|
|
115
117
|
]
|
|
116
118
|
);
|
|
117
|
-
return render;
|
|
118
119
|
});
|
|
119
120
|
//# sourceMappingURL=VerticalScrapperLine.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../src/graphs/Chart/parts/Scrapper/VerticalScrapperLine.tsx", "../../../../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
-
"sourcesContent": ["import React, { useContext, useCallback, useState, useMemo } from 'react';\nimport { DSPopperJS } from '@elliemae/ds-popperjs';\nimport { ThemeContext } from '@elliemae/ds-system';\nimport { ChartContext } from '../../ChartContext';\nimport { StyledMouseOverDetectionBox, StyledTooltipContainer } from '../../styles';\n\nexport const VerticalScrapperLine = React.memo(({ rectDetector, xPosition, datum }) => {\n const {\n scrapperPosX,\n setScrapperPosX,\n isGrabbed,\n xScale,\n setActivePoint,\n innerHeight,\n props: { TooltipRenderer, scrapper },\n } = useContext(ChartContext);\n const theme = useContext(ThemeContext);\n const [referenceElement, setReferenceElement] = useState<React.SVGProps<SVGLineElement> | null>();\n const isActive = scrapperPosX === xPosition;\n const handleOnMouseEnter = useCallback(() => {\n if (!isGrabbed) setScrapperPosX(xPosition);\n setActivePoint(null);\n }, [isGrabbed, setActivePoint, setScrapperPosX, xPosition]);\n\n // const strokeDetectorWidth = xScale.bandwidth ? xScale.bandwidth() : lineWidth;\n
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB;AAAA,mBAAkE;AAClE,yBAA2B;AAC3B,uBAA6B;AAC7B,0BAA6B;AAC7B,oBAAoE;
|
|
4
|
+
"sourcesContent": ["import React, { useContext, useCallback, useState, useMemo } from 'react';\nimport { DSPopperJS } from '@elliemae/ds-popperjs';\nimport { ThemeContext } from '@elliemae/ds-system';\nimport { ChartContext } from '../../ChartContext';\nimport { StyledMouseOverDetectionBox, StyledTooltipContainer } from '../../styles';\nimport { TrendHighlight } from '../TrendHighlight';\n\nexport const VerticalScrapperLine = React.memo(({ rectDetector, xPosition, datum }) => {\n const {\n scrapperPosX,\n setScrapperPosX,\n isGrabbed,\n xScale,\n yScale,\n setActivePoint,\n innerHeight,\n props: { TooltipRenderer, scrapper },\n } = useContext(ChartContext);\n const theme = useContext(ThemeContext);\n const [referenceElement, setReferenceElement] = useState<React.SVGProps<SVGLineElement> | null>();\n const isActive = scrapperPosX === xPosition;\n const handleOnMouseEnter = useCallback(() => {\n if (!isGrabbed) setScrapperPosX(xPosition);\n setActivePoint(null);\n }, [isGrabbed, setActivePoint, setScrapperPosX, xPosition]);\n\n // const strokeDetectorWidth = xScale.bandwidth ? xScale.bandwidth() : lineWidth;\n return useMemo(\n () => (\n <g transform={`translate(${xScale.bandwidth ? xScale.bandwidth() / 2 : 0}, 0)`}>\n {isActive && !isGrabbed ? (\n <g>\n {TooltipRenderer ? (\n <foreignObject>\n <DSPopperJS\n withoutAnimation\n withoutArrow\n customOffset={[0, 5]}\n referenceElement={referenceElement}\n showPopover\n zIndex={theme.zIndex.tooltip}\n startPlacementPreference={scrapper.tooltipPreference}\n >\n <StyledMouseOverDetectionBox />\n <StyledTooltipContainer>\n <TooltipRenderer data={datum} />\n </StyledTooltipContainer>\n </DSPopperJS>\n </foreignObject>\n ) : null}\n <line\n ref={setReferenceElement}\n x1={xPosition}\n strokeWidth=\"2px\"\n stroke={scrapper.color}\n y1={0}\n x2={xPosition}\n y2={innerHeight}\n strokeDasharray={(4, 4)}\n />\n </g>\n ) : null}\n <rect\n onMouseOver={handleOnMouseEnter}\n x={xScale.bandwidth ? xPosition - xScale.bandwidth() / 2 : xPosition - rectDetector?.left}\n fill=\"transparent\"\n y={0}\n width={xScale.bandwidth?.() ?? rectDetector?.right + rectDetector?.left}\n height={innerHeight}\n />\n </g>\n ),\n [\n isActive,\n isGrabbed,\n TooltipRenderer,\n referenceElement,\n theme.zIndex.tooltip,\n scrapper.tooltipPreference,\n scrapper.color,\n datum,\n xPosition,\n innerHeight,\n handleOnMouseEnter,\n xScale,\n rectDetector,\n ],\n );\n});\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB;AAAA,mBAAkE;AAClE,yBAA2B;AAC3B,uBAA6B;AAC7B,0BAA6B;AAC7B,oBAAoE;AAG7D,MAAM,uBAAuB,aAAAA,QAAM,KAAK,CAAC,EAAE,cAAc,WAAW,MAAM,MAAM;AACrF,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,OAAO,EAAE,iBAAiB,SAAS;AAAA,EACrC,QAAI,yBAAW,gCAAY;AAC3B,QAAM,YAAQ,yBAAW,6BAAY;AACrC,QAAM,CAAC,kBAAkB,mBAAmB,QAAI,uBAAgD;AAChG,QAAM,WAAW,iBAAiB;AAClC,QAAM,yBAAqB,0BAAY,MAAM;AAC3C,QAAI,CAAC;AAAW,sBAAgB,SAAS;AACzC,mBAAe,IAAI;AAAA,EACrB,GAAG,CAAC,WAAW,gBAAgB,iBAAiB,SAAS,CAAC;AAG1D,aAAO;AAAA,IACL,MACE,6CAAC;AAAA,MAAE,WAAW,aAAa,OAAO,YAAY,OAAO,UAAU,IAAI,IAAI;AAAA,MACpE;AAAA,oBAAY,CAAC,YACZ,6CAAC;AAAA,UACE;AAAA,8BACC,4CAAC;AAAA,cACC,uDAAC;AAAA,gBACC,kBAAgB;AAAA,gBAChB,cAAY;AAAA,gBACZ,cAAc,CAAC,GAAG,CAAC;AAAA,gBACnB;AAAA,gBACA,aAAW;AAAA,gBACX,QAAQ,MAAM,OAAO;AAAA,gBACrB,0BAA0B,SAAS;AAAA,gBAEnC;AAAA,8DAAC,6CAA4B;AAAA,kBAC7B,4CAAC;AAAA,oBACC,sDAAC;AAAA,sBAAgB,MAAM;AAAA,qBAAO;AAAA,mBAChC;AAAA;AAAA,eACF;AAAA,aACF,IACE;AAAA,YACJ,4CAAC;AAAA,cACC,KAAK;AAAA,cACL,IAAI;AAAA,cACJ,aAAY;AAAA,cACZ,QAAQ,SAAS;AAAA,cACjB,IAAI;AAAA,cACJ,IAAI;AAAA,cACJ,IAAI;AAAA,cACJ,kBAAkB,GAAG;AAAA,aACvB;AAAA;AAAA,SACF,IACE;AAAA,QACJ,4CAAC;AAAA,UACC,aAAa;AAAA,UACb,GAAG,OAAO,YAAY,YAAY,OAAO,UAAU,IAAI,IAAI,YAAY,cAAc;AAAA,UACrF,MAAK;AAAA,UACL,GAAG;AAAA,UACH,OAAO,OAAO,YAAY,KAAK,cAAc,QAAQ,cAAc;AAAA,UACnE,QAAQ;AAAA,SACV;AAAA;AAAA,KACF;AAAA,IAEF;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,MAAM,OAAO;AAAA,MACb,SAAS;AAAA,MACT,SAAS;AAAA,MACT;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACF,CAAC;",
|
|
6
6
|
"names": ["React"]
|
|
7
7
|
}
|
|
@@ -33,12 +33,18 @@ var import_react = require("react");
|
|
|
33
33
|
var import_ChartContext = require("../../ChartContext");
|
|
34
34
|
const BlurMask = () => {
|
|
35
35
|
const {
|
|
36
|
+
props: { yAxis, xScroll, xAxis },
|
|
36
37
|
xScrollbarPosition,
|
|
37
38
|
innerWidth,
|
|
39
|
+
internalMargin,
|
|
38
40
|
containerRatio,
|
|
41
|
+
innerHeight,
|
|
39
42
|
chartId,
|
|
40
|
-
|
|
43
|
+
height,
|
|
44
|
+
width
|
|
41
45
|
} = (0, import_react.useContext)(import_ChartContext.ChartContext);
|
|
46
|
+
const yScrolled = yAxis.advanced?.pointSpacing?.value > 1;
|
|
47
|
+
const xScrolled = xScroll || xAxis.advanced?.pointSpacing?.value > 1;
|
|
42
48
|
const gradient = (0, import_react.useMemo)(() => {
|
|
43
49
|
if (xScrollbarPosition === 0) {
|
|
44
50
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
|
|
@@ -54,7 +60,9 @@ const BlurMask = () => {
|
|
|
54
60
|
]
|
|
55
61
|
});
|
|
56
62
|
}
|
|
57
|
-
|
|
63
|
+
const isAtEndXScroll = innerWidth * containerRatio === (xScrollbarPosition + innerWidth / containerRatio) * containerRatio;
|
|
64
|
+
const isAtEndYScroll = innerHeight * containerRatio === (xScrollbarPosition + innerHeight / containerRatio) * containerRatio;
|
|
65
|
+
if (isAtEndXScroll || isAtEndYScroll) {
|
|
58
66
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
|
|
59
67
|
children: [
|
|
60
68
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("stop", {
|
|
@@ -88,16 +96,29 @@ const BlurMask = () => {
|
|
|
88
96
|
})
|
|
89
97
|
]
|
|
90
98
|
});
|
|
91
|
-
}, [containerRatio, innerWidth, xScrollbarPosition]);
|
|
99
|
+
}, [containerRatio, innerHeight, innerWidth, xScrollbarPosition]);
|
|
92
100
|
if (containerRatio === 1)
|
|
93
101
|
return null;
|
|
94
102
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("defs", {
|
|
95
103
|
children: [
|
|
96
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("linearGradient", {
|
|
104
|
+
yScrolled ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("linearGradient", {
|
|
105
|
+
x2: "0%",
|
|
106
|
+
y2: "100%",
|
|
107
|
+
id: `filter-fade-${chartId}`,
|
|
108
|
+
children: gradient
|
|
109
|
+
}) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)("linearGradient", {
|
|
97
110
|
id: `filter-fade-${chartId}`,
|
|
98
111
|
children: gradient
|
|
99
112
|
}),
|
|
100
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("mask", {
|
|
113
|
+
yScrolled ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("mask", {
|
|
114
|
+
id: `mask-y-${chartId}`,
|
|
115
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("rect", {
|
|
116
|
+
x: -internalMargin.left,
|
|
117
|
+
width,
|
|
118
|
+
height: innerHeight,
|
|
119
|
+
fill: `url(#filter-fade-${chartId}`
|
|
120
|
+
})
|
|
121
|
+
}) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)("mask", {
|
|
101
122
|
id: `mask-${chartId}`,
|
|
102
123
|
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("rect", {
|
|
103
124
|
x: 0,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../src/graphs/Chart/parts/Scroller/BlurMask.tsx", "../../../../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
-
"sourcesContent": ["/* eslint-disable arrow-body-style */\n/* eslint-disable indent */\nimport React, { useContext, useMemo } from 'react';\nimport { ChartContext } from '../../ChartContext';\n\nexport const BlurMask = () => {\n const {\n xScrollbarPosition,\n innerWidth,\n containerRatio,\n chartId,\n
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB;AAEA,mBAA2C;AAC3C,0BAA6B;AAEtB,MAAM,WAAW,MAAM;AAC5B,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,
|
|
4
|
+
"sourcesContent": ["/* eslint-disable arrow-body-style */\n/* eslint-disable indent */\nimport React, { useContext, useMemo } from 'react';\nimport { ChartContext } from '../../ChartContext';\n\nexport const BlurMask = () => {\n const {\n props: { yAxis, xScroll, xAxis },\n xScrollbarPosition,\n innerWidth,\n internalMargin,\n containerRatio,\n innerHeight,\n chartId,\n height,\n width,\n } = useContext(ChartContext);\n\n const yScrolled = yAxis.advanced?.pointSpacing?.value > 1;\n const xScrolled = xScroll || xAxis.advanced?.pointSpacing?.value > 1;\n const gradient = useMemo(() => {\n if (xScrollbarPosition === 0) {\n return (\n <>\n <stop offset=\"93%\" style={{ stopColor: 'white', stopOpacity: 1 }} />\n <stop offset=\"100%\" style={{ stopColor: 'white', stopOpacity: 0 }} />\n </>\n );\n }\n\n const isAtEndXScroll =\n innerWidth * containerRatio === (xScrollbarPosition + innerWidth / containerRatio) * containerRatio;\n const isAtEndYScroll =\n innerHeight * containerRatio === (xScrollbarPosition + innerHeight / containerRatio) * containerRatio;\n if (isAtEndXScroll || isAtEndYScroll) {\n return (\n <>\n <stop offset=\"0%\" style={{ stopColor: 'white', stopOpacity: 0 }} />\n <stop offset=\"7%\" style={{ stopColor: 'white', stopOpacity: 1 }} />\n </>\n );\n }\n\n return (\n <>\n <stop offset=\"0%\" style={{ stopColor: 'white', stopOpacity: 0 }} />\n <stop offset=\"7%\" style={{ stopColor: 'white', stopOpacity: 1 }} />\n <stop offset=\"93%\" style={{ stopColor: 'white', stopOpacity: 1 }} />\n <stop offset=\"100%\" style={{ stopColor: 'white', stopOpacity: 0 }} />\n </>\n );\n }, [containerRatio, innerHeight, innerWidth, xScrollbarPosition]);\n\n if (containerRatio === 1) return null;\n return (\n <defs>\n {yScrolled ? (\n <linearGradient x2=\"0%\" y2=\"100%\" id={`filter-fade-${chartId}`}>\n {gradient}\n </linearGradient>\n ) : (\n <linearGradient id={`filter-fade-${chartId}`}>{gradient}</linearGradient>\n )}\n\n {yScrolled ? (\n <mask id={`mask-y-${chartId}`}>\n <rect x={-internalMargin.left} width={width} height={innerHeight} fill={`url(#filter-fade-${chartId}`}></rect>\n </mask>\n ) : (\n <mask id={`mask-${chartId}`}>\n <rect x={0} width={innerWidth} height={height} fill={`url(#filter-fade-${chartId}`}></rect>\n </mask>\n )}\n </defs>\n );\n};\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB;AAEA,mBAA2C;AAC3C,0BAA6B;AAEtB,MAAM,WAAW,MAAM;AAC5B,QAAM;AAAA,IACJ,OAAO,EAAE,OAAO,SAAS,MAAM;AAAA,IAC/B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,QAAI,yBAAW,gCAAY;AAE3B,QAAM,YAAY,MAAM,UAAU,cAAc,QAAQ;AACxD,QAAM,YAAY,WAAW,MAAM,UAAU,cAAc,QAAQ;AACnE,QAAM,eAAW,sBAAQ,MAAM;AAC7B,QAAI,uBAAuB,GAAG;AAC5B,aACE;AAAA,QACE;AAAA,sDAAC;AAAA,YAAK,QAAO;AAAA,YAAM,OAAO,EAAE,WAAW,SAAS,aAAa,EAAE;AAAA,WAAG;AAAA,UAClE,4CAAC;AAAA,YAAK,QAAO;AAAA,YAAO,OAAO,EAAE,WAAW,SAAS,aAAa,EAAE;AAAA,WAAG;AAAA;AAAA,OACrE;AAAA,IAEJ;AAEA,UAAM,iBACJ,aAAa,oBAAoB,qBAAqB,aAAa,kBAAkB;AACvF,UAAM,iBACJ,cAAc,oBAAoB,qBAAqB,cAAc,kBAAkB;AACzF,QAAI,kBAAkB,gBAAgB;AACpC,aACE;AAAA,QACE;AAAA,sDAAC;AAAA,YAAK,QAAO;AAAA,YAAK,OAAO,EAAE,WAAW,SAAS,aAAa,EAAE;AAAA,WAAG;AAAA,UACjE,4CAAC;AAAA,YAAK,QAAO;AAAA,YAAK,OAAO,EAAE,WAAW,SAAS,aAAa,EAAE;AAAA,WAAG;AAAA;AAAA,OACnE;AAAA,IAEJ;AAEA,WACE;AAAA,MACE;AAAA,oDAAC;AAAA,UAAK,QAAO;AAAA,UAAK,OAAO,EAAE,WAAW,SAAS,aAAa,EAAE;AAAA,SAAG;AAAA,QACjE,4CAAC;AAAA,UAAK,QAAO;AAAA,UAAK,OAAO,EAAE,WAAW,SAAS,aAAa,EAAE;AAAA,SAAG;AAAA,QACjE,4CAAC;AAAA,UAAK,QAAO;AAAA,UAAM,OAAO,EAAE,WAAW,SAAS,aAAa,EAAE;AAAA,SAAG;AAAA,QAClE,4CAAC;AAAA,UAAK,QAAO;AAAA,UAAO,OAAO,EAAE,WAAW,SAAS,aAAa,EAAE;AAAA,SAAG;AAAA;AAAA,KACrE;AAAA,EAEJ,GAAG,CAAC,gBAAgB,aAAa,YAAY,kBAAkB,CAAC;AAEhE,MAAI,mBAAmB;AAAG,WAAO;AACjC,SACE,6CAAC;AAAA,IACE;AAAA,kBACC,4CAAC;AAAA,QAAe,IAAG;AAAA,QAAK,IAAG;AAAA,QAAO,IAAI,eAAe;AAAA,QAClD;AAAA,OACH,IAEA,4CAAC;AAAA,QAAe,IAAI,eAAe;AAAA,QAAY;AAAA,OAAS;AAAA,MAGzD,YACC,4CAAC;AAAA,QAAK,IAAI,UAAU;AAAA,QAClB,sDAAC;AAAA,UAAK,GAAG,CAAC,eAAe;AAAA,UAAM;AAAA,UAAc,QAAQ;AAAA,UAAa,MAAM,oBAAoB;AAAA,SAAW;AAAA,OACzG,IAEA,4CAAC;AAAA,QAAK,IAAI,QAAQ;AAAA,QAChB,sDAAC;AAAA,UAAK,GAAG;AAAA,UAAG,OAAO;AAAA,UAAY;AAAA,UAAgB,MAAM,oBAAoB;AAAA,SAAW;AAAA,OACtF;AAAA;AAAA,GAEJ;AAEJ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
22
|
+
mod
|
|
23
|
+
));
|
|
24
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
25
|
+
var Controllers_exports = {};
|
|
26
|
+
__export(Controllers_exports, {
|
|
27
|
+
Controllers: () => Controllers
|
|
28
|
+
});
|
|
29
|
+
module.exports = __toCommonJS(Controllers_exports);
|
|
30
|
+
var React = __toESM(require("react"));
|
|
31
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
32
|
+
var import_react = require("react");
|
|
33
|
+
var import_ChartContext = require("../../ChartContext");
|
|
34
|
+
const Controllers = () => {
|
|
35
|
+
const {
|
|
36
|
+
props: { xScroll },
|
|
37
|
+
width,
|
|
38
|
+
xScale,
|
|
39
|
+
containerRatio,
|
|
40
|
+
setContainerRatio,
|
|
41
|
+
lastPosition,
|
|
42
|
+
setToolbarRef,
|
|
43
|
+
setXScrollbarPosition
|
|
44
|
+
} = (0, import_react.useContext)(import_ChartContext.ChartContext);
|
|
45
|
+
const handleOnClick = (0, import_react.useCallback)(() => {
|
|
46
|
+
setContainerRatio(1);
|
|
47
|
+
setXScrollbarPosition(0);
|
|
48
|
+
lastPosition.current = 0;
|
|
49
|
+
}, [lastPosition, setContainerRatio, setXScrollbarPosition]);
|
|
50
|
+
if (xScale.bandwidth)
|
|
51
|
+
return null;
|
|
52
|
+
if (!xScroll)
|
|
53
|
+
return null;
|
|
54
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("g", {
|
|
55
|
+
onClick: handleOnClick,
|
|
56
|
+
transform: `translate(${width - 17 * 2},4) scale(1.5,1.5)`,
|
|
57
|
+
strokeLinecap: "round",
|
|
58
|
+
opacity: "",
|
|
59
|
+
strokeOpacity: "1",
|
|
60
|
+
style: { cursor: "pointer", opacity: containerRatio > 1 ? 1 : 0.5 },
|
|
61
|
+
ref: setToolbarRef,
|
|
62
|
+
children: [
|
|
63
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("rect", {
|
|
64
|
+
width: "17",
|
|
65
|
+
height: "17",
|
|
66
|
+
fill: "white",
|
|
67
|
+
stroke: "#c0c0c0",
|
|
68
|
+
strokeWidth: "1"
|
|
69
|
+
}),
|
|
70
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", {
|
|
71
|
+
d: "M 2.875 7.75 A 5.625 5.625 0 1 1 4.5225 11.7275 L 8.2725 10.7275 L 6.5225 14.9775 L 4.5225 11.7275",
|
|
72
|
+
fill: "#ffffff",
|
|
73
|
+
stroke: "#c2c2c2",
|
|
74
|
+
strokeLinecap: "round",
|
|
75
|
+
strokeWidth: "1"
|
|
76
|
+
})
|
|
77
|
+
]
|
|
78
|
+
});
|
|
79
|
+
};
|
|
80
|
+
//# sourceMappingURL=Controllers.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../../src/graphs/Chart/parts/Scroller/Controllers.tsx", "../../../../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
+
"sourcesContent": ["/* eslint-disable arrow-body-style */\n/* eslint-disable indent */\nimport React, { useContext, useCallback } from 'react';\nimport { ChartContext } from '../../ChartContext';\n\nexport const Controllers = () => {\n const {\n props: { xScroll },\n width,\n xScale,\n containerRatio,\n setContainerRatio,\n lastPosition,\n setToolbarRef,\n setXScrollbarPosition,\n } = useContext(ChartContext);\n\n const handleOnClick = useCallback(() => {\n setContainerRatio(1);\n setXScrollbarPosition(0);\n lastPosition.current = 0;\n }, [lastPosition, setContainerRatio, setXScrollbarPosition]);\n\n // if is a bar chart we dont give controls\n if (xScale.bandwidth) return null;\n\n if (!xScroll) return null;\n return (\n <g\n onClick={handleOnClick}\n transform={`translate(${width - 17 * 2},4) scale(1.5,1.5)`}\n strokeLinecap=\"round\"\n opacity=\"\"\n strokeOpacity=\"1\"\n style={{ cursor: 'pointer', opacity: containerRatio > 1 ? 1 : 0.5 }}\n ref={setToolbarRef}\n >\n <rect width=\"17\" height=\"17\" fill=\"white\" stroke=\"#c0c0c0\" strokeWidth=\"1\"></rect>\n <path\n d=\"M 2.875 7.75 A 5.625 5.625 0 1 1 4.5225 11.7275 L 8.2725 10.7275 L 6.5225 14.9775 L 4.5225 11.7275\"\n fill=\"#ffffff\"\n stroke=\"#c2c2c2\"\n strokeLinecap=\"round\"\n strokeWidth=\"1\"\n ></path>\n </g>\n );\n};\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB;AAEA,mBAA+C;AAC/C,0BAA6B;AAEtB,MAAM,cAAc,MAAM;AAC/B,QAAM;AAAA,IACJ,OAAO,EAAE,QAAQ;AAAA,IACjB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,QAAI,yBAAW,gCAAY;AAE3B,QAAM,oBAAgB,0BAAY,MAAM;AACtC,sBAAkB,CAAC;AACnB,0BAAsB,CAAC;AACvB,iBAAa,UAAU;AAAA,EACzB,GAAG,CAAC,cAAc,mBAAmB,qBAAqB,CAAC;AAG3D,MAAI,OAAO;AAAW,WAAO;AAE7B,MAAI,CAAC;AAAS,WAAO;AACrB,SACE,6CAAC;AAAA,IACC,SAAS;AAAA,IACT,WAAW,aAAa,QAAQ,KAAK;AAAA,IACrC,eAAc;AAAA,IACd,SAAQ;AAAA,IACR,eAAc;AAAA,IACd,OAAO,EAAE,QAAQ,WAAW,SAAS,iBAAiB,IAAI,IAAI,IAAI;AAAA,IAClE,KAAK;AAAA,IAEL;AAAA,kDAAC;AAAA,QAAK,OAAM;AAAA,QAAK,QAAO;AAAA,QAAK,MAAK;AAAA,QAAQ,QAAO;AAAA,QAAU,aAAY;AAAA,OAAI;AAAA,MAC3E,4CAAC;AAAA,QACC,GAAE;AAAA,QACF,MAAK;AAAA,QACL,QAAO;AAAA,QACP,eAAc;AAAA,QACd,aAAY;AAAA,OACb;AAAA;AAAA,GACH;AAEJ;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -44,11 +44,12 @@ const ScrollBarX = () => {
|
|
|
44
44
|
containerRatio,
|
|
45
45
|
setScrapperPosX,
|
|
46
46
|
isScrollbarVisible,
|
|
47
|
-
|
|
47
|
+
lastPosition
|
|
48
48
|
} = (0, import_react.useContext)(import_ChartContext.ChartContext);
|
|
49
49
|
const barWidth = (0, import_react.useMemo)(() => innerWidth / containerRatio, [containerRatio, innerWidth]);
|
|
50
50
|
const handleMouseDown = (0, import_react.useCallback)(
|
|
51
51
|
(e) => {
|
|
52
|
+
e.stopPropagation();
|
|
52
53
|
setScrapperPosX("");
|
|
53
54
|
setIsGrabbed(true);
|
|
54
55
|
setStartPosition(e.clientX);
|
|
@@ -71,10 +72,10 @@ const ScrollBarX = () => {
|
|
|
71
72
|
newPosition = left - barWidth / 2;
|
|
72
73
|
}
|
|
73
74
|
setXScrollbarPosition(newPosition);
|
|
74
|
-
|
|
75
|
+
lastPosition.current = newPosition;
|
|
75
76
|
e.preventDefault();
|
|
76
77
|
},
|
|
77
|
-
[barWidth, innerWidth,
|
|
78
|
+
[barWidth, innerWidth, lastPosition, setXScrollbarPosition]
|
|
78
79
|
);
|
|
79
80
|
const isBarVisible = (0, import_react.useMemo)(
|
|
80
81
|
() => (isScrollbarVisible || activePoint) && containerRatio > 1,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../src/graphs/Chart/parts/Scroller/ScrollBarX.tsx", "../../../../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
-
"sourcesContent": ["/* eslint-disable arrow-body-style */\n/* eslint-disable indent */\nimport React, { useContext, useCallback, useMemo } from 'react';\nimport { ChartContext } from '../../ChartContext';\n\nexport const ScrollBarX = () => {\n const {\n setIsGrabbed,\n setStartPosition,\n innerWidth,\n xScrollbarPosition,\n activePoint,\n setXScrollbarPosition,\n innerHeight,\n isGrabbed,\n containerRatio,\n setScrapperPosX,\n isScrollbarVisible,\n
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB;AAEA,mBAAwD;AACxD,0BAA6B;AAEtB,MAAM,aAAa,MAAM;AAC9B,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,QAAI,yBAAW,gCAAY;AAE3B,QAAM,eAAW,sBAAQ,MAAM,aAAa,gBAAgB,CAAC,gBAAgB,UAAU,CAAC;AAExF,QAAM,sBAAkB;AAAA,IACtB,CAAC,MAAwB;AACvB,sBAAgB,EAAE;AAClB,mBAAa,IAAI;AACjB,uBAAiB,EAAE,OAAO;AAC1B,QAAE,eAAe;AAAA,IACnB;AAAA,IACA,CAAC,cAAc,iBAAiB,gBAAgB;AAAA,EAClD;AAEA,QAAM,uBAA4C,0BAAY,MAAM;AAClE,oBAAgB,EAAE;AAAA,EACpB,GAAG,CAAC,eAAe,CAAC;AAEpB,QAAM,yBAA8C;AAAA,IAClD,CAAC,MAAM;AACL,UAAI,cAAc;AAClB,YAAM,MAAM,EAAE;AACd,YAAM,SAAS,IAAI,sBAAsB;AACzC,YAAM,OAAO,EAAE,UAAU,OAAO;AAChC,UAAI,OAAO,WAAW,IAAI,YAAY;AACpC,sBAAc,aAAa;AAAA,MAC7B,WAAW,OAAO,WAAW,IAAI,GAAG;AAClC,sBAAc,OAAO,WAAW;AAAA,MAClC;AAEA,4BAAsB,WAAW;AACjC,
|
|
4
|
+
"sourcesContent": ["/* eslint-disable arrow-body-style */\n/* eslint-disable indent */\nimport React, { useContext, useCallback, useMemo } from 'react';\nimport { ChartContext } from '../../ChartContext';\n\nexport const ScrollBarX = () => {\n const {\n setIsGrabbed,\n setStartPosition,\n innerWidth,\n xScrollbarPosition,\n activePoint,\n setXScrollbarPosition,\n innerHeight,\n isGrabbed,\n containerRatio,\n setScrapperPosX,\n isScrollbarVisible,\n lastPosition,\n } = useContext(ChartContext);\n\n const barWidth = useMemo(() => innerWidth / containerRatio, [containerRatio, innerWidth]);\n\n const handleMouseDown = useCallback(\n (e: React.MouseEvent) => {\n e.stopPropagation();\n setScrapperPosX('');\n setIsGrabbed(true);\n setStartPosition(e.clientX);\n e.preventDefault();\n },\n [setIsGrabbed, setScrapperPosX, setStartPosition],\n );\n\n const handleMouseEnter: React.MouseEventHandler = useCallback(() => {\n setScrapperPosX('');\n }, [setScrapperPosX]);\n\n const handleClickFullBar: React.MouseEventHandler = useCallback(\n (e) => {\n let newPosition = 0;\n const bar = e.target as SVGGElement;\n const bounds = bar.getBoundingClientRect();\n const left = e.clientX - bounds.left;\n if (left + barWidth / 2 > innerWidth) {\n newPosition = innerWidth - barWidth;\n } else if (left - barWidth / 2 > 0) {\n newPosition = left - barWidth / 2;\n }\n\n setXScrollbarPosition(newPosition);\n lastPosition.current = newPosition;\n e.preventDefault();\n },\n [barWidth, innerWidth, lastPosition, setXScrollbarPosition],\n );\n\n const isBarVisible = useMemo(\n () => (isScrollbarVisible || activePoint) && containerRatio > 1,\n [activePoint, containerRatio, isScrollbarVisible],\n );\n\n return (\n <g\n className=\"scrollbarx\"\n transform={`translate(0,${innerHeight})`}\n style={{ visibility: isBarVisible ? 'visible' : 'hidden' }}\n onMouseEnter={handleMouseEnter}\n >\n <rect style={{ cursor: 'pointer' }} width={innerWidth} height=\"6\" fill=\"#ebecf0c5\" onClick={handleClickFullBar} />\n <g transform={`translate(${xScrollbarPosition},0)`}>\n <rect\n style={{ cursor: isGrabbed ? 'grabbing' : 'grab' }}\n width={barWidth}\n height=\"6\"\n fill=\"grey\"\n onMouseDown={handleMouseDown}\n />\n </g>\n </g>\n );\n};\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB;AAEA,mBAAwD;AACxD,0BAA6B;AAEtB,MAAM,aAAa,MAAM;AAC9B,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,QAAI,yBAAW,gCAAY;AAE3B,QAAM,eAAW,sBAAQ,MAAM,aAAa,gBAAgB,CAAC,gBAAgB,UAAU,CAAC;AAExF,QAAM,sBAAkB;AAAA,IACtB,CAAC,MAAwB;AACvB,QAAE,gBAAgB;AAClB,sBAAgB,EAAE;AAClB,mBAAa,IAAI;AACjB,uBAAiB,EAAE,OAAO;AAC1B,QAAE,eAAe;AAAA,IACnB;AAAA,IACA,CAAC,cAAc,iBAAiB,gBAAgB;AAAA,EAClD;AAEA,QAAM,uBAA4C,0BAAY,MAAM;AAClE,oBAAgB,EAAE;AAAA,EACpB,GAAG,CAAC,eAAe,CAAC;AAEpB,QAAM,yBAA8C;AAAA,IAClD,CAAC,MAAM;AACL,UAAI,cAAc;AAClB,YAAM,MAAM,EAAE;AACd,YAAM,SAAS,IAAI,sBAAsB;AACzC,YAAM,OAAO,EAAE,UAAU,OAAO;AAChC,UAAI,OAAO,WAAW,IAAI,YAAY;AACpC,sBAAc,aAAa;AAAA,MAC7B,WAAW,OAAO,WAAW,IAAI,GAAG;AAClC,sBAAc,OAAO,WAAW;AAAA,MAClC;AAEA,4BAAsB,WAAW;AACjC,mBAAa,UAAU;AACvB,QAAE,eAAe;AAAA,IACnB;AAAA,IACA,CAAC,UAAU,YAAY,cAAc,qBAAqB;AAAA,EAC5D;AAEA,QAAM,mBAAe;AAAA,IACnB,OAAO,sBAAsB,gBAAgB,iBAAiB;AAAA,IAC9D,CAAC,aAAa,gBAAgB,kBAAkB;AAAA,EAClD;AAEA,SACE,6CAAC;AAAA,IACC,WAAU;AAAA,IACV,WAAW,eAAe;AAAA,IAC1B,OAAO,EAAE,YAAY,eAAe,YAAY,SAAS;AAAA,IACzD,cAAc;AAAA,IAEd;AAAA,kDAAC;AAAA,QAAK,OAAO,EAAE,QAAQ,UAAU;AAAA,QAAG,OAAO;AAAA,QAAY,QAAO;AAAA,QAAI,MAAK;AAAA,QAAY,SAAS;AAAA,OAAoB;AAAA,MAChH,4CAAC;AAAA,QAAE,WAAW,aAAa;AAAA,QACzB,sDAAC;AAAA,UACC,OAAO,EAAE,QAAQ,YAAY,aAAa,OAAO;AAAA,UACjD,OAAO;AAAA,UACP,QAAO;AAAA,UACP,MAAK;AAAA,UACL,aAAa;AAAA,SACf;AAAA,OACF;AAAA;AAAA,GACF;AAEJ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -45,7 +45,7 @@ const ScrollBarY = () => {
|
|
|
45
45
|
setScrapperPosX,
|
|
46
46
|
setScrapperPosY,
|
|
47
47
|
isScrollbarVisible,
|
|
48
|
-
|
|
48
|
+
lastPosition
|
|
49
49
|
} = (0, import_react.useContext)(import_ChartContext.ChartContext);
|
|
50
50
|
const barHeight = (0, import_react.useMemo)(() => parseInt(innerHeight / containerRatio, 10), [containerRatio, innerHeight]);
|
|
51
51
|
const handleMouseDown = (0, import_react.useCallback)(
|
|
@@ -76,10 +76,10 @@ const ScrollBarY = () => {
|
|
|
76
76
|
newPosition = top - barHeight / 2;
|
|
77
77
|
}
|
|
78
78
|
setXScrollbarPosition(newPosition);
|
|
79
|
-
|
|
79
|
+
lastPosition.current = newPosition;
|
|
80
80
|
e.preventDefault();
|
|
81
81
|
},
|
|
82
|
-
[barHeight, innerHeight,
|
|
82
|
+
[barHeight, innerHeight, lastPosition, setXScrollbarPosition]
|
|
83
83
|
);
|
|
84
84
|
const isBarVisible = (0, import_react.useMemo)(
|
|
85
85
|
() => (isScrollbarVisible || activePoint) && containerRatio > 1,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../src/graphs/Chart/parts/Scroller/ScrollBarY.tsx", "../../../../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
-
"sourcesContent": ["/* eslint-disable arrow-body-style */\n/* eslint-disable indent */\nimport React, { useContext, useCallback, useMemo } from 'react';\nimport { ChartContext } from '../../ChartContext';\n\nexport const ScrollBarY = () => {\n const {\n setIsGrabbed,\n setStartPosition,\n innerWidth,\n xScrollbarPosition,\n activePoint,\n setXScrollbarPosition,\n innerHeight,\n isGrabbed,\n containerRatio,\n setScrapperPosX,\n setScrapperPosY,\n isScrollbarVisible,\n
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB;AAEA,mBAAwD;AACxD,0BAA6B;AAEtB,MAAM,aAAa,MAAM;AAC9B,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,QAAI,yBAAW,gCAAY;AAE3B,QAAM,gBAAY,sBAAQ,MAAM,SAAS,cAAc,gBAAgB,EAAE,GAAG,CAAC,gBAAgB,WAAW,CAAC;AAEzG,QAAM,sBAAkB;AAAA,IACtB,CAAC,MAAwB;AACvB,sBAAgB,EAAE;AAClB,sBAAgB,EAAE;AAClB,mBAAa,IAAI;AACjB,uBAAiB,EAAE,OAAO;AAC1B,QAAE,eAAe;AAAA,IACnB;AAAA,IACA,CAAC,cAAc,iBAAiB,iBAAiB,gBAAgB;AAAA,EACnE;AAEA,QAAM,uBAAmB;AAAA,IACvB,CAAC,MAAwB;AACvB,sBAAgB,EAAE;AAAA,IACpB;AAAA,IACA,CAAC,eAAe;AAAA,EAClB;AAEA,QAAM,yBAAqB;AAAA,IACzB,CAAC,MAAwB;AACvB,UAAI,cAAc;AAClB,YAAM,MAAM,EAAE;AACd,YAAM,SAAS,IAAI,sBAAsB;AACzC,YAAM,MAAM,EAAE,UAAU,OAAO;AAC/B,UAAI,MAAM,YAAY,IAAI,aAAa;AACrC,sBAAc,cAAc;AAAA,MAC9B,WAAW,MAAM,YAAY,IAAI,GAAG;AAClC,sBAAc,MAAM,YAAY;AAAA,MAClC;AAEA,4BAAsB,WAAW;AACjC,
|
|
4
|
+
"sourcesContent": ["/* eslint-disable arrow-body-style */\n/* eslint-disable indent */\nimport React, { useContext, useCallback, useMemo } from 'react';\nimport { ChartContext } from '../../ChartContext';\n\nexport const ScrollBarY = () => {\n const {\n setIsGrabbed,\n setStartPosition,\n innerWidth,\n xScrollbarPosition,\n activePoint,\n setXScrollbarPosition,\n innerHeight,\n isGrabbed,\n containerRatio,\n setScrapperPosX,\n setScrapperPosY,\n isScrollbarVisible,\n lastPosition,\n } = useContext(ChartContext);\n\n const barHeight = useMemo(() => parseInt(innerHeight / containerRatio, 10), [containerRatio, innerHeight]);\n\n const handleMouseDown = useCallback(\n (e: React.MouseEvent) => {\n setScrapperPosX('');\n setScrapperPosY('');\n setIsGrabbed(true);\n setStartPosition(e.clientY);\n e.preventDefault();\n },\n [setIsGrabbed, setScrapperPosY, setScrapperPosX, setStartPosition],\n );\n\n const handleMouseEnter = useCallback(\n (e: React.MouseEvent) => {\n setScrapperPosX('');\n },\n [setScrapperPosX],\n );\n\n const handleClickFullBar = useCallback(\n (e: React.MouseEvent) => {\n let newPosition = 0;\n const bar = e.target;\n const bounds = bar.getBoundingClientRect();\n const top = e.clientY - bounds.top;\n if (top + barHeight / 2 > innerHeight) {\n newPosition = innerHeight - barHeight;\n } else if (top - barHeight / 2 > 0) {\n newPosition = top - barHeight / 2;\n }\n\n setXScrollbarPosition(newPosition);\n lastPosition.current = newPosition;\n e.preventDefault();\n },\n [barHeight, innerHeight, lastPosition, setXScrollbarPosition],\n );\n\n const isBarVisible = useMemo(\n () => (isScrollbarVisible || activePoint) && containerRatio > 1,\n [activePoint, containerRatio, isScrollbarVisible],\n );\n\n return (\n <g\n className=\"scrollbary\"\n transform=\"translate(-6,0)\"\n style={{ visibility: isBarVisible ? 'visible' : 'hidden' }}\n onMouseEnter={handleMouseEnter}\n >\n <rect\n style={{ cursor: 'pointer' }}\n width=\"6\"\n height={innerHeight}\n fill=\"#ebecf0c5\"\n onClick={handleClickFullBar}\n />\n <g transform={`translate(0,${xScrollbarPosition})`}>\n <rect\n style={{ cursor: isGrabbed ? 'grabbing' : 'grab' }}\n width=\"6\"\n height={barHeight}\n fill=\"grey\"\n onMouseDown={handleMouseDown}\n />\n </g>\n </g>\n );\n};\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB;AAEA,mBAAwD;AACxD,0BAA6B;AAEtB,MAAM,aAAa,MAAM;AAC9B,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,QAAI,yBAAW,gCAAY;AAE3B,QAAM,gBAAY,sBAAQ,MAAM,SAAS,cAAc,gBAAgB,EAAE,GAAG,CAAC,gBAAgB,WAAW,CAAC;AAEzG,QAAM,sBAAkB;AAAA,IACtB,CAAC,MAAwB;AACvB,sBAAgB,EAAE;AAClB,sBAAgB,EAAE;AAClB,mBAAa,IAAI;AACjB,uBAAiB,EAAE,OAAO;AAC1B,QAAE,eAAe;AAAA,IACnB;AAAA,IACA,CAAC,cAAc,iBAAiB,iBAAiB,gBAAgB;AAAA,EACnE;AAEA,QAAM,uBAAmB;AAAA,IACvB,CAAC,MAAwB;AACvB,sBAAgB,EAAE;AAAA,IACpB;AAAA,IACA,CAAC,eAAe;AAAA,EAClB;AAEA,QAAM,yBAAqB;AAAA,IACzB,CAAC,MAAwB;AACvB,UAAI,cAAc;AAClB,YAAM,MAAM,EAAE;AACd,YAAM,SAAS,IAAI,sBAAsB;AACzC,YAAM,MAAM,EAAE,UAAU,OAAO;AAC/B,UAAI,MAAM,YAAY,IAAI,aAAa;AACrC,sBAAc,cAAc;AAAA,MAC9B,WAAW,MAAM,YAAY,IAAI,GAAG;AAClC,sBAAc,MAAM,YAAY;AAAA,MAClC;AAEA,4BAAsB,WAAW;AACjC,mBAAa,UAAU;AACvB,QAAE,eAAe;AAAA,IACnB;AAAA,IACA,CAAC,WAAW,aAAa,cAAc,qBAAqB;AAAA,EAC9D;AAEA,QAAM,mBAAe;AAAA,IACnB,OAAO,sBAAsB,gBAAgB,iBAAiB;AAAA,IAC9D,CAAC,aAAa,gBAAgB,kBAAkB;AAAA,EAClD;AAEA,SACE,6CAAC;AAAA,IACC,WAAU;AAAA,IACV,WAAU;AAAA,IACV,OAAO,EAAE,YAAY,eAAe,YAAY,SAAS;AAAA,IACzD,cAAc;AAAA,IAEd;AAAA,kDAAC;AAAA,QACC,OAAO,EAAE,QAAQ,UAAU;AAAA,QAC3B,OAAM;AAAA,QACN,QAAQ;AAAA,QACR,MAAK;AAAA,QACL,SAAS;AAAA,OACX;AAAA,MACA,4CAAC;AAAA,QAAE,WAAW,eAAe;AAAA,QAC3B,sDAAC;AAAA,UACC,OAAO,EAAE,QAAQ,YAAY,aAAa,OAAO;AAAA,UACjD,OAAM;AAAA,UACN,QAAQ;AAAA,UACR,MAAK;AAAA,UACL,aAAa;AAAA,SACf;AAAA,OACF;AAAA;AAAA,GACF;AAEJ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|