@pie-element/drawing-response 4.2.3-next.0 → 4.2.3-next.2

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.
@@ -69,7 +69,7 @@ var DrawableResponseConfigure = /*#__PURE__*/function (_HTMLElement) {
69
69
  case 0:
70
70
  _ref2 = c || {}, withRubric = _ref2.withRubric;
71
71
 
72
- if (withRubric.enabled && !_this._model.rubricEnabled) {
72
+ if (withRubric.forceEnabled && !_this._model.rubricEnabled) {
73
73
  _this._model.rubricEnabled = true;
74
74
 
75
75
  _this.dispatchEvent(new _pieConfigureEvents.ModelUpdatedEvent(_this._model));
@@ -107,8 +107,8 @@ var DrawableResponseConfigure = /*#__PURE__*/function (_HTMLElement) {
107
107
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onDeleteImage", function (src, done) {
108
108
  _this.dispatchEvent(new _pieConfigureEvents.DeleteImageEvent(src, done));
109
109
  });
110
- _this._model = DrawableResponseConfigure.createDefaultModel();
111
110
  _this._configuration = _defaults["default"].configuration;
111
+ _this._model = DrawableResponseConfigure.createDefaultModel({}, _this._configuration);
112
112
  _this.onModelChanged = _this.onModelChanged.bind((0, _assertThisInitialized2["default"])(_this));
113
113
  return _this;
114
114
  }
@@ -116,7 +116,7 @@ var DrawableResponseConfigure = /*#__PURE__*/function (_HTMLElement) {
116
116
  (0, _createClass2["default"])(DrawableResponseConfigure, [{
117
117
  key: "model",
118
118
  set: function set(s) {
119
- this._model = DrawableResponseConfigure.createDefaultModel(s);
119
+ this._model = DrawableResponseConfigure.createDefaultModel(s, this._configuration);
120
120
 
121
121
  this._render();
122
122
  }
@@ -148,6 +148,7 @@ var DrawableResponseConfigure = /*#__PURE__*/function (_HTMLElement) {
148
148
  key: "_render",
149
149
  value: function _render() {
150
150
  log('_render');
151
+ console.log('this._model.rubricEnabled', this._model.rubricEnabled);
151
152
 
152
153
  var element = /*#__PURE__*/_react["default"].createElement(_root["default"], {
153
154
  model: this._model,
@@ -172,7 +173,17 @@ var DrawableResponseConfigure = /*#__PURE__*/function (_HTMLElement) {
172
173
 
173
174
  exports["default"] = DrawableResponseConfigure;
174
175
  (0, _defineProperty2["default"])(DrawableResponseConfigure, "createDefaultModel", function () {
176
+ var _config$withRubric;
177
+
175
178
  var model = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
176
- return _objectSpread(_objectSpread({}, _defaults["default"].model), model);
179
+ var config = arguments.length > 1 ? arguments[1] : undefined;
180
+
181
+ var defaultModel = _objectSpread(_objectSpread({}, _defaults["default"].model), model);
182
+
183
+ if (config !== null && config !== void 0 && (_config$withRubric = config.withRubric) !== null && _config$withRubric !== void 0 && _config$withRubric.forceEnabled && !defaultModel.rubricEnabled) {
184
+ defaultModel.rubricEnabled = true;
185
+ }
186
+
187
+ return defaultModel;
177
188
  });
178
189
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.js"],"names":["log","DrawableResponseConfigure","c","withRubric","enabled","_model","rubricEnabled","dispatchEvent","ModelUpdatedEvent","m","reset","dispatchModelUpdated","_render","_configuration","verifyRubric","handler","InsertImageEvent","src","done","DeleteImageEvent","createDefaultModel","sensibleDefaults","configuration","onModelChanged","bind","s","resetValue","InsertSoundEvent","DeleteSoundEvent","element","React","createElement","Root","model","onConfigurationChanged","imageSupport","add","insertImage","onDeleteImage","uploadSoundSupport","insertSound","onDeleteSound","ReactDOM","render","HTMLElement"],"mappings":"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","sourcesContent":["import {\n ModelUpdatedEvent,\n DeleteImageEvent,\n InsertImageEvent,\n InsertSoundEvent,\n DeleteSoundEvent\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 = {}) => ({\n ...sensibleDefaults.model,\n ...model,\n });\n\n constructor() {\n super();\n this._model = DrawableResponseConfigure.createDefaultModel();\n this._configuration = sensibleDefaults.configuration;\n this.onModelChanged = this.onModelChanged.bind(this);\n }\n\n verifyRubric = async (c) => {\n const { withRubric } = c || {};\n\n if (withRubric.enabled && !this._model.rubricEnabled) {\n this._model.rubricEnabled = true;\n this.dispatchEvent(new ModelUpdatedEvent(this._model));\n }\n }\n\n set model(s) {\n this._model = DrawableResponseConfigure.createDefaultModel(s);\n this._render();\n }\n\n set configuration(c) {\n this._configuration = c;\n\n this.verifyRubric(this._configuration);\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.verifyRubric(this._configuration);\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 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"}
1
+ {"version":3,"sources":["../src/index.js"],"names":["log","DrawableResponseConfigure","c","withRubric","forceEnabled","_model","rubricEnabled","dispatchEvent","ModelUpdatedEvent","m","reset","dispatchModelUpdated","_render","_configuration","verifyRubric","handler","InsertImageEvent","src","done","DeleteImageEvent","sensibleDefaults","configuration","createDefaultModel","onModelChanged","bind","s","resetValue","InsertSoundEvent","DeleteSoundEvent","console","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 ModelUpdatedEvent,\n DeleteImageEvent,\n InsertImageEvent,\n InsertSoundEvent,\n DeleteSoundEvent\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 (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 this._model = DrawableResponseConfigure.createDefaultModel({}, this._configuration);\n this.onModelChanged = this.onModelChanged.bind(this);\n }\n\n verifyRubric = async (c) => {\n const { withRubric } = c || {};\n\n if (withRubric.forceEnabled && !this._model.rubricEnabled) {\n this._model.rubricEnabled = true;\n this.dispatchEvent(new ModelUpdatedEvent(this._model));\n }\n }\n\n set model(s) {\n this._model = DrawableResponseConfigure.createDefaultModel(s, this._configuration);\n this._render();\n }\n\n set configuration(c) {\n this._configuration = c;\n\n this.verifyRubric(this._configuration);\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.verifyRubric(this._configuration);\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 console.log('this._model.rubricEnabled', this._model.rubricEnabled);\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"}
@@ -162,7 +162,7 @@ var Root = /*#__PURE__*/function (_React$Component) {
162
162
  Properties: {
163
163
  teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),
164
164
  spellCheckEnabled: spellCheck.settings && toggle(spellCheck.label),
165
- rubricEnabled: withRubric.settings && toggle(withRubric.label)
165
+ rubricEnabled: !withRubric.forceEnabled && withRubric.settings && toggle(withRubric.label)
166
166
  }
167
167
  }
168
168
  })
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/root.jsx"],"names":["Panel","settings","toggle","Root","prompt","props","model","onModelChanged","update","teacherInstructions","dimensions","imageDimensions","imageUrl","classes","configuration","imageSupport","uploadSoundSupport","onConfigurationChanged","backgroundImage","spellCheck","maxImageWidth","maxImageHeight","withRubric","teacherInstructionsEnabled","promptEnabled","spellCheckEnabled","backgroundImageEnabled","toolbarOpts","defaultImageMaxWidth","defaultImageMaxHeight","toolbarEditorPosition","position","base","Settings","label","Properties","rubricEnabled","regular","onTeacherInstructionsChanged","language","onPromptChanged","onUpdateImageDimension","onImageUpload","React","Component","styles","theme","marginTop","spacing","unit","paddingTop","width","marginBottom","propTypes","PropTypes","object","isRequired","shape","add","func"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { settings, layout, InputContainer } from '@pie-lib/config-ui';\nimport PropTypes from 'prop-types';\nimport EditableHtml from '@pie-lib/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 } = 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({\n ...update,\n prompt,\n });\n };\n\n onTeacherInstructionsChanged = (teacherInstructions) => {\n const { model, onModelChanged } = this.props;\n\n onModelChanged({\n ...model,\n teacherInstructions,\n });\n };\n\n onUpdateImageDimension = (dimensions) => {\n const { model, onModelChanged } = this.props;\n\n onModelChanged({\n ...model,\n imageDimensions: dimensions,\n });\n };\n\n onImageUpload = (imageUrl) => {\n const { model, onModelChanged } = this.props;\n\n onModelChanged({\n ...model,\n imageUrl,\n });\n };\n\n render() {\n const {\n classes,\n configuration,\n model,\n imageSupport,\n uploadSoundSupport,\n onConfigurationChanged,\n onModelChanged,\n } = this.props;\n const {\n backgroundImage = {},\n prompt = {},\n teacherInstructions = {},\n spellCheck = {},\n maxImageWidth = {},\n maxImageHeight = {},\n withRubric,\n } = configuration || {};\n const {\n teacherInstructionsEnabled,\n promptEnabled,\n spellCheckEnabled,\n backgroundImageEnabled,\n } = model || {};\n const toolbarOpts = {};\n\n const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;\n const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;\n\n switch (model.toolbarEditorPosition) {\n case 'top':\n toolbarOpts.position = 'top';\n break;\n default:\n toolbarOpts.position = 'bottom';\n break;\n }\n\n return (\n <div className={classes.base}>\n <layout.ConfigLayout\n settings={\n <Panel\n model={model}\n onChangeModel={onModelChanged}\n configuration={configuration}\n onChangeConfiguration={onConfigurationChanged}\n groups={{\n Settings: {\n backgroundImageEnabled: backgroundImage.settings && toggle(backgroundImage.label),\n promptEnabled: prompt.settings && toggle(prompt.label)\n },\n Properties: {\n teacherInstructionsEnabled:\n teacherInstructions.settings &&\n toggle(teacherInstructions.label),\n spellCheckEnabled:\n spellCheck.settings && toggle(spellCheck.label),\n rubricEnabled: withRubric.settings && toggle(withRubric.label)\n },\n }}\n />\n }\n >\n <div className={classes.regular}>\n {teacherInstructionsEnabled && (\n <InputContainer\n label={teacherInstructions.label}\n className={classes.prompt}\n >\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 />\n </InputContainer>\n )}\n\n {promptEnabled && (\n <InputContainer label=\"Item Stem\" className={classes.prompt}>\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 />\n </InputContainer>\n )}\n\n {backgroundImageEnabled && (\n <div>\n <Typography className={classes.label} variant=\"subheading\">\n Define Background Image\n </Typography>\n\n <ImageContainer\n imageUrl={model.imageUrl}\n onUpdateImageDimension={this.onUpdateImageDimension}\n onImageUpload={this.onImageUpload}\n imageDimensions={model.imageDimensions}\n />\n </div>\n )}\n </div>\n </layout.ConfigLayout>\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n base: {\n marginTop: theme.spacing.unit * 3,\n },\n label: {\n marginTop: theme.spacing.unit * 4,\n },\n prompt: {\n paddingTop: theme.spacing.unit * 2,\n width: '100%',\n },\n regular: {\n marginBottom: theme.spacing.unit * 3,\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"}
1
+ {"version":3,"sources":["../src/root.jsx"],"names":["Panel","settings","toggle","Root","prompt","props","model","onModelChanged","update","teacherInstructions","dimensions","imageDimensions","imageUrl","classes","configuration","imageSupport","uploadSoundSupport","onConfigurationChanged","backgroundImage","spellCheck","maxImageWidth","maxImageHeight","withRubric","teacherInstructionsEnabled","promptEnabled","spellCheckEnabled","backgroundImageEnabled","toolbarOpts","defaultImageMaxWidth","defaultImageMaxHeight","toolbarEditorPosition","position","base","Settings","label","Properties","rubricEnabled","forceEnabled","regular","onTeacherInstructionsChanged","language","onPromptChanged","onUpdateImageDimension","onImageUpload","React","Component","styles","theme","marginTop","spacing","unit","paddingTop","width","marginBottom","propTypes","PropTypes","object","isRequired","shape","add","func"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { settings, layout, InputContainer } from '@pie-lib/config-ui';\nimport PropTypes from 'prop-types';\nimport EditableHtml from '@pie-lib/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 } = 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({\n ...update,\n prompt,\n });\n };\n\n onTeacherInstructionsChanged = (teacherInstructions) => {\n const { model, onModelChanged } = this.props;\n\n onModelChanged({\n ...model,\n teacherInstructions,\n });\n };\n\n onUpdateImageDimension = (dimensions) => {\n const { model, onModelChanged } = this.props;\n\n onModelChanged({\n ...model,\n imageDimensions: dimensions,\n });\n };\n\n onImageUpload = (imageUrl) => {\n const { model, onModelChanged } = this.props;\n\n onModelChanged({\n ...model,\n imageUrl,\n });\n };\n\n render() {\n const {\n classes,\n configuration,\n model,\n imageSupport,\n uploadSoundSupport,\n onConfigurationChanged,\n onModelChanged,\n } = this.props;\n const {\n backgroundImage = {},\n prompt = {},\n teacherInstructions = {},\n spellCheck = {},\n maxImageWidth = {},\n maxImageHeight = {},\n withRubric,\n } = configuration || {};\n const {\n teacherInstructionsEnabled,\n promptEnabled,\n spellCheckEnabled,\n backgroundImageEnabled,\n } = model || {};\n const toolbarOpts = {};\n\n const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;\n const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;\n\n switch (model.toolbarEditorPosition) {\n case 'top':\n toolbarOpts.position = 'top';\n break;\n default:\n toolbarOpts.position = 'bottom';\n break;\n }\n\n return (\n <div className={classes.base}>\n <layout.ConfigLayout\n settings={\n <Panel\n model={model}\n onChangeModel={onModelChanged}\n configuration={configuration}\n onChangeConfiguration={onConfigurationChanged}\n groups={{\n Settings: {\n backgroundImageEnabled: backgroundImage.settings && toggle(backgroundImage.label),\n promptEnabled: prompt.settings && toggle(prompt.label)\n },\n Properties: {\n teacherInstructionsEnabled:\n teacherInstructions.settings &&\n toggle(teacherInstructions.label),\n spellCheckEnabled:\n spellCheck.settings && toggle(spellCheck.label),\n rubricEnabled: !withRubric.forceEnabled && withRubric.settings && toggle(withRubric.label)\n },\n }}\n />\n }\n >\n <div className={classes.regular}>\n {teacherInstructionsEnabled && (\n <InputContainer\n label={teacherInstructions.label}\n className={classes.prompt}\n >\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 />\n </InputContainer>\n )}\n\n {promptEnabled && (\n <InputContainer label=\"Item Stem\" className={classes.prompt}>\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 />\n </InputContainer>\n )}\n\n {backgroundImageEnabled && (\n <div>\n <Typography className={classes.label} variant=\"subheading\">\n Define Background Image\n </Typography>\n\n <ImageContainer\n imageUrl={model.imageUrl}\n onUpdateImageDimension={this.onUpdateImageDimension}\n onImageUpload={this.onImageUpload}\n imageDimensions={model.imageDimensions}\n />\n </div>\n )}\n </div>\n </layout.ConfigLayout>\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n base: {\n marginTop: theme.spacing.unit * 3,\n },\n label: {\n marginTop: theme.spacing.unit * 4,\n },\n prompt: {\n paddingTop: theme.spacing.unit * 2,\n width: '100%',\n },\n regular: {\n marginBottom: theme.spacing.unit * 3,\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"}
@@ -16,29 +16,37 @@ import sensibleDefaults from './defaults';
16
16
  const log = debug('hotspot:configure');
17
17
 
18
18
  export default class DrawableResponseConfigure extends HTMLElement {
19
- static createDefaultModel = (model = {}) => ({
20
- ...sensibleDefaults.model,
21
- ...model,
22
- });
19
+ static createDefaultModel = (model = {}, config) => {
20
+ const defaultModel = {
21
+ ...sensibleDefaults.model,
22
+ ...model,
23
+ };
24
+
25
+ if (config?.withRubric?.forceEnabled && !defaultModel.rubricEnabled) {
26
+ defaultModel.rubricEnabled = true;
27
+ }
28
+
29
+ return defaultModel;
30
+ };
23
31
 
24
32
  constructor() {
25
33
  super();
26
- this._model = DrawableResponseConfigure.createDefaultModel();
27
34
  this._configuration = sensibleDefaults.configuration;
35
+ this._model = DrawableResponseConfigure.createDefaultModel({}, this._configuration);
28
36
  this.onModelChanged = this.onModelChanged.bind(this);
29
37
  }
30
38
 
31
39
  verifyRubric = async (c) => {
32
40
  const { withRubric } = c || {};
33
41
 
34
- if (withRubric.enabled && !this._model.rubricEnabled) {
42
+ if (withRubric.forceEnabled && !this._model.rubricEnabled) {
35
43
  this._model.rubricEnabled = true;
36
44
  this.dispatchEvent(new ModelUpdatedEvent(this._model));
37
45
  }
38
46
  }
39
47
 
40
48
  set model(s) {
41
- this._model = DrawableResponseConfigure.createDefaultModel(s);
49
+ this._model = DrawableResponseConfigure.createDefaultModel(s, this._configuration);
42
50
  this._render();
43
51
  }
44
52
 
@@ -88,6 +96,8 @@ export default class DrawableResponseConfigure extends HTMLElement {
88
96
 
89
97
  _render() {
90
98
  log('_render');
99
+
100
+ console.log('this._model.rubricEnabled', this._model.rubricEnabled);
91
101
  let element = React.createElement(Root, {
92
102
  model: this._model,
93
103
  configuration: this._configuration,
@@ -107,7 +107,7 @@ export class Root extends React.Component {
107
107
  toggle(teacherInstructions.label),
108
108
  spellCheckEnabled:
109
109
  spellCheck.settings && toggle(spellCheck.label),
110
- rubricEnabled: withRubric.settings && toggle(withRubric.label)
110
+ rubricEnabled: !withRubric.forceEnabled && withRubric.settings && toggle(withRubric.label)
111
111
  },
112
112
  }}
113
113
  />
@@ -131,7 +131,7 @@
131
131
  }
132
132
  },
133
133
  "withRubric": {
134
- "title": "ConfigureProp",
134
+ "title": "ConfigureWithForceProp",
135
135
  "type": "object",
136
136
  "properties": {
137
137
  "settings": {
@@ -143,6 +143,11 @@
143
143
  "description": "Indicates the label for the item that has to be displayed in the Settings Panel",
144
144
  "type": "string",
145
145
  "title": "label"
146
+ },
147
+ "forceEnabled": {
148
+ "description": "Indicates the value for the toggle; if true, this property will not be visible in Settings Panel",
149
+ "type": "boolean",
150
+ "title": "forceEnabled"
146
151
  }
147
152
  }
148
153
  },
@@ -217,7 +222,28 @@
217
222
  "title": "rationale"
218
223
  }
219
224
  }
225
+ },
226
+ "ConfigureWithForceProp": {
227
+ "title": "ConfigureWithForceProp",
228
+ "type": "object",
229
+ "properties": {
230
+ "settings": {
231
+ "description": "Indicates if the item has to be displayed in the Settings Panel",
232
+ "type": "boolean",
233
+ "title": "settings"
234
+ },
235
+ "label": {
236
+ "description": "Indicates the label for the item that has to be displayed in the Settings Panel",
237
+ "type": "string",
238
+ "title": "label"
239
+ },
240
+ "forceEnabled": {
241
+ "description": "Indicates the value for the toggle; if true, this property will not be visible in Settings Panel",
242
+ "type": "boolean",
243
+ "title": "forceEnabled"
244
+ }
245
+ }
220
246
  }
221
247
  },
222
248
  "$schema": "http://json-schema.org/draft-07/schema#"
223
- }
249
+ }
@@ -111,6 +111,10 @@ Indicates if the item has to be displayed in the Settings Panel
111
111
 
112
112
  Indicates the label for the item that has to be displayed in the Settings Panel
113
113
 
114
+ ## `forceEnabled` (boolean)
115
+
116
+ Indicates the value for the toggle; if true, this property will not be visible in Settings Panel
117
+
114
118
  # `showPrompt` (boolean)
115
119
 
116
120
  Determines whether prompt field will be displayed or not
@@ -172,4 +176,20 @@ Indicates the max dimension for images in prompt - this is also the default dime
172
176
 
173
177
  ### `rationale` (number)
174
178
 
175
- Indicates the max dimension for images in rationale
179
+ Indicates the max dimension for images in rationale
180
+
181
+ ## `ConfigureWithForceProp` (object)
182
+
183
+ Properties of the `ConfigureWithForceProp` object:
184
+
185
+ ### `settings` (boolean)
186
+
187
+ Indicates if the item has to be displayed in the Settings Panel
188
+
189
+ ### `label` (string)
190
+
191
+ Indicates the label for the item that has to be displayed in the Settings Panel
192
+
193
+ ### `forceEnabled` (boolean)
194
+
195
+ Indicates the value for the toggle; if true, this property will not be visible in Settings Panel
@@ -168,6 +168,27 @@
168
168
  }
169
169
  }
170
170
  },
171
+ "ConfigureWithForceProp": {
172
+ "title": "ConfigureWithForceProp",
173
+ "type": "object",
174
+ "properties": {
175
+ "settings": {
176
+ "description": "Indicates if the item has to be displayed in the Settings Panel",
177
+ "type": "boolean",
178
+ "title": "settings"
179
+ },
180
+ "label": {
181
+ "description": "Indicates the label for the item that has to be displayed in the Settings Panel",
182
+ "type": "string",
183
+ "title": "label"
184
+ },
185
+ "forceEnabled": {
186
+ "description": "Indicates the value for the toggle; if true, this property will not be visible in Settings Panel",
187
+ "type": "boolean",
188
+ "title": "forceEnabled"
189
+ }
190
+ }
191
+ },
171
192
  "Dimension": {
172
193
  "title": "Dimension",
173
194
  "type": "object",
@@ -128,6 +128,22 @@ Indicates the max dimension for images in prompt - this is also the default dime
128
128
 
129
129
  Indicates the max dimension for images in rationale
130
130
 
131
+ ## `ConfigureWithForceProp` (object)
132
+
133
+ Properties of the `ConfigureWithForceProp` object:
134
+
135
+ ### `settings` (boolean)
136
+
137
+ Indicates if the item has to be displayed in the Settings Panel
138
+
139
+ ### `label` (string)
140
+
141
+ Indicates the label for the item that has to be displayed in the Settings Panel
142
+
143
+ ### `forceEnabled` (boolean)
144
+
145
+ Indicates the value for the toggle; if true, this property will not be visible in Settings Panel
146
+
131
147
  ## `Dimension` (object)
132
148
 
133
149
  Properties of the `Dimension` object:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pie-element/drawing-response",
3
- "version": "4.2.3-next.0+32927746d",
3
+ "version": "4.2.3-next.2+efeedec0b",
4
4
  "description": "",
5
5
  "repository": "pie-framework/pie-elements",
6
6
  "publishConfig": {
@@ -24,7 +24,7 @@
24
24
  },
25
25
  "author": "pie framework developers",
26
26
  "license": "ISC",
27
- "gitHead": "32927746da24e264830806acff5a4f8a46cfcd1c",
27
+ "gitHead": "efeedec0b1046804ab1acac50834b3e6eeb67571",
28
28
  "scripts": {
29
29
  "postpublish": "../../scripts/postpublish"
30
30
  },