@pie-lib/graphing 2.12.30 → 2.12.31-next.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -221,7 +221,8 @@ var GraphWithControls = /*#__PURE__*/function (_React$Component) {
221
221
  showPixelGuides = _this$props.showPixelGuides,
222
222
  showTitle = _this$props.showTitle,
223
223
  title = _this$props.title,
224
- titlePlaceholder = _this$props.titlePlaceholder;
224
+ titlePlaceholder = _this$props.titlePlaceholder,
225
+ language = _this$props.language;
225
226
  var _this$props2 = this.props,
226
227
  backgroundMarks = _this$props2.backgroundMarks,
227
228
  marks = _this$props2.marks,
@@ -250,11 +251,13 @@ var GraphWithControls = /*#__PURE__*/function (_React$Component) {
250
251
  },
251
252
  onToggleLabelMode: this.toggleLabelMode,
252
253
  toolbarTools: toolbarTools,
253
- onChangeTools: onChangeTools
254
+ onChangeTools: onChangeTools,
255
+ language: language
254
256
  }), !disabled && /*#__PURE__*/_react["default"].createElement(_undoRedo["default"], {
255
257
  onUndo: onUndo,
256
258
  onRedo: onRedo,
257
- onReset: onReset
259
+ onReset: onReset,
260
+ language: language
258
261
  }));
259
262
 
260
263
  return /*#__PURE__*/_react["default"].createElement("div", {
@@ -302,8 +305,9 @@ exports.GraphWithControls = GraphWithControls;
302
305
  onUndo: _propTypes["default"].func,
303
306
  onRedo: _propTypes["default"].func,
304
307
  onReset: _propTypes["default"].func,
305
- toolbarTools: _propTypes["default"].arrayOf(_propTypes["default"].string) // array of tool types that have to be displayed in the toolbar, same shape as 'allTools'
306
-
308
+ toolbarTools: _propTypes["default"].arrayOf(_propTypes["default"].string),
309
+ // array of tool types that have to be displayed in the toolbar, same shape as 'allTools'
310
+ language: _propTypes["default"].string
307
311
  }));
