@pie-lib/graphing 2.13.5-next.0 → 2.14.1-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,17 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [2.14.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@2.13.4...@pie-lib/graphing@2.14.0) (2023-06-12)
7
+
8
+
9
+ ### Features
10
+
11
+ * started adding new mathMLOptions property PD-2150 ([175b45e](https://github.com/pie-framework/pie-lib/commit/175b45ecd98e9cc703bd7056b930f299a4345c75))
12
+
13
+
14
+
15
+
16
+
6
17
  ## [2.13.4](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@2.13.3...@pie-lib/graphing@2.13.4) (2023-06-12)
7
18
 
8
19
  **Note:** Version bump only for package @pie-lib/graphing
package/lib/graph.js CHANGED
@@ -253,7 +253,9 @@ var Graph = /*#__PURE__*/function (_React$Component) {
253
253
  showTitle = _this$props5.showTitle,
254
254
  titlePlaceholder = _this$props5.titlePlaceholder,
255
255
  onChangeLabels = _this$props5.onChangeLabels,
256
- onChangeTitle = _this$props5.onChangeTitle;
256
+ onChangeTitle = _this$props5.onChangeTitle,
257
+ _this$props5$mathMlOp = _this$props5.mathMlOptions,
258
+ mathMlOptions = _this$props5$mathMlOp === void 0 ? {} : _this$props5$mathMlOp;
257
259
  var marks = this.props.marks;
258
260
  var graphProps = (0, _plot.createGraphProps)(domain, range, size, function () {
259
261
  return _this2.rootNode;
@@ -281,7 +283,8 @@ var Graph = /*#__PURE__*/function (_React$Component) {
281
283
  title: title,
282
284
  titlePlaceholder: titlePlaceholder,
283
285
  onChangeTitle: onChangeTitle,
284
- onChangeLabels: onChangeLabels
286
+ onChangeLabels: onChangeLabels,
287
+ mathMlOptions: mathMlOptions
285
288
  }, common), /*#__PURE__*/_react["default"].createElement("g", {
286
289
  transform: domain && domain.padding && domain.range ? "translate(".concat(domain.padding, ", ").concat(range.padding, ")") : undefined
287
290
  }, /*#__PURE__*/_react["default"].createElement(_grid["default"], common), /*#__PURE__*/_react["default"].createElement(_axis.Axes, (0, _extends2["default"])({}, axesSettings, common)), /*#__PURE__*/_react["default"].createElement(_bg["default"], (0, _extends2["default"])({}, size, {
package/lib/graph.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/graph.jsx"],"names":["log","graphPropTypes","axesSettings","PropTypes","shape","AxisPropTypes","backgroundMarks","array","className","string","collapsibleToolbar","bool","collapsibleToolbarTitle","disabledLabels","disabledTitle","domain","types","DomainType","labels","LabelType","labelModeEnabled","coordinatesOnHover","marks","onChangeLabels","func","onChangeMarks","onChangeTitle","range","size","width","number","isRequired","height","showLabels","showPixelGuides","showTitle","title","tools","getMaskSize","x","y","removeBuildingToolIfCurrentToolDiffers","currentTool","buildingMark","filter","m","building","newMarks","type","index","findIndex","splice","Graph","props","setState","labelNode","oldMark","newMark","markData","updatedMark","complete","updateMarks","existing","update","addIfMissing","mark","tool","find","t","Component","point","addPoint","undefined","maskUid","generateMaskId","Math","random","toFixed","labelsPlaceholders","titlePlaceholder","graphProps","rootNode","maskSize","common","r","padding","onBgClick","map","getComponent","markType","disabled","isBackground","state","changeMark","completeMark","startDrag","stopDrag","pointerEvents","React","object"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport isEqual from 'lodash/isEqual';\nimport cloneDeep from 'lodash/cloneDeep';\nimport { Root, types, createGraphProps } from '@pie-lib/plot';\nimport debug from 'debug';\n\nimport { Axes, AxisPropTypes } from './axis';\nimport Grid from './grid';\nimport { LabelType } from './labels';\nimport Bg from './bg';\nimport { isDuplicatedMark } from './utils';\n\nconst log = debug('pie-lib:graphing:graph');\n\nexport const graphPropTypes = {\n axesSettings: PropTypes.shape(AxisPropTypes),\n backgroundMarks: PropTypes.array,\n className: PropTypes.string,\n collapsibleToolbar: PropTypes.bool,\n collapsibleToolbarTitle: PropTypes.string,\n disabledLabels: PropTypes.bool,\n disabledTitle: PropTypes.bool,\n domain: types.DomainType,\n labels: PropTypes.shape(LabelType),\n labelModeEnabled: PropTypes.bool,\n coordinatesOnHover: PropTypes.bool,\n marks: PropTypes.array,\n onChangeLabels: PropTypes.func,\n onChangeMarks: PropTypes.func,\n onChangeTitle: PropTypes.func,\n range: types.DomainType,\n size: PropTypes.shape({\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n }),\n showLabels: PropTypes.bool,\n showPixelGuides: PropTypes.bool,\n showTitle: PropTypes.bool,\n title: PropTypes.string,\n tools: PropTypes.array,\n};\n\nconst getMaskSize = (size) => ({\n x: -23,\n y: -23,\n width: size.width + 46,\n height: size.height + 46,\n});\n\nexport const removeBuildingToolIfCurrentToolDiffers = ({ marks, currentTool }) => {\n const buildingMark = marks.filter((m) => m.building)[0];\n let newMarks = cloneDeep(marks);\n\n if (buildingMark && currentTool && buildingMark.type !== currentTool.type) {\n const index = newMarks.findIndex((m) => isEqual(m, buildingMark));\n\n if (index >= 0) {\n newMarks.splice(index, 1);\n }\n }\n\n return newMarks;\n};\n\nexport class Graph extends React.Component {\n constructor(props) {\n super(props);\n this.maskUid = this.generateMaskId();\n }\n\n static propTypes = {\n ...graphPropTypes,\n currentTool: PropTypes.object,\n };\n\n static defaultProps = {\n onChangeMarks: () => {},\n disabledLabels: false,\n disabledTitle: false,\n };\n\n state = {};\n\n generateMaskId() {\n return 'graph-' + (Math.random() * 10000).toFixed();\n }\n\n componentDidMount = () => this.setState({ labelNode: this.labelNode });\n\n changeMark = (oldMark, newMark) => {\n const { onChangeMarks, marks } = this.props;\n let newMarks = cloneDeep(marks);\n\n const index = newMarks.findIndex((m) => isEqual(m, oldMark));\n\n if (index >= 0 && !isDuplicatedMark(newMark, marks, oldMark)) {\n newMarks.splice(index, 1, newMark);\n\n onChangeMarks(newMarks);\n }\n };\n\n completeMark = (markData) => {\n const { currentTool, marks } = this.props;\n const buildingMark = marks.filter((m) => m.building)[0];\n\n if (!buildingMark || !currentTool) return;\n\n const updatedMark = currentTool.complete(buildingMark, markData);\n\n this.updateMarks(buildingMark, updatedMark);\n };\n\n updateMarks = (existing, update, addIfMissing = false) => {\n const { onChangeMarks, marks } = this.props;\n let newMarks = cloneDeep(marks);\n\n if (!update.building && isDuplicatedMark(update, marks)) {\n return;\n }\n\n const index = newMarks.findIndex((m) => isEqual(m, existing));\n\n if (index >= 0) {\n newMarks.splice(index, 1, update);\n\n onChangeMarks(newMarks);\n } else if (addIfMissing) {\n onChangeMarks([...newMarks, update]);\n }\n };\n\n getComponent = (mark) => {\n if (!mark) return null;\n\n const tool = (this.props.tools || []).find((t) => t.type === mark.type);\n\n return (tool && tool.Component) || null;\n };\n\n onBgClick = (point) => {\n const { x, y } = point;\n const { labelModeEnabled, currentTool, marks } = this.props;\n\n log('[onBgClick] x,y: ', x, y);\n\n if (labelModeEnabled || !currentTool) {\n return;\n }\n\n const buildingMark = marks.filter((m) => m.building)[0];\n let updatedMark;\n\n // if the building mark has a different type, we just replace it\n if (buildingMark && currentTool && buildingMark.type === currentTool.type) {\n updatedMark = currentTool.addPoint({ x, y }, { ...buildingMark });\n } else {\n updatedMark = currentTool.addPoint({ x, y }, undefined);\n }\n\n this.updateMarks(buildingMark, updatedMark, true);\n };\n\n render() {\n const {\n axesSettings,\n currentTool,\n coordinatesOnHover,\n size,\n disabledLabels,\n disabledTitle,\n domain,\n backgroundMarks,\n range,\n title,\n labels,\n labelModeEnabled,\n labelsPlaceholders,\n showLabels,\n showPixelGuides,\n showTitle,\n titlePlaceholder,\n onChangeLabels,\n onChangeTitle,\n } = this.props;\n let { marks } = this.props;\n\n const graphProps = createGraphProps(domain, range, size, () => this.rootNode);\n\n const maskSize = getMaskSize(size);\n const common = { graphProps, labelModeEnabled };\n\n marks = removeBuildingToolIfCurrentToolDiffers({ marks: marks || [], currentTool });\n\n return (\n <Root\n rootRef={(r) => (this.rootNode = r)}\n disabledTitle={disabledTitle}\n disabledLabels={disabledLabels}\n labels={labels}\n labelsPlaceholders={labelsPlaceholders || {}}\n showPixelGuides={showPixelGuides}\n showLabels={showLabels}\n showTitle={showTitle}\n title={title}\n titlePlaceholder={titlePlaceholder}\n onChangeTitle={onChangeTitle}\n onChangeLabels={onChangeLabels}\n {...common}\n >\n <g\n transform={\n domain && domain.padding && domain.range ? `translate(${domain.padding}, ${range.padding})` : undefined\n }\n >\n <Grid {...common} />\n <Axes {...axesSettings} {...common} />\n <Bg {...size} onClick={this.onBgClick} {...common} />\n <mask id={`${this.maskUid}`}>\n <rect {...maskSize} fill=\"white\" /> {/* TODO hardcoded color */}\n </mask>\n\n <g id=\"marks\" mask={`url('#${this.maskUid}')`}>\n {(backgroundMarks || []).map((m, index) => {\n const Component = this.getComponent(m);\n const markType = m.type;\n\n return (\n <Component\n key={`${markType}-${index}-bg`}\n mark={{ ...m, disabled: true, isBackground: true }}\n labelNode={this.state.labelNode}\n {...common}\n />\n );\n })}\n\n {marks.map((m, index) => {\n const Component = this.getComponent(m);\n const markType = m.type;\n\n return (\n <Component\n key={`${markType}-${index}`}\n mark={m}\n coordinatesOnHover={coordinatesOnHover}\n onChange={this.changeMark}\n onComplete={this.completeMark}\n onClick={this.onBgClick}\n onDragStart={this.startDrag}\n onDragStop={this.stopDrag}\n labelNode={this.state.labelNode}\n isToolActive={currentTool && markType === currentTool.type}\n {...common}\n />\n );\n })}\n <foreignObject\n ref={(labelNode) => (this.labelNode = labelNode)}\n x=\"0\"\n y=\"0\"\n {...size}\n style={{ pointerEvents: 'none' }}\n />\n </g>\n </g>\n </Root>\n );\n }\n}\n\nexport default Graph;\n"],"file":"graph.js"}
1
+ {"version":3,"sources":["../src/graph.jsx"],"names":["log","graphPropTypes","axesSettings","PropTypes","shape","AxisPropTypes","backgroundMarks","array","className","string","collapsibleToolbar","bool","collapsibleToolbarTitle","disabledLabels","disabledTitle","domain","types","DomainType","labels","LabelType","labelModeEnabled","coordinatesOnHover","marks","onChangeLabels","func","onChangeMarks","onChangeTitle","range","size","width","number","isRequired","height","showLabels","showPixelGuides","showTitle","title","tools","getMaskSize","x","y","removeBuildingToolIfCurrentToolDiffers","currentTool","buildingMark","filter","m","building","newMarks","type","index","findIndex","splice","Graph","props","setState","labelNode","oldMark","newMark","markData","updatedMark","complete","updateMarks","existing","update","addIfMissing","mark","tool","find","t","Component","point","addPoint","undefined","maskUid","generateMaskId","Math","random","toFixed","labelsPlaceholders","titlePlaceholder","mathMlOptions","graphProps","rootNode","maskSize","common","r","padding","onBgClick","map","getComponent","markType","disabled","isBackground","state","changeMark","completeMark","startDrag","stopDrag","pointerEvents","React","object"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport isEqual from 'lodash/isEqual';\nimport cloneDeep from 'lodash/cloneDeep';\nimport { Root, types, createGraphProps } from '@pie-lib/plot';\nimport debug from 'debug';\n\nimport { Axes, AxisPropTypes } from './axis';\nimport Grid from './grid';\nimport { LabelType } from './labels';\nimport Bg from './bg';\nimport { isDuplicatedMark } from './utils';\n\nconst log = debug('pie-lib:graphing:graph');\n\nexport const graphPropTypes = {\n axesSettings: PropTypes.shape(AxisPropTypes),\n backgroundMarks: PropTypes.array,\n className: PropTypes.string,\n collapsibleToolbar: PropTypes.bool,\n collapsibleToolbarTitle: PropTypes.string,\n disabledLabels: PropTypes.bool,\n disabledTitle: PropTypes.bool,\n domain: types.DomainType,\n labels: PropTypes.shape(LabelType),\n labelModeEnabled: PropTypes.bool,\n coordinatesOnHover: PropTypes.bool,\n marks: PropTypes.array,\n onChangeLabels: PropTypes.func,\n onChangeMarks: PropTypes.func,\n onChangeTitle: PropTypes.func,\n range: types.DomainType,\n size: PropTypes.shape({\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n }),\n showLabels: PropTypes.bool,\n showPixelGuides: PropTypes.bool,\n showTitle: PropTypes.bool,\n title: PropTypes.string,\n tools: PropTypes.array,\n};\n\nconst getMaskSize = (size) => ({\n x: -23,\n y: -23,\n width: size.width + 46,\n height: size.height + 46,\n});\n\nexport const removeBuildingToolIfCurrentToolDiffers = ({ marks, currentTool }) => {\n const buildingMark = marks.filter((m) => m.building)[0];\n let newMarks = cloneDeep(marks);\n\n if (buildingMark && currentTool && buildingMark.type !== currentTool.type) {\n const index = newMarks.findIndex((m) => isEqual(m, buildingMark));\n\n if (index >= 0) {\n newMarks.splice(index, 1);\n }\n }\n\n return newMarks;\n};\n\nexport class Graph extends React.Component {\n constructor(props) {\n super(props);\n this.maskUid = this.generateMaskId();\n }\n\n static propTypes = {\n ...graphPropTypes,\n currentTool: PropTypes.object,\n };\n\n static defaultProps = {\n onChangeMarks: () => {},\n disabledLabels: false,\n disabledTitle: false,\n };\n\n state = {};\n\n generateMaskId() {\n return 'graph-' + (Math.random() * 10000).toFixed();\n }\n\n componentDidMount = () => this.setState({ labelNode: this.labelNode });\n\n changeMark = (oldMark, newMark) => {\n const { onChangeMarks, marks } = this.props;\n let newMarks = cloneDeep(marks);\n\n const index = newMarks.findIndex((m) => isEqual(m, oldMark));\n\n if (index >= 0 && !isDuplicatedMark(newMark, marks, oldMark)) {\n newMarks.splice(index, 1, newMark);\n\n onChangeMarks(newMarks);\n }\n };\n\n completeMark = (markData) => {\n const { currentTool, marks } = this.props;\n const buildingMark = marks.filter((m) => m.building)[0];\n\n if (!buildingMark || !currentTool) return;\n\n const updatedMark = currentTool.complete(buildingMark, markData);\n\n this.updateMarks(buildingMark, updatedMark);\n };\n\n updateMarks = (existing, update, addIfMissing = false) => {\n const { onChangeMarks, marks } = this.props;\n let newMarks = cloneDeep(marks);\n\n if (!update.building && isDuplicatedMark(update, marks)) {\n return;\n }\n\n const index = newMarks.findIndex((m) => isEqual(m, existing));\n\n if (index >= 0) {\n newMarks.splice(index, 1, update);\n\n onChangeMarks(newMarks);\n } else if (addIfMissing) {\n onChangeMarks([...newMarks, update]);\n }\n };\n\n getComponent = (mark) => {\n if (!mark) return null;\n\n const tool = (this.props.tools || []).find((t) => t.type === mark.type);\n\n return (tool && tool.Component) || null;\n };\n\n onBgClick = (point) => {\n const { x, y } = point;\n const { labelModeEnabled, currentTool, marks } = this.props;\n\n log('[onBgClick] x,y: ', x, y);\n\n if (labelModeEnabled || !currentTool) {\n return;\n }\n\n const buildingMark = marks.filter((m) => m.building)[0];\n let updatedMark;\n\n // if the building mark has a different type, we just replace it\n if (buildingMark && currentTool && buildingMark.type === currentTool.type) {\n updatedMark = currentTool.addPoint({ x, y }, { ...buildingMark });\n } else {\n updatedMark = currentTool.addPoint({ x, y }, undefined);\n }\n\n this.updateMarks(buildingMark, updatedMark, true);\n };\n\n render() {\n const {\n axesSettings,\n currentTool,\n coordinatesOnHover,\n size,\n disabledLabels,\n disabledTitle,\n domain,\n backgroundMarks,\n range,\n title,\n labels,\n labelModeEnabled,\n labelsPlaceholders,\n showLabels,\n showPixelGuides,\n showTitle,\n titlePlaceholder,\n onChangeLabels,\n onChangeTitle,\n mathMlOptions = {}\n } = this.props;\n let { marks } = this.props;\n\n const graphProps = createGraphProps(domain, range, size, () => this.rootNode);\n\n const maskSize = getMaskSize(size);\n const common = { graphProps, labelModeEnabled };\n\n marks = removeBuildingToolIfCurrentToolDiffers({ marks: marks || [], currentTool });\n\n return (\n <Root\n rootRef={(r) => (this.rootNode = r)}\n disabledTitle={disabledTitle}\n disabledLabels={disabledLabels}\n labels={labels}\n labelsPlaceholders={labelsPlaceholders || {}}\n showPixelGuides={showPixelGuides}\n showLabels={showLabels}\n showTitle={showTitle}\n title={title}\n titlePlaceholder={titlePlaceholder}\n onChangeTitle={onChangeTitle}\n onChangeLabels={onChangeLabels}\n mathMlOptions={mathMlOptions}\n {...common}\n >\n <g\n transform={\n domain && domain.padding && domain.range ? `translate(${domain.padding}, ${range.padding})` : undefined\n }\n >\n <Grid {...common} />\n <Axes {...axesSettings} {...common} />\n <Bg {...size} onClick={this.onBgClick} {...common} />\n <mask id={`${this.maskUid}`}>\n <rect {...maskSize} fill=\"white\" /> {/* TODO hardcoded color */}\n </mask>\n\n <g id=\"marks\" mask={`url('#${this.maskUid}')`}>\n {(backgroundMarks || []).map((m, index) => {\n const Component = this.getComponent(m);\n const markType = m.type;\n\n return (\n <Component\n key={`${markType}-${index}-bg`}\n mark={{ ...m, disabled: true, isBackground: true }}\n labelNode={this.state.labelNode}\n {...common}\n />\n );\n })}\n\n {marks.map((m, index) => {\n const Component = this.getComponent(m);\n const markType = m.type;\n\n return (\n <Component\n key={`${markType}-${index}`}\n mark={m}\n coordinatesOnHover={coordinatesOnHover}\n onChange={this.changeMark}\n onComplete={this.completeMark}\n onClick={this.onBgClick}\n onDragStart={this.startDrag}\n onDragStop={this.stopDrag}\n labelNode={this.state.labelNode}\n isToolActive={currentTool && markType === currentTool.type}\n {...common}\n />\n );\n })}\n <foreignObject\n ref={(labelNode) => (this.labelNode = labelNode)}\n x=\"0\"\n y=\"0\"\n {...size}\n style={{ pointerEvents: 'none' }}\n />\n </g>\n </g>\n </Root>\n );\n }\n}\n\nexport default Graph;\n"],"file":"graph.js"}
package/lib/labels.js CHANGED
@@ -112,7 +112,9 @@ var RawLabel = /*#__PURE__*/function (_React$Component) {
112
112
  side = _this$props.side,
113
113
  graphProps = _this$props.graphProps,
114
114
  classes = _this$props.classes,
115
- onChange = _this$props.onChange;
115
+ onChange = _this$props.onChange,
116
+ _this$props$mathMlOpt = _this$props.mathMlOptions,
117
+ mathMlOptions = _this$props$mathMlOpt === void 0 ? {} : _this$props$mathMlOpt;
116
118
  var size = graphProps.size,
117
119
  domain = graphProps.domain,
118
120
  range = graphProps.range;
@@ -143,7 +145,8 @@ var RawLabel = /*#__PURE__*/function (_React$Component) {
143
145
  position: side === 'bottom' ? 'top' : 'bottom',
144
146
  noBorder: true
145
147
  },
146
- activePlugins: activePlugins
148
+ activePlugins: activePlugins,
149
+ mathMlOptions: mathMlOptions
147
150
  })));
148
151
  }
149
152
  }]);
@@ -226,7 +229,9 @@ var Labels = /*#__PURE__*/function (_React$Component2) {
226
229
  placeholders = _this$props3$placehol === void 0 ? {} : _this$props3$placehol,
227
230
  _this$props3$value = _this$props3.value,
228
231
  value = _this$props3$value === void 0 ? {} : _this$props3$value,
229
- graphProps = _this$props3.graphProps;
232
+ graphProps = _this$props3.graphProps,
233
+ _this$props3$mathMlOp = _this$props3.mathMlOptions,
234
+ mathMlOptions = _this$props3$mathMlOp === void 0 ? {} : _this$props3$mathMlOp;
230
235
  return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(Label, {
231
236
  key: "left",
232
237
  side: "left",
@@ -236,7 +241,8 @@ var Labels = /*#__PURE__*/function (_React$Component2) {
236
241
  graphProps: graphProps,
237
242
  onChange: function onChange(value) {
238
243
  return _this2.onChangeLabel(value, 'left');
239
- }
244
+ },
245
+ mathMlOptions: mathMlOptions
240
246
  }), /*#__PURE__*/_react["default"].createElement(Label, {
241
247
  key: "top",
242
248
  side: "top",
@@ -246,7 +252,8 @@ var Labels = /*#__PURE__*/function (_React$Component2) {
246
252
  graphProps: graphProps,
247
253
  onChange: function onChange(value) {
248
254
  return _this2.onChangeLabel(value, 'top');
249
- }
255
+ },
256
+ mathMlOptions: mathMlOptions
250
257
  }), /*#__PURE__*/_react["default"].createElement(Label, {
251
258
  key: "bottom",
252
259
  side: "bottom",
@@ -256,7 +263,8 @@ var Labels = /*#__PURE__*/function (_React$Component2) {
256
263
  graphProps: graphProps,
257
264
  onChange: function onChange(value) {
258
265
  return _this2.onChangeLabel(value, 'bottom');
259
- }
266
+ },
267
+ mathMlOptions: mathMlOptions
260
268
  }), /*#__PURE__*/_react["default"].createElement(Label, {
261
269
  key: "right",
262
270
  side: "right",
@@ -266,7 +274,8 @@ var Labels = /*#__PURE__*/function (_React$Component2) {
266
274
  graphProps: graphProps,
267
275
  onChange: function onChange(value) {
268
276
  return _this2.onChangeLabel(value, 'right');
269
- }
277
+ },
278
+ mathMlOptions: mathMlOptions
270
279
  }));
271
280
  }
272
281
  }]);
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","func","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;;;;;;;;;;;;WAeJ,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;;;EAlEoBM,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,UANhB;AAOjBvB,EAAAA,QAAQ,EAAEiB,sBAAUO;AAPH,C;iCADf/B,Q,kBAWkB;AACpBO,EAAAA,QAAQ,EAAE,oBAAM,CAAE;AADE,C;AA0DxB,IAAMyB,KAAK,GAAG,wBAAW,UAACC,KAAD;AAAA,SAAY;AACnCC,IAAAA,KAAK,EAAE;AACLC,MAAAA,IAAI,EAAEC,gBAAMC,SAAN;AADD,KAD4B;AAInClB,IAAAA,SAAS,EAAE;AACTmB,MAAAA,QAAQ,EAAEL,KAAK,CAACM,UAAN,CAAiBD,QAAjB,GAA4B,CAD7B;AAETE,MAAAA,SAAS,EAAE,QAFF;AAGT5B,MAAAA,OAAO,EAAE;AAHA,KAJwB;AASnCM,IAAAA,iBAAiB,EAAE;AACjBuB,MAAAA,aAAa,EAAE;AADE,KATgB;AAYnCxB,IAAAA,WAAW,EAAE;AACXyB,MAAAA,SAAS,EAAE;AADA;AAZsB,GAAZ;AAAA,CAAX,EAeV1C,QAfU,CAAd;AAiBO,IAAM2C,SAAS,GAAG;AACvBxD,EAAAA,IAAI,EAAEqC,sBAAUC,MADO;AAEvBrC,EAAAA,GAAG,EAAEoC,sBAAUC,MAFQ;AAGvBpC,EAAAA,MAAM,EAAEmC,sBAAUC,MAHK;AAIvBnC,EAAAA,KAAK,EAAEkC,sBAAUC;AAJM,CAAlB;;;IAOMmB,M;;;;;;;;;;;;;;;sGAaK,UAACC,QAAD,EAAWrD,IAAX,EAAoB;AAClC,yBAA4B,MAAKS,KAAjC;AAAA,UAAQ6C,KAAR,gBAAQA,KAAR;AAAA,UAAevC,QAAf,gBAAeA,QAAf;;AACA,UAAMwC,MAAM,mCACPD,KADO,4CAETtD,IAFS,EAEFqD,QAFE,EAAZ;;AAKAtC,MAAAA,QAAQ,CAACwC,MAAD,CAAR;AACD,K;;;;;;WAED,kBAAS;AAAA;;AACP,yBAAsE,KAAK9C,KAA3E;AAAA,UAAQ+C,cAAR,gBAAQA,cAAR;AAAA,+CAAwBC,YAAxB;AAAA,UAAwBA,YAAxB,sCAAuC,EAAvC;AAAA,4CAA2CH,KAA3C;AAAA,UAA2CA,KAA3C,mCAAmD,EAAnD;AAAA,UAAuDzC,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,EAAEyC,KAAK,CAAC3D,IAHd;AAIE,QAAA,aAAa,EAAE6D,cAJjB;AAKE,QAAA,WAAW,EAAEC,YAAY,CAAC9D,IAL5B;AAME,QAAA,UAAU,EAAEkB,UANd;AAOE,QAAA,QAAQ,EAAE,kBAACyC,KAAD;AAAA,iBAAW,MAAI,CAACI,aAAL,CAAmBJ,KAAnB,EAA0B,MAA1B,CAAX;AAAA;AAPZ,QADF,eAUE,gCAAC,KAAD;AACE,QAAA,GAAG,EAAC,KADN;AAEE,QAAA,IAAI,EAAC,KAFP;AAGE,QAAA,IAAI,EAAEA,KAAK,CAAC1D,GAHd;AAIE,QAAA,aAAa,EAAE4D,cAJjB;AAKE,QAAA,WAAW,EAAEC,YAAY,CAAC7D,GAL5B;AAME,QAAA,UAAU,EAAEiB,UANd;AAOE,QAAA,QAAQ,EAAE,kBAACyC,KAAD;AAAA,iBAAW,MAAI,CAACI,aAAL,CAAmBJ,KAAnB,EAA0B,KAA1B,CAAX;AAAA;AAPZ,QAVF,eAmBE,gCAAC,KAAD;AACE,QAAA,GAAG,EAAC,QADN;AAEE,QAAA,IAAI,EAAC,QAFP;AAGE,QAAA,IAAI,EAAEA,KAAK,CAACzD,MAHd;AAIE,QAAA,aAAa,EAAE2D,cAJjB;AAKE,QAAA,WAAW,EAAEC,YAAY,CAAC5D,MAL5B;AAME,QAAA,UAAU,EAAEgB,UANd;AAOE,QAAA,QAAQ,EAAE,kBAACyC,KAAD;AAAA,iBAAW,MAAI,CAACI,aAAL,CAAmBJ,KAAnB,EAA0B,QAA1B,CAAX;AAAA;AAPZ,QAnBF,eA4BE,gCAAC,KAAD;AACE,QAAA,GAAG,EAAC,OADN;AAEE,QAAA,IAAI,EAAC,OAFP;AAGE,QAAA,IAAI,EAAEA,KAAK,CAACxD,KAHd;AAIE,QAAA,aAAa,EAAE0D,cAJjB;AAKE,QAAA,WAAW,EAAEC,YAAY,CAAC3D,KAL5B;AAME,QAAA,UAAU,EAAEe,UANd;AAOE,QAAA,QAAQ,EAAE,kBAACyC,KAAD;AAAA,iBAAW,MAAI,CAACI,aAAL,CAAmBJ,KAAnB,EAA0B,OAA1B,CAAX;AAAA;AAPZ,QA5BF,CADF;AAwCD;;;EAlEyBxB,kBAAMC,S;;;iCAArBqB,M,eACQ;AACjBtC,EAAAA,OAAO,EAAEkB,sBAAUE,MADF;AAEjByB,EAAAA,SAAS,EAAE3B,sBAAUC,MAFJ;AAGjBuB,EAAAA,cAAc,EAAExB,sBAAUG,IAHT;AAIjBsB,EAAAA,YAAY,EAAEzB,sBAAUE,MAJP;AAKjBoB,EAAAA,KAAK,EAAEtB,sBAAU4B,KAAV,CAAgBT,SAAhB,CALU;AAMjBtC,EAAAA,UAAU,EAAEmB,sBAAUE,MANL;AAOjBnB,EAAAA,QAAQ,EAAEiB,sBAAUE;AAPH,C;iCADRkB,M,kBAWW,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 onChange: PropTypes.func,\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 onChange: 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","mathMlOptions","size","domain","range","totalHeight","padding","totalWidth","transform","finalHeight","activePlugins","bottomLabel","disabledAxisLabel","axisLabel","position","noBorder","React","Component","PropTypes","string","object","bool","types","GraphPropsType","isRequired","func","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 onChange: PropTypes.func,\n };\n\n static defaultProps = {\n onChange: () => {},\n };\n\n render() {\n const { disabledLabel, placeholder, text, side, graphProps, classes, onChange, mathMlOptions = {} } = 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 mathMlOptions={mathMlOptions}\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 onChange: 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, mathMlOptions = {} } = 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 mathMlOptions={mathMlOptions}\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 mathMlOptions={mathMlOptions}\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 mathMlOptions={mathMlOptions}\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 mathMlOptions={mathMlOptions}\n />\n </React.Fragment>\n );\n }\n}\n\nexport default Labels;\n"],"file":"labels.js"}
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "2.13.5-next.0+fce70993",
6
+ "version": "2.14.1-next.0+01336e0d",
7
7
  "description": "Graphing components",
