@pie-lib/graphing 2.14.22-next.0 → 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 +16 -75
  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
package/lib/graph.js CHANGED
@@ -81,7 +81,8 @@ var graphPropTypes = {
81
81
  showPixelGuides: _propTypes["default"].bool,
82
82
  showTitle: _propTypes["default"].bool,
83
83
  title: _propTypes["default"].string,
84
- tools: _propTypes["default"].array
84
+ tools: _propTypes["default"].array,
85
+ limitLabeling: _propTypes["default"].bool
85
86
  };
86
87
  exports.graphPropTypes = graphPropTypes;
87
88
 
@@ -96,7 +97,9 @@ var getMaskSize = function getMaskSize(size) {
96
97
 
97
98
  var removeBuildingToolIfCurrentToolDiffers = function removeBuildingToolIfCurrentToolDiffers(_ref) {
98
99
  var marks = _ref.marks,
99
- currentTool = _ref.currentTool;
100
+ currentTool = _ref.currentTool,
101
+ onChangeMarks = _ref.onChangeMarks,
102
+ removeIncompleteTool = _ref.removeIncompleteTool;
100
103
  var buildingMark = marks.filter(function (m) {
101
104
  return m.building;
102
105
  })[0];
@@ -112,6 +115,10 @@ var removeBuildingToolIfCurrentToolDiffers = function removeBuildingToolIfCurren
112
115
  }
113
116
  }
114
117
 
118
+ if (removeIncompleteTool && !(0, _isEqual["default"])(newMarks, marks)) {
119
+ onChangeMarks(newMarks);
120
+ }
121
+
115
122
  return newMarks;
116
123
  };
117
124
 
@@ -166,7 +173,7 @@ var Graph = /*#__PURE__*/function (_React$Component) {
166
173
  marks = _this$props3.marks;
167
174
  var newMarks = (0, _cloneDeep["default"])(marks);
168
175
 
169
- if (!update.building && (0, _utils.isDuplicatedMark)(update, marks)) {
176
+ if (!update || !update.building && (0, _utils.isDuplicatedMark)(update, marks)) {
170
177
  return;
171
178
  }
172
179
 
@@ -189,18 +196,20 @@ var Graph = /*#__PURE__*/function (_React$Component) {
189
196
  return tool && tool.Component || null;
190
197
  });
191
198
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onBgClick", function (point) {
192
- var x = point.x,
193
- y = point.y;
199
+ var _ref2 = point || {},
200
+ x = _ref2.x,
201
+ y = _ref2.y;
202
+
194
203
  var _this$props4 = _this.props,
195
204
  labelModeEnabled = _this$props4.labelModeEnabled,
196
205
  currentTool = _this$props4.currentTool,
197
206
  marks = _this$props4.marks;
198
- log('[onBgClick] x,y: ', x, y);
199
207
 
200
- if (labelModeEnabled || !currentTool) {
208
+ if (labelModeEnabled || !currentTool || [null, undefined].includes(x) || [null, undefined].includes(y)) {
201
209
  return;
202
210
  }
203
211
 
212
+ log('[onBgClick] x,y: ', x, y);
204
213
  var buildingMark = marks.filter(function (m) {
205
214
  return m.building;
206
215
  })[0];
@@ -248,6 +257,7 @@ var Graph = /*#__PURE__*/function (_React$Component) {
248
257
  labels = _this$props5.labels,
249
258
  labelModeEnabled = _this$props5.labelModeEnabled,
250
259
  labelsPlaceholders = _this$props5.labelsPlaceholders,
260
+ limitLabeling = _this$props5.limitLabeling,
251
261
  showLabels = _this$props5.showLabels,
252
262
  showPixelGuides = _this$props5.showPixelGuides,
253
263
  showTitle = _this$props5.showTitle,
@@ -255,7 +265,9 @@ var Graph = /*#__PURE__*/function (_React$Component) {
255
265
  onChangeLabels = _this$props5.onChangeLabels,
256
266
  onChangeTitle = _this$props5.onChangeTitle,
257
267
  _this$props5$mathMlOp = _this$props5.mathMlOptions,
258
- mathMlOptions = _this$props5$mathMlOp === void 0 ? {} : _this$props5$mathMlOp;
268
+ mathMlOptions = _this$props5$mathMlOp === void 0 ? {} : _this$props5$mathMlOp,
269
+ onChangeMarks = _this$props5.onChangeMarks,
270
+ removeIncompleteTool = _this$props5.removeIncompleteTool;
259
271
  var marks = this.props.marks;
260
272
  var graphProps = (0, _plot.createGraphProps)(domain, range, size, function () {
261
273
  return _this2.rootNode;
@@ -263,11 +275,14 @@ var Graph = /*#__PURE__*/function (_React$Component) {
263
275
  var maskSize = getMaskSize(size);
264
276
  var common = {
265
277
  graphProps: graphProps,
266
- labelModeEnabled: labelModeEnabled
278
+ labelModeEnabled: labelModeEnabled,
279
+ limitLabeling: limitLabeling
267
280
  };
268
281
  marks = removeBuildingToolIfCurrentToolDiffers({
269
282
  marks: marks || [],
270
- currentTool: currentTool
283
+ currentTool: currentTool,
284
+ onChangeMarks: onChangeMarks,
285
+ removeIncompleteTool: removeIncompleteTool
271
286
  });
272
287
  return /*#__PURE__*/_react["default"].createElement(_plot.Root, (0, _extends2["default"])({
273
288
  rootRef: function rootRef(r) {
@@ -306,7 +321,8 @@ var Graph = /*#__PURE__*/function (_React$Component) {
306
321
  disabled: true,
307
322
  isBackground: true
308
323
  }),
309
- labelNode: _this2.state.labelNode
324
+ labelNode: _this2.state.labelNode,
325
+ onClick: _this2.onBgClick
310
326
  }, common));
311
327
  }), marks.map(function (m, index) {
312
328
  var Component = _this2.getComponent(m);
@@ -332,7 +348,8 @@ var Graph = /*#__PURE__*/function (_React$Component) {
332
348
  y: "0"
333
349
  }, size, {
334
350
  style: {
335
- pointerEvents: 'none'
351
+ pointerEvents: 'none',
352
+ fontSize: '14px'
336
353
  }
337
354
  })))));
338
355
  }
package/lib/graph.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/graph.jsx"],"names":["log","graphPropTypes","axesSettings","PropTypes","shape","AxisPropTypes","backgroundMarks","array","className","string","collapsibleToolbar","bool","collapsibleToolbarTitle","disabledLabels","disabledTitle","domain","types","DomainType","labels","LabelType","labelModeEnabled","coordinatesOnHover","marks","onChangeLabels","func","onChangeMarks","onChangeTitle","range","size","width","number","isRequired","height","showLabels","showPixelGuides","showTitle","title","tools","getMaskSize","x","y","removeBuildingToolIfCurrentToolDiffers","currentTool","buildingMark","filter","m","building","newMarks","type","index","findIndex","splice","Graph","props","setState","labelNode","oldMark","newMark","markData","updatedMark","complete","updateMarks","existing","update","addIfMissing","mark","tool","find","t","Component","point","addPoint","undefined","maskUid","generateMaskId","Math","random","toFixed","labelsPlaceholders","titlePlaceholder","mathMlOptions","graphProps","rootNode","maskSize","common","r","padding","onBgClick","map","getComponent","markType","disabled","isBackground","state","changeMark","completeMark","startDrag","stopDrag","pointerEvents","React","object"],"mappings":"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","sourcesContent":["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 } from './utils';\n\nconst log = debug('pie-lib:graphing: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 } = this.props;\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.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 } = this.props;\n\n log('[onBgClick] x,y: ', x, y);\n\n if (labelModeEnabled || !currentTool) {\n return;\n }\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 } = this.props;\n let { marks } = this.props;\n\n const graphProps = createGraphProps(domain, range, size, () => this.rootNode);\n\n const maskSize = getMaskSize(size);\n const common = { graphProps, labelModeEnabled };\n\n marks = removeBuildingToolIfCurrentToolDiffers({ marks: marks || [], currentTool });\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 {...common}\n />\n );\n })}\n\n {marks.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' }}\n />\n </g>\n </g>\n </Root>\n );\n }\n}\n\nexport default Graph;\n"],"file":"graph.js"}
1
+ {"version":3,"sources":["../src/graph.jsx"],"names":["log","graphPropTypes","axesSettings","PropTypes","shape","AxisPropTypes","backgroundMarks","array","className","string","collapsibleToolbar","bool","collapsibleToolbarTitle","disabledLabels","disabledTitle","domain","types","DomainType","labels","LabelType","labelModeEnabled","coordinatesOnHover","marks","onChangeLabels","func","onChangeMarks","onChangeTitle","range","size","width","number","isRequired","height","showLabels","showPixelGuides","showTitle","title","tools","limitLabeling","getMaskSize","x","y","removeBuildingToolIfCurrentToolDiffers","currentTool","removeIncompleteTool","buildingMark","filter","m","building","newMarks","type","index","findIndex","splice","Graph","props","setState","labelNode","oldMark","newMark","markData","updatedMark","complete","updateMarks","existing","update","addIfMissing","mark","tool","find","t","Component","point","undefined","includes","addPoint","maskUid","generateMaskId","Math","random","toFixed","labelsPlaceholders","titlePlaceholder","mathMlOptions","graphProps","rootNode","maskSize","common","r","padding","onBgClick","map","getComponent","markType","disabled","isBackground","state","changeMark","completeMark","startDrag","stopDrag","pointerEvents","fontSize","React","object"],"mappings":"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","sourcesContent":["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 } from './utils';\n\nconst log = debug('pie-lib:graphing: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 limitLabeling: PropTypes.bool,\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, onChangeMarks, removeIncompleteTool }) => {\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 if (removeIncompleteTool && !isEqual(newMarks, marks)) {\n onChangeMarks(newMarks);\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 } = this.props;\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 } = this.props;\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 limitLabeling,\n showLabels,\n showPixelGuides,\n showTitle,\n titlePlaceholder,\n onChangeLabels,\n onChangeTitle,\n mathMlOptions = {},\n onChangeMarks,\n removeIncompleteTool,\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 const common = { graphProps, labelModeEnabled, limitLabeling };\n\n marks = removeBuildingToolIfCurrentToolDiffers({\n marks: marks || [],\n currentTool,\n onChangeMarks,\n removeIncompleteTool,\n });\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 {marks.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"],"file":"graph.js"}
package/lib/grid.js CHANGED
@@ -33,8 +33,6 @@ var vx = _interopRequireWildcard(require("@vx/grid"));
33
33
 
