@pie-lib/graphing 2.11.3-next.1 → 2.11.3-next.52

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.
Files changed (54) hide show
  1. package/lib/axis/arrow.js.map +1 -1
  2. package/lib/axis/axes.js.map +1 -1
  3. package/lib/axis/index.js.map +1 -1
  4. package/lib/bg.js.map +1 -1
  5. package/lib/container/actions.js.map +1 -1
  6. package/lib/container/index.js.map +1 -1
  7. package/lib/container/marks.js.map +1 -1
  8. package/lib/container/reducer.js.map +1 -1
  9. package/lib/coordinates-label.js.map +1 -1
  10. package/lib/graph-with-controls.js.map +1 -1
  11. package/lib/graph.js.map +1 -1
  12. package/lib/grid-setup.js.map +1 -1
  13. package/lib/grid.js.map +1 -1
  14. package/lib/index.js.map +1 -1
  15. package/lib/labels.js.map +1 -1
  16. package/lib/mark-label.js.map +1 -1
  17. package/lib/toggle-bar.js.map +1 -1
  18. package/lib/tool-menu.js.map +1 -1
  19. package/lib/tools/circle/bg-circle.js.map +1 -1
  20. package/lib/tools/circle/component.js.map +1 -1
  21. package/lib/tools/circle/index.js.map +1 -1
  22. package/lib/tools/index.js.map +1 -1
  23. package/lib/tools/line/component.js.map +1 -1
  24. package/lib/tools/line/index.js.map +1 -1
  25. package/lib/tools/parabola/component.js.map +1 -1
  26. package/lib/tools/parabola/index.js.map +1 -1
  27. package/lib/tools/point/component.js.map +1 -1
  28. package/lib/tools/point/index.js.map +1 -1
  29. package/lib/tools/polygon/component.js.map +1 -1
  30. package/lib/tools/polygon/index.js.map +1 -1
  31. package/lib/tools/polygon/line.js.map +1 -1
  32. package/lib/tools/polygon/polygon.js.map +1 -1
  33. package/lib/tools/ray/component.js.map +1 -1
  34. package/lib/tools/ray/index.js.map +1 -1
  35. package/lib/tools/segment/component.js.map +1 -1
  36. package/lib/tools/segment/index.js.map +1 -1
  37. package/lib/tools/shared/arrow-head.js.map +1 -1
  38. package/lib/tools/shared/line/index.js.map +1 -1
  39. package/lib/tools/shared/line/line-path.js.map +1 -1
  40. package/lib/tools/shared/line/with-root-edge.js.map +1 -1
  41. package/lib/tools/shared/point/arrow-point.js.map +1 -1
  42. package/lib/tools/shared/point/arrow.js.map +1 -1
  43. package/lib/tools/shared/point/base-point.js.map +1 -1
  44. package/lib/tools/shared/point/index.js.map +1 -1
  45. package/lib/tools/shared/styles.js.map +1 -1
  46. package/lib/tools/shared/types.js.map +1 -1
  47. package/lib/tools/sine/component.js.map +1 -1
  48. package/lib/tools/sine/index.js.map +1 -1
  49. package/lib/tools/vector/component.js.map +1 -1
  50. package/lib/tools/vector/index.js.map +1 -1
  51. package/lib/undo-redo.js.map +1 -1
  52. package/lib/use-debounce.js.map +1 -1
  53. package/lib/utils.js.map +1 -1
  54. package/package.json +5 -5
