@pie-element/match 4.6.0 → 4.6.1-beta.587
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 +508 -0
- package/configure/CHANGELOG.md +465 -0
- package/configure/lib/add-row.js +1 -1
- package/configure/lib/add-row.js.map +1 -1
- package/configure/lib/answer-config-block.js +151 -51
- package/configure/lib/answer-config-block.js.map +1 -1
- package/configure/lib/common.js +46 -0
- package/configure/lib/common.js.map +1 -0
- package/configure/lib/configure.js +98 -36
- package/configure/lib/configure.js.map +1 -1
- package/configure/lib/defaults.js +31 -2
- package/configure/lib/defaults.js.map +1 -1
- package/configure/lib/general-config-block.js +86 -33
- package/configure/lib/general-config-block.js.map +1 -1
- package/configure/lib/index.js +18 -4
- package/configure/lib/index.js.map +1 -1
- package/configure/lib/row.js +122 -34
- package/configure/lib/row.js.map +1 -1
- package/configure/package.json +7 -7
- package/configure/utils.js +12 -0
- package/controller/CHANGELOG.md +103 -0
- package/controller/lib/defaults.js.map +1 -1
- package/controller/lib/index.js +159 -16
- package/controller/lib/index.js.map +1 -1
- package/controller/package.json +3 -3
- package/docs/config-schema.json +153 -0
- package/docs/config-schema.json.md +117 -1
- package/docs/demo/config.js +2 -2
- package/docs/demo/generate.js +11 -9
- package/docs/pie-schema.json +48 -0
- package/docs/pie-schema.json.md +39 -0
- package/lib/answer-grid.js +12 -12
- package/lib/answer-grid.js.map +1 -1
- package/lib/index.js +7 -2
- package/lib/index.js.map +1 -1
- package/lib/main.js +16 -20
- package/lib/main.js.map +1 -1
- package/package.json +6 -5
package/lib/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/main.jsx"],"names":["Main","props","model","config","answers","rows","forEach","row","id","Array","layout","fill","nextProps","isRequired","choiceMode","length","session","Object","keys","onSessionChange","state","show","setState","showCorrect","newAnswers","callOnSessionChange","generateAnswers","regenAnswers","isAnswerRegenerationRequired","disabled","classes","mainContainer","teacherInstructions","hidden","visible","collapsible","__html","prompt","main","toggle","correctness","toggleShowCorrect","allowFeedback","correctResponse","view","onAnswerChange","headers","rationale","feedback","React","Component","PropTypes","object","func","styles","theme","color","text","backgroundColor","background","display","flexDirection","justifyContent","width","paddingBottom","spacing","unit","verticalAlign","marginBottom","paddingTop"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport CorrectAnswerToggle from '@pie-lib/correct-answer-toggle';\nimport { color, Collapsible, Feedback, hasText } from '@pie-lib/render-ui';\nimport AnswerGrid from './answer-grid';\nimport { withStyles } from '@material-ui/core/styles';\n\nexport class Main extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n session: PropTypes.object.isRequired,\n onSessionChange: PropTypes.func,\n model: PropTypes.object.isRequired\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n session: {\n ...props.session,\n answers:\n (props.session && props.session.answers) ||\n this.generateAnswers(props.model)\n },\n showCorrect: false\n };\n\n this.callOnSessionChange();\n }\n\n generateAnswers = model => {\n const { config } = model;\n const answers = {};\n\n config.rows.forEach(row => {\n answers[row.id] = new Array(config.layout - 1).fill(false);\n });\n\n return answers;\n };\n\n isAnswerRegenerationRequired = nextProps => {\n let isRequired = false;\n\n if (\n this.props.model.config.choiceMode !== nextProps.model.config.choiceMode\n ) {\n isRequired = true;\n }\n\n if (this.props.model.config.layout !== nextProps.model.config.layout) {\n isRequired = true;\n }\n\n if (\n this.props.model.config.rows.length !==\n nextProps.model.config.rows.length ||\n (nextProps.session.answers &&\n nextProps.model.config.rows.length !==\n Object.keys(nextProps.session.answers).length)\n ) {\n isRequired = true;\n }\n\n return isRequired || !nextProps.session.answers;\n };\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n const regenAnswers = this.isAnswerRegenerationRequired(nextProps);\n\n this.setState(\n state => ({\n session: {\n ...nextProps.session,\n // regenerate answers if layout or choiceMode change\n answers: regenAnswers\n ? this.generateAnswers(nextProps.model)\n : nextProps.session.answers\n },\n showCorrect:\n this.props.model.disabled &&\n !nextProps.model.disabled &&\n state.showCorrect\n ? false\n : state.showCorrect\n }),\n () => {\n if (regenAnswers) this.callOnSessionChange();\n }\n );\n }\n\n callOnSessionChange = () => {\n const { onSessionChange } = this.props;\n\n if (onSessionChange) {\n onSessionChange(this.state.session);\n }\n };\n\n toggleShowCorrect = show => {\n this.setState({ showCorrect: show });\n };\n\n onAnswerChange = newAnswers => {\n this.setState(\n state => ({\n session: {\n ...state.session,\n answers: newAnswers\n }\n }),\n this.callOnSessionChange\n );\n };\n\n render() {\n const { model, classes } = this.props;\n const { showCorrect, session } = this.state;\n\n return (\n <div className={classes.mainContainer}>\n {model.teacherInstructions && hasText(model.teacherInstructions) && (\n <Collapsible\n labels={{\n hidden: 'Show Teacher Instructions',\n visible: 'Hide Teacher Instructions'\n }}\n className={classes.collapsible}\n >\n <div\n dangerouslySetInnerHTML={{ __html: model.teacherInstructions }}\n />\n </Collapsible>\n )}\n\n {model.prompt && (\n <div\n className={classes.prompt}\n dangerouslySetInnerHTML={{ __html: model.prompt }}\n />\n )}\n\n <div className={classes.main}>\n <CorrectAnswerToggle\n className={classes.toggle}\n show={\n model.correctness &&\n model.correctness.correctness &&\n model.correctness.correctness !== 'correct'\n }\n toggled={showCorrect}\n onToggle={this.toggleShowCorrect}\n />\n <AnswerGrid\n showCorrect={showCorrect}\n allowFeedback={model.allowFeedback}\n correctAnswers={model.correctResponse}\n disabled={model.disabled}\n view={model.view}\n onAnswerChange={this.onAnswerChange}\n choiceMode={model.config.choiceMode}\n answers={showCorrect ? model.correctResponse : session.answers}\n headers={model.config.headers}\n rows={model.config.rows}\n />\n </div>\n {model.rationale && hasText(model.rationale) && (\n <Collapsible\n labels={{ hidden: 'Show Rationale', visible: 'Hide Rationale' }}\n className={classes.collapsible}\n >\n <div dangerouslySetInnerHTML={{ __html: model.rationale }} />\n </Collapsible>\n )}\n {model.feedback && (\n <Feedback\n correctness={model.correctness.correctness}\n feedback={model.feedback}\n />\n )}\n </div>\n );\n }\n}\n\nconst styles = theme => ({\n mainContainer: {\n color: color.text(),\n backgroundColor: color.background(),\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center'\n },\n main: {\n width: '100%'\n },\n toggle: {\n paddingBottom: theme.spacing.unit * 3\n },\n prompt: {\n verticalAlign: 'middle',\n marginBottom: theme.spacing.unit * 2\n },\n collapsible: {\n paddingTop: theme.spacing.unit * 2,\n paddingBottom: theme.spacing.unit * 2\n }\n});\n\nexport default withStyles(styles)(Main);\n"],"file":"main.js"}
|
|
1
|
+
{"version":3,"sources":["../src/main.jsx"],"names":["Main","props","model","config","answers","rows","forEach","row","id","Array","layout","fill","nextProps","isRequired","choiceMode","length","session","Object","keys","onSessionChange","state","show","setState","showCorrect","newAnswers","callOnSessionChange","generateAnswers","regenAnswers","isAnswerRegenerationRequired","disabled","classes","correctness","showCorrectAnswerToggle","mainContainer","teacherInstructions","hidden","visible","collapsible","prompt","main","toggleShowCorrect","correctResponse","view","onAnswerChange","headers","rationale","feedback","React","Component","PropTypes","object","func","styles","theme","color","text","backgroundColor","background","display","flexDirection","justifyContent","width","toggle","paddingBottom","spacing","unit","verticalAlign","marginBottom","paddingTop"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;IAEaA,I;;;;;AAQX,gBAAYC,KAAZ,EAAmB;AAAA;;AAAA;AACjB,8BAAMA,KAAN;AADiB,wGAcD,UAACC,KAAD,EAAW;AAC3B,UAAQC,MAAR,GAAmBD,KAAnB,CAAQC,MAAR;AACA,UAAMC,OAAO,GAAG,EAAhB;AAEAD,MAAAA,MAAM,CAACE,IAAP,CAAYC,OAAZ,CAAoB,UAACC,GAAD,EAAS;AAC3BH,QAAAA,OAAO,CAACG,GAAG,CAACC,EAAL,CAAP,GAAkB,IAAIC,KAAJ,CAAUN,MAAM,CAACO,MAAP,GAAgB,CAA1B,EAA6BC,IAA7B,CAAkC,KAAlC,CAAlB;AACD,OAFD;AAIA,aAAOP,OAAP;AACD,KAvBkB;AAAA,qHAyBY,UAACQ,SAAD,EAAe;AAC5C,UAAIC,UAAU,GAAG,KAAjB;;AAEA,UAAI,MAAKZ,KAAL,CAAWC,KAAX,CAAiBC,MAAjB,CAAwBW,UAAxB,KAAuCF,SAAS,CAACV,KAAV,CAAgBC,MAAhB,CAAuBW,UAAlE,EAA8E;AAC5ED,QAAAA,UAAU,GAAG,IAAb;AACD;;AAED,UAAI,MAAKZ,KAAL,CAAWC,KAAX,CAAiBC,MAAjB,CAAwBO,MAAxB,KAAmCE,SAAS,CAACV,KAAV,CAAgBC,MAAhB,CAAuBO,MAA9D,EAAsE;AACpEG,QAAAA,UAAU,GAAG,IAAb;AACD;;AAED,UACE,MAAKZ,KAAL,CAAWC,KAAX,CAAiBC,MAAjB,CAAwBE,IAAxB,CAA6BU,MAA7B,KAAwCH,SAAS,CAACV,KAAV,CAAgBC,MAAhB,CAAuBE,IAAvB,CAA4BU,MAApE,IACCH,SAAS,CAACI,OAAV,CAAkBZ,OAAlB,IACCQ,SAAS,CAACV,KAAV,CAAgBC,MAAhB,CAAuBE,IAAvB,CAA4BU,MAA5B,KAAuCE,MAAM,CAACC,IAAP,CAAYN,SAAS,CAACI,OAAV,CAAkBZ,OAA9B,EAAuCW,MAHlF,EAIE;AACAF,QAAAA,UAAU,GAAG,IAAb;AACD;;AAED,aAAOA,UAAU,IAAI,CAACD,SAAS,CAACI,OAAV,CAAkBZ,OAAxC;AACD,KA7CkB;AAAA,4GAkEG,YAAM;AAC1B,UAAQe,eAAR,GAA4B,MAAKlB,KAAjC,CAAQkB,eAAR;;AAEA,UAAIA,eAAJ,EAAqB;AACnBA,QAAAA,eAAe,CAAC,MAAKC,KAAL,CAAWJ,OAAZ,CAAf;AACD;AACF,KAxEkB;AAAA,0GA0EC,UAACK,IAAD,EAAU;AAC5B,YAAKC,QAAL,CAAc;AAAEC,QAAAA,WAAW,EAAEF;AAAf,OAAd;AACD,KA5EkB;AAAA,uGA8EF,UAACG,UAAD,EAAgB;AAC/B,YAAKF,QAAL,CACE,UAACF,KAAD;AAAA,eAAY;AACVJ,UAAAA,OAAO,kCACFI,KAAK,CAACJ,OADJ;AAELZ,YAAAA,OAAO,EAAEoB;AAFJ;AADG,SAAZ;AAAA,OADF,EAOE,MAAKC,mBAPP;AASD,KAxFkB;AAGjB,UAAKL,KAAL,GAAa;AACXJ,MAAAA,OAAO,kCACFf,KAAK,CAACe,OADJ;AAELZ,QAAAA,OAAO,EAAGH,KAAK,CAACe,OAAN,IAAiBf,KAAK,CAACe,OAAN,CAAcZ,OAAhC,IAA4C,MAAKsB,eAAL,CAAqBzB,KAAK,CAACC,KAA3B;AAFhD,QADI;AAKXqB,MAAAA,WAAW,EAAE;AALF,KAAb;;AAQA,UAAKE,mBAAL;;AAXiB;AAYlB;;;;WAmCD,0CAAiCb,SAAjC,EAA4C;AAAA;;AAC1C,UAAMe,YAAY,GAAG,KAAKC,4BAAL,CAAkChB,SAAlC,CAArB;AAEA,WAAKU,QAAL,CACE,UAACF,KAAD;AAAA,eAAY;AACVJ,UAAAA,OAAO,kCACFJ,SAAS,CAACI,OADR;AAEL;AACAZ,YAAAA,OAAO,EAAEuB,YAAY,GAAG,MAAI,CAACD,eAAL,CAAqBd,SAAS,CAACV,KAA/B,CAAH,GAA2CU,SAAS,CAACI,OAAV,CAAkBZ;AAH7E,YADG;AAMVmB,UAAAA,WAAW,EACT,MAAI,CAACtB,KAAL,CAAWC,KAAX,CAAiB2B,QAAjB,IAA6B,CAACjB,SAAS,CAACV,KAAV,CAAgB2B,QAA9C,IAA0DT,KAAK,CAACG,WAAhE,GAA8E,KAA9E,GAAsFH,KAAK,CAACG;AAPpF,SAAZ;AAAA,OADF,EAUE,YAAM;AACJ,YAAII,YAAJ,EAAkB,MAAI,CAACF,mBAAL;AACnB,OAZH;AAcD;;;WA0BD,kBAAS;AACP,wBAA2B,KAAKxB,KAAhC;AAAA,UAAQC,KAAR,eAAQA,KAAR;AAAA,UAAe4B,OAAf,eAAeA,OAAf;AACA,wBAAiC,KAAKV,KAAtC;AAAA,UAAQG,WAAR,eAAQA,WAAR;AAAA,UAAqBP,OAArB,eAAqBA,OAArB;AACA,+BAA6Bd,KAA7B,CAAQ6B,WAAR;AAAA,UAAQA,WAAR,mCAAsB,EAAtB;AACA,UAAMC,uBAAuB,GAAGD,WAAW,CAACA,WAAZ,IAA2BA,WAAW,CAACA,WAAZ,KAA4B,SAAvF;AAEA,0BACE;AAAK,QAAA,SAAS,EAAED,OAAO,CAACG;AAAxB,SACG/B,KAAK,CAACgC,mBAAN,IAA6B,uBAAQhC,KAAK,CAACgC,mBAAd,CAA7B,iBACC,gCAAC,qBAAD;AACE,QAAA,MAAM,EAAE;AACNC,UAAAA,MAAM,EAAE,2BADF;AAENC,UAAAA,OAAO,EAAE;AAFH,SADV;AAKE,QAAA,SAAS,EAAEN,OAAO,CAACO;AALrB,sBAOE,gCAAC,uBAAD;AAAe,QAAA,MAAM,EAAEnC,KAAK,CAACgC;AAA7B,QAPF,CAFJ,EAaGhC,KAAK,CAACoC,MAAN,iBACC;AAAK,QAAA,SAAS,EAAER,OAAO,CAACQ;AAAxB,sBACE,gCAAC,uBAAD;AAAe,QAAA,MAAM,EAAEpC,KAAK,CAACoC;AAA7B,QADF,CAdJ,eAmBE;AAAK,QAAA,SAAS,EAAER,OAAO,CAACS;AAAxB,sBACE,gCAAC,+BAAD;AAAqB,QAAA,IAAI,EAAEP,uBAA3B;AAAoD,QAAA,OAAO,EAAET,WAA7D;AAA0E,QAAA,QAAQ,EAAE,KAAKiB;AAAzF,QADF,EAEGR,uBAAuB,iBAAI,2CAF9B,eAGE,gCAAC,sBAAD;AACE,QAAA,WAAW,EAAET,WADf;AAEE,QAAA,cAAc,EAAErB,KAAK,CAACuC,eAFxB;AAGE,QAAA,QAAQ,EAAEvC,KAAK,CAAC2B,QAHlB;AAIE,QAAA,IAAI,EAAE3B,KAAK,CAACwC,IAJd;AAKE,QAAA,cAAc,EAAE,KAAKC,cALvB;AAME,QAAA,UAAU,EAAEzC,KAAK,CAACC,MAAN,CAAaW,UAN3B;AAOE,QAAA,OAAO,EAAES,WAAW,GAAGrB,KAAK,CAACuC,eAAT,GAA2BzB,OAAO,CAACZ,OAPzD;AAQE,QAAA,OAAO,EAAEF,KAAK,CAACC,MAAN,CAAayC,OARxB;AASE,QAAA,IAAI,EAAE1C,KAAK,CAACC,MAAN,CAAaE;AATrB,QAHF,CAnBF,EAkCGH,KAAK,CAAC2C,SAAN,IAAmB,uBAAQ3C,KAAK,CAAC2C,SAAd,CAAnB,iBACC,gCAAC,qBAAD;AAAa,QAAA,MAAM,EAAE;AAAEV,UAAAA,MAAM,EAAE,gBAAV;AAA4BC,UAAAA,OAAO,EAAE;AAArC,SAArB;AAA8E,QAAA,SAAS,EAAEN,OAAO,CAACO;AAAjG,sBACE,gCAAC,uBAAD;AAAe,QAAA,MAAM,EAAEnC,KAAK,CAAC2C;AAA7B,QADF,CAnCJ,EAuCG3C,KAAK,CAAC4C,QAAN,iBAAkB,gCAAC,kBAAD;AAAU,QAAA,WAAW,EAAE5C,KAAK,CAAC6B,WAAN,CAAkBA,WAAzC;AAAsD,QAAA,QAAQ,EAAE7B,KAAK,CAAC4C;AAAtE,QAvCrB,CADF;AA2CD;;;EAnJuBC,kBAAMC,S;;;iCAAnBhD,I,eACQ;AACjB8B,EAAAA,OAAO,EAAEmB,sBAAUC,MADF;AAEjBlC,EAAAA,OAAO,EAAEiC,sBAAUC,MAAV,CAAiBrC,UAFT;AAGjBM,EAAAA,eAAe,EAAE8B,sBAAUE,IAHV;AAIjBjD,EAAAA,KAAK,EAAE+C,sBAAUC,MAAV,CAAiBrC;AAJP,C;;AAqJrB,IAAMuC,MAAM,GAAG,SAATA,MAAS,CAACC,KAAD;AAAA,SAAY;AACzBpB,IAAAA,aAAa,EAAE;AACbqB,MAAAA,KAAK,EAAEA,gBAAMC,IAAN,EADM;AAEbC,MAAAA,eAAe,EAAEF,gBAAMG,UAAN,EAFJ;AAGbC,MAAAA,OAAO,EAAE,MAHI;AAIbC,MAAAA,aAAa,EAAE,QAJF;AAKbC,MAAAA,cAAc,EAAE;AALH,KADU;AAQzBrB,IAAAA,IAAI,EAAE;AACJsB,MAAAA,KAAK,EAAE;AADH,KARmB;AAWzBC,IAAAA,MAAM,EAAE;AACNC,MAAAA,aAAa,EAAEV,KAAK,CAACW,OAAN,CAAcC,IAAd,GAAqB;AAD9B,KAXiB;AAczB3B,IAAAA,MAAM,EAAE;AACN4B,MAAAA,aAAa,EAAE,QADT;AAENC,MAAAA,YAAY,EAAEd,KAAK,CAACW,OAAN,CAAcC,IAAd,GAAqB;AAF7B,KAdiB;AAkBzB5B,IAAAA,WAAW,EAAE;AACX+B,MAAAA,UAAU,EAAEf,KAAK,CAACW,OAAN,CAAcC,IAAd,GAAqB,CADtB;AAEXF,MAAAA,aAAa,EAAEV,KAAK,CAACW,OAAN,CAAcC,IAAd,GAAqB;AAFzB;AAlBY,GAAZ;AAAA,CAAf;;eAwBe,wBAAWb,MAAX,EAAmBpD,IAAnB,C","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport CorrectAnswerToggle from '@pie-lib/correct-answer-toggle';\nimport { color, Collapsible, Feedback, hasText, PreviewPrompt } from '@pie-lib/render-ui';\nimport AnswerGrid from './answer-grid';\nimport { withStyles } from '@material-ui/core/styles';\n\nexport class Main extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n session: PropTypes.object.isRequired,\n onSessionChange: PropTypes.func,\n model: PropTypes.object.isRequired,\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n session: {\n ...props.session,\n answers: (props.session && props.session.answers) || this.generateAnswers(props.model),\n },\n showCorrect: false,\n };\n\n this.callOnSessionChange();\n }\n\n generateAnswers = (model) => {\n const { config } = model;\n const answers = {};\n\n config.rows.forEach((row) => {\n answers[row.id] = new Array(config.layout - 1).fill(false);\n });\n\n return answers;\n };\n\n isAnswerRegenerationRequired = (nextProps) => {\n let isRequired = false;\n\n if (this.props.model.config.choiceMode !== nextProps.model.config.choiceMode) {\n isRequired = true;\n }\n\n if (this.props.model.config.layout !== nextProps.model.config.layout) {\n isRequired = true;\n }\n\n if (\n this.props.model.config.rows.length !== nextProps.model.config.rows.length ||\n (nextProps.session.answers &&\n nextProps.model.config.rows.length !== Object.keys(nextProps.session.answers).length)\n ) {\n isRequired = true;\n }\n\n return isRequired || !nextProps.session.answers;\n };\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n const regenAnswers = this.isAnswerRegenerationRequired(nextProps);\n\n this.setState(\n (state) => ({\n session: {\n ...nextProps.session,\n // regenerate answers if layout or choiceMode change\n answers: regenAnswers ? this.generateAnswers(nextProps.model) : nextProps.session.answers,\n },\n showCorrect:\n this.props.model.disabled && !nextProps.model.disabled && state.showCorrect ? false : state.showCorrect,\n }),\n () => {\n if (regenAnswers) this.callOnSessionChange();\n },\n );\n }\n\n callOnSessionChange = () => {\n const { onSessionChange } = this.props;\n\n if (onSessionChange) {\n onSessionChange(this.state.session);\n }\n };\n\n toggleShowCorrect = (show) => {\n this.setState({ showCorrect: show });\n };\n\n onAnswerChange = (newAnswers) => {\n this.setState(\n (state) => ({\n session: {\n ...state.session,\n answers: newAnswers,\n },\n }),\n this.callOnSessionChange,\n );\n };\n\n render() {\n const { model, classes } = this.props;\n const { showCorrect, session } = this.state;\n const { correctness = {} } = model;\n const showCorrectAnswerToggle = correctness.correctness && correctness.correctness !== 'correct';\n\n return (\n <div className={classes.mainContainer}>\n {model.teacherInstructions && hasText(model.teacherInstructions) && (\n <Collapsible\n labels={{\n hidden: 'Show Teacher Instructions',\n visible: 'Hide Teacher Instructions',\n }}\n className={classes.collapsible}\n >\n <PreviewPrompt prompt={model.teacherInstructions} />\n </Collapsible>\n )}\n\n {model.prompt && (\n <div className={classes.prompt}>\n <PreviewPrompt prompt={model.prompt} />\n </div>\n )}\n\n <div className={classes.main}>\n <CorrectAnswerToggle show={showCorrectAnswerToggle} toggled={showCorrect} onToggle={this.toggleShowCorrect} />\n {showCorrectAnswerToggle && <br />}\n <AnswerGrid\n showCorrect={showCorrect}\n correctAnswers={model.correctResponse}\n disabled={model.disabled}\n view={model.view}\n onAnswerChange={this.onAnswerChange}\n choiceMode={model.config.choiceMode}\n answers={showCorrect ? model.correctResponse : session.answers}\n headers={model.config.headers}\n rows={model.config.rows}\n />\n </div>\n {model.rationale && hasText(model.rationale) && (\n <Collapsible labels={{ hidden: 'Show Rationale', visible: 'Hide Rationale' }} className={classes.collapsible}>\n <PreviewPrompt prompt={model.rationale} />\n </Collapsible>\n )}\n {model.feedback && <Feedback correctness={model.correctness.correctness} feedback={model.feedback} />}\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n mainContainer: {\n color: color.text(),\n backgroundColor: color.background(),\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n },\n main: {\n width: '100%',\n },\n toggle: {\n paddingBottom: theme.spacing.unit * 3,\n },\n prompt: {\n verticalAlign: 'middle',\n marginBottom: theme.spacing.unit * 2,\n },\n collapsible: {\n paddingTop: theme.spacing.unit * 2,\n paddingBottom: theme.spacing.unit * 2,\n },\n});\n\nexport default withStyles(styles)(Main);\n"],"file":"main.js"}
|
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
6
|
"repository": "pie-framework/pie-elements",
|
|
7
|
-
"version": "4.6.
|
|
7
|
+
"version": "4.6.1-beta.587+40df32c2f",
|
|
8
8
|
"main": "lib/index.js",
|
|
9
9
|
"description": "",
|
|
10
10
|
"scripts": {
|
|
@@ -14,11 +14,12 @@
|
|
|
14
14
|
"dependencies": {
|
|
15
15
|
"@material-ui/core": "^3.9.2",
|
|
16
16
|
"@pie-framework/pie-player-events": "^0.1.0",
|
|
17
|
-
"@pie-lib/correct-answer-toggle": "^2.3.
|
|
18
|
-
"@pie-lib/math-rendering": "^2.
|
|
19
|
-
"@pie-lib/render-ui": "^4.
|
|
17
|
+
"@pie-lib/correct-answer-toggle": "^2.3.62",
|
|
18
|
+
"@pie-lib/math-rendering": "^2.5.12",
|
|
19
|
+
"@pie-lib/render-ui": "^4.14.12",
|
|
20
20
|
"classnames": "^2.2.5",
|
|
21
21
|
"debug": "^4.1.1",
|
|
22
|
+
"is-plain-object": "^5.0.0",
|
|
22
23
|
"lodash": "^4.17.10",
|
|
23
24
|
"prop-types": "^15.6.1",
|
|
24
25
|
"react": "^16.8.1",
|
|
@@ -26,6 +27,6 @@
|
|
|
26
27
|
},
|
|
27
28
|
"author": "",
|
|
28
29
|
"license": "ISC",
|
|
29
|
-
"gitHead": "
|
|
30
|
+
"gitHead": "40df32c2f78966706cb168843567c9df174f1d88",
|
|
30
31
|
"module": "src/index.js"
|
|
31
32
|
}
|