@pie-element/fraction-model 2.1.6-next.3 → 2.2.1-next.0
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 +16 -0
- package/configure/CHANGELOG.md +16 -0
- package/configure/lib/main.js +2 -0
- package/configure/lib/main.js.map +1 -1
- package/configure/package.json +2 -2
- package/controller/CHANGELOG.md +11 -0
- package/controller/package.json +2 -2
- package/lib/main.js +4 -1
- package/lib/main.js.map +1 -1
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,22 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [2.2.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/fraction-model@2.1.5...@pie-element/fraction-model@2.2.0) (2024-10-29)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* fixed all tests after updating pie-toolbox [PD-1460] ([9f5293d](https://github.com/pie-framework/pie-elements/commit/9f5293d618edc06f69fabb27a042ec5eee66e151))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
### Features
|
|
15
|
+
|
|
16
|
+
* used configlayout, preview layout or uilayout to enable extraCSSRules inside author and player elements [PD-1460] ([eeebb02](https://github.com/pie-framework/pie-elements/commit/eeebb02f200208620c1af56366a22bf65944ba3e))
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
6
22
|
## [2.1.5](https://github.com/pie-framework/pie-elements/compare/@pie-element/fraction-model@2.1.4...@pie-element/fraction-model@2.1.5) (2024-10-28)
|
|
7
23
|
|
|
8
24
|
|
package/configure/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,22 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [2.1.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/fraction-model-configure@2.0.7...@pie-element/fraction-model-configure@2.1.0) (2024-10-29)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* fixed all tests after updating pie-toolbox [PD-1460] ([9f5293d](https://github.com/pie-framework/pie-elements/commit/9f5293d618edc06f69fabb27a042ec5eee66e151))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
### Features
|
|
15
|
+
|
|
16
|
+
* used configlayout, preview layout or uilayout to enable extraCSSRules inside author and player elements [PD-1460] ([eeebb02](https://github.com/pie-framework/pie-elements/commit/eeebb02f200208620c1af56366a22bf65944ba3e))
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
6
22
|
## [2.0.7](https://github.com/pie-framework/pie-elements/compare/@pie-element/fraction-model-configure@2.0.6...@pie-element/fraction-model-configure@2.0.7) (2024-10-28)
|
|
7
23
|
|
|
8
24
|
|
package/configure/lib/main.js
CHANGED
|
@@ -160,6 +160,7 @@ var Main = /*#__PURE__*/function (_React$Component) {
|
|
|
160
160
|
var _ref2 = model || {},
|
|
161
161
|
_ref2$errors = _ref2.errors,
|
|
162
162
|
errors = _ref2$errors === void 0 ? {} : _ref2$errors,
|
|
163
|
+
extraCSSRules = _ref2.extraCSSRules,
|
|
163
164
|
spellCheckEnabled = _ref2.spellCheckEnabled,
|
|
164
165
|
toolbarEditorPosition = _ref2.toolbarEditorPosition;
|
|
165
166
|
|
|
@@ -175,6 +176,7 @@ var Main = /*#__PURE__*/function (_React$Component) {
|
|
|
175
176
|
|
|
176
177
|
var fractionModelChartKey = this.generateRandomKey();
|
|
177
178
|
return /*#__PURE__*/_react["default"].createElement(_configUi.layout.ConfigLayout, {
|
|
179
|
+
extraCSSRules: extraCSSRules,
|
|
178
180
|
dimensions: contentDimensions,
|
|
179
181
|
hideSettings: true
|
|
180
182
|
}, /*#__PURE__*/_react["default"].createElement(_cardBar["default"], {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/main.jsx"],"names":["styles","theme","label","marginBottom","spacing","unit","tooltip","fontSize","typography","whiteSpace","maxWidth","errorText","color","palette","error","main","paddingTop","flexRow","display","alignItems","gap","errorMessage","marginTop","modelError","border","Main","props","correctResponse","model","onChange","oldModel","newModel","showDiag","length","setState","correctAnswerChangeDialog","open","text","Math","floor","random","state","classes","configuration","imageSupport","uploadSoundSupport","baseInputConfiguration","contentDimensions","title","prompt","modelOptions","mathMlOptions","errors","spellCheckEnabled","toolbarEditorPosition","toolbarOpts","position","getPluginProps","fractionModelChartKey","generateRandomKey","inputConfiguration","language","onModelOptionsChange","marginLeft","modelTypeSelected","maxModelSelected","partsPerModel","showGraphLabels","onCorrectAnswerChange","React","Component","PropTypes","object","isRequired","onConfigurationChanged","func","name"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { FormSection, layout, AlertDialog } from '@pie-lib/pie-toolbox/config-ui';\nimport { EditableHtml } from '@pie-lib/pie-toolbox/editable-html';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport CardBar from './card-bar';\nimport ModelOptions from './model-options';\nimport { FractionModelChart } from '@pie-element/fraction-model';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport Info from '@material-ui/icons/Info';\n\nconst styles = (theme) => ({\n label: {\n marginBottom: theme.spacing.unit * 4,\n },\n tooltip: {\n fontSize: theme.typography.fontSize - 2,\n whiteSpace: 'pre',\n maxWidth: '500px',\n },\n errorText: {\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingTop: theme.spacing.unit,\n },\n flexRow: {\n display: 'flex',\n alignItems: 'center',\n gap: '10px',\n },\n errorMessage: {\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n marginTop: theme.spacing.unit,\n },\n modelError: {\n border: `2px solid ${theme.palette.error.main}`,\n },\n});\n\nexport class Main extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n onConfigurationChanged: PropTypes.func.isRequired,\n onChange: PropTypes.func.isRequired,\n uploadSoundSupport: PropTypes.object.isRequired,\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n correctAnswerChangeDialog: {\n open: false,\n text: '',\n },\n };\n }\n\n /*\n * Method to handle correct answer change\n * @param {array} correctResponse - correct response\n * */\n onCorrectAnswerChange = (correctResponse) => {\n const { model, onChange } = this.props;\n model.correctResponse = correctResponse;\n onChange({ ...model });\n };\n\n /*\n * Method to handle model options change\n * @param {object} oldModel - old model\n * @param {object} newModel - new model\n * @param {boolean} showDiag - show dialog or not\n * */\n onModelOptionsChange = (oldModel, newModel, showDiag) => {\n const { onChange } = this.props;\n if (showDiag && oldModel.correctResponse.length > 0) {\n this.setState({\n correctAnswerChangeDialog: {\n open: true,\n oldModel: oldModel,\n newModel: newModel,\n text: 'Changing either the Number of Models or Parts per Model will remove added correct answer. Are you sure you want to continue?',\n },\n });\n } else {\n onChange({ ...newModel });\n }\n };\n\n /*\n * Method to generate random key\n * */\n generateRandomKey = () => {\n return Math.floor(Math.random() * 10000);\n };\n\n render() {\n const { classes, model, onChange, configuration, imageSupport, uploadSoundSupport } = this.props;\n const {\n baseInputConfiguration = {},\n contentDimensions = {},\n title = {},\n prompt = {},\n modelOptions = {},\n mathMlOptions = {},\n } = configuration || {};\n\n const { errors = {}, spellCheckEnabled, toolbarEditorPosition } = model || {};\n\n const { correctAnswerChangeDialog } = this.state;\n\n const toolbarOpts = {\n position: toolbarEditorPosition === 'top' ? 'top' : 'bottom',\n };\n\n const getPluginProps = (props = {}) => ({\n ...baseInputConfiguration,\n ...props,\n });\n\n const fractionModelChartKey = this.generateRandomKey();\n\n return (\n <layout.ConfigLayout dimensions={contentDimensions} hideSettings={true}>\n <CardBar header=\"Set Up\"></CardBar>\n\n <FormSection label={title?.label || 'Title'} className={classes.label}>\n <EditableHtml\n className={classes.title}\n markup={model.title || ''}\n onChange={(title) => onChange({ title })}\n toolbarOpts={toolbarOpts}\n activePlugins={[\n 'bold',\n 'html',\n 'italic',\n 'underline',\n 'strikethrough',\n 'image',\n 'math',\n 'languageCharacters',\n 'responseArea',\n ]}\n pluginProps={getPluginProps(title?.inputConfiguration)}\n spellCheck={spellCheckEnabled}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n </FormSection>\n\n <FormSection label={prompt?.label || 'Question'} className={classes.label}>\n <EditableHtml\n markup={model.prompt || ''}\n minHeight={60}\n onChange={(prompt) => onChange({ prompt })}\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(prompt?.inputConfiguration)}\n spellCheck={spellCheckEnabled}\n uploadSoundSupport={uploadSoundSupport}\n imageSupport={imageSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n </FormSection>\n\n <FormSection>\n <ModelOptions model={model} onChange={this.onModelOptionsChange} modelOptions={modelOptions} />\n </FormSection>\n\n <FormSection>\n <CardBar\n header=\"Correct Answer\"\n info={\n <Tooltip\n classes={{ tooltip: classes.tooltip }}\n disableFocusListener\n disableTouchListener\n placement={'right'}\n title={'The correct answer should include no more than one partially-filled model'}\n >\n <Info fontSize={'small'} color={'primary'} style={{ marginLeft: '8px' }} />\n </Tooltip>\n }\n ></CardBar>\n\n <br />\n <label className={classes.label}>\n Click/touch the number of parts to represent the correct fraction model\n </label>\n <br />\n\n <div className={errors.correctResponse && classes.modelError}>\n <FractionModelChart\n key={fractionModelChartKey}\n value={model.correctResponse}\n modelType={model.modelTypeSelected}\n noOfModels={model.maxModelSelected}\n partsPerModel={model.partsPerModel}\n showLabel={model.showGraphLabels}\n onChange={this.onCorrectAnswerChange}\n ></FractionModelChart>\n </div>\n\n {errors.correctResponse && <div className={classes.errorMessage}>{errors.correctResponse}</div>}\n </FormSection>\n\n <AlertDialog\n open={correctAnswerChangeDialog.open}\n title=\"Warning\"\n text={correctAnswerChangeDialog.text}\n onConfirm={() => {\n let newModel = this.state.correctAnswerChangeDialog.newModel;\n newModel.correctResponse = [];\n onChange({ ...newModel });\n this.setState({\n correctAnswerChangeDialog: { open: false },\n });\n }}\n onClose={() => {\n const oldModel = this.state.correctAnswerChangeDialog.oldModel;\n onChange({ ...oldModel });\n this.setState({ correctAnswerChangeDialog: { open: false } });\n }}\n onConfirmText={'OK'}\n onCloseText={'Cancel'}\n />\n </layout.ConfigLayout>\n );\n }\n}\n\nexport default withStyles(styles, { name: 'Main' })(Main);\n"],"file":"main.js"}
|
|
1
|
+
{"version":3,"sources":["../src/main.jsx"],"names":["styles","theme","label","marginBottom","spacing","unit","tooltip","fontSize","typography","whiteSpace","maxWidth","errorText","color","palette","error","main","paddingTop","flexRow","display","alignItems","gap","errorMessage","marginTop","modelError","border","Main","props","correctResponse","model","onChange","oldModel","newModel","showDiag","length","setState","correctAnswerChangeDialog","open","text","Math","floor","random","state","classes","configuration","imageSupport","uploadSoundSupport","baseInputConfiguration","contentDimensions","title","prompt","modelOptions","mathMlOptions","errors","extraCSSRules","spellCheckEnabled","toolbarEditorPosition","toolbarOpts","position","getPluginProps","fractionModelChartKey","generateRandomKey","inputConfiguration","language","onModelOptionsChange","marginLeft","modelTypeSelected","maxModelSelected","partsPerModel","showGraphLabels","onCorrectAnswerChange","React","Component","PropTypes","object","isRequired","onConfigurationChanged","func","name"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;AAEA,IAAMA,MAAM,GAAG,SAATA,MAAS,CAACC,KAAD;AAAA,SAAY;AACzBC,IAAAA,KAAK,EAAE;AACLC,MAAAA,YAAY,EAAEF,KAAK,CAACG,OAAN,CAAcC,IAAd,GAAqB;AAD9B,KADkB;AAIzBC,IAAAA,OAAO,EAAE;AACPC,MAAAA,QAAQ,EAAEN,KAAK,CAACO,UAAN,CAAiBD,QAAjB,GAA4B,CAD/B;AAEPE,MAAAA,UAAU,EAAE,KAFL;AAGPC,MAAAA,QAAQ,EAAE;AAHH,KAJgB;AASzBC,IAAAA,SAAS,EAAE;AACTJ,MAAAA,QAAQ,EAAEN,KAAK,CAACO,UAAN,CAAiBD,QAAjB,GAA4B,CAD7B;AAETK,MAAAA,KAAK,EAAEX,KAAK,CAACY,OAAN,CAAcC,KAAd,CAAoBC,IAFlB;AAGTC,MAAAA,UAAU,EAAEf,KAAK,CAACG,OAAN,CAAcC;AAHjB,KATc;AAczBY,IAAAA,OAAO,EAAE;AACPC,MAAAA,OAAO,EAAE,MADF;AAEPC,MAAAA,UAAU,EAAE,QAFL;AAGPC,MAAAA,GAAG,EAAE;AAHE,KAdgB;AAmBzBC,IAAAA,YAAY,EAAE;AACZd,MAAAA,QAAQ,EAAEN,KAAK,CAACO,UAAN,CAAiBD,QAAjB,GAA4B,CAD1B;AAEZK,MAAAA,KAAK,EAAEX,KAAK,CAACY,OAAN,CAAcC,KAAd,CAAoBC,IAFf;AAGZO,MAAAA,SAAS,EAAErB,KAAK,CAACG,OAAN,CAAcC;AAHb,KAnBW;AAwBzBkB,IAAAA,UAAU,EAAE;AACVC,MAAAA,MAAM,sBAAevB,KAAK,CAACY,OAAN,CAAcC,KAAd,CAAoBC,IAAnC;AADI;AAxBa,GAAZ;AAAA,CAAf;;IA6BaU,I;;;;;AAUX,gBAAYC,KAAZ,EAAmB;AAAA;;AAAA;AACjB,8BAAMA,KAAN;AADiB,8GAeK,UAACC,eAAD,EAAqB;AAC3C,wBAA4B,MAAKD,KAAjC;AAAA,UAAQE,KAAR,eAAQA,KAAR;AAAA,UAAeC,QAAf,eAAeA,QAAf;AACAD,MAAAA,KAAK,CAACD,eAAN,GAAwBA,eAAxB;AACAE,MAAAA,QAAQ,mBAAMD,KAAN,EAAR;AACD,KAnBkB;AAAA,6GA2BI,UAACE,QAAD,EAAWC,QAAX,EAAqBC,QAArB,EAAkC;AACvD,UAAQH,QAAR,GAAqB,MAAKH,KAA1B,CAAQG,QAAR;;AACA,UAAIG,QAAQ,IAAIF,QAAQ,CAACH,eAAT,CAAyBM,MAAzB,GAAkC,CAAlD,EAAqD;AACnD,cAAKC,QAAL,CAAc;AACZC,UAAAA,yBAAyB,EAAE;AACzBC,YAAAA,IAAI,EAAE,IADmB;AAEzBN,YAAAA,QAAQ,EAAEA,QAFe;AAGzBC,YAAAA,QAAQ,EAAEA,QAHe;AAIzBM,YAAAA,IAAI,EAAE;AAJmB;AADf,SAAd;AAQD,OATD,MASO;AACLR,QAAAA,QAAQ,mBAAME,QAAN,EAAR;AACD;AACF,KAzCkB;AAAA,0GA8CC,YAAM;AACxB,aAAOO,IAAI,CAACC,KAAL,CAAWD,IAAI,CAACE,MAAL,KAAgB,KAA3B,CAAP;AACD,KAhDkB;AAGjB,UAAKC,KAAL,GAAa;AACXN,MAAAA,yBAAyB,EAAE;AACzBC,QAAAA,IAAI,EAAE,KADmB;AAEzBC,QAAAA,IAAI,EAAE;AAFmB;AADhB,KAAb;AAHiB;AASlB;AAED;AACF;AACA;AACA;;;;;WAoCE,kBAAS;AAAA;;AACP,yBAAsF,KAAKX,KAA3F;AAAA,UAAQgB,OAAR,gBAAQA,OAAR;AAAA,UAAiBd,KAAjB,gBAAiBA,KAAjB;AAAA,UAAwBC,SAAxB,gBAAwBA,QAAxB;AAAA,UAAkCc,aAAlC,gBAAkCA,aAAlC;AAAA,UAAiDC,YAAjD,gBAAiDA,YAAjD;AAAA,UAA+DC,kBAA/D,gBAA+DA,kBAA/D;;AACA,iBAOIF,aAAa,IAAI,EAPrB;AAAA,uCACEG,sBADF;AAAA,UACEA,sBADF,sCAC2B,EAD3B;AAAA,uCAEEC,iBAFF;AAAA,UAEEA,iBAFF,sCAEsB,EAFtB;AAAA,4BAGEC,KAHF;AAAA,UAGEA,KAHF,2BAGU,EAHV;AAAA,6BAIEC,MAJF;AAAA,UAIEA,MAJF,4BAIW,EAJX;AAAA,mCAKEC,YALF;AAAA,UAKEA,YALF,kCAKiB,EALjB;AAAA,oCAMEC,aANF;AAAA,UAMEA,aANF,mCAMkB,EANlB;;AASA,kBAAiFvB,KAAK,IAAI,EAA1F;AAAA,+BAAQwB,MAAR;AAAA,UAAQA,MAAR,6BAAiB,EAAjB;AAAA,UAAqBC,aAArB,SAAqBA,aAArB;AAAA,UAAoCC,iBAApC,SAAoCA,iBAApC;AAAA,UAAuDC,qBAAvD,SAAuDA,qBAAvD;;AAEA,UAAQpB,yBAAR,GAAsC,KAAKM,KAA3C,CAAQN,yBAAR;AAEA,UAAMqB,WAAW,GAAG;AAClBC,QAAAA,QAAQ,EAAEF,qBAAqB,KAAK,KAA1B,GAAkC,KAAlC,GAA0C;AADlC,OAApB;;AAIA,UAAMG,cAAc,GAAG,SAAjBA,cAAiB;AAAA,YAAChC,KAAD,uEAAS,EAAT;AAAA,+CAClBoB,sBADkB,GAElBpB,KAFkB;AAAA,OAAvB;;AAKA,UAAMiC,qBAAqB,GAAG,KAAKC,iBAAL,EAA9B;AAEA,0BACE,gCAAC,gBAAD,CAAQ,YAAR;AAAqB,QAAA,aAAa,EAAEP,aAApC;AAAmD,QAAA,UAAU,EAAEN,iBAA/D;AAAkF,QAAA,YAAY,EAAE;AAAhG,sBACE,gCAAC,mBAAD;AAAS,QAAA,MAAM,EAAC;AAAhB,QADF,eAGE,gCAAC,qBAAD;AAAa,QAAA,KAAK,EAAE,CAAAC,KAAK,SAAL,IAAAA,KAAK,WAAL,YAAAA,KAAK,CAAE9C,KAAP,KAAgB,OAApC;AAA6C,QAAA,SAAS,EAAEwC,OAAO,CAACxC;AAAhE,sBACE,gCAAC,0BAAD;AACE,QAAA,SAAS,EAAEwC,OAAO,CAACM,KADrB;AAEE,QAAA,MAAM,EAAEpB,KAAK,CAACoB,KAAN,IAAe,EAFzB;AAGE,QAAA,QAAQ,EAAE,kBAACA,KAAD;AAAA,iBAAWnB,SAAQ,CAAC;AAAEmB,YAAAA,KAAK,EAALA;AAAF,WAAD,CAAnB;AAAA,SAHZ;AAIE,QAAA,WAAW,EAAEQ,WAJf;AAKE,QAAA,aAAa,EAAE,CACb,MADa,EAEb,MAFa,EAGb,QAHa,EAIb,WAJa,EAKb,eALa,EAMb,OANa,EAOb,MAPa,EAQb,oBARa,EASb,cATa,CALjB;AAgBE,QAAA,WAAW,EAAEE,cAAc,CAACV,KAAD,aAACA,KAAD,uBAACA,KAAK,CAAEa,kBAAR,CAhB7B;AAiBE,QAAA,UAAU,EAAEP,iBAjBd;AAkBE,QAAA,kBAAkB,EAAET,kBAlBtB;AAmBE,QAAA,uBAAuB,EAAE,CAAC;AAAEiB,UAAAA,QAAQ,EAAE;AAAZ,SAAD,EAA0B;AAAEA,UAAAA,QAAQ,EAAE;AAAZ,SAA1B,CAnB3B;AAoBE,QAAA,aAAa,EAAEX;AApBjB,QADF,CAHF,eA4BE,gCAAC,qBAAD;AAAa,QAAA,KAAK,EAAE,CAAAF,MAAM,SAAN,IAAAA,MAAM,WAAN,YAAAA,MAAM,CAAE/C,KAAR,KAAiB,UAArC;AAAiD,QAAA,SAAS,EAAEwC,OAAO,CAACxC;AAApE,sBACE,gCAAC,0BAAD;AACE,QAAA,MAAM,EAAE0B,KAAK,CAACqB,MAAN,IAAgB,EAD1B;AAEE,QAAA,SAAS,EAAE,EAFb;AAGE,QAAA,QAAQ,EAAE,kBAACA,MAAD;AAAA,iBAAYpB,SAAQ,CAAC;AAAEoB,YAAAA,MAAM,EAANA;AAAF,WAAD,CAApB;AAAA,SAHZ;AAIE,QAAA,WAAW,EAAEO,WAJf;AAKE,QAAA,WAAW,EAAEE,cAAc,CAACT,MAAD,aAACA,MAAD,uBAACA,MAAM,CAAEY,kBAAT,CAL7B;AAME,QAAA,UAAU,EAAEP,iBANd;AAOE,QAAA,kBAAkB,EAAET,kBAPtB;AAQE,QAAA,YAAY,EAAED,YARhB;AASE,QAAA,uBAAuB,EAAE,CAAC;AAAEkB,UAAAA,QAAQ,EAAE;AAAZ,SAAD,EAA0B;AAAEA,UAAAA,QAAQ,EAAE;AAAZ,SAA1B,CAT3B;AAUE,QAAA,aAAa,EAAEX;AAVjB,QADF,CA5BF,eA2CE,gCAAC,qBAAD,qBACE,gCAAC,wBAAD;AAAc,QAAA,KAAK,EAAEvB,KAArB;AAA4B,QAAA,QAAQ,EAAE,KAAKmC,oBAA3C;AAAiE,QAAA,YAAY,EAAEb;AAA/E,QADF,CA3CF,eA+CE,gCAAC,qBAAD,qBACE,gCAAC,mBAAD;AACE,QAAA,MAAM,EAAC,gBADT;AAEE,QAAA,IAAI,eACF,gCAAC,mBAAD;AACE,UAAA,OAAO,EAAE;AAAE5C,YAAAA,OAAO,EAAEoC,OAAO,CAACpC;AAAnB,WADX;AAEE,UAAA,oBAAoB,MAFtB;AAGE,UAAA,oBAAoB,MAHtB;AAIE,UAAA,SAAS,EAAE,OAJb;AAKE,UAAA,KAAK,EAAE;AALT,wBAOE,gCAAC,gBAAD;AAAM,UAAA,QAAQ,EAAE,OAAhB;AAAyB,UAAA,KAAK,EAAE,SAAhC;AAA2C,UAAA,KAAK,EAAE;AAAE0D,YAAAA,UAAU,EAAE;AAAd;AAAlD,UAPF;AAHJ,QADF,eAgBE,2CAhBF,eAiBE;AAAO,QAAA,SAAS,EAAEtB,OAAO,CAACxC;AAA1B,mFAjBF,eAoBE,2CApBF,eAsBE;AAAK,QAAA,SAAS,EAAEkD,MAAM,CAACzB,eAAP,IAA0Be,OAAO,CAACnB;AAAlD,sBACE,gCAAC,iCAAD;AACE,QAAA,GAAG,EAAEoC,qBADP;AAEE,QAAA,KAAK,EAAE/B,KAAK,CAACD,eAFf;AAGE,QAAA,SAAS,EAAEC,KAAK,CAACqC,iBAHnB;AAIE,QAAA,UAAU,EAAErC,KAAK,CAACsC,gBAJpB;AAKE,QAAA,aAAa,EAAEtC,KAAK,CAACuC,aALvB;AAME,QAAA,SAAS,EAAEvC,KAAK,CAACwC,eANnB;AAOE,QAAA,QAAQ,EAAE,KAAKC;AAPjB,QADF,CAtBF,EAkCGjB,MAAM,CAACzB,eAAP,iBAA0B;AAAK,QAAA,SAAS,EAAEe,OAAO,CAACrB;AAAxB,SAAuC+B,MAAM,CAACzB,eAA9C,CAlC7B,CA/CF,eAoFE,gCAAC,qBAAD;AACE,QAAA,IAAI,EAAEQ,yBAAyB,CAACC,IADlC;AAEE,QAAA,KAAK,EAAC,SAFR;AAGE,QAAA,IAAI,EAAED,yBAAyB,CAACE,IAHlC;AAIE,QAAA,SAAS,EAAE,qBAAM;AACf,cAAIN,QAAQ,GAAG,MAAI,CAACU,KAAL,CAAWN,yBAAX,CAAqCJ,QAApD;AACAA,UAAAA,QAAQ,CAACJ,eAAT,GAA2B,EAA3B;;AACAE,UAAAA,SAAQ,mBAAME,QAAN,EAAR;;AACA,UAAA,MAAI,CAACG,QAAL,CAAc;AACZC,YAAAA,yBAAyB,EAAE;AAAEC,cAAAA,IAAI,EAAE;AAAR;AADf,WAAd;AAGD,SAXH;AAYE,QAAA,OAAO,EAAE,mBAAM;AACb,cAAMN,QAAQ,GAAG,MAAI,CAACW,KAAL,CAAWN,yBAAX,CAAqCL,QAAtD;;AACAD,UAAAA,SAAQ,mBAAMC,QAAN,EAAR;;AACA,UAAA,MAAI,CAACI,QAAL,CAAc;AAAEC,YAAAA,yBAAyB,EAAE;AAAEC,cAAAA,IAAI,EAAE;AAAR;AAA7B,WAAd;AACD,SAhBH;AAiBE,QAAA,aAAa,EAAE,IAjBjB;AAkBE,QAAA,WAAW,EAAE;AAlBf,QApFF,CADF;AA2GD;;;EAjMuBkC,kBAAMC,S;;;iCAAnB9C,I,eACQ;AACjBiB,EAAAA,OAAO,EAAE8B,sBAAUC,MAAV,CAAiBC,UADT;AAEjB9C,EAAAA,KAAK,EAAE4C,sBAAUC,MAAV,CAAiBC,UAFP;AAGjB/B,EAAAA,aAAa,EAAE6B,sBAAUC,MAAV,CAAiBC,UAHf;AAIjBC,EAAAA,sBAAsB,EAAEH,sBAAUI,IAAV,CAAeF,UAJtB;AAKjB7C,EAAAA,QAAQ,EAAE2C,sBAAUI,IAAV,CAAeF,UALR;AAMjB7B,EAAAA,kBAAkB,EAAE2B,sBAAUC,MAAV,CAAiBC;AANpB,C;;eAmMN,wBAAW1E,MAAX,EAAmB;AAAE6E,EAAAA,IAAI,EAAE;AAAR,CAAnB,EAAqCpD,IAArC,C","sourcesContent":["import React from 'react';\nimport { FormSection, layout, AlertDialog } from '@pie-lib/pie-toolbox/config-ui';\nimport { EditableHtml } from '@pie-lib/pie-toolbox/editable-html';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport CardBar from './card-bar';\nimport ModelOptions from './model-options';\nimport { FractionModelChart } from '@pie-element/fraction-model';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport Info from '@material-ui/icons/Info';\n\nconst styles = (theme) => ({\n label: {\n marginBottom: theme.spacing.unit * 4,\n },\n tooltip: {\n fontSize: theme.typography.fontSize - 2,\n whiteSpace: 'pre',\n maxWidth: '500px',\n },\n errorText: {\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingTop: theme.spacing.unit,\n },\n flexRow: {\n display: 'flex',\n alignItems: 'center',\n gap: '10px',\n },\n errorMessage: {\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n marginTop: theme.spacing.unit,\n },\n modelError: {\n border: `2px solid ${theme.palette.error.main}`,\n },\n});\n\nexport class Main extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n onConfigurationChanged: PropTypes.func.isRequired,\n onChange: PropTypes.func.isRequired,\n uploadSoundSupport: PropTypes.object.isRequired,\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n correctAnswerChangeDialog: {\n open: false,\n text: '',\n },\n };\n }\n\n /*\n * Method to handle correct answer change\n * @param {array} correctResponse - correct response\n * */\n onCorrectAnswerChange = (correctResponse) => {\n const { model, onChange } = this.props;\n model.correctResponse = correctResponse;\n onChange({ ...model });\n };\n\n /*\n * Method to handle model options change\n * @param {object} oldModel - old model\n * @param {object} newModel - new model\n * @param {boolean} showDiag - show dialog or not\n * */\n onModelOptionsChange = (oldModel, newModel, showDiag) => {\n const { onChange } = this.props;\n if (showDiag && oldModel.correctResponse.length > 0) {\n this.setState({\n correctAnswerChangeDialog: {\n open: true,\n oldModel: oldModel,\n newModel: newModel,\n text: 'Changing either the Number of Models or Parts per Model will remove added correct answer. Are you sure you want to continue?',\n },\n });\n } else {\n onChange({ ...newModel });\n }\n };\n\n /*\n * Method to generate random key\n * */\n generateRandomKey = () => {\n return Math.floor(Math.random() * 10000);\n };\n\n render() {\n const { classes, model, onChange, configuration, imageSupport, uploadSoundSupport } = this.props;\n const {\n baseInputConfiguration = {},\n contentDimensions = {},\n title = {},\n prompt = {},\n modelOptions = {},\n mathMlOptions = {},\n } = configuration || {};\n\n const { errors = {}, extraCSSRules, spellCheckEnabled, toolbarEditorPosition } = model || {};\n\n const { correctAnswerChangeDialog } = this.state;\n\n const toolbarOpts = {\n position: toolbarEditorPosition === 'top' ? 'top' : 'bottom',\n };\n\n const getPluginProps = (props = {}) => ({\n ...baseInputConfiguration,\n ...props,\n });\n\n const fractionModelChartKey = this.generateRandomKey();\n\n return (\n <layout.ConfigLayout extraCSSRules={extraCSSRules} dimensions={contentDimensions} hideSettings={true}>\n <CardBar header=\"Set Up\"></CardBar>\n\n <FormSection label={title?.label || 'Title'} className={classes.label}>\n <EditableHtml\n className={classes.title}\n markup={model.title || ''}\n onChange={(title) => onChange({ title })}\n toolbarOpts={toolbarOpts}\n activePlugins={[\n 'bold',\n 'html',\n 'italic',\n 'underline',\n 'strikethrough',\n 'image',\n 'math',\n 'languageCharacters',\n 'responseArea',\n ]}\n pluginProps={getPluginProps(title?.inputConfiguration)}\n spellCheck={spellCheckEnabled}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n </FormSection>\n\n <FormSection label={prompt?.label || 'Question'} className={classes.label}>\n <EditableHtml\n markup={model.prompt || ''}\n minHeight={60}\n onChange={(prompt) => onChange({ prompt })}\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(prompt?.inputConfiguration)}\n spellCheck={spellCheckEnabled}\n uploadSoundSupport={uploadSoundSupport}\n imageSupport={imageSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n </FormSection>\n\n <FormSection>\n <ModelOptions model={model} onChange={this.onModelOptionsChange} modelOptions={modelOptions} />\n </FormSection>\n\n <FormSection>\n <CardBar\n header=\"Correct Answer\"\n info={\n <Tooltip\n classes={{ tooltip: classes.tooltip }}\n disableFocusListener\n disableTouchListener\n placement={'right'}\n title={'The correct answer should include no more than one partially-filled model'}\n >\n <Info fontSize={'small'} color={'primary'} style={{ marginLeft: '8px' }} />\n </Tooltip>\n }\n ></CardBar>\n\n <br />\n <label className={classes.label}>\n Click/touch the number of parts to represent the correct fraction model\n </label>\n <br />\n\n <div className={errors.correctResponse && classes.modelError}>\n <FractionModelChart\n key={fractionModelChartKey}\n value={model.correctResponse}\n modelType={model.modelTypeSelected}\n noOfModels={model.maxModelSelected}\n partsPerModel={model.partsPerModel}\n showLabel={model.showGraphLabels}\n onChange={this.onCorrectAnswerChange}\n ></FractionModelChart>\n </div>\n\n {errors.correctResponse && <div className={classes.errorMessage}>{errors.correctResponse}</div>}\n </FormSection>\n\n <AlertDialog\n open={correctAnswerChangeDialog.open}\n title=\"Warning\"\n text={correctAnswerChangeDialog.text}\n onConfirm={() => {\n let newModel = this.state.correctAnswerChangeDialog.newModel;\n newModel.correctResponse = [];\n onChange({ ...newModel });\n this.setState({\n correctAnswerChangeDialog: { open: false },\n });\n }}\n onClose={() => {\n const oldModel = this.state.correctAnswerChangeDialog.oldModel;\n onChange({ ...oldModel });\n this.setState({ correctAnswerChangeDialog: { open: false } });\n }}\n onConfirmText={'OK'}\n onCloseText={'Cancel'}\n />\n </layout.ConfigLayout>\n );\n }\n}\n\nexport default withStyles(styles, { name: 'Main' })(Main);\n"],"file":"main.js"}
|
package/configure/package.json
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pie-element/fraction-model-configure",
|
|
3
3
|
"private": true,
|
|
4
|
-
"version": "2.0
|
|
4
|
+
"version": "2.1.0",
|
|
5
5
|
"description": "",
|
|
6
6
|
"main": "lib/index.js",
|
|
7
7
|
"module": "src/index.js",
|
|
8
8
|
"dependencies": {
|
|
9
9
|
"@material-ui/core": "^3.9.2",
|
|
10
10
|
"@pie-framework/pie-configure-events": "^1.3.0",
|
|
11
|
-
"@pie-lib/pie-toolbox": "2.0
|
|
11
|
+
"@pie-lib/pie-toolbox": "2.1.0",
|
|
12
12
|
"debug": "^3.1.0",
|
|
13
13
|
"lodash": "^4.17.15",
|
|
14
14
|
"prop-types": "^15.6.2",
|
package/controller/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,17 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [2.0.8](https://github.com/pie-framework/pie-elements/compare/@pie-element/fraction-model-controller@2.0.7...@pie-element/fraction-model-controller@2.0.8) (2024-10-29)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* fixed all tests after updating pie-toolbox [PD-1460] ([9f5293d](https://github.com/pie-framework/pie-elements/commit/9f5293d618edc06f69fabb27a042ec5eee66e151))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
6
17
|
## [2.0.7](https://github.com/pie-framework/pie-elements/compare/@pie-element/fraction-model-controller@2.0.6...@pie-element/fraction-model-controller@2.0.7) (2024-10-28)
|
|
7
18
|
|
|
8
19
|
|
package/controller/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pie-element/fraction-model-controller",
|
|
3
3
|
"private": true,
|
|
4
|
-
"version": "2.0.
|
|
4
|
+
"version": "2.0.8",
|
|
5
5
|
"description": "",
|
|
6
6
|
"main": "lib/index.js",
|
|
7
7
|
"module": "src/index.js",
|
|
8
8
|
"dependencies": {
|
|
9
|
-
"@pie-lib/pie-toolbox": "2.0
|
|
9
|
+
"@pie-lib/pie-toolbox": "2.1.0",
|
|
10
10
|
"debug": "^3.1.0",
|
|
11
11
|
"lodash": "^4.17.15"
|
|
12
12
|
},
|
package/lib/main.js
CHANGED
|
@@ -154,10 +154,13 @@ var Main = /*#__PURE__*/function (_React$Component) {
|
|
|
154
154
|
title = model.title,
|
|
155
155
|
_model$correctness = model.correctness,
|
|
156
156
|
correctness = _model$correctness === void 0 ? {} : _model$correctness,
|
|
157
|
+
extraCSSRules = model.extraCSSRules,
|
|
157
158
|
language = model.language;
|
|
158
159
|
var showCorrectAnswerToggle = correctness.correctness && correctness.correctness !== 'correct';
|
|
159
160
|
var fractionModelChartKey = this.generateRandomKey();
|
|
160
|
-
return /*#__PURE__*/_react["default"].createElement(
|
|
161
|
+
return /*#__PURE__*/_react["default"].createElement(_renderUi.UiLayout, {
|
|
162
|
+
extraCSSRules: extraCSSRules
|
|
163
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
161
164
|
className: classes.modelPreview
|
|
162
165
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
163
166
|
className: classes.titleContainer
|
package/lib/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/main.jsx"],"names":["Main","props","onSessionChange","state","session","model","answers","response","allowedStudentConfig","noOfModel","partsPerModel","newAnswers","oldSession","newSession","length","setState","answerChangeDialog","open","text","callOnSessionChange","show","showCorrect","Math","floor","random","generateAnswers","classes","prompt","title","correctness","language","showCorrectAnswerToggle","fractionModelChartKey","generateRandomKey","modelPreview","titleContainer","toggleShowCorrect","view","onAnswerChange","correctResponse","modelTypeSelected","maxModelSelected","showGraphLabels","onResponseChange","prevState","React","Component","PropTypes","object","func","isRequired","styles","previewHeading","fontWeight","fontSize","margin","padding","textAlign"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport AnswerFraction from './answer-fraction';\nimport { CorrectAnswerToggle } from '@pie-lib/pie-toolbox/correct-answer-toggle';\nimport FractionModelChart from './fraction-model-chart';\nimport { AlertDialog } from '@pie-lib/pie-toolbox/config-ui';\nimport { PreviewPrompt } from '@pie-lib/pie-toolbox/render-ui';\nimport cloneDeep from 'lodash/cloneDeep';\n\nexport class Main extends React.Component {\n static propTypes = {\n model: PropTypes.object,\n session: PropTypes.object,\n onSessionChange: PropTypes.func.isRequired,\n };\n\n constructor(props) {\n super(props);\n this.state = {\n session: {\n ...props.session,\n answers: (props.session && props.session.answers) || this.generateAnswers(props.model),\n },\n showCorrect: false,\n answerChangeDialog: {\n open: false,\n text: '',\n },\n };\n this.callOnSessionChange();\n }\n\n /**\n * Function to trigger when session value change for fraction model\n */\n callOnSessionChange = () => {\n const { onSessionChange } = this.props;\n if (onSessionChange) {\n onSessionChange(this.state.session);\n }\n };\n\n /**\n * Function to generate answers for preview selection\n * @param {object} model contains model object for fraction model\n * @returns answer model\n */\n generateAnswers = (model) => {\n const answers = {\n response: [],\n };\n if (model.allowedStudentConfig) {\n (answers.noOfModel = ''), (answers.partsPerModel = '');\n }\n return answers;\n };\n\n /**\n * Function to trigger when answer change from preview\n * @param {object} newAnswers contains updated answer model\n */\n onAnswerChange = (newAnswers) => {\n let oldSession = cloneDeep(this.state.session);\n let newSession = {\n ...this.state.session,\n answers: newAnswers,\n };\n if (newAnswers.response.length > 0) {\n this.setState({\n answerChangeDialog: {\n open: true,\n oldSession: oldSession,\n newSession: newSession,\n text: 'Changing either the Number of Models or Parts per Model will remove added answer. Are you sure you want to continue?',\n },\n });\n } else {\n this.setState(\n (state) => ({\n session: newSession,\n }),\n this.callOnSessionChange,\n );\n }\n };\n\n /*\n * Function to toggle correct answer\n * @param {boolean} show contains boolean value to show correct answer\n * */\n toggleShowCorrect = (show) => {\n this.setState({ showCorrect: show });\n };\n\n /*\n * Function to trigger when response change from preview\n * @param {object} response contains updated response model\n * */\n onResponseChange = (response) => {\n this.setState(\n (state) => ({\n session: {\n ...state.session,\n answers: {\n ...state.session.answers,\n response,\n },\n },\n }),\n this.callOnSessionChange,\n );\n };\n\n /*\n * Method to generate random key\n * */\n generateRandomKey = () => {\n return Math.floor(Math.random() * 10000);\n };\n\n render() {\n const { model, classes } = this.props;\n const { showCorrect, session, answerChangeDialog } = this.state;\n const { prompt, title, correctness = {}, language } = model;\n const showCorrectAnswerToggle = correctness.correctness && correctness.correctness !== 'correct';\n const fractionModelChartKey = this.generateRandomKey();\n\n return (\n <div>\n <div className={classes.modelPreview}>\n <div className={classes.titleContainer}>\n <PreviewPrompt className=\"prompt\" prompt={title} tagName=\"h3\" />\n </div>\n <PreviewPrompt className=\"prompt\" prompt={prompt} tagName=\"p\" />\n\n <CorrectAnswerToggle\n language={language}\n show={showCorrectAnswerToggle}\n toggled={showCorrect}\n onToggle={this.toggleShowCorrect}\n />\n\n <AnswerFraction\n model={model}\n showCorrect={showCorrect}\n disabled={model.view}\n onAnswerChange={this.onAnswerChange}\n answers={session.answers}\n />\n\n <FractionModelChart\n key={fractionModelChartKey}\n disabled={model.view}\n value={showCorrect ? model.correctResponse : session.answers.response}\n modelType={model.modelTypeSelected}\n noOfModels={\n showCorrect\n ? model.maxModelSelected\n : model.allowedStudentConfig\n ? session.answers.noOfModel\n : model.maxModelSelected\n }\n partsPerModel={\n showCorrect\n ? model.partsPerModel\n : model.allowedStudentConfig\n ? session.answers.partsPerModel\n : model.partsPerModel\n }\n showLabel={model.showGraphLabels}\n onChange={this.onResponseChange}\n ></FractionModelChart>\n\n <AlertDialog\n open={answerChangeDialog.open}\n title=\"Warning\"\n text={answerChangeDialog.text}\n onConfirm={() => {\n let newSession = this.state.answerChangeDialog.newSession;\n newSession.answers.response = [];\n this.setState(\n () => ({\n session: newSession,\n answerChangeDialog: { open: false },\n }),\n this.callOnSessionChange,\n );\n }}\n onClose={() => {\n this.setState(\n (prevState) => ({\n session: prevState.answerChangeDialog.oldSession,\n answerChangeDialog: { open: false },\n }),\n this.callOnSessionChange,\n );\n }}\n onConfirmText={'OK'}\n onCloseText={'Cancel'}\n />\n </div>\n </div>\n );\n }\n}\n\nconst styles = () => ({\n previewHeading: {\n fontWeight: '400',\n fontSize: '24px',\n margin: '14px 0',\n },\n modelPreview: {\n padding: '16px',\n },\n titleContainer: {\n textAlign: 'center',\n fontSize: '20px',\n },\n});\n\nexport default withStyles(styles)(Main);\n"],"file":"main.js"}
|
|
1
|
+
{"version":3,"sources":["../src/main.jsx"],"names":["Main","props","onSessionChange","state","session","model","answers","response","allowedStudentConfig","noOfModel","partsPerModel","newAnswers","oldSession","newSession","length","setState","answerChangeDialog","open","text","callOnSessionChange","show","showCorrect","Math","floor","random","generateAnswers","classes","prompt","title","correctness","extraCSSRules","language","showCorrectAnswerToggle","fractionModelChartKey","generateRandomKey","modelPreview","titleContainer","toggleShowCorrect","view","onAnswerChange","correctResponse","modelTypeSelected","maxModelSelected","showGraphLabels","onResponseChange","prevState","React","Component","PropTypes","object","func","isRequired","styles","previewHeading","fontWeight","fontSize","margin","padding","textAlign"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;IAEaA,I;;;;;AAOX,gBAAYC,KAAZ,EAAmB;AAAA;;AAAA;AACjB,8BAAMA,KAAN;AADiB,4GAmBG,YAAM;AAC1B,UAAQC,eAAR,GAA4B,MAAKD,KAAjC,CAAQC,eAAR;;AACA,UAAIA,eAAJ,EAAqB;AACnBA,QAAAA,eAAe,CAAC,MAAKC,KAAL,CAAWC,OAAZ,CAAf;AACD;AACF,KAxBkB;AAAA,wGA+BD,UAACC,KAAD,EAAW;AAC3B,UAAMC,OAAO,GAAG;AACdC,QAAAA,QAAQ,EAAE;AADI,OAAhB;;AAGA,UAAIF,KAAK,CAACG,oBAAV,EAAgC;AAC7BF,QAAAA,OAAO,CAACG,SAAR,GAAoB,EAArB,EAA2BH,OAAO,CAACI,aAAR,GAAwB,EAAnD;AACD;;AACD,aAAOJ,OAAP;AACD,KAvCkB;AAAA,uGA6CF,UAACK,UAAD,EAAgB;AAC/B,UAAIC,UAAU,GAAG,2BAAU,MAAKT,KAAL,CAAWC,OAArB,CAAjB;;AACA,UAAIS,UAAU,mCACT,MAAKV,KAAL,CAAWC,OADF;AAEZE,QAAAA,OAAO,EAAEK;AAFG,QAAd;;AAIA,UAAIA,UAAU,CAACJ,QAAX,CAAoBO,MAApB,GAA6B,CAAjC,EAAoC;AAClC,cAAKC,QAAL,CAAc;AACZC,UAAAA,kBAAkB,EAAE;AAClBC,YAAAA,IAAI,EAAE,IADY;AAElBL,YAAAA,UAAU,EAAEA,UAFM;AAGlBC,YAAAA,UAAU,EAAEA,UAHM;AAIlBK,YAAAA,IAAI,EAAE;AAJY;AADR,SAAd;AAQD,OATD,MASO;AACL,cAAKH,QAAL,CACE,UAACZ,KAAD;AAAA,iBAAY;AACVC,YAAAA,OAAO,EAAES;AADC,WAAZ;AAAA,SADF,EAIE,MAAKM,mBAJP;AAMD;AACF,KApEkB;AAAA,0GA0EC,UAACC,IAAD,EAAU;AAC5B,YAAKL,QAAL,CAAc;AAAEM,QAAAA,WAAW,EAAED;AAAf,OAAd;AACD,KA5EkB;AAAA,yGAkFA,UAACb,QAAD,EAAc;AAC/B,YAAKQ,QAAL,CACE,UAACZ,KAAD;AAAA,eAAY;AACVC,UAAAA,OAAO,kCACFD,KAAK,CAACC,OADJ;AAELE,YAAAA,OAAO,kCACFH,KAAK,CAACC,OAAN,CAAcE,OADZ;AAELC,cAAAA,QAAQ,EAARA;AAFK;AAFF;AADG,SAAZ;AAAA,OADF,EAUE,MAAKY,mBAVP;AAYD,KA/FkB;AAAA,0GAoGC,YAAM;AACxB,aAAOG,IAAI,CAACC,KAAL,CAAWD,IAAI,CAACE,MAAL,KAAgB,KAA3B,CAAP;AACD,KAtGkB;AAEjB,UAAKrB,KAAL,GAAa;AACXC,MAAAA,OAAO,kCACFH,KAAK,CAACG,OADJ;AAELE,QAAAA,OAAO,EAAGL,KAAK,CAACG,OAAN,IAAiBH,KAAK,CAACG,OAAN,CAAcE,OAAhC,IAA4C,MAAKmB,eAAL,CAAqBxB,KAAK,CAACI,KAA3B;AAFhD,QADI;AAKXgB,MAAAA,WAAW,EAAE,KALF;AAMXL,MAAAA,kBAAkB,EAAE;AAClBC,QAAAA,IAAI,EAAE,KADY;AAElBC,QAAAA,IAAI,EAAE;AAFY;AANT,KAAb;;AAWA,UAAKC,mBAAL;;AAbiB;AAclB;AAED;AACF;AACA;;;;;WAsFE,kBAAS;AAAA;;AACP,wBAA2B,KAAKlB,KAAhC;AAAA,UAAQI,KAAR,eAAQA,KAAR;AAAA,UAAeqB,OAAf,eAAeA,OAAf;AACA,wBAAqD,KAAKvB,KAA1D;AAAA,UAAQkB,WAAR,eAAQA,WAAR;AAAA,UAAqBjB,OAArB,eAAqBA,OAArB;AAAA,UAA8BY,kBAA9B,eAA8BA,kBAA9B;AACA,UAAQW,MAAR,GAAqEtB,KAArE,CAAQsB,MAAR;AAAA,UAAgBC,KAAhB,GAAqEvB,KAArE,CAAgBuB,KAAhB;AAAA,+BAAqEvB,KAArE,CAAuBwB,WAAvB;AAAA,UAAuBA,WAAvB,mCAAqC,EAArC;AAAA,UAAyCC,aAAzC,GAAqEzB,KAArE,CAAyCyB,aAAzC;AAAA,UAAwDC,QAAxD,GAAqE1B,KAArE,CAAwD0B,QAAxD;AACA,UAAMC,uBAAuB,GAAGH,WAAW,CAACA,WAAZ,IAA2BA,WAAW,CAACA,WAAZ,KAA4B,SAAvF;AACA,UAAMI,qBAAqB,GAAG,KAAKC,iBAAL,EAA9B;AAEA,0BACE,gCAAC,kBAAD;AAAU,QAAA,aAAa,EAAEJ;AAAzB,sBACE;AAAK,QAAA,SAAS,EAAEJ,OAAO,CAACS;AAAxB,sBACE;AAAK,QAAA,SAAS,EAAET,OAAO,CAACU;AAAxB,sBACE,gCAAC,uBAAD;AAAe,QAAA,SAAS,EAAC,QAAzB;AAAkC,QAAA,MAAM,EAAER,KAA1C;AAAiD,QAAA,OAAO,EAAC;AAAzD,QADF,CADF,eAIE,gCAAC,uBAAD;AAAe,QAAA,SAAS,EAAC,QAAzB;AAAkC,QAAA,MAAM,EAAED,MAA1C;AAAkD,QAAA,OAAO,EAAC;AAA1D,QAJF,eAME,gCAAC,wCAAD;AACE,QAAA,QAAQ,EAAEI,QADZ;AAEE,QAAA,IAAI,EAAEC,uBAFR;AAGE,QAAA,OAAO,EAAEX,WAHX;AAIE,QAAA,QAAQ,EAAE,KAAKgB;AAJjB,QANF,eAaE,gCAAC,0BAAD;AACE,QAAA,KAAK,EAAEhC,KADT;AAEE,QAAA,WAAW,EAAEgB,WAFf;AAGE,QAAA,QAAQ,EAAEhB,KAAK,CAACiC,IAHlB;AAIE,QAAA,cAAc,EAAE,KAAKC,cAJvB;AAKE,QAAA,OAAO,EAAEnC,OAAO,CAACE;AALnB,QAbF,eAqBE,gCAAC,8BAAD;AACE,QAAA,GAAG,EAAE2B,qBADP;AAEE,QAAA,QAAQ,EAAE5B,KAAK,CAACiC,IAFlB;AAGE,QAAA,KAAK,EAAEjB,WAAW,GAAGhB,KAAK,CAACmC,eAAT,GAA2BpC,OAAO,CAACE,OAAR,CAAgBC,QAH/D;AAIE,QAAA,SAAS,EAAEF,KAAK,CAACoC,iBAJnB;AAKE,QAAA,UAAU,EACRpB,WAAW,GACPhB,KAAK,CAACqC,gBADC,GAEPrC,KAAK,CAACG,oBAAN,GACAJ,OAAO,CAACE,OAAR,CAAgBG,SADhB,GAEAJ,KAAK,CAACqC,gBAVd;AAYE,QAAA,aAAa,EACXrB,WAAW,GACPhB,KAAK,CAACK,aADC,GAEPL,KAAK,CAACG,oBAAN,GACAJ,OAAO,CAACE,OAAR,CAAgBI,aADhB,GAEAL,KAAK,CAACK,aAjBd;AAmBE,QAAA,SAAS,EAAEL,KAAK,CAACsC,eAnBnB;AAoBE,QAAA,QAAQ,EAAE,KAAKC;AApBjB,QArBF,eA4CE,gCAAC,qBAAD;AACE,QAAA,IAAI,EAAE5B,kBAAkB,CAACC,IAD3B;AAEE,QAAA,KAAK,EAAC,SAFR;AAGE,QAAA,IAAI,EAAED,kBAAkB,CAACE,IAH3B;AAIE,QAAA,SAAS,EAAE,qBAAM;AACf,cAAIL,UAAU,GAAG,MAAI,CAACV,KAAL,CAAWa,kBAAX,CAA8BH,UAA/C;AACAA,UAAAA,UAAU,CAACP,OAAX,CAAmBC,QAAnB,GAA8B,EAA9B;;AACA,UAAA,MAAI,CAACQ,QAAL,CACE;AAAA,mBAAO;AACLX,cAAAA,OAAO,EAAES,UADJ;AAELG,cAAAA,kBAAkB,EAAE;AAAEC,gBAAAA,IAAI,EAAE;AAAR;AAFf,aAAP;AAAA,WADF,EAKE,MAAI,CAACE,mBALP;AAOD,SAdH;AAeE,QAAA,OAAO,EAAE,mBAAM;AACb,UAAA,MAAI,CAACJ,QAAL,CACE,UAAC8B,SAAD;AAAA,mBAAgB;AACdzC,cAAAA,OAAO,EAAEyC,SAAS,CAAC7B,kBAAV,CAA6BJ,UADxB;AAEdI,cAAAA,kBAAkB,EAAE;AAAEC,gBAAAA,IAAI,EAAE;AAAR;AAFN,aAAhB;AAAA,WADF,EAKE,MAAI,CAACE,mBALP;AAOD,SAvBH;AAwBE,QAAA,aAAa,EAAE,IAxBjB;AAyBE,QAAA,WAAW,EAAE;AAzBf,QA5CF,CADF,CADF;AA4ED;;;EAlMuB2B,kBAAMC,S;;;iCAAnB/C,I,eACQ;AACjBK,EAAAA,KAAK,EAAE2C,sBAAUC,MADA;AAEjB7C,EAAAA,OAAO,EAAE4C,sBAAUC,MAFF;AAGjB/C,EAAAA,eAAe,EAAE8C,sBAAUE,IAAV,CAAeC;AAHf,C;;AAoMrB,IAAMC,MAAM,GAAG,SAATA,MAAS;AAAA,SAAO;AACpBC,IAAAA,cAAc,EAAE;AACdC,MAAAA,UAAU,EAAE,KADE;AAEdC,MAAAA,QAAQ,EAAE,MAFI;AAGdC,MAAAA,MAAM,EAAE;AAHM,KADI;AAMpBrB,IAAAA,YAAY,EAAE;AACZsB,MAAAA,OAAO,EAAE;AADG,KANM;AASpBrB,IAAAA,cAAc,EAAE;AACdsB,MAAAA,SAAS,EAAE,QADG;AAEdH,MAAAA,QAAQ,EAAE;AAFI;AATI,GAAP;AAAA,CAAf;;eAee,wBAAWH,MAAX,EAAmBpD,IAAnB,C","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport AnswerFraction from './answer-fraction';\nimport { CorrectAnswerToggle } from '@pie-lib/pie-toolbox/correct-answer-toggle';\nimport FractionModelChart from './fraction-model-chart';\nimport { AlertDialog } from '@pie-lib/pie-toolbox/config-ui';\nimport { PreviewPrompt, UiLayout } from '@pie-lib/pie-toolbox/render-ui';\nimport cloneDeep from 'lodash/cloneDeep';\n\nexport class Main extends React.Component {\n static propTypes = {\n model: PropTypes.object,\n session: PropTypes.object,\n onSessionChange: PropTypes.func.isRequired,\n };\n\n constructor(props) {\n super(props);\n this.state = {\n session: {\n ...props.session,\n answers: (props.session && props.session.answers) || this.generateAnswers(props.model),\n },\n showCorrect: false,\n answerChangeDialog: {\n open: false,\n text: '',\n },\n };\n this.callOnSessionChange();\n }\n\n /**\n * Function to trigger when session value change for fraction model\n */\n callOnSessionChange = () => {\n const { onSessionChange } = this.props;\n if (onSessionChange) {\n onSessionChange(this.state.session);\n }\n };\n\n /**\n * Function to generate answers for preview selection\n * @param {object} model contains model object for fraction model\n * @returns answer model\n */\n generateAnswers = (model) => {\n const answers = {\n response: [],\n };\n if (model.allowedStudentConfig) {\n (answers.noOfModel = ''), (answers.partsPerModel = '');\n }\n return answers;\n };\n\n /**\n * Function to trigger when answer change from preview\n * @param {object} newAnswers contains updated answer model\n */\n onAnswerChange = (newAnswers) => {\n let oldSession = cloneDeep(this.state.session);\n let newSession = {\n ...this.state.session,\n answers: newAnswers,\n };\n if (newAnswers.response.length > 0) {\n this.setState({\n answerChangeDialog: {\n open: true,\n oldSession: oldSession,\n newSession: newSession,\n text: 'Changing either the Number of Models or Parts per Model will remove added answer. Are you sure you want to continue?',\n },\n });\n } else {\n this.setState(\n (state) => ({\n session: newSession,\n }),\n this.callOnSessionChange,\n );\n }\n };\n\n /*\n * Function to toggle correct answer\n * @param {boolean} show contains boolean value to show correct answer\n * */\n toggleShowCorrect = (show) => {\n this.setState({ showCorrect: show });\n };\n\n /*\n * Function to trigger when response change from preview\n * @param {object} response contains updated response model\n * */\n onResponseChange = (response) => {\n this.setState(\n (state) => ({\n session: {\n ...state.session,\n answers: {\n ...state.session.answers,\n response,\n },\n },\n }),\n this.callOnSessionChange,\n );\n };\n\n /*\n * Method to generate random key\n * */\n generateRandomKey = () => {\n return Math.floor(Math.random() * 10000);\n };\n\n render() {\n const { model, classes } = this.props;\n const { showCorrect, session, answerChangeDialog } = this.state;\n const { prompt, title, correctness = {}, extraCSSRules, language } = model;\n const showCorrectAnswerToggle = correctness.correctness && correctness.correctness !== 'correct';\n const fractionModelChartKey = this.generateRandomKey();\n\n return (\n <UiLayout extraCSSRules={extraCSSRules}>\n <div className={classes.modelPreview}>\n <div className={classes.titleContainer}>\n <PreviewPrompt className=\"prompt\" prompt={title} tagName=\"h3\" />\n </div>\n <PreviewPrompt className=\"prompt\" prompt={prompt} tagName=\"p\" />\n\n <CorrectAnswerToggle\n language={language}\n show={showCorrectAnswerToggle}\n toggled={showCorrect}\n onToggle={this.toggleShowCorrect}\n />\n\n <AnswerFraction\n model={model}\n showCorrect={showCorrect}\n disabled={model.view}\n onAnswerChange={this.onAnswerChange}\n answers={session.answers}\n />\n\n <FractionModelChart\n key={fractionModelChartKey}\n disabled={model.view}\n value={showCorrect ? model.correctResponse : session.answers.response}\n modelType={model.modelTypeSelected}\n noOfModels={\n showCorrect\n ? model.maxModelSelected\n : model.allowedStudentConfig\n ? session.answers.noOfModel\n : model.maxModelSelected\n }\n partsPerModel={\n showCorrect\n ? model.partsPerModel\n : model.allowedStudentConfig\n ? session.answers.partsPerModel\n : model.partsPerModel\n }\n showLabel={model.showGraphLabels}\n onChange={this.onResponseChange}\n ></FractionModelChart>\n\n <AlertDialog\n open={answerChangeDialog.open}\n title=\"Warning\"\n text={answerChangeDialog.text}\n onConfirm={() => {\n let newSession = this.state.answerChangeDialog.newSession;\n newSession.answers.response = [];\n this.setState(\n () => ({\n session: newSession,\n answerChangeDialog: { open: false },\n }),\n this.callOnSessionChange,\n );\n }}\n onClose={() => {\n this.setState(\n (prevState) => ({\n session: prevState.answerChangeDialog.oldSession,\n answerChangeDialog: { open: false },\n }),\n this.callOnSessionChange,\n );\n }}\n onConfirmText={'OK'}\n onCloseText={'Cancel'}\n />\n </div>\n </UiLayout>\n );\n }\n}\n\nconst styles = () => ({\n previewHeading: {\n fontWeight: '400',\n fontSize: '24px',\n margin: '14px 0',\n },\n modelPreview: {\n padding: '16px',\n },\n titleContainer: {\n textAlign: 'center',\n fontSize: '20px',\n },\n});\n\nexport default withStyles(styles)(Main);\n"],"file":"main.js"}
|
package/package.json
CHANGED
|
@@ -4,12 +4,12 @@
|
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
6
|
"repository": "pie-framework/pie-elements",
|
|
7
|
-
"version": "2.1
|
|
7
|
+
"version": "2.2.1-next.0+9b8579ae2",
|
|
8
8
|
"description": "",
|
|
9
9
|
"dependencies": {
|
|
10
10
|
"@material-ui/core": "^3.9.2",
|
|
11
11
|
"@pie-framework/pie-player-events": "^0.1.0",
|
|
12
|
-
"@pie-lib/pie-toolbox": "2.0
|
|
12
|
+
"@pie-lib/pie-toolbox": "2.1.0",
|
|
13
13
|
"prop-types": "^15.6.1",
|
|
14
14
|
"react": "^16.8.1",
|
|
15
15
|
"react-dom": "^16.8.1",
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
},
|
|
18
18
|
"author": "",
|
|
19
19
|
"license": "ISC",
|
|
20
|
-
"gitHead": "
|
|
20
|
+
"gitHead": "9b8579ae2348276a843ad32caa8560a0fd26212e",
|
|
21
21
|
"scripts": {
|
|
22
22
|
"postpublish": "../../scripts/postpublish"
|
|
23
23
|
},
|