@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 CHANGED
@@ -2,6 +2,12 @@
2
2
 
3
3
  CHANGELOG.md standards are inspired by [keepachangelog.com](https://keepachangelog.com/en/1.0.0/).
4
4
 
5
+ ## [1.2.0] - 2021-09-24
6
+
7
+ ### Added
8
+
9
+ - The ability to pass "undefined" to skip some of the data.
10
+
5
11
  ## [1.1.0] - 2021-09-14
6
12
 
7
13
  ### Added
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, d3Line.defined(), y),
99
+ data: (0, _utils.getNullData)(data, (0, _utils.definedNullData)(x, y), y),
99
100
  d3: d3Line,
100
101
  color: color
101
102
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Area.js"],"names":["AreaRoot","asProps","x","y","color","data","d3Line","d3","defined","SArea","Element","SAreaLine","styles","hide","uid","size","duration","rect","setAttribute","Component","style","y0","$rootProps","curve","curveLinear","scale","xScale","yScale","yRange","range","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 } 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 { y, color, data, d3Line } = this.asProps;\n return {\n data: getNullData(data, d3Line.defined(), 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"}
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": 'path',
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": 'text',
353
- "x": '0',
354
- "y": '0'
352
+ "render": "text",
353
+ "x": "0",
354
+ "y": "0"
355
355
  }), /*#__PURE__*/_react["default"].createElement(Children, _ref2.cn("Children", {})));
356
356
  }
357
357
 
