@pie-element/hotspot 5.7.1-beta.1 → 5.7.1-beta.4
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/button.js +51 -0
- package/configure/lib/button.js.map +1 -0
- package/configure/lib/defaults.js +82 -0
- package/configure/lib/defaults.js.map +1 -0
- package/configure/lib/hotspot-container.js +350 -0
- package/configure/lib/hotspot-container.js.map +1 -0
- package/configure/lib/hotspot-drawable.js +397 -0
- package/configure/lib/hotspot-drawable.js.map +1 -0
- package/configure/lib/hotspot-palette.js +126 -0
- package/configure/lib/hotspot-palette.js.map +1 -0
- package/configure/lib/hotspot-polygon.js +170 -0
- package/configure/lib/hotspot-polygon.js.map +1 -0
- package/configure/lib/hotspot-rectangle.js +123 -0
- package/configure/lib/hotspot-rectangle.js.map +1 -0
- package/configure/lib/index.js +177 -0
- package/configure/lib/index.js.map +1 -0
- package/configure/lib/root.js +359 -0
- package/configure/lib/root.js.map +1 -0
- package/configure/lib/upload-control.js +58 -0
- package/configure/lib/upload-control.js.map +1 -0
- package/configure/lib/utils.js +137 -0
- package/configure/lib/utils.js.map +1 -0
- package/configure/package.json +2 -2
- package/controller/lib/defaults.js +26 -0
- package/controller/lib/defaults.js.map +1 -0
- package/controller/lib/index.js +221 -0
- package/controller/lib/index.js.map +1 -0
- package/controller/lib/utils.js +39 -0
- package/controller/lib/utils.js.map +1 -0
- package/lib/hotspot/container.js +211 -0
- package/lib/hotspot/container.js.map +1 -0
- package/lib/hotspot/icons.js +8 -0
- package/lib/hotspot/icons.js.map +1 -0
- package/lib/hotspot/image.js +113 -0
- package/lib/hotspot/image.js.map +1 -0
- package/lib/hotspot/index.js +174 -0
- package/lib/hotspot/index.js.map +1 -0
- package/lib/hotspot/polygon.js +197 -0
- package/lib/hotspot/polygon.js.map +1 -0
- package/lib/hotspot/rectangle.js +179 -0
- package/lib/hotspot/rectangle.js.map +1 -0
- package/lib/index.js +87 -0
- package/lib/index.js.map +1 -0
- package/lib/session-updater.js +27 -0
- package/lib/session-updater.js.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,359 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = exports.Root = void 0;
|
|
8
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
9
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
10
|
+
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
11
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
12
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
13
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
14
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
15
|
+
var _react = _interopRequireDefault(require("react"));
|
|
16
|
+
var _configUi = require("@pie-lib/config-ui");
|
|
17
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
18
|
+
var _editableHtml = _interopRequireDefault(require("@pie-lib/editable-html"));
|
|
19
|
+
var _styles = require("@material-ui/core/styles");
|
|
20
|
+
var _Typography = _interopRequireDefault(require("@material-ui/core/Typography"));
|
|
21
|
+
var _Info = _interopRequireDefault(require("@material-ui/icons/Info"));
|
|
22
|
+
var _Tooltip = _interopRequireDefault(require("@material-ui/core/Tooltip"));
|
|
23
|
+
var _hotspotPalette = _interopRequireDefault(require("./hotspot-palette"));
|
|
24
|
+
var _hotspotContainer = _interopRequireDefault(require("./hotspot-container"));
|
|
25
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
26
|
+
var _utils = require("./utils");
|
|
27
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
28
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
29
|
+
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); }; }
|
|
30
|
+
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; } }
|
|
31
|
+
var Panel = _configUi.settings.Panel,
|
|
32
|
+
toggle = _configUi.settings.toggle;
|
|
33
|
+
var Root = /*#__PURE__*/function (_React$Component) {
|
|
34
|
+
(0, _inherits2["default"])(Root, _React$Component);
|
|
35
|
+
var _super = _createSuper(Root);
|
|
36
|
+
function Root() {
|
|
37
|
+
var _this;
|
|
38
|
+
(0, _classCallCheck2["default"])(this, Root);
|
|
39
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
40
|
+
args[_key] = arguments[_key];
|
|
41
|
+
}
|
|
42
|
+
_this = _super.call.apply(_super, [this].concat(args));
|
|
43
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleColorChange", function (fieldType, color) {
|
|
44
|
+
var onColorChanged = _this.props.onColorChanged;
|
|
45
|
+
var cType = "".concat(fieldType, "Color");
|
|
46
|
+
onColorChanged(cType, color);
|
|
47
|
+
});
|
|
48
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleOnUpdateImageDimensions", function (value, resizeType) {
|
|
49
|
+
var _this$props = _this.props,
|
|
50
|
+
_this$props$model = _this$props.model,
|
|
51
|
+
dimensions = _this$props$model.dimensions,
|
|
52
|
+
shapes = _this$props$model.shapes,
|
|
53
|
+
_this$props$configura = _this$props.configuration.preserveAspectRatio,
|
|
54
|
+
preserveAspectRatio = _this$props$configura === void 0 ? {} : _this$props$configura,
|
|
55
|
+
onUpdateImageDimension = _this$props.onUpdateImageDimension,
|
|
56
|
+
onUpdateShapes = _this$props.onUpdateShapes;
|
|
57
|
+
var nextImageDimensions = _objectSpread(_objectSpread({}, dimensions), {}, (0, _defineProperty2["default"])({}, resizeType, value));
|
|
58
|
+
|
|
59
|
+
// if preserveAspectRatio.enabled, updateImageDimensions function makes sure aspect ratio is kept
|
|
60
|
+
var updatedDimensions = (0, _utils.updateImageDimensions)(dimensions, nextImageDimensions, preserveAspectRatio.enabled, resizeType);
|
|
61
|
+
// transform shapes map into shapes array
|
|
62
|
+
var shapesArray = (0, _utils.getAllShapes)(shapes);
|
|
63
|
+
// transform all the shapes to fit the re-sized image
|
|
64
|
+
var updatedShapes = (0, _utils.getUpdatedShapes)(dimensions, updatedDimensions, shapesArray);
|
|
65
|
+
// transform shapes array back into shapes map
|
|
66
|
+
|
|
67
|
+
onUpdateShapes((0, _utils.groupShapes)(updatedShapes));
|
|
68
|
+
onUpdateImageDimension(updatedDimensions);
|
|
69
|
+
});
|
|
70
|
+
return _this;
|
|
71
|
+
}
|
|
72
|
+
(0, _createClass2["default"])(Root, [{
|
|
73
|
+
key: "render",
|
|
74
|
+
value: function render() {
|
|
75
|
+
var _this2 = this;
|
|
76
|
+
var _this$props2 = this.props,
|
|
77
|
+
classes = _this$props2.classes,
|
|
78
|
+
configuration = _this$props2.configuration,
|
|
79
|
+
model = _this$props2.model,
|
|
80
|
+
imageSupport = _this$props2.imageSupport,
|
|
81
|
+
uploadSoundSupport = _this$props2.uploadSoundSupport,
|
|
82
|
+
onConfigurationChanged = _this$props2.onConfigurationChanged,
|
|
83
|
+
onImageUpload = _this$props2.onImageUpload,
|
|
84
|
+
onModelChangedByConfig = _this$props2.onModelChangedByConfig,
|
|
85
|
+
onPromptChanged = _this$props2.onPromptChanged,
|
|
86
|
+
onRationaleChanged = _this$props2.onRationaleChanged,
|
|
87
|
+
onUpdateImageDimension = _this$props2.onUpdateImageDimension,
|
|
88
|
+
onTeacherInstructionsChanged = _this$props2.onTeacherInstructionsChanged,
|
|
89
|
+
onUpdateShapes = _this$props2.onUpdateShapes;
|
|
90
|
+
var _ref = configuration || {},
|
|
91
|
+
_ref$maxImageWidth = _ref.maxImageWidth,
|
|
92
|
+
maxImageWidth = _ref$maxImageWidth === void 0 ? {} : _ref$maxImageWidth,
|
|
93
|
+
_ref$maxImageHeight = _ref.maxImageHeight,
|
|
94
|
+
maxImageHeight = _ref$maxImageHeight === void 0 ? {} : _ref$maxImageHeight,
|
|
95
|
+
_ref$multipleCorrect = _ref.multipleCorrect,
|
|
96
|
+
multipleCorrect = _ref$multipleCorrect === void 0 ? {} : _ref$multipleCorrect,
|
|
97
|
+
_ref$partialScoring = _ref.partialScoring,
|
|
98
|
+
partialScoring = _ref$partialScoring === void 0 ? {} : _ref$partialScoring,
|
|
99
|
+
_ref$preserveAspectRa = _ref.preserveAspectRatio,
|
|
100
|
+
preserveAspectRatio = _ref$preserveAspectRa === void 0 ? {} : _ref$preserveAspectRa,
|
|
101
|
+
_ref$prompt = _ref.prompt,
|
|
102
|
+
prompt = _ref$prompt === void 0 ? {} : _ref$prompt,
|
|
103
|
+
_ref$rationale = _ref.rationale,
|
|
104
|
+
rationale = _ref$rationale === void 0 ? {} : _ref$rationale,
|
|
105
|
+
settingsPanelDisabled = _ref.settingsPanelDisabled,
|
|
106
|
+
_ref$spellCheck = _ref.spellCheck,
|
|
107
|
+
spellCheck = _ref$spellCheck === void 0 ? {} : _ref$spellCheck,
|
|
108
|
+
_ref$teacherInstructi = _ref.teacherInstructions,
|
|
109
|
+
teacherInstructions = _ref$teacherInstructi === void 0 ? {} : _ref$teacherInstructi,
|
|
110
|
+
_ref$withRubric = _ref.withRubric,
|
|
111
|
+
withRubric = _ref$withRubric === void 0 ? {} : _ref$withRubric;
|
|
112
|
+
var _ref2 = model || {},
|
|
113
|
+
errors = _ref2.errors,
|
|
114
|
+
promptEnabled = _ref2.promptEnabled,
|
|
115
|
+
rationaleEnabled = _ref2.rationaleEnabled,
|
|
116
|
+
spellCheckEnabled = _ref2.spellCheckEnabled,
|
|
117
|
+
teacherInstructionsEnabled = _ref2.teacherInstructionsEnabled,
|
|
118
|
+
toolbarEditorPosition = _ref2.toolbarEditorPosition;
|
|
119
|
+
var _ref3 = errors || {},
|
|
120
|
+
shapesError = _ref3.shapesError,
|
|
121
|
+
selectionsError = _ref3.selectionsError;
|
|
122
|
+
var validationMessage = (0, _utils.generateValidationMessage)(configuration);
|
|
123
|
+
var defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;
|
|
124
|
+
var defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;
|
|
125
|
+
var toolbarOpts = {
|
|
126
|
+
position: toolbarEditorPosition === 'top' ? 'top' : 'bottom'
|
|
127
|
+
};
|
|
128
|
+
var panelSettings = {
|
|
129
|
+
multipleCorrect: multipleCorrect.settings && toggle(multipleCorrect.label),
|
|
130
|
+
partialScoring: partialScoring.settings && toggle(partialScoring.label),
|
|
131
|
+
promptEnabled: prompt.settings && toggle(prompt.label)
|
|
132
|
+
};
|
|
133
|
+
var panelProperties = {
|
|
134
|
+
teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),
|
|
135
|
+
rationaleEnabled: rationale.settings && toggle(rationale.label),
|
|
136
|
+
spellCheckEnabled: spellCheck.settings && toggle(spellCheck.label),
|
|
137
|
+
rubricEnabled: (withRubric === null || withRubric === void 0 ? void 0 : withRubric.settings) && toggle(withRubric === null || withRubric === void 0 ? void 0 : withRubric.label)
|
|
138
|
+
};
|
|
139
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
140
|
+
className: classes.base
|
|
141
|
+
}, /*#__PURE__*/_react["default"].createElement(_configUi.layout.ConfigLayout, {
|
|
142
|
+
hideSettings: settingsPanelDisabled,
|
|
143
|
+
settings: /*#__PURE__*/_react["default"].createElement(Panel, {
|
|
144
|
+
model: model,
|
|
145
|
+
onChangeModel: onModelChangedByConfig,
|
|
146
|
+
configuration: configuration,
|
|
147
|
+
onChangeConfiguration: onConfigurationChanged,
|
|
148
|
+
groups: {
|
|
149
|
+
Settings: panelSettings,
|
|
150
|
+
Properties: panelProperties
|
|
151
|
+
}
|
|
152
|
+
})
|
|
153
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
154
|
+
className: classes.regular
|
|
155
|
+
}, teacherInstructionsEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
|
|
156
|
+
label: teacherInstructions.label,
|
|
157
|
+
className: classes.prompt
|
|
158
|
+
}, /*#__PURE__*/_react["default"].createElement(_editableHtml["default"], {
|
|
159
|
+
markup: model.teacherInstructions || '',
|
|
160
|
+
onChange: onTeacherInstructionsChanged,
|
|
161
|
+
imageSupport: imageSupport,
|
|
162
|
+
nonEmpty: false,
|
|
163
|
+
toolbarOpts: toolbarOpts,
|
|
164
|
+
spellCheck: spellCheckEnabled,
|
|
165
|
+
maxImageWidth: maxImageWidth && maxImageWidth.teacherInstructions || defaultImageMaxWidth,
|
|
166
|
+
maxImageHeight: maxImageHeight && maxImageHeight.teacherInstructions || defaultImageMaxHeight,
|
|
167
|
+
uploadSoundSupport: uploadSoundSupport,
|
|
168
|
+
languageCharactersProps: [{
|
|
169
|
+
language: 'spanish'
|
|
170
|
+
}, {
|
|
171
|
+
language: 'special'
|
|
172
|
+
}]
|
|
173
|
+
})), promptEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
|
|
174
|
+
label: prompt.label,
|
|
175
|
+
className: classes.prompt
|
|
176
|
+
}, /*#__PURE__*/_react["default"].createElement(_editableHtml["default"], {
|
|
177
|
+
markup: model.prompt || '',
|
|
178
|
+
onChange: onPromptChanged,
|
|
179
|
+
imageSupport: imageSupport,
|
|
180
|
+
nonEmpty: false,
|
|
181
|
+
toolbarOpts: toolbarOpts,
|
|
182
|
+
spellCheck: spellCheckEnabled,
|
|
183
|
+
maxImageWidth: defaultImageMaxWidth,
|
|
184
|
+
maxImageHeight: defaultImageMaxHeight,
|
|
185
|
+
uploadSoundSupport: uploadSoundSupport,
|
|
186
|
+
languageCharactersProps: [{
|
|
187
|
+
language: 'spanish'
|
|
188
|
+
}, {
|
|
189
|
+
language: 'special'
|
|
190
|
+
}]
|
|
191
|
+
})), rationaleEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
|
|
192
|
+
label: rationale.label,
|
|
193
|
+
className: classes.prompt
|
|
194
|
+
}, /*#__PURE__*/_react["default"].createElement(_editableHtml["default"], {
|
|
195
|
+
markup: model.rationale || '',
|
|
196
|
+
onChange: onRationaleChanged,
|
|
197
|
+
imageSupport: imageSupport,
|
|
198
|
+
toolbarOpts: toolbarOpts,
|
|
199
|
+
spellCheck: spellCheckEnabled,
|
|
200
|
+
maxImageWidth: maxImageWidth && maxImageWidth.rationale || defaultImageMaxWidth,
|
|
201
|
+
maxImageHeight: maxImageHeight && maxImageHeight.rationale || defaultImageMaxHeight,
|
|
202
|
+
uploadSoundSupport: uploadSoundSupport,
|
|
203
|
+
languageCharactersProps: [{
|
|
204
|
+
language: 'spanish'
|
|
205
|
+
}, {
|
|
206
|
+
language: 'special'
|
|
207
|
+
}]
|
|
208
|
+
})), /*#__PURE__*/_react["default"].createElement("div", {
|
|
209
|
+
className: (0, _classnames["default"])(classes.label, classes.flexContainer)
|
|
210
|
+
}, /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
|
|
211
|
+
className: classes.subheading,
|
|
212
|
+
variant: "subheading"
|
|
213
|
+
}, "Define Hotspot"), /*#__PURE__*/_react["default"].createElement(_Tooltip["default"], {
|
|
214
|
+
classes: {
|
|
215
|
+
tooltip: classes.tooltip
|
|
216
|
+
},
|
|
217
|
+
disableFocusListener: true,
|
|
218
|
+
disableTouchListener: true,
|
|
219
|
+
placement: 'left',
|
|
220
|
+
title: validationMessage
|
|
221
|
+
}, /*#__PURE__*/_react["default"].createElement(_Info["default"], {
|
|
222
|
+
fontSize: 'small',
|
|
223
|
+
color: 'primary',
|
|
224
|
+
style: {
|
|
225
|
+
"float": 'right'
|
|
226
|
+
}
|
|
227
|
+
}))), /*#__PURE__*/_react["default"].createElement(_hotspotPalette["default"], {
|
|
228
|
+
hotspotColor: model.hotspotColor,
|
|
229
|
+
hotspotList: model.hotspotList,
|
|
230
|
+
outlineColor: model.outlineColor,
|
|
231
|
+
outlineList: model.outlineList,
|
|
232
|
+
onHotspotColorChange: function onHotspotColorChange(color) {
|
|
233
|
+
return _this2.handleColorChange('hotspot', color);
|
|
234
|
+
},
|
|
235
|
+
onOutlineColorChange: function onOutlineColorChange(color) {
|
|
236
|
+
return _this2.handleColorChange('outline', color);
|
|
237
|
+
}
|
|
238
|
+
}), /*#__PURE__*/_react["default"].createElement(_hotspotContainer["default"], {
|
|
239
|
+
dimensions: model.dimensions,
|
|
240
|
+
imageUrl: model.imageUrl,
|
|
241
|
+
multipleCorrect: model.multipleCorrect,
|
|
242
|
+
hasErrors: !!shapesError || !!selectionsError,
|
|
243
|
+
hotspotColor: model.hotspotColor,
|
|
244
|
+
outlineColor: model.outlineColor,
|
|
245
|
+
onUpdateImageDimension: onUpdateImageDimension,
|
|
246
|
+
onUpdateShapes: onUpdateShapes,
|
|
247
|
+
onImageUpload: onImageUpload,
|
|
248
|
+
shapes: model.shapes,
|
|
249
|
+
strokeWidth: model.strokeWidth,
|
|
250
|
+
preserveAspectRatioEnabled: preserveAspectRatio.enabled
|
|
251
|
+
}), shapesError && /*#__PURE__*/_react["default"].createElement("div", {
|
|
252
|
+
className: classes.errorText
|
|
253
|
+
}, shapesError), selectionsError && /*#__PURE__*/_react["default"].createElement("div", {
|
|
254
|
+
className: classes.errorText
|
|
255
|
+
}, selectionsError), model.imageUrl && /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
|
|
256
|
+
className: classes.label,
|
|
257
|
+
variant: "subheading"
|
|
258
|
+
}, "Image Dimensions"), /*#__PURE__*/_react["default"].createElement("div", {
|
|
259
|
+
className: classes.dimensions
|
|
260
|
+
}, /*#__PURE__*/_react["default"].createElement(_configUi.NumberTextField, {
|
|
261
|
+
key: "hotspot-manual-width",
|
|
262
|
+
label: "Width",
|
|
263
|
+
value: model.dimensions.width,
|
|
264
|
+
min: 0,
|
|
265
|
+
onChange: function onChange(e, value) {
|
|
266
|
+
return _this2.handleOnUpdateImageDimensions(value, 'width');
|
|
267
|
+
},
|
|
268
|
+
showErrorWhenOutsideRange: true,
|
|
269
|
+
className: classes.field
|
|
270
|
+
}), /*#__PURE__*/_react["default"].createElement(_configUi.NumberTextField, {
|
|
271
|
+
key: "hotspot-manual-height",
|
|
272
|
+
label: "Height",
|
|
273
|
+
value: model.dimensions.height,
|
|
274
|
+
min: 0,
|
|
275
|
+
onChange: function onChange(e, value) {
|
|
276
|
+
return _this2.handleOnUpdateImageDimensions(value, 'height');
|
|
277
|
+
},
|
|
278
|
+
showErrorWhenOutsideRange: true,
|
|
279
|
+
className: classes.field
|
|
280
|
+
}))))));
|
|
281
|
+
}
|
|
282
|
+
}]);
|
|
283
|
+
return Root;
|
|
284
|
+
}(_react["default"].Component);
|
|
285
|
+
exports.Root = Root;
|
|
286
|
+
var styles = function styles(theme) {
|
|
287
|
+
return {
|
|
288
|
+
base: {
|
|
289
|
+
marginTop: theme.spacing.unit * 3
|
|
290
|
+
},
|
|
291
|
+
container: {
|
|
292
|
+
display: 'flex',
|
|
293
|
+
marginTop: theme.spacing.unit
|
|
294
|
+
},
|
|
295
|
+
dimensions: {
|
|
296
|
+
display: 'flex'
|
|
297
|
+
},
|
|
298
|
+
field: {
|
|
299
|
+
flex: 1,
|
|
300
|
+
width: '90%'
|
|
301
|
+
},
|
|
302
|
+
label: {
|
|
303
|
+
marginTop: theme.spacing.unit * 4
|
|
304
|
+
},
|
|
305
|
+
prompt: {
|
|
306
|
+
paddingTop: theme.spacing.unit * 2,
|
|
307
|
+
width: '100%'
|
|
308
|
+
},
|
|
309
|
+
subheading: {
|
|
310
|
+
marginRight: theme.spacing.unit
|
|
311
|
+
},
|
|
312
|
+
regular: {
|
|
313
|
+
marginBottom: theme.spacing.unit * 3
|
|
314
|
+
},
|
|
315
|
+
switchElement: {
|
|
316
|
+
justifyContent: 'space-between',
|
|
317
|
+
margin: 0
|
|
318
|
+
},
|
|
319
|
+
flexContainer: {
|
|
320
|
+
display: 'flex',
|
|
321
|
+
alignItems: 'center'
|
|
322
|
+
},
|
|
323
|
+
tooltip: {
|
|
324
|
+
fontSize: '12px',
|
|
325
|
+
whiteSpace: 'pre',
|
|
326
|
+
maxWidth: '500px'
|
|
327
|
+
},
|
|
328
|
+
errorText: {
|
|
329
|
+
fontSize: '12px',
|
|
330
|
+
color: theme.palette.error.main,
|
|
331
|
+
paddingTop: theme.spacing.unit
|
|
332
|
+
}
|
|
333
|
+
};
|
|
334
|
+
};
|
|
335
|
+
Root.propTypes = {
|
|
336
|
+
classes: _propTypes["default"].object.isRequired,
|
|
337
|
+
configuration: _propTypes["default"].object,
|
|
338
|
+
model: _propTypes["default"].object.isRequired,
|
|
339
|
+
imageSupport: _propTypes["default"].shape({
|
|
340
|
+
add: _propTypes["default"].func,
|
|
341
|
+
"delete": _propTypes["default"].func
|
|
342
|
+
}),
|
|
343
|
+
uploadSoundSupport: _propTypes["default"].shape({
|
|
344
|
+
add: _propTypes["default"].func,
|
|
345
|
+
"delete": _propTypes["default"].func
|
|
346
|
+
}),
|
|
347
|
+
onImageUpload: _propTypes["default"].func.isRequired,
|
|
348
|
+
onColorChanged: _propTypes["default"].func.isRequired,
|
|
349
|
+
onPromptChanged: _propTypes["default"].func.isRequired,
|
|
350
|
+
onUpdateImageDimension: _propTypes["default"].func.isRequired,
|
|
351
|
+
onUpdateShapes: _propTypes["default"].func.isRequired,
|
|
352
|
+
onModelChangedByConfig: _propTypes["default"].func.isRequired,
|
|
353
|
+
onRationaleChanged: _propTypes["default"].func.isRequired,
|
|
354
|
+
onConfigurationChanged: _propTypes["default"].func.isRequired,
|
|
355
|
+
onTeacherInstructionsChanged: _propTypes["default"].func.isRequired
|
|
356
|
+
};
|
|
357
|
+
var _default = (0, _styles.withStyles)(styles)(Root);
|
|
358
|
+
exports["default"] = _default;
|
|
359
|
+
//# sourceMappingURL=root.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"root.js","names":["_react","_interopRequireDefault","require","_configUi","_propTypes","_editableHtml","_styles","_Typography","_Info","_Tooltip","_hotspotPalette","_hotspotContainer","_classnames","_utils","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","Reflect","construct","_possibleConstructorReturn2","sham","Proxy","Boolean","prototype","valueOf","call","e","Panel","settings","toggle","Root","_React$Component","_inherits2","_super","_this","_classCallCheck2","_len","args","Array","_key","concat","_assertThisInitialized2","fieldType","color","onColorChanged","props","cType","value","resizeType","_this$props","_this$props$model","model","dimensions","shapes","_this$props$configura","configuration","preserveAspectRatio","onUpdateImageDimension","onUpdateShapes","nextImageDimensions","updatedDimensions","updateImageDimensions","enabled","shapesArray","getAllShapes","updatedShapes","getUpdatedShapes","groupShapes","_createClass2","render","_this2","_this$props2","classes","imageSupport","uploadSoundSupport","onConfigurationChanged","onImageUpload","onModelChangedByConfig","onPromptChanged","onRationaleChanged","onTeacherInstructionsChanged","_ref","_ref$maxImageWidth","maxImageWidth","_ref$maxImageHeight","maxImageHeight","_ref$multipleCorrect","multipleCorrect","_ref$partialScoring","partialScoring","_ref$preserveAspectRa","_ref$prompt","prompt","_ref$rationale","rationale","settingsPanelDisabled","_ref$spellCheck","spellCheck","_ref$teacherInstructi","teacherInstructions","_ref$withRubric","withRubric","_ref2","errors","promptEnabled","rationaleEnabled","spellCheckEnabled","teacherInstructionsEnabled","toolbarEditorPosition","_ref3","shapesError","selectionsError","validationMessage","generateValidationMessage","defaultImageMaxWidth","defaultImageMaxHeight","toolbarOpts","position","panelSettings","label","panelProperties","rubricEnabled","createElement","className","base","layout","ConfigLayout","hideSettings","onChangeModel","onChangeConfiguration","groups","Settings","Properties","regular","InputContainer","markup","onChange","nonEmpty","languageCharactersProps","language","classNames","flexContainer","subheading","variant","tooltip","disableFocusListener","disableTouchListener","placement","title","fontSize","style","hotspotColor","hotspotList","outlineColor","outlineList","onHotspotColorChange","handleColorChange","onOutlineColorChange","imageUrl","hasErrors","strokeWidth","preserveAspectRatioEnabled","errorText","NumberTextField","width","min","handleOnUpdateImageDimensions","showErrorWhenOutsideRange","field","height","React","Component","exports","styles","theme","marginTop","spacing","unit","container","display","flex","paddingTop","marginRight","marginBottom","switchElement","justifyContent","margin","alignItems","whiteSpace","maxWidth","palette","error","main","propTypes","PropTypes","isRequired","shape","add","func","_default","withStyles"],"sources":["../src/root.jsx"],"sourcesContent":["import React from 'react';\nimport { settings, layout, InputContainer, NumberTextField } from '@pie-lib/config-ui';\nimport PropTypes from 'prop-types';\nimport EditableHtml from '@pie-lib/editable-html';\nimport { withStyles } from '@material-ui/core/styles';\nimport Typography from '@material-ui/core/Typography';\nimport Info from '@material-ui/icons/Info';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport HotspotPalette from './hotspot-palette';\nimport HotspotContainer from './hotspot-container';\nimport classNames from 'classnames';\nimport { updateImageDimensions, generateValidationMessage, getUpdatedShapes, getAllShapes, groupShapes } from './utils';\n\nconst { Panel, toggle } = settings;\n\nexport class Root extends React.Component {\n handleColorChange = (fieldType, color) => {\n const { onColorChanged } = this.props;\n const cType = `${fieldType}Color`;\n\n onColorChanged(cType, color);\n };\n\n handleOnUpdateImageDimensions = (value, resizeType) => {\n const {\n model: { dimensions, shapes },\n configuration: { preserveAspectRatio = {} },\n onUpdateImageDimension,\n onUpdateShapes,\n } = this.props;\n\n const nextImageDimensions = { ...dimensions, [resizeType]: value };\n\n // if preserveAspectRatio.enabled, updateImageDimensions function makes sure aspect ratio is kept\n const updatedDimensions = updateImageDimensions(\n dimensions,\n nextImageDimensions,\n preserveAspectRatio.enabled,\n resizeType,\n );\n // transform shapes map into shapes array\n const shapesArray = getAllShapes(shapes);\n // transform all the shapes to fit the re-sized image\n const updatedShapes = getUpdatedShapes(dimensions, updatedDimensions, shapesArray);\n // transform shapes array back into shapes map\n\n onUpdateShapes(groupShapes(updatedShapes));\n onUpdateImageDimension(updatedDimensions);\n };\n\n render() {\n const {\n classes,\n configuration,\n model,\n imageSupport,\n uploadSoundSupport,\n onConfigurationChanged,\n onImageUpload,\n onModelChangedByConfig,\n onPromptChanged,\n onRationaleChanged,\n onUpdateImageDimension,\n onTeacherInstructionsChanged,\n onUpdateShapes,\n } = this.props;\n const {\n maxImageWidth = {},\n maxImageHeight = {},\n multipleCorrect = {},\n partialScoring = {},\n preserveAspectRatio = {},\n prompt = {},\n rationale = {},\n settingsPanelDisabled,\n spellCheck = {},\n teacherInstructions = {},\n withRubric = {},\n } = configuration || {};\n const {\n errors,\n promptEnabled,\n rationaleEnabled,\n spellCheckEnabled,\n teacherInstructionsEnabled,\n toolbarEditorPosition,\n } = model || {};\n const { shapesError, selectionsError } = errors || {};\n const validationMessage = generateValidationMessage(configuration);\n\n const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;\n const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;\n\n const toolbarOpts = {\n position: toolbarEditorPosition === 'top' ? 'top' : 'bottom',\n };\n\n const panelSettings = {\n multipleCorrect: multipleCorrect.settings && toggle(multipleCorrect.label),\n partialScoring: partialScoring.settings && toggle(partialScoring.label),\n promptEnabled: prompt.settings && toggle(prompt.label),\n };\n const panelProperties = {\n teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),\n rationaleEnabled: rationale.settings && toggle(rationale.label),\n spellCheckEnabled: spellCheck.settings && toggle(spellCheck.label),\n rubricEnabled: withRubric?.settings && toggle(withRubric?.label),\n };\n\n return (\n <div className={classes.base}>\n <layout.ConfigLayout\n hideSettings={settingsPanelDisabled}\n settings={\n <Panel\n model={model}\n onChangeModel={onModelChangedByConfig}\n configuration={configuration}\n onChangeConfiguration={onConfigurationChanged}\n groups={{\n Settings: panelSettings,\n Properties: panelProperties,\n }}\n />\n }\n >\n <div className={classes.regular}>\n {teacherInstructionsEnabled && (\n <InputContainer label={teacherInstructions.label} className={classes.prompt}>\n <EditableHtml\n markup={model.teacherInstructions || ''}\n onChange={onTeacherInstructionsChanged}\n imageSupport={imageSupport}\n nonEmpty={false}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n maxImageWidth={(maxImageWidth && maxImageWidth.teacherInstructions) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.teacherInstructions) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n />\n </InputContainer>\n )}\n\n {promptEnabled && (\n <InputContainer label={prompt.label} className={classes.prompt}>\n <EditableHtml\n markup={model.prompt || ''}\n onChange={onPromptChanged}\n imageSupport={imageSupport}\n nonEmpty={false}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n maxImageWidth={defaultImageMaxWidth}\n maxImageHeight={defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n />\n </InputContainer>\n )}\n\n {rationaleEnabled && (\n <InputContainer label={rationale.label} className={classes.prompt}>\n <EditableHtml\n markup={model.rationale || ''}\n onChange={onRationaleChanged}\n imageSupport={imageSupport}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n maxImageWidth={(maxImageWidth && maxImageWidth.rationale) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.rationale) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n />\n </InputContainer>\n )}\n\n <div className={classNames(classes.label, classes.flexContainer)}>\n <Typography className={classes.subheading} variant=\"subheading\">\n Define Hotspot\n </Typography>\n <Tooltip\n classes={{ tooltip: classes.tooltip }}\n disableFocusListener\n disableTouchListener\n placement={'left'}\n title={validationMessage}\n >\n <Info fontSize={'small'} color={'primary'} style={{ float: 'right' }} />\n </Tooltip>\n </div>\n\n <HotspotPalette\n hotspotColor={model.hotspotColor}\n hotspotList={model.hotspotList}\n outlineColor={model.outlineColor}\n outlineList={model.outlineList}\n onHotspotColorChange={(color) => this.handleColorChange('hotspot', color)}\n onOutlineColorChange={(color) => this.handleColorChange('outline', color)}\n />\n\n <HotspotContainer\n dimensions={model.dimensions}\n imageUrl={model.imageUrl}\n multipleCorrect={model.multipleCorrect}\n hasErrors={!!shapesError || !!selectionsError}\n hotspotColor={model.hotspotColor}\n outlineColor={model.outlineColor}\n onUpdateImageDimension={onUpdateImageDimension}\n onUpdateShapes={onUpdateShapes}\n onImageUpload={onImageUpload}\n shapes={model.shapes}\n strokeWidth={model.strokeWidth}\n preserveAspectRatioEnabled={preserveAspectRatio.enabled}\n />\n {shapesError && <div className={classes.errorText}>{shapesError}</div>}\n {selectionsError && <div className={classes.errorText}>{selectionsError}</div>}\n\n {model.imageUrl && (\n <div>\n <Typography className={classes.label} variant=\"subheading\">\n Image Dimensions\n </Typography>\n\n <div className={classes.dimensions}>\n <NumberTextField\n key=\"hotspot-manual-width\"\n label=\"Width\"\n value={model.dimensions.width}\n min={0}\n onChange={(e, value) => this.handleOnUpdateImageDimensions(value, 'width')}\n showErrorWhenOutsideRange\n className={classes.field}\n />\n\n <NumberTextField\n key=\"hotspot-manual-height\"\n label=\"Height\"\n value={model.dimensions.height}\n min={0}\n onChange={(e, value) => this.handleOnUpdateImageDimensions(value, 'height')}\n showErrorWhenOutsideRange\n className={classes.field}\n />\n </div>\n </div>\n )}\n </div>\n </layout.ConfigLayout>\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n base: {\n marginTop: theme.spacing.unit * 3,\n },\n container: {\n display: 'flex',\n marginTop: theme.spacing.unit,\n },\n dimensions: {\n display: 'flex',\n },\n field: {\n flex: 1,\n width: '90%',\n },\n label: {\n marginTop: theme.spacing.unit * 4,\n },\n prompt: {\n paddingTop: theme.spacing.unit * 2,\n width: '100%',\n },\n subheading: {\n marginRight: theme.spacing.unit,\n },\n regular: {\n marginBottom: theme.spacing.unit * 3,\n },\n switchElement: {\n justifyContent: 'space-between',\n margin: 0,\n },\n flexContainer: {\n display: 'flex',\n alignItems: 'center',\n },\n tooltip: {\n fontSize: '12px',\n whiteSpace: 'pre',\n maxWidth: '500px',\n },\n errorText: {\n fontSize: '12px',\n color: theme.palette.error.main,\n paddingTop: theme.spacing.unit,\n },\n});\n\nRoot.propTypes = {\n classes: PropTypes.object.isRequired,\n configuration: PropTypes.object,\n model: PropTypes.object.isRequired,\n imageSupport: PropTypes.shape({\n add: PropTypes.func,\n delete: PropTypes.func,\n }),\n uploadSoundSupport: PropTypes.shape({\n add: PropTypes.func,\n delete: PropTypes.func,\n }),\n onImageUpload: PropTypes.func.isRequired,\n onColorChanged: PropTypes.func.isRequired,\n onPromptChanged: PropTypes.func.isRequired,\n onUpdateImageDimension: PropTypes.func.isRequired,\n onUpdateShapes: PropTypes.func.isRequired,\n onModelChangedByConfig: PropTypes.func.isRequired,\n onRationaleChanged: PropTypes.func.isRequired,\n onConfigurationChanged: PropTypes.func.isRequired,\n onTeacherInstructionsChanged: PropTypes.func.isRequired,\n};\n\nexport default withStyles(styles)(Root);\n"],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = void 0;
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
10
|
+
var _index = require("@material-ui/core/styles/index");
|
|
11
|
+
var _button = _interopRequireDefault(require("./button"));
|
|
12
|
+
var UploadControl = function UploadControl(_ref) {
|
|
13
|
+
var classNameButton = _ref.classNameButton,
|
|
14
|
+
classNameSection = _ref.classNameSection,
|
|
15
|
+
classes = _ref.classes,
|
|
16
|
+
label = _ref.label,
|
|
17
|
+
onInputClick = _ref.onInputClick,
|
|
18
|
+
onUploadImage = _ref.onUploadImage,
|
|
19
|
+
setRef = _ref.setRef;
|
|
20
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
21
|
+
className: classNameSection
|
|
22
|
+
}, /*#__PURE__*/_react["default"].createElement(_button["default"], {
|
|
23
|
+
className: classNameButton,
|
|
24
|
+
label: label,
|
|
25
|
+
onClick: onInputClick
|
|
26
|
+
}), /*#__PURE__*/_react["default"].createElement("input", {
|
|
27
|
+
accept: "image/*",
|
|
28
|
+
className: classes.input,
|
|
29
|
+
onChange: onUploadImage,
|
|
30
|
+
ref: function ref(_ref2) {
|
|
31
|
+
setRef(_ref2);
|
|
32
|
+
},
|
|
33
|
+
type: "file"
|
|
34
|
+
}));
|
|
35
|
+
};
|
|
36
|
+
var styles = function styles() {
|
|
37
|
+
return {
|
|
38
|
+
input: {
|
|
39
|
+
display: 'none'
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
};
|
|
43
|
+
UploadControl.propTypes = {
|
|
44
|
+
classes: _propTypes["default"].object.isRequired,
|
|
45
|
+
classNameButton: _propTypes["default"].string,
|
|
46
|
+
classNameSection: _propTypes["default"].string,
|
|
47
|
+
label: _propTypes["default"].string.isRequired,
|
|
48
|
+
onInputClick: _propTypes["default"].func.isRequired,
|
|
49
|
+
onUploadImage: _propTypes["default"].func.isRequired,
|
|
50
|
+
setRef: _propTypes["default"].func.isRequired
|
|
51
|
+
};
|
|
52
|
+
UploadControl.defaultProps = {
|
|
53
|
+
classNameButton: '',
|
|
54
|
+
classNameSection: ''
|
|
55
|
+
};
|
|
56
|
+
var _default = (0, _index.withStyles)(styles)(UploadControl);
|
|
57
|
+
exports["default"] = _default;
|
|
58
|
+
//# sourceMappingURL=upload-control.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upload-control.js","names":["_react","_interopRequireDefault","require","_propTypes","_index","_button","UploadControl","_ref","classNameButton","classNameSection","classes","label","onInputClick","onUploadImage","setRef","createElement","className","onClick","accept","input","onChange","ref","type","styles","display","propTypes","PropTypes","object","isRequired","string","func","defaultProps","_default","withStyles","exports"],"sources":["../src/upload-control.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles/index';\n\nimport Button from './button';\n\nconst UploadControl = ({ classNameButton, classNameSection, classes, label, onInputClick, onUploadImage, setRef }) => (\n <div className={classNameSection}>\n <Button className={classNameButton} label={label} onClick={onInputClick} />\n <input\n accept=\"image/*\"\n className={classes.input}\n onChange={onUploadImage}\n ref={(ref) => {\n setRef(ref);\n }}\n type=\"file\"\n />\n </div>\n);\n\nconst styles = () => ({\n input: {\n display: 'none',\n },\n});\n\nUploadControl.propTypes = {\n classes: PropTypes.object.isRequired,\n classNameButton: PropTypes.string,\n classNameSection: PropTypes.string,\n label: PropTypes.string.isRequired,\n onInputClick: PropTypes.func.isRequired,\n onUploadImage: PropTypes.func.isRequired,\n setRef: PropTypes.func.isRequired,\n};\n\nUploadControl.defaultProps = {\n classNameButton: '',\n classNameSection: '',\n};\n\nexport default withStyles(styles)(UploadControl);\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AAEA,IAAAG,OAAA,GAAAJ,sBAAA,CAAAC,OAAA;AAEA,IAAMI,aAAa,GAAG,SAAhBA,aAAaA,CAAAC,IAAA;EAAA,IAAMC,eAAe,GAAAD,IAAA,CAAfC,eAAe;IAAEC,gBAAgB,GAAAF,IAAA,CAAhBE,gBAAgB;IAAEC,OAAO,GAAAH,IAAA,CAAPG,OAAO;IAAEC,KAAK,GAAAJ,IAAA,CAALI,KAAK;IAAEC,YAAY,GAAAL,IAAA,CAAZK,YAAY;IAAEC,aAAa,GAAAN,IAAA,CAAbM,aAAa;IAAEC,MAAM,GAAAP,IAAA,CAANO,MAAM;EAAA,oBAC7Gd,MAAA,YAAAe,aAAA;IAAKC,SAAS,EAAEP;EAAiB,gBAC/BT,MAAA,YAAAe,aAAA,CAACV,OAAA,WAAM;IAACW,SAAS,EAAER,eAAgB;IAACG,KAAK,EAAEA,KAAM;IAACM,OAAO,EAAEL;EAAa,CAAE,CAAC,eAC3EZ,MAAA,YAAAe,aAAA;IACEG,MAAM,EAAC,SAAS;IAChBF,SAAS,EAAEN,OAAO,CAACS,KAAM;IACzBC,QAAQ,EAAEP,aAAc;IACxBQ,GAAG,EAAE,SAAAA,IAACA,KAAG,EAAK;MACZP,MAAM,CAACO,KAAG,CAAC;IACb,CAAE;IACFC,IAAI,EAAC;EAAM,CACZ,CACE,CAAC;AAAA,CACP;AAED,IAAMC,MAAM,GAAG,SAATA,MAAMA,CAAA;EAAA,OAAU;IACpBJ,KAAK,EAAE;MACLK,OAAO,EAAE;IACX;EACF,CAAC;AAAA,CAAC;AAEFlB,aAAa,CAACmB,SAAS,GAAG;EACxBf,OAAO,EAAEgB,qBAAS,CAACC,MAAM,CAACC,UAAU;EACpCpB,eAAe,EAAEkB,qBAAS,CAACG,MAAM;EACjCpB,gBAAgB,EAAEiB,qBAAS,CAACG,MAAM;EAClClB,KAAK,EAAEe,qBAAS,CAACG,MAAM,CAACD,UAAU;EAClChB,YAAY,EAAEc,qBAAS,CAACI,IAAI,CAACF,UAAU;EACvCf,aAAa,EAAEa,qBAAS,CAACI,IAAI,CAACF,UAAU;EACxCd,MAAM,EAAEY,qBAAS,CAACI,IAAI,CAACF;AACzB,CAAC;AAEDtB,aAAa,CAACyB,YAAY,GAAG;EAC3BvB,eAAe,EAAE,EAAE;EACnBC,gBAAgB,EAAE;AACpB,CAAC;AAAC,IAAAuB,QAAA,GAEa,IAAAC,iBAAU,EAACV,MAAM,CAAC,CAACjB,aAAa,CAAC;AAAA4B,OAAA,cAAAF,QAAA"}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.updateImageDimensions = exports.groupShapes = exports.getUpdatedShapes = exports.getUpdatedRectangle = exports.getUpdatedPlygon = exports.getAllShapes = exports.generateValidationMessage = void 0;
|
|
8
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
9
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
10
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
+
var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
|
|
12
|
+
var _excluded = ["group"];
|
|
13
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
14
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
15
|
+
var updateImageDimensions = function updateImageDimensions(initialDim, nextDim, keepAspectRatio, resizeType) {
|
|
16
|
+
// if we want to keep image aspect ratio
|
|
17
|
+
if (keepAspectRatio) {
|
|
18
|
+
var imageAspectRatio = initialDim.width / initialDim.height;
|
|
19
|
+
if (resizeType === 'height') {
|
|
20
|
+
// if we want to change image height => we update the width accordingly
|
|
21
|
+
return {
|
|
22
|
+
width: nextDim.height * imageAspectRatio,
|
|
23
|
+
height: nextDim.height
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
// if we want to change image width => we update the height accordingly
|
|
28
|
+
return {
|
|
29
|
+
width: nextDim.width,
|
|
30
|
+
height: nextDim.width / imageAspectRatio
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
// if we don't want to keep aspect ratio, we just update both values
|
|
35
|
+
return {
|
|
36
|
+
width: nextDim.width,
|
|
37
|
+
height: nextDim.height
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
// referenceInitialValue = the initial value of the Stage
|
|
42
|
+
// referenceNextValue = the next value of the Stage
|
|
43
|
+
// currentValue = the value that has to be re-sized influenced by the changes that were made on the Stage
|
|
44
|
+
exports.updateImageDimensions = updateImageDimensions;
|
|
45
|
+
var getDelta = function getDelta(referenceInitialValue, referenceNextValue, currentValue) {
|
|
46
|
+
return referenceNextValue / referenceInitialValue * currentValue;
|
|
47
|
+
};
|
|
48
|
+
var getUpdatedRectangle = function getUpdatedRectangle(initialDim, nextDim, shape) {
|
|
49
|
+
return _objectSpread(_objectSpread({}, shape), {}, {
|
|
50
|
+
width: getDelta(initialDim.width, nextDim.width, shape.width),
|
|
51
|
+
height: getDelta(initialDim.height, nextDim.height, shape.height),
|
|
52
|
+
x: getDelta(initialDim.width, nextDim.width, shape.x),
|
|
53
|
+
y: getDelta(initialDim.height, nextDim.height, shape.y)
|
|
54
|
+
});
|
|
55
|
+
};
|
|
56
|
+
exports.getUpdatedRectangle = getUpdatedRectangle;
|
|
57
|
+
var getUpdatedPlygon = function getUpdatedPlygon(initialDim, nextDim, shape) {
|
|
58
|
+
return _objectSpread(_objectSpread({}, shape), {}, {
|
|
59
|
+
points: shape.points.map(function (point) {
|
|
60
|
+
return {
|
|
61
|
+
x: getDelta(initialDim.width, nextDim.width, point.x),
|
|
62
|
+
y: getDelta(initialDim.height, nextDim.height, point.y)
|
|
63
|
+
};
|
|
64
|
+
})
|
|
65
|
+
});
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
// initialDim = the initial dimensions: { width, height } of the Stage
|
|
69
|
+
// nextDim = the next dimensions: { width, height } of the Stage
|
|
70
|
+
// shapes = array of shapes that have to be re-sized and re-positioned
|
|
71
|
+
exports.getUpdatedPlygon = getUpdatedPlygon;
|
|
72
|
+
var getUpdatedShapes = function getUpdatedShapes(initialDim, nextDim, shapes) {
|
|
73
|
+
return shapes.map(function (shape) {
|
|
74
|
+
if (shape.group === 'rectangles') {
|
|
75
|
+
return getUpdatedRectangle(initialDim, nextDim, shape);
|
|
76
|
+
}
|
|
77
|
+
if (shape.group === 'polygons') {
|
|
78
|
+
return getUpdatedPlygon(initialDim, nextDim, shape);
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
};
|
|
82
|
+
|
|
83
|
+
// converts shapes map to shapes array
|
|
84
|
+
// example:
|
|
85
|
+
// from: { rectangles: [r1], polygons: [p1, p2]}
|
|
86
|
+
// to: [{ ...r1, group: 'rectangles' }, { ...p1, group: 'polygons' }, { ...p2, group: 'polygons' }]
|
|
87
|
+
// if a shape has index defined, keep it, otherwise initialize it
|
|
88
|
+
// index is used for the UNDO function
|
|
89
|
+
exports.getUpdatedShapes = getUpdatedShapes;
|
|
90
|
+
var getAllShapes = function getAllShapes(shapesMap) {
|
|
91
|
+
shapesMap = shapesMap || {};
|
|
92
|
+
var shapesArray = [];
|
|
93
|
+
var shapesKeys = Object.keys(shapesMap);
|
|
94
|
+
return shapesKeys.length ? shapesKeys.reduce(function (acc, currentShapeKey) {
|
|
95
|
+
return acc.concat(shapesMap[currentShapeKey] ? shapesMap[currentShapeKey].map(function (shape, index) {
|
|
96
|
+
return _objectSpread(_objectSpread({}, shape), {}, {
|
|
97
|
+
group: currentShapeKey,
|
|
98
|
+
index: shape.index || acc.length + index
|
|
99
|
+
});
|
|
100
|
+
}) : []);
|
|
101
|
+
}, shapesArray) : shapesArray;
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
// converts shapes array to shapes map
|
|
105
|
+
// is the reverse of getAllShapes function
|
|
106
|
+
// example:
|
|
107
|
+
// from: [{ ...r1, group: 'rectangles' }, { ...p1, group: 'polygons' }, { ...p2, group: 'polygons' }]
|
|
108
|
+
// to: { rectangles: [r1], polygons: [p1, p2]}
|
|
109
|
+
exports.getAllShapes = getAllShapes;
|
|
110
|
+
var groupShapes = function groupShapes(shapesArray) {
|
|
111
|
+
shapesArray = shapesArray || [];
|
|
112
|
+
var shapesMap = {
|
|
113
|
+
rectangles: [],
|
|
114
|
+
polygons: []
|
|
115
|
+
};
|
|
116
|
+
if (shapesArray.length) {
|
|
117
|
+
return shapesArray.reduce(function (acc, _ref) {
|
|
118
|
+
var group = _ref.group,
|
|
119
|
+
shapeProps = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
|
|
120
|
+
acc[group] = [].concat((0, _toConsumableArray2["default"])(acc[group] || []), [shapeProps]);
|
|
121
|
+
return acc;
|
|
122
|
+
}, shapesMap);
|
|
123
|
+
}
|
|
124
|
+
return (0, _cloneDeep["default"])(shapesMap);
|
|
125
|
+
};
|
|
126
|
+
exports.groupShapes = groupShapes;
|
|
127
|
+
var generateValidationMessage = function generateValidationMessage(config) {
|
|
128
|
+
var minShapes = config.minShapes,
|
|
129
|
+
maxShapes = config.maxShapes,
|
|
130
|
+
maxSelections = config.maxSelections;
|
|
131
|
+
var shapesMessage = "\nThere should be at least ".concat(minShapes, " ") + (maxShapes ? "and at most ".concat(maxShapes, " ") : '') + 'shapes defined.';
|
|
132
|
+
var selectionsMessage = "\nThere should be at least 1 " + (maxSelections ? "and at most ".concat(maxSelections, " ") : '') + 'shape' + (maxSelections ? 's' : '') + ' selected.';
|
|
133
|
+
var message = 'Validation requirements:' + shapesMessage + selectionsMessage;
|
|
134
|
+
return message;
|
|
135
|
+
};
|
|
136
|
+
exports.generateValidationMessage = generateValidationMessage;
|
|
137
|
+
//# sourceMappingURL=utils.js.map
|