@semcore/d3-chart 1.1.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/lib/cjs/Area.js +2 -1
- package/lib/cjs/Area.js.map +1 -1
- package/lib/cjs/Donut.js +4 -4
- package/lib/cjs/Donut.js.map +1 -1
- package/lib/cjs/GroupBar.js +5 -5
- package/lib/cjs/Line.js +2 -1
- package/lib/cjs/Line.js.map +1 -1
- package/lib/cjs/StackBar.js +5 -5
- package/lib/cjs/StackedArea.js +6 -6
- package/lib/cjs/utils.js +8 -1
- package/lib/cjs/utils.js.map +1 -1
- package/lib/es6/Area.js +3 -2
- package/lib/es6/Area.js.map +1 -1
- package/lib/es6/Donut.js +4 -4
- package/lib/es6/Donut.js.map +1 -1
- package/lib/es6/GroupBar.js +5 -5
- package/lib/es6/Line.js +3 -2
- package/lib/es6/Line.js.map +1 -1
- package/lib/es6/StackBar.js +5 -5
- package/lib/es6/StackedArea.js +6 -6
- package/lib/es6/utils.js +6 -1
- package/lib/es6/utils.js.map +1 -1
- package/package.json +1 -1
- package/src/Area.js +3 -3
- package/src/Donut.js +10 -9
- package/src/Line.js +3 -3
- package/src/utils.js +7 -1
package/CHANGELOG.md
CHANGED
package/lib/cjs/Area.js
CHANGED
|
@@ -90,12 +90,13 @@ var AreaRoot = /*#__PURE__*/function (_Component) {
|
|
|
90
90
|
key: "getNullProps",
|
|
91
91
|
value: function getNullProps() {
|
|
92
92
|
var _this$asProps2 = this.asProps,
|
|
93
|
+
x = _this$asProps2.x,
|
|
93
94
|
y = _this$asProps2.y,
|
|
94
95
|
color = _this$asProps2.color,
|
|
95
96
|
data = _this$asProps2.data,
|
|
96
97
|
d3Line = _this$asProps2.d3Line;
|
|
97
98
|
return {
|
|
98
|
-
data: (0, _utils.getNullData)(data,
|
|
99
|
+
data: (0, _utils.getNullData)(data, (0, _utils.definedNullData)(x, y), y),
|
|
99
100
|
d3: d3Line,
|
|
100
101
|
color: color
|
|
101
102
|
};
|
package/lib/cjs/Area.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/Area.js"],"names":["AreaRoot","asProps","x","y","color","data","d3Line","d3","
|
|
1
|
+
{"version":3,"sources":["../../src/Area.js"],"names":["AreaRoot","asProps","x","y","color","data","d3Line","d3","SArea","Element","SAreaLine","styles","hide","uid","size","duration","rect","setAttribute","Component","style","y0","$rootProps","curve","curveLinear","scale","xScale","yScale","yRange","range","defined","p","y1","Null","props","SNull","Dots"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { area, curveLinear, line } from 'd3-shape';\nimport Dots from './Dots';\nimport { Component, sstyled } from '@semcore/core';\nimport createElement from './createElement';\nimport { definedData, scaleOfBandwidth, getNullData, definedNullData } from './utils';\nimport ClipPath from './ClipPath';\nimport uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';\n\nimport style from './style/area.shadow.css';\n\nclass AreaRoot extends Component {\n static displayName = 'Area';\n static style = style;\n static enhance = [uniqueIDEnhancement()];\n\n static defaultProps = ({ x, y, y0, $rootProps, curve = curveLinear }) => {\n const [xScale, yScale] = $rootProps.scale;\n const yRange = yScale.range();\n\n return {\n d3: area()\n .defined(definedData(x, y))\n .curve(curve)\n .x((p) => scaleOfBandwidth(xScale, p[x]))\n .y0((p) => (p[y0] ? scaleOfBandwidth(yScale, p[y0]) : yRange[0]))\n .y1((p) => scaleOfBandwidth(yScale, p[y])),\n d3Line: line()\n .defined(definedData(x, y))\n .curve(curve)\n .x((p) => scaleOfBandwidth(xScale, p[x]))\n .y((p) => scaleOfBandwidth(yScale, p[y])),\n color: '#50aef4',\n duration: 500,\n };\n };\n\n getDotsProps() {\n const { x, y, color, data, d3Line } = this.asProps;\n\n return {\n x,\n y,\n data,\n d3: d3Line,\n color,\n };\n }\n\n getNullProps() {\n const { x, y, color, data, d3Line } = this.asProps;\n return {\n data: getNullData(data, definedNullData(x, y), y),\n d3: d3Line,\n color,\n };\n }\n\n render() {\n const SArea = this.Element;\n const SAreaLine = 'path';\n const { styles, hide, d3, d3Line, data, color, uid, size, duration } = this.asProps;\n return sstyled(styles)(\n <>\n <SAreaLine\n clipPath={`url(#${uid})`}\n d={d3Line(data)}\n color={color}\n use:duration={`${duration}ms`}\n />\n <SArea\n clipPath={`url(#${uid})`}\n render=\"path\"\n d={d3(data)}\n hide={hide}\n color={color}\n use:duration={`${duration}ms`}\n />\n {duration && (\n <ClipPath\n setAttributeTag={(rect) => {\n rect.setAttribute('width', size[0]);\n }}\n id={uid}\n x=\"0\"\n y=\"0\"\n width={0}\n height={size[1]}\n transition={`width ${duration}ms ease-in-out`}\n />\n )}\n </>,\n );\n }\n}\n\nfunction Null(props) {\n const { Element: SNull, styles, d3, data, hide, color } = props;\n return sstyled(styles)(<SNull render=\"path\" d={d3(data)} hide={hide} color={color} />);\n}\n\nexport default createElement(AreaRoot, {\n Dots,\n Null,\n});\n"],"file":"Area.js"}
|
package/lib/cjs/Donut.js
CHANGED
|
@@ -336,7 +336,7 @@ function Pie(_ref12) {
|
|
|
336
336
|
_ref12$color = _ref12.color,
|
|
337
337
|
color = _ref12$color === void 0 ? '#50aef4' : _ref12$color;
|
|
338
338
|
return _ref = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(SPie, _ref.cn("SPie", {
|
|
339
|
-
"render":
|
|
339
|
+
"render": "path",
|
|
340
340
|
"color": color,
|
|
341
341
|
"d": d3Arc(data)
|
|
342
342
|
}));
|
|
@@ -349,9 +349,9 @@ function Label(_ref13) {
|
|
|
349
349
|
styles = _ref13.styles,
|
|
350
350
|
Children = _ref13.Children;
|
|
351
351
|
return _ref2 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(SLabel, _ref2.cn("SLabel", {
|
|
352
|
-
"render":
|
|
353
|
-
"x":
|
|
354
|
-
"y":
|
|
352
|
+
"render": "text",
|
|
353
|
+
"x": "0",
|
|
354
|
+
"y": "0"
|
|
355
355
|
}), /*#__PURE__*/_react["default"].createElement(Children, _ref2.cn("Children", {})));
|
|
356
356
|
}
|
|
357
357
|
|
package/lib/cjs/Donut.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/Donut.js"],"names":["DEFAULT_INSTANCE","Symbol","animationInitialPie","halfsize","d3Arc","arcs","_","ind","d","iStart","Math","PI","startAngle","iEnd","endAngle","t","animationUpdatePie","_current","i","DonutRoot","document","createElement","visible","props","x","clientX","y","clientY","eventEmitter","asProps","virtualElement","getBoundingClientRect","generateGetBoundingClientRect","CONSTANT","VIRTUAL_ELEMENT","emit","uid","id","width","height","top","right","bottom","left","Children","data","d3Pie","pieData","Object","entries","keys","React","toArray","reduce","acc","child","isValidElement","type","Donut","Pie","push","dataKey","filter","key","includes","sort","a","b","indexOf","minValue","cur","map","find","arc","onMouseMove","bindHandlerTooltip","onMouseLeave","color","prevProps","duration","$rootProps","selection","selectAll","transition","attrTween","each","size","Element","k","getArcs","Component","style","innerRadius","minORmax","max","min","outerRadius","value","SPie","styles","Label","SLabel","EmptyData"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { arc, pie } from 'd3-shape';\nimport { Component, sstyled } from '@semcore/core';\nimport canUseDOM from '@semcore/utils/lib/canUseDOM';\nimport getOriginChildren from '@semcore/utils/lib/getOriginChildren';\nimport { CONSTANT } from './utils';\nimport createElement from './createElement';\nimport uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';\nimport { interpolate } from 'd3-interpolate';\nimport { transition } from 'd3-transition';\n\nimport style from './style/donut.shadow.css';\n\nconst DEFAULT_INSTANCE = Symbol('DEFAULT_INSTANCE');\n\nfunction animationInitialPie({ halfsize, d3Arc, arcs }) {\n return function(_, ind) {\n const d = arcs[ind];\n if (!d) return () => '';\n const iStart = interpolate(halfsize ? -Math.PI / 2 : 0, d.startAngle);\n const iEnd = interpolate(halfsize ? -Math.PI / 2 : 0, d.endAngle);\n return function(t) {\n d.startAngle = iStart(t);\n d.endAngle = iEnd(t);\n return d3Arc(d);\n };\n };\n}\n\nfunction animationUpdatePie({ halfsize, arcs, d3Arc }) {\n return function(_, ind) {\n const d = arcs[ind];\n if (this._current) {\n const i = interpolate(this._current, d);\n this._current = i(0);\n return function(t) {\n return d3Arc(i(t));\n };\n } else {\n this._current = d;\n return animationInitialPie({ halfsize, arcs, d3Arc })(_, ind);\n }\n };\n}\n\nclass DonutRoot extends Component {\n static displayName = 'Donut';\n static style = style;\n static enhance = [uniqueIDEnhancement()];\n\n static defaultProps = ({ innerRadius = 0, halfsize = false, $rootProps: { size } }) => {\n const [width, height] = size;\n const minORmax = halfsize ? Math.max : Math.min;\n const d3Arc = arc()\n .outerRadius(minORmax(width, height) / 2)\n .innerRadius(innerRadius);\n let d3Pie = pie()\n .sort(null)\n .value(([, value]) => value);\n d3Pie[DEFAULT_INSTANCE] = true;\n\n if (halfsize) {\n d3Pie = d3Pie.startAngle(-Math.PI / 2).endAngle(Math.PI / 2);\n }\n return {\n d3Pie,\n d3Arc,\n duration: 500,\n };\n };\n\n get id() {\n const { uid, id } = this.asProps;\n return id || uid;\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 getArcs() {\n let { Children, data, d3Pie } = this.asProps;\n let pieData = Object.entries(data);\n\n if (d3Pie[DEFAULT_INSTANCE]) {\n const keys = React.Children.toArray(getOriginChildren(Children)).reduce((acc, child) => {\n if (React.isValidElement(child) && child.type === Donut.Pie) {\n acc.push(child.props.dataKey);\n }\n return acc;\n }, []);\n pieData = Object.entries(data)\n .filter(([key]) => keys.includes(key))\n .sort(([a], [b]) => (keys.indexOf(a) > keys.indexOf(b) ? 1 : -1));\n }\n const minValue = pieData.reduce((acc, cur) => {\n if (cur[1]) acc += cur[1];\n return acc;\n }, 0) / 100;\n pieData = pieData.map((d) => {\n if (d[1] && d[1] < minValue) d[1] = minValue\n return d;\n });\n return d3Pie(pieData);\n }\n\n bindHandlerTooltip = (visible, props) => ({ 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 getPieProps(props) {\n const { d3Arc } = this.asProps;\n return {\n data: this.arcs.find((arc) => arc.data[0] === props.dataKey),\n d3Arc,\n onMouseMove: this.bindHandlerTooltip(true, props),\n onMouseLeave: this.bindHandlerTooltip(false, props),\n };\n }\n\n getEmptyDataProps() {\n const { d3Arc } = this.asProps;\n return {\n data: {\n endAngle: Math.PI * 2,\n startAngle: 0,\n },\n d3Arc,\n color: '#E4ECF1',\n };\n }\n\n componentDidUpdate(prevProps) {\n const { data, duration, d3Arc, halfsize } = this.asProps;\n const arcs = this.arcs;\n if (prevProps.$rootProps.data !== data && duration > 0) {\n transition()\n .selection()\n .selectAll(`#${this.id} [data-ui-name=\"Donut.Pie\"]`)\n .transition()\n .duration(duration)\n .attrTween('d', animationUpdatePie({ d3Arc, arcs, halfsize }));\n }\n }\n\n componentDidMount() {\n const { duration, d3Arc, halfsize } = this.asProps;\n const arcs = this.arcs;\n if (duration > 0) {\n transition()\n .selection()\n .selectAll(`#${this.id} [data-ui-name=\"Donut.Pie\"]`)\n .each(function(_, ind) {\n this._current = arcs[ind];\n })\n .transition()\n .duration(duration)\n .attrTween('d', animationInitialPie({ halfsize, d3Arc, arcs }));\n }\n }\n\n render() {\n const { halfsize, size } = this.asProps;\n const [width, height] = size;\n const Element = this.Element;\n const k = halfsize ? 1 : 2;\n this.arcs = this.getArcs();\n return (\n <Element\n id={this.id}\n render='g'\n childrenPosition='inside'\n transform={`translate(${width / 2},${height / k})`}\n />\n );\n }\n}\n\nfunction Pie({ Element: SPie, styles, d3Arc, data, color = '#50aef4' }) {\n return sstyled(styles)(<SPie render='path' color={color} d={d3Arc(data)} />);\n}\n\nfunction Label({ Element: SLabel, styles, Children }) {\n return sstyled(styles)(\n <SLabel render='text' x='0' y='0'>\n <Children />\n </SLabel>,\n );\n}\n\nconst Donut = createElement(DonutRoot, { Pie, Label, EmptyData: Pie });\n\nexport default Donut;\n"],"file":"Donut.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/Donut.js"],"names":["DEFAULT_INSTANCE","Symbol","animationInitialPie","halfsize","d3Arc","arcs","_","ind","d","iStart","Math","PI","startAngle","iEnd","endAngle","t","animationUpdatePie","_current","i","DonutRoot","document","createElement","visible","props","x","clientX","y","clientY","eventEmitter","asProps","virtualElement","getBoundingClientRect","generateGetBoundingClientRect","CONSTANT","VIRTUAL_ELEMENT","emit","uid","id","width","height","top","right","bottom","left","Children","data","d3Pie","pieData","Object","entries","keys","React","toArray","reduce","acc","child","isValidElement","type","Donut","Pie","push","dataKey","filter","key","includes","sort","a","b","indexOf","minValue","cur","map","find","arc","onMouseMove","bindHandlerTooltip","onMouseLeave","color","prevProps","duration","$rootProps","selection","selectAll","transition","attrTween","each","size","Element","k","getArcs","Component","style","innerRadius","minORmax","max","min","outerRadius","value","SPie","styles","Label","SLabel","EmptyData"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { arc, pie } from 'd3-shape';\nimport { Component, sstyled } from '@semcore/core';\nimport canUseDOM from '@semcore/utils/lib/canUseDOM';\nimport getOriginChildren from '@semcore/utils/lib/getOriginChildren';\nimport { CONSTANT } from './utils';\nimport createElement from './createElement';\nimport uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';\nimport { interpolate } from 'd3-interpolate';\nimport { transition } from 'd3-transition';\n\nimport style from './style/donut.shadow.css';\n\nconst DEFAULT_INSTANCE = Symbol('DEFAULT_INSTANCE');\n\nfunction animationInitialPie({ halfsize, d3Arc, arcs }) {\n return function(_, ind) {\n const d = arcs[ind];\n if (!d) return () => '';\n const iStart = interpolate(halfsize ? -Math.PI / 2 : 0, d.startAngle);\n const iEnd = interpolate(halfsize ? -Math.PI / 2 : 0, d.endAngle);\n return function(t) {\n d.startAngle = iStart(t);\n d.endAngle = iEnd(t);\n return d3Arc(d);\n };\n };\n}\n\nfunction animationUpdatePie({ halfsize, arcs, d3Arc }) {\n return function(_, ind) {\n const d = arcs[ind];\n if (this._current) {\n const i = interpolate(this._current, d);\n this._current = i(0);\n return function(t) {\n return d3Arc(i(t));\n };\n } else {\n this._current = d;\n return animationInitialPie({ halfsize, arcs, d3Arc })(_, ind);\n }\n };\n}\n\nclass DonutRoot extends Component {\n static displayName = 'Donut';\n static style = style;\n static enhance = [uniqueIDEnhancement()];\n\n static defaultProps = ({ innerRadius = 0, halfsize = false, $rootProps: { size } }) => {\n const [width, height] = size;\n const minORmax = halfsize ? Math.max : Math.min;\n const d3Arc = arc()\n .outerRadius(minORmax(width, height) / 2)\n .innerRadius(innerRadius);\n let d3Pie = pie()\n .sort(null)\n .value(([, value]) => value);\n d3Pie[DEFAULT_INSTANCE] = true;\n\n if (halfsize) {\n d3Pie = d3Pie.startAngle(-Math.PI / 2).endAngle(Math.PI / 2);\n }\n return {\n d3Pie,\n d3Arc,\n duration: 500,\n };\n };\n\n get id() {\n const { uid, id } = this.asProps;\n return id || uid;\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 getArcs() {\n let { Children, data, d3Pie } = this.asProps;\n let pieData = Object.entries(data);\n\n if (d3Pie[DEFAULT_INSTANCE]) {\n const keys = React.Children.toArray(getOriginChildren(Children)).reduce((acc, child) => {\n if (React.isValidElement(child) && child.type === Donut.Pie) {\n acc.push(child.props.dataKey);\n }\n return acc;\n }, []);\n pieData = Object.entries(data)\n .filter(([key]) => keys.includes(key))\n .sort(([a], [b]) => (keys.indexOf(a) > keys.indexOf(b) ? 1 : -1));\n }\n const minValue =\n pieData.reduce((acc, cur) => {\n if (cur[1]) acc += cur[1];\n return acc;\n }, 0) / 100;\n pieData = pieData.map((d) => {\n if (d[1] && d[1] < minValue) d[1] = minValue;\n return d;\n });\n return d3Pie(pieData);\n }\n\n bindHandlerTooltip = (visible, props) => ({ 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 getPieProps(props) {\n const { d3Arc } = this.asProps;\n return {\n data: this.arcs.find((arc) => arc.data[0] === props.dataKey),\n d3Arc,\n onMouseMove: this.bindHandlerTooltip(true, props),\n onMouseLeave: this.bindHandlerTooltip(false, props),\n };\n }\n\n getEmptyDataProps() {\n const { d3Arc } = this.asProps;\n return {\n data: {\n endAngle: Math.PI * 2,\n startAngle: 0,\n },\n d3Arc,\n color: '#E4ECF1',\n };\n }\n\n componentDidUpdate(prevProps) {\n const { data, duration, d3Arc, halfsize } = this.asProps;\n const arcs = this.arcs;\n if (prevProps.$rootProps.data !== data && duration > 0) {\n transition()\n .selection()\n .selectAll(`#${this.id} [data-ui-name=\"Donut.Pie\"]`)\n .transition()\n .duration(duration)\n .attrTween('d', animationUpdatePie({ d3Arc, arcs, halfsize }));\n }\n }\n\n componentDidMount() {\n const { duration, d3Arc, halfsize } = this.asProps;\n const arcs = this.arcs;\n if (duration > 0) {\n transition()\n .selection()\n .selectAll(`#${this.id} [data-ui-name=\"Donut.Pie\"]`)\n .each(function(_, ind) {\n this._current = arcs[ind];\n })\n .transition()\n .duration(duration)\n .attrTween('d', animationInitialPie({ halfsize, d3Arc, arcs }));\n }\n }\n\n render() {\n const { halfsize, size } = this.asProps;\n const [width, height] = size;\n const Element = this.Element;\n const k = halfsize ? 1 : 2;\n this.arcs = this.getArcs();\n return (\n <Element\n id={this.id}\n render=\"g\"\n childrenPosition=\"inside\"\n transform={`translate(${width / 2},${height / k})`}\n />\n );\n }\n}\n\nfunction Pie({ Element: SPie, styles, d3Arc, data, color = '#50aef4' }) {\n return sstyled(styles)(<SPie render=\"path\" color={color} d={d3Arc(data)} />);\n}\n\nfunction Label({ Element: SLabel, styles, Children }) {\n return sstyled(styles)(\n <SLabel render=\"text\" x=\"0\" y=\"0\">\n <Children />\n </SLabel>,\n );\n}\n\nconst Donut = createElement(DonutRoot, { Pie, Label, EmptyData: Pie });\n\nexport default Donut;\n"],"file":"Donut.js"}
|
package/lib/cjs/GroupBar.js
CHANGED
|
@@ -42,14 +42,14 @@ var _ref = (
|
|
|
42
42
|
/*__reshadow_css_start__*/
|
|
43
43
|
(0, _core.__css__)(
|
|
44
44
|
/*__inner_css_start__*/
|
|
45
|
-
".
|
|
45
|
+
".___SBar_urkei_gg_{fill:var(--color);transition-property:height,width,y;transition-duration:var(--duration);transition-timing-function:ease-in-out}.___SBar_urkei_gg_.__hide_urkei_gg_{display:none}.___SBackground_urkei_gg_{fill:#e4ecf1}"
|
|
46
46
|
/*__inner_css_end__*/
|
|
47
|
-
, "
|
|
47
|
+
, "1om7b1x_gg_")
|
|
48
48
|
/*__reshadow_css_end__*/
|
|
49
49
|
, {
|
|
50
|
-
"__SBar": "
|
|
51
|
-
"_hide": "
|
|
52
|
-
"__SBackground": "
|
|
50
|
+
"__SBar": "___SBar_urkei_gg_",
|
|
51
|
+
"_hide": "__hide_urkei_gg_",
|
|
52
|
+
"__SBackground": "___SBackground_urkei_gg_"
|
|
53
53
|
}),
|
|
54
54
|
style = (0, _extends2["default"])({}, _ref);
|
|
55
55
|
|
package/lib/cjs/Line.js
CHANGED
|
@@ -89,6 +89,7 @@ var LineRoot = /*#__PURE__*/function (_Component) {
|
|
|
89
89
|
key: "getNullProps",
|
|
90
90
|
value: function getNullProps() {
|
|
91
91
|
var _this$asProps2 = this.asProps,
|
|
92
|
+
x = _this$asProps2.x,
|
|
92
93
|
y = _this$asProps2.y,
|
|
93
94
|
d3 = _this$asProps2.d3,
|
|
94
95
|
color = _this$asProps2.color,
|
|
@@ -96,7 +97,7 @@ var LineRoot = /*#__PURE__*/function (_Component) {
|
|
|
96
97
|
return {
|
|
97
98
|
d3: d3,
|
|
98
99
|
// TODO: vertical
|
|
99
|
-
data: (0, _utils.getNullData)(data,
|
|
100
|
+
data: (0, _utils.getNullData)(data, (0, _utils.definedNullData)(x, y), y),
|
|
100
101
|
color: color
|
|
101
102
|
};
|
|
102
103
|
}
|
package/lib/cjs/Line.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/Line.js"],"names":["LineRoot","asProps","x","y","d3","color","duration","delay","data","
|
|
1
|
+
{"version":3,"sources":["../../src/Line.js"],"names":["LineRoot","asProps","x","y","d3","color","duration","delay","data","SLine","Element","styles","hide","uid","size","rect","setAttribute","Component","style","$rootProps","curve","curveLinear","scale","xScale","yScale","defined","p","Null","props","SNull","Dots"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { curveLinear, line as d3Line } from 'd3-shape';\nimport { Component, sstyled } from '@semcore/core';\nimport createElement from './createElement';\nimport { definedData, definedNullData, scaleOfBandwidth, getNullData } from './utils';\nimport Dots from './Dots';\nimport ClipPath from './ClipPath';\nimport uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';\n\nimport style from './style/line.shadow.css';\n\nclass LineRoot extends Component {\n static displayName = 'Line';\n static style = style;\n static enhance = [uniqueIDEnhancement()];\n\n static defaultProps = ({ x, y, $rootProps, curve = curveLinear }) => {\n const [xScale, yScale] = $rootProps.scale;\n return {\n d3: d3Line()\n .defined(definedData(x, y))\n .curve(curve)\n .x((p) => scaleOfBandwidth(xScale, p[x]))\n .y((p) => scaleOfBandwidth(yScale, p[y])),\n color: '#50aef4',\n duration: 500,\n };\n };\n\n getDotsProps() {\n const { x, y, d3, color, duration } = this.asProps;\n return {\n x,\n y,\n d3,\n color,\n delay: duration,\n };\n }\n\n getNullProps() {\n const { x, y, d3, color, data } = this.asProps;\n return {\n d3,\n // TODO: vertical\n data: getNullData(data, definedNullData(x, y), y),\n color,\n };\n }\n\n render() {\n const SLine = this.Element;\n const { styles, hide, color, uid, size, d3, data, duration } = this.asProps;\n return sstyled(styles)(\n <>\n <SLine\n clipPath={`url(#${uid})`}\n render=\"path\"\n hide={hide}\n color={color}\n d={d3(data)}\n use:duration={`${duration}ms`}\n />\n {duration && (\n <ClipPath\n setAttributeTag={(rect) => {\n rect.setAttribute('width', size[0]);\n }}\n id={uid}\n x=\"0\"\n y=\"0\"\n width={0}\n height={size[1]}\n transition={`width ${duration}ms ease-in-out`}\n />\n )}\n </>,\n );\n }\n}\n\nfunction Null(props) {\n const { Element: SNull, styles, d3, data, hide } = props;\n return sstyled(styles)(<SNull render=\"path\" d={d3(data)} hide={hide} />);\n}\n\nexport default createElement(LineRoot, {\n Dots,\n Null,\n});\n"],"file":"Line.js"}
|
package/lib/cjs/StackBar.js
CHANGED
|
@@ -48,14 +48,14 @@ var _ref = (
|
|
|
48
48
|
/*__reshadow_css_start__*/
|
|
49
49
|
(0, _core.__css__)(
|
|
50
50
|
/*__inner_css_start__*/
|
|
51
|
-
".
|
|
51
|
+
".___SBar_1gmrz_gg_{fill:var(--color);transition-property:height,width,y;transition-duration:var(--duration);transition-timing-function:ease-in-out}.___SBar_1gmrz_gg_.__hide_1gmrz_gg_{display:none}.___SBackground_1gmrz_gg_{fill:#e4ecf1}"
|
|
52
52
|
/*__inner_css_end__*/
|
|
53
|
-
, "
|
|
53
|
+
, "y9x1rp_gg_")
|
|
54
54
|
/*__reshadow_css_end__*/
|
|
55
55
|
, {
|
|
56
|
-
"__SBar": "
|
|
57
|
-
"_hide": "
|
|
58
|
-
"__SBackground": "
|
|
56
|
+
"__SBar": "___SBar_1gmrz_gg_",
|
|
57
|
+
"_hide": "__hide_1gmrz_gg_",
|
|
58
|
+
"__SBackground": "___SBackground_1gmrz_gg_"
|
|
59
59
|
}),
|
|
60
60
|
style = (0, _extends2["default"])({}, _ref);
|
|
61
61
|
|
package/lib/cjs/StackedArea.js
CHANGED
|
@@ -46,15 +46,15 @@ var _ref = (
|
|
|
46
46
|
/*__reshadow_css_start__*/
|
|
47
47
|
(0, _core.__css__)(
|
|
48
48
|
/*__inner_css_start__*/
|
|
49
|
-
".
|
|
49
|
+
".___SArea_1hbbk_gg_{fill:var(--color);fill-opacity:.4}.___SAreaLine_1hbbk_gg_{stroke:var(--color);stroke-width:3;fill:transparent}.___SArea_1hbbk_gg_,.___SAreaLine_1hbbk_gg_{transition-property:d;transition-duration:var(--duration);transition-timing-function:ease-in-out}.___SNull_1hbbk_gg_{fill:transparent;stroke:#bdc4c6;stroke-dasharray:4}.___SNull_1hbbk_gg_.__hide_1hbbk_gg_{display:none}"
|
|
50
50
|
/*__inner_css_end__*/
|
|
51
|
-
, "
|
|
51
|
+
, "1etf1m1_gg_")
|
|
52
52
|
/*__reshadow_css_end__*/
|
|
53
53
|
, {
|
|
54
|
-
"__SArea": "
|
|
55
|
-
"__SAreaLine": "
|
|
56
|
-
"__SNull": "
|
|
57
|
-
"_hide": "
|
|
54
|
+
"__SArea": "___SArea_1hbbk_gg_",
|
|
55
|
+
"__SAreaLine": "___SAreaLine_1hbbk_gg_",
|
|
56
|
+
"__SNull": "___SNull_1hbbk_gg_",
|
|
57
|
+
"_hide": "__hide_1hbbk_gg_"
|
|
58
58
|
}),
|
|
59
59
|
style = (0, _extends2["default"])({}, _ref);
|
|
60
60
|
|
package/lib/cjs/utils.js
CHANGED
|
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
});
|
|
8
8
|
exports.eventToPoint = eventToPoint;
|
|
9
9
|
exports.invert = invert;
|
|
10
|
+
exports.definedNullData = definedNullData;
|
|
10
11
|
exports.definedData = definedData;
|
|
11
12
|
exports.scaleOfBandwidth = scaleOfBandwidth;
|
|
12
13
|
exports.minMax = minMax;
|
|
@@ -42,12 +43,18 @@ function invert(scale, value) {
|
|
|
42
43
|
return (0, _d3Scale.scaleQuantize)().domain(range[0] <= range[1] ? range : range.slice().reverse()).range(range[0] <= range[1] ? domain : domain.slice().reverse())(value);
|
|
43
44
|
}
|
|
44
45
|
|
|
45
|
-
function
|
|
46
|
+
function definedNullData(x, y) {
|
|
46
47
|
return function (p) {
|
|
47
48
|
return p[x] !== null && p[y] !== null;
|
|
48
49
|
};
|
|
49
50
|
}
|
|
50
51
|
|
|
52
|
+
function definedData(x, y) {
|
|
53
|
+
return function (p) {
|
|
54
|
+
return p[x] !== null && p[x] !== undefined && p[y] !== null && p[y] !== undefined;
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
|
|
51
58
|
function scaleOfBandwidth(scale, value) {
|
|
52
59
|
return scale.bandwidth ? scale(value) + scale.bandwidth() / 2 : scale(value);
|
|
53
60
|
}
|
package/lib/cjs/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils.js"],"names":["CONSTANT","VIRTUAL_ELEMENT","Symbol","eventToPoint","event","svgRoot","node","currentTarget","target","rect","getBoundingClientRect","clientX","left","clientLeft","clientY","top","clientTop","invert","scale","value","range","domain","slice","reverse","
|
|
1
|
+
{"version":3,"sources":["../../src/utils.js"],"names":["CONSTANT","VIRTUAL_ELEMENT","Symbol","eventToPoint","event","svgRoot","node","currentTarget","target","rect","getBoundingClientRect","clientX","left","clientLeft","clientY","top","clientTop","invert","scale","value","range","domain","slice","reverse","definedNullData","x","y","p","definedData","undefined","scaleOfBandwidth","bandwidth","minMax","data","key","d","getNullData","defined","name","reduce","acc","i","push","prev","next","defNext","find","length","defPrev","getIndexFromData","bisect","center","step","index","findIndex","console","warn"],"mappings":"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","sourcesContent":["import { extent, bisector } from 'd3-array';\nimport { scaleQuantize } from 'd3-scale';\n\nconst CONSTANT = {\n VIRTUAL_ELEMENT: Symbol('VIRTUAL_ELEMENT'),\n};\n\nexport { CONSTANT };\n\nexport function eventToPoint(event, svgRoot) {\n const node = event.currentTarget || event.target;\n const rect = svgRoot.getBoundingClientRect();\n return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];\n}\n\nexport function invert(scale, value) {\n if (scale.invert) return scale.invert(value);\n\n const range = scale.range();\n const domain = scale.domain();\n\n return scaleQuantize()\n .domain(range[0] <= range[1] ? range : range.slice().reverse())\n .range(range[0] <= range[1] ? domain : domain.slice().reverse())(value);\n}\n\nexport function definedNullData(x, y) {\n return (p) => p[x] !== null && p[y] !== null;\n}\n\nexport function definedData(x, y) {\n return (p) => {\n return p[x] !== null && p[x] !== undefined && (p[y] !== null && p[y] !== undefined);\n };\n}\n\nexport function scaleOfBandwidth(scale, value) {\n return scale.bandwidth ? scale(value) + scale.bandwidth() / 2 : scale(value);\n}\n\nexport function minMax(data, key) {\n if (typeof key === 'string') {\n return extent(data, (d) => d[key]);\n }\n return extent(data, key);\n}\n\nexport function getNullData(data, defined, name) {\n return data.reduce((acc, d, i, data) => {\n if (defined(d)) {\n acc.push({\n [name]: null,\n });\n } else {\n const prev = data[i - 1];\n const next = data[i + 1];\n\n if (i === 0) {\n const defNext = data.find(defined);\n acc.push({\n ...d,\n [name]: defNext ? defNext[name] : null,\n });\n }\n\n // prev\n if (prev && defined(prev)) {\n acc.push(prev);\n }\n\n // next\n if (next && defined(next)) {\n acc.push(next);\n }\n\n if (data.length - 1 === i) {\n const defPrev = data\n .slice()\n .reverse()\n .find(defined);\n acc.push({\n ...d,\n [name]: defPrev ? defPrev[name] : null,\n });\n }\n }\n return acc;\n }, []);\n}\n\nexport function getIndexFromData(data, scale, key, value) {\n // detect line chart\n if ('invert' in scale && typeof scale.invert === 'function') {\n const bisect = bisector((d) => d[key]).center;\n return bisect(data, value);\n }\n // detect bar chart\n else if ('step' in scale && typeof scale.step !== 'undefined') {\n const index = data.findIndex((d) => d[key] === value);\n return index >= 0 ? index : null;\n } else {\n console.warn('[d3-chart/utils/getIndexFromData] encountered incompatible scale type');\n return null;\n }\n}\n"],"file":"utils.js"}
|
package/lib/es6/Area.js
CHANGED
|
@@ -16,7 +16,7 @@ import { area, curveLinear, line } from 'd3-shape';
|
|
|
16
16
|
import Dots from './Dots';
|
|
17
17
|
import { Component, sstyled } from '@semcore/core';
|
|
18
18
|
import createElement from './createElement';
|
|
19
|
-
import { definedData, scaleOfBandwidth, getNullData } from './utils';
|
|
19
|
+
import { definedData, scaleOfBandwidth, getNullData, definedNullData } from './utils';
|
|
20
20
|
import ClipPath from './ClipPath';
|
|
21
21
|
import uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';
|
|
22
22
|
|
|
@@ -70,12 +70,13 @@ var AreaRoot = /*#__PURE__*/function (_Component) {
|
|
|
70
70
|
key: "getNullProps",
|
|
71
71
|
value: function getNullProps() {
|
|
72
72
|
var _this$asProps2 = this.asProps,
|
|
73
|
+
x = _this$asProps2.x,
|
|
73
74
|
y = _this$asProps2.y,
|
|
74
75
|
color = _this$asProps2.color,
|
|
75
76
|
data = _this$asProps2.data,
|
|
76
77
|
d3Line = _this$asProps2.d3Line;
|
|
77
78
|
return {
|
|
78
|
-
data: getNullData(data,
|
|
79
|
+
data: getNullData(data, definedNullData(x, y), y),
|
|
79
80
|
d3: d3Line,
|
|
80
81
|
color: color
|
|
81
82
|
};
|
package/lib/es6/Area.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/Area.js"],"names":["React","area","curveLinear","line","Dots","Component","sstyled","createElement","definedData","scaleOfBandwidth","getNullData","ClipPath","uniqueIDEnhancement","AreaRoot","asProps","x","y","color","data","d3Line","d3","
|
|
1
|
+
{"version":3,"sources":["../../src/Area.js"],"names":["React","area","curveLinear","line","Dots","Component","sstyled","createElement","definedData","scaleOfBandwidth","getNullData","definedNullData","ClipPath","uniqueIDEnhancement","AreaRoot","asProps","x","y","color","data","d3Line","d3","SArea","Element","SAreaLine","styles","hide","uid","size","duration","rect","setAttribute","style","y0","$rootProps","curve","scale","xScale","yScale","yRange","range","defined","p","y1","Null","props","SNull"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { area, curveLinear, line } from 'd3-shape';\nimport Dots from './Dots';\nimport { Component, sstyled } from '@semcore/core';\nimport createElement from './createElement';\nimport { definedData, scaleOfBandwidth, getNullData, definedNullData } from './utils';\nimport ClipPath from './ClipPath';\nimport uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';\n\nimport style from './style/area.shadow.css';\n\nclass AreaRoot extends Component {\n static displayName = 'Area';\n static style = style;\n static enhance = [uniqueIDEnhancement()];\n\n static defaultProps = ({ x, y, y0, $rootProps, curve = curveLinear }) => {\n const [xScale, yScale] = $rootProps.scale;\n const yRange = yScale.range();\n\n return {\n d3: area()\n .defined(definedData(x, y))\n .curve(curve)\n .x((p) => scaleOfBandwidth(xScale, p[x]))\n .y0((p) => (p[y0] ? scaleOfBandwidth(yScale, p[y0]) : yRange[0]))\n .y1((p) => scaleOfBandwidth(yScale, p[y])),\n d3Line: line()\n .defined(definedData(x, y))\n .curve(curve)\n .x((p) => scaleOfBandwidth(xScale, p[x]))\n .y((p) => scaleOfBandwidth(yScale, p[y])),\n color: '#50aef4',\n duration: 500,\n };\n };\n\n getDotsProps() {\n const { x, y, color, data, d3Line } = this.asProps;\n\n return {\n x,\n y,\n data,\n d3: d3Line,\n color,\n };\n }\n\n getNullProps() {\n const { x, y, color, data, d3Line } = this.asProps;\n return {\n data: getNullData(data, definedNullData(x, y), y),\n d3: d3Line,\n color,\n };\n }\n\n render() {\n const SArea = this.Element;\n const SAreaLine = 'path';\n const { styles, hide, d3, d3Line, data, color, uid, size, duration } = this.asProps;\n return sstyled(styles)(\n <>\n <SAreaLine\n clipPath={`url(#${uid})`}\n d={d3Line(data)}\n color={color}\n use:duration={`${duration}ms`}\n />\n <SArea\n clipPath={`url(#${uid})`}\n render=\"path\"\n d={d3(data)}\n hide={hide}\n color={color}\n use:duration={`${duration}ms`}\n />\n {duration && (\n <ClipPath\n setAttributeTag={(rect) => {\n rect.setAttribute('width', size[0]);\n }}\n id={uid}\n x=\"0\"\n y=\"0\"\n width={0}\n height={size[1]}\n transition={`width ${duration}ms ease-in-out`}\n />\n )}\n </>,\n );\n }\n}\n\nfunction Null(props) {\n const { Element: SNull, styles, d3, data, hide, color } = props;\n return sstyled(styles)(<SNull render=\"path\" d={d3(data)} hide={hide} color={color} />);\n}\n\nexport default createElement(AreaRoot, {\n Dots,\n Null,\n});\n"],"file":"Area.js"}
|
package/lib/es6/Donut.js
CHANGED
|
@@ -318,7 +318,7 @@ function Pie(_ref12) {
|
|
|
318
318
|
_ref12$color = _ref12.color,
|
|
319
319
|
color = _ref12$color === void 0 ? '#50aef4' : _ref12$color;
|
|
320
320
|
return _ref = sstyled(styles), /*#__PURE__*/React.createElement(SPie, _ref.cn("SPie", {
|
|
321
|
-
"render":
|
|
321
|
+
"render": "path",
|
|
322
322
|
"color": color,
|
|
323
323
|
"d": d3Arc(data)
|
|
324
324
|
}));
|
|
@@ -331,9 +331,9 @@ function Label(_ref13) {
|
|
|
331
331
|
styles = _ref13.styles,
|
|
332
332
|
Children = _ref13.Children;
|
|
333
333
|
return _ref2 = sstyled(styles), /*#__PURE__*/React.createElement(SLabel, _ref2.cn("SLabel", {
|
|
334
|
-
"render":
|
|
335
|
-
"x":
|
|
336
|
-
"y":
|
|
334
|
+
"render": "text",
|
|
335
|
+
"x": "0",
|
|
336
|
+
"y": "0"
|
|
337
337
|
}), /*#__PURE__*/React.createElement(Children, _ref2.cn("Children", {})));
|
|
338
338
|
}
|
|
339
339
|
|
package/lib/es6/Donut.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/Donut.js"],"names":["React","arc","pie","Component","sstyled","canUseDOM","getOriginChildren","CONSTANT","createElement","uniqueIDEnhancement","interpolate","transition","DEFAULT_INSTANCE","Symbol","animationInitialPie","halfsize","d3Arc","arcs","_","ind","d","iStart","Math","PI","startAngle","iEnd","endAngle","t","animationUpdatePie","_current","i","DonutRoot","document","visible","props","x","clientX","y","clientY","eventEmitter","asProps","virtualElement","getBoundingClientRect","generateGetBoundingClientRect","VIRTUAL_ELEMENT","emit","uid","id","width","height","top","right","bottom","left","Children","data","d3Pie","pieData","Object","entries","keys","toArray","reduce","acc","child","isValidElement","type","Donut","Pie","push","dataKey","filter","key","includes","sort","a","b","indexOf","minValue","cur","map","find","onMouseMove","bindHandlerTooltip","onMouseLeave","color","prevProps","duration","$rootProps","selection","selectAll","attrTween","each","size","Element","k","getArcs","style","innerRadius","minORmax","max","min","outerRadius","value","SPie","styles","Label","SLabel","EmptyData"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { arc, pie } from 'd3-shape';\nimport { Component, sstyled } from '@semcore/core';\nimport canUseDOM from '@semcore/utils/lib/canUseDOM';\nimport getOriginChildren from '@semcore/utils/lib/getOriginChildren';\nimport { CONSTANT } from './utils';\nimport createElement from './createElement';\nimport uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';\nimport { interpolate } from 'd3-interpolate';\nimport { transition } from 'd3-transition';\n\nimport style from './style/donut.shadow.css';\n\nconst DEFAULT_INSTANCE = Symbol('DEFAULT_INSTANCE');\n\nfunction animationInitialPie({ halfsize, d3Arc, arcs }) {\n return function(_, ind) {\n const d = arcs[ind];\n if (!d) return () => '';\n const iStart = interpolate(halfsize ? -Math.PI / 2 : 0, d.startAngle);\n const iEnd = interpolate(halfsize ? -Math.PI / 2 : 0, d.endAngle);\n return function(t) {\n d.startAngle = iStart(t);\n d.endAngle = iEnd(t);\n return d3Arc(d);\n };\n };\n}\n\nfunction animationUpdatePie({ halfsize, arcs, d3Arc }) {\n return function(_, ind) {\n const d = arcs[ind];\n if (this._current) {\n const i = interpolate(this._current, d);\n this._current = i(0);\n return function(t) {\n return d3Arc(i(t));\n };\n } else {\n this._current = d;\n return animationInitialPie({ halfsize, arcs, d3Arc })(_, ind);\n }\n };\n}\n\nclass DonutRoot extends Component {\n static displayName = 'Donut';\n static style = style;\n static enhance = [uniqueIDEnhancement()];\n\n static defaultProps = ({ innerRadius = 0, halfsize = false, $rootProps: { size } }) => {\n const [width, height] = size;\n const minORmax = halfsize ? Math.max : Math.min;\n const d3Arc = arc()\n .outerRadius(minORmax(width, height) / 2)\n .innerRadius(innerRadius);\n let d3Pie = pie()\n .sort(null)\n .value(([, value]) => value);\n d3Pie[DEFAULT_INSTANCE] = true;\n\n if (halfsize) {\n d3Pie = d3Pie.startAngle(-Math.PI / 2).endAngle(Math.PI / 2);\n }\n return {\n d3Pie,\n d3Arc,\n duration: 500,\n };\n };\n\n get id() {\n const { uid, id } = this.asProps;\n return id || uid;\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 getArcs() {\n let { Children, data, d3Pie } = this.asProps;\n let pieData = Object.entries(data);\n\n if (d3Pie[DEFAULT_INSTANCE]) {\n const keys = React.Children.toArray(getOriginChildren(Children)).reduce((acc, child) => {\n if (React.isValidElement(child) && child.type === Donut.Pie) {\n acc.push(child.props.dataKey);\n }\n return acc;\n }, []);\n pieData = Object.entries(data)\n .filter(([key]) => keys.includes(key))\n .sort(([a], [b]) => (keys.indexOf(a) > keys.indexOf(b) ? 1 : -1));\n }\n const minValue = pieData.reduce((acc, cur) => {\n if (cur[1]) acc += cur[1];\n return acc;\n }, 0) / 100;\n pieData = pieData.map((d) => {\n if (d[1] && d[1] < minValue) d[1] = minValue\n return d;\n });\n return d3Pie(pieData);\n }\n\n bindHandlerTooltip = (visible, props) => ({ 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 getPieProps(props) {\n const { d3Arc } = this.asProps;\n return {\n data: this.arcs.find((arc) => arc.data[0] === props.dataKey),\n d3Arc,\n onMouseMove: this.bindHandlerTooltip(true, props),\n onMouseLeave: this.bindHandlerTooltip(false, props),\n };\n }\n\n getEmptyDataProps() {\n const { d3Arc } = this.asProps;\n return {\n data: {\n endAngle: Math.PI * 2,\n startAngle: 0,\n },\n d3Arc,\n color: '#E4ECF1',\n };\n }\n\n componentDidUpdate(prevProps) {\n const { data, duration, d3Arc, halfsize } = this.asProps;\n const arcs = this.arcs;\n if (prevProps.$rootProps.data !== data && duration > 0) {\n transition()\n .selection()\n .selectAll(`#${this.id} [data-ui-name=\"Donut.Pie\"]`)\n .transition()\n .duration(duration)\n .attrTween('d', animationUpdatePie({ d3Arc, arcs, halfsize }));\n }\n }\n\n componentDidMount() {\n const { duration, d3Arc, halfsize } = this.asProps;\n const arcs = this.arcs;\n if (duration > 0) {\n transition()\n .selection()\n .selectAll(`#${this.id} [data-ui-name=\"Donut.Pie\"]`)\n .each(function(_, ind) {\n this._current = arcs[ind];\n })\n .transition()\n .duration(duration)\n .attrTween('d', animationInitialPie({ halfsize, d3Arc, arcs }));\n }\n }\n\n render() {\n const { halfsize, size } = this.asProps;\n const [width, height] = size;\n const Element = this.Element;\n const k = halfsize ? 1 : 2;\n this.arcs = this.getArcs();\n return (\n <Element\n id={this.id}\n render='g'\n childrenPosition='inside'\n transform={`translate(${width / 2},${height / k})`}\n />\n );\n }\n}\n\nfunction Pie({ Element: SPie, styles, d3Arc, data, color = '#50aef4' }) {\n return sstyled(styles)(<SPie render='path' color={color} d={d3Arc(data)} />);\n}\n\nfunction Label({ Element: SLabel, styles, Children }) {\n return sstyled(styles)(\n <SLabel render='text' x='0' y='0'>\n <Children />\n </SLabel>,\n );\n}\n\nconst Donut = createElement(DonutRoot, { Pie, Label, EmptyData: Pie });\n\nexport default Donut;\n"],"file":"Donut.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/Donut.js"],"names":["React","arc","pie","Component","sstyled","canUseDOM","getOriginChildren","CONSTANT","createElement","uniqueIDEnhancement","interpolate","transition","DEFAULT_INSTANCE","Symbol","animationInitialPie","halfsize","d3Arc","arcs","_","ind","d","iStart","Math","PI","startAngle","iEnd","endAngle","t","animationUpdatePie","_current","i","DonutRoot","document","visible","props","x","clientX","y","clientY","eventEmitter","asProps","virtualElement","getBoundingClientRect","generateGetBoundingClientRect","VIRTUAL_ELEMENT","emit","uid","id","width","height","top","right","bottom","left","Children","data","d3Pie","pieData","Object","entries","keys","toArray","reduce","acc","child","isValidElement","type","Donut","Pie","push","dataKey","filter","key","includes","sort","a","b","indexOf","minValue","cur","map","find","onMouseMove","bindHandlerTooltip","onMouseLeave","color","prevProps","duration","$rootProps","selection","selectAll","attrTween","each","size","Element","k","getArcs","style","innerRadius","minORmax","max","min","outerRadius","value","SPie","styles","Label","SLabel","EmptyData"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { arc, pie } from 'd3-shape';\nimport { Component, sstyled } from '@semcore/core';\nimport canUseDOM from '@semcore/utils/lib/canUseDOM';\nimport getOriginChildren from '@semcore/utils/lib/getOriginChildren';\nimport { CONSTANT } from './utils';\nimport createElement from './createElement';\nimport uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';\nimport { interpolate } from 'd3-interpolate';\nimport { transition } from 'd3-transition';\n\nimport style from './style/donut.shadow.css';\n\nconst DEFAULT_INSTANCE = Symbol('DEFAULT_INSTANCE');\n\nfunction animationInitialPie({ halfsize, d3Arc, arcs }) {\n return function(_, ind) {\n const d = arcs[ind];\n if (!d) return () => '';\n const iStart = interpolate(halfsize ? -Math.PI / 2 : 0, d.startAngle);\n const iEnd = interpolate(halfsize ? -Math.PI / 2 : 0, d.endAngle);\n return function(t) {\n d.startAngle = iStart(t);\n d.endAngle = iEnd(t);\n return d3Arc(d);\n };\n };\n}\n\nfunction animationUpdatePie({ halfsize, arcs, d3Arc }) {\n return function(_, ind) {\n const d = arcs[ind];\n if (this._current) {\n const i = interpolate(this._current, d);\n this._current = i(0);\n return function(t) {\n return d3Arc(i(t));\n };\n } else {\n this._current = d;\n return animationInitialPie({ halfsize, arcs, d3Arc })(_, ind);\n }\n };\n}\n\nclass DonutRoot extends Component {\n static displayName = 'Donut';\n static style = style;\n static enhance = [uniqueIDEnhancement()];\n\n static defaultProps = ({ innerRadius = 0, halfsize = false, $rootProps: { size } }) => {\n const [width, height] = size;\n const minORmax = halfsize ? Math.max : Math.min;\n const d3Arc = arc()\n .outerRadius(minORmax(width, height) / 2)\n .innerRadius(innerRadius);\n let d3Pie = pie()\n .sort(null)\n .value(([, value]) => value);\n d3Pie[DEFAULT_INSTANCE] = true;\n\n if (halfsize) {\n d3Pie = d3Pie.startAngle(-Math.PI / 2).endAngle(Math.PI / 2);\n }\n return {\n d3Pie,\n d3Arc,\n duration: 500,\n };\n };\n\n get id() {\n const { uid, id } = this.asProps;\n return id || uid;\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 getArcs() {\n let { Children, data, d3Pie } = this.asProps;\n let pieData = Object.entries(data);\n\n if (d3Pie[DEFAULT_INSTANCE]) {\n const keys = React.Children.toArray(getOriginChildren(Children)).reduce((acc, child) => {\n if (React.isValidElement(child) && child.type === Donut.Pie) {\n acc.push(child.props.dataKey);\n }\n return acc;\n }, []);\n pieData = Object.entries(data)\n .filter(([key]) => keys.includes(key))\n .sort(([a], [b]) => (keys.indexOf(a) > keys.indexOf(b) ? 1 : -1));\n }\n const minValue =\n pieData.reduce((acc, cur) => {\n if (cur[1]) acc += cur[1];\n return acc;\n }, 0) / 100;\n pieData = pieData.map((d) => {\n if (d[1] && d[1] < minValue) d[1] = minValue;\n return d;\n });\n return d3Pie(pieData);\n }\n\n bindHandlerTooltip = (visible, props) => ({ 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 getPieProps(props) {\n const { d3Arc } = this.asProps;\n return {\n data: this.arcs.find((arc) => arc.data[0] === props.dataKey),\n d3Arc,\n onMouseMove: this.bindHandlerTooltip(true, props),\n onMouseLeave: this.bindHandlerTooltip(false, props),\n };\n }\n\n getEmptyDataProps() {\n const { d3Arc } = this.asProps;\n return {\n data: {\n endAngle: Math.PI * 2,\n startAngle: 0,\n },\n d3Arc,\n color: '#E4ECF1',\n };\n }\n\n componentDidUpdate(prevProps) {\n const { data, duration, d3Arc, halfsize } = this.asProps;\n const arcs = this.arcs;\n if (prevProps.$rootProps.data !== data && duration > 0) {\n transition()\n .selection()\n .selectAll(`#${this.id} [data-ui-name=\"Donut.Pie\"]`)\n .transition()\n .duration(duration)\n .attrTween('d', animationUpdatePie({ d3Arc, arcs, halfsize }));\n }\n }\n\n componentDidMount() {\n const { duration, d3Arc, halfsize } = this.asProps;\n const arcs = this.arcs;\n if (duration > 0) {\n transition()\n .selection()\n .selectAll(`#${this.id} [data-ui-name=\"Donut.Pie\"]`)\n .each(function(_, ind) {\n this._current = arcs[ind];\n })\n .transition()\n .duration(duration)\n .attrTween('d', animationInitialPie({ halfsize, d3Arc, arcs }));\n }\n }\n\n render() {\n const { halfsize, size } = this.asProps;\n const [width, height] = size;\n const Element = this.Element;\n const k = halfsize ? 1 : 2;\n this.arcs = this.getArcs();\n return (\n <Element\n id={this.id}\n render=\"g\"\n childrenPosition=\"inside\"\n transform={`translate(${width / 2},${height / k})`}\n />\n );\n }\n}\n\nfunction Pie({ Element: SPie, styles, d3Arc, data, color = '#50aef4' }) {\n return sstyled(styles)(<SPie render=\"path\" color={color} d={d3Arc(data)} />);\n}\n\nfunction Label({ Element: SLabel, styles, Children }) {\n return sstyled(styles)(\n <SLabel render=\"text\" x=\"0\" y=\"0\">\n <Children />\n </SLabel>,\n );\n}\n\nconst Donut = createElement(DonutRoot, { Pie, Label, EmptyData: Pie });\n\nexport default Donut;\n"],"file":"Donut.js"}
|
package/lib/es6/GroupBar.js
CHANGED
|
@@ -22,14 +22,14 @@ var _ref = (
|
|
|
22
22
|
/*__reshadow_css_start__*/
|
|
23
23
|
__css__(
|
|
24
24
|
/*__inner_css_start__*/
|
|
25
|
-
".
|
|
25
|
+
".___SBar_urkei_gg_{fill:var(--color);transition-property:height,width,y;transition-duration:var(--duration);transition-timing-function:ease-in-out}.___SBar_urkei_gg_.__hide_urkei_gg_{display:none}.___SBackground_urkei_gg_{fill:#e4ecf1}"
|
|
26
26
|
/*__inner_css_end__*/
|
|
27
|
-
, "
|
|
27
|
+
, "1om7b1x_gg_")
|
|
28
28
|
/*__reshadow_css_end__*/
|
|
29
29
|
, {
|
|
30
|
-
"__SBar": "
|
|
31
|
-
"_hide": "
|
|
32
|
-
"__SBackground": "
|
|
30
|
+
"__SBar": "___SBar_urkei_gg_",
|
|
31
|
+
"_hide": "__hide_urkei_gg_",
|
|
32
|
+
"__SBackground": "___SBackground_urkei_gg_"
|
|
33
33
|
}),
|
|
34
34
|
style = _extends({}, _ref);
|
|
35
35
|
|
package/lib/es6/Line.js
CHANGED
|
@@ -15,7 +15,7 @@ import React from 'react';
|
|
|
15
15
|
import { curveLinear, line as d3Line } from 'd3-shape';
|
|
16
16
|
import { Component, sstyled } from '@semcore/core';
|
|
17
17
|
import createElement from './createElement';
|
|
18
|
-
import { definedData, scaleOfBandwidth, getNullData } from './utils';
|
|
18
|
+
import { definedData, definedNullData, scaleOfBandwidth, getNullData } from './utils';
|
|
19
19
|
import Dots from './Dots';
|
|
20
20
|
import ClipPath from './ClipPath';
|
|
21
21
|
import uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';
|
|
@@ -69,6 +69,7 @@ var LineRoot = /*#__PURE__*/function (_Component) {
|
|
|
69
69
|
key: "getNullProps",
|
|
70
70
|
value: function getNullProps() {
|
|
71
71
|
var _this$asProps2 = this.asProps,
|
|
72
|
+
x = _this$asProps2.x,
|
|
72
73
|
y = _this$asProps2.y,
|
|
73
74
|
d3 = _this$asProps2.d3,
|
|
74
75
|
color = _this$asProps2.color,
|
|
@@ -76,7 +77,7 @@ var LineRoot = /*#__PURE__*/function (_Component) {
|
|
|
76
77
|
return {
|
|
77
78
|
d3: d3,
|
|
78
79
|
// TODO: vertical
|
|
79
|
-
data: getNullData(data,
|
|
80
|
+
data: getNullData(data, definedNullData(x, y), y),
|
|
80
81
|
color: color
|
|
81
82
|
};
|
|
82
83
|
}
|
package/lib/es6/Line.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/Line.js"],"names":["React","curveLinear","line","d3Line","Component","sstyled","createElement","definedData","scaleOfBandwidth","getNullData","Dots","ClipPath","uniqueIDEnhancement","LineRoot","asProps","x","y","d3","color","duration","delay","data","
|
|
1
|
+
{"version":3,"sources":["../../src/Line.js"],"names":["React","curveLinear","line","d3Line","Component","sstyled","createElement","definedData","definedNullData","scaleOfBandwidth","getNullData","Dots","ClipPath","uniqueIDEnhancement","LineRoot","asProps","x","y","d3","color","duration","delay","data","SLine","Element","styles","hide","uid","size","rect","setAttribute","style","$rootProps","curve","scale","xScale","yScale","defined","p","Null","props","SNull"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { curveLinear, line as d3Line } from 'd3-shape';\nimport { Component, sstyled } from '@semcore/core';\nimport createElement from './createElement';\nimport { definedData, definedNullData, scaleOfBandwidth, getNullData } from './utils';\nimport Dots from './Dots';\nimport ClipPath from './ClipPath';\nimport uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';\n\nimport style from './style/line.shadow.css';\n\nclass LineRoot extends Component {\n static displayName = 'Line';\n static style = style;\n static enhance = [uniqueIDEnhancement()];\n\n static defaultProps = ({ x, y, $rootProps, curve = curveLinear }) => {\n const [xScale, yScale] = $rootProps.scale;\n return {\n d3: d3Line()\n .defined(definedData(x, y))\n .curve(curve)\n .x((p) => scaleOfBandwidth(xScale, p[x]))\n .y((p) => scaleOfBandwidth(yScale, p[y])),\n color: '#50aef4',\n duration: 500,\n };\n };\n\n getDotsProps() {\n const { x, y, d3, color, duration } = this.asProps;\n return {\n x,\n y,\n d3,\n color,\n delay: duration,\n };\n }\n\n getNullProps() {\n const { x, y, d3, color, data } = this.asProps;\n return {\n d3,\n // TODO: vertical\n data: getNullData(data, definedNullData(x, y), y),\n color,\n };\n }\n\n render() {\n const SLine = this.Element;\n const { styles, hide, color, uid, size, d3, data, duration } = this.asProps;\n return sstyled(styles)(\n <>\n <SLine\n clipPath={`url(#${uid})`}\n render=\"path\"\n hide={hide}\n color={color}\n d={d3(data)}\n use:duration={`${duration}ms`}\n />\n {duration && (\n <ClipPath\n setAttributeTag={(rect) => {\n rect.setAttribute('width', size[0]);\n }}\n id={uid}\n x=\"0\"\n y=\"0\"\n width={0}\n height={size[1]}\n transition={`width ${duration}ms ease-in-out`}\n />\n )}\n </>,\n );\n }\n}\n\nfunction Null(props) {\n const { Element: SNull, styles, d3, data, hide } = props;\n return sstyled(styles)(<SNull render=\"path\" d={d3(data)} hide={hide} />);\n}\n\nexport default createElement(LineRoot, {\n Dots,\n Null,\n});\n"],"file":"Line.js"}
|
package/lib/es6/StackBar.js
CHANGED
|
@@ -27,14 +27,14 @@ var _ref = (
|
|
|
27
27
|
/*__reshadow_css_start__*/
|
|
28
28
|
__css__(
|
|
29
29
|
/*__inner_css_start__*/
|
|
30
|
-
".
|
|
30
|
+
".___SBar_1gmrz_gg_{fill:var(--color);transition-property:height,width,y;transition-duration:var(--duration);transition-timing-function:ease-in-out}.___SBar_1gmrz_gg_.__hide_1gmrz_gg_{display:none}.___SBackground_1gmrz_gg_{fill:#e4ecf1}"
|
|
31
31
|
/*__inner_css_end__*/
|
|
32
|
-
, "
|
|
32
|
+
, "y9x1rp_gg_")
|
|
33
33
|
/*__reshadow_css_end__*/
|
|
34
34
|
, {
|
|
35
|
-
"__SBar": "
|
|
36
|
-
"_hide": "
|
|
37
|
-
"__SBackground": "
|
|
35
|
+
"__SBar": "___SBar_1gmrz_gg_",
|
|
36
|
+
"_hide": "__hide_1gmrz_gg_",
|
|
37
|
+
"__SBackground": "___SBackground_1gmrz_gg_"
|
|
38
38
|
}),
|
|
39
39
|
style = _extends({}, _ref);
|
|
40
40
|
|
package/lib/es6/StackedArea.js
CHANGED
|
@@ -26,15 +26,15 @@ var _ref = (
|
|
|
26
26
|
/*__reshadow_css_start__*/
|
|
27
27
|
__css__(
|
|
28
28
|
/*__inner_css_start__*/
|
|
29
|
-
".
|
|
29
|
+
".___SArea_1hbbk_gg_{fill:var(--color);fill-opacity:.4}.___SAreaLine_1hbbk_gg_{stroke:var(--color);stroke-width:3;fill:transparent}.___SArea_1hbbk_gg_,.___SAreaLine_1hbbk_gg_{transition-property:d;transition-duration:var(--duration);transition-timing-function:ease-in-out}.___SNull_1hbbk_gg_{fill:transparent;stroke:#bdc4c6;stroke-dasharray:4}.___SNull_1hbbk_gg_.__hide_1hbbk_gg_{display:none}"
|
|
30
30
|
/*__inner_css_end__*/
|
|
31
|
-
, "
|
|
31
|
+
, "1etf1m1_gg_")
|
|
32
32
|
/*__reshadow_css_end__*/
|
|
33
33
|
, {
|
|
34
|
-
"__SArea": "
|
|
35
|
-
"__SAreaLine": "
|
|
36
|
-
"__SNull": "
|
|
37
|
-
"_hide": "
|
|
34
|
+
"__SArea": "___SArea_1hbbk_gg_",
|
|
35
|
+
"__SAreaLine": "___SAreaLine_1hbbk_gg_",
|
|
36
|
+
"__SNull": "___SNull_1hbbk_gg_",
|
|
37
|
+
"_hide": "__hide_1hbbk_gg_"
|
|
38
38
|
}),
|
|
39
39
|
style = _extends({}, _ref);
|
|
40
40
|
|
package/lib/es6/utils.js
CHANGED
|
@@ -21,11 +21,16 @@ export function invert(scale, value) {
|
|
|
21
21
|
var domain = scale.domain();
|
|
22
22
|
return scaleQuantize().domain(range[0] <= range[1] ? range : range.slice().reverse()).range(range[0] <= range[1] ? domain : domain.slice().reverse())(value);
|
|
23
23
|
}
|
|
24
|
-
export function
|
|
24
|
+
export function definedNullData(x, y) {
|
|
25
25
|
return function (p) {
|
|
26
26
|
return p[x] !== null && p[y] !== null;
|
|
27
27
|
};
|
|
28
28
|
}
|
|
29
|
+
export function definedData(x, y) {
|
|
30
|
+
return function (p) {
|
|
31
|
+
return p[x] !== null && p[x] !== undefined && p[y] !== null && p[y] !== undefined;
|
|
32
|
+
};
|
|
33
|
+
}
|
|
29
34
|
export function scaleOfBandwidth(scale, value) {
|
|
30
35
|
return scale.bandwidth ? scale(value) + scale.bandwidth() / 2 : scale(value);
|
|
31
36
|
}
|
package/lib/es6/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils.js"],"names":["extent","bisector","scaleQuantize","CONSTANT","VIRTUAL_ELEMENT","Symbol","eventToPoint","event","svgRoot","node","currentTarget","target","rect","getBoundingClientRect","clientX","left","clientLeft","clientY","top","clientTop","invert","scale","value","range","domain","slice","reverse","
|
|
1
|
+
{"version":3,"sources":["../../src/utils.js"],"names":["extent","bisector","scaleQuantize","CONSTANT","VIRTUAL_ELEMENT","Symbol","eventToPoint","event","svgRoot","node","currentTarget","target","rect","getBoundingClientRect","clientX","left","clientLeft","clientY","top","clientTop","invert","scale","value","range","domain","slice","reverse","definedNullData","x","y","p","definedData","undefined","scaleOfBandwidth","bandwidth","minMax","data","key","d","getNullData","defined","name","reduce","acc","i","push","prev","next","defNext","find","length","defPrev","getIndexFromData","bisect","center","step","index","findIndex","console","warn"],"mappings":"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","sourcesContent":["import { extent, bisector } from 'd3-array';\nimport { scaleQuantize } from 'd3-scale';\n\nconst CONSTANT = {\n VIRTUAL_ELEMENT: Symbol('VIRTUAL_ELEMENT'),\n};\n\nexport { CONSTANT };\n\nexport function eventToPoint(event, svgRoot) {\n const node = event.currentTarget || event.target;\n const rect = svgRoot.getBoundingClientRect();\n return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];\n}\n\nexport function invert(scale, value) {\n if (scale.invert) return scale.invert(value);\n\n const range = scale.range();\n const domain = scale.domain();\n\n return scaleQuantize()\n .domain(range[0] <= range[1] ? range : range.slice().reverse())\n .range(range[0] <= range[1] ? domain : domain.slice().reverse())(value);\n}\n\nexport function definedNullData(x, y) {\n return (p) => p[x] !== null && p[y] !== null;\n}\n\nexport function definedData(x, y) {\n return (p) => {\n return p[x] !== null && p[x] !== undefined && (p[y] !== null && p[y] !== undefined);\n };\n}\n\nexport function scaleOfBandwidth(scale, value) {\n return scale.bandwidth ? scale(value) + scale.bandwidth() / 2 : scale(value);\n}\n\nexport function minMax(data, key) {\n if (typeof key === 'string') {\n return extent(data, (d) => d[key]);\n }\n return extent(data, key);\n}\n\nexport function getNullData(data, defined, name) {\n return data.reduce((acc, d, i, data) => {\n if (defined(d)) {\n acc.push({\n [name]: null,\n });\n } else {\n const prev = data[i - 1];\n const next = data[i + 1];\n\n if (i === 0) {\n const defNext = data.find(defined);\n acc.push({\n ...d,\n [name]: defNext ? defNext[name] : null,\n });\n }\n\n // prev\n if (prev && defined(prev)) {\n acc.push(prev);\n }\n\n // next\n if (next && defined(next)) {\n acc.push(next);\n }\n\n if (data.length - 1 === i) {\n const defPrev = data\n .slice()\n .reverse()\n .find(defined);\n acc.push({\n ...d,\n [name]: defPrev ? defPrev[name] : null,\n });\n }\n }\n return acc;\n }, []);\n}\n\nexport function getIndexFromData(data, scale, key, value) {\n // detect line chart\n if ('invert' in scale && typeof scale.invert === 'function') {\n const bisect = bisector((d) => d[key]).center;\n return bisect(data, value);\n }\n // detect bar chart\n else if ('step' in scale && typeof scale.step !== 'undefined') {\n const index = data.findIndex((d) => d[key] === value);\n return index >= 0 ? index : null;\n } else {\n console.warn('[d3-chart/utils/getIndexFromData] encountered incompatible scale type');\n return null;\n }\n}\n"],"file":"utils.js"}
|
package/package.json
CHANGED
package/src/Area.js
CHANGED
|
@@ -3,7 +3,7 @@ import { area, curveLinear, line } from 'd3-shape';
|
|
|
3
3
|
import Dots from './Dots';
|
|
4
4
|
import { Component, sstyled } from '@semcore/core';
|
|
5
5
|
import createElement from './createElement';
|
|
6
|
-
import { definedData, scaleOfBandwidth, getNullData } from './utils';
|
|
6
|
+
import { definedData, scaleOfBandwidth, getNullData, definedNullData } from './utils';
|
|
7
7
|
import ClipPath from './ClipPath';
|
|
8
8
|
import uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';
|
|
9
9
|
|
|
@@ -48,9 +48,9 @@ class AreaRoot extends Component {
|
|
|
48
48
|
}
|
|
49
49
|
|
|
50
50
|
getNullProps() {
|
|
51
|
-
const { y, color, data, d3Line } = this.asProps;
|
|
51
|
+
const { x, y, color, data, d3Line } = this.asProps;
|
|
52
52
|
return {
|
|
53
|
-
data: getNullData(data,
|
|
53
|
+
data: getNullData(data, definedNullData(x, y), y),
|
|
54
54
|
d3: d3Line,
|
|
55
55
|
color,
|
|
56
56
|
};
|
package/src/Donut.js
CHANGED
|
@@ -95,12 +95,13 @@ class DonutRoot extends Component {
|
|
|
95
95
|
.filter(([key]) => keys.includes(key))
|
|
96
96
|
.sort(([a], [b]) => (keys.indexOf(a) > keys.indexOf(b) ? 1 : -1));
|
|
97
97
|
}
|
|
98
|
-
const minValue =
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
98
|
+
const minValue =
|
|
99
|
+
pieData.reduce((acc, cur) => {
|
|
100
|
+
if (cur[1]) acc += cur[1];
|
|
101
|
+
return acc;
|
|
102
|
+
}, 0) / 100;
|
|
102
103
|
pieData = pieData.map((d) => {
|
|
103
|
-
if (d[1] && d[1] < minValue) d[1] = minValue
|
|
104
|
+
if (d[1] && d[1] < minValue) d[1] = minValue;
|
|
104
105
|
return d;
|
|
105
106
|
});
|
|
106
107
|
return d3Pie(pieData);
|
|
@@ -173,8 +174,8 @@ class DonutRoot extends Component {
|
|
|
173
174
|
return (
|
|
174
175
|
<Element
|
|
175
176
|
id={this.id}
|
|
176
|
-
render=
|
|
177
|
-
childrenPosition=
|
|
177
|
+
render="g"
|
|
178
|
+
childrenPosition="inside"
|
|
178
179
|
transform={`translate(${width / 2},${height / k})`}
|
|
179
180
|
/>
|
|
180
181
|
);
|
|
@@ -182,12 +183,12 @@ class DonutRoot extends Component {
|
|
|
182
183
|
}
|
|
183
184
|
|
|
184
185
|
function Pie({ Element: SPie, styles, d3Arc, data, color = '#50aef4' }) {
|
|
185
|
-
return sstyled(styles)(<SPie render=
|
|
186
|
+
return sstyled(styles)(<SPie render="path" color={color} d={d3Arc(data)} />);
|
|
186
187
|
}
|
|
187
188
|
|
|
188
189
|
function Label({ Element: SLabel, styles, Children }) {
|
|
189
190
|
return sstyled(styles)(
|
|
190
|
-
<SLabel render=
|
|
191
|
+
<SLabel render="text" x="0" y="0">
|
|
191
192
|
<Children />
|
|
192
193
|
</SLabel>,
|
|
193
194
|
);
|
package/src/Line.js
CHANGED
|
@@ -2,7 +2,7 @@ import React from 'react';
|
|
|
2
2
|
import { curveLinear, line as d3Line } from 'd3-shape';
|
|
3
3
|
import { Component, sstyled } from '@semcore/core';
|
|
4
4
|
import createElement from './createElement';
|
|
5
|
-
import { definedData, scaleOfBandwidth, getNullData } from './utils';
|
|
5
|
+
import { definedData, definedNullData, scaleOfBandwidth, getNullData } from './utils';
|
|
6
6
|
import Dots from './Dots';
|
|
7
7
|
import ClipPath from './ClipPath';
|
|
8
8
|
import uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';
|
|
@@ -39,11 +39,11 @@ class LineRoot extends Component {
|
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
getNullProps() {
|
|
42
|
-
const { y, d3, color, data } = this.asProps;
|
|
42
|
+
const { x, y, d3, color, data } = this.asProps;
|
|
43
43
|
return {
|
|
44
44
|
d3,
|
|
45
45
|
// TODO: vertical
|
|
46
|
-
data: getNullData(data,
|
|
46
|
+
data: getNullData(data, definedNullData(x, y), y),
|
|
47
47
|
color,
|
|
48
48
|
};
|
|
49
49
|
}
|
package/src/utils.js
CHANGED
|
@@ -24,10 +24,16 @@ export function invert(scale, value) {
|
|
|
24
24
|
.range(range[0] <= range[1] ? domain : domain.slice().reverse())(value);
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
-
export function
|
|
27
|
+
export function definedNullData(x, y) {
|
|
28
28
|
return (p) => p[x] !== null && p[y] !== null;
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
+
export function definedData(x, y) {
|
|
32
|
+
return (p) => {
|
|
33
|
+
return p[x] !== null && p[x] !== undefined && (p[y] !== null && p[y] !== undefined);
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
|
|
31
37
|
export function scaleOfBandwidth(scale, value) {
|
|
32
38
|
return scale.bandwidth ? scale(value) + scale.bandwidth() / 2 : scale(value);
|
|
33
39
|
}
|