@pie-element/hotspot 9.3.4-next.0 → 10.0.0-beta.0

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 (103) hide show
  1. package/configure/lib/DeleteWidget.js +30 -43
  2. package/configure/lib/DeleteWidget.js.map +1 -1
  3. package/configure/lib/button.js +26 -45
  4. package/configure/lib/button.js.map +1 -1
  5. package/configure/lib/buttons/circle.js +20 -27
  6. package/configure/lib/buttons/circle.js.map +1 -1
  7. package/configure/lib/buttons/polygon.js +26 -33
  8. package/configure/lib/buttons/polygon.js.map +1 -1
  9. package/configure/lib/buttons/rectangle.js +26 -33
  10. package/configure/lib/buttons/rectangle.js.map +1 -1
  11. package/configure/lib/defaults.js +2 -3
  12. package/configure/lib/defaults.js.map +1 -1
  13. package/configure/lib/hotspot-circle.js +132 -198
  14. package/configure/lib/hotspot-circle.js.map +1 -1
  15. package/configure/lib/hotspot-container.js +250 -355
  16. package/configure/lib/hotspot-container.js.map +1 -1
  17. package/configure/lib/hotspot-drawable.js +360 -472
  18. package/configure/lib/hotspot-drawable.js.map +1 -1
  19. package/configure/lib/hotspot-palette.js +92 -139
  20. package/configure/lib/hotspot-palette.js.map +1 -1
  21. package/configure/lib/hotspot-polygon.js +212 -317
  22. package/configure/lib/hotspot-polygon.js.map +1 -1
  23. package/configure/lib/hotspot-rectangle.js +128 -192
  24. package/configure/lib/hotspot-rectangle.js.map +1 -1
  25. package/configure/lib/icons.js.map +1 -1
  26. package/configure/lib/image-konva.js +46 -86
  27. package/configure/lib/image-konva.js.map +1 -1
  28. package/configure/lib/index.js +162 -222
  29. package/configure/lib/index.js.map +1 -1
  30. package/configure/lib/root.js +301 -393
  31. package/configure/lib/root.js.map +1 -1
  32. package/configure/lib/shapes/circle.js +69 -101
  33. package/configure/lib/shapes/circle.js.map +1 -1
  34. package/configure/lib/shapes/index.js +4 -12
  35. package/configure/lib/shapes/index.js.map +1 -1
  36. package/configure/lib/shapes/polygon.js +64 -96
  37. package/configure/lib/shapes/polygon.js.map +1 -1
  38. package/configure/lib/shapes/rectagle.js +69 -101
  39. package/configure/lib/shapes/rectagle.js.map +1 -1
  40. package/configure/lib/shapes/utils.js +2 -8
  41. package/configure/lib/shapes/utils.js.map +1 -1
  42. package/configure/lib/upload-control.js +25 -52
  43. package/configure/lib/upload-control.js.map +1 -1
  44. package/configure/lib/utils.js +84 -137
  45. package/configure/lib/utils.js.map +1 -1
  46. package/configure/package.json +11 -10
  47. package/configure/src/__tests__/hotspot-container.test.js +50 -19
  48. package/configure/src/__tests__/hotspot-drawable.test.js +55 -34
  49. package/configure/src/__tests__/index.test.js +167 -5
  50. package/configure/src/__tests__/root.test.js +89 -63
  51. package/configure/src/button.jsx +12 -20
  52. package/configure/src/hotspot-circle.jsx +5 -18
  53. package/configure/src/hotspot-container.jsx +82 -98
  54. package/configure/src/hotspot-drawable.jsx +43 -45
  55. package/configure/src/hotspot-palette.jsx +45 -37
  56. package/configure/src/hotspot-polygon.jsx +4 -20
  57. package/configure/src/hotspot-rectangle.jsx +4 -17
  58. package/configure/src/index.js +12 -2
  59. package/configure/src/root.jsx +85 -79
  60. package/configure/src/upload-control.jsx +6 -16
  61. package/controller/lib/defaults.js +2 -3
  62. package/controller/lib/defaults.js.map +1 -1
  63. package/controller/lib/index.js +151 -205
  64. package/controller/lib/index.js.map +1 -1
  65. package/controller/lib/utils.js +14 -34
  66. package/controller/lib/utils.js.map +1 -1
  67. package/controller/package.json +2 -2
  68. package/lib/hotspot/circle.js +110 -169
  69. package/lib/hotspot/circle.js.map +1 -1
  70. package/lib/hotspot/container.js +174 -260
  71. package/lib/hotspot/container.js.map +1 -1
  72. package/lib/hotspot/icons.js.map +1 -1
  73. package/lib/hotspot/image-konva-tooltip.js +65 -112
  74. package/lib/hotspot/image-konva-tooltip.js.map +1 -1
  75. package/lib/hotspot/index.js +135 -198
  76. package/lib/hotspot/index.js.map +1 -1
  77. package/lib/hotspot/polygon.js +150 -214
  78. package/lib/hotspot/polygon.js.map +1 -1
  79. package/lib/hotspot/rectangle.js +128 -185
  80. package/lib/hotspot/rectangle.js.map +1 -1
  81. package/lib/index.js +187 -256
  82. package/lib/index.js.map +1 -1
  83. package/lib/session-updater.js +12 -18
  84. package/lib/session-updater.js.map +1 -1
  85. package/package.json +14 -11
  86. package/src/__tests__/container.test.jsx +27 -175
  87. package/src/__tests__/index.test.js +70 -30
  88. package/src/hotspot/circle.jsx +2 -13
  89. package/src/hotspot/container.jsx +35 -50
  90. package/src/hotspot/index.jsx +16 -28
  91. package/src/hotspot/polygon.jsx +4 -13
  92. package/src/hotspot/rectangle.jsx +5 -15
  93. package/src/index.js +21 -12
  94. package/configure/src/__tests__/DeleteWidget.test.js +0 -64
  95. package/configure/src/__tests__/__snapshots__/hotspot-container.test.js.snap +0 -192
  96. package/configure/src/__tests__/__snapshots__/hotspot-drawable.test.js.snap +0 -562
  97. package/configure/src/__tests__/__snapshots__/root.test.js.snap +0 -469
  98. package/src/__tests__/__snapshots__/container.test.jsx.snap +0 -264
  99. package/src/__tests__/__snapshots__/index.test.js.snap +0 -81
  100. package/src/__tests__/__snapshots__/polygon.test.jsx.snap +0 -192
  101. package/src/__tests__/__snapshots__/rectangle.test.jsx.snap +0 -127
  102. package/src/__tests__/polygon.test.jsx +0 -230
  103. package/src/__tests__/rectangle.test.jsx +0 -232
