@pie-element/match 11.0.0-beta.1 → 11.0.0-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -15,7 +15,7 @@ var _styles = require("@mui/material/styles");
15
15
  var _addRow = _interopRequireDefault(require("./add-row"));
16
16
  var _row = _interopRequireDefault(require("./row"));
17
17
  var _debug = _interopRequireDefault(require("debug"));
18
- var _lodash = _interopRequireDefault(require("lodash"));
18
+ var _lodashEs = require("lodash-es");
19
19
  var _editableHtmlTipTap = _interopRequireWildcard(require("@pie-lib/editable-html-tip-tap"));
20
20
  var _drag = require("@pie-lib/drag");
21
21
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
@@ -149,7 +149,7 @@ class AnswerConfigBlock extends React.Component {
149
149
  } else {
150
150
  value = target.value;
151
151
  }
152
- _lodash.default.set(model, name, value);
152
+ (0, _lodashEs.set)(model, name, value);
153
153
  onChange(model, name);
154
154
  });
155
155
  (0, _defineProperty2.default)(this, "onHeaderChange", headerIndex => value => {
@@ -1 +1 @@
1
- {"version":3,"file":"answer-config-block.js","names":["_utils","require","React","_interopRequireWildcard","_classnames","_interopRequireDefault","_propTypes","_Typography","_styles","_addRow","_row","_debug","_lodash","_editableHtmlTipTap","_drag","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","log","debug","Container","styled","theme","marginBottom","spacing","display","flexDirection","RowContainer","alignItems","flex","width","borderBottom","palette","grey","paddingBottom","marginTop","RowItem","justifyContent","padding","textAlign","DeleteIcon","minWidth","RowTable","ColumnErrorText","fontSize","typography","color","error","main","paddingTop","ErrorText","GlobalStyles","fontWeight","AnswerConfigBlock","Component","constructor","args","_defineProperty2","event","active","over","activeData","data","current","overData","type","from","index","to","model","onChange","props","newModel","rows","movedRow","remainingRows","reduce","acc","item","push","update","slice","name","isBoolean","target","value","checked","lodash","headerIndex","headers","render","onAddRow","imageSupport","configuration","toolbarOpts","spellCheck","uploadSoundSupport","baseInputConfiguration","maxImageWidth","maxImageHeight","mathMlOptions","minQuestions","errors","correctResponseError","rowsErrors","columnsErrors","noOfRowsError","columnsLengthError","filteredDefaultPlugins","DEFAULT_PLUGINS","filter","p","defaultImageMaxWidth","prompt","defaultImageMaxHeight","createElement","DragProvider","onDragEnd","moveRow","component","style","overflow","settings","map","header","idx","key","className","cx","questionText","sx","marginRight","maxWidth","onHeaderChange","markup","label","activePlugins","pluginProps","getPluginProps","inputConfiguration","autoWidthToolbar","languageCharactersProps","language","row","onDeleteRow","id","rowTitles","onAddClick","PropTypes","object","isRequired","func","shape","add","delete","bool","_default","exports"],"sources":["../src/answer-config-block.jsx"],"sourcesContent":["import { getPluginProps } from './utils';\nimport * as React from 'react';\nimport cx from 'classnames';\nimport PropTypes from 'prop-types';\nimport Typography from '@mui/material/Typography';\nimport { styled } from '@mui/material/styles';\nimport AddRow from './add-row';\nimport Row from './row';\nimport debug from 'debug';\nimport lodash from 'lodash';\nimport EditableHtml, { DEFAULT_PLUGINS } from '@pie-lib/editable-html-tip-tap';\nimport { DragProvider } from '@pie-lib/drag';\n\nconst log = debug('pie-elements:match:configure');\n\nconst Container = styled('div')(({ theme }) => ({\n marginBottom: theme.spacing(2.5),\n display: 'flex',\n flexDirection: 'column',\n}));\n\nconst RowContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n flex: 1,\n width: '100%',\n borderBottom: `2px solid ${theme.palette.grey['A100']}`,\n paddingBottom: theme.spacing(2),\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(1),\n}));\n\nconst RowItem = styled('div')(({ theme }) => ({\n flex: 1,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n flexDirection: 'column',\n '&> div': {\n width: '120px',\n padding: `0 ${theme.spacing(1)}`,\n textAlign: 'center',\n },\n}));\n\nconst DeleteIcon = styled('div')(({ theme }) => ({\n flex: 0.5,\n minWidth: '45px',\n padding: `0 ${theme.spacing(1)}`,\n}));\n\nconst RowTable = styled('div')({\n display: 'flex',\n flexDirection: 'column',\n});\n\nconst ColumnErrorText = styled('div')(({ theme }) => ({\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingTop: `${theme.spacing(1)} !important`,\n width: 'fit-content !important',\n}));\n\nconst ErrorText = styled('div')(({ theme }) => ({\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingBottom: theme.spacing(1),\n}));\n\n// Global styles for EditableHtml components\nconst GlobalStyles = styled('div')(({ theme }) => ({\n '& .marginBottom': {\n marginBottom: theme.typography.fontSize - 2 + theme.spacing(1),\n },\n '& .headerInput': {\n '& > div': {\n fontWeight: 'bold',\n },\n },\n}));\n\nclass AnswerConfigBlock extends React.Component {\n static propTypes = {\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n onDeleteRow: PropTypes.func.isRequired,\n onAddRow: PropTypes.func.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 toolbarOpts: PropTypes.object,\n spellCheck: PropTypes.bool,\n };\n\n moveRow = (event) => {\n const { active, over } = event;\n\n if (!over || !active) return;\n\n const activeData = active.data.current;\n const overData = over.data.current;\n\n if (activeData?.type === 'row' && overData?.type === 'row') {\n const from = activeData.index;\n const to = overData.index;\n\n const { model, onChange } = this.props;\n const newModel = { ...model };\n const rows = newModel.rows || [];\n\n log('[moveRow]: ', from, to);\n\n const { movedRow, remainingRows } = rows.reduce(\n (acc, item, index) => {\n if (index === from) {\n acc.movedRow = item;\n } else {\n acc.remainingRows.push(item);\n }\n\n return acc;\n },\n { movedRow: null, remainingRows: [] },\n );\n\n const update = [...remainingRows.slice(0, to), movedRow, ...remainingRows.slice(to)];\n\n log('update: ', update);\n\n newModel.rows = update;\n\n onChange(newModel);\n }\n };\n\n onChange =\n (name, isBoolean) =>\n ({ target }) => {\n const { model, onChange } = this.props;\n let value;\n\n if (isBoolean) {\n value = target.checked;\n } else {\n value = target.value;\n }\n\n lodash.set(model, name, value);\n onChange(model, name);\n };\n\n onHeaderChange = (headerIndex) => (value) => {\n const { model, onChange } = this.props;\n const newModel = { ...model };\n\n if (headerIndex === 0) {\n newModel.headers[headerIndex] = value;\n onChange(newModel);\n\n return;\n }\n\n newModel.headers[headerIndex] = value;\n onChange(newModel);\n };\n\n render() {\n const { model, onAddRow, imageSupport, configuration, toolbarOpts, spellCheck, uploadSoundSupport } =\n this.props;\n const {\n baseInputConfiguration = {},\n headers = {},\n rows = {},\n maxImageWidth = {},\n maxImageHeight = {},\n mathMlOptions = {},\n minQuestions,\n } = configuration || {};\n const { errors } = model || {};\n const { correctResponseError, rowsErrors, columnsErrors, noOfRowsError, columnsLengthError } = errors || {};\n\n const filteredDefaultPlugins = (DEFAULT_PLUGINS || []).filter(\n (p) => p !== 'table' && p !== 'bulleted-list' && p !== 'numbered-list',\n );\n\n const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;\n const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;\n\n return (\n <GlobalStyles>\n <DragProvider onDragEnd={this.moveRow}>\n <Container>\n <Typography type=\"body1\" component=\"div\">\n Click on the labels to edit or remove. Set the correct answers by clicking each correct answer per row.\n </Typography>\n\n <RowTable\n style={configuration.width ? { width: configuration.width, overflow: 'scroll' } : {}}\n >\n <RowContainer>\n {headers.settings &&\n (model.headers || []).map((header, idx) => (\n <RowItem\n key={idx}\n className={cx({\n questionText: idx === 0,\n })}\n sx={idx === 0 ? {\n flex: 2,\n display: 'flex',\n justifyContent: 'flex-start',\n marginRight: 1,\n '&> div': {\n width: '100%',\n padding: 0,\n maxWidth: 'unset',\n textAlign: 'left',\n minWidth: '200px',\n },\n } : {}}\n >\n <EditableHtml\n onChange={this.onHeaderChange(idx)}\n markup={header}\n className={columnsErrors && !columnsErrors[idx] ? 'marginBottom' : 'headerInput'}\n label={'column label'}\n activePlugins={filteredDefaultPlugins}\n pluginProps={getPluginProps(headers?.inputConfiguration, baseInputConfiguration)}\n autoWidthToolbar\n spellCheck={spellCheck}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n error={columnsErrors && columnsErrors[idx]}\n />\n {columnsErrors && columnsErrors[idx] && (\n <ColumnErrorText>{columnsErrors[idx]}</ColumnErrorText>\n )}\n </RowItem>\n ))}\n <DeleteIcon />\n </RowContainer>\n\n {model.rows.map((row, idx) => (\n <Row\n key={idx}\n model={model}\n row={row}\n idx={idx}\n onDeleteRow={this.props.onDeleteRow}\n onChange={this.props.onChange}\n imageSupport={imageSupport}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheck}\n error={rowsErrors?.[row.id]}\n maxImageWidth={(maxImageWidth && maxImageWidth.rowTitles) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.rowTitles) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n mathMlOptions={mathMlOptions}\n minQuestions={minQuestions}\n inputConfiguration={getPluginProps(rows?.inputConfiguration, baseInputConfiguration)}\n />\n ))}\n\n {correctResponseError && <ErrorText>{correctResponseError}</ErrorText>}\n {noOfRowsError && <ErrorText>{noOfRowsError}</ErrorText>}\n {columnsLengthError && <ErrorText>{columnsLengthError}</ErrorText>}\n\n <AddRow onAddClick={onAddRow} />\n </RowTable>\n </Container>\n </DragProvider>\n </GlobalStyles>\n );\n }\n}\n\nexport default AnswerConfigBlock;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"answer-config-block.js","names":["_utils","require","React","_interopRequireWildcard","_classnames","_interopRequireDefault","_propTypes","_Typography","_styles","_addRow","_row","_debug","_lodashEs","_editableHtmlTipTap","_drag","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","log","debug","Container","styled","theme","marginBottom","spacing","display","flexDirection","RowContainer","alignItems","flex","width","borderBottom","palette","grey","paddingBottom","marginTop","RowItem","justifyContent","padding","textAlign","DeleteIcon","minWidth","RowTable","ColumnErrorText","fontSize","typography","color","error","main","paddingTop","ErrorText","GlobalStyles","fontWeight","AnswerConfigBlock","Component","constructor","args","_defineProperty2","event","active","over","activeData","data","current","overData","type","from","index","to","model","onChange","props","newModel","rows","movedRow","remainingRows","reduce","acc","item","push","update","slice","name","isBoolean","target","value","checked","headerIndex","headers","render","onAddRow","imageSupport","configuration","toolbarOpts","spellCheck","uploadSoundSupport","baseInputConfiguration","maxImageWidth","maxImageHeight","mathMlOptions","minQuestions","errors","correctResponseError","rowsErrors","columnsErrors","noOfRowsError","columnsLengthError","filteredDefaultPlugins","DEFAULT_PLUGINS","filter","p","defaultImageMaxWidth","prompt","defaultImageMaxHeight","createElement","DragProvider","onDragEnd","moveRow","component","style","overflow","settings","map","header","idx","key","className","cx","questionText","sx","marginRight","maxWidth","onHeaderChange","markup","label","activePlugins","pluginProps","getPluginProps","inputConfiguration","autoWidthToolbar","languageCharactersProps","language","row","onDeleteRow","id","rowTitles","onAddClick","PropTypes","object","isRequired","func","shape","add","delete","bool","_default","exports"],"sources":["../src/answer-config-block.jsx"],"sourcesContent":["import { getPluginProps } from './utils';\nimport * as React from 'react';\nimport cx from 'classnames';\nimport PropTypes from 'prop-types';\nimport Typography from '@mui/material/Typography';\nimport { styled } from '@mui/material/styles';\nimport AddRow from './add-row';\nimport Row from './row';\nimport debug from 'debug';\nimport { set } from 'lodash-es';\nimport EditableHtml, { DEFAULT_PLUGINS } from '@pie-lib/editable-html-tip-tap';\nimport { DragProvider } from '@pie-lib/drag';\n\nconst log = debug('pie-elements:match:configure');\n\nconst Container = styled('div')(({ theme }) => ({\n marginBottom: theme.spacing(2.5),\n display: 'flex',\n flexDirection: 'column',\n}));\n\nconst RowContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n flex: 1,\n width: '100%',\n borderBottom: `2px solid ${theme.palette.grey['A100']}`,\n paddingBottom: theme.spacing(2),\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(1),\n}));\n\nconst RowItem = styled('div')(({ theme }) => ({\n flex: 1,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n flexDirection: 'column',\n '&> div': {\n width: '120px',\n padding: `0 ${theme.spacing(1)}`,\n textAlign: 'center',\n },\n}));\n\nconst DeleteIcon = styled('div')(({ theme }) => ({\n flex: 0.5,\n minWidth: '45px',\n padding: `0 ${theme.spacing(1)}`,\n}));\n\nconst RowTable = styled('div')({\n display: 'flex',\n flexDirection: 'column',\n});\n\nconst ColumnErrorText = styled('div')(({ theme }) => ({\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingTop: `${theme.spacing(1)} !important`,\n width: 'fit-content !important',\n}));\n\nconst ErrorText = styled('div')(({ theme }) => ({\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingBottom: theme.spacing(1),\n}));\n\n// Global styles for EditableHtml components\nconst GlobalStyles = styled('div')(({ theme }) => ({\n '& .marginBottom': {\n marginBottom: theme.typography.fontSize - 2 + theme.spacing(1),\n },\n '& .headerInput': {\n '& > div': {\n fontWeight: 'bold',\n },\n },\n}));\n\nclass AnswerConfigBlock extends React.Component {\n static propTypes = {\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n onDeleteRow: PropTypes.func.isRequired,\n onAddRow: PropTypes.func.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 toolbarOpts: PropTypes.object,\n spellCheck: PropTypes.bool,\n };\n\n moveRow = (event) => {\n const { active, over } = event;\n\n if (!over || !active) return;\n\n const activeData = active.data.current;\n const overData = over.data.current;\n\n if (activeData?.type === 'row' && overData?.type === 'row') {\n const from = activeData.index;\n const to = overData.index;\n\n const { model, onChange } = this.props;\n const newModel = { ...model };\n const rows = newModel.rows || [];\n\n log('[moveRow]: ', from, to);\n\n const { movedRow, remainingRows } = rows.reduce(\n (acc, item, index) => {\n if (index === from) {\n acc.movedRow = item;\n } else {\n acc.remainingRows.push(item);\n }\n\n return acc;\n },\n { movedRow: null, remainingRows: [] },\n );\n\n const update = [...remainingRows.slice(0, to), movedRow, ...remainingRows.slice(to)];\n\n log('update: ', update);\n\n newModel.rows = update;\n\n onChange(newModel);\n }\n };\n\n onChange =\n (name, isBoolean) =>\n ({ target }) => {\n const { model, onChange } = this.props;\n let value;\n\n if (isBoolean) {\n value = target.checked;\n } else {\n value = target.value;\n }\n\n set(model, name, value);\n onChange(model, name);\n };\n\n onHeaderChange = (headerIndex) => (value) => {\n const { model, onChange } = this.props;\n const newModel = { ...model };\n\n if (headerIndex === 0) {\n newModel.headers[headerIndex] = value;\n onChange(newModel);\n\n return;\n }\n\n newModel.headers[headerIndex] = value;\n onChange(newModel);\n };\n\n render() {\n const { model, onAddRow, imageSupport, configuration, toolbarOpts, spellCheck, uploadSoundSupport } = this.props;\n const {\n baseInputConfiguration = {},\n headers = {},\n rows = {},\n maxImageWidth = {},\n maxImageHeight = {},\n mathMlOptions = {},\n minQuestions,\n } = configuration || {};\n const { errors } = model || {};\n const { correctResponseError, rowsErrors, columnsErrors, noOfRowsError, columnsLengthError } = errors || {};\n\n const filteredDefaultPlugins = (DEFAULT_PLUGINS || []).filter(\n (p) => p !== 'table' && p !== 'bulleted-list' && p !== 'numbered-list',\n );\n\n const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;\n const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;\n\n return (\n <GlobalStyles>\n <DragProvider onDragEnd={this.moveRow}>\n <Container>\n <Typography type=\"body1\" component=\"div\">\n Click on the labels to edit or remove. Set the correct answers by clicking each correct answer per row.\n </Typography>\n\n <RowTable style={configuration.width ? { width: configuration.width, overflow: 'scroll' } : {}}>\n <RowContainer>\n {headers.settings &&\n (model.headers || []).map((header, idx) => (\n <RowItem\n key={idx}\n className={cx({\n questionText: idx === 0,\n })}\n sx={\n idx === 0\n ? {\n flex: 2,\n display: 'flex',\n justifyContent: 'flex-start',\n marginRight: 1,\n '&> div': {\n width: '100%',\n padding: 0,\n maxWidth: 'unset',\n textAlign: 'left',\n minWidth: '200px',\n },\n }\n : {}\n }\n >\n <EditableHtml\n onChange={this.onHeaderChange(idx)}\n markup={header}\n className={columnsErrors && !columnsErrors[idx] ? 'marginBottom' : 'headerInput'}\n label={'column label'}\n activePlugins={filteredDefaultPlugins}\n pluginProps={getPluginProps(headers?.inputConfiguration, baseInputConfiguration)}\n autoWidthToolbar\n spellCheck={spellCheck}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n error={columnsErrors && columnsErrors[idx]}\n />\n {columnsErrors && columnsErrors[idx] && <ColumnErrorText>{columnsErrors[idx]}</ColumnErrorText>}\n </RowItem>\n ))}\n <DeleteIcon />\n </RowContainer>\n\n {model.rows.map((row, idx) => (\n <Row\n key={idx}\n model={model}\n row={row}\n idx={idx}\n onDeleteRow={this.props.onDeleteRow}\n onChange={this.props.onChange}\n imageSupport={imageSupport}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheck}\n error={rowsErrors?.[row.id]}\n maxImageWidth={(maxImageWidth && maxImageWidth.rowTitles) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.rowTitles) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n mathMlOptions={mathMlOptions}\n minQuestions={minQuestions}\n inputConfiguration={getPluginProps(rows?.inputConfiguration, baseInputConfiguration)}\n />\n ))}\n\n {correctResponseError && <ErrorText>{correctResponseError}</ErrorText>}\n {noOfRowsError && <ErrorText>{noOfRowsError}</ErrorText>}\n {columnsLengthError && <ErrorText>{columnsLengthError}</ErrorText>}\n\n <AddRow onAddClick={onAddRow} />\n </RowTable>\n </Container>\n </DragProvider>\n </GlobalStyles>\n );\n }\n}\n\nexport default AnswerConfigBlock;\n"],"mappings":"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","ignoreList":[]}
@@ -29,6 +29,9 @@ var _default = exports.default = {
29
29
  },
30
30
  configuration: {
31
31
  baseInputConfiguration: {
32
+ h3: {
33
+ disabled: true
34
+ },
32
35
  audio: {
33
36
  disabled: false
34
37
  },
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.js","names":["_default","exports","default","model","choiceMode","feedbackEnabled","headers","layout","lockChoiceOrder","partialScoring","prompt","promptEnabled","rationale","rationaleEnabled","rows","scoringType","studentInstructionsEnabled","teacherInstructions","teacherInstructionsEnabled","toolbarEditorPosition","configuration","baseInputConfiguration","audio","disabled","video","image","textAlign","showParagraphs","separateParagraphs","inputConfiguration","feedback","settings","label","enabled","required","settingsPanelDisabled","spellCheck","studentInstructions","maxImageWidth","rowTitles","maxImageHeight","withRubric","minQuestions","maxQuestions","maxLengthQuestionsHeading","maxAnswers","maxLengthAnswers","maxLengthFirstColumnHeading","mathMlOptions","mmlOutput","mmlEditing","language","languageChoices","options"],"sources":["../src/defaults.js"],"sourcesContent":["/** NOTE: teacherInstructions, studentInstructions, rationale & scoringType\n * functionalities are not defined yet - the value for those can belong to\n * model or to configuration\n */\n\nexport default {\n model: {\n choiceMode: 'radio',\n feedbackEnabled: false,\n headers: ['Column 1', 'Column 2', 'Column 3'],\n layout: 3,\n lockChoiceOrder: true,\n partialScoring: false,\n prompt: '',\n promptEnabled: true,\n rationale: '',\n rationaleEnabled: true,\n rows: [],\n scoringType: 'auto',\n studentInstructionsEnabled: true,\n teacherInstructions: '',\n teacherInstructionsEnabled: true,\n toolbarEditorPosition: 'bottom',\n },\n configuration: {\n baseInputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n textAlign: { disabled: true },\n showParagraphs: { disabled: false },\n separateParagraphs: { disabled: true },\n },\n rows: {\n inputConfiguration: {\n audio: { disabled: true },\n video: { disabled: true },\n image: { disabled: false },\n },\n },\n feedback: {\n settings: true,\n label: 'Feedback',\n enabled: true,\n },\n headers: {\n settings: true,\n inputConfiguration: {\n audio: { disabled: true },\n video: { disabled: true },\n image: { disabled: false },\n },\n },\n layout: {\n settings: true,\n label: 'Layout',\n },\n lockChoiceOrder: {\n settings: false,\n label: 'Lock Choice Order',\n },\n partialScoring: {\n settings: false,\n label: 'Allow Partial Scoring',\n },\n choiceMode: {\n settings: true,\n label: 'Response Type',\n },\n prompt: {\n settings: true,\n label: 'Prompt',\n inputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n required: false,\n },\n rationale: {\n settings: true,\n label: 'Rationale',\n inputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n required: false,\n },\n settingsPanelDisabled: false,\n spellCheck: {\n label: 'Spellcheck',\n settings: false,\n enabled: true,\n },\n scoringType: {\n settings: false,\n label: 'Scoring Type',\n },\n studentInstructions: {\n settings: false,\n label: 'Student Instructions',\n },\n teacherInstructions: {\n settings: true,\n label: 'Teacher Instructions',\n inputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n required: false,\n },\n maxImageWidth: {\n teacherInstructions: 300,\n prompt: 300,\n rationale: 300,\n rowTitles: 300,\n },\n maxImageHeight: {\n teacherInstructions: 300,\n prompt: 300,\n rationale: 300,\n rowTitles: 150,\n },\n withRubric: {\n settings: false,\n label: 'Add Rubric',\n },\n minQuestions: 2,\n maxQuestions: 5,\n maxLengthQuestionsHeading: 100,\n maxAnswers: 5,\n maxLengthAnswers: 100,\n maxLengthFirstColumnHeading: 100,\n mathMlOptions: {\n mmlOutput: false,\n mmlEditing: false,\n },\n language: {\n settings: false,\n label: 'Specify Language',\n enabled: false,\n },\n languageChoices: {\n label: 'Language Choices',\n options: [],\n },\n },\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"defaults.js","names":["_default","exports","default","model","choiceMode","feedbackEnabled","headers","layout","lockChoiceOrder","partialScoring","prompt","promptEnabled","rationale","rationaleEnabled","rows","scoringType","studentInstructionsEnabled","teacherInstructions","teacherInstructionsEnabled","toolbarEditorPosition","configuration","baseInputConfiguration","h3","disabled","audio","video","image","textAlign","showParagraphs","separateParagraphs","inputConfiguration","feedback","settings","label","enabled","required","settingsPanelDisabled","spellCheck","studentInstructions","maxImageWidth","rowTitles","maxImageHeight","withRubric","minQuestions","maxQuestions","maxLengthQuestionsHeading","maxAnswers","maxLengthAnswers","maxLengthFirstColumnHeading","mathMlOptions","mmlOutput","mmlEditing","language","languageChoices","options"],"sources":["../src/defaults.js"],"sourcesContent":["/** NOTE: teacherInstructions, studentInstructions, rationale & scoringType\n * functionalities are not defined yet - the value for those can belong to\n * model or to configuration\n */\n\nexport default {\n model: {\n choiceMode: 'radio',\n feedbackEnabled: false,\n headers: ['Column 1', 'Column 2', 'Column 3'],\n layout: 3,\n lockChoiceOrder: true,\n partialScoring: false,\n prompt: '',\n promptEnabled: true,\n rationale: '',\n rationaleEnabled: true,\n rows: [],\n scoringType: 'auto',\n studentInstructionsEnabled: true,\n teacherInstructions: '',\n teacherInstructionsEnabled: true,\n toolbarEditorPosition: 'bottom',\n },\n configuration: {\n baseInputConfiguration: {\n h3: { disabled: true },\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n textAlign: { disabled: true },\n showParagraphs: { disabled: false },\n separateParagraphs: { disabled: true },\n },\n rows: {\n inputConfiguration: {\n audio: { disabled: true },\n video: { disabled: true },\n image: { disabled: false },\n },\n },\n feedback: {\n settings: true,\n label: 'Feedback',\n enabled: true,\n },\n headers: {\n settings: true,\n inputConfiguration: {\n audio: { disabled: true },\n video: { disabled: true },\n image: { disabled: false },\n },\n },\n layout: {\n settings: true,\n label: 'Layout',\n },\n lockChoiceOrder: {\n settings: false,\n label: 'Lock Choice Order',\n },\n partialScoring: {\n settings: false,\n label: 'Allow Partial Scoring',\n },\n choiceMode: {\n settings: true,\n label: 'Response Type',\n },\n prompt: {\n settings: true,\n label: 'Prompt',\n inputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n required: false,\n },\n rationale: {\n settings: true,\n label: 'Rationale',\n inputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n required: false,\n },\n settingsPanelDisabled: false,\n spellCheck: {\n label: 'Spellcheck',\n settings: false,\n enabled: true,\n },\n scoringType: {\n settings: false,\n label: 'Scoring Type',\n },\n studentInstructions: {\n settings: false,\n label: 'Student Instructions',\n },\n teacherInstructions: {\n settings: true,\n label: 'Teacher Instructions',\n inputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n required: false,\n },\n maxImageWidth: {\n teacherInstructions: 300,\n prompt: 300,\n rationale: 300,\n rowTitles: 300,\n },\n maxImageHeight: {\n teacherInstructions: 300,\n prompt: 300,\n rationale: 300,\n rowTitles: 150,\n },\n withRubric: {\n settings: false,\n label: 'Add Rubric',\n },\n minQuestions: 2,\n maxQuestions: 5,\n maxLengthQuestionsHeading: 100,\n maxAnswers: 5,\n maxLengthAnswers: 100,\n maxLengthFirstColumnHeading: 100,\n mathMlOptions: {\n mmlOutput: false,\n mmlEditing: false,\n },\n language: {\n settings: false,\n label: 'Specify Language',\n enabled: false,\n },\n languageChoices: {\n label: 'Language Choices',\n options: [],\n },\n },\n};\n"],"mappings":"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","ignoreList":[]}
@@ -6,14 +6,13 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.default = void 0;
8
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
- var _lodash = require("lodash");
9
+ var _lodashEs = require("lodash-es");
10
10
  var _react = _interopRequireDefault(require("react"));
11
11
  var _client = require("react-dom/client");
12
12
  var _configure = _interopRequireDefault(require("./configure"));
13
13
  var _pieConfigureEvents = require("@pie-framework/pie-configure-events");
14
14
  var _debug = _interopRequireDefault(require("debug"));
15
15
  var _defaults = _interopRequireDefault(require("./defaults"));
16
- var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
17
16
  const log = (0, _debug.default)('pie-elements:match:configure');
18
17
  class MatchConfigure extends HTMLElement {
19
18
  constructor() {
@@ -40,7 +39,7 @@ class MatchConfigure extends HTMLElement {
40
39
  }
41
40
  set model(m) {
42
41
  this._model = MatchConfigure.createDefaultModel(m);
43
- this._modelCopy = (0, _cloneDeep.default)(this._model);
42
+ this._modelCopy = (0, _lodashEs.cloneDeep)(this._model);
44
43
  this._render();
45
44
  }
46
45
  set configuration(c) {
@@ -83,10 +82,10 @@ class MatchConfigure extends HTMLElement {
83
82
  * This flag 'enableImages' will be removed in the future
84
83
  */
85
84
 
86
- if ((0, _lodash.isEmpty)(c?.rows?.inputConfiguration)) {
87
- (0, _lodash.set)(this._configuration.rows, 'inputConfiguration.image.disabled', !this._model?.enableImages);
88
- (0, _lodash.set)(this._configuration.rows, 'inputConfiguration.video.disabled', true);
89
- (0, _lodash.set)(this._configuration.rows, 'inputConfiguration.audio.disabled', true);
85
+ if ((0, _lodashEs.isEmpty)(c?.rows?.inputConfiguration)) {
86
+ (0, _lodashEs.set)(this._configuration.rows, 'inputConfiguration.image.disabled', !this._model?.enableImages);
87
+ (0, _lodashEs.set)(this._configuration.rows, 'inputConfiguration.video.disabled', true);
88
+ (0, _lodashEs.set)(this._configuration.rows, 'inputConfiguration.audio.disabled', true);
90
89
  }
91
90
  this._render();
92
91
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_lodash","require","_react","_interopRequireDefault","_client","_configure","_pieConfigureEvents","_debug","_defaults","_cloneDeep","log","debug","MatchConfigure","HTMLElement","constructor","_defineProperty2","default","pieAuthors","document","querySelectorAll","hasPlayerAsParent","Array","from","some","author","contains","_modelCopy","_model","_root","createDefaultModel","_configuration","defaultValues","configuration","model","m","cloneDeep","_render","c","newConfiguration","resetModelAfterConfigurationIsSet","language","enabled","languageChoices","options","length","value","settings","find","option","push","label","isEmpty","rows","inputConfiguration","set","enableImages","onModelChanged","dispatchEvent","ModelUpdatedEvent","onConfigurationChanged","config","insertImage","handler","InsertImageEvent","onDeleteImage","src","done","DeleteImageEvent","insertSound","InsertSoundEvent","onDeleteSound","DeleteSoundEvent","el","React","createElement","Configure","bind","imageSupport","add","delete","uploadSoundSupport","createRoot","render","disconnectedCallback","unmount","exports"],"sources":["../src/index.js"],"sourcesContent":["import { isEmpty, set } from 'lodash';\nimport React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport Configure from './configure';\nimport {\n ModelUpdatedEvent,\n DeleteImageEvent,\n InsertImageEvent,\n InsertSoundEvent,\n DeleteSoundEvent,\n} from '@pie-framework/pie-configure-events';\nimport debug from 'debug';\nimport defaultValues from './defaults';\nimport cloneDeep from 'lodash/cloneDeep';\n\nconst log = debug('pie-elements:match:configure');\n\nexport default class MatchConfigure extends HTMLElement {\n static createDefaultModel = (model = {}) => ({\n ...defaultValues.model,\n ...model,\n });\n\n constructor() {\n super();\n this._root = null;\n this._model = MatchConfigure.createDefaultModel();\n this._configuration = defaultValues.configuration;\n }\n\n set model(m) {\n this._model = MatchConfigure.createDefaultModel(m);\n this._modelCopy = cloneDeep(this._model);\n\n this._render();\n }\n\n resetModelAfterConfigurationIsSet = () => {\n // In environments that use pie-player-components, model is set before configuration.\n // This is the reason why sometimes the model gets altered non-reversible\n // (altered using default configuration instead of client configuration, because at that point client configuration was not set yet)\n // Therefore, in such environments, we will make sure to keep a modelCopy (initialised in set model) and use it to reset\n // the model in set configuration (resetModelAfterConfigurationIsSet) if set configuration is ever called\n const pieAuthors = document.querySelectorAll('pie-author');\n this.hasPlayerAsParent = Array.from(pieAuthors).some((author) => author.contains(this));\n\n if (this.hasPlayerAsParent) {\n if (this._modelCopy) {\n this._model = this._modelCopy;\n } else {\n delete this._modelCopy;\n }\n }\n };\n\n set configuration(c) {\n const newConfiguration = {\n ...defaultValues.configuration,\n ...c,\n };\n\n this._configuration = newConfiguration;\n\n this.resetModelAfterConfigurationIsSet();\n\n // if language:enabled is true, then the corresponding default item model should include a language value;\n // if it is false, then the language field should be omitted from the item model.\n // if a default item model includes a language value (e.g., en_US) and the corresponding authoring view settings have language:settings = true,\n // then (a) language:enabled should also be true, and (b) that default language value should be represented in languageChoices[] (as a key).\n if (newConfiguration?.language?.enabled) {\n if (newConfiguration?.languageChoices?.options?.length) {\n this._model.language = newConfiguration?.languageChoices.options[0].value;\n }\n } else if (newConfiguration.language.settings && this._model.language) {\n this._configuration.language.enabled = true;\n\n if (!this._configuration.languageChoices.options || !this._configuration.languageChoices.options.length) {\n this._configuration.languageChoices.options = [];\n }\n\n // check if the language is already included in the languageChoices.options array\n // and if not, then add it.\n if (!this._configuration.languageChoices.options.find((option) => option.value === this._model.language)) {\n this._configuration.languageChoices.options.push({\n value: this._model.language,\n label: this._model.language,\n });\n }\n } else {\n delete this._model.language;\n }\n\n /**\n * @Deprecated we added rows.inputConfiguration to handle the plugins in the editable html fields\n * if rows.inputConfiguration is not defined we try to default to the old enableImages flag\n * This flag 'enableImages' will be removed in the future\n */\n \n if (isEmpty(c?.rows?.inputConfiguration)) {\n set(this._configuration.rows, 'inputConfiguration.image.disabled', !this._model?.enableImages);\n set(this._configuration.rows, 'inputConfiguration.video.disabled', true);\n set(this._configuration.rows, 'inputConfiguration.audio.disabled', true);\n }\n\n this._render();\n }\n\n onModelChanged(model) {\n this._model = model;\n log('[onModelChanged]: ', this._model);\n this._render();\n this.dispatchEvent(new ModelUpdatedEvent(this._model));\n }\n\n onConfigurationChanged(config) {\n this._configuration = config;\n this._render();\n }\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 if (this._model) {\n const el = React.createElement(Configure, {\n onModelChanged: this.onModelChanged.bind(this),\n onConfigurationChanged: this.onConfigurationChanged.bind(this),\n model: this._model,\n configuration: this._configuration,\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 if (!this._root) {\n this._root = createRoot(this);\n }\n this._root.render(el);\n }\n }\n\n disconnectedCallback() {\n if (this._root) {\n this._root.unmount();\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["_lodashEs","require","_react","_interopRequireDefault","_client","_configure","_pieConfigureEvents","_debug","_defaults","log","debug","MatchConfigure","HTMLElement","constructor","_defineProperty2","default","pieAuthors","document","querySelectorAll","hasPlayerAsParent","Array","from","some","author","contains","_modelCopy","_model","_root","createDefaultModel","_configuration","defaultValues","configuration","model","m","cloneDeep","_render","c","newConfiguration","resetModelAfterConfigurationIsSet","language","enabled","languageChoices","options","length","value","settings","find","option","push","label","isEmpty","rows","inputConfiguration","set","enableImages","onModelChanged","dispatchEvent","ModelUpdatedEvent","onConfigurationChanged","config","insertImage","handler","InsertImageEvent","onDeleteImage","src","done","DeleteImageEvent","insertSound","InsertSoundEvent","onDeleteSound","DeleteSoundEvent","el","React","createElement","Configure","bind","imageSupport","add","delete","uploadSoundSupport","createRoot","render","disconnectedCallback","unmount","exports"],"sources":["../src/index.js"],"sourcesContent":["import { isEmpty, set } from 'lodash-es';\nimport React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport Configure from './configure';\nimport {\n ModelUpdatedEvent,\n DeleteImageEvent,\n InsertImageEvent,\n InsertSoundEvent,\n DeleteSoundEvent,\n} from '@pie-framework/pie-configure-events';\nimport debug from 'debug';\nimport defaultValues from './defaults';\nimport { cloneDeep } from 'lodash-es';\n\nconst log = debug('pie-elements:match:configure');\n\nexport default class MatchConfigure extends HTMLElement {\n static createDefaultModel = (model = {}) => ({\n ...defaultValues.model,\n ...model,\n });\n\n constructor() {\n super();\n this._root = null;\n this._model = MatchConfigure.createDefaultModel();\n this._configuration = defaultValues.configuration;\n }\n\n set model(m) {\n this._model = MatchConfigure.createDefaultModel(m);\n this._modelCopy = cloneDeep(this._model);\n\n this._render();\n }\n\n resetModelAfterConfigurationIsSet = () => {\n // In environments that use pie-player-components, model is set before configuration.\n // This is the reason why sometimes the model gets altered non-reversible\n // (altered using default configuration instead of client configuration, because at that point client configuration was not set yet)\n // Therefore, in such environments, we will make sure to keep a modelCopy (initialised in set model) and use it to reset\n // the model in set configuration (resetModelAfterConfigurationIsSet) if set configuration is ever called\n const pieAuthors = document.querySelectorAll('pie-author');\n this.hasPlayerAsParent = Array.from(pieAuthors).some((author) => author.contains(this));\n\n if (this.hasPlayerAsParent) {\n if (this._modelCopy) {\n this._model = this._modelCopy;\n } else {\n delete this._modelCopy;\n }\n }\n };\n\n set configuration(c) {\n const newConfiguration = {\n ...defaultValues.configuration,\n ...c,\n };\n\n this._configuration = newConfiguration;\n\n this.resetModelAfterConfigurationIsSet();\n\n // if language:enabled is true, then the corresponding default item model should include a language value;\n // if it is false, then the language field should be omitted from the item model.\n // if a default item model includes a language value (e.g., en_US) and the corresponding authoring view settings have language:settings = true,\n // then (a) language:enabled should also be true, and (b) that default language value should be represented in languageChoices[] (as a key).\n if (newConfiguration?.language?.enabled) {\n if (newConfiguration?.languageChoices?.options?.length) {\n this._model.language = newConfiguration?.languageChoices.options[0].value;\n }\n } else if (newConfiguration.language.settings && this._model.language) {\n this._configuration.language.enabled = true;\n\n if (!this._configuration.languageChoices.options || !this._configuration.languageChoices.options.length) {\n this._configuration.languageChoices.options = [];\n }\n\n // check if the language is already included in the languageChoices.options array\n // and if not, then add it.\n if (!this._configuration.languageChoices.options.find((option) => option.value === this._model.language)) {\n this._configuration.languageChoices.options.push({\n value: this._model.language,\n label: this._model.language,\n });\n }\n } else {\n delete this._model.language;\n }\n\n /**\n * @Deprecated we added rows.inputConfiguration to handle the plugins in the editable html fields\n * if rows.inputConfiguration is not defined we try to default to the old enableImages flag\n * This flag 'enableImages' will be removed in the future\n */\n\n if (isEmpty(c?.rows?.inputConfiguration)) {\n set(this._configuration.rows, 'inputConfiguration.image.disabled', !this._model?.enableImages);\n set(this._configuration.rows, 'inputConfiguration.video.disabled', true);\n set(this._configuration.rows, 'inputConfiguration.audio.disabled', true);\n }\n\n this._render();\n }\n\n onModelChanged(model) {\n this._model = model;\n log('[onModelChanged]: ', this._model);\n this._render();\n this.dispatchEvent(new ModelUpdatedEvent(this._model));\n }\n\n onConfigurationChanged(config) {\n this._configuration = config;\n this._render();\n }\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 if (this._model) {\n const el = React.createElement(Configure, {\n onModelChanged: this.onModelChanged.bind(this),\n onConfigurationChanged: this.onConfigurationChanged.bind(this),\n model: this._model,\n configuration: this._configuration,\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 if (!this._root) {\n this._root = createRoot(this);\n }\n this._root.render(el);\n }\n }\n\n disconnectedCallback() {\n if (this._root) {\n this._root.unmount();\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -13,18 +13,17 @@
13
13
  "@mui/icons-material": "^7.3.4",
14
14
  "@mui/material": "^7.3.4",
15
15
  "@pie-framework/pie-configure-events": "^1.3.0",
16
- "@pie-lib/config-ui": "12.1.0-next.5",
17
- "@pie-lib/drag": "3.1.0-next.5",
18
- "@pie-lib/editable-html-tip-tap": "1.1.0-next.5",
19
- "@pie-lib/render-ui": "5.1.0-next.5",
20
- "@pie-lib/test-utils": "1.1.0-next.4",
16
+ "@pie-lib/config-ui": "12.1.1-next.3",
17
+ "@pie-lib/drag": "3.1.1-next.1",
18
+ "@pie-lib/editable-html-tip-tap": "1.1.1-next.3",
19
+ "@pie-lib/render-ui": "5.1.1-next.1",
20
+ "@pie-lib/test-utils": "1.1.1-next.1",
21
21
  "classnames": "^2.2.5",
22
- "debug": "^3.1.0",
23
- "lodash": "^4.17.15",
22
+ "debug": "^4.1.1",
23
+ "lodash-es": "^4.17.23",
24
24
  "prop-types": "^15.6.2",
25
- "react": "18.2.0",
26
- "react-dom": "18.2.0",
27
- "react-swipeable-views": "^0.12.17"
25
+ "react": "18.3.1",
26
+ "react-dom": "18.3.1"
28
27
  },
29
28
  "license": "ISC"
30
29
  }
@@ -8,9 +8,7 @@ exports.createCorrectResponseSession = void 0;
8
8
  exports.createDefaultModel = createDefaultModel;
9
9
  exports.model = model;
10
10
  exports.validate = exports.outcome = exports.normalize = void 0;
11
- var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
12
- var _isEmpty = _interopRequireDefault(require("lodash/isEmpty"));
13
- var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
11
+ var _lodashEs = require("lodash-es");
14
12
  var _feedback = require("@pie-lib/feedback");
15
13
  var _controllerUtils = require("@pie-lib/controller-utils");
16
14
  var _debug = _interopRequireDefault(require("debug"));
@@ -70,7 +68,7 @@ const getCheckboxes = (rows, answers) => {
70
68
  const getCorrectRadios = (rows, answers) => {
71
69
  let correctAnswers = 0;
72
70
  rows.forEach(row => {
73
- if ((0, _isEqual.default)(row.values, answers[row.id])) {
71
+ if ((0, _lodashEs.isEqual)(row.values, answers[row.id])) {
74
72
  correctAnswers += 1;
75
73
  }
76
74
  });
@@ -127,7 +125,7 @@ const outcome = (question, session, env) => {
127
125
  completed: undefined
128
126
  });
129
127
  } else {
130
- if (!session || (0, _isEmpty.default)(session)) {
128
+ if (!session || (0, _lodashEs.isEmpty)(session)) {
131
129
  resolve({
132
130
  score: 0,
133
131
  empty: true
@@ -163,9 +161,9 @@ const normalize = question => ({
163
161
  */
164
162
  exports.normalize = normalize;
165
163
  async function model(question, session, env, updateSession) {
166
- const normalizedQuestion = (0, _cloneDeep.default)(normalize(question));
164
+ const normalizedQuestion = (0, _lodashEs.cloneDeep)(normalize(question));
167
165
  let correctness, score;
168
- if ((!session || (0, _isEmpty.default)(session)) && env.mode === 'evaluate') {
166
+ if ((!session || (0, _lodashEs.isEmpty)(session)) && env.mode === 'evaluate') {
169
167
  correctness = 'unanswered';
170
168
  score = '0%';
171
169
  } else {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_isEqual","_interopRequireDefault","require","_isEmpty","_cloneDeep","_feedback","_controllerUtils","_debug","_defaults","log","debug","getResponseCorrectness","model","answers","env","isPartialScoring","partialScoring","enabled","rows","checkboxMode","choiceMode","Object","keys","length","totalCorrectAnswers","getTotalCorrectAnswers","getTotalCorrect","correctAnswers","incorrectAnswers","checkboxes","getCheckboxes","getCorrectRadios","getCorrectness","question","mode","forEach","row","answer","id","values","v","i","isEqual","matchingTable","layout","noOfTotalCorrectAnswers","value","getPartialScore","totalCorrect","total","extraAnswers","score","parseFloat","toFixed","getOutComeScore","correctness","outcome","session","Promise","resolve","undefined","completed","isEmpty","empty","out","exports","createDefaultModel","defaults","normalize","updateSession","normalizedQuestion","cloneDeep","correctResponse","correctInfo","lockChoiceOrder","lockChoices","getShuffledChoices","feedback","feedbackEnabled","getFeedbackForCorrectness","extraCSSRules","promptEnabled","prompt","_","essentials","allowFeedback","shuffled","disabled","view","role","teacherInstructions","teacherInstructionsEnabled","rationale","rationaleEnabled","assign","createCorrectResponseSession","r","getInnerText","html","replaceAll","getContent","replace","validate","config","headers","minQuestions","maxQuestions","maxLengthQuestionsHeading","maxAnswers","maxLengthAnswers","maxLengthFirstColumnHeading","rowsErrors","columnsErrors","errors","field","required","noOfRowsError","index","title","identicalAnswer","slice","some","hasCorrectResponse","columnsLengthError","headersContent","map","heading","shift","headerIndex","head","hasRowErrors","error","noCorrectAnswer","includes","correctResponseError","hasColumnErrors"],"sources":["../src/index.js"],"sourcesContent":["import isEqual from 'lodash/isEqual';\nimport isEmpty from 'lodash/isEmpty';\nimport cloneDeep from 'lodash/cloneDeep';\nimport { getFeedbackForCorrectness } from '@pie-lib/feedback';\nimport { lockChoices, getShuffledChoices, partialScoring } from '@pie-lib/controller-utils';\nimport debug from 'debug';\n\nconst log = debug('@pie-element:match:controller');\n\nimport defaults from './defaults';\n\nconst getResponseCorrectness = (model, answers, env = {}) => {\n const isPartialScoring = partialScoring.enabled(model, env);\n const rows = model.rows;\n const checkboxMode = model.choiceMode === 'checkbox';\n\n if (!answers || Object.keys(answers).length === 0) {\n return 'unanswered';\n }\n\n const totalCorrectAnswers = checkboxMode ? getTotalCorrectAnswers(model) : getTotalCorrect(model);\n let correctAnswers;\n let incorrectAnswers = 0;\n\n if (checkboxMode) {\n const checkboxes = getCheckboxes(rows, answers);\n\n correctAnswers = checkboxes.correctAnswers;\n incorrectAnswers = checkboxes.incorrectAnswers;\n } else {\n correctAnswers = getCorrectRadios(rows, answers);\n }\n\n if (totalCorrectAnswers === correctAnswers && !incorrectAnswers) {\n return 'correct';\n } else if (correctAnswers === 0) {\n return 'incorrect';\n } else if (isPartialScoring) {\n return 'partial';\n }\n\n return 'incorrect';\n};\n\nconst getCorrectness = (question, env, answers = {}) => {\n if (env.mode === 'evaluate') {\n return getResponseCorrectness(question, answers, env);\n }\n};\n\nconst getCheckboxes = (rows, answers) => {\n let correctAnswers = 0;\n let incorrectAnswers = 0;\n\n rows.forEach((row) => {\n const answer = answers[row.id];\n\n if (answer) {\n row.values.forEach((v, i) => {\n if (answer[i] && answer[i] === v) {\n correctAnswers += 1;\n } else if (answer[i] && answer[i] !== v) {\n incorrectAnswers += 1;\n }\n });\n }\n });\n\n return { correctAnswers, incorrectAnswers };\n};\n\nconst getCorrectRadios = (rows, answers) => {\n let correctAnswers = 0;\n\n rows.forEach((row) => {\n if (isEqual(row.values, answers[row.id])) {\n correctAnswers += 1;\n }\n });\n\n return correctAnswers;\n};\n\nconst getTotalCorrect = (question) => {\n const checkboxMode = question.choiceMode === 'checkbox';\n const matchingTable = checkboxMode ? question.layout - 1 : 1;\n return (question.rows.length || 0) * matchingTable;\n};\n\nconst getTotalCorrectAnswers = (question) => {\n let noOfTotalCorrectAnswers = 0;\n\n question.rows.forEach((row) => {\n row.values.forEach((value) => {\n if (value) {\n noOfTotalCorrectAnswers += 1;\n }\n });\n });\n\n return noOfTotalCorrectAnswers;\n};\n\nconst getPartialScore = (question, answers) => {\n const checkboxMode = question.choiceMode === 'checkbox';\n\n if (checkboxMode) {\n const { correctAnswers, incorrectAnswers } = getCheckboxes(question.rows, answers);\n const totalCorrect = getTotalCorrectAnswers(question);\n\n const total = totalCorrect === 0 ? 1 : totalCorrect;\n\n if (correctAnswers + incorrectAnswers > totalCorrect) {\n const extraAnswers = correctAnswers + incorrectAnswers - totalCorrect;\n const score = parseFloat(((correctAnswers - extraAnswers) / total).toFixed(2));\n\n return score < 0 ? 0 : score;\n } else {\n return parseFloat((correctAnswers / total).toFixed(2));\n }\n } else {\n const correctAnswers = getCorrectRadios(question.rows, answers);\n const totalCorrect = getTotalCorrect(question) === 0 ? 1 : getTotalCorrect(question);\n\n return parseFloat((correctAnswers / totalCorrect).toFixed(2));\n }\n};\n\nconst getOutComeScore = (question, env, answers = {}) => {\n const correctness = getCorrectness(question, env, answers);\n const isPartialScoring = partialScoring.enabled(question, env);\n\n return correctness === 'correct'\n ? 1\n : correctness === 'partial' && isPartialScoring\n ? getPartialScore(question, answers)\n : 0;\n};\n\nexport const outcome = (question, session, env) => {\n return new Promise((resolve) => {\n if (env.mode !== 'evaluate') {\n resolve({ score: undefined, completed: undefined });\n } else {\n if (!session || isEmpty(session)) {\n resolve({ score: 0, empty: true });\n }\n\n const out = {\n score: getOutComeScore(question, env, session.answers),\n };\n\n resolve(out);\n }\n });\n};\n\nexport function createDefaultModel(model = {}) {\n return new Promise((resolve) => {\n resolve({\n ...defaults,\n ...model,\n });\n });\n}\n\nexport const normalize = (question) => ({ ...defaults, ...question });\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 async function model(question, session, env, updateSession) {\n const normalizedQuestion = cloneDeep(normalize(question));\n let correctness, score;\n\n if ((!session || isEmpty(session)) && env.mode === 'evaluate') {\n correctness = 'unanswered';\n score = '0%';\n } else {\n correctness = getCorrectness(normalizedQuestion, env, session && session.answers);\n score = `${getOutComeScore(normalizedQuestion, env, session && session.answers) * 100}%`;\n }\n\n const correctResponse = {};\n const correctInfo = {\n score,\n correctness,\n };\n\n const lockChoiceOrder = lockChoices(normalizedQuestion, session, env);\n\n if (!lockChoiceOrder) {\n normalizedQuestion.rows = await getShuffledChoices(normalizedQuestion.rows, session, updateSession, 'id');\n }\n\n normalizedQuestion.rows.forEach((row) => {\n correctResponse[row.id] = row.values;\n\n if (env.mode !== 'evaluate') {\n delete row.values;\n }\n });\n\n const feedback =\n env.mode === 'evaluate' && normalizedQuestion.feedbackEnabled\n ? await getFeedbackForCorrectness(correctInfo.correctness, normalizedQuestion.feedback)\n : undefined;\n\n const { extraCSSRules, feedbackEnabled, promptEnabled, prompt, lockChoiceOrder: _, ...essentials } =\n normalizedQuestion;\n const out = {\n ...essentials,\n extraCSSRules,\n allowFeedback: feedbackEnabled,\n prompt: promptEnabled ? prompt : null,\n shuffled: !lockChoiceOrder,\n feedback,\n disabled: env.mode !== 'gather',\n view: env.mode === 'view',\n };\n\n if (env.role === 'instructor' && (env.mode === 'view' || env.mode === 'evaluate')) {\n out.teacherInstructions = normalizedQuestion.teacherInstructionsEnabled\n ? normalizedQuestion.teacherInstructions\n : null;\n out.rationale = normalizedQuestion.rationaleEnabled ? normalizedQuestion.rationale : null;\n } else {\n out.rationale = null;\n out.teacherInstructions = null;\n }\n\n if (env.mode === 'evaluate') {\n Object.assign(out, {\n correctResponse,\n correctness: correctInfo,\n });\n }\n\n log('out: ', out);\n return out;\n}\n\nexport const createCorrectResponseSession = (question, env) => {\n return new Promise((resolve) => {\n if (env.mode !== 'evaluate' && env.role === 'instructor') {\n const { rows } = question;\n const answers = {};\n\n rows.forEach((r) => {\n answers[r.id] = r.values;\n });\n\n resolve({\n answers,\n id: '1',\n });\n } else {\n resolve(null);\n }\n });\n};\n\n// remove all html tags\nconst getInnerText = (html) => (html || '').replaceAll(/<[^>]*>/g, '');\n\n// remove all html tags except img, iframe and source tag for audio\nconst getContent = (html) => (html || '').replace(/(<(?!img|iframe|source)([^>]+)>)/gi, '');\n\nexport const validate = (model = {}, config = {}) => {\n const { rows, choiceMode, headers } = model;\n const {\n minQuestions,\n maxQuestions,\n maxLengthQuestionsHeading,\n maxAnswers,\n maxLengthAnswers,\n maxLengthFirstColumnHeading,\n } = config;\n const rowsErrors = {};\n const columnsErrors = {};\n const errors = {};\n\n ['teacherInstructions', 'prompt', 'rationale'].forEach((field) => {\n if (config[field]?.required && !getContent(model[field])) {\n errors[field] = 'This field is required.';\n }\n });\n\n if (rows.length < minQuestions) {\n errors.noOfRowsError = `There should be at least ${minQuestions} question rows.`;\n } else if (rows.length > maxQuestions) {\n errors.noOfRowsError = `No more than ${maxQuestions} question rows should be defined.`;\n }\n\n (rows || []).forEach((row, index) => {\n const { id, values = [], title } = row;\n rowsErrors[id] = '';\n\n if (maxLengthQuestionsHeading && getInnerText(title).length > maxLengthQuestionsHeading) {\n rowsErrors[id] += `Content length should be maximum ${maxLengthQuestionsHeading} characters. `;\n }\n\n if (!getContent(title)) {\n rowsErrors[id] += 'Content should not be empty. ';\n } else {\n // check for identical content with the previous answers\n const identicalAnswer = rows.slice(0, index).some((r) => getContent(r.title) === getContent(title));\n\n if (identicalAnswer) {\n rowsErrors[id] += 'Content should be unique. ';\n }\n }\n\n const hasCorrectResponse = values.some((value) => !!value);\n\n if (!hasCorrectResponse) {\n rowsErrors[id] += 'No correct response defined.';\n }\n });\n\n if (maxAnswers && headers.length - 1 > maxAnswers) {\n errors.columnsLengthError = `There should be maximum ${maxAnswers} answers.`;\n }\n\n if (maxLengthFirstColumnHeading && headers[0].length > maxLengthFirstColumnHeading) {\n columnsErrors[0] = `Content length should be maximum ${maxLengthFirstColumnHeading} characters.`;\n }\n\n const headersContent = (headers || []).map((heading) => getContent(heading));\n headersContent.shift(); // remove first column since it does not require validation\n\n headersContent.forEach((heading, index) => {\n const headerIndex = index + 1; // we need to add 1 because we removed first header from validation\n columnsErrors[headerIndex] = '';\n\n if (maxLengthAnswers && getInnerText(heading).length > maxLengthAnswers) {\n columnsErrors[headerIndex] += `Content length should be maximum ${maxLengthAnswers} characters. `;\n }\n\n if (!heading) {\n columnsErrors[headerIndex] += 'Content should not be empty.';\n } else {\n // check for identical content with the previous headers\n const identicalAnswer = headersContent.slice(0, index).some((head) => head === heading);\n\n if (identicalAnswer) {\n columnsErrors[index + 1] += 'Content should be unique.';\n }\n }\n });\n\n const hasRowErrors = Object.values(rowsErrors).some((error) => (error || '').length);\n\n if (hasRowErrors) {\n errors.rowsErrors = rowsErrors;\n\n const noCorrectAnswer = Object.values(rowsErrors).some((error) =>\n (error || '').includes('No correct response defined.'),\n );\n\n if (noCorrectAnswer) {\n errors.correctResponseError =\n choiceMode === 'radio'\n ? 'There should be a correct response defined for every row.'\n : 'There should be at least one correct response defined for every row.';\n }\n }\n\n const hasColumnErrors = Object.values(columnsErrors).some((error) => (error || '').length);\n\n if (hasColumnErrors) {\n errors.columnsErrors = columnsErrors;\n }\n\n return errors;\n};\n"],"mappings":";;;;;;;;;;AAAA,IAAAA,QAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,QAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,UAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,SAAA,GAAAH,OAAA;AACA,IAAAI,gBAAA,GAAAJ,OAAA;AACA,IAAAK,MAAA,GAAAN,sBAAA,CAAAC,OAAA;AAIA,IAAAM,SAAA,GAAAP,sBAAA,CAAAC,OAAA;AAFA,MAAMO,GAAG,GAAG,IAAAC,cAAK,EAAC,+BAA+B,CAAC;AAIlD,MAAMC,sBAAsB,GAAGA,CAACC,KAAK,EAAEC,OAAO,EAAEC,GAAG,GAAG,CAAC,CAAC,KAAK;EAC3D,MAAMC,gBAAgB,GAAGC,+BAAc,CAACC,OAAO,CAACL,KAAK,EAAEE,GAAG,CAAC;EAC3D,MAAMI,IAAI,GAAGN,KAAK,CAACM,IAAI;EACvB,MAAMC,YAAY,GAAGP,KAAK,CAACQ,UAAU,KAAK,UAAU;EAEpD,IAAI,CAACP,OAAO,IAAIQ,MAAM,CAACC,IAAI,CAACT,OAAO,CAAC,CAACU,MAAM,KAAK,CAAC,EAAE;IACjD,OAAO,YAAY;EACrB;EAEA,MAAMC,mBAAmB,GAAGL,YAAY,GAAGM,sBAAsB,CAACb,KAAK,CAAC,GAAGc,eAAe,CAACd,KAAK,CAAC;EACjG,IAAIe,cAAc;EAClB,IAAIC,gBAAgB,GAAG,CAAC;EAExB,IAAIT,YAAY,EAAE;IAChB,MAAMU,UAAU,GAAGC,aAAa,CAACZ,IAAI,EAAEL,OAAO,CAAC;IAE/Cc,cAAc,GAAGE,UAAU,CAACF,cAAc;IAC1CC,gBAAgB,GAAGC,UAAU,CAACD,gBAAgB;EAChD,CAAC,MAAM;IACLD,cAAc,GAAGI,gBAAgB,CAACb,IAAI,EAAEL,OAAO,CAAC;EAClD;EAEA,IAAIW,mBAAmB,KAAKG,cAAc,IAAI,CAACC,gBAAgB,EAAE;IAC/D,OAAO,SAAS;EAClB,CAAC,MAAM,IAAID,cAAc,KAAK,CAAC,EAAE;IAC/B,OAAO,WAAW;EACpB,CAAC,MAAM,IAAIZ,gBAAgB,EAAE;IAC3B,OAAO,SAAS;EAClB;EAEA,OAAO,WAAW;AACpB,CAAC;AAED,MAAMiB,cAAc,GAAGA,CAACC,QAAQ,EAAEnB,GAAG,EAAED,OAAO,GAAG,CAAC,CAAC,KAAK;EACtD,IAAIC,GAAG,CAACoB,IAAI,KAAK,UAAU,EAAE;IAC3B,OAAOvB,sBAAsB,CAACsB,QAAQ,EAAEpB,OAAO,EAAEC,GAAG,CAAC;EACvD;AACF,CAAC;AAED,MAAMgB,aAAa,GAAGA,CAACZ,IAAI,EAAEL,OAAO,KAAK;EACvC,IAAIc,cAAc,GAAG,CAAC;EACtB,IAAIC,gBAAgB,GAAG,CAAC;EAExBV,IAAI,CAACiB,OAAO,CAAEC,GAAG,IAAK;IACpB,MAAMC,MAAM,GAAGxB,OAAO,CAACuB,GAAG,CAACE,EAAE,CAAC;IAE9B,IAAID,MAAM,EAAE;MACVD,GAAG,CAACG,MAAM,CAACJ,OAAO,CAAC,CAACK,CAAC,EAAEC,CAAC,KAAK;QAC3B,IAAIJ,MAAM,CAACI,CAAC,CAAC,IAAIJ,MAAM,CAACI,CAAC,CAAC,KAAKD,CAAC,EAAE;UAChCb,cAAc,IAAI,CAAC;QACrB,CAAC,MAAM,IAAIU,MAAM,CAACI,CAAC,CAAC,IAAIJ,MAAM,CAACI,CAAC,CAAC,KAAKD,CAAC,EAAE;UACvCZ,gBAAgB,IAAI,CAAC;QACvB;MACF,CAAC,CAAC;IACJ;EACF,CAAC,CAAC;EAEF,OAAO;IAAED,cAAc;IAAEC;EAAiB,CAAC;AAC7C,CAAC;AAED,MAAMG,gBAAgB,GAAGA,CAACb,IAAI,EAAEL,OAAO,KAAK;EAC1C,IAAIc,cAAc,GAAG,CAAC;EAEtBT,IAAI,CAACiB,OAAO,CAAEC,GAAG,IAAK;IACpB,IAAI,IAAAM,gBAAO,EAACN,GAAG,CAACG,MAAM,EAAE1B,OAAO,CAACuB,GAAG,CAACE,EAAE,CAAC,CAAC,EAAE;MACxCX,cAAc,IAAI,CAAC;IACrB;EACF,CAAC,CAAC;EAEF,OAAOA,cAAc;AACvB,CAAC;AAED,MAAMD,eAAe,GAAIO,QAAQ,IAAK;EACpC,MAAMd,YAAY,GAAGc,QAAQ,CAACb,UAAU,KAAK,UAAU;EACvD,MAAMuB,aAAa,GAAGxB,YAAY,GAAGc,QAAQ,CAACW,MAAM,GAAG,CAAC,GAAG,CAAC;EAC5D,OAAO,CAACX,QAAQ,CAACf,IAAI,CAACK,MAAM,IAAI,CAAC,IAAIoB,aAAa;AACpD,CAAC;AAED,MAAMlB,sBAAsB,GAAIQ,QAAQ,IAAK;EAC3C,IAAIY,uBAAuB,GAAG,CAAC;EAE/BZ,QAAQ,CAACf,IAAI,CAACiB,OAAO,CAAEC,GAAG,IAAK;IAC7BA,GAAG,CAACG,MAAM,CAACJ,OAAO,CAAEW,KAAK,IAAK;MAC5B,IAAIA,KAAK,EAAE;QACTD,uBAAuB,IAAI,CAAC;MAC9B;IACF,CAAC,CAAC;EACJ,CAAC,CAAC;EAEF,OAAOA,uBAAuB;AAChC,CAAC;AAED,MAAME,eAAe,GAAGA,CAACd,QAAQ,EAAEpB,OAAO,KAAK;EAC7C,MAAMM,YAAY,GAAGc,QAAQ,CAACb,UAAU,KAAK,UAAU;EAEvD,IAAID,YAAY,EAAE;IAChB,MAAM;MAAEQ,cAAc;MAAEC;IAAiB,CAAC,GAAGE,aAAa,CAACG,QAAQ,CAACf,IAAI,EAAEL,OAAO,CAAC;IAClF,MAAMmC,YAAY,GAAGvB,sBAAsB,CAACQ,QAAQ,CAAC;IAErD,MAAMgB,KAAK,GAAGD,YAAY,KAAK,CAAC,GAAG,CAAC,GAAGA,YAAY;IAEnD,IAAIrB,cAAc,GAAGC,gBAAgB,GAAGoB,YAAY,EAAE;MACpD,MAAME,YAAY,GAAGvB,cAAc,GAAGC,gBAAgB,GAAGoB,YAAY;MACrE,MAAMG,KAAK,GAAGC,UAAU,CAAC,CAAC,CAACzB,cAAc,GAAGuB,YAAY,IAAID,KAAK,EAAEI,OAAO,CAAC,CAAC,CAAC,CAAC;MAE9E,OAAOF,KAAK,GAAG,CAAC,GAAG,CAAC,GAAGA,KAAK;IAC9B,CAAC,MAAM;MACL,OAAOC,UAAU,CAAC,CAACzB,cAAc,GAAGsB,KAAK,EAAEI,OAAO,CAAC,CAAC,CAAC,CAAC;IACxD;EACF,CAAC,MAAM;IACL,MAAM1B,cAAc,GAAGI,gBAAgB,CAACE,QAAQ,CAACf,IAAI,EAAEL,OAAO,CAAC;IAC/D,MAAMmC,YAAY,GAAGtB,eAAe,CAACO,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,GAAGP,eAAe,CAACO,QAAQ,CAAC;IAEpF,OAAOmB,UAAU,CAAC,CAACzB,cAAc,GAAGqB,YAAY,EAAEK,OAAO,CAAC,CAAC,CAAC,CAAC;EAC/D;AACF,CAAC;AAED,MAAMC,eAAe,GAAGA,CAACrB,QAAQ,EAAEnB,GAAG,EAAED,OAAO,GAAG,CAAC,CAAC,KAAK;EACvD,MAAM0C,WAAW,GAAGvB,cAAc,CAACC,QAAQ,EAAEnB,GAAG,EAAED,OAAO,CAAC;EAC1D,MAAME,gBAAgB,GAAGC,+BAAc,CAACC,OAAO,CAACgB,QAAQ,EAAEnB,GAAG,CAAC;EAE9D,OAAOyC,WAAW,KAAK,SAAS,GAC5B,CAAC,GACDA,WAAW,KAAK,SAAS,IAAIxC,gBAAgB,GAC7CgC,eAAe,CAACd,QAAQ,EAAEpB,OAAO,CAAC,GAClC,CAAC;AACP,CAAC;AAEM,MAAM2C,OAAO,GAAGA,CAACvB,QAAQ,EAAEwB,OAAO,EAAE3C,GAAG,KAAK;EACjD,OAAO,IAAI4C,OAAO,CAAEC,OAAO,IAAK;IAC9B,IAAI7C,GAAG,CAACoB,IAAI,KAAK,UAAU,EAAE;MAC3ByB,OAAO,CAAC;QAAER,KAAK,EAAES,SAAS;QAAEC,SAAS,EAAED;MAAU,CAAC,CAAC;IACrD,CAAC,MAAM;MACL,IAAI,CAACH,OAAO,IAAI,IAAAK,gBAAO,EAACL,OAAO,CAAC,EAAE;QAChCE,OAAO,CAAC;UAAER,KAAK,EAAE,CAAC;UAAEY,KAAK,EAAE;QAAK,CAAC,CAAC;MACpC;MAEA,MAAMC,GAAG,GAAG;QACVb,KAAK,EAAEG,eAAe,CAACrB,QAAQ,EAAEnB,GAAG,EAAE2C,OAAO,CAAC5C,OAAO;MACvD,CAAC;MAED8C,OAAO,CAACK,GAAG,CAAC;IACd;EACF,CAAC,CAAC;AACJ,CAAC;AAACC,OAAA,CAAAT,OAAA,GAAAA,OAAA;AAEK,SAASU,kBAAkBA,CAACtD,KAAK,GAAG,CAAC,CAAC,EAAE;EAC7C,OAAO,IAAI8C,OAAO,CAAEC,OAAO,IAAK;IAC9BA,OAAO,CAAC;MACN,GAAGQ,iBAAQ;MACX,GAAGvD;IACL,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ;AAEO,MAAMwD,SAAS,GAAInC,QAAQ,KAAM;EAAE,GAAGkC,iBAAQ;EAAE,GAAGlC;AAAS,CAAC,CAAC;;AAErE;AACA;AACA;AACA;AACA;AACA;AACA;AANAgC,OAAA,CAAAG,SAAA,GAAAA,SAAA;AAOO,eAAexD,KAAKA,CAACqB,QAAQ,EAAEwB,OAAO,EAAE3C,GAAG,EAAEuD,aAAa,EAAE;EACjE,MAAMC,kBAAkB,GAAG,IAAAC,kBAAS,EAACH,SAAS,CAACnC,QAAQ,CAAC,CAAC;EACzD,IAAIsB,WAAW,EAAEJ,KAAK;EAEtB,IAAI,CAAC,CAACM,OAAO,IAAI,IAAAK,gBAAO,EAACL,OAAO,CAAC,KAAK3C,GAAG,CAACoB,IAAI,KAAK,UAAU,EAAE;IAC7DqB,WAAW,GAAG,YAAY;IAC1BJ,KAAK,GAAG,IAAI;EACd,CAAC,MAAM;IACLI,WAAW,GAAGvB,cAAc,CAACsC,kBAAkB,EAAExD,GAAG,EAAE2C,OAAO,IAAIA,OAAO,CAAC5C,OAAO,CAAC;IACjFsC,KAAK,GAAG,GAAGG,eAAe,CAACgB,kBAAkB,EAAExD,GAAG,EAAE2C,OAAO,IAAIA,OAAO,CAAC5C,OAAO,CAAC,GAAG,GAAG,GAAG;EAC1F;EAEA,MAAM2D,eAAe,GAAG,CAAC,CAAC;EAC1B,MAAMC,WAAW,GAAG;IAClBtB,KAAK;IACLI;EACF,CAAC;EAED,MAAMmB,eAAe,GAAG,IAAAC,4BAAW,EAACL,kBAAkB,EAAEb,OAAO,EAAE3C,GAAG,CAAC;EAErE,IAAI,CAAC4D,eAAe,EAAE;IACpBJ,kBAAkB,CAACpD,IAAI,GAAG,MAAM,IAAA0D,mCAAkB,EAACN,kBAAkB,CAACpD,IAAI,EAAEuC,OAAO,EAAEY,aAAa,EAAE,IAAI,CAAC;EAC3G;EAEAC,kBAAkB,CAACpD,IAAI,CAACiB,OAAO,CAAEC,GAAG,IAAK;IACvCoC,eAAe,CAACpC,GAAG,CAACE,EAAE,CAAC,GAAGF,GAAG,CAACG,MAAM;IAEpC,IAAIzB,GAAG,CAACoB,IAAI,KAAK,UAAU,EAAE;MAC3B,OAAOE,GAAG,CAACG,MAAM;IACnB;EACF,CAAC,CAAC;EAEF,MAAMsC,QAAQ,GACZ/D,GAAG,CAACoB,IAAI,KAAK,UAAU,IAAIoC,kBAAkB,CAACQ,eAAe,GACzD,MAAM,IAAAC,mCAAyB,EAACN,WAAW,CAAClB,WAAW,EAAEe,kBAAkB,CAACO,QAAQ,CAAC,GACrFjB,SAAS;EAEf,MAAM;IAAEoB,aAAa;IAAEF,eAAe;IAAEG,aAAa;IAAEC,MAAM;IAAER,eAAe,EAAES,CAAC;IAAE,GAAGC;EAAW,CAAC,GAChGd,kBAAkB;EACpB,MAAMN,GAAG,GAAG;IACV,GAAGoB,UAAU;IACbJ,aAAa;IACbK,aAAa,EAAEP,eAAe;IAC9BI,MAAM,EAAED,aAAa,GAAGC,MAAM,GAAG,IAAI;IACrCI,QAAQ,EAAE,CAACZ,eAAe;IAC1BG,QAAQ;IACRU,QAAQ,EAAEzE,GAAG,CAACoB,IAAI,KAAK,QAAQ;IAC/BsD,IAAI,EAAE1E,GAAG,CAACoB,IAAI,KAAK;EACrB,CAAC;EAED,IAAIpB,GAAG,CAAC2E,IAAI,KAAK,YAAY,KAAK3E,GAAG,CAACoB,IAAI,KAAK,MAAM,IAAIpB,GAAG,CAACoB,IAAI,KAAK,UAAU,CAAC,EAAE;IACjF8B,GAAG,CAAC0B,mBAAmB,GAAGpB,kBAAkB,CAACqB,0BAA0B,GACnErB,kBAAkB,CAACoB,mBAAmB,GACtC,IAAI;IACR1B,GAAG,CAAC4B,SAAS,GAAGtB,kBAAkB,CAACuB,gBAAgB,GAAGvB,kBAAkB,CAACsB,SAAS,GAAG,IAAI;EAC3F,CAAC,MAAM;IACL5B,GAAG,CAAC4B,SAAS,GAAG,IAAI;IACpB5B,GAAG,CAAC0B,mBAAmB,GAAG,IAAI;EAChC;EAEA,IAAI5E,GAAG,CAACoB,IAAI,KAAK,UAAU,EAAE;IAC3Bb,MAAM,CAACyE,MAAM,CAAC9B,GAAG,EAAE;MACjBQ,eAAe;MACfjB,WAAW,EAAEkB;IACf,CAAC,CAAC;EACJ;EAEAhE,GAAG,CAAC,OAAO,EAAEuD,GAAG,CAAC;EACjB,OAAOA,GAAG;AACZ;AAEO,MAAM+B,4BAA4B,GAAGA,CAAC9D,QAAQ,EAAEnB,GAAG,KAAK;EAC7D,OAAO,IAAI4C,OAAO,CAAEC,OAAO,IAAK;IAC9B,IAAI7C,GAAG,CAACoB,IAAI,KAAK,UAAU,IAAIpB,GAAG,CAAC2E,IAAI,KAAK,YAAY,EAAE;MACxD,MAAM;QAAEvE;MAAK,CAAC,GAAGe,QAAQ;MACzB,MAAMpB,OAAO,GAAG,CAAC,CAAC;MAElBK,IAAI,CAACiB,OAAO,CAAE6D,CAAC,IAAK;QAClBnF,OAAO,CAACmF,CAAC,CAAC1D,EAAE,CAAC,GAAG0D,CAAC,CAACzD,MAAM;MAC1B,CAAC,CAAC;MAEFoB,OAAO,CAAC;QACN9C,OAAO;QACPyB,EAAE,EAAE;MACN,CAAC,CAAC;IACJ,CAAC,MAAM;MACLqB,OAAO,CAAC,IAAI,CAAC;IACf;EACF,CAAC,CAAC;AACJ,CAAC;;AAED;AAAAM,OAAA,CAAA8B,4BAAA,GAAAA,4BAAA;AACA,MAAME,YAAY,GAAIC,IAAI,IAAK,CAACA,IAAI,IAAI,EAAE,EAAEC,UAAU,CAAC,UAAU,EAAE,EAAE,CAAC;;AAEtE;AACA,MAAMC,UAAU,GAAIF,IAAI,IAAK,CAACA,IAAI,IAAI,EAAE,EAAEG,OAAO,CAAC,oCAAoC,EAAE,EAAE,CAAC;AAEpF,MAAMC,QAAQ,GAAGA,CAAC1F,KAAK,GAAG,CAAC,CAAC,EAAE2F,MAAM,GAAG,CAAC,CAAC,KAAK;EACnD,MAAM;IAAErF,IAAI;IAAEE,UAAU;IAAEoF;EAAQ,CAAC,GAAG5F,KAAK;EAC3C,MAAM;IACJ6F,YAAY;IACZC,YAAY;IACZC,yBAAyB;IACzBC,UAAU;IACVC,gBAAgB;IAChBC;EACF,CAAC,GAAGP,MAAM;EACV,MAAMQ,UAAU,GAAG,CAAC,CAAC;EACrB,MAAMC,aAAa,GAAG,CAAC,CAAC;EACxB,MAAMC,MAAM,GAAG,CAAC,CAAC;EAEjB,CAAC,qBAAqB,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC9E,OAAO,CAAE+E,KAAK,IAAK;IAChE,IAAIX,MAAM,CAACW,KAAK,CAAC,EAAEC,QAAQ,IAAI,CAACf,UAAU,CAACxF,KAAK,CAACsG,KAAK,CAAC,CAAC,EAAE;MACxDD,MAAM,CAACC,KAAK,CAAC,GAAG,yBAAyB;IAC3C;EACF,CAAC,CAAC;EAEF,IAAIhG,IAAI,CAACK,MAAM,GAAGkF,YAAY,EAAE;IAC9BQ,MAAM,CAACG,aAAa,GAAG,4BAA4BX,YAAY,iBAAiB;EAClF,CAAC,MAAM,IAAIvF,IAAI,CAACK,MAAM,GAAGmF,YAAY,EAAE;IACrCO,MAAM,CAACG,aAAa,GAAG,gBAAgBV,YAAY,mCAAmC;EACxF;EAEA,CAACxF,IAAI,IAAI,EAAE,EAAEiB,OAAO,CAAC,CAACC,GAAG,EAAEiF,KAAK,KAAK;IACnC,MAAM;MAAE/E,EAAE;MAAEC,MAAM,GAAG,EAAE;MAAE+E;IAAM,CAAC,GAAGlF,GAAG;IACtC2E,UAAU,CAACzE,EAAE,CAAC,GAAG,EAAE;IAEnB,IAAIqE,yBAAyB,IAAIV,YAAY,CAACqB,KAAK,CAAC,CAAC/F,MAAM,GAAGoF,yBAAyB,EAAE;MACvFI,UAAU,CAACzE,EAAE,CAAC,IAAI,oCAAoCqE,yBAAyB,eAAe;IAChG;IAEA,IAAI,CAACP,UAAU,CAACkB,KAAK,CAAC,EAAE;MACtBP,UAAU,CAACzE,EAAE,CAAC,IAAI,+BAA+B;IACnD,CAAC,MAAM;MACL;MACA,MAAMiF,eAAe,GAAGrG,IAAI,CAACsG,KAAK,CAAC,CAAC,EAAEH,KAAK,CAAC,CAACI,IAAI,CAAEzB,CAAC,IAAKI,UAAU,CAACJ,CAAC,CAACsB,KAAK,CAAC,KAAKlB,UAAU,CAACkB,KAAK,CAAC,CAAC;MAEnG,IAAIC,eAAe,EAAE;QACnBR,UAAU,CAACzE,EAAE,CAAC,IAAI,4BAA4B;MAChD;IACF;IAEA,MAAMoF,kBAAkB,GAAGnF,MAAM,CAACkF,IAAI,CAAE3E,KAAK,IAAK,CAAC,CAACA,KAAK,CAAC;IAE1D,IAAI,CAAC4E,kBAAkB,EAAE;MACvBX,UAAU,CAACzE,EAAE,CAAC,IAAI,8BAA8B;IAClD;EACF,CAAC,CAAC;EAEF,IAAIsE,UAAU,IAAIJ,OAAO,CAACjF,MAAM,GAAG,CAAC,GAAGqF,UAAU,EAAE;IACjDK,MAAM,CAACU,kBAAkB,GAAG,2BAA2Bf,UAAU,WAAW;EAC9E;EAEA,IAAIE,2BAA2B,IAAIN,OAAO,CAAC,CAAC,CAAC,CAACjF,MAAM,GAAGuF,2BAA2B,EAAE;IAClFE,aAAa,CAAC,CAAC,CAAC,GAAG,oCAAoCF,2BAA2B,cAAc;EAClG;EAEA,MAAMc,cAAc,GAAG,CAACpB,OAAO,IAAI,EAAE,EAAEqB,GAAG,CAAEC,OAAO,IAAK1B,UAAU,CAAC0B,OAAO,CAAC,CAAC;EAC5EF,cAAc,CAACG,KAAK,CAAC,CAAC,CAAC,CAAC;;EAExBH,cAAc,CAACzF,OAAO,CAAC,CAAC2F,OAAO,EAAET,KAAK,KAAK;IACzC,MAAMW,WAAW,GAAGX,KAAK,GAAG,CAAC,CAAC,CAAC;IAC/BL,aAAa,CAACgB,WAAW,CAAC,GAAG,EAAE;IAE/B,IAAInB,gBAAgB,IAAIZ,YAAY,CAAC6B,OAAO,CAAC,CAACvG,MAAM,GAAGsF,gBAAgB,EAAE;MACvEG,aAAa,CAACgB,WAAW,CAAC,IAAI,oCAAoCnB,gBAAgB,eAAe;IACnG;IAEA,IAAI,CAACiB,OAAO,EAAE;MACZd,aAAa,CAACgB,WAAW,CAAC,IAAI,8BAA8B;IAC9D,CAAC,MAAM;MACL;MACA,MAAMT,eAAe,GAAGK,cAAc,CAACJ,KAAK,CAAC,CAAC,EAAEH,KAAK,CAAC,CAACI,IAAI,CAAEQ,IAAI,IAAKA,IAAI,KAAKH,OAAO,CAAC;MAEvF,IAAIP,eAAe,EAAE;QACnBP,aAAa,CAACK,KAAK,GAAG,CAAC,CAAC,IAAI,2BAA2B;MACzD;IACF;EACF,CAAC,CAAC;EAEF,MAAMa,YAAY,GAAG7G,MAAM,CAACkB,MAAM,CAACwE,UAAU,CAAC,CAACU,IAAI,CAAEU,KAAK,IAAK,CAACA,KAAK,IAAI,EAAE,EAAE5G,MAAM,CAAC;EAEpF,IAAI2G,YAAY,EAAE;IAChBjB,MAAM,CAACF,UAAU,GAAGA,UAAU;IAE9B,MAAMqB,eAAe,GAAG/G,MAAM,CAACkB,MAAM,CAACwE,UAAU,CAAC,CAACU,IAAI,CAAEU,KAAK,IAC3D,CAACA,KAAK,IAAI,EAAE,EAAEE,QAAQ,CAAC,8BAA8B,CACvD,CAAC;IAED,IAAID,eAAe,EAAE;MACnBnB,MAAM,CAACqB,oBAAoB,GACzBlH,UAAU,KAAK,OAAO,GAClB,2DAA2D,GAC3D,sEAAsE;IAC9E;EACF;EAEA,MAAMmH,eAAe,GAAGlH,MAAM,CAACkB,MAAM,CAACyE,aAAa,CAAC,CAACS,IAAI,CAAEU,KAAK,IAAK,CAACA,KAAK,IAAI,EAAE,EAAE5G,MAAM,CAAC;EAE1F,IAAIgH,eAAe,EAAE;IACnBtB,MAAM,CAACD,aAAa,GAAGA,aAAa;EACtC;EAEA,OAAOC,MAAM;AACf,CAAC;AAAChD,OAAA,CAAAqC,QAAA,GAAAA,QAAA","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["_lodashEs","require","_feedback","_controllerUtils","_debug","_interopRequireDefault","_defaults","log","debug","getResponseCorrectness","model","answers","env","isPartialScoring","partialScoring","enabled","rows","checkboxMode","choiceMode","Object","keys","length","totalCorrectAnswers","getTotalCorrectAnswers","getTotalCorrect","correctAnswers","incorrectAnswers","checkboxes","getCheckboxes","getCorrectRadios","getCorrectness","question","mode","forEach","row","answer","id","values","v","i","isEqual","matchingTable","layout","noOfTotalCorrectAnswers","value","getPartialScore","totalCorrect","total","extraAnswers","score","parseFloat","toFixed","getOutComeScore","correctness","outcome","session","Promise","resolve","undefined","completed","isEmpty","empty","out","exports","createDefaultModel","defaults","normalize","updateSession","normalizedQuestion","cloneDeep","correctResponse","correctInfo","lockChoiceOrder","lockChoices","getShuffledChoices","feedback","feedbackEnabled","getFeedbackForCorrectness","extraCSSRules","promptEnabled","prompt","_","essentials","allowFeedback","shuffled","disabled","view","role","teacherInstructions","teacherInstructionsEnabled","rationale","rationaleEnabled","assign","createCorrectResponseSession","r","getInnerText","html","replaceAll","getContent","replace","validate","config","headers","minQuestions","maxQuestions","maxLengthQuestionsHeading","maxAnswers","maxLengthAnswers","maxLengthFirstColumnHeading","rowsErrors","columnsErrors","errors","field","required","noOfRowsError","index","title","identicalAnswer","slice","some","hasCorrectResponse","columnsLengthError","headersContent","map","heading","shift","headerIndex","head","hasRowErrors","error","noCorrectAnswer","includes","correctResponseError","hasColumnErrors"],"sources":["../src/index.js"],"sourcesContent":["import { cloneDeep, isEmpty, isEqual } from 'lodash-es';\nimport { getFeedbackForCorrectness } from '@pie-lib/feedback';\nimport { lockChoices, getShuffledChoices, partialScoring } from '@pie-lib/controller-utils';\nimport debug from 'debug';\n\nconst log = debug('@pie-element:match:controller');\n\nimport defaults from './defaults';\n\nconst getResponseCorrectness = (model, answers, env = {}) => {\n const isPartialScoring = partialScoring.enabled(model, env);\n const rows = model.rows;\n const checkboxMode = model.choiceMode === 'checkbox';\n\n if (!answers || Object.keys(answers).length === 0) {\n return 'unanswered';\n }\n\n const totalCorrectAnswers = checkboxMode ? getTotalCorrectAnswers(model) : getTotalCorrect(model);\n let correctAnswers;\n let incorrectAnswers = 0;\n\n if (checkboxMode) {\n const checkboxes = getCheckboxes(rows, answers);\n\n correctAnswers = checkboxes.correctAnswers;\n incorrectAnswers = checkboxes.incorrectAnswers;\n } else {\n correctAnswers = getCorrectRadios(rows, answers);\n }\n\n if (totalCorrectAnswers === correctAnswers && !incorrectAnswers) {\n return 'correct';\n } else if (correctAnswers === 0) {\n return 'incorrect';\n } else if (isPartialScoring) {\n return 'partial';\n }\n\n return 'incorrect';\n};\n\nconst getCorrectness = (question, env, answers = {}) => {\n if (env.mode === 'evaluate') {\n return getResponseCorrectness(question, answers, env);\n }\n};\n\nconst getCheckboxes = (rows, answers) => {\n let correctAnswers = 0;\n let incorrectAnswers = 0;\n\n rows.forEach((row) => {\n const answer = answers[row.id];\n\n if (answer) {\n row.values.forEach((v, i) => {\n if (answer[i] && answer[i] === v) {\n correctAnswers += 1;\n } else if (answer[i] && answer[i] !== v) {\n incorrectAnswers += 1;\n }\n });\n }\n });\n\n return { correctAnswers, incorrectAnswers };\n};\n\nconst getCorrectRadios = (rows, answers) => {\n let correctAnswers = 0;\n\n rows.forEach((row) => {\n if (isEqual(row.values, answers[row.id])) {\n correctAnswers += 1;\n }\n });\n\n return correctAnswers;\n};\n\nconst getTotalCorrect = (question) => {\n const checkboxMode = question.choiceMode === 'checkbox';\n const matchingTable = checkboxMode ? question.layout - 1 : 1;\n return (question.rows.length || 0) * matchingTable;\n};\n\nconst getTotalCorrectAnswers = (question) => {\n let noOfTotalCorrectAnswers = 0;\n\n question.rows.forEach((row) => {\n row.values.forEach((value) => {\n if (value) {\n noOfTotalCorrectAnswers += 1;\n }\n });\n });\n\n return noOfTotalCorrectAnswers;\n};\n\nconst getPartialScore = (question, answers) => {\n const checkboxMode = question.choiceMode === 'checkbox';\n\n if (checkboxMode) {\n const { correctAnswers, incorrectAnswers } = getCheckboxes(question.rows, answers);\n const totalCorrect = getTotalCorrectAnswers(question);\n\n const total = totalCorrect === 0 ? 1 : totalCorrect;\n\n if (correctAnswers + incorrectAnswers > totalCorrect) {\n const extraAnswers = correctAnswers + incorrectAnswers - totalCorrect;\n const score = parseFloat(((correctAnswers - extraAnswers) / total).toFixed(2));\n\n return score < 0 ? 0 : score;\n } else {\n return parseFloat((correctAnswers / total).toFixed(2));\n }\n } else {\n const correctAnswers = getCorrectRadios(question.rows, answers);\n const totalCorrect = getTotalCorrect(question) === 0 ? 1 : getTotalCorrect(question);\n\n return parseFloat((correctAnswers / totalCorrect).toFixed(2));\n }\n};\n\nconst getOutComeScore = (question, env, answers = {}) => {\n const correctness = getCorrectness(question, env, answers);\n const isPartialScoring = partialScoring.enabled(question, env);\n\n return correctness === 'correct'\n ? 1\n : correctness === 'partial' && isPartialScoring\n ? getPartialScore(question, answers)\n : 0;\n};\n\nexport const outcome = (question, session, env) => {\n return new Promise((resolve) => {\n if (env.mode !== 'evaluate') {\n resolve({ score: undefined, completed: undefined });\n } else {\n if (!session || isEmpty(session)) {\n resolve({ score: 0, empty: true });\n }\n\n const out = {\n score: getOutComeScore(question, env, session.answers),\n };\n\n resolve(out);\n }\n });\n};\n\nexport function createDefaultModel(model = {}) {\n return new Promise((resolve) => {\n resolve({\n ...defaults,\n ...model,\n });\n });\n}\n\nexport const normalize = (question) => ({ ...defaults, ...question });\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 async function model(question, session, env, updateSession) {\n const normalizedQuestion = cloneDeep(normalize(question));\n let correctness, score;\n\n if ((!session || isEmpty(session)) && env.mode === 'evaluate') {\n correctness = 'unanswered';\n score = '0%';\n } else {\n correctness = getCorrectness(normalizedQuestion, env, session && session.answers);\n score = `${getOutComeScore(normalizedQuestion, env, session && session.answers) * 100}%`;\n }\n\n const correctResponse = {};\n const correctInfo = {\n score,\n correctness,\n };\n\n const lockChoiceOrder = lockChoices(normalizedQuestion, session, env);\n\n if (!lockChoiceOrder) {\n normalizedQuestion.rows = await getShuffledChoices(normalizedQuestion.rows, session, updateSession, 'id');\n }\n\n normalizedQuestion.rows.forEach((row) => {\n correctResponse[row.id] = row.values;\n\n if (env.mode !== 'evaluate') {\n delete row.values;\n }\n });\n\n const feedback =\n env.mode === 'evaluate' && normalizedQuestion.feedbackEnabled\n ? await getFeedbackForCorrectness(correctInfo.correctness, normalizedQuestion.feedback)\n : undefined;\n\n const {\n extraCSSRules,\n feedbackEnabled,\n promptEnabled,\n prompt,\n lockChoiceOrder: _,\n ...essentials\n } = normalizedQuestion;\n const out = {\n ...essentials,\n extraCSSRules,\n allowFeedback: feedbackEnabled,\n prompt: promptEnabled ? prompt : null,\n shuffled: !lockChoiceOrder,\n feedback,\n disabled: env.mode !== 'gather',\n view: env.mode === 'view',\n };\n\n if (env.role === 'instructor' && (env.mode === 'view' || env.mode === 'evaluate')) {\n out.teacherInstructions = normalizedQuestion.teacherInstructionsEnabled\n ? normalizedQuestion.teacherInstructions\n : null;\n out.rationale = normalizedQuestion.rationaleEnabled ? normalizedQuestion.rationale : null;\n } else {\n out.rationale = null;\n out.teacherInstructions = null;\n }\n\n if (env.mode === 'evaluate') {\n Object.assign(out, {\n correctResponse,\n correctness: correctInfo,\n });\n }\n\n log('out: ', out);\n return out;\n}\n\nexport const createCorrectResponseSession = (question, env) => {\n return new Promise((resolve) => {\n if (env.mode !== 'evaluate' && env.role === 'instructor') {\n const { rows } = question;\n const answers = {};\n\n rows.forEach((r) => {\n answers[r.id] = r.values;\n });\n\n resolve({\n answers,\n id: '1',\n });\n } else {\n resolve(null);\n }\n });\n};\n\n// remove all html tags\nconst getInnerText = (html) => (html || '').replaceAll(/<[^>]*>/g, '');\n\n// remove all html tags except img, iframe and source tag for audio\nconst getContent = (html) => (html || '').replace(/(<(?!img|iframe|source)([^>]+)>)/gi, '');\n\nexport const validate = (model = {}, config = {}) => {\n const { rows, choiceMode, headers } = model;\n const {\n minQuestions,\n maxQuestions,\n maxLengthQuestionsHeading,\n maxAnswers,\n maxLengthAnswers,\n maxLengthFirstColumnHeading,\n } = config;\n const rowsErrors = {};\n const columnsErrors = {};\n const errors = {};\n\n ['teacherInstructions', 'prompt', 'rationale'].forEach((field) => {\n if (config[field]?.required && !getContent(model[field])) {\n errors[field] = 'This field is required.';\n }\n });\n\n if (rows.length < minQuestions) {\n errors.noOfRowsError = `There should be at least ${minQuestions} question rows.`;\n } else if (rows.length > maxQuestions) {\n errors.noOfRowsError = `No more than ${maxQuestions} question rows should be defined.`;\n }\n\n (rows || []).forEach((row, index) => {\n const { id, values = [], title } = row;\n rowsErrors[id] = '';\n\n if (maxLengthQuestionsHeading && getInnerText(title).length > maxLengthQuestionsHeading) {\n rowsErrors[id] += `Content length should be maximum ${maxLengthQuestionsHeading} characters. `;\n }\n\n if (!getContent(title)) {\n rowsErrors[id] += 'Content should not be empty. ';\n } else {\n // check for identical content with the previous answers\n const identicalAnswer = rows.slice(0, index).some((r) => getContent(r.title) === getContent(title));\n\n if (identicalAnswer) {\n rowsErrors[id] += 'Content should be unique. ';\n }\n }\n\n const hasCorrectResponse = values.some((value) => !!value);\n\n if (!hasCorrectResponse) {\n rowsErrors[id] += 'No correct response defined.';\n }\n });\n\n if (maxAnswers && headers.length - 1 > maxAnswers) {\n errors.columnsLengthError = `There should be maximum ${maxAnswers} answers.`;\n }\n\n if (maxLengthFirstColumnHeading && headers[0].length > maxLengthFirstColumnHeading) {\n columnsErrors[0] = `Content length should be maximum ${maxLengthFirstColumnHeading} characters.`;\n }\n\n const headersContent = (headers || []).map((heading) => getContent(heading));\n headersContent.shift(); // remove first column since it does not require validation\n\n headersContent.forEach((heading, index) => {\n const headerIndex = index + 1; // we need to add 1 because we removed first header from validation\n columnsErrors[headerIndex] = '';\n\n if (maxLengthAnswers && getInnerText(heading).length > maxLengthAnswers) {\n columnsErrors[headerIndex] += `Content length should be maximum ${maxLengthAnswers} characters. `;\n }\n\n if (!heading) {\n columnsErrors[headerIndex] += 'Content should not be empty.';\n } else {\n // check for identical content with the previous headers\n const identicalAnswer = headersContent.slice(0, index).some((head) => head === heading);\n\n if (identicalAnswer) {\n columnsErrors[index + 1] += 'Content should be unique.';\n }\n }\n });\n\n const hasRowErrors = Object.values(rowsErrors).some((error) => (error || '').length);\n\n if (hasRowErrors) {\n errors.rowsErrors = rowsErrors;\n\n const noCorrectAnswer = Object.values(rowsErrors).some((error) =>\n (error || '').includes('No correct response defined.'),\n );\n\n if (noCorrectAnswer) {\n errors.correctResponseError =\n choiceMode === 'radio'\n ? 'There should be a correct response defined for every row.'\n : 'There should be at least one correct response defined for every row.';\n }\n }\n\n const hasColumnErrors = Object.values(columnsErrors).some((error) => (error || '').length);\n\n if (hasColumnErrors) {\n errors.columnsErrors = columnsErrors;\n }\n\n return errors;\n};\n"],"mappings":"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","ignoreList":[]}
@@ -9,9 +9,9 @@
9
9
  "test": "./node_modules/.bin/jest"
10
10
  },
11
11
  "dependencies": {
12
- "@pie-lib/controller-utils": "1.1.0-next.4",
13
- "@pie-lib/feedback": "1.1.0-next.4",
14
- "debug": "^3.1.0"
12
+ "@pie-lib/controller-utils": "1.1.1-next.1",
13
+ "@pie-lib/feedback": "1.1.1-next.1",
14
+ "debug": "^4.1.1"
15
15
  },
16
16
  "devDependencies": {
17
17
  "babel-jest": "^29.7.0",
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "access": "public"
5
5
  },
6
6
  "repository": "pie-framework/pie-elements",
7
- "version": "11.0.0-beta.1",
7
+ "version": "11.0.0-next.0+67da381",
8
8
  "main": "lib/index.js",
9
9
  "description": "",
10
10
  "scripts": {
@@ -16,19 +16,19 @@
16
16
  "@mui/icons-material": "^7.3.4",
17
17
  "@mui/material": "^7.3.4",
18
18
  "@pie-framework/pie-player-events": "^0.1.0",
19
- "@pie-lib/correct-answer-toggle": "3.1.0-next.5",
20
- "@pie-lib/math-rendering": "4.1.0-next.4",
21
- "@pie-lib/render-ui": "5.1.0-next.5",
22
- "@pie-lib/test-utils": "1.1.0-next.4",
19
+ "@pie-lib/correct-answer-toggle": "3.1.1-next.1",
20
+ "@pie-lib/math-rendering": "4.1.1-next.1",
21
+ "@pie-lib/render-ui": "5.1.1-next.1",
22
+ "@pie-lib/test-utils": "1.1.1-next.1",
23
23
  "classnames": "^2.2.5",
24
24
  "debug": "^4.1.1",
25
- "lodash": "^4.17.10",
25
+ "lodash-es": "^4.17.23",
26
26
  "prop-types": "^15.6.1",
27
- "react": "18.2.0",
28
- "react-dom": "18.2.0"
27
+ "react": "18.3.1",
28
+ "react-dom": "18.3.1"
29
29
  },
30
30
  "author": "",
31
31
  "license": "ISC",
32
- "gitHead": "a15dd0ea81626703eb753bc0ab4c81bb2a96d58d",
32
+ "gitHead": "67da3818d2af966110c6e85f6e8e238b79515eb2",
33
33
  "module": "src/index.js"
34
34
  }