@@ -1 +1 @@
1
- {"version":3,"file":"component.js","names":["log","debug","buildLines","points","closed","expanded","reduce","acc","p","index","push","isLast","length","next","all","chunk","map","from","to","initial","swap","arr","rest","pairs","pr","e","replacement","invariant","Number","isFinite","splice","RawBaseComponent","props","onChange","update","overlapPoint","find","equalPoints","label","existing","forEach","point","onClosePolygon","onChangeProps","updatedPoint","isEmpty","data","onClick","isToolActive","labelModeEnabled","onChangeLabelProps","getRightestPoints","a","b","middle","getMiddleOfTwoPoints","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","withStyles","mark","state","setState","onComplete","m","undefined","nextProps","nextState","nextGraphProps","utils","isDomainRangeEqual","isEqual","stateMark","change","changeLabelProps","changeProps","closePolygon","dragStart","dragStop","ToolPropTypeFields"],"sources":["../../../src/tools/polygon/component.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { 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"],"mappings":"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"}
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 +1 @@
1
- {"version":3,"file":"index.js","names":["addPointToArray","point","arr","length","points","closed","equalPoints","hasPoint","find","p","tool","type","Component","Polygon","complete","data","mark","building","addPoint"],"sources":["../../../src/tools/polygon/index.js"],"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"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;;;;;;AAEO,IAAMA,eAAe,GAAG,SAAlBA,eAAkB,CAACC,KAAD,EAAQC,GAAR,EAAgB;EAC7CA,GAAG,GAAGA,GAAG,IAAI,EAAb;;EAEA,IAAIA,GAAG,CAACC,MAAJ,KAAe,CAAnB,EAAsB;IACpB,OAAO;MAAEC,MAAM,EAAE,CAACH,KAAD,CAAV;MAAmBI,MAAM,EAAE;IAA3B,CAAP;EACD,CAFD,MAEO,IAAIH,GAAG,CAACC,MAAJ,KAAe,CAAnB,EAAsB;IAC3B,IAAI,IAAAG,kBAAA,EAAYL,KAAZ,EAAmBC,GAAG,CAAC,CAAD,CAAtB,CAAJ,EAAgC;MAC9B,OAAO;QAAEE,MAAM,EAAEF,GAAV;QAAeG,MAAM,EAAE;MAAvB,CAAP;IACD,CAFD,MAEO;MACL,OAAO;QAAED,MAAM,gDAAMF,GAAN,IAAWD,KAAX,EAAR;QAA2BI,MAAM,EAAE;MAAnC,CAAP;IACD;EACF,CANM,MAMA,IAAIH,GAAG,CAACC,MAAJ,IAAc,CAAlB,EAAqB;IAC1B,IAAME,MAAM,GAAG,IAAAC,kBAAA,EAAYL,KAAZ,EAAmBC,GAAG,CAAC,CAAD,CAAtB,CAAf;;IAEA,IAAIG,MAAJ,EAAY;MACV,OAAO;QAAED,MAAM,EAAEF,GAAV;QAAeG,MAAM,EAANA;MAAf,CAAP;IACD,CAFD,MAEO;MACL,IAAME,QAAQ,GAAG,CAAC,CAACL,GAAG,CAACM,IAAJ,CAAS,UAAAC,CAAC;QAAA,OAAI,IAAAH,kBAAA,EAAYG,CAAZ,EAAeR,KAAf,CAAJ;MAAA,CAAV,CAAnB;;MAEA,IAAIM,QAAJ,EAAc;QACZ,OAAO;UAAEH,MAAM,EAAEF,GAAV;UAAeG,MAAM,EAAE;QAAvB,CAAP;MACD,CAFD,MAEO;QACL,OAAO;UAAED,MAAM,gDAAMF,GAAN,IAAWD,KAAX,EAAR;UAA2BI,MAAM,EAAE;QAAnC,CAAP;MACD;IACF;EACF;AACF,CA1BM;;;;AA4BA,IAAMK,IAAI,GAAG,SAAPA,IAAO;EAAA,OAAO;IACzBC,IAAI,EAAE,SADmB;IAEzBC,SAAS,EAAEC,qBAFc;IAGzBC,QAAQ,EAAE,kBAACC,IAAD,EAAOC,IAAP,EAAgB;MACxB,uCAAYA,IAAZ;QAAkBC,QAAQ,EAAE,KAA5B;QAAmCZ,MAAM,EAAE;MAA3C;IACD,CALwB;IAMzBa,QAAQ,EAAE,kBAACjB,KAAD,EAAQe,IAAR,EAAiB;MACzB,IAAI,CAACA,IAAL,EAAW;QACT,OAAO;UACLL,IAAI,EAAE,SADD;UAELP,MAAM,EAAE,CAACH,KAAD,CAFH;UAGLI,MAAM,EAAE,KAHH;UAILY,QAAQ,EAAE;QAJL,CAAP;MAMD,CAPD,MAOO;QACL,uBAA2BjB,eAAe,CAACC,KAAD,EAAQe,IAAI,CAACZ,MAAb,CAA1C;QAAA,IAAQC,MAAR,oBAAQA,MAAR;QAAA,IAAgBD,MAAhB,oBAAgBA,MAAhB;;QAEA,uCAAYY,IAAZ;UAAkBX,MAAM,EAANA,MAAlB;UAA0BD,MAAM,EAANA,MAA1B;UAAkCa,QAAQ,EAAE,CAACZ;QAA7C;MACD;IACF;EAnBwB,CAAP;AAAA,CAAb"}
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,gDAAMF,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,gDAAMF,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 +1 @@
1
- {"version":3,"file":"line.js","names":["RawLine","props","graphProps","classes","from","to","className","disabled","correctness","rest","scale","x","y","classNames","line","React","Component","PropTypes","string","object","types","PointType","GraphPropsType","isRequired","bool","Line","withStyles","strokeWidth","transition","stroke","color","secondary","correct","incorrect","gridDraggable","bounds","domain","range","area","utils","lineToArea","anchorPoint","fromDelta","delta","point","add"],"sources":["../../../src/tools/polygon/line.jsx"],"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"],"mappings":"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"}
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 +1 @@
1
- {"version":3,"file":"polygon.js","names":["getPointString","points","scale","map","p","scaledPoint","x","y","join","RawPolygon","props","classes","className","disabled","correctness","graphProps","closed","rest","pointString","Tag","classNames","open","React","Component","PropTypes","object","string","bool","arrayOf","types","PointType","GraphPropsType","isRequired","Polygon","withStyles","theme","fill","fade","palette","primary","light","strokeWidth","stroke","color","secondaryLight","pointerEvents","correct","incorrect","gridDraggable","bounds","domain","range","area","utils","polygonToArea","anchorPoint","fromDelta","delta","point","add"],"sources":["../../../src/tools/polygon/polygon.jsx"],"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"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;AAEO,IAAMA,cAAc,GAAG,SAAjBA,cAAiB,CAACC,MAAD,EAASC,KAAT,EAAmB;EAC/C,OAAO,CAACD,MAAM,IAAI,EAAX,EACJE,GADI,CACA,UAAAC,CAAC,EAAI;IACR,IAAMC,WAAW,GAAG;MAClBC,CAAC,EAAEJ,KAAK,CAACI,CAAN,CAAQF,CAAC,CAACE,CAAV,CADe;MAElBC,CAAC,EAAEL,KAAK,CAACK,CAAN,CAAQH,CAAC,CAACG,CAAV;IAFe,CAApB;IAIA,iBAAUF,WAAW,CAACC,CAAtB,cAA2BD,WAAW,CAACE,CAAvC;EACD,CAPI,EAQJC,IARI,CAQC,GARD,CAAP;AASD,CAVM;;;;IAYMC,U;;;;;;;;;;;;WAeX,kBAAS;MACP,kBASI,KAAKC,KATT;MAAA,IACET,MADF,eACEA,MADF;MAAA,IAEEU,OAFF,eAEEA,OAFF;MAAA,IAGEC,SAHF,eAGEA,SAHF;MAAA,IAIEC,QAJF,eAIEA,QAJF;MAAA,IAKEC,WALF,eAKEA,WALF;MAAA,IAMEC,UANF,eAMEA,UANF;MAAA,IAOEC,MAPF,eAOEA,MAPF;MAAA,IAQKC,IARL;MAUA,IAAQf,KAAR,GAAkBa,UAAlB,CAAQb,KAAR;MAEA,IAAMgB,WAAW,GAAGlB,cAAc,CAACC,MAAD,EAASC,KAAT,CAAlC;MACA,IAAMiB,GAAG,GAAGH,MAAM,GAAG,SAAH,GAAe,UAAjC;MACA,oBACE,gCAAC,GAAD;QACE,MAAM,EAAEE,WADV;QAEE,SAAS,EAAE,IAAAE,sBAAA,EACTJ,MAAM,IAAIL,OAAO,CAACK,MADT,EAET,CAACA,MAAD,IAAWL,OAAO,CAACU,IAFV,EAGTR,QAAQ,IAAIF,OAAO,CAACE,QAHX,EAITF,OAAO,CAACG,WAAD,CAJE,EAKTF,SALS;MAFb,GASMK,IATN,EADF;IAaD;;;EA3C6BK,iBAAA,CAAMC,S;;;iCAAzBd,U,eACQ;EACjBE,OAAO,EAAEa,qBAAA,CAAUC,MADF;EAEjBb,SAAS,EAAEY,qBAAA,CAAUE,MAFJ;EAGjBb,QAAQ,EAAEW,qBAAA,CAAUG,IAHH;EAIjB1B,MAAM,EAAEuB,qBAAA,CAAUI,OAAV,CAAkBC,WAAA,CAAMC,SAAxB,CAJS;EAKjBf,UAAU,EAAEc,WAAA,CAAME,cAAN,CAAqBC,UALhB;EAMjBhB,MAAM,EAAEQ,qBAAA,CAAUG,IAAV,CAAeK,UANN;EAOjBlB,WAAW,EAAEU,qBAAA,CAAUE;AAPN,C;iCADRjB,U,kBAWW;EACpBR,MAAM,EAAE;AADY,C;AAmCjB,IAAMgC,OAAO,GAAG,IAAAC,kBAAA,EAAW,UAAAC,KAAK;EAAA,OAAK;IAC1CnB,MAAM,EAAE;MACNoB,IAAI,EAAE,IAAAC,sBAAA,EAAKF,KAAK,CAACG,OAAN,CAAcC,OAAd,CAAsBC,KAA3B,EAAkC,GAAlC,CADA;MACwC;MAC9CC,WAAW,EAAE,CAFP;MAGNC,MAAM,EAAEC,eAAA,CAAMC,cAAN;IAHF,CADkC;IAM1CvB,IAAI,EAAE;MACJe,IAAI,EAAE,IAAAC,sBAAA,EAAKF,KAAK,CAACG,OAAN,CAAcC,OAAd,CAAsBC,KAA3B,EAAkC,GAAlC,CADF;MAC0C;MAC9CC,WAAW,EAAE,CAFT;MAGJC,MAAM,EAAEC,eAAA,CAAMC,cAAN,EAHJ;MAIJC,aAAa,EAAE;IAJX,CANoC;IAY1ChC,QAAQ,oBACH,IAAAA,iBAAA,EAAS,QAAT,CADG,CAZkC;IAe1CiC,OAAO,oBACF,IAAAA,gBAAA,EAAQ,QAAR,CADE,CAfmC;IAkB1CC,SAAS,oBACJ,IAAAA,kBAAA,EAAU,QAAV,CADI;EAlBiC,CAAL;AAAA,CAAhB,EAqBnBtC,UArBmB,CAAhB;;;eAuBQ,IAAAuC,mBAAA,EAAc;EAC3BC,MAAM,EAAE,gBAACvC,KAAD,QAA8B;IAAA,IAApBwC,MAAoB,QAApBA,MAAoB;IAAA,IAAZC,KAAY,QAAZA,KAAY;IACpC,IAAQlD,MAAR,GAAmBS,KAAnB,CAAQT,MAAR;IACA,IAAMmD,IAAI,GAAGC,KAAK,CAACC,aAAN,CAAoBrD,MAApB,CAAb;IACA,OAAOoD,KAAK,CAACJ,MAAN,CAAaG,IAAb,EAAmBF,MAAnB,EAA2BC,KAA3B,CAAP;EACD,CAL0B;EAM3BI,WAAW,EAAE,qBAAA7C,KAAK,EAAI;IACpB,IAAQT,MAAR,GAAmBS,KAAnB,CAAQT,MAAR;IACA,OAAOA,MAAM,CAAC,CAAD,CAAb;EACD,CAT0B;EAU3BuD,SAAS,EAAE,mBAAC9C,KAAD,EAAQ+C,KAAR,EAAkB;IAC3B,IAAQxD,MAAR,GAAmBS,KAAnB,CAAQT,MAAR;IAEA,OAAOA,MAAM,CAACE,GAAP,CAAW,UAAAC,CAAC;MAAA,OAAIiD,KAAK,CAACK,KAAN,CAAYtD,CAAZ,EAAeuD,GAAf,CAAmBN,KAAK,CAACK,KAAN,CAAYD,KAAZ,CAAnB,CAAJ;IAAA,CAAZ,CAAP;EACD;AAd0B,CAAd,EAeZxB,OAfY,C"}
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"}
@@ -1 +1 @@
1
- {"version":3,"file":"component.js","names":["markerId","genUid","rayStyles","theme","line","styles","enabledArrow","arrow","disabledArrow","disabled","correct","correctArrow","incorrect","incorrectArrow","RayLine","props","graphProps","from","to","classes","correctness","className","rest","scale","getAdjustedGraphLimits","domain","range","trig","edges","aToB","suffix","thinnerShapesNeeded","classNames","x","y","propTypes","PropTypes","object","string","bool","any","types","PointType","StyledRay","withStyles","Ray","lineBase","Component","lineToolComponent"],"sources":["../../../src/tools/ray/component.jsx"],"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"],"mappings":"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"}
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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["tool","lineTool","Ray"],"sources":["../../../src/tools/ray/index.js"],"sourcesContent":["import Ray from './component';\nimport { lineTool } from '../shared/line';\n\nexport const tool = lineTool('ray', Ray);\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AAEO,IAAMA,IAAI,GAAG,IAAAC,cAAA,EAAS,KAAT,EAAgBC,qBAAhB,CAAb"}
1
+ {"version":3,"sources":["../../../src/tools/ray/index.js"],"names":["tool","Ray"],"mappings":";;;;;;;;;AAAA;;AACA;;AAEO,IAAMA,IAAI,GAAG,oBAAS,KAAT,EAAgBC,qBAAhB,CAAb","sourcesContent":["import Ray from './component';\nimport { lineTool } from '../shared/line';\n\nexport const tool = lineTool('ray', Ray);\n"],"file":"index.js"}
@@ -1 +1 @@
1
- {"version":3,"file":"component.js","names":["lineStyles","theme","line","styles","disabled","correct","incorrect","Line","props","className","classes","correctness","graphProps","from","to","rest","scale","x","y","classNames","propTypes","PropTypes","string","object","bool","any","types","PointType","StyledLine","withStyles","Segment","lineBase","Component","lineToolComponent"],"sources":["../../../src/tools/segment/component.jsx"],"sourcesContent":["import { lineToolComponent, lineBase, styles } from '../shared/line';\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { types } from '@pie-lib/plot';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\n\nconst lineStyles = theme => ({\n line: styles.line(theme),\n disabled: styles.disabled(theme),\n correct: styles.correct(theme, 'stroke'),\n incorrect: styles.incorrect(theme, 'stroke')\n});\nexport const Line = props => {\n const { className, classes, correctness, disabled, graphProps, from, to, ...rest } = props;\n const { scale } = graphProps;\n\n return (\n <line\n stroke=\"green\"\n strokeWidth=\"6\"\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 classes[correctness],\n className\n )}\n {...rest}\n />\n );\n};\n\nLine.propTypes = {\n className: PropTypes.string,\n classes: PropTypes.object,\n correctness: PropTypes.string,\n disabled: PropTypes.bool,\n graphProps: PropTypes.any,\n from: types.PointType,\n to: types.PointType\n};\n\nconst StyledLine = withStyles(lineStyles)(Line);\nconst Segment = lineBase(StyledLine);\nconst Component = lineToolComponent(Segment);\n\nexport default Component;\n"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;AACA;;AACA;;;;AAEA,IAAMA,UAAU,GAAG,SAAbA,UAAa,CAAAC,KAAK;EAAA,OAAK;IAC3BC,IAAI,EAAEC,YAAA,CAAOD,IAAP,CAAYD,KAAZ,CADqB;IAE3BG,QAAQ,EAAED,YAAA,CAAOC,QAAP,CAAgBH,KAAhB,CAFiB;IAG3BI,OAAO,EAAEF,YAAA,CAAOE,OAAP,CAAeJ,KAAf,EAAsB,QAAtB,CAHkB;IAI3BK,SAAS,EAAEH,YAAA,CAAOG,SAAP,CAAiBL,KAAjB,EAAwB,QAAxB;EAJgB,CAAL;AAAA,CAAxB;;AAMO,IAAMM,IAAI,GAAG,SAAPA,IAAO,CAAAC,KAAK,EAAI;EAC3B,IAAQC,SAAR,GAAqFD,KAArF,CAAQC,SAAR;EAAA,IAAmBC,OAAnB,GAAqFF,KAArF,CAAmBE,OAAnB;EAAA,IAA4BC,WAA5B,GAAqFH,KAArF,CAA4BG,WAA5B;EAAA,IAAyCP,QAAzC,GAAqFI,KAArF,CAAyCJ,QAAzC;EAAA,IAAmDQ,UAAnD,GAAqFJ,KAArF,CAAmDI,UAAnD;EAAA,IAA+DC,IAA/D,GAAqFL,KAArF,CAA+DK,IAA/D;EAAA,IAAqEC,EAArE,GAAqFN,KAArF,CAAqEM,EAArE;EAAA,IAA4EC,IAA5E,6CAAqFP,KAArF;EACA,IAAQQ,KAAR,GAAkBJ,UAAlB,CAAQI,KAAR;EAEA,oBACE;IACE,MAAM,EAAC,OADT;IAEE,WAAW,EAAC,GAFd;IAGE,EAAE,EAAEA,KAAK,CAACC,CAAN,CAAQJ,IAAI,CAACI,CAAb,CAHN;IAIE,EAAE,EAAED,KAAK,CAACE,CAAN,CAAQL,IAAI,CAACK,CAAb,CAJN;IAKE,EAAE,EAAEF,KAAK,CAACC,CAAN,CAAQH,EAAE,CAACG,CAAX,CALN;IAME,EAAE,EAAED,KAAK,CAACE,CAAN,CAAQJ,EAAE,CAACI,CAAX,CANN;IAOE,SAAS,EAAE,IAAAC,sBAAA,EACTT,OAAO,CAACR,IADC,EAETE,QAAQ,IAAIM,OAAO,CAACN,QAFX,EAGTM,OAAO,CAACC,WAAD,CAHE,EAITF,SAJS;EAPb,GAaMM,IAbN,EADF;AAiBD,CArBM;;;AAuBPR,IAAI,CAACa,SAAL,GAAiB;EACfX,SAAS,EAAEY,qBAAA,CAAUC,MADN;EAEfZ,OAAO,EAAEW,qBAAA,CAAUE,MAFJ;EAGfZ,WAAW,EAAEU,qBAAA,CAAUC,MAHR;EAIflB,QAAQ,EAAEiB,qBAAA,CAAUG,IAJL;EAKfZ,UAAU,EAAES,qBAAA,CAAUI,GALP;EAMfZ,IAAI,EAAEa,WAAA,CAAMC,SANG;EAOfb,EAAE,EAAEY,WAAA,CAAMC;AAPK,CAAjB;AAUA,IAAMC,UAAU,GAAG,IAAAC,kBAAA,EAAW7B,UAAX,EAAuBO,IAAvB,CAAnB;AACA,IAAMuB,OAAO,GAAG,IAAAC,cAAA,EAASH,UAAT,CAAhB;AACA,IAAMI,SAAS,GAAG,IAAAC,uBAAA,EAAkBH,OAAlB,CAAlB;eAEeE,S"}
1
+ {"version":3,"sources":["../../../src/tools/segment/component.jsx"],"names":["lineStyles","theme","line","styles","disabled","correct","incorrect","Line","props","className","classes","correctness","graphProps","from","to","rest","scale","x","y","propTypes","PropTypes","string","object","bool","any","types","PointType","StyledLine","Segment","Component"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;AACA;;AACA;;;;AAEA,IAAMA,UAAU,GAAG,SAAbA,UAAa,CAAAC,KAAK;AAAA,SAAK;AAC3BC,IAAAA,IAAI,EAAEC,aAAOD,IAAP,CAAYD,KAAZ,CADqB;AAE3BG,IAAAA,QAAQ,EAAED,aAAOC,QAAP,CAAgBH,KAAhB,CAFiB;AAG3BI,IAAAA,OAAO,EAAEF,aAAOE,OAAP,CAAeJ,KAAf,EAAsB,QAAtB,CAHkB;AAI3BK,IAAAA,SAAS,EAAEH,aAAOG,SAAP,CAAiBL,KAAjB,EAAwB,QAAxB;AAJgB,GAAL;AAAA,CAAxB;;AAMO,IAAMM,IAAI,GAAG,SAAPA,IAAO,CAAAC,KAAK,EAAI;AAC3B,MAAQC,SAAR,GAAqFD,KAArF,CAAQC,SAAR;AAAA,MAAmBC,OAAnB,GAAqFF,KAArF,CAAmBE,OAAnB;AAAA,MAA4BC,WAA5B,GAAqFH,KAArF,CAA4BG,WAA5B;AAAA,MAAyCP,QAAzC,GAAqFI,KAArF,CAAyCJ,QAAzC;AAAA,MAAmDQ,UAAnD,GAAqFJ,KAArF,CAAmDI,UAAnD;AAAA,MAA+DC,IAA/D,GAAqFL,KAArF,CAA+DK,IAA/D;AAAA,MAAqEC,EAArE,GAAqFN,KAArF,CAAqEM,EAArE;AAAA,MAA4EC,IAA5E,6CAAqFP,KAArF;AACA,MAAQQ,KAAR,GAAkBJ,UAAlB,CAAQI,KAAR;AAEA,sBACE;AACE,IAAA,MAAM,EAAC,OADT;AAEE,IAAA,WAAW,EAAC,GAFd;AAGE,IAAA,EAAE,EAAEA,KAAK,CAACC,CAAN,CAAQJ,IAAI,CAACI,CAAb,CAHN;AAIE,IAAA,EAAE,EAAED,KAAK,CAACE,CAAN,CAAQL,IAAI,CAACK,CAAb,CAJN;AAKE,IAAA,EAAE,EAAEF,KAAK,CAACC,CAAN,CAAQH,EAAE,CAACG,CAAX,CALN;AAME,IAAA,EAAE,EAAED,KAAK,CAACE,CAAN,CAAQJ,EAAE,CAACI,CAAX,CANN;AAOE,IAAA,SAAS,EAAE,4BACTR,OAAO,CAACR,IADC,EAETE,QAAQ,IAAIM,OAAO,CAACN,QAFX,EAGTM,OAAO,CAACC,WAAD,CAHE,EAITF,SAJS;AAPb,KAaMM,IAbN,EADF;AAiBD,CArBM;;;AAuBPR,IAAI,CAACY,SAAL,GAAiB;AACfV,EAAAA,SAAS,EAAEW,sBAAUC,MADN;AAEfX,EAAAA,OAAO,EAAEU,sBAAUE,MAFJ;AAGfX,EAAAA,WAAW,EAAES,sBAAUC,MAHR;AAIfjB,EAAAA,QAAQ,EAAEgB,sBAAUG,IAJL;AAKfX,EAAAA,UAAU,EAAEQ,sBAAUI,GALP;AAMfX,EAAAA,IAAI,EAAEY,YAAMC,SANG;AAOfZ,EAAAA,EAAE,EAAEW,YAAMC;AAPK,CAAjB;AAUA,IAAMC,UAAU,GAAG,wBAAW3B,UAAX,EAAuBO,IAAvB,CAAnB;AACA,IAAMqB,OAAO,GAAG,oBAASD,UAAT,CAAhB;AACA,IAAME,SAAS,GAAG,6BAAkBD,OAAlB,CAAlB;eAEeC,S","sourcesContent":["import { lineToolComponent, lineBase, styles } from '../shared/line';\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { types } from '@pie-lib/plot';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\n\nconst lineStyles = theme => ({\n line: styles.line(theme),\n disabled: styles.disabled(theme),\n correct: styles.correct(theme, 'stroke'),\n incorrect: styles.incorrect(theme, 'stroke')\n});\nexport const Line = props => {\n const { className, classes, correctness, disabled, graphProps, from, to, ...rest } = props;\n const { scale } = graphProps;\n\n return (\n <line\n stroke=\"green\"\n strokeWidth=\"6\"\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 classes[correctness],\n className\n )}\n {...rest}\n />\n );\n};\n\nLine.propTypes = {\n className: PropTypes.string,\n classes: PropTypes.object,\n correctness: PropTypes.string,\n disabled: PropTypes.bool,\n graphProps: PropTypes.any,\n from: types.PointType,\n to: types.PointType\n};\n\nconst StyledLine = withStyles(lineStyles)(Line);\nconst Segment = lineBase(StyledLine);\nconst Component = lineToolComponent(Segment);\n\nexport default Component;\n"],"file":"component.js"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["tool","lineTool","Segment"],"sources":["../../../src/tools/segment/index.js"],"sourcesContent":["import Segment from './component';\nimport { lineTool } from '../shared/line';\n\nexport const tool = lineTool('segment', Segment);\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AAEO,IAAMA,IAAI,GAAG,IAAAC,cAAA,EAAS,SAAT,EAAoBC,qBAApB,CAAb"}
1
+ {"version":3,"sources":["../../../src/tools/segment/index.js"],"names":["tool","Segment"],"mappings":";;;;;;;;;AAAA;;AACA;;AAEO,IAAMA,IAAI,GAAG,oBAAS,SAAT,EAAoBC,qBAApB,CAAb","sourcesContent":["import Segment from './component';\nimport { lineTool } from '../shared/line';\n\nexport const tool = lineTool('segment', Segment);\n"],"file":"index.js"}
@@ -1 +1 @@
1
- {"version":3,"file":"arrow-head.js","names":["ArrowHead","size","transform","points","propTypes","PropTypes","string","number","defaultProps","genUid","v","Math","random","toFixed","ArrowMarker","id","className"],"sources":["../../../src/tools/shared/arrow-head.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nexport const ArrowHead = ({ size, transform, points }) => (\n <polygon points={points || `0,0 ${size},${size / 2} 0,${size}`} transform={transform} />\n);\nArrowHead.propTypes = {\n points: PropTypes.string,\n size: PropTypes.number,\n transform: PropTypes.string\n};\nArrowHead.defaultProps = {\n points: '',\n size: 10,\n transform: ''\n};\nexport const genUid = () => {\n const v = (Math.random() * 1000).toFixed(0);\n return `arrow-${v}`;\n};\nexport const ArrowMarker = ({ id, size, className }) => {\n return (\n <marker\n id={id}\n viewBox={`0 0 ${size} ${size}`}\n refX={size / 2}\n refY={size / 2}\n markerWidth={size}\n markerHeight={size}\n orient=\"auto-start-reverse\"\n className={className}\n >\n <ArrowHead size={size} />\n </marker>\n );\n};\nArrowMarker.propTypes = {\n id: PropTypes.string,\n size: PropTypes.number,\n className: PropTypes.string\n};\nArrowMarker.defaultProps = {\n size: 5\n};\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AAEO,IAAMA,SAAS,GAAG,SAAZA,SAAY;EAAA,IAAGC,IAAH,QAAGA,IAAH;EAAA,IAASC,SAAT,QAASA,SAAT;EAAA,IAAoBC,MAApB,QAAoBA,MAApB;EAAA,oBACvB;IAAS,MAAM,EAAEA,MAAM,kBAAWF,IAAX,cAAmBA,IAAI,GAAG,CAA1B,gBAAiCA,IAAjC,CAAvB;IAAgE,SAAS,EAAEC;EAA3E,EADuB;AAAA,CAAlB;;;AAGPF,SAAS,CAACI,SAAV,GAAsB;EACpBD,MAAM,EAAEE,qBAAA,CAAUC,MADE;EAEpBL,IAAI,EAAEI,qBAAA,CAAUE,MAFI;EAGpBL,SAAS,EAAEG,qBAAA,CAAUC;AAHD,CAAtB;AAKAN,SAAS,CAACQ,YAAV,GAAyB;EACvBL,MAAM,EAAE,EADe;EAEvBF,IAAI,EAAE,EAFiB;EAGvBC,SAAS,EAAE;AAHY,CAAzB;;AAKO,IAAMO,MAAM,GAAG,SAATA,MAAS,GAAM;EAC1B,IAAMC,CAAC,GAAG,CAACC,IAAI,CAACC,MAAL,KAAgB,IAAjB,EAAuBC,OAAvB,CAA+B,CAA/B,CAAV;EACA,uBAAgBH,CAAhB;AACD,CAHM;;;;AAIA,IAAMI,WAAW,GAAG,SAAdA,WAAc,QAA6B;EAAA,IAA1BC,EAA0B,SAA1BA,EAA0B;EAAA,IAAtBd,IAAsB,SAAtBA,IAAsB;EAAA,IAAhBe,SAAgB,SAAhBA,SAAgB;EACtD,oBACE;IACE,EAAE,EAAED,EADN;IAEE,OAAO,gBAASd,IAAT,cAAiBA,IAAjB,CAFT;IAGE,IAAI,EAAEA,IAAI,GAAG,CAHf;IAIE,IAAI,EAAEA,IAAI,GAAG,CAJf;IAKE,WAAW,EAAEA,IALf;IAME,YAAY,EAAEA,IANhB;IAOE,MAAM,EAAC,oBAPT;IAQE,SAAS,EAAEe;EARb,gBAUE,gCAAC,SAAD;IAAW,IAAI,EAAEf;EAAjB,EAVF,CADF;AAcD,CAfM;;;AAgBPa,WAAW,CAACV,SAAZ,GAAwB;EACtBW,EAAE,EAAEV,qBAAA,CAAUC,MADQ;EAEtBL,IAAI,EAAEI,qBAAA,CAAUE,MAFM;EAGtBS,SAAS,EAAEX,qBAAA,CAAUC;AAHC,CAAxB;AAKAQ,WAAW,CAACN,YAAZ,GAA2B;EACzBP,IAAI,EAAE;AADmB,CAA3B"}
1
+ {"version":3,"sources":["../../../src/tools/shared/arrow-head.jsx"],"names":["ArrowHead","size","transform","points","propTypes","PropTypes","string","number","defaultProps","genUid","v","Math","random","toFixed","ArrowMarker","id","className"],"mappings":";;;;;;;;;AAAA;;AACA;;AAEO,IAAMA,SAAS,GAAG,SAAZA,SAAY;AAAA,MAAGC,IAAH,QAAGA,IAAH;AAAA,MAASC,SAAT,QAASA,SAAT;AAAA,MAAoBC,MAApB,QAAoBA,MAApB;AAAA,sBACvB;AAAS,IAAA,MAAM,EAAEA,MAAM,kBAAWF,IAAX,cAAmBA,IAAI,GAAG,CAA1B,gBAAiCA,IAAjC,CAAvB;AAAgE,IAAA,SAAS,EAAEC;AAA3E,IADuB;AAAA,CAAlB;;;AAGPF,SAAS,CAACI,SAAV,GAAsB;AACpBD,EAAAA,MAAM,EAAEE,sBAAUC,MADE;AAEpBL,EAAAA,IAAI,EAAEI,sBAAUE,MAFI;AAGpBL,EAAAA,SAAS,EAAEG,sBAAUC;AAHD,CAAtB;AAKAN,SAAS,CAACQ,YAAV,GAAyB;AACvBL,EAAAA,MAAM,EAAE,EADe;AAEvBF,EAAAA,IAAI,EAAE,EAFiB;AAGvBC,EAAAA,SAAS,EAAE;AAHY,CAAzB;;AAKO,IAAMO,MAAM,GAAG,SAATA,MAAS,GAAM;AAC1B,MAAMC,CAAC,GAAG,CAACC,IAAI,CAACC,MAAL,KAAgB,IAAjB,EAAuBC,OAAvB,CAA+B,CAA/B,CAAV;AACA,yBAAgBH,CAAhB;AACD,CAHM;;;;AAIA,IAAMI,WAAW,GAAG,SAAdA,WAAc,QAA6B;AAAA,MAA1BC,EAA0B,SAA1BA,EAA0B;AAAA,MAAtBd,IAAsB,SAAtBA,IAAsB;AAAA,MAAhBe,SAAgB,SAAhBA,SAAgB;AACtD,sBACE;AACE,IAAA,EAAE,EAAED,EADN;AAEE,IAAA,OAAO,gBAASd,IAAT,cAAiBA,IAAjB,CAFT;AAGE,IAAA,IAAI,EAAEA,IAAI,GAAG,CAHf;AAIE,IAAA,IAAI,EAAEA,IAAI,GAAG,CAJf;AAKE,IAAA,WAAW,EAAEA,IALf;AAME,IAAA,YAAY,EAAEA,IANhB;AAOE,IAAA,MAAM,EAAC,oBAPT;AAQE,IAAA,SAAS,EAAEe;AARb,kBAUE,gCAAC,SAAD;AAAW,IAAA,IAAI,EAAEf;AAAjB,IAVF,CADF;AAcD,CAfM;;;AAgBPa,WAAW,CAACV,SAAZ,GAAwB;AACtBW,EAAAA,EAAE,EAAEV,sBAAUC,MADQ;AAEtBL,EAAAA,IAAI,EAAEI,sBAAUE,MAFM;AAGtBS,EAAAA,SAAS,EAAEX,sBAAUC;AAHC,CAAxB;AAKAQ,WAAW,CAACN,YAAZ,GAA2B;AACzBP,EAAAA,IAAI,EAAE;AADmB,CAA3B","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nexport const ArrowHead = ({ size, transform, points }) => (\n <polygon points={points || `0,0 ${size},${size / 2} 0,${size}`} transform={transform} />\n);\nArrowHead.propTypes = {\n points: PropTypes.string,\n size: PropTypes.number,\n transform: PropTypes.string\n};\nArrowHead.defaultProps = {\n points: '',\n size: 10,\n transform: ''\n};\nexport const genUid = () => {\n const v = (Math.random() * 1000).toFixed(0);\n return `arrow-${v}`;\n};\nexport const ArrowMarker = ({ id, size, className }) => {\n return (\n <marker\n id={id}\n viewBox={`0 0 ${size} ${size}`}\n refX={size / 2}\n refY={size / 2}\n markerWidth={size}\n markerHeight={size}\n orient=\"auto-start-reverse\"\n className={className}\n >\n <ArrowHead size={size} />\n </marker>\n );\n};\nArrowMarker.propTypes = {\n id: PropTypes.string,\n size: PropTypes.number,\n className: PropTypes.string\n};\nArrowMarker.defaultProps = {\n size: 5\n};\n"],"file":"arrow-head.js"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["lineTool","type","Component","addPoint","point","mark","equalPoints","root","building","from","to","lineToolComponent","props","setState","onChange","update","state","undefined","shouldNotChange","sameAxes","isEqual","middle","graphProps","onClick","labelNode","labelModeEnabled","coordinatesOnHover","cloneDeep","isBackground","disabled","correctness","changeMark","changeMarkProps","startDrag","stopDrag","React","types","ToolPropTypeFields","GraphPropsType","isRequired","dragOpts","bounds","domain","range","area","utils","lineToArea","anchorPoint","fromDelta","delta","add","lineBase","Comp","opts","DraggableComp","gridDraggable","FromPoint","BasePoint","ToPoint","LineBase","getMiddleOfTwoPoints","draggedFrom","draggedTo","label","updated","onChangePoint","isEmpty","input","focus","onDragStart","onDragStop","common","angle","trig","toDegrees","fromLabelNode","toLabelNode","lineLabelNode","hasOwnProperty","ReactDOM","createPortal","r","labelChange","dragComp","clickPoint","x","y","dragFrom","dragTo","PropTypes","bool","PointType","func","string","object","styles","line","fill","stroke","color","primaryLight","strokeWidth","transition","primaryDark","arrow","secondary","disabledArrow","correct","theme","key","incorrect"],"sources":["../../../../src/tools/shared/line/index.jsx"],"sourcesContent":["import React from 'react';\nimport isEqual from 'lodash/isEqual';\nimport cloneDeep from 'lodash/cloneDeep';\nimport { BasePoint } from '../point';\nimport { types, utils, gridDraggable, trig } from '@pie-lib/plot';\nimport PropTypes from 'prop-types';\nimport { disabled, correct, incorrect } from '../styles';\nimport ReactDOM from 'react-dom';\nimport MarkLabel from '../../../mark-label';\nimport isEmpty from 'lodash/isEmpty';\nimport { color } from '@pie-lib/render-ui';\nimport { getMiddleOfTwoPoints, equalPoints, sameAxes } from '../../../utils';\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 };\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 const shouldNotChange =\n type && (type === 'parabola' || type === 'sine') && sameAxes(update.from, update.to);\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 } = 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 />\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 labelNode: PropTypes.object,\n labelModeEnabled: PropTypes.bool,\n changeMarkProps: PropTypes.func\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) => {\n const { changeMarkProps, from, to } = this.props;\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 && from.hasOwnProperty('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 && to.hasOwnProperty('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 && middle.hasOwnProperty('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 <g>\n {to && (\n <DraggableComp\n from={from}\n to={to}\n middle={middle}\n onDrag={this.dragComp}\n {...common}\n onClick={labelModeEnabled ? () => this.clickPoint(middle, 'middle') : common.onClick}\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={labelModeEnabled ? () => this.clickPoint(from, 'from') : common.onClick}\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={labelModeEnabled ? () => this.clickPoint(to, 'to') : common.onClick}\n />\n )}\n {toLabelNode}\n </g>\n );\n }\n }\n\n return LineBase;\n};\n\nexport const styles = {\n line: () => ({\n fill: 'transparent',\n stroke: color.primaryLight(),\n strokeWidth: 3,\n transition: 'stroke 200ms ease-in, stroke-width 200ms ease-in',\n '&:hover': {\n strokeWidth: 6,\n stroke: color.primaryDark()\n }\n }),\n arrow: () => ({\n fill: color.secondary()\n }),\n disabledArrow: () => ({\n ...disabled()\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};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;AAEO,IAAMA,QAAQ,GAAG,SAAXA,QAAW,CAACC,IAAD,EAAOC,SAAP;EAAA,OAAqB;IAAA,OAAO;MAClDD,IAAI,EAAJA,IADkD;MAElDC,SAAS,EAATA,SAFkD;MAGlDC,QAAQ,EAAE,kBAACC,KAAD,EAAQC,IAAR,EAAiB;QACzB,IAAIA,IAAI,IAAI,IAAAC,kBAAA,EAAYD,IAAI,CAACE,IAAjB,EAAuBH,KAAvB,CAAZ,EAA2C;UACzC,OAAOC,IAAP;QACD;;QAED,IAAI,CAACA,IAAL,EAAW;UACT,OAAO;YACLJ,IAAI,EAAJA,IADK;YAELO,QAAQ,EAAE,IAFL;YAGLC,IAAI,EAAEL;UAHD,CAAP;QAKD;;QAED,IAAI,IAAAE,kBAAA,EAAYF,KAAZ,EAAmBC,IAAI,CAACI,IAAxB,CAAJ,EAAmC;UACjC,yBAAYJ,IAAZ;QACD;;QAED,uCAAYA,IAAZ;UAAkBG,QAAQ,EAAE,KAA5B;UAAmCE,EAAE,EAAEN;QAAvC;MACD;IArBiD,CAAP;EAAA,CAArB;AAAA,CAAjB;;;;AAwBA,IAAMO,iBAAiB,GAAG,SAApBA,iBAAoB,CAAAT,SAAS,EAAI;EAAA;;EAC5C;IAAA;;IAAA;;IAME,2BAAYU,KAAZ,EAAmB;MAAA;;MAAA;MACjB,0BAAMA,KAAN;MADiB,8FAKP;QAAA,OAAM,MAAKC,QAAL,CAAc;UAAER,IAAI,oBAAO,MAAKO,KAAL,CAAWP,IAAlB;QAAN,CAAd,CAAN;MAAA,CALO;MAAA,6FAOR,YAAM;QACf,kBAA2B,MAAKO,KAAhC;QAAA,IAAQE,QAAR,eAAQA,QAAR;QAAA,IAAkBT,IAAlB,eAAkBA,IAAlB;;QACA,IAAMU,MAAM,qBAAQ,MAAKC,KAAL,CAAWX,IAAnB,CAAZ;;QAEA,MAAKQ,QAAL,CAAc;UAAER,IAAI,EAAEY;QAAR,CAAd,EAAmC,YAAM;UACvC,IAAQhB,IAAR,GAAiBc,MAAjB,CAAQd,IAAR;UACA,IAAMiB,eAAe,GACnBjB,IAAI,KAAKA,IAAI,KAAK,UAAT,IAAuBA,IAAI,KAAK,MAArC,CAAJ,IAAoD,IAAAkB,eAAA,EAASJ,MAAM,CAACN,IAAhB,EAAsBM,MAAM,CAACL,EAA7B,CADtD;;UAGA,IAAI,CAAC,IAAAU,mBAAA,EAAQf,IAAR,EAAcU,MAAd,CAAD,IAA0B,CAACG,eAA/B,EAAgD;YAC9CJ,QAAQ,CAACT,IAAD,EAAOU,MAAP,CAAR;UACD;QACF,CARD;MASD,CApBkB;MAAA,+FAsBN,gBAA0B;QAAA,IAAvBN,IAAuB,QAAvBA,IAAuB;QAAA,IAAjBC,EAAiB,QAAjBA,EAAiB;QAAA,IAAbW,MAAa,QAAbA,MAAa;;QACrC,IAAIhB,IAAI,mCAAQ,MAAKW,KAAL,CAAWX,IAAnB;UAAyBI,IAAI,EAAJA,IAAzB;UAA+BC,EAAE,EAAFA;QAA/B,EAAR;;QAEA,IAAIW,MAAJ,EAAY;UACVhB,IAAI,mCAAQA,IAAR;YAAcgB,MAAM,EAANA;UAAd,EAAJ;QACD;;QAED,MAAKR,QAAL,CAAc;UAAER,IAAI,EAAJA;QAAF,CAAd;MACD,CA9BkB;MAAA,oGAgCD,iBAA0B;QAAA,IAAvBI,IAAuB,SAAvBA,IAAuB;QAAA,IAAjBC,EAAiB,SAAjBA,EAAiB;QAAA,IAAbW,MAAa,SAAbA,MAAa;QAC1C,mBAA2B,MAAKT,KAAhC;QAAA,IAAQE,QAAR,gBAAQA,QAAR;QAAA,IAAkBT,IAAlB,gBAAkBA,IAAlB;;QACA,IAAIU,MAAM,mCAAQV,IAAR,GAAiB,MAAKW,KAAL,CAAWX,IAA5B,CAAV;;QAEA,IAAII,IAAJ,EAAU;UACRM,MAAM,mCAAQA,MAAR;YAAgBN,IAAI,EAAJA;UAAhB,EAAN;QACD;;QAED,IAAIC,EAAJ,EAAQ;UACNK,MAAM,mCAAQA,MAAR;YAAgBL,EAAE,EAAFA;UAAhB,EAAN;QACD;;QAED,IAAIW,MAAJ,EAAY;UACVN,MAAM,mCAAQA,MAAR;YAAgBM,MAAM,EAANA;UAAhB,EAAN;QACD;;QAED,IAAI,CAAC,IAAAD,mBAAA,EAAQf,IAAR,EAAcU,MAAd,CAAL,EAA4B;UAC1BD,QAAQ,CAACT,IAAD,EAAOU,MAAP,CAAR;QACD;MACF,CAnDkB;MAEjB,MAAKC,KAAL,GAAa,EAAb;MAFiB;IAGlB;;IATH;MAAA;MAAA,OA2DE,kBAAS;QACP,mBAAiF,KAAKJ,KAAtF;QAAA,IAAQU,UAAR,gBAAQA,UAAR;QAAA,IAAoBC,OAApB,gBAAoBA,OAApB;QAAA,IAA6BC,SAA7B,gBAA6BA,SAA7B;QAAA,IAAwCC,gBAAxC,gBAAwCA,gBAAxC;QAAA,IAA0DC,kBAA1D,gBAA0DA,kBAA1D;QACA,IAAMrB,IAAI,GAAG,KAAKW,KAAL,CAAWX,IAAX,GAAkB,KAAKW,KAAL,CAAWX,IAA7B,GAAoC,KAAKO,KAAL,CAAWP,IAA5D;QAEA,IAAMI,IAAI,GAAG,IAAAkB,qBAAA,EAAUtB,IAAI,CAACI,IAAf,CAAb;QACA,IAAMC,EAAE,GAAG,IAAAiB,qBAAA,EAAUtB,IAAI,CAACK,EAAf,CAAX;QACA,IAAMW,MAAM,GAAG,IAAAM,qBAAA,EAAUtB,IAAI,CAACgB,MAAf,CAAf,CANO,CAQP;QACA;;QACA,IAAIZ,IAAI,IAAIJ,IAAI,CAACuB,YAAjB,EAA+B;UAC7BnB,IAAI,CAACoB,QAAL,GAAgB,IAAhB;QACD;;QAED,IAAInB,EAAE,IAAIL,IAAI,CAACuB,YAAf,EAA6B;UAC3BlB,EAAE,CAACmB,QAAH,GAAc,IAAd;QACD;;QAED,IAAIR,MAAM,IAAIhB,IAAI,CAACuB,YAAnB,EAAiC;UAC/BP,MAAM,CAACQ,QAAP,GAAkB,IAAlB;QACD;;QAED,oBACE,gCAAC,SAAD;UACE,QAAQ,EAAExB,IAAI,CAACwB,QADjB;UAEE,kBAAkB,EAAEH,kBAFtB;UAGE,WAAW,EAAErB,IAAI,CAACyB,WAHpB;UAIE,IAAI,EAAErB,IAJR;UAKE,EAAE,EAAEC,EALN;UAME,MAAM,EAAEW,MANV;UAOE,UAAU,EAAEC,UAPd;UAQE,QAAQ,EAAE,KAAKS,UARjB;UASE,eAAe,EAAE,KAAKC,eATxB;UAUE,OAAO,EAAET,OAVX;UAWE,WAAW,EAAE,KAAKU,SAXpB;UAYE,UAAU,EAAE,KAAKC,QAZnB;UAaE,SAAS,EAAEV,SAbb;UAcE,gBAAgB,EAAEC;QAdpB,EADF;MAkBD;IAnGH;IAAA;EAAA,EAAuCU,iBAAA,CAAMjC,SAA7C,yFAEOkC,WAAA,CAAMC,kBAFb;IAGIf,UAAU,EAAEc,WAAA,CAAME,cAAN,CAAqBC;EAHrC;AAqGD,CAtGM;;;;AAwGP,IAAMC,QAAQ,GAAG,SAAXA,QAAW;EAAA,OAAO;IACtBC,MAAM,EAAE,gBAAC7B,KAAD,SAA8B;MAAA,IAApB8B,MAAoB,SAApBA,MAAoB;MAAA,IAAZC,KAAY,SAAZA,KAAY;;MACpC,IAAMC,IAAI,GAAGC,WAAA,CAAMC,UAAN,CAAiBlC,KAAK,CAACH,IAAvB,EAA6BG,KAAK,CAACF,EAAnC,CAAb;;MACA,OAAOmC,WAAA,CAAMJ,MAAN,CAAaG,IAAb,EAAmBF,MAAnB,EAA2BC,KAA3B,CAAP;IACD,CAJqB;IAKtBI,WAAW,EAAE,qBAAAnC,KAAK,EAAI;MACpB,IAAQH,IAAR,GAAiBG,KAAjB,CAAQH,IAAR;MACA,OAAOA,IAAP;IACD,CARqB;IAStBuC,SAAS,EAAE,mBAACpC,KAAD,EAAQqC,KAAR,EAAkB;MAC3B,IAAQxC,IAAR,GAAqBG,KAArB,CAAQH,IAAR;MAAA,IAAcC,EAAd,GAAqBE,KAArB,CAAcF,EAAd;MACA,OAAO;QACLD,IAAI,EAAEoC,WAAA,CAAMzC,KAAN,CAAYK,IAAZ,EAAkByC,GAAlB,CAAsBL,WAAA,CAAMzC,KAAN,CAAY6C,KAAZ,CAAtB,CADD;QAELvC,EAAE,EAAEmC,WAAA,CAAMzC,KAAN,CAAYM,EAAZ,EAAgBwC,GAAhB,CAAoBL,WAAA,CAAMzC,KAAN,CAAY6C,KAAZ,CAApB;MAFC,CAAP;IAID;EAfqB,CAAP;AAAA,CAAjB;;AAkBO,IAAME,QAAQ,GAAG,SAAXA,QAAW,CAACC,IAAD,EAAOC,IAAP,EAAgB;EACtC,IAAMC,aAAa,GAAG,IAAAC,mBAAA,EAAcf,QAAQ,EAAtB,EAA0BY,IAA1B,CAAtB;EAEA,IAAMI,SAAS,GAAGH,IAAI,IAAIA,IAAI,CAAC5C,IAAb,GAAoB4C,IAAI,CAAC5C,IAAzB,GAAgCgD,gBAAlD;EACA,IAAMC,OAAO,GAAGL,IAAI,IAAIA,IAAI,CAAC3C,EAAb,GAAkB2C,IAAI,CAAC3C,EAAvB,GAA4B+C,gBAA5C;;EAJsC,IAMhCE,QANgC;IAAA;;IAAA;;IAAA;MAAA;;MAAA;;MAAA;QAAA;MAAA;;MAAA;MAAA,mGAwBpB,UAAAvD,KAAK,EAAI;QACvB,mBAA6B,OAAKQ,KAAlC;QAAA,IAAQS,MAAR,gBAAQA,MAAR;QAAA,IAAgBP,QAAhB,gBAAgBA,QAAhB;QACA,IAAQL,IAAR,GAAqBL,KAArB,CAAQK,IAAR;QAAA,IAAcC,EAAd,GAAqBN,KAArB,CAAcM,EAAd,CAFuB,CAIvB;;QACA,IAAI,CAAC,IAAAJ,kBAAA,EAAYG,IAAZ,EAAkBC,EAAlB,CAAL,EAA4B;UAC1B,IAAIW,MAAJ,EAAY;YACVjB,KAAK,CAACiB,MAAN,mCAAoBA,MAApB,GAA+B,IAAAuC,2BAAA,EAAqBnD,IAArB,EAA2BC,EAA3B,CAA/B;UACD;;UAEDI,QAAQ,CAACV,KAAD,CAAR;QACD;MACF,CApCmC;MAAA,8FAsCzB,iBAA0C;QAAA,IAAjCyD,WAAiC,SAAvCpD,IAAuC;QAAA,IAAhBqD,SAAgB,SAApBpD,EAAoB;QACnD,oBAAuC,OAAKE,KAA5C;QAAA,IAAQH,IAAR,iBAAQA,IAAR;QAAA,IAAcC,EAAd,iBAAcA,EAAd;QAAA,IAAkBI,QAAlB,iBAAkBA,QAAlB;QAAA,IAA4BO,MAA5B,iBAA4BA,MAA5B;;QAEA,IAAIZ,IAAI,CAACsD,KAAT,EAAgB;UACdF,WAAW,CAACE,KAAZ,GAAoBtD,IAAI,CAACsD,KAAzB;QACD;;QAED,IAAIrD,EAAE,CAACqD,KAAP,EAAc;UACZD,SAAS,CAACC,KAAV,GAAkBrD,EAAE,CAACqD,KAArB;QACD;;QAED,IAAMC,OAAO,GAAG;UAAEvD,IAAI,EAAEoD,WAAR;UAAqBnD,EAAE,EAAEoD;QAAzB,CAAhB;;QAEA,IAAIzC,MAAJ,EAAY;UACV2C,OAAO,CAAC3C,MAAR,mCAAsBA,MAAtB,GAAiC,IAAAuC,2BAAA,EAAqBC,WAArB,EAAkCC,SAAlC,CAAjC;QACD;;QAEDhD,QAAQ,CAACkD,OAAD,CAAR;MACD,CAxDmC;MAAA,8FA0DzB,UAAAH,WAAW,EAAI;QACxB,oBAAqB,OAAKjD,KAA1B;QAAA,IAAQH,IAAR,iBAAQA,IAAR;QAAA,IAAcC,EAAd,iBAAcA,EAAd;;QAEA,IAAID,IAAI,CAACsD,KAAT,EAAgB;UACdF,WAAW,CAACE,KAAZ,GAAoBtD,IAAI,CAACsD,KAAzB;QACD;;QAED,IAAI,CAAC,IAAAzD,kBAAA,EAAYuD,WAAZ,EAAyBnD,EAAzB,CAAL,EAAmC;UACjC,OAAKuD,aAAL,CAAmB;YAAExD,IAAI,EAAEoD,WAAR;YAAqBnD,EAAE,EAAEA;UAAzB,CAAnB;QACD;MACF,CApEmC;MAAA,4FAsE3B,UAAAoD,SAAS,EAAI;QACpB,oBAAqB,OAAKlD,KAA1B;QAAA,IAAQH,IAAR,iBAAQA,IAAR;QAAA,IAAcC,EAAd,iBAAcA,EAAd;;QAEA,IAAIA,EAAE,CAACqD,KAAP,EAAc;UACZD,SAAS,CAACC,KAAV,GAAkBrD,EAAE,CAACqD,KAArB;QACD;;QAED,IAAI,CAAC,IAAAzD,kBAAA,EAAYG,IAAZ,EAAkBqD,SAAlB,CAAL,EAAmC;UACjC,OAAKG,aAAL,CAAmB;YAAExD,IAAI,EAAEA,IAAR;YAAcC,EAAE,EAAEoD;UAAlB,CAAnB;QACD;MACF,CAhFmC;MAAA,iGAkFtB,UAAC1D,KAAD,EAAQH,IAAR,EAAiB;QAC7B,IAAQ+B,eAAR,GAA4B,OAAKpB,KAAjC,CAAQoB,eAAR;;QACA,IAAMjB,MAAM,qBAAQX,KAAR,CAAZ;;QAEA,IAAI,CAACA,KAAK,CAAC2D,KAAP,IAAgB,IAAAG,mBAAA,EAAQ9D,KAAK,CAAC2D,KAAd,CAApB,EAA0C;UACxC,OAAOhD,MAAM,CAACgD,KAAd;QACD;;QAED/B,eAAe,sCAAI/B,IAAJ,EAAWc,MAAX,EAAf;MACD,CA3FmC;MAAA,gGA6FvB,UAACX,KAAD,EAAQH,IAAR,EAAiB;QAC5B,oBAAsC,OAAKW,KAA3C;QAAA,IAAQoB,eAAR,iBAAQA,eAAR;QAAA,IAAyBvB,IAAzB,iBAAyBA,IAAzB;QAAA,IAA+BC,EAA/B,iBAA+BA,EAA/B;;QAEA,IAAIT,IAAI,KAAK,QAAT,IAAqB,CAACG,KAAtB,IAA+BK,IAA/B,IAAuCC,EAA3C,EAA+C;UAC7CN,KAAK,mCAAQA,KAAR,GAAkB,IAAAwD,2BAAA,EAAqBnD,IAArB,EAA2BC,EAA3B,CAAlB,CAAL;QACD;;QAEDsB,eAAe;UAAGvB,IAAI,EAAJA,IAAH;UAASC,EAAE,EAAFA;QAAT,GAAcT,IAAd;UAAuB8D,KAAK,EAAE;QAA9B,GAAqC3D,KAArC,GAAf;;QAEA,IAAI,OAAK+D,KAAL,CAAWlE,IAAX,CAAJ,EAAsB;UACpB,OAAKkE,KAAL,CAAWlE,IAAX,EAAiBmE,KAAjB;QACD;MACF,CAzGmC;MAAA,2FA4G5B,EA5G4B;MAAA;IAAA;;IAAA;MAAA;MAAA,OA8GpC,kBAAS;QAAA;;QACP,mBAaI,KAAKxD,KAbT;QAAA,IACEc,kBADF,gBACEA,kBADF;QAAA,IAEEJ,UAFF,gBAEEA,UAFF;QAAA,IAGE+C,WAHF,gBAGEA,WAHF;QAAA,IAIEC,UAJF,gBAIEA,UAJF;QAAA,IAKE7D,IALF,gBAKEA,IALF;QAAA,IAMEC,EANF,gBAMEA,EANF;QAAA,IAOEW,MAPF,gBAOEA,MAPF;QAAA,IAQEQ,QARF,gBAQEA,QARF;QAAA,IASEC,WATF,gBASEA,WATF;QAAA,IAUEP,OAVF,gBAUEA,OAVF;QAAA,IAWEC,SAXF,gBAWEA,SAXF;QAAA,IAYEC,gBAZF,gBAYEA,gBAZF;QAcA,IAAM8C,MAAM,GAAG;UAAEjD,UAAU,EAAVA,UAAF;UAAc+C,WAAW,EAAXA,WAAd;UAA2BC,UAAU,EAAVA,UAA3B;UAAuCzC,QAAQ,EAARA,QAAvC;UAAiDC,WAAW,EAAXA,WAAjD;UAA8DP,OAAO,EAAPA;QAA9D,CAAf;QACA,IAAMiD,KAAK,GAAG9D,EAAE,GAAG+D,UAAA,CAAKC,SAAL,CAAeD,UAAA,CAAKD,KAAL,CAAW/D,IAAX,EAAiBC,EAAjB,CAAf,CAAH,GAA0C,CAA1D;QAEA,IAAIiE,aAAa,GAAG,IAApB;QACA,IAAIC,WAAW,GAAG,IAAlB;QACA,IAAIC,aAAa,GAAG,IAApB;;QAEA,IAAIrD,SAAJ,EAAe;UACb,IAAIf,IAAI,IAAIA,IAAI,CAACqE,cAAL,CAAoB,OAApB,CAAZ,EAA0C;YACxCH,aAAa,gBAAGI,oBAAA,CAASC,YAAT,eACd,gCAAC,qBAAD;cACE,QAAQ,EAAE,kBAAAC,CAAC;gBAAA,OAAK,MAAI,CAACd,KAAL,CAAW1D,IAAX,GAAkBwE,CAAvB;cAAA,CADb;cAEE,QAAQ,EAAE,CAACxD,gBAFb;cAGE,IAAI,EAAEhB,IAHR;cAIE,UAAU,EAAEa,UAJd;cAKE,QAAQ,EAAE,kBAAAyC,KAAK;gBAAA,OAAI,MAAI,CAACmB,WAAL,iCAAsBzE,IAAtB;kBAA4BsD,KAAK,EAALA;gBAA5B,IAAqC,MAArC,CAAJ;cAAA;YALjB,EADc,EAQdvC,SARc,CAAhB;UAUD;;UAED,IAAId,EAAE,IAAIA,EAAE,CAACoE,cAAH,CAAkB,OAAlB,CAAV,EAAsC;YACpCF,WAAW,gBAAGG,oBAAA,CAASC,YAAT,eACZ,gCAAC,qBAAD;cACE,QAAQ,EAAE,kBAAAC,CAAC;gBAAA,OAAK,MAAI,CAACd,KAAL,CAAWzD,EAAX,GAAgBuE,CAArB;cAAA,CADb;cAEE,QAAQ,EAAE,CAACxD,gBAFb;cAGE,IAAI,EAAEf,EAHR;cAIE,UAAU,EAAEY,UAJd;cAKE,QAAQ,EAAE,kBAAAyC,KAAK;gBAAA,OAAI,MAAI,CAACmB,WAAL,iCAAsBxE,EAAtB;kBAA0BqD,KAAK,EAALA;gBAA1B,IAAmC,IAAnC,CAAJ;cAAA;YALjB,EADY,EAQZvC,SARY,CAAd;UAUD;;UAED,IAAIH,MAAM,IAAIA,MAAM,CAACyD,cAAP,CAAsB,OAAtB,CAAd,EAA8C;YAC5CD,aAAa,gBAAGE,oBAAA,CAASC,YAAT,eACd,gCAAC,qBAAD;cACE,QAAQ,EAAE,kBAAAC,CAAC;gBAAA,OAAK,MAAI,CAACd,KAAL,CAAW9C,MAAX,GAAoB4D,CAAzB;cAAA,CADb;cAEE,QAAQ,EAAE,CAACxD,gBAFb;cAGE,IAAI,EAAEJ,MAHR;cAIE,UAAU,EAAEC,UAJd;cAKE,QAAQ,EAAE,kBAAAyC,KAAK;gBAAA,OAAI,MAAI,CAACmB,WAAL,iCAAsB7D,MAAtB;kBAA8B0C,KAAK,EAALA;gBAA9B,IAAuC,QAAvC,CAAJ;cAAA;YALjB,EADc,EAQdvC,SARc,CAAhB;UAUD;QACF;;QAED,oBACE,2CACGd,EAAE,iBACD,gCAAC,aAAD;UACE,IAAI,EAAED,IADR;UAEE,EAAE,EAAEC,EAFN;UAGE,MAAM,EAAEW,MAHV;UAIE,MAAM,EAAE,KAAK8D;QAJf,GAKMZ,MALN;UAME,OAAO,EAAE9C,gBAAgB,GAAG;YAAA,OAAM,MAAI,CAAC2D,UAAL,CAAgB/D,MAAhB,EAAwB,QAAxB,CAAN;UAAA,CAAH,GAA6CkD,MAAM,CAAChD;QAN/E,GAFJ,EAWGsD,aAXH,eAaE,gCAAC,SAAD;UACE,CAAC,EAAEpE,IAAI,CAAC4E,CADV;UAEE,CAAC,EAAE5E,IAAI,CAAC6E,CAFV;UAGE,SAAS,EAAE9D,SAHb;UAIE,kBAAkB,EAAEE,kBAJtB;UAKE,MAAM,EAAE,KAAK6D;QALf,GAMMhB,MANN;UAOE,OAAO,EAAE9C,gBAAgB,GAAG;YAAA,OAAM,MAAI,CAAC2D,UAAL,CAAgB3E,IAAhB,EAAsB,MAAtB,CAAN;UAAA,CAAH,GAAyC8D,MAAM,CAAChD;QAP3E,GAbF,EAsBGoD,aAtBH,EAwBGjE,EAAE,iBACD,gCAAC,OAAD;UACE,CAAC,EAAEA,EAAE,CAAC2E,CADR;UAEE,CAAC,EAAE3E,EAAE,CAAC4E,CAFR;UAGE,KAAK,EAAEd,KAHT,CAGgB;UAHhB;UAIE,SAAS,EAAEhD,SAJb;UAKE,kBAAkB,EAAEE,kBALtB;UAME,MAAM,EAAE,KAAK8D;QANf,GAOMjB,MAPN;UAQE,OAAO,EAAE9C,gBAAgB,GAAG;YAAA,OAAM,MAAI,CAAC2D,UAAL,CAAgB1E,EAAhB,EAAoB,IAApB,CAAN;UAAA,CAAH,GAAqC6D,MAAM,CAAChD;QARvE,GAzBJ,EAoCGqD,WApCH,CADF;MAwCD;IArNmC;IAAA;EAAA,EAMfzC,iBAAA,CAAMjC,SANS;;EAAA,iCAMhCyD,QANgC,eAOjB;IACjBjC,kBAAkB,EAAE+D,qBAAA,CAAUC,IADb;IAEjBpE,UAAU,EAAEc,WAAA,CAAME,cAFD;IAGjB7B,IAAI,EAAE2B,WAAA,CAAMuD,SAHK;IAIjBjF,EAAE,EAAE0B,WAAA,CAAMuD,SAJO;IAKjBtE,MAAM,EAAEe,WAAA,CAAMuD,SALG;IAMjB7E,QAAQ,EAAE2E,qBAAA,CAAUG,IANH;IAOjBvB,WAAW,EAAEoB,qBAAA,CAAUG,IAPN;IAQjBtB,UAAU,EAAEmB,qBAAA,CAAUG,IARL;IASjBrE,OAAO,EAAEkE,qBAAA,CAAUG,IATF;IAUjB9D,WAAW,EAAE2D,qBAAA,CAAUI,MAVN;IAWjBhE,QAAQ,EAAE4D,qBAAA,CAAUC,IAXH;IAYjBlE,SAAS,EAAEiE,qBAAA,CAAUK,MAZJ;IAajBrE,gBAAgB,EAAEgE,qBAAA,CAAUC,IAbX;IAcjB1D,eAAe,EAAEyD,qBAAA,CAAUG;EAdV,CAPiB;EAwNtC,OAAOjC,QAAP;AACD,CAzNM;;;AA2NA,IAAMoC,MAAM,GAAG;EACpBC,IAAI,EAAE;IAAA,OAAO;MACXC,IAAI,EAAE,aADK;MAEXC,MAAM,EAAEC,eAAA,CAAMC,YAAN,EAFG;MAGXC,WAAW,EAAE,CAHF;MAIXC,UAAU,EAAE,kDAJD;MAKX,WAAW;QACTD,WAAW,EAAE,CADJ;QAETH,MAAM,EAAEC,eAAA,CAAMI,WAAN;MAFC;IALA,CAAP;EAAA,CADc;EAWpBC,KAAK,EAAE;IAAA,OAAO;MACZP,IAAI,EAAEE,eAAA,CAAMM,SAAN;IADM,CAAP;EAAA,CAXa;EAcpBC,aAAa,EAAE;IAAA,yBACV,IAAA7E,gBAAA,GADU;EAAA,CAdK;EAiBpBA,QAAQ,EAAE;IAAA,uCACL,IAAAA,gBAAA,EAAS,QAAT,CADK;MAERwE,WAAW,EAAE;IAFL;EAAA,CAjBU;EAqBpBM,OAAO,EAAE,iBAACC,KAAD,EAAQC,GAAR;IAAA,yBACJ,IAAAF,eAAA,EAAQE,GAAR,CADI;EAAA,CArBW;EAwBpBC,SAAS,EAAE,mBAACF,KAAD,EAAQC,GAAR;IAAA,yBACN,IAAAC,iBAAA,EAAUD,GAAV,CADM;EAAA;AAxBS,CAAf"}
1
+ {"version":3,"sources":["../../../../src/tools/shared/line/index.jsx"],"names":["lineTool","type","Component","addPoint","point","mark","root","building","from","to","lineToolComponent","props","setState","onChange","update","state","undefined","shouldNotChange","middle","graphProps","onClick","labelNode","labelModeEnabled","coordinatesOnHover","isBackground","disabled","correctness","changeMark","changeMarkProps","startDrag","stopDrag","React","types","ToolPropTypeFields","GraphPropsType","isRequired","dragOpts","bounds","domain","range","area","utils","lineToArea","anchorPoint","fromDelta","delta","add","lineBase","Comp","opts","DraggableComp","FromPoint","BasePoint","ToPoint","LineBase","draggedFrom","draggedTo","label","updated","onChangePoint","input","focus","onDragStart","onDragStop","common","angle","trig","toDegrees","fromLabelNode","toLabelNode","lineLabelNode","hasOwnProperty","ReactDOM","createPortal","r","labelChange","dragComp","clickPoint","x","y","dragFrom","dragTo","PropTypes","bool","PointType","func","string","object","styles","line","fill","stroke","color","primaryLight","strokeWidth","transition","primaryDark","arrow","secondary","disabledArrow","correct","theme","key","incorrect"],"mappings":"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","sourcesContent":["import React from 'react';\nimport isEqual from 'lodash/isEqual';\nimport cloneDeep from 'lodash/cloneDeep';\nimport { BasePoint } from '../point';\nimport { types, utils, gridDraggable, trig } from '@pie-lib/plot';\nimport PropTypes from 'prop-types';\nimport { disabled, correct, incorrect } from '../styles';\nimport ReactDOM from 'react-dom';\nimport MarkLabel from '../../../mark-label';\nimport isEmpty from 'lodash/isEmpty';\nimport { color } from '@pie-lib/render-ui';\nimport { getMiddleOfTwoPoints, equalPoints, sameAxes } from '../../../utils';\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 };\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 const shouldNotChange =\n type && (type === 'parabola' || type === 'sine') && sameAxes(update.from, update.to);\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 } = 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 />\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 labelNode: PropTypes.object,\n labelModeEnabled: PropTypes.bool,\n changeMarkProps: PropTypes.func\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) => {\n const { changeMarkProps, from, to } = this.props;\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 && from.hasOwnProperty('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 && to.hasOwnProperty('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 && middle.hasOwnProperty('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 <g>\n {to && (\n <DraggableComp\n from={from}\n to={to}\n middle={middle}\n onDrag={this.dragComp}\n {...common}\n onClick={labelModeEnabled ? () => this.clickPoint(middle, 'middle') : common.onClick}\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={labelModeEnabled ? () => this.clickPoint(from, 'from') : common.onClick}\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={labelModeEnabled ? () => this.clickPoint(to, 'to') : common.onClick}\n />\n )}\n {toLabelNode}\n </g>\n );\n }\n }\n\n return LineBase;\n};\n\nexport const styles = {\n line: () => ({\n fill: 'transparent',\n stroke: color.primaryLight(),\n strokeWidth: 3,\n transition: 'stroke 200ms ease-in, stroke-width 200ms ease-in',\n '&:hover': {\n strokeWidth: 6,\n stroke: color.primaryDark()\n }\n }),\n arrow: () => ({\n fill: color.secondary()\n }),\n disabledArrow: () => ({\n ...disabled()\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};\n"],"file":"index.js"}
@@ -1 +1 @@
1
- {"version":3,"file":"line-path.js","names":["RawLinePath","props","data","classes","className","disabled","correctness","from","to","graphProps","isDragging","rest","classNames","drawLine","line","dragging","React","Component","PropTypes","string","object","arrayOf","number","types","GraphPropsType","isRequired","bool","PointType","strokeWidth","stroke","color","secondaryLight","LinePath","withStyles","theme","fill","transition","correct","incorrect"],"sources":["../../../../src/tools/shared/line/line-path.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { types } from '@pie-lib/plot';\nimport classNames from 'classnames';\nimport { disabled, correct, incorrect } from '../styles';\nimport * as vx from '@vx/shape';\nimport { color } from '@pie-lib/render-ui';\n\nexport class RawLinePath extends React.Component {\n static propTypes = {\n className: PropTypes.string,\n classes: PropTypes.object,\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 {\n data,\n classes,\n className,\n disabled,\n correctness,\n from,\n to,\n graphProps,\n isDragging,\n ...rest\n } = this.props;\n /* eslint-enable */\n\n return (\n <React.Fragment>\n <vx.LinePath\n data={data}\n className={classNames(\n classes.drawLine,\n disabled && classes.disabled,\n classes[correctness],\n className\n )}\n {...rest}\n />\n <vx.LinePath\n data={data}\n className={classNames(\n classes.line,\n isDragging && classes.dragging,\n disabled && classes.disabled,\n classes[correctness],\n className\n )}\n {...rest}\n />\n </React.Fragment>\n );\n }\n}\n\nconst dragging = () => ({\n strokeWidth: 7,\n stroke: color.secondaryLight()\n});\n\nexport const LinePath = withStyles(theme => ({\n drawLine: {\n fill: 'none',\n strokeWidth: 2,\n stroke: color.secondaryLight()\n },\n line: {\n strokeWidth: 6,\n fill: 'none',\n transition: 'stroke-width 200ms ease-in, stroke 200ms ease-in',\n stroke: 'transparent',\n '&:hover': dragging(theme)\n },\n dragging: dragging(theme),\n disabled: {\n ...disabled('stroke'),\n strokeWidth: 2\n },\n correct: {\n ...correct('stroke')\n },\n incorrect: {\n ...incorrect('stroke')\n }\n}))(RawLinePath);\n"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/tools/shared/line/line-path.jsx"],"names":["RawLinePath","props","data","classes","className","disabled","correctness","from","to","graphProps","isDragging","rest","drawLine","line","dragging","React","Component","PropTypes","string","object","arrayOf","number","types","GraphPropsType","isRequired","bool","PointType","strokeWidth","stroke","color","secondaryLight","LinePath","theme","fill","transition","correct","incorrect"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { types } from '@pie-lib/plot';\nimport classNames from 'classnames';\nimport { disabled, correct, incorrect } from '../styles';\nimport * as vx from '@vx/shape';\nimport { color } from '@pie-lib/render-ui';\n\nexport class RawLinePath extends React.Component {\n static propTypes = {\n className: PropTypes.string,\n classes: PropTypes.object,\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 {\n data,\n classes,\n className,\n disabled,\n correctness,\n from,\n to,\n graphProps,\n isDragging,\n ...rest\n } = this.props;\n /* eslint-enable */\n\n return (\n <React.Fragment>\n <vx.LinePath\n data={data}\n className={classNames(\n classes.drawLine,\n disabled && classes.disabled,\n classes[correctness],\n className\n )}\n {...rest}\n />\n <vx.LinePath\n data={data}\n className={classNames(\n classes.line,\n isDragging && classes.dragging,\n disabled && classes.disabled,\n classes[correctness],\n className\n )}\n {...rest}\n />\n </React.Fragment>\n );\n }\n}\n\nconst dragging = () => ({\n strokeWidth: 7,\n stroke: color.secondaryLight()\n});\n\nexport const LinePath = withStyles(theme => ({\n drawLine: {\n fill: 'none',\n strokeWidth: 2,\n stroke: color.secondaryLight()\n },\n line: {\n strokeWidth: 6,\n fill: 'none',\n transition: 'stroke-width 200ms ease-in, stroke 200ms ease-in',\n stroke: 'transparent',\n '&:hover': dragging(theme)\n },\n dragging: dragging(theme),\n disabled: {\n ...disabled('stroke'),\n strokeWidth: 2\n },\n correct: {\n ...correct('stroke')\n },\n incorrect: {\n ...incorrect('stroke')\n }\n}))(RawLinePath);\n"],"file":"line-path.js"}
@@ -1 +1 @@
1
- {"version":3,"file":"with-root-edge.js","names":["toRootEdge","m","out","root","from","edge","to","undefined","toFromTo","rootEdgeToFromToWrapper","BaseComp","Wrapper","props","mark","onChange","current","next","propTypes","PropTypes","func","object","rootEdgeComponent","RootEdgeComp","BaseComponent","lineToolComponent","withPointsGenerationLinePath","getPoints","LinePathComponent","graphProps","onClick","onDragStart","onDragStop","disabled","correctness","rest","dataPoints","raw","map","d","scale","x","y","common","curveMonotoneX","types","GraphPropsType","isRequired","PointType","bool","string","withRootEdge","LinePathComp","lineBase"],"sources":["../../../../src/tools/shared/line/with-root-edge.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { types } from '@pie-lib/plot';\nimport { LinePath } from '../line/line-path';\nimport { curveMonotoneX } from '@vx/curve';\nimport { lineBase, lineToolComponent } from './index';\n\nconst toRootEdge = m => {\n const out = { ...m };\n out.root = { ...m.from };\n out.edge = m.to ? { ...m.to } : undefined;\n delete out.from;\n delete out.to;\n return out;\n};\n\nconst toFromTo = m => {\n const out = { ...m };\n out.from = { ...m.root };\n out.to = m.edge ? { ...m.edge } : undefined;\n delete out.root;\n delete out.edge;\n return out;\n};\n\nexport const rootEdgeToFromToWrapper = BaseComp => {\n const Wrapper = props => {\n const m = toFromTo(props.mark);\n\n const onChange = (current, next) => {\n props.onChange(toRootEdge(current), toRootEdge(next));\n };\n\n return <BaseComp {...props} mark={m} onChange={onChange} />;\n };\n\n Wrapper.propTypes = {\n onChange: PropTypes.func,\n mark: PropTypes.object\n };\n\n return Wrapper;\n};\n\nexport const rootEdgeComponent = RootEdgeComp => {\n const BaseComponent = lineToolComponent(RootEdgeComp);\n return rootEdgeToFromToWrapper(BaseComponent);\n};\n\nconst withPointsGenerationLinePath = getPoints => {\n const LinePathComponent = props => {\n const {\n graphProps,\n from,\n to,\n onClick,\n onDragStart,\n onDragStop,\n onChange,\n disabled,\n correctness,\n ...rest\n } = props;\n\n const { dataPoints } = getPoints({\n graphProps: props.graphProps,\n root: from,\n edge: to\n });\n const raw = dataPoints.map(d => [graphProps.scale.x(d.x), graphProps.scale.y(d.y)]);\n\n const common = {\n onClick,\n graphProps,\n onDragStart,\n onDragStop,\n onChange,\n disabled,\n correctness\n };\n\n return <LinePath data={raw} from={from} to={to} curve={curveMonotoneX} {...common} {...rest} />;\n };\n LinePathComponent.propTypes = {\n graphProps: types.GraphPropsType.isRequired,\n from: types.PointType.isRequired,\n to: types.PointType,\n onClick: PropTypes.func,\n onDragStart: PropTypes.func,\n onDragStop: PropTypes.func,\n onChange: PropTypes.func,\n disabled: PropTypes.bool,\n correctness: PropTypes.string\n };\n return LinePathComponent;\n};\n\nexport const withRootEdge = getPoints => {\n const LinePathComp = withPointsGenerationLinePath(getPoints);\n return lineBase(LinePathComp);\n};\n"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/tools/shared/line/with-root-edge.jsx"],"names":["toRootEdge","m","out","root","from","edge","to","undefined","toFromTo","rootEdgeToFromToWrapper","BaseComp","Wrapper","props","mark","onChange","current","next","propTypes","PropTypes","func","object","rootEdgeComponent","RootEdgeComp","BaseComponent","withPointsGenerationLinePath","getPoints","LinePathComponent","graphProps","onClick","onDragStart","onDragStop","disabled","correctness","rest","dataPoints","raw","map","d","scale","x","y","common","curveMonotoneX","types","GraphPropsType","isRequired","PointType","bool","string","withRootEdge","LinePathComp"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { types } from '@pie-lib/plot';\nimport { LinePath } from '../line/line-path';\nimport { curveMonotoneX } from '@vx/curve';\nimport { lineBase, lineToolComponent } from './index';\n\nconst toRootEdge = m => {\n const out = { ...m };\n out.root = { ...m.from };\n out.edge = m.to ? { ...m.to } : undefined;\n delete out.from;\n delete out.to;\n return out;\n};\n\nconst toFromTo = m => {\n const out = { ...m };\n out.from = { ...m.root };\n out.to = m.edge ? { ...m.edge } : undefined;\n delete out.root;\n delete out.edge;\n return out;\n};\n\nexport const rootEdgeToFromToWrapper = BaseComp => {\n const Wrapper = props => {\n const m = toFromTo(props.mark);\n\n const onChange = (current, next) => {\n props.onChange(toRootEdge(current), toRootEdge(next));\n };\n\n return <BaseComp {...props} mark={m} onChange={onChange} />;\n };\n\n Wrapper.propTypes = {\n onChange: PropTypes.func,\n mark: PropTypes.object\n };\n\n return Wrapper;\n};\n\nexport const rootEdgeComponent = RootEdgeComp => {\n const BaseComponent = lineToolComponent(RootEdgeComp);\n return rootEdgeToFromToWrapper(BaseComponent);\n};\n\nconst withPointsGenerationLinePath = getPoints => {\n const LinePathComponent = props => {\n const {\n graphProps,\n from,\n to,\n onClick,\n onDragStart,\n onDragStop,\n onChange,\n disabled,\n correctness,\n ...rest\n } = props;\n\n const { dataPoints } = getPoints({\n graphProps: props.graphProps,\n root: from,\n edge: to\n });\n const raw = dataPoints.map(d => [graphProps.scale.x(d.x), graphProps.scale.y(d.y)]);\n\n const common = {\n onClick,\n graphProps,\n onDragStart,\n onDragStop,\n onChange,\n disabled,\n correctness\n };\n\n return <LinePath data={raw} from={from} to={to} curve={curveMonotoneX} {...common} {...rest} />;\n };\n LinePathComponent.propTypes = {\n graphProps: types.GraphPropsType.isRequired,\n from: types.PointType.isRequired,\n to: types.PointType,\n onClick: PropTypes.func,\n onDragStart: PropTypes.func,\n onDragStop: PropTypes.func,\n onChange: PropTypes.func,\n disabled: PropTypes.bool,\n correctness: PropTypes.string\n };\n return LinePathComponent;\n};\n\nexport const withRootEdge = getPoints => {\n const LinePathComp = withPointsGenerationLinePath(getPoints);\n return lineBase(LinePathComp);\n};\n"],"file":"with-root-edge.js"}
@@ -1 +1 @@
1
- {"version":3,"file":"arrow-point.js","names":["RawArrow","props","classes","className","x","y","disabled","correctness","graphProps","from","to","rest","scale","angle","getAngleDeg","points","isEqual","arrowDimensions","vector","classNames","point","React","Component","PropTypes","object","string","bool","number","shape","isRequired","types","GraphPropsType"],"sources":["../../../../src/tools/shared/point/arrow-point.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { types } from '@pie-lib/plot';\nimport isEqual from 'lodash/isEqual';\nimport { getAngleDeg, arrowDimensions } from '../../../utils';\n\nexport class RawArrow extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n className: PropTypes.string,\n correctness: PropTypes.string,\n disabled: PropTypes.bool,\n x: PropTypes.number,\n y: PropTypes.number,\n from: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }).isRequired,\n to: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n graphProps: types.GraphPropsType.isRequired\n };\n\n static defaultProps = {\n from: {},\n to: {}\n };\n\n render() {\n const {\n classes,\n className,\n x,\n y,\n disabled,\n correctness,\n graphProps,\n from,\n to,\n ...rest\n } = this.props;\n // x & y are the initial coordinates for the arrow\n // from & to are used only to calculate the angle that the arrow should be rotated with\n\n const { scale } = graphProps;\n const angle = getAngleDeg(from.x, from.y, to.x, to.y);\n\n let points = '';\n\n if (isEqual(from, to)) {\n points = '0,0 0,0 0,0';\n } else {\n points = `0,0 ${arrowDimensions.vector},${arrowDimensions.vector * 2} \n -${arrowDimensions.vector},${arrowDimensions.vector * 2}`;\n }\n\n return (\n <g\n className={classNames(\n classes.point,\n disabled && classes.disabled,\n classes[correctness],\n className\n )}\n {...rest}\n >\n <polygon\n points={points}\n transform={`\n translate(${scale.x(x)}, ${scale.y(y)})\n rotate(${angle} 0 0)`}\n />\n </g>\n );\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;IAEaA,Q;;;;;;;;;;;;WAwBX,kBAAS;MACP,kBAWI,KAAKC,KAXT;MAAA,IACEC,OADF,eACEA,OADF;MAAA,IAEEC,SAFF,eAEEA,SAFF;MAAA,IAGEC,CAHF,eAGEA,CAHF;MAAA,IAIEC,CAJF,eAIEA,CAJF;MAAA,IAKEC,QALF,eAKEA,QALF;MAAA,IAMEC,WANF,eAMEA,WANF;MAAA,IAOEC,UAPF,eAOEA,UAPF;MAAA,IAQEC,IARF,eAQEA,IARF;MAAA,IASEC,EATF,eASEA,EATF;MAAA,IAUKC,IAVL,qEADO,CAaP;MACA;;MAEA,IAAQC,KAAR,GAAkBJ,UAAlB,CAAQI,KAAR;MACA,IAAMC,KAAK,GAAG,IAAAC,kBAAA,EAAYL,IAAI,CAACL,CAAjB,EAAoBK,IAAI,CAACJ,CAAzB,EAA4BK,EAAE,CAACN,CAA/B,EAAkCM,EAAE,CAACL,CAArC,CAAd;MAEA,IAAIU,MAAM,GAAG,EAAb;;MAEA,IAAI,IAAAC,mBAAA,EAAQP,IAAR,EAAcC,EAAd,CAAJ,EAAuB;QACrBK,MAAM,GAAG,aAAT;MACD,CAFD,MAEO;QACLA,MAAM,iBAAUE,sBAAA,CAAgBC,MAA1B,cAAoCD,sBAAA,CAAgBC,MAAhB,GAAyB,CAA7D,uBACHD,sBAAA,CAAgBC,MADb,cACuBD,sBAAA,CAAgBC,MAAhB,GAAyB,CADhD,CAAN;MAED;;MAED,oBACE;QACE,SAAS,EAAE,IAAAC,sBAAA,EACTjB,OAAO,CAACkB,KADC,EAETd,QAAQ,IAAIJ,OAAO,CAACI,QAFX,EAGTJ,OAAO,CAACK,WAAD,CAHE,EAITJ,SAJS;MADb,GAOMQ,IAPN,gBASE;QACE,MAAM,EAAEI,MADV;QAEE,SAAS,kCACGH,KAAK,CAACR,CAAN,CAAQA,CAAR,CADH,eACkBQ,KAAK,CAACP,CAAN,CAAQA,CAAR,CADlB,iCAEAQ,KAFA;MAFX,EATF,CADF;IAkBD;;;EAtE2BQ,iBAAA,CAAMC,S;;;iCAAvBtB,Q,eACQ;EACjBE,OAAO,EAAEqB,qBAAA,CAAUC,MADF;EAEjBrB,SAAS,EAAEoB,qBAAA,CAAUE,MAFJ;EAGjBlB,WAAW,EAAEgB,qBAAA,CAAUE,MAHN;EAIjBnB,QAAQ,EAAEiB,qBAAA,CAAUG,IAJH;EAKjBtB,CAAC,EAAEmB,qBAAA,CAAUI,MALI;EAMjBtB,CAAC,EAAEkB,qBAAA,CAAUI,MANI;EAOjBlB,IAAI,EAAEc,qBAAA,CAAUK,KAAV,CAAgB;IACpBxB,CAAC,EAAEmB,qBAAA,CAAUI,MADO;IAEpBtB,CAAC,EAAEkB,qBAAA,CAAUI;EAFO,CAAhB,EAGHE,UAVc;EAWjBnB,EAAE,EAAEa,qBAAA,CAAUK,KAAV,CAAgB;IAClBxB,CAAC,EAAEmB,qBAAA,CAAUI,MADK;IAElBtB,CAAC,EAAEkB,qBAAA,CAAUI;EAFK,CAAhB,CAXa;EAejBnB,UAAU,EAAEsB,WAAA,CAAMC,cAAN,CAAqBF;AAfhB,C;iCADR7B,Q,kBAmBW;EACpBS,IAAI,EAAE,EADc;EAEpBC,EAAE,EAAE;AAFgB,C"}
1
+ {"version":3,"sources":["../../../../src/tools/shared/point/arrow-point.jsx"],"names":["RawArrow","props","classes","className","x","y","disabled","correctness","graphProps","from","to","rest","scale","angle","points","arrowDimensions","vector","point","React","Component","PropTypes","object","string","bool","number","shape","isRequired","types","GraphPropsType"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;IAEaA,Q;;;;;;;;;;;;WAwBX,kBAAS;AACP,wBAWI,KAAKC,KAXT;AAAA,UACEC,OADF,eACEA,OADF;AAAA,UAEEC,SAFF,eAEEA,SAFF;AAAA,UAGEC,CAHF,eAGEA,CAHF;AAAA,UAIEC,CAJF,eAIEA,CAJF;AAAA,UAKEC,QALF,eAKEA,QALF;AAAA,UAMEC,WANF,eAMEA,WANF;AAAA,UAOEC,UAPF,eAOEA,UAPF;AAAA,UAQEC,IARF,eAQEA,IARF;AAAA,UASEC,EATF,eASEA,EATF;AAAA,UAUKC,IAVL,qEADO,CAaP;AACA;;AAEA,UAAQC,KAAR,GAAkBJ,UAAlB,CAAQI,KAAR;AACA,UAAMC,KAAK,GAAG,wBAAYJ,IAAI,CAACL,CAAjB,EAAoBK,IAAI,CAACJ,CAAzB,EAA4BK,EAAE,CAACN,CAA/B,EAAkCM,EAAE,CAACL,CAArC,CAAd;AAEA,UAAIS,MAAM,GAAG,EAAb;;AAEA,UAAI,yBAAQL,IAAR,EAAcC,EAAd,CAAJ,EAAuB;AACrBI,QAAAA,MAAM,GAAG,aAAT;AACD,OAFD,MAEO;AACLA,QAAAA,MAAM,iBAAUC,uBAAgBC,MAA1B,cAAoCD,uBAAgBC,MAAhB,GAAyB,CAA7D,uBACHD,uBAAgBC,MADb,cACuBD,uBAAgBC,MAAhB,GAAyB,CADhD,CAAN;AAED;;AAED,0BACE;AACE,QAAA,SAAS,EAAE,4BACTd,OAAO,CAACe,KADC,EAETX,QAAQ,IAAIJ,OAAO,CAACI,QAFX,EAGTJ,OAAO,CAACK,WAAD,CAHE,EAITJ,SAJS;AADb,SAOMQ,IAPN,gBASE;AACE,QAAA,MAAM,EAAEG,MADV;AAEE,QAAA,SAAS,kCACGF,KAAK,CAACR,CAAN,CAAQA,CAAR,CADH,eACkBQ,KAAK,CAACP,CAAN,CAAQA,CAAR,CADlB,iCAEAQ,KAFA;AAFX,QATF,CADF;AAkBD;;;EAtE2BK,kBAAMC,S;;;iCAAvBnB,Q,eACQ;AACjBE,EAAAA,OAAO,EAAEkB,sBAAUC,MADF;AAEjBlB,EAAAA,SAAS,EAAEiB,sBAAUE,MAFJ;AAGjBf,EAAAA,WAAW,EAAEa,sBAAUE,MAHN;AAIjBhB,EAAAA,QAAQ,EAAEc,sBAAUG,IAJH;AAKjBnB,EAAAA,CAAC,EAAEgB,sBAAUI,MALI;AAMjBnB,EAAAA,CAAC,EAAEe,sBAAUI,MANI;AAOjBf,EAAAA,IAAI,EAAEW,sBAAUK,KAAV,CAAgB;AACpBrB,IAAAA,CAAC,EAAEgB,sBAAUI,MADO;AAEpBnB,IAAAA,CAAC,EAAEe,sBAAUI;AAFO,GAAhB,EAGHE,UAVc;AAWjBhB,EAAAA,EAAE,EAAEU,sBAAUK,KAAV,CAAgB;AAClBrB,IAAAA,CAAC,EAAEgB,sBAAUI,MADK;AAElBnB,IAAAA,CAAC,EAAEe,sBAAUI;AAFK,GAAhB,CAXa;AAejBhB,EAAAA,UAAU,EAAEmB,YAAMC,cAAN,CAAqBF;AAfhB,C;iCADR1B,Q,kBAmBW;AACpBS,EAAAA,IAAI,EAAE,EADc;AAEpBC,EAAAA,EAAE,EAAE;AAFgB,C","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { types } from '@pie-lib/plot';\nimport isEqual from 'lodash/isEqual';\nimport { getAngleDeg, arrowDimensions } from '../../../utils';\n\nexport class RawArrow extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n className: PropTypes.string,\n correctness: PropTypes.string,\n disabled: PropTypes.bool,\n x: PropTypes.number,\n y: PropTypes.number,\n from: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }).isRequired,\n to: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n graphProps: types.GraphPropsType.isRequired\n };\n\n static defaultProps = {\n from: {},\n to: {}\n };\n\n render() {\n const {\n classes,\n className,\n x,\n y,\n disabled,\n correctness,\n graphProps,\n from,\n to,\n ...rest\n } = this.props;\n // x & y are the initial coordinates for the arrow\n // from & to are used only to calculate the angle that the arrow should be rotated with\n\n const { scale } = graphProps;\n const angle = getAngleDeg(from.x, from.y, to.x, to.y);\n\n let points = '';\n\n if (isEqual(from, to)) {\n points = '0,0 0,0 0,0';\n } else {\n points = `0,0 ${arrowDimensions.vector},${arrowDimensions.vector * 2} \n -${arrowDimensions.vector},${arrowDimensions.vector * 2}`;\n }\n\n return (\n <g\n className={classNames(\n classes.point,\n disabled && classes.disabled,\n classes[correctness],\n className\n )}\n {...rest}\n >\n <polygon\n points={points}\n transform={`\n translate(${scale.x(x)}, ${scale.y(y)})\n rotate(${angle} 0 0)`}\n />\n </g>\n );\n }\n}\n"],"file":"arrow-point.js"}
@@ -1 +1 @@
1
- {"version":3,"file":"arrow.js","names":["Arrow","props","classes","angle","className","x","y","disabled","correctness","graphProps","rest","size","thinnerShapesNeeded","scale","scaledX","scaledY","transform","points","classNames","point","React","Component","PropTypes","object","string","bool","number","isRequired","types","GraphPropsType"],"sources":["../../../../src/tools/shared/point/arrow.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { types } from '@pie-lib/plot';\nimport { ArrowHead } from '../arrow-head';\nimport { thinnerShapesNeeded } from '../../../utils';\n\nexport default class Arrow extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n className: PropTypes.string,\n correctness: PropTypes.string,\n disabled: PropTypes.bool,\n x: PropTypes.number.isRequired,\n y: PropTypes.number.isRequired,\n angle: PropTypes.number.isRequired,\n graphProps: types.GraphPropsType.isRequired\n };\n\n render() {\n const {\n classes,\n angle,\n className,\n x,\n y,\n disabled,\n correctness,\n graphProps,\n ...rest\n } = this.props;\n\n const size = thinnerShapesNeeded(graphProps) ? 12 : 14;\n const { scale } = graphProps;\n\n const scaledX = scale.x(x);\n const scaledY = scale.y(y);\n\n const transform = `rotate(${-angle}, ${scaledX},${scaledY})`;\n const points = `${scaledX},${scaledY}\n ${scaledX - size},${scaledY - size / 2}\n ${scaledX - size}, ${scaledY + size / 2}`;\n\n return (\n <g\n className={classNames(\n classes.point,\n disabled && classes.disabled,\n classes[correctness],\n className\n )}\n {...rest}\n >\n <ArrowHead size={size} transform={transform} points={points} />\n </g>\n );\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;IAEqBA,K;;;;;;;;;;;;WAYnB,kBAAS;MACP,kBAUI,KAAKC,KAVT;MAAA,IACEC,OADF,eACEA,OADF;MAAA,IAEEC,KAFF,eAEEA,KAFF;MAAA,IAGEC,SAHF,eAGEA,SAHF;MAAA,IAIEC,CAJF,eAIEA,CAJF;MAAA,IAKEC,CALF,eAKEA,CALF;MAAA,IAMEC,QANF,eAMEA,QANF;MAAA,IAOEC,WAPF,eAOEA,WAPF;MAAA,IAQEC,UARF,eAQEA,UARF;MAAA,IASKC,IATL;MAYA,IAAMC,IAAI,GAAG,IAAAC,0BAAA,EAAoBH,UAApB,IAAkC,EAAlC,GAAuC,EAApD;MACA,IAAQI,KAAR,GAAkBJ,UAAlB,CAAQI,KAAR;MAEA,IAAMC,OAAO,GAAGD,KAAK,CAACR,CAAN,CAAQA,CAAR,CAAhB;MACA,IAAMU,OAAO,GAAGF,KAAK,CAACP,CAAN,CAAQA,CAAR,CAAhB;MAEA,IAAMU,SAAS,oBAAa,CAACb,KAAd,eAAwBW,OAAxB,cAAmCC,OAAnC,MAAf;MACA,IAAME,MAAM,aAAMH,OAAN,cAAiBC,OAAjB,uBACND,OAAO,GAAGH,IADJ,cACYI,OAAO,GAAGJ,IAAI,GAAG,CAD7B,uBAENG,OAAO,GAAGH,IAFJ,eAEaI,OAAO,GAAGJ,IAAI,GAAG,CAF9B,CAAZ;MAIA,oBACE;QACE,SAAS,EAAE,IAAAO,sBAAA,EACThB,OAAO,CAACiB,KADC,EAETZ,QAAQ,IAAIL,OAAO,CAACK,QAFX,EAGTL,OAAO,CAACM,WAAD,CAHE,EAITJ,SAJS;MADb,GAOMM,IAPN,gBASE,gCAAC,oBAAD;QAAW,IAAI,EAAEC,IAAjB;QAAuB,SAAS,EAAEK,SAAlC;QAA6C,MAAM,EAAEC;MAArD,EATF,CADF;IAaD;;;EAjDgCG,iBAAA,CAAMC,S;;;iCAApBrB,K,eACA;EACjBE,OAAO,EAAEoB,qBAAA,CAAUC,MADF;EAEjBnB,SAAS,EAAEkB,qBAAA,CAAUE,MAFJ;EAGjBhB,WAAW,EAAEc,qBAAA,CAAUE,MAHN;EAIjBjB,QAAQ,EAAEe,qBAAA,CAAUG,IAJH;EAKjBpB,CAAC,EAAEiB,qBAAA,CAAUI,MAAV,CAAiBC,UALH;EAMjBrB,CAAC,EAAEgB,qBAAA,CAAUI,MAAV,CAAiBC,UANH;EAOjBxB,KAAK,EAAEmB,qBAAA,CAAUI,MAAV,CAAiBC,UAPP;EAQjBlB,UAAU,EAAEmB,WAAA,CAAMC,cAAN,CAAqBF;AARhB,C"}
1
+ {"version":3,"sources":["../../../../src/tools/shared/point/arrow.jsx"],"names":["Arrow","props","classes","angle","className","x","y","disabled","correctness","graphProps","rest","size","scale","scaledX","scaledY","transform","points","point","React","Component","PropTypes","object","string","bool","number","isRequired","types","GraphPropsType"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;IAEqBA,K;;;;;;;;;;;;WAYnB,kBAAS;AACP,wBAUI,KAAKC,KAVT;AAAA,UACEC,OADF,eACEA,OADF;AAAA,UAEEC,KAFF,eAEEA,KAFF;AAAA,UAGEC,SAHF,eAGEA,SAHF;AAAA,UAIEC,CAJF,eAIEA,CAJF;AAAA,UAKEC,CALF,eAKEA,CALF;AAAA,UAMEC,QANF,eAMEA,QANF;AAAA,UAOEC,WAPF,eAOEA,WAPF;AAAA,UAQEC,UARF,eAQEA,UARF;AAAA,UASKC,IATL;AAYA,UAAMC,IAAI,GAAG,gCAAoBF,UAApB,IAAkC,EAAlC,GAAuC,EAApD;AACA,UAAQG,KAAR,GAAkBH,UAAlB,CAAQG,KAAR;AAEA,UAAMC,OAAO,GAAGD,KAAK,CAACP,CAAN,CAAQA,CAAR,CAAhB;AACA,UAAMS,OAAO,GAAGF,KAAK,CAACN,CAAN,CAAQA,CAAR,CAAhB;AAEA,UAAMS,SAAS,oBAAa,CAACZ,KAAd,eAAwBU,OAAxB,cAAmCC,OAAnC,MAAf;AACA,UAAME,MAAM,aAAMH,OAAN,cAAiBC,OAAjB,uBACND,OAAO,GAAGF,IADJ,cACYG,OAAO,GAAGH,IAAI,GAAG,CAD7B,uBAENE,OAAO,GAAGF,IAFJ,eAEaG,OAAO,GAAGH,IAAI,GAAG,CAF9B,CAAZ;AAIA,0BACE;AACE,QAAA,SAAS,EAAE,4BACTT,OAAO,CAACe,KADC,EAETV,QAAQ,IAAIL,OAAO,CAACK,QAFX,EAGTL,OAAO,CAACM,WAAD,CAHE,EAITJ,SAJS;AADb,SAOMM,IAPN,gBASE,gCAAC,oBAAD;AAAW,QAAA,IAAI,EAAEC,IAAjB;AAAuB,QAAA,SAAS,EAAEI,SAAlC;AAA6C,QAAA,MAAM,EAAEC;AAArD,QATF,CADF;AAaD;;;EAjDgCE,kBAAMC,S;;;iCAApBnB,K,eACA;AACjBE,EAAAA,OAAO,EAAEkB,sBAAUC,MADF;AAEjBjB,EAAAA,SAAS,EAAEgB,sBAAUE,MAFJ;AAGjBd,EAAAA,WAAW,EAAEY,sBAAUE,MAHN;AAIjBf,EAAAA,QAAQ,EAAEa,sBAAUG,IAJH;AAKjBlB,EAAAA,CAAC,EAAEe,sBAAUI,MAAV,CAAiBC,UALH;AAMjBnB,EAAAA,CAAC,EAAEc,sBAAUI,MAAV,CAAiBC,UANH;AAOjBtB,EAAAA,KAAK,EAAEiB,sBAAUI,MAAV,CAAiBC,UAPP;AAQjBhB,EAAAA,UAAU,EAAEiB,YAAMC,cAAN,CAAqBF;AARhB,C","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { types } from '@pie-lib/plot';\nimport { ArrowHead } from '../arrow-head';\nimport { thinnerShapesNeeded } from '../../../utils';\n\nexport default class Arrow extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n className: PropTypes.string,\n correctness: PropTypes.string,\n disabled: PropTypes.bool,\n x: PropTypes.number.isRequired,\n y: PropTypes.number.isRequired,\n angle: PropTypes.number.isRequired,\n graphProps: types.GraphPropsType.isRequired\n };\n\n render() {\n const {\n classes,\n angle,\n className,\n x,\n y,\n disabled,\n correctness,\n graphProps,\n ...rest\n } = this.props;\n\n const size = thinnerShapesNeeded(graphProps) ? 12 : 14;\n const { scale } = graphProps;\n\n const scaledX = scale.x(x);\n const scaledY = scale.y(y);\n\n const transform = `rotate(${-angle}, ${scaledX},${scaledY})`;\n const points = `${scaledX},${scaledY}\n ${scaledX - size},${scaledY - size / 2}\n ${scaledX - size}, ${scaledY + size / 2}`;\n\n return (\n <g\n className={classNames(\n classes.point,\n disabled && classes.disabled,\n classes[correctness],\n className\n )}\n {...rest}\n >\n <ArrowHead size={size} transform={transform} points={points} />\n </g>\n );\n }\n}\n"],"file":"arrow.js"}
@@ -1 +1 @@
1
- {"version":3,"file":"base-point.js","names":["RawBp","props","state","showCoordinates","classes","className","coordinatesOnHover","x","y","disabled","correctness","graphProps","labelNode","rest","scale","r","thinnerShapesNeeded","classNames","point","setState","fill","ReactDOM","createPortal","React","Component","PropTypes","object","string","bool","number","types","GraphPropsType","isRequired"],"sources":["../../../../src/tools/shared/point/base-point.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { types } from '@pie-lib/plot';\nimport CoordinatesLabel from '../../../coordinates-label';\nimport ReactDOM from 'react-dom';\nimport { thinnerShapesNeeded } from '../../../utils';\n\nexport class RawBp extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n className: PropTypes.string,\n coordinatesOnHover: PropTypes.bool,\n correctness: PropTypes.string,\n disabled: PropTypes.bool,\n labelNode: PropTypes.object,\n x: PropTypes.number,\n y: PropTypes.number,\n graphProps: types.GraphPropsType.isRequired\n };\n\n constructor(props) {\n super(props);\n this.state = { showCoordinates: false };\n }\n\n render() {\n const {\n classes,\n className,\n coordinatesOnHover,\n x,\n y,\n disabled,\n correctness,\n graphProps,\n labelNode,\n ...rest\n } = this.props;\n const { showCoordinates } = this.state;\n const { scale } = graphProps;\n const r = thinnerShapesNeeded(graphProps) ? 5 : 7;\n\n return (\n <g\n className={classNames(\n classes.point,\n disabled && classes.disabled,\n classes[correctness],\n className\n )}\n onMouseEnter={() => this.setState({ showCoordinates: true })}\n onMouseLeave={() => this.setState({ showCoordinates: false })}\n {...rest}\n >\n <circle style={{ fill: 'transparent' }} r={r * 2} cx={2 * scale.x(x)} cy={2 * scale.y(y)} />\n <circle r={r} cx={scale.x(x)} cy={scale.y(y)} />\n {labelNode &&\n coordinatesOnHover &&\n showCoordinates &&\n ReactDOM.createPortal(\n <CoordinatesLabel graphProps={graphProps} x={x} y={y} />,\n labelNode\n )}\n </g>\n );\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;IAEaA,K;;;;;EAaX,eAAYC,KAAZ,EAAmB;IAAA;;IAAA;IACjB,0BAAMA,KAAN;IACA,MAAKC,KAAL,GAAa;MAAEC,eAAe,EAAE;IAAnB,CAAb;IAFiB;EAGlB;;;;WAED,kBAAS;MAAA;;MACP,kBAWI,KAAKF,KAXT;MAAA,IACEG,OADF,eACEA,OADF;MAAA,IAEEC,SAFF,eAEEA,SAFF;MAAA,IAGEC,kBAHF,eAGEA,kBAHF;MAAA,IAIEC,CAJF,eAIEA,CAJF;MAAA,IAKEC,CALF,eAKEA,CALF;MAAA,IAMEC,QANF,eAMEA,QANF;MAAA,IAOEC,WAPF,eAOEA,WAPF;MAAA,IAQEC,UARF,eAQEA,UARF;MAAA,IASEC,SATF,eASEA,SATF;MAAA,IAUKC,IAVL;MAYA,IAAQV,eAAR,GAA4B,KAAKD,KAAjC,CAAQC,eAAR;MACA,IAAQW,KAAR,GAAkBH,UAAlB,CAAQG,KAAR;MACA,IAAMC,CAAC,GAAG,IAAAC,0BAAA,EAAoBL,UAApB,IAAkC,CAAlC,GAAsC,CAAhD;MAEA,oBACE;QACE,SAAS,EAAE,IAAAM,sBAAA,EACTb,OAAO,CAACc,KADC,EAETT,QAAQ,IAAIL,OAAO,CAACK,QAFX,EAGTL,OAAO,CAACM,WAAD,CAHE,EAITL,SAJS,CADb;QAOE,YAAY,EAAE;UAAA,OAAM,MAAI,CAACc,QAAL,CAAc;YAAEhB,eAAe,EAAE;UAAnB,CAAd,CAAN;QAAA,CAPhB;QAQE,YAAY,EAAE;UAAA,OAAM,MAAI,CAACgB,QAAL,CAAc;YAAEhB,eAAe,EAAE;UAAnB,CAAd,CAAN;QAAA;MARhB,GASMU,IATN,gBAWE;QAAQ,KAAK,EAAE;UAAEO,IAAI,EAAE;QAAR,CAAf;QAAwC,CAAC,EAAEL,CAAC,GAAG,CAA/C;QAAkD,EAAE,EAAE,IAAID,KAAK,CAACP,CAAN,CAAQA,CAAR,CAA1D;QAAsE,EAAE,EAAE,IAAIO,KAAK,CAACN,CAAN,CAAQA,CAAR;MAA9E,EAXF,eAYE;QAAQ,CAAC,EAAEO,CAAX;QAAc,EAAE,EAAED,KAAK,CAACP,CAAN,CAAQA,CAAR,CAAlB;QAA8B,EAAE,EAAEO,KAAK,CAACN,CAAN,CAAQA,CAAR;MAAlC,EAZF,EAaGI,SAAS,IACRN,kBADD,IAECH,eAFD,iBAGCkB,oBAAA,CAASC,YAAT,eACE,gCAAC,4BAAD;QAAkB,UAAU,EAAEX,UAA9B;QAA0C,CAAC,EAAEJ,CAA7C;QAAgD,CAAC,EAAEC;MAAnD,EADF,EAEEI,SAFF,CAhBJ,CADF;IAuBD;;;EA1DwBW,iBAAA,CAAMC,S;;;iCAApBxB,K,eACQ;EACjBI,OAAO,EAAEqB,qBAAA,CAAUC,MADF;EAEjBrB,SAAS,EAAEoB,qBAAA,CAAUE,MAFJ;EAGjBrB,kBAAkB,EAAEmB,qBAAA,CAAUG,IAHb;EAIjBlB,WAAW,EAAEe,qBAAA,CAAUE,MAJN;EAKjBlB,QAAQ,EAAEgB,qBAAA,CAAUG,IALH;EAMjBhB,SAAS,EAAEa,qBAAA,CAAUC,MANJ;EAOjBnB,CAAC,EAAEkB,qBAAA,CAAUI,MAPI;EAQjBrB,CAAC,EAAEiB,qBAAA,CAAUI,MARI;EASjBlB,UAAU,EAAEmB,WAAA,CAAMC,cAAN,CAAqBC;AAThB,C"}
1
+ {"version":3,"sources":["../../../../src/tools/shared/point/base-point.jsx"],"names":["RawBp","props","state","showCoordinates","classes","className","coordinatesOnHover","x","y","disabled","correctness","graphProps","labelNode","rest","scale","r","point","setState","fill","ReactDOM","createPortal","React","Component","PropTypes","object","string","bool","number","types","GraphPropsType","isRequired"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;IAEaA,K;;;;;AAaX,iBAAYC,KAAZ,EAAmB;AAAA;;AAAA;AACjB,8BAAMA,KAAN;AACA,UAAKC,KAAL,GAAa;AAAEC,MAAAA,eAAe,EAAE;AAAnB,KAAb;AAFiB;AAGlB;;;;WAED,kBAAS;AAAA;;AACP,wBAWI,KAAKF,KAXT;AAAA,UACEG,OADF,eACEA,OADF;AAAA,UAEEC,SAFF,eAEEA,SAFF;AAAA,UAGEC,kBAHF,eAGEA,kBAHF;AAAA,UAIEC,CAJF,eAIEA,CAJF;AAAA,UAKEC,CALF,eAKEA,CALF;AAAA,UAMEC,QANF,eAMEA,QANF;AAAA,UAOEC,WAPF,eAOEA,WAPF;AAAA,UAQEC,UARF,eAQEA,UARF;AAAA,UASEC,SATF,eASEA,SATF;AAAA,UAUKC,IAVL;AAYA,UAAQV,eAAR,GAA4B,KAAKD,KAAjC,CAAQC,eAAR;AACA,UAAQW,KAAR,GAAkBH,UAAlB,CAAQG,KAAR;AACA,UAAMC,CAAC,GAAG,gCAAoBJ,UAApB,IAAkC,CAAlC,GAAsC,CAAhD;AAEA,0BACE;AACE,QAAA,SAAS,EAAE,4BACTP,OAAO,CAACY,KADC,EAETP,QAAQ,IAAIL,OAAO,CAACK,QAFX,EAGTL,OAAO,CAACM,WAAD,CAHE,EAITL,SAJS,CADb;AAOE,QAAA,YAAY,EAAE;AAAA,iBAAM,MAAI,CAACY,QAAL,CAAc;AAAEd,YAAAA,eAAe,EAAE;AAAnB,WAAd,CAAN;AAAA,SAPhB;AAQE,QAAA,YAAY,EAAE;AAAA,iBAAM,MAAI,CAACc,QAAL,CAAc;AAAEd,YAAAA,eAAe,EAAE;AAAnB,WAAd,CAAN;AAAA;AARhB,SASMU,IATN,gBAWE;AAAQ,QAAA,KAAK,EAAE;AAAEK,UAAAA,IAAI,EAAE;AAAR,SAAf;AAAwC,QAAA,CAAC,EAAEH,CAAC,GAAG,CAA/C;AAAkD,QAAA,EAAE,EAAE,IAAID,KAAK,CAACP,CAAN,CAAQA,CAAR,CAA1D;AAAsE,QAAA,EAAE,EAAE,IAAIO,KAAK,CAACN,CAAN,CAAQA,CAAR;AAA9E,QAXF,eAYE;AAAQ,QAAA,CAAC,EAAEO,CAAX;AAAc,QAAA,EAAE,EAAED,KAAK,CAACP,CAAN,CAAQA,CAAR,CAAlB;AAA8B,QAAA,EAAE,EAAEO,KAAK,CAACN,CAAN,CAAQA,CAAR;AAAlC,QAZF,EAaGI,SAAS,IACRN,kBADD,IAECH,eAFD,iBAGCgB,qBAASC,YAAT,eACE,gCAAC,4BAAD;AAAkB,QAAA,UAAU,EAAET,UAA9B;AAA0C,QAAA,CAAC,EAAEJ,CAA7C;AAAgD,QAAA,CAAC,EAAEC;AAAnD,QADF,EAEEI,SAFF,CAhBJ,CADF;AAuBD;;;EA1DwBS,kBAAMC,S;;;iCAApBtB,K,eACQ;AACjBI,EAAAA,OAAO,EAAEmB,sBAAUC,MADF;AAEjBnB,EAAAA,SAAS,EAAEkB,sBAAUE,MAFJ;AAGjBnB,EAAAA,kBAAkB,EAAEiB,sBAAUG,IAHb;AAIjBhB,EAAAA,WAAW,EAAEa,sBAAUE,MAJN;AAKjBhB,EAAAA,QAAQ,EAAEc,sBAAUG,IALH;AAMjBd,EAAAA,SAAS,EAAEW,sBAAUC,MANJ;AAOjBjB,EAAAA,CAAC,EAAEgB,sBAAUI,MAPI;AAQjBnB,EAAAA,CAAC,EAAEe,sBAAUI,MARI;AASjBhB,EAAAA,UAAU,EAAEiB,YAAMC,cAAN,CAAqBC;AAThB,C","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { types } from '@pie-lib/plot';\nimport CoordinatesLabel from '../../../coordinates-label';\nimport ReactDOM from 'react-dom';\nimport { thinnerShapesNeeded } from '../../../utils';\n\nexport class RawBp extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n className: PropTypes.string,\n coordinatesOnHover: PropTypes.bool,\n correctness: PropTypes.string,\n disabled: PropTypes.bool,\n labelNode: PropTypes.object,\n x: PropTypes.number,\n y: PropTypes.number,\n graphProps: types.GraphPropsType.isRequired\n };\n\n constructor(props) {\n super(props);\n this.state = { showCoordinates: false };\n }\n\n render() {\n const {\n classes,\n className,\n coordinatesOnHover,\n x,\n y,\n disabled,\n correctness,\n graphProps,\n labelNode,\n ...rest\n } = this.props;\n const { showCoordinates } = this.state;\n const { scale } = graphProps;\n const r = thinnerShapesNeeded(graphProps) ? 5 : 7;\n\n return (\n <g\n className={classNames(\n classes.point,\n disabled && classes.disabled,\n classes[correctness],\n className\n )}\n onMouseEnter={() => this.setState({ showCoordinates: true })}\n onMouseLeave={() => this.setState({ showCoordinates: false })}\n {...rest}\n >\n <circle style={{ fill: 'transparent' }} r={r * 2} cx={2 * scale.x(x)} cy={2 * scale.y(y)} />\n <circle r={r} cx={scale.x(x)} cy={scale.y(y)} />\n {labelNode &&\n coordinatesOnHover &&\n showCoordinates &&\n ReactDOM.createPortal(\n <CoordinatesLabel graphProps={graphProps} x={x} y={y} />,\n labelNode\n )}\n </g>\n );\n }\n}\n"],"file":"base-point.js"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["opts","bounds","props","domain","range","x","y","area","left","top","bottom","right","utils","anchorPoint","fromDelta","delta","point","add","styles","cursor","fill","color","secondary","disabled","correct","incorrect","BasePoint","withStyles","gridDraggable","RawBp","ArrowPoint","RawArrow","Arrow","BaseArrow"],"sources":["../../../../src/tools/shared/point/index.jsx"],"sourcesContent":["import { withStyles } from '@material-ui/core/styles/index';\nimport { gridDraggable } from '@pie-lib/plot';\nimport * as utils from '../../../utils';\nimport { disabled, correct, incorrect } from '../styles';\nimport { RawBp } from './base-point';\nimport { RawArrow } from './arrow-point';\nimport { color } from '@pie-lib/render-ui';\nimport BaseArrow from './arrow';\n\nconst opts = {\n bounds: (props, { domain, range }) => {\n const { x, y } = props;\n const area = { left: x, top: y, bottom: y, right: x };\n\n return utils.bounds(area, domain, range);\n },\n anchorPoint: props => {\n const { x, y } = props;\n\n return { x, y };\n },\n fromDelta: (props, delta) => {\n return utils.point(props).add(utils.point(delta));\n }\n};\n\nconst styles = () => {\n return {\n point: {\n '& circle, & polygon': {\n cursor: 'pointer',\n fill: color.secondary()\n }\n },\n disabled: {\n '& circle, & polygon': {\n ...disabled()\n }\n },\n correct: {\n '& circle, & polygon': {\n ...correct()\n }\n },\n incorrect: {\n '& circle, & polygon': {\n ...incorrect()\n }\n }\n };\n};\n\nexport const BasePoint = withStyles(styles)(gridDraggable(opts)(RawBp));\nexport const ArrowPoint = withStyles(styles)(gridDraggable(opts)(RawArrow));\nexport const Arrow = withStyles(styles)(gridDraggable(opts)(BaseArrow));\n"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;AAEA,IAAMA,IAAI,GAAG;EACXC,MAAM,EAAE,gBAACC,KAAD,QAA8B;IAAA,IAApBC,MAAoB,QAApBA,MAAoB;IAAA,IAAZC,KAAY,QAAZA,KAAY;IACpC,IAAQC,CAAR,GAAiBH,KAAjB,CAAQG,CAAR;IAAA,IAAWC,CAAX,GAAiBJ,KAAjB,CAAWI,CAAX;IACA,IAAMC,IAAI,GAAG;MAAEC,IAAI,EAAEH,CAAR;MAAWI,GAAG,EAAEH,CAAhB;MAAmBI,MAAM,EAAEJ,CAA3B;MAA8BK,KAAK,EAAEN;IAArC,CAAb;IAEA,OAAOO,KAAK,CAACX,MAAN,CAAaM,IAAb,EAAmBJ,MAAnB,EAA2BC,KAA3B,CAAP;EACD,CANU;EAOXS,WAAW,EAAE,qBAAAX,KAAK,EAAI;IACpB,IAAQG,CAAR,GAAiBH,KAAjB,CAAQG,CAAR;IAAA,IAAWC,CAAX,GAAiBJ,KAAjB,CAAWI,CAAX;IAEA,OAAO;MAAED,CAAC,EAADA,CAAF;MAAKC,CAAC,EAADA;IAAL,CAAP;EACD,CAXU;EAYXQ,SAAS,EAAE,mBAACZ,KAAD,EAAQa,KAAR,EAAkB;IAC3B,OAAOH,KAAK,CAACI,KAAN,CAAYd,KAAZ,EAAmBe,GAAnB,CAAuBL,KAAK,CAACI,KAAN,CAAYD,KAAZ,CAAvB,CAAP;EACD;AAdU,CAAb;;AAiBA,IAAMG,MAAM,GAAG,SAATA,MAAS,GAAM;EACnB,OAAO;IACLF,KAAK,EAAE;MACL,uBAAuB;QACrBG,MAAM,EAAE,SADa;QAErBC,IAAI,EAAEC,eAAA,CAAMC,SAAN;MAFe;IADlB,CADF;IAOLC,QAAQ,EAAE;MACR,yCACK,IAAAA,gBAAA,GADL;IADQ,CAPL;IAYLC,OAAO,EAAE;MACP,yCACK,IAAAA,eAAA,GADL;IADO,CAZJ;IAiBLC,SAAS,EAAE;MACT,yCACK,IAAAA,iBAAA,GADL;IADS;EAjBN,CAAP;AAuBD,CAxBD;;AA0BO,IAAMC,SAAS,GAAG,IAAAC,iBAAA,EAAWT,MAAX,EAAmB,IAAAU,mBAAA,EAAc5B,IAAd,EAAoB6B,gBAApB,CAAnB,CAAlB;;AACA,IAAMC,UAAU,GAAG,IAAAH,iBAAA,EAAWT,MAAX,EAAmB,IAAAU,mBAAA,EAAc5B,IAAd,EAAoB+B,oBAApB,CAAnB,CAAnB;;AACA,IAAMC,KAAK,GAAG,IAAAL,iBAAA,EAAWT,MAAX,EAAmB,IAAAU,mBAAA,EAAc5B,IAAd,EAAoBiC,iBAApB,CAAnB,CAAd"}
1
+ {"version":3,"sources":["../../../../src/tools/shared/point/index.jsx"],"names":["opts","bounds","props","domain","range","x","y","area","left","top","bottom","right","utils","anchorPoint","fromDelta","delta","point","add","styles","cursor","fill","color","secondary","disabled","correct","incorrect","BasePoint","RawBp","ArrowPoint","RawArrow","Arrow","BaseArrow"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;AAEA,IAAMA,IAAI,GAAG;AACXC,EAAAA,MAAM,EAAE,gBAACC,KAAD,QAA8B;AAAA,QAApBC,MAAoB,QAApBA,MAAoB;AAAA,QAAZC,KAAY,QAAZA,KAAY;AACpC,QAAQC,CAAR,GAAiBH,KAAjB,CAAQG,CAAR;AAAA,QAAWC,CAAX,GAAiBJ,KAAjB,CAAWI,CAAX;AACA,QAAMC,IAAI,GAAG;AAAEC,MAAAA,IAAI,EAAEH,CAAR;AAAWI,MAAAA,GAAG,EAAEH,CAAhB;AAAmBI,MAAAA,MAAM,EAAEJ,CAA3B;AAA8BK,MAAAA,KAAK,EAAEN;AAArC,KAAb;AAEA,WAAOO,KAAK,CAACX,MAAN,CAAaM,IAAb,EAAmBJ,MAAnB,EAA2BC,KAA3B,CAAP;AACD,GANU;AAOXS,EAAAA,WAAW,EAAE,qBAAAX,KAAK,EAAI;AACpB,QAAQG,CAAR,GAAiBH,KAAjB,CAAQG,CAAR;AAAA,QAAWC,CAAX,GAAiBJ,KAAjB,CAAWI,CAAX;AAEA,WAAO;AAAED,MAAAA,CAAC,EAADA,CAAF;AAAKC,MAAAA,CAAC,EAADA;AAAL,KAAP;AACD,GAXU;AAYXQ,EAAAA,SAAS,EAAE,mBAACZ,KAAD,EAAQa,KAAR,EAAkB;AAC3B,WAAOH,KAAK,CAACI,KAAN,CAAYd,KAAZ,EAAmBe,GAAnB,CAAuBL,KAAK,CAACI,KAAN,CAAYD,KAAZ,CAAvB,CAAP;AACD;AAdU,CAAb;;AAiBA,IAAMG,MAAM,GAAG,SAATA,MAAS,GAAM;AACnB,SAAO;AACLF,IAAAA,KAAK,EAAE;AACL,6BAAuB;AACrBG,QAAAA,MAAM,EAAE,SADa;AAErBC,QAAAA,IAAI,EAAEC,gBAAMC,SAAN;AAFe;AADlB,KADF;AAOLC,IAAAA,QAAQ,EAAE;AACR,+CACK,uBADL;AADQ,KAPL;AAYLC,IAAAA,OAAO,EAAE;AACP,+CACK,sBADL;AADO,KAZJ;AAiBLC,IAAAA,SAAS,EAAE;AACT,+CACK,wBADL;AADS;AAjBN,GAAP;AAuBD,CAxBD;;AA0BO,IAAMC,SAAS,GAAG,uBAAWR,MAAX,EAAmB,yBAAclB,IAAd,EAAoB2B,gBAApB,CAAnB,CAAlB;;AACA,IAAMC,UAAU,GAAG,uBAAWV,MAAX,EAAmB,yBAAclB,IAAd,EAAoB6B,oBAApB,CAAnB,CAAnB;;AACA,IAAMC,KAAK,GAAG,uBAAWZ,MAAX,EAAmB,yBAAclB,IAAd,EAAoB+B,iBAApB,CAAnB,CAAd","sourcesContent":["import { withStyles } from '@material-ui/core/styles/index';\nimport { gridDraggable } from '@pie-lib/plot';\nimport * as utils from '../../../utils';\nimport { disabled, correct, incorrect } from '../styles';\nimport { RawBp } from './base-point';\nimport { RawArrow } from './arrow-point';\nimport { color } from '@pie-lib/render-ui';\nimport BaseArrow from './arrow';\n\nconst opts = {\n bounds: (props, { domain, range }) => {\n const { x, y } = props;\n const area = { left: x, top: y, bottom: y, right: x };\n\n return utils.bounds(area, domain, range);\n },\n anchorPoint: props => {\n const { x, y } = props;\n\n return { x, y };\n },\n fromDelta: (props, delta) => {\n return utils.point(props).add(utils.point(delta));\n }\n};\n\nconst styles = () => {\n return {\n point: {\n '& circle, & polygon': {\n cursor: 'pointer',\n fill: color.secondary()\n }\n },\n disabled: {\n '& circle, & polygon': {\n ...disabled()\n }\n },\n correct: {\n '& circle, & polygon': {\n ...correct()\n }\n },\n incorrect: {\n '& circle, & polygon': {\n ...incorrect()\n }\n }\n };\n};\n\nexport const BasePoint = withStyles(styles)(gridDraggable(opts)(RawBp));\nexport const ArrowPoint = withStyles(styles)(gridDraggable(opts)(RawArrow));\nexport const Arrow = withStyles(styles)(gridDraggable(opts)(BaseArrow));\n"],"file":"index.js"}