308
312
  (0, _defineProperty2["default"])(GraphWithControls, "defaultProps", {
309
313
  collapsibleToolbar: false,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/graph-with-controls.jsx"],"names":["setToolbarAvailability","toolbarTools","toolsArr","map","tA","toolbar","find","t","type","toolIsAvailable","tools","currentTool","tool","getAvailableTool","filterByValidToolTypes","backgroundMarks","filter","bM","allTools","filterByVisibleToolTypes","marks","getDefaultCurrentTool","toolType","Collapsible","classes","children","title","expansionPanel","root","summaryRoot","content","summaryContent","details","propTypes","PropTypes","object","array","string","GraphWithControls","props","setState","state","labelModeEnabled","defaultTool","prevProps","axesSettings","className","coordinatesOnHover","collapsibleToolbar","collapsibleToolbarTitle","disabled","disabledLabels","disabledTitle","domain","draggableTools","labels","labelsPlaceholders","onChangeLabels","onChangeMarks","onChangeTitle","onChangeTools","onUndo","onRedo","onReset","range","size","showLabels","showPixelGuides","showTitle","titlePlaceholder","tT","graphActions","changeCurrentTool","toggleLabelMode","graphWithControls","controls","r","labelNode","undefined","React","Component","graphPropTypes","func","arrayOf","styles","theme","display","flexDirection","width","justifyContent","padding","spacing","unit","color","text","backgroundColor","primaryLight","borderTop","primaryDark","borderBottom","borderLeft","borderRight","fontSize","typography","minHeight","margin","marginTop"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;AAEO,IAAMA,sBAAsB,GAAG,SAAzBA,sBAAyB,CAACC,YAAD;AAAA,SACpCC,gBAASC,GAAT,CAAa,UAACC,EAAD;AAAA,2CAAcA,EAAd;AAAkBC,MAAAA,OAAO,EAAE,CAAC,CAACJ,YAAY,CAACK,IAAb,CAAkB,UAACC,CAAD;AAAA,eAAOA,CAAC,KAAKH,EAAE,CAACI,IAAhB;AAAA,OAAlB;AAA7B;AAAA,GAAb,KAAyF,EADrD;AAAA,CAA/B;;;;AAGA,IAAMC,eAAe,GAAG,SAAlBA,eAAkB,CAACC,KAAD,EAAQC,WAAR;AAAA,SAC7BA,WAAW,IAAID,KAAf,IAAwB,CAACA,KAAK,CAACJ,IAAN,CAAW,UAACM,IAAD;AAAA,WAAUA,IAAI,CAACJ,IAAL,KAAcG,WAAW,CAACH,IAApC;AAAA,GAAX,KAAwD,EAAzD,EAA6DH,OADxD;AAAA,CAAxB;;;;AAGA,IAAMQ,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACH,KAAD;AAAA,SAAWA,KAAK,CAACJ,IAAN,CAAW,UAACM,IAAD;AAAA,WAAUA,IAAI,CAACP,OAAf;AAAA,GAAX,CAAX;AAAA,CAAzB;;;;AAEA,IAAMS,sBAAsB,GAAG,SAAzBA,sBAAyB,CAACC,eAAD;AAAA,SACpCA,eAAe,CAACC,MAAhB,CAAuB,UAACC,EAAD;AAAA,WAAQ,CAAC,CAACC,gBAASZ,IAAT,CAAc,UAACM,IAAD;AAAA,aAAUA,IAAI,KAAKK,EAAE,CAACT,IAAtB;AAAA,KAAd,CAAV;AAAA,GAAvB,CADoC;AAAA,CAA/B;;;;AAGA,IAAMW,wBAAwB,GAAG,SAA3BA,wBAA2B,CAAClB,YAAD,EAAemB,KAAf;AAAA,SACtCA,KAAK,CAACJ,MAAN,CAAa,UAACC,EAAD;AAAA,WAAQ,CAAC,CAAChB,YAAY,CAACK,IAAb,CAAkB,UAACM,IAAD;AAAA,aAAUA,IAAI,KAAKK,EAAE,CAACT,IAAtB;AAAA,KAAlB,CAAV;AAAA,GAAb,CADsC;AAAA,CAAjC;;;;AAGP,IAAMa,qBAAqB,GAAG,SAAxBA,qBAAwB,CAACC,QAAD;AAAA,SAAcpB,gBAASI,IAAT,CAAc,UAACM,IAAD;AAAA,WAAUA,IAAI,CAACJ,IAAL,KAAcc,QAAxB;AAAA,GAAd,KAAmD,IAAjE;AAAA,CAA9B;;AAEA,IAAMC,WAAW,GAAG,SAAdA,WAAc;AAAA,MAAGC,OAAH,QAAGA,OAAH;AAAA,MAAYC,QAAZ,QAAYA,QAAZ;AAAA,MAAsBC,KAAtB,QAAsBA,KAAtB;AAAA,sBAClB,gCAAC,oBAAD;AAAgB,IAAA,SAAS,EAAE,CAA3B;AAA8B,IAAA,SAAS,EAAEF,OAAO,CAACG,cAAjD;AAAiE,IAAA,eAAe,EAAE,IAAlF;AAAwF,IAAA,MAAM,EAAE;AAAhG,kBACE,gCAAC,2BAAD;AACE,IAAA,OAAO,EAAE;AACPC,MAAAA,IAAI,EAAEJ,OAAO,CAACK,WADP;AAEPC,MAAAA,OAAO,EAAEN,OAAO,CAACO;AAFV,KADX;AAKE,IAAA,UAAU,eAAE,gCAAC,sBAAD;AALd,kBAOE,gCAAC,gBAAD;AAAY,IAAA,OAAO,EAAC;AAApB,KAAkCL,KAAlC,CAPF,CADF,eAUE,gCAAC,2BAAD;AAAuB,IAAA,SAAS,EAAEF,OAAO,CAACQ;AAA1C,KAAoDP,QAApD,CAVF,CADkB;AAAA,CAApB;;AAeAF,WAAW,CAACU,SAAZ,GAAwB;AACtBT,EAAAA,OAAO,EAAEU,sBAAUC,MADG;AAEtBV,EAAAA,QAAQ,EAAES,sBAAUE,KAFE;AAGtBV,EAAAA,KAAK,EAAEQ,sBAAUG;AAHK,CAAxB;;IAMaC,iB;;;;;AAmBX,6BAAYC,KAAZ,EAAmB;AAAA;;AAAA;AACjB,8BAAMA,KAAN;AADiB,0GAmBC,UAAC3B,IAAD,EAAOF,KAAP;AAAA,aAAiB,MAAK8B,QAAL,CAAc;AAAE7B,QAAAA,WAAW,EAAED,KAAK,CAACJ,IAAN,CAAW,UAACC,CAAD;AAAA,iBAAOA,CAAC,CAACC,IAAF,KAAWI,IAAlB;AAAA,SAAX;AAAf,OAAd,CAAjB;AAAA,KAnBD;AAAA,wGAqBD;AAAA,aAAM,MAAK4B,QAAL,CAAc,UAACC,KAAD;AAAA,eAAY;AAAEC,UAAAA,gBAAgB,EAAE,CAACD,KAAK,CAACC;AAA3B,SAAZ;AAAA,OAAd,CAAN;AAAA,KArBC;AAGjB,UAAKD,KAAL,GAAa;AACX9B,MAAAA,WAAW,EAAEU,qBAAqB,CAACkB,KAAK,CAACI,WAAP,CADvB;AAEXD,MAAAA,gBAAgB,EAAE;AAFP,KAAb;AAHiB;AAOlB;;;;WAED,4BAAmBE,SAAnB,EAA8B;AAC5B,UAAQD,WAAR,GAAwB,KAAKJ,KAA7B,CAAQI,WAAR;;AAEA,UAAIC,SAAS,CAACD,WAAV,KAA0BA,WAA9B,EAA2C;AACzC,YAAMhC,WAAW,GAAGU,qBAAqB,CAACsB,WAAD,CAAzC;AAEA,aAAKH,QAAL,CAAc;AAAE7B,UAAAA,WAAW,EAAXA;AAAF,SAAd;AACD;AACF;;;WAMD,kBAAS;AAAA;;AACP,wBAAwC,KAAK8B,KAA7C;AAAA,UAAM9B,WAAN,eAAMA,WAAN;AAAA,UAAmB+B,gBAAnB,eAAmBA,gBAAnB;AACA,wBA4BI,KAAKH,KA5BT;AAAA,UACEM,YADF,eACEA,YADF;AAAA,UAEErB,OAFF,eAEEA,OAFF;AAAA,UAGEsB,SAHF,eAGEA,SAHF;AAAA,UAIEC,kBAJF,eAIEA,kBAJF;AAAA,UAKEC,kBALF,eAKEA,kBALF;AAAA,UAMEC,uBANF,eAMEA,uBANF;AAAA,UAOEC,QAPF,eAOEA,QAPF;AAAA,UAQEC,cARF,eAQEA,cARF;AAAA,UASEC,aATF,eASEA,aATF;AAAA,UAUEC,MAVF,eAUEA,MAVF;AAAA,UAWEC,cAXF,eAWEA,cAXF;AAAA,UAYEC,MAZF,eAYEA,MAZF;AAAA,UAaEC,kBAbF,eAaEA,kBAbF;AAAA,UAcEC,cAdF,eAcEA,cAdF;AAAA,UAeEC,aAfF,eAeEA,aAfF;AAAA,UAgBEC,aAhBF,eAgBEA,aAhBF;AAAA,UAiBEC,aAjBF,eAiBEA,aAjBF;AAAA,UAkBEC,MAlBF,eAkBEA,MAlBF;AAAA,UAmBEC,MAnBF,eAmBEA,MAnBF;AAAA,UAoBEC,OApBF,eAoBEA,OApBF;AAAA,UAqBEC,KArBF,eAqBEA,KArBF;AAAA,UAsBEC,IAtBF,eAsBEA,IAtBF;AAAA,UAuBEC,UAvBF,eAuBEA,UAvBF;AAAA,UAwBEC,eAxBF,eAwBEA,eAxBF;AAAA,UAyBEC,SAzBF,eAyBEA,SAzBF;AAAA,UA0BE1C,KA1BF,eA0BEA,KA1BF;AAAA,UA2BE2C,gBA3BF,eA2BEA,gBA3BF;AA6BA,yBAA+C,KAAK9B,KAApD;AAAA,UAAMxB,eAAN,gBAAMA,eAAN;AAAA,UAAuBK,KAAvB,gBAAuBA,KAAvB;AAAA,UAA8BnB,YAA9B,gBAA8BA,YAA9B,CA/BO,CAiCP;;AACAA,MAAAA,YAAY,GAAG,sBAAKA,YAAY,IAAI,EAArB,EAAyBe,MAAzB,CAAgC,UAACsD,EAAD;AAAA,eAAQ,CAAC,CAAC,0BAASA,EAAT,CAAV;AAAA,OAAhC,KAA2D,EAA1E,CAlCO,CAoCP;;AACAvD,MAAAA,eAAe,GAAGD,sBAAsB,CAACC,eAAe,IAAI,EAApB,CAAxC,CArCO,CAuCP;;AACAK,MAAAA,KAAK,GAAGD,wBAAwB,CAAClB,YAAD,EAAemB,KAAK,IAAI,EAAxB,CAAhC;AAEA,UAAMV,KAAK,GAAGV,sBAAsB,CAACC,YAAD,CAApC,CA1CO,CA4CP;;AACA,UAAI,CAACU,WAAD,IAAgB,CAACF,eAAe,CAACC,KAAD,EAAQC,WAAR,CAApC,EAA0D;AACxDA,QAAAA,WAAW,GAAGE,gBAAgB,CAACH,KAAD,CAA9B;AACD;;AAED,UAAM6D,YAAY,gBAChB,gCAAC,iBAAD,CAAO,QAAP,qBACE,gCAAC,oBAAD;AACE,QAAA,eAAe,EAAE5D,WAAW,IAAIA,WAAW,CAACH,IAD9C;AAEE,QAAA,QAAQ,EAAE,CAAC,CAAC0C,QAFd;AAGE,QAAA,cAAc,EAAEI,cAHlB;AAIE,QAAA,gBAAgB,EAAEZ,gBAJpB;AAKE,QAAA,QAAQ,EAAE,kBAAC9B,IAAD;AAAA,iBAAU,MAAI,CAAC4D,iBAAL,CAAuB5D,IAAvB,EAA6BF,KAA7B,CAAV;AAAA,SALZ;AAME,QAAA,iBAAiB,EAAE,KAAK+D,eAN1B;AAOE,QAAA,YAAY,EAAExE,YAPhB;AAQE,QAAA,aAAa,EAAE2D;AARjB,QADF,EAYG,CAACV,QAAD,iBAAa,gCAAC,oBAAD;AAAU,QAAA,MAAM,EAAEW,MAAlB;AAA0B,QAAA,MAAM,EAAEC,MAAlC;AAA0C,QAAA,OAAO,EAAEC;AAAnD,QAZhB,CADF;;AAiBA,0BACE;AAAK,QAAA,SAAS,EAAE,4BAAWvC,OAAO,CAACkD,iBAAnB,EAAsC5B,SAAtC;AAAhB,sBACE;AAAK,QAAA,SAAS,EAAEtB,OAAO,CAACmD;AAAxB,SACG3B,kBAAkB,gBACjB,gCAAC,WAAD;AAAa,QAAA,OAAO,EAAExB,OAAtB;AAA+B,QAAA,KAAK,EAAEyB;AAAtC,SACGsB,YADH,CADiB,GAKjBA,YANJ,CADF,eAWE;AAAK,QAAA,GAAG,EAAE,aAACK,CAAD;AAAA,iBAAQ,MAAI,CAACC,SAAL,GAAiBD,CAAzB;AAAA;AAAV,QAXF,eAaE,gCAAC,iBAAD;AACE,QAAA,YAAY,EAAE/B,YADhB;AAEE,QAAA,eAAe,EAAE9B,eAFnB;AAGE,QAAA,kBAAkB,EAAEgC,kBAHtB;AAIE,QAAA,WAAW,EAAEpC,WAJf;AAKE,QAAA,cAAc,EAAEwC,cALlB;AAME,QAAA,aAAa,EAAEC,aANjB;AAOE,QAAA,MAAM,EAAEC,MAPV;AAQE,QAAA,MAAM,EAAEE,MARV;AASE,QAAA,gBAAgB,EAAEb,gBATpB;AAUE,QAAA,kBAAkB,EAAEc,kBAVtB;AAWE,QAAA,KAAK,EAAEpC,KAXT;AAYE,QAAA,aAAa,EAAE,CAAC8B,QAAD,GAAYQ,aAAZ,GAA4BoB,SAZ7C;AAaE,QAAA,cAAc,EAAErB,cAblB;AAcE,QAAA,aAAa,EAAEE,aAdjB;AAeE,QAAA,KAAK,EAAEK,KAfT;AAgBE,QAAA,IAAI,EAAEC,IAhBR;AAiBE,QAAA,UAAU,EAAEC,UAjBd;AAkBE,QAAA,eAAe,EAAEC,eAlBnB;AAmBE,QAAA,SAAS,EAAEC,SAnBb;AAoBE,QAAA,KAAK,EAAE1C,KApBT;AAqBE,QAAA,gBAAgB,EAAE2C,gBArBpB;AAsBE,QAAA,KAAK,EAAE3D;AAtBT,QAbF,CADF;AAwCD;;;EApJoCqE,kBAAMC,S;;;iCAAhC1C,iB,+CAEN2C,qB;AACHpB,EAAAA,MAAM,EAAE3B,sBAAUgD,I;AAClBpB,EAAAA,MAAM,EAAE5B,sBAAUgD,I;AAClBnB,EAAAA,OAAO,EAAE7B,sBAAUgD,I;AACnBjF,EAAAA,YAAY,EAAEiC,sBAAUiD,OAAV,CAAkBjD,sBAAUG,MAA5B,C,CAAqC;;;iCAN1CC,iB,kBASW;AACpBU,EAAAA,kBAAkB,EAAE,KADA;AAEpBC,EAAAA,uBAAuB,EAAE,EAFL;AAGpBE,EAAAA,cAAc,EAAE,KAHI;AAIpBC,EAAAA,aAAa,EAAE,KAJK;AAKpBc,EAAAA,UAAU,EAAE,IALQ;AAMpBE,EAAAA,SAAS,EAAE,IANS;AAOpBnE,EAAAA,YAAY,EAAE;AAPM,C;;AA8IxB,IAAMmF,MAAM,GAAG,SAATA,MAAS,CAACC,KAAD;AAAA,SAAY;AACzBX,IAAAA,iBAAiB,EAAE;AACjBY,MAAAA,OAAO,EAAE,MADQ;AAEjBC,MAAAA,aAAa,EAAE,QAFE;AAGjBC,MAAAA,KAAK,EAAE;AAHU,KADM;AAMzBb,IAAAA,QAAQ,EAAE;AACRW,MAAAA,OAAO,EAAE,MADD;AAERG,MAAAA,cAAc,EAAE,eAFR;AAGRC,MAAAA,OAAO,EAAEL,KAAK,CAACM,OAAN,CAAcC,IAHf;AAIRC,MAAAA,KAAK,EAAEA,gBAAMC,IAAN,EAJC;AAKRC,MAAAA,eAAe,EAAEF,gBAAMG,YAAN,EALT;AAMRC,MAAAA,SAAS,sBAAeJ,gBAAMK,WAAN,EAAf,CAND;AAORC,MAAAA,YAAY,sBAAeN,gBAAMK,WAAN,EAAf,CAPJ;AAQRE,MAAAA,UAAU,sBAAeP,gBAAMK,WAAN,EAAf,CARF;AASRG,MAAAA,WAAW,sBAAeR,gBAAMK,WAAN,EAAf,CATH;AAUR,kBAAY;AACVI,QAAAA,QAAQ,EAAEjB,KAAK,CAACkB,UAAN,CAAiBD;AADjB;AAVJ,KANe;AAoBzB3E,IAAAA,cAAc,EAAE;AACdoE,MAAAA,eAAe,EAAEF,gBAAMG,YAAN,EADH;AAEdR,MAAAA,KAAK,EAAE;AAFO,KApBS;AAwBzB3D,IAAAA,WAAW,EAAE;AACX6D,MAAAA,OAAO,cAAOL,KAAK,CAACM,OAAN,CAAcC,IAArB,OADI;AAEXY,MAAAA,SAAS,EAAE;AAFA,KAxBY;AA4BzBzE,IAAAA,cAAc,EAAE;AACd0E,MAAAA,MAAM,EAAE;AADM,KA5BS;AA+BzBzE,IAAAA,OAAO,EAAE;AACP0D,MAAAA,OAAO,EAAE,CADF;AAEPgB,MAAAA,SAAS,EAAErB,KAAK,CAACM,OAAN,CAAcC,IAFlB;AAGPN,MAAAA,OAAO,EAAE,MAHF;AAIPG,MAAAA,cAAc,EAAE;AAJT;AA/BgB,GAAZ;AAAA,CAAf;;eAuCe,wBAAWL,MAAX,EAAmB9C,iBAAnB,C","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport uniq from 'lodash/uniq';\nimport isString from 'lodash/isString';\nimport { color } from '@pie-lib/render-ui';\n\nimport ToolMenu from './tool-menu';\nimport Graph, { graphPropTypes } from './graph';\nimport UndoRedo from './undo-redo';\nimport { allTools, toolsArr } from './tools';\nimport { ExpansionPanel, ExpansionPanelDetails, ExpansionPanelSummary, Typography } from '@material-ui/core';\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\n\nexport const setToolbarAvailability = (toolbarTools) =>\n toolsArr.map((tA) => ({ ...tA, toolbar: !!toolbarTools.find((t) => t === tA.type) })) || [];\n\nexport const toolIsAvailable = (tools, currentTool) =>\n currentTool && tools && (tools.find((tool) => tool.type === currentTool.type) || {}).toolbar;\n\nexport const getAvailableTool = (tools) => tools.find((tool) => tool.toolbar);\n\nexport const filterByValidToolTypes = (backgroundMarks) =>\n backgroundMarks.filter((bM) => !!allTools.find((tool) => tool === bM.type));\n\nexport const filterByVisibleToolTypes = (toolbarTools, marks) =>\n marks.filter((bM) => !!toolbarTools.find((tool) => tool === bM.type));\n\nconst getDefaultCurrentTool = (toolType) => toolsArr.find((tool) => tool.type === toolType) || null;\n\nconst Collapsible = ({ classes, children, title }) => (\n <ExpansionPanel elevation={0} className={classes.expansionPanel} disabledGutters={true} square={true}>\n <ExpansionPanelSummary\n classes={{\n root: classes.summaryRoot,\n content: classes.summaryContent,\n }}\n expandIcon={<ExpandMoreIcon />}\n >\n <Typography variant=\"subheading\">{title}</Typography>\n </ExpansionPanelSummary>\n <ExpansionPanelDetails className={classes.details}>{children}</ExpansionPanelDetails>\n </ExpansionPanel>\n);\n\nCollapsible.propTypes = {\n classes: PropTypes.object,\n children: PropTypes.array,\n title: PropTypes.string,\n};\n\nexport class GraphWithControls extends React.Component {\n static propTypes = {\n ...graphPropTypes,\n onUndo: PropTypes.func,\n onRedo: PropTypes.func,\n onReset: PropTypes.func,\n toolbarTools: PropTypes.arrayOf(PropTypes.string), // array of tool types that have to be displayed in the toolbar, same shape as 'allTools'\n };\n\n static defaultProps = {\n collapsibleToolbar: false,\n collapsibleToolbarTitle: '',\n disabledLabels: false,\n disabledTitle: false,\n showLabels: true,\n showTitle: true,\n toolbarTools: [],\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n currentTool: getDefaultCurrentTool(props.defaultTool),\n labelModeEnabled: false,\n };\n }\n\n componentDidUpdate(prevProps) {\n const { defaultTool } = this.props;\n\n if (prevProps.defaultTool !== defaultTool) {\n const currentTool = getDefaultCurrentTool(defaultTool);\n\n this.setState({ currentTool });\n }\n }\n\n changeCurrentTool = (tool, tools) => this.setState({ currentTool: tools.find((t) => t.type === tool) });\n\n toggleLabelMode = () => this.setState((state) => ({ labelModeEnabled: !state.labelModeEnabled }));\n\n render() {\n let { currentTool, labelModeEnabled } = this.state;\n const {\n axesSettings,\n classes,\n className,\n coordinatesOnHover,\n collapsibleToolbar,\n collapsibleToolbarTitle,\n disabled,\n disabledLabels,\n disabledTitle,\n domain,\n draggableTools,\n labels,\n labelsPlaceholders,\n onChangeLabels,\n onChangeMarks,\n onChangeTitle,\n onChangeTools,\n onUndo,\n onRedo,\n onReset,\n range,\n size,\n showLabels,\n showPixelGuides,\n showTitle,\n title,\n titlePlaceholder,\n } = this.props;\n let { backgroundMarks, marks, toolbarTools } = this.props;\n\n // make sure only valid tool types are kept (string) and without duplicates\n toolbarTools = uniq(toolbarTools || []).filter((tT) => !!isString(tT)) || [];\n\n // keep only the backgroundMarks that have valid types\n backgroundMarks = filterByValidToolTypes(backgroundMarks || []);\n\n // keep only the marks that have types which appear in toolbar\n marks = filterByVisibleToolTypes(toolbarTools, marks || []);\n\n const tools = setToolbarAvailability(toolbarTools);\n\n // set current tool if there's no current tool or if the existing one is no longer available\n if (!currentTool || !toolIsAvailable(tools, currentTool)) {\n currentTool = getAvailableTool(tools);\n }\n\n const graphActions = (\n <React.Fragment>\n <ToolMenu\n currentToolType={currentTool && currentTool.type}\n disabled={!!disabled}\n draggableTools={draggableTools}\n labelModeEnabled={labelModeEnabled}\n onChange={(tool) => this.changeCurrentTool(tool, tools)}\n onToggleLabelMode={this.toggleLabelMode}\n toolbarTools={toolbarTools}\n onChangeTools={onChangeTools}\n />\n\n {!disabled && <UndoRedo onUndo={onUndo} onRedo={onRedo} onReset={onReset} />}\n </React.Fragment>\n );\n\n return (\n <div className={classNames(classes.graphWithControls, className)}>\n <div className={classes.controls}>\n {collapsibleToolbar ? (\n <Collapsible classes={classes} title={collapsibleToolbarTitle}>\n {graphActions}\n </Collapsible>\n ) : (\n graphActions\n )}\n </div>\n\n <div ref={(r) => (this.labelNode = r)} />\n\n <Graph\n axesSettings={axesSettings}\n backgroundMarks={backgroundMarks}\n coordinatesOnHover={coordinatesOnHover}\n currentTool={currentTool}\n disabledLabels={disabledLabels}\n disabledTitle={disabledTitle}\n domain={domain}\n labels={labels}\n labelModeEnabled={labelModeEnabled}\n labelsPlaceholders={labelsPlaceholders}\n marks={marks}\n onChangeMarks={!disabled ? onChangeMarks : undefined}\n onChangeLabels={onChangeLabels}\n onChangeTitle={onChangeTitle}\n range={range}\n size={size}\n showLabels={showLabels}\n showPixelGuides={showPixelGuides}\n showTitle={showTitle}\n title={title}\n titlePlaceholder={titlePlaceholder}\n tools={tools}\n />\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n graphWithControls: {\n display: 'flex',\n flexDirection: 'column',\n width: 'min-content',\n },\n controls: {\n display: 'flex',\n justifyContent: 'space-between',\n padding: theme.spacing.unit,\n color: color.text(),\n backgroundColor: color.primaryLight(),\n borderTop: `solid 1px ${color.primaryDark()}`,\n borderBottom: `solid 0px ${color.primaryDark()}`,\n borderLeft: `solid 1px ${color.primaryDark()}`,\n borderRight: `solid 1px ${color.primaryDark()}`,\n '& button': {\n fontSize: theme.typography.fontSize,\n },\n },\n expansionPanel: {\n backgroundColor: color.primaryLight(),\n width: '100%',\n },\n summaryRoot: {\n padding: `0 ${theme.spacing.unit}px`,\n minHeight: '32px !important',\n },\n summaryContent: {\n margin: '4px 0 !important',\n },\n details: {\n padding: 0,\n marginTop: theme.spacing.unit,\n display: 'flex',\n justifyContent: 'space-between',\n },\n});\n\nexport default withStyles(styles)(GraphWithControls);\n"],"file":"graph-with-controls.js"}