8
8
  "keywords": [
9
9
  "react",
@@ -20,8 +20,8 @@
20
20
  "@material-ui/core": "^3.8.3",
21
21
  "@pie-lib/drag": "^2.1.19",
22
22
  "@pie-lib/graphing-utils": "^1.1.32",
23
- "@pie-lib/plot": "^2.6.13",
24
- "@pie-lib/render-ui": "^4.14.27-next.0+fce70993",
23
+ "@pie-lib/plot": "^2.7.1-next.0+01336e0d",
24
+ "@pie-lib/render-ui": "^4.14.26",
25
25
  "@pie-lib/translator": "^2.0.0",
26
26
  "@vx/axis": "^0.0.189",
27
27
  "@vx/clip-path": "^0.0.189",
@@ -45,6 +45,6 @@
45
45
  "peerDependencies": {
46
46
  "react": "^16.8.1"
47
47
  },
48
- "gitHead": "fce7099306bd4e3add6c5e0fa89e05156734dcdc",
48
+ "gitHead": "01336e0ddd02830406b3e5e8a80dd4a3a33bddfe",
49
49
  "scripts": {}
50
50
  }
package/src/graph.jsx CHANGED
@@ -183,6 +183,7 @@ export class Graph extends React.Component {
183
183
  titlePlaceholder,
184
184
  onChangeLabels,
185
185
  onChangeTitle,
186
+ mathMlOptions = {}
186
187
  } = this.props;
