@pie-element/inline-dropdown 4.4.1-next.6 → 4.4.1
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 +11 -0
- package/configure/CHANGELOG.md +11 -0
- package/configure/lib/main.js +3 -2
- package/configure/lib/main.js.map +1 -1
- package/configure/package.json +1 -1
- package/package.json +2 -2
package/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
|
+
## [4.4.1](https://github.com/pie-framework/pie-elements/compare/@pie-element/inline-dropdown@4.4.0...@pie-element/inline-dropdown@4.4.1) (2022-11-11)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* **inline-dropdown:** add sanity checks for withRubric ([25e5403](https://github.com/pie-framework/pie-elements/commit/25e540323dd33c43f67e2f8ade736a4fc98c96f2))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
6
17
|
# [4.4.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/inline-dropdown@4.3.1...@pie-element/inline-dropdown@4.4.0) (2022-11-01)
|
|
7
18
|
|
|
8
19
|
|
package/configure/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
|
+
## [4.3.2](https://github.com/pie-framework/pie-elements/compare/@pie-element/inline-dropdown-configure@4.3.1...@pie-element/inline-dropdown-configure@4.3.2) (2022-11-11)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* **inline-dropdown:** add sanity checks for withRubric ([25e5403](https://github.com/pie-framework/pie-elements/commit/25e540323dd33c43f67e2f8ade736a4fc98c96f2))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
6
17
|
## [4.3.1](https://github.com/pie-framework/pie-elements/compare/@pie-element/inline-dropdown-configure@4.3.0...@pie-element/inline-dropdown-configure@4.3.1) (2022-10-31)
|
|
7
18
|
|
|
8
19
|
|
package/configure/lib/main.js
CHANGED
|
@@ -480,7 +480,8 @@ var Main = /*#__PURE__*/function (_React$Component) {
|
|
|
480
480
|
maxImageWidth = _ref2$maxImageWidth === void 0 ? {} : _ref2$maxImageWidth,
|
|
481
481
|
_ref2$maxImageHeight = _ref2.maxImageHeight,
|
|
482
482
|
maxImageHeight = _ref2$maxImageHeight === void 0 ? {} : _ref2$maxImageHeight,
|
|
483
|
-
withRubric = _ref2.withRubric
|
|
483
|
+
_ref2$withRubric = _ref2.withRubric,
|
|
484
|
+
withRubric = _ref2$withRubric === void 0 ? {} : _ref2$withRubric;
|
|
484
485
|
|
|
485
486
|
var _ref3 = model || {},
|
|
486
487
|
rationaleEnabled = _ref3.rationaleEnabled,
|
|
@@ -574,7 +575,7 @@ var Main = /*#__PURE__*/function (_React$Component) {
|
|
|
574
575
|
choiceRationaleEnabled: choiceRationale.settings && toggle(choiceRationale.label),
|
|
575
576
|
promptEnabled: prompt.settings && toggle(prompt.label),
|
|
576
577
|
spellCheckEnabled: spellCheck.settings && toggle(spellCheck.label),
|
|
577
|
-
rubricEnabled: withRubric.settings && toggle(withRubric.label)
|
|
578
|
+
rubricEnabled: (withRubric === null || withRubric === void 0 ? void 0 : withRubric.settings) && toggle(withRubric === null || withRubric === void 0 ? void 0 : withRubric.label)
|
|
578
579
|
}
|
|
579
580
|
}
|
|
580
581
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/main.jsx"],"names":["toggle","settings","Panel","InfoDialog","open","onCancel","onOk","title","propTypes","PropTypes","bool","func","string","styles","theme","promptHolder","width","paddingBottom","spacing","unit","marginBottom","prompt","paddingTop","markup","minHeight","design","choiceConfiguration","switchElement","justifyContent","margin","addButton","text","fontFamily","fontSize","lineHeight","color","marginRight","rationaleLabel","display","whiteSpace","rationaleChoices","marginTop","panelDetails","flexContainer","alignItems","tooltip","maxWidth","errorText","createElementFromHTML","htmlString","div","document","createElement","innerHTML","trim","prepareVal","html","tmp","value","textContent","innerText","Main","dialog","newVal","props","onModelChanged","model","onModelChange","rationale","index","choice","indexOfChoice","choices","findIndex","elem","label","splice","teacherInstructions","slateMarkup","callback","setState","message","respAreaChoices","state","domMarkup","allRespAreas","querySelectorAll","allChoices","forEach","el","dataset","existingRespAreaChoices","obj","key","newRespAreaChoices","shouldWarn","newChoices","length","find","c","correct","remove","maxResponseAreaChoices","configuration","r","map","parseInt","filter","val","isNaN","push","respIndex","selectedIndex","ch","nProps","newState","domNode","ReactDOM","findDOMNode","classes","onConfigurationChanged","imageSupport","uploadSoundSupport","partialScoring","lockChoiceOrder","choiceRationale","spellCheck","maxResponseAreas","maxImageWidth","maxImageHeight","withRubric","rationaleEnabled","choiceRationaleEnabled","promptEnabled","teacherInstructionsEnabled","spellCheckEnabled","errors","rubricEnabled","responseAreasError","responseAreaChoicesError","defaultImageMaxWidth","defaultImageMaxHeight","renderChoiceRationale","Object","keys","__html","onChoiceRationaleChanged","toolbarOpts","toolbarEditorPosition","position","validationMessage","Settings","Properties","onTeacherInstructionsChanged","language","onPromptChanged","onRationaleChanged","ALL_PLUGINS","type","options","duplicates","respAreaToolbar","node","onToolbarDone","onAddChoice","onCheck","onRemoveChoice","data","get","onSelectChoice","onChange","onBlur","React","Component","object","isRequired","disableSidePanel","shape","add","Styled"],"mappings":"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","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport EditableHtml, { ALL_PLUGINS } from '@pie-lib/editable-html';\nimport { InputContainer, layout, settings } from '@pie-lib/config-ui';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport cloneDeep from 'lodash/cloneDeep';\nimport isEqual from 'lodash/isEqual';\nimport isUndefined from 'lodash/isUndefined';\nimport isEmpty from 'lodash/isEmpty';\nimport reduce from 'lodash/reduce';\nimport max from 'lodash/max';\nimport { withStyles } from '@material-ui/core/styles';\nimport Button from '@material-ui/core/Button';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport Typography from '@material-ui/core/Typography';\nimport ExpansionPanel from '@material-ui/core/ExpansionPanel';\nimport ExpansionPanelSummary from '@material-ui/core/ExpansionPanelSummary';\nimport ExpansionPanelDetails from '@material-ui/core/ExpansionPanelDetails';\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\nimport Info from '@material-ui/icons/Info';\nimport InlineDropdownToolbar from './inline-dropdown-toolbar';\nimport { generateValidationMessage } from './utils';\n\nconst { toggle, Panel } = settings;\n\nconst InfoDialog = ({ open, onCancel, onOk, title }) => (\n <Dialog open={open}>\n <DialogTitle>{title}</DialogTitle>\n <DialogActions>\n {onOk && (\n <Button onClick={onOk} color=\"primary\">\n OK\n </Button>\n )}\n {onCancel && (\n <Button onClick={onCancel} color=\"primary\">\n Cancel\n </Button>\n )}\n </DialogActions>\n </Dialog>\n);\n\nInfoDialog.propTypes = {\n open: PropTypes.bool,\n onCancel: PropTypes.func,\n onOk: PropTypes.func,\n title: PropTypes.string\n};\n\nconst styles = theme => ({\n promptHolder: {\n width: '100%',\n paddingBottom: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2\n },\n prompt: {\n paddingTop: theme.spacing.unit * 2,\n width: '100%'\n },\n markup: {\n minHeight: '100px',\n paddingTop: theme.spacing.unit * 2,\n width: '100%',\n '& [data-slate-editor=\"true\"]': {\n minHeight: '100px'\n }\n },\n design: {\n paddingTop: theme.spacing.unit * 3\n },\n choiceConfiguration: {\n paddingTop: theme.spacing.unit * 2,\n paddingBottom: theme.spacing.unit * 2\n },\n switchElement: {\n justifyContent: 'space-between',\n margin: 0\n },\n addButton: {\n float: 'right'\n },\n text: {\n fontFamily: 'Cerebri Sans',\n fontSize: '16px',\n lineHeight: '19px',\n color: '#495B8F',\n marginRight: '5px'\n },\n rationaleLabel: {\n display: 'flex',\n whiteSpace: 'break-spaces'\n },\n rationaleChoices: {\n marginTop: '16px'\n },\n panelDetails: {\n display: 'block'\n },\n flexContainer: {\n display: 'flex',\n alignItems: 'center',\n marginBottom: '5px'\n },\n tooltip: {\n fontSize: '12px',\n whiteSpace: 'pre',\n maxWidth: '500px'\n },\n errorText: {\n fontSize: '12px',\n color: 'red',\n paddingTop: '5px',\n marginTop: '8px'\n }\n});\n\nconst createElementFromHTML = htmlString => {\n const div = document.createElement('div');\n\n div.innerHTML = (htmlString || '').trim();\n\n return div;\n};\n\nconst prepareVal = html => {\n const tmp = document.createElement('DIV');\n\n tmp.innerHTML = html;\n\n const value = tmp.textContent || tmp.innerText || '';\n\n return value.trim();\n};\n\nexport class Main extends React.Component {\n static propTypes = {\n configuration: PropTypes.object.isRequired,\n model: PropTypes.object.isRequired,\n disableSidePanel: PropTypes.bool,\n onModelChanged: PropTypes.func.isRequired,\n onConfigurationChanged: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired\n }),\n uploadSoundSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired\n })\n };\n\n state = {\n dialog: {\n open: false\n }\n };\n\n componentDidMount() {\n const {\n model: { choices }\n } = this.props;\n\n this.setState({ respAreaChoices: cloneDeep(choices) });\n }\n\n UNSAFE_componentWillReceiveProps(nProps) {\n const newState = {};\n\n if (\n !isEqual(nProps.model.choices, this.props.model.choices) ||\n !isEqual(nProps.model.choices, this.state.respAreaChoices)\n ) {\n newState.respAreaChoices = cloneDeep(nProps.model.choices);\n }\n\n if (!isEmpty(newState)) {\n this.setState(newState);\n }\n }\n\n componentDidUpdate() {\n //eslint-disable-next-line\n const domNode = ReactDOM.findDOMNode(this);\n\n renderMath(domNode);\n }\n\n onModelChange = newVal => {\n this.props.onModelChanged({\n ...this.props.model,\n ...newVal\n });\n };\n\n onPromptChanged = prompt => {\n this.onModelChange({ prompt });\n };\n\n onRationaleChanged = rationale => {\n this.onModelChange({ rationale });\n };\n\n onChoiceRationaleChanged = (index, choice) => {\n const { model } = this.props;\n const indexOfChoice = model.choices && model.choices[index] && model.choices[index]\n .findIndex(elem => elem.label === choice.label && elem.value === choice.value);\n\n model.choices[index] && model.choices[index].splice(indexOfChoice, 1, choice);\n\n this.onModelChange(model);\n };\n\n onTeacherInstructionsChanged = teacherInstructions => {\n this.onModelChange({ teacherInstructions });\n };\n\n onMarkupChanged = slateMarkup => {\n this.onModelChange({ slateMarkup });\n };\n\n onCheck = callback => {\n this.setState({\n dialog: {\n open: true,\n message:\n 'Response areas with under 2 options or with no correct answers will be discarded',\n onOk: () => {\n this.setState(\n {\n dialog: {\n open: false\n }\n },\n callback\n );\n },\n onCancel: () =>\n this.setState({\n dialog: {\n open: false\n }\n })\n }\n });\n };\n\n onChange = markup => {\n const { respAreaChoices } = this.state;\n const domMarkup = createElementFromHTML(markup);\n const allRespAreas = domMarkup.querySelectorAll(\n '[data-type=\"inline_dropdown\"]'\n );\n\n const allChoices = {};\n\n allRespAreas.forEach(el => {\n allChoices[el.dataset.index] = el.dataset.value || '';\n });\n\n const existingRespAreaChoices = reduce(\n respAreaChoices,\n (obj, choices, key) => {\n if (!isUndefined(allChoices[key])) {\n obj[key] = respAreaChoices[key];\n }\n\n return obj;\n },\n {}\n );\n\n const newRespAreaChoices = {};\n let shouldWarn = false;\n\n allRespAreas.forEach((el, index) => {\n const newChoices = existingRespAreaChoices[el.dataset.index] || [];\n\n if (newChoices.length < 2 || !newChoices.find(c => c.correct)) {\n el.remove();\n shouldWarn = true;\n } else {\n newRespAreaChoices[index] =\n existingRespAreaChoices[el.dataset.index] || [];\n el.dataset.index = index;\n }\n });\n\n if (shouldWarn) {\n this.setState({\n dialog: {\n open: true,\n message:\n 'Response areas with under 2 options or with no correct answers will be discarded',\n onOk: () => {\n this.setState(\n {\n dialog: {\n open: false\n }\n },\n () =>\n this.onModelChange({\n choices: cloneDeep(newRespAreaChoices),\n slateMarkup: domMarkup.innerHTML\n })\n );\n },\n onCancel: () =>\n this.setState({\n dialog: {\n open: false\n }\n })\n }\n });\n } else {\n this.onModelChange({\n choices: cloneDeep(newRespAreaChoices),\n slateMarkup: domMarkup.innerHTML\n });\n }\n };\n\n onAddChoice = (index, label) => {\n const { respAreaChoices } = this.state;\n const { maxResponseAreaChoices } = this.props.configuration;\n\n if (respAreaChoices[index] && respAreaChoices[index].length >= maxResponseAreaChoices) {\n this.setState({\n dialog: {\n open: true,\n message: `There are only ${maxResponseAreaChoices} answers allowed per choice.`,\n onOk: () => {\n this.setState({\n dialog: {\n open: false\n }\n });\n }\n }\n });\n\n return;\n }\n\n if (!respAreaChoices[index]) {\n respAreaChoices[index] = [];\n }\n\n if (\n (respAreaChoices[index] || []).find(\n r => prepareVal(r.label) === prepareVal(label)\n )\n ) {\n this.setState({\n dialog: {\n open: true,\n message: 'Duplicate answers are not allowed.',\n onOk: () => {\n this.setState({\n dialog: {\n open: false\n }\n });\n }\n }\n });\n\n return;\n }\n\n const value = (respAreaChoices[index] && max(respAreaChoices[index].map(c => parseInt(c.value)).filter(val => !isNaN(val)))) || 0;\n\n respAreaChoices[index].push({\n label,\n value: `${value + 1}`,\n correct: false\n });\n\n this.onModelChange({ choices: cloneDeep(respAreaChoices) });\n };\n\n onRemoveChoice = (respIndex, index) => {\n const { respAreaChoices } = this.state;\n\n respAreaChoices[respIndex].splice(index, 1);\n\n this.onModelChange({ choices: cloneDeep(respAreaChoices) });\n };\n\n onSelectChoice = (respIndex, selectedIndex) => {\n const { respAreaChoices } = this.state;\n\n respAreaChoices[respIndex] = respAreaChoices[respIndex].map(\n (ch, index) => ({ ...ch, correct: index === selectedIndex })\n );\n\n this.onModelChange({ choices: cloneDeep(respAreaChoices) });\n };\n\n render() {\n const { dialog } = this.state;\n const {\n classes,\n model,\n configuration,\n onConfigurationChanged,\n imageSupport,\n uploadSoundSupport\n } = this.props;\n const {\n prompt = {},\n partialScoring = {},\n lockChoiceOrder = {},\n rationale = {},\n choiceRationale = {},\n teacherInstructions = {},\n spellCheck = {},\n maxResponseAreas,\n maxImageWidth = {},\n maxImageHeight = {},\n withRubric,\n } = configuration || {};\n const {\n rationaleEnabled,\n choiceRationaleEnabled,\n promptEnabled,\n teacherInstructionsEnabled,\n choices,\n spellCheckEnabled,\n errors,\n rubricEnabled\n } = model || {};\n const { responseAreasError, responseAreaChoicesError } = errors || {};\n\n const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;\n const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;\n\n const renderChoiceRationale = () => (Object.keys(choices) || []).map((key, index) =>\n <div key={key} className={classes.rationaleChoices}>\n <ExpansionPanel>\n <ExpansionPanelSummary expandIcon={<ExpandMoreIcon/>}>\n <Typography className={classes.text}>\n {`Rationale for response area #${index + 1}`}\n </Typography>\n </ExpansionPanelSummary>\n <ExpansionPanelDetails className={classes.panelDetails}>\n {(choices[key] || []).map(choice =>\n <InputContainer\n key={choice.label}\n label={\n <span\n className={classes.rationaleLabel}\n dangerouslySetInnerHTML={{\n __html:\n `${rationale.label} for ${choice.label} (${choice.correct ? 'correct' : 'incorrect'})`\n }}\n />\n }\n className={classes.promptHolder}\n >\n <EditableHtml\n className={classes.prompt}\n markup={choice.rationale || ''}\n spellCheck={spellCheckEnabled}\n onChange={c =>\n this.onChoiceRationaleChanged(key, {\n ...choice,\n rationale: c\n })\n }\n imageSupport={imageSupport}\n maxImageWidth={maxImageWidth && maxImageWidth.rationale || defaultImageMaxWidth}\n maxImageHeight={maxImageHeight && maxImageHeight.rationale || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n />\n </InputContainer>\n )}\n </ExpansionPanelDetails>\n </ExpansionPanel>\n </div>\n )\n\n const toolbarOpts = {};\n\n switch (model.toolbarEditorPosition) {\n case 'top':\n toolbarOpts.position = 'top';\n break;\n default:\n toolbarOpts.position = 'bottom';\n break;\n }\n\n const validationMessage = generateValidationMessage(configuration);\n\n return (\n <div className={classes.design}>\n <layout.ConfigLayout\n settings={\n <Panel\n model={model}\n configuration={configuration}\n onChangeModel={model => this.onModelChange(model)}\n onChangeConfiguration={configuration =>\n onConfigurationChanged(configuration, true)\n }\n groups={{\n Settings: {\n partialScoring:\n partialScoring.settings && toggle(partialScoring.label),\n lockChoiceOrder:\n lockChoiceOrder.settings && toggle(lockChoiceOrder.label)\n },\n Properties: {\n teacherInstructionsEnabled:\n teacherInstructions.settings &&\n toggle(teacherInstructions.label),\n rationaleEnabled:\n rationale.settings && toggle(rationale.label),\n choiceRationaleEnabled:\n choiceRationale.settings && toggle(choiceRationale.label),\n promptEnabled: prompt.settings && toggle(prompt.label),\n spellCheckEnabled:\n spellCheck.settings && toggle(spellCheck.label),\n rubricEnabled: withRubric.settings && toggle(withRubric.label)\n }\n }}\n />\n }\n >\n <div>\n {teacherInstructionsEnabled && (\n <InputContainer\n label={teacherInstructions.label}\n className={classes.promptHolder}\n >\n <EditableHtml\n className={classes.prompt}\n markup={model.teacherInstructions || ''}\n onChange={this.onTeacherInstructionsChanged}\n imageSupport={imageSupport}\n nonEmpty={false}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n maxImageWidth={maxImageWidth && maxImageWidth.teacherInstructions || defaultImageMaxWidth}\n maxImageHeight={maxImageHeight && maxImageHeight.teacherInstructions || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n />\n </InputContainer>\n )}\n\n {promptEnabled && (\n <InputContainer\n label={prompt.label}\n className={classes.promptHolder}\n >\n <EditableHtml\n className={classes.prompt}\n markup={model.prompt}\n onChange={this.onPromptChanged}\n imageSupport={imageSupport}\n nonEmpty={false}\n disableUnderline\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n maxImageWidth={defaultImageMaxWidth}\n maxImageHeight={defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n />\n </InputContainer>\n )}\n\n {rationaleEnabled && (\n <InputContainer\n label={rationale.label}\n className={classes.promptHolder}\n >\n <EditableHtml\n className={classes.prompt}\n markup={model.rationale || ''}\n onChange={this.onRationaleChanged}\n imageSupport={imageSupport}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n maxImageWidth={maxImageWidth && maxImageWidth.rationale || defaultImageMaxWidth}\n maxImageHeight={maxImageHeight && maxImageHeight.rationale || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n />\n </InputContainer>\n )}\n\n <div className={classes.flexContainer}>\n <Typography className={classes.text}>\n Define Template, Choices, and Correct Responses\n </Typography>\n <Tooltip\n classes={{ tooltip: classes.tooltip }}\n disableFocusListener\n disableTouchListener\n placement={'right'}\n title={validationMessage}\n >\n <Info fontSize={'small'} color={'primary'}/>\n </Tooltip>\n </div>\n {responseAreasError && <div className={classes.errorText}>{responseAreasError}</div>}\n {responseAreaChoicesError && <div className={classes.errorText}>{responseAreaChoicesError}</div>}\n\n <InfoDialog\n open={dialog.open}\n title={dialog.message}\n onCancel={dialog.onCancel}\n onOk={dialog.onOk}\n />\n <EditableHtml\n activePlugins={ALL_PLUGINS}\n toolbarOpts={{ position: 'top' }}\n responseAreaProps={{\n type: 'inline-dropdown',\n options: {\n duplicates: true\n },\n maxResponseAreas: maxResponseAreas,\n respAreaToolbar: (node, value, onToolbarDone) => {\n const { respAreaChoices } = this.state;\n\n return () => (\n <InlineDropdownToolbar\n onAddChoice={this.onAddChoice}\n onCheck={this.onCheck}\n onRemoveChoice={index =>\n this.onRemoveChoice(node.data.get('index'), index)\n }\n onSelectChoice={index =>\n this.onSelectChoice(node.data.get('index'), index)\n }\n node={node}\n value={value}\n onToolbarDone={onToolbarDone}\n choices={respAreaChoices[node.data.get('index')]}\n spellCheck={spellCheckEnabled}\n uploadSoundSupport={uploadSoundSupport}\n />\n );\n }\n }}\n spellCheck={spellCheckEnabled}\n className={classes.markup}\n markup={model.slateMarkup || ''}\n onChange={this.onChange}\n imageSupport={imageSupport}\n disableImageAlignmentButtons={true}\n onBlur={this.onBlur}\n disabled={false}\n highlightShape={false}\n error={responseAreasError}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n />\n <br />\n {choiceRationaleEnabled && renderChoiceRationale()}\n </div>\n </layout.ConfigLayout>\n </div>\n );\n }\n}\n\nconst Styled = withStyles(styles)(Main);\n\nexport default Styled;\n"],"file":"main.js"}
|
|
1
|
+
{"version":3,"sources":["../src/main.jsx"],"names":["toggle","settings","Panel","InfoDialog","open","onCancel","onOk","title","propTypes","PropTypes","bool","func","string","styles","theme","promptHolder","width","paddingBottom","spacing","unit","marginBottom","prompt","paddingTop","markup","minHeight","design","choiceConfiguration","switchElement","justifyContent","margin","addButton","text","fontFamily","fontSize","lineHeight","color","marginRight","rationaleLabel","display","whiteSpace","rationaleChoices","marginTop","panelDetails","flexContainer","alignItems","tooltip","maxWidth","errorText","createElementFromHTML","htmlString","div","document","createElement","innerHTML","trim","prepareVal","html","tmp","value","textContent","innerText","Main","dialog","newVal","props","onModelChanged","model","onModelChange","rationale","index","choice","indexOfChoice","choices","findIndex","elem","label","splice","teacherInstructions","slateMarkup","callback","setState","message","respAreaChoices","state","domMarkup","allRespAreas","querySelectorAll","allChoices","forEach","el","dataset","existingRespAreaChoices","obj","key","newRespAreaChoices","shouldWarn","newChoices","length","find","c","correct","remove","maxResponseAreaChoices","configuration","r","map","parseInt","filter","val","isNaN","push","respIndex","selectedIndex","ch","nProps","newState","domNode","ReactDOM","findDOMNode","classes","onConfigurationChanged","imageSupport","uploadSoundSupport","partialScoring","lockChoiceOrder","choiceRationale","spellCheck","maxResponseAreas","maxImageWidth","maxImageHeight","withRubric","rationaleEnabled","choiceRationaleEnabled","promptEnabled","teacherInstructionsEnabled","spellCheckEnabled","errors","rubricEnabled","responseAreasError","responseAreaChoicesError","defaultImageMaxWidth","defaultImageMaxHeight","renderChoiceRationale","Object","keys","__html","onChoiceRationaleChanged","toolbarOpts","toolbarEditorPosition","position","validationMessage","Settings","Properties","onTeacherInstructionsChanged","language","onPromptChanged","onRationaleChanged","ALL_PLUGINS","type","options","duplicates","respAreaToolbar","node","onToolbarDone","onAddChoice","onCheck","onRemoveChoice","data","get","onSelectChoice","onChange","onBlur","React","Component","object","isRequired","disableSidePanel","shape","add","Styled"],"mappings":"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","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport EditableHtml, { ALL_PLUGINS } from '@pie-lib/editable-html';\nimport { InputContainer, layout, settings } from '@pie-lib/config-ui';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport cloneDeep from 'lodash/cloneDeep';\nimport isEqual from 'lodash/isEqual';\nimport isUndefined from 'lodash/isUndefined';\nimport isEmpty from 'lodash/isEmpty';\nimport reduce from 'lodash/reduce';\nimport max from 'lodash/max';\nimport { withStyles } from '@material-ui/core/styles';\nimport Button from '@material-ui/core/Button';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport Typography from '@material-ui/core/Typography';\nimport ExpansionPanel from '@material-ui/core/ExpansionPanel';\nimport ExpansionPanelSummary from '@material-ui/core/ExpansionPanelSummary';\nimport ExpansionPanelDetails from '@material-ui/core/ExpansionPanelDetails';\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\nimport Info from '@material-ui/icons/Info';\nimport InlineDropdownToolbar from './inline-dropdown-toolbar';\nimport { generateValidationMessage } from './utils';\n\nconst { toggle, Panel } = settings;\n\nconst InfoDialog = ({ open, onCancel, onOk, title }) => (\n <Dialog open={open}>\n <DialogTitle>{title}</DialogTitle>\n <DialogActions>\n {onOk && (\n <Button onClick={onOk} color=\"primary\">\n OK\n </Button>\n )}\n {onCancel && (\n <Button onClick={onCancel} color=\"primary\">\n Cancel\n </Button>\n )}\n </DialogActions>\n </Dialog>\n);\n\nInfoDialog.propTypes = {\n open: PropTypes.bool,\n onCancel: PropTypes.func,\n onOk: PropTypes.func,\n title: PropTypes.string\n};\n\nconst styles = theme => ({\n promptHolder: {\n width: '100%',\n paddingBottom: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2\n },\n prompt: {\n paddingTop: theme.spacing.unit * 2,\n width: '100%'\n },\n markup: {\n minHeight: '100px',\n paddingTop: theme.spacing.unit * 2,\n width: '100%',\n '& [data-slate-editor=\"true\"]': {\n minHeight: '100px'\n }\n },\n design: {\n paddingTop: theme.spacing.unit * 3\n },\n choiceConfiguration: {\n paddingTop: theme.spacing.unit * 2,\n paddingBottom: theme.spacing.unit * 2\n },\n switchElement: {\n justifyContent: 'space-between',\n margin: 0\n },\n addButton: {\n float: 'right'\n },\n text: {\n fontFamily: 'Cerebri Sans',\n fontSize: '16px',\n lineHeight: '19px',\n color: '#495B8F',\n marginRight: '5px'\n },\n rationaleLabel: {\n display: 'flex',\n whiteSpace: 'break-spaces'\n },\n rationaleChoices: {\n marginTop: '16px'\n },\n panelDetails: {\n display: 'block'\n },\n flexContainer: {\n display: 'flex',\n alignItems: 'center',\n marginBottom: '5px'\n },\n tooltip: {\n fontSize: '12px',\n whiteSpace: 'pre',\n maxWidth: '500px'\n },\n errorText: {\n fontSize: '12px',\n color: 'red',\n paddingTop: '5px',\n marginTop: '8px'\n }\n});\n\nconst createElementFromHTML = htmlString => {\n const div = document.createElement('div');\n\n div.innerHTML = (htmlString || '').trim();\n\n return div;\n};\n\nconst prepareVal = html => {\n const tmp = document.createElement('DIV');\n\n tmp.innerHTML = html;\n\n const value = tmp.textContent || tmp.innerText || '';\n\n return value.trim();\n};\n\nexport class Main extends React.Component {\n static propTypes = {\n configuration: PropTypes.object.isRequired,\n model: PropTypes.object.isRequired,\n disableSidePanel: PropTypes.bool,\n onModelChanged: PropTypes.func.isRequired,\n onConfigurationChanged: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired\n }),\n uploadSoundSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired\n })\n };\n\n state = {\n dialog: {\n open: false\n }\n };\n\n componentDidMount() {\n const {\n model: { choices }\n } = this.props;\n\n this.setState({ respAreaChoices: cloneDeep(choices) });\n }\n\n UNSAFE_componentWillReceiveProps(nProps) {\n const newState = {};\n\n if (\n !isEqual(nProps.model.choices, this.props.model.choices) ||\n !isEqual(nProps.model.choices, this.state.respAreaChoices)\n ) {\n newState.respAreaChoices = cloneDeep(nProps.model.choices);\n }\n\n if (!isEmpty(newState)) {\n this.setState(newState);\n }\n }\n\n componentDidUpdate() {\n //eslint-disable-next-line\n const domNode = ReactDOM.findDOMNode(this);\n\n renderMath(domNode);\n }\n\n onModelChange = newVal => {\n this.props.onModelChanged({\n ...this.props.model,\n ...newVal\n });\n };\n\n onPromptChanged = prompt => {\n this.onModelChange({ prompt });\n };\n\n onRationaleChanged = rationale => {\n this.onModelChange({ rationale });\n };\n\n onChoiceRationaleChanged = (index, choice) => {\n const { model } = this.props;\n const indexOfChoice = model.choices && model.choices[index] && model.choices[index]\n .findIndex(elem => elem.label === choice.label && elem.value === choice.value);\n\n model.choices[index] && model.choices[index].splice(indexOfChoice, 1, choice);\n\n this.onModelChange(model);\n };\n\n onTeacherInstructionsChanged = teacherInstructions => {\n this.onModelChange({ teacherInstructions });\n };\n\n onMarkupChanged = slateMarkup => {\n this.onModelChange({ slateMarkup });\n };\n\n onCheck = callback => {\n this.setState({\n dialog: {\n open: true,\n message:\n 'Response areas with under 2 options or with no correct answers will be discarded',\n onOk: () => {\n this.setState(\n {\n dialog: {\n open: false\n }\n },\n callback\n );\n },\n onCancel: () =>\n this.setState({\n dialog: {\n open: false\n }\n })\n }\n });\n };\n\n onChange = markup => {\n const { respAreaChoices } = this.state;\n const domMarkup = createElementFromHTML(markup);\n const allRespAreas = domMarkup.querySelectorAll(\n '[data-type=\"inline_dropdown\"]'\n );\n\n const allChoices = {};\n\n allRespAreas.forEach(el => {\n allChoices[el.dataset.index] = el.dataset.value || '';\n });\n\n const existingRespAreaChoices = reduce(\n respAreaChoices,\n (obj, choices, key) => {\n if (!isUndefined(allChoices[key])) {\n obj[key] = respAreaChoices[key];\n }\n\n return obj;\n },\n {}\n );\n\n const newRespAreaChoices = {};\n let shouldWarn = false;\n\n allRespAreas.forEach((el, index) => {\n const newChoices = existingRespAreaChoices[el.dataset.index] || [];\n\n if (newChoices.length < 2 || !newChoices.find(c => c.correct)) {\n el.remove();\n shouldWarn = true;\n } else {\n newRespAreaChoices[index] =\n existingRespAreaChoices[el.dataset.index] || [];\n el.dataset.index = index;\n }\n });\n\n if (shouldWarn) {\n this.setState({\n dialog: {\n open: true,\n message:\n 'Response areas with under 2 options or with no correct answers will be discarded',\n onOk: () => {\n this.setState(\n {\n dialog: {\n open: false\n }\n },\n () =>\n this.onModelChange({\n choices: cloneDeep(newRespAreaChoices),\n slateMarkup: domMarkup.innerHTML\n })\n );\n },\n onCancel: () =>\n this.setState({\n dialog: {\n open: false\n }\n })\n }\n });\n } else {\n this.onModelChange({\n choices: cloneDeep(newRespAreaChoices),\n slateMarkup: domMarkup.innerHTML\n });\n }\n };\n\n onAddChoice = (index, label) => {\n const { respAreaChoices } = this.state;\n const { maxResponseAreaChoices } = this.props.configuration;\n\n if (respAreaChoices[index] && respAreaChoices[index].length >= maxResponseAreaChoices) {\n this.setState({\n dialog: {\n open: true,\n message: `There are only ${maxResponseAreaChoices} answers allowed per choice.`,\n onOk: () => {\n this.setState({\n dialog: {\n open: false\n }\n });\n }\n }\n });\n\n return;\n }\n\n if (!respAreaChoices[index]) {\n respAreaChoices[index] = [];\n }\n\n if (\n (respAreaChoices[index] || []).find(\n r => prepareVal(r.label) === prepareVal(label)\n )\n ) {\n this.setState({\n dialog: {\n open: true,\n message: 'Duplicate answers are not allowed.',\n onOk: () => {\n this.setState({\n dialog: {\n open: false\n }\n });\n }\n }\n });\n\n return;\n }\n\n const value = (respAreaChoices[index] && max(respAreaChoices[index].map(c => parseInt(c.value)).filter(val => !isNaN(val)))) || 0;\n\n respAreaChoices[index].push({\n label,\n value: `${value + 1}`,\n correct: false\n });\n\n this.onModelChange({ choices: cloneDeep(respAreaChoices) });\n };\n\n onRemoveChoice = (respIndex, index) => {\n const { respAreaChoices } = this.state;\n\n respAreaChoices[respIndex].splice(index, 1);\n\n this.onModelChange({ choices: cloneDeep(respAreaChoices) });\n };\n\n onSelectChoice = (respIndex, selectedIndex) => {\n const { respAreaChoices } = this.state;\n\n respAreaChoices[respIndex] = respAreaChoices[respIndex].map(\n (ch, index) => ({ ...ch, correct: index === selectedIndex })\n );\n\n this.onModelChange({ choices: cloneDeep(respAreaChoices) });\n };\n\n render() {\n const { dialog } = this.state;\n const {\n classes,\n model,\n configuration,\n onConfigurationChanged,\n imageSupport,\n uploadSoundSupport\n } = this.props;\n const {\n prompt = {},\n partialScoring = {},\n lockChoiceOrder = {},\n rationale = {},\n choiceRationale = {},\n teacherInstructions = {},\n spellCheck = {},\n maxResponseAreas,\n maxImageWidth = {},\n maxImageHeight = {},\n withRubric = {},\n } = configuration || {};\n const {\n rationaleEnabled,\n choiceRationaleEnabled,\n promptEnabled,\n teacherInstructionsEnabled,\n choices,\n spellCheckEnabled,\n errors,\n rubricEnabled\n } = model || {};\n const { responseAreasError, responseAreaChoicesError } = errors || {};\n\n const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;\n const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;\n\n const renderChoiceRationale = () => (Object.keys(choices) || []).map((key, index) =>\n <div key={key} className={classes.rationaleChoices}>\n <ExpansionPanel>\n <ExpansionPanelSummary expandIcon={<ExpandMoreIcon/>}>\n <Typography className={classes.text}>\n {`Rationale for response area #${index + 1}`}\n </Typography>\n </ExpansionPanelSummary>\n <ExpansionPanelDetails className={classes.panelDetails}>\n {(choices[key] || []).map(choice =>\n <InputContainer\n key={choice.label}\n label={\n <span\n className={classes.rationaleLabel}\n dangerouslySetInnerHTML={{\n __html:\n `${rationale.label} for ${choice.label} (${choice.correct ? 'correct' : 'incorrect'})`\n }}\n />\n }\n className={classes.promptHolder}\n >\n <EditableHtml\n className={classes.prompt}\n markup={choice.rationale || ''}\n spellCheck={spellCheckEnabled}\n onChange={c =>\n this.onChoiceRationaleChanged(key, {\n ...choice,\n rationale: c\n })\n }\n imageSupport={imageSupport}\n maxImageWidth={maxImageWidth && maxImageWidth.rationale || defaultImageMaxWidth}\n maxImageHeight={maxImageHeight && maxImageHeight.rationale || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n />\n </InputContainer>\n )}\n </ExpansionPanelDetails>\n </ExpansionPanel>\n </div>\n )\n\n const toolbarOpts = {};\n\n switch (model.toolbarEditorPosition) {\n case 'top':\n toolbarOpts.position = 'top';\n break;\n default:\n toolbarOpts.position = 'bottom';\n break;\n }\n\n const validationMessage = generateValidationMessage(configuration);\n\n return (\n <div className={classes.design}>\n <layout.ConfigLayout\n settings={\n <Panel\n model={model}\n configuration={configuration}\n onChangeModel={model => this.onModelChange(model)}\n onChangeConfiguration={configuration =>\n onConfigurationChanged(configuration, true)\n }\n groups={{\n Settings: {\n partialScoring:\n partialScoring.settings && toggle(partialScoring.label),\n lockChoiceOrder:\n lockChoiceOrder.settings && toggle(lockChoiceOrder.label)\n },\n Properties: {\n teacherInstructionsEnabled:\n teacherInstructions.settings &&\n toggle(teacherInstructions.label),\n rationaleEnabled:\n rationale.settings && toggle(rationale.label),\n choiceRationaleEnabled:\n choiceRationale.settings && toggle(choiceRationale.label),\n promptEnabled: prompt.settings && toggle(prompt.label),\n spellCheckEnabled:\n spellCheck.settings && toggle(spellCheck.label),\n rubricEnabled: withRubric?.settings && toggle(withRubric?.label)\n }\n }}\n />\n }\n >\n <div>\n {teacherInstructionsEnabled && (\n <InputContainer\n label={teacherInstructions.label}\n className={classes.promptHolder}\n >\n <EditableHtml\n className={classes.prompt}\n markup={model.teacherInstructions || ''}\n onChange={this.onTeacherInstructionsChanged}\n imageSupport={imageSupport}\n nonEmpty={false}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n maxImageWidth={maxImageWidth && maxImageWidth.teacherInstructions || defaultImageMaxWidth}\n maxImageHeight={maxImageHeight && maxImageHeight.teacherInstructions || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n />\n </InputContainer>\n )}\n\n {promptEnabled && (\n <InputContainer\n label={prompt.label}\n className={classes.promptHolder}\n >\n <EditableHtml\n className={classes.prompt}\n markup={model.prompt}\n onChange={this.onPromptChanged}\n imageSupport={imageSupport}\n nonEmpty={false}\n disableUnderline\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n maxImageWidth={defaultImageMaxWidth}\n maxImageHeight={defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n />\n </InputContainer>\n )}\n\n {rationaleEnabled && (\n <InputContainer\n label={rationale.label}\n className={classes.promptHolder}\n >\n <EditableHtml\n className={classes.prompt}\n markup={model.rationale || ''}\n onChange={this.onRationaleChanged}\n imageSupport={imageSupport}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n maxImageWidth={maxImageWidth && maxImageWidth.rationale || defaultImageMaxWidth}\n maxImageHeight={maxImageHeight && maxImageHeight.rationale || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n />\n </InputContainer>\n )}\n\n <div className={classes.flexContainer}>\n <Typography className={classes.text}>\n Define Template, Choices, and Correct Responses\n </Typography>\n <Tooltip\n classes={{ tooltip: classes.tooltip }}\n disableFocusListener\n disableTouchListener\n placement={'right'}\n title={validationMessage}\n >\n <Info fontSize={'small'} color={'primary'}/>\n </Tooltip>\n </div>\n {responseAreasError && <div className={classes.errorText}>{responseAreasError}</div>}\n {responseAreaChoicesError && <div className={classes.errorText}>{responseAreaChoicesError}</div>}\n\n <InfoDialog\n open={dialog.open}\n title={dialog.message}\n onCancel={dialog.onCancel}\n onOk={dialog.onOk}\n />\n <EditableHtml\n activePlugins={ALL_PLUGINS}\n toolbarOpts={{ position: 'top' }}\n responseAreaProps={{\n type: 'inline-dropdown',\n options: {\n duplicates: true\n },\n maxResponseAreas: maxResponseAreas,\n respAreaToolbar: (node, value, onToolbarDone) => {\n const { respAreaChoices } = this.state;\n\n return () => (\n <InlineDropdownToolbar\n onAddChoice={this.onAddChoice}\n onCheck={this.onCheck}\n onRemoveChoice={index =>\n this.onRemoveChoice(node.data.get('index'), index)\n }\n onSelectChoice={index =>\n this.onSelectChoice(node.data.get('index'), index)\n }\n node={node}\n value={value}\n onToolbarDone={onToolbarDone}\n choices={respAreaChoices[node.data.get('index')]}\n spellCheck={spellCheckEnabled}\n uploadSoundSupport={uploadSoundSupport}\n />\n );\n }\n }}\n spellCheck={spellCheckEnabled}\n className={classes.markup}\n markup={model.slateMarkup || ''}\n onChange={this.onChange}\n imageSupport={imageSupport}\n disableImageAlignmentButtons={true}\n onBlur={this.onBlur}\n disabled={false}\n highlightShape={false}\n error={responseAreasError}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n />\n <br />\n {choiceRationaleEnabled && renderChoiceRationale()}\n </div>\n </layout.ConfigLayout>\n </div>\n );\n }\n}\n\nconst Styled = withStyles(styles)(Main);\n\nexport default Styled;\n"],"file":"main.js"}
|
package/configure/package.json
CHANGED
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
6
|
"repository": "pie-framework/pie-elements",
|
|
7
|
-
"version": "4.4.1
|
|
7
|
+
"version": "4.4.1",
|
|
8
8
|
"description": "",
|
|
9
9
|
"scripts": {
|
|
10
10
|
"test": "echo \"Error: no test specified\" && exit 1",
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
},
|
|
26
26
|
"author": "",
|
|
27
27
|
"license": "ISC",
|
|
28
|
-
"gitHead": "
|
|
28
|
+
"gitHead": "b93c79afe458fc660c2e985484a468a1e559853d",
|
|
29
29
|
"main": "lib/index.js",
|
|
30
30
|
"module": "src/index.js"
|
|
31
31
|
}
|