@@ -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":";;;;;;;;;;;;;;;;;;;;;;;;;AAEA;;AAFA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;AAIA,IAAMA,gBAAgB,GAAGC,MAAM,CAAC,kBAAD,CAA/B;;AAEA,SAASC,mBAAT,QAAwD;AAAA,MAAzBC,QAAyB,SAAzBA,QAAyB;AAAA,MAAfC,KAAe,SAAfA,KAAe;AAAA,MAARC,IAAQ,SAARA,IAAQ;AACtD,SAAO,UAASC,CAAT,EAAYC,GAAZ,EAAiB;AACtB,QAAMC,CAAC,GAAGH,IAAI,CAACE,GAAD,CAAd;AACA,QAAI,CAACC,CAAL,EAAQ,OAAO;AAAA,aAAM,EAAN;AAAA,KAAP;AACR,QAAMC,MAAM,GAAG,gCAAYN,QAAQ,GAAG,CAACO,IAAI,CAACC,EAAN,GAAW,CAAd,GAAkB,CAAtC,EAAyCH,CAAC,CAACI,UAA3C,CAAf;AACA,QAAMC,IAAI,GAAG,gCAAYV,QAAQ,GAAG,CAACO,IAAI,CAACC,EAAN,GAAW,CAAd,GAAkB,CAAtC,EAAyCH,CAAC,CAACM,QAA3C,CAAb;AACA,WAAO,UAASC,CAAT,EAAY;AACjBP,MAAAA,CAAC,CAACI,UAAF,GAAeH,MAAM,CAACM,CAAD,CAArB;AACAP,MAAAA,CAAC,CAACM,QAAF,GAAaD,IAAI,CAACE,CAAD,CAAjB;AACA,aAAOX,KAAK,CAACI,CAAD,CAAZ;AACD,KAJD;AAKD,GAVD;AAWD;;AAED,SAASQ,kBAAT,QAAuD;AAAA,MAAzBb,QAAyB,SAAzBA,QAAyB;AAAA,MAAfE,IAAe,SAAfA,IAAe;AAAA,MAATD,KAAS,SAATA,KAAS;AACrD,SAAO,UAASE,CAAT,EAAYC,GAAZ,EAAiB;AACtB,QAAMC,CAAC,GAAGH,IAAI,CAACE,GAAD,CAAd;;AACA,QAAI,KAAKU,QAAT,EAAmB;AACjB,UAAMC,CAAC,GAAG,gCAAY,KAAKD,QAAjB,EAA2BT,CAA3B,CAAV;AACA,WAAKS,QAAL,GAAgBC,CAAC,CAAC,CAAD,CAAjB;AACA,aAAO,UAASH,CAAT,EAAY;AACjB,eAAOX,KAAK,CAACc,CAAC,CAACH,CAAD,CAAF,CAAZ;AACD,OAFD;AAGD,KAND,MAMO;AACL,WAAKE,QAAL,GAAgBT,CAAhB;AACA,aAAON,mBAAmB,CAAC;AAAEC,QAAAA,QAAQ,EAARA,QAAF;AAAYE,QAAAA,IAAI,EAAJA,IAAZ;AAAkBD,QAAAA,KAAK,EAALA;AAAlB,OAAD,CAAnB,CAA+CE,CAA/C,EAAkDC,GAAlD,CAAP;AACD;AACF,GAZD;AAaD;;IAEKY,S;;;;;;;;;;;;;;;uGA+Ba,+BAAcC,QAAQ,CAACC,aAAT,CAAuB,KAAvB,CAAd,GAA8C,E;2GAiC1C,UAACC,OAAD,EAAUC,KAAV;AAAA,aAAoB,iBAAgC;AAAA,YAApBC,CAAoB,SAA7BC,OAA6B;AAAA,YAARC,CAAQ,SAAjBC,OAAiB;AAAA,YAC/DC,YAD+D,GAC9C,MAAKC,OADyC,CAC/DD,YAD+D;AAEvE,cAAKE,cAAL,CAAoBC,qBAApB,GAA4C,MAAKC,6BAAL,CAAmCR,CAAnC,EAAsCE,CAAtC,CAA5C;AACA,cAAKI,cAAL,CAAoBG,gBAASC,eAA7B,IAAgD,IAAhD;AACAN,QAAAA,YAAY,CAACO,IAAb,CAAkB,kBAAlB,EAAsCb,OAAtC,EAA+CC,KAA/C,EAAsD,MAAKO,cAA3D;AACD,OALoB;AAAA,K;;;;;;SAtCrB,eAAS;AAAA,0BACa,KAAKD,OADlB;AAAA,UACCO,GADD,iBACCA,GADD;AAAA,UACMC,EADN,iBACMA,EADN;AAEP,aAAOA,EAAE,IAAID,GAAb;AACD;;;WAID,yCAA4C;AAAA,UAAdZ,CAAc,uEAAV,CAAU;AAAA,UAAPE,CAAO,uEAAH,CAAG;AAC1C,aAAO;AAAA,eAAO;AAAEY,UAAAA,KAAK,EAAE,CAAT;AAAYC,UAAAA,MAAM,EAAE,CAApB;AAAuBC,UAAAA,GAAG,EAAEd,CAA5B;AAA+Be,UAAAA,KAAK,EAAEjB,CAAtC;AAAyCkB,UAAAA,MAAM,EAAEhB,CAAjD;AAAoDiB,UAAAA,IAAI,EAAEnB;AAA1D,SAAP;AAAA,OAAP;AACD;;;WAED,mBAAU;AAAA,2BACwB,KAAKK,OAD7B;AAAA,UACFe,QADE,kBACFA,QADE;AAAA,UACQC,IADR,kBACQA,IADR;AAAA,UACcC,KADd,kBACcA,KADd;AAER,UAAIC,OAAO,GAAGC,MAAM,CAACC,OAAP,CAAeJ,IAAf,CAAd;;AAEA,UAAIC,KAAK,CAAC9C,gBAAD,CAAT,EAA6B;AAC3B,YAAMkD,IAAI,GAAGC,kBAAMP,QAAN,CAAeQ,OAAf,CAAuB,mCAAkBR,QAAlB,CAAvB,EAAoDS,MAApD,CAA2D,UAACC,GAAD,EAAMC,KAAN,EAAgB;AACtF,cAAI,gCAAMC,cAAN,CAAqBD,KAArB,KAA+BA,KAAK,CAACE,IAAN,KAAeC,KAAK,CAACC,GAAxD,EAA6D;AAC3DL,YAAAA,GAAG,CAACM,IAAJ,CAASL,KAAK,CAAChC,KAAN,CAAYsC,OAArB;AACD;;AACD,iBAAOP,GAAP;AACD,SALY,EAKV,EALU,CAAb;;AAMAP,QAAAA,OAAO,GAAGC,MAAM,CAACC,OAAP,CAAeJ,IAAf,EACPiB,MADO,CACA;AAAA;AAAA,cAAEC,GAAF;;AAAA,iBAAWb,IAAI,CAACc,QAAL,CAAcD,GAAd,CAAX;AAAA,SADA,EAEPE,IAFO,CAEF;AAAA;AAAA,cAAEC,CAAF;;AAAA;AAAA,cAAOC,CAAP;;AAAA,iBAAejB,IAAI,CAACkB,OAAL,CAAaF,CAAb,IAAkBhB,IAAI,CAACkB,OAAL,CAAaD,CAAb,CAAlB,GAAoC,CAApC,GAAwC,CAAC,CAAxD;AAAA,SAFE,CAAV;AAGD;;AACD,UAAME,QAAQ,GACZtB,OAAO,CAACM,MAAR,CAAe,UAACC,GAAD,EAAMgB,GAAN,EAAc;AAC3B,YAAIA,GAAG,CAAC,CAAD,CAAP,EAAYhB,GAAG,IAAIgB,GAAG,CAAC,CAAD,CAAV;AACZ,eAAOhB,GAAP;AACD,OAHD,EAGG,CAHH,IAGQ,GAJV;AAKAP,MAAAA,OAAO,GAAGA,OAAO,CAACwB,GAAR,CAAY,UAAC/D,CAAD,EAAO;AAC3B,YAAIA,CAAC,CAAC,CAAD,CAAD,IAAQA,CAAC,CAAC,CAAD,CAAD,GAAO6D,QAAnB,EAA6B7D,CAAC,CAAC,CAAD,CAAD,GAAO6D,QAAP;AAC7B,eAAO7D,CAAP;AACD,OAHS,CAAV;AAIA,aAAOsC,KAAK,CAACC,OAAD,CAAZ;AACD;;;WASD,qBAAYxB,KAAZ,EAAmB;AAAA,UACTnB,KADS,GACC,KAAKyB,OADN,CACTzB,KADS;AAEjB,aAAO;AACLyC,QAAAA,IAAI,EAAE,KAAKxC,IAAL,CAAUmE,IAAV,CAAe,UAACC,GAAD;AAAA,iBAASA,GAAG,CAAC5B,IAAJ,CAAS,CAAT,MAAgBtB,KAAK,CAACsC,OAA/B;AAAA,SAAf,CADD;AAELzD,QAAAA,KAAK,EAALA,KAFK;AAGLsE,QAAAA,WAAW,EAAE,KAAKC,kBAAL,CAAwB,IAAxB,EAA8BpD,KAA9B,CAHR;AAILqD,QAAAA,YAAY,EAAE,KAAKD,kBAAL,CAAwB,KAAxB,EAA+BpD,KAA/B;AAJT,OAAP;AAMD;;;WAED,6BAAoB;AAAA,UACVnB,KADU,GACA,KAAKyB,OADL,CACVzB,KADU;AAElB,aAAO;AACLyC,QAAAA,IAAI,EAAE;AACJ/B,UAAAA,QAAQ,EAAEJ,IAAI,CAACC,EAAL,GAAU,CADhB;AAEJC,UAAAA,UAAU,EAAE;AAFR,SADD;AAKLR,QAAAA,KAAK,EAALA,KALK;AAMLyE,QAAAA,KAAK,EAAE;AANF,OAAP;AAQD;;;WAED,4BAAmBC,SAAnB,EAA8B;AAAA,2BACgB,KAAKjD,OADrB;AAAA,UACpBgB,IADoB,kBACpBA,IADoB;AAAA,UACdkC,QADc,kBACdA,QADc;AAAA,UACJ3E,KADI,kBACJA,KADI;AAAA,UACGD,QADH,kBACGA,QADH;AAE5B,UAAME,IAAI,GAAG,KAAKA,IAAlB;;AACA,UAAIyE,SAAS,CAACE,UAAV,CAAqBnC,IAArB,KAA8BA,IAA9B,IAAsCkC,QAAQ,GAAG,CAArD,EAAwD;AACtD,wCACGE,SADH,GAEGC,SAFH,YAEiB,KAAK7C,EAFtB,oCAGG8C,UAHH,GAIGJ,QAJH,CAIYA,QAJZ,EAKGK,SALH,CAKa,GALb,EAKkBpE,kBAAkB,CAAC;AAAEZ,UAAAA,KAAK,EAALA,KAAF;AAASC,UAAAA,IAAI,EAAJA,IAAT;AAAeF,UAAAA,QAAQ,EAARA;AAAf,SAAD,CALpC;AAMD;AACF;;;WAED,6BAAoB;AAAA,2BACoB,KAAK0B,OADzB;AAAA,UACVkD,QADU,kBACVA,QADU;AAAA,UACA3E,KADA,kBACAA,KADA;AAAA,UACOD,QADP,kBACOA,QADP;AAElB,UAAME,IAAI,GAAG,KAAKA,IAAlB;;AACA,UAAI0E,QAAQ,GAAG,CAAf,EAAkB;AAChB,wCACGE,SADH,GAEGC,SAFH,YAEiB,KAAK7C,EAFtB,oCAGGgD,IAHH,CAGQ,UAAS/E,CAAT,EAAYC,GAAZ,EAAiB;AACrB,eAAKU,QAAL,GAAgBZ,IAAI,CAACE,GAAD,CAApB;AACD,SALH,EAMG4E,UANH,GAOGJ,QAPH,CAOYA,QAPZ,EAQGK,SARH,CAQa,GARb,EAQkBlF,mBAAmB,CAAC;AAAEC,UAAAA,QAAQ,EAARA,QAAF;AAAYC,UAAAA,KAAK,EAALA,KAAZ;AAAmBC,UAAAA,IAAI,EAAJA;AAAnB,SAAD,CARrC;AASD;AACF;;;WAED,kBAAS;AAAA,2BACoB,KAAKwB,OADzB;AAAA,UACC1B,QADD,kBACCA,QADD;AAAA,UACWmF,IADX,kBACWA,IADX;;AAAA,kDAEiBA,IAFjB;AAAA,UAEAhD,KAFA;AAAA,UAEOC,MAFP;;AAGP,UAAMgD,OAAO,GAAG,KAAKA,OAArB;AACA,UAAMC,CAAC,GAAGrF,QAAQ,GAAG,CAAH,GAAO,CAAzB;AACA,WAAKE,IAAL,GAAY,KAAKoF,OAAL,EAAZ;AACA,0BACE,gCAAC,OAAD;AACE,QAAA,EAAE,EAAE,KAAKpD,EADX;AAEE,QAAA,MAAM,EAAC,GAFT;AAGE,QAAA,gBAAgB,EAAC,QAHnB;AAIE,QAAA,SAAS,sBAAeC,KAAK,GAAG,CAAvB,cAA4BC,MAAM,GAAGiD,CAArC;AAJX,QADF;AAQD;;;EAxIqBE,e;;iCAAlBvE,S,iBACiB,O;iCADjBA,S,WAEWwE,K;iCAFXxE,S,aAGa,CAAC,2BAAD,C;iCAHbA,S,kBAKkB,kBAAiE;AAAA,kCAA9DyE,WAA8D;AAAA,MAA9DA,WAA8D,mCAAhD,CAAgD;AAAA,+BAA7CzF,QAA6C;AAAA,MAA7CA,QAA6C,gCAAlC,KAAkC;AAAA,MAAbmF,IAAa,UAA3BN,UAA2B,CAAbM,IAAa;;AAAA,+CAC7DA,IAD6D;AAAA,MAC9EhD,KAD8E;AAAA,MACvEC,MADuE;;AAErF,MAAMsD,QAAQ,GAAG1F,QAAQ,GAAGO,IAAI,CAACoF,GAAR,GAAcpF,IAAI,CAACqF,GAA5C;AACA,MAAM3F,KAAK,GAAG,oBACX4F,WADW,CACCH,QAAQ,CAACvD,KAAD,EAAQC,MAAR,CAAR,GAA0B,CAD3B,EAEXqD,WAFW,CAECA,WAFD,CAAd;AAGA,MAAI9C,KAAK,GAAG,oBACTmB,IADS,CACJ,IADI,EAETgC,KAFS,CAEH;AAAA;AAAA,QAAIA,KAAJ;;AAAA,WAAeA,KAAf;AAAA,GAFG,CAAZ;AAGAnD,EAAAA,KAAK,CAAC9C,gBAAD,CAAL,GAA0B,IAA1B;;AAEA,MAAIG,QAAJ,EAAc;AACZ2C,IAAAA,KAAK,GAAGA,KAAK,CAAClC,UAAN,CAAiB,CAACF,IAAI,CAACC,EAAN,GAAW,CAA5B,EAA+BG,QAA/B,CAAwCJ,IAAI,CAACC,EAAL,GAAU,CAAlD,CAAR;AACD;;AACD,SAAO;AACLmC,IAAAA,KAAK,EAALA,KADK;AAEL1C,IAAAA,KAAK,EAALA,KAFK;AAGL2E,IAAAA,QAAQ,EAAE;AAHL,GAAP;AAKD,C;;AAmHH,SAASpB,GAAT,SAAwE;AAAA;;AAAA,MAAhDuC,IAAgD,UAAzDX,OAAyD;AAAA,MAA1CY,MAA0C,UAA1CA,MAA0C;AAAA,MAAlC/F,KAAkC,UAAlCA,KAAkC;AAAA,MAA3ByC,IAA2B,UAA3BA,IAA2B;AAAA,4BAArBgC,KAAqB;AAAA,MAArBA,KAAqB,6BAAb,SAAa;AACtE,gBAAO,mBAAQsB,MAAR,CAAP,eAAuB,gCAAC,IAAD;AAAA,cAAa,MAAb;AAAA,aAA2BtB,KAA3B;AAAA,SAAqCzE,KAAK,CAACyC,IAAD;AAA1C,KAAvB;AACD;;AAED,SAASuD,KAAT,SAAsD;AAAA;;AAAA,MAA5BC,MAA4B,UAArCd,OAAqC;AAAA,MAApBY,MAAoB,UAApBA,MAAoB;AAAA,MAAZvD,QAAY,UAAZA,QAAY;AACpD,iBAAO,mBAAQuD,MAAR,CAAP,eACE,gCAAC,MAAD;AAAA,cAAe,MAAf;AAAA,SAAwB,GAAxB;AAAA,SAA8B;AAA9B,mBACE,gCAAC,QAAD,2BADF,CADF;AAKD;;AAED,IAAMzC,KAAK,GAAG,+BAAcvC,SAAd,EAAyB;AAAEwC,EAAAA,GAAG,EAAHA,GAAF;AAAOyC,EAAAA,KAAK,EAALA,KAAP;AAAcE,EAAAA,SAAS,EAAE3C;AAAzB,CAAzB,CAAd;eAEeD,K","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"}
@@ -42,14 +42,14 @@ var _ref = (
42
42
  /*__reshadow_css_start__*/
43
43
  (0, _core.__css__)(
44
44
  /*__inner_css_start__*/
45
- ".___SBar_1vcm1_gg_{fill:var(--color);transition-property:height,width,y;transition-duration:var(--duration);transition-timing-function:ease-in-out}.___SBar_1vcm1_gg_.__hide_1vcm1_gg_{display:none}.___SBackground_1vcm1_gg_{fill:#e4ecf1}"
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
- , "grmzed_gg_")
47
+ , "1om7b1x_gg_")
48
48
  /*__reshadow_css_end__*/
