@pie-element/hotspot 9.3.4-next.3 → 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.
- package/configure/lib/DeleteWidget.js +30 -43
- package/configure/lib/DeleteWidget.js.map +1 -1
- package/configure/lib/button.js +26 -45
- package/configure/lib/button.js.map +1 -1
- package/configure/lib/buttons/circle.js +20 -27
- package/configure/lib/buttons/circle.js.map +1 -1
- package/configure/lib/buttons/polygon.js +26 -33
- package/configure/lib/buttons/polygon.js.map +1 -1
- package/configure/lib/buttons/rectangle.js +26 -33
- package/configure/lib/buttons/rectangle.js.map +1 -1
- package/configure/lib/defaults.js +2 -3
- package/configure/lib/defaults.js.map +1 -1
- package/configure/lib/hotspot-circle.js +132 -198
- package/configure/lib/hotspot-circle.js.map +1 -1
- package/configure/lib/hotspot-container.js +250 -355
- package/configure/lib/hotspot-container.js.map +1 -1
- package/configure/lib/hotspot-drawable.js +360 -472
- package/configure/lib/hotspot-drawable.js.map +1 -1
- package/configure/lib/hotspot-palette.js +92 -139
- package/configure/lib/hotspot-palette.js.map +1 -1
- package/configure/lib/hotspot-polygon.js +212 -317
- package/configure/lib/hotspot-polygon.js.map +1 -1
- package/configure/lib/hotspot-rectangle.js +128 -192
- package/configure/lib/hotspot-rectangle.js.map +1 -1
- package/configure/lib/icons.js.map +1 -1
- package/configure/lib/image-konva.js +46 -86
- package/configure/lib/image-konva.js.map +1 -1
- package/configure/lib/index.js +162 -222
- package/configure/lib/index.js.map +1 -1
- package/configure/lib/root.js +301 -393
- package/configure/lib/root.js.map +1 -1
- package/configure/lib/shapes/circle.js +69 -101
- package/configure/lib/shapes/circle.js.map +1 -1
- package/configure/lib/shapes/index.js +4 -12
- package/configure/lib/shapes/index.js.map +1 -1
- package/configure/lib/shapes/polygon.js +64 -96
- package/configure/lib/shapes/polygon.js.map +1 -1
- package/configure/lib/shapes/rectagle.js +69 -101
- package/configure/lib/shapes/rectagle.js.map +1 -1
- package/configure/lib/shapes/utils.js +2 -8
- package/configure/lib/shapes/utils.js.map +1 -1
- package/configure/lib/upload-control.js +25 -52
- package/configure/lib/upload-control.js.map +1 -1
- package/configure/lib/utils.js +84 -137
- package/configure/lib/utils.js.map +1 -1
- package/configure/package.json +11 -10
- package/configure/src/__tests__/hotspot-container.test.js +50 -19
- package/configure/src/__tests__/hotspot-drawable.test.js +55 -34
- package/configure/src/__tests__/index.test.js +167 -5
- package/configure/src/__tests__/root.test.js +89 -63
- package/configure/src/button.jsx +12 -20
- package/configure/src/hotspot-circle.jsx +5 -18
- package/configure/src/hotspot-container.jsx +82 -98
- package/configure/src/hotspot-drawable.jsx +43 -45
- package/configure/src/hotspot-palette.jsx +45 -37
- package/configure/src/hotspot-polygon.jsx +4 -20
- package/configure/src/hotspot-rectangle.jsx +4 -17
- package/configure/src/index.js +12 -2
- package/configure/src/root.jsx +85 -79
- package/configure/src/upload-control.jsx +6 -16
- package/controller/lib/defaults.js +2 -3
- package/controller/lib/defaults.js.map +1 -1
- package/controller/lib/index.js +151 -205
- package/controller/lib/index.js.map +1 -1
- package/controller/lib/utils.js +14 -34
- package/controller/lib/utils.js.map +1 -1
- package/controller/package.json +2 -2
- package/lib/hotspot/circle.js +110 -169
- package/lib/hotspot/circle.js.map +1 -1
- package/lib/hotspot/container.js +174 -260
- package/lib/hotspot/container.js.map +1 -1
- package/lib/hotspot/icons.js.map +1 -1
- package/lib/hotspot/image-konva-tooltip.js +65 -112
- package/lib/hotspot/image-konva-tooltip.js.map +1 -1
- package/lib/hotspot/index.js +135 -198
- package/lib/hotspot/index.js.map +1 -1
- package/lib/hotspot/polygon.js +150 -214
- package/lib/hotspot/polygon.js.map +1 -1
- package/lib/hotspot/rectangle.js +128 -185
- package/lib/hotspot/rectangle.js.map +1 -1
- package/lib/index.js +187 -256
- package/lib/index.js.map +1 -1
- package/lib/session-updater.js +12 -18
- package/lib/session-updater.js.map +1 -1
- package/package.json +14 -11
- package/src/__tests__/container.test.jsx +27 -175
- package/src/__tests__/index.test.js +70 -30
- package/src/hotspot/circle.jsx +2 -13
- package/src/hotspot/container.jsx +35 -50
- package/src/hotspot/index.jsx +16 -28
- package/src/hotspot/polygon.jsx +4 -13
- package/src/hotspot/rectangle.jsx +5 -15
- package/src/index.js +21 -12
- package/configure/src/__tests__/DeleteWidget.test.js +0 -64
- package/configure/src/__tests__/__snapshots__/hotspot-container.test.js.snap +0 -192
- package/configure/src/__tests__/__snapshots__/hotspot-drawable.test.js.snap +0 -562
- package/configure/src/__tests__/__snapshots__/root.test.js.snap +0 -469
- package/src/__tests__/__snapshots__/container.test.jsx.snap +0 -264
- package/src/__tests__/__snapshots__/index.test.js.snap +0 -81
- package/src/__tests__/__snapshots__/polygon.test.jsx.snap +0 -192
- package/src/__tests__/__snapshots__/rectangle.test.jsx.snap +0 -127
- package/src/__tests__/polygon.test.jsx +0 -230
- package/src/__tests__/rectangle.test.jsx +0 -232
package/lib/hotspot/container.js
CHANGED
|
@@ -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
|
|
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
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
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
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
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
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
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":[]}
|