@pie-lib/graphing 2.4.3-next.467 → 2.4.3-next.499

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/lib/axis/axes.js CHANGED
@@ -164,7 +164,7 @@ var RawXAxis = /*#__PURE__*/function (_React$Component) {
164
164
 
165
165
  var necessaryRows = (0, _utils.countWords)(domain.axisLabel);
166
166
  var longestWord = (0, _utils.findLongestWord)(domain.axisLabel);
167
- var necessaryWidth = (0, _utils.amountToIncreaseWidth)(longestWord);
167
+ var necessaryWidth = (0, _utils.amountToIncreaseWidth)(longestWord) + 2;
168
168
  return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_axis.Axis, {
169
169
  axisLineClassName: classes.line,
170
170
  scale: scale.x,
@@ -191,8 +191,8 @@ var RawXAxis = /*#__PURE__*/function (_React$Component) {
191
191
  className: classes.arrow,
192
192
  scale: scale
193
193
  }), domain.axisLabel && /*#__PURE__*/_react["default"].createElement("foreignObject", {
194
- x: size.width + 15,
195
- y: scale.y(0) - 10,
194
+ x: size.width + 17,
195
+ y: scale.y(0) - 9,
196
196
  width: necessaryWidth,
197
197
  height: 20 * necessaryRows
198
198
  }, /*#__PURE__*/_react["default"].createElement("div", {
@@ -285,7 +285,7 @@ var RawYAxis = /*#__PURE__*/function (_React$Component2) {
285
285
  scale: scale
286
286
  }), range.axisLabel && /*#__PURE__*/_react["default"].createElement("foreignObject", {
287
287
  x: scale.x(0) - necessaryWidth / 2,
288
- y: -30,
288
+ y: -33,
289
289
  width: necessaryWidth,
290
290
  height: "20"
291
291
  }, /*#__PURE__*/_react["default"].createElement(_renderUi.Readable, {
@@ -1 +1 @@
1
- {"version":3,"file":"axes.js","names":["AxisPropTypes","includeArrows","PropTypes","object","graphProps","AxisDefaultProps","left","right","up","down","axisStyles","theme","line","stroke","color","primary","strokeWidth","arrow","fill","tick","labelFontSize","fontSize","typography","axisLabelHolder","padding","margin","textAlign","tickLabelStyles","fontFamily","cursor","sharedValues","firstNegativeX","firstNegativeY","distanceFromOriginToFirstNegativeX","distanceFromOriginToFirstNegativeY","deltaAllowance","dy","result","push","firstNegativeValue","interval","find","element","RawXAxis","props","classes","columnTicksValues","skipValues","scale","domain","size","range","tickValues","labelStep","min","labelProps","label","y","textAnchor","dx","necessaryRows","countWords","axisLabel","longestWord","findLongestWord","necessaryWidth","amountToIncreaseWidth","x","value","max","width","__html","React","Component","types","GraphPropsType","isRequired","XAxis","withStyles","RawYAxis","rowTickValues","length","customTickFormat","indexOf","height","digits","toLocaleString","replace","YAxis","Axes","ticks","getTickValues","step","negative","Math","abs","xValues","yValues"],"sources":["../../src/axis/axes.jsx"],"sourcesContent":["import React from 'react';\nimport { Axis } from '@vx/axis';\nimport { types } from '@pie-lib/plot';\nimport PropTypes from 'prop-types';\nimport Arrow from './arrow';\nimport { withStyles } from '@material-ui/core';\nimport { countWords, findLongestWord, amountToIncreaseWidth, getTickValues } from '../utils';\nimport { color, Readable } from '@pie-lib/render-ui';\n\nexport const AxisPropTypes = {\n includeArrows: PropTypes.object,\n graphProps: PropTypes.object\n};\n\nconst AxisDefaultProps = {\n includeArrows: {\n left: true,\n right: true,\n up: true,\n down: true\n }\n};\n\nconst axisStyles = theme => ({\n line: {\n stroke: color.primary(),\n strokeWidth: 5\n },\n arrow: {\n fill: color.primary()\n },\n tick: {\n fill: color.primary(),\n '& > line': {\n stroke: color.primary()\n }\n },\n labelFontSize: {\n fontSize: theme.typography.fontSize\n },\n axisLabelHolder: {\n padding: 0,\n margin: 0,\n textAlign: 'center',\n '* > *': {\n margin: 0,\n padding: 0\n },\n fontSize: theme.typography.fontSize\n }\n});\n\nconst tickLabelStyles = {\n fontFamily: 'Roboto',\n fontSize: '14px',\n cursor: 'inherit'\n};\n\nexport const sharedValues = (\n firstNegativeX,\n firstNegativeY,\n distanceFromOriginToFirstNegativeX,\n distanceFromOriginToFirstNegativeY,\n deltaAllowance,\n dy\n) => {\n let result = [];\n\n if (\n firstNegativeX === firstNegativeY &&\n distanceFromOriginToFirstNegativeX - deltaAllowance < distanceFromOriginToFirstNegativeY &&\n distanceFromOriginToFirstNegativeY < distanceFromOriginToFirstNegativeX + deltaAllowance &&\n distanceFromOriginToFirstNegativeX - deltaAllowance < dy &&\n dy < distanceFromOriginToFirstNegativeX + deltaAllowance\n ) {\n result.push(firstNegativeX);\n }\n\n return result;\n};\n\nexport const firstNegativeValue = interval => (interval || []).find(element => element < 0);\n\nexport class RawXAxis extends React.Component {\n static propTypes = {\n ...AxisPropTypes,\n classes: PropTypes.object,\n graphProps: types.GraphPropsType.isRequired\n };\n static defaultProps = AxisDefaultProps;\n\n render() {\n const {\n includeArrows,\n classes,\n graphProps,\n columnTicksValues,\n skipValues,\n distanceFromOriginToFirstNegativeY,\n dy\n } = this.props;\n const { scale, domain, size, range } = graphProps || {};\n\n // Having 0 as a number in columnTicksValues does not make 0 to show up\n // so we use this trick, by defining it as a string:\n const tickValues =\n (domain.labelStep || range.labelStep) && domain.min <= 0\n ? ['0', ...columnTicksValues]\n : columnTicksValues;\n // However, the '0' has to be displayed only if other tick labels (y-axis or x-axis) are displayed\n\n const labelProps = label => {\n const y = skipValues && skipValues[0] === label ? distanceFromOriginToFirstNegativeY + 4 : dy;\n\n return {\n ...tickLabelStyles,\n textAnchor: 'middle',\n y: y,\n dx: label === '0' ? -10 : 0,\n dy: label === '0' ? -7 : 0\n };\n };\n\n const necessaryRows = countWords(domain.axisLabel);\n const longestWord = findLongestWord(domain.axisLabel);\n const necessaryWidth = amountToIncreaseWidth(longestWord);\n\n return (\n <React.Fragment>\n <Axis\n axisLineClassName={classes.line}\n scale={scale.x}\n top={scale.y(0)}\n left={0}\n label={domain.label}\n rangePadding={8}\n tickClassName={classes.tick}\n tickFormat={value => value}\n tickLabelProps={labelProps}\n tickValues={tickValues}\n />\n {includeArrows && includeArrows.left && (\n <Arrow direction=\"left\" x={domain.min} y={0} className={classes.arrow} scale={scale} />\n )}\n {includeArrows && includeArrows.right && (\n <Arrow direction=\"right\" x={domain.max} y={0} className={classes.arrow} scale={scale} />\n )}\n {domain.axisLabel && (\n <foreignObject\n x={size.width + 15}\n y={scale.y(0) - 10}\n width={necessaryWidth}\n height={20 * necessaryRows}\n >\n <div\n dangerouslySetInnerHTML={{ __html: domain.axisLabel }}\n className={classes.labelFontSize}\n />\n </foreignObject>\n )}\n </React.Fragment>\n );\n }\n}\n\nconst XAxis = withStyles(axisStyles)(RawXAxis);\n\nexport class RawYAxis extends React.Component {\n static propTypes = {\n ...AxisPropTypes,\n graphProps: types.GraphPropsType.isRequired\n };\n static defaultProps = AxisDefaultProps;\n\n render() {\n const { classes, includeArrows, graphProps, skipValues, rowTickValues } = this.props;\n const { scale, range, size } = graphProps || {};\n\n const necessaryWidth = range.axisLabel ? amountToIncreaseWidth(range.axisLabel.length) : 0;\n\n const customTickFormat = value => (skipValues && skipValues.indexOf(value) >= 0 ? '' : value);\n\n return (\n <React.Fragment>\n <Axis\n axisLineClassName={classes.line}\n orientation={'left'}\n scale={scale.y}\n top={0}\n height={size.height}\n left={scale.x(0)}\n label={range.label}\n labelProps={{ 'data-pie-readable': false }}\n rangePadding={8}\n tickLength={10}\n tickClassName={classes.tick}\n tickFormat={customTickFormat}\n tickLabelProps={value => {\n let digits = value.toLocaleString().replace(/[.-]/g, '').length || 1;\n\n return {\n ...tickLabelStyles,\n dy: 4,\n dx: -10 - digits * 9,\n 'data-pie-readable': false\n };\n }}\n hideZero={true}\n tickTextAnchor={'bottom'}\n tickValues={rowTickValues}\n />\n\n {includeArrows && includeArrows.down && (\n <Arrow direction=\"down\" x={0} y={range.min} className={classes.arrow} scale={scale} />\n )}\n {includeArrows && includeArrows.up && (\n <Arrow direction=\"up\" x={0} y={range.max} className={classes.arrow} scale={scale} />\n )}\n {range.axisLabel && (\n <foreignObject\n x={scale.x(0) - necessaryWidth / 2}\n y={-30}\n width={necessaryWidth}\n height=\"20\"\n >\n <Readable false>\n <div\n dangerouslySetInnerHTML={{ __html: range.axisLabel }}\n className={classes.axisLabelHolder}\n />\n </Readable>\n </foreignObject>\n )}\n </React.Fragment>\n );\n }\n}\n\nconst YAxis = withStyles(axisStyles)(RawYAxis);\n\nexport default class Axes extends React.Component {\n static propTypes = {\n ...AxisPropTypes,\n classes: PropTypes.object,\n graphProps: types.GraphPropsType.isRequired\n };\n static defaultProps = AxisDefaultProps;\n\n xValues = () => {\n const { graphProps } = this.props;\n const { scale, domain } = graphProps || {};\n\n if (!domain || !scale) {\n return;\n }\n\n const ticks = getTickValues({ ...domain, step: domain.labelStep });\n const negative = firstNegativeValue(ticks);\n\n return {\n columnTicksValues: ticks,\n firstNegativeX: negative,\n distanceFromOriginToFirstNegativeX: Math.abs(scale.y(0) - scale.y(negative))\n };\n };\n\n yValues = () => {\n const { graphProps } = this.props;\n const { scale, range } = graphProps || {};\n\n if (!range || !scale) {\n return;\n }\n\n const ticks = getTickValues({ ...range, step: range.labelStep });\n const negative = firstNegativeValue(ticks);\n\n return {\n rowTickValues: ticks,\n firstNegativeY: negative,\n distanceFromOriginToFirstNegativeY: Math.abs(scale.x(0) - scale.x(negative))\n };\n };\n\n render() {\n const { graphProps } = this.props;\n const { domain, range } = graphProps || {};\n const {\n columnTicksValues,\n firstNegativeX,\n distanceFromOriginToFirstNegativeX\n } = this.xValues();\n const { rowTickValues, firstNegativeY, distanceFromOriginToFirstNegativeY } = this.yValues();\n const deltaAllowance = 6;\n const dy = 25;\n\n const skipValues = sharedValues(\n firstNegativeX,\n firstNegativeY,\n distanceFromOriginToFirstNegativeX,\n distanceFromOriginToFirstNegativeY,\n deltaAllowance,\n dy\n );\n\n // each axis has to be displayed only if the domain & range include it\n return (\n <React.Fragment>\n {range.min <= 0 ? (\n <XAxis\n {...this.props}\n skipValues={skipValues}\n columnTicksValues={columnTicksValues}\n distanceFromOriginToFirstNegativeY={distanceFromOriginToFirstNegativeY}\n dy={dy}\n />\n ) : null}\n {domain.min <= 0 ? (\n <YAxis\n {...this.props}\n skipValues={skipValues}\n rowTickValues={rowTickValues}\n distanceFromOriginToFirstNegativeX={distanceFromOriginToFirstNegativeX}\n />\n ) : null}\n </React.Fragment>\n );\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"axes.js","names":["AxisPropTypes","includeArrows","PropTypes","object","graphProps","AxisDefaultProps","left","right","up","down","axisStyles","theme","line","stroke","color","primary","strokeWidth","arrow","fill","tick","labelFontSize","fontSize","typography","axisLabelHolder","padding","margin","textAlign","tickLabelStyles","fontFamily","cursor","sharedValues","firstNegativeX","firstNegativeY","distanceFromOriginToFirstNegativeX","distanceFromOriginToFirstNegativeY","deltaAllowance","dy","result","push","firstNegativeValue","interval","find","element","RawXAxis","props","classes","columnTicksValues","skipValues","scale","domain","size","range","tickValues","labelStep","min","labelProps","label","y","textAnchor","dx","necessaryRows","countWords","axisLabel","longestWord","findLongestWord","necessaryWidth","amountToIncreaseWidth","x","value","max","width","__html","React","Component","types","GraphPropsType","isRequired","XAxis","withStyles","RawYAxis","rowTickValues","length","customTickFormat","indexOf","height","digits","toLocaleString","replace","YAxis","Axes","ticks","getTickValues","step","negative","Math","abs","xValues","yValues"],"sources":["../../src/axis/axes.jsx"],"sourcesContent":["import React from 'react';\nimport { Axis } from '@vx/axis';\nimport { types } from '@pie-lib/plot';\nimport PropTypes from 'prop-types';\nimport Arrow from './arrow';\nimport { withStyles } from '@material-ui/core';\nimport { countWords, findLongestWord, amountToIncreaseWidth, getTickValues } from '../utils';\nimport { color, Readable } from '@pie-lib/render-ui';\n\nexport const AxisPropTypes = {\n includeArrows: PropTypes.object,\n graphProps: PropTypes.object\n};\n\nconst AxisDefaultProps = {\n includeArrows: {\n left: true,\n right: true,\n up: true,\n down: true\n }\n};\n\nconst axisStyles = theme => ({\n line: {\n stroke: color.primary(),\n strokeWidth: 5\n },\n arrow: {\n fill: color.primary()\n },\n tick: {\n fill: color.primary(),\n '& > line': {\n stroke: color.primary()\n }\n },\n labelFontSize: {\n fontSize: theme.typography.fontSize\n },\n axisLabelHolder: {\n padding: 0,\n margin: 0,\n textAlign: 'center',\n '* > *': {\n margin: 0,\n padding: 0\n },\n fontSize: theme.typography.fontSize\n }\n});\n\nconst tickLabelStyles = {\n fontFamily: 'Roboto',\n fontSize: '14px',\n cursor: 'inherit'\n};\n\nexport const sharedValues = (\n firstNegativeX,\n firstNegativeY,\n distanceFromOriginToFirstNegativeX,\n distanceFromOriginToFirstNegativeY,\n deltaAllowance,\n dy\n) => {\n let result = [];\n\n if (\n firstNegativeX === firstNegativeY &&\n distanceFromOriginToFirstNegativeX - deltaAllowance < distanceFromOriginToFirstNegativeY &&\n distanceFromOriginToFirstNegativeY < distanceFromOriginToFirstNegativeX + deltaAllowance &&\n distanceFromOriginToFirstNegativeX - deltaAllowance < dy &&\n dy < distanceFromOriginToFirstNegativeX + deltaAllowance\n ) {\n result.push(firstNegativeX);\n }\n\n return result;\n};\n\nexport const firstNegativeValue = interval => (interval || []).find(element => element < 0);\n\nexport class RawXAxis extends React.Component {\n static propTypes = {\n ...AxisPropTypes,\n classes: PropTypes.object,\n graphProps: types.GraphPropsType.isRequired\n };\n static defaultProps = AxisDefaultProps;\n\n render() {\n const {\n includeArrows,\n classes,\n graphProps,\n columnTicksValues,\n skipValues,\n distanceFromOriginToFirstNegativeY,\n dy\n } = this.props;\n const { scale, domain, size, range } = graphProps || {};\n\n // Having 0 as a number in columnTicksValues does not make 0 to show up\n // so we use this trick, by defining it as a string:\n const tickValues =\n (domain.labelStep || range.labelStep) && domain.min <= 0\n ? ['0', ...columnTicksValues]\n : columnTicksValues;\n // However, the '0' has to be displayed only if other tick labels (y-axis or x-axis) are displayed\n\n const labelProps = label => {\n const y = skipValues && skipValues[0] === label ? distanceFromOriginToFirstNegativeY + 4 : dy;\n\n return {\n ...tickLabelStyles,\n textAnchor: 'middle',\n y: y,\n dx: label === '0' ? -10 : 0,\n dy: label === '0' ? -7 : 0\n };\n };\n\n const necessaryRows = countWords(domain.axisLabel);\n const longestWord = findLongestWord(domain.axisLabel);\n const necessaryWidth = amountToIncreaseWidth(longestWord) + 2;\n\n return (\n <React.Fragment>\n <Axis\n axisLineClassName={classes.line}\n scale={scale.x}\n top={scale.y(0)}\n left={0}\n label={domain.label}\n rangePadding={8}\n tickClassName={classes.tick}\n tickFormat={value => value}\n tickLabelProps={labelProps}\n tickValues={tickValues}\n />\n {includeArrows && includeArrows.left && (\n <Arrow direction=\"left\" x={domain.min} y={0} className={classes.arrow} scale={scale} />\n )}\n {includeArrows && includeArrows.right && (\n <Arrow direction=\"right\" x={domain.max} y={0} className={classes.arrow} scale={scale} />\n )}\n {domain.axisLabel && (\n <foreignObject\n x={size.width + 17}\n y={scale.y(0) - 9}\n width={necessaryWidth}\n height={20 * necessaryRows}\n >\n <div\n dangerouslySetInnerHTML={{ __html: domain.axisLabel }}\n className={classes.labelFontSize}\n />\n </foreignObject>\n )}\n </React.Fragment>\n );\n }\n}\n\nconst XAxis = withStyles(axisStyles)(RawXAxis);\n\nexport class RawYAxis extends React.Component {\n static propTypes = {\n ...AxisPropTypes,\n graphProps: types.GraphPropsType.isRequired\n };\n static defaultProps = AxisDefaultProps;\n\n render() {\n const { classes, includeArrows, graphProps, skipValues, rowTickValues } = this.props;\n const { scale, range, size } = graphProps || {};\n\n const necessaryWidth = range.axisLabel ? amountToIncreaseWidth(range.axisLabel.length) : 0;\n\n const customTickFormat = value => (skipValues && skipValues.indexOf(value) >= 0 ? '' : value);\n\n return (\n <React.Fragment>\n <Axis\n axisLineClassName={classes.line}\n orientation={'left'}\n scale={scale.y}\n top={0}\n height={size.height}\n left={scale.x(0)}\n label={range.label}\n labelProps={{ 'data-pie-readable': false }}\n rangePadding={8}\n tickLength={10}\n tickClassName={classes.tick}\n tickFormat={customTickFormat}\n tickLabelProps={value => {\n let digits = value.toLocaleString().replace(/[.-]/g, '').length || 1;\n\n return {\n ...tickLabelStyles,\n dy: 4,\n dx: -10 - digits * 9,\n 'data-pie-readable': false\n };\n }}\n hideZero={true}\n tickTextAnchor={'bottom'}\n tickValues={rowTickValues}\n />\n\n {includeArrows && includeArrows.down && (\n <Arrow direction=\"down\" x={0} y={range.min} className={classes.arrow} scale={scale} />\n )}\n {includeArrows && includeArrows.up && (\n <Arrow direction=\"up\" x={0} y={range.max} className={classes.arrow} scale={scale} />\n )}\n {range.axisLabel && (\n <foreignObject\n x={scale.x(0) - necessaryWidth / 2}\n y={-33}\n width={necessaryWidth}\n height=\"20\"\n >\n <Readable false>\n <div\n dangerouslySetInnerHTML={{ __html: range.axisLabel }}\n className={classes.axisLabelHolder}\n />\n </Readable>\n </foreignObject>\n )}\n </React.Fragment>\n );\n }\n}\n\nconst YAxis = withStyles(axisStyles)(RawYAxis);\n\nexport default class Axes extends React.Component {\n static propTypes = {\n ...AxisPropTypes,\n classes: PropTypes.object,\n graphProps: types.GraphPropsType.isRequired\n };\n static defaultProps = AxisDefaultProps;\n\n xValues = () => {\n const { graphProps } = this.props;\n const { scale, domain } = graphProps || {};\n\n if (!domain || !scale) {\n return;\n }\n\n const ticks = getTickValues({ ...domain, step: domain.labelStep });\n const negative = firstNegativeValue(ticks);\n\n return {\n columnTicksValues: ticks,\n firstNegativeX: negative,\n distanceFromOriginToFirstNegativeX: Math.abs(scale.y(0) - scale.y(negative))\n };\n };\n\n yValues = () => {\n const { graphProps } = this.props;\n const { scale, range } = graphProps || {};\n\n if (!range || !scale) {\n return;\n }\n\n const ticks = getTickValues({ ...range, step: range.labelStep });\n const negative = firstNegativeValue(ticks);\n\n return {\n rowTickValues: ticks,\n firstNegativeY: negative,\n distanceFromOriginToFirstNegativeY: Math.abs(scale.x(0) - scale.x(negative))\n };\n };\n\n render() {\n const { graphProps } = this.props;\n const { domain, range } = graphProps || {};\n const {\n columnTicksValues,\n firstNegativeX,\n distanceFromOriginToFirstNegativeX\n } = this.xValues();\n const { rowTickValues, firstNegativeY, distanceFromOriginToFirstNegativeY } = this.yValues();\n const deltaAllowance = 6;\n const dy = 25;\n\n const skipValues = sharedValues(\n firstNegativeX,\n firstNegativeY,\n distanceFromOriginToFirstNegativeX,\n distanceFromOriginToFirstNegativeY,\n deltaAllowance,\n dy\n );\n\n // each axis has to be displayed only if the domain & range include it\n return (\n <React.Fragment>\n {range.min <= 0 ? (\n <XAxis\n {...this.props}\n skipValues={skipValues}\n columnTicksValues={columnTicksValues}\n distanceFromOriginToFirstNegativeY={distanceFromOriginToFirstNegativeY}\n dy={dy}\n />\n ) : null}\n {domain.min <= 0 ? (\n <YAxis\n {...this.props}\n skipValues={skipValues}\n rowTickValues={rowTickValues}\n distanceFromOriginToFirstNegativeX={distanceFromOriginToFirstNegativeX}\n />\n ) : null}\n </React.Fragment>\n );\n }\n}\n"],"mappings":"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"}
@@ -207,6 +207,7 @@ var GraphWithControls = /*#__PURE__*/function (_React$Component) {
207
207
  domain = _this$props.domain,
208
208
  draggableTools = _this$props.draggableTools,
209
209
  labels = _this$props.labels,
210
+ labelsPlaceholders = _this$props.labelsPlaceholders,
210
211
  onChangeLabels = _this$props.onChangeLabels,
211
212
  onChangeMarks = _this$props.onChangeMarks,
212
213
  onChangeTitle = _this$props.onChangeTitle,
@@ -217,8 +218,10 @@ var GraphWithControls = /*#__PURE__*/function (_React$Component) {
217
218
  range = _this$props.range,
218
219
  size = _this$props.size,
219
220
  showLabels = _this$props.showLabels,
221
+ showPixelGuides = _this$props.showPixelGuides,
220
222
  showTitle = _this$props.showTitle,
221
- title = _this$props.title;
223
+ title = _this$props.title,
224
+ titlePlaceholder = _this$props.titlePlaceholder;
222
225
  var _this$props2 = this.props,
223
226
  backgroundMarks = _this$props2.backgroundMarks,
224
227
  marks = _this$props2.marks,
@@ -275,6 +278,7 @@ var GraphWithControls = /*#__PURE__*/function (_React$Component) {
275
278
  domain: domain,
276
279
  labels: labels,
277
280
  labelModeEnabled: labelModeEnabled,
281
+ labelsPlaceholders: labelsPlaceholders,
278
282
  marks: marks,
279
283
  onChangeMarks: !disabled ? onChangeMarks : undefined,
280
284
  onChangeLabels: onChangeLabels,
@@ -282,8 +286,10 @@ var GraphWithControls = /*#__PURE__*/function (_React$Component) {
282
286
  range: range,
283
287
  size: size,
284
288
  showLabels: showLabels,
289
+ showPixelGuides: showPixelGuides,
285
290
  showTitle: showTitle,
286
291
  title: title,
292
+ titlePlaceholder: titlePlaceholder,
287
293
  tools: tools
288
294
  }));
289
295
  }
@@ -311,9 +317,12 @@ exports.GraphWithControls = GraphWithControls;
311
317
 
312
318
  var styles = function styles(theme) {
313
319
  return {
314
- graphWithControls: {},
320
+ graphWithControls: {
321
+ display: 'flex',
322
+ flexDirection: 'column',
323
+ width: 'min-content'
324
+ },
315
325
  controls: {
316
- width: 'inherit',
317
326
  display: 'flex',
318
327
  justifyContent: 'space-between',
319
328
  padding: theme.spacing.unit,
@@ -328,7 +337,8 @@ var styles = function styles(theme) {
328
337
  }
329
338
  },
330
339
  expansionPanel: {
331
- backgroundColor: _renderUi.color.primaryLight()
340
+ backgroundColor: _renderUi.color.primaryLight(),
341
+ width: '100%'
332
342
  },
333
343
  summaryRoot: {
334
344
  padding: "0 ".concat(theme.spacing.unit, "px"),
@@ -339,7 +349,9 @@ var styles = function styles(theme) {
339
349
  },
340
350
  details: {
341
351
  padding: 0,
342
- marginTop: theme.spacing.unit
352
+ marginTop: theme.spacing.unit,
353
+ display: 'flex',
354
+ justifyContent: 'space-between'
343
355
  }
344
356
  };
345
357
  };
@@ -1 +1 @@
1
- {"version":3,"file":"graph-with-controls.js","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","onChangeLabels","onChangeMarks","onChangeTitle","onChangeTools","onUndo","onRedo","onReset","range","size","showLabels","showTitle","uniq","tT","isString","graphActions","changeCurrentTool","toggleLabelMode","classNames","graphWithControls","controls","r","labelNode","undefined","React","Component","graphPropTypes","func","arrayOf","styles","theme","width","display","justifyContent","padding","spacing","unit","color","text","backgroundColor","primaryLight","borderTop","primaryDark","borderBottom","borderLeft","borderRight","fontSize","typography","minHeight","margin","marginTop","withStyles"],"sources":["../src/graph-with-controls.jsx"],"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 {\n ExpansionPanel,\n ExpansionPanelDetails,\n ExpansionPanelSummary,\n Typography\n} 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\n elevation={0}\n className={classes.expansionPanel}\n disabledGutters={true}\n square={true}\n >\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) =>\n 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 onChangeLabels,\n onChangeMarks,\n onChangeTitle,\n onChangeTools,\n onUndo,\n onRedo,\n onReset,\n range,\n size,\n showLabels,\n showTitle,\n title\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 marks={marks}\n onChangeMarks={!disabled ? onChangeMarks : undefined}\n onChangeLabels={onChangeLabels}\n onChangeTitle={onChangeTitle}\n range={range}\n size={size}\n showLabels={showLabels}\n showTitle={showTitle}\n title={title}\n tools={tools}\n />\n </div>\n );\n }\n}\n\nconst styles = theme => ({\n graphWithControls: {},\n controls: {\n width: 'inherit',\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 },\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 }\n});\n\nexport default withStyles(styles)(GraphWithControls);\n"],"mappings":"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"}
1
+ {"version":3,"file":"graph-with-controls.js","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","uniq","tT","isString","graphActions","changeCurrentTool","toggleLabelMode","classNames","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","withStyles"],"sources":["../src/graph-with-controls.jsx"],"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 {\n ExpansionPanel,\n ExpansionPanelDetails,\n ExpansionPanelSummary,\n Typography\n} 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\n elevation={0}\n className={classes.expansionPanel}\n disabledGutters={true}\n square={true}\n >\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) =>\n 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"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AAMA;;;;;;;;;;;;;;AAEO,IAAMA,sBAAsB,GAAG,SAAzBA,sBAAyB,CAAAC,YAAY;EAAA,OAChDC,eAAA,CAASC,GAAT,CAAa,UAAAC,EAAE;IAAA,uCAAUA,EAAV;MAAcC,OAAO,EAAE,CAAC,CAACJ,YAAY,CAACK,IAAb,CAAkB,UAAAC,CAAC;QAAA,OAAIA,CAAC,KAAKH,EAAE,CAACI,IAAb;MAAA,CAAnB;IAAzB;EAAA,CAAf,KAAqF,EADrC;AAAA,CAA3C;;;;AAGA,IAAMC,eAAe,GAAG,SAAlBA,eAAkB,CAACC,KAAD,EAAQC,WAAR;EAAA,OAC7BA,WAAW,IAAID,KAAf,IAAwB,CAACA,KAAK,CAACJ,IAAN,CAAW,UAAAM,IAAI;IAAA,OAAIA,IAAI,CAACJ,IAAL,KAAcG,WAAW,CAACH,IAA9B;EAAA,CAAf,KAAsD,EAAvD,EAA2DH,OADtD;AAAA,CAAxB;;;;AAGA,IAAMQ,gBAAgB,GAAG,SAAnBA,gBAAmB,CAAAH,KAAK;EAAA,OAAIA,KAAK,CAACJ,IAAN,CAAW,UAAAM,IAAI;IAAA,OAAIA,IAAI,CAACP,OAAT;EAAA,CAAf,CAAJ;AAAA,CAA9B;;;;AAEA,IAAMS,sBAAsB,GAAG,SAAzBA,sBAAyB,CAAAC,eAAe;EAAA,OACnDA,eAAe,CAACC,MAAhB,CAAuB,UAAAC,EAAE;IAAA,OAAI,CAAC,CAACC,eAAA,CAASZ,IAAT,CAAc,UAAAM,IAAI;MAAA,OAAIA,IAAI,KAAKK,EAAE,CAACT,IAAhB;IAAA,CAAlB,CAAN;EAAA,CAAzB,CADmD;AAAA,CAA9C;;;;AAGA,IAAMW,wBAAwB,GAAG,SAA3BA,wBAA2B,CAAClB,YAAD,EAAemB,KAAf;EAAA,OACtCA,KAAK,CAACJ,MAAN,CAAa,UAAAC,EAAE;IAAA,OAAI,CAAC,CAAChB,YAAY,CAACK,IAAb,CAAkB,UAAAM,IAAI;MAAA,OAAIA,IAAI,KAAKK,EAAE,CAACT,IAAhB;IAAA,CAAtB,CAAN;EAAA,CAAf,CADsC;AAAA,CAAjC;;;;AAGP,IAAMa,qBAAqB,GAAG,SAAxBA,qBAAwB,CAAAC,QAAQ;EAAA,OAAIpB,eAAA,CAASI,IAAT,CAAc,UAAAM,IAAI;IAAA,OAAIA,IAAI,CAACJ,IAAL,KAAcc,QAAlB;EAAA,CAAlB,KAAiD,IAArD;AAAA,CAAtC;;AAEA,IAAMC,WAAW,GAAG,SAAdA,WAAc;EAAA,IAAGC,OAAH,QAAGA,OAAH;EAAA,IAAYC,QAAZ,QAAYA,QAAZ;EAAA,IAAsBC,KAAtB,QAAsBA,KAAtB;EAAA,oBAClB,gCAAC,oBAAD;IACE,SAAS,EAAE,CADb;IAEE,SAAS,EAAEF,OAAO,CAACG,cAFrB;IAGE,eAAe,EAAE,IAHnB;IAIE,MAAM,EAAE;EAJV,gBAME,gCAAC,2BAAD;IACE,OAAO,EAAE;MACPC,IAAI,EAAEJ,OAAO,CAACK,WADP;MAEPC,OAAO,EAAEN,OAAO,CAACO;IAFV,CADX;IAKE,UAAU,eAAE,gCAAC,sBAAD;EALd,gBAOE,gCAAC,gBAAD;IAAY,OAAO,EAAC;EAApB,GAAkCL,KAAlC,CAPF,CANF,eAeE,gCAAC,2BAAD;IAAuB,SAAS,EAAEF,OAAO,CAACQ;EAA1C,GAAoDP,QAApD,CAfF,CADkB;AAAA,CAApB;;AAoBAF,WAAW,CAACU,SAAZ,GAAwB;EACtBT,OAAO,EAAEU,qBAAA,CAAUC,MADG;EAEtBV,QAAQ,EAAES,qBAAA,CAAUE,KAFE;EAGtBV,KAAK,EAAEQ,qBAAA,CAAUG;AAHK,CAAxB;;IAMaC,iB;;;;;EAmBX,2BAAYC,KAAZ,EAAmB;IAAA;;IAAA;IACjB,0BAAMA,KAAN;IADiB,sGAmBC,UAAC3B,IAAD,EAAOF,KAAP;MAAA,OAClB,MAAK8B,QAAL,CAAc;QAAE7B,WAAW,EAAED,KAAK,CAACJ,IAAN,CAAW,UAAAC,CAAC;UAAA,OAAIA,CAAC,CAACC,IAAF,KAAWI,IAAf;QAAA,CAAZ;MAAf,CAAd,CADkB;IAAA,CAnBD;IAAA,oGAsBD;MAAA,OAAM,MAAK4B,QAAL,CAAc,UAAAC,KAAK;QAAA,OAAK;UAAEC,gBAAgB,EAAE,CAACD,KAAK,CAACC;QAA3B,CAAL;MAAA,CAAnB,CAAN;IAAA,CAtBC;IAGjB,MAAKD,KAAL,GAAa;MACX9B,WAAW,EAAEU,qBAAqB,CAACkB,KAAK,CAACI,WAAP,CADvB;MAEXD,gBAAgB,EAAE;IAFP,CAAb;IAHiB;EAOlB;;;;WAED,4BAAmBE,SAAnB,EAA8B;MAC5B,IAAQD,WAAR,GAAwB,KAAKJ,KAA7B,CAAQI,WAAR;;MAEA,IAAIC,SAAS,CAACD,WAAV,KAA0BA,WAA9B,EAA2C;QACzC,IAAMhC,WAAW,GAAGU,qBAAqB,CAACsB,WAAD,CAAzC;QAEA,KAAKH,QAAL,CAAc;UAAE7B,WAAW,EAAXA;QAAF,CAAd;MACD;IACF;;;WAOD,kBAAS;MAAA;;MACP,kBAAwC,KAAK8B,KAA7C;MAAA,IAAM9B,WAAN,eAAMA,WAAN;MAAA,IAAmB+B,gBAAnB,eAAmBA,gBAAnB;MACA,kBA4BI,KAAKH,KA5BT;MAAA,IACEM,YADF,eACEA,YADF;MAAA,IAEErB,OAFF,eAEEA,OAFF;MAAA,IAGEsB,SAHF,eAGEA,SAHF;MAAA,IAIEC,kBAJF,eAIEA,kBAJF;MAAA,IAKEC,kBALF,eAKEA,kBALF;MAAA,IAMEC,uBANF,eAMEA,uBANF;MAAA,IAOEC,QAPF,eAOEA,QAPF;MAAA,IAQEC,cARF,eAQEA,cARF;MAAA,IASEC,aATF,eASEA,aATF;MAAA,IAUEC,MAVF,eAUEA,MAVF;MAAA,IAWEC,cAXF,eAWEA,cAXF;MAAA,IAYEC,MAZF,eAYEA,MAZF;MAAA,IAaEC,kBAbF,eAaEA,kBAbF;MAAA,IAcEC,cAdF,eAcEA,cAdF;MAAA,IAeEC,aAfF,eAeEA,aAfF;MAAA,IAgBEC,aAhBF,eAgBEA,aAhBF;MAAA,IAiBEC,aAjBF,eAiBEA,aAjBF;MAAA,IAkBEC,MAlBF,eAkBEA,MAlBF;MAAA,IAmBEC,MAnBF,eAmBEA,MAnBF;MAAA,IAoBEC,OApBF,eAoBEA,OApBF;MAAA,IAqBEC,KArBF,eAqBEA,KArBF;MAAA,IAsBEC,IAtBF,eAsBEA,IAtBF;MAAA,IAuBEC,UAvBF,eAuBEA,UAvBF;MAAA,IAwBEC,eAxBF,eAwBEA,eAxBF;MAAA,IAyBEC,SAzBF,eAyBEA,SAzBF;MAAA,IA0BE1C,KA1BF,eA0BEA,KA1BF;MAAA,IA2BE2C,gBA3BF,eA2BEA,gBA3BF;MA6BA,mBAA+C,KAAK9B,KAApD;MAAA,IAAMxB,eAAN,gBAAMA,eAAN;MAAA,IAAuBK,KAAvB,gBAAuBA,KAAvB;MAAA,IAA8BnB,YAA9B,gBAA8BA,YAA9B,CA/BO,CAiCP;;MACAA,YAAY,GAAG,IAAAqE,gBAAA,EAAKrE,YAAY,IAAI,EAArB,EAAyBe,MAAzB,CAAgC,UAAAuD,EAAE;QAAA,OAAI,CAAC,CAAC,IAAAC,oBAAA,EAASD,EAAT,CAAN;MAAA,CAAlC,KAAyD,EAAxE,CAlCO,CAoCP;;MACAxD,eAAe,GAAGD,sBAAsB,CAACC,eAAe,IAAI,EAApB,CAAxC,CArCO,CAuCP;;MACAK,KAAK,GAAGD,wBAAwB,CAAClB,YAAD,EAAemB,KAAK,IAAI,EAAxB,CAAhC;MAEA,IAAMV,KAAK,GAAGV,sBAAsB,CAACC,YAAD,CAApC,CA1CO,CA4CP;;MACA,IAAI,CAACU,WAAD,IAAgB,CAACF,eAAe,CAACC,KAAD,EAAQC,WAAR,CAApC,EAA0D;QACxDA,WAAW,GAAGE,gBAAgB,CAACH,KAAD,CAA9B;MACD;;MAED,IAAM+D,YAAY,gBAChB,gCAAC,iBAAD,CAAO,QAAP,qBACE,gCAAC,oBAAD;QACE,eAAe,EAAE9D,WAAW,IAAIA,WAAW,CAACH,IAD9C;QAEE,QAAQ,EAAE,CAAC,CAAC0C,QAFd;QAGE,cAAc,EAAEI,cAHlB;QAIE,gBAAgB,EAAEZ,gBAJpB;QAKE,QAAQ,EAAE,kBAAA9B,IAAI;UAAA,OAAI,MAAI,CAAC8D,iBAAL,CAAuB9D,IAAvB,EAA6BF,KAA7B,CAAJ;QAAA,CALhB;QAME,iBAAiB,EAAE,KAAKiE,eAN1B;QAOE,YAAY,EAAE1E,YAPhB;QAQE,aAAa,EAAE2D;MARjB,EADF,EAYG,CAACV,QAAD,iBAAa,gCAAC,oBAAD;QAAU,MAAM,EAAEW,MAAlB;QAA0B,MAAM,EAAEC,MAAlC;QAA0C,OAAO,EAAEC;MAAnD,EAZhB,CADF;;MAiBA,oBACE;QAAK,SAAS,EAAE,IAAAa,sBAAA,EAAWpD,OAAO,CAACqD,iBAAnB,EAAsC/B,SAAtC;MAAhB,gBACE;QAAK,SAAS,EAAEtB,OAAO,CAACsD;MAAxB,GACG9B,kBAAkB,gBACjB,gCAAC,WAAD;QAAa,OAAO,EAAExB,OAAtB;QAA+B,KAAK,EAAEyB;MAAtC,GACGwB,YADH,CADiB,GAKjBA,YANJ,CADF,eAWE;QAAK,GAAG,EAAE,aAAAM,CAAC;UAAA,OAAK,MAAI,CAACC,SAAL,GAAiBD,CAAtB;QAAA;MAAX,EAXF,eAaE,gCAAC,iBAAD;QACE,YAAY,EAAElC,YADhB;QAEE,eAAe,EAAE9B,eAFnB;QAGE,kBAAkB,EAAEgC,kBAHtB;QAIE,WAAW,EAAEpC,WAJf;QAKE,cAAc,EAAEwC,cALlB;QAME,aAAa,EAAEC,aANjB;QAOE,MAAM,EAAEC,MAPV;QAQE,MAAM,EAAEE,MARV;QASE,gBAAgB,EAAEb,gBATpB;QAUE,kBAAkB,EAAEc,kBAVtB;QAWE,KAAK,EAAEpC,KAXT;QAYE,aAAa,EAAE,CAAC8B,QAAD,GAAYQ,aAAZ,GAA4BuB,SAZ7C;QAaE,cAAc,EAAExB,cAblB;QAcE,aAAa,EAAEE,aAdjB;QAeE,KAAK,EAAEK,KAfT;QAgBE,IAAI,EAAEC,IAhBR;QAiBE,UAAU,EAAEC,UAjBd;QAkBE,eAAe,EAAEC,eAlBnB;QAmBE,SAAS,EAAEC,SAnBb;QAoBE,KAAK,EAAE1C,KApBT;QAqBE,gBAAgB,EAAE2C,gBArBpB;QAsBE,KAAK,EAAE3D;MAtBT,EAbF,CADF;IAwCD;;;EArJoCwE,iBAAA,CAAMC,S;;;iCAAhC7C,iB,+CAEN8C,qB;EACHvB,MAAM,EAAE3B,qBAAA,CAAUmD,I;EAClBvB,MAAM,EAAE5B,qBAAA,CAAUmD,I;EAClBtB,OAAO,EAAE7B,qBAAA,CAAUmD,I;EACnBpF,YAAY,EAAEiC,qBAAA,CAAUoD,OAAV,CAAkBpD,qBAAA,CAAUG,MAA5B,C,CAAoC;;;iCANzCC,iB,kBASW;EACpBU,kBAAkB,EAAE,KADA;EAEpBC,uBAAuB,EAAE,EAFL;EAGpBE,cAAc,EAAE,KAHI;EAIpBC,aAAa,EAAE,KAJK;EAKpBc,UAAU,EAAE,IALQ;EAMpBE,SAAS,EAAE,IANS;EAOpBnE,YAAY,EAAE;AAPM,C;;AA+IxB,IAAMsF,MAAM,GAAG,SAATA,MAAS,CAAAC,KAAK;EAAA,OAAK;IACvBX,iBAAiB,EAAE;MACjBY,OAAO,EAAE,MADQ;MAEjBC,aAAa,EAAE,QAFE;MAGjBC,KAAK,EAAE;IAHU,CADI;IAMvBb,QAAQ,EAAE;MACRW,OAAO,EAAE,MADD;MAERG,cAAc,EAAE,eAFR;MAGRC,OAAO,EAAEL,KAAK,CAACM,OAAN,CAAcC,IAHf;MAIRC,KAAK,EAAEA,eAAA,CAAMC,IAAN,EAJC;MAKRC,eAAe,EAAEF,eAAA,CAAMG,YAAN,EALT;MAMRC,SAAS,sBAAeJ,eAAA,CAAMK,WAAN,EAAf,CAND;MAORC,YAAY,sBAAeN,eAAA,CAAMK,WAAN,EAAf,CAPJ;MAQRE,UAAU,sBAAeP,eAAA,CAAMK,WAAN,EAAf,CARF;MASRG,WAAW,sBAAeR,eAAA,CAAMK,WAAN,EAAf,CATH;MAUR,YAAY;QACVI,QAAQ,EAAEjB,KAAK,CAACkB,UAAN,CAAiBD;MADjB;IAVJ,CANa;IAoBvB9E,cAAc,EAAE;MACduE,eAAe,EAAEF,eAAA,CAAMG,YAAN,EADH;MAEdR,KAAK,EAAE;IAFO,CApBO;IAwBvB9D,WAAW,EAAE;MACXgE,OAAO,cAAOL,KAAK,CAACM,OAAN,CAAcC,IAArB,OADI;MAEXY,SAAS,EAAE;IAFA,CAxBU;IA4BvB5E,cAAc,EAAE;MACd6E,MAAM,EAAE;IADM,CA5BO;IA+BvB5E,OAAO,EAAE;MACP6D,OAAO,EAAE,CADF;MAEPgB,SAAS,EAAErB,KAAK,CAACM,OAAN,CAAcC,IAFlB;MAGPN,OAAO,EAAE,MAHF;MAIPG,cAAc,EAAE;IAJT;EA/Bc,CAAL;AAAA,CAApB;;eAuCe,IAAAkB,kBAAA,EAAWvB,MAAX,EAAmBjD,iBAAnB,C"}
package/lib/graph.js CHANGED
@@ -84,6 +84,7 @@ var graphPropTypes = {
84
84
  height: _propTypes["default"].number.isRequired
85
85
  }),
86
86
  showLabels: _propTypes["default"].bool,
87
+ showPixelGuides: _propTypes["default"].bool,
87
88
  showTitle: _propTypes["default"].bool,
88
89
  title: _propTypes["default"].string,
89
90
  tools: _propTypes["default"].array
@@ -251,8 +252,11 @@ var Graph = /*#__PURE__*/function (_React$Component) {
251
252
  title = _this$props5.title,
252
253
  labels = _this$props5.labels,
253
254
  labelModeEnabled = _this$props5.labelModeEnabled,
255
+ labelsPlaceholders = _this$props5.labelsPlaceholders,
254
256
  showLabels = _this$props5.showLabels,
257
+ showPixelGuides = _this$props5.showPixelGuides,
255
258
  showTitle = _this$props5.showTitle,
259
+ titlePlaceholder = _this$props5.titlePlaceholder,
256
260
  onChangeLabels = _this$props5.onChangeLabels,
257
261
  onChangeTitle = _this$props5.onChangeTitle;
258
262
  var marks = this.props.marks;
@@ -273,8 +277,11 @@ var Graph = /*#__PURE__*/function (_React$Component) {
273
277
  return _this2.rootNode = r;
274
278
  },
275
279
  disabledTitle: disabledTitle,
280
+ showPixelGuides: showPixelGuides,
281
+ showLabels: showLabels,
276
282
  showTitle: showTitle,
277
283
  title: title,
284
+ titlePlaceholder: titlePlaceholder,
278
285
  onChangeTitle: onChangeTitle
279
286
  }, common), /*#__PURE__*/_react["default"].createElement("g", {
280
287
  transform: "translate(".concat(domain.padding, ", ").concat(range.padding, ")")
@@ -327,6 +334,7 @@ var Graph = /*#__PURE__*/function (_React$Component) {
327
334
  }
328
335
  })))), showLabels && /*#__PURE__*/_react["default"].createElement(_labels["default"], (0, _extends2["default"])({
329
336
  disabledLabels: disabledLabels,
337
+ placeholders: labelsPlaceholders,
330
338
  value: labels,
331
339
  onChange: onChangeLabels
332
340
  }, common)));
package/lib/graph.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"graph.js","names":["log","debug","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","showTitle","title","tools","getMaskSize","x","y","removeBuildingToolIfCurrentToolDiffers","currentTool","buildingMark","filter","m","building","newMarks","cloneDeep","type","index","findIndex","isEqual","splice","Graph","setState","labelNode","oldMark","newMark","props","isDuplicatedMark","markData","updatedMark","complete","updateMarks","existing","update","addIfMissing","mark","tool","find","t","Component","point","addPoint","undefined","graphProps","createGraphProps","rootNode","maskSize","common","r","padding","onBgClick","map","getComponent","markType","disabled","isBackground","state","changeMark","completeMark","startDrag","stopDrag","pointerEvents","React","object"],"sources":["../src/graph.jsx"],"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 Labels from './labels';\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 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 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 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 showLabels,\n showTitle,\n onChangeLabels,\n onChangeTitle\n } = this.props;\n let { marks } = this.props;\n\n const graphProps = createGraphProps(domain, range, size, () => this.rootNode);\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 showTitle={showTitle}\n title={title}\n onChangeTitle={onChangeTitle}\n {...common}\n >\n <g transform={`translate(${domain.padding}, ${range.padding})`}>\n <Grid {...common} />\n <Axes {...axesSettings} {...common} />\n <Bg {...size} onClick={this.onBgClick} {...common} />\n <mask id=\"myMask\">\n <rect {...maskSize} fill=\"white\" /> {/* TODO hardcoded color */}\n </mask>\n\n <g id=\"marks\" mask=\"url('#myMask')\">\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\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 {showLabels && (\n <Labels\n disabledLabels={disabledLabels}\n value={labels}\n onChange={onChangeLabels}\n {...common}\n />\n )}\n </Root>\n );\n }\n}\n\nexport default Graph;\n"],"mappings":"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"}
1
+ {"version":3,"file":"graph.js","names":["log","debug","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","cloneDeep","type","index","findIndex","isEqual","splice","Graph","setState","labelNode","oldMark","newMark","props","isDuplicatedMark","markData","updatedMark","complete","updateMarks","existing","update","addIfMissing","mark","tool","find","t","Component","point","addPoint","undefined","labelsPlaceholders","titlePlaceholder","graphProps","createGraphProps","rootNode","maskSize","common","r","padding","onBgClick","map","getComponent","markType","disabled","isBackground","state","changeMark","completeMark","startDrag","stopDrag","pointerEvents","React","object"],"sources":["../src/graph.jsx"],"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 Labels from './labels';\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 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 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 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 showPixelGuides={showPixelGuides}\n showLabels={showLabels}\n showTitle={showTitle}\n title={title}\n titlePlaceholder={titlePlaceholder}\n onChangeTitle={onChangeTitle}\n {...common}\n >\n <g transform={`translate(${domain.padding}, ${range.padding})`}>\n <Grid {...common} />\n <Axes {...axesSettings} {...common} />\n <Bg {...size} onClick={this.onBgClick} {...common} />\n <mask id=\"myMask\">\n <rect {...maskSize} fill=\"white\" /> {/* TODO hardcoded color */}\n </mask>\n\n <g id=\"marks\" mask=\"url('#myMask')\">\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\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 {showLabels && (\n <Labels\n disabledLabels={disabledLabels}\n placeholders={labelsPlaceholders}\n value={labels}\n onChange={onChangeLabels}\n {...common}\n />\n )}\n </Root>\n );\n }\n}\n\nexport default Graph;\n"],"mappings":"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"}
package/lib/grid-setup.js CHANGED
@@ -73,6 +73,17 @@ var GridConfig = function GridConfig(props) {
73
73
  }));
