@pie-element/multiple-choice 6.1.6 → 6.1.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +24 -0
- package/configure/CHANGELOG.md +24 -0
- package/configure/lib/defaults.js +3 -6
- package/configure/lib/defaults.js.map +1 -1
- package/configure/lib/main.js +122 -21
- package/configure/lib/main.js.map +1 -1
- package/configure/package.json +4 -4
- package/controller/package.json +1 -1
- package/docs/config-schema.json +10 -0
- package/docs/config-schema.json.md +8 -0
- package/lib/choice-input.js +3 -2
- package/lib/choice-input.js.map +1 -1
- package/lib/print.js +4 -2
- package/lib/print.js.map +1 -1
- package/module/configure.js +152 -45
- package/module/element.js +1016 -52541
- package/module/index.html +1 -1
- package/module/manifest.json +6 -2
- package/module/print.html +1 -1
- package/module/print.js +1020 -52543
- package/package.json +5 -5
package/lib/choice-input.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/choice-input.jsx"],"names":["styleSheet","row","display","alignItems","backgroundColor","color","background","checkboxHolder","flex","text","formStyleSheet","label","StyledFormControlLabel","name","props","classes","CLASS_NAME","colorStyle","varName","fallback","inputStyles","correct","disabled","incorrect","root","primaryLight","checked","primary","opacity","cursor","pointerEvents","StyledCheckbox","correctness","onChange","accessibility","key","k","resolved","miniProps","StyledRadio","ChoiceInput","onToggleChoice","bind","value","selected","choiceMode","displayKey","feedback","className","rationale","hideTick","isEvaluateMode","Tag","classSuffix","React","Component","PropTypes","oneOf","string","isRequired","bool","func","object"],"mappings":"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","sourcesContent":["import FormControlLabel from '@material-ui/core/FormControlLabel';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\n\nimport Checkbox from '@material-ui/core/Checkbox';\nimport { Feedback, color, PreviewPrompt } from '@pie-lib/render-ui';\nimport FeedbackTick from './feedback-tick';\nimport Radio from '@material-ui/core/Radio';\nimport classNames from 'classnames';\n\nconst styleSheet = () => ({\n row: {\n display: 'flex',\n alignItems: 'center',\n backgroundColor: color.background(),\n },\n checkboxHolder: {\n display: 'flex',\n alignItems: 'center',\n backgroundColor: color.background(),\n flex: 1,\n '& label': {\n color: color.text(),\n },\n },\n});\n\nconst formStyleSheet = {\n label: {\n color: `${color.text()} !important`, //'var(--choice-input-color, black)'\n backgroundColor: color.background(),\n },\n};\n\nexport const StyledFormControlLabel = withStyles(formStyleSheet, {\n name: 'FormControlLabel',\n})((props) => (\n <FormControlLabel {...props} classes={{ label: props.classes.label }} />\n));\n\nconst CLASS_NAME = 'multiple-choice-component';\n\nconst colorStyle = (varName, fallback) => ({\n [`&.${CLASS_NAME}`]: {\n color: `var(--choice-input-${varName}, ${fallback}) !important`,\n },\n});\n\nconst inputStyles = {\n 'correct-root': colorStyle('correct-color', color.text()),\n 'correct-checked': colorStyle('correct-selected-color', color.correct()), //green[500]),\n 'correct-disabled': colorStyle('correct-disabled-color', color.disabled()), //'grey'),\n 'incorrect-root': colorStyle('incorrect-color', color.incorrect()),\n 'incorrect-checked': colorStyle('incorrect-checked', color.incorrect()), //orange[500]),\n 'incorrect-disabled': colorStyle(\n 'incorrect-disabled-color',\n color.disabled()\n ),\n root: {\n ...colorStyle('color', color.text()),\n '&:hover': { color: `${color.primaryLight()} !important` },\n },\n checked: colorStyle('selected-color', color.primary()),\n disabled: {\n ...colorStyle('disabled-color', color.text()),\n opacity: 0.6,\n cursor: 'not-allowed !important',\n pointerEvents: 'initial !important',\n },\n};\n\nexport const StyledCheckbox = withStyles(inputStyles)((props) => {\n const {\n correctness,\n classes,\n checked,\n onChange,\n disabled,\n accessibility,\n } = props;\n const key = (k) => (correctness ? `${correctness}-${k}` : k);\n\n const resolved = {\n root: classes[key('root')],\n checked: classes[key('checked')],\n disabled: classes[key('disabled')],\n };\n\n const miniProps = { checked, onChange, disabled };\n return (\n <Checkbox\n aria-label={accessibility}\n {...miniProps}\n className={CLASS_NAME}\n classes={{\n root: resolved.root,\n checked: resolved.checked,\n disabled: resolved.disabled,\n }}\n />\n );\n});\n\nexport const StyledRadio = withStyles(inputStyles)((props) => {\n const {\n correctness,\n classes,\n checked,\n onChange,\n disabled,\n accessibility,\n } = props;\n const key = (k) => (correctness ? `${correctness}-${k}` : k);\n\n const resolved = {\n root: classes[key('root')],\n checked: classes[key('checked')],\n disabled: classes[key('disabled')],\n };\n\n const miniProps = { checked, onChange, disabled };\n\n return (\n <Radio\n aria-label={accessibility}\n {...miniProps}\n className={CLASS_NAME}\n classes={{\n root: resolved.root,\n checked: resolved.checked,\n }}\n />\n );\n});\n\nexport class ChoiceInput extends React.Component {\n static propTypes = {\n choiceMode: PropTypes.oneOf(['radio', 'checkbox']),\n displayKey: PropTypes.string.isRequired,\n checked: PropTypes.bool.isRequired,\n correctness: PropTypes.string,\n disabled: PropTypes.bool.isRequired,\n feedback: PropTypes.string,\n label: PropTypes.string.isRequired,\n rationale: PropTypes.string,\n accessibility: PropTypes.string,\n onChange: PropTypes.func.isRequired,\n value: PropTypes.string.isRequired,\n classes: PropTypes.object,\n className: PropTypes.string,\n hideTick: PropTypes.bool,\n isEvaluateMode: PropTypes.bool,\n };\n\n static defaultProps = {\n rationale: null,\n accessibility: null,\n checked: false,\n isEvaluateMode: false,\n };\n\n constructor(props) {\n super(props);\n this.onToggleChoice = this.onToggleChoice.bind(this);\n }\n\n onToggleChoice() {\n this.props.onChange({\n value: this.props.value,\n selected: !this.props.checked,\n });\n }\n\n render() {\n const {\n choiceMode,\n disabled,\n displayKey,\n feedback,\n label,\n checked,\n correctness,\n classes,\n className,\n rationale,\n accessibility,\n hideTick,\n isEvaluateMode,\n } = this.props;\n\n const Tag = choiceMode === 'checkbox' ? StyledCheckbox : StyledRadio;\n const classSuffix = choiceMode === 'checkbox' ? 'checkbox' : 'radio-button';\n\n return (\n <div className={classNames(className, 'corespring-' + classSuffix, 'choice-input')}>\n <div className={classes.row}>\n {(!hideTick && isEvaluateMode) && <FeedbackTick correctness={correctness} />}\n <div className={classNames(classes.checkboxHolder, 'checkbox-holder')}>\n <StyledFormControlLabel\n disabled={disabled}\n label={displayKey ? displayKey + '. ' : ''}\n control={\n <Tag\n accessibility={accessibility}\n checked={checked}\n correctness={correctness}\n onChange={this.onToggleChoice}\n />\n }\n />\n <PreviewPrompt\n className=\"label\"\n onClick={this.onToggleChoice}\n prompt={label}\n tagName=\"span\"\n />\n </div>\n </div>\n {rationale && (\n <PreviewPrompt className=\"rationale\" defaultClassName=\"rationale\" prompt={rationale} />\n )}\n <Feedback feedback={feedback} correctness={correctness} />\n </div>\n );\n }\n}\n\nexport default withStyles(styleSheet)(ChoiceInput);\n"],"file":"choice-input.js"}
|
|
1
|
+
{"version":3,"sources":["../src/choice-input.jsx"],"names":["styleSheet","row","display","alignItems","backgroundColor","color","background","checkboxHolder","flex","text","formStyleSheet","label","StyledFormControlLabel","name","props","classes","CLASS_NAME","colorStyle","varName","fallback","inputStyles","correct","disabled","incorrect","root","primaryLight","checked","primary","opacity","cursor","pointerEvents","StyledCheckbox","correctness","onChange","accessibility","key","k","resolved","miniProps","StyledRadio","ChoiceInput","onToggleChoice","bind","value","selected","choiceMode","displayKey","feedback","className","rationale","hideTick","isEvaluateMode","Tag","classSuffix","React","Component","PropTypes","oneOf","string","isRequired","bool","func","object"],"mappings":"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","sourcesContent":["import FormControlLabel from '@material-ui/core/FormControlLabel';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\n\nimport Checkbox from '@material-ui/core/Checkbox';\nimport { Feedback, color, PreviewPrompt } from '@pie-lib/render-ui';\nimport FeedbackTick from './feedback-tick';\nimport Radio from '@material-ui/core/Radio';\nimport classNames from 'classnames';\n\nconst styleSheet = () => ({\n row: {\n display: 'flex',\n alignItems: 'center',\n backgroundColor: color.background(),\n },\n checkboxHolder: {\n display: 'flex',\n alignItems: 'center',\n backgroundColor: color.background(),\n flex: 1,\n '& label': {\n color: color.text(),\n },\n },\n});\n\nconst formStyleSheet = {\n label: {\n color: `${color.text()} !important`, //'var(--choice-input-color, black)'\n backgroundColor: color.background(),\n },\n};\n\nexport const StyledFormControlLabel = withStyles(formStyleSheet, {\n name: 'FormControlLabel',\n})((props) => (\n <FormControlLabel {...props} classes={{ label: props.classes.label }} />\n));\n\nconst CLASS_NAME = 'multiple-choice-component';\n\nconst colorStyle = (varName, fallback) => ({\n [`&.${CLASS_NAME}`]: {\n color: `var(--choice-input-${varName}, ${fallback}) !important`,\n },\n});\n\nconst inputStyles = {\n 'correct-root': colorStyle('correct-color', color.text()),\n 'correct-checked': colorStyle('correct-selected-color', color.correct()), //green[500]),\n 'correct-disabled': colorStyle('correct-disabled-color', color.disabled()), //'grey'),\n 'incorrect-root': colorStyle('incorrect-color', color.incorrect()),\n 'incorrect-checked': colorStyle('incorrect-checked', color.incorrect()), //orange[500]),\n 'incorrect-disabled': colorStyle(\n 'incorrect-disabled-color',\n color.disabled()\n ),\n root: {\n ...colorStyle('color', color.text()),\n '&:hover': { color: `${color.primaryLight()} !important` },\n },\n checked: colorStyle('selected-color', color.primary()),\n disabled: {\n ...colorStyle('disabled-color', color.text()),\n opacity: 0.6,\n cursor: 'not-allowed !important',\n pointerEvents: 'initial !important',\n },\n};\n\nexport const StyledCheckbox = withStyles(inputStyles)((props) => {\n const {\n correctness,\n classes,\n checked,\n onChange,\n disabled,\n accessibility,\n } = props;\n const key = (k) => (correctness ? `${correctness}-${k}` : k);\n\n const resolved = {\n root: classes[key('root')],\n checked: classes[key('checked')],\n disabled: classes[key('disabled')],\n };\n\n const miniProps = { checked, onChange, disabled };\n return (\n <Checkbox\n aria-label={accessibility}\n {...miniProps}\n className={CLASS_NAME}\n classes={{\n root: resolved.root,\n checked: resolved.checked,\n disabled: `${correctness ? '' : resolved.disabled}`,\n }}\n />\n );\n});\n\nexport const StyledRadio = withStyles(inputStyles)((props) => {\n const {\n correctness,\n classes,\n checked,\n onChange,\n disabled,\n accessibility,\n } = props;\n const key = (k) => (correctness ? `${correctness}-${k}` : k);\n\n const resolved = {\n root: classes[key('root')],\n checked: classes[key('checked')],\n disabled: classes[key('disabled')],\n };\n\n const miniProps = { checked, onChange, disabled };\n\n return (\n <Radio\n aria-label={accessibility}\n {...miniProps}\n className={CLASS_NAME}\n classes={{\n root: resolved.root,\n checked: resolved.checked,\n disabled: `${correctness ? '' : resolved.disabled}`,\n }}\n />\n );\n});\n\nexport class ChoiceInput extends React.Component {\n static propTypes = {\n choiceMode: PropTypes.oneOf(['radio', 'checkbox']),\n displayKey: PropTypes.string.isRequired,\n checked: PropTypes.bool.isRequired,\n correctness: PropTypes.string,\n disabled: PropTypes.bool.isRequired,\n feedback: PropTypes.string,\n label: PropTypes.string.isRequired,\n rationale: PropTypes.string,\n accessibility: PropTypes.string,\n onChange: PropTypes.func.isRequired,\n value: PropTypes.string.isRequired,\n classes: PropTypes.object,\n className: PropTypes.string,\n hideTick: PropTypes.bool,\n isEvaluateMode: PropTypes.bool,\n };\n\n static defaultProps = {\n rationale: null,\n accessibility: null,\n checked: false,\n isEvaluateMode: false,\n };\n\n constructor(props) {\n super(props);\n this.onToggleChoice = this.onToggleChoice.bind(this);\n }\n\n onToggleChoice() {\n this.props.onChange({\n value: this.props.value,\n selected: !this.props.checked,\n });\n }\n\n render() {\n const {\n choiceMode,\n disabled,\n displayKey,\n feedback,\n label,\n checked,\n correctness,\n classes,\n className,\n rationale,\n accessibility,\n hideTick,\n isEvaluateMode,\n } = this.props;\n\n const Tag = choiceMode === 'checkbox' ? StyledCheckbox : StyledRadio;\n const classSuffix = choiceMode === 'checkbox' ? 'checkbox' : 'radio-button';\n\n return (\n <div className={classNames(className, 'corespring-' + classSuffix, 'choice-input')}>\n <div className={classes.row}>\n {(!hideTick && isEvaluateMode) && <FeedbackTick correctness={correctness} />}\n <div className={classNames(classes.checkboxHolder, 'checkbox-holder')}>\n <StyledFormControlLabel\n disabled={disabled}\n label={displayKey ? displayKey + '. ' : ''}\n control={\n <Tag\n accessibility={accessibility}\n checked={checked}\n correctness={correctness}\n onChange={this.onToggleChoice}\n />\n }\n />\n <PreviewPrompt\n className=\"label\"\n onClick={this.onToggleChoice}\n prompt={label}\n tagName=\"span\"\n />\n </div>\n </div>\n {rationale && (\n <PreviewPrompt className=\"rationale\" defaultClassName=\"rationale\" prompt={rationale} />\n )}\n <Feedback feedback={feedback} correctness={correctness} />\n </div>\n );\n }\n}\n\nexport default withStyles(styleSheet)(ChoiceInput);\n"],"file":"choice-input.js"}
|
package/lib/print.js
CHANGED
|
@@ -50,7 +50,8 @@ var log = (0, _debug["default"])('pie-element:multiple-choice:print');
|
|
|
50
50
|
|
|
51
51
|
var preparePrintModel = function preparePrintModel(model, opts) {
|
|
52
52
|
var instr = opts.role === 'instructor';
|
|
53
|
-
model.
|
|
53
|
+
model.prompt = model.promptEnabled !== false ? model.prompt : undefined;
|
|
54
|
+
model.teacherInstructions = instr && model.teacherInstructionsEnabled !== false ? model.teacherInstructions : undefined;
|
|
54
55
|
model.showTeacherInstructions = instr;
|
|
55
56
|
model.alwaysShowCorrect = instr;
|
|
56
57
|
model.mode = instr ? 'evaluate' : model.mode;
|
|
@@ -58,11 +59,12 @@ var preparePrintModel = function preparePrintModel(model, opts) {
|
|
|
58
59
|
model.animationsDisabled = true;
|
|
59
60
|
var choices = (0, _cloneDeep["default"])(model.choices);
|
|
60
61
|
model.choices = choices.map(function (c) {
|
|
61
|
-
c.rationale = instr ? c.rationale : undefined;
|
|
62
|
+
c.rationale = instr && model.rationaleEnabled !== false ? c.rationale : undefined;
|
|
62
63
|
c.hideTick = instr;
|
|
63
64
|
c.feedback = undefined;
|
|
64
65
|
return c;
|
|
65
66
|
});
|
|
67
|
+
model.keyMode = model.choicePrefix || 'letters';
|
|
66
68
|
return model;
|
|
67
69
|
};
|
|
68
70
|
|
package/lib/print.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/print.js"],"names":["log","preparePrintModel","model","opts","instr","role","
|
|
1
|
+
{"version":3,"sources":["../src/print.js"],"names":["log","preparePrintModel","model","opts","instr","role","prompt","promptEnabled","undefined","teacherInstructions","teacherInstructionsEnabled","showTeacherInstructions","alwaysShowCorrect","mode","disabled","animationsDisabled","choices","map","c","rationale","rationaleEnabled","hideTick","feedback","keyMode","choicePrefix","MultipleChoicePrint","_options","_model","_session","_rerender","printModel","element","React","createElement","Main","session","ReactDOM","render","leading","trailing","o","s","HTMLElement"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;AAEA,IAAMA,GAAG,GAAG,uBAAM,mCAAN,CAAZ;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAMC,iBAAiB,GAAG,SAApBA,iBAAoB,CAACC,KAAD,EAAQC,IAAR,EAAiB;AACzC,MAAMC,KAAK,GAAGD,IAAI,CAACE,IAAL,KAAc,YAA5B;AAEAH,EAAAA,KAAK,CAACI,MAAN,GAAeJ,KAAK,CAACK,aAAN,KAAwB,KAAxB,GAAgCL,KAAK,CAACI,MAAtC,GAA+CE,SAA9D;AACAN,EAAAA,KAAK,CAACO,mBAAN,GAA4BL,KAAK,IAAIF,KAAK,CAACQ,0BAAN,KAAqC,KAA9C,GAAsDR,KAAK,CAACO,mBAA5D,GAAkFD,SAA9G;AACAN,EAAAA,KAAK,CAACS,uBAAN,GAAgCP,KAAhC;AACAF,EAAAA,KAAK,CAACU,iBAAN,GAA0BR,KAA1B;AACAF,EAAAA,KAAK,CAACW,IAAN,GAAaT,KAAK,GAAG,UAAH,GAAgBF,KAAK,CAACW,IAAxC;AAEAX,EAAAA,KAAK,CAACY,QAAN,GAAiB,IAAjB;AACAZ,EAAAA,KAAK,CAACa,kBAAN,GAA2B,IAA3B;AAEA,MAAMC,OAAO,GAAG,2BAAUd,KAAK,CAACc,OAAhB,CAAhB;AAEAd,EAAAA,KAAK,CAACc,OAAN,GAAgBA,OAAO,CAACC,GAAR,CAAY,UAACC,CAAD,EAAO;AACjCA,IAAAA,CAAC,CAACC,SAAF,GAAcf,KAAK,IAAIF,KAAK,CAACkB,gBAAN,KAA2B,KAApC,GAA4CF,CAAC,CAACC,SAA9C,GAA0DX,SAAxE;AACAU,IAAAA,CAAC,CAACG,QAAF,GAAajB,KAAb;AACAc,IAAAA,CAAC,CAACI,QAAF,GAAad,SAAb;AACA,WAAOU,CAAP;AACD,GALe,CAAhB;AAOAhB,EAAAA,KAAK,CAACqB,OAAN,GAAgBrB,KAAK,CAACsB,YAAN,IAAsB,SAAtC;AAEA,SAAOtB,KAAP;AACD,CAxBD;;IA0BqBuB,mB;;;;;AACnB,iCAAc;AAAA;;AAAA;AACZ;AACA,UAAKC,QAAL,GAAgB,IAAhB;AACA,UAAKC,MAAL,GAAc,IAAd;AACA,UAAKC,QAAL,GAAgB,EAAhB;AACA,UAAKC,SAAL,GAAiB,0BACf,YAAM;AACJ,UAAI,MAAKF,MAAL,IAAe,MAAKC,QAAxB,EAAkC;AAChC,YAAME,UAAU,GAAG7B,iBAAiB,CAAC,MAAK0B,MAAN,EAAc,MAAKD,QAAnB,CAApC;;AAEA,YAAMK,OAAO,GACX,MAAKL,QAAL,iBACAM,kBAAMC,aAAN,CAAoBC,gBAApB,EAA0B;AACxBhC,UAAAA,KAAK,EAAE4B,UADiB;AAExBK,UAAAA,OAAO,EAAE;AAFe,SAA1B,CAFF;;AAOAC,6BAASC,MAAT,CAAgBN,OAAhB,kDAA+B,YAAM;AACnC/B,UAAAA,GAAG,CAAC,+BAAD,CAAH;AACA;AACD,SAHD;AAID,OAdD,MAcO;AACLA,QAAAA,GAAG,CAAC,MAAD,CAAH;AACD;AACF,KAnBc,EAoBf,EApBe,EAqBf;AAAEsC,MAAAA,OAAO,EAAE,KAAX;AAAkBC,MAAAA,QAAQ,EAAE;AAA5B,KArBe,CAAjB;AALY;AA4Bb;;;;SACD,aAAYC,CAAZ,EAAe;AACb,WAAKd,QAAL,GAAgBc,CAAhB;AACD;;;SAED,aAAUC,CAAV,EAAa;AACX,WAAKd,MAAL,GAAcc,CAAd;;AACA,WAAKZ,SAAL;AACD;;;WAED,6BAAoB,CAAE;;;kDAvCyBa,W","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport debounce from 'lodash/debounce';\nimport cloneDeep from 'lodash/cloneDeep';\nimport Main from './main';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport debug from 'debug';\n\nconst log = debug('pie-element:multiple-choice:print');\n\n/**\n * Live in same package as main element - so we can access some of the shared comps!\n *\n * - update pslb to build print if src/print.js is there\n * - update demo el\n * - get configure/controller building\n */\n\nconst preparePrintModel = (model, opts) => {\n const instr = opts.role === 'instructor';\n\n model.prompt = model.promptEnabled !== false ? model.prompt : undefined;\n model.teacherInstructions = instr && model.teacherInstructionsEnabled !== false ? model.teacherInstructions : undefined;\n model.showTeacherInstructions = instr;\n model.alwaysShowCorrect = instr;\n model.mode = instr ? 'evaluate' : model.mode;\n\n model.disabled = true;\n model.animationsDisabled = true;\n\n const choices = cloneDeep(model.choices);\n\n model.choices = choices.map((c) => {\n c.rationale = instr && model.rationaleEnabled !== false ? c.rationale : undefined;\n c.hideTick = instr;\n c.feedback = undefined;\n return c;\n });\n\n model.keyMode = model.choicePrefix || 'letters';\n\n return model;\n};\n\nexport default class MultipleChoicePrint extends HTMLElement {\n constructor() {\n super();\n this._options = null;\n this._model = null;\n this._session = [];\n this._rerender = debounce(\n () => {\n if (this._model && this._session) {\n const printModel = preparePrintModel(this._model, this._options);\n\n const element =\n this._options &&\n React.createElement(Main, {\n model: printModel,\n session: {},\n });\n\n ReactDOM.render(element, this, () => {\n log('render complete - render math');\n renderMath(this);\n });\n } else {\n log('skip');\n }\n },\n 50,\n { leading: false, trailing: true }\n );\n }\n set options(o) {\n this._options = o;\n }\n\n set model(s) {\n this._model = s;\n this._rerender();\n }\n\n connectedCallback() {}\n}\n"],"file":"print.js"}
|
package/module/configure.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {_dll_react, _dll_prop_types, _dll_material_ui__core_styles, _dll_material_ui__core, _dll_lodash, _dll_pie_lib__render_ui, _dll_debug, _dll_react_dom} from "../../../@pie-lib/shared-module@^1.2.
|
|
2
|
-
import {_dll_pie_lib__config_ui} from "../../../@pie-lib/config-module@^1.0.
|
|
3
|
-
import {_dll_pie_lib__editable_html} from "../../../@pie-lib/editable-html-module@^1.0.
|
|
1
|
+
import {_dll_react, _dll_prop_types, _dll_material_ui__core_styles, _dll_material_ui__core, _dll_lodash, _dll_pie_lib__render_ui, _dll_debug, _dll_react_dom} from "../../../@pie-lib/shared-module@^1.2.16/module/index.js";
|
|
2
|
+
import {_dll_pie_lib__config_ui} from "../../../@pie-lib/config-module@^1.0.17/module/index.js";
|
|
3
|
+
import {_dll_pie_lib__editable_html} from "../../../@pie-lib/editable-html-module@^1.0.17/module/index.js";
|
|
4
4
|
var lib = {};
|
|
5
5
|
Object.defineProperty(lib, "__esModule", {
|
|
6
6
|
value: true
|
|
@@ -52,6 +52,9 @@ const {color: color} = _dll_pie_lib__render_ui;
|
|
|
52
52
|
const {withStyles: withStyles} = _dll_material_ui__core_styles;
|
|
53
53
|
const {Button: Button} = _dll_material_ui__core;
|
|
54
54
|
const {Tooltip: Tooltip} = _dll_material_ui__core;
|
|
55
|
+
const {Dialog: Dialog} = _dll_material_ui__core;
|
|
56
|
+
const {DialogTitle: DialogTitle} = _dll_material_ui__core;
|
|
57
|
+
const {DialogActions: DialogActions} = _dll_material_ui__core;
|
|
55
58
|
const {merge: merge} = _dll_lodash;
|
|
56
59
|
const EditableHtml = _dll_pie_lib__editable_html;
|
|
57
60
|
const {InputContainer: InputContainer} = _dll_pie_lib__config_ui;
|
|
@@ -59,7 +62,7 @@ const {ChoiceConfiguration: ChoiceConfiguration} = _dll_pie_lib__config_ui;
|
|
|
59
62
|
const {settings: settings} = _dll_pie_lib__config_ui;
|
|
60
63
|
const {layout: layout} = _dll_pie_lib__config_ui;
|
|
61
64
|
const {choiceUtils: utils$1} = _dll_pie_lib__config_ui;
|
|
62
|
-
const _jsxFileName = "/
|
|
65
|
+
const _jsxFileName = "/home/circleci/repo/packages/multiple-choice/configure/src/main.jsx";
|
|
63
66
|
const {Panel, toggle, radio, dropdown} = settings;
|
|
64
67
|
const MAX_CHOICES = 9;
|
|
65
68
|
const styles = theme => ({
|
|
@@ -118,8 +121,9 @@ const styles = theme => ({
|
|
|
118
121
|
});
|
|
119
122
|
const Design = withStyles(styles)(props => {
|
|
120
123
|
const {classes, model, configuration, onPromptChanged, onChoiceChanged, onRemoveChoice, onAddChoice, imageSupport, onChangeModel, onConfigurationChanged, onTeacherInstructionsChanged} = props;
|
|
121
|
-
const {prompt = {}, addChoiceButton = {},
|
|
122
|
-
|
|
124
|
+
const {prompt = {}, addChoiceButton = {}, feedback = {}, deleteChoice = {}, choiceMode = {}, choicePrefix = {}, partialScoring = {}, lockChoiceOrder = {}, teacherInstructions = {}, studentInstructions = {}, rationale = {}, accessibility = {}, scoringType = {}, sequentialChoiceLabels = {}, settingsPanelDisabled, choicesLayout, gridColumns} = configuration || ({});
|
|
125
|
+
let {maxAnswerChoices} = configuration || ({});
|
|
126
|
+
const {limitChoicesNumber, teacherInstructionsEnabled, rationaleEnabled, accessibilityLabelsEnabled, feedbackEnabled, promptEnabled, choices} = model || ({});
|
|
123
127
|
const nrOfColumnsAvailable = choices && choices.length ? Array.from({
|
|
124
128
|
length: choices.length
|
|
125
129
|
}, (_, i) => `${i + 1}`) : [];
|
|
@@ -140,11 +144,14 @@ const Design = withStyles(styles)(props => {
|
|
|
140
144
|
toolbarOpts.position = 'bottom';
|
|
141
145
|
break;
|
|
142
146
|
}
|
|
147
|
+
if (limitChoicesNumber && !maxAnswerChoices) {
|
|
148
|
+
maxAnswerChoices = MAX_CHOICES;
|
|
149
|
+
}
|
|
143
150
|
const Content = React$1.createElement('div', {
|
|
144
151
|
__self: undefined,
|
|
145
152
|
__source: {
|
|
146
153
|
fileName: _jsxFileName,
|
|
147
|
-
lineNumber:
|
|
154
|
+
lineNumber: 149
|
|
148
155
|
}
|
|
149
156
|
}, teacherInstructionsEnabled && React$1.createElement(InputContainer, {
|
|
150
157
|
label: teacherInstructions.label,
|
|
@@ -152,7 +159,7 @@ const Design = withStyles(styles)(props => {
|
|
|
152
159
|
__self: undefined,
|
|
153
160
|
__source: {
|
|
154
161
|
fileName: _jsxFileName,
|
|
155
|
-
lineNumber:
|
|
162
|
+
lineNumber: 151
|
|
156
163
|
}
|
|
157
164
|
}, React$1.createElement(EditableHtml, {
|
|
158
165
|
className: classes.prompt,
|
|
@@ -164,7 +171,7 @@ const Design = withStyles(styles)(props => {
|
|
|
164
171
|
__self: undefined,
|
|
165
172
|
__source: {
|
|
166
173
|
fileName: _jsxFileName,
|
|
167
|
-
lineNumber:
|
|
174
|
+
lineNumber: 155
|
|
168
175
|
}
|
|
169
176
|
})), promptEnabled && React$1.createElement(InputContainer, {
|
|
170
177
|
label: prompt.label,
|
|
@@ -172,7 +179,7 @@ const Design = withStyles(styles)(props => {
|
|
|
172
179
|
__self: undefined,
|
|
173
180
|
__source: {
|
|
174
181
|
fileName: _jsxFileName,
|
|
175
|
-
lineNumber:
|
|
182
|
+
lineNumber: 167
|
|
176
183
|
}
|
|
177
184
|
}, React$1.createElement(EditableHtml, {
|
|
178
185
|
className: classes.prompt,
|
|
@@ -185,7 +192,7 @@ const Design = withStyles(styles)(props => {
|
|
|
185
192
|
__self: undefined,
|
|
186
193
|
__source: {
|
|
187
194
|
fileName: _jsxFileName,
|
|
188
|
-
lineNumber:
|
|
195
|
+
lineNumber: 168
|
|
189
196
|
}
|
|
190
197
|
})), model.choices.map((choice, index) => React$1.createElement('div', {
|
|
191
198
|
key: `choice-${index}`,
|
|
@@ -193,7 +200,7 @@ const Design = withStyles(styles)(props => {
|
|
|
193
200
|
__self: undefined,
|
|
194
201
|
__source: {
|
|
195
202
|
fileName: _jsxFileName,
|
|
196
|
-
lineNumber:
|
|
203
|
+
lineNumber: 180
|
|
197
204
|
}
|
|
198
205
|
}, React$1.createElement(ChoiceConfiguration, {
|
|
199
206
|
key: index,
|
|
@@ -213,7 +220,7 @@ const Design = withStyles(styles)(props => {
|
|
|
213
220
|
__self: undefined,
|
|
214
221
|
__source: {
|
|
215
222
|
fileName: _jsxFileName,
|
|
216
|
-
lineNumber:
|
|
223
|
+
lineNumber: 184
|
|
217
224
|
}
|
|
218
225
|
}), rationaleEnabled && React$1.createElement(InputContainer, {
|
|
219
226
|
key: `rationale-${index}`,
|
|
@@ -222,7 +229,7 @@ const Design = withStyles(styles)(props => {
|
|
|
222
229
|
__self: undefined,
|
|
223
230
|
__source: {
|
|
224
231
|
fileName: _jsxFileName,
|
|
225
|
-
lineNumber:
|
|
232
|
+
lineNumber: 201
|
|
226
233
|
}
|
|
227
234
|
}, React$1.createElement(EditableHtml, {
|
|
228
235
|
className: classes.rationale,
|
|
@@ -237,7 +244,7 @@ const Design = withStyles(styles)(props => {
|
|
|
237
244
|
__self: undefined,
|
|
238
245
|
__source: {
|
|
239
246
|
fileName: _jsxFileName,
|
|
240
|
-
lineNumber:
|
|
247
|
+
lineNumber: 206
|
|
241
248
|
}
|
|
242
249
|
})), accessibilityLabelsEnabled && React$1.createElement(InputContainer, {
|
|
243
250
|
key: `accessibility-${index}`,
|
|
@@ -246,7 +253,7 @@ const Design = withStyles(styles)(props => {
|
|
|
246
253
|
__self: undefined,
|
|
247
254
|
__source: {
|
|
248
255
|
fileName: _jsxFileName,
|
|
249
|
-
lineNumber:
|
|
256
|
+
lineNumber: 222
|
|
250
257
|
}
|
|
251
258
|
}, React$1.createElement(EditableHtml, {
|
|
252
259
|
className: classes.accessibility,
|
|
@@ -260,27 +267,27 @@ const Design = withStyles(styles)(props => {
|
|
|
260
267
|
__self: undefined,
|
|
261
268
|
__source: {
|
|
262
269
|
fileName: _jsxFileName,
|
|
263
|
-
lineNumber:
|
|
270
|
+
lineNumber: 227
|
|
264
271
|
}
|
|
265
272
|
})))), React$1.createElement('br', {
|
|
266
273
|
__self: undefined,
|
|
267
274
|
__source: {
|
|
268
275
|
fileName: _jsxFileName,
|
|
269
|
-
lineNumber:
|
|
276
|
+
lineNumber: 243
|
|
270
277
|
}
|
|
271
278
|
}), addChoiceButton.settings && React$1.createElement(Tooltip, {
|
|
272
|
-
title:
|
|
279
|
+
title: maxAnswerChoices && model.choices.length >= maxAnswerChoices ? `Only ${maxAnswerChoices} allowed maximum` : '',
|
|
273
280
|
classes: {
|
|
274
281
|
tooltip: classes.tooltip
|
|
275
282
|
},
|
|
276
283
|
__self: undefined,
|
|
277
284
|
__source: {
|
|
278
285
|
fileName: _jsxFileName,
|
|
279
|
-
lineNumber:
|
|
286
|
+
lineNumber: 245
|
|
280
287
|
}
|
|
281
288
|
}, React$1.createElement(Button, {
|
|
282
289
|
classes: {
|
|
283
|
-
root:
|
|
290
|
+
root: maxAnswerChoices && model.choices.length >= maxAnswerChoices ? classes.disableButton : undefined
|
|
284
291
|
},
|
|
285
292
|
className: classes.addButton,
|
|
286
293
|
variant: "contained",
|
|
@@ -289,7 +296,7 @@ const Design = withStyles(styles)(props => {
|
|
|
289
296
|
__self: undefined,
|
|
290
297
|
__source: {
|
|
291
298
|
fileName: _jsxFileName,
|
|
292
|
-
lineNumber:
|
|
299
|
+
lineNumber: 246
|
|
293
300
|
}
|
|
294
301
|
}, addChoiceButton.label)));
|
|
295
302
|
const settingsInPanel = {
|
|
@@ -297,7 +304,6 @@ const Design = withStyles(styles)(props => {
|
|
|
297
304
|
'sequentialChoiceLabels.enabled': sequentialChoiceLabels.settings && toggle(sequentialChoiceLabels.label, true),
|
|
298
305
|
choicePrefix: choicePrefix.settings && radio(choicePrefix.label, ['numbers', 'letters']),
|
|
299
306
|
partialScoring: partialScoring.settings && toggle(partialScoring.label),
|
|
300
|
-
limitChoicesNumber: limitChoicesNumber.settings && toggle(limitChoicesNumber.label),
|
|
301
307
|
lockChoiceOrder: lockChoiceOrder.settings && toggle(lockChoiceOrder.label),
|
|
302
308
|
feedbackEnabled: feedback.settings && toggle(feedback.label),
|
|
303
309
|
choicesLayout: choicesLayout.settings && dropdown(choicesLayout.label, ['vertical', 'grid', 'horizontal']),
|
|
@@ -308,7 +314,7 @@ const Design = withStyles(styles)(props => {
|
|
|
308
314
|
__self: undefined,
|
|
309
315
|
__source: {
|
|
310
316
|
fileName: _jsxFileName,
|
|
311
|
-
lineNumber:
|
|
317
|
+
lineNumber: 284
|
|
312
318
|
}
|
|
313
319
|
}, settingsPanelDisabled ? Content : React$1.createElement(layout.ConfigLayout, {
|
|
314
320
|
settings: React$1.createElement(Panel, {
|
|
@@ -330,16 +336,58 @@ const Design = withStyles(styles)(props => {
|
|
|
330
336
|
__self: undefined,
|
|
331
337
|
__source: {
|
|
332
338
|
fileName: _jsxFileName,
|
|
333
|
-
lineNumber:
|
|
339
|
+
lineNumber: 290
|
|
334
340
|
}
|
|
335
341
|
}),
|
|
336
342
|
__self: undefined,
|
|
337
343
|
__source: {
|
|
338
344
|
fileName: _jsxFileName,
|
|
339
|
-
lineNumber:
|
|
345
|
+
lineNumber: 288
|
|
340
346
|
}
|
|
341
347
|
}, Content));
|
|
342
348
|
});
|
|
349
|
+
const InfoDialog = ({open, onCancel, onOk, title}) => React$1.createElement(Dialog, {
|
|
350
|
+
open: open,
|
|
351
|
+
__self: undefined,
|
|
352
|
+
__source: {
|
|
353
|
+
fileName: _jsxFileName,
|
|
354
|
+
lineNumber: 325
|
|
355
|
+
}
|
|
356
|
+
}, React$1.createElement(DialogTitle, {
|
|
357
|
+
__self: undefined,
|
|
358
|
+
__source: {
|
|
359
|
+
fileName: _jsxFileName,
|
|
360
|
+
lineNumber: 326
|
|
361
|
+
}
|
|
362
|
+
}, title), React$1.createElement(DialogActions, {
|
|
363
|
+
__self: undefined,
|
|
364
|
+
__source: {
|
|
365
|
+
fileName: _jsxFileName,
|
|
366
|
+
lineNumber: 327
|
|
367
|
+
}
|
|
368
|
+
}, onOk && React$1.createElement(Button, {
|
|
369
|
+
onClick: onOk,
|
|
370
|
+
color: "primary",
|
|
371
|
+
__self: undefined,
|
|
372
|
+
__source: {
|
|
373
|
+
fileName: _jsxFileName,
|
|
374
|
+
lineNumber: 329
|
|
375
|
+
}
|
|
376
|
+
}, "OK"), onCancel && React$1.createElement(Button, {
|
|
377
|
+
onClick: onCancel,
|
|
378
|
+
color: "primary",
|
|
379
|
+
__self: undefined,
|
|
380
|
+
__source: {
|
|
381
|
+
fileName: _jsxFileName,
|
|
382
|
+
lineNumber: 334
|
|
383
|
+
}
|
|
384
|
+
}, "Cancel")));
|
|
385
|
+
InfoDialog.propTypes = {
|
|
386
|
+
open: PropTypes.bool,
|
|
387
|
+
onCancel: PropTypes.func,
|
|
388
|
+
onOk: PropTypes.func,
|
|
389
|
+
title: PropTypes.string
|
|
390
|
+
};
|
|
343
391
|
class Main extends React$1.Component {
|
|
344
392
|
constructor(...args) {
|
|
345
393
|
super(...args);
|
|
@@ -349,10 +397,12 @@ class Main extends React$1.Component {
|
|
|
349
397
|
Main.prototype.__init4.call(this);
|
|
350
398
|
Main.prototype.__init5.call(this);
|
|
351
399
|
Main.prototype.__init6.call(this);
|
|
400
|
+
Main.prototype.__init7.call(this);
|
|
352
401
|
}
|
|
353
402
|
static __initStatic() {
|
|
354
403
|
this.propTypes = {
|
|
355
404
|
model: PropTypes.object.isRequired,
|
|
405
|
+
configuration: PropTypes.object.isRequired,
|
|
356
406
|
disableSidePanel: PropTypes.bool,
|
|
357
407
|
onModelChanged: PropTypes.func.isRequired,
|
|
358
408
|
onConfigurationChanged: PropTypes.func.isRequired,
|
|
@@ -364,16 +414,65 @@ class Main extends React$1.Component {
|
|
|
364
414
|
};
|
|
365
415
|
}
|
|
366
416
|
__init() {
|
|
367
|
-
this.
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
417
|
+
this.state = {
|
|
418
|
+
dialog: {
|
|
419
|
+
open: false
|
|
420
|
+
}
|
|
371
421
|
};
|
|
372
422
|
}
|
|
373
423
|
__init2() {
|
|
424
|
+
this.onRemoveChoice = index => {
|
|
425
|
+
const {model, configuration} = this.props;
|
|
426
|
+
const {minAnswerChoices} = configuration || ({});
|
|
427
|
+
if (minAnswerChoices && model.choices.length === minAnswerChoices) {
|
|
428
|
+
this.setState({
|
|
429
|
+
dialog: {
|
|
430
|
+
open: true,
|
|
431
|
+
message: `There can't be less than ${minAnswerChoices} choices.`,
|
|
432
|
+
onOk: () => {
|
|
433
|
+
this.setState({
|
|
434
|
+
dialog: {
|
|
435
|
+
open: false
|
|
436
|
+
}
|
|
437
|
+
});
|
|
438
|
+
},
|
|
439
|
+
onCancel: () => this.setState({
|
|
440
|
+
dialog: {
|
|
441
|
+
open: false
|
|
442
|
+
}
|
|
443
|
+
})
|
|
444
|
+
}
|
|
445
|
+
});
|
|
446
|
+
} else {
|
|
447
|
+
model.choices.splice(index, 1);
|
|
448
|
+
this.props.onModelChanged(model);
|
|
449
|
+
}
|
|
450
|
+
};
|
|
451
|
+
}
|
|
452
|
+
__init3() {
|
|
374
453
|
this.onAddChoice = () => {
|
|
375
|
-
const {model} = this.props;
|
|
376
|
-
|
|
454
|
+
const {model, configuration} = this.props;
|
|
455
|
+
const {maxAnswerChoices} = configuration || ({});
|
|
456
|
+
if (maxAnswerChoices && model.choices.length === maxAnswerChoices) {
|
|
457
|
+
this.setState({
|
|
458
|
+
dialog: {
|
|
459
|
+
open: true,
|
|
460
|
+
message: `There can't be more than ${maxAnswerChoices} choices.`,
|
|
461
|
+
onOk: () => {
|
|
462
|
+
this.setState({
|
|
463
|
+
dialog: {
|
|
464
|
+
open: false
|
|
465
|
+
}
|
|
466
|
+
});
|
|
467
|
+
},
|
|
468
|
+
onCancel: () => this.setState({
|
|
469
|
+
dialog: {
|
|
470
|
+
open: false
|
|
471
|
+
}
|
|
472
|
+
})
|
|
473
|
+
}
|
|
474
|
+
});
|
|
475
|
+
} else {
|
|
377
476
|
model.choices.push({
|
|
378
477
|
label: '',
|
|
379
478
|
value: utils$1.firstAvailableIndex(model.choices.map(c => c.value), 0),
|
|
@@ -385,7 +484,7 @@ class Main extends React$1.Component {
|
|
|
385
484
|
}
|
|
386
485
|
};
|
|
387
486
|
}
|
|
388
|
-
|
|
487
|
+
__init4() {
|
|
389
488
|
this.onChoiceChanged = (index, choice) => {
|
|
390
489
|
const {model} = this.props;
|
|
391
490
|
if (choice.correct && model.choiceMode === 'radio') {
|
|
@@ -399,7 +498,7 @@ class Main extends React$1.Component {
|
|
|
399
498
|
this.props.onModelChanged(model);
|
|
400
499
|
};
|
|
401
500
|
}
|
|
402
|
-
|
|
501
|
+
__init5() {
|
|
403
502
|
this.onPromptChanged = prompt => {
|
|
404
503
|
this.props.onModelChanged({
|
|
405
504
|
...this.props.model,
|
|
@@ -407,7 +506,7 @@ class Main extends React$1.Component {
|
|
|
407
506
|
});
|
|
408
507
|
};
|
|
409
508
|
}
|
|
410
|
-
|
|
509
|
+
__init6() {
|
|
411
510
|
this.onTeacherInstructionsChanged = teacherInstructions => {
|
|
412
511
|
this.props.onModelChanged({
|
|
413
512
|
...this.props.model,
|
|
@@ -415,7 +514,7 @@ class Main extends React$1.Component {
|
|
|
415
514
|
});
|
|
416
515
|
};
|
|
417
516
|
}
|
|
418
|
-
|
|
517
|
+
__init7() {
|
|
419
518
|
this.onModelChanged = (model, key) => {
|
|
420
519
|
const {onModelChanged} = this.props;
|
|
421
520
|
switch (key) {
|
|
@@ -445,7 +544,18 @@ class Main extends React$1.Component {
|
|
|
445
544
|
};
|
|
446
545
|
}
|
|
447
546
|
render() {
|
|
448
|
-
|
|
547
|
+
const {dialog} = this.state;
|
|
548
|
+
return React$1.createElement(React$1.Fragment, null, React$1.createElement(InfoDialog, {
|
|
549
|
+
open: dialog.open,
|
|
550
|
+
title: dialog.message,
|
|
551
|
+
onCancel: dialog.onCancel,
|
|
552
|
+
onOk: dialog.onOk,
|
|
553
|
+
__self: this,
|
|
554
|
+
__source: {
|
|
555
|
+
fileName: _jsxFileName,
|
|
556
|
+
lineNumber: 505
|
|
557
|
+
}
|
|
558
|
+
}), React$1.createElement(Design, {
|
|
449
559
|
...this.props,
|
|
450
560
|
onChangeModel: this.onModelChanged,
|
|
451
561
|
onRemoveChoice: this.onRemoveChoice,
|
|
@@ -456,9 +566,9 @@ class Main extends React$1.Component {
|
|
|
456
566
|
__self: this,
|
|
457
567
|
__source: {
|
|
458
568
|
fileName: _jsxFileName,
|
|
459
|
-
lineNumber:
|
|
569
|
+
lineNumber: 511
|
|
460
570
|
}
|
|
461
|
-
});
|
|
571
|
+
}));
|
|
462
572
|
}
|
|
463
573
|
}
|
|
464
574
|
Main.__initStatic();
|
|
@@ -475,7 +585,6 @@ var sensibleDefaults = {
|
|
|
475
585
|
feedbackEnabled: true,
|
|
476
586
|
promptEnabled: true,
|
|
477
587
|
rationaleEnabled: true,
|
|
478
|
-
limitChoicesNumber: true,
|
|
479
588
|
teacherInstructionsEnabled: true,
|
|
480
589
|
studentInstructionsEnabled: true,
|
|
481
590
|
toolbarEditorPosition: 'bottom',
|
|
@@ -495,10 +604,6 @@ var sensibleDefaults = {
|
|
|
495
604
|
settings: true,
|
|
496
605
|
label: 'Add a Choice'
|
|
497
606
|
},
|
|
498
|
-
limitChoicesNumber: {
|
|
499
|
-
settings: true,
|
|
500
|
-
label: 'Limit choices to 9'
|
|
501
|
-
},
|
|
502
607
|
choiceMode: {
|
|
503
608
|
settings: true,
|
|
504
609
|
label: 'Response Type'
|
|
@@ -549,7 +654,9 @@ var sensibleDefaults = {
|
|
|
549
654
|
toolbarEditorPosition: {
|
|
550
655
|
settings: false,
|
|
551
656
|
label: 'Toolbar Editor Position'
|
|
552
|
-
}
|
|
657
|
+
},
|
|
658
|
+
minAnswerChoices: 2,
|
|
659
|
+
maxAnswerChoices: 5
|
|
553
660
|
}
|
|
554
661
|
};
|
|
555
662
|
const React = _dll_react;
|