@pie-lib/graphing 3.2.0-next.20 → 3.2.0-next.22
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-with-controls.js +1 -1
- package/lib/graph-with-controls.js.map +1 -1
- package/lib/tools/line/component.js +12 -1
- package/lib/tools/line/component.js.map +1 -1
- package/lib/tools/polygon/line.js +2 -1
- package/lib/tools/polygon/line.js.map +1 -1
- package/lib/tools/ray/component.js +14 -2
- package/lib/tools/ray/component.js.map +1 -1
- package/lib/tools/segment/component.js +21 -8
- package/lib/tools/segment/component.js.map +1 -1
- package/lib/tools/shared/line/index.js +4 -5
- package/lib/tools/shared/line/index.js.map +1 -1
- package/lib/tools/shared/line/line-path.js +2 -1
- package/lib/tools/shared/line/line-path.js.map +1 -1
- package/package.json +5 -5
- package/src/graph-with-controls.jsx +1 -1
- package/src/tools/line/component.jsx +10 -0
- package/src/tools/polygon/line.jsx +2 -1
- package/src/tools/ray/component.jsx +12 -1
- package/src/tools/segment/component.jsx +15 -12
- package/src/tools/shared/line/index.jsx +4 -3
- package/src/tools/shared/line/line-path.jsx +2 -1
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.22](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@3.2.0-next.21...@pie-lib/graphing@3.2.0-next.22) (2026-04-03)
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
- **graphing/plot:** improve drag handling to prevent misidentifying clicks as drags PD-5598 ([40a65a3](https://github.com/pie-framework/pie-lib/commit/40a65a312ec06227309fceac848bb8c7a266b1bb))
|
|
11
|
+
- **graphing:** increase stroke width and improve pointer event handling for lines ([58e1b47](https://github.com/pie-framework/pie-lib/commit/58e1b476cccb43c2db7e685119a3268fce21808c))
|
|
12
|
+
- unapplied padding PD-5450 ([5d92076](https://github.com/pie-framework/pie-lib/commit/5d92076e57b1106a9bcb746da97bf105427e77f5))
|
|
13
|
+
|
|
14
|
+
# [3.2.0-next.21](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@3.2.0-next.20...@pie-lib/graphing@3.2.0-next.21) (2026-03-31)
|
|
15
|
+
|
|
16
|
+
**Note:** Version bump only for package @pie-lib/graphing
|
|
17
|
+
|
|
6
18
|
# [3.2.0-next.20](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@3.2.0-next.19...@pie-lib/graphing@3.2.0-next.20) (2026-03-25)
|
|
7
19
|
|
|
8
20
|
### Bug Fixes
|
|
@@ -53,7 +53,7 @@ var StyledAccordion = (0, _styles.styled)(_material.Accordion)({
|
|
|
53
53
|
var StyledAccordionSummary = (0, _styles.styled)(_material.AccordionSummary)(function (_ref2) {
|
|
54
54
|
var theme = _ref2.theme;
|
|
55
55
|
return {
|
|
56
|
-
padding: "0 ".concat(theme.spacing(1)
|
|
56
|
+
padding: "0 ".concat(theme.spacing(1)),
|
|
57
57
|
minHeight: '32px !important',
|
|
58
58
|
'& .MuiAccordionSummary-content': {
|
|
59
59
|
margin: '4px 0 !important'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph-with-controls.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_lodashEs","_renderUi","_toolMenu","_graph","_interopRequireWildcard","_undoRedo","_tools","_material","_ExpandMore","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","StyledGraphContainer","styled","display","flexDirection","width","StyledControls","_ref","theme","justifyContent","padding","spacing","color","text","backgroundColor","primaryLight","fontSize","typography","StyledAccordion","Accordion","StyledAccordionSummary","AccordionSummary","_ref2","concat","minHeight","margin","StyledAccordionDetails","AccordionDetails","_ref3","marginTop","setToolbarAvailability","exports","toolbarTools","toolsArr","map","tA","toolbar","find","type","toolIsAvailable","tools","currentTool","tool","getAvailableTool","filterByValidToolTypes","backgroundMarks","bM","allTools","filterByVisibleToolTypes","marks","getDefaultCurrentTool","toolType","Collapsible","_ref4","children","title","createElement","elevation","disableGutters","square","TransitionProps","timeout","enter","exit","expandIcon","Typography","variant","propTypes","PropTypes","array","string","GraphWithControls","_React$Component","props","_this","_classCallCheck2","setState","labelModeEnabled","state","defaultTool","_inherits2","_createClass2","key","value","componentDidUpdate","prevProps","render","_this2","_this$state","_this$props","axesSettings","className","coordinatesOnHover","collapsibleToolbar","collapsibleToolbarTitle","disabled","disabledLabels","disabledTitle","domain","draggableTools","labels","labelsPlaceholders","onChangeLabels","onChangeMarks","onChangeTitle","onChangeTools","onUndo","onRedo","onReset","range","size","showLabels","showPixelGuides","showTitle","titlePlaceholder","language","removeIncompleteTool","limitLabeling","_this$props2","uniq","tT","isString","graphActions","Fragment","currentToolType","onChange","changeCurrentTool","ref","labelNode","undefined","React","Component","graphPropTypes","func","arrayOf","_default"],"sources":["../src/graph-with-controls.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport { isString, uniq } from 'lodash-es';\nimport { color } from '@pie-lib/render-ui';\n\nimport ToolMenu from './tool-menu';\nimport Graph, { graphPropTypes } from './graph';\nimport UndoRedo from './undo-redo';\nimport { allTools, toolsArr } from './tools';\nimport { Accordion, AccordionDetails, AccordionSummary, Typography } from '@mui/material';\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore';\n\nconst StyledGraphContainer = styled('div')({\n display: 'flex',\n flexDirection: 'column',\n width: 'min-content',\n});\n\nconst StyledControls = styled('div')(({ theme }) => ({\n display: 'flex',\n justifyContent: 'space-between',\n padding: theme.spacing(1),\n color: color.text(),\n backgroundColor: color.primaryLight(),\n '& button': {\n fontSize: theme.typography.fontSize,\n },\n}));\n\nconst StyledAccordion = styled(Accordion)({\n backgroundColor: color.primaryLight(),\n width: '100%',\n});\n\nconst StyledAccordionSummary = styled(AccordionSummary)(({ theme }) => ({\n padding: `0 ${theme.spacing(1)}px`,\n minHeight: '32px !important',\n '& .MuiAccordionSummary-content': {\n margin: '4px 0 !important',\n },\n}));\n\nconst StyledAccordionDetails = styled(AccordionDetails)(({ theme }) => ({\n padding: 0,\n marginTop: theme.spacing(1),\n display: 'flex',\n justifyContent: 'space-between',\n}));\n\nexport const setToolbarAvailability = (toolbarTools) =>\n toolsArr.map((tA) => ({ ...tA, toolbar: !!toolbarTools.find((t) => t === tA.type) })) || [];\n\nexport const toolIsAvailable = (tools, currentTool) =>\n currentTool && tools && (tools.find((tool) => tool.type === currentTool.type) || {}).toolbar;\n\nexport const getAvailableTool = (tools) => tools.find((tool) => tool.toolbar);\n\nexport const filterByValidToolTypes = (backgroundMarks) =>\n backgroundMarks.filter((bM) => !!allTools.find((tool) => tool === bM.type));\n\nexport const filterByVisibleToolTypes = (toolbarTools, marks) =>\n marks.filter((bM) => !!toolbarTools.find((tool) => tool === bM.type));\n\nconst getDefaultCurrentTool = (toolType) => toolsArr.find((tool) => tool.type === toolType) || null;\n\nconst Collapsible = ({ children, title }) => (\n <StyledAccordion\n elevation={0}\n disableGutters={true}\n square={true}\n TransitionProps={{ timeout: { enter: 225, exit: 195 } }}\n >\n <StyledAccordionSummary expandIcon={<ExpandMoreIcon />}>\n <Typography variant=\"subheading\">{title}</Typography>\n </StyledAccordionSummary>\n <StyledAccordionDetails>{children}</StyledAccordionDetails>\n </StyledAccordion>\n);\n\nCollapsible.propTypes = {\n children: PropTypes.array,\n title: PropTypes.string,\n};\n\nexport class GraphWithControls extends React.Component {\n static propTypes = {\n ...graphPropTypes,\n onUndo: PropTypes.func,\n onRedo: PropTypes.func,\n onReset: PropTypes.func,\n toolbarTools: PropTypes.arrayOf(PropTypes.string), // array of tool types that have to be displayed in the toolbar, same shape as 'allTools'\n language: PropTypes.string,\n };\n\n static defaultProps = {\n collapsibleToolbar: false,\n collapsibleToolbarTitle: '',\n disabledLabels: false,\n disabledTitle: false,\n showLabels: true,\n showTitle: true,\n toolbarTools: [],\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n currentTool: getDefaultCurrentTool(props.defaultTool),\n labelModeEnabled: false,\n };\n }\n\n componentDidUpdate(prevProps) {\n const { defaultTool } = this.props;\n\n if (prevProps.defaultTool !== defaultTool) {\n const currentTool = getDefaultCurrentTool(defaultTool);\n\n this.setState({ currentTool });\n }\n }\n\n changeCurrentTool = (tool, tools) =>\n this.setState({ currentTool: tools.find((t) => t.type === tool), labelModeEnabled: tool === 'label' });\n\n render() {\n let { currentTool, labelModeEnabled } = this.state;\n const {\n axesSettings,\n className,\n coordinatesOnHover,\n collapsibleToolbar,\n collapsibleToolbarTitle,\n disabled,\n disabledLabels,\n disabledTitle,\n domain,\n draggableTools,\n labels,\n labelsPlaceholders,\n onChangeLabels,\n onChangeMarks,\n onChangeTitle,\n onChangeTools,\n onUndo,\n onRedo,\n onReset,\n range,\n size,\n showLabels,\n showPixelGuides,\n showTitle,\n title,\n titlePlaceholder,\n language,\n removeIncompleteTool,\n limitLabeling,\n } = this.props;\n let { backgroundMarks, marks, toolbarTools } = this.props;\n\n // make sure only valid tool types are kept (string) and without duplicates\n toolbarTools = uniq(toolbarTools || []).filter((tT) => !!isString(tT)) || [];\n\n // keep only the backgroundMarks that have valid types\n backgroundMarks = filterByValidToolTypes(backgroundMarks || []);\n\n // keep only the marks that have types which appear in toolbar\n marks = filterByVisibleToolTypes(toolbarTools, marks || []);\n\n const tools = setToolbarAvailability(toolbarTools);\n\n // set current tool if there's no current tool or if the existing one is no longer available\n if (!currentTool || !toolIsAvailable(tools, currentTool)) {\n currentTool = getAvailableTool(tools);\n }\n\n const graphActions = (\n <React.Fragment>\n <ToolMenu\n currentToolType={currentTool && currentTool.type}\n disabled={!!disabled}\n draggableTools={draggableTools}\n labelModeEnabled={labelModeEnabled}\n onChange={(tool) => this.changeCurrentTool(tool, tools)}\n toolbarTools={toolbarTools}\n onChangeTools={onChangeTools}\n language={language}\n />\n\n {!disabled && <UndoRedo onUndo={onUndo} onRedo={onRedo} onReset={onReset} language={language} />}\n </React.Fragment>\n );\n\n return (\n <StyledGraphContainer className={className}>\n <StyledControls>\n {collapsibleToolbar ? (\n <Collapsible title={collapsibleToolbarTitle}>{graphActions}</Collapsible>\n ) : (\n graphActions\n )}\n </StyledControls>\n\n <div ref={(r) => (this.labelNode = r)} />\n\n <Graph\n axesSettings={axesSettings}\n backgroundMarks={backgroundMarks}\n coordinatesOnHover={coordinatesOnHover}\n currentTool={currentTool}\n disabledLabels={disabledLabels}\n disabledTitle={disabledTitle}\n domain={domain}\n labels={labels}\n labelModeEnabled={labelModeEnabled}\n labelsPlaceholders={labelsPlaceholders}\n marks={marks}\n onChangeMarks={!disabled ? onChangeMarks : undefined}\n onChangeLabels={onChangeLabels}\n onChangeTitle={onChangeTitle}\n range={range}\n size={size}\n showLabels={showLabels}\n showPixelGuides={showPixelGuides}\n showTitle={showTitle}\n title={title}\n titlePlaceholder={titlePlaceholder}\n tools={tools}\n removeIncompleteTool={removeIncompleteTool}\n limitLabeling={limitLabeling}\n />\n </StyledGraphContainer>\n );\n }\n}\n\nexport default GraphWithControls;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"graph-with-controls.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_lodashEs","_renderUi","_toolMenu","_graph","_interopRequireWildcard","_undoRedo","_tools","_material","_ExpandMore","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","StyledGraphContainer","styled","display","flexDirection","width","StyledControls","_ref","theme","justifyContent","padding","spacing","color","text","backgroundColor","primaryLight","fontSize","typography","StyledAccordion","Accordion","StyledAccordionSummary","AccordionSummary","_ref2","concat","minHeight","margin","StyledAccordionDetails","AccordionDetails","_ref3","marginTop","setToolbarAvailability","exports","toolbarTools","toolsArr","map","tA","toolbar","find","type","toolIsAvailable","tools","currentTool","tool","getAvailableTool","filterByValidToolTypes","backgroundMarks","bM","allTools","filterByVisibleToolTypes","marks","getDefaultCurrentTool","toolType","Collapsible","_ref4","children","title","createElement","elevation","disableGutters","square","TransitionProps","timeout","enter","exit","expandIcon","Typography","variant","propTypes","PropTypes","array","string","GraphWithControls","_React$Component","props","_this","_classCallCheck2","setState","labelModeEnabled","state","defaultTool","_inherits2","_createClass2","key","value","componentDidUpdate","prevProps","render","_this2","_this$state","_this$props","axesSettings","className","coordinatesOnHover","collapsibleToolbar","collapsibleToolbarTitle","disabled","disabledLabels","disabledTitle","domain","draggableTools","labels","labelsPlaceholders","onChangeLabels","onChangeMarks","onChangeTitle","onChangeTools","onUndo","onRedo","onReset","range","size","showLabels","showPixelGuides","showTitle","titlePlaceholder","language","removeIncompleteTool","limitLabeling","_this$props2","uniq","tT","isString","graphActions","Fragment","currentToolType","onChange","changeCurrentTool","ref","labelNode","undefined","React","Component","graphPropTypes","func","arrayOf","_default"],"sources":["../src/graph-with-controls.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport { isString, uniq } from 'lodash-es';\nimport { color } from '@pie-lib/render-ui';\n\nimport ToolMenu from './tool-menu';\nimport Graph, { graphPropTypes } from './graph';\nimport UndoRedo from './undo-redo';\nimport { allTools, toolsArr } from './tools';\nimport { Accordion, AccordionDetails, AccordionSummary, Typography } from '@mui/material';\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore';\n\nconst StyledGraphContainer = styled('div')({\n display: 'flex',\n flexDirection: 'column',\n width: 'min-content',\n});\n\nconst StyledControls = styled('div')(({ theme }) => ({\n display: 'flex',\n justifyContent: 'space-between',\n padding: theme.spacing(1),\n color: color.text(),\n backgroundColor: color.primaryLight(),\n '& button': {\n fontSize: theme.typography.fontSize,\n },\n}));\n\nconst StyledAccordion = styled(Accordion)({\n backgroundColor: color.primaryLight(),\n width: '100%',\n});\n\nconst StyledAccordionSummary = styled(AccordionSummary)(({ theme }) => ({\n padding: `0 ${theme.spacing(1)}`,\n minHeight: '32px !important',\n '& .MuiAccordionSummary-content': {\n margin: '4px 0 !important',\n },\n}));\n\nconst StyledAccordionDetails = styled(AccordionDetails)(({ theme }) => ({\n padding: 0,\n marginTop: theme.spacing(1),\n display: 'flex',\n justifyContent: 'space-between',\n}));\n\nexport const setToolbarAvailability = (toolbarTools) =>\n toolsArr.map((tA) => ({ ...tA, toolbar: !!toolbarTools.find((t) => t === tA.type) })) || [];\n\nexport const toolIsAvailable = (tools, currentTool) =>\n currentTool && tools && (tools.find((tool) => tool.type === currentTool.type) || {}).toolbar;\n\nexport const getAvailableTool = (tools) => tools.find((tool) => tool.toolbar);\n\nexport const filterByValidToolTypes = (backgroundMarks) =>\n backgroundMarks.filter((bM) => !!allTools.find((tool) => tool === bM.type));\n\nexport const filterByVisibleToolTypes = (toolbarTools, marks) =>\n marks.filter((bM) => !!toolbarTools.find((tool) => tool === bM.type));\n\nconst getDefaultCurrentTool = (toolType) => toolsArr.find((tool) => tool.type === toolType) || null;\n\nconst Collapsible = ({ children, title }) => (\n <StyledAccordion\n elevation={0}\n disableGutters={true}\n square={true}\n TransitionProps={{ timeout: { enter: 225, exit: 195 } }}\n >\n <StyledAccordionSummary expandIcon={<ExpandMoreIcon />}>\n <Typography variant=\"subheading\">{title}</Typography>\n </StyledAccordionSummary>\n <StyledAccordionDetails>{children}</StyledAccordionDetails>\n </StyledAccordion>\n);\n\nCollapsible.propTypes = {\n children: PropTypes.array,\n title: PropTypes.string,\n};\n\nexport class GraphWithControls extends React.Component {\n static propTypes = {\n ...graphPropTypes,\n onUndo: PropTypes.func,\n onRedo: PropTypes.func,\n onReset: PropTypes.func,\n toolbarTools: PropTypes.arrayOf(PropTypes.string), // array of tool types that have to be displayed in the toolbar, same shape as 'allTools'\n language: PropTypes.string,\n };\n\n static defaultProps = {\n collapsibleToolbar: false,\n collapsibleToolbarTitle: '',\n disabledLabels: false,\n disabledTitle: false,\n showLabels: true,\n showTitle: true,\n toolbarTools: [],\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n currentTool: getDefaultCurrentTool(props.defaultTool),\n labelModeEnabled: false,\n };\n }\n\n componentDidUpdate(prevProps) {\n const { defaultTool } = this.props;\n\n if (prevProps.defaultTool !== defaultTool) {\n const currentTool = getDefaultCurrentTool(defaultTool);\n\n this.setState({ currentTool });\n }\n }\n\n changeCurrentTool = (tool, tools) =>\n this.setState({ currentTool: tools.find((t) => t.type === tool), labelModeEnabled: tool === 'label' });\n\n render() {\n let { currentTool, labelModeEnabled } = this.state;\n const {\n axesSettings,\n className,\n coordinatesOnHover,\n collapsibleToolbar,\n collapsibleToolbarTitle,\n disabled,\n disabledLabels,\n disabledTitle,\n domain,\n draggableTools,\n labels,\n labelsPlaceholders,\n onChangeLabels,\n onChangeMarks,\n onChangeTitle,\n onChangeTools,\n onUndo,\n onRedo,\n onReset,\n range,\n size,\n showLabels,\n showPixelGuides,\n showTitle,\n title,\n titlePlaceholder,\n language,\n removeIncompleteTool,\n limitLabeling,\n } = this.props;\n let { backgroundMarks, marks, toolbarTools } = this.props;\n\n // make sure only valid tool types are kept (string) and without duplicates\n toolbarTools = uniq(toolbarTools || []).filter((tT) => !!isString(tT)) || [];\n\n // keep only the backgroundMarks that have valid types\n backgroundMarks = filterByValidToolTypes(backgroundMarks || []);\n\n // keep only the marks that have types which appear in toolbar\n marks = filterByVisibleToolTypes(toolbarTools, marks || []);\n\n const tools = setToolbarAvailability(toolbarTools);\n\n // set current tool if there's no current tool or if the existing one is no longer available\n if (!currentTool || !toolIsAvailable(tools, currentTool)) {\n currentTool = getAvailableTool(tools);\n }\n\n const graphActions = (\n <React.Fragment>\n <ToolMenu\n currentToolType={currentTool && currentTool.type}\n disabled={!!disabled}\n draggableTools={draggableTools}\n labelModeEnabled={labelModeEnabled}\n onChange={(tool) => this.changeCurrentTool(tool, tools)}\n toolbarTools={toolbarTools}\n onChangeTools={onChangeTools}\n language={language}\n />\n\n {!disabled && <UndoRedo onUndo={onUndo} onRedo={onRedo} onReset={onReset} language={language} />}\n </React.Fragment>\n );\n\n return (\n <StyledGraphContainer className={className}>\n <StyledControls>\n {collapsibleToolbar ? (\n <Collapsible title={collapsibleToolbarTitle}>{graphActions}</Collapsible>\n ) : (\n graphActions\n )}\n </StyledControls>\n\n <div ref={(r) => (this.labelNode = r)} />\n\n <Graph\n axesSettings={axesSettings}\n backgroundMarks={backgroundMarks}\n coordinatesOnHover={coordinatesOnHover}\n currentTool={currentTool}\n disabledLabels={disabledLabels}\n disabledTitle={disabledTitle}\n domain={domain}\n labels={labels}\n labelModeEnabled={labelModeEnabled}\n labelsPlaceholders={labelsPlaceholders}\n marks={marks}\n onChangeMarks={!disabled ? onChangeMarks : undefined}\n onChangeLabels={onChangeLabels}\n onChangeTitle={onChangeTitle}\n range={range}\n size={size}\n showLabels={showLabels}\n showPixelGuides={showPixelGuides}\n showTitle={showTitle}\n title={title}\n titlePlaceholder={titlePlaceholder}\n tools={tools}\n removeIncompleteTool={removeIncompleteTool}\n limitLabeling={limitLabeling}\n />\n </StyledGraphContainer>\n );\n }\n}\n\nexport default GraphWithControls;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -57,7 +57,18 @@ var ArrowedLine = exports.ArrowedLine = function ArrowedLine(props) {
|
|
|
57
57
|
size: (0, _utils.thinnerShapesNeeded)(graphProps) ? 4 : 5,
|
|
58
58
|
id: "".concat(finalMarkerId, "-").concat(suffix),
|
|
59
59
|
className: (0, _classnames["default"])(suffix === 'enabled' ? 'enabledArrow' : suffix === 'disabled' ? 'disabledArrow' : "".concat(suffix, "Arrow"))
|
|
60
|
-
})), /*#__PURE__*/_react["default"].createElement("line",
|
|
60
|
+
})), /*#__PURE__*/_react["default"].createElement("line", {
|
|
61
|
+
x1: scale.x(eFrom.x),
|
|
62
|
+
y1: scale.y(eFrom.y),
|
|
63
|
+
x2: scale.x(eTo.x),
|
|
64
|
+
y2: scale.y(eTo.y),
|
|
65
|
+
stroke: "transparent",
|
|
66
|
+
strokeWidth: 7,
|
|
67
|
+
style: {
|
|
68
|
+
cursor: 'pointer',
|
|
69
|
+
pointerEvents: 'stroke'
|
|
70
|
+
}
|
|
71
|
+
}), /*#__PURE__*/_react["default"].createElement("line", (0, _extends2["default"])({
|
|
61
72
|
x1: scale.x(eFrom.x),
|
|
62
73
|
y1: scale.y(eFrom.y),
|
|
63
74
|
x2: scale.x(eTo.x),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component.js","names":["_line","require","_react","_interopRequireDefault","_propTypes","_plot","_classnames","_arrowHead","_utils","_styles","_excluded","StyledArrowedLineRoot","styled","_ref","theme","line","styles","enabledArrow","arrow","disabledArrow","disabled","disabledSecondary","correct","correctArrow","incorrect","incorrectArrow","missing","missingArrow","ArrowedLine","exports","props","markerId","genUid","className","correctness","graphProps","from","to","propMarkerId","rest","_objectWithoutProperties2","scale","_getAdjustedGraphLimi","getAdjustedGraphLimits","domain","range","_trig$edges","trig","edges","_trig$edges2","_slicedToArray2","eFrom","eTo","suffix","finalMarkerId","createElement","ArrowMarker","size","thinnerShapesNeeded","id","concat","classNames","
|
|
1
|
+
{"version":3,"file":"component.js","names":["_line","require","_react","_interopRequireDefault","_propTypes","_plot","_classnames","_arrowHead","_utils","_styles","_excluded","StyledArrowedLineRoot","styled","_ref","theme","line","styles","enabledArrow","arrow","disabledArrow","disabled","disabledSecondary","correct","correctArrow","incorrect","incorrectArrow","missing","missingArrow","ArrowedLine","exports","props","markerId","genUid","className","correctness","graphProps","from","to","propMarkerId","rest","_objectWithoutProperties2","scale","_getAdjustedGraphLimi","getAdjustedGraphLimits","domain","range","_trig$edges","trig","edges","_trig$edges2","_slicedToArray2","eFrom","eTo","suffix","finalMarkerId","createElement","ArrowMarker","size","thinnerShapesNeeded","id","concat","classNames","x1","x","y1","y","x2","y2","stroke","strokeWidth","style","cursor","pointerEvents","_extends2","markerEnd","markerStart","propTypes","PropTypes","string","bool","types","GraphPropsType","PointType","Line","lineBase","Component","lineToolComponent","_default"],"sources":["../../../src/tools/line/component.jsx"],"sourcesContent":["import { lineBase, lineToolComponent, styles } from '../shared/line';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { trig, types } from '@pie-lib/plot';\nimport classNames from 'classnames';\nimport { ArrowMarker, genUid } from '../shared/arrow-head';\nimport { getAdjustedGraphLimits, thinnerShapesNeeded } from '../../utils';\nimport { styled } from '@mui/material/styles';\n\nconst StyledArrowedLineRoot = styled('g')(({ theme }) => ({\n line: styles.line(theme),\n enabledArrow: styles.arrow(theme),\n disabledArrow: styles.disabledArrow(theme),\n disabled: styles.disabled(theme),\n disabledSecondary: styles.disabledSecondary(theme),\n correct: styles.correct(theme, 'stroke'),\n correctArrow: styles.correct(theme),\n incorrect: styles.incorrect(theme, 'stroke'),\n incorrectArrow: styles.incorrect(theme),\n missing: styles.missing(theme, 'stroke'),\n missingArrow: styles.missing(theme),\n}));\n\nexport const ArrowedLine = (props) => {\n const markerId = genUid();\n const { className, correctness, disabled, graphProps, from, to, markerId: propMarkerId, ...rest } = props;\n const { scale } = graphProps;\n const { domain, range } = getAdjustedGraphLimits(graphProps);\n const [eFrom, eTo] = trig.edges(domain, range)(from, to);\n const suffix = correctness || (disabled && 'disabled') || 'enabled';\n const finalMarkerId = propMarkerId || markerId;\n\n return (\n <StyledArrowedLineRoot>\n <defs>\n <ArrowMarker\n size={thinnerShapesNeeded(graphProps) ? 4 : 5}\n id={`${finalMarkerId}-${suffix}`}\n className={classNames(\n suffix === 'enabled' ? 'enabledArrow' : suffix === 'disabled' ? 'disabledArrow' : `${suffix}Arrow`,\n )}\n />\n </defs>\n {/* Transparent wider line captures pointer events (+2px each side) */}\n <line\n x1={scale.x(eFrom.x)}\n y1={scale.y(eFrom.y)}\n x2={scale.x(eTo.x)}\n y2={scale.y(eTo.y)}\n stroke=\"transparent\"\n strokeWidth={7}\n style={{ cursor: 'pointer', pointerEvents: 'stroke' }}\n />\n <line\n x1={scale.x(eFrom.x)}\n y1={scale.y(eFrom.y)}\n x2={scale.x(eTo.x)}\n y2={scale.y(eTo.y)}\n className={classNames('line', disabled && 'disabledSecondary', correctness, className)}\n markerEnd={`url(#${finalMarkerId}-${suffix})`}\n markerStart={`url(#${finalMarkerId}-${suffix})`}\n {...rest}\n />\n </StyledArrowedLineRoot>\n );\n};\n\nArrowedLine.propTypes = {\n className: PropTypes.string,\n correctness: PropTypes.string,\n disabled: PropTypes.bool,\n graphProps: types.GraphPropsType,\n from: types.PointType,\n to: types.PointType,\n markerId: PropTypes.string,\n};\n\nconst Line = lineBase(ArrowedLine);\nconst Component = lineToolComponent(Line);\n\nexport default Component;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -31,9 +31,10 @@ var StyledLine = (0, _styles.styled)('line')(function (_ref) {
|
|
|
31
31
|
var isDisabled = _ref.disabled,
|
|
32
32
|
correctness = _ref.correctness;
|
|
33
33
|
return _objectSpread(_objectSpread(_objectSpread(_objectSpread({
|
|
34
|
-
strokeWidth:
|
|
34
|
+
strokeWidth: 7,
|
|
35
35
|
transition: 'stroke-width 200ms ease-in, stroke 200ms ease-in',
|
|
36
36
|
stroke: 'transparent',
|
|
37
|
+
pointerEvents: 'stroke',
|
|
37
38
|
'&:hover': {
|
|
38
39
|
strokeWidth: 4,
|
|
39
40
|
stroke: _renderUi.color.defaults.BLACK
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"line.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_plot","_renderUi","utils","_interopRequireWildcard","_styles2","_excluded","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","StyledLine","styled","_ref","isDisabled","disabled","correctness","strokeWidth","transition","stroke","color","defaults","BLACK","correct","incorrect","missing","strokeDasharray","RawLine","_React$Component","_classCallCheck2","_inherits2","_createClass2","key","value","render","_this$props","props","graphProps","from","to","className","rest","_objectWithoutProperties2","scale","createElement","_extends2","x1","x","y1","y","x2","y2","React","Component","PropTypes","string","types","PointType","GraphPropsType","isRequired","bool","Line","exports","_default","gridDraggable","bounds","_ref2","domain","range","area","lineToArea","anchorPoint","fromDelta","delta","point","add"],"sources":["../../../src/tools/polygon/line.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport { gridDraggable, types } from '@pie-lib/plot';\nimport { color } from '@pie-lib/render-ui';\nimport * as utils from '../../utils';\nimport { correct, disabled, incorrect, missing } from '../shared/styles';\n\nconst StyledLine = styled('line')(({ disabled: isDisabled, correctness }) => ({\n strokeWidth:
|
|
1
|
+
{"version":3,"file":"line.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_plot","_renderUi","utils","_interopRequireWildcard","_styles2","_excluded","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","StyledLine","styled","_ref","isDisabled","disabled","correctness","strokeWidth","transition","stroke","pointerEvents","color","defaults","BLACK","correct","incorrect","missing","strokeDasharray","RawLine","_React$Component","_classCallCheck2","_inherits2","_createClass2","key","value","render","_this$props","props","graphProps","from","to","className","rest","_objectWithoutProperties2","scale","createElement","_extends2","x1","x","y1","y","x2","y2","React","Component","PropTypes","string","types","PointType","GraphPropsType","isRequired","bool","Line","exports","_default","gridDraggable","bounds","_ref2","domain","range","area","lineToArea","anchorPoint","fromDelta","delta","point","add"],"sources":["../../../src/tools/polygon/line.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport { gridDraggable, types } from '@pie-lib/plot';\nimport { color } from '@pie-lib/render-ui';\nimport * as utils from '../../utils';\nimport { correct, disabled, incorrect, missing } from '../shared/styles';\n\nconst StyledLine = styled('line')(({ disabled: isDisabled, correctness }) => ({\n strokeWidth: 7,\n transition: 'stroke-width 200ms ease-in, stroke 200ms ease-in',\n stroke: 'transparent',\n pointerEvents: 'stroke',\n '&:hover': {\n strokeWidth: 4,\n stroke: color.defaults.BLACK,\n },\n ...(isDisabled && {\n ...disabled('stroke'),\n strokeWidth: 2,\n }),\n ...(correctness === 'correct' && correct('stroke')),\n ...(correctness === 'incorrect' && incorrect('stroke')),\n ...(correctness === 'missing' && {\n ...missing('stroke'),\n strokeWidth: 1,\n strokeDasharray: '4 3',\n }),\n}));\n\nclass RawLine extends React.Component {\n static propTypes = {\n className: PropTypes.string,\n from: types.PointType,\n to: types.PointType,\n graphProps: types.GraphPropsType.isRequired,\n disabled: PropTypes.bool,\n correctness: PropTypes.string,\n };\n\n static defaultProps = {\n from: {},\n to: {},\n };\n\n render() {\n // eslint-disable-next-line no-unused-vars\n const { graphProps, from, to, className, disabled, correctness, ...rest } = this.props;\n const { scale } = graphProps;\n return (\n <StyledLine\n x1={scale.x(from.x)}\n y1={scale.y(from.y)}\n x2={scale.x(to.x)}\n y2={scale.y(to.y)}\n className={className}\n disabled={disabled}\n correctness={correctness}\n {...rest}\n />\n );\n }\n}\n\nexport const Line = RawLine;\n\nexport default gridDraggable({\n bounds: (props, { domain, range }) => {\n const { from, to } = props;\n const area = utils.lineToArea(from, 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})(Line);\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -25,7 +25,7 @@ var StyledRayRoot = (0, _styles.styled)('g')(function (_ref) {
|
|
|
25
25
|
disabled = _ref.disabled,
|
|
26
26
|
correctness = _ref.correctness;
|
|
27
27
|
return {
|
|
28
|
-
'& line': _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, _line.styles.line(theme)), disabled && _line.styles.disabledSecondary(theme)), correctness === 'correct' && _line.styles.correct(theme, 'stroke')), correctness === 'incorrect' && _line.styles.incorrect(theme, 'stroke')), correctness === 'missing' && _line.styles.missing(theme, 'stroke')),
|
|
28
|
+
'& line:not(.hit-area)': _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, _line.styles.line(theme)), disabled && _line.styles.disabledSecondary(theme)), correctness === 'correct' && _line.styles.correct(theme, 'stroke')), correctness === 'incorrect' && _line.styles.incorrect(theme, 'stroke')), correctness === 'missing' && _line.styles.missing(theme, 'stroke')),
|
|
29
29
|
'& .enabledArrow': _objectSpread({}, _line.styles.arrow(theme)),
|
|
30
30
|
'& .disabledArrow': _objectSpread({}, _line.styles.disabledArrow(theme)),
|
|
31
31
|
'& .correctArrow': _objectSpread({}, _line.styles.correct(theme)),
|
|
@@ -59,7 +59,19 @@ var RayLine = exports.RayLine = function RayLine(props) {
|
|
|
59
59
|
size: (0, _utils.thinnerShapesNeeded)(graphProps) ? 4 : 5,
|
|
60
60
|
id: "".concat(finalMarkerId, "-").concat(suffix),
|
|
61
61
|
className: (0, _classnames["default"])(suffix === 'enabled' ? 'enabledArrow' : suffix === 'disabled' ? 'disabledArrow' : "".concat(suffix, "Arrow"))
|
|
62
|
-
})), /*#__PURE__*/_react["default"].createElement("line",
|
|
62
|
+
})), /*#__PURE__*/_react["default"].createElement("line", {
|
|
63
|
+
x1: scale.x(from.x),
|
|
64
|
+
y1: scale.y(from.y),
|
|
65
|
+
x2: scale.x(aToB.x),
|
|
66
|
+
y2: scale.y(aToB.y),
|
|
67
|
+
className: "hit-area",
|
|
68
|
+
stroke: "transparent",
|
|
69
|
+
strokeWidth: 7,
|
|
70
|
+
style: {
|
|
71
|
+
cursor: 'pointer',
|
|
72
|
+
pointerEvents: 'stroke'
|
|
73
|
+
}
|
|
74
|
+
}), /*#__PURE__*/_react["default"].createElement("line", (0, _extends2["default"])({
|
|
63
75
|
x1: scale.x(from.x),
|
|
64
76
|
y1: scale.y(from.y),
|
|
65
77
|
x2: scale.x(aToB.x),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component.js","names":["_line","require","_react","_interopRequireDefault","_propTypes","_arrowHead","_plot","_classnames","_utils","_styles","_excluded","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","StyledRayRoot","styled","_ref","theme","disabled","correctness","styles","line","disabledSecondary","correct","incorrect","missing","arrow","disabledArrow","RayLine","exports","props","markerId","genUid","graphProps","from","to","className","propMarkerId","rest","_objectWithoutProperties2","scale","_getAdjustedGraphLimi","getAdjustedGraphLimits","domain","range","_trig$edges","trig","edges","_trig$edges2","_slicedToArray2","aToB","suffix","finalMarkerId","createElement","ArrowMarker","size","thinnerShapesNeeded","id","concat","classNames","
|
|
1
|
+
{"version":3,"file":"component.js","names":["_line","require","_react","_interopRequireDefault","_propTypes","_arrowHead","_plot","_classnames","_utils","_styles","_excluded","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","StyledRayRoot","styled","_ref","theme","disabled","correctness","styles","line","disabledSecondary","correct","incorrect","missing","arrow","disabledArrow","RayLine","exports","props","markerId","genUid","graphProps","from","to","className","propMarkerId","rest","_objectWithoutProperties2","scale","_getAdjustedGraphLimi","getAdjustedGraphLimits","domain","range","_trig$edges","trig","edges","_trig$edges2","_slicedToArray2","aToB","suffix","finalMarkerId","createElement","ArrowMarker","size","thinnerShapesNeeded","id","concat","classNames","x1","x","y1","y","x2","y2","stroke","strokeWidth","style","cursor","pointerEvents","_extends2","markerEnd","propTypes","PropTypes","string","bool","any","types","PointType","Ray","lineBase","Component","lineToolComponent","_default"],"sources":["../../../src/tools/ray/component.jsx"],"sourcesContent":["import { lineBase, lineToolComponent, styles } from '../shared/line';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { ArrowMarker, genUid } from '../shared/arrow-head';\nimport { trig, types } from '@pie-lib/plot';\nimport classNames from 'classnames';\nimport { getAdjustedGraphLimits, thinnerShapesNeeded } from '../../utils';\nimport { styled } from '@mui/material/styles';\n\nconst StyledRayRoot = styled('g')(({ theme, disabled, correctness }) => ({\n '& line:not(.hit-area)': {\n ...styles.line(theme),\n ...(disabled && styles.disabledSecondary(theme)),\n ...(correctness === 'correct' && styles.correct(theme, 'stroke')),\n ...(correctness === 'incorrect' && styles.incorrect(theme, 'stroke')),\n ...(correctness === 'missing' && styles.missing(theme, 'stroke')),\n },\n '& .enabledArrow': {\n ...styles.arrow(theme),\n },\n '& .disabledArrow': {\n ...styles.disabledArrow(theme),\n },\n '& .correctArrow': {\n ...styles.correct(theme),\n },\n '& .incorrectArrow': {\n ...styles.incorrect(theme),\n },\n '& .missingArrow': {\n ...styles.missing(theme),\n },\n}));\n\nexport const RayLine = (props) => {\n const markerId = genUid();\n const { graphProps, from, to, disabled, correctness, className, markerId: propMarkerId, ...rest } = props;\n const { scale } = graphProps;\n const { domain, range } = getAdjustedGraphLimits(graphProps);\n const [aToB] = trig.edges(domain, range)(from, to);\n const suffix = correctness || (disabled && 'disabled') || 'enabled';\n const finalMarkerId = propMarkerId || markerId;\n\n return (\n <StyledRayRoot disabled={disabled} correctness={correctness}>\n <defs>\n <ArrowMarker\n size={thinnerShapesNeeded(graphProps) ? 4 : 5}\n id={`${finalMarkerId}-${suffix}`}\n className={classNames(\n suffix === 'enabled' ? 'enabledArrow' : suffix === 'disabled' ? 'disabledArrow' : `${suffix}Arrow`,\n )}\n />\n </defs>\n {/* Transparent wider line captures pointer events (+2px each side) */}\n <line\n x1={scale.x(from.x)}\n y1={scale.y(from.y)}\n x2={scale.x(aToB.x)}\n y2={scale.y(aToB.y)}\n className=\"hit-area\"\n stroke=\"transparent\"\n strokeWidth={7}\n style={{ cursor: 'pointer', pointerEvents: 'stroke' }}\n />\n <line\n x1={scale.x(from.x)}\n y1={scale.y(from.y)}\n x2={scale.x(aToB.x)}\n y2={scale.y(aToB.y)}\n className={className}\n markerEnd={`url(#${finalMarkerId}-${suffix})`}\n {...rest}\n />\n </StyledRayRoot>\n );\n};\n\nRayLine.propTypes = {\n className: PropTypes.string,\n disabled: PropTypes.bool,\n correctness: PropTypes.string,\n graphProps: PropTypes.any,\n from: types.PointType,\n to: types.PointType,\n markerId: PropTypes.string,\n};\n\nconst Ray = lineBase(RayLine);\nconst Component = lineToolComponent(Ray);\n\nexport default Component;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -31,17 +31,30 @@ var Line = exports.Line = function Line(props) {
|
|
|
31
31
|
to = props.to,
|
|
32
32
|
rest = (0, _objectWithoutProperties2["default"])(props, _excluded);
|
|
33
33
|
var scale = graphProps.scale;
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
34
|
+
var x1 = scale.x(from.x);
|
|
35
|
+
var y1 = scale.y(from.y);
|
|
36
|
+
var x2 = scale.x(to.x);
|
|
37
|
+
var y2 = scale.y(to.y);
|
|
38
|
+
return /*#__PURE__*/_react["default"].createElement("g", null, /*#__PURE__*/_react["default"].createElement("line", {
|
|
39
|
+
x1: x1,
|
|
40
|
+
y1: y1,
|
|
41
|
+
x2: x2,
|
|
42
|
+
y2: y2,
|
|
43
|
+
stroke: "transparent",
|
|
44
|
+
strokeWidth: 7,
|
|
45
|
+
style: {
|
|
46
|
+
cursor: 'pointer',
|
|
47
|
+
pointerEvents: 'stroke'
|
|
48
|
+
}
|
|
49
|
+
}), /*#__PURE__*/_react["default"].createElement(StyledLineRoot, (0, _extends2["default"])({
|
|
50
|
+
x1: x1,
|
|
51
|
+
y1: y1,
|
|
52
|
+
x2: x2,
|
|
53
|
+
y2: y2,
|
|
41
54
|
className: className,
|
|
42
55
|
disabled: disabled,
|
|
43
56
|
correctness: correctness
|
|
44
|
-
}, rest));
|
|
57
|
+
}, rest)));
|
|
45
58
|
};
|
|
46
59
|
Line.propTypes = {
|
|
47
60
|
className: _propTypes["default"].string,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component.js","names":["_line","require","_react","_interopRequireDefault","_propTypes","_plot","_styles","_excluded","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","StyledLineRoot","styled","_ref","theme","disabled","correctness","styles","line","disabledSecondary","correct","incorrect","missing","Line","exports","props","className","graphProps","from","to","rest","_objectWithoutProperties2","scale","
|
|
1
|
+
{"version":3,"file":"component.js","names":["_line","require","_react","_interopRequireDefault","_propTypes","_plot","_styles","_excluded","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","StyledLineRoot","styled","_ref","theme","disabled","correctness","styles","line","disabledSecondary","correct","incorrect","missing","Line","exports","props","className","graphProps","from","to","rest","_objectWithoutProperties2","scale","x1","x","y1","y","x2","y2","createElement","stroke","strokeWidth","style","cursor","pointerEvents","_extends2","propTypes","PropTypes","string","bool","any","types","PointType","Segment","lineBase","Component","lineToolComponent","_default"],"sources":["../../../src/tools/segment/component.jsx"],"sourcesContent":["import { lineBase, lineToolComponent, styles } from '../shared/line';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { types } from '@pie-lib/plot';\nimport { styled } from '@mui/material/styles';\n\nconst StyledLineRoot = styled('line')(({ theme, disabled, correctness }) => ({\n ...styles.line(theme),\n ...(disabled && {\n ...styles.disabled(theme),\n ...styles.disabledSecondary(theme),\n }),\n ...(correctness === 'correct' && styles.correct(theme, 'stroke')),\n ...(correctness === 'incorrect' && styles.incorrect(theme, 'stroke')),\n ...(correctness === 'missing' && styles.missing(theme, 'stroke')),\n}));\n\nexport const Line = (props) => {\n const { className, correctness, disabled, graphProps, from, to, ...rest } = props;\n const { scale } = graphProps;\n const x1 = scale.x(from.x);\n const y1 = scale.y(from.y);\n const x2 = scale.x(to.x);\n const y2 = scale.y(to.y);\n\n return (\n <g>\n {/* Transparent wider line captures pointer events (+2px each side) */}\n <line x1={x1} y1={y1} x2={x2} y2={y2} stroke=\"transparent\" strokeWidth={7} style={{ cursor: 'pointer', pointerEvents: 'stroke' }} />\n <StyledLineRoot\n x1={x1} y1={y1} x2={x2} y2={y2}\n className={className}\n disabled={disabled}\n correctness={correctness}\n {...rest}\n />\n </g>\n );\n};\n\nLine.propTypes = {\n className: PropTypes.string,\n correctness: PropTypes.string,\n disabled: PropTypes.bool,\n graphProps: PropTypes.any,\n from: types.PointType,\n to: types.PointType,\n};\n\nconst Segment = lineBase(Line);\nconst Component = lineToolComponent(Segment);\n\nexport default Component;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -332,10 +332,10 @@ var lineBase = exports.lineBase = function lineBase(Comp, opts) {
|
|
|
332
332
|
from = _this2$props5.from,
|
|
333
333
|
to = _this2$props5.to,
|
|
334
334
|
labelModeEnabled = _this2$props5.labelModeEnabled,
|
|
335
|
-
limitLabeling = _this2$props5.limitLabeling
|
|
336
|
-
onClick = _this2$props5.onClick;
|
|
335
|
+
limitLabeling = _this2$props5.limitLabeling;
|
|
337
336
|
if (!labelModeEnabled) {
|
|
338
|
-
|
|
337
|
+
// Clicks on existing mark points/lines should not create new marks.
|
|
338
|
+
// Moving is handled entirely by drag. Do nothing here.
|
|
339
339
|
return;
|
|
340
340
|
}
|
|
341
341
|
if (disabled) {
|
|
@@ -386,8 +386,7 @@ var lineBase = exports.lineBase = function lineBase(Comp, opts) {
|
|
|
386
386
|
onDragStart: onDragStart,
|
|
387
387
|
onDragStop: onDragStop,
|
|
388
388
|
disabled: disabled,
|
|
389
|
-
correctness: correctness
|
|
390
|
-
onClick: onClick
|
|
389
|
+
correctness: correctness
|
|
391
390
|
};
|
|
392
391
|
var angle = to ? _plot.trig.toDegrees(_plot.trig.angle(from, to)) : 0;
|
|
393
392
|
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, onClick } = this.props;\n\n if (!labelModeEnabled) {\n onClick(point || data);\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, 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":[]}
|
|
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":[]}
|
|
@@ -53,10 +53,11 @@ var StyledLine = (0, _styles.styled)(vx.LinePath)(function (_ref2) {
|
|
|
53
53
|
correctness = _ref2.correctness,
|
|
54
54
|
isDragging = _ref2.isDragging;
|
|
55
55
|
return _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({
|
|
56
|
-
strokeWidth:
|
|
56
|
+
strokeWidth: 7,
|
|
57
57
|
fill: 'none',
|
|
58
58
|
transition: 'stroke-width 200ms ease-in, stroke 200ms ease-in',
|
|
59
59
|
stroke: 'transparent',
|
|
60
|
+
pointerEvents: 'stroke',
|
|
60
61
|
'&:hover': dragging(theme)
|
|
61
62
|
}, isDragging && dragging(theme)), isDisabled && _objectSpread(_objectSpread({}, (0, _styles2.disabled)('stroke')), {}, {
|
|
62
63
|
strokeWidth: 2
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"line-path.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_plot","_styles2","vx","_interopRequireWildcard","_renderUi","_excluded","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","dragging","strokeWidth","stroke","color","defaults","BLACK","StyledDrawLine","styled","LinePath","_ref","isDisabled","disabled","correctness","fill","black","disabledSecondary","correct","incorrect","missing","strokeDasharray","StyledLine","_ref2","theme","isDragging","transition","RawLinePath","exports","_React$Component","_classCallCheck2","_inherits2","_createClass2","key","value","render","_this$props","props","data","className","from","to","graphProps","rest","_objectWithoutProperties2","createElement","Fragment","_extends2","React","Component","PropTypes","string","arrayOf","number","types","GraphPropsType","isRequired","bool","PointType"],"sources":["../../../../src/tools/shared/line/line-path.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport { types } from '@pie-lib/plot';\nimport { correct, disabled, disabledSecondary, incorrect, missing } from '../styles';\nimport * as vx from '@visx/shape';\nimport { color } from '@pie-lib/render-ui';\n\nconst dragging = () => ({\n strokeWidth: 4,\n stroke: color.defaults.BLACK,\n});\n\nconst StyledDrawLine = styled(vx.LinePath)(({ disabled: isDisabled, correctness }) => ({\n fill: 'none',\n strokeWidth: 2,\n stroke: color.black(),\n ...(isDisabled && {\n ...disabledSecondary('stroke'),\n strokeWidth: 2,\n }),\n ...(correctness === 'correct' && correct('stroke')),\n ...(correctness === 'incorrect' && incorrect('stroke')),\n ...(correctness === 'missing' && {\n ...missing('stroke'),\n strokeWidth: 1,\n strokeDasharray: '4 3',\n }),\n}));\n\nconst StyledLine = styled(vx.LinePath)(({ theme, disabled: isDisabled, correctness, isDragging }) => ({\n strokeWidth:
|
|
1
|
+
{"version":3,"file":"line-path.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_plot","_styles2","vx","_interopRequireWildcard","_renderUi","_excluded","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","dragging","strokeWidth","stroke","color","defaults","BLACK","StyledDrawLine","styled","LinePath","_ref","isDisabled","disabled","correctness","fill","black","disabledSecondary","correct","incorrect","missing","strokeDasharray","StyledLine","_ref2","theme","isDragging","transition","pointerEvents","RawLinePath","exports","_React$Component","_classCallCheck2","_inherits2","_createClass2","key","value","render","_this$props","props","data","className","from","to","graphProps","rest","_objectWithoutProperties2","createElement","Fragment","_extends2","React","Component","PropTypes","string","arrayOf","number","types","GraphPropsType","isRequired","bool","PointType"],"sources":["../../../../src/tools/shared/line/line-path.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport { types } from '@pie-lib/plot';\nimport { correct, disabled, disabledSecondary, incorrect, missing } from '../styles';\nimport * as vx from '@visx/shape';\nimport { color } from '@pie-lib/render-ui';\n\nconst dragging = () => ({\n strokeWidth: 4,\n stroke: color.defaults.BLACK,\n});\n\nconst StyledDrawLine = styled(vx.LinePath)(({ disabled: isDisabled, correctness }) => ({\n fill: 'none',\n strokeWidth: 2,\n stroke: color.black(),\n ...(isDisabled && {\n ...disabledSecondary('stroke'),\n strokeWidth: 2,\n }),\n ...(correctness === 'correct' && correct('stroke')),\n ...(correctness === 'incorrect' && incorrect('stroke')),\n ...(correctness === 'missing' && {\n ...missing('stroke'),\n strokeWidth: 1,\n strokeDasharray: '4 3',\n }),\n}));\n\nconst StyledLine = styled(vx.LinePath)(({ theme, disabled: isDisabled, correctness, isDragging }) => ({\n strokeWidth: 7,\n fill: 'none',\n transition: 'stroke-width 200ms ease-in, stroke 200ms ease-in',\n stroke: 'transparent',\n pointerEvents: 'stroke',\n '&:hover': dragging(theme),\n ...(isDragging && dragging(theme)),\n ...(isDisabled && {\n ...disabled('stroke'),\n strokeWidth: 2,\n }),\n ...(correctness === 'correct' && correct('stroke')),\n ...(correctness === 'incorrect' && incorrect('stroke')),\n ...(correctness === 'missing' && {\n ...missing('stroke'),\n strokeWidth: 1,\n strokeDasharray: '4 3',\n }),\n}));\n\nexport class RawLinePath extends React.Component {\n static propTypes = {\n className: PropTypes.string,\n data: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.number)),\n graphProps: types.GraphPropsType.isRequired,\n disabled: PropTypes.bool,\n correctness: PropTypes.string,\n from: types.PointType,\n to: types.PointType,\n isDragging: PropTypes.bool,\n };\n\n static defaultProps = {\n from: {},\n to: {},\n };\n\n render() {\n /* eslint-disable no-unused-vars */\n const { data, className, disabled, correctness, from, to, graphProps, isDragging, ...rest } = this.props;\n /* eslint-enable */\n\n return (\n <React.Fragment>\n <StyledDrawLine data={data} className={className} disabled={disabled} correctness={correctness} {...rest} />\n <StyledLine\n data={data}\n className={className}\n isDragging={isDragging}\n disabled={disabled}\n correctness={correctness}\n {...rest}\n />\n </React.Fragment>\n );\n }\n}\n\nexport const LinePath = RawLinePath;\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.22",
|
|
7
7
|
"description": "Graphing components",
|
|
8
8
|
"keywords": [
|
|
9
9
|
"react",
|
|
@@ -22,10 +22,10 @@
|
|
|
22
22
|
"@mapbox/point-geometry": "^1.1.0",
|
|
23
23
|
"@mui/icons-material": "^7.3.4",
|
|
24
24
|
"@mui/material": "^7.3.4",
|
|
25
|
-
"@pie-lib/drag": "^3.2.0-next.
|
|
26
|
-
"@pie-lib/editable-html-tip-tap": "^1.2.0-next.
|
|
25
|
+
"@pie-lib/drag": "^3.2.0-next.8",
|
|
26
|
+
"@pie-lib/editable-html-tip-tap": "^1.2.0-next.22",
|
|
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.22",
|
|
29
29
|
"@pie-lib/render-ui": "^5.2.0-next.7",
|
|
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": "c5a223cbbd5f93f731be34d3565cd34cf321fc2d",
|
|
58
58
|
"scripts": {}
|
|
59
59
|
}
|
|
@@ -34,7 +34,7 @@ const StyledAccordion = styled(Accordion)({
|
|
|
34
34
|
});
|
|
35
35
|
|
|
36
36
|
const StyledAccordionSummary = styled(AccordionSummary)(({ theme }) => ({
|
|
37
|
-
padding: `0 ${theme.spacing(1)}
|
|
37
|
+
padding: `0 ${theme.spacing(1)}`,
|
|
38
38
|
minHeight: '32px !important',
|
|
39
39
|
'& .MuiAccordionSummary-content': {
|
|
40
40
|
margin: '4px 0 !important',
|
|
@@ -41,6 +41,16 @@ export const ArrowedLine = (props) => {
|
|
|
41
41
|
)}
|
|
42
42
|
/>
|
|
43
43
|
</defs>
|
|
44
|
+
{/* Transparent wider line captures pointer events (+2px each side) */}
|
|
45
|
+
<line
|
|
46
|
+
x1={scale.x(eFrom.x)}
|
|
47
|
+
y1={scale.y(eFrom.y)}
|
|
48
|
+
x2={scale.x(eTo.x)}
|
|
49
|
+
y2={scale.y(eTo.y)}
|
|
50
|
+
stroke="transparent"
|
|
51
|
+
strokeWidth={7}
|
|
52
|
+
style={{ cursor: 'pointer', pointerEvents: 'stroke' }}
|
|
53
|
+
/>
|
|
44
54
|
<line
|
|
45
55
|
x1={scale.x(eFrom.x)}
|
|
46
56
|
y1={scale.y(eFrom.y)}
|
|
@@ -7,9 +7,10 @@ import * as utils from '../../utils';
|
|
|
7
7
|
import { correct, disabled, incorrect, missing } from '../shared/styles';
|
|
8
8
|
|
|
9
9
|
const StyledLine = styled('line')(({ disabled: isDisabled, correctness }) => ({
|
|
10
|
-
strokeWidth:
|
|
10
|
+
strokeWidth: 7,
|
|
11
11
|
transition: 'stroke-width 200ms ease-in, stroke 200ms ease-in',
|
|
12
12
|
stroke: 'transparent',
|
|
13
|
+
pointerEvents: 'stroke',
|
|
13
14
|
'&:hover': {
|
|
14
15
|
strokeWidth: 4,
|
|
15
16
|
stroke: color.defaults.BLACK,
|
|
@@ -8,7 +8,7 @@ import { getAdjustedGraphLimits, thinnerShapesNeeded } from '../../utils';
|
|
|
8
8
|
import { styled } from '@mui/material/styles';
|
|
9
9
|
|
|
10
10
|
const StyledRayRoot = styled('g')(({ theme, disabled, correctness }) => ({
|
|
11
|
-
'& line': {
|
|
11
|
+
'& line:not(.hit-area)': {
|
|
12
12
|
...styles.line(theme),
|
|
13
13
|
...(disabled && styles.disabledSecondary(theme)),
|
|
14
14
|
...(correctness === 'correct' && styles.correct(theme, 'stroke')),
|
|
@@ -52,6 +52,17 @@ export const RayLine = (props) => {
|
|
|
52
52
|
)}
|
|
53
53
|
/>
|
|
54
54
|
</defs>
|
|
55
|
+
{/* Transparent wider line captures pointer events (+2px each side) */}
|
|
56
|
+
<line
|
|
57
|
+
x1={scale.x(from.x)}
|
|
58
|
+
y1={scale.y(from.y)}
|
|
59
|
+
x2={scale.x(aToB.x)}
|
|
60
|
+
y2={scale.y(aToB.y)}
|
|
61
|
+
className="hit-area"
|
|
62
|
+
stroke="transparent"
|
|
63
|
+
strokeWidth={7}
|
|
64
|
+
style={{ cursor: 'pointer', pointerEvents: 'stroke' }}
|
|
65
|
+
/>
|
|
55
66
|
<line
|
|
56
67
|
x1={scale.x(from.x)}
|
|
57
68
|
y1={scale.y(from.y)}
|
|
@@ -18,20 +18,23 @@ const StyledLineRoot = styled('line')(({ theme, disabled, correctness }) => ({
|
|
|
18
18
|
export const Line = (props) => {
|
|
19
19
|
const { className, correctness, disabled, graphProps, from, to, ...rest } = props;
|
|
20
20
|
const { scale } = graphProps;
|
|
21
|
+
const x1 = scale.x(from.x);
|
|
22
|
+
const y1 = scale.y(from.y);
|
|
23
|
+
const x2 = scale.x(to.x);
|
|
24
|
+
const y2 = scale.y(to.y);
|
|
21
25
|
|
|
22
26
|
return (
|
|
23
|
-
<
|
|
24
|
-
|
|
25
|
-
strokeWidth={
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
/>
|
|
27
|
+
<g>
|
|
28
|
+
{/* Transparent wider line captures pointer events (+2px each side) */}
|
|
29
|
+
<line x1={x1} y1={y1} x2={x2} y2={y2} stroke="transparent" strokeWidth={7} style={{ cursor: 'pointer', pointerEvents: 'stroke' }} />
|
|
30
|
+
<StyledLineRoot
|
|
31
|
+
x1={x1} y1={y1} x2={x2} y2={y2}
|
|
32
|
+
className={className}
|
|
33
|
+
disabled={disabled}
|
|
34
|
+
correctness={correctness}
|
|
35
|
+
{...rest}
|
|
36
|
+
/>
|
|
37
|
+
</g>
|
|
35
38
|
);
|
|
36
39
|
};
|
|
37
40
|
|
|
@@ -299,10 +299,11 @@ export const lineBase = (Comp, opts) => {
|
|
|
299
299
|
};
|
|
300
300
|
|
|
301
301
|
clickPoint = (point, type, data) => {
|
|
302
|
-
const { changeMarkProps, disabled, from, to, labelModeEnabled, limitLabeling
|
|
302
|
+
const { changeMarkProps, disabled, from, to, labelModeEnabled, limitLabeling } = this.props;
|
|
303
303
|
|
|
304
304
|
if (!labelModeEnabled) {
|
|
305
|
-
|
|
305
|
+
// Clicks on existing mark points/lines should not create new marks.
|
|
306
|
+
// Moving is handled entirely by drag. Do nothing here.
|
|
306
307
|
return;
|
|
307
308
|
}
|
|
308
309
|
|
|
@@ -344,7 +345,7 @@ export const lineBase = (Comp, opts) => {
|
|
|
344
345
|
labelNode,
|
|
345
346
|
labelModeEnabled,
|
|
346
347
|
} = this.props;
|
|
347
|
-
const common = { graphProps, onDragStart, onDragStop, disabled, correctness
|
|
348
|
+
const common = { graphProps, onDragStart, onDragStop, disabled, correctness };
|
|
348
349
|
const angle = to ? trig.toDegrees(trig.angle(from, to)) : 0;
|
|
349
350
|
|
|
350
351
|
let fromLabelNode = null;
|
|
@@ -29,10 +29,11 @@ const StyledDrawLine = styled(vx.LinePath)(({ disabled: isDisabled, correctness
|
|
|
29
29
|
}));
|
|
30
30
|
|
|
31
31
|
const StyledLine = styled(vx.LinePath)(({ theme, disabled: isDisabled, correctness, isDragging }) => ({
|
|
32
|
-
strokeWidth:
|
|
32
|
+
strokeWidth: 7,
|
|
33
33
|
fill: 'none',
|
|
34
34
|
transition: 'stroke-width 200ms ease-in, stroke 200ms ease-in',
|
|
35
35
|
stroke: 'transparent',
|
|
36
|
+
pointerEvents: 'stroke',
|
|
36
37
|
'&:hover': dragging(theme),
|
|
37
38
|
...(isDragging && dragging(theme)),
|
|
38
39
|
...(isDisabled && {
|