187
188
  let { marks } = this.props;
188
189
 
@@ -207,6 +208,7 @@ export class Graph extends React.Component {
207
208
  titlePlaceholder={titlePlaceholder}
208
209
  onChangeTitle={onChangeTitle}
209
210
  onChangeLabels={onChangeLabels}
211
+ mathMlOptions={mathMlOptions}
210
212
  {...common}
211
213
  >
212
214
  <g
package/src/labels.jsx CHANGED
@@ -59,7 +59,7 @@ class RawLabel extends React.Component {
59
59
  };
60
60
 
61
61
  render() {
62
- const { disabledLabel, placeholder, text, side, graphProps, classes, onChange } = this.props;
62
+ const { disabledLabel, placeholder, text, side, graphProps, classes, onChange, mathMlOptions = {} } = this.props;
63
63
  const { size, domain, range } = graphProps;
64
64
  const totalHeight = (size.height || 500) + (range.padding || 0) * 2;
65
65
  const totalWidth = (size.width || 500) + (domain.padding || 0) * 2;
@@ -105,6 +105,7 @@ class RawLabel extends React.Component {
105
105
  noBorder: true,
106
106
  }}
107
107
  activePlugins={activePlugins}
108
+ mathMlOptions={mathMlOptions}
108
109
  />
109
110
  </Readable>
110
111
  </foreignObject>
@@ -160,7 +161,7 @@ export class Labels extends React.Component {
160
161
  };
161
162
 
162
163
  render() {
163
- const { disabledLabels, placeholders = {}, value = {}, graphProps } = this.props;
164
+ const { disabledLabels, placeholders = {}, value = {}, graphProps, mathMlOptions = {} } = this.props;
164
165
 
165
166
  return (
166
167
  <React.Fragment>
@@ -172,6 +173,7 @@ export class Labels extends React.Component {
172
173
  placeholder={placeholders.left}
173
174
  graphProps={graphProps}
174
175
  onChange={(value) => this.onChangeLabel(value, 'left')}
176
+ mathMlOptions={mathMlOptions}
175
177
  />
176
178
  <Label
177
179
  key="top"
@@ -181,6 +183,7 @@ export class Labels extends React.Component {
181
183
  placeholder={placeholders.top}
182
184
  graphProps={graphProps}
183
185
  onChange={(value) => this.onChangeLabel(value, 'top')}
186
+ mathMlOptions={mathMlOptions}
184
187
  />
185
188
  <Label
186
189
  key="bottom"
@@ -190,6 +193,7 @@ export class Labels extends React.Component {
190
193
  placeholder={placeholders.bottom}
191
194
  graphProps={graphProps}
192
195
  onChange={(value) => this.onChangeLabel(value, 'bottom')}
196
+ mathMlOptions={mathMlOptions}
193
197
  />
194
198
  <Label
195
199
  key="right"
@@ -199,6 +203,7 @@ export class Labels extends React.Component {
199
203
  placeholder={placeholders.right}
200
204
  graphProps={graphProps}
201
205
  onChange={(value) => this.onChangeLabel(value, 'right')}
206
+ mathMlOptions={mathMlOptions}
202
207
  />
203
208
  </React.Fragment>
204
209
  );