@pie-lib/graphing 3.2.0-next.36 → 3.2.0-next.38
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/lib/graph.js +14 -0
- package/lib/graph.js.map +1 -1
- package/lib/tools/circle/component.js +1 -2
- package/lib/tools/circle/component.js.map +1 -1
- package/lib/tools/point/component.js +24 -14
- package/lib/tools/point/component.js.map +1 -1
- package/lib/tools/polygon/component.js +2 -3
- package/lib/tools/polygon/component.js.map +1 -1
- package/lib/tools/shared/line/index.js +11 -7
- package/lib/tools/shared/line/index.js.map +1 -1
- package/package.json +3 -3
- package/src/graph.jsx +17 -0
- package/src/tools/circle/component.jsx +1 -2
- package/src/tools/point/component.jsx +11 -4
- package/src/tools/polygon/component.jsx +2 -2
- package/src/tools/shared/line/index.jsx +10 -7
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,18 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [3.2.0-next.38](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@3.2.0-next.37...@pie-lib/graphing@3.2.0-next.38) (2026-04-24)
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
- enhance drag handling and prevent click interference in draggable components. fix auto input label PIE-428 ([cc06766](https://github.com/pie-framework/pie-lib/commit/cc06766fab6960356f3e7f8975da1f12f3358a9e))
|
|
11
|
+
|
|
12
|
+
# [3.2.0-next.37](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@3.2.0-next.36...@pie-lib/graphing@3.2.0-next.37) (2026-04-24)
|
|
13
|
+
|
|
14
|
+
### Bug Fixes
|
|
15
|
+
|
|
16
|
+
- ensure onClick is called for existing mark points/lines and does not interfere with drag PIE-426 PIE-427 ([1cb4f00](https://github.com/pie-framework/pie-lib/commit/1cb4f00118ff24ddffe4c1ee2a091daccafa4d15))
|
|
17
|
+
|
|
6
18
|
# [3.2.0-next.36](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@3.2.0-next.35...@pie-lib/graphing@3.2.0-next.36) (2026-04-23)
|
|
7
19
|
|
|
8
20
|
### Bug Fixes
|
package/lib/graph.js
CHANGED
|
@@ -92,6 +92,17 @@ var Graph = exports.Graph = /*#__PURE__*/function (_React$Component) {
|
|
|
92
92
|
(0, _classCallCheck2["default"])(this, Graph);
|
|
93
93
|
_this = _callSuper(this, Graph, [props]);
|
|
94
94
|
(0, _defineProperty2["default"])(_this, "state", {});
|
|
95
|
+
(0, _defineProperty2["default"])(_this, "_justDragged", false);
|
|
96
|
+
(0, _defineProperty2["default"])(_this, "startDrag", function () {
|
|
97
|
+
_this._justDragged = false;
|
|
98
|
+
});
|
|
99
|
+
(0, _defineProperty2["default"])(_this, "stopDrag", function () {
|
|
100
|
+
_this._justDragged = true;
|
|
101
|
+
// Reset after a short delay — long enough for any trailing click/bg-click to fire first.
|
|
102
|
+
setTimeout(function () {
|
|
103
|
+
_this._justDragged = false;
|
|
104
|
+
}, 300);
|
|
105
|
+
});
|
|
95
106
|
(0, _defineProperty2["default"])(_this, "componentDidMount", function () {
|
|
96
107
|
return _this.setState({
|
|
97
108
|
labelNode: _this.labelNode
|
|
@@ -155,6 +166,9 @@ var Graph = exports.Graph = /*#__PURE__*/function (_React$Component) {
|
|
|
155
166
|
labelModeEnabled = _this$props4.labelModeEnabled,
|
|
156
167
|
currentTool = _this$props4.currentTool,
|
|
157
168
|
marks = _this$props4.marks;
|
|
169
|
+
if (_this._justDragged) {
|
|
170
|
+
return;
|
|
171
|
+
}
|
|
158
172
|
if (labelModeEnabled || !currentTool || [null, undefined].includes(x) || [null, undefined].includes(y)) {
|
|
159
173
|
return;
|
|
160
174
|
}
|
package/lib/graph.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph.js","names":["_react","_interopRequireDefault","require","_propTypes","_lodashEs","_plot","_debug","_axis","_grid","_labels","_bg","_utils","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","_callSuper","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","Boolean","prototype","valueOf","call","log","debug","graphPropTypes","exports","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","limitLabeling","getMaskSize","x","y","removeBuildingToolIfCurrentToolDiffers","_ref","currentTool","removeIncompleteTool","buildingMark","m","building","newMarks","cloneDeep","type","index","findIndex","isEqual","splice","Graph","_React$Component","props","_this","_classCallCheck2","setState","labelNode","oldMark","newMark","_this$props","isDuplicatedMark","markData","_this$props2","updatedMark","complete","updateMarks","existing","update","addIfMissing","undefined","_this$props3","concat","_toConsumableArray2","mark","tool","find","Component","point","_ref2","_this$props4","includes","addPoint","maskUid","generateMaskId","_inherits2","_createClass2","key","value","Math","random","toFixed","render","_this2","_this$props5","labelsPlaceholders","titlePlaceholder","_this$props5$mathMlOp","mathMlOptions","graphProps","createGraphProps","rootNode","maskSize","common","createElement","Root","_extends2","rootRef","transform","padding","Axes","onClick","onBgClick","id","fill","mask","map","getComponent","markType","disabled","isBackground","state","onChange","changeMark","onComplete","completeMark","onDragStart","startDrag","onDragStop","stopDrag","isToolActive","ref","style","pointerEvents","fontSize","React","object","_default"],"sources":["../src/graph.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { cloneDeep, isEqual } from 'lodash-es';\nimport { createGraphProps, Root, types } from '@pie-lib/plot';\nimport debug from 'debug';\n\nimport { Axes, AxisPropTypes } from './axis';\nimport Grid from './grid';\nimport { LabelType } from './labels';\nimport Bg from './bg';\nimport { isDuplicatedMark } from './utils';\n\nconst log = debug('pie-lib:graphing:graph');\n\nexport const graphPropTypes = {\n axesSettings: PropTypes.shape(AxisPropTypes),\n backgroundMarks: PropTypes.array,\n className: PropTypes.string,\n collapsibleToolbar: PropTypes.bool,\n collapsibleToolbarTitle: PropTypes.string,\n disabledLabels: PropTypes.bool,\n disabledTitle: PropTypes.bool,\n domain: types.DomainType,\n labels: PropTypes.shape(LabelType),\n labelModeEnabled: PropTypes.bool,\n coordinatesOnHover: PropTypes.bool,\n marks: PropTypes.array,\n onChangeLabels: PropTypes.func,\n onChangeMarks: PropTypes.func,\n onChangeTitle: PropTypes.func,\n range: types.DomainType,\n size: PropTypes.shape({\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n }),\n showLabels: PropTypes.bool,\n showPixelGuides: PropTypes.bool,\n showTitle: PropTypes.bool,\n title: PropTypes.string,\n tools: PropTypes.array,\n limitLabeling: PropTypes.bool,\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, onChangeMarks, removeIncompleteTool }) => {\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 if (removeIncompleteTool && !isEqual(newMarks, marks)) {\n onChangeMarks(newMarks);\n }\n return newMarks;\n};\n\nexport class Graph extends React.Component {\n constructor(props) {\n super(props);\n this.maskUid = this.generateMaskId();\n }\n\n static propTypes = {\n ...graphPropTypes,\n currentTool: PropTypes.object,\n };\n\n static defaultProps = {\n onChangeMarks: () => {},\n disabledLabels: false,\n disabledTitle: false,\n };\n\n state = {};\n\n generateMaskId() {\n return 'graph-' + (Math.random() * 10000).toFixed();\n }\n\n componentDidMount = () => this.setState({ labelNode: this.labelNode });\n\n changeMark = (oldMark, newMark) => {\n const { onChangeMarks, marks } = this.props;\n let newMarks = cloneDeep(marks);\n\n const index = newMarks.findIndex((m) => isEqual(m, oldMark));\n\n if (index >= 0 && !isDuplicatedMark(newMark, marks, oldMark)) {\n newMarks.splice(index, 1, newMark);\n\n onChangeMarks(newMarks);\n }\n };\n\n completeMark = (markData) => {\n const { currentTool, marks } = this.props;\n const buildingMark = marks.filter((m) => m.building)[0];\n\n if (!buildingMark || !currentTool) return;\n\n const updatedMark = currentTool.complete(buildingMark, markData);\n\n this.updateMarks(buildingMark, updatedMark);\n };\n\n updateMarks = (existing, update, addIfMissing = false) => {\n const { onChangeMarks, marks } = this.props;\n let newMarks = cloneDeep(marks);\n\n if (!update || (!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 if (labelModeEnabled || !currentTool || [null, undefined].includes(x) || [null, undefined].includes(y)) {\n return;\n }\n\n log('[onBgClick] x,y: ', x, y);\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 limitLabeling,\n showLabels,\n showPixelGuides,\n showTitle,\n titlePlaceholder,\n onChangeLabels,\n onChangeTitle,\n mathMlOptions = {},\n onChangeMarks,\n removeIncompleteTool,\n } = this.props;\n let { marks } = this.props;\n\n const graphProps = createGraphProps(domain, range, size, () => this.rootNode);\n\n const maskSize = getMaskSize(size);\n const common = { graphProps, labelModeEnabled, limitLabeling };\n\n marks = removeBuildingToolIfCurrentToolDiffers({\n marks: marks || [],\n currentTool,\n onChangeMarks,\n removeIncompleteTool,\n });\n\n return (\n <Root\n rootRef={(r) => (this.rootNode = r)}\n disabledTitle={disabledTitle}\n disabledLabels={disabledLabels}\n labels={labels}\n labelsPlaceholders={labelsPlaceholders || {}}\n showPixelGuides={showPixelGuides}\n showLabels={showLabels}\n showTitle={showTitle}\n title={title}\n titlePlaceholder={titlePlaceholder}\n onChangeTitle={onChangeTitle}\n onChangeLabels={onChangeLabels}\n mathMlOptions={mathMlOptions}\n {...common}\n >\n <g\n transform={\n domain && domain.padding && domain.range ? `translate(${domain.padding}, ${range.padding})` : undefined\n }\n >\n <Grid {...common} />\n <Axes {...axesSettings} {...common} />\n <Bg {...size} onClick={this.onBgClick} {...common} />\n <mask id={`${this.maskUid}`}>\n <rect {...maskSize} fill=\"white\" /> {/* TODO hardcoded color */}\n </mask>\n\n <g id=\"marks\" mask={`url('#${this.maskUid}')`}>\n {(backgroundMarks || []).map((m, index) => {\n const Component = this.getComponent(m);\n const markType = m.type;\n\n return (\n <Component\n key={`${markType}-${index}-bg`}\n mark={{ ...m, disabled: true, isBackground: true }}\n labelNode={this.state.labelNode}\n onClick={this.onBgClick}\n {...common}\n />\n );\n })}\n\n {marks.map((m, index) => {\n const Component = this.getComponent(m);\n const markType = m.type;\n\n return (\n <Component\n key={`${markType}-${index}`}\n mark={m}\n coordinatesOnHover={coordinatesOnHover}\n onChange={this.changeMark}\n onComplete={this.completeMark}\n onClick={this.onBgClick}\n onDragStart={this.startDrag}\n onDragStop={this.stopDrag}\n labelNode={this.state.labelNode}\n isToolActive={currentTool && markType === currentTool.type}\n {...common}\n />\n );\n })}\n <foreignObject\n ref={(labelNode) => (this.labelNode = labelNode)}\n x=\"0\"\n y=\"0\"\n {...size}\n style={{ pointerEvents: 'none', fontSize: '14px' }}\n />\n </g>\n </g>\n </Root>\n );\n }\n}\n\nexport default Graph;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"graph.js","names":["_react","_interopRequireDefault","require","_propTypes","_lodashEs","_plot","_debug","_axis","_grid","_labels","_bg","_utils","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","_callSuper","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","Boolean","prototype","valueOf","call","log","debug","graphPropTypes","exports","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","limitLabeling","getMaskSize","x","y","removeBuildingToolIfCurrentToolDiffers","_ref","currentTool","removeIncompleteTool","buildingMark","m","building","newMarks","cloneDeep","type","index","findIndex","isEqual","splice","Graph","_React$Component","props","_this","_classCallCheck2","_justDragged","setTimeout","setState","labelNode","oldMark","newMark","_this$props","isDuplicatedMark","markData","_this$props2","updatedMark","complete","updateMarks","existing","update","addIfMissing","undefined","_this$props3","concat","_toConsumableArray2","mark","tool","find","Component","point","_ref2","_this$props4","includes","addPoint","maskUid","generateMaskId","_inherits2","_createClass2","key","value","Math","random","toFixed","render","_this2","_this$props5","labelsPlaceholders","titlePlaceholder","_this$props5$mathMlOp","mathMlOptions","graphProps","createGraphProps","rootNode","maskSize","common","createElement","Root","_extends2","rootRef","transform","padding","Axes","onClick","onBgClick","id","fill","mask","map","getComponent","markType","disabled","isBackground","state","onChange","changeMark","onComplete","completeMark","onDragStart","startDrag","onDragStop","stopDrag","isToolActive","ref","style","pointerEvents","fontSize","React","object","_default"],"sources":["../src/graph.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { cloneDeep, isEqual } from 'lodash-es';\nimport { createGraphProps, Root, types } from '@pie-lib/plot';\nimport debug from 'debug';\n\nimport { Axes, AxisPropTypes } from './axis';\nimport Grid from './grid';\nimport { LabelType } from './labels';\nimport Bg from './bg';\nimport { isDuplicatedMark } from './utils';\n\nconst log = debug('pie-lib:graphing:graph');\n\nexport const graphPropTypes = {\n axesSettings: PropTypes.shape(AxisPropTypes),\n backgroundMarks: PropTypes.array,\n className: PropTypes.string,\n collapsibleToolbar: PropTypes.bool,\n collapsibleToolbarTitle: PropTypes.string,\n disabledLabels: PropTypes.bool,\n disabledTitle: PropTypes.bool,\n domain: types.DomainType,\n labels: PropTypes.shape(LabelType),\n labelModeEnabled: PropTypes.bool,\n coordinatesOnHover: PropTypes.bool,\n marks: PropTypes.array,\n onChangeLabels: PropTypes.func,\n onChangeMarks: PropTypes.func,\n onChangeTitle: PropTypes.func,\n range: types.DomainType,\n size: PropTypes.shape({\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n }),\n showLabels: PropTypes.bool,\n showPixelGuides: PropTypes.bool,\n showTitle: PropTypes.bool,\n title: PropTypes.string,\n tools: PropTypes.array,\n limitLabeling: PropTypes.bool,\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, onChangeMarks, removeIncompleteTool }) => {\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 if (removeIncompleteTool && !isEqual(newMarks, marks)) {\n onChangeMarks(newMarks);\n }\n return newMarks;\n};\n\nexport class Graph extends React.Component {\n constructor(props) {\n super(props);\n this.maskUid = this.generateMaskId();\n }\n\n static propTypes = {\n ...graphPropTypes,\n currentTool: PropTypes.object,\n };\n\n static defaultProps = {\n onChangeMarks: () => {},\n disabledLabels: false,\n disabledTitle: false,\n };\n\n state = {};\n _justDragged = false;\n\n startDrag = () => {\n this._justDragged = false;\n };\n\n stopDrag = () => {\n this._justDragged = true;\n // Reset after a short delay — long enough for any trailing click/bg-click to fire first.\n setTimeout(() => {\n this._justDragged = false;\n }, 300);\n };\n\n generateMaskId() {\n return 'graph-' + (Math.random() * 10000).toFixed();\n }\n\n componentDidMount = () => this.setState({ labelNode: this.labelNode });\n\n changeMark = (oldMark, newMark) => {\n const { onChangeMarks, marks } = this.props;\n let newMarks = cloneDeep(marks);\n\n const index = newMarks.findIndex((m) => isEqual(m, oldMark));\n\n if (index >= 0 && !isDuplicatedMark(newMark, marks, oldMark)) {\n newMarks.splice(index, 1, newMark);\n\n onChangeMarks(newMarks);\n }\n };\n\n completeMark = (markData) => {\n const { currentTool, marks } = this.props;\n const buildingMark = marks.filter((m) => m.building)[0];\n\n if (!buildingMark || !currentTool) return;\n\n const updatedMark = currentTool.complete(buildingMark, markData);\n\n this.updateMarks(buildingMark, updatedMark);\n };\n\n updateMarks = (existing, update, addIfMissing = false) => {\n const { onChangeMarks, marks } = this.props;\n let newMarks = cloneDeep(marks);\n\n if (!update || (!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 if (this._justDragged) {\n return;\n }\n\n if (labelModeEnabled || !currentTool || [null, undefined].includes(x) || [null, undefined].includes(y)) {\n return;\n }\n\n log('[onBgClick] x,y: ', x, y);\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 limitLabeling,\n showLabels,\n showPixelGuides,\n showTitle,\n titlePlaceholder,\n onChangeLabels,\n onChangeTitle,\n mathMlOptions = {},\n onChangeMarks,\n removeIncompleteTool,\n } = this.props;\n let { marks } = this.props;\n\n const graphProps = createGraphProps(domain, range, size, () => this.rootNode);\n\n const maskSize = getMaskSize(size);\n const common = { graphProps, labelModeEnabled, limitLabeling };\n\n marks = removeBuildingToolIfCurrentToolDiffers({\n marks: marks || [],\n currentTool,\n onChangeMarks,\n removeIncompleteTool,\n });\n\n return (\n <Root\n rootRef={(r) => (this.rootNode = r)}\n disabledTitle={disabledTitle}\n disabledLabels={disabledLabels}\n labels={labels}\n labelsPlaceholders={labelsPlaceholders || {}}\n showPixelGuides={showPixelGuides}\n showLabels={showLabels}\n showTitle={showTitle}\n title={title}\n titlePlaceholder={titlePlaceholder}\n onChangeTitle={onChangeTitle}\n onChangeLabels={onChangeLabels}\n mathMlOptions={mathMlOptions}\n {...common}\n >\n <g\n transform={\n domain && domain.padding && domain.range ? `translate(${domain.padding}, ${range.padding})` : undefined\n }\n >\n <Grid {...common} />\n <Axes {...axesSettings} {...common} />\n <Bg {...size} onClick={this.onBgClick} {...common} />\n <mask id={`${this.maskUid}`}>\n <rect {...maskSize} fill=\"white\" /> {/* TODO hardcoded color */}\n </mask>\n\n <g id=\"marks\" mask={`url('#${this.maskUid}')`}>\n {(backgroundMarks || []).map((m, index) => {\n const Component = this.getComponent(m);\n const markType = m.type;\n\n return (\n <Component\n key={`${markType}-${index}-bg`}\n mark={{ ...m, disabled: true, isBackground: true }}\n labelNode={this.state.labelNode}\n onClick={this.onBgClick}\n {...common}\n />\n );\n })}\n\n {marks.map((m, index) => {\n const Component = this.getComponent(m);\n const markType = m.type;\n\n return (\n <Component\n key={`${markType}-${index}`}\n mark={m}\n coordinatesOnHover={coordinatesOnHover}\n onChange={this.changeMark}\n onComplete={this.completeMark}\n onClick={this.onBgClick}\n onDragStart={this.startDrag}\n onDragStop={this.stopDrag}\n labelNode={this.state.labelNode}\n isToolActive={currentTool && markType === currentTool.type}\n {...common}\n />\n );\n })}\n <foreignObject\n ref={(labelNode) => (this.labelNode = labelNode)}\n x=\"0\"\n y=\"0\"\n {...size}\n style={{ pointerEvents: 'none', fontSize: '14px' }}\n />\n </g>\n </g>\n </Root>\n );\n }\n}\n\nexport default Graph;\n"],"mappings":";;;;;;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAL,sBAAA,CAAAC,OAAA;AAEA,IAAAK,KAAA,GAAAL,OAAA;AACA,IAAAM,KAAA,GAAAP,sBAAA,CAAAC,OAAA;AACA,IAAAO,OAAA,GAAAP,OAAA;AACA,IAAAQ,GAAA,GAAAT,sBAAA,CAAAC,OAAA;AACA,IAAAS,MAAA,GAAAT,OAAA;AAA2C,SAAAU,QAAAC,CAAA,EAAAC,CAAA,QAAAC,CAAA,GAAAC,MAAA,CAAAC,IAAA,CAAAJ,CAAA,OAAAG,MAAA,CAAAE,qBAAA,QAAAC,CAAA,GAAAH,MAAA,CAAAE,qBAAA,CAAAL,CAAA,GAAAC,CAAA,KAAAK,CAAA,GAAAA,CAAA,CAAAC,MAAA,WAAAN,CAAA,WAAAE,MAAA,CAAAK,wBAAA,CAAAR,CAAA,EAAAC,CAAA,EAAAQ,UAAA,OAAAP,CAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,CAAA,EAAAI,CAAA,YAAAJ,CAAA;AAAA,SAAAU,cAAAZ,CAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAY,SAAA,CAAAC,MAAA,EAAAb,CAAA,UAAAC,CAAA,WAAAW,SAAA,CAAAZ,CAAA,IAAAY,SAAA,CAAAZ,CAAA,QAAAA,CAAA,OAAAF,OAAA,CAAAI,MAAA,CAAAD,CAAA,OAAAa,OAAA,WAAAd,CAAA,QAAAe,gBAAA,aAAAhB,CAAA,EAAAC,CAAA,EAAAC,CAAA,CAAAD,CAAA,SAAAE,MAAA,CAAAc,yBAAA,GAAAd,MAAA,CAAAe,gBAAA,CAAAlB,CAAA,EAAAG,MAAA,CAAAc,yBAAA,CAAAf,CAAA,KAAAH,OAAA,CAAAI,MAAA,CAAAD,CAAA,GAAAa,OAAA,WAAAd,CAAA,IAAAE,MAAA,CAAAgB,cAAA,CAAAnB,CAAA,EAAAC,CAAA,EAAAE,MAAA,CAAAK,wBAAA,CAAAN,CAAA,EAAAD,CAAA,iBAAAD,CAAA;AAAA,SAAAoB,WAAAlB,CAAA,EAAAI,CAAA,EAAAN,CAAA,WAAAM,CAAA,OAAAe,gBAAA,aAAAf,CAAA,OAAAgB,2BAAA,aAAApB,CAAA,EAAAqB,yBAAA,KAAAC,OAAA,CAAAC,SAAA,CAAAnB,CAAA,EAAAN,CAAA,YAAAqB,gBAAA,aAAAnB,CAAA,EAAAwB,WAAA,IAAApB,CAAA,CAAAK,KAAA,CAAAT,CAAA,EAAAF,CAAA;AAAA,SAAAuB,0BAAA,cAAArB,CAAA,IAAAyB,OAAA,CAAAC,SAAA,CAAAC,OAAA,CAAAC,IAAA,CAAAN,OAAA,CAAAC,SAAA,CAAAE,OAAA,iCAAAzB,CAAA,aAAAqB,yBAAA,YAAAA,0BAAA,aAAArB,CAAA;AAE3C,IAAM6B,GAAG,GAAG,IAAAC,iBAAK,EAAC,wBAAwB,CAAC;AAEpC,IAAMC,cAAc,GAAAC,OAAA,CAAAD,cAAA,GAAG;EAC5BE,YAAY,EAAEC,qBAAS,CAACC,KAAK,CAACC,mBAAa,CAAC;EAC5CC,eAAe,EAAEH,qBAAS,CAACI,KAAK;EAChCC,SAAS,EAAEL,qBAAS,CAACM,MAAM;EAC3BC,kBAAkB,EAAEP,qBAAS,CAACQ,IAAI;EAClCC,uBAAuB,EAAET,qBAAS,CAACM,MAAM;EACzCI,cAAc,EAAEV,qBAAS,CAACQ,IAAI;EAC9BG,aAAa,EAAEX,qBAAS,CAACQ,IAAI;EAC7BI,MAAM,EAAEC,WAAK,CAACC,UAAU;EACxBC,MAAM,EAAEf,qBAAS,CAACC,KAAK,CAACe,iBAAS,CAAC;EAClCC,gBAAgB,EAAEjB,qBAAS,CAACQ,IAAI;EAChCU,kBAAkB,EAAElB,qBAAS,CAACQ,IAAI;EAClCW,KAAK,EAAEnB,qBAAS,CAACI,KAAK;EACtBgB,cAAc,EAAEpB,qBAAS,CAACqB,IAAI;EAC9BC,aAAa,EAAEtB,qBAAS,CAACqB,IAAI;EAC7BE,aAAa,EAAEvB,qBAAS,CAACqB,IAAI;EAC7BG,KAAK,EAAEX,WAAK,CAACC,UAAU;EACvBW,IAAI,EAAEzB,qBAAS,CAACC,KAAK,CAAC;IACpByB,KAAK,EAAE1B,qBAAS,CAAC2B,MAAM,CAACC,UAAU;IAClCC,MAAM,EAAE7B,qBAAS,CAAC2B,MAAM,CAACC;EAC3B,CAAC,CAAC;EACFE,UAAU,EAAE9B,qBAAS,CAACQ,IAAI;EAC1BuB,eAAe,EAAE/B,qBAAS,CAACQ,IAAI;EAC/BwB,SAAS,EAAEhC,qBAAS,CAACQ,IAAI;EACzByB,KAAK,EAAEjC,qBAAS,CAACM,MAAM;EACvB4B,KAAK,EAAElC,qBAAS,CAACI,KAAK;EACtB+B,aAAa,EAAEnC,qBAAS,CAACQ;AAC3B,CAAC;AAED,IAAM4B,WAAW,GAAG,SAAdA,WAAWA,CAAIX,IAAI;EAAA,OAAM;IAC7BY,CAAC,EAAE,CAAC,EAAE;IACNC,CAAC,EAAE,CAAC,EAAE;IACNZ,KAAK,EAAED,IAAI,CAACC,KAAK,GAAG,EAAE;IACtBG,MAAM,EAAEJ,IAAI,CAACI,MAAM,GAAG;EACxB,CAAC;AAAA,CAAC;AAEK,IAAMU,sCAAsC,GAAAzC,OAAA,CAAAyC,sCAAA,GAAG,SAAzCA,sCAAsCA,CAAAC,IAAA,EAAoE;EAAA,IAA9DrB,KAAK,GAAAqB,IAAA,CAALrB,KAAK;IAAEsB,WAAW,GAAAD,IAAA,CAAXC,WAAW;IAAEnB,aAAa,GAAAkB,IAAA,CAAblB,aAAa;IAAEoB,oBAAoB,GAAAF,IAAA,CAApBE,oBAAoB;EAC9G,IAAMC,YAAY,GAAGxB,KAAK,CAAChD,MAAM,CAAC,UAACyE,CAAC;IAAA,OAAKA,CAAC,CAACC,QAAQ;EAAA,EAAC,CAAC,CAAC,CAAC;EACvD,IAAIC,QAAQ,GAAG,IAAAC,mBAAS,EAAC5B,KAAK,CAAC;EAE/B,IAAIwB,YAAY,IAAIF,WAAW,IAAIE,YAAY,CAACK,IAAI,KAAKP,WAAW,CAACO,IAAI,EAAE;IACzE,IAAMC,KAAK,GAAGH,QAAQ,CAACI,SAAS,CAAC,UAACN,CAAC;MAAA,OAAK,IAAAO,iBAAO,EAACP,CAAC,EAAED,YAAY,CAAC;IAAA,EAAC;IAEjE,IAAIM,KAAK,IAAI,CAAC,EAAE;MACdH,QAAQ,CAACM,MAAM,CAACH,KAAK,EAAE,CAAC,CAAC;IAC3B;EACF;EACA,IAAIP,oBAAoB,IAAI,CAAC,IAAAS,iBAAO,EAACL,QAAQ,EAAE3B,KAAK,CAAC,EAAE;IACrDG,aAAa,CAACwB,QAAQ,CAAC;EACzB;EACA,OAAOA,QAAQ;AACjB,CAAC;AAAC,IAEWO,KAAK,GAAAvD,OAAA,CAAAuD,KAAA,0BAAAC,gBAAA;EAChB,SAAAD,MAAYE,KAAK,EAAE;IAAA,IAAAC,KAAA;IAAA,IAAAC,gBAAA,mBAAAJ,KAAA;IACjBG,KAAA,GAAAxE,UAAA,OAAAqE,KAAA,GAAME,KAAK;IAAE,IAAA3E,gBAAA,aAAA4E,KAAA,WAeP,CAAC,CAAC;IAAA,IAAA5E,gBAAA,aAAA4E,KAAA,kBACK,KAAK;IAAA,IAAA5E,gBAAA,aAAA4E,KAAA,eAER,YAAM;MAChBA,KAAA,CAAKE,YAAY,GAAG,KAAK;IAC3B,CAAC;IAAA,IAAA9E,gBAAA,aAAA4E,KAAA,cAEU,YAAM;MACfA,KAAA,CAAKE,YAAY,GAAG,IAAI;MACxB;MACAC,UAAU,CAAC,YAAM;QACfH,KAAA,CAAKE,YAAY,GAAG,KAAK;MAC3B,CAAC,EAAE,GAAG,CAAC;IACT,CAAC;IAAA,IAAA9E,gBAAA,aAAA4E,KAAA,uBAMmB;MAAA,OAAMA,KAAA,CAAKI,QAAQ,CAAC;QAAEC,SAAS,EAAEL,KAAA,CAAKK;MAAU,CAAC,CAAC;IAAA;IAAA,IAAAjF,gBAAA,aAAA4E,KAAA,gBAEzD,UAACM,OAAO,EAAEC,OAAO,EAAK;MACjC,IAAAC,WAAA,GAAiCR,KAAA,CAAKD,KAAK;QAAnCjC,aAAa,GAAA0C,WAAA,CAAb1C,aAAa;QAAEH,KAAK,GAAA6C,WAAA,CAAL7C,KAAK;MAC5B,IAAI2B,QAAQ,GAAG,IAAAC,mBAAS,EAAC5B,KAAK,CAAC;MAE/B,IAAM8B,KAAK,GAAGH,QAAQ,CAACI,SAAS,CAAC,UAACN,CAAC;QAAA,OAAK,IAAAO,iBAAO,EAACP,CAAC,EAAEkB,OAAO,CAAC;MAAA,EAAC;MAE5D,IAAIb,KAAK,IAAI,CAAC,IAAI,CAAC,IAAAgB,uBAAgB,EAACF,OAAO,EAAE5C,KAAK,EAAE2C,OAAO,CAAC,EAAE;QAC5DhB,QAAQ,CAACM,MAAM,CAACH,KAAK,EAAE,CAAC,EAAEc,OAAO,CAAC;QAElCzC,aAAa,CAACwB,QAAQ,CAAC;MACzB;IACF,CAAC;IAAA,IAAAlE,gBAAA,aAAA4E,KAAA,kBAEc,UAACU,QAAQ,EAAK;MAC3B,IAAAC,YAAA,GAA+BX,KAAA,CAAKD,KAAK;QAAjCd,WAAW,GAAA0B,YAAA,CAAX1B,WAAW;QAAEtB,KAAK,GAAAgD,YAAA,CAALhD,KAAK;MAC1B,IAAMwB,YAAY,GAAGxB,KAAK,CAAChD,MAAM,CAAC,UAACyE,CAAC;QAAA,OAAKA,CAAC,CAACC,QAAQ;MAAA,EAAC,CAAC,CAAC,CAAC;MAEvD,IAAI,CAACF,YAAY,IAAI,CAACF,WAAW,EAAE;MAEnC,IAAM2B,WAAW,GAAG3B,WAAW,CAAC4B,QAAQ,CAAC1B,YAAY,EAAEuB,QAAQ,CAAC;MAEhEV,KAAA,CAAKc,WAAW,CAAC3B,YAAY,EAAEyB,WAAW,CAAC;IAC7C,CAAC;IAAA,IAAAxF,gBAAA,aAAA4E,KAAA,iBAEa,UAACe,QAAQ,EAAEC,MAAM,EAA2B;MAAA,IAAzBC,YAAY,GAAAhG,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAiG,SAAA,GAAAjG,SAAA,MAAG,KAAK;MACnD,IAAAkG,YAAA,GAAiCnB,KAAA,CAAKD,KAAK;QAAnCjC,aAAa,GAAAqD,YAAA,CAAbrD,aAAa;QAAEH,KAAK,GAAAwD,YAAA,CAALxD,KAAK;MAC5B,IAAI2B,QAAQ,GAAG,IAAAC,mBAAS,EAAC5B,KAAK,CAAC;MAE/B,IAAI,CAACqD,MAAM,IAAK,CAACA,MAAM,CAAC3B,QAAQ,IAAI,IAAAoB,uBAAgB,EAACO,MAAM,EAAErD,KAAK,CAAE,EAAE;QACpE;MACF;MAEA,IAAM8B,KAAK,GAAGH,QAAQ,CAACI,SAAS,CAAC,UAACN,CAAC;QAAA,OAAK,IAAAO,iBAAO,EAACP,CAAC,EAAE2B,QAAQ,CAAC;MAAA,EAAC;MAE7D,IAAItB,KAAK,IAAI,CAAC,EAAE;QACdH,QAAQ,CAACM,MAAM,CAACH,KAAK,EAAE,CAAC,EAAEuB,MAAM,CAAC;QAEjClD,aAAa,CAACwB,QAAQ,CAAC;MACzB,CAAC,MAAM,IAAI2B,YAAY,EAAE;QACvBnD,aAAa,IAAAsD,MAAA,KAAAC,mBAAA,aAAK/B,QAAQ,IAAE0B,MAAM,EAAC,CAAC;MACtC;IACF,CAAC;IAAA,IAAA5F,gBAAA,aAAA4E,KAAA,kBAEc,UAACsB,IAAI,EAAK;MACvB,IAAI,CAACA,IAAI,EAAE,OAAO,IAAI;MAEtB,IAAMC,IAAI,GAAG,CAACvB,KAAA,CAAKD,KAAK,CAACrB,KAAK,IAAI,EAAE,EAAE8C,IAAI,CAAC,UAAClH,CAAC;QAAA,OAAKA,CAAC,CAACkF,IAAI,KAAK8B,IAAI,CAAC9B,IAAI;MAAA,EAAC;MAEvE,OAAQ+B,IAAI,IAAIA,IAAI,CAACE,SAAS,IAAK,IAAI;IACzC,CAAC;IAAA,IAAArG,gBAAA,aAAA4E,KAAA,eAEW,UAAC0B,KAAK,EAAK;MACrB,IAAAC,KAAA,GAAiBD,KAAK,IAAI,CAAC,CAAC;QAApB7C,CAAC,GAAA8C,KAAA,CAAD9C,CAAC;QAAEC,CAAC,GAAA6C,KAAA,CAAD7C,CAAC;MACZ,IAAA8C,YAAA,GAAiD5B,KAAA,CAAKD,KAAK;QAAnDtC,gBAAgB,GAAAmE,YAAA,CAAhBnE,gBAAgB;QAAEwB,WAAW,GAAA2C,YAAA,CAAX3C,WAAW;QAAEtB,KAAK,GAAAiE,YAAA,CAALjE,KAAK;MAE5C,IAAIqC,KAAA,CAAKE,YAAY,EAAE;QACrB;MACF;MAEA,IAAIzC,gBAAgB,IAAI,CAACwB,WAAW,IAAI,CAAC,IAAI,EAAEiC,SAAS,CAAC,CAACW,QAAQ,CAAChD,CAAC,CAAC,IAAI,CAAC,IAAI,EAAEqC,SAAS,CAAC,CAACW,QAAQ,CAAC/C,CAAC,CAAC,EAAE;QACtG;MACF;MAEA3C,GAAG,CAAC,mBAAmB,EAAE0C,CAAC,EAAEC,CAAC,CAAC;MAE9B,IAAMK,YAAY,GAAGxB,KAAK,CAAChD,MAAM,CAAC,UAACyE,CAAC;QAAA,OAAKA,CAAC,CAACC,QAAQ;MAAA,EAAC,CAAC,CAAC,CAAC;MACvD,IAAIuB,WAAW;;MAEf;MACA,IAAIzB,YAAY,IAAIF,WAAW,IAAIE,YAAY,CAACK,IAAI,KAAKP,WAAW,CAACO,IAAI,EAAE;QACzEoB,WAAW,GAAG3B,WAAW,CAAC6C,QAAQ,CAAC;UAAEjD,CAAC,EAADA,CAAC;UAAEC,CAAC,EAADA;QAAE,CAAC,EAAA9D,aAAA,KAAOmE,YAAY,CAAE,CAAC;MACnE,CAAC,MAAM;QACLyB,WAAW,GAAG3B,WAAW,CAAC6C,QAAQ,CAAC;UAAEjD,CAAC,EAADA,CAAC;UAAEC,CAAC,EAADA;QAAE,CAAC,EAAEoC,SAAS,CAAC;MACzD;MAEAlB,KAAA,CAAKc,WAAW,CAAC3B,YAAY,EAAEyB,WAAW,EAAE,IAAI,CAAC;IACnD,CAAC;IA/GCZ,KAAA,CAAK+B,OAAO,GAAG/B,KAAA,CAAKgC,cAAc,CAAC,CAAC;IAAC,OAAAhC,KAAA;EACvC;EAAC,IAAAiC,UAAA,aAAApC,KAAA,EAAAC,gBAAA;EAAA,WAAAoC,aAAA,aAAArC,KAAA;IAAAsC,GAAA;IAAAC,KAAA,EA4BD,SAAAJ,cAAcA,CAAA,EAAG;MACf,OAAO,QAAQ,GAAG,CAACK,IAAI,CAACC,MAAM,CAAC,CAAC,GAAG,KAAK,EAAEC,OAAO,CAAC,CAAC;IACrD;EAAC;IAAAJ,GAAA;IAAAC,KAAA,EAkFD,SAAAI,MAAMA,CAAA,EAAG;MAAA,IAAAC,MAAA;MACP,IAAAC,YAAA,GAwBI,IAAI,CAAC3C,KAAK;QAvBZxD,YAAY,GAAAmG,YAAA,CAAZnG,YAAY;QACZ0C,WAAW,GAAAyD,YAAA,CAAXzD,WAAW;QACXvB,kBAAkB,GAAAgF,YAAA,CAAlBhF,kBAAkB;QAClBO,IAAI,GAAAyE,YAAA,CAAJzE,IAAI;QACJf,cAAc,GAAAwF,YAAA,CAAdxF,cAAc;QACdC,aAAa,GAAAuF,YAAA,CAAbvF,aAAa;QACbC,MAAM,GAAAsF,YAAA,CAANtF,MAAM;QACNT,eAAe,GAAA+F,YAAA,CAAf/F,eAAe;QACfqB,KAAK,GAAA0E,YAAA,CAAL1E,KAAK;QACLS,KAAK,GAAAiE,YAAA,CAALjE,KAAK;QACLlB,MAAM,GAAAmF,YAAA,CAANnF,MAAM;QACNE,gBAAgB,GAAAiF,YAAA,CAAhBjF,gBAAgB;QAChBkF,kBAAkB,GAAAD,YAAA,CAAlBC,kBAAkB;QAClBhE,aAAa,GAAA+D,YAAA,CAAb/D,aAAa;QACbL,UAAU,GAAAoE,YAAA,CAAVpE,UAAU;QACVC,eAAe,GAAAmE,YAAA,CAAfnE,eAAe;QACfC,SAAS,GAAAkE,YAAA,CAATlE,SAAS;QACToE,gBAAgB,GAAAF,YAAA,CAAhBE,gBAAgB;QAChBhF,cAAc,GAAA8E,YAAA,CAAd9E,cAAc;QACdG,aAAa,GAAA2E,YAAA,CAAb3E,aAAa;QAAA8E,qBAAA,GAAAH,YAAA,CACbI,aAAa;QAAbA,aAAa,GAAAD,qBAAA,cAAG,CAAC,CAAC,GAAAA,qBAAA;QAClB/E,aAAa,GAAA4E,YAAA,CAAb5E,aAAa;QACboB,oBAAoB,GAAAwD,YAAA,CAApBxD,oBAAoB;MAEtB,IAAMvB,KAAK,GAAK,IAAI,CAACoC,KAAK,CAApBpC,KAAK;MAEX,IAAMoF,UAAU,GAAG,IAAAC,sBAAgB,EAAC5F,MAAM,EAAEY,KAAK,EAAEC,IAAI,EAAE;QAAA,OAAMwE,MAAI,CAACQ,QAAQ;MAAA,EAAC;MAE7E,IAAMC,QAAQ,GAAGtE,WAAW,CAACX,IAAI,CAAC;MAClC,IAAMkF,MAAM,GAAG;QAAEJ,UAAU,EAAVA,UAAU;QAAEtF,gBAAgB,EAAhBA,gBAAgB;QAAEkB,aAAa,EAAbA;MAAc,CAAC;MAE9DhB,KAAK,GAAGoB,sCAAsC,CAAC;QAC7CpB,KAAK,EAAEA,KAAK,IAAI,EAAE;QAClBsB,WAAW,EAAXA,WAAW;QACXnB,aAAa,EAAbA,aAAa;QACboB,oBAAoB,EAApBA;MACF,CAAC,CAAC;MAEF,oBACE3F,MAAA,YAAA6J,aAAA,CAACxJ,KAAA,CAAAyJ,IAAI,MAAAC,SAAA;QACHC,OAAO,EAAE,SAATA,OAAOA,CAAGlJ,CAAC;UAAA,OAAMoI,MAAI,CAACQ,QAAQ,GAAG5I,CAAC;QAAA,CAAE;QACpC8C,aAAa,EAAEA,aAAc;QAC7BD,cAAc,EAAEA,cAAe;QAC/BK,MAAM,EAAEA,MAAO;QACfoF,kBAAkB,EAAEA,kBAAkB,IAAI,CAAC,CAAE;QAC7CpE,eAAe,EAAEA,eAAgB;QACjCD,UAAU,EAAEA,UAAW;QACvBE,SAAS,EAAEA,SAAU;QACrBC,KAAK,EAAEA,KAAM;QACbmE,gBAAgB,EAAEA,gBAAiB;QACnC7E,aAAa,EAAEA,aAAc;QAC7BH,cAAc,EAAEA,cAAe;QAC/BkF,aAAa,EAAEA;MAAc,GACzBK,MAAM,gBAEV5J,MAAA,YAAA6J,aAAA;QACEI,SAAS,EACPpG,MAAM,IAAIA,MAAM,CAACqG,OAAO,IAAIrG,MAAM,CAACY,KAAK,gBAAAoD,MAAA,CAAgBhE,MAAM,CAACqG,OAAO,QAAArC,MAAA,CAAKpD,KAAK,CAACyF,OAAO,SAAMvC;MAC/F,gBAED3H,MAAA,YAAA6J,aAAA,CAACrJ,KAAA,WAAI,EAAKoJ,MAAS,CAAC,eACpB5J,MAAA,YAAA6J,aAAA,CAACtJ,KAAA,CAAA4J,IAAI,MAAAJ,SAAA,iBAAK/G,YAAY,EAAM4G,MAAM,CAAG,CAAC,eACtC5J,MAAA,YAAA6J,aAAA,CAACnJ,GAAA,WAAE,MAAAqJ,SAAA,iBAAKrF,IAAI;QAAE0F,OAAO,EAAE,IAAI,CAACC;MAAU,GAAKT,MAAM,CAAG,CAAC,eACrD5J,MAAA,YAAA6J,aAAA;QAAMS,EAAE,KAAAzC,MAAA,CAAK,IAAI,CAACW,OAAO;MAAG,gBAC1BxI,MAAA,YAAA6J,aAAA,aAAAE,SAAA,iBAAUJ,QAAQ;QAAEY,IAAI,EAAC;MAAO,EAAE,CAAC,KAC/B,CAAC,eAEPvK,MAAA,YAAA6J,aAAA;QAAGS,EAAE,EAAC,OAAO;QAACE,IAAI,WAAA3C,MAAA,CAAW,IAAI,CAACW,OAAO;MAAK,GAC3C,CAACpF,eAAe,IAAI,EAAE,EAAEqH,GAAG,CAAC,UAAC5E,CAAC,EAAEK,KAAK,EAAK;QACzC,IAAMgC,SAAS,GAAGgB,MAAI,CAACwB,YAAY,CAAC7E,CAAC,CAAC;QACtC,IAAM8E,QAAQ,GAAG9E,CAAC,CAACI,IAAI;QAEvB,oBACEjG,MAAA,YAAA6J,aAAA,CAAC3B,SAAS,MAAA6B,SAAA;UACRnB,GAAG,KAAAf,MAAA,CAAK8C,QAAQ,OAAA9C,MAAA,CAAI3B,KAAK,QAAM;UAC/B6B,IAAI,EAAAtG,aAAA,CAAAA,aAAA,KAAOoE,CAAC;YAAE+E,QAAQ,EAAE,IAAI;YAAEC,YAAY,EAAE;UAAI,EAAG;UACnD/D,SAAS,EAAEoC,MAAI,CAAC4B,KAAK,CAAChE,SAAU;UAChCsD,OAAO,EAAElB,MAAI,CAACmB;QAAU,GACpBT,MAAM,CACX,CAAC;MAEN,CAAC,CAAC,EAEDxF,KAAK,CAACqG,GAAG,CAAC,UAAC5E,CAAC,EAAEK,KAAK,EAAK;QACvB,IAAMgC,SAAS,GAAGgB,MAAI,CAACwB,YAAY,CAAC7E,CAAC,CAAC;QACtC,IAAM8E,QAAQ,GAAG9E,CAAC,CAACI,IAAI;QAEvB,oBACEjG,MAAA,YAAA6J,aAAA,CAAC3B,SAAS,MAAA6B,SAAA;UACRnB,GAAG,KAAAf,MAAA,CAAK8C,QAAQ,OAAA9C,MAAA,CAAI3B,KAAK,CAAG;UAC5B6B,IAAI,EAAElC,CAAE;UACR1B,kBAAkB,EAAEA,kBAAmB;UACvC4G,QAAQ,EAAE7B,MAAI,CAAC8B,UAAW;UAC1BC,UAAU,EAAE/B,MAAI,CAACgC,YAAa;UAC9Bd,OAAO,EAAElB,MAAI,CAACmB,SAAU;UACxBc,WAAW,EAAEjC,MAAI,CAACkC,SAAU;UAC5BC,UAAU,EAAEnC,MAAI,CAACoC,QAAS;UAC1BxE,SAAS,EAAEoC,MAAI,CAAC4B,KAAK,CAAChE,SAAU;UAChCyE,YAAY,EAAE7F,WAAW,IAAIiF,QAAQ,KAAKjF,WAAW,CAACO;QAAK,GACvD2D,MAAM,CACX,CAAC;MAEN,CAAC,CAAC,eACF5J,MAAA,YAAA6J,aAAA,sBAAAE,SAAA;QACEyB,GAAG,EAAE,SAALA,GAAGA,CAAG1E,SAAS;UAAA,OAAMoC,MAAI,CAACpC,SAAS,GAAGA,SAAS;QAAA,CAAE;QACjDxB,CAAC,EAAC,GAAG;QACLC,CAAC,EAAC;MAAG,GACDb,IAAI;QACR+G,KAAK,EAAE;UAAEC,aAAa,EAAE,MAAM;UAAEC,QAAQ,EAAE;QAAO;MAAE,EACpD,CACA,CACF,CACC,CAAC;IAEX;EAAC;AAAA,EAxOwBC,iBAAK,CAAC1D,SAAS;AAAA,IAAArG,gBAAA,aAA7ByE,KAAK,eAAA7E,aAAA,CAAAA,aAAA,KAOXqB,cAAc;EACjB4C,WAAW,EAAEzC,qBAAS,CAAC4I;AAAM;AAAA,IAAAhK,gBAAA,aARpByE,KAAK,kBAWM;EACpB/B,aAAa,EAAE,SAAfA,aAAaA,CAAA,EAAQ,CAAC,CAAC;EACvBZ,cAAc,EAAE,KAAK;EACrBC,aAAa,EAAE;AACjB,CAAC;AAAA,IAAAkI,QAAA,GAAA/I,OAAA,cA4NYuD,KAAK","ignoreList":[]}
|
|
@@ -132,8 +132,7 @@ var RawBaseCircle = exports.RawBaseCircle = /*#__PURE__*/function (_React$Compon
|
|
|
132
132
|
limitLabeling = _this$props5.limitLabeling,
|
|
133
133
|
onClick = _this$props5.onClick;
|
|
134
134
|
if (!labelModeEnabled) {
|
|
135
|
-
|
|
136
|
-
// Moving is handled entirely by drag. Do nothing here.
|
|
135
|
+
onClick(point || data);
|
|
137
136
|
return;
|
|
138
137
|
}
|
|
139
138
|
if (disabled || limitLabeling) return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component.js","names":["_react","_interopRequireDefault","require","_propTypes","_classnames","_point","_bgCircle","_utils","_plot","_withRootEdge","_reactDom","_markLabel","_lodashEs","_renderUi","_styles","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","_callSuper","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","Boolean","prototype","valueOf","call","opacityPulsate","opacity","keyframes","getRadius","from","outer","c","point","dist","RawBaseCircle","exports","_React$Component","_this","_classCallCheck2","_len","args","Array","_key","concat","_this$props","props","middle","onChange","to","equalPoints","getMiddleOfTwoPoints","draggedFrom","_this$props2","label","onChangePoint","draggedTo","_this$props3","_this$props4","diff","sub","updated","setState","draggedroot","undefined","draggedOuter","isCircleDrag","type","changeMarkProps","update","isEmpty","data","_this$props5","disabled","labelModeEnabled","limitLabeling","onClick","input","focus","_inherits2","_createClass2","key","value","render","_this2","_this$props6","building","coordinatesOnHover","onDragStart","onDragStop","correctness","graphProps","labelNode","common","radius","fromLabelNode","toLabelNode","circleLabelNode","_to","ReactDOM","createPortal","createElement","inputRef","mark","labelChange","StyledBgCircle","_extends2","className","classNames","x","y","onDrag","dragCircle","clickPoint","BasePoint","dragTo","dragFrom","React","Component","PropTypes","bool","string","types","PointType","func","isRequired","GraphPropsType","object","styled","BgCircle","fill","color","transparent","stroke","defaults","BLACK","strokeWidth","PRIMARY_DARK","animation","BaseCircle","rootEdgeComponent","_default"],"sources":["../../../src/tools/circle/component.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { BasePoint } from '../shared/point';\nimport BgCircle from './bg-circle';\nimport { equalPoints, getMiddleOfTwoPoints, point } from '../../utils';\nimport { types } from '@pie-lib/plot';\nimport { rootEdgeComponent } from '../shared/line/with-root-edge';\nimport ReactDOM from 'react-dom';\nimport MarkLabel from '../../mark-label';\nimport { isEmpty } from 'lodash-es';\nimport { color } from '@pie-lib/render-ui';\nimport { keyframes, styled } from '@mui/material/styles';\n\nconst opacityPulsate = (opacity) =>\n keyframes({\n '0%': { opacity: '0.0' },\n '50%': { opacity },\n '100%': { opacity: '0.0' },\n });\n\nconst getRadius = (from, outer) => {\n const c = point(from);\n return c.dist(point(outer));\n};\n\nexport class RawBaseCircle extends React.Component {\n static propTypes = {\n building: PropTypes.bool,\n className: PropTypes.string,\n coordinatesOnHover: PropTypes.bool,\n correctness: PropTypes.string,\n from: types.PointType,\n disabled: PropTypes.bool,\n to: types.PointType,\n middle: types.PointType,\n onChange: PropTypes.func.isRequired,\n onDragStart: PropTypes.func,\n onDragStop: PropTypes.func,\n graphProps: types.GraphPropsType.isRequired,\n onClick: PropTypes.func,\n labelNode: PropTypes.object,\n labelModeEnabled: PropTypes.bool,\n changeMarkProps: PropTypes.func,\n limitLabeling: PropTypes.bool,\n };\n\n static defaultProps = {\n onClick: () => ({}),\n };\n\n onChangePoint = (point) => {\n const { middle, onChange } = this.props;\n const { from, to } = point;\n\n if (!equalPoints(from, to)) {\n if (middle) {\n point.middle = { ...middle, ...getMiddleOfTwoPoints(from, to) };\n }\n onChange(point);\n }\n };\n\n dragFrom = (draggedFrom) => {\n const { from, to } = this.props;\n\n if (from.label) draggedFrom.label = from.label;\n if (!equalPoints(draggedFrom, to)) {\n this.onChangePoint({ from: draggedFrom, to });\n }\n };\n\n dragTo = (draggedTo) => {\n const { from, to } = this.props;\n\n if (to.label) draggedTo.label = to.label;\n if (!equalPoints(from, draggedTo)) {\n this.onChangePoint({ from, to: draggedTo });\n }\n };\n\n dragCircle = (draggedFrom) => {\n const { from, to, onChange, middle } = this.props;\n const diff = point(from).sub(point(draggedFrom));\n const draggedTo = point(to).sub(diff);\n\n if (from.label) draggedFrom.label = from.label;\n if (to.label) draggedTo.label = to.label;\n\n const updated = { from: draggedFrom, to: draggedTo };\n if (middle) {\n updated.middle = { ...middle, ...getMiddleOfTwoPoints(draggedFrom, draggedTo) };\n }\n\n this.setState({ draggedroot: undefined, draggedOuter: undefined, isCircleDrag: false }, () => onChange(updated));\n };\n\n labelChange = (point, type) => {\n const { changeMarkProps } = this.props;\n const update = { ...point };\n if (!point.label || isEmpty(point.label)) delete update.label;\n changeMarkProps({ [type]: update });\n };\n\n clickPoint = (point, type, data) => {\n const { changeMarkProps, disabled, from, to, labelModeEnabled, limitLabeling, onClick } = this.props;\n\n if (!labelModeEnabled) {\n // Clicks on existing mark points/lines should not create new marks.\n // Moving is handled entirely by drag. Do nothing here.\n return;\n }\n\n if (disabled || limitLabeling) return;\n\n if (type === 'middle' && !point && from && to) {\n point = { ...point, ...getMiddleOfTwoPoints(from, to) };\n }\n\n changeMarkProps({ from, to, [type]: { label: '', ...point } });\n\n if (this.input[type]) {\n this.input[type].focus();\n }\n };\n\n input = {};\n\n render() {\n let {\n from,\n to,\n middle,\n disabled,\n building,\n coordinatesOnHover,\n onDragStart,\n onDragStop,\n onClick,\n correctness,\n graphProps,\n labelNode,\n labelModeEnabled,\n } = this.props;\n\n const common = { onDragStart, onDragStop, graphProps, onClick };\n to = to || from;\n const radius = getRadius(from, to);\n\n let fromLabelNode = null;\n let toLabelNode = null;\n let circleLabelNode = null;\n\n if (labelNode) {\n if (from?.label !== undefined) {\n fromLabelNode = ReactDOM.createPortal(\n <MarkLabel\n inputRef={(r) => (this.input.from = r)}\n disabled={!labelModeEnabled}\n mark={from}\n graphProps={graphProps}\n onChange={(label) => this.labelChange({ ...from, label }, 'from')}\n />,\n labelNode,\n );\n }\n\n if (to?.label !== undefined) {\n toLabelNode = ReactDOM.createPortal(\n <MarkLabel\n inputRef={(r) => (this.input.to = r)}\n disabled={!labelModeEnabled}\n mark={to}\n graphProps={graphProps}\n onChange={(label) => this.labelChange({ ...to, label }, 'to')}\n />,\n labelNode,\n );\n }\n\n if (middle?.label !== undefined) {\n circleLabelNode = ReactDOM.createPortal(\n <MarkLabel\n inputRef={(r) => (this.input.middle = r)}\n disabled={!labelModeEnabled}\n mark={middle}\n graphProps={graphProps}\n onChange={(label) => this.labelChange({ ...middle, label }, 'middle')}\n />,\n labelNode,\n );\n }\n }\n\n return (\n <g>\n <StyledBgCircle\n disabled={building || disabled}\n correctness={correctness}\n className={classNames(building && 'bgCircleBuilding')}\n x={from.x}\n y={from.y}\n radius={radius}\n onDrag={this.dragCircle}\n {...common}\n onClick={(data) => this.clickPoint(middle, 'middle', data)}\n />\n {circleLabelNode}\n\n <BasePoint\n disabled={building || disabled}\n coordinatesOnHover={coordinatesOnHover}\n correctness={correctness}\n labelNode={labelNode}\n x={to.x}\n y={to.y}\n onDrag={this.dragTo}\n {...common}\n onClick={(data) => this.clickPoint(to, 'to', data)}\n />\n {toLabelNode}\n\n <BasePoint\n disabled={building || disabled}\n coordinatesOnHover={coordinatesOnHover}\n correctness={correctness}\n labelNode={labelNode}\n x={from.x}\n y={from.y}\n className=\"from\"\n onDrag={this.dragFrom}\n {...common}\n onClick={(data) => this.clickPoint(from, 'from', data)}\n />\n {fromLabelNode}\n </g>\n );\n }\n}\n\n// MUI v5 styled() replaces withStyles\nconst StyledBgCircle = styled(BgCircle)(() => ({\n '&.outerLine': {\n fill: color.transparent(),\n stroke: color.defaults.BLACK,\n strokeWidth: 4,\n '&:hover': {\n strokeWidth: 6,\n stroke: color.defaults.PRIMARY_DARK,\n },\n },\n '&.bgCircleBuilding': {\n stroke: color.defaults.BLACK,\n animation: `${opacityPulsate('0.3')} 2s ease-out infinite`,\n opacity: 1,\n },\n}));\n\nexport const BaseCircle = RawBaseCircle;\nconst Component = rootEdgeComponent(BaseCircle);\nexport default Component;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"component.js","names":["_react","_interopRequireDefault","require","_propTypes","_classnames","_point","_bgCircle","_utils","_plot","_withRootEdge","_reactDom","_markLabel","_lodashEs","_renderUi","_styles","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","_callSuper","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","Boolean","prototype","valueOf","call","opacityPulsate","opacity","keyframes","getRadius","from","outer","c","point","dist","RawBaseCircle","exports","_React$Component","_this","_classCallCheck2","_len","args","Array","_key","concat","_this$props","props","middle","onChange","to","equalPoints","getMiddleOfTwoPoints","draggedFrom","_this$props2","label","onChangePoint","draggedTo","_this$props3","_this$props4","diff","sub","updated","setState","draggedroot","undefined","draggedOuter","isCircleDrag","type","changeMarkProps","update","isEmpty","data","_this$props5","disabled","labelModeEnabled","limitLabeling","onClick","input","focus","_inherits2","_createClass2","key","value","render","_this2","_this$props6","building","coordinatesOnHover","onDragStart","onDragStop","correctness","graphProps","labelNode","common","radius","fromLabelNode","toLabelNode","circleLabelNode","_to","ReactDOM","createPortal","createElement","inputRef","mark","labelChange","StyledBgCircle","_extends2","className","classNames","x","y","onDrag","dragCircle","clickPoint","BasePoint","dragTo","dragFrom","React","Component","PropTypes","bool","string","types","PointType","func","isRequired","GraphPropsType","object","styled","BgCircle","fill","color","transparent","stroke","defaults","BLACK","strokeWidth","PRIMARY_DARK","animation","BaseCircle","rootEdgeComponent","_default"],"sources":["../../../src/tools/circle/component.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { BasePoint } from '../shared/point';\nimport BgCircle from './bg-circle';\nimport { equalPoints, getMiddleOfTwoPoints, point } from '../../utils';\nimport { types } from '@pie-lib/plot';\nimport { rootEdgeComponent } from '../shared/line/with-root-edge';\nimport ReactDOM from 'react-dom';\nimport MarkLabel from '../../mark-label';\nimport { isEmpty } from 'lodash-es';\nimport { color } from '@pie-lib/render-ui';\nimport { keyframes, styled } from '@mui/material/styles';\n\nconst opacityPulsate = (opacity) =>\n keyframes({\n '0%': { opacity: '0.0' },\n '50%': { opacity },\n '100%': { opacity: '0.0' },\n });\n\nconst getRadius = (from, outer) => {\n const c = point(from);\n return c.dist(point(outer));\n};\n\nexport class RawBaseCircle extends React.Component {\n static propTypes = {\n building: PropTypes.bool,\n className: PropTypes.string,\n coordinatesOnHover: PropTypes.bool,\n correctness: PropTypes.string,\n from: types.PointType,\n disabled: PropTypes.bool,\n to: types.PointType,\n middle: types.PointType,\n onChange: PropTypes.func.isRequired,\n onDragStart: PropTypes.func,\n onDragStop: PropTypes.func,\n graphProps: types.GraphPropsType.isRequired,\n onClick: PropTypes.func,\n labelNode: PropTypes.object,\n labelModeEnabled: PropTypes.bool,\n changeMarkProps: PropTypes.func,\n limitLabeling: PropTypes.bool,\n };\n\n static defaultProps = {\n onClick: () => ({}),\n };\n\n onChangePoint = (point) => {\n const { middle, onChange } = this.props;\n const { from, to } = point;\n\n if (!equalPoints(from, to)) {\n if (middle) {\n point.middle = { ...middle, ...getMiddleOfTwoPoints(from, to) };\n }\n onChange(point);\n }\n };\n\n dragFrom = (draggedFrom) => {\n const { from, to } = this.props;\n\n if (from.label) draggedFrom.label = from.label;\n if (!equalPoints(draggedFrom, to)) {\n this.onChangePoint({ from: draggedFrom, to });\n }\n };\n\n dragTo = (draggedTo) => {\n const { from, to } = this.props;\n\n if (to.label) draggedTo.label = to.label;\n if (!equalPoints(from, draggedTo)) {\n this.onChangePoint({ from, to: draggedTo });\n }\n };\n\n dragCircle = (draggedFrom) => {\n const { from, to, onChange, middle } = this.props;\n const diff = point(from).sub(point(draggedFrom));\n const draggedTo = point(to).sub(diff);\n\n if (from.label) draggedFrom.label = from.label;\n if (to.label) draggedTo.label = to.label;\n\n const updated = { from: draggedFrom, to: draggedTo };\n if (middle) {\n updated.middle = { ...middle, ...getMiddleOfTwoPoints(draggedFrom, draggedTo) };\n }\n\n this.setState({ draggedroot: undefined, draggedOuter: undefined, isCircleDrag: false }, () => onChange(updated));\n };\n\n labelChange = (point, type) => {\n const { changeMarkProps } = this.props;\n const update = { ...point };\n if (!point.label || isEmpty(point.label)) delete update.label;\n changeMarkProps({ [type]: update });\n };\n\n clickPoint = (point, type, data) => {\n const { changeMarkProps, disabled, from, to, labelModeEnabled, limitLabeling, onClick } = this.props;\n\n if (!labelModeEnabled) {\n onClick(point || data);\n return;\n }\n\n if (disabled || limitLabeling) return;\n\n if (type === 'middle' && !point && from && to) {\n point = { ...point, ...getMiddleOfTwoPoints(from, to) };\n }\n\n changeMarkProps({ from, to, [type]: { label: '', ...point } });\n\n if (this.input[type]) {\n this.input[type].focus();\n }\n };\n\n input = {};\n\n render() {\n let {\n from,\n to,\n middle,\n disabled,\n building,\n coordinatesOnHover,\n onDragStart,\n onDragStop,\n onClick,\n correctness,\n graphProps,\n labelNode,\n labelModeEnabled,\n } = this.props;\n\n const common = { onDragStart, onDragStop, graphProps, onClick };\n to = to || from;\n const radius = getRadius(from, to);\n\n let fromLabelNode = null;\n let toLabelNode = null;\n let circleLabelNode = null;\n\n if (labelNode) {\n if (from?.label !== undefined) {\n fromLabelNode = ReactDOM.createPortal(\n <MarkLabel\n inputRef={(r) => (this.input.from = r)}\n disabled={!labelModeEnabled}\n mark={from}\n graphProps={graphProps}\n onChange={(label) => this.labelChange({ ...from, label }, 'from')}\n />,\n labelNode,\n );\n }\n\n if (to?.label !== undefined) {\n toLabelNode = ReactDOM.createPortal(\n <MarkLabel\n inputRef={(r) => (this.input.to = r)}\n disabled={!labelModeEnabled}\n mark={to}\n graphProps={graphProps}\n onChange={(label) => this.labelChange({ ...to, label }, 'to')}\n />,\n labelNode,\n );\n }\n\n if (middle?.label !== undefined) {\n circleLabelNode = ReactDOM.createPortal(\n <MarkLabel\n inputRef={(r) => (this.input.middle = r)}\n disabled={!labelModeEnabled}\n mark={middle}\n graphProps={graphProps}\n onChange={(label) => this.labelChange({ ...middle, label }, 'middle')}\n />,\n labelNode,\n );\n }\n }\n\n return (\n <g>\n <StyledBgCircle\n disabled={building || disabled}\n correctness={correctness}\n className={classNames(building && 'bgCircleBuilding')}\n x={from.x}\n y={from.y}\n radius={radius}\n onDrag={this.dragCircle}\n {...common}\n onClick={(data) => this.clickPoint(middle, 'middle', data)}\n />\n {circleLabelNode}\n\n <BasePoint\n disabled={building || disabled}\n coordinatesOnHover={coordinatesOnHover}\n correctness={correctness}\n labelNode={labelNode}\n x={to.x}\n y={to.y}\n onDrag={this.dragTo}\n {...common}\n onClick={(data) => this.clickPoint(to, 'to', data)}\n />\n {toLabelNode}\n\n <BasePoint\n disabled={building || disabled}\n coordinatesOnHover={coordinatesOnHover}\n correctness={correctness}\n labelNode={labelNode}\n x={from.x}\n y={from.y}\n className=\"from\"\n onDrag={this.dragFrom}\n {...common}\n onClick={(data) => this.clickPoint(from, 'from', data)}\n />\n {fromLabelNode}\n </g>\n );\n }\n}\n\n// MUI v5 styled() replaces withStyles\nconst StyledBgCircle = styled(BgCircle)(() => ({\n '&.outerLine': {\n fill: color.transparent(),\n stroke: color.defaults.BLACK,\n strokeWidth: 4,\n '&:hover': {\n strokeWidth: 6,\n stroke: color.defaults.PRIMARY_DARK,\n },\n },\n '&.bgCircleBuilding': {\n stroke: color.defaults.BLACK,\n animation: `${opacityPulsate('0.3')} 2s ease-out infinite`,\n opacity: 1,\n },\n}));\n\nexport const BaseCircle = RawBaseCircle;\nconst Component = rootEdgeComponent(BaseCircle);\nexport default Component;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -35,6 +35,7 @@ var Point = exports.Point = /*#__PURE__*/function (_React$Component) {
|
|
|
35
35
|
});
|
|
36
36
|
});
|
|
37
37
|
(0, _defineProperty2["default"])(_this, "startDrag", function () {
|
|
38
|
+
var onDragStart = _this.props.onDragStart;
|
|
38
39
|
var update = _objectSpread({}, _this.props.mark);
|
|
39
40
|
if (update.label === '') {
|
|
40
41
|
delete update.label;
|
|
@@ -42,9 +43,12 @@ var Point = exports.Point = /*#__PURE__*/function (_React$Component) {
|
|
|
42
43
|
_this.setState({
|
|
43
44
|
mark: update
|
|
44
45
|
});
|
|
46
|
+
if (onDragStart) onDragStart();
|
|
45
47
|
});
|
|
46
48
|
(0, _defineProperty2["default"])(_this, "stopDrag", function () {
|
|
47
|
-
var
|
|
49
|
+
var _this$props = _this.props,
|
|
50
|
+
onChange = _this$props.onChange,
|
|
51
|
+
onDragStop = _this$props.onDragStop;
|
|
48
52
|
var mark = _objectSpread({}, _this.state.mark);
|
|
49
53
|
_this.setState({
|
|
50
54
|
mark: undefined
|
|
@@ -52,6 +56,7 @@ var Point = exports.Point = /*#__PURE__*/function (_React$Component) {
|
|
|
52
56
|
if (!(0, _lodashEs.isEqual)(_this.props.mark, mark)) {
|
|
53
57
|
onChange(_this.props.mark, mark);
|
|
54
58
|
}
|
|
59
|
+
if (onDragStop) onDragStop();
|
|
55
60
|
});
|
|
56
61
|
});
|
|
57
62
|
(0, _defineProperty2["default"])(_this, "labelChange", function (label) {
|
|
@@ -69,11 +74,11 @@ var Point = exports.Point = /*#__PURE__*/function (_React$Component) {
|
|
|
69
74
|
});
|
|
70
75
|
});
|
|
71
76
|
(0, _defineProperty2["default"])(_this, "clickPoint", function () {
|
|
72
|
-
var _this$
|
|
73
|
-
labelModeEnabled = _this$
|
|
74
|
-
onChange = _this$
|
|
75
|
-
onClick = _this$
|
|
76
|
-
mark = _this$
|
|
77
|
+
var _this$props2 = _this.props,
|
|
78
|
+
labelModeEnabled = _this$props2.labelModeEnabled,
|
|
79
|
+
onChange = _this$props2.onChange,
|
|
80
|
+
onClick = _this$props2.onClick,
|
|
81
|
+
mark = _this$props2.mark;
|
|
77
82
|
if (!labelModeEnabled) {
|
|
78
83
|
onClick(mark);
|
|
79
84
|
return;
|
|
@@ -84,9 +89,14 @@ var Point = exports.Point = /*#__PURE__*/function (_React$Component) {
|
|
|
84
89
|
onChange(mark, _objectSpread({
|
|
85
90
|
label: ''
|
|
86
91
|
}, mark));
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
92
|
+
|
|
93
|
+
// MarkLabel is only rendered after the parent re-renders with the new label prop,
|
|
94
|
+
// so we defer focus until after that render cycle completes.
|
|
95
|
+
setTimeout(function () {
|
|
96
|
+
if (_this.input) {
|
|
97
|
+
_this.input.focus();
|
|
98
|
+
}
|
|
99
|
+
}, 0);
|
|
90
100
|
});
|
|
91
101
|
_this.state = {};
|
|
92
102
|
return _this;
|
|
@@ -96,11 +106,11 @@ var Point = exports.Point = /*#__PURE__*/function (_React$Component) {
|
|
|
96
106
|
key: "render",
|
|
97
107
|
value: function render() {
|
|
98
108
|
var _this2 = this;
|
|
99
|
-
var _this$
|
|
100
|
-
coordinatesOnHover = _this$
|
|
101
|
-
graphProps = _this$
|
|
102
|
-
labelNode = _this$
|
|
103
|
-
labelModeEnabled = _this$
|
|
109
|
+
var _this$props3 = this.props,
|
|
110
|
+
coordinatesOnHover = _this$props3.coordinatesOnHover,
|
|
111
|
+
graphProps = _this$props3.graphProps,
|
|
112
|
+
labelNode = _this$props3.labelNode,
|
|
113
|
+
labelModeEnabled = _this$props3.labelModeEnabled;
|
|
104
114
|
var mark = this.state.mark ? this.state.mark : this.props.mark;
|
|
105
115
|
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_point.BasePoint, (0, _extends2["default"])({}, mark, {
|
|
106
116
|
coordinatesOnHover: coordinatesOnHover,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component.js","names":["_react","_interopRequireDefault","require","_point","_types","_plot","_reactDom","_markLabel","_lodashEs","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","_callSuper","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","Boolean","prototype","valueOf","call","Point","exports","_React$Component","props","_this","_classCallCheck2","p","mark","state","setState","update","label","onChange","undefined","isEqual","isEmpty","_this$props","labelModeEnabled","onClick","disabled","input","focus","_inherits2","_createClass2","key","value","render","_this2","_this$props2","coordinatesOnHover","graphProps","labelNode","createElement","Fragment","BasePoint","_extends2","onDrag","move","onDragStart","startDrag","onDragStop","stopDrag","clickPoint","onTouchStart","stopPropagation","onTouchEnd","hasOwnProperty","ReactDOM","createPortal","inputRef","labelChange","React","Component","types","GraphPropsType","isRequired","ToolPropTypeFields","_default"],"sources":["../../../src/tools/point/component.jsx"],"sourcesContent":["import React from 'react';\nimport { BasePoint } from '../shared/point';\nimport { ToolPropTypeFields } from '../shared/types';\nimport { types } from '@pie-lib/plot';\nimport ReactDOM from 'react-dom';\nimport MarkLabel from '../../mark-label';\nimport { isEmpty, isEqual } from 'lodash-es';\n\nexport class Point extends React.Component {\n static propTypes = {\n graphProps: types.GraphPropsType.isRequired,\n ...ToolPropTypeFields,\n };\n\n static defaultProps = {};\n\n constructor(props) {\n super(props);\n this.state = {};\n }\n\n move = (p) => {\n const mark = { ...this.state.mark, ...p };\n this.setState({ mark });\n };\n\n startDrag = () => {\n const update = { ...this.props.mark };\n\n if (update.label === '') {\n delete update.label;\n }\n this.setState({ mark: update });\n };\n\n stopDrag = () => {\n const { onChange } = this.props;\n const mark = { ...this.state.mark };\n this.setState({ mark: undefined }, () => {\n if (!isEqual(this.props.mark, mark)) {\n onChange(this.props.mark, mark);\n }\n });\n };\n\n labelChange = (label) => {\n const { onChange } = this.props;\n const update = { ...this.props.mark, label };\n\n if (!label || isEmpty(label)) {\n delete update.label;\n }\n\n this.setState({ mark: update }, () => {\n onChange(this.props.mark, update);\n });\n };\n\n clickPoint = () => {\n const { labelModeEnabled, onChange, onClick, mark } = this.props;\n\n if (!labelModeEnabled) {\n onClick(mark);\n return;\n }\n\n if (mark.disabled) {\n return;\n }\n\n onChange(mark, { label: '', ...mark });\n\n if (this.input) {\n this.input.focus();\n }\n };\n\n render() {\n const { coordinatesOnHover, graphProps, labelNode, labelModeEnabled } = this.props;\n const mark = this.state.mark ? this.state.mark : this.props.mark;\n\n return (\n <React.Fragment>\n <BasePoint\n {...mark}\n coordinatesOnHover={coordinatesOnHover}\n graphProps={graphProps}\n labelNode={labelNode}\n onDrag={this.move}\n onDragStart={this.startDrag}\n onDragStop={this.stopDrag}\n onClick={this.clickPoint}\n onTouchStart={(e) => {\n e.stopPropagation();\n this.clickPoint();\n }}\n onTouchEnd={(e) => {\n e.stopPropagation();\n this.clickPoint();\n }}\n />\n {labelNode &&\n Object.prototype.hasOwnProperty.call(mark, 'label') &&\n ReactDOM.createPortal(\n <MarkLabel\n inputRef={(r) => (this.input = r)}\n disabled={!labelModeEnabled}\n mark={mark}\n graphProps={graphProps}\n onChange={this.labelChange}\n />,\n labelNode,\n )}\n </React.Fragment>\n );\n }\n}\n\nexport default Point;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"component.js","names":["_react","_interopRequireDefault","require","_point","_types","_plot","_reactDom","_markLabel","_lodashEs","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","_callSuper","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","Boolean","prototype","valueOf","call","Point","exports","_React$Component","props","_this","_classCallCheck2","p","mark","state","setState","onDragStart","update","label","_this$props","onChange","onDragStop","undefined","isEqual","isEmpty","_this$props2","labelModeEnabled","onClick","disabled","setTimeout","input","focus","_inherits2","_createClass2","key","value","render","_this2","_this$props3","coordinatesOnHover","graphProps","labelNode","createElement","Fragment","BasePoint","_extends2","onDrag","move","startDrag","stopDrag","clickPoint","onTouchStart","stopPropagation","onTouchEnd","hasOwnProperty","ReactDOM","createPortal","inputRef","labelChange","React","Component","types","GraphPropsType","isRequired","ToolPropTypeFields","_default"],"sources":["../../../src/tools/point/component.jsx"],"sourcesContent":["import React from 'react';\nimport { BasePoint } from '../shared/point';\nimport { ToolPropTypeFields } from '../shared/types';\nimport { types } from '@pie-lib/plot';\nimport ReactDOM from 'react-dom';\nimport MarkLabel from '../../mark-label';\nimport { isEmpty, isEqual } from 'lodash-es';\n\nexport class Point extends React.Component {\n static propTypes = {\n graphProps: types.GraphPropsType.isRequired,\n ...ToolPropTypeFields,\n };\n\n static defaultProps = {};\n\n constructor(props) {\n super(props);\n this.state = {};\n }\n\n move = (p) => {\n const mark = { ...this.state.mark, ...p };\n this.setState({ mark });\n };\n\n startDrag = () => {\n const { onDragStart } = this.props;\n const update = { ...this.props.mark };\n\n if (update.label === '') {\n delete update.label;\n }\n this.setState({ mark: update });\n if (onDragStart) onDragStart();\n };\n\n stopDrag = () => {\n const { onChange, onDragStop } = this.props;\n const mark = { ...this.state.mark };\n this.setState({ mark: undefined }, () => {\n if (!isEqual(this.props.mark, mark)) {\n onChange(this.props.mark, mark);\n }\n if (onDragStop) onDragStop();\n });\n };\n\n labelChange = (label) => {\n const { onChange } = this.props;\n const update = { ...this.props.mark, label };\n\n if (!label || isEmpty(label)) {\n delete update.label;\n }\n\n this.setState({ mark: update }, () => {\n onChange(this.props.mark, update);\n });\n };\n\n clickPoint = () => {\n const { labelModeEnabled, onChange, onClick, mark } = this.props;\n\n if (!labelModeEnabled) {\n onClick(mark);\n return;\n }\n\n if (mark.disabled) {\n return;\n }\n\n onChange(mark, { label: '', ...mark });\n\n // MarkLabel is only rendered after the parent re-renders with the new label prop,\n // so we defer focus until after that render cycle completes.\n setTimeout(() => {\n if (this.input) {\n this.input.focus();\n }\n }, 0);\n };\n\n render() {\n const { coordinatesOnHover, graphProps, labelNode, labelModeEnabled } = this.props;\n const mark = this.state.mark ? this.state.mark : this.props.mark;\n\n return (\n <React.Fragment>\n <BasePoint\n {...mark}\n coordinatesOnHover={coordinatesOnHover}\n graphProps={graphProps}\n labelNode={labelNode}\n onDrag={this.move}\n onDragStart={this.startDrag}\n onDragStop={this.stopDrag}\n onClick={this.clickPoint}\n onTouchStart={(e) => {\n e.stopPropagation();\n this.clickPoint();\n }}\n onTouchEnd={(e) => {\n e.stopPropagation();\n this.clickPoint();\n }}\n />\n {labelNode &&\n Object.prototype.hasOwnProperty.call(mark, 'label') &&\n ReactDOM.createPortal(\n <MarkLabel\n inputRef={(r) => (this.input = r)}\n disabled={!labelModeEnabled}\n mark={mark}\n graphProps={graphProps}\n onChange={this.labelChange}\n />,\n labelNode,\n )}\n </React.Fragment>\n );\n }\n}\n\nexport default Point;\n"],"mappings":";;;;;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AACA,IAAAI,SAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,UAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,SAAA,GAAAN,OAAA;AAA6C,SAAAO,QAAAC,CAAA,EAAAC,CAAA,QAAAC,CAAA,GAAAC,MAAA,CAAAC,IAAA,CAAAJ,CAAA,OAAAG,MAAA,CAAAE,qBAAA,QAAAC,CAAA,GAAAH,MAAA,CAAAE,qBAAA,CAAAL,CAAA,GAAAC,CAAA,KAAAK,CAAA,GAAAA,CAAA,CAAAC,MAAA,WAAAN,CAAA,WAAAE,MAAA,CAAAK,wBAAA,CAAAR,CAAA,EAAAC,CAAA,EAAAQ,UAAA,OAAAP,CAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,CAAA,EAAAI,CAAA,YAAAJ,CAAA;AAAA,SAAAU,cAAAZ,CAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAY,SAAA,CAAAC,MAAA,EAAAb,CAAA,UAAAC,CAAA,WAAAW,SAAA,CAAAZ,CAAA,IAAAY,SAAA,CAAAZ,CAAA,QAAAA,CAAA,OAAAF,OAAA,CAAAI,MAAA,CAAAD,CAAA,OAAAa,OAAA,WAAAd,CAAA,QAAAe,gBAAA,aAAAhB,CAAA,EAAAC,CAAA,EAAAC,CAAA,CAAAD,CAAA,SAAAE,MAAA,CAAAc,yBAAA,GAAAd,MAAA,CAAAe,gBAAA,CAAAlB,CAAA,EAAAG,MAAA,CAAAc,yBAAA,CAAAf,CAAA,KAAAH,OAAA,CAAAI,MAAA,CAAAD,CAAA,GAAAa,OAAA,WAAAd,CAAA,IAAAE,MAAA,CAAAgB,cAAA,CAAAnB,CAAA,EAAAC,CAAA,EAAAE,MAAA,CAAAK,wBAAA,CAAAN,CAAA,EAAAD,CAAA,iBAAAD,CAAA;AAAA,SAAAoB,WAAAlB,CAAA,EAAAI,CAAA,EAAAN,CAAA,WAAAM,CAAA,OAAAe,gBAAA,aAAAf,CAAA,OAAAgB,2BAAA,aAAApB,CAAA,EAAAqB,yBAAA,KAAAC,OAAA,CAAAC,SAAA,CAAAnB,CAAA,EAAAN,CAAA,YAAAqB,gBAAA,aAAAnB,CAAA,EAAAwB,WAAA,IAAApB,CAAA,CAAAK,KAAA,CAAAT,CAAA,EAAAF,CAAA;AAAA,SAAAuB,0BAAA,cAAArB,CAAA,IAAAyB,OAAA,CAAAC,SAAA,CAAAC,OAAA,CAAAC,IAAA,CAAAN,OAAA,CAAAC,SAAA,CAAAE,OAAA,iCAAAzB,CAAA,aAAAqB,yBAAA,YAAAA,0BAAA,aAAArB,CAAA;AAAA,IAEhC6B,KAAK,GAAAC,OAAA,CAAAD,KAAA,0BAAAE,gBAAA;EAQhB,SAAAF,MAAYG,KAAK,EAAE;IAAA,IAAAC,KAAA;IAAA,IAAAC,gBAAA,mBAAAL,KAAA;IACjBI,KAAA,GAAAf,UAAA,OAAAW,KAAA,GAAMG,KAAK;IAAE,IAAAlB,gBAAA,aAAAmB,KAAA,UAIR,UAACE,CAAC,EAAK;MACZ,IAAMC,IAAI,GAAA1B,aAAA,CAAAA,aAAA,KAAQuB,KAAA,CAAKI,KAAK,CAACD,IAAI,GAAKD,CAAC,CAAE;MACzCF,KAAA,CAAKK,QAAQ,CAAC;QAAEF,IAAI,EAAJA;MAAK,CAAC,CAAC;IACzB,CAAC;IAAA,IAAAtB,gBAAA,aAAAmB,KAAA,eAEW,YAAM;MAChB,IAAQM,WAAW,GAAKN,KAAA,CAAKD,KAAK,CAA1BO,WAAW;MACnB,IAAMC,MAAM,GAAA9B,aAAA,KAAQuB,KAAA,CAAKD,KAAK,CAACI,IAAI,CAAE;MAErC,IAAII,MAAM,CAACC,KAAK,KAAK,EAAE,EAAE;QACvB,OAAOD,MAAM,CAACC,KAAK;MACrB;MACAR,KAAA,CAAKK,QAAQ,CAAC;QAAEF,IAAI,EAAEI;MAAO,CAAC,CAAC;MAC/B,IAAID,WAAW,EAAEA,WAAW,CAAC,CAAC;IAChC,CAAC;IAAA,IAAAzB,gBAAA,aAAAmB,KAAA,cAEU,YAAM;MACf,IAAAS,WAAA,GAAiCT,KAAA,CAAKD,KAAK;QAAnCW,QAAQ,GAAAD,WAAA,CAARC,QAAQ;QAAEC,UAAU,GAAAF,WAAA,CAAVE,UAAU;MAC5B,IAAMR,IAAI,GAAA1B,aAAA,KAAQuB,KAAA,CAAKI,KAAK,CAACD,IAAI,CAAE;MACnCH,KAAA,CAAKK,QAAQ,CAAC;QAAEF,IAAI,EAAES;MAAU,CAAC,EAAE,YAAM;QACvC,IAAI,CAAC,IAAAC,iBAAO,EAACb,KAAA,CAAKD,KAAK,CAACI,IAAI,EAAEA,IAAI,CAAC,EAAE;UACnCO,QAAQ,CAACV,KAAA,CAAKD,KAAK,CAACI,IAAI,EAAEA,IAAI,CAAC;QACjC;QACA,IAAIQ,UAAU,EAAEA,UAAU,CAAC,CAAC;MAC9B,CAAC,CAAC;IACJ,CAAC;IAAA,IAAA9B,gBAAA,aAAAmB,KAAA,iBAEa,UAACQ,KAAK,EAAK;MACvB,IAAQE,QAAQ,GAAKV,KAAA,CAAKD,KAAK,CAAvBW,QAAQ;MAChB,IAAMH,MAAM,GAAA9B,aAAA,CAAAA,aAAA,KAAQuB,KAAA,CAAKD,KAAK,CAACI,IAAI;QAAEK,KAAK,EAALA;MAAK,EAAE;MAE5C,IAAI,CAACA,KAAK,IAAI,IAAAM,iBAAO,EAACN,KAAK,CAAC,EAAE;QAC5B,OAAOD,MAAM,CAACC,KAAK;MACrB;MAEAR,KAAA,CAAKK,QAAQ,CAAC;QAAEF,IAAI,EAAEI;MAAO,CAAC,EAAE,YAAM;QACpCG,QAAQ,CAACV,KAAA,CAAKD,KAAK,CAACI,IAAI,EAAEI,MAAM,CAAC;MACnC,CAAC,CAAC;IACJ,CAAC;IAAA,IAAA1B,gBAAA,aAAAmB,KAAA,gBAEY,YAAM;MACjB,IAAAe,YAAA,GAAsDf,KAAA,CAAKD,KAAK;QAAxDiB,gBAAgB,GAAAD,YAAA,CAAhBC,gBAAgB;QAAEN,QAAQ,GAAAK,YAAA,CAARL,QAAQ;QAAEO,OAAO,GAAAF,YAAA,CAAPE,OAAO;QAAEd,IAAI,GAAAY,YAAA,CAAJZ,IAAI;MAEjD,IAAI,CAACa,gBAAgB,EAAE;QACrBC,OAAO,CAACd,IAAI,CAAC;QACb;MACF;MAEA,IAAIA,IAAI,CAACe,QAAQ,EAAE;QACjB;MACF;MAEAR,QAAQ,CAACP,IAAI,EAAA1B,aAAA;QAAI+B,KAAK,EAAE;MAAE,GAAKL,IAAI,CAAE,CAAC;;MAEtC;MACA;MACAgB,UAAU,CAAC,YAAM;QACf,IAAInB,KAAA,CAAKoB,KAAK,EAAE;UACdpB,KAAA,CAAKoB,KAAK,CAACC,KAAK,CAAC,CAAC;QACpB;MACF,CAAC,EAAE,CAAC,CAAC;IACP,CAAC;IAhECrB,KAAA,CAAKI,KAAK,GAAG,CAAC,CAAC;IAAC,OAAAJ,KAAA;EAClB;EAAC,IAAAsB,UAAA,aAAA1B,KAAA,EAAAE,gBAAA;EAAA,WAAAyB,aAAA,aAAA3B,KAAA;IAAA4B,GAAA;IAAAC,KAAA,EAiED,SAAAC,MAAMA,CAAA,EAAG;MAAA,IAAAC,MAAA;MACP,IAAAC,YAAA,GAAwE,IAAI,CAAC7B,KAAK;QAA1E8B,kBAAkB,GAAAD,YAAA,CAAlBC,kBAAkB;QAAEC,UAAU,GAAAF,YAAA,CAAVE,UAAU;QAAEC,SAAS,GAAAH,YAAA,CAATG,SAAS;QAAEf,gBAAgB,GAAAY,YAAA,CAAhBZ,gBAAgB;MACnE,IAAMb,IAAI,GAAG,IAAI,CAACC,KAAK,CAACD,IAAI,GAAG,IAAI,CAACC,KAAK,CAACD,IAAI,GAAG,IAAI,CAACJ,KAAK,CAACI,IAAI;MAEhE,oBACEhD,MAAA,YAAA6E,aAAA,CAAC7E,MAAA,WAAK,CAAC8E,QAAQ,qBACb9E,MAAA,YAAA6E,aAAA,CAAC1E,MAAA,CAAA4E,SAAS,MAAAC,SAAA,iBACJhC,IAAI;QACR0B,kBAAkB,EAAEA,kBAAmB;QACvCC,UAAU,EAAEA,UAAW;QACvBC,SAAS,EAAEA,SAAU;QACrBK,MAAM,EAAE,IAAI,CAACC,IAAK;QAClB/B,WAAW,EAAE,IAAI,CAACgC,SAAU;QAC5B3B,UAAU,EAAE,IAAI,CAAC4B,QAAS;QAC1BtB,OAAO,EAAE,IAAI,CAACuB,UAAW;QACzBC,YAAY,EAAE,SAAdA,YAAYA,CAAG5E,CAAC,EAAK;UACnBA,CAAC,CAAC6E,eAAe,CAAC,CAAC;UACnBf,MAAI,CAACa,UAAU,CAAC,CAAC;QACnB,CAAE;QACFG,UAAU,EAAE,SAAZA,UAAUA,CAAG9E,CAAC,EAAK;UACjBA,CAAC,CAAC6E,eAAe,CAAC,CAAC;UACnBf,MAAI,CAACa,UAAU,CAAC,CAAC;QACnB;MAAE,EACH,CAAC,EACDT,SAAS,IACR/D,MAAM,CAACyB,SAAS,CAACmD,cAAc,CAACjD,IAAI,CAACQ,IAAI,EAAE,OAAO,CAAC,iBACnD0C,oBAAQ,CAACC,YAAY,cACnB3F,MAAA,YAAA6E,aAAA,CAACtE,UAAA,WAAS;QACRqF,QAAQ,EAAE,SAAVA,QAAQA,CAAGjF,CAAC;UAAA,OAAM6D,MAAI,CAACP,KAAK,GAAGtD,CAAC;QAAA,CAAE;QAClCoD,QAAQ,EAAE,CAACF,gBAAiB;QAC5Bb,IAAI,EAAEA,IAAK;QACX2B,UAAU,EAAEA,UAAW;QACvBpB,QAAQ,EAAE,IAAI,CAACsC;MAAY,CAC5B,CAAC,EACFjB,SACF,CACY,CAAC;IAErB;EAAC;AAAA,EAlHwBkB,iBAAK,CAACC,SAAS;AAAA,IAAArE,gBAAA,aAA7Be,KAAK,eAAAnB,aAAA;EAEdqD,UAAU,EAAEqB,WAAK,CAACC,cAAc,CAACC;AAAU,GACxCC,yBAAkB;AAAA,IAAAzE,gBAAA,aAHZe,KAAK,kBAMM,CAAC,CAAC;AAAA,IAAA2D,QAAA,GAAA1D,OAAA,cA+GXD,KAAK","ignoreList":[]}
|
|
@@ -157,6 +157,7 @@ var RawBaseComponent = exports.RawBaseComponent = /*#__PURE__*/function (_React$
|
|
|
157
157
|
var _this$props4 = _this.props,
|
|
158
158
|
closed = _this$props4.closed,
|
|
159
159
|
disabled = _this$props4.disabled,
|
|
160
|
+
onClick = _this$props4.onClick,
|
|
160
161
|
isToolActive = _this$props4.isToolActive,
|
|
161
162
|
labelModeEnabled = _this$props4.labelModeEnabled,
|
|
162
163
|
limitLabeling = _this$props4.limitLabeling,
|
|
@@ -192,9 +193,7 @@ var RawBaseComponent = exports.RawBaseComponent = /*#__PURE__*/function (_React$
|
|
|
192
193
|
_this.close();
|
|
193
194
|
return;
|
|
194
195
|
}
|
|
195
|
-
|
|
196
|
-
// Clicks on existing mark points/lines should not create new marks.
|
|
197
|
-
// Moving is handled entirely by drag. Do nothing here.
|
|
196
|
+
onClick(point || data);
|
|
198
197
|
});
|
|
199
198
|
// IMPORTANT, do not remove
|
|
200
199
|
(0, _defineProperty2["default"])(_this, "input", {});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component.js","names":["_react","_interopRequireDefault","require","_propTypes","_types","_point","_lodashEs","_debug","_line","_polygon","_interopRequireWildcard","_plot","_invariant","_reactDom","_markLabel","_utils","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_callSuper","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","apply","Boolean","prototype","valueOf","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","log","debug","buildLines","exports","points","closed","expanded","reduce","acc","p","index","isLast","next","all","chunk","map","_ref","_ref2","_slicedToArray2","from","to","initial","swap","arr","_len","rest","Array","_key","pairs","pr","_pr","replacement","invariant","Number","isFinite","splice","_toConsumableArray2","RawBaseComponent","_React$Component","_this","_classCallCheck2","_len2","args","_key2","concat","_this$props","props","onChange","update","overlapPoint","find","equalPoints","label","existing","point","_this$props2","onClosePolygon","_this$props3","onChangeProps","updatedPoint","isEmpty","data","_this$props4","disabled","isToolActive","labelModeEnabled","limitLabeling","onChangeLabelProps","_getRightestPoints","getRightestPoints","a","b","middle","getMiddleOfTwoPoints","input","focus","close","_inherits2","_createClass2","key","value","render","_this2","_this$props5","coordinatesOnHover","correctness","graphProps","onDragStart","onDragStop","labelNode","lines","common","polygonLabelIndex","polygonLabelNode","ReactDOM","createPortal","createElement","inputRef","mark","Fragment","_extends2","onDrag","dragPoly","bind","onClick","clickPoint","Polygon","l","dragLine","BasePoint","x","y","dragPoint","labelChange","React","Component","classes","PropTypes","object","className","string","bool","arrayOf","types","PointType","func","isRequired","GraphPropsType","BaseComponent","_React$Component2","_this3","state","_getRightestPoints2","setState","_this3$props","_this3$props2","onComplete","m","undefined","_this$props6","stateMark","change","changeLabelProps","changeProps","closePolygon","dragStart","dragStop","ToolPropTypeFields"],"sources":["../../../src/tools/polygon/component.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { ToolPropTypeFields } from '../shared/types';\nimport { BasePoint } from '../shared/point';\nimport { chunk, initial, isEmpty } from 'lodash-es';\nimport debug from 'debug';\nimport Line from './line';\nimport DraggablePolygon, { Polygon } from './polygon';\nimport { types } from '@pie-lib/plot';\nimport invariant from 'invariant';\nimport ReactDOM from 'react-dom';\nimport MarkLabel from '../../mark-label';\nimport { equalPoints, getMiddleOfTwoPoints, getRightestPoints } from '../../utils';\n\nconst log = debug('pie-lib:graphing:polygon');\n\nexport const buildLines = (points, closed) => {\n const expanded = points.reduce((acc, p, index) => {\n acc.push({ ...p, index });\n\n const isLast = index === points.length - 1;\n const next = isLast ? 0 : index + 1;\n\n acc.push({ ...points[next], index: next });\n\n return acc;\n }, []);\n\n const all = chunk(expanded, 2).map(([from, to]) => {\n return { from, to };\n });\n\n return closed ? all : initial(all);\n};\n\nexport const swap = (arr, ...rest) => {\n const pairs = chunk(rest, 2);\n\n return pairs.reduce(\n (acc, pr) => {\n if (pr.length === 2) {\n let [e, replacement] = pr;\n\n invariant(Number.isFinite(e.index), 'Index must be defined');\n\n const index = e.index;\n // const i = acc.findIndex(pt => pt.x === e.x && pt.y === e.y);\n\n if (index >= 0) {\n acc.splice(index, 1, replacement);\n\n return acc;\n } else {\n return acc;\n }\n } else {\n return acc;\n }\n },\n [...arr],\n );\n};\n\nexport class RawBaseComponent extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n className: PropTypes.string,\n disabled: PropTypes.bool,\n correctness: PropTypes.string,\n points: PropTypes.arrayOf(types.PointType),\n closed: PropTypes.bool,\n coordinatesOnHover: PropTypes.bool,\n onChange: PropTypes.func.isRequired,\n onClosePolygon: PropTypes.func.isRequired,\n onDragStart: PropTypes.func,\n onDragStop: PropTypes.func,\n onClick: PropTypes.func,\n graphProps: types.GraphPropsType.isRequired,\n isToolActive: PropTypes.bool,\n middle: PropTypes.object,\n labelNode: PropTypes.object,\n labelModeEnabled: PropTypes.bool,\n limitLabeling: PropTypes.bool,\n onChangeLabelProps: PropTypes.func,\n onChangeProps: PropTypes.func,\n };\n\n static defaultProps = {\n points: [],\n };\n\n dragPoint = (index, from, to) => {\n log('[dragPoint] from, to:', from, to);\n const { onChange, points } = this.props;\n const update = [...points];\n const overlapPoint = !!(points || []).find((p) => equalPoints(p, to));\n\n if (equalPoints(from, to) || overlapPoint) {\n return;\n }\n\n if (points[index].label) {\n to.label = points[index].label;\n }\n\n update.splice(index, 1, to);\n onChange(update);\n };\n\n dragLine = (existing, next) => {\n log('[dragLine]: ', existing, next);\n const { onChange } = this.props;\n\n if (existing.from.label) {\n next.from.label = existing.from.label;\n }\n\n if (existing.to.label) {\n next.to.label = existing.to.label;\n }\n\n const points = swap(this.props.points, existing.from, next.from, existing.to, next.to);\n onChange(points);\n };\n\n dragPoly = (existing, next) => {\n log('[dragPoly] ', existing, next);\n const { onChange } = this.props;\n\n next.forEach((point, index) => {\n if (existing[index].label) {\n next[index].label = existing[index].label;\n }\n });\n\n onChange(next);\n };\n\n close = () => {\n const { points, onClosePolygon } = this.props;\n log('[close] ...');\n\n if (points.length >= 3) {\n onClosePolygon();\n } else {\n log('[close] - nope');\n }\n };\n\n labelChange = (point, index) => {\n const { points, onChangeProps } = this.props;\n const updatedPoint = { ...point };\n\n if (!point.label || isEmpty(point.label)) {\n delete updatedPoint.label;\n }\n\n const update = [...points];\n\n update.splice(index, 1, updatedPoint);\n onChangeProps(update);\n };\n\n clickPoint = (point, index, data) => {\n const {\n closed,\n disabled,\n isToolActive,\n labelModeEnabled,\n limitLabeling,\n onChangeProps,\n onChangeLabelProps,\n points,\n } = this.props;\n\n if (labelModeEnabled) {\n // limit labeling the points of the polygon\n if (disabled || limitLabeling) {\n return;\n }\n\n if (points && index === points.length) {\n const { a, b } = getRightestPoints(points);\n const middle = { label: '', ...point, ...getMiddleOfTwoPoints(a, b) };\n\n onChangeLabelProps(middle);\n } else {\n const update = [...points];\n\n update.splice(index, 1, { label: '', ...point });\n onChangeProps(update);\n }\n\n if (this.input[index]) {\n this.input[index].focus();\n }\n\n return;\n }\n\n if (isToolActive && !closed && index === 0) {\n this.close();\n return;\n }\n\n // Clicks on existing mark points/lines should not create new marks.\n // Moving is handled entirely by drag. Do nothing here.\n };\n\n // IMPORTANT, do not remove\n input = {};\n\n render() {\n const {\n closed,\n coordinatesOnHover,\n correctness,\n disabled,\n graphProps,\n onChangeLabelProps,\n onDragStart,\n onDragStop,\n points,\n middle,\n labelNode,\n labelModeEnabled,\n } = this.props;\n const lines = buildLines(points, closed);\n const common = { onDragStart, onDragStop, graphProps, disabled, correctness };\n const polygonLabelIndex = (points && points.length) || 0;\n let polygonLabelNode = null;\n\n if (labelNode && middle && Object.prototype.hasOwnProperty.call(middle, 'label')) {\n polygonLabelNode = ReactDOM.createPortal(\n <MarkLabel\n inputRef={(r) => (this.input[polygonLabelIndex] = r)}\n disabled={!labelModeEnabled}\n mark={middle}\n graphProps={graphProps}\n onChange={(label) => onChangeLabelProps({ ...middle, label })}\n />,\n labelNode,\n );\n }\n\n return (\n <g>\n {closed ? (\n <React.Fragment>\n <DraggablePolygon\n points={points}\n onDrag={this.dragPoly.bind(this, points)}\n closed={closed}\n {...common}\n onClick={this.clickPoint.bind(this, middle, polygonLabelIndex)}\n />\n {polygonLabelNode}\n </React.Fragment>\n ) : (\n <Polygon points={points} graphProps={graphProps} closed={closed} />\n )}\n {(lines || []).map((l, index) => (\n <Line\n key={`line-${index}`}\n from={l.from}\n to={l.to}\n onDrag={this.dragLine.bind(this, l)}\n {...common}\n onClick={this.clickPoint.bind(this, middle, polygonLabelIndex)}\n />\n ))}\n\n {(points || []).map((p, index) => {\n return [\n <BasePoint\n key={`point-${index}`}\n coordinatesOnHover={coordinatesOnHover}\n labelNode={labelNode}\n x={p.x}\n y={p.y}\n onDrag={this.dragPoint.bind(this, index, p)}\n {...common}\n onClick={this.clickPoint.bind(this, p, index)}\n />,\n labelNode && Object.prototype.hasOwnProperty.call(p, 'label')\n ? ReactDOM.createPortal(\n <MarkLabel\n inputRef={(r) => (this.input[index] = r)}\n disabled={!labelModeEnabled}\n mark={p}\n graphProps={graphProps}\n onChange={(label) => this.labelChange({ ...p, label }, index)}\n />,\n labelNode,\n )\n : null,\n ];\n })}\n </g>\n );\n }\n}\n\nexport const BaseComponent = RawBaseComponent;\n\nexport default class Component extends React.Component {\n static propTypes = {\n ...ToolPropTypeFields,\n graphProps: types.GraphPropsType.isRequired,\n };\n\n static defaultProps = {};\n\n constructor(props) {\n super(props);\n this.state = {};\n }\n\n change = (points) => {\n const {\n mark: { middle },\n } = this.props;\n const mark = { ...this.state.mark, points };\n\n if (middle) {\n const { a, b } = getRightestPoints(points);\n\n mark.middle = { ...middle, ...getMiddleOfTwoPoints(a, b) };\n }\n\n this.setState({ mark });\n };\n\n changeProps = (points) => {\n const mark = { ...this.props.mark, points };\n\n this.props.onChange(this.props.mark, mark);\n };\n\n changeLabelProps = (point) => {\n const { mark, onChange } = this.props;\n const middle = { ...mark.middle, ...point };\n\n onChange(mark, { ...mark, middle });\n };\n\n closePolygon = () => {\n log('[closePolygon] ...');\n const { onComplete, mark } = this.props;\n const update = { ...mark, closed: true };\n\n onComplete(mark, update);\n };\n\n dragStart = () => this.setState({ mark: this.props.mark });\n\n dragStop = () => {\n const { onChange } = this.props;\n const m = { ...this.state.mark };\n\n this.setState({ mark: undefined }, () => {\n onChange(this.props.mark, m);\n });\n };\n\n render() {\n const { coordinatesOnHover, mark, graphProps, onClick, isToolActive, labelNode, labelModeEnabled, limitLabeling } =\n this.props;\n const { mark: stateMark } = this.state;\n\n return (\n <BaseComponent\n {...(stateMark || mark)}\n coordinatesOnHover={coordinatesOnHover}\n onChange={this.change}\n onChangeLabelProps={this.changeLabelProps}\n onChangeProps={this.changeProps}\n onClosePolygon={this.closePolygon}\n onDragStart={this.dragStart}\n onDragStop={this.dragStop}\n onClick={onClick}\n graphProps={graphProps}\n isToolActive={isToolActive}\n labelNode={labelNode}\n labelModeEnabled={labelModeEnabled}\n limitLabeling={limitLabeling}\n />\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"component.js","names":["_react","_interopRequireDefault","require","_propTypes","_types","_point","_lodashEs","_debug","_line","_polygon","_interopRequireWildcard","_plot","_invariant","_reactDom","_markLabel","_utils","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_callSuper","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","apply","Boolean","prototype","valueOf","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","log","debug","buildLines","exports","points","closed","expanded","reduce","acc","p","index","isLast","next","all","chunk","map","_ref","_ref2","_slicedToArray2","from","to","initial","swap","arr","_len","rest","Array","_key","pairs","pr","_pr","replacement","invariant","Number","isFinite","splice","_toConsumableArray2","RawBaseComponent","_React$Component","_this","_classCallCheck2","_len2","args","_key2","concat","_this$props","props","onChange","update","overlapPoint","find","equalPoints","label","existing","point","_this$props2","onClosePolygon","_this$props3","onChangeProps","updatedPoint","isEmpty","data","_this$props4","disabled","onClick","isToolActive","labelModeEnabled","limitLabeling","onChangeLabelProps","_getRightestPoints","getRightestPoints","a","b","middle","getMiddleOfTwoPoints","input","focus","close","_inherits2","_createClass2","key","value","render","_this2","_this$props5","coordinatesOnHover","correctness","graphProps","onDragStart","onDragStop","labelNode","lines","common","polygonLabelIndex","polygonLabelNode","ReactDOM","createPortal","createElement","inputRef","mark","Fragment","_extends2","onDrag","dragPoly","bind","clickPoint","Polygon","l","dragLine","BasePoint","x","y","dragPoint","labelChange","React","Component","classes","PropTypes","object","className","string","bool","arrayOf","types","PointType","func","isRequired","GraphPropsType","BaseComponent","_React$Component2","_this3","state","_getRightestPoints2","setState","_this3$props","_this3$props2","onComplete","m","undefined","_this$props6","stateMark","change","changeLabelProps","changeProps","closePolygon","dragStart","dragStop","ToolPropTypeFields"],"sources":["../../../src/tools/polygon/component.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { ToolPropTypeFields } from '../shared/types';\nimport { BasePoint } from '../shared/point';\nimport { chunk, initial, isEmpty } from 'lodash-es';\nimport debug from 'debug';\nimport Line from './line';\nimport DraggablePolygon, { Polygon } from './polygon';\nimport { types } from '@pie-lib/plot';\nimport invariant from 'invariant';\nimport ReactDOM from 'react-dom';\nimport MarkLabel from '../../mark-label';\nimport { equalPoints, getMiddleOfTwoPoints, getRightestPoints } from '../../utils';\n\nconst log = debug('pie-lib:graphing:polygon');\n\nexport const buildLines = (points, closed) => {\n const expanded = points.reduce((acc, p, index) => {\n acc.push({ ...p, index });\n\n const isLast = index === points.length - 1;\n const next = isLast ? 0 : index + 1;\n\n acc.push({ ...points[next], index: next });\n\n return acc;\n }, []);\n\n const all = chunk(expanded, 2).map(([from, to]) => {\n return { from, to };\n });\n\n return closed ? all : initial(all);\n};\n\nexport const swap = (arr, ...rest) => {\n const pairs = chunk(rest, 2);\n\n return pairs.reduce(\n (acc, pr) => {\n if (pr.length === 2) {\n let [e, replacement] = pr;\n\n invariant(Number.isFinite(e.index), 'Index must be defined');\n\n const index = e.index;\n // const i = acc.findIndex(pt => pt.x === e.x && pt.y === e.y);\n\n if (index >= 0) {\n acc.splice(index, 1, replacement);\n\n return acc;\n } else {\n return acc;\n }\n } else {\n return acc;\n }\n },\n [...arr],\n );\n};\n\nexport class RawBaseComponent extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n className: PropTypes.string,\n disabled: PropTypes.bool,\n correctness: PropTypes.string,\n points: PropTypes.arrayOf(types.PointType),\n closed: PropTypes.bool,\n coordinatesOnHover: PropTypes.bool,\n onChange: PropTypes.func.isRequired,\n onClosePolygon: PropTypes.func.isRequired,\n onDragStart: PropTypes.func,\n onDragStop: PropTypes.func,\n onClick: PropTypes.func,\n graphProps: types.GraphPropsType.isRequired,\n isToolActive: PropTypes.bool,\n middle: PropTypes.object,\n labelNode: PropTypes.object,\n labelModeEnabled: PropTypes.bool,\n limitLabeling: PropTypes.bool,\n onChangeLabelProps: PropTypes.func,\n onChangeProps: PropTypes.func,\n };\n\n static defaultProps = {\n points: [],\n };\n\n dragPoint = (index, from, to) => {\n log('[dragPoint] from, to:', from, to);\n const { onChange, points } = this.props;\n const update = [...points];\n const overlapPoint = !!(points || []).find((p) => equalPoints(p, to));\n\n if (equalPoints(from, to) || overlapPoint) {\n return;\n }\n\n if (points[index].label) {\n to.label = points[index].label;\n }\n\n update.splice(index, 1, to);\n onChange(update);\n };\n\n dragLine = (existing, next) => {\n log('[dragLine]: ', existing, next);\n const { onChange } = this.props;\n\n if (existing.from.label) {\n next.from.label = existing.from.label;\n }\n\n if (existing.to.label) {\n next.to.label = existing.to.label;\n }\n\n const points = swap(this.props.points, existing.from, next.from, existing.to, next.to);\n onChange(points);\n };\n\n dragPoly = (existing, next) => {\n log('[dragPoly] ', existing, next);\n const { onChange } = this.props;\n\n next.forEach((point, index) => {\n if (existing[index].label) {\n next[index].label = existing[index].label;\n }\n });\n\n onChange(next);\n };\n\n close = () => {\n const { points, onClosePolygon } = this.props;\n log('[close] ...');\n\n if (points.length >= 3) {\n onClosePolygon();\n } else {\n log('[close] - nope');\n }\n };\n\n labelChange = (point, index) => {\n const { points, onChangeProps } = this.props;\n const updatedPoint = { ...point };\n\n if (!point.label || isEmpty(point.label)) {\n delete updatedPoint.label;\n }\n\n const update = [...points];\n\n update.splice(index, 1, updatedPoint);\n onChangeProps(update);\n };\n\n clickPoint = (point, index, data) => {\n const {\n closed,\n disabled,\n onClick,\n isToolActive,\n labelModeEnabled,\n limitLabeling,\n onChangeProps,\n onChangeLabelProps,\n points,\n } = this.props;\n\n if (labelModeEnabled) {\n // limit labeling the points of the polygon\n if (disabled || limitLabeling) {\n return;\n }\n\n if (points && index === points.length) {\n const { a, b } = getRightestPoints(points);\n const middle = { label: '', ...point, ...getMiddleOfTwoPoints(a, b) };\n\n onChangeLabelProps(middle);\n } else {\n const update = [...points];\n\n update.splice(index, 1, { label: '', ...point });\n onChangeProps(update);\n }\n\n if (this.input[index]) {\n this.input[index].focus();\n }\n\n return;\n }\n\n if (isToolActive && !closed && index === 0) {\n this.close();\n return;\n }\n\n onClick(point || data);\n };\n\n // IMPORTANT, do not remove\n input = {};\n\n render() {\n const {\n closed,\n coordinatesOnHover,\n correctness,\n disabled,\n graphProps,\n onChangeLabelProps,\n onDragStart,\n onDragStop,\n points,\n middle,\n labelNode,\n labelModeEnabled,\n } = this.props;\n const lines = buildLines(points, closed);\n const common = { onDragStart, onDragStop, graphProps, disabled, correctness };\n const polygonLabelIndex = (points && points.length) || 0;\n let polygonLabelNode = null;\n\n if (labelNode && middle && Object.prototype.hasOwnProperty.call(middle, 'label')) {\n polygonLabelNode = ReactDOM.createPortal(\n <MarkLabel\n inputRef={(r) => (this.input[polygonLabelIndex] = r)}\n disabled={!labelModeEnabled}\n mark={middle}\n graphProps={graphProps}\n onChange={(label) => onChangeLabelProps({ ...middle, label })}\n />,\n labelNode,\n );\n }\n\n return (\n <g>\n {closed ? (\n <React.Fragment>\n <DraggablePolygon\n points={points}\n onDrag={this.dragPoly.bind(this, points)}\n closed={closed}\n {...common}\n onClick={this.clickPoint.bind(this, middle, polygonLabelIndex)}\n />\n {polygonLabelNode}\n </React.Fragment>\n ) : (\n <Polygon points={points} graphProps={graphProps} closed={closed} />\n )}\n {(lines || []).map((l, index) => (\n <Line\n key={`line-${index}`}\n from={l.from}\n to={l.to}\n onDrag={this.dragLine.bind(this, l)}\n {...common}\n onClick={this.clickPoint.bind(this, middle, polygonLabelIndex)}\n />\n ))}\n\n {(points || []).map((p, index) => {\n return [\n <BasePoint\n key={`point-${index}`}\n coordinatesOnHover={coordinatesOnHover}\n labelNode={labelNode}\n x={p.x}\n y={p.y}\n onDrag={this.dragPoint.bind(this, index, p)}\n {...common}\n onClick={this.clickPoint.bind(this, p, index)}\n />,\n labelNode && Object.prototype.hasOwnProperty.call(p, 'label')\n ? ReactDOM.createPortal(\n <MarkLabel\n inputRef={(r) => (this.input[index] = r)}\n disabled={!labelModeEnabled}\n mark={p}\n graphProps={graphProps}\n onChange={(label) => this.labelChange({ ...p, label }, index)}\n />,\n labelNode,\n )\n : null,\n ];\n })}\n </g>\n );\n }\n}\n\nexport const BaseComponent = RawBaseComponent;\n\nexport default class Component extends React.Component {\n static propTypes = {\n ...ToolPropTypeFields,\n graphProps: types.GraphPropsType.isRequired,\n };\n\n static defaultProps = {};\n\n constructor(props) {\n super(props);\n this.state = {};\n }\n\n change = (points) => {\n const {\n mark: { middle },\n } = this.props;\n const mark = { ...this.state.mark, points };\n\n if (middle) {\n const { a, b } = getRightestPoints(points);\n\n mark.middle = { ...middle, ...getMiddleOfTwoPoints(a, b) };\n }\n\n this.setState({ mark });\n };\n\n changeProps = (points) => {\n const mark = { ...this.props.mark, points };\n\n this.props.onChange(this.props.mark, mark);\n };\n\n changeLabelProps = (point) => {\n const { mark, onChange } = this.props;\n const middle = { ...mark.middle, ...point };\n\n onChange(mark, { ...mark, middle });\n };\n\n closePolygon = () => {\n log('[closePolygon] ...');\n const { onComplete, mark } = this.props;\n const update = { ...mark, closed: true };\n\n onComplete(mark, update);\n };\n\n dragStart = () => this.setState({ mark: this.props.mark });\n\n dragStop = () => {\n const { onChange } = this.props;\n const m = { ...this.state.mark };\n\n this.setState({ mark: undefined }, () => {\n onChange(this.props.mark, m);\n });\n };\n\n render() {\n const { coordinatesOnHover, mark, graphProps, onClick, isToolActive, labelNode, labelModeEnabled, limitLabeling } =\n this.props;\n const { mark: stateMark } = this.state;\n\n return (\n <BaseComponent\n {...(stateMark || mark)}\n coordinatesOnHover={coordinatesOnHover}\n onChange={this.change}\n onChangeLabelProps={this.changeLabelProps}\n onChangeProps={this.changeProps}\n onClosePolygon={this.closePolygon}\n onDragStart={this.dragStart}\n onDragStop={this.dragStop}\n onClick={onClick}\n graphProps={graphProps}\n isToolActive={isToolActive}\n labelNode={labelNode}\n labelModeEnabled={labelModeEnabled}\n limitLabeling={limitLabeling}\n />\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -91,14 +91,17 @@ var lineToolComponent = exports.lineToolComponent = function lineToolComponent(C
|
|
|
91
91
|
(0, _classCallCheck2["default"])(this, LineToolComponent);
|
|
92
92
|
_this = _callSuper(this, LineToolComponent, [props]);
|
|
93
93
|
(0, _defineProperty2["default"])(_this, "startDrag", function () {
|
|
94
|
-
|
|
94
|
+
var onDragStart = _this.props.onDragStart;
|
|
95
|
+
_this.setState({
|
|
95
96
|
mark: _objectSpread({}, _this.props.mark)
|
|
96
97
|
});
|
|
98
|
+
if (onDragStart) onDragStart();
|
|
97
99
|
});
|
|
98
100
|
(0, _defineProperty2["default"])(_this, "stopDrag", function () {
|
|
99
101
|
var _this$props = _this.props,
|
|
100
102
|
onChange = _this$props.onChange,
|
|
101
|
-
mark = _this$props.mark
|
|
103
|
+
mark = _this$props.mark,
|
|
104
|
+
onDragStop = _this$props.onDragStop;
|
|
102
105
|
var update = _objectSpread({}, _this.state.mark);
|
|
103
106
|
_this.setState({
|
|
104
107
|
mark: undefined
|
|
@@ -111,6 +114,7 @@ var lineToolComponent = exports.lineToolComponent = function lineToolComponent(C
|
|
|
111
114
|
if (!(0, _lodashEs.isEqual)(mark, update) && !shouldNotChange) {
|
|
112
115
|
onChange(mark, update);
|
|
113
116
|
}
|
|
117
|
+
if (onDragStop) onDragStop();
|
|
114
118
|
});
|
|
115
119
|
});
|
|
116
120
|
(0, _defineProperty2["default"])(_this, "changeMark", function (_ref2) {
|
|
@@ -332,11 +336,10 @@ var lineBase = exports.lineBase = function lineBase(Comp, opts) {
|
|
|
332
336
|
from = _this2$props5.from,
|
|
333
337
|
to = _this2$props5.to,
|
|
334
338
|
labelModeEnabled = _this2$props5.labelModeEnabled,
|
|
335
|
-
limitLabeling = _this2$props5.limitLabeling
|
|
339
|
+
limitLabeling = _this2$props5.limitLabeling,
|
|
340
|
+
onClick = _this2$props5.onClick;
|
|
336
341
|
if (!labelModeEnabled) {
|
|
337
|
-
|
|
338
|
-
// Moving is handled entirely by drag. Do nothing here.
|
|
339
|
-
return;
|
|
342
|
+
onClick(point || data);
|
|
340
343
|
}
|
|
341
344
|
if (disabled) {
|
|
342
345
|
return;
|
|
@@ -386,7 +389,8 @@ var lineBase = exports.lineBase = function lineBase(Comp, opts) {
|
|
|
386
389
|
onDragStart: onDragStart,
|
|
387
390
|
onDragStop: onDragStop,
|
|
388
391
|
disabled: disabled,
|
|
389
|
-
correctness: correctness
|
|
392
|
+
correctness: correctness,
|
|
393
|
+
onClick: onClick
|
|
390
394
|
};
|
|
391
395
|
var angle = to ? _plot.trig.toDegrees(_plot.trig.angle(from, to)) : 0;
|
|
392
396
|
var fromLabelNode = null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_lodashEs","_point","_plot","_propTypes","_styles","_reactDom","_markLabel","_renderUi","_utils","_styles2","_callSuper","t","o","e","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","apply","Boolean","prototype","valueOf","call","ownKeys","r","Object","keys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","enumerable","push","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","StyledLineGroup","styled","_ref","disabled","correctness","fill","stroke","color","defaults","BLACK","strokeWidth","transition","PRIMARY_DARK","disabledSecondary","correct","incorrect","missing","strokeDasharray","lineTool","exports","type","Component","addPoint","point","mark","equalPoints","root","building","from","to","lineToolComponent","_LineToolComponent","_React$Component","LineToolComponent","props","_this","_classCallCheck2","setState","_this$props","onChange","update","state","undefined","shouldNotChange","sameAxes","y","isEqual","_ref2","middle","_ref3","_this$props2","_inherits2","_createClass2","key","value","render","_this$props3","graphProps","onClick","labelNode","labelModeEnabled","coordinatesOnHover","limitLabeling","cloneDeep","isBackground","createElement","changeMark","changeMarkProps","onDragStart","startDrag","onDragStop","stopDrag","React","types","ToolPropTypeFields","GraphPropsType","isRequired","PropTypes","bool","func","PointType","dragOpts","bounds","_ref4","domain","range","area","utils","lineToArea","anchorPoint","fromDelta","delta","add","lineBase","Comp","opts","DraggableComp","gridDraggable","FromPoint","BasePoint","ToPoint","LineBase","_React$Component2","_this2","_len","args","Array","_key","concat","_this2$props","getMiddleOfTwoPoints","_ref5","draggedFrom","draggedTo","_this2$props2","label","updated","_this2$props3","onChangePoint","_this2$props4","isEmpty","data","_this2$props5","input","focus","_this3","_this$props4","common","angle","trig","toDegrees","fromLabelNode","toLabelNode","lineLabelNode","hasOwnProperty","ReactDOM","createPortal","inputRef","labelChange","_extends2","onDrag","dragComp","clickPoint","x","dragFrom","dragTo","string","object","styles","line","arrow","disabledArrow","theme"],"sources":["../../../../src/tools/shared/line/index.jsx"],"sourcesContent":["import React from 'react';\nimport { cloneDeep, isEmpty, isEqual } from 'lodash-es';\nimport { BasePoint } from '../point';\nimport { gridDraggable, trig, types, utils } from '@pie-lib/plot';\nimport PropTypes from 'prop-types';\nimport { correct, disabled, disabledSecondary, incorrect, missing } from '../styles';\nimport ReactDOM from 'react-dom';\nimport MarkLabel from '../../../mark-label';\nimport { color } from '@pie-lib/render-ui';\nimport { equalPoints, getMiddleOfTwoPoints, sameAxes } from '../../../utils';\nimport { styled } from '@mui/material/styles';\n\nconst StyledLineGroup = styled('g')(({ disabled, correctness }) => ({\n '& line': {\n fill: 'transparent',\n stroke: color.defaults.BLACK,\n strokeWidth: 3,\n transition: 'stroke 200ms ease-in, stroke-width 200ms ease-in',\n '&:hover': {\n strokeWidth: 6,\n stroke: color.defaults.PRIMARY_DARK,\n },\n },\n ...(disabled && {\n '& line': {\n ...disabledSecondary('stroke'),\n strokeWidth: 2,\n },\n }),\n ...(correctness === 'correct' && {\n '& line': {\n ...correct('stroke'),\n },\n }),\n ...(correctness === 'incorrect' && {\n '& line': {\n ...incorrect('stroke'),\n },\n }),\n ...(correctness === 'missing' && {\n '& line': {\n ...missing('stroke'),\n strokeWidth: 1,\n strokeDasharray: '4 3',\n },\n }),\n}));\n\nexport const lineTool = (type, Component) => () => ({\n type,\n Component,\n addPoint: (point, mark) => {\n if (mark && equalPoints(mark.root, point)) {\n return mark;\n }\n\n if (!mark) {\n return {\n type,\n building: true,\n from: point,\n };\n }\n\n if (equalPoints(point, mark.from)) {\n return { ...mark };\n }\n\n return { ...mark, building: false, to: point };\n },\n});\n\nexport const lineToolComponent = (Component) => {\n return class LineToolComponent extends React.Component {\n static propTypes = {\n ...types.ToolPropTypeFields,\n graphProps: types.GraphPropsType.isRequired,\n limitLabeling: PropTypes.bool,\n changeMarkProps: PropTypes.func,\n disabled: PropTypes.bool,\n from: types.PointType,\n to: types.PointType,\n labelModeEnabled: PropTypes.bool,\n onClick: PropTypes.func,\n };\n\n constructor(props) {\n super(props);\n this.state = {};\n }\n\n startDrag = () => this.setState({ mark: { ...this.props.mark } });\n\n stopDrag = () => {\n const { onChange, mark } = this.props;\n const update = { ...this.state.mark };\n\n this.setState({ mark: undefined }, () => {\n const { type } = update;\n let shouldNotChange =\n type &&\n (type === 'parabola' || type === 'sine' || type === 'absolute' || type === 'exponential') &&\n sameAxes(update.from, update.to);\n if (!shouldNotChange && type && type === 'exponential' && update.from && update.to) {\n shouldNotChange = update.from.y === 0 || update.to.y === 0 || update.from.y * update.to.y < 0;\n }\n if (!isEqual(mark, update) && !shouldNotChange) {\n onChange(mark, update);\n }\n });\n };\n\n changeMark = ({ from, to, middle }) => {\n let mark = { ...this.state.mark, from, to };\n\n if (middle) {\n mark = { ...mark, middle };\n }\n\n this.setState({ mark });\n };\n\n changeMarkProps = ({ from, to, middle }) => {\n const { onChange, mark } = this.props;\n let update = { ...mark, ...this.state.mark };\n\n if (from) {\n update = { ...update, from };\n }\n\n if (to) {\n update = { ...update, to };\n }\n\n if (middle) {\n update = { ...update, middle };\n }\n\n if (!isEqual(mark, update)) {\n onChange(mark, update);\n }\n };\n\n render() {\n const { graphProps, onClick, labelNode, labelModeEnabled, coordinatesOnHover, limitLabeling } = this.props;\n const mark = this.state.mark ? this.state.mark : this.props.mark;\n\n const from = cloneDeep(mark.from);\n const to = cloneDeep(mark.to);\n const middle = cloneDeep(mark.middle);\n\n // SET DISABLED\n // if it's a background mark, we need to force disable it\n if (from && mark.isBackground) {\n from.disabled = true;\n }\n\n if (to && mark.isBackground) {\n to.disabled = true;\n }\n\n if (middle && mark.isBackground) {\n middle.disabled = true;\n }\n\n return (\n <Component\n disabled={mark.disabled}\n coordinatesOnHover={coordinatesOnHover}\n correctness={mark.correctness}\n from={from}\n to={to}\n middle={middle}\n graphProps={graphProps}\n onChange={this.changeMark}\n changeMarkProps={this.changeMarkProps}\n onClick={onClick}\n onDragStart={this.startDrag}\n onDragStop={this.stopDrag}\n labelNode={labelNode}\n labelModeEnabled={labelModeEnabled}\n limitLabeling={limitLabeling}\n />\n );\n }\n };\n};\n\nconst dragOpts = () => ({\n bounds: (props, { domain, range }) => {\n const area = utils.lineToArea(props.from, props.to);\n return utils.bounds(area, domain, range);\n },\n anchorPoint: (props) => {\n const { from } = props;\n return from;\n },\n fromDelta: (props, delta) => {\n const { from, to } = props;\n return {\n from: utils.point(from).add(utils.point(delta)),\n to: utils.point(to).add(utils.point(delta)),\n };\n },\n});\n\nexport const lineBase = (Comp, opts) => {\n const DraggableComp = gridDraggable(dragOpts())(Comp);\n\n const FromPoint = opts && opts.from ? opts.from : BasePoint;\n const ToPoint = opts && opts.to ? opts.to : BasePoint;\n\n class LineBase extends React.Component {\n static propTypes = {\n coordinatesOnHover: PropTypes.bool,\n graphProps: types.GraphPropsType,\n from: types.PointType,\n to: types.PointType,\n middle: types.PointType,\n onChange: PropTypes.func,\n onDragStart: PropTypes.func,\n onDragStop: PropTypes.func,\n onClick: PropTypes.func,\n correctness: PropTypes.string,\n disabled: PropTypes.bool,\n limitLabeling: PropTypes.bool,\n changeMarkProps: PropTypes.func,\n labelModeEnabled: PropTypes.bool,\n labelNode: PropTypes.object,\n };\n\n onChangePoint = (point) => {\n const { middle, onChange } = this.props;\n const { from, to } = point;\n\n // because point.from.label and point.to.label can be different\n if (!equalPoints(from, to)) {\n if (middle) {\n point.middle = { ...middle, ...getMiddleOfTwoPoints(from, to) };\n }\n\n onChange(point);\n }\n };\n\n dragComp = ({ from: draggedFrom, to: draggedTo }) => {\n const { from, to, onChange, middle } = this.props;\n\n if (from.label) {\n draggedFrom.label = from.label;\n }\n\n if (to.label) {\n draggedTo.label = to.label;\n }\n\n const updated = { from: draggedFrom, to: draggedTo };\n\n if (middle) {\n updated.middle = { ...middle, ...getMiddleOfTwoPoints(draggedFrom, draggedTo) };\n }\n\n onChange(updated);\n };\n\n dragFrom = (draggedFrom) => {\n const { from, to } = this.props;\n\n if (from.label) {\n draggedFrom.label = from.label;\n }\n\n if (!equalPoints(draggedFrom, to)) {\n this.onChangePoint({ from: draggedFrom, to: to });\n }\n };\n\n dragTo = (draggedTo) => {\n const { from, to } = this.props;\n\n if (to.label) {\n draggedTo.label = to.label;\n }\n\n if (!equalPoints(from, draggedTo)) {\n this.onChangePoint({ from: from, to: draggedTo });\n }\n };\n\n labelChange = (point, type) => {\n const { changeMarkProps } = this.props;\n const update = { ...point };\n\n if (!point.label || isEmpty(point.label)) {\n delete update.label;\n }\n\n changeMarkProps({ [type]: update });\n };\n\n clickPoint = (point, type, data) => {\n const { changeMarkProps, disabled, from, to, labelModeEnabled, limitLabeling } = this.props;\n\n if (!labelModeEnabled) {\n // Clicks on existing mark points/lines should not create new marks.\n // Moving is handled entirely by drag. Do nothing here.\n return;\n }\n\n if (disabled) {\n return;\n }\n\n // limit labeling the points of the line\n if (limitLabeling) {\n return;\n }\n\n if (type === 'middle' && !point && from && to) {\n point = { ...point, ...getMiddleOfTwoPoints(from, to) };\n }\n\n changeMarkProps({ from, to, [type]: { label: '', ...point } });\n\n if (this.input[type]) {\n this.input[type].focus();\n }\n };\n\n // IMPORTANT, do not remove\n input = {};\n\n render() {\n const {\n coordinatesOnHover,\n graphProps,\n onDragStart,\n onDragStop,\n from,\n to,\n middle,\n disabled,\n correctness,\n onClick,\n labelNode,\n labelModeEnabled,\n } = this.props;\n const common = { graphProps, onDragStart, onDragStop, disabled, correctness };\n const angle = to ? trig.toDegrees(trig.angle(from, to)) : 0;\n\n let fromLabelNode = null;\n let toLabelNode = null;\n let lineLabelNode = null;\n\n if (labelNode) {\n if (from && Object.prototype.hasOwnProperty.call(from, 'label')) {\n fromLabelNode = ReactDOM.createPortal(\n <MarkLabel\n inputRef={(r) => (this.input.from = r)}\n disabled={!labelModeEnabled}\n mark={from}\n graphProps={graphProps}\n onChange={(label) => this.labelChange({ ...from, label }, 'from')}\n />,\n labelNode,\n );\n }\n\n if (to && Object.prototype.hasOwnProperty.call(to, 'label')) {\n toLabelNode = ReactDOM.createPortal(\n <MarkLabel\n inputRef={(r) => (this.input.to = r)}\n disabled={!labelModeEnabled}\n mark={to}\n graphProps={graphProps}\n onChange={(label) => this.labelChange({ ...to, label }, 'to')}\n />,\n labelNode,\n );\n }\n\n if (middle && Object.prototype.hasOwnProperty.call(middle, 'label')) {\n lineLabelNode = ReactDOM.createPortal(\n <MarkLabel\n inputRef={(r) => (this.input.middle = r)}\n disabled={!labelModeEnabled}\n mark={middle}\n graphProps={graphProps}\n onChange={(label) => this.labelChange({ ...middle, label }, 'middle')}\n />,\n labelNode,\n );\n }\n }\n\n return (\n <StyledLineGroup disabled={disabled} correctness={correctness}>\n {to && (\n <DraggableComp\n from={from}\n to={to}\n middle={middle}\n onDrag={this.dragComp}\n {...common}\n onClick={(data) => this.clickPoint(middle, 'middle', data)}\n />\n )}\n {lineLabelNode}\n\n <FromPoint\n x={from.x}\n y={from.y}\n labelNode={labelNode}\n coordinatesOnHover={coordinatesOnHover}\n onDrag={this.dragFrom}\n {...common}\n onClick={(data) => this.clickPoint(from, 'from', data)}\n />\n {fromLabelNode}\n\n {to && (\n <ToPoint\n x={to.x}\n y={to.y}\n angle={angle} //angle + 45}\n labelNode={labelNode}\n coordinatesOnHover={coordinatesOnHover}\n onDrag={this.dragTo}\n {...common}\n onClick={(data) => this.clickPoint(to, 'to', data)}\n />\n )}\n {toLabelNode}\n </StyledLineGroup>\n );\n }\n }\n\n return LineBase;\n};\n\nexport const styles = {\n line: () => ({\n fill: 'transparent',\n stroke: color.defaults.BLACK,\n strokeWidth: 3,\n transition: 'stroke 200ms ease-in, stroke-width 200ms ease-in',\n '&:hover': {\n strokeWidth: 6,\n stroke: color.defaults.PRIMARY_DARK,\n },\n }),\n arrow: () => ({\n fill: color.defaults.BLACK,\n }),\n disabledArrow: () => ({\n ...disabledSecondary(),\n }),\n disabledSecondary: () => ({\n ...disabledSecondary('stroke'),\n strokeWidth: 2,\n }),\n disabled: () => ({\n ...disabled('stroke'),\n strokeWidth: 2,\n }),\n correct: (theme, key) => ({\n ...correct(key),\n }),\n incorrect: (theme, key) => ({\n ...incorrect(key),\n }),\n missing: (theme, key) => ({\n ...missing(key),\n strokeWidth: 1,\n strokeDasharray: '4 3',\n }),\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_lodashEs","_point","_plot","_propTypes","_styles","_reactDom","_markLabel","_renderUi","_utils","_styles2","_callSuper","t","o","e","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","apply","Boolean","prototype","valueOf","call","ownKeys","r","Object","keys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","enumerable","push","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","StyledLineGroup","styled","_ref","disabled","correctness","fill","stroke","color","defaults","BLACK","strokeWidth","transition","PRIMARY_DARK","disabledSecondary","correct","incorrect","missing","strokeDasharray","lineTool","exports","type","Component","addPoint","point","mark","equalPoints","root","building","from","to","lineToolComponent","_LineToolComponent","_React$Component","LineToolComponent","props","_this","_classCallCheck2","onDragStart","setState","_this$props","onChange","onDragStop","update","state","undefined","shouldNotChange","sameAxes","y","isEqual","_ref2","middle","_ref3","_this$props2","_inherits2","_createClass2","key","value","render","_this$props3","graphProps","onClick","labelNode","labelModeEnabled","coordinatesOnHover","limitLabeling","cloneDeep","isBackground","createElement","changeMark","changeMarkProps","startDrag","stopDrag","React","types","ToolPropTypeFields","GraphPropsType","isRequired","PropTypes","bool","func","PointType","dragOpts","bounds","_ref4","domain","range","area","utils","lineToArea","anchorPoint","fromDelta","delta","add","lineBase","Comp","opts","DraggableComp","gridDraggable","FromPoint","BasePoint","ToPoint","LineBase","_React$Component2","_this2","_len","args","Array","_key","concat","_this2$props","getMiddleOfTwoPoints","_ref5","draggedFrom","draggedTo","_this2$props2","label","updated","_this2$props3","onChangePoint","_this2$props4","isEmpty","data","_this2$props5","input","focus","_this3","_this$props4","common","angle","trig","toDegrees","fromLabelNode","toLabelNode","lineLabelNode","hasOwnProperty","ReactDOM","createPortal","inputRef","labelChange","_extends2","onDrag","dragComp","clickPoint","x","dragFrom","dragTo","string","object","styles","line","arrow","disabledArrow","theme"],"sources":["../../../../src/tools/shared/line/index.jsx"],"sourcesContent":["import React from 'react';\nimport { cloneDeep, isEmpty, isEqual } from 'lodash-es';\nimport { BasePoint } from '../point';\nimport { gridDraggable, trig, types, utils } from '@pie-lib/plot';\nimport PropTypes from 'prop-types';\nimport { correct, disabled, disabledSecondary, incorrect, missing } from '../styles';\nimport ReactDOM from 'react-dom';\nimport MarkLabel from '../../../mark-label';\nimport { color } from '@pie-lib/render-ui';\nimport { equalPoints, getMiddleOfTwoPoints, sameAxes } from '../../../utils';\nimport { styled } from '@mui/material/styles';\n\nconst StyledLineGroup = styled('g')(({ disabled, correctness }) => ({\n '& line': {\n fill: 'transparent',\n stroke: color.defaults.BLACK,\n strokeWidth: 3,\n transition: 'stroke 200ms ease-in, stroke-width 200ms ease-in',\n '&:hover': {\n strokeWidth: 6,\n stroke: color.defaults.PRIMARY_DARK,\n },\n },\n ...(disabled && {\n '& line': {\n ...disabledSecondary('stroke'),\n strokeWidth: 2,\n },\n }),\n ...(correctness === 'correct' && {\n '& line': {\n ...correct('stroke'),\n },\n }),\n ...(correctness === 'incorrect' && {\n '& line': {\n ...incorrect('stroke'),\n },\n }),\n ...(correctness === 'missing' && {\n '& line': {\n ...missing('stroke'),\n strokeWidth: 1,\n strokeDasharray: '4 3',\n },\n }),\n}));\n\nexport const lineTool = (type, Component) => () => ({\n type,\n Component,\n addPoint: (point, mark) => {\n if (mark && equalPoints(mark.root, point)) {\n return mark;\n }\n\n if (!mark) {\n return {\n type,\n building: true,\n from: point,\n };\n }\n\n if (equalPoints(point, mark.from)) {\n return { ...mark };\n }\n\n return { ...mark, building: false, to: point };\n },\n});\n\nexport const lineToolComponent = (Component) => {\n return class LineToolComponent extends React.Component {\n static propTypes = {\n ...types.ToolPropTypeFields,\n graphProps: types.GraphPropsType.isRequired,\n limitLabeling: PropTypes.bool,\n changeMarkProps: PropTypes.func,\n disabled: PropTypes.bool,\n from: types.PointType,\n to: types.PointType,\n labelModeEnabled: PropTypes.bool,\n onClick: PropTypes.func,\n };\n\n constructor(props) {\n super(props);\n this.state = {};\n }\n\n startDrag = () => {\n const { onDragStart } = this.props;\n this.setState({ mark: { ...this.props.mark } });\n if (onDragStart) onDragStart();\n };\n\n stopDrag = () => {\n const { onChange, mark, onDragStop } = this.props;\n const update = { ...this.state.mark };\n\n this.setState({ mark: undefined }, () => {\n const { type } = update;\n let shouldNotChange =\n type &&\n (type === 'parabola' || type === 'sine' || type === 'absolute' || type === 'exponential') &&\n sameAxes(update.from, update.to);\n if (!shouldNotChange && type && type === 'exponential' && update.from && update.to) {\n shouldNotChange = update.from.y === 0 || update.to.y === 0 || update.from.y * update.to.y < 0;\n }\n if (!isEqual(mark, update) && !shouldNotChange) {\n onChange(mark, update);\n }\n if (onDragStop) onDragStop();\n });\n };\n\n changeMark = ({ from, to, middle }) => {\n let mark = { ...this.state.mark, from, to };\n\n if (middle) {\n mark = { ...mark, middle };\n }\n\n this.setState({ mark });\n };\n\n changeMarkProps = ({ from, to, middle }) => {\n const { onChange, mark } = this.props;\n let update = { ...mark, ...this.state.mark };\n\n if (from) {\n update = { ...update, from };\n }\n\n if (to) {\n update = { ...update, to };\n }\n\n if (middle) {\n update = { ...update, middle };\n }\n\n if (!isEqual(mark, update)) {\n onChange(mark, update);\n }\n };\n\n render() {\n const { graphProps, onClick, labelNode, labelModeEnabled, coordinatesOnHover, limitLabeling } = this.props;\n const mark = this.state.mark ? this.state.mark : this.props.mark;\n\n const from = cloneDeep(mark.from);\n const to = cloneDeep(mark.to);\n const middle = cloneDeep(mark.middle);\n\n // SET DISABLED\n // if it's a background mark, we need to force disable it\n if (from && mark.isBackground) {\n from.disabled = true;\n }\n\n if (to && mark.isBackground) {\n to.disabled = true;\n }\n\n if (middle && mark.isBackground) {\n middle.disabled = true;\n }\n\n return (\n <Component\n disabled={mark.disabled}\n coordinatesOnHover={coordinatesOnHover}\n correctness={mark.correctness}\n from={from}\n to={to}\n middle={middle}\n graphProps={graphProps}\n onChange={this.changeMark}\n changeMarkProps={this.changeMarkProps}\n onClick={onClick}\n onDragStart={this.startDrag}\n onDragStop={this.stopDrag}\n labelNode={labelNode}\n labelModeEnabled={labelModeEnabled}\n limitLabeling={limitLabeling}\n />\n );\n }\n };\n};\n\nconst dragOpts = () => ({\n bounds: (props, { domain, range }) => {\n const area = utils.lineToArea(props.from, props.to);\n return utils.bounds(area, domain, range);\n },\n anchorPoint: (props) => {\n const { from } = props;\n return from;\n },\n fromDelta: (props, delta) => {\n const { from, to } = props;\n return {\n from: utils.point(from).add(utils.point(delta)),\n to: utils.point(to).add(utils.point(delta)),\n };\n },\n});\n\nexport const lineBase = (Comp, opts) => {\n const DraggableComp = gridDraggable(dragOpts())(Comp);\n\n const FromPoint = opts && opts.from ? opts.from : BasePoint;\n const ToPoint = opts && opts.to ? opts.to : BasePoint;\n\n class LineBase extends React.Component {\n static propTypes = {\n coordinatesOnHover: PropTypes.bool,\n graphProps: types.GraphPropsType,\n from: types.PointType,\n to: types.PointType,\n middle: types.PointType,\n onChange: PropTypes.func,\n onDragStart: PropTypes.func,\n onDragStop: PropTypes.func,\n onClick: PropTypes.func,\n correctness: PropTypes.string,\n disabled: PropTypes.bool,\n limitLabeling: PropTypes.bool,\n changeMarkProps: PropTypes.func,\n labelModeEnabled: PropTypes.bool,\n labelNode: PropTypes.object,\n };\n\n onChangePoint = (point) => {\n const { middle, onChange } = this.props;\n const { from, to } = point;\n\n // because point.from.label and point.to.label can be different\n if (!equalPoints(from, to)) {\n if (middle) {\n point.middle = { ...middle, ...getMiddleOfTwoPoints(from, to) };\n }\n\n onChange(point);\n }\n };\n\n dragComp = ({ from: draggedFrom, to: draggedTo }) => {\n const { from, to, onChange, middle } = this.props;\n\n if (from.label) {\n draggedFrom.label = from.label;\n }\n\n if (to.label) {\n draggedTo.label = to.label;\n }\n\n const updated = { from: draggedFrom, to: draggedTo };\n\n if (middle) {\n updated.middle = { ...middle, ...getMiddleOfTwoPoints(draggedFrom, draggedTo) };\n }\n\n onChange(updated);\n };\n\n dragFrom = (draggedFrom) => {\n const { from, to } = this.props;\n\n if (from.label) {\n draggedFrom.label = from.label;\n }\n\n if (!equalPoints(draggedFrom, to)) {\n this.onChangePoint({ from: draggedFrom, to: to });\n }\n };\n\n dragTo = (draggedTo) => {\n const { from, to } = this.props;\n\n if (to.label) {\n draggedTo.label = to.label;\n }\n\n if (!equalPoints(from, draggedTo)) {\n this.onChangePoint({ from: from, to: draggedTo });\n }\n };\n\n labelChange = (point, type) => {\n const { changeMarkProps } = this.props;\n const update = { ...point };\n\n if (!point.label || isEmpty(point.label)) {\n delete update.label;\n }\n\n changeMarkProps({ [type]: update });\n };\n\n clickPoint = (point, type, data) => {\n const { changeMarkProps, disabled, from, to, labelModeEnabled, limitLabeling, onClick } = this.props;\n\n if (!labelModeEnabled) {\n onClick(point || data);\n }\n\n if (disabled) {\n return;\n }\n\n // limit labeling the points of the line\n if (limitLabeling) {\n return;\n }\n\n if (type === 'middle' && !point && from && to) {\n point = { ...point, ...getMiddleOfTwoPoints(from, to) };\n }\n\n changeMarkProps({ from, to, [type]: { label: '', ...point } });\n\n if (this.input[type]) {\n this.input[type].focus();\n }\n };\n\n // IMPORTANT, do not remove\n input = {};\n\n render() {\n const {\n coordinatesOnHover,\n graphProps,\n onDragStart,\n onDragStop,\n from,\n to,\n middle,\n disabled,\n correctness,\n onClick,\n labelNode,\n labelModeEnabled,\n } = this.props;\n const common = { graphProps, onDragStart, onDragStop, disabled, correctness, onClick };\n const angle = to ? trig.toDegrees(trig.angle(from, to)) : 0;\n\n let fromLabelNode = null;\n let toLabelNode = null;\n let lineLabelNode = null;\n\n if (labelNode) {\n if (from && Object.prototype.hasOwnProperty.call(from, 'label')) {\n fromLabelNode = ReactDOM.createPortal(\n <MarkLabel\n inputRef={(r) => (this.input.from = r)}\n disabled={!labelModeEnabled}\n mark={from}\n graphProps={graphProps}\n onChange={(label) => this.labelChange({ ...from, label }, 'from')}\n />,\n labelNode,\n );\n }\n\n if (to && Object.prototype.hasOwnProperty.call(to, 'label')) {\n toLabelNode = ReactDOM.createPortal(\n <MarkLabel\n inputRef={(r) => (this.input.to = r)}\n disabled={!labelModeEnabled}\n mark={to}\n graphProps={graphProps}\n onChange={(label) => this.labelChange({ ...to, label }, 'to')}\n />,\n labelNode,\n );\n }\n\n if (middle && Object.prototype.hasOwnProperty.call(middle, 'label')) {\n lineLabelNode = ReactDOM.createPortal(\n <MarkLabel\n inputRef={(r) => (this.input.middle = r)}\n disabled={!labelModeEnabled}\n mark={middle}\n graphProps={graphProps}\n onChange={(label) => this.labelChange({ ...middle, label }, 'middle')}\n />,\n labelNode,\n );\n }\n }\n\n return (\n <StyledLineGroup disabled={disabled} correctness={correctness}>\n {to && (\n <DraggableComp\n from={from}\n to={to}\n middle={middle}\n onDrag={this.dragComp}\n {...common}\n onClick={(data) => this.clickPoint(middle, 'middle', data)}\n />\n )}\n {lineLabelNode}\n\n <FromPoint\n x={from.x}\n y={from.y}\n labelNode={labelNode}\n coordinatesOnHover={coordinatesOnHover}\n onDrag={this.dragFrom}\n {...common}\n onClick={(data) => this.clickPoint(from, 'from', data)}\n />\n {fromLabelNode}\n\n {to && (\n <ToPoint\n x={to.x}\n y={to.y}\n angle={angle} //angle + 45}\n labelNode={labelNode}\n coordinatesOnHover={coordinatesOnHover}\n onDrag={this.dragTo}\n {...common}\n onClick={(data) => this.clickPoint(to, 'to', data)}\n />\n )}\n {toLabelNode}\n </StyledLineGroup>\n );\n }\n }\n\n return LineBase;\n};\n\nexport const styles = {\n line: () => ({\n fill: 'transparent',\n stroke: color.defaults.BLACK,\n strokeWidth: 3,\n transition: 'stroke 200ms ease-in, stroke-width 200ms ease-in',\n '&:hover': {\n strokeWidth: 6,\n stroke: color.defaults.PRIMARY_DARK,\n },\n }),\n arrow: () => ({\n fill: color.defaults.BLACK,\n }),\n disabledArrow: () => ({\n ...disabledSecondary(),\n }),\n disabledSecondary: () => ({\n ...disabledSecondary('stroke'),\n strokeWidth: 2,\n }),\n disabled: () => ({\n ...disabled('stroke'),\n strokeWidth: 2,\n }),\n correct: (theme, key) => ({\n ...correct(key),\n }),\n incorrect: (theme, key) => ({\n ...incorrect(key),\n }),\n missing: (theme, key) => ({\n ...missing(key),\n strokeWidth: 1,\n strokeDasharray: '4 3',\n }),\n};\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"publishConfig": {
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
|
-
"version": "3.2.0-next.
|
|
6
|
+
"version": "3.2.0-next.38",
|
|
7
7
|
"description": "Graphing components",
|
|
8
8
|
"keywords": [
|
|
9
9
|
"react",
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"@pie-lib/drag": "^3.2.0-next.10",
|
|
26
26
|
"@pie-lib/editable-html-tip-tap": "^1.2.0-next.36",
|
|
27
27
|
"@pie-lib/graphing-utils": "^2.2.0-next.3",
|
|
28
|
-
"@pie-lib/plot": "^3.2.0-next.
|
|
28
|
+
"@pie-lib/plot": "^3.2.0-next.38",
|
|
29
29
|
"@pie-lib/render-ui": "^5.2.0-next.9",
|
|
30
30
|
"@pie-lib/translator": "^3.2.0-next.3",
|
|
31
31
|
"@visx/axis": "^3.0.0",
|
|
@@ -54,6 +54,6 @@
|
|
|
54
54
|
"peerDependencies": {
|
|
55
55
|
"react": "^18.2.0"
|
|
56
56
|
},
|
|
57
|
-
"gitHead": "
|
|
57
|
+
"gitHead": "2f2fd135f9d1977d9634efb78cecd279cdfb4c85",
|
|
58
58
|
"scripts": {}
|
|
59
59
|
}
|
package/src/graph.jsx
CHANGED
|
@@ -83,6 +83,19 @@ export class Graph extends React.Component {
|
|
|
83
83
|
};
|
|
84
84
|
|
|
85
85
|
state = {};
|
|
86
|
+
_justDragged = false;
|
|
87
|
+
|
|
88
|
+
startDrag = () => {
|
|
89
|
+
this._justDragged = false;
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
stopDrag = () => {
|
|
93
|
+
this._justDragged = true;
|
|
94
|
+
// Reset after a short delay — long enough for any trailing click/bg-click to fire first.
|
|
95
|
+
setTimeout(() => {
|
|
96
|
+
this._justDragged = false;
|
|
97
|
+
}, 300);
|
|
98
|
+
};
|
|
86
99
|
|
|
87
100
|
generateMaskId() {
|
|
88
101
|
return 'graph-' + (Math.random() * 10000).toFixed();
|
|
@@ -145,6 +158,10 @@ export class Graph extends React.Component {
|
|
|
145
158
|
const { x, y } = point || {};
|
|
146
159
|
const { labelModeEnabled, currentTool, marks } = this.props;
|
|
147
160
|
|
|
161
|
+
if (this._justDragged) {
|
|
162
|
+
return;
|
|
163
|
+
}
|
|
164
|
+
|
|
148
165
|
if (labelModeEnabled || !currentTool || [null, undefined].includes(x) || [null, undefined].includes(y)) {
|
|
149
166
|
return;
|
|
150
167
|
}
|
|
@@ -106,8 +106,7 @@ export class RawBaseCircle extends React.Component {
|
|
|
106
106
|
const { changeMarkProps, disabled, from, to, labelModeEnabled, limitLabeling, onClick } = this.props;
|
|
107
107
|
|
|
108
108
|
if (!labelModeEnabled) {
|
|
109
|
-
|
|
110
|
-
// Moving is handled entirely by drag. Do nothing here.
|
|
109
|
+
onClick(point || data);
|
|
111
110
|
return;
|
|
112
111
|
}
|
|
113
112
|
|
|
@@ -25,21 +25,24 @@ export class Point extends React.Component {
|
|
|
25
25
|
};
|
|
26
26
|
|
|
27
27
|
startDrag = () => {
|
|
28
|
+
const { onDragStart } = this.props;
|
|
28
29
|
const update = { ...this.props.mark };
|
|
29
30
|
|
|
30
31
|
if (update.label === '') {
|
|
31
32
|
delete update.label;
|
|
32
33
|
}
|
|
33
34
|
this.setState({ mark: update });
|
|
35
|
+
if (onDragStart) onDragStart();
|
|
34
36
|
};
|
|
35
37
|
|
|
36
38
|
stopDrag = () => {
|
|
37
|
-
const { onChange } = this.props;
|
|
39
|
+
const { onChange, onDragStop } = this.props;
|
|
38
40
|
const mark = { ...this.state.mark };
|
|
39
41
|
this.setState({ mark: undefined }, () => {
|
|
40
42
|
if (!isEqual(this.props.mark, mark)) {
|
|
41
43
|
onChange(this.props.mark, mark);
|
|
42
44
|
}
|
|
45
|
+
if (onDragStop) onDragStop();
|
|
43
46
|
});
|
|
44
47
|
};
|
|
45
48
|
|
|
@@ -70,9 +73,13 @@ export class Point extends React.Component {
|
|
|
70
73
|
|
|
71
74
|
onChange(mark, { label: '', ...mark });
|
|
72
75
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
+
// MarkLabel is only rendered after the parent re-renders with the new label prop,
|
|
77
|
+
// so we defer focus until after that render cycle completes.
|
|
78
|
+
setTimeout(() => {
|
|
79
|
+
if (this.input) {
|
|
80
|
+
this.input.focus();
|
|
81
|
+
}
|
|
82
|
+
}, 0);
|
|
76
83
|
};
|
|
77
84
|
|
|
78
85
|
render() {
|
|
@@ -165,6 +165,7 @@ export class RawBaseComponent extends React.Component {
|
|
|
165
165
|
const {
|
|
166
166
|
closed,
|
|
167
167
|
disabled,
|
|
168
|
+
onClick,
|
|
168
169
|
isToolActive,
|
|
169
170
|
labelModeEnabled,
|
|
170
171
|
limitLabeling,
|
|
@@ -203,8 +204,7 @@ export class RawBaseComponent extends React.Component {
|
|
|
203
204
|
return;
|
|
204
205
|
}
|
|
205
206
|
|
|
206
|
-
|
|
207
|
-
// Moving is handled entirely by drag. Do nothing here.
|
|
207
|
+
onClick(point || data);
|
|
208
208
|
};
|
|
209
209
|
|
|
210
210
|
// IMPORTANT, do not remove
|
|
@@ -89,10 +89,14 @@ export const lineToolComponent = (Component) => {
|
|
|
89
89
|
this.state = {};
|
|
90
90
|
}
|
|
91
91
|
|
|
92
|
-
startDrag = () =>
|
|
92
|
+
startDrag = () => {
|
|
93
|
+
const { onDragStart } = this.props;
|
|
94
|
+
this.setState({ mark: { ...this.props.mark } });
|
|
95
|
+
if (onDragStart) onDragStart();
|
|
96
|
+
};
|
|
93
97
|
|
|
94
98
|
stopDrag = () => {
|
|
95
|
-
const { onChange, mark } = this.props;
|
|
99
|
+
const { onChange, mark, onDragStop } = this.props;
|
|
96
100
|
const update = { ...this.state.mark };
|
|
97
101
|
|
|
98
102
|
this.setState({ mark: undefined }, () => {
|
|
@@ -107,6 +111,7 @@ export const lineToolComponent = (Component) => {
|
|
|
107
111
|
if (!isEqual(mark, update) && !shouldNotChange) {
|
|
108
112
|
onChange(mark, update);
|
|
109
113
|
}
|
|
114
|
+
if (onDragStop) onDragStop();
|
|
110
115
|
});
|
|
111
116
|
};
|
|
112
117
|
|
|
@@ -299,12 +304,10 @@ export const lineBase = (Comp, opts) => {
|
|
|
299
304
|
};
|
|
300
305
|
|
|
301
306
|
clickPoint = (point, type, data) => {
|
|
302
|
-
const { changeMarkProps, disabled, from, to, labelModeEnabled, limitLabeling } = this.props;
|
|
307
|
+
const { changeMarkProps, disabled, from, to, labelModeEnabled, limitLabeling, onClick } = this.props;
|
|
303
308
|
|
|
304
309
|
if (!labelModeEnabled) {
|
|
305
|
-
|
|
306
|
-
// Moving is handled entirely by drag. Do nothing here.
|
|
307
|
-
return;
|
|
310
|
+
onClick(point || data);
|
|
308
311
|
}
|
|
309
312
|
|
|
310
313
|
if (disabled) {
|
|
@@ -345,7 +348,7 @@ export const lineBase = (Comp, opts) => {
|
|
|
345
348
|
labelNode,
|
|
346
349
|
labelModeEnabled,
|
|
347
350
|
} = this.props;
|
|
348
|
-
const common = { graphProps, onDragStart, onDragStop, disabled, correctness };
|
|
351
|
+
const common = { graphProps, onDragStart, onDragStop, disabled, correctness, onClick };
|
|
349
352
|
const angle = to ? trig.toDegrees(trig.angle(from, to)) : 0;
|
|
350
353
|
|
|
351
354
|
let fromLabelNode = null;
|