49
49
  , {
50
- "__SBar": "___SBar_1vcm1_gg_",
51
- "_hide": "__hide_1vcm1_gg_",
52
- "__SBackground": "___SBackground_1vcm1_gg_"
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, d3.defined(), y),
100
+ data: (0, _utils.getNullData)(data, (0, _utils.definedNullData)(x, y), y),
100
101
  color: color
101
102
  };
102
103
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Line.js"],"names":["LineRoot","asProps","x","y","d3","color","duration","delay","data","defined","SLine","Element","styles","hide","uid","size","rect","setAttribute","Component","style","$rootProps","curve","curveLinear","scale","xScale","yScale","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, 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 { y, d3, color, data } = this.asProps;\n return {\n d3,\n // TODO: vertical\n data: getNullData(data, d3.defined(), 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"}
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"}
@@ -48,14 +48,14 @@ var _ref = (
48
48
  /*__reshadow_css_start__*/
49
49
  (0, _core.__css__)(
50
50
  /*__inner_css_start__*/
51
- ".___SBar_siiq8_gg_{fill:var(--color);transition-property:height,width,y;transition-duration:var(--duration);transition-timing-function:ease-in-out}.___SBar_siiq8_gg_.__hide_siiq8_gg_{display:none}.___SBackground_siiq8_gg_{fill:#e4ecf1}"
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
- , "1vabpit_gg_")
53
+ , "y9x1rp_gg_")
54
54
  /*__reshadow_css_end__*/
55
55
  , {
56
- "__SBar": "___SBar_siiq8_gg_",
57
- "_hide": "__hide_siiq8_gg_",
58
- "__SBackground": "___SBackground_siiq8_gg_"
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
 
@@ -46,15 +46,15 @@ var _ref = (
46
46
  /*__reshadow_css_start__*/
47
47
  (0, _core.__css__)(
48
48
  /*__inner_css_start__*/
49
- ".___SArea_41clu_gg_{fill:var(--color);fill-opacity:.4}.___SAreaLine_41clu_gg_{stroke:var(--color);stroke-width:3;fill:transparent}.___SArea_41clu_gg_,.___SAreaLine_41clu_gg_{transition-property:d;transition-duration:var(--duration);transition-timing-function:ease-in-out}.___SNull_41clu_gg_{fill:transparent;stroke:#bdc4c6;stroke-dasharray:4}.___SNull_41clu_gg_.__hide_41clu_gg_{display:none}"
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
- , "1d3xd1g_gg_")
51
+ , "1etf1m1_gg_")
52
52
  /*__reshadow_css_end__*/
53
53
  , {
54
- "__SArea": "___SArea_41clu_gg_",
55
- "__SAreaLine": "___SAreaLine_41clu_gg_",
56
- "__SNull": "___SNull_41clu_gg_",
57
- "_hide": "__hide_41clu_gg_"
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 definedData(x, y) {
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
  }
@@ -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","definedData","x","y","p","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 definedData(x, y) {\n return (p) => p[x] !== null && p[y] !== null;\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"}
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, d3Line.defined(), y),
79
+ data: getNullData(data, definedNullData(x, y), y),
79
80
  d3: d3Line,
80
81
  color: color
81
82
  };
@@ -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","defined","SArea","Element","SAreaLine","styles","hide","uid","size","duration","rect","setAttribute","style","y0","$rootProps","curve","scale","xScale","yScale","yRange","range","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 } 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 { y, color, data, d3Line } = this.asProps;\n return {\n data: getNullData(data, d3Line.defined(), 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"}
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": 'path',
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": 'text',
335
- "x": '0',
336
- "y": '0'
334
+ "render": "text",
335
+ "x": "0",
336
+ "y": "0"
337
337
  }), /*#__PURE__*/React.createElement(Children, _ref2.cn("Children", {})));
