@pie-element/drawing-response 7.4.1-next.42 → 7.4.1-next.43

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 (53) hide show
  1. package/configure/lib/button.js +61 -0
  2. package/configure/lib/button.js.map +1 -0
  3. package/configure/lib/defaults.js +69 -0
  4. package/configure/lib/defaults.js.map +1 -0
  5. package/configure/lib/image-container.js +368 -0
  6. package/configure/lib/image-container.js.map +1 -0
  7. package/configure/lib/index.js +214 -0
  8. package/configure/lib/index.js.map +1 -0
  9. package/configure/lib/root.js +257 -0
  10. package/configure/lib/root.js.map +1 -0
  11. package/configure/package.json +1 -1
  12. package/configure/src/__tests__/__snapshots__/root.test.jsx.snap +1 -1
  13. package/controller/lib/defaults.js +16 -0
  14. package/controller/lib/defaults.js.map +1 -0
  15. package/controller/lib/index.js +86 -0
  16. package/controller/lib/index.js.map +1 -0
  17. package/lib/drawing-response/button.js +74 -0
  18. package/lib/drawing-response/button.js.map +1 -0
  19. package/lib/drawing-response/constants.js +44 -0
  20. package/lib/drawing-response/constants.js.map +1 -0
  21. package/lib/drawing-response/container.js +393 -0
  22. package/lib/drawing-response/container.js.map +1 -0
  23. package/lib/drawing-response/drawable-circle.js +119 -0
  24. package/lib/drawing-response/drawable-circle.js.map +1 -0
  25. package/lib/drawing-response/drawable-eraser.js +100 -0
  26. package/lib/drawing-response/drawable-eraser.js.map +1 -0
  27. package/lib/drawing-response/drawable-free-path.js +112 -0
  28. package/lib/drawing-response/drawable-free-path.js.map +1 -0
  29. package/lib/drawing-response/drawable-helper.js +46 -0
  30. package/lib/drawing-response/drawable-helper.js.map +1 -0
  31. package/lib/drawing-response/drawable-image.js +60 -0
  32. package/lib/drawing-response/drawable-image.js.map +1 -0
  33. package/lib/drawing-response/drawable-line.js +114 -0
  34. package/lib/drawing-response/drawable-line.js.map +1 -0
  35. package/lib/drawing-response/drawable-main.js +416 -0
  36. package/lib/drawing-response/drawable-main.js.map +1 -0
  37. package/lib/drawing-response/drawable-palette.js +183 -0
  38. package/lib/drawing-response/drawable-palette.js.map +1 -0
  39. package/lib/drawing-response/drawable-rectangle.js +119 -0
  40. package/lib/drawing-response/drawable-rectangle.js.map +1 -0
  41. package/lib/drawing-response/drawable-text.js +384 -0
  42. package/lib/drawing-response/drawable-text.js.map +1 -0
  43. package/lib/drawing-response/drawable-transformer.js +95 -0
  44. package/lib/drawing-response/drawable-transformer.js.map +1 -0
  45. package/lib/drawing-response/factory.js +35 -0
  46. package/lib/drawing-response/factory.js.map +1 -0
  47. package/lib/drawing-response/icon.js +71 -0
  48. package/lib/drawing-response/icon.js.map +1 -0
  49. package/lib/drawing-response/index.js +131 -0
  50. package/lib/drawing-response/index.js.map +1 -0
  51. package/lib/index.js +118 -0
  52. package/lib/index.js.map +1 -0
  53. package/package.json +3 -3