@@ -1,292 +1,206 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
- exports["default"] = exports.Container = void 0;
9
-
10
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
-
12
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
-
14
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
15
-
16
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
-
18
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
19
-
20
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
21
-
7
+ exports.default = exports.Container = void 0;
22
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
23
-
24
9
  var _react = _interopRequireDefault(require("react"));
25
-
26
10
  var _propTypes = _interopRequireDefault(require("prop-types"));
27
-
28
11
  var _reactKonva = require("react-konva");
29
-
30
- var _styles = require("@material-ui/core/styles");
31
-
32
- var _renderUi = require("@pie-lib/render-ui");
33
-
12
+ var _styles = require("@mui/material/styles");
34
13
  var _rectangle = _interopRequireDefault(require("./rectangle"));
35
-
36
14
  var _polygon = _interopRequireDefault(require("./polygon"));
37
-
38
15
  var _circle = _interopRequireDefault(require("./circle"));
39
-
40
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
41
-
42
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
43
-
44
- var Container = /*#__PURE__*/function (_React$Component) {
45
- (0, _inherits2["default"])(Container, _React$Component);
46
-
47
- var _super = _createSuper(Container);
48
-
49
- function Container() {
50
- var _this;
51
-
52
- (0, _classCallCheck2["default"])(this, Container);
53
-
54
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
55
- args[_key] = arguments[_key];
56
- }
57
-
58
- _this = _super.call.apply(_super, [this].concat(args));
59
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "correctness", function (isCorrect, isChecked) {
60
- return isCorrect ? isChecked : !isChecked;
61
- });
62
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "getEvaluateText", function (isCorrect, selected) {
16
+ const BaseContainer = (0, _styles.styled)('div')(({
17
+ theme
18
+ }) => ({
19
+ marginTop: theme.spacing(2),
20
+ marginBottom: theme.spacing(2),
21
+ position: 'relative',
22
+ background: theme.palette.common.white,
23
+ border: `${theme.spacing(1)} solid ${theme.palette.common.white}`,
24
+ width: 'fit-content'
25
+ }));
26
+ const ImageContainer = (0, _styles.styled)('div')({
27
+ position: 'relative',
28
+ width: 'fit-content'
29
+ });
30
+ const Image = (0, _styles.styled)('img')({
31
+ alignItems: 'center',
32
+ display: 'flex',
33
+ justifyContent: 'center'
34
+ });
35
+ const StyledStage = (0, _styles.styled)(_reactKonva.Stage)({
36
+ left: 0,
37
+ top: 0,
38
+ position: 'absolute'
39
+ });
40
+ class Container extends _react.default.Component {
41
+ constructor(...args) {
42
+ super(...args);
43
+ (0, _defineProperty2.default)(this, "correctness", (isCorrect, isChecked) => isCorrect ? isChecked : !isChecked);
44
+ (0, _defineProperty2.default)(this, "getEvaluateText", (isCorrect, selected) => {
63
45
  if (selected && isCorrect) {
64
46
  return 'Correctly\nselected';
65
47
  }
66
-
67
48
  if (selected && !isCorrect) {
68
49
  return 'Should not have\nbeen selected';
69
50
  }
70
-
71
51
  if (!selected && isCorrect) {
72
52
  return 'Should have\nbeen selected';
73
53
  }
74
-
75
54
  return null;
76
55
  });
77
- return _this;
78
56
  }
79
-
80
- (0, _createClass2["default"])(Container, [{
81
- key: "isSelected",
82
- value: function isSelected(shape) {
83
- var selectedShape = this.props.session.answers.filter(function (answer) {
84
- return answer.id === shape.id;
85
- })[0];
86
- return !!selectedShape;
87
- }
88
- }, {
89
- key: "render",
90
- value: function render() {
91
- var _this2 = this;
92
-
93
- var _this$props = this.props,
94
- classes = _this$props.classes,
95
- _this$props$dimension = _this$props.dimensions,
96
- withProp = _this$props$dimension.width,
97
- heightProp = _this$props$dimension.height,
98
- disabled = _this$props.disabled,
99
- hotspotColor = _this$props.hotspotColor,
100
- hoverOutlineColor = _this$props.hoverOutlineColor,
101
- selectedHotspotColor = _this$props.selectedHotspotColor,
102
- imageUrl = _this$props.imageUrl,
103
- isEvaluateMode = _this$props.isEvaluateMode,
104
- outlineColor = _this$props.outlineColor,
105
- onSelectChoice = _this$props.onSelectChoice,
106
- _this$props$shapes = _this$props.shapes,
107
- _this$props$shapes$re = _this$props$shapes.rectangles,
108
- rectangles = _this$props$shapes$re === void 0 ? [] : _this$props$shapes$re,
109
- _this$props$shapes$po = _this$props$shapes.polygons,
110
- polygons = _this$props$shapes$po === void 0 ? [] : _this$props$shapes$po,
111
- _this$props$shapes$ci = _this$props$shapes.circles,
112
- circles = _this$props$shapes$ci === void 0 ? [] : _this$props$shapes$ci,
113
- SCALE = _this$props.scale,
114
- strokeWidth = _this$props.strokeWidth,
115
- showCorrect = _this$props.showCorrect;
116
- var width = withProp * SCALE;
117
- var height = heightProp * SCALE;
118
- return /*#__PURE__*/_react["default"].createElement("div", {
119
- className: classes.base,
120
- style: {
121
- padding: strokeWidth / 2
122
- }
123
- }, imageUrl ? /*#__PURE__*/_react["default"].createElement("div", {
124
- className: classes.imageContainer
125
- }, /*#__PURE__*/_react["default"].createElement("img", {
126
- alt: "hotspot-image",
127
- className: classes.image,
128
- height: "auto",
129
- src: imageUrl,
130
- style: {
131
- width: width,
132
- height: height,
133
- maxWidth: width,
134
- maxHeight: height
135
- }
136
- })) : null, /*#__PURE__*/_react["default"].createElement(_reactKonva.Stage, {
137
- className: classes.stage,
138
- height: height + strokeWidth,
139
- width: width + strokeWidth,
140
- x: strokeWidth / 2,
141
- y: strokeWidth / 2
142
- }, /*#__PURE__*/_react["default"].createElement(_reactKonva.Layer, null, rectangles.map(function (shape) {
143
- var selected = _this2.isSelected(shape);
144
-
145
- var isCorrect = isEvaluateMode ? _this2.correctness(shape.correct, selected) : undefined;
146
- var evaluateText = isEvaluateMode ? _this2.getEvaluateText(shape.correct, selected) : null;
147
- var markAsCorrect = !!(isEvaluateMode && showCorrect && shape.correct);
148
- return /*#__PURE__*/_react["default"].createElement(_rectangle["default"], {
149
- scale: SCALE,
150
- isEvaluateMode: isEvaluateMode,
151
- isCorrect: isCorrect,
152
- evaluateText: evaluateText,
153
- disabled: disabled,
154
- selected: selected,
155
- height: shape.height,
156
- hotspotColor: hotspotColor,
157
- hoverOutlineColor: hoverOutlineColor,
158
- selectedHotspotColor: selectedHotspotColor,
159
- id: shape.id,
160
- key: shape.id,
161
- onClick: onSelectChoice,
162
- outlineColor: outlineColor,
163
- width: shape.width,
164
- x: shape.x,
165
- y: shape.y,
166
- strokeWidth: strokeWidth,
167
- markAsCorrect: markAsCorrect,
168
- showCorrectEnabled: showCorrect
169
- });
170
- }), polygons.map(function (polygon) {
171
- var selected = _this2.isSelected(polygon);
172
-
173
- var isCorrect = isEvaluateMode ? _this2.correctness(polygon.correct, selected) : undefined;
174
- var evaluateText = isEvaluateMode ? _this2.getEvaluateText(polygon.correct, selected) : null;
175
- var markAsCorrect = !!(isEvaluateMode && showCorrect && polygon.correct);
176
- return /*#__PURE__*/_react["default"].createElement(_polygon["default"], {
177
- scale: SCALE,
178
- isEvaluateMode: isEvaluateMode,
179
- isCorrect: !!isCorrect,
180
- evaluateText: evaluateText,
181
- disabled: disabled,
182
- selected: selected,
183
- hotspotColor: hotspotColor,
184
- id: polygon.id,
185
- key: polygon.id,
186
- onClick: onSelectChoice,
187
- outlineColor: outlineColor,
188
- points: polygon.points,
189
- strokeWidth: strokeWidth,
190
- markAsCorrect: markAsCorrect,
191
- selectedHotspotColor: selectedHotspotColor,
192
- hoverOutlineColor: hoverOutlineColor,
193
- showCorrectEnabled: showCorrect
194
- });
195
- }), circles.map(function (shape) {
196
- var selected = _this2.isSelected(shape);
197
-
198
- var isCorrect = isEvaluateMode ? _this2.correctness(shape.correct, selected) : undefined;
199
- var evaluateText = isEvaluateMode ? _this2.getEvaluateText(shape.correct, selected) : null;
200
- var markAsCorrect = !!(isEvaluateMode && showCorrect && shape.correct);
201
- return /*#__PURE__*/_react["default"].createElement(_circle["default"], {
202
- classes: classes,
203
- scale: SCALE,
204
- isEvaluateMode: isEvaluateMode,
205
- isCorrect: isCorrect,
206
- evaluateText: evaluateText,
207
- disabled: disabled,
208
- selected: selected,
209
- radius: shape.radius,
210
- hotspotColor: hotspotColor,
211
- id: shape.id,
212
- key: shape.id,
213
- onClick: onSelectChoice,
214
- outlineColor: outlineColor,
215
- x: shape.x,
216
- y: shape.y,
217
- strokeWidth: strokeWidth,
218
- markAsCorrect: markAsCorrect,
219
- selectedHotspotColor: selectedHotspotColor,
220
- hoverOutlineColor: hoverOutlineColor,
221
- showCorrectEnabled: showCorrect
222
- });
223
- }))));
224
- }
225
- }]);
226
- return Container;
227
- }(_react["default"].Component);
228
-
57
+ isSelected(shape) {
58
+ const selectedShape = this.props.session.answers.filter(answer => answer.id === shape.id)[0];
59
+ return !!selectedShape;
60
+ }
61
+ render() {
62
+ const {
63
+ dimensions: {
64
+ width: withProp,
65
+ height: heightProp
66
+ },
67
+ disabled,
68
+ hotspotColor,
69
+ hoverOutlineColor,
70
+ selectedHotspotColor,
71
+ imageUrl,
72
+ isEvaluateMode,
73
+ outlineColor,
74
+ onSelectChoice,
75
+ shapes: {
76
+ rectangles = [],
77
+ polygons = [],
78
+ circles = []
79
+ },
80
+ scale: SCALE,
81
+ strokeWidth,
82
+ showCorrect
83
+ } = this.props;
84
+ const width = withProp * SCALE;
85
+ const height = heightProp * SCALE;
86
+ return /*#__PURE__*/_react.default.createElement(BaseContainer, {
87
+ style: {
88
+ padding: strokeWidth / 2
89
+ }
90
+ }, imageUrl ? /*#__PURE__*/_react.default.createElement(ImageContainer, null, /*#__PURE__*/_react.default.createElement(Image, {
91
+ alt: "hotspot-image",
92
+ height: "auto",
93
+ src: imageUrl,
94
+ style: {
95
+ width,
96
+ height,
97
+ maxWidth: width,
98
+ maxHeight: height
99
+ }
100
+ })) : null, /*#__PURE__*/_react.default.createElement(StyledStage, {
101
+ height: height + strokeWidth,
102
+ width: width + strokeWidth,
103
+ x: strokeWidth / 2,
104
+ y: strokeWidth / 2
105
+ }, /*#__PURE__*/_react.default.createElement(_reactKonva.Layer, null, rectangles.map(shape => {
106
+ const selected = this.isSelected(shape);
107
+ const isCorrect = isEvaluateMode ? this.correctness(shape.correct, selected) : undefined;
108
+ const evaluateText = isEvaluateMode ? this.getEvaluateText(shape.correct, selected) : null;
109
+ const markAsCorrect = !!(isEvaluateMode && showCorrect && shape.correct);
110
+ return /*#__PURE__*/_react.default.createElement(_rectangle.default, {
111
+ scale: SCALE,
112
+ isEvaluateMode: isEvaluateMode,
113
+ isCorrect: isCorrect,
114
+ evaluateText: evaluateText,
115
+ disabled: disabled,
116
+ selected: selected,
117
+ height: shape.height,
118
+ hotspotColor: hotspotColor,
119
+ hoverOutlineColor: hoverOutlineColor,
120
+ selectedHotspotColor: selectedHotspotColor,
121
+ id: shape.id,
122
+ key: shape.id,
123
+ onClick: onSelectChoice,
124
+ outlineColor: outlineColor,
125
+ width: shape.width,
126
+ x: shape.x,
127
+ y: shape.y,
128
+ strokeWidth: strokeWidth,
129
+ markAsCorrect: markAsCorrect,
130
+ showCorrectEnabled: showCorrect
131
+ });
132
+ }), polygons.map(polygon => {
133
+ const selected = this.isSelected(polygon);
134
+ const isCorrect = isEvaluateMode ? this.correctness(polygon.correct, selected) : undefined;
135
+ const evaluateText = isEvaluateMode ? this.getEvaluateText(polygon.correct, selected) : null;
136
+ const markAsCorrect = !!(isEvaluateMode && showCorrect && polygon.correct);
137
+ return /*#__PURE__*/_react.default.createElement(_polygon.default, {
138
+ scale: SCALE,
139
+ isEvaluateMode: isEvaluateMode,
140
+ isCorrect: !!isCorrect,
141
+ evaluateText: evaluateText,
142
+ disabled: disabled,
143
+ selected: selected,
144
+ hotspotColor: hotspotColor,
145
+ id: polygon.id,
146
+ key: polygon.id,
147
+ onClick: onSelectChoice,
148
+ outlineColor: outlineColor,
149
+ points: polygon.points,
150
+ strokeWidth: strokeWidth,
151
+ markAsCorrect: markAsCorrect,
152
+ selectedHotspotColor: selectedHotspotColor,
153
+ hoverOutlineColor: hoverOutlineColor,
154
+ showCorrectEnabled: showCorrect
155
+ });
156
+ }), circles.map(shape => {
157
+ const selected = this.isSelected(shape);
158
+ const isCorrect = isEvaluateMode ? this.correctness(shape.correct, selected) : undefined;
159
+ const evaluateText = isEvaluateMode ? this.getEvaluateText(shape.correct, selected) : null;
160
+ const markAsCorrect = !!(isEvaluateMode && showCorrect && shape.correct);
161
+ return /*#__PURE__*/_react.default.createElement(_circle.default, {
162
+ scale: SCALE,
163
+ isEvaluateMode: isEvaluateMode,
164
+ isCorrect: isCorrect,
165
+ evaluateText: evaluateText,
166
+ disabled: disabled,
167
+ selected: selected,
168
+ radius: shape.radius,
169
+ hotspotColor: hotspotColor,
170
+ id: shape.id,
171
+ key: shape.id,
172
+ onClick: onSelectChoice,
173
+ outlineColor: outlineColor,
174
+ x: shape.x,
175
+ y: shape.y,
176
+ strokeWidth: strokeWidth,
177
+ markAsCorrect: markAsCorrect,
178
+ selectedHotspotColor: selectedHotspotColor,
179
+ hoverOutlineColor: hoverOutlineColor,
180
+ showCorrectEnabled: showCorrect
181
+ });
182
+ }))));
183
+ }
184
+ }
229
185
  exports.Container = Container;
