@pie-element/categorize 7.14.1-next.6 → 7.14.2-next.5

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 CHANGED
@@ -3,6 +3,24 @@
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
+ ## [7.14.1](https://github.com/pie-framework/pie-elements/compare/@pie-element/categorize@7.14.0...@pie-element/categorize@7.14.1) (2023-07-06)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * updated pie-lib PD-2150 ([72f20be](https://github.com/pie-framework/pie-elements/commit/72f20be258248c86dde8d5d587290cd640bfd947))
12
+ * **categorize:** PD-2960-create method to eliminate alternates ([9cc631c](https://github.com/pie-framework/pie-elements/commit/9cc631cf93c57f2192d93a306f064bbcf31ce03d))
13
+ * **categorize:** PD-2960-update snapshot ([232a96a](https://github.com/pie-framework/pie-elements/commit/232a96a5582c573c1044dd98195c9cac09662985))
14
+ * **categorize:** PD-2960: delete allow alternate from panel ([eebc1f6](https://github.com/pie-framework/pie-elements/commit/eebc1f6ea3753a8a1757b4b0e0521a94ce9bc166))
15
+ * **categorize:** PD-2960: disableAlternate in set model ([9bab550](https://github.com/pie-framework/pie-elements/commit/9bab550a5ef4aaf6bc3ae430d4e11e0df041d601))
16
+ * **categorize:** PD-2960: ensure alternate are removed from model (authoring and controller) ([4e12be5](https://github.com/pie-framework/pie-elements/commit/4e12be53aa7a0f0dd5c34b6a685c8e07ed62e975))
17
+ * **categorize:** PD-2960: set allowAlternate on false ([da85316](https://github.com/pie-framework/pie-elements/commit/da853165ed1f3777c6e1eaf508b90feee1ed32bf))
18
+ * updated editable-html dependent packages for PD-2150 ([ffa6297](https://github.com/pie-framework/pie-elements/commit/ffa62977a9e329c1e12ea1dfcb2af4ba4c993bca))
19
+
20
+
21
+
22
+
23
+
6
24
  # [7.14.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/categorize@7.13.0...@pie-element/categorize@7.14.0) (2023-06-13)
7
25
 
8
26
 
@@ -3,6 +3,24 @@
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
+ ## [6.14.1](https://github.com/pie-framework/pie-elements/compare/@pie-element/categorize-configure@6.14.0...@pie-element/categorize-configure@6.14.1) (2023-07-06)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * updated pie-lib PD-2150 ([72f20be](https://github.com/pie-framework/pie-elements/commit/72f20be258248c86dde8d5d587290cd640bfd947))
12
+ * **categorize:** PD-2960-create method to eliminate alternates ([9cc631c](https://github.com/pie-framework/pie-elements/commit/9cc631cf93c57f2192d93a306f064bbcf31ce03d))
13
+ * **categorize:** PD-2960-update snapshot ([232a96a](https://github.com/pie-framework/pie-elements/commit/232a96a5582c573c1044dd98195c9cac09662985))
14
+ * **categorize:** PD-2960: delete allow alternate from panel ([eebc1f6](https://github.com/pie-framework/pie-elements/commit/eebc1f6ea3753a8a1757b4b0e0521a94ce9bc166))
15
+ * **categorize:** PD-2960: disableAlternate in set model ([9bab550](https://github.com/pie-framework/pie-elements/commit/9bab550a5ef4aaf6bc3ae430d4e11e0df041d601))
16
+ * **categorize:** PD-2960: ensure alternate are removed from model (authoring and controller) ([4e12be5](https://github.com/pie-framework/pie-elements/commit/4e12be53aa7a0f0dd5c34b6a685c8e07ed62e975))
17
+ * **categorize:** PD-2960: set allowAlternate on false ([da85316](https://github.com/pie-framework/pie-elements/commit/da853165ed1f3777c6e1eaf508b90feee1ed32bf))
18
+ * updated editable-html dependent packages for PD-2150 ([ffa6297](https://github.com/pie-framework/pie-elements/commit/ffa62977a9e329c1e12ea1dfcb2af4ba4c993bca))
19
+
20
+
21
+
22
+
23
+
6
24
  # [6.14.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/categorize-configure@6.13.0...@pie-element/categorize-configure@6.14.0) (2023-06-13)
7
25
 
8
26
 
@@ -265,8 +265,9 @@ var Design = /*#__PURE__*/function (_React$Component) {
265
265
  choicesPosition: choicesPosition.settings && radio(choicesPosition.label, ['below', 'above', 'left', 'right']),
266
266
  allowMultiplePlacementsEnabled: allowMultiplePlacements.settings && dropdown(allowMultiplePlacements.label, [_utils.multiplePlacements.enabled, _utils.multiplePlacements.disabled, _utils.multiplePlacements.perChoice]),
267
267
  promptEnabled: prompt.settings && toggle(prompt.label),
268
- feedbackEnabled: feedback.settings && toggle(feedback.label),
269
- allowAlternateEnabled: allowAlternate.settings && toggle(allowAlternate.label)
268
+ feedbackEnabled: feedback.settings && toggle(feedback.label) // PD-2960: deleted temporary from settings panel
269
+ // allowAlternateEnabled: allowAlternate.settings && toggle(allowAlternate.label),
270
+
270
271
  };
271
272
  var panelProperties = {
272
273
  teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/design/index.jsx"],"names":["dropdown","settings","Panel","toggle","radio","numberField","IdProvider","uid","Provider","Design","props","model","onChange","updatedModel","choices","map","c","categoryCount","checkAllowMultiplePlacements","allowMultiplePlacementsEnabled","correctResponse","categories","id","label","h","content","rationale","teacherInstructions","feedback","updateModel","cr","alternateResponses","prompt","index","filter","alt","altIndex","choice","allowMultiplePlacements","multiplePlacements","enabled","disabled","generateId","classes","configuration","imageSupport","uploadSoundSupport","onConfigurationChanged","allowAlternate","categoriesPerRow","choicesPosition","contentDimensions","lockChoiceOrder","maxImageHeight","maxImageWidth","minCategoriesPerRow","partialScoring","scoringType","settingsPanelDisabled","spellCheck","studentInstructions","withRubric","mathMlOptions","allowAlternateEnabled","feedbackEnabled","promptEnabled","rationaleEnabled","spellCheckEnabled","teacherInstructionsEnabled","toolbarEditorPosition","toolbarOpts","position","config","columns","correctResponseCount","countChoiceInCorrectResponse","defaultImageMaxWidth","defaultImageMaxHeight","panelSettings","min","max","perChoice","panelProperties","studentInstructionsEnabled","rubricEnabled","Settings","Properties","inputContainer","input","changeTeacherInstructions","language","onPromptChanged","alternatesHeader","onAddAlternateResponse","categoriesList","onRemoveAlternateResponse","changeRationale","changeFeedback","React","Component","PropTypes","object","isRequired","className","string","func","shape","add","styles","theme","marginBottom","spacing","unit","text","paddingTop","paddingBottom","width","title"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { FeedbackConfig, InputContainer, layout, settings } from '@pie-lib/config-ui';\nimport { countInAnswer, ensureNoExtraChoicesInAnswer, ensureNoExtraChoicesInAlternate } from '@pie-lib/categorize';\nimport EditableHtml from '@pie-lib/editable-html';\nimport { uid, withDragContext } from '@pie-lib/drag';\n\nimport Categories from './categories';\nimport AlternateResponses from './categories/alternateResponses';\nimport Choices from './choices';\nimport { buildAlternateResponses, buildCategories } from './builder';\nimport Header from './header';\nimport { multiplePlacements } from '../utils';\n\nconst { dropdown, Panel, toggle, radio, numberField } = settings;\nconst { Provider: IdProvider } = uid;\n\nexport class Design extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n configuration: PropTypes.object,\n className: PropTypes.string,\n onConfigurationChanged: PropTypes.func,\n model: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n uid: PropTypes.string,\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 constructor(props) {\n super(props);\n this.uid = props.uid || uid.generateId();\n }\n\n updateModel = (props) => {\n const { model, onChange } = this.props;\n\n const updatedModel = {\n ...model,\n ...props,\n };\n\n updatedModel.choices = updatedModel.choices.map((c) => ({\n ...c,\n categoryCount: this.checkAllowMultiplePlacements(updatedModel.allowMultiplePlacementsEnabled, c),\n }));\n\n //Ensure that there are no extra choices in correctResponse, if the user has decided that only one choice may be used.\n updatedModel.correctResponse = ensureNoExtraChoicesInAnswer(\n updatedModel.correctResponse || [],\n updatedModel.choices,\n );\n\n //Ensure that there are no extra choices in alternate responses, if the user has decided that only one choice may be used.\n updatedModel.correctResponse = ensureNoExtraChoicesInAlternate(\n updatedModel.correctResponse || [],\n updatedModel.choices,\n );\n\n //clean categories\n updatedModel.categories = updatedModel.categories.map((c) => ({\n id: c.id,\n label: c.label,\n }));\n\n updatedModel.choices = updatedModel.choices.map((h) => ({\n id: h.id,\n content: h.content,\n categoryCount: h.categoryCount,\n }));\n\n onChange(updatedModel);\n };\n\n changeRationale = (rationale) => {\n const { model, onChange } = this.props;\n\n onChange({\n ...model,\n rationale,\n });\n };\n\n changeTeacherInstructions = (teacherInstructions) => {\n const { model, onChange } = this.props;\n\n onChange({\n ...model,\n teacherInstructions,\n });\n };\n\n changeFeedback = (feedback) => {\n this.updateModel({ feedback });\n };\n\n onAddAlternateResponse = () => {\n const {\n model: { correctResponse },\n } = this.props;\n\n this.updateModel({\n correctResponse: (correctResponse || []).map((cr) => ({\n ...cr,\n alternateResponses: [...(cr.alternateResponses || []), []],\n })),\n });\n };\n\n onPromptChanged = (prompt) => this.updateModel({ prompt });\n\n onRemoveAlternateResponse = (index) => {\n const {\n model: { correctResponse },\n } = this.props;\n\n this.updateModel({\n correctResponse: (correctResponse || []).map((cr) => ({\n ...cr,\n alternateResponses: (cr.alternateResponses || []).filter((alt, altIndex) => altIndex !== index),\n })),\n });\n };\n\n countChoiceInCorrectResponse = (choice) => {\n const { model } = this.props;\n\n return countInAnswer(choice.id, model.correctResponse);\n };\n\n checkAllowMultiplePlacements = (allowMultiplePlacements, c) => {\n if (allowMultiplePlacements === multiplePlacements.enabled) {\n return 0;\n }\n\n if (allowMultiplePlacements === multiplePlacements.disabled) {\n return 1;\n }\n\n return c.categoryCount || 0;\n };\n\n render() {\n const { classes, configuration, imageSupport, model, uploadSoundSupport, onConfigurationChanged } = this.props;\n const {\n allowMultiplePlacements = {},\n allowAlternate = {},\n categoriesPerRow = {},\n choicesPosition = {},\n contentDimensions = {},\n feedback = {},\n lockChoiceOrder = {},\n maxImageHeight = {},\n maxImageWidth = {},\n minCategoriesPerRow = 1,\n partialScoring = {},\n prompt = {},\n rationale = {},\n scoringType = {},\n settingsPanelDisabled,\n spellCheck = {},\n studentInstructions = {},\n teacherInstructions = {},\n withRubric = {},\n mathMlOptions = {},\n } = configuration || {};\n const {\n allowAlternateEnabled,\n feedbackEnabled,\n promptEnabled,\n rationaleEnabled,\n spellCheckEnabled,\n teacherInstructionsEnabled,\n toolbarEditorPosition,\n } = model || {};\n\n const toolbarOpts = {\n position: toolbarEditorPosition === 'top' ? 'top' : 'bottom',\n };\n\n const config = model.config || {};\n config.choices = config.choices || { label: '', columns: 2 };\n\n const categories = buildCategories(model.categories || [], model.choices || [], model.correctResponse || []);\n\n const alternateResponses = buildAlternateResponses(\n model.categories || [],\n model.choices || [],\n model.correctResponse || [],\n );\n\n const choices = model.choices.map((c) => {\n c.correctResponseCount = this.countChoiceInCorrectResponse(c);\n\n return c;\n });\n\n const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;\n const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;\n\n const panelSettings = {\n partialScoring: partialScoring.settings && toggle(partialScoring.label),\n lockChoiceOrder: lockChoiceOrder.settings && toggle(lockChoiceOrder.label),\n categoriesPerRow:\n categoriesPerRow.settings &&\n numberField(categoriesPerRow.label, {\n label: categoriesPerRow.label,\n min: minCategoriesPerRow,\n max: 6,\n }),\n choicesPosition: choicesPosition.settings && radio(choicesPosition.label, ['below', 'above', 'left', 'right']),\n allowMultiplePlacementsEnabled:\n allowMultiplePlacements.settings &&\n dropdown(allowMultiplePlacements.label, [\n multiplePlacements.enabled,\n multiplePlacements.disabled,\n multiplePlacements.perChoice,\n ]),\n promptEnabled: prompt.settings && toggle(prompt.label),\n feedbackEnabled: feedback.settings && toggle(feedback.label),\n allowAlternateEnabled: allowAlternate.settings && toggle(allowAlternate.label),\n };\n\n const panelProperties = {\n teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),\n studentInstructionsEnabled: studentInstructions.settings && toggle(studentInstructions.label),\n rationaleEnabled: rationale.settings && toggle(rationale.label),\n spellCheckEnabled: spellCheck.settings && toggle(spellCheck.label),\n scoringType: scoringType.settings && radio(scoringType.label, ['auto', 'rubric']),\n rubricEnabled: withRubric?.settings && toggle(withRubric?.label),\n };\n\n return (\n <IdProvider value={this.uid}>\n <layout.ConfigLayout\n dimensions={contentDimensions}\n hideSettings={settingsPanelDisabled}\n settings={\n <Panel\n model={model}\n onChangeModel={this.updateModel}\n configuration={configuration}\n onChangeConfiguration={onConfigurationChanged}\n groups={{\n Settings: panelSettings,\n Properties: panelProperties,\n }}\n />\n }\n >\n {teacherInstructionsEnabled && (\n <InputContainer label={teacherInstructions.label} className={classes.inputContainer}>\n <EditableHtml\n className={classes.input}\n markup={model.teacherInstructions || ''}\n onChange={this.changeTeacherInstructions}\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 mathMlOptions={mathMlOptions}\n />\n </InputContainer>\n )}\n\n {promptEnabled && (\n <InputContainer label={prompt.label} className={classes.inputContainer}>\n <EditableHtml\n className={classes.input}\n markup={model.prompt || ''}\n onChange={this.onPromptChanged}\n imageSupport={imageSupport}\n nonEmpty={false}\n disableUnderline\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n maxImageWidth={maxImageWidth && maxImageWidth.prompt}\n maxImageHeight={maxImageHeight && maxImageHeight.prompt}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n </InputContainer>\n )}\n\n <Categories\n imageSupport={imageSupport}\n uploadSoundSupport={uploadSoundSupport}\n model={model}\n categories={categories || []}\n onModelChanged={this.updateModel}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n configuration={configuration}\n defaultImageMaxWidth={defaultImageMaxWidth}\n defaultImageMaxHeight={defaultImageMaxHeight}\n mathMlOptions={mathMlOptions}\n />\n\n <Choices\n imageSupport={imageSupport}\n uploadSoundSupport={uploadSoundSupport}\n choices={choices}\n model={model}\n onModelChanged={this.updateModel}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n configuration={configuration}\n defaultImageMaxWidth={defaultImageMaxWidth}\n defaultImageMaxHeight={defaultImageMaxHeight}\n />\n\n {allowAlternateEnabled && (\n <Header\n className={classes.alternatesHeader}\n label=\"Alternate Responses\"\n buttonLabel=\"ADD AN ALTERNATE RESPONSE\"\n onAdd={this.onAddAlternateResponse}\n />\n )}\n {allowAlternateEnabled &&\n alternateResponses.map((categoriesList, index) => {\n return (\n <React.Fragment key={index}>\n <Header\n className={classes.alternatesHeader}\n variant={'subtitle1'}\n label=\"Alternate Response\"\n buttonLabel=\"REMOVE ALTERNATE RESPONSE\"\n onAdd={() => this.onRemoveAlternateResponse(index)}\n />\n <AlternateResponses\n altIndex={index}\n imageSupport={imageSupport}\n model={model}\n configuration={configuration}\n categories={categoriesList}\n onModelChanged={this.updateModel}\n uploadSoundSupport={uploadSoundSupport}\n toolbarOpts={toolbarOpts}\n defaultImageMaxWidth={defaultImageMaxWidth}\n defaultImageMaxHeight={defaultImageMaxHeight}\n mathMlOptions={mathMlOptions}\n />\n </React.Fragment>\n );\n })}\n\n {rationaleEnabled && (\n <InputContainer label={rationale.label} className={classes.inputContainer}>\n <EditableHtml\n className={classes.input}\n markup={model.rationale || ''}\n onChange={this.changeRationale}\n imageSupport={imageSupport}\n nonEmpty={false}\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 mathMlOptions={mathMlOptions}\n />\n </InputContainer>\n )}\n\n {feedbackEnabled && (\n <FeedbackConfig feedback={model.feedback} onChange={this.changeFeedback} toolbarOpts={toolbarOpts} />\n )}\n </layout.ConfigLayout>\n </IdProvider>\n );\n }\n}\n\nconst styles = (theme) => ({\n alternatesHeader: {\n marginBottom: theme.spacing.unit * 2,\n },\n text: {\n paddingTop: theme.spacing.unit * 2,\n paddingBottom: theme.spacing.unit * 2,\n },\n inputContainer: {\n width: '100%',\n paddingTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n },\n title: {\n marginBottom: theme.spacing.unit * 4,\n },\n});\n\nexport default withDragContext(withStyles(styles)(Design));\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../src/design/index.jsx"],"names":["dropdown","settings","Panel","toggle","radio","numberField","IdProvider","uid","Provider","Design","props","model","onChange","updatedModel","choices","map","c","categoryCount","checkAllowMultiplePlacements","allowMultiplePlacementsEnabled","correctResponse","categories","id","label","h","content","rationale","teacherInstructions","feedback","updateModel","cr","alternateResponses","prompt","index","filter","alt","altIndex","choice","allowMultiplePlacements","multiplePlacements","enabled","disabled","generateId","classes","configuration","imageSupport","uploadSoundSupport","onConfigurationChanged","allowAlternate","categoriesPerRow","choicesPosition","contentDimensions","lockChoiceOrder","maxImageHeight","maxImageWidth","minCategoriesPerRow","partialScoring","scoringType","settingsPanelDisabled","spellCheck","studentInstructions","withRubric","mathMlOptions","allowAlternateEnabled","feedbackEnabled","promptEnabled","rationaleEnabled","spellCheckEnabled","teacherInstructionsEnabled","toolbarEditorPosition","toolbarOpts","position","config","columns","correctResponseCount","countChoiceInCorrectResponse","defaultImageMaxWidth","defaultImageMaxHeight","panelSettings","min","max","perChoice","panelProperties","studentInstructionsEnabled","rubricEnabled","Settings","Properties","inputContainer","input","changeTeacherInstructions","language","onPromptChanged","alternatesHeader","onAddAlternateResponse","categoriesList","onRemoveAlternateResponse","changeRationale","changeFeedback","React","Component","PropTypes","object","isRequired","className","string","func","shape","add","styles","theme","marginBottom","spacing","unit","text","paddingTop","paddingBottom","width","title"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { FeedbackConfig, InputContainer, layout, settings } from '@pie-lib/config-ui';\nimport { countInAnswer, ensureNoExtraChoicesInAnswer, ensureNoExtraChoicesInAlternate } from '@pie-lib/categorize';\nimport EditableHtml from '@pie-lib/editable-html';\nimport { uid, withDragContext } from '@pie-lib/drag';\n\nimport Categories from './categories';\nimport AlternateResponses from './categories/alternateResponses';\nimport Choices from './choices';\nimport { buildAlternateResponses, buildCategories } from './builder';\nimport Header from './header';\nimport { multiplePlacements } from '../utils';\n\nconst { dropdown, Panel, toggle, radio, numberField } = settings;\nconst { Provider: IdProvider } = uid;\n\nexport class Design extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n configuration: PropTypes.object,\n className: PropTypes.string,\n onConfigurationChanged: PropTypes.func,\n model: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n uid: PropTypes.string,\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 constructor(props) {\n super(props);\n this.uid = props.uid || uid.generateId();\n }\n\n updateModel = (props) => {\n const { model, onChange } = this.props;\n\n const updatedModel = {\n ...model,\n ...props,\n };\n\n updatedModel.choices = updatedModel.choices.map((c) => ({\n ...c,\n categoryCount: this.checkAllowMultiplePlacements(updatedModel.allowMultiplePlacementsEnabled, c),\n }));\n\n //Ensure that there are no extra choices in correctResponse, if the user has decided that only one choice may be used.\n updatedModel.correctResponse = ensureNoExtraChoicesInAnswer(\n updatedModel.correctResponse || [],\n updatedModel.choices,\n );\n\n //Ensure that there are no extra choices in alternate responses, if the user has decided that only one choice may be used.\n updatedModel.correctResponse = ensureNoExtraChoicesInAlternate(\n updatedModel.correctResponse || [],\n updatedModel.choices,\n );\n\n //clean categories\n updatedModel.categories = updatedModel.categories.map((c) => ({\n id: c.id,\n label: c.label,\n }));\n\n updatedModel.choices = updatedModel.choices.map((h) => ({\n id: h.id,\n content: h.content,\n categoryCount: h.categoryCount,\n }));\n\n onChange(updatedModel);\n };\n\n changeRationale = (rationale) => {\n const { model, onChange } = this.props;\n\n onChange({\n ...model,\n rationale,\n });\n };\n\n changeTeacherInstructions = (teacherInstructions) => {\n const { model, onChange } = this.props;\n\n onChange({\n ...model,\n teacherInstructions,\n });\n };\n\n changeFeedback = (feedback) => {\n this.updateModel({ feedback });\n };\n\n onAddAlternateResponse = () => {\n const {\n model: { correctResponse },\n } = this.props;\n\n this.updateModel({\n correctResponse: (correctResponse || []).map((cr) => ({\n ...cr,\n alternateResponses: [...(cr.alternateResponses || []), []],\n })),\n });\n };\n\n onPromptChanged = (prompt) => this.updateModel({ prompt });\n\n onRemoveAlternateResponse = (index) => {\n const {\n model: { correctResponse },\n } = this.props;\n\n this.updateModel({\n correctResponse: (correctResponse || []).map((cr) => ({\n ...cr,\n alternateResponses: (cr.alternateResponses || []).filter((alt, altIndex) => altIndex !== index),\n })),\n });\n };\n\n countChoiceInCorrectResponse = (choice) => {\n const { model } = this.props;\n\n return countInAnswer(choice.id, model.correctResponse);\n };\n\n checkAllowMultiplePlacements = (allowMultiplePlacements, c) => {\n if (allowMultiplePlacements === multiplePlacements.enabled) {\n return 0;\n }\n\n if (allowMultiplePlacements === multiplePlacements.disabled) {\n return 1;\n }\n\n return c.categoryCount || 0;\n };\n\n render() {\n const { classes, configuration, imageSupport, model, uploadSoundSupport, onConfigurationChanged } = this.props;\n const {\n allowMultiplePlacements = {},\n allowAlternate = {},\n categoriesPerRow = {},\n choicesPosition = {},\n contentDimensions = {},\n feedback = {},\n lockChoiceOrder = {},\n maxImageHeight = {},\n maxImageWidth = {},\n minCategoriesPerRow = 1,\n partialScoring = {},\n prompt = {},\n rationale = {},\n scoringType = {},\n settingsPanelDisabled,\n spellCheck = {},\n studentInstructions = {},\n teacherInstructions = {},\n withRubric = {},\n mathMlOptions = {},\n } = configuration || {};\n const {\n allowAlternateEnabled,\n feedbackEnabled,\n promptEnabled,\n rationaleEnabled,\n spellCheckEnabled,\n teacherInstructionsEnabled,\n toolbarEditorPosition,\n } = model || {};\n\n const toolbarOpts = {\n position: toolbarEditorPosition === 'top' ? 'top' : 'bottom',\n };\n\n const config = model.config || {};\n config.choices = config.choices || { label: '', columns: 2 };\n\n const categories = buildCategories(model.categories || [], model.choices || [], model.correctResponse || []);\n\n const alternateResponses = buildAlternateResponses(\n model.categories || [],\n model.choices || [],\n model.correctResponse || [],\n );\n\n const choices = model.choices.map((c) => {\n c.correctResponseCount = this.countChoiceInCorrectResponse(c);\n\n return c;\n });\n\n const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;\n const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;\n\n const panelSettings = {\n partialScoring: partialScoring.settings && toggle(partialScoring.label),\n lockChoiceOrder: lockChoiceOrder.settings && toggle(lockChoiceOrder.label),\n categoriesPerRow:\n categoriesPerRow.settings &&\n numberField(categoriesPerRow.label, {\n label: categoriesPerRow.label,\n min: minCategoriesPerRow,\n max: 6,\n }),\n choicesPosition: choicesPosition.settings && radio(choicesPosition.label, ['below', 'above', 'left', 'right']),\n allowMultiplePlacementsEnabled:\n allowMultiplePlacements.settings &&\n dropdown(allowMultiplePlacements.label, [\n multiplePlacements.enabled,\n multiplePlacements.disabled,\n multiplePlacements.perChoice,\n ]),\n promptEnabled: prompt.settings && toggle(prompt.label),\n feedbackEnabled: feedback.settings && toggle(feedback.label),\n // PD-2960: deleted temporary from settings panel\n // allowAlternateEnabled: allowAlternate.settings && toggle(allowAlternate.label),\n };\n\n const panelProperties = {\n teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),\n studentInstructionsEnabled: studentInstructions.settings && toggle(studentInstructions.label),\n rationaleEnabled: rationale.settings && toggle(rationale.label),\n spellCheckEnabled: spellCheck.settings && toggle(spellCheck.label),\n scoringType: scoringType.settings && radio(scoringType.label, ['auto', 'rubric']),\n rubricEnabled: withRubric?.settings && toggle(withRubric?.label),\n };\n\n return (\n <IdProvider value={this.uid}>\n <layout.ConfigLayout\n dimensions={contentDimensions}\n hideSettings={settingsPanelDisabled}\n settings={\n <Panel\n model={model}\n onChangeModel={this.updateModel}\n configuration={configuration}\n onChangeConfiguration={onConfigurationChanged}\n groups={{\n Settings: panelSettings,\n Properties: panelProperties,\n }}\n />\n }\n >\n {teacherInstructionsEnabled && (\n <InputContainer label={teacherInstructions.label} className={classes.inputContainer}>\n <EditableHtml\n className={classes.input}\n markup={model.teacherInstructions || ''}\n onChange={this.changeTeacherInstructions}\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 mathMlOptions={mathMlOptions}\n />\n </InputContainer>\n )}\n\n {promptEnabled && (\n <InputContainer label={prompt.label} className={classes.inputContainer}>\n <EditableHtml\n className={classes.input}\n markup={model.prompt || ''}\n onChange={this.onPromptChanged}\n imageSupport={imageSupport}\n nonEmpty={false}\n disableUnderline\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n maxImageWidth={maxImageWidth && maxImageWidth.prompt}\n maxImageHeight={maxImageHeight && maxImageHeight.prompt}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n </InputContainer>\n )}\n\n <Categories\n imageSupport={imageSupport}\n uploadSoundSupport={uploadSoundSupport}\n model={model}\n categories={categories || []}\n onModelChanged={this.updateModel}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n configuration={configuration}\n defaultImageMaxWidth={defaultImageMaxWidth}\n defaultImageMaxHeight={defaultImageMaxHeight}\n mathMlOptions={mathMlOptions}\n />\n\n <Choices\n imageSupport={imageSupport}\n uploadSoundSupport={uploadSoundSupport}\n choices={choices}\n model={model}\n onModelChanged={this.updateModel}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n configuration={configuration}\n defaultImageMaxWidth={defaultImageMaxWidth}\n defaultImageMaxHeight={defaultImageMaxHeight}\n />\n\n {allowAlternateEnabled && (\n <Header\n className={classes.alternatesHeader}\n label=\"Alternate Responses\"\n buttonLabel=\"ADD AN ALTERNATE RESPONSE\"\n onAdd={this.onAddAlternateResponse}\n />\n )}\n {allowAlternateEnabled &&\n alternateResponses.map((categoriesList, index) => {\n return (\n <React.Fragment key={index}>\n <Header\n className={classes.alternatesHeader}\n variant={'subtitle1'}\n label=\"Alternate Response\"\n buttonLabel=\"REMOVE ALTERNATE RESPONSE\"\n onAdd={() => this.onRemoveAlternateResponse(index)}\n />\n <AlternateResponses\n altIndex={index}\n imageSupport={imageSupport}\n model={model}\n configuration={configuration}\n categories={categoriesList}\n onModelChanged={this.updateModel}\n uploadSoundSupport={uploadSoundSupport}\n toolbarOpts={toolbarOpts}\n defaultImageMaxWidth={defaultImageMaxWidth}\n defaultImageMaxHeight={defaultImageMaxHeight}\n mathMlOptions={mathMlOptions}\n />\n </React.Fragment>\n );\n })}\n\n {rationaleEnabled && (\n <InputContainer label={rationale.label} className={classes.inputContainer}>\n <EditableHtml\n className={classes.input}\n markup={model.rationale || ''}\n onChange={this.changeRationale}\n imageSupport={imageSupport}\n nonEmpty={false}\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 mathMlOptions={mathMlOptions}\n />\n </InputContainer>\n )}\n\n {feedbackEnabled && (\n <FeedbackConfig feedback={model.feedback} onChange={this.changeFeedback} toolbarOpts={toolbarOpts} />\n )}\n </layout.ConfigLayout>\n </IdProvider>\n );\n }\n}\n\nconst styles = (theme) => ({\n alternatesHeader: {\n marginBottom: theme.spacing.unit * 2,\n },\n text: {\n paddingTop: theme.spacing.unit * 2,\n paddingBottom: theme.spacing.unit * 2,\n },\n inputContainer: {\n width: '100%',\n paddingTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n },\n title: {\n marginBottom: theme.spacing.unit * 4,\n },\n});\n\nexport default withDragContext(withStyles(styles)(Design));\n"],"file":"index.js"}
@@ -7,6 +7,8 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports["default"] = void 0;
9
9
 
10
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
+
10
12
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
13
 
12
14
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
@@ -31,6 +33,8 @@ var _main = _interopRequireDefault(require("./main"));
31
33
 
32
34
  var _defaults = _interopRequireDefault(require("./defaults"));
33
35
 
36
+ var _excluded = ["alternateResponses"];
37
+
34
38
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
35
39
 
36
40
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
@@ -44,6 +48,8 @@ var CategorizeConfigure = /*#__PURE__*/function (_HTMLElement) {
44
48
 
45
49
  var _super = _createSuper(CategorizeConfigure);
46
50
 
51
+ // PD-2960: make sure we don't have alternates in model or possibility to add them (temporary solution)
52
+ // this function is used in controller, too
47
53
  function CategorizeConfigure() {
48
54
  var _this;
49
55
 
@@ -57,7 +63,7 @@ var CategorizeConfigure = /*#__PURE__*/function (_HTMLElement) {
57
63
  (0, _createClass2["default"])(CategorizeConfigure, [{
58
64
  key: "model",
59
65
  set: function set(m) {
60
- this._model = CategorizeConfigure.createDefaultModel(m);
66
+ this._model = CategorizeConfigure.disableAlternateResponses(CategorizeConfigure.createDefaultModel(m));
61
67
  this.render();
62
68
  }
63
69
  }, {
@@ -136,4 +142,19 @@ exports["default"] = CategorizeConfigure;
136
142
  var model = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
137
143
  return _objectSpread(_objectSpread({}, _defaults["default"].model), model);
138
144
  });
145
+ (0, _defineProperty2["default"])(CategorizeConfigure, "disableAlternateResponses", function (m) {
146
+ var _ref = m || {},
147
+ correctResponse = _ref.correctResponse;
148
+
149
+ correctResponse = correctResponse || [];
150
+ var mappedCorrectResponse = correctResponse.map(function (cr) {
151
+ var alternateResponses = cr.alternateResponses,
152
+ response = (0, _objectWithoutProperties2["default"])(cr, _excluded);
153
+ return response;
154
+ });
155
+ return _objectSpread(_objectSpread({}, m), {}, {
156
+ correctResponse: mappedCorrectResponse,
157
+ allowAlternateEnabled: false
158
+ });
159
+ });
139
160
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.js"],"names":["CategorizeConfigure","_model","createDefaultModel","_configuration","defaults","configuration","m","render","c","dispatchEvent","ModelUpdatedEvent","handler","InsertImageEvent","src","done","DeleteImageEvent","InsertSoundEvent","DeleteSoundEvent","el","React","createElement","Main","model","onModelChanged","bind","onConfigurationChanged","imageSupport","add","insertImage","onDeleteImage","uploadSoundSupport","insertSound","onDeleteSound","ReactDOM","HTMLElement"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAQA;;AAEA;;;;;;;;;;IAEqBA,mB;;;;;AAMnB,iCAAc;AAAA;;AAAA;AACZ;AACA,UAAKC,MAAL,GAAcD,mBAAmB,CAACE,kBAApB,EAAd;AACA,UAAKC,cAAL,GAAsBC,qBAASC,aAA/B;AAHY;AAIb;;;;SAED,aAAUC,CAAV,EAAa;AACX,WAAKL,MAAL,GAAcD,mBAAmB,CAACE,kBAApB,CAAuCI,CAAvC,CAAd;AACA,WAAKC,MAAL;AACD;;;SAED,aAAkBC,CAAlB,EAAqB;AACnB,WAAKL,cAAL,GAAsBK,CAAtB;AACA,WAAKD,MAAL;AACD;;;WAED,wBAAeD,CAAf,EAAkB;AAChB,WAAKL,MAAL,GAAcK,CAAd;AAEA,WAAKC,MAAL;AACA,WAAKE,aAAL,CAAmB,IAAIC,qCAAJ,CAAsB,KAAKT,MAA3B,EAAmC,KAAnC,CAAnB;AACD;;;WAED,gCAAuBO,CAAvB,EAA0B;AACxB,WAAKL,cAAL,GAAsBK,CAAtB;AACA,WAAKD,MAAL;AACD;;;WAED,6BAAoB,CAAE;AAEtB;AACF;AACA;AACA;;;;WACE,qBAAYI,OAAZ,EAAqB;AACnB,WAAKF,aAAL,CAAmB,IAAIG,oCAAJ,CAAqBD,OAArB,CAAnB;AACD;;;WAED,uBAAcE,GAAd,EAAmBC,IAAnB,EAAyB;AACvB,WAAKL,aAAL,CAAmB,IAAIM,oCAAJ,CAAqBF,GAArB,EAA0BC,IAA1B,CAAnB;AACD;;;WAED,qBAAYH,OAAZ,EAAqB;AACnB,WAAKF,aAAL,CAAmB,IAAIO,oCAAJ,CAAqBL,OAArB,CAAnB;AACD;;;WAED,uBAAcE,GAAd,EAAmBC,IAAnB,EAAyB;AACvB,WAAKL,aAAL,CAAmB,IAAIQ,oCAAJ,CAAqBJ,GAArB,EAA0BC,IAA1B,CAAnB;AACD;;;WAED,kBAAS;AACP,UAAMI,EAAE,gBAAGC,kBAAMC,aAAN,CAAoBC,gBAApB,EAA0B;AACnCC,QAAAA,KAAK,EAAE,KAAKrB,MADuB;AAEnCI,QAAAA,aAAa,EAAE,KAAKF,cAFe;AAGnCoB,QAAAA,cAAc,EAAE,KAAKA,cAAL,CAAoBC,IAApB,CAAyB,IAAzB,CAHmB;AAInCC,QAAAA,sBAAsB,EAAE,KAAKA,sBAAL,CAA4BD,IAA5B,CAAiC,IAAjC,CAJW;AAKnCE,QAAAA,YAAY,EAAE;AACZC,UAAAA,GAAG,EAAE,KAAKC,WAAL,CAAiBJ,IAAjB,CAAsB,IAAtB,CADO;AAEZ,oBAAQ,KAAKK,aAAL,CAAmBL,IAAnB,CAAwB,IAAxB;AAFI,SALqB;AASnCM,QAAAA,kBAAkB,EAAE;AAClBH,UAAAA,GAAG,EAAE,KAAKI,WAAL,CAAiBP,IAAjB,CAAsB,IAAtB,CADa;AAElB,oBAAQ,KAAKQ,aAAL,CAAmBR,IAAnB,CAAwB,IAAxB;AAFU;AATe,OAA1B,CAAX;;AAeAS,2BAAS1B,MAAT,CAAgBW,EAAhB,EAAoB,IAApB;AACD;;;kDAzE8CgB,W;;;iCAA5BlC,mB,wBACS;AAAA,MAACsB,KAAD,uEAAS,EAAT;AAAA,yCACvBlB,qBAASkB,KADc,GAEvBA,KAFuB;AAAA,C","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport {\n ModelUpdatedEvent,\n DeleteImageEvent,\n InsertImageEvent,\n InsertSoundEvent,\n DeleteSoundEvent,\n} from '@pie-framework/pie-configure-events';\n\nimport Main from './main';\n\nimport defaults from './defaults';\n\nexport default class CategorizeConfigure extends HTMLElement {\n static createDefaultModel = (model = {}) => ({\n ...defaults.model,\n ...model,\n });\n\n constructor() {\n super();\n this._model = CategorizeConfigure.createDefaultModel();\n this._configuration = defaults.configuration;\n }\n\n set model(m) {\n this._model = CategorizeConfigure.createDefaultModel(m);\n this.render();\n }\n\n set configuration(c) {\n this._configuration = c;\n this.render();\n }\n\n onModelChanged(m) {\n this._model = m;\n\n this.render();\n this.dispatchEvent(new ModelUpdatedEvent(this._model, false));\n }\n\n onConfigurationChanged(c) {\n this._configuration = c;\n this.render();\n }\n\n connectedCallback() {}\n\n /**\n *\n * @param {done, progress, file} handler\n */\n insertImage(handler) {\n this.dispatchEvent(new InsertImageEvent(handler));\n }\n\n onDeleteImage(src, done) {\n this.dispatchEvent(new DeleteImageEvent(src, done));\n }\n\n insertSound(handler) {\n this.dispatchEvent(new InsertSoundEvent(handler));\n }\n\n onDeleteSound(src, done) {\n this.dispatchEvent(new DeleteSoundEvent(src, done));\n }\n\n render() {\n const el = React.createElement(Main, {\n model: this._model,\n configuration: this._configuration,\n onModelChanged: this.onModelChanged.bind(this),\n onConfigurationChanged: this.onConfigurationChanged.bind(this),\n imageSupport: {\n add: this.insertImage.bind(this),\n delete: this.onDeleteImage.bind(this),\n },\n uploadSoundSupport: {\n add: this.insertSound.bind(this),\n delete: this.onDeleteSound.bind(this),\n },\n });\n\n ReactDOM.render(el, this);\n }\n}\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../src/index.js"],"names":["CategorizeConfigure","_model","createDefaultModel","_configuration","defaults","configuration","m","disableAlternateResponses","render","c","dispatchEvent","ModelUpdatedEvent","handler","InsertImageEvent","src","done","DeleteImageEvent","InsertSoundEvent","DeleteSoundEvent","el","React","createElement","Main","model","onModelChanged","bind","onConfigurationChanged","imageSupport","add","insertImage","onDeleteImage","uploadSoundSupport","insertSound","onDeleteSound","ReactDOM","HTMLElement","correctResponse","mappedCorrectResponse","map","cr","alternateResponses","response","allowAlternateEnabled"],"mappings":"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","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport {\n ModelUpdatedEvent,\n DeleteImageEvent,\n InsertImageEvent,\n InsertSoundEvent,\n DeleteSoundEvent,\n} from '@pie-framework/pie-configure-events';\n\nimport Main from './main';\n\nimport defaults from './defaults';\n\nexport default class CategorizeConfigure extends HTMLElement {\n static createDefaultModel = (model = {}) => ({\n ...defaults.model,\n ...model,\n });\n\n // PD-2960: make sure we don't have alternates in model or possibility to add them (temporary solution)\n // this function is used in controller, too\n static disableAlternateResponses = (m) => {\n let { correctResponse } = m || {};\n correctResponse = correctResponse || [];\n const mappedCorrectResponse = correctResponse.map((cr) => {\n const { alternateResponses, ...response } = cr;\n return response;\n });\n return {\n ...m,\n correctResponse: mappedCorrectResponse,\n allowAlternateEnabled: false,\n };\n };\n\n constructor() {\n super();\n this._model = CategorizeConfigure.createDefaultModel();\n this._configuration = defaults.configuration;\n }\n\n set model(m) {\n this._model = CategorizeConfigure.disableAlternateResponses(CategorizeConfigure.createDefaultModel(m));\n this.render();\n }\n\n set configuration(c) {\n this._configuration = c;\n this.render();\n }\n\n onModelChanged(m) {\n this._model = m;\n\n this.render();\n this.dispatchEvent(new ModelUpdatedEvent(this._model, false));\n }\n\n onConfigurationChanged(c) {\n this._configuration = c;\n this.render();\n }\n\n connectedCallback() {}\n\n /**\n *\n * @param {done, progress, file} handler\n */\n insertImage(handler) {\n this.dispatchEvent(new InsertImageEvent(handler));\n }\n\n onDeleteImage(src, done) {\n this.dispatchEvent(new DeleteImageEvent(src, done));\n }\n\n insertSound(handler) {\n this.dispatchEvent(new InsertSoundEvent(handler));\n }\n\n onDeleteSound(src, done) {\n this.dispatchEvent(new DeleteSoundEvent(src, done));\n }\n\n render() {\n const el = React.createElement(Main, {\n model: this._model,\n configuration: this._configuration,\n onModelChanged: this.onModelChanged.bind(this),\n onConfigurationChanged: this.onConfigurationChanged.bind(this),\n imageSupport: {\n add: this.insertImage.bind(this),\n delete: this.onDeleteImage.bind(this),\n },\n uploadSoundSupport: {\n add: this.insertSound.bind(this),\n delete: this.onDeleteSound.bind(this),\n },\n });\n\n ReactDOM.render(el, this);\n }\n}\n"],"file":"index.js"}
@@ -3,7 +3,7 @@
3
3
  "private": true,
4
4
  "main": "lib/index.js",
5
5
  "module": "src/index.js",
6
- "version": "6.14.0",
6
+ "version": "6.14.1",
7
7
  "description": "",
8
8
  "scripts": {},
9
9
  "author": "pie framework developers",
@@ -13,9 +13,9 @@
13
13
  "@material-ui/icons": "^3.0.1",
14
14
  "@pie-framework/pie-configure-events": "^1.3.0",
15
15
  "@pie-lib/categorize": "^0.8.17",
16
- "@pie-lib/config-ui": "^11.8.4",
16
+ "@pie-lib/config-ui": "^11.8.5",
17
17
  "@pie-lib/drag": "^2.2.1",
18
- "@pie-lib/editable-html": "^9.7.1",
18
+ "@pie-lib/editable-html": "^9.7.2",
19
19
  "@pie-lib/render-ui": "^4.14.28",
20
20
  "classnames": "^2.2.5",
21
21
  "debug": "^3.1.0",
@@ -3,6 +3,19 @@
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
+ ## [5.9.5](https://github.com/pie-framework/pie-elements/compare/@pie-element/categorize-controller@5.9.4...@pie-element/categorize-controller@5.9.5) (2023-07-06)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **categorize:** PD-2960-create method to eliminate alternates ([9cc631c](https://github.com/pie-framework/pie-elements/commit/9cc631cf93c57f2192d93a306f064bbcf31ce03d))
12
+ * **categorize:** PD-2960: ensure alternate are removed from model (authoring and controller) ([4e12be5](https://github.com/pie-framework/pie-elements/commit/4e12be53aa7a0f0dd5c34b6a685c8e07ed62e975))
13
+ * updated editable-html dependent packages for PD-2150 ([ffa6297](https://github.com/pie-framework/pie-elements/commit/ffa62977a9e329c1e12ea1dfcb2af4ba4c993bca))
14
+
15
+
16
+
17
+
18
+
6
19
  ## [5.9.4](https://github.com/pie-framework/pie-elements/compare/@pie-element/categorize-controller@5.9.3...@pie-element/categorize-controller@5.9.4) (2023-05-23)
7
20
 
8
21
 
@@ -22,6 +22,8 @@ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/
22
22
 
23
23
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
24
24
 
25
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
26
+
25
27
  var _isEmpty = _interopRequireDefault(require("lodash/isEmpty"));
26
28
 
27
29
  var _categorize = require("@pie-lib/categorize");
@@ -34,16 +36,36 @@ var _controllerUtils = require("@pie-lib/controller-utils");
34
36
 
35
37
  var _defaults = _interopRequireDefault(require("./defaults"));
36
38
 
39
+ var _excluded = ["alternateResponses"];
40
+
37
41
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
38
42
 
39
43
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
40
44
 
45
+ // PD-2960: make sure we don't have alternates in model or possibility to add them (temporary solution)
46
+ // this function is used in configure part, too
47
+ var disableAlternateResponses = function disableAlternateResponses(question) {
48
+ var _ref = question || {},
49
+ correctResponse = _ref.correctResponse;
50
+
51
+ correctResponse = correctResponse || [];
52
+ var mappedCorrectResponse = correctResponse.map(function (cr) {
53
+ var alternateResponses = cr.alternateResponses,
54
+ response = (0, _objectWithoutProperties2["default"])(cr, _excluded);
55
+ return response;
56
+ });
57
+ return _objectSpread(_objectSpread({}, question), {}, {
58
+ correctResponse: mappedCorrectResponse,
59
+ allowAlternateEnabled: false
60
+ });
61
+ };
62
+
41
63
  var getPartialScore = function getPartialScore(correctResponse, builtCategories) {
42
64
  // in the resulted best scenario we make a sum with all the correct responses
43
65
  // and all the placements
44
- var _builtCategories$redu = builtCategories.reduce(function (acc, _ref) {
45
- var _ref$choices = _ref.choices,
46
- choices = _ref$choices === void 0 ? [] : _ref$choices;
66
+ var _builtCategories$redu = builtCategories.reduce(function (acc, _ref2) {
67
+ var _ref2$choices = _ref2.choices,
68
+ choices = _ref2$choices === void 0 ? [] : _ref2$choices;
47
69
  return {
48
70
  placements: acc.placements + choices.length,
49
71
  score: acc.score + choices.filter(function (ch) {
@@ -58,8 +80,8 @@ var getPartialScore = function getPartialScore(correctResponse, builtCategories)
58
80
  score = _builtCategories$redu.score; // in the correct response, we make a sum of the max possible score
59
81
 
60
82
 
61
- var _correctResponse$redu = correctResponse.reduce(function (acc, _ref2) {
62
- var choices = _ref2.choices;
83
+ var _correctResponse$redu = correctResponse.reduce(function (acc, _ref3) {
84
+ var choices = _ref3.choices;
63
85
  return {
64
86
  maxScore: acc.maxScore + choices.length
65
87
  };
@@ -93,15 +115,15 @@ var getTotalScore = function getTotalScore(question, session, env) {
93
115
  return 0;
94
116
  }
95
117
 
96
- var _ref3 = question || {},
97
- categories = _ref3.categories,
98
- choices = _ref3.choices;
99
-
100
118
  var _ref4 = question || {},
101
- correctResponse = _ref4.correctResponse;
119
+ categories = _ref4.categories,
120
+ choices = _ref4.choices;
121
+
122
+ var _ref5 = question || {},
123
+ correctResponse = _ref5.correctResponse;
102
124
 
103
- var _ref5 = session || {},
104
- answers = _ref5.answers;
125
+ var _ref6 = session || {},
126
+ answers = _ref6.answers;
105
127
 
106
128
  answers = answers || [];
107
129
  correctResponse = correctResponse || []; // this function is used in pie-ui/categorize as well, in order to get the best scenario
@@ -157,7 +179,8 @@ var createDefaultModel = function createDefaultModel() {
157
179
  exports.createDefaultModel = createDefaultModel;
158
180
 
159
181
  var normalize = function normalize(question) {
160
- return _objectSpread(_objectSpread({}, _defaults["default"]), question);
182
+ var newQuestion = disableAlternateResponses(question);
183
+ return _objectSpread(_objectSpread({}, _defaults["default"]), newQuestion);
161
184
  };
162
185
  /**
163
186
  *
@@ -172,8 +195,8 @@ exports.normalize = normalize;
172
195
 
173
196
  var model = function model(question, session, env, updateSession) {
174
197
  return new Promise( /*#__PURE__*/function () {
175
- var _ref6 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(resolve) {
176
- var normalizedQuestion, answerCorrectness, _ref7, mode, role, categories, categoriesPerRow, choicesLabel, choicesPosition, correctResponse, feedback, feedbackEnabled, promptEnabled, prompt, rowLabels, rationaleEnabled, rationale, note, teacherInstructionsEnabled, teacherInstructions, choices, fb, lockChoiceOrder, filteredCorrectResponse, alternates, out;
198
+ var _ref7 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(resolve) {
199
+ var normalizedQuestion, answerCorrectness, _ref8, mode, role, categories, categoriesPerRow, choicesLabel, choicesPosition, correctResponse, feedback, feedbackEnabled, promptEnabled, prompt, rowLabels, rationaleEnabled, rationale, note, teacherInstructionsEnabled, teacherInstructions, choices, fb, lockChoiceOrder, filteredCorrectResponse, alternates, out;
177
200
 
178
201
  return _regenerator["default"].wrap(function _callee$(_context) {
179
202
  while (1) {
@@ -185,7 +208,7 @@ var model = function model(question, session, env, updateSession) {
185
208
 
186
209
  case 3:
187
210
  answerCorrectness = _context.sent;
188
- _ref7 = env || {}, mode = _ref7.mode, role = _ref7.role;
211
+ _ref8 = env || {}, mode = _ref8.mode, role = _ref8.role;
189
212
  categories = normalizedQuestion.categories, categoriesPerRow = normalizedQuestion.categoriesPerRow, choicesLabel = normalizedQuestion.choicesLabel, choicesPosition = normalizedQuestion.choicesPosition, correctResponse = normalizedQuestion.correctResponse, feedback = normalizedQuestion.feedback, feedbackEnabled = normalizedQuestion.feedbackEnabled, promptEnabled = normalizedQuestion.promptEnabled, prompt = normalizedQuestion.prompt, rowLabels = normalizedQuestion.rowLabels, rationaleEnabled = normalizedQuestion.rationaleEnabled, rationale = normalizedQuestion.rationale, note = normalizedQuestion.note, teacherInstructionsEnabled = normalizedQuestion.teacherInstructionsEnabled, teacherInstructions = normalizedQuestion.teacherInstructions;
190
213
  choices = normalizedQuestion.choices;
191
214
  lockChoiceOrder = (0, _controllerUtils.lockChoices)(normalizedQuestion, session, env);
@@ -260,7 +283,7 @@ var model = function model(question, session, env, updateSession) {
260
283
  }));
261
284
 
262
285
  return function (_x) {
263
- return _ref6.apply(this, arguments);
286
+ return _ref7.apply(this, arguments);
264
287
  };
265
288
  }());
266
289
  };
@@ -284,9 +307,9 @@ exports.outcome = outcome;
284
307
 
285
308
  var createCorrectResponseSession = function createCorrectResponseSession(question, env) {
286
309
  return new Promise(function (resolve) {
287
- var _ref8 = env || {},
288
- mode = _ref8.mode,
289
- role = _ref8.role;
310
+ var _ref9 = env || {},
311
+ mode = _ref9.mode,
312
+ role = _ref9.role;
290
313
 
291
314
  if (mode !== 'evaluate' && role === 'instructor') {
292
315
  var correctResponse = question.correctResponse;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.js"],"names":["getPartialScore","correctResponse","builtCategories","reduce","acc","choices","placements","length","score","filter","ch","correct","maxScore","extraPlacements","totalScore","parseFloat","toFixed","getAlternates","map","c","alternateResponses","alternate","getTotalScore","question","session","env","Object","keys","categories","answers","alternates","enabled","partialScoring","getCorrectness","Promise","resolve","mode","undefined","createDefaultModel","model","defaults","normalize","updateSession","normalizedQuestion","answerCorrectness","role","categoriesPerRow","choicesLabel","choicesPosition","feedback","feedbackEnabled","promptEnabled","prompt","rowLabels","rationaleEnabled","rationale","note","teacherInstructionsEnabled","teacherInstructions","lockChoiceOrder","filteredCorrectResponse","response","filteredChoices","choice","fb","out","correctness","disabled","showNote","outcome","reject","Error","empty","createCorrectResponseSession","id","validate","config","minChoices","maxChoices","minCategories","maxCategories","maxLengthPerChoice","maxLengthPerCategory","reversedChoices","reverse","errors","choicesErrors","categoriesErrors","forEach","category","label","parsedLabel","replace","index","content","parsedContent","identicalAnswer","slice","some","nbOfCategories","nbOfChoices","categoriesError","choicesError","hasAssociations","duplicateAlternateIndex","duplicateCategory","duplicateAlternate","associationError"],"mappings":"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","sourcesContent":["import isEmpty from 'lodash/isEmpty';\nimport { buildState, score } from '@pie-lib/categorize';\nimport { getFeedbackForCorrectness } from '@pie-lib/feedback';\nimport { isAlternateDuplicated, isCorrectResponseDuplicated } from './utils';\nimport { lockChoices, getShuffledChoices, partialScoring } from '@pie-lib/controller-utils';\nimport defaults from './defaults';\n\n// eslint-disable-next-line no-console\n\nexport { score };\n\nexport const getPartialScore = (correctResponse, builtCategories) => {\n // in the resulted best scenario we make a sum with all the correct responses\n // and all the placements\n const { placements, score } = builtCategories.reduce(\n (acc, { choices = [] }) => ({\n placements: acc.placements + choices.length,\n score: acc.score + choices.filter((ch) => ch.correct).length,\n }),\n { placements: 0, score: 0 },\n );\n\n // in the correct response, we make a sum of the max possible score\n const { maxScore } = correctResponse.reduce(\n (acc, { choices }) => ({\n maxScore: acc.maxScore + choices.length,\n }),\n { maxScore: 0 },\n );\n\n // if there are any extra placements, we subtract from the obtained score\n const extraPlacements = placements > maxScore ? placements - maxScore : 0;\n const totalScore = (score - extraPlacements) / maxScore;\n\n return totalScore < 0 ? 0 : parseFloat(totalScore.toFixed(2));\n};\n\nconst getAlternates = (correctResponse) =>\n correctResponse.map((c) => c.alternateResponses).filter((alternate) => alternate);\n\nexport const getTotalScore = (question, session, env) => {\n if (!session) {\n return 0;\n }\n\n if (Object.keys(session).length === 0) {\n return 0;\n }\n const { categories, choices } = question || {};\n let { correctResponse } = question || {};\n let { answers } = session || {};\n answers = answers || [];\n correctResponse = correctResponse || [];\n\n // this function is used in pie-ui/categorize as well, in order to get the best scenario\n // so we get the best scenario and calculate the score\n const { categories: builtCategories, correct } = buildState(categories, choices, answers, correctResponse);\n\n const alternates = getAlternates(correctResponse);\n const enabled = partialScoring.enabled(question, env);\n\n // if there are any alternates, there will be no partial scoring!\n if (enabled && !alternates.length) {\n // we apply partial scoring\n return getPartialScore(correctResponse, builtCategories);\n }\n\n // else we apply dichotomous\n return correct ? 1 : 0;\n};\n\nexport const getCorrectness = (question, session, env) => {\n return new Promise((resolve) => {\n if (env.mode === 'evaluate') {\n const score = getTotalScore(question, session, env);\n if (score === 1) {\n resolve('correct');\n } else if (score === 0) {\n resolve('incorrect');\n } else {\n resolve('partially-correct');\n }\n } else {\n resolve(undefined);\n }\n });\n};\n\nexport const createDefaultModel = (model = {}) =>\n new Promise((resolve) => {\n resolve({\n ...defaults,\n ...model,\n });\n });\n\nexport const normalize = (question) => ({\n ...defaults,\n ...question,\n});\n\n/**\n *\n * @param {*} question\n * @param {*} session\n * @param {*} env\n * @param {*} updateSession - optional - a function that will set the properties passed into it on the session.\n */\nexport const model = (question, session, env, updateSession) =>\n new Promise(async (resolve) => {\n const normalizedQuestion = normalize(question);\n const answerCorrectness = await getCorrectness(normalizedQuestion, session, env);\n\n const { mode, role } = env || {};\n\n const {\n categories,\n categoriesPerRow,\n choicesLabel,\n choicesPosition,\n correctResponse,\n feedback,\n feedbackEnabled,\n promptEnabled,\n prompt,\n rowLabels,\n rationaleEnabled,\n rationale,\n note,\n teacherInstructionsEnabled,\n teacherInstructions,\n } = normalizedQuestion;\n let { choices } = normalizedQuestion;\n let fb;\n\n const lockChoiceOrder = lockChoices(normalizedQuestion, session, env);\n\n const filteredCorrectResponse = correctResponse.map((response) => {\n const filteredChoices = (response.choices || []).filter((choice) => choice !== 'null');\n return { ...response, choices: filteredChoices };\n });\n\n if (mode === 'evaluate' && feedbackEnabled) {\n fb = await getFeedbackForCorrectness(answerCorrectness, feedback);\n }\n\n if (!lockChoiceOrder) {\n choices = await getShuffledChoices(choices, session, updateSession, 'id');\n }\n\n const alternates = getAlternates(filteredCorrectResponse);\n const out = {\n categories: categories || [],\n categoriesPerRow: categoriesPerRow || 2,\n correctness: answerCorrectness,\n choices: choices || [],\n choicesLabel: choicesLabel || '',\n choicesPosition,\n disabled: mode !== 'gather',\n feedback: fb,\n lockChoiceOrder,\n prompt: promptEnabled ? prompt : null,\n rowLabels,\n note,\n env,\n showNote: alternates && alternates.length > 0,\n correctResponse: mode === 'evaluate' ? filteredCorrectResponse : undefined,\n };\n\n if (role === 'instructor' && (mode === 'view' || mode === 'evaluate')) {\n out.rationale = rationaleEnabled ? rationale : null;\n out.teacherInstructions = teacherInstructionsEnabled ? teacherInstructions : null;\n } else {\n out.rationale = null;\n out.teacherInstructions = null;\n }\n\n resolve(out);\n });\n\nexport const outcome = (question, session, env) => {\n if (env.mode !== 'evaluate') {\n return Promise.reject(new Error('Can not call outcome when mode is not evaluate'));\n } else {\n return new Promise((resolve) => {\n resolve({\n score: getTotalScore(question, session, env),\n empty: !session || isEmpty(session),\n });\n });\n }\n};\n\nexport const createCorrectResponseSession = (question, env) => {\n return new Promise((resolve) => {\n const { mode, role } = env || {};\n\n if (mode !== 'evaluate' && role === 'instructor') {\n const { correctResponse } = question;\n\n resolve({ answers: correctResponse, id: 1 });\n } else {\n return resolve(null);\n }\n });\n};\n\nexport const validate = (model = {}, config = {}) => {\n const { categories, choices, correctResponse } = model;\n const { minChoices = 1, maxChoices = 15, minCategories = 1, maxCategories = 12, maxLengthPerChoice = 300, maxLengthPerCategory = 150 } = config;\n const reversedChoices = [ ...choices || []].reverse();\n const errors = {};\n const choicesErrors = {};\n const categoriesErrors = {};\n\n (categories || []).forEach((category) => {\n const {id, label} = category;\n const parsedLabel = label.replace(/<(?:.|\\n)*?>/gm, '');\n if (parsedLabel.length > maxLengthPerCategory){\n categoriesErrors[id] = `Category labels should be no more than ${maxLengthPerCategory} characters long.`;\n }\n });\n\n (reversedChoices || []).forEach((choice, index) => {\n const { id, content } = choice;\n const parsedContent = content.replace(/<(?:.|\\n)*?>/gm, '');\n if (parsedContent.length > maxLengthPerChoice){\n choicesErrors[id] = `Tokens should be no more than ${maxLengthPerChoice} characters long.`;\n }\n if (content === '' || content === '<div></div>') {\n choicesErrors[id] = 'Tokens should not be empty.';\n } else {\n const identicalAnswer = reversedChoices.slice(index + 1).some(c => c.content === content);\n\n if (identicalAnswer) {\n choicesErrors[id] = 'Tokens content should be unique.';\n }\n }\n });\n\n const nbOfCategories = (categories || []).length;\n const nbOfChoices = (choices || []).length;\n\n if (nbOfCategories > maxCategories) {\n errors.categoriesError = `No more than ${maxCategories} categories should be defined.`;\n } else if (nbOfCategories < minCategories) {\n errors.categoriesError = `There should be at least ${minCategories} category defined.`;\n }\n\n if (nbOfChoices < minChoices) {\n errors.choicesError = `There should be at least ${minChoices} choices defined.`;\n } else if (nbOfChoices > maxChoices) {\n errors.choicesError = `No more than ${maxChoices} choices should be defined.`;\n }\n\n if (nbOfChoices && nbOfCategories) {\n let hasAssociations = false;\n\n (correctResponse || []).forEach(response => {\n const { choices = [], alternateResponses = [] } = response;\n\n if (choices.length) {\n hasAssociations = true;\n } else {\n alternateResponses.forEach(alternate => {\n if ((alternate || []).length) {\n hasAssociations = true;\n }\n });\n }\n });\n\n let duplicateAlternateIndex = -1;\n let duplicateCategory = '';\n (correctResponse || []).forEach(response => {\n const { choices = [], alternateResponses = [], category } = response;\n if (duplicateAlternateIndex === -1) {\n duplicateAlternateIndex = isCorrectResponseDuplicated(choices,alternateResponses);\n if (duplicateAlternateIndex === -1) {\n duplicateAlternateIndex = isAlternateDuplicated(alternateResponses);\n }\n duplicateCategory = category;\n }\n });\n\n if (duplicateAlternateIndex > -1) {\n errors.duplicateAlternate = {index:duplicateAlternateIndex, category:duplicateCategory};\n }\n\n if (!hasAssociations) {\n errors.associationError = 'At least one token should be assigned to at least one category.';\n }\n }\n\n if (!isEmpty(choicesErrors)) {\n errors.choicesErrors = choicesErrors;\n }\n\n if (!isEmpty(categoriesErrors)) {\n errors.categoriesErrors = categoriesErrors;\n }\n return errors;\n};\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../src/index.js"],"names":["disableAlternateResponses","question","correctResponse","mappedCorrectResponse","map","cr","alternateResponses","response","allowAlternateEnabled","getPartialScore","builtCategories","reduce","acc","choices","placements","length","score","filter","ch","correct","maxScore","extraPlacements","totalScore","parseFloat","toFixed","getAlternates","c","alternate","getTotalScore","session","env","Object","keys","categories","answers","alternates","enabled","partialScoring","getCorrectness","Promise","resolve","mode","undefined","createDefaultModel","model","defaults","normalize","newQuestion","updateSession","normalizedQuestion","answerCorrectness","role","categoriesPerRow","choicesLabel","choicesPosition","feedback","feedbackEnabled","promptEnabled","prompt","rowLabels","rationaleEnabled","rationale","note","teacherInstructionsEnabled","teacherInstructions","lockChoiceOrder","filteredCorrectResponse","filteredChoices","choice","fb","out","correctness","disabled","showNote","outcome","reject","Error","empty","createCorrectResponseSession","id","validate","config","minChoices","maxChoices","minCategories","maxCategories","maxLengthPerChoice","maxLengthPerCategory","reversedChoices","reverse","errors","choicesErrors","categoriesErrors","forEach","category","label","parsedLabel","replace","index","content","parsedContent","identicalAnswer","slice","some","nbOfCategories","nbOfChoices","categoriesError","choicesError","hasAssociations","duplicateAlternateIndex","duplicateCategory","duplicateAlternate","associationError"],"mappings":"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","sourcesContent":["import isEmpty from 'lodash/isEmpty';\nimport { buildState, score } from '@pie-lib/categorize';\nimport { getFeedbackForCorrectness } from '@pie-lib/feedback';\nimport { isAlternateDuplicated, isCorrectResponseDuplicated } from './utils';\nimport { lockChoices, getShuffledChoices, partialScoring } from '@pie-lib/controller-utils';\nimport defaults from './defaults';\n\n// eslint-disable-next-line no-console\n\nexport { score };\n\n// PD-2960: make sure we don't have alternates in model or possibility to add them (temporary solution)\n// this function is used in configure part, too\nconst disableAlternateResponses = (question) => {\n let { correctResponse } = question || {};\n correctResponse = correctResponse || [];\n const mappedCorrectResponse = correctResponse.map((cr) => {\n const { alternateResponses, ...response } = cr;\n return response;\n });\n return {\n ...question,\n correctResponse: mappedCorrectResponse,\n allowAlternateEnabled: false,\n };\n};\n\nexport const getPartialScore = (correctResponse, builtCategories) => {\n // in the resulted best scenario we make a sum with all the correct responses\n // and all the placements\n const { placements, score } = builtCategories.reduce(\n (acc, { choices = [] }) => ({\n placements: acc.placements + choices.length,\n score: acc.score + choices.filter((ch) => ch.correct).length,\n }),\n { placements: 0, score: 0 },\n );\n\n // in the correct response, we make a sum of the max possible score\n const { maxScore } = correctResponse.reduce(\n (acc, { choices }) => ({\n maxScore: acc.maxScore + choices.length,\n }),\n { maxScore: 0 },\n );\n\n // if there are any extra placements, we subtract from the obtained score\n const extraPlacements = placements > maxScore ? placements - maxScore : 0;\n const totalScore = (score - extraPlacements) / maxScore;\n\n return totalScore < 0 ? 0 : parseFloat(totalScore.toFixed(2));\n};\n\nconst getAlternates = (correctResponse) =>\n correctResponse.map((c) => c.alternateResponses).filter((alternate) => alternate);\n\nexport const getTotalScore = (question, session, env) => {\n if (!session) {\n return 0;\n }\n\n if (Object.keys(session).length === 0) {\n return 0;\n }\n const { categories, choices } = question || {};\n let { correctResponse } = question || {};\n let { answers } = session || {};\n answers = answers || [];\n correctResponse = correctResponse || [];\n\n // this function is used in pie-ui/categorize as well, in order to get the best scenario\n // so we get the best scenario and calculate the score\n const { categories: builtCategories, correct } = buildState(categories, choices, answers, correctResponse);\n\n const alternates = getAlternates(correctResponse);\n const enabled = partialScoring.enabled(question, env);\n\n // if there are any alternates, there will be no partial scoring!\n if (enabled && !alternates.length) {\n // we apply partial scoring\n return getPartialScore(correctResponse, builtCategories);\n }\n\n // else we apply dichotomous\n return correct ? 1 : 0;\n};\n\nexport const getCorrectness = (question, session, env) => {\n return new Promise((resolve) => {\n if (env.mode === 'evaluate') {\n const score = getTotalScore(question, session, env);\n if (score === 1) {\n resolve('correct');\n } else if (score === 0) {\n resolve('incorrect');\n } else {\n resolve('partially-correct');\n }\n } else {\n resolve(undefined);\n }\n });\n};\n\nexport const createDefaultModel = (model = {}) =>\n new Promise((resolve) => {\n resolve({\n ...defaults,\n ...model,\n });\n });\n\nexport const normalize = (question) => {\n const newQuestion = disableAlternateResponses(question);\n return {\n ...defaults,\n ...newQuestion,\n };\n};\n\n/**\n *\n * @param {*} question\n * @param {*} session\n * @param {*} env\n * @param {*} updateSession - optional - a function that will set the properties passed into it on the session.\n */\nexport const model = (question, session, env, updateSession) =>\n new Promise(async (resolve) => {\n const normalizedQuestion = normalize(question);\n const answerCorrectness = await getCorrectness(normalizedQuestion, session, env);\n\n const { mode, role } = env || {};\n\n const {\n categories,\n categoriesPerRow,\n choicesLabel,\n choicesPosition,\n correctResponse,\n feedback,\n feedbackEnabled,\n promptEnabled,\n prompt,\n rowLabels,\n rationaleEnabled,\n rationale,\n note,\n teacherInstructionsEnabled,\n teacherInstructions,\n } = normalizedQuestion;\n let { choices } = normalizedQuestion;\n let fb;\n\n const lockChoiceOrder = lockChoices(normalizedQuestion, session, env);\n\n const filteredCorrectResponse = correctResponse.map((response) => {\n const filteredChoices = (response.choices || []).filter((choice) => choice !== 'null');\n return { ...response, choices: filteredChoices };\n });\n\n if (mode === 'evaluate' && feedbackEnabled) {\n fb = await getFeedbackForCorrectness(answerCorrectness, feedback);\n }\n\n if (!lockChoiceOrder) {\n choices = await getShuffledChoices(choices, session, updateSession, 'id');\n }\n\n const alternates = getAlternates(filteredCorrectResponse);\n const out = {\n categories: categories || [],\n categoriesPerRow: categoriesPerRow || 2,\n correctness: answerCorrectness,\n choices: choices || [],\n choicesLabel: choicesLabel || '',\n choicesPosition,\n disabled: mode !== 'gather',\n feedback: fb,\n lockChoiceOrder,\n prompt: promptEnabled ? prompt : null,\n rowLabels,\n note,\n env,\n showNote: alternates && alternates.length > 0,\n correctResponse: mode === 'evaluate' ? filteredCorrectResponse : undefined,\n };\n\n if (role === 'instructor' && (mode === 'view' || mode === 'evaluate')) {\n out.rationale = rationaleEnabled ? rationale : null;\n out.teacherInstructions = teacherInstructionsEnabled ? teacherInstructions : null;\n } else {\n out.rationale = null;\n out.teacherInstructions = null;\n }\n\n resolve(out);\n });\n\nexport const outcome = (question, session, env) => {\n if (env.mode !== 'evaluate') {\n return Promise.reject(new Error('Can not call outcome when mode is not evaluate'));\n } else {\n return new Promise((resolve) => {\n resolve({\n score: getTotalScore(question, session, env),\n empty: !session || isEmpty(session),\n });\n });\n }\n};\n\nexport const createCorrectResponseSession = (question, env) => {\n return new Promise((resolve) => {\n const { mode, role } = env || {};\n\n if (mode !== 'evaluate' && role === 'instructor') {\n const { correctResponse } = question;\n\n resolve({ answers: correctResponse, id: 1 });\n } else {\n return resolve(null);\n }\n });\n};\n\nexport const validate = (model = {}, config = {}) => {\n const { categories, choices, correctResponse } = model;\n const {\n minChoices = 1,\n maxChoices = 15,\n minCategories = 1,\n maxCategories = 12,\n maxLengthPerChoice = 300,\n maxLengthPerCategory = 150,\n } = config;\n const reversedChoices = [...(choices || [])].reverse();\n const errors = {};\n const choicesErrors = {};\n const categoriesErrors = {};\n\n (categories || []).forEach((category) => {\n const { id, label } = category;\n const parsedLabel = label.replace(/<(?:.|\\n)*?>/gm, '');\n if (parsedLabel.length > maxLengthPerCategory) {\n categoriesErrors[id] = `Category labels should be no more than ${maxLengthPerCategory} characters long.`;\n }\n });\n\n (reversedChoices || []).forEach((choice, index) => {\n const { id, content } = choice;\n const parsedContent = content.replace(/<(?:.|\\n)*?>/gm, '');\n if (parsedContent.length > maxLengthPerChoice) {\n choicesErrors[id] = `Tokens should be no more than ${maxLengthPerChoice} characters long.`;\n }\n if (content === '' || content === '<div></div>') {\n choicesErrors[id] = 'Tokens should not be empty.';\n } else {\n const identicalAnswer = reversedChoices.slice(index + 1).some((c) => c.content === content);\n\n if (identicalAnswer) {\n choicesErrors[id] = 'Tokens content should be unique.';\n }\n }\n });\n\n const nbOfCategories = (categories || []).length;\n const nbOfChoices = (choices || []).length;\n\n if (nbOfCategories > maxCategories) {\n errors.categoriesError = `No more than ${maxCategories} categories should be defined.`;\n } else if (nbOfCategories < minCategories) {\n errors.categoriesError = `There should be at least ${minCategories} category defined.`;\n }\n\n if (nbOfChoices < minChoices) {\n errors.choicesError = `There should be at least ${minChoices} choices defined.`;\n } else if (nbOfChoices > maxChoices) {\n errors.choicesError = `No more than ${maxChoices} choices should be defined.`;\n }\n\n if (nbOfChoices && nbOfCategories) {\n let hasAssociations = false;\n\n (correctResponse || []).forEach((response) => {\n const { choices = [], alternateResponses = [] } = response;\n\n if (choices.length) {\n hasAssociations = true;\n } else {\n alternateResponses.forEach((alternate) => {\n if ((alternate || []).length) {\n hasAssociations = true;\n }\n });\n }\n });\n\n let duplicateAlternateIndex = -1;\n let duplicateCategory = '';\n (correctResponse || []).forEach((response) => {\n const { choices = [], alternateResponses = [], category } = response;\n if (duplicateAlternateIndex === -1) {\n duplicateAlternateIndex = isCorrectResponseDuplicated(choices, alternateResponses);\n if (duplicateAlternateIndex === -1) {\n duplicateAlternateIndex = isAlternateDuplicated(alternateResponses);\n }\n duplicateCategory = category;\n }\n });\n\n if (duplicateAlternateIndex > -1) {\n errors.duplicateAlternate = { index: duplicateAlternateIndex, category: duplicateCategory };\n }\n\n if (!hasAssociations) {\n errors.associationError = 'At least one token should be assigned to at least one category.';\n }\n }\n\n if (!isEmpty(choicesErrors)) {\n errors.choicesErrors = choicesErrors;\n }\n\n if (!isEmpty(categoriesErrors)) {\n errors.categoriesErrors = categoriesErrors;\n }\n return errors;\n};\n"],"file":"index.js"}
@@ -7,7 +7,7 @@
7
7
  "@pie-lib/feedback": "^0.4.43",
8
8
  "lodash": "^4.17.15"
9
9
  },
10
- "version": "5.9.4",
10
+ "version": "5.9.5",
11
11
  "description": "",
12
12
  "scripts": {},
13
13
  "main": "lib/index.js",
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
7
- "version": "7.14.1-next.6+c1c47bb18",
7
+ "version": "7.14.2-next.5+a491d6012",
8
8
  "description": "",
9
9
  "author": "pie framework developers",
10
10
  "license": "ISC",
@@ -24,7 +24,7 @@
24
24
  "react-dnd": "^14.0.5",
25
25
  "react-dom": "^16.8.1"
26
26
  },
27
- "gitHead": "c1c47bb1888d0d7a38a4663c0a2323cd80c8b62d",
27
+ "gitHead": "a491d60121ff772ed2382bdbf33414f4715903d7",
28
28
  "scripts": {
29
29
  "postpublish": "../../scripts/postpublish"
30
30
  },