@pie-element/math-inline 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.
- package/configure/lib/defaults.js +3 -0
- package/configure/lib/defaults.js.map +1 -1
- package/configure/lib/general-config-block.js +2 -2
- package/configure/lib/general-config-block.js.map +1 -1
- package/configure/lib/index.js +2 -2
- package/configure/lib/index.js.map +1 -1
- package/configure/package.json +9 -9
- package/controller/lib/index.js +5 -5
- package/controller/lib/index.js.map +1 -1
- package/controller/package.json +4 -4
- package/lib/index.js +2 -2
- package/lib/index.js.map +1 -1
- package/lib/main.js +17 -15
- package/lib/main.js.map +1 -1
- package/lib/print.js +2 -2
- package/lib/print.js.map +1 -1
- package/module/configure.js +1 -0
- package/module/controller.js +3709 -0
- package/module/demo.js +66 -0
- package/module/element.js +1 -0
- package/module/index.html +21 -0
- package/module/manifest.json +18 -0
- package/module/print-demo.js +104 -0
- package/module/print.html +18 -0
- package/module/print.js +1 -0
- package/package.json +16 -12
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.js","names":["_utils","require","_default","exports","default","model","allowTrailingZerosDefault","customKeys","equationEditor","expression","feedback","correct","type","incorrect","partial","feedbackEnabled","ignoreOrderDefault","partialScoring","prompt","promptEnabled","rationale","rationaleEnabled","responseType","ResponseTypes","advanced","responses","scoringType","studentInstructionsEnabled","teacherInstructions","teacherInstructionsEnabled","toolbarEditorPosition","validationDefault","configuration","baseInputConfiguration","
|
|
1
|
+
{"version":3,"file":"defaults.js","names":["_utils","require","_default","exports","default","model","allowTrailingZerosDefault","customKeys","equationEditor","expression","feedback","correct","type","incorrect","partial","feedbackEnabled","ignoreOrderDefault","partialScoring","prompt","promptEnabled","rationale","rationaleEnabled","responseType","ResponseTypes","advanced","responses","scoringType","studentInstructionsEnabled","teacherInstructions","teacherInstructionsEnabled","toolbarEditorPosition","validationDefault","configuration","baseInputConfiguration","h3","disabled","audio","video","image","textAlign","showParagraphs","separateParagraphs","settings","label","inputConfiguration","required","settingsPanelDisabled","spellCheck","enabled","studentInstructions","ignoreOrder","allowTrailingZeros","maxImageWidth","maxImageHeight","withRubric","mathMlOptions","mmlOutput","mmlEditing","language","languageChoices","options"],"sources":["../src/defaults.js"],"sourcesContent":["import { ResponseTypes } from './utils';\n\n/** NOTE: teacherInstructions, studentInstructions, rationale & scoringType\n * functionalities are not defined yet - the value for those can belong to\n * model or to configure\n */\n\nexport default {\n model: {\n allowTrailingZerosDefault: false,\n customKeys: [],\n equationEditor: '8',\n expression: '',\n feedback: {\n correct: { default: 'Correct', type: 'none' },\n incorrect: { default: 'Incorrect', type: 'none' },\n partial: { default: 'Nearly', type: 'none' },\n },\n feedbackEnabled: false,\n ignoreOrderDefault: false,\n partialScoring: true,\n prompt: '',\n promptEnabled: true,\n rationale: '',\n rationaleEnabled: true,\n responseType: ResponseTypes.advanced,\n responses: [],\n scoringType: 'auto',\n studentInstructionsEnabled: true,\n teacherInstructions: '',\n teacherInstructionsEnabled: true,\n toolbarEditorPosition: 'bottom',\n validationDefault: 'literal',\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 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 feedback: {\n settings: true,\n label: 'Feedback',\n },\n responseType: {\n settings: true,\n label: 'Response type',\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 partialScoring: {\n settings: false,\n label: 'Allow Partial Scoring',\n },\n ignoreOrder: {\n settings: false,\n label: 'Ignore Order',\n enabled: true,\n },\n allowTrailingZeros: {\n settings: false,\n label: 'Allow Trailing Zeros',\n enabled: true,\n },\n maxImageWidth: {\n teacherInstructions: 300,\n prompt: 300,\n rationale: 300,\n },\n maxImageHeight: {\n teacherInstructions: 300,\n prompt: 300,\n rationale: 300,\n },\n withRubric: {\n settings: false,\n label: 'Add Rubric',\n },\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":[]}
|
|
@@ -17,7 +17,7 @@ var _Select = _interopRequireDefault(require("@mui/material/Select"));
|
|
|
17
17
|
var _MenuItem = _interopRequireDefault(require("@mui/material/MenuItem"));
|
|
18
18
|
var _response = _interopRequireDefault(require("./response"));
|
|
19
19
|
var _mathToolbar = require("@pie-lib/math-toolbar");
|
|
20
|
-
var
|
|
20
|
+
var _lodashEs = require("lodash-es");
|
|
21
21
|
var _utils = require("./utils");
|
|
22
22
|
var _mathquill = _interopRequireDefault(require("@pie-framework/mathquill"));
|
|
23
23
|
var _Info = _interopRequireDefault(require("@mui/icons-material/Info"));
|
|
@@ -206,7 +206,7 @@ class GeneralConfigBlock extends React.Component {
|
|
|
206
206
|
};
|
|
207
207
|
});
|
|
208
208
|
}
|
|
209
|
-
if (!(0,
|
|
209
|
+
if (!(0, _lodashEs.isEqual)(responseAreas, this.state.responseAreas)) {
|
|
210
210
|
this.setState({
|
|
211
211
|
responseAreas
|
|
212
212
|
}, () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"general-config-block.js","names":["React","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_classnames","_editableHtmlTipTap","_configUi","_styles","_InputLabel","_Select","_MenuItem","_response","_mathToolbar","_isEqual","_utils","_mathquill","_Info","_Tooltip","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","registered","getBlockClassNames","blockContainer","blockContainerGeneric","blockResponse","blockResponseGeneric","Container","styled","display","flexDirection","TemplateTitle","InputLabel","fontSize","Title","FlexContainer","alignItems","justifyContent","SelectContainer","InputContainer","theme","flex","width","marginTop","spacing","marginBottom","ResponseTemplate","StyledTooltip","Tooltip","typography","whiteSpace","ErrorText","color","palette","error","main","paddingTop","PromptHolder","AdvancedResponse","document","styleId","getElementById","style","createElement","id","textContent","head","appendChild","REGEX","TEMPORARY_RESPONSE_FIELD","ANSWER_BLOCK_REGEX","NEWLINE_BLOCK","NEWLINE_LATEX","prepareForStatic","expression","answerBlocks","replace","prepareForModel","GeneralConfigBlock","Component","constructor","props","_defineProperty2","name","evtOrValue","model","onChange","newModel","target","value","setState","showKeypad","responseAreas","isEqual","state","root","keys","length","forEach","responseId","idx","el","querySelector","indexEl","MQ","MathQuill","getInterface","StaticMath","responseIdCounter","newCounter","responses","find","response","validation","answer","alternates","concat","index","UNSAFE_componentWillMount","window","registerEmbed","data","classNames","genericAnswerBlock","cx","htmlString","text","latex","componentDidMount","handleAnswerBlockDomUpdate","componentDidUpdate","render","imageSupport","uploadSoundSupport","configuration","promptEnabled","rationaleEnabled","toolbarOpts","prompt","equationEditor","promptEquationEditor","responseType","rationale","spellCheckEnabled","errors","baseInputConfiguration","cRationale","cPrompt","ignoreOrder","cIgnoreOrder","allowTrailingZeros","cAllowTrailingZeros","maxResponseAreas","maxImageWidth","maxImageHeight","mathMlOptions","validationMessage","generateValidationMessage","promptError","rationaleError","responsesErrors","responseAreasError","defaultImageMaxWidth","defaultImageMaxHeight","editor","responsesToUse","ResponseTypes","advanced","slice","validationTooltip","disableFocusListener","disableTouchListener","placement","title","marginLeft","ref","label","onFocus","onPromptFocus","markup","nonEmpty","pluginProps","getPluginProps","inputConfiguration","spellCheck","languageCharactersProps","language","key","MenuProps","transitionDuration","enter","exit","MathToolbar","allowAnswerBlock","keypadMode","controlledKeypad","onDone","simple","map","mode","defaultResponse","onResponseChange","math","controlledKeypadMode","PropTypes","object","isRequired","func","bool","_default","exports"],"sources":["../src/general-config-block.jsx"],"sourcesContent":["import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport cx from 'classnames';\nimport EditableHtml from '@pie-lib/editable-html-tip-tap';\nimport { InputContainer } from '@pie-lib/config-ui';\nimport { styled } from '@mui/material/styles';\nimport InputLabel from '@mui/material/InputLabel';\nimport Select from '@mui/material/Select';\nimport MenuItem from '@mui/material/MenuItem';\nimport Response from './response';\nimport { MathToolbar } from '@pie-lib/math-toolbar';\nimport isEqual from 'lodash/isEqual';\nimport { ResponseTypes, generateValidationMessage, getPluginProps } from './utils';\nimport MathQuill from '@pie-framework/mathquill';\nimport Info from '@mui/icons-material/Info';\nimport Tooltip from '@mui/material/Tooltip';\n\nlet registered = false;\n\n// Helper function to get class names for HTML string generation\nconst getBlockClassNames = () => {\n // These will be generated by styled components, but we need them as strings for HTML\n // We'll use a simple approach: generate unique class names\n return {\n blockContainer: 'block-container',\n blockContainerGeneric: 'block-container-generic',\n blockResponse: 'block-response',\n blockResponseGeneric: 'block-response-generic',\n };\n};\n\nconst Container = styled('div')({\n display: 'flex',\n flexDirection: 'column',\n});\n\nconst TemplateTitle = styled(InputLabel)({\n fontSize: '0.85rem',\n});\n\nconst Title = styled('div')({\n fontSize: '1.1rem',\n});\n\nconst FlexContainer = styled('div')({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n});\n\nconst SelectContainer = styled(InputContainer)(({ theme }) => ({\n flex: 'initial',\n width: '40%',\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(2),\n '& > *:not(label)': {\n marginTop: theme.spacing(1),\n },\n}));\n\nconst ResponseTemplate = styled('div')({\n display: 'flex',\n flexDirection: 'column',\n});\n\nconst StyledTooltip = styled(Tooltip)(({ theme }) => ({\n '& .MuiTooltip-tooltip': {\n fontSize: theme.typography.fontSize - 2,\n whiteSpace: 'pre-wrap',\n },\n}));\n\nconst ErrorText = styled('div')(({ theme }) => ({\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingTop: theme.spacing(1),\n}));\n\nconst PromptHolder = styled(InputContainer)(({ theme }) => ({\n width: '100%',\n paddingTop: theme.spacing(2),\n marginBottom: theme.spacing(2),\n}));\n\nconst AdvancedResponse = styled('div')(({ theme }) => ({\n marginBottom: theme.spacing(2.5),\n}));\n\n// CSS for block classes used in HTML string generation\n// These need to be injected as global styles since they're used in dynamically generated HTML\nif (typeof document !== 'undefined') {\n const styleId = 'math-inline-block-styles';\n if (!document.getElementById(styleId)) {\n const style = document.createElement('style');\n style.id = styleId;\n style.textContent = `\n .block-container {\n margin: 8px;\n display: inline-flex;\n border: 2px solid grey;\n }\n .block-container-generic {\n margin: 4px;\n }\n .block-response {\n flex: 2;\n color: grey;\n background: #f5f5f5;\n font-size: 0.8rem;\n padding: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-right: 2px solid grey;\n }\n .block-response-generic {\n border-right: 0;\n }\n .response-editor {\n display: flex;\n justify-content: center;\n width: 100%;\n max-width: inherit;\n height: auto;\n min-height: 130px;\n text-align: left;\n padding: 8px;\n }\n `;\n document.head.appendChild(style);\n }\n}\n\nconst REGEX = /{{response}}/gm;\nconst TEMPORARY_RESPONSE_FIELD = /\\\\%response\\\\%/gm;\nconst ANSWER_BLOCK_REGEX = /\\\\embed\\{answerBlock\\}\\[r\\d*\\]/g;\nconst NEWLINE_BLOCK = /\\\\embed\\{newLine\\}\\[\\]/g;\nconst NEWLINE_LATEX = /\\\\newline/g;\n\nfunction prepareForStatic(expression) {\n if (expression) {\n let answerBlocks = 1; // assume one at least\n\n return expression\n .replace(REGEX, () => `\\\\embed{answerBlock}[r${answerBlocks++}]`)\n .replace(NEWLINE_LATEX, '\\\\embed{newLine}[]');\n }\n}\n\nfunction prepareForModel(expression) {\n if (expression) {\n return expression\n .replace(ANSWER_BLOCK_REGEX, () => '{{response}}')\n .replace(TEMPORARY_RESPONSE_FIELD, () => '{{response}}')\n .replace(NEWLINE_BLOCK, () => '\\\\newline');\n }\n}\n\nclass GeneralConfigBlock extends React.Component {\n static propTypes = {\n model: PropTypes.object.isRequired,\n imageSupport: PropTypes.object,\n uploadSoundSupport: PropTypes.object,\n configuration: PropTypes.object,\n onChange: PropTypes.func.isRequired,\n promptEnabled: PropTypes.bool,\n rationaleEnabled: PropTypes.bool,\n toolbarOpts: PropTypes.object,\n };\n\n constructor(props) {\n super(props);\n\n const responseAreas = {};\n\n if (props.model && props.model.expression) {\n let answerBlocks = 1; // assume one at least\n // build out local state model using responses declared in expression\n\n props.model.expression.replace(REGEX, () => {\n responseAreas[`r${answerBlocks++}`] = {\n value: '',\n };\n });\n }\n\n this.state = {\n showKeypad: false,\n responseAreas,\n responseIdCounter: Object.keys(responseAreas).length,\n };\n }\n\n onChange = (name) => (evtOrValue) => {\n const { model, onChange } = this.props;\n const newModel = { ...model };\n\n if (typeof evtOrValue === 'object') {\n newModel[name] = evtOrValue.target.value;\n } else {\n newModel[name] = evtOrValue;\n }\n\n if (name === 'expression') {\n newModel[name] = prepareForModel(evtOrValue);\n }\n\n onChange(newModel);\n };\n\n onDone = () => {\n this.setState({ showKeypad: false });\n };\n\n onFocus = () => {\n this.setState({ showKeypad: true });\n };\n\n onPromptFocus = () => {\n this.setState({ showKeypad: false });\n };\n\n UNSAFE_componentWillMount() {\n if (typeof window !== 'undefined') {\n // const MathQuill = require('@pie-framework/mathquill');\n let MQ = MathQuill.getInterface(2);\n\n if (!registered) {\n MQ.registerEmbed('answerBlock', (data) => {\n const classNames = getBlockClassNames();\n const genericAnswerBlock = `<div class=\"${cx(classNames.blockContainer, classNames.blockContainerGeneric)}\">\n <div class=\"${cx(classNames.blockResponse, classNames.blockResponseGeneric)}\" id=\"${data}Index\">Response</div>\n </div>`;\n\n return {\n htmlString: genericAnswerBlock,\n text: () => 'text',\n latex: () => `\\\\embed{answerBlock}[${data}]`,\n };\n });\n\n registered = true;\n }\n }\n }\n\n componentDidMount() {\n this.handleAnswerBlockDomUpdate();\n }\n\n componentDidUpdate() {\n this.handleAnswerBlockDomUpdate();\n }\n\n handleAnswerBlockDomUpdate = () => {\n const { model } = this.props;\n\n const responseAreas = {};\n\n if (model && model.expression) {\n let answerBlocks = 1; // assume one at least\n // build out local state model using responses declared in expression\n\n model.expression.replace(REGEX, () => {\n responseAreas[`r${answerBlocks++}`] = {\n value: '',\n };\n });\n }\n\n if (!isEqual(responseAreas, this.state.responseAreas)) {\n this.setState(\n {\n responseAreas,\n },\n () => {\n if (this.root && Object.keys(responseAreas).length) {\n Object.keys(responseAreas).forEach((responseId, idx) => {\n const el = this.root.querySelector(`#${responseId}`);\n const indexEl = this.root.querySelector(`#${responseId}Index`);\n\n if (el) {\n // const MathQuill = require('@pie-framework/mathquill');\n let MQ = MathQuill.getInterface(2);\n // We no longer have individual answers, so we cannot set text content of blocks\n // el.textContent = response.answer;\n MQ.StaticMath(el);\n indexEl.textContent = `R${idx + 1}`;\n }\n });\n }\n },\n );\n }\n };\n\n onAddResponse = () => {\n const { model, onChange } = this.props;\n const { responseIdCounter } = this.state;\n const newModel = { ...model };\n\n let newCounter = responseIdCounter;\n\n while (model.responses.find((response) => response.id === newCounter)) {\n newCounter++;\n }\n\n const response = {\n id: newCounter,\n validation: 'literal',\n answer: '',\n alternates: {},\n };\n\n newModel.responses = newModel.responses.concat(response);\n onChange(newModel);\n\n this.setState({\n responseIdCounter: response.id,\n });\n };\n\n onResponseChange = (response, index) => {\n const { model, onChange } = this.props;\n const newModel = { ...model };\n\n newModel.responses[index] = response;\n onChange(newModel);\n };\n\n render() {\n const {\n model,\n imageSupport,\n uploadSoundSupport,\n configuration,\n promptEnabled,\n rationaleEnabled,\n toolbarOpts,\n } = this.props;\n const { showKeypad } = this.state;\n const {\n prompt,\n expression,\n equationEditor,\n promptEquationEditor = '8',\n responses,\n responseType,\n rationale,\n spellCheckEnabled,\n errors = {},\n } = model;\n const {\n baseInputConfiguration = {},\n rationale: cRationale = {},\n prompt: cPrompt = {},\n ignoreOrder: cIgnoreOrder = {},\n allowTrailingZeros: cAllowTrailingZeros = {},\n maxResponseAreas,\n maxImageWidth = {},\n maxImageHeight = {},\n mathMlOptions = {},\n } = configuration || {};\n const validationMessage = generateValidationMessage(configuration, model);\n const { prompt: promptError, rationale: rationaleError, responsesErrors, responseAreasError } = errors;\n\n const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;\n const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;\n\n const classNames = {\n editor: 'response-editor',\n };\n\n const responsesToUse = responseType === ResponseTypes.advanced ? responses : responses.slice(0, 1);\n\n const validationTooltip = (\n <StyledTooltip\n disableFocusListener\n disableTouchListener\n placement={'right'}\n title={validationMessage}\n >\n <Info fontSize={'small'} color={'primary'} style={{ marginLeft: '5px' }} />\n </StyledTooltip>\n );\n\n return (\n <Container ref={(r) => (this.root = r || this.root)}>\n {promptEnabled && (\n <PromptHolder label={cPrompt.label}>\n <EditableHtml\n onFocus={this.onPromptFocus}\n markup={prompt || ''}\n onChange={this.onChange('prompt')}\n imageSupport={imageSupport}\n nonEmpty={false}\n error={promptError}\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(cPrompt?.inputConfiguration, baseInputConfiguration)}\n spellCheck={spellCheckEnabled}\n maxImageWidth={defaultImageMaxWidth}\n maxImageHeight={defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n {promptError && <ErrorText>{promptError}</ErrorText>}\n </PromptHolder>\n )}\n\n {responseType === ResponseTypes.advanced && (\n <AdvancedResponse>\n <FlexContainer style={{ justifyContent: 'flex-start' }}>\n <Title>Define Response</Title>\n {validationTooltip}\n </FlexContainer>\n\n <SelectContainer\n key=\"templateEditorType\"\n label=\"Response Template Equation Editor\"\n >\n <Select\n onChange={this.onChange('promptEquationEditor')}\n value={promptEquationEditor}\n MenuProps={{transitionDuration: { enter: 225, exit: 195 } }}\n >\n <MenuItem value=\"non-negative-integers\">Numeric - Non-Negative Integers</MenuItem>\n <MenuItem value=\"integers\">Numeric - Integers</MenuItem>\n <MenuItem value=\"decimals\">Numeric - Decimals</MenuItem>\n <MenuItem value=\"fractions\">Numeric - Fractions</MenuItem>\n <MenuItem value={1}>Grade 1 - 2</MenuItem>\n <MenuItem value={3}>Grade 3 - 5</MenuItem>\n <MenuItem value={6}>Grade 6 - 7</MenuItem>\n <MenuItem value={8}>Grade 8 - HS</MenuItem>\n <MenuItem value={'geometry'}>Geometry</MenuItem>\n <MenuItem value={'advanced-algebra'}>Advanced Algebra</MenuItem>\n <MenuItem value={'statistics'}>Statistics</MenuItem>\n <MenuItem value={'item-authoring'}>Item Authoring</MenuItem>\n </Select>\n </SelectContainer>\n\n <ResponseTemplate key=\"templateHolder\">\n <TemplateTitle>RESPONSE TEMPLATE</TemplateTitle>\n <MathToolbar\n classNames={classNames}\n allowAnswerBlock\n keypadMode={promptEquationEditor}\n controlledKeypad\n showKeypad={showKeypad}\n latex={prepareForStatic(expression) || ''}\n onChange={this.onChange('expression')}\n onFocus={this.onFocus}\n onDone={this.onDone}\n maxResponseAreas={maxResponseAreas}\n error={responseAreasError}\n />\n </ResponseTemplate>\n\n {responseAreasError && <ErrorText>{responseAreasError}</ErrorText>}\n </AdvancedResponse>\n )}\n\n <FlexContainer style={{ justifyContent: 'flex-start' }}>\n <Title>Define Correct Response</Title>\n {responseType === ResponseTypes.simple ? validationTooltip : null}\n </FlexContainer>\n\n <SelectContainer label=\"Equation Editor\">\n <Select onChange={this.onChange('equationEditor')} value={equationEditor} MenuProps={{transitionDuration: { enter: 225, exit: 195 } }}>\n <MenuItem value=\"non-negative-integers\">Numeric - Non-Negative Integers</MenuItem>\n <MenuItem value=\"integers\">Numeric - Integers</MenuItem>\n <MenuItem value=\"decimals\">Numeric - Decimals</MenuItem>\n <MenuItem value=\"fractions\">Numeric - Fractions</MenuItem>\n <MenuItem value={1}>Grade 1 - 2</MenuItem>\n <MenuItem value={3}>Grade 3 - 5</MenuItem>\n <MenuItem value={6}>Grade 6 - 7</MenuItem>\n <MenuItem value={8}>Grade 8 - HS</MenuItem>\n <MenuItem value={'geometry'}>Geometry</MenuItem>\n <MenuItem value={'advanced-algebra'}>Advanced Algebra</MenuItem>\n <MenuItem value={'statistics'}>Statistics</MenuItem>\n <MenuItem value={'item-authoring'}>Item Authoring</MenuItem>\n </Select>\n </SelectContainer>\n\n {responsesToUse.map((response, idx) => (\n <Response\n key={response.id}\n mode={equationEditor}\n response={response}\n defaultResponse={responseType === ResponseTypes.simple}\n onResponseChange={this.onResponseChange}\n index={idx}\n cIgnoreOrder={cIgnoreOrder}\n cAllowTrailingZeros={cAllowTrailingZeros}\n error={responsesErrors && responsesErrors[idx]}\n />\n ))}\n\n {rationaleEnabled && (\n <PromptHolder label={cRationale.label}>\n <EditableHtml\n markup={rationale || ''}\n onChange={this.onChange('rationale')}\n imageSupport={imageSupport}\n nonEmpty={false}\n error={rationaleError}\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(cRationale?.inputConfiguration, {\n ...baseInputConfiguration,\n math: {\n controlledKeypadMode: false,\n },\n })}\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 {rationaleError && <ErrorText>{rationaleError}</ErrorText>}\n </PromptHolder>\n )}\n </Container>\n );\n }\n}\n\nexport default GeneralConfigBlock;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"general-config-block.js","names":["React","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_classnames","_editableHtmlTipTap","_configUi","_styles","_InputLabel","_Select","_MenuItem","_response","_mathToolbar","_lodashEs","_utils","_mathquill","_Info","_Tooltip","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","registered","getBlockClassNames","blockContainer","blockContainerGeneric","blockResponse","blockResponseGeneric","Container","styled","display","flexDirection","TemplateTitle","InputLabel","fontSize","Title","FlexContainer","alignItems","justifyContent","SelectContainer","InputContainer","theme","flex","width","marginTop","spacing","marginBottom","ResponseTemplate","StyledTooltip","Tooltip","typography","whiteSpace","ErrorText","color","palette","error","main","paddingTop","PromptHolder","AdvancedResponse","document","styleId","getElementById","style","createElement","id","textContent","head","appendChild","REGEX","TEMPORARY_RESPONSE_FIELD","ANSWER_BLOCK_REGEX","NEWLINE_BLOCK","NEWLINE_LATEX","prepareForStatic","expression","answerBlocks","replace","prepareForModel","GeneralConfigBlock","Component","constructor","props","_defineProperty2","name","evtOrValue","model","onChange","newModel","target","value","setState","showKeypad","responseAreas","isEqual","state","root","keys","length","forEach","responseId","idx","el","querySelector","indexEl","MQ","MathQuill","getInterface","StaticMath","responseIdCounter","newCounter","responses","find","response","validation","answer","alternates","concat","index","UNSAFE_componentWillMount","window","registerEmbed","data","classNames","genericAnswerBlock","cx","htmlString","text","latex","componentDidMount","handleAnswerBlockDomUpdate","componentDidUpdate","render","imageSupport","uploadSoundSupport","configuration","promptEnabled","rationaleEnabled","toolbarOpts","prompt","equationEditor","promptEquationEditor","responseType","rationale","spellCheckEnabled","errors","baseInputConfiguration","cRationale","cPrompt","ignoreOrder","cIgnoreOrder","allowTrailingZeros","cAllowTrailingZeros","maxResponseAreas","maxImageWidth","maxImageHeight","mathMlOptions","validationMessage","generateValidationMessage","promptError","rationaleError","responsesErrors","responseAreasError","defaultImageMaxWidth","defaultImageMaxHeight","editor","responsesToUse","ResponseTypes","advanced","slice","validationTooltip","disableFocusListener","disableTouchListener","placement","title","marginLeft","ref","label","onFocus","onPromptFocus","markup","nonEmpty","pluginProps","getPluginProps","inputConfiguration","spellCheck","languageCharactersProps","language","key","MenuProps","transitionDuration","enter","exit","MathToolbar","allowAnswerBlock","keypadMode","controlledKeypad","onDone","simple","map","mode","defaultResponse","onResponseChange","math","controlledKeypadMode","PropTypes","object","isRequired","func","bool","_default","exports"],"sources":["../src/general-config-block.jsx"],"sourcesContent":["import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport cx from 'classnames';\nimport EditableHtml from '@pie-lib/editable-html-tip-tap';\nimport { InputContainer } from '@pie-lib/config-ui';\nimport { styled } from '@mui/material/styles';\nimport InputLabel from '@mui/material/InputLabel';\nimport Select from '@mui/material/Select';\nimport MenuItem from '@mui/material/MenuItem';\nimport Response from './response';\nimport { MathToolbar } from '@pie-lib/math-toolbar';\nimport { isEqual } from 'lodash-es';\nimport { ResponseTypes, generateValidationMessage, getPluginProps } from './utils';\nimport MathQuill from '@pie-framework/mathquill';\nimport Info from '@mui/icons-material/Info';\nimport Tooltip from '@mui/material/Tooltip';\n\nlet registered = false;\n\n// Helper function to get class names for HTML string generation\nconst getBlockClassNames = () => {\n // These will be generated by styled components, but we need them as strings for HTML\n // We'll use a simple approach: generate unique class names\n return {\n blockContainer: 'block-container',\n blockContainerGeneric: 'block-container-generic',\n blockResponse: 'block-response',\n blockResponseGeneric: 'block-response-generic',\n };\n};\n\nconst Container = styled('div')({\n display: 'flex',\n flexDirection: 'column',\n});\n\nconst TemplateTitle = styled(InputLabel)({\n fontSize: '0.85rem',\n});\n\nconst Title = styled('div')({\n fontSize: '1.1rem',\n});\n\nconst FlexContainer = styled('div')({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n});\n\nconst SelectContainer = styled(InputContainer)(({ theme }) => ({\n flex: 'initial',\n width: '40%',\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(2),\n '& > *:not(label)': {\n marginTop: theme.spacing(1),\n },\n}));\n\nconst ResponseTemplate = styled('div')({\n display: 'flex',\n flexDirection: 'column',\n});\n\nconst StyledTooltip = styled(Tooltip)(({ theme }) => ({\n '& .MuiTooltip-tooltip': {\n fontSize: theme.typography.fontSize - 2,\n whiteSpace: 'pre-wrap',\n },\n}));\n\nconst ErrorText = styled('div')(({ theme }) => ({\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingTop: theme.spacing(1),\n}));\n\nconst PromptHolder = styled(InputContainer)(({ theme }) => ({\n width: '100%',\n paddingTop: theme.spacing(2),\n marginBottom: theme.spacing(2),\n}));\n\nconst AdvancedResponse = styled('div')(({ theme }) => ({\n marginBottom: theme.spacing(2.5),\n}));\n\n// CSS for block classes used in HTML string generation\n// These need to be injected as global styles since they're used in dynamically generated HTML\nif (typeof document !== 'undefined') {\n const styleId = 'math-inline-block-styles';\n if (!document.getElementById(styleId)) {\n const style = document.createElement('style');\n style.id = styleId;\n style.textContent = `\n .block-container {\n margin: 8px;\n display: inline-flex;\n border: 2px solid grey;\n }\n .block-container-generic {\n margin: 4px;\n }\n .block-response {\n flex: 2;\n color: grey;\n background: #f5f5f5;\n font-size: 0.8rem;\n padding: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-right: 2px solid grey;\n }\n .block-response-generic {\n border-right: 0;\n }\n .response-editor {\n display: flex;\n justify-content: center;\n width: 100%;\n max-width: inherit;\n height: auto;\n min-height: 130px;\n text-align: left;\n padding: 8px;\n }\n `;\n document.head.appendChild(style);\n }\n}\n\nconst REGEX = /{{response}}/gm;\nconst TEMPORARY_RESPONSE_FIELD = /\\\\%response\\\\%/gm;\nconst ANSWER_BLOCK_REGEX = /\\\\embed\\{answerBlock\\}\\[r\\d*\\]/g;\nconst NEWLINE_BLOCK = /\\\\embed\\{newLine\\}\\[\\]/g;\nconst NEWLINE_LATEX = /\\\\newline/g;\n\nfunction prepareForStatic(expression) {\n if (expression) {\n let answerBlocks = 1; // assume one at least\n\n return expression\n .replace(REGEX, () => `\\\\embed{answerBlock}[r${answerBlocks++}]`)\n .replace(NEWLINE_LATEX, '\\\\embed{newLine}[]');\n }\n}\n\nfunction prepareForModel(expression) {\n if (expression) {\n return expression\n .replace(ANSWER_BLOCK_REGEX, () => '{{response}}')\n .replace(TEMPORARY_RESPONSE_FIELD, () => '{{response}}')\n .replace(NEWLINE_BLOCK, () => '\\\\newline');\n }\n}\n\nclass GeneralConfigBlock extends React.Component {\n static propTypes = {\n model: PropTypes.object.isRequired,\n imageSupport: PropTypes.object,\n uploadSoundSupport: PropTypes.object,\n configuration: PropTypes.object,\n onChange: PropTypes.func.isRequired,\n promptEnabled: PropTypes.bool,\n rationaleEnabled: PropTypes.bool,\n toolbarOpts: PropTypes.object,\n };\n\n constructor(props) {\n super(props);\n\n const responseAreas = {};\n\n if (props.model && props.model.expression) {\n let answerBlocks = 1; // assume one at least\n // build out local state model using responses declared in expression\n\n props.model.expression.replace(REGEX, () => {\n responseAreas[`r${answerBlocks++}`] = {\n value: '',\n };\n });\n }\n\n this.state = {\n showKeypad: false,\n responseAreas,\n responseIdCounter: Object.keys(responseAreas).length,\n };\n }\n\n onChange = (name) => (evtOrValue) => {\n const { model, onChange } = this.props;\n const newModel = { ...model };\n\n if (typeof evtOrValue === 'object') {\n newModel[name] = evtOrValue.target.value;\n } else {\n newModel[name] = evtOrValue;\n }\n\n if (name === 'expression') {\n newModel[name] = prepareForModel(evtOrValue);\n }\n\n onChange(newModel);\n };\n\n onDone = () => {\n this.setState({ showKeypad: false });\n };\n\n onFocus = () => {\n this.setState({ showKeypad: true });\n };\n\n onPromptFocus = () => {\n this.setState({ showKeypad: false });\n };\n\n UNSAFE_componentWillMount() {\n if (typeof window !== 'undefined') {\n // const MathQuill = require('@pie-framework/mathquill');\n let MQ = MathQuill.getInterface(2);\n\n if (!registered) {\n MQ.registerEmbed('answerBlock', (data) => {\n const classNames = getBlockClassNames();\n const genericAnswerBlock = `<div class=\"${cx(classNames.blockContainer, classNames.blockContainerGeneric)}\">\n <div class=\"${cx(classNames.blockResponse, classNames.blockResponseGeneric)}\" id=\"${data}Index\">Response</div>\n </div>`;\n\n return {\n htmlString: genericAnswerBlock,\n text: () => 'text',\n latex: () => `\\\\embed{answerBlock}[${data}]`,\n };\n });\n\n registered = true;\n }\n }\n }\n\n componentDidMount() {\n this.handleAnswerBlockDomUpdate();\n }\n\n componentDidUpdate() {\n this.handleAnswerBlockDomUpdate();\n }\n\n handleAnswerBlockDomUpdate = () => {\n const { model } = this.props;\n\n const responseAreas = {};\n\n if (model && model.expression) {\n let answerBlocks = 1; // assume one at least\n // build out local state model using responses declared in expression\n\n model.expression.replace(REGEX, () => {\n responseAreas[`r${answerBlocks++}`] = {\n value: '',\n };\n });\n }\n\n if (!isEqual(responseAreas, this.state.responseAreas)) {\n this.setState(\n {\n responseAreas,\n },\n () => {\n if (this.root && Object.keys(responseAreas).length) {\n Object.keys(responseAreas).forEach((responseId, idx) => {\n const el = this.root.querySelector(`#${responseId}`);\n const indexEl = this.root.querySelector(`#${responseId}Index`);\n\n if (el) {\n // const MathQuill = require('@pie-framework/mathquill');\n let MQ = MathQuill.getInterface(2);\n // We no longer have individual answers, so we cannot set text content of blocks\n // el.textContent = response.answer;\n MQ.StaticMath(el);\n indexEl.textContent = `R${idx + 1}`;\n }\n });\n }\n },\n );\n }\n };\n\n onAddResponse = () => {\n const { model, onChange } = this.props;\n const { responseIdCounter } = this.state;\n const newModel = { ...model };\n\n let newCounter = responseIdCounter;\n\n while (model.responses.find((response) => response.id === newCounter)) {\n newCounter++;\n }\n\n const response = {\n id: newCounter,\n validation: 'literal',\n answer: '',\n alternates: {},\n };\n\n newModel.responses = newModel.responses.concat(response);\n onChange(newModel);\n\n this.setState({\n responseIdCounter: response.id,\n });\n };\n\n onResponseChange = (response, index) => {\n const { model, onChange } = this.props;\n const newModel = { ...model };\n\n newModel.responses[index] = response;\n onChange(newModel);\n };\n\n render() {\n const {\n model,\n imageSupport,\n uploadSoundSupport,\n configuration,\n promptEnabled,\n rationaleEnabled,\n toolbarOpts,\n } = this.props;\n const { showKeypad } = this.state;\n const {\n prompt,\n expression,\n equationEditor,\n promptEquationEditor = '8',\n responses,\n responseType,\n rationale,\n spellCheckEnabled,\n errors = {},\n } = model;\n const {\n baseInputConfiguration = {},\n rationale: cRationale = {},\n prompt: cPrompt = {},\n ignoreOrder: cIgnoreOrder = {},\n allowTrailingZeros: cAllowTrailingZeros = {},\n maxResponseAreas,\n maxImageWidth = {},\n maxImageHeight = {},\n mathMlOptions = {},\n } = configuration || {};\n const validationMessage = generateValidationMessage(configuration, model);\n const { prompt: promptError, rationale: rationaleError, responsesErrors, responseAreasError } = errors;\n\n const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;\n const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;\n\n const classNames = {\n editor: 'response-editor',\n };\n\n const responsesToUse = responseType === ResponseTypes.advanced ? responses : responses.slice(0, 1);\n\n const validationTooltip = (\n <StyledTooltip\n disableFocusListener\n disableTouchListener\n placement={'right'}\n title={validationMessage}\n >\n <Info fontSize={'small'} color={'primary'} style={{ marginLeft: '5px' }} />\n </StyledTooltip>\n );\n\n return (\n <Container ref={(r) => (this.root = r || this.root)}>\n {promptEnabled && (\n <PromptHolder label={cPrompt.label}>\n <EditableHtml\n onFocus={this.onPromptFocus}\n markup={prompt || ''}\n onChange={this.onChange('prompt')}\n imageSupport={imageSupport}\n nonEmpty={false}\n error={promptError}\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(cPrompt?.inputConfiguration, baseInputConfiguration)}\n spellCheck={spellCheckEnabled}\n maxImageWidth={defaultImageMaxWidth}\n maxImageHeight={defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n {promptError && <ErrorText>{promptError}</ErrorText>}\n </PromptHolder>\n )}\n\n {responseType === ResponseTypes.advanced && (\n <AdvancedResponse>\n <FlexContainer style={{ justifyContent: 'flex-start' }}>\n <Title>Define Response</Title>\n {validationTooltip}\n </FlexContainer>\n\n <SelectContainer\n key=\"templateEditorType\"\n label=\"Response Template Equation Editor\"\n >\n <Select\n onChange={this.onChange('promptEquationEditor')}\n value={promptEquationEditor}\n MenuProps={{transitionDuration: { enter: 225, exit: 195 } }}\n >\n <MenuItem value=\"non-negative-integers\">Numeric - Non-Negative Integers</MenuItem>\n <MenuItem value=\"integers\">Numeric - Integers</MenuItem>\n <MenuItem value=\"decimals\">Numeric - Decimals</MenuItem>\n <MenuItem value=\"fractions\">Numeric - Fractions</MenuItem>\n <MenuItem value={1}>Grade 1 - 2</MenuItem>\n <MenuItem value={3}>Grade 3 - 5</MenuItem>\n <MenuItem value={6}>Grade 6 - 7</MenuItem>\n <MenuItem value={8}>Grade 8 - HS</MenuItem>\n <MenuItem value={'geometry'}>Geometry</MenuItem>\n <MenuItem value={'advanced-algebra'}>Advanced Algebra</MenuItem>\n <MenuItem value={'statistics'}>Statistics</MenuItem>\n <MenuItem value={'item-authoring'}>Item Authoring</MenuItem>\n </Select>\n </SelectContainer>\n\n <ResponseTemplate key=\"templateHolder\">\n <TemplateTitle>RESPONSE TEMPLATE</TemplateTitle>\n <MathToolbar\n classNames={classNames}\n allowAnswerBlock\n keypadMode={promptEquationEditor}\n controlledKeypad\n showKeypad={showKeypad}\n latex={prepareForStatic(expression) || ''}\n onChange={this.onChange('expression')}\n onFocus={this.onFocus}\n onDone={this.onDone}\n maxResponseAreas={maxResponseAreas}\n error={responseAreasError}\n />\n </ResponseTemplate>\n\n {responseAreasError && <ErrorText>{responseAreasError}</ErrorText>}\n </AdvancedResponse>\n )}\n\n <FlexContainer style={{ justifyContent: 'flex-start' }}>\n <Title>Define Correct Response</Title>\n {responseType === ResponseTypes.simple ? validationTooltip : null}\n </FlexContainer>\n\n <SelectContainer label=\"Equation Editor\">\n <Select onChange={this.onChange('equationEditor')} value={equationEditor} MenuProps={{transitionDuration: { enter: 225, exit: 195 } }}>\n <MenuItem value=\"non-negative-integers\">Numeric - Non-Negative Integers</MenuItem>\n <MenuItem value=\"integers\">Numeric - Integers</MenuItem>\n <MenuItem value=\"decimals\">Numeric - Decimals</MenuItem>\n <MenuItem value=\"fractions\">Numeric - Fractions</MenuItem>\n <MenuItem value={1}>Grade 1 - 2</MenuItem>\n <MenuItem value={3}>Grade 3 - 5</MenuItem>\n <MenuItem value={6}>Grade 6 - 7</MenuItem>\n <MenuItem value={8}>Grade 8 - HS</MenuItem>\n <MenuItem value={'geometry'}>Geometry</MenuItem>\n <MenuItem value={'advanced-algebra'}>Advanced Algebra</MenuItem>\n <MenuItem value={'statistics'}>Statistics</MenuItem>\n <MenuItem value={'item-authoring'}>Item Authoring</MenuItem>\n </Select>\n </SelectContainer>\n\n {responsesToUse.map((response, idx) => (\n <Response\n key={response.id}\n mode={equationEditor}\n response={response}\n defaultResponse={responseType === ResponseTypes.simple}\n onResponseChange={this.onResponseChange}\n index={idx}\n cIgnoreOrder={cIgnoreOrder}\n cAllowTrailingZeros={cAllowTrailingZeros}\n error={responsesErrors && responsesErrors[idx]}\n />\n ))}\n\n {rationaleEnabled && (\n <PromptHolder label={cRationale.label}>\n <EditableHtml\n markup={rationale || ''}\n onChange={this.onChange('rationale')}\n imageSupport={imageSupport}\n nonEmpty={false}\n error={rationaleError}\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(cRationale?.inputConfiguration, {\n ...baseInputConfiguration,\n math: {\n controlledKeypadMode: false,\n },\n })}\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 {rationaleError && <ErrorText>{rationaleError}</ErrorText>}\n </PromptHolder>\n )}\n </Container>\n );\n }\n}\n\nexport default GeneralConfigBlock;\n"],"mappings":"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","ignoreList":[]}
|
package/configure/lib/index.js
CHANGED
|
@@ -9,7 +9,7 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
|
|
|
9
9
|
var _react = _interopRequireDefault(require("react"));
|
|
10
10
|
var _client = require("react-dom/client");
|
|
11
11
|
var _configure = _interopRequireDefault(require("./configure"));
|
|
12
|
-
var
|
|
12
|
+
var _lodashEs = require("lodash-es");
|
|
13
13
|
var _pieConfigureEvents = require("@pie-framework/pie-configure-events");
|
|
14
14
|
var _debug = _interopRequireDefault(require("debug"));
|
|
15
15
|
var _defaults = _interopRequireDefault(require("./defaults"));
|
|
@@ -120,7 +120,7 @@ class MathInlineConfigure extends HTMLElement {
|
|
|
120
120
|
exports.default = MathInlineConfigure;
|
|
121
121
|
(0, _defineProperty2.default)(MathInlineConfigure, "createDefaultModel", (model = {}) => {
|
|
122
122
|
// making sure that defaults are set
|
|
123
|
-
if (!(0,
|
|
123
|
+
if (!(0, _lodashEs.isEmpty)(model.responses)) {
|
|
124
124
|
model.responses = model.responses.map(correctResponse => ({
|
|
125
125
|
...correctResponse,
|
|
126
126
|
validation: correctResponse.validation || _defaults.default.model.validationDefault,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_client","_configure","
|
|
1
|
+
{"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_client","_configure","_lodashEs","_pieConfigureEvents","_debug","_defaults","log","debug","MathInlineConfigure","HTMLElement","constructor","_root","_model","createDefaultModel","_configuration","defaults","configuration","model","m","_render","c","newConfiguration","language","enabled","languageChoices","options","length","value","settings","find","option","push","label","onModelChanged","dispatchEvent","ModelUpdatedEvent","onConfigurationChanged","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","default","_defineProperty2","isEmpty","responses","map","correctResponse","validation","validationDefault","allowTrailingZeros","allowTrailingZerosDefault","ignoreOrder","ignoreOrderDefault"],"sources":["../src/index.js"],"sourcesContent":["import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport Configure from './configure';\nimport { isEmpty } from 'lodash-es';\nimport {\n ModelUpdatedEvent,\n DeleteImageEvent,\n InsertImageEvent,\n InsertSoundEvent,\n DeleteSoundEvent,\n} from '@pie-framework/pie-configure-events';\nimport debug from 'debug';\n\nimport defaults from './defaults';\n\nconst log = debug('pie-elements:math-inline:configure');\n\nexport default class MathInlineConfigure extends HTMLElement {\n static createDefaultModel = (model = {}) => {\n // making sure that defaults are set\n if (!isEmpty(model.responses)) {\n model.responses = model.responses.map((correctResponse) => ({\n ...correctResponse,\n validation: correctResponse.validation || defaults.model.validationDefault,\n allowTrailingZeros: correctResponse.allowTrailingZeros || defaults.model.allowTrailingZerosDefault,\n ignoreOrder: correctResponse.ignoreOrder || defaults.model.ignoreOrderDefault || false,\n }));\n }\n\n return { ...defaults.model, ...model };\n };\n\n constructor() {\n super();\n this._root = null;\n this._model = MathInlineConfigure.createDefaultModel();\n this._configuration = defaults.configuration;\n }\n\n set model(m) {\n this._model = MathInlineConfigure.createDefaultModel(m);\n this._render();\n }\n\n set configuration(c) {\n const newConfiguration = {\n ...defaults.configuration,\n ...c,\n };\n\n this._configuration = newConfiguration;\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 this._render();\n }\n\n onModelChanged(model) {\n this._model = model;\n log('[onModelChanged]: ', this._model);\n this._render();\n\n this.dispatchEvent(new ModelUpdatedEvent(this._model));\n }\n\n onConfigurationChanged(c) {\n this._configuration = c;\n\n if (this._model) {\n this.onModelChanged(this._model);\n }\n\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\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":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,SAAA,GAAAH,OAAA;AACA,IAAAI,mBAAA,GAAAJ,OAAA;AAOA,IAAAK,MAAA,GAAAN,sBAAA,CAAAC,OAAA;AAEA,IAAAM,SAAA,GAAAP,sBAAA,CAAAC,OAAA;AAEA,MAAMO,GAAG,GAAG,IAAAC,cAAK,EAAC,oCAAoC,CAAC;AAExC,MAAMC,mBAAmB,SAASC,WAAW,CAAC;EAe3DC,WAAWA,CAAA,EAAG;IACZ,KAAK,CAAC,CAAC;IACP,IAAI,CAACC,KAAK,GAAG,IAAI;IACjB,IAAI,CAACC,MAAM,GAAGJ,mBAAmB,CAACK,kBAAkB,CAAC,CAAC;IACtD,IAAI,CAACC,cAAc,GAAGC,iBAAQ,CAACC,aAAa;EAC9C;EAEA,IAAIC,KAAKA,CAACC,CAAC,EAAE;IACX,IAAI,CAACN,MAAM,GAAGJ,mBAAmB,CAACK,kBAAkB,CAACK,CAAC,CAAC;IACvD,IAAI,CAACC,OAAO,CAAC,CAAC;EAChB;EAEA,IAAIH,aAAaA,CAACI,CAAC,EAAE;IACnB,MAAMC,gBAAgB,GAAG;MACvB,GAAGN,iBAAQ,CAACC,aAAa;MACzB,GAAGI;IACL,CAAC;IAED,IAAI,CAACN,cAAc,GAAGO,gBAAgB;;IAEtC;IACA;IACA;IACA;IACA,IAAIA,gBAAgB,EAAEC,QAAQ,EAAEC,OAAO,EAAE;MACvC,IAAIF,gBAAgB,EAAEG,eAAe,EAAEC,OAAO,EAAEC,MAAM,EAAE;QACtD,IAAI,CAACd,MAAM,CAACU,QAAQ,GAAGD,gBAAgB,EAAEG,eAAe,CAACC,OAAO,CAAC,CAAC,CAAC,CAACE,KAAK;MAC3E;IACF,CAAC,MAAM,IAAIN,gBAAgB,CAACC,QAAQ,CAACM,QAAQ,IAAI,IAAI,CAAChB,MAAM,CAACU,QAAQ,EAAE;MACrE,IAAI,CAACR,cAAc,CAACQ,QAAQ,CAACC,OAAO,GAAG,IAAI;MAE3C,IAAI,CAAC,IAAI,CAACT,cAAc,CAACU,eAAe,CAACC,OAAO,IAAI,CAAC,IAAI,CAACX,cAAc,CAACU,eAAe,CAACC,OAAO,CAACC,MAAM,EAAE;QACvG,IAAI,CAACZ,cAAc,CAACU,eAAe,CAACC,OAAO,GAAG,EAAE;MAClD;;MAEA;MACA;MACA,IAAI,CAAC,IAAI,CAACX,cAAc,CAACU,eAAe,CAACC,OAAO,CAACI,IAAI,CAACC,MAAM,IAAIA,MAAM,CAACH,KAAK,KAAK,IAAI,CAACf,MAAM,CAACU,QAAQ,CAAC,EAAE;QACtG,IAAI,CAACR,cAAc,CAACU,eAAe,CAACC,OAAO,CAACM,IAAI,CAAC;UAC/CJ,KAAK,EAAE,IAAI,CAACf,MAAM,CAACU,QAAQ;UAC3BU,KAAK,EAAE,IAAI,CAACpB,MAAM,CAACU;QACrB,CAAC,CAAC;MACJ;IACF,CAAC,MAAM;MACL,OAAO,IAAI,CAACV,MAAM,CAACU,QAAQ;IAC7B;IAEA,IAAI,CAACH,OAAO,CAAC,CAAC;EAChB;EAEAc,cAAcA,CAAChB,KAAK,EAAE;IACpB,IAAI,CAACL,MAAM,GAAGK,KAAK;IACnBX,GAAG,CAAC,oBAAoB,EAAE,IAAI,CAACM,MAAM,CAAC;IACtC,IAAI,CAACO,OAAO,CAAC,CAAC;IAEd,IAAI,CAACe,aAAa,CAAC,IAAIC,qCAAiB,CAAC,IAAI,CAACvB,MAAM,CAAC,CAAC;EACxD;EAEAwB,sBAAsBA,CAAChB,CAAC,EAAE;IACxB,IAAI,CAACN,cAAc,GAAGM,CAAC;IAEvB,IAAI,IAAI,CAACR,MAAM,EAAE;MACf,IAAI,CAACqB,cAAc,CAAC,IAAI,CAACrB,MAAM,CAAC;IAClC;IAEA,IAAI,CAACO,OAAO,CAAC,CAAC;EAChB;;EAEA;AACF;AACA;AACA;EACEkB,WAAWA,CAACC,OAAO,EAAE;IACnB,IAAI,CAACJ,aAAa,CAAC,IAAIK,oCAAgB,CAACD,OAAO,CAAC,CAAC;EACnD;EAEAE,aAAaA,CAACC,GAAG,EAAEC,IAAI,EAAE;IACvB,IAAI,CAACR,aAAa,CAAC,IAAIS,oCAAgB,CAACF,GAAG,EAAEC,IAAI,CAAC,CAAC;EACrD;EAEAE,WAAWA,CAACN,OAAO,EAAE;IACnB,IAAI,CAACJ,aAAa,CAAC,IAAIW,oCAAgB,CAACP,OAAO,CAAC,CAAC;EACnD;EAEAQ,aAAaA,CAACL,GAAG,EAAEC,IAAI,EAAE;IACvB,IAAI,CAACR,aAAa,CAAC,IAAIa,oCAAgB,CAACN,GAAG,EAAEC,IAAI,CAAC,CAAC;EACrD;EAEAvB,OAAOA,CAAA,EAAG;IACR,IAAI,IAAI,CAACP,MAAM,EAAE;MACf,MAAMoC,EAAE,gBAAGC,cAAK,CAACC,aAAa,CAACC,kBAAS,EAAE;QACxClB,cAAc,EAAE,IAAI,CAACA,cAAc,CAACmB,IAAI,CAAC,IAAI,CAAC;QAC9ChB,sBAAsB,EAAE,IAAI,CAACA,sBAAsB,CAACgB,IAAI,CAAC,IAAI,CAAC;QAC9DnC,KAAK,EAAE,IAAI,CAACL,MAAM;QAClBI,aAAa,EAAE,IAAI,CAACF,cAAc;QAClCuC,YAAY,EAAE;UACZC,GAAG,EAAE,IAAI,CAACjB,WAAW,CAACe,IAAI,CAAC,IAAI,CAAC;UAChCG,MAAM,EAAE,IAAI,CAACf,aAAa,CAACY,IAAI,CAAC,IAAI;QACtC,CAAC;QACDI,kBAAkB,EAAE;UAClBF,GAAG,EAAE,IAAI,CAACV,WAAW,CAACQ,IAAI,CAAC,IAAI,CAAC;UAChCG,MAAM,EAAE,IAAI,CAACT,aAAa,CAACM,IAAI,CAAC,IAAI;QACtC;MACF,CAAC,CAAC;MAEF,IAAI,CAAC,IAAI,CAACzC,KAAK,EAAE;QACf,IAAI,CAACA,KAAK,GAAG,IAAA8C,kBAAU,EAAC,IAAI,CAAC;MAC/B;MACA,IAAI,CAAC9C,KAAK,CAAC+C,MAAM,CAACV,EAAE,CAAC;IACvB;EACF;EAEAW,oBAAoBA,CAAA,EAAG;IACrB,IAAI,IAAI,CAAChD,KAAK,EAAE;MACd,IAAI,CAACA,KAAK,CAACiD,OAAO,CAAC,CAAC;IACtB;EACF;AACF;AAACC,OAAA,CAAAC,OAAA,GAAAtD,mBAAA;AAAA,IAAAuD,gBAAA,CAAAD,OAAA,EApIoBtD,mBAAmB,wBACV,CAACS,KAAK,GAAG,CAAC,CAAC,KAAK;EAC1C;EACA,IAAI,CAAC,IAAA+C,iBAAO,EAAC/C,KAAK,CAACgD,SAAS,CAAC,EAAE;IAC7BhD,KAAK,CAACgD,SAAS,GAAGhD,KAAK,CAACgD,SAAS,CAACC,GAAG,CAAEC,eAAe,KAAM;MAC1D,GAAGA,eAAe;MAClBC,UAAU,EAAED,eAAe,CAACC,UAAU,IAAIrD,iBAAQ,CAACE,KAAK,CAACoD,iBAAiB;MAC1EC,kBAAkB,EAAEH,eAAe,CAACG,kBAAkB,IAAIvD,iBAAQ,CAACE,KAAK,CAACsD,yBAAyB;MAClGC,WAAW,EAAEL,eAAe,CAACK,WAAW,IAAIzD,iBAAQ,CAACE,KAAK,CAACwD,kBAAkB,IAAI;IACnF,CAAC,CAAC,CAAC;EACL;EAEA,OAAO;IAAE,GAAG1D,iBAAQ,CAACE,KAAK;IAAE,GAAGA;EAAM,CAAC;AACxC,CAAC","ignoreList":[]}
|
package/configure/package.json
CHANGED
|
@@ -13,17 +13,17 @@
|
|
|
13
13
|
"@mui/material": "^7.3.4",
|
|
14
14
|
"@pie-framework/mathquill": "^1.1.3",
|
|
15
15
|
"@pie-framework/pie-configure-events": "^1.3.0",
|
|
16
|
-
"@pie-lib/config-ui": "12.1.
|
|
17
|
-
"@pie-lib/editable-html-tip-tap": "1.1.
|
|
18
|
-
"@pie-lib/math-rendering": "4.1.
|
|
19
|
-
"@pie-lib/math-toolbar": "2.1.
|
|
20
|
-
"@pie-lib/render-ui": "5.1.
|
|
21
|
-
"@pie-lib/test-utils": "1.1.
|
|
16
|
+
"@pie-lib/config-ui": "12.1.1-next.3",
|
|
17
|
+
"@pie-lib/editable-html-tip-tap": "1.1.1-next.3",
|
|
18
|
+
"@pie-lib/math-rendering": "4.1.1-next.1",
|
|
19
|
+
"@pie-lib/math-toolbar": "2.1.1-next.1",
|
|
20
|
+
"@pie-lib/render-ui": "5.1.1-next.1",
|
|
21
|
+
"@pie-lib/test-utils": "1.1.1-next.1",
|
|
22
22
|
"classnames": "^2.2.5",
|
|
23
|
-
"debug": "^
|
|
23
|
+
"debug": "^4.1.1",
|
|
24
24
|
"prop-types": "^15.6.2",
|
|
25
|
-
"react": "18.
|
|
26
|
-
"react-dom": "18.
|
|
25
|
+
"react": "18.3.1",
|
|
26
|
+
"react-dom": "18.3.1"
|
|
27
27
|
},
|
|
28
28
|
"license": "ISC"
|
|
29
29
|
}
|
package/controller/lib/index.js
CHANGED
|
@@ -8,7 +8,7 @@ exports.createCorrectResponseSession = void 0;
|
|
|
8
8
|
exports.createDefaultModel = createDefaultModel;
|
|
9
9
|
exports.validate = exports.outcome = exports.normalize = exports.model = void 0;
|
|
10
10
|
var _debug = _interopRequireDefault(require("debug"));
|
|
11
|
-
var
|
|
11
|
+
var _lodashEs = require("lodash-es");
|
|
12
12
|
var _feedback = require("@pie-lib/feedback");
|
|
13
13
|
var _utils = require("./utils");
|
|
14
14
|
var _translator = _interopRequireDefault(require("@pie-lib/translator"));
|
|
@@ -94,7 +94,7 @@ const outcome = (question, session, env) => {
|
|
|
94
94
|
completed: undefined
|
|
95
95
|
});
|
|
96
96
|
} else {
|
|
97
|
-
if (!session || (0,
|
|
97
|
+
if (!session || (0, _lodashEs.isEmpty)(session)) {
|
|
98
98
|
resolve({
|
|
99
99
|
score: 0,
|
|
100
100
|
empty: true
|
|
@@ -111,7 +111,7 @@ const outcome = (question, session, env) => {
|
|
|
111
111
|
exports.outcome = outcome;
|
|
112
112
|
const normalize = question => {
|
|
113
113
|
// making sure that defaults are set
|
|
114
|
-
if (!(0,
|
|
114
|
+
if (!(0, _lodashEs.isEmpty)(question.responses)) {
|
|
115
115
|
question.responses = question.responses.map(correctResponse => ({
|
|
116
116
|
...correctResponse,
|
|
117
117
|
validation: correctResponse.validation || question.validationDefault,
|
|
@@ -303,7 +303,7 @@ const validate = (model = {}, config = {}) => {
|
|
|
303
303
|
}
|
|
304
304
|
}
|
|
305
305
|
});
|
|
306
|
-
if (!(0,
|
|
306
|
+
if (!(0, _lodashEs.isEmpty)(responseError) || !(0, _lodashEs.isEmpty)(alternatesErrors)) {
|
|
307
307
|
responsesErrors[index] = {
|
|
308
308
|
...responseError,
|
|
309
309
|
...alternatesErrors
|
|
@@ -318,7 +318,7 @@ const validate = (model = {}, config = {}) => {
|
|
|
318
318
|
errors.responseAreasError = 'There should be at least 1 response area defined.';
|
|
319
319
|
}
|
|
320
320
|
}
|
|
321
|
-
if (!(0,
|
|
321
|
+
if (!(0, _lodashEs.isEmpty)(responsesErrors)) {
|
|
322
322
|
errors.responsesErrors = responsesErrors;
|
|
323
323
|
}
|
|
324
324
|
return errors;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_debug","_interopRequireDefault","require","_isEmpty","_feedback","_utils","_translator","_defaults","mv","_interopRequireWildcard","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","translator","Translator","log","debug","getResponseCorrectness","model","answerItem","isOutcome","correctResponses","responses","isAdvanced","responseType","ResponseTypes","advanced","correctness","score","correct","isAnswerCorrect","getIsAnswerCorrect","slice","correctnessObject","correctResponseItems","answerCorrect","forEach","correctResponse","opts","mode","validation","defaults","validationDefault","literal","allowTrailingZeros","ignoreOrder","acceptedValues","answer","concat","keys","alternates","map","alternateId","length","latexEqual","getCorrectness","question","env","session","completeAnswer","response","undefined","createDefaultModel","Promise","resolve","config","outcome","completed","isEmpty","empty","exports","normalize","allowTrailingZerosDefault","ignoreOrderDefault","normalizedQuestion","extraCSSRules","language","simple","feedback","feedbackEnabled","getActualFeedbackForCorrectness","out","disabled","view","note","lng","showNote","some","role","rationale","rationaleEnabled","teacherInstructions","teacherInstructionsEnabled","prompt","promptEnabled","escape","string","replace","simpleSessionResponse","id","removeTrailingEscape","str","endsWith","advancedSessionResponse","answers","expression","RESPONSE_TOKEN","split","to","tt","join","m","match","RegExp","count","console","shift","value","trim","error","toString","createCorrectResponseSession","toLowerCase","getInnerText","html","replaceAll","getContent","validate","maxResponseAreas","responsesErrors","errors","field","required","index","reversedAlternates","entries","reverse","alternatesErrors","responseError","key","identicalAnswer","val","nbOfResponseAreas","responseAreasError"],"sources":["../src/index.js"],"sourcesContent":["import debug from 'debug';\nimport isEmpty from 'lodash/isEmpty';\nimport { getActualFeedbackForCorrectness } from '@pie-lib/feedback';\n\nimport { ResponseTypes } from './utils';\nimport Translator from '@pie-lib/translator';\n\nconst { translator } = Translator;\nimport defaults from './defaults';\n\nimport * as mv from '@pie-framework/math-validation';\n\nconst log = debug('@pie-element:math-inline:controller');\n\nconst getResponseCorrectness = (model, answerItem, isOutcome) => {\n const correctResponses = model.responses;\n const isAdvanced = model.responseType === ResponseTypes.advanced;\n\n if (!answerItem) {\n return {\n correctness: 'unanswered',\n score: isOutcome ? 0 : '0%',\n correct: false,\n };\n }\n\n const isAnswerCorrect = getIsAnswerCorrect(isAdvanced ? correctResponses : correctResponses.slice(0, 1), answerItem);\n\n const correctnessObject = {\n correctness: 'incorrect',\n score: isOutcome ? 0 : '0%',\n correct: false,\n };\n\n if (isAnswerCorrect) {\n correctnessObject.correctness = 'correct';\n correctnessObject.score = isOutcome ? 1 : '100%';\n correctnessObject.correct = true;\n }\n\n return correctnessObject;\n};\n\nfunction getIsAnswerCorrect(correctResponseItems, answerItem) {\n let answerCorrect = false;\n\n (correctResponseItems || []).forEach((correctResponse) => {\n if (answerCorrect) return;\n\n const opts = {\n mode: correctResponse.validation || defaults.validationDefault,\n };\n\n if (opts.mode === 'literal') {\n opts.literal = {\n allowTrailingZeros: correctResponse.allowTrailingZeros || false,\n ignoreOrder: correctResponse.ignoreOrder || false,\n };\n }\n\n const acceptedValues = [correctResponse.answer].concat(\n Object.keys(correctResponse.alternates || {}).map((alternateId) => correctResponse.alternates[alternateId]),\n );\n\n for (let i = 0; i < acceptedValues.length; i++) {\n try {\n if (mv.latexEqual(answerItem, acceptedValues[i], opts)) {\n answerCorrect = true;\n break;\n }\n } catch (e) {\n log('Parse failure when evaluating math', acceptedValues[i], answerItem, e);\n continue;\n }\n }\n });\n\n return answerCorrect;\n}\n\nconst getCorrectness = (question, env, session, isOutcome) => {\n if (env.mode === 'evaluate') {\n return getResponseCorrectness(\n question,\n question.responseType === ResponseTypes.advanced\n ? (session && session.completeAnswer) || ''\n : session && session.response,\n isOutcome,\n );\n }\n\n return undefined;\n};\n\nexport function createDefaultModel(model = {}) {\n return new Promise((resolve) => {\n resolve({\n config: {\n ...defaults,\n ...model,\n },\n });\n });\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 } else {\n const correctness = getCorrectness(question, env, session, true);\n\n resolve({ score: correctness.score });\n }\n }\n });\n};\n\nexport const normalize = (question) => {\n // making sure that defaults are set\n if (!isEmpty(question.responses)) {\n question.responses = question.responses.map((correctResponse) => ({\n ...correctResponse,\n validation: correctResponse.validation || question.validationDefault,\n allowTrailingZeros: correctResponse.allowTrailingZeros || question.allowTrailingZerosDefault,\n ignoreOrder: correctResponse.ignoreOrder || question.ignoreOrderDefault,\n }));\n }\n\n return { ...defaults, ...question };\n};\n\nexport const model = (question, session, env) =>\n new Promise((resolve) => {\n const normalizedQuestion = normalize(question);\n const correctness = getCorrectness(normalizedQuestion, env, session);\n const { extraCSSRules, responses, language, ...config } = normalizedQuestion;\n\n config.responses = config.responseType === ResponseTypes.simple ? responses.slice(0, 1) : responses;\n\n const feedback =\n env.mode === 'evaluate' && normalizedQuestion.feedbackEnabled\n ? getActualFeedbackForCorrectness(correctness?.correctness, normalizedQuestion.feedback)\n : undefined;\n\n const out = {\n extraCSSRules,\n config,\n correctness,\n feedback,\n disabled: env.mode !== 'gather',\n view: env.mode === 'view',\n };\n\n const note = normalizedQuestion.note || translator.t('mathInline.primaryCorrectWithAlternates', { lng: language });\n const showNote =\n config?.responses?.length > 1 ||\n (config?.responses || []).some(\n (response) => response.validation === 'symbolic' || Object.keys(response.alternates || {}).length > 0,\n );\n\n if (env.mode === 'evaluate') {\n out.correctResponse = {};\n out.config.showNote = showNote;\n out.config.note = note;\n } else {\n out.config.responses = [];\n out.config.showNote = false;\n }\n\n if (env.role === 'instructor' && (env.mode === 'view' || env.mode === 'evaluate')) {\n out.rationale = normalizedQuestion.rationaleEnabled ? normalizedQuestion.rationale : null;\n out.teacherInstructions = normalizedQuestion.teacherInstructionsEnabled\n ? normalizedQuestion.teacherInstructions\n : null;\n } else {\n out.rationale = null;\n out.teacherInstructions = null;\n out.config.rationale = null;\n out.config.teacherInstructions = null;\n }\n\n out.config.env = env;\n out.config.prompt = normalizedQuestion.promptEnabled ? normalizedQuestion.prompt : null;\n out.language = language;\n\n log('out: ', out);\n resolve(out);\n });\n\nconst escape = (string) => string.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'); // $& means the whole matched string\n\nconst simpleSessionResponse = (question) =>\n new Promise((resolve) => {\n const { responses, id } = question;\n const { answer } = responses && responses.length ? responses[0] : {};\n\n resolve({\n id,\n response: answer || '',\n completeAnswer: answer || '',\n });\n });\n\n// use this for items like E672793\nconst removeTrailingEscape = (str) => (str.endsWith('\\\\') ? str.slice(0, -1) : str);\n\nconst advancedSessionResponse = (question) =>\n new Promise((resolve) => {\n const { responses, id } = question;\n const { answer } = responses && responses.length ? responses[0] : {};\n\n if (!answer) {\n resolve({\n id,\n answers: {},\n completeAnswer: '',\n });\n\n return;\n }\n\n try {\n const e = question.expression;\n const RESPONSE_TOKEN = /\\\\{\\\\{\\s*response\\s*\\\\}\\\\}/g;\n\n const o = escape(e).split(RESPONSE_TOKEN);\n const to = o.map((t) => (t === '' ? t : t.replace(/\\s+/g, () => '\\\\s*')));\n const tt = to.join('(.*)');\n\n const m = answer.match(new RegExp(tt));\n\n const count = o.length - 1;\n\n if (!m) {\n resolve({\n id,\n answers: {},\n completeAnswer: answer,\n });\n\n // eslint-disable-next-line no-console\n console.log(`can not find match: ${o} in ${answer}`);\n\n return;\n }\n\n m.shift();\n\n const answers = {};\n\n for (var i = 0; i < count; i++) {\n answers[`r${i + 1}`] = { value: removeTrailingEscape(m[i].trim()) };\n }\n\n resolve({\n id,\n answers,\n completeAnswer: answer,\n });\n } catch (e) {\n resolve({\n id,\n answers: {},\n completeAnswer: answer,\n });\n // eslint-disable-next-line no-console\n console.error(e.toString());\n }\n });\n\nexport const createCorrectResponseSession = (question, env) => {\n if (env.mode === 'evaluate' || env.role !== 'instructor') {\n // eslint-disable-next-line no-console\n console.error('can not create correct response session if mode is evaluate or role is not instructor');\n\n return Promise.resolve(null);\n }\n\n if ((question.responseType || '').toLowerCase() === 'simple') {\n return simpleSessionResponse(question, env);\n } else {\n return advancedSessionResponse(question, env);\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 { expression = '', responses, responseType } = model;\n const { maxResponseAreas } = config;\n const responsesErrors = {};\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 (responses || []).forEach((response, index) => {\n const { answer } = response;\n const reversedAlternates = [...Object.entries(response.alternates || {})].reverse();\n const alternatesErrors = {};\n const responseError = {};\n\n if (answer === '') {\n responseError.answer = 'Content should not be empty.';\n }\n\n reversedAlternates.forEach(([key, value], index) => {\n if (value === '') {\n alternatesErrors[key] = 'Content should not be empty.';\n } else {\n const identicalAnswer =\n answer === value || reversedAlternates.slice(index + 1).some(([, val]) => val === value);\n\n if (identicalAnswer) {\n alternatesErrors[key] = 'Content should be unique.';\n }\n }\n });\n\n if (!isEmpty(responseError) || !isEmpty(alternatesErrors)) {\n responsesErrors[index] = { ...responseError, ...alternatesErrors };\n }\n });\n\n if (responseType === 'Advanced Multi') {\n const nbOfResponseAreas = (expression.match(/\\{\\{response\\}\\}/g) || []).length;\n\n if (nbOfResponseAreas > maxResponseAreas) {\n errors.responseAreasError = `No more than ${maxResponseAreas} response areas should be defined.`;\n } else if (nbOfResponseAreas < 1) {\n errors.responseAreasError = 'There should be at least 1 response area defined.';\n }\n }\n\n if (!isEmpty(responsesErrors)) {\n errors.responsesErrors = responsesErrors;\n }\n\n return errors;\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["_debug","_interopRequireDefault","require","_lodashEs","_feedback","_utils","_translator","_defaults","mv","_interopRequireWildcard","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","translator","Translator","log","debug","getResponseCorrectness","model","answerItem","isOutcome","correctResponses","responses","isAdvanced","responseType","ResponseTypes","advanced","correctness","score","correct","isAnswerCorrect","getIsAnswerCorrect","slice","correctnessObject","correctResponseItems","answerCorrect","forEach","correctResponse","opts","mode","validation","defaults","validationDefault","literal","allowTrailingZeros","ignoreOrder","acceptedValues","answer","concat","keys","alternates","map","alternateId","length","latexEqual","getCorrectness","question","env","session","completeAnswer","response","undefined","createDefaultModel","Promise","resolve","config","outcome","completed","isEmpty","empty","exports","normalize","allowTrailingZerosDefault","ignoreOrderDefault","normalizedQuestion","extraCSSRules","language","simple","feedback","feedbackEnabled","getActualFeedbackForCorrectness","out","disabled","view","note","lng","showNote","some","role","rationale","rationaleEnabled","teacherInstructions","teacherInstructionsEnabled","prompt","promptEnabled","escape","string","replace","simpleSessionResponse","id","removeTrailingEscape","str","endsWith","advancedSessionResponse","answers","expression","RESPONSE_TOKEN","split","to","tt","join","m","match","RegExp","count","console","shift","value","trim","error","toString","createCorrectResponseSession","toLowerCase","getInnerText","html","replaceAll","getContent","validate","maxResponseAreas","responsesErrors","errors","field","required","index","reversedAlternates","entries","reverse","alternatesErrors","responseError","key","identicalAnswer","val","nbOfResponseAreas","responseAreasError"],"sources":["../src/index.js"],"sourcesContent":["import debug from 'debug';\nimport { isEmpty } from 'lodash-es';\nimport { getActualFeedbackForCorrectness } from '@pie-lib/feedback';\n\nimport { ResponseTypes } from './utils';\nimport Translator from '@pie-lib/translator';\n\nconst { translator } = Translator;\nimport defaults from './defaults';\n\nimport * as mv from '@pie-framework/math-validation';\n\nconst log = debug('@pie-element:math-inline:controller');\n\nconst getResponseCorrectness = (model, answerItem, isOutcome) => {\n const correctResponses = model.responses;\n const isAdvanced = model.responseType === ResponseTypes.advanced;\n\n if (!answerItem) {\n return {\n correctness: 'unanswered',\n score: isOutcome ? 0 : '0%',\n correct: false,\n };\n }\n\n const isAnswerCorrect = getIsAnswerCorrect(isAdvanced ? correctResponses : correctResponses.slice(0, 1), answerItem);\n\n const correctnessObject = {\n correctness: 'incorrect',\n score: isOutcome ? 0 : '0%',\n correct: false,\n };\n\n if (isAnswerCorrect) {\n correctnessObject.correctness = 'correct';\n correctnessObject.score = isOutcome ? 1 : '100%';\n correctnessObject.correct = true;\n }\n\n return correctnessObject;\n};\n\nfunction getIsAnswerCorrect(correctResponseItems, answerItem) {\n let answerCorrect = false;\n\n (correctResponseItems || []).forEach((correctResponse) => {\n if (answerCorrect) return;\n\n const opts = {\n mode: correctResponse.validation || defaults.validationDefault,\n };\n\n if (opts.mode === 'literal') {\n opts.literal = {\n allowTrailingZeros: correctResponse.allowTrailingZeros || false,\n ignoreOrder: correctResponse.ignoreOrder || false,\n };\n }\n\n const acceptedValues = [correctResponse.answer].concat(\n Object.keys(correctResponse.alternates || {}).map((alternateId) => correctResponse.alternates[alternateId]),\n );\n\n for (let i = 0; i < acceptedValues.length; i++) {\n try {\n if (mv.latexEqual(answerItem, acceptedValues[i], opts)) {\n answerCorrect = true;\n break;\n }\n } catch (e) {\n log('Parse failure when evaluating math', acceptedValues[i], answerItem, e);\n continue;\n }\n }\n });\n\n return answerCorrect;\n}\n\nconst getCorrectness = (question, env, session, isOutcome) => {\n if (env.mode === 'evaluate') {\n return getResponseCorrectness(\n question,\n question.responseType === ResponseTypes.advanced\n ? (session && session.completeAnswer) || ''\n : session && session.response,\n isOutcome,\n );\n }\n\n return undefined;\n};\n\nexport function createDefaultModel(model = {}) {\n return new Promise((resolve) => {\n resolve({\n config: {\n ...defaults,\n ...model,\n },\n });\n });\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 } else {\n const correctness = getCorrectness(question, env, session, true);\n\n resolve({ score: correctness.score });\n }\n }\n });\n};\n\nexport const normalize = (question) => {\n // making sure that defaults are set\n if (!isEmpty(question.responses)) {\n question.responses = question.responses.map((correctResponse) => ({\n ...correctResponse,\n validation: correctResponse.validation || question.validationDefault,\n allowTrailingZeros: correctResponse.allowTrailingZeros || question.allowTrailingZerosDefault,\n ignoreOrder: correctResponse.ignoreOrder || question.ignoreOrderDefault,\n }));\n }\n\n return { ...defaults, ...question };\n};\n\nexport const model = (question, session, env) =>\n new Promise((resolve) => {\n const normalizedQuestion = normalize(question);\n const correctness = getCorrectness(normalizedQuestion, env, session);\n const { extraCSSRules, responses, language, ...config } = normalizedQuestion;\n\n config.responses = config.responseType === ResponseTypes.simple ? responses.slice(0, 1) : responses;\n\n const feedback =\n env.mode === 'evaluate' && normalizedQuestion.feedbackEnabled\n ? getActualFeedbackForCorrectness(correctness?.correctness, normalizedQuestion.feedback)\n : undefined;\n\n const out = {\n extraCSSRules,\n config,\n correctness,\n feedback,\n disabled: env.mode !== 'gather',\n view: env.mode === 'view',\n };\n\n const note = normalizedQuestion.note || translator.t('mathInline.primaryCorrectWithAlternates', { lng: language });\n const showNote =\n config?.responses?.length > 1 ||\n (config?.responses || []).some(\n (response) => response.validation === 'symbolic' || Object.keys(response.alternates || {}).length > 0,\n );\n\n if (env.mode === 'evaluate') {\n out.correctResponse = {};\n out.config.showNote = showNote;\n out.config.note = note;\n } else {\n out.config.responses = [];\n out.config.showNote = false;\n }\n\n if (env.role === 'instructor' && (env.mode === 'view' || env.mode === 'evaluate')) {\n out.rationale = normalizedQuestion.rationaleEnabled ? normalizedQuestion.rationale : null;\n out.teacherInstructions = normalizedQuestion.teacherInstructionsEnabled\n ? normalizedQuestion.teacherInstructions\n : null;\n } else {\n out.rationale = null;\n out.teacherInstructions = null;\n out.config.rationale = null;\n out.config.teacherInstructions = null;\n }\n\n out.config.env = env;\n out.config.prompt = normalizedQuestion.promptEnabled ? normalizedQuestion.prompt : null;\n out.language = language;\n\n log('out: ', out);\n resolve(out);\n });\n\nconst escape = (string) => string.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'); // $& means the whole matched string\n\nconst simpleSessionResponse = (question) =>\n new Promise((resolve) => {\n const { responses, id } = question;\n const { answer } = responses && responses.length ? responses[0] : {};\n\n resolve({\n id,\n response: answer || '',\n completeAnswer: answer || '',\n });\n });\n\n// use this for items like E672793\nconst removeTrailingEscape = (str) => (str.endsWith('\\\\') ? str.slice(0, -1) : str);\n\nconst advancedSessionResponse = (question) =>\n new Promise((resolve) => {\n const { responses, id } = question;\n const { answer } = responses && responses.length ? responses[0] : {};\n\n if (!answer) {\n resolve({\n id,\n answers: {},\n completeAnswer: '',\n });\n\n return;\n }\n\n try {\n const e = question.expression;\n const RESPONSE_TOKEN = /\\\\{\\\\{\\s*response\\s*\\\\}\\\\}/g;\n\n const o = escape(e).split(RESPONSE_TOKEN);\n const to = o.map((t) => (t === '' ? t : t.replace(/\\s+/g, () => '\\\\s*')));\n const tt = to.join('(.*)');\n\n const m = answer.match(new RegExp(tt));\n\n const count = o.length - 1;\n\n if (!m) {\n resolve({\n id,\n answers: {},\n completeAnswer: answer,\n });\n\n // eslint-disable-next-line no-console\n console.log(`can not find match: ${o} in ${answer}`);\n\n return;\n }\n\n m.shift();\n\n const answers = {};\n\n for (var i = 0; i < count; i++) {\n answers[`r${i + 1}`] = { value: removeTrailingEscape(m[i].trim()) };\n }\n\n resolve({\n id,\n answers,\n completeAnswer: answer,\n });\n } catch (e) {\n resolve({\n id,\n answers: {},\n completeAnswer: answer,\n });\n // eslint-disable-next-line no-console\n console.error(e.toString());\n }\n });\n\nexport const createCorrectResponseSession = (question, env) => {\n if (env.mode === 'evaluate' || env.role !== 'instructor') {\n // eslint-disable-next-line no-console\n console.error('can not create correct response session if mode is evaluate or role is not instructor');\n\n return Promise.resolve(null);\n }\n\n if ((question.responseType || '').toLowerCase() === 'simple') {\n return simpleSessionResponse(question, env);\n } else {\n return advancedSessionResponse(question, env);\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 { expression = '', responses, responseType } = model;\n const { maxResponseAreas } = config;\n const responsesErrors = {};\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 (responses || []).forEach((response, index) => {\n const { answer } = response;\n const reversedAlternates = [...Object.entries(response.alternates || {})].reverse();\n const alternatesErrors = {};\n const responseError = {};\n\n if (answer === '') {\n responseError.answer = 'Content should not be empty.';\n }\n\n reversedAlternates.forEach(([key, value], index) => {\n if (value === '') {\n alternatesErrors[key] = 'Content should not be empty.';\n } else {\n const identicalAnswer =\n answer === value || reversedAlternates.slice(index + 1).some(([, val]) => val === value);\n\n if (identicalAnswer) {\n alternatesErrors[key] = 'Content should be unique.';\n }\n }\n });\n\n if (!isEmpty(responseError) || !isEmpty(alternatesErrors)) {\n responsesErrors[index] = { ...responseError, ...alternatesErrors };\n }\n });\n\n if (responseType === 'Advanced Multi') {\n const nbOfResponseAreas = (expression.match(/\\{\\{response\\}\\}/g) || []).length;\n\n if (nbOfResponseAreas > maxResponseAreas) {\n errors.responseAreasError = `No more than ${maxResponseAreas} response areas should be defined.`;\n } else if (nbOfResponseAreas < 1) {\n errors.responseAreasError = 'There should be at least 1 response area defined.';\n }\n }\n\n if (!isEmpty(responsesErrors)) {\n errors.responsesErrors = responsesErrors;\n }\n\n return errors;\n};\n"],"mappings":"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","ignoreList":[]}
|
package/controller/package.json
CHANGED
|
@@ -10,10 +10,10 @@
|
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@pie-framework/math-validation": "^1.4.2",
|
|
13
|
-
"@pie-lib/feedback": "1.1.
|
|
14
|
-
"@pie-lib/translator": "3.1.
|
|
15
|
-
"debug": "^
|
|
16
|
-
"lodash": "^4.17.
|
|
13
|
+
"@pie-lib/feedback": "1.1.1-next.1",
|
|
14
|
+
"@pie-lib/translator": "3.1.1-next.1",
|
|
15
|
+
"debug": "^4.1.1",
|
|
16
|
+
"lodash-es": "^4.17.23"
|
|
17
17
|
},
|
|
18
18
|
"devDependencies": {
|
|
19
19
|
"babel-jest": "^29.7.0",
|
package/lib/index.js
CHANGED
|
@@ -14,7 +14,7 @@ exports.default = void 0;
|
|
|
14
14
|
var _react = _interopRequireDefault(require("react"));
|
|
15
15
|
var _client = require("react-dom/client");
|
|
16
16
|
var _debug = _interopRequireDefault(require("debug"));
|
|
17
|
-
var
|
|
17
|
+
var _lodashEs = require("lodash-es");
|
|
18
18
|
var _piePlayerEvents = require("@pie-framework/pie-player-events");
|
|
19
19
|
var _defaults = _interopRequireDefault(require("../configure/lib/defaults"));
|
|
20
20
|
var _main = _interopRequireDefault(require("./main"));
|
|
@@ -24,7 +24,7 @@ class MathInline extends HTMLElement {
|
|
|
24
24
|
super();
|
|
25
25
|
this._root = null;
|
|
26
26
|
this._configuration = _defaults.default.configuration;
|
|
27
|
-
this.sessionChangedEventCaller =
|
|
27
|
+
this.sessionChangedEventCaller = (0, _lodashEs.debounce)(() => {
|
|
28
28
|
this.dispatchEvent(new _piePlayerEvents.SessionChangedEvent(this.tagName.toLowerCase(), true));
|
|
29
29
|
}, 1000);
|
|
30
30
|
}
|