230
-
231
- var styles = function styles(theme) {
232
- return {
233
- base: {
234
- marginTop: theme.spacing.unit * 2,
235
- marginBottom: theme.spacing.unit * 2,
236
- position: 'relative',
237
- background: theme.palette.common.white,
238
- border: "".concat(theme.spacing.unit, "px solid ").concat(theme.palette.common.white),
239
- width: 'fit-content'
240
- },
241
- image: {
242
- alignItems: 'center',
243
- display: 'flex',
244
- justifyContent: 'center'
245
- },
246
- imageContainer: {
247
- position: 'relative',
248
- width: 'fit-content'
249
- },
250
- stage: {
251
- left: 0,
252
- top: 0,
253
- position: 'absolute'
254
- },
255
- resize: {
256
- borderBottom: "1px solid ".concat(_renderUi.color.disabled()),
257
- borderRight: "1px solid ".concat(_renderUi.color.disabled()),
258
- bottom: '-10px',
259
- cursor: 'se-resize',
260
- height: '10px',
261
- position: 'absolute',
262
- right: '-10px',
263
- width: '10px'
264
- }
265
- };
266
- };
267
-
268
186
  Container.propTypes = {
269
- classes: _propTypes["default"].object.isRequired,
270
- dimensions: _propTypes["default"].object.isRequired,
271
- disabled: _propTypes["default"].bool.isRequired,
272
- hotspotColor: _propTypes["default"].string.isRequired,
273
- hoverOutlineColor: _propTypes["default"].string,
274
- imageUrl: _propTypes["default"].string.isRequired,
275
- isEvaluateMode: _propTypes["default"].bool.isRequired,
276
- onSelectChoice: _propTypes["default"].func.isRequired,
277
- outlineColor: _propTypes["default"].string.isRequired,
278
- selectedHotspotColor: _propTypes["default"].string,
279
- session: _propTypes["default"].object.isRequired,
280
- shapes: _propTypes["default"].object.isRequired,
281
- strokeWidth: _propTypes["default"].number,
282
- scale: _propTypes["default"].number,
283
- showCorrect: _propTypes["default"].bool
187
+ dimensions: _propTypes.default.object.isRequired,
188
+ disabled: _propTypes.default.bool.isRequired,
189
+ hotspotColor: _propTypes.default.string.isRequired,
190
+ hoverOutlineColor: _propTypes.default.string,
191
+ imageUrl: _propTypes.default.string.isRequired,
192
+ isEvaluateMode: _propTypes.default.bool.isRequired,
193
+ onSelectChoice: _propTypes.default.func.isRequired,
194
+ outlineColor: _propTypes.default.string.isRequired,
195
+ selectedHotspotColor: _propTypes.default.string,
196
+ session: _propTypes.default.object.isRequired,
197
+ shapes: _propTypes.default.object.isRequired,
198
+ strokeWidth: _propTypes.default.number,
199
+ scale: _propTypes.default.number,
200
+ showCorrect: _propTypes.default.bool
284
201
  };
