@pie-lib/graphing 2.11.3-next.52 → 2.11.5-next.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +16 -0
- package/lib/axis/arrow.js.map +1 -1
- package/lib/axis/axes.js.map +1 -1
- package/lib/bg.js.map +1 -1
- package/lib/container/actions.js.map +1 -1
- package/lib/container/index.js.map +1 -1
- package/lib/coordinates-label.js.map +1 -1
- package/lib/graph-with-controls.js.map +1 -1
- package/lib/graph.js.map +1 -1
- package/lib/grid-setup.js.map +1 -1
- package/lib/grid.js.map +1 -1
- package/lib/labels.js.map +1 -1
- package/lib/mark-label.js.map +1 -1
- package/lib/toggle-bar.js.map +1 -1
- package/lib/tool-menu.js.map +1 -1
- package/lib/tools/circle/bg-circle.js.map +1 -1
- package/lib/tools/circle/component.js.map +1 -1
- package/lib/tools/circle/index.js.map +1 -1
- package/lib/tools/index.js.map +1 -1
- package/lib/tools/line/component.js.map +1 -1
- package/lib/tools/parabola/component.js.map +1 -1
- package/lib/tools/parabola/index.js.map +1 -1
- package/lib/tools/point/component.js.map +1 -1
- package/lib/tools/point/index.js.map +1 -1
- package/lib/tools/polygon/component.js.map +1 -1
- package/lib/tools/polygon/index.js.map +1 -1
- package/lib/tools/polygon/line.js.map +1 -1
- package/lib/tools/polygon/polygon.js.map +1 -1
- package/lib/tools/ray/component.js.map +1 -1
- package/lib/tools/segment/component.js.map +1 -1
- package/lib/tools/shared/arrow-head.js.map +1 -1
- package/lib/tools/shared/line/index.js.map +1 -1
- package/lib/tools/shared/line/line-path.js.map +1 -1
- package/lib/tools/shared/line/with-root-edge.js.map +1 -1
- package/lib/tools/shared/point/arrow-point.js.map +1 -1
- package/lib/tools/shared/point/arrow.js.map +1 -1
- package/lib/tools/shared/point/base-point.js.map +1 -1
- package/lib/tools/shared/point/index.js.map +1 -1
- package/lib/tools/shared/styles.js.map +1 -1
- package/lib/tools/shared/types.js.map +1 -1
- package/lib/tools/sine/component.js.map +1 -1
- package/lib/tools/sine/index.js.map +1 -1
- package/lib/tools/vector/component.js.map +1 -1
- package/lib/undo-redo.js.map +1 -1
- package/lib/utils.js.map +1 -1
- package/package.json +6 -6
- package/src/axis/arrow.jsx +4 -4
- package/src/axis/axes.jsx +34 -56
- package/src/bg.jsx +3 -11
- package/src/container/actions.js +3 -3
- package/src/container/index.jsx +7 -7
- package/src/coordinates-label.jsx +8 -8
- package/src/graph-with-controls.jsx +30 -41
- package/src/graph.jsx +20 -22
- package/src/grid-setup.jsx +37 -64
- package/src/grid.jsx +17 -19
- package/src/labels.jsx +20 -20
- package/src/mark-label.jsx +13 -13
- package/src/toggle-bar.jsx +28 -30
- package/src/tool-menu.jsx +7 -12
- package/src/tools/circle/bg-circle.jsx +11 -26
- package/src/tools/circle/component.jsx +25 -25
- package/src/tools/circle/index.js +2 -2
- package/src/tools/index.js +2 -23
- package/src/tools/line/component.jsx +5 -10
- package/src/tools/parabola/component.jsx +2 -9
- package/src/tools/parabola/index.js +2 -2
- package/src/tools/point/component.jsx +5 -5
- package/src/tools/point/index.js +3 -3
- package/src/tools/polygon/component.jsx +18 -34
- package/src/tools/polygon/index.js +3 -3
- package/src/tools/polygon/line.jsx +10 -15
- package/src/tools/polygon/polygon.jsx +16 -25
- package/src/tools/ray/component.jsx +5 -10
- package/src/tools/segment/component.jsx +5 -10
- package/src/tools/shared/arrow-head.jsx +4 -4
- package/src/tools/shared/line/index.jsx +30 -31
- package/src/tools/shared/line/line-path.jsx +13 -29
- package/src/tools/shared/line/with-root-edge.jsx +14 -25
- package/src/tools/shared/point/arrow-point.jsx +6 -25
- package/src/tools/shared/point/arrow.jsx +3 -21
- package/src/tools/shared/point/base-point.jsx +3 -11
- package/src/tools/shared/point/index.jsx +11 -11
- package/src/tools/shared/styles.js +3 -3
- package/src/tools/shared/types.js +1 -1
- package/src/tools/sine/component.jsx +2 -2
- package/src/tools/sine/index.js +2 -2
- package/src/tools/vector/component.jsx +5 -10
- package/src/undo-redo.jsx +6 -6
- package/src/utils.js +29 -38
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/tools/shared/point/index.jsx"],"names":["opts","bounds","props","domain","range","x","y","area","left","top","bottom","right","utils","anchorPoint","fromDelta","delta","point","add","styles","cursor","fill","color","secondary","disabled","correct","incorrect","BasePoint","RawBp","ArrowPoint","RawArrow","Arrow","BaseArrow"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;AAEA,IAAMA,IAAI,GAAG;AACXC,EAAAA,MAAM,EAAE,gBAACC,KAAD,QAA8B;AAAA,QAApBC,MAAoB,QAApBA,MAAoB;AAAA,QAAZC,KAAY,QAAZA,KAAY;AACpC,QAAQC,CAAR,GAAiBH,KAAjB,CAAQG,CAAR;AAAA,QAAWC,CAAX,GAAiBJ,KAAjB,CAAWI,CAAX;AACA,QAAMC,IAAI,GAAG;AAAEC,MAAAA,IAAI,EAAEH,CAAR;AAAWI,MAAAA,GAAG,EAAEH,CAAhB;AAAmBI,MAAAA,MAAM,EAAEJ,CAA3B;AAA8BK,MAAAA,KAAK,EAAEN;AAArC,KAAb;AAEA,WAAOO,KAAK,CAACX,MAAN,CAAaM,IAAb,EAAmBJ,MAAnB,EAA2BC,KAA3B,CAAP;AACD,GANU;AAOXS,EAAAA,WAAW,EAAE,
|
|
1
|
+
{"version":3,"sources":["../../../../src/tools/shared/point/index.jsx"],"names":["opts","bounds","props","domain","range","x","y","area","left","top","bottom","right","utils","anchorPoint","fromDelta","delta","point","add","styles","cursor","fill","color","secondary","disabled","correct","incorrect","BasePoint","RawBp","ArrowPoint","RawArrow","Arrow","BaseArrow"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;AAEA,IAAMA,IAAI,GAAG;AACXC,EAAAA,MAAM,EAAE,gBAACC,KAAD,QAA8B;AAAA,QAApBC,MAAoB,QAApBA,MAAoB;AAAA,QAAZC,KAAY,QAAZA,KAAY;AACpC,QAAQC,CAAR,GAAiBH,KAAjB,CAAQG,CAAR;AAAA,QAAWC,CAAX,GAAiBJ,KAAjB,CAAWI,CAAX;AACA,QAAMC,IAAI,GAAG;AAAEC,MAAAA,IAAI,EAAEH,CAAR;AAAWI,MAAAA,GAAG,EAAEH,CAAhB;AAAmBI,MAAAA,MAAM,EAAEJ,CAA3B;AAA8BK,MAAAA,KAAK,EAAEN;AAArC,KAAb;AAEA,WAAOO,KAAK,CAACX,MAAN,CAAaM,IAAb,EAAmBJ,MAAnB,EAA2BC,KAA3B,CAAP;AACD,GANU;AAOXS,EAAAA,WAAW,EAAE,qBAACX,KAAD,EAAW;AACtB,QAAQG,CAAR,GAAiBH,KAAjB,CAAQG,CAAR;AAAA,QAAWC,CAAX,GAAiBJ,KAAjB,CAAWI,CAAX;AAEA,WAAO;AAAED,MAAAA,CAAC,EAADA,CAAF;AAAKC,MAAAA,CAAC,EAADA;AAAL,KAAP;AACD,GAXU;AAYXQ,EAAAA,SAAS,EAAE,mBAACZ,KAAD,EAAQa,KAAR,EAAkB;AAC3B,WAAOH,KAAK,CAACI,KAAN,CAAYd,KAAZ,EAAmBe,GAAnB,CAAuBL,KAAK,CAACI,KAAN,CAAYD,KAAZ,CAAvB,CAAP;AACD;AAdU,CAAb;;AAiBA,IAAMG,MAAM,GAAG,SAATA,MAAS,GAAM;AACnB,SAAO;AACLF,IAAAA,KAAK,EAAE;AACL,6BAAuB;AACrBG,QAAAA,MAAM,EAAE,SADa;AAErBC,QAAAA,IAAI,EAAEC,gBAAMC,SAAN;AAFe;AADlB,KADF;AAOLC,IAAAA,QAAQ,EAAE;AACR,+CACK,uBADL;AADQ,KAPL;AAYLC,IAAAA,OAAO,EAAE;AACP,+CACK,sBADL;AADO,KAZJ;AAiBLC,IAAAA,SAAS,EAAE;AACT,+CACK,wBADL;AADS;AAjBN,GAAP;AAuBD,CAxBD;;AA0BO,IAAMC,SAAS,GAAG,uBAAWR,MAAX,EAAmB,yBAAclB,IAAd,EAAoB2B,gBAApB,CAAnB,CAAlB;;AACA,IAAMC,UAAU,GAAG,uBAAWV,MAAX,EAAmB,yBAAclB,IAAd,EAAoB6B,oBAApB,CAAnB,CAAnB;;AACA,IAAMC,KAAK,GAAG,uBAAWZ,MAAX,EAAmB,yBAAclB,IAAd,EAAoB+B,iBAApB,CAAnB,CAAd","sourcesContent":["import { withStyles } from '@material-ui/core/styles/index';\nimport { gridDraggable } from '@pie-lib/plot';\nimport * as utils from '../../../utils';\nimport { disabled, correct, incorrect } from '../styles';\nimport { RawBp } from './base-point';\nimport { RawArrow } from './arrow-point';\nimport { color } from '@pie-lib/render-ui';\nimport BaseArrow from './arrow';\n\nconst opts = {\n bounds: (props, { domain, range }) => {\n const { x, y } = props;\n const area = { left: x, top: y, bottom: y, right: x };\n\n return utils.bounds(area, domain, range);\n },\n anchorPoint: (props) => {\n const { x, y } = props;\n\n return { x, y };\n },\n fromDelta: (props, delta) => {\n return utils.point(props).add(utils.point(delta));\n },\n};\n\nconst styles = () => {\n return {\n point: {\n '& circle, & polygon': {\n cursor: 'pointer',\n fill: color.secondary(),\n },\n },\n disabled: {\n '& circle, & polygon': {\n ...disabled(),\n },\n },\n correct: {\n '& circle, & polygon': {\n ...correct(),\n },\n },\n incorrect: {\n '& circle, & polygon': {\n ...incorrect(),\n },\n },\n };\n};\n\nexport const BasePoint = withStyles(styles)(gridDraggable(opts)(RawBp));\nexport const ArrowPoint = withStyles(styles)(gridDraggable(opts)(RawArrow));\nexport const Arrow = withStyles(styles)(gridDraggable(opts)(BaseArrow));\n"],"file":"index.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/tools/shared/styles.js"],"names":["disabled","key","color","correct","incorrect"],"mappings":";;;;;;;;;;;AAAA;;AAEO,IAAMA,QAAQ,GAAG,SAAXA,QAAW;AAAA;;AAAA,MAACC,GAAD,uEAAO,MAAP;AAAA,2DACrBA,GADqB,EACfC,gBAAMF,QAAN,EADe,2DAEP,MAFO;AAAA,CAAjB;;;;AAKA,IAAMG,OAAO,GAAG,SAAVA,OAAU;AAAA;;AAAA,MAACF,GAAD,uEAAO,MAAP;AAAA,6DACpBA,GADoB,EACdC,gBAAMC,OAAN,EADc,4DAEN,MAFM;AAAA,CAAhB;;;;AAIA,IAAMC,SAAS,GAAG,SAAZA,SAAY;AAAA;;AAAA,MAACH,GAAD,uEAAO,MAAP;AAAA,6DACtBA,GADsB,EAChBC,gBAAME,SAAN,EADgB,4DAER,MAFQ;AAAA,CAAlB","sourcesContent":["import { color } from '@pie-lib/render-ui';\n\nexport const disabled = (key = 'fill') => ({\n [key]: color.disabled(),\n pointerEvents: 'none'
|
|
1
|
+
{"version":3,"sources":["../../../src/tools/shared/styles.js"],"names":["disabled","key","color","correct","incorrect"],"mappings":";;;;;;;;;;;AAAA;;AAEO,IAAMA,QAAQ,GAAG,SAAXA,QAAW;AAAA;;AAAA,MAACC,GAAD,uEAAO,MAAP;AAAA,2DACrBA,GADqB,EACfC,gBAAMF,QAAN,EADe,2DAEP,MAFO;AAAA,CAAjB;;;;AAKA,IAAMG,OAAO,GAAG,SAAVA,OAAU;AAAA;;AAAA,MAACF,GAAD,uEAAO,MAAP;AAAA,6DACpBA,GADoB,EACdC,gBAAMC,OAAN,EADc,4DAEN,MAFM;AAAA,CAAhB;;;;AAIA,IAAMC,SAAS,GAAG,SAAZA,SAAY;AAAA;;AAAA,MAACH,GAAD,uEAAO,MAAP;AAAA,6DACtBA,GADsB,EAChBC,gBAAME,SAAN,EADgB,4DAER,MAFQ;AAAA,CAAlB","sourcesContent":["import { color } from '@pie-lib/render-ui';\n\nexport const disabled = (key = 'fill') => ({\n [key]: color.disabled(),\n pointerEvents: 'none',\n});\n\nexport const correct = (key = 'fill') => ({\n [key]: color.correct(),\n pointerEvents: 'none',\n});\nexport const incorrect = (key = 'fill') => ({\n [key]: color.incorrect(),\n pointerEvents: 'none',\n});\n"],"file":"styles.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/tools/shared/types.js"],"names":["ToolPropTypeFields","mark","PropTypes","any","onChange","func","onDragStart","onDragStop","ToolPropType","shape"],"mappings":";;;;;;;;;AAAA;;AAEO,IAAMA,kBAAkB,GAAG;AAChCC,EAAAA,IAAI,EAAEC,sBAAUC,GADgB;AAEhCC,EAAAA,QAAQ,EAAEF,sBAAUG,IAFY;AAGhCC,EAAAA,WAAW,EAAEJ,sBAAUG,IAHS;AAIhCE,EAAAA,UAAU,EAAEL,sBAAUG;AAJU,CAA3B;;;AAOA,IAAMG,YAAY,GAAGN,sBAAUO,KAAV,CAAgBT,kBAAhB,CAArB","sourcesContent":["import PropTypes from 'prop-types';\n\nexport const ToolPropTypeFields = {\n mark: PropTypes.any,\n onChange: PropTypes.func,\n onDragStart: PropTypes.func,\n onDragStop: PropTypes.func
|
|
1
|
+
{"version":3,"sources":["../../../src/tools/shared/types.js"],"names":["ToolPropTypeFields","mark","PropTypes","any","onChange","func","onDragStart","onDragStop","ToolPropType","shape"],"mappings":";;;;;;;;;AAAA;;AAEO,IAAMA,kBAAkB,GAAG;AAChCC,EAAAA,IAAI,EAAEC,sBAAUC,GADgB;AAEhCC,EAAAA,QAAQ,EAAEF,sBAAUG,IAFY;AAGhCC,EAAAA,WAAW,EAAEJ,sBAAUG,IAHS;AAIhCE,EAAAA,UAAU,EAAEL,sBAAUG;AAJU,CAA3B;;;AAOA,IAAMG,YAAY,GAAGN,sBAAUO,KAAV,CAAgBT,kBAAhB,CAArB","sourcesContent":["import PropTypes from 'prop-types';\n\nexport const ToolPropTypeFields = {\n mark: PropTypes.any,\n onChange: PropTypes.func,\n onDragStart: PropTypes.func,\n onDragStop: PropTypes.func,\n};\n\nexport const ToolPropType = PropTypes.shape(ToolPropTypeFields);\n"],"file":"types.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/tools/sine/component.jsx"],"names":["log","Sine","props","domain","graphProps","root","edge","amplitude","freq","interval","FREQ_DIVIDER","dataPoints","x","min","max","phase","vertical","y","Component"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AAEA,IAAMA,GAAG,GAAG,uBAAM,uBAAN,CAAZ;AAEAA,GAAG,CAAC,SAAD,CAAH;AAEA,IAAMC,IAAI,GAAG,gCAAa,
|
|
1
|
+
{"version":3,"sources":["../../../src/tools/sine/component.jsx"],"names":["log","Sine","props","domain","graphProps","root","edge","amplitude","freq","interval","FREQ_DIVIDER","dataPoints","x","min","max","phase","vertical","y","Component"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AAEA,IAAMA,GAAG,GAAG,uBAAM,uBAAN,CAAZ;AAEAA,GAAG,CAAC,SAAD,CAAH;AAEA,IAAMC,IAAI,GAAG,gCAAa,UAACC,KAAD,EAAW;AACnC,MAAQC,MAAR,GAAmBD,KAAK,CAACE,UAAzB,CAAQD,MAAR;AAEA,MAAQE,IAAR,GAAuBH,KAAvB,CAAQG,IAAR;AAAA,MAAcC,IAAd,GAAuBJ,KAAvB,CAAcI,IAAd;;AACA,6BAA4B,wCAAoBD,IAApB,EAA0BC,IAA1B,CAA5B;AAAA,MAAQC,SAAR,wBAAQA,SAAR;AAAA,MAAmBC,IAAnB,wBAAmBA,IAAnB;;AACA,MAAMC,QAAQ,GAAGD,IAAI,GAAGE,2BAAxB;AACAV,EAAAA,GAAG,CAAC,wBAAD,EAA2BO,SAA3B,EAAsC,OAAtC,EAA+CC,IAA/C,CAAH;AAEA,MAAMG,UAAU,GACdL,IAAI,IAAIA,IAAI,CAACM,CAAL,KAAWP,IAAI,CAACO,CAAxB,GACI,EADJ,GAEI,oCACET,MAAM,CAACU,GADT,EAEEV,MAAM,CAACW,GAFT,EAGET,IAHF,EAIEC,IAJF,EAKEG,QALF,EAME,yBAAKF,SAAL,EAAgBC,IAAhB,EAAsB;AAAEO,IAAAA,KAAK,EAAEV,IAAI,CAACO,CAAd;AAAiBI,IAAAA,QAAQ,EAAEX,IAAI,CAACY;AAAhC,GAAtB,CANF,CAHN;AAWA,SAAO;AAAEZ,IAAAA,IAAI,EAAEH,KAAK,CAACG,IAAd;AAAoBC,IAAAA,IAAI,EAAEJ,KAAK,CAACI,IAAhC;AAAsCK,IAAAA,UAAU,EAAVA;AAAtC,GAAP;AACD,CApBY,CAAb;AAsBA,IAAMO,SAAS,GAAG,qCAAkBjB,IAAlB,CAAlB;eACeiB,S","sourcesContent":["import debug from 'debug';\nimport { sinY, buildDataPoints, getAmplitudeAndFreq, FREQ_DIVIDER } from '@pie-lib/graphing-utils';\nimport { withRootEdge, rootEdgeComponent } from '../shared/line/with-root-edge';\n\nconst log = debug('pie-lib:graphing:sine');\n\nlog('sine...');\n\nconst Sine = withRootEdge((props) => {\n const { domain } = props.graphProps;\n\n const { root, edge } = props;\n const { amplitude, freq } = getAmplitudeAndFreq(root, edge);\n const interval = freq / FREQ_DIVIDER;\n log('[getPoints] amplitude:', amplitude, 'freq:', freq);\n\n const dataPoints =\n edge && edge.x === root.x\n ? []\n : buildDataPoints(\n domain.min,\n domain.max,\n root,\n edge,\n interval,\n sinY(amplitude, freq, { phase: root.x, vertical: root.y }),\n );\n return { root: props.root, edge: props.edge, dataPoints };\n});\n\nconst Component = rootEdgeComponent(Sine);\nexport default Component;\n"],"file":"component.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/tools/sine/index.js"],"names":["log","tool","type","Component","Sine","complete","data","mark","building","closed","addPoint","point","root","edge","undefined","Error"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;AAEA,IAAMA,GAAG,GAAG,uBAAM,uBAAN,CAAZ;;AAEO,IAAMC,IAAI,GAAG,SAAPA,IAAO;AAAA,SAAO;AACzBC,IAAAA,IAAI,EAAE,MADmB;AAEzBC,IAAAA,SAAS,EAAEC,qBAFc;AAGzBC,IAAAA,QAAQ,EAAE,kBAACC,IAAD,EAAOC,IAAP,EAAgB;AACxB,6CAAYA,IAAZ;AAAkBC,QAAAA,QAAQ,EAAE,KAA5B;AAAmCC,QAAAA,MAAM,EAAE;AAA3C;AACD,KALwB;AAMzBC,IAAAA,QAAQ,EAAE,kBAACC,KAAD,EAAQJ,IAAR,EAAiB;AACzBP,MAAAA,GAAG,CAAC,2BAAD,EAA8BW,KAA9B,EAAqC,QAArC,EAA+CJ,IAA/C,CAAH;;AACA,UAAIA,IAAI,KAAK,wBAAYA,IAAI,CAACK,IAAjB,EAAuBD,KAAvB,KAAiC,qBAASJ,IAAI,CAACK,IAAd,EAAoBD,KAApB,CAAtC,CAAR,EAA2E;AACzE,eAAOJ,IAAP;AACD;;AAED,UAAI,CAACA,IAAL,EAAW;AACT,eAAO;AACLL,UAAAA,IAAI,EAAE,MADD;AAELU,UAAAA,IAAI,EAAED,KAFD;AAGLE,UAAAA,IAAI,EAAEC,SAHD;AAILL,UAAAA,MAAM,EAAE,KAJH;AAKLD,UAAAA,QAAQ,EAAE;AALL,SAAP;AAOD,OARD,MAQO,IAAID,IAAI,IAAI,CAACA,IAAI,CAACK,IAAlB,EAAwB;AAC7B,cAAM,IAAIG,KAAJ,CAAU,+BAAV,CAAN;AACD,OAFM,MAEA;AACL,+CAAYR,IAAZ;AAAkBM,UAAAA,IAAI,EAAEF,KAAxB;AAA+BF,UAAAA,MAAM,EAAE,IAAvC;AAA6CD,UAAAA,QAAQ,EAAE;AAAvD;AACD;AACF;AAzBwB,GAAP;AAAA,CAAb","sourcesContent":["import Sine from './component';\nimport debug from 'debug';\nimport { equalPoints, sameAxes } from '../../utils';\n\nconst log = debug('pie-lib:graphing:sine');\n\nexport const tool = () => ({\n type: 'sine',\n Component: Sine,\n complete: (data, mark) => {\n return { ...mark, building: false, closed: true };\n },\n addPoint: (point, mark) => {\n log('add point to sine model: ', point, 'mark: ', mark);\n if (mark && (equalPoints(mark.root, point) || sameAxes(mark.root, point))) {\n return mark;\n }\n\n if (!mark) {\n return {\n type: 'sine',\n root: point,\n edge: undefined,\n closed: false,\n building: true
|
|
1
|
+
{"version":3,"sources":["../../../src/tools/sine/index.js"],"names":["log","tool","type","Component","Sine","complete","data","mark","building","closed","addPoint","point","root","edge","undefined","Error"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;AAEA,IAAMA,GAAG,GAAG,uBAAM,uBAAN,CAAZ;;AAEO,IAAMC,IAAI,GAAG,SAAPA,IAAO;AAAA,SAAO;AACzBC,IAAAA,IAAI,EAAE,MADmB;AAEzBC,IAAAA,SAAS,EAAEC,qBAFc;AAGzBC,IAAAA,QAAQ,EAAE,kBAACC,IAAD,EAAOC,IAAP,EAAgB;AACxB,6CAAYA,IAAZ;AAAkBC,QAAAA,QAAQ,EAAE,KAA5B;AAAmCC,QAAAA,MAAM,EAAE;AAA3C;AACD,KALwB;AAMzBC,IAAAA,QAAQ,EAAE,kBAACC,KAAD,EAAQJ,IAAR,EAAiB;AACzBP,MAAAA,GAAG,CAAC,2BAAD,EAA8BW,KAA9B,EAAqC,QAArC,EAA+CJ,IAA/C,CAAH;;AACA,UAAIA,IAAI,KAAK,wBAAYA,IAAI,CAACK,IAAjB,EAAuBD,KAAvB,KAAiC,qBAASJ,IAAI,CAACK,IAAd,EAAoBD,KAApB,CAAtC,CAAR,EAA2E;AACzE,eAAOJ,IAAP;AACD;;AAED,UAAI,CAACA,IAAL,EAAW;AACT,eAAO;AACLL,UAAAA,IAAI,EAAE,MADD;AAELU,UAAAA,IAAI,EAAED,KAFD;AAGLE,UAAAA,IAAI,EAAEC,SAHD;AAILL,UAAAA,MAAM,EAAE,KAJH;AAKLD,UAAAA,QAAQ,EAAE;AALL,SAAP;AAOD,OARD,MAQO,IAAID,IAAI,IAAI,CAACA,IAAI,CAACK,IAAlB,EAAwB;AAC7B,cAAM,IAAIG,KAAJ,CAAU,+BAAV,CAAN;AACD,OAFM,MAEA;AACL,+CAAYR,IAAZ;AAAkBM,UAAAA,IAAI,EAAEF,KAAxB;AAA+BF,UAAAA,MAAM,EAAE,IAAvC;AAA6CD,UAAAA,QAAQ,EAAE;AAAvD;AACD;AACF;AAzBwB,GAAP;AAAA,CAAb","sourcesContent":["import Sine from './component';\nimport debug from 'debug';\nimport { equalPoints, sameAxes } from '../../utils';\n\nconst log = debug('pie-lib:graphing:sine');\n\nexport const tool = () => ({\n type: 'sine',\n Component: Sine,\n complete: (data, mark) => {\n return { ...mark, building: false, closed: true };\n },\n addPoint: (point, mark) => {\n log('add point to sine model: ', point, 'mark: ', mark);\n if (mark && (equalPoints(mark.root, point) || sameAxes(mark.root, point))) {\n return mark;\n }\n\n if (!mark) {\n return {\n type: 'sine',\n root: point,\n edge: undefined,\n closed: false,\n building: true,\n };\n } else if (mark && !mark.root) {\n throw new Error('no root - should never happen');\n } else {\n return { ...mark, edge: point, closed: true, building: false };\n }\n },\n});\n"],"file":"index.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/tools/vector/component.jsx"],"names":["lineStyles","theme","line","styles","disabled","correct","incorrect","Line","props","className","classes","correctness","scale","graphProps","from","to","rest","startPoint","x","y","endPoint","length","propTypes","PropTypes","string","object","bool","any","types","PointType","StyledLine","Vector","Arrow","Component"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;AAEA,IAAMA,UAAU,GAAG,SAAbA,UAAa,
|
|
1
|
+
{"version":3,"sources":["../../../src/tools/vector/component.jsx"],"names":["lineStyles","theme","line","styles","disabled","correct","incorrect","Line","props","className","classes","correctness","scale","graphProps","from","to","rest","startPoint","x","y","endPoint","length","propTypes","PropTypes","string","object","bool","any","types","PointType","StyledLine","Vector","Arrow","Component"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;AAEA,IAAMA,UAAU,GAAG,SAAbA,UAAa,CAACC,KAAD;AAAA,SAAY;AAC7BC,IAAAA,IAAI,EAAEC,aAAOD,IAAP,CAAYD,KAAZ,CADuB;AAE7BG,IAAAA,QAAQ,EAAED,aAAOC,QAAP,CAAgBH,KAAhB,CAFmB;AAG7BI,IAAAA,OAAO,EAAEF,aAAOE,OAAP,CAAeJ,KAAf,EAAsB,QAAtB,CAHoB;AAI7BK,IAAAA,SAAS,EAAEH,aAAOG,SAAP,CAAiBL,KAAjB,EAAwB,QAAxB;AAJkB,GAAZ;AAAA,CAAnB;;AAOO,IAAMM,IAAI,GAAG,SAAPA,IAAO,CAACC,KAAD,EAAW;AAC7B,MACEC,SADF,GASID,KATJ,CACEC,SADF;AAAA,MAEEC,OAFF,GASIF,KATJ,CAEEE,OAFF;AAAA,MAGEN,QAHF,GASII,KATJ,CAGEJ,QAHF;AAAA,MAIEO,WAJF,GASIH,KATJ,CAIEG,WAJF;AAAA,MAKgBC,KALhB,GASIJ,KATJ,CAKEK,UALF,CAKgBD,KALhB;AAAA,MAMEE,IANF,GASIN,KATJ,CAMEM,IANF;AAAA,MAOEC,EAPF,GASIP,KATJ,CAOEO,EAPF;AAAA,MAQKC,IARL,6CASIR,KATJ;AAUA,MAAMS,UAAU,GAAG;AAAEC,IAAAA,CAAC,EAAEN,KAAK,CAACM,CAAN,CAAQJ,IAAI,CAACI,CAAb,CAAL;AAAsBC,IAAAA,CAAC,EAAEP,KAAK,CAACO,CAAN,CAAQL,IAAI,CAACK,CAAb;AAAzB,GAAnB;AACA,MAAMC,QAAQ,GAAG;AAAEF,IAAAA,CAAC,EAAEN,KAAK,CAACM,CAAN,CAAQH,EAAE,CAACG,CAAX,CAAL;AAAoBC,IAAAA,CAAC,EAAEP,KAAK,CAACO,CAAN,CAAQJ,EAAE,CAACI,CAAX;AAAvB,GAAjB;AACA,MAAME,MAAM,GAAG,wCAA4BJ,UAA5B,EAAwCG,QAAxC,CAAf;AAEA,sBACE;AACE,IAAA,SAAS,EAAE,4BAAWV,OAAO,CAACR,IAAnB,EAAyBE,QAAQ,IAAIM,OAAO,CAACN,QAA7C,EAAuDM,OAAO,CAACC,WAAD,CAA9D,EAA6EF,SAA7E,CADb;AAEE,IAAA,EAAE,EAAEQ,UAAU,CAACC,CAFjB;AAGE,IAAA,EAAE,EAAED,UAAU,CAACE,CAHjB;AAIE,IAAA,EAAE,EAAEC,QAAQ,CAACF,CAJf;AAKE,IAAA,EAAE,EAAEE,QAAQ,CAACD,CALf;AAME,IAAA,eAAe,EAAEE,MAAM,GAAG;AAN5B,KAOML,IAPN,EADF;AAWD,CA1BM;;;AA4BPT,IAAI,CAACe,SAAL,GAAiB;AACfb,EAAAA,SAAS,EAAEc,sBAAUC,MADN;AAEfd,EAAAA,OAAO,EAAEa,sBAAUE,MAFJ;AAGfrB,EAAAA,QAAQ,EAAEmB,sBAAUG,IAHL;AAIff,EAAAA,WAAW,EAAEY,sBAAUC,MAJR;AAKfX,EAAAA,UAAU,EAAEU,sBAAUI,GALP;AAMfb,EAAAA,IAAI,EAAEc,YAAMC,SANG;AAOfd,EAAAA,EAAE,EAAEa,YAAMC;AAPK,CAAjB;AAUA,IAAMC,UAAU,GAAG,wBAAW9B,UAAX,EAAuBO,IAAvB,CAAnB;AACA,IAAMwB,MAAM,GAAG,oBAASD,UAAT,EAAqB;AAAEf,EAAAA,EAAE,EAAEiB;AAAN,CAArB,CAAf;AACA,IAAMC,SAAS,GAAG,6BAAkBF,MAAlB,CAAlB;eAEeE,S","sourcesContent":["import { lineToolComponent, lineBase, styles } from '../shared/line';\nimport { Arrow } from '../shared/point';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { types } from '@pie-lib/plot';\nimport classNames from 'classnames';\nimport { withStyles } from '@material-ui/core/styles';\nimport { getDistanceBetweenTwoPoints } from '../../utils';\n\nconst lineStyles = (theme) => ({\n line: styles.line(theme),\n disabled: styles.disabled(theme),\n correct: styles.correct(theme, 'stroke'),\n incorrect: styles.incorrect(theme, 'stroke'),\n});\n\nexport const Line = (props) => {\n const {\n className,\n classes,\n disabled,\n correctness,\n graphProps: { scale },\n from,\n to,\n ...rest\n } = props;\n const startPoint = { x: scale.x(from.x), y: scale.y(from.y) };\n const endPoint = { x: scale.x(to.x), y: scale.y(to.y) };\n const length = getDistanceBetweenTwoPoints(startPoint, endPoint);\n\n return (\n <line\n className={classNames(classes.line, disabled && classes.disabled, classes[correctness], className)}\n x1={startPoint.x}\n y1={startPoint.y}\n x2={endPoint.x}\n y2={endPoint.y}\n strokeDasharray={length - 7}\n {...rest}\n />\n );\n};\n\nLine.propTypes = {\n className: PropTypes.string,\n classes: PropTypes.object,\n disabled: PropTypes.bool,\n correctness: PropTypes.string,\n graphProps: PropTypes.any,\n from: types.PointType,\n to: types.PointType,\n};\n\nconst StyledLine = withStyles(lineStyles)(Line);\nconst Vector = lineBase(StyledLine, { to: Arrow });\nconst Component = lineToolComponent(Vector);\n\nexport default Component;\n"],"file":"component.js"}
|
package/lib/undo-redo.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/undo-redo.jsx"],"names":["UndoRedo","props","classes","className","onUndo","onRedo","onReset","root","button","React","Component","PropTypes","object","string","func","isRequired","styles","theme","color","text","backgroundColor","background","marginBottom","spacing","unit","marginRight","primary"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;IAEaA,Q;;;;;;;;;;;;WASX,kBAAS;AACP,wBAAwD,KAAKC,KAA7D;AAAA,UAAQC,OAAR,eAAQA,OAAR;AAAA,UAAiBC,SAAjB,eAAiBA,SAAjB;AAAA,UAA4BC,MAA5B,eAA4BA,MAA5B;AAAA,UAAoCC,MAApC,eAAoCA,MAApC;AAAA,UAA4CC,OAA5C,eAA4CA,OAA5C;AACA,0BACE;AAAK,QAAA,SAAS,EAAE,4BAAWH,SAAX;AAAhB,sBACE,gCAAC,kBAAD;AAAQ,QAAA,OAAO,EAAE;AAAEI,UAAAA,IAAI,EAAEL,OAAO,CAACM;AAAhB,SAAjB;AAA2C,QAAA,OAAO,EAAEJ;AAApD,gBADF,eAIE,gCAAC,kBAAD;AAAQ,QAAA,OAAO,EAAE;AAAEG,UAAAA,IAAI,EAAEL,OAAO,CAACM;AAAhB,SAAjB;AAA2C,QAAA,OAAO,EAAEH;AAApD,gBAJF,eAOE,gCAAC,kBAAD;AAAQ,QAAA,OAAO,EAAE;AAAEE,UAAAA,IAAI,EAAEL,OAAO,CAACM;AAAhB,SAAjB;AAA2C,QAAA,OAAO,EAAEF;AAApD,iBAPF,CADF;AAaD;;;EAxB2BG,kBAAMC,S;;;iCAAvBV,Q,eACQ;AACjBE,EAAAA,OAAO,EAAES,sBAAUC,MADF;AAEjBT,EAAAA,SAAS,EAAEQ,sBAAUE,MAFJ;AAGjBT,EAAAA,MAAM,EAAEO,sBAAUG,IAAV,CAAeC,UAHN;AAIjBV,EAAAA,MAAM,EAAEM,sBAAUG,IAAV,CAAeC,UAJN;AAKjBT,EAAAA,OAAO,EAAEK,sBAAUG,IAAV,CAAeC;AALP,C;iCADRf,Q,kBAQW,E;;AAmBxB,IAAMgB,MAAM,GAAG,SAATA,MAAS,
|
|
1
|
+
{"version":3,"sources":["../src/undo-redo.jsx"],"names":["UndoRedo","props","classes","className","onUndo","onRedo","onReset","root","button","React","Component","PropTypes","object","string","func","isRequired","styles","theme","color","text","backgroundColor","background","marginBottom","spacing","unit","marginRight","primary"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;IAEaA,Q;;;;;;;;;;;;WASX,kBAAS;AACP,wBAAwD,KAAKC,KAA7D;AAAA,UAAQC,OAAR,eAAQA,OAAR;AAAA,UAAiBC,SAAjB,eAAiBA,SAAjB;AAAA,UAA4BC,MAA5B,eAA4BA,MAA5B;AAAA,UAAoCC,MAApC,eAAoCA,MAApC;AAAA,UAA4CC,OAA5C,eAA4CA,OAA5C;AACA,0BACE;AAAK,QAAA,SAAS,EAAE,4BAAWH,SAAX;AAAhB,sBACE,gCAAC,kBAAD;AAAQ,QAAA,OAAO,EAAE;AAAEI,UAAAA,IAAI,EAAEL,OAAO,CAACM;AAAhB,SAAjB;AAA2C,QAAA,OAAO,EAAEJ;AAApD,gBADF,eAIE,gCAAC,kBAAD;AAAQ,QAAA,OAAO,EAAE;AAAEG,UAAAA,IAAI,EAAEL,OAAO,CAACM;AAAhB,SAAjB;AAA2C,QAAA,OAAO,EAAEH;AAApD,gBAJF,eAOE,gCAAC,kBAAD;AAAQ,QAAA,OAAO,EAAE;AAAEE,UAAAA,IAAI,EAAEL,OAAO,CAACM;AAAhB,SAAjB;AAA2C,QAAA,OAAO,EAAEF;AAApD,iBAPF,CADF;AAaD;;;EAxB2BG,kBAAMC,S;;;iCAAvBV,Q,eACQ;AACjBE,EAAAA,OAAO,EAAES,sBAAUC,MADF;AAEjBT,EAAAA,SAAS,EAAEQ,sBAAUE,MAFJ;AAGjBT,EAAAA,MAAM,EAAEO,sBAAUG,IAAV,CAAeC,UAHN;AAIjBV,EAAAA,MAAM,EAAEM,sBAAUG,IAAV,CAAeC,UAJN;AAKjBT,EAAAA,OAAO,EAAEK,sBAAUG,IAAV,CAAeC;AALP,C;iCADRf,Q,kBAQW,E;;AAmBxB,IAAMgB,MAAM,GAAG,SAATA,MAAS,CAACC,KAAD;AAAA,SAAY;AACzBT,IAAAA,MAAM,EAAE;AACNU,MAAAA,KAAK,EAAEA,gBAAMC,IAAN,EADD;AAENC,MAAAA,eAAe,EAAEF,gBAAMG,UAAN,EAFX;AAGNC,MAAAA,YAAY,EAAEL,KAAK,CAACM,OAAN,CAAcC,IAAd,GAAqB,CAH7B;AAIN,8BAAwB;AACtBC,QAAAA,WAAW,EAAER,KAAK,CAACM,OAAN,CAAcC,IAAd,GAAqB;AADZ,OAJlB;AAON,iBAAW;AACTJ,QAAAA,eAAe,EAAEF,gBAAMQ,OAAN;AADR;AAPL;AADiB,GAAZ;AAAA,CAAf;;eAce,sBAAWV,MAAX,EAAmBhB,QAAnB,C","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport Button from '@material-ui/core/Button';\nimport { withStyles } from '@material-ui/core';\nimport { color } from '@pie-lib/render-ui';\n\nexport class UndoRedo extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n className: PropTypes.string,\n onUndo: PropTypes.func.isRequired,\n onRedo: PropTypes.func.isRequired,\n onReset: PropTypes.func.isRequired,\n };\n static defaultProps = {};\n render() {\n const { classes, className, onUndo, onRedo, onReset } = this.props;\n return (\n <div className={classNames(className)}>\n <Button classes={{ root: classes.button }} onClick={onUndo}>\n Undo\n </Button>\n <Button classes={{ root: classes.button }} onClick={onRedo}>\n Redo\n </Button>\n <Button classes={{ root: classes.button }} onClick={onReset}>\n Reset\n </Button>\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n button: {\n color: color.text(),\n backgroundColor: color.background(),\n marginBottom: theme.spacing.unit / 2,\n '&:not(:last-of-type)': {\n marginRight: theme.spacing.unit / 2,\n },\n '&:hover': {\n backgroundColor: color.primary(),\n },\n },\n});\n\nexport default withStyles(styles)(UndoRedo);\n"],"file":"undo-redo.js"}
|
package/lib/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/utils.js"],"names":["tickCount","utils","bounds","point","getAngleDeg","arrowDimensions","getTickValues","prop","tickValues","tickVal","min","indexOf","push","Math","round","step","max","filter","tV","countWords","label","words","split","length","findLongestWord","longestWord","replace","sort","a","b","amountToIncreaseWidth","polygonToArea","points","h","area","left","x","top","y","bottom","right","reduce","p","lineToArea","from","to","pointsToArea","isDomainRangeEqual","graphProps","nextGraphProps","domain","range","getRightestPoints","sortedPoints","getMiddleOfTwoPoints","roundNumber","number","parseFloat","toFixed","sameAxes","p1","p2","equalPoints","getDistanceBetweenTicks","axis","size","nbOfTicks","thinnerShapesNeeded","width","height","getAdjustedGraphLimits","domainTicksDistance","rangeTicksDistance","domainPadding","rangePadding","getDistanceBetweenTwoPoints","sqrt","sortPoints","array","checkCollinearity","c","isSameLine","markA","markB","isSameCircle","root","edge","isDuplicatedMark","mark","marks","oldMark","type","building","filteredMarks","m","index","findIndex","splice","duplicated","find"],"mappings":"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","sourcesContent":["import head from 'lodash/head';\nimport tail from 'lodash/tail';\nimport { utils } from '@pie-lib/plot';\nimport invariant from 'invariant';\nimport isEqual from 'lodash/isEqual';\nimport isEmpty from 'lodash/isEmpty';\nimport cloneDeep from 'lodash/cloneDeep';\n\nexport const tickCount = utils.tickCount;\nexport const bounds = utils.bounds;\nexport const point = utils.point;\n\n//TODO: This can be removed?\nexport const getAngleDeg = () => 0;\n//TODO: This can be removed?\nexport const arrowDimensions = () => 0;\n\nexport const getTickValues = prop => {\n const tickValues = [];\n let tickVal = 0;\n\n while (tickVal >= prop.min && tickValues.indexOf(tickVal) < 0) {\n tickValues.push(tickVal);\n tickVal = Math.round((tickVal - prop.step) * 10000) / 10000;\n }\n\n tickVal = Math.round(prop.step * 10000) / 10000;\n\n while (tickVal <= prop.max && tickValues.indexOf(tickVal) < 0) {\n tickValues.push(tickVal);\n tickVal = Math.round((tickVal + prop.step) * 10000) / 10000;\n }\n\n // return only ticks that are inside the min-max interval\n if (tickValues) {\n return tickValues.filter(tV => tV >= prop.min && tV <= prop.max);\n }\n\n return [];\n};\n\nexport const countWords = label => {\n if (label == null || isEmpty(label)) {\n return 1;\n }\n\n const words = label.split(' ');\n return words.length;\n};\n\n// findLongestWord is also used in plot\nexport const findLongestWord = label => {\n let longestWord = (label || '')\n .replace(/<[^>]+>/g, '')\n .split(' ')\n .sort((a, b) => b.length - a.length);\n\n return longestWord[0].length;\n};\n\n// amountToIncreaseWidth is also used in plot\nexport const amountToIncreaseWidth = longestWord => {\n if (!longestWord) {\n return 0;\n }\n\n return longestWord * 10;\n};\n\nexport const polygonToArea = points => {\n const h = head(points);\n const area = {\n left: h.x,\n top: h.y,\n bottom: h.y,\n right: h.x\n };\n return tail(points).reduce((a, p) => {\n a.left = Math.min(a.left, p.x);\n a.top = Math.max(a.top, p.y);\n a.bottom = Math.min(a.bottom, p.y);\n a.right = Math.max(a.right, p.x);\n return a;\n }, area);\n};\n\nexport const lineToArea = (from, to) => pointsToArea(from, to);\n\nexport const pointsToArea = (a, b) => {\n invariant(!!a && !!b, 'a or b is undefined');\n const left = Math.min(a.x, b.x);\n const top = Math.max(a.y, b.y);\n const bottom = Math.min(a.y, b.y);\n const right = Math.max(a.x, b.x);\n return { left, top, bottom, right };\n};\n\nexport const isDomainRangeEqual = (graphProps, nextGraphProps) => {\n return (\n isEqual(graphProps.domain, nextGraphProps.domain) &&\n isEqual(graphProps.range, nextGraphProps.range)\n );\n};\n\nexport const getRightestPoints = points => {\n const sortedPoints = cloneDeep(points);\n sortedPoints.sort((a, b) => b.x - a.x);\n\n return { a: sortedPoints[0], b: sortedPoints[1] };\n};\n\nexport const getMiddleOfTwoPoints = (a, b) => ({\n x: (a.x + b.x) / 2,\n y: (a.y + b.y) / 2\n});\n\nexport const roundNumber = number => parseFloat(number.toFixed(4));\n\nexport const sameAxes = (p1, p2) =>\n p1 && p2 && (roundNumber(p1.x) === roundNumber(p2.x) || roundNumber(p1.y) === roundNumber(p2.y));\n\nexport const equalPoints = (p1, p2) =>\n p1 &&\n p2 &&\n isEqual(\n {\n x: roundNumber(p1.x),\n y: roundNumber(p1.y)\n },\n {\n x: roundNumber(p2.x),\n y: roundNumber(p2.y)\n }\n );\n\nconst getDistanceBetweenTicks = (axis, size) => {\n const { min, max, step } = axis;\n const nbOfTicks = (max - min) / step;\n\n return size / nbOfTicks;\n};\n\nexport const thinnerShapesNeeded = graphProps => {\n const {\n domain,\n range,\n size: { width, height }\n } = graphProps;\n\n // 14 is the default width of a point\n return getDistanceBetweenTicks(domain, width) < 14 || getDistanceBetweenTicks(range, height) < 14;\n};\n\nexport const getAdjustedGraphLimits = graphProps => {\n const {\n domain,\n range,\n size: { width, height }\n } = graphProps;\n const domainTicksDistance = getDistanceBetweenTicks(domain, width);\n const rangeTicksDistance = getDistanceBetweenTicks(range, height);\n\n // 15 is the distance required for the arrow to extend the graph\n const domainPadding = domain.step / (domainTicksDistance / 15);\n const rangePadding = range.step / (rangeTicksDistance / 15);\n\n return {\n domain: {\n min: domain.min - domainPadding,\n max: domain.max + domainPadding\n },\n range: {\n min: range.min - rangePadding,\n max: range.max + rangePadding\n }\n };\n};\n\nexport const getDistanceBetweenTwoPoints = (a, b) =>\n Math.sqrt((b.x - a.x) * (b.x - a.x) + (b.y - a.y) * (b.y - a.y));\n\nconst sortPoints = array => (array || []).sort((a, b) => a.x - b.x || a.y - b.y);\n\n// check colliniarity of 3 points (source: https://www.geeksforgeeks.org/program-check-three-points-collinear/)\nconst checkCollinearity = (a, b, c) => (a.x - b.x) * (c.y - b.y) === (c.x - b.x) * (a.y - b.y);\n\n// 2 lines are overlapping if all 4 points are collinear\nconst isSameLine = (markA, markB) =>\n checkCollinearity(markA.from, markB.from, markB.to) &&\n checkCollinearity(markA.to, markB.from, markB.to);\n\nconst isSameCircle = (markA, markB) =>\n equalPoints(markA.root, markB.root) &&\n getDistanceBetweenTwoPoints(markB.root, markB.edge) ===\n getDistanceBetweenTwoPoints(markA.root, markA.edge);\n\nexport const isDuplicatedMark = (mark, marks, oldMark) => {\n const { type, building } = mark;\n\n if (building) {\n return false;\n }\n\n const filteredMarks = (marks || []).filter(m => m.type === type && !m.building);\n const index = filteredMarks.findIndex(m => isEqual(m, oldMark));\n\n if (index !== -1) {\n filteredMarks.splice(index, 1);\n }\n\n const duplicated = filteredMarks.find(m => {\n if (type === 'circle' || type === 'parabola' || type === 'sine') {\n const { root, edge } = mark;\n\n return (\n (equalPoints(root, m.root) && equalPoints(edge, m.edge)) ||\n (type === 'circle' && isSameCircle(m, mark))\n );\n } else if (type === 'line' || type === 'ray' || type === 'segment' || type === 'vector') {\n const { from, to } = mark;\n\n return (\n (equalPoints(from, m.from) && equalPoints(to, m.to)) ||\n (equalPoints(from, m.to) && equalPoints(to, m.from)) ||\n (type === 'line' && isSameLine(m, mark))\n );\n } else if (type === 'polygon') {\n return isEqual(sortPoints(cloneDeep(mark.points)), sortPoints(cloneDeep(m.points)));\n } else if (type === 'point') {\n return equalPoints(m, mark);\n }\n });\n\n return !!duplicated;\n};\n"],"file":"utils.js"}
|
|
1
|
+
{"version":3,"sources":["../src/utils.js"],"names":["tickCount","utils","bounds","point","getAngleDeg","arrowDimensions","getTickValues","prop","tickValues","tickVal","min","indexOf","push","Math","round","step","max","filter","tV","countWords","label","words","split","length","findLongestWord","longestWord","replace","sort","a","b","amountToIncreaseWidth","polygonToArea","points","h","area","left","x","top","y","bottom","right","reduce","p","lineToArea","from","to","pointsToArea","isDomainRangeEqual","graphProps","nextGraphProps","domain","range","getRightestPoints","sortedPoints","getMiddleOfTwoPoints","roundNumber","number","parseFloat","toFixed","sameAxes","p1","p2","equalPoints","getDistanceBetweenTicks","axis","size","nbOfTicks","thinnerShapesNeeded","width","height","getAdjustedGraphLimits","domainTicksDistance","rangeTicksDistance","domainPadding","rangePadding","getDistanceBetweenTwoPoints","sqrt","sortPoints","array","checkCollinearity","c","isSameLine","markA","markB","isSameCircle","root","edge","isDuplicatedMark","mark","marks","oldMark","type","building","filteredMarks","m","index","findIndex","splice","duplicated","find"],"mappings":"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","sourcesContent":["import head from 'lodash/head';\nimport tail from 'lodash/tail';\nimport { utils } from '@pie-lib/plot';\nimport invariant from 'invariant';\nimport isEqual from 'lodash/isEqual';\nimport isEmpty from 'lodash/isEmpty';\nimport cloneDeep from 'lodash/cloneDeep';\n\nexport const tickCount = utils.tickCount;\nexport const bounds = utils.bounds;\nexport const point = utils.point;\n\n//TODO: This can be removed?\nexport const getAngleDeg = () => 0;\n//TODO: This can be removed?\nexport const arrowDimensions = () => 0;\n\nexport const getTickValues = (prop) => {\n const tickValues = [];\n let tickVal = 0;\n\n while (tickVal >= prop.min && tickValues.indexOf(tickVal) < 0) {\n tickValues.push(tickVal);\n tickVal = Math.round((tickVal - prop.step) * 10000) / 10000;\n }\n\n tickVal = Math.round(prop.step * 10000) / 10000;\n\n while (tickVal <= prop.max && tickValues.indexOf(tickVal) < 0) {\n tickValues.push(tickVal);\n tickVal = Math.round((tickVal + prop.step) * 10000) / 10000;\n }\n\n // return only ticks that are inside the min-max interval\n if (tickValues) {\n return tickValues.filter((tV) => tV >= prop.min && tV <= prop.max);\n }\n\n return [];\n};\n\nexport const countWords = (label) => {\n if (label == null || isEmpty(label)) {\n return 1;\n }\n\n const words = label.split(' ');\n return words.length;\n};\n\n// findLongestWord is also used in plot\nexport const findLongestWord = (label) => {\n let longestWord = (label || '')\n .replace(/<[^>]+>/g, '')\n .split(' ')\n .sort((a, b) => b.length - a.length);\n\n return longestWord[0].length;\n};\n\n// amountToIncreaseWidth is also used in plot\nexport const amountToIncreaseWidth = (longestWord) => {\n if (!longestWord) {\n return 0;\n }\n\n return longestWord * 10;\n};\n\nexport const polygonToArea = (points) => {\n const h = head(points);\n const area = {\n left: h.x,\n top: h.y,\n bottom: h.y,\n right: h.x,\n };\n return tail(points).reduce((a, p) => {\n a.left = Math.min(a.left, p.x);\n a.top = Math.max(a.top, p.y);\n a.bottom = Math.min(a.bottom, p.y);\n a.right = Math.max(a.right, p.x);\n return a;\n }, area);\n};\n\nexport const lineToArea = (from, to) => pointsToArea(from, to);\n\nexport const pointsToArea = (a, b) => {\n invariant(!!a && !!b, 'a or b is undefined');\n const left = Math.min(a.x, b.x);\n const top = Math.max(a.y, b.y);\n const bottom = Math.min(a.y, b.y);\n const right = Math.max(a.x, b.x);\n return { left, top, bottom, right };\n};\n\nexport const isDomainRangeEqual = (graphProps, nextGraphProps) => {\n return isEqual(graphProps.domain, nextGraphProps.domain) && isEqual(graphProps.range, nextGraphProps.range);\n};\n\nexport const getRightestPoints = (points) => {\n const sortedPoints = cloneDeep(points);\n sortedPoints.sort((a, b) => b.x - a.x);\n\n return { a: sortedPoints[0], b: sortedPoints[1] };\n};\n\nexport const getMiddleOfTwoPoints = (a, b) => ({\n x: (a.x + b.x) / 2,\n y: (a.y + b.y) / 2,\n});\n\nexport const roundNumber = (number) => parseFloat(number.toFixed(4));\n\nexport const sameAxes = (p1, p2) =>\n p1 && p2 && (roundNumber(p1.x) === roundNumber(p2.x) || roundNumber(p1.y) === roundNumber(p2.y));\n\nexport const equalPoints = (p1, p2) =>\n p1 &&\n p2 &&\n isEqual(\n {\n x: roundNumber(p1.x),\n y: roundNumber(p1.y),\n },\n {\n x: roundNumber(p2.x),\n y: roundNumber(p2.y),\n },\n );\n\nconst getDistanceBetweenTicks = (axis, size) => {\n const { min, max, step } = axis;\n const nbOfTicks = (max - min) / step;\n\n return size / nbOfTicks;\n};\n\nexport const thinnerShapesNeeded = (graphProps) => {\n const {\n domain,\n range,\n size: { width, height },\n } = graphProps;\n\n // 14 is the default width of a point\n return getDistanceBetweenTicks(domain, width) < 14 || getDistanceBetweenTicks(range, height) < 14;\n};\n\nexport const getAdjustedGraphLimits = (graphProps) => {\n const {\n domain,\n range,\n size: { width, height },\n } = graphProps;\n const domainTicksDistance = getDistanceBetweenTicks(domain, width);\n const rangeTicksDistance = getDistanceBetweenTicks(range, height);\n\n // 15 is the distance required for the arrow to extend the graph\n const domainPadding = domain.step / (domainTicksDistance / 15);\n const rangePadding = range.step / (rangeTicksDistance / 15);\n\n return {\n domain: {\n min: domain.min - domainPadding,\n max: domain.max + domainPadding,\n },\n range: {\n min: range.min - rangePadding,\n max: range.max + rangePadding,\n },\n };\n};\n\nexport const getDistanceBetweenTwoPoints = (a, b) => Math.sqrt((b.x - a.x) * (b.x - a.x) + (b.y - a.y) * (b.y - a.y));\n\nconst sortPoints = (array) => (array || []).sort((a, b) => a.x - b.x || a.y - b.y);\n\n// check colliniarity of 3 points (source: https://www.geeksforgeeks.org/program-check-three-points-collinear/)\nconst checkCollinearity = (a, b, c) => (a.x - b.x) * (c.y - b.y) === (c.x - b.x) * (a.y - b.y);\n\n// 2 lines are overlapping if all 4 points are collinear\nconst isSameLine = (markA, markB) =>\n checkCollinearity(markA.from, markB.from, markB.to) && checkCollinearity(markA.to, markB.from, markB.to);\n\nconst isSameCircle = (markA, markB) =>\n equalPoints(markA.root, markB.root) &&\n getDistanceBetweenTwoPoints(markB.root, markB.edge) === getDistanceBetweenTwoPoints(markA.root, markA.edge);\n\nexport const isDuplicatedMark = (mark, marks, oldMark) => {\n const { type, building } = mark;\n\n if (building) {\n return false;\n }\n\n const filteredMarks = (marks || []).filter((m) => m.type === type && !m.building);\n const index = filteredMarks.findIndex((m) => isEqual(m, oldMark));\n\n if (index !== -1) {\n filteredMarks.splice(index, 1);\n }\n\n const duplicated = filteredMarks.find((m) => {\n if (type === 'circle' || type === 'parabola' || type === 'sine') {\n const { root, edge } = mark;\n\n return (equalPoints(root, m.root) && equalPoints(edge, m.edge)) || (type === 'circle' && isSameCircle(m, mark));\n } else if (type === 'line' || type === 'ray' || type === 'segment' || type === 'vector') {\n const { from, to } = mark;\n\n return (\n (equalPoints(from, m.from) && equalPoints(to, m.to)) ||\n (equalPoints(from, m.to) && equalPoints(to, m.from)) ||\n (type === 'line' && isSameLine(m, mark))\n );\n } else if (type === 'polygon') {\n return isEqual(sortPoints(cloneDeep(mark.points)), sortPoints(cloneDeep(m.points)));\n } else if (type === 'point') {\n return equalPoints(m, mark);\n }\n });\n\n return !!duplicated;\n};\n"],"file":"utils.js"}
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"publishConfig": {
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
|
-
"version": "2.11.
|
|
6
|
+
"version": "2.11.5-next.0+1fa37b5f",
|
|
7
7
|
"description": "Graphing components",
|
|
8
8
|
"keywords": [
|
|
9
9
|
"react",
|
|
@@ -18,10 +18,10 @@
|
|
|
18
18
|
"dependencies": {
|
|
19
19
|
"@mapbox/point-geometry": "^0.1.0",
|
|
20
20
|
"@material-ui/core": "^3.8.3",
|
|
21
|
-
"@pie-lib/drag": "^
|
|
22
|
-
"@pie-lib/graphing-utils": "^1.1.
|
|
23
|
-
"@pie-lib/plot": "^2.5.
|
|
24
|
-
"@pie-lib/render-ui": "^4.13.
|
|
21
|
+
"@pie-lib/drag": "^2.0.2-next.0+1fa37b5f",
|
|
22
|
+
"@pie-lib/graphing-utils": "^1.1.22-next.0+1fa37b5f",
|
|
23
|
+
"@pie-lib/plot": "^2.5.4-next.0+1fa37b5f",
|
|
24
|
+
"@pie-lib/render-ui": "^4.13.8-next.0+1fa37b5f",
|
|
25
25
|
"@vx/axis": "^0.0.189",
|
|
26
26
|
"@vx/clip-path": "^0.0.189",
|
|
27
27
|
"@vx/event": "^0.0.189",
|
|
@@ -44,6 +44,6 @@
|
|
|
44
44
|
"peerDependencies": {
|
|
45
45
|
"react": "^16.8.1"
|
|
46
46
|
},
|
|
47
|
-
"gitHead": "
|
|
47
|
+
"gitHead": "1fa37b5fc8de14d2836e884e11de6d84eb5fbd27",
|
|
48
48
|
"scripts": {}
|
|
49
49
|
}
|
package/src/axis/arrow.jsx
CHANGED
|
@@ -7,8 +7,8 @@ import { types } from '@pie-lib/plot';
|
|
|
7
7
|
|
|
8
8
|
const style = {
|
|
9
9
|
root: {
|
|
10
|
-
fill: 'var(--arrow-color, black)'
|
|
11
|
-
}
|
|
10
|
+
fill: 'var(--arrow-color, black)',
|
|
11
|
+
},
|
|
12
12
|
};
|
|
13
13
|
|
|
14
14
|
export class Arrow extends React.Component {
|
|
@@ -50,13 +50,13 @@ Arrow.propTypes = {
|
|
|
50
50
|
direction: PropTypes.oneOf(['left', 'right', 'up', 'down']),
|
|
51
51
|
classes: PropTypes.object.isRequired,
|
|
52
52
|
className: PropTypes.string,
|
|
53
|
-
scale: types.ScaleType.isRequired
|
|
53
|
+
scale: types.ScaleType.isRequired,
|
|
54
54
|
};
|
|
55
55
|
|
|
56
56
|
Arrow.defaultProps = {
|
|
57
57
|
y: 0,
|
|
58
58
|
x: 0,
|
|
59
|
-
direction: 'left'
|
|
59
|
+
direction: 'left',
|
|
60
60
|
};
|
|
61
61
|
|
|
62
62
|
export default withStyles(style)(Arrow);
|
package/src/axis/axes.jsx
CHANGED
|
@@ -9,7 +9,7 @@ import { color, Readable } from '@pie-lib/render-ui';
|
|
|
9
9
|
|
|
10
10
|
export const AxisPropTypes = {
|
|
11
11
|
includeArrows: PropTypes.object,
|
|
12
|
-
graphProps: PropTypes.object
|
|
12
|
+
graphProps: PropTypes.object,
|
|
13
13
|
};
|
|
14
14
|
|
|
15
15
|
const AxisDefaultProps = {
|
|
@@ -17,26 +17,26 @@ const AxisDefaultProps = {
|
|
|
17
17
|
left: true,
|
|
18
18
|
right: true,
|
|
19
19
|
up: true,
|
|
20
|
-
down: true
|
|
21
|
-
}
|
|
20
|
+
down: true,
|
|
21
|
+
},
|
|
22
22
|
};
|
|
23
23
|
|
|
24
|
-
const axisStyles = theme => ({
|
|
24
|
+
const axisStyles = (theme) => ({
|
|
25
25
|
line: {
|
|
26
26
|
stroke: color.primary(),
|
|
27
|
-
strokeWidth: 5
|
|
27
|
+
strokeWidth: 5,
|
|
28
28
|
},
|
|
29
29
|
arrow: {
|
|
30
|
-
fill: color.primary()
|
|
30
|
+
fill: color.primary(),
|
|
31
31
|
},
|
|
32
32
|
tick: {
|
|
33
33
|
fill: color.primary(),
|
|
34
34
|
'& > line': {
|
|
35
|
-
stroke: color.primary()
|
|
36
|
-
}
|
|
35
|
+
stroke: color.primary(),
|
|
36
|
+
},
|
|
37
37
|
},
|
|
38
38
|
labelFontSize: {
|
|
39
|
-
fontSize: theme.typography.fontSize
|
|
39
|
+
fontSize: theme.typography.fontSize,
|
|
40
40
|
},
|
|
41
41
|
axisLabelHolder: {
|
|
42
42
|
padding: 0,
|
|
@@ -44,16 +44,16 @@ const axisStyles = theme => ({
|
|
|
44
44
|
textAlign: 'center',
|
|
45
45
|
'* > *': {
|
|
46
46
|
margin: 0,
|
|
47
|
-
padding: 0
|
|
47
|
+
padding: 0,
|
|
48
48
|
},
|
|
49
|
-
fontSize: theme.typography.fontSize
|
|
50
|
-
}
|
|
49
|
+
fontSize: theme.typography.fontSize,
|
|
50
|
+
},
|
|
51
51
|
});
|
|
52
52
|
|
|
53
53
|
const tickLabelStyles = {
|
|
54
54
|
fontFamily: 'Roboto',
|
|
55
55
|
fontSize: '14px',
|
|
56
|
-
cursor: 'inherit'
|
|
56
|
+
cursor: 'inherit',
|
|
57
57
|
};
|
|
58
58
|
|
|
59
59
|
export const sharedValues = (
|
|
@@ -62,7 +62,7 @@ export const sharedValues = (
|
|
|
62
62
|
distanceFromOriginToFirstNegativeX,
|
|
63
63
|
distanceFromOriginToFirstNegativeY,
|
|
64
64
|
deltaAllowance,
|
|
65
|
-
dy
|
|
65
|
+
dy,
|
|
66
66
|
) => {
|
|
67
67
|
let result = [];
|
|
68
68
|
|
|
@@ -79,13 +79,13 @@ export const sharedValues = (
|
|
|
79
79
|
return result;
|
|
80
80
|
};
|
|
81
81
|
|
|
82
|
-
export const firstNegativeValue = interval => (interval || []).find(element => element < 0);
|
|
82
|
+
export const firstNegativeValue = (interval) => (interval || []).find((element) => element < 0);
|
|
83
83
|
|
|
84
84
|
export class RawXAxis extends React.Component {
|
|
85
85
|
static propTypes = {
|
|
86
86
|
...AxisPropTypes,
|
|
87
87
|
classes: PropTypes.object,
|
|
88
|
-
graphProps: types.GraphPropsType.isRequired
|
|
88
|
+
graphProps: types.GraphPropsType.isRequired,
|
|
89
89
|
};
|
|
90
90
|
static defaultProps = AxisDefaultProps;
|
|
91
91
|
|
|
@@ -97,19 +97,17 @@ export class RawXAxis extends React.Component {
|
|
|
97
97
|
columnTicksValues,
|
|
98
98
|
skipValues,
|
|
99
99
|
distanceFromOriginToFirstNegativeY,
|
|
100
|
-
dy
|
|
100
|
+
dy,
|
|
101
101
|
} = this.props;
|
|
102
102
|
const { scale, domain, size, range } = graphProps || {};
|
|
103
103
|
|
|
104
104
|
// Having 0 as a number in columnTicksValues does not make 0 to show up
|
|
105
105
|
// so we use this trick, by defining it as a string:
|
|
106
106
|
const tickValues =
|
|
107
|
-
(domain.labelStep || range.labelStep) && domain.min <= 0
|
|
108
|
-
? ['0', ...columnTicksValues]
|
|
109
|
-
: columnTicksValues;
|
|
107
|
+
(domain.labelStep || range.labelStep) && domain.min <= 0 ? ['0', ...columnTicksValues] : columnTicksValues;
|
|
110
108
|
// However, the '0' has to be displayed only if other tick labels (y-axis or x-axis) are displayed
|
|
111
109
|
|
|
112
|
-
const labelProps = label => {
|
|
110
|
+
const labelProps = (label) => {
|
|
113
111
|
const y = skipValues && skipValues[0] === label ? distanceFromOriginToFirstNegativeY + 4 : dy;
|
|
114
112
|
|
|
115
113
|
return {
|
|
@@ -117,7 +115,7 @@ export class RawXAxis extends React.Component {
|
|
|
117
115
|
textAnchor: 'middle',
|
|
118
116
|
y: y,
|
|
119
117
|
dx: label === '0' ? -10 : 0,
|
|
120
|
-
dy: label === '0' ? -7 : 0
|
|
118
|
+
dy: label === '0' ? -7 : 0,
|
|
121
119
|
};
|
|
122
120
|
};
|
|
123
121
|
|
|
@@ -135,7 +133,7 @@ export class RawXAxis extends React.Component {
|
|
|
135
133
|
label={domain.label}
|
|
136
134
|
rangePadding={8}
|
|
137
135
|
tickClassName={classes.tick}
|
|
138
|
-
tickFormat={value => value}
|
|
136
|
+
tickFormat={(value) => value}
|
|
139
137
|
tickLabelProps={labelProps}
|
|
140
138
|
tickValues={tickValues}
|
|
141
139
|
/>
|
|
@@ -146,16 +144,8 @@ export class RawXAxis extends React.Component {
|
|
|
146
144
|
<Arrow direction="right" x={domain.max} y={0} className={classes.arrow} scale={scale} />
|
|
147
145
|
)}
|
|
148
146
|
{domain.axisLabel && (
|
|
149
|
-
<foreignObject
|
|
150
|
-
|
|
151
|
-
y={scale.y(0) - 9}
|
|
152
|
-
width={necessaryWidth}
|
|
153
|
-
height={20 * necessaryRows}
|
|
154
|
-
>
|
|
155
|
-
<div
|
|
156
|
-
dangerouslySetInnerHTML={{ __html: domain.axisLabel }}
|
|
157
|
-
className={classes.labelFontSize}
|
|
158
|
-
/>
|
|
147
|
+
<foreignObject x={size.width + 17} y={scale.y(0) - 9} width={necessaryWidth} height={20 * necessaryRows}>
|
|
148
|
+
<div dangerouslySetInnerHTML={{ __html: domain.axisLabel }} className={classes.labelFontSize} />
|
|
159
149
|
</foreignObject>
|
|
160
150
|
)}
|
|
161
151
|
</React.Fragment>
|
|
@@ -168,7 +158,7 @@ const XAxis = withStyles(axisStyles)(RawXAxis);
|
|
|
168
158
|
export class RawYAxis extends React.Component {
|
|
169
159
|
static propTypes = {
|
|
170
160
|
...AxisPropTypes,
|
|
171
|
-
graphProps: types.GraphPropsType.isRequired
|
|
161
|
+
graphProps: types.GraphPropsType.isRequired,
|
|
172
162
|
};
|
|
173
163
|
static defaultProps = AxisDefaultProps;
|
|
174
164
|
|
|
@@ -178,7 +168,7 @@ export class RawYAxis extends React.Component {
|
|
|
178
168
|
|
|
179
169
|
const necessaryWidth = range.axisLabel ? amountToIncreaseWidth(range.axisLabel.length) : 0;
|
|
180
170
|
|
|
181
|
-
const customTickFormat = value => (skipValues && skipValues.indexOf(value) >= 0 ? '' : value);
|
|
171
|
+
const customTickFormat = (value) => (skipValues && skipValues.indexOf(value) >= 0 ? '' : value);
|
|
182
172
|
|
|
183
173
|
return (
|
|
184
174
|
<React.Fragment>
|
|
@@ -195,14 +185,14 @@ export class RawYAxis extends React.Component {
|
|
|
195
185
|
tickLength={10}
|
|
196
186
|
tickClassName={classes.tick}
|
|
197
187
|
tickFormat={customTickFormat}
|
|
198
|
-
tickLabelProps={value => {
|
|
188
|
+
tickLabelProps={(value) => {
|
|
199
189
|
let digits = value.toLocaleString().replace(/[.-]/g, '').length || 1;
|
|
200
190
|
|
|
201
191
|
return {
|
|
202
192
|
...tickLabelStyles,
|
|
203
193
|
dy: 4,
|
|
204
194
|
dx: -10 - digits * 9,
|
|
205
|
-
'data-pie-readable': false
|
|
195
|
+
'data-pie-readable': false,
|
|
206
196
|
};
|
|
207
197
|
}}
|
|
208
198
|
hideZero={true}
|
|
@@ -217,17 +207,9 @@ export class RawYAxis extends React.Component {
|
|
|
217
207
|
<Arrow direction="up" x={0} y={range.max} className={classes.arrow} scale={scale} />
|
|
218
208
|
)}
|
|
219
209
|
{range.axisLabel && (
|
|
220
|
-
<foreignObject
|
|
221
|
-
x={scale.x(0) - necessaryWidth / 2}
|
|
222
|
-
y={-33}
|
|
223
|
-
width={necessaryWidth}
|
|
224
|
-
height="20"
|
|
225
|
-
>
|
|
210
|
+
<foreignObject x={scale.x(0) - necessaryWidth / 2} y={-33} width={necessaryWidth} height="20">
|
|
226
211
|
<Readable false>
|
|
227
|
-
<div
|
|
228
|
-
dangerouslySetInnerHTML={{ __html: range.axisLabel }}
|
|
229
|
-
className={classes.axisLabelHolder}
|
|
230
|
-
/>
|
|
212
|
+
<div dangerouslySetInnerHTML={{ __html: range.axisLabel }} className={classes.axisLabelHolder} />
|
|
231
213
|
</Readable>
|
|
232
214
|
</foreignObject>
|
|
233
215
|
)}
|
|
@@ -242,7 +224,7 @@ export default class Axes extends React.Component {
|
|
|
242
224
|
static propTypes = {
|
|
243
225
|
...AxisPropTypes,
|
|
244
226
|
classes: PropTypes.object,
|
|
245
|
-
graphProps: types.GraphPropsType.isRequired
|
|
227
|
+
graphProps: types.GraphPropsType.isRequired,
|
|
246
228
|
};
|
|
247
229
|
static defaultProps = AxisDefaultProps;
|
|
248
230
|
|
|
@@ -260,7 +242,7 @@ export default class Axes extends React.Component {
|
|
|
260
242
|
return {
|
|
261
243
|
columnTicksValues: ticks,
|
|
262
244
|
firstNegativeX: negative,
|
|
263
|
-
distanceFromOriginToFirstNegativeX: Math.abs(scale.y(0) - scale.y(negative))
|
|
245
|
+
distanceFromOriginToFirstNegativeX: Math.abs(scale.y(0) - scale.y(negative)),
|
|
264
246
|
};
|
|
265
247
|
};
|
|
266
248
|
|
|
@@ -278,18 +260,14 @@ export default class Axes extends React.Component {
|
|
|
278
260
|
return {
|
|
279
261
|
rowTickValues: ticks,
|
|
280
262
|
firstNegativeY: negative,
|
|
281
|
-
distanceFromOriginToFirstNegativeY: Math.abs(scale.x(0) - scale.x(negative))
|
|
263
|
+
distanceFromOriginToFirstNegativeY: Math.abs(scale.x(0) - scale.x(negative)),
|
|
282
264
|
};
|
|
283
265
|
};
|
|
284
266
|
|
|
285
267
|
render() {
|
|
286
268
|
const { graphProps } = this.props;
|
|
287
269
|
const { domain, range } = graphProps || {};
|
|
288
|
-
const {
|
|
289
|
-
columnTicksValues,
|
|
290
|
-
firstNegativeX,
|
|
291
|
-
distanceFromOriginToFirstNegativeX
|
|
292
|
-
} = this.xValues();
|
|
270
|
+
const { columnTicksValues, firstNegativeX, distanceFromOriginToFirstNegativeX } = this.xValues();
|
|
293
271
|
const { rowTickValues, firstNegativeY, distanceFromOriginToFirstNegativeY } = this.yValues();
|
|
294
272
|
const deltaAllowance = 6;
|
|
295
273
|
const dy = 25;
|
|
@@ -300,7 +278,7 @@ export default class Axes extends React.Component {
|
|
|
300
278
|
distanceFromOriginToFirstNegativeX,
|
|
301
279
|
distanceFromOriginToFirstNegativeY,
|
|
302
280
|
deltaAllowance,
|
|
303
|
-
dy
|
|
281
|
+
dy,
|
|
304
282
|
);
|
|
305
283
|
|
|
306
284
|
// each axis has to be displayed only if the domain & range include it
|
package/src/bg.jsx
CHANGED
|
@@ -9,7 +9,7 @@ export default class Bg extends React.Component {
|
|
|
9
9
|
width: PropTypes.number.isRequired,
|
|
10
10
|
height: PropTypes.number.isRequired,
|
|
11
11
|
onClick: PropTypes.func.isRequired,
|
|
12
|
-
graphProps: types.GraphPropsType.isRequired
|
|
12
|
+
graphProps: types.GraphPropsType.isRequired,
|
|
13
13
|
};
|
|
14
14
|
|
|
15
15
|
static defaultProps = {};
|
|
@@ -30,7 +30,7 @@ export default class Bg extends React.Component {
|
|
|
30
30
|
* Note: we use d3 click + mouse to give us domain values directly.
|
|
31
31
|
* Saves us having to calculate them ourselves from a MouseEvent.
|
|
32
32
|
*/
|
|
33
|
-
onRectClick = rect => {
|
|
33
|
+
onRectClick = (rect) => {
|
|
34
34
|
const { onClick, graphProps } = this.props;
|
|
35
35
|
const { scale } = graphProps;
|
|
36
36
|
const coords = mouse(rect._groups[0][0]);
|
|
@@ -65,14 +65,6 @@ export default class Bg extends React.Component {
|
|
|
65
65
|
|
|
66
66
|
render() {
|
|
67
67
|
const { width, height } = this.props;
|
|
68
|
-
return (
|
|
69
|
-
<rect
|
|
70
|
-
ref={rect => (this.rect = rect)}
|
|
71
|
-
fill="red"
|
|
72
|
-
fillOpacity="0.0"
|
|
73
|
-
width={width}
|
|
74
|
-
height={height}
|
|
75
|
-
/>
|
|
76
|
-
);
|
|
68
|
+
return <rect ref={(rect) => (this.rect = rect)} fill="red" fillOpacity="0.0" width={width} height={height} />;
|
|
77
69
|
}
|
|
78
70
|
}
|
package/src/container/actions.js
CHANGED
package/src/container/index.jsx
CHANGED
|
@@ -9,15 +9,15 @@ import isEqual from 'lodash/isEqual';
|
|
|
9
9
|
import { ActionCreators } from 'redux-undo';
|
|
10
10
|
import GraphWithControls from '../graph-with-controls';
|
|
11
11
|
|
|
12
|
-
const mapStateToProps = s => ({
|
|
13
|
-
marks: s.marks.present
|
|
12
|
+
const mapStateToProps = (s) => ({
|
|
13
|
+
marks: s.marks.present,
|
|
14
14
|
});
|
|
15
15
|
|
|
16
|
-
const mapDispatchToProps = dispatch => ({
|
|
17
|
-
onChangeMarks: m => dispatch(changeMarks(m)),
|
|
16
|
+
const mapDispatchToProps = (dispatch) => ({
|
|
17
|
+
onChangeMarks: (m) => dispatch(changeMarks(m)),
|
|
18
18
|
onUndo: () => dispatch(ActionCreators.undo()),
|
|
19
19
|
onRedo: () => dispatch(ActionCreators.redo()),
|
|
20
|
-
onReset: () => dispatch(changeMarks([]))
|
|
20
|
+
onReset: () => dispatch(changeMarks([])),
|
|
21
21
|
});
|
|
22
22
|
|
|
23
23
|
export const GraphContainer = connect(mapStateToProps, mapDispatchToProps)(GraphWithControls);
|
|
@@ -29,7 +29,7 @@ export const GraphContainer = connect(mapStateToProps, mapDispatchToProps)(Graph
|
|
|
29
29
|
class Root extends React.Component {
|
|
30
30
|
static propTypes = {
|
|
31
31
|
onChangeMarks: PropTypes.func,
|
|
32
|
-
marks: PropTypes.array
|
|
32
|
+
marks: PropTypes.array,
|
|
33
33
|
};
|
|
34
34
|
|
|
35
35
|
constructor(props) {
|
|
@@ -53,7 +53,7 @@ class Root extends React.Component {
|
|
|
53
53
|
render() {
|
|
54
54
|
// eslint-disable-next-line no-unused-vars
|
|
55
55
|
const { onChangeMarks, marks, ...rest } = this.props;
|
|
56
|
-
const correctnessSet = marks && marks.find(m => m.correctness);
|
|
56
|
+
const correctnessSet = marks && marks.find((m) => m.correctness);
|
|
57
57
|
|
|
58
58
|
if (correctnessSet) {
|
|
59
59
|
return <GraphWithControls {...rest} marks={marks} disabled={correctnessSet} />;
|