@pie-lib/graphing 2.14.22 → 2.15.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (193) hide show
  1. package/CHANGELOG.md +13 -80
  2. package/NEXT.CHANGELOG.json +1 -0
  3. package/lib/axis/axes.js +5 -5
  4. package/lib/axis/axes.js.map +1 -1
  5. package/lib/container/index.js +1 -4
  6. package/lib/container/index.js.map +1 -1
  7. package/lib/coordinates-label.js +5 -3
  8. package/lib/coordinates-label.js.map +1 -1
  9. package/lib/graph-with-controls.js +8 -15
  10. package/lib/graph-with-controls.js.map +1 -1
  11. package/lib/graph.js +29 -12
  12. package/lib/graph.js.map +1 -1
  13. package/lib/grid.js +6 -14
  14. package/lib/grid.js.map +1 -1
  15. package/lib/index.js +8 -0
  16. package/lib/index.js.map +1 -1
  17. package/lib/key-legend.js +246 -0
  18. package/lib/key-legend.js.map +1 -0
  19. package/lib/label-svg-icon.js +56 -0
  20. package/lib/label-svg-icon.js.map +1 -0
  21. package/lib/labels.js +2 -1
  22. package/lib/labels.js.map +1 -1
  23. package/lib/mark-label.js +167 -56
  24. package/lib/mark-label.js.map +1 -1
  25. package/lib/toggle-bar.js +3 -4
  26. package/lib/toggle-bar.js.map +1 -1
  27. package/lib/tool-menu.js +2 -22
  28. package/lib/tool-menu.js.map +1 -1
  29. package/lib/tools/absolute/component.js +35 -0
  30. package/lib/tools/absolute/component.js.map +1 -0
  31. package/lib/tools/absolute/index.js +63 -0
  32. package/lib/tools/absolute/index.js.map +1 -0
  33. package/lib/tools/circle/bg-circle.js +4 -3
  34. package/lib/tools/circle/bg-circle.js.map +1 -1
  35. package/lib/tools/circle/component.js +34 -15
  36. package/lib/tools/circle/component.js.map +1 -1
  37. package/lib/tools/exponential/component.js +34 -0
  38. package/lib/tools/exponential/component.js.map +1 -0
  39. package/lib/tools/exponential/index.js +71 -0
  40. package/lib/tools/exponential/index.js.map +1 -0
  41. package/lib/tools/index.js +26 -6
  42. package/lib/tools/index.js.map +1 -1
  43. package/lib/tools/line/component.js +2 -1
  44. package/lib/tools/line/component.js.map +1 -1
  45. package/lib/tools/parabola/component.js +6 -5
  46. package/lib/tools/parabola/component.js.map +1 -1
  47. package/lib/tools/point/component.js +14 -9
  48. package/lib/tools/point/component.js.map +1 -1
  49. package/lib/tools/polygon/component.js +25 -12
  50. package/lib/tools/polygon/component.js.map +1 -1
  51. package/lib/tools/polygon/line.js +12 -6
  52. package/lib/tools/polygon/line.js.map +1 -1
  53. package/lib/tools/polygon/polygon.js +6 -3
  54. package/lib/tools/polygon/polygon.js.map +1 -1
  55. package/lib/tools/ray/component.js +2 -1
  56. package/lib/tools/ray/component.js.map +1 -1
  57. package/lib/tools/segment/component.js +2 -1
  58. package/lib/tools/segment/component.js.map +1 -1
  59. package/lib/tools/shared/icons/CorrectSVG.js +36 -0
  60. package/lib/tools/shared/icons/CorrectSVG.js.map +1 -0
  61. package/lib/tools/shared/icons/IncorrectSVG.js +36 -0
  62. package/lib/tools/shared/icons/IncorrectSVG.js.map +1 -0
  63. package/lib/tools/shared/icons/MissingSVG.js +35 -0
  64. package/lib/tools/shared/icons/MissingSVG.js.map +1 -0
  65. package/lib/tools/shared/line/index.js +51 -19
  66. package/lib/tools/shared/line/index.js.map +1 -1
  67. package/lib/tools/shared/line/line-path.js +13 -7
  68. package/lib/tools/shared/line/line-path.js.map +1 -1
  69. package/lib/tools/shared/line/with-root-edge.js +19 -8
  70. package/lib/tools/shared/line/with-root-edge.js.map +1 -1
  71. package/lib/tools/shared/point/arrow-point.js +1 -1
  72. package/lib/tools/shared/point/arrow-point.js.map +1 -1
  73. package/lib/tools/shared/point/arrow.js +1 -1
  74. package/lib/tools/shared/point/arrow.js.map +1 -1
  75. package/lib/tools/shared/point/base-point.js +43 -7
  76. package/lib/tools/shared/point/base-point.js.map +1 -1
  77. package/lib/tools/shared/point/index.js +4 -1
  78. package/lib/tools/shared/point/index.js.map +1 -1
  79. package/lib/tools/shared/styles.js +16 -7
  80. package/lib/tools/shared/styles.js.map +1 -1
  81. package/lib/tools/sine/component.js +13 -4
  82. package/lib/tools/sine/component.js.map +1 -1
  83. package/lib/tools/vector/component.js +2 -1
  84. package/lib/tools/vector/component.js.map +1 -1
  85. package/lib/undo-redo.js +0 -1
  86. package/lib/undo-redo.js.map +1 -1
  87. package/lib/utils.js +1 -1
  88. package/lib/utils.js.map +1 -1
  89. package/package.json +15 -9
  90. package/src/__tests__/__snapshots__/graph-with-controls.test.jsx.snap +237 -0
  91. package/src/__tests__/__snapshots__/graph.test.jsx.snap +211 -0
  92. package/src/__tests__/__snapshots__/grid.test.jsx.snap +54 -0
  93. package/src/__tests__/__snapshots__/labels.test.jsx.snap +30 -0
  94. package/src/__tests__/__snapshots__/mark-label.test.jsx.snap +45 -0
  95. package/src/__tests__/__snapshots__/toggle-bar.test.jsx.snap +7 -0
  96. package/src/__tests__/__snapshots__/tool-menu.test.jsx.snap +13 -0
  97. package/src/__tests__/__snapshots__/undo-redo.test.jsx.snap +14 -0
  98. package/src/__tests__/graph-with-controls.test.jsx +147 -0
  99. package/src/__tests__/graph.test.jsx +230 -0
  100. package/src/__tests__/grid.test.jsx +20 -0
  101. package/src/__tests__/labels.test.jsx +38 -0
  102. package/src/__tests__/mark-label.test.jsx +68 -0
  103. package/src/__tests__/toggle-bar.test.jsx +36 -0
  104. package/src/__tests__/tool-menu.test.jsx +29 -0
  105. package/src/__tests__/undo-redo.test.jsx +25 -0
  106. package/src/__tests__/use-debounce.test.js +21 -0
  107. package/src/__tests__/utils.js +38 -0
  108. package/src/__tests__/utils.test.js +151 -0
  109. package/src/axis/__tests__/__snapshots__/arrow.test.jsx.snap +33 -0
  110. package/src/axis/__tests__/__snapshots__/axes.test.jsx.snap +122 -0
  111. package/src/axis/__tests__/arrow.test.jsx +39 -0
  112. package/src/axis/__tests__/axes.test.jsx +220 -0
  113. package/src/axis/axes.jsx +5 -5
  114. package/src/container/index.jsx +2 -4
  115. package/src/coordinates-label.jsx +4 -3
  116. package/src/graph-with-controls.jsx +8 -10
  117. package/src/graph.jsx +22 -10
  118. package/src/grid.jsx +8 -10
  119. package/src/index.js +2 -2
  120. package/src/key-legend.jsx +145 -0
  121. package/src/label-svg-icon.jsx +39 -0
  122. package/src/labels.jsx +2 -1
  123. package/src/mark-label.jsx +149 -52
  124. package/src/toggle-bar.jsx +1 -2
  125. package/src/tool-menu.jsx +3 -26
  126. package/src/tools/absolute/__tests__/component.test.jsx +54 -0
  127. package/src/tools/absolute/component.jsx +23 -0
  128. package/src/tools/absolute/index.js +31 -0
  129. package/src/tools/circle/__tests__/__snapshots__/bg-circle.test.jsx.snap +46 -0
  130. package/src/tools/circle/__tests__/__snapshots__/component.test.jsx.snap +293 -0
  131. package/src/tools/circle/__tests__/bg-circle.test.jsx +28 -0
  132. package/src/tools/circle/__tests__/component.test.jsx +228 -0
  133. package/src/tools/circle/bg-circle.jsx +5 -4
  134. package/src/tools/circle/component.jsx +22 -8
  135. package/src/tools/exponential/__tests__/component.test.jsx +54 -0
  136. package/src/tools/exponential/component.jsx +23 -0
  137. package/src/tools/exponential/index.js +39 -0
  138. package/src/tools/index.js +38 -5
  139. package/src/tools/line/__tests__/__snapshots__/component.test.jsx.snap +20 -0
  140. package/src/tools/line/__tests__/component.test.jsx +36 -0
  141. package/src/tools/line/component.jsx +2 -1
  142. package/src/tools/parabola/__tests__/component.test.jsx +49 -0
  143. package/src/tools/parabola/component.jsx +7 -6
  144. package/src/tools/point/__tests__/__snapshots__/component.test.jsx.snap +40 -0
  145. package/src/tools/point/__tests__/component.test.jsx +66 -0
  146. package/src/tools/point/component.jsx +12 -6
  147. package/src/tools/polygon/__tests__/__snapshots__/component.test.jsx.snap +415 -0
  148. package/src/tools/polygon/__tests__/__snapshots__/line.test.jsx.snap +45 -0
  149. package/src/tools/polygon/__tests__/__snapshots__/polygon.test.jsx.snap +52 -0
  150. package/src/tools/polygon/__tests__/component.test.jsx +226 -0
  151. package/src/tools/polygon/__tests__/index.test.js +65 -0
  152. package/src/tools/polygon/__tests__/line.test.jsx +25 -0
  153. package/src/tools/polygon/__tests__/polygon.test.jsx +44 -0
  154. package/src/tools/polygon/component.jsx +39 -11
  155. package/src/tools/polygon/line.jsx +15 -7
  156. package/src/tools/polygon/polygon.jsx +7 -3
  157. package/src/tools/ray/__tests__/__snapshots__/component.test.jsx.snap +23 -0
  158. package/src/tools/ray/__tests__/component.test.jsx +29 -0
  159. package/src/tools/ray/component.jsx +2 -1
  160. package/src/tools/segment/__tests__/__snapshots__/component.test.jsx.snap +14 -0
  161. package/src/tools/segment/__tests__/component.test.jsx +28 -0
  162. package/src/tools/segment/component.jsx +2 -1
  163. package/src/tools/shared/__tests__/__snapshots__/arrow-head.test.jsx.snap +27 -0
  164. package/src/tools/shared/__tests__/arrow-head.test.jsx +34 -0
  165. package/src/tools/shared/icons/CorrectSVG.jsx +22 -0
  166. package/src/tools/shared/icons/IncorrectSVG.jsx +20 -0
  167. package/src/tools/shared/icons/MissingSVG.jsx +21 -0
  168. package/src/tools/shared/line/__tests__/__snapshots__/index.test.jsx.snap +360 -0
  169. package/src/tools/shared/line/__tests__/__snapshots__/line-path.test.jsx.snap +58 -0
  170. package/src/tools/shared/line/__tests__/__snapshots__/with-root-edge.test.jsx.snap +63 -0
  171. package/src/tools/shared/line/__tests__/index.test.jsx +255 -0
  172. package/src/tools/shared/line/__tests__/line-path.test.jsx +53 -0
  173. package/src/tools/shared/line/__tests__/with-root-edge.test.jsx +73 -0
  174. package/src/tools/shared/line/index.jsx +39 -13
  175. package/src/tools/shared/line/line-path.jsx +18 -7
  176. package/src/tools/shared/line/with-root-edge.jsx +10 -3
  177. package/src/tools/shared/point/__tests__/__snapshots__/arrow-point.test.jsx.snap +56 -0
  178. package/src/tools/shared/point/__tests__/__snapshots__/base-point.test.jsx.snap +44 -0
  179. package/src/tools/shared/point/__tests__/arrow-point.test.jsx +87 -0
  180. package/src/tools/shared/point/__tests__/base-point.test.jsx +84 -0
  181. package/src/tools/shared/point/arrow-point.jsx +4 -1
  182. package/src/tools/shared/point/arrow.jsx +4 -1
  183. package/src/tools/shared/point/base-point.jsx +28 -3
  184. package/src/tools/shared/point/index.jsx +7 -2
  185. package/src/tools/shared/styles.js +8 -3
  186. package/src/tools/sine/__tests__/component.test.jsx +51 -0
  187. package/src/tools/sine/component.jsx +7 -7
  188. package/src/tools/vector/__tests__/__snapshots__/component.test.jsx.snap +12 -0
  189. package/src/tools/vector/__tests__/component.test.jsx +26 -0
  190. package/src/tools/vector/component.jsx +2 -1
  191. package/src/undo-redo.jsx +0 -1
  192. package/src/utils.js +1 -1
  193. package/legacy.png +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/toggle-bar.jsx"],"names":["translator","Translator","buttonStyles","root","color","text","selected","backgroundColor","background","border","secondary","notSelected","primary","disabled","MiniButton","props","classes","className","value","onClick","language","translatorKey","toLowerCase","e","buttonValue","t","lng","propTypes","PropTypes","bool","object","string","disabledClassName","func","ToggleBar","onChange","target","textContent","dragIndex","hoverIndex","options","onChangeToolsOrder","dragged","splice","selectedToolType","draggableTools","toolsContainer","map","option","index","allTools","includes","isSelected","toolRef","React","createRef","moveTool","button","select","Component","isRequired","arrayOf","styles","theme","display","flexWrap","marginRight","spacing","unit","marginBottom","under","position","top","left","zIndex","pointerEvents","wrapper","hidden","opacity","DRAG_TYPE","Item","children","connectDragSource","connectDropTarget","connectDragPreview","isDragging","oneOfType","node","any","itemSource","canDrag","draggable","beginDrag","itemTarget","hover","monitor","getItem","current","hoverBoundingRect","getBoundingClientRect","hoverMiddleX","right","clientOffset","getClientOffset","hoverClientX","x","collectTarget","connect","dropTarget","collectSource","dragSource","dragPreview","DragTool"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport cn from 'classnames';\nimport Button from '@material-ui/core/Button';\nimport { color } from '@pie-lib/render-ui';\nimport { allTools } from './tools/index';\nimport { withDragContext, DragSource, DropTarget } from '@pie-lib/drag';\nimport Translator from '@pie-lib/translator';\n\nconst { translator } = Translator;\n\nconst buttonStyles = () => ({\n root: {\n color: color.text(),\n },\n selected: {\n backgroundColor: color.background(),\n border: `1px solid ${color.secondary()}`,\n },\n notSelected: {\n '& span': {\n color: color.primary(),\n },\n backgroundColor: color.background(),\n },\n disabled: {\n '& span': {\n color: color.primary(),\n },\n backgroundColor: color.disabled(),\n },\n});\n\nexport const MiniButton = withStyles(buttonStyles)((props) => {\n const { disabled, classes, className, selected, value, onClick, language } = props;\n const translatorKey = value.toLowerCase();\n\n return (\n <Button\n size=\"small\"\n disabled={disabled}\n className={cn(classes.root, selected && classes.selected, className)}\n classes={{ disabled: cn(disabled && classes.disabled) }}\n value={value}\n key={value}\n variant=\"outlined\"\n onClick={(e) => onClick({ ...e, buttonValue: value })}\n >\n {translator.t(`graphing.${translatorKey}`, { lng: language })}\n </Button>\n );\n});\n\nMiniButton.propTypes = {\n disabled: PropTypes.bool,\n classes: PropTypes.object,\n className: PropTypes.string,\n disabledClassName: PropTypes.string,\n selected: PropTypes.bool,\n value: PropTypes.string,\n onClick: PropTypes.func,\n};\n\nexport class ToggleBar extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n options: PropTypes.arrayOf(PropTypes.string),\n selectedToolType: PropTypes.string,\n disabled: PropTypes.bool,\n draggableTools: PropTypes.bool,\n onChange: PropTypes.func,\n onChangeToolsOrder: PropTypes.func,\n language: PropTypes.string,\n };\n\n static defaultProps = {};\n\n select = (e) => this.props.onChange(e.buttonValue || e.target.textContent);\n\n moveTool = (dragIndex, hoverIndex) => {\n const { options, onChangeToolsOrder } = this.props;\n const dragged = options[dragIndex];\n\n options.splice(dragIndex, 1);\n options.splice(hoverIndex, 0, dragged);\n\n onChangeToolsOrder(options);\n };\n\n render() {\n const { classes, className, disabled, options, selectedToolType, draggableTools, language } = this.props;\n\n return (\n <div className={cn(className, classes.toolsContainer)}>\n {(options || []).map((option, index) => {\n if ((allTools || []).includes(option)) {\n const isSelected = option === selectedToolType;\n const toolRef = React.createRef();\n\n return (\n <DragTool\n key={option}\n index={index}\n draggable={draggableTools}\n moveTool={this.moveTool}\n classes={classes}\n toolRef={toolRef}\n >\n <MiniButton\n className={cn(classes.button, isSelected && classes.selected)}\n disabled={disabled}\n disableRipple={true}\n onClick={this.select}\n value={option}\n selected={isSelected}\n language={language}\n />\n </DragTool>\n );\n }\n })}\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n toolsContainer: {\n display: 'flex',\n flexWrap: 'wrap',\n },\n button: {\n marginRight: theme.spacing.unit / 2,\n marginBottom: theme.spacing.unit / 2,\n color: color.text(),\n backgroundColor: color.background(),\n },\n under: {\n position: 'absolute',\n top: 0,\n left: 0,\n zIndex: -1,\n pointerEvents: 'none',\n },\n wrapper: {\n position: 'relative',\n },\n hidden: {\n opacity: 0,\n },\n});\n\nexport default withDragContext(withStyles(styles)(ToggleBar));\n\nconst DRAG_TYPE = 'tool';\n\nexport class Item extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n connectDragSource: PropTypes.func.isRequired,\n connectDragPreview: PropTypes.func.isRequired,\n connectDropTarget: PropTypes.func.isRequired,\n isDragging: PropTypes.bool,\n toolRef: PropTypes.any,\n };\n\n static defaultProps = {};\n\n render() {\n const {\n classes,\n children,\n connectDragSource,\n connectDropTarget,\n connectDragPreview,\n isDragging,\n toolRef,\n } = this.props;\n\n return (\n <div className={classes.wrapper} ref={toolRef}>\n {connectDragSource(connectDropTarget(<div className={isDragging && classes.hidden}>{children}</div>))}\n {connectDragPreview(<div className={classes.under}>{children}</div>)}\n </div>\n );\n }\n}\n\nconst itemSource = {\n canDrag(props) {\n return props.draggable;\n },\n beginDrag(props) {\n return {\n index: props.index,\n };\n },\n};\n\nconst itemTarget = {\n hover(props, monitor) {\n const dragIndex = monitor.getItem().index;\n const { toolRef, index: hoverIndex } = props;\n\n if (dragIndex === hoverIndex || !toolRef.current) {\n return;\n }\n\n const hoverBoundingRect = toolRef.current?.getBoundingClientRect();\n const hoverMiddleX = (hoverBoundingRect.right - hoverBoundingRect.left) / 2;\n const clientOffset = monitor.getClientOffset();\n const hoverClientX = clientOffset.x - hoverBoundingRect.left;\n\n if (dragIndex < hoverIndex && hoverClientX < hoverMiddleX) {\n return;\n }\n\n if (dragIndex > hoverIndex && hoverClientX > hoverMiddleX) {\n return;\n }\n\n props.moveTool(dragIndex, hoverIndex);\n monitor.getItem().index = hoverIndex;\n },\n};\n\nconst collectTarget = (connect) => ({ connectDropTarget: connect.dropTarget() });\n\nconst collectSource = (connect, monitor) => ({\n connectDragSource: connect.dragSource(),\n connectDragPreview: connect.dragPreview(),\n isDragging: monitor.isDragging(),\n});\n\nconst DragTool = DropTarget(\n DRAG_TYPE,\n itemTarget,\n collectTarget,\n)(DragSource(DRAG_TYPE, itemSource, collectSource)(Item));\n"],"file":"toggle-bar.js"}
