@pie-element/categorize 6.9.13 → 6.9.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +24 -0
- package/configure/CHANGELOG.md +24 -0
- package/configure/lib/defaults.js +5 -0
- package/configure/lib/defaults.js.map +1 -1
- package/configure/lib/design/builder.js +1 -1
- package/configure/lib/design/buttons.js +1 -1
- package/configure/lib/design/categories/alternateResponses.js +3 -1
- package/configure/lib/design/categories/alternateResponses.js.map +1 -1
- package/configure/lib/design/categories/category.js +3 -1
- package/configure/lib/design/categories/category.js.map +1 -1
- package/configure/lib/design/categories/droppable-placeholder.js +1 -1
- package/configure/lib/design/categories/index.js +9 -4
- package/configure/lib/design/categories/index.js.map +1 -1
- package/configure/lib/design/choices/choice.js +4 -2
- package/configure/lib/design/choices/choice.js.map +1 -1
- package/configure/lib/design/choices/config.js +4 -2
- package/configure/lib/design/choices/config.js.map +1 -1
- package/configure/lib/design/choices/index.js +5 -2
- package/configure/lib/design/choices/index.js.map +1 -1
- package/configure/lib/design/index.js +18 -9
- package/configure/lib/design/index.js.map +1 -1
- package/configure/lib/design/input-header.js +4 -2
- package/configure/lib/design/input-header.js.map +1 -1
- package/configure/lib/index.js +2 -2
- package/configure/package.json +4 -4
- package/controller/lib/index.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/categorize/categories.js +2 -1
- package/lib/categorize/categories.js.map +1 -1
- package/lib/categorize/category.js +3 -3
- package/lib/categorize/choice.js +3 -3
- package/lib/categorize/droppable-placeholder.js +1 -1
- package/lib/categorize/grid-content.js +2 -2
- package/lib/index.js +3 -0
- package/lib/index.js.map +1 -1
- package/package.json +5 -5
|
@@ -51,9 +51,9 @@ var _builder = require("./builder");
|
|
|
51
51
|
|
|
52
52
|
var _header = _interopRequireDefault(require("./header"));
|
|
53
53
|
|
|
54
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
54
|
+
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; }
|
|
55
55
|
|
|
56
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
56
|
+
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; }
|
|
57
57
|
|
|
58
58
|
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); }; }
|
|
59
59
|
|
|
@@ -187,13 +187,16 @@ var Design = /*#__PURE__*/function (_React$Component) {
|
|
|
187
187
|
_ref$feedback = _ref.feedback,
|
|
188
188
|
feedback = _ref$feedback === void 0 ? {} : _ref$feedback,
|
|
189
189
|
_ref$prompt = _ref.prompt,
|
|
190
|
-
prompt = _ref$prompt === void 0 ? {} : _ref$prompt
|
|
190
|
+
prompt = _ref$prompt === void 0 ? {} : _ref$prompt,
|
|
191
|
+
_ref$spellCheck = _ref.spellCheck,
|
|
192
|
+
spellCheck = _ref$spellCheck === void 0 ? {} : _ref$spellCheck;
|
|
191
193
|
|
|
192
194
|
var _ref2 = model || {},
|
|
193
195
|
teacherInstructionsEnabled = _ref2.teacherInstructionsEnabled,
|
|
194
196
|
promptEnabled = _ref2.promptEnabled,
|
|
195
197
|
rationaleEnabled = _ref2.rationaleEnabled,
|
|
196
|
-
feedbackEnabled = _ref2.feedbackEnabled
|
|
198
|
+
feedbackEnabled = _ref2.feedbackEnabled,
|
|
199
|
+
spellCheckEnabled = _ref2.spellCheckEnabled;
|
|
197
200
|
|
|
198
201
|
var toolbarOpts = {};
|
|
199
202
|
|
|
@@ -237,6 +240,7 @@ var Design = /*#__PURE__*/function (_React$Component) {
|
|
|
237
240
|
teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),
|
|
238
241
|
studentInstructionsEnabled: studentInstructions.settings && toggle(studentInstructions.label),
|
|
239
242
|
rationaleEnabled: rationale.settings && toggle(rationale.label),
|
|
243
|
+
spellCheckEnabled: spellCheck.settings && toggle(spellCheck.label),
|
|
240
244
|
scoringType: scoringType.settings && radio(scoringType.label, ['auto', 'rubric'])
|
|
241
245
|
}
|
|
242
246
|
}
|
|
@@ -253,7 +257,8 @@ var Design = /*#__PURE__*/function (_React$Component) {
|
|
|
253
257
|
imageSupport: imageSupport,
|
|
254
258
|
nonEmpty: false,
|
|
255
259
|
disableUnderline: true,
|
|
256
|
-
toolbarOpts: toolbarOpts
|
|
260
|
+
toolbarOpts: toolbarOpts,
|
|
261
|
+
spellCheck: spellCheckEnabled
|
|
257
262
|
})), teacherInstructionsEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
|
|
258
263
|
label: teacherInstructions.label,
|
|
259
264
|
className: classes.inputHolder
|
|
@@ -263,7 +268,8 @@ var Design = /*#__PURE__*/function (_React$Component) {
|
|
|
263
268
|
onChange: this.changeTeacherInstructions,
|
|
264
269
|
imageSupport: imageSupport,
|
|
265
270
|
nonEmpty: false,
|
|
266
|
-
toolbarOpts: toolbarOpts
|
|
271
|
+
toolbarOpts: toolbarOpts,
|
|
272
|
+
spellCheck: spellCheckEnabled
|
|
267
273
|
})), rationaleEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
|
|
268
274
|
label: rationale.label,
|
|
269
275
|
className: classes.inputHolder
|
|
@@ -273,13 +279,15 @@ var Design = /*#__PURE__*/function (_React$Component) {
|
|
|
273
279
|
onChange: this.changeRationale,
|
|
274
280
|
imageSupport: imageSupport,
|
|
275
281
|
nonEmpty: false,
|
|
276
|
-
toolbarOpts: toolbarOpts
|
|
282
|
+
toolbarOpts: toolbarOpts,
|
|
283
|
+
spellCheck: spellCheckEnabled
|
|
277
284
|
})), /*#__PURE__*/_react["default"].createElement(_categories["default"], {
|
|
278
285
|
imageSupport: imageSupport,
|
|
279
286
|
model: model,
|
|
280
287
|
categories: categories || [],
|
|
281
288
|
onModelChanged: this.updateModel,
|
|
282
|
-
toolbarOpts: toolbarOpts
|
|
289
|
+
toolbarOpts: toolbarOpts,
|
|
290
|
+
spellCheck: spellCheckEnabled
|
|
283
291
|
}), /*#__PURE__*/_react["default"].createElement(_header["default"], {
|
|
284
292
|
className: classes.alternatesHeader,
|
|
285
293
|
label: "Alternate Responses",
|
|
@@ -307,7 +315,8 @@ var Design = /*#__PURE__*/function (_React$Component) {
|
|
|
307
315
|
choices: choices,
|
|
308
316
|
model: model,
|
|
309
317
|
onModelChanged: this.updateModel,
|
|
310
|
-
toolbarOpts: toolbarOpts
|
|
318
|
+
toolbarOpts: toolbarOpts,
|
|
319
|
+
spellCheck: spellCheckEnabled
|
|
311
320
|
}), feedbackEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.FeedbackConfig, {
|
|
312
321
|
feedback: model.feedback,
|
|
313
322
|
onChange: this.changeFeedback,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/design/index.jsx"],"names":["Panel","settings","toggle","radio","IdProvider","uid","Provider","Design","props","model","onChange","updatedModel","correctResponse","choices","categories","map","c","id","label","h","content","categoryCount","rationale","teacherInstructions","feedback","updateModel","cr","alternateResponses","prompt","index","filter","alt","altIndex","choice","generateId","classes","className","imageSupport","configuration","onConfigurationChanged","partialScoring","lockChoiceOrder","studentInstructions","scoringType","teacherInstructionsEnabled","promptEnabled","rationaleEnabled","feedbackEnabled","toolbarOpts","toolbarEditorPosition","position","config","columns","correctResponseCount","countChoiceInCorrectResponse","Settings","Properties","studentInstructionsEnabled","design","promptHolder","onPromptChanged","inputHolder","input","changeTeacherInstructions","changeRationale","alternatesHeader","onAddAlternateResponse","categoriesList","onRemoveAlternateResponse","changeFeedback","React","Component","PropTypes","object","isRequired","string","func","shape","add","styles","theme","paddingTop","spacing","unit","paddingBottom","text","width","marginBottom","maxWidth","title"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport {\n FeedbackConfig,\n InputContainer,\n layout,\n settings\n} from '@pie-lib/config-ui';\nimport {\n countInAnswer,\n ensureNoExtraChoicesInAnswer\n} from '@pie-lib/categorize';\nimport EditableHtml from '@pie-lib/editable-html';\nimport { uid, withDragContext } from '@pie-lib/drag';\n\nimport Categories from './categories';\nimport AlternateResponses from './categories/alternateResponses';\nimport Choices from './choices';\nimport { Divider } from './buttons';\nimport { buildAlternateResponses, buildCategories } from './builder';\nimport Header from './header';\n\nconst { Panel, toggle, radio } = settings;\nconst { Provider: IdProvider } = uid;\n\nexport class Design extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n configuration: PropTypes.object,\n className: PropTypes.string,\n onConfigurationChanged: PropTypes.func,\n model: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n uid: PropTypes.string,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired\n })\n };\n\n constructor(props) {\n super(props);\n this.uid = props.uid || uid.generateId();\n }\n\n updateModel = props => {\n const { model, onChange } = this.props;\n\n const updatedModel = {\n ...model,\n ...props\n };\n\n //Ensure that there are no extra choices in correctResponse, if the user has decided that only one choice may be used.\n updatedModel.correctResponse = ensureNoExtraChoicesInAnswer(\n updatedModel.correctResponse || [],\n updatedModel.choices\n );\n\n //clean categories\n updatedModel.categories = updatedModel.categories.map(c => ({\n id: c.id,\n label: c.label\n }));\n\n updatedModel.choices = updatedModel.choices.map(h => ({\n id: h.id,\n content: h.content,\n categoryCount: h.categoryCount\n }));\n\n onChange(updatedModel);\n };\n\n changeRationale = rationale => {\n const { model, onChange } = this.props;\n\n onChange({\n ...model,\n rationale\n });\n };\n\n changeTeacherInstructions = teacherInstructions => {\n const { model, onChange } = this.props;\n\n onChange({\n ...model,\n teacherInstructions\n });\n };\n\n changeFeedback = feedback => {\n this.updateModel({ feedback });\n };\n\n onAddAlternateResponse = () => {\n const {\n model: { correctResponse }\n } = this.props;\n\n this.updateModel({\n correctResponse: (correctResponse || []).map(cr => ({\n ...cr,\n alternateResponses: [...(cr.alternateResponses || []), []]\n }))\n });\n };\n\n onPromptChanged = prompt => this.updateModel({ prompt });\n\n onRemoveAlternateResponse = index => {\n const {\n model: { correctResponse }\n } = this.props;\n\n this.updateModel({\n correctResponse: (correctResponse || []).map(cr => ({\n ...cr,\n alternateResponses: (cr.alternateResponses || []).filter(\n (alt, altIndex) => altIndex !== index\n )\n }))\n });\n };\n\n countChoiceInCorrectResponse = choice => {\n const { model } = this.props;\n\n return countInAnswer(choice.id, model.correctResponse);\n };\n\n render() {\n const {\n classes,\n className,\n model,\n imageSupport,\n configuration,\n onChange,\n onConfigurationChanged\n } = this.props;\n const {\n partialScoring = {},\n lockChoiceOrder = {},\n teacherInstructions = {},\n studentInstructions = {},\n rationale = {},\n scoringType = {},\n feedback = {},\n prompt = {}\n } = configuration || {};\n const {\n teacherInstructionsEnabled,\n promptEnabled,\n rationaleEnabled,\n feedbackEnabled\n } = model || {};\n\n const toolbarOpts = {};\n\n switch (model.toolbarEditorPosition) {\n case 'top':\n toolbarOpts.position = 'top';\n break;\n default:\n toolbarOpts.position = 'bottom';\n break;\n }\n\n const config = model.config || {};\n config.choices = config.choices || { label: '', columns: 2 };\n\n const categories = buildCategories(\n model.categories || [],\n model.choices || [],\n model.correctResponse || []\n );\n\n const alternateResponses = buildAlternateResponses(\n model.categories || [],\n model.choices || [],\n model.correctResponse || []\n );\n\n const choices = model.choices.map(c => {\n c.correctResponseCount = this.countChoiceInCorrectResponse(c);\n return c;\n });\n\n return (\n <IdProvider value={this.uid}>\n <layout.ConfigLayout\n settings={\n <Panel\n model={model}\n onChangeModel={onChange}\n configuration={configuration}\n onChangeConfiguration={onConfigurationChanged}\n groups={{\n Settings: {\n partialScoring:\n partialScoring.settings && toggle(partialScoring.label),\n lockChoiceOrder:\n lockChoiceOrder.settings && toggle(lockChoiceOrder.label),\n promptEnabled: prompt.settings && toggle(prompt.label),\n feedbackEnabled:\n feedback.settings && toggle(feedback.label)\n },\n Properties: {\n teacherInstructionsEnabled:\n teacherInstructions.settings &&\n toggle(teacherInstructions.label),\n studentInstructionsEnabled:\n studentInstructions.settings &&\n toggle(studentInstructions.label),\n rationaleEnabled:\n rationale.settings && toggle(rationale.label),\n scoringType:\n scoringType.settings &&\n radio(scoringType.label, ['auto', 'rubric'])\n }\n }}\n />\n }\n >\n <div className={classNames(classes.design, className)}>\n {promptEnabled && (\n <InputContainer\n label={prompt.label}\n className={classes.promptHolder}\n >\n <EditableHtml\n className={classes.prompt}\n markup={model.prompt || ''}\n onChange={this.onPromptChanged}\n imageSupport={imageSupport}\n nonEmpty={false}\n disableUnderline\n toolbarOpts={toolbarOpts}\n />\n </InputContainer>\n )}\n\n {teacherInstructionsEnabled && (\n <InputContainer\n label={teacherInstructions.label}\n className={classes.inputHolder}\n >\n <EditableHtml\n className={classes.input}\n markup={model.teacherInstructions || ''}\n onChange={this.changeTeacherInstructions}\n imageSupport={imageSupport}\n nonEmpty={false}\n toolbarOpts={toolbarOpts}\n />\n </InputContainer>\n )}\n\n {rationaleEnabled && (\n <InputContainer\n label={rationale.label}\n className={classes.inputHolder}\n >\n <EditableHtml\n className={classes.input}\n markup={model.rationale || ''}\n onChange={this.changeRationale}\n imageSupport={imageSupport}\n nonEmpty={false}\n toolbarOpts={toolbarOpts}\n />\n </InputContainer>\n )}\n\n <Categories\n imageSupport={imageSupport}\n model={model}\n categories={categories || []}\n onModelChanged={this.updateModel}\n toolbarOpts={toolbarOpts}\n />\n\n <Header\n className={classes.alternatesHeader}\n label=\"Alternate Responses\"\n buttonLabel=\"ADD AN ALTERNATE RESPONSE\"\n onAdd={this.onAddAlternateResponse}\n />\n\n {alternateResponses.map((categoriesList, index) => {\n return (\n <React.Fragment key={index}>\n <Header\n className={classes.alternatesHeader}\n label=\"Alternate Response\"\n buttonLabel=\"REMOVE ALTERNATE RESPONSE\"\n onAdd={() => this.onRemoveAlternateResponse(index)}\n />\n\n <AlternateResponses\n altIndex={index}\n imageSupport={imageSupport}\n model={model}\n categories={categoriesList}\n onModelChanged={this.updateModel}\n />\n </React.Fragment>\n );\n })}\n\n <Divider />\n <Choices\n imageSupport={imageSupport}\n choices={choices}\n model={model}\n onModelChanged={this.updateModel}\n toolbarOpts={toolbarOpts}\n />\n\n {feedbackEnabled && (\n <FeedbackConfig\n feedback={model.feedback}\n onChange={this.changeFeedback}\n toolbarOpts={toolbarOpts}\n />\n )}\n </div>\n </layout.ConfigLayout>\n </IdProvider>\n );\n }\n}\n\nconst styles = theme => ({\n alternatesHeader: {\n paddingTop: theme.spacing.unit * 2,\n paddingBottom: theme.spacing.unit * 2\n },\n text: {\n paddingTop: theme.spacing.unit * 2,\n paddingBottom: theme.spacing.unit * 2\n },\n design: {\n paddingTop: theme.spacing.unit,\n paddingBottom: theme.spacing.unit\n },\n inputHolder: {\n width: '100%',\n paddingBottom: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2\n },\n input: {\n paddingTop: theme.spacing.unit * 2,\n width: '100%',\n maxWidth: '600px'\n },\n prompt: {\n paddingTop: theme.spacing.unit * 2,\n width: '100%'\n },\n promptHolder: {\n width: '100%',\n paddingBottom: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2\n },\n title: {\n marginBottom: '30px'\n }\n});\n\nexport default withDragContext(withStyles(styles)(Design));\n"],"file":"index.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/design/index.jsx"],"names":["Panel","settings","toggle","radio","IdProvider","uid","Provider","Design","props","model","onChange","updatedModel","correctResponse","choices","categories","map","c","id","label","h","content","categoryCount","rationale","teacherInstructions","feedback","updateModel","cr","alternateResponses","prompt","index","filter","alt","altIndex","choice","generateId","classes","className","imageSupport","configuration","onConfigurationChanged","partialScoring","lockChoiceOrder","studentInstructions","scoringType","spellCheck","teacherInstructionsEnabled","promptEnabled","rationaleEnabled","feedbackEnabled","spellCheckEnabled","toolbarOpts","toolbarEditorPosition","position","config","columns","correctResponseCount","countChoiceInCorrectResponse","Settings","Properties","studentInstructionsEnabled","design","promptHolder","onPromptChanged","inputHolder","input","changeTeacherInstructions","changeRationale","alternatesHeader","onAddAlternateResponse","categoriesList","onRemoveAlternateResponse","changeFeedback","React","Component","PropTypes","object","isRequired","string","func","shape","add","styles","theme","paddingTop","spacing","unit","paddingBottom","text","width","marginBottom","maxWidth","title"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport {\n FeedbackConfig,\n InputContainer,\n layout,\n settings,\n} from '@pie-lib/config-ui';\nimport {\n countInAnswer,\n ensureNoExtraChoicesInAnswer,\n} from '@pie-lib/categorize';\nimport EditableHtml from '@pie-lib/editable-html';\nimport { uid, withDragContext } from '@pie-lib/drag';\n\nimport Categories from './categories';\nimport AlternateResponses from './categories/alternateResponses';\nimport Choices from './choices';\nimport { Divider } from './buttons';\nimport { buildAlternateResponses, buildCategories } from './builder';\nimport Header from './header';\n\nconst { Panel, toggle, radio } = settings;\nconst { Provider: IdProvider } = uid;\n\nexport class Design extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n configuration: PropTypes.object,\n className: PropTypes.string,\n onConfigurationChanged: PropTypes.func,\n model: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n uid: PropTypes.string,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n };\n\n constructor(props) {\n super(props);\n this.uid = props.uid || uid.generateId();\n }\n\n updateModel = (props) => {\n const { model, onChange } = this.props;\n\n const updatedModel = {\n ...model,\n ...props,\n };\n\n //Ensure that there are no extra choices in correctResponse, if the user has decided that only one choice may be used.\n updatedModel.correctResponse = ensureNoExtraChoicesInAnswer(\n updatedModel.correctResponse || [],\n updatedModel.choices\n );\n\n //clean categories\n updatedModel.categories = updatedModel.categories.map((c) => ({\n id: c.id,\n label: c.label,\n }));\n\n updatedModel.choices = updatedModel.choices.map((h) => ({\n id: h.id,\n content: h.content,\n categoryCount: h.categoryCount,\n }));\n\n onChange(updatedModel);\n };\n\n changeRationale = (rationale) => {\n const { model, onChange } = this.props;\n\n onChange({\n ...model,\n rationale,\n });\n };\n\n changeTeacherInstructions = (teacherInstructions) => {\n const { model, onChange } = this.props;\n\n onChange({\n ...model,\n teacherInstructions,\n });\n };\n\n changeFeedback = (feedback) => {\n this.updateModel({ feedback });\n };\n\n onAddAlternateResponse = () => {\n const {\n model: { correctResponse },\n } = this.props;\n\n this.updateModel({\n correctResponse: (correctResponse || []).map((cr) => ({\n ...cr,\n alternateResponses: [...(cr.alternateResponses || []), []],\n })),\n });\n };\n\n onPromptChanged = (prompt) => this.updateModel({ prompt });\n\n onRemoveAlternateResponse = (index) => {\n const {\n model: { correctResponse },\n } = this.props;\n\n this.updateModel({\n correctResponse: (correctResponse || []).map((cr) => ({\n ...cr,\n alternateResponses: (cr.alternateResponses || []).filter(\n (alt, altIndex) => altIndex !== index\n ),\n })),\n });\n };\n\n countChoiceInCorrectResponse = (choice) => {\n const { model } = this.props;\n\n return countInAnswer(choice.id, model.correctResponse);\n };\n\n render() {\n const {\n classes,\n className,\n model,\n imageSupport,\n configuration,\n onChange,\n onConfigurationChanged,\n } = this.props;\n const {\n partialScoring = {},\n lockChoiceOrder = {},\n teacherInstructions = {},\n studentInstructions = {},\n rationale = {},\n scoringType = {},\n feedback = {},\n prompt = {},\n spellCheck = {},\n } = configuration || {};\n const {\n teacherInstructionsEnabled,\n promptEnabled,\n rationaleEnabled,\n feedbackEnabled,\n spellCheckEnabled,\n } = model || {};\n\n const toolbarOpts = {};\n\n switch (model.toolbarEditorPosition) {\n case 'top':\n toolbarOpts.position = 'top';\n break;\n default:\n toolbarOpts.position = 'bottom';\n break;\n }\n\n const config = model.config || {};\n config.choices = config.choices || { label: '', columns: 2 };\n\n const categories = buildCategories(\n model.categories || [],\n model.choices || [],\n model.correctResponse || []\n );\n\n const alternateResponses = buildAlternateResponses(\n model.categories || [],\n model.choices || [],\n model.correctResponse || []\n );\n\n const choices = model.choices.map((c) => {\n c.correctResponseCount = this.countChoiceInCorrectResponse(c);\n return c;\n });\n\n return (\n <IdProvider value={this.uid}>\n <layout.ConfigLayout\n settings={\n <Panel\n model={model}\n onChangeModel={onChange}\n configuration={configuration}\n onChangeConfiguration={onConfigurationChanged}\n groups={{\n Settings: {\n partialScoring:\n partialScoring.settings && toggle(partialScoring.label),\n lockChoiceOrder:\n lockChoiceOrder.settings && toggle(lockChoiceOrder.label),\n promptEnabled: prompt.settings && toggle(prompt.label),\n feedbackEnabled: feedback.settings && toggle(feedback.label),\n },\n Properties: {\n teacherInstructionsEnabled:\n teacherInstructions.settings &&\n toggle(teacherInstructions.label),\n studentInstructionsEnabled:\n studentInstructions.settings &&\n toggle(studentInstructions.label),\n rationaleEnabled:\n rationale.settings && toggle(rationale.label),\n spellCheckEnabled:\n spellCheck.settings && toggle(spellCheck.label),\n scoringType:\n scoringType.settings &&\n radio(scoringType.label, ['auto', 'rubric']),\n },\n }}\n />\n }\n >\n <div className={classNames(classes.design, className)}>\n {promptEnabled && (\n <InputContainer\n label={prompt.label}\n className={classes.promptHolder}\n >\n <EditableHtml\n className={classes.prompt}\n markup={model.prompt || ''}\n onChange={this.onPromptChanged}\n imageSupport={imageSupport}\n nonEmpty={false}\n disableUnderline\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n />\n </InputContainer>\n )}\n\n {teacherInstructionsEnabled && (\n <InputContainer\n label={teacherInstructions.label}\n className={classes.inputHolder}\n >\n <EditableHtml\n className={classes.input}\n markup={model.teacherInstructions || ''}\n onChange={this.changeTeacherInstructions}\n imageSupport={imageSupport}\n nonEmpty={false}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n />\n </InputContainer>\n )}\n\n {rationaleEnabled && (\n <InputContainer\n label={rationale.label}\n className={classes.inputHolder}\n >\n <EditableHtml\n className={classes.input}\n markup={model.rationale || ''}\n onChange={this.changeRationale}\n imageSupport={imageSupport}\n nonEmpty={false}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n />\n </InputContainer>\n )}\n\n <Categories\n imageSupport={imageSupport}\n model={model}\n categories={categories || []}\n onModelChanged={this.updateModel}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n />\n\n <Header\n className={classes.alternatesHeader}\n label=\"Alternate Responses\"\n buttonLabel=\"ADD AN ALTERNATE RESPONSE\"\n onAdd={this.onAddAlternateResponse}\n />\n\n {alternateResponses.map((categoriesList, index) => {\n return (\n <React.Fragment key={index}>\n <Header\n className={classes.alternatesHeader}\n label=\"Alternate Response\"\n buttonLabel=\"REMOVE ALTERNATE RESPONSE\"\n onAdd={() => this.onRemoveAlternateResponse(index)}\n />\n\n <AlternateResponses\n altIndex={index}\n imageSupport={imageSupport}\n model={model}\n categories={categoriesList}\n onModelChanged={this.updateModel}\n />\n </React.Fragment>\n );\n })}\n\n <Divider />\n <Choices\n imageSupport={imageSupport}\n choices={choices}\n model={model}\n onModelChanged={this.updateModel}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n />\n\n {feedbackEnabled && (\n <FeedbackConfig\n feedback={model.feedback}\n onChange={this.changeFeedback}\n toolbarOpts={toolbarOpts}\n />\n )}\n </div>\n </layout.ConfigLayout>\n </IdProvider>\n );\n }\n}\n\nconst styles = (theme) => ({\n alternatesHeader: {\n paddingTop: theme.spacing.unit * 2,\n paddingBottom: theme.spacing.unit * 2,\n },\n text: {\n paddingTop: theme.spacing.unit * 2,\n paddingBottom: theme.spacing.unit * 2,\n },\n design: {\n paddingTop: theme.spacing.unit,\n paddingBottom: theme.spacing.unit,\n },\n inputHolder: {\n width: '100%',\n paddingBottom: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n },\n input: {\n paddingTop: theme.spacing.unit * 2,\n width: '100%',\n maxWidth: '600px',\n },\n prompt: {\n paddingTop: theme.spacing.unit * 2,\n width: '100%',\n },\n promptHolder: {\n width: '100%',\n paddingBottom: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n },\n title: {\n marginBottom: '30px',\n },\n});\n\nexport default withDragContext(withStyles(styles)(Design));\n"],"file":"index.js"}
|
|
@@ -52,7 +52,8 @@ var InputHeader = /*#__PURE__*/function (_React$Component) {
|
|
|
52
52
|
classes = _this$props.classes,
|
|
53
53
|
className = _this$props.className,
|
|
54
54
|
imageSupport = _this$props.imageSupport,
|
|
55
|
-
toolbarOpts = _this$props.toolbarOpts
|
|
55
|
+
toolbarOpts = _this$props.toolbarOpts,
|
|
56
|
+
spellCheck = _this$props.spellCheck;
|
|
56
57
|
var choicePlugins = {
|
|
57
58
|
audio: {
|
|
58
59
|
disabled: true
|
|
@@ -71,7 +72,8 @@ var InputHeader = /*#__PURE__*/function (_React$Component) {
|
|
|
71
72
|
onChange: onChange,
|
|
72
73
|
className: classes.editor,
|
|
73
74
|
pluginProps: choicePlugins,
|
|
74
|
-
toolbarOpts: toolbarOpts
|
|
75
|
+
toolbarOpts: toolbarOpts,
|
|
76
|
+
spellCheck: spellCheck
|
|
75
77
|
}));
|
|
76
78
|
}
|
|
77
79
|
}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/design/input-header.jsx"],"names":["InputHeader","props","onChange","label","classes","className","imageSupport","toolbarOpts","choicePlugins","audio","disabled","video","inputHeader","editor","React","Component","PropTypes","object","isRequired","string","func","onDelete","shape","add","styles","theme","flex","paddingBottom","spacing","unit","iconButtonRoot","width","height","display","justifyContent"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;IAEaA,W;;;;;;;;;;;;WAeX,kBAAS;AACP,
|
|
1
|
+
{"version":3,"sources":["../../src/design/input-header.jsx"],"names":["InputHeader","props","onChange","label","classes","className","imageSupport","toolbarOpts","spellCheck","choicePlugins","audio","disabled","video","inputHeader","editor","React","Component","PropTypes","object","isRequired","string","func","onDelete","shape","add","styles","theme","flex","paddingBottom","spacing","unit","iconButtonRoot","width","height","display","justifyContent"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;IAEaA,W;;;;;;;;;;;;WAeX,kBAAS;AACP,wBAAuF,KAAKC,KAA5F;AAAA,UAAQC,QAAR,eAAQA,QAAR;AAAA,UAAkBC,KAAlB,eAAkBA,KAAlB;AAAA,UAAyBC,OAAzB,eAAyBA,OAAzB;AAAA,UAAkCC,SAAlC,eAAkCA,SAAlC;AAAA,UAA6CC,YAA7C,eAA6CA,YAA7C;AAAA,UAA2DC,WAA3D,eAA2DA,WAA3D;AAAA,UAAwEC,UAAxE,eAAwEA,UAAxE;AACA,UAAMC,aAAa,GAAG;AACpBC,QAAAA,KAAK,EAAE;AAAEC,UAAAA,QAAQ,EAAE;AAAZ,SADa;AAEpBC,QAAAA,KAAK,EAAE;AAAED,UAAAA,QAAQ,EAAE;AAAZ;AAFa,OAAtB;AAKA,0BACE;AAAK,QAAA,SAAS,EAAE,4BAAWP,OAAO,CAACS,WAAnB,EAAgCR,SAAhC;AAAhB,sBACE,gCAAC,wBAAD;AACE,QAAA,YAAY,EAAEC,YADhB;AAEE,QAAA,gBAAgB,MAFlB;AAGE,QAAA,KAAK,EAAE,OAHT;AAIE,QAAA,MAAM,EAAEH,KAJV;AAKE,QAAA,QAAQ,EAAED,QALZ;AAME,QAAA,SAAS,EAAEE,OAAO,CAACU,MANrB;AAOE,QAAA,WAAW,EAAEL,aAPf;AAQE,QAAA,WAAW,EAAEF,WARf;AASE,QAAA,UAAU,EAAEC;AATd,QADF,CADF;AAeD;;;EArC8BO,kBAAMC,S;;;iCAA1BhB,W,eACQ;AACjBI,EAAAA,OAAO,EAAEa,sBAAUC,MAAV,CAAiBC,UADT;AAEjBd,EAAAA,SAAS,EAAEY,sBAAUG,MAFJ;AAGjBjB,EAAAA,KAAK,EAAEc,sBAAUG,MAHA;AAIjBlB,EAAAA,QAAQ,EAAEe,sBAAUI,IAJH;AAKjBC,EAAAA,QAAQ,EAAEL,sBAAUI,IALH;AAMjBf,EAAAA,YAAY,EAAEW,sBAAUM,KAAV,CAAgB;AAC5BC,IAAAA,GAAG,EAAEP,sBAAUI,IAAV,CAAeF,UADQ;AAE5B,cAAQF,sBAAUI,IAAV,CAAeF;AAFK,GAAhB,CANG;AAUjBZ,EAAAA,WAAW,EAAEU,sBAAUC;AAVN,C;iCADRlB,W,kBAcW,E;;AAyBxB,IAAMyB,MAAM,GAAG,SAATA,MAAS,CAAAC,KAAK;AAAA,SAAK;AACvBZ,IAAAA,MAAM,EAAE;AACNa,MAAAA,IAAI,EAAE,GADA;AAENC,MAAAA,aAAa,EAAEF,KAAK,CAACG,OAAN,CAAcC;AAFvB,KADe;AAKvBC,IAAAA,cAAc,EAAE;AACdC,MAAAA,KAAK,EAAE,MADO;AAEdC,MAAAA,MAAM,EAAE;AAFM,KALO;AASvBpB,IAAAA,WAAW,EAAE;AACXqB,MAAAA,OAAO,EAAE,MADE;AAEXC,MAAAA,cAAc,EAAE;AAFL;AATU,GAAL;AAAA,CAApB;;eAce,wBAAWV,MAAX,EAAmBzB,WAAnB,C","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport EditableHtml from '@pie-lib/editable-html';\n\nexport class InputHeader extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n label: PropTypes.string,\n onChange: PropTypes.func,\n onDelete: PropTypes.func,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired\n }),\n toolbarOpts: PropTypes.object\n };\n\n static defaultProps = {};\n render() {\n const { onChange, label, classes, className, imageSupport, toolbarOpts, spellCheck } = this.props;\n const choicePlugins = {\n audio: { disabled: true },\n video: { disabled: true }\n };\n\n return (\n <div className={classNames(classes.inputHeader, className)}>\n <EditableHtml\n imageSupport={imageSupport}\n autoWidthToolbar\n label={'label'}\n markup={label}\n onChange={onChange}\n className={classes.editor}\n pluginProps={choicePlugins}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheck}\n />\n </div>\n );\n }\n}\nconst styles = theme => ({\n editor: {\n flex: '1',\n paddingBottom: theme.spacing.unit\n },\n iconButtonRoot: {\n width: 'auto',\n height: 'auto'\n },\n inputHeader: {\n display: 'flex',\n justifyContent: 'space-between'\n }\n});\nexport default withStyles(styles)(InputHeader);\n"],"file":"input-header.js"}
|
package/configure/lib/index.js
CHANGED
|
@@ -31,9 +31,9 @@ var _main = _interopRequireDefault(require("./main"));
|
|
|
31
31
|
|
|
32
32
|
var _defaults = _interopRequireDefault(require("./defaults"));
|
|
33
33
|
|
|
34
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
34
|
+
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
35
|
|
|
36
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
36
|
+
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
37
|
|
|
38
38
|
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); }; }
|
|
39
39
|
|
package/configure/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"private": true,
|
|
4
4
|
"main": "lib/index.js",
|
|
5
5
|
"module": "src/index.js",
|
|
6
|
-
"version": "5.4.
|
|
6
|
+
"version": "5.4.20",
|
|
7
7
|
"description": "",
|
|
8
8
|
"scripts": {},
|
|
9
9
|
"author": "pie framework developers",
|
|
@@ -13,10 +13,10 @@
|
|
|
13
13
|
"@material-ui/icons": "^3.0.1",
|
|
14
14
|
"@pie-framework/pie-configure-events": "^1.2.0",
|
|
15
15
|
"@pie-lib/categorize": "^0.6.24",
|
|
16
|
-
"@pie-lib/config-ui": "^10.
|
|
16
|
+
"@pie-lib/config-ui": "^10.11.0",
|
|
17
17
|
"@pie-lib/drag": "^1.1.52",
|
|
18
|
-
"@pie-lib/editable-html": "^7.
|
|
19
|
-
"@pie-lib/render-ui": "^4.12.
|
|
18
|
+
"@pie-lib/editable-html": "^7.20.0",
|
|
19
|
+
"@pie-lib/render-ui": "^4.12.5",
|
|
20
20
|
"classnames": "^2.2.5",
|
|
21
21
|
"debug": "^3.1.0",
|
|
22
22
|
"lodash": "^4.17.15",
|
package/controller/lib/index.js
CHANGED
|
@@ -5,13 +5,13 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
+
exports.outcome = exports.normalize = exports.model = exports.getTotalScore = exports.getPartialScore = exports.getCorrectness = exports.createDefaultModel = exports.createCorrectResponseSession = void 0;
|
|
8
9
|
Object.defineProperty(exports, "score", {
|
|
9
10
|
enumerable: true,
|
|
10
11
|
get: function get() {
|
|
11
12
|
return _categorize.score;
|
|
12
13
|
}
|
|
13
14
|
});
|
|
14
|
-
exports.createCorrectResponseSession = exports.outcome = exports.model = exports.normalize = exports.createDefaultModel = exports.getCorrectness = exports.getTotalScore = exports.getPartialScore = void 0;
|
|
15
15
|
|
|
16
16
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
17
17
|
|
|
@@ -29,9 +29,9 @@ var _controllerUtils = require("@pie-lib/controller-utils");
|
|
|
29
29
|
|
|
30
30
|
var _defaults = _interopRequireDefault(require("./defaults"));
|
|
31
31
|
|
|
32
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
32
|
+
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; }
|
|
33
33
|
|
|
34
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
34
|
+
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; }
|
|
35
35
|
|
|
36
36
|
var getPartialScore = function getPartialScore(correctResponse, builtCategories) {
|
|
37
37
|
// in the resulted best scenario we make a sum with all the correct responses
|
package/docs/config-schema.json
CHANGED
|
@@ -35,6 +35,22 @@
|
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
37
|
},
|
|
38
|
+
"spellCheck": {
|
|
39
|
+
"title": "ConfigureProp",
|
|
40
|
+
"type": "object",
|
|
41
|
+
"properties": {
|
|
42
|
+
"settings": {
|
|
43
|
+
"description": "Indicates if the item has to be displayed in the Settings Panel",
|
|
44
|
+
"type": "boolean",
|
|
45
|
+
"title": "settings"
|
|
46
|
+
},
|
|
47
|
+
"label": {
|
|
48
|
+
"description": "Indicates the label for the item that has to be displayed in the Settings Panel",
|
|
49
|
+
"type": "string",
|
|
50
|
+
"title": "label"
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
},
|
|
38
54
|
"scoringType": {
|
|
39
55
|
"title": "ConfigureProp",
|
|
40
56
|
"type": "object",
|
|
@@ -26,6 +26,18 @@ Indicates if the item has to be displayed in the Settings Panel
|
|
|
26
26
|
|
|
27
27
|
Indicates the label for the item that has to be displayed in the Settings Panel
|
|
28
28
|
|
|
29
|
+
# `spellCheck` (object)
|
|
30
|
+
|
|
31
|
+
Properties of the `spellCheck` object:
|
|
32
|
+
|
|
33
|
+
## `settings` (boolean)
|
|
34
|
+
|
|
35
|
+
Indicates if the item has to be displayed in the Settings Panel
|
|
36
|
+
|
|
37
|
+
## `label` (string)
|
|
38
|
+
|
|
39
|
+
Indicates the label for the item that has to be displayed in the Settings Panel
|
|
40
|
+
|
|
29
41
|
# `scoringType` (object)
|
|
30
42
|
|
|
31
43
|
Properties of the `scoringType` object:
|
package/docs/pie-schema.json
CHANGED
|
@@ -373,6 +373,11 @@
|
|
|
373
373
|
"type": "boolean",
|
|
374
374
|
"title": "rationaleEnabled"
|
|
375
375
|
},
|
|
376
|
+
"spellCheckEnabled": {
|
|
377
|
+
"description": "Indicates if spellcheck is enabled for the author. Default value is true",
|
|
378
|
+
"type": "boolean",
|
|
379
|
+
"title": "spellCheckEnabled"
|
|
380
|
+
},
|
|
376
381
|
"studentInstructionsEnabled": {
|
|
377
382
|
"description": "Indicates if Student Instructions are enabled",
|
|
378
383
|
"type": "boolean",
|
|
@@ -417,6 +422,7 @@
|
|
|
417
422
|
"id",
|
|
418
423
|
"prompt",
|
|
419
424
|
"rationaleEnabled",
|
|
425
|
+
"spellCheckEnabled",
|
|
420
426
|
"studentInstructionsEnabled",
|
|
421
427
|
"teacherInstructionsEnabled"
|
|
422
428
|
],
|
package/docs/pie-schema.json.md
CHANGED
|
@@ -150,6 +150,10 @@ Indicates if Feedback is enabled
|
|
|
150
150
|
|
|
151
151
|
Indicates if Rationale are enabled
|
|
152
152
|
|
|
153
|
+
# `spellCheckEnabled` (boolean, required)
|
|
154
|
+
|
|
155
|
+
Indicates if spellcheck is enabled for the author. Default value is true
|
|
156
|
+
|
|
153
157
|
# `studentInstructionsEnabled` (boolean, required)
|
|
154
158
|
|
|
155
159
|
Indicates if Student Instructions are enabled
|
|
@@ -7,13 +7,14 @@ var _typeof = require("@babel/runtime/helpers/typeof");
|
|
|
7
7
|
Object.defineProperty(exports, "__esModule", {
|
|
8
8
|
value: true
|
|
9
9
|
});
|
|
10
|
+
exports.Categories = void 0;
|
|
10
11
|
Object.defineProperty(exports, "CategoryType", {
|
|
11
12
|
enumerable: true,
|
|
12
13
|
get: function get() {
|
|
13
14
|
return _category.CategoryType;
|
|
14
15
|
}
|
|
15
16
|
});
|
|
16
|
-
exports["default"] =
|
|
17
|
+
exports["default"] = void 0;
|
|
17
18
|
|
|
18
19
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
19
20
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/categorize/categories.jsx"],"names":["Categories","props","classes","categories","model","disabled","onDropChoice","onRemoveChoice","categoriesPerRow","chunkedCategories","Math","ceil","length","map","cat","rowIndex","items","forEach","c","columnIndex","push","label","__html","concat","Array","fill","h","id","category","React","Component","PropTypes","object","isRequired","arrayOf","shape","CategoryType","number","bool","func","styles","theme","flex","color","text","backgroundColor","background","fontSize","typography","textAlign","paddingTop","spacing","unit"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../src/categorize/categories.jsx"],"names":["Categories","props","classes","categories","model","disabled","onDropChoice","onRemoveChoice","categoriesPerRow","chunkedCategories","Math","ceil","length","map","cat","rowIndex","items","forEach","c","columnIndex","push","label","__html","concat","Array","fill","h","id","category","React","Component","PropTypes","object","isRequired","arrayOf","shape","CategoryType","number","bool","func","styles","theme","flex","color","text","backgroundColor","background","fontSize","typography","textAlign","paddingTop","spacing","unit"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport Typography from '@material-ui/core/Typography';\nimport { color } from '@pie-lib/render-ui';\n\nimport chunk from 'lodash/chunk';\n\nimport GridContent from './grid-content';\nimport Category, { CategoryType } from './category';\n\nexport { CategoryType };\n\nexport class Categories extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n categories: PropTypes.arrayOf(PropTypes.shape(CategoryType)),\n model: PropTypes.shape({\n categoriesPerRow: PropTypes.number\n }),\n disabled: PropTypes.bool,\n onDropChoice: PropTypes.func.isRequired,\n onRemoveChoice: PropTypes.func.isRequired,\n };\n\n static defaultProps = {\n model: {\n categoriesPerRow: 1\n }\n };\n\n render() {\n const {\n classes,\n categories,\n model,\n disabled,\n onDropChoice,\n onRemoveChoice,\n } = this.props;\n const { categoriesPerRow } = model;\n\n // split categories into an array of arrays (inner array),\n // where each inner array represents how many categories should be displayed on one row\n const chunkedCategories = chunk(categories, categoriesPerRow);\n\n return (\n <GridContent\n columns={categoriesPerRow}\n className={classes.categories}\n rows={Math.ceil(categories.length / categoriesPerRow) * 2}\n >\n {\n chunkedCategories.map((cat, rowIndex) => {\n let items = [];\n\n // for each inner array of categories, create a row with category titles\n cat.forEach((c, columnIndex) => {\n items.push((\n <Typography className={classes.label} key={`category-label-${rowIndex}-${columnIndex}`}>\n <span dangerouslySetInnerHTML={{ __html: c.label }}/>\n </Typography>));\n });\n\n // if the last row has less categories than max on a row, fill the spaces with divs\n items = items.concat(Array(categoriesPerRow - cat.length).fill(<div/>));\n\n // for each inner array of categories, create a row with category containers\n cat.forEach((c, columnIndex) => {\n items.push(<Category\n onDropChoice={h => onDropChoice(c.id, h)}\n onRemoveChoice={onRemoveChoice}\n disabled={disabled}\n className={classes.category}\n key={`category-element-${rowIndex}-${columnIndex}`}\n {...c}\n />);\n });\n\n // if the last row has less categories than max on a row, fill the spaces with divs\n items = items.concat(Array(categoriesPerRow - cat.length).fill(<div/>));\n\n return items;\n })\n }\n </GridContent>\n );\n }\n}\n\nconst styles = theme => ({\n categories: {\n flex: 1\n },\n label: {\n color: color.text(),\n backgroundColor: color.background(),\n fontSize: theme.typography.fontSize,\n textAlign: 'center',\n paddingTop: theme.spacing.unit\n }\n});\nexport default withStyles(styles)(Categories);\n"],"file":"categories.js"}
|
|
@@ -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["default"] = exports.
|
|
8
|
+
exports["default"] = exports.CategoryType = exports.Category = void 0;
|
|
9
9
|
|
|
10
10
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
11
|
|
|
@@ -35,9 +35,9 @@ var _droppablePlaceholder = _interopRequireDefault(require("./droppable-placehol
|
|
|
35
35
|
|
|
36
36
|
var _renderUi = require("@pie-lib/render-ui");
|
|
37
37
|
|
|
38
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
38
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
39
39
|
|
|
40
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
40
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
41
41
|
|
|
42
42
|
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); }; }
|
|
43
43
|
|
package/lib/categorize/choice.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["default"] = exports.
|
|
8
|
+
exports.spec = exports["default"] = exports.Layout = exports.ChoiceType = exports.Choice = void 0;
|
|
9
9
|
|
|
10
10
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
11
|
|
|
@@ -39,9 +39,9 @@ var _renderUi = require("@pie-lib/render-ui");
|
|
|
39
39
|
|
|
40
40
|
var _debug = _interopRequireDefault(require("debug"));
|
|
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
|
|
|
@@ -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["default"] = exports.
|
|
8
|
+
exports.spec = exports["default"] = exports.DroppablePlaceholder = void 0;
|
|
9
9
|
|
|
10
10
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
11
|
|
|
@@ -27,9 +27,9 @@ var _styles = require("@material-ui/core/styles");
|
|
|
27
27
|
|
|
28
28
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
29
29
|
|
|
30
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
30
|
+
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; }
|
|
31
31
|
|
|
32
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
32
|
+
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; }
|
|
33
33
|
|
|
34
34
|
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); }; }
|
|
35
35
|
|
package/lib/index.js
CHANGED
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.js"],"names":["Categorize","m","_model","dispatchEvent","ModelSetEvent","tagName","toLowerCase","isComplete","render","_session","Array","isArray","answers","length","s","SessionChangedEvent","el","React","createElement","CategorizeComponent","model","session","onAnswersChange","changeAnswers","bind","onShowCorrectToggle","ReactDOM","HTMLElement"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAIA;;;;;;IAEqBA,U;;;;;;;;;;;;SACnB,aAAUC,CAAV,EAAa;AACX,WAAKC,MAAL,GAAcD,CAAd;AAEA,WAAKE,aAAL,CACE,IAAIC,8BAAJ,CACE,KAAKC,OAAL,CAAaC,WAAb,EADF,EAEE,KAAKC,UAAL,EAFF,EAGE,CAAC,CAAC,KAAKL,MAHT,CADF;AAOA,WAAKM,MAAL;AACD;;;WAED,sBAAa;AACX,UAAI,CAAC,KAAKC,QAAV,EAAoB;AAClB,eAAO,KAAP;AACD;;AAED,aACEC,KAAK,CAACC,OAAN,CAAc,KAAKF,QAAL,CAAcG,OAA5B,KAAwC,KAAKH,QAAL,CAAcG,OAAd,CAAsBC,MAAtB,GAA+B,CADzE;AAGD;;;
|
|
1
|
+
{"version":3,"sources":["../src/index.js"],"names":["Categorize","m","_model","dispatchEvent","ModelSetEvent","tagName","toLowerCase","isComplete","render","_session","Array","isArray","answers","length","s","SessionChangedEvent","el","React","createElement","CategorizeComponent","model","session","onAnswersChange","changeAnswers","bind","onShowCorrectToggle","ReactDOM","HTMLElement"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAIA;;;;;;IAEqBA,U;;;;;;;;;;;;SACnB,aAAUC,CAAV,EAAa;AACX,WAAKC,MAAL,GAAcD,CAAd;AAEA,WAAKE,aAAL,CACE,IAAIC,8BAAJ,CACE,KAAKC,OAAL,CAAaC,WAAb,EADF,EAEE,KAAKC,UAAL,EAFF,EAGE,CAAC,CAAC,KAAKL,MAHT,CADF;AAOA,WAAKM,MAAL;AACD;;;WAED,sBAAa;AACX,UAAI,CAAC,KAAKC,QAAV,EAAoB;AAClB,eAAO,KAAP;AACD;;AAED,aACEC,KAAK,CAACC,OAAN,CAAc,KAAKF,QAAL,CAAcG,OAA5B,KAAwC,KAAKH,QAAL,CAAcG,OAAd,CAAsBC,MAAtB,GAA+B,CADzE;AAGD;;;SAWD,eAAc;AACZ,aAAO,KAAKJ,QAAZ;AACD,K;SAXD,aAAYK,CAAZ,EAAe;AACb,UAAIA,CAAC,IAAI,CAACA,CAAC,CAACF,OAAZ,EAAqB;AACnBE,QAAAA,CAAC,CAACF,OAAF,GAAY,EAAZ;AACD;;AAED,WAAKH,QAAL,GAAgBK,CAAhB;AACA,WAAKN,MAAL;AACD;;;WAMD,uBAAcI,OAAd,EAAuB;AACrB,WAAKH,QAAL,CAAcG,OAAd,GAAwBA,OAAxB;AAEA,WAAKT,aAAL,CACE,IAAIY,oCAAJ,CAAwB,KAAKV,OAAL,CAAaC,WAAb,EAAxB,EAAoD,KAAKC,UAAL,EAApD,CADF;AAIA,WAAKC,MAAL;AACD;;;WAED,+BAAsB;AACpB,qCAAW,IAAX;AACD;;;WAED,kBAAS;AAAA;;AACP,UAAI,KAAKN,MAAL,IAAe,KAAKO,QAAxB,EAAkC;AAChC,YAAMO,EAAE,gBAAGC,kBAAMC,aAAN,CAAoBC,sBAApB,EAAyC;AAClDC,UAAAA,KAAK,EAAE,KAAKlB,MADsC;AAElDmB,UAAAA,OAAO,EAAE,KAAKZ,QAFoC;AAGlDa,UAAAA,eAAe,EAAE,KAAKC,aAAL,CAAmBC,IAAnB,CAAwB,IAAxB,CAHiC;AAIlDC,UAAAA,mBAAmB,EAAE,KAAKA,mBAAL,CAAyBD,IAAzB,CAA8B,IAA9B;AAJ6B,SAAzC,CAAX;;AAOAE,6BAASlB,MAAT,CAAgBQ,EAAhB,EAAoB,IAApB,EAA0B,YAAM;AAC9B,yCAAW,KAAX;AACD,SAFD;AAGD;AACF;;;kDAhEqCW,W","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport {\n SessionChangedEvent,\n ModelSetEvent\n} from '@pie-framework/pie-player-events';\nimport CategorizeComponent from './categorize';\n\nexport default class Categorize extends HTMLElement {\n set model(m) {\n this._model = m;\n\n this.dispatchEvent(\n new ModelSetEvent(\n this.tagName.toLowerCase(),\n this.isComplete(),\n !!this._model\n )\n );\n this.render();\n }\n\n isComplete() {\n if (!this._session) {\n return false;\n }\n\n return (\n Array.isArray(this._session.answers) && this._session.answers.length > 0\n );\n }\n\n set session(s) {\n if (s && !s.answers) {\n s.answers = [];\n }\n\n this._session = s;\n this.render();\n }\n\n get session() {\n return this._session;\n }\n\n changeAnswers(answers) {\n this._session.answers = answers;\n\n this.dispatchEvent(\n new SessionChangedEvent(this.tagName.toLowerCase(), this.isComplete())\n );\n\n this.render();\n }\n\n onShowCorrectToggle() {\n renderMath(this);\n }\n\n render() {\n if (this._model && this._session) {\n const el = React.createElement(CategorizeComponent, {\n model: this._model,\n session: this._session,\n onAnswersChange: this.changeAnswers.bind(this),\n onShowCorrectToggle: this.onShowCorrectToggle.bind(this),\n });\n\n ReactDOM.render(el, this, () => {\n renderMath(this);\n });\n }\n }\n}\n"],"file":"index.js"}
|
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
7
|
-
"version": "6.9.
|
|
7
|
+
"version": "6.9.16",
|
|
8
8
|
"description": "",
|
|
9
9
|
"author": "pie framework developers",
|
|
10
10
|
"license": "ISC",
|
|
@@ -12,10 +12,10 @@
|
|
|
12
12
|
"@material-ui/core": "^3.9.2",
|
|
13
13
|
"@pie-framework/pie-player-events": "^0.1.0",
|
|
14
14
|
"@pie-lib/categorize": "^0.6.24",
|
|
15
|
-
"@pie-lib/correct-answer-toggle": "^2.3.
|
|
15
|
+
"@pie-lib/correct-answer-toggle": "^2.3.35",
|
|
16
16
|
"@pie-lib/drag": "^1.1.52",
|
|
17
|
-
"@pie-lib/math-rendering": "^2.3.
|
|
18
|
-
"@pie-lib/render-ui": "^4.12.
|
|
17
|
+
"@pie-lib/math-rendering": "^2.3.13",
|
|
18
|
+
"@pie-lib/render-ui": "^4.12.5",
|
|
19
19
|
"classnames": "^2.2.5",
|
|
20
20
|
"debug": "^4.1.1",
|
|
21
21
|
"lodash": "^4.17.15",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"react-dnd": "^9.3.2",
|
|
25
25
|
"react-dom": "^16.8.1"
|
|
26
26
|
},
|
|
27
|
-
"gitHead": "
|
|
27
|
+
"gitHead": "de8f41ecfc06944b7bc890a167f81818d2bf1845",
|
|
28
28
|
"scripts": {
|
|
29
29
|
"postpublish": "../../scripts/postpublish"
|
|
30
30
|
},
|