@pie-lib/graphing 2.4.3-next.462 → 2.4.3-next.473

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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"}
@@ -202,17 +202,26 @@ var GraphWithControls = /*#__PURE__*/function (_React$Component) {
202
202
  collapsibleToolbar = _this$props.collapsibleToolbar,
203
203
  collapsibleToolbarTitle = _this$props.collapsibleToolbarTitle,
204
204
  disabled = _this$props.disabled,
205
+ disabledLabels = _this$props.disabledLabels,
206
+ disabledTitle = _this$props.disabledTitle,
205
207
  domain = _this$props.domain,
206
208
  draggableTools = _this$props.draggableTools,
207
209
  labels = _this$props.labels,
210
+ labelsPlaceholders = _this$props.labelsPlaceholders,
211
+ onChangeLabels = _this$props.onChangeLabels,
208
212
  onChangeMarks = _this$props.onChangeMarks,
213
+ onChangeTitle = _this$props.onChangeTitle,
209
214
  onChangeTools = _this$props.onChangeTools,
210
215
  onUndo = _this$props.onUndo,
211
216
  onRedo = _this$props.onRedo,
212
217
  onReset = _this$props.onReset,
213
218
  range = _this$props.range,
214
219
  size = _this$props.size,
215
- title = _this$props.title;
220
+ showLabels = _this$props.showLabels,
221
+ showPixelGuides = _this$props.showPixelGuides,
222
+ showTitle = _this$props.showTitle,
223
+ title = _this$props.title,
224
+ titlePlaceholder = _this$props.titlePlaceholder;
216
225
  var _this$props2 = this.props,
217
226
  backgroundMarks = _this$props2.backgroundMarks,
218
227
  marks = _this$props2.marks,
@@ -264,14 +273,23 @@ var GraphWithControls = /*#__PURE__*/function (_React$Component) {
264
273
  backgroundMarks: backgroundMarks,
265
274
  coordinatesOnHover: coordinatesOnHover,
266
275
  currentTool: currentTool,
276
+ disabledLabels: disabledLabels,
277
+ disabledTitle: disabledTitle,
267
278
  domain: domain,
268
279
  labels: labels,
269
280
  labelModeEnabled: labelModeEnabled,
281
+ labelsPlaceholders: labelsPlaceholders,
270
282
  marks: marks,
271
283
  onChangeMarks: !disabled ? onChangeMarks : undefined,
284
+ onChangeLabels: onChangeLabels,
285
+ onChangeTitle: onChangeTitle,
272
286
  range: range,
273
287
  size: size,
288
+ showLabels: showLabels,
289
+ showPixelGuides: showPixelGuides,
290
+ showTitle: showTitle,
274
291
  title: title,
292
+ titlePlaceholder: titlePlaceholder,
275
293
  tools: tools
276
294
  }));
277
295
  }
@@ -290,14 +308,21 @@ exports.GraphWithControls = GraphWithControls;
290
308
  (0, _defineProperty2["default"])(GraphWithControls, "defaultProps", {
291
309
  collapsibleToolbar: false,
292
310
  collapsibleToolbarTitle: '',
311
+ disabledLabels: false,
312
+ disabledTitle: false,
313
+ showLabels: true,
314
+ showTitle: true,
293
315
  toolbarTools: []
294
316
  });
295
317
 
296
318
  var styles = function styles(theme) {
297
319
  return {
298
- graphWithControls: {},
320
+ graphWithControls: {
321
+ display: 'flex',
322
+ flexDirection: 'column',
323
+ width: 'min-content'
324
+ },
299
325
  controls: {
300
- width: 'inherit',
301
326
  display: 'flex',
302
327
  justifyContent: 'space-between',
303
328
  padding: theme.spacing.unit,
@@ -312,7 +337,8 @@ var styles = function styles(theme) {
312
337
  }
313
338
  },
314
339
  expansionPanel: {
315
- backgroundColor: _renderUi.color.primaryLight()
340
+ backgroundColor: _renderUi.color.primaryLight(),
341
+ width: '100%'
316
342
  },
317
343
  summaryRoot: {
318
344
  padding: "0 ".concat(theme.spacing.unit, "px"),
@@ -323,7 +349,9 @@ var styles = function styles(theme) {
323
349
  },
324
350
  details: {
325
351
  padding: 0,
326
- marginTop: theme.spacing.unit
352
+ marginTop: theme.spacing.unit,
353
+ display: 'flex',
354
+ justifyContent: 'space-between'
327
355
  }
328
356
  };
329
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","domain","draggableTools","labels","onChangeMarks","onChangeTools","onUndo","onRedo","onReset","range","size","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 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 domain,\n draggableTools,\n labels,\n onChangeMarks,\n onChangeTools,\n onUndo,\n onRedo,\n onReset,\n range,\n size,\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 domain={domain}\n labels={labels}\n labelModeEnabled={labelModeEnabled}\n marks={marks}\n onChangeMarks={!disabled ? onChangeMarks : undefined}\n range={range}\n size={size}\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":"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"}
package/lib/graph.js CHANGED
@@ -68,17 +68,24 @@ var graphPropTypes = {
68
68
  className: _propTypes["default"].string,
69
69
  collapsibleToolbar: _propTypes["default"].bool,
70
70
  collapsibleToolbarTitle: _propTypes["default"].string,
71
+ disabledLabels: _propTypes["default"].bool,
72
+ disabledTitle: _propTypes["default"].bool,
71
73
  domain: _plot.types.DomainType,
72
74
  labels: _propTypes["default"].shape(_labels.LabelType),
73
75
  labelModeEnabled: _propTypes["default"].bool,
74
76
  coordinatesOnHover: _propTypes["default"].bool,
75
77
  marks: _propTypes["default"].array,
78
+ onChangeLabels: _propTypes["default"].func,
76
79
  onChangeMarks: _propTypes["default"].func,
80
+ onChangeTitle: _propTypes["default"].func,
77
81
  range: _plot.types.DomainType,
78
82
  size: _propTypes["default"].shape({
79
83
  width: _propTypes["default"].number.isRequired,
80
84
  height: _propTypes["default"].number.isRequired
81
85
  }),
86
+ showLabels: _propTypes["default"].bool,
87
+ showPixelGuides: _propTypes["default"].bool,
88
+ showTitle: _propTypes["default"].bool,
82
89
  title: _propTypes["default"].string,
83
90
  tools: _propTypes["default"].array
84
91
  };
@@ -237,12 +244,21 @@ var Graph = /*#__PURE__*/function (_React$Component) {
237
244
  currentTool = _this$props5.currentTool,
238
245
  coordinatesOnHover = _this$props5.coordinatesOnHover,
239
246
  size = _this$props5.size,
247
+ disabledLabels = _this$props5.disabledLabels,
248
+ disabledTitle = _this$props5.disabledTitle,
240
249
  domain = _this$props5.domain,
241
250
  backgroundMarks = _this$props5.backgroundMarks,
242
251
  range = _this$props5.range,
243
252
  title = _this$props5.title,
244
253
  labels = _this$props5.labels,
245
- labelModeEnabled = _this$props5.labelModeEnabled;
254
+ labelModeEnabled = _this$props5.labelModeEnabled,
255
+ labelsPlaceholders = _this$props5.labelsPlaceholders,
256
+ showLabels = _this$props5.showLabels,
257
+ showPixelGuides = _this$props5.showPixelGuides,
258
+ showTitle = _this$props5.showTitle,
259
+ titlePlaceholder = _this$props5.titlePlaceholder,
260
+ onChangeLabels = _this$props5.onChangeLabels,
261
+ onChangeTitle = _this$props5.onChangeTitle;
246
262
  var marks = this.props.marks;
247
263
  var graphProps = (0, _plot.createGraphProps)(domain, range, size, function () {
248
264
  return _this2.rootNode;
@@ -260,10 +276,14 @@ var Graph = /*#__PURE__*/function (_React$Component) {
260
276
  rootRef: function rootRef(r) {
261
277
  return _this2.rootNode = r;
262
278
  },
263
- title: title
264
- }, common), /*#__PURE__*/_react["default"].createElement(_labels["default"], (0, _extends2["default"])({
265
- value: labels
266
- }, common)), /*#__PURE__*/_react["default"].createElement("g", {
279
+ disabledTitle: disabledTitle,
280
+ showPixelGuides: showPixelGuides,
281
+ showLabels: showLabels,
282
+ showTitle: showTitle,
283
+ title: title,
284
+ titlePlaceholder: titlePlaceholder,
285
+ onChangeTitle: onChangeTitle
286
+ }, common), /*#__PURE__*/_react["default"].createElement("g", {
267
287
  transform: "translate(".concat(domain.padding, ", ").concat(range.padding, ")")
268
288
  }, /*#__PURE__*/_react["default"].createElement(_grid["default"], common), /*#__PURE__*/_react["default"].createElement(_axis.Axes, (0, _extends2["default"])({}, axesSettings, common)), /*#__PURE__*/_react["default"].createElement(_bg["default"], (0, _extends2["default"])({}, size, {
269
289
  onClick: this.onBgClick
@@ -312,7 +332,12 @@ var Graph = /*#__PURE__*/function (_React$Component) {
312
332
  style: {
313
333
  pointerEvents: 'none'
314
334
  }
315
- })))));
335
+ })))), showLabels && /*#__PURE__*/_react["default"].createElement(_labels["default"], (0, _extends2["default"])({
336
+ disabledLabels: disabledLabels,
337
+ placeholders: labelsPlaceholders,
338
+ value: labels,
339
+ onChange: onChangeLabels
340
+ }, common)));
316
341
  }
317
342
  }]);
318
343
  return Graph;
@@ -323,7 +348,9 @@ exports.Graph = Graph;
323
348
  currentTool: _propTypes["default"].object
324
349
  }));
325
350
  (0, _defineProperty2["default"])(Graph, "defaultProps", {
326
- onChangeMarks: function onChangeMarks() {}
351
+ onChangeMarks: function onChangeMarks() {},
352
+ disabledLabels: false,
353
+ disabledTitle: false
327
354
  });
328
355
  var _default = Graph;
329
356
  exports["default"] = _default;
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","domain","types","DomainType","labels","LabelType","labelModeEnabled","coordinatesOnHover","marks","onChangeMarks","func","range","size","width","number","isRequired","height","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 domain: types.DomainType,\n labels: PropTypes.shape(LabelType),\n labelModeEnabled: PropTypes.bool,\n coordinatesOnHover: PropTypes.bool,\n marks: PropTypes.array,\n onChangeMarks: PropTypes.func,\n range: types.DomainType,\n size: PropTypes.shape({\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired\n }),\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 };\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 domain,\n backgroundMarks,\n range,\n title,\n labels,\n labelModeEnabled\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 rootRef={r => (this.rootNode = r)} title={title} {...common}>\n <Labels value={labels} {...common} />\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 </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,