@semcore/d3-chart 1.6.5 → 1.6.8

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.
Files changed (69) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/lib/cjs/Area.js.map +1 -1
  3. package/lib/cjs/Axis.js.map +1 -1
  4. package/lib/cjs/Bar.js.map +1 -1
  5. package/lib/cjs/Bubble.js +8 -7
  6. package/lib/cjs/Bubble.js.map +1 -1
  7. package/lib/cjs/ClipPath.js.map +1 -1
  8. package/lib/cjs/Donut.js.map +1 -1
  9. package/lib/cjs/Dots.js.map +1 -1
  10. package/lib/cjs/GroupBar.js +6 -6
  11. package/lib/cjs/GroupBar.js.map +1 -1
  12. package/lib/cjs/HorizontalBar.js.map +1 -1
  13. package/lib/cjs/Hover.js.map +1 -1
  14. package/lib/cjs/Line.js.map +1 -1
  15. package/lib/cjs/Plot.js.map +1 -1
  16. package/lib/cjs/ResponsiveContainer.js.map +1 -1
  17. package/lib/cjs/ScatterPlot.js +8 -7
  18. package/lib/cjs/ScatterPlot.js.map +1 -1
  19. package/lib/cjs/StackBar.js +6 -6
  20. package/lib/cjs/StackBar.js.map +1 -1
  21. package/lib/cjs/StackedArea.js +7 -7
  22. package/lib/cjs/StackedArea.js.map +1 -1
  23. package/lib/cjs/Tooltip.js.map +1 -1
  24. package/lib/cjs/Venn.js.map +1 -1
  25. package/lib/cjs/createElement.js.map +1 -1
  26. package/lib/es6/Area.js.map +1 -1
  27. package/lib/es6/Axis.js.map +1 -1
  28. package/lib/es6/Bar.js.map +1 -1
  29. package/lib/es6/Bubble.js +8 -7
  30. package/lib/es6/Bubble.js.map +1 -1
  31. package/lib/es6/ClipPath.js.map +1 -1
  32. package/lib/es6/Donut.js.map +1 -1
  33. package/lib/es6/Dots.js.map +1 -1
  34. package/lib/es6/GroupBar.js +6 -6
  35. package/lib/es6/GroupBar.js.map +1 -1
  36. package/lib/es6/HorizontalBar.js.map +1 -1
  37. package/lib/es6/Hover.js.map +1 -1
  38. package/lib/es6/Line.js.map +1 -1
  39. package/lib/es6/Plot.js.map +1 -1
  40. package/lib/es6/ResponsiveContainer.js.map +1 -1
  41. package/lib/es6/ScatterPlot.js +8 -7
  42. package/lib/es6/ScatterPlot.js.map +1 -1
  43. package/lib/es6/StackBar.js +6 -6
  44. package/lib/es6/StackBar.js.map +1 -1
  45. package/lib/es6/StackedArea.js +7 -7
  46. package/lib/es6/StackedArea.js.map +1 -1
  47. package/lib/es6/Tooltip.js.map +1 -1
  48. package/lib/es6/Venn.js.map +1 -1
  49. package/lib/es6/createElement.js.map +1 -1
  50. package/package.json +1 -1
  51. package/src/{Area.js → Area.jsx} +0 -0
  52. package/src/{Axis.js → Axis.jsx} +0 -0
  53. package/src/{Bar.js → Bar.jsx} +0 -0
  54. package/src/{Bubble.js → Bubble.jsx} +15 -17
  55. package/src/{ClipPath.js → ClipPath.jsx} +0 -0
  56. package/src/{Donut.js → Donut.jsx} +8 -6
  57. package/src/{Dots.js → Dots.jsx} +0 -0
  58. package/src/{GroupBar.js → GroupBar.jsx} +0 -0
  59. package/src/{HorizontalBar.js → HorizontalBar.jsx} +0 -0
  60. package/src/{Hover.js → Hover.jsx} +0 -0
  61. package/src/{Line.js → Line.jsx} +0 -0
  62. package/src/{Plot.js → Plot.jsx} +0 -0
  63. package/src/{ResponsiveContainer.js → ResponsiveContainer.jsx} +0 -0
  64. package/src/{ScatterPlot.js → ScatterPlot.jsx} +16 -29
  65. package/src/{StackBar.js → StackBar.jsx} +0 -0
  66. package/src/{StackedArea.js → StackedArea.jsx} +0 -0
  67. package/src/{Tooltip.js → Tooltip.jsx} +0 -0
  68. package/src/{Venn.js → Venn.jsx} +8 -6
  69. /package/src/{createElement.js → createElement.jsx} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Hover.js"],"names":["Hover","xIndex","yIndex","document","createElement","e","asProps","eventEmitter","data","scale","x","y","rootRef","clientX","clientY","xScale","yScale","current","pX","pY","vX","vY","undefined","state","virtualElement","getBoundingClientRect","generateGetBoundingClientRect","CONSTANT","VIRTUAL_ELEMENT","setState","emit","width","height","top","right","bottom","left","unsubscribeMouseMoveRoot","subscribe","persist","handlerMouseMoveRoot","unsubscribeMouseLeaveRoot","handlerMouseLeaveRoot","Component","style","HoverLineRoot","SHoverLine","Element","styles","xRange","range","yRange","x1","y1","HoverRectRoot","SHoverRect","step","paddingInner","HoverLine","HoverRect"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AACA;;AADA;;AAEA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;IAIMA,K;;;;;;;;;;;;;;;8FAGI;AACNC,MAAAA,MAAM,EAAE,IADF;AAENC,MAAAA,MAAM,EAAE;AAFF,K;uGAKS,+BAAcC,QAAQ,CAACC,aAAT,CAAuB,KAAvB,CAAd,GAA8C,E;6GAMxC,4BAAQ,UAACC,CAAD,EAAO;AACpC,0BAAqD,MAAKC,OAA1D;AAAA,UAAQC,YAAR,iBAAQA,YAAR;AAAA,UAAsBC,IAAtB,iBAAsBA,IAAtB;AAAA,UAA4BC,KAA5B,iBAA4BA,KAA5B;AAAA,UAAmCC,CAAnC,iBAAmCA,CAAnC;AAAA,UAAsCC,CAAtC,iBAAsCA,CAAtC;AAAA,UAAyCC,OAAzC,iBAAyCA,OAAzC;AACA,UAAQC,OAAR,GAA6BR,CAA7B,CAAQQ,OAAR;AAAA,UAAiBC,OAAjB,GAA6BT,CAA7B,CAAiBS,OAAjB;;AACA,mDAAyBL,KAAzB;AAAA,UAAOM,MAAP;AAAA,UAAeC,MAAf;;AACA,0BAAiB,yBAAaX,CAAb,EAAgBO,OAAO,CAACK,OAAxB,CAAjB;AAAA;AAAA,UAAOC,EAAP;AAAA,UAAWC,EAAX;;AACA,UAAMC,EAAE,GAAG,mBAAOL,MAAP,EAAeG,EAAf,CAAX;AACA,UAAMG,EAAE,GAAG,mBAAOL,MAAP,EAAeG,EAAf,CAAX;AACA,UAAMlB,MAAM,GACVS,CAAC,KAAKY,SAAN,IAAmBF,EAAE,KAAKE,SAA1B,GAAsC,IAAtC,GAA6C,6BAAiBd,IAAjB,EAAuBO,MAAvB,EAA+BL,CAA/B,EAAkCU,EAAlC,CAD/C;AAEA,UAAMlB,MAAM,GACVS,CAAC,KAAKW,SAAN,IAAmBD,EAAE,KAAKC,SAA1B,GAAsC,IAAtC,GAA6C,6BAAiBd,IAAjB,EAAuBQ,MAAvB,EAA+BL,CAA/B,EAAkCU,EAAlC,CAD/C;AAEA,UAAME,KAAK,GAAG;AAAEtB,QAAAA,MAAM,EAANA,MAAF;AAAUC,QAAAA,MAAM,EAANA;AAAV,OAAd;AACA,YAAKsB,cAAL,CAAoBC,qBAApB,GAA4C,MAAKC,6BAAL,CAC1Cb,OAD0C,EAE1CC,OAF0C,CAA5C;AAIA,YAAKU,cAAL,CAAoBG,gBAASC,eAA7B,IAAgD,IAAhD;;AAEA,YAAKC,QAAL,CAAcN,KAAd,EAAqB,YAAM;AACzBhB,QAAAA,YAAY,CAACuB,IAAb,CACE,kBADF,EAEE7B,MAAM,KAAK,IAAX,IAAmBC,MAAM,KAAK,IAFhC,EAGEqB,KAHF,EAIE,MAAKC,cAJP;AAMD,OAPD;AAQD,KA1BsB,C;8GA4BC,4BAAQ,YAAM;AACpC,UAAMD,KAAK,GAAG;AACZtB,QAAAA,MAAM,EAAE,IADI;AAEZC,QAAAA,MAAM,EAAE;AAFI,OAAd;;AAIA,YAAK2B,QAAL,CAAcN,KAAd,EAAqB,YAAM;AACzB,cAAKjB,OAAL,CAAaC,YAAb,CAA0BuB,IAA1B,CAA+B,kBAA/B,EAAmD,KAAnD,EAA0DP,KAA1D;AACD,OAFD;AAGD,KARuB,C;;;;;;WAhCxB,yCAA4C;AAAA,UAAdb,CAAc,uEAAV,CAAU;AAAA,UAAPC,CAAO,uEAAH,CAAG;AAC1C,aAAO;AAAA,eAAO;AAAEoB,UAAAA,KAAK,EAAE,CAAT;AAAYC,UAAAA,MAAM,EAAE,CAApB;AAAuBC,UAAAA,GAAG,EAAEtB,CAA5B;AAA+BuB,UAAAA,KAAK,EAAExB,CAAtC;AAAyCyB,UAAAA,MAAM,EAAExB,CAAjD;AAAoDyB,UAAAA,IAAI,EAAE1B;AAA1D,SAAP;AAAA,OAAP;AACD;;;WAwCD,6BAAoB;AAAA;;AAClB,UAAQH,YAAR,GAAyB,KAAKD,OAA9B,CAAQC,YAAR;AACA,WAAK8B,wBAAL,GAAgC9B,YAAY,CAAC+B,SAAb,CAAuB,kBAAvB,EAA2C,UAACjC,CAAD,EAAO;AAChFA,QAAAA,CAAC,CAACkC,OAAF;;AACA,QAAA,MAAI,CAACC,oBAAL,CAA0BnC,CAA1B;AACD,OAH+B,CAAhC;AAIA,WAAKoC,yBAAL,GAAiClC,YAAY,CAAC+B,SAAb,CAC/B,mBAD+B,EAE/B,KAAKI,qBAF0B,CAAjC;AAID;;;WAED,gCAAuB;AACrB,UAAI,KAAKL,wBAAT,EAAmC;AACjC,aAAKA,wBAAL;AACD;;AACD,UAAI,KAAKI,yBAAT,EAAoC;AAClC,aAAKA,yBAAL;AACD;AACF;;;EAvEiBE,e;;iCAAd3C,K,WACW4C,K;;IAyEXC,a;;;;;;;;;;;;WAGJ,kBAAS;AAAA;;AACP,UAAMC,UAAU,GAAG,KAAKC,OAAxB;AACA,2BAAsC,KAAKzC,OAA3C;AAAA,UAAQ0C,MAAR,kBAAQA,MAAR;AAAA,UAAgBtC,CAAhB,kBAAgBA,CAAhB;AAAA,UAAmBC,CAAnB,kBAAmBA,CAAnB;AAAA,UAAsBH,IAAtB,kBAAsBA,IAAtB;AAAA,UAA4BC,KAA5B,kBAA4BA,KAA5B;AACA,wBAA2B,KAAKc,KAAhC;AAAA,UAAQtB,MAAR,eAAQA,MAAR;AAAA,UAAgBC,MAAhB,eAAgBA,MAAhB;;AACA,oDAAyBO,KAAzB;AAAA,UAAOM,MAAP;AAAA,UAAeC,MAAf;;AAEA,UAAMiC,MAAM,GAAGlC,MAAM,CAACmC,KAAP,EAAf;AACA,UAAMC,MAAM,GAAGnC,MAAM,CAACkC,KAAP,EAAf;AACA,UAAME,EAAE,GAAGnD,MAAM,KAAK,IAAX,GAAkB,6BAAiBc,MAAjB,EAAyBP,IAAI,CAACP,MAAD,CAAJ,CAAaS,CAAb,CAAzB,CAAlB,GAA8DY,SAAzE;AACA,UAAM+B,EAAE,GAAGnD,MAAM,KAAK,IAAX,GAAkB,6BAAiBc,MAAjB,EAAyBR,IAAI,CAACN,MAAD,CAAJ,CAAaS,CAAb,CAAzB,CAAlB,GAA8DW,SAAzE;AAEA,oBAAO,mBAAQ0B,MAAR,CAAP,eACE,kEACG/C,MAAM,KAAK,IAAX,gBACC,gCAAC,UAAD;AAAA,kBAAmB,MAAnB;AAAA,iBAAiCA,MAAjC;AAAA,cAA6CmD,EAA7C;AAAA,cAAqDD,MAAM,CAAC,CAAD,CAA3D;AAAA,cAAoEC,EAApE;AAAA,cAA4ED,MAAM,CAAC,CAAD;AAAlF,SADD,GAEG,IAHN,EAIGjD,MAAM,KAAK,IAAX,gBACC,gCAAC,UAAD;AAAA,kBAAmB,MAAnB;AAAA,iBAAiCA,MAAjC;AAAA,cAA6C+C,MAAM,CAAC,CAAD,CAAnD;AAAA,cAA4DI,EAA5D;AAAA,cAAoEJ,MAAM,CAAC,CAAD,CAA1E;AAAA,cAAmFI;AAAnF,SADD,GAEG,IANN,CADF;AAUD;;;EAxByBrD,K;;iCAAtB6C,a,iBACiB,W;;IA0BjBS,a;;;;;;;;;;;;WAGJ,kBAAS;AAAA;;AACP,UAAMC,UAAU,GAAG,KAAKR,OAAxB;AACA,2BAAsC,KAAKzC,OAA3C;AAAA,UAAQ0C,MAAR,kBAAQA,MAAR;AAAA,UAAgBtC,CAAhB,kBAAgBA,CAAhB;AAAA,UAAmBC,CAAnB,kBAAmBA,CAAnB;AAAA,UAAsBH,IAAtB,kBAAsBA,IAAtB;AAAA,UAA4BC,KAA5B,kBAA4BA,KAA5B;AACA,yBAA2B,KAAKc,KAAhC;AAAA,UAAQtB,MAAR,gBAAQA,MAAR;AAAA,UAAgBC,MAAhB,gBAAgBA,MAAhB;;AACA,oDAAyBO,KAAzB;AAAA,UAAOM,MAAP;AAAA,UAAeC,MAAf;;AAEA,UAAMiC,MAAM,GAAGlC,MAAM,CAACmC,KAAP,EAAf;AACA,UAAMC,MAAM,GAAGnC,MAAM,CAACkC,KAAP,EAAf;AAEA,qBAAO,mBAAQF,MAAR,CAAP,eACE,kEACG/C,MAAM,KAAK,IAAX,gBACC,gCAAC,UAAD;AAAA,kBACS,MADT;AAAA,iBAESA,MAFT;AAAA,iBAGSc,MAAM,CAACyC,IAAP,KAAgBzC,MAAM,CAAC0C,YAAP,KAAwB,CAHjD;AAAA,kBAIUN,MAAM,CAAC,CAAD,CAAN,GAAYA,MAAM,CAAC,CAAD,CAJ5B;AAAA,aAKKpC,MAAM,CAACP,IAAI,CAACP,MAAD,CAAJ,CAAaS,CAAb,CAAD,CAAN,GAA2BK,MAAM,CAACyC,IAAP,KAAgBzC,MAAM,CAAC0C,YAAP,EAAjB,GAA0C,CALzE;AAAA,aAMKN,MAAM,CAAC,CAAD;AANX,SADD,GASG,IAVN,EAWGjD,MAAM,KAAK,IAAX,gBACC,gCAAC,UAAD;AAAA,kBACS,MADT;AAAA,iBAESA,MAFT;AAAA,iBAGS+C,MAAM,CAAC,CAAD,CAAN,GAAYA,MAAM,CAAC,CAAD,CAH3B;AAAA,kBAIUjC,MAAM,CAACwC,IAAP,KAAgBxC,MAAM,CAACyC,YAAP,KAAwB,CAJlD;AAAA,aAKKR,MAAM,CAAC,CAAD,CALX;AAAA,aAMKjC,MAAM,CAACR,IAAI,CAACN,MAAD,CAAJ,CAAaS,CAAb,CAAD,CAAN,GAA2BK,MAAM,CAACwC,IAAP,KAAgBxC,MAAM,CAACyC,YAAP,EAAjB,GAA0C;AANzE,SADD,GASG,IApBN,CADF;AAwBD;;;EApCyBzD,K;;iCAAtBsD,a,iBACiB,W;AAsCvB,IAAMI,SAAS,GAAG,+BAAcb,aAAd,CAAlB;;AACA,IAAMc,SAAS,GAAG,+BAAcL,aAAd,CAAlB","sourcesContent":["import React from 'react';\nimport { Component, sstyled } from '@semcore/core';\nimport createElement from './createElement';\nimport canUseDOM from '@semcore/utils/lib/canUseDOM';\nimport { scaleOfBandwidth, getIndexFromData, eventToPoint, invert, CONSTANT } from './utils';\nimport trottle from '@semcore/utils/lib/rafTrottle';\n\nimport style from './style/hover.shadow.css';\n\nclass Hover extends Component {\n static style = style;\n\n state = {\n xIndex: null,\n yIndex: null,\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 handlerMouseMoveRoot = trottle((e) => {\n const { eventEmitter, data, scale, x, y, rootRef } = this.asProps;\n const { clientX, clientY } = e;\n const [xScale, yScale] = scale;\n const [pX, pY] = eventToPoint(e, rootRef.current);\n const vX = invert(xScale, pX);\n const vY = invert(yScale, pY);\n const xIndex =\n x === undefined || vX === undefined ? null : getIndexFromData(data, xScale, x, vX);\n const yIndex =\n y === undefined || vY === undefined ? null : getIndexFromData(data, yScale, y, vY);\n const state = { xIndex, yIndex };\n this.virtualElement.getBoundingClientRect = this.generateGetBoundingClientRect(\n clientX,\n clientY,\n );\n this.virtualElement[CONSTANT.VIRTUAL_ELEMENT] = true;\n\n this.setState(state, () => {\n eventEmitter.emit(\n 'onTooltipVisible',\n xIndex !== null || yIndex !== null,\n state,\n this.virtualElement,\n );\n });\n });\n\n handlerMouseLeaveRoot = trottle(() => {\n const state = {\n xIndex: null,\n yIndex: null,\n };\n this.setState(state, () => {\n this.asProps.eventEmitter.emit('onTooltipVisible', false, state);\n });\n });\n\n componentDidMount() {\n const { eventEmitter } = this.asProps;\n this.unsubscribeMouseMoveRoot = eventEmitter.subscribe('onMouseMoveChart', (e) => {\n e.persist();\n this.handlerMouseMoveRoot(e);\n });\n this.unsubscribeMouseLeaveRoot = eventEmitter.subscribe(\n 'onMouseLeaveChart',\n this.handlerMouseLeaveRoot,\n );\n }\n\n componentWillUnmount() {\n if (this.unsubscribeMouseMoveRoot) {\n this.unsubscribeMouseMoveRoot();\n }\n if (this.unsubscribeMouseLeaveRoot) {\n this.unsubscribeMouseLeaveRoot();\n }\n }\n}\n\nclass HoverLineRoot extends Hover {\n static displayName = 'HoverLine';\n\n render() {\n const SHoverLine = this.Element;\n const { styles, x, y, data, scale } = this.asProps;\n const { xIndex, yIndex } = this.state;\n const [xScale, yScale] = scale;\n\n const xRange = xScale.range();\n const yRange = yScale.range();\n const x1 = xIndex !== null ? scaleOfBandwidth(xScale, data[xIndex][x]) : undefined;\n const y1 = yIndex !== null ? scaleOfBandwidth(yScale, data[yIndex][y]) : undefined;\n\n return sstyled(styles)(\n <>\n {xIndex !== null ? (\n <SHoverLine render=\"line\" index={xIndex} x1={x1} y1={yRange[0]} x2={x1} y2={yRange[1]} />\n ) : null}\n {yIndex !== null ? (\n <SHoverLine render=\"line\" index={yIndex} x1={xRange[0]} y1={y1} x2={xRange[1]} y2={y1} />\n ) : null}\n </>,\n );\n }\n}\n\nclass HoverRectRoot extends Hover {\n static displayName = 'HoverRect';\n\n render() {\n const SHoverRect = this.Element;\n const { styles, x, y, data, scale } = this.asProps;\n const { xIndex, yIndex } = this.state;\n const [xScale, yScale] = scale;\n\n const xRange = xScale.range();\n const yRange = yScale.range();\n\n return sstyled(styles)(\n <>\n {xIndex !== null ? (\n <SHoverRect\n render=\"rect\"\n index={xIndex}\n width={xScale.step() - xScale.paddingInner() / 2}\n height={yRange[0] - yRange[1]}\n x={xScale(data[xIndex][x]) - (xScale.step() * xScale.paddingInner()) / 2}\n y={yRange[1]}\n />\n ) : null}\n {yIndex !== null ? (\n <SHoverRect\n render=\"rect\"\n index={yIndex}\n width={xRange[1] - xRange[0]}\n height={yScale.step() - yScale.paddingInner() / 2}\n x={xRange[0]}\n y={yScale(data[yIndex][y]) - (yScale.step() * yScale.paddingInner()) / 2}\n />\n ) : null}\n </>,\n );\n }\n}\n\nconst HoverLine = createElement(HoverLineRoot);\nconst HoverRect = createElement(HoverRectRoot);\n\nexport { HoverLine, HoverRect };\n"],"file":"Hover.js"}
1
+ {"version":3,"sources":["../../src/Hover.jsx"],"names":["Hover","xIndex","yIndex","document","createElement","e","asProps","eventEmitter","data","scale","x","y","rootRef","clientX","clientY","xScale","yScale","current","pX","pY","vX","vY","undefined","state","virtualElement","getBoundingClientRect","generateGetBoundingClientRect","CONSTANT","VIRTUAL_ELEMENT","setState","emit","width","height","top","right","bottom","left","unsubscribeMouseMoveRoot","subscribe","persist","handlerMouseMoveRoot","unsubscribeMouseLeaveRoot","handlerMouseLeaveRoot","Component","style","HoverLineRoot","SHoverLine","Element","styles","xRange","range","yRange","x1","y1","HoverRectRoot","SHoverRect","step","paddingInner","HoverLine","HoverRect"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AACA;;AADA;;AAEA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;IAIMA,K;;;;;;;;;;;;;;;8FAGI;AACNC,MAAAA,MAAM,EAAE,IADF;AAENC,MAAAA,MAAM,EAAE;AAFF,K;uGAKS,+BAAcC,QAAQ,CAACC,aAAT,CAAuB,KAAvB,CAAd,GAA8C,E;6GAMxC,4BAAQ,UAACC,CAAD,EAAO;AACpC,0BAAqD,MAAKC,OAA1D;AAAA,UAAQC,YAAR,iBAAQA,YAAR;AAAA,UAAsBC,IAAtB,iBAAsBA,IAAtB;AAAA,UAA4BC,KAA5B,iBAA4BA,KAA5B;AAAA,UAAmCC,CAAnC,iBAAmCA,CAAnC;AAAA,UAAsCC,CAAtC,iBAAsCA,CAAtC;AAAA,UAAyCC,OAAzC,iBAAyCA,OAAzC;AACA,UAAQC,OAAR,GAA6BR,CAA7B,CAAQQ,OAAR;AAAA,UAAiBC,OAAjB,GAA6BT,CAA7B,CAAiBS,OAAjB;;AACA,mDAAyBL,KAAzB;AAAA,UAAOM,MAAP;AAAA,UAAeC,MAAf;;AACA,0BAAiB,yBAAaX,CAAb,EAAgBO,OAAO,CAACK,OAAxB,CAAjB;AAAA;AAAA,UAAOC,EAAP;AAAA,UAAWC,EAAX;;AACA,UAAMC,EAAE,GAAG,mBAAOL,MAAP,EAAeG,EAAf,CAAX;AACA,UAAMG,EAAE,GAAG,mBAAOL,MAAP,EAAeG,EAAf,CAAX;AACA,UAAMlB,MAAM,GACVS,CAAC,KAAKY,SAAN,IAAmBF,EAAE,KAAKE,SAA1B,GAAsC,IAAtC,GAA6C,6BAAiBd,IAAjB,EAAuBO,MAAvB,EAA+BL,CAA/B,EAAkCU,EAAlC,CAD/C;AAEA,UAAMlB,MAAM,GACVS,CAAC,KAAKW,SAAN,IAAmBD,EAAE,KAAKC,SAA1B,GAAsC,IAAtC,GAA6C,6BAAiBd,IAAjB,EAAuBQ,MAAvB,EAA+BL,CAA/B,EAAkCU,EAAlC,CAD/C;AAEA,UAAME,KAAK,GAAG;AAAEtB,QAAAA,MAAM,EAANA,MAAF;AAAUC,QAAAA,MAAM,EAANA;AAAV,OAAd;AACA,YAAKsB,cAAL,CAAoBC,qBAApB,GAA4C,MAAKC,6BAAL,CAC1Cb,OAD0C,EAE1CC,OAF0C,CAA5C;AAIA,YAAKU,cAAL,CAAoBG,gBAASC,eAA7B,IAAgD,IAAhD;;AAEA,YAAKC,QAAL,CAAcN,KAAd,EAAqB,YAAM;AACzBhB,QAAAA,YAAY,CAACuB,IAAb,CACE,kBADF,EAEE7B,MAAM,KAAK,IAAX,IAAmBC,MAAM,KAAK,IAFhC,EAGEqB,KAHF,EAIE,MAAKC,cAJP;AAMD,OAPD;AAQD,KA1BsB,C;8GA4BC,4BAAQ,YAAM;AACpC,UAAMD,KAAK,GAAG;AACZtB,QAAAA,MAAM,EAAE,IADI;AAEZC,QAAAA,MAAM,EAAE;AAFI,OAAd;;AAIA,YAAK2B,QAAL,CAAcN,KAAd,EAAqB,YAAM;AACzB,cAAKjB,OAAL,CAAaC,YAAb,CAA0BuB,IAA1B,CAA+B,kBAA/B,EAAmD,KAAnD,EAA0DP,KAA1D;AACD,OAFD;AAGD,KARuB,C;;;;;;WAhCxB,yCAA4C;AAAA,UAAdb,CAAc,uEAAV,CAAU;AAAA,UAAPC,CAAO,uEAAH,CAAG;AAC1C,aAAO;AAAA,eAAO;AAAEoB,UAAAA,KAAK,EAAE,CAAT;AAAYC,UAAAA,MAAM,EAAE,CAApB;AAAuBC,UAAAA,GAAG,EAAEtB,CAA5B;AAA+BuB,UAAAA,KAAK,EAAExB,CAAtC;AAAyCyB,UAAAA,MAAM,EAAExB,CAAjD;AAAoDyB,UAAAA,IAAI,EAAE1B;AAA1D,SAAP;AAAA,OAAP;AACD;;;WAwCD,6BAAoB;AAAA;;AAClB,UAAQH,YAAR,GAAyB,KAAKD,OAA9B,CAAQC,YAAR;AACA,WAAK8B,wBAAL,GAAgC9B,YAAY,CAAC+B,SAAb,CAAuB,kBAAvB,EAA2C,UAACjC,CAAD,EAAO;AAChFA,QAAAA,CAAC,CAACkC,OAAF;;AACA,QAAA,MAAI,CAACC,oBAAL,CAA0BnC,CAA1B;AACD,OAH+B,CAAhC;AAIA,WAAKoC,yBAAL,GAAiClC,YAAY,CAAC+B,SAAb,CAC/B,mBAD+B,EAE/B,KAAKI,qBAF0B,CAAjC;AAID;;;WAED,gCAAuB;AACrB,UAAI,KAAKL,wBAAT,EAAmC;AACjC,aAAKA,wBAAL;AACD;;AACD,UAAI,KAAKI,yBAAT,EAAoC;AAClC,aAAKA,yBAAL;AACD;AACF;;;EAvEiBE,e;;iCAAd3C,K,WACW4C,K;;IAyEXC,a;;;;;;;;;;;;WAGJ,kBAAS;AAAA;;AACP,UAAMC,UAAU,GAAG,KAAKC,OAAxB;AACA,2BAAsC,KAAKzC,OAA3C;AAAA,UAAQ0C,MAAR,kBAAQA,MAAR;AAAA,UAAgBtC,CAAhB,kBAAgBA,CAAhB;AAAA,UAAmBC,CAAnB,kBAAmBA,CAAnB;AAAA,UAAsBH,IAAtB,kBAAsBA,IAAtB;AAAA,UAA4BC,KAA5B,kBAA4BA,KAA5B;AACA,wBAA2B,KAAKc,KAAhC;AAAA,UAAQtB,MAAR,eAAQA,MAAR;AAAA,UAAgBC,MAAhB,eAAgBA,MAAhB;;AACA,oDAAyBO,KAAzB;AAAA,UAAOM,MAAP;AAAA,UAAeC,MAAf;;AAEA,UAAMiC,MAAM,GAAGlC,MAAM,CAACmC,KAAP,EAAf;AACA,UAAMC,MAAM,GAAGnC,MAAM,CAACkC,KAAP,EAAf;AACA,UAAME,EAAE,GAAGnD,MAAM,KAAK,IAAX,GAAkB,6BAAiBc,MAAjB,EAAyBP,IAAI,CAACP,MAAD,CAAJ,CAAaS,CAAb,CAAzB,CAAlB,GAA8DY,SAAzE;AACA,UAAM+B,EAAE,GAAGnD,MAAM,KAAK,IAAX,GAAkB,6BAAiBc,MAAjB,EAAyBR,IAAI,CAACN,MAAD,CAAJ,CAAaS,CAAb,CAAzB,CAAlB,GAA8DW,SAAzE;AAEA,oBAAO,mBAAQ0B,MAAR,CAAP,eACE,kEACG/C,MAAM,KAAK,IAAX,gBACC,gCAAC,UAAD;AAAA,kBAAmB,MAAnB;AAAA,iBAAiCA,MAAjC;AAAA,cAA6CmD,EAA7C;AAAA,cAAqDD,MAAM,CAAC,CAAD,CAA3D;AAAA,cAAoEC,EAApE;AAAA,cAA4ED,MAAM,CAAC,CAAD;AAAlF,SADD,GAEG,IAHN,EAIGjD,MAAM,KAAK,IAAX,gBACC,gCAAC,UAAD;AAAA,kBAAmB,MAAnB;AAAA,iBAAiCA,MAAjC;AAAA,cAA6C+C,MAAM,CAAC,CAAD,CAAnD;AAAA,cAA4DI,EAA5D;AAAA,cAAoEJ,MAAM,CAAC,CAAD,CAA1E;AAAA,cAAmFI;AAAnF,SADD,GAEG,IANN,CADF;AAUD;;;EAxByBrD,K;;iCAAtB6C,a,iBACiB,W;;IA0BjBS,a;;;;;;;;;;;;WAGJ,kBAAS;AAAA;;AACP,UAAMC,UAAU,GAAG,KAAKR,OAAxB;AACA,2BAAsC,KAAKzC,OAA3C;AAAA,UAAQ0C,MAAR,kBAAQA,MAAR;AAAA,UAAgBtC,CAAhB,kBAAgBA,CAAhB;AAAA,UAAmBC,CAAnB,kBAAmBA,CAAnB;AAAA,UAAsBH,IAAtB,kBAAsBA,IAAtB;AAAA,UAA4BC,KAA5B,kBAA4BA,KAA5B;AACA,yBAA2B,KAAKc,KAAhC;AAAA,UAAQtB,MAAR,gBAAQA,MAAR;AAAA,UAAgBC,MAAhB,gBAAgBA,MAAhB;;AACA,oDAAyBO,KAAzB;AAAA,UAAOM,MAAP;AAAA,UAAeC,MAAf;;AAEA,UAAMiC,MAAM,GAAGlC,MAAM,CAACmC,KAAP,EAAf;AACA,UAAMC,MAAM,GAAGnC,MAAM,CAACkC,KAAP,EAAf;AAEA,qBAAO,mBAAQF,MAAR,CAAP,eACE,kEACG/C,MAAM,KAAK,IAAX,gBACC,gCAAC,UAAD;AAAA,kBACS,MADT;AAAA,iBAESA,MAFT;AAAA,iBAGSc,MAAM,CAACyC,IAAP,KAAgBzC,MAAM,CAAC0C,YAAP,KAAwB,CAHjD;AAAA,kBAIUN,MAAM,CAAC,CAAD,CAAN,GAAYA,MAAM,CAAC,CAAD,CAJ5B;AAAA,aAKKpC,MAAM,CAACP,IAAI,CAACP,MAAD,CAAJ,CAAaS,CAAb,CAAD,CAAN,GAA2BK,MAAM,CAACyC,IAAP,KAAgBzC,MAAM,CAAC0C,YAAP,EAAjB,GAA0C,CALzE;AAAA,aAMKN,MAAM,CAAC,CAAD;AANX,SADD,GASG,IAVN,EAWGjD,MAAM,KAAK,IAAX,gBACC,gCAAC,UAAD;AAAA,kBACS,MADT;AAAA,iBAESA,MAFT;AAAA,iBAGS+C,MAAM,CAAC,CAAD,CAAN,GAAYA,MAAM,CAAC,CAAD,CAH3B;AAAA,kBAIUjC,MAAM,CAACwC,IAAP,KAAgBxC,MAAM,CAACyC,YAAP,KAAwB,CAJlD;AAAA,aAKKR,MAAM,CAAC,CAAD,CALX;AAAA,aAMKjC,MAAM,CAACR,IAAI,CAACN,MAAD,CAAJ,CAAaS,CAAb,CAAD,CAAN,GAA2BK,MAAM,CAACwC,IAAP,KAAgBxC,MAAM,CAACyC,YAAP,EAAjB,GAA0C;AANzE,SADD,GASG,IApBN,CADF;AAwBD;;;EApCyBzD,K;;iCAAtBsD,a,iBACiB,W;AAsCvB,IAAMI,SAAS,GAAG,+BAAcb,aAAd,CAAlB;;AACA,IAAMc,SAAS,GAAG,+BAAcL,aAAd,CAAlB","sourcesContent":["import React from 'react';\nimport { Component, sstyled } from '@semcore/core';\nimport createElement from './createElement';\nimport canUseDOM from '@semcore/utils/lib/canUseDOM';\nimport { scaleOfBandwidth, getIndexFromData, eventToPoint, invert, CONSTANT } from './utils';\nimport trottle from '@semcore/utils/lib/rafTrottle';\n\nimport style from './style/hover.shadow.css';\n\nclass Hover extends Component {\n static style = style;\n\n state = {\n xIndex: null,\n yIndex: null,\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 handlerMouseMoveRoot = trottle((e) => {\n const { eventEmitter, data, scale, x, y, rootRef } = this.asProps;\n const { clientX, clientY } = e;\n const [xScale, yScale] = scale;\n const [pX, pY] = eventToPoint(e, rootRef.current);\n const vX = invert(xScale, pX);\n const vY = invert(yScale, pY);\n const xIndex =\n x === undefined || vX === undefined ? null : getIndexFromData(data, xScale, x, vX);\n const yIndex =\n y === undefined || vY === undefined ? null : getIndexFromData(data, yScale, y, vY);\n const state = { xIndex, yIndex };\n this.virtualElement.getBoundingClientRect = this.generateGetBoundingClientRect(\n clientX,\n clientY,\n );\n this.virtualElement[CONSTANT.VIRTUAL_ELEMENT] = true;\n\n this.setState(state, () => {\n eventEmitter.emit(\n 'onTooltipVisible',\n xIndex !== null || yIndex !== null,\n state,\n this.virtualElement,\n );\n });\n });\n\n handlerMouseLeaveRoot = trottle(() => {\n const state = {\n xIndex: null,\n yIndex: null,\n };\n this.setState(state, () => {\n this.asProps.eventEmitter.emit('onTooltipVisible', false, state);\n });\n });\n\n componentDidMount() {\n const { eventEmitter } = this.asProps;\n this.unsubscribeMouseMoveRoot = eventEmitter.subscribe('onMouseMoveChart', (e) => {\n e.persist();\n this.handlerMouseMoveRoot(e);\n });\n this.unsubscribeMouseLeaveRoot = eventEmitter.subscribe(\n 'onMouseLeaveChart',\n this.handlerMouseLeaveRoot,\n );\n }\n\n componentWillUnmount() {\n if (this.unsubscribeMouseMoveRoot) {\n this.unsubscribeMouseMoveRoot();\n }\n if (this.unsubscribeMouseLeaveRoot) {\n this.unsubscribeMouseLeaveRoot();\n }\n }\n}\n\nclass HoverLineRoot extends Hover {\n static displayName = 'HoverLine';\n\n render() {\n const SHoverLine = this.Element;\n const { styles, x, y, data, scale } = this.asProps;\n const { xIndex, yIndex } = this.state;\n const [xScale, yScale] = scale;\n\n const xRange = xScale.range();\n const yRange = yScale.range();\n const x1 = xIndex !== null ? scaleOfBandwidth(xScale, data[xIndex][x]) : undefined;\n const y1 = yIndex !== null ? scaleOfBandwidth(yScale, data[yIndex][y]) : undefined;\n\n return sstyled(styles)(\n <>\n {xIndex !== null ? (\n <SHoverLine render=\"line\" index={xIndex} x1={x1} y1={yRange[0]} x2={x1} y2={yRange[1]} />\n ) : null}\n {yIndex !== null ? (\n <SHoverLine render=\"line\" index={yIndex} x1={xRange[0]} y1={y1} x2={xRange[1]} y2={y1} />\n ) : null}\n </>,\n );\n }\n}\n\nclass HoverRectRoot extends Hover {\n static displayName = 'HoverRect';\n\n render() {\n const SHoverRect = this.Element;\n const { styles, x, y, data, scale } = this.asProps;\n const { xIndex, yIndex } = this.state;\n const [xScale, yScale] = scale;\n\n const xRange = xScale.range();\n const yRange = yScale.range();\n\n return sstyled(styles)(\n <>\n {xIndex !== null ? (\n <SHoverRect\n render=\"rect\"\n index={xIndex}\n width={xScale.step() - xScale.paddingInner() / 2}\n height={yRange[0] - yRange[1]}\n x={xScale(data[xIndex][x]) - (xScale.step() * xScale.paddingInner()) / 2}\n y={yRange[1]}\n />\n ) : null}\n {yIndex !== null ? (\n <SHoverRect\n render=\"rect\"\n index={yIndex}\n width={xRange[1] - xRange[0]}\n height={yScale.step() - yScale.paddingInner() / 2}\n x={xRange[0]}\n y={yScale(data[yIndex][y]) - (yScale.step() * yScale.paddingInner()) / 2}\n />\n ) : null}\n </>,\n );\n }\n}\n\nconst HoverLine = createElement(HoverLineRoot);\nconst HoverRect = createElement(HoverRectRoot);\n\nexport { HoverLine, HoverRect };\n"],"file":"Hover.js"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Line.js"],"names":["LineRoot","asProps","x","y","d3","color","data","SLine","Element","styles","hide","uid","size","duration","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, scale }) => {\n const [xScale, yScale] = scale || $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 duration: 500,\n };\n };\n\n getDotsProps() {\n const { x, y, d3, color } = this.asProps;\n return {\n x,\n y,\n d3,\n color,\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"}
1
+ {"version":3,"sources":["../../src/Line.jsx"],"names":["LineRoot","asProps","x","y","d3","color","data","SLine","Element","styles","hide","uid","size","duration","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, scale }) => {\n const [xScale, yScale] = scale || $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 duration: 500,\n };\n };\n\n getDotsProps() {\n const { x, y, d3, color } = this.asProps;\n return {\n x,\n y,\n d3,\n color,\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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Plot.js"],"names":["PlotRoot","props","React","createRef","e","scale","asProps","eventEmitter","emit","xScale","yScale","rootRef","current","pX","pY","range","minX","maxX","maxY","minY","EventEmitter","data","width","height","$rootProps","size","SPlot","Box","styles","handlerMouseMove","handlerMouseLeave","Component"],"mappings":"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","sourcesContent":["import React from 'react';\nimport createComponent, { Component, Root, sstyled } from '@semcore/core';\nimport { Box } from '@semcore/flex-box';\nimport EventEmitter from '@semcore/utils/lib/eventEmitter';\nimport { eventToPoint } from './utils';\n\nclass PlotRoot extends Component {\n static displayName = 'Plot';\n\n constructor(props) {\n super(props);\n this.eventEmitter = props.eventEmitter || new EventEmitter();\n }\n\n static defaultProps = () => ({\n width: 0,\n height: 0,\n });\n\n rootRef = React.createRef();\n\n handlerMouseMove = (e) => {\n const { scale } = this.asProps;\n this.eventEmitter.emit(`onMouseMoveRoot`, e);\n\n if (scale) {\n const [xScale, yScale] = scale;\n const [pX, pY] = eventToPoint(e, this.rootRef.current);\n const [minX, maxX] = xScale.range();\n const [maxY, minY] = yScale.range();\n\n if (pX >= minX && pX <= maxX && pY >= minY && pY <= maxY) {\n this.eventEmitter.emit('onMouseMoveChart', e);\n } else {\n this.eventEmitter.emit('onMouseLeaveChart', e);\n }\n }\n };\n\n handlerMouseLeave = (e) => {\n this.eventEmitter.emit(`onMouseLeaveRoot`, e);\n this.eventEmitter.emit('onMouseLeaveChart', e);\n };\n\n setContext() {\n const { scale, data, width, height } = this.asProps;\n return {\n $rootProps: {\n size: [width, height],\n data: data,\n scale: scale,\n eventEmitter: this.eventEmitter,\n rootRef: this.rootRef,\n },\n };\n }\n\n render() {\n const SPlot = Root;\n const { styles, width, height } = this.asProps;\n\n if (!width || !height) return null;\n\n return sstyled(styles)(\n <SPlot\n render={Box}\n tag=\"svg\"\n __excludeProps={['data', 'scale']}\n ref={this.rootRef}\n onMouseMove={this.handlerMouseMove}\n onMouseLeave={this.handlerMouseLeave}\n />,\n );\n }\n}\n\nexport default createComponent(PlotRoot);\n"],"file":"Plot.js"}
1
+ {"version":3,"sources":["../../src/Plot.jsx"],"names":["PlotRoot","props","React","createRef","e","scale","asProps","eventEmitter","emit","xScale","yScale","rootRef","current","pX","pY","range","minX","maxX","maxY","minY","EventEmitter","data","width","height","$rootProps","size","SPlot","Box","styles","handlerMouseMove","handlerMouseLeave","Component"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;;AADA;;AAEA;;AACA;;AACA;;;;;;;;;;;;;;IAEMA,Q;;;;;AAGJ,oBAAYC,KAAZ,EAAmB;AAAA;;AAAA;AACjB,8BAAMA,KAAN;AADiB,6GAUTC,kBAAMC,SAAN,EAVS;AAAA,yGAYA,UAACC,CAAD,EAAO;AACxB,UAAQC,KAAR,GAAkB,MAAKC,OAAvB,CAAQD,KAAR;;AACA,YAAKE,YAAL,CAAkBC,IAAlB,oBAA0CJ,CAA1C;;AAEA,UAAIC,KAAJ,EAAW;AACT,qDAAyBA,KAAzB;AAAA,YAAOI,MAAP;AAAA,YAAeC,MAAf;;AACA,4BAAiB,yBAAaN,CAAb,EAAgB,MAAKO,OAAL,CAAaC,OAA7B,CAAjB;AAAA;AAAA,YAAOC,EAAP;AAAA,YAAWC,EAAX;;AACA,4BAAqBL,MAAM,CAACM,KAAP,EAArB;AAAA;AAAA,YAAOC,IAAP;AAAA,YAAaC,IAAb;;AACA,4BAAqBP,MAAM,CAACK,KAAP,EAArB;AAAA;AAAA,YAAOG,IAAP;AAAA,YAAaC,IAAb;;AAEA,YAAIN,EAAE,IAAIG,IAAN,IAAcH,EAAE,IAAII,IAApB,IAA4BH,EAAE,IAAIK,IAAlC,IAA0CL,EAAE,IAAII,IAApD,EAA0D;AACxD,gBAAKX,YAAL,CAAkBC,IAAlB,CAAuB,kBAAvB,EAA2CJ,CAA3C;AACD,SAFD,MAEO;AACL,gBAAKG,YAAL,CAAkBC,IAAlB,CAAuB,mBAAvB,EAA4CJ,CAA5C;AACD;AACF;AACF,KA5BkB;AAAA,0GA8BC,UAACA,CAAD,EAAO;AACzB,YAAKG,YAAL,CAAkBC,IAAlB,qBAA2CJ,CAA3C;;AACA,YAAKG,YAAL,CAAkBC,IAAlB,CAAuB,mBAAvB,EAA4CJ,CAA5C;AACD,KAjCkB;AAEjB,UAAKG,YAAL,GAAoBN,KAAK,CAACM,YAAN,IAAsB,IAAIa,wBAAJ,EAA1C;AAFiB;AAGlB;;;;WAgCD,sBAAa;AACX,0BAAuC,KAAKd,OAA5C;AAAA,UAAQD,KAAR,iBAAQA,KAAR;AAAA,UAAegB,IAAf,iBAAeA,IAAf;AAAA,UAAqBC,KAArB,iBAAqBA,KAArB;AAAA,UAA4BC,MAA5B,iBAA4BA,MAA5B;AACA,aAAO;AACLC,QAAAA,UAAU,EAAE;AACVC,UAAAA,IAAI,EAAE,CAACH,KAAD,EAAQC,MAAR,CADI;AAEVF,UAAAA,IAAI,EAAEA,IAFI;AAGVhB,UAAAA,KAAK,EAAEA,KAHG;AAIVE,UAAAA,YAAY,EAAE,KAAKA,YAJT;AAKVI,UAAAA,OAAO,EAAE,KAAKA;AALJ;AADP,OAAP;AASD;;;WAED,kBAAS;AAAA;AAAA;;AACP,UAAMe,KAAK,GAOCC,YAPZ;AACA,2BAAkC,KAAKrB,OAAvC;AAAA,UAAQsB,MAAR,kBAAQA,MAAR;AAAA,UAAgBN,KAAhB,kBAAgBA,KAAhB;AAAA,UAAuBC,MAAvB,kBAAuBA,MAAvB;AAEA,UAAI,CAACD,KAAD,IAAU,CAACC,MAAf,EAAuB,OAAO,IAAP;AAEvB,qBAAO,mBAAQK,MAAR,CAAP,eACE,gCAAC,KAAD;AAAA,eAEM,KAFN;AAAA,0BAGkB,CAAC,MAAD,EAAS,OAAT,CAHlB;AAAA,eAIO,KAAKjB,OAJZ;AAAA,uBAKe,KAAKkB,gBALpB;AAAA,wBAMgB,KAAKC;AANrB,iBADF;AAUD;;;EAnEoBC,e;;iCAAjB/B,Q,iBACiB,M;iCADjBA,Q,kBAQkB;AAAA,SAAO;AAC3BsB,IAAAA,KAAK,EAAE,CADoB;AAE3BC,IAAAA,MAAM,EAAE;AAFmB,GAAP;AAAA,C;;eA8DT,sBAAgBvB,QAAhB,C","sourcesContent":["import React from 'react';\nimport createComponent, { Component, Root, sstyled } from '@semcore/core';\nimport { Box } from '@semcore/flex-box';\nimport EventEmitter from '@semcore/utils/lib/eventEmitter';\nimport { eventToPoint } from './utils';\n\nclass PlotRoot extends Component {\n static displayName = 'Plot';\n\n constructor(props) {\n super(props);\n this.eventEmitter = props.eventEmitter || new EventEmitter();\n }\n\n static defaultProps = () => ({\n width: 0,\n height: 0,\n });\n\n rootRef = React.createRef();\n\n handlerMouseMove = (e) => {\n const { scale } = this.asProps;\n this.eventEmitter.emit(`onMouseMoveRoot`, e);\n\n if (scale) {\n const [xScale, yScale] = scale;\n const [pX, pY] = eventToPoint(e, this.rootRef.current);\n const [minX, maxX] = xScale.range();\n const [maxY, minY] = yScale.range();\n\n if (pX >= minX && pX <= maxX && pY >= minY && pY <= maxY) {\n this.eventEmitter.emit('onMouseMoveChart', e);\n } else {\n this.eventEmitter.emit('onMouseLeaveChart', e);\n }\n }\n };\n\n handlerMouseLeave = (e) => {\n this.eventEmitter.emit(`onMouseLeaveRoot`, e);\n this.eventEmitter.emit('onMouseLeaveChart', e);\n };\n\n setContext() {\n const { scale, data, width, height } = this.asProps;\n return {\n $rootProps: {\n size: [width, height],\n data: data,\n scale: scale,\n eventEmitter: this.eventEmitter,\n rootRef: this.rootRef,\n },\n };\n }\n\n render() {\n const SPlot = Root;\n const { styles, width, height } = this.asProps;\n\n if (!width || !height) return null;\n\n return sstyled(styles)(\n <SPlot\n render={Box}\n tag=\"svg\"\n __excludeProps={['data', 'scale']}\n ref={this.rootRef}\n onMouseMove={this.handlerMouseMove}\n onMouseLeave={this.handlerMouseLeave}\n />,\n );\n }\n}\n\nexport default createComponent(PlotRoot);\n"],"file":"Plot.js"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/ResponsiveContainer.js"],"names":["ResponsiveContainerRoot","props","React","createRef","entries","asProps","Children","aspect","$container","width","clientWidth","height","clientHeight","style","window","getComputedStyle","minHeight","Number","parseInt","getPropertyValue","maxHeight","size","forceUpdate","observer","ResizeObserver","handleResize","containerRef","current","observe","disconnect","SResponsiveContainer","Box","styles","Component","ResponsiveContainer"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;;AAHA;;AACA;;AAGA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;IAEMA,uB;;;;;AAMJ,mCAAYC,KAAZ,EAAmB;AAAA;;AAAA;AACjB,8BAAMA,KAAN;AADiB,kHAHJC,kBAAMC,SAAN,EAGI;AAAA,6FAFZ,CAAC,CAAD,EAAI,CAAJ,CAEY;AAAA,qGASJ,4BAAQ,UAACC,OAAD,EAAa;AAClC,0BAA6B,MAAKC,OAAlC;AAAA,UAAQC,QAAR,iBAAQA,QAAR;AAAA,UAAkBC,MAAlB,iBAAkBA,MAAlB;AACA,6BAAmD,MAAKC,UAAxD;AAAA,UAAmBC,KAAnB,oBAAMC,WAAN;AAAA,UAAwCC,MAAxC,oBAA0BC,YAA1B;;AAEA,UAAIL,MAAJ,EAAY;AACV,YAAMM,KAAK,GAAGC,MAAM,CAACC,gBAAP,CAAwB,MAAKP,UAA7B,CAAd;AACA,YAAMQ,SAAS,GAAGC,MAAM,CAACC,QAAP,CAAgBL,KAAK,CAACM,gBAAN,CAAuB,YAAvB,CAAhB,CAAlB;AACA,YAAMC,SAAS,GAAGH,MAAM,CAACC,QAAP,CAAgBL,KAAK,CAACM,gBAAN,CAAuB,YAAvB,CAAhB,CAAlB;AACAR,QAAAA,MAAM,GAAGF,KAAK,GAAGF,MAAjB;;AAEA,YAAII,MAAM,GAAGK,SAAb,EAAwB;AACtBL,UAAAA,MAAM,GAAGK,SAAT;AACD;;AACD,YAAIL,MAAM,GAAGS,SAAb,EAAwB;AACtBT,UAAAA,MAAM,GAAGS,SAAT;AACD;AACF;;AAED,UAAI,MAAKC,IAAL,CAAU,CAAV,MAAiBZ,KAAjB,IAA0B,MAAKY,IAAL,CAAU,CAAV,MAAiBV,MAA/C,EAAuD;AAEvD,YAAKU,IAAL,GAAY,CAACZ,KAAD,EAAQE,MAAR,CAAZ;AAEA,4EAAW,UAAX,EAAuB,MAAKU,IAA5B,EAAkCjB,OAAlC;;AAEA,UAAI,OAAO,mCAAkBE,QAAlB,CAAP,KAAuC,UAA3C,EAAuD;AACrD,cAAKgB,WAAL;AACD;AACF,KA3Bc,CATI;AAEjB,UAAKC,QAAL,GAAgB,IAAIC,kCAAJ,CAAmB,MAAKC,YAAxB,CAAhB;AAFiB;AAGlB;;;;SAED,eAAiB;AACf,aAAO,KAAKC,YAAL,CAAkBC,OAAzB;AACD;;;WA+BD,sBAAa;AACX,uDAAwB,KAAKN,IAA7B;AAAA,UAAOZ,KAAP;AAAA,UAAcE,MAAd;;AACA,aAAO;AACLF,QAAAA,KAAK,EAALA,KADK;AAELE,QAAAA,MAAM,EAANA;AAFK,OAAP;AAID;;;WAED,6BAAoB;AAClB,UAAI,KAAKH,UAAT,EAAqB;AACnB;AACA,aAAKe,QAAL,CAAcK,OAAd,CAAsB,KAAKpB,UAA3B;AACD;AACF,K,CAED;;;;WAEA,gCAAuB;AACrB,WAAKe,QAAL,CAAcM,UAAd;AACD;;;WAED,kBAAS;AAAA;AAAA;;AACP,UAAMC,oBAAoB,GAE2BC,YAFrD;AACA,UAAQC,MAAR,GAAmB,KAAK3B,OAAxB,CAAQ2B,MAAR;AACA,qBAAO,mBAAQA,MAAR,CAAP,eAAuB,gCAAC,oBAAD;AAAA,eAAwC,KAAKN;AAA7C,iBAAvB;AACD;;;EArEmCO,e;;iCAAhCjC,uB,iBACiB,qB;AAuEvB,IAAMkC,mBAAmB,GAAG,sBAAgBlC,uBAAhB,CAA5B;eAEekC,mB","sourcesContent":["import React from 'react';\nimport ResizeObserver from 'resize-observer-polyfill';\n\nimport createComponent, { Component, Root, sstyled } from '@semcore/core';\nimport { Box } from '@semcore/flex-box';\nimport trottle from '@semcore/utils/lib/rafTrottle';\nimport fire from '@semcore/utils/lib/fire';\nimport getOriginChildren from '@semcore/utils/lib/getOriginChildren';\n\nclass ResponsiveContainerRoot extends Component {\n static displayName = 'ResponsiveContainer';\n\n containerRef = React.createRef();\n size = [0, 0];\n\n constructor(props) {\n super(props);\n this.observer = new ResizeObserver(this.handleResize);\n }\n\n get $container() {\n return this.containerRef.current;\n }\n\n handleResize = trottle((entries) => {\n const { Children, aspect } = this.asProps;\n let { clientWidth: width, clientHeight: height } = this.$container;\n\n if (aspect) {\n const style = window.getComputedStyle(this.$container);\n const minHeight = Number.parseInt(style.getPropertyValue('min-height'));\n const maxHeight = Number.parseInt(style.getPropertyValue('max-height'));\n height = width * aspect;\n\n if (height < minHeight) {\n height = minHeight;\n }\n if (height > maxHeight) {\n height = maxHeight;\n }\n }\n\n if (this.size[0] === width && this.size[1] === height) return;\n\n this.size = [width, height];\n\n fire(this, 'onResize', this.size, entries);\n\n if (typeof getOriginChildren(Children) === 'function') {\n this.forceUpdate();\n }\n });\n\n setContext() {\n const [width, height] = this.size;\n return {\n width,\n height,\n };\n }\n\n componentDidMount() {\n if (this.$container) {\n // TODO ускорить можно?\n this.observer.observe(this.$container);\n }\n }\n\n // TODO component did update ref?\n\n componentWillUnmount() {\n this.observer.disconnect();\n }\n\n render() {\n const SResponsiveContainer = Root;\n const { styles } = this.asProps;\n return sstyled(styles)(<SResponsiveContainer render={Box} ref={this.containerRef} />);\n }\n}\n\nconst ResponsiveContainer = createComponent(ResponsiveContainerRoot);\n\nexport default ResponsiveContainer;\n"],"file":"ResponsiveContainer.js"}
1
+ {"version":3,"sources":["../../src/ResponsiveContainer.jsx"],"names":["ResponsiveContainerRoot","props","React","createRef","entries","asProps","Children","aspect","$container","width","clientWidth","height","clientHeight","style","window","getComputedStyle","minHeight","Number","parseInt","getPropertyValue","maxHeight","size","forceUpdate","observer","ResizeObserver","handleResize","containerRef","current","observe","disconnect","SResponsiveContainer","Box","styles","Component","ResponsiveContainer"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;;AAHA;;AACA;;AAGA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;IAEMA,uB;;;;;AAMJ,mCAAYC,KAAZ,EAAmB;AAAA;;AAAA;AACjB,8BAAMA,KAAN;AADiB,kHAHJC,kBAAMC,SAAN,EAGI;AAAA,6FAFZ,CAAC,CAAD,EAAI,CAAJ,CAEY;AAAA,qGASJ,4BAAQ,UAACC,OAAD,EAAa;AAClC,0BAA6B,MAAKC,OAAlC;AAAA,UAAQC,QAAR,iBAAQA,QAAR;AAAA,UAAkBC,MAAlB,iBAAkBA,MAAlB;AACA,6BAAmD,MAAKC,UAAxD;AAAA,UAAmBC,KAAnB,oBAAMC,WAAN;AAAA,UAAwCC,MAAxC,oBAA0BC,YAA1B;;AAEA,UAAIL,MAAJ,EAAY;AACV,YAAMM,KAAK,GAAGC,MAAM,CAACC,gBAAP,CAAwB,MAAKP,UAA7B,CAAd;AACA,YAAMQ,SAAS,GAAGC,MAAM,CAACC,QAAP,CAAgBL,KAAK,CAACM,gBAAN,CAAuB,YAAvB,CAAhB,CAAlB;AACA,YAAMC,SAAS,GAAGH,MAAM,CAACC,QAAP,CAAgBL,KAAK,CAACM,gBAAN,CAAuB,YAAvB,CAAhB,CAAlB;AACAR,QAAAA,MAAM,GAAGF,KAAK,GAAGF,MAAjB;;AAEA,YAAII,MAAM,GAAGK,SAAb,EAAwB;AACtBL,UAAAA,MAAM,GAAGK,SAAT;AACD;;AACD,YAAIL,MAAM,GAAGS,SAAb,EAAwB;AACtBT,UAAAA,MAAM,GAAGS,SAAT;AACD;AACF;;AAED,UAAI,MAAKC,IAAL,CAAU,CAAV,MAAiBZ,KAAjB,IAA0B,MAAKY,IAAL,CAAU,CAAV,MAAiBV,MAA/C,EAAuD;AAEvD,YAAKU,IAAL,GAAY,CAACZ,KAAD,EAAQE,MAAR,CAAZ;AAEA,4EAAW,UAAX,EAAuB,MAAKU,IAA5B,EAAkCjB,OAAlC;;AAEA,UAAI,OAAO,mCAAkBE,QAAlB,CAAP,KAAuC,UAA3C,EAAuD;AACrD,cAAKgB,WAAL;AACD;AACF,KA3Bc,CATI;AAEjB,UAAKC,QAAL,GAAgB,IAAIC,kCAAJ,CAAmB,MAAKC,YAAxB,CAAhB;AAFiB;AAGlB;;;;SAED,eAAiB;AACf,aAAO,KAAKC,YAAL,CAAkBC,OAAzB;AACD;;;WA+BD,sBAAa;AACX,uDAAwB,KAAKN,IAA7B;AAAA,UAAOZ,KAAP;AAAA,UAAcE,MAAd;;AACA,aAAO;AACLF,QAAAA,KAAK,EAALA,KADK;AAELE,QAAAA,MAAM,EAANA;AAFK,OAAP;AAID;;;WAED,6BAAoB;AAClB,UAAI,KAAKH,UAAT,EAAqB;AACnB;AACA,aAAKe,QAAL,CAAcK,OAAd,CAAsB,KAAKpB,UAA3B;AACD;AACF,K,CAED;;;;WAEA,gCAAuB;AACrB,WAAKe,QAAL,CAAcM,UAAd;AACD;;;WAED,kBAAS;AAAA;AAAA;;AACP,UAAMC,oBAAoB,GAE2BC,YAFrD;AACA,UAAQC,MAAR,GAAmB,KAAK3B,OAAxB,CAAQ2B,MAAR;AACA,qBAAO,mBAAQA,MAAR,CAAP,eAAuB,gCAAC,oBAAD;AAAA,eAAwC,KAAKN;AAA7C,iBAAvB;AACD;;;EArEmCO,e;;iCAAhCjC,uB,iBACiB,qB;AAuEvB,IAAMkC,mBAAmB,GAAG,sBAAgBlC,uBAAhB,CAA5B;eAEekC,mB","sourcesContent":["import React from 'react';\nimport ResizeObserver from 'resize-observer-polyfill';\n\nimport createComponent, { Component, Root, sstyled } from '@semcore/core';\nimport { Box } from '@semcore/flex-box';\nimport trottle from '@semcore/utils/lib/rafTrottle';\nimport fire from '@semcore/utils/lib/fire';\nimport getOriginChildren from '@semcore/utils/lib/getOriginChildren';\n\nclass ResponsiveContainerRoot extends Component {\n static displayName = 'ResponsiveContainer';\n\n containerRef = React.createRef();\n size = [0, 0];\n\n constructor(props) {\n super(props);\n this.observer = new ResizeObserver(this.handleResize);\n }\n\n get $container() {\n return this.containerRef.current;\n }\n\n handleResize = trottle((entries) => {\n const { Children, aspect } = this.asProps;\n let { clientWidth: width, clientHeight: height } = this.$container;\n\n if (aspect) {\n const style = window.getComputedStyle(this.$container);\n const minHeight = Number.parseInt(style.getPropertyValue('min-height'));\n const maxHeight = Number.parseInt(style.getPropertyValue('max-height'));\n height = width * aspect;\n\n if (height < minHeight) {\n height = minHeight;\n }\n if (height > maxHeight) {\n height = maxHeight;\n }\n }\n\n if (this.size[0] === width && this.size[1] === height) return;\n\n this.size = [width, height];\n\n fire(this, 'onResize', this.size, entries);\n\n if (typeof getOriginChildren(Children) === 'function') {\n this.forceUpdate();\n }\n });\n\n setContext() {\n const [width, height] = this.size;\n return {\n width,\n height,\n };\n }\n\n componentDidMount() {\n if (this.$container) {\n // TODO ускорить можно?\n this.observer.observe(this.$container);\n }\n }\n\n // TODO component did update ref?\n\n componentWillUnmount() {\n this.observer.disconnect();\n }\n\n render() {\n const SResponsiveContainer = Root;\n const { styles } = this.asProps;\n return sstyled(styles)(<SResponsiveContainer render={Box} ref={this.containerRef} />);\n }\n}\n\nconst ResponsiveContainer = createComponent(ResponsiveContainerRoot);\n\nexport default ResponsiveContainer;\n"],"file":"ResponsiveContainer.js"}
@@ -190,21 +190,22 @@ var ScatterPlotRoot = /*#__PURE__*/function (_Component) {
190
190
  var _this$asProps3 = this.asProps,
191
191
  data = _this$asProps3.data,
192
192
  uid = _this$asProps3.uid,
193
- size = _this$asProps3.size,
194
193
  scale = _this$asProps3.scale;
195
194
 
196
195
  var _scale2 = (0, _slicedToArray2["default"])(scale, 2),
197
196
  xScale = _scale2[0],
198
197
  yScale = _scale2[1];
199
198
 
200
- var marginX = Math.min(xScale.range()[0], xScale.range()[1]);
201
- var marginY = Math.min(yScale.range()[0], yScale.range()[1]);
199
+ var xSize = Math.abs(xScale.range()[0] - xScale.range()[1]);
200
+ var ySize = Math.abs(yScale.range()[0] - yScale.range()[1]);
201
+ var xMargin = Math.min(xScale.range()[0], xScale.range()[1]);
202
+ var yMargin = Math.min(yScale.range()[0], yScale.range()[1]);
202
203
  return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, data.map(this.renderCircle.bind(this)), /*#__PURE__*/_react["default"].createElement(_ClipPath["default"], {
203
204
  id: uid,
204
- x: marginX,
205
- y: marginY,
206
- width: "".concat(size[0] - 2 * marginX, "px"),
207
- height: "".concat(size[1] - 2 * marginY, "px")
205
+ x: xMargin,
206
+ y: yMargin,
207
+ width: "".concat(xSize, "px"),
208
+ height: "".concat(ySize, "px")
208
209
  }));
209
210
  }
210
211
  }]);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/ScatterPlot.js"],"names":["ScatterPlotRoot","document","createElement","visible","props","x","clientX","y","clientY","eventEmitter","asProps","virtualElement","getBoundingClientRect","generateGetBoundingClientRect","CONSTANT","VIRTUAL_ELEMENT","emit","width","height","top","right","bottom","left","duration","uid","r","value","radius","selectRect","selection","selectAll","attr","selectRectNode","node","transition","animationCircle","d","i","color","scale","offset","styles","valueColor","xScale","yScale","SScatterPlot","Element","SValue","bindHandlerTooltip","xIndex","data","size","marginX","Math","min","range","marginY","map","renderCircle","bind","Component","style","ScatterPlot"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { Component, sstyled } from '@semcore/core';\nimport canUseDOM from '@semcore/utils/lib/canUseDOM';\nimport { CONSTANT } from './utils';\nimport createElement from './createElement';\nimport uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';\nimport { transition } from 'd3-transition';\nimport style from './style/scatterplot.shadow.css';\nimport ClipPath from './ClipPath';\n\nclass ScatterPlotRoot extends Component {\n static displayName = 'ScatterPlot';\n static style = style;\n static enhance = [uniqueIDEnhancement()];\n\n static defaultProps = {\n offset: [0, 0],\n duration: 500,\n };\n\n virtualElement = canUseDOM() ? document.createElement('div') : {};\n\n generateGetBoundingClientRect(x = 0, y = 0) {\n return () => ({ width: 0, height: 0, top: y, right: x, bottom: y, left: x });\n }\n\n bindHandlerTooltip = (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 animationCircle() {\n const { duration, uid, r, value } = this.asProps;\n const radius = r ? r : value ? 12 : 5.5;\n const selectRect = transition().selection().selectAll(`[id^=${uid}]`).attr('r', 0);\n const selectRectNode = selectRect.node();\n\n if (duration > 0 && selectRectNode) {\n selectRect.transition().duration(duration).attr('r', radius);\n }\n }\n\n componentDidUpdate() {\n this.animationCircle();\n }\n\n componentDidMount() {\n this.animationCircle();\n }\n\n renderCircle(d, i) {\n const {\n color,\n scale,\n x,\n y,\n r,\n offset,\n styles,\n uid,\n duration,\n value,\n valueColor,\n } = this.asProps;\n const [xScale, yScale] = scale;\n const SScatterPlot = this.Element;\n const SValue = 'text';\n return sstyled(styles)(\n <g\n key={`circle(#${i})`}\n onMouseMove={this.bindHandlerTooltip(true, { ...this.props, xIndex: i })}\n onMouseLeave={this.bindHandlerTooltip(false, { ...this.props, xIndex: i })}\n >\n <SScatterPlot\n id={`${uid}${i}`}\n render=\"circle\"\n clipPath={`url(#${uid})`}\n cx={xScale(d[x]) + offset[0]}\n cy={yScale(d[y]) + offset[1]}\n color={color}\n r={r}\n use:duration={`${duration}ms`}\n />\n {d[value] && (\n <SValue\n x={xScale(d[x]) + offset[0]}\n y={yScale(d[y]) + offset[1]}\n dy=\".3em\"\n clipPath={`url(#${uid})`}\n color={valueColor}\n >\n {d[value]}\n </SValue>\n )}\n </g>,\n );\n }\n\n render() {\n const { data, uid, size, scale } = this.asProps;\n const [xScale, yScale] = scale;\n const marginX = Math.min(xScale.range()[0], xScale.range()[1]);\n const marginY = Math.min(yScale.range()[0], yScale.range()[1]);\n\n return (\n <>\n {data.map(this.renderCircle.bind(this))}\n <ClipPath\n id={uid}\n x={marginX}\n y={marginY}\n width={`${size[0] - 2 * marginX}px`}\n height={`${size[1] - 2 * marginY}px`}\n />\n </>\n );\n }\n}\n\nconst ScatterPlot = createElement(ScatterPlotRoot);\n\nexport default ScatterPlot;\n"],"file":"ScatterPlot.js"}
1
+ {"version":3,"sources":["../../src/ScatterPlot.jsx"],"names":["ScatterPlotRoot","document","createElement","visible","props","x","clientX","y","clientY","eventEmitter","asProps","virtualElement","getBoundingClientRect","generateGetBoundingClientRect","CONSTANT","VIRTUAL_ELEMENT","emit","width","height","top","right","bottom","left","duration","uid","r","value","radius","selectRect","selection","selectAll","attr","selectRectNode","node","transition","animationCircle","d","i","color","scale","offset","styles","valueColor","xScale","yScale","SScatterPlot","Element","SValue","bindHandlerTooltip","xIndex","data","xSize","Math","abs","range","ySize","xMargin","min","yMargin","map","renderCircle","bind","Component","style","ScatterPlot"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { Component, sstyled } from '@semcore/core';\nimport canUseDOM from '@semcore/utils/lib/canUseDOM';\nimport { CONSTANT } from './utils';\nimport createElement from './createElement';\nimport uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';\nimport { transition } from 'd3-transition';\nimport style from './style/scatterplot.shadow.css';\nimport ClipPath from './ClipPath';\n\nclass ScatterPlotRoot extends Component {\n static displayName = 'ScatterPlot';\n static style = style;\n static enhance = [uniqueIDEnhancement()];\n\n static defaultProps = {\n offset: [0, 0],\n duration: 500,\n };\n\n virtualElement = canUseDOM() ? document.createElement('div') : {};\n\n generateGetBoundingClientRect(x = 0, y = 0) {\n return () => ({ width: 0, height: 0, top: y, right: x, bottom: y, left: x });\n }\n\n bindHandlerTooltip =\n (visible, props) =>\n ({ clientX: x, clientY: y }) => {\n const { eventEmitter } = this.asProps;\n this.virtualElement.getBoundingClientRect = this.generateGetBoundingClientRect(x, y);\n this.virtualElement[CONSTANT.VIRTUAL_ELEMENT] = true;\n eventEmitter.emit('onTooltipVisible', visible, props, this.virtualElement);\n };\n\n animationCircle() {\n const { duration, uid, r, value } = this.asProps;\n const radius = r ? r : value ? 12 : 5.5;\n const selectRect = transition().selection().selectAll(`[id^=${uid}]`).attr('r', 0);\n const selectRectNode = selectRect.node();\n\n if (duration > 0 && selectRectNode) {\n selectRect.transition().duration(duration).attr('r', radius);\n }\n }\n\n componentDidUpdate() {\n this.animationCircle();\n }\n\n componentDidMount() {\n this.animationCircle();\n }\n\n renderCircle(d, i) {\n const { color, scale, x, y, r, offset, styles, uid, duration, value, valueColor } =\n this.asProps;\n const [xScale, yScale] = scale;\n const SScatterPlot = this.Element;\n const SValue = 'text';\n return sstyled(styles)(\n <g\n key={`circle(#${i})`}\n onMouseMove={this.bindHandlerTooltip(true, { ...this.props, xIndex: i })}\n onMouseLeave={this.bindHandlerTooltip(false, { ...this.props, xIndex: i })}\n >\n <SScatterPlot\n id={`${uid}${i}`}\n render=\"circle\"\n clipPath={`url(#${uid})`}\n cx={xScale(d[x]) + offset[0]}\n cy={yScale(d[y]) + offset[1]}\n color={color}\n r={r}\n use:duration={`${duration}ms`}\n />\n {d[value] && (\n <SValue\n x={xScale(d[x]) + offset[0]}\n y={yScale(d[y]) + offset[1]}\n dy=\".3em\"\n clipPath={`url(#${uid})`}\n color={valueColor}\n >\n {d[value]}\n </SValue>\n )}\n </g>,\n );\n }\n\n render() {\n const { data, uid, scale } = this.asProps;\n const [xScale, yScale] = scale;\n const xSize = Math.abs(xScale.range()[0] - xScale.range()[1]);\n const ySize = Math.abs(yScale.range()[0] - yScale.range()[1]);\n const xMargin = Math.min(xScale.range()[0], xScale.range()[1]);\n const yMargin = Math.min(yScale.range()[0], yScale.range()[1]);\n\n return (\n <>\n {data.map(this.renderCircle.bind(this))}\n <ClipPath id={uid} x={xMargin} y={yMargin} width={`${xSize}px`} height={`${ySize}px`} />\n </>\n );\n }\n}\n\nconst ScatterPlot = createElement(ScatterPlotRoot);\n\nexport default ScatterPlot;\n"],"file":"ScatterPlot.js"}
@@ -48,15 +48,15 @@ var _ref = (
48
48
  /*__reshadow_css_start__*/
49
49
  (0, _core.__css__)(
50
50
  /*__inner_css_start__*/
51
- ".___SBar_15d58_gg_{fill:#50aef4;transition-property:height,width,y;transition-duration:var(--duration);transition-timing-function:ease-in-out}.___SBar_15d58_gg_.__color_15d58_gg_{fill:var(--color)}.___SBar_15d58_gg_.__hide_15d58_gg_{display:none}.___SBackground_15d58_gg_{fill:#e4ecf1}"
51
+ ".___SBar_1s4vb_gg_{fill:#50aef4;transition-property:height,width,y;transition-duration:var(--duration);transition-timing-function:ease-in-out}.___SBar_1s4vb_gg_.__color_1s4vb_gg_{fill:var(--color)}.___SBar_1s4vb_gg_.__hide_1s4vb_gg_{display:none}.___SBackground_1s4vb_gg_{fill:#e4ecf1}"
52
52
  /*__inner_css_end__*/
53
- , "rh7i7q_gg_")
53
+ , "1x3absm_gg_")
54
54
  /*__reshadow_css_end__*/
55
55
  , {
56
- "__SBar": "___SBar_15d58_gg_",
57
- "_color": "__color_15d58_gg_",
58
- "_hide": "__hide_15d58_gg_",
59
- "__SBackground": "___SBackground_15d58_gg_"
56
+ "__SBar": "___SBar_1s4vb_gg_",
57
+ "_color": "__color_1s4vb_gg_",
58
+ "_hide": "__hide_1s4vb_gg_",
59
+ "__SBackground": "___SBackground_1s4vb_gg_"
60
60
  }),
61
61
  style = (0, _extends2["default"])({}, _ref);
62
62
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/StackBar.js"],"names":["DEFAULT_INSTANCE","Symbol","XY0","StackBarRoot","asProps","Children","data","stack","keys","React","toArray","reduce","acc","child","isValidElement","type","StackBar","Bar","props","hide","push","y","HorizontalBar","x","r","seriesIndex","series","findIndex","s","key","rBar","map","i","slice","some","bar","y0","x0","Element","getSeries","Component","style"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { stack as d3Stack } from 'd3-shape';\nimport { Component } from '@semcore/core';\nimport getOriginChildren from '@semcore/utils/lib/getOriginChildren';\nimport createElement from './createElement';\nimport Bar from './Bar';\nimport HorizontalBar from './HorizontalBar';\n\nimport style from './style/bar.shadow.css';\n\nconst DEFAULT_INSTANCE = Symbol('DEFAULT_INSTANCE');\nconst XY0 = Symbol('XY0');\n\nclass StackBarRoot extends Component {\n static displayName = 'StackBar';\n\n static style = style;\n\n static defaultProps = () => {\n const stack = d3Stack();\n stack[DEFAULT_INSTANCE] = true;\n return { stack, r: 2 };\n };\n\n getSeries() {\n const { Children, data, stack } = this.asProps;\n\n if (stack[DEFAULT_INSTANCE]) {\n const keys = React.Children.toArray(getOriginChildren(Children)).reduce((acc, child) => {\n if (React.isValidElement(child) && child.type === StackBar.Bar && !child.props.hide) {\n acc.push(child.props.y);\n }\n if (\n React.isValidElement(child) &&\n child.type === StackBar.HorizontalBar &&\n !child.props.hide\n ) {\n acc.push(child.props.x);\n }\n return acc;\n }, []);\n stack.keys(keys);\n }\n\n return stack(data);\n }\n\n getBarProps({ y }) {\n const { x, r } = this.asProps;\n\n const seriesIndex = this.series.findIndex((s) => s.key === y);\n // or [] if hide bar\n const series = this.series[seriesIndex] || [];\n\n const rBar = series.map((s, i) =>\n this.series.slice(seriesIndex + 1).some((bar) => bar[i][0] !== bar[i][1]) ? 0 : r,\n );\n\n return {\n data: series.map((s) => ({\n ...s.data,\n [y]: s[1],\n [XY0]: s[0],\n })),\n y0: XY0,\n x,\n r: rBar,\n };\n }\n\n getHorizontalBarProps({ x }) {\n const { y, r } = this.asProps;\n\n const seriesIndex = this.series.findIndex((s) => s.key === x);\n const series = this.series[seriesIndex];\n\n const rBar = series.map((s, i) =>\n this.series.slice(seriesIndex + 1).some((bar) => bar[i][0] !== bar[i][1]) ? 0 : r,\n );\n\n return {\n data: series.map((s) => ({\n ...s.data,\n [x]: s[1],\n [XY0]: s[0],\n })),\n x0: XY0,\n y,\n r: rBar,\n };\n }\n\n render() {\n const Element = this.Element;\n this.series = this.getSeries();\n return <Element render=\"g\" series={this.series} />;\n }\n}\n\nconst StackBar = createElement(StackBarRoot, {\n Bar,\n HorizontalBar,\n});\n\nexport default StackBar;\n"],"file":"StackBar.js"}
1
+ {"version":3,"sources":["../../src/StackBar.jsx"],"names":["DEFAULT_INSTANCE","Symbol","XY0","StackBarRoot","asProps","Children","data","stack","keys","React","toArray","reduce","acc","child","isValidElement","type","StackBar","Bar","props","hide","push","y","HorizontalBar","x","r","seriesIndex","series","findIndex","s","key","rBar","map","i","slice","some","bar","y0","x0","Element","getSeries","Component","style"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { stack as d3Stack } from 'd3-shape';\nimport { Component } from '@semcore/core';\nimport getOriginChildren from '@semcore/utils/lib/getOriginChildren';\nimport createElement from './createElement';\nimport Bar from './Bar';\nimport HorizontalBar from './HorizontalBar';\n\nimport style from './style/bar.shadow.css';\n\nconst DEFAULT_INSTANCE = Symbol('DEFAULT_INSTANCE');\nconst XY0 = Symbol('XY0');\n\nclass StackBarRoot extends Component {\n static displayName = 'StackBar';\n\n static style = style;\n\n static defaultProps = () => {\n const stack = d3Stack();\n stack[DEFAULT_INSTANCE] = true;\n return { stack, r: 2 };\n };\n\n getSeries() {\n const { Children, data, stack } = this.asProps;\n\n if (stack[DEFAULT_INSTANCE]) {\n const keys = React.Children.toArray(getOriginChildren(Children)).reduce((acc, child) => {\n if (React.isValidElement(child) && child.type === StackBar.Bar && !child.props.hide) {\n acc.push(child.props.y);\n }\n if (\n React.isValidElement(child) &&\n child.type === StackBar.HorizontalBar &&\n !child.props.hide\n ) {\n acc.push(child.props.x);\n }\n return acc;\n }, []);\n stack.keys(keys);\n }\n\n return stack(data);\n }\n\n getBarProps({ y }) {\n const { x, r } = this.asProps;\n\n const seriesIndex = this.series.findIndex((s) => s.key === y);\n // or [] if hide bar\n const series = this.series[seriesIndex] || [];\n\n const rBar = series.map((s, i) =>\n this.series.slice(seriesIndex + 1).some((bar) => bar[i][0] !== bar[i][1]) ? 0 : r,\n );\n\n return {\n data: series.map((s) => ({\n ...s.data,\n [y]: s[1],\n [XY0]: s[0],\n })),\n y0: XY0,\n x,\n r: rBar,\n };\n }\n\n getHorizontalBarProps({ x }) {\n const { y, r } = this.asProps;\n\n const seriesIndex = this.series.findIndex((s) => s.key === x);\n const series = this.series[seriesIndex];\n\n const rBar = series.map((s, i) =>\n this.series.slice(seriesIndex + 1).some((bar) => bar[i][0] !== bar[i][1]) ? 0 : r,\n );\n\n return {\n data: series.map((s) => ({\n ...s.data,\n [x]: s[1],\n [XY0]: s[0],\n })),\n x0: XY0,\n y,\n r: rBar,\n };\n }\n\n render() {\n const Element = this.Element;\n this.series = this.getSeries();\n return <Element render=\"g\" series={this.series} />;\n }\n}\n\nconst StackBar = createElement(StackBarRoot, {\n Bar,\n HorizontalBar,\n});\n\nexport default StackBar;\n"],"file":"StackBar.js"}
@@ -46,16 +46,16 @@ var _ref = (
46
46
  /*__reshadow_css_start__*/
47
47
  (0, _core.__css__)(
48
48
  /*__inner_css_start__*/
49
- ".___SArea_466j5_gg_{fill:#50aef4;fill-opacity:.4}.___SArea_466j5_gg_.__color_466j5_gg_{fill:var(--color)}.___SAreaLine_466j5_gg_{stroke:#50aef4;stroke-width:3;fill:transparent}.___SAreaLine_466j5_gg_.__color_466j5_gg_{stroke:var(--color)}.___SArea_466j5_gg_,.___SAreaLine_466j5_gg_{transition-property:d;transition-duration:var(--duration);transition-timing-function:ease-in-out}.___SNull_466j5_gg_{fill:transparent;stroke:#bdc4c6;stroke-dasharray:4}.___SNull_466j5_gg_.__hide_466j5_gg_{display:none}"
49
+ ".___SArea_sgh1n_gg_{fill:#50aef4;fill-opacity:.4}.___SArea_sgh1n_gg_.__color_sgh1n_gg_{fill:var(--color)}.___SAreaLine_sgh1n_gg_{stroke:#50aef4;stroke-width:3;fill:transparent}.___SAreaLine_sgh1n_gg_.__color_sgh1n_gg_{stroke:var(--color)}.___SArea_sgh1n_gg_,.___SAreaLine_sgh1n_gg_{transition-property:d;transition-duration:var(--duration);transition-timing-function:ease-in-out}.___SNull_sgh1n_gg_{fill:transparent;stroke:#bdc4c6;stroke-dasharray:4}.___SNull_sgh1n_gg_.__hide_sgh1n_gg_{display:none}"
50
50
  /*__inner_css_end__*/
51
- , "ggaxmt_gg_")
51
+ , "qp1tn1_gg_")
52
52
  /*__reshadow_css_end__*/
53
53
  , {
54
- "__SArea": "___SArea_466j5_gg_",
55
- "_color": "__color_466j5_gg_",
56
- "__SAreaLine": "___SAreaLine_466j5_gg_",
57
- "__SNull": "___SNull_466j5_gg_",
58
- "_hide": "__hide_466j5_gg_"
54
+ "__SArea": "___SArea_sgh1n_gg_",
55
+ "_color": "__color_sgh1n_gg_",
56
+ "__SAreaLine": "___SAreaLine_sgh1n_gg_",
57
+ "__SNull": "___SNull_sgh1n_gg_",
58
+ "_hide": "__hide_sgh1n_gg_"
59
59
  }),
60
60
  style = (0, _extends2["default"])({}, _ref);
61
61
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/StackedArea.js"],"names":["DEFAULT_INSTANCE","Symbol","Y0","StackedAreaRoot","asProps","Children","data","stack","keys","React","toArray","reduce","acc","child","isValidElement","type","StackedArea","Area","props","hide","push","y","reverse","x","series","find","s","key","map","y0","Element","getSeries","Component","style"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,IAAMA,gBAAgB,GAAGC,MAAM,CAAC,kBAAD,CAA/B;AACA,IAAMC,EAAE,GAAGD,MAAM,CAAC,IAAD,CAAjB;;IAEME,e;;;;;;;;;;;;WAWJ,qBAAY;AACV,0BAAkC,KAAKC,OAAvC;AAAA,UAAQC,QAAR,iBAAQA,QAAR;AAAA,UAAkBC,IAAlB,iBAAkBA,IAAlB;AAAA,UAAwBC,KAAxB,iBAAwBA,KAAxB;;AAEA,UAAIA,KAAK,CAACP,gBAAD,CAAT,EAA6B;AAC3B,YAAMQ,IAAI,GAAGC,kBAAMJ,QAAN,CAAeK,OAAf,CAAuB,mCAAkBL,QAAlB,CAAvB,EAAoDM,MAApD,CAA2D,UAACC,GAAD,EAAMC,KAAN,EAAgB;AACtF,cAAI,gCAAMC,cAAN,CAAqBD,KAArB,KAA+BA,KAAK,CAACE,IAAN,KAAeC,WAAW,CAACC,IAA1D,IAAkE,CAACJ,KAAK,CAACK,KAAN,CAAYC,IAAnF,EAAyF;AACvFP,YAAAA,GAAG,CAACQ,IAAJ,CAASP,KAAK,CAACK,KAAN,CAAYG,CAArB;AACD;;AACD,iBAAOT,GAAP;AACD,SALY,EAKV,EALU,CAAb;;AAMAL,QAAAA,KAAK,CAACC,IAAN,CAAWA,IAAI,CAACc,OAAL,EAAX;AACD;;AAED,aAAOf,KAAK,CAACD,IAAD,CAAZ;AACD;;;WAED,6BAAoB;AAAA,UAALe,CAAK,SAALA,CAAK;AAClB,UAAQE,CAAR,GAAc,KAAKnB,OAAnB,CAAQmB,CAAR,CADkB,CAElB;;AACA,UAAMC,MAAM,GAAG,KAAKA,MAAL,CAAYC,IAAZ,CAAiB,UAACC,CAAD;AAAA,eAAOA,CAAC,CAACC,GAAF,KAAUN,CAAjB;AAAA,OAAjB,KAAwC,EAAvD;AACA,aAAO;AACLf,QAAAA,IAAI,EAAEkB,MAAM,CAACI,GAAP,CAAW,UAACF,CAAD;AAAA;;AAAA,iDACZA,CAAC,CAACpB,IADU,8EAGde,CAHc,EAGVK,CAAC,CAACpB,IAAF,CAAOe,CAAP,MAAc,IAAd,GAAqB,IAArB,GAA4BK,CAAC,CAAC,CAAD,CAHnB,oDAIdxB,EAJc,EAITwB,CAAC,CAAC,CAAD,CAJQ;AAAA,SAAX,CADD;AAOLG,QAAAA,EAAE,EAAE3B,EAPC;AAQLqB,QAAAA,CAAC,EAADA;AARK,OAAP;AAUD;;;WAED,kBAAS;AACP,UAAMO,OAAO,GAAG,KAAKA,OAArB;AACA,WAAKN,MAAL,GAAc,KAAKO,SAAL,EAAd;AACA,0BAAO,gCAAC,OAAD;AAAS,QAAA,MAAM,EAAC,GAAhB;AAAoB,QAAA,MAAM,EAAE,KAAKP;AAAjC,QAAP;AACD;;;EA/C2BQ,e;;iCAAxB7B,e,iBACiB,a;iCADjBA,e,WAGW8B,K;iCAHX9B,e,kBAKkB,YAAM;AAC1B,MAAMI,KAAK,GAAG,qBAAd;AACAA,EAAAA,KAAK,CAACP,gBAAD,CAAL,GAA0B,IAA1B;AACA,SAAO;AAAEO,IAAAA,KAAK,EAALA;AAAF,GAAP;AACD,C;AAyCH,IAAMS,WAAW,GAAG,+BAAcb,eAAd,EAA+B;AAAEc,EAAAA,IAAI,EAAJA;AAAF,CAA/B,CAApB;eAEeD,W","sourcesContent":["import React from 'react';\nimport { stack as d3Stack } from 'd3-shape';\nimport { Component } from '@semcore/core';\nimport getOriginChildren from '@semcore/utils/lib/getOriginChildren';\nimport createElement from './createElement';\nimport Area from './Area';\n\nimport style from './style/area.shadow.css';\n\nconst DEFAULT_INSTANCE = Symbol('DEFAULT_INSTANCE');\nconst Y0 = Symbol('Y0');\n\nclass StackedAreaRoot extends Component {\n static displayName = 'StackedArea';\n\n static style = style;\n\n static defaultProps = () => {\n const stack = d3Stack();\n stack[DEFAULT_INSTANCE] = true;\n return { stack };\n };\n\n getSeries() {\n const { Children, data, stack } = this.asProps;\n\n if (stack[DEFAULT_INSTANCE]) {\n const keys = React.Children.toArray(getOriginChildren(Children)).reduce((acc, child) => {\n if (React.isValidElement(child) && child.type === StackedArea.Area && !child.props.hide) {\n acc.push(child.props.y);\n }\n return acc;\n }, []);\n stack.keys(keys.reverse());\n }\n\n return stack(data);\n }\n\n getAreaProps({ y }) {\n const { x } = this.asProps;\n // or [] if hide area\n const series = this.series.find((s) => s.key === y) || [];\n return {\n data: series.map((s) => ({\n ...s.data,\n // if null is passed in the data, then we pass it, because d3 null leads to 0\n [y]: s.data[y] === null ? null : s[1],\n [Y0]: s[0],\n })),\n y0: Y0,\n x,\n };\n }\n\n render() {\n const Element = this.Element;\n this.series = this.getSeries();\n return <Element render=\"g\" series={this.series} />;\n }\n}\n\nconst StackedArea = createElement(StackedAreaRoot, { Area });\n\nexport default StackedArea;\n"],"file":"StackedArea.js"}
1
+ {"version":3,"sources":["../../src/StackedArea.jsx"],"names":["DEFAULT_INSTANCE","Symbol","Y0","StackedAreaRoot","asProps","Children","data","stack","keys","React","toArray","reduce","acc","child","isValidElement","type","StackedArea","Area","props","hide","push","y","reverse","x","series","find","s","key","map","y0","Element","getSeries","Component","style"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,IAAMA,gBAAgB,GAAGC,MAAM,CAAC,kBAAD,CAA/B;AACA,IAAMC,EAAE,GAAGD,MAAM,CAAC,IAAD,CAAjB;;IAEME,e;;;;;;;;;;;;WAWJ,qBAAY;AACV,0BAAkC,KAAKC,OAAvC;AAAA,UAAQC,QAAR,iBAAQA,QAAR;AAAA,UAAkBC,IAAlB,iBAAkBA,IAAlB;AAAA,UAAwBC,KAAxB,iBAAwBA,KAAxB;;AAEA,UAAIA,KAAK,CAACP,gBAAD,CAAT,EAA6B;AAC3B,YAAMQ,IAAI,GAAGC,kBAAMJ,QAAN,CAAeK,OAAf,CAAuB,mCAAkBL,QAAlB,CAAvB,EAAoDM,MAApD,CAA2D,UAACC,GAAD,EAAMC,KAAN,EAAgB;AACtF,cAAI,gCAAMC,cAAN,CAAqBD,KAArB,KAA+BA,KAAK,CAACE,IAAN,KAAeC,WAAW,CAACC,IAA1D,IAAkE,CAACJ,KAAK,CAACK,KAAN,CAAYC,IAAnF,EAAyF;AACvFP,YAAAA,GAAG,CAACQ,IAAJ,CAASP,KAAK,CAACK,KAAN,CAAYG,CAArB;AACD;;AACD,iBAAOT,GAAP;AACD,SALY,EAKV,EALU,CAAb;;AAMAL,QAAAA,KAAK,CAACC,IAAN,CAAWA,IAAI,CAACc,OAAL,EAAX;AACD;;AAED,aAAOf,KAAK,CAACD,IAAD,CAAZ;AACD;;;WAED,6BAAoB;AAAA,UAALe,CAAK,SAALA,CAAK;AAClB,UAAQE,CAAR,GAAc,KAAKnB,OAAnB,CAAQmB,CAAR,CADkB,CAElB;;AACA,UAAMC,MAAM,GAAG,KAAKA,MAAL,CAAYC,IAAZ,CAAiB,UAACC,CAAD;AAAA,eAAOA,CAAC,CAACC,GAAF,KAAUN,CAAjB;AAAA,OAAjB,KAAwC,EAAvD;AACA,aAAO;AACLf,QAAAA,IAAI,EAAEkB,MAAM,CAACI,GAAP,CAAW,UAACF,CAAD;AAAA;;AAAA,iDACZA,CAAC,CAACpB,IADU,8EAGde,CAHc,EAGVK,CAAC,CAACpB,IAAF,CAAOe,CAAP,MAAc,IAAd,GAAqB,IAArB,GAA4BK,CAAC,CAAC,CAAD,CAHnB,oDAIdxB,EAJc,EAITwB,CAAC,CAAC,CAAD,CAJQ;AAAA,SAAX,CADD;AAOLG,QAAAA,EAAE,EAAE3B,EAPC;AAQLqB,QAAAA,CAAC,EAADA;AARK,OAAP;AAUD;;;WAED,kBAAS;AACP,UAAMO,OAAO,GAAG,KAAKA,OAArB;AACA,WAAKN,MAAL,GAAc,KAAKO,SAAL,EAAd;AACA,0BAAO,gCAAC,OAAD;AAAS,QAAA,MAAM,EAAC,GAAhB;AAAoB,QAAA,MAAM,EAAE,KAAKP;AAAjC,QAAP;AACD;;;EA/C2BQ,e;;iCAAxB7B,e,iBACiB,a;iCADjBA,e,WAGW8B,K;iCAHX9B,e,kBAKkB,YAAM;AAC1B,MAAMI,KAAK,GAAG,qBAAd;AACAA,EAAAA,KAAK,CAACP,gBAAD,CAAL,GAA0B,IAA1B;AACA,SAAO;AAAEO,IAAAA,KAAK,EAALA;AAAF,GAAP;AACD,C;AAyCH,IAAMS,WAAW,GAAG,+BAAcb,eAAd,EAA+B;AAAEc,EAAAA,IAAI,EAAJA;AAAF,CAA/B,CAApB;eAEeD,W","sourcesContent":["import React from 'react';\nimport { stack as d3Stack } from 'd3-shape';\nimport { Component } from '@semcore/core';\nimport getOriginChildren from '@semcore/utils/lib/getOriginChildren';\nimport createElement from './createElement';\nimport Area from './Area';\n\nimport style from './style/area.shadow.css';\n\nconst DEFAULT_INSTANCE = Symbol('DEFAULT_INSTANCE');\nconst Y0 = Symbol('Y0');\n\nclass StackedAreaRoot extends Component {\n static displayName = 'StackedArea';\n\n static style = style;\n\n static defaultProps = () => {\n const stack = d3Stack();\n stack[DEFAULT_INSTANCE] = true;\n return { stack };\n };\n\n getSeries() {\n const { Children, data, stack } = this.asProps;\n\n if (stack[DEFAULT_INSTANCE]) {\n const keys = React.Children.toArray(getOriginChildren(Children)).reduce((acc, child) => {\n if (React.isValidElement(child) && child.type === StackedArea.Area && !child.props.hide) {\n acc.push(child.props.y);\n }\n return acc;\n }, []);\n stack.keys(keys.reverse());\n }\n\n return stack(data);\n }\n\n getAreaProps({ y }) {\n const { x } = this.asProps;\n // or [] if hide area\n const series = this.series.find((s) => s.key === y) || [];\n return {\n data: series.map((s) => ({\n ...s.data,\n // if null is passed in the data, then we pass it, because d3 null leads to 0\n [y]: s.data[y] === null ? null : s[1],\n [Y0]: s[0],\n })),\n y0: Y0,\n x,\n };\n }\n\n render() {\n const Element = this.Element;\n this.series = this.getSeries();\n return <Element render=\"g\" series={this.series} />;\n }\n}\n\nconst StackedArea = createElement(StackedAreaRoot, { Area });\n\nexport default StackedArea;\n"],"file":"StackedArea.js"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Tooltip.js"],"names":["TooltipRoot","$visible","asProps","x","y","state","eventEmitter","rootRef","unsubscribeTooltipVisible","subscribe","visible","data","node","setState","CONSTANT","VIRTUAL_ELEMENT","current","contains","setPopperTrigger","popper","update","Children","children","tag","other","advanceMode","Tooltip","Trigger","displayName","Popper","handlerCancel","allowedAutoPlacements","setTrigger","Component","style","PopperPopper","props","STooltip","Element","styles","Title","STitle","Box","Dot","color","SDotGroup","SDot","Footer"],"mappings":"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","sourcesContent":["import React, { useCallback } from 'react';\nimport { Component, Root, sstyled } from '@semcore/core';\nimport Popper from '@semcore/popper';\nimport { Box } from '@semcore/flex-box';\nimport findComponent from '@semcore/utils/lib/findComponent';\nimport { CONSTANT } from './utils';\nimport createElement from './createElement';\nimport resolveColor from '@semcore/utils/lib/color';\n\nimport style from './style/tooltip.shadow.css';\n\nclass TooltipRoot extends Component {\n static displayName = 'Tooltip';\n\n static style = style;\n\n state = {\n $visible: false,\n };\n\n handlerCancel = () => false;\n\n getTriggerProps() {\n // TODO: как то убрать\n const { x, y } = this.asProps;\n return { x, y };\n }\n\n getPopperProps() {\n return {\n ...this.state,\n };\n }\n\n componentDidMount() {\n const { eventEmitter, rootRef } = this.asProps;\n this.unsubscribeTooltipVisible = eventEmitter.subscribe(\n 'onTooltipVisible',\n (visible, data, node) => {\n this.setState(\n {\n // TODO: тут бага если одно поля нету,то оно не перезапишет стейт\n ...data,\n $visible: visible,\n },\n () => {\n if (node && (node[CONSTANT.VIRTUAL_ELEMENT] || rootRef.current.contains(node))) {\n this?.setPopperTrigger(node);\n this.popper.current?.update();\n }\n },\n );\n },\n );\n }\n\n componentWillUnmount() {\n if (this.unsubscribeTooltipVisible) {\n this.unsubscribeTooltipVisible();\n }\n }\n\n render() {\n const { Children, children, tag, ...other } = this.asProps;\n\n const advanceMode = !!findComponent(Children, [\n Tooltip.Trigger.displayName,\n Tooltip.Popper.displayName,\n ]);\n return (\n <Root\n render={Popper}\n visible={this.state.$visible}\n onFirstUpdate={this.handlerCancel}\n onOutsideClick={this.handlerCancel}\n interaction=\"none\"\n offset={8}\n flip={{ allowedAutoPlacements: ['left', 'right'] }}\n >\n {({ popper, setTrigger }) => {\n this.setPopperTrigger = setTrigger;\n this.popper = popper;\n this.popper.current?.update();\n return advanceMode ? (\n <Children />\n ) : (\n <>\n {tag && <Tooltip.Trigger tag={tag} />}\n <Tooltip.Popper {...other}>{children}</Tooltip.Popper>\n </>\n );\n }}\n </Root>\n );\n }\n}\n\nfunction PopperPopper(props) {\n const { Element: STooltip, styles, $visible, x, y } = props;\n\n const handlerCancel = useCallback(() => false, []);\n\n if (!$visible) return null;\n\n return sstyled(styles)(\n <STooltip\n render={Popper.Popper}\n childrenPosition=\"inside\"\n onMouseMove={handlerCancel}\n x={x}\n y={y}\n />,\n );\n}\n\nfunction Title(props) {\n const STitle = Root;\n const { styles } = props;\n return sstyled(styles)(<STitle render={Box} __excludeProps={['data', 'scale']} />);\n}\n\nfunction Dot(props) {\n const { styles, color, Children } = props;\n const SDotGroup = Root;\n const SDot = Box;\n return sstyled(styles)(\n <SDotGroup render={Box}>\n <SDot __excludeProps={['data', 'scale']} color={resolveColor(color)} />\n <Children />\n </SDotGroup>,\n );\n}\n\nfunction Footer() {\n return null;\n}\n\nconst Tooltip = createElement(TooltipRoot, {\n Trigger: Popper.Trigger,\n Popper: PopperPopper,\n Title,\n Footer,\n Dot,\n});\n\nexport default Tooltip;\n"],"file":"Tooltip.js"}
1
+ {"version":3,"sources":["../../src/Tooltip.jsx"],"names":["TooltipRoot","$visible","asProps","x","y","state","eventEmitter","rootRef","unsubscribeTooltipVisible","subscribe","visible","data","node","setState","CONSTANT","VIRTUAL_ELEMENT","current","contains","setPopperTrigger","popper","update","Children","children","tag","other","advanceMode","Tooltip","Trigger","displayName","Popper","handlerCancel","allowedAutoPlacements","setTrigger","Component","style","PopperPopper","props","STooltip","Element","styles","Title","STitle","Box","Dot","color","SDotGroup","SDot","Footer"],"mappings":"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","sourcesContent":["import React, { useCallback } from 'react';\nimport { Component, Root, sstyled } from '@semcore/core';\nimport Popper from '@semcore/popper';\nimport { Box } from '@semcore/flex-box';\nimport findComponent from '@semcore/utils/lib/findComponent';\nimport { CONSTANT } from './utils';\nimport createElement from './createElement';\nimport resolveColor from '@semcore/utils/lib/color';\n\nimport style from './style/tooltip.shadow.css';\n\nclass TooltipRoot extends Component {\n static displayName = 'Tooltip';\n\n static style = style;\n\n state = {\n $visible: false,\n };\n\n handlerCancel = () => false;\n\n getTriggerProps() {\n // TODO: как то убрать\n const { x, y } = this.asProps;\n return { x, y };\n }\n\n getPopperProps() {\n return {\n ...this.state,\n };\n }\n\n componentDidMount() {\n const { eventEmitter, rootRef } = this.asProps;\n this.unsubscribeTooltipVisible = eventEmitter.subscribe(\n 'onTooltipVisible',\n (visible, data, node) => {\n this.setState(\n {\n // TODO: тут бага если одно поля нету,то оно не перезапишет стейт\n ...data,\n $visible: visible,\n },\n () => {\n if (node && (node[CONSTANT.VIRTUAL_ELEMENT] || rootRef.current.contains(node))) {\n this?.setPopperTrigger(node);\n this.popper.current?.update();\n }\n },\n );\n },\n );\n }\n\n componentWillUnmount() {\n if (this.unsubscribeTooltipVisible) {\n this.unsubscribeTooltipVisible();\n }\n }\n\n render() {\n const { Children, children, tag, ...other } = this.asProps;\n\n const advanceMode = !!findComponent(Children, [\n Tooltip.Trigger.displayName,\n Tooltip.Popper.displayName,\n ]);\n return (\n <Root\n render={Popper}\n visible={this.state.$visible}\n onFirstUpdate={this.handlerCancel}\n onOutsideClick={this.handlerCancel}\n interaction=\"none\"\n offset={8}\n flip={{ allowedAutoPlacements: ['left', 'right'] }}\n >\n {({ popper, setTrigger }) => {\n this.setPopperTrigger = setTrigger;\n this.popper = popper;\n this.popper.current?.update();\n return advanceMode ? (\n <Children />\n ) : (\n <>\n {tag && <Tooltip.Trigger tag={tag} />}\n <Tooltip.Popper {...other}>{children}</Tooltip.Popper>\n </>\n );\n }}\n </Root>\n );\n }\n}\n\nfunction PopperPopper(props) {\n const { Element: STooltip, styles, $visible, x, y } = props;\n\n const handlerCancel = useCallback(() => false, []);\n\n if (!$visible) return null;\n\n return sstyled(styles)(\n <STooltip\n render={Popper.Popper}\n childrenPosition=\"inside\"\n onMouseMove={handlerCancel}\n x={x}\n y={y}\n />,\n );\n}\n\nfunction Title(props) {\n const STitle = Root;\n const { styles } = props;\n return sstyled(styles)(<STitle render={Box} __excludeProps={['data', 'scale']} />);\n}\n\nfunction Dot(props) {\n const { styles, color, Children } = props;\n const SDotGroup = Root;\n const SDot = Box;\n return sstyled(styles)(\n <SDotGroup render={Box}>\n <SDot __excludeProps={['data', 'scale']} color={resolveColor(color)} />\n <Children />\n </SDotGroup>,\n );\n}\n\nfunction Footer() {\n return null;\n}\n\nconst Tooltip = createElement(TooltipRoot, {\n Trigger: Popper.Trigger,\n Popper: PopperPopper,\n Title,\n Footer,\n Dot,\n});\n\nexport default Tooltip;\n"],"file":"Tooltip.js"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Venn.js"],"names":["VennRoot","document","createElement","visible","props","x","clientX","y","clientY","eventEmitter","asProps","virtualElement","getBoundingClientRect","generateGetBoundingClientRect","CONSTANT","VIRTUAL_ELEMENT","emit","React","forwardRef","ref","width","height","top","right","bottom","left","data","orientation","orientationOrder","size","vennData","Object","entries","map","dataKey","sets","split","duration","onMouseMove","bindHandlerTooltip","onMouseLeave","dataKeys","delay","values","filter","d","includes","setid","Element","getVennData","renderElement","Component","style","Math","PI","c1","c2","radius","Circle","SCircle","styles","color","Intersection","SIntersection","renderIntersection","useCallback","Venn"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { venn, normalizeSolution, scaleSolution, intersectionAreaPath } from '@upsetjs/venn.js';\nimport { Component, sstyled } from '@semcore/core';\nimport canUseDOM from '@semcore/utils/lib/canUseDOM';\nimport { FadeInOut } from '@semcore/animation';\n\nimport createElement from './createElement';\nimport { CONSTANT } from './utils';\n\nimport style from './style/venn.shadow.css';\n\nclass VennRoot extends Component {\n static displayName = 'Venn';\n static style = style;\n\n static defaultProps = {\n orientation: Math.PI / 2,\n orientationOrder: (c1, c2) => c2.radius - c1.radius,\n duration: 500,\n };\n\n virtualElement = canUseDOM() ? document.createElement('div') : {};\n\n generateGetBoundingClientRect(x = 0, y = 0) {\n return () => ({ width: 0, height: 0, top: y, right: x, bottom: y, left: x });\n }\n\n bindHandlerTooltip = (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 getVennData() {\n const { data, orientation, orientationOrder, size } = this.asProps;\n const [width, height] = size;\n const vennData = Object.entries(data).map(([dataKey, size]) => ({\n sets: dataKey.split('/'),\n size,\n }));\n return scaleSolution(\n normalizeSolution(venn(vennData), orientation, orientationOrder),\n width,\n height,\n 10,\n );\n }\n\n getCircleProps(props) {\n return {\n duration: this.asProps.duration,\n data: this.vennData[props.dataKey],\n onMouseMove: this.bindHandlerTooltip(true, props),\n onMouseLeave: this.bindHandlerTooltip(false, props),\n };\n }\n\n getIntersectionProps(props) {\n const { duration } = this.asProps;\n const dataKeys = props.dataKey.split('/');\n return {\n duration,\n delay: duration,\n data: Object.values(this.vennData).filter((d) => dataKeys.includes(d.setid)),\n onMouseMove: this.bindHandlerTooltip(true, props),\n onMouseLeave: this.bindHandlerTooltip(false, props),\n };\n }\n\n renderElement = React.forwardRef((props, ref) => {\n return <FadeInOut ref={ref} tag=\"g\" visible {...props} />;\n });\n\n render() {\n const Element = this.Element;\n this.vennData = this.getVennData();\n return (\n <Element render={this.renderElement} childrenPosition=\"inside\" vennData={this.vennData} />\n );\n }\n}\n\nfunction Circle({ Element: SCircle, styles, color, data, duration }) {\n return sstyled(styles)(\n <SCircle\n render=\"circle\"\n color={color}\n cx={data.x}\n cy={data.y}\n r={data.radius}\n use:duration={`${duration}ms`}\n />,\n );\n}\n\nfunction Intersection(props) {\n const { Element: SIntersection, styles, data } = props;\n const renderIntersection = React.useCallback(\n React.forwardRef((props, ref) => {\n return <FadeInOut ref={ref} tag=\"path\" visible {...props} />;\n }),\n [props],\n );\n return sstyled(styles)(\n <SIntersection render={renderIntersection} d={intersectionAreaPath(data)} />,\n );\n}\n\nconst Venn = createElement(VennRoot, { Circle, Intersection });\n\nexport default Venn;\n"],"file":"Venn.js"}
1
+ {"version":3,"sources":["../../src/Venn.jsx"],"names":["VennRoot","document","createElement","visible","props","x","clientX","y","clientY","eventEmitter","asProps","virtualElement","getBoundingClientRect","generateGetBoundingClientRect","CONSTANT","VIRTUAL_ELEMENT","emit","React","forwardRef","ref","width","height","top","right","bottom","left","data","orientation","orientationOrder","size","vennData","Object","entries","map","dataKey","sets","split","duration","onMouseMove","bindHandlerTooltip","onMouseLeave","dataKeys","delay","values","filter","d","includes","setid","Element","getVennData","renderElement","Component","style","Math","PI","c1","c2","radius","Circle","SCircle","styles","color","Intersection","SIntersection","renderIntersection","useCallback","Venn"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { venn, normalizeSolution, scaleSolution, intersectionAreaPath } from '@upsetjs/venn.js';\nimport { Component, sstyled } from '@semcore/core';\nimport canUseDOM from '@semcore/utils/lib/canUseDOM';\nimport { FadeInOut } from '@semcore/animation';\n\nimport createElement from './createElement';\nimport { CONSTANT } from './utils';\n\nimport style from './style/venn.shadow.css';\n\nclass VennRoot extends Component {\n static displayName = 'Venn';\n static style = style;\n\n static defaultProps = {\n orientation: Math.PI / 2,\n orientationOrder: (c1, c2) => c2.radius - c1.radius,\n duration: 500,\n };\n\n virtualElement = canUseDOM() ? document.createElement('div') : {};\n\n generateGetBoundingClientRect(x = 0, y = 0) {\n return () => ({ width: 0, height: 0, top: y, right: x, bottom: y, left: x });\n }\n\n bindHandlerTooltip =\n (visible, props) =>\n ({ clientX: x, clientY: y }) => {\n const { eventEmitter } = this.asProps;\n this.virtualElement.getBoundingClientRect = this.generateGetBoundingClientRect(x, y);\n this.virtualElement[CONSTANT.VIRTUAL_ELEMENT] = true;\n eventEmitter.emit('onTooltipVisible', visible, props, this.virtualElement);\n };\n\n getVennData() {\n const { data, orientation, orientationOrder, size } = this.asProps;\n const [width, height] = size;\n const vennData = Object.entries(data).map(([dataKey, size]) => ({\n sets: dataKey.split('/'),\n size,\n }));\n return scaleSolution(\n normalizeSolution(venn(vennData), orientation, orientationOrder),\n width,\n height,\n 10,\n );\n }\n\n getCircleProps(props) {\n return {\n duration: this.asProps.duration,\n data: this.vennData[props.dataKey],\n onMouseMove: this.bindHandlerTooltip(true, props),\n onMouseLeave: this.bindHandlerTooltip(false, props),\n };\n }\n\n getIntersectionProps(props) {\n const { duration } = this.asProps;\n const dataKeys = props.dataKey.split('/');\n return {\n duration,\n delay: duration,\n data: Object.values(this.vennData).filter((d) => dataKeys.includes(d.setid)),\n onMouseMove: this.bindHandlerTooltip(true, props),\n onMouseLeave: this.bindHandlerTooltip(false, props),\n };\n }\n\n renderElement = React.forwardRef((props, ref) => {\n return <FadeInOut ref={ref} tag=\"g\" visible {...props} />;\n });\n\n render() {\n const Element = this.Element;\n this.vennData = this.getVennData();\n return (\n <Element render={this.renderElement} childrenPosition=\"inside\" vennData={this.vennData} />\n );\n }\n}\n\nfunction Circle({ Element: SCircle, styles, color, data, duration }) {\n return sstyled(styles)(\n <SCircle\n render=\"circle\"\n color={color}\n cx={data.x}\n cy={data.y}\n r={data.radius}\n use:duration={`${duration}ms`}\n />,\n );\n}\n\nfunction Intersection(props) {\n const { Element: SIntersection, styles, data } = props;\n const renderIntersection = React.useCallback(\n React.forwardRef((props, ref) => {\n return <FadeInOut ref={ref} tag=\"path\" visible {...props} />;\n }),\n [props],\n );\n return sstyled(styles)(\n <SIntersection render={renderIntersection} d={intersectionAreaPath(data)} />,\n );\n}\n\nconst Venn = createElement(VennRoot, { Circle, Intersection });\n\nexport default Venn;\n"],"file":"Venn.js"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/createElement.js"],"names":["createElementRender","Element","React","forwardRef","ref","render","tag","childrenPosition","xS","x","yS","y","source","props","_children","children","Children","mergedProps","Tag","_child","undefined","Error","__excludeProps","elementEnhancement","init","asProps","WrapperComponent","isFunction","$rootProps","WrapComponent","ElementWithContext","Plot","CONTEXT_COMPONENT","displayName","createElement","ElementRoot","child","options","enhancements","Object","keys","forEach","n"],"mappings":"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","sourcesContent":["import React, { useContext } from 'react';\nimport createComponent, { createBaseComponent, CONTEXT_COMPONENT } from '@semcore/core';\nimport Plot from './Plot';\nimport assignProps from '@semcore/utils/lib/assignProps';\nimport { useForkRef } from '@semcore/utils/lib/ref';\nimport propsForElement from '@semcore/utils/lib/propsForElement';\nimport getOriginChildren from '@semcore/utils/lib/getOriginChildren';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\n\nfunction createElementRender() {\n const Element = React.forwardRef(function (\n { render, tag, childrenPosition = 'below', x: xS, y: yS, ...source },\n ref,\n ) {\n const {\n forwardRef = null,\n children: _children,\n Children,\n x = xS,\n y = yS,\n ...props\n } = Element.props;\n let children = getOriginChildren(Children);\n\n let mergedProps = assignProps(\n {\n x: xS,\n y: yS,\n ...props,\n ref: useForkRef(forwardRef, ref),\n },\n {\n x,\n y,\n ...source,\n },\n );\n\n const Tag = typeof render === 'string' ? mergedProps.tag || render : render;\n\n if (typeof children === 'function') {\n const _child = mergedProps.children;\n mergedProps = assignProps(children(mergedProps), mergedProps);\n children = mergedProps.children;\n mergedProps.children = _child;\n }\n\n if (childrenPosition === 'inside') {\n mergedProps.children = children === undefined ? mergedProps.children : children;\n }\n\n if (!Tag) {\n throw new Error('В Element нужно передать render');\n }\n return [\n <React.Fragment key=\"child-above\">\n {childrenPosition === 'above' ? children : null}\n </React.Fragment>,\n <Tag\n {...propsForElement(\n {\n __excludeProps: ['data', 'scale'],\n ...mergedProps,\n },\n Tag,\n )}\n key=\"element\"\n />,\n <React.Fragment key=\"child-below\">\n {childrenPosition === 'below' ? children : null}\n </React.Fragment>,\n ];\n });\n\n Element.props = {};\n return Element;\n}\n\nfunction elementEnhancement() {\n return {\n init: function () {\n this.Element = createElementRender();\n },\n asProps: function ({ $rootProps, ...props }, WrapperComponent, isFunction) {\n if (isFunction) {\n return {\n ...$rootProps,\n ...props,\n Element: this.Element,\n };\n }\n return {\n ...$rootProps,\n ...props,\n };\n },\n render: function (render, props) {\n this.Element.props = props;\n return render;\n },\n };\n}\n\nfunction WrapComponent(Element) {\n function ElementWithContext(props, ref) {\n const { $rootProps } = useContext(Plot[CONTEXT_COMPONENT]);\n return <Element ref={ref} $rootProps={$rootProps} {...props} />;\n }\n\n ElementWithContext.displayName = Element.displayName;\n\n const WrapperComponent = createBaseComponent(ElementWithContext);\n WrapperComponent.displayName = Element.displayName;\n\n return hoistNonReactStatics(WrapperComponent, Element);\n}\n\nfunction createElement(ElementRoot, child = {}, options = {}) {\n const Element = createComponent(ElementRoot, child, {\n ...options,\n enhancements: [elementEnhancement],\n });\n\n Object.keys(child).forEach((n) => {\n Element[n] = WrapComponent(Element[n]);\n });\n\n return WrapComponent(Element);\n}\n\nexport default createElement;\n"],"file":"createElement.js"}
1
+ {"version":3,"sources":["../../src/createElement.jsx"],"names":["createElementRender","Element","React","forwardRef","ref","render","tag","childrenPosition","xS","x","yS","y","source","props","_children","children","Children","mergedProps","Tag","_child","undefined","Error","__excludeProps","elementEnhancement","init","asProps","WrapperComponent","isFunction","$rootProps","WrapComponent","ElementWithContext","Plot","CONTEXT_COMPONENT","displayName","createElement","ElementRoot","child","options","enhancements","Object","keys","forEach","n"],"mappings":"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","sourcesContent":["import React, { useContext } from 'react';\nimport createComponent, { createBaseComponent, CONTEXT_COMPONENT } from '@semcore/core';\nimport Plot from './Plot';\nimport assignProps from '@semcore/utils/lib/assignProps';\nimport { useForkRef } from '@semcore/utils/lib/ref';\nimport propsForElement from '@semcore/utils/lib/propsForElement';\nimport getOriginChildren from '@semcore/utils/lib/getOriginChildren';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\n\nfunction createElementRender() {\n const Element = React.forwardRef(function (\n { render, tag, childrenPosition = 'below', x: xS, y: yS, ...source },\n ref,\n ) {\n const {\n forwardRef = null,\n children: _children,\n Children,\n x = xS,\n y = yS,\n ...props\n } = Element.props;\n let children = getOriginChildren(Children);\n\n let mergedProps = assignProps(\n {\n x: xS,\n y: yS,\n ...props,\n ref: useForkRef(forwardRef, ref),\n },\n {\n x,\n y,\n ...source,\n },\n );\n\n const Tag = typeof render === 'string' ? mergedProps.tag || render : render;\n\n if (typeof children === 'function') {\n const _child = mergedProps.children;\n mergedProps = assignProps(children(mergedProps), mergedProps);\n children = mergedProps.children;\n mergedProps.children = _child;\n }\n\n if (childrenPosition === 'inside') {\n mergedProps.children = children === undefined ? mergedProps.children : children;\n }\n\n if (!Tag) {\n throw new Error('В Element нужно передать render');\n }\n return [\n <React.Fragment key=\"child-above\">\n {childrenPosition === 'above' ? children : null}\n </React.Fragment>,\n <Tag\n {...propsForElement(\n {\n __excludeProps: ['data', 'scale'],\n ...mergedProps,\n },\n Tag,\n )}\n key=\"element\"\n />,\n <React.Fragment key=\"child-below\">\n {childrenPosition === 'below' ? children : null}\n </React.Fragment>,\n ];\n });\n\n Element.props = {};\n return Element;\n}\n\nfunction elementEnhancement() {\n return {\n init: function () {\n this.Element = createElementRender();\n },\n asProps: function ({ $rootProps, ...props }, WrapperComponent, isFunction) {\n if (isFunction) {\n return {\n ...$rootProps,\n ...props,\n Element: this.Element,\n };\n }\n return {\n ...$rootProps,\n ...props,\n };\n },\n render: function (render, props) {\n this.Element.props = props;\n return render;\n },\n };\n}\n\nfunction WrapComponent(Element) {\n function ElementWithContext(props, ref) {\n const { $rootProps } = useContext(Plot[CONTEXT_COMPONENT]);\n return <Element ref={ref} $rootProps={$rootProps} {...props} />;\n }\n\n ElementWithContext.displayName = Element.displayName;\n\n const WrapperComponent = createBaseComponent(ElementWithContext);\n WrapperComponent.displayName = Element.displayName;\n\n return hoistNonReactStatics(WrapperComponent, Element);\n}\n\nfunction createElement(ElementRoot, child = {}, options = {}) {\n const Element = createComponent(ElementRoot, child, {\n ...options,\n enhancements: [elementEnhancement],\n });\n\n Object.keys(child).forEach((n) => {\n Element[n] = WrapComponent(Element[n]);\n });\n\n return WrapComponent(Element);\n}\n\nexport default createElement;\n"],"file":"createElement.js"}
@@ -1 +1 @@
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, scale }) => {\n const [xScale, yScale] = scale || $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 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"}
1
+ {"version":3,"sources":["../../src/Area.jsx"],"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":";;;;;;;;;;;;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,IAAT,EAAeC,WAAf,EAA4BC,IAA5B,QAAwC,UAAxC;AACA,OAAOC,IAAP,MAAiB,QAAjB;AACA,SAASC,SAAT,EAAoBC,OAApB,QAAmC,eAAnC;AACA,OAAOC,aAAP,MAA0B,iBAA1B;AACA,SAASC,WAAT,EAAsBC,gBAAtB,EAAwCC,WAAxC,EAAqDC,eAArD,QAA4E,SAA5E;AACA,OAAOC,QAAP,MAAqB,YAArB;AACA,OAAOC,mBAAP,MAAgC,6BAAhC;;;;;;;;;;;;;;;;;;;;;IAIMC,Q;;;;;;;;;;;;;WAyBJ,wBAAe;AACb,0BAAsC,KAAKC,OAA3C;AAAA,UAAQC,CAAR,iBAAQA,CAAR;AAAA,UAAWC,CAAX,iBAAWA,CAAX;AAAA,UAAcC,KAAd,iBAAcA,KAAd;AAAA,UAAqBC,IAArB,iBAAqBA,IAArB;AAAA,UAA2BC,MAA3B,iBAA2BA,MAA3B;AAEA,aAAO;AACLJ,QAAAA,CAAC,EAADA,CADK;AAELC,QAAAA,CAAC,EAADA,CAFK;AAGLE,QAAAA,IAAI,EAAJA,IAHK;AAILE,QAAAA,EAAE,EAAED,MAJC;AAKLF,QAAAA,KAAK,EAALA;AALK,OAAP;AAOD;;;WAED,wBAAe;AACb,2BAAsC,KAAKH,OAA3C;AAAA,UAAQC,CAAR,kBAAQA,CAAR;AAAA,UAAWC,CAAX,kBAAWA,CAAX;AAAA,UAAcC,KAAd,kBAAcA,KAAd;AAAA,UAAqBC,IAArB,kBAAqBA,IAArB;AAAA,UAA2BC,MAA3B,kBAA2BA,MAA3B;AACA,aAAO;AACLD,QAAAA,IAAI,EAAET,WAAW,CAACS,IAAD,EAAOR,eAAe,CAACK,CAAD,EAAIC,CAAJ,CAAtB,EAA8BA,CAA9B,CADZ;AAELI,QAAAA,EAAE,EAAED,MAFC;AAGLF,QAAAA,KAAK,EAALA;AAHK,OAAP;AAKD;;;WAED,kBAAS;AAAA;;AACP,UAAMI,KAAK,GAAG,KAAKC,OAAnB;AACA,UAAMC,SAAS,GAAG,MAAlB;AACA,2BAAuE,KAAKT,OAA5E;AAAA,UAAQU,MAAR,kBAAQA,MAAR;AAAA,UAAgBC,IAAhB,kBAAgBA,IAAhB;AAAA,UAAsBL,EAAtB,kBAAsBA,EAAtB;AAAA,UAA0BD,MAA1B,kBAA0BA,MAA1B;AAAA,UAAkCD,IAAlC,kBAAkCA,IAAlC;AAAA,UAAwCD,KAAxC,kBAAwCA,KAAxC;AAAA,UAA+CS,GAA/C,kBAA+CA,GAA/C;AAAA,UAAoDC,IAApD,kBAAoDA,IAApD;AAAA,UAA0DC,QAA1D,kBAA0DA,QAA1D;AACA,oBAAOvB,OAAO,CAACmB,MAAD,CAAd,eACE,uDACE,oBAAC,SAAD;AAAA,mCACoBE,GADpB;AAAA,aAEKP,MAAM,CAACD,IAAD,CAFX;AAAA,iBAGSD,KAHT;AAAA,kCAImBW,QAJnB;AAAA,SADF,eAOE,oBAAC,KAAD;AAAA,mCACoBF,GADpB;AAAA,kBAES,MAFT;AAAA,aAGKN,EAAE,CAACF,IAAD,CAHP;AAAA,gBAIQO,IAJR;AAAA,iBAKSR,KALT;AAAA,kCAMmBW,QANnB;AAAA,SAPF,EAeGA,QAAQ,iBACP,oBAAC,QAAD;AAAA,2BACmB,yBAACC,IAAD,EAAU;AACzBA,UAAAA,IAAI,CAACC,YAAL,CAAkB,OAAlB,EAA2BH,IAAI,CAAC,CAAD,CAA/B;AACD,SAHH;AAAA,cAIMD,GAJN;AAAA,aAKI,GALJ;AAAA,aAMI,GANJ;AAAA,iBAOS,CAPT;AAAA,kBAQUC,IAAI,CAAC,CAAD,CARd;AAAA,sCASuBC,QATvB;AAAA,SAhBJ,CADF;AA+BD;;;;EAjFoBxB,S;;gBAAjBS,Q,iBACiB,M;;gBADjBA,Q,WAEWkB,K;;gBAFXlB,Q,aAGa,CAACD,mBAAmB,EAApB,C;;gBAHbC,Q,kBAKkB,iBAA0D;AAAA,MAAvDE,CAAuD,SAAvDA,CAAuD;AAAA,MAApDC,CAAoD,SAApDA,CAAoD;AAAA,MAAjDgB,EAAiD,SAAjDA,EAAiD;AAAA,MAA7CC,UAA6C,SAA7CA,UAA6C;AAAA,0BAAjCC,KAAiC;AAAA,MAAjCA,KAAiC,4BAAzBjC,WAAyB;AAAA,MAAZkC,KAAY,SAAZA,KAAY;;AAC9E,cAAyBA,KAAK,IAAIF,UAAU,CAACE,KAA7C;AAAA;AAAA,MAAOC,MAAP;AAAA,MAAeC,MAAf;;AACA,MAAMC,MAAM,GAAGD,MAAM,CAACE,KAAP,EAAf;AAEA,SAAO;AACLnB,IAAAA,EAAE,EAAEpB,IAAI,GACLwC,OADC,CACOjC,WAAW,CAACQ,CAAD,EAAIC,CAAJ,CADlB,EAEDkB,KAFC,CAEKA,KAFL,EAGDnB,CAHC,CAGC,UAAC0B,CAAD;AAAA,aAAOjC,gBAAgB,CAAC4B,MAAD,EAASK,CAAC,CAAC1B,CAAD,CAAV,CAAvB;AAAA,KAHD,EAIDiB,EAJC,CAIE,UAACS,CAAD;AAAA,aAAQA,CAAC,CAACT,EAAD,CAAD,GAAQxB,gBAAgB,CAAC6B,MAAD,EAASI,CAAC,CAACT,EAAD,CAAV,CAAxB,GAA0CM,MAAM,CAAC,CAAD,CAAxD;AAAA,KAJF,EAKDI,EALC,CAKE,UAACD,CAAD;AAAA,aAAOjC,gBAAgB,CAAC6B,MAAD,EAASI,CAAC,CAACzB,CAAD,CAAV,CAAvB;AAAA,KALF,CADC;AAOLG,IAAAA,MAAM,EAAEjB,IAAI,GACTsC,OADK,CACGjC,WAAW,CAACQ,CAAD,EAAIC,CAAJ,CADd,EAELkB,KAFK,CAECA,KAFD,EAGLnB,CAHK,CAGH,UAAC0B,CAAD;AAAA,aAAOjC,gBAAgB,CAAC4B,MAAD,EAASK,CAAC,CAAC1B,CAAD,CAAV,CAAvB;AAAA,KAHG,EAILC,CAJK,CAIH,UAACyB,CAAD;AAAA,aAAOjC,gBAAgB,CAAC6B,MAAD,EAASI,CAAC,CAACzB,CAAD,CAAV,CAAvB;AAAA,KAJG,CAPH;AAYLY,IAAAA,QAAQ,EAAE;AAZL,GAAP;AAcD,C;;AA6DH,SAASe,IAAT,CAAcC,KAAd,EAAqB;AAAA;;AACnB,MAAiBC,KAAjB,GAA0DD,KAA1D,CAAQtB,OAAR;AAAA,MAAwBE,MAAxB,GAA0DoB,KAA1D,CAAwBpB,MAAxB;AAAA,MAAgCJ,EAAhC,GAA0DwB,KAA1D,CAAgCxB,EAAhC;AAAA,MAAoCF,IAApC,GAA0D0B,KAA1D,CAAoC1B,IAApC;AAAA,MAA0CO,IAA1C,GAA0DmB,KAA1D,CAA0CnB,IAA1C;AAAA,MAAgDR,KAAhD,GAA0D2B,KAA1D,CAAgD3B,KAAhD;AACA,iBAAOZ,OAAO,CAACmB,MAAD,CAAd,eAAuB,oBAAC,KAAD;AAAA,cAAc,MAAd;AAAA,SAAwBJ,EAAE,CAACF,IAAD,CAA1B;AAAA,YAAwCO,IAAxC;AAAA,aAAqDR;AAArD,KAAvB;AACD;;AAED,eAAeX,aAAa,CAACO,QAAD,EAAW;AACrCV,EAAAA,IAAI,EAAJA,IADqC;AAErCwC,EAAAA,IAAI,EAAJA;AAFqC,CAAX,CAA5B","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, scale }) => {\n const [xScale, yScale] = scale || $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 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"}