285
202
  Container.defaultProps = {
286
203
  scale: 1
287
204
  };
288
-
289
- var _default = (0, _styles.withStyles)(styles)(Container);
290
-
291
- exports["default"] = _default;
205
+ var _default = exports.default = Container;
292
206
  //# sourceMappingURL=container.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/hotspot/container.jsx"],"names":["Container","isCorrect","isChecked","selected","shape","selectedShape","props","session","answers","filter","answer","id","classes","dimensions","withProp","width","heightProp","height","disabled","hotspotColor","hoverOutlineColor","selectedHotspotColor","imageUrl","isEvaluateMode","outlineColor","onSelectChoice","shapes","rectangles","polygons","circles","SCALE","scale","strokeWidth","showCorrect","base","padding","imageContainer","image","maxWidth","maxHeight","stage","map","isSelected","correctness","correct","undefined","evaluateText","getEvaluateText","markAsCorrect","x","y","polygon","points","radius","React","Component","styles","theme","marginTop","spacing","unit","marginBottom","position","background","palette","common","white","border","alignItems","display","justifyContent","left","top","resize","borderBottom","color","borderRight","bottom","cursor","right","propTypes","PropTypes","object","isRequired","bool","string","func","number","defaultProps"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Layer, Stage } from 'react-konva';\nimport { withStyles } from '@material-ui/core/styles';\nimport { color } from '@pie-lib/render-ui';\n\nimport Rectangle from './rectangle';\nimport Polygon from './polygon';\nimport Circle from './circle';\n\nexport class Container extends React.Component {\n isSelected(shape) {\n const selectedShape = this.props.session.answers.filter((answer) => answer.id === shape.id)[0];\n return !!selectedShape;\n }\n\n correctness = (isCorrect, isChecked) => (isCorrect ? isChecked : !isChecked);\n\n getEvaluateText = (isCorrect, selected) => {\n if (selected && isCorrect) {\n return 'Correctly\\nselected';\n }\n\n if (selected && !isCorrect) {\n return 'Should not have\\nbeen selected';\n }\n\n if (!selected && isCorrect) {\n return 'Should have\\nbeen selected';\n }\n\n return null;\n };\n\n render() {\n const {\n classes,\n dimensions: { width: withProp, height: heightProp },\n disabled,\n hotspotColor,\n hoverOutlineColor,\n selectedHotspotColor,\n imageUrl,\n isEvaluateMode,\n outlineColor,\n onSelectChoice,\n shapes: { rectangles = [], polygons = [], circles = [] },\n scale: SCALE,\n strokeWidth,\n showCorrect,\n } = this.props;\n\n const width = withProp * SCALE;\n const height = heightProp * SCALE;\n\n return (\n <div className={classes.base} style={{ padding: strokeWidth / 2 }}>\n {imageUrl ? (\n <div className={classes.imageContainer}>\n <img\n alt=\"hotspot-image\"\n className={classes.image}\n height=\"auto\"\n src={imageUrl}\n style={{ width, height, maxWidth: width, maxHeight: height }}\n />\n </div>\n ) : null}\n\n <Stage\n className={classes.stage}\n height={height + strokeWidth}\n width={width + strokeWidth}\n x={strokeWidth / 2}\n y={strokeWidth / 2}\n >\n <Layer>\n {rectangles.map((shape) => {\n const selected = this.isSelected(shape);\n const isCorrect = isEvaluateMode ? this.correctness(shape.correct, selected) : undefined;\n const evaluateText = isEvaluateMode ? this.getEvaluateText(shape.correct, selected) : null;\n const markAsCorrect = !!(isEvaluateMode && showCorrect && shape.correct);\n\n return (\n <Rectangle\n scale={SCALE}\n isEvaluateMode={isEvaluateMode}\n isCorrect={isCorrect}\n evaluateText={evaluateText}\n disabled={disabled}\n selected={selected}\n height={shape.height}\n hotspotColor={hotspotColor}\n hoverOutlineColor={hoverOutlineColor}\n selectedHotspotColor={selectedHotspotColor}\n id={shape.id}\n key={shape.id}\n onClick={onSelectChoice}\n outlineColor={outlineColor}\n width={shape.width}\n x={shape.x}\n y={shape.y}\n strokeWidth={strokeWidth}\n markAsCorrect={markAsCorrect}\n showCorrectEnabled={showCorrect}\n />\n );\n })}\n {polygons.map((polygon) => {\n const selected = this.isSelected(polygon);\n const isCorrect = isEvaluateMode ? this.correctness(polygon.correct, selected) : undefined;\n const evaluateText = isEvaluateMode ? this.getEvaluateText(polygon.correct, selected) : null;\n const markAsCorrect = !!(isEvaluateMode && showCorrect && polygon.correct);\n\n return (\n <Polygon\n scale={SCALE}\n isEvaluateMode={isEvaluateMode}\n isCorrect={!!isCorrect}\n evaluateText={evaluateText}\n disabled={disabled}\n selected={selected}\n hotspotColor={hotspotColor}\n id={polygon.id}\n key={polygon.id}\n onClick={onSelectChoice}\n outlineColor={outlineColor}\n points={polygon.points}\n strokeWidth={strokeWidth}\n markAsCorrect={markAsCorrect}\n selectedHotspotColor={selectedHotspotColor}\n hoverOutlineColor={hoverOutlineColor}\n showCorrectEnabled={showCorrect}\n />\n );\n })}\n {circles.map((shape) => {\n const selected = this.isSelected(shape);\n const isCorrect = isEvaluateMode ? this.correctness(shape.correct, selected) : undefined;\n const evaluateText = isEvaluateMode ? this.getEvaluateText(shape.correct, selected) : null;\n const markAsCorrect = !!(isEvaluateMode && showCorrect && shape.correct);\n\n return (\n <Circle\n classes={classes}\n scale={SCALE}\n isEvaluateMode={isEvaluateMode}\n isCorrect={isCorrect}\n evaluateText={evaluateText}\n disabled={disabled}\n selected={selected}\n radius={shape.radius}\n hotspotColor={hotspotColor}\n id={shape.id}\n key={shape.id}\n onClick={onSelectChoice}\n outlineColor={outlineColor}\n x={shape.x}\n y={shape.y}\n strokeWidth={strokeWidth}\n markAsCorrect={markAsCorrect}\n selectedHotspotColor={selectedHotspotColor}\n hoverOutlineColor={hoverOutlineColor}\n showCorrectEnabled={showCorrect}\n />\n );\n })}\n </Layer>\n </Stage>\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n base: {\n marginTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n position: 'relative',\n background: theme.palette.common.white,\n border: `${theme.spacing.unit}px solid ${theme.palette.common.white}`,\n width: 'fit-content',\n },\n image: {\n alignItems: 'center',\n display: 'flex',\n justifyContent: 'center',\n },\n imageContainer: {\n position: 'relative',\n width: 'fit-content',\n },\n stage: {\n left: 0,\n top: 0,\n position: 'absolute',\n },\n resize: {\n borderBottom: `1px solid ${color.disabled()}`,\n borderRight: `1px solid ${color.disabled()}`,\n bottom: '-10px',\n cursor: 'se-resize',\n height: '10px',\n position: 'absolute',\n right: '-10px',\n width: '10px',\n },\n});\n\nContainer.propTypes = {\n classes: PropTypes.object.isRequired,\n dimensions: PropTypes.object.isRequired,\n disabled: PropTypes.bool.isRequired,\n hotspotColor: PropTypes.string.isRequired,\n hoverOutlineColor: PropTypes.string,\n imageUrl: PropTypes.string.isRequired,\n isEvaluateMode: PropTypes.bool.isRequired,\n onSelectChoice: PropTypes.func.isRequired,\n outlineColor: PropTypes.string.isRequired,\n selectedHotspotColor: PropTypes.string,\n session: PropTypes.object.isRequired,\n shapes: PropTypes.object.isRequired,\n strokeWidth: PropTypes.number,\n scale: PropTypes.number,\n showCorrect: PropTypes.bool,\n};\n\nContainer.defaultProps = {\n scale: 1,\n};\n\nexport default withStyles(styles)(Container);\n"],"file":"container.js"}
