@pie-element/drag-in-the-blank 4.13.6-next.8 → 4.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,25 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [4.14.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/drag-in-the-blank@4.13.5...@pie-element/drag-in-the-blank@4.14.0) (2023-09-04)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * update pie-libs PD-3051 ([1e1a7a3](https://github.com/pie-framework/pie-elements/commit/1e1a7a38732eff5585ad789aea5a08c5e94720ae))
12
+ * update snapshots ([7f7432d](https://github.com/pie-framework/pie-elements/commit/7f7432d4e79747bd8824470ea19ebf7d40617fc5))
13
+ * updated pie-libs PD-2765, PD-3051 ([e6f5b17](https://github.com/pie-framework/pie-elements/commit/e6f5b17c95faf426898f897651863089a54ff3ff))
14
+
15
+
16
+ ### Features
17
+
18
+ * **drag-in-the-blank:** translations PD-2802 PD-2795 ([4cf0868](https://github.com/pie-framework/pie-elements/commit/4cf08686055b6cd658aa0f73a14ce1aa4f7246a3))
19
+ * **select-text, inline-dropdown:** PD-2797-PD-2802 update documentation ([b8ba6c7](https://github.com/pie-framework/pie-elements/commit/b8ba6c7d12eea9d0d729a38e18e87a21ea496a8b))
20
+
21
+
22
+
23
+
24
+
6
25
  ## [4.13.5](https://github.com/pie-framework/pie-elements/compare/@pie-element/drag-in-the-blank@4.13.4...@pie-element/drag-in-the-blank@4.13.5) (2023-08-21)
7
26
 
8
27
 
@@ -3,6 +3,24 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [4.11.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/drag-in-the-blank-configure@4.10.5...@pie-element/drag-in-the-blank-configure@4.11.0) (2023-09-04)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * update pie-libs PD-3051 ([1e1a7a3](https://github.com/pie-framework/pie-elements/commit/1e1a7a38732eff5585ad789aea5a08c5e94720ae))
12
+ * update snapshots ([7f7432d](https://github.com/pie-framework/pie-elements/commit/7f7432d4e79747bd8824470ea19ebf7d40617fc5))
13
+ * updated pie-libs PD-2765, PD-3051 ([e6f5b17](https://github.com/pie-framework/pie-elements/commit/e6f5b17c95faf426898f897651863089a54ff3ff))
14
+
15
+
16
+ ### Features
17
+
18
+ * **drag-in-the-blank:** translations PD-2802 PD-2795 ([4cf0868](https://github.com/pie-framework/pie-elements/commit/4cf08686055b6cd658aa0f73a14ce1aa4f7246a3))
19
+
20
+
21
+
22
+
23
+
6
24
  ## [4.10.5](https://github.com/pie-framework/pie-elements/compare/@pie-element/drag-in-the-blank-configure@4.10.4...@pie-element/drag-in-the-blank-configure@4.10.5) (2023-08-21)
7
25
 
8
26
 
@@ -74,6 +74,15 @@ var _default = {
74
74
  mathMlOptions: {
75
75
  mmlOutput: false,
76
76
  mmlEditing: false
77
+ },
78
+ language: {
79
+ settings: false,
80
+ label: 'Specify Language',
81
+ enabled: false
82
+ },
83
+ languageChoices: {
84
+ label: 'Language Choices',
85
+ options: []
77
86
  }
78
87
  }
79
88
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/defaults.js"],"names":["model","disabled","mode","prompt","markup","choices","choicesPosition","correctResponse","duplicates","rationaleEnabled","promptEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","toolbarEditorPosition","configuration","spellCheck","label","settings","enabled","lockChoiceOrder","partialScoring","rationale","settingsPanelDisabled","teacherInstructions","minChoices","maxResponseAreas","maxImageWidth","maxImageHeight","withRubric","mathMlOptions","mmlOutput","mmlEditing"],"mappings":";;;;;;eAAe;AACbA,EAAAA,KAAK,EAAE;AACLC,IAAAA,QAAQ,EAAE,KADL;AAELC,IAAAA,IAAI,EAAE,QAFD;AAGLC,IAAAA,MAAM,EAAE,yCAHH;AAILC,IAAAA,MAAM,EAAE,EAJH;AAKLC,IAAAA,OAAO,EAAE,EALJ;AAMLC,IAAAA,eAAe,EAAE,OANZ;AAOLC,IAAAA,eAAe,EAAE,EAPZ;AAQLC,IAAAA,UAAU,EAAE,IARP;AASLC,IAAAA,gBAAgB,EAAE,IATb;AAULC,IAAAA,aAAa,EAAE,IAVV;AAWLC,IAAAA,0BAA0B,EAAE,IAXvB;AAYLC,IAAAA,0BAA0B,EAAE,IAZvB;AAaLC,IAAAA,qBAAqB,EAAE;AAblB,GADM;AAgBbC,EAAAA,aAAa,EAAE;AACbC,IAAAA,UAAU,EAAE;AACVC,MAAAA,KAAK,EAAE,YADG;AAEVC,MAAAA,QAAQ,EAAE,KAFA;AAGVC,MAAAA,OAAO,EAAE;AAHC,KADC;AAMbZ,IAAAA,eAAe,EAAE;AACfW,MAAAA,QAAQ,EAAE,IADK;AAEfD,MAAAA,KAAK,EAAE;AAFQ,KANJ;AAUbb,IAAAA,MAAM,EAAE;AACNc,MAAAA,QAAQ,EAAE,IADJ;AAEND,MAAAA,KAAK,EAAE;AAFD,KAVK;AAcbR,IAAAA,UAAU,EAAE;AACVS,MAAAA,QAAQ,EAAE,IADA;AAEVD,MAAAA,KAAK,EAAE;AAFG,KAdC;AAkBbG,IAAAA,eAAe,EAAE;AACfF,MAAAA,QAAQ,EAAE,IADK;AAEfD,MAAAA,KAAK,EAAE;AAFQ,KAlBJ;AAsBbI,IAAAA,cAAc,EAAE;AACdH,MAAAA,QAAQ,EAAE,KADI;AAEdD,MAAAA,KAAK,EAAE;AAFO,KAtBH;AA0BbK,IAAAA,SAAS,EAAE;AACTJ,MAAAA,QAAQ,EAAE,IADD;AAETD,MAAAA,KAAK,EAAE;AAFE,KA1BE;AA8BbM,IAAAA,qBAAqB,EAAE,KA9BV;AA+BbC,IAAAA,mBAAmB,EAAE;AACnBN,MAAAA,QAAQ,EAAE,IADS;AAEnBD,MAAAA,KAAK,EAAE;AAFY,KA/BR;AAmCbQ,IAAAA,UAAU,EAAE,CAnCC;AAoCbC,IAAAA,gBAAgB,EAAE,EApCL;AAqCbC,IAAAA,aAAa,EAAE;AACbH,MAAAA,mBAAmB,EAAE,GADR;AAEbpB,MAAAA,MAAM,EAAE,GAFK;AAGbkB,MAAAA,SAAS,EAAE;AAHE,KArCF;AA0CbM,IAAAA,cAAc,EAAE;AACdJ,MAAAA,mBAAmB,EAAE,GADP;AAEdpB,MAAAA,MAAM,EAAE,GAFM;AAGdkB,MAAAA,SAAS,EAAE;AAHG,KA1CH;AA+CbO,IAAAA,UAAU,EAAE;AACVX,MAAAA,QAAQ,EAAE,KADA;AAEVD,MAAAA,KAAK,EAAE;AAFG,KA/CC;AAmDba,IAAAA,aAAa,EAAE;AACbC,MAAAA,SAAS,EAAE,KADE;AAEbC,MAAAA,UAAU,EAAE;AAFC;AAnDF;AAhBF,C","sourcesContent":["export default {\n model: {\n disabled: false,\n mode: 'gather',\n prompt: 'Use the inputs to complete the sentence',\n markup: '',\n choices: [],\n choicesPosition: 'below',\n correctResponse: {},\n duplicates: true,\n rationaleEnabled: true,\n promptEnabled: true,\n teacherInstructionsEnabled: true,\n studentInstructionsEnabled: true,\n toolbarEditorPosition: 'bottom',\n },\n configuration: {\n spellCheck: {\n label: 'Spellcheck',\n settings: false,\n enabled: true,\n },\n choicesPosition: {\n settings: true,\n label: 'Choices Position',\n },\n prompt: {\n settings: true,\n label: 'Prompt',\n },\n duplicates: {\n settings: true,\n label: 'Duplicates',\n },\n lockChoiceOrder: {\n settings: true,\n label: 'Lock Choice Order',\n },\n partialScoring: {\n settings: false,\n label: 'Allow Partial Scoring',\n },\n rationale: {\n settings: true,\n label: 'Rationale',\n },\n settingsPanelDisabled: false,\n teacherInstructions: {\n settings: true,\n label: 'Teacher Instructions',\n },\n minChoices: 2,\n maxResponseAreas: 10,\n maxImageWidth: {\n teacherInstructions: 300,\n prompt: 300,\n rationale: 300,\n },\n maxImageHeight: {\n teacherInstructions: 300,\n prompt: 300,\n rationale: 300,\n },\n withRubric: {\n settings: false,\n label: 'Add Rubric',\n },\n mathMlOptions: {\n mmlOutput: false,\n mmlEditing: false,\n },\n },\n};\n"],"file":"defaults.js"}
1
+ {"version":3,"sources":["../src/defaults.js"],"names":["model","disabled","mode","prompt","markup","choices","choicesPosition","correctResponse","duplicates","rationaleEnabled","promptEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","toolbarEditorPosition","configuration","spellCheck","label","settings","enabled","lockChoiceOrder","partialScoring","rationale","settingsPanelDisabled","teacherInstructions","minChoices","maxResponseAreas","maxImageWidth","maxImageHeight","withRubric","mathMlOptions","mmlOutput","mmlEditing","language","languageChoices","options"],"mappings":";;;;;;eAAe;AACbA,EAAAA,KAAK,EAAE;AACLC,IAAAA,QAAQ,EAAE,KADL;AAELC,IAAAA,IAAI,EAAE,QAFD;AAGLC,IAAAA,MAAM,EAAE,yCAHH;AAILC,IAAAA,MAAM,EAAE,EAJH;AAKLC,IAAAA,OAAO,EAAE,EALJ;AAMLC,IAAAA,eAAe,EAAE,OANZ;AAOLC,IAAAA,eAAe,EAAE,EAPZ;AAQLC,IAAAA,UAAU,EAAE,IARP;AASLC,IAAAA,gBAAgB,EAAE,IATb;AAULC,IAAAA,aAAa,EAAE,IAVV;AAWLC,IAAAA,0BAA0B,EAAE,IAXvB;AAYLC,IAAAA,0BAA0B,EAAE,IAZvB;AAaLC,IAAAA,qBAAqB,EAAE;AAblB,GADM;AAgBbC,EAAAA,aAAa,EAAE;AACbC,IAAAA,UAAU,EAAE;AACVC,MAAAA,KAAK,EAAE,YADG;AAEVC,MAAAA,QAAQ,EAAE,KAFA;AAGVC,MAAAA,OAAO,EAAE;AAHC,KADC;AAMbZ,IAAAA,eAAe,EAAE;AACfW,MAAAA,QAAQ,EAAE,IADK;AAEfD,MAAAA,KAAK,EAAE;AAFQ,KANJ;AAUbb,IAAAA,MAAM,EAAE;AACNc,MAAAA,QAAQ,EAAE,IADJ;AAEND,MAAAA,KAAK,EAAE;AAFD,KAVK;AAcbR,IAAAA,UAAU,EAAE;AACVS,MAAAA,QAAQ,EAAE,IADA;AAEVD,MAAAA,KAAK,EAAE;AAFG,KAdC;AAkBbG,IAAAA,eAAe,EAAE;AACfF,MAAAA,QAAQ,EAAE,IADK;AAEfD,MAAAA,KAAK,EAAE;AAFQ,KAlBJ;AAsBbI,IAAAA,cAAc,EAAE;AACdH,MAAAA,QAAQ,EAAE,KADI;AAEdD,MAAAA,KAAK,EAAE;AAFO,KAtBH;AA0BbK,IAAAA,SAAS,EAAE;AACTJ,MAAAA,QAAQ,EAAE,IADD;AAETD,MAAAA,KAAK,EAAE;AAFE,KA1BE;AA8BbM,IAAAA,qBAAqB,EAAE,KA9BV;AA+BbC,IAAAA,mBAAmB,EAAE;AACnBN,MAAAA,QAAQ,EAAE,IADS;AAEnBD,MAAAA,KAAK,EAAE;AAFY,KA/BR;AAmCbQ,IAAAA,UAAU,EAAE,CAnCC;AAoCbC,IAAAA,gBAAgB,EAAE,EApCL;AAqCbC,IAAAA,aAAa,EAAE;AACbH,MAAAA,mBAAmB,EAAE,GADR;AAEbpB,MAAAA,MAAM,EAAE,GAFK;AAGbkB,MAAAA,SAAS,EAAE;AAHE,KArCF;AA0CbM,IAAAA,cAAc,EAAE;AACdJ,MAAAA,mBAAmB,EAAE,GADP;AAEdpB,MAAAA,MAAM,EAAE,GAFM;AAGdkB,MAAAA,SAAS,EAAE;AAHG,KA1CH;AA+CbO,IAAAA,UAAU,EAAE;AACVX,MAAAA,QAAQ,EAAE,KADA;AAEVD,MAAAA,KAAK,EAAE;AAFG,KA/CC;AAmDba,IAAAA,aAAa,EAAE;AACbC,MAAAA,SAAS,EAAE,KADE;AAEbC,MAAAA,UAAU,EAAE;AAFC,KAnDF;AAuDbC,IAAAA,QAAQ,EAAE;AACRf,MAAAA,QAAQ,EAAE,KADF;AAERD,MAAAA,KAAK,EAAE,kBAFC;AAGRE,MAAAA,OAAO,EAAE;AAHD,KAvDG;AA4Dbe,IAAAA,eAAe,EAAE;AACfjB,MAAAA,KAAK,EAAE,kBADQ;AAEfkB,MAAAA,OAAO,EAAE;AAFM;AA5DJ;AAhBF,C","sourcesContent":["export default {\n model: {\n disabled: false,\n mode: 'gather',\n prompt: 'Use the inputs to complete the sentence',\n markup: '',\n choices: [],\n choicesPosition: 'below',\n correctResponse: {},\n duplicates: true,\n rationaleEnabled: true,\n promptEnabled: true,\n teacherInstructionsEnabled: true,\n studentInstructionsEnabled: true,\n toolbarEditorPosition: 'bottom',\n },\n configuration: {\n spellCheck: {\n label: 'Spellcheck',\n settings: false,\n enabled: true,\n },\n choicesPosition: {\n settings: true,\n label: 'Choices Position',\n },\n prompt: {\n settings: true,\n label: 'Prompt',\n },\n duplicates: {\n settings: true,\n label: 'Duplicates',\n },\n lockChoiceOrder: {\n settings: true,\n label: 'Lock Choice Order',\n },\n partialScoring: {\n settings: false,\n label: 'Allow Partial Scoring',\n },\n rationale: {\n settings: true,\n label: 'Rationale',\n },\n settingsPanelDisabled: false,\n teacherInstructions: {\n settings: true,\n label: 'Teacher Instructions',\n },\n minChoices: 2,\n maxResponseAreas: 10,\n maxImageWidth: {\n teacherInstructions: 300,\n prompt: 300,\n rationale: 300,\n },\n maxImageHeight: {\n teacherInstructions: 300,\n prompt: 300,\n rationale: 300,\n },\n withRubric: {\n settings: false,\n label: 'Add Rubric',\n },\n mathMlOptions: {\n mmlOutput: false,\n mmlEditing: false,\n },\n language: {\n settings: false,\n label: 'Specify Language',\n enabled: false,\n },\n languageChoices: {\n label: 'Language Choices',\n options: [],\n },\n },\n};\n"],"file":"defaults.js"}
@@ -80,7 +80,39 @@ var DragInTheBlank = /*#__PURE__*/function (_HTMLElement) {
80
80
  }, {
81
81
  key: "configuration",
82
82
  set: function set(c) {
83
- this._configuration = (0, _defaults["default"])(c, _defaults2["default"].configuration);
83
+ var _this2 = this;
84
+
85
+ this._configuration = (0, _defaults["default"])(c, _defaults2["default"].configuration); // if language:enabled is true, then the corresponding default item model should include a language value;
86
+ // if it is false, then the language field should be omitted from the item model.
87
+ // if a default item model includes a language value (e.g., en_US) and the corresponding authoring view settings have language:settings = true,
88
+ // then (a) language:enabled should also be true, and (b) that default language value should be represented in languageChoices[] (as a key).
89
+
90
+ if (c.language.enabled) {
91
+ var _c$languageChoices, _c$languageChoices$op;
92
+
93
+ if ((_c$languageChoices = c.languageChoices) !== null && _c$languageChoices !== void 0 && (_c$languageChoices$op = _c$languageChoices.options) !== null && _c$languageChoices$op !== void 0 && _c$languageChoices$op.length) {
94
+ this._model.language = c.languageChoices.options[0].value;
95
+ }
96
+ } else if (c.language.settings && this._model.language) {
97
+ this._configuration.language.enabled = true;
98
+
99
+ if (!this._configuration.languageChoices.options || !this._configuration.languageChoices.options.length) {
100
+ this._configuration.languageChoices.options = [];
101
+ } // check if the language is already included in the languageChoices.options array
102
+ // and if not, then add it.
103
+
104
+
105
+ if (!this._configuration.languageChoices.options.find(function (option) {
106
+ return option.value === _this2._model.language;
107
+ })) {
108
+ this._configuration.languageChoices.options.push({
109
+ value: this._model.language,
110
+ label: this._model.language
111
+ });
112
+ }
113
+ } else {
114
+ delete this._model.language;
115
+ }
84
116
 
85
117
  this._render();
86
118
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.js"],"names":["log","DragInTheBlank","_model","prepareModel","_configuration","sensibleDefaults","configuration","onModelChanged","bind","onConfigurationChanged","m","formModel","markup","model","_render","c","s","_disableSidePanel","reset","resetValue","dispatchEvent","ModelUpdatedEvent","dispatchModelUpdated","handler","InsertImageEvent","src","done","DeleteImageEvent","InsertSoundEvent","DeleteSoundEvent","element","React","createElement","Main","disableSidePanel","imageSupport","add","insertImage","onDeleteImage","uploadSoundSupport","insertSound","onDeleteSound","ReactDOM","render","HTMLElement","joinedObj","slateMarkup","choices","correctResponse","processedMarkup"],"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 Main from './main';\nimport debug from 'debug';\nimport defaults from 'lodash/defaults';\n\nimport sensibleDefaults from './defaults';\nimport { processMarkup, createSlateMarkup } from './markupUtils';\n\nconst log = debug('multiple-choice:configure');\n\nexport default class DragInTheBlank extends HTMLElement {\n static prepareModel = (model = {}) => {\n const joinedObj = {\n ...sensibleDefaults.model,\n ...model,\n };\n const slateMarkup =\n model.slateMarkup || createSlateMarkup(joinedObj.markup, joinedObj.choices, joinedObj.correctResponse);\n const processedMarkup = processMarkup(slateMarkup);\n\n return {\n ...joinedObj,\n slateMarkup,\n markup: processedMarkup.markup,\n correctResponse: processedMarkup.correctResponse,\n };\n };\n\n constructor() {\n super();\n this._model = DragInTheBlank.prepareModel();\n this._configuration = sensibleDefaults.configuration;\n this.onModelChanged = this.onModelChanged.bind(this);\n this.onConfigurationChanged = this.onConfigurationChanged.bind(this);\n }\n\n set model(m) {\n const formModel = {\n ...m,\n markup: `<span>${m.markup || sensibleDefaults.model.markup}</span>`,\n };\n\n this._model = DragInTheBlank.prepareModel(formModel);\n this._render();\n }\n\n set configuration(c) {\n this._configuration = defaults(c, sensibleDefaults.configuration);\n this._render();\n }\n\n set disableSidePanel(s) {\n this._disableSidePanel = s;\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 = DragInTheBlank.prepareModel(m);\n this._render();\n this.dispatchModelUpdated(reset);\n }\n\n onConfigurationChanged(c) {\n this._configuration = c;\n this._render();\n }\n\n /** @param {done, progress, file} handler */\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(Main, {\n model: this._model,\n configuration: this._configuration,\n onModelChanged: this.onModelChanged,\n onConfigurationChanged: this.onConfigurationChanged,\n disableSidePanel: this._disableSidePanel,\n imageSupport: {\n add: this.insertImage.bind(this),\n delete: this.onDeleteImage.bind(this),\n },\n uploadSoundSupport: {\n add: this.insertSound.bind(this),\n delete: this.onDeleteSound.bind(this),\n },\n });\n\n ReactDOM.render(element, this);\n }\n}\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../src/index.js"],"names":["log","DragInTheBlank","_model","prepareModel","_configuration","sensibleDefaults","configuration","onModelChanged","bind","onConfigurationChanged","m","formModel","markup","model","_render","c","language","enabled","languageChoices","options","length","value","settings","find","option","push","label","s","_disableSidePanel","reset","resetValue","dispatchEvent","ModelUpdatedEvent","dispatchModelUpdated","handler","InsertImageEvent","src","done","DeleteImageEvent","InsertSoundEvent","DeleteSoundEvent","element","React","createElement","Main","disableSidePanel","imageSupport","add","insertImage","onDeleteImage","uploadSoundSupport","insertSound","onDeleteSound","ReactDOM","render","HTMLElement","joinedObj","slateMarkup","choices","correctResponse","processedMarkup"],"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 Main from './main';\nimport debug from 'debug';\nimport defaults from 'lodash/defaults';\n\nimport sensibleDefaults from './defaults';\nimport { processMarkup, createSlateMarkup } from './markupUtils';\n\nconst log = debug('multiple-choice:configure');\n\nexport default class DragInTheBlank extends HTMLElement {\n static prepareModel = (model = {}) => {\n const joinedObj = {\n ...sensibleDefaults.model,\n ...model,\n };\n const slateMarkup =\n model.slateMarkup || createSlateMarkup(joinedObj.markup, joinedObj.choices, joinedObj.correctResponse);\n const processedMarkup = processMarkup(slateMarkup);\n\n return {\n ...joinedObj,\n slateMarkup,\n markup: processedMarkup.markup,\n correctResponse: processedMarkup.correctResponse,\n };\n };\n\n constructor() {\n super();\n this._model = DragInTheBlank.prepareModel();\n this._configuration = sensibleDefaults.configuration;\n this.onModelChanged = this.onModelChanged.bind(this);\n this.onConfigurationChanged = this.onConfigurationChanged.bind(this);\n }\n\n set model(m) {\n const formModel = {\n ...m,\n markup: `<span>${m.markup || sensibleDefaults.model.markup}</span>`,\n };\n\n this._model = DragInTheBlank.prepareModel(formModel);\n this._render();\n }\n\n set configuration(c) {\n this._configuration = defaults(c, sensibleDefaults.configuration);\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 (c.language.enabled) {\n if (c.languageChoices?.options?.length) {\n this._model.language = c.languageChoices.options[0].value;\n }\n } else if (c.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 set disableSidePanel(s) {\n this._disableSidePanel = s;\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 = DragInTheBlank.prepareModel(m);\n this._render();\n this.dispatchModelUpdated(reset);\n }\n\n onConfigurationChanged(c) {\n this._configuration = c;\n this._render();\n }\n\n /** @param {done, progress, file} handler */\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(Main, {\n model: this._model,\n configuration: this._configuration,\n onModelChanged: this.onModelChanged,\n onConfigurationChanged: this.onConfigurationChanged,\n disableSidePanel: this._disableSidePanel,\n imageSupport: {\n add: this.insertImage.bind(this),\n delete: this.onDeleteImage.bind(this),\n },\n uploadSoundSupport: {\n add: this.insertSound.bind(this),\n delete: this.onDeleteSound.bind(this),\n },\n });\n\n ReactDOM.render(element, this);\n }\n}\n"],"file":"index.js"}
@@ -210,7 +210,11 @@ var Main = /*#__PURE__*/function (_React$Component) {
210
210
  _ref$withRubric = _ref.withRubric,
211
211
  withRubric = _ref$withRubric === void 0 ? {} : _ref$withRubric,
212
212
  _ref$mathMlOptions = _ref.mathMlOptions,
213
- mathMlOptions = _ref$mathMlOptions === void 0 ? {} : _ref$mathMlOptions;
213
+ mathMlOptions = _ref$mathMlOptions === void 0 ? {} : _ref$mathMlOptions,
214
+ _ref$language = _ref.language,
215
+ language = _ref$language === void 0 ? {} : _ref$language,
216
+ _ref$languageChoices = _ref.languageChoices,
217
+ languageChoices = _ref$languageChoices === void 0 ? {} : _ref$languageChoices;
214
218
 
215
219
  var _ref2 = model || {},
216
220
  rationaleEnabled = _ref2.rationaleEnabled,
@@ -235,7 +239,9 @@ var Main = /*#__PURE__*/function (_React$Component) {
235
239
  partialScoring: partialScoring.settings && toggle(partialScoring.label),
236
240
  duplicates: duplicates.settings && toggle(duplicates.label),
237
241
  lockChoiceOrder: lockChoiceOrder.settings && toggle(lockChoiceOrder.label),
238
- choicesPosition: choicesPosition.settings && dropdown(choicesPosition.label, ['above', 'below', 'left', 'right'])
242
+ choicesPosition: choicesPosition.settings && dropdown(choicesPosition.label, ['above', 'below', 'left', 'right']),
243
+ 'language.enabled': language.settings && toggle(language.label, true),
244
+ language: language.settings && language.enabled && dropdown(languageChoices.label, languageChoices.options)
239
245
  };
240
246
  var panelProperties = {
241
247
  teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/main.jsx"],"names":["dropdown","settings","toggle","Panel","styles","theme","promptHolder","width","paddingTop","spacing","unit","marginBottom","markup","minHeight","paddingBottom","choiceConfiguration","text","fontSize","typography","tooltip","whiteSpace","maxWidth","errorText","color","palette","error","main","flexContainer","display","alignItems","Main","newVal","props","onModelChanged","model","prompt","rationale","teacherInstructions","slateMarkup","choices","correctResponse","domNode","ReactDOM","findDOMNode","classes","configuration","onConfigurationChanged","imageSupport","uploadSoundSupport","contentDimensions","duplicates","partialScoring","lockChoiceOrder","choicesPosition","spellCheck","settingsPanelDisabled","maxChoices","maxResponseAreas","maxImageWidth","maxImageHeight","withRubric","mathMlOptions","rationaleEnabled","promptEnabled","teacherInstructionsEnabled","spellCheckEnabled","toolbarEditorPosition","errors","responseAreasError","choicesError","correctResponseError","validationMessage","defaultImageMaxWidth","defaultImageMaxHeight","toolbarOpts","position","panelSettings","label","panelProperties","rubricEnabled","onModelChange","Settings","Properties","onTeacherInstructionsChanged","language","onPromptChanged","marginLeft","ALL_PLUGINS","type","options","onMarkupChanged","onResponsesChanged","onRationaleChanged","React","Component","PropTypes","object","isRequired","disableSidePanel","bool","func","shape","add","Styled"],"mappings":"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","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport EditableHtml, { ALL_PLUGINS } from '@pie-lib/editable-html';\nimport { InputContainer, layout, settings } from '@pie-lib/config-ui';\nimport { withDragContext } from '@pie-lib/drag';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport { withStyles } from '@material-ui/core/styles';\nimport Typography from '@material-ui/core/Typography';\nimport Info from '@material-ui/icons/Info';\nimport Tooltip from '@material-ui/core/Tooltip';\n\nimport Choices from './choices';\nimport { createSlateMarkup } from './markupUtils';\nimport { generateValidationMessage } from '../utils';\nconst { dropdown, toggle, Panel } = settings;\n\nconst styles = (theme) => ({\n promptHolder: {\n width: '100%',\n paddingTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n },\n markup: {\n minHeight: '235px',\n paddingTop: theme.spacing.unit,\n paddingBottom: theme.spacing.unit * 2,\n width: '100%',\n '& [data-slate-editor=\"true\"]': {\n minHeight: '235px',\n },\n },\n choiceConfiguration: {\n paddingTop: theme.spacing.unit * 2,\n paddingBottom: theme.spacing.unit * 2,\n },\n text: {\n fontSize: theme.typography.fontSize + 2,\n },\n tooltip: {\n fontSize: theme.typography.fontSize - 2,\n whiteSpace: 'pre',\n maxWidth: '500px',\n },\n errorText: {\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingTop: theme.spacing.unit,\n },\n flexContainer: {\n display: 'flex',\n alignItems: 'end',\n },\n});\n\nexport class Main extends React.Component {\n static propTypes = {\n configuration: PropTypes.object.isRequired,\n model: PropTypes.object.isRequired,\n disableSidePanel: PropTypes.bool,\n onModelChanged: PropTypes.func.isRequired,\n onConfigurationChanged: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n uploadSoundSupport: PropTypes.object,\n };\n\n state = {};\n\n componentDidUpdate() {\n // eslint-disable-next-line\n const domNode = ReactDOM.findDOMNode(this);\n\n renderMath(domNode);\n }\n\n onModelChange = (newVal) => {\n this.props.onModelChanged({\n ...this.props.model,\n ...newVal,\n });\n };\n\n onPromptChanged = (prompt) => {\n this.props.onModelChanged({\n ...this.props.model,\n prompt,\n });\n };\n\n onRationaleChanged = (rationale) => {\n this.props.onModelChanged({\n ...this.props.model,\n rationale,\n });\n };\n\n onTeacherInstructionsChanged = (teacherInstructions) => {\n this.props.onModelChanged({\n ...this.props.model,\n teacherInstructions,\n });\n };\n\n onMarkupChanged = (slateMarkup) => {\n this.props.onModelChanged({\n ...this.props.model,\n slateMarkup,\n });\n };\n\n onResponsesChanged = (choices) => {\n const {\n model: { correctResponse, markup },\n } = this.props;\n const slateMarkup = createSlateMarkup(markup, choices, correctResponse);\n\n this.props.onModelChanged({\n ...this.props.model,\n slateMarkup,\n choices,\n });\n };\n\n render() {\n const { classes, model, configuration, onConfigurationChanged, imageSupport, uploadSoundSupport } = this.props;\n const {\n contentDimensions = {},\n duplicates = {},\n prompt = {},\n partialScoring = {},\n lockChoiceOrder = {},\n rationale = {},\n teacherInstructions = {},\n choicesPosition = {},\n spellCheck = {},\n settingsPanelDisabled,\n maxChoices,\n maxResponseAreas,\n maxImageWidth = {},\n maxImageHeight = {},\n withRubric = {},\n mathMlOptions = {},\n } = configuration || {};\n const {\n rationaleEnabled,\n promptEnabled,\n teacherInstructionsEnabled,\n spellCheckEnabled,\n toolbarEditorPosition,\n errors,\n } = model || {};\n\n const { responseAreasError, choicesError, correctResponseError } = errors || {};\n const validationMessage = generateValidationMessage(configuration);\n\n const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;\n const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;\n\n const toolbarOpts = {\n position: toolbarEditorPosition === 'top' ? 'top' : 'bottom',\n };\n\n const panelSettings = {\n partialScoring: partialScoring.settings && toggle(partialScoring.label),\n duplicates: duplicates.settings && toggle(duplicates.label),\n lockChoiceOrder: lockChoiceOrder.settings && toggle(lockChoiceOrder.label),\n choicesPosition: choicesPosition.settings && dropdown(choicesPosition.label, ['above', 'below', 'left', 'right']),\n };\n\n const panelProperties = {\n teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),\n rationaleEnabled: rationale.settings && toggle(rationale.label),\n spellCheckEnabled: spellCheck.settings && toggle(spellCheck.label),\n promptEnabled: prompt.settings && toggle(prompt.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 configuration={configuration}\n onChangeModel={(model) => this.onModelChange(model)}\n onChangeConfiguration={(configuration) => onConfigurationChanged(configuration, true)}\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 className={classes.prompt}\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={prompt.label} className={classes.promptHolder}>\n <EditableHtml\n className={classes.prompt}\n markup={model.prompt}\n onChange={this.onPromptChanged}\n imageSupport={imageSupport}\n nonEmpty={false}\n disableUnderline\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n maxImageWidth={defaultImageMaxWidth}\n maxImageHeight={defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n </InputContainer>\n )}\n\n <div className={classes.flexContainer}>\n <Typography className={classes.text}>Define Template, Choices, and Correct Responses</Typography>\n <Tooltip\n classes={{ tooltip: classes.tooltip }}\n disableFocusListener\n disableTouchListener\n placement={'right'}\n title={validationMessage}\n >\n <Info fontSize={'small'} color={'primary'} style={{ marginLeft: '5px' }} />\n </Tooltip>\n </div>\n\n <EditableHtml\n activePlugins={ALL_PLUGINS}\n responseAreaProps={{\n type: 'drag-in-the-blank',\n options: {\n duplicates: model.duplicates,\n },\n maxResponseAreas: maxResponseAreas,\n }}\n className={classes.markup}\n markup={model.slateMarkup}\n onChange={this.onMarkupChanged}\n imageSupport={imageSupport}\n disableImageAlignmentButtons={true}\n nonEmpty={false}\n disableUnderline\n error={responseAreasError || correctResponseError}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n {responseAreasError && <div className={classes.errorText}>{responseAreasError}</div>}\n {correctResponseError && <div className={classes.errorText}>{correctResponseError}</div>}\n\n <Choices\n model={model}\n duplicates={model.duplicates}\n error={choicesError}\n onChange={this.onResponsesChanged}\n toolbarOpts={toolbarOpts}\n maxChoices={maxChoices}\n uploadSoundSupport={uploadSoundSupport}\n mathMlOptions={mathMlOptions}\n />\n\n {rationaleEnabled && (\n <InputContainer label={rationale.label} className={classes.promptHolder}>\n <EditableHtml\n className={classes.prompt}\n markup={model.rationale || ''}\n onChange={this.onRationaleChanged}\n imageSupport={imageSupport}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n maxImageWidth={(maxImageWidth && maxImageWidth.rationale) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.rationale) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n </InputContainer>\n )}\n </layout.ConfigLayout>\n );\n }\n}\n\nconst Styled = withStyles(styles)(Main);\n\nexport default withDragContext(Styled);\n"],"file":"main.js"}
1
+ {"version":3,"sources":["../src/main.jsx"],"names":["dropdown","settings","toggle","Panel","styles","theme","promptHolder","width","paddingTop","spacing","unit","marginBottom","markup","minHeight","paddingBottom","choiceConfiguration","text","fontSize","typography","tooltip","whiteSpace","maxWidth","errorText","color","palette","error","main","flexContainer","display","alignItems","Main","newVal","props","onModelChanged","model","prompt","rationale","teacherInstructions","slateMarkup","choices","correctResponse","domNode","ReactDOM","findDOMNode","classes","configuration","onConfigurationChanged","imageSupport","uploadSoundSupport","contentDimensions","duplicates","partialScoring","lockChoiceOrder","choicesPosition","spellCheck","settingsPanelDisabled","maxChoices","maxResponseAreas","maxImageWidth","maxImageHeight","withRubric","mathMlOptions","language","languageChoices","rationaleEnabled","promptEnabled","teacherInstructionsEnabled","spellCheckEnabled","toolbarEditorPosition","errors","responseAreasError","choicesError","correctResponseError","validationMessage","defaultImageMaxWidth","defaultImageMaxHeight","toolbarOpts","position","panelSettings","label","enabled","options","panelProperties","rubricEnabled","onModelChange","Settings","Properties","onTeacherInstructionsChanged","onPromptChanged","marginLeft","ALL_PLUGINS","type","onMarkupChanged","onResponsesChanged","onRationaleChanged","React","Component","PropTypes","object","isRequired","disableSidePanel","bool","func","shape","add","Styled"],"mappings":"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","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport EditableHtml, { ALL_PLUGINS } from '@pie-lib/editable-html';\nimport { InputContainer, layout, settings } from '@pie-lib/config-ui';\nimport { withDragContext } from '@pie-lib/drag';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport { withStyles } from '@material-ui/core/styles';\nimport Typography from '@material-ui/core/Typography';\nimport Info from '@material-ui/icons/Info';\nimport Tooltip from '@material-ui/core/Tooltip';\n\nimport Choices from './choices';\nimport { createSlateMarkup } from './markupUtils';\nimport { generateValidationMessage } from '../utils';\nconst { dropdown, toggle, Panel } = settings;\n\nconst styles = (theme) => ({\n promptHolder: {\n width: '100%',\n paddingTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n },\n markup: {\n minHeight: '235px',\n paddingTop: theme.spacing.unit,\n paddingBottom: theme.spacing.unit * 2,\n width: '100%',\n '& [data-slate-editor=\"true\"]': {\n minHeight: '235px',\n },\n },\n choiceConfiguration: {\n paddingTop: theme.spacing.unit * 2,\n paddingBottom: theme.spacing.unit * 2,\n },\n text: {\n fontSize: theme.typography.fontSize + 2,\n },\n tooltip: {\n fontSize: theme.typography.fontSize - 2,\n whiteSpace: 'pre',\n maxWidth: '500px',\n },\n errorText: {\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingTop: theme.spacing.unit,\n },\n flexContainer: {\n display: 'flex',\n alignItems: 'end',\n },\n});\n\nexport class Main extends React.Component {\n static propTypes = {\n configuration: PropTypes.object.isRequired,\n model: PropTypes.object.isRequired,\n disableSidePanel: PropTypes.bool,\n onModelChanged: PropTypes.func.isRequired,\n onConfigurationChanged: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n uploadSoundSupport: PropTypes.object,\n };\n\n state = {};\n\n componentDidUpdate() {\n // eslint-disable-next-line\n const domNode = ReactDOM.findDOMNode(this);\n\n renderMath(domNode);\n }\n\n onModelChange = (newVal) => {\n this.props.onModelChanged({\n ...this.props.model,\n ...newVal,\n });\n };\n\n onPromptChanged = (prompt) => {\n this.props.onModelChanged({\n ...this.props.model,\n prompt,\n });\n };\n\n onRationaleChanged = (rationale) => {\n this.props.onModelChanged({\n ...this.props.model,\n rationale,\n });\n };\n\n onTeacherInstructionsChanged = (teacherInstructions) => {\n this.props.onModelChanged({\n ...this.props.model,\n teacherInstructions,\n });\n };\n\n onMarkupChanged = (slateMarkup) => {\n this.props.onModelChanged({\n ...this.props.model,\n slateMarkup,\n });\n };\n\n onResponsesChanged = (choices) => {\n const {\n model: { correctResponse, markup },\n } = this.props;\n const slateMarkup = createSlateMarkup(markup, choices, correctResponse);\n\n this.props.onModelChanged({\n ...this.props.model,\n slateMarkup,\n choices,\n });\n };\n\n render() {\n const { classes, model, configuration, onConfigurationChanged, imageSupport, uploadSoundSupport } = this.props;\n const {\n contentDimensions = {},\n duplicates = {},\n prompt = {},\n partialScoring = {},\n lockChoiceOrder = {},\n rationale = {},\n teacherInstructions = {},\n choicesPosition = {},\n spellCheck = {},\n settingsPanelDisabled,\n maxChoices,\n maxResponseAreas,\n maxImageWidth = {},\n maxImageHeight = {},\n withRubric = {},\n mathMlOptions = {},\n language = {},\n languageChoices = {},\n } = configuration || {};\n const {\n rationaleEnabled,\n promptEnabled,\n teacherInstructionsEnabled,\n spellCheckEnabled,\n toolbarEditorPosition,\n errors,\n } = model || {};\n\n const { responseAreasError, choicesError, correctResponseError } = errors || {};\n const validationMessage = generateValidationMessage(configuration);\n\n const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;\n const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;\n\n const toolbarOpts = {\n position: toolbarEditorPosition === 'top' ? 'top' : 'bottom',\n };\n\n const panelSettings = {\n partialScoring: partialScoring.settings && toggle(partialScoring.label),\n duplicates: duplicates.settings && toggle(duplicates.label),\n lockChoiceOrder: lockChoiceOrder.settings && toggle(lockChoiceOrder.label),\n choicesPosition: choicesPosition.settings && dropdown(choicesPosition.label, ['above', 'below', 'left', 'right']),\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 rationaleEnabled: rationale.settings && toggle(rationale.label),\n spellCheckEnabled: spellCheck.settings && toggle(spellCheck.label),\n promptEnabled: prompt.settings && toggle(prompt.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 configuration={configuration}\n onChangeModel={(model) => this.onModelChange(model)}\n onChangeConfiguration={(configuration) => onConfigurationChanged(configuration, true)}\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 className={classes.prompt}\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={prompt.label} className={classes.promptHolder}>\n <EditableHtml\n className={classes.prompt}\n markup={model.prompt}\n onChange={this.onPromptChanged}\n imageSupport={imageSupport}\n nonEmpty={false}\n disableUnderline\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n maxImageWidth={defaultImageMaxWidth}\n maxImageHeight={defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n </InputContainer>\n )}\n\n <div className={classes.flexContainer}>\n <Typography className={classes.text}>Define Template, Choices, and Correct Responses</Typography>\n <Tooltip\n classes={{ tooltip: classes.tooltip }}\n disableFocusListener\n disableTouchListener\n placement={'right'}\n title={validationMessage}\n >\n <Info fontSize={'small'} color={'primary'} style={{ marginLeft: '5px' }} />\n </Tooltip>\n </div>\n\n <EditableHtml\n activePlugins={ALL_PLUGINS}\n responseAreaProps={{\n type: 'drag-in-the-blank',\n options: {\n duplicates: model.duplicates,\n },\n maxResponseAreas: maxResponseAreas,\n }}\n className={classes.markup}\n markup={model.slateMarkup}\n onChange={this.onMarkupChanged}\n imageSupport={imageSupport}\n disableImageAlignmentButtons={true}\n nonEmpty={false}\n disableUnderline\n error={responseAreasError || correctResponseError}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n {responseAreasError && <div className={classes.errorText}>{responseAreasError}</div>}\n {correctResponseError && <div className={classes.errorText}>{correctResponseError}</div>}\n\n <Choices\n model={model}\n duplicates={model.duplicates}\n error={choicesError}\n onChange={this.onResponsesChanged}\n toolbarOpts={toolbarOpts}\n maxChoices={maxChoices}\n uploadSoundSupport={uploadSoundSupport}\n mathMlOptions={mathMlOptions}\n />\n\n {rationaleEnabled && (\n <InputContainer label={rationale.label} className={classes.promptHolder}>\n <EditableHtml\n className={classes.prompt}\n markup={model.rationale || ''}\n onChange={this.onRationaleChanged}\n imageSupport={imageSupport}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n maxImageWidth={(maxImageWidth && maxImageWidth.rationale) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.rationale) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n </InputContainer>\n )}\n </layout.ConfigLayout>\n );\n }\n}\n\nconst Styled = withStyles(styles)(Main);\n\nexport default withDragContext(Styled);\n"],"file":"main.js"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pie-element/drag-in-the-blank-configure",
3
- "version": "4.10.5",
3
+ "version": "4.11.0",
4
4
  "private": true,
5
5
  "main": "lib/index.js",
6
6
  "module": "src/index.js",
@@ -8,9 +8,9 @@
8
8
  "@material-ui/core": "^3.9.2",
9
9
  "@material-ui/icons": "^3.0.1",
10
10
  "@pie-framework/pie-configure-events": "^1.3.0",
11
- "@pie-lib/config-ui": "^11.9.4",
11
+ "@pie-lib/config-ui": "^11.9.7",
12
12
  "@pie-lib/drag": "^2.2.4",
13
- "@pie-lib/editable-html": "^9.7.8",
13
+ "@pie-lib/editable-html": "^10.0.2",
14
14
  "@pie-lib/math-rendering": "^2.5.17",
15
15
  "debug": "^3.1.0",
16
16
  "lodash": "^4.17.15",
@@ -225,6 +225,66 @@
225
225
  }
226
226
  }
227
227
  },
228
+ "language": {
229
+ "title": "ConfigurePropWithEnabled",
230
+ "type": "object",
231
+ "properties": {
232
+ "settings": {
233
+ "description": "Indicates if the item has to be displayed in the Settings Panel",
234
+ "type": "boolean",
235
+ "title": "settings"
236
+ },
237
+ "label": {
238
+ "description": "Indicates the label for the item that has to be displayed in the Settings Panel",
239
+ "type": "string",
240
+ "title": "label"
241
+ },
242
+ "enabled": {
243
+ "description": "Indicates the value of the item if it affects config-ui\n(eg.: if item is a switch and displaying an input on the config-ui depends on the switch value: on/off)",
244
+ "type": "boolean",
245
+ "title": "enabled"
246
+ }
247
+ }
248
+ },
249
+ "languageChoices": {
250
+ "description": "Language choices configuration\nOnly available if language is enabled",
251
+ "type": "object",
252
+ "properties": {
253
+ "label": {
254
+ "type": "string",
255
+ "title": "label"
256
+ },
257
+ "options": {
258
+ "type": "array",
259
+ "items": {
260
+ "title": "ConfigureLanguageOptionsProp",
261
+ "type": "object",
262
+ "properties": {
263
+ "value": {
264
+ "description": "Value of the language option",
265
+ "type": "string",
266
+ "title": "value"
267
+ },
268
+ "label": {
269
+ "description": "Label of the language option",
270
+ "type": "string",
271
+ "title": "label"
272
+ }
273
+ },
274
+ "required": [
275
+ "label",
276
+ "value"
277
+ ]
278
+ },
279
+ "title": "options"
280
+ }
281
+ },
282
+ "required": [
283
+ "label",
284
+ "options"
285
+ ],
286
+ "title": "languageChoices"
287
+ },
228
288
  "showPrompt": {
229
289
  "description": "Determines whether prompt field will be displayed or not",
230
290
  "default": true,
@@ -341,6 +401,47 @@
341
401
  "title": "rationale"
342
402
  }
343
403
  }
404
+ },
405
+ "ConfigurePropWithEnabled": {
406
+ "title": "ConfigurePropWithEnabled",
407
+ "type": "object",
408
+ "properties": {
409
+ "settings": {
410
+ "description": "Indicates if the item has to be displayed in the Settings Panel",
411
+ "type": "boolean",
412
+ "title": "settings"
413
+ },
414
+ "label": {
415
+ "description": "Indicates the label for the item that has to be displayed in the Settings Panel",
416
+ "type": "string",
417
+ "title": "label"
418
+ },
419
+ "enabled": {
420
+ "description": "Indicates the value of the item if it affects config-ui\n(eg.: if item is a switch and displaying an input on the config-ui depends on the switch value: on/off)",
421
+ "type": "boolean",
422
+ "title": "enabled"
423
+ }
424
+ }
425
+ },
426
+ "ConfigureLanguageOptionsProp": {
427
+ "title": "ConfigureLanguageOptionsProp",
428
+ "type": "object",
429
+ "properties": {
430
+ "value": {
431
+ "description": "Value of the language option",
432
+ "type": "string",
433
+ "title": "value"
434
+ },
435
+ "label": {
436
+ "description": "Label of the language option",
437
+ "type": "string",
438
+ "title": "label"
439
+ }
440
+ },
441
+ "required": [
442
+ "label",
443
+ "value"
444
+ ]
344
445
  }
345
446
  },
346
447
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -170,6 +170,46 @@ Indicates if the item has to be displayed in the Settings Panel
170
170
 
171
171
  Indicates the label for the item that has to be displayed in the Settings Panel
172
172
 
173
+ # `language` (object)
174
+
175
+ Properties of the `language` object:
176
+
177
+ ## `settings` (boolean)
178
+
179
+ Indicates if the item has to be displayed in the Settings Panel
180
+
181
+ ## `label` (string)
182
+
183
+ Indicates the label for the item that has to be displayed in the Settings Panel
184
+
185
+ ## `enabled` (boolean)
186
+
187
+ Indicates the value of the item if it affects config-ui
188
+ (eg.: if item is a switch and displaying an input on the config-ui depends on the switch value: on/off)
189
+
190
+ # `languageChoices` (object)
191
+
192
+ Language choices configuration
193
+ Only available if language is enabled
194
+
195
+ Properties of the `languageChoices` object:
196
+
197
+ ## `label` (string, required)
198
+
199
+ ## `options` (array, required)
200
+
201
+ The object is an array with all elements of the type `object`.
202
+
203
+ The array object has the following properties:
204
+
205
+ ### `value` (string, required)
206
+
207
+ Value of the language option
208
+
209
+ ### `label` (string, required)
210
+
211
+ Label of the language option
212
+
173
213
  # `showPrompt` (boolean)
174
214
 
175
215
  Determines whether prompt field will be displayed or not
@@ -266,4 +306,33 @@ Indicates the max dimension for images in prompt - this is also the default dime
266
306
 
267
307
  ### `rationale` (number)
268
308
 
269
- Indicates the max dimension for images in rationale
309
+ Indicates the max dimension for images in rationale
310
+
311
+ ## `ConfigurePropWithEnabled` (object)
312
+
313
+ Properties of the `ConfigurePropWithEnabled` object:
314
+
315
+ ### `settings` (boolean)
316
+
317
+ Indicates if the item has to be displayed in the Settings Panel
318
+
319
+ ### `label` (string)
320
+
321
+ Indicates the label for the item that has to be displayed in the Settings Panel
322
+
323
+ ### `enabled` (boolean)
324
+
325
+ Indicates the value of the item if it affects config-ui
326
+ (eg.: if item is a switch and displaying an input on the config-ui depends on the switch value: on/off)
327
+
328
+ ## `ConfigureLanguageOptionsProp` (object)
329
+
330
+ Properties of the `ConfigureLanguageOptionsProp` object:
331
+
332
+ ### `value` (string, required)
333
+
334
+ Value of the language option
335
+
336
+ ### `label` (string, required)
337
+
338
+ Label of the language option
@@ -145,6 +145,11 @@
145
145
  "type": "boolean",
146
146
  "title": "rubricEnabled"
147
147
  },
148
+ "language": {
149
+ "description": "Indicates the language of the component\nSupported options: en, es, en_US, en-US, es_ES, es-ES, es_MX, es-MX",
150
+ "type": "string",
151
+ "title": "language"
152
+ },
148
153
  "id": {
149
154
  "description": "Identifier to identify the Pie Element in html markup, Must be unique within a pie item config.",
150
155
  "type": "string",
@@ -225,6 +230,47 @@
225
230
  }
226
231
  }
227
232
  },
233
+ "ConfigurePropWithEnabled": {
234
+ "title": "ConfigurePropWithEnabled",
235
+ "type": "object",
236
+ "properties": {
237
+ "settings": {
238
+ "description": "Indicates if the item has to be displayed in the Settings Panel",
239
+ "type": "boolean",
240
+ "title": "settings"
241
+ },
242
+ "label": {
243
+ "description": "Indicates the label for the item that has to be displayed in the Settings Panel",
244
+ "type": "string",
245
+ "title": "label"
246
+ },
247
+ "enabled": {
248
+ "description": "Indicates the value of the item if it affects config-ui\n(eg.: if item is a switch and displaying an input on the config-ui depends on the switch value: on/off)",
249
+ "type": "boolean",
250
+ "title": "enabled"
251
+ }
252
+ }
253
+ },
254
+ "ConfigureLanguageOptionsProp": {
255
+ "title": "ConfigureLanguageOptionsProp",
256
+ "type": "object",
257
+ "properties": {
258
+ "value": {
259
+ "description": "Value of the language option",
260
+ "type": "string",
261
+ "title": "value"
262
+ },
263
+ "label": {
264
+ "description": "Label of the language option",
265
+ "type": "string",
266
+ "title": "label"
267
+ }
268
+ },
269
+ "required": [
270
+ "label",
271
+ "value"
272
+ ]
273
+ },
228
274
  "Choice": {
229
275
  "title": "Choice",
230
276
  "type": "object",
@@ -108,6 +108,11 @@ Default: `": 'bottom'"`
108
108
 
109
109
  Indicates if Rubric is enabled
110
110
 
111
+ # `language` (string)
112
+
113
+ Indicates the language of the component
114
+ Supported options: en, es, en_US, en-US, es_ES, es-ES, es_MX, es-MX
115
+
111
116
  # `id` (string, required)
112
117
 
113
118
  Identifier to identify the Pie Element in html markup, Must be unique within a pie item config.
@@ -162,6 +167,35 @@ Indicates the max dimension for images in prompt - this is also the default dime
162
167
 
163
168
  Indicates the max dimension for images in rationale
164
169
 
170
+ ## `ConfigurePropWithEnabled` (object)
171
+
172
+ Properties of the `ConfigurePropWithEnabled` object:
173
+
174
+ ### `settings` (boolean)
175
+
176
+ Indicates if the item has to be displayed in the Settings Panel
177
+
178
+ ### `label` (string)
179
+
180
+ Indicates the label for the item that has to be displayed in the Settings Panel
181
+
182
+ ### `enabled` (boolean)
183
+
184
+ Indicates the value of the item if it affects config-ui
185
+ (eg.: if item is a switch and displaying an input on the config-ui depends on the switch value: on/off)
186
+
187
+ ## `ConfigureLanguageOptionsProp` (object)
188
+
189
+ Properties of the `ConfigureLanguageOptionsProp` object:
190
+
191
+ ### `value` (string, required)
192
+
193
+ Value of the language option
194
+
195
+ ### `label` (string, required)
196
+
197
+ Label of the language option
198
+
165
199
  ## `Choice` (object)
166
200
 
167
201
  Properties of the `Choice` object:
package/lib/main.js CHANGED
@@ -83,7 +83,8 @@ var Main = /*#__PURE__*/function (_React$Component) {
83
83
  value = _this$props.value,
84
84
  classes = _this$props.classes;
85
85
  var prompt = model.prompt,
86
- mode = model.mode;
86
+ mode = model.mode,
87
+ language = model.language;
87
88
 
88
89
  var modelWithValue = _objectSpread(_objectSpread({}, model), {}, {
89
90
  value: value
@@ -105,7 +106,8 @@ var Main = /*#__PURE__*/function (_React$Component) {
105
106
  }), /*#__PURE__*/_react["default"].createElement(_correctAnswerToggle["default"], {
106
107
  show: showCorrectAnswerToggle,
107
108
  toggled: showCorrectAnswer,
108
- onToggle: this.toggleShowCorrect
109
+ onToggle: this.toggleShowCorrect,
110
+ language: language
109
111
  }), /*#__PURE__*/_react["default"].createElement(DraggableDragInTheBlank, (0, _extends2["default"])({}, modelWithValue, {
110
112
  onChange: onChange,
111
113
  showCorrectAnswer: showCorrectAnswer
package/lib/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/main.js"],"names":["DraggableDragInTheBlank","DragInTheBlank","Main","showCorrectAnswer","setState","state","props","model","onChange","value","classes","prompt","mode","modelWithValue","showCorrectAnswerToggle","mainContainer","teacherInstructions","collapsible","hidden","visible","toggleShowCorrect","rationale","React","Component","PropTypes","object","feedback","func","styles","theme","color","text","backgroundColor","background","marginBottom","spacing","unit","marginTop"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport CorrectAnswerToggle from '@pie-lib/correct-answer-toggle';\nimport { DragInTheBlank } from '@pie-lib/mask-markup';\nimport { withDragContext } from '@pie-lib/drag';\nimport { color, Collapsible, hasText, PreviewPrompt } from '@pie-lib/render-ui';\nimport { withStyles } from '@material-ui/core/styles';\n\nconst DraggableDragInTheBlank = withDragContext(DragInTheBlank);\n\nexport class Main extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n model: PropTypes.object,\n value: PropTypes.object,\n feedback: PropTypes.object,\n onChange: PropTypes.func,\n };\n\n static defaultProps = {\n value: {},\n };\n\n state = {\n showCorrectAnswer: false,\n };\n\n toggleShowCorrect = () => {\n this.setState({ showCorrectAnswer: !this.state.showCorrectAnswer });\n };\n\n render() {\n const { showCorrectAnswer } = this.state;\n const { model, onChange, value, classes } = this.props;\n const { prompt, mode } = model;\n const modelWithValue = { ...model, value };\n const showCorrectAnswerToggle = mode === 'evaluate';\n\n return (\n <div className={classes.mainContainer}>\n {model.teacherInstructions && hasText(model.teacherInstructions) && (\n <Collapsible\n className={classes.collapsible}\n labels={{ hidden: 'Show Teacher Instructions', visible: 'Hide Teacher Instructions' }}\n >\n <PreviewPrompt prompt={model.teacherInstructions} />\n </Collapsible>\n )}\n\n {prompt && <PreviewPrompt prompt={prompt} />}\n\n <CorrectAnswerToggle\n show={showCorrectAnswerToggle}\n toggled={showCorrectAnswer}\n onToggle={this.toggleShowCorrect}\n />\n\n <DraggableDragInTheBlank {...modelWithValue} onChange={onChange} showCorrectAnswer={showCorrectAnswer} />\n\n {model.rationale && hasText(model.rationale) && (\n <Collapsible className={classes.rationale} labels={{ hidden: 'Show Rationale', visible: 'Hide Rationale' }}>\n <PreviewPrompt prompt={model.rationale} />\n </Collapsible>\n )}\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n mainContainer: {\n color: color.text(),\n backgroundColor: color.background(),\n '& tr > td': {\n color: color.text(),\n },\n },\n collapsible: {\n marginBottom: theme.spacing.unit * 2,\n },\n rationale: {\n marginTop: theme.spacing.unit * 2,\n },\n});\n\nexport default withStyles(styles)(Main);\n"],"file":"main.js"}
1
+ {"version":3,"sources":["../src/main.js"],"names":["DraggableDragInTheBlank","DragInTheBlank","Main","showCorrectAnswer","setState","state","props","model","onChange","value","classes","prompt","mode","language","modelWithValue","showCorrectAnswerToggle","mainContainer","teacherInstructions","collapsible","hidden","visible","toggleShowCorrect","rationale","React","Component","PropTypes","object","feedback","func","styles","theme","color","text","backgroundColor","background","marginBottom","spacing","unit","marginTop"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport CorrectAnswerToggle from '@pie-lib/correct-answer-toggle';\nimport { DragInTheBlank } from '@pie-lib/mask-markup';\nimport { withDragContext } from '@pie-lib/drag';\nimport { color, Collapsible, hasText, PreviewPrompt } from '@pie-lib/render-ui';\nimport { withStyles } from '@material-ui/core/styles';\n\nconst DraggableDragInTheBlank = withDragContext(DragInTheBlank);\n\nexport class Main extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n model: PropTypes.object,\n value: PropTypes.object,\n feedback: PropTypes.object,\n onChange: PropTypes.func,\n };\n\n static defaultProps = {\n value: {},\n };\n\n state = {\n showCorrectAnswer: false,\n };\n\n toggleShowCorrect = () => {\n this.setState({ showCorrectAnswer: !this.state.showCorrectAnswer });\n };\n\n render() {\n const { showCorrectAnswer } = this.state;\n const { model, onChange, value, classes } = this.props;\n const { prompt, mode, language } = model;\n const modelWithValue = { ...model, value };\n const showCorrectAnswerToggle = mode === 'evaluate';\n\n return (\n <div className={classes.mainContainer}>\n {model.teacherInstructions && hasText(model.teacherInstructions) && (\n <Collapsible\n className={classes.collapsible}\n labels={{ hidden: 'Show Teacher Instructions', visible: 'Hide Teacher Instructions' }}\n >\n <PreviewPrompt prompt={model.teacherInstructions} />\n </Collapsible>\n )}\n\n {prompt && <PreviewPrompt prompt={prompt} />}\n\n <CorrectAnswerToggle\n show={showCorrectAnswerToggle}\n toggled={showCorrectAnswer}\n onToggle={this.toggleShowCorrect}\n language={language}\n />\n\n <DraggableDragInTheBlank {...modelWithValue} onChange={onChange} showCorrectAnswer={showCorrectAnswer} />\n\n {model.rationale && hasText(model.rationale) && (\n <Collapsible className={classes.rationale} labels={{ hidden: 'Show Rationale', visible: 'Hide Rationale' }}>\n <PreviewPrompt prompt={model.rationale} />\n </Collapsible>\n )}\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n mainContainer: {\n color: color.text(),\n backgroundColor: color.background(),\n '& tr > td': {\n color: color.text(),\n },\n },\n collapsible: {\n marginBottom: theme.spacing.unit * 2,\n },\n rationale: {\n marginTop: theme.spacing.unit * 2,\n },\n});\n\nexport default withStyles(styles)(Main);\n"],"file":"main.js"}
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "access": "public"
5
5
  },
6
6
  "repository": "pie-framework/pie-elements",
7
- "version": "4.13.6-next.8+17e168dd0",
7
+ "version": "4.14.0",
8
8
  "description": "",
9
9
  "scripts": {
10
10
  "test": "echo \"Error: no test specified\" && exit 1",
@@ -17,6 +17,7 @@
17
17
  "@pie-lib/mask-markup": "^1.13.37",
18
18
  "@pie-lib/math-rendering": "^2.5.17",
19
19
  "@pie-lib/render-ui": "^4.15.1",
20
+ "@pie-lib/translator": "^2.2.0",
20
21
  "classnames": "^2.2.5",
21
22
  "lodash": "^4.17.10",
22
23
  "prop-types": "^15.6.1",
@@ -25,7 +26,7 @@
25
26
  },
26
27
  "author": "",
27
28
  "license": "ISC",
28
- "gitHead": "17e168dd001a82a9c24deaf1c6a4c1f21a51ab03",
29
+ "gitHead": "601ddbccecfff533d0670698fe99ce91759165fe",
29
30
  "main": "lib/index.js",
30
31
  "module": "src/index.js"
31
32
  }