@pie-element/math-templated 3.8.9-next.72 → 3.8.9-next.74
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/configure/package.json +4 -4
- package/controller/package.json +2 -2
- package/module/configure.js +1 -1
- package/module/element.js +1 -1
- package/module/manifest.json +8 -4
- package/module/print.js +1 -1
- package/package.json +7 -7
package/configure/package.json
CHANGED
|
@@ -8,10 +8,10 @@
|
|
|
8
8
|
"dependencies": {
|
|
9
9
|
"@material-ui/core": "^3.9.2",
|
|
10
10
|
"@pie-framework/pie-configure-events": "^1.3.0",
|
|
11
|
-
"@pie-lib/config-ui": "^11.
|
|
12
|
-
"@pie-lib/editable-html": "^11.
|
|
13
|
-
"@pie-lib/math-toolbar": "^1.
|
|
14
|
-
"@pie-lib/render-ui": "^4.
|
|
11
|
+
"@pie-lib/config-ui": "^11.21.0",
|
|
12
|
+
"@pie-lib/editable-html": "^11.13.0",
|
|
13
|
+
"@pie-lib/math-toolbar": "^1.23.0",
|
|
14
|
+
"@pie-lib/render-ui": "^4.27.0",
|
|
15
15
|
"debug": "^3.1.0",
|
|
16
16
|
"lodash": "^4.17.15",
|
|
17
17
|
"prop-types": "^15.6.2",
|
package/controller/package.json
CHANGED
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
"module": "src/index.js",
|
|
8
8
|
"dependencies": {
|
|
9
9
|
"@pie-framework/math-validation": "^1.4.2",
|
|
10
|
-
"@pie-lib/controller-utils": "^0.
|
|
11
|
-
"@pie-lib/translator": "^2.
|
|
10
|
+
"@pie-lib/controller-utils": "^0.14.0",
|
|
11
|
+
"@pie-lib/translator": "^2.15.0",
|
|
12
12
|
"debug": "^3.1.0",
|
|
13
13
|
"lodash": "^4.17.15"
|
|
14
14
|
},
|
package/module/configure.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_dll_react as e,_dll_prop_types as t,_dll_material_ui__core as n,_dll_material_ui__core_styles as a,_dll_material_ui__icons as o,_dll_pie_lib__render_ui as s,_dll_lodash as i,_dll_debug as l,_dll_react_dom as r}from"../../../@pie-lib/shared-module@^1.10.0/module/index.js";import{_dll_pie_lib__config_ui as p}from"../../../@pie-lib/config-module@^1.3.5/module/index.js";import{_dll_pie_lib__editable_html as d}from"../../../@pie-lib/editable-html-module@^1.5.10/module/index.js";import{_dll_pie_lib__math_toolbar as c}from"../../../@pie-lib/math-edit-module@^1.10.0/module/index.js";var h={};Object.defineProperty(h,"__esModule",{value:!0});class u extends CustomEvent{constructor(e,t=!1){super(u.TYPE,{bubbles:!0,detail:{update:e,reset:t}}),this.update=e,this.reset=t}}u.TYPE="model.updated";var g=h.ModelUpdatedEvent=u;class m extends CustomEvent{constructor(e,t){super(m.TYPE,{bubbles:!0,detail:{src:e,done:t}}),this.src=e,this.done=t}}m.TYPE="delete.image";var b=h.DeleteImageEvent=m;class _ extends CustomEvent{constructor(e){super(_.TYPE,{bubbles:!0,detail:e}),this.handler=e}}_.TYPE="insert.image";var C=h.InsertImageEvent=_;class y extends CustomEvent{constructor(e,t){super(y.TYPE,{bubbles:!0,detail:{src:e,done:t}}),this.src=e,this.done=t}}y.TYPE="delete.sound";var E=h.DeleteSoundEvent=y;class f extends CustomEvent{constructor(e){super(f.TYPE,{bubbles:!0,detail:e}),this.handler=e}}f.TYPE="insert.sound";var S=h.InsertSoundEvent=f;const v=e,w=t,{Card:x}=n,{CardContent:A}=n,{Button:T}=n,{FormControlLabel:I}=n,{Typography:k}=n,{InputLabel:R}=n,{Checkbox:M}=n,{Select:N}=n,{MenuItem:O}=n,{IconButton:P}=n,{withStyles:K}=a,{Delete:D}=o,{color:q}=s,{InputContainer:j}=p,{MathToolbar:B}=c;class L extends v.Component{static __initStatic(){this.propTypes={classes:w.object.isRequired,defaultResponse:w.bool,error:w.object,mode:w.oneOfType([w.string,w.number]),onResponseChange:w.func.isRequired,onResponseDone:w.func.isRequired,response:w.object.isRequired,cIgnoreOrder:w.object.isRequired,cAllowTrailingZeros:w.object.isRequired,responseKey:w.number.isRequired}}static __initStatic2(){this.defaultProps={defaultResponse:!1,mode:"8"}}constructor(e){super(e),L.prototype.__init.call(this),L.prototype.__init2.call(this),L.prototype.__init3.call(this),L.prototype.__init4.call(this),L.prototype.__init5.call(this),L.prototype.__init6.call(this),L.prototype.__init7.call(this),L.prototype.__init8.call(this),L.prototype.__init9.call(this),L.prototype.__init10.call(this),L.prototype.__init11.call(this);const{response:{alternates:t}={}}=e||{},n=Object.keys(t||{}).length;this.state={alternateIdCounter:n+1,showKeypad:{openCount:0,main:!1}}}__init(){this.onChange=e=>t=>{const{response:n,onResponseChange:a,responseKey:o}=this.props,s={...n};s[e]=t.target.value,a(s,o)}}__init2(){this.onConfigChanged=e=>t=>{const{response:n,onResponseChange:a,responseKey:o}=this.props,s={...n};s[e]=t.target.checked,a(s,o)}}__init3(){this.onLiteralOptionsChange=e=>()=>{const{response:t,onResponseChange:n,responseKey:a}=this.props,o={...t};o[e]=!t[e],n(o,a)}}__init4(){this.onAnswerChange=e=>{const{response:t,onResponseChange:n,responseKey:a}=this.props,o={...t};o.answer=e,n(o,a)}}__init5(){this.onAlternateAnswerChange=e=>t=>{const{response:n,onResponseChange:a,responseKey:o}=this.props,s={...n};s.alternates[e]=t,a(s,o)}}__init6(){this.onAddAlternate=()=>{const{response:e,onResponseChange:t,responseKey:n}=this.props,{alternateIdCounter:a}=this.state,o={...e};o.alternates||(o.alternates={}),o.alternates[a]="",t(o,n),this.setState({alternateIdCounter:a+1})}}__init7(){this.onRemoveAlternate=e=>()=>{const{response:t,onResponseChange:n,responseKey:a}=this.props,o={...t};delete o.alternates[e],n(o,a),this.setState((t=>({showKeypad:{...t.showKeypad,openCount:t.showKeypad[e]?t.showKeypad.openCount-1:t.showKeypad.openCount}})))}}__init8(){this.onDone=()=>{const{onResponseDone:e}=this.props;this.setState((e=>({showKeypad:{...e.showKeypad,openCount:e.showKeypad.openCount-1,main:!1}}))),e()}}__init9(){this.onFocus=()=>{this.setState((e=>({showKeypad:{...e.showKeypad,openCount:e.showKeypad.main?e.showKeypad.openCount:e.showKeypad.openCount+1,main:!0}})))}}__init10(){this.onAlternateFocus=e=>()=>{this.setState((t=>({showKeypad:{...t.showKeypad,openCount:t.showKeypad[e]?t.showKeypad.openCount:t.showKeypad.openCount+1,[e]:!0}})))}}__init11(){this.onAlternateDone=e=>()=>{this.setState((t=>({showKeypad:{...t.showKeypad,openCount:t.showKeypad.openCount-1,[e]:!1}})))}}render(){const{classes:e,mode:t,responseKey:n,response:a,cAllowTrailingZeros:o,cIgnoreOrder:s,error:i}=this.props,{showKeypad:l}=this.state,{validation:r,answer:p,alternates:d,ignoreOrder:c,allowTrailingZeros:h}=a,u=Object.keys(d||{}).length>0,g={editor:e.responseEditor,mathToolbar:e.mathToolbar},m={minHeight:(l.openCount>0?430:230)+"px"},b=`R ${parseInt(n)+1}`;return v.createElement(x,{className:e.responseContainer,style:m},v.createElement(A,{className:e.cardContent},v.createElement("div",{className:e.titleBar},v.createElement(k,{className:e.title,component:"div"},"Response for ",v.createElement("div",{className:e.responseBox},b)),v.createElement(j,{label:"Validation",className:e.selectContainer},v.createElement(N,{className:e.select,onChange:this.onChange("validation"),value:r||"literal"},v.createElement(O,{value:"literal"},"Literal Validation"),v.createElement(O,{value:"symbolic"},"Symbolic Validation")))),"literal"===r&&v.createElement("div",{className:e.flexContainer},o.enabled&&v.createElement(I,{label:o.label,control:v.createElement(M,{className:e.customColor,checked:h,onChange:this.onLiteralOptionsChange("allowTrailingZeros")})}),s.enabled&&v.createElement(I,{label:s.label,control:v.createElement(M,{className:e.customColor,checked:c,onChange:this.onLiteralOptionsChange("ignoreOrder")})})),v.createElement("div",{className:e.inputContainer},v.createElement(R,null,"Correct Answer"),v.createElement(B,{keypadMode:t,classNames:g,controlledKeypad:!0,showKeypad:l.main,latex:p||"",onChange:this.onAnswerChange,onFocus:this.onFocus,onDone:this.onDone,error:i&&i.answer}),i&&i.answer?v.createElement("div",{className:e.errorText},i.answer):null),u&&Object.keys(d).map(((n,a)=>v.createElement("div",{className:e.inputContainer,key:n},v.createElement(R,null,"Alternate",Object.keys(d).length>1?` ${a+1}`:""),v.createElement("div",{className:e.alternateBar},v.createElement(B,{classNames:g,controlledKeypad:!0,keypadMode:t,showKeypad:l[n]||!1,latex:d[n]||"",onChange:this.onAlternateAnswerChange(n),onFocus:this.onAlternateFocus(n),onDone:this.onAlternateDone(n),error:i&&i[n]}),v.createElement(P,{className:e.removeAlternateButton,onClick:this.onRemoveAlternate(n)},v.createElement(D,null))),i&&i[n]?v.createElement("div",{className:e.errorText},i[n]):null))),v.createElement(T,{className:e.alternateButton,type:"primary",onClick:this.onAddAlternate},"ADD ALTERNATE")))}}L.__initStatic(),L.__initStatic2();var H=K((e=>({responseContainer:{marginBottom:2.5*e.spacing.unit,width:"100%",minWidth:"548px",border:`1px solid ${e.palette.grey[700]}`,display:"flex",flexDirection:"column",justifyContent:"space-between"},cardContent:{paddingBottom:2*e.spacing.unit+"px !important"},title:{fontWeight:700,fontSize:"1.2rem",flex:3},selectContainer:{flex:2},inputContainer:{marginBottom:2*e.spacing.unit},titleBar:{display:"flex",alignItems:"center",justifyContent:"space-between"},responseEditor:{display:"flex",alignItems:"center",justifyContent:"center",width:"100%",minWidth:"500px",maxWidth:"900px",height:"auto",minHeight:"40px"},mathToolbar:{width:"100%"},alternateButton:{border:`1px solid ${e.palette.grey.A100}`},removeAlternateButton:{marginLeft:e.spacing.unit},errorText:{fontSize:e.typography.fontSize-2,color:e.palette.error.main,paddingTop:e.spacing.unit},responseBox:{background:e.palette.grey.A100,color:e.palette.grey.A700,display:"inline",minWidth:"50px",padding:"8px",border:"1px solid #C0C3CF"},alternateBar:{display:"flex",justifyContent:"space-between",alignItems:"center"},customColor:{color:`${q.tertiary()} !important`}})))(L);const Z="imes|riangle|an|heta|herefore",$="throot|parallel|cong|approx|eq|e|sim",W=new RegExp(`(\\t(?!${Z}))|(\\n(?!${$}))|(\\\\t(?!${Z}))|(\\\\n(?!${$}))`,"g"),z=e=>e.replace(W,"").replace(/\\"/g,'"').replace(/\\\//g,"/"),F=e=>{const t=((e="")=>{const t=document.createElement("div");return t.innerHTML=e.trim(),t})(z(e||"")||"");return t.querySelectorAll('[data-type="math_templated"]').forEach((e=>e.replaceWith(`{{${e.dataset.index}}}`))),t.innerHTML},Y=/\{\{(\d+)\}\}/g,G=(e,t)=>e?z(e).replace(Y,((e,n)=>{const a=function(e){let t,n=e[0],a=1;for(;a<e.length;){const o=e[a],s=e[a+1];if(a+=2,("optionalAccess"===o||"optionalCall"===o)&&null==n)return;"access"===o||"optionalAccess"===o?(t=n,n=s(n)):"call"!==o&&"optionalCall"!==o||(n=s(((...e)=>n.call(t,...e))),t=void 0)}return n}([t,"access",e=>e[n],"optionalAccess",e=>e.answer])||"";return`<span data-type="math_templated" data-index="${n}" data-value="${a}"></span>`})):"",U=e,V=t,{withStyles:J}=a,{Typography:Q}=n,{Select:X}=n,{MenuItem:ee}=n,{Tooltip:te}=n,{Info:ne}=o,{cloneDeep:ae}=i,{pick:oe}=i,{throttle:se}=i,{InputContainer:ie}=p,{settings:le}=p,{layout:re}=p,{dropdown:pe}=p,de=d,{ALL_PLUGINS:ce}=d;function he(e){let t,n=e[0],a=1;for(;a<e.length;){const o=e[a],s=e[a+1];if(a+=2,("optionalAccess"===o||"optionalCall"===o)&&null==n)return;"access"===o||"optionalAccess"===o?(t=n,n=s(n)):"call"!==o&&"optionalCall"!==o||(n=s(((...e)=>n.call(t,...e))),t=void 0)}return n}const{Panel:ue,toggle:ge}=le;class me extends U.Component{constructor(...e){super(...e),me.prototype.__init.call(this),me.prototype.__init2.call(this),me.prototype.__init3.call(this),me.prototype.__init4.call(this),me.prototype.__init5.call(this),me.prototype.__init6.call(this),me.prototype.__init7.call(this),me.prototype.__init8.call(this),me.prototype.__init9.call(this)}static __initStatic(){this.propTypes={model:V.object.isRequired,configuration:V.object.isRequired,classes:V.object.isRequired,onModelChanged:V.func.isRequired,onConfigurationChanged:V.func.isRequired,imageSupport:V.shape({add:V.func.isRequired,delete:V.func.isRequired}),uploadSoundSupport:V.object}}__init(){this.state={}}componentDidMount(){const{model:{slateMarkup:e}}=this.props;this.setState({markup:e})}__init2(){this.handleChange=(e,t)=>{const{onModelChanged:n,model:a}=this.props,o=ae(a);o[e]=t,n(o)}}__init3(){this.onResponseChange=(e,t)=>{const{model:n,onModelChanged:a}=this.props,o={...n};o.responses[t]=e,a(o)}}__init4(){this.onResponseDone=()=>{const{model:e,onModelChanged:t}=this.props;t({...e,slateMarkup:G(e.markup,e.responses)})}}__init5(){this.onChangeResponse=(e,t)=>{const{model:n,onModelChanged:a}=this.props,{responses:o}=n;o[e]?o[e][0].answer=t||"":o[e]=[{answer:t||"",id:"response"+e,allowSpaces:!0}],a({...n,responses:o})}}__init6(){this.onResponsesChanged=e=>{this.props.onModelChanged({...this.props.model,responses:e})}}__init7(){this.onChange=e=>{const{model:{responses:t,validationDefault:n,allowTrailingZerosDefault:a,ignoreOrderDefault:o},onModelChanged:s}=this.props,i={},l=(e=>{const t=document.createElement("div");return t.innerHTML=e.trim(),t})(e);l.querySelectorAll('[data-type="math_templated"]').forEach(((e,s)=>{const{value:l,index:r}=e.dataset;l||(e.dataset.value=""),i[s]=t[r]||{allowSpaces:!0,validation:n||"symbolic",allowTrailingZeros:a||!1,ignoreOrder:o||!1,answer:"",alternates:{}},e.dataset.index=s.toString()})),console.log("newResponses",i);const r=F(e);this.setState({cachedResponses:void 0},(()=>s({...this.props.model,slateMarkup:l.innerHTML,responses:i,markup:r})))}}__init8(){this.onHandleAreaChange=se((e=>{const{model:{responses:t},onModelChanged:n}=this.props,{cachedResponses:a}=this.state;if(!e)return;const o=t?ae(t):{},s=a?ae(a):{};e.forEach((e=>{const t=e.data.get("index");!o[t]&&s[t]?(Object.assign(o,oe(s,t)),s.hasOwnProperty(t)&&delete s[t]):(Object.assign(s,oe(o,t)),o.hasOwnProperty(t)&&delete o[t])})),this.setState({cachedResponses:s},(()=>n({...this.props.model,responses:o})))}),500,{trailing:!1,leading:!0})}__init9(){this.onBlur=e=>{const{relatedTarget:t,currentTarget:n}=e||{},a=function e(t,n=0){if(!t||n>=16)return null;const a=t.offsetParent;return a?"tooltip"===a.getAttribute("role")?a:e(a,n+1):null}(t),o=a?function e(t,n=0){if(!t||n>=4)return null;const a=he([t,"optionalAccess",e=>e.children,"optionalAccess",e=>e[0]]);return a?a.attributes&&a.attributes["data-keypad"]?a:e(a,n+1):null}(a):null;t&&n&&he([o,"optionalAccess",e=>e.attributes,"access",e=>e["data-keypad"]])||this.setState({activeAnswerBlock:""})}}render(){const{classes:e,configuration:t,imageSupport:n,model:a,onConfigurationChanged:o,onModelChanged:s,uploadSoundSupport:i}=this.props,{baseInputConfiguration:l={},contentDimensions:r={},prompt:p={},rationale:d={},settingsPanelDisabled:c,teacherInstructions:h={},language:u={},languageChoices:g={},spellCheck:m={},playerSpellCheck:b={},maxImageWidth:_={},maxImageHeight:C={},mathMlOptions:y={},template:E={},editSource:f={},ignoreOrder:S={},allowTrailingZeros:v={},partialScoring:w={},maxResponseAreas:x}=t||{},{errors:A,extraCSSRules:T,promptEnabled:I,rationaleEnabled:k,spellCheckEnabled:R,teacherInstructionsEnabled:M,toolbarEditorPosition:N,responses:O,equationEditor:P}=a||{},{prompt:K,rationale:D,responseAreas:q,teacherInstructions:j,responses:B={}}=A||{},L=(e=>{const{maxResponseAreas:t}=e;return"Validation requirements:\nCorrect answers should not be blank.\nEach answer defined for a response area should be unique.\nThere should be at least 1 "+(t?`and at most ${t} `:"")+"response area"+(t?"s":"")+" defined."})(t),Z={"language.enabled":u.settings&&ge(u.label,!0),language:u.settings&&u.enabled&&pe(g.label,g.options)},$={teacherInstructionsEnabled:h.settings&&ge(h.label),rationaleEnabled:d.settings&&ge(d.label),promptEnabled:p.settings&&ge(p.label),spellCheckEnabled:m.settings&&ge(m.label),playerSpellCheckEnabled:b.settings&&ge(b.label),"editSource.enabled":he([f,"optionalAccess",e=>e.settings])&&ge(f.label,!0),partialScoring:w.settings&&ge(w.label)},W=_&&_.prompt,z=C&&C.prompt,F={position:"top"===N?"top":"bottom"},Y=(e={},t={})=>({...t,...e});return U.createElement(re.ConfigLayout,{extraCSSRules:T,dimensions:r,hideSettings:c,settings:U.createElement(ue,{model:a,configuration:t,onChangeModel:e=>s(e),onChangeConfiguration:o,groups:{Settings:Z,Properties:$}})},M&&U.createElement(ie,{label:h.label,className:e.promptHolder},U.createElement(de,{className:e.prompt,markup:a.teacherInstructions||"",onChange:e=>this.handleChange("teacherInstructions",e),imageSupport:n,nonEmpty:!1,error:j,toolbarOpts:F,pluginProps:Y(he([h,"optionalAccess",e=>e.inputConfiguration]),l),spellCheck:R,maxImageWidth:_&&_.teacherInstructions||W,maxImageHeight:C&&C.teacherInstructions||z,uploadSoundSupport:i,languageCharactersProps:[{language:"spanish"},{language:"special"}],mathMlOptions:y}),j&&U.createElement("div",{className:e.errorText},j)),I&&U.createElement(ie,{label:p.label,className:e.promptHolder},U.createElement(de,{className:e.prompt,markup:a.prompt,onChange:e=>this.handleChange("prompt",e),imageSupport:n,nonEmpty:!1,disableUnderline:!0,error:K,toolbarOpts:F,pluginProps:Y(he([h,"optionalAccess",e=>e.inputConfiguration]),l),spellCheck:R,maxImageWidth:W,maxImageHeight:z,uploadSoundSupport:i,languageCharactersProps:[{language:"spanish"},{language:"special"}],mathMlOptions:y}),K&&U.createElement("div",{className:e.errorText},K)),U.createElement("div",{className:e.tooltipContainer},U.createElement(Q,{className:e.title,component:"div"},"Response Template"),U.createElement(te,{classes:{tooltip:e.tooltip},disableFocusListener:!0,disableTouchListener:!0,placement:"right",title:L},U.createElement(ne,{fontSize:"small",color:"primary"}))),U.createElement(de,{activePlugins:ce,toolbarOpts:{position:"top"},spellCheck:R,pluginProps:Y(he([E,"optionalAccess",e=>e.inputConfiguration]),l),responseAreaProps:{type:"math-templated",respAreaToolbar:null,error:()=>B,onHandleAreaChange:this.onHandleAreaChange,maxResponseAreas:x},className:e.markup,markup:a.slateMarkup,onChange:this.onChange,imageSupport:n,disableImageAlignmentButtons:!0,onBlur:this.onBlur,disabled:!1,highlightShape:!1,error:q,uploadSoundSupport:i,languageCharactersProps:[{language:"spanish"},{language:"special"}],mathMlOptions:y}),q&&U.createElement("div",{className:e.responseAreaError},q),U.createElement(Q,{className:e.title},"Define Response"),U.createElement(ie,{label:"Response Template Equation Editor",className:e.selectContainer},U.createElement(X,{className:e.select,onChange:e=>this.handleChange("equationEditor",e.target.value),value:P},U.createElement(ee,{value:"non-negative-integers"},"Numeric - Non-Negative Integers"),U.createElement(ee,{value:"integers"},"Numeric - Integers"),U.createElement(ee,{value:"decimals"},"Numeric - Decimals"),U.createElement(ee,{value:"fractions"},"Numeric - Fractions"),U.createElement(ee,{value:1},"Grade 1 - 2"),U.createElement(ee,{value:3},"Grade 3 - 5"),U.createElement(ee,{value:6},"Grade 6 - 7"),U.createElement(ee,{value:8},"Grade 8 - HS"),U.createElement(ee,{value:"geometry"},"Geometry"),U.createElement(ee,{value:"advanced-algebra"},"Advanced Algebra"),U.createElement(ee,{value:"statistics"},"Statistics"),U.createElement(ee,{value:"item-authoring"},"Item Authoring"))),Object.keys(O||{}).map(((e,t)=>{const n=O[t];return n?U.createElement(H,{key:t,responseKey:t,mode:P,response:n,onResponseChange:this.onResponseChange,onResponseDone:this.onResponseDone,index:t,cIgnoreOrder:S,cAllowTrailingZeros:v,error:B&&B[t]}):null})),k&&U.createElement(ie,{label:d.label,className:e.promptHolder},U.createElement(de,{className:e.prompt,markup:a.rationale||"",onChange:e=>this.handleChange("rationale",e),imageSupport:n,nonEmpty:!1,error:D,toolbarOpts:F,pluginProps:Y(he([d,"optionalAccess",e=>e.inputConfiguration]),{...l,math:{controlledKeypadMode:!1}}),spellCheck:R,maxImageWidth:_&&_.rationale||W,maxImageHeight:C&&C.rationale||z,uploadSoundSupport:i,languageCharactersProps:[{language:"spanish"},{language:"special"}],mathMlOptions:y}),D&&U.createElement("div",{className:e.errorText},D)))}}me.__initStatic();var be=J((e=>({promptHolder:{width:"100%",paddingTop:2*e.spacing.unit,marginBottom:2*e.spacing.unit},prompt:{width:"100%"},errorText:{color:e.palette.error.main,fontSize:"0.75rem",marginTop:e.spacing.unit},responseAreaError:{color:e.palette.error.main,fontSize:"0.75rem",marginBottom:e.spacing.unit},markup:{width:"100%",marginTop:2*e.spacing.unit,marginBottom:3*e.spacing.unit},selectContainer:{width:"100%",marginTop:2*e.spacing.unit},select:{width:"100%"},title:{fontSize:1.25*e.typography.fontSize,fontWeight:"bold"},tooltipContainer:{display:"flex",alignItems:"center",gap:"8px"},tooltip:{fontSize:e.typography.fontSize-2,whiteSpace:"pre",maxWidth:"500px"}})))(me),_e={allowTrailingZerosDefault:!1,equationEditor:"8",ignoreOrderDefault:!1,markup:"",playerSpellCheckEnabled:!0,prompt:"",promptEnabled:!0,rationale:"",rationaleEnabled:!0,responses:{},spellCheckEnabled:!0,teacherInstructions:"",teacherInstructionsEnabled:!0,toolbarEditorPosition:"bottom",validationDefault:"literal"},Ce={ignoreOrder:{settings:!1,label:"Ignore Order",enabled:!0},allowTrailingZeros:{settings:!1,label:"Allow Trailing Zeros",enabled:!0},partialScoring:{settings:!0,label:"Allow Partial Scoring"},baseInputConfiguration:{html:{disabled:!0},audio:{disabled:!1},video:{disabled:!1},image:{disabled:!1},h3:{disabled:!0},blockquote:{disabled:!0},textAlign:{disabled:!0},showParagraphs:{disabled:!1},separateParagraphs:{disabled:!0}},prompt:{label:"Prompt",settings:!0,inputConfiguration:{audio:{disabled:!1},video:{disabled:!1},image:{disabled:!1}},required:!1},spellCheck:{label:"Spellcheck",settings:!1,enabled:!0},editSource:{label:"Edit Source",settings:!1,enabled:!1},playerSpellCheck:{label:"Student Spellcheck",settings:!0,enabled:!0},teacherInstructions:{settings:!0,label:"Teacher Instructions",inputConfiguration:{audio:{disabled:!1},video:{disabled:!1},image:{disabled:!1}},required:!1},rationale:{settings:!0,label:"Rationale",inputConfiguration:{audio:{disabled:!1},video:{disabled:!1},image:{disabled:!1}},required:!1},template:{inputConfiguration:{audio:{disabled:!1},video:{disabled:!1},image:{disabled:!1}}},maxImageWidth:{teacherInstructions:300,prompt:300,rationale:300},maxImageHeight:{teacherInstructions:300,prompt:300,rationale:300},mathMlOptions:{mmlOutput:!1,mmlEditing:!1},language:{settings:!1,label:"Specify Language",enabled:!1},languageChoices:{label:"Language Choices",options:[]},maxResponseAreas:10};const ye=e,Ee=r,fe=l,{defaults:Se}=i,{isArray:ve}=i;function we(e){let t,n=e[0],a=1;for(;a<e.length;){const o=e[a],s=e[a+1];if(a+=2,("optionalAccess"===o||"optionalCall"===o)&&null==n)return;"access"===o||"optionalAccess"===o?(t=n,n=s(n)):"call"!==o&&"optionalCall"!==o||(n=s(((...e)=>n.call(t,...e))),t=void 0)}return n}const xe=fe("math-templated:configure");class Ae extends HTMLElement{static __initStatic(){this.prepareModel=(e={})=>{const{validationDefault:t,allowTrailingZerosDefault:n,ignoreOrderDefault:a,responses:o={}}=e,s=Object.keys(o).reduce(((e,s)=>{const i=o[s];return e[s]={...i,validation:i.validation||t,allowTrailingZeros:i.allowTrailingZeros||n,ignoreOrder:i.ignoreOrder||a},e}),{}),i={..._e,...e,responses:s},l=i.slateMarkup||G(i.markup,i.responses),r=F(l);return i.responses&&Object.keys(i.responses).forEach((e=>{ve(i.responses[e])&&(i.responses[e]=(i.responses[e]||[]).map(((e,t)=>e.answer?e:(xe('Choice does not contain "answer" property, which is required.',e),{answer:`${t}`,...e}))))})),{...i,slateMarkup:l,markup:r}}}constructor(){super(),this._model=Ae.prepareModel(),this._configuration=Ce,this.onModelChanged=this.onModelChanged.bind(this),this.onConfigurationChanged=this.onConfigurationChanged.bind(this)}set model(e){this._model=Ae.prepareModel(e),this._render()}set configuration(e){this._configuration=Se(e,Ce),we([e,"access",e=>e.language,"optionalAccess",e=>e.enabled])?we([e,"access",e=>e.languageChoices,"optionalAccess",e=>e.options,"optionalAccess",e=>e.length])&&(this._model.language=e.languageChoices.options[0].value):e.language.settings&&this._model.language?(this._configuration.language.enabled=!0,this._configuration.languageChoices.options&&this._configuration.languageChoices.options.length||(this._configuration.languageChoices.options=[]),this._configuration.languageChoices.options.find((e=>e.value===this._model.language))||this._configuration.languageChoices.options.push({value:this._model.language,label:this._model.language})):delete this._model.language,this._render()}set disableSidePanel(e){this._disableSidePanel=e,this._render()}dispatchModelUpdated(e){const t=!!e;this.dispatchEvent(new g(this._model,t))}onModelChanged(e,t){this._model=Ae.prepareModel(e),this._render(),this.dispatchModelUpdated(t)}onConfigurationChanged(e){this._configuration=e,this._render()}insertImage(e){this.dispatchEvent(new C(e))}onDeleteImage(e,t){this.dispatchEvent(new b(e,t))}insertSound(e){this.dispatchEvent(new S(e))}onDeleteSound(e,t){this.dispatchEvent(new E(e,t))}_render(){xe("_render");let e=ye.createElement(be,{model:this._model,configuration:this._configuration,onModelChanged:this.onModelChanged,onConfigurationChanged:this.onConfigurationChanged,disableSidePanel:this._disableSidePanel,imageSupport:{add:this.insertImage.bind(this),delete:this.onDeleteImage.bind(this)},uploadSoundSupport:{add:this.insertSound.bind(this),delete:this.onDeleteSound.bind(this)}});Ee.render(e,this)}}Ae.__initStatic();export{Ae as default};
|
|
1
|
+
import{_dll_react as e,_dll_prop_types as t,_dll_material_ui__core as n,_dll_material_ui__core_styles as a,_dll_material_ui__icons as o,_dll_pie_lib__render_ui as s,_dll_lodash as i,_dll_debug as l,_dll_react_dom as r}from"../../../@pie-lib/shared-module@^1.11.1/module/index.js";import{_dll_pie_lib__config_ui as p}from"../../../@pie-lib/config-module@^2.16.1/module/index.js";import{_dll_pie_lib__editable_html as d}from"../../../@pie-lib/editable-html-module@^5.3.1/module/index.js";import{_dll_pie_lib__math_toolbar as c}from"../../../@pie-lib/math-edit-module@^2.1.0/module/index.js";var h={};Object.defineProperty(h,"__esModule",{value:!0});class u extends CustomEvent{constructor(e,t=!1){super(u.TYPE,{bubbles:!0,detail:{update:e,reset:t}}),this.update=e,this.reset=t}}u.TYPE="model.updated";var g=h.ModelUpdatedEvent=u;class m extends CustomEvent{constructor(e,t){super(m.TYPE,{bubbles:!0,detail:{src:e,done:t}}),this.src=e,this.done=t}}m.TYPE="delete.image";var b=h.DeleteImageEvent=m;class _ extends CustomEvent{constructor(e){super(_.TYPE,{bubbles:!0,detail:e}),this.handler=e}}_.TYPE="insert.image";var C=h.InsertImageEvent=_;class y extends CustomEvent{constructor(e,t){super(y.TYPE,{bubbles:!0,detail:{src:e,done:t}}),this.src=e,this.done=t}}y.TYPE="delete.sound";var E=h.DeleteSoundEvent=y;class f extends CustomEvent{constructor(e){super(f.TYPE,{bubbles:!0,detail:e}),this.handler=e}}f.TYPE="insert.sound";var S=h.InsertSoundEvent=f;const v=e,w=t,{Card:x}=n,{CardContent:A}=n,{Button:T}=n,{FormControlLabel:I}=n,{Typography:k}=n,{InputLabel:R}=n,{Checkbox:M}=n,{Select:N}=n,{MenuItem:O}=n,{IconButton:P}=n,{withStyles:K}=a,{Delete:D}=o,{color:q}=s,{InputContainer:j}=p,{MathToolbar:B}=c;class L extends v.Component{static __initStatic(){this.propTypes={classes:w.object.isRequired,defaultResponse:w.bool,error:w.object,mode:w.oneOfType([w.string,w.number]),onResponseChange:w.func.isRequired,onResponseDone:w.func.isRequired,response:w.object.isRequired,cIgnoreOrder:w.object.isRequired,cAllowTrailingZeros:w.object.isRequired,responseKey:w.number.isRequired}}static __initStatic2(){this.defaultProps={defaultResponse:!1,mode:"8"}}constructor(e){super(e),L.prototype.__init.call(this),L.prototype.__init2.call(this),L.prototype.__init3.call(this),L.prototype.__init4.call(this),L.prototype.__init5.call(this),L.prototype.__init6.call(this),L.prototype.__init7.call(this),L.prototype.__init8.call(this),L.prototype.__init9.call(this),L.prototype.__init10.call(this),L.prototype.__init11.call(this);const{response:{alternates:t}={}}=e||{},n=Object.keys(t||{}).length;this.state={alternateIdCounter:n+1,showKeypad:{openCount:0,main:!1}}}__init(){this.onChange=e=>t=>{const{response:n,onResponseChange:a,responseKey:o}=this.props,s={...n};s[e]=t.target.value,a(s,o)}}__init2(){this.onConfigChanged=e=>t=>{const{response:n,onResponseChange:a,responseKey:o}=this.props,s={...n};s[e]=t.target.checked,a(s,o)}}__init3(){this.onLiteralOptionsChange=e=>()=>{const{response:t,onResponseChange:n,responseKey:a}=this.props,o={...t};o[e]=!t[e],n(o,a)}}__init4(){this.onAnswerChange=e=>{const{response:t,onResponseChange:n,responseKey:a}=this.props,o={...t};o.answer=e,n(o,a)}}__init5(){this.onAlternateAnswerChange=e=>t=>{const{response:n,onResponseChange:a,responseKey:o}=this.props,s={...n};s.alternates[e]=t,a(s,o)}}__init6(){this.onAddAlternate=()=>{const{response:e,onResponseChange:t,responseKey:n}=this.props,{alternateIdCounter:a}=this.state,o={...e};o.alternates||(o.alternates={}),o.alternates[a]="",t(o,n),this.setState({alternateIdCounter:a+1})}}__init7(){this.onRemoveAlternate=e=>()=>{const{response:t,onResponseChange:n,responseKey:a}=this.props,o={...t};delete o.alternates[e],n(o,a),this.setState((t=>({showKeypad:{...t.showKeypad,openCount:t.showKeypad[e]?t.showKeypad.openCount-1:t.showKeypad.openCount}})))}}__init8(){this.onDone=()=>{const{onResponseDone:e}=this.props;this.setState((e=>({showKeypad:{...e.showKeypad,openCount:e.showKeypad.openCount-1,main:!1}}))),e()}}__init9(){this.onFocus=()=>{this.setState((e=>({showKeypad:{...e.showKeypad,openCount:e.showKeypad.main?e.showKeypad.openCount:e.showKeypad.openCount+1,main:!0}})))}}__init10(){this.onAlternateFocus=e=>()=>{this.setState((t=>({showKeypad:{...t.showKeypad,openCount:t.showKeypad[e]?t.showKeypad.openCount:t.showKeypad.openCount+1,[e]:!0}})))}}__init11(){this.onAlternateDone=e=>()=>{this.setState((t=>({showKeypad:{...t.showKeypad,openCount:t.showKeypad.openCount-1,[e]:!1}})))}}render(){const{classes:e,mode:t,responseKey:n,response:a,cAllowTrailingZeros:o,cIgnoreOrder:s,error:i}=this.props,{showKeypad:l}=this.state,{validation:r,answer:p,alternates:d,ignoreOrder:c,allowTrailingZeros:h}=a,u=Object.keys(d||{}).length>0,g={editor:e.responseEditor,mathToolbar:e.mathToolbar},m={minHeight:(l.openCount>0?430:230)+"px"},b=`R ${parseInt(n)+1}`;return v.createElement(x,{className:e.responseContainer,style:m},v.createElement(A,{className:e.cardContent},v.createElement("div",{className:e.titleBar},v.createElement(k,{className:e.title,component:"div"},"Response for ",v.createElement("div",{className:e.responseBox},b)),v.createElement(j,{label:"Validation",className:e.selectContainer},v.createElement(N,{className:e.select,onChange:this.onChange("validation"),value:r||"literal"},v.createElement(O,{value:"literal"},"Literal Validation"),v.createElement(O,{value:"symbolic"},"Symbolic Validation")))),"literal"===r&&v.createElement("div",{className:e.flexContainer},o.enabled&&v.createElement(I,{label:o.label,control:v.createElement(M,{className:e.customColor,checked:h,onChange:this.onLiteralOptionsChange("allowTrailingZeros")})}),s.enabled&&v.createElement(I,{label:s.label,control:v.createElement(M,{className:e.customColor,checked:c,onChange:this.onLiteralOptionsChange("ignoreOrder")})})),v.createElement("div",{className:e.inputContainer},v.createElement(R,null,"Correct Answer"),v.createElement(B,{keypadMode:t,classNames:g,controlledKeypad:!0,showKeypad:l.main,latex:p||"",onChange:this.onAnswerChange,onFocus:this.onFocus,onDone:this.onDone,error:i&&i.answer}),i&&i.answer?v.createElement("div",{className:e.errorText},i.answer):null),u&&Object.keys(d).map(((n,a)=>v.createElement("div",{className:e.inputContainer,key:n},v.createElement(R,null,"Alternate",Object.keys(d).length>1?` ${a+1}`:""),v.createElement("div",{className:e.alternateBar},v.createElement(B,{classNames:g,controlledKeypad:!0,keypadMode:t,showKeypad:l[n]||!1,latex:d[n]||"",onChange:this.onAlternateAnswerChange(n),onFocus:this.onAlternateFocus(n),onDone:this.onAlternateDone(n),error:i&&i[n]}),v.createElement(P,{className:e.removeAlternateButton,onClick:this.onRemoveAlternate(n)},v.createElement(D,null))),i&&i[n]?v.createElement("div",{className:e.errorText},i[n]):null))),v.createElement(T,{className:e.alternateButton,type:"primary",onClick:this.onAddAlternate},"ADD ALTERNATE")))}}L.__initStatic(),L.__initStatic2();var H=K((e=>({responseContainer:{marginBottom:2.5*e.spacing.unit,width:"100%",minWidth:"548px",border:`1px solid ${e.palette.grey[700]}`,display:"flex",flexDirection:"column",justifyContent:"space-between"},cardContent:{paddingBottom:2*e.spacing.unit+"px !important"},title:{fontWeight:700,fontSize:"1.2rem",flex:3},selectContainer:{flex:2},inputContainer:{marginBottom:2*e.spacing.unit},titleBar:{display:"flex",alignItems:"center",justifyContent:"space-between"},responseEditor:{display:"flex",alignItems:"center",justifyContent:"center",width:"100%",minWidth:"500px",maxWidth:"900px",height:"auto",minHeight:"40px"},mathToolbar:{width:"100%"},alternateButton:{border:`1px solid ${e.palette.grey.A100}`},removeAlternateButton:{marginLeft:e.spacing.unit},errorText:{fontSize:e.typography.fontSize-2,color:e.palette.error.main,paddingTop:e.spacing.unit},responseBox:{background:e.palette.grey.A100,color:e.palette.grey.A700,display:"inline",minWidth:"50px",padding:"8px",border:"1px solid #C0C3CF"},alternateBar:{display:"flex",justifyContent:"space-between",alignItems:"center"},customColor:{color:`${q.tertiary()} !important`}})))(L);const Z="imes|riangle|an|heta|herefore",$="throot|parallel|cong|approx|eq|e|sim",W=new RegExp(`(\\t(?!${Z}))|(\\n(?!${$}))|(\\\\t(?!${Z}))|(\\\\n(?!${$}))`,"g"),z=e=>e.replace(W,"").replace(/\\"/g,'"').replace(/\\\//g,"/"),F=e=>{const t=((e="")=>{const t=document.createElement("div");return t.innerHTML=e.trim(),t})(z(e||"")||"");return t.querySelectorAll('[data-type="math_templated"]').forEach((e=>e.replaceWith(`{{${e.dataset.index}}}`))),t.innerHTML},Y=/\{\{(\d+)\}\}/g,G=(e,t)=>e?z(e).replace(Y,((e,n)=>{const a=function(e){let t,n=e[0],a=1;for(;a<e.length;){const o=e[a],s=e[a+1];if(a+=2,("optionalAccess"===o||"optionalCall"===o)&&null==n)return;"access"===o||"optionalAccess"===o?(t=n,n=s(n)):"call"!==o&&"optionalCall"!==o||(n=s(((...e)=>n.call(t,...e))),t=void 0)}return n}([t,"access",e=>e[n],"optionalAccess",e=>e.answer])||"";return`<span data-type="math_templated" data-index="${n}" data-value="${a}"></span>`})):"",U=e,V=t,{withStyles:J}=a,{Typography:Q}=n,{Select:X}=n,{MenuItem:ee}=n,{Tooltip:te}=n,{Info:ne}=o,{cloneDeep:ae}=i,{pick:oe}=i,{throttle:se}=i,{InputContainer:ie}=p,{settings:le}=p,{layout:re}=p,{dropdown:pe}=p,de=d,{ALL_PLUGINS:ce}=d;function he(e){let t,n=e[0],a=1;for(;a<e.length;){const o=e[a],s=e[a+1];if(a+=2,("optionalAccess"===o||"optionalCall"===o)&&null==n)return;"access"===o||"optionalAccess"===o?(t=n,n=s(n)):"call"!==o&&"optionalCall"!==o||(n=s(((...e)=>n.call(t,...e))),t=void 0)}return n}const{Panel:ue,toggle:ge}=le;class me extends U.Component{constructor(...e){super(...e),me.prototype.__init.call(this),me.prototype.__init2.call(this),me.prototype.__init3.call(this),me.prototype.__init4.call(this),me.prototype.__init5.call(this),me.prototype.__init6.call(this),me.prototype.__init7.call(this),me.prototype.__init8.call(this),me.prototype.__init9.call(this)}static __initStatic(){this.propTypes={model:V.object.isRequired,configuration:V.object.isRequired,classes:V.object.isRequired,onModelChanged:V.func.isRequired,onConfigurationChanged:V.func.isRequired,imageSupport:V.shape({add:V.func.isRequired,delete:V.func.isRequired}),uploadSoundSupport:V.object}}__init(){this.state={}}componentDidMount(){const{model:{slateMarkup:e}}=this.props;this.setState({markup:e})}__init2(){this.handleChange=(e,t)=>{const{onModelChanged:n,model:a}=this.props,o=ae(a);o[e]=t,n(o)}}__init3(){this.onResponseChange=(e,t)=>{const{model:n,onModelChanged:a}=this.props,o={...n};o.responses[t]=e,a(o)}}__init4(){this.onResponseDone=()=>{const{model:e,onModelChanged:t}=this.props;t({...e,slateMarkup:G(e.markup,e.responses)})}}__init5(){this.onChangeResponse=(e,t)=>{const{model:n,onModelChanged:a}=this.props,{responses:o}=n;o[e]?o[e][0].answer=t||"":o[e]=[{answer:t||"",id:"response"+e,allowSpaces:!0}],a({...n,responses:o})}}__init6(){this.onResponsesChanged=e=>{this.props.onModelChanged({...this.props.model,responses:e})}}__init7(){this.onChange=e=>{const{model:{responses:t,validationDefault:n,allowTrailingZerosDefault:a,ignoreOrderDefault:o},onModelChanged:s}=this.props,i={},l=(e=>{const t=document.createElement("div");return t.innerHTML=e.trim(),t})(e);l.querySelectorAll('[data-type="math_templated"]').forEach(((e,s)=>{const{value:l,index:r}=e.dataset;l||(e.dataset.value=""),i[s]=t[r]||{allowSpaces:!0,validation:n||"symbolic",allowTrailingZeros:a||!1,ignoreOrder:o||!1,answer:"",alternates:{}},e.dataset.index=s.toString()})),console.log("newResponses",i);const r=F(e);this.setState({cachedResponses:void 0},(()=>s({...this.props.model,slateMarkup:l.innerHTML,responses:i,markup:r})))}}__init8(){this.onHandleAreaChange=se((e=>{const{model:{responses:t},onModelChanged:n}=this.props,{cachedResponses:a}=this.state;if(!e)return;const o=t?ae(t):{},s=a?ae(a):{};e.forEach((e=>{const t=e.data.get("index");!o[t]&&s[t]?(Object.assign(o,oe(s,t)),s.hasOwnProperty(t)&&delete s[t]):(Object.assign(s,oe(o,t)),o.hasOwnProperty(t)&&delete o[t])})),this.setState({cachedResponses:s},(()=>n({...this.props.model,responses:o})))}),500,{trailing:!1,leading:!0})}__init9(){this.onBlur=e=>{const{relatedTarget:t,currentTarget:n}=e||{},a=function e(t,n=0){if(!t||n>=16)return null;const a=t.offsetParent;return a?"tooltip"===a.getAttribute("role")?a:e(a,n+1):null}(t),o=a?function e(t,n=0){if(!t||n>=4)return null;const a=he([t,"optionalAccess",e=>e.children,"optionalAccess",e=>e[0]]);return a?a.attributes&&a.attributes["data-keypad"]?a:e(a,n+1):null}(a):null;t&&n&&he([o,"optionalAccess",e=>e.attributes,"access",e=>e["data-keypad"]])||this.setState({activeAnswerBlock:""})}}render(){const{classes:e,configuration:t,imageSupport:n,model:a,onConfigurationChanged:o,onModelChanged:s,uploadSoundSupport:i}=this.props,{baseInputConfiguration:l={},contentDimensions:r={},prompt:p={},rationale:d={},settingsPanelDisabled:c,teacherInstructions:h={},language:u={},languageChoices:g={},spellCheck:m={},playerSpellCheck:b={},maxImageWidth:_={},maxImageHeight:C={},mathMlOptions:y={},template:E={},editSource:f={},ignoreOrder:S={},allowTrailingZeros:v={},partialScoring:w={},maxResponseAreas:x}=t||{},{errors:A,extraCSSRules:T,promptEnabled:I,rationaleEnabled:k,spellCheckEnabled:R,teacherInstructionsEnabled:M,toolbarEditorPosition:N,responses:O,equationEditor:P}=a||{},{prompt:K,rationale:D,responseAreas:q,teacherInstructions:j,responses:B={}}=A||{},L=(e=>{const{maxResponseAreas:t}=e;return"Validation requirements:\nCorrect answers should not be blank.\nEach answer defined for a response area should be unique.\nThere should be at least 1 "+(t?`and at most ${t} `:"")+"response area"+(t?"s":"")+" defined."})(t),Z={"language.enabled":u.settings&&ge(u.label,!0),language:u.settings&&u.enabled&&pe(g.label,g.options)},$={teacherInstructionsEnabled:h.settings&&ge(h.label),rationaleEnabled:d.settings&&ge(d.label),promptEnabled:p.settings&&ge(p.label),spellCheckEnabled:m.settings&&ge(m.label),playerSpellCheckEnabled:b.settings&&ge(b.label),"editSource.enabled":he([f,"optionalAccess",e=>e.settings])&&ge(f.label,!0),partialScoring:w.settings&&ge(w.label)},W=_&&_.prompt,z=C&&C.prompt,F={position:"top"===N?"top":"bottom"},Y=(e={},t={})=>({...t,...e});return U.createElement(re.ConfigLayout,{extraCSSRules:T,dimensions:r,hideSettings:c,settings:U.createElement(ue,{model:a,configuration:t,onChangeModel:e=>s(e),onChangeConfiguration:o,groups:{Settings:Z,Properties:$}})},M&&U.createElement(ie,{label:h.label,className:e.promptHolder},U.createElement(de,{className:e.prompt,markup:a.teacherInstructions||"",onChange:e=>this.handleChange("teacherInstructions",e),imageSupport:n,nonEmpty:!1,error:j,toolbarOpts:F,pluginProps:Y(he([h,"optionalAccess",e=>e.inputConfiguration]),l),spellCheck:R,maxImageWidth:_&&_.teacherInstructions||W,maxImageHeight:C&&C.teacherInstructions||z,uploadSoundSupport:i,languageCharactersProps:[{language:"spanish"},{language:"special"}],mathMlOptions:y}),j&&U.createElement("div",{className:e.errorText},j)),I&&U.createElement(ie,{label:p.label,className:e.promptHolder},U.createElement(de,{className:e.prompt,markup:a.prompt,onChange:e=>this.handleChange("prompt",e),imageSupport:n,nonEmpty:!1,disableUnderline:!0,error:K,toolbarOpts:F,pluginProps:Y(he([h,"optionalAccess",e=>e.inputConfiguration]),l),spellCheck:R,maxImageWidth:W,maxImageHeight:z,uploadSoundSupport:i,languageCharactersProps:[{language:"spanish"},{language:"special"}],mathMlOptions:y}),K&&U.createElement("div",{className:e.errorText},K)),U.createElement("div",{className:e.tooltipContainer},U.createElement(Q,{className:e.title,component:"div"},"Response Template"),U.createElement(te,{classes:{tooltip:e.tooltip},disableFocusListener:!0,disableTouchListener:!0,placement:"right",title:L},U.createElement(ne,{fontSize:"small",color:"primary"}))),U.createElement(de,{activePlugins:ce,toolbarOpts:{position:"top"},spellCheck:R,pluginProps:Y(he([E,"optionalAccess",e=>e.inputConfiguration]),l),responseAreaProps:{type:"math-templated",respAreaToolbar:null,error:()=>B,onHandleAreaChange:this.onHandleAreaChange,maxResponseAreas:x},className:e.markup,markup:a.slateMarkup,onChange:this.onChange,imageSupport:n,disableImageAlignmentButtons:!0,onBlur:this.onBlur,disabled:!1,highlightShape:!1,error:q,uploadSoundSupport:i,languageCharactersProps:[{language:"spanish"},{language:"special"}],mathMlOptions:y}),q&&U.createElement("div",{className:e.responseAreaError},q),U.createElement(Q,{className:e.title},"Define Response"),U.createElement(ie,{label:"Response Template Equation Editor",className:e.selectContainer},U.createElement(X,{className:e.select,onChange:e=>this.handleChange("equationEditor",e.target.value),value:P},U.createElement(ee,{value:"non-negative-integers"},"Numeric - Non-Negative Integers"),U.createElement(ee,{value:"integers"},"Numeric - Integers"),U.createElement(ee,{value:"decimals"},"Numeric - Decimals"),U.createElement(ee,{value:"fractions"},"Numeric - Fractions"),U.createElement(ee,{value:1},"Grade 1 - 2"),U.createElement(ee,{value:3},"Grade 3 - 5"),U.createElement(ee,{value:6},"Grade 6 - 7"),U.createElement(ee,{value:8},"Grade 8 - HS"),U.createElement(ee,{value:"geometry"},"Geometry"),U.createElement(ee,{value:"advanced-algebra"},"Advanced Algebra"),U.createElement(ee,{value:"statistics"},"Statistics"),U.createElement(ee,{value:"item-authoring"},"Item Authoring"))),Object.keys(O||{}).map(((e,t)=>{const n=O[t];return n?U.createElement(H,{key:t,responseKey:t,mode:P,response:n,onResponseChange:this.onResponseChange,onResponseDone:this.onResponseDone,index:t,cIgnoreOrder:S,cAllowTrailingZeros:v,error:B&&B[t]}):null})),k&&U.createElement(ie,{label:d.label,className:e.promptHolder},U.createElement(de,{className:e.prompt,markup:a.rationale||"",onChange:e=>this.handleChange("rationale",e),imageSupport:n,nonEmpty:!1,error:D,toolbarOpts:F,pluginProps:Y(he([d,"optionalAccess",e=>e.inputConfiguration]),{...l,math:{controlledKeypadMode:!1}}),spellCheck:R,maxImageWidth:_&&_.rationale||W,maxImageHeight:C&&C.rationale||z,uploadSoundSupport:i,languageCharactersProps:[{language:"spanish"},{language:"special"}],mathMlOptions:y}),D&&U.createElement("div",{className:e.errorText},D)))}}me.__initStatic();var be=J((e=>({promptHolder:{width:"100%",paddingTop:2*e.spacing.unit,marginBottom:2*e.spacing.unit},prompt:{width:"100%"},errorText:{color:e.palette.error.main,fontSize:"0.75rem",marginTop:e.spacing.unit},responseAreaError:{color:e.palette.error.main,fontSize:"0.75rem",marginBottom:e.spacing.unit},markup:{width:"100%",marginTop:2*e.spacing.unit,marginBottom:3*e.spacing.unit},selectContainer:{width:"100%",marginTop:2*e.spacing.unit},select:{width:"100%"},title:{fontSize:1.25*e.typography.fontSize,fontWeight:"bold"},tooltipContainer:{display:"flex",alignItems:"center",gap:"8px"},tooltip:{fontSize:e.typography.fontSize-2,whiteSpace:"pre",maxWidth:"500px"}})))(me),_e={allowTrailingZerosDefault:!1,equationEditor:"8",ignoreOrderDefault:!1,markup:"",playerSpellCheckEnabled:!0,prompt:"",promptEnabled:!0,rationale:"",rationaleEnabled:!0,responses:{},spellCheckEnabled:!0,teacherInstructions:"",teacherInstructionsEnabled:!0,toolbarEditorPosition:"bottom",validationDefault:"literal"},Ce={ignoreOrder:{settings:!1,label:"Ignore Order",enabled:!0},allowTrailingZeros:{settings:!1,label:"Allow Trailing Zeros",enabled:!0},partialScoring:{settings:!0,label:"Allow Partial Scoring"},baseInputConfiguration:{html:{disabled:!0},audio:{disabled:!1},video:{disabled:!1},image:{disabled:!1},h3:{disabled:!0},blockquote:{disabled:!0},textAlign:{disabled:!0},showParagraphs:{disabled:!1},separateParagraphs:{disabled:!0}},prompt:{label:"Prompt",settings:!0,inputConfiguration:{audio:{disabled:!1},video:{disabled:!1},image:{disabled:!1}},required:!1},spellCheck:{label:"Spellcheck",settings:!1,enabled:!0},editSource:{label:"Edit Source",settings:!1,enabled:!1},playerSpellCheck:{label:"Student Spellcheck",settings:!0,enabled:!0},teacherInstructions:{settings:!0,label:"Teacher Instructions",inputConfiguration:{audio:{disabled:!1},video:{disabled:!1},image:{disabled:!1}},required:!1},rationale:{settings:!0,label:"Rationale",inputConfiguration:{audio:{disabled:!1},video:{disabled:!1},image:{disabled:!1}},required:!1},template:{inputConfiguration:{audio:{disabled:!1},video:{disabled:!1},image:{disabled:!1}}},maxImageWidth:{teacherInstructions:300,prompt:300,rationale:300},maxImageHeight:{teacherInstructions:300,prompt:300,rationale:300},mathMlOptions:{mmlOutput:!1,mmlEditing:!1},language:{settings:!1,label:"Specify Language",enabled:!1},languageChoices:{label:"Language Choices",options:[]},maxResponseAreas:10};const ye=e,Ee=r,fe=l,{defaults:Se}=i,{isArray:ve}=i;function we(e){let t,n=e[0],a=1;for(;a<e.length;){const o=e[a],s=e[a+1];if(a+=2,("optionalAccess"===o||"optionalCall"===o)&&null==n)return;"access"===o||"optionalAccess"===o?(t=n,n=s(n)):"call"!==o&&"optionalCall"!==o||(n=s(((...e)=>n.call(t,...e))),t=void 0)}return n}const xe=fe("math-templated:configure");class Ae extends HTMLElement{static __initStatic(){this.prepareModel=(e={})=>{const{validationDefault:t,allowTrailingZerosDefault:n,ignoreOrderDefault:a,responses:o={}}=e,s=Object.keys(o).reduce(((e,s)=>{const i=o[s];return e[s]={...i,validation:i.validation||t,allowTrailingZeros:i.allowTrailingZeros||n,ignoreOrder:i.ignoreOrder||a},e}),{}),i={..._e,...e,responses:s},l=i.slateMarkup||G(i.markup,i.responses),r=F(l);return i.responses&&Object.keys(i.responses).forEach((e=>{ve(i.responses[e])&&(i.responses[e]=(i.responses[e]||[]).map(((e,t)=>e.answer?e:(xe('Choice does not contain "answer" property, which is required.',e),{answer:`${t}`,...e}))))})),{...i,slateMarkup:l,markup:r}}}constructor(){super(),this._model=Ae.prepareModel(),this._configuration=Ce,this.onModelChanged=this.onModelChanged.bind(this),this.onConfigurationChanged=this.onConfigurationChanged.bind(this)}set model(e){this._model=Ae.prepareModel(e),this._render()}set configuration(e){this._configuration=Se(e,Ce),we([e,"access",e=>e.language,"optionalAccess",e=>e.enabled])?we([e,"access",e=>e.languageChoices,"optionalAccess",e=>e.options,"optionalAccess",e=>e.length])&&(this._model.language=e.languageChoices.options[0].value):e.language.settings&&this._model.language?(this._configuration.language.enabled=!0,this._configuration.languageChoices.options&&this._configuration.languageChoices.options.length||(this._configuration.languageChoices.options=[]),this._configuration.languageChoices.options.find((e=>e.value===this._model.language))||this._configuration.languageChoices.options.push({value:this._model.language,label:this._model.language})):delete this._model.language,this._render()}set disableSidePanel(e){this._disableSidePanel=e,this._render()}dispatchModelUpdated(e){const t=!!e;this.dispatchEvent(new g(this._model,t))}onModelChanged(e,t){this._model=Ae.prepareModel(e),this._render(),this.dispatchModelUpdated(t)}onConfigurationChanged(e){this._configuration=e,this._render()}insertImage(e){this.dispatchEvent(new C(e))}onDeleteImage(e,t){this.dispatchEvent(new b(e,t))}insertSound(e){this.dispatchEvent(new S(e))}onDeleteSound(e,t){this.dispatchEvent(new E(e,t))}_render(){xe("_render");let e=ye.createElement(be,{model:this._model,configuration:this._configuration,onModelChanged:this.onModelChanged,onConfigurationChanged:this.onConfigurationChanged,disableSidePanel:this._disableSidePanel,imageSupport:{add:this.insertImage.bind(this),delete:this.onDeleteImage.bind(this)},uploadSoundSupport:{add:this.insertSound.bind(this),delete:this.onDeleteSound.bind(this)}});Ee.render(e,this)}}Ae.__initStatic();export{Ae as default};
|