@semcore/d3-chart 2.2.6 → 2.3.0-1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +3 -9
- package/lib/cjs/Area.js +16 -9
- package/lib/cjs/Area.js.map +1 -1
- package/lib/cjs/Axis.js +56 -17
- package/lib/cjs/Axis.js.map +1 -1
- package/lib/cjs/Bar.js +20 -9
- package/lib/cjs/Bar.js.map +1 -1
- package/lib/cjs/Bubble.js +20 -11
- package/lib/cjs/Bubble.js.map +1 -1
- package/lib/cjs/ClipPath.js +1 -0
- package/lib/cjs/ClipPath.js.map +1 -1
- package/lib/cjs/Donut.js +22 -12
- package/lib/cjs/Donut.js.map +1 -1
- package/lib/cjs/Dots.js +10 -9
- package/lib/cjs/Dots.js.map +1 -1
- package/lib/cjs/GroupBar.js +12 -8
- package/lib/cjs/GroupBar.js.map +1 -1
- package/lib/cjs/HorizontalBar.js +20 -9
- package/lib/cjs/HorizontalBar.js.map +1 -1
- package/lib/cjs/Hover.js +8 -4
- package/lib/cjs/Hover.js.map +1 -1
- package/lib/cjs/Line.js +15 -9
- package/lib/cjs/Line.js.map +1 -1
- package/lib/cjs/Plot.js +46 -8
- package/lib/cjs/Plot.js.map +1 -1
- package/lib/cjs/RadialTree.js +25 -13
- package/lib/cjs/RadialTree.js.map +1 -1
- package/lib/cjs/ReferenceLine.js +10 -10
- package/lib/cjs/ResponsiveContainer.js +0 -1
- package/lib/cjs/ResponsiveContainer.js.map +1 -1
- package/lib/cjs/ScatterPlot.js +17 -8
- package/lib/cjs/ScatterPlot.js.map +1 -1
- package/lib/cjs/StackBar.js +12 -8
- package/lib/cjs/StackBar.js.map +1 -1
- package/lib/cjs/StackedArea.js +8 -7
- package/lib/cjs/StackedArea.js.map +1 -1
- package/lib/cjs/Tooltip.js +8 -8
- package/lib/cjs/Venn.js +25 -9
- package/lib/cjs/Venn.js.map +1 -1
- package/lib/cjs/a11y/PlotA11yModule.js +185 -0
- package/lib/cjs/a11y/PlotA11yModule.js.map +1 -0
- package/lib/cjs/a11y/PlotA11yView.js +285 -0
- package/lib/cjs/a11y/PlotA11yView.js.map +1 -0
- package/lib/cjs/a11y/bezier.js +44 -0
- package/lib/cjs/a11y/bezier.js.map +1 -0
- package/lib/cjs/a11y/datasets/charts-a11y.js +591 -0
- package/lib/cjs/a11y/datasets/charts-a11y.js.map +1 -0
- package/lib/cjs/a11y/datasets/gold.json +7961 -0
- package/lib/cjs/a11y/datasets/imdb.json +10002 -0
- package/lib/cjs/a11y/datasets/readme.md +5 -0
- package/lib/cjs/a11y/datasets/stores.json +6274 -0
- package/lib/cjs/a11y/datasets/titanic.json +5436 -0
- package/lib/cjs/a11y/focus.js +57 -0
- package/lib/cjs/a11y/focus.js.map +1 -0
- package/lib/cjs/a11y/hints.js +141 -0
- package/lib/cjs/a11y/hints.js.map +1 -0
- package/lib/cjs/a11y/insights.js +785 -0
- package/lib/cjs/a11y/insights.js.map +1 -0
- package/lib/cjs/a11y/intl.js +31 -0
- package/lib/cjs/a11y/intl.js.map +1 -0
- package/lib/cjs/a11y/locale.js +48 -0
- package/lib/cjs/a11y/locale.js.map +1 -0
- package/lib/cjs/a11y/serialize.js +439 -0
- package/lib/cjs/a11y/serialize.js.map +1 -0
- package/lib/cjs/a11y/summarize.js +21 -0
- package/lib/cjs/a11y/summarize.js.map +1 -0
- package/lib/cjs/a11y/translations/module/de.json +5 -0
- package/lib/cjs/a11y/translations/module/en.json +5 -0
- package/lib/cjs/a11y/translations/module/es.json +5 -0
- package/lib/cjs/a11y/translations/module/fr.json +5 -0
- package/lib/cjs/a11y/translations/module/it.json +5 -0
- package/lib/cjs/a11y/translations/module/ja.json +5 -0
- package/lib/cjs/a11y/translations/module/ko.json +5 -0
- package/lib/cjs/a11y/translations/module/pt.json +5 -0
- package/lib/cjs/a11y/translations/module/tr.json +5 -0
- package/lib/cjs/a11y/translations/module/translations.js +46 -0
- package/lib/cjs/a11y/translations/module/translations.js.map +1 -0
- package/lib/cjs/a11y/translations/module/vi.json +5 -0
- package/lib/cjs/a11y/translations/module/zh.json +5 -0
- package/lib/cjs/a11y/translations/view/de.json +42 -0
- package/lib/cjs/a11y/translations/view/en.csv +41 -0
- package/lib/cjs/a11y/translations/view/en.json +42 -0
- package/lib/cjs/a11y/translations/view/es.json +42 -0
- package/lib/cjs/a11y/translations/view/fr.json +42 -0
- package/lib/cjs/a11y/translations/view/it.json +42 -0
- package/lib/cjs/a11y/translations/view/ja.json +42 -0
- package/lib/cjs/a11y/translations/view/ko.json +42 -0
- package/lib/cjs/a11y/translations/view/pt.json +42 -0
- package/lib/cjs/a11y/translations/view/tr.json +42 -0
- package/lib/cjs/a11y/translations/view/translations.js +46 -0
- package/lib/cjs/a11y/translations/view/translations.js.map +1 -0
- package/lib/cjs/a11y/translations/view/vi.json +42 -0
- package/lib/cjs/a11y/translations/view/zh.json +42 -0
- package/lib/cjs/createElement.js +3 -1
- package/lib/cjs/createElement.js.map +1 -1
- package/lib/cjs/style/plot.shadow.css +10 -0
- package/lib/cjs/style/plotA11yModule.shadow.css +13 -0
- package/lib/cjs/style/plotA11yView.shadow.css +39 -0
- package/lib/cjs/types/Plot.d.ts +75 -0
- package/lib/cjs/utils.js +9 -1
- package/lib/cjs/utils.js.map +1 -1
- package/lib/es6/Area.js +16 -9
- package/lib/es6/Area.js.map +1 -1
- package/lib/es6/Axis.js +56 -17
- package/lib/es6/Axis.js.map +1 -1
- package/lib/es6/Bar.js +20 -9
- package/lib/es6/Bar.js.map +1 -1
- package/lib/es6/Bubble.js +20 -11
- package/lib/es6/Bubble.js.map +1 -1
- package/lib/es6/ClipPath.js +1 -0
- package/lib/es6/ClipPath.js.map +1 -1
- package/lib/es6/Donut.js +22 -12
- package/lib/es6/Donut.js.map +1 -1
- package/lib/es6/Dots.js +10 -9
- package/lib/es6/Dots.js.map +1 -1
- package/lib/es6/GroupBar.js +12 -8
- package/lib/es6/GroupBar.js.map +1 -1
- package/lib/es6/HorizontalBar.js +20 -9
- package/lib/es6/HorizontalBar.js.map +1 -1
- package/lib/es6/Hover.js +8 -4
- package/lib/es6/Hover.js.map +1 -1
- package/lib/es6/Line.js +15 -9
- package/lib/es6/Line.js.map +1 -1
- package/lib/es6/Plot.js +48 -9
- package/lib/es6/Plot.js.map +1 -1
- package/lib/es6/RadialTree.js +25 -13
- package/lib/es6/RadialTree.js.map +1 -1
- package/lib/es6/ReferenceLine.js +10 -10
- package/lib/es6/ResponsiveContainer.js +0 -1
- package/lib/es6/ResponsiveContainer.js.map +1 -1
- package/lib/es6/ScatterPlot.js +17 -8
- package/lib/es6/ScatterPlot.js.map +1 -1
- package/lib/es6/StackBar.js +12 -8
- package/lib/es6/StackBar.js.map +1 -1
- package/lib/es6/StackedArea.js +8 -7
- package/lib/es6/StackedArea.js.map +1 -1
- package/lib/es6/Tooltip.js +8 -8
- package/lib/es6/Venn.js +25 -9
- package/lib/es6/Venn.js.map +1 -1
- package/lib/es6/a11y/PlotA11yModule.js +160 -0
- package/lib/es6/a11y/PlotA11yModule.js.map +1 -0
- package/lib/es6/a11y/PlotA11yView.js +254 -0
- package/lib/es6/a11y/PlotA11yView.js.map +1 -0
- package/lib/es6/a11y/bezier.js +35 -0
- package/lib/es6/a11y/bezier.js.map +1 -0
- package/lib/es6/a11y/datasets/charts-a11y.js +590 -0
- package/lib/es6/a11y/datasets/charts-a11y.js.map +1 -0
- package/lib/es6/a11y/datasets/gold.json +7961 -0
- package/lib/es6/a11y/datasets/imdb.json +10002 -0
- package/lib/es6/a11y/datasets/readme.md +5 -0
- package/lib/es6/a11y/datasets/stores.json +6274 -0
- package/lib/es6/a11y/datasets/titanic.json +5436 -0
- package/lib/es6/a11y/focus.js +48 -0
- package/lib/es6/a11y/focus.js.map +1 -0
- package/lib/es6/a11y/hints.js +123 -0
- package/lib/es6/a11y/hints.js.map +1 -0
- package/lib/es6/a11y/insights.js +779 -0
- package/lib/es6/a11y/insights.js.map +1 -0
- package/lib/es6/a11y/intl.js +18 -0
- package/lib/es6/a11y/intl.js.map +1 -0
- package/lib/es6/a11y/locale.js +36 -0
- package/lib/es6/a11y/locale.js.map +1 -0
- package/lib/es6/a11y/serialize.js +423 -0
- package/lib/es6/a11y/serialize.js.map +1 -0
- package/lib/es6/a11y/summarize.js +10 -0
- package/lib/es6/a11y/summarize.js.map +1 -0
- package/lib/es6/a11y/translations/module/de.json +5 -0
- package/lib/es6/a11y/translations/module/en.json +5 -0
- package/lib/es6/a11y/translations/module/es.json +5 -0
- package/lib/es6/a11y/translations/module/fr.json +5 -0
- package/lib/es6/a11y/translations/module/it.json +5 -0
- package/lib/es6/a11y/translations/module/ja.json +5 -0
- package/lib/es6/a11y/translations/module/ko.json +5 -0
- package/lib/es6/a11y/translations/module/pt.json +5 -0
- package/lib/es6/a11y/translations/module/tr.json +5 -0
- package/lib/es6/a11y/translations/module/translations.js +25 -0
- package/lib/es6/a11y/translations/module/translations.js.map +1 -0
- package/lib/es6/a11y/translations/module/vi.json +5 -0
- package/lib/es6/a11y/translations/module/zh.json +5 -0
- package/lib/es6/a11y/translations/view/de.json +42 -0
- package/lib/es6/a11y/translations/view/en.csv +41 -0
- package/lib/es6/a11y/translations/view/en.json +42 -0
- package/lib/es6/a11y/translations/view/es.json +42 -0
- package/lib/es6/a11y/translations/view/fr.json +42 -0
- package/lib/es6/a11y/translations/view/it.json +42 -0
- package/lib/es6/a11y/translations/view/ja.json +42 -0
- package/lib/es6/a11y/translations/view/ko.json +42 -0
- package/lib/es6/a11y/translations/view/pt.json +42 -0
- package/lib/es6/a11y/translations/view/tr.json +42 -0
- package/lib/es6/a11y/translations/view/translations.js +25 -0
- package/lib/es6/a11y/translations/view/translations.js.map +1 -0
- package/lib/es6/a11y/translations/view/vi.json +42 -0
- package/lib/es6/a11y/translations/view/zh.json +42 -0
- package/lib/es6/createElement.js +3 -1
- package/lib/es6/createElement.js.map +1 -1
- package/lib/es6/style/plot.shadow.css +10 -0
- package/lib/es6/style/plotA11yModule.shadow.css +13 -0
- package/lib/es6/style/plotA11yView.shadow.css +39 -0
- package/lib/es6/types/Plot.d.ts +75 -0
- package/lib/es6/utils.js +5 -0
- package/lib/es6/utils.js.map +1 -1
- package/lib/types/Plot.d.ts +75 -0
- package/lib/types/a11y/PlotA11yModule.d.ts +12 -0
- package/lib/types/a11y/PlotA11yView.d.ts +3 -0
- package/lib/types/a11y/bezier.d.ts +8 -0
- package/lib/types/a11y/datasets/charts-a11y.d.ts +0 -0
- package/lib/types/a11y/focus.d.ts +5 -0
- package/lib/types/a11y/hints.d.ts +99 -0
- package/lib/types/a11y/insights.d.ts +54 -0
- package/lib/types/a11y/intl.d.ts +8 -0
- package/lib/types/a11y/locale.d.ts +3 -0
- package/lib/types/a11y/serialize.d.ts +16 -0
- package/lib/types/a11y/summarize.d.ts +2 -0
- package/lib/types/a11y/translations/module/translations.d.ts +5 -0
- package/lib/types/a11y/translations/view/translations.d.ts +5 -0
- package/lib/types/utils.d.ts +1 -0
- package/package.json +3 -2
package/lib/es6/ScatterPlot.js
CHANGED
|
@@ -29,16 +29,16 @@ var style = (
|
|
|
29
29
|
/*__reshadow_css_start__*/
|
|
30
30
|
_sstyled.insert(
|
|
31
31
|
/*__inner_css_start__*/
|
|
32
|
-
".
|
|
32
|
+
".___SScatterPlot_v1s0r_gg_{fill:#2bb3ff;transition-property:cx,cy;transition-duration:var(--duration_v1s0r);transition-timing-function:ease-in-out;opacity:.5}.___SScatterPlot_v1s0r_gg_:hover{opacity:.8}.___SScatterPlot_v1s0r_gg_.__color_v1s0r_gg_{fill:var(--color_v1s0r)}.___SValue_v1s0r_gg_{text-anchor:middle;font-size:10px;stroke:#008ff8}.___SValue_v1s0r_gg_.__color_v1s0r_gg_{stroke:var(--color_v1s0r)}"
|
|
33
33
|
/*__inner_css_end__*/
|
|
34
|
-
, "
|
|
34
|
+
, "v1s0r_gg_")
|
|
35
35
|
/*__reshadow_css_end__*/
|
|
36
36
|
, {
|
|
37
|
-
"__SScatterPlot": "
|
|
38
|
-
"--duration": "--
|
|
39
|
-
"_color": "
|
|
40
|
-
"--color": "--
|
|
41
|
-
"__SValue": "
|
|
37
|
+
"__SScatterPlot": "___SScatterPlot_v1s0r_gg_",
|
|
38
|
+
"--duration": "--duration_v1s0r",
|
|
39
|
+
"_color": "__color_v1s0r_gg_",
|
|
40
|
+
"--color": "--color_v1s0r",
|
|
41
|
+
"__SValue": "___SValue_v1s0r_gg_"
|
|
42
42
|
});
|
|
43
43
|
import ClipPath from './ClipPath';
|
|
44
44
|
|
|
@@ -141,6 +141,7 @@ var ScatterPlotRoot = /*#__PURE__*/function (_Component) {
|
|
|
141
141
|
var SScatterPlot = this.Element;
|
|
142
142
|
var SValue = 'text';
|
|
143
143
|
return _ref = sstyled(styles), /*#__PURE__*/React.createElement("g", _ref.cn("g", {
|
|
144
|
+
"aria-hidden": true,
|
|
144
145
|
"key": "circle(#".concat(i, ")"),
|
|
145
146
|
"onMouseMove": this.bindHandlerTooltip(true, _objectSpread(_objectSpread({}, this.props), {}, {
|
|
146
147
|
xIndex: i
|
|
@@ -149,6 +150,7 @@ var ScatterPlotRoot = /*#__PURE__*/function (_Component) {
|
|
|
149
150
|
xIndex: i
|
|
150
151
|
}))
|
|
151
152
|
}), /*#__PURE__*/React.createElement(SScatterPlot, _ref.cn("SScatterPlot", {
|
|
153
|
+
"aria-hidden": true,
|
|
152
154
|
"id": "".concat(uid).concat(i),
|
|
153
155
|
"index": i,
|
|
154
156
|
"render": "circle",
|
|
@@ -159,6 +161,7 @@ var ScatterPlotRoot = /*#__PURE__*/function (_Component) {
|
|
|
159
161
|
"r": r,
|
|
160
162
|
"use:duration": "".concat(duration, "ms")
|
|
161
163
|
})), d[value] && /*#__PURE__*/React.createElement(SValue, _ref.cn("SValue", {
|
|
164
|
+
"aria-hidden": true,
|
|
162
165
|
"x": xScale(d[x]) + offset[0],
|
|
163
166
|
"y": yScale(d[y]) + offset[1],
|
|
164
167
|
"dy": ".3em",
|
|
@@ -172,7 +175,10 @@ var ScatterPlotRoot = /*#__PURE__*/function (_Component) {
|
|
|
172
175
|
var _this$asProps3 = this.asProps,
|
|
173
176
|
data = _this$asProps3.data,
|
|
174
177
|
uid = _this$asProps3.uid,
|
|
175
|
-
scale = _this$asProps3.scale
|
|
178
|
+
scale = _this$asProps3.scale,
|
|
179
|
+
x = _this$asProps3.x,
|
|
180
|
+
y = _this$asProps3.y,
|
|
181
|
+
value = _this$asProps3.value;
|
|
176
182
|
|
|
177
183
|
var _scale2 = _slicedToArray(scale, 2),
|
|
178
184
|
xScale = _scale2[0],
|
|
@@ -182,7 +188,10 @@ var ScatterPlotRoot = /*#__PURE__*/function (_Component) {
|
|
|
182
188
|
var ySize = Math.abs(yScale.range()[0] - yScale.range()[1]);
|
|
183
189
|
var xMargin = Math.min(xScale.range()[0], xScale.range()[1]);
|
|
184
190
|
var yMargin = Math.min(yScale.range()[0], yScale.range()[1]);
|
|
191
|
+
this.asProps.dataHintsHandler.specifyDataRowFields(x, y, value);
|
|
192
|
+
this.asProps.dataHintsHandler.establishDataType('points-cloud');
|
|
185
193
|
return /*#__PURE__*/React.createElement(React.Fragment, null, data.map(this.renderCircle.bind(this)), /*#__PURE__*/React.createElement(ClipPath, {
|
|
194
|
+
"aria-hidden": true,
|
|
186
195
|
id: uid,
|
|
187
196
|
x: xMargin,
|
|
188
197
|
y: yMargin,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScatterPlot.js","names":["React","Component","sstyled","canUseDOM","CONSTANT","createElement","uniqueIDEnhancement","transition","ClipPath","ScatterPlotRoot","document","visible","props","x","clientX","y","clientY","eventEmitter","asProps","virtualElement","getBoundingClientRect","generateGetBoundingClientRect","VIRTUAL_ELEMENT","emit","width","height","top","right","bottom","left","duration","uid","r","value","radius","selectRect","selection","selectAll","attr","selectRectNode","node","animationCircle","d","i","color","scale","offset","styles","valueColor","xScale","yScale","SScatterPlot","Element","SValue","bindHandlerTooltip","xIndex","data","xSize","Math","abs","range","ySize","xMargin","min","yMargin","map","renderCircle","bind","style","ScatterPlot"],"sources":["../../src/ScatterPlot.jsx"],"sourcesContent":["import React from 'react';\nimport { Component, sstyled } from '@semcore/core';\nimport canUseDOM from '@semcore/utils/lib/canUseDOM';\nimport { CONSTANT } from './utils';\nimport createElement from './createElement';\nimport uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';\nimport { transition } from 'd3-transition';\nimport style from './style/scatterplot.shadow.css';\nimport ClipPath from './ClipPath';\n\nclass ScatterPlotRoot extends Component {\n static displayName = 'ScatterPlot';\n static style = style;\n static enhance = [uniqueIDEnhancement()];\n\n static defaultProps = {\n offset: [0, 0],\n duration: 500,\n };\n\n virtualElement = canUseDOM() ? document.createElement('div') : {};\n\n generateGetBoundingClientRect(x = 0, y = 0) {\n return () => ({ width: 0, height: 0, top: y, right: x, bottom: y, left: x });\n }\n\n bindHandlerTooltip =\n (visible, props) =>\n ({ clientX: x, clientY: y }) => {\n const { eventEmitter } = this.asProps;\n this.virtualElement.getBoundingClientRect = this.generateGetBoundingClientRect(x, y);\n this.virtualElement[CONSTANT.VIRTUAL_ELEMENT] = true;\n eventEmitter.emit('onTooltipVisible', visible, props, this.virtualElement);\n };\n\n animationCircle() {\n const { duration, uid, r, value } = this.asProps;\n const radius = r ? r : value ? 12 : 5.5;\n const selectRect = transition().selection().selectAll(`[id^=${uid}]`).attr('r', 0);\n const selectRectNode = selectRect.node();\n\n if (duration > 0 && selectRectNode) {\n selectRect.transition().duration(duration).attr('r', radius);\n }\n }\n\n componentDidUpdate() {\n this.animationCircle();\n }\n\n componentDidMount() {\n this.animationCircle();\n }\n\n renderCircle(d, i) {\n const { color, scale, x, y, r, offset, styles, uid, duration, value, valueColor } =\n this.asProps;\n const [xScale, yScale] = scale;\n const SScatterPlot = this.Element;\n const SValue = 'text';\n return sstyled(styles)(\n <g\n key={`circle(#${i})`}\n onMouseMove={this.bindHandlerTooltip(true, { ...this.props, xIndex: i })}\n onMouseLeave={this.bindHandlerTooltip(false, { ...this.props, xIndex: i })}\n >\n <SScatterPlot\n id={`${uid}${i}`}\n index={i}\n render=\"circle\"\n clipPath={`url(#${uid})`}\n cx={xScale(d[x]) + offset[0]}\n cy={yScale(d[y]) + offset[1]}\n color={color}\n r={r}\n use:duration={`${duration}ms`}\n />\n {d[value] && (\n <SValue\n x={xScale(d[x]) + offset[0]}\n y={yScale(d[y]) + offset[1]}\n dy=\".3em\"\n clipPath={`url(#${uid})`}\n color={valueColor}\n >\n {d[value]}\n </SValue>\n )}\n </g>,\n );\n }\n\n render() {\n const { data, uid, scale } = this.asProps;\n const [xScale, yScale] = scale;\n const xSize = Math.abs(xScale.range()[0] - xScale.range()[1]);\n const ySize = Math.abs(yScale.range()[0] - yScale.range()[1]);\n const xMargin = Math.min(xScale.range()[0], xScale.range()[1]);\n const yMargin = Math.min(yScale.range()[0], yScale.range()[1]);\n\n return (\n <>\n {data.map(this.renderCircle.bind(this))}\n <ClipPath
|
|
1
|
+
{"version":3,"file":"ScatterPlot.js","names":["React","Component","sstyled","canUseDOM","CONSTANT","createElement","uniqueIDEnhancement","transition","ClipPath","ScatterPlotRoot","document","visible","props","x","clientX","y","clientY","eventEmitter","asProps","virtualElement","getBoundingClientRect","generateGetBoundingClientRect","VIRTUAL_ELEMENT","emit","width","height","top","right","bottom","left","duration","uid","r","value","radius","selectRect","selection","selectAll","attr","selectRectNode","node","animationCircle","d","i","color","scale","offset","styles","valueColor","xScale","yScale","SScatterPlot","Element","SValue","bindHandlerTooltip","xIndex","data","xSize","Math","abs","range","ySize","xMargin","min","yMargin","dataHintsHandler","specifyDataRowFields","establishDataType","map","renderCircle","bind","style","ScatterPlot"],"sources":["../../src/ScatterPlot.jsx"],"sourcesContent":["import React from 'react';\nimport { Component, sstyled } from '@semcore/core';\nimport canUseDOM from '@semcore/utils/lib/canUseDOM';\nimport { CONSTANT } from './utils';\nimport createElement from './createElement';\nimport uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';\nimport { transition } from 'd3-transition';\nimport style from './style/scatterplot.shadow.css';\nimport ClipPath from './ClipPath';\n\nclass ScatterPlotRoot extends Component {\n static displayName = 'ScatterPlot';\n static style = style;\n static enhance = [uniqueIDEnhancement()];\n\n static defaultProps = {\n offset: [0, 0],\n duration: 500,\n };\n\n virtualElement = canUseDOM() ? document.createElement('div') : {};\n\n generateGetBoundingClientRect(x = 0, y = 0) {\n return () => ({ width: 0, height: 0, top: y, right: x, bottom: y, left: x });\n }\n\n bindHandlerTooltip =\n (visible, props) =>\n ({ clientX: x, clientY: y }) => {\n const { eventEmitter } = this.asProps;\n this.virtualElement.getBoundingClientRect = this.generateGetBoundingClientRect(x, y);\n this.virtualElement[CONSTANT.VIRTUAL_ELEMENT] = true;\n eventEmitter.emit('onTooltipVisible', visible, props, this.virtualElement);\n };\n\n animationCircle() {\n const { duration, uid, r, value } = this.asProps;\n const radius = r ? r : value ? 12 : 5.5;\n const selectRect = transition().selection().selectAll(`[id^=${uid}]`).attr('r', 0);\n const selectRectNode = selectRect.node();\n\n if (duration > 0 && selectRectNode) {\n selectRect.transition().duration(duration).attr('r', radius);\n }\n }\n\n componentDidUpdate() {\n this.animationCircle();\n }\n\n componentDidMount() {\n this.animationCircle();\n }\n\n renderCircle(d, i) {\n const { color, scale, x, y, r, offset, styles, uid, duration, value, valueColor } =\n this.asProps;\n const [xScale, yScale] = scale;\n const SScatterPlot = this.Element;\n const SValue = 'text';\n\n return sstyled(styles)(\n <g\n aria-hidden\n key={`circle(#${i})`}\n onMouseMove={this.bindHandlerTooltip(true, { ...this.props, xIndex: i })}\n onMouseLeave={this.bindHandlerTooltip(false, { ...this.props, xIndex: i })}\n >\n <SScatterPlot\n aria-hidden\n id={`${uid}${i}`}\n index={i}\n render=\"circle\"\n clipPath={`url(#${uid})`}\n cx={xScale(d[x]) + offset[0]}\n cy={yScale(d[y]) + offset[1]}\n color={color}\n r={r}\n use:duration={`${duration}ms`}\n />\n {d[value] && (\n <SValue\n aria-hidden\n x={xScale(d[x]) + offset[0]}\n y={yScale(d[y]) + offset[1]}\n dy=\".3em\"\n clipPath={`url(#${uid})`}\n color={valueColor}\n >\n {d[value]}\n </SValue>\n )}\n </g>,\n );\n }\n\n render() {\n const { data, uid, scale, x, y, value } = this.asProps;\n const [xScale, yScale] = scale;\n const xSize = Math.abs(xScale.range()[0] - xScale.range()[1]);\n const ySize = Math.abs(yScale.range()[0] - yScale.range()[1]);\n const xMargin = Math.min(xScale.range()[0], xScale.range()[1]);\n const yMargin = Math.min(yScale.range()[0], yScale.range()[1]);\n\n this.asProps.dataHintsHandler.specifyDataRowFields(x, y, value);\n this.asProps.dataHintsHandler.establishDataType('points-cloud');\n\n return (\n <>\n {data.map(this.renderCircle.bind(this))}\n <ClipPath\n aria-hidden\n id={uid}\n x={xMargin}\n y={yMargin}\n width={`${xSize}px`}\n height={`${ySize}px`}\n />\n </>\n );\n }\n}\n\nconst ScatterPlot = createElement(ScatterPlotRoot);\n\nexport default ScatterPlot;\n"],"mappings":"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"}
|
package/lib/es6/StackBar.js
CHANGED
|
@@ -27,15 +27,15 @@ var _ref = (
|
|
|
27
27
|
/*__reshadow_css_start__*/
|
|
28
28
|
__css__(
|
|
29
29
|
/*__inner_css_start__*/
|
|
30
|
-
".
|
|
30
|
+
".___SBar_dgtls_gg_{fill:#2bb3ff;transition-property:height,width,y;transition-duration:var(--duration);transition-timing-function:ease-in-out}.___SBar_dgtls_gg_.__color_dgtls_gg_{fill:var(--color)}.___SBar_dgtls_gg_.__hide_dgtls_gg_{display:none}.___SBackground_dgtls_gg_{fill:#c4c7cf}"
|
|
31
31
|
/*__inner_css_end__*/
|
|
32
|
-
, "
|
|
32
|
+
, "1iyvh36_gg_")
|
|
33
33
|
/*__reshadow_css_end__*/
|
|
34
34
|
, {
|
|
35
|
-
"__SBar": "
|
|
36
|
-
"_color": "
|
|
37
|
-
"_hide": "
|
|
38
|
-
"__SBackground": "
|
|
35
|
+
"__SBar": "___SBar_dgtls_gg_",
|
|
36
|
+
"_color": "__color_dgtls_gg_",
|
|
37
|
+
"_hide": "__hide_dgtls_gg_",
|
|
38
|
+
"__SBackground": "___SBackground_dgtls_gg_"
|
|
39
39
|
}),
|
|
40
40
|
style = _extends({}, _ref);
|
|
41
41
|
|
|
@@ -105,7 +105,8 @@ var StackBarRoot = /*#__PURE__*/function (_Component) {
|
|
|
105
105
|
}),
|
|
106
106
|
y0: XY0,
|
|
107
107
|
x: x,
|
|
108
|
-
r: rBar
|
|
108
|
+
r: rBar,
|
|
109
|
+
groupKey: x
|
|
109
110
|
};
|
|
110
111
|
}
|
|
111
112
|
}, {
|
|
@@ -134,7 +135,8 @@ var StackBarRoot = /*#__PURE__*/function (_Component) {
|
|
|
134
135
|
}),
|
|
135
136
|
x0: XY0,
|
|
136
137
|
y: y,
|
|
137
|
-
r: rBar
|
|
138
|
+
r: rBar,
|
|
139
|
+
groupKey: y
|
|
138
140
|
};
|
|
139
141
|
}
|
|
140
142
|
}, {
|
|
@@ -142,7 +144,9 @@ var StackBarRoot = /*#__PURE__*/function (_Component) {
|
|
|
142
144
|
value: function render() {
|
|
143
145
|
var Element = this.Element;
|
|
144
146
|
this.series = this.getSeries();
|
|
147
|
+
this.asProps.dataHintsHandler.establishDataType('grouped-values');
|
|
145
148
|
return /*#__PURE__*/React.createElement(Element, {
|
|
149
|
+
"aria-hidden": true,
|
|
146
150
|
render: "g",
|
|
147
151
|
series: this.series
|
|
148
152
|
});
|
package/lib/es6/StackBar.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StackBar.js","names":["React","stack","d3Stack","Component","getOriginChildren","createElement","Bar","HorizontalBar","DEFAULT_INSTANCE","Symbol","XY0","StackBarRoot","asProps","Children","data","keys","toArray","reduce","acc","child","isValidElement","type","StackBar","props","hide","push","y","x","r","seriesIndex","series","findIndex","s","key","rBar","map","i","slice","some","bar","y0","x0","Element","getSeries","style"],"sources":["../../src/StackBar.jsx"],"sourcesContent":["import React from 'react';\nimport { stack as d3Stack } from 'd3-shape';\nimport { Component } from '@semcore/core';\nimport getOriginChildren from '@semcore/utils/lib/getOriginChildren';\nimport createElement from './createElement';\nimport Bar from './Bar';\nimport HorizontalBar from './HorizontalBar';\n\nimport style from './style/bar.shadow.css';\n\nconst DEFAULT_INSTANCE = Symbol('DEFAULT_INSTANCE');\nconst XY0 = Symbol('XY0');\n\nclass StackBarRoot extends Component {\n static displayName = 'StackBar';\n\n static style = style;\n\n static defaultProps = () => {\n const stack = d3Stack();\n stack[DEFAULT_INSTANCE] = true;\n return { stack, r: 2 };\n };\n\n getSeries() {\n const { Children, data, stack } = this.asProps;\n\n if (stack[DEFAULT_INSTANCE]) {\n const keys = React.Children.toArray(getOriginChildren(Children)).reduce((acc, child) => {\n if (React.isValidElement(child) && child.type === StackBar.Bar && !child.props.hide) {\n acc.push(child.props.y);\n }\n if (\n React.isValidElement(child) &&\n child.type === StackBar.HorizontalBar &&\n !child.props.hide\n ) {\n acc.push(child.props.x);\n }\n return acc;\n }, []);\n stack.keys(keys);\n }\n\n return stack(data);\n }\n\n getBarProps({ y }) {\n const { x, r } = this.asProps;\n\n const seriesIndex = this.series.findIndex((s) => s.key === y);\n // or [] if hide bar\n const series = this.series[seriesIndex] || [];\n\n const rBar = series.map((s, i) =>\n this.series.slice(seriesIndex + 1).some((bar) => bar[i][0] !== bar[i][1]) ? 0 : r,\n );\n\n return {\n data: series.map((s) => ({\n ...s.data,\n [y]: s[1],\n [XY0]: s[0],\n })),\n y0: XY0,\n x,\n r: rBar,\n };\n }\n\n getHorizontalBarProps({ x }) {\n const { y, r } = this.asProps;\n\n const seriesIndex = this.series.findIndex((s) => s.key === x);\n const series = this.series[seriesIndex];\n\n const rBar = series.map((s, i) =>\n this.series.slice(seriesIndex + 1).some((bar) => bar[i][0] !== bar[i][1]) ? 0 : r,\n );\n\n return {\n data: series.map((s) => ({\n ...s.data,\n [x]: s[1],\n [XY0]: s[0],\n })),\n x0: XY0,\n y,\n r: rBar,\n };\n }\n\n render() {\n const Element = this.Element;\n this.series = this.getSeries();\n return <Element render=\"g\" series={this.series} />;\n }\n}\n\nconst StackBar = createElement(StackBarRoot, {\n Bar,\n HorizontalBar,\n});\n\nexport default StackBar;\n"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"StackBar.js","names":["React","stack","d3Stack","Component","getOriginChildren","createElement","Bar","HorizontalBar","DEFAULT_INSTANCE","Symbol","XY0","StackBarRoot","asProps","Children","data","keys","toArray","reduce","acc","child","isValidElement","type","StackBar","props","hide","push","y","x","r","seriesIndex","series","findIndex","s","key","rBar","map","i","slice","some","bar","y0","groupKey","x0","Element","getSeries","dataHintsHandler","establishDataType","style"],"sources":["../../src/StackBar.jsx"],"sourcesContent":["import React from 'react';\nimport { stack as d3Stack } from 'd3-shape';\nimport { Component } from '@semcore/core';\nimport getOriginChildren from '@semcore/utils/lib/getOriginChildren';\nimport createElement from './createElement';\nimport Bar from './Bar';\nimport HorizontalBar from './HorizontalBar';\n\nimport style from './style/bar.shadow.css';\n\nconst DEFAULT_INSTANCE = Symbol('DEFAULT_INSTANCE');\nconst XY0 = Symbol('XY0');\n\nclass StackBarRoot extends Component {\n static displayName = 'StackBar';\n\n static style = style;\n\n static defaultProps = () => {\n const stack = d3Stack();\n stack[DEFAULT_INSTANCE] = true;\n return { stack, r: 2 };\n };\n\n getSeries() {\n const { Children, data, stack } = this.asProps;\n\n if (stack[DEFAULT_INSTANCE]) {\n const keys = React.Children.toArray(getOriginChildren(Children)).reduce((acc, child) => {\n if (React.isValidElement(child) && child.type === StackBar.Bar && !child.props.hide) {\n acc.push(child.props.y);\n }\n if (\n React.isValidElement(child) &&\n child.type === StackBar.HorizontalBar &&\n !child.props.hide\n ) {\n acc.push(child.props.x);\n }\n return acc;\n }, []);\n stack.keys(keys);\n }\n\n return stack(data);\n }\n\n getBarProps({ y }) {\n const { x, r } = this.asProps;\n\n const seriesIndex = this.series.findIndex((s) => s.key === y);\n // or [] if hide bar\n const series = this.series[seriesIndex] || [];\n\n const rBar = series.map((s, i) =>\n this.series.slice(seriesIndex + 1).some((bar) => bar[i][0] !== bar[i][1]) ? 0 : r,\n );\n\n return {\n data: series.map((s) => ({\n ...s.data,\n [y]: s[1],\n [XY0]: s[0],\n })),\n y0: XY0,\n x,\n r: rBar,\n groupKey: x,\n };\n }\n\n getHorizontalBarProps({ x }) {\n const { y, r } = this.asProps;\n\n const seriesIndex = this.series.findIndex((s) => s.key === x);\n const series = this.series[seriesIndex];\n\n const rBar = series.map((s, i) =>\n this.series.slice(seriesIndex + 1).some((bar) => bar[i][0] !== bar[i][1]) ? 0 : r,\n );\n\n return {\n data: series.map((s) => ({\n ...s.data,\n [x]: s[1],\n [XY0]: s[0],\n })),\n x0: XY0,\n y,\n r: rBar,\n groupKey: y,\n };\n }\n\n render() {\n const Element = this.Element;\n this.series = this.getSeries();\n\n this.asProps.dataHintsHandler.establishDataType('grouped-values');\n\n return <Element aria-hidden render=\"g\" series={this.series} />;\n }\n}\n\nconst StackBar = createElement(StackBarRoot, {\n Bar,\n HorizontalBar,\n});\n\nexport default StackBar;\n"],"mappings":"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"}
|
package/lib/es6/StackedArea.js
CHANGED
|
@@ -26,16 +26,16 @@ var _ref = (
|
|
|
26
26
|
/*__reshadow_css_start__*/
|
|
27
27
|
__css__(
|
|
28
28
|
/*__inner_css_start__*/
|
|
29
|
-
".
|
|
29
|
+
".___SArea_3afcc_gg_{fill:#2bb3ff;fill-opacity:.2}.___SArea_3afcc_gg_.__color_3afcc_gg_{fill:var(--color)}.___SAreaLine_3afcc_gg_{stroke:#2bb3ff;stroke-width:3;fill:transparent}.___SAreaLine_3afcc_gg_.__color_3afcc_gg_{stroke:var(--color)}.___SArea_3afcc_gg_,.___SAreaLine_3afcc_gg_{transition-property:d;transition-duration:var(--duration);transition-timing-function:ease-in-out}.___SNull_3afcc_gg_{fill:transparent;stroke:#8a8e9b;stroke-dasharray:4}.___SNull_3afcc_gg_.__hide_3afcc_gg_{display:none}"
|
|
30
30
|
/*__inner_css_end__*/
|
|
31
|
-
, "
|
|
31
|
+
, "mp0j3b_gg_")
|
|
32
32
|
/*__reshadow_css_end__*/
|
|
33
33
|
, {
|
|
34
|
-
"__SArea": "
|
|
35
|
-
"_color": "
|
|
36
|
-
"__SAreaLine": "
|
|
37
|
-
"__SNull": "
|
|
38
|
-
"_hide": "
|
|
34
|
+
"__SArea": "___SArea_3afcc_gg_",
|
|
35
|
+
"_color": "__color_3afcc_gg_",
|
|
36
|
+
"__SAreaLine": "___SAreaLine_3afcc_gg_",
|
|
37
|
+
"__SNull": "___SNull_3afcc_gg_",
|
|
38
|
+
"_hide": "__hide_3afcc_gg_"
|
|
39
39
|
}),
|
|
40
40
|
style = _extends({}, _ref);
|
|
41
41
|
|
|
@@ -99,6 +99,7 @@ var StackedAreaRoot = /*#__PURE__*/function (_Component) {
|
|
|
99
99
|
var Element = this.Element;
|
|
100
100
|
this.series = this.getSeries();
|
|
101
101
|
return /*#__PURE__*/React.createElement(Element, {
|
|
102
|
+
"aria-hidden": true,
|
|
102
103
|
render: "g",
|
|
103
104
|
series: this.series
|
|
104
105
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StackedArea.js","names":["React","stack","d3Stack","Component","getOriginChildren","createElement","Area","DEFAULT_INSTANCE","Symbol","Y0","StackedAreaRoot","asProps","Children","data","keys","toArray","reduce","acc","child","isValidElement","type","StackedArea","props","hide","push","y","reverse","x","series","find","s","key","map","y0","Element","getSeries","style"],"sources":["../../src/StackedArea.jsx"],"sourcesContent":["import React from 'react';\nimport { stack as d3Stack } from 'd3-shape';\nimport { Component } from '@semcore/core';\nimport getOriginChildren from '@semcore/utils/lib/getOriginChildren';\nimport createElement from './createElement';\nimport Area from './Area';\n\nimport style from './style/area.shadow.css';\n\nconst DEFAULT_INSTANCE = Symbol('DEFAULT_INSTANCE');\nconst Y0 = Symbol('Y0');\n\nclass StackedAreaRoot extends Component {\n static displayName = 'StackedArea';\n\n static style = style;\n\n static defaultProps = () => {\n const stack = d3Stack();\n stack[DEFAULT_INSTANCE] = true;\n return { stack };\n };\n\n getSeries() {\n const { Children, data, stack } = this.asProps;\n\n if (stack[DEFAULT_INSTANCE]) {\n const keys = React.Children.toArray(getOriginChildren(Children)).reduce((acc, child) => {\n if (React.isValidElement(child) && child.type === StackedArea.Area && !child.props.hide) {\n acc.push(child.props.y);\n }\n return acc;\n }, []);\n stack.keys(keys.reverse());\n }\n\n return stack(data);\n }\n\n getAreaProps({ y }) {\n const { x } = this.asProps;\n // or [] if hide area\n const series = this.series.find((s) => s.key === y) || [];\n return {\n data: series.map((s) => ({\n ...s.data,\n // if null is passed in the data, then we pass it, because d3 null leads to 0\n [y]: s.data[y] === null ? null : s[1],\n [Y0]: s[0],\n })),\n y0: Y0,\n x,\n };\n }\n\n render() {\n const Element = this.Element;\n this.series = this.getSeries();\n return <Element render=\"g\" series={this.series} />;\n }\n}\n\nconst StackedArea = createElement(StackedAreaRoot, { Area });\n\nexport default StackedArea;\n"],"mappings":";;;;;;;;;;;;;;;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,KAAK,IAAIC,OAAlB,QAAiC,UAAjC;AACA,SAASC,SAAT,sBAA0B,eAA1B;AACA,OAAOC,iBAAP,MAA8B,sCAA9B;AACA,OAAOC,aAAP,MAA0B,iBAA1B;AACA,OAAOC,IAAP,MAAiB,QAAjB;;;;;;;;;;;;;;;;;;;;AAIA,IAAMC,gBAAgB,GAAGC,MAAM,CAAC,kBAAD,CAA/B;AACA,IAAMC,EAAE,GAAGD,MAAM,CAAC,IAAD,CAAjB;;IAEME,e;;;;;;;;;;;;;WAWJ,qBAAY;MACV,oBAAkC,KAAKC,OAAvC;MAAA,IAAQC,QAAR,iBAAQA,QAAR;MAAA,IAAkBC,IAAlB,iBAAkBA,IAAlB;MAAA,IAAwBZ,KAAxB,iBAAwBA,KAAxB;;MAEA,IAAIA,KAAK,CAACM,gBAAD,CAAT,EAA6B;QAC3B,IAAMO,IAAI,GAAGd,KAAK,CAACY,QAAN,CAAeG,OAAf,CAAuBX,iBAAiB,CAACQ,QAAD,CAAxC,EAAoDI,MAApD,CAA2D,UAACC,GAAD,EAAMC,KAAN,EAAgB;UACtF,IAAI,cAAAlB,KAAK,CAACmB,cAAN,CAAqBD,KAArB,KAA+BA,KAAK,CAACE,IAAN,KAAeC,WAAW,CAACf,IAA1D,IAAkE,CAACY,KAAK,CAACI,KAAN,CAAYC,IAAnF,EAAyF;YACvFN,GAAG,CAACO,IAAJ,CAASN,KAAK,CAACI,KAAN,CAAYG,CAArB;UACD;;UACD,OAAOR,GAAP;QACD,CALY,EAKV,EALU,CAAb;QAMAhB,KAAK,CAACa,IAAN,CAAWA,IAAI,CAACY,OAAL,EAAX;MACD;;MAED,OAAOzB,KAAK,CAACY,IAAD,CAAZ;IACD;;;WAED,6BAAoB;MAAA,IAALY,CAAK,SAALA,CAAK;MAClB,IAAQE,CAAR,GAAc,KAAKhB,OAAnB,CAAQgB,CAAR,CADkB,CAElB;;MACA,IAAMC,MAAM,GAAG,KAAKA,MAAL,CAAYC,IAAZ,CAAiB,UAACC,CAAD;QAAA,OAAOA,CAAC,CAACC,GAAF,KAAUN,CAAjB;MAAA,CAAjB,KAAwC,EAAvD;MACA,OAAO;QACLZ,IAAI,EAAEe,MAAM,CAACI,GAAP,CAAW,UAACF,CAAD;UAAA;;UAAA,uCACZA,CAAC,CAACjB,IADU,6DAGdY,CAHc,EAGVK,CAAC,CAACjB,IAAF,CAAOY,CAAP,MAAc,IAAd,GAAqB,IAArB,GAA4BK,CAAC,CAAC,CAAD,CAHnB,mCAIdrB,EAJc,EAITqB,CAAC,CAAC,CAAD,CAJQ;QAAA,CAAX,CADD;QAOLG,EAAE,EAAExB,EAPC;QAQLkB,CAAC,EAADA;MARK,CAAP;IAUD;;;WAED,kBAAS;MACP,IAAMO,OAAO,GAAG,KAAKA,OAArB;MACA,KAAKN,MAAL,GAAc,KAAKO,SAAL,EAAd;MACA,oBAAO,oBAAC,OAAD;QAAS,MAAM,EAAC,
|
|
1
|
+
{"version":3,"file":"StackedArea.js","names":["React","stack","d3Stack","Component","getOriginChildren","createElement","Area","DEFAULT_INSTANCE","Symbol","Y0","StackedAreaRoot","asProps","Children","data","keys","toArray","reduce","acc","child","isValidElement","type","StackedArea","props","hide","push","y","reverse","x","series","find","s","key","map","y0","Element","getSeries","style"],"sources":["../../src/StackedArea.jsx"],"sourcesContent":["import React from 'react';\nimport { stack as d3Stack } from 'd3-shape';\nimport { Component } from '@semcore/core';\nimport getOriginChildren from '@semcore/utils/lib/getOriginChildren';\nimport createElement from './createElement';\nimport Area from './Area';\n\nimport style from './style/area.shadow.css';\n\nconst DEFAULT_INSTANCE = Symbol('DEFAULT_INSTANCE');\nconst Y0 = Symbol('Y0');\n\nclass StackedAreaRoot extends Component {\n static displayName = 'StackedArea';\n\n static style = style;\n\n static defaultProps = () => {\n const stack = d3Stack();\n stack[DEFAULT_INSTANCE] = true;\n return { stack };\n };\n\n getSeries() {\n const { Children, data, stack } = this.asProps;\n\n if (stack[DEFAULT_INSTANCE]) {\n const keys = React.Children.toArray(getOriginChildren(Children)).reduce((acc, child) => {\n if (React.isValidElement(child) && child.type === StackedArea.Area && !child.props.hide) {\n acc.push(child.props.y);\n }\n return acc;\n }, []);\n stack.keys(keys.reverse());\n }\n\n return stack(data);\n }\n\n getAreaProps({ y }) {\n const { x } = this.asProps;\n // or [] if hide area\n const series = this.series.find((s) => s.key === y) || [];\n return {\n data: series.map((s) => ({\n ...s.data,\n // if null is passed in the data, then we pass it, because d3 null leads to 0\n [y]: s.data[y] === null ? null : s[1],\n [Y0]: s[0],\n })),\n y0: Y0,\n x,\n };\n }\n\n render() {\n const Element = this.Element;\n this.series = this.getSeries();\n return <Element aria-hidden render=\"g\" series={this.series} />;\n }\n}\n\nconst StackedArea = createElement(StackedAreaRoot, { Area });\n\nexport default StackedArea;\n"],"mappings":";;;;;;;;;;;;;;;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,KAAK,IAAIC,OAAlB,QAAiC,UAAjC;AACA,SAASC,SAAT,sBAA0B,eAA1B;AACA,OAAOC,iBAAP,MAA8B,sCAA9B;AACA,OAAOC,aAAP,MAA0B,iBAA1B;AACA,OAAOC,IAAP,MAAiB,QAAjB;;;;;;;;;;;;;;;;;;;;AAIA,IAAMC,gBAAgB,GAAGC,MAAM,CAAC,kBAAD,CAA/B;AACA,IAAMC,EAAE,GAAGD,MAAM,CAAC,IAAD,CAAjB;;IAEME,e;;;;;;;;;;;;;WAWJ,qBAAY;MACV,oBAAkC,KAAKC,OAAvC;MAAA,IAAQC,QAAR,iBAAQA,QAAR;MAAA,IAAkBC,IAAlB,iBAAkBA,IAAlB;MAAA,IAAwBZ,KAAxB,iBAAwBA,KAAxB;;MAEA,IAAIA,KAAK,CAACM,gBAAD,CAAT,EAA6B;QAC3B,IAAMO,IAAI,GAAGd,KAAK,CAACY,QAAN,CAAeG,OAAf,CAAuBX,iBAAiB,CAACQ,QAAD,CAAxC,EAAoDI,MAApD,CAA2D,UAACC,GAAD,EAAMC,KAAN,EAAgB;UACtF,IAAI,cAAAlB,KAAK,CAACmB,cAAN,CAAqBD,KAArB,KAA+BA,KAAK,CAACE,IAAN,KAAeC,WAAW,CAACf,IAA1D,IAAkE,CAACY,KAAK,CAACI,KAAN,CAAYC,IAAnF,EAAyF;YACvFN,GAAG,CAACO,IAAJ,CAASN,KAAK,CAACI,KAAN,CAAYG,CAArB;UACD;;UACD,OAAOR,GAAP;QACD,CALY,EAKV,EALU,CAAb;QAMAhB,KAAK,CAACa,IAAN,CAAWA,IAAI,CAACY,OAAL,EAAX;MACD;;MAED,OAAOzB,KAAK,CAACY,IAAD,CAAZ;IACD;;;WAED,6BAAoB;MAAA,IAALY,CAAK,SAALA,CAAK;MAClB,IAAQE,CAAR,GAAc,KAAKhB,OAAnB,CAAQgB,CAAR,CADkB,CAElB;;MACA,IAAMC,MAAM,GAAG,KAAKA,MAAL,CAAYC,IAAZ,CAAiB,UAACC,CAAD;QAAA,OAAOA,CAAC,CAACC,GAAF,KAAUN,CAAjB;MAAA,CAAjB,KAAwC,EAAvD;MACA,OAAO;QACLZ,IAAI,EAAEe,MAAM,CAACI,GAAP,CAAW,UAACF,CAAD;UAAA;;UAAA,uCACZA,CAAC,CAACjB,IADU,6DAGdY,CAHc,EAGVK,CAAC,CAACjB,IAAF,CAAOY,CAAP,MAAc,IAAd,GAAqB,IAArB,GAA4BK,CAAC,CAAC,CAAD,CAHnB,mCAIdrB,EAJc,EAITqB,CAAC,CAAC,CAAD,CAJQ;QAAA,CAAX,CADD;QAOLG,EAAE,EAAExB,EAPC;QAQLkB,CAAC,EAADA;MARK,CAAP;IAUD;;;WAED,kBAAS;MACP,IAAMO,OAAO,GAAG,KAAKA,OAArB;MACA,KAAKN,MAAL,GAAc,KAAKO,SAAL,EAAd;MACA,oBAAO,oBAAC,OAAD;QAAS,mBAAT;QAAqB,MAAM,EAAC,GAA5B;QAAgC,MAAM,EAAE,KAAKP;MAA7C,EAAP;IACD;;;;EA/C2BzB,S;;gBAAxBO,e,iBACiB,a;;gBADjBA,e,WAGW0B,K;;gBAHX1B,e,kBAKkB,YAAM;EAC1B,IAAMT,KAAK,GAAGC,OAAO,EAArB;EACAD,KAAK,CAACM,gBAAD,CAAL,GAA0B,IAA1B;EACA,OAAO;IAAEN,KAAK,EAALA;EAAF,CAAP;AACD,C;;AAyCH,IAAMoB,WAAW,GAAGhB,aAAa,CAACK,eAAD,EAAkB;EAAEJ,IAAI,EAAJA;AAAF,CAAlB,CAAjC;AAEA,eAAee,WAAf"}
|
package/lib/es6/Tooltip.js
CHANGED
|
@@ -34,17 +34,17 @@ var style = (
|
|
|
34
34
|
/*__reshadow_css_start__*/
|
|
35
35
|
_sstyled.insert(
|
|
36
36
|
/*__inner_css_start__*/
|
|
37
|
-
".
|
|
37
|
+
".___STooltip_c3mpf_gg_{font-size:12px;line-height:1.33;position:relative;background-color:#fff;border-radius:6px;border:1px solid #e0e1e9;box-sizing:border-box;box-shadow:0px 1px 12px 0px rgba(25, 27, 35, 0.15);padding:12px}.___STitle_c3mpf_gg_{color:#6c6e79;margin-bottom:8px}.___SDotGroup_c3mpf_gg_{display:flex;align-items:center}.___SDot_c3mpf_gg_{width:8px;height:8px;border-radius:50%;margin-right:8px;background:#2bb3ff}.___SDot_c3mpf_gg_.__color_c3mpf_gg_{background:var(--color_c3mpf)}"
|
|
38
38
|
/*__inner_css_end__*/
|
|
39
|
-
, "
|
|
39
|
+
, "c3mpf_gg_")
|
|
40
40
|
/*__reshadow_css_end__*/
|
|
41
41
|
, {
|
|
42
|
-
"__STooltip": "
|
|
43
|
-
"__STitle": "
|
|
44
|
-
"__SDotGroup": "
|
|
45
|
-
"__SDot": "
|
|
46
|
-
"_color": "
|
|
47
|
-
"--color": "--
|
|
42
|
+
"__STooltip": "___STooltip_c3mpf_gg_",
|
|
43
|
+
"__STitle": "___STitle_c3mpf_gg_",
|
|
44
|
+
"__SDotGroup": "___SDotGroup_c3mpf_gg_",
|
|
45
|
+
"__SDot": "___SDot_c3mpf_gg_",
|
|
46
|
+
"_color": "__color_c3mpf_gg_",
|
|
47
|
+
"--color": "--color_c3mpf"
|
|
48
48
|
});
|
|
49
49
|
|
|
50
50
|
var TooltipRoot = /*#__PURE__*/function (_Component) {
|
package/lib/es6/Venn.js
CHANGED
|
@@ -26,16 +26,16 @@ var style = (
|
|
|
26
26
|
/*__reshadow_css_start__*/
|
|
27
27
|
_sstyled.insert(
|
|
28
28
|
/*__inner_css_start__*/
|
|
29
|
-
".
|
|
29
|
+
".___SCircle_1ny5s_gg_{fill:#59ddaa;stroke:#fff;stroke-width:2px;fill-opacity:.5;transition-property:cx,cy;transition-duration:var(--duration_1ny5s);transition-timing-function:ease-in-out}.___SCircle_1ny5s_gg_:hover{fill-opacity:.7}.___SCircle_1ny5s_gg_.__color_1ny5s_gg_{fill:var(--color_1ny5s)}.___SIntersection_1ny5s_gg_{stroke:#fff;stroke-width:2px;fill-opacity:0}.___SIntersection_1ny5s_gg_:hover{fill-opacity:.1}"
|
|
30
30
|
/*__inner_css_end__*/
|
|
31
|
-
, "
|
|
31
|
+
, "1ny5s_gg_")
|
|
32
32
|
/*__reshadow_css_end__*/
|
|
33
33
|
, {
|
|
34
|
-
"__SCircle": "
|
|
35
|
-
"--duration": "--
|
|
36
|
-
"_color": "
|
|
37
|
-
"--color": "--
|
|
38
|
-
"__SIntersection": "
|
|
34
|
+
"__SCircle": "___SCircle_1ny5s_gg_",
|
|
35
|
+
"--duration": "--duration_1ny5s",
|
|
36
|
+
"_color": "__color_1ny5s_gg_",
|
|
37
|
+
"--color": "--color_1ny5s",
|
|
38
|
+
"__SIntersection": "___SIntersection_1ny5s_gg_"
|
|
39
39
|
});
|
|
40
40
|
|
|
41
41
|
var VennRoot = /*#__PURE__*/function (_Component) {
|
|
@@ -69,6 +69,7 @@ var VennRoot = /*#__PURE__*/function (_Component) {
|
|
|
69
69
|
|
|
70
70
|
_defineProperty(_assertThisInitialized(_this), "renderElement", /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
71
71
|
return /*#__PURE__*/React.createElement(FadeInOut, _extends({
|
|
72
|
+
"aria-hidden": true,
|
|
72
73
|
ref: ref,
|
|
73
74
|
tag: "g",
|
|
74
75
|
visible: true
|
|
@@ -125,6 +126,7 @@ var VennRoot = /*#__PURE__*/function (_Component) {
|
|
|
125
126
|
return {
|
|
126
127
|
duration: this.asProps.duration,
|
|
127
128
|
data: this.vennData[props.dataKey],
|
|
129
|
+
originalData: this.asProps.data[props.dataKey],
|
|
128
130
|
onMouseMove: this.bindHandlerTooltip(true, props),
|
|
129
131
|
onMouseLeave: this.bindHandlerTooltip(false, props)
|
|
130
132
|
};
|
|
@@ -140,6 +142,7 @@ var VennRoot = /*#__PURE__*/function (_Component) {
|
|
|
140
142
|
data: Object.values(this.vennData).filter(function (d) {
|
|
141
143
|
return dataKeys.includes(d.setid);
|
|
142
144
|
}),
|
|
145
|
+
originalData: this.asProps.data[props.dataKey],
|
|
143
146
|
onMouseMove: this.bindHandlerTooltip(true, props),
|
|
144
147
|
onMouseLeave: this.bindHandlerTooltip(false, props)
|
|
145
148
|
};
|
|
@@ -148,8 +151,10 @@ var VennRoot = /*#__PURE__*/function (_Component) {
|
|
|
148
151
|
key: "render",
|
|
149
152
|
value: function render() {
|
|
150
153
|
var Element = this.Element;
|
|
154
|
+
this.asProps.dataHintsHandler.establishDataType('values-set');
|
|
151
155
|
this.vennData = this.getVennData();
|
|
152
156
|
return /*#__PURE__*/React.createElement(Element, {
|
|
157
|
+
"aria-hidden": true,
|
|
153
158
|
render: this.renderElement,
|
|
154
159
|
childrenPosition: "inside",
|
|
155
160
|
vennData: this.vennData
|
|
@@ -179,8 +184,13 @@ function Circle(_ref6) {
|
|
|
179
184
|
styles = _ref6.styles,
|
|
180
185
|
color = _ref6.color,
|
|
181
186
|
data = _ref6.data,
|
|
182
|
-
duration = _ref6.duration
|
|
187
|
+
duration = _ref6.duration,
|
|
188
|
+
name = _ref6.name,
|
|
189
|
+
dataKey = _ref6.dataKey,
|
|
190
|
+
dataHintsHandler = _ref6.dataHintsHandler;
|
|
191
|
+
dataHintsHandler.describeValueEntity(dataKey, name);
|
|
183
192
|
return _ref = sstyled(styles), /*#__PURE__*/React.createElement(SCircle, _ref.cn("SCircle", {
|
|
193
|
+
"aria-hidden": true,
|
|
184
194
|
"render": "circle",
|
|
185
195
|
"color": color,
|
|
186
196
|
"cx": data.x,
|
|
@@ -195,15 +205,21 @@ function Intersection(props) {
|
|
|
195
205
|
|
|
196
206
|
var SIntersection = props.Element,
|
|
197
207
|
styles = props.styles,
|
|
198
|
-
data = props.data
|
|
208
|
+
data = props.data,
|
|
209
|
+
name = props.name,
|
|
210
|
+
dataKey = props.dataKey,
|
|
211
|
+
dataHintsHandler = props.dataHintsHandler;
|
|
212
|
+
dataHintsHandler.describeValueEntity(dataKey, name);
|
|
199
213
|
var renderIntersection = React.useCallback( /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
200
214
|
return /*#__PURE__*/React.createElement(FadeInOut, _extends({
|
|
215
|
+
"aria-hidden": true,
|
|
201
216
|
ref: ref,
|
|
202
217
|
tag: "path",
|
|
203
218
|
visible: true
|
|
204
219
|
}, props));
|
|
205
220
|
}), [props]);
|
|
206
221
|
return _ref2 = sstyled(styles), /*#__PURE__*/React.createElement(SIntersection, _ref2.cn("SIntersection", {
|
|
222
|
+
"aria-hidden": true,
|
|
207
223
|
"render": renderIntersection,
|
|
208
224
|
"d": intersectionAreaPath(data)
|
|
209
225
|
}));
|
package/lib/es6/Venn.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Venn.js","names":["React","venn","normalizeSolution","scaleSolution","intersectionAreaPath","Component","sstyled","canUseDOM","FadeInOut","createElement","CONSTANT","VennRoot","document","visible","props","x","clientX","y","clientY","eventEmitter","asProps","virtualElement","getBoundingClientRect","generateGetBoundingClientRect","VIRTUAL_ELEMENT","emit","forwardRef","ref","width","height","top","right","bottom","left","data","orientation","orientationOrder","size","vennData","Object","entries","map","dataKey","sets","split","duration","onMouseMove","bindHandlerTooltip","onMouseLeave","dataKeys","delay","values","filter","d","includes","setid","Element","getVennData","renderElement","style","Math","PI","c1","c2","radius","Circle","SCircle","styles","color","Intersection","SIntersection","renderIntersection","useCallback","Venn"],"sources":["../../src/Venn.jsx"],"sourcesContent":["import React from 'react';\nimport { venn, normalizeSolution, scaleSolution, intersectionAreaPath } from '@upsetjs/venn.js';\nimport { Component, sstyled } from '@semcore/core';\nimport canUseDOM from '@semcore/utils/lib/canUseDOM';\nimport { FadeInOut } from '@semcore/animation';\n\nimport createElement from './createElement';\nimport { CONSTANT } from './utils';\n\nimport style from './style/venn.shadow.css';\n\nclass VennRoot extends Component {\n static displayName = 'Venn';\n static style = style;\n\n static defaultProps = {\n orientation: Math.PI / 2,\n orientationOrder: (c1, c2) => c2.radius - c1.radius,\n duration: 500,\n };\n\n virtualElement = canUseDOM() ? document.createElement('div') : {};\n\n generateGetBoundingClientRect(x = 0, y = 0) {\n return () => ({ width: 0, height: 0, top: y, right: x, bottom: y, left: x });\n }\n\n bindHandlerTooltip =\n (visible, props) =>\n ({ clientX: x, clientY: y }) => {\n const { eventEmitter } = this.asProps;\n this.virtualElement.getBoundingClientRect = this.generateGetBoundingClientRect(x, y);\n this.virtualElement[CONSTANT.VIRTUAL_ELEMENT] = true;\n eventEmitter.emit('onTooltipVisible', visible, props, this.virtualElement);\n };\n\n getVennData() {\n const { data, orientation, orientationOrder, size } = this.asProps;\n const [width, height] = size;\n const vennData = Object.entries(data).map(([dataKey, size]) => ({\n sets: dataKey.split('/'),\n size,\n }));\n return scaleSolution(\n normalizeSolution(venn(vennData), orientation, orientationOrder),\n width,\n height,\n 10,\n );\n }\n\n getCircleProps(props) {\n return {\n duration: this.asProps.duration,\n data: this.vennData[props.dataKey],\n onMouseMove: this.bindHandlerTooltip(true, props),\n onMouseLeave: this.bindHandlerTooltip(false, props),\n };\n }\n\n getIntersectionProps(props) {\n const { duration } = this.asProps;\n const dataKeys = props.dataKey.split('/');\n return {\n duration,\n delay: duration,\n data: Object.values(this.vennData).filter((d) => dataKeys.includes(d.setid)),\n onMouseMove: this.bindHandlerTooltip(true, props),\n onMouseLeave: this.bindHandlerTooltip(false, props),\n };\n }\n\n renderElement = React.forwardRef((props, ref) => {\n return <FadeInOut ref={ref} tag=\"g\" visible {...props} />;\n });\n\n render() {\n const Element = this.Element;\n this.vennData = this.getVennData();\n return (\n <Element
|
|
1
|
+
{"version":3,"file":"Venn.js","names":["React","venn","normalizeSolution","scaleSolution","intersectionAreaPath","Component","sstyled","canUseDOM","FadeInOut","createElement","CONSTANT","VennRoot","document","visible","props","x","clientX","y","clientY","eventEmitter","asProps","virtualElement","getBoundingClientRect","generateGetBoundingClientRect","VIRTUAL_ELEMENT","emit","forwardRef","ref","width","height","top","right","bottom","left","data","orientation","orientationOrder","size","vennData","Object","entries","map","dataKey","sets","split","duration","originalData","onMouseMove","bindHandlerTooltip","onMouseLeave","dataKeys","delay","values","filter","d","includes","setid","Element","dataHintsHandler","establishDataType","getVennData","renderElement","style","Math","PI","c1","c2","radius","Circle","SCircle","styles","color","name","describeValueEntity","Intersection","SIntersection","renderIntersection","useCallback","Venn"],"sources":["../../src/Venn.jsx"],"sourcesContent":["import React from 'react';\nimport { venn, normalizeSolution, scaleSolution, intersectionAreaPath } from '@upsetjs/venn.js';\nimport { Component, sstyled } from '@semcore/core';\nimport canUseDOM from '@semcore/utils/lib/canUseDOM';\nimport { FadeInOut } from '@semcore/animation';\n\nimport createElement from './createElement';\nimport { CONSTANT } from './utils';\n\nimport style from './style/venn.shadow.css';\n\nclass VennRoot extends Component {\n static displayName = 'Venn';\n static style = style;\n\n static defaultProps = {\n orientation: Math.PI / 2,\n orientationOrder: (c1, c2) => c2.radius - c1.radius,\n duration: 500,\n };\n\n virtualElement = canUseDOM() ? document.createElement('div') : {};\n\n generateGetBoundingClientRect(x = 0, y = 0) {\n return () => ({ width: 0, height: 0, top: y, right: x, bottom: y, left: x });\n }\n\n bindHandlerTooltip =\n (visible, props) =>\n ({ clientX: x, clientY: y }) => {\n const { eventEmitter } = this.asProps;\n this.virtualElement.getBoundingClientRect = this.generateGetBoundingClientRect(x, y);\n this.virtualElement[CONSTANT.VIRTUAL_ELEMENT] = true;\n eventEmitter.emit('onTooltipVisible', visible, props, this.virtualElement);\n };\n\n getVennData() {\n const { data, orientation, orientationOrder, size } = this.asProps;\n const [width, height] = size;\n const vennData = Object.entries(data).map(([dataKey, size]) => ({\n sets: dataKey.split('/'),\n size,\n }));\n return scaleSolution(\n normalizeSolution(venn(vennData), orientation, orientationOrder),\n width,\n height,\n 10,\n );\n }\n\n getCircleProps(props) {\n return {\n duration: this.asProps.duration,\n data: this.vennData[props.dataKey],\n originalData: this.asProps.data[props.dataKey],\n onMouseMove: this.bindHandlerTooltip(true, props),\n onMouseLeave: this.bindHandlerTooltip(false, props),\n };\n }\n\n getIntersectionProps(props) {\n const { duration } = this.asProps;\n const dataKeys = props.dataKey.split('/');\n return {\n duration,\n delay: duration,\n data: Object.values(this.vennData).filter((d) => dataKeys.includes(d.setid)),\n originalData: this.asProps.data[props.dataKey],\n onMouseMove: this.bindHandlerTooltip(true, props),\n onMouseLeave: this.bindHandlerTooltip(false, props),\n };\n }\n\n renderElement = React.forwardRef((props, ref) => {\n return <FadeInOut aria-hidden ref={ref} tag=\"g\" visible {...props} />;\n });\n\n render() {\n const Element = this.Element;\n this.asProps.dataHintsHandler.establishDataType('values-set');\n this.vennData = this.getVennData();\n return (\n <Element\n aria-hidden\n render={this.renderElement}\n childrenPosition=\"inside\"\n vennData={this.vennData}\n />\n );\n }\n}\n\nfunction Circle({\n Element: SCircle,\n styles,\n color,\n data,\n duration,\n name,\n dataKey,\n dataHintsHandler,\n}) {\n dataHintsHandler.describeValueEntity(dataKey, name);\n\n return sstyled(styles)(\n <SCircle\n aria-hidden\n render=\"circle\"\n color={color}\n cx={data.x}\n cy={data.y}\n r={data.radius}\n use:duration={`${duration}ms`}\n />,\n );\n}\n\nfunction Intersection(props) {\n const { Element: SIntersection, styles, data, name, dataKey, dataHintsHandler } = props;\n dataHintsHandler.describeValueEntity(dataKey, name);\n\n const renderIntersection = React.useCallback(\n React.forwardRef((props, ref) => {\n return <FadeInOut aria-hidden ref={ref} tag=\"path\" visible {...props} />;\n }),\n [props],\n );\n return sstyled(styles)(\n <SIntersection aria-hidden render={renderIntersection} d={intersectionAreaPath(data)} />,\n );\n}\n\nconst Venn = createElement(VennRoot, { Circle, Intersection });\n\nexport default Venn;\n"],"mappings":"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"}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
+
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
3
|
+
import { sstyled as _sstyled } from "@semcore/core";
|
|
4
|
+
import { assignProps as _assignProps3 } from "@semcore/core";
|
|
5
|
+
import { assignProps as _assignProps2 } from "@semcore/core";
|
|
6
|
+
import { assignProps as _assignProps } from "@semcore/core";
|
|
7
|
+
|
|
8
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
9
|
+
|
|
10
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
11
|
+
|
|
12
|
+
import React from 'react';
|
|
13
|
+
import { normalizeLocale } from './locale';
|
|
14
|
+
import { translations } from './translations/module/translations';
|
|
15
|
+
import { Root, sstyled } from '@semcore/core';
|
|
16
|
+
|
|
17
|
+
/*__reshadow-styles__:"../style/plotA11yModule.shadow.css"*/
|
|
18
|
+
var styles = (
|
|
19
|
+
/*__reshadow_css_start__*/
|
|
20
|
+
_sstyled.insert(
|
|
21
|
+
/*__inner_css_start__*/
|
|
22
|
+
".___SPlotA11yModule_1c5bq_gg_{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;opacity:0}.___SPlotA11yModule_1c5bq_gg_:focus{-webkit-user-select:all;-moz-user-select:all;-ms-user-select:all;user-select:all;pointer-events:all;opacity:1}"
|
|
23
|
+
/*__inner_css_end__*/
|
|
24
|
+
, "1c5bq_gg_")
|
|
25
|
+
/*__reshadow_css_end__*/
|
|
26
|
+
, {
|
|
27
|
+
"__SPlotA11yModule": "___SPlotA11yModule_1c5bq_gg_"
|
|
28
|
+
});
|
|
29
|
+
var globalWasFocused = false;
|
|
30
|
+
var globalNavWithKeyboard = false;
|
|
31
|
+
export var PlotA11yModule = function PlotA11yModule(props) {
|
|
32
|
+
var _ref = arguments[0],
|
|
33
|
+
_ref5;
|
|
34
|
+
|
|
35
|
+
var SPlotA11yModule = 'div';
|
|
36
|
+
|
|
37
|
+
var _React$useState = React.useState(globalWasFocused),
|
|
38
|
+
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
39
|
+
wasFocused = _React$useState2[0],
|
|
40
|
+
setWasFocused = _React$useState2[1];
|
|
41
|
+
|
|
42
|
+
var _React$useState3 = React.useState(globalNavWithKeyboard),
|
|
43
|
+
_React$useState4 = _slicedToArray(_React$useState3, 2),
|
|
44
|
+
navWithKeyboard = _React$useState4[0],
|
|
45
|
+
setNavWithKeyboard = _React$useState4[1];
|
|
46
|
+
|
|
47
|
+
var _React$useState5 = React.useState(null),
|
|
48
|
+
_React$useState6 = _slicedToArray(_React$useState5, 2),
|
|
49
|
+
plotA11yView = _React$useState6[0],
|
|
50
|
+
setPlotA11yView = _React$useState6[1];
|
|
51
|
+
|
|
52
|
+
var hadnleHiddenElementsFocus = React.useCallback(function () {
|
|
53
|
+
setWasFocused(true);
|
|
54
|
+
setNavWithKeyboard(true);
|
|
55
|
+
}, []);
|
|
56
|
+
|
|
57
|
+
var _React$useState7 = React.useState(false),
|
|
58
|
+
_React$useState8 = _slicedToArray(_React$useState7, 2),
|
|
59
|
+
loading = _React$useState8[0],
|
|
60
|
+
setLoading = _React$useState8[1];
|
|
61
|
+
|
|
62
|
+
var _React$useState9 = React.useState(null),
|
|
63
|
+
_React$useState10 = _slicedToArray(_React$useState9, 2),
|
|
64
|
+
error = _React$useState10[0],
|
|
65
|
+
setError = _React$useState10[1];
|
|
66
|
+
|
|
67
|
+
var locale = React.useMemo(function () {
|
|
68
|
+
return normalizeLocale(props.locale, translations);
|
|
69
|
+
}, [props.locale]);
|
|
70
|
+
var texts = React.useMemo(function () {
|
|
71
|
+
return locale ? translations[locale] : {};
|
|
72
|
+
}, [locale]);
|
|
73
|
+
React.useEffect(function () {
|
|
74
|
+
var _props$plotRef$curren;
|
|
75
|
+
|
|
76
|
+
if (wasFocused) return;
|
|
77
|
+
|
|
78
|
+
var focusListener = function focusListener() {
|
|
79
|
+
globalWasFocused = true;
|
|
80
|
+
setWasFocused(true);
|
|
81
|
+
};
|
|
82
|
+
|
|
83
|
+
(_props$plotRef$curren = props.plotRef.current) === null || _props$plotRef$curren === void 0 ? void 0 : _props$plotRef$curren.addEventListener('focus', focusListener);
|
|
84
|
+
return function () {
|
|
85
|
+
var _props$plotRef$curren2;
|
|
86
|
+
|
|
87
|
+
return (_props$plotRef$curren2 = props.plotRef.current) === null || _props$plotRef$curren2 === void 0 ? void 0 : _props$plotRef$curren2.removeEventListener('focus', focusListener);
|
|
88
|
+
};
|
|
89
|
+
}, [wasFocused, props.plotRef]);
|
|
90
|
+
React.useEffect(function () {
|
|
91
|
+
var _document$body;
|
|
92
|
+
|
|
93
|
+
if (navWithKeyboard) return;
|
|
94
|
+
|
|
95
|
+
var keyboardListener = function keyboardListener(event) {
|
|
96
|
+
var navigationKeys = ['Tab', 'ArrowUp', 'ArrowLeft', 'ArrowDown', 'ArrowRight', 'ArrowUp', 'ArrowLeft'];
|
|
97
|
+
|
|
98
|
+
if ('key' in event && navigationKeys.includes(event.key)) {
|
|
99
|
+
setNavWithKeyboard(true);
|
|
100
|
+
globalNavWithKeyboard = true;
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
(_document$body = document.body) === null || _document$body === void 0 ? void 0 : _document$body.addEventListener('keydown', keyboardListener);
|
|
105
|
+
return function () {
|
|
106
|
+
var _document$body2;
|
|
107
|
+
|
|
108
|
+
return (_document$body2 = document.body) === null || _document$body2 === void 0 ? void 0 : _document$body2.removeEventListener('keydown', keyboardListener);
|
|
109
|
+
};
|
|
110
|
+
}, [navWithKeyboard]);
|
|
111
|
+
var shouldDisplayView = wasFocused && navWithKeyboard;
|
|
112
|
+
React.useEffect(function () {
|
|
113
|
+
if (!shouldDisplayView) return;
|
|
114
|
+
if (plotA11yView) return;
|
|
115
|
+
if (loading) return;
|
|
116
|
+
setLoading(true);
|
|
117
|
+
import('./PlotA11yView').then(function (_ref6) {
|
|
118
|
+
var PlotA11yView = _ref6.PlotA11yView;
|
|
119
|
+
setPlotA11yView({
|
|
120
|
+
Component: PlotA11yView
|
|
121
|
+
});
|
|
122
|
+
setLoading(false);
|
|
123
|
+
setError(null);
|
|
124
|
+
})["catch"](function (error) {
|
|
125
|
+
// eslint-disable-next-line no-console
|
|
126
|
+
console.error(error);
|
|
127
|
+
setError(error);
|
|
128
|
+
});
|
|
129
|
+
}, [plotA11yView, shouldDisplayView, loading, setLoading]);
|
|
130
|
+
|
|
131
|
+
if (plotA11yView) {
|
|
132
|
+
var _ref2;
|
|
133
|
+
|
|
134
|
+
return _ref2 = sstyled(styles), /*#__PURE__*/React.createElement(plotA11yView.Component, props);
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
if (error) {
|
|
138
|
+
var _ref3;
|
|
139
|
+
|
|
140
|
+
return _ref3 = sstyled(styles), /*#__PURE__*/React.createElement(SPlotA11yModule, _ref3.cn("SPlotA11yModule", _objectSpread({}, _assignProps({
|
|
141
|
+
"tabIndex": 0,
|
|
142
|
+
"aria-live": "assertive"
|
|
143
|
+
}, _ref))), texts.failed);
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
if (loading) {
|
|
147
|
+
var _ref4;
|
|
148
|
+
|
|
149
|
+
return _ref4 = sstyled(styles), /*#__PURE__*/React.createElement(SPlotA11yModule, _ref4.cn("SPlotA11yModule", _objectSpread({}, _assignProps2({
|
|
150
|
+
"tabIndex": 0,
|
|
151
|
+
"aria-live": "polite"
|
|
152
|
+
}, _ref))), texts.loading);
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
return _ref5 = sstyled(styles), /*#__PURE__*/React.createElement(SPlotA11yModule, _ref5.cn("SPlotA11yModule", _objectSpread({}, _assignProps3({
|
|
156
|
+
"tabIndex": 0,
|
|
157
|
+
"onFocus": hadnleHiddenElementsFocus
|
|
158
|
+
}, _ref))), texts.disabled);
|
|
159
|
+
};
|
|
160
|
+
//# sourceMappingURL=PlotA11yModule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PlotA11yModule.js","names":["React","normalizeLocale","translations","Root","sstyled","globalWasFocused","globalNavWithKeyboard","PlotA11yModule","props","SPlotA11yModule","useState","wasFocused","setWasFocused","navWithKeyboard","setNavWithKeyboard","plotA11yView","setPlotA11yView","hadnleHiddenElementsFocus","useCallback","loading","setLoading","error","setError","locale","useMemo","texts","useEffect","focusListener","plotRef","current","addEventListener","removeEventListener","keyboardListener","event","navigationKeys","includes","key","document","body","shouldDisplayView","then","PlotA11yView","Component","console","styles","failed","disabled"],"sources":["../../../src/a11y/PlotA11yModule.tsx"],"sourcesContent":["import React from 'react';\nimport { DataStructureHints, PartialDataSummarizationConfig } from './hints';\nimport { normalizeLocale } from './locale';\nimport { translations } from './translations/module/translations';\nimport { Root, sstyled } from '@semcore/core';\nimport styles from '../style/plotA11yModule.shadow.css';\n\nlet globalWasFocused = false;\nlet globalNavWithKeyboard = false;\n\nexport type A11yViewProps = {\n id: string;\n data: Record<string, unknown>[];\n hints: DataStructureHints;\n plotLabel: string;\n locale: NavigatorLanguage['language'];\n config: PartialDataSummarizationConfig;\n // eslint-disable-next-line ssr-friendly/no-dom-globals-in-module-scope\n plotRef: React.RefObject<Element>;\n};\n\nexport const PlotA11yModule: React.FC<A11yViewProps> = (props) => {\n const SPlotA11yModule = Root;\n const [wasFocused, setWasFocused] = React.useState(globalWasFocused);\n const [navWithKeyboard, setNavWithKeyboard] = React.useState(globalNavWithKeyboard);\n const [plotA11yView, setPlotA11yView] = React.useState<{\n Component: React.FC<A11yViewProps>;\n } | null>(null);\n\n const hadnleHiddenElementsFocus = React.useCallback(() => {\n setWasFocused(true);\n setNavWithKeyboard(true);\n }, []);\n\n const [loading, setLoading] = React.useState(false);\n const [error, setError] = React.useState<Error | null>(null);\n\n const locale = React.useMemo(() => normalizeLocale(props.locale, translations), [props.locale]);\n const texts = React.useMemo(() => (locale ? translations[locale] : {}), [locale]);\n\n React.useEffect(() => {\n if (wasFocused) return;\n const focusListener = () => {\n globalWasFocused = true;\n setWasFocused(true);\n };\n\n props.plotRef.current?.addEventListener('focus', focusListener);\n return () => props.plotRef.current?.removeEventListener('focus', focusListener);\n }, [wasFocused, props.plotRef]);\n React.useEffect(() => {\n if (navWithKeyboard) return;\n const keyboardListener = (event: Event) => {\n const navigationKeys = [\n 'Tab',\n 'ArrowUp',\n 'ArrowLeft',\n 'ArrowDown',\n 'ArrowRight',\n 'ArrowUp',\n 'ArrowLeft',\n ];\n if ('key' in event && navigationKeys.includes((event as KeyboardEvent).key)) {\n setNavWithKeyboard(true);\n globalNavWithKeyboard = true;\n }\n };\n document.body?.addEventListener('keydown', keyboardListener);\n return () => document.body?.removeEventListener('keydown', keyboardListener);\n }, [navWithKeyboard]);\n\n const shouldDisplayView = wasFocused && navWithKeyboard;\n\n React.useEffect(() => {\n if (!shouldDisplayView) return;\n if (plotA11yView) return;\n if (loading) return;\n\n setLoading(true);\n\n import('./PlotA11yView')\n .then(({ PlotA11yView }) => {\n setPlotA11yView({ Component: PlotA11yView });\n setLoading(false);\n setError(null);\n })\n .catch((error) => {\n // eslint-disable-next-line no-console\n console.error(error);\n setError(error);\n });\n }, [plotA11yView, shouldDisplayView, loading, setLoading]);\n\n if (plotA11yView) {\n return sstyled(styles)(<plotA11yView.Component {...props} />) as React.ReactElement;\n }\n\n if (error) {\n return sstyled(styles)(\n <SPlotA11yModule render={'div'} tabIndex={0} aria-live=\"assertive\">\n {texts.failed}\n </SPlotA11yModule>,\n ) as React.ReactElement;\n }\n if (loading) {\n return sstyled(styles)(\n <SPlotA11yModule render={'div'} tabIndex={0} aria-live=\"polite\">\n {texts.loading}\n </SPlotA11yModule>,\n ) as React.ReactElement;\n }\n\n return sstyled(styles)(\n <SPlotA11yModule render={'div'} tabIndex={0} onFocus={hadnleHiddenElementsFocus}>\n {texts.disabled}\n </SPlotA11yModule>,\n ) as React.ReactElement;\n};\n"],"mappings":"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"}
|