@pie-element/hotspot 9.1.0 → 9.2.0-mui-update.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 (117) hide show
  1. package/CHANGELOG.md +66 -0
  2. package/configure/CHANGELOG.md +66 -0
  3. package/configure/lib/DeleteWidget.js +31 -44
  4. package/configure/lib/DeleteWidget.js.map +1 -1
  5. package/configure/lib/__tests__/DeleteWidget.test.js +60 -0
  6. package/configure/lib/__tests__/hotspot-container.test.js +377 -0
  7. package/configure/lib/__tests__/hotspot-drawable.test.js +233 -0
  8. package/configure/lib/__tests__/index.test.js +211 -0
  9. package/configure/lib/__tests__/root.test.js +440 -0
  10. package/configure/lib/__tests__/utils.test.js +287 -0
  11. package/configure/lib/button.js +27 -46
  12. package/configure/lib/button.js.map +1 -1
  13. package/configure/lib/buttons/circle.js +21 -28
  14. package/configure/lib/buttons/circle.js.map +1 -1
  15. package/configure/lib/buttons/polygon.js +27 -34
  16. package/configure/lib/buttons/polygon.js.map +1 -1
  17. package/configure/lib/buttons/rectangle.js +27 -34
  18. package/configure/lib/buttons/rectangle.js.map +1 -1
  19. package/configure/lib/defaults.js +3 -4
  20. package/configure/lib/defaults.js.map +1 -1
  21. package/configure/lib/hotspot-circle.js +133 -199
  22. package/configure/lib/hotspot-circle.js.map +1 -1
  23. package/configure/lib/hotspot-container.js +251 -356
  24. package/configure/lib/hotspot-container.js.map +1 -1
  25. package/configure/lib/hotspot-drawable.js +361 -473
  26. package/configure/lib/hotspot-drawable.js.map +1 -1
  27. package/configure/lib/hotspot-palette.js +93 -140
  28. package/configure/lib/hotspot-palette.js.map +1 -1
  29. package/configure/lib/hotspot-polygon.js +213 -318
  30. package/configure/lib/hotspot-polygon.js.map +1 -1
  31. package/configure/lib/hotspot-rectangle.js +129 -193
  32. package/configure/lib/hotspot-rectangle.js.map +1 -1
  33. package/configure/lib/icons.js +1 -1
  34. package/configure/lib/icons.js.map +1 -1
  35. package/configure/lib/image-konva.js +47 -87
  36. package/configure/lib/image-konva.js.map +1 -1
  37. package/configure/lib/index.js +163 -223
  38. package/configure/lib/index.js.map +1 -1
  39. package/configure/lib/root.js +302 -394
  40. package/configure/lib/root.js.map +1 -1
  41. package/configure/lib/shapes/circle.js +70 -102
  42. package/configure/lib/shapes/circle.js.map +1 -1
  43. package/configure/lib/shapes/index.js +5 -13
  44. package/configure/lib/shapes/index.js.map +1 -1
  45. package/configure/lib/shapes/polygon.js +65 -97
  46. package/configure/lib/shapes/polygon.js.map +1 -1
  47. package/configure/lib/shapes/rectagle.js +70 -102
  48. package/configure/lib/shapes/rectagle.js.map +1 -1
  49. package/configure/lib/shapes/utils.js +3 -9
  50. package/configure/lib/shapes/utils.js.map +1 -1
  51. package/configure/lib/upload-control.js +26 -53
  52. package/configure/lib/upload-control.js.map +1 -1
  53. package/configure/lib/utils.js +85 -138
  54. package/configure/lib/utils.js.map +1 -1
  55. package/configure/package.json +11 -10
  56. package/configure/src/__tests__/index.test.js +11 -5
  57. package/configure/src/button.jsx +12 -20
  58. package/configure/src/hotspot-circle.jsx +5 -18
  59. package/configure/src/hotspot-container.jsx +82 -98
  60. package/configure/src/hotspot-drawable.jsx +43 -45
  61. package/configure/src/hotspot-palette.jsx +45 -37
  62. package/configure/src/hotspot-polygon.jsx +4 -20
  63. package/configure/src/hotspot-rectangle.jsx +4 -17
  64. package/configure/src/index.js +12 -2
  65. package/configure/src/root.jsx +85 -79
  66. package/configure/src/upload-control.jsx +6 -16
  67. package/controller/CHANGELOG.md +52 -0
  68. package/controller/lib/__tests__/index.test.js +586 -0
  69. package/controller/lib/__tests__/utils.test.js +8 -0
  70. package/controller/lib/defaults.js +3 -4
  71. package/controller/lib/defaults.js.map +1 -1
  72. package/controller/lib/index.js +152 -206
  73. package/controller/lib/index.js.map +1 -1
  74. package/controller/lib/utils.js +15 -35
  75. package/controller/lib/utils.js.map +1 -1
  76. package/controller/package.json +2 -2
  77. package/docs/demo/pie.manifest.json +11 -0
  78. package/lib/__tests__/container.test.js +221 -0
  79. package/lib/__tests__/index.test.js +113 -0
  80. package/lib/__tests__/polygon.test.js +245 -0
  81. package/lib/__tests__/rectangle.test.js +236 -0
  82. package/lib/__tests__/session-updater.test.js +69 -0
  83. package/lib/hotspot/circle.js +111 -170
  84. package/lib/hotspot/circle.js.map +1 -1
  85. package/lib/hotspot/container.js +175 -261
  86. package/lib/hotspot/container.js.map +1 -1
  87. package/lib/hotspot/icons.js +1 -1
  88. package/lib/hotspot/icons.js.map +1 -1
  89. package/lib/hotspot/image-konva-tooltip.js +66 -113
  90. package/lib/hotspot/image-konva-tooltip.js.map +1 -1
  91. package/lib/hotspot/index.js +136 -199
  92. package/lib/hotspot/index.js.map +1 -1
  93. package/lib/hotspot/polygon.js +151 -215
  94. package/lib/hotspot/polygon.js.map +1 -1
  95. package/lib/hotspot/rectangle.js +130 -186
  96. package/lib/hotspot/rectangle.js.map +1 -1
  97. package/lib/index.js +188 -257
  98. package/lib/index.js.map +1 -1
  99. package/lib/session-updater.js +13 -19
  100. package/lib/session-updater.js.map +1 -1
  101. package/package.json +14 -11
  102. package/src/hotspot/circle.jsx +2 -13
  103. package/src/hotspot/container.jsx +35 -50
  104. package/src/hotspot/index.jsx +16 -28
  105. package/src/hotspot/polygon.jsx +4 -13
  106. package/src/hotspot/rectangle.jsx +4 -13
  107. package/src/index.js +21 -12
  108. package/LICENSE.md +0 -5
  109. package/configure/node_modules/debug/CHANGELOG.md +0 -395
  110. package/configure/node_modules/debug/LICENSE +0 -19
  111. package/configure/node_modules/debug/README.md +0 -437
  112. package/configure/node_modules/debug/node.js +0 -1
  113. package/configure/node_modules/debug/package.json +0 -51
  114. package/configure/node_modules/debug/src/browser.js +0 -180
  115. package/configure/node_modules/debug/src/common.js +0 -249
  116. package/configure/node_modules/debug/src/index.js +0 -12
  117. package/configure/node_modules/debug/src/node.js +0 -177
@@ -1,254 +1,194 @@
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"] = 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
-
22
- var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper"));
23
-
7
+ exports.default = void 0;
24
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
25
-
26
9
  var _react = _interopRequireDefault(require("react"));
27
-
28
- var _reactDom = _interopRequireDefault(require("react-dom"));
29
-
10
+ var _client = require("react-dom/client");
30
11
  var _debug = _interopRequireDefault(require("debug"));
31
-
32
12
  var _pieConfigureEvents = require("@pie-framework/pie-configure-events");