1
+ {"version":3,"sources":["../src/graph-with-controls.jsx"],"names":["setToolbarAvailability","toolbarTools","toolsArr","map","tA","toolbar","find","t","type","toolIsAvailable","tools","currentTool","tool","getAvailableTool","filterByValidToolTypes","backgroundMarks","filter","bM","allTools","filterByVisibleToolTypes","marks","getDefaultCurrentTool","toolType","Collapsible","classes","children","title","expansionPanel","root","summaryRoot","content","summaryContent","details","propTypes","PropTypes","object","array","string","GraphWithControls","props","setState","state","labelModeEnabled","defaultTool","prevProps","axesSettings","className","coordinatesOnHover","collapsibleToolbar","collapsibleToolbarTitle","disabled","disabledLabels","disabledTitle","domain","draggableTools","labels","labelsPlaceholders","onChangeLabels","onChangeMarks","onChangeTitle","onChangeTools","onUndo","onRedo","onReset","range","size","showLabels","showPixelGuides","showTitle","titlePlaceholder","language","tT","graphActions","changeCurrentTool","toggleLabelMode","graphWithControls","controls","r","labelNode","undefined","React","Component","graphPropTypes","func","arrayOf","styles","theme","display","flexDirection","width","justifyContent","padding","spacing","unit","color","text","backgroundColor","primaryLight","borderTop","primaryDark","borderBottom","borderLeft","borderRight","fontSize","typography","minHeight","margin","marginTop"],"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 uniq from 'lodash/uniq';\nimport isString from 'lodash/isString';\nimport { color } from '@pie-lib/render-ui';\n\nimport ToolMenu from './tool-menu';\nimport Graph, { graphPropTypes } from './graph';\nimport UndoRedo from './undo-redo';\nimport { allTools, toolsArr } from './tools';\nimport { ExpansionPanel, ExpansionPanelDetails, ExpansionPanelSummary, Typography } from '@material-ui/core';\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\n\nexport const setToolbarAvailability = (toolbarTools) =>\n toolsArr.map((tA) => ({ ...tA, toolbar: !!toolbarTools.find((t) => t === tA.type) })) || [];\n\nexport const toolIsAvailable = (tools, currentTool) =>\n currentTool && tools && (tools.find((tool) => tool.type === currentTool.type) || {}).toolbar;\n\nexport const getAvailableTool = (tools) => tools.find((tool) => tool.toolbar);\n\nexport const filterByValidToolTypes = (backgroundMarks) =>\n backgroundMarks.filter((bM) => !!allTools.find((tool) => tool === bM.type));\n\nexport const filterByVisibleToolTypes = (toolbarTools, marks) =>\n marks.filter((bM) => !!toolbarTools.find((tool) => tool === bM.type));\n\nconst getDefaultCurrentTool = (toolType) => toolsArr.find((tool) => tool.type === toolType) || null;\n\nconst Collapsible = ({ classes, children, title }) => (\n <ExpansionPanel elevation={0} className={classes.expansionPanel} disabledGutters={true} square={true}>\n <ExpansionPanelSummary\n classes={{\n root: classes.summaryRoot,\n content: classes.summaryContent,\n }}\n expandIcon={<ExpandMoreIcon />}\n >\n <Typography variant=\"subheading\">{title}</Typography>\n </ExpansionPanelSummary>\n <ExpansionPanelDetails className={classes.details}>{children}</ExpansionPanelDetails>\n </ExpansionPanel>\n);\n\nCollapsible.propTypes = {\n classes: PropTypes.object,\n children: PropTypes.array,\n title: PropTypes.string,\n};\n\nexport class GraphWithControls extends React.Component {\n static propTypes = {\n ...graphPropTypes,\n onUndo: PropTypes.func,\n onRedo: PropTypes.func,\n onReset: PropTypes.func,\n toolbarTools: PropTypes.arrayOf(PropTypes.string), // array of tool types that have to be displayed in the toolbar, same shape as 'allTools'\n language: PropTypes.string,\n };\n\n static defaultProps = {\n collapsibleToolbar: false,\n collapsibleToolbarTitle: '',\n disabledLabels: false,\n disabledTitle: false,\n showLabels: true,\n showTitle: true,\n toolbarTools: [],\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n currentTool: getDefaultCurrentTool(props.defaultTool),\n labelModeEnabled: false,\n };\n }\n\n componentDidUpdate(prevProps) {\n const { defaultTool } = this.props;\n\n if (prevProps.defaultTool !== defaultTool) {\n const currentTool = getDefaultCurrentTool(defaultTool);\n\n this.setState({ currentTool });\n }\n }\n\n changeCurrentTool = (tool, tools) => this.setState({ currentTool: tools.find((t) => t.type === tool) });\n\n toggleLabelMode = () => this.setState((state) => ({ labelModeEnabled: !state.labelModeEnabled }));\n\n render() {\n let { currentTool, labelModeEnabled } = this.state;\n const {\n axesSettings,\n classes,\n className,\n coordinatesOnHover,\n collapsibleToolbar,\n collapsibleToolbarTitle,\n disabled,\n disabledLabels,\n disabledTitle,\n domain,\n draggableTools,\n labels,\n labelsPlaceholders,\n onChangeLabels,\n onChangeMarks,\n onChangeTitle,\n onChangeTools,\n onUndo,\n onRedo,\n onReset,\n range,\n size,\n showLabels,\n showPixelGuides,\n showTitle,\n title,\n titlePlaceholder,\n language\n } = this.props;\n let { backgroundMarks, marks, toolbarTools } = this.props;\n\n // make sure only valid tool types are kept (string) and without duplicates\n toolbarTools = uniq(toolbarTools || []).filter((tT) => !!isString(tT)) || [];\n\n // keep only the backgroundMarks that have valid types\n backgroundMarks = filterByValidToolTypes(backgroundMarks || []);\n\n // keep only the marks that have types which appear in toolbar\n marks = filterByVisibleToolTypes(toolbarTools, marks || []);\n\n const tools = setToolbarAvailability(toolbarTools);\n\n // set current tool if there's no current tool or if the existing one is no longer available\n if (!currentTool || !toolIsAvailable(tools, currentTool)) {\n currentTool = getAvailableTool(tools);\n }\n\n const graphActions = (\n <React.Fragment>\n <ToolMenu\n currentToolType={currentTool && currentTool.type}\n disabled={!!disabled}\n draggableTools={draggableTools}\n labelModeEnabled={labelModeEnabled}\n onChange={(tool) => this.changeCurrentTool(tool, tools)}\n onToggleLabelMode={this.toggleLabelMode}\n toolbarTools={toolbarTools}\n onChangeTools={onChangeTools}\n language={language}\n />\n\n {!disabled && <UndoRedo onUndo={onUndo} onRedo={onRedo} onReset={onReset} language={language}/>}\n </React.Fragment>\n );\n\n return (\n <div className={classNames(classes.graphWithControls, className)}>\n <div className={classes.controls}>\n {collapsibleToolbar ? (\n <Collapsible classes={classes} title={collapsibleToolbarTitle}>\n {graphActions}\n </Collapsible>\n ) : (\n graphActions\n )}\n </div>\n\n <div ref={(r) => (this.labelNode = r)} />\n\n <Graph\n axesSettings={axesSettings}\n backgroundMarks={backgroundMarks}\n coordinatesOnHover={coordinatesOnHover}\n currentTool={currentTool}\n disabledLabels={disabledLabels}\n disabledTitle={disabledTitle}\n domain={domain}\n labels={labels}\n labelModeEnabled={labelModeEnabled}\n labelsPlaceholders={labelsPlaceholders}\n marks={marks}\n onChangeMarks={!disabled ? onChangeMarks : undefined}\n onChangeLabels={onChangeLabels}\n onChangeTitle={onChangeTitle}\n range={range}\n size={size}\n showLabels={showLabels}\n showPixelGuides={showPixelGuides}\n showTitle={showTitle}\n title={title}\n titlePlaceholder={titlePlaceholder}\n tools={tools}\n />\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n graphWithControls: {\n display: 'flex',\n flexDirection: 'column',\n width: 'min-content',\n },\n controls: {\n display: 'flex',\n justifyContent: 'space-between',\n padding: theme.spacing.unit,\n color: color.text(),\n backgroundColor: color.primaryLight(),\n borderTop: `solid 1px ${color.primaryDark()}`,\n borderBottom: `solid 0px ${color.primaryDark()}`,\n borderLeft: `solid 1px ${color.primaryDark()}`,\n borderRight: `solid 1px ${color.primaryDark()}`,\n '& button': {\n fontSize: theme.typography.fontSize,\n },\n },\n expansionPanel: {\n backgroundColor: color.primaryLight(),\n width: '100%',\n },\n summaryRoot: {\n padding: `0 ${theme.spacing.unit}px`,\n minHeight: '32px !important',\n },\n summaryContent: {\n margin: '4px 0 !important',\n },\n details: {\n padding: 0,\n marginTop: theme.spacing.unit,\n display: 'flex',\n justifyContent: 'space-between',\n },\n});\n\nexport default withStyles(styles)(GraphWithControls);\n"],"file":"graph-with-controls.js"}
package/lib/toggle-bar.js CHANGED
@@ -37,6 +37,8 @@ var _index = require("./tools/index");
37
37
 