1
+ {"version":3,"file":"container.js","names":["_react","_interopRequireDefault","require","_propTypes","_reactKonva","_styles","_rectangle","_polygon","_circle","BaseContainer","styled","theme","marginTop","spacing","marginBottom","position","background","palette","common","white","border","width","ImageContainer","Image","alignItems","display","justifyContent","StyledStage","Stage","left","top","Container","React","Component","constructor","args","_defineProperty2","default","isCorrect","isChecked","selected","isSelected","shape","selectedShape","props","session","answers","filter","answer","id","render","dimensions","withProp","height","heightProp","disabled","hotspotColor","hoverOutlineColor","selectedHotspotColor","imageUrl","isEvaluateMode","outlineColor","onSelectChoice","shapes","rectangles","polygons","circles","scale","SCALE","strokeWidth","showCorrect","createElement","style","padding","alt","src","maxWidth","maxHeight","x","y","Layer","map","correctness","correct","undefined","evaluateText","getEvaluateText","markAsCorrect","key","onClick","showCorrectEnabled","polygon","points","radius","exports","propTypes","PropTypes","object","isRequired","bool","string","func","number","defaultProps","_default"],"sources":["../../src/hotspot/container.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Layer, Stage } from 'react-konva';\nimport { styled } from '@mui/material/styles';\n\nimport Rectangle from './rectangle';\nimport Polygon from './polygon';\nimport Circle from './circle';\n\nconst BaseContainer = styled('div')(({ theme }) => ({\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(2),\n position: 'relative',\n background: theme.palette.common.white,\n border: `${theme.spacing(1)} solid ${theme.palette.common.white}`,\n width: 'fit-content',\n}));\n\nconst ImageContainer = styled('div')({\n position: 'relative',\n width: 'fit-content',\n});\n\nconst Image = styled('img')({\n alignItems: 'center',\n display: 'flex',\n justifyContent: 'center',\n});\n\nconst StyledStage = styled(Stage)({\n left: 0,\n top: 0,\n position: 'absolute',\n});\n\nexport class Container extends React.Component {\n isSelected(shape) {\n const selectedShape = this.props.session.answers.filter((answer) => answer.id === shape.id)[0];\n return !!selectedShape;\n }\n\n correctness = (isCorrect, isChecked) => (isCorrect ? isChecked : !isChecked);\n\n getEvaluateText = (isCorrect, selected) => {\n if (selected && isCorrect) {\n return 'Correctly\\nselected';\n }\n\n if (selected && !isCorrect) {\n return 'Should not have\\nbeen selected';\n }\n\n if (!selected && isCorrect) {\n return 'Should have\\nbeen selected';\n }\n\n return null;\n };\n\n render() {\n const {\n dimensions: { width: withProp, height: heightProp },\n disabled,\n hotspotColor,\n hoverOutlineColor,\n selectedHotspotColor,\n imageUrl,\n isEvaluateMode,\n outlineColor,\n onSelectChoice,\n shapes: { rectangles = [], polygons = [], circles = [] },\n scale: SCALE,\n strokeWidth,\n showCorrect,\n } = this.props;\n\n const width = withProp * SCALE;\n const height = heightProp * SCALE;\n\n return (\n <BaseContainer style={{ padding: strokeWidth / 2 }}>\n {imageUrl ? (\n <ImageContainer>\n <Image\n alt=\"hotspot-image\"\n height=\"auto\"\n src={imageUrl}\n style={{ width, height, maxWidth: width, maxHeight: height }}\n />\n </ImageContainer>\n ) : null}\n\n <StyledStage\n height={height + strokeWidth}\n width={width + strokeWidth}\n x={strokeWidth / 2}\n y={strokeWidth / 2}\n >\n <Layer>\n {rectangles.map((shape) => {\n const selected = this.isSelected(shape);\n const isCorrect = isEvaluateMode ? this.correctness(shape.correct, selected) : undefined;\n const evaluateText = isEvaluateMode ? this.getEvaluateText(shape.correct, selected) : null;\n const markAsCorrect = !!(isEvaluateMode && showCorrect && shape.correct);\n\n return (\n <Rectangle\n scale={SCALE}\n isEvaluateMode={isEvaluateMode}\n isCorrect={isCorrect}\n evaluateText={evaluateText}\n disabled={disabled}\n selected={selected}\n height={shape.height}\n hotspotColor={hotspotColor}\n hoverOutlineColor={hoverOutlineColor}\n selectedHotspotColor={selectedHotspotColor}\n id={shape.id}\n key={shape.id}\n onClick={onSelectChoice}\n outlineColor={outlineColor}\n width={shape.width}\n x={shape.x}\n y={shape.y}\n strokeWidth={strokeWidth}\n markAsCorrect={markAsCorrect}\n showCorrectEnabled={showCorrect}\n />\n );\n })}\n {polygons.map((polygon) => {\n const selected = this.isSelected(polygon);\n const isCorrect = isEvaluateMode ? this.correctness(polygon.correct, selected) : undefined;\n const evaluateText = isEvaluateMode ? this.getEvaluateText(polygon.correct, selected) : null;\n const markAsCorrect = !!(isEvaluateMode && showCorrect && polygon.correct);\n\n return (\n <Polygon\n scale={SCALE}\n isEvaluateMode={isEvaluateMode}\n isCorrect={!!isCorrect}\n evaluateText={evaluateText}\n disabled={disabled}\n selected={selected}\n hotspotColor={hotspotColor}\n id={polygon.id}\n key={polygon.id}\n onClick={onSelectChoice}\n outlineColor={outlineColor}\n points={polygon.points}\n strokeWidth={strokeWidth}\n markAsCorrect={markAsCorrect}\n selectedHotspotColor={selectedHotspotColor}\n hoverOutlineColor={hoverOutlineColor}\n showCorrectEnabled={showCorrect}\n />\n );\n })}\n {circles.map((shape) => {\n const selected = this.isSelected(shape);\n const isCorrect = isEvaluateMode ? this.correctness(shape.correct, selected) : undefined;\n const evaluateText = isEvaluateMode ? this.getEvaluateText(shape.correct, selected) : null;\n const markAsCorrect = !!(isEvaluateMode && showCorrect && shape.correct);\n\n return (\n <Circle\n scale={SCALE}\n isEvaluateMode={isEvaluateMode}\n isCorrect={isCorrect}\n evaluateText={evaluateText}\n disabled={disabled}\n selected={selected}\n radius={shape.radius}\n hotspotColor={hotspotColor}\n id={shape.id}\n key={shape.id}\n onClick={onSelectChoice}\n outlineColor={outlineColor}\n x={shape.x}\n y={shape.y}\n strokeWidth={strokeWidth}\n markAsCorrect={markAsCorrect}\n selectedHotspotColor={selectedHotspotColor}\n hoverOutlineColor={hoverOutlineColor}\n showCorrectEnabled={showCorrect}\n />\n );\n })}\n </Layer>\n </StyledStage>\n </BaseContainer>\n );\n }\n}\n\nContainer.propTypes = {\n dimensions: PropTypes.object.isRequired,\n disabled: PropTypes.bool.isRequired,\n hotspotColor: PropTypes.string.isRequired,\n hoverOutlineColor: PropTypes.string,\n imageUrl: PropTypes.string.isRequired,\n isEvaluateMode: PropTypes.bool.isRequired,\n onSelectChoice: PropTypes.func.isRequired,\n outlineColor: PropTypes.string.isRequired,\n selectedHotspotColor: PropTypes.string,\n session: PropTypes.object.isRequired,\n shapes: PropTypes.object.isRequired,\n strokeWidth: PropTypes.number,\n scale: PropTypes.number,\n showCorrect: PropTypes.bool,\n};\n\nContainer.defaultProps = {\n scale: 1,\n};\n\nexport default Container;\n"],"mappings":"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","ignoreList":[]}