33
-
34
13
  var _root = _interopRequireDefault(require("./root"));
35
-
36
14
  var _defaults = _interopRequireDefault(require("./defaults"));
37
-
38
- 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; }
39
-
40
- 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; }
41
-
42
- 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); }; }
43
-
44
- 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; } }
45
-
46
- var log = (0, _debug["default"])('hotspot:configure');
47
-
48
- var HotspotConfigure = /*#__PURE__*/function (_HTMLElement) {
49
- (0, _inherits2["default"])(HotspotConfigure, _HTMLElement);
50
-
51
- var _super = _createSuper(HotspotConfigure);
52
-
53
- function HotspotConfigure() {
54
- var _this;
55
-
56
- (0, _classCallCheck2["default"])(this, HotspotConfigure);
57
- _this = _super.call(this);
58
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onConfigurationChanged", function (c) {
59
- _this._configuration = c;
60
-
61
- _this._render();
15
+ const log = (0, _debug.default)('hotspot:configure');
16
+ class HotspotConfigure extends HTMLElement {
17
+ constructor() {
18
+ super();
19
+ (0, _defineProperty2.default)(this, "onConfigurationChanged", c => {
20
+ this._configuration = c;
21
+ this._render();
62
22
  });
63
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onModelChangedByConfig", function (m, propertyType) {
64
- var _model = m;
65
-
23
+ (0, _defineProperty2.default)(this, "onModelChangedByConfig", (m, propertyType) => {
24
+ const _model = m;
66
25
  if (propertyType === 'multipleCorrect') {
67
- var _ref = _model.shapes || {},
68
- _ref$rectangles = _ref.rectangles,
69
- rectangles = _ref$rectangles === void 0 ? [] : _ref$rectangles,
70
- _ref$polygons = _ref.polygons,
71
- polygons = _ref$polygons === void 0 ? [] : _ref$polygons,
72
- _ref$circles = _ref.circles,
73
- circles = _ref$circles === void 0 ? [] : _ref$circles;
74
-
75
- _model.shapes.rectangles = rectangles.map(function (shape) {
76
- return _objectSpread(_objectSpread({}, shape), {}, {
77
- correct: false
78
- });
79
- });
80
- _model.shapes.polygons = polygons.map(function (shape) {
81
- return _objectSpread(_objectSpread({}, shape), {}, {
82
- correct: false
83
- });
84
- });
85
- _model.shapes.circles = circles.map(function (shape) {
86
- return _objectSpread(_objectSpread({}, shape), {}, {
87
- correct: false
88
- });
89
- });
26
+ const {
27
+ rectangles = [],
28
+ polygons = [],
29
+ circles = []
30
+ } = _model.shapes || {};
31
+ _model.shapes.rectangles = rectangles.map(shape => ({
32
+ ...shape,
33
+ correct: false
34
+ }));
35
+ _model.shapes.polygons = polygons.map(shape => ({
36
+ ...shape,
37
+ correct: false
38
+ }));
39
+ _model.shapes.circles = circles.map(shape => ({
40
+ ...shape,
41
+ correct: false
42
+ }));
90
43
  }
91
-
92
- _this.onModelChanged(_model);
44
+ this.onModelChanged(_model);
93
45
  });
94
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onColorChanged", function (colorType, color) {
95
- _this.onModelChanged(_objectSpread(_objectSpread({}, _this._model), {}, (0, _defineProperty2["default"])({}, colorType, color)));
46
+ (0, _defineProperty2.default)(this, "onColorChanged", (colorType, color) => {
47
+ this.onModelChanged({
48
+ ...this._model,
49
+ [colorType]: color
50
+ });
96
51
  });
97
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onPromptChanged", function (prompt) {
98
- _this.onModelChanged(_objectSpread(_objectSpread({}, _this._model), {}, {
99
- prompt: prompt
100
- }));
52
+ (0, _defineProperty2.default)(this, "onPromptChanged", prompt => {
53
+ this.onModelChanged({
54
+ ...this._model,
55
+ prompt
56
+ });
101
57
  });
102
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onRationaleChanged", function (rationale) {
103
- _this.onModelChanged(_objectSpread(_objectSpread({}, _this._model), {}, {
104
- rationale: rationale
105
- }));
58
+ (0, _defineProperty2.default)(this, "onRationaleChanged", rationale => {
59
+ this.onModelChanged({
60
+ ...this._model,
61
+ rationale
62
+ });
106
63
  });
107
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onTeacherInstructionsChanged", function (teacherInstructions) {
108
- _this.onModelChanged(_objectSpread(_objectSpread({}, _this._model), {}, {
109
- teacherInstructions: teacherInstructions
110
- }));
64
+ (0, _defineProperty2.default)(this, "onTeacherInstructionsChanged", teacherInstructions => {
65
+ this.onModelChanged({
66
+ ...this._model,
67
+ teacherInstructions
68
+ });
111
69
  });
112
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onUpdateImageDimension", function (dimensions) {
113
- _this.onModelChanged(_objectSpread(_objectSpread({}, _this._model), {}, {
114
- dimensions: dimensions
115
- }));
70
+ (0, _defineProperty2.default)(this, "onUpdateImageDimension", dimensions => {
71
+ this.onModelChanged({
72
+ ...this._model,
73
+ dimensions
74
+ });
116
75
  });
117
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onUpdateShapes", function (shapes) {
118
- _this.onModelChanged(_objectSpread(_objectSpread({}, _this._model), {}, {
119
- shapes: shapes
120
- }));
76
+ (0, _defineProperty2.default)(this, "onUpdateShapes", shapes => {
77
+ this.onModelChanged({
78
+ ...this._model,
79
+ shapes
80
+ });
121
81
  });
122
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onImageUpload", function (imageUrl) {
123
- _this.onModelChanged(_objectSpread(_objectSpread({}, _this._model), {}, {
124
- imageUrl: imageUrl
125
- }));
82
+ (0, _defineProperty2.default)(this, "onImageUpload", imageUrl => {
83
+ this.onModelChanged({
84
+ ...this._model,
85
+ imageUrl
86
+ });
126
87
  });
127
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "insertImage", function (handler) {
128
- _this.dispatchEvent(new _pieConfigureEvents.InsertImageEvent(handler));
88
+ (0, _defineProperty2.default)(this, "insertImage", handler => {
89
+ this.dispatchEvent(new _pieConfigureEvents.InsertImageEvent(handler));
129
90
  });
130
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onDeleteImage", function (src, done) {
131
- _this.dispatchEvent(new _pieConfigureEvents.DeleteImageEvent(src, done));
91
+ (0, _defineProperty2.default)(this, "onDeleteImage", (src, done) => {
92
+ this.dispatchEvent(new _pieConfigureEvents.DeleteImageEvent(src, done));
132
93
  });
133
- _this._model = HotspotConfigure.createDefaultModel();
134
- _this._configuration = _defaults["default"].configuration;
135
- _this.onModelChanged = _this.onModelChanged.bind((0, _assertThisInitialized2["default"])(_this));
136
- return _this;
94
+ this._root = null;
95
+ this._model = HotspotConfigure.createDefaultModel();
96
+ this._configuration = _defaults.default.configuration;
97
+ this.onModelChanged = this.onModelChanged.bind(this);
137
98
  }
138
-
139
- (0, _createClass2["default"])(HotspotConfigure, [{
140
- key: "model",
141
- set: function set(s) {
142
- this._model = HotspotConfigure.createDefaultModel(s);
143
-
144
- this._render();
145
- }
146
- }, {
147
- key: "configuration",
148
- set: function set(c) {
149
- var _newConfiguration$lan,
150
- _this2 = this;
151
-
152
- var newConfiguration = _objectSpread(_objectSpread({}, _defaults["default"].configuration), c);
153
-
154
- this._configuration = newConfiguration; // if language:enabled is true, then the corresponding default item model should include a language value;
155
- // if it is false, then the language field should be omitted from the item model.
156
- // if a default item model includes a language value (e.g., en_US) and the corresponding authoring view settings have language:settings = true,
157
- // then (a) language:enabled should also be true, and (b) that default language value should be represented in languageChoices[] (as a key).
158
-
159
- if (newConfiguration !== null && newConfiguration !== void 0 && (_newConfiguration$lan = newConfiguration.language) !== null && _newConfiguration$lan !== void 0 && _newConfiguration$lan.enabled) {
160
- var _newConfiguration$lan2, _newConfiguration$lan3;
161
-
162
- if (newConfiguration !== null && newConfiguration !== void 0 && (_newConfiguration$lan2 = newConfiguration.languageChoices) !== null && _newConfiguration$lan2 !== void 0 && (_newConfiguration$lan3 = _newConfiguration$lan2.options) !== null && _newConfiguration$lan3 !== void 0 && _newConfiguration$lan3.length) {
163
- this._model.language = newConfiguration === null || newConfiguration === void 0 ? void 0 : newConfiguration.languageChoices.options[0].value;
164
- }
165
- } else if (newConfiguration.language.settings && this._model.language) {
166
- this._configuration.language.enabled = true;
167
-
168
- if (!this._configuration.languageChoices.options || !this._configuration.languageChoices.options.length) {
169
- this._configuration.languageChoices.options = [];
170
- } // check if the language is already included in the languageChoices.options array
171
- // and if not, then add it.
172
-
173
-
174
- if (!this._configuration.languageChoices.options.find(function (option) {
175
- return option.value === _this2._model.language;
176
- })) {
177
- this._configuration.languageChoices.options.push({
178
- value: this._model.language,
179
- label: this._model.language
180
- });
181
- }
182
- } else {
183
- delete this._model.language;
99
+ set model(s) {
100
+ this._model = HotspotConfigure.createDefaultModel(s);
101
+ this._render();
102
+ }
103
+ set configuration(c) {
104
+ const newConfiguration = {
105
+ ..._defaults.default.configuration,
106
+ ...c
107
+ };
108
+ this._configuration = newConfiguration;
109
+
110
+ // if language:enabled is true, then the corresponding default item model should include a language value;
111
+ // if it is false, then the language field should be omitted from the item model.
112
+ // if a default item model includes a language value (e.g., en_US) and the corresponding authoring view settings have language:settings = true,
113
+ // then (a) language:enabled should also be true, and (b) that default language value should be represented in languageChoices[] (as a key).
114
+ if (newConfiguration?.language?.enabled) {
115
+ if (newConfiguration?.languageChoices?.options?.length) {
116
+ this._model.language = newConfiguration?.languageChoices.options[0].value;
117
+ }
118
+ } else if (newConfiguration.language.settings && this._model.language) {
119
+ this._configuration.language.enabled = true;
120
+ if (!this._configuration.languageChoices.options || !this._configuration.languageChoices.options.length) {
121
+ this._configuration.languageChoices.options = [];
184
122
  }
185
123
 
186
- this._render();
187
- }
188
- }, {
189
- key: "dispatchModelUpdated",
190
- value: function dispatchModelUpdated(reset) {
191
- var resetValue = !!reset;
192
- this.dispatchEvent(new _pieConfigureEvents.ModelUpdatedEvent(this._model, resetValue));
193
- }
194
- }, {
195
- key: "onModelChanged",
196
- value: function onModelChanged(m, reset) {
197
- this._model = m;
198
- this.dispatchModelUpdated(reset);
199
-
200
- this._render();
201
- }
202
- }, {
203
- key: "insertSound",
204
- value: function insertSound(handler) {
205
- this.dispatchEvent(new _pieConfigureEvents.InsertSoundEvent(handler));
124
+ // check if the language is already included in the languageChoices.options array
125
+ // and if not, then add it.
126
+ if (!this._configuration.languageChoices.options.find(option => option.value === this._model.language)) {
127
+ this._configuration.languageChoices.options.push({
128
+ value: this._model.language,
129
+ label: this._model.language
130
+ });
131
+ }
132
+ } else {
133
+ delete this._model.language;
206
134
  }
207
- }, {
208
- key: "onDeleteSound",
209
- value: function onDeleteSound(src, done) {
210
- this.dispatchEvent(new _pieConfigureEvents.DeleteSoundEvent(src, done));
135
+ this._render();
136
+ }
137
+ dispatchModelUpdated(reset) {
138
+ const resetValue = !!reset;
139
+ this.dispatchEvent(new _pieConfigureEvents.ModelUpdatedEvent(this._model, resetValue));
140
+ }
141
+ onModelChanged(m, reset) {
142
+ this._model = m;
143
+ this.dispatchModelUpdated(reset);
144
+ this._render();
145
+ }
146
+ insertSound(handler) {
147
+ this.dispatchEvent(new _pieConfigureEvents.InsertSoundEvent(handler));
148
+ }
149
+ onDeleteSound(src, done) {
150
+ this.dispatchEvent(new _pieConfigureEvents.DeleteSoundEvent(src, done));
151
+ }
152
+ _render() {
153
+ log('_render');
154
+ let element = /*#__PURE__*/_react.default.createElement(_root.default, {
155
+ configuration: this._configuration,
156
+ model: this._model,
157
+ onColorChanged: this.onColorChanged,
158
+ onImageUpload: this.onImageUpload,
159
+ onRationaleChanged: this.onRationaleChanged,
160
+ onConfigurationChanged: this.onConfigurationChanged,
161
+ onPromptChanged: this.onPromptChanged,
162
+ onUpdateImageDimension: this.onUpdateImageDimension,
163
+ imageSupport: {
164
+ add: this.insertImage,
165
+ delete: this.onDeleteImage
166
+ },
167
+ uploadSoundSupport: {
168
+ add: this.insertSound.bind(this),
169
+ delete: this.onDeleteSound.bind(this)
170
+ },
171
+ onUpdateShapes: this.onUpdateShapes,
172
+ onModelChangedByConfig: this.onModelChangedByConfig,
173
+ onTeacherInstructionsChanged: this.onTeacherInstructionsChanged
174
+ });
175
+ if (!this._root) {
176
+ this._root = (0, _client.createRoot)(this);
211
177
  }
212
- }, {
213
- key: "_render",
214
- value: function _render() {
215
- log('_render');
216
-
217
- var element = /*#__PURE__*/_react["default"].createElement(_root["default"], {
218
- configuration: this._configuration,
219
- model: this._model,
220
- onColorChanged: this.onColorChanged,
221
- onImageUpload: this.onImageUpload,
222
- onRationaleChanged: this.onRationaleChanged,
223
- onConfigurationChanged: this.onConfigurationChanged,
224
- onPromptChanged: this.onPromptChanged,
225
- onUpdateImageDimension: this.onUpdateImageDimension,
226
- imageSupport: {
227
- add: this.insertImage,
228
- "delete": this.onDeleteImage
229
- },
230
- uploadSoundSupport: {
231
- add: this.insertSound.bind(this),
232
- "delete": this.onDeleteSound.bind(this)
233
- },
234
- onUpdateShapes: this.onUpdateShapes,
235
- onModelChangedByConfig: this.onModelChangedByConfig,
236
- onTeacherInstructionsChanged: this.onTeacherInstructionsChanged
237
- });
238
-
239
- _reactDom["default"].render(element, this);
178
+ this._root.render(element);
179
+ }
180
+ disconnectedCallback() {
181
+ if (this._root) {
182
+ this._root.unmount();
240
183
  }
241
- }]);
242
- return HotspotConfigure;
243
- }( /*#__PURE__*/(0, _wrapNativeSuper2["default"])(HTMLElement));
244
-
245
- exports["default"] = HotspotConfigure;
246
- (0, _defineProperty2["default"])(HotspotConfigure, "createDefaultModel", function () {
247
- var model = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
248
- return _objectSpread(_objectSpread(_objectSpread({}, _defaults["default"].model), model), {}, {
249
- hotspotList: model.hotspotList || [model.hotspotColor] || _defaults["default"].model.hotspotList,
250
- outlineList: model.outlineList || [model.outlineColor] || _defaults["default"].model.outlineList,
251
- shapes: model.shapes || _defaults["default"].model.shapes || {}
252
- });
253
- });
254
- //# sourceMappingURL=index.js.map
184
+ }
185
+ }
186
+ exports.default = HotspotConfigure;
187
+ (0, _defineProperty2.default)(HotspotConfigure, "createDefaultModel", (model = {}) => ({
188
+ ..._defaults.default.model,
189
+ ...model,
190
+ hotspotList: model.hotspotList || [model.hotspotColor] || _defaults.default.model.hotspotList,
191
+ outlineList: model.outlineList || [model.outlineColor] || _defaults.default.model.outlineList,
192
+ shapes: model.shapes || _defaults.default.model.shapes || {}
193
+ }));
194
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9jbGllbnQiLCJfZGVidWciLCJfcGllQ29uZmlndXJlRXZlbnRzIiwiX3Jvb3QiLCJfZGVmYXVsdHMiLCJsb2ciLCJkZWJ1ZyIsIkhvdHNwb3RDb25maWd1cmUiLCJIVE1MRWxlbWVudCIsImNvbnN0cnVjdG9yIiwiX2RlZmluZVByb3BlcnR5MiIsImRlZmF1bHQiLCJjIiwiX2NvbmZpZ3VyYXRpb24iLCJfcmVuZGVyIiwibSIsInByb3BlcnR5VHlwZSIsIl9tb2RlbCIsInJlY3RhbmdsZXMiLCJwb2x5Z29ucyIsImNpcmNsZXMiLCJzaGFwZXMiLCJtYXAiLCJzaGFwZSIsImNvcnJlY3QiLCJvbk1vZGVsQ2hhbmdlZCIsImNvbG9yVHlwZSIsImNvbG9yIiwicHJvbXB0IiwicmF0aW9uYWxlIiwidGVhY2hlckluc3RydWN0aW9ucyIsImRpbWVuc2lvbnMiLCJpbWFnZVVybCIsImhhbmRsZXIiLCJkaXNwYXRjaEV2ZW50IiwiSW5zZXJ0SW1hZ2VFdmVudCIsInNyYyIsImRvbmUiLCJEZWxldGVJbWFnZUV2ZW50IiwiY3JlYXRlRGVmYXVsdE1vZGVsIiwic2Vuc2libGVEZWZhdWx0cyIsImNvbmZpZ3VyYXRpb24iLCJiaW5kIiwibW9kZWwiLCJzIiwibmV3Q29uZmlndXJhdGlvbiIsImxhbmd1YWdlIiwiZW5hYmxlZCIsImxhbmd1YWdlQ2hvaWNlcyIsIm9wdGlvbnMiLCJsZW5ndGgiLCJ2YWx1ZSIsInNldHRpbmdzIiwiZmluZCIsIm9wdGlvbiIsInB1c2giLCJsYWJlbCIsImRpc3BhdGNoTW9kZWxVcGRhdGVkIiwicmVzZXQiLCJyZXNldFZhbHVlIiwiTW9kZWxVcGRhdGVkRXZlbnQiLCJpbnNlcnRTb3VuZCIsIkluc2VydFNvdW5kRXZlbnQiLCJvbkRlbGV0ZVNvdW5kIiwiRGVsZXRlU291bmRFdmVudCIsImVsZW1lbnQiLCJSZWFjdCIsImNyZWF0ZUVsZW1lbnQiLCJSb290Iiwib25Db2xvckNoYW5nZWQiLCJvbkltYWdlVXBsb2FkIiwib25SYXRpb25hbGVDaGFuZ2VkIiwib25Db25maWd1cmF0aW9uQ2hhbmdlZCIsIm9uUHJvbXB0Q2hhbmdlZCIsIm9uVXBkYXRlSW1hZ2VEaW1lbnNpb24iLCJpbWFnZVN1cHBvcnQiLCJhZGQiLCJpbnNlcnRJbWFnZSIsImRlbGV0ZSIsIm9uRGVsZXRlSW1hZ2UiLCJ1cGxvYWRTb3VuZFN1cHBvcnQiLCJvblVwZGF0ZVNoYXBlcyIsIm9uTW9kZWxDaGFuZ2VkQnlDb25maWciLCJvblRlYWNoZXJJbnN0cnVjdGlvbnNDaGFuZ2VkIiwiY3JlYXRlUm9vdCIsInJlbmRlciIsImRpc2Nvbm5lY3RlZENhbGxiYWNrIiwidW5tb3VudCIsImV4cG9ydHMiLCJob3RzcG90TGlzdCIsImhvdHNwb3RDb2xvciIsIm91dGxpbmVMaXN0Iiwib3V0bGluZUNvbG9yIl0sInNvdXJjZXMiOlsiLi4vc3JjL2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjcmVhdGVSb290IH0gZnJvbSAncmVhY3QtZG9tL2NsaWVudCc7XG5pbXBvcnQgZGVidWcgZnJvbSAnZGVidWcnO1xuaW1wb3J0IHtcbiAgTW9kZWxVcGRhdGVkRXZlbnQsXG4gIERlbGV0ZUltYWdlRXZlbnQsXG4gIEluc2VydEltYWdlRXZlbnQsXG4gIEluc2VydFNvdW5kRXZlbnQsXG4gIERlbGV0ZVNvdW5kRXZlbnQsXG59IGZyb20gJ0BwaWUtZnJhbWV3b3JrL3BpZS1jb25maWd1cmUtZXZlbnRzJztcblxuaW1wb3J0IFJvb3QgZnJvbSAnLi9yb290JztcbmltcG9ydCBzZW5zaWJsZURlZmF1bHRzIGZyb20gJy4vZGVmYXVsdHMnO1xuXG5jb25zdCBsb2cgPSBkZWJ1ZygnaG90c3BvdDpjb25maWd1cmUnKTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgSG90c3BvdENvbmZpZ3VyZSBleHRlbmRzIEhUTUxFbGVtZW50IHtcbiAgc3RhdGljIGNyZWF0ZURlZmF1bHRNb2RlbCA9IChtb2RlbCA9IHt9KSA9PiAoe1xuICAgIC4uLnNlbnNpYmxlRGVmYXVsdHMubW9kZWwsXG4gICAgLi4ubW9kZWwsXG4gICAgaG90c3BvdExpc3Q6IG1vZGVsLmhvdHNwb3RMaXN0IHx8IFttb2RlbC5ob3RzcG90Q29sb3JdIHx8IHNlbnNpYmxlRGVmYXVsdHMubW9kZWwuaG90c3BvdExpc3QsXG4gICAgb3V0bGluZUxpc3Q6IG1vZGVsLm91dGxpbmVMaXN0IHx8IFttb2RlbC5vdXRsaW5lQ29sb3JdIHx8IHNlbnNpYmxlRGVmYXVsdHMubW9kZWwub3V0bGluZUxpc3QsXG4gICAgc2hhcGVzOiBtb2RlbC5zaGFwZXMgfHwgc2Vuc2libGVEZWZhdWx0cy5tb2RlbC5zaGFwZXMgfHwge30sXG4gIH0pO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5fcm9vdCA9IG51bGw7XG4gICAgdGhpcy5fbW9kZWwgPSBIb3RzcG90Q29uZmlndXJlLmNyZWF0ZURlZmF1bHRNb2RlbCgpO1xuICAgIHRoaXMuX2NvbmZpZ3VyYXRpb24gPSBzZW5zaWJsZURlZmF1bHRzLmNvbmZpZ3VyYXRpb247XG4gICAgdGhpcy5vbk1vZGVsQ2hhbmdlZCA9IHRoaXMub25Nb2RlbENoYW5nZWQuYmluZCh0aGlzKTtcbiAgfVxuXG4gIHNldCBtb2RlbChzKSB7XG4gICAgdGhpcy5fbW9kZWwgPSBIb3RzcG90Q29uZmlndXJlLmNyZWF0ZURlZmF1bHRNb2RlbChzKTtcbiAgICB0aGlzLl9yZW5kZXIoKTtcbiAgfVxuXG4gIHNldCBjb25maWd1cmF0aW9uKGMpIHtcbiAgICBjb25zdCBuZXdDb25maWd1cmF0aW9uID0ge1xuICAgICAgLi4uc2Vuc2libGVEZWZhdWx0cy5jb25maWd1cmF0aW9uLFxuICAgICAgLi4uYyxcbiAgICB9O1xuXG4gICAgdGhpcy5fY29uZmlndXJhdGlvbiA9IG5ld0NvbmZpZ3VyYXRpb247XG5cbiAgICAvLyBpZiBsYW5ndWFnZTplbmFibGVkIGlzIHRydWUsIHRoZW4gdGhlIGNvcnJlc3BvbmRpbmcgZGVmYXVsdCBpdGVtIG1vZGVsIHNob3VsZCBpbmNsdWRlIGEgbGFuZ3VhZ2UgdmFsdWU7XG4gICAgLy8gaWYgaXQgaXMgZmFsc2UsIHRoZW4gdGhlIGxhbmd1YWdlIGZpZWxkIHNob3VsZCBiZSBvbWl0dGVkIGZyb20gdGhlIGl0ZW0gbW9kZWwuXG4gICAgLy8gaWYgYSBkZWZhdWx0IGl0ZW0gbW9kZWwgaW5jbHVkZXMgYSBsYW5ndWFnZSB2YWx1ZSAoZS5nLiwgZW5fVVMpIGFuZCB0aGUgY29ycmVzcG9uZGluZyBhdXRob3JpbmcgdmlldyBzZXR0aW5ncyBoYXZlIGxhbmd1YWdlOnNldHRpbmdzID0gdHJ1ZSxcbiAgICAvLyB0aGVuIChhKSBsYW5ndWFnZTplbmFibGVkIHNob3VsZCBhbHNvIGJlIHRydWUsIGFuZCAoYikgdGhhdCBkZWZhdWx0IGxhbmd1YWdlIHZhbHVlIHNob3VsZCBiZSByZXByZXNlbnRlZCBpbiBsYW5ndWFnZUNob2ljZXNbXSAoYXMgYSBrZXkpLlxuICAgIGlmIChuZXdDb25maWd1cmF0aW9uPy5sYW5ndWFnZT8uZW5hYmxlZCkge1xuICAgICAgaWYgKG5ld0NvbmZpZ3VyYXRpb24/Lmxhbmd1YWdlQ2hvaWNlcz8ub3B0aW9ucz8ubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMuX21vZGVsLmxhbmd1YWdlID0gbmV3Q29uZmlndXJhdGlvbj8ubGFuZ3VhZ2VDaG9pY2VzLm9wdGlvbnNbMF0udmFsdWU7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChuZXdDb25maWd1cmF0aW9uLmxhbmd1YWdlLnNldHRpbmdzICYmIHRoaXMuX21vZGVsLmxhbmd1YWdlKSB7XG4gICAgICB0aGlzLl9jb25maWd1cmF0aW9uLmxhbmd1YWdlLmVuYWJsZWQgPSB0cnVlO1xuXG4gICAgICBpZiAoIXRoaXMuX2NvbmZpZ3VyYXRpb24ubGFuZ3VhZ2VDaG9pY2VzLm9wdGlvbnMgfHwgIXRoaXMuX2NvbmZpZ3VyYXRpb24ubGFuZ3VhZ2VDaG9pY2VzLm9wdGlvbnMubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMuX2NvbmZpZ3VyYXRpb24ubGFuZ3VhZ2VDaG9pY2VzLm9wdGlvbnMgPSBbXTtcbiAgICAgIH1cblxuICAgICAgLy8gY2hlY2sgaWYgdGhlIGxhbmd1YWdlIGlzIGFscmVhZHkgaW5jbHVkZWQgaW4gdGhlIGxhbmd1YWdlQ2hvaWNlcy5vcHRpb25zIGFycmF5XG4gICAgICAvLyBhbmQgaWYgbm90LCB0aGVuIGFkZCBpdC5cbiAgICAgIGlmICghdGhpcy5fY29uZmlndXJhdGlvbi5sYW5ndWFnZUNob2ljZXMub3B0aW9ucy5maW5kKChvcHRpb24pID0+IG9wdGlvbi52YWx1ZSA9PT0gdGhpcy5fbW9kZWwubGFuZ3VhZ2UpKSB7XG4gICAgICAgIHRoaXMuX2NvbmZpZ3VyYXRpb24ubGFuZ3VhZ2VDaG9pY2VzLm9wdGlvbnMucHVzaCh7XG4gICAgICAgICAgdmFsdWU6IHRoaXMuX21vZGVsLmxhbmd1YWdlLFxuICAgICAgICAgIGxhYmVsOiB0aGlzLl9tb2RlbC5sYW5ndWFnZSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGRlbGV0ZSB0aGlzLl9tb2RlbC5sYW5ndWFnZTtcbiAgICB9XG5cbiAgICB0aGlzLl9yZW5kZXIoKTtcbiAgfVxuXG4gIGRpc3BhdGNoTW9kZWxVcGRhdGVkKHJlc2V0KSB7XG4gICAgY29uc3QgcmVzZXRWYWx1ZSA9ICEhcmVzZXQ7XG5cbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IE1vZGVsVXBkYXRlZEV2ZW50KHRoaXMuX21vZGVsLCByZXNldFZhbHVlKSk7XG4gIH1cblxuICBvbk1vZGVsQ2hhbmdlZChtLCByZXNldCkge1xuICAgIHRoaXMuX21vZGVsID0gbTtcbiAgICB0aGlzLmRpc3BhdGNoTW9kZWxVcGRhdGVkKHJlc2V0KTtcbiAgICB0aGlzLl9yZW5kZXIoKTtcbiAgfVxuXG4gIG9uQ29uZmlndXJhdGlvbkNoYW5nZWQgPSAoYykgPT4ge1xuICAgIHRoaXMuX2NvbmZpZ3VyYXRpb24gPSBjO1xuICAgIHRoaXMuX3JlbmRlcigpO1xuICB9O1xuXG4gIG9uTW9kZWxDaGFuZ2VkQnlDb25maWcgPSAobSwgcHJvcGVydHlUeXBlKSA9PiB7XG4gICAgY29uc3QgX21vZGVsID0gbTtcblxuICAgIGlmIChwcm9wZXJ0eVR5cGUgPT09ICdtdWx0aXBsZUNvcnJlY3QnKSB7XG4gICAgICBjb25zdCB7IHJlY3RhbmdsZXMgPSBbXSwgcG9seWdvbnMgPSBbXSwgY2lyY2xlcyA9IFtdIH0gPSBfbW9kZWwuc2hhcGVzIHx8IHt9O1xuXG4gICAgICBfbW9kZWwuc2hhcGVzLnJlY3RhbmdsZXMgPSByZWN0YW5nbGVzLm1hcCgoc2hhcGUpID0+ICh7IC4uLnNoYXBlLCBjb3JyZWN0OiBmYWxzZSB9KSk7XG4gICAgICBfbW9kZWwuc2hhcGVzLnBvbHlnb25zID0gcG9seWdvbnMubWFwKChzaGFwZSkgPT4gKHsgLi4uc2hhcGUsIGNvcnJlY3Q6IGZhbHNlIH0pKTtcbiAgICAgIF9tb2RlbC5zaGFwZXMuY2lyY2xlcyA9IGNpcmNsZXMubWFwKChzaGFwZSkgPT4gKHsgLi4uc2hhcGUsIGNvcnJlY3Q6IGZhbHNlIH0pKTtcbiAgICB9XG5cbiAgICB0aGlzLm9uTW9kZWxDaGFuZ2VkKF9tb2RlbCk7XG4gIH07XG5cbiAgb25Db2xvckNoYW5nZWQgPSAoY29sb3JUeXBlLCBjb2xvcikgPT4ge1xuICAgIHRoaXMub25Nb2RlbENoYW5nZWQoe1xuICAgICAgLi4udGhpcy5fbW9kZWwsXG4gICAgICBbY29sb3JUeXBlXTogY29sb3IsXG4gICAgfSk7XG4gIH07XG5cbiAgb25Qcm9tcHRDaGFuZ2VkID0gKHByb21wdCkgPT4ge1xuICAgIHRoaXMub25Nb2RlbENoYW5nZWQoe1xuICAgICAgLi4udGhpcy5fbW9kZWwsXG4gICAgICBwcm9tcHQsXG4gICAgfSk7XG4gIH07XG5cbiAgb25SYXRpb25hbGVDaGFuZ2VkID0gKHJhdGlvbmFsZSkgPT4ge1xuICAgIHRoaXMub25Nb2RlbENoYW5nZWQoe1xuICAgICAgLi4udGhpcy5fbW9kZWwsXG4gICAgICByYXRpb25hbGUsXG4gICAgfSk7XG4gIH07XG5cbiAgb25UZWFjaGVySW5zdHJ1Y3Rpb25zQ2hhbmdlZCA9ICh0ZWFjaGVySW5zdHJ1Y3Rpb25zKSA9PiB7XG4gICAgdGhpcy5vbk1vZGVsQ2hhbmdlZCh7XG4gICAgICAuLi50aGlzLl9tb2RlbCxcbiAgICAgIHRlYWNoZXJJbnN0cnVjdGlvbnMsXG4gICAgfSk7XG4gIH07XG5cbiAgb25VcGRhdGVJbWFnZURpbWVuc2lvbiA9IChkaW1lbnNpb25zKSA9PiB7XG4gICAgdGhpcy5vbk1vZGVsQ2hhbmdlZCh7XG4gICAgICAuLi50aGlzLl9tb2RlbCxcbiAgICAgIGRpbWVuc2lvbnMsXG4gICAgfSk7XG4gIH07XG5cbiAgb25VcGRhdGVTaGFwZXMgPSAoc2hhcGVzKSA9PiB7XG4gICAgdGhpcy5vbk1vZGVsQ2hhbmdlZCh7XG4gICAgICAuLi50aGlzLl9tb2RlbCxcbiAgICAgIHNoYXBlcyxcbiAgICB9KTtcbiAgfTtcblxuICBvbkltYWdlVXBsb2FkID0gKGltYWdlVXJsKSA9PiB7XG4gICAgdGhpcy5vbk1vZGVsQ2hhbmdlZCh7XG4gICAgICAuLi50aGlzLl9tb2RlbCxcbiAgICAgIGltYWdlVXJsLFxuICAgIH0pO1xuICB9O1xuXG4gIGluc2VydEltYWdlID0gKGhhbmRsZXIpID0+IHtcbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEluc2VydEltYWdlRXZlbnQoaGFuZGxlcikpO1xuICB9O1xuXG4gIG9uRGVsZXRlSW1hZ2UgPSAoc3JjLCBkb25lKSA9PiB7XG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBEZWxldGVJbWFnZUV2ZW50KHNyYywgZG9uZSkpO1xuICB9O1xuXG4gIGluc2VydFNvdW5kKGhhbmRsZXIpIHtcbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEluc2VydFNvdW5kRXZlbnQoaGFuZGxlcikpO1xuICB9XG5cbiAgb25EZWxldGVTb3VuZChzcmMsIGRvbmUpIHtcbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IERlbGV0ZVNvdW5kRXZlbnQoc3JjLCBkb25lKSk7XG4gIH1cblxuICBfcmVuZGVyKCkge1xuICAgIGxvZygnX3JlbmRlcicpO1xuICAgIGxldCBlbGVtZW50ID0gUmVhY3QuY3JlYXRlRWxlbWVudChSb290LCB7XG4gICAgICBjb25maWd1cmF0aW9uOiB0aGlzLl9jb25maWd1cmF0aW9uLFxuICAgICAgbW9kZWw6IHRoaXMuX21vZGVsLFxuICAgICAgb25Db2xvckNoYW5nZWQ6IHRoaXMub25Db2xvckNoYW5nZWQsXG4gICAgICBvbkltYWdlVXBsb2FkOiB0aGlzLm9uSW1hZ2VVcGxvYWQsXG4gICAgICBvblJhdGlvbmFsZUNoYW5nZWQ6IHRoaXMub25SYXRpb25hbGVDaGFuZ2VkLFxuICAgICAgb25Db25maWd1cmF0aW9uQ2hhbmdlZDogdGhpcy5vbkNvbmZpZ3VyYXRpb25DaGFuZ2VkLFxuICAgICAgb25Qcm9tcHRDaGFuZ2VkOiB0aGlzLm9uUHJvbXB0Q2hhbmdlZCxcbiAgICAgIG9uVXBkYXRlSW1hZ2VEaW1lbnNpb246IHRoaXMub25VcGRhdGVJbWFnZURpbWVuc2lvbixcbiAgICAgIGltYWdlU3VwcG9ydDoge1xuICAgICAgICBhZGQ6IHRoaXMuaW5zZXJ0SW1hZ2UsXG4gICAgICAgIGRlbGV0ZTogdGhpcy5vbkRlbGV0ZUltYWdlLFxuICAgICAgfSxcbiAgICAgIHVwbG9hZFNvdW5kU3VwcG9ydDoge1xuICAgICAgICBhZGQ6IHRoaXMuaW5zZXJ0U291bmQuYmluZCh0aGlzKSxcbiAgICAgICAgZGVsZXRlOiB0aGlzLm9uRGVsZXRlU291bmQuYmluZCh0aGlzKSxcbiAgICAgIH0sXG4gICAgICBvblVwZGF0ZVNoYXBlczogdGhpcy5vblVwZGF0ZVNoYXBlcyxcbiAgICAgIG9uTW9kZWxDaGFuZ2VkQnlDb25maWc6IHRoaXMub25Nb2RlbENoYW5nZWRCeUNvbmZpZyxcbiAgICAgIG9uVGVhY2hlckluc3RydWN0aW9uc0NoYW5nZWQ6IHRoaXMub25UZWFjaGVySW5zdHJ1Y3Rpb25zQ2hhbmdlZCxcbiAgICB9KTtcblxuICAgIGlmICghdGhpcy5fcm9vdCkge1xuICAgICAgdGhpcy5fcm9vdCA9IGNyZWF0ZVJvb3QodGhpcyk7XG4gICAgfVxuICAgIHRoaXMuX3Jvb3QucmVuZGVyKGVsZW1lbnQpO1xuICB9XG5cbiAgZGlzY29ubmVjdGVkQ2FsbGJhY2soKSB7XG4gICAgaWYgKHRoaXMuX3Jvb3QpIHtcbiAgICAgIHRoaXMuX3Jvb3QudW5tb3VudCgpO1xuICAgIH1cbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE9BQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLE1BQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFHLG1CQUFBLEdBQUFILE9BQUE7QUFRQSxJQUFBSSxLQUFBLEdBQUFMLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSyxTQUFBLEdBQUFOLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxNQUFNTSxHQUFHLEdBQUcsSUFBQUMsY0FBSyxFQUFDLG1CQUFtQixDQUFDO0FBRXZCLE1BQU1DLGdCQUFnQixTQUFTQyxXQUFXLENBQUM7RUFTeERDLFdBQVdBLENBQUEsRUFBRztJQUNaLEtBQUssQ0FBQyxDQUFDO0lBQUMsSUFBQUMsZ0JBQUEsQ0FBQUMsT0FBQSxrQ0E4RGdCQyxDQUFDLElBQUs7TUFDOUIsSUFBSSxDQUFDQyxjQUFjLEdBQUdELENBQUM7TUFDdkIsSUFBSSxDQUFDRSxPQUFPLENBQUMsQ0FBQztJQUNoQixDQUFDO0lBQUEsSUFBQUosZ0JBQUEsQ0FBQUMsT0FBQSxrQ0FFd0IsQ0FBQ0ksQ0FBQyxFQUFFQyxZQUFZLEtBQUs7TUFDNUMsTUFBTUMsTUFBTSxHQUFHRixDQUFDO01BRWhCLElBQUlDLFlBQVksS0FBSyxpQkFBaUIsRUFBRTtRQUN0QyxNQUFNO1VBQUVFLFVBQVUsR0FBRyxFQUFFO1VBQUVDLFFBQVEsR0FBRyxF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
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.js"],"names":["log","HotspotConfigure","c","_configuration","_render","m","propertyType","_model","shapes","rectangles","polygons","circles","map","shape","correct","onModelChanged","colorType","color","prompt","rationale","teacherInstructions","dimensions","imageUrl","handler","dispatchEvent","InsertImageEvent","src","done","DeleteImageEvent","createDefaultModel","sensibleDefaults","configuration","bind","s","newConfiguration","language","enabled","languageChoices","options","length","value","settings","find","option","push","label","reset","resetValue","ModelUpdatedEvent","dispatchModelUpdated","InsertSoundEvent","DeleteSoundEvent","element","React","createElement","Root","model","onColorChanged","onImageUpload","onRationaleChanged","onConfigurationChanged","onPromptChanged","onUpdateImageDimension","imageSupport","add","insertImage","onDeleteImage","uploadSoundSupport","insertSound","onDeleteSound","onUpdateShapes","onModelChangedByConfig","onTeacherInstructionsChanged","ReactDOM","render","HTMLElement","hotspotList","hotspotColor","outlineList","outlineColor"],"mappings":"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","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport debug from 'debug';\nimport {\n ModelUpdatedEvent,\n DeleteImageEvent,\n InsertImageEvent,\n InsertSoundEvent,\n DeleteSoundEvent,\n} from '@pie-framework/pie-configure-events';\n\nimport Root from './root';\nimport sensibleDefaults from './defaults';\n\nconst log = debug('hotspot:configure');\n\nexport default class HotspotConfigure extends HTMLElement {\n static createDefaultModel = (model = {}) => ({\n ...sensibleDefaults.model,\n ...model,\n hotspotList: model.hotspotList || [model.hotspotColor] || sensibleDefaults.model.hotspotList,\n outlineList: model.outlineList || [model.outlineColor] || sensibleDefaults.model.outlineList,\n shapes: model.shapes || sensibleDefaults.model.shapes || {},\n });\n\n constructor() {\n super();\n this._model = HotspotConfigure.createDefaultModel();\n this._configuration = sensibleDefaults.configuration;\n this.onModelChanged = this.onModelChanged.bind(this);\n }\n\n set model(s) {\n this._model = HotspotConfigure.createDefaultModel(s);\n this._render();\n }\n\n set configuration(c) {\n const newConfiguration = {\n ...sensibleDefaults.configuration,\n ...c,\n };\n\n this._configuration = newConfiguration;\n\n // if language:enabled is true, then the corresponding default item model should include a language value;\n // if it is false, then the language field should be omitted from the item model.\n // if a default item model includes a language value (e.g., en_US) and the corresponding authoring view settings have language:settings = true,\n // then (a) language:enabled should also be true, and (b) that default language value should be represented in languageChoices[] (as a key).\n if (newConfiguration?.language?.enabled) {\n if (newConfiguration?.languageChoices?.options?.length) {\n this._model.language = newConfiguration?.languageChoices.options[0].value;\n }\n } else if (newConfiguration.language.settings && this._model.language) {\n this._configuration.language.enabled = true;\n\n if (!this._configuration.languageChoices.options || !this._configuration.languageChoices.options.length) {\n this._configuration.languageChoices.options = [];\n }\n\n // check if the language is already included in the languageChoices.options array\n // and if not, then add it.\n if (!this._configuration.languageChoices.options.find((option) => option.value === this._model.language)) {\n this._configuration.languageChoices.options.push({\n value: this._model.language,\n label: this._model.language,\n });\n }\n } else {\n delete this._model.language;\n }\n\n this._render();\n }\n\n dispatchModelUpdated(reset) {\n const resetValue = !!reset;\n\n this.dispatchEvent(new ModelUpdatedEvent(this._model, resetValue));\n }\n\n onModelChanged(m, reset) {\n this._model = m;\n this.dispatchModelUpdated(reset);\n this._render();\n }\n\n onConfigurationChanged = (c) => {\n this._configuration = c;\n this._render();\n };\n\n onModelChangedByConfig = (m, propertyType) => {\n const _model = m;\n\n if (propertyType === 'multipleCorrect') {\n const { rectangles = [], polygons = [], circles = [] } = _model.shapes || {};\n\n _model.shapes.rectangles = rectangles.map((shape) => ({ ...shape, correct: false }));\n _model.shapes.polygons = polygons.map((shape) => ({ ...shape, correct: false }));\n _model.shapes.circles = circles.map((shape) => ({ ...shape, correct: false }));\n }\n\n this.onModelChanged(_model);\n };\n\n onColorChanged = (colorType, color) => {\n this.onModelChanged({\n ...this._model,\n [colorType]: color,\n });\n };\n\n onPromptChanged = (prompt) => {\n this.onModelChanged({\n ...this._model,\n prompt,\n });\n };\n\n onRationaleChanged = (rationale) => {\n this.onModelChanged({\n ...this._model,\n rationale,\n });\n };\n\n onTeacherInstructionsChanged = (teacherInstructions) => {\n this.onModelChanged({\n ...this._model,\n teacherInstructions,\n });\n };\n\n onUpdateImageDimension = (dimensions) => {\n this.onModelChanged({\n ...this._model,\n dimensions,\n });\n };\n\n onUpdateShapes = (shapes) => {\n this.onModelChanged({\n ...this._model,\n shapes,\n });\n };\n\n onImageUpload = (imageUrl) => {\n this.onModelChanged({\n ...this._model,\n imageUrl,\n });\n };\n\n insertImage = (handler) => {\n this.dispatchEvent(new InsertImageEvent(handler));\n };\n\n onDeleteImage = (src, done) => {\n this.dispatchEvent(new DeleteImageEvent(src, done));\n };\n\n insertSound(handler) {\n this.dispatchEvent(new InsertSoundEvent(handler));\n }\n\n onDeleteSound(src, done) {\n this.dispatchEvent(new DeleteSoundEvent(src, done));\n }\n\n _render() {\n log('_render');\n let element = React.createElement(Root, {\n configuration: this._configuration,\n model: this._model,\n onColorChanged: this.onColorChanged,\n onImageUpload: this.onImageUpload,\n onRationaleChanged: this.onRationaleChanged,\n onConfigurationChanged: this.onConfigurationChanged,\n onPromptChanged: this.onPromptChanged,\n onUpdateImageDimension: this.onUpdateImageDimension,\n imageSupport: {\n add: this.insertImage,\n delete: this.onDeleteImage,\n },\n uploadSoundSupport: {\n add: this.insertSound.bind(this),\n delete: this.onDeleteSound.bind(this),\n },\n onUpdateShapes: this.onUpdateShapes,\n onModelChangedByConfig: this.onModelChangedByConfig,\n onTeacherInstructionsChanged: this.onTeacherInstructionsChanged,\n });\n\n ReactDOM.render(element, this);\n }\n}\n"],"file":"index.js"}
1
+ {"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_client","_debug","_pieConfigureEvents","_root","_defaults","log","debug","HotspotConfigure","HTMLElement","constructor","_defineProperty2","default","c","_configuration","_render","m","propertyType","_model","rectangles","polygons","circles","shapes","map","shape","correct","onModelChanged","colorType","color","prompt","rationale","teacherInstructions","dimensions","imageUrl","handler","dispatchEvent","InsertImageEvent","src","done","DeleteImageEvent","createDefaultModel","sensibleDefaults","configuration","bind","model","s","newConfiguration","language","enabled","languageChoices","options","length","value","settings","find","option","push","label","dispatchModelUpdated","reset","resetValue","ModelUpdatedEvent","insertSound","InsertSoundEvent","onDeleteSound","DeleteSoundEvent","element","React","createElement","Root","onColorChanged","onImageUpload","onRationaleChanged","onConfigurationChanged","onPromptChanged","onUpdateImageDimension","imageSupport","add","insertImage","delete","onDeleteImage","uploadSoundSupport","onUpdateShapes","onModelChangedByConfig","onTeacherInstructionsChanged","createRoot","render","disconnectedCallback","unmount","exports","hotspotList","hotspotColor","outlineList","outlineColor"],"sources":["../src/index.js"],"sourcesContent":["import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport debug from 'debug';\nimport {\n ModelUpdatedEvent,\n DeleteImageEvent,\n InsertImageEvent,\n InsertSoundEvent,\n DeleteSoundEvent,\n} from '@pie-framework/pie-configure-events';\n\nimport Root from './root';\nimport sensibleDefaults from './defaults';\n\nconst log = debug('hotspot:configure');\n\nexport default class HotspotConfigure extends HTMLElement {\n static createDefaultModel = (model = {}) => ({\n ...sensibleDefaults.model,\n ...model,\n hotspotList: model.hotspotList || [model.hotspotColor] || sensibleDefaults.model.hotspotList,\n outlineList: model.outlineList || [model.outlineColor] || sensibleDefaults.model.outlineList,\n shapes: model.shapes || sensibleDefaults.model.shapes || {},\n });\n\n constructor() {\n super();\n this._root = null;\n this._model = HotspotConfigure.createDefaultModel();\n this._configuration = sensibleDefaults.configuration;\n this.onModelChanged = this.onModelChanged.bind(this);\n }\n\n set model(s) {\n this._model = HotspotConfigure.createDefaultModel(s);\n this._render();\n }\n\n set configuration(c) {\n const newConfiguration = {\n ...sensibleDefaults.configuration,\n ...c,\n };\n\n this._configuration = newConfiguration;\n\n // if language:enabled is true, then the corresponding default item model should include a language value;\n // if it is false, then the language field should be omitted from the item model.\n // if a default item model includes a language value (e.g., en_US) and the corresponding authoring view settings have language:settings = true,\n // then (a) language:enabled should also be true, and (b) that default language value should be represented in languageChoices[] (as a key).\n if (newConfiguration?.language?.enabled) {\n if (newConfiguration?.languageChoices?.options?.length) {\n this._model.language = newConfiguration?.languageChoices.options[0].value;\n }\n } else if (newConfiguration.language.settings && this._model.language) {\n this._configuration.language.enabled = true;\n\n if (!this._configuration.languageChoices.options || !this._configuration.languageChoices.options.length) {\n this._configuration.languageChoices.options = [];\n }\n\n // check if the language is already included in the languageChoices.options array\n // and if not, then add it.\n if (!this._configuration.languageChoices.options.find((option) => option.value === this._model.language)) {\n this._configuration.languageChoices.options.push({\n value: this._model.language,\n label: this._model.language,\n });\n }\n } else {\n delete this._model.language;\n }\n\n this._render();\n }\n\n dispatchModelUpdated(reset) {\n const resetValue = !!reset;\n\n this.dispatchEvent(new ModelUpdatedEvent(this._model, resetValue));\n }\n\n onModelChanged(m, reset) {\n this._model = m;\n this.dispatchModelUpdated(reset);\n this._render();\n }\n\n onConfigurationChanged = (c) => {\n this._configuration = c;\n this._render();\n };\n\n onModelChangedByConfig = (m, propertyType) => {\n const _model = m;\n\n if (propertyType === 'multipleCorrect') {\n const { rectangles = [], polygons = [], circles = [] } = _model.shapes || {};\n\n _model.shapes.rectangles = rectangles.map((shape) => ({ ...shape, correct: false }));\n _model.shapes.polygons = polygons.map((shape) => ({ ...shape, correct: false }));\n _model.shapes.circles = circles.map((shape) => ({ ...shape, correct: false }));\n }\n\n this.onModelChanged(_model);\n };\n\n onColorChanged = (colorType, color) => {\n this.onModelChanged({\n ...this._model,\n [colorType]: color,\n });\n };\n\n onPromptChanged = (prompt) => {\n this.onModelChanged({\n ...this._model,\n prompt,\n });\n };\n\n onRationaleChanged = (rationale) => {\n this.onModelChanged({\n ...this._model,\n rationale,\n });\n };\n\n onTeacherInstructionsChanged = (teacherInstructions) => {\n this.onModelChanged({\n ...this._model,\n teacherInstructions,\n });\n };\n\n onUpdateImageDimension = (dimensions) => {\n this.onModelChanged({\n ...this._model,\n dimensions,\n });\n };\n\n onUpdateShapes = (shapes) => {\n this.onModelChanged({\n ...this._model,\n shapes,\n });\n };\n\n onImageUpload = (imageUrl) => {\n this.onModelChanged({\n ...this._model,\n imageUrl,\n });\n };\n\n insertImage = (handler) => {\n this.dispatchEvent(new InsertImageEvent(handler));\n };\n\n onDeleteImage = (src, done) => {\n this.dispatchEvent(new DeleteImageEvent(src, done));\n };\n\n insertSound(handler) {\n this.dispatchEvent(new InsertSoundEvent(handler));\n }\n\n onDeleteSound(src, done) {\n this.dispatchEvent(new DeleteSoundEvent(src, done));\n }\n\n _render() {\n log('_render');\n let element = React.createElement(Root, {\n configuration: this._configuration,\n model: this._model,\n onColorChanged: this.onColorChanged,\n onImageUpload: this.onImageUpload,\n onRationaleChanged: this.onRationaleChanged,\n onConfigurationChanged: this.onConfigurationChanged,\n onPromptChanged: this.onPromptChanged,\n onUpdateImageDimension: this.onUpdateImageDimension,\n imageSupport: {\n add: this.insertImage,\n delete: this.onDeleteImage,\n },\n uploadSoundSupport: {\n add: this.insertSound.bind(this),\n delete: this.onDeleteSound.bind(this),\n },\n onUpdateShapes: this.onUpdateShapes,\n onModelChangedByConfig: this.onModelChangedByConfig,\n onTeacherInstructionsChanged: this.onTeacherInstructionsChanged,\n });\n\n if (!this._root) {\n this._root = createRoot(this);\n }\n this._root.render(element);\n }\n\n disconnectedCallback() {\n if (this._root) {\n this._root.unmount();\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}