@pie-lib/graphing-solution-set 2.31.1 → 2.31.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/esm/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/axis/arrow.jsx","../src/utils.js","../src/axis/axes.jsx","../src/grid.jsx","../src/labels.jsx","../src/bg.jsx","../src/graph.jsx","../src/container/marks.js","../src/container/reducer.js","../src/container/actions.js","../src/tool-menu.jsx","../src/undo-redo.jsx","../src/tools/shared/types.js","../src/tools/shared/styles.js","../src/tools/polygon/polygon.jsx","../src/use-debounce.js","../src/mark-label.jsx","../src/tools/polygon/component.jsx","../src/tools/polygon/index.js","../src/coordinates-label.jsx","../src/tools/shared/point/base-point.jsx","../src/tools/shared/point/arrow-point.jsx","../src/tools/shared/arrow-head.jsx","../src/tools/shared/point/arrow.jsx","../src/tools/shared/point/index.jsx","../src/tools/shared/line/index.jsx","../src/tools/line/component.jsx","../src/tools/line/index.js","../src/tools/index.js","../src/graph-with-controls.jsx","../src/container/middleware.js","../src/container/index.jsx","../src/grid-setup.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport classNames from 'classnames';\nimport { withStyles } from '@material-ui/core/styles';\nimport { types } from '@pie-lib/plot';\n\nconst style = (theme) => ({\n root: {\n fill: `var(--arrow-color, ${theme.palette.common.black})`,\n },\n});\n\nexport class Arrow extends React.Component {\n render() {\n const { x, y, classes, className, scale } = this.props;\n const names = classNames(classes.root, className);\n let direction = this.props.direction || 'left';\n\n const xv = scale.x(x);\n const yv = scale.y(y);\n\n let transform = '';\n\n const getTransform = (x, y, rotate) => `translate(${x}, ${y}) rotate(${rotate})`;\n\n if (direction === 'left') {\n transform = getTransform(xv - 15, yv, 0);\n }\n\n if (direction === 'right') {\n transform = getTransform(xv + 15, yv, 180);\n }\n\n if (direction === 'up') {\n transform = getTransform(xv, yv - 15, 90);\n }\n\n if (direction === 'down') {\n transform = getTransform(xv, yv + 15, 270);\n }\n\n return <path d=\"m 0,0 8,-5 0,10 -8,-5\" transform={transform} className={names} />;\n }\n}\n\nArrow.propTypes = {\n y: PropTypes.number,\n x: PropTypes.number,\n direction: PropTypes.oneOf(['left', 'right', 'up', 'down']),\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n scale: types.ScaleType.isRequired,\n};\n\nArrow.defaultProps = {\n y: 0,\n x: 0,\n direction: 'left',\n};\n\nexport default withStyles(style)(Arrow);\n","import head from 'lodash/head';\nimport tail from 'lodash/tail';\nimport { utils } from '@pie-lib/plot';\nimport invariant from 'invariant';\nimport isEqual from 'lodash/isEqual';\nimport isEmpty from 'lodash/isEmpty';\nimport cloneDeep from 'lodash/cloneDeep';\n\nexport const bounds = utils.bounds;\nexport const point = utils.point;\n\n//TODO: This can be removed?\nexport const getAngleDeg = () => 0;\n//TODO: This can be removed?\nexport const arrowDimensions = () => 0;\n\nexport const getTickValues = (prop) => {\n const tickValues = [];\n let tickVal = 0;\n\n while (tickVal >= prop.min && tickValues.indexOf(tickVal) < 0) {\n tickValues.push(tickVal);\n tickVal = Math.round((tickVal - prop.step) * 10000) / 10000;\n }\n\n tickVal = Math.round(prop.step * 10000) / 10000;\n\n while (tickVal <= prop.max && tickValues.indexOf(tickVal) < 0) {\n tickValues.push(tickVal);\n tickVal = Math.round((tickVal + prop.step) * 10000) / 10000;\n }\n\n // return only ticks that are inside the min-max interval\n if (tickValues) {\n return tickValues.filter((tV) => tV >= prop.min && tV <= prop.max);\n }\n\n return [];\n};\n\nexport const countWords = (label) => {\n if (label == null || isEmpty(label)) {\n return 1;\n }\n\n const words = label.split(' ');\n return words.length;\n};\n\n// findLongestWord is also used in plot\nexport const findLongestWord = (label) => {\n let longestWord = (label || '')\n .replace(/<[^>]+>/g, '')\n .split(' ')\n .sort((a, b) => b.length - a.length);\n\n return longestWord[0].length;\n};\n\n// amountToIncreaseWidth is also used in plot\nexport const amountToIncreaseWidth = (longestWord) => {\n if (!longestWord) {\n return 0;\n }\n\n return longestWord * 10;\n};\n\nexport const polygonToArea = (points) => {\n const h = head(points);\n const area = {\n left: h.x,\n top: h.y,\n bottom: h.y,\n right: h.x,\n };\n return tail(points).reduce((a, p) => {\n a.left = Math.min(a.left, p.x);\n a.top = Math.max(a.top, p.y);\n a.bottom = Math.min(a.bottom, p.y);\n a.right = Math.max(a.right, p.x);\n return a;\n }, area);\n};\n\nexport const lineToArea = (from, to) => pointsToArea(from, to);\n\nexport const pointsToArea = (a, b) => {\n invariant(!!a && !!b, 'a or b is undefined');\n const left = Math.min(a.x, b.x);\n const top = Math.max(a.y, b.y);\n const bottom = Math.min(a.y, b.y);\n const right = Math.max(a.x, b.x);\n return { left, top, bottom, right };\n};\n\nexport const getRightestPoints = (points) => {\n const sortedPoints = cloneDeep(points);\n sortedPoints.sort((a, b) => b.x - a.x);\n\n return { a: sortedPoints[0], b: sortedPoints[1] };\n};\n\nexport const getMiddleOfTwoPoints = (a, b) => ({\n x: (a.x + b.x) / 2,\n y: (a.y + b.y) / 2,\n});\n\nexport const roundNumber = (number) => parseFloat(number.toFixed(4));\n\nexport const sameAxes = (p1, p2) =>\n p1 && p2 && (roundNumber(p1.x) === roundNumber(p2.x) || roundNumber(p1.y) === roundNumber(p2.y));\n\nexport const equalPoints = (p1, p2) =>\n p1 &&\n p2 &&\n isEqual(\n {\n x: roundNumber(p1.x),\n y: roundNumber(p1.y),\n },\n {\n x: roundNumber(p2.x),\n y: roundNumber(p2.y),\n },\n );\n\nconst getDistanceBetweenTicks = (axis, size) => {\n const { min, max, step } = axis;\n const nbOfTicks = (max - min) / step;\n\n return size / nbOfTicks;\n};\n\nexport const thinnerShapesNeeded = (graphProps) => {\n const {\n domain,\n range,\n size: { width, height },\n } = graphProps;\n\n // 14 is the default width of a point\n return getDistanceBetweenTicks(domain, width) < 14 || getDistanceBetweenTicks(range, height) < 14;\n};\n\nexport const getAdjustedGraphLimits = (graphProps) => {\n const {\n domain,\n range,\n size: { width, height },\n } = graphProps;\n const domainTicksDistance = getDistanceBetweenTicks(domain, width);\n const rangeTicksDistance = getDistanceBetweenTicks(range, height);\n\n // 15 is the distance required for the arrow to extend the graph\n const domainPadding = domain.step / (domainTicksDistance / 15);\n const rangePadding = range.step / (rangeTicksDistance / 15);\n\n return {\n domain: {\n min: domain.min - domainPadding,\n max: domain.max + domainPadding,\n },\n range: {\n min: range.min - rangePadding,\n max: range.max + rangePadding,\n },\n };\n};\n\nconst sortPoints = (array) => (array || []).sort((a, b) => a.x - b.x || a.y - b.y);\n\n// check colliniarity of 3 points (source: https://www.geeksforgeeks.org/program-check-three-points-collinear/)\nconst checkCollinearity = (a, b, c) => (a.x - b.x) * (c.y - b.y) === (c.x - b.x) * (a.y - b.y);\n\n// 2 lines are overlapping if all 4 points are collinear\nconst isSameLine = (markA, markB) =>\n checkCollinearity(markA.from, markB.from, markB.to) && checkCollinearity(markA.to, markB.from, markB.to);\n\nexport const isDuplicatedMark = (mark, marks, oldMark) => {\n const { type, building } = mark;\n\n if (building) {\n return false;\n }\n\n const filteredMarks = (marks || []).filter((m) => m.type === type && !m.building);\n const index = filteredMarks.findIndex((m) => isEqual(m, oldMark));\n\n if (index !== -1) {\n filteredMarks.splice(index, 1);\n }\n\n const duplicated = filteredMarks.find((m) => {\n if (type === 'line') {\n const { from, to } = mark;\n return (\n (equalPoints(from, m.from) && equalPoints(to, m.to)) ||\n (equalPoints(from, m.to) && equalPoints(to, m.from)) ||\n (type === 'line' && isSameLine(m, mark))\n );\n } else if (type === 'polygon') {\n return isEqual(sortPoints(cloneDeep(mark.points)), sortPoints(cloneDeep(m.points)));\n }\n });\n\n return !!duplicated;\n};\n\nexport const areArraysOfObjectsEqual = (array1, array2) => {\n // Check if both arrays have the same length\n if (array1.length !== array2.length) {\n return false;\n }\n // Iterate through each object in the arrays\n for (let i = 0; i < array1.length; i++) {\n // Get the current objects in both arrays\n const obj1 = array1[i];\n const obj2 = array2[i];\n // Check if the objects have the same number of properties\n if (Object.keys(obj1).length !== Object.keys(obj2).length) {\n return false;\n }\n // Iterate through each property in the objects\n for (const key in obj1) {\n // Check if the properties and their values are equal\n if (obj1[key] !== obj2[key]) {\n return false;\n }\n }\n }\n // If all objects are equal, the arrays are the same\n return true;\n};\n","import React from 'react';\nimport { Axis } from '@vx/axis';\nimport { types } from '@pie-lib/plot';\nimport PropTypes from 'prop-types';\nimport Arrow from './arrow';\nimport { withStyles } from '@material-ui/core';\nimport { countWords, findLongestWord, amountToIncreaseWidth, getTickValues } from '../utils';\nimport { color, Readable } from '@pie-lib/render-ui';\n\nexport const AxisPropTypes = {\n includeArrows: PropTypes.object,\n graphProps: PropTypes.object,\n};\n\nconst AxisDefaultProps = {\n includeArrows: {\n left: true,\n right: true,\n up: true,\n down: true,\n },\n};\n\nconst axisStyles = (theme) => ({\n line: {\n stroke: '#8a92c0',\n strokeWidth: 4,\n },\n arrow: {\n fill: '#8a92c0',\n },\n tick: {\n fill: color.defaults.BLACK,\n '& > line': {\n stroke: '#8a92c0',\n },\n },\n labelFontSize: {\n fontSize: theme.typography.fontSize,\n },\n axisLabelHolder: {\n padding: 0,\n margin: 0,\n textAlign: 'center',\n '* > *': {\n margin: 0,\n padding: 0,\n },\n fontSize: theme.typography.fontSize,\n },\n});\n\nconst tickLabelStyles = {\n fontFamily: 'Roboto',\n fontSize: '14px',\n cursor: 'inherit',\n};\n\nexport const sharedValues = (\n firstNegativeX,\n firstNegativeY,\n distanceFromOriginToFirstNegativeX,\n distanceFromOriginToFirstNegativeY,\n deltaAllowance,\n dy,\n) => {\n let result = [];\n\n if (\n firstNegativeX === firstNegativeY &&\n distanceFromOriginToFirstNegativeX - deltaAllowance < distanceFromOriginToFirstNegativeY &&\n distanceFromOriginToFirstNegativeY < distanceFromOriginToFirstNegativeX + deltaAllowance &&\n distanceFromOriginToFirstNegativeX - deltaAllowance < dy &&\n dy < distanceFromOriginToFirstNegativeX + deltaAllowance\n ) {\n result.push(firstNegativeX);\n }\n\n return result;\n};\n\nexport const firstNegativeValue = (interval) => (interval || []).find((element) => element < 0);\n\nexport class RawXAxis extends React.Component {\n static propTypes = {\n ...AxisPropTypes,\n classes: PropTypes.object,\n graphProps: types.GraphPropsType.isRequired,\n };\n static defaultProps = AxisDefaultProps;\n\n render() {\n const {\n includeArrows,\n classes,\n graphProps,\n columnTicksValues,\n skipValues,\n distanceFromOriginToFirstNegativeY,\n dy,\n } = this.props;\n const { scale, domain, size, range } = graphProps || {};\n\n // Having 0 as a number in columnTicksValues does not make 0 to show up\n // so we use this trick, by defining it as a string:\n const tickValues =\n (domain.labelStep || range.labelStep) && domain.min <= 0 ? ['0', ...columnTicksValues] : columnTicksValues;\n // However, the '0' has to be displayed only if other tick labels (y-axis or x-axis) are displayed\n\n const labelProps = (label) => {\n const y = skipValues && skipValues[0] === label ? distanceFromOriginToFirstNegativeY + 4 : dy;\n\n return {\n ...tickLabelStyles,\n textAnchor: 'middle',\n y: y,\n dx: label === '0' ? -10 : 0,\n dy: label === '0' ? -7 : 0,\n };\n };\n\n const necessaryRows = countWords(domain.axisLabel);\n const longestWord = findLongestWord(domain.axisLabel);\n const necessaryWidth = amountToIncreaseWidth(longestWord) + 2;\n\n return (\n <React.Fragment>\n <Axis\n axisLineClassName={classes.line}\n scale={scale.x}\n top={scale.y(0)}\n left={0}\n label={domain.label}\n rangePadding={8}\n tickClassName={classes.tick}\n tickFormat={(value) => value}\n tickLabelProps={labelProps}\n tickValues={tickValues}\n />\n {includeArrows && includeArrows.left && (\n <Arrow direction=\"left\" x={domain.min} y={0} className={classes.arrow} scale={scale} />\n )}\n {includeArrows && includeArrows.right && (\n <Arrow direction=\"right\" x={domain.max} y={0} className={classes.arrow} scale={scale} />\n )}\n {domain.axisLabel && (\n <foreignObject x={size.width + 17} y={scale.y(0) - 9} width={necessaryWidth} height={20 * necessaryRows}>\n <div dangerouslySetInnerHTML={{ __html: domain.axisLabel }} className={classes.labelFontSize} />\n </foreignObject>\n )}\n </React.Fragment>\n );\n }\n}\n\nconst XAxis = withStyles(axisStyles)(RawXAxis);\n\nexport class RawYAxis extends React.Component {\n static propTypes = {\n ...AxisPropTypes,\n graphProps: types.GraphPropsType.isRequired,\n };\n static defaultProps = AxisDefaultProps;\n\n render() {\n const { classes, includeArrows, graphProps, skipValues, rowTickValues } = this.props;\n const { scale, range, size } = graphProps || {};\n\n const necessaryWidth = range.axisLabel ? amountToIncreaseWidth(range.axisLabel.length) : 0;\n\n const customTickFormat = (value) => (skipValues && skipValues.indexOf(value) >= 0 ? '' : value);\n\n return (\n <React.Fragment>\n <Axis\n axisLineClassName={classes.line}\n orientation={'left'}\n scale={scale.y}\n top={0}\n height={size.height}\n left={scale.x(0)}\n label={range.label}\n labelProps={{ 'data-pie-readable': false }}\n rangePadding={8}\n tickLength={10}\n tickClassName={classes.tick}\n tickFormat={customTickFormat}\n tickLabelProps={(value) => {\n let digits = value.toLocaleString().replace(/[.-]/g, '').length || 1;\n\n return {\n ...tickLabelStyles,\n dy: 4,\n dx: -10 - digits * 9,\n 'data-pie-readable': false,\n };\n }}\n hideZero={true}\n tickTextAnchor={'bottom'}\n tickValues={rowTickValues}\n />\n\n {includeArrows && includeArrows.down && (\n <Arrow direction=\"down\" x={0} y={range.min} className={classes.arrow} scale={scale} />\n )}\n {includeArrows && includeArrows.up && (\n <Arrow direction=\"up\" x={0} y={range.max} className={classes.arrow} scale={scale} />\n )}\n {range.axisLabel && (\n <foreignObject x={scale.x(0) - necessaryWidth / 2} y={-33} width={necessaryWidth} height=\"20\">\n <Readable false>\n <div dangerouslySetInnerHTML={{ __html: range.axisLabel }} className={classes.axisLabelHolder} />\n </Readable>\n </foreignObject>\n )}\n </React.Fragment>\n );\n }\n}\n\nconst YAxis = withStyles(axisStyles)(RawYAxis);\n\nexport default class Axes extends React.Component {\n static propTypes = {\n ...AxisPropTypes,\n classes: PropTypes.object,\n graphProps: types.GraphPropsType.isRequired,\n };\n static defaultProps = AxisDefaultProps;\n\n xValues = () => {\n const { graphProps } = this.props;\n const { scale, domain } = graphProps || {};\n\n if (!domain || !scale) {\n return;\n }\n\n const ticks = getTickValues({ ...domain, step: domain.labelStep });\n const negative = firstNegativeValue(ticks);\n\n return {\n columnTicksValues: ticks,\n firstNegativeX: negative,\n distanceFromOriginToFirstNegativeX: Math.abs(scale.y(0) - scale.y(negative)),\n };\n };\n\n yValues = () => {\n const { graphProps } = this.props;\n const { scale, range } = graphProps || {};\n\n if (!range || !scale) {\n return;\n }\n\n const ticks = getTickValues({ ...range, step: range.labelStep });\n const negative = firstNegativeValue(ticks);\n\n return {\n rowTickValues: ticks,\n firstNegativeY: negative,\n distanceFromOriginToFirstNegativeY: Math.abs(scale.x(0) - scale.x(negative)),\n };\n };\n\n render() {\n const { graphProps } = this.props;\n const { domain, range } = graphProps || {};\n const { columnTicksValues, firstNegativeX, distanceFromOriginToFirstNegativeX } = this.xValues();\n const { rowTickValues, firstNegativeY, distanceFromOriginToFirstNegativeY } = this.yValues();\n const deltaAllowance = 6;\n const dy = 25;\n\n const skipValues = sharedValues(\n firstNegativeX,\n firstNegativeY,\n distanceFromOriginToFirstNegativeX,\n distanceFromOriginToFirstNegativeY,\n deltaAllowance,\n dy,\n );\n\n // each axis has to be displayed only if the domain & range include it\n return (\n <React.Fragment>\n {range.min <= 0 ? (\n <XAxis\n {...this.props}\n skipValues={skipValues}\n columnTicksValues={columnTicksValues}\n distanceFromOriginToFirstNegativeY={distanceFromOriginToFirstNegativeY}\n dy={dy}\n />\n ) : null}\n {domain.min <= 0 ? (\n <YAxis\n {...this.props}\n skipValues={skipValues}\n rowTickValues={rowTickValues}\n distanceFromOriginToFirstNegativeX={distanceFromOriginToFirstNegativeX}\n />\n ) : null}\n </React.Fragment>\n );\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport * as vx from '@vx/grid';\nimport { types } from '@pie-lib/plot';\nimport { withStyles } from '@material-ui/core/styles';\nimport { getTickValues } from './utils';\n\nexport class Grid extends React.Component {\n static propTypes = {\n disabled: PropTypes.bool,\n disabledAdditionalGrid: PropTypes.bool,\n classes: PropTypes.object.isRequired,\n graphProps: types.GraphPropsType.isRequired,\n };\n\n getAdditionalGridProps = (rowTickValues, columnTickValues) => {\n const {\n graphProps: {\n scale,\n size: { width, height },\n domain,\n range,\n },\n } = this.props;\n const rowTickLabelValues = getTickValues({\n ...range,\n step: range.labelStep,\n }).filter((value) => rowTickValues.includes(value));\n const columnTickLabelValues = getTickValues({\n ...domain,\n step: domain.labelStep,\n }).filter((value) => columnTickValues.includes(value));\n\n const minValueLength =\n (rowTickLabelValues.length &&\n Math.min(...rowTickLabelValues)\n .toString()\n .replace(/[.-]/g, '').length) ||\n 1;\n const maxValueLength =\n (rowTickLabelValues.length &&\n Math.max(...rowTickLabelValues)\n .toString()\n .replace(/[.-]/g, '').length) ||\n 1;\n\n const rowLabelLength = Math.max(minValueLength, maxValueLength) * 9 + 22;\n const horizontalDistanceToZero = scale.x(0);\n const verticalDistanceToZero = scale.y(0);\n const columnLabelLength = 28;\n const rowStrokeDasharray = `${horizontalDistanceToZero - rowLabelLength} ${rowLabelLength} ${width}`;\n const columnStrokeDasharray = `${verticalDistanceToZero} ${columnLabelLength} ${height}`;\n\n const displayAdditionalGrid =\n domain.labelStep > 0 &&\n range.labelStep > 0 &&\n rowTickLabelValues &&\n columnTickLabelValues &&\n rowTickLabelValues.length > 1 &&\n columnTickLabelValues.length > 1 &&\n (rowTickLabelValues.length !== rowTickValues.length || columnTickLabelValues.length !== columnTickValues.length);\n\n const filteredColumnValues = columnTickLabelValues.filter(\n (value) => value >= 0 || horizontalDistanceToZero - scale.x(value) > rowLabelLength,\n );\n const filteredRowValues = rowTickLabelValues.filter(\n (value) => value >= 0 || scale.y(value) - verticalDistanceToZero > columnLabelLength,\n );\n\n return {\n rowTickLabelValues: filteredRowValues,\n columnTickLabelValues: filteredColumnValues,\n rowStrokeDasharray,\n columnStrokeDasharray,\n displayAdditionalGrid,\n };\n };\n\n render() {\n const { graphProps } = this.props;\n const {\n scale,\n size: { height, width },\n domain,\n range,\n } = graphProps;\n const rowTickValues = getTickValues(range);\n const columnTickValues = getTickValues(domain);\n const {\n rowTickLabelValues,\n columnTickLabelValues,\n rowStrokeDasharray,\n columnStrokeDasharray,\n displayAdditionalGrid,\n } = this.getAdditionalGridProps(rowTickValues, columnTickValues);\n\n const additionalGridStroke =\n domain.labelStep * 2 === domain.step || range.labelStep * 2 === range.step ? '#9FA8DA' : '#7985CB';\n\n return (\n <>\n <vx.Grid\n innerRef={(r) => (this.grid = r)}\n xScale={scale.x}\n yScale={scale.y}\n width={width}\n height={height}\n stroke=\"#D3D3D3\"\n rowTickValues={rowTickValues}\n columnTickValues={columnTickValues}\n />\n {displayAdditionalGrid && (\n <>\n <vx.GridRows\n scale={scale.y}\n width={width}\n tickValues={rowTickLabelValues}\n stroke={additionalGridStroke}\n strokeDasharray={rowStrokeDasharray}\n />\n <vx.GridColumns\n scale={scale.x}\n height={height}\n tickValues={columnTickLabelValues}\n stroke={additionalGridStroke}\n strokeDasharray={columnStrokeDasharray}\n />\n </>\n )}\n </>\n );\n }\n}\n\nexport default withStyles(() => ({}))(Grid);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { types } from '@pie-lib/plot';\nimport { color, Readable } from '@pie-lib/render-ui';\nimport EditableHtml from '@pie-lib/editable-html';\nimport cn from 'classnames';\n\nconst rotations = {\n left: -90,\n top: 0,\n bottom: 0,\n right: 90,\n};\n\nexport const getTransform = (side, width, height) => {\n const t = (x, y, rotate) => `translate(${x}, ${y}), rotate(${rotate})`;\n\n if (side === 'left') {\n return t(-20, height / 2, rotations[side]);\n }\n if (side === 'right') {\n return t(width + 30, height / 2, rotations[side]);\n }\n if (side === 'top') {\n return t(width / 2, -20, rotations[side]);\n }\n if (side === 'bottom') {\n return t(width / 2, height + 30, rotations[side]);\n }\n};\n\nconst getY = (side, height) => {\n switch (side) {\n case 'left':\n return -height;\n case 'top':\n return -height;\n case 'right':\n return -height - 10;\n default:\n return -height + 10;\n }\n};\n\nclass RawLabel extends React.Component {\n static propTypes = {\n text: PropTypes.string,\n side: PropTypes.string,\n classes: PropTypes.object,\n disabledLabel: PropTypes.bool,\n placeholder: PropTypes.string,\n graphProps: types.GraphPropsType.isRequired,\n onChange: PropTypes.func,\n };\n\n static defaultProps = {\n onChange: () => {},\n };\n\n render() {\n const { disabledLabel, placeholder, text, side, graphProps, classes, onChange, mathMlOptions = {} } = this.props;\n const { size, domain, range } = graphProps;\n const totalHeight = (size.height || 500) + (range.padding || 0) * 2;\n const totalWidth = (size.width || 500) + (domain.padding || 0) * 2;\n\n const transform = getTransform(side, totalWidth, totalHeight);\n const width = side === 'left' || side === 'right' ? totalHeight : totalWidth;\n const height = 36;\n const y = getY(side, height);\n const finalHeight = side === 'bottom' ? height + 22 : height + 18;\n\n const activePlugins = [\n 'bold',\n 'italic',\n 'underline',\n 'strikethrough',\n 'math',\n // 'languageCharacters'\n ];\n\n return (\n <foreignObject\n x={-(width / 2)}\n y={y}\n width={width}\n height={finalHeight}\n transform={transform}\n textAnchor=\"middle\"\n >\n <Readable false>\n <EditableHtml\n className={cn(\n {\n [classes.bottomLabel]: side === 'bottom',\n [classes.disabledAxisLabel]: disabledLabel,\n },\n classes.axisLabel,\n )}\n markup={text || ''}\n onChange={onChange}\n placeholder={!disabledLabel && placeholder}\n toolbarOpts={{\n position: side === 'bottom' ? 'top' : 'bottom',\n noPadding: true,\n noBorder: true,\n }}\n activePlugins={activePlugins}\n mathMlOptions={mathMlOptions}\n />\n </Readable>\n </foreignObject>\n );\n }\n}\n\nconst Label = withStyles((theme) => ({\n label: {\n fill: color.defaults.SECONDARY,\n },\n axisLabel: {\n fontSize: theme.typography.fontSize - 2,\n textAlign: 'center',\n padding: '0 4px',\n },\n disabledAxisLabel: {\n pointerEvents: 'none',\n },\n bottomLabel: {\n marginTop: '44px',\n },\n}))(RawLabel);\n\nexport const LabelType = {\n left: PropTypes.string,\n top: PropTypes.string,\n bottom: PropTypes.string,\n right: PropTypes.string,\n};\n\nexport class Labels extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n className: PropTypes.string,\n disabledLabels: PropTypes.bool,\n placeholders: PropTypes.object,\n value: PropTypes.shape(LabelType),\n graphProps: PropTypes.object,\n onChange: PropTypes.object,\n };\n\n static defaultProps = {};\n\n onChangeLabel = (newValue, side) => {\n const { value, onChange } = this.props;\n const labels = {\n ...value,\n [side]: newValue,\n };\n\n onChange(labels);\n };\n\n render() {\n const { disabledLabels, placeholders = {}, value = {}, graphProps, mathMlOptions = {} } = this.props;\n\n return (\n <React.Fragment>\n <Label\n key=\"left\"\n side=\"left\"\n text={value.left}\n disabledLabel={disabledLabels}\n placeholder={placeholders.left}\n graphProps={graphProps}\n onChange={(value) => this.onChangeLabel(value, 'left')}\n mathMlOptions={mathMlOptions}\n />\n <Label\n key=\"top\"\n side=\"top\"\n text={value.top}\n disabledLabel={disabledLabels}\n placeholder={placeholders.top}\n graphProps={graphProps}\n onChange={(value) => this.onChangeLabel(value, 'top')}\n mathMlOptions={mathMlOptions}\n />\n <Label\n key=\"bottom\"\n side=\"bottom\"\n text={value.bottom}\n disabledLabel={disabledLabels}\n placeholder={placeholders.bottom}\n graphProps={graphProps}\n onChange={(value) => this.onChangeLabel(value, 'bottom')}\n mathMlOptions={mathMlOptions}\n />\n <Label\n key=\"right\"\n side=\"right\"\n text={value.right}\n disabledLabel={disabledLabels}\n placeholder={placeholders.right}\n graphProps={graphProps}\n onChange={(value) => this.onChangeLabel(value, 'right')}\n mathMlOptions={mathMlOptions}\n />\n </React.Fragment>\n );\n }\n}\n\nexport default Labels;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { select, mouse } from 'd3-selection';\nimport { types, utils } from '@pie-lib/plot';\nimport { getTickValues, thinnerShapesNeeded } from './utils';\n\nexport default class Bg extends React.Component {\n static propTypes = {\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n onClick: PropTypes.func.isRequired,\n graphProps: types.GraphPropsType.isRequired,\n };\n\n static defaultProps = {};\n\n componentDidMount() {\n const rect = select(this.rect);\n\n rect.on('click', this.onRectClick.bind(this, rect));\n }\n\n shouldComponentUpdate(nextProps) {\n return (\n !utils.isDomainRangeEqual(this.props.graphProps, nextProps.graphProps) ||\n this.props.width !== nextProps.width ||\n this.props.height !== nextProps.height\n );\n }\n\n getRectPadding = () => {\n const { graphProps } = this.props;\n\n return thinnerShapesNeeded(graphProps) ? 6 : 10;\n };\n\n /**\n * Note: we use d3 click + mouse to give us domain values directly.\n * Saves us having to calculate them ourselves from a MouseEvent.\n */\n onRectClick = (rect) => {\n const { onClick, graphProps } = this.props;\n const { scale } = graphProps;\n\n const padding = this.getRectPadding();\n const coords = mouse(rect._groups[0][0]);\n\n // decrease the padding from coordinates to indicate the correct point clicked\n const x = scale.x.invert(coords[0] - padding);\n const y = scale.y.invert(coords[1] - padding);\n\n const rowTicks = getTickValues(graphProps.range);\n const columnTicks = getTickValues(graphProps.domain);\n\n const closest = (ticks, value) => {\n return (\n ticks.length &&\n ticks.reduce((prev, curr) => {\n const currentDistance = Math.abs(curr - value);\n const previousDistance = Math.abs(prev - value);\n\n return currentDistance <= previousDistance ? curr : prev;\n })\n );\n };\n\n let snapped = {};\n\n if (columnTicks.indexOf(x) >= 0 && rowTicks.indexOf(y) >= 0) {\n snapped.x = x;\n snapped.y = y;\n } else {\n snapped.x = closest(columnTicks, x);\n snapped.y = closest(rowTicks, y);\n }\n\n onClick(snapped);\n };\n\n render() {\n const { width, height } = this.props;\n const padding = this.getRectPadding();\n\n // expand the size of clickable area so a small area outside the edges of the grid lines to be clickable\n return (\n <rect\n ref={(rect) => (this.rect = rect)}\n transform={`translate(-${padding}, -${padding})`}\n fill=\"red\"\n fillOpacity=\"0.0\"\n width={width + padding * 2}\n height={height + padding * 2}\n />\n );\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport isEqual from 'lodash/isEqual';\nimport cloneDeep from 'lodash/cloneDeep';\nimport { Root, types, createGraphProps } from '@pie-lib/plot';\nimport debug from 'debug';\n\nimport { Axes, AxisPropTypes } from './axis';\nimport Grid from './grid';\nimport { LabelType } from './labels';\nimport Bg from './bg';\nimport { isDuplicatedMark, areArraysOfObjectsEqual } from './utils';\n\nconst log = debug('pie-lib:graphing-solution-set:graph');\n\nexport const graphPropTypes = {\n axesSettings: PropTypes.shape(AxisPropTypes),\n backgroundMarks: PropTypes.array,\n className: PropTypes.string,\n collapsibleToolbar: PropTypes.bool,\n collapsibleToolbarTitle: PropTypes.string,\n disabledLabels: PropTypes.bool,\n disabledTitle: PropTypes.bool,\n domain: types.DomainType,\n labels: PropTypes.shape(LabelType),\n labelModeEnabled: PropTypes.bool,\n coordinatesOnHover: PropTypes.bool,\n marks: PropTypes.array,\n onChangeLabels: PropTypes.func,\n onChangeMarks: PropTypes.func,\n onChangeTitle: PropTypes.func,\n range: types.DomainType,\n size: PropTypes.shape({\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n }),\n showLabels: PropTypes.bool,\n showPixelGuides: PropTypes.bool,\n showTitle: PropTypes.bool,\n title: PropTypes.string,\n tools: PropTypes.array,\n};\n\nconst getMaskSize = (size) => ({\n x: -23,\n y: -23,\n width: size.width + 46,\n height: size.height + 46,\n});\n\nexport const removeBuildingToolIfCurrentToolDiffers = ({ marks, currentTool }) => {\n const buildingMark = marks.filter((m) => m.building)[0];\n let newMarks = cloneDeep(marks);\n\n if (buildingMark && currentTool && buildingMark.type !== currentTool.type) {\n const index = newMarks.findIndex((m) => isEqual(m, buildingMark));\n\n if (index >= 0) {\n newMarks.splice(index, 1);\n }\n }\n\n return newMarks;\n};\n\nexport class Graph extends React.Component {\n constructor(props) {\n super(props);\n this.maskUid = this.generateMaskId();\n }\n\n static propTypes = {\n ...graphPropTypes,\n currentTool: PropTypes.object,\n };\n\n static defaultProps = {\n onChangeMarks: () => {},\n disabledLabels: false,\n disabledTitle: false,\n };\n\n state = {};\n\n generateMaskId() {\n return 'graph-' + (Math.random() * 10000).toFixed();\n }\n\n componentDidMount = () => this.setState({ labelNode: this.labelNode });\n\n changeMark = (oldMark, newMark) => {\n const { onChangeMarks, marks, gssLineData } = this.props;\n\n if (gssLineData?.selectedTool === 'solutionSet') {\n return;\n }\n\n let newMarks = cloneDeep(marks);\n\n const index = newMarks.findIndex((m) => isEqual(m, oldMark));\n\n if (index >= 0 && !isDuplicatedMark(newMark, marks, oldMark)) {\n newMarks.splice(index, 1, newMark);\n\n onChangeMarks(newMarks);\n }\n };\n\n completeMark = (markData) => {\n const { currentTool, marks } = this.props;\n const buildingMark = marks.filter((m) => m.building)[0];\n\n if (!buildingMark || !currentTool) return;\n\n const updatedMark = currentTool.complete(buildingMark, markData);\n\n this.updateMarks(buildingMark, updatedMark);\n };\n\n updateMarks = (existing, update, addIfMissing = false) => {\n const { onChangeMarks, marks } = this.props;\n let newMarks = cloneDeep(marks);\n\n if (!update || (!update.building && isDuplicatedMark(update, marks))) {\n return;\n }\n\n const index = newMarks.findIndex((m) => isEqual(m, existing));\n\n if (index >= 0) {\n newMarks.splice(index, 1, update);\n\n onChangeMarks(newMarks);\n } else if (addIfMissing) {\n onChangeMarks([...newMarks, update]);\n }\n };\n\n getComponent = (mark) => {\n if (!mark) return null;\n\n const tool = (this.props.tools || []).find((t) => t.type === mark.type);\n\n return (tool && tool.Component) || null;\n };\n\n onBgClick = (point) => {\n const { x, y } = point || {};\n const { labelModeEnabled, currentTool, marks, gssLineData, onSolutionSetSelected } = this.props;\n if (gssLineData) {\n if (gssLineData.selectedTool === 'solutionSet') {\n onSolutionSetSelected(point);\n return;\n }\n if (\n gssLineData.numberOfLines === 1 &&\n gssLineData.selectedTool === 'lineA' &&\n marks.length === 1 &&\n !marks[0].building\n ) {\n return;\n }\n if (gssLineData.numberOfLines === 2 && gssLineData.selectedTool === 'lineA' && marks.length === 2) {\n return;\n }\n if (\n gssLineData.numberOfLines === 2 &&\n gssLineData.selectedTool === 'lineA' &&\n marks.length === 1 &&\n !marks[0].building\n ) {\n return;\n }\n if (\n gssLineData.numberOfLines === 2 &&\n gssLineData.selectedTool === 'lineB' &&\n marks.length === 2 &&\n !marks[1].building\n ) {\n return;\n }\n }\n if (labelModeEnabled || !currentTool || [null, undefined].includes(x) || [null, undefined].includes(y)) {\n return;\n }\n\n log('[onBgClick] x,y: ', x, y);\n\n const buildingMark = marks.filter((m) => m.building)[0];\n let updatedMark;\n\n // if the building mark has a different type, we just replace it\n if (buildingMark && currentTool && buildingMark.type === currentTool.type) {\n updatedMark = currentTool.addPoint({ x, y }, { ...buildingMark });\n } else {\n updatedMark = currentTool.addPoint({ x, y }, undefined);\n }\n\n this.updateMarks(buildingMark, updatedMark, true);\n };\n\n render() {\n const {\n axesSettings,\n currentTool,\n coordinatesOnHover,\n size,\n disabledLabels,\n disabledTitle,\n domain,\n backgroundMarks,\n range,\n title,\n labels,\n labelModeEnabled,\n labelsPlaceholders,\n showLabels,\n showPixelGuides,\n showTitle,\n titlePlaceholder,\n onChangeLabels,\n onChangeTitle,\n mathMlOptions = {},\n gssLineData,\n disabled,\n } = this.props;\n let { marks } = this.props;\n\n const graphProps = createGraphProps(domain, range, size, () => this.rootNode);\n\n const maskSize = getMaskSize(size);\n let common = { graphProps, labelModeEnabled, gssLineData };\n\n marks = removeBuildingToolIfCurrentToolDiffers({ marks: marks || [], currentTool });\n let solutionSet = marks.filter((mark) => mark.type === 'polygon');\n if (gssLineData && gssLineData.selectedTool === 'solutionSet') {\n gssLineData.sections.forEach((section) => {\n if (solutionSet.length === 0 || !areArraysOfObjectsEqual(section, solutionSet[0].points)) {\n let polygon = {\n type: 'polygon',\n building: false,\n closed: true,\n points: section,\n isSolution: false,\n };\n if (!disabled) marks.push(polygon);\n }\n });\n }\n //Adjusted layering of added svg elements so that polygons will be added first and lines will be added second\n let newMarks = [];\n newMarks.push(...marks.filter((mark) => mark.type === 'polygon'));\n newMarks.push(...marks.filter((mark) => mark.type === 'line'));\n\n return (\n <Root\n rootRef={(r) => (this.rootNode = r)}\n disabledTitle={disabledTitle}\n disabledLabels={disabledLabels}\n labels={labels}\n labelsPlaceholders={labelsPlaceholders || {}}\n showPixelGuides={showPixelGuides}\n showLabels={showLabels}\n showTitle={showTitle}\n title={title}\n titlePlaceholder={titlePlaceholder}\n onChangeTitle={onChangeTitle}\n onChangeLabels={onChangeLabels}\n mathMlOptions={mathMlOptions}\n {...common}\n >\n <g\n transform={\n domain && domain.padding && domain.range ? `translate(${domain.padding}, ${range.padding})` : undefined\n }\n >\n <Grid {...common} />\n <Axes {...axesSettings} {...common} />\n <Bg {...size} onClick={this.onBgClick} {...common} />\n <mask id={`${this.maskUid}`}>\n <rect {...maskSize} fill=\"white\" /> {/* TODO hardcoded color */}\n </mask>\n\n <g id=\"marks\" mask={`url('#${this.maskUid}')`}>\n {(backgroundMarks || []).map((m, index) => {\n const Component = this.getComponent(m);\n const markType = m.type;\n\n return (\n <Component\n key={`${markType}-${index}-bg`}\n mark={{ ...m, disabled: true, isBackground: true }}\n labelNode={this.state.labelNode}\n onClick={this.onBgClick}\n {...common}\n />\n );\n })}\n\n {newMarks.map((m, index) => {\n const Component = this.getComponent(m);\n const markType = m.type;\n\n return (\n <Component\n key={`${markType}-${index}`}\n mark={m}\n coordinatesOnHover={coordinatesOnHover}\n onChange={this.changeMark}\n onComplete={this.completeMark}\n onClick={this.onBgClick}\n onDragStart={this.startDrag}\n onDragStop={this.stopDrag}\n labelNode={this.state.labelNode}\n isToolActive={currentTool && markType === currentTool.type}\n {...common}\n />\n );\n })}\n <foreignObject\n ref={(labelNode) => (this.labelNode = labelNode)}\n x=\"0\"\n y=\"0\"\n {...size}\n style={{ pointerEvents: 'none', fontSize: '14px' }}\n />\n </g>\n </g>\n </Root>\n );\n }\n}\n\nexport default Graph;\n","const marks = (state = [], action) => {\n switch (action.type) {\n case 'CHANGE_MARKS':\n if (Array.isArray(action.marks)) {\n return action.marks;\n } else {\n throw new Error('marks must be an array');\n }\n default:\n return state;\n }\n};\n\nexport default marks;\n","import { combineReducers } from 'redux';\nimport marks from './marks';\nimport undoable from 'redux-undo';\n\nexport default () => combineReducers({ marks: undoable(marks, { debug: false }) });\n","export const addMark = () => ({\n type: 'ADD_MARK',\n});\n\nexport const changeMarks = (marks) => ({\n type: 'CHANGE_MARKS',\n marks,\n});\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Typography, Button } from '@material-ui/core';\nimport Radio from '@material-ui/core/Radio';\nimport { withStyles } from '@material-ui/core/styles';\n\nexport class ToolMenu extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n gssLineData: PropTypes.object,\n disabled: PropTypes.bool,\n onChange: PropTypes.func,\n };\n\n render() {\n let { classes, gssLineData, disabled } = this.props;\n\n return (\n <div className={classes.selectLineRadioGroup}>\n <div className={classes.radioFieldOuter}>\n <div className={classes.radioFieldInner}>\n <Radio\n name={'select-line-radio-buttons'}\n onChange={this.onChangeRadioValue}\n value={'lineA'}\n disabled={!!disabled}\n checked={gssLineData.selectedTool === 'lineA'}\n className={classes.lineTypeRadio}\n />\n <Typography className={classes.lineNameFont}>Line A</Typography>\n </div>\n <div className={classes.radioFieldButtons}>\n {gssLineData.lineA.lineType === 'Solid' ? (\n <Button\n size={'small'}\n variant={'contained'}\n color={'primary'}\n onClick={() => this.lineTypeChange('A', 'Solid')}\n className={disabled ? classes.lineTypeButtonLeftSelectedDisabled : classes.lineTypeButtonLeftSelected}\n >\n &#x2714; Solid\n </Button>\n ) : (\n <Button\n size={'small'}\n variant={'contained'}\n disabled={!!disabled}\n onClick={() => this.lineTypeChange('A', 'Solid')}\n className={\n disabled ? classes.lineTypeButtonLeftUnSelectedDisabled : classes.lineTypeButtonLeftUnSelected\n }\n >\n Solid\n </Button>\n )}\n {gssLineData.lineA.lineType === 'Dashed' ? (\n <Button\n size={'small'}\n variant={'contained'}\n color={'primary'}\n onClick={() => this.lineTypeChange('A', 'Dashed')}\n className={disabled ? classes.lineTypeButtonRightSelectedDisabled : classes.lineTypeButtonRightSelected}\n >\n &#x2714; Dashed\n </Button>\n ) : (\n <Button\n size={'small'}\n variant={'contained'}\n disabled={!!disabled}\n onClick={() => this.lineTypeChange('A', 'Dashed')}\n className={\n disabled ? classes.lineTypeButtonRightUnSelectedDisabled : classes.lineTypeButtonRightUnSelected\n }\n >\n Dashed\n </Button>\n )}\n </div>\n </div>\n {gssLineData.numberOfLines === 2 ? (\n <div className={classes.radioFieldOuter}>\n <div className={classes.radioFieldInner}>\n <Radio\n name={'select-line-radio-buttons'}\n onChange={this.onChangeRadioValue}\n value={'lineB'}\n disabled={!!disabled}\n checked={gssLineData.selectedTool === 'lineB'}\n className={classes.lineTypeRadio}\n />\n <Typography className={classes.lineNameFont}>Line B</Typography>\n </div>\n <div className={classes.radioFieldButtons}>\n {gssLineData.lineB.lineType === 'Solid' ? (\n <Button\n size={'small'}\n variant={'contained'}\n color={'primary'}\n onClick={() => this.lineTypeChange('B', 'Solid')}\n className={disabled ? classes.lineTypeButtonLeftSelectedDisabled : classes.lineTypeButtonLeftSelected}\n >\n &#x2714; Solid\n </Button>\n ) : (\n <Button\n size={'small'}\n variant={'contained'}\n disabled={!!disabled}\n onClick={() => this.lineTypeChange('B', 'Solid')}\n className={\n disabled ? classes.lineTypeButtonLeftUnSelectedDisabled : classes.lineTypeButtonLeftUnSelected\n }\n >\n Solid\n </Button>\n )}\n {gssLineData.lineB.lineType === 'Dashed' ? (\n <Button\n size={'small'}\n variant={'contained'}\n color={'primary'}\n onClick={() => this.lineTypeChange('B', 'Dashed')}\n className={\n disabled ? classes.lineTypeButtonRightSelectedDisabled : classes.lineTypeButtonRightSelected\n }\n >\n &#x2714; Dashed\n </Button>\n ) : (\n <Button\n size={'small'}\n variant={'contained'}\n disabled={!!disabled}\n onClick={() => this.lineTypeChange('B', 'Dashed')}\n className={\n disabled ? classes.lineTypeButtonRightUnSelectedDisabled : classes.lineTypeButtonRightUnSelected\n }\n >\n Dashed\n </Button>\n )}\n </div>\n </div>\n ) : null}\n <div className={classes.radioFieldOuter}>\n <div className={classes.radioFieldInner}>\n <Radio\n name={'select-line-radio-buttons'}\n onChange={this.onChangeRadioValue}\n value={'solutionSet'}\n disabled={!!disabled}\n checked={gssLineData.selectedTool === 'solutionSet'}\n className={classes.lineTypeRadio}\n />\n <Typography className={classes.lineNameFont}>Solution Set</Typography>\n </div>\n </div>\n </div>\n );\n }\n\n onChangeRadioValue = (event) => {\n let { gssLineData, onChange } = this.props;\n let oldSelectedTool = gssLineData.selectedTool;\n gssLineData.selectedTool = event.target.value;\n onChange(gssLineData, oldSelectedTool);\n };\n\n lineTypeChange = (line, type) => {\n let { gssLineData, onChange } = this.props;\n let oldSelectedTool = gssLineData.selectedTool;\n gssLineData[`line${line}`].lineType = type;\n onChange(gssLineData, oldSelectedTool);\n };\n}\n\nconst styles = (theme) => ({\n radioButtonClass: {},\n selectLineRadioGroup: {\n display: 'flex',\n flexWrap: 'wrap',\n flexDirection: 'row',\n },\n radioFieldInner: {\n display: 'flex',\n flexWrap: 'wrap',\n flexDirection: 'row',\n alignItems: 'center',\n },\n radioFieldOuter: {\n display: 'flex',\n flexWrap: 'wrap',\n flexDirection: 'column',\n },\n radioFieldButtons: {\n display: 'flex',\n flexWrap: 'wrap',\n flexDirection: 'row',\n padding: '0 .9rem',\n },\n lineTypeText: {\n marginLeft: '.7rem',\n },\n lineNameFont: {\n fontWeight: 'bold',\n padding: '0 5px 0 0',\n },\n lineTypeButtonLeftSelected: {\n textTransform: 'none',\n border: '1px solid #3E4EB1',\n borderRadius: '0',\n backgroundColor: '#3E4EB1 !important',\n borderTopLeftRadius: '4px',\n borderBottomLeftRadius: '4px',\n color: '#FFFFFF !important',\n },\n lineTypeButtonLeftUnSelected: {\n textTransform: 'none',\n border: '1px solid #3E4EB1',\n borderRadius: '0',\n backgroundColor: '#FFFFFF !important',\n borderTopLeftRadius: '4px',\n borderBottomLeftRadius: '4px',\n color: '#3E4EB1 !important',\n },\n lineTypeButtonRightSelected: {\n textTransform: 'none',\n border: '1px solid #3E4EB1',\n borderRadius: '0',\n backgroundColor: '#3E4EB1 !important',\n borderTopRightRadius: '4px',\n borderBottomRightRadius: '4px',\n color: '#FFFFFF !important',\n },\n lineTypeButtonRightUnSelected: {\n textTransform: 'none',\n border: '1px solid #3E4EB1',\n borderRadius: '0',\n backgroundColor: '#FFFFFF !important',\n borderTopRightRadius: '4px',\n borderBottomRightRadius: '4px',\n color: '#3E4EB1 !important',\n },\n lineTypeRadio: {\n color: '#000000 !important',\n },\n lineTypeButtonLeftSelectedDisabled: {\n textTransform: 'none',\n border: '1px solid #3E4EB1',\n borderRadius: '0',\n backgroundColor: '#3E4EB1 !important',\n borderTopLeftRadius: '4px',\n borderBottomLeftRadius: '4px',\n color: '#FFFFFF !important',\n cursor: 'default',\n pointerEvents: 'none',\n },\n lineTypeButtonLeftUnSelectedDisabled: {\n textTransform: 'none',\n border: '1px solid #3E4EB1',\n borderRadius: '0',\n backgroundColor: '#FFFFFF !important',\n borderTopLeftRadius: '4px',\n borderBottomLeftRadius: '4px',\n color: '#3E4EB1 !important',\n cursor: 'default',\n pointerEvents: 'none',\n },\n lineTypeButtonRightSelectedDisabled: {\n textTransform: 'none',\n border: '1px solid #3E4EB1',\n borderRadius: '0',\n backgroundColor: '#3E4EB1 !important',\n borderTopRightRadius: '4px',\n borderBottomRightRadius: '4px',\n color: '#FFFFFF !important',\n cursor: 'default',\n pointerEvents: 'none',\n },\n lineTypeButtonRightUnSelectedDisabled: {\n textTransform: 'none',\n border: '1px solid #3E4EB1',\n borderRadius: '0',\n backgroundColor: '#FFFFFF !important',\n borderTopRightRadius: '4px',\n borderBottomRightRadius: '4px',\n color: '#3E4EB1 !important',\n cursor: 'default',\n pointerEvents: 'none',\n },\n});\n\nexport default withStyles(styles)(ToolMenu);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport Button from '@material-ui/core/Button';\nimport { withStyles } from '@material-ui/core';\nimport { color } from '@pie-lib/render-ui';\nimport Translator from '@pie-lib/translator';\n\nconst { translator } = Translator;\n\nexport class UndoRedo extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n className: PropTypes.string,\n onReset: PropTypes.func.isRequired,\n language: PropTypes.string,\n };\n static defaultProps = {};\n\n render() {\n const { classes, className, onReset = false, language } = this.props;\n return (\n <div className={classNames(className)}>\n <Button classes={{ root: classes.button }} onClick={() => onReset()}>\n {translator.t('graphing.reset', { lng: language })}\n </Button>\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n button: {\n color: color.text(),\n fontWeight: 'bold',\n marginBottom: theme.spacing.unit / 2,\n '&:not(:last-of-type)': {\n marginRight: theme.spacing.unit / 2,\n },\n },\n undoRedoDiv: {\n display: 'flex',\n flexDirection: 'row',\n },\n});\n\nexport default withStyles(styles)(UndoRedo);\n","import PropTypes from 'prop-types';\n\nexport const ToolPropTypeFields = {\n mark: PropTypes.any,\n onChange: PropTypes.func,\n onDragStart: PropTypes.func,\n onDragStop: PropTypes.func,\n};\n","import { color } from '@pie-lib/render-ui';\n\nexport const disabled = (key = 'fill') => ({\n [key]: color.disabled(),\n pointerEvents: 'none',\n});\n\nexport const correct = (key = 'fill') => ({\n [key]: color.correct(),\n pointerEvents: 'none',\n});\nexport const incorrect = (key = 'fill') => ({\n [key]: color.incorrect(),\n pointerEvents: 'none',\n});\n\nexport const missing = (key = 'fill') => ({\n [key]: color.missing(),\n pointerEvents: 'none',\n});\n","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 isSolution: 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 { points, classes, className, correctness, graphProps, closed, isSolution, ...rest } = 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(isSolution ? classes.gssSolution : classes.gssClosed, classes[correctness], className)}\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.defaults.SECONDARY_LIGHT,\n },\n open: {\n fill: fade(theme.palette.primary.light, 0.0), // TODO hardcoded color\n strokeWidth: 2,\n stroke: color.defaults.SECONDARY_LIGHT,\n pointerEvents: 'none',\n },\n gssClosed: {\n fill: 'transparent',\n '&:hover': {\n fill: 'rgb(0, 0, 0, 0.25)',\n },\n },\n gssSolution: {\n fill: 'rgb(60, 73, 150, 0.6)',\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","import { useState, useEffect } from 'react';\n\nexport const useDebounce = (value, delay) => {\n const [debouncedValue, setDebouncedValue] = useState(value);\n\n useEffect(() => {\n const handler = setTimeout(() => {\n setDebouncedValue(value);\n }, delay);\n return () => clearTimeout(handler);\n }, [value]);\n return debouncedValue;\n};\n","import React, { useState, useCallback, useEffect } from 'react';\nimport cn from 'classnames';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport AutosizeInput from 'react-input-autosize';\nimport { useDebounce } from './use-debounce';\nimport { types } from '@pie-lib/plot';\nimport { color } from '@pie-lib/render-ui';\n\nconst styles = (theme) => ({\n input: {\n float: 'right',\n padding: theme.spacing.unit * 0.5,\n fontFamily: theme.typography.fontFamily,\n fontSize: theme.typography.fontSize,\n border: `solid 1px ${color.defaults.SECONDARY}`,\n borderRadius: '3px',\n color: color.defaults.PRIMARY_DARK,\n },\n disabled: {\n border: `solid 1px ${color.defaults.PRIMARY_DARK}`,\n background: theme.palette.background.paper,\n },\n disabledMark: {\n border: `solid 1px ${color.disabled()}`,\n background: theme.palette.background.paper,\n color: color.disabled(),\n },\n});\n\nexport const position = (graphProps, mark, rect) => {\n rect = rect || { width: 0, height: 0 };\n const { scale, domain, range } = graphProps;\n const shift = 10;\n\n const rightEdge = scale.x(mark.x) + rect.width + shift;\n const bottomEdge = scale.y(mark.y) + rect.height + shift;\n\n const h = rightEdge >= scale.x(domain.max) ? 'left' : 'right';\n const v = bottomEdge >= scale.y(range.min) ? 'top' : 'bottom';\n\n return `${v}-${h}`;\n};\n\nexport const coordinates = (graphProps, mark, rect, position) => {\n const { scale } = graphProps;\n const shift = 10;\n rect = rect || { width: 0, height: 0 };\n\n switch (position) {\n case 'bottom-right': {\n return { left: scale.x(mark.x) + shift, top: scale.y(mark.y) + shift };\n }\n case 'bottom-left': {\n return { left: scale.x(mark.x) - shift - rect.width, top: scale.y(mark.y) + shift };\n }\n case 'top-left': {\n return {\n left: scale.x(mark.x) - shift - rect.width,\n top: scale.y(mark.y) - shift - rect.height,\n };\n }\n case 'top-right': {\n return {\n left: scale.x(mark.x) + shift,\n top: scale.y(mark.y) - shift - rect.height,\n };\n }\n }\n};\n\nexport const MarkLabel = (props) => {\n const [input, setInput] = useState(null);\n const _ref = useCallback((node) => setInput(node));\n\n const { mark, graphProps, classes, disabled, inputRef: externalInputRef, theme } = props;\n\n const [label, setLabel] = useState(mark.label);\n\n const onChange = (e) => setLabel(e.target.value);\n\n const debouncedLabel = useDebounce(label, 200);\n\n // useState only sets the value once, to synch props to state need useEffect\n useEffect(() => {\n setLabel(mark.label);\n }, [mark.label]);\n\n // pick up the change to debouncedLabel and save it\n useEffect(() => {\n if (typeof debouncedLabel === 'string' && debouncedLabel !== mark.label) {\n props.onChange(debouncedLabel);\n }\n }, [debouncedLabel]);\n\n const rect = input ? input.getBoundingClientRect() : { width: 0, height: 0 };\n const pos = position(graphProps, mark, rect);\n const leftTop = coordinates(graphProps, mark, rect, pos);\n\n const style = {\n position: 'fixed',\n pointerEvents: 'auto',\n ...leftTop,\n };\n\n const disabledInput = disabled || mark.disabled;\n\n return (\n <AutosizeInput\n inputRef={(r) => {\n _ref(r);\n externalInputRef(r);\n }}\n disabled={disabledInput}\n inputClassName={cn(classes.input, {\n [classes.disabled]: disabled,\n [classes.disabledMark]: mark.disabled,\n })}\n value={label}\n style={style}\n onChange={onChange}\n />\n );\n};\n\nMarkLabel.propTypes = {\n disabled: PropTypes.bool,\n onChange: PropTypes.func,\n graphProps: types.GraphPropsType,\n classes: PropTypes.object,\n inputRef: PropTypes.func,\n mark: PropTypes.object,\n theme: PropTypes.object,\n};\n\nexport default withStyles(styles, { withTheme: true })(MarkLabel);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { ToolPropTypeFields } from '../shared/types';\nimport chunk from 'lodash/chunk';\nimport initial from 'lodash/initial';\nimport debug from 'debug';\nimport DraggablePolygon from './polygon';\nimport { types } 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-solution-set:polygon');\n\nexport const buildLines = (points, closed) => {\n const expanded = points.reduce((acc, p, index) => {\n acc.push({ ...p, index });\n\n const isLast = index === points.length - 1;\n const next = isLast ? 0 : index + 1;\n\n acc.push({ ...points[next], index: next });\n\n return acc;\n }, []);\n\n const all = chunk(expanded, 2).map(([from, to]) => {\n return { from, to };\n });\n\n return closed ? all : initial(all);\n};\n\nexport const swap = (arr, ...rest) => {\n const pairs = chunk(rest, 2);\n\n return pairs.reduce(\n (acc, pr) => {\n if (pr.length === 2) {\n let [e, replacement] = pr;\n\n invariant(Number.isFinite(e.index), 'Index must be defined');\n\n const index = e.index;\n // const i = acc.findIndex(pt => pt.x === e.x && pt.y === e.y);\n\n if (index >= 0) {\n acc.splice(index, 1, replacement);\n\n return acc;\n } else {\n return acc;\n }\n } else {\n return acc;\n }\n },\n [...arr],\n );\n};\n\nexport class RawBaseComponent extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n className: PropTypes.string,\n disabled: PropTypes.bool,\n correctness: PropTypes.string,\n points: PropTypes.arrayOf(types.PointType),\n closed: PropTypes.bool,\n isSolution: PropTypes.bool,\n coordinatesOnHover: PropTypes.bool,\n onChange: PropTypes.func.isRequired,\n onClosePolygon: PropTypes.func.isRequired,\n onDragStart: PropTypes.func,\n onDragStop: PropTypes.func,\n onClick: PropTypes.func,\n graphProps: types.GraphPropsType.isRequired,\n isToolActive: PropTypes.bool,\n middle: PropTypes.object,\n labelNode: PropTypes.object,\n labelModeEnabled: PropTypes.bool,\n onChangeLabelProps: PropTypes.func,\n onChangeProps: PropTypes.func,\n };\n\n static defaultProps = {\n points: [],\n };\n\n dragPoint = (index, from, to) => {\n log('[dragPoint] from, to:', from, to);\n const { onChange, points } = this.props;\n const update = [...points];\n const overlapPoint = !!(points || []).find((p) => equalPoints(p, to));\n\n if (equalPoints(from, to) || overlapPoint) {\n return;\n }\n\n if (points[index].label) {\n to.label = points[index].label;\n }\n\n update.splice(index, 1, to);\n onChange(update);\n };\n\n dragLine = (existing, next) => {\n log('[dragLine]: ', existing, next);\n const { onChange } = this.props;\n\n if (existing.from.label) {\n next.from.label = existing.from.label;\n }\n\n if (existing.to.label) {\n next.to.label = existing.to.label;\n }\n\n const points = swap(this.props.points, existing.from, next.from, existing.to, next.to);\n onChange(points);\n };\n\n dragPoly = (existing, next) => {\n log('[dragPoly] ', existing, next);\n const { onChange } = this.props;\n\n next.forEach((point, index) => {\n if (existing[index].label) {\n next[index].label = existing[index].label;\n }\n });\n\n onChange(next);\n };\n\n close = () => {\n const { points, onClosePolygon } = this.props;\n log('[close] ...');\n\n if (points.length >= 3) {\n onClosePolygon();\n } else {\n log('[close] - nope');\n }\n };\n\n labelChange = (point, index) => {\n const { points, onChangeProps } = this.props;\n const updatedPoint = { ...point };\n\n if (!point.label || isEmpty(point.label)) {\n delete updatedPoint.label;\n }\n\n const update = [...points];\n\n update.splice(index, 1, updatedPoint);\n onChangeProps(update);\n };\n\n clickPoint = (point, index, data) => {\n const {\n closed,\n disabled,\n onClick,\n isToolActive,\n labelModeEnabled,\n onChangeProps,\n onChangeLabelProps,\n points,\n } = this.props;\n\n if (labelModeEnabled) {\n if (disabled) {\n return;\n }\n\n if (points && index === points.length) {\n const { a, b } = getRightestPoints(points);\n const middle = { label: '', ...point, ...getMiddleOfTwoPoints(a, b) };\n\n onChangeLabelProps(middle);\n } else {\n const update = [...points];\n\n update.splice(index, 1, { label: '', ...point });\n onChangeProps(update);\n }\n\n if (this.input[index]) {\n this.input[index].focus();\n }\n\n return;\n }\n\n if (isToolActive && !closed && index === 0) {\n this.close();\n return;\n }\n\n onClick(point || data);\n };\n\n // IMPORTANT, do not remove\n input = {};\n\n render() {\n const {\n closed,\n graphProps,\n onChangeLabelProps,\n points,\n middle,\n labelNode,\n labelModeEnabled,\n isSolution = false,\n } = this.props;\n const polygonLabelIndex = (points && points.length) || 0;\n if (labelNode && middle && middle.hasOwnProperty('label')) {\n ReactDOM.createPortal(\n <MarkLabel\n inputRef={(r) => (this.input[polygonLabelIndex] = r)}\n disabled={!labelModeEnabled}\n mark={middle}\n graphProps={graphProps}\n onChange={(label) => onChangeLabelProps({ ...middle, label })}\n />,\n labelNode,\n );\n }\n return (\n <g>\n <React.Fragment>\n <DraggablePolygon\n points={points}\n closed={closed}\n isSolution={isSolution}\n graphProps={graphProps}\n onClick={this.clickPoint.bind(this, middle, polygonLabelIndex)}\n />\n </React.Fragment>\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\n mark.middle = { ...middle, ...getMiddleOfTwoPoints(a, b) };\n }\n\n this.setState({ mark });\n };\n\n changeProps = (points) => {\n const mark = { ...this.props.mark, points };\n\n this.props.onChange(this.props.mark, mark);\n };\n\n changeLabelProps = (point) => {\n const { mark, onChange } = this.props;\n const middle = { ...mark.middle, ...point };\n\n onChange(mark, { ...mark, middle });\n };\n\n closePolygon = () => {\n log('[closePolygon] ...');\n const { onComplete, mark } = this.props;\n const update = { ...mark, closed: true };\n\n onComplete(mark, update);\n };\n\n dragStart = () => this.setState({ mark: this.props.mark });\n\n dragStop = () => {\n const { onChange } = this.props;\n const m = { ...this.state.mark };\n\n this.setState({ mark: undefined }, () => {\n onChange(this.props.mark, m);\n });\n };\n\n render() {\n const { coordinatesOnHover, mark, graphProps, onClick, isToolActive, labelNode, labelModeEnabled } = 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","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","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { types } from '@pie-lib/plot';\nimport { color } from '@pie-lib/render-ui';\nimport { withStyles } from '@material-ui/core/styles';\nimport InputBase from '@material-ui/core/InputBase';\nimport { roundNumber } from './utils';\n\nconst styles = (theme) => ({\n input: {\n fontFamily: theme.typography.fontFamily,\n fontSize: theme.typography.fontSize,\n borderRadius: '8px',\n background: theme.palette.common.white,\n color: color.defaults.BLACK,\n },\n inputLabel: {\n padding: 0,\n },\n});\n\nexport const getLabelPosition = (graphProps, x, y, labelLength) => {\n const { scale, domain, range } = graphProps;\n // treat corner cases for maximum and minimum\n const topShift = y === range.min ? 16 : y === range.max ? 0 : 8;\n const leftShift = 10;\n const rightEdge = scale.x(x) + labelLength + leftShift;\n\n if (rightEdge >= scale.x(domain.max)) {\n return {\n left: scale.x(x) - leftShift - labelLength,\n top: scale.y(y) - topShift,\n };\n }\n\n return {\n left: scale.x(x) + leftShift,\n top: scale.y(y) - topShift,\n };\n};\n\nexport const CoordinatesLabel = ({ x, y, graphProps, classes }) => {\n const label = `(${roundNumber(x)}, ${roundNumber(y)})`;\n const labelLength = (label.length || 0) * 6;\n const labelPosition = getLabelPosition(graphProps, x, y, labelLength);\n\n const style = {\n position: 'absolute',\n pointerEvents: 'auto',\n width: labelLength,\n padding: 0,\n ...labelPosition,\n };\n\n return (\n <InputBase\n style={style}\n classes={{ input: classes.inputLabel }}\n className={classes.input}\n value={label}\n inputProps={{ ariaLabel: 'naked' }}\n />\n );\n};\n\nCoordinatesLabel.propTypes = {\n graphProps: types.GraphPropsType,\n classes: PropTypes.object,\n x: PropTypes.number,\n y: PropTypes.number,\n};\n\nexport default withStyles(styles)(CoordinatesLabel);\n","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';\nimport { color } from '@pie-lib/render-ui';\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 // we need to remove style from props\n // eslint-disable-next-line no-unused-vars,react/prop-types\n style,\n onClick,\n // Refactored RawBp component by isolating onTouchStart and onTouchEnd handlers to the outer circle, resolving erratic touch event behavior.\n // Remaining props are now applied only to the inner circle for improved event handling consistency.\n onTouchStart,\n onTouchEnd,\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 <>\n <circle\n style={{ fill: 'transparent', cursor: 'pointer', pointerEvents: 'all' }}\n r={r * 3}\n cx={scale.x(x)}\n cy={scale.y(y)}\n onMouseEnter={() => this.setState({ showCoordinates: true })}\n onMouseLeave={() => this.setState({ showCoordinates: false })}\n onTouchStart={onTouchStart}\n onTouchEnd={onTouchEnd}\n onClick={onClick}\n />\n <g\n className={classNames(classes.point, disabled && classes.disabled, classes[correctness], className)}\n onMouseEnter={() => this.setState({ showCoordinates: true })}\n onMouseLeave={() => this.setState({ showCoordinates: false })}\n >\n <circle\n {...rest}\n style={{ fill: color.defaults.BLACK, cursor: 'pointer' }}\n r={r}\n cx={scale.x(x)}\n cy={scale.y(y)}\n />\n {labelNode &&\n coordinatesOnHover &&\n showCoordinates &&\n ReactDOM.createPortal(<CoordinatesLabel graphProps={graphProps} x={x} y={y} />, labelNode)}\n </g>\n </>\n );\n }\n}\n","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 { classes, className, x, y, disabled, correctness, graphProps, from, to, ...rest } = 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 className={classNames(classes.point, disabled && classes.disabled, classes[correctness], className)} {...rest}>\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","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { color } from '@pie-lib/render-ui';\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 style={{ fill: color.defaults.BLACK }}\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","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 { classes, angle, className, x, y, disabled, correctness, graphProps, ...rest } = 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 className={classNames(classes.point, disabled && classes.disabled, classes[correctness], className)} {...rest}>\n <ArrowHead size={size} transform={transform} points={points} />\n </g>\n );\n }\n}\n","import { withStyles } from '@material-ui/core/styles/index';\nimport { gridDraggable } from '@pie-lib/plot';\nimport * as utils from '../../../utils';\nimport { disabled, correct, incorrect, missing } 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.defaults.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 missing: {\n '& circle, & polygon': {\n ...missing(),\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","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, missing } 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 let shouldNotChange =\n type &&\n (type === 'parabola' || type === 'sine' || type === 'absolute' || type === 'exponential') &&\n sameAxes(update.from, update.to);\n if (!shouldNotChange && type && type === 'exponential' && update.from && update.to) {\n shouldNotChange = update.from.y === 0 || update.to.y === 0 || update.from.y * update.to.y < 0;\n }\n if (!isEqual(mark, update) && !shouldNotChange) {\n onChange(mark, update);\n }\n });\n };\n\n changeMark = ({ from, to, middle }) => {\n let mark = { ...this.state.mark, from, to };\n\n if (middle) {\n mark = { ...mark, middle };\n }\n\n this.setState({ mark });\n };\n\n changeMarkProps = ({ from, to, middle }) => {\n const { onChange, mark } = this.props;\n let update = { ...mark, ...this.state.mark };\n\n if (from) {\n update = { ...update, from };\n }\n\n if (to) {\n update = { ...update, to };\n }\n\n if (middle) {\n update = { ...update, middle };\n }\n\n if (!isEqual(mark, update)) {\n onChange(mark, update);\n }\n };\n\n render() {\n const { graphProps, onClick, labelNode, labelModeEnabled, coordinatesOnHover, gssLineData } = 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 fill={mark && mark.fill}\n gssLineData={gssLineData}\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 fill: PropTypes.string,\n gssLineData: PropTypes.object,\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, data) => {\n const { changeMarkProps, disabled, from, to, labelModeEnabled, onClick } = this.props;\n\n if (!labelModeEnabled) {\n onClick(point || data);\n return;\n }\n\n if (disabled) {\n return;\n }\n\n if (type === 'middle' && !point && from && to) {\n point = { ...point, ...getMiddleOfTwoPoints(from, to) };\n }\n\n changeMarkProps({ from, to, [type]: { label: '', ...point } });\n\n if (this.input[type]) {\n this.input[type].focus();\n }\n };\n\n // IMPORTANT, do not remove\n input = {};\n\n render() {\n const {\n coordinatesOnHover,\n graphProps,\n fill,\n gssLineData,\n onDragStart,\n onDragStop,\n from,\n to,\n middle,\n disabled,\n correctness,\n onClick,\n labelNode,\n labelModeEnabled,\n } = this.props;\n let common = { graphProps, fill, onDragStart, onDragStop, disabled, correctness, onClick };\n if (gssLineData && gssLineData.selectedTool === 'solutionSet') {\n //removing dragging option for line if solution set is clicked.\n common = { graphProps, fill, disabled, correctness, onClick };\n }\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 if (gssLineData && gssLineData.selectedTool === 'solutionSet') {\n //removing dragging feature of line and point if solution set is true.\n return (\n <g>\n {to && <DraggableComp from={from} to={to} middle={middle} {...common} />}\n {lineLabelNode}\n\n <FromPoint\n x={from.x}\n y={from.y}\n labelNode={labelNode}\n coordinatesOnHover={coordinatesOnHover}\n {...common}\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 {...common}\n />\n )}\n {toLabelNode}\n </g>\n );\n } else {\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={(data) => this.clickPoint(middle, 'middle', data)}\n />\n )}\n {lineLabelNode}\n\n <FromPoint\n x={from.x}\n y={from.y}\n labelNode={labelNode}\n coordinatesOnHover={coordinatesOnHover}\n onDrag={this.dragFrom}\n {...common}\n onClick={(data) => this.clickPoint(from, 'from', data)}\n />\n {fromLabelNode}\n\n {to && (\n <ToPoint\n x={to.x}\n y={to.y}\n angle={angle} //angle + 45}\n labelNode={labelNode}\n coordinatesOnHover={coordinatesOnHover}\n onDrag={this.dragTo}\n {...common}\n onClick={(data) => this.clickPoint(to, 'to', data)}\n />\n )}\n {toLabelNode}\n </g>\n );\n }\n }\n }\n\n return LineBase;\n};\n\nexport const styles = {\n line: () => ({\n fill: 'transparent',\n stroke: color.defaults.BLACK,\n strokeWidth: 4,\n transition: 'stroke 200ms ease-in, stroke-width 200ms ease-in',\n '&:hover': {\n strokeWidth: 6,\n stroke: color.defaults.BLACK,\n },\n }),\n dashedLine: () => ({\n fill: 'transparent',\n stroke: color.defaults.BLACK,\n strokeWidth: 4,\n transition: 'stroke 200ms ease-in, stroke-width 200ms ease-in',\n '&:hover': {\n strokeWidth: 6,\n stroke: color.defaults.BLACK,\n },\n strokeDasharray: '3,3',\n }),\n arrow: () => ({\n fill: color.defaults.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 missing: (theme, key) => ({\n ...missing(key),\n }),\n};\n","import { lineToolComponent, lineBase, styles } from '../shared/line';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { trig, types } from '@pie-lib/plot';\nimport classNames from 'classnames';\nimport { withStyles } from '@material-ui/core/styles';\nimport { ArrowMarker, genUid } from '../shared/arrow-head';\nimport { thinnerShapesNeeded, getAdjustedGraphLimits } from '../../utils';\n\nconst lineStyles = (theme) => ({\n line: styles.line(theme),\n dashedLine: styles.dashedLine(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 missing: styles.missing(theme, 'stroke'),\n missingArrow: styles.missing(theme),\n});\n\nexport const ArrowedLine = (props) => {\n const markerId = genUid();\n const { className, classes, correctness, disabled, graphProps, fill = 'Solid', from, to, ...rest } = props;\n const { scale } = graphProps;\n const { domain, range } = getAdjustedGraphLimits(graphProps);\n const [eFrom, eTo] = trig.edges(domain, range)(from, to);\n const suffix = correctness || (disabled && 'disabled') || 'enabled';\n\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(eFrom.x)}\n y1={scale.y(eFrom.y)}\n x2={scale.x(eTo.x)}\n y2={scale.y(eTo.y)}\n className={classNames(\n fill === 'Solid' ? classes.line : classes.dashedLine,\n disabled && classes.disabled,\n classes[correctness],\n className,\n )}\n markerEnd={`url(#${props.markerId || markerId}-${suffix})`}\n markerStart={`url(#${props.markerId || markerId}-${suffix})`}\n {...rest}\n />\n </g>\n );\n};\n\nArrowedLine.propTypes = {\n className: PropTypes.string,\n classes: PropTypes.object,\n fill: PropTypes.string,\n correctness: PropTypes.string,\n disabled: PropTypes.bool,\n graphProps: types.GraphPropsType,\n from: types.PointType,\n to: types.PointType,\n markerId: PropTypes.string,\n};\n\nconst StyledArrowedLine = withStyles(lineStyles)(ArrowedLine);\n\nconst Line = lineBase(StyledArrowedLine);\nconst Component = lineToolComponent(Line);\n\nexport default Component;\n","import Line from './component';\nimport { lineTool } from '../shared/line';\n\nexport const tool = lineTool('line', Line);\n","import { tool as polygon } from './polygon';\nimport { tool as line } from './line';\n\nconst allTools = ['line', 'polygon'];\n\nconst toolsArr = [line(), polygon()];\n\nexport { allTools, toolsArr, line, polygon };\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport uniq from 'lodash/uniq';\nimport isString from 'lodash/isString';\nimport { color } from '@pie-lib/render-ui';\nimport ToolMenu from './tool-menu';\nimport Graph, { graphPropTypes } from './graph';\nimport UndoRedo from './undo-redo';\nimport { allTools, toolsArr } from './tools';\nimport { ExpansionPanel, ExpansionPanelDetails, ExpansionPanelSummary, Typography } from '@material-ui/core';\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\n\nexport const setToolbarAvailability = (toolbarTools) =>\n toolsArr.map((tA) => ({ ...tA, toolbar: !!toolbarTools.find((t) => t === tA.type) })) || [];\n\nexport const toolIsAvailable = (tools, currentTool) =>\n currentTool && tools && (tools.find((tool) => tool.type === currentTool.type) || {}).toolbar;\n\nexport const getAvailableTool = (tools) => tools.find((tool) => tool.toolbar);\n\nexport const filterByValidToolTypes = (backgroundMarks) =>\n backgroundMarks.filter((bM) => !!allTools.find((tool) => tool === bM.type));\n\nexport const filterByVisibleToolTypes = (toolbarTools, marks) =>\n marks.filter((bM) => !!toolbarTools.find((tool) => tool === bM.type));\n\nconst getDefaultCurrentTool = (toolType) => toolsArr.find((tool) => tool.type === toolType) || null;\n\nconst Collapsible = ({ classes, children, title }) => (\n <ExpansionPanel elevation={0} className={classes.expansionPanel} disabledGutters={true} square={true}>\n <ExpansionPanelSummary\n classes={{\n root: classes.summaryRoot,\n content: classes.summaryContent,\n }}\n expandIcon={<ExpandMoreIcon />}\n >\n <Typography variant=\"subheading\">{title}</Typography>\n </ExpansionPanelSummary>\n <ExpansionPanelDetails className={classes.details}>{children}</ExpansionPanelDetails>\n </ExpansionPanel>\n);\n\nCollapsible.propTypes = {\n classes: PropTypes.object,\n children: PropTypes.array,\n title: PropTypes.string,\n};\n\nexport class GraphWithControls extends React.Component {\n static propTypes = {\n ...graphPropTypes,\n onUndo: PropTypes.func,\n onRedo: PropTypes.func,\n onReset: PropTypes.func,\n toolbarTools: PropTypes.arrayOf(PropTypes.string), // array of tool types that have to be displayed in the toolbar, same shape as 'allTools'\n language: PropTypes.string,\n };\n\n static defaultProps = {\n collapsibleToolbar: false,\n collapsibleToolbarTitle: '',\n disabledLabels: false,\n disabledTitle: false,\n showLabels: true,\n showTitle: true,\n toolbarTools: [],\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n currentTool: getDefaultCurrentTool(props.defaultTool),\n labelModeEnabled: false,\n };\n }\n\n componentDidUpdate(prevProps) {\n const { defaultTool } = this.props;\n\n if (prevProps.defaultTool !== defaultTool) {\n const currentTool = getDefaultCurrentTool(defaultTool);\n\n this.setState({ currentTool });\n }\n }\n\n changeCurrentTool = (tool, tools) => this.setState({ currentTool: tools.find((t) => t.type === tool) });\n\n toggleLabelMode = () => this.setState((state) => ({ labelModeEnabled: !state.labelModeEnabled }));\n\n render() {\n let { currentTool, labelModeEnabled } = this.state;\n const {\n axesSettings,\n classes,\n className,\n coordinatesOnHover,\n collapsibleToolbar,\n collapsibleToolbarTitle,\n disabled,\n disabledLabels,\n disabledTitle,\n domain,\n labels,\n labelsPlaceholders,\n onChangeLabels,\n onChangeMarks,\n onChangeTitle,\n onUndo,\n onRedo,\n range,\n size,\n showLabels,\n showPixelGuides,\n showTitle,\n title,\n titlePlaceholder,\n language,\n disableToolbar = false,\n gssLineData,\n onChangeGssLineData,\n onSolutionSetSelected,\n onCustomReset,\n } = this.props;\n let { backgroundMarks, marks, toolbarTools } = this.props;\n\n // make sure only valid tool types are kept (string) and without duplicates\n toolbarTools = uniq(toolbarTools || []).filter((tT) => !!isString(tT)) || [];\n\n // keep only the backgroundMarks that have valid types\n backgroundMarks = filterByValidToolTypes(backgroundMarks || []);\n\n // keep only the marks that have types which appear in toolbar\n marks = filterByVisibleToolTypes(toolbarTools, marks || []);\n\n if (gssLineData && gssLineData.lineA && marks[0] && marks[0].type === 'line')\n marks[0].fill = gssLineData.lineA.lineType;\n if (gssLineData && gssLineData.lineB && marks[1] && marks[1].type === 'line')\n marks[1].fill = gssLineData.lineB.lineType;\n\n const tools = setToolbarAvailability(toolbarTools);\n\n // set current tool if there's no current tool or if the existing one is no longer available\n if (!currentTool || !toolIsAvailable(tools, currentTool)) {\n currentTool = getAvailableTool(tools);\n }\n\n const gssActions = gssLineData && (\n <React.Fragment>\n <ToolMenu\n numberOfLines={gssLineData.numberOfLines}\n gssLineData={gssLineData}\n onChange={onChangeGssLineData}\n disabled={!!disabled}\n language={language}\n />\n {!disabled && (\n <UndoRedo\n className={classes.undoRedoOuterDiv}\n onUndo={onUndo}\n onRedo={onRedo}\n onReset={onCustomReset}\n language={language}\n />\n )}\n </React.Fragment>\n );\n\n return (\n <div className={classNames(classes.graphWithControls, className)}>\n {!disableToolbar && (\n <div className={classes.controls}>\n {collapsibleToolbar ? (\n <Collapsible classes={classes} title={collapsibleToolbarTitle}>\n {gssActions}\n </Collapsible>\n ) : (\n gssActions\n )}\n </div>\n )}\n\n <div ref={(r) => (this.labelNode = r)} />\n\n <Graph\n axesSettings={axesSettings}\n backgroundMarks={backgroundMarks}\n coordinatesOnHover={coordinatesOnHover}\n currentTool={currentTool}\n disabledLabels={disabledLabels}\n disabledTitle={disabledTitle}\n domain={domain}\n labels={labels}\n labelModeEnabled={labelModeEnabled}\n labelsPlaceholders={labelsPlaceholders}\n marks={marks}\n onChangeMarks={!disabled ? onChangeMarks : undefined}\n onChangeLabels={onChangeLabels}\n onChangeTitle={onChangeTitle}\n range={range}\n size={size}\n showLabels={showLabels}\n showPixelGuides={showPixelGuides}\n showTitle={showTitle}\n title={title}\n titlePlaceholder={titlePlaceholder}\n tools={tools}\n gssLineData={gssLineData}\n onSolutionSetSelected={onSolutionSetSelected}\n disabled={!!disabled}\n />\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n graphWithControls: {\n display: 'flex',\n flexDirection: 'column',\n width: 'min-content',\n },\n controls: {\n display: 'flex',\n justifyContent: 'space-between',\n padding: 'calc(1.25rem - 12px) calc(1.25rem - 12px) 1.25rem',\n color: color.text(),\n backgroundColor: '#9FA8DA',\n '& button': {\n fontSize: '0.875rem',\n padding: '0.25rem .3rem',\n width: '5rem',\n },\n },\n expansionPanel: {\n backgroundColor: color.primaryLight(),\n width: '100%',\n },\n summaryRoot: {\n padding: `0 ${theme.spacing.unit}px`,\n minHeight: '32px !important',\n },\n summaryContent: {\n margin: '4px 0 !important',\n },\n details: {\n padding: 0,\n marginTop: theme.spacing.unit,\n display: 'flex',\n justifyContent: 'space-between',\n },\n undoRedoOuterDiv: {\n display: 'flex',\n flexDirection: 'column',\n marginTop: '.5rem',\n },\n});\n\nexport default withStyles(styles)(GraphWithControls);\n","let lastAction = null;\nexport const getLastAction = () => lastAction;\n\nexport const lastActionMiddleware = () => (next) => (action) => {\n lastAction = action;\n return next(action);\n};\n","import { connect } from 'react-redux';\nimport React from 'react';\nimport { Provider } from 'react-redux';\nimport { applyMiddleware, createStore } from 'redux';\nimport reducer from './reducer';\nimport { changeMarks } from './actions';\nimport PropTypes from 'prop-types';\nimport isEqual from 'lodash/isEqual';\nimport { ActionCreators } from 'redux-undo';\nimport GraphWithControls from '../graph-with-controls';\nimport { lastActionMiddleware, getLastAction } from './middleware';\n\nconst mapStateToProps = (s) => ({\n marks: s.marks.present,\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n onChangeMarks: (m) => dispatch(changeMarks(m)),\n onUndo: () => dispatch(ActionCreators.undo()),\n onRedo: () => dispatch(ActionCreators.redo()),\n onReset: () => dispatch(changeMarks([])),\n});\n\nexport const GraphContainer = connect(mapStateToProps, mapDispatchToProps)(GraphWithControls);\n\n/**\n * The graph component entry point with undo/redo\n * Redux is an implementation detail, hide it in the react component.\n */\nclass Root extends React.Component {\n static propTypes = {\n onChangeMarks: PropTypes.func,\n marks: PropTypes.array,\n };\n\n constructor(props) {\n super(props);\n\n const r = reducer();\n this.store = createStore(r, { marks: props.marks }, applyMiddleware(lastActionMiddleware));\n\n this.store.subscribe(this.onStoreChange);\n }\n\n componentDidUpdate(prevProps) {\n const { marks } = this.props;\n const storeState = this.store.getState();\n\n if (isEqual(storeState.marks.present, marks)) {\n return;\n }\n\n if (!isEqual(prevProps.marks, marks)) {\n this.store.dispatch(changeMarks(marks));\n }\n }\n\n onStoreChange = () => {\n const { marks, onChangeMarks } = this.props;\n const storeState = this.store.getState();\n const lastAction = getLastAction();\n const isUndoOperation = lastAction.type.includes('UNDO') || lastAction.type.includes('REDO');\n\n if (!isEqual(storeState.marks.present, marks)) {\n onChangeMarks(storeState.marks.present, isUndoOperation);\n }\n };\n\n render() {\n // eslint-disable-next-line no-unused-vars\n const { onChangeMarks, marks, ...rest } = this.props;\n const correctnessSet = marks && marks.find((m) => m.correctness);\n\n if (correctnessSet) {\n return <GraphWithControls {...rest} marks={marks} disabled={correctnessSet} />;\n }\n\n return (\n <Provider store={this.store}>\n <GraphContainer {...rest} />\n </Provider>\n );\n }\n}\n\nexport default Root;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { color, InputContainer } from '@pie-lib/render-ui';\nimport { withStyles } from '@material-ui/core/styles';\nimport ExpansionPanelSummary from '@material-ui/core/ExpansionPanelSummary';\nimport Typography from '@material-ui/core/Typography';\nimport ExpansionPanelDetails from '@material-ui/core/ExpansionPanelDetails';\nimport ExpansionPanel from '@material-ui/core/ExpansionPanel';\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\nimport { NumberTextFieldCustom, Toggle } from '@pie-lib/config-ui';\nimport EditableHTML from '@pie-lib/editable-html';\n\nconst GridConfig = (props) => {\n const { classes, disabled, displayedFields, labelValue, labelValues, gridValue, gridValues, onChange } = props;\n const { labelStep = {}, step = {} } = displayedFields;\n\n return (\n <div className={classes.columnView}>\n {step && step.enabled && (\n <NumberTextFieldCustom\n className={classes.mediumTextField}\n label={step.label || ''}\n value={gridValue}\n customValues={gridValues}\n variant=\"outlined\"\n disabled={disabled}\n onChange={(e, v) => onChange('step', v)}\n />\n )}\n {labelStep && labelStep.enabled && (\n <NumberTextFieldCustom\n className={classes.mediumTextField}\n label={labelStep.label || ''}\n value={labelValue}\n customValues={labelValues}\n variant=\"outlined\"\n disabled={disabled}\n onChange={(e, v) => onChange('labelStep', v)}\n />\n )}\n </div>\n );\n};\n\nGridConfig.propTypes = {\n classes: PropTypes.object,\n disabled: PropTypes.bool,\n displayedFields: PropTypes.object,\n labelValue: PropTypes.number,\n labelValues: PropTypes.array,\n gridValue: PropTypes.number,\n gridValues: PropTypes.array,\n onChange: PropTypes.func,\n};\n\nconst AxisConfig = (props) => {\n const { classes, disabled, displayedFields, displayHeader, label, maxValue, minValue, onChange, type } = props;\n const { axisLabel = {}, min = {}, max = {} } = displayedFields;\n const activePlugins = [\n 'bold',\n 'italic',\n 'underline',\n 'strikethrough',\n // 'languageCharacters'\n ];\n\n return (\n <div className={classes.columnView}>\n {displayHeader && (\n <Typography variant=\"subtitle2\">\n <i>{type === 'domain' ? 'x' : 'y'}</i>\n -axis\n </Typography>\n )}\n {min && min.enabled && (\n <NumberTextFieldCustom\n className={classes.mediumTextField}\n label={min.label || ''}\n value={minValue}\n min={-10000}\n max={maxValue - 0.05}\n variant=\"outlined\"\n disabled={disabled}\n onChange={(e, v) => onChange('min', v)}\n />\n )}\n {max && max.enabled && (\n <NumberTextFieldCustom\n className={classes.mediumTextField}\n label={max.label || ''}\n value={maxValue}\n min={minValue + 0.05}\n max={10000}\n variant=\"outlined\"\n disabled={disabled}\n onChange={(e, v) => onChange('max', v)}\n />\n )}\n {axisLabel && axisLabel.enabled && (\n <InputContainer label={axisLabel.label || ''} className={classes.mediumTextField}>\n <EditableHTML\n className={classes.axisLabel}\n onChange={(value) => onChange('axisLabel', value)}\n markup={label || ''}\n charactersLimit={5}\n activePlugins={activePlugins}\n />\n </InputContainer>\n )}\n </div>\n );\n};\n\nAxisConfig.propTypes = {\n classes: PropTypes.object,\n disabled: PropTypes.bool,\n displayedFields: PropTypes.object,\n displayHeader: PropTypes.bool,\n label: PropTypes.string,\n maxValue: PropTypes.number,\n minValue: PropTypes.number,\n type: PropTypes.string,\n onChange: PropTypes.func,\n};\nconst GridSetup = (props) => {\n const {\n classes,\n domain,\n displayedFields = {},\n gridValues = {},\n includeAxes,\n labelValues = {},\n onChange,\n onChangeView,\n range,\n size,\n sizeConstraints,\n standardGrid,\n } = props;\n const gridProps = { min: 2, max: 41 };\n const {\n axisLabel = {},\n dimensionsEnabled,\n includeAxesEnabled,\n labelStep = {},\n min = {},\n max = {},\n standardGridEnabled,\n step = {},\n } = displayedFields || {};\n const displayAxisType = min.enabled || max.enabled || axisLabel.enabled || step.enabled || labelStep.enabled;\n const gridConfigFields = { step, labelStep };\n const axisConfigFields = { min, max, axisLabel };\n\n const onIncludeAxes = (includeAxes) => {\n const noAxesConfig = (type) => {\n const axis = type === 'domain' ? domain : range;\n\n return {\n min: 1,\n max: axis.max < gridProps.min || axis.max > gridProps.max ? 16 : axis.max,\n step: 1,\n labelStep: 0,\n };\n };\n\n const updatedRange = {\n ...range,\n ...(includeAxes ? { labelStep: 1 } : noAxesConfig('range')),\n };\n const updatedDomain = {\n ...domain,\n ...(includeAxes ? { labelStep: 1 } : noAxesConfig('domain')),\n };\n\n onChange({ includeAxes, range: updatedRange, domain: updatedDomain });\n };\n\n const onStandardGridChanged = (value) => {\n onChange({\n standardGrid: value,\n range: {\n ...domain,\n axisLabel: range.axisLabel,\n },\n graph: {\n ...size,\n height: size.width,\n },\n });\n };\n\n const onSizeChanged = (key, value) => {\n const graph = { ...size, [key]: value };\n\n if (standardGrid) {\n graph.height = value;\n }\n\n onChange({ graph });\n };\n\n const onDomainChanged = (key, value) => {\n domain[key] = value;\n\n if (standardGrid && key !== 'axisLabel') {\n range[key] = value;\n }\n\n onChange({ domain, range });\n };\n\n const onRangeChanged = (key, value) => {\n range[key] = value;\n\n onChange({ range });\n };\n\n const axesConfig = (\n <React.Fragment>\n <div className={classes.rowView}>\n <AxisConfig\n classes={classes}\n displayedFields={axisConfigFields}\n displayHeader={displayAxisType}\n type=\"domain\"\n minValue={domain.min}\n maxValue={domain.max}\n label={domain.axisLabel}\n includeAxes={includeAxes}\n onChange={onDomainChanged}\n />\n <AxisConfig\n classes={classes}\n displayedFields={axisConfigFields}\n displayHeader={displayAxisType}\n type=\"range\"\n minValue={range.min}\n maxValue={range.max}\n label={range.axisLabel}\n disabled={standardGrid}\n includeAxes={includeAxes}\n onChange={onRangeChanged}\n />\n </div>\n {(min.enabled || max.enabled) && (\n <Typography className={classes.text}>\n If you want the axis to be visible, use a zero or negative Min Value, and a positive Max Value\n </Typography>\n )}\n {(step.enabled || labelStep.enabled) && (\n <div className={classes.rowView}>\n <GridConfig\n classes={classes}\n displayedFields={gridConfigFields}\n gridValue={domain.step}\n labelValue={domain.labelStep}\n gridValues={gridValues.domain || []}\n labelValues={labelValues.domain || []}\n onChange={onDomainChanged}\n />\n <GridConfig\n classes={classes}\n disabled={standardGrid}\n displayedFields={gridConfigFields}\n gridValue={range.step}\n labelValue={range.labelStep}\n gridValues={gridValues.range || []}\n labelValues={labelValues.range || []}\n onChange={onRangeChanged}\n />\n </div>\n )}\n {labelStep.enabled && (\n <Typography className={classes.text}>For unnumbered gridlines, enter a label interval of 0</Typography>\n )}\n </React.Fragment>\n );\n\n const gridlinesConfig = max.enabled ? (\n <div className={classes.columnView}>\n <NumberTextFieldCustom\n className={classes.largeTextField}\n label=\"Number of Vertical Gridlines\"\n value={domain.max}\n min={!includeAxes && gridProps.min}\n max={!includeAxes && gridProps.max}\n variant=\"outlined\"\n onChange={(e, v) => onDomainChanged('max', v)}\n />\n <NumberTextFieldCustom\n className={classes.largeTextField}\n label=\"Number of Horizontal Gridlines\"\n value={range.max}\n min={!includeAxes && gridProps.min}\n max={!includeAxes && gridProps.max}\n variant=\"outlined\"\n disabled={standardGrid}\n onChange={(e, v) => onRangeChanged('max', v)}\n />\n </div>\n ) : null;\n\n return (\n <div className={classes.wrapper}>\n <ExpansionPanel onChange={onChangeView}>\n <ExpansionPanelSummary expandIcon={<ExpandMoreIcon />}>\n <Typography variant=\"subtitle1\">Customize Grid Setup</Typography>\n </ExpansionPanelSummary>\n <ExpansionPanelDetails>\n <div className={classes.content}>\n {includeAxesEnabled && (\n <Toggle label=\"Include axes and labels?\" toggle={onIncludeAxes} checked={includeAxes} />\n )}\n {standardGridEnabled && (\n <Toggle\n label=\"Constrain to standard coordinate grid?\"\n toggle={onStandardGridChanged}\n checked={standardGrid}\n />\n )}\n {includeAxes ? axesConfig : gridlinesConfig}\n {dimensionsEnabled && (\n <div className={classes.dimensions}>\n <div>\n <Typography>Dimensions(px)</Typography>\n <Typography className={classes.disabled}>\n Min {sizeConstraints.min}, Max {sizeConstraints.max}\n </Typography>\n </div>\n <NumberTextFieldCustom\n className={classes.textField}\n label=\"Width\"\n value={size.width}\n min={sizeConstraints.min}\n max={sizeConstraints.max}\n step={sizeConstraints.step}\n variant=\"outlined\"\n onChange={(e, v) => onSizeChanged('width', v)}\n />\n <NumberTextFieldCustom\n className={classes.textField}\n label=\"Height\"\n value={size.height}\n min={sizeConstraints.min}\n max={sizeConstraints.max}\n step={sizeConstraints.step}\n variant=\"outlined\"\n disabled={standardGrid}\n onChange={(e, v) => onSizeChanged('height', v)}\n />\n </div>\n )}\n </div>\n </ExpansionPanelDetails>\n </ExpansionPanel>\n </div>\n );\n};\n\nGridSetup.propTypes = {\n classes: PropTypes.object,\n domain: PropTypes.object,\n displayedFields: PropTypes.object,\n gridValues: PropTypes.object,\n includeAxes: PropTypes.bool,\n labelValues: PropTypes.object,\n onChange: PropTypes.func,\n onChangeView: PropTypes.func,\n range: PropTypes.object,\n size: PropTypes.object,\n sizeConstraints: PropTypes.object,\n standardGrid: PropTypes.bool,\n};\n\nconst styles = (theme) => ({\n wrapper: {\n width: '450px',\n },\n content: {\n display: 'flex',\n flexDirection: 'column',\n width: '100%',\n },\n columnView: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n },\n rowView: {\n display: 'flex',\n justifyContent: 'space-around',\n alignItems: 'center',\n },\n textField: {\n width: '130px',\n margin: `${theme.spacing.unit}px ${theme.spacing.unit / 2}px`,\n },\n mediumTextField: {\n width: '160px',\n margin: `${theme.spacing.unit}px ${theme.spacing.unit / 2}px`,\n },\n largeTextField: {\n width: '230px',\n margin: `${theme.spacing.unit}px ${theme.spacing.unit / 2}px`,\n },\n text: {\n fontStyle: 'italic',\n margin: `${theme.spacing.unit}px 0`,\n },\n dimensions: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n disabled: {\n color: color.disabled(),\n },\n axisLabel: {\n paddingTop: theme.spacing.unit * 2,\n },\n});\n\nexport default withStyles(styles)(GridSetup);\n"],"names":["style","theme","root","fill","palette","common","black","Arrow","React","Component","render","x","y","classes","className","scale","props","names","classNames","direction","xv","yv","transform","getTransform","rotate","propTypes","PropTypes","number","oneOf","object","isRequired","string","types","ScaleType","defaultProps","withStyles","bounds","utils","point","getAngleDeg","arrowDimensions","getTickValues","prop","tickValues","tickVal","min","indexOf","push","Math","round","step","max","filter","tV","countWords","label","isEmpty","words","split","length","findLongestWord","longestWord","replace","sort","a","b","amountToIncreaseWidth","polygonToArea","points","h","head","area","left","top","bottom","right","tail","reduce","p","getRightestPoints","sortedPoints","cloneDeep","getMiddleOfTwoPoints","roundNumber","parseFloat","toFixed","sameAxes","p1","p2","equalPoints","isEqual","getDistanceBetweenTicks","axis","size","nbOfTicks","thinnerShapesNeeded","graphProps","domain","range","width","height","getAdjustedGraphLimits","domainTicksDistance","rangeTicksDistance","domainPadding","rangePadding","sortPoints","array","checkCollinearity","c","isSameLine","markA","markB","from","to","isDuplicatedMark","mark","marks","oldMark","type","building","filteredMarks","m","index","findIndex","splice","duplicated","find","areArraysOfObjectsEqual","array1","array2","i","obj1","obj2","Object","keys","key","AxisPropTypes","includeArrows","AxisDefaultProps","up","down","axisStyles","line","stroke","strokeWidth","arrow","tick","color","defaults","BLACK","labelFontSize","fontSize","typography","axisLabelHolder","padding","margin","textAlign","tickLabelStyles","fontFamily","cursor","sharedValues","firstNegativeX","firstNegativeY","distanceFromOriginToFirstNegativeX","distanceFromOriginToFirstNegativeY","deltaAllowance","dy","result","firstNegativeValue","interval","element","RawXAxis","columnTicksValues","skipValues","labelStep","labelProps","textAnchor","dx","necessaryRows","axisLabel","necessaryWidth","value","__html","GraphPropsType","XAxis","RawYAxis","rowTickValues","customTickFormat","digits","toLocaleString","YAxis","Axes","xValues","ticks","negative","abs","yValues","Grid","getAdditionalGridProps","columnTickValues","rowTickLabelValues","includes","columnTickLabelValues","minValueLength","toString","maxValueLength","rowLabelLength","horizontalDistanceToZero","verticalDistanceToZero","columnLabelLength","rowStrokeDasharray","columnStrokeDasharray","displayAdditionalGrid","filteredColumnValues","filteredRowValues","additionalGridStroke","r","grid","disabled","bool","disabledAdditionalGrid","rotations","side","t","getY","RawLabel","disabledLabel","placeholder","text","onChange","mathMlOptions","totalHeight","totalWidth","finalHeight","activePlugins","cn","bottomLabel","disabledAxisLabel","position","noPadding","noBorder","func","Label","SECONDARY","pointerEvents","marginTop","LabelType","Labels","onChangeLabel","newValue","labels","disabledLabels","placeholders","shape","Bg","getRectPadding","onRectClick","rect","onClick","coords","mouse","_groups","invert","rowTicks","columnTicks","closest","prev","curr","currentDistance","previousDistance","snapped","componentDidMount","select","on","bind","shouldComponentUpdate","nextProps","isDomainRangeEqual","log","debug","graphPropTypes","axesSettings","backgroundMarks","collapsibleToolbar","collapsibleToolbarTitle","disabledTitle","DomainType","labelModeEnabled","coordinatesOnHover","onChangeLabels","onChangeMarks","onChangeTitle","showLabels","showPixelGuides","showTitle","title","tools","getMaskSize","removeBuildingToolIfCurrentToolDiffers","currentTool","buildingMark","newMarks","Graph","constructor","state","setState","labelNode","changeMark","newMark","gssLineData","selectedTool","completeMark","markData","updatedMark","complete","updateMarks","existing","update","addIfMissing","getComponent","tool","onBgClick","onSolutionSetSelected","numberOfLines","undefined","addPoint","maskUid","generateMaskId","random","labelsPlaceholders","titlePlaceholder","createGraphProps","rootNode","maskSize","solutionSet","sections","forEach","section","polygon","closed","isSolution","Root","map","markType","isBackground","startDrag","stopDrag","action","Array","isArray","Error","combineReducers","undoable","changeMarks","ToolMenu","onChangeRadioValue","event","oldSelectedTool","target","lineTypeChange","lineType","selectLineRadioGroup","radioFieldOuter","radioFieldInner","lineTypeRadio","lineNameFont","radioFieldButtons","lineA","lineTypeButtonLeftSelectedDisabled","lineTypeButtonLeftSelected","lineTypeButtonLeftUnSelectedDisabled","lineTypeButtonLeftUnSelected","lineTypeButtonRightSelectedDisabled","lineTypeButtonRightSelected","lineTypeButtonRightUnSelectedDisabled","lineTypeButtonRightUnSelected","lineB","styles","radioButtonClass","display","flexWrap","flexDirection","alignItems","lineTypeText","marginLeft","fontWeight","textTransform","border","borderRadius","backgroundColor","borderTopLeftRadius","borderBottomLeftRadius","borderTopRightRadius","borderBottomRightRadius","translator","Translator","UndoRedo","onReset","language","Button","button","lng","marginBottom","spacing","unit","marginRight","undoRedoDiv","ToolPropTypeFields","any","onDragStart","onDragStop","correct","incorrect","missing","getPointString","scaledPoint","join","RawPolygon","correctness","rest","_excluded","pointString","Tag","gssSolution","gssClosed","arrayOf","PointType","Polygon","fade","primary","light","SECONDARY_LIGHT","open","gridDraggable","anchorPoint","fromDelta","delta","add","useDebounce","delay","debouncedValue","setDebouncedValue","useState","useEffect","handler","setTimeout","clearTimeout","input","float","PRIMARY_DARK","background","paper","disabledMark","shift","rightEdge","bottomEdge","v","coordinates","MarkLabel","setInput","_ref","useCallback","node","inputRef","externalInputRef","setLabel","e","debouncedLabel","getBoundingClientRect","pos","leftTop","disabledInput","withTheme","swap","arr","pairs","chunk","acc","pr","replacement","invariant","Number","isFinite","RawBaseComponent","dragPoint","overlapPoint","dragLine","next","dragPoly","close","onClosePolygon","labelChange","onChangeProps","updatedPoint","clickPoint","data","isToolActive","onChangeLabelProps","middle","focus","polygonLabelIndex","hasOwnProperty","BaseComponent","change","changeProps","changeLabelProps","closePolygon","onComplete","dragStart","dragStop","stateMark","addPointToArray","hasPoint","white","inputLabel","getLabelPosition","labelLength","topShift","leftShift","CoordinatesLabel","labelPosition","ariaLabel","RawBp","showCoordinates","onTouchStart","onTouchEnd","ReactDOM","createPortal","RawArrow","angle","vector","ArrowHead","genUid","ArrowMarker","id","scaledX","scaledY","opts","BasePoint","BaseArrow","lineTool","lineToolComponent","LineToolComponent","shouldNotChange","changeMarkProps","dragOpts","lineToArea","lineBase","Comp","DraggableComp","FromPoint","ToPoint","LineBase","onChangePoint","dragComp","draggedFrom","draggedTo","updated","dragFrom","dragTo","trig","toDegrees","fromLabelNode","toLabelNode","lineLabelNode","transition","dashedLine","strokeDasharray","disabledArrow","lineStyles","enabledArrow","correctArrow","incorrectArrow","missingArrow","ArrowedLine","markerId","eFrom","eTo","edges","suffix","StyledArrowedLine","Line","allTools","toolsArr","setToolbarAvailability","toolbarTools","tA","toolbar","toolIsAvailable","getAvailableTool","filterByValidToolTypes","bM","filterByVisibleToolTypes","getDefaultCurrentTool","toolType","Collapsible","children","expansionPanel","summaryRoot","content","summaryContent","details","GraphWithControls","changeCurrentTool","toggleLabelMode","defaultTool","componentDidUpdate","prevProps","onUndo","onRedo","disableToolbar","onChangeGssLineData","onCustomReset","uniq","tT","isString","gssActions","undoRedoOuterDiv","graphWithControls","controls","justifyContent","primaryLight","minHeight","lastAction","getLastAction","lastActionMiddleware","mapStateToProps","s","present","mapDispatchToProps","dispatch","ActionCreators","undo","redo","GraphContainer","connect","onStoreChange","storeState","store","getState","isUndoOperation","reducer","createStore","applyMiddleware","subscribe","correctnessSet","GridConfig","displayedFields","labelValue","labelValues","gridValue","gridValues","columnView","enabled","mediumTextField","AxisConfig","displayHeader","maxValue","minValue","Typography","EditableHTML","GridSetup","includeAxes","onChangeView","sizeConstraints","standardGrid","gridProps","dimensionsEnabled","includeAxesEnabled","standardGridEnabled","displayAxisType","gridConfigFields","axisConfigFields","onIncludeAxes","noAxesConfig","updatedRange","updatedDomain","onStandardGridChanged","graph","onSizeChanged","onDomainChanged","onRangeChanged","axesConfig","rowView","gridlinesConfig","largeTextField","wrapper","ExpansionPanel","ExpansionPanelSummary","ExpansionPanelDetails","dimensions","textField","fontStyle","paddingTop"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/axis/arrow.jsx","../src/utils.js","../src/axis/axes.jsx","../src/grid.jsx","../src/labels.jsx","../src/bg.jsx","../src/graph.jsx","../src/container/marks.js","../../../node_modules/redux-undo/lib/actions.js","../../../node_modules/redux-undo/lib/helpers.js","../../../node_modules/redux-undo/lib/debug.js","../../../node_modules/redux-undo/lib/reducer.js","../../../node_modules/redux-undo/lib/index.js","../src/container/reducer.js","../src/container/actions.js","../src/tool-menu.jsx","../src/undo-redo.jsx","../src/tools/shared/types.js","../src/tools/shared/styles.js","../src/tools/polygon/polygon.jsx","../src/use-debounce.js","../src/mark-label.jsx","../src/tools/polygon/component.jsx","../src/tools/polygon/index.js","../src/coordinates-label.jsx","../src/tools/shared/point/base-point.jsx","../src/tools/shared/point/arrow-point.jsx","../src/tools/shared/arrow-head.jsx","../src/tools/shared/point/arrow.jsx","../src/tools/shared/point/index.jsx","../src/tools/shared/line/index.jsx","../src/tools/line/component.jsx","../src/tools/line/index.js","../src/tools/index.js","../../../node_modules/@babel/runtime/helpers/interopRequireDefault.js","../../../node_modules/@babel/runtime/helpers/setPrototypeOf.js","../../../node_modules/@babel/runtime/helpers/inheritsLoose.js","../../../node_modules/recompose/setStatic.js","../../../node_modules/recompose/setDisplayName.js","../../../node_modules/recompose/getDisplayName.js","../../../node_modules/recompose/wrapDisplayName.js","../../../node_modules/recompose/shouldUpdate.js","../../../node_modules/fbjs/lib/shallowEqual.js","../../../node_modules/recompose/shallowEqual.js","../../../node_modules/recompose/pure.js","../../../node_modules/@material-ui/icons/utils/createSvgIcon.js","../../../node_modules/@material-ui/icons/ExpandMore.js","../src/graph-with-controls.jsx","../src/container/middleware.js","../src/container/index.jsx","../src/grid-setup.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport classNames from 'classnames';\nimport { withStyles } from '@material-ui/core/styles';\nimport { types } from '@pie-lib/plot';\n\nconst style = (theme) => ({\n root: {\n fill: `var(--arrow-color, ${theme.palette.common.black})`,\n },\n});\n\nexport class Arrow extends React.Component {\n render() {\n const { x, y, classes, className, scale } = this.props;\n const names = classNames(classes.root, className);\n let direction = this.props.direction || 'left';\n\n const xv = scale.x(x);\n const yv = scale.y(y);\n\n let transform = '';\n\n const getTransform = (x, y, rotate) => `translate(${x}, ${y}) rotate(${rotate})`;\n\n if (direction === 'left') {\n transform = getTransform(xv - 15, yv, 0);\n }\n\n if (direction === 'right') {\n transform = getTransform(xv + 15, yv, 180);\n }\n\n if (direction === 'up') {\n transform = getTransform(xv, yv - 15, 90);\n }\n\n if (direction === 'down') {\n transform = getTransform(xv, yv + 15, 270);\n }\n\n return <path d=\"m 0,0 8,-5 0,10 -8,-5\" transform={transform} className={names} />;\n }\n}\n\nArrow.propTypes = {\n y: PropTypes.number,\n x: PropTypes.number,\n direction: PropTypes.oneOf(['left', 'right', 'up', 'down']),\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n scale: types.ScaleType.isRequired,\n};\n\nArrow.defaultProps = {\n y: 0,\n x: 0,\n direction: 'left',\n};\n\nexport default withStyles(style)(Arrow);\n","import head from 'lodash/head';\nimport tail from 'lodash/tail';\nimport { utils } from '@pie-lib/plot';\nimport invariant from 'invariant';\nimport isEqual from 'lodash/isEqual';\nimport isEmpty from 'lodash/isEmpty';\nimport cloneDeep from 'lodash/cloneDeep';\n\nexport const bounds = utils.bounds;\nexport const point = utils.point;\n\n//TODO: This can be removed?\nexport const getAngleDeg = () => 0;\n//TODO: This can be removed?\nexport const arrowDimensions = () => 0;\n\nexport const getTickValues = (prop) => {\n const tickValues = [];\n let tickVal = 0;\n\n while (tickVal >= prop.min && tickValues.indexOf(tickVal) < 0) {\n tickValues.push(tickVal);\n tickVal = Math.round((tickVal - prop.step) * 10000) / 10000;\n }\n\n tickVal = Math.round(prop.step * 10000) / 10000;\n\n while (tickVal <= prop.max && tickValues.indexOf(tickVal) < 0) {\n tickValues.push(tickVal);\n tickVal = Math.round((tickVal + prop.step) * 10000) / 10000;\n }\n\n // return only ticks that are inside the min-max interval\n if (tickValues) {\n return tickValues.filter((tV) => tV >= prop.min && tV <= prop.max);\n }\n\n return [];\n};\n\nexport const countWords = (label) => {\n if (label == null || isEmpty(label)) {\n return 1;\n }\n\n const words = label.split(' ');\n return words.length;\n};\n\n// findLongestWord is also used in plot\nexport const findLongestWord = (label) => {\n let longestWord = (label || '')\n .replace(/<[^>]+>/g, '')\n .split(' ')\n .sort((a, b) => b.length - a.length);\n\n return longestWord[0].length;\n};\n\n// amountToIncreaseWidth is also used in plot\nexport const amountToIncreaseWidth = (longestWord) => {\n if (!longestWord) {\n return 0;\n }\n\n return longestWord * 10;\n};\n\nexport const polygonToArea = (points) => {\n const h = head(points);\n const area = {\n left: h.x,\n top: h.y,\n bottom: h.y,\n right: h.x,\n };\n return tail(points).reduce((a, p) => {\n a.left = Math.min(a.left, p.x);\n a.top = Math.max(a.top, p.y);\n a.bottom = Math.min(a.bottom, p.y);\n a.right = Math.max(a.right, p.x);\n return a;\n }, area);\n};\n\nexport const lineToArea = (from, to) => pointsToArea(from, to);\n\nexport const pointsToArea = (a, b) => {\n invariant(!!a && !!b, 'a or b is undefined');\n const left = Math.min(a.x, b.x);\n const top = Math.max(a.y, b.y);\n const bottom = Math.min(a.y, b.y);\n const right = Math.max(a.x, b.x);\n return { left, top, bottom, right };\n};\n\nexport const getRightestPoints = (points) => {\n const sortedPoints = cloneDeep(points);\n sortedPoints.sort((a, b) => b.x - a.x);\n\n return { a: sortedPoints[0], b: sortedPoints[1] };\n};\n\nexport const getMiddleOfTwoPoints = (a, b) => ({\n x: (a.x + b.x) / 2,\n y: (a.y + b.y) / 2,\n});\n\nexport const roundNumber = (number) => parseFloat(number.toFixed(4));\n\nexport const sameAxes = (p1, p2) =>\n p1 && p2 && (roundNumber(p1.x) === roundNumber(p2.x) || roundNumber(p1.y) === roundNumber(p2.y));\n\nexport const equalPoints = (p1, p2) =>\n p1 &&\n p2 &&\n isEqual(\n {\n x: roundNumber(p1.x),\n y: roundNumber(p1.y),\n },\n {\n x: roundNumber(p2.x),\n y: roundNumber(p2.y),\n },\n );\n\nconst getDistanceBetweenTicks = (axis, size) => {\n const { min, max, step } = axis;\n const nbOfTicks = (max - min) / step;\n\n return size / nbOfTicks;\n};\n\nexport const thinnerShapesNeeded = (graphProps) => {\n const {\n domain,\n range,\n size: { width, height },\n } = graphProps;\n\n // 14 is the default width of a point\n return getDistanceBetweenTicks(domain, width) < 14 || getDistanceBetweenTicks(range, height) < 14;\n};\n\nexport const getAdjustedGraphLimits = (graphProps) => {\n const {\n domain,\n range,\n size: { width, height },\n } = graphProps;\n const domainTicksDistance = getDistanceBetweenTicks(domain, width);\n const rangeTicksDistance = getDistanceBetweenTicks(range, height);\n\n // 15 is the distance required for the arrow to extend the graph\n const domainPadding = domain.step / (domainTicksDistance / 15);\n const rangePadding = range.step / (rangeTicksDistance / 15);\n\n return {\n domain: {\n min: domain.min - domainPadding,\n max: domain.max + domainPadding,\n },\n range: {\n min: range.min - rangePadding,\n max: range.max + rangePadding,\n },\n };\n};\n\nconst sortPoints = (array) => (array || []).sort((a, b) => a.x - b.x || a.y - b.y);\n\n// check colliniarity of 3 points (source: https://www.geeksforgeeks.org/program-check-three-points-collinear/)\nconst checkCollinearity = (a, b, c) => (a.x - b.x) * (c.y - b.y) === (c.x - b.x) * (a.y - b.y);\n\n// 2 lines are overlapping if all 4 points are collinear\nconst isSameLine = (markA, markB) =>\n checkCollinearity(markA.from, markB.from, markB.to) && checkCollinearity(markA.to, markB.from, markB.to);\n\nexport const isDuplicatedMark = (mark, marks, oldMark) => {\n const { type, building } = mark;\n\n if (building) {\n return false;\n }\n\n const filteredMarks = (marks || []).filter((m) => m.type === type && !m.building);\n const index = filteredMarks.findIndex((m) => isEqual(m, oldMark));\n\n if (index !== -1) {\n filteredMarks.splice(index, 1);\n }\n\n const duplicated = filteredMarks.find((m) => {\n if (type === 'line') {\n const { from, to } = mark;\n return (\n (equalPoints(from, m.from) && equalPoints(to, m.to)) ||\n (equalPoints(from, m.to) && equalPoints(to, m.from)) ||\n (type === 'line' && isSameLine(m, mark))\n );\n } else if (type === 'polygon') {\n return isEqual(sortPoints(cloneDeep(mark.points)), sortPoints(cloneDeep(m.points)));\n }\n });\n\n return !!duplicated;\n};\n\nexport const areArraysOfObjectsEqual = (array1, array2) => {\n // Check if both arrays have the same length\n if (array1.length !== array2.length) {\n return false;\n }\n // Iterate through each object in the arrays\n for (let i = 0; i < array1.length; i++) {\n // Get the current objects in both arrays\n const obj1 = array1[i];\n const obj2 = array2[i];\n // Check if the objects have the same number of properties\n if (Object.keys(obj1).length !== Object.keys(obj2).length) {\n return false;\n }\n // Iterate through each property in the objects\n for (const key in obj1) {\n // Check if the properties and their values are equal\n if (obj1[key] !== obj2[key]) {\n return false;\n }\n }\n }\n // If all objects are equal, the arrays are the same\n return true;\n};\n","import React from 'react';\nimport { Axis } from '@vx/axis';\nimport { types } from '@pie-lib/plot';\nimport PropTypes from 'prop-types';\nimport Arrow from './arrow';\nimport { withStyles } from '@material-ui/core';\nimport { countWords, findLongestWord, amountToIncreaseWidth, getTickValues } from '../utils';\nimport { color, Readable } from '@pie-lib/render-ui';\n\nexport const AxisPropTypes = {\n includeArrows: PropTypes.object,\n graphProps: PropTypes.object,\n};\n\nconst AxisDefaultProps = {\n includeArrows: {\n left: true,\n right: true,\n up: true,\n down: true,\n },\n};\n\nconst axisStyles = (theme) => ({\n line: {\n stroke: '#8a92c0',\n strokeWidth: 4,\n },\n arrow: {\n fill: '#8a92c0',\n },\n tick: {\n fill: color.defaults.BLACK,\n '& > line': {\n stroke: '#8a92c0',\n },\n },\n labelFontSize: {\n fontSize: theme.typography.fontSize,\n },\n axisLabelHolder: {\n padding: 0,\n margin: 0,\n textAlign: 'center',\n '* > *': {\n margin: 0,\n padding: 0,\n },\n fontSize: theme.typography.fontSize,\n },\n});\n\nconst tickLabelStyles = {\n fontFamily: 'Roboto',\n fontSize: '14px',\n cursor: 'inherit',\n};\n\nexport const sharedValues = (\n firstNegativeX,\n firstNegativeY,\n distanceFromOriginToFirstNegativeX,\n distanceFromOriginToFirstNegativeY,\n deltaAllowance,\n dy,\n) => {\n let result = [];\n\n if (\n firstNegativeX === firstNegativeY &&\n distanceFromOriginToFirstNegativeX - deltaAllowance < distanceFromOriginToFirstNegativeY &&\n distanceFromOriginToFirstNegativeY < distanceFromOriginToFirstNegativeX + deltaAllowance &&\n distanceFromOriginToFirstNegativeX - deltaAllowance < dy &&\n dy < distanceFromOriginToFirstNegativeX + deltaAllowance\n ) {\n result.push(firstNegativeX);\n }\n\n return result;\n};\n\nexport const firstNegativeValue = (interval) => (interval || []).find((element) => element < 0);\n\nexport class RawXAxis extends React.Component {\n static propTypes = {\n ...AxisPropTypes,\n classes: PropTypes.object,\n graphProps: types.GraphPropsType.isRequired,\n };\n static defaultProps = AxisDefaultProps;\n\n render() {\n const {\n includeArrows,\n classes,\n graphProps,\n columnTicksValues,\n skipValues,\n distanceFromOriginToFirstNegativeY,\n dy,\n } = this.props;\n const { scale, domain, size, range } = graphProps || {};\n\n // Having 0 as a number in columnTicksValues does not make 0 to show up\n // so we use this trick, by defining it as a string:\n const tickValues =\n (domain.labelStep || range.labelStep) && domain.min <= 0 ? ['0', ...columnTicksValues] : columnTicksValues;\n // However, the '0' has to be displayed only if other tick labels (y-axis or x-axis) are displayed\n\n const labelProps = (label) => {\n const y = skipValues && skipValues[0] === label ? distanceFromOriginToFirstNegativeY + 4 : dy;\n\n return {\n ...tickLabelStyles,\n textAnchor: 'middle',\n y: y,\n dx: label === '0' ? -10 : 0,\n dy: label === '0' ? -7 : 0,\n };\n };\n\n const necessaryRows = countWords(domain.axisLabel);\n const longestWord = findLongestWord(domain.axisLabel);\n const necessaryWidth = amountToIncreaseWidth(longestWord) + 2;\n\n return (\n <React.Fragment>\n <Axis\n axisLineClassName={classes.line}\n scale={scale.x}\n top={scale.y(0)}\n left={0}\n label={domain.label}\n rangePadding={8}\n tickClassName={classes.tick}\n tickFormat={(value) => value}\n tickLabelProps={labelProps}\n tickValues={tickValues}\n />\n {includeArrows && includeArrows.left && (\n <Arrow direction=\"left\" x={domain.min} y={0} className={classes.arrow} scale={scale} />\n )}\n {includeArrows && includeArrows.right && (\n <Arrow direction=\"right\" x={domain.max} y={0} className={classes.arrow} scale={scale} />\n )}\n {domain.axisLabel && (\n <foreignObject x={size.width + 17} y={scale.y(0) - 9} width={necessaryWidth} height={20 * necessaryRows}>\n <div dangerouslySetInnerHTML={{ __html: domain.axisLabel }} className={classes.labelFontSize} />\n </foreignObject>\n )}\n </React.Fragment>\n );\n }\n}\n\nconst XAxis = withStyles(axisStyles)(RawXAxis);\n\nexport class RawYAxis extends React.Component {\n static propTypes = {\n ...AxisPropTypes,\n graphProps: types.GraphPropsType.isRequired,\n };\n static defaultProps = AxisDefaultProps;\n\n render() {\n const { classes, includeArrows, graphProps, skipValues, rowTickValues } = this.props;\n const { scale, range, size } = graphProps || {};\n\n const necessaryWidth = range.axisLabel ? amountToIncreaseWidth(range.axisLabel.length) : 0;\n\n const customTickFormat = (value) => (skipValues && skipValues.indexOf(value) >= 0 ? '' : value);\n\n return (\n <React.Fragment>\n <Axis\n axisLineClassName={classes.line}\n orientation={'left'}\n scale={scale.y}\n top={0}\n height={size.height}\n left={scale.x(0)}\n label={range.label}\n labelProps={{ 'data-pie-readable': false }}\n rangePadding={8}\n tickLength={10}\n tickClassName={classes.tick}\n tickFormat={customTickFormat}\n tickLabelProps={(value) => {\n let digits = value.toLocaleString().replace(/[.-]/g, '').length || 1;\n\n return {\n ...tickLabelStyles,\n dy: 4,\n dx: -10 - digits * 9,\n 'data-pie-readable': false,\n };\n }}\n hideZero={true}\n tickTextAnchor={'bottom'}\n tickValues={rowTickValues}\n />\n\n {includeArrows && includeArrows.down && (\n <Arrow direction=\"down\" x={0} y={range.min} className={classes.arrow} scale={scale} />\n )}\n {includeArrows && includeArrows.up && (\n <Arrow direction=\"up\" x={0} y={range.max} className={classes.arrow} scale={scale} />\n )}\n {range.axisLabel && (\n <foreignObject x={scale.x(0) - necessaryWidth / 2} y={-33} width={necessaryWidth} height=\"20\">\n <Readable false>\n <div dangerouslySetInnerHTML={{ __html: range.axisLabel }} className={classes.axisLabelHolder} />\n </Readable>\n </foreignObject>\n )}\n </React.Fragment>\n );\n }\n}\n\nconst YAxis = withStyles(axisStyles)(RawYAxis);\n\nexport default class Axes extends React.Component {\n static propTypes = {\n ...AxisPropTypes,\n classes: PropTypes.object,\n graphProps: types.GraphPropsType.isRequired,\n };\n static defaultProps = AxisDefaultProps;\n\n xValues = () => {\n const { graphProps } = this.props;\n const { scale, domain } = graphProps || {};\n\n if (!domain || !scale) {\n return;\n }\n\n const ticks = getTickValues({ ...domain, step: domain.labelStep });\n const negative = firstNegativeValue(ticks);\n\n return {\n columnTicksValues: ticks,\n firstNegativeX: negative,\n distanceFromOriginToFirstNegativeX: Math.abs(scale.y(0) - scale.y(negative)),\n };\n };\n\n yValues = () => {\n const { graphProps } = this.props;\n const { scale, range } = graphProps || {};\n\n if (!range || !scale) {\n return;\n }\n\n const ticks = getTickValues({ ...range, step: range.labelStep });\n const negative = firstNegativeValue(ticks);\n\n return {\n rowTickValues: ticks,\n firstNegativeY: negative,\n distanceFromOriginToFirstNegativeY: Math.abs(scale.x(0) - scale.x(negative)),\n };\n };\n\n render() {\n const { graphProps } = this.props;\n const { domain, range } = graphProps || {};\n const { columnTicksValues, firstNegativeX, distanceFromOriginToFirstNegativeX } = this.xValues();\n const { rowTickValues, firstNegativeY, distanceFromOriginToFirstNegativeY } = this.yValues();\n const deltaAllowance = 6;\n const dy = 25;\n\n const skipValues = sharedValues(\n firstNegativeX,\n firstNegativeY,\n distanceFromOriginToFirstNegativeX,\n distanceFromOriginToFirstNegativeY,\n deltaAllowance,\n dy,\n );\n\n // each axis has to be displayed only if the domain & range include it\n return (\n <React.Fragment>\n {range.min <= 0 ? (\n <XAxis\n {...this.props}\n skipValues={skipValues}\n columnTicksValues={columnTicksValues}\n distanceFromOriginToFirstNegativeY={distanceFromOriginToFirstNegativeY}\n dy={dy}\n />\n ) : null}\n {domain.min <= 0 ? (\n <YAxis\n {...this.props}\n skipValues={skipValues}\n rowTickValues={rowTickValues}\n distanceFromOriginToFirstNegativeX={distanceFromOriginToFirstNegativeX}\n />\n ) : null}\n </React.Fragment>\n );\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport * as vx from '@vx/grid';\nimport { types } from '@pie-lib/plot';\nimport { withStyles } from '@material-ui/core/styles';\nimport { getTickValues } from './utils';\n\nexport class Grid extends React.Component {\n static propTypes = {\n disabled: PropTypes.bool,\n disabledAdditionalGrid: PropTypes.bool,\n classes: PropTypes.object.isRequired,\n graphProps: types.GraphPropsType.isRequired,\n };\n\n getAdditionalGridProps = (rowTickValues, columnTickValues) => {\n const {\n graphProps: {\n scale,\n size: { width, height },\n domain,\n range,\n },\n } = this.props;\n const rowTickLabelValues = getTickValues({\n ...range,\n step: range.labelStep,\n }).filter((value) => rowTickValues.includes(value));\n const columnTickLabelValues = getTickValues({\n ...domain,\n step: domain.labelStep,\n }).filter((value) => columnTickValues.includes(value));\n\n const minValueLength =\n (rowTickLabelValues.length &&\n Math.min(...rowTickLabelValues)\n .toString()\n .replace(/[.-]/g, '').length) ||\n 1;\n const maxValueLength =\n (rowTickLabelValues.length &&\n Math.max(...rowTickLabelValues)\n .toString()\n .replace(/[.-]/g, '').length) ||\n 1;\n\n const rowLabelLength = Math.max(minValueLength, maxValueLength) * 9 + 22;\n const horizontalDistanceToZero = scale.x(0);\n const verticalDistanceToZero = scale.y(0);\n const columnLabelLength = 28;\n const rowStrokeDasharray = `${horizontalDistanceToZero - rowLabelLength} ${rowLabelLength} ${width}`;\n const columnStrokeDasharray = `${verticalDistanceToZero} ${columnLabelLength} ${height}`;\n\n const displayAdditionalGrid =\n domain.labelStep > 0 &&\n range.labelStep > 0 &&\n rowTickLabelValues &&\n columnTickLabelValues &&\n rowTickLabelValues.length > 1 &&\n columnTickLabelValues.length > 1 &&\n (rowTickLabelValues.length !== rowTickValues.length || columnTickLabelValues.length !== columnTickValues.length);\n\n const filteredColumnValues = columnTickLabelValues.filter(\n (value) => value >= 0 || horizontalDistanceToZero - scale.x(value) > rowLabelLength,\n );\n const filteredRowValues = rowTickLabelValues.filter(\n (value) => value >= 0 || scale.y(value) - verticalDistanceToZero > columnLabelLength,\n );\n\n return {\n rowTickLabelValues: filteredRowValues,\n columnTickLabelValues: filteredColumnValues,\n rowStrokeDasharray,\n columnStrokeDasharray,\n displayAdditionalGrid,\n };\n };\n\n render() {\n const { graphProps } = this.props;\n const {\n scale,\n size: { height, width },\n domain,\n range,\n } = graphProps;\n const rowTickValues = getTickValues(range);\n const columnTickValues = getTickValues(domain);\n const {\n rowTickLabelValues,\n columnTickLabelValues,\n rowStrokeDasharray,\n columnStrokeDasharray,\n displayAdditionalGrid,\n } = this.getAdditionalGridProps(rowTickValues, columnTickValues);\n\n const additionalGridStroke =\n domain.labelStep * 2 === domain.step || range.labelStep * 2 === range.step ? '#9FA8DA' : '#7985CB';\n\n return (\n <>\n <vx.Grid\n innerRef={(r) => (this.grid = r)}\n xScale={scale.x}\n yScale={scale.y}\n width={width}\n height={height}\n stroke=\"#D3D3D3\"\n rowTickValues={rowTickValues}\n columnTickValues={columnTickValues}\n />\n {displayAdditionalGrid && (\n <>\n <vx.GridRows\n scale={scale.y}\n width={width}\n tickValues={rowTickLabelValues}\n stroke={additionalGridStroke}\n strokeDasharray={rowStrokeDasharray}\n />\n <vx.GridColumns\n scale={scale.x}\n height={height}\n tickValues={columnTickLabelValues}\n stroke={additionalGridStroke}\n strokeDasharray={columnStrokeDasharray}\n />\n </>\n )}\n </>\n );\n }\n}\n\nexport default withStyles(() => ({}))(Grid);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { types } from '@pie-lib/plot';\nimport { color, Readable } from '@pie-lib/render-ui';\nimport EditableHtml from '@pie-lib/editable-html';\nimport cn from 'classnames';\n\nconst rotations = {\n left: -90,\n top: 0,\n bottom: 0,\n right: 90,\n};\n\nexport const getTransform = (side, width, height) => {\n const t = (x, y, rotate) => `translate(${x}, ${y}), rotate(${rotate})`;\n\n if (side === 'left') {\n return t(-20, height / 2, rotations[side]);\n }\n if (side === 'right') {\n return t(width + 30, height / 2, rotations[side]);\n }\n if (side === 'top') {\n return t(width / 2, -20, rotations[side]);\n }\n if (side === 'bottom') {\n return t(width / 2, height + 30, rotations[side]);\n }\n};\n\nconst getY = (side, height) => {\n switch (side) {\n case 'left':\n return -height;\n case 'top':\n return -height;\n case 'right':\n return -height - 10;\n default:\n return -height + 10;\n }\n};\n\nclass RawLabel extends React.Component {\n static propTypes = {\n text: PropTypes.string,\n side: PropTypes.string,\n classes: PropTypes.object,\n disabledLabel: PropTypes.bool,\n placeholder: PropTypes.string,\n graphProps: types.GraphPropsType.isRequired,\n onChange: PropTypes.func,\n };\n\n static defaultProps = {\n onChange: () => {},\n };\n\n render() {\n const { disabledLabel, placeholder, text, side, graphProps, classes, onChange, mathMlOptions = {} } = this.props;\n const { size, domain, range } = graphProps;\n const totalHeight = (size.height || 500) + (range.padding || 0) * 2;\n const totalWidth = (size.width || 500) + (domain.padding || 0) * 2;\n\n const transform = getTransform(side, totalWidth, totalHeight);\n const width = side === 'left' || side === 'right' ? totalHeight : totalWidth;\n const height = 36;\n const y = getY(side, height);\n const finalHeight = side === 'bottom' ? height + 22 : height + 18;\n\n const activePlugins = [\n 'bold',\n 'italic',\n 'underline',\n 'strikethrough',\n 'math',\n // 'languageCharacters'\n ];\n\n return (\n <foreignObject\n x={-(width / 2)}\n y={y}\n width={width}\n height={finalHeight}\n transform={transform}\n textAnchor=\"middle\"\n >\n <Readable false>\n <EditableHtml\n className={cn(\n {\n [classes.bottomLabel]: side === 'bottom',\n [classes.disabledAxisLabel]: disabledLabel,\n },\n classes.axisLabel,\n )}\n markup={text || ''}\n onChange={onChange}\n placeholder={!disabledLabel && placeholder}\n toolbarOpts={{\n position: side === 'bottom' ? 'top' : 'bottom',\n noPadding: true,\n noBorder: true,\n }}\n activePlugins={activePlugins}\n mathMlOptions={mathMlOptions}\n />\n </Readable>\n </foreignObject>\n );\n }\n}\n\nconst Label = withStyles((theme) => ({\n label: {\n fill: color.defaults.SECONDARY,\n },\n axisLabel: {\n fontSize: theme.typography.fontSize - 2,\n textAlign: 'center',\n padding: '0 4px',\n },\n disabledAxisLabel: {\n pointerEvents: 'none',\n },\n bottomLabel: {\n marginTop: '44px',\n },\n}))(RawLabel);\n\nexport const LabelType = {\n left: PropTypes.string,\n top: PropTypes.string,\n bottom: PropTypes.string,\n right: PropTypes.string,\n};\n\nexport class Labels extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n className: PropTypes.string,\n disabledLabels: PropTypes.bool,\n placeholders: PropTypes.object,\n value: PropTypes.shape(LabelType),\n graphProps: PropTypes.object,\n onChange: PropTypes.object,\n };\n\n static defaultProps = {};\n\n onChangeLabel = (newValue, side) => {\n const { value, onChange } = this.props;\n const labels = {\n ...value,\n [side]: newValue,\n };\n\n onChange(labels);\n };\n\n render() {\n const { disabledLabels, placeholders = {}, value = {}, graphProps, mathMlOptions = {} } = this.props;\n\n return (\n <React.Fragment>\n <Label\n key=\"left\"\n side=\"left\"\n text={value.left}\n disabledLabel={disabledLabels}\n placeholder={placeholders.left}\n graphProps={graphProps}\n onChange={(value) => this.onChangeLabel(value, 'left')}\n mathMlOptions={mathMlOptions}\n />\n <Label\n key=\"top\"\n side=\"top\"\n text={value.top}\n disabledLabel={disabledLabels}\n placeholder={placeholders.top}\n graphProps={graphProps}\n onChange={(value) => this.onChangeLabel(value, 'top')}\n mathMlOptions={mathMlOptions}\n />\n <Label\n key=\"bottom\"\n side=\"bottom\"\n text={value.bottom}\n disabledLabel={disabledLabels}\n placeholder={placeholders.bottom}\n graphProps={graphProps}\n onChange={(value) => this.onChangeLabel(value, 'bottom')}\n mathMlOptions={mathMlOptions}\n />\n <Label\n key=\"right\"\n side=\"right\"\n text={value.right}\n disabledLabel={disabledLabels}\n placeholder={placeholders.right}\n graphProps={graphProps}\n onChange={(value) => this.onChangeLabel(value, 'right')}\n mathMlOptions={mathMlOptions}\n />\n </React.Fragment>\n );\n }\n}\n\nexport default Labels;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { select, mouse } from 'd3-selection';\nimport { types, utils } from '@pie-lib/plot';\nimport { getTickValues, thinnerShapesNeeded } from './utils';\n\nexport default class Bg extends React.Component {\n static propTypes = {\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n onClick: PropTypes.func.isRequired,\n graphProps: types.GraphPropsType.isRequired,\n };\n\n static defaultProps = {};\n\n componentDidMount() {\n const rect = select(this.rect);\n\n rect.on('click', this.onRectClick.bind(this, rect));\n }\n\n shouldComponentUpdate(nextProps) {\n return (\n !utils.isDomainRangeEqual(this.props.graphProps, nextProps.graphProps) ||\n this.props.width !== nextProps.width ||\n this.props.height !== nextProps.height\n );\n }\n\n getRectPadding = () => {\n const { graphProps } = this.props;\n\n return thinnerShapesNeeded(graphProps) ? 6 : 10;\n };\n\n /**\n * Note: we use d3 click + mouse to give us domain values directly.\n * Saves us having to calculate them ourselves from a MouseEvent.\n */\n onRectClick = (rect) => {\n const { onClick, graphProps } = this.props;\n const { scale } = graphProps;\n\n const padding = this.getRectPadding();\n const coords = mouse(rect._groups[0][0]);\n\n // decrease the padding from coordinates to indicate the correct point clicked\n const x = scale.x.invert(coords[0] - padding);\n const y = scale.y.invert(coords[1] - padding);\n\n const rowTicks = getTickValues(graphProps.range);\n const columnTicks = getTickValues(graphProps.domain);\n\n const closest = (ticks, value) => {\n return (\n ticks.length &&\n ticks.reduce((prev, curr) => {\n const currentDistance = Math.abs(curr - value);\n const previousDistance = Math.abs(prev - value);\n\n return currentDistance <= previousDistance ? curr : prev;\n })\n );\n };\n\n let snapped = {};\n\n if (columnTicks.indexOf(x) >= 0 && rowTicks.indexOf(y) >= 0) {\n snapped.x = x;\n snapped.y = y;\n } else {\n snapped.x = closest(columnTicks, x);\n snapped.y = closest(rowTicks, y);\n }\n\n onClick(snapped);\n };\n\n render() {\n const { width, height } = this.props;\n const padding = this.getRectPadding();\n\n // expand the size of clickable area so a small area outside the edges of the grid lines to be clickable\n return (\n <rect\n ref={(rect) => (this.rect = rect)}\n transform={`translate(-${padding}, -${padding})`}\n fill=\"red\"\n fillOpacity=\"0.0\"\n width={width + padding * 2}\n height={height + padding * 2}\n />\n );\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport isEqual from 'lodash/isEqual';\nimport cloneDeep from 'lodash/cloneDeep';\nimport { Root, types, createGraphProps } from '@pie-lib/plot';\nimport debug from 'debug';\n\nimport { Axes, AxisPropTypes } from './axis';\nimport Grid from './grid';\nimport { LabelType } from './labels';\nimport Bg from './bg';\nimport { isDuplicatedMark, areArraysOfObjectsEqual } from './utils';\n\nconst log = debug('pie-lib:graphing-solution-set:graph');\n\nexport const graphPropTypes = {\n axesSettings: PropTypes.shape(AxisPropTypes),\n backgroundMarks: PropTypes.array,\n className: PropTypes.string,\n collapsibleToolbar: PropTypes.bool,\n collapsibleToolbarTitle: PropTypes.string,\n disabledLabels: PropTypes.bool,\n disabledTitle: PropTypes.bool,\n domain: types.DomainType,\n labels: PropTypes.shape(LabelType),\n labelModeEnabled: PropTypes.bool,\n coordinatesOnHover: PropTypes.bool,\n marks: PropTypes.array,\n onChangeLabels: PropTypes.func,\n onChangeMarks: PropTypes.func,\n onChangeTitle: PropTypes.func,\n range: types.DomainType,\n size: PropTypes.shape({\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n }),\n showLabels: PropTypes.bool,\n showPixelGuides: PropTypes.bool,\n showTitle: PropTypes.bool,\n title: PropTypes.string,\n tools: PropTypes.array,\n};\n\nconst getMaskSize = (size) => ({\n x: -23,\n y: -23,\n width: size.width + 46,\n height: size.height + 46,\n});\n\nexport const removeBuildingToolIfCurrentToolDiffers = ({ marks, currentTool }) => {\n const buildingMark = marks.filter((m) => m.building)[0];\n let newMarks = cloneDeep(marks);\n\n if (buildingMark && currentTool && buildingMark.type !== currentTool.type) {\n const index = newMarks.findIndex((m) => isEqual(m, buildingMark));\n\n if (index >= 0) {\n newMarks.splice(index, 1);\n }\n }\n\n return newMarks;\n};\n\nexport class Graph extends React.Component {\n constructor(props) {\n super(props);\n this.maskUid = this.generateMaskId();\n }\n\n static propTypes = {\n ...graphPropTypes,\n currentTool: PropTypes.object,\n };\n\n static defaultProps = {\n onChangeMarks: () => {},\n disabledLabels: false,\n disabledTitle: false,\n };\n\n state = {};\n\n generateMaskId() {\n return 'graph-' + (Math.random() * 10000).toFixed();\n }\n\n componentDidMount = () => this.setState({ labelNode: this.labelNode });\n\n changeMark = (oldMark, newMark) => {\n const { onChangeMarks, marks, gssLineData } = this.props;\n\n if (gssLineData?.selectedTool === 'solutionSet') {\n return;\n }\n\n let newMarks = cloneDeep(marks);\n\n const index = newMarks.findIndex((m) => isEqual(m, oldMark));\n\n if (index >= 0 && !isDuplicatedMark(newMark, marks, oldMark)) {\n newMarks.splice(index, 1, newMark);\n\n onChangeMarks(newMarks);\n }\n };\n\n completeMark = (markData) => {\n const { currentTool, marks } = this.props;\n const buildingMark = marks.filter((m) => m.building)[0];\n\n if (!buildingMark || !currentTool) return;\n\n const updatedMark = currentTool.complete(buildingMark, markData);\n\n this.updateMarks(buildingMark, updatedMark);\n };\n\n updateMarks = (existing, update, addIfMissing = false) => {\n const { onChangeMarks, marks } = this.props;\n let newMarks = cloneDeep(marks);\n\n if (!update || (!update.building && isDuplicatedMark(update, marks))) {\n return;\n }\n\n const index = newMarks.findIndex((m) => isEqual(m, existing));\n\n if (index >= 0) {\n newMarks.splice(index, 1, update);\n\n onChangeMarks(newMarks);\n } else if (addIfMissing) {\n onChangeMarks([...newMarks, update]);\n }\n };\n\n getComponent = (mark) => {\n if (!mark) return null;\n\n const tool = (this.props.tools || []).find((t) => t.type === mark.type);\n\n return (tool && tool.Component) || null;\n };\n\n onBgClick = (point) => {\n const { x, y } = point || {};\n const { labelModeEnabled, currentTool, marks, gssLineData, onSolutionSetSelected } = this.props;\n if (gssLineData) {\n if (gssLineData.selectedTool === 'solutionSet') {\n onSolutionSetSelected(point);\n return;\n }\n if (\n gssLineData.numberOfLines === 1 &&\n gssLineData.selectedTool === 'lineA' &&\n marks.length === 1 &&\n !marks[0].building\n ) {\n return;\n }\n if (gssLineData.numberOfLines === 2 && gssLineData.selectedTool === 'lineA' && marks.length === 2) {\n return;\n }\n if (\n gssLineData.numberOfLines === 2 &&\n gssLineData.selectedTool === 'lineA' &&\n marks.length === 1 &&\n !marks[0].building\n ) {\n return;\n }\n if (\n gssLineData.numberOfLines === 2 &&\n gssLineData.selectedTool === 'lineB' &&\n marks.length === 2 &&\n !marks[1].building\n ) {\n return;\n }\n }\n if (labelModeEnabled || !currentTool || [null, undefined].includes(x) || [null, undefined].includes(y)) {\n return;\n }\n\n log('[onBgClick] x,y: ', x, y);\n\n const buildingMark = marks.filter((m) => m.building)[0];\n let updatedMark;\n\n // if the building mark has a different type, we just replace it\n if (buildingMark && currentTool && buildingMark.type === currentTool.type) {\n updatedMark = currentTool.addPoint({ x, y }, { ...buildingMark });\n } else {\n updatedMark = currentTool.addPoint({ x, y }, undefined);\n }\n\n this.updateMarks(buildingMark, updatedMark, true);\n };\n\n render() {\n const {\n axesSettings,\n currentTool,\n coordinatesOnHover,\n size,\n disabledLabels,\n disabledTitle,\n domain,\n backgroundMarks,\n range,\n title,\n labels,\n labelModeEnabled,\n labelsPlaceholders,\n showLabels,\n showPixelGuides,\n showTitle,\n titlePlaceholder,\n onChangeLabels,\n onChangeTitle,\n mathMlOptions = {},\n gssLineData,\n disabled,\n } = this.props;\n let { marks } = this.props;\n\n const graphProps = createGraphProps(domain, range, size, () => this.rootNode);\n\n const maskSize = getMaskSize(size);\n let common = { graphProps, labelModeEnabled, gssLineData };\n\n marks = removeBuildingToolIfCurrentToolDiffers({ marks: marks || [], currentTool });\n let solutionSet = marks.filter((mark) => mark.type === 'polygon');\n if (gssLineData && gssLineData.selectedTool === 'solutionSet') {\n gssLineData.sections.forEach((section) => {\n if (solutionSet.length === 0 || !areArraysOfObjectsEqual(section, solutionSet[0].points)) {\n let polygon = {\n type: 'polygon',\n building: false,\n closed: true,\n points: section,\n isSolution: false,\n };\n if (!disabled) marks.push(polygon);\n }\n });\n }\n //Adjusted layering of added svg elements so that polygons will be added first and lines will be added second\n let newMarks = [];\n newMarks.push(...marks.filter((mark) => mark.type === 'polygon'));\n newMarks.push(...marks.filter((mark) => mark.type === 'line'));\n\n return (\n <Root\n rootRef={(r) => (this.rootNode = r)}\n disabledTitle={disabledTitle}\n disabledLabels={disabledLabels}\n labels={labels}\n labelsPlaceholders={labelsPlaceholders || {}}\n showPixelGuides={showPixelGuides}\n showLabels={showLabels}\n showTitle={showTitle}\n title={title}\n titlePlaceholder={titlePlaceholder}\n onChangeTitle={onChangeTitle}\n onChangeLabels={onChangeLabels}\n mathMlOptions={mathMlOptions}\n {...common}\n >\n <g\n transform={\n domain && domain.padding && domain.range ? `translate(${domain.padding}, ${range.padding})` : undefined\n }\n >\n <Grid {...common} />\n <Axes {...axesSettings} {...common} />\n <Bg {...size} onClick={this.onBgClick} {...common} />\n <mask id={`${this.maskUid}`}>\n <rect {...maskSize} fill=\"white\" /> {/* TODO hardcoded color */}\n </mask>\n\n <g id=\"marks\" mask={`url('#${this.maskUid}')`}>\n {(backgroundMarks || []).map((m, index) => {\n const Component = this.getComponent(m);\n const markType = m.type;\n\n return (\n <Component\n key={`${markType}-${index}-bg`}\n mark={{ ...m, disabled: true, isBackground: true }}\n labelNode={this.state.labelNode}\n onClick={this.onBgClick}\n {...common}\n />\n );\n })}\n\n {newMarks.map((m, index) => {\n const Component = this.getComponent(m);\n const markType = m.type;\n\n return (\n <Component\n key={`${markType}-${index}`}\n mark={m}\n coordinatesOnHover={coordinatesOnHover}\n onChange={this.changeMark}\n onComplete={this.completeMark}\n onClick={this.onBgClick}\n onDragStart={this.startDrag}\n onDragStop={this.stopDrag}\n labelNode={this.state.labelNode}\n isToolActive={currentTool && markType === currentTool.type}\n {...common}\n />\n );\n })}\n <foreignObject\n ref={(labelNode) => (this.labelNode = labelNode)}\n x=\"0\"\n y=\"0\"\n {...size}\n style={{ pointerEvents: 'none', fontSize: '14px' }}\n />\n </g>\n </g>\n </Root>\n );\n }\n}\n\nexport default Graph;\n","const marks = (state = [], action) => {\n switch (action.type) {\n case 'CHANGE_MARKS':\n if (Array.isArray(action.marks)) {\n return action.marks;\n } else {\n throw new Error('marks must be an array');\n }\n default:\n return state;\n }\n};\n\nexport default marks;\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar ActionTypes = exports.ActionTypes = {\n UNDO: '@@redux-undo/UNDO',\n REDO: '@@redux-undo/REDO',\n JUMP_TO_FUTURE: '@@redux-undo/JUMP_TO_FUTURE',\n JUMP_TO_PAST: '@@redux-undo/JUMP_TO_PAST',\n JUMP: '@@redux-undo/JUMP',\n CLEAR_HISTORY: '@@redux-undo/CLEAR_HISTORY'\n};\n\nvar ActionCreators = exports.ActionCreators = {\n undo: function undo() {\n return { type: ActionTypes.UNDO };\n },\n redo: function redo() {\n return { type: ActionTypes.REDO };\n },\n jumpToFuture: function jumpToFuture(index) {\n return { type: ActionTypes.JUMP_TO_FUTURE, index: index };\n },\n jumpToPast: function jumpToPast(index) {\n return { type: ActionTypes.JUMP_TO_PAST, index: index };\n },\n jump: function jump(index) {\n return { type: ActionTypes.JUMP, index: index };\n },\n clearHistory: function clearHistory() {\n return { type: ActionTypes.CLEAR_HISTORY };\n }\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.parseActions = parseActions;\nexports.isHistory = isHistory;\nexports.distinctState = distinctState;\nexports.includeAction = includeAction;\nexports.excludeAction = excludeAction;\nexports.combineFilters = combineFilters;\nexports.groupByActionTypes = groupByActionTypes;\nexports.newHistory = newHistory;\n// parseActions helper: takes a string (or array)\n// and makes it an array if it isn't yet\nfunction parseActions(rawActions) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\n if (Array.isArray(rawActions)) {\n return rawActions;\n } else if (typeof rawActions === 'string') {\n return [rawActions];\n }\n return defaultValue;\n}\n\n// isHistory helper: check for a valid history object\nfunction isHistory(history) {\n return typeof history.present !== 'undefined' && typeof history.future !== 'undefined' && typeof history.past !== 'undefined' && Array.isArray(history.future) && Array.isArray(history.past);\n}\n\n// distinctState helper: deprecated, does nothing in latest beta\n/* istanbul ignore next */\nfunction distinctState() {\n console.warn('distinctState is deprecated in beta4 and newer. ' + 'The distinctState behavior is now default, which means only ' + 'actions resulting in a new state are recorded. ' + 'See https://github.com/omnidan/redux-undo#filtering-actions ' + 'for more details.');\n return function () {\n return true;\n };\n}\n\n// includeAction helper: whitelist actions to be added to the history\nfunction includeAction(rawActions) {\n var actions = parseActions(rawActions);\n return function (action) {\n return actions.indexOf(action.type) >= 0;\n };\n}\n\n// excludeAction helper: blacklist actions from being added to the history\nfunction excludeAction(rawActions) {\n var actions = parseActions(rawActions);\n return function (action) {\n return actions.indexOf(action.type) < 0;\n };\n}\n\n// combineFilters helper: combine multiple filters to one\nfunction combineFilters() {\n for (var _len = arguments.length, filters = Array(_len), _key = 0; _key < _len; _key++) {\n filters[_key] = arguments[_key];\n }\n\n return filters.reduce(function (prev, curr) {\n return function (action, currentState, previousHistory) {\n return prev(action, currentState, previousHistory) && curr(action, currentState, previousHistory);\n };\n }, function () {\n return true;\n });\n}\n\nfunction groupByActionTypes(rawActions) {\n var actions = parseActions(rawActions);\n return function (action) {\n return actions.indexOf(action.type) >= 0 ? action.type : null;\n };\n}\n\nfunction newHistory(past, present, future) {\n var group = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n return {\n past: past,\n present: present,\n future: future,\n group: group,\n _latestUnfiltered: present,\n index: past.length,\n limit: past.length + future.length + 1\n };\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar __DEBUG__ = void 0;\nvar displayBuffer = void 0;\n\nvar colors = {\n prevState: '#9E9E9E',\n action: '#03A9F4',\n nextState: '#4CAF50'\n\n /* istanbul ignore next: debug messaging is not tested */\n};function initBuffer() {\n displayBuffer = {\n header: [],\n prev: [],\n action: [],\n next: [],\n msgs: []\n };\n}\n\n/* istanbul ignore next: debug messaging is not tested */\nfunction printBuffer() {\n var _displayBuffer = displayBuffer,\n header = _displayBuffer.header,\n prev = _displayBuffer.prev,\n next = _displayBuffer.next,\n action = _displayBuffer.action,\n msgs = _displayBuffer.msgs;\n\n if (console.group) {\n var _console, _console2, _console3, _console4, _console5;\n\n (_console = console).groupCollapsed.apply(_console, _toConsumableArray(header));\n (_console2 = console).log.apply(_console2, _toConsumableArray(prev));\n (_console3 = console).log.apply(_console3, _toConsumableArray(action));\n (_console4 = console).log.apply(_console4, _toConsumableArray(next));\n (_console5 = console).log.apply(_console5, _toConsumableArray(msgs));\n console.groupEnd();\n } else {\n var _console6, _console7, _console8, _console9, _console10;\n\n (_console6 = console).log.apply(_console6, _toConsumableArray(header));\n (_console7 = console).log.apply(_console7, _toConsumableArray(prev));\n (_console8 = console).log.apply(_console8, _toConsumableArray(action));\n (_console9 = console).log.apply(_console9, _toConsumableArray(next));\n (_console10 = console).log.apply(_console10, _toConsumableArray(msgs));\n }\n}\n\n/* istanbul ignore next: debug messaging is not tested */\nfunction colorFormat(text, color, obj) {\n return ['%c' + text, 'color: ' + color + '; font-weight: bold', obj];\n}\n\n/* istanbul ignore next: debug messaging is not tested */\nfunction start(action, state) {\n initBuffer();\n if (__DEBUG__) {\n if (console.group) {\n displayBuffer.header = ['%credux-undo', 'font-style: italic', 'action', action.type];\n displayBuffer.action = colorFormat('action', colors.action, action);\n displayBuffer.prev = colorFormat('prev history', colors.prevState, state);\n } else {\n displayBuffer.header = ['redux-undo action', action.type];\n displayBuffer.action = ['action', action];\n displayBuffer.prev = ['prev history', state];\n }\n }\n}\n\n/* istanbul ignore next: debug messaging is not tested */\nfunction end(nextState) {\n if (__DEBUG__) {\n if (console.group) {\n displayBuffer.next = colorFormat('next history', colors.nextState, nextState);\n } else {\n displayBuffer.next = ['next history', nextState];\n }\n printBuffer();\n }\n}\n\n/* istanbul ignore next: debug messaging is not tested */\nfunction log() {\n if (__DEBUG__) {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n displayBuffer.msgs = displayBuffer.msgs.concat([].concat(args, ['\\n']));\n }\n}\n\n/* istanbul ignore next: debug messaging is not tested */\nfunction set(debug) {\n __DEBUG__ = debug;\n}\n\nexports.set = set;\nexports.start = start;\nexports.end = end;\nexports.log = log;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nexports.default = undoable;\n\nvar _debug = require('./debug');\n\nvar debug = _interopRequireWildcard(_debug);\n\nvar _actions = require('./actions');\n\nvar _helpers = require('./helpers');\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\n// createHistory\nfunction createHistory(state, ignoreInitialState) {\n // ignoreInitialState essentially prevents the user from undoing to the\n // beginning, in the case that the undoable reducer handles initialization\n // in a way that can't be redone simply\n var history = (0, _helpers.newHistory)([], state, []);\n if (ignoreInitialState) {\n history._latestUnfiltered = null;\n }\n return history;\n}\n\n// lengthWithoutFuture: get length of history\nfunction lengthWithoutFuture(history) {\n return history.past.length + 1;\n}\n\n// insert: insert `state` into history, which means adding the current state\n// into `past`, setting the new `state` as `present` and erasing\n// the `future`.\nfunction insert(history, state, limit, group) {\n debug.log('inserting', state);\n debug.log('new free: ', limit - lengthWithoutFuture(history));\n\n var past = history.past,\n _latestUnfiltered = history._latestUnfiltered;\n\n var historyOverflow = limit && lengthWithoutFuture(history) >= limit;\n\n var pastSliced = past.slice(historyOverflow ? 1 : 0);\n var newPast = _latestUnfiltered != null ? [].concat(_toConsumableArray(pastSliced), [_latestUnfiltered]) : pastSliced;\n\n return (0, _helpers.newHistory)(newPast, state, [], group);\n}\n\n// jumpToFuture: jump to requested index in future history\nfunction jumpToFuture(history, index) {\n if (index < 0 || index >= history.future.length) return history;\n\n var past = history.past,\n future = history.future,\n _latestUnfiltered = history._latestUnfiltered;\n\n\n var newPast = [].concat(_toConsumableArray(past), [_latestUnfiltered], _toConsumableArray(future.slice(0, index)));\n var newPresent = future[index];\n var newFuture = future.slice(index + 1);\n\n return (0, _helpers.newHistory)(newPast, newPresent, newFuture);\n}\n\n// jumpToPast: jump to requested index in past history\nfunction jumpToPast(history, index) {\n if (index < 0 || index >= history.past.length) return history;\n\n var past = history.past,\n future = history.future,\n _latestUnfiltered = history._latestUnfiltered;\n\n\n var newPast = past.slice(0, index);\n var newFuture = [].concat(_toConsumableArray(past.slice(index + 1)), [_latestUnfiltered], _toConsumableArray(future));\n var newPresent = past[index];\n\n return (0, _helpers.newHistory)(newPast, newPresent, newFuture);\n}\n\n// jump: jump n steps in the past or forward\nfunction jump(history, n) {\n if (n > 0) return jumpToFuture(history, n - 1);\n if (n < 0) return jumpToPast(history, history.past.length + n);\n return history;\n}\n\n// helper to dynamically match in the reducer's switch-case\nfunction actionTypeAmongClearHistoryType(actionType, clearHistoryType) {\n return clearHistoryType.indexOf(actionType) > -1 ? actionType : !actionType;\n}\n\n// redux-undo higher order reducer\nfunction undoable(reducer) {\n var rawConfig = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n debug.set(rawConfig.debug);\n\n var config = {\n initTypes: (0, _helpers.parseActions)(rawConfig.initTypes, ['@@redux-undo/INIT']),\n limit: rawConfig.limit,\n filter: rawConfig.filter || function () {\n return true;\n },\n groupBy: rawConfig.groupBy || function () {\n return null;\n },\n undoType: rawConfig.undoType || _actions.ActionTypes.UNDO,\n redoType: rawConfig.redoType || _actions.ActionTypes.REDO,\n jumpToPastType: rawConfig.jumpToPastType || _actions.ActionTypes.JUMP_TO_PAST,\n jumpToFutureType: rawConfig.jumpToFutureType || _actions.ActionTypes.JUMP_TO_FUTURE,\n jumpType: rawConfig.jumpType || _actions.ActionTypes.JUMP,\n clearHistoryType: Array.isArray(rawConfig.clearHistoryType) ? rawConfig.clearHistoryType : [rawConfig.clearHistoryType || _actions.ActionTypes.CLEAR_HISTORY],\n neverSkipReducer: rawConfig.neverSkipReducer || false,\n ignoreInitialState: rawConfig.ignoreInitialState || false,\n syncFilter: rawConfig.syncFilter || false\n };\n\n var initialState = config.history;\n return function () {\n for (var _len = arguments.length, slices = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n slices[_key - 2] = arguments[_key];\n }\n\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;\n var action = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n debug.start(action, state);\n\n var history = state;\n if (!initialState) {\n debug.log('history is uninitialized');\n\n if (state === undefined) {\n var clearHistoryAction = { type: _actions.ActionTypes.CLEAR_HISTORY };\n var start = reducer.apply(undefined, [state, clearHistoryAction].concat(slices));\n\n history = createHistory(start, config.ignoreInitialState);\n\n debug.log('do not set initialState on probe actions');\n } else if ((0, _helpers.isHistory)(state)) {\n history = initialState = config.ignoreInitialState ? state : (0, _helpers.newHistory)(state.past, state.present, state.future);\n debug.log('initialHistory initialized: initialState is a history', initialState);\n } else {\n history = initialState = createHistory(state, config.ignoreInitialState);\n debug.log('initialHistory initialized: initialState is not a history', initialState);\n }\n }\n\n var skipReducer = function skipReducer(res) {\n return config.neverSkipReducer ? _extends({}, res, {\n present: reducer.apply(undefined, [res.present, action].concat(slices))\n }) : res;\n };\n\n var res = void 0;\n switch (action.type) {\n case undefined:\n return history;\n\n case config.undoType:\n res = jump(history, -1);\n debug.log('perform undo');\n debug.end(res);\n return skipReducer(res);\n\n case config.redoType:\n res = jump(history, 1);\n debug.log('perform redo');\n debug.end(res);\n return skipReducer(res);\n\n case config.jumpToPastType:\n res = jumpToPast(history, action.index);\n debug.log('perform jumpToPast to ' + action.index);\n debug.end(res);\n return skipReducer(res);\n\n case config.jumpToFutureType:\n res = jumpToFuture(history, action.index);\n debug.log('perform jumpToFuture to ' + action.index);\n debug.end(res);\n return skipReducer(res);\n\n case config.jumpType:\n res = jump(history, action.index);\n debug.log('perform jump to ' + action.index);\n debug.end(res);\n return skipReducer(res);\n\n case actionTypeAmongClearHistoryType(action.type, config.clearHistoryType):\n res = createHistory(history.present);\n debug.log('perform clearHistory');\n debug.end(res);\n return skipReducer(res);\n\n default:\n res = reducer.apply(undefined, [history.present, action].concat(slices));\n\n if (config.initTypes.some(function (actionType) {\n return actionType === action.type;\n })) {\n debug.log('reset history due to init action');\n debug.end(initialState);\n return initialState;\n }\n\n if (history._latestUnfiltered === res) {\n // Don't handle this action. Do not call debug.end here,\n // because this action should not produce side effects to the console\n return history;\n }\n\n var filtered = typeof config.filter === 'function' && !config.filter(action, res, history);\n var group = config.groupBy(action, res, history);\n\n if (filtered) {\n // if filtering an action, merely update the present\n var filteredState = (0, _helpers.newHistory)(history.past, res, history.future, history.group);\n if (!config.syncFilter) {\n filteredState._latestUnfiltered = history._latestUnfiltered;\n }\n debug.log('filter ignored action, not storing it in past');\n debug.end(filteredState);\n return filteredState;\n } else if (group != null && group === history.group) {\n var groupedState = (0, _helpers.newHistory)(history.past, res, history.future, history.group);\n debug.log('groupBy grouped the action with the previous action');\n debug.end(groupedState);\n return groupedState;\n } else {\n // If the action wasn't filtered, insert normally\n history = insert(history, res, config.limit, group);\n\n debug.log('inserted new state into history');\n debug.end(history);\n return history;\n }\n }\n };\n}\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _actions = require('./actions');\n\nObject.defineProperty(exports, 'ActionTypes', {\n enumerable: true,\n get: function get() {\n return _actions.ActionTypes;\n }\n});\nObject.defineProperty(exports, 'ActionCreators', {\n enumerable: true,\n get: function get() {\n return _actions.ActionCreators;\n }\n});\n\nvar _helpers = require('./helpers');\n\nObject.defineProperty(exports, 'parseActions', {\n enumerable: true,\n get: function get() {\n return _helpers.parseActions;\n }\n});\nObject.defineProperty(exports, 'isHistory', {\n enumerable: true,\n get: function get() {\n return _helpers.isHistory;\n }\n});\nObject.defineProperty(exports, 'distinctState', {\n enumerable: true,\n get: function get() {\n return _helpers.distinctState;\n }\n});\nObject.defineProperty(exports, 'includeAction', {\n enumerable: true,\n get: function get() {\n return _helpers.includeAction;\n }\n});\nObject.defineProperty(exports, 'excludeAction', {\n enumerable: true,\n get: function get() {\n return _helpers.excludeAction;\n }\n});\nObject.defineProperty(exports, 'combineFilters', {\n enumerable: true,\n get: function get() {\n return _helpers.combineFilters;\n }\n});\nObject.defineProperty(exports, 'groupByActionTypes', {\n enumerable: true,\n get: function get() {\n return _helpers.groupByActionTypes;\n }\n});\nObject.defineProperty(exports, 'newHistory', {\n enumerable: true,\n get: function get() {\n return _helpers.newHistory;\n }\n});\n\nvar _reducer = require('./reducer');\n\nObject.defineProperty(exports, 'default', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_reducer).default;\n }\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }","import { combineReducers } from 'redux';\nimport marks from './marks';\nimport undoable from 'redux-undo';\n\nexport default () => combineReducers({ marks: undoable(marks, { debug: false }) });\n","export const addMark = () => ({\n type: 'ADD_MARK',\n});\n\nexport const changeMarks = (marks) => ({\n type: 'CHANGE_MARKS',\n marks,\n});\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Typography, Button } from '@material-ui/core';\nimport Radio from '@material-ui/core/Radio';\nimport { withStyles } from '@material-ui/core/styles';\n\nexport class ToolMenu extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n gssLineData: PropTypes.object,\n disabled: PropTypes.bool,\n onChange: PropTypes.func,\n };\n\n render() {\n let { classes, gssLineData, disabled } = this.props;\n\n return (\n <div className={classes.selectLineRadioGroup}>\n <div className={classes.radioFieldOuter}>\n <div className={classes.radioFieldInner}>\n <Radio\n name={'select-line-radio-buttons'}\n onChange={this.onChangeRadioValue}\n value={'lineA'}\n disabled={!!disabled}\n checked={gssLineData.selectedTool === 'lineA'}\n className={classes.lineTypeRadio}\n />\n <Typography className={classes.lineNameFont}>Line A</Typography>\n </div>\n <div className={classes.radioFieldButtons}>\n {gssLineData.lineA.lineType === 'Solid' ? (\n <Button\n size={'small'}\n variant={'contained'}\n color={'primary'}\n onClick={() => this.lineTypeChange('A', 'Solid')}\n className={disabled ? classes.lineTypeButtonLeftSelectedDisabled : classes.lineTypeButtonLeftSelected}\n >\n &#x2714; Solid\n </Button>\n ) : (\n <Button\n size={'small'}\n variant={'contained'}\n disabled={!!disabled}\n onClick={() => this.lineTypeChange('A', 'Solid')}\n className={\n disabled ? classes.lineTypeButtonLeftUnSelectedDisabled : classes.lineTypeButtonLeftUnSelected\n }\n >\n Solid\n </Button>\n )}\n {gssLineData.lineA.lineType === 'Dashed' ? (\n <Button\n size={'small'}\n variant={'contained'}\n color={'primary'}\n onClick={() => this.lineTypeChange('A', 'Dashed')}\n className={disabled ? classes.lineTypeButtonRightSelectedDisabled : classes.lineTypeButtonRightSelected}\n >\n &#x2714; Dashed\n </Button>\n ) : (\n <Button\n size={'small'}\n variant={'contained'}\n disabled={!!disabled}\n onClick={() => this.lineTypeChange('A', 'Dashed')}\n className={\n disabled ? classes.lineTypeButtonRightUnSelectedDisabled : classes.lineTypeButtonRightUnSelected\n }\n >\n Dashed\n </Button>\n )}\n </div>\n </div>\n {gssLineData.numberOfLines === 2 ? (\n <div className={classes.radioFieldOuter}>\n <div className={classes.radioFieldInner}>\n <Radio\n name={'select-line-radio-buttons'}\n onChange={this.onChangeRadioValue}\n value={'lineB'}\n disabled={!!disabled}\n checked={gssLineData.selectedTool === 'lineB'}\n className={classes.lineTypeRadio}\n />\n <Typography className={classes.lineNameFont}>Line B</Typography>\n </div>\n <div className={classes.radioFieldButtons}>\n {gssLineData.lineB.lineType === 'Solid' ? (\n <Button\n size={'small'}\n variant={'contained'}\n color={'primary'}\n onClick={() => this.lineTypeChange('B', 'Solid')}\n className={disabled ? classes.lineTypeButtonLeftSelectedDisabled : classes.lineTypeButtonLeftSelected}\n >\n &#x2714; Solid\n </Button>\n ) : (\n <Button\n size={'small'}\n variant={'contained'}\n disabled={!!disabled}\n onClick={() => this.lineTypeChange('B', 'Solid')}\n className={\n disabled ? classes.lineTypeButtonLeftUnSelectedDisabled : classes.lineTypeButtonLeftUnSelected\n }\n >\n Solid\n </Button>\n )}\n {gssLineData.lineB.lineType === 'Dashed' ? (\n <Button\n size={'small'}\n variant={'contained'}\n color={'primary'}\n onClick={() => this.lineTypeChange('B', 'Dashed')}\n className={\n disabled ? classes.lineTypeButtonRightSelectedDisabled : classes.lineTypeButtonRightSelected\n }\n >\n &#x2714; Dashed\n </Button>\n ) : (\n <Button\n size={'small'}\n variant={'contained'}\n disabled={!!disabled}\n onClick={() => this.lineTypeChange('B', 'Dashed')}\n className={\n disabled ? classes.lineTypeButtonRightUnSelectedDisabled : classes.lineTypeButtonRightUnSelected\n }\n >\n Dashed\n </Button>\n )}\n </div>\n </div>\n ) : null}\n <div className={classes.radioFieldOuter}>\n <div className={classes.radioFieldInner}>\n <Radio\n name={'select-line-radio-buttons'}\n onChange={this.onChangeRadioValue}\n value={'solutionSet'}\n disabled={!!disabled}\n checked={gssLineData.selectedTool === 'solutionSet'}\n className={classes.lineTypeRadio}\n />\n <Typography className={classes.lineNameFont}>Solution Set</Typography>\n </div>\n </div>\n </div>\n );\n }\n\n onChangeRadioValue = (event) => {\n let { gssLineData, onChange } = this.props;\n let oldSelectedTool = gssLineData.selectedTool;\n gssLineData.selectedTool = event.target.value;\n onChange(gssLineData, oldSelectedTool);\n };\n\n lineTypeChange = (line, type) => {\n let { gssLineData, onChange } = this.props;\n let oldSelectedTool = gssLineData.selectedTool;\n gssLineData[`line${line}`].lineType = type;\n onChange(gssLineData, oldSelectedTool);\n };\n}\n\nconst styles = (theme) => ({\n radioButtonClass: {},\n selectLineRadioGroup: {\n display: 'flex',\n flexWrap: 'wrap',\n flexDirection: 'row',\n },\n radioFieldInner: {\n display: 'flex',\n flexWrap: 'wrap',\n flexDirection: 'row',\n alignItems: 'center',\n },\n radioFieldOuter: {\n display: 'flex',\n flexWrap: 'wrap',\n flexDirection: 'column',\n },\n radioFieldButtons: {\n display: 'flex',\n flexWrap: 'wrap',\n flexDirection: 'row',\n padding: '0 .9rem',\n },\n lineTypeText: {\n marginLeft: '.7rem',\n },\n lineNameFont: {\n fontWeight: 'bold',\n padding: '0 5px 0 0',\n },\n lineTypeButtonLeftSelected: {\n textTransform: 'none',\n border: '1px solid #3E4EB1',\n borderRadius: '0',\n backgroundColor: '#3E4EB1 !important',\n borderTopLeftRadius: '4px',\n borderBottomLeftRadius: '4px',\n color: '#FFFFFF !important',\n },\n lineTypeButtonLeftUnSelected: {\n textTransform: 'none',\n border: '1px solid #3E4EB1',\n borderRadius: '0',\n backgroundColor: '#FFFFFF !important',\n borderTopLeftRadius: '4px',\n borderBottomLeftRadius: '4px',\n color: '#3E4EB1 !important',\n },\n lineTypeButtonRightSelected: {\n textTransform: 'none',\n border: '1px solid #3E4EB1',\n borderRadius: '0',\n backgroundColor: '#3E4EB1 !important',\n borderTopRightRadius: '4px',\n borderBottomRightRadius: '4px',\n color: '#FFFFFF !important',\n },\n lineTypeButtonRightUnSelected: {\n textTransform: 'none',\n border: '1px solid #3E4EB1',\n borderRadius: '0',\n backgroundColor: '#FFFFFF !important',\n borderTopRightRadius: '4px',\n borderBottomRightRadius: '4px',\n color: '#3E4EB1 !important',\n },\n lineTypeRadio: {\n color: '#000000 !important',\n },\n lineTypeButtonLeftSelectedDisabled: {\n textTransform: 'none',\n border: '1px solid #3E4EB1',\n borderRadius: '0',\n backgroundColor: '#3E4EB1 !important',\n borderTopLeftRadius: '4px',\n borderBottomLeftRadius: '4px',\n color: '#FFFFFF !important',\n cursor: 'default',\n pointerEvents: 'none',\n },\n lineTypeButtonLeftUnSelectedDisabled: {\n textTransform: 'none',\n border: '1px solid #3E4EB1',\n borderRadius: '0',\n backgroundColor: '#FFFFFF !important',\n borderTopLeftRadius: '4px',\n borderBottomLeftRadius: '4px',\n color: '#3E4EB1 !important',\n cursor: 'default',\n pointerEvents: 'none',\n },\n lineTypeButtonRightSelectedDisabled: {\n textTransform: 'none',\n border: '1px solid #3E4EB1',\n borderRadius: '0',\n backgroundColor: '#3E4EB1 !important',\n borderTopRightRadius: '4px',\n borderBottomRightRadius: '4px',\n color: '#FFFFFF !important',\n cursor: 'default',\n pointerEvents: 'none',\n },\n lineTypeButtonRightUnSelectedDisabled: {\n textTransform: 'none',\n border: '1px solid #3E4EB1',\n borderRadius: '0',\n backgroundColor: '#FFFFFF !important',\n borderTopRightRadius: '4px',\n borderBottomRightRadius: '4px',\n color: '#3E4EB1 !important',\n cursor: 'default',\n pointerEvents: 'none',\n },\n});\n\nexport default withStyles(styles)(ToolMenu);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport Button from '@material-ui/core/Button';\nimport { withStyles } from '@material-ui/core';\nimport { color } from '@pie-lib/render-ui';\nimport Translator from '@pie-lib/translator';\n\nconst { translator } = Translator;\n\nexport class UndoRedo extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n className: PropTypes.string,\n onReset: PropTypes.func.isRequired,\n language: PropTypes.string,\n };\n static defaultProps = {};\n\n render() {\n const { classes, className, onReset = false, language } = this.props;\n return (\n <div className={classNames(className)}>\n <Button classes={{ root: classes.button }} onClick={() => onReset()}>\n {translator.t('graphing.reset', { lng: language })}\n </Button>\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n button: {\n color: color.text(),\n fontWeight: 'bold',\n marginBottom: theme.spacing.unit / 2,\n '&:not(:last-of-type)': {\n marginRight: theme.spacing.unit / 2,\n },\n },\n undoRedoDiv: {\n display: 'flex',\n flexDirection: 'row',\n },\n});\n\nexport default withStyles(styles)(UndoRedo);\n","import PropTypes from 'prop-types';\n\nexport const ToolPropTypeFields = {\n mark: PropTypes.any,\n onChange: PropTypes.func,\n onDragStart: PropTypes.func,\n onDragStop: PropTypes.func,\n};\n","import { color } from '@pie-lib/render-ui';\n\nexport const disabled = (key = 'fill') => ({\n [key]: color.disabled(),\n pointerEvents: 'none',\n});\n\nexport const correct = (key = 'fill') => ({\n [key]: color.correct(),\n pointerEvents: 'none',\n});\nexport const incorrect = (key = 'fill') => ({\n [key]: color.incorrect(),\n pointerEvents: 'none',\n});\n\nexport const missing = (key = 'fill') => ({\n [key]: color.missing(),\n pointerEvents: 'none',\n});\n","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 isSolution: 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 { points, classes, className, correctness, graphProps, closed, isSolution, ...rest } = 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(isSolution ? classes.gssSolution : classes.gssClosed, classes[correctness], className)}\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.defaults.SECONDARY_LIGHT,\n },\n open: {\n fill: fade(theme.palette.primary.light, 0.0), // TODO hardcoded color\n strokeWidth: 2,\n stroke: color.defaults.SECONDARY_LIGHT,\n pointerEvents: 'none',\n },\n gssClosed: {\n fill: 'transparent',\n '&:hover': {\n fill: 'rgb(0, 0, 0, 0.25)',\n },\n },\n gssSolution: {\n fill: 'rgb(60, 73, 150, 0.6)',\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","import { useState, useEffect } from 'react';\n\nexport const useDebounce = (value, delay) => {\n const [debouncedValue, setDebouncedValue] = useState(value);\n\n useEffect(() => {\n const handler = setTimeout(() => {\n setDebouncedValue(value);\n }, delay);\n return () => clearTimeout(handler);\n }, [value]);\n return debouncedValue;\n};\n","import React, { useState, useCallback, useEffect } from 'react';\nimport cn from 'classnames';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport AutosizeInput from 'react-input-autosize';\nimport { useDebounce } from './use-debounce';\nimport { types } from '@pie-lib/plot';\nimport { color } from '@pie-lib/render-ui';\n\nconst styles = (theme) => ({\n input: {\n float: 'right',\n padding: theme.spacing.unit * 0.5,\n fontFamily: theme.typography.fontFamily,\n fontSize: theme.typography.fontSize,\n border: `solid 1px ${color.defaults.SECONDARY}`,\n borderRadius: '3px',\n color: color.defaults.PRIMARY_DARK,\n },\n disabled: {\n border: `solid 1px ${color.defaults.PRIMARY_DARK}`,\n background: theme.palette.background.paper,\n },\n disabledMark: {\n border: `solid 1px ${color.disabled()}`,\n background: theme.palette.background.paper,\n color: color.disabled(),\n },\n});\n\nexport const position = (graphProps, mark, rect) => {\n rect = rect || { width: 0, height: 0 };\n const { scale, domain, range } = graphProps;\n const shift = 10;\n\n const rightEdge = scale.x(mark.x) + rect.width + shift;\n const bottomEdge = scale.y(mark.y) + rect.height + shift;\n\n const h = rightEdge >= scale.x(domain.max) ? 'left' : 'right';\n const v = bottomEdge >= scale.y(range.min) ? 'top' : 'bottom';\n\n return `${v}-${h}`;\n};\n\nexport const coordinates = (graphProps, mark, rect, position) => {\n const { scale } = graphProps;\n const shift = 10;\n rect = rect || { width: 0, height: 0 };\n\n switch (position) {\n case 'bottom-right': {\n return { left: scale.x(mark.x) + shift, top: scale.y(mark.y) + shift };\n }\n case 'bottom-left': {\n return { left: scale.x(mark.x) - shift - rect.width, top: scale.y(mark.y) + shift };\n }\n case 'top-left': {\n return {\n left: scale.x(mark.x) - shift - rect.width,\n top: scale.y(mark.y) - shift - rect.height,\n };\n }\n case 'top-right': {\n return {\n left: scale.x(mark.x) + shift,\n top: scale.y(mark.y) - shift - rect.height,\n };\n }\n }\n};\n\nexport const MarkLabel = (props) => {\n const [input, setInput] = useState(null);\n const _ref = useCallback((node) => setInput(node));\n\n const { mark, graphProps, classes, disabled, inputRef: externalInputRef, theme } = props;\n\n const [label, setLabel] = useState(mark.label);\n\n const onChange = (e) => setLabel(e.target.value);\n\n const debouncedLabel = useDebounce(label, 200);\n\n // useState only sets the value once, to synch props to state need useEffect\n useEffect(() => {\n setLabel(mark.label);\n }, [mark.label]);\n\n // pick up the change to debouncedLabel and save it\n useEffect(() => {\n if (typeof debouncedLabel === 'string' && debouncedLabel !== mark.label) {\n props.onChange(debouncedLabel);\n }\n }, [debouncedLabel]);\n\n const rect = input ? input.getBoundingClientRect() : { width: 0, height: 0 };\n const pos = position(graphProps, mark, rect);\n const leftTop = coordinates(graphProps, mark, rect, pos);\n\n const style = {\n position: 'fixed',\n pointerEvents: 'auto',\n ...leftTop,\n };\n\n const disabledInput = disabled || mark.disabled;\n\n return (\n <AutosizeInput\n inputRef={(r) => {\n _ref(r);\n externalInputRef(r);\n }}\n disabled={disabledInput}\n inputClassName={cn(classes.input, {\n [classes.disabled]: disabled,\n [classes.disabledMark]: mark.disabled,\n })}\n value={label}\n style={style}\n onChange={onChange}\n />\n );\n};\n\nMarkLabel.propTypes = {\n disabled: PropTypes.bool,\n onChange: PropTypes.func,\n graphProps: types.GraphPropsType,\n classes: PropTypes.object,\n inputRef: PropTypes.func,\n mark: PropTypes.object,\n theme: PropTypes.object,\n};\n\nexport default withStyles(styles, { withTheme: true })(MarkLabel);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { ToolPropTypeFields } from '../shared/types';\nimport chunk from 'lodash/chunk';\nimport initial from 'lodash/initial';\nimport debug from 'debug';\nimport DraggablePolygon from './polygon';\nimport { types } 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-solution-set:polygon');\n\nexport const buildLines = (points, closed) => {\n const expanded = points.reduce((acc, p, index) => {\n acc.push({ ...p, index });\n\n const isLast = index === points.length - 1;\n const next = isLast ? 0 : index + 1;\n\n acc.push({ ...points[next], index: next });\n\n return acc;\n }, []);\n\n const all = chunk(expanded, 2).map(([from, to]) => {\n return { from, to };\n });\n\n return closed ? all : initial(all);\n};\n\nexport const swap = (arr, ...rest) => {\n const pairs = chunk(rest, 2);\n\n return pairs.reduce(\n (acc, pr) => {\n if (pr.length === 2) {\n let [e, replacement] = pr;\n\n invariant(Number.isFinite(e.index), 'Index must be defined');\n\n const index = e.index;\n // const i = acc.findIndex(pt => pt.x === e.x && pt.y === e.y);\n\n if (index >= 0) {\n acc.splice(index, 1, replacement);\n\n return acc;\n } else {\n return acc;\n }\n } else {\n return acc;\n }\n },\n [...arr],\n );\n};\n\nexport class RawBaseComponent extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n className: PropTypes.string,\n disabled: PropTypes.bool,\n correctness: PropTypes.string,\n points: PropTypes.arrayOf(types.PointType),\n closed: PropTypes.bool,\n isSolution: PropTypes.bool,\n coordinatesOnHover: PropTypes.bool,\n onChange: PropTypes.func.isRequired,\n onClosePolygon: PropTypes.func.isRequired,\n onDragStart: PropTypes.func,\n onDragStop: PropTypes.func,\n onClick: PropTypes.func,\n graphProps: types.GraphPropsType.isRequired,\n isToolActive: PropTypes.bool,\n middle: PropTypes.object,\n labelNode: PropTypes.object,\n labelModeEnabled: PropTypes.bool,\n onChangeLabelProps: PropTypes.func,\n onChangeProps: PropTypes.func,\n };\n\n static defaultProps = {\n points: [],\n };\n\n dragPoint = (index, from, to) => {\n log('[dragPoint] from, to:', from, to);\n const { onChange, points } = this.props;\n const update = [...points];\n const overlapPoint = !!(points || []).find((p) => equalPoints(p, to));\n\n if (equalPoints(from, to) || overlapPoint) {\n return;\n }\n\n if (points[index].label) {\n to.label = points[index].label;\n }\n\n update.splice(index, 1, to);\n onChange(update);\n };\n\n dragLine = (existing, next) => {\n log('[dragLine]: ', existing, next);\n const { onChange } = this.props;\n\n if (existing.from.label) {\n next.from.label = existing.from.label;\n }\n\n if (existing.to.label) {\n next.to.label = existing.to.label;\n }\n\n const points = swap(this.props.points, existing.from, next.from, existing.to, next.to);\n onChange(points);\n };\n\n dragPoly = (existing, next) => {\n log('[dragPoly] ', existing, next);\n const { onChange } = this.props;\n\n next.forEach((point, index) => {\n if (existing[index].label) {\n next[index].label = existing[index].label;\n }\n });\n\n onChange(next);\n };\n\n close = () => {\n const { points, onClosePolygon } = this.props;\n log('[close] ...');\n\n if (points.length >= 3) {\n onClosePolygon();\n } else {\n log('[close] - nope');\n }\n };\n\n labelChange = (point, index) => {\n const { points, onChangeProps } = this.props;\n const updatedPoint = { ...point };\n\n if (!point.label || isEmpty(point.label)) {\n delete updatedPoint.label;\n }\n\n const update = [...points];\n\n update.splice(index, 1, updatedPoint);\n onChangeProps(update);\n };\n\n clickPoint = (point, index, data) => {\n const {\n closed,\n disabled,\n onClick,\n isToolActive,\n labelModeEnabled,\n onChangeProps,\n onChangeLabelProps,\n points,\n } = this.props;\n\n if (labelModeEnabled) {\n if (disabled) {\n return;\n }\n\n if (points && index === points.length) {\n const { a, b } = getRightestPoints(points);\n const middle = { label: '', ...point, ...getMiddleOfTwoPoints(a, b) };\n\n onChangeLabelProps(middle);\n } else {\n const update = [...points];\n\n update.splice(index, 1, { label: '', ...point });\n onChangeProps(update);\n }\n\n if (this.input[index]) {\n this.input[index].focus();\n }\n\n return;\n }\n\n if (isToolActive && !closed && index === 0) {\n this.close();\n return;\n }\n\n onClick(point || data);\n };\n\n // IMPORTANT, do not remove\n input = {};\n\n render() {\n const {\n closed,\n graphProps,\n onChangeLabelProps,\n points,\n middle,\n labelNode,\n labelModeEnabled,\n isSolution = false,\n } = this.props;\n const polygonLabelIndex = (points && points.length) || 0;\n if (labelNode && middle && middle.hasOwnProperty('label')) {\n ReactDOM.createPortal(\n <MarkLabel\n inputRef={(r) => (this.input[polygonLabelIndex] = r)}\n disabled={!labelModeEnabled}\n mark={middle}\n graphProps={graphProps}\n onChange={(label) => onChangeLabelProps({ ...middle, label })}\n />,\n labelNode,\n );\n }\n return (\n <g>\n <React.Fragment>\n <DraggablePolygon\n points={points}\n closed={closed}\n isSolution={isSolution}\n graphProps={graphProps}\n onClick={this.clickPoint.bind(this, middle, polygonLabelIndex)}\n />\n </React.Fragment>\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\n mark.middle = { ...middle, ...getMiddleOfTwoPoints(a, b) };\n }\n\n this.setState({ mark });\n };\n\n changeProps = (points) => {\n const mark = { ...this.props.mark, points };\n\n this.props.onChange(this.props.mark, mark);\n };\n\n changeLabelProps = (point) => {\n const { mark, onChange } = this.props;\n const middle = { ...mark.middle, ...point };\n\n onChange(mark, { ...mark, middle });\n };\n\n closePolygon = () => {\n log('[closePolygon] ...');\n const { onComplete, mark } = this.props;\n const update = { ...mark, closed: true };\n\n onComplete(mark, update);\n };\n\n dragStart = () => this.setState({ mark: this.props.mark });\n\n dragStop = () => {\n const { onChange } = this.props;\n const m = { ...this.state.mark };\n\n this.setState({ mark: undefined }, () => {\n onChange(this.props.mark, m);\n });\n };\n\n render() {\n const { coordinatesOnHover, mark, graphProps, onClick, isToolActive, labelNode, labelModeEnabled } = 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","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","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { types } from '@pie-lib/plot';\nimport { color } from '@pie-lib/render-ui';\nimport { withStyles } from '@material-ui/core/styles';\nimport InputBase from '@material-ui/core/InputBase';\nimport { roundNumber } from './utils';\n\nconst styles = (theme) => ({\n input: {\n fontFamily: theme.typography.fontFamily,\n fontSize: theme.typography.fontSize,\n borderRadius: '8px',\n background: theme.palette.common.white,\n color: color.defaults.BLACK,\n },\n inputLabel: {\n padding: 0,\n },\n});\n\nexport const getLabelPosition = (graphProps, x, y, labelLength) => {\n const { scale, domain, range } = graphProps;\n // treat corner cases for maximum and minimum\n const topShift = y === range.min ? 16 : y === range.max ? 0 : 8;\n const leftShift = 10;\n const rightEdge = scale.x(x) + labelLength + leftShift;\n\n if (rightEdge >= scale.x(domain.max)) {\n return {\n left: scale.x(x) - leftShift - labelLength,\n top: scale.y(y) - topShift,\n };\n }\n\n return {\n left: scale.x(x) + leftShift,\n top: scale.y(y) - topShift,\n };\n};\n\nexport const CoordinatesLabel = ({ x, y, graphProps, classes }) => {\n const label = `(${roundNumber(x)}, ${roundNumber(y)})`;\n const labelLength = (label.length || 0) * 6;\n const labelPosition = getLabelPosition(graphProps, x, y, labelLength);\n\n const style = {\n position: 'absolute',\n pointerEvents: 'auto',\n width: labelLength,\n padding: 0,\n ...labelPosition,\n };\n\n return (\n <InputBase\n style={style}\n classes={{ input: classes.inputLabel }}\n className={classes.input}\n value={label}\n inputProps={{ ariaLabel: 'naked' }}\n />\n );\n};\n\nCoordinatesLabel.propTypes = {\n graphProps: types.GraphPropsType,\n classes: PropTypes.object,\n x: PropTypes.number,\n y: PropTypes.number,\n};\n\nexport default withStyles(styles)(CoordinatesLabel);\n","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';\nimport { color } from '@pie-lib/render-ui';\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 // we need to remove style from props\n // eslint-disable-next-line no-unused-vars,react/prop-types\n style,\n onClick,\n // Refactored RawBp component by isolating onTouchStart and onTouchEnd handlers to the outer circle, resolving erratic touch event behavior.\n // Remaining props are now applied only to the inner circle for improved event handling consistency.\n onTouchStart,\n onTouchEnd,\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 <>\n <circle\n style={{ fill: 'transparent', cursor: 'pointer', pointerEvents: 'all' }}\n r={r * 3}\n cx={scale.x(x)}\n cy={scale.y(y)}\n onMouseEnter={() => this.setState({ showCoordinates: true })}\n onMouseLeave={() => this.setState({ showCoordinates: false })}\n onTouchStart={onTouchStart}\n onTouchEnd={onTouchEnd}\n onClick={onClick}\n />\n <g\n className={classNames(classes.point, disabled && classes.disabled, classes[correctness], className)}\n onMouseEnter={() => this.setState({ showCoordinates: true })}\n onMouseLeave={() => this.setState({ showCoordinates: false })}\n >\n <circle\n {...rest}\n style={{ fill: color.defaults.BLACK, cursor: 'pointer' }}\n r={r}\n cx={scale.x(x)}\n cy={scale.y(y)}\n />\n {labelNode &&\n coordinatesOnHover &&\n showCoordinates &&\n ReactDOM.createPortal(<CoordinatesLabel graphProps={graphProps} x={x} y={y} />, labelNode)}\n </g>\n </>\n );\n }\n}\n","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 { classes, className, x, y, disabled, correctness, graphProps, from, to, ...rest } = 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 className={classNames(classes.point, disabled && classes.disabled, classes[correctness], className)} {...rest}>\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","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { color } from '@pie-lib/render-ui';\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 style={{ fill: color.defaults.BLACK }}\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","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 { classes, angle, className, x, y, disabled, correctness, graphProps, ...rest } = 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 className={classNames(classes.point, disabled && classes.disabled, classes[correctness], className)} {...rest}>\n <ArrowHead size={size} transform={transform} points={points} />\n </g>\n );\n }\n}\n","import { withStyles } from '@material-ui/core/styles/index';\nimport { gridDraggable } from '@pie-lib/plot';\nimport * as utils from '../../../utils';\nimport { disabled, correct, incorrect, missing } 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.defaults.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 missing: {\n '& circle, & polygon': {\n ...missing(),\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","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, missing } 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 let shouldNotChange =\n type &&\n (type === 'parabola' || type === 'sine' || type === 'absolute' || type === 'exponential') &&\n sameAxes(update.from, update.to);\n if (!shouldNotChange && type && type === 'exponential' && update.from && update.to) {\n shouldNotChange = update.from.y === 0 || update.to.y === 0 || update.from.y * update.to.y < 0;\n }\n if (!isEqual(mark, update) && !shouldNotChange) {\n onChange(mark, update);\n }\n });\n };\n\n changeMark = ({ from, to, middle }) => {\n let mark = { ...this.state.mark, from, to };\n\n if (middle) {\n mark = { ...mark, middle };\n }\n\n this.setState({ mark });\n };\n\n changeMarkProps = ({ from, to, middle }) => {\n const { onChange, mark } = this.props;\n let update = { ...mark, ...this.state.mark };\n\n if (from) {\n update = { ...update, from };\n }\n\n if (to) {\n update = { ...update, to };\n }\n\n if (middle) {\n update = { ...update, middle };\n }\n\n if (!isEqual(mark, update)) {\n onChange(mark, update);\n }\n };\n\n render() {\n const { graphProps, onClick, labelNode, labelModeEnabled, coordinatesOnHover, gssLineData } = 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 fill={mark && mark.fill}\n gssLineData={gssLineData}\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 fill: PropTypes.string,\n gssLineData: PropTypes.object,\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, data) => {\n const { changeMarkProps, disabled, from, to, labelModeEnabled, onClick } = this.props;\n\n if (!labelModeEnabled) {\n onClick(point || data);\n return;\n }\n\n if (disabled) {\n return;\n }\n\n if (type === 'middle' && !point && from && to) {\n point = { ...point, ...getMiddleOfTwoPoints(from, to) };\n }\n\n changeMarkProps({ from, to, [type]: { label: '', ...point } });\n\n if (this.input[type]) {\n this.input[type].focus();\n }\n };\n\n // IMPORTANT, do not remove\n input = {};\n\n render() {\n const {\n coordinatesOnHover,\n graphProps,\n fill,\n gssLineData,\n onDragStart,\n onDragStop,\n from,\n to,\n middle,\n disabled,\n correctness,\n onClick,\n labelNode,\n labelModeEnabled,\n } = this.props;\n let common = { graphProps, fill, onDragStart, onDragStop, disabled, correctness, onClick };\n if (gssLineData && gssLineData.selectedTool === 'solutionSet') {\n //removing dragging option for line if solution set is clicked.\n common = { graphProps, fill, disabled, correctness, onClick };\n }\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 if (gssLineData && gssLineData.selectedTool === 'solutionSet') {\n //removing dragging feature of line and point if solution set is true.\n return (\n <g>\n {to && <DraggableComp from={from} to={to} middle={middle} {...common} />}\n {lineLabelNode}\n\n <FromPoint\n x={from.x}\n y={from.y}\n labelNode={labelNode}\n coordinatesOnHover={coordinatesOnHover}\n {...common}\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 {...common}\n />\n )}\n {toLabelNode}\n </g>\n );\n } else {\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={(data) => this.clickPoint(middle, 'middle', data)}\n />\n )}\n {lineLabelNode}\n\n <FromPoint\n x={from.x}\n y={from.y}\n labelNode={labelNode}\n coordinatesOnHover={coordinatesOnHover}\n onDrag={this.dragFrom}\n {...common}\n onClick={(data) => this.clickPoint(from, 'from', data)}\n />\n {fromLabelNode}\n\n {to && (\n <ToPoint\n x={to.x}\n y={to.y}\n angle={angle} //angle + 45}\n labelNode={labelNode}\n coordinatesOnHover={coordinatesOnHover}\n onDrag={this.dragTo}\n {...common}\n onClick={(data) => this.clickPoint(to, 'to', data)}\n />\n )}\n {toLabelNode}\n </g>\n );\n }\n }\n }\n\n return LineBase;\n};\n\nexport const styles = {\n line: () => ({\n fill: 'transparent',\n stroke: color.defaults.BLACK,\n strokeWidth: 4,\n transition: 'stroke 200ms ease-in, stroke-width 200ms ease-in',\n '&:hover': {\n strokeWidth: 6,\n stroke: color.defaults.BLACK,\n },\n }),\n dashedLine: () => ({\n fill: 'transparent',\n stroke: color.defaults.BLACK,\n strokeWidth: 4,\n transition: 'stroke 200ms ease-in, stroke-width 200ms ease-in',\n '&:hover': {\n strokeWidth: 6,\n stroke: color.defaults.BLACK,\n },\n strokeDasharray: '3,3',\n }),\n arrow: () => ({\n fill: color.defaults.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 missing: (theme, key) => ({\n ...missing(key),\n }),\n};\n","import { lineToolComponent, lineBase, styles } from '../shared/line';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { trig, types } from '@pie-lib/plot';\nimport classNames from 'classnames';\nimport { withStyles } from '@material-ui/core/styles';\nimport { ArrowMarker, genUid } from '../shared/arrow-head';\nimport { thinnerShapesNeeded, getAdjustedGraphLimits } from '../../utils';\n\nconst lineStyles = (theme) => ({\n line: styles.line(theme),\n dashedLine: styles.dashedLine(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 missing: styles.missing(theme, 'stroke'),\n missingArrow: styles.missing(theme),\n});\n\nexport const ArrowedLine = (props) => {\n const markerId = genUid();\n const { className, classes, correctness, disabled, graphProps, fill = 'Solid', from, to, ...rest } = props;\n const { scale } = graphProps;\n const { domain, range } = getAdjustedGraphLimits(graphProps);\n const [eFrom, eTo] = trig.edges(domain, range)(from, to);\n const suffix = correctness || (disabled && 'disabled') || 'enabled';\n\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(eFrom.x)}\n y1={scale.y(eFrom.y)}\n x2={scale.x(eTo.x)}\n y2={scale.y(eTo.y)}\n className={classNames(\n fill === 'Solid' ? classes.line : classes.dashedLine,\n disabled && classes.disabled,\n classes[correctness],\n className,\n )}\n markerEnd={`url(#${props.markerId || markerId}-${suffix})`}\n markerStart={`url(#${props.markerId || markerId}-${suffix})`}\n {...rest}\n />\n </g>\n );\n};\n\nArrowedLine.propTypes = {\n className: PropTypes.string,\n classes: PropTypes.object,\n fill: PropTypes.string,\n correctness: PropTypes.string,\n disabled: PropTypes.bool,\n graphProps: types.GraphPropsType,\n from: types.PointType,\n to: types.PointType,\n markerId: PropTypes.string,\n};\n\nconst StyledArrowedLine = withStyles(lineStyles)(ArrowedLine);\n\nconst Line = lineBase(StyledArrowedLine);\nconst Component = lineToolComponent(Line);\n\nexport default Component;\n","import Line from './component';\nimport { lineTool } from '../shared/line';\n\nexport const tool = lineTool('line', Line);\n","import { tool as polygon } from './polygon';\nimport { tool as line } from './line';\n\nconst allTools = ['line', 'polygon'];\n\nconst toolsArr = [line(), polygon()];\n\nexport { allTools, toolsArr, line, polygon };\n","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inheritsLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar setStatic = function setStatic(key, value) {\n return function (BaseComponent) {\n /* eslint-disable no-param-reassign */\n BaseComponent[key] = value;\n /* eslint-enable no-param-reassign */\n\n return BaseComponent;\n };\n};\n\nvar _default = setStatic;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _setStatic = _interopRequireDefault(require(\"./setStatic\"));\n\nvar setDisplayName = function setDisplayName(displayName) {\n return (0, _setStatic.default)('displayName', displayName);\n};\n\nvar _default = setDisplayName;\nexports.default = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar getDisplayName = function getDisplayName(Component) {\n if (typeof Component === 'string') {\n return Component;\n }\n\n if (!Component) {\n return undefined;\n }\n\n return Component.displayName || Component.name || 'Component';\n};\n\nvar _default = getDisplayName;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _getDisplayName = _interopRequireDefault(require(\"./getDisplayName\"));\n\nvar wrapDisplayName = function wrapDisplayName(BaseComponent, hocName) {\n return hocName + \"(\" + (0, _getDisplayName.default)(BaseComponent) + \")\";\n};\n\nvar _default = wrapDisplayName;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar _react = require(\"react\");\n\nvar _setDisplayName = _interopRequireDefault(require(\"./setDisplayName\"));\n\nvar _wrapDisplayName = _interopRequireDefault(require(\"./wrapDisplayName\"));\n\nvar shouldUpdate = function shouldUpdate(test) {\n return function (BaseComponent) {\n var factory = (0, _react.createFactory)(BaseComponent);\n\n var ShouldUpdate =\n /*#__PURE__*/\n function (_Component) {\n (0, _inheritsLoose2.default)(ShouldUpdate, _Component);\n\n function ShouldUpdate() {\n return _Component.apply(this, arguments) || this;\n }\n\n var _proto = ShouldUpdate.prototype;\n\n _proto.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n return test(this.props, nextProps);\n };\n\n _proto.render = function render() {\n return factory(this.props);\n };\n\n return ShouldUpdate;\n }(_react.Component);\n\n if (process.env.NODE_ENV !== 'production') {\n return (0, _setDisplayName.default)((0, _wrapDisplayName.default)(BaseComponent, 'shouldUpdate'))(ShouldUpdate);\n }\n\n return ShouldUpdate;\n };\n};\n\nvar _default = shouldUpdate;\nexports.default = _default;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n * \n */\n\n/*eslint-disable no-self-compare */\n\n'use strict';\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\n/**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\nfunction is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n // Added the nonzero y check to make Flow happy, but it is redundant\n return x !== 0 || y !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n}\n\n/**\n * Performs equality by iterating through keys on an object and returning false\n * when any key has values which are not strictly equal between the arguments.\n * Returns true when the values of all keys are strictly equal.\n */\nfunction shallowEqual(objA, objB) {\n if (is(objA, objB)) {\n return true;\n }\n\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n // Test for A's keys different from B.\n for (var i = 0; i < keysA.length; i++) {\n if (!hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n\n return true;\n}\n\nmodule.exports = shallowEqual;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _shallowEqual = _interopRequireDefault(require(\"fbjs/lib/shallowEqual\"));\n\nvar _default = _shallowEqual.default;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _shouldUpdate = _interopRequireDefault(require(\"./shouldUpdate\"));\n\nvar _shallowEqual = _interopRequireDefault(require(\"./shallowEqual\"));\n\nvar _setDisplayName = _interopRequireDefault(require(\"./setDisplayName\"));\n\nvar _wrapDisplayName = _interopRequireDefault(require(\"./wrapDisplayName\"));\n\nvar pure = function pure(BaseComponent) {\n var hoc = (0, _shouldUpdate.default)(function (props, nextProps) {\n return !(0, _shallowEqual.default)(props, nextProps);\n });\n\n if (process.env.NODE_ENV !== 'production') {\n return (0, _setDisplayName.default)((0, _wrapDisplayName.default)(BaseComponent, 'pure'))(hoc(BaseComponent));\n }\n\n return hoc(BaseComponent);\n};\n\nvar _default = pure;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _pure = _interopRequireDefault(require(\"recompose/pure\"));\n\nvar _SvgIcon = _interopRequireDefault(require(\"@material-ui/core/SvgIcon\"));\n\nfunction createSvgIcon(path, displayName) {\n var Icon = function Icon(props) {\n return _react.default.createElement(_SvgIcon.default, props, path);\n };\n\n Icon.displayName = \"\".concat(displayName, \"Icon\");\n Icon = (0, _pure.default)(Icon);\n Icon.muiName = 'SvgIcon';\n return Icon;\n}\n\n;\nvar _default = createSvgIcon;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)(_react.default.createElement(_react.default.Fragment, null, _react.default.createElement(\"path\", {\n d: \"M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z\"\n}), _react.default.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0z\"\n})), 'ExpandMore');\n\nexports.default = _default;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport uniq from 'lodash/uniq';\nimport isString from 'lodash/isString';\nimport { color } from '@pie-lib/render-ui';\nimport ToolMenu from './tool-menu';\nimport Graph, { graphPropTypes } from './graph';\nimport UndoRedo from './undo-redo';\nimport { allTools, toolsArr } from './tools';\nimport { ExpansionPanel, ExpansionPanelDetails, ExpansionPanelSummary, Typography } from '@material-ui/core';\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\n\nexport const setToolbarAvailability = (toolbarTools) =>\n toolsArr.map((tA) => ({ ...tA, toolbar: !!toolbarTools.find((t) => t === tA.type) })) || [];\n\nexport const toolIsAvailable = (tools, currentTool) =>\n currentTool && tools && (tools.find((tool) => tool.type === currentTool.type) || {}).toolbar;\n\nexport const getAvailableTool = (tools) => tools.find((tool) => tool.toolbar);\n\nexport const filterByValidToolTypes = (backgroundMarks) =>\n backgroundMarks.filter((bM) => !!allTools.find((tool) => tool === bM.type));\n\nexport const filterByVisibleToolTypes = (toolbarTools, marks) =>\n marks.filter((bM) => !!toolbarTools.find((tool) => tool === bM.type));\n\nconst getDefaultCurrentTool = (toolType) => toolsArr.find((tool) => tool.type === toolType) || null;\n\nconst Collapsible = ({ classes, children, title }) => (\n <ExpansionPanel elevation={0} className={classes.expansionPanel} disabledGutters={true} square={true}>\n <ExpansionPanelSummary\n classes={{\n root: classes.summaryRoot,\n content: classes.summaryContent,\n }}\n expandIcon={<ExpandMoreIcon />}\n >\n <Typography variant=\"subheading\">{title}</Typography>\n </ExpansionPanelSummary>\n <ExpansionPanelDetails className={classes.details}>{children}</ExpansionPanelDetails>\n </ExpansionPanel>\n);\n\nCollapsible.propTypes = {\n classes: PropTypes.object,\n children: PropTypes.array,\n title: PropTypes.string,\n};\n\nexport class GraphWithControls extends React.Component {\n static propTypes = {\n ...graphPropTypes,\n onUndo: PropTypes.func,\n onRedo: PropTypes.func,\n onReset: PropTypes.func,\n toolbarTools: PropTypes.arrayOf(PropTypes.string), // array of tool types that have to be displayed in the toolbar, same shape as 'allTools'\n language: PropTypes.string,\n };\n\n static defaultProps = {\n collapsibleToolbar: false,\n collapsibleToolbarTitle: '',\n disabledLabels: false,\n disabledTitle: false,\n showLabels: true,\n showTitle: true,\n toolbarTools: [],\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n currentTool: getDefaultCurrentTool(props.defaultTool),\n labelModeEnabled: false,\n };\n }\n\n componentDidUpdate(prevProps) {\n const { defaultTool } = this.props;\n\n if (prevProps.defaultTool !== defaultTool) {\n const currentTool = getDefaultCurrentTool(defaultTool);\n\n this.setState({ currentTool });\n }\n }\n\n changeCurrentTool = (tool, tools) => this.setState({ currentTool: tools.find((t) => t.type === tool) });\n\n toggleLabelMode = () => this.setState((state) => ({ labelModeEnabled: !state.labelModeEnabled }));\n\n render() {\n let { currentTool, labelModeEnabled } = this.state;\n const {\n axesSettings,\n classes,\n className,\n coordinatesOnHover,\n collapsibleToolbar,\n collapsibleToolbarTitle,\n disabled,\n disabledLabels,\n disabledTitle,\n domain,\n labels,\n labelsPlaceholders,\n onChangeLabels,\n onChangeMarks,\n onChangeTitle,\n onUndo,\n onRedo,\n range,\n size,\n showLabels,\n showPixelGuides,\n showTitle,\n title,\n titlePlaceholder,\n language,\n disableToolbar = false,\n gssLineData,\n onChangeGssLineData,\n onSolutionSetSelected,\n onCustomReset,\n } = this.props;\n let { backgroundMarks, marks, toolbarTools } = this.props;\n\n // make sure only valid tool types are kept (string) and without duplicates\n toolbarTools = uniq(toolbarTools || []).filter((tT) => !!isString(tT)) || [];\n\n // keep only the backgroundMarks that have valid types\n backgroundMarks = filterByValidToolTypes(backgroundMarks || []);\n\n // keep only the marks that have types which appear in toolbar\n marks = filterByVisibleToolTypes(toolbarTools, marks || []);\n\n if (gssLineData && gssLineData.lineA && marks[0] && marks[0].type === 'line')\n marks[0].fill = gssLineData.lineA.lineType;\n if (gssLineData && gssLineData.lineB && marks[1] && marks[1].type === 'line')\n marks[1].fill = gssLineData.lineB.lineType;\n\n const tools = setToolbarAvailability(toolbarTools);\n\n // set current tool if there's no current tool or if the existing one is no longer available\n if (!currentTool || !toolIsAvailable(tools, currentTool)) {\n currentTool = getAvailableTool(tools);\n }\n\n const gssActions = gssLineData && (\n <React.Fragment>\n <ToolMenu\n numberOfLines={gssLineData.numberOfLines}\n gssLineData={gssLineData}\n onChange={onChangeGssLineData}\n disabled={!!disabled}\n language={language}\n />\n {!disabled && (\n <UndoRedo\n className={classes.undoRedoOuterDiv}\n onUndo={onUndo}\n onRedo={onRedo}\n onReset={onCustomReset}\n language={language}\n />\n )}\n </React.Fragment>\n );\n\n return (\n <div className={classNames(classes.graphWithControls, className)}>\n {!disableToolbar && (\n <div className={classes.controls}>\n {collapsibleToolbar ? (\n <Collapsible classes={classes} title={collapsibleToolbarTitle}>\n {gssActions}\n </Collapsible>\n ) : (\n gssActions\n )}\n </div>\n )}\n\n <div ref={(r) => (this.labelNode = r)} />\n\n <Graph\n axesSettings={axesSettings}\n backgroundMarks={backgroundMarks}\n coordinatesOnHover={coordinatesOnHover}\n currentTool={currentTool}\n disabledLabels={disabledLabels}\n disabledTitle={disabledTitle}\n domain={domain}\n labels={labels}\n labelModeEnabled={labelModeEnabled}\n labelsPlaceholders={labelsPlaceholders}\n marks={marks}\n onChangeMarks={!disabled ? onChangeMarks : undefined}\n onChangeLabels={onChangeLabels}\n onChangeTitle={onChangeTitle}\n range={range}\n size={size}\n showLabels={showLabels}\n showPixelGuides={showPixelGuides}\n showTitle={showTitle}\n title={title}\n titlePlaceholder={titlePlaceholder}\n tools={tools}\n gssLineData={gssLineData}\n onSolutionSetSelected={onSolutionSetSelected}\n disabled={!!disabled}\n />\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n graphWithControls: {\n display: 'flex',\n flexDirection: 'column',\n width: 'min-content',\n },\n controls: {\n display: 'flex',\n justifyContent: 'space-between',\n padding: 'calc(1.25rem - 12px) calc(1.25rem - 12px) 1.25rem',\n color: color.text(),\n backgroundColor: '#9FA8DA',\n '& button': {\n fontSize: '0.875rem',\n padding: '0.25rem .3rem',\n width: '5rem',\n },\n },\n expansionPanel: {\n backgroundColor: color.primaryLight(),\n width: '100%',\n },\n summaryRoot: {\n padding: `0 ${theme.spacing.unit}px`,\n minHeight: '32px !important',\n },\n summaryContent: {\n margin: '4px 0 !important',\n },\n details: {\n padding: 0,\n marginTop: theme.spacing.unit,\n display: 'flex',\n justifyContent: 'space-between',\n },\n undoRedoOuterDiv: {\n display: 'flex',\n flexDirection: 'column',\n marginTop: '.5rem',\n },\n});\n\nexport default withStyles(styles)(GraphWithControls);\n","let lastAction = null;\nexport const getLastAction = () => lastAction;\n\nexport const lastActionMiddleware = () => (next) => (action) => {\n lastAction = action;\n return next(action);\n};\n","import { connect } from 'react-redux';\nimport React from 'react';\nimport { Provider } from 'react-redux';\nimport { applyMiddleware, createStore } from 'redux';\nimport reducer from './reducer';\nimport { changeMarks } from './actions';\nimport PropTypes from 'prop-types';\nimport isEqual from 'lodash/isEqual';\nimport { ActionCreators } from 'redux-undo';\nimport GraphWithControls from '../graph-with-controls';\nimport { lastActionMiddleware, getLastAction } from './middleware';\n\nconst mapStateToProps = (s) => ({\n marks: s.marks.present,\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n onChangeMarks: (m) => dispatch(changeMarks(m)),\n onUndo: () => dispatch(ActionCreators.undo()),\n onRedo: () => dispatch(ActionCreators.redo()),\n onReset: () => dispatch(changeMarks([])),\n});\n\nexport const GraphContainer = connect(mapStateToProps, mapDispatchToProps)(GraphWithControls);\n\n/**\n * The graph component entry point with undo/redo\n * Redux is an implementation detail, hide it in the react component.\n */\nclass Root extends React.Component {\n static propTypes = {\n onChangeMarks: PropTypes.func,\n marks: PropTypes.array,\n };\n\n constructor(props) {\n super(props);\n\n const r = reducer();\n this.store = createStore(r, { marks: props.marks }, applyMiddleware(lastActionMiddleware));\n\n this.store.subscribe(this.onStoreChange);\n }\n\n componentDidUpdate(prevProps) {\n const { marks } = this.props;\n const storeState = this.store.getState();\n\n if (isEqual(storeState.marks.present, marks)) {\n return;\n }\n\n if (!isEqual(prevProps.marks, marks)) {\n this.store.dispatch(changeMarks(marks));\n }\n }\n\n onStoreChange = () => {\n const { marks, onChangeMarks } = this.props;\n const storeState = this.store.getState();\n const lastAction = getLastAction();\n const isUndoOperation = lastAction.type.includes('UNDO') || lastAction.type.includes('REDO');\n\n if (!isEqual(storeState.marks.present, marks)) {\n onChangeMarks(storeState.marks.present, isUndoOperation);\n }\n };\n\n render() {\n // eslint-disable-next-line no-unused-vars\n const { onChangeMarks, marks, ...rest } = this.props;\n const correctnessSet = marks && marks.find((m) => m.correctness);\n\n if (correctnessSet) {\n return <GraphWithControls {...rest} marks={marks} disabled={correctnessSet} />;\n }\n\n return (\n <Provider store={this.store}>\n <GraphContainer {...rest} />\n </Provider>\n );\n }\n}\n\nexport default Root;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { color, InputContainer } from '@pie-lib/render-ui';\nimport { withStyles } from '@material-ui/core/styles';\nimport ExpansionPanelSummary from '@material-ui/core/ExpansionPanelSummary';\nimport Typography from '@material-ui/core/Typography';\nimport ExpansionPanelDetails from '@material-ui/core/ExpansionPanelDetails';\nimport ExpansionPanel from '@material-ui/core/ExpansionPanel';\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\nimport { NumberTextFieldCustom, Toggle } from '@pie-lib/config-ui';\nimport EditableHTML from '@pie-lib/editable-html';\n\nconst GridConfig = (props) => {\n const { classes, disabled, displayedFields, labelValue, labelValues, gridValue, gridValues, onChange } = props;\n const { labelStep = {}, step = {} } = displayedFields;\n\n return (\n <div className={classes.columnView}>\n {step && step.enabled && (\n <NumberTextFieldCustom\n className={classes.mediumTextField}\n label={step.label || ''}\n value={gridValue}\n customValues={gridValues}\n variant=\"outlined\"\n disabled={disabled}\n onChange={(e, v) => onChange('step', v)}\n />\n )}\n {labelStep && labelStep.enabled && (\n <NumberTextFieldCustom\n className={classes.mediumTextField}\n label={labelStep.label || ''}\n value={labelValue}\n customValues={labelValues}\n variant=\"outlined\"\n disabled={disabled}\n onChange={(e, v) => onChange('labelStep', v)}\n />\n )}\n </div>\n );\n};\n\nGridConfig.propTypes = {\n classes: PropTypes.object,\n disabled: PropTypes.bool,\n displayedFields: PropTypes.object,\n labelValue: PropTypes.number,\n labelValues: PropTypes.array,\n gridValue: PropTypes.number,\n gridValues: PropTypes.array,\n onChange: PropTypes.func,\n};\n\nconst AxisConfig = (props) => {\n const { classes, disabled, displayedFields, displayHeader, label, maxValue, minValue, onChange, type } = props;\n const { axisLabel = {}, min = {}, max = {} } = displayedFields;\n const activePlugins = [\n 'bold',\n 'italic',\n 'underline',\n 'strikethrough',\n // 'languageCharacters'\n ];\n\n return (\n <div className={classes.columnView}>\n {displayHeader && (\n <Typography variant=\"subtitle2\">\n <i>{type === 'domain' ? 'x' : 'y'}</i>\n -axis\n </Typography>\n )}\n {min && min.enabled && (\n <NumberTextFieldCustom\n className={classes.mediumTextField}\n label={min.label || ''}\n value={minValue}\n min={-10000}\n max={maxValue - 0.05}\n variant=\"outlined\"\n disabled={disabled}\n onChange={(e, v) => onChange('min', v)}\n />\n )}\n {max && max.enabled && (\n <NumberTextFieldCustom\n className={classes.mediumTextField}\n label={max.label || ''}\n value={maxValue}\n min={minValue + 0.05}\n max={10000}\n variant=\"outlined\"\n disabled={disabled}\n onChange={(e, v) => onChange('max', v)}\n />\n )}\n {axisLabel && axisLabel.enabled && (\n <InputContainer label={axisLabel.label || ''} className={classes.mediumTextField}>\n <EditableHTML\n className={classes.axisLabel}\n onChange={(value) => onChange('axisLabel', value)}\n markup={label || ''}\n charactersLimit={5}\n activePlugins={activePlugins}\n />\n </InputContainer>\n )}\n </div>\n );\n};\n\nAxisConfig.propTypes = {\n classes: PropTypes.object,\n disabled: PropTypes.bool,\n displayedFields: PropTypes.object,\n displayHeader: PropTypes.bool,\n label: PropTypes.string,\n maxValue: PropTypes.number,\n minValue: PropTypes.number,\n type: PropTypes.string,\n onChange: PropTypes.func,\n};\nconst GridSetup = (props) => {\n const {\n classes,\n domain,\n displayedFields = {},\n gridValues = {},\n includeAxes,\n labelValues = {},\n onChange,\n onChangeView,\n range,\n size,\n sizeConstraints,\n standardGrid,\n } = props;\n const gridProps = { min: 2, max: 41 };\n const {\n axisLabel = {},\n dimensionsEnabled,\n includeAxesEnabled,\n labelStep = {},\n min = {},\n max = {},\n standardGridEnabled,\n step = {},\n } = displayedFields || {};\n const displayAxisType = min.enabled || max.enabled || axisLabel.enabled || step.enabled || labelStep.enabled;\n const gridConfigFields = { step, labelStep };\n const axisConfigFields = { min, max, axisLabel };\n\n const onIncludeAxes = (includeAxes) => {\n const noAxesConfig = (type) => {\n const axis = type === 'domain' ? domain : range;\n\n return {\n min: 1,\n max: axis.max < gridProps.min || axis.max > gridProps.max ? 16 : axis.max,\n step: 1,\n labelStep: 0,\n };\n };\n\n const updatedRange = {\n ...range,\n ...(includeAxes ? { labelStep: 1 } : noAxesConfig('range')),\n };\n const updatedDomain = {\n ...domain,\n ...(includeAxes ? { labelStep: 1 } : noAxesConfig('domain')),\n };\n\n onChange({ includeAxes, range: updatedRange, domain: updatedDomain });\n };\n\n const onStandardGridChanged = (value) => {\n onChange({\n standardGrid: value,\n range: {\n ...domain,\n axisLabel: range.axisLabel,\n },\n graph: {\n ...size,\n height: size.width,\n },\n });\n };\n\n const onSizeChanged = (key, value) => {\n const graph = { ...size, [key]: value };\n\n if (standardGrid) {\n graph.height = value;\n }\n\n onChange({ graph });\n };\n\n const onDomainChanged = (key, value) => {\n domain[key] = value;\n\n if (standardGrid && key !== 'axisLabel') {\n range[key] = value;\n }\n\n onChange({ domain, range });\n };\n\n const onRangeChanged = (key, value) => {\n range[key] = value;\n\n onChange({ range });\n };\n\n const axesConfig = (\n <React.Fragment>\n <div className={classes.rowView}>\n <AxisConfig\n classes={classes}\n displayedFields={axisConfigFields}\n displayHeader={displayAxisType}\n type=\"domain\"\n minValue={domain.min}\n maxValue={domain.max}\n label={domain.axisLabel}\n includeAxes={includeAxes}\n onChange={onDomainChanged}\n />\n <AxisConfig\n classes={classes}\n displayedFields={axisConfigFields}\n displayHeader={displayAxisType}\n type=\"range\"\n minValue={range.min}\n maxValue={range.max}\n label={range.axisLabel}\n disabled={standardGrid}\n includeAxes={includeAxes}\n onChange={onRangeChanged}\n />\n </div>\n {(min.enabled || max.enabled) && (\n <Typography className={classes.text}>\n If you want the axis to be visible, use a zero or negative Min Value, and a positive Max Value\n </Typography>\n )}\n {(step.enabled || labelStep.enabled) && (\n <div className={classes.rowView}>\n <GridConfig\n classes={classes}\n displayedFields={gridConfigFields}\n gridValue={domain.step}\n labelValue={domain.labelStep}\n gridValues={gridValues.domain || []}\n labelValues={labelValues.domain || []}\n onChange={onDomainChanged}\n />\n <GridConfig\n classes={classes}\n disabled={standardGrid}\n displayedFields={gridConfigFields}\n gridValue={range.step}\n labelValue={range.labelStep}\n gridValues={gridValues.range || []}\n labelValues={labelValues.range || []}\n onChange={onRangeChanged}\n />\n </div>\n )}\n {labelStep.enabled && (\n <Typography className={classes.text}>For unnumbered gridlines, enter a label interval of 0</Typography>\n )}\n </React.Fragment>\n );\n\n const gridlinesConfig = max.enabled ? (\n <div className={classes.columnView}>\n <NumberTextFieldCustom\n className={classes.largeTextField}\n label=\"Number of Vertical Gridlines\"\n value={domain.max}\n min={!includeAxes && gridProps.min}\n max={!includeAxes && gridProps.max}\n variant=\"outlined\"\n onChange={(e, v) => onDomainChanged('max', v)}\n />\n <NumberTextFieldCustom\n className={classes.largeTextField}\n label=\"Number of Horizontal Gridlines\"\n value={range.max}\n min={!includeAxes && gridProps.min}\n max={!includeAxes && gridProps.max}\n variant=\"outlined\"\n disabled={standardGrid}\n onChange={(e, v) => onRangeChanged('max', v)}\n />\n </div>\n ) : null;\n\n return (\n <div className={classes.wrapper}>\n <ExpansionPanel onChange={onChangeView}>\n <ExpansionPanelSummary expandIcon={<ExpandMoreIcon />}>\n <Typography variant=\"subtitle1\">Customize Grid Setup</Typography>\n </ExpansionPanelSummary>\n <ExpansionPanelDetails>\n <div className={classes.content}>\n {includeAxesEnabled && (\n <Toggle label=\"Include axes and labels?\" toggle={onIncludeAxes} checked={includeAxes} />\n )}\n {standardGridEnabled && (\n <Toggle\n label=\"Constrain to standard coordinate grid?\"\n toggle={onStandardGridChanged}\n checked={standardGrid}\n />\n )}\n {includeAxes ? axesConfig : gridlinesConfig}\n {dimensionsEnabled && (\n <div className={classes.dimensions}>\n <div>\n <Typography>Dimensions(px)</Typography>\n <Typography className={classes.disabled}>\n Min {sizeConstraints.min}, Max {sizeConstraints.max}\n </Typography>\n </div>\n <NumberTextFieldCustom\n className={classes.textField}\n label=\"Width\"\n value={size.width}\n min={sizeConstraints.min}\n max={sizeConstraints.max}\n step={sizeConstraints.step}\n variant=\"outlined\"\n onChange={(e, v) => onSizeChanged('width', v)}\n />\n <NumberTextFieldCustom\n className={classes.textField}\n label=\"Height\"\n value={size.height}\n min={sizeConstraints.min}\n max={sizeConstraints.max}\n step={sizeConstraints.step}\n variant=\"outlined\"\n disabled={standardGrid}\n onChange={(e, v) => onSizeChanged('height', v)}\n />\n </div>\n )}\n </div>\n </ExpansionPanelDetails>\n </ExpansionPanel>\n </div>\n );\n};\n\nGridSetup.propTypes = {\n classes: PropTypes.object,\n domain: PropTypes.object,\n displayedFields: PropTypes.object,\n gridValues: PropTypes.object,\n includeAxes: PropTypes.bool,\n labelValues: PropTypes.object,\n onChange: PropTypes.func,\n onChangeView: PropTypes.func,\n range: PropTypes.object,\n size: PropTypes.object,\n sizeConstraints: PropTypes.object,\n standardGrid: PropTypes.bool,\n};\n\nconst styles = (theme) => ({\n wrapper: {\n width: '450px',\n },\n content: {\n display: 'flex',\n flexDirection: 'column',\n width: '100%',\n },\n columnView: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n },\n rowView: {\n display: 'flex',\n justifyContent: 'space-around',\n alignItems: 'center',\n },\n textField: {\n width: '130px',\n margin: `${theme.spacing.unit}px ${theme.spacing.unit / 2}px`,\n },\n mediumTextField: {\n width: '160px',\n margin: `${theme.spacing.unit}px ${theme.spacing.unit / 2}px`,\n },\n largeTextField: {\n width: '230px',\n margin: `${theme.spacing.unit}px ${theme.spacing.unit / 2}px`,\n },\n text: {\n fontStyle: 'italic',\n margin: `${theme.spacing.unit}px 0`,\n },\n dimensions: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n disabled: {\n color: color.disabled(),\n },\n axisLabel: {\n paddingTop: theme.spacing.unit * 2,\n },\n});\n\nexport default withStyles(styles)(GridSetup);\n"],"names":["style","theme","root","fill","palette","common","black","Arrow","React","Component","render","x","y","classes","className","scale","props","names","classNames","direction","xv","yv","transform","getTransform","rotate","propTypes","PropTypes","number","oneOf","object","isRequired","string","types","ScaleType","defaultProps","withStyles","bounds","utils","point","getAngleDeg","arrowDimensions","getTickValues","prop","tickValues","tickVal","min","indexOf","push","Math","round","step","max","filter","tV","countWords","label","isEmpty","words","split","length","findLongestWord","longestWord","replace","sort","a","b","amountToIncreaseWidth","polygonToArea","points","h","head","area","left","top","bottom","right","tail","reduce","p","getRightestPoints","sortedPoints","cloneDeep","getMiddleOfTwoPoints","roundNumber","parseFloat","toFixed","sameAxes","p1","p2","equalPoints","isEqual","getDistanceBetweenTicks","axis","size","nbOfTicks","thinnerShapesNeeded","graphProps","domain","range","width","height","getAdjustedGraphLimits","domainTicksDistance","rangeTicksDistance","domainPadding","rangePadding","sortPoints","array","checkCollinearity","c","isSameLine","markA","markB","from","to","isDuplicatedMark","mark","marks","oldMark","type","building","filteredMarks","m","index","findIndex","splice","duplicated","find","areArraysOfObjectsEqual","array1","array2","i","obj1","obj2","Object","keys","key","AxisPropTypes","includeArrows","AxisDefaultProps","up","down","axisStyles","line","stroke","strokeWidth","arrow","tick","color","defaults","BLACK","labelFontSize","fontSize","typography","axisLabelHolder","padding","margin","textAlign","tickLabelStyles","fontFamily","cursor","sharedValues","firstNegativeX","firstNegativeY","distanceFromOriginToFirstNegativeX","distanceFromOriginToFirstNegativeY","deltaAllowance","dy","result","firstNegativeValue","interval","element","RawXAxis","columnTicksValues","skipValues","labelStep","labelProps","textAnchor","dx","necessaryRows","axisLabel","necessaryWidth","value","__html","GraphPropsType","XAxis","RawYAxis","rowTickValues","customTickFormat","digits","toLocaleString","YAxis","Axes","xValues","ticks","negative","abs","yValues","Grid","getAdditionalGridProps","columnTickValues","rowTickLabelValues","includes","columnTickLabelValues","minValueLength","toString","maxValueLength","rowLabelLength","horizontalDistanceToZero","verticalDistanceToZero","columnLabelLength","rowStrokeDasharray","columnStrokeDasharray","displayAdditionalGrid","filteredColumnValues","filteredRowValues","additionalGridStroke","r","grid","disabled","bool","disabledAdditionalGrid","rotations","side","t","getY","RawLabel","disabledLabel","placeholder","text","onChange","mathMlOptions","totalHeight","totalWidth","finalHeight","activePlugins","cn","bottomLabel","disabledAxisLabel","position","noPadding","noBorder","func","Label","SECONDARY","pointerEvents","marginTop","LabelType","Labels","onChangeLabel","newValue","labels","disabledLabels","placeholders","shape","Bg","getRectPadding","onRectClick","rect","onClick","coords","mouse","_groups","invert","rowTicks","columnTicks","closest","prev","curr","currentDistance","previousDistance","snapped","componentDidMount","select","on","bind","shouldComponentUpdate","nextProps","isDomainRangeEqual","log","debug","graphPropTypes","axesSettings","backgroundMarks","collapsibleToolbar","collapsibleToolbarTitle","disabledTitle","DomainType","labelModeEnabled","coordinatesOnHover","onChangeLabels","onChangeMarks","onChangeTitle","showLabels","showPixelGuides","showTitle","title","tools","getMaskSize","removeBuildingToolIfCurrentToolDiffers","currentTool","buildingMark","newMarks","Graph","constructor","state","setState","labelNode","changeMark","newMark","gssLineData","selectedTool","completeMark","markData","updatedMark","complete","updateMarks","existing","update","addIfMissing","getComponent","tool","onBgClick","onSolutionSetSelected","numberOfLines","undefined","addPoint","maskUid","generateMaskId","random","labelsPlaceholders","titlePlaceholder","createGraphProps","rootNode","maskSize","solutionSet","sections","forEach","section","polygon","closed","isSolution","Root","map","markType","isBackground","startDrag","stopDrag","action","Array","isArray","Error","require$$0","require$$1","require$$2","combineReducers","undoable","changeMarks","ToolMenu","onChangeRadioValue","event","oldSelectedTool","target","lineTypeChange","lineType","selectLineRadioGroup","radioFieldOuter","radioFieldInner","lineTypeRadio","lineNameFont","radioFieldButtons","lineA","lineTypeButtonLeftSelectedDisabled","lineTypeButtonLeftSelected","lineTypeButtonLeftUnSelectedDisabled","lineTypeButtonLeftUnSelected","lineTypeButtonRightSelectedDisabled","lineTypeButtonRightSelected","lineTypeButtonRightUnSelectedDisabled","lineTypeButtonRightUnSelected","lineB","styles","radioButtonClass","display","flexWrap","flexDirection","alignItems","lineTypeText","marginLeft","fontWeight","textTransform","border","borderRadius","backgroundColor","borderTopLeftRadius","borderBottomLeftRadius","borderTopRightRadius","borderBottomRightRadius","translator","Translator","UndoRedo","onReset","language","Button","button","lng","marginBottom","spacing","unit","marginRight","undoRedoDiv","ToolPropTypeFields","any","onDragStart","onDragStop","correct","incorrect","missing","getPointString","scaledPoint","join","RawPolygon","correctness","rest","_excluded","pointString","Tag","gssSolution","gssClosed","arrayOf","PointType","Polygon","fade","primary","light","SECONDARY_LIGHT","open","gridDraggable","anchorPoint","fromDelta","delta","add","useDebounce","delay","debouncedValue","setDebouncedValue","useState","useEffect","handler","setTimeout","clearTimeout","input","float","PRIMARY_DARK","background","paper","disabledMark","shift","rightEdge","bottomEdge","v","coordinates","MarkLabel","setInput","_ref","useCallback","node","inputRef","externalInputRef","setLabel","e","debouncedLabel","getBoundingClientRect","pos","leftTop","disabledInput","withTheme","swap","arr","pairs","chunk","acc","pr","replacement","invariant","Number","isFinite","RawBaseComponent","dragPoint","overlapPoint","dragLine","next","dragPoly","close","onClosePolygon","labelChange","onChangeProps","updatedPoint","clickPoint","data","isToolActive","onChangeLabelProps","middle","focus","polygonLabelIndex","hasOwnProperty","BaseComponent","change","changeProps","changeLabelProps","closePolygon","onComplete","dragStart","dragStop","stateMark","addPointToArray","hasPoint","white","inputLabel","getLabelPosition","labelLength","topShift","leftShift","CoordinatesLabel","labelPosition","ariaLabel","RawBp","showCoordinates","onTouchStart","onTouchEnd","ReactDOM","createPortal","RawArrow","angle","vector","ArrowHead","genUid","ArrowMarker","id","scaledX","scaledY","opts","BasePoint","BaseArrow","lineTool","lineToolComponent","LineToolComponent","shouldNotChange","changeMarkProps","dragOpts","lineToArea","lineBase","Comp","DraggableComp","FromPoint","ToPoint","LineBase","onChangePoint","dragComp","draggedFrom","draggedTo","updated","dragFrom","dragTo","trig","toDegrees","fromLabelNode","toLabelNode","lineLabelNode","transition","dashedLine","strokeDasharray","disabledArrow","lineStyles","enabledArrow","correctArrow","incorrectArrow","missingArrow","ArrowedLine","markerId","eFrom","eTo","edges","suffix","StyledArrowedLine","Line","allTools","toolsArr","setStatic_1","setStatic","setDisplayName_1","setDisplayName","getDisplayName_1","getDisplayName","wrapDisplayName_1","wrapDisplayName","shouldUpdate_1","require$$3","require$$4","shouldUpdate","pure_1","pure","createSvgIcon_1","createSvgIcon","setToolbarAvailability","toolbarTools","tA","toolbar","toolIsAvailable","getAvailableTool","filterByValidToolTypes","bM","filterByVisibleToolTypes","getDefaultCurrentTool","toolType","Collapsible","children","expansionPanel","summaryRoot","content","summaryContent","details","GraphWithControls","changeCurrentTool","toggleLabelMode","defaultTool","componentDidUpdate","prevProps","onUndo","onRedo","disableToolbar","onChangeGssLineData","onCustomReset","uniq","tT","isString","gssActions","undoRedoOuterDiv","graphWithControls","controls","justifyContent","primaryLight","minHeight","lastAction","getLastAction","lastActionMiddleware","mapStateToProps","s","present","mapDispatchToProps","dispatch","ActionCreators","undo","redo","GraphContainer","connect","onStoreChange","storeState","store","getState","isUndoOperation","reducer","createStore","applyMiddleware","subscribe","correctnessSet","GridConfig","displayedFields","labelValue","labelValues","gridValue","gridValues","columnView","enabled","mediumTextField","AxisConfig","displayHeader","maxValue","minValue","Typography","EditableHTML","GridSetup","includeAxes","onChangeView","sizeConstraints","standardGrid","gridProps","dimensionsEnabled","includeAxesEnabled","standardGridEnabled","displayAxisType","gridConfigFields","axisConfigFields","onIncludeAxes","noAxesConfig","updatedRange","updatedDomain","onStandardGridChanged","graph","onSizeChanged","onDomainChanged","onRangeChanged","axesConfig","rowView","gridlinesConfig","largeTextField","wrapper","ExpansionPanel","ExpansionPanelSummary","ExpansionPanelDetails","dimensions","textField","fontStyle","paddingTop"],"mappings":"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","x_google_ignoreList":[8,9,10,11,12,34,35,36,37,38,39,40,41,42,43,44,45,46]}