38
38
  var _drag = require("@pie-lib/drag");
39
39
 
40
+ var _translator = _interopRequireDefault(require("@pie-lib/translator"));
41
+
40
42
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
41
43
 
42
44
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
@@ -74,7 +76,9 @@ var MiniButton = (0, _styles.withStyles)(buttonStyles)(function (props) {
74
76
  className = props.className,
75
77
  selected = props.selected,
76
78
  value = props.value,
77
- onClick = props.onClick;
79
+ onClick = props.onClick,
80
+ language = props.language;
81
+ var translatorKey = value.toLowerCase();
78
82
  return /*#__PURE__*/_react["default"].createElement(_Button["default"], {
79
83
  size: "small",
80
84
  disabled: disabled,
@@ -86,7 +90,9 @@ var MiniButton = (0, _styles.withStyles)(buttonStyles)(function (props) {
86
90
  key: value,
87
91
  variant: "outlined",
88
92
  onClick: onClick
89
- }, value);
93
+ }, _translator["default"].t("graphing.".concat(translatorKey), {
94
+ lng: language
95
+ }));
90
96
  });
91
97
  exports.MiniButton = MiniButton;
92
98
  MiniButton.propTypes = {
@@ -140,7 +146,8 @@ var ToggleBar = /*#__PURE__*/function (_React$Component) {
140
146
  disabled = _this$props2.disabled,
141
147
  options = _this$props2.options,
142
148
  selectedToolType = _this$props2.selectedToolType,
143
- draggableTools = _this$props2.draggableTools;
149
+ draggableTools = _this$props2.draggableTools,
150
+ language = _this$props2.language;
144
151
  return /*#__PURE__*/_react["default"].createElement("div", {
145
152
  className: (0, _classnames["default"])(className, classes.toolsContainer)
146
153
  }, (options || []).map(function (option, index) {
@@ -162,7 +169,8 @@ var ToggleBar = /*#__PURE__*/function (_React$Component) {
162
169
  disableRipple: true,
163
170
  onClick: _this2.select,
164
171
  value: option,
165
- selected: isSelected
172
+ selected: isSelected,
173
+ language: language
166
174
  }));
167
175
  }
168
176
  }));