@@ -0,0 +1,214 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+
10
+ var _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
+
24
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
25
+
26
+ var _pieConfigureEvents = require("@pie-framework/pie-configure-events");
27
+
28
+ var _react = _interopRequireDefault(require("react"));
29
+
30
+ var _reactDom = _interopRequireDefault(require("react-dom"));
31
+
32
+ var _debug = _interopRequireDefault(require("debug"));
33
+
34
+ var _root = _interopRequireDefault(require("./root"));
35
+
36
+ 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 DrawableResponseConfigure = /*#__PURE__*/function (_HTMLElement) {
49
+ (0, _inherits2["default"])(DrawableResponseConfigure, _HTMLElement);
50
+
51
+ var _super = _createSuper(DrawableResponseConfigure);
52
+
53
+ function DrawableResponseConfigure() {
54
+ var _this$_configuration$;
55
+
56
+ var _this;
57
+
58
+ (0, _classCallCheck2["default"])(this, DrawableResponseConfigure);
59
+ _this = _super.call(this);
60
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onModelChanged", function (m, reset) {
61
+ _this._model = m;
62
+
63
+ _this.dispatchModelUpdated(reset);
64
+
65
+ _this._render();
66
+ });
67
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onConfigurationChanged", function (c) {
68
+ _this._configuration = c;
69
+
70
+ _this._render();
71
+ });
72
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "insertImage", function (handler) {
73
+ _this.dispatchEvent(new _pieConfigureEvents.InsertImageEvent(handler));
74
+ });
75
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onDeleteImage", function (src, done) {
76
+ _this.dispatchEvent(new _pieConfigureEvents.DeleteImageEvent(src, done));
77
+ });
78
+ _this._configuration = _defaults["default"].configuration; // if configuration.withRubric.forceEnabled is true, then we
79
+ // update the configuration (we do not want to display the toggle in the Settings Panel)
80
+
81
+ if ((_this$_configuration$ = _this._configuration.withRubric) !== null && _this$_configuration$ !== void 0 && _this$_configuration$.forceEnabled) {
82
+ _this._configuration.withRubric.settings = false;
83
+ }
84
+
85
+ _this._model = DrawableResponseConfigure.createDefaultModel({}, _this._configuration);
86
+ _this.onModelChanged = _this.onModelChanged.bind((0, _assertThisInitialized2["default"])(_this));
87
+ return _this;
88
+ }
89
+
90
+ (0, _createClass2["default"])(DrawableResponseConfigure, [{
91
+ key: "model",
92
+ set: function set(s) {
93
+ this._model = DrawableResponseConfigure.createDefaultModel(s, this._configuration);
94
+
95
+ this._render();
96
+ }
97
+ }, {
98
+ key: "configuration",
99
+ set: function set(c) {
100
+ var _newConfiguration$lan,
101
+ _this2 = this;
102
+
103
+ var newConfiguration = _objectSpread(_objectSpread({}, _defaults["default"].configuration), c);
104
+
105
+ this._configuration = newConfiguration;
106
+
107
+ var _ref = c || {},
108
+ _ref$withRubric = _ref.withRubric,
109
+ withRubric = _ref$withRubric === void 0 ? {} : _ref$withRubric; // if configuration.withRubric.forceEnabled is true, then we update the model
110
+ // without triggering the Model Updated event (for more details, check documentation)
111
+ // and also update the configuration (we do not want to display the toggle in the Settings Panel)
112
+
113
+
114
+ if (withRubric !== null && withRubric !== void 0 && withRubric.forceEnabled) {
115
+ this._configuration.withRubric.settings = false;
116
+
117
+ if (!this._model.rubricEnabled) {
118
+ this._model.rubricEnabled = true;
119
+ }
120
+ } // if language:enabled is true, then the corresponding default item model should include a language value;
121
+ // if it is false, then the language field should be omitted from the item model.
122
+ // if a default item model includes a language value (e.g., en_US) and the corresponding authoring view settings have language:settings = true,
123
+ // then (a) language:enabled should also be true, and (b) that default language value should be represented in languageChoices[] (as a key).
124
+
125
+
126
+ if (newConfiguration !== null && newConfiguration !== void 0 && (_newConfiguration$lan = newConfiguration.language) !== null && _newConfiguration$lan !== void 0 && _newConfiguration$lan.enabled) {
127
+ var _newConfiguration$lan2, _newConfiguration$lan3;
128
+
129
+ 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) {
130
+ this._model.language = newConfiguration === null || newConfiguration === void 0 ? void 0 : newConfiguration.languageChoices.options[0].value;
131
+ }
132
+ } else if (newConfiguration.language.settings && this._model.language) {
133
+ this._configuration.language.enabled = true;
134
+
135
+ if (!this._configuration.languageChoices.options || !this._configuration.languageChoices.options.length) {
136
+ this._configuration.languageChoices.options = [];
137
+ } // check if the language is already included in the languageChoices.options array
138
+ // and if not, then add it.
139
+
140
+
141
+ if (!this._configuration.languageChoices.options.find(function (option) {
142
+ return option.value === _this2._model.language;
143
+ })) {
144
+ this._configuration.languageChoices.options.push({
145
+ value: this._model.language,
146
+ label: this._model.language
147
+ });
148
+ }
149
+ } else {
150
+ delete this._model.language;
151
+ }
152
+
153
+ this._render();
154
+ }
155
+ }, {
156
+ key: "dispatchModelUpdated",
157
+ value: function dispatchModelUpdated(reset) {
158
+ var resetValue = !!reset;
159
+ this.dispatchEvent(new _pieConfigureEvents.ModelUpdatedEvent(this._model, resetValue));
160
+ }
161
+ }, {
162
+ key: "insertSound",
163
+ value: function insertSound(handler) {
164
+ this.dispatchEvent(new _pieConfigureEvents.InsertSoundEvent(handler));
165
+ }
166
+ }, {
167
+ key: "onDeleteSound",
168
+ value: function onDeleteSound(src, done) {
169
+ this.dispatchEvent(new _pieConfigureEvents.DeleteSoundEvent(src, done));
170
+ }
171
+ }, {
172
+ key: "_render",
173
+ value: function _render() {
174
+ log('_render');
175
+
176
+ var element = /*#__PURE__*/_react["default"].createElement(_root["default"], {
177
+ model: this._model,
178
+ configuration: this._configuration,
179
+ onModelChanged: this.onModelChanged,
180
+ onConfigurationChanged: this.onConfigurationChanged,
181
+ imageSupport: {
182
+ add: this.insertImage,
183
+ "delete": this.onDeleteImage
184
+ },
185
+ uploadSoundSupport: {
186
+ add: this.insertSound.bind(this),
187
+ "delete": this.onDeleteSound.bind(this)
188
+ }
189
+ });
190
+
191
+ _reactDom["default"].render(element, this);
192
+ }
193
+ }]);
194
+ return DrawableResponseConfigure;
195
+ }( /*#__PURE__*/(0, _wrapNativeSuper2["default"])(HTMLElement));
196
+
197
+ exports["default"] = DrawableResponseConfigure;
198
+ (0, _defineProperty2["default"])(DrawableResponseConfigure, "createDefaultModel", function () {
199
+ var _config$withRubric;
200
+
201
+ var model = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
202
+ var config = arguments.length > 1 ? arguments[1] : undefined;
203
+
204
+ var defaultModel = _objectSpread(_objectSpread({}, _defaults["default"].model), model); // if configuration.withRubric.forceEnabled is true, then we update the model
205
+ // without triggering the Model Updated event (for more details, check documentation)
206
+
207
+
208
+ if (config !== null && config !== void 0 && (_config$withRubric = config.withRubric) !== null && _config$withRubric !== void 0 && _config$withRubric.forceEnabled && !defaultModel.rubricEnabled) {
209
+ defaultModel.rubricEnabled = true;
210
+ }
211
+
212
+ return defaultModel;
213
+ });
214
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.js"],"names":["log","DrawableResponseConfigure","m","reset","_model","dispatchModelUpdated","_render","c","_configuration","handler","dispatchEvent","InsertImageEvent","src","done","DeleteImageEvent","sensibleDefaults","configuration","withRubric","forceEnabled","settings","createDefaultModel","onModelChanged","bind","s","newConfiguration","rubricEnabled","language","enabled","languageChoices","options","length","value","find","option","push","label","resetValue","ModelUpdatedEvent","InsertSoundEvent","DeleteSoundEvent","element","React","createElement","Root","model","onConfigurationChanged","imageSupport","add","insertImage","onDeleteImage","uploadSoundSupport","insertSound","onDeleteSound","ReactDOM","render","HTMLElement","config","defaultModel"],"mappings":"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","sourcesContent":["import {\n DeleteImageEvent,\n DeleteSoundEvent,\n InsertImageEvent,\n InsertSoundEvent,\n ModelUpdatedEvent,\n} from '@pie-framework/pie-configure-events';\n\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport debug from 'debug';\n\nimport Root from './root';\nimport sensibleDefaults from './defaults';\n\nconst log = debug('hotspot:configure');\n\nexport default class DrawableResponseConfigure extends HTMLElement {\n static createDefaultModel = (model = {}, config) => {\n const defaultModel = {\n ...sensibleDefaults.model,\n ...model,\n };\n\n // if configuration.withRubric.forceEnabled is true, then we update the model\n // without triggering the Model Updated event (for more details, check documentation)\n if (config?.withRubric?.forceEnabled && !defaultModel.rubricEnabled) {\n defaultModel.rubricEnabled = true;\n }\n\n return defaultModel;\n };\n\n constructor() {\n super();\n this._configuration = sensibleDefaults.configuration;\n\n // if configuration.withRubric.forceEnabled is true, then we\n // update the configuration (we do not want to display the toggle in the Settings Panel)\n if (this._configuration.withRubric?.forceEnabled) {\n this._configuration.withRubric.settings = false;\n }\n\n this._model = DrawableResponseConfigure.createDefaultModel({}, this._configuration);\n this.onModelChanged = this.onModelChanged.bind(this);\n }\n\n set model(s) {\n this._model = DrawableResponseConfigure.createDefaultModel(s, this._configuration);\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 const { withRubric = {} } = c || {};\n\n // if configuration.withRubric.forceEnabled is true, then we update the model\n // without triggering the Model Updated event (for more details, check documentation)\n // and also update the configuration (we do not want to display the toggle in the Settings Panel)\n if (withRubric?.forceEnabled) {\n this._configuration.withRubric.settings = false;\n\n if (!this._model.rubricEnabled) {\n this._model.rubricEnabled = true;\n }\n }\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\n this._render();\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\n let element = React.createElement(Root, {\n model: this._model,\n configuration: this._configuration,\n onModelChanged: this.onModelChanged,\n onConfigurationChanged: this.onConfigurationChanged,\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 });\n ReactDOM.render(element, this);\n }\n}\n"],"file":"index.js"}
@@ -0,0 +1,257 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = exports.Root = 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 _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
23
+
24
+ var _react = _interopRequireDefault(require("react"));
25
+
26
+ var _configUi = require("@pie-lib/pie-toolbox/config-ui");
27
+
28
+ var _propTypes = _interopRequireDefault(require("prop-types"));
29
+
30
+ var _editableHtml = require("@pie-lib/pie-toolbox/editable-html");
31
+
32
+ var _Typography = _interopRequireDefault(require("@material-ui/core/Typography"));
33
+
34
+ var _styles = require("@material-ui/core/styles");
35
+
36
+ var _imageContainer = _interopRequireDefault(require("./image-container"));
37
+
38
+ var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
39
+
40
+ 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; }
41
+
42
+ 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; }
43
+
44
+ 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); }; }
45
+
46
+ 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; } }
47
+
48
+ var Panel = _configUi.settings.Panel,
49
+ toggle = _configUi.settings.toggle,
50
+ dropdown = _configUi.settings.dropdown;
51
+
52
+ var Root = /*#__PURE__*/function (_React$Component) {
53
+ (0, _inherits2["default"])(Root, _React$Component);
54
+
55
+ var _super = _createSuper(Root);
56
+
57
+ function Root() {
58
+ var _this;
59
+
60
+ (0, _classCallCheck2["default"])(this, Root);
61
+
62
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
63
+ args[_key] = arguments[_key];
64
+ }
65
+
66
+ _this = _super.call.apply(_super, [this].concat(args));
67
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onPromptChanged", function (prompt) {
68
+ var _this$props = _this.props,
69
+ model = _this$props.model,
70
+ onModelChanged = _this$props.onModelChanged;
71
+ var update = (0, _cloneDeep["default"])(model);
72
+ onModelChanged(_objectSpread(_objectSpread({}, update), {}, {
73
+ prompt: prompt
74
+ }));
75
+ });
76
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onTeacherInstructionsChanged", function (teacherInstructions) {
77
+ var _this$props2 = _this.props,
78
+ model = _this$props2.model,
79
+ onModelChanged = _this$props2.onModelChanged;
80
+ onModelChanged(_objectSpread(_objectSpread({}, model), {}, {
81
+ teacherInstructions: teacherInstructions
82
+ }));
83
+ });
84
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onUpdateImageDimension", function (dimensions) {
85
+ var _this$props3 = _this.props,
86
+ model = _this$props3.model,
87
+ onModelChanged = _this$props3.onModelChanged;
88
+ onModelChanged(_objectSpread(_objectSpread({}, model), {}, {
89
+ imageDimensions: dimensions
90
+ }));
91
+ });
92
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onImageUpload", function (imageUrl) {
93
+ var _this$props4 = _this.props,
94
+ model = _this$props4.model,
95
+ onModelChanged = _this$props4.onModelChanged;
96
+ onModelChanged(_objectSpread(_objectSpread({}, model), {}, {
97
+ imageUrl: imageUrl
98
+ }));
99
+ });
100
+ return _this;
101
+ }
102
+
103
+ (0, _createClass2["default"])(Root, [{
104
+ key: "render",
105
+ value: function render() {
106
+ var _this$props5 = this.props,
107
+ classes = _this$props5.classes,
108
+ configuration = _this$props5.configuration,
109
+ imageSupport = _this$props5.imageSupport,
110
+ model = _this$props5.model,
111
+ onConfigurationChanged = _this$props5.onConfigurationChanged,
112
+ onModelChanged = _this$props5.onModelChanged,
113
+ uploadSoundSupport = _this$props5.uploadSoundSupport;
114
+
115
+ var _ref = configuration || {},
116
+ _ref$backgroundImage = _ref.backgroundImage,
117
+ backgroundImage = _ref$backgroundImage === void 0 ? {} : _ref$backgroundImage,
118
+ _ref$contentDimension = _ref.contentDimensions,
119
+ contentDimensions = _ref$contentDimension === void 0 ? {} : _ref$contentDimension,
120
+ _ref$maxImageWidth = _ref.maxImageWidth,
121
+ maxImageWidth = _ref$maxImageWidth === void 0 ? {} : _ref$maxImageWidth,
122
+ _ref$maxImageHeight = _ref.maxImageHeight,
123
+ maxImageHeight = _ref$maxImageHeight === void 0 ? {} : _ref$maxImageHeight,
124
+ _ref$prompt = _ref.prompt,
125
+ prompt = _ref$prompt === void 0 ? {} : _ref$prompt,
126
+ settingsPanelDisabled = _ref.settingsPanelDisabled,
127
+ _ref$spellCheck = _ref.spellCheck,
128
+ spellCheck = _ref$spellCheck === void 0 ? {} : _ref$spellCheck,
129
+ _ref$teacherInstructi = _ref.teacherInstructions,
130
+ teacherInstructions = _ref$teacherInstructi === void 0 ? {} : _ref$teacherInstructi,
131
+ _ref$withRubric = _ref.withRubric,
132
+ withRubric = _ref$withRubric === void 0 ? {} : _ref$withRubric,
133
+ _ref$language = _ref.language,
134
+ language = _ref$language === void 0 ? {} : _ref$language,
135
+ _ref$languageChoices = _ref.languageChoices,
136
+ languageChoices = _ref$languageChoices === void 0 ? {} : _ref$languageChoices,
137
+ _ref$mathMlOptions = _ref.mathMlOptions,
138
+ mathMlOptions = _ref$mathMlOptions === void 0 ? {} : _ref$mathMlOptions;
139
+
140
+ var _ref2 = model || {},
141
+ backgroundImageEnabled = _ref2.backgroundImageEnabled,
142
+ promptEnabled = _ref2.promptEnabled,
143
+ spellCheckEnabled = _ref2.spellCheckEnabled,
144
+ teacherInstructionsEnabled = _ref2.teacherInstructionsEnabled,
145
+ toolbarEditorPosition = _ref2.toolbarEditorPosition;
146
+
147
+ var defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;
148
+ var defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;
149
+ var toolbarOpts = {
150
+ position: toolbarEditorPosition === 'top' ? 'top' : 'bottom'
151
+ };
152
+ var panelSettings = {
153
+ backgroundImageEnabled: backgroundImage.settings && toggle(backgroundImage.label),
154
+ promptEnabled: prompt.settings && toggle(prompt.label),
155
+ 'language.enabled': language.settings && toggle(language.label, true),
156
+ language: language.settings && language.enabled && dropdown(languageChoices.label, languageChoices.options)
157
+ };
158
+ var panelProperties = {
159
+ teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),
160
+ spellCheckEnabled: spellCheck.settings && toggle(spellCheck.label),
161
+ rubricEnabled: (withRubric === null || withRubric === void 0 ? void 0 : withRubric.settings) && toggle(withRubric === null || withRubric === void 0 ? void 0 : withRubric.label)
162
+ };
163
+ return /*#__PURE__*/_react["default"].createElement(_configUi.layout.ConfigLayout, {
164
+ dimensions: contentDimensions,
165
+ hideSettings: settingsPanelDisabled,
166
+ settings: /*#__PURE__*/_react["default"].createElement(Panel, {
167
+ model: model,
168
+ onChangeModel: onModelChanged,
169
+ configuration: configuration,
170
+ onChangeConfiguration: onConfigurationChanged,
171
+ groups: {
172
+ Settings: panelSettings,
173
+ Properties: panelProperties
174
+ }
175
+ })
176
+ }, teacherInstructionsEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
177
+ label: teacherInstructions.label,
178
+ className: classes.promptHolder
179
+ }, /*#__PURE__*/_react["default"].createElement(_editableHtml.EditableHtml, {
180
+ markup: model.teacherInstructions || '',
181
+ onChange: this.onTeacherInstructionsChanged,
182
+ imageSupport: imageSupport,
183
+ nonEmpty: false,
184
+ toolbarOpts: toolbarOpts,
185
+ spellCheck: spellCheckEnabled,
186
+ maxImageWidth: maxImageWidth && maxImageWidth.teacherInstructions || defaultImageMaxWidth,
187
+ maxImageHeight: maxImageHeight && maxImageHeight.teacherInstructions || defaultImageMaxHeight,
188
+ uploadSoundSupport: uploadSoundSupport,
189
+ languageCharactersProps: [{
190
+ language: 'spanish'
191
+ }, {
192
+ language: 'special'
193
+ }],
194
+ mathMlOptions: mathMlOptions
195
+ })), promptEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
196
+ label: "Item Stem",
197
+ className: classes.promptHolder
198
+ }, /*#__PURE__*/_react["default"].createElement(_editableHtml.EditableHtml, {
199
+ markup: model.prompt,
200
+ onChange: this.onPromptChanged,
201
+ toolbarOpts: toolbarOpts,
202
+ spellCheck: spellCheckEnabled,
203
+ imageSupport: imageSupport,
204
+ maxImageWidth: defaultImageMaxWidth,
205
+ maxImageHeight: defaultImageMaxHeight,
206
+ uploadSoundSupport: uploadSoundSupport,
207
+ languageCharactersProps: [{
208
+ language: 'spanish'
209
+ }, {
210
+ language: 'special'
211
+ }],
212
+ mathMlOptions: mathMlOptions
213
+ })), backgroundImageEnabled && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
214
+ variant: "subheading"
215
+ }, "Define Background Image"), /*#__PURE__*/_react["default"].createElement(_imageContainer["default"], {
216
+ imageUrl: model.imageUrl,
217
+ onUpdateImageDimension: this.onUpdateImageDimension,
218
+ onImageUpload: this.onImageUpload,
219
+ imageDimensions: model.imageDimensions
220
+ })));
221
+ }
222
+ }]);
223
+ return Root;
224
+ }(_react["default"].Component);
225
+
226
+ exports.Root = Root;
227
+
228
+ var styles = function styles(theme) {
229
+ return {
230
+ promptHolder: {
231
+ paddingTop: theme.spacing.unit * 2,
232
+ marginBottom: theme.spacing.unit * 2,
233
+ width: '100%'
234
+ }
235
+ };
236
+ };
237
+
238
+ Root.propTypes = {
239
+ classes: _propTypes["default"].object.isRequired,
240
+ configuration: _propTypes["default"].object,
241
+ model: _propTypes["default"].object.isRequired,
242
+ imageSupport: _propTypes["default"].shape({
243
+ add: _propTypes["default"].func,
244
+ "delete": _propTypes["default"].func
245
+ }),
246
+ uploadSoundSupport: _propTypes["default"].shape({
247
+ add: _propTypes["default"].func,
248
+ "delete": _propTypes["default"].func
249
+ }),
250
+ onModelChanged: _propTypes["default"].func.isRequired,
251
+ onConfigurationChanged: _propTypes["default"].func.isRequired
252
+ };
253
+
254
+ var _default = (0, _styles.withStyles)(styles)(Root);
255
+
256
+ exports["default"] = _default;
257
+ //# sourceMappingURL=root.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/root.jsx"],"names":["Panel","settings","toggle","dropdown","Root","prompt","props","model","onModelChanged","update","teacherInstructions","dimensions","imageDimensions","imageUrl","classes","configuration","imageSupport","onConfigurationChanged","uploadSoundSupport","backgroundImage","contentDimensions","maxImageWidth","maxImageHeight","settingsPanelDisabled","spellCheck","withRubric","language","languageChoices","mathMlOptions","backgroundImageEnabled","promptEnabled","spellCheckEnabled","teacherInstructionsEnabled","toolbarEditorPosition","defaultImageMaxWidth","defaultImageMaxHeight","toolbarOpts","position","panelSettings","label","enabled","options","panelProperties","rubricEnabled","Settings","Properties","promptHolder","onTeacherInstructionsChanged","onPromptChanged","onUpdateImageDimension","onImageUpload","React","Component","styles","theme","paddingTop","spacing","unit","marginBottom","width","propTypes","PropTypes","object","isRequired","shape","add","func"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { settings, layout, InputContainer } from '@pie-lib/pie-toolbox/config-ui';\nimport PropTypes from 'prop-types';\nimport {EditableHtml} from '@pie-lib/pie-toolbox/editable-html';\nimport Typography from '@material-ui/core/Typography';\nimport { withStyles } from '@material-ui/core/styles';\n\nimport ImageContainer from './image-container';\nimport cloneDeep from 'lodash/cloneDeep';\n\nconst { Panel, toggle, dropdown } = settings;\n\nexport class Root extends React.Component {\n onPromptChanged = (prompt) => {\n const { model, onModelChanged } = this.props;\n const update = cloneDeep(model);\n\n onModelChanged({ ...update, prompt });\n };\n\n onTeacherInstructionsChanged = (teacherInstructions) => {\n const { model, onModelChanged } = this.props;\n\n onModelChanged({ ...model, teacherInstructions });\n };\n\n onUpdateImageDimension = (dimensions) => {\n const { model, onModelChanged } = this.props;\n\n onModelChanged({ ...model, imageDimensions: dimensions });\n };\n\n onImageUpload = (imageUrl) => {\n const { model, onModelChanged } = this.props;\n\n onModelChanged({ ...model, imageUrl });\n };\n\n render() {\n const { classes, configuration, imageSupport, model, onConfigurationChanged, onModelChanged, uploadSoundSupport } =\n this.props;\n const {\n backgroundImage = {},\n contentDimensions = {},\n maxImageWidth = {},\n maxImageHeight = {},\n prompt = {},\n settingsPanelDisabled,\n spellCheck = {},\n teacherInstructions = {},\n withRubric = {},\n language = {},\n languageChoices = {},\n mathMlOptions = {},\n } = configuration || {};\n const {\n backgroundImageEnabled,\n promptEnabled,\n spellCheckEnabled,\n teacherInstructionsEnabled,\n toolbarEditorPosition,\n } = model || {};\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 backgroundImageEnabled: backgroundImage.settings && toggle(backgroundImage.label),\n promptEnabled: prompt.settings && toggle(prompt.label),\n 'language.enabled': language.settings && toggle(language.label, true),\n language: language.settings && language.enabled && dropdown(languageChoices.label, languageChoices.options),\n };\n\n const panelProperties = {\n teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),\n spellCheckEnabled: spellCheck.settings && toggle(spellCheck.label),\n rubricEnabled: withRubric?.settings && toggle(withRubric?.label),\n };\n\n return (\n <layout.ConfigLayout\n dimensions={contentDimensions}\n hideSettings={settingsPanelDisabled}\n settings={\n <Panel\n model={model}\n onChangeModel={onModelChanged}\n configuration={configuration}\n onChangeConfiguration={onConfigurationChanged}\n groups={{\n Settings: panelSettings,\n Properties: panelProperties,\n }}\n />\n }\n >\n {teacherInstructionsEnabled && (\n <InputContainer label={teacherInstructions.label} className={classes.promptHolder}>\n <EditableHtml\n markup={model.teacherInstructions || ''}\n onChange={this.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 mathMlOptions={mathMlOptions}\n />\n </InputContainer>\n )}\n\n {promptEnabled && (\n <InputContainer label=\"Item Stem\" className={classes.promptHolder}>\n <EditableHtml\n markup={model.prompt}\n onChange={this.onPromptChanged}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n imageSupport={imageSupport}\n maxImageWidth={defaultImageMaxWidth}\n maxImageHeight={defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n </InputContainer>\n )}\n\n {backgroundImageEnabled && (\n <React.Fragment>\n <Typography variant=\"subheading\">Define Background Image</Typography>\n\n <ImageContainer\n imageUrl={model.imageUrl}\n onUpdateImageDimension={this.onUpdateImageDimension}\n onImageUpload={this.onImageUpload}\n imageDimensions={model.imageDimensions}\n />\n </React.Fragment>\n )}\n </layout.ConfigLayout>\n );\n }\n}\n\nconst styles = (theme) => ({\n promptHolder: {\n paddingTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n width: '100%',\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 onModelChanged: PropTypes.func.isRequired,\n onConfigurationChanged: PropTypes.func.isRequired,\n};\n\nexport default withStyles(styles)(Root);\n"],"file":"root.js"}
@@ -9,7 +9,7 @@
9
9
  "dependencies": {
10
10
  "@material-ui/core": "^3.9.2",
11
11
  "@pie-framework/pie-configure-events": "^1.3.0",
12
- "@pie-lib/pie-toolbox": "1.8.3-next.17",
12
+ "@pie-lib/pie-toolbox": "1.8.1",
13
13
  "classnames": "^2.2.6",
14
14
  "debug": "^3.1.0",
15
15
  "lodash": "^4.17.15",
@@ -87,7 +87,7 @@ exports[`Root snapshot renders 1`] = `
87
87
  <Component
88
88
  label="Item Stem"
89
89
  >
90
- <ForwardRef
90
+ <EditableHtml
91
91
  allowValidation={false}
92
92
  languageCharactersProps={
93
93
  Array [
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+ var _default = {
8
+ prompt: 'This is the question prompt',
9
+ imageUrl: '',
10
+ imageDimensions: {
11
+ height: 0,
12
+ width: 0
13
+ }
14
+ };
15
+ exports["default"] = _default;
16
+ //# sourceMappingURL=defaults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/defaults.js"],"names":["prompt","imageUrl","imageDimensions","height","width"],"mappings":";;;;;;eAAe;AACbA,EAAAA,MAAM,EAAE,6BADK;AAEbC,EAAAA,QAAQ,EAAE,EAFG;AAGbC,EAAAA,eAAe,EAAE;AACfC,IAAAA,MAAM,EAAE,CADO;AAEfC,IAAAA,KAAK,EAAE;AAFQ;AAHJ,C","sourcesContent":["export default {\n prompt: 'This is the question prompt',\n imageUrl: '',\n imageDimensions: {\n height: 0,\n width: 0,\n },\n};\n"],"file":"defaults.js"}
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.createDefaultModel = void 0;
9
+ exports.model = model;
10
+ exports.normalize = void 0;
11
+ exports.outcome = outcome;
12
+
13
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
14
+
15
+ var _debug = _interopRequireDefault(require("debug"));
16
+
17
+ var _defaults = _interopRequireDefault(require("./defaults"));
18
+
19
+ 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; }
20
+
21
+ 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; }
22
+
23
+ var log = (0, _debug["default"])('pie-elements:drawing-response:controller');
24
+
25
+ var normalize = function normalize(question) {
26
+ return _objectSpread({
27
+ promptEnabled: true,
28
+ teacherInstructionsEnabled: true,
29
+ studentInstructionsEnabled: true,
30
+ backgroundImageEnabled: true
31
+ }, question);
32
+ };
33
+
34
+ exports.normalize = normalize;
35
+
36
+ function model(question, session, env) {
37
+ var normalizedQuestion = normalize(question);
38
+ var imageUrl = normalizedQuestion.imageUrl,
39
+ imageDimensions = normalizedQuestion.imageDimensions,
40
+ prompt = normalizedQuestion.prompt,
41
+ promptEnabled = normalizedQuestion.promptEnabled,
42
+ backgroundImageEnabled = normalizedQuestion.backgroundImageEnabled,
43
+ language = normalizedQuestion.language;
44
+ return new Promise(function (resolve) {
45
+ var out = {
46
+ disabled: env.mode !== 'gather',
47
+ mode: env.mode,
48
+ imageDimensions: imageDimensions,
49
+ imageUrl: imageUrl,
50
+ prompt: promptEnabled ? prompt : null,
51
+ backgroundImageEnabled: backgroundImageEnabled,
52
+ language: language
53
+ };
54
+
55
+ if (env.role === 'instructor' && (env.mode === 'view' || env.mode === 'evaluate')) {
56
+ out.teacherInstructions = normalizedQuestion.teacherInstructionsEnabled ? normalizedQuestion.teacherInstructions : null;
57
+ } else {
58
+ out.teacherInstructions = null;
59
+ }
60
+
61
+ resolve(out);
62
+ });
63
+ }
64
+
65
+ var createDefaultModel = function createDefaultModel() {
66
+ var model = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
67
+ return new Promise(function (resolve) {
68
+ resolve(_objectSpread(_objectSpread({}, _defaults["default"]), model));
69
+ });
70
+ };
71
+
72
+ exports.createDefaultModel = createDefaultModel;
73
+
74
+ function
75
+ /*config, session*/
76
+ outcome() {
77
+ return new Promise(function (resolve) {
78
+ log('outcome...');
79
+ resolve({
80
+ score: 0,
81
+ completed: 'n/a',
82
+ note: 'Requires manual scoring'
83
+ });
84
+ });
85
+ }
86
+ //# sourceMappingURL=index.js.map