@pie-lib/graphing 2.4.3-next.499 → 2.4.3-next.514
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/graph.js +1 -1
- package/lib/graph.js.map +1 -1
- package/lib/labels.js +3 -0
- package/lib/labels.js.map +1 -1
- package/package.json +4 -4
- package/src/graph.jsx +7 -1
- package/src/labels.jsx +4 -0
package/lib/graph.js
CHANGED
|
@@ -284,7 +284,7 @@ var Graph = /*#__PURE__*/function (_React$Component) {
|
|
|
284
284
|
titlePlaceholder: titlePlaceholder,
|
|
285
285
|
onChangeTitle: onChangeTitle
|
|
286
286
|
}, common), /*#__PURE__*/_react["default"].createElement("g", {
|
|
287
|
-
transform: "translate(".concat(domain.padding, ", ").concat(range.padding, ")")
|
|
287
|
+
transform: domain && domain.padding && domain.range ? "translate(".concat(domain.padding, ", ").concat(range.padding, ")") : undefined
|
|
288
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, {
|
|
289
289
|
onClick: this.onBgClick
|
|
290
290
|
}, common)), /*#__PURE__*/_react["default"].createElement("mask", {
|
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","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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"}
|
|
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\n transform={\n domain && domain.padding && domain.range\n ? `translate(${domain.padding}, ${range.padding})`\n : undefined\n }\n >\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/labels.js
CHANGED
|
@@ -158,6 +158,9 @@ var RawLabel = /*#__PURE__*/function (_React$Component) {
|
|
|
158
158
|
placeholder: _propTypes["default"].string,
|
|
159
159
|
graphProps: _plot.types.GraphPropsType.isRequired
|
|
160
160
|
});
|
|
161
|
+
(0, _defineProperty2["default"])(RawLabel, "defaultProps", {
|
|
162
|
+
onChange: function onChange() {}
|
|
163
|
+
});
|
|
161
164
|
var Label = (0, _styles.withStyles)(function (theme) {
|
|
162
165
|
return {
|
|
163
166
|
label: {
|
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","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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"}
|
|
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 static defaultProps = {\n onChange: () => {}\n };\n\n render() {\n const { disabledLabel, placeholder, text, side, graphProps, classes, onChange } = this.props;\n const { size, domain, range } = graphProps;\n const totalHeight = (size.height || 500) + (range.padding || 0) * 2;\n const totalWidth = (size.width || 500) + (domain.padding || 0) * 2;\n\n const transform = getTransform(side, totalWidth, totalHeight);\n const width = side === 'left' || side === 'right' ? totalHeight : totalWidth;\n const height = 36;\n const y = getY(side, height);\n const finalHeight = side === 'bottom' ? height + 22 : height + 18;\n\n const activePlugins = [\n 'bold',\n 'italic',\n 'underline',\n 'strikethrough',\n 'math'\n // 'languageCharacters'\n ];\n\n return (\n <foreignObject\n x={-(width / 2)}\n y={y}\n width={width}\n height={finalHeight}\n transform={transform}\n textAnchor=\"middle\"\n >\n <Readable false>\n <EditableHtml\n className={cn(\n {\n [classes.bottomLabel]: side === 'bottom',\n [classes.disabledAxisLabel]: disabledLabel\n },\n classes.axisLabel\n )}\n markup={text || ''}\n onChange={onChange}\n placeholder={!disabledLabel && placeholder}\n toolbarOpts={{\n position: side === 'bottom' ? 'top' : 'bottom',\n noBorder: true\n }}\n activePlugins={activePlugins}\n />\n </Readable>\n </foreignObject>\n );\n }\n}\n\nconst Label = withStyles(theme => ({\n label: {\n fill: color.secondary()\n },\n axisLabel: {\n fontSize: theme.typography.fontSize - 2,\n textAlign: 'center',\n padding: '0 4px'\n },\n disabledAxisLabel: {\n pointerEvents: 'none'\n },\n bottomLabel: {\n marginTop: '44px'\n }\n}))(RawLabel);\n\nexport const LabelType = {\n left: PropTypes.string,\n top: PropTypes.string,\n bottom: PropTypes.string,\n right: PropTypes.string\n};\n\nexport class Labels extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n className: PropTypes.string,\n disabledLabels: PropTypes.bool,\n placeholders: PropTypes.object,\n value: PropTypes.shape(LabelType),\n graphProps: PropTypes.object\n };\n\n static defaultProps = {};\n\n onChangeLabel = (newValue, side) => {\n const { value, onChange } = this.props;\n const labels = {\n ...value,\n [side]: newValue\n };\n\n onChange(labels);\n };\n\n render() {\n const { disabledLabels, placeholders = {}, value = {}, graphProps } = this.props;\n\n return (\n <React.Fragment>\n <Label\n key=\"left\"\n side=\"left\"\n text={value.left}\n disabledLabel={disabledLabels}\n placeholder={placeholders.left}\n graphProps={graphProps}\n onChange={value => this.onChangeLabel(value, 'left')}\n />\n <Label\n key=\"top\"\n side=\"top\"\n text={value.top}\n disabledLabel={disabledLabels}\n placeholder={placeholders.top}\n graphProps={graphProps}\n onChange={value => this.onChangeLabel(value, 'top')}\n />\n <Label\n key=\"bottom\"\n side=\"bottom\"\n text={value.bottom}\n disabledLabel={disabledLabels}\n placeholder={placeholders.bottom}\n graphProps={graphProps}\n onChange={value => this.onChangeLabel(value, 'bottom')}\n />\n <Label\n key=\"right\"\n side=\"right\"\n text={value.right}\n disabledLabel={disabledLabels}\n placeholder={placeholders.right}\n graphProps={graphProps}\n onChange={value => this.onChangeLabel(value, 'right')}\n />\n </React.Fragment>\n );\n }\n}\n\nexport default Labels;\n"],"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.
|
|
6
|
+
"version": "2.4.3-next.514+71d95747",
|
|
7
7
|
"description": "Graphing components",
|
|
8
8
|
"keywords": [
|
|
9
9
|
"react",
|
|
@@ -20,8 +20,8 @@
|
|
|
20
20
|
"@material-ui/core": "^3.8.3",
|
|
21
21
|
"@pie-lib/drag": "^1.1.52",
|
|
22
22
|
"@pie-lib/graphing-utils": "^1.1.20",
|
|
23
|
-
"@pie-lib/plot": "^2.
|
|
24
|
-
"@pie-lib/render-ui": "^4.
|
|
23
|
+
"@pie-lib/plot": "^2.1.10-next.589+71d95747",
|
|
24
|
+
"@pie-lib/render-ui": "^4.13.1",
|
|
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": "
|
|
47
|
+
"gitHead": "71d95747be019d4b1b3c097b948a8731a49ea4f9",
|
|
48
48
|
"scripts": {}
|
|
49
49
|
}
|
package/src/graph.jsx
CHANGED
|
@@ -196,7 +196,13 @@ export class Graph extends React.Component {
|
|
|
196
196
|
onChangeTitle={onChangeTitle}
|
|
197
197
|
{...common}
|
|
198
198
|
>
|
|
199
|
-
<g
|
|
199
|
+
<g
|
|
200
|
+
transform={
|
|
201
|
+
domain && domain.padding && domain.range
|
|
202
|
+
? `translate(${domain.padding}, ${range.padding})`
|
|
203
|
+
: undefined
|
|
204
|
+
}
|
|
205
|
+
>
|
|
200
206
|
<Grid {...common} />
|
|
201
207
|
<Axes {...axesSettings} {...common} />
|
|
202
208
|
<Bg {...size} onClick={this.onBgClick} {...common} />
|
package/src/labels.jsx
CHANGED
|
@@ -53,6 +53,10 @@ class RawLabel extends React.Component {
|
|
|
53
53
|
graphProps: types.GraphPropsType.isRequired
|
|
54
54
|
};
|
|
55
55
|
|
|
56
|
+
static defaultProps = {
|
|
57
|
+
onChange: () => {}
|
|
58
|
+
};
|
|
59
|
+
|
|
56
60
|
render() {
|
|
57
61
|
const { disabledLabel, placeholder, text, side, graphProps, classes, onChange } = this.props;
|
|
58
62
|
const { size, domain, range } = graphProps;
|