@@ -180,7 +188,8 @@ exports.ToggleBar = ToggleBar;
180
188
  disabled: _propTypes["default"].bool,
181
189
  draggableTools: _propTypes["default"].bool,
182
190
  onChange: _propTypes["default"].func,
183
- onChangeToolsOrder: _propTypes["default"].func
191
+ onChangeToolsOrder: _propTypes["default"].func,
192
+ language: _propTypes["default"].string
184
193
  });
185
194
  (0, _defineProperty2["default"])(ToggleBar, "defaultProps", {});
186
195
 
@@ -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","any","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 toolRef: PropTypes.any,\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"}
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","language","translatorKey","toLowerCase","translator","t","lng","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","any","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';\nimport translator from \"@pie-lib/translator\";\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, language } = props;\n const translatorKey = value.toLowerCase();\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 {translator.t(`graphing.${translatorKey}`, { lng: language })}\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 language: PropTypes.string,\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, language } = 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 language={language}\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 toolRef: PropTypes.any,\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 CHANGED
@@ -78,7 +78,8 @@ var ToolMenu = /*#__PURE__*/function (_React$Component) {
78
78
  draggableTools = _this$props.draggableTools,
79
79
  labelModeEnabled = _this$props.labelModeEnabled,
80
80
  onToggleLabelMode = _this$props.onToggleLabelMode,
81
- onChange = _this$props.onChange;
81
+ onChange = _this$props.onChange,
82
+ language = _this$props.language;
82
83
  var toolbarTools = this.props.toolbarTools;
83
84
  var showLabel = toolbarTools && toolbarTools.some(function (t) {
84
85
  return t === 'label';
@@ -96,12 +97,14 @@ var ToolMenu = /*#__PURE__*/function (_React$Component) {
96
97
  onChange: onChange,
97
98
  onChangeToolsOrder: function onChangeToolsOrder(tools) {
98
99
  return _this2.updateToolsOrder(tools, showLabel);
99
- }
100
+ },
101
+ language: language
100
102
  }), showLabel && /*#__PURE__*/_react["default"].createElement(_toggleBar.MiniButton, {
101
103
  disabled: disabled,
102
104
  value: 'Label',
103
105
  onClick: onToggleLabelMode,
104
- selected: labelModeEnabled
106
+ selected: labelModeEnabled,
107
+ language: language
105
108
  }));