1
+ {"version":3,"sources":["../src/toggle-bar.jsx"],"names":["translator","Translator","buttonStyles","root","color","text","selected","backgroundColor","background","border","secondary","notSelected","primary","disabled","MiniButton","props","classes","className","value","onClick","language","translatorKey","toLowerCase","e","buttonValue","t","lng","propTypes","PropTypes","bool","object","string","disabledClassName","func","ToggleBar","onChange","target","textContent","dragIndex","hoverIndex","options","onChangeToolsOrder","dragged","splice","selectedToolType","draggableTools","toolsContainer","map","option","index","allTools","includes","isSelected","toolRef","React","createRef","moveTool","button","select","Component","isRequired","arrayOf","styles","theme","display","flexWrap","marginRight","spacing","unit","marginBottom","under","position","top","left","zIndex","pointerEvents","wrapper","hidden","opacity","DRAG_TYPE","Item","children","connectDragSource","connectDropTarget","connectDragPreview","isDragging","oneOfType","node","any","itemSource","canDrag","draggable","beginDrag","itemTarget","hover","monitor","getItem","current","hoverBoundingRect","getBoundingClientRect","hoverMiddleX","right","clientOffset","getClientOffset","hoverClientX","x","collectTarget","connect","dropTarget","collectSource","dragSource","dragPreview","DragTool"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport cn from 'classnames';\nimport Button from '@material-ui/core/Button';\nimport { color } from '@pie-lib/render-ui';\nimport { allTools } from './tools';\nimport { withDragContext, DragSource, DropTarget } from '@pie-lib/drag';\nimport Translator from '@pie-lib/translator';\n\nconst { translator } = Translator;\n\nconst buttonStyles = () => ({\n root: {\n color: color.text(),\n },\n selected: {\n backgroundColor: color.background(),\n border: `1px solid ${color.secondary()}`,\n },\n notSelected: {\n '& span': {\n color: color.primary(),\n },\n backgroundColor: color.background(),\n },\n disabled: {\n '& span': {\n color: color.primary(),\n },\n backgroundColor: color.disabled(),\n },\n});\n\nexport const MiniButton = withStyles(buttonStyles)((props) => {\n const { disabled, classes, className, selected, value, onClick, language } = props;\n const translatorKey = value.toLowerCase();\n\n return (\n <Button\n size=\"small\"\n disabled={disabled}\n className={cn(classes.root, selected && classes.selected, className)}\n classes={{ disabled: cn(disabled && classes.disabled) }}\n value={value}\n key={value}\n variant=\"outlined\"\n onClick={(e) => onClick({ ...e, buttonValue: value })}\n >\n {translator.t(`graphing.${translatorKey}`, { lng: language })}\n </Button>\n );\n});\n\nMiniButton.propTypes = {\n disabled: PropTypes.bool,\n classes: PropTypes.object,\n className: PropTypes.string,\n disabledClassName: PropTypes.string,\n selected: PropTypes.bool,\n value: PropTypes.string,\n onClick: PropTypes.func,\n};\n\nexport class ToggleBar extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n options: PropTypes.arrayOf(PropTypes.string),\n selectedToolType: PropTypes.string,\n disabled: PropTypes.bool,\n draggableTools: PropTypes.bool,\n onChange: PropTypes.func,\n onChangeToolsOrder: PropTypes.func,\n language: PropTypes.string,\n };\n\n static defaultProps = {};\n\n select = (e) => this.props.onChange(e.buttonValue || e.target.textContent);\n\n moveTool = (dragIndex, hoverIndex) => {\n const { options, onChangeToolsOrder } = this.props;\n const dragged = options[dragIndex];\n\n options.splice(dragIndex, 1);\n options.splice(hoverIndex, 0, dragged);\n\n onChangeToolsOrder(options);\n };\n\n render() {\n const { classes, className, disabled, options, selectedToolType, draggableTools, language } = this.props;\n\n return (\n <div className={cn(className, classes.toolsContainer)}>\n {(options || []).map((option, index) => {\n if ((allTools || []).includes(option)) {\n const isSelected = option === selectedToolType;\n const toolRef = React.createRef();\n\n return (\n <DragTool\n key={option}\n index={index}\n draggable={draggableTools}\n moveTool={this.moveTool}\n classes={classes}\n toolRef={toolRef}\n >\n <MiniButton\n className={cn(classes.button, isSelected && classes.selected)}\n disabled={disabled}\n disableRipple={true}\n onClick={this.select}\n value={option}\n selected={isSelected}\n language={language}\n />\n </DragTool>\n );\n }\n })}\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n toolsContainer: {\n display: 'flex',\n flexWrap: 'wrap',\n },\n button: {\n marginRight: theme.spacing.unit / 2,\n marginBottom: theme.spacing.unit / 2,\n color: color.text(),\n },\n under: {\n position: 'absolute',\n top: 0,\n left: 0,\n zIndex: -1,\n pointerEvents: 'none',\n },\n wrapper: {\n position: 'relative',\n },\n hidden: {\n opacity: 0,\n },\n});\n\nexport default withDragContext(withStyles(styles)(ToggleBar));\n\nconst DRAG_TYPE = 'tool';\n\nexport class Item extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n connectDragSource: PropTypes.func.isRequired,\n connectDragPreview: PropTypes.func.isRequired,\n connectDropTarget: PropTypes.func.isRequired,\n isDragging: PropTypes.bool,\n toolRef: PropTypes.any,\n };\n\n static defaultProps = {};\n\n render() {\n const {\n classes,\n children,\n connectDragSource,\n connectDropTarget,\n connectDragPreview,\n isDragging,\n toolRef,\n } = this.props;\n\n return (\n <div className={classes.wrapper} ref={toolRef}>\n {connectDragSource(connectDropTarget(<div className={isDragging && classes.hidden}>{children}</div>))}\n {connectDragPreview(<div className={classes.under}>{children}</div>)}\n </div>\n );\n }\n}\n\nconst itemSource = {\n canDrag(props) {\n return props.draggable;\n },\n beginDrag(props) {\n return {\n index: props.index,\n };\n },\n};\n\nconst itemTarget = {\n hover(props, monitor) {\n const dragIndex = monitor.getItem().index;\n const { toolRef, index: hoverIndex } = props;\n\n if (dragIndex === hoverIndex || !toolRef.current) {\n return;\n }\n\n const hoverBoundingRect = toolRef.current?.getBoundingClientRect();\n const hoverMiddleX = (hoverBoundingRect.right - hoverBoundingRect.left) / 2;\n const clientOffset = monitor.getClientOffset();\n const hoverClientX = clientOffset.x - hoverBoundingRect.left;\n\n if (dragIndex < hoverIndex && hoverClientX < hoverMiddleX) {\n return;\n }\n\n if (dragIndex > hoverIndex && hoverClientX > hoverMiddleX) {\n return;\n }\n\n props.moveTool(dragIndex, hoverIndex);\n monitor.getItem().index = hoverIndex;\n },\n};\n\nconst collectTarget = (connect) => ({ connectDropTarget: connect.dropTarget() });\n\nconst collectSource = (connect, monitor) => ({\n connectDragSource: connect.dragSource(),\n connectDragPreview: connect.dragPreview(),\n isDragging: monitor.isDragging(),\n});\n\nconst DragTool = DropTarget(\n DRAG_TYPE,\n itemTarget,\n collectTarget,\n)(DragSource(DRAG_TYPE, itemSource, collectSource)(Item));\n"],"file":"toggle-bar.js"}
package/lib/tool-menu.js CHANGED
@@ -54,13 +54,8 @@ var ToolMenu = /*#__PURE__*/function (_React$Component) {
54
54
  }
55
55
 
56
56
  _this = _super.call.apply(_super, [this].concat(args));
57
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "updateToolsOrder", function (tools, showLabel) {
57
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "updateToolsOrder", function (tools) {
58
58
  var onChangeTools = _this.props.onChangeTools;
59
-
60
- if (showLabel) {
61
- tools.push('label');
62
- }
63
-
64
59
  onChangeTools(tools);
65
60
  });
66
61
  return _this;
@@ -76,17 +71,9 @@ var ToolMenu = /*#__PURE__*/function (_React$Component) {
76
71
  currentToolType = _this$props.currentToolType,
77
72
  disabled = _this$props.disabled,
78
73
  draggableTools = _this$props.draggableTools,
79
- labelModeEnabled = _this$props.labelModeEnabled,
80
- onToggleLabelMode = _this$props.onToggleLabelMode,
81
74
  onChange = _this$props.onChange,
82
75
  language = _this$props.language;
83
76
  var toolbarTools = this.props.toolbarTools;
84
- var showLabel = toolbarTools && toolbarTools.some(function (t) {
85
- return t === 'label';
86
- });
87
- toolbarTools = (toolbarTools || []).filter(function (tT) {
88
- return tT !== 'label';
89
- });
90
77
  return /*#__PURE__*/_react["default"].createElement("div", {
91
78
  className: (0, _classnames["default"])(className)
92
79
  }, /*#__PURE__*/_react["default"].createElement(_toggleBar["default"], {
@@ -96,15 +83,9 @@ var ToolMenu = /*#__PURE__*/function (_React$Component) {
96
83
  selectedToolType: currentToolType,
97
84
  onChange: onChange,
98
85
  onChangeToolsOrder: function onChangeToolsOrder(tools) {
99
- return _this2.updateToolsOrder(tools, showLabel);
86
+ return _this2.updateToolsOrder(tools);
100
87
  },
101
88
  language: language
102
- }), showLabel && /*#__PURE__*/_react["default"].createElement(_toggleBar.MiniButton, {
103
- disabled: disabled,
104
- value: 'Label',
105
- onClick: onToggleLabelMode,
106
- selected: labelModeEnabled,
107
- language: language
108
89
  }));
109
90
  }
110
91
  }]);
@@ -119,7 +100,6 @@ exports.ToolMenu = ToolMenu;
119
100
  draggableTools: _propTypes["default"].bool,
120
101
  labelModeEnabled: _propTypes["default"].bool,
121
102
  onChange: _propTypes["default"].func,
122
- onToggleLabelMode: _propTypes["default"].func,
123
103
  onChangeTools: _propTypes["default"].func,
124
104
  toolbarTools: _propTypes["default"].arrayOf(_propTypes["default"].string),
125
105
  language: _propTypes["default"].string
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/tool-menu.jsx"],"names":["ToolMenu","tools","showLabel","onChangeTools","props","push","className","currentToolType","disabled","draggableTools","labelModeEnabled","onToggleLabelMode","onChange","language","toolbarTools","some","t","filter","tT","updateToolsOrder","React","Component","PropTypes","string","bool","func","arrayOf"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;;;;;;;;;IAEaA,Q;;;;;;;;;;;;;;;yGAkBQ,UAACC,KAAD,EAAQC,SAAR,EAAsB;AACvC,UAAQC,aAAR,GAA0B,MAAKC,KAA/B,CAAQD,aAAR;;AAEA,UAAID,SAAJ,EAAe;AACbD,QAAAA,KAAK,CAACI,IAAN,CAAW,OAAX;AACD;;AAEDF,MAAAA,aAAa,CAACF,KAAD,CAAb;AACD,K;;;;;;WAED,kBAAS;AAAA;;AACP,wBASI,KAAKG,KATT;AAAA,UACEE,SADF,eACEA,SADF;AAAA,UAEEC,eAFF,eAEEA,eAFF;AAAA,UAGEC,QAHF,eAGEA,QAHF;AAAA,UAIEC,cAJF,eAIEA,cAJF;AAAA,UAKEC,gBALF,eAKEA,gBALF;AAAA,UAMEC,iBANF,eAMEA,iBANF;AAAA,UAOEC,QAPF,eAOEA,QAPF;AAAA,UAQEC,QARF,eAQEA,QARF;AAUA,UAAMC,YAAN,GAAuB,KAAKV,KAA5B,CAAMU,YAAN;AAEA,UAAMZ,SAAS,GAAGY,YAAY,IAAIA,YAAY,CAACC,IAAb,CAAkB,UAACC,CAAD;AAAA,eAAOA,CAAC,KAAK,OAAb;AAAA,OAAlB,CAAlC;AAEAF,MAAAA,YAAY,GAAG,CAACA,YAAY,IAAI,EAAjB,EAAqBG,MAArB,CAA4B,UAACC,EAAD;AAAA,eAAQA,EAAE,KAAK,OAAf;AAAA,OAA5B,CAAf;AAEA,0BACE;AAAK,QAAA,SAAS,EAAE,4BAAWZ,SAAX;AAAhB,sBACE,gCAAC,qBAAD;AACE,QAAA,QAAQ,EAAEE,QADZ;AAEE,QAAA,cAAc,EAAEC,cAFlB;AAGE,QAAA,OAAO,EAAEK,YAHX;AAIE,QAAA,gBAAgB,EAAEP,eAJpB;AAKE,QAAA,QAAQ,EAAEK,QALZ;AAME,QAAA,kBAAkB,EAAE,4BAACX,KAAD;AAAA,iBAAW,MAAI,CAACkB,gBAAL,CAAsBlB,KAAtB,EAA6BC,SAA7B,CAAX;AAAA,SANtB;AAOE,QAAA,QAAQ,EAAEW;AAPZ,QADF,EAWGX,SAAS,iBACR,gCAAC,qBAAD;AAAY,QAAA,QAAQ,EAAEM,QAAtB;AAAgC,QAAA,KAAK,EAAE,OAAvC;AAAgD,QAAA,OAAO,EAAEG,iBAAzD;AAA4E,QAAA,QAAQ,EAAED,gBAAtF;AAAwG,QAAA,QAAQ,EAAEG;AAAlH,QAZJ,CADF;AAiBD;;;EA9D2BO,kBAAMC,S;;;iCAAvBrB,Q,eACQ;AACjBM,EAAAA,SAAS,EAAEgB,sBAAUC,MADJ;AAEjBhB,EAAAA,eAAe,EAAEe,sBAAUC,MAFV;AAGjBf,EAAAA,QAAQ,EAAEc,sBAAUE,IAHH;AAIjBf,EAAAA,cAAc,EAAEa,sBAAUE,IAJT;AAKjBd,EAAAA,gBAAgB,EAAEY,sBAAUE,IALX;AAMjBZ,EAAAA,QAAQ,EAAEU,sBAAUG,IANH;AAOjBd,EAAAA,iBAAiB,EAAEW,sBAAUG,IAPZ;AAQjBtB,EAAAA,aAAa,EAAEmB,sBAAUG,IARR;AASjBX,EAAAA,YAAY,EAAEQ,sBAAUI,OAAV,CAAkBJ,sBAAUC,MAA5B,CATG;AAUjBV,EAAAA,QAAQ,EAAES,sBAAUC;AAVH,C;iCADRvB,Q,kBAcW;AACpBc,EAAAA,YAAY,EAAE;AADM,C;eAmDTd,Q","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\n\nimport ToggleBar, { MiniButton } from './toggle-bar';\n\nexport class ToolMenu extends React.Component {\n static propTypes = {\n className: PropTypes.string,\n currentToolType: PropTypes.string,\n disabled: PropTypes.bool,\n draggableTools: PropTypes.bool,\n labelModeEnabled: PropTypes.bool,\n onChange: PropTypes.func,\n onToggleLabelMode: PropTypes.func,\n onChangeTools: PropTypes.func,\n toolbarTools: PropTypes.arrayOf(PropTypes.string),\n language: PropTypes.string,\n };\n\n static defaultProps = {\n toolbarTools: [],\n };\n\n updateToolsOrder = (tools, showLabel) => {\n const { onChangeTools } = this.props;\n\n if (showLabel) {\n tools.push('label');\n }\n\n onChangeTools(tools);\n };\n\n render() {\n const {\n className,\n currentToolType,\n disabled,\n draggableTools,\n labelModeEnabled,\n onToggleLabelMode,\n onChange,\n language\n } = this.props;\n let { toolbarTools } = this.props;\n\n const showLabel = toolbarTools && toolbarTools.some((t) => t === 'label');\n\n toolbarTools = (toolbarTools || []).filter((tT) => tT !== 'label');\n\n return (\n <div className={classNames(className)}>\n <ToggleBar\n disabled={disabled}\n draggableTools={draggableTools}\n options={toolbarTools}\n selectedToolType={currentToolType}\n onChange={onChange}\n onChangeToolsOrder={(tools) => this.updateToolsOrder(tools, showLabel)}\n language={language}\n />\n\n {showLabel && (\n <MiniButton disabled={disabled} value={'Label'} onClick={onToggleLabelMode} selected={labelModeEnabled} language={language} />\n )}\n </div>\n );\n }\n}\n\nexport default ToolMenu;\n"],"file":"tool-menu.js"}
1
+ {"version":3,"sources":["../src/tool-menu.jsx"],"names":["ToolMenu","tools","onChangeTools","props","className","currentToolType","disabled","draggableTools","onChange","language","toolbarTools","updateToolsOrder","React","Component","PropTypes","string","bool","labelModeEnabled","func","arrayOf"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;;;;;;;;;IAEaA,Q;;;;;;;;;;;;;;;yGAiBQ,UAACC,KAAD,EAAW;AAC5B,UAAQC,aAAR,GAA0B,MAAKC,KAA/B,CAAQD,aAAR;AACAA,MAAAA,aAAa,CAACD,KAAD,CAAb;AACD,K;;;;;;WAED,kBAAS;AAAA;;AACP,wBAAqF,KAAKE,KAA1F;AAAA,UAAQC,SAAR,eAAQA,SAAR;AAAA,UAAmBC,eAAnB,eAAmBA,eAAnB;AAAA,UAAoCC,QAApC,eAAoCA,QAApC;AAAA,UAA8CC,cAA9C,eAA8CA,cAA9C;AAAA,UAA8DC,QAA9D,eAA8DA,QAA9D;AAAA,UAAwEC,QAAxE,eAAwEA,QAAxE;AACA,UAAMC,YAAN,GAAuB,KAAKP,KAA5B,CAAMO,YAAN;AAEA,0BACE;AAAK,QAAA,SAAS,EAAE,4BAAWN,SAAX;AAAhB,sBACE,gCAAC,qBAAD;AACE,QAAA,QAAQ,EAAEE,QADZ;AAEE,QAAA,cAAc,EAAEC,cAFlB;AAGE,QAAA,OAAO,EAAEG,YAHX;AAIE,QAAA,gBAAgB,EAAEL,eAJpB;AAKE,QAAA,QAAQ,EAAEG,QALZ;AAME,QAAA,kBAAkB,EAAE,4BAACP,KAAD;AAAA,iBAAW,MAAI,CAACU,gBAAL,CAAsBV,KAAtB,CAAX;AAAA,SANtB;AAOE,QAAA,QAAQ,EAAEQ;AAPZ,QADF,CADF;AAaD;;;EAvC2BG,kBAAMC,S;;;iCAAvBb,Q,eACQ;AACjBI,EAAAA,SAAS,EAAEU,sBAAUC,MADJ;AAEjBV,EAAAA,eAAe,EAAES,sBAAUC,MAFV;AAGjBT,EAAAA,QAAQ,EAAEQ,sBAAUE,IAHH;AAIjBT,EAAAA,cAAc,EAAEO,sBAAUE,IAJT;AAKjBC,EAAAA,gBAAgB,EAAEH,sBAAUE,IALX;AAMjBR,EAAAA,QAAQ,EAAEM,sBAAUI,IANH;AAOjBhB,EAAAA,aAAa,EAAEY,sBAAUI,IAPR;AAQjBR,EAAAA,YAAY,EAAEI,sBAAUK,OAAV,CAAkBL,sBAAUC,MAA5B,CARG;AASjBN,EAAAA,QAAQ,EAAEK,sBAAUC;AATH,C;iCADRf,Q,kBAaW;AACpBU,EAAAA,YAAY,EAAE;AADM,C;eA6BTV,Q","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\n\nimport ToggleBar, { MiniButton } from './toggle-bar';\n\nexport class ToolMenu extends React.Component {\n static propTypes = {\n className: PropTypes.string,\n currentToolType: PropTypes.string,\n disabled: PropTypes.bool,\n draggableTools: PropTypes.bool,\n labelModeEnabled: PropTypes.bool,\n onChange: PropTypes.func,\n onChangeTools: PropTypes.func,\n toolbarTools: PropTypes.arrayOf(PropTypes.string),\n language: PropTypes.string,\n };\n\n static defaultProps = {\n toolbarTools: [],\n };\n\n updateToolsOrder = (tools) => {\n const { onChangeTools } = this.props;\n onChangeTools(tools);\n };\n\n render() {\n const { className, currentToolType, disabled, draggableTools, onChange, language } = this.props;\n let { toolbarTools } = this.props;\n\n return (\n <div className={classNames(className)}>\n <ToggleBar\n disabled={disabled}\n draggableTools={draggableTools}\n options={toolbarTools}\n selectedToolType={currentToolType}\n onChange={onChange}\n onChangeToolsOrder={(tools) => this.updateToolsOrder(tools)}\n language={language}\n />\n </div>\n );\n }\n}\n\nexport default ToolMenu;\n"],"file":"tool-menu.js"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+
10
+ var _debug = _interopRequireDefault(require("debug"));
11
+
12
+ var _graphingUtils = require("@pie-lib/graphing-utils");
13
+
14
+ var _withRootEdge = require("../shared/line/with-root-edge");
15
+
16
+ var log = (0, _debug["default"])('pie-lib:graphing:absolute');
17
+ var Absolute = (0, _withRootEdge.withRootEdge)(function (props) {
18
+ var root = props.root,
19
+ edge = props.edge,
20
+ graphProps = props.graphProps;
21
+ var domain = graphProps.domain,
22
+ range = graphProps.range;
23
+ var dataPoints = edge && edge.x === root.x ? [] : (0, _graphingUtils.buildDataPoints)(domain, range, root, edge, (0, _graphingUtils.absoluteFromTwoPoints)(root, edge), true);
24
+ log('dataPoints:', dataPoints);
25
+ return {
26
+ root: props.root,
27
+ edge: props.edge,
28
+ dataPoints: dataPoints,
29
+ enableCurve: false
30
+ };
31
+ });
32
+ var Component = (0, _withRootEdge.rootEdgeComponent)(Absolute);
33
+ var _default = Component;
34
+ exports["default"] = _default;
35
+ //# sourceMappingURL=component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/tools/absolute/component.jsx"],"names":["log","Absolute","props","root","edge","graphProps","domain","range","dataPoints","x","enableCurve","Component"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AAEA,IAAMA,GAAG,GAAG,uBAAM,2BAAN,CAAZ;AAEA,IAAMC,QAAQ,GAAG,gCAAa,UAACC,KAAD,EAAW;AACvC,MAAQC,IAAR,GAAmCD,KAAnC,CAAQC,IAAR;AAAA,MAAcC,IAAd,GAAmCF,KAAnC,CAAcE,IAAd;AAAA,MAAoBC,UAApB,GAAmCH,KAAnC,CAAoBG,UAApB;AACA,MAAQC,MAAR,GAA0BD,UAA1B,CAAQC,MAAR;AAAA,MAAgBC,KAAhB,GAA0BF,UAA1B,CAAgBE,KAAhB;AAEA,MAAMC,UAAU,GACdJ,IAAI,IAAIA,IAAI,CAACK,CAAL,KAAWN,IAAI,CAACM,CAAxB,GACI,EADJ,GAEI,oCAAgBH,MAAhB,EAAwBC,KAAxB,EAA+BJ,IAA/B,EAAqCC,IAArC,EAA2C,0CAAsBD,IAAtB,EAA4BC,IAA5B,CAA3C,EAA8E,IAA9E,CAHN;AAKAJ,EAAAA,GAAG,CAAC,aAAD,EAAgBQ,UAAhB,CAAH;AAEA,SAAO;AAAEL,IAAAA,IAAI,EAAED,KAAK,CAACC,IAAd;AAAoBC,IAAAA,IAAI,EAAEF,KAAK,CAACE,IAAhC;AAAsCI,IAAAA,UAAU,EAAVA,UAAtC;AAAkDE,IAAAA,WAAW,EAAE;AAA/D,GAAP;AACD,CAZgB,CAAjB;AAcA,IAAMC,SAAS,GAAG,qCAAkBV,QAAlB,CAAlB;eAEeU,S","sourcesContent":["import debug from 'debug';\nimport { buildDataPoints, absoluteFromTwoPoints } from '@pie-lib/graphing-utils';\nimport { withRootEdge, rootEdgeComponent } from '../shared/line/with-root-edge';\n\nconst log = debug('pie-lib:graphing:absolute');\n\nconst Absolute = withRootEdge((props) => {\n const { root, edge, graphProps } = props;\n const { domain, range } = graphProps;\n\n const dataPoints =\n edge && edge.x === root.x\n ? []\n : buildDataPoints(domain, range, root, edge, absoluteFromTwoPoints(root, edge), true);\n\n log('dataPoints:', dataPoints);\n\n return { root: props.root, edge: props.edge, dataPoints, enableCurve: false };\n});\n\nconst Component = rootEdgeComponent(Absolute);\n\nexport default Component;\n"],"file":"component.js"}
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.tool = void 0;
9
+
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+
12
+ var _component = _interopRequireDefault(require("./component"));
13
+
14
+ var _debug = _interopRequireDefault(require("debug"));
15
+
16
+ var _utils = require("../../utils");
17
+
18
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
19
+
20
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
21
+
22
+ var log = (0, _debug["default"])('pie-lib:graphing:absolute');
23
+
24
+ var tool = function tool() {
25
+ return {
26
+ type: 'absolute',
27
+ Component: _component["default"],
28
+ complete: function complete(data, mark) {
29
+ return _objectSpread(_objectSpread({}, mark), {}, {
30
+ building: false,
31
+ closed: true
32
+ });
33
+ },
34
+ addPoint: function addPoint(point, mark) {
35
+ log('add point to absolute model: ', point, 'mark: ', mark);
36
+
37
+ if (mark && ((0, _utils.equalPoints)(mark.root, point) || (0, _utils.sameAxes)(mark.root, point))) {
38
+ return mark;
39
+ }
40
+
41
+ if (!mark) {
42
+ return {
43
+ type: 'absolute',
44
+ root: point,
45
+ edge: undefined,
46
+ closed: false,
47
+ building: true
48
+ };
49
+ } else if (mark && !mark.root) {
50
+ throw new Error('no root - should never happen');
51
+ } else {
52
+ return _objectSpread(_objectSpread({}, mark), {}, {
53
+ edge: point,
54
+ closed: true,
55
+ building: false
56
+ });
57
+ }
58
+ }
59
+ };
60
+ };
61
+
62
+ exports.tool = tool;
63
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/tools/absolute/index.js"],"names":["log","tool","type","Component","Absolute","complete","data","mark","building","closed","addPoint","point","root","edge","undefined","Error"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;AAEA,IAAMA,GAAG,GAAG,uBAAM,2BAAN,CAAZ;;AAEO,IAAMC,IAAI,GAAG,SAAPA,IAAO;AAAA,SAAO;AACzBC,IAAAA,IAAI,EAAE,UADmB;AAEzBC,IAAAA,SAAS,EAAEC,qBAFc;AAGzBC,IAAAA,QAAQ,EAAE,kBAACC,IAAD,EAAOC,IAAP;AAAA,6CAAsBA,IAAtB;AAA4BC,QAAAA,QAAQ,EAAE,KAAtC;AAA6CC,QAAAA,MAAM,EAAE;AAArD;AAAA,KAHe;AAIzBC,IAAAA,QAAQ,EAAE,kBAACC,KAAD,EAAQJ,IAAR,EAAiB;AACzBP,MAAAA,GAAG,CAAC,+BAAD,EAAkCW,KAAlC,EAAyC,QAAzC,EAAmDJ,IAAnD,CAAH;;AACA,UAAIA,IAAI,KAAK,wBAAYA,IAAI,CAACK,IAAjB,EAAuBD,KAAvB,KAAiC,qBAASJ,IAAI,CAACK,IAAd,EAAoBD,KAApB,CAAtC,CAAR,EAA2E;AACzE,eAAOJ,IAAP;AACD;;AAED,UAAI,CAACA,IAAL,EAAW;AACT,eAAO;AACLL,UAAAA,IAAI,EAAE,UADD;AAELU,UAAAA,IAAI,EAAED,KAFD;AAGLE,UAAAA,IAAI,EAAEC,SAHD;AAILL,UAAAA,MAAM,EAAE,KAJH;AAKLD,UAAAA,QAAQ,EAAE;AALL,SAAP;AAOD,OARD,MAQO,IAAID,IAAI,IAAI,CAACA,IAAI,CAACK,IAAlB,EAAwB;AAC7B,cAAM,IAAIG,KAAJ,CAAU,+BAAV,CAAN;AACD,OAFM,MAEA;AACL,+CAAYR,IAAZ;AAAkBM,UAAAA,IAAI,EAAEF,KAAxB;AAA+BF,UAAAA,MAAM,EAAE,IAAvC;AAA6CD,UAAAA,QAAQ,EAAE;AAAvD;AACD;AACF;AAvBwB,GAAP;AAAA,CAAb","sourcesContent":["import Absolute from './component';\nimport debug from 'debug';\nimport { equalPoints, sameAxes } from '../../utils';\n\nconst log = debug('pie-lib:graphing:absolute');\n\nexport const tool = () => ({\n type: 'absolute',\n Component: Absolute,\n complete: (data, mark) => ({ ...mark, building: false, closed: true }),\n addPoint: (point, mark) => {\n log('add point to absolute model: ', point, 'mark: ', mark);\n if (mark && (equalPoints(mark.root, point) || sameAxes(mark.root, point))) {\n return mark;\n }\n\n if (!mark) {\n return {\n type: 'absolute',\n root: point,\n edge: undefined,\n closed: false,\n building: true,\n };\n } else if (mark && !mark.root) {\n throw new Error('no root - should never happen');\n } else {\n return { ...mark, edge: point, closed: true, building: false };\n }\n },\n});\n"],"file":"index.js"}
@@ -88,7 +88,7 @@ var RawCircle = /*#__PURE__*/function (_React$Component) {
88
88
  var rx = Math.abs(scale.x(x + radius) - scale.x(x));
89
89
  var ry = Math.abs(scale.y(y + radius) - scale.y(y));
90
90
  return /*#__PURE__*/_react["default"].createElement("ellipse", (0, _extends2["default"])({
91
- className: (0, _classnames["default"])(classes.bgCircle, disabled && classes.disabled, classes[correctness], className),
91
+ className: (0, _classnames["default"])(classes.bgCircle, disabled && classes.disabledSecondary, classes[correctness], className),
92
92
  cx: scale.x(x),
93
93
  cy: scale.y(y),
94
94
  rx: rx,
@@ -122,15 +122,16 @@ var styles = function styles() {
122
122
  return {
123
123
  bgCircle: {
124
124
  fill: 'transparent',
125
- stroke: _renderUi.color.primaryLight(),
125
+ stroke: _renderUi.color.defaults.BLACK,
126
126
  strokeWidth: 3,
127
127
  transition: 'stroke 200ms ease-in, stroke-width 200ms ease-in',
128
128
  '&:hover': {
129
129
  strokeWidth: 6,
130
- stroke: _renderUi.color.primaryDark()
130
+ stroke: _renderUi.color.defaults.PRIMARY_DARK
131
131
  }
132
132
  },
133
133
  disabled: applyStyle(_styles2.disabled),
134
+ disabledSecondary: applyStyle(_styles2.disabledSecondary),
134
135
  correct: applyStyle(_styles2.correct),
135
136
  incorrect: applyStyle(_styles2.incorrect),
136
137
  missing: applyStyle(_styles2.missing)
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/tools/circle/bg-circle.jsx"],"names":["RawCircle","props","classes","disabled","className","correctness","x","y","radius","graphProps","rest","scale","rx","Math","abs","ry","bgCircle","React","Component","PropTypes","object","isRequired","string","bool","number","types","GraphPropsType","applyStyle","fn","strokeWidth","styles","fill","stroke","color","primaryLight","transition","primaryDark","correct","incorrect","missing","BgCircle","bounds","domain","range","area","left","top","bottom","right","utils","anchorPoint","fromDelta","delta","newPoint","point","add"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport { types, gridDraggable } from '@pie-lib/plot';\nimport { color } from '@pie-lib/render-ui';\nimport * as utils from '../../utils';\nimport { disabled, correct, incorrect, missing } from '../shared/styles';\n\n/**\n * A low level circle component\n *\n * TODO: This and base point have a lot of similarities - merge commonality\n *\n */\nclass RawCircle extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n correctness: PropTypes.string,\n disabled: PropTypes.bool,\n x: PropTypes.number.isRequired,\n y: PropTypes.number.isRequired,\n radius: PropTypes.number,\n graphProps: types.GraphPropsType.isRequired,\n };\n\n render() {\n const { classes, disabled, className, correctness, x, y, radius, graphProps, ...rest } = this.props;\n const { scale } = graphProps;\n const rx = Math.abs(scale.x(x + radius) - scale.x(x));\n const ry = Math.abs(scale.y(y + radius) - scale.y(y));\n\n return (\n <ellipse\n className={classNames(classes.bgCircle, disabled && classes.disabled, classes[correctness], className)}\n cx={scale.x(x)}\n cy={scale.y(y)}\n rx={rx}\n ry={ry}\n {...rest}\n />\n );\n }\n}\n\nconst applyStyle = (fn) => ({\n ...fn('stroke'),\n '&:hover': {\n strokeWidth: 3,\n ...fn('stroke'),\n },\n});\n\nconst styles = () => ({\n bgCircle: {\n fill: 'transparent',\n stroke: color.primaryLight(),\n strokeWidth: 3,\n transition: 'stroke 200ms ease-in, stroke-width 200ms ease-in',\n '&:hover': {\n strokeWidth: 6,\n stroke: color.primaryDark(),\n },\n },\n disabled: applyStyle(disabled),\n correct: applyStyle(correct),\n incorrect: applyStyle(incorrect),\n missing: applyStyle(missing),\n});\n\nexport const BgCircle = withStyles(styles)(RawCircle);\n\nexport default gridDraggable({\n bounds: (props, { domain, range }) => {\n const { x, y } = props;\n const area = { left: x, top: y, bottom: y, right: x };\n return utils.bounds(area, domain, range);\n },\n anchorPoint: (props) => {\n const { x, y } = props;\n return { x, y };\n },\n fromDelta: (props, delta) => {\n const newPoint = utils.point(props).add(utils.point(delta));\n return newPoint;\n },\n})(BgCircle);\n"],"file":"bg-circle.js"}
1
+ {"version":3,"sources":["../../../src/tools/circle/bg-circle.jsx"],"names":["RawCircle","props","classes","disabled","className","correctness","x","y","radius","graphProps","rest","scale","rx","Math","abs","ry","bgCircle","disabledSecondary","React","Component","PropTypes","object","isRequired","string","bool","number","types","GraphPropsType","applyStyle","fn","strokeWidth","styles","fill","stroke","color","defaults","BLACK","transition","PRIMARY_DARK","correct","incorrect","missing","BgCircle","bounds","domain","range","area","left","top","bottom","right","utils","anchorPoint","fromDelta","delta","newPoint","point","add"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport { types, gridDraggable } from '@pie-lib/plot';\nimport { color } from '@pie-lib/render-ui';\nimport * as utils from '../../utils';\nimport { disabled, disabledSecondary, correct, incorrect, missing } from '../shared/styles';\n\n/**\n * A low level circle component\n *\n * TODO: This and base point have a lot of similarities - merge commonality\n *\n */\nclass RawCircle extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n correctness: PropTypes.string,\n disabled: PropTypes.bool,\n x: PropTypes.number.isRequired,\n y: PropTypes.number.isRequired,\n radius: PropTypes.number,\n graphProps: types.GraphPropsType.isRequired,\n };\n\n render() {\n const { classes, disabled, className, correctness, x, y, radius, graphProps, ...rest } = this.props;\n const { scale } = graphProps;\n const rx = Math.abs(scale.x(x + radius) - scale.x(x));\n const ry = Math.abs(scale.y(y + radius) - scale.y(y));\n\n return (\n <ellipse\n className={classNames(classes.bgCircle, disabled && classes.disabledSecondary, classes[correctness], className)}\n cx={scale.x(x)}\n cy={scale.y(y)}\n rx={rx}\n ry={ry}\n {...rest}\n />\n );\n }\n}\n\nconst applyStyle = (fn) => ({\n ...fn('stroke'),\n '&:hover': {\n strokeWidth: 3,\n ...fn('stroke'),\n },\n});\n\nconst styles = () => ({\n bgCircle: {\n fill: 'transparent',\n stroke: color.defaults.BLACK,\n strokeWidth: 3,\n transition: 'stroke 200ms ease-in, stroke-width 200ms ease-in',\n '&:hover': {\n strokeWidth: 6,\n stroke: color.defaults.PRIMARY_DARK,\n },\n },\n disabled: applyStyle(disabled),\n disabledSecondary: applyStyle(disabledSecondary),\n correct: applyStyle(correct),\n incorrect: applyStyle(incorrect),\n missing: applyStyle(missing),\n});\n\nexport const BgCircle = withStyles(styles)(RawCircle);\n\nexport default gridDraggable({\n bounds: (props, { domain, range }) => {\n const { x, y } = props;\n const area = { left: x, top: y, bottom: y, right: x };\n return utils.bounds(area, domain, range);\n },\n anchorPoint: (props) => {\n const { x, y } = props;\n return { x, y };\n },\n fromDelta: (props, delta) => {\n const newPoint = utils.point(props).add(utils.point(delta));\n return newPoint;\n },\n})(BgCircle);\n"],"file":"bg-circle.js"}
@@ -183,11 +183,29 @@ var RawBaseCircle = /*#__PURE__*/function (_React$Component) {
183
183
 
184
184
  changeMarkProps((0, _defineProperty2["default"])({}, type, update));
185
185
  });
186
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "clickPoint", function (point, type) {
186
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "clickPoint", function (point, type, data) {
187
187
  var _this$props5 = _this.props,
188
188
  changeMarkProps = _this$props5.changeMarkProps,
189
+ disabled = _this$props5.disabled,
189
190
  from = _this$props5.from,
190
- to = _this$props5.to;
191
+ to = _this$props5.to,
192
+ labelModeEnabled = _this$props5.labelModeEnabled,
193
+ limitLabeling = _this$props5.limitLabeling,
194
+ onClick = _this$props5.onClick;
195
+
196
+ if (!labelModeEnabled) {
197
+ onClick(point || data);
198
+ return;
199
+ }
200
+
201
+ if (disabled) {
202
+ return;
203
+ } // limit labeling the points of the circle
204
+
205
+
206
+ if (limitLabeling) {
207
+ return;
208
+ }
191
209
 
192
210
  if (type === 'middle' && !point && from && to) {
193
211
  point = _objectSpread(_objectSpread({}, point), (0, _utils.getMiddleOfTwoPoints)(from, to));
@@ -299,9 +317,9 @@ var RawBaseCircle = /*#__PURE__*/function (_React$Component) {
299
317
  radius: radius,
300
318
  onDrag: this.dragCircle
301
319
  }, common, {
302
- onClick: labelModeEnabled ? function () {
303
- return _this2.clickPoint(middle, 'middle');
304
- } : common.onClick
320
+ onClick: function onClick(data) {
321
+ return _this2.clickPoint(middle, 'middle', data);
322
+ }
305
323
  })), circleLabelNode, /*#__PURE__*/_react["default"].createElement(_point.BasePoint, (0, _extends2["default"])({
306
324
  disabled: building || disabled,
307
325
  coordinatesOnHover: coordinatesOnHover,
@@ -311,9 +329,9 @@ var RawBaseCircle = /*#__PURE__*/function (_React$Component) {
311
329
  y: to.y,
312
330
  onDrag: this.dragTo
313
331
  }, common, {
314
- onClick: labelModeEnabled ? function () {
315
- return _this2.clickPoint(to, 'to');
316
- } : common.onClick
332
+ onClick: function onClick(data) {
333
+ return _this2.clickPoint(to, 'to', data);
334
+ }
317
335
  })), toLabelNode, /*#__PURE__*/_react["default"].createElement(_point.BasePoint, (0, _extends2["default"])({
318
336
  disabled: building || disabled,
319
337
  coordinatesOnHover: coordinatesOnHover,
@@ -324,9 +342,9 @@ var RawBaseCircle = /*#__PURE__*/function (_React$Component) {
324
342
  className: classes.from,
325
343
  onDrag: this.dragFrom
326
344
  }, common, {
327
- onClick: labelModeEnabled ? function () {
328
- return _this2.clickPoint(from, 'from');
329
- } : common.onClick
345
+ onClick: function onClick(data) {
346
+ return _this2.clickPoint(from, 'from', data);
347
+ }
330
348
  })), fromLabelNode);
331
349
  }
332
350
  }]);
@@ -351,7 +369,8 @@ exports.RawBaseCircle = RawBaseCircle;
351
369
  onClick: _propTypes["default"].func,
352
370
  labelNode: _propTypes["default"].object,
353
371
  labelModeEnabled: _propTypes["default"].bool,
354
- changeMarkProps: _propTypes["default"].func
372
+ changeMarkProps: _propTypes["default"].func,
373
+ limitLabeling: _propTypes["default"].bool
355
374
  });