74
74
  };
75
75
 
76
+ GridConfig.propTypes = {
77
+ classes: _propTypes["default"].object,
78
+ disabled: _propTypes["default"].bool,
79
+ displayedFields: _propTypes["default"].object,
80
+ labelValue: _propTypes["default"].number,
81
+ labelValues: _propTypes["default"].array,
82
+ gridValue: _propTypes["default"].number,
83
+ gridValues: _propTypes["default"].array,
84
+ onChange: _propTypes["default"].func
85
+ };
86
+
76
87
  var AxisConfig = function AxisConfig(props) {
77
88
  var classes = props.classes,
78
89
  disabled = props.disabled,
@@ -142,6 +153,7 @@ var GridSetup = function GridSetup(props) {
142
153
  _props$labelValues = props.labelValues,
143
154
  labelValues = _props$labelValues === void 0 ? {} : _props$labelValues,
144
155
  onChange = props.onChange,
156
+ onChangeView = props.onChangeView,
145
157
  range = props.range,
146
158
  size = props.size,
147
159
  sizeConstraints = props.sizeConstraints,
@@ -321,7 +333,9 @@ var GridSetup = function GridSetup(props) {
321
333
  })) : null;
322
334
  return /*#__PURE__*/_react["default"].createElement("div", {
323
335
  className: classes.wrapper
324
- }, /*#__PURE__*/_react["default"].createElement(_ExpansionPanel["default"], null, /*#__PURE__*/_react["default"].createElement(_ExpansionPanelSummary["default"], {
336
+ }, /*#__PURE__*/_react["default"].createElement(_ExpansionPanel["default"], {
337
+ onChange: onChangeView
338
+ }, /*#__PURE__*/_react["default"].createElement(_ExpansionPanelSummary["default"], {
325
339
  expandIcon: /*#__PURE__*/_react["default"].createElement(_ExpandMore["default"], null)
326
340
  }, /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
327
341
  variant: "subtitle1"
@@ -373,6 +387,7 @@ GridSetup.propTypes = {
373
387
  includeAxes: _propTypes["default"].bool,
374
388
  labelValues: _propTypes["default"].object,
375
389
  onChange: _propTypes["default"]["function"],
390
+ onChangeView: _propTypes["default"]["function"],
376
391
  range: _propTypes["default"].object,
377
392
  size: _propTypes["default"].object,
378
393
  sizeConstraints: _propTypes["default"].object,
@@ -1 +1 @@
1
- {"version":3,"file":"grid-setup.js","names":["GridConfig","props","classes","disabled","displayedFields","labelValue","labelValues","gridValue","gridValues","onChange","labelStep","step","columnView","enabled","mediumTextField","label","e","v","AxisConfig","displayHeader","maxValue","minValue","type","axisLabel","min","max","activePlugins","value","GridSetup","domain","includeAxes","range","size","sizeConstraints","standardGrid","gridProps","dimensionsEnabled","includeAxesEnabled","standardGridEnabled","displayAxisType","gridConfigFields","axisConfigFields","onIncludeAxes","noAxesConfig","axis","updatedRange","updatedDomain","onStandardGridChanged","graph","height","width","onSizeChanged","key","onDomainChanged","onRangeChanged","axesConfig","rowView","text","gridlinesConfig","largeTextField","wrapper","content","dimensions","textField","propTypes","PropTypes","object","bool","styles","theme","display","flexDirection","alignItems","justifyContent","margin","spacing","unit","fontStyle","color","paddingTop","withStyles"],"sources":["../src/grid-setup.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { color, InputContainer } from '@pie-lib/render-ui';\nimport { withStyles } from '@material-ui/core/styles';\nimport ExpansionPanelSummary from '@material-ui/core/ExpansionPanelSummary';\nimport Typography from '@material-ui/core/Typography';\nimport ExpansionPanelDetails from '@material-ui/core/ExpansionPanelDetails';\nimport ExpansionPanel from '@material-ui/core/ExpansionPanel';\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\nimport { NumberTextFieldCustom, Toggle } from '@pie-lib/config-ui';\nimport EditableHTML from '@pie-lib/editable-html';\n\nconst GridConfig = props => {\n const {\n classes,\n disabled,\n displayedFields,\n labelValue,\n labelValues,\n gridValue,\n gridValues,\n onChange\n } = props;\n const { labelStep = {}, step = {} } = displayedFields;\n\n return (\n <div className={classes.columnView}>\n {step && step.enabled && (\n <NumberTextFieldCustom\n className={classes.mediumTextField}\n label={step.label || ''}\n value={gridValue}\n customValues={gridValues}\n variant=\"outlined\"\n disabled={disabled}\n onChange={(e, v) => onChange('step', v)}\n />\n )}\n {labelStep && labelStep.enabled && (\n <NumberTextFieldCustom\n className={classes.mediumTextField}\n label={labelStep.label || ''}\n value={labelValue}\n customValues={labelValues}\n variant=\"outlined\"\n disabled={disabled}\n onChange={(e, v) => onChange('labelStep', v)}\n />\n )}\n </div>\n );\n};\n\nconst AxisConfig = props => {\n const {\n classes,\n disabled,\n displayedFields,\n displayHeader,\n label,\n maxValue,\n minValue,\n onChange,\n type\n } = props;\n const { axisLabel = {}, min = {}, max = {} } = displayedFields;\n const activePlugins = [\n 'bold',\n 'italic',\n 'underline',\n 'strikethrough'\n // 'languageCharacters'\n ];\n\n return (\n <div className={classes.columnView}>\n {displayHeader && (\n <Typography variant=\"subtitle2\">\n <i>{type === 'domain' ? 'x' : 'y'}</i>\n -axis\n </Typography>\n )}\n {min && min.enabled && (\n <NumberTextFieldCustom\n className={classes.mediumTextField}\n label={min.label || ''}\n value={minValue}\n min={-10000}\n max={maxValue - 0.01}\n variant=\"outlined\"\n disabled={disabled}\n onChange={(e, v) => onChange('min', v)}\n />\n )}\n {max && max.enabled && (\n <NumberTextFieldCustom\n className={classes.mediumTextField}\n label={max.label || ''}\n value={maxValue}\n min={minValue + 0.01}\n max={10000}\n variant=\"outlined\"\n disabled={disabled}\n onChange={(e, v) => onChange('max', v)}\n />\n )}\n {axisLabel && axisLabel.enabled && (\n <InputContainer label={axisLabel.label || ''} className={classes.mediumTextField}>\n <EditableHTML\n className={classes.axisLabel}\n onChange={value => onChange('axisLabel', value)}\n markup={label || ''}\n charactersLimit={5}\n activePlugins={activePlugins}\n />\n </InputContainer>\n )}\n </div>\n );\n};\n\nconst GridSetup = props => {\n const {\n classes,\n domain,\n displayedFields = {},\n gridValues = {},\n includeAxes,\n labelValues = {},\n onChange,\n range,\n size,\n sizeConstraints,\n standardGrid\n } = props;\n const gridProps = { min: 2, max: 41 };\n const {\n axisLabel = {},\n dimensionsEnabled,\n includeAxesEnabled,\n labelStep = {},\n min = {},\n max = {},\n standardGridEnabled,\n step = {}\n } = displayedFields || {};\n const displayAxisType =\n min.enabled || max.enabled || axisLabel.enabled || step.enabled || labelStep.enabled;\n const gridConfigFields = { step, labelStep };\n const axisConfigFields = { min, max, axisLabel };\n\n const onIncludeAxes = includeAxes => {\n const noAxesConfig = type => {\n const axis = type === 'domain' ? domain : range;\n\n return {\n min: 1,\n max: axis.max < gridProps.min || axis.max > gridProps.max ? 16 : axis.max,\n step: 1,\n labelStep: 0\n };\n };\n\n const updatedRange = {\n ...range,\n ...(includeAxes ? { labelStep: 1 } : noAxesConfig('range'))\n };\n const updatedDomain = {\n ...domain,\n ...(includeAxes ? { labelStep: 1 } : noAxesConfig('domain'))\n };\n\n onChange({ includeAxes, range: updatedRange, domain: updatedDomain });\n };\n\n const onStandardGridChanged = value => {\n onChange({\n standardGrid: value,\n range: {\n ...domain,\n axisLabel: range.axisLabel\n },\n graph: {\n ...size,\n height: size.width\n }\n });\n };\n\n const onSizeChanged = (key, value) => {\n const graph = { ...size, [key]: value };\n\n if (standardGrid) {\n graph.height = value;\n }\n\n onChange({ graph });\n };\n\n const onDomainChanged = (key, value) => {\n domain[key] = value;\n\n if (standardGrid && key !== 'axisLabel') {\n range[key] = value;\n }\n\n onChange({ domain, range });\n };\n\n const onRangeChanged = (key, value) => {\n range[key] = value;\n\n onChange({ range });\n };\n\n const axesConfig = (\n <React.Fragment>\n <div className={classes.rowView}>\n <AxisConfig\n classes={classes}\n displayedFields={axisConfigFields}\n displayHeader={displayAxisType}\n type=\"domain\"\n minValue={domain.min}\n maxValue={domain.max}\n label={domain.axisLabel}\n includeAxes={includeAxes}\n onChange={onDomainChanged}\n />\n <AxisConfig\n classes={classes}\n displayedFields={axisConfigFields}\n displayHeader={displayAxisType}\n type=\"range\"\n minValue={range.min}\n maxValue={range.max}\n label={range.axisLabel}\n disabled={standardGrid}\n includeAxes={includeAxes}\n onChange={onRangeChanged}\n />\n </div>\n {(min.enabled || max.enabled) && (\n <Typography className={classes.text}>\n If you want the axis to be visible, use a zero or negative Min Value, and a positive Max\n Value\n </Typography>\n )}\n {(step.enabled || labelStep.enabled) && (\n <div className={classes.rowView}>\n <GridConfig\n classes={classes}\n displayedFields={gridConfigFields}\n gridValue={domain.step}\n labelValue={domain.labelStep}\n gridValues={gridValues.domain || []}\n labelValues={labelValues.domain || []}\n onChange={onDomainChanged}\n />\n <GridConfig\n classes={classes}\n disabled={standardGrid}\n displayedFields={gridConfigFields}\n gridValue={range.step}\n labelValue={range.labelStep}\n gridValues={gridValues.range || []}\n labelValues={labelValues.range || []}\n onChange={onRangeChanged}\n />\n </div>\n )}\n {labelStep.enabled && (\n <Typography className={classes.text}>\n For unnumbered gridlines, enter a label interval of 0\n </Typography>\n )}\n </React.Fragment>\n );\n\n const gridlinesConfig = max.enabled ? (\n <div className={classes.columnView}>\n <NumberTextFieldCustom\n className={classes.largeTextField}\n label=\"Number of Horizontal Gridlines\"\n value={domain.max}\n min={!includeAxes && gridProps.min}\n max={!includeAxes && gridProps.max}\n variant=\"outlined\"\n onChange={(e, v) => onDomainChanged('max', v)}\n />\n <NumberTextFieldCustom\n className={classes.largeTextField}\n label=\"Number of Vertical Gridlines\"\n value={range.max}\n min={!includeAxes && gridProps.min}\n max={!includeAxes && gridProps.max}\n variant=\"outlined\"\n disabled={standardGrid}\n onChange={(e, v) => onRangeChanged('max', v)}\n />\n </div>\n ) : null;\n\n return (\n <div className={classes.wrapper}>\n <ExpansionPanel>\n <ExpansionPanelSummary expandIcon={<ExpandMoreIcon />}>\n <Typography variant=\"subtitle1\">Customize Grid Setup</Typography>\n </ExpansionPanelSummary>\n <ExpansionPanelDetails>\n <div className={classes.content}>\n {includeAxesEnabled && (\n <Toggle\n label=\"Include axes and labels?\"\n toggle={onIncludeAxes}\n checked={includeAxes}\n />\n )}\n {standardGridEnabled && (\n <Toggle\n label=\"Constrain to standard coordinate grid?\"\n toggle={onStandardGridChanged}\n checked={standardGrid}\n />\n )}\n {includeAxes ? axesConfig : gridlinesConfig}\n {dimensionsEnabled && (\n <div className={classes.dimensions}>\n <div>\n <Typography>Dimensions(px)</Typography>\n <Typography className={classes.disabled}>\n Min {sizeConstraints.min}, Max {sizeConstraints.max}\n </Typography>\n </div>\n <NumberTextFieldCustom\n className={classes.textField}\n label=\"Width\"\n value={size.width}\n min={sizeConstraints.min}\n max={sizeConstraints.max}\n step={sizeConstraints.step}\n variant=\"outlined\"\n onChange={(e, v) => onSizeChanged('width', v)}\n />\n <NumberTextFieldCustom\n className={classes.textField}\n label=\"Height\"\n value={size.height}\n min={sizeConstraints.min}\n max={sizeConstraints.max}\n step={sizeConstraints.step}\n variant=\"outlined\"\n disabled={standardGrid}\n onChange={(e, v) => onSizeChanged('height', v)}\n />\n </div>\n )}\n </div>\n </ExpansionPanelDetails>\n </ExpansionPanel>\n </div>\n );\n};\n\nGridSetup.propTypes = {\n classes: PropTypes.object,\n domain: PropTypes.object,\n displayedFields: PropTypes.object,\n gridValues: PropTypes.object,\n includeAxes: PropTypes.bool,\n labelValues: PropTypes.object,\n onChange: PropTypes.function,\n range: PropTypes.object,\n size: PropTypes.object,\n sizeConstraints: PropTypes.object,\n standardGrid: PropTypes.bool\n};\n\nconst styles = theme => ({\n wrapper: {\n width: '450px'\n },\n content: {\n display: 'flex',\n flexDirection: 'column',\n width: '100%'\n },\n columnView: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center'\n },\n rowView: {\n display: 'flex',\n justifyContent: 'space-around',\n alignItems: 'center'\n },\n textField: {\n width: '130px',\n margin: `${theme.spacing.unit}px ${theme.spacing.unit / 2}px`\n },\n mediumTextField: {\n width: '160px',\n margin: `${theme.spacing.unit}px ${theme.spacing.unit / 2}px`\n },\n largeTextField: {\n width: '230px',\n margin: `${theme.spacing.unit}px ${theme.spacing.unit / 2}px`\n },\n text: {\n fontStyle: 'italic',\n margin: `${theme.spacing.unit}px 0`\n },\n dimensions: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center'\n },\n disabled: {\n color: color.disabled()\n },\n axisLabel: {\n paddingTop: theme.spacing.unit * 2\n }\n});\n\nexport default withStyles(styles)(GridSetup);\n"],"mappings":"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"}
1
+ {"version":3,"file":"grid-setup.js","names":["GridConfig","props","classes","disabled","displayedFields","labelValue","labelValues","gridValue","gridValues","onChange","labelStep","step","columnView","enabled","mediumTextField","label","e","v","propTypes","PropTypes","object","bool","number","array","func","AxisConfig","displayHeader","maxValue","minValue","type","axisLabel","min","max","activePlugins","value","GridSetup","domain","includeAxes","onChangeView","range","size","sizeConstraints","standardGrid","gridProps","dimensionsEnabled","includeAxesEnabled","standardGridEnabled","displayAxisType","gridConfigFields","axisConfigFields","onIncludeAxes","noAxesConfig","axis","updatedRange","updatedDomain","onStandardGridChanged","graph","height","width","onSizeChanged","key","onDomainChanged","onRangeChanged","axesConfig","rowView","text","gridlinesConfig","largeTextField","wrapper","content","dimensions","textField","styles","theme","display","flexDirection","alignItems","justifyContent","margin","spacing","unit","fontStyle","color","paddingTop","withStyles"],"sources":["../src/grid-setup.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { color, InputContainer } from '@pie-lib/render-ui';\nimport { withStyles } from '@material-ui/core/styles';\nimport ExpansionPanelSummary from '@material-ui/core/ExpansionPanelSummary';\nimport Typography from '@material-ui/core/Typography';\nimport ExpansionPanelDetails from '@material-ui/core/ExpansionPanelDetails';\nimport ExpansionPanel from '@material-ui/core/ExpansionPanel';\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\nimport { NumberTextFieldCustom, Toggle } from '@pie-lib/config-ui';\nimport EditableHTML from '@pie-lib/editable-html';\n\nconst GridConfig = props => {\n const {\n classes,\n disabled,\n displayedFields,\n labelValue,\n labelValues,\n gridValue,\n gridValues,\n onChange\n } = props;\n const { labelStep = {}, step = {} } = displayedFields;\n\n return (\n <div className={classes.columnView}>\n {step && step.enabled && (\n <NumberTextFieldCustom\n className={classes.mediumTextField}\n label={step.label || ''}\n value={gridValue}\n customValues={gridValues}\n variant=\"outlined\"\n disabled={disabled}\n onChange={(e, v) => onChange('step', v)}\n />\n )}\n {labelStep && labelStep.enabled && (\n <NumberTextFieldCustom\n className={classes.mediumTextField}\n label={labelStep.label || ''}\n value={labelValue}\n customValues={labelValues}\n variant=\"outlined\"\n disabled={disabled}\n onChange={(e, v) => onChange('labelStep', v)}\n />\n )}\n </div>\n );\n};\n\nGridConfig.propTypes = {\n classes: PropTypes.object,\n disabled: PropTypes.bool,\n displayedFields: PropTypes.object,\n labelValue: PropTypes.number,\n labelValues: PropTypes.array,\n gridValue: PropTypes.number,\n gridValues: PropTypes.array,\n onChange: PropTypes.func\n};\n\nconst AxisConfig = props => {\n const {\n classes,\n disabled,\n displayedFields,\n displayHeader,\n label,\n maxValue,\n minValue,\n onChange,\n type\n } = props;\n const { axisLabel = {}, min = {}, max = {} } = displayedFields;\n const activePlugins = [\n 'bold',\n 'italic',\n 'underline',\n 'strikethrough'\n // 'languageCharacters'\n ];\n\n return (\n <div className={classes.columnView}>\n {displayHeader && (\n <Typography variant=\"subtitle2\">\n <i>{type === 'domain' ? 'x' : 'y'}</i>\n -axis\n </Typography>\n )}\n {min && min.enabled && (\n <NumberTextFieldCustom\n className={classes.mediumTextField}\n label={min.label || ''}\n value={minValue}\n min={-10000}\n max={maxValue - 0.01}\n variant=\"outlined\"\n disabled={disabled}\n onChange={(e, v) => onChange('min', v)}\n />\n )}\n {max && max.enabled && (\n <NumberTextFieldCustom\n className={classes.mediumTextField}\n label={max.label || ''}\n value={maxValue}\n min={minValue + 0.01}\n max={10000}\n variant=\"outlined\"\n disabled={disabled}\n onChange={(e, v) => onChange('max', v)}\n />\n )}\n {axisLabel && axisLabel.enabled && (\n <InputContainer label={axisLabel.label || ''} className={classes.mediumTextField}>\n <EditableHTML\n className={classes.axisLabel}\n onChange={value => onChange('axisLabel', value)}\n markup={label || ''}\n charactersLimit={5}\n activePlugins={activePlugins}\n />\n </InputContainer>\n )}\n </div>\n );\n};\n\nconst GridSetup = props => {\n const {\n classes,\n domain,\n displayedFields = {},\n gridValues = {},\n includeAxes,\n labelValues = {},\n onChange,\n onChangeView,\n range,\n size,\n sizeConstraints,\n standardGrid\n } = props;\n const gridProps = { min: 2, max: 41 };\n const {\n axisLabel = {},\n dimensionsEnabled,\n includeAxesEnabled,\n labelStep = {},\n min = {},\n max = {},\n standardGridEnabled,\n step = {}\n } = displayedFields || {};\n const displayAxisType =\n min.enabled || max.enabled || axisLabel.enabled || step.enabled || labelStep.enabled;\n const gridConfigFields = { step, labelStep };\n const axisConfigFields = { min, max, axisLabel };\n\n const onIncludeAxes = includeAxes => {\n const noAxesConfig = type => {\n const axis = type === 'domain' ? domain : range;\n\n return {\n min: 1,\n max: axis.max < gridProps.min || axis.max > gridProps.max ? 16 : axis.max,\n step: 1,\n labelStep: 0\n };\n };\n\n const updatedRange = {\n ...range,\n ...(includeAxes ? { labelStep: 1 } : noAxesConfig('range'))\n };\n const updatedDomain = {\n ...domain,\n ...(includeAxes ? { labelStep: 1 } : noAxesConfig('domain'))\n };\n\n onChange({ includeAxes, range: updatedRange, domain: updatedDomain });\n };\n\n const onStandardGridChanged = value => {\n onChange({\n standardGrid: value,\n range: {\n ...domain,\n axisLabel: range.axisLabel\n },\n graph: {\n ...size,\n height: size.width\n }\n });\n };\n\n const onSizeChanged = (key, value) => {\n const graph = { ...size, [key]: value };\n\n if (standardGrid) {\n graph.height = value;\n }\n\n onChange({ graph });\n };\n\n const onDomainChanged = (key, value) => {\n domain[key] = value;\n\n if (standardGrid && key !== 'axisLabel') {\n range[key] = value;\n }\n\n onChange({ domain, range });\n };\n\n const onRangeChanged = (key, value) => {\n range[key] = value;\n\n onChange({ range });\n };\n\n const axesConfig = (\n <React.Fragment>\n <div className={classes.rowView}>\n <AxisConfig\n classes={classes}\n displayedFields={axisConfigFields}\n displayHeader={displayAxisType}\n type=\"domain\"\n minValue={domain.min}\n maxValue={domain.max}\n label={domain.axisLabel}\n includeAxes={includeAxes}\n onChange={onDomainChanged}\n />\n <AxisConfig\n classes={classes}\n displayedFields={axisConfigFields}\n displayHeader={displayAxisType}\n type=\"range\"\n minValue={range.min}\n maxValue={range.max}\n label={range.axisLabel}\n disabled={standardGrid}\n includeAxes={includeAxes}\n onChange={onRangeChanged}\n />\n </div>\n {(min.enabled || max.enabled) && (\n <Typography className={classes.text}>\n If you want the axis to be visible, use a zero or negative Min Value, and a positive Max\n Value\n </Typography>\n )}\n {(step.enabled || labelStep.enabled) && (\n <div className={classes.rowView}>\n <GridConfig\n classes={classes}\n displayedFields={gridConfigFields}\n gridValue={domain.step}\n labelValue={domain.labelStep}\n gridValues={gridValues.domain || []}\n labelValues={labelValues.domain || []}\n onChange={onDomainChanged}\n />\n <GridConfig\n classes={classes}\n disabled={standardGrid}\n displayedFields={gridConfigFields}\n gridValue={range.step}\n labelValue={range.labelStep}\n gridValues={gridValues.range || []}\n labelValues={labelValues.range || []}\n onChange={onRangeChanged}\n />\n </div>\n )}\n {labelStep.enabled && (\n <Typography className={classes.text}>\n For unnumbered gridlines, enter a label interval of 0\n </Typography>\n )}\n </React.Fragment>\n );\n\n const gridlinesConfig = max.enabled ? (\n <div className={classes.columnView}>\n <NumberTextFieldCustom\n className={classes.largeTextField}\n label=\"Number of Horizontal Gridlines\"\n value={domain.max}\n min={!includeAxes && gridProps.min}\n max={!includeAxes && gridProps.max}\n variant=\"outlined\"\n onChange={(e, v) => onDomainChanged('max', v)}\n />\n <NumberTextFieldCustom\n className={classes.largeTextField}\n label=\"Number of Vertical Gridlines\"\n value={range.max}\n min={!includeAxes && gridProps.min}\n max={!includeAxes && gridProps.max}\n variant=\"outlined\"\n disabled={standardGrid}\n onChange={(e, v) => onRangeChanged('max', v)}\n />\n </div>\n ) : null;\n\n return (\n <div className={classes.wrapper}>\n <ExpansionPanel onChange={onChangeView}>\n <ExpansionPanelSummary expandIcon={<ExpandMoreIcon />}>\n <Typography variant=\"subtitle1\">Customize Grid Setup</Typography>\n </ExpansionPanelSummary>\n <ExpansionPanelDetails>\n <div className={classes.content}>\n {includeAxesEnabled && (\n <Toggle\n label=\"Include axes and labels?\"\n toggle={onIncludeAxes}\n checked={includeAxes}\n />\n )}\n {standardGridEnabled && (\n <Toggle\n label=\"Constrain to standard coordinate grid?\"\n toggle={onStandardGridChanged}\n checked={standardGrid}\n />\n )}\n {includeAxes ? axesConfig : gridlinesConfig}\n {dimensionsEnabled && (\n <div className={classes.dimensions}>\n <div>\n <Typography>Dimensions(px)</Typography>\n <Typography className={classes.disabled}>\n Min {sizeConstraints.min}, Max {sizeConstraints.max}\n </Typography>\n </div>\n <NumberTextFieldCustom\n className={classes.textField}\n label=\"Width\"\n value={size.width}\n min={sizeConstraints.min}\n max={sizeConstraints.max}\n step={sizeConstraints.step}\n variant=\"outlined\"\n onChange={(e, v) => onSizeChanged('width', v)}\n />\n <NumberTextFieldCustom\n className={classes.textField}\n label=\"Height\"\n value={size.height}\n min={sizeConstraints.min}\n max={sizeConstraints.max}\n step={sizeConstraints.step}\n variant=\"outlined\"\n disabled={standardGrid}\n onChange={(e, v) => onSizeChanged('height', v)}\n />\n </div>\n )}\n </div>\n </ExpansionPanelDetails>\n </ExpansionPanel>\n </div>\n );\n};\n\nGridSetup.propTypes = {\n classes: PropTypes.object,\n domain: PropTypes.object,\n displayedFields: PropTypes.object,\n gridValues: PropTypes.object,\n includeAxes: PropTypes.bool,\n labelValues: PropTypes.object,\n onChange: PropTypes.function,\n onChangeView: PropTypes.function,\n range: PropTypes.object,\n size: PropTypes.object,\n sizeConstraints: PropTypes.object,\n standardGrid: PropTypes.bool\n};\n\nconst styles = theme => ({\n wrapper: {\n width: '450px'\n },\n content: {\n display: 'flex',\n flexDirection: 'column',\n width: '100%'\n },\n columnView: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center'\n },\n rowView: {\n display: 'flex',\n justifyContent: 'space-around',\n alignItems: 'center'\n },\n textField: {\n width: '130px',\n margin: `${theme.spacing.unit}px ${theme.spacing.unit / 2}px`\n },\n mediumTextField: {\n width: '160px',\n margin: `${theme.spacing.unit}px ${theme.spacing.unit / 2}px`\n },\n largeTextField: {\n width: '230px',\n margin: `${theme.spacing.unit}px ${theme.spacing.unit / 2}px`\n },\n text: {\n fontStyle: 'italic',\n margin: `${theme.spacing.unit}px 0`\n },\n dimensions: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center'\n },\n disabled: {\n color: color.disabled()\n },\n axisLabel: {\n paddingTop: theme.spacing.unit * 2\n }\n});\n\nexport default withStyles(styles)(GridSetup);\n"],"mappings":"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"}
package/lib/labels.js CHANGED
@@ -77,16 +77,16 @@ exports.getTransform = getTransform;
77
77
  var getY = function getY(side, height) {
78
78
  switch (side) {
79
79
  case 'left':
80
- return -height + 6;
80
+ return -height;
81
81
 
82
82
  case 'top':
83
- return -height + 6;
83
+ return -height;
84
84
 
85
85
  case 'right':
86
- return -height;
86
+ return -height - 10;
87
87
 
88
88
  default:
89
- return -height - 15;
89
+ return -height + 10;
90
90
  }
91
91
  };
92
92
 
@@ -107,6 +107,7 @@ var RawLabel = /*#__PURE__*/function (_React$Component) {
107
107
 
108
108
  var _this$props = this.props,
109
109
  disabledLabel = _this$props.disabledLabel,
110
+ placeholder = _this$props.placeholder,
110
111
  text = _this$props.text,
111
112
  side = _this$props.side,
112
113
  graphProps = _this$props.graphProps,
@@ -121,13 +122,14 @@ var RawLabel = /*#__PURE__*/function (_React$Component) {
121
122
  var width = side === 'left' || side === 'right' ? totalHeight : totalWidth;
122
123
  var height = 36;
123
124
  var y = getY(side, height);
124
- var activePlugins = ['bold', 'italic', 'underline', 'strikethrough' // 'languageCharacters'
125
+ var finalHeight = side === 'bottom' ? height + 22 : height + 18;
126
+ var activePlugins = ['bold', 'italic', 'underline', 'strikethrough', 'math' // 'languageCharacters'
125
127
  ];
126
128
  return /*#__PURE__*/_react["default"].createElement("foreignObject", {
127
129
  x: -(width / 2),
128
130
  y: y,
129
131
  width: width,
130
- height: height * 2,
132
+ height: finalHeight,
131
133
  transform: transform,
132
134
  textAnchor: "middle"
133
135
  }, /*#__PURE__*/_react["default"].createElement(_renderUi.Readable, {
@@ -136,7 +138,7 @@ var RawLabel = /*#__PURE__*/function (_React$Component) {
136
138
  className: (0, _classnames["default"])((_cn = {}, (0, _defineProperty2["default"])(_cn, classes.bottomLabel, side === 'bottom'), (0, _defineProperty2["default"])(_cn, classes.disabledAxisLabel, disabledLabel), _cn), classes.axisLabel),
137
139
  markup: text || '',
138
140
  onChange: onChange,
139
- placeholder: !disabledLabel && "Click here to add a ".concat(side, " label"),
141
+ placeholder: !disabledLabel && placeholder,
140
142
  toolbarOpts: {
141
143
  position: side === 'bottom' ? 'top' : 'bottom',
142
144
  noBorder: true
@@ -153,6 +155,7 @@ var RawLabel = /*#__PURE__*/function (_React$Component) {
153
155
  side: _propTypes["default"].string,
154
156
  classes: _propTypes["default"].object,
155
157
  disabledLabel: _propTypes["default"].bool,
158
+ placeholder: _propTypes["default"].string,
156
159
  graphProps: _plot.types.GraphPropsType.isRequired
157
160
  });
158
161
  var Label = (0, _styles.withStyles)(function (theme) {
@@ -162,7 +165,8 @@ var Label = (0, _styles.withStyles)(function (theme) {
162
165
  },
163
166
  axisLabel: {
164
167
  fontSize: theme.typography.fontSize - 2,
165
- textAlign: 'center'
168
+ textAlign: 'center',
169
+ padding: '0 4px'
166
170
  },
167
171
  disabledAxisLabel: {
168
172
  pointerEvents: 'none'
@@ -214,6 +218,8 @@ var Labels = /*#__PURE__*/function (_React$Component2) {
214
218
 
215
219
  var _this$props3 = this.props,
216
220
  disabledLabels = _this$props3.disabledLabels,
221
+ _this$props3$placehol = _this$props3.placeholders,
222
+ placeholders = _this$props3$placehol === void 0 ? {} : _this$props3$placehol,
217
223
  _this$props3$value = _this$props3.value,
218
224
  value = _this$props3$value === void 0 ? {} : _this$props3$value,
219
225
  graphProps = _this$props3.graphProps;
@@ -222,6 +228,7 @@ var Labels = /*#__PURE__*/function (_React$Component2) {
222
228
  side: "left",
223
229
  text: value.left,
224
230
  disabledLabel: disabledLabels,
231
+ placeholder: placeholders.left,
225
232
  graphProps: graphProps,
226
233
  onChange: function onChange(value) {
227
234
  return _this2.onChangeLabel(value, 'left');
@@ -231,6 +238,7 @@ var Labels = /*#__PURE__*/function (_React$Component2) {
231
238
  side: "top",
232
239
  text: value.top,
233
240
  disabledLabel: disabledLabels,
241
+ placeholder: placeholders.top,
234
242
  graphProps: graphProps,
235
243
  onChange: function onChange(value) {
236
244
  return _this2.onChangeLabel(value, 'top');
@@ -240,6 +248,7 @@ var Labels = /*#__PURE__*/function (_React$Component2) {
240
248
  side: "bottom",
241
249
  text: value.bottom,
242
250
  disabledLabel: disabledLabels,
251
+ placeholder: placeholders.bottom,
243
252
  graphProps: graphProps,
244
253
  onChange: function onChange(value) {
245
254
  return _this2.onChangeLabel(value, 'bottom');
@@ -249,6 +258,7 @@ var Labels = /*#__PURE__*/function (_React$Component2) {
249
258
  side: "right",
250
259
  text: value.right,
251
260
  disabledLabel: disabledLabels,
261
+ placeholder: placeholders.right,
252
262
  graphProps: graphProps,
253
263
  onChange: function onChange(value) {
254
264
  return _this2.onChangeLabel(value, 'right');
@@ -264,6 +274,7 @@ exports.Labels = Labels;
264
274
  classes: _propTypes["default"].object,
265
275
  className: _propTypes["default"].string,
266
276
  disabledLabels: _propTypes["default"].bool,
277
+ placeholders: _propTypes["default"].object,
267
278
  value: _propTypes["default"].shape(LabelType),
268
279
  graphProps: _propTypes["default"].object
269
280
  });
package/lib/labels.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"labels.js","names":["rotations","left","top","bottom","right","getTransform","side","width","height","t","x","y","rotate","getY","RawLabel","props","disabledLabel","text","graphProps","classes","onChange","size","domain","range","totalHeight","padding","totalWidth","transform","activePlugins","cn","bottomLabel","disabledAxisLabel","axisLabel","position","noBorder","React","Component","PropTypes","string","object","bool","types","GraphPropsType","isRequired","Label","withStyles","theme","label","fill","color","secondary","fontSize","typography","textAlign","pointerEvents","marginTop","LabelType","Labels","newValue","value","labels","disabledLabels","onChangeLabel","className","shape"],"sources":["../src/labels.jsx"],"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 + 6;\n case 'top':\n return -height + 6;\n case 'right':\n return -height;\n default:\n return -height - 15;\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 graphProps: types.GraphPropsType.isRequired\n };\n\n render() {\n const { disabledLabel, 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\n const activePlugins = [\n 'bold',\n 'italic',\n 'underline',\n 'strikethrough'\n // 'languageCharacters'\n ];\n\n return (\n <foreignObject\n x={-(width / 2)}\n y={y}\n width={width}\n height={height * 2}\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 && `Click here to add a ${side} label`}\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 },\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 value: PropTypes.shape(LabelType),\n graphProps: PropTypes.object\n };\n\n static defaultProps = {};\n\n onChangeLabel = (newValue, side) => {\n const { value, onChange } = this.props;\n const labels = {\n ...value,\n [side]: newValue\n };\n\n onChange(labels);\n };\n\n render() {\n const { disabledLabels, 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 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 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 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 graphProps={graphProps}\n onChange={value => this.onChangeLabel(value, 'right')}\n />\n </React.Fragment>\n );\n }\n}\n\nexport default Labels;\n"],"mappings":"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"}
1
+ {"version":3,"file":"labels.js","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","cn","bottomLabel","disabledAxisLabel","axisLabel","position","noBorder","React","Component","PropTypes","string","object","bool","types","GraphPropsType","isRequired","Label","withStyles","theme","label","fill","color","secondary","fontSize","typography","textAlign","pointerEvents","marginTop","LabelType","Labels","newValue","value","labels","disabledLabels","placeholders","onChangeLabel","className","shape"],"sources":["../src/labels.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { types } from '@pie-lib/plot';\nimport { color, Readable } from '@pie-lib/render-ui';\nimport EditableHtml from '@pie-lib/editable-html';\nimport cn from 'classnames';\n\nconst rotations = {\n left: -90,\n top: 0,\n bottom: 0,\n right: 90\n};\n\nexport const getTransform = (side, width, height) => {\n const t = (x, y, rotate) => `translate(${x}, ${y}), rotate(${rotate})`;\n\n if (side === 'left') {\n return t(-20, height / 2, rotations[side]);\n }\n if (side === 'right') {\n return t(width + 30, height / 2, rotations[side]);\n }\n if (side === 'top') {\n return t(width / 2, -20, rotations[side]);\n }\n if (side === 'bottom') {\n return t(width / 2, height + 30, rotations[side]);\n }\n};\n\nconst getY = (side, height) => {\n switch (side) {\n case 'left':\n return -height;\n case 'top':\n return -height;\n case 'right':\n return -height - 10;\n default:\n return -height + 10;\n }\n};\n\nclass RawLabel extends React.Component {\n static propTypes = {\n text: PropTypes.string,\n side: PropTypes.string,\n classes: PropTypes.object,\n disabledLabel: PropTypes.bool,\n placeholder: PropTypes.string,\n graphProps: types.GraphPropsType.isRequired\n };\n\n render() {\n const { disabledLabel, placeholder, text, side, graphProps, classes, onChange } = this.props;\n const { size, domain, range } = graphProps;\n const totalHeight = (size.height || 500) + (range.padding || 0) * 2;\n const totalWidth = (size.width || 500) + (domain.padding || 0) * 2;\n\n const transform = getTransform(side, totalWidth, totalHeight);\n const width = side === 'left' || side === 'right' ? totalHeight : totalWidth;\n const height = 36;\n const y = getY(side, height);\n const finalHeight = side === 'bottom' ? height + 22 : height + 18;\n\n const activePlugins = [\n 'bold',\n 'italic',\n 'underline',\n 'strikethrough',\n 'math'\n // 'languageCharacters'\n ];\n\n return (\n <foreignObject\n x={-(width / 2)}\n y={y}\n width={width}\n height={finalHeight}\n transform={transform}\n textAnchor=\"middle\"\n >\n <Readable false>\n <EditableHtml\n className={cn(\n {\n [classes.bottomLabel]: side === 'bottom',\n [classes.disabledAxisLabel]: disabledLabel\n },\n classes.axisLabel\n )}\n markup={text || ''}\n onChange={onChange}\n placeholder={!disabledLabel && placeholder}\n toolbarOpts={{\n position: side === 'bottom' ? 'top' : 'bottom',\n noBorder: true\n }}\n activePlugins={activePlugins}\n />\n </Readable>\n </foreignObject>\n );\n }\n}\n\nconst Label = withStyles(theme => ({\n label: {\n fill: color.secondary()\n },\n axisLabel: {\n fontSize: theme.typography.fontSize - 2,\n textAlign: 'center',\n padding: '0 4px'\n },\n disabledAxisLabel: {\n pointerEvents: 'none'\n },\n bottomLabel: {\n marginTop: '44px'\n }\n}))(RawLabel);\n\nexport const LabelType = {\n left: PropTypes.string,\n top: PropTypes.string,\n bottom: PropTypes.string,\n right: PropTypes.string\n};\n\nexport class Labels extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n className: PropTypes.string,\n disabledLabels: PropTypes.bool,\n placeholders: PropTypes.object,\n value: PropTypes.shape(LabelType),\n graphProps: PropTypes.object\n };\n\n static defaultProps = {};\n\n onChangeLabel = (newValue, side) => {\n const { value, onChange } = this.props;\n const labels = {\n ...value,\n [side]: newValue\n };\n\n onChange(labels);\n };\n\n render() {\n const { disabledLabels, placeholders = {}, value = {}, graphProps } = this.props;\n\n return (\n <React.Fragment>\n <Label\n key=\"left\"\n side=\"left\"\n text={value.left}\n disabledLabel={disabledLabels}\n placeholder={placeholders.left}\n graphProps={graphProps}\n onChange={value => this.onChangeLabel(value, 'left')}\n />\n <Label\n key=\"top\"\n side=\"top\"\n text={value.top}\n disabledLabel={disabledLabels}\n placeholder={placeholders.top}\n graphProps={graphProps}\n onChange={value => this.onChangeLabel(value, 'top')}\n />\n <Label\n key=\"bottom\"\n side=\"bottom\"\n text={value.bottom}\n disabledLabel={disabledLabels}\n placeholder={placeholders.bottom}\n graphProps={graphProps}\n onChange={value => this.onChangeLabel(value, 'bottom')}\n />\n <Label\n key=\"right\"\n side=\"right\"\n text={value.right}\n disabledLabel={disabledLabels}\n placeholder={placeholders.right}\n graphProps={graphProps}\n onChange={value => this.onChangeLabel(value, 'right')}\n />\n </React.Fragment>\n );\n }\n}\n\nexport default Labels;\n"],"mappings":"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"}
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "2.4.3-next.467+6127f1e4",
6
+ "version": "2.4.3-next.499+10ee16a3",
7
7
  "description": "Graphing components",
8
8
  "keywords": [
9
9
  "react",
@@ -21,7 +21,7 @@
21
21
  "@pie-lib/drag": "^1.1.52",
22
22
  "@pie-lib/graphing-utils": "^1.1.20",
23
23
  "@pie-lib/plot": "^2.2.0",
24
- "@pie-lib/render-ui": "^4.12.1-next.467+6127f1e4",
24
+ "@pie-lib/render-ui": "^4.12.1-next.499+10ee16a3",
25
25
  "@vx/axis": "^0.0.189",
26
26
  "@vx/clip-path": "^0.0.189",
27
27
  "@vx/event": "^0.0.189",
@@ -44,6 +44,6 @@
44
44
  "peerDependencies": {
45
45
  "react": "^16.8.1"
46
46
  },
47
- "gitHead": "6127f1e483d7603030ffb815d8503e5e066dba3d",
47
+ "gitHead": "10ee16a37543973bb49131a66c618979ff09bb46",
48
48
  "scripts": {}
49
49
  }
package/src/axis/axes.jsx CHANGED
@@ -123,7 +123,7 @@ export class RawXAxis extends React.Component {
123
123
 
124
124
  const necessaryRows = countWords(domain.axisLabel);
125
125
  const longestWord = findLongestWord(domain.axisLabel);
126
- const necessaryWidth = amountToIncreaseWidth(longestWord);
126
+ const necessaryWidth = amountToIncreaseWidth(longestWord) + 2;
127
127
 
128
128
  return (
129
129
  <React.Fragment>
@@ -147,8 +147,8 @@ export class RawXAxis extends React.Component {
147
147
  )}
148
148
  {domain.axisLabel && (
149
149
  <foreignObject
150
- x={size.width + 15}
151
- y={scale.y(0) - 10}
150
+ x={size.width + 17}
151
+ y={scale.y(0) - 9}
152
152
  width={necessaryWidth}
153
153
  height={20 * necessaryRows}
154
154
  >
@@ -219,7 +219,7 @@ export class RawYAxis extends React.Component {
219
219
  {range.axisLabel && (
220
220
  <foreignObject
221
221
  x={scale.x(0) - necessaryWidth / 2}
222
- y={-30}
222
+ y={-33}
223
223
  width={necessaryWidth}
224
224
  height="20"
225
225
  >
@@ -118,6 +118,7 @@ export class GraphWithControls extends React.Component {
118
118
  domain,
119
119
  draggableTools,
120
120
  labels,
121
+ labelsPlaceholders,
121
122
  onChangeLabels,
122
123
  onChangeMarks,
123
124
  onChangeTitle,
@@ -128,8 +129,10 @@ export class GraphWithControls extends React.Component {
128
129
  range,
129
130
  size,
130
131
  showLabels,
132
+ showPixelGuides,
131
133
  showTitle,
132
- title
134
+ title,
135
+ titlePlaceholder
133
136
  } = this.props;
134
137
  let { backgroundMarks, marks, toolbarTools } = this.props;
135
138
 
@@ -190,6 +193,7 @@ export class GraphWithControls extends React.Component {
190
193
  domain={domain}
191
194
  labels={labels}
192
195
  labelModeEnabled={labelModeEnabled}
196
+ labelsPlaceholders={labelsPlaceholders}
193
197
  marks={marks}
194
198
  onChangeMarks={!disabled ? onChangeMarks : undefined}
195
199
  onChangeLabels={onChangeLabels}
@@ -197,8 +201,10 @@ export class GraphWithControls extends React.Component {
197
201
  range={range}
198
202
  size={size}
199
203
  showLabels={showLabels}
204
+ showPixelGuides={showPixelGuides}
200
205
  showTitle={showTitle}
201
206
  title={title}
207
+ titlePlaceholder={titlePlaceholder}
202
208
  tools={tools}
203
209
  />
204
210
  </div>
@@ -207,9 +213,12 @@ export class GraphWithControls extends React.Component {
207
213
  }
208
214
 
209
215
  const styles = theme => ({
210
- graphWithControls: {},
216
+ graphWithControls: {
217
+ display: 'flex',
218
+ flexDirection: 'column',
219
+ width: 'min-content'
220
+ },
211
221
  controls: {
212
- width: 'inherit',
213
222
  display: 'flex',
214
223
  justifyContent: 'space-between',
215
224
  padding: theme.spacing.unit,
@@ -224,7 +233,8 @@ const styles = theme => ({
224
233
  }
225
234
  },
226
235
  expansionPanel: {
227
- backgroundColor: color.primaryLight()
236
+ backgroundColor: color.primaryLight(),
237
+ width: '100%'
228
238
  },
229
239
  summaryRoot: {
230
240
  padding: `0 ${theme.spacing.unit}px`,
@@ -235,7 +245,9 @@ const styles = theme => ({
235
245
  },
236
246
  details: {
237
247
  padding: 0,
238
- marginTop: theme.spacing.unit
248
+ marginTop: theme.spacing.unit,
249
+ display: 'flex',
250
+ justifyContent: 'space-between'
239
251
  }
240
252
  });
241
253
 
package/src/graph.jsx CHANGED
@@ -36,6 +36,7 @@ export const graphPropTypes = {
36
36
  height: PropTypes.number.isRequired
37
37
  }),
38
38
  showLabels: PropTypes.bool,
39
+ showPixelGuides: PropTypes.bool,
39
40
  showTitle: PropTypes.bool,
40
41
  title: PropTypes.string,
41
42
  tools: PropTypes.array
@@ -167,8 +168,11 @@ export class Graph extends React.Component {
167
168
  title,
168
169
  labels,
169
170
  labelModeEnabled,
171
+ labelsPlaceholders,
170
172
  showLabels,
173
+ showPixelGuides,
171
174
  showTitle,
175
+ titlePlaceholder,
172
176
  onChangeLabels,
173
177
  onChangeTitle
174
178
  } = this.props;
@@ -184,8 +188,11 @@ export class Graph extends React.Component {
184
188
  <Root
185
189
  rootRef={r => (this.rootNode = r)}
186
190
  disabledTitle={disabledTitle}
191
+ showPixelGuides={showPixelGuides}
192
+ showLabels={showLabels}
187
193
  showTitle={showTitle}
188
194
  title={title}
195
+ titlePlaceholder={titlePlaceholder}
189
196
  onChangeTitle={onChangeTitle}
190
197
  {...common}
191
198
  >
@@ -245,6 +252,7 @@ export class Graph extends React.Component {
245
252
  {showLabels && (
246
253
  <Labels
247
254
  disabledLabels={disabledLabels}
255
+ placeholders={labelsPlaceholders}
248
256
  value={labels}
249
257
  onChange={onChangeLabels}
250
258
  {...common}
@@ -51,6 +51,17 @@ const GridConfig = props => {
51
51
  );
52
52
  };
53
53
 
54
+ GridConfig.propTypes = {
55
+ classes: PropTypes.object,
56
+ disabled: PropTypes.bool,
57
+ displayedFields: PropTypes.object,
58
+ labelValue: PropTypes.number,
59
+ labelValues: PropTypes.array,
60
+ gridValue: PropTypes.number,
61
+ gridValues: PropTypes.array,
62
+ onChange: PropTypes.func
63
+ };
64
+
54
65
  const AxisConfig = props => {
55
66
  const {
56
67
  classes,
@@ -128,6 +139,7 @@ const GridSetup = props => {
128
139
  includeAxes,
129
140
  labelValues = {},
130
141
  onChange,
142
+ onChangeView,
131
143
  range,
132
144
  size,
133
145
  sizeConstraints,
@@ -303,7 +315,7 @@ const GridSetup = props => {
303
315
 
304
316
  return (
305
317
  <div className={classes.wrapper}>
306
- <ExpansionPanel>
318
+ <ExpansionPanel onChange={onChangeView}>
307
319
  <ExpansionPanelSummary expandIcon={<ExpandMoreIcon />}>
308
320
  <Typography variant="subtitle1">Customize Grid Setup</Typography>
309
321
  </ExpansionPanelSummary>
@@ -370,6 +382,7 @@ GridSetup.propTypes = {
370
382
  includeAxes: PropTypes.bool,
371
383
  labelValues: PropTypes.object,
372
384
  onChange: PropTypes.function,
385
+ onChangeView: PropTypes.function,
373
386
  range: PropTypes.object,
374
387
  size: PropTypes.object,
375
388
  sizeConstraints: PropTypes.object,
package/src/labels.jsx CHANGED
@@ -33,13 +33,13 @@ export const getTransform = (side, width, height) => {
33
33
  const getY = (side, height) => {
34
34
  switch (side) {
35
35
  case 'left':
36
- return -height + 6;
36
+ return -height;
37
37
  case 'top':
38
- return -height + 6;
39
- case 'right':
40
38
  return -height;
39
+ case 'right':
40
+ return -height - 10;
41
41
  default:
42
- return -height - 15;
42
+ return -height + 10;
43
43
  }
44
44
  };
45
45
 
@@ -49,11 +49,12 @@ class RawLabel extends React.Component {
49
49
  side: PropTypes.string,
50
50
  classes: PropTypes.object,
51
51
  disabledLabel: PropTypes.bool,
52
+ placeholder: PropTypes.string,
52
53
  graphProps: types.GraphPropsType.isRequired
53
54
  };
54
55
 
55
56
  render() {
56
- const { disabledLabel, text, side, graphProps, classes, onChange } = this.props;
57
+ const { disabledLabel, placeholder, text, side, graphProps, classes, onChange } = this.props;
57
58
  const { size, domain, range } = graphProps;
58
59
  const totalHeight = (size.height || 500) + (range.padding || 0) * 2;
59
60
  const totalWidth = (size.width || 500) + (domain.padding || 0) * 2;
@@ -62,12 +63,14 @@ class RawLabel extends React.Component {
62
63
  const width = side === 'left' || side === 'right' ? totalHeight : totalWidth;
63
64
  const height = 36;
64
65
  const y = getY(side, height);
66
+ const finalHeight = side === 'bottom' ? height + 22 : height + 18;
65
67
 
66
68
  const activePlugins = [
67
69
  'bold',
68
70
  'italic',
69
71
  'underline',
70
- 'strikethrough'
72
+ 'strikethrough',
73
+ 'math'
71
74
  // 'languageCharacters'
72
75
  ];
73
76
 
@@ -76,7 +79,7 @@ class RawLabel extends React.Component {
76
79
  x={-(width / 2)}
77
80
  y={y}
78
81
  width={width}
79
- height={height * 2}
82
+ height={finalHeight}
80
83
  transform={transform}
81
84
  textAnchor="middle"
82
85
  >
@@ -91,7 +94,7 @@ class RawLabel extends React.Component {
91
94
  )}
92
95
  markup={text || ''}
93
96
  onChange={onChange}
94
- placeholder={!disabledLabel && `Click here to add a ${side} label`}
97
+ placeholder={!disabledLabel && placeholder}
95
98
  toolbarOpts={{
96
99
  position: side === 'bottom' ? 'top' : 'bottom',
97
100
  noBorder: true
@@ -110,7 +113,8 @@ const Label = withStyles(theme => ({
110
113
  },
111
114
  axisLabel: {
112
115
  fontSize: theme.typography.fontSize - 2,
113
- textAlign: 'center'
116
+ textAlign: 'center',
117
+ padding: '0 4px'
114
118
  },
115
119
  disabledAxisLabel: {
116
120
  pointerEvents: 'none'
@@ -132,6 +136,7 @@ export class Labels extends React.Component {
132
136
  classes: PropTypes.object,
133
137
  className: PropTypes.string,
134
138
  disabledLabels: PropTypes.bool,
139
+ placeholders: PropTypes.object,
135
140
  value: PropTypes.shape(LabelType),
136
141
  graphProps: PropTypes.object
137
142
  };
@@ -149,7 +154,7 @@ export class Labels extends React.Component {
149
154
  };
150
155
 
151
156
  render() {
152
- const { disabledLabels, value = {}, graphProps } = this.props;
157
+ const { disabledLabels, placeholders = {}, value = {}, graphProps } = this.props;
153
158
 
154
159
  return (
155
160
  <React.Fragment>
@@ -158,6 +163,7 @@ export class Labels extends React.Component {
158
163
  side="left"
159
164
  text={value.left}
160
165
  disabledLabel={disabledLabels}
166
+ placeholder={placeholders.left}
161
167
  graphProps={graphProps}
162
168
  onChange={value => this.onChangeLabel(value, 'left')}
163
169
  />
@@ -166,6 +172,7 @@ export class Labels extends React.Component {
166
172
  side="top"
167
173
  text={value.top}
168
174
  disabledLabel={disabledLabels}
175
+ placeholder={placeholders.top}
169
176
  graphProps={graphProps}
170
177
  onChange={value => this.onChangeLabel(value, 'top')}
171
178
  />
@@ -174,6 +181,7 @@ export class Labels extends React.Component {
174
181
  side="bottom"
175
182
  text={value.bottom}
176
183
  disabledLabel={disabledLabels}
184
+ placeholder={placeholders.bottom}
177
185
  graphProps={graphProps}
178
186
  onChange={value => this.onChangeLabel(value, 'bottom')}
179
187
  />
@@ -182,6 +190,7 @@ export class Labels extends React.Component {
182
190
  side="right"
183
191
  text={value.right}
184
192
  disabledLabel={disabledLabels}
193
+ placeholder={placeholders.right}
185
194
  graphProps={graphProps}
186
195
  onChange={value => this.onChangeLabel(value, 'right')}
187
196
  />