106
109
  }
107
110
  }]);
@@ -118,7 +121,8 @@ exports.ToolMenu = ToolMenu;
118
121
  onChange: _propTypes["default"].func,
119
122
  onToggleLabelMode: _propTypes["default"].func,
120
123
  onChangeTools: _propTypes["default"].func,
121
- toolbarTools: _propTypes["default"].arrayOf(_propTypes["default"].string)
124
+ toolbarTools: _propTypes["default"].arrayOf(_propTypes["default"].string),
125
+ language: _propTypes["default"].string
122
126
  });
123
127
  (0, _defineProperty2["default"])(ToolMenu, "defaultProps", {
124
128
  toolbarTools: []
@@ -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,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
+ {"version":3,"sources":["../src/tool-menu.jsx"],"names":["ToolMenu","tools","showLabel","onChangeTools","props","push","className","currentToolType","disabled","draggableTools","labelModeEnabled","onToggleLabelMode","onChange","language","toolbarTools","some","t","filter","tT","updateToolsOrder","React","Component","PropTypes","string","bool","func","arrayOf"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;;;;;;;;;IAEaA,Q;;;;;;;;;;;;;;;yGAkBQ,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,wBASI,KAAKG,KATT;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;AAAA,UAQEC,QARF,eAQEA,QARF;AAUA,UAAMC,YAAN,GAAuB,KAAKV,KAA5B,CAAMU,YAAN;AAEA,UAAMZ,SAAS,GAAGY,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,4BAAWZ,SAAX;AAAhB,sBACE,gCAAC,qBAAD;AACE,QAAA,QAAQ,EAAEE,QADZ;AAEE,QAAA,cAAc,EAAEC,cAFlB;AAGE,QAAA,OAAO,EAAEK,YAHX;AAIE,QAAA,gBAAgB,EAAEP,eAJpB;AAKE,QAAA,QAAQ,EAAEK,QALZ;AAME,QAAA,kBAAkB,EAAE,4BAACX,KAAD;AAAA,iBAAW,MAAI,CAACkB,gBAAL,CAAsBlB,KAAtB,EAA6BC,SAA7B,CAAX;AAAA,SANtB;AAOE,QAAA,QAAQ,EAAEW;AAPZ,QADF,EAWGX,SAAS,iBACR,gCAAC,qBAAD;AAAY,QAAA,QAAQ,EAAEM,QAAtB;AAAgC,QAAA,KAAK,EAAE,OAAvC;AAAgD,QAAA,OAAO,EAAEG,iBAAzD;AAA4E,QAAA,QAAQ,EAAED,gBAAtF;AAAwG,QAAA,QAAQ,EAAEG;AAAlH,QAZJ,CADF;AAiBD;;;EA9D2BO,kBAAMC,S;;;iCAAvBrB,Q,eACQ;AACjBM,EAAAA,SAAS,EAAEgB,sBAAUC,MADJ;AAEjBhB,EAAAA,eAAe,EAAEe,sBAAUC,MAFV;AAGjBf,EAAAA,QAAQ,EAAEc,sBAAUE,IAHH;AAIjBf,EAAAA,cAAc,EAAEa,sBAAUE,IAJT;AAKjBd,EAAAA,gBAAgB,EAAEY,sBAAUE,IALX;AAMjBZ,EAAAA,QAAQ,EAAEU,sBAAUG,IANH;AAOjBd,EAAAA,iBAAiB,EAAEW,sBAAUG,IAPZ;AAQjBtB,EAAAA,aAAa,EAAEmB,sBAAUG,IARR;AASjBX,EAAAA,YAAY,EAAEQ,sBAAUI,OAAV,CAAkBJ,sBAAUC,MAA5B,CATG;AAUjBV,EAAAA,QAAQ,EAAES,sBAAUC;AAVH,C;iCADRvB,Q,kBAcW;AACpBc,EAAAA,YAAY,EAAE;AADM,C;eAmDTd,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 language: 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 language\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 language={language}\n />\n\n {showLabel && (\n <MiniButton disabled={disabled} value={'Label'} onClick={onToggleLabelMode} selected={labelModeEnabled} language={language} />\n )}\n </div>\n );\n }\n}\n\nexport default ToolMenu;\n"],"file":"tool-menu.js"}
package/lib/undo-redo.js CHANGED
@@ -31,6 +31,8 @@ var _core = require("@material-ui/core");
31
31
 
32
32
  var _renderUi = require("@pie-lib/render-ui");
33
33
 
34
+ var _translator = _interopRequireDefault(require("@pie-lib/translator"));
35
+
34
36
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
35
37
 
36
38
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
@@ -53,7 +55,8 @@ var UndoRedo = /*#__PURE__*/function (_React$Component) {
53
55
  className = _this$props.className,
54
56
  onUndo = _this$props.onUndo,
55
57
  onRedo = _this$props.onRedo,
56
- onReset = _this$props.onReset;
58
+ onReset = _this$props.onReset,
59
+ language = _this$props.language;
57
60
  return /*#__PURE__*/_react["default"].createElement("div", {
58
61
  className: (0, _classnames["default"])(className)
59
62
  }, /*#__PURE__*/_react["default"].createElement(_Button["default"], {
@@ -63,21 +66,27 @@ var UndoRedo = /*#__PURE__*/function (_React$Component) {
63
66
  onClick: function onClick() {
64
67
  return onUndo(true);
65
68
  }
66
- }, "Undo"), /*#__PURE__*/_react["default"].createElement(_Button["default"], {
69
+ }, _translator["default"].t("common:undo", {
70
+ lng: language
71
+ })), /*#__PURE__*/_react["default"].createElement(_Button["default"], {
67
72
  classes: {
68
73
  root: classes.button
69
74
  },
70
75
  onClick: function onClick() {
71
76
  return onRedo(true);
72
77
  }
73
- }, "Redo"), /*#__PURE__*/_react["default"].createElement(_Button["default"], {
78
+ }, _translator["default"].t("graphing.redo", {
79
+ lng: language
80
+ })), /*#__PURE__*/_react["default"].createElement(_Button["default"], {
74
81
  classes: {
75
82
  root: classes.button
76
83
  },
77
84
  onClick: function onClick() {
78
85
  return onReset();
79
86
  }
80
- }, "Reset"));
87
+ }, _translator["default"].t("graphing.reset", {
88
+ lng: language
89
+ })));
81
90
  }