356
375
  (0, _defineProperty2["default"])(RawBaseCircle, "defaultProps", {
357
376
  onClick: function onClick() {
@@ -363,16 +382,16 @@ var BaseCircle = (0, _styles.withStyles)(function () {
363
382
  outerLine: {
364
383
  fill: 'rgb(0,0,0,0)',
365
384
  // TODO hardcoded color
366
- stroke: _renderUi.color.primaryLight(),
385
+ stroke: _renderUi.color.defaults.BLACK,
367
386
  strokeWidth: 4,
368
387
  '&:hover': {
369
388
  strokeWidth: 6,
370
- stroke: _renderUi.color.primaryDark()
389
+ stroke: _renderUi.color.defaults.PRIMARY_DARK
371
390
  }
372
391
  },
373
392
  root: {},
374
393
  bgCircleBuilding: {
375
- stroke: _renderUi.color.secondaryLight(),
394
+ stroke: _renderUi.color.defaults.BLACK,
376
395
  animation: 'opacityPulse 2s ease-out',
377
396
  animationIterationCount: 'infinite',
378
397
  opacity: 1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/tools/circle/component.jsx"],"names":["opacityPulsate","opacity","getRadius","from","outer","c","dist","RawBaseCircle","point","props","middle","onChange","to","draggedFrom","label","onChangePoint","draggedTo","diff","sub","updated","setState","draggedroot","undefined","draggedOuter","isCircleDrag","type","changeMarkProps","update","input","focus","disabled","classes","coordinatesOnHover","building","onDragStart","onDragStop","onClick","correctness","graphProps","labelNode","labelModeEnabled","common","radius","fromLabelNode","toLabelNode","circleLabelNode","hasOwnProperty","ReactDOM","createPortal","r","labelChange","bgCircleBuilding","x","y","dragCircle","clickPoint","dragTo","dragFrom","React","Component","PropTypes","bool","object","isRequired","className","string","types","PointType","func","GraphPropsType","BaseCircle","outerLine","fill","stroke","color","primaryLight","strokeWidth","primaryDark","root","secondaryLight","animation","animationIterationCount"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { BasePoint } from '../shared/point';\nimport BgCircle from './bg-circle';\nimport { getMiddleOfTwoPoints, point, equalPoints } from '../../utils';\nimport classNames from 'classnames';\nimport { types } from '@pie-lib/plot';\nimport { rootEdgeComponent } from '../shared/line/with-root-edge';\nimport ReactDOM from 'react-dom';\nimport MarkLabel from '../../mark-label';\nimport isEmpty from 'lodash/isEmpty';\nimport { color } from '@pie-lib/render-ui';\n\nconst opacityPulsate = (opacity) => ({\n '0%': { opacity: '0.0' },\n '50%': { opacity },\n '100%': { opacity: '0.0' },\n});\n\nconst getRadius = (from, outer) => {\n const c = point(from);\n return c.dist(point(outer));\n};\n\nexport class RawBaseCircle extends React.Component {\n static propTypes = {\n building: PropTypes.bool,\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n coordinatesOnHover: PropTypes.bool,\n correctness: PropTypes.string,\n from: types.PointType,\n disabled: PropTypes.bool,\n to: types.PointType,\n middle: types.PointType,\n onChange: PropTypes.func.isRequired,\n onDragStart: PropTypes.func,\n onDragStop: PropTypes.func,\n graphProps: types.GraphPropsType.isRequired,\n onClick: PropTypes.func,\n labelNode: PropTypes.object,\n labelModeEnabled: PropTypes.bool,\n changeMarkProps: PropTypes.func,\n };\n\n static defaultProps = {\n onClick: () => ({}),\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 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 });\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, to: draggedTo });\n }\n };\n\n dragCircle = (draggedFrom) => {\n const { from, to, onChange, middle } = this.props;\n const diff = point(from).sub(point(draggedFrom));\n const draggedTo = point(to).sub(diff);\n\n if (from.label) {\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 this.setState(\n {\n draggedroot: undefined,\n draggedOuter: undefined,\n isCircleDrag: false,\n },\n () => {\n onChange(updated);\n },\n );\n };\n\n labelChange = (point, type) => {\n const { changeMarkProps } = this.props;\n const update = { ...point };\n\n if (!point.label || isEmpty(point.label)) {\n delete update.label;\n }\n\n changeMarkProps({ [type]: update });\n };\n\n clickPoint = (point, type) => {\n const { changeMarkProps, from, to } = this.props;\n\n if (type === 'middle' && !point && from && to) {\n point = { ...point, ...getMiddleOfTwoPoints(from, to) };\n }\n\n changeMarkProps({ from, to, [type]: { label: '', ...point } });\n\n if (this.input[type]) {\n this.input[type].focus();\n }\n };\n\n // IMPORTANT, do not remove\n input = {};\n\n render() {\n let {\n from,\n to,\n middle,\n disabled,\n classes,\n coordinatesOnHover,\n building,\n onDragStart,\n onDragStop,\n onClick,\n correctness,\n graphProps,\n labelNode,\n labelModeEnabled,\n } = this.props;\n const common = { onDragStart, onDragStop, graphProps, onClick };\n\n to = to || from;\n\n const radius = getRadius(from, to);\n\n let fromLabelNode = null;\n let toLabelNode = null;\n let circleLabelNode = null;\n\n if (labelNode) {\n if (from && 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 circleLabelNode = ReactDOM.createPortal(\n <MarkLabel\n inputRef={(r) => (this.input.middle = r)}\n disabled={!labelModeEnabled}\n mark={middle}\n graphProps={graphProps}\n onChange={(label) => this.labelChange({ ...middle, label }, 'middle')}\n />,\n labelNode,\n );\n }\n }\n\n return (\n <g>\n <BgCircle\n disabled={building || disabled}\n correctness={correctness}\n className={classNames(building && classes.bgCircleBuilding)}\n x={from.x}\n y={from.y}\n radius={radius}\n onDrag={this.dragCircle}\n {...common}\n onClick={labelModeEnabled ? () => this.clickPoint(middle, 'middle') : common.onClick}\n />\n {circleLabelNode}\n\n <BasePoint\n disabled={building || disabled}\n coordinatesOnHover={coordinatesOnHover}\n correctness={correctness}\n labelNode={labelNode}\n x={to.x}\n y={to.y}\n onDrag={this.dragTo}\n {...common}\n onClick={labelModeEnabled ? () => this.clickPoint(to, 'to') : common.onClick}\n />\n {toLabelNode}\n\n <BasePoint\n disabled={building || disabled}\n coordinatesOnHover={coordinatesOnHover}\n correctness={correctness}\n labelNode={labelNode}\n x={from.x}\n y={from.y}\n className={classes.from}\n onDrag={this.dragFrom}\n {...common}\n onClick={labelModeEnabled ? () => this.clickPoint(from, 'from') : common.onClick}\n />\n {fromLabelNode}\n </g>\n );\n }\n}\n\nexport const BaseCircle = withStyles(() => ({\n outerLine: {\n fill: 'rgb(0,0,0,0)', // TODO hardcoded color\n stroke: color.primaryLight(),\n strokeWidth: 4,\n '&:hover': {\n strokeWidth: 6,\n stroke: color.primaryDark(),\n },\n },\n root: {},\n bgCircleBuilding: {\n stroke: color.secondaryLight(),\n animation: 'opacityPulse 2s ease-out',\n animationIterationCount: 'infinite',\n opacity: 1,\n },\n '@keyframes opacityPulse': opacityPulsate('0.3'),\n}))(RawBaseCircle);\n\nconst Component = rootEdgeComponent(BaseCircle);\nexport default Component;\n"],"file":"component.js"}
1
+ {"version":3,"sources":["../../../src/tools/circle/component.jsx"],"names":["opacityPulsate","opacity","getRadius","from","outer","c","dist","RawBaseCircle","point","props","middle","onChange","to","draggedFrom","label","onChangePoint","draggedTo","diff","sub","updated","setState","draggedroot","undefined","draggedOuter","isCircleDrag","type","changeMarkProps","update","data","disabled","labelModeEnabled","limitLabeling","onClick","input","focus","classes","coordinatesOnHover","building","onDragStart","onDragStop","correctness","graphProps","labelNode","common","radius","fromLabelNode","toLabelNode","circleLabelNode","hasOwnProperty","ReactDOM","createPortal","r","labelChange","bgCircleBuilding","x","y","dragCircle","clickPoint","dragTo","dragFrom","React","Component","PropTypes","bool","object","isRequired","className","string","types","PointType","func","GraphPropsType","BaseCircle","outerLine","fill","stroke","color","defaults","BLACK","strokeWidth","PRIMARY_DARK","root","animation","animationIterationCount"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { BasePoint } from '../shared/point';\nimport BgCircle from './bg-circle';\nimport { getMiddleOfTwoPoints, point, equalPoints } from '../../utils';\nimport classNames from 'classnames';\nimport { types } from '@pie-lib/plot';\nimport { rootEdgeComponent } from '../shared/line/with-root-edge';\nimport ReactDOM from 'react-dom';\nimport MarkLabel from '../../mark-label';\nimport isEmpty from 'lodash/isEmpty';\nimport { color } from '@pie-lib/render-ui';\n\nconst opacityPulsate = (opacity) => ({\n '0%': { opacity: '0.0' },\n '50%': { opacity },\n '100%': { opacity: '0.0' },\n});\n\nconst getRadius = (from, outer) => {\n const c = point(from);\n return c.dist(point(outer));\n};\n\nexport class RawBaseCircle extends React.Component {\n static propTypes = {\n building: PropTypes.bool,\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n coordinatesOnHover: PropTypes.bool,\n correctness: PropTypes.string,\n from: types.PointType,\n disabled: PropTypes.bool,\n to: types.PointType,\n middle: types.PointType,\n onChange: PropTypes.func.isRequired,\n onDragStart: PropTypes.func,\n onDragStop: PropTypes.func,\n graphProps: types.GraphPropsType.isRequired,\n onClick: PropTypes.func,\n labelNode: PropTypes.object,\n labelModeEnabled: PropTypes.bool,\n changeMarkProps: PropTypes.func,\n limitLabeling: PropTypes.bool,\n };\n\n static defaultProps = {\n onClick: () => ({}),\n };\n\n onChangePoint = (point) => {\n const { middle, onChange } = this.props;\n const { from, to } = point;\n\n // 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 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 });\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, to: draggedTo });\n }\n };\n\n dragCircle = (draggedFrom) => {\n const { from, to, onChange, middle } = this.props;\n const diff = point(from).sub(point(draggedFrom));\n const draggedTo = point(to).sub(diff);\n\n if (from.label) {\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 this.setState(\n {\n draggedroot: undefined,\n draggedOuter: undefined,\n isCircleDrag: false,\n },\n () => {\n onChange(updated);\n },\n );\n };\n\n labelChange = (point, type) => {\n const { changeMarkProps } = this.props;\n const update = { ...point };\n\n if (!point.label || isEmpty(point.label)) {\n delete update.label;\n }\n\n changeMarkProps({ [type]: update });\n };\n\n clickPoint = (point, type, data) => {\n const { changeMarkProps, disabled, from, to, labelModeEnabled, limitLabeling, onClick } = this.props;\n if (!labelModeEnabled) {\n onClick(point || data);\n return;\n }\n\n if (disabled) {\n return;\n }\n\n // limit labeling the points of the circle\n if (limitLabeling) {\n return;\n }\n\n if (type === 'middle' && !point && from && to) {\n point = { ...point, ...getMiddleOfTwoPoints(from, to) };\n }\n\n changeMarkProps({ from, to, [type]: { label: '', ...point } });\n\n if (this.input[type]) {\n this.input[type].focus();\n }\n };\n\n // IMPORTANT, do not remove\n input = {};\n\n render() {\n let {\n from,\n to,\n middle,\n disabled,\n classes,\n coordinatesOnHover,\n building,\n onDragStart,\n onDragStop,\n onClick,\n correctness,\n graphProps,\n labelNode,\n labelModeEnabled,\n } = this.props;\n const common = { onDragStart, onDragStop, graphProps, onClick };\n\n to = to || from;\n\n const radius = getRadius(from, to);\n\n let fromLabelNode = null;\n let toLabelNode = null;\n let circleLabelNode = null;\n\n if (labelNode) {\n if (from && 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 circleLabelNode = ReactDOM.createPortal(\n <MarkLabel\n inputRef={(r) => (this.input.middle = r)}\n disabled={!labelModeEnabled}\n mark={middle}\n graphProps={graphProps}\n onChange={(label) => this.labelChange({ ...middle, label }, 'middle')}\n />,\n labelNode,\n );\n }\n }\n\n return (\n <g>\n <BgCircle\n disabled={building || disabled}\n correctness={correctness}\n className={classNames(building && classes.bgCircleBuilding)}\n x={from.x}\n y={from.y}\n radius={radius}\n onDrag={this.dragCircle}\n {...common}\n onClick={(data) => this.clickPoint(middle, 'middle', data)}\n />\n {circleLabelNode}\n\n <BasePoint\n disabled={building || disabled}\n coordinatesOnHover={coordinatesOnHover}\n correctness={correctness}\n labelNode={labelNode}\n x={to.x}\n y={to.y}\n onDrag={this.dragTo}\n {...common}\n onClick={(data) => this.clickPoint(to, 'to', data)}\n />\n {toLabelNode}\n\n <BasePoint\n disabled={building || disabled}\n coordinatesOnHover={coordinatesOnHover}\n correctness={correctness}\n labelNode={labelNode}\n x={from.x}\n y={from.y}\n className={classes.from}\n onDrag={this.dragFrom}\n {...common}\n onClick={(data) => this.clickPoint(from, 'from', data)}\n />\n {fromLabelNode}\n </g>\n );\n }\n}\n\nexport const BaseCircle = withStyles(() => ({\n outerLine: {\n fill: 'rgb(0,0,0,0)', // TODO hardcoded color\n stroke: color.defaults.BLACK,\n strokeWidth: 4,\n '&:hover': {\n strokeWidth: 6,\n stroke: color.defaults.PRIMARY_DARK,\n },\n },\n root: {},\n bgCircleBuilding: {\n stroke: color.defaults.BLACK,\n animation: 'opacityPulse 2s ease-out',\n animationIterationCount: 'infinite',\n opacity: 1,\n },\n '@keyframes opacityPulse': opacityPulsate('0.3'),\n}))(RawBaseCircle);\n\nconst Component = rootEdgeComponent(BaseCircle);\nexport default Component;\n"],"file":"component.js"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+
10
+ var _debug = _interopRequireDefault(require("debug"));
11
+
12
+ var _graphingUtils = require("@pie-lib/graphing-utils");
13
+
14
+ var _withRootEdge = require("../shared/line/with-root-edge");
15
+
16
+ var log = (0, _debug["default"])('pie-lib:graphing:exponential');
17
+ var Exponential = (0, _withRootEdge.withRootEdge)(function (props) {
18
+ var root = props.root,
19
+ edge = props.edge,
20
+ graphProps = props.graphProps;
21
+ var domain = graphProps.domain,
22
+ range = graphProps.range;
23
+ var dataPoints = edge && edge.x === root.x ? [] : (0, _graphingUtils.buildDataPoints)(domain, range, root, edge, (0, _graphingUtils.exponentialFromTwoPoints)(root, edge), true);
24
+ log('dataPoints:', dataPoints);
25
+ return {
26
+ root: props.root,
27
+ edge: props.edge,
28
+ dataPoints: dataPoints
29
+ };
30
+ });
31
+ var Component = (0, _withRootEdge.rootEdgeComponent)(Exponential);
32
+ var _default = Component;
33
+ exports["default"] = _default;
34
+ //# sourceMappingURL=component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/tools/exponential/component.jsx"],"names":["log","Exponential","props","root","edge","graphProps","domain","range","dataPoints","x","Component"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AAEA,IAAMA,GAAG,GAAG,uBAAM,8BAAN,CAAZ;AAEA,IAAMC,WAAW,GAAG,gCAAa,UAACC,KAAD,EAAW;AAC1C,MAAQC,IAAR,GAAmCD,KAAnC,CAAQC,IAAR;AAAA,MAAcC,IAAd,GAAmCF,KAAnC,CAAcE,IAAd;AAAA,MAAoBC,UAApB,GAAmCH,KAAnC,CAAoBG,UAApB;AACA,MAAQC,MAAR,GAA0BD,UAA1B,CAAQC,MAAR;AAAA,MAAgBC,KAAhB,GAA0BF,UAA1B,CAAgBE,KAAhB;AAEA,MAAMC,UAAU,GACdJ,IAAI,IAAIA,IAAI,CAACK,CAAL,KAAWN,IAAI,CAACM,CAAxB,GACI,EADJ,GAEI,oCAAgBH,MAAhB,EAAwBC,KAAxB,EAA+BJ,IAA/B,EAAqCC,IAArC,EAA2C,6CAAyBD,IAAzB,EAA+BC,IAA/B,CAA3C,EAAiF,IAAjF,CAHN;AAKAJ,EAAAA,GAAG,CAAC,aAAD,EAAgBQ,UAAhB,CAAH;AAEA,SAAO;AAAEL,IAAAA,IAAI,EAAED,KAAK,CAACC,IAAd;AAAoBC,IAAAA,IAAI,EAAEF,KAAK,CAACE,IAAhC;AAAsCI,IAAAA,UAAU,EAAVA;AAAtC,GAAP;AACD,CAZmB,CAApB;AAcA,IAAME,SAAS,GAAG,qCAAkBT,WAAlB,CAAlB;eAEeS,S","sourcesContent":["import debug from 'debug';\nimport { buildDataPoints, exponentialFromTwoPoints } from '@pie-lib/graphing-utils';\nimport { withRootEdge, rootEdgeComponent } from '../shared/line/with-root-edge';\n\nconst log = debug('pie-lib:graphing:exponential');\n\nconst Exponential = withRootEdge((props) => {\n const { root, edge, graphProps } = props;\n const { domain, range } = graphProps;\n\n const dataPoints =\n edge && edge.x === root.x\n ? []\n : buildDataPoints(domain, range, root, edge, exponentialFromTwoPoints(root, edge), true);\n\n log('dataPoints:', dataPoints);\n\n return { root: props.root, edge: props.edge, dataPoints };\n});\n\nconst Component = rootEdgeComponent(Exponential);\n\nexport default Component;\n"],"file":"component.js"}