@pie-lib/graphing 2.4.7 → 2.4.10
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 +30 -0
- package/lib/axis/arrow.js +22 -18
- package/lib/axis/arrow.js.map +1 -1
- package/lib/axis/axes.js +74 -78
- package/lib/axis/axes.js.map +1 -1
- package/lib/axis/index.js +5 -1
- package/lib/axis/index.js.map +1 -1
- package/lib/bg.js +16 -14
- package/lib/bg.js.map +1 -1
- package/lib/container/index.js +21 -15
- package/lib/container/index.js.map +1 -1
- package/lib/coordinates-label.js +4 -4
- package/lib/coordinates-label.js.map +1 -1
- package/lib/graph-with-controls.js +29 -25
- package/lib/graph-with-controls.js.map +1 -1
- package/lib/graph.js +58 -45
- package/lib/graph.js.map +1 -1
- package/lib/grid.js +20 -14
- package/lib/grid.js.map +1 -1
- package/lib/index.js +5 -1
- package/lib/index.js.map +1 -1
- package/lib/labels.js +28 -24
- package/lib/labels.js.map +1 -1
- package/lib/mark-label.js +16 -8
- package/lib/mark-label.js.map +1 -1
- package/lib/toggle-bar.js +18 -16
- package/lib/toggle-bar.js.map +1 -1
- package/lib/tool-menu.js +22 -16
- package/lib/tool-menu.js.map +1 -1
- package/lib/tools/circle/bg-circle.js +26 -18
- package/lib/tools/circle/bg-circle.js.map +1 -1
- package/lib/tools/circle/component.js +30 -28
- package/lib/tools/circle/component.js.map +1 -1
- package/lib/tools/circle/index.js +4 -4
- package/lib/tools/circle/index.js.map +1 -1
- package/lib/tools/index.js +16 -15
- package/lib/tools/index.js.map +1 -1
- package/lib/tools/line/component.js +17 -7
- package/lib/tools/line/component.js.map +1 -1
- package/lib/tools/parabola/component.js.map +1 -1
- package/lib/tools/parabola/index.js +4 -4
- package/lib/tools/parabola/index.js.map +1 -1
- package/lib/tools/point/component.js +21 -17
- package/lib/tools/point/component.js.map +1 -1
- package/lib/tools/point/index.js +2 -2
- package/lib/tools/polygon/component.js +55 -47
- package/lib/tools/polygon/component.js.map +1 -1
- package/lib/tools/polygon/index.js +12 -8
- package/lib/tools/polygon/index.js.map +1 -1
- package/lib/tools/polygon/line.js +26 -18
- package/lib/tools/polygon/line.js.map +1 -1
- package/lib/tools/polygon/polygon.js +26 -18
- package/lib/tools/polygon/polygon.js.map +1 -1
- package/lib/tools/ray/component.js +17 -7
- package/lib/tools/ray/component.js.map +1 -1
- package/lib/tools/segment/component.js +4 -2
- package/lib/tools/segment/component.js.map +1 -1
- package/lib/tools/shared/arrow-head.js +4 -4
- package/lib/tools/shared/arrow-head.js.map +1 -1
- package/lib/tools/shared/line/index.js +46 -44
- package/lib/tools/shared/line/index.js.map +1 -1
- package/lib/tools/shared/line/line-path.js +28 -20
- package/lib/tools/shared/line/line-path.js.map +1 -1
- package/lib/tools/shared/line/with-root-edge.js +8 -6
- package/lib/tools/shared/line/with-root-edge.js.map +1 -1
- package/lib/tools/shared/point/arrow-point.js +21 -15
- package/lib/tools/shared/point/arrow-point.js.map +1 -1
- package/lib/tools/shared/point/arrow.js +21 -15
- package/lib/tools/shared/point/arrow.js.map +1 -1
- package/lib/tools/shared/point/base-point.js +22 -16
- package/lib/tools/shared/point/base-point.js.map +1 -1
- package/lib/tools/shared/point/index.js +8 -4
- package/lib/tools/shared/point/index.js.map +1 -1
- package/lib/tools/shared/styles.js +1 -1
- package/lib/tools/shared/types.js +1 -1
- package/lib/tools/sine/component.js.map +1 -1
- package/lib/tools/sine/index.js +4 -4
- package/lib/tools/sine/index.js.map +1 -1
- package/lib/tools/vector/component.js +4 -2
- package/lib/tools/vector/component.js.map +1 -1
- package/lib/undo-redo.js +20 -16
- package/lib/undo-redo.js.map +1 -1
- package/lib/use-debounce.js +7 -3
- package/lib/use-debounce.js.map +1 -1
- package/lib/utils.js +93 -5
- package/lib/utils.js.map +1 -1
- package/package.json +2 -2
- package/src/axis/arrow.jsx +5 -5
- package/src/axis/axes.jsx +25 -36
- package/src/graph.jsx +16 -10
- package/src/tools/line/component.jsx +4 -2
- package/src/tools/ray/component.jsx +4 -2
- package/src/utils.js +87 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/tools/polygon/component.jsx"],"names":["log","buildLines","points","closed","expanded","reduce","acc","p","index","push","isLast","length","next","all","map","from","to","swap","arr","rest","pairs","pr","e","replacement","Number","isFinite","splice","RawBaseComponent","props","onChange","update","overlapPoint","find","label","existing","forEach","point","onClosePolygon","onChangeProps","updatedPoint","data","onClick","isToolActive","labelModeEnabled","onChangeLabelProps","a","b","middle","input","focus","close","coordinatesOnHover","correctness","disabled","graphProps","onDragStart","onDragStop","labelNode","lines","common","polygonLabelIndex","polygonLabelNode","hasOwnProperty","ReactDOM","createPortal","r","dragPoly","bind","clickPoint","l","dragLine","x","y","dragPoint","labelChange","React","Component","classes","PropTypes","object","className","string","bool","arrayOf","types","PointType","func","isRequired","GraphPropsType","BaseComponent","mark","state","setState","onComplete","m","undefined","nextProps","nextState","nextGraphProps","utils","isDomainRangeEqual","stateMark","change","changeLabelProps","changeProps","closePolygon","dragStart","dragStop","ToolPropTypeFields"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { ToolPropTypeFields } from '../shared/types';\nimport { BasePoint } from '../shared/point';\nimport chunk from 'lodash/chunk';\nimport initial from 'lodash/initial';\nimport isEqual from 'lodash/isEqual';\nimport debug from 'debug';\nimport Line from './line';\nimport DraggablePolygon, { Polygon } from './polygon';\nimport { types, utils } from '@pie-lib/plot';\nimport invariant from 'invariant';\nimport ReactDOM from 'react-dom';\nimport MarkLabel from '../../mark-label';\nimport isEmpty from 'lodash/isEmpty';\nimport { getMiddleOfTwoPoints, getRightestPoints, equalPoints } 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 const isLast = index === points.length - 1;\n const next = isLast ? 0 : index + 1;\n acc.push({ ...points[next], index: next });\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 return pairs.reduce(\n (acc, pr) => {\n if (pr.length === 2) {\n let [e, replacement] = pr;\n invariant(Number.isFinite(e.index), 'Index must be defined');\n const index = e.index;\n // const i = acc.findIndex(pt => pt.x === e.x && pt.y === e.y);\n if (index >= 0) {\n acc.splice(index, 1, replacement);\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 labelNode: PropTypes.object,\n labelModeEnabled: 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 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 onClick,\n isToolActive,\n labelModeEnabled,\n onChangeProps,\n onChangeLabelProps,\n points\n } = this.props;\n\n if (labelModeEnabled) {\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 } else {\n if (isToolActive && !closed && index === 0) {\n this.close();\n } else {\n onClick(data);\n }\n }\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 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 && middle.hasOwnProperty('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={() => {}}\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 onClick={this.clickPoint.bind(this, p, index)}\n {...common}\n />,\n labelNode && p.hasOwnProperty('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 = withStyles(() => ({}))(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 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 this.setState({ mark: undefined }, () => {\n onChange(this.props.mark, m);\n });\n };\n\n shouldComponentUpdate = (nextProps, nextState) => {\n const { coordinatesOnHover, graphProps, mark } = this.props;\n const { graphProps: nextGraphProps } = nextProps;\n\n return (\n !utils.isDomainRangeEqual(graphProps, nextGraphProps) ||\n !isEqual(mark, nextProps.mark) ||\n !isEqual(this.state.mark, nextState.mark) ||\n coordinatesOnHover !== nextProps.coordinatesOnHover\n );\n };\n\n render() {\n const {\n coordinatesOnHover,\n mark,\n graphProps,\n onClick,\n isToolActive,\n labelNode,\n labelModeEnabled\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 />\n );\n }\n}\n"],"file":"component.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/tools/polygon/component.jsx"],"names":["log","buildLines","points","closed","expanded","reduce","acc","p","index","push","isLast","length","next","all","map","from","to","swap","arr","rest","pairs","pr","e","replacement","Number","isFinite","splice","RawBaseComponent","props","onChange","update","overlapPoint","find","label","existing","forEach","point","onClosePolygon","onChangeProps","updatedPoint","data","onClick","isToolActive","labelModeEnabled","onChangeLabelProps","a","b","middle","input","focus","close","coordinatesOnHover","correctness","disabled","graphProps","onDragStart","onDragStop","labelNode","lines","common","polygonLabelIndex","polygonLabelNode","hasOwnProperty","ReactDOM","createPortal","r","dragPoly","bind","clickPoint","l","dragLine","x","y","dragPoint","labelChange","React","Component","classes","PropTypes","object","className","string","bool","arrayOf","types","PointType","func","isRequired","GraphPropsType","BaseComponent","mark","state","setState","onComplete","m","undefined","nextProps","nextState","nextGraphProps","utils","isDomainRangeEqual","stateMark","change","changeLabelProps","changeProps","closePolygon","dragStart","dragStop","ToolPropTypeFields"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { ToolPropTypeFields } from '../shared/types';\nimport { BasePoint } from '../shared/point';\nimport chunk from 'lodash/chunk';\nimport initial from 'lodash/initial';\nimport isEqual from 'lodash/isEqual';\nimport debug from 'debug';\nimport Line from './line';\nimport DraggablePolygon, { Polygon } from './polygon';\nimport { types, utils } from '@pie-lib/plot';\nimport invariant from 'invariant';\nimport ReactDOM from 'react-dom';\nimport MarkLabel from '../../mark-label';\nimport isEmpty from 'lodash/isEmpty';\nimport { getMiddleOfTwoPoints, getRightestPoints, equalPoints } 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 const isLast = index === points.length - 1;\n const next = isLast ? 0 : index + 1;\n acc.push({ ...points[next], index: next });\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 return pairs.reduce(\n (acc, pr) => {\n if (pr.length === 2) {\n let [e, replacement] = pr;\n invariant(Number.isFinite(e.index), 'Index must be defined');\n const index = e.index;\n // const i = acc.findIndex(pt => pt.x === e.x && pt.y === e.y);\n if (index >= 0) {\n acc.splice(index, 1, replacement);\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 labelNode: PropTypes.object,\n labelModeEnabled: 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 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 onClick,\n isToolActive,\n labelModeEnabled,\n onChangeProps,\n onChangeLabelProps,\n points\n } = this.props;\n\n if (labelModeEnabled) {\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 } else {\n if (isToolActive && !closed && index === 0) {\n this.close();\n } else {\n onClick(data);\n }\n }\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 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 && middle.hasOwnProperty('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={() => {}}\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 onClick={this.clickPoint.bind(this, p, index)}\n {...common}\n />,\n labelNode && p.hasOwnProperty('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 = withStyles(() => ({}))(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 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 this.setState({ mark: undefined }, () => {\n onChange(this.props.mark, m);\n });\n };\n\n shouldComponentUpdate = (nextProps, nextState) => {\n const { coordinatesOnHover, graphProps, mark } = this.props;\n const { graphProps: nextGraphProps } = nextProps;\n\n return (\n !utils.isDomainRangeEqual(graphProps, nextGraphProps) ||\n !isEqual(mark, nextProps.mark) ||\n !isEqual(this.state.mark, nextState.mark) ||\n coordinatesOnHover !== nextProps.coordinatesOnHover\n );\n };\n\n render() {\n const {\n coordinatesOnHover,\n mark,\n graphProps,\n onClick,\n isToolActive,\n labelNode,\n labelModeEnabled\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 />\n );\n }\n}\n"],"file":"component.js"}
|
|
@@ -11,19 +11,23 @@ var _utils = require("../../utils");
|
|
|
11
11
|
|
|
12
12
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
13
13
|
|
|
14
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
14
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
15
15
|
|
|
16
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
16
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
17
17
|
|
|
18
18
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
19
19
|
|
|
20
|
-
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }
|
|
20
|
+
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
21
21
|
|
|
22
|
-
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); }
|
|
22
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
23
23
|
|
|
24
|
-
function
|
|
24
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
25
25
|
|
|
26
|
-
function
|
|
26
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
27
|
+
|
|
28
|
+
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
29
|
+
|
|
30
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
27
31
|
|
|
28
32
|
var addPointToArray = function addPointToArray(point, arr) {
|
|
29
33
|
arr = arr || [];
|
|
@@ -80,7 +84,7 @@ var tool = function tool() {
|
|
|
80
84
|
type: 'polygon',
|
|
81
85
|
Component: _component["default"],
|
|
82
86
|
complete: function complete(data, mark) {
|
|
83
|
-
return _objectSpread({}, mark, {
|
|
87
|
+
return _objectSpread(_objectSpread({}, mark), {}, {
|
|
84
88
|
building: false,
|
|
85
89
|
closed: true
|
|
86
90
|
});
|
|
@@ -98,7 +102,7 @@ var tool = function tool() {
|
|
|
98
102
|
closed = _addPointToArray.closed,
|
|
99
103
|
points = _addPointToArray.points;
|
|
100
104
|
|
|
101
|
-
return _objectSpread({}, mark, {
|
|
105
|
+
return _objectSpread(_objectSpread({}, mark), {}, {
|
|
102
106
|
closed: closed,
|
|
103
107
|
points: points,
|
|
104
108
|
building: !closed
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/tools/polygon/index.js"],"names":["addPointToArray","point","arr","length","points","closed","hasPoint","find","p","tool","type","Component","Polygon","complete","data","mark","building","addPoint"],"mappings":";;;;;;;AAAA;;AACA
|
|
1
|
+
{"version":3,"sources":["../../../src/tools/polygon/index.js"],"names":["addPointToArray","point","arr","length","points","closed","hasPoint","find","p","tool","type","Component","Polygon","complete","data","mark","building","addPoint"],"mappings":";;;;;;;AAAA;;AACA;;;;;;;;;;;;;;;;;;;;;;AAEO,IAAMA,eAAe,GAAG,SAAlBA,eAAkB,CAACC,KAAD,EAAQC,GAAR,EAAgB;AAC7CA,EAAAA,GAAG,GAAGA,GAAG,IAAI,EAAb;;AAEA,MAAIA,GAAG,CAACC,MAAJ,KAAe,CAAnB,EAAsB;AACpB,WAAO;AAAEC,MAAAA,MAAM,EAAE,CAACH,KAAD,CAAV;AAAmBI,MAAAA,MAAM,EAAE;AAA3B,KAAP;AACD,GAFD,MAEO,IAAIH,GAAG,CAACC,MAAJ,KAAe,CAAnB,EAAsB;AAC3B,QAAI,wBAAYF,KAAZ,EAAmBC,GAAG,CAAC,CAAD,CAAtB,CAAJ,EAAgC;AAC9B,aAAO;AAAEE,QAAAA,MAAM,EAAEF,GAAV;AAAeG,QAAAA,MAAM,EAAE;AAAvB,OAAP;AACD,KAFD,MAEO;AACL,aAAO;AAAED,QAAAA,MAAM,+BAAMF,GAAN,IAAWD,KAAX,EAAR;AAA2BI,QAAAA,MAAM,EAAE;AAAnC,OAAP;AACD;AACF,GANM,MAMA,IAAIH,GAAG,CAACC,MAAJ,IAAc,CAAlB,EAAqB;AAC1B,QAAME,MAAM,GAAG,wBAAYJ,KAAZ,EAAmBC,GAAG,CAAC,CAAD,CAAtB,CAAf;;AAEA,QAAIG,MAAJ,EAAY;AACV,aAAO;AAAED,QAAAA,MAAM,EAAEF,GAAV;AAAeG,QAAAA,MAAM,EAANA;AAAf,OAAP;AACD,KAFD,MAEO;AACL,UAAMC,QAAQ,GAAG,CAAC,CAACJ,GAAG,CAACK,IAAJ,CAAS,UAAAC,CAAC;AAAA,eAAI,wBAAYA,CAAZ,EAAeP,KAAf,CAAJ;AAAA,OAAV,CAAnB;;AAEA,UAAIK,QAAJ,EAAc;AACZ,eAAO;AAAEF,UAAAA,MAAM,EAAEF,GAAV;AAAeG,UAAAA,MAAM,EAAE;AAAvB,SAAP;AACD,OAFD,MAEO;AACL,eAAO;AAAED,UAAAA,MAAM,+BAAMF,GAAN,IAAWD,KAAX,EAAR;AAA2BI,UAAAA,MAAM,EAAE;AAAnC,SAAP;AACD;AACF;AACF;AACF,CA1BM;;;;AA4BA,IAAMI,IAAI,GAAG,SAAPA,IAAO;AAAA,SAAO;AACzBC,IAAAA,IAAI,EAAE,SADmB;AAEzBC,IAAAA,SAAS,EAAEC,qBAFc;AAGzBC,IAAAA,QAAQ,EAAE,kBAACC,IAAD,EAAOC,IAAP,EAAgB;AACxB,6CAAYA,IAAZ;AAAkBC,QAAAA,QAAQ,EAAE,KAA5B;AAAmCX,QAAAA,MAAM,EAAE;AAA3C;AACD,KALwB;AAMzBY,IAAAA,QAAQ,EAAE,kBAAChB,KAAD,EAAQc,IAAR,EAAiB;AACzB,UAAI,CAACA,IAAL,EAAW;AACT,eAAO;AACLL,UAAAA,IAAI,EAAE,SADD;AAELN,UAAAA,MAAM,EAAE,CAACH,KAAD,CAFH;AAGLI,UAAAA,MAAM,EAAE,KAHH;AAILW,UAAAA,QAAQ,EAAE;AAJL,SAAP;AAMD,OAPD,MAOO;AACL,+BAA2BhB,eAAe,CAACC,KAAD,EAAQc,IAAI,CAACX,MAAb,CAA1C;AAAA,YAAQC,MAAR,oBAAQA,MAAR;AAAA,YAAgBD,MAAhB,oBAAgBA,MAAhB;;AAEA,+CAAYW,IAAZ;AAAkBV,UAAAA,MAAM,EAANA,MAAlB;AAA0BD,UAAAA,MAAM,EAANA,MAA1B;AAAkCY,UAAAA,QAAQ,EAAE,CAACX;AAA7C;AACD;AACF;AAnBwB,GAAP;AAAA,CAAb","sourcesContent":["import Polygon from './component';\nimport { equalPoints } from '../../utils';\n\nexport const addPointToArray = (point, arr) => {\n arr = arr || [];\n\n if (arr.length === 0) {\n return { points: [point], closed: false };\n } else if (arr.length === 1) {\n if (equalPoints(point, arr[0])) {\n return { points: arr, closed: false };\n } else {\n return { points: [...arr, point], closed: false };\n }\n } else if (arr.length >= 2) {\n const closed = equalPoints(point, arr[0]);\n\n if (closed) {\n return { points: arr, closed };\n } else {\n const hasPoint = !!arr.find(p => equalPoints(p, point));\n\n if (hasPoint) {\n return { points: arr, closed: false };\n } else {\n return { points: [...arr, point], closed: false };\n }\n }\n }\n};\n\nexport const tool = () => ({\n type: 'polygon',\n Component: Polygon,\n complete: (data, mark) => {\n return { ...mark, building: false, closed: true };\n },\n addPoint: (point, mark) => {\n if (!mark) {\n return {\n type: 'polygon',\n points: [point],\n closed: false,\n building: true\n };\n } else {\n const { closed, points } = addPointToArray(point, mark.points);\n\n return { ...mark, closed, points, building: !closed };\n }\n }\n});\n"],"file":"index.js"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
4
|
+
|
|
3
5
|
Object.defineProperty(exports, "__esModule", {
|
|
4
6
|
value: true
|
|
5
7
|
});
|
|
@@ -21,15 +23,17 @@ var _classnames = _interopRequireDefault(require("classnames"));
|
|
|
21
23
|
|
|
22
24
|
var _styles2 = require("../shared/styles");
|
|
23
25
|
|
|
24
|
-
|
|
26
|
+
var _excluded = ["graphProps", "classes", "from", "to", "className", "disabled", "correctness"];
|
|
27
|
+
|
|
28
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
25
29
|
|
|
26
|
-
function
|
|
30
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
27
31
|
|
|
28
|
-
function
|
|
32
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
29
33
|
|
|
30
|
-
function
|
|
34
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
31
35
|
|
|
32
|
-
function
|
|
36
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
33
37
|
|
|
34
38
|
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
35
39
|
|
|
@@ -41,29 +45,33 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
|
|
|
41
45
|
|
|
42
46
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
|
43
47
|
|
|
44
|
-
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
|
48
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
45
49
|
|
|
46
|
-
function
|
|
50
|
+
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
|
47
51
|
|
|
48
|
-
function
|
|
52
|
+
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
49
53
|
|
|
50
|
-
function
|
|
54
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
51
55
|
|
|
52
|
-
function
|
|
56
|
+
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
|
|
53
57
|
|
|
54
|
-
function
|
|
58
|
+
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
59
|
+
|
|
60
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
61
|
+
|
|
62
|
+
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
55
63
|
|
|
56
64
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
57
65
|
|
|
58
|
-
var RawLine =
|
|
59
|
-
/*#__PURE__*/
|
|
60
|
-
function (_React$Component) {
|
|
66
|
+
var RawLine = /*#__PURE__*/function (_React$Component) {
|
|
61
67
|
_inherits(RawLine, _React$Component);
|
|
62
68
|
|
|
69
|
+
var _super = _createSuper(RawLine);
|
|
70
|
+
|
|
63
71
|
function RawLine() {
|
|
64
72
|
_classCallCheck(this, RawLine);
|
|
65
73
|
|
|
66
|
-
return
|
|
74
|
+
return _super.apply(this, arguments);
|
|
67
75
|
}
|
|
68
76
|
|
|
69
77
|
_createClass(RawLine, [{
|
|
@@ -77,10 +85,10 @@ function (_React$Component) {
|
|
|
77
85
|
className = _this$props.className,
|
|
78
86
|
disabled = _this$props.disabled,
|
|
79
87
|
correctness = _this$props.correctness,
|
|
80
|
-
rest = _objectWithoutProperties(_this$props,
|
|
88
|
+
rest = _objectWithoutProperties(_this$props, _excluded);
|
|
81
89
|
|
|
82
90
|
var scale = graphProps.scale;
|
|
83
|
-
return _react["default"].createElement("line", _extends({
|
|
91
|
+
return /*#__PURE__*/_react["default"].createElement("line", _extends({
|
|
84
92
|
x1: scale.x(from.x),
|
|
85
93
|
y1: scale.y(from.y),
|
|
86
94
|
x2: scale.x(to.x),
|
|
@@ -119,7 +127,7 @@ var Line = (0, _styles.withStyles)(function () {
|
|
|
119
127
|
stroke: _renderUi.color.secondary()
|
|
120
128
|
}
|
|
121
129
|
},
|
|
122
|
-
disabled: _objectSpread({}, (0, _styles2.disabled)('stroke'), {
|
|
130
|
+
disabled: _objectSpread(_objectSpread({}, (0, _styles2.disabled)('stroke')), {}, {
|
|
123
131
|
strokeWidth: 2
|
|
124
132
|
}),
|
|
125
133
|
correct: (0, _styles2.correct)('stoke'),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/tools/polygon/line.jsx"],"names":["RawLine","props","graphProps","classes","from","to","className","disabled","correctness","rest","scale","x","y","line","React","Component","PropTypes","string","object","types","PointType","GraphPropsType","isRequired","bool","Line","strokeWidth","transition","stroke","color","secondary","correct","incorrect","bounds","domain","range","area","utils","lineToArea","anchorPoint","fromDelta","delta","point","add"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../src/tools/polygon/line.jsx"],"names":["RawLine","props","graphProps","classes","from","to","className","disabled","correctness","rest","scale","x","y","line","React","Component","PropTypes","string","object","types","PointType","GraphPropsType","isRequired","bool","Line","strokeWidth","transition","stroke","color","secondary","correct","incorrect","bounds","domain","range","area","utils","lineToArea","anchorPoint","fromDelta","delta","point","add"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { types, gridDraggable } from '@pie-lib/plot';\nimport { color } from '@pie-lib/render-ui';\nimport * as utils from '../../utils';\nimport classNames from 'classnames';\nimport { correct, disabled, incorrect } from '../shared/styles';\n\nclass RawLine extends React.Component {\n static propTypes = {\n className: PropTypes.string,\n classes: PropTypes.object,\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 const { graphProps, classes, from, to, className, disabled, correctness, ...rest } = this.props;\n const { scale } = graphProps;\n return (\n <line\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={classNames(\n classes.line,\n disabled && classes.disabled,\n className,\n classes[correctness]\n )}\n {...rest}\n />\n );\n }\n}\n\nexport const Line = withStyles(() => ({\n line: {\n strokeWidth: 6,\n transition: 'stroke-width 200ms ease-in, stroke 200ms ease-in',\n stroke: 'transparent',\n '&:hover': {\n strokeWidth: 7,\n stroke: color.secondary()\n }\n },\n disabled: {\n ...disabled('stroke'),\n strokeWidth: 2\n },\n correct: correct('stoke'),\n incorrect: incorrect('stroke')\n}))(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"],"file":"line.js"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
4
|
+
|
|
3
5
|
Object.defineProperty(exports, "__esModule", {
|
|
4
6
|
value: true
|
|
5
7
|
});
|
|
6
|
-
exports["default"] = exports.
|
|
8
|
+
exports.getPointString = exports["default"] = exports.RawPolygon = exports.Polygon = void 0;
|
|
7
9
|
|
|
8
10
|
var _react = _interopRequireDefault(require("react"));
|
|
9
11
|
|
|
@@ -23,15 +25,17 @@ var _colorManipulator = require("@material-ui/core/styles/colorManipulator");
|
|
|
23
25
|
|
|
24
26
|
var _styles2 = require("../shared/styles");
|
|
25
27
|
|
|
26
|
-
|
|
28
|
+
var _excluded = ["points", "classes", "className", "disabled", "correctness", "graphProps", "closed"];
|
|
27
29
|
|
|
28
|
-
function
|
|
30
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
29
31
|
|
|
30
|
-
function
|
|
32
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
33
|
+
|
|
34
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
31
35
|
|
|
32
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
36
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
33
37
|
|
|
34
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
38
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
35
39
|
|
|
36
40
|
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
37
41
|
|
|
@@ -43,17 +47,21 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
|
|
|
43
47
|
|
|
44
48
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
|
45
49
|
|
|
46
|
-
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
|
50
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
47
51
|
|
|
48
|
-
function
|
|
52
|
+
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
|
49
53
|
|
|
50
|
-
function
|
|
54
|
+
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
51
55
|
|
|
52
|
-
function
|
|
56
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
53
57
|
|
|
54
|
-
function
|
|
58
|
+
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
|
|
55
59
|
|
|
56
|
-
function
|
|
60
|
+
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
61
|
+
|
|
62
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
63
|
+
|
|
64
|
+
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
57
65
|
|
|
58
66
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
59
67
|
|
|
@@ -69,15 +77,15 @@ var getPointString = function getPointString(points, scale) {
|
|
|
69
77
|
|
|
70
78
|
exports.getPointString = getPointString;
|
|
71
79
|
|
|
72
|
-
var RawPolygon =
|
|
73
|
-
/*#__PURE__*/
|
|
74
|
-
function (_React$Component) {
|
|
80
|
+
var RawPolygon = /*#__PURE__*/function (_React$Component) {
|
|
75
81
|
_inherits(RawPolygon, _React$Component);
|
|
76
82
|
|
|
83
|
+
var _super = _createSuper(RawPolygon);
|
|
84
|
+
|
|
77
85
|
function RawPolygon() {
|
|
78
86
|
_classCallCheck(this, RawPolygon);
|
|
79
87
|
|
|
80
|
-
return
|
|
88
|
+
return _super.apply(this, arguments);
|
|
81
89
|
}
|
|
82
90
|
|
|
83
91
|
_createClass(RawPolygon, [{
|
|
@@ -91,12 +99,12 @@ function (_React$Component) {
|
|
|
91
99
|
correctness = _this$props.correctness,
|
|
92
100
|
graphProps = _this$props.graphProps,
|
|
93
101
|
closed = _this$props.closed,
|
|
94
|
-
rest = _objectWithoutProperties(_this$props,
|
|
102
|
+
rest = _objectWithoutProperties(_this$props, _excluded);
|
|
95
103
|
|
|
96
104
|
var scale = graphProps.scale;
|
|
97
105
|
var pointString = getPointString(points, scale);
|
|
98
106
|
var Tag = closed ? 'polygon' : 'polyline';
|
|
99
|
-
return _react["default"].createElement(Tag, _extends({
|
|
107
|
+
return /*#__PURE__*/_react["default"].createElement(Tag, _extends({
|
|
100
108
|
points: pointString,
|
|
101
109
|
className: (0, _classnames["default"])(closed && classes.closed, !closed && classes.open, disabled && classes.disabled, classes[correctness], className)
|
|
102
110
|
}, rest));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/tools/polygon/polygon.jsx"],"names":["getPointString","points","scale","map","p","scaledPoint","x","y","join","RawPolygon","props","classes","className","disabled","correctness","graphProps","closed","rest","pointString","Tag","open","React","Component","PropTypes","object","string","bool","arrayOf","types","PointType","GraphPropsType","isRequired","Polygon","theme","fill","palette","primary","light","strokeWidth","stroke","color","secondaryLight","pointerEvents","correct","incorrect","bounds","domain","range","area","utils","polygonToArea","anchorPoint","fromDelta","delta","point","add"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../src/tools/polygon/polygon.jsx"],"names":["getPointString","points","scale","map","p","scaledPoint","x","y","join","RawPolygon","props","classes","className","disabled","correctness","graphProps","closed","rest","pointString","Tag","open","React","Component","PropTypes","object","string","bool","arrayOf","types","PointType","GraphPropsType","isRequired","Polygon","theme","fill","palette","primary","light","strokeWidth","stroke","color","secondaryLight","pointerEvents","correct","incorrect","bounds","domain","range","area","utils","polygonToArea","anchorPoint","fromDelta","delta","point","add"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { gridDraggable, types } from '@pie-lib/plot';\nimport * as utils from '../../utils';\nimport classNames from 'classnames';\nimport { color } from '@pie-lib/render-ui';\nimport { fade } from '@material-ui/core/styles/colorManipulator';\nimport { correct, disabled, incorrect } from '../shared/styles';\n\nexport const getPointString = (points, scale) => {\n return (points || [])\n .map(p => {\n const scaledPoint = {\n x: scale.x(p.x),\n y: scale.y(p.y)\n };\n return `${scaledPoint.x},${scaledPoint.y}`;\n })\n .join(' ');\n};\n\nexport class RawPolygon extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n className: PropTypes.string,\n disabled: PropTypes.bool,\n points: PropTypes.arrayOf(types.PointType),\n graphProps: types.GraphPropsType.isRequired,\n closed: PropTypes.bool.isRequired,\n correctness: PropTypes.string\n };\n\n static defaultProps = {\n points: []\n };\n\n render() {\n const {\n points,\n classes,\n className,\n disabled,\n correctness,\n graphProps,\n closed,\n ...rest\n } = this.props;\n const { scale } = graphProps;\n\n const pointString = getPointString(points, scale);\n const Tag = closed ? 'polygon' : 'polyline';\n return (\n <Tag\n points={pointString}\n className={classNames(\n closed && classes.closed,\n !closed && classes.open,\n disabled && classes.disabled,\n classes[correctness],\n className\n )}\n {...rest}\n />\n );\n }\n}\n\nexport const Polygon = withStyles(theme => ({\n closed: {\n fill: fade(theme.palette.primary.light, 0.2), // TODO hardcoded color\n strokeWidth: 2,\n stroke: color.secondaryLight()\n },\n open: {\n fill: fade(theme.palette.primary.light, 0.0), // TODO hardcoded color\n strokeWidth: 2,\n stroke: color.secondaryLight(),\n pointerEvents: 'none'\n },\n disabled: {\n ...disabled('stroke')\n },\n correct: {\n ...correct('stroke')\n },\n incorrect: {\n ...incorrect('stroke')\n }\n}))(RawPolygon);\n\nexport default gridDraggable({\n bounds: (props, { domain, range }) => {\n const { points } = props;\n const area = utils.polygonToArea(points);\n return utils.bounds(area, domain, range);\n },\n anchorPoint: props => {\n const { points } = props;\n return points[0];\n },\n fromDelta: (props, delta) => {\n const { points } = props;\n\n return points.map(p => utils.point(p).add(utils.point(delta)));\n }\n})(Polygon);\n"],"file":"polygon.js"}
|
|
@@ -21,15 +21,21 @@ var _classnames = _interopRequireDefault(require("classnames"));
|
|
|
21
21
|
|
|
22
22
|
var _utils = require("../../utils");
|
|
23
23
|
|
|
24
|
+
var _excluded = ["graphProps", "from", "to", "classes", "disabled", "correctness", "className"];
|
|
25
|
+
|
|
24
26
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
25
27
|
|
|
26
28
|
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
27
29
|
|
|
28
|
-
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
|
|
30
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
31
|
+
|
|
32
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
29
33
|
|
|
30
|
-
function
|
|
34
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
31
35
|
|
|
32
|
-
function
|
|
36
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
37
|
+
|
|
38
|
+
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
33
39
|
|
|
34
40
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
35
41
|
|
|
@@ -60,20 +66,24 @@ var RayLine = function RayLine(props) {
|
|
|
60
66
|
disabled = props.disabled,
|
|
61
67
|
correctness = props.correctness,
|
|
62
68
|
className = props.className,
|
|
63
|
-
rest = _objectWithoutProperties(props,
|
|
69
|
+
rest = _objectWithoutProperties(props, _excluded);
|
|
64
70
|
|
|
65
71
|
var scale = graphProps.scale;
|
|
66
72
|
|
|
67
|
-
var
|
|
73
|
+
var _getAdjustedGraphLimi = (0, _utils.getAdjustedGraphLimits)(graphProps),
|
|
74
|
+
domain = _getAdjustedGraphLimi.domain,
|
|
75
|
+
range = _getAdjustedGraphLimi.range;
|
|
76
|
+
|
|
77
|
+
var _trig$edges = _plot.trig.edges(domain, range)(from, to),
|
|
68
78
|
_trig$edges2 = _slicedToArray(_trig$edges, 1),
|
|
69
79
|
aToB = _trig$edges2[0];
|
|
70
80
|
|
|
71
81
|
var suffix = correctness || disabled && 'disabled' || 'enabled';
|
|
72
|
-
return _react["default"].createElement("g", null, _react["default"].createElement("defs", null, _react["default"].createElement(_arrowHead.ArrowMarker, {
|
|
82
|
+
return /*#__PURE__*/_react["default"].createElement("g", null, /*#__PURE__*/_react["default"].createElement("defs", null, /*#__PURE__*/_react["default"].createElement(_arrowHead.ArrowMarker, {
|
|
73
83
|
size: (0, _utils.thinnerShapesNeeded)(graphProps) ? 4 : 5,
|
|
74
84
|
id: "".concat(props.markerId || markerId, "-").concat(suffix),
|
|
75
85
|
className: (0, _classnames["default"])(classes["".concat(suffix, "Arrow")])
|
|
76
|
-
})), _react["default"].createElement("line", _extends({
|
|
86
|
+
})), /*#__PURE__*/_react["default"].createElement("line", _extends({
|
|
77
87
|
x1: scale.x(from.x),
|
|
78
88
|
y1: scale.y(from.y),
|
|
79
89
|
x2: scale.x(aToB.x),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/tools/ray/component.jsx"],"names":["markerId","rayStyles","theme","line","styles","enabledArrow","arrow","disabledArrow","disabled","correct","correctArrow","incorrect","incorrectArrow","RayLine","props","graphProps","from","to","classes","correctness","className","rest","scale","
|
|
1
|
+
{"version":3,"sources":["../../../src/tools/ray/component.jsx"],"names":["markerId","rayStyles","theme","line","styles","enabledArrow","arrow","disabledArrow","disabled","correct","correctArrow","incorrect","incorrectArrow","RayLine","props","graphProps","from","to","classes","correctness","className","rest","scale","domain","range","trig","edges","aToB","suffix","x","y","propTypes","PropTypes","object","string","bool","any","types","PointType","StyledRay","Ray","Component"],"mappings":"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","sourcesContent":["import { lineToolComponent, lineBase, 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 { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport { thinnerShapesNeeded, getAdjustedGraphLimits } from '../../utils';\n\nconst markerId = genUid();\n\nconst rayStyles = theme => ({\n line: styles.line(theme),\n enabledArrow: styles.arrow(theme),\n disabledArrow: styles.disabledArrow(theme),\n disabled: styles.disabled(theme),\n correct: styles.correct(theme, 'stroke'),\n correctArrow: styles.correct(theme),\n incorrect: styles.incorrect(theme, 'stroke'),\n incorrectArrow: styles.incorrect(theme)\n});\n\nexport const RayLine = props => {\n const { graphProps, from, to, classes, disabled, correctness, className, ...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\n return (\n <g>\n <defs>\n <ArrowMarker\n size={thinnerShapesNeeded(graphProps) ? 4 : 5}\n id={`${props.markerId || markerId}-${suffix}`}\n className={classNames(classes[`${suffix}Arrow`])}\n />\n </defs>\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 {...rest}\n className={classNames(\n classes.line,\n disabled && classes.disabled,\n classes[correctness],\n className\n )}\n markerEnd={`url(#${props.markerId || markerId}-${suffix})`}\n />\n </g>\n );\n};\n\nRayLine.propTypes = {\n classes: PropTypes.object,\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 StyledRay = withStyles(rayStyles)(RayLine);\n\nconst Ray = lineBase(StyledRay);\nconst Component = lineToolComponent(Ray);\n\nexport default Component;\n"],"file":"component.js"}
|