@pie-lib/graphing 2.11.3-next.52 → 2.11.4
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
package/lib/grid.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/grid.jsx"],"names":["Grid","rowTickValues","columnTickValues","props","graphProps","scale","size","width","height","domain","range","rowTickLabelValues","step","labelStep","filter","value","includes","columnTickLabelValues","minValueLength","length","Math","min","toString","replace","maxValueLength","max","rowLabelLength","horizontalDistanceToZero","x","verticalDistanceToZero","y","columnLabelLength","rowStrokeDasharray","columnStrokeDasharray","displayAdditionalGrid","filteredColumnValues","filteredRowValues","classes","getAdditionalGridProps","r","grid","color","primary","React","Component","disabled","PropTypes","bool","disabledAdditionalGrid","object","isRequired","types","GraphPropsType","stroke"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;IAEaA,I;;;;;;;;;;;;;;;+GAQc,UAACC,aAAD,EAAgBC,gBAAhB,EAAqC;AAC5D,kCAOI,MAAKC,KAPT,CACEC,UADF;AAAA,UAEIC,KAFJ,yBAEIA,KAFJ;AAAA,yDAGIC,IAHJ;AAAA,UAGYC,KAHZ,0BAGYA,KAHZ;AAAA,UAGmBC,MAHnB,0BAGmBA,MAHnB;AAAA,UAIIC,MAJJ,yBAIIA,MAJJ;AAAA,UAKIC,KALJ,yBAKIA,KALJ;AAQA,UAAMC,kBAAkB,GAAG,0DACtBD,KADsB;AAEzBE,QAAAA,IAAI,EAAEF,KAAK,CAACG;AAFa,UAGxBC,MAHwB,CAGjB,
|
|
1
|
+
{"version":3,"sources":["../src/grid.jsx"],"names":["Grid","rowTickValues","columnTickValues","props","graphProps","scale","size","width","height","domain","range","rowTickLabelValues","step","labelStep","filter","value","includes","columnTickLabelValues","minValueLength","length","Math","min","toString","replace","maxValueLength","max","rowLabelLength","horizontalDistanceToZero","x","verticalDistanceToZero","y","columnLabelLength","rowStrokeDasharray","columnStrokeDasharray","displayAdditionalGrid","filteredColumnValues","filteredRowValues","classes","getAdditionalGridProps","r","grid","color","primary","React","Component","disabled","PropTypes","bool","disabledAdditionalGrid","object","isRequired","types","GraphPropsType","stroke"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport * as vx from '@vx/grid';\nimport { types, utils } from '@pie-lib/plot';\nimport { color } from '@pie-lib/render-ui';\nimport { withStyles } from '@material-ui/core/styles';\nimport { getTickValues } from './utils';\n\nexport class Grid extends React.Component {\n static propTypes = {\n disabled: PropTypes.bool,\n disabledAdditionalGrid: PropTypes.bool,\n classes: PropTypes.object.isRequired,\n graphProps: types.GraphPropsType.isRequired,\n };\n\n getAdditionalGridProps = (rowTickValues, columnTickValues) => {\n const {\n graphProps: {\n scale,\n size: { width, height },\n domain,\n range,\n },\n } = this.props;\n const rowTickLabelValues = getTickValues({\n ...range,\n step: range.labelStep,\n }).filter((value) => rowTickValues.includes(value));\n const columnTickLabelValues = getTickValues({\n ...domain,\n step: domain.labelStep,\n }).filter((value) => columnTickValues.includes(value));\n\n const minValueLength =\n (rowTickLabelValues.length &&\n Math.min(...rowTickLabelValues)\n .toString()\n .replace(/[.-]/g, '').length) ||\n 1;\n const maxValueLength =\n (rowTickLabelValues.length &&\n Math.max(...rowTickLabelValues)\n .toString()\n .replace(/[.-]/g, '').length) ||\n 1;\n\n const rowLabelLength = Math.max(minValueLength, maxValueLength) * 9 + 22;\n const horizontalDistanceToZero = scale.x(0);\n const verticalDistanceToZero = scale.y(0);\n const columnLabelLength = 28;\n const rowStrokeDasharray = `${horizontalDistanceToZero - rowLabelLength} ${rowLabelLength} ${width}`;\n const columnStrokeDasharray = `${verticalDistanceToZero} ${columnLabelLength} ${height}`;\n\n const displayAdditionalGrid =\n domain.labelStep > 0 &&\n range.labelStep > 0 &&\n rowTickLabelValues &&\n columnTickLabelValues &&\n rowTickLabelValues.length > 1 &&\n columnTickLabelValues.length > 1 &&\n (rowTickLabelValues.length !== rowTickValues.length || columnTickLabelValues.length !== columnTickValues.length);\n\n const filteredColumnValues = columnTickLabelValues.filter(\n (value) => value >= 0 || horizontalDistanceToZero - scale.x(value) > rowLabelLength,\n );\n const filteredRowValues = rowTickLabelValues.filter(\n (value) => value >= 0 || scale.y(value) - verticalDistanceToZero > columnLabelLength,\n );\n\n return {\n rowTickLabelValues: filteredRowValues,\n columnTickLabelValues: filteredColumnValues,\n rowStrokeDasharray,\n columnStrokeDasharray,\n displayAdditionalGrid,\n };\n };\n\n render() {\n const { classes, graphProps } = this.props;\n const {\n scale,\n size: { height, width },\n domain,\n range,\n } = graphProps;\n const rowTickValues = getTickValues(range);\n const columnTickValues = getTickValues(domain);\n const {\n rowTickLabelValues,\n columnTickLabelValues,\n rowStrokeDasharray,\n columnStrokeDasharray,\n displayAdditionalGrid,\n } = this.getAdditionalGridProps(rowTickValues, columnTickValues);\n\n return (\n <>\n <vx.Grid\n innerRef={(r) => (this.grid = r)}\n xScale={scale.x}\n yScale={scale.y}\n width={width}\n height={height}\n className={classes.grid}\n rowTickValues={rowTickValues}\n columnTickValues={columnTickValues}\n />\n {displayAdditionalGrid && (\n <>\n <vx.GridRows\n scale={scale.y}\n width={width}\n tickValues={rowTickLabelValues}\n stroke={color.primary()}\n strokeDasharray={rowStrokeDasharray}\n />\n <vx.GridColumns\n scale={scale.x}\n height={height}\n tickValues={columnTickLabelValues}\n stroke={color.primary()}\n strokeDasharray={columnStrokeDasharray}\n />\n </>\n )}\n </>\n );\n }\n}\n\nexport default withStyles(() => ({\n grid: {\n stroke: 'purple', // TODO hardcoded color\n },\n}))(Grid);\n"],"file":"grid.js"}
|
package/lib/labels.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/labels.jsx"],"names":["rotations","left","top","bottom","right","getTransform","side","width","height","t","x","y","rotate","getY","RawLabel","props","disabledLabel","placeholder","text","graphProps","classes","onChange","size","domain","range","totalHeight","padding","totalWidth","transform","finalHeight","activePlugins","bottomLabel","disabledAxisLabel","axisLabel","position","noBorder","React","Component","PropTypes","string","object","bool","types","GraphPropsType","isRequired","Label","theme","label","fill","color","secondary","fontSize","typography","textAlign","pointerEvents","marginTop","LabelType","Labels","newValue","value","labels","disabledLabels","placeholders","onChangeLabel","className","shape"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;AAEA,IAAMA,SAAS,GAAG;AAChBC,EAAAA,IAAI,EAAE,CAAC,EADS;AAEhBC,EAAAA,GAAG,EAAE,CAFW;AAGhBC,EAAAA,MAAM,EAAE,CAHQ;AAIhBC,EAAAA,KAAK,EAAE;AAJS,CAAlB;;AAOO,IAAMC,YAAY,GAAG,SAAfA,YAAe,CAACC,IAAD,EAAOC,KAAP,EAAcC,MAAd,EAAyB;AACnD,MAAMC,CAAC,GAAG,SAAJA,CAAI,CAACC,CAAD,EAAIC,CAAJ,EAAOC,MAAP;AAAA,+BAA+BF,CAA/B,eAAqCC,CAArC,uBAAmDC,MAAnD;AAAA,GAAV;;AAEA,MAAIN,IAAI,KAAK,MAAb,EAAqB;AACnB,WAAOG,CAAC,CAAC,CAAC,EAAF,EAAMD,MAAM,GAAG,CAAf,EAAkBR,SAAS,CAACM,IAAD,CAA3B,CAAR;AACD;;AACD,MAAIA,IAAI,KAAK,OAAb,EAAsB;AACpB,WAAOG,CAAC,CAACF,KAAK,GAAG,EAAT,EAAaC,MAAM,GAAG,CAAtB,EAAyBR,SAAS,CAACM,IAAD,CAAlC,CAAR;AACD;;AACD,MAAIA,IAAI,KAAK,KAAb,EAAoB;AAClB,WAAOG,CAAC,CAACF,KAAK,GAAG,CAAT,EAAY,CAAC,EAAb,EAAiBP,SAAS,CAACM,IAAD,CAA1B,CAAR;AACD;;AACD,MAAIA,IAAI,KAAK,QAAb,EAAuB;AACrB,WAAOG,CAAC,CAACF,KAAK,GAAG,CAAT,EAAYC,MAAM,GAAG,EAArB,EAAyBR,SAAS,CAACM,IAAD,CAAlC,CAAR;AACD;AACF,CAfM;;;;AAiBP,IAAMO,IAAI,GAAG,SAAPA,IAAO,CAACP,IAAD,EAAOE,MAAP,EAAkB;AAC7B,UAAQF,IAAR;AACE,SAAK,MAAL;AACE,aAAO,CAACE,MAAR;;AACF,SAAK,KAAL;AACE,aAAO,CAACA,MAAR;;AACF,SAAK,OAAL;AACE,aAAO,CAACA,MAAD,GAAU,EAAjB;;AACF;AACE,aAAO,CAACA,MAAD,GAAU,EAAjB;AARJ;AAUD,CAXD;;IAaMM,Q;;;;;;;;;;;;WAcJ,kBAAS;AAAA;;AACP,wBAAkF,KAAKC,KAAvF;AAAA,UAAQC,aAAR,eAAQA,aAAR;AAAA,UAAuBC,WAAvB,eAAuBA,WAAvB;AAAA,UAAoCC,IAApC,eAAoCA,IAApC;AAAA,UAA0CZ,IAA1C,eAA0CA,IAA1C;AAAA,UAAgDa,UAAhD,eAAgDA,UAAhD;AAAA,UAA4DC,OAA5D,eAA4DA,OAA5D;AAAA,UAAqEC,QAArE,eAAqEA,QAArE;AACA,UAAQC,IAAR,GAAgCH,UAAhC,CAAQG,IAAR;AAAA,UAAcC,MAAd,GAAgCJ,UAAhC,CAAcI,MAAd;AAAA,UAAsBC,KAAtB,GAAgCL,UAAhC,CAAsBK,KAAtB;AACA,UAAMC,WAAW,GAAG,CAACH,IAAI,CAACd,MAAL,IAAe,GAAhB,IAAuB,CAACgB,KAAK,CAACE,OAAN,IAAiB,CAAlB,IAAuB,CAAlE;AACA,UAAMC,UAAU,GAAG,CAACL,IAAI,CAACf,KAAL,IAAc,GAAf,IAAsB,CAACgB,MAAM,CAACG,OAAP,IAAkB,CAAnB,IAAwB,CAAjE;AAEA,UAAME,SAAS,GAAGvB,YAAY,CAACC,IAAD,EAAOqB,UAAP,EAAmBF,WAAnB,CAA9B;AACA,UAAMlB,KAAK,GAAGD,IAAI,KAAK,MAAT,IAAmBA,IAAI,KAAK,OAA5B,GAAsCmB,WAAtC,GAAoDE,UAAlE;AACA,UAAMnB,MAAM,GAAG,EAAf;AACA,UAAMG,CAAC,GAAGE,IAAI,CAACP,IAAD,EAAOE,MAAP,CAAd;AACA,UAAMqB,WAAW,GAAGvB,IAAI,KAAK,QAAT,GAAoBE,MAAM,GAAG,EAA7B,GAAkCA,MAAM,GAAG,EAA/D;AAEA,UAAMsB,aAAa,GAAG,CACpB,MADoB,EAEpB,QAFoB,EAGpB,WAHoB,EAIpB,eAJoB,EAKpB,MALoB,CAMpB;AANoB,OAAtB;AASA,0BACE;AACE,QAAA,CAAC,EAAE,EAAEvB,KAAK,GAAG,CAAV,CADL;AAEE,QAAA,CAAC,EAAEI,CAFL;AAGE,QAAA,KAAK,EAAEJ,KAHT;AAIE,QAAA,MAAM,EAAEsB,WAJV;AAKE,QAAA,SAAS,EAAED,SALb;AAME,QAAA,UAAU,EAAC;AANb,sBAQE,gCAAC,kBAAD;AAAU;AAAV,sBACE,gCAAC,wBAAD;AACE,QAAA,SAAS,EAAE,6EAENR,OAAO,CAACW,WAFF,EAEgBzB,IAAI,KAAK,QAFzB,yCAGNc,OAAO,CAACY,iBAHF,EAGsBhB,aAHtB,SAKTI,OAAO,CAACa,SALC,CADb;AAQE,QAAA,MAAM,EAAEf,IAAI,IAAI,EARlB;AASE,QAAA,QAAQ,EAAEG,QATZ;AAUE,QAAA,WAAW,EAAE,CAACL,aAAD,IAAkBC,WAVjC;AAWE,QAAA,WAAW,EAAE;AACXiB,UAAAA,QAAQ,EAAE5B,IAAI,KAAK,QAAT,GAAoB,KAApB,GAA4B,QAD3B;AAEX6B,UAAAA,QAAQ,EAAE;AAFC,SAXf;AAeE,QAAA,aAAa,EAAEL;AAfjB,QADF,CARF,CADF;AA8BD;;;EAjEoBM,kBAAMC,S;;iCAAvBvB,Q,eACe;AACjBI,EAAAA,IAAI,EAAEoB,sBAAUC,MADC;AAEjBjC,EAAAA,IAAI,EAAEgC,sBAAUC,MAFC;AAGjBnB,EAAAA,OAAO,EAAEkB,sBAAUE,MAHF;AAIjBxB,EAAAA,aAAa,EAAEsB,sBAAUG,IAJR;AAKjBxB,EAAAA,WAAW,EAAEqB,sBAAUC,MALN;AAMjBpB,EAAAA,UAAU,EAAEuB,YAAMC,cAAN,CAAqBC;AANhB,C;iCADf9B,Q,kBAUkB;AACpBO,EAAAA,QAAQ,EAAE,oBAAM,CAAE;AADE,C;AA0DxB,IAAMwB,KAAK,GAAG,wBAAW,UAAAC,KAAK;AAAA,SAAK;AACjCC,IAAAA,KAAK,EAAE;AACLC,MAAAA,IAAI,EAAEC,gBAAMC,SAAN;AADD,KAD0B;AAIjCjB,IAAAA,SAAS,EAAE;AACTkB,MAAAA,QAAQ,EAAEL,KAAK,CAACM,UAAN,CAAiBD,QAAjB,GAA4B,CAD7B;AAETE,MAAAA,SAAS,EAAE,QAFF;AAGT3B,MAAAA,OAAO,EAAE;AAHA,KAJsB;AASjCM,IAAAA,iBAAiB,EAAE;AACjBsB,MAAAA,aAAa,EAAE;AADE,KATc;AAYjCvB,IAAAA,WAAW,EAAE;AACXwB,MAAAA,SAAS,EAAE;AADA;AAZoB,GAAL;AAAA,CAAhB,EAeVzC,QAfU,CAAd;AAiBO,IAAM0C,SAAS,GAAG;AACvBvD,EAAAA,IAAI,EAAEqC,sBAAUC,MADO;AAEvBrC,EAAAA,GAAG,EAAEoC,sBAAUC,MAFQ;AAGvBpC,EAAAA,MAAM,EAAEmC,sBAAUC,MAHK;AAIvBnC,EAAAA,KAAK,EAAEkC,sBAAUC;AAJM,CAAlB;;;IAOMkB,M;;;;;;;;;;;;;;;sGAYK,UAACC,QAAD,EAAWpD,IAAX,EAAoB;AAClC,yBAA4B,MAAKS,KAAjC;AAAA,UAAQ4C,KAAR,gBAAQA,KAAR;AAAA,UAAetC,QAAf,gBAAeA,QAAf;;AACA,UAAMuC,MAAM,mCACPD,KADO,4CAETrD,IAFS,EAEFoD,QAFE,EAAZ;;AAKArC,MAAAA,QAAQ,CAACuC,MAAD,CAAR;AACD,K;;;;;;WAED,kBAAS;AAAA;;AACP,yBAAsE,KAAK7C,KAA3E;AAAA,UAAQ8C,cAAR,gBAAQA,cAAR;AAAA,+CAAwBC,YAAxB;AAAA,UAAwBA,YAAxB,sCAAuC,EAAvC;AAAA,4CAA2CH,KAA3C;AAAA,UAA2CA,KAA3C,mCAAmD,EAAnD;AAAA,UAAuDxC,UAAvD,gBAAuDA,UAAvD;AAEA,0BACE,gCAAC,iBAAD,CAAO,QAAP,qBACE,gCAAC,KAAD;AACE,QAAA,GAAG,EAAC,MADN;AAEE,QAAA,IAAI,EAAC,MAFP;AAGE,QAAA,IAAI,EAAEwC,KAAK,CAAC1D,IAHd;AAIE,QAAA,aAAa,EAAE4D,cAJjB;AAKE,QAAA,WAAW,EAAEC,YAAY,CAAC7D,IAL5B;AAME,QAAA,UAAU,EAAEkB,UANd;AAOE,QAAA,QAAQ,EAAE,kBAAAwC,KAAK;AAAA,iBAAI,MAAI,CAACI,aAAL,CAAmBJ,KAAnB,EAA0B,MAA1B,CAAJ;AAAA;AAPjB,QADF,eAUE,gCAAC,KAAD;AACE,QAAA,GAAG,EAAC,KADN;AAEE,QAAA,IAAI,EAAC,KAFP;AAGE,QAAA,IAAI,EAAEA,KAAK,CAACzD,GAHd;AAIE,QAAA,aAAa,EAAE2D,cAJjB;AAKE,QAAA,WAAW,EAAEC,YAAY,CAAC5D,GAL5B;AAME,QAAA,UAAU,EAAEiB,UANd;AAOE,QAAA,QAAQ,EAAE,kBAAAwC,KAAK;AAAA,iBAAI,MAAI,CAACI,aAAL,CAAmBJ,KAAnB,EAA0B,KAA1B,CAAJ;AAAA;AAPjB,QAVF,eAmBE,gCAAC,KAAD;AACE,QAAA,GAAG,EAAC,QADN;AAEE,QAAA,IAAI,EAAC,QAFP;AAGE,QAAA,IAAI,EAAEA,KAAK,CAACxD,MAHd;AAIE,QAAA,aAAa,EAAE0D,cAJjB;AAKE,QAAA,WAAW,EAAEC,YAAY,CAAC3D,MAL5B;AAME,QAAA,UAAU,EAAEgB,UANd;AAOE,QAAA,QAAQ,EAAE,kBAAAwC,KAAK;AAAA,iBAAI,MAAI,CAACI,aAAL,CAAmBJ,KAAnB,EAA0B,QAA1B,CAAJ;AAAA;AAPjB,QAnBF,eA4BE,gCAAC,KAAD;AACE,QAAA,GAAG,EAAC,OADN;AAEE,QAAA,IAAI,EAAC,OAFP;AAGE,QAAA,IAAI,EAAEA,KAAK,CAACvD,KAHd;AAIE,QAAA,aAAa,EAAEyD,cAJjB;AAKE,QAAA,WAAW,EAAEC,YAAY,CAAC1D,KAL5B;AAME,QAAA,UAAU,EAAEe,UANd;AAOE,QAAA,QAAQ,EAAE,kBAAAwC,KAAK;AAAA,iBAAI,MAAI,CAACI,aAAL,CAAmBJ,KAAnB,EAA0B,OAA1B,CAAJ;AAAA;AAPjB,QA5BF,CADF;AAwCD;;;EAjEyBvB,kBAAMC,S;;;iCAArBoB,M,eACQ;AACjBrC,EAAAA,OAAO,EAAEkB,sBAAUE,MADF;AAEjBwB,EAAAA,SAAS,EAAE1B,sBAAUC,MAFJ;AAGjBsB,EAAAA,cAAc,EAAEvB,sBAAUG,IAHT;AAIjBqB,EAAAA,YAAY,EAAExB,sBAAUE,MAJP;AAKjBmB,EAAAA,KAAK,EAAErB,sBAAU2B,KAAV,CAAgBT,SAAhB,CALU;AAMjBrC,EAAAA,UAAU,EAAEmB,sBAAUE;AANL,C;iCADRiB,M,kBAUW,E;eA0DTA,M","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { types } from '@pie-lib/plot';\nimport { color, Readable } from '@pie-lib/render-ui';\nimport EditableHtml from '@pie-lib/editable-html';\nimport cn from 'classnames';\n\nconst rotations = {\n left: -90,\n top: 0,\n bottom: 0,\n right: 90\n};\n\nexport const getTransform = (side, width, height) => {\n const t = (x, y, rotate) => `translate(${x}, ${y}), rotate(${rotate})`;\n\n if (side === 'left') {\n return t(-20, height / 2, rotations[side]);\n }\n if (side === 'right') {\n return t(width + 30, height / 2, rotations[side]);\n }\n if (side === 'top') {\n return t(width / 2, -20, rotations[side]);\n }\n if (side === 'bottom') {\n return t(width / 2, height + 30, rotations[side]);\n }\n};\n\nconst getY = (side, height) => {\n switch (side) {\n case 'left':\n return -height;\n case 'top':\n return -height;\n case 'right':\n return -height - 10;\n default:\n return -height + 10;\n }\n};\n\nclass RawLabel extends React.Component {\n static propTypes = {\n text: PropTypes.string,\n side: PropTypes.string,\n classes: PropTypes.object,\n disabledLabel: PropTypes.bool,\n placeholder: PropTypes.string,\n graphProps: types.GraphPropsType.isRequired\n };\n\n static defaultProps = {\n onChange: () => {}\n };\n\n render() {\n const { disabledLabel, placeholder, text, side, graphProps, classes, onChange } = this.props;\n const { size, domain, range } = graphProps;\n const totalHeight = (size.height || 500) + (range.padding || 0) * 2;\n const totalWidth = (size.width || 500) + (domain.padding || 0) * 2;\n\n const transform = getTransform(side, totalWidth, totalHeight);\n const width = side === 'left' || side === 'right' ? totalHeight : totalWidth;\n const height = 36;\n const y = getY(side, height);\n const finalHeight = side === 'bottom' ? height + 22 : height + 18;\n\n const activePlugins = [\n 'bold',\n 'italic',\n 'underline',\n 'strikethrough',\n 'math'\n // 'languageCharacters'\n ];\n\n return (\n <foreignObject\n x={-(width / 2)}\n y={y}\n width={width}\n height={finalHeight}\n transform={transform}\n textAnchor=\"middle\"\n >\n <Readable false>\n <EditableHtml\n className={cn(\n {\n [classes.bottomLabel]: side === 'bottom',\n [classes.disabledAxisLabel]: disabledLabel\n },\n classes.axisLabel\n )}\n markup={text || ''}\n onChange={onChange}\n placeholder={!disabledLabel && placeholder}\n toolbarOpts={{\n position: side === 'bottom' ? 'top' : 'bottom',\n noBorder: true\n }}\n activePlugins={activePlugins}\n />\n </Readable>\n </foreignObject>\n );\n }\n}\n\nconst Label = withStyles(theme => ({\n label: {\n fill: color.secondary()\n },\n axisLabel: {\n fontSize: theme.typography.fontSize - 2,\n textAlign: 'center',\n padding: '0 4px'\n },\n disabledAxisLabel: {\n pointerEvents: 'none'\n },\n bottomLabel: {\n marginTop: '44px'\n }\n}))(RawLabel);\n\nexport const LabelType = {\n left: PropTypes.string,\n top: PropTypes.string,\n bottom: PropTypes.string,\n right: PropTypes.string\n};\n\nexport class Labels extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n className: PropTypes.string,\n disabledLabels: PropTypes.bool,\n placeholders: PropTypes.object,\n value: PropTypes.shape(LabelType),\n graphProps: PropTypes.object\n };\n\n static defaultProps = {};\n\n onChangeLabel = (newValue, side) => {\n const { value, onChange } = this.props;\n const labels = {\n ...value,\n [side]: newValue\n };\n\n onChange(labels);\n };\n\n render() {\n const { disabledLabels, placeholders = {}, value = {}, graphProps } = this.props;\n\n return (\n <React.Fragment>\n <Label\n key=\"left\"\n side=\"left\"\n text={value.left}\n disabledLabel={disabledLabels}\n placeholder={placeholders.left}\n graphProps={graphProps}\n onChange={value => this.onChangeLabel(value, 'left')}\n />\n <Label\n key=\"top\"\n side=\"top\"\n text={value.top}\n disabledLabel={disabledLabels}\n placeholder={placeholders.top}\n graphProps={graphProps}\n onChange={value => this.onChangeLabel(value, 'top')}\n />\n <Label\n key=\"bottom\"\n side=\"bottom\"\n text={value.bottom}\n disabledLabel={disabledLabels}\n placeholder={placeholders.bottom}\n graphProps={graphProps}\n onChange={value => this.onChangeLabel(value, 'bottom')}\n />\n <Label\n key=\"right\"\n side=\"right\"\n text={value.right}\n disabledLabel={disabledLabels}\n placeholder={placeholders.right}\n graphProps={graphProps}\n onChange={value => this.onChangeLabel(value, 'right')}\n />\n </React.Fragment>\n );\n }\n}\n\nexport default Labels;\n"],"file":"labels.js"}
|
|
1
|
+
{"version":3,"sources":["../src/labels.jsx"],"names":["rotations","left","top","bottom","right","getTransform","side","width","height","t","x","y","rotate","getY","RawLabel","props","disabledLabel","placeholder","text","graphProps","classes","onChange","size","domain","range","totalHeight","padding","totalWidth","transform","finalHeight","activePlugins","bottomLabel","disabledAxisLabel","axisLabel","position","noBorder","React","Component","PropTypes","string","object","bool","types","GraphPropsType","isRequired","Label","theme","label","fill","color","secondary","fontSize","typography","textAlign","pointerEvents","marginTop","LabelType","Labels","newValue","value","labels","disabledLabels","placeholders","onChangeLabel","className","shape"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { types } from '@pie-lib/plot';\nimport { color, Readable } from '@pie-lib/render-ui';\nimport EditableHtml from '@pie-lib/editable-html';\nimport cn from 'classnames';\n\nconst rotations = {\n left: -90,\n top: 0,\n bottom: 0,\n right: 90,\n};\n\nexport const getTransform = (side, width, height) => {\n const t = (x, y, rotate) => `translate(${x}, ${y}), rotate(${rotate})`;\n\n if (side === 'left') {\n return t(-20, height / 2, rotations[side]);\n }\n if (side === 'right') {\n return t(width + 30, height / 2, rotations[side]);\n }\n if (side === 'top') {\n return t(width / 2, -20, rotations[side]);\n }\n if (side === 'bottom') {\n return t(width / 2, height + 30, rotations[side]);\n }\n};\n\nconst getY = (side, height) => {\n switch (side) {\n case 'left':\n return -height;\n case 'top':\n return -height;\n case 'right':\n return -height - 10;\n default:\n return -height + 10;\n }\n};\n\nclass RawLabel extends React.Component {\n static propTypes = {\n text: PropTypes.string,\n side: PropTypes.string,\n classes: PropTypes.object,\n disabledLabel: PropTypes.bool,\n placeholder: PropTypes.string,\n graphProps: types.GraphPropsType.isRequired,\n };\n\n static defaultProps = {\n onChange: () => {},\n };\n\n render() {\n const { disabledLabel, placeholder, text, side, graphProps, classes, onChange } = this.props;\n const { size, domain, range } = graphProps;\n const totalHeight = (size.height || 500) + (range.padding || 0) * 2;\n const totalWidth = (size.width || 500) + (domain.padding || 0) * 2;\n\n const transform = getTransform(side, totalWidth, totalHeight);\n const width = side === 'left' || side === 'right' ? totalHeight : totalWidth;\n const height = 36;\n const y = getY(side, height);\n const finalHeight = side === 'bottom' ? height + 22 : height + 18;\n\n const activePlugins = [\n 'bold',\n 'italic',\n 'underline',\n 'strikethrough',\n 'math',\n // 'languageCharacters'\n ];\n\n return (\n <foreignObject\n x={-(width / 2)}\n y={y}\n width={width}\n height={finalHeight}\n transform={transform}\n textAnchor=\"middle\"\n >\n <Readable false>\n <EditableHtml\n className={cn(\n {\n [classes.bottomLabel]: side === 'bottom',\n [classes.disabledAxisLabel]: disabledLabel,\n },\n classes.axisLabel,\n )}\n markup={text || ''}\n onChange={onChange}\n placeholder={!disabledLabel && placeholder}\n toolbarOpts={{\n position: side === 'bottom' ? 'top' : 'bottom',\n noBorder: true,\n }}\n activePlugins={activePlugins}\n />\n </Readable>\n </foreignObject>\n );\n }\n}\n\nconst Label = withStyles((theme) => ({\n label: {\n fill: color.secondary(),\n },\n axisLabel: {\n fontSize: theme.typography.fontSize - 2,\n textAlign: 'center',\n padding: '0 4px',\n },\n disabledAxisLabel: {\n pointerEvents: 'none',\n },\n bottomLabel: {\n marginTop: '44px',\n },\n}))(RawLabel);\n\nexport const LabelType = {\n left: PropTypes.string,\n top: PropTypes.string,\n bottom: PropTypes.string,\n right: PropTypes.string,\n};\n\nexport class Labels extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n className: PropTypes.string,\n disabledLabels: PropTypes.bool,\n placeholders: PropTypes.object,\n value: PropTypes.shape(LabelType),\n graphProps: PropTypes.object,\n };\n\n static defaultProps = {};\n\n onChangeLabel = (newValue, side) => {\n const { value, onChange } = this.props;\n const labels = {\n ...value,\n [side]: newValue,\n };\n\n onChange(labels);\n };\n\n render() {\n const { disabledLabels, placeholders = {}, value = {}, graphProps } = this.props;\n\n return (\n <React.Fragment>\n <Label\n key=\"left\"\n side=\"left\"\n text={value.left}\n disabledLabel={disabledLabels}\n placeholder={placeholders.left}\n graphProps={graphProps}\n onChange={(value) => this.onChangeLabel(value, 'left')}\n />\n <Label\n key=\"top\"\n side=\"top\"\n text={value.top}\n disabledLabel={disabledLabels}\n placeholder={placeholders.top}\n graphProps={graphProps}\n onChange={(value) => this.onChangeLabel(value, 'top')}\n />\n <Label\n key=\"bottom\"\n side=\"bottom\"\n text={value.bottom}\n disabledLabel={disabledLabels}\n placeholder={placeholders.bottom}\n graphProps={graphProps}\n onChange={(value) => this.onChangeLabel(value, 'bottom')}\n />\n <Label\n key=\"right\"\n side=\"right\"\n text={value.right}\n disabledLabel={disabledLabels}\n placeholder={placeholders.right}\n graphProps={graphProps}\n onChange={(value) => this.onChangeLabel(value, 'right')}\n />\n </React.Fragment>\n );\n }\n}\n\nexport default Labels;\n"],"file":"labels.js"}
|
package/lib/mark-label.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/mark-label.jsx"],"names":["styles","theme","input","padding","spacing","unit","fontFamily","typography","fontSize","border","color","secondary","borderRadius","primaryDark","disabled","background","disabledMark","position","graphProps","mark","rect","width","height","scale","domain","range","shift","rightEdge","x","bottomEdge","y","h","max","v","min","coordinates","left","top","MarkLabel","props","setInput","_ref","node","classes","externalInputRef","inputRef","label","setLabel","onChange","e","target","value","debouncedLabel","getBoundingClientRect","pos","leftTop","style","pointerEvents","disabledInput","r","propTypes","PropTypes","bool","func","types","GraphPropsType","object"],"mappings":";;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;AAEA,IAAMA,MAAM,GAAG,SAATA,MAAS,
|
|
1
|
+
{"version":3,"sources":["../src/mark-label.jsx"],"names":["styles","theme","input","padding","spacing","unit","fontFamily","typography","fontSize","border","color","secondary","borderRadius","primaryDark","disabled","background","disabledMark","position","graphProps","mark","rect","width","height","scale","domain","range","shift","rightEdge","x","bottomEdge","y","h","max","v","min","coordinates","left","top","MarkLabel","props","setInput","_ref","node","classes","externalInputRef","inputRef","label","setLabel","onChange","e","target","value","debouncedLabel","getBoundingClientRect","pos","leftTop","style","pointerEvents","disabledInput","r","propTypes","PropTypes","bool","func","types","GraphPropsType","object"],"mappings":"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","sourcesContent":["import React, { useState, useCallback, useEffect } from 'react';\nimport cn from 'classnames';\nimport { withStyles } from '@material-ui/core/styles';\nimport AutosizeInput from 'react-input-autosize';\nimport PropTypes from 'prop-types';\nimport { types } from '@pie-lib/plot';\nimport { useDebounce } from './use-debounce';\nimport { color } from '@pie-lib/render-ui';\n\nconst styles = (theme) => ({\n input: {\n float: 'right',\n padding: theme.spacing.unit * 0.5,\n fontFamily: theme.typography.fontFamily,\n fontSize: theme.typography.fontSize,\n border: `solid 1px ${color.secondary()}`,\n borderRadius: '3px',\n color: color.primaryDark(),\n },\n disabled: {\n border: `solid 1px ${color.primaryDark()}`,\n background: color.background(),\n },\n disabledMark: {\n border: `solid 1px ${color.disabled()}`,\n background: color.background(),\n color: color.disabled(),\n },\n});\n\nexport const position = (graphProps, mark, rect) => {\n rect = rect || { width: 0, height: 0 };\n const { scale, domain, range } = graphProps;\n const shift = 10;\n\n const rightEdge = scale.x(mark.x) + rect.width + shift;\n const bottomEdge = scale.y(mark.y) + rect.height + shift;\n\n const h = rightEdge >= scale.x(domain.max) ? 'left' : 'right';\n const v = bottomEdge >= scale.y(range.min) ? 'top' : 'bottom';\n return `${v}-${h}`;\n};\n\nexport const coordinates = (graphProps, mark, rect, position) => {\n const { scale } = graphProps;\n const shift = 10;\n rect = rect || { width: 0, height: 0 };\n\n switch (position) {\n case 'bottom-right': {\n return { left: scale.x(mark.x) + shift, top: scale.y(mark.y) + shift };\n }\n case 'bottom-left': {\n return { left: scale.x(mark.x) - shift - rect.width, top: scale.y(mark.y) + shift };\n }\n case 'top-left': {\n return {\n left: scale.x(mark.x) - shift - rect.width,\n top: scale.y(mark.y) - shift - rect.height,\n };\n }\n case 'top-right': {\n return {\n left: scale.x(mark.x) + shift,\n top: scale.y(mark.y) - shift - rect.height,\n };\n }\n }\n};\n\nexport const MarkLabel = (props) => {\n const [input, setInput] = useState(null);\n const _ref = useCallback((node) => setInput(node));\n\n const { mark, graphProps, classes, disabled, inputRef: externalInputRef } = props;\n const [label, setLabel] = useState(mark.label);\n\n const onChange = (e) => setLabel(e.target.value);\n\n const debouncedLabel = useDebounce(label, 200);\n\n // useState only sets the value once, to synch props to state need useEffect\n useEffect(() => {\n setLabel(mark.label);\n }, [mark.label]);\n\n // pick up the change to debouncedLabel and save it\n useEffect(() => {\n if (typeof debouncedLabel === 'string' && debouncedLabel !== mark.label) {\n props.onChange(debouncedLabel);\n }\n }, [debouncedLabel]);\n\n const rect = input ? input.getBoundingClientRect() : { width: 0, height: 0 };\n const pos = position(graphProps, mark, rect);\n const leftTop = coordinates(graphProps, mark, rect, pos);\n\n const style = {\n position: 'absolute',\n pointerEvents: 'auto',\n ...leftTop,\n };\n\n const disabledInput = disabled || mark.disabled;\n\n return (\n <AutosizeInput\n inputRef={(r) => {\n _ref(r);\n externalInputRef(r);\n }}\n disabled={disabledInput}\n inputClassName={cn(classes.input, disabled && classes.disabled, mark.disabled && classes.disabledMark)}\n value={label}\n style={style}\n onChange={onChange}\n />\n );\n};\n\nMarkLabel.propTypes = {\n disabled: PropTypes.bool,\n onChange: PropTypes.func,\n graphProps: types.GraphPropsType,\n classes: PropTypes.object,\n inputRef: PropTypes.func,\n mark: PropTypes.object,\n};\n\nexport default withStyles(styles)(MarkLabel);\n"],"file":"mark-label.js"}
|
package/lib/toggle-bar.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/toggle-bar.jsx"],"names":["buttonStyles","root","color","text","backgroundColor","primary","selected","background","border","secondary","notSelected","disabled","MiniButton","props","classes","className","value","onClick","propTypes","PropTypes","bool","object","string","disabledClassName","func","ToggleBar","e","onChange","target","textContent","dragIndex","hoverIndex","options","onChangeToolsOrder","dragged","splice","selectedToolType","draggableTools","toolsContainer","map","option","index","allTools","includes","isSelected","toolRef","React","createRef","moveTool","button","select","Component","isRequired","arrayOf","styles","theme","display","flexWrap","marginRight","spacing","unit","marginBottom","under","position","top","left","zIndex","pointerEvents","wrapper","hidden","opacity","DRAG_TYPE","Item","children","connectDragSource","connectDropTarget","connectDragPreview","isDragging","oneOfType","node","itemSource","canDrag","draggable","beginDrag","itemTarget","hover","monitor","getItem","current","hoverBoundingRect","getBoundingClientRect","hoverMiddleX","right","clientOffset","getClientOffset","hoverClientX","x","collectTarget","connect","dropTarget","collectSource","dragSource","dragPreview","DragTool"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport cn from 'classnames';\nimport Button from '@material-ui/core/Button';\nimport { color } from '@pie-lib/render-ui';\nimport { allTools } from './tools/index';\nimport { withDragContext, DragSource, DropTarget } from '@pie-lib/drag';\n\nconst buttonStyles = () => ({\n root: {\n color: color.text(),\n '&:hover': {\n backgroundColor: color.primary()\n }\n },\n selected: {\n backgroundColor: color.background(),\n border: `1px solid ${color.secondary()}`\n },\n notSelected: {\n '& span': {\n color: color.primary()\n },\n backgroundColor: color.background()\n },\n disabled: {\n '& span': {\n color: color.primary()\n },\n backgroundColor: color.disabled()\n }\n});\n\nexport const MiniButton = withStyles(buttonStyles)(props => {\n const { disabled, classes, className, selected, value, onClick } = props;\n\n return (\n <Button\n size=\"small\"\n disabled={disabled}\n className={cn(classes.root, selected && classes.selected, className)}\n classes={{ disabled: cn(disabled && classes.disabled) }}\n value={value}\n key={value}\n variant=\"outlined\"\n onClick={onClick}\n >\n {value}\n </Button>\n );\n});\n\nMiniButton.propTypes = {\n disabled: PropTypes.bool,\n classes: PropTypes.object,\n className: PropTypes.string,\n disabledClassName: PropTypes.string,\n selected: PropTypes.bool,\n value: PropTypes.string,\n onClick: PropTypes.func\n};\n\nexport class ToggleBar extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n options: PropTypes.arrayOf(PropTypes.string),\n selectedToolType: PropTypes.string,\n disabled: PropTypes.bool,\n draggableTools: PropTypes.bool,\n onChange: PropTypes.func,\n onChangeToolsOrder: PropTypes.func\n };\n\n static defaultProps = {};\n\n select = e => this.props.onChange(e.target.textContent);\n\n moveTool = (dragIndex, hoverIndex) => {\n const { options, onChangeToolsOrder } = this.props;\n const dragged = options[dragIndex];\n\n options.splice(dragIndex, 1);\n options.splice(hoverIndex, 0, dragged);\n\n onChangeToolsOrder(options);\n };\n\n render() {\n const { classes, className, disabled, options, selectedToolType, draggableTools } = this.props;\n\n return (\n <div className={cn(className, classes.toolsContainer)}>\n {(options || []).map((option, index) => {\n if ((allTools || []).includes(option)) {\n const isSelected = option === selectedToolType;\n const toolRef = React.createRef();\n\n return (\n <DragTool\n key={option}\n index={index}\n draggable={draggableTools}\n moveTool={this.moveTool}\n classes={classes}\n toolRef={toolRef}\n >\n <MiniButton\n className={cn(classes.button, isSelected && classes.selected)}\n disabled={disabled}\n disableRipple={true}\n onClick={this.select}\n value={option}\n selected={isSelected}\n />\n </DragTool>\n );\n }\n })}\n </div>\n );\n }\n}\n\nconst styles = theme => ({\n toolsContainer: {\n display: 'flex',\n flexWrap: 'wrap'\n },\n button: {\n marginRight: theme.spacing.unit / 2,\n marginBottom: theme.spacing.unit / 2,\n color: color.text(),\n backgroundColor: color.background()\n },\n under: {\n position: 'absolute',\n top: 0,\n left: 0,\n zIndex: -1,\n pointerEvents: 'none'\n },\n wrapper: {\n position: 'relative'\n },\n hidden: {\n opacity: 0\n }\n});\n\nexport default withDragContext(withStyles(styles)(ToggleBar));\n\nconst DRAG_TYPE = 'tool';\n\nexport class Item extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n connectDragSource: PropTypes.func.isRequired,\n connectDragPreview: PropTypes.func.isRequired,\n connectDropTarget: PropTypes.func.isRequired,\n isDragging: PropTypes.bool\n };\n\n static defaultProps = {};\n\n render() {\n const {\n classes,\n children,\n connectDragSource,\n connectDropTarget,\n connectDragPreview,\n isDragging,\n toolRef\n } = this.props;\n\n return (\n <div className={classes.wrapper} ref={toolRef}>\n {connectDragSource(\n connectDropTarget(<div className={isDragging && classes.hidden}>{children}</div>)\n )}\n {connectDragPreview(<div className={classes.under}>{children}</div>)}\n </div>\n );\n }\n}\n\nconst itemSource = {\n canDrag(props) {\n return props.draggable;\n },\n beginDrag(props) {\n return {\n index: props.index\n };\n }\n};\n\nconst itemTarget = {\n hover(props, monitor) {\n const dragIndex = monitor.getItem().index;\n const { toolRef, index: hoverIndex } = props;\n\n if (dragIndex === hoverIndex || !toolRef.current) {\n return;\n }\n\n const hoverBoundingRect = toolRef.current?.getBoundingClientRect();\n const hoverMiddleX = (hoverBoundingRect.right - hoverBoundingRect.left) / 2;\n const clientOffset = monitor.getClientOffset();\n const hoverClientX = clientOffset.x - hoverBoundingRect.left;\n\n if (dragIndex < hoverIndex && hoverClientX < hoverMiddleX) {\n return;\n }\n\n if (dragIndex > hoverIndex && hoverClientX > hoverMiddleX) {\n return;\n }\n\n props.moveTool(dragIndex, hoverIndex);\n monitor.getItem().index = hoverIndex;\n }\n};\n\nconst collectTarget = connect => ({ connectDropTarget: connect.dropTarget() });\n\nconst collectSource = (connect, monitor) => ({\n connectDragSource: connect.dragSource(),\n connectDragPreview: connect.dragPreview(),\n isDragging: monitor.isDragging()\n});\n\nconst DragTool = DropTarget(\n DRAG_TYPE,\n itemTarget,\n collectTarget\n)(DragSource(DRAG_TYPE, itemSource, collectSource)(Item));\n"],"file":"toggle-bar.js"}
|
|
1
|
+
{"version":3,"sources":["../src/toggle-bar.jsx"],"names":["buttonStyles","root","color","text","backgroundColor","primary","selected","background","border","secondary","notSelected","disabled","MiniButton","props","classes","className","value","onClick","propTypes","PropTypes","bool","object","string","disabledClassName","func","ToggleBar","e","onChange","target","textContent","dragIndex","hoverIndex","options","onChangeToolsOrder","dragged","splice","selectedToolType","draggableTools","toolsContainer","map","option","index","allTools","includes","isSelected","toolRef","React","createRef","moveTool","button","select","Component","isRequired","arrayOf","styles","theme","display","flexWrap","marginRight","spacing","unit","marginBottom","under","position","top","left","zIndex","pointerEvents","wrapper","hidden","opacity","DRAG_TYPE","Item","children","connectDragSource","connectDropTarget","connectDragPreview","isDragging","oneOfType","node","itemSource","canDrag","draggable","beginDrag","itemTarget","hover","monitor","getItem","current","hoverBoundingRect","getBoundingClientRect","hoverMiddleX","right","clientOffset","getClientOffset","hoverClientX","x","collectTarget","connect","dropTarget","collectSource","dragSource","dragPreview","DragTool"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport cn from 'classnames';\nimport Button from '@material-ui/core/Button';\nimport { color } from '@pie-lib/render-ui';\nimport { allTools } from './tools/index';\nimport { withDragContext, DragSource, DropTarget } from '@pie-lib/drag';\n\nconst buttonStyles = () => ({\n root: {\n color: color.text(),\n '&:hover': {\n backgroundColor: color.primary(),\n },\n },\n selected: {\n backgroundColor: color.background(),\n border: `1px solid ${color.secondary()}`,\n },\n notSelected: {\n '& span': {\n color: color.primary(),\n },\n backgroundColor: color.background(),\n },\n disabled: {\n '& span': {\n color: color.primary(),\n },\n backgroundColor: color.disabled(),\n },\n});\n\nexport const MiniButton = withStyles(buttonStyles)((props) => {\n const { disabled, classes, className, selected, value, onClick } = props;\n\n return (\n <Button\n size=\"small\"\n disabled={disabled}\n className={cn(classes.root, selected && classes.selected, className)}\n classes={{ disabled: cn(disabled && classes.disabled) }}\n value={value}\n key={value}\n variant=\"outlined\"\n onClick={onClick}\n >\n {value}\n </Button>\n );\n});\n\nMiniButton.propTypes = {\n disabled: PropTypes.bool,\n classes: PropTypes.object,\n className: PropTypes.string,\n disabledClassName: PropTypes.string,\n selected: PropTypes.bool,\n value: PropTypes.string,\n onClick: PropTypes.func,\n};\n\nexport class ToggleBar extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n options: PropTypes.arrayOf(PropTypes.string),\n selectedToolType: PropTypes.string,\n disabled: PropTypes.bool,\n draggableTools: PropTypes.bool,\n onChange: PropTypes.func,\n onChangeToolsOrder: PropTypes.func,\n };\n\n static defaultProps = {};\n\n select = (e) => this.props.onChange(e.target.textContent);\n\n moveTool = (dragIndex, hoverIndex) => {\n const { options, onChangeToolsOrder } = this.props;\n const dragged = options[dragIndex];\n\n options.splice(dragIndex, 1);\n options.splice(hoverIndex, 0, dragged);\n\n onChangeToolsOrder(options);\n };\n\n render() {\n const { classes, className, disabled, options, selectedToolType, draggableTools } = this.props;\n\n return (\n <div className={cn(className, classes.toolsContainer)}>\n {(options || []).map((option, index) => {\n if ((allTools || []).includes(option)) {\n const isSelected = option === selectedToolType;\n const toolRef = React.createRef();\n\n return (\n <DragTool\n key={option}\n index={index}\n draggable={draggableTools}\n moveTool={this.moveTool}\n classes={classes}\n toolRef={toolRef}\n >\n <MiniButton\n className={cn(classes.button, isSelected && classes.selected)}\n disabled={disabled}\n disableRipple={true}\n onClick={this.select}\n value={option}\n selected={isSelected}\n />\n </DragTool>\n );\n }\n })}\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n toolsContainer: {\n display: 'flex',\n flexWrap: 'wrap',\n },\n button: {\n marginRight: theme.spacing.unit / 2,\n marginBottom: theme.spacing.unit / 2,\n color: color.text(),\n backgroundColor: color.background(),\n },\n under: {\n position: 'absolute',\n top: 0,\n left: 0,\n zIndex: -1,\n pointerEvents: 'none',\n },\n wrapper: {\n position: 'relative',\n },\n hidden: {\n opacity: 0,\n },\n});\n\nexport default withDragContext(withStyles(styles)(ToggleBar));\n\nconst DRAG_TYPE = 'tool';\n\nexport class Item extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n connectDragSource: PropTypes.func.isRequired,\n connectDragPreview: PropTypes.func.isRequired,\n connectDropTarget: PropTypes.func.isRequired,\n isDragging: PropTypes.bool,\n };\n\n static defaultProps = {};\n\n render() {\n const {\n classes,\n children,\n connectDragSource,\n connectDropTarget,\n connectDragPreview,\n isDragging,\n toolRef,\n } = this.props;\n\n return (\n <div className={classes.wrapper} ref={toolRef}>\n {connectDragSource(connectDropTarget(<div className={isDragging && classes.hidden}>{children}</div>))}\n {connectDragPreview(<div className={classes.under}>{children}</div>)}\n </div>\n );\n }\n}\n\nconst itemSource = {\n canDrag(props) {\n return props.draggable;\n },\n beginDrag(props) {\n return {\n index: props.index,\n };\n },\n};\n\nconst itemTarget = {\n hover(props, monitor) {\n const dragIndex = monitor.getItem().index;\n const { toolRef, index: hoverIndex } = props;\n\n if (dragIndex === hoverIndex || !toolRef.current) {\n return;\n }\n\n const hoverBoundingRect = toolRef.current?.getBoundingClientRect();\n const hoverMiddleX = (hoverBoundingRect.right - hoverBoundingRect.left) / 2;\n const clientOffset = monitor.getClientOffset();\n const hoverClientX = clientOffset.x - hoverBoundingRect.left;\n\n if (dragIndex < hoverIndex && hoverClientX < hoverMiddleX) {\n return;\n }\n\n if (dragIndex > hoverIndex && hoverClientX > hoverMiddleX) {\n return;\n }\n\n props.moveTool(dragIndex, hoverIndex);\n monitor.getItem().index = hoverIndex;\n },\n};\n\nconst collectTarget = (connect) => ({ connectDropTarget: connect.dropTarget() });\n\nconst collectSource = (connect, monitor) => ({\n connectDragSource: connect.dragSource(),\n connectDragPreview: connect.dragPreview(),\n isDragging: monitor.isDragging(),\n});\n\nconst DragTool = DropTarget(\n DRAG_TYPE,\n itemTarget,\n collectTarget,\n)(DragSource(DRAG_TYPE, itemSource, collectSource)(Item));\n"],"file":"toggle-bar.js"}
|
package/lib/tool-menu.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/tool-menu.jsx"],"names":["ToolMenu","tools","showLabel","onChangeTools","props","push","className","currentToolType","disabled","draggableTools","labelModeEnabled","onToggleLabelMode","onChange","toolbarTools","some","t","filter","tT","updateToolsOrder","React","Component","PropTypes","string","bool","func","arrayOf"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;;;;;;;;;IAEaA,Q;;;;;;;;;;;;;;;yGAiBQ,UAACC,KAAD,EAAQC,SAAR,EAAsB;AACvC,UAAQC,aAAR,GAA0B,MAAKC,KAA/B,CAAQD,aAAR;;AAEA,UAAID,SAAJ,EAAe;AACbD,QAAAA,KAAK,CAACI,IAAN,CAAW,OAAX;AACD;;AAEDF,MAAAA,aAAa,CAACF,KAAD,CAAb;AACD,K;;;;;;WAED,kBAAS;AAAA;;AACP,wBAQI,KAAKG,KART;AAAA,UACEE,SADF,eACEA,SADF;AAAA,UAEEC,eAFF,eAEEA,eAFF;AAAA,UAGEC,QAHF,eAGEA,QAHF;AAAA,UAIEC,cAJF,eAIEA,cAJF;AAAA,UAKEC,gBALF,eAKEA,gBALF;AAAA,UAMEC,iBANF,eAMEA,iBANF;AAAA,UAOEC,QAPF,eAOEA,QAPF;AASA,UAAMC,YAAN,GAAuB,KAAKT,KAA5B,CAAMS,YAAN;AAEA,UAAMX,SAAS,GAAGW,YAAY,IAAIA,YAAY,CAACC,IAAb,CAAkB,
|
|
1
|
+
{"version":3,"sources":["../src/tool-menu.jsx"],"names":["ToolMenu","tools","showLabel","onChangeTools","props","push","className","currentToolType","disabled","draggableTools","labelModeEnabled","onToggleLabelMode","onChange","toolbarTools","some","t","filter","tT","updateToolsOrder","React","Component","PropTypes","string","bool","func","arrayOf"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;;;;;;;;;IAEaA,Q;;;;;;;;;;;;;;;yGAiBQ,UAACC,KAAD,EAAQC,SAAR,EAAsB;AACvC,UAAQC,aAAR,GAA0B,MAAKC,KAA/B,CAAQD,aAAR;;AAEA,UAAID,SAAJ,EAAe;AACbD,QAAAA,KAAK,CAACI,IAAN,CAAW,OAAX;AACD;;AAEDF,MAAAA,aAAa,CAACF,KAAD,CAAb;AACD,K;;;;;;WAED,kBAAS;AAAA;;AACP,wBAQI,KAAKG,KART;AAAA,UACEE,SADF,eACEA,SADF;AAAA,UAEEC,eAFF,eAEEA,eAFF;AAAA,UAGEC,QAHF,eAGEA,QAHF;AAAA,UAIEC,cAJF,eAIEA,cAJF;AAAA,UAKEC,gBALF,eAKEA,gBALF;AAAA,UAMEC,iBANF,eAMEA,iBANF;AAAA,UAOEC,QAPF,eAOEA,QAPF;AASA,UAAMC,YAAN,GAAuB,KAAKT,KAA5B,CAAMS,YAAN;AAEA,UAAMX,SAAS,GAAGW,YAAY,IAAIA,YAAY,CAACC,IAAb,CAAkB,UAACC,CAAD;AAAA,eAAOA,CAAC,KAAK,OAAb;AAAA,OAAlB,CAAlC;AAEAF,MAAAA,YAAY,GAAG,CAACA,YAAY,IAAI,EAAjB,EAAqBG,MAArB,CAA4B,UAACC,EAAD;AAAA,eAAQA,EAAE,KAAK,OAAf;AAAA,OAA5B,CAAf;AAEA,0BACE;AAAK,QAAA,SAAS,EAAE,4BAAWX,SAAX;AAAhB,sBACE,gCAAC,qBAAD;AACE,QAAA,QAAQ,EAAEE,QADZ;AAEE,QAAA,cAAc,EAAEC,cAFlB;AAGE,QAAA,OAAO,EAAEI,YAHX;AAIE,QAAA,gBAAgB,EAAEN,eAJpB;AAKE,QAAA,QAAQ,EAAEK,QALZ;AAME,QAAA,kBAAkB,EAAE,4BAACX,KAAD;AAAA,iBAAW,MAAI,CAACiB,gBAAL,CAAsBjB,KAAtB,EAA6BC,SAA7B,CAAX;AAAA;AANtB,QADF,EAUGA,SAAS,iBACR,gCAAC,qBAAD;AAAY,QAAA,QAAQ,EAAEM,QAAtB;AAAgC,QAAA,KAAK,EAAE,OAAvC;AAAgD,QAAA,OAAO,EAAEG,iBAAzD;AAA4E,QAAA,QAAQ,EAAED;AAAtF,QAXJ,CADF;AAgBD;;;EA3D2BS,kBAAMC,S;;;iCAAvBpB,Q,eACQ;AACjBM,EAAAA,SAAS,EAAEe,sBAAUC,MADJ;AAEjBf,EAAAA,eAAe,EAAEc,sBAAUC,MAFV;AAGjBd,EAAAA,QAAQ,EAAEa,sBAAUE,IAHH;AAIjBd,EAAAA,cAAc,EAAEY,sBAAUE,IAJT;AAKjBb,EAAAA,gBAAgB,EAAEW,sBAAUE,IALX;AAMjBX,EAAAA,QAAQ,EAAES,sBAAUG,IANH;AAOjBb,EAAAA,iBAAiB,EAAEU,sBAAUG,IAPZ;AAQjBrB,EAAAA,aAAa,EAAEkB,sBAAUG,IARR;AASjBX,EAAAA,YAAY,EAAEQ,sBAAUI,OAAV,CAAkBJ,sBAAUC,MAA5B;AATG,C;iCADRtB,Q,kBAaW;AACpBa,EAAAA,YAAY,EAAE;AADM,C;eAiDTb,Q","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\n\nimport ToggleBar, { MiniButton } from './toggle-bar';\n\nexport class ToolMenu extends React.Component {\n static propTypes = {\n className: PropTypes.string,\n currentToolType: PropTypes.string,\n disabled: PropTypes.bool,\n draggableTools: PropTypes.bool,\n labelModeEnabled: PropTypes.bool,\n onChange: PropTypes.func,\n onToggleLabelMode: PropTypes.func,\n onChangeTools: PropTypes.func,\n toolbarTools: PropTypes.arrayOf(PropTypes.string),\n };\n\n static defaultProps = {\n toolbarTools: [],\n };\n\n updateToolsOrder = (tools, showLabel) => {\n const { onChangeTools } = this.props;\n\n if (showLabel) {\n tools.push('label');\n }\n\n onChangeTools(tools);\n };\n\n render() {\n const {\n className,\n currentToolType,\n disabled,\n draggableTools,\n labelModeEnabled,\n onToggleLabelMode,\n onChange,\n } = this.props;\n let { toolbarTools } = this.props;\n\n const showLabel = toolbarTools && toolbarTools.some((t) => t === 'label');\n\n toolbarTools = (toolbarTools || []).filter((tT) => tT !== 'label');\n\n return (\n <div className={classNames(className)}>\n <ToggleBar\n disabled={disabled}\n draggableTools={draggableTools}\n options={toolbarTools}\n selectedToolType={currentToolType}\n onChange={onChange}\n onChangeToolsOrder={(tools) => this.updateToolsOrder(tools, showLabel)}\n />\n\n {showLabel && (\n <MiniButton disabled={disabled} value={'Label'} onClick={onToggleLabelMode} selected={labelModeEnabled} />\n )}\n </div>\n );\n }\n}\n\nexport default ToolMenu;\n"],"file":"tool-menu.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/tools/circle/bg-circle.jsx"],"names":["RawCircle","props","classes","disabled","className","correctness","x","y","radius","graphProps","rest","scale","rx","Math","abs","ry","bgCircle","React","Component","PropTypes","object","isRequired","string","bool","number","types","GraphPropsType","applyStyle","fn","strokeWidth","styles","fill","stroke","color","primaryLight","transition","primaryDark","correct","incorrect","BgCircle","bounds","domain","range","area","left","top","bottom","right","utils","anchorPoint","fromDelta","delta","newPoint","point","add"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;AAEA;AACA;AACA;AACA;AACA;AACA;IACMA,S;;;;;;;;;;;;WAYJ,kBAAS;AACP,
|
|
1
|
+
{"version":3,"sources":["../../../src/tools/circle/bg-circle.jsx"],"names":["RawCircle","props","classes","disabled","className","correctness","x","y","radius","graphProps","rest","scale","rx","Math","abs","ry","bgCircle","React","Component","PropTypes","object","isRequired","string","bool","number","types","GraphPropsType","applyStyle","fn","strokeWidth","styles","fill","stroke","color","primaryLight","transition","primaryDark","correct","incorrect","BgCircle","bounds","domain","range","area","left","top","bottom","right","utils","anchorPoint","fromDelta","delta","newPoint","point","add"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport { types, gridDraggable } from '@pie-lib/plot';\nimport { color } from '@pie-lib/render-ui';\nimport * as utils from '../../utils';\nimport { disabled, correct, incorrect } from '../shared/styles';\n\n/**\n * A low level circle component\n *\n * TODO: This and base point have a lot of similarities - merge commonality\n *\n */\nclass RawCircle extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n correctness: PropTypes.string,\n disabled: PropTypes.bool,\n x: PropTypes.number.isRequired,\n y: PropTypes.number.isRequired,\n radius: PropTypes.number,\n graphProps: types.GraphPropsType.isRequired,\n };\n\n render() {\n const { classes, disabled, className, correctness, x, y, radius, graphProps, ...rest } = this.props;\n const { scale } = graphProps;\n const rx = Math.abs(scale.x(x + radius) - scale.x(x));\n const ry = Math.abs(scale.y(y + radius) - scale.y(y));\n\n return (\n <ellipse\n className={classNames(classes.bgCircle, disabled && classes.disabled, classes[correctness], className)}\n cx={scale.x(x)}\n cy={scale.y(y)}\n rx={rx}\n ry={ry}\n {...rest}\n />\n );\n }\n}\n\nconst applyStyle = (fn) => ({\n ...fn('stroke'),\n '&:hover': {\n strokeWidth: 3,\n ...fn('stroke'),\n },\n});\n\nconst styles = () => ({\n bgCircle: {\n fill: 'transparent',\n stroke: color.primaryLight(),\n strokeWidth: 3,\n transition: 'stroke 200ms ease-in, stroke-width 200ms ease-in',\n '&:hover': {\n strokeWidth: 6,\n stroke: color.primaryDark(),\n },\n },\n disabled: applyStyle(disabled),\n correct: applyStyle(correct),\n incorrect: applyStyle(incorrect),\n});\n\nexport const BgCircle = withStyles(styles)(RawCircle);\n\nexport default gridDraggable({\n bounds: (props, { domain, range }) => {\n const { x, y } = props;\n const area = { left: x, top: y, bottom: y, right: x };\n return utils.bounds(area, domain, range);\n },\n anchorPoint: (props) => {\n const { x, y } = props;\n return { x, y };\n },\n fromDelta: (props, delta) => {\n const newPoint = utils.point(props).add(utils.point(delta));\n return newPoint;\n },\n})(BgCircle);\n"],"file":"bg-circle.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/tools/circle/component.jsx"],"names":["opacityPulsate","opacity","getRadius","from","outer","c","dist","RawBaseCircle","point","props","middle","onChange","to","draggedFrom","label","onChangePoint","draggedTo","diff","sub","updated","setState","draggedroot","undefined","draggedOuter","isCircleDrag","type","changeMarkProps","update","input","focus","disabled","classes","coordinatesOnHover","building","onDragStart","onDragStop","onClick","correctness","graphProps","labelNode","labelModeEnabled","common","radius","fromLabelNode","toLabelNode","circleLabelNode","hasOwnProperty","ReactDOM","createPortal","r","labelChange","bgCircleBuilding","x","y","dragCircle","clickPoint","dragTo","dragFrom","React","Component","PropTypes","bool","object","isRequired","className","string","types","PointType","func","GraphPropsType","BaseCircle","theme","outerLine","fill","stroke","color","primaryLight","strokeWidth","primaryDark","root","secondaryLight","animation","animationIterationCount"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { BasePoint } from '../shared/point';\nimport BgCircle from './bg-circle';\nimport { getMiddleOfTwoPoints, point, equalPoints } from '../../utils';\nimport classNames from 'classnames';\nimport { types } from '@pie-lib/plot';\nimport { rootEdgeComponent } from '../shared/line/with-root-edge';\nimport ReactDOM from 'react-dom';\nimport MarkLabel from '../../mark-label';\nimport isEmpty from 'lodash/isEmpty';\nimport { color } from '@pie-lib/render-ui';\n\nconst opacityPulsate = opacity => ({\n '0%': { opacity: '0.0' },\n '50%': { opacity },\n '100%': { opacity: '0.0' }\n});\n\nconst getRadius = (from, outer) => {\n const c = point(from);\n return c.dist(point(outer));\n};\n\nexport class RawBaseCircle extends React.Component {\n static propTypes = {\n building: PropTypes.bool,\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n coordinatesOnHover: PropTypes.bool,\n correctness: PropTypes.string,\n from: types.PointType,\n disabled: PropTypes.bool,\n to: types.PointType,\n middle: types.PointType,\n onChange: PropTypes.func.isRequired,\n onDragStart: PropTypes.func,\n onDragStop: PropTypes.func,\n graphProps: types.GraphPropsType.isRequired,\n onClick: PropTypes.func,\n labelNode: PropTypes.object,\n labelModeEnabled: PropTypes.bool,\n changeMarkProps: PropTypes.func\n };\n\n static defaultProps = {\n onClick: () => ({})\n };\n\n onChangePoint = point => {\n const { middle, onChange } = this.props;\n const { from, to } = point;\n\n // because point.from.label and point.to.label can be different\n if (!equalPoints(from, to)) {\n if (middle) {\n point.middle = { ...middle, ...getMiddleOfTwoPoints(from, to) };\n }\n\n onChange(point);\n }\n };\n\n dragFrom = draggedFrom => {\n const { from, to } = this.props;\n\n if (from.label) {\n draggedFrom.label = from.label;\n }\n\n if (!equalPoints(draggedFrom, to)) {\n this.onChangePoint({ from: draggedFrom, to });\n }\n };\n\n dragTo = draggedTo => {\n const { from, to } = this.props;\n\n if (to.label) {\n draggedTo.label = to.label;\n }\n\n if (!equalPoints(from, draggedTo)) {\n this.onChangePoint({ from, to: draggedTo });\n }\n };\n\n dragCircle = draggedFrom => {\n const { from, to, onChange, middle } = this.props;\n const diff = point(from).sub(point(draggedFrom));\n const draggedTo = point(to).sub(diff);\n\n if (from.label) {\n draggedFrom.label = from.label;\n }\n\n if (to.label) {\n draggedTo.label = to.label;\n }\n\n const updated = { from: draggedFrom, to: draggedTo };\n\n if (middle) {\n updated.middle = { ...middle, ...getMiddleOfTwoPoints(draggedFrom, draggedTo) };\n }\n\n this.setState(\n {\n draggedroot: undefined,\n draggedOuter: undefined,\n isCircleDrag: false\n },\n () => {\n onChange(updated);\n }\n );\n };\n\n labelChange = (point, type) => {\n const { changeMarkProps } = this.props;\n const update = { ...point };\n\n if (!point.label || isEmpty(point.label)) {\n delete update.label;\n }\n\n changeMarkProps({ [type]: update });\n };\n\n clickPoint = (point, type) => {\n const { changeMarkProps, from, to } = this.props;\n\n if (type === 'middle' && !point && from && to) {\n point = { ...point, ...getMiddleOfTwoPoints(from, to) };\n }\n\n changeMarkProps({ from, to, [type]: { label: '', ...point } });\n\n if (this.input[type]) {\n this.input[type].focus();\n }\n };\n\n // IMPORTANT, do not remove\n input = {};\n\n render() {\n let {\n from,\n to,\n middle,\n disabled,\n classes,\n coordinatesOnHover,\n building,\n onDragStart,\n onDragStop,\n onClick,\n correctness,\n graphProps,\n labelNode,\n labelModeEnabled\n } = this.props;\n const common = { onDragStart, onDragStop, graphProps, onClick };\n\n to = to || from;\n\n const radius = getRadius(from, to);\n\n let fromLabelNode = null;\n let toLabelNode = null;\n let circleLabelNode = null;\n\n if (labelNode) {\n if (from && from.hasOwnProperty('label')) {\n fromLabelNode = ReactDOM.createPortal(\n <MarkLabel\n inputRef={r => (this.input.from = r)}\n disabled={!labelModeEnabled}\n mark={from}\n graphProps={graphProps}\n onChange={label => this.labelChange({ ...from, label }, 'from')}\n />,\n labelNode\n );\n }\n\n if (to && to.hasOwnProperty('label')) {\n toLabelNode = ReactDOM.createPortal(\n <MarkLabel\n inputRef={r => (this.input.to = r)}\n disabled={!labelModeEnabled}\n mark={to}\n graphProps={graphProps}\n onChange={label => this.labelChange({ ...to, label }, 'to')}\n />,\n labelNode\n );\n }\n\n if (middle && middle.hasOwnProperty('label')) {\n circleLabelNode = ReactDOM.createPortal(\n <MarkLabel\n inputRef={r => (this.input.middle = r)}\n disabled={!labelModeEnabled}\n mark={middle}\n graphProps={graphProps}\n onChange={label => this.labelChange({ ...middle, label }, 'middle')}\n />,\n labelNode\n );\n }\n }\n\n return (\n <g>\n <BgCircle\n disabled={building || disabled}\n correctness={correctness}\n className={classNames(building && classes.bgCircleBuilding)}\n x={from.x}\n y={from.y}\n radius={radius}\n onDrag={this.dragCircle}\n {...common}\n onClick={labelModeEnabled ? () => this.clickPoint(middle, 'middle') : common.onClick}\n />\n {circleLabelNode}\n\n <BasePoint\n disabled={building || disabled}\n coordinatesOnHover={coordinatesOnHover}\n correctness={correctness}\n labelNode={labelNode}\n x={to.x}\n y={to.y}\n onDrag={this.dragTo}\n {...common}\n onClick={labelModeEnabled ? () => this.clickPoint(to, 'to') : common.onClick}\n />\n {toLabelNode}\n\n <BasePoint\n disabled={building || disabled}\n coordinatesOnHover={coordinatesOnHover}\n correctness={correctness}\n labelNode={labelNode}\n x={from.x}\n y={from.y}\n className={classes.from}\n onDrag={this.dragFrom}\n {...common}\n onClick={labelModeEnabled ? () => this.clickPoint(from, 'from') : common.onClick}\n />\n {fromLabelNode}\n </g>\n );\n }\n}\n\nexport const BaseCircle = withStyles(theme => ({\n outerLine: {\n fill: 'rgb(0,0,0,0)', // TODO hardcoded color\n stroke: color.primaryLight(),\n strokeWidth: 4,\n '&:hover': {\n strokeWidth: 6,\n stroke: color.primaryDark()\n }\n },\n root: {},\n bgCircleBuilding: {\n stroke: color.secondaryLight(),\n animation: 'opacityPulse 2s ease-out',\n animationIterationCount: 'infinite',\n opacity: 1\n },\n '@keyframes opacityPulse': opacityPulsate('0.3')\n}))(RawBaseCircle);\n\nconst Component = rootEdgeComponent(BaseCircle);\nexport default Component;\n"],"file":"component.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/tools/circle/component.jsx"],"names":["opacityPulsate","opacity","getRadius","from","outer","c","dist","RawBaseCircle","point","props","middle","onChange","to","draggedFrom","label","onChangePoint","draggedTo","diff","sub","updated","setState","draggedroot","undefined","draggedOuter","isCircleDrag","type","changeMarkProps","update","input","focus","disabled","classes","coordinatesOnHover","building","onDragStart","onDragStop","onClick","correctness","graphProps","labelNode","labelModeEnabled","common","radius","fromLabelNode","toLabelNode","circleLabelNode","hasOwnProperty","ReactDOM","createPortal","r","labelChange","bgCircleBuilding","x","y","dragCircle","clickPoint","dragTo","dragFrom","React","Component","PropTypes","bool","object","isRequired","className","string","types","PointType","func","GraphPropsType","BaseCircle","theme","outerLine","fill","stroke","color","primaryLight","strokeWidth","primaryDark","root","secondaryLight","animation","animationIterationCount"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { BasePoint } from '../shared/point';\nimport BgCircle from './bg-circle';\nimport { getMiddleOfTwoPoints, point, equalPoints } from '../../utils';\nimport classNames from 'classnames';\nimport { types } from '@pie-lib/plot';\nimport { rootEdgeComponent } from '../shared/line/with-root-edge';\nimport ReactDOM from 'react-dom';\nimport MarkLabel from '../../mark-label';\nimport isEmpty from 'lodash/isEmpty';\nimport { color } from '@pie-lib/render-ui';\n\nconst opacityPulsate = (opacity) => ({\n '0%': { opacity: '0.0' },\n '50%': { opacity },\n '100%': { opacity: '0.0' },\n});\n\nconst getRadius = (from, outer) => {\n const c = point(from);\n return c.dist(point(outer));\n};\n\nexport class RawBaseCircle extends React.Component {\n static propTypes = {\n building: PropTypes.bool,\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n coordinatesOnHover: PropTypes.bool,\n correctness: PropTypes.string,\n from: types.PointType,\n disabled: PropTypes.bool,\n to: types.PointType,\n middle: types.PointType,\n onChange: PropTypes.func.isRequired,\n onDragStart: PropTypes.func,\n onDragStop: PropTypes.func,\n graphProps: types.GraphPropsType.isRequired,\n onClick: PropTypes.func,\n labelNode: PropTypes.object,\n labelModeEnabled: PropTypes.bool,\n changeMarkProps: PropTypes.func,\n };\n\n static defaultProps = {\n onClick: () => ({}),\n };\n\n onChangePoint = (point) => {\n const { middle, onChange } = this.props;\n const { from, to } = point;\n\n // because point.from.label and point.to.label can be different\n if (!equalPoints(from, to)) {\n if (middle) {\n point.middle = { ...middle, ...getMiddleOfTwoPoints(from, to) };\n }\n\n onChange(point);\n }\n };\n\n dragFrom = (draggedFrom) => {\n const { from, to } = this.props;\n\n if (from.label) {\n draggedFrom.label = from.label;\n }\n\n if (!equalPoints(draggedFrom, to)) {\n this.onChangePoint({ from: draggedFrom, to });\n }\n };\n\n dragTo = (draggedTo) => {\n const { from, to } = this.props;\n\n if (to.label) {\n draggedTo.label = to.label;\n }\n\n if (!equalPoints(from, draggedTo)) {\n this.onChangePoint({ from, to: draggedTo });\n }\n };\n\n dragCircle = (draggedFrom) => {\n const { from, to, onChange, middle } = this.props;\n const diff = point(from).sub(point(draggedFrom));\n const draggedTo = point(to).sub(diff);\n\n if (from.label) {\n draggedFrom.label = from.label;\n }\n\n if (to.label) {\n draggedTo.label = to.label;\n }\n\n const updated = { from: draggedFrom, to: draggedTo };\n\n if (middle) {\n updated.middle = { ...middle, ...getMiddleOfTwoPoints(draggedFrom, draggedTo) };\n }\n\n this.setState(\n {\n draggedroot: undefined,\n draggedOuter: undefined,\n isCircleDrag: false,\n },\n () => {\n onChange(updated);\n },\n );\n };\n\n labelChange = (point, type) => {\n const { changeMarkProps } = this.props;\n const update = { ...point };\n\n if (!point.label || isEmpty(point.label)) {\n delete update.label;\n }\n\n changeMarkProps({ [type]: update });\n };\n\n clickPoint = (point, type) => {\n const { changeMarkProps, from, to } = this.props;\n\n if (type === 'middle' && !point && from && to) {\n point = { ...point, ...getMiddleOfTwoPoints(from, to) };\n }\n\n changeMarkProps({ from, to, [type]: { label: '', ...point } });\n\n if (this.input[type]) {\n this.input[type].focus();\n }\n };\n\n // IMPORTANT, do not remove\n input = {};\n\n render() {\n let {\n from,\n to,\n middle,\n disabled,\n classes,\n coordinatesOnHover,\n building,\n onDragStart,\n onDragStop,\n onClick,\n correctness,\n graphProps,\n labelNode,\n labelModeEnabled,\n } = this.props;\n const common = { onDragStart, onDragStop, graphProps, onClick };\n\n to = to || from;\n\n const radius = getRadius(from, to);\n\n let fromLabelNode = null;\n let toLabelNode = null;\n let circleLabelNode = null;\n\n if (labelNode) {\n if (from && from.hasOwnProperty('label')) {\n fromLabelNode = ReactDOM.createPortal(\n <MarkLabel\n inputRef={(r) => (this.input.from = r)}\n disabled={!labelModeEnabled}\n mark={from}\n graphProps={graphProps}\n onChange={(label) => this.labelChange({ ...from, label }, 'from')}\n />,\n labelNode,\n );\n }\n\n if (to && to.hasOwnProperty('label')) {\n toLabelNode = ReactDOM.createPortal(\n <MarkLabel\n inputRef={(r) => (this.input.to = r)}\n disabled={!labelModeEnabled}\n mark={to}\n graphProps={graphProps}\n onChange={(label) => this.labelChange({ ...to, label }, 'to')}\n />,\n labelNode,\n );\n }\n\n if (middle && middle.hasOwnProperty('label')) {\n circleLabelNode = ReactDOM.createPortal(\n <MarkLabel\n inputRef={(r) => (this.input.middle = r)}\n disabled={!labelModeEnabled}\n mark={middle}\n graphProps={graphProps}\n onChange={(label) => this.labelChange({ ...middle, label }, 'middle')}\n />,\n labelNode,\n );\n }\n }\n\n return (\n <g>\n <BgCircle\n disabled={building || disabled}\n correctness={correctness}\n className={classNames(building && classes.bgCircleBuilding)}\n x={from.x}\n y={from.y}\n radius={radius}\n onDrag={this.dragCircle}\n {...common}\n onClick={labelModeEnabled ? () => this.clickPoint(middle, 'middle') : common.onClick}\n />\n {circleLabelNode}\n\n <BasePoint\n disabled={building || disabled}\n coordinatesOnHover={coordinatesOnHover}\n correctness={correctness}\n labelNode={labelNode}\n x={to.x}\n y={to.y}\n onDrag={this.dragTo}\n {...common}\n onClick={labelModeEnabled ? () => this.clickPoint(to, 'to') : common.onClick}\n />\n {toLabelNode}\n\n <BasePoint\n disabled={building || disabled}\n coordinatesOnHover={coordinatesOnHover}\n correctness={correctness}\n labelNode={labelNode}\n x={from.x}\n y={from.y}\n className={classes.from}\n onDrag={this.dragFrom}\n {...common}\n onClick={labelModeEnabled ? () => this.clickPoint(from, 'from') : common.onClick}\n />\n {fromLabelNode}\n </g>\n );\n }\n}\n\nexport const BaseCircle = withStyles((theme) => ({\n outerLine: {\n fill: 'rgb(0,0,0,0)', // TODO hardcoded color\n stroke: color.primaryLight(),\n strokeWidth: 4,\n '&:hover': {\n strokeWidth: 6,\n stroke: color.primaryDark(),\n },\n },\n root: {},\n bgCircleBuilding: {\n stroke: color.secondaryLight(),\n animation: 'opacityPulse 2s ease-out',\n animationIterationCount: 'infinite',\n opacity: 1,\n },\n '@keyframes opacityPulse': opacityPulsate('0.3'),\n}))(RawBaseCircle);\n\nconst Component = rootEdgeComponent(BaseCircle);\nexport default Component;\n"],"file":"component.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/tools/circle/index.js"],"names":["tool","type","Component","Circle","hover","point","mark","edge","addPoint","root","building"],"mappings":";;;;;;;;;;;AAAA;;AACA;;;;;;AAEO,IAAMA,IAAI,GAAG,SAAPA,IAAO;AAAA,SAAO;AACzBC,IAAAA,IAAI,EAAE,QADmB;AAEzBC,IAAAA,SAAS,EAAEC,qBAFc;AAGzBC,IAAAA,KAAK,EAAE,eAACC,KAAD,EAAQC,IAAR,EAAiB;AACtB,6CAAYA,IAAZ;AAAkBC,QAAAA,IAAI,EAAEF;AAAxB;AACD,KALwB;AAMzBG,IAAAA,QAAQ,EAAE,kBAACH,KAAD,EAAQC,IAAR,EAAiB;AACzB,UAAIA,IAAI,IAAI,wBAAYA,IAAI,CAACG,IAAjB,EAAuBJ,KAAvB,CAAZ,EAA2C;AACzC,eAAOC,IAAP;AACD;;AAED,UAAI,CAACA,IAAL,EAAW;AACT,eAAO;AACLL,UAAAA,IAAI,EAAE,QADD;AAELQ,UAAAA,IAAI,EAAEJ,KAFD;AAGLK,UAAAA,QAAQ,EAAE;AAHL,SAAP;AAKD,OAND,MAMO;AACL,+CAAYJ,IAAZ;AAAkBC,UAAAA,IAAI,EAAEF,KAAxB;AAA+BK,UAAAA,QAAQ,EAAE;AAAzC;AACD;AACF;AApBwB,GAAP;AAAA,CAAb","sourcesContent":["import Circle from './component';\nimport { equalPoints } from '../../utils';\n\nexport const tool = () => ({\n type: 'circle',\n Component: Circle,\n hover: (point, mark) => {\n return { ...mark, edge: point };\n },\n addPoint: (point, mark) => {\n if (mark && equalPoints(mark.root, point)) {\n return mark;\n }\n\n if (!mark) {\n return {\n type: 'circle',\n root: point,\n building: true
|
|
1
|
+
{"version":3,"sources":["../../../src/tools/circle/index.js"],"names":["tool","type","Component","Circle","hover","point","mark","edge","addPoint","root","building"],"mappings":";;;;;;;;;;;AAAA;;AACA;;;;;;AAEO,IAAMA,IAAI,GAAG,SAAPA,IAAO;AAAA,SAAO;AACzBC,IAAAA,IAAI,EAAE,QADmB;AAEzBC,IAAAA,SAAS,EAAEC,qBAFc;AAGzBC,IAAAA,KAAK,EAAE,eAACC,KAAD,EAAQC,IAAR,EAAiB;AACtB,6CAAYA,IAAZ;AAAkBC,QAAAA,IAAI,EAAEF;AAAxB;AACD,KALwB;AAMzBG,IAAAA,QAAQ,EAAE,kBAACH,KAAD,EAAQC,IAAR,EAAiB;AACzB,UAAIA,IAAI,IAAI,wBAAYA,IAAI,CAACG,IAAjB,EAAuBJ,KAAvB,CAAZ,EAA2C;AACzC,eAAOC,IAAP;AACD;;AAED,UAAI,CAACA,IAAL,EAAW;AACT,eAAO;AACLL,UAAAA,IAAI,EAAE,QADD;AAELQ,UAAAA,IAAI,EAAEJ,KAFD;AAGLK,UAAAA,QAAQ,EAAE;AAHL,SAAP;AAKD,OAND,MAMO;AACL,+CAAYJ,IAAZ;AAAkBC,UAAAA,IAAI,EAAEF,KAAxB;AAA+BK,UAAAA,QAAQ,EAAE;AAAzC;AACD;AACF;AApBwB,GAAP;AAAA,CAAb","sourcesContent":["import Circle from './component';\nimport { equalPoints } from '../../utils';\n\nexport const tool = () => ({\n type: 'circle',\n Component: Circle,\n hover: (point, mark) => {\n return { ...mark, edge: point };\n },\n addPoint: (point, mark) => {\n if (mark && equalPoints(mark.root, point)) {\n return mark;\n }\n\n if (!mark) {\n return {\n type: 'circle',\n root: point,\n building: true,\n };\n } else {\n return { ...mark, edge: point, building: false };\n }\n },\n});\n"],"file":"index.js"}
|
package/lib/tools/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/tools/index.js"],"names":["allTools","toolsArr"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA,IAAMA,QAAQ,GAAG,
|
|
1
|
+
{"version":3,"sources":["../../src/tools/index.js"],"names":["allTools","toolsArr"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA,IAAMA,QAAQ,GAAG,CAAC,QAAD,EAAW,MAAX,EAAmB,OAAnB,EAA4B,UAA5B,EAAwC,OAAxC,EAAiD,SAAjD,EAA4D,KAA5D,EAAmE,SAAnE,EAA8E,MAA9E,EAAsF,QAAtF,CAAjB;;AAEA,IAAMC,QAAQ,GAAG,CAAC,mBAAD,EAAW,iBAAX,EAAmB,mBAAnB,EAA+B,kBAA/B,EAAwC,oBAAxC,EAAmD,gBAAnD,EAA0D,oBAA1D,EAAqE,kBAArE,EAA6E,mBAA7E,CAAjB","sourcesContent":["import { tool as point } from './point';\nimport { tool as circle } from './circle';\nimport { tool as polygon } from './polygon';\nimport { tool as sine } from './sine/index';\nimport { tool as parabola } from './parabola/index';\nimport { tool as line } from './line';\nimport { tool as segment } from './segment';\nimport { tool as ray } from './ray';\nimport { tool as vector } from './vector';\n\nconst allTools = ['circle', 'line', 'label', 'parabola', 'point', 'polygon', 'ray', 'segment', 'sine', 'vector'];\n\nconst toolsArr = [circle(), line(), parabola(), point(), polygon(), ray(), segment(), sine(), vector()];\n\nexport { allTools, toolsArr, circle, line, point, parabola, polygon, ray, sine, vector };\n"],"file":"index.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/tools/line/component.jsx"],"names":["markerId","lineStyles","theme","line","styles","enabledArrow","arrow","disabledArrow","disabled","correct","correctArrow","incorrect","incorrectArrow","ArrowedLine","props","className","classes","correctness","graphProps","from","to","rest","scale","domain","range","trig","edges","eFrom","eTo","suffix","x","y","propTypes","PropTypes","string","object","bool","types","GraphPropsType","PointType","StyledArrowedLine","Line","Component"],"mappings":";;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;AAEA,IAAMA,QAAQ,GAAG,wBAAjB;;AAEA,IAAMC,UAAU,GAAG,SAAbA,UAAa,
|
|
1
|
+
{"version":3,"sources":["../../../src/tools/line/component.jsx"],"names":["markerId","lineStyles","theme","line","styles","enabledArrow","arrow","disabledArrow","disabled","correct","correctArrow","incorrect","incorrectArrow","ArrowedLine","props","className","classes","correctness","graphProps","from","to","rest","scale","domain","range","trig","edges","eFrom","eTo","suffix","x","y","propTypes","PropTypes","string","object","bool","types","GraphPropsType","PointType","StyledArrowedLine","Line","Component"],"mappings":"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","sourcesContent":["import { lineToolComponent, lineBase, styles } from '../shared/line';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { trig, types } from '@pie-lib/plot';\nimport classNames from 'classnames';\nimport { withStyles } from '@material-ui/core/styles';\nimport { ArrowMarker, genUid } from '../shared/arrow-head';\nimport { thinnerShapesNeeded, getAdjustedGraphLimits } from '../../utils';\n\nconst markerId = genUid();\n\nconst lineStyles = (theme) => ({\n line: styles.line(theme),\n enabledArrow: styles.arrow(theme),\n disabledArrow: styles.disabledArrow(theme),\n disabled: styles.disabled(theme),\n correct: styles.correct(theme, 'stroke'),\n correctArrow: styles.correct(theme),\n incorrect: styles.incorrect(theme, 'stroke'),\n incorrectArrow: styles.incorrect(theme),\n});\n\nexport const ArrowedLine = (props) => {\n const { className, classes, correctness, disabled, graphProps, from, to, ...rest } = props;\n const { scale } = graphProps;\n const { domain, range } = getAdjustedGraphLimits(graphProps);\n const [eFrom, eTo] = trig.edges(domain, range)(from, to);\n const suffix = correctness || (disabled && 'disabled') || 'enabled';\n\n return (\n <g>\n <defs>\n <ArrowMarker\n size={thinnerShapesNeeded(graphProps) ? 4 : 5}\n id={`${props.markerId || markerId}-${suffix}`}\n className={classNames(classes[`${suffix}Arrow`])}\n />\n </defs>\n <line\n x1={scale.x(eFrom.x)}\n y1={scale.y(eFrom.y)}\n x2={scale.x(eTo.x)}\n y2={scale.y(eTo.y)}\n className={classNames(classes.line, disabled && classes.disabled, classes[correctness], className)}\n markerEnd={`url(#${props.markerId || markerId}-${suffix})`}\n markerStart={`url(#${props.markerId || markerId}-${suffix})`}\n {...rest}\n />\n </g>\n );\n};\n\nArrowedLine.propTypes = {\n className: PropTypes.string,\n classes: PropTypes.object,\n correctness: PropTypes.string,\n disabled: PropTypes.bool,\n graphProps: types.GraphPropsType,\n from: types.PointType,\n to: types.PointType,\n markerId: PropTypes.string,\n};\n\nconst StyledArrowedLine = withStyles(lineStyles)(ArrowedLine);\n\nconst Line = lineBase(StyledArrowedLine);\nconst Component = lineToolComponent(Line);\n\nexport default Component;\n"],"file":"component.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/tools/parabola/component.jsx"],"names":["log","Parabola","props","domain","graphProps","root","edge","interval","dataPoints","x","min","max","step","Component"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AAEA,IAAMA,GAAG,GAAG,uBAAM,uBAAN,CAAZ;AAEA,IAAMC,QAAQ,GAAG,gCAAa,
|
|
1
|
+
{"version":3,"sources":["../../../src/tools/parabola/component.jsx"],"names":["log","Parabola","props","domain","graphProps","root","edge","interval","dataPoints","x","min","max","step","Component"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AAEA,IAAMA,GAAG,GAAG,uBAAM,uBAAN,CAAZ;AAEA,IAAMC,QAAQ,GAAG,gCAAa,UAACC,KAAD,EAAW;AACvC,MAAQC,MAAR,GAAmBD,KAAK,CAACE,UAAzB,CAAQD,MAAR;AAEA,MAAQE,IAAR,GAAuBH,KAAvB,CAAQG,IAAR;AAAA,MAAcC,IAAd,GAAuBJ,KAAvB,CAAcI,IAAd;AACA,MAAMC,QAAQ,GAAG,CAAjB;AAEA,MAAMC,UAAU,GACdF,IAAI,IAAIA,IAAI,CAACG,CAAL,KAAWJ,IAAI,CAACI,CAAxB,GACI,EADJ,GAEI,oCAAgBN,MAAM,CAACO,GAAvB,EAA4BP,MAAM,CAACQ,GAAnC,EAAwCN,IAAxC,EAA8CC,IAA9C,EAAoDH,MAAM,CAACS,IAAP,IAAeL,QAAnE,EAA6E,0CAAsBF,IAAtB,EAA4BC,IAA5B,CAA7E,CAHN;AAIAN,EAAAA,GAAG,CAAC,aAAD,EAAgBQ,UAAhB,CAAH;AACA,SAAO;AAAEH,IAAAA,IAAI,EAAEH,KAAK,CAACG,IAAd;AAAoBC,IAAAA,IAAI,EAAEJ,KAAK,CAACI,IAAhC;AAAsCE,IAAAA,UAAU,EAAVA;AAAtC,GAAP;AACD,CAZgB,CAAjB;AAcA,IAAMK,SAAS,GAAG,qCAAkBZ,QAAlB,CAAlB;eACeY,S","sourcesContent":["import debug from 'debug';\nimport { buildDataPoints, parabolaFromTwoPoints } from '@pie-lib/graphing-utils';\nimport { withRootEdge, rootEdgeComponent } from '../shared/line/with-root-edge';\n\nconst log = debug('pie-lib:graphing:sine');\n\nconst Parabola = withRootEdge((props) => {\n const { domain } = props.graphProps;\n\n const { root, edge } = props;\n const interval = 1;\n\n const dataPoints =\n edge && edge.x === root.x\n ? []\n : buildDataPoints(domain.min, domain.max, root, edge, domain.step || interval, parabolaFromTwoPoints(root, edge));\n log('dataPoints:', dataPoints);\n return { root: props.root, edge: props.edge, dataPoints };\n});\n\nconst Component = rootEdgeComponent(Parabola);\nexport default Component;\n"],"file":"component.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/tools/parabola/index.js"],"names":["log","tool","type","Component","Parabola","complete","data","mark","building","closed","addPoint","point","root","edge","undefined","Error"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;AAEA,IAAMA,GAAG,GAAG,uBAAM,2BAAN,CAAZ;;AAEO,IAAMC,IAAI,GAAG,SAAPA,IAAO;AAAA,SAAO;AACzBC,IAAAA,IAAI,EAAE,UADmB;AAEzBC,IAAAA,SAAS,EAAEC,qBAFc;AAGzBC,IAAAA,QAAQ,EAAE,kBAACC,IAAD,EAAOC,IAAP;AAAA,6CAAsBA,IAAtB;AAA4BC,QAAAA,QAAQ,EAAE,KAAtC;AAA6CC,QAAAA,MAAM,EAAE;AAArD;AAAA,KAHe;AAIzBC,IAAAA,QAAQ,EAAE,kBAACC,KAAD,EAAQJ,IAAR,EAAiB;AACzBP,MAAAA,GAAG,CAAC,+BAAD,EAAkCW,KAAlC,EAAyC,QAAzC,EAAmDJ,IAAnD,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,UADD;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;AAvBwB,GAAP;AAAA,CAAb","sourcesContent":["import Parabola from './component';\nimport debug from 'debug';\nimport { equalPoints, sameAxes } from '../../utils';\n\nconst log = debug('pie-lib:graphing:parabola');\n\nexport const tool = () => ({\n type: 'parabola',\n Component: Parabola,\n complete: (data, mark) => ({ ...mark, building: false, closed: true }),\n addPoint: (point, mark) => {\n log('add point to parabola 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: 'parabola',\n root: point,\n edge: undefined,\n closed: false,\n building: true
|
|
1
|
+
{"version":3,"sources":["../../../src/tools/parabola/index.js"],"names":["log","tool","type","Component","Parabola","complete","data","mark","building","closed","addPoint","point","root","edge","undefined","Error"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;AAEA,IAAMA,GAAG,GAAG,uBAAM,2BAAN,CAAZ;;AAEO,IAAMC,IAAI,GAAG,SAAPA,IAAO;AAAA,SAAO;AACzBC,IAAAA,IAAI,EAAE,UADmB;AAEzBC,IAAAA,SAAS,EAAEC,qBAFc;AAGzBC,IAAAA,QAAQ,EAAE,kBAACC,IAAD,EAAOC,IAAP;AAAA,6CAAsBA,IAAtB;AAA4BC,QAAAA,QAAQ,EAAE,KAAtC;AAA6CC,QAAAA,MAAM,EAAE;AAArD;AAAA,KAHe;AAIzBC,IAAAA,QAAQ,EAAE,kBAACC,KAAD,EAAQJ,IAAR,EAAiB;AACzBP,MAAAA,GAAG,CAAC,+BAAD,EAAkCW,KAAlC,EAAyC,QAAzC,EAAmDJ,IAAnD,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,UADD;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;AAvBwB,GAAP;AAAA,CAAb","sourcesContent":["import Parabola from './component';\nimport debug from 'debug';\nimport { equalPoints, sameAxes } from '../../utils';\n\nconst log = debug('pie-lib:graphing:parabola');\n\nexport const tool = () => ({\n type: 'parabola',\n Component: Parabola,\n complete: (data, mark) => ({ ...mark, building: false, closed: true }),\n addPoint: (point, mark) => {\n log('add point to parabola 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: 'parabola',\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/point/component.jsx"],"names":["Point","props","p","mark","state","setState","update","label","onChange","undefined","labelModeEnabled","onClick","input","focus","coordinatesOnHover","graphProps","labelNode","move","startDrag","stopDrag","clickPoint","hasOwnProperty","ReactDOM","createPortal","r","labelChange","React","Component","types","GraphPropsType","isRequired","ToolPropTypeFields"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;IAEaA,K;;;;;AAQX,iBAAYC,KAAZ,EAAmB;AAAA;;AAAA;AACjB,8BAAMA,KAAN;AADiB,6FAKZ,
|
|
1
|
+
{"version":3,"sources":["../../../src/tools/point/component.jsx"],"names":["Point","props","p","mark","state","setState","update","label","onChange","undefined","labelModeEnabled","onClick","input","focus","coordinatesOnHover","graphProps","labelNode","move","startDrag","stopDrag","clickPoint","hasOwnProperty","ReactDOM","createPortal","r","labelChange","React","Component","types","GraphPropsType","isRequired","ToolPropTypeFields"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { BasePoint } from '../shared/point';\nimport { ToolPropTypeFields } from '../shared/types';\nimport { types } from '@pie-lib/plot';\nimport ReactDOM from 'react-dom';\nimport MarkLabel from '../../mark-label';\nimport isEqual from 'lodash/isEqual';\nimport isEmpty from 'lodash/isEmpty';\n\nexport class Point extends React.Component {\n static propTypes = {\n graphProps: types.GraphPropsType.isRequired,\n ...ToolPropTypeFields,\n };\n\n static defaultProps = {};\n\n constructor(props) {\n super(props);\n this.state = {};\n }\n\n move = (p) => {\n const mark = { ...this.state.mark, ...p };\n this.setState({ mark });\n };\n\n startDrag = () => {\n const update = { ...this.props.mark };\n\n if (update.label === '') {\n delete update.label;\n }\n this.setState({ mark: update });\n };\n\n stopDrag = () => {\n const { onChange } = this.props;\n const mark = { ...this.state.mark };\n this.setState({ mark: undefined }, () => {\n if (!isEqual(this.props.mark, mark)) {\n onChange(this.props.mark, mark);\n }\n });\n };\n\n labelChange = (label) => {\n const { onChange } = this.props;\n const update = { ...this.props.mark, label };\n\n if (!label || isEmpty(label)) {\n delete update.label;\n }\n\n this.setState({ mark: update }, () => {\n onChange(this.props.mark, update);\n });\n };\n\n clickPoint = () => {\n const { labelModeEnabled, onChange, onClick, mark } = this.props;\n\n if (labelModeEnabled) {\n onChange(mark, { label: '', ...mark });\n if (this.input) {\n this.input.focus();\n }\n } else {\n onClick(mark);\n }\n };\n\n render() {\n const { coordinatesOnHover, graphProps, labelNode, labelModeEnabled } = this.props;\n const mark = this.state.mark ? this.state.mark : this.props.mark;\n\n return (\n <React.Fragment>\n <BasePoint\n {...mark}\n coordinatesOnHover={coordinatesOnHover}\n graphProps={graphProps}\n labelNode={labelNode}\n onDrag={this.move}\n onDragStart={this.startDrag}\n onDragStop={this.stopDrag}\n onClick={this.clickPoint}\n />\n {labelNode &&\n mark.hasOwnProperty('label') &&\n ReactDOM.createPortal(\n <MarkLabel\n inputRef={(r) => (this.input = r)}\n disabled={!labelModeEnabled}\n mark={mark}\n graphProps={graphProps}\n onChange={this.labelChange}\n />,\n labelNode,\n )}\n </React.Fragment>\n );\n }\n}\n\nexport default Point;\n"],"file":"component.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/tools/point/index.js"],"names":["tool","label","type","Component","Point","addPoint","point"],"mappings":";;;;;;;;;;;AAAA;;;;;;AAEO,IAAMA,IAAI,GAAG,SAAPA,IAAO;AAAA,SAAO;AACzBC,IAAAA,KAAK,EAAE,OADkB;AAEzBC,IAAAA,IAAI,EAAE,OAFmB;AAGzBC,IAAAA,SAAS,EAAEC,qBAHc;AAIzBC,IAAAA,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"sources":["../../../src/tools/point/index.js"],"names":["tool","label","type","Component","Point","addPoint","point"],"mappings":";;;;;;;;;;;AAAA;;;;;;AAEO,IAAMA,IAAI,GAAG,SAAPA,IAAO;AAAA,SAAO;AACzBC,IAAAA,KAAK,EAAE,OADkB;AAEzBC,IAAAA,IAAI,EAAE,OAFmB;AAGzBC,IAAAA,SAAS,EAAEC,qBAHc;AAIzBC,IAAAA,QAAQ,EAAE,kBAACC,KAAD;AAAA;AACRJ,QAAAA,IAAI,EAAE;AADE,SAELI,KAFK;AAAA;AAJe,GAAP;AAAA,CAAb","sourcesContent":["import Point from './component';\n\nexport const tool = () => ({\n label: 'Point',\n type: 'point',\n Component: Point,\n addPoint: (point) => ({\n type: 'point',\n ...point,\n }),\n});\n"],"file":"index.js"}
|