338
338
  }
339
339
 
@@ -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"}
@@ -22,14 +22,14 @@ var _ref = (
22
22
  /*__reshadow_css_start__*/
23
23
  __css__(
24
24
  /*__inner_css_start__*/
25
- ".___SBar_1vcm1_gg_{fill:var(--color);transition-property:height,width,y;transition-duration:var(--duration);transition-timing-function:ease-in-out}.___SBar_1vcm1_gg_.__hide_1vcm1_gg_{display:none}.___SBackground_1vcm1_gg_{fill:#e4ecf1}"
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
- , "grmzed_gg_")
27
+ , "1om7b1x_gg_")
28
28
  /*__reshadow_css_end__*/
29
29
  , {
30
- "__SBar": "___SBar_1vcm1_gg_",
31
- "_hide": "__hide_1vcm1_gg_",
32
- "__SBackground": "___SBackground_1vcm1_gg_"
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, d3.defined(), y),
80
+ data: getNullData(data, definedNullData(x, y), y),
80
81
  color: color
81
82
  };
82
83
  }
@@ -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","defined","SLine","Element","styles","hide","uid","size","rect","setAttribute","style","$rootProps","curve","scale","xScale","yScale","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, 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 { y, d3, color, data } = this.asProps;\n return {\n d3,\n // TODO: vertical\n data: getNullData(data, d3.defined(), 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"}
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"}
@@ -27,14 +27,14 @@ var _ref = (
27
27
  /*__reshadow_css_start__*/
28
28
  __css__(
29
29
  /*__inner_css_start__*/
30
- ".___SBar_siiq8_gg_{fill:var(--color);transition-property:height,width,y;transition-duration:var(--duration);transition-timing-function:ease-in-out}.___SBar_siiq8_gg_.__hide_siiq8_gg_{display:none}.___SBackground_siiq8_gg_{fill:#e4ecf1}"
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
- , "1vabpit_gg_")
32
+ , "y9x1rp_gg_")
33
33
  /*__reshadow_css_end__*/
34
34
  , {
35
- "__SBar": "___SBar_siiq8_gg_",
36
- "_hide": "__hide_siiq8_gg_",
37
- "__SBackground": "___SBackground_siiq8_gg_"
35
+ "__SBar": "___SBar_1gmrz_gg_",
36
+ "_hide": "__hide_1gmrz_gg_",
37
+ "__SBackground": "___SBackground_1gmrz_gg_"
38
38
  }),
39
39
  style = _extends({}, _ref);
40
40
 
@@ -26,15 +26,15 @@ var _ref = (
26
26
  /*__reshadow_css_start__*/
27
27
  __css__(
28
28
  /*__inner_css_start__*/
29
- ".___SArea_41clu_gg_{fill:var(--color);fill-opacity:.4}.___SAreaLine_41clu_gg_{stroke:var(--color);stroke-width:3;fill:transparent}.___SArea_41clu_gg_,.___SAreaLine_41clu_gg_{transition-property:d;transition-duration:var(--duration);transition-timing-function:ease-in-out}.___SNull_41clu_gg_{fill:transparent;stroke:#bdc4c6;stroke-dasharray:4}.___SNull_41clu_gg_.__hide_41clu_gg_{display:none}"
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
- , "1d3xd1g_gg_")
31
+ , "1etf1m1_gg_")
32
32
  /*__reshadow_css_end__*/
33
33
  , {
34
- "__SArea": "___SArea_41clu_gg_",
35
- "__SAreaLine": "___SAreaLine_41clu_gg_",
36
- "__SNull": "___SNull_41clu_gg_",
37
- "_hide": "__hide_41clu_gg_"
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 definedData(x, y) {
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
  }
@@ -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","definedData","x","y","p","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 definedData(x, y) {\n return (p) => p[x] !== null && p[y] !== null;\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"}
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
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@semcore/d3-chart",
3
3
  "description": "SEMRush D3 Chart Component",
4
- "version": "1.1.0",
4
+ "version": "1.2.0",
5
5
  "main": "lib/cjs/index.js",
6
6
  "module": "lib/es6/index.js",
7
7
  "typings": "lib/types/index.d.ts",
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, d3Line.defined(), y),
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 = pieData.reduce((acc, cur) => {
99
- if (cur[1]) acc += cur[1];
100
- return acc;
101
- }, 0) / 100;
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='g'
177
- childrenPosition='inside'
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='path' color={color} d={d3Arc(data)} />);
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='text' x='0' y='0'>
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, d3.defined(), y),
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 definedData(x, y) {
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
  }