82
91
  }]);
83
92
  return UndoRedo;
@@ -89,7 +98,8 @@ exports.UndoRedo = UndoRedo;
89
98
  className: _propTypes["default"].string,
90
99
  onUndo: _propTypes["default"].func.isRequired,
91
100
  onRedo: _propTypes["default"].func.isRequired,
92
- onReset: _propTypes["default"].func.isRequired
101
+ onReset: _propTypes["default"].func.isRequired,
102
+ language: _propTypes["default"].string
93
103
  });
94
104
  (0, _defineProperty2["default"])(UndoRedo, "defaultProps", {});
95
105
 
@@ -99,10 +109,10 @@ var styles = function styles(theme) {
99
109
  color: _renderUi.color.text(),
100
110
  backgroundColor: _renderUi.color.background(),
101
111
  marginBottom: theme.spacing.unit / 2,
102
- '&:not(:last-of-type)': {
112
+ "&:not(:last-of-type)": {
103
113
  marginRight: theme.spacing.unit / 2
104
114
  },
105
- '&:hover': {
115
+ "&:hover": {
106
116
  backgroundColor: _renderUi.color.primary()
107
117
  }
108
118
  }
@@ -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,EAAE;AAAA,iBAAMJ,MAAM,CAAC,IAAD,CAAZ;AAAA;AAApD,gBADF,eAIE,gCAAC,kBAAD;AAAQ,QAAA,OAAO,EAAE;AAAEG,UAAAA,IAAI,EAAEL,OAAO,CAACM;AAAhB,SAAjB;AAA2C,QAAA,OAAO,EAAE;AAAA,iBAAMH,MAAM,CAAC,IAAD,CAAZ;AAAA;AAApD,gBAJF,eAOE,gCAAC,kBAAD;AAAQ,QAAA,OAAO,EAAE;AAAEE,UAAAA,IAAI,EAAEL,OAAO,CAACM;AAAhB,SAAjB;AAA2C,QAAA,OAAO,EAAE;AAAA,iBAAMF,OAAO,EAAb;AAAA;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(true)}>\n Undo\n </Button>\n <Button classes={{ root: classes.button }} onClick={() => onRedo(true)}>\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"}
1
+ {"version":3,"sources":["../src/undo-redo.jsx"],"names":["UndoRedo","props","classes","className","onUndo","onRedo","onReset","language","root","button","translator","t","lng","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;;AACA;;;;;;IAEaA,Q;;;;;;;;;;;;WAWX,kBAAS;AACP,wBAAkE,KAAKC,KAAvE;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;AAAA,UAAqDC,QAArD,eAAqDA,QAArD;AACA,0BACE;AAAK,QAAA,SAAS,EAAE,4BAAWJ,SAAX;AAAhB,sBACE,gCAAC,kBAAD;AAAQ,QAAA,OAAO,EAAE;AAAEK,UAAAA,IAAI,EAAEN,OAAO,CAACO;AAAhB,SAAjB;AAA2C,QAAA,OAAO,EAAE;AAAA,iBAAML,MAAM,CAAC,IAAD,CAAZ;AAAA;AAApD,SACGM,uBAAWC,CAAX,CAAa,aAAb,EAA4B;AAAEC,QAAAA,GAAG,EAAEL;AAAP,OAA5B,CADH,CADF,eAIE,gCAAC,kBAAD;AAAQ,QAAA,OAAO,EAAE;AAAEC,UAAAA,IAAI,EAAEN,OAAO,CAACO;AAAhB,SAAjB;AAA2C,QAAA,OAAO,EAAE;AAAA,iBAAMJ,MAAM,CAAC,IAAD,CAAZ;AAAA;AAApD,SACGK,uBAAWC,CAAX,CAAa,eAAb,EAA8B;AAAEC,QAAAA,GAAG,EAAEL;AAAP,OAA9B,CADH,CAJF,eAOE,gCAAC,kBAAD;AAAQ,QAAA,OAAO,EAAE;AAAEC,UAAAA,IAAI,EAAEN,OAAO,CAACO;AAAhB,SAAjB;AAA2C,QAAA,OAAO,EAAE;AAAA,iBAAMH,OAAO,EAAb;AAAA;AAApD,SACGI,uBAAWC,CAAX,CAAa,gBAAb,EAA+B;AAAEC,QAAAA,GAAG,EAAEL;AAAP,OAA/B,CADH,CAPF,CADF;AAaD;;;EA1B2BM,kBAAMC,S;;;iCAAvBd,Q,eACQ;AACjBE,EAAAA,OAAO,EAAEa,sBAAUC,MADF;AAEjBb,EAAAA,SAAS,EAAEY,sBAAUE,MAFJ;AAGjBb,EAAAA,MAAM,EAAEW,sBAAUG,IAAV,CAAeC,UAHN;AAIjBd,EAAAA,MAAM,EAAEU,sBAAUG,IAAV,CAAeC,UAJN;AAKjBb,EAAAA,OAAO,EAAES,sBAAUG,IAAV,CAAeC,UALP;AAMjBZ,EAAAA,QAAQ,EAAEQ,sBAAUE;AANH,C;iCADRjB,Q,kBASW,E;;AAoBxB,IAAMoB,MAAM,GAAG,SAATA,MAAS,CAACC,KAAD;AAAA,SAAY;AACzBZ,IAAAA,MAAM,EAAE;AACNa,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,EAAmBpB,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\";\nimport translator from \"@pie-lib/translator\";\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 language: PropTypes.string\n };\n static defaultProps = {};\n\n render() {\n const { classes, className, onUndo, onRedo, onReset, language } = this.props;\n return (\n <div className={classNames(className)}>\n <Button classes={{ root: classes.button }} onClick={() => onUndo(true)}>\n {translator.t(\"common:undo\", { lng: language })}\n </Button>\n <Button classes={{ root: classes.button }} onClick={() => onRedo(true)}>\n {translator.t(\"graphing.redo\", { lng: language })}\n </Button>\n <Button classes={{ root: classes.button }} onClick={() => onReset()}>\n {translator.t(\"graphing.reset\", { lng: language })}\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/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "2.12.30",
6
+ "version": "2.12.31-next.8+ef505f8b",
7
7
  "description": "Graphing components",
8
8
  "keywords": [
9
9
  "react",
@@ -22,6 +22,7 @@
22
22
  "@pie-lib/graphing-utils": "^1.1.32",
23
23
  "@pie-lib/plot": "^2.6.13",
24
24
  "@pie-lib/render-ui": "^4.14.25",
25
+ "@pie-lib/translator": "^1.1.1-next.2+ef505f8b",
25
26
  "@vx/axis": "^0.0.189",
26
27
  "@vx/clip-path": "^0.0.189",
27
28
  "@vx/event": "^0.0.189",
@@ -44,6 +45,6 @@
44
45
  "peerDependencies": {
45
46
  "react": "^16.8.1"
46
47
  },
47
- "gitHead": "2a3ce431dfb8e4d8b53b28f2877edfa6991b6643",
48
+ "gitHead": "ef505f8bd405bde9be1460fb6cc6ae6c0c392f3d",
48
49
  "scripts": {}
49
50
  }
@@ -57,6 +57,7 @@ export class GraphWithControls extends React.Component {
57
57
  onRedo: PropTypes.func,
58
58
  onReset: PropTypes.func,
59
59
  toolbarTools: PropTypes.arrayOf(PropTypes.string), // array of tool types that have to be displayed in the toolbar, same shape as 'allTools'
60
+ language: PropTypes.string,
60
61
  };
61
62
 
62
63
  static defaultProps = {
@@ -122,6 +123,7 @@ export class GraphWithControls extends React.Component {
122
123
  showTitle,
123
124
  title,
124
125
  titlePlaceholder,
126
+ language
125
127
  } = this.props;
126
128
  let { backgroundMarks, marks, toolbarTools } = this.props;
127
129
 
@@ -152,9 +154,10 @@ export class GraphWithControls extends React.Component {
152
154
  onToggleLabelMode={this.toggleLabelMode}
153
155
  toolbarTools={toolbarTools}
154
156
  onChangeTools={onChangeTools}
157
+ language={language}
155
158
  />
156
159
 
157
- {!disabled && <UndoRedo onUndo={onUndo} onRedo={onRedo} onReset={onReset} />}
160
+ {!disabled && <UndoRedo onUndo={onUndo} onRedo={onRedo} onReset={onReset} language={language}/>}
158
161
  </React.Fragment>
159
162
  );
160
163
 
@@ -6,6 +6,7 @@ import Button from '@material-ui/core/Button';
6
6
  import { color } from '@pie-lib/render-ui';
7
7
  import { allTools } from './tools/index';
8
8
  import { withDragContext, DragSource, DropTarget } from '@pie-lib/drag';
9
+ import translator from "@pie-lib/translator";
9
10
 
10
11
  const buttonStyles = () => ({
11
12
  root: {
@@ -33,7 +34,8 @@ const buttonStyles = () => ({
33
34
  });
34
35
 
35
36
  export const MiniButton = withStyles(buttonStyles)((props) => {
36
- const { disabled, classes, className, selected, value, onClick } = props;
37
+ const { disabled, classes, className, selected, value, onClick, language } = props;
38
+ const translatorKey = value.toLowerCase();
37
39
 
38
40
  return (
39
41
  <Button
@@ -46,7 +48,7 @@ export const MiniButton = withStyles(buttonStyles)((props) => {
46
48
  variant="outlined"
47
49
  onClick={onClick}
48
50
  >
49
- {value}
51
+ {translator.t(`graphing.${translatorKey}`, { lng: language })}
50
52
  </Button>
51
53
  );
52
54
  });
@@ -71,6 +73,7 @@ export class ToggleBar extends React.Component {
71
73
  draggableTools: PropTypes.bool,
72
74
  onChange: PropTypes.func,
73
75
  onChangeToolsOrder: PropTypes.func,
76
+ language: PropTypes.string,
74
77
  };
75
78
 
76
79
  static defaultProps = {};
@@ -88,7 +91,7 @@ export class ToggleBar extends React.Component {
88
91
  };
89
92
 
90
93
  render() {
91
- const { classes, className, disabled, options, selectedToolType, draggableTools } = this.props;
94
+ const { classes, className, disabled, options, selectedToolType, draggableTools, language } = this.props;
92
95
 
93
96
  return (
94
97
  <div className={cn(className, classes.toolsContainer)}>
@@ -113,6 +116,7 @@ export class ToggleBar extends React.Component {
113
116
  onClick={this.select}
114
117
  value={option}
115
118
  selected={isSelected}
119
+ language={language}
116
120
  />
117
121
  </DragTool>
118
122
  );
package/src/tool-menu.jsx CHANGED
@@ -15,6 +15,7 @@ export class ToolMenu extends React.Component {
15
15
  onToggleLabelMode: PropTypes.func,
16
16
  onChangeTools: PropTypes.func,
17
17
  toolbarTools: PropTypes.arrayOf(PropTypes.string),
18
+ language: PropTypes.string,
18
19
  };
19
20
 
20
21
  static defaultProps = {
@@ -40,6 +41,7 @@ export class ToolMenu extends React.Component {
40
41
  labelModeEnabled,
41
42
  onToggleLabelMode,
42
43
  onChange,
44
+ language
43
45
  } = this.props;
44
46
  let { toolbarTools } = this.props;
45
47
 
@@ -56,10 +58,11 @@ export class ToolMenu extends React.Component {
56
58
  selectedToolType={currentToolType}
57
59
  onChange={onChange}
58
60
  onChangeToolsOrder={(tools) => this.updateToolsOrder(tools, showLabel)}
61
+ language={language}
59
62
  />
60
63
 
61
64
  {showLabel && (
62
- <MiniButton disabled={disabled} value={'Label'} onClick={onToggleLabelMode} selected={labelModeEnabled} />
65
+ <MiniButton disabled={disabled} value={'Label'} onClick={onToggleLabelMode} selected={labelModeEnabled} language={language} />
63
66
  )}
64
67
  </div>
65
68
  );
package/src/undo-redo.jsx CHANGED
@@ -1,9 +1,10 @@
1
- import React from 'react';
2
- import PropTypes from 'prop-types';
3
- import classNames from 'classnames';
4
- import Button from '@material-ui/core/Button';
5
- import { withStyles } from '@material-ui/core';
6
- import { color } from '@pie-lib/render-ui';
1
+ import React from "react";
2
+ import PropTypes from "prop-types";
3
+ import classNames from "classnames";
4
+ import Button from "@material-ui/core/Button";
5
+ import { withStyles } from "@material-ui/core";
6
+ import { color } from "@pie-lib/render-ui";
7
+ import translator from "@pie-lib/translator";
7
8
 
8
9
  export class UndoRedo extends React.Component {
9
10
  static propTypes = {
@@ -12,20 +13,22 @@ export class UndoRedo extends React.Component {
12
13
  onUndo: PropTypes.func.isRequired,
13
14
  onRedo: PropTypes.func.isRequired,
14
15
  onReset: PropTypes.func.isRequired,
16
+ language: PropTypes.string
15
17
  };
16
18
  static defaultProps = {};
19
+
17
20
  render() {
18
- const { classes, className, onUndo, onRedo, onReset } = this.props;
21
+ const { classes, className, onUndo, onRedo, onReset, language } = this.props;
19
22
  return (
20
23
  <div className={classNames(className)}>
21
24
  <Button classes={{ root: classes.button }} onClick={() => onUndo(true)}>
22
- Undo
25
+ {translator.t("common:undo", { lng: language })}
23
26
  </Button>
24
27
  <Button classes={{ root: classes.button }} onClick={() => onRedo(true)}>
25
- Redo
28
+ {translator.t("graphing.redo", { lng: language })}
26
29
  </Button>
27
30
  <Button classes={{ root: classes.button }} onClick={() => onReset()}>
28
- Reset
31
+ {translator.t("graphing.reset", { lng: language })}
29
32
  </Button>
30
33
  </div>
31
34
  );
@@ -37,13 +40,13 @@ const styles = (theme) => ({
37
40
  color: color.text(),
38
41
  backgroundColor: color.background(),
39
42
  marginBottom: theme.spacing.unit / 2,
40
- '&:not(:last-of-type)': {
41
- marginRight: theme.spacing.unit / 2,
42
- },
43
- '&:hover': {
44
- backgroundColor: color.primary(),
43
+ "&:not(:last-of-type)": {
44
+ marginRight: theme.spacing.unit / 2
45
45
  },
46
- },
46
+ "&:hover": {
47
+ backgroundColor: color.primary()
48
+ }
49
+ }
47
50
  });
48
51
 
49
52
  export default withStyles(styles)(UndoRedo);