34
34
  var _plot = require("@pie-lib/plot");
35
35
 
36
- var _renderUi = require("@pie-lib/render-ui");
37
-
38
36
  var _styles = require("@material-ui/core/styles");
39
37
 
40
38
  var _utils = require("./utils");
@@ -115,9 +113,7 @@ var Grid = /*#__PURE__*/function (_React$Component) {
115
113
  value: function render() {
116
114
  var _this2 = this;
117
115
 
118
- var _this$props = this.props,
119
- classes = _this$props.classes,
120
- graphProps = _this$props.graphProps;
116
+ var graphProps = this.props.graphProps;
121
117
  var scale = graphProps.scale,
122
118
  _graphProps$size = graphProps.size,
123
119
  height = _graphProps$size.height,
@@ -134,6 +130,7 @@ var Grid = /*#__PURE__*/function (_React$Component) {
134
130
  columnStrokeDasharray = _this$getAdditionalGr.columnStrokeDasharray,
135
131
  displayAdditionalGrid = _this$getAdditionalGr.displayAdditionalGrid;
136
132
 
133
+ var additionalGridStroke = domain.labelStep * 2 === domain.step || range.labelStep * 2 === range.step ? '#9FA8DA' : '#7985CB';
137
134
  return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(vx.Grid, {
138
135
  innerRef: function innerRef(r) {
139
136
  return _this2.grid = r;
@@ -142,20 +139,20 @@ var Grid = /*#__PURE__*/function (_React$Component) {
142
139
  yScale: scale.y,
143
140
  width: width,
144
141
  height: height,
145
- className: classes.grid,
142
+ stroke: "#E1E6EC",
146
143
  rowTickValues: rowTickValues,
147
144
  columnTickValues: columnTickValues
148
145
  }), displayAdditionalGrid && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(vx.GridRows, {
149
146
  scale: scale.y,
150
147
  width: width,
151
148
  tickValues: rowTickLabelValues,
152
- stroke: _renderUi.color.primary(),
149
+ stroke: additionalGridStroke,
153
150
  strokeDasharray: rowStrokeDasharray
154
151
  }), /*#__PURE__*/_react["default"].createElement(vx.GridColumns, {
155
152
  scale: scale.x,
156
153
  height: height,
157
154
  tickValues: columnTickLabelValues,
158
- stroke: _renderUi.color.primary(),
155
+ stroke: additionalGridStroke,
159
156
  strokeDasharray: columnStrokeDasharray
160
157
  })));
161
158
  }
@@ -172,12 +169,7 @@ exports.Grid = Grid;
172
169
  });
173
170
 
174
171
  var _default = (0, _styles.withStyles)(function () {
175
- return {
176
- grid: {
177
- stroke: 'purple' // TODO hardcoded color
178
-
179
- }
180
- };
172
+ return {};
181
173
  })(Grid);
182
174
 
183
175
  exports["default"] = _default;
package/lib/grid.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/grid.jsx"],"names":["Grid","rowTickValues","columnTickValues","props","graphProps","scale","size","width","height","domain","range","rowTickLabelValues","step","labelStep","filter","value","includes","columnTickLabelValues","minValueLength","length","Math","min","toString","replace","maxValueLength","max","rowLabelLength","horizontalDistanceToZero","x","verticalDistanceToZero","y","columnLabelLength","rowStrokeDasharray","columnStrokeDasharray","displayAdditionalGrid","filteredColumnValues","filteredRowValues","classes","getAdditionalGridProps","r","grid","color","primary","React","Component","disabled","PropTypes","bool","disabledAdditionalGrid","object","isRequired","types","GraphPropsType","stroke"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport * as vx from '@vx/grid';\nimport { types } from '@pie-lib/plot';\nimport { color } from '@pie-lib/render-ui';\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 { classes, 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 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 className={classes.grid}\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={color.primary()}\n strokeDasharray={rowStrokeDasharray}\n />\n <vx.GridColumns\n scale={scale.x}\n height={height}\n tickValues={columnTickLabelValues}\n stroke={color.primary()}\n strokeDasharray={columnStrokeDasharray}\n />\n </>\n )}\n </>\n );\n }\n}\n\nexport default withStyles(() => ({\n grid: {\n stroke: 'purple', // TODO hardcoded color\n },\n}))(Grid);\n"],"file":"grid.js"}
1
+ {"version":3,"sources":["../src/grid.jsx"],"names":["Grid","rowTickValues","columnTickValues","props","graphProps","scale","size","width","height","domain","range","rowTickLabelValues","step","labelStep","filter","value","includes","columnTickLabelValues","minValueLength","length","Math","min","toString","replace","maxValueLength","max","rowLabelLength","horizontalDistanceToZero","x","verticalDistanceToZero","y","columnLabelLength","rowStrokeDasharray","columnStrokeDasharray","displayAdditionalGrid","filteredColumnValues","filteredRowValues","getAdditionalGridProps","additionalGridStroke","r","grid","React","Component","disabled","PropTypes","bool","disabledAdditionalGrid","classes","object","isRequired","types","GraphPropsType"],"mappings":"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","sourcesContent":["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=\"#E1E6EC\"\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"],"file":"grid.js"}
package/lib/index.js CHANGED
@@ -25,6 +25,12 @@ Object.defineProperty(exports, "GridSetup", {
25
25
  return _gridSetup["default"];
26
26
  }
27
27
  });
28
+ Object.defineProperty(exports, "KeyLegend", {
29
+ enumerable: true,
30
+ get: function get() {
31
+ return _keyLegend["default"];
32
+ }
33
+ });
28
34
  Object.defineProperty(exports, "ToolMenu", {
29
35
  enumerable: true,
30
36
  get: function get() {
@@ -45,6 +51,8 @@ exports.tools = tools;
45
51
 
46
52
  var _toolMenu = _interopRequireDefault(require("./tool-menu"));
47
53
 
54
+ var _keyLegend = _interopRequireDefault(require("./key-legend"));
55
+
48
56
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
49
57
 
50
58
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;AACA","sourcesContent":["import Graph from './graph';\nimport GraphContainer from './container';\nimport GridSetup from './grid-setup';\nimport * as tools from './tools';\nimport ToolMenu from './tool-menu';\n\nexport { Graph, GraphContainer, GridSetup, ToolMenu, tools };\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../src/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;AACA;;AACA","sourcesContent":["import Graph from './graph';\nimport GraphContainer from './container';\nimport GridSetup from './grid-setup';\nimport * as tools from './tools';\nimport ToolMenu from './tool-menu';\nimport KeyLegend from './key-legend';\nexport { Graph, GraphContainer, GridSetup, ToolMenu, tools, KeyLegend };\n"],"file":"index.js"}
@@ -0,0 +1,246 @@
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 _react = _interopRequireDefault(require("react"));
11
+
12
+ var _propTypes = _interopRequireDefault(require("prop-types"));
13
+
14
+ var _classnames = _interopRequireDefault(require("classnames"));
15
+
16
+ var _styles = require("@material-ui/core/styles");
17
+
18
+ var _renderUi = require("@pie-lib/render-ui");
19
+
20
+ var styles = function styles(theme) {
21
+ return {
22
+ container: {
23
+ backgroundColor: _renderUi.color.defaults.WHITE,
24
+ padding: '20px',
25
+ width: '355px',
26
+ boxShadow: '0px 1px 5px 0px #9297A6'
27
+ },
28
+ row: {
29
+ display: 'flex',
30
+ alignItems: 'center',
31
+ padding: '10px'
32
+ },
33
+ title: {
34
+ fontSize: theme.typography.h6.fontSize,
35
+ marginLeft: '30px',
36
+ fontWeight: '700',
37
+ marginBottom: '10px'
38
+ },
39
+ text: {
40
+ textAlign: 'right',
41
+ marginRight: '10px',
42
+ width: '175px',
43
+ fontSize: '15px'
44
+ }
45
+ };
46
+ };
47
+
48
+ var KeyLegend = function KeyLegend(_ref) {
49
+ var className = _ref.className,
50
+ classes = _ref.classes,
51
+ isLabelAvailable = _ref.isLabelAvailable;
52
+ var names = (0, _classnames["default"])(classes.formControl, className);
53
+ return /*#__PURE__*/_react["default"].createElement("div", {
54
+ className: classes.container
55
+ }, /*#__PURE__*/_react["default"].createElement("div", {
56
+ className: classes.title
57
+ }, "Key"), isLabelAvailable && /*#__PURE__*/_react["default"].createElement("div", {
58
+ className: classes.row
59
+ }, /*#__PURE__*/_react["default"].createElement("div", {
60
+ className: classes.text
61
+ }, " Missing Required Label "), /*#__PURE__*/_react["default"].createElement("svg", {
62
+ width: "34",
63
+ height: "16",
64
+ viewBox: "0 0 34 16",
65
+ fill: "none",
66
+ xmlns: "http://www.w3.org/2000/svg"
67
+ }, /*#__PURE__*/_react["default"].createElement("rect", {
68
+ x: "0.5",
69
+ y: "0.5",
70
+ width: "33",
71
+ height: "15",
72
+ rx: "3.5",
73
+ fill: "white",
74
+ stroke: "#BF0D00"
75
+ }), /*#__PURE__*/_react["default"].createElement("path", {
76
+ d: "M17.25 6.13965V3.2334C17.25 2.92871 17.4844 2.6709 17.8125 2.6709H20.7188C20.8594 2.6709 21 2.81152 21 2.95215V3.51465C21 3.67871 20.8594 3.7959 20.7188 3.7959H18.375V6.13965C18.375 6.30371 18.2344 6.4209 18.0938 6.4209H17.5312C17.3672 6.4209 17.25 6.30371 17.25 6.13965ZM24 2.95215C24 2.81152 24.1172 2.6709 24.2812 2.6709H27.1875C27.4922 2.6709 27.75 2.92871 27.75 3.2334V6.13965C27.75 6.30371 27.6094 6.4209 27.4688 6.4209H26.9062C26.7422 6.4209 26.625 6.30371 26.625 6.13965V3.7959H24.2812C24.1172 3.7959 24 3.67871 24 3.51465V2.95215ZM27.4688 9.4209C27.6094 9.4209 27.75 9.56152 27.75 9.70215V12.6084C27.75 12.9365 27.4922 13.1709 27.1875 13.1709H24.2812C24.1172 13.1709 24 13.0537 24 12.8896V12.3271C24 12.1865 24.1172 12.0459 24.2812 12.0459H26.625V9.70215C26.625 9.56152 26.7422 9.4209 26.9062 9.4209H27.4688ZM21 12.8896C21 13.0537 20.8594 13.1709 20.7188 13.1709H17.8125C17.4844 13.1709 17.25 12.9365 17.25 12.6084V9.70215C17.25 9.56152 17.3672 9.4209 17.5312 9.4209H18.0938C18.2344 9.4209 18.375 9.56152 18.375 9.70215V12.0459H20.7188C20.8594 12.0459 21 12.1865 21 12.3271V12.8896Z",
77
+ fill: "#BF0D00"
78
+ }), /*#__PURE__*/_react["default"].createElement("path", {
79
+ d: "M9.23438 8.21045L10.9219 9.89795C11.0156 9.9917 11.0156 10.1636 10.9219 10.2573L10.5312 10.6479C10.4375 10.7417 10.2656 10.7417 10.1719 10.6479L8.5 8.96045L6.8125 10.6479C6.71875 10.7417 6.54688 10.7417 6.45312 10.6479L6.0625 10.2573C5.96875 10.1636 5.96875 9.9917 6.0625 9.89795L7.75 8.21045L6.0625 6.53857C5.96875 6.44482 5.96875 6.27295 6.0625 6.1792L6.45312 5.78857C6.54688 5.69482 6.71875 5.69482 6.8125 5.78857L8.5 7.47607L10.1719 5.78857C10.2656 5.69482 10.4375 5.69482 10.5312 5.78857L10.9219 6.1792C11.0156 6.27295 11.0156 6.44482 10.9219 6.53857L9.23438 8.21045Z",
80
+ fill: "#BF0D00"
81
+ }))), /*#__PURE__*/_react["default"].createElement("div", {
82
+ className: classes.row
83
+ }, /*#__PURE__*/_react["default"].createElement("div", {
84
+ className: classes.text
85
+ }, " Answer Key Correct "), /*#__PURE__*/_react["default"].createElement("svg", {
86
+ width: "75",
87
+ height: "15",
88
+ viewBox: "0 0 75 15",
89
+ fill: "none",
90
+ xmlns: "http://www.w3.org/2000/svg"
91
+ }, /*#__PURE__*/_react["default"].createElement("circle", {
92
+ cx: "7.5",
93
+ cy: "7.5",
94
+ r: "7.5",
95
+ fill: "#6A78A1"
96
+ }), /*#__PURE__*/_react["default"].createElement("path", {
97
+ d: "M3.125 5.76562V3.34375C3.125 3.08984 3.32031 2.875 3.59375 2.875H6.01562C6.13281 2.875 6.25 2.99219 6.25 3.10938V3.89062C6.25 4.02734 6.13281 4.125 6.01562 4.125H4.375V5.76562C4.375 5.90234 4.25781 6 4.14062 6H3.35938C3.22266 6 3.125 5.90234 3.125 5.76562ZM8.75 3.10938C8.75 2.99219 8.84766 2.875 8.98438 2.875H11.4062C11.6602 2.875 11.875 3.08984 11.875 3.34375V5.76562C11.875 5.90234 11.7578 6 11.6406 6H10.8594C10.7227 6 10.625 5.90234 10.625 5.76562V4.125H8.98438C8.84766 4.125 8.75 4.02734 8.75 3.89062V3.10938ZM11.6406 8.5C11.7578 8.5 11.875 8.61719 11.875 8.73438V11.1562C11.875 11.4297 11.6602 11.625 11.4062 11.625H8.98438C8.84766 11.625 8.75 11.5273 8.75 11.3906V10.6094C8.75 10.4922 8.84766 10.375 8.98438 10.375H10.625V8.73438C10.625 8.61719 10.7227 8.5 10.8594 8.5H11.6406ZM6.25 11.3906C6.25 11.5273 6.13281 11.625 6.01562 11.625H3.59375C3.32031 11.625 3.125 11.4297 3.125 11.1562V8.73438C3.125 8.61719 3.22266 8.5 3.35938 8.5H4.14062C4.25781 8.5 4.375 8.61719 4.375 8.73438V10.375H6.01562C6.13281 10.375 6.25 10.4922 6.25 10.6094V11.3906Z",
98
+ fill: "white"
99
+ }), /*#__PURE__*/_react["default"].createElement("path", {
100
+ d: "M75 7L15 7",
101
+ stroke: "#6A78A1",
102
+ strokeDasharray: "4 2"
103
+ }))), isLabelAvailable && /*#__PURE__*/_react["default"].createElement("div", {
104
+ className: classes.row
105
+ }, /*#__PURE__*/_react["default"].createElement("div", {
106
+ className: classes.text
107
+ }, " Answer Key Correct Label "), /*#__PURE__*/_react["default"].createElement("svg", {
108
+ width: "30",
109
+ height: "16",
110
+ viewBox: "0 0 30 16",
111
+ fill: "none",
112
+ xmlns: "http://www.w3.org/2000/svg"
113
+ }, /*#__PURE__*/_react["default"].createElement("rect", {
114
+ x: "0.5",
115
+ y: "0.5",
116
+ width: "29",
117
+ height: "15",
118
+ rx: "3.5",
119
+ fill: "white"
120
+ }), /*#__PURE__*/_react["default"].createElement("rect", {
121
+ x: "0.5",
122
+ y: "0.5",
123
+ width: "29",
124
+ height: "15",
125
+ rx: "3.5",
126
+ stroke: "#6A78A1"
127
+ }), /*#__PURE__*/_react["default"].createElement("path", {
128
+ d: "M4.37793 10.2061H6.58984V11.5H2.91309V4.44434H4.37793V10.2061ZM11.6387 10.1377C11.6387 10.6715 11.6794 11.0801 11.7607 11.3633V11.5H10.4473L10.335 10.9531C10.1559 11.168 9.92155 11.3291 9.63184 11.4365C9.34212 11.5439 9.03939 11.5977 8.72363 11.5977C8.55762 11.5977 8.40137 11.583 8.25488 11.5537C8.1084 11.5244 7.9668 11.4756 7.83008 11.4072C7.69661 11.3356 7.58105 11.2477 7.4834 11.1436C7.38574 11.0394 7.30762 10.9076 7.24902 10.748C7.19043 10.5853 7.16113 10.403 7.16113 10.2012C7.16113 9.99935 7.19206 9.81868 7.25391 9.65918C7.31576 9.49642 7.39714 9.3597 7.49805 9.24902C7.59896 9.13835 7.73079 9.03906 7.89355 8.95117C8.05632 8.86328 8.22233 8.79167 8.3916 8.73633C8.56087 8.68099 8.75944 8.62891 8.9873 8.58008L9.8125 8.39453C9.98828 8.35221 10.112 8.30013 10.1836 8.23828C10.2585 8.17318 10.2959 8.08854 10.2959 7.98438C10.2959 7.75977 10.2129 7.59863 10.0469 7.50098C9.88411 7.40332 9.68555 7.35449 9.45117 7.35449C8.875 7.35449 8.54785 7.61003 8.46973 8.12109L7.22461 7.89648C7.32878 7.37891 7.57129 6.99805 7.95215 6.75391C8.33301 6.50651 8.85872 6.38281 9.5293 6.38281C10.9355 6.38281 11.6387 6.98665 11.6387 8.19434V10.1377ZM9.16309 10.6455C9.5179 10.6455 9.80762 10.5251 10.0322 10.2842C10.2568 10.04 10.3691 9.68034 10.3691 9.20508L9.17773 9.54199C8.95964 9.59408 8.79199 9.66243 8.6748 9.74707C8.56087 9.83171 8.50391 9.95215 8.50391 10.1084C8.50391 10.2809 8.56576 10.4144 8.68945 10.5088C8.81315 10.5999 8.97103 10.6455 9.16309 10.6455ZM15.96 6.38281C16.2887 6.38281 16.5996 6.44303 16.8926 6.56348C17.1855 6.68392 17.4411 6.85482 17.6592 7.07617C17.8805 7.29427 18.0547 7.56934 18.1816 7.90137C18.3086 8.2334 18.3721 8.59961 18.3721 9C18.3721 9.40039 18.3086 9.7666 18.1816 10.0986C18.0547 10.4307 17.8805 10.7074 17.6592 10.9287C17.4411 11.1468 17.1855 11.3161 16.8926 11.4365C16.5996 11.557 16.2887 11.6172 15.96 11.6172C15.6084 11.6172 15.291 11.5505 15.0078 11.417C14.7279 11.2803 14.5179 11.0898 14.3779 10.8457L14.3438 11.5H13.0107V4H14.417V7.09082C14.5602 6.86621 14.7686 6.69206 15.042 6.56836C15.3187 6.44466 15.6247 6.38281 15.96 6.38281ZM15.6328 10.4502C16.0169 10.4502 16.3343 10.3184 16.585 10.0547C16.8389 9.79102 16.9658 9.43945 16.9658 9C16.9658 8.55729 16.8389 8.2041 16.585 7.94043C16.3343 7.67676 16.0169 7.54492 15.6328 7.54492C15.2552 7.54492 14.9395 7.68001 14.6855 7.9502C14.4316 8.21712 14.3047 8.56706 14.3047 9C14.3047 9.43294 14.43 9.78288 14.6807 10.0498C14.9346 10.3167 15.252 10.4502 15.6328 10.4502ZM24.1582 8.91699L24.1436 9.25391H20.4229C20.4521 9.6543 20.5856 9.96029 20.8232 10.1719C21.0609 10.3835 21.3555 10.4893 21.707 10.4893C21.9609 10.4893 22.1807 10.4323 22.3662 10.3184C22.555 10.2012 22.6966 10.0319 22.791 9.81055L24.0801 10.001C23.9141 10.5055 23.6211 10.8978 23.2012 11.1777C22.7812 11.4577 22.2865 11.5977 21.7168 11.5977C20.8965 11.5977 20.2438 11.3682 19.7588 10.9092C19.277 10.4469 19.0361 9.80729 19.0361 8.99023C19.0361 8.17969 19.2786 7.54167 19.7637 7.07617C20.2487 6.60742 20.8851 6.37305 21.6729 6.37305C22.4215 6.37305 23.0221 6.58626 23.4746 7.0127C23.9271 7.43913 24.1549 8.07389 24.1582 8.91699ZM21.6826 7.36914C20.999 7.36914 20.5921 7.69141 20.4619 8.33594H22.7666C22.7308 8.02344 22.6152 7.78418 22.4199 7.61816C22.2246 7.45215 21.9788 7.36914 21.6826 7.36914ZM25.2275 11.5V4H26.6484V11.5H25.2275Z",
129
+ fill: "#6A78A1"
130
+ }))), /*#__PURE__*/_react["default"].createElement("div", {
131
+ className: classes.row
132
+ }, /*#__PURE__*/_react["default"].createElement("div", {
133
+ className: classes.text
134
+ }, " Student Incorrect "), /*#__PURE__*/_react["default"].createElement("svg", {
135
+ width: "77",
136
+ height: "16",
137
+ viewBox: "0 0 77 16",
138
+ fill: "none",
139
+ xmlns: "http://www.w3.org/2000/svg"
140
+ }, /*#__PURE__*/_react["default"].createElement("circle", {
141
+ cx: "8",
142
+ cy: "8",
143
+ r: "8",
144
+ fill: "#BF0D00"
145
+ }), /*#__PURE__*/_react["default"].createElement("path", {
146
+ d: "M9.04688 8.5L11.3906 10.8672C11.6953 11.1484 11.6953 11.6172 11.3906 11.8984L10.875 12.4141C10.5938 12.7188 10.125 12.7188 9.84375 12.4141L7.5 10.0703L5.13281 12.4141C4.85156 12.7188 4.38281 12.7188 4.10156 12.4141L3.58594 11.8984C3.28125 11.6172 3.28125 11.1484 3.58594 10.8672L5.92969 8.5L3.58594 6.15625C3.28125 5.875 3.28125 5.40625 3.58594 5.125L4.10156 4.60938C4.38281 4.30469 4.85156 4.30469 5.13281 4.60938L7.5 6.95312L9.84375 4.60938C10.125 4.30469 10.5938 4.30469 10.875 4.60938L11.3906 5.125C11.6953 5.40625 11.6953 5.875 11.3906 6.15625L9.04688 8.5Z",
147
+ fill: "white"
148
+ }), /*#__PURE__*/_react["default"].createElement("path", {
149
+ d: "M77 8L15 8",
150
+ stroke: "#BF0D00",
151
+ strokeWidth: "3"
152
+ }))), isLabelAvailable && /*#__PURE__*/_react["default"].createElement("div", {
153
+ className: classes.row
154
+ }, /*#__PURE__*/_react["default"].createElement("div", {
155
+ className: classes.text
156
+ }, " Incorrect Student Label "), /*#__PURE__*/_react["default"].createElement("svg", {
157
+ width: "42",
158
+ height: "16",
159
+ viewBox: "0 0 42 16",
160
+ fill: "none",
161
+ xmlns: "http://www.w3.org/2000/svg"
162
+ }, /*#__PURE__*/_react["default"].createElement("rect", {
163
+ x: "0.5",
164
+ y: "0.5",
165
+ width: "41",
166
+ height: "15",
167
+ rx: "3.5",
168
+ fill: "white"
169
+ }), /*#__PURE__*/_react["default"].createElement("rect", {
170
+ x: "0.5",
171
+ y: "0.5",
172
+ width: "41",
173
+ height: "15",
174
+ rx: "3.5",
175
+ stroke: "#BF0D00"
176
+ }), /*#__PURE__*/_react["default"].createElement("path", {
177
+ d: "M7.23438 8.5L8.92188 10.1875C9.01562 10.2812 9.01562 10.4531 8.92188 10.5469L8.53125 10.9375C8.4375 11.0312 8.26562 11.0312 8.17188 10.9375L6.5 9.25L4.8125 10.9375C4.71875 11.0312 4.54688 11.0312 4.45312 10.9375L4.0625 10.5469C3.96875 10.4531 3.96875 10.2812 4.0625 10.1875L5.75 8.5L4.0625 6.82812C3.96875 6.73438 3.96875 6.5625 4.0625 6.46875L4.45312 6.07812C4.54688 5.98438 4.71875 5.98438 4.8125 6.07812L6.5 7.76562L8.17188 6.07812C8.26562 5.98438 8.4375 5.98438 8.53125 6.07812L8.92188 6.46875C9.01562 6.5625 9.01562 6.73438 8.92188 6.82812L7.23438 8.5Z",
178
+ fill: "#BF0D00"
179
+ }), /*#__PURE__*/_react["default"].createElement("path", {
180
+ d: "M14.9531 10.7041H17.3408V11.5H14.0791V4.625H14.9531V10.7041ZM19.5869 11.5928C19.1605 11.5928 18.8089 11.4837 18.5322 11.2656C18.2588 11.0443 18.1221 10.7155 18.1221 10.2793C18.1221 10.0384 18.166 9.83008 18.2539 9.6543C18.3418 9.47526 18.472 9.32878 18.6445 9.21484C18.8171 9.10091 19.0042 9.01139 19.2061 8.94629C19.4111 8.87793 19.6553 8.81934 19.9385 8.77051L20.7148 8.64355C20.998 8.59147 21.1396 8.44336 21.1396 8.19922C21.1396 7.8737 21.0387 7.63607 20.8369 7.48633C20.6383 7.33333 20.3861 7.25684 20.0801 7.25684C19.7806 7.25684 19.5299 7.33008 19.3281 7.47656C19.1263 7.62305 19.0075 7.84766 18.9717 8.15039L18.21 7.98926C18.2816 7.53353 18.4818 7.19173 18.8105 6.96387C19.1393 6.73275 19.5755 6.61719 20.1191 6.61719C20.373 6.61719 20.6042 6.64648 20.8125 6.70508C21.0241 6.76042 21.2178 6.84993 21.3936 6.97363C21.5726 7.09408 21.7109 7.2666 21.8086 7.49121C21.9095 7.71257 21.96 7.97461 21.96 8.27734V10.2598C21.96 10.5072 21.9958 10.6748 22.0674 10.7627C22.1423 10.8473 22.2692 10.8896 22.4482 10.8896H22.5264V11.5H22.1064C21.5889 11.5 21.2861 11.2835 21.1982 10.8506H21.1592C20.7946 11.3454 20.2705 11.5928 19.5869 11.5928ZM19.7822 10.9092C20.2087 10.9092 20.5521 10.7546 20.8125 10.4453C21.0729 10.1361 21.2031 9.71289 21.2031 9.17578L19.9336 9.41992C19.5983 9.47526 19.3493 9.56478 19.1865 9.68848C19.027 9.80892 18.9473 9.98307 18.9473 10.2109C18.9473 10.4486 19.0238 10.6243 19.1768 10.7383C19.333 10.8522 19.5348 10.9092 19.7822 10.9092ZM26.2666 6.60742C26.8916 6.60742 27.4206 6.83854 27.8535 7.30078C28.2865 7.76302 28.5029 8.36361 28.5029 9.10254C28.5029 9.84473 28.2881 10.4469 27.8584 10.9092C27.4287 11.3714 26.8981 11.6025 26.2666 11.6025C25.889 11.6025 25.5472 11.5098 25.2412 11.3242C24.9385 11.1387 24.7106 10.8864 24.5576 10.5674L24.5381 11.5H23.7227V4H24.5625L24.5674 7.61816C24.7236 7.30566 24.9515 7.0599 25.251 6.88086C25.5537 6.69857 25.8923 6.60742 26.2666 6.60742ZM26.0811 10.8701C26.527 10.8701 26.9014 10.7074 27.2041 10.3818C27.5068 10.0531 27.6582 9.62663 27.6582 9.10254C27.6582 8.57845 27.5068 8.15365 27.2041 7.82812C26.9014 7.49935 26.527 7.33496 26.0811 7.33496C25.6416 7.33496 25.2705 7.50423 24.9678 7.84277C24.665 8.18132 24.5137 8.60124 24.5137 9.10254C24.5137 9.6071 24.6634 10.0286 24.9629 10.3672C25.2656 10.7025 25.6383 10.8701 26.0811 10.8701ZM34.0352 9.00488L34.0254 9.23438H30.2754C30.2884 9.76823 30.4414 10.1784 30.7344 10.4648C31.0273 10.748 31.3919 10.8896 31.8281 10.8896C32.1211 10.8896 32.3864 10.8132 32.624 10.6602C32.8617 10.5072 33.0439 10.2956 33.1709 10.0254L33.9326 10.1865C33.7601 10.6227 33.4867 10.9661 33.1123 11.2168C32.738 11.4674 32.3132 11.5928 31.8379 11.5928C31.125 11.5928 30.5488 11.3698 30.1094 10.9238C29.6699 10.4779 29.4502 9.86914 29.4502 9.09766C29.4502 8.32943 29.6699 7.72233 30.1094 7.27637C30.5521 6.8304 31.1201 6.60742 31.8135 6.60742C32.484 6.60742 33.0212 6.8125 33.4248 7.22266C33.8317 7.63281 34.0352 8.22689 34.0352 9.00488ZM31.8135 7.25684C31.4163 7.25684 31.0827 7.37077 30.8125 7.59863C30.5456 7.82324 30.3779 8.15202 30.3096 8.58496H33.1855C33.153 8.15202 33.013 7.82324 32.7656 7.59863C32.5182 7.37077 32.2008 7.25684 31.8135 7.25684ZM35.3633 11.5V4H36.2178V11.5H35.3633Z",
181
+ fill: "#BF0D00"
182
+ }))), /*#__PURE__*/_react["default"].createElement("div", {
183
+ className: classes.row
184
+ }, /*#__PURE__*/_react["default"].createElement("div", {
185
+ className: classes.text
186
+ }, " Student Correct "), /*#__PURE__*/_react["default"].createElement("svg", {
187
+ width: "76",
188
+ height: "16",
189
+ viewBox: "0 0 76 16",
190
+ fill: "none",
191
+ xmlns: "http://www.w3.org/2000/svg"
192
+ }, /*#__PURE__*/_react["default"].createElement("path", {
193
+ d: "M76 8L14 8",
194
+ stroke: "#0B7D38",
195
+ strokeWidth: "3"
196
+ }), /*#__PURE__*/_react["default"].createElement("circle", {
197
+ cx: "8",
198
+ cy: "8",
199
+ r: "8",
200
+ fill: "#0B7D38"
201
+ }), /*#__PURE__*/_react["default"].createElement("path", {
202
+ d: "M12.1953 4.46875C12.3125 4.35156 12.5 4.35156 12.5938 4.46875L13.2734 5.125C13.3672 5.24219 13.3672 5.42969 13.2734 5.52344L6.24219 12.5547C6.125 12.6719 5.96094 12.6719 5.84375 12.5547L2.70312 9.4375C2.60938 9.32031 2.60938 9.13281 2.70312 9.03906L3.38281 8.35938C3.47656 8.26562 3.66406 8.26562 3.78125 8.35938L6.03125 10.6328L12.1953 4.46875Z",
203
+ fill: "white"
204
+ }))), isLabelAvailable && /*#__PURE__*/_react["default"].createElement("div", {
205
+ className: classes.row
206
+ }, /*#__PURE__*/_react["default"].createElement("div", {
207
+ className: classes.text
208
+ }, " Student Correct Label "), /*#__PURE__*/_react["default"].createElement("svg", {
209
+ width: "43",
210
+ height: "16",
211
+ viewBox: "0 0 43 16",
212
+ fill: "none",
213
+ xmlns: "http://www.w3.org/2000/svg"
214
+ }, /*#__PURE__*/_react["default"].createElement("rect", {
215
+ x: "0.5",
216
+ y: "0.5",
217
+ width: "42",
218
+ height: "15",
219
+ rx: "3.5",
220
+ fill: "white"
221
+ }), /*#__PURE__*/_react["default"].createElement("rect", {
222
+ x: "0.5",
223
+ y: "0.5",
224
+ width: "42",
225
+ height: "15",
226
+ rx: "3.5",
227
+ stroke: "#0B7D38"
228
+ }), /*#__PURE__*/_react["default"].createElement("path", {
229
+ d: "M11.7969 5.3125C11.875 5.23438 12 5.23438 12.0625 5.3125L12.5156 5.75C12.5781 5.82812 12.5781 5.95312 12.5156 6.01562L7.82812 10.7031C7.75 10.7812 7.64062 10.7812 7.5625 10.7031L5.46875 8.625C5.40625 8.54688 5.40625 8.42188 5.46875 8.35938L5.92188 7.90625C5.98438 7.84375 6.10938 7.84375 6.1875 7.90625L7.6875 9.42188L11.7969 5.3125Z",
230
+ fill: "#0B7D38"
231
+ }), /*#__PURE__*/_react["default"].createElement("path", {
232
+ d: "M15.9531 10.7041H18.3408V11.5H15.0791V4.625H15.9531V10.7041ZM20.5869 11.5928C20.1605 11.5928 19.8089 11.4837 19.5322 11.2656C19.2588 11.0443 19.1221 10.7155 19.1221 10.2793C19.1221 10.0384 19.166 9.83008 19.2539 9.6543C19.3418 9.47526 19.472 9.32878 19.6445 9.21484C19.8171 9.10091 20.0042 9.01139 20.2061 8.94629C20.4111 8.87793 20.6553 8.81934 20.9385 8.77051L21.7148 8.64355C21.998 8.59147 22.1396 8.44336 22.1396 8.19922C22.1396 7.8737 22.0387 7.63607 21.8369 7.48633C21.6383 7.33333 21.3861 7.25684 21.0801 7.25684C20.7806 7.25684 20.5299 7.33008 20.3281 7.47656C20.1263 7.62305 20.0075 7.84766 19.9717 8.15039L19.21 7.98926C19.2816 7.53353 19.4818 7.19173 19.8105 6.96387C20.1393 6.73275 20.5755 6.61719 21.1191 6.61719C21.373 6.61719 21.6042 6.64648 21.8125 6.70508C22.0241 6.76042 22.2178 6.84993 22.3936 6.97363C22.5726 7.09408 22.7109 7.2666 22.8086 7.49121C22.9095 7.71257 22.96 7.97461 22.96 8.27734V10.2598C22.96 10.5072 22.9958 10.6748 23.0674 10.7627C23.1423 10.8473 23.2692 10.8896 23.4482 10.8896H23.5264V11.5H23.1064C22.5889 11.5 22.2861 11.2835 22.1982 10.8506H22.1592C21.7946 11.3454 21.2705 11.5928 20.5869 11.5928ZM20.7822 10.9092C21.2087 10.9092 21.5521 10.7546 21.8125 10.4453C22.0729 10.1361 22.2031 9.71289 22.2031 9.17578L20.9336 9.41992C20.5983 9.47526 20.3493 9.56478 20.1865 9.68848C20.027 9.80892 19.9473 9.98307 19.9473 10.2109C19.9473 10.4486 20.0238 10.6243 20.1768 10.7383C20.333 10.8522 20.5348 10.9092 20.7822 10.9092ZM27.2666 6.60742C27.8916 6.60742 28.4206 6.83854 28.8535 7.30078C29.2865 7.76302 29.5029 8.36361 29.5029 9.10254C29.5029 9.84473 29.2881 10.4469 28.8584 10.9092C28.4287 11.3714 27.8981 11.6025 27.2666 11.6025C26.889 11.6025 26.5472 11.5098 26.2412 11.3242C25.9385 11.1387 25.7106 10.8864 25.5576 10.5674L25.5381 11.5H24.7227V4H25.5625L25.5674 7.61816C25.7236 7.30566 25.9515 7.0599 26.251 6.88086C26.5537 6.69857 26.8923 6.60742 27.2666 6.60742ZM27.0811 10.8701C27.527 10.8701 27.9014 10.7074 28.2041 10.3818C28.5068 10.0531 28.6582 9.62663 28.6582 9.10254C28.6582 8.57845 28.5068 8.15365 28.2041 7.82812C27.9014 7.49935 27.527 7.33496 27.0811 7.33496C26.6416 7.33496 26.2705 7.50423 25.9678 7.84277C25.665 8.18132 25.5137 8.60124 25.5137 9.10254C25.5137 9.6071 25.6634 10.0286 25.9629 10.3672C26.2656 10.7025 26.6383 10.8701 27.0811 10.8701ZM35.0352 9.00488L35.0254 9.23438H31.2754C31.2884 9.76823 31.4414 10.1784 31.7344 10.4648C32.0273 10.748 32.3919 10.8896 32.8281 10.8896C33.1211 10.8896 33.3864 10.8132 33.624 10.6602C33.8617 10.5072 34.0439 10.2956 34.1709 10.0254L34.9326 10.1865C34.7601 10.6227 34.4867 10.9661 34.1123 11.2168C33.738 11.4674 33.3132 11.5928 32.8379 11.5928C32.125 11.5928 31.5488 11.3698 31.1094 10.9238C30.6699 10.4779 30.4502 9.86914 30.4502 9.09766C30.4502 8.32943 30.6699 7.72233 31.1094 7.27637C31.5521 6.8304 32.1201 6.60742 32.8135 6.60742C33.484 6.60742 34.0212 6.8125 34.4248 7.22266C34.8317 7.63281 35.0352 8.22689 35.0352 9.00488ZM32.8135 7.25684C32.4163 7.25684 32.0827 7.37077 31.8125 7.59863C31.5456 7.82324 31.3779 8.15202 31.3096 8.58496H34.1855C34.153 8.15202 34.013 7.82324 33.7656 7.59863C33.5182 7.37077 33.2008 7.25684 32.8135 7.25684ZM36.3633 11.5V4H37.2178V11.5H36.3633Z",
233
+ fill: "#0B7D38"
234
+ }))));
235
+ };
236
+
237
+ KeyLegend.propTypes = {
238
+ className: _propTypes["default"].string,
239
+ classes: _propTypes["default"].object.isRequired,
240
+ isLabelAvailable: _propTypes["default"].bool
241
+ };
242
+
243
+ var _default = (0, _styles.withStyles)(styles)(KeyLegend);
244
+
245
+ exports["default"] = _default;
246
+ //# sourceMappingURL=key-legend.js.map