@pie-element/drawing-response 6.4.1-next.47 → 6.4.1-next.62

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 (31) hide show
  1. package/configure/lib/defaults.js +9 -0
  2. package/configure/lib/defaults.js.map +1 -1
  3. package/configure/lib/root.js +9 -1
  4. package/configure/lib/root.js.map +1 -1
  5. package/configure/src/__tests__/__snapshots__/root.test.jsx.snap +11 -0
  6. package/configure/src/defaults.js +9 -0
  7. package/configure/src/root.jsx +5 -0
  8. package/controller/lib/index.js +4 -2
  9. package/controller/lib/index.js.map +1 -1
  10. package/controller/src/index.js +2 -1
  11. package/docs/config-schema.json +80 -0
  12. package/docs/config-schema.json.md +53 -1
  13. package/docs/pie-schema.json +25 -0
  14. package/docs/pie-schema.json.md +17 -0
  15. package/lib/drawing-response/container.js +56 -5
  16. package/lib/drawing-response/container.js.map +1 -1
  17. package/lib/drawing-response/drawable-main.js +15 -5
  18. package/lib/drawing-response/drawable-main.js.map +1 -1
  19. package/lib/drawing-response/drawable-palette.js +14 -5
  20. package/lib/drawing-response/drawable-palette.js.map +1 -1
  21. package/lib/drawing-response/drawable-text.js +8 -2
  22. package/lib/drawing-response/drawable-text.js.map +1 -1
  23. package/lib/drawing-response/index.js +4 -3
  24. package/lib/drawing-response/index.js.map +1 -1
  25. package/package.json +3 -2
  26. package/src/drawing-response/__tests__/__snapshots__/container.test.jsx.snap +30 -30
  27. package/src/drawing-response/container.jsx +36 -3
  28. package/src/drawing-response/drawable-main.jsx +8 -4
  29. package/src/drawing-response/drawable-palette.jsx +7 -3
  30. package/src/drawing-response/drawable-text.jsx +4 -2
  31. package/src/drawing-response/index.jsx +11 -1
@@ -53,6 +53,15 @@ var _default = {
53
53
  mathMlOptions: {
54
54
  mmlOutput: false,
55
55
  mmlEditing: false
56
+ },
57
+ language: {
58
+ settings: false,
59
+ label: 'Specify Language',
60
+ enabled: false
61
+ },
62
+ languageChoices: {
63
+ label: 'Language Choices',
64
+ options: []
56
65
  }
57
66
  }
58
67
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/defaults.js"],"names":["model","prompt","imageUrl","imageDimensions","height","width","promptEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","backgroundImageEnabled","spellCheckEnabled","toolbarEditorPosition","configuration","spellCheck","label","settings","enabled","backgroundImage","settingsPanelDisabled","teacherInstructions","maxImageWidth","maxImageHeight","withRubric","mathMlOptions","mmlOutput","mmlEditing"],"mappings":";;;;;;eAAe;AACbA,EAAAA,KAAK,EAAE;AACLC,IAAAA,MAAM,EAAE,6BADH;AAELC,IAAAA,QAAQ,EAAE,EAFL;AAGLC,IAAAA,eAAe,EAAE;AACfC,MAAAA,MAAM,EAAE,CADO;AAEfC,MAAAA,KAAK,EAAE;AAFQ,KAHZ;AAOLC,IAAAA,aAAa,EAAE,IAPV;AAQLC,IAAAA,0BAA0B,EAAE,IARvB;AASLC,IAAAA,0BAA0B,EAAE,IATvB;AAULC,IAAAA,sBAAsB,EAAE,IAVnB;AAWLC,IAAAA,iBAAiB,EAAE,IAXd;AAYLC,IAAAA,qBAAqB,EAAE;AAZlB,GADM;AAebC,EAAAA,aAAa,EAAE;AACbC,IAAAA,UAAU,EAAE;AACVC,MAAAA,KAAK,EAAE,YADG;AAEVC,MAAAA,QAAQ,EAAE,KAFA;AAGVC,MAAAA,OAAO,EAAE;AAHC,KADC;AAMbC,IAAAA,eAAe,EAAE;AACfF,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;AAcbI,IAAAA,qBAAqB,EAAE,KAdV;AAebC,IAAAA,mBAAmB,EAAE;AACnBJ,MAAAA,QAAQ,EAAE,IADS;AAEnBD,MAAAA,KAAK,EAAE;AAFY,KAfR;AAmBbM,IAAAA,aAAa,EAAE;AACbD,MAAAA,mBAAmB,EAAE,GADR;AAEblB,MAAAA,MAAM,EAAE;AAFK,KAnBF;AAuBboB,IAAAA,cAAc,EAAE;AACdF,MAAAA,mBAAmB,EAAE,GADP;AAEdlB,MAAAA,MAAM,EAAE;AAFM,KAvBH;AA2BbqB,IAAAA,UAAU,EAAE;AACVP,MAAAA,QAAQ,EAAE,KADA;AAEVD,MAAAA,KAAK,EAAE;AAFG,KA3BC;AA+BbS,IAAAA,aAAa,EAAE;AACbC,MAAAA,SAAS,EAAE,KADE;AAEbC,MAAAA,UAAU,EAAE;AAFC;AA/BF;AAfF,C","sourcesContent":["export default {\n model: {\n prompt: 'This is the question prompt',\n imageUrl: '',\n imageDimensions: {\n height: 0,\n width: 0,\n },\n promptEnabled: true,\n teacherInstructionsEnabled: true,\n studentInstructionsEnabled: true,\n backgroundImageEnabled: true,\n spellCheckEnabled: true,\n toolbarEditorPosition: 'bottom',\n },\n configuration: {\n spellCheck: {\n label: 'Spellcheck',\n settings: false,\n enabled: true,\n },\n backgroundImage: {\n settings: true,\n label: 'Background Image',\n },\n prompt: {\n settings: true,\n label: 'Prompt',\n },\n settingsPanelDisabled: false,\n teacherInstructions: {\n settings: true,\n label: 'Teacher Instructions',\n },\n maxImageWidth: {\n teacherInstructions: 300,\n prompt: 300,\n },\n maxImageHeight: {\n teacherInstructions: 300,\n prompt: 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","prompt","imageUrl","imageDimensions","height","width","promptEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","backgroundImageEnabled","spellCheckEnabled","toolbarEditorPosition","configuration","spellCheck","label","settings","enabled","backgroundImage","settingsPanelDisabled","teacherInstructions","maxImageWidth","maxImageHeight","withRubric","mathMlOptions","mmlOutput","mmlEditing","language","languageChoices","options"],"mappings":";;;;;;eAAe;AACbA,EAAAA,KAAK,EAAE;AACLC,IAAAA,MAAM,EAAE,6BADH;AAELC,IAAAA,QAAQ,EAAE,EAFL;AAGLC,IAAAA,eAAe,EAAE;AACfC,MAAAA,MAAM,EAAE,CADO;AAEfC,MAAAA,KAAK,EAAE;AAFQ,KAHZ;AAOLC,IAAAA,aAAa,EAAE,IAPV;AAQLC,IAAAA,0BAA0B,EAAE,IARvB;AASLC,IAAAA,0BAA0B,EAAE,IATvB;AAULC,IAAAA,sBAAsB,EAAE,IAVnB;AAWLC,IAAAA,iBAAiB,EAAE,IAXd;AAYLC,IAAAA,qBAAqB,EAAE;AAZlB,GADM;AAebC,EAAAA,aAAa,EAAE;AACbC,IAAAA,UAAU,EAAE;AACVC,MAAAA,KAAK,EAAE,YADG;AAEVC,MAAAA,QAAQ,EAAE,KAFA;AAGVC,MAAAA,OAAO,EAAE;AAHC,KADC;AAMbC,IAAAA,eAAe,EAAE;AACfF,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;AAcbI,IAAAA,qBAAqB,EAAE,KAdV;AAebC,IAAAA,mBAAmB,EAAE;AACnBJ,MAAAA,QAAQ,EAAE,IADS;AAEnBD,MAAAA,KAAK,EAAE;AAFY,KAfR;AAmBbM,IAAAA,aAAa,EAAE;AACbD,MAAAA,mBAAmB,EAAE,GADR;AAEblB,MAAAA,MAAM,EAAE;AAFK,KAnBF;AAuBboB,IAAAA,cAAc,EAAE;AACdF,MAAAA,mBAAmB,EAAE,GADP;AAEdlB,MAAAA,MAAM,EAAE;AAFM,KAvBH;AA2BbqB,IAAAA,UAAU,EAAE;AACVP,MAAAA,QAAQ,EAAE,KADA;AAEVD,MAAAA,KAAK,EAAE;AAFG,KA3BC;AA+BbS,IAAAA,aAAa,EAAE;AACbC,MAAAA,SAAS,EAAE,KADE;AAEbC,MAAAA,UAAU,EAAE;AAFC,KA/BF;AAmCbC,IAAAA,QAAQ,EAAE;AACRX,MAAAA,QAAQ,EAAE,KADF;AAERD,MAAAA,KAAK,EAAE,kBAFC;AAGRE,MAAAA,OAAO,EAAE;AAHD,KAnCG;AAwCbW,IAAAA,eAAe,EAAE;AACfb,MAAAA,KAAK,EAAE,kBADQ;AAEfc,MAAAA,OAAO,EAAE;AAFM;AAxCJ;AAfF,C","sourcesContent":["export default {\n model: {\n prompt: 'This is the question prompt',\n imageUrl: '',\n imageDimensions: {\n height: 0,\n width: 0,\n },\n promptEnabled: true,\n teacherInstructionsEnabled: true,\n studentInstructionsEnabled: true,\n backgroundImageEnabled: true,\n spellCheckEnabled: true,\n toolbarEditorPosition: 'bottom',\n },\n configuration: {\n spellCheck: {\n label: 'Spellcheck',\n settings: false,\n enabled: true,\n },\n backgroundImage: {\n settings: true,\n label: 'Background Image',\n },\n prompt: {\n settings: true,\n label: 'Prompt',\n },\n settingsPanelDisabled: false,\n teacherInstructions: {\n settings: true,\n label: 'Teacher Instructions',\n },\n maxImageWidth: {\n teacherInstructions: 300,\n prompt: 300,\n },\n maxImageHeight: {\n teacherInstructions: 300,\n prompt: 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"}
@@ -37,6 +37,8 @@ var _imageContainer = _interopRequireDefault(require("./image-container"));
37
37
 
38
38
  var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
39
39
 
40
+ var _settings = require("@pie-lib/config-ui/lib/settings");
41
+
40
42
  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
43
 
42
44
  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; }
@@ -129,6 +131,10 @@ var Root = /*#__PURE__*/function (_React$Component) {
129
131
  teacherInstructions = _ref$teacherInstructi === void 0 ? {} : _ref$teacherInstructi,
130
132
  _ref$withRubric = _ref.withRubric,
131
133
  withRubric = _ref$withRubric === void 0 ? {} : _ref$withRubric,
134
+ _ref$language = _ref.language,
135
+ language = _ref$language === void 0 ? {} : _ref$language,
136
+ _ref$languageChoices = _ref.languageChoices,
137
+ languageChoices = _ref$languageChoices === void 0 ? {} : _ref$languageChoices,
132
138
  _ref$mathMlOptions = _ref.mathMlOptions,
133
139
  mathMlOptions = _ref$mathMlOptions === void 0 ? {} : _ref$mathMlOptions;
134
140
 
@@ -146,7 +152,9 @@ var Root = /*#__PURE__*/function (_React$Component) {
146
152
  };
147
153
  var panelSettings = {
148
154
  backgroundImageEnabled: backgroundImage.settings && toggle(backgroundImage.label),
149
- promptEnabled: prompt.settings && toggle(prompt.label)
155
+ promptEnabled: prompt.settings && toggle(prompt.label),
156
+ 'language.enabled': language.settings && toggle(language.label, true),
157
+ language: language.settings && language.enabled && (0, _settings.dropdown)(languageChoices.label, languageChoices.options)
150
158
  };
151
159
  var panelProperties = {
152
160
  teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),
@@ -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","onConfigurationChanged","uploadSoundSupport","backgroundImage","contentDimensions","maxImageWidth","maxImageHeight","settingsPanelDisabled","spellCheck","withRubric","mathMlOptions","backgroundImageEnabled","promptEnabled","spellCheckEnabled","teacherInstructionsEnabled","toolbarEditorPosition","defaultImageMaxWidth","defaultImageMaxHeight","toolbarOpts","position","panelSettings","label","panelProperties","rubricEnabled","Settings","Properties","promptHolder","onTeacherInstructionsChanged","language","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/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({ ...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 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 };\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"}
1
+ {"version":3,"sources":["../src/root.jsx"],"names":["Panel","settings","toggle","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/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';\nimport { dropdown } from '@pie-lib/config-ui/lib/settings';\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({ ...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"}
@@ -12,6 +12,15 @@ exports[`Root snapshot renders 1`] = `
12
12
  "label": "Background Image",
13
13
  "settings": true,
14
14
  },
15
+ "language": Object {
16
+ "enabled": false,
17
+ "label": "Specify Language",
18
+ "settings": false,
19
+ },
20
+ "languageChoices": Object {
21
+ "label": "Language Choices",
22
+ "options": Array [],
23
+ },
15
24
  "mathMlOptions": Object {
16
25
  "mmlEditing": false,
17
26
  "mmlOutput": false,
@@ -53,6 +62,8 @@ exports[`Root snapshot renders 1`] = `
53
62
  },
54
63
  "Settings": Object {
55
64
  "backgroundImageEnabled": undefined,
65
+ "language": false,
66
+ "language.enabled": false,
56
67
  "promptEnabled": undefined,
57
68
  },
58
69
  }
@@ -48,5 +48,14 @@ export default {
48
48
  mmlOutput: false,
49
49
  mmlEditing: false,
50
50
  },
51
+ language: {
52
+ settings: false,
53
+ label: 'Specify Language',
54
+ enabled: false,
55
+ },
56
+ languageChoices: {
57
+ label: 'Language Choices',
58
+ options: [],
59
+ }
51
60
  },
52
61
  };
@@ -7,6 +7,7 @@ import { withStyles } from '@material-ui/core/styles';
7
7
 
8
8
  import ImageContainer from './image-container';
9
9
  import cloneDeep from 'lodash/cloneDeep';
10
+ import { dropdown } from '@pie-lib/config-ui/lib/settings';
10
11
 
11
12
  const { Panel, toggle } = settings;
12
13
 
@@ -49,6 +50,8 @@ export class Root extends React.Component {
49
50
  spellCheck = {},
50
51
  teacherInstructions = {},
51
52
  withRubric = {},
53
+ language = {},
54
+ languageChoices = {},
52
55
  mathMlOptions = {},
53
56
  } = configuration || {};
54
57
  const {
@@ -69,6 +72,8 @@ export class Root extends React.Component {
69
72
  const panelSettings = {
70
73
  backgroundImageEnabled: backgroundImage.settings && toggle(backgroundImage.label),
71
74
  promptEnabled: prompt.settings && toggle(prompt.label),
75
+ 'language.enabled': language.settings && toggle(language.label, true),
76
+ language: language.settings && language.enabled && dropdown(languageChoices.label, languageChoices.options),
72
77
  };
73
78
 
74
79
  const panelProperties = {
@@ -39,7 +39,8 @@ function model(question, session, env) {
39
39
  imageDimensions = normalizedQuestion.imageDimensions,
40
40
  prompt = normalizedQuestion.prompt,
41
41
  promptEnabled = normalizedQuestion.promptEnabled,
42
- backgroundImageEnabled = normalizedQuestion.backgroundImageEnabled;
42
+ backgroundImageEnabled = normalizedQuestion.backgroundImageEnabled,
43
+ language = normalizedQuestion.language;
43
44
  return new Promise(function (resolve) {
44
45
  var out = {
45
46
  disabled: env.mode !== 'gather',
@@ -47,7 +48,8 @@ function model(question, session, env) {
47
48
  imageDimensions: imageDimensions,
48
49
  imageUrl: imageUrl,
49
50
  prompt: promptEnabled ? prompt : null,
50
- backgroundImageEnabled: backgroundImageEnabled
51
+ backgroundImageEnabled: backgroundImageEnabled,
52
+ language: language
51
53
  };
52
54
 
53
55
  if (env.role === 'instructor' && (env.mode === 'view' || env.mode === 'evaluate')) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.js"],"names":["log","normalize","question","promptEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","backgroundImageEnabled","model","session","env","normalizedQuestion","imageUrl","imageDimensions","prompt","Promise","resolve","out","disabled","mode","role","teacherInstructions","createDefaultModel","defaults","outcome","score","completed","note"],"mappings":";;;;;;;;;;;;;;AAAA;;AACA;;;;;;AAEA,IAAMA,GAAG,GAAG,uBAAM,0CAAN,CAAZ;;AAEO,IAAMC,SAAS,GAAG,SAAZA,SAAY,CAACC,QAAD;AAAA;AACvBC,IAAAA,aAAa,EAAE,IADQ;AAEvBC,IAAAA,0BAA0B,EAAE,IAFL;AAGvBC,IAAAA,0BAA0B,EAAE,IAHL;AAIvBC,IAAAA,sBAAsB,EAAE;AAJD,KAKpBJ,QALoB;AAAA,CAAlB;;;;AAQA,SAASK,KAAT,CAAeL,QAAf,EAAyBM,OAAzB,EAAkCC,GAAlC,EAAuC;AAC5C,MAAMC,kBAAkB,GAAGT,SAAS,CAACC,QAAD,CAApC;AACA,MAAQS,QAAR,GAAqFD,kBAArF,CAAQC,QAAR;AAAA,MAAkBC,eAAlB,GAAqFF,kBAArF,CAAkBE,eAAlB;AAAA,MAAmCC,MAAnC,GAAqFH,kBAArF,CAAmCG,MAAnC;AAAA,MAA2CV,aAA3C,GAAqFO,kBAArF,CAA2CP,aAA3C;AAAA,MAA0DG,sBAA1D,GAAqFI,kBAArF,CAA0DJ,sBAA1D;AAEA,SAAO,IAAIQ,OAAJ,CAAY,UAACC,OAAD,EAAa;AAC9B,QAAMC,GAAG,GAAG;AACVC,MAAAA,QAAQ,EAAER,GAAG,CAACS,IAAJ,KAAa,QADb;AAEVA,MAAAA,IAAI,EAAET,GAAG,CAACS,IAFA;AAGVN,MAAAA,eAAe,EAAfA,eAHU;AAIVD,MAAAA,QAAQ,EAARA,QAJU;AAKVE,MAAAA,MAAM,EAAEV,aAAa,GAAGU,MAAH,GAAY,IALvB;AAMVP,MAAAA,sBAAsB,EAAtBA;AANU,KAAZ;;AASA,QAAIG,GAAG,CAACU,IAAJ,KAAa,YAAb,KAA8BV,GAAG,CAACS,IAAJ,KAAa,MAAb,IAAuBT,GAAG,CAACS,IAAJ,KAAa,UAAlE,CAAJ,EAAmF;AACjFF,MAAAA,GAAG,CAACI,mBAAJ,GAA0BV,kBAAkB,CAACN,0BAAnB,GACtBM,kBAAkB,CAACU,mBADG,GAEtB,IAFJ;AAGD,KAJD,MAIO;AACLJ,MAAAA,GAAG,CAACI,mBAAJ,GAA0B,IAA1B;AACD;;AAEDL,IAAAA,OAAO,CAACC,GAAD,CAAP;AACD,GAnBM,CAAP;AAoBD;;AAEM,IAAMK,kBAAkB,GAAG,SAArBA,kBAAqB;AAAA,MAACd,KAAD,uEAAS,EAAT;AAAA,SAChC,IAAIO,OAAJ,CAAY,UAACC,OAAD,EAAa;AACvBA,IAAAA,OAAO,iCACFO,oBADE,GAEFf,KAFE,EAAP;AAID,GALD,CADgC;AAAA,CAA3B;;;;AAQA;AAAiB;AAARgB,OAAT,GAAsC;AAC3C,SAAO,IAAIT,OAAJ,CAAY,UAACC,OAAD,EAAa;AAC9Bf,IAAAA,GAAG,CAAC,YAAD,CAAH;AACAe,IAAAA,OAAO,CAAC;AACNS,MAAAA,KAAK,EAAE,CADD;AAENC,MAAAA,SAAS,EAAE,KAFL;AAGNC,MAAAA,IAAI,EAAE;AAHA,KAAD,CAAP;AAKD,GAPM,CAAP;AAQD","sourcesContent":["import debug from 'debug';\nimport defaults from './defaults';\n\nconst log = debug('pie-elements:drawing-response:controller');\n\nexport const normalize = (question) => ({\n promptEnabled: true,\n teacherInstructionsEnabled: true,\n studentInstructionsEnabled: true,\n backgroundImageEnabled: true,\n ...question,\n});\n\nexport function model(question, session, env) {\n const normalizedQuestion = normalize(question);\n const { imageUrl, imageDimensions, prompt, promptEnabled, backgroundImageEnabled } = normalizedQuestion;\n\n return new Promise((resolve) => {\n const out = {\n disabled: env.mode !== 'gather',\n mode: env.mode,\n imageDimensions,\n imageUrl,\n prompt: promptEnabled ? prompt : null,\n backgroundImageEnabled,\n };\n\n if (env.role === 'instructor' && (env.mode === 'view' || env.mode === 'evaluate')) {\n out.teacherInstructions = normalizedQuestion.teacherInstructionsEnabled\n ? normalizedQuestion.teacherInstructions\n : null;\n } else {\n out.teacherInstructions = null;\n }\n\n resolve(out);\n });\n}\n\nexport const createDefaultModel = (model = {}) =>\n new Promise((resolve) => {\n resolve({\n ...defaults,\n ...model,\n });\n });\n\nexport function outcome(/*config, session*/) {\n return new Promise((resolve) => {\n log('outcome...');\n resolve({\n score: 0,\n completed: 'n/a',\n note: 'Requires manual scoring',\n });\n });\n}\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../src/index.js"],"names":["log","normalize","question","promptEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","backgroundImageEnabled","model","session","env","normalizedQuestion","imageUrl","imageDimensions","prompt","language","Promise","resolve","out","disabled","mode","role","teacherInstructions","createDefaultModel","defaults","outcome","score","completed","note"],"mappings":";;;;;;;;;;;;;;AAAA;;AACA;;;;;;AAEA,IAAMA,GAAG,GAAG,uBAAM,0CAAN,CAAZ;;AAEO,IAAMC,SAAS,GAAG,SAAZA,SAAY,CAACC,QAAD;AAAA;AACvBC,IAAAA,aAAa,EAAE,IADQ;AAEvBC,IAAAA,0BAA0B,EAAE,IAFL;AAGvBC,IAAAA,0BAA0B,EAAE,IAHL;AAIvBC,IAAAA,sBAAsB,EAAE;AAJD,KAKpBJ,QALoB;AAAA,CAAlB;;;;AAQA,SAASK,KAAT,CAAeL,QAAf,EAAyBM,OAAzB,EAAkCC,GAAlC,EAAuC;AAC5C,MAAMC,kBAAkB,GAAGT,SAAS,CAACC,QAAD,CAApC;AACA,MAAQS,QAAR,GAA+FD,kBAA/F,CAAQC,QAAR;AAAA,MAAkBC,eAAlB,GAA+FF,kBAA/F,CAAkBE,eAAlB;AAAA,MAAmCC,MAAnC,GAA+FH,kBAA/F,CAAmCG,MAAnC;AAAA,MAA2CV,aAA3C,GAA+FO,kBAA/F,CAA2CP,aAA3C;AAAA,MAA0DG,sBAA1D,GAA+FI,kBAA/F,CAA0DJ,sBAA1D;AAAA,MAAkFQ,QAAlF,GAA+FJ,kBAA/F,CAAkFI,QAAlF;AAEA,SAAO,IAAIC,OAAJ,CAAY,UAACC,OAAD,EAAa;AAC9B,QAAMC,GAAG,GAAG;AACVC,MAAAA,QAAQ,EAAET,GAAG,CAACU,IAAJ,KAAa,QADb;AAEVA,MAAAA,IAAI,EAAEV,GAAG,CAACU,IAFA;AAGVP,MAAAA,eAAe,EAAfA,eAHU;AAIVD,MAAAA,QAAQ,EAARA,QAJU;AAKVE,MAAAA,MAAM,EAAEV,aAAa,GAAGU,MAAH,GAAY,IALvB;AAMVP,MAAAA,sBAAsB,EAAtBA,sBANU;AAOVQ,MAAAA,QAAQ,EAARA;AAPU,KAAZ;;AAUA,QAAIL,GAAG,CAACW,IAAJ,KAAa,YAAb,KAA8BX,GAAG,CAACU,IAAJ,KAAa,MAAb,IAAuBV,GAAG,CAACU,IAAJ,KAAa,UAAlE,CAAJ,EAAmF;AACjFF,MAAAA,GAAG,CAACI,mBAAJ,GAA0BX,kBAAkB,CAACN,0BAAnB,GACtBM,kBAAkB,CAACW,mBADG,GAEtB,IAFJ;AAGD,KAJD,MAIO;AACLJ,MAAAA,GAAG,CAACI,mBAAJ,GAA0B,IAA1B;AACD;;AAEDL,IAAAA,OAAO,CAACC,GAAD,CAAP;AACD,GApBM,CAAP;AAqBD;;AAEM,IAAMK,kBAAkB,GAAG,SAArBA,kBAAqB;AAAA,MAACf,KAAD,uEAAS,EAAT;AAAA,SAChC,IAAIQ,OAAJ,CAAY,UAACC,OAAD,EAAa;AACvBA,IAAAA,OAAO,iCACFO,oBADE,GAEFhB,KAFE,EAAP;AAID,GALD,CADgC;AAAA,CAA3B;;;;AAQA;AAAiB;AAARiB,OAAT,GAAsC;AAC3C,SAAO,IAAIT,OAAJ,CAAY,UAACC,OAAD,EAAa;AAC9BhB,IAAAA,GAAG,CAAC,YAAD,CAAH;AACAgB,IAAAA,OAAO,CAAC;AACNS,MAAAA,KAAK,EAAE,CADD;AAENC,MAAAA,SAAS,EAAE,KAFL;AAGNC,MAAAA,IAAI,EAAE;AAHA,KAAD,CAAP;AAKD,GAPM,CAAP;AAQD","sourcesContent":["import debug from 'debug';\nimport defaults from './defaults';\n\nconst log = debug('pie-elements:drawing-response:controller');\n\nexport const normalize = (question) => ({\n promptEnabled: true,\n teacherInstructionsEnabled: true,\n studentInstructionsEnabled: true,\n backgroundImageEnabled: true,\n ...question,\n});\n\nexport function model(question, session, env) {\n const normalizedQuestion = normalize(question);\n const { imageUrl, imageDimensions, prompt, promptEnabled, backgroundImageEnabled, language } = normalizedQuestion;\n\n return new Promise((resolve) => {\n const out = {\n disabled: env.mode !== 'gather',\n mode: env.mode,\n imageDimensions,\n imageUrl,\n prompt: promptEnabled ? prompt : null,\n backgroundImageEnabled,\n language\n };\n\n if (env.role === 'instructor' && (env.mode === 'view' || env.mode === 'evaluate')) {\n out.teacherInstructions = normalizedQuestion.teacherInstructionsEnabled\n ? normalizedQuestion.teacherInstructions\n : null;\n } else {\n out.teacherInstructions = null;\n }\n\n resolve(out);\n });\n}\n\nexport const createDefaultModel = (model = {}) =>\n new Promise((resolve) => {\n resolve({\n ...defaults,\n ...model,\n });\n });\n\nexport function outcome(/*config, session*/) {\n return new Promise((resolve) => {\n log('outcome...');\n resolve({\n score: 0,\n completed: 'n/a',\n note: 'Requires manual scoring',\n });\n });\n}\n"],"file":"index.js"}
@@ -13,7 +13,7 @@ export const normalize = (question) => ({
13
13
 
14
14
  export function model(question, session, env) {
15
15
  const normalizedQuestion = normalize(question);
16
- const { imageUrl, imageDimensions, prompt, promptEnabled, backgroundImageEnabled } = normalizedQuestion;
16
+ const { imageUrl, imageDimensions, prompt, promptEnabled, backgroundImageEnabled, language } = normalizedQuestion;
17
17
 
18
18
  return new Promise((resolve) => {
19
19
  const out = {
@@ -23,6 +23,7 @@ export function model(question, session, env) {
23
23
  imageUrl,
24
24
  prompt: promptEnabled ? prompt : null,
25
25
  backgroundImageEnabled,
26
+ language
26
27
  };
27
28
 
28
29
  if (env.role === 'instructor' && (env.mode === 'view' || env.mode === 'evaluate')) {
@@ -172,6 +172,66 @@
172
172
  }
173
173
  }
174
174
  },
175
+ "language": {
176
+ "title": "ConfigurePropWithEnabled",
177
+ "type": "object",
178
+ "properties": {
179
+ "settings": {
180
+ "description": "Indicates if the item has to be displayed in the Settings Panel",
181
+ "type": "boolean",
182
+ "title": "settings"
183
+ },
184
+ "label": {
185
+ "description": "Indicates the label for the item that has to be displayed in the Settings Panel",
186
+ "type": "string",
187
+ "title": "label"
188
+ },
189
+ "enabled": {
190
+ "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)",
191
+ "type": "boolean",
192
+ "title": "enabled"
193
+ }
194
+ }
195
+ },
196
+ "languageChoices": {
197
+ "description": "Language choices configuration\nOnly available if language is enabled",
198
+ "type": "object",
199
+ "properties": {
200
+ "label": {
201
+ "type": "string",
202
+ "title": "label"
203
+ },
204
+ "options": {
205
+ "type": "array",
206
+ "items": {
207
+ "title": "ConfigureLanguageOptionsProp",
208
+ "type": "object",
209
+ "properties": {
210
+ "value": {
211
+ "description": "Value of the language option",
212
+ "type": "string",
213
+ "title": "value"
214
+ },
215
+ "label": {
216
+ "description": "Label of the language option",
217
+ "type": "string",
218
+ "title": "label"
219
+ }
220
+ },
221
+ "required": [
222
+ "label",
223
+ "value"
224
+ ]
225
+ },
226
+ "title": "options"
227
+ }
228
+ },
229
+ "required": [
230
+ "label",
231
+ "options"
232
+ ],
233
+ "title": "languageChoices"
234
+ },
175
235
  "showPrompt": {
176
236
  "description": "Determines whether prompt field will be displayed or not",
177
237
  "default": true,
@@ -330,6 +390,26 @@
330
390
  "title": "mmlEditing"
331
391
  }
332
392
  }
393
+ },
394
+ "ConfigureLanguageOptionsProp": {
395
+ "title": "ConfigureLanguageOptionsProp",
396
+ "type": "object",
397
+ "properties": {
398
+ "value": {
399
+ "description": "Value of the language option",
400
+ "type": "string",
401
+ "title": "value"
402
+ },
403
+ "label": {
404
+ "description": "Label of the language option",
405
+ "type": "string",
406
+ "title": "label"
407
+ }
408
+ },
409
+ "required": [
410
+ "label",
411
+ "value"
412
+ ]
333
413
  }
334
414
  },
335
415
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -134,6 +134,46 @@ Indicates if model should have mathML output instead of latex
134
134
 
135
135
  Indicates if mathML that's already in model should be editable
136
136
 
137
+ # `language` (object)
138
+
139
+ Properties of the `language` object:
140
+
141
+ ## `settings` (boolean)
142
+
143
+ Indicates if the item has to be displayed in the Settings Panel
144
+
145
+ ## `label` (string)
146
+
147
+ Indicates the label for the item that has to be displayed in the Settings Panel
148
+
149
+ ## `enabled` (boolean)
150
+
151
+ Indicates the value of the item if it affects config-ui
152
+ (eg.: if item is a switch and displaying an input on the config-ui depends on the switch value: on/off)
153
+
154
+ # `languageChoices` (object)
155
+
156
+ Language choices configuration
157
+ Only available if language is enabled
158
+
159
+ Properties of the `languageChoices` object:
160
+
161
+ ## `label` (string, required)
162
+
163
+ ## `options` (array, required)
164
+
165
+ The object is an array with all elements of the type `object`.
166
+
167
+ The array object has the following properties:
168
+
169
+ ### `value` (string, required)
170
+
171
+ Value of the language option
172
+
173
+ ### `label` (string, required)
174
+
175
+ Label of the language option
176
+
137
177
  # `showPrompt` (boolean)
138
178
 
139
179
  Determines whether prompt field will be displayed or not
@@ -266,4 +306,16 @@ Indicates if model should have mathML output instead of latex
266
306
 
267
307
  ### `mmlEditing` (number)
268
308
 
269
- Indicates if mathML that's already in model should be editable
309
+ Indicates if mathML that's already in model should be editable
310
+
311
+ ## `ConfigureLanguageOptionsProp` (object)
312
+
313
+ Properties of the `ConfigureLanguageOptionsProp` object:
314
+
315
+ ### `value` (string, required)
316
+
317
+ Value of the language option
318
+
319
+ ### `label` (string, required)
320
+
321
+ Label of the language option
@@ -88,6 +88,11 @@
88
88
  "type": "boolean",
89
89
  "title": "rubricEnabled"
90
90
  },
91
+ "language": {
92
+ "description": "Indicates the language of the component\nSupported options: en, es, en_US, en-US, es_ES, es-ES, es_MX, es-MX",
93
+ "type": "string",
94
+ "title": "language"
95
+ },
91
96
  "id": {
92
97
  "description": "Identifier to identify the Pie Element in html markup, Must be unique within a pie item config.",
93
98
  "type": "string",
@@ -205,6 +210,26 @@
205
210
  }
206
211
  }
207
212
  },
213
+ "ConfigureLanguageOptionsProp": {
214
+ "title": "ConfigureLanguageOptionsProp",
215
+ "type": "object",
216
+ "properties": {
217
+ "value": {
218
+ "description": "Value of the language option",
219
+ "type": "string",
220
+ "title": "value"
221
+ },
222
+ "label": {
223
+ "description": "Label of the language option",
224
+ "type": "string",
225
+ "title": "label"
226
+ }
227
+ },
228
+ "required": [
229
+ "label",
230
+ "value"
231
+ ]
232
+ },
208
233
  "Dimension": {
209
234
  "title": "Dimension",
210
235
  "type": "object",
@@ -69,6 +69,11 @@ Default: `": 'bottom'"`
69
69
 
70
70
  Indicates if Rubric is enabled
71
71
 
72
+ # `language` (string)
73
+
74
+ Indicates the language of the component
75
+ Supported options: en, es, en_US, en-US, es_ES, es-ES, es_MX, es-MX
76
+
72
77
  # `id` (string, required)
73
78
 
74
79
  Identifier to identify the Pie Element in html markup, Must be unique within a pie item config.
@@ -159,6 +164,18 @@ Indicates if model should have mathML output instead of latex
159
164
 
160
165
  Indicates if mathML that's already in model should be editable
161
166
 
167
+ ## `ConfigureLanguageOptionsProp` (object)
168
+
169
+ Properties of the `ConfigureLanguageOptionsProp` object:
170
+
171
+ ### `value` (string, required)
172
+
173
+ Value of the language option
174
+
175
+ ### `label` (string, required)
176
+
177
+ Label of the language option
178
+
162
179
  ## `Dimension` (object)
163
180
 
164
181
  Properties of the `Dimension` object:
@@ -31,6 +31,8 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
31
31
 
32
32
  var _styles = require("@material-ui/core/styles");
33
33
 
34
+ var _translator = _interopRequireDefault(require("@pie-lib/translator"));
35
+
34
36
  var _constants = _interopRequireDefault(require("./constants"));
35
37
 
36
38
  var _button = _interopRequireDefault(require("./button"));
@@ -52,6 +54,7 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
52
54
  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; } }
53
55
 
54
56
  var TOOLS = _constants["default"].tools;
57
+ var translator = _translator["default"].translator;
55
58
  var ROGVAIV = ['red', 'orange', 'yellow', 'violet', 'blue', 'green', 'white', 'black'].map(function (c) {
56
59
  return {
57
60
  value: c,
@@ -108,6 +111,47 @@ var Container = /*#__PURE__*/function (_Component) {
108
111
  }
109
112
 
110
113
  (0, _createClass2["default"])(Container, [{
114
+ key: "setTranslatedState",
115
+ value: function setTranslatedState(language) {
116
+ var translatedROGVAIV = ROGVAIV.map(function (c) {
117
+ return {
118
+ value: c.value,
119
+ label: translator.t("drawingResponse.".concat(c.label), {
120
+ lng: language
121
+ })
122
+ };
123
+ });
124
+ this.setState({
125
+ fillColorList: [{
126
+ value: 'transparent',
127
+ label: translator.t('drawingResponse.noFill', {
128
+ lng: language
129
+ })
130
+ }, {
131
+ value: 'lightblue',
132
+ label: translator.t('drawingResponse.lightblue', {
133
+ lng: language
134
+ })
135
+ }, {
136
+ value: 'lightyellow',
137
+ label: translator.t('drawingResponse.lightyellow', {
138
+ lng: language
139
+ })
140
+ }].concat((0, _toConsumableArray2["default"])(translatedROGVAIV)),
141
+ paintColor: translator.t('drawingResponse.red', {
142
+ lng: language
143
+ }),
144
+ outlineColorList: translatedROGVAIV,
145
+ paintColorList: translatedROGVAIV
146
+ });
147
+ }
148
+ }, {
149
+ key: "UNSAFE_componentWillReceiveProps",
150
+ value: function UNSAFE_componentWillReceiveProps(props) {
151
+ var language = props.language;
152
+ this.setTranslatedState(language);
153
+ }
154
+ }, {
111
155
  key: "setDimensions",
112
156
  value: function setDimensions() {
113
157
  var _this2 = this;
@@ -139,6 +183,8 @@ var Container = /*#__PURE__*/function (_Component) {
139
183
  value: function componentDidMount() {
140
184
  var _this3 = this;
141
185
 
186
+ var language = this.props.language;
187
+ this.setTranslatedState(language);
142
188
  this.setDimensions();
143
189
  this.observer = new MutationObserver(function (mutations) {
144
190
  mutations.forEach(function () {
@@ -186,13 +232,14 @@ var Container = /*#__PURE__*/function (_Component) {
186
232
  value: function handleMakeToolActive(tool) {
187
233
  var TextEntry = this.state.TextEntry;
188
234
  var type = tool.type;
235
+ var language = this.props.language;
189
236
 
190
237
  if (type !== 'Text') {
191
238
  this.setState({
192
239
  toolActive: tool
193
240
  });
194
241
  } else {
195
- TextEntry.addNewTextEntry(); // Force update
242
+ TextEntry.addNewTextEntry(language); // Force update
196
243
 
197
244
  this.setState({
198
245
  updatedAt: new Date()
@@ -217,7 +264,8 @@ var Container = /*#__PURE__*/function (_Component) {
217
264
  imageDimensions = _this$props.imageDimensions,
218
265
  onSessionChange = _this$props.onSessionChange,
219
266
  session = _this$props.session,
220
- backgroundImageEnabled = _this$props.backgroundImageEnabled;
267
+ backgroundImageEnabled = _this$props.backgroundImageEnabled,
268
+ language = _this$props.language;
221
269
  var _this$state = this.state,
222
270
  drawableDimensions = _this$state.drawableDimensions,
223
271
  toolActive = _this$state.toolActive,
@@ -246,7 +294,8 @@ var Container = /*#__PURE__*/function (_Component) {
246
294
  },
247
295
  onPaintColorChange: function onPaintColorChange(color) {
248
296
  return _this4.handleColorChange('paint', color);
249
- }
297
+ },
298
+ language: language
250
299
  }), /*#__PURE__*/_react["default"].createElement("div", {
251
300
  className: classes.box
252
301
  }, /*#__PURE__*/_react["default"].createElement("div", {
@@ -288,7 +337,8 @@ var Container = /*#__PURE__*/function (_Component) {
288
337
  imageDimensions: imageDimensions,
289
338
  toolActive: toolActive,
290
339
  TextEntry: TextEntry,
291
- backgroundImageEnabled: backgroundImageEnabled
340
+ backgroundImageEnabled: backgroundImageEnabled,
341
+ language: language
292
342
  }))));
293
343
  }
294
344
  }]);
@@ -303,7 +353,8 @@ exports.Container = Container;
303
353
  onSessionChange: _propTypes["default"].func.isRequired,
304
354
  imageDimensions: _propTypes["default"].object.isRequired,
305
355
  imageUrl: _propTypes["default"].string.isRequired,
306
- backgroundImageEnabled: _propTypes["default"].bool.isRequired
356
+ backgroundImageEnabled: _propTypes["default"].bool.isRequired,
357
+ language: _propTypes["default"].string
307
358
  });
308
359
 
309
360
  var styles = function styles(theme) {