@pie-element/graphing 3.5.4-next.672 → 3.5.4-next.721
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/configure.js +12 -5
- package/configure/lib/configure.js.map +1 -1
- package/configure/lib/correct-response.js +1 -1
- package/configure/lib/defaults.js +5 -0
- package/configure/lib/defaults.js.map +1 -1
- package/configure/lib/graphing-config.js +2 -2
- package/configure/lib/index.js +2 -2
- package/controller/lib/index.js +4 -3
- package/controller/lib/index.js.map +1 -1
- package/controller/lib/utils.js +3 -3
- package/docs/config-schema.json +16 -0
- package/docs/config-schema.json.md +12 -0
- package/docs/pie-schema.json +6 -0
- package/docs/pie-schema.json.md +4 -0
- package/lib/main.js +2 -2
- package/package.json +2 -2
|
@@ -39,9 +39,9 @@ var _graphingConfig = _interopRequireDefault(require("./graphing-config"));
|
|
|
39
39
|
|
|
40
40
|
var _correctResponse = _interopRequireDefault(require("./correct-response"));
|
|
41
41
|
|
|
42
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
42
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
43
43
|
|
|
44
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
44
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
45
45
|
|
|
46
46
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
47
47
|
|
|
@@ -184,6 +184,8 @@ var Configure = /*#__PURE__*/function (_React$Component) {
|
|
|
184
184
|
teacherInstructions = _ref2$teacherInstruct === void 0 ? {} : _ref2$teacherInstruct,
|
|
185
185
|
_ref2$coordinatesOnHo = _ref2.coordinatesOnHover,
|
|
186
186
|
coordinatesOnHover = _ref2$coordinatesOnHo === void 0 ? {} : _ref2$coordinatesOnHo,
|
|
187
|
+
_ref2$spellCheck = _ref2.spellCheck,
|
|
188
|
+
spellCheck = _ref2$spellCheck === void 0 ? {} : _ref2$spellCheck,
|
|
187
189
|
_ref2$prompt = _ref2.prompt,
|
|
188
190
|
prompt = _ref2$prompt === void 0 ? {} : _ref2$prompt,
|
|
189
191
|
_ref2$authoring = _ref2.authoring,
|
|
@@ -194,7 +196,8 @@ var Configure = /*#__PURE__*/function (_React$Component) {
|
|
|
194
196
|
var _ref3 = model || {},
|
|
195
197
|
teacherInstructionsEnabled = _ref3.teacherInstructionsEnabled,
|
|
196
198
|
promptEnabled = _ref3.promptEnabled,
|
|
197
|
-
rationaleEnabled = _ref3.rationaleEnabled
|
|
199
|
+
rationaleEnabled = _ref3.rationaleEnabled,
|
|
200
|
+
spellCheckEnabled = _ref3.spellCheckEnabled;
|
|
198
201
|
|
|
199
202
|
return /*#__PURE__*/_react["default"].createElement(_configUi.layout.ConfigLayout, {
|
|
200
203
|
settings: /*#__PURE__*/_react["default"].createElement(Panel, {
|
|
@@ -221,6 +224,7 @@ var Configure = /*#__PURE__*/function (_React$Component) {
|
|
|
221
224
|
studentInstructionsEnabled: studentInstructions.settings && toggle(studentInstructions.label),
|
|
222
225
|
promptEnabled: prompt.settings && toggle(prompt.label),
|
|
223
226
|
rationaleEnabled: rationale.settings && toggle(rationale.label),
|
|
227
|
+
spellCheckEnabled: spellCheck.settings && toggle(spellCheck.label),
|
|
224
228
|
scoringType: scoringType.settings && radio(scoringType.label, ['dichotomous', 'partial scoring'])
|
|
225
229
|
}
|
|
226
230
|
}
|
|
@@ -238,7 +242,8 @@ var Configure = /*#__PURE__*/function (_React$Component) {
|
|
|
238
242
|
markup: model.teacherInstructions || '',
|
|
239
243
|
onChange: this.onTeacherInstructionsChange,
|
|
240
244
|
imageSupport: imageSupport,
|
|
241
|
-
nonEmpty: false
|
|
245
|
+
nonEmpty: false,
|
|
246
|
+
spellCheck: spellCheckEnabled
|
|
242
247
|
})), promptEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
|
|
243
248
|
label: prompt.label,
|
|
244
249
|
className: classes.promptHolder
|
|
@@ -248,6 +253,7 @@ var Configure = /*#__PURE__*/function (_React$Component) {
|
|
|
248
253
|
onChange: this.onPromptChange,
|
|
249
254
|
imageSupport: imageSupport,
|
|
250
255
|
nonEmpty: false,
|
|
256
|
+
spellCheck: spellCheckEnabled,
|
|
251
257
|
disableUnderline: true
|
|
252
258
|
})), rationaleEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
|
|
253
259
|
label: rationale.label || 'Rationale',
|
|
@@ -256,7 +262,8 @@ var Configure = /*#__PURE__*/function (_React$Component) {
|
|
|
256
262
|
className: classes.prompt,
|
|
257
263
|
markup: model.rationale || '',
|
|
258
264
|
onChange: this.onRationaleChange,
|
|
259
|
-
imageSupport: imageSupport
|
|
265
|
+
imageSupport: imageSupport,
|
|
266
|
+
spellCheck: spellCheckEnabled
|
|
260
267
|
})), /*#__PURE__*/_react["default"].createElement(_graphingConfig["default"], {
|
|
261
268
|
authoringEnabled: authoring && authoring.enabled,
|
|
262
269
|
config: config,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/configure.jsx"],"names":["Panel","settings","toggle","radio","checkboxes","log","styles","theme","title","fontSize","display","marginTop","spacing","unit","marginBottom","content","promptHolder","width","paddingBottom","prompt","paddingTop","Configure","rationale","props","onModelChanged","model","teacherInstructions","arrows","left","right","up","down","classes","configuration","onConfigurationChanged","imageSupport","config","graph","padding","labels","scoringType","studentInstructions","coordinatesOnHover","authoring","teacherInstructionsEnabled","promptEnabled","rationaleEnabled","label","Properties","studentInstructionsEnabled","onTeacherInstructionsChange","onPromptChange","onRationaleChange","enabled","React","Component","PropTypes","func","object","isRequired"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\n\nimport { settings, layout, InputContainer } from '@pie-lib/config-ui';\nimport PropTypes from 'prop-types';\nimport debug from 'debug';\nimport Typography from '@material-ui/core/Typography';\nimport EditableHtml from '@pie-lib/editable-html';\nimport GraphingConfig from './graphing-config';\nimport CorrectResponse from './correct-response';\n\nconst { Panel, toggle, radio, checkboxes } = settings;\nconst log = debug('@pie-element:graphing:configure');\n\nconst styles = theme => ({\n title: {\n fontSize: '1.1rem',\n display: 'block',\n marginTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit\n },\n content: {\n marginTop: theme.spacing.unit * 2\n },\n promptHolder: {\n width: '100%',\n paddingBottom: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n marginTop: theme.spacing.unit * 2\n },\n prompt: {\n paddingTop: theme.spacing.unit * 2,\n width: '100%'\n }\n});\n\nexport class Configure extends React.Component {\n static propTypes = {\n onModelChanged: PropTypes.func,\n onConfigurationChanged: PropTypes.func,\n classes: PropTypes.object,\n imageSupport: PropTypes.object,\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired\n };\n\n static defaultProps = { classes: {} };\n\n componentDidMount() {\n // This is used for offering support for old models which have the property arrows: boolean\n // Same thing is set in the controller: packages/graphing/controller/src/index.js - model\n const { onModelChanged, model } = this.props;\n let { arrows } = model || {};\n\n if (typeof arrows === 'boolean') {\n if (arrows) {\n arrows = {\n left: true,\n right: true,\n up: true,\n down: true\n };\n } else {\n arrows = {\n left: false,\n right: false,\n up: false,\n down: false\n };\n }\n\n onModelChanged({ ...model, arrows });\n }\n }\n\n onRationaleChange = rationale => {\n const { onModelChanged, model } = this.props;\n\n onModelChanged({ ...model, rationale });\n };\n\n onPromptChange = prompt => {\n const { onModelChanged, model } = this.props;\n\n onModelChanged({ ...model, prompt });\n };\n\n onTeacherInstructionsChange = teacherInstructions => {\n const { onModelChanged, model } = this.props;\n\n onModelChanged({ ...model, teacherInstructions });\n };\n\n render() {\n const {\n classes,\n model,\n configuration,\n onConfigurationChanged,\n onModelChanged,\n imageSupport\n } = this.props;\n const config = model.graph;\n\n const {\n arrows = {},\n title = {},\n padding = {},\n labels = {},\n rationale = {},\n scoringType = {},\n studentInstructions = {},\n teacherInstructions = {},\n coordinatesOnHover = {},\n prompt = {},\n authoring = {}\n } = configuration || {};\n log('[render] model', model);\n const { teacherInstructionsEnabled, promptEnabled, rationaleEnabled } =\n model || {};\n\n return (\n <layout.ConfigLayout\n settings={\n <Panel\n model={model}\n configuration={configuration}\n onChangeModel={onModelChanged}\n onChangeConfiguration={onConfigurationChanged}\n groups={{\n 'Item Type': {\n arrows: arrows.settings && checkboxes(arrows.label, {\n left: arrows.left,\n right: arrows.right,\n up: arrows.up,\n down: arrows.down\n }),\n 'title.enabled': title.settings && toggle(title.label, true),\n padding: padding.settings && toggle(padding.label),\n labels: labels.settings && toggle(labels.label),\n coordinatesOnHover: coordinatesOnHover.settings && toggle(coordinatesOnHover.label),\n },\n Properties: {\n 'authoring.enabled':\n authoring.settings && toggle(authoring.label, true),\n teacherInstructionsEnabled:\n teacherInstructions.settings &&\n toggle(teacherInstructions.label),\n studentInstructionsEnabled:\n studentInstructions.settings &&\n toggle(studentInstructions.label),\n promptEnabled: prompt.settings && toggle(prompt.label),\n rationaleEnabled: rationale.settings && toggle(rationale.label),\n scoringType:\n scoringType.settings &&\n radio(scoringType.label, ['dichotomous', 'partial scoring'])\n }\n }}\n />\n }\n >\n <div className={classes.content}>\n <Typography component=\"div\" type=\"body1\">\n <span>\n This interaction asks a student to draw a line that meets specific\n criteria. The student will draw the line by clicking on two points\n on the graph.\n </span>\n </Typography>\n\n {teacherInstructionsEnabled && (\n <InputContainer\n label={teacherInstructions.label}\n className={classes.promptHolder}\n >\n <EditableHtml\n className={classes.prompt}\n markup={model.teacherInstructions || ''}\n onChange={this.onTeacherInstructionsChange}\n imageSupport={imageSupport}\n nonEmpty={false}\n />\n </InputContainer>\n )}\n\n {promptEnabled && (\n <InputContainer\n label={prompt.label}\n className={classes.promptHolder}\n >\n <EditableHtml\n className={classes.prompt}\n markup={model.prompt}\n onChange={this.onPromptChange}\n imageSupport={imageSupport}\n nonEmpty={false}\n disableUnderline\n />\n </InputContainer>\n )}\n\n {rationaleEnabled && (\n <InputContainer\n label={rationale.label || 'Rationale'}\n className={classes.promptHolder}\n >\n <EditableHtml\n className={classes.prompt}\n markup={model.rationale || ''}\n onChange={this.onRationaleChange}\n imageSupport={imageSupport}\n />\n </InputContainer>\n )}\n\n <GraphingConfig\n authoringEnabled={authoring && authoring.enabled}\n config={config}\n model={model}\n onChange={this.props.onModelChanged}\n />\n\n <CorrectResponse\n config={config}\n model={model}\n onChange={this.props.onModelChanged}\n />\n </div>\n </layout.ConfigLayout>\n );\n }\n}\n\nexport default withStyles(styles)(Configure);\n"],"file":"configure.js"}
|
|
1
|
+
{"version":3,"sources":["../src/configure.jsx"],"names":["Panel","settings","toggle","radio","checkboxes","log","styles","theme","title","fontSize","display","marginTop","spacing","unit","marginBottom","content","promptHolder","width","paddingBottom","prompt","paddingTop","Configure","rationale","props","onModelChanged","model","teacherInstructions","arrows","left","right","up","down","classes","configuration","onConfigurationChanged","imageSupport","config","graph","padding","labels","scoringType","studentInstructions","coordinatesOnHover","spellCheck","authoring","teacherInstructionsEnabled","promptEnabled","rationaleEnabled","spellCheckEnabled","label","Properties","studentInstructionsEnabled","onTeacherInstructionsChange","onPromptChange","onRationaleChange","enabled","React","Component","PropTypes","func","object","isRequired"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\n\nimport { settings, layout, InputContainer } from '@pie-lib/config-ui';\nimport PropTypes from 'prop-types';\nimport debug from 'debug';\nimport Typography from '@material-ui/core/Typography';\nimport EditableHtml from '@pie-lib/editable-html';\nimport GraphingConfig from './graphing-config';\nimport CorrectResponse from './correct-response';\n\nconst { Panel, toggle, radio, checkboxes } = settings;\nconst log = debug('@pie-element:graphing:configure');\n\nconst styles = theme => ({\n title: {\n fontSize: '1.1rem',\n display: 'block',\n marginTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit\n },\n content: {\n marginTop: theme.spacing.unit * 2\n },\n promptHolder: {\n width: '100%',\n paddingBottom: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n marginTop: theme.spacing.unit * 2\n },\n prompt: {\n paddingTop: theme.spacing.unit * 2,\n width: '100%'\n }\n});\n\nexport class Configure extends React.Component {\n static propTypes = {\n onModelChanged: PropTypes.func,\n onConfigurationChanged: PropTypes.func,\n classes: PropTypes.object,\n imageSupport: PropTypes.object,\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired\n };\n\n static defaultProps = { classes: {} };\n\n componentDidMount() {\n // This is used for offering support for old models which have the property arrows: boolean\n // Same thing is set in the controller: packages/graphing/controller/src/index.js - model\n const { onModelChanged, model } = this.props;\n let { arrows } = model || {};\n\n if (typeof arrows === 'boolean') {\n if (arrows) {\n arrows = {\n left: true,\n right: true,\n up: true,\n down: true\n };\n } else {\n arrows = {\n left: false,\n right: false,\n up: false,\n down: false\n };\n }\n\n onModelChanged({ ...model, arrows });\n }\n }\n\n onRationaleChange = rationale => {\n const { onModelChanged, model } = this.props;\n\n onModelChanged({ ...model, rationale });\n };\n\n onPromptChange = prompt => {\n const { onModelChanged, model } = this.props;\n\n onModelChanged({ ...model, prompt });\n };\n\n onTeacherInstructionsChange = teacherInstructions => {\n const { onModelChanged, model } = this.props;\n\n onModelChanged({ ...model, teacherInstructions });\n };\n\n render() {\n const {\n classes,\n model,\n configuration,\n onConfigurationChanged,\n onModelChanged,\n imageSupport\n } = this.props;\n const config = model.graph;\n\n const {\n arrows = {},\n title = {},\n padding = {},\n labels = {},\n rationale = {},\n scoringType = {},\n studentInstructions = {},\n teacherInstructions = {},\n coordinatesOnHover = {},\n spellCheck = {},\n prompt = {},\n authoring = {}\n } = configuration || {};\n log('[render] model', model);\n const { teacherInstructionsEnabled, promptEnabled, rationaleEnabled, spellCheckEnabled } =\n model || {};\n\n return (\n <layout.ConfigLayout\n settings={\n <Panel\n model={model}\n configuration={configuration}\n onChangeModel={onModelChanged}\n onChangeConfiguration={onConfigurationChanged}\n groups={{\n 'Item Type': {\n arrows: arrows.settings && checkboxes(arrows.label, {\n left: arrows.left,\n right: arrows.right,\n up: arrows.up,\n down: arrows.down\n }),\n 'title.enabled': title.settings && toggle(title.label, true),\n padding: padding.settings && toggle(padding.label),\n labels: labels.settings && toggle(labels.label),\n coordinatesOnHover: coordinatesOnHover.settings && toggle(coordinatesOnHover.label),\n },\n Properties: {\n 'authoring.enabled':\n authoring.settings && toggle(authoring.label, true),\n teacherInstructionsEnabled:\n teacherInstructions.settings &&\n toggle(teacherInstructions.label),\n studentInstructionsEnabled:\n studentInstructions.settings &&\n toggle(studentInstructions.label),\n promptEnabled: prompt.settings && toggle(prompt.label),\n rationaleEnabled: rationale.settings && toggle(rationale.label),\n spellCheckEnabled:\n spellCheck.settings && toggle(spellCheck.label),\n scoringType:\n scoringType.settings &&\n radio(scoringType.label, ['dichotomous', 'partial scoring'])\n }\n }}\n />\n }\n >\n <div className={classes.content}>\n <Typography component=\"div\" type=\"body1\">\n <span>\n This interaction asks a student to draw a line that meets specific\n criteria. The student will draw the line by clicking on two points\n on the graph.\n </span>\n </Typography>\n\n {teacherInstructionsEnabled && (\n <InputContainer\n label={teacherInstructions.label}\n className={classes.promptHolder}\n >\n <EditableHtml\n className={classes.prompt}\n markup={model.teacherInstructions || ''}\n onChange={this.onTeacherInstructionsChange}\n imageSupport={imageSupport}\n nonEmpty={false}\n spellCheck={spellCheckEnabled}\n />\n </InputContainer>\n )}\n\n {promptEnabled && (\n <InputContainer\n label={prompt.label}\n className={classes.promptHolder}\n >\n <EditableHtml\n className={classes.prompt}\n markup={model.prompt}\n onChange={this.onPromptChange}\n imageSupport={imageSupport}\n nonEmpty={false}\n spellCheck={spellCheckEnabled}\n disableUnderline\n />\n </InputContainer>\n )}\n\n {rationaleEnabled && (\n <InputContainer\n label={rationale.label || 'Rationale'}\n className={classes.promptHolder}\n >\n <EditableHtml\n className={classes.prompt}\n markup={model.rationale || ''}\n onChange={this.onRationaleChange}\n imageSupport={imageSupport}\n spellCheck={spellCheckEnabled}\n />\n </InputContainer>\n )}\n\n <GraphingConfig\n authoringEnabled={authoring && authoring.enabled}\n config={config}\n model={model}\n onChange={this.props.onModelChanged}\n />\n\n <CorrectResponse\n config={config}\n model={model}\n onChange={this.props.onModelChanged}\n />\n </div>\n </layout.ConfigLayout>\n );\n }\n}\n\nexport default withStyles(styles)(Configure);\n"],"file":"configure.js"}
|
|
@@ -7,7 +7,7 @@ var _typeof = require("@babel/runtime/helpers/typeof");
|
|
|
7
7
|
Object.defineProperty(exports, "__esModule", {
|
|
8
8
|
value: true
|
|
9
9
|
});
|
|
10
|
-
exports["default"] = exports.
|
|
10
|
+
exports["default"] = exports.Tools = exports.CorrectResponse = void 0;
|
|
11
11
|
|
|
12
12
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
13
13
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/defaults.js"],"names":["tools","allTools","model","answers","arrows","left","right","up","down","backgroundMarks","domain","min","max","step","labelStep","axisLabel","graph","width","height","labels","padding","prompt","range","rationale","title","toolbarTools","coordinatesOnHover","promptEnabled","rationaleEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","configuration","authoring","settings","label","enabled","scoringType","studentInstructions","teacherInstructions"],"mappings":"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
|
|
1
|
+
{"version":3,"sources":["../src/defaults.js"],"names":["tools","allTools","model","answers","arrows","left","right","up","down","backgroundMarks","domain","min","max","step","labelStep","axisLabel","graph","width","height","labels","padding","prompt","range","rationale","title","toolbarTools","coordinatesOnHover","promptEnabled","rationaleEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","configuration","authoring","settings","label","enabled","scoringType","studentInstructions","teacherInstructions","spellCheck"],"mappings":"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","sourcesContent":["import {tools} from '@pie-lib/graphing';\n\nconst {allTools = []} = tools;\n/**\n * NOTE: There's no functionality described for padding\n * so there's no implementation (they are only added in model)\n */\n\nexport default {\n model: {\n answers: {},\n arrows: {\n left: true,\n right: true,\n up: true,\n down: true\n },\n backgroundMarks: [],\n domain: {\n min: -5,\n max: 5,\n step: 1,\n labelStep: 1,\n axisLabel: 'x'\n },\n graph: {\n width: 500,\n height: 500\n },\n labels: {},\n padding: true,\n prompt: '',\n range: {\n min: -5,\n max: 5,\n step: 1,\n labelStep: 1,\n axisLabel: 'y'\n },\n rationale: '',\n title: '',\n toolbarTools: allTools,\n coordinatesOnHover: false,\n promptEnabled: true,\n rationaleEnabled: true,\n teacherInstructionsEnabled: true,\n studentInstructionsEnabled: true,\n },\n configuration: {\n authoring: {\n settings: false,\n label: 'Allow authoring',\n enabled: false\n },\n arrows: {\n settings: true,\n label: 'Include Arrows',\n left: {\n label: 'left'\n },\n right: {\n label: 'right'\n },\n up: {\n label: 'up'\n },\n down: {\n label: 'down'\n }\n },\n padding: {\n settings: false,\n label: 'Padding'\n },\n labels: {\n settings: false,\n label: 'Labels',\n enabled: true\n },\n prompt: {\n settings: true,\n label: 'Item Stem'\n },\n rationale: {\n settings: true,\n label: 'Rationale'\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 },\n title: {\n settings: false,\n label: 'Graph Title',\n enabled: true\n },\n spellCheck: {\n label: \"Spellcheck\",\n settings:true,\n enabled:true\n },\n coordinatesOnHover: {\n settings: true,\n label: 'Coordinates on Hover'\n }\n }\n};\n"],"file":"defaults.js"}
|
|
@@ -47,9 +47,9 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
47
47
|
|
|
48
48
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
49
49
|
|
|
50
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
50
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
51
51
|
|
|
52
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
52
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
53
53
|
|
|
54
54
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
55
55
|
|
package/configure/lib/index.js
CHANGED
|
@@ -37,9 +37,9 @@ var _defaults = _interopRequireDefault(require("./defaults"));
|
|
|
37
37
|
|
|
38
38
|
var _isEmpty = _interopRequireDefault(require("lodash/isEmpty"));
|
|
39
39
|
|
|
40
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
40
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
41
41
|
|
|
42
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
42
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
43
43
|
|
|
44
44
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
45
45
|
|
package/controller/lib/index.js
CHANGED
|
@@ -5,9 +5,10 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
+
exports.getBestAnswer = exports.getAnswerCorrected = exports.createCorrectResponseSession = exports.compareMarks = void 0;
|
|
8
9
|
exports.model = model;
|
|
10
|
+
exports.orderCorrectAnswers = exports.normalize = void 0;
|
|
9
11
|
exports.outcome = outcome;
|
|
10
|
-
exports.createCorrectResponseSession = exports.normalize = exports.getBestAnswer = exports.orderCorrectAnswers = exports.getAnswerCorrected = exports.compareMarks = void 0;
|
|
11
12
|
|
|
12
13
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
13
14
|
|
|
@@ -31,9 +32,9 @@ var _controllerUtils = require("@pie-lib/controller-utils");
|
|
|
31
32
|
|
|
32
33
|
var _excluded = ["prompt", "promptEnabled", "graph", "answers"];
|
|
33
34
|
|
|
34
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
35
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
35
36
|
|
|
36
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
37
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
37
38
|
|
|
38
39
|
var log = (0, _debug["default"])('@pie-element:graphing:controller');
|
|
39
40
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.js"],"names":["log","initializeGraphMap","point","segment","line","ray","vector","polygon","circle","sine","parabola","compareMarks","mark1","mark2","type","equalMarks","getAnswerCorrected","sessionAnswers","correctAnswers","marks","reduce","correctedAnswer","answer","answerIsCorrect","find","mark","correctness","getPartialScoring","scoringType","env","pS","partialScoring","enabled","orderCorrectAnswers","questionPossibleAnswers","hasOwnProperty","Object","assign","correctAnswer","getBestAnswer","question","session","answers","partialScoringEnabled","possibleAnswers","entries","acc","entry","possibleAnswerKey","possibleAnswer","length","correctMarks","filter","maxScore","score","bestScore","foundOneSolution","parseFloat","toFixed","Math","floor","bestScoreAnswerKey","answersCorrected","map","normalize","defaults","model","Promise","resolve","normalizedQuestion","prompt","promptEnabled","graph","questionProps","arrows","mode","role","left","right","up","down","base","disabled","rationale","size","showToggle","teacherInstructions","rationaleEnabled","teacherInstructionsEnabled","correctResponse","outcome","empty","createCorrectResponseSession","values","firstCorrectAnswer","id"],"mappings":"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","sourcesContent":["import debug from 'debug';\n\nimport cloneDeep from 'lodash/cloneDeep';\nimport uniqWith from 'lodash/uniqWith';\nimport isEmpty from 'lodash/isEmpty';\nimport defaults from './defaults';\nimport { equalMarks, sortedAnswers } from './utils';\n\nimport { partialScoring } from '@pie-lib/controller-utils';\n\nconst log = debug('@pie-element:graphing:controller');\n\nconst initializeGraphMap = () => ({\n point: [],\n segment: [],\n line: [],\n ray: [],\n vector: [],\n polygon: [],\n circle: [],\n sine: [],\n parabola: []\n});\n\nexport const compareMarks = (mark1, mark2) => {\n // marks can be compared with equalMarks[type] function only if they have the same type;\n // if type is different, they are clearly not equal\n return !!(mark1 && mark2 && mark1.type === mark2.type && equalMarks[mark1.type] && equalMarks[mark1.type](mark1, mark2));\n};\n\nexport const getAnswerCorrected = ({ sessionAnswers, marks: correctAnswers }) => {\n sessionAnswers = sessionAnswers || [];\n correctAnswers = correctAnswers || [];\n\n return cloneDeep(sessionAnswers).reduce((correctedAnswer, answer) => {\n const answerIsCorrect = correctAnswers.find(mark => compareMarks(answer, mark));\n\n answer.correctness = answerIsCorrect ? 'correct' : 'incorrect';\n\n return [...correctedAnswer, answer];\n }, []);\n};\n\nconst getPartialScoring = ({ scoringType, env }) => {\n let pS = scoringType;\n\n // if scoringType is undefined, partialScoring should be considered undefined (not set)\n // because partialScoring.enabled is using that information\n // if it has a value, we check if it is partial scoring or dichotomous\n if (scoringType) {\n pS = scoringType === 'partial scoring';\n }\n\n return partialScoring.enabled({ partialScoring: pS }, env);\n};\n\nexport const orderCorrectAnswers = (questionPossibleAnswers) => {\n questionPossibleAnswers = questionPossibleAnswers || {};\n\n if (!questionPossibleAnswers.hasOwnProperty('correctAnswer')) {\n sortedAnswers(questionPossibleAnswers);\n }\n\n return Object.assign({ correctAnswer: questionPossibleAnswers.correctAnswer }, sortedAnswers(questionPossibleAnswers));\n};\n\nexport const getBestAnswer = (question, session, env = {}) => {\n // questionPossibleAnswers contains all possible answers (correct response and alternates);\n let { answers: questionPossibleAnswers, scoringType } = question || {};\n let { answer } = session || {};\n\n // initialize answer if no values\n answer = answer || [];\n\n // initialize one possible answer if no values\n if (isEmpty(questionPossibleAnswers)) {\n questionPossibleAnswers = { correctAnswer: initializeGraphMap() };\n } else {\n orderCorrectAnswers(questionPossibleAnswers);\n }\n\n const partialScoringEnabled = getPartialScoring({ scoringType, env });\n\n // student's answers without DUPLICATES\n const sessionAnswers = uniqWith(answer, compareMarks);\n // array of possible answers entries\n const possibleAnswers = Object.entries(questionPossibleAnswers);\n\n return possibleAnswers.reduce((acc, entry) => {\n // iterating each possible answer (main + alternates)\n const possibleAnswerKey = entry[0];\n const possibleAnswer = entry[1] || {};\n let { marks } = possibleAnswer;\n\n if (!marks || !marks.length) {\n return acc;\n }\n\n // returns array of marks, each having 'correctness' property\n const correctedAnswer = getAnswerCorrected({ sessionAnswers, marks });\n const correctMarks = correctedAnswer.filter(answer => answer.correctness === 'correct');\n\n const maxScore = marks.length;\n let score = correctMarks.length;\n\n // if extra placements\n if (correctedAnswer.length > maxScore) {\n score -= correctedAnswer.length - maxScore;\n }\n\n if (score < 0) {\n score = 0;\n }\n\n if (score / maxScore > acc.bestScore || !acc.foundOneSolution) {\n if (partialScoringEnabled) {\n acc.bestScore = parseFloat((score / maxScore).toFixed(2));\n } else {\n acc.bestScore = Math.floor(score / maxScore);\n }\n\n acc.bestScoreAnswerKey = possibleAnswerKey;\n acc.answersCorrected = correctedAnswer;\n acc.foundOneSolution = true;\n }\n\n return acc;\n }, {\n bestScore: 0,\n bestScoreAnswerKey: null,\n // initially we just suppose all the answers are incorrect\n answersCorrected: cloneDeep(sessionAnswers).map(answer => ({ ...answer, correctness: 'incorrect' })),\n foundOneSolution: false\n });\n};\n\nexport const normalize = question => ({ ...defaults, ...question });\n\nexport function model(question, session, env) {\n return new Promise(resolve => {\n const normalizedQuestion = normalize(question);\n const { prompt, promptEnabled, graph, answers, ...questionProps } = normalizedQuestion || {};\n let { arrows } = normalizedQuestion;\n const { mode, role } = env || {};\n\n // This is used for offering support for old models which have the property arrows: boolean\n // Same thing is set in authoring : packages/graphing/configure/src/configure.jsx - componentDidMount\n if (typeof arrows === 'boolean') {\n if (arrows) {\n arrows = {\n left: true,\n right: true,\n up: true,\n down: true\n };\n } else {\n arrows = {\n left: false,\n right: false,\n up: false,\n down: false\n };\n }\n }\n\n const base = {\n ...questionProps,\n answers,\n disabled: env.mode !== 'gather',\n prompt: promptEnabled ? prompt : null,\n rationale: null,\n size: graph,\n showToggle: env.mode === 'evaluate' && !isEmpty(answers),\n teacherInstructions: null,\n arrows\n };\n\n if (role === 'instructor' && (mode === 'view' || mode === 'evaluate')) {\n const { rationale, rationaleEnabled, teacherInstructions, teacherInstructionsEnabled } = normalizedQuestion || {};\n\n base.rationale = rationaleEnabled ? rationale : null;\n base.teacherInstructions = teacherInstructionsEnabled ? teacherInstructions : null;\n }\n\n if (mode === 'evaluate') {\n if (!isEmpty(answers)) {\n const { answersCorrected, bestScoreAnswerKey, bestScore } = getBestAnswer(normalizedQuestion, session, env);\n\n // array of marks from session with 'correctness' property set\n base.answersCorrected = answersCorrected;\n base.correctResponse = bestScoreAnswerKey ? (answers[bestScoreAnswerKey] || {}).marks : [];\n base.showToggle = base.showToggle && bestScore !== 1;\n } else {\n base.answersCorrected = session && session.answer || [];\n base.correctResponse = [];\n }\n }\n\n log('base: ', base);\n resolve(base);\n });\n}\n\nexport function outcome(question, session, env = {}) {\n return new Promise(resolve => {\n if (!session || isEmpty(session)) {\n resolve({ score: 0, empty: true });\n }\n\n if (env.mode !== 'evaluate' || isEmpty(question.answers)) {\n resolve({ score: 0 });\n }\n\n const { bestScore } = getBestAnswer(question, session, env);\n\n resolve({ score: bestScore });\n });\n}\n\nexport const createCorrectResponseSession = (question, env) => {\n return new Promise(resolve => {\n if (env.mode !== 'evaluate' && env.role === 'instructor') {\n const { answers } = question || {};\n let marks = [];\n\n if (answers && Object.values(answers)) {\n const firstCorrectAnswer = Object.values(answers)[0] || {};\n\n marks = firstCorrectAnswer.marks || [];\n }\n\n resolve({\n answer: marks,\n id: '1'\n });\n } else {\n resolve(null);\n }\n });\n};\n"],"file":"index.js"}
|
|
1
|
+
{"version":3,"sources":["../src/index.js"],"names":["log","initializeGraphMap","point","segment","line","ray","vector","polygon","circle","sine","parabola","compareMarks","mark1","mark2","type","equalMarks","getAnswerCorrected","sessionAnswers","correctAnswers","marks","reduce","correctedAnswer","answer","answerIsCorrect","find","mark","correctness","getPartialScoring","scoringType","env","pS","partialScoring","enabled","orderCorrectAnswers","questionPossibleAnswers","hasOwnProperty","Object","assign","correctAnswer","getBestAnswer","question","session","answers","partialScoringEnabled","possibleAnswers","entries","acc","entry","possibleAnswerKey","possibleAnswer","length","correctMarks","filter","maxScore","score","bestScore","foundOneSolution","parseFloat","toFixed","Math","floor","bestScoreAnswerKey","answersCorrected","map","normalize","defaults","model","Promise","resolve","normalizedQuestion","prompt","promptEnabled","graph","questionProps","arrows","mode","role","left","right","up","down","base","disabled","rationale","size","showToggle","teacherInstructions","rationaleEnabled","teacherInstructionsEnabled","correctResponse","outcome","empty","createCorrectResponseSession","values","firstCorrectAnswer","id"],"mappings":"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","sourcesContent":["import debug from 'debug';\n\nimport cloneDeep from 'lodash/cloneDeep';\nimport uniqWith from 'lodash/uniqWith';\nimport isEmpty from 'lodash/isEmpty';\nimport defaults from './defaults';\nimport { equalMarks, sortedAnswers } from './utils';\n\nimport { partialScoring } from '@pie-lib/controller-utils';\n\nconst log = debug('@pie-element:graphing:controller');\n\nconst initializeGraphMap = () => ({\n point: [],\n segment: [],\n line: [],\n ray: [],\n vector: [],\n polygon: [],\n circle: [],\n sine: [],\n parabola: []\n});\n\nexport const compareMarks = (mark1, mark2) => {\n // marks can be compared with equalMarks[type] function only if they have the same type;\n // if type is different, they are clearly not equal\n return !!(mark1 && mark2 && mark1.type === mark2.type && equalMarks[mark1.type] && equalMarks[mark1.type](mark1, mark2));\n};\n\nexport const getAnswerCorrected = ({ sessionAnswers, marks: correctAnswers }) => {\n sessionAnswers = sessionAnswers || [];\n correctAnswers = correctAnswers || [];\n\n return cloneDeep(sessionAnswers).reduce((correctedAnswer, answer) => {\n const answerIsCorrect = correctAnswers.find(mark => compareMarks(answer, mark));\n\n answer.correctness = answerIsCorrect ? 'correct' : 'incorrect';\n\n return [...correctedAnswer, answer];\n }, []);\n};\n\nconst getPartialScoring = ({ scoringType, env }) => {\n let pS = scoringType;\n\n // if scoringType is undefined, partialScoring should be considered undefined (not set)\n // because partialScoring.enabled is using that information\n // if it has a value, we check if it is partial scoring or dichotomous\n if (scoringType) {\n pS = scoringType === 'partial scoring';\n }\n\n return partialScoring.enabled({ partialScoring: pS }, env);\n};\n\nexport const orderCorrectAnswers = (questionPossibleAnswers) => {\n questionPossibleAnswers = questionPossibleAnswers || {};\n\n if (!questionPossibleAnswers.hasOwnProperty('correctAnswer')) {\n sortedAnswers(questionPossibleAnswers);\n }\n\n return Object.assign({ correctAnswer: questionPossibleAnswers.correctAnswer }, sortedAnswers(questionPossibleAnswers));\n};\n\nexport const getBestAnswer = (question, session, env = {}) => {\n // questionPossibleAnswers contains all possible answers (correct response and alternates);\n let { answers: questionPossibleAnswers, scoringType } = question || {};\n let { answer } = session || {};\n\n // initialize answer if no values\n answer = answer || [];\n\n // initialize one possible answer if no values\n if (isEmpty(questionPossibleAnswers)) {\n questionPossibleAnswers = { correctAnswer: initializeGraphMap() };\n } else {\n orderCorrectAnswers(questionPossibleAnswers);\n }\n\n const partialScoringEnabled = getPartialScoring({ scoringType, env });\n\n // student's answers without DUPLICATES\n const sessionAnswers = uniqWith(answer, compareMarks);\n // array of possible answers entries\n const possibleAnswers = Object.entries(questionPossibleAnswers);\n\n return possibleAnswers.reduce((acc, entry) => {\n // iterating each possible answer (main + alternates)\n const possibleAnswerKey = entry[0];\n const possibleAnswer = entry[1] || {};\n let { marks } = possibleAnswer;\n\n if (!marks || !marks.length) {\n return acc;\n }\n\n // returns array of marks, each having 'correctness' property\n const correctedAnswer = getAnswerCorrected({ sessionAnswers, marks });\n const correctMarks = correctedAnswer.filter(answer => answer.correctness === 'correct');\n\n const maxScore = marks.length;\n let score = correctMarks.length;\n\n // if extra placements\n if (correctedAnswer.length > maxScore) {\n score -= correctedAnswer.length - maxScore;\n }\n\n if (score < 0) {\n score = 0;\n }\n\n if (score / maxScore > acc.bestScore || !acc.foundOneSolution) {\n if (partialScoringEnabled) {\n acc.bestScore = parseFloat((score / maxScore).toFixed(2));\n } else {\n acc.bestScore = Math.floor(score / maxScore);\n }\n\n acc.bestScoreAnswerKey = possibleAnswerKey;\n acc.answersCorrected = correctedAnswer;\n acc.foundOneSolution = true;\n }\n\n return acc;\n }, {\n bestScore: 0,\n bestScoreAnswerKey: null,\n // initially we just suppose all the answers are incorrect\n answersCorrected: cloneDeep(sessionAnswers).map(answer => ({ ...answer, correctness: 'incorrect' })),\n foundOneSolution: false\n });\n};\n\nexport const normalize = question => ({ ...defaults, ...question });\n\nexport function model(question, session, env) {\n return new Promise(resolve => {\n const normalizedQuestion = normalize(question);\n const { prompt, promptEnabled, graph, answers, ...questionProps } = normalizedQuestion || {};\n let { arrows } = normalizedQuestion;\n const { mode, role } = env || {};\n\n // This is used for offering support for old models which have the property arrows: boolean\n // Same thing is set in authoring : packages/graphing/configure/src/configure.jsx - componentDidMount\n if (typeof arrows === 'boolean') {\n if (arrows) {\n arrows = {\n left: true,\n right: true,\n up: true,\n down: true\n };\n } else {\n arrows = {\n left: false,\n right: false,\n up: false,\n down: false\n };\n }\n }\n\n const base = {\n ...questionProps,\n answers,\n disabled: env.mode !== 'gather',\n prompt: promptEnabled ? prompt : null,\n rationale: null,\n size: graph,\n showToggle: env.mode === 'evaluate' && !isEmpty(answers),\n teacherInstructions: null,\n arrows\n };\n\n if (role === 'instructor' && (mode === 'view' || mode === 'evaluate')) {\n const { rationale, rationaleEnabled, teacherInstructions, teacherInstructionsEnabled } = normalizedQuestion || {};\n\n base.rationale = rationaleEnabled ? rationale : null;\n base.teacherInstructions = teacherInstructionsEnabled ? teacherInstructions : null;\n }\n\n if (mode === 'evaluate') {\n if (!isEmpty(answers)) {\n const { answersCorrected, bestScoreAnswerKey, bestScore } = getBestAnswer(normalizedQuestion, session, env);\n\n // array of marks from session with 'correctness' property set\n base.answersCorrected = answersCorrected;\n base.correctResponse = bestScoreAnswerKey ? (answers[bestScoreAnswerKey] || {}).marks : [];\n base.showToggle = base.showToggle && bestScore !== 1;\n } else {\n base.answersCorrected = session && session.answer || [];\n base.correctResponse = [];\n }\n }\n\n log('base: ', base);\n resolve(base);\n });\n}\n\nexport function outcome(question, session, env = {}) {\n return new Promise(resolve => {\n if (!session || isEmpty(session)) {\n resolve({ score: 0, empty: true });\n }\n\n if (env.mode !== 'evaluate' || isEmpty(question.answers)) {\n resolve({ score: 0 });\n }\n\n const { bestScore } = getBestAnswer(question, session, env);\n\n resolve({ score: bestScore });\n });\n}\n\nexport const createCorrectResponseSession = (question, env) => {\n return new Promise(resolve => {\n if (env.mode !== 'evaluate' && env.role === 'instructor') {\n const { answers } = question || {};\n let marks = [];\n\n if (answers && Object.values(answers)) {\n const firstCorrectAnswer = Object.values(answers)[0] || {};\n\n marks = firstCorrectAnswer.marks || [];\n }\n\n resolve({\n answer: marks,\n id: '1'\n });\n } else {\n resolve(null);\n }\n });\n};\n"],"file":"index.js"}
|
package/controller/lib/utils.js
CHANGED
|
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.
|
|
8
|
+
exports.sortedAnswers = exports.removeInvalidSegments = exports.removeDuplicateSegments = exports.equalVector = exports.equalSine = exports.equalSegment = exports.equalRay = exports.equalPolygon = exports.equalPoint = exports.equalParabola = exports.equalMarks = exports.equalLine = exports.equalCircle = exports.constructSegmentsFromPoints = void 0;
|
|
9
9
|
|
|
10
10
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
11
|
|
|
@@ -19,9 +19,9 @@ var _differenceWith = _interopRequireDefault(require("lodash/differenceWith"));
|
|
|
19
19
|
|
|
20
20
|
var _graphingUtils = require("@pie-lib/graphing-utils");
|
|
21
21
|
|
|
22
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
22
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
23
23
|
|
|
24
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
24
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
25
25
|
|
|
26
26
|
var equalPoint = function equalPoint(A, B) {
|
|
27
27
|
// x1 = x2 & y1 = y2
|
package/docs/config-schema.json
CHANGED
|
@@ -148,6 +148,22 @@
|
|
|
148
148
|
}
|
|
149
149
|
}
|
|
150
150
|
},
|
|
151
|
+
"spellCheck": {
|
|
152
|
+
"title": "ConfigureProp",
|
|
153
|
+
"type": "object",
|
|
154
|
+
"properties": {
|
|
155
|
+
"settings": {
|
|
156
|
+
"description": "Indicates if the item has to be displayed in the Settings Panel",
|
|
157
|
+
"type": "boolean",
|
|
158
|
+
"title": "settings"
|
|
159
|
+
},
|
|
160
|
+
"label": {
|
|
161
|
+
"description": "Indicates the label for the item that has to be displayed in the Settings Panel",
|
|
162
|
+
"type": "string",
|
|
163
|
+
"title": "label"
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
},
|
|
151
167
|
"rationale": {
|
|
152
168
|
"title": "ConfigureProp",
|
|
153
169
|
"type": "object",
|
|
@@ -111,6 +111,18 @@ Indicates if the item has to be displayed in the Settings Panel
|
|
|
111
111
|
|
|
112
112
|
Indicates the label for the item that has to be displayed in the Settings Panel
|
|
113
113
|
|
|
114
|
+
# `spellCheck` (object)
|
|
115
|
+
|
|
116
|
+
Properties of the `spellCheck` object:
|
|
117
|
+
|
|
118
|
+
## `settings` (boolean)
|
|
119
|
+
|
|
120
|
+
Indicates if the item has to be displayed in the Settings Panel
|
|
121
|
+
|
|
122
|
+
## `label` (string)
|
|
123
|
+
|
|
124
|
+
Indicates the label for the item that has to be displayed in the Settings Panel
|
|
125
|
+
|
|
114
126
|
# `rationale` (object)
|
|
115
127
|
|
|
116
128
|
Properties of the `rationale` object:
|
package/docs/pie-schema.json
CHANGED
|
@@ -1716,6 +1716,11 @@
|
|
|
1716
1716
|
"type": "boolean",
|
|
1717
1717
|
"title": "rationaleEnabled"
|
|
1718
1718
|
},
|
|
1719
|
+
"spellCheckEnabled": {
|
|
1720
|
+
"description": "Indicates if spellcheck is enabled",
|
|
1721
|
+
"type": "boolean",
|
|
1722
|
+
"title": "spellCheckEnabled"
|
|
1723
|
+
},
|
|
1719
1724
|
"studentInstructionsEnabled": {
|
|
1720
1725
|
"description": "Indicates if Student Instructions are enabled",
|
|
1721
1726
|
"type": "boolean",
|
|
@@ -1746,6 +1751,7 @@
|
|
|
1746
1751
|
"id",
|
|
1747
1752
|
"range",
|
|
1748
1753
|
"rationaleEnabled",
|
|
1754
|
+
"spellCheckEnabled",
|
|
1749
1755
|
"studentInstructionsEnabled",
|
|
1750
1756
|
"teacherInstructionsEnabled"
|
|
1751
1757
|
],
|
package/docs/pie-schema.json.md
CHANGED
|
@@ -209,6 +209,10 @@ Additional restrictions:
|
|
|
209
209
|
|
|
210
210
|
Indicates if Rationale are enabled
|
|
211
211
|
|
|
212
|
+
# `spellCheckEnabled` (boolean, required)
|
|
213
|
+
|
|
214
|
+
Indicates if spellcheck is enabled
|
|
215
|
+
|
|
212
216
|
# `studentInstructionsEnabled` (boolean, required)
|
|
213
217
|
|
|
214
218
|
Indicates if Student Instructions are enabled
|
package/lib/main.js
CHANGED
|
@@ -33,9 +33,9 @@ var _renderUi = require("@pie-lib/render-ui");
|
|
|
33
33
|
|
|
34
34
|
var _correctAnswerToggle = _interopRequireDefault(require("@pie-lib/correct-answer-toggle"));
|
|
35
35
|
|
|
36
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
36
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
37
37
|
|
|
38
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
38
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
39
39
|
|
|
40
40
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
41
41
|
|
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
6
|
"repository": "pie-framework/pie-elements",
|
|
7
|
-
"version": "3.5.4-next.
|
|
7
|
+
"version": "3.5.4-next.721+278dd60f1",
|
|
8
8
|
"description": "",
|
|
9
9
|
"scripts": {
|
|
10
10
|
"test": "echo \"Error: no test specified\" && exit 1",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
},
|
|
25
25
|
"author": "",
|
|
26
26
|
"license": "ISC",
|
|
27
|
-
"gitHead": "
|
|
27
|
+
"gitHead": "278dd60f1aef0c9f196b8531f7df61daca98ce75",
|
|
28
28
|
"main": "lib/index.js",
|
|
29
29
|
"module": "src/index.js"
|
|
30
30
|
}
|