@pie-element/explicit-constructed-response 7.3.11-next.0 → 7.3.11-next.12

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.
@@ -38,6 +38,9 @@ var _default = {
38
38
  },
39
39
  textAlign: {
40
40
  disabled: true
41
+ },
42
+ showParagraphs: {
43
+ disabled: false
41
44
  }
42
45
  },
43
46
  prompt: {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/defaults.js"],"names":["model","choices","displayType","markup","maxLengthPerChoiceEnabled","playerSpellCheckEnabled","prompt","promptEnabled","rationale","rationaleEnabled","spellCheckEnabled","studentInstructionsEnabled","teacherInstructions","teacherInstructionsEnabled","toolbarEditorPosition","responseAreaInputConfiguration","configuration","baseInputConfiguration","html","disabled","audio","video","image","textAlign","settings","label","inputConfiguration","required","partialScoring","settingsPanelDisabled","spellCheck","enabled","editSource","playerSpellCheck","template","h3","blockquote","maxLengthPerChoice","maxResponseAreas","maxImageWidth","maxImageHeight","withRubric","mathMlOptions","mmlOutput","mmlEditing","language","languageChoices","options","characters","spanishButton"],"mappings":"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","sourcesContent":["export default {\n model: {\n choices: {},\n displayType: 'block',\n markup: '',\n maxLengthPerChoiceEnabled: true,\n playerSpellCheckEnabled: true,\n prompt: '',\n promptEnabled: true,\n rationale: '',\n rationaleEnabled: true,\n spellCheckEnabled: true,\n studentInstructionsEnabled: true,\n teacherInstructions: '',\n teacherInstructionsEnabled: true,\n toolbarEditorPosition: 'bottom',\n responseAreaInputConfiguration: {},\n },\n configuration: {\n baseInputConfiguration: {\n html: { disabled: true },\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n textAlign: { disabled: true },\n },\n prompt: {\n settings: true,\n label: 'Prompt',\n inputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n required: false,\n },\n partialScoring: {\n settings: false,\n label: 'Allow Partial Scoring',\n },\n rationale: {\n settings: true,\n label: 'Rationale',\n inputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n required: false,\n },\n settingsPanelDisabled: false,\n spellCheck: {\n label: 'Spellcheck',\n settings: false,\n enabled: true,\n },\n editSource: {\n label: 'Edit Source',\n settings: false,\n enabled: false,\n },\n playerSpellCheck: {\n label: 'Student Spellcheck',\n settings: true,\n enabled: true,\n },\n teacherInstructions: {\n settings: true,\n label: 'Teacher Instructions',\n inputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n required: false,\n },\n template: {\n inputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n h3: { disabled: true },\n blockquote: { disabled: true },\n },\n },\n maxLengthPerChoice: {\n settings: true,\n label: 'Maximum Length Per Choice',\n },\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 responseAreaInputConfiguration: {\n inputConfiguration: {\n characters: {\n disabled: true\n },\n },\n },\n spanishButton: {\n settings: true,\n label: 'Disable Spanish Characters',\n },\n },\n};\n"],"file":"defaults.js"}
1
+ {"version":3,"sources":["../src/defaults.js"],"names":["model","choices","displayType","markup","maxLengthPerChoiceEnabled","playerSpellCheckEnabled","prompt","promptEnabled","rationale","rationaleEnabled","spellCheckEnabled","studentInstructionsEnabled","teacherInstructions","teacherInstructionsEnabled","toolbarEditorPosition","responseAreaInputConfiguration","configuration","baseInputConfiguration","html","disabled","audio","video","image","textAlign","showParagraphs","settings","label","inputConfiguration","required","partialScoring","settingsPanelDisabled","spellCheck","enabled","editSource","playerSpellCheck","template","h3","blockquote","maxLengthPerChoice","maxResponseAreas","maxImageWidth","maxImageHeight","withRubric","mathMlOptions","mmlOutput","mmlEditing","language","languageChoices","options","characters","spanishButton"],"mappings":"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","sourcesContent":["export default {\n model: {\n choices: {},\n displayType: 'block',\n markup: '',\n maxLengthPerChoiceEnabled: true,\n playerSpellCheckEnabled: true,\n prompt: '',\n promptEnabled: true,\n rationale: '',\n rationaleEnabled: true,\n spellCheckEnabled: true,\n studentInstructionsEnabled: true,\n teacherInstructions: '',\n teacherInstructionsEnabled: true,\n toolbarEditorPosition: 'bottom',\n responseAreaInputConfiguration: {},\n },\n configuration: {\n baseInputConfiguration: {\n html: { disabled: true },\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n textAlign: { disabled: true },\n showParagraphs: { disabled: false },\n },\n prompt: {\n settings: true,\n label: 'Prompt',\n inputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n required: false,\n },\n partialScoring: {\n settings: false,\n label: 'Allow Partial Scoring',\n },\n rationale: {\n settings: true,\n label: 'Rationale',\n inputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n required: false,\n },\n settingsPanelDisabled: false,\n spellCheck: {\n label: 'Spellcheck',\n settings: false,\n enabled: true,\n },\n editSource: {\n label: 'Edit Source',\n settings: false,\n enabled: false,\n },\n playerSpellCheck: {\n label: 'Student Spellcheck',\n settings: true,\n enabled: true,\n },\n teacherInstructions: {\n settings: true,\n label: 'Teacher Instructions',\n inputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n required: false,\n },\n template: {\n inputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n h3: { disabled: true },\n blockquote: { disabled: true },\n },\n },\n maxLengthPerChoice: {\n settings: true,\n label: 'Maximum Length Per Choice',\n },\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 responseAreaInputConfiguration: {\n inputConfiguration: {\n characters: {\n disabled: true\n },\n },\n },\n spanishButton: {\n settings: true,\n label: 'Disable Spanish Characters',\n },\n },\n};\n"],"file":"defaults.js"}
@@ -70,7 +70,7 @@ var ECRToolbar = /*#__PURE__*/function (_React$Component) {
70
70
  value = _this$props.value,
71
71
  onToolbarDone = _this$props.onToolbarDone,
72
72
  onChangeResponse = _this$props.onChangeResponse;
73
- var sanitizedMarkup = (0, _markupUtils.decodeHTML)((0, _markupUtils.stripHtmlTags)(markup));
73
+ var sanitizedMarkup = (0, _markupUtils.stripHtmlTags)(markup);
74
74
 
75
75
  _this.setState({
76
76
  markup: sanitizedMarkup
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/ecr-toolbar.jsx"],"names":["findSlateNode","key","window","document","querySelector","ECRToolbar","markup","toolbarStyle","props","node","value","onToolbarDone","onChangeResponse","sanitizedMarkup","setState","updatedData","data","toJSON","change","setNodeByKey","nextText","getNextText","moveFocusTo","moveAnchorTo","respAreaMarkup","event","clickedInside","correctChoice","choice","domNode","domNodeRect","getBoundingClientRect","editor","closest","editorRect","top","left","label","position","height","width","classes","maxLengthPerChoiceEnabled","pluginProps","spellCheck","state","inputProps","maxLength","preventDone","onRespAreaChange","val","onDone","e","relatedTarget","onBlur","onKeyDown","language","minWidth","isHidden","characters","disabled","React","Component","PropTypes","object","func","isRequired","shape","bool","StyledECRToolbar","theme","backgroundColor","palette","common","white","outline","lineHeight"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;AAEA,IAAMA,aAAa,GAAG,SAAhBA,aAAgB,CAACC,GAAD,EAAS;AAC7B,SAAOC,MAAM,CAACC,QAAP,CAAgBC,aAAhB,CAA8B,gBAAgBH,GAAhB,GAAsB,IAApD,CAAP;AACD,CAFD;;IAIaI,U;;;;;;;;;;;;;;;8FAmBD;AACJC,MAAAA,MAAM,EAAE,EADJ;AAEJC,MAAAA,YAAY,EAAE;AAFV,K;+FA+BC,UAACD,MAAD,EAAY;AACjB,wBAAyD,MAAKE,KAA9D;AAAA,UAAQC,IAAR,eAAQA,IAAR;AAAA,UAAcC,KAAd,eAAcA,KAAd;AAAA,UAAqBC,aAArB,eAAqBA,aAArB;AAAA,UAAoCC,gBAApC,eAAoCA,gBAApC;AACA,UAAMC,eAAe,GAAG,6BAAW,gCAAcP,MAAd,CAAX,CAAxB;;AACA,YAAKQ,QAAL,CAAc;AAAER,QAAAA,MAAM,EAAEO;AAAV,OAAd;;AAEA,UAAME,WAAW,mCAAQN,IAAI,CAACO,IAAL,CAAUC,MAAV,EAAR;AAA4BP,QAAAA,KAAK,EAAEG;AAAnC,QAAjB;;AACA,UAAMK,MAAM,GAAGR,KAAK,CAACQ,MAAN,GAAeC,YAAf,CAA4BV,IAAI,CAACR,GAAjC,EAAsC;AAAEe,QAAAA,IAAI,EAAED;AAAR,OAAtC,CAAf;AACA,UAAMK,QAAQ,GAAGV,KAAK,CAACP,QAAN,CAAekB,WAAf,CAA2BZ,IAAI,CAACR,GAAhC,CAAjB;AAEAiB,MAAAA,MAAM,CAACI,WAAP,CAAmBF,QAAQ,CAACnB,GAA5B,EAAiC,CAAjC,EAAoCsB,YAApC,CAAiDH,QAAQ,CAACnB,GAA1D,EAA+D,CAA/D;AACAU,MAAAA,aAAa,CAACO,MAAD,EAAS,IAAT,CAAb;AACAN,MAAAA,gBAAgB,CAACC,eAAD,CAAhB;AACH,K;yGAEkB,UAACW,cAAD,EAAoB;AACnC,YAAKV,QAAL,CAAc;AAAEU,QAAAA,cAAc,EAAdA;AAAF,OAAd;AACH,K;kGAEW,UAACC,KAAD,EAAW;AACnB,UAAIA,KAAK,CAACxB,GAAN,KAAc,OAAlB,EAA2B;AACvB,eAAO,KAAP;AACH;AACJ,K;+FAEQ,YAAM;AACX,UAAI,MAAKyB,aAAT,EAAwB;AACpB,cAAKA,aAAL,GAAqB,KAArB;AACH;AACJ,K;;;;;;WAtDH,6BAAoB;AAClB,yBAAgC,KAAKlB,KAArC;AAAA,UAAQmB,aAAR,gBAAQA,aAAR;AAAA,UAAuBlB,IAAvB,gBAAuBA,IAAvB;AACA,UAAMmB,MAAM,GAAGD,aAAa,IAAI,EAAhC;AAEA,UAAME,OAAO,GAAG7B,aAAa,CAACS,IAAI,CAACR,GAAN,CAA7B;;AAEA,UAAI4B,OAAJ,EAAa;AACX;AACA,YAAMC,WAAW,GAAGD,OAAO,CAACE,qBAAR,EAApB;AACA,YAAMC,MAAM,GAAGH,OAAO,CAACI,OAAR,CAAgB,qBAAhB,CAAf;AACA,YAAMC,UAAU,GAAGF,MAAM,CAACD,qBAAP,EAAnB;AACA,YAAMI,GAAG,GAAGL,WAAW,CAACK,GAAZ,GAAkBD,UAAU,CAACC,GAAzC;AACA,YAAMC,IAAI,GAAGN,WAAW,CAACM,IAAZ,GAAmBF,UAAU,CAACE,IAA3C;AAEA,aAAKtB,QAAL,CAAc;AACZR,UAAAA,MAAM,EAAEsB,MAAM,CAACS,KADH;AAEZ9B,UAAAA,YAAY,EAAE;AACZ+B,YAAAA,QAAQ,EAAE,UADE;AAEZH,YAAAA,GAAG,YAAKA,GAAG,GAAGL,WAAW,CAACS,MAAlB,GAA2B,EAAhC,OAFS;AAGZH,YAAAA,IAAI,YAAKA,IAAI,GAAG,EAAZ,OAHQ;AAIZI,YAAAA,KAAK,YAAKV,WAAW,CAACU,KAAZ,GAAoB,CAAzB;AAJO;AAFF,SAAd;AASD;AACF;;;WAgCC,kBAAS;AAAA;AAAA;;AACL,yBAAwE,KAAKhC,KAA7E;AAAA,UAAQiC,OAAR,gBAAQA,OAAR;AAAA,UAAiBC,yBAAjB,gBAAiBA,yBAAjB;AAAA,UAA4CC,WAA5C,gBAA4CA,WAA5C;AAAA,UAAyDC,UAAzD,gBAAyDA,UAAzD;AACA,wBAAiC,KAAKC,KAAtC;AAAA,UAAQvC,MAAR,eAAQA,MAAR;AAAA,UAAgBC,YAAhB,eAAgBA,YAAhB;AACA,UAAMuC,UAAU,GAAGJ,yBAAyB,GAAG,EAAH,GAAQ;AAAEK,QAAAA,SAAS,EAAE;AAAb,OAApD;AAEA,0BACI;AAAK,QAAA,KAAK,EAAExC;AAAZ,sBACI,gCAAC,0BAAD;AACI,QAAA,SAAS,EAAE,IADf;AAEI,QAAA,SAAS,EAAEkC,OAAO,CAACnC,MAFvB;AAGI,QAAA,gBAAgB,MAHpB;AAII,QAAA,QAAQ,EAAE,kBAACkB,cAAD,EAAoB;AAC1B,cAAI,MAAI,CAACwB,WAAT,EAAsB;AAClB;AACH;;AACD,UAAA,MAAI,CAACC,gBAAL,CAAsBzB,cAAtB;AACH,SATL;AAUI,QAAA,MAAM,EAAE,gBAAC0B,GAAD,EAAS;AACb,cAAI,MAAI,CAACF,WAAT,EAAsB;AAClB;AACH;;AACD,UAAA,MAAI,CAACG,MAAL,CAAYD,GAAZ;AACH,SAfL;AAgBI,QAAA,MAAM,EAAE,gBAACE,CAAD,EAAO;AACX,UAAA,MAAI,CAACJ,WAAL,GAAmBI,CAAC,CAACC,aAAF,IAAmBD,CAAC,CAACC,aAAF,CAAgBpB,OAAhB,CAAwB,0BAAxB,CAAtC;;AACA,UAAA,MAAI,CAACqB,MAAL,CAAYF,CAAZ;AACH,SAnBL;AAoBI,QAAA,SAAS,EAAE,KAAKG,SApBpB;AAqBI,QAAA,MAAM,EAAEjD,MAAM,IAAI,EArBtB;AAsBI,QAAA,aAAa,EAAE,CAAC,oBAAD,CAtBnB;AAuBI,QAAA,WAAW,EAAEqC,WAvBjB;AAwBI,QAAA,uBAAuB,EAAE,CAAC;AAAEa,UAAAA,QAAQ,EAAE;AAAZ,SAAD,CAxB7B;AAyBI,QAAA,SAAS,EAAE,MAzBf;AA0BI,QAAA,SAAS,EAAE,MA1Bf;AA2BI,QAAA,UAAU,EAAEZ,UA3BhB;AA4BI,QAAA,gBAAgB,MA5BpB;AA6BI,QAAA,WAAW,EAAE;AACTa,UAAAA,QAAQ,EAAE,MADD;AAETC,UAAAA,QAAQ,EAAE,CAAC,EAACf,WAAD,aAACA,WAAD,wCAACA,WAAW,CAAEgB,UAAd,kDAAC,sBAAyBC,QAA1B;AAFF;AA7BjB,SAiCQd,UAjCR,EADJ,CADJ;AAuCH;;;EA5H2Be,kBAAMC,S;;;iCAAzBzD,U,eACQ;AACjBsB,EAAAA,aAAa,EAAEoC,sBAAUC,MADR;AAEjBvB,EAAAA,OAAO,EAAEsB,sBAAUC,MAFF;AAGjBvD,EAAAA,IAAI,EAAEsD,sBAAUC,MAHC;AAIjBb,EAAAA,MAAM,EAAEY,sBAAUE,IAJD;AAKjBrD,EAAAA,gBAAgB,EAAEmD,sBAAUE,IAAV,CAAeC,UALhB;AAMjBvD,EAAAA,aAAa,EAAEoD,sBAAUE,IAAV,CAAeC,UANb;AAOjBxD,EAAAA,KAAK,EAAEqD,sBAAUI,KAAV,CAAgB;AACrBjD,IAAAA,MAAM,EAAE6C,sBAAUE,IAAV,CAAeC,UADF;AAErB/D,IAAAA,QAAQ,EAAE4D,sBAAUI,KAAV,CAAgB;AACxB9C,MAAAA,WAAW,EAAE0C,sBAAUE,IAAV,CAAeC;AADJ,KAAhB;AAFW,GAAhB,CAPU;AAajBxB,EAAAA,yBAAyB,EAAEqB,sBAAUK,IAbpB;AAcjBzB,EAAAA,WAAW,EAAEoB,sBAAUC,MAdN;AAejBpB,EAAAA,UAAU,EAAEmB,sBAAUK;AAfL,C;AA8HrB,IAAMC,gBAAgB,GAAG,wBAAW,UAACC,KAAD;AAAA,SAAY;AAC5ChE,IAAAA,MAAM,EAAE;AACJiE,MAAAA,eAAe,EAAED,KAAK,CAACE,OAAN,CAAcC,MAAd,CAAqBC,KADlC;AAEJC,MAAAA,OAAO,EAAE,MAFL;AAGJC,MAAAA,UAAU,EAAE;AAHR;AADoC,GAAZ;AAAA,CAAX,EAMrBvE,UANqB,CAAzB;eAQegE,gB","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { EditableHtml } from '@pie-lib/pie-toolbox/editable-html';\nimport { stripHtmlTags, decodeHTML } from './markupUtils';\n\nconst findSlateNode = (key) => {\n return window.document.querySelector('[data-key=\"' + key + '\"]');\n};\n\nexport class ECRToolbar extends React.Component {\n static propTypes = {\n correctChoice: PropTypes.object,\n classes: PropTypes.object,\n node: PropTypes.object,\n onDone: PropTypes.func,\n onChangeResponse: PropTypes.func.isRequired,\n onToolbarDone: PropTypes.func.isRequired,\n value: PropTypes.shape({\n change: PropTypes.func.isRequired,\n document: PropTypes.shape({\n getNextText: PropTypes.func.isRequired,\n }),\n }),\n maxLengthPerChoiceEnabled: PropTypes.bool,\n pluginProps: PropTypes.object,\n spellCheck: PropTypes.bool,\n };\n\n state = {\n markup: '',\n toolbarStyle: {},\n };\n\n componentDidMount() {\n const { correctChoice, node } = this.props;\n const choice = correctChoice || {};\n\n const domNode = findSlateNode(node.key);\n\n if (domNode) {\n //eslint-disable-next-line\n const domNodeRect = domNode.getBoundingClientRect();\n const editor = domNode.closest('[data-slate-editor]');\n const editorRect = editor.getBoundingClientRect();\n const top = domNodeRect.top - editorRect.top;\n const left = domNodeRect.left - editorRect.left;\n\n this.setState({\n markup: choice.label,\n toolbarStyle: {\n position: 'absolute',\n top: `${top + domNodeRect.height + 17}px`,\n left: `${left + 20}px`,\n width: `${domNodeRect.width - 4}px`,\n },\n });\n }\n }\n\n onDone = (markup) => {\n const { node, value, onToolbarDone, onChangeResponse } = this.props;\n const sanitizedMarkup = decodeHTML(stripHtmlTags(markup));\n this.setState({ markup: sanitizedMarkup });\n\n const updatedData = { ...node.data.toJSON(), value: sanitizedMarkup };\n const change = value.change().setNodeByKey(node.key, { data: updatedData });\n const nextText = value.document.getNextText(node.key);\n\n change.moveFocusTo(nextText.key, 0).moveAnchorTo(nextText.key, 0);\n onToolbarDone(change, true);\n onChangeResponse(sanitizedMarkup);\n };\n\n onRespAreaChange = (respAreaMarkup) => {\n this.setState({ respAreaMarkup });\n };\n\n onKeyDown = (event) => {\n if (event.key === 'Enter') {\n return false;\n }\n };\n\n onBlur = () => {\n if (this.clickedInside) {\n this.clickedInside = false;\n }\n };\n\n render() {\n const { classes, maxLengthPerChoiceEnabled, pluginProps, spellCheck } = this.props;\n const { markup, toolbarStyle } = this.state;\n const inputProps = maxLengthPerChoiceEnabled ? {} : { maxLength: 25 };\n\n return (\n <div style={toolbarStyle}>\n <EditableHtml\n autoFocus={true}\n className={classes.markup}\n disableUnderline\n onChange={(respAreaMarkup) => {\n if (this.preventDone) {\n return;\n }\n this.onRespAreaChange(respAreaMarkup);\n }}\n onDone={(val) => {\n if (this.preventDone) {\n return;\n }\n this.onDone(val);\n }}\n onBlur={(e) => {\n this.preventDone = e.relatedTarget && e.relatedTarget.closest('.insert-character-dialog');\n this.onBlur(e);\n }}\n onKeyDown={this.onKeyDown}\n markup={markup || ''}\n activePlugins={['languageCharacters']}\n pluginProps={pluginProps}\n languageCharactersProps={[{ language: 'spanish' }]}\n minHeight={'15px'}\n maxHeight={'15px'}\n spellCheck={spellCheck}\n autoWidthToolbar\n toolbarOpts={{\n minWidth: 'auto',\n isHidden: !!pluginProps?.characters?.disabled\n }}\n {...inputProps}\n />\n </div>\n );\n }\n}\n\nconst StyledECRToolbar = withStyles((theme) => ({\n markup: {\n backgroundColor: theme.palette.common.white,\n outline: 'none',\n lineHeight: '15px'\n },\n}))(ECRToolbar);\n\nexport default StyledECRToolbar;\n"],"file":"ecr-toolbar.js"}
1
+ {"version":3,"sources":["../src/ecr-toolbar.jsx"],"names":["findSlateNode","key","window","document","querySelector","ECRToolbar","markup","toolbarStyle","props","node","value","onToolbarDone","onChangeResponse","sanitizedMarkup","setState","updatedData","data","toJSON","change","setNodeByKey","nextText","getNextText","moveFocusTo","moveAnchorTo","respAreaMarkup","event","clickedInside","correctChoice","choice","domNode","domNodeRect","getBoundingClientRect","editor","closest","editorRect","top","left","label","position","height","width","classes","maxLengthPerChoiceEnabled","pluginProps","spellCheck","state","inputProps","maxLength","preventDone","onRespAreaChange","val","onDone","e","relatedTarget","onBlur","onKeyDown","language","minWidth","isHidden","characters","disabled","React","Component","PropTypes","object","func","isRequired","shape","bool","StyledECRToolbar","theme","backgroundColor","palette","common","white","outline","lineHeight"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { EditableHtml } from '@pie-lib/pie-toolbox/editable-html';\nimport { stripHtmlTags, decodeHTML } from './markupUtils';\n\nconst findSlateNode = (key) => {\n return window.document.querySelector('[data-key=\"' + key + '\"]');\n};\n\nexport class ECRToolbar extends React.Component {\n static propTypes = {\n correctChoice: PropTypes.object,\n classes: PropTypes.object,\n node: PropTypes.object,\n onDone: PropTypes.func,\n onChangeResponse: PropTypes.func.isRequired,\n onToolbarDone: PropTypes.func.isRequired,\n value: PropTypes.shape({\n change: PropTypes.func.isRequired,\n document: PropTypes.shape({\n getNextText: PropTypes.func.isRequired,\n }),\n }),\n maxLengthPerChoiceEnabled: PropTypes.bool,\n pluginProps: PropTypes.object,\n spellCheck: PropTypes.bool,\n };\n\n state = {\n markup: '',\n toolbarStyle: {},\n };\n\n componentDidMount() {\n const { correctChoice, node } = this.props;\n const choice = correctChoice || {};\n\n const domNode = findSlateNode(node.key);\n\n if (domNode) {\n //eslint-disable-next-line\n const domNodeRect = domNode.getBoundingClientRect();\n const editor = domNode.closest('[data-slate-editor]');\n const editorRect = editor.getBoundingClientRect();\n const top = domNodeRect.top - editorRect.top;\n const left = domNodeRect.left - editorRect.left;\n\n this.setState({\n markup: choice.label,\n toolbarStyle: {\n position: 'absolute',\n top: `${top + domNodeRect.height + 17}px`,\n left: `${left + 20}px`,\n width: `${domNodeRect.width - 4}px`,\n },\n });\n }\n }\n\n onDone = (markup) => {\n const { node, value, onToolbarDone, onChangeResponse } = this.props;\n const sanitizedMarkup = stripHtmlTags(markup);\n this.setState({ markup: sanitizedMarkup });\n\n const updatedData = { ...node.data.toJSON(), value: sanitizedMarkup };\n const change = value.change().setNodeByKey(node.key, { data: updatedData });\n const nextText = value.document.getNextText(node.key);\n\n change.moveFocusTo(nextText.key, 0).moveAnchorTo(nextText.key, 0);\n onToolbarDone(change, true);\n onChangeResponse(sanitizedMarkup);\n };\n\n onRespAreaChange = (respAreaMarkup) => {\n this.setState({ respAreaMarkup });\n };\n\n onKeyDown = (event) => {\n if (event.key === 'Enter') {\n return false;\n }\n };\n\n onBlur = () => {\n if (this.clickedInside) {\n this.clickedInside = false;\n }\n };\n\n render() {\n const { classes, maxLengthPerChoiceEnabled, pluginProps, spellCheck } = this.props;\n const { markup, toolbarStyle } = this.state;\n const inputProps = maxLengthPerChoiceEnabled ? {} : { maxLength: 25 };\n\n return (\n <div style={toolbarStyle}>\n <EditableHtml\n autoFocus={true}\n className={classes.markup}\n disableUnderline\n onChange={(respAreaMarkup) => {\n if (this.preventDone) {\n return;\n }\n this.onRespAreaChange(respAreaMarkup);\n }}\n onDone={(val) => {\n if (this.preventDone) {\n return;\n }\n this.onDone(val);\n }}\n onBlur={(e) => {\n this.preventDone = e.relatedTarget && e.relatedTarget.closest('.insert-character-dialog');\n this.onBlur(e);\n }}\n onKeyDown={this.onKeyDown}\n markup={markup || ''}\n activePlugins={['languageCharacters']}\n pluginProps={pluginProps}\n languageCharactersProps={[{ language: 'spanish' }]}\n minHeight={'15px'}\n maxHeight={'15px'}\n spellCheck={spellCheck}\n autoWidthToolbar\n toolbarOpts={{\n minWidth: 'auto',\n isHidden: !!pluginProps?.characters?.disabled\n }}\n {...inputProps}\n />\n </div>\n );\n }\n}\n\nconst StyledECRToolbar = withStyles((theme) => ({\n markup: {\n backgroundColor: theme.palette.common.white,\n outline: 'none',\n lineHeight: '15px'\n },\n}))(ECRToolbar);\n\nexport default StyledECRToolbar;\n"],"file":"ecr-toolbar.js"}
@@ -148,7 +148,7 @@ function model(question, session, env) {
148
148
  feedback = env.mode === 'evaluate' ? (0, _reduce["default"])(normalizedQuestion.choices, function (obj, respArea, key) {
149
149
  var chosenValue = value && value[key];
150
150
  var val = !(0, _isEmpty["default"])(chosenValue) && (0, _find["default"])(respArea, function (c) {
151
- return prepareVal(c.label) === prepareVal(chosenValue);
151
+ return c.label === prepareVal(chosenValue);
152
152
  });
153
153
  obj[key] = getFeedback(val);
154
154
  return obj;
@@ -236,7 +236,7 @@ var getScore = function getScore(config, session) {
236
236
  var chosenValue = value && value[key];
237
237
 
238
238
  if ((0, _isEmpty["default"])(chosenValue) || !(0, _find["default"])(respArea, function (c) {
239
- return prepareVal(c.label) === prepareVal(chosenValue);
239
+ return c.label === prepareVal(chosenValue);
240
240
  })) {
241
241
  return total;
242
242
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.js"],"names":["translator","Translator","log","prepareChoice","mode","defaultFeedback","choice","out","label","value","correct","feedbackType","feedback","type","getFeedback","getAdjustedLength","length","normalize","question","defaults","model","session","env","Promise","resolve","choices","Object","keys","forEach","key","map","item","index","normalizedQuestion","assign","incorrect","prepareChoiceFn","obj","area","respArea","chosenValue","val","c","prepareVal","showNote","values","some","note","t","lng","language","maxLengthPerChoice","maxLengthPerChoiceEnabled","undefinedLengths","labelLengthsArr","Math","max","disabled","displayType","role","markup","playerSpellCheckEnabled","prompt","promptEnabled","rationale","responseCorrect","getScore","undefined","teacherInstructions","responseAreaInputConfiguration","extraCSSRules","rationaleEnabled","teacherInstructionsEnabled","html","decodeHTML","getInnerText","trim","config","responseAreas","match","maxScore","correctCount","total","str","toFixed","parseFloat","outcome","partialScoringEnabled","partialScoring","enabled","score","empty","createCorrectResponseSession","i","id","replaceAll","replace","getContent","validate","maxResponseAreas","allChoicesErrors","errors","field","required","entries","reversedChoices","reverse","choicesErrors","identicalAnswer","slice","nbOfResponseAreas"],"mappings":"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","sourcesContent":["import debug from 'debug';\nimport map from 'lodash/map';\nimport reduce from 'lodash/reduce';\nimport find from 'lodash/find';\nimport isEmpty from 'lodash/isEmpty';\nimport { decode } from 'he';\nimport { partialScoring } from '@pie-lib/pie-toolbox/controller-utils';\nimport Translator from '@pie-lib/pie-toolbox/translator';\nimport defaults from './defaults';\n\nconst { translator } = Translator;\n\nconst log = debug('explicit-constructed-response:controller');\n\nexport const prepareChoice = (mode, defaultFeedback) => (choice) => {\n const out = {\n label: choice.label,\n value: choice.value,\n };\n\n if (mode === 'evaluate') {\n out.correct = true;\n\n const feedbackType = (choice.feedback && choice.feedback.type) || 'none';\n\n if (feedbackType === 'default') {\n out.feedback = defaultFeedback['correct'];\n } else if (feedbackType === 'custom') {\n out.feedback = choice.feedback.value;\n }\n }\n\n return out;\n};\n\nconst getFeedback = (value) => {\n if (value) {\n return 'correct';\n }\n\n return 'incorrect';\n};\n\n// also used in configure/src/markupUtils.js\nconst getAdjustedLength = (length) => {\n if (length <= 2) {\n return length + 2;\n }\n\n if (length <= 4) {\n return length + 3;\n }\n\n if (length <= 6) {\n return length + 4;\n }\n\n return length + 5;\n};\n\nexport const normalize = (question) => ({ ...defaults, ...question });\n\n/**\n *\n * @param {*} question\n * @param {*} session\n * @param {*} env\n */\nexport function model(question, session, env) {\n return new Promise(async (resolve) => {\n // this was added to treat an exception, when the model has choices without\n // the \"value\" property like: { label: 'test' }\n if (question.choices) {\n Object.keys(question.choices).forEach((key) => {\n question.choices[key] = (question.choices[key] || []).map((item, index) => {\n if (!item.value) {\n log('Choice does not contain \"value\" property, which is required.', item);\n return { value: `${index}`, ...item };\n }\n\n return item;\n });\n });\n }\n\n const normalizedQuestion = normalize(question);\n const defaultFeedback = Object.assign(\n { correct: 'Correct', incorrect: 'Incorrect' },\n normalizedQuestion.defaultFeedback,\n );\n const prepareChoiceFn = prepareChoice(env.mode, defaultFeedback);\n const choices = reduce(\n normalizedQuestion.choices,\n (obj, area, key) => {\n obj[key] = map(area, prepareChoiceFn);\n\n return obj;\n },\n {},\n );\n\n const { value = {} } = session || {};\n const feedback =\n env.mode === 'evaluate'\n ? reduce(\n normalizedQuestion.choices,\n (obj, respArea, key) => {\n const chosenValue = value && value[key];\n const val =\n !isEmpty(chosenValue) && find(respArea, (c) => prepareVal(c.label) === prepareVal(chosenValue));\n\n obj[key] = getFeedback(val);\n\n return obj;\n },\n {},\n )\n : {};\n\n // check if at least one choice has an alternate\n const showNote = Object.values(choices).some((choice) => choice?.length > 1);\n const note =\n normalizedQuestion.note ||\n translator.t('common:commonCorrectAnswerWithAlternates', { lng: normalizedQuestion.language });\n\n const { maxLengthPerChoice = [], maxLengthPerChoiceEnabled } = normalizedQuestion;\n const undefinedLengths = !maxLengthPerChoice.length;\n\n // calculate maxLengthPerChoice array if it is not defined or defined incorrectly\n Object.values(choices).forEach((choice, index) => {\n const labelLengthsArr = (choice || []).map((choice) => (choice.label || '').length);\n const length = Math.max(...labelLengthsArr);\n\n if (\n undefinedLengths ||\n !maxLengthPerChoice[index] ||\n maxLengthPerChoice[index] < length ||\n maxLengthPerChoice[index] > length + 10\n ) {\n maxLengthPerChoice[index] = getAdjustedLength(length);\n }\n });\n\n const out = {\n choices,\n disabled: env.mode !== 'gather',\n displayType: normalizedQuestion.displayType,\n mode: env.mode,\n role: env.role,\n feedback,\n language: normalizedQuestion.language,\n markup: normalizedQuestion.markup,\n maxLengthPerChoice,\n maxLengthPerChoiceEnabled,\n note,\n playerSpellCheckEnabled: normalizedQuestion.playerSpellCheckEnabled,\n prompt: normalizedQuestion.promptEnabled ? normalizedQuestion.prompt : defaults.prompt,\n rationale: defaults.rationale,\n responseCorrect: env.mode === 'evaluate' ? getScore(normalizedQuestion, session) === 1 : undefined,\n showNote,\n teacherInstructions: defaults.teacherInstructions,\n responseAreaInputConfiguration: normalizedQuestion.responseAreaInputConfiguration,\n extraCSSRules: normalizedQuestion.extraCSSRules,\n };\n\n if (env.role === 'instructor' && (env.mode === 'view' || env.mode === 'evaluate')) {\n out.rationale = normalizedQuestion.rationaleEnabled ? normalizedQuestion.rationale : defaults.rationale;\n out.teacherInstructions = normalizedQuestion.teacherInstructionsEnabled\n ? normalizedQuestion.teacherInstructions\n : defaults.teacherInstructions;\n }\n\n resolve(out);\n });\n}\n\nexport const prepareVal = (html) => {\n return decodeHTML(getInnerText(html).trim());\n};\n\nexport const getScore = (config, session) => {\n const { value } = session || {};\n\n if (!session || isEmpty(session) || !value) {\n return 0;\n }\n\n const responseAreas = config.markup && config.markup.match(/\\{\\{(.+?)\\}\\}/g);\n const maxScore = responseAreas ? responseAreas.length : 0;\n const correctCount = reduce(\n config.choices,\n (total, respArea, key) => {\n const chosenValue = value && value[key];\n\n if (isEmpty(chosenValue) || !find(respArea, (c) => prepareVal(c.label) === prepareVal(chosenValue))) {\n return total;\n }\n\n return total + 1;\n },\n 0,\n );\n\n const str = maxScore ? (correctCount / maxScore).toFixed(2) : 0;\n\n return parseFloat(str);\n};\n\n/**\n * The score is partial by default for checkbox mode, allOrNothing for radio mode.\n * To disable partial scoring for checkbox mode you either set model.partialScoring = false or env.partialScoring =\n * false. the value in `env` will override the value in `model`.\n * @param {Object} model - the main model\n * @param {boolean} model.partialScoring - is partial scoring enabled (if undefined set to to true)\n * @param {*} session\n * @param {Object} env\n * @param {boolean} env.partialScoring - is partial scoring enabled (if undefined default to true) This overrides\n * `model.partialScoring`.\n */\nexport function outcome(model, session, env = {}) {\n return new Promise((resolve) => {\n const partialScoringEnabled = partialScoring.enabled(model, env);\n const score = getScore(model, session);\n\n resolve({ score: partialScoringEnabled ? score : score === 1 ? 1 : 0, empty: isEmpty(session) });\n });\n}\n\nexport const createCorrectResponseSession = (question, env) => {\n return new Promise((resolve) => {\n if (env.mode !== 'evaluate' && env.role === 'instructor') {\n const { choices } = question;\n const value = {};\n\n Object.keys(choices).forEach((key, i) => {\n value[i] = choices[key][0].label;\n });\n\n resolve({ id: '1', value });\n } else {\n resolve(null);\n }\n });\n};\n\n// remove all html tags\n// const getInnerText = (html) => (html || '').replaceAll(/<[^>]*>/g, '');\nconst getInnerText = (html) => {\n if (typeof html !== 'string') {\n return '';\n }\n if (typeof html.replaceAll === 'function') {\n return html.replaceAll(/<[^>]*>/g, '');\n } else {\n // Polyfill for replaceAll using replace and a global regex\n return html.replace(/<[^>]*>/g, '');\n }\n};\n\nconst decodeHTML = (html) => decode(html);\n\n// remove all html tags except img and iframe\nconst getContent = (html) => (html || '').replace(/(<(?!img|iframe)([^>]+)>)/gi, '');\n\nexport const validate = (model = {}, config = {}) => {\n const { choices, markup } = model;\n const { maxResponseAreas } = config;\n const allChoicesErrors = {};\n const errors = {};\n\n ['teacherInstructions', 'prompt', 'rationale'].forEach((field) => {\n if (config[field]?.required && !getContent(model[field])) {\n errors[field] = 'This field is required.';\n }\n });\n\n Object.entries(choices || {}).forEach(([key, values]) => {\n const reversedChoices = [...(values || [])].reverse();\n const choicesErrors = {};\n\n reversedChoices.forEach((choice, index) => {\n const { value, label } = choice;\n\n if (label === '' || label === '<div></div>') {\n choicesErrors[value] = 'Content should not be empty.';\n } else {\n const identicalAnswer = reversedChoices.slice(index + 1).some((c) => c.label === label);\n\n if (identicalAnswer) {\n choicesErrors[value] = 'Content should be unique.';\n }\n }\n });\n\n if (!isEmpty(choicesErrors)) {\n allChoicesErrors[key] = choicesErrors;\n }\n });\n\n const nbOfResponseAreas = (markup.match(/\\{\\{(\\d+)\\}\\}/g) || []).length;\n\n if (nbOfResponseAreas > maxResponseAreas) {\n errors.responseAreas = `No more than ${maxResponseAreas} response areas should be defined.`;\n } else if (nbOfResponseAreas < 1) {\n errors.responseAreas = 'There should be at least 1 response area defined.';\n }\n\n if (!isEmpty(allChoicesErrors)) {\n errors.choices = allChoicesErrors;\n }\n\n return errors;\n};\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../src/index.js"],"names":["translator","Translator","log","prepareChoice","mode","defaultFeedback","choice","out","label","value","correct","feedbackType","feedback","type","getFeedback","getAdjustedLength","length","normalize","question","defaults","model","session","env","Promise","resolve","choices","Object","keys","forEach","key","map","item","index","normalizedQuestion","assign","incorrect","prepareChoiceFn","obj","area","respArea","chosenValue","val","c","prepareVal","showNote","values","some","note","t","lng","language","maxLengthPerChoice","maxLengthPerChoiceEnabled","undefinedLengths","labelLengthsArr","Math","max","disabled","displayType","role","markup","playerSpellCheckEnabled","prompt","promptEnabled","rationale","responseCorrect","getScore","undefined","teacherInstructions","responseAreaInputConfiguration","extraCSSRules","rationaleEnabled","teacherInstructionsEnabled","html","decodeHTML","getInnerText","trim","config","responseAreas","match","maxScore","correctCount","total","str","toFixed","parseFloat","outcome","partialScoringEnabled","partialScoring","enabled","score","empty","createCorrectResponseSession","i","id","replaceAll","replace","getContent","validate","maxResponseAreas","allChoicesErrors","errors","field","required","entries","reversedChoices","reverse","choicesErrors","identicalAnswer","slice","nbOfResponseAreas"],"mappings":"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","sourcesContent":["import debug from 'debug';\nimport map from 'lodash/map';\nimport reduce from 'lodash/reduce';\nimport find from 'lodash/find';\nimport isEmpty from 'lodash/isEmpty';\nimport { decode } from 'he';\nimport { partialScoring } from '@pie-lib/pie-toolbox/controller-utils';\nimport Translator from '@pie-lib/pie-toolbox/translator';\nimport defaults from './defaults';\n\nconst { translator } = Translator;\n\nconst log = debug('explicit-constructed-response:controller');\n\nexport const prepareChoice = (mode, defaultFeedback) => (choice) => {\n const out = {\n label: choice.label,\n value: choice.value,\n };\n\n if (mode === 'evaluate') {\n out.correct = true;\n\n const feedbackType = (choice.feedback && choice.feedback.type) || 'none';\n\n if (feedbackType === 'default') {\n out.feedback = defaultFeedback['correct'];\n } else if (feedbackType === 'custom') {\n out.feedback = choice.feedback.value;\n }\n }\n\n return out;\n};\n\nconst getFeedback = (value) => {\n if (value) {\n return 'correct';\n }\n\n return 'incorrect';\n};\n\n// also used in configure/src/markupUtils.js\nconst getAdjustedLength = (length) => {\n if (length <= 2) {\n return length + 2;\n }\n\n if (length <= 4) {\n return length + 3;\n }\n\n if (length <= 6) {\n return length + 4;\n }\n\n return length + 5;\n};\n\nexport const normalize = (question) => ({ ...defaults, ...question });\n\n/**\n *\n * @param {*} question\n * @param {*} session\n * @param {*} env\n */\nexport function model(question, session, env) {\n return new Promise(async (resolve) => {\n // this was added to treat an exception, when the model has choices without\n // the \"value\" property like: { label: 'test' }\n if (question.choices) {\n Object.keys(question.choices).forEach((key) => {\n question.choices[key] = (question.choices[key] || []).map((item, index) => {\n if (!item.value) {\n log('Choice does not contain \"value\" property, which is required.', item);\n return { value: `${index}`, ...item };\n }\n\n return item;\n });\n });\n }\n\n const normalizedQuestion = normalize(question);\n const defaultFeedback = Object.assign(\n { correct: 'Correct', incorrect: 'Incorrect' },\n normalizedQuestion.defaultFeedback,\n );\n const prepareChoiceFn = prepareChoice(env.mode, defaultFeedback);\n const choices = reduce(\n normalizedQuestion.choices,\n (obj, area, key) => {\n obj[key] = map(area, prepareChoiceFn);\n\n return obj;\n },\n {},\n );\n\n const { value = {} } = session || {};\n const feedback =\n env.mode === 'evaluate'\n ? reduce(\n normalizedQuestion.choices,\n (obj, respArea, key) => {\n const chosenValue = value && value[key];\n const val =\n !isEmpty(chosenValue) && find(respArea, (c) => c.label === prepareVal(chosenValue));\n\n obj[key] = getFeedback(val);\n\n return obj;\n },\n {},\n )\n : {};\n\n // check if at least one choice has an alternate\n const showNote = Object.values(choices).some((choice) => choice?.length > 1);\n const note =\n normalizedQuestion.note ||\n translator.t('common:commonCorrectAnswerWithAlternates', { lng: normalizedQuestion.language });\n\n const { maxLengthPerChoice = [], maxLengthPerChoiceEnabled } = normalizedQuestion;\n const undefinedLengths = !maxLengthPerChoice.length;\n\n // calculate maxLengthPerChoice array if it is not defined or defined incorrectly\n Object.values(choices).forEach((choice, index) => {\n const labelLengthsArr = (choice || []).map((choice) => (choice.label || '').length);\n const length = Math.max(...labelLengthsArr);\n\n if (\n undefinedLengths ||\n !maxLengthPerChoice[index] ||\n maxLengthPerChoice[index] < length ||\n maxLengthPerChoice[index] > length + 10\n ) {\n maxLengthPerChoice[index] = getAdjustedLength(length);\n }\n });\n\n const out = {\n choices,\n disabled: env.mode !== 'gather',\n displayType: normalizedQuestion.displayType,\n mode: env.mode,\n role: env.role,\n feedback,\n language: normalizedQuestion.language,\n markup: normalizedQuestion.markup,\n maxLengthPerChoice,\n maxLengthPerChoiceEnabled,\n note,\n playerSpellCheckEnabled: normalizedQuestion.playerSpellCheckEnabled,\n prompt: normalizedQuestion.promptEnabled ? normalizedQuestion.prompt : defaults.prompt,\n rationale: defaults.rationale,\n responseCorrect: env.mode === 'evaluate' ? getScore(normalizedQuestion, session) === 1 : undefined,\n showNote,\n teacherInstructions: defaults.teacherInstructions,\n responseAreaInputConfiguration: normalizedQuestion.responseAreaInputConfiguration,\n extraCSSRules: normalizedQuestion.extraCSSRules,\n };\n\n if (env.role === 'instructor' && (env.mode === 'view' || env.mode === 'evaluate')) {\n out.rationale = normalizedQuestion.rationaleEnabled ? normalizedQuestion.rationale : defaults.rationale;\n out.teacherInstructions = normalizedQuestion.teacherInstructionsEnabled\n ? normalizedQuestion.teacherInstructions\n : defaults.teacherInstructions;\n }\n\n resolve(out);\n });\n}\n\nexport const prepareVal = (html) => {\n return decodeHTML(getInnerText(html).trim());\n};\n\nexport const getScore = (config, session) => {\n const { value } = session || {};\n\n if (!session || isEmpty(session) || !value) {\n return 0;\n }\n\n const responseAreas = config.markup && config.markup.match(/\\{\\{(.+?)\\}\\}/g);\n const maxScore = responseAreas ? responseAreas.length : 0;\n const correctCount = reduce(\n config.choices,\n (total, respArea, key) => {\n const chosenValue = value && value[key];\n\n if (isEmpty(chosenValue) || !find(respArea, (c) => c.label === prepareVal(chosenValue))) {\n return total;\n }\n\n return total + 1;\n },\n 0,\n );\n\n const str = maxScore ? (correctCount / maxScore).toFixed(2) : 0;\n\n return parseFloat(str);\n};\n\n/**\n * The score is partial by default for checkbox mode, allOrNothing for radio mode.\n * To disable partial scoring for checkbox mode you either set model.partialScoring = false or env.partialScoring =\n * false. the value in `env` will override the value in `model`.\n * @param {Object} model - the main model\n * @param {boolean} model.partialScoring - is partial scoring enabled (if undefined set to to true)\n * @param {*} session\n * @param {Object} env\n * @param {boolean} env.partialScoring - is partial scoring enabled (if undefined default to true) This overrides\n * `model.partialScoring`.\n */\nexport function outcome(model, session, env = {}) {\n return new Promise((resolve) => {\n const partialScoringEnabled = partialScoring.enabled(model, env);\n const score = getScore(model, session);\n\n resolve({ score: partialScoringEnabled ? score : score === 1 ? 1 : 0, empty: isEmpty(session) });\n });\n}\n\nexport const createCorrectResponseSession = (question, env) => {\n return new Promise((resolve) => {\n if (env.mode !== 'evaluate' && env.role === 'instructor') {\n const { choices } = question;\n const value = {};\n\n Object.keys(choices).forEach((key, i) => {\n value[i] = choices[key][0].label;\n });\n\n resolve({ id: '1', value });\n } else {\n resolve(null);\n }\n });\n};\n\n// remove all html tags\n// const getInnerText = (html) => (html || '').replaceAll(/<[^>]*>/g, '');\nconst getInnerText = (html) => {\n if (typeof html !== 'string') {\n return '';\n }\n if (typeof html.replaceAll === 'function') {\n return html.replaceAll(/<[^>]*>/g, '');\n } else {\n // Polyfill for replaceAll using replace and a global regex\n return html.replace(/<[^>]*>/g, '');\n }\n};\n\nconst decodeHTML = (html) => decode(html);\n\n// remove all html tags except img and iframe\nconst getContent = (html) => (html || '').replace(/(<(?!img|iframe)([^>]+)>)/gi, '');\n\nexport const validate = (model = {}, config = {}) => {\n const { choices, markup } = model;\n const { maxResponseAreas } = config;\n const allChoicesErrors = {};\n const errors = {};\n\n ['teacherInstructions', 'prompt', 'rationale'].forEach((field) => {\n if (config[field]?.required && !getContent(model[field])) {\n errors[field] = 'This field is required.';\n }\n });\n\n Object.entries(choices || {}).forEach(([key, values]) => {\n const reversedChoices = [...(values || [])].reverse();\n const choicesErrors = {};\n\n reversedChoices.forEach((choice, index) => {\n const { value, label } = choice;\n\n if (label === '' || label === '<div></div>') {\n choicesErrors[value] = 'Content should not be empty.';\n } else {\n const identicalAnswer = reversedChoices.slice(index + 1).some((c) => c.label === label);\n\n if (identicalAnswer) {\n choicesErrors[value] = 'Content should be unique.';\n }\n }\n });\n\n if (!isEmpty(choicesErrors)) {\n allChoicesErrors[key] = choicesErrors;\n }\n });\n\n const nbOfResponseAreas = (markup.match(/\\{\\{(\\d+)\\}\\}/g) || []).length;\n\n if (nbOfResponseAreas > maxResponseAreas) {\n errors.responseAreas = `No more than ${maxResponseAreas} response areas should be defined.`;\n } else if (nbOfResponseAreas < 1) {\n errors.responseAreas = 'There should be at least 1 response area defined.';\n }\n\n if (!isEmpty(allChoicesErrors)) {\n errors.choices = allChoicesErrors;\n }\n\n return errors;\n};\n"],"file":"index.js"}
package/lib/main.js CHANGED
@@ -72,8 +72,8 @@ var Main = /*#__PURE__*/function (_React$Component) {
72
72
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "getChangeSession", function (maxLengthPerChoice) {
73
73
  return maxLengthPerChoice && maxLengthPerChoice.every(function (val, i, arr) {
74
74
  return val === arr[0] && val === 1;
75
- }) ? _this.props.onChange : (0, _debounce["default"])(_this.props.onChange, 1500, {
76
- maxWait: 1500
75
+ }) ? _this.props.onChange : (0, _debounce["default"])(_this.props.onChange, 200, {
76
+ maxWait: 200
77
77
  });
78
78
  });
79
79
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "toggleShowCorrect", function () {
package/lib/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/main.js"],"names":["translator","Translator","Main","showCorrectAnswer","props","alwaysShowCorrect","maxLengthPerChoice","every","val","i","arr","onChange","maxWait","setState","state","getChangeSession","value","changeSession","nextProps","language","note","feedback","t","lng","animationsDisabled","classes","mode","displayType","role","maxLengthPerChoiceEnabled","playerSpellCheckEnabled","prompt","rationale","showNote","teacherInstructions","responseAreaInputConfiguration","model","extraCSSRules","displayNote","mainClasses","mainContainer","noBorderColor","teacherInstructionsDiv","rationaleDiv","display","srOnly","collapsible","hidden","visible","toggleShowCorrect","__html","React","Component","PropTypes","bool","object","isRequired","disabled","string","markup","array","func","styles","theme","color","text","backgroundColor","background","inlineDisplay","blockDisplay","marginBottom","spacing","unit","borderColor","position","left","top","width","height","overflow"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport debounce from 'lodash/debounce';\nimport isEmpty from 'lodash/isEmpty';\nimport isEqual from 'lodash/isEqual';\nimport { CorrectAnswerToggle } from '@pie-lib/pie-toolbox/correct-answer-toggle';\nimport { ConstructedResponse } from '@pie-lib/pie-toolbox/mask-markup';\nimport { color, Collapsible, hasText, PreviewPrompt, UiLayout } from '@pie-lib/pie-toolbox/render-ui';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport Translator from '@pie-lib/pie-toolbox/translator';\n\nconst { translator } = Translator;\n\nexport class Main extends React.Component {\n static propTypes = {\n alwaysShowCorrect: PropTypes.bool,\n animationsDisabled: PropTypes.bool,\n classes: PropTypes.object.isRequired,\n disabled: PropTypes.bool,\n displayType: PropTypes.string,\n feedback: PropTypes.object,\n language: PropTypes.string,\n markup: PropTypes.string,\n maxLengthPerChoice: PropTypes.array,\n maxLengthPerChoiceEnabled: PropTypes.bool,\n mode: PropTypes.string,\n note: PropTypes.string,\n onChange: PropTypes.func,\n playerSpellCheckEnabled: PropTypes.bool,\n prompt: PropTypes.string,\n rationale: PropTypes.string,\n role: PropTypes.string,\n showNote: PropTypes.bool,\n teacherInstructions: PropTypes.string,\n value: PropTypes.object,\n responseAreaInputConfiguration: PropTypes.object,\n model: PropTypes.object.isRequired,\n };\n\n static defaultProps = {\n value: {},\n };\n\n state = {\n showCorrectAnswer: this.props.alwaysShowCorrect || false,\n };\n\n // if for all responses max length is 1, call onChange for each keystroke\n getChangeSession = (maxLengthPerChoice) =>\n maxLengthPerChoice && maxLengthPerChoice.every((val, i, arr) => val === arr[0] && val === 1)\n ? this.props.onChange\n : debounce(this.props.onChange, 1500, { maxWait: 1500 });\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n const { maxLengthPerChoice, language } = this.props;\n let { note } = this.props;\n\n if (isEmpty(nextProps.feedback)) {\n this.setState({ showCorrectAnswer: false });\n }\n\n if (nextProps.alwaysShowCorrect) {\n this.setState({ showCorrectAnswer: true });\n }\n\n if (maxLengthPerChoice && !isEqual(maxLengthPerChoice, nextProps.maxLengthPerChoice)) {\n this.changeSession = this.getChangeSession(nextProps.maxLengthPerChoice);\n }\n\n // check if the note is the default one for prev language and change to the default one for new language\n // this check is necessary in order to diferanciate between default and authour defined note\n // and only change between languages for default ones\n if (\n note &&\n language &&\n language !== nextProps.language &&\n note === translator.t('common:commonCorrectAnswerWithAlternates', { lng: language })\n ) {\n note = translator.t('common:commonCorrectAnswerWithAlternates', { lng: nextProps.language });\n }\n }\n\n toggleShowCorrect = () => {\n this.setState({ showCorrectAnswer: !this.state.showCorrectAnswer });\n };\n\n changeSession = this.getChangeSession(this.props.maxLengthPerChoice);\n\n onChange = (value) => {\n this.changeSession(value);\n };\n\n render() {\n const { showCorrectAnswer } = this.state;\n const {\n alwaysShowCorrect,\n animationsDisabled,\n classes,\n mode,\n displayType,\n role,\n language,\n maxLengthPerChoice,\n maxLengthPerChoiceEnabled,\n note,\n playerSpellCheckEnabled,\n prompt,\n rationale,\n showNote,\n teacherInstructions,\n responseAreaInputConfiguration,\n model,\n value,\n } = this.props;\n\n const { extraCSSRules } = model || {};\n const displayNote = (showCorrectAnswer || (mode === 'view' && role === 'instructor')) && showNote && note;\n const mainClasses = classNames([\n classes.mainContainer,\n {\n [classes.noBorderColor]: alwaysShowCorrect,\n },\n ]);\n\n const teacherInstructionsDiv = (\n <PreviewPrompt defaultClassName=\"teacher-instructions\" prompt={teacherInstructions} />\n );\n\n const rationaleDiv = <PreviewPrompt prompt={rationale} />;\n\n return (\n <UiLayout extraCSSRules={extraCSSRules} className={mainClasses} style={{ display: `${displayType}` }}>\n {mode === 'gather' && <h2 className={classes.srOnly}>Fill in the Blank Question</h2>}\n\n {teacherInstructions && hasText(teacherInstructions) && (\n <div className={classes.collapsible}>\n {!animationsDisabled ? (\n <Collapsible labels={{ hidden: 'Show Teacher Instructions', visible: 'Hide Teacher Instructions' }}>\n {teacherInstructionsDiv}\n </Collapsible>\n ) : (\n teacherInstructionsDiv\n )}\n </div>\n )}\n\n {prompt && <PreviewPrompt prompt={prompt} />}\n\n {!alwaysShowCorrect && (\n <CorrectAnswerToggle\n show={mode === 'evaluate'}\n toggled={showCorrectAnswer}\n onToggle={this.toggleShowCorrect}\n language={language}\n />\n )}\n\n <ConstructedResponse\n {...this.props}\n onChange={this.onChange}\n showCorrectAnswer={showCorrectAnswer}\n value={value}\n maxLength={maxLengthPerChoice}\n adjustedLimit={maxLengthPerChoiceEnabled}\n spellCheck={playerSpellCheckEnabled}\n pluginProps={responseAreaInputConfiguration}\n />\n\n {displayNote && <div className={classNames(classes.note, 'note')} dangerouslySetInnerHTML={{ __html: note }} />}\n\n {rationale && hasText(rationale) && (\n <div className={classes.collapsible}>\n {!animationsDisabled ? (\n <Collapsible labels={{ hidden: 'Show Rationale', visible: 'Hide Rationale' }}>{rationaleDiv}</Collapsible>\n ) : (\n rationaleDiv\n )}\n </div>\n )}\n </UiLayout>\n );\n }\n}\n\nconst styles = (theme) => ({\n mainContainer: {\n color: color.text(),\n backgroundColor: color.background(),\n },\n inlineDisplay: {\n display: 'inline-block',\n },\n blockDisplay: {\n display: 'block',\n },\n note: {\n marginBottom: theme.spacing.unit * 2,\n },\n collapsible: {\n marginBottom: theme.spacing.unit * 2,\n },\n noBorderColor: {\n '& *': {\n borderColor: `${color.text()} !important`,\n },\n },\n srOnly: {\n position: 'absolute',\n left: '-10000px',\n top: 'auto',\n width: '1px',\n height: '1px',\n overflow: 'hidden',\n },\n});\n\nexport default withStyles(styles)(Main);\n"],"file":"main.js"}
1
+ {"version":3,"sources":["../src/main.js"],"names":["translator","Translator","Main","showCorrectAnswer","props","alwaysShowCorrect","maxLengthPerChoice","every","val","i","arr","onChange","maxWait","setState","state","getChangeSession","value","changeSession","nextProps","language","note","feedback","t","lng","animationsDisabled","classes","mode","displayType","role","maxLengthPerChoiceEnabled","playerSpellCheckEnabled","prompt","rationale","showNote","teacherInstructions","responseAreaInputConfiguration","model","extraCSSRules","displayNote","mainClasses","mainContainer","noBorderColor","teacherInstructionsDiv","rationaleDiv","display","srOnly","collapsible","hidden","visible","toggleShowCorrect","__html","React","Component","PropTypes","bool","object","isRequired","disabled","string","markup","array","func","styles","theme","color","text","backgroundColor","background","inlineDisplay","blockDisplay","marginBottom","spacing","unit","borderColor","position","left","top","width","height","overflow"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport debounce from 'lodash/debounce';\nimport isEmpty from 'lodash/isEmpty';\nimport isEqual from 'lodash/isEqual';\nimport { CorrectAnswerToggle } from '@pie-lib/pie-toolbox/correct-answer-toggle';\nimport { ConstructedResponse } from '@pie-lib/pie-toolbox/mask-markup';\nimport { color, Collapsible, hasText, PreviewPrompt, UiLayout } from '@pie-lib/pie-toolbox/render-ui';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport Translator from '@pie-lib/pie-toolbox/translator';\n\nconst { translator } = Translator;\n\nexport class Main extends React.Component {\n static propTypes = {\n alwaysShowCorrect: PropTypes.bool,\n animationsDisabled: PropTypes.bool,\n classes: PropTypes.object.isRequired,\n disabled: PropTypes.bool,\n displayType: PropTypes.string,\n feedback: PropTypes.object,\n language: PropTypes.string,\n markup: PropTypes.string,\n maxLengthPerChoice: PropTypes.array,\n maxLengthPerChoiceEnabled: PropTypes.bool,\n mode: PropTypes.string,\n note: PropTypes.string,\n onChange: PropTypes.func,\n playerSpellCheckEnabled: PropTypes.bool,\n prompt: PropTypes.string,\n rationale: PropTypes.string,\n role: PropTypes.string,\n showNote: PropTypes.bool,\n teacherInstructions: PropTypes.string,\n value: PropTypes.object,\n responseAreaInputConfiguration: PropTypes.object,\n model: PropTypes.object.isRequired,\n };\n\n static defaultProps = {\n value: {},\n };\n\n state = {\n showCorrectAnswer: this.props.alwaysShowCorrect || false,\n };\n\n // if for all responses max length is 1, call onChange for each keystroke\n getChangeSession = (maxLengthPerChoice) =>\n maxLengthPerChoice && maxLengthPerChoice.every((val, i, arr) => val === arr[0] && val === 1)\n ? this.props.onChange\n : debounce(this.props.onChange, 200, { maxWait: 200 });\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n const { maxLengthPerChoice, language } = this.props;\n let { note } = this.props;\n\n if (isEmpty(nextProps.feedback)) {\n this.setState({ showCorrectAnswer: false });\n }\n\n if (nextProps.alwaysShowCorrect) {\n this.setState({ showCorrectAnswer: true });\n }\n\n if (maxLengthPerChoice && !isEqual(maxLengthPerChoice, nextProps.maxLengthPerChoice)) {\n this.changeSession = this.getChangeSession(nextProps.maxLengthPerChoice);\n }\n\n // check if the note is the default one for prev language and change to the default one for new language\n // this check is necessary in order to diferanciate between default and authour defined note\n // and only change between languages for default ones\n if (\n note &&\n language &&\n language !== nextProps.language &&\n note === translator.t('common:commonCorrectAnswerWithAlternates', { lng: language })\n ) {\n note = translator.t('common:commonCorrectAnswerWithAlternates', { lng: nextProps.language });\n }\n }\n\n toggleShowCorrect = () => {\n this.setState({ showCorrectAnswer: !this.state.showCorrectAnswer });\n };\n\n changeSession = this.getChangeSession(this.props.maxLengthPerChoice);\n\n onChange = (value) => {\n this.changeSession(value);\n };\n\n render() {\n const { showCorrectAnswer } = this.state;\n const {\n alwaysShowCorrect,\n animationsDisabled,\n classes,\n mode,\n displayType,\n role,\n language,\n maxLengthPerChoice,\n maxLengthPerChoiceEnabled,\n note,\n playerSpellCheckEnabled,\n prompt,\n rationale,\n showNote,\n teacherInstructions,\n responseAreaInputConfiguration,\n model,\n value,\n } = this.props;\n\n const { extraCSSRules } = model || {};\n const displayNote = (showCorrectAnswer || (mode === 'view' && role === 'instructor')) && showNote && note;\n const mainClasses = classNames([\n classes.mainContainer,\n {\n [classes.noBorderColor]: alwaysShowCorrect,\n },\n ]);\n\n const teacherInstructionsDiv = (\n <PreviewPrompt defaultClassName=\"teacher-instructions\" prompt={teacherInstructions} />\n );\n\n const rationaleDiv = <PreviewPrompt prompt={rationale} />;\n\n return (\n <UiLayout extraCSSRules={extraCSSRules} className={mainClasses} style={{ display: `${displayType}` }}>\n {mode === 'gather' && <h2 className={classes.srOnly}>Fill in the Blank Question</h2>}\n\n {teacherInstructions && hasText(teacherInstructions) && (\n <div className={classes.collapsible}>\n {!animationsDisabled ? (\n <Collapsible labels={{ hidden: 'Show Teacher Instructions', visible: 'Hide Teacher Instructions' }}>\n {teacherInstructionsDiv}\n </Collapsible>\n ) : (\n teacherInstructionsDiv\n )}\n </div>\n )}\n\n {prompt && <PreviewPrompt prompt={prompt} />}\n\n {!alwaysShowCorrect && (\n <CorrectAnswerToggle\n show={mode === 'evaluate'}\n toggled={showCorrectAnswer}\n onToggle={this.toggleShowCorrect}\n language={language}\n />\n )}\n\n <ConstructedResponse\n {...this.props}\n onChange={this.onChange}\n showCorrectAnswer={showCorrectAnswer}\n value={value}\n maxLength={maxLengthPerChoice}\n adjustedLimit={maxLengthPerChoiceEnabled}\n spellCheck={playerSpellCheckEnabled}\n pluginProps={responseAreaInputConfiguration}\n />\n\n {displayNote && <div className={classNames(classes.note, 'note')} dangerouslySetInnerHTML={{ __html: note }} />}\n\n {rationale && hasText(rationale) && (\n <div className={classes.collapsible}>\n {!animationsDisabled ? (\n <Collapsible labels={{ hidden: 'Show Rationale', visible: 'Hide Rationale' }}>{rationaleDiv}</Collapsible>\n ) : (\n rationaleDiv\n )}\n </div>\n )}\n </UiLayout>\n );\n }\n}\n\nconst styles = (theme) => ({\n mainContainer: {\n color: color.text(),\n backgroundColor: color.background(),\n },\n inlineDisplay: {\n display: 'inline-block',\n },\n blockDisplay: {\n display: 'block',\n },\n note: {\n marginBottom: theme.spacing.unit * 2,\n },\n collapsible: {\n marginBottom: theme.spacing.unit * 2,\n },\n noBorderColor: {\n '& *': {\n borderColor: `${color.text()} !important`,\n },\n },\n srOnly: {\n position: 'absolute',\n left: '-10000px',\n top: 'auto',\n width: '1px',\n height: '1px',\n overflow: 'hidden',\n },\n});\n\nexport default withStyles(styles)(Main);\n"],"file":"main.js"}
@@ -1,4 +1,4 @@
1
- import {_dll_react, _dll_prop_types, _dll_classnames, _dll_react_dom, _dll_lodash, _dll_debug} from "../../../@pie-lib/pie-toolbox-math-rendering-module@3.4.2/module/index.js";
1
+ import {_dll_react, _dll_prop_types, _dll_classnames, _dll_react_dom, _dll_lodash, _dll_debug} from "../../../@pie-lib/pie-toolbox-math-rendering-module@3.4.3/module/index.js";
2
2
  import {_dll_pie_lib__pie_toolbox_editable_html, _dll_pie_lib__pie_toolbox_config_ui} from "../../../@pie-lib/pie-toolbox-module@5.11.2/module/index.js";
3
3
  var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
4
4
  function getDefaultExportFromCjs(x) {
@@ -9000,7 +9000,7 @@ const require$$12$9 = _dll_pie_lib__pie_toolbox_editable_html;
9000
9000
  });
9001
9001
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onDone", function (markup) {
9002
9002
  var _this$props = _this.props, node = _this$props.node, value = _this$props.value, onToolbarDone = _this$props.onToolbarDone, onChangeResponse = _this$props.onChangeResponse;
9003
- var sanitizedMarkup = (0, _markupUtils.decodeHTML)((0, _markupUtils.stripHtmlTags)(markup));
9003
+ var sanitizedMarkup = (0, _markupUtils.stripHtmlTags)(markup);
9004
9004
  _this.setState({
9005
9005
  markup: sanitizedMarkup
9006
9006
  });
@@ -16845,6 +16845,9 @@ var defaults = {};
16845
16845
  },
16846
16846
  textAlign: {
16847
16847
  disabled: true
16848
+ },
16849
+ showParagraphs: {
16850
+ disabled: false
16848
16851
  }
16849
16852
  },
16850
16853
  prompt: {
@@ -25101,7 +25101,7 @@ function model(question, session, env) {
25101
25101
  (obj, respArea, key) => {
25102
25102
  const chosenValue = value && value[key];
25103
25103
  const val =
25104
- !isEmpty_1(chosenValue) && find_1(respArea, (c) => prepareVal(c.label) === prepareVal(chosenValue));
25104
+ !isEmpty_1(chosenValue) && find_1(respArea, (c) => c.label === prepareVal(chosenValue));
25105
25105
 
25106
25106
  obj[key] = getFeedback(val);
25107
25107
 
@@ -25186,7 +25186,7 @@ const getScore = (config, session) => {
25186
25186
  (total, respArea, key) => {
25187
25187
  const chosenValue = value && value[key];
25188
25188
 
25189
- if (isEmpty_1(chosenValue) || !find_1(respArea, (c) => prepareVal(c.label) === prepareVal(chosenValue))) {
25189
+ if (isEmpty_1(chosenValue) || !find_1(respArea, (c) => c.label === prepareVal(chosenValue))) {
25190
25190
  return total;
25191
25191
  }
25192
25192
 
package/module/element.js CHANGED
@@ -1,4 +1,4 @@
1
- import {_dll_react, _dll_prop_types, _dll_debug, _dll_lodash, _dll_react_dom_server, _dll_classnames, _dll_react_dom, _dll_pie_framework__mathquill, _dll_pie_lib__pie_toolbox_math_rendering} from "../../../@pie-lib/pie-toolbox-math-rendering-module@3.4.2/module/index.js";
1
+ import {_dll_react, _dll_prop_types, _dll_debug, _dll_lodash, _dll_react_dom_server, _dll_classnames, _dll_react_dom, _dll_pie_framework__mathquill, _dll_pie_lib__pie_toolbox_math_rendering} from "../../../@pie-lib/pie-toolbox-math-rendering-module@3.4.3/module/index.js";
2
2
  import {_dll_pie_lib__pie_toolbox_correct_answer_toggle, _dll_pie_lib__pie_toolbox_render_ui} from "../../../@pie-lib/pie-toolbox-module@5.11.2/module/index.js";
3
3
  function _mergeNamespaces(n, m) {
4
4
  m.forEach(function (e) {
@@ -184614,8 +184614,8 @@ class Main extends React$1.Component {
184614
184614
  };
184615
184615
  }
184616
184616
  __init2() {
184617
- this.getChangeSession = maxLengthPerChoice => maxLengthPerChoice && maxLengthPerChoice.every((val, i, arr) => val === arr[0] && val === 1) ? this.props.onChange : debounce(this.props.onChange, 1500, {
184618
- maxWait: 1500
184617
+ this.getChangeSession = maxLengthPerChoice => maxLengthPerChoice && maxLengthPerChoice.every((val, i, arr) => val === arr[0] && val === 1) ? this.props.onChange : debounce(this.props.onChange, 200, {
184618
+ maxWait: 200
184619
184619
  });
184620
184620
  }
184621
184621
  UNSAFE_componentWillReceiveProps(nextProps) {
@@ -4,7 +4,7 @@
4
4
  "modules": [
5
5
  {
6
6
  "name": "@pie-lib/pie-toolbox-math-rendering-module",
7
- "version": "3.4.2"
7
+ "version": "3.4.3"
8
8
  },
9
9
  {
10
10
  "name": "@pie-lib/pie-toolbox-module",
package/module/print.js CHANGED
@@ -1,4 +1,4 @@
1
- import {_dll_react, _dll_prop_types, _dll_debug, _dll_lodash, _dll_react_dom_server, _dll_classnames, _dll_react_dom, _dll_pie_framework__mathquill, _dll_pie_lib__pie_toolbox_math_rendering} from "../../../@pie-lib/pie-toolbox-math-rendering-module@3.4.2/module/index.js";
1
+ import {_dll_react, _dll_prop_types, _dll_debug, _dll_lodash, _dll_react_dom_server, _dll_classnames, _dll_react_dom, _dll_pie_framework__mathquill, _dll_pie_lib__pie_toolbox_math_rendering} from "../../../@pie-lib/pie-toolbox-math-rendering-module@3.4.3/module/index.js";
2
2
  import {_dll_pie_lib__pie_toolbox_correct_answer_toggle, _dll_pie_lib__pie_toolbox_render_ui} from "../../../@pie-lib/pie-toolbox-module@5.11.2/module/index.js";
3
3
  function _mergeNamespaces(n, m) {
4
4
  m.forEach(function (e) {
@@ -184577,8 +184577,8 @@ class Main extends React$1.Component {
184577
184577
  };
184578
184578
  }
184579
184579
  __init2() {
184580
- this.getChangeSession = maxLengthPerChoice => maxLengthPerChoice && maxLengthPerChoice.every((val, i, arr) => val === arr[0] && val === 1) ? this.props.onChange : debounce$1(this.props.onChange, 1500, {
184581
- maxWait: 1500
184580
+ this.getChangeSession = maxLengthPerChoice => maxLengthPerChoice && maxLengthPerChoice.every((val, i, arr) => val === arr[0] && val === 1) ? this.props.onChange : debounce$1(this.props.onChange, 200, {
184581
+ maxWait: 200
184582
184582
  });
184583
184583
  }
184584
184584
  UNSAFE_componentWillReceiveProps(nextProps) {
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "access": "public"
5
5
  },
6
6
  "repository": "pie-framework/pie-elements",
7
- "version": "7.3.11-next.0+c28a57de8",
7
+ "version": "7.3.11-next.12+bb832cb43",
8
8
  "description": "",
9
9
  "scripts": {
10
10
  "postpublish": "../../scripts/postpublish"
@@ -22,7 +22,7 @@
22
22
  },
23
23
  "author": "",
24
24
  "license": "ISC",
25
- "gitHead": "c28a57de80b973304c0701d5586f25deea6d2766",
25
+ "gitHead": "bb832cb4375de33560c030cbddea9988305384f2",
26
26
  "main": "lib/index.js",
27
27
  "module": "src/index.js",
28
28
  "exports": {