@pie-element/categorize 7.9.1-next.4 → 7.9.1-next.78
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/design/categories/RowLabel.js +8 -7
- package/configure/lib/design/categories/RowLabel.js.map +1 -1
- package/configure/lib/design/categories/alternateResponses.js +1 -1
- package/configure/lib/design/categories/alternateResponses.js.map +1 -1
- package/configure/lib/design/categories/index.js +11 -17
- package/configure/lib/design/categories/index.js.map +1 -1
- package/configure/lib/design/choices/config.js +6 -39
- package/configure/lib/design/choices/config.js.map +1 -1
- package/configure/lib/design/choices/index.js +8 -12
- package/configure/lib/design/choices/index.js.map +1 -1
- package/configure/lib/design/header.js +4 -3
- package/configure/lib/design/header.js.map +1 -1
- package/configure/lib/design/index.js +33 -59
- package/configure/lib/design/index.js.map +1 -1
- package/configure/lib/main.js +8 -14
- package/configure/lib/main.js.map +1 -1
- package/lib/categorize/choices.js.map +1 -1
- package/lib/categorize/index.js +5 -12
- package/lib/categorize/index.js.map +1 -1
- package/lib/index.js +27 -0
- package/lib/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -29,8 +29,6 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
|
29
29
|
|
|
30
30
|
var _styles = require("@material-ui/core/styles");
|
|
31
31
|
|
|
32
|
-
var _classnames = _interopRequireDefault(require("classnames"));
|
|
33
|
-
|
|
34
32
|
var _configUi = require("@pie-lib/config-ui");
|
|
35
33
|
|
|
36
34
|
var _categorize = require("@pie-lib/categorize");
|
|
@@ -45,8 +43,6 @@ var _alternateResponses = _interopRequireDefault(require("./categories/alternate
|
|
|
45
43
|
|
|
46
44
|
var _choices = _interopRequireDefault(require("./choices"));
|
|
47
45
|
|
|
48
|
-
var _buttons = require("./buttons");
|
|
49
|
-
|
|
50
46
|
var _builder = require("./builder");
|
|
51
47
|
|
|
52
48
|
var _header = _interopRequireDefault(require("./header"));
|
|
@@ -186,7 +182,6 @@ var Design = /*#__PURE__*/function (_React$Component) {
|
|
|
186
182
|
|
|
187
183
|
var _this$props4 = this.props,
|
|
188
184
|
classes = _this$props4.classes,
|
|
189
|
-
className = _this$props4.className,
|
|
190
185
|
configuration = _this$props4.configuration,
|
|
191
186
|
imageSupport = _this$props4.imageSupport,
|
|
192
187
|
model = _this$props4.model,
|
|
@@ -291,31 +286,9 @@ var Design = /*#__PURE__*/function (_React$Component) {
|
|
|
291
286
|
Properties: panelProperties
|
|
292
287
|
}
|
|
293
288
|
})
|
|
294
|
-
}, /*#__PURE__*/_react["default"].createElement(
|
|
295
|
-
className: (0, _classnames["default"])(classes.design, className)
|
|
296
|
-
}, promptEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
|
|
297
|
-
label: prompt.label,
|
|
298
|
-
className: classes.promptHolder
|
|
299
|
-
}, /*#__PURE__*/_react["default"].createElement(_editableHtml["default"], {
|
|
300
|
-
className: classes.prompt,
|
|
301
|
-
markup: model.prompt || '',
|
|
302
|
-
onChange: this.onPromptChanged,
|
|
303
|
-
imageSupport: imageSupport,
|
|
304
|
-
nonEmpty: false,
|
|
305
|
-
disableUnderline: true,
|
|
306
|
-
toolbarOpts: toolbarOpts,
|
|
307
|
-
spellCheck: spellCheckEnabled,
|
|
308
|
-
maxImageWidth: maxImageWidth && maxImageWidth.prompt,
|
|
309
|
-
maxImageHeight: maxImageHeight && maxImageHeight.prompt,
|
|
310
|
-
uploadSoundSupport: uploadSoundSupport,
|
|
311
|
-
languageCharactersProps: [{
|
|
312
|
-
language: 'spanish'
|
|
313
|
-
}, {
|
|
314
|
-
language: 'special'
|
|
315
|
-
}]
|
|
316
|
-
})), teacherInstructionsEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
|
|
289
|
+
}, teacherInstructionsEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
|
|
317
290
|
label: teacherInstructions.label,
|
|
318
|
-
className: classes.
|
|
291
|
+
className: classes.inputContainer
|
|
319
292
|
}, /*#__PURE__*/_react["default"].createElement(_editableHtml["default"], {
|
|
320
293
|
className: classes.input,
|
|
321
294
|
markup: model.teacherInstructions || '',
|
|
@@ -332,19 +305,20 @@ var Design = /*#__PURE__*/function (_React$Component) {
|
|
|
332
305
|
}, {
|
|
333
306
|
language: 'special'
|
|
334
307
|
}]
|
|
335
|
-
})),
|
|
336
|
-
label:
|
|
337
|
-
className: classes.
|
|
308
|
+
})), promptEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
|
|
309
|
+
label: prompt.label,
|
|
310
|
+
className: classes.inputContainer
|
|
338
311
|
}, /*#__PURE__*/_react["default"].createElement(_editableHtml["default"], {
|
|
339
312
|
className: classes.input,
|
|
340
|
-
markup: model.
|
|
341
|
-
onChange: this.
|
|
313
|
+
markup: model.prompt || '',
|
|
314
|
+
onChange: this.onPromptChanged,
|
|
342
315
|
imageSupport: imageSupport,
|
|
343
316
|
nonEmpty: false,
|
|
317
|
+
disableUnderline: true,
|
|
344
318
|
toolbarOpts: toolbarOpts,
|
|
345
319
|
spellCheck: spellCheckEnabled,
|
|
346
|
-
maxImageWidth: maxImageWidth && maxImageWidth.
|
|
347
|
-
maxImageHeight: maxImageHeight && maxImageHeight.
|
|
320
|
+
maxImageWidth: maxImageWidth && maxImageWidth.prompt,
|
|
321
|
+
maxImageHeight: maxImageHeight && maxImageHeight.prompt,
|
|
348
322
|
uploadSoundSupport: uploadSoundSupport,
|
|
349
323
|
languageCharactersProps: [{
|
|
350
324
|
language: 'spanish'
|
|
@@ -401,11 +375,30 @@ var Design = /*#__PURE__*/function (_React$Component) {
|
|
|
401
375
|
defaultImageMaxWidth: defaultImageMaxWidth,
|
|
402
376
|
defaultImageMaxHeight: defaultImageMaxHeight
|
|
403
377
|
}));
|
|
404
|
-
}),
|
|
378
|
+
}), rationaleEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
|
|
379
|
+
label: rationale.label,
|
|
380
|
+
className: classes.inputContainer
|
|
381
|
+
}, /*#__PURE__*/_react["default"].createElement(_editableHtml["default"], {
|
|
382
|
+
className: classes.input,
|
|
383
|
+
markup: model.rationale || '',
|
|
384
|
+
onChange: this.changeRationale,
|
|
385
|
+
imageSupport: imageSupport,
|
|
386
|
+
nonEmpty: false,
|
|
387
|
+
toolbarOpts: toolbarOpts,
|
|
388
|
+
spellCheck: spellCheckEnabled,
|
|
389
|
+
maxImageWidth: maxImageWidth && maxImageWidth.rationale || defaultImageMaxWidth,
|
|
390
|
+
maxImageHeight: maxImageHeight && maxImageHeight.rationale || defaultImageMaxHeight,
|
|
391
|
+
uploadSoundSupport: uploadSoundSupport,
|
|
392
|
+
languageCharactersProps: [{
|
|
393
|
+
language: 'spanish'
|
|
394
|
+
}, {
|
|
395
|
+
language: 'special'
|
|
396
|
+
}]
|
|
397
|
+
})), feedbackEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.FeedbackConfig, {
|
|
405
398
|
feedback: model.feedback,
|
|
406
399
|
onChange: this.changeFeedback,
|
|
407
400
|
toolbarOpts: toolbarOpts
|
|
408
|
-
})))
|
|
401
|
+
})));
|
|
409
402
|
}
|
|
410
403
|
}]);
|
|
411
404
|
return Design;
|
|
@@ -433,34 +426,15 @@ exports.Design = Design;
|
|
|
433
426
|
var styles = function styles(theme) {
|
|
434
427
|
return {
|
|
435
428
|
alternatesHeader: {
|
|
436
|
-
|
|
437
|
-
paddingBottom: theme.spacing.unit * 2
|
|
429
|
+
marginBottom: theme.spacing.unit * 2
|
|
438
430
|
},
|
|
439
431
|
text: {
|
|
440
432
|
paddingTop: theme.spacing.unit * 2,
|
|
441
433
|
paddingBottom: theme.spacing.unit * 2
|
|
442
434
|
},
|
|
443
|
-
|
|
444
|
-
paddingTop: theme.spacing.unit,
|
|
445
|
-
paddingBottom: theme.spacing.unit
|
|
446
|
-
},
|
|
447
|
-
inputHolder: {
|
|
435
|
+
inputContainer: {
|
|
448
436
|
width: '100%',
|
|
449
|
-
paddingBottom: theme.spacing.unit * 2,
|
|
450
|
-
marginBottom: theme.spacing.unit * 2
|
|
451
|
-
},
|
|
452
|
-
input: {
|
|
453
437
|
paddingTop: theme.spacing.unit * 2,
|
|
454
|
-
width: '100%',
|
|
455
|
-
maxWidth: '600px'
|
|
456
|
-
},
|
|
457
|
-
prompt: {
|
|
458
|
-
paddingTop: theme.spacing.unit * 2,
|
|
459
|
-
width: '100%'
|
|
460
|
-
},
|
|
461
|
-
promptHolder: {
|
|
462
|
-
width: '100%',
|
|
463
|
-
paddingBottom: theme.spacing.unit * 2,
|
|
464
438
|
marginBottom: theme.spacing.unit * 2
|
|
465
439
|
},
|
|
466
440
|
title: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/design/index.jsx"],"names":["dropdown","settings","Panel","toggle","radio","numberField","IdProvider","uid","Provider","Design","props","model","onChange","updatedModel","choices","map","c","categoryCount","checkAllowMultiplePlacements","allowMultiplePlacementsEnabled","correctResponse","categories","id","label","h","content","rationale","teacherInstructions","feedback","updateModel","cr","alternateResponses","prompt","index","filter","alt","altIndex","choice","allowMultiplePlacements","multiplePlacements","enabled","disabled","generateId","classes","className","configuration","imageSupport","uploadSoundSupport","onConfigurationChanged","allowAlternate","categoriesPerRow","choicesPosition","lockChoiceOrder","maxImageHeight","maxImageWidth","minCategoriesPerRow","partialScoring","scoringType","settingsPanelDisabled","spellCheck","studentInstructions","withRubric","allowAlternateEnabled","feedbackEnabled","promptEnabled","rationaleEnabled","spellCheckEnabled","teacherInstructionsEnabled","toolbarEditorPosition","toolbarOpts","position","config","columns","correctResponseCount","countChoiceInCorrectResponse","defaultImageMaxWidth","defaultImageMaxHeight","panelSettings","min","max","perChoice","panelProperties","studentInstructionsEnabled","rubricEnabled","Settings","Properties","design","promptHolder","onPromptChanged","language","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 { FeedbackConfig, InputContainer, layout, settings } from '@pie-lib/config-ui';\nimport { countInAnswer, ensureNoExtraChoicesInAnswer, ensureNoExtraChoicesInAlternate } from '@pie-lib/categorize';\nimport EditableHtml from '@pie-lib/editable-html';\nimport { uid, withDragContext } from '@pie-lib/drag';\n\nimport Categories from './categories';\nimport AlternateResponses from './categories/alternateResponses';\nimport Choices from './choices';\nimport { Divider } from './buttons';\nimport { buildAlternateResponses, buildCategories } from './builder';\nimport Header from './header';\nimport { multiplePlacements } from '../utils';\n\nconst { dropdown, Panel, toggle, radio, numberField } = settings;\nconst { Provider: IdProvider } = uid;\n\nexport class Design extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n configuration: PropTypes.object,\n className: PropTypes.string,\n onConfigurationChanged: PropTypes.func,\n model: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n uid: PropTypes.string,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n uploadSoundSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n };\n\n constructor(props) {\n super(props);\n this.uid = props.uid || uid.generateId();\n }\n\n updateModel = (props) => {\n const { model, onChange } = this.props;\n\n const updatedModel = {\n ...model,\n ...props,\n };\n\n updatedModel.choices = updatedModel.choices.map((c) => ({\n ...c,\n categoryCount: this.checkAllowMultiplePlacements(updatedModel.allowMultiplePlacementsEnabled, c),\n }));\n\n //Ensure that there are no extra choices in correctResponse, if the user has decided that only one choice may be used.\n updatedModel.correctResponse = ensureNoExtraChoicesInAnswer(\n updatedModel.correctResponse || [],\n updatedModel.choices,\n );\n\n //Ensure that there are no extra choices in alternate responses, if the user has decided that only one choice may be used.\n updatedModel.correctResponse = ensureNoExtraChoicesInAlternate(\n updatedModel.correctResponse || [],\n updatedModel.choices,\n );\n\n //clean categories\n updatedModel.categories = updatedModel.categories.map((c) => ({\n id: c.id,\n label: c.label,\n }));\n\n updatedModel.choices = updatedModel.choices.map((h) => ({\n id: h.id,\n content: h.content,\n categoryCount: h.categoryCount,\n }));\n\n onChange(updatedModel);\n };\n\n changeRationale = (rationale) => {\n const { model, onChange } = this.props;\n\n onChange({\n ...model,\n rationale,\n });\n };\n\n changeTeacherInstructions = (teacherInstructions) => {\n const { model, onChange } = this.props;\n\n onChange({\n ...model,\n teacherInstructions,\n });\n };\n\n changeFeedback = (feedback) => {\n this.updateModel({ feedback });\n };\n\n onAddAlternateResponse = () => {\n const {\n model: { correctResponse },\n } = this.props;\n\n this.updateModel({\n correctResponse: (correctResponse || []).map((cr) => ({\n ...cr,\n alternateResponses: [...(cr.alternateResponses || []), []],\n })),\n });\n };\n\n onPromptChanged = (prompt) => this.updateModel({ prompt });\n\n onRemoveAlternateResponse = (index) => {\n const {\n model: { correctResponse },\n } = this.props;\n\n this.updateModel({\n correctResponse: (correctResponse || []).map((cr) => ({\n ...cr,\n alternateResponses: (cr.alternateResponses || []).filter((alt, altIndex) => altIndex !== index),\n })),\n });\n };\n\n countChoiceInCorrectResponse = (choice) => {\n const { model } = this.props;\n\n return countInAnswer(choice.id, model.correctResponse);\n };\n\n checkAllowMultiplePlacements = (allowMultiplePlacements, c) => {\n if (allowMultiplePlacements === multiplePlacements.enabled) {\n return 0;\n }\n\n if (allowMultiplePlacements === multiplePlacements.disabled) {\n return 1;\n }\n\n return c.categoryCount || 0;\n };\n\n render() {\n const {\n classes,\n className,\n configuration,\n imageSupport,\n model,\n uploadSoundSupport,\n onConfigurationChanged,\n } = this.props;\n const {\n allowMultiplePlacements = {},\n allowAlternate = {},\n categoriesPerRow = {},\n choicesPosition = {},\n feedback = {},\n lockChoiceOrder = {},\n maxImageHeight = {},\n maxImageWidth = {},\n minCategoriesPerRow = 1,\n partialScoring = {},\n prompt = {},\n rationale = {},\n scoringType = {},\n settingsPanelDisabled,\n spellCheck = {},\n studentInstructions = {},\n teacherInstructions = {},\n withRubric = {},\n } = configuration || {};\n const {\n allowAlternateEnabled,\n feedbackEnabled,\n promptEnabled,\n rationaleEnabled,\n spellCheckEnabled,\n teacherInstructionsEnabled,\n toolbarEditorPosition,\n } = model || {};\n\n const toolbarOpts = {\n position: toolbarEditorPosition === 'top' ? 'top' : 'bottom',\n };\n\n const config = model.config || {};\n config.choices = config.choices || { label: '', columns: 2 };\n\n const categories = buildCategories(model.categories || [], model.choices || [], model.correctResponse || []);\n\n const alternateResponses = buildAlternateResponses(\n model.categories || [],\n model.choices || [],\n model.correctResponse || [],\n );\n\n const choices = model.choices.map((c) => {\n c.correctResponseCount = this.countChoiceInCorrectResponse(c);\n\n return c;\n });\n\n const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;\n const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;\n\n const panelSettings = {\n partialScoring: partialScoring.settings && toggle(partialScoring.label),\n lockChoiceOrder: lockChoiceOrder.settings && toggle(lockChoiceOrder.label),\n categoriesPerRow:\n categoriesPerRow.settings &&\n numberField(categoriesPerRow.label, {\n label: categoriesPerRow.label,\n min: minCategoriesPerRow,\n max: 6,\n }),\n choicesPosition: choicesPosition.settings && radio(choicesPosition.label, ['below', 'above', 'left', 'right']),\n allowMultiplePlacementsEnabled:\n allowMultiplePlacements.settings &&\n dropdown(allowMultiplePlacements.label, [\n multiplePlacements.enabled,\n multiplePlacements.disabled,\n multiplePlacements.perChoice,\n ]),\n promptEnabled: prompt.settings && toggle(prompt.label),\n feedbackEnabled: feedback.settings && toggle(feedback.label),\n allowAlternateEnabled: allowAlternate.settings && toggle(allowAlternate.label),\n };\n\n const panelProperties = {\n teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),\n studentInstructionsEnabled: studentInstructions.settings && toggle(studentInstructions.label),\n rationaleEnabled: rationale.settings && toggle(rationale.label),\n spellCheckEnabled: spellCheck.settings && toggle(spellCheck.label),\n scoringType: scoringType.settings && radio(scoringType.label, ['auto', 'rubric']),\n rubricEnabled: withRubric?.settings && toggle(withRubric?.label),\n };\n\n return (\n <IdProvider value={this.uid}>\n <layout.ConfigLayout\n hideSettings={settingsPanelDisabled}\n settings={\n <Panel\n model={model}\n onChangeModel={this.updateModel}\n configuration={configuration}\n onChangeConfiguration={onConfigurationChanged}\n groups={{\n Settings: panelSettings,\n Properties: panelProperties,\n }}\n />\n }\n >\n <div className={classNames(classes.design, className)}>\n {promptEnabled && (\n <InputContainer label={prompt.label} className={classes.promptHolder}>\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 maxImageWidth={maxImageWidth && maxImageWidth.prompt}\n maxImageHeight={maxImageHeight && maxImageHeight.prompt}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n />\n </InputContainer>\n )}\n\n {teacherInstructionsEnabled && (\n <InputContainer label={teacherInstructions.label} className={classes.inputHolder}>\n <EditableHtml\n className={classes.input}\n markup={model.teacherInstructions || ''}\n onChange={this.changeTeacherInstructions}\n imageSupport={imageSupport}\n nonEmpty={false}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n maxImageWidth={(maxImageWidth && maxImageWidth.teacherInstructions) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.teacherInstructions) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n />\n </InputContainer>\n )}\n\n {rationaleEnabled && (\n <InputContainer label={rationale.label} className={classes.inputHolder}>\n <EditableHtml\n className={classes.input}\n markup={model.rationale || ''}\n onChange={this.changeRationale}\n imageSupport={imageSupport}\n nonEmpty={false}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n maxImageWidth={(maxImageWidth && maxImageWidth.rationale) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.rationale) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n />\n </InputContainer>\n )}\n\n <Categories\n imageSupport={imageSupport}\n uploadSoundSupport={uploadSoundSupport}\n model={model}\n categories={categories || []}\n onModelChanged={this.updateModel}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n configuration={configuration}\n defaultImageMaxWidth={defaultImageMaxWidth}\n defaultImageMaxHeight={defaultImageMaxHeight}\n />\n <Choices\n imageSupport={imageSupport}\n uploadSoundSupport={uploadSoundSupport}\n choices={choices}\n model={model}\n onModelChanged={this.updateModel}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n configuration={configuration}\n defaultImageMaxWidth={defaultImageMaxWidth}\n defaultImageMaxHeight={defaultImageMaxHeight}\n />\n {allowAlternateEnabled && (\n <Header\n className={classes.alternatesHeader}\n label=\"Alternate Responses\"\n buttonLabel=\"ADD AN ALTERNATE RESPONSE\"\n onAdd={this.onAddAlternateResponse}\n />\n )}\n {allowAlternateEnabled &&\n alternateResponses.map((categoriesList, index) => {\n return (\n <React.Fragment key={index}>\n <Header\n className={classes.alternatesHeader}\n variant={'subtitle1'}\n label=\"Alternate Response\"\n buttonLabel=\"REMOVE ALTERNATE RESPONSE\"\n onAdd={() => this.onRemoveAlternateResponse(index)}\n />\n <AlternateResponses\n altIndex={index}\n imageSupport={imageSupport}\n model={model}\n configuration={configuration}\n categories={categoriesList}\n onModelChanged={this.updateModel}\n uploadSoundSupport={uploadSoundSupport}\n toolbarOpts={toolbarOpts}\n defaultImageMaxWidth={defaultImageMaxWidth}\n defaultImageMaxHeight={defaultImageMaxHeight}\n />\n </React.Fragment>\n );\n })}\n {allowAlternateEnabled &&\n <Divider/>\n }\n {feedbackEnabled && (\n <FeedbackConfig feedback={model.feedback} onChange={this.changeFeedback} toolbarOpts={toolbarOpts} />\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: theme.spacing.unit * 4,\n },\n});\n\nexport default withDragContext(withStyles(styles)(Design));\n"],"file":"index.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/design/index.jsx"],"names":["dropdown","settings","Panel","toggle","radio","numberField","IdProvider","uid","Provider","Design","props","model","onChange","updatedModel","choices","map","c","categoryCount","checkAllowMultiplePlacements","allowMultiplePlacementsEnabled","correctResponse","categories","id","label","h","content","rationale","teacherInstructions","feedback","updateModel","cr","alternateResponses","prompt","index","filter","alt","altIndex","choice","allowMultiplePlacements","multiplePlacements","enabled","disabled","generateId","classes","configuration","imageSupport","uploadSoundSupport","onConfigurationChanged","allowAlternate","categoriesPerRow","choicesPosition","lockChoiceOrder","maxImageHeight","maxImageWidth","minCategoriesPerRow","partialScoring","scoringType","settingsPanelDisabled","spellCheck","studentInstructions","withRubric","allowAlternateEnabled","feedbackEnabled","promptEnabled","rationaleEnabled","spellCheckEnabled","teacherInstructionsEnabled","toolbarEditorPosition","toolbarOpts","position","config","columns","correctResponseCount","countChoiceInCorrectResponse","defaultImageMaxWidth","defaultImageMaxHeight","panelSettings","min","max","perChoice","panelProperties","studentInstructionsEnabled","rubricEnabled","Settings","Properties","inputContainer","input","changeTeacherInstructions","language","onPromptChanged","alternatesHeader","onAddAlternateResponse","categoriesList","onRemoveAlternateResponse","changeRationale","changeFeedback","React","Component","PropTypes","object","isRequired","className","string","func","shape","add","styles","theme","marginBottom","spacing","unit","text","paddingTop","paddingBottom","width","title"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { FeedbackConfig, InputContainer, layout, settings } from '@pie-lib/config-ui';\nimport { countInAnswer, ensureNoExtraChoicesInAnswer, ensureNoExtraChoicesInAlternate } from '@pie-lib/categorize';\nimport EditableHtml from '@pie-lib/editable-html';\nimport { uid, withDragContext } from '@pie-lib/drag';\n\nimport Categories from './categories';\nimport AlternateResponses from './categories/alternateResponses';\nimport Choices from './choices';\nimport { buildAlternateResponses, buildCategories } from './builder';\nimport Header from './header';\nimport { multiplePlacements } from '../utils';\n\nconst { dropdown, Panel, toggle, radio, numberField } = settings;\nconst { Provider: IdProvider } = uid;\n\nexport class Design extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n configuration: PropTypes.object,\n className: PropTypes.string,\n onConfigurationChanged: PropTypes.func,\n model: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n uid: PropTypes.string,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n uploadSoundSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n };\n\n constructor(props) {\n super(props);\n this.uid = props.uid || uid.generateId();\n }\n\n updateModel = (props) => {\n const { model, onChange } = this.props;\n\n const updatedModel = {\n ...model,\n ...props,\n };\n\n updatedModel.choices = updatedModel.choices.map((c) => ({\n ...c,\n categoryCount: this.checkAllowMultiplePlacements(updatedModel.allowMultiplePlacementsEnabled, c),\n }));\n\n //Ensure that there are no extra choices in correctResponse, if the user has decided that only one choice may be used.\n updatedModel.correctResponse = ensureNoExtraChoicesInAnswer(\n updatedModel.correctResponse || [],\n updatedModel.choices,\n );\n\n //Ensure that there are no extra choices in alternate responses, if the user has decided that only one choice may be used.\n updatedModel.correctResponse = ensureNoExtraChoicesInAlternate(\n updatedModel.correctResponse || [],\n updatedModel.choices,\n );\n\n //clean categories\n updatedModel.categories = updatedModel.categories.map((c) => ({\n id: c.id,\n label: c.label,\n }));\n\n updatedModel.choices = updatedModel.choices.map((h) => ({\n id: h.id,\n content: h.content,\n categoryCount: h.categoryCount,\n }));\n\n onChange(updatedModel);\n };\n\n changeRationale = (rationale) => {\n const { model, onChange } = this.props;\n\n onChange({\n ...model,\n rationale,\n });\n };\n\n changeTeacherInstructions = (teacherInstructions) => {\n const { model, onChange } = this.props;\n\n onChange({\n ...model,\n teacherInstructions,\n });\n };\n\n changeFeedback = (feedback) => {\n this.updateModel({ feedback });\n };\n\n onAddAlternateResponse = () => {\n const {\n model: { correctResponse },\n } = this.props;\n\n this.updateModel({\n correctResponse: (correctResponse || []).map((cr) => ({\n ...cr,\n alternateResponses: [...(cr.alternateResponses || []), []],\n })),\n });\n };\n\n onPromptChanged = (prompt) => this.updateModel({ prompt });\n\n onRemoveAlternateResponse = (index) => {\n const {\n model: { correctResponse },\n } = this.props;\n\n this.updateModel({\n correctResponse: (correctResponse || []).map((cr) => ({\n ...cr,\n alternateResponses: (cr.alternateResponses || []).filter((alt, altIndex) => altIndex !== index),\n })),\n });\n };\n\n countChoiceInCorrectResponse = (choice) => {\n const { model } = this.props;\n\n return countInAnswer(choice.id, model.correctResponse);\n };\n\n checkAllowMultiplePlacements = (allowMultiplePlacements, c) => {\n if (allowMultiplePlacements === multiplePlacements.enabled) {\n return 0;\n }\n\n if (allowMultiplePlacements === multiplePlacements.disabled) {\n return 1;\n }\n\n return c.categoryCount || 0;\n };\n\n render() {\n const { classes, configuration, imageSupport, model, uploadSoundSupport, onConfigurationChanged } = this.props;\n const {\n allowMultiplePlacements = {},\n allowAlternate = {},\n categoriesPerRow = {},\n choicesPosition = {},\n feedback = {},\n lockChoiceOrder = {},\n maxImageHeight = {},\n maxImageWidth = {},\n minCategoriesPerRow = 1,\n partialScoring = {},\n prompt = {},\n rationale = {},\n scoringType = {},\n settingsPanelDisabled,\n spellCheck = {},\n studentInstructions = {},\n teacherInstructions = {},\n withRubric = {},\n } = configuration || {};\n const {\n allowAlternateEnabled,\n feedbackEnabled,\n promptEnabled,\n rationaleEnabled,\n spellCheckEnabled,\n teacherInstructionsEnabled,\n toolbarEditorPosition,\n } = model || {};\n\n const toolbarOpts = {\n position: toolbarEditorPosition === 'top' ? 'top' : 'bottom',\n };\n\n const config = model.config || {};\n config.choices = config.choices || { label: '', columns: 2 };\n\n const categories = buildCategories(model.categories || [], model.choices || [], model.correctResponse || []);\n\n const alternateResponses = buildAlternateResponses(\n model.categories || [],\n model.choices || [],\n model.correctResponse || [],\n );\n\n const choices = model.choices.map((c) => {\n c.correctResponseCount = this.countChoiceInCorrectResponse(c);\n\n return c;\n });\n\n const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;\n const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;\n\n const panelSettings = {\n partialScoring: partialScoring.settings && toggle(partialScoring.label),\n lockChoiceOrder: lockChoiceOrder.settings && toggle(lockChoiceOrder.label),\n categoriesPerRow:\n categoriesPerRow.settings &&\n numberField(categoriesPerRow.label, {\n label: categoriesPerRow.label,\n min: minCategoriesPerRow,\n max: 6,\n }),\n choicesPosition: choicesPosition.settings && radio(choicesPosition.label, ['below', 'above', 'left', 'right']),\n allowMultiplePlacementsEnabled:\n allowMultiplePlacements.settings &&\n dropdown(allowMultiplePlacements.label, [\n multiplePlacements.enabled,\n multiplePlacements.disabled,\n multiplePlacements.perChoice,\n ]),\n promptEnabled: prompt.settings && toggle(prompt.label),\n feedbackEnabled: feedback.settings && toggle(feedback.label),\n allowAlternateEnabled: allowAlternate.settings && toggle(allowAlternate.label),\n };\n\n const panelProperties = {\n teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),\n studentInstructionsEnabled: studentInstructions.settings && toggle(studentInstructions.label),\n rationaleEnabled: rationale.settings && toggle(rationale.label),\n spellCheckEnabled: spellCheck.settings && toggle(spellCheck.label),\n scoringType: scoringType.settings && radio(scoringType.label, ['auto', 'rubric']),\n rubricEnabled: withRubric?.settings && toggle(withRubric?.label),\n };\n\n return (\n <IdProvider value={this.uid}>\n <layout.ConfigLayout\n hideSettings={settingsPanelDisabled}\n settings={\n <Panel\n model={model}\n onChangeModel={this.updateModel}\n configuration={configuration}\n onChangeConfiguration={onConfigurationChanged}\n groups={{\n Settings: panelSettings,\n Properties: panelProperties,\n }}\n />\n }\n >\n {teacherInstructionsEnabled && (\n <InputContainer label={teacherInstructions.label} className={classes.inputContainer}>\n <EditableHtml\n className={classes.input}\n markup={model.teacherInstructions || ''}\n onChange={this.changeTeacherInstructions}\n imageSupport={imageSupport}\n nonEmpty={false}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n maxImageWidth={(maxImageWidth && maxImageWidth.teacherInstructions) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.teacherInstructions) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n />\n </InputContainer>\n )}\n\n {promptEnabled && (\n <InputContainer label={prompt.label} className={classes.inputContainer}>\n <EditableHtml\n className={classes.input}\n markup={model.prompt || ''}\n onChange={this.onPromptChanged}\n imageSupport={imageSupport}\n nonEmpty={false}\n disableUnderline\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n maxImageWidth={maxImageWidth && maxImageWidth.prompt}\n maxImageHeight={maxImageHeight && maxImageHeight.prompt}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n />\n </InputContainer>\n )}\n\n <Categories\n imageSupport={imageSupport}\n uploadSoundSupport={uploadSoundSupport}\n model={model}\n categories={categories || []}\n onModelChanged={this.updateModel}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n configuration={configuration}\n defaultImageMaxWidth={defaultImageMaxWidth}\n defaultImageMaxHeight={defaultImageMaxHeight}\n />\n\n <Choices\n imageSupport={imageSupport}\n uploadSoundSupport={uploadSoundSupport}\n choices={choices}\n model={model}\n onModelChanged={this.updateModel}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n configuration={configuration}\n defaultImageMaxWidth={defaultImageMaxWidth}\n defaultImageMaxHeight={defaultImageMaxHeight}\n />\n\n {allowAlternateEnabled && (\n <Header\n className={classes.alternatesHeader}\n label=\"Alternate Responses\"\n buttonLabel=\"ADD AN ALTERNATE RESPONSE\"\n onAdd={this.onAddAlternateResponse}\n />\n )}\n {allowAlternateEnabled &&\n alternateResponses.map((categoriesList, index) => {\n return (\n <React.Fragment key={index}>\n <Header\n className={classes.alternatesHeader}\n variant={'subtitle1'}\n label=\"Alternate Response\"\n buttonLabel=\"REMOVE ALTERNATE RESPONSE\"\n onAdd={() => this.onRemoveAlternateResponse(index)}\n />\n <AlternateResponses\n altIndex={index}\n imageSupport={imageSupport}\n model={model}\n configuration={configuration}\n categories={categoriesList}\n onModelChanged={this.updateModel}\n uploadSoundSupport={uploadSoundSupport}\n toolbarOpts={toolbarOpts}\n defaultImageMaxWidth={defaultImageMaxWidth}\n defaultImageMaxHeight={defaultImageMaxHeight}\n />\n </React.Fragment>\n );\n })}\n\n {rationaleEnabled && (\n <InputContainer label={rationale.label} className={classes.inputContainer}>\n <EditableHtml\n className={classes.input}\n markup={model.rationale || ''}\n onChange={this.changeRationale}\n imageSupport={imageSupport}\n nonEmpty={false}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n maxImageWidth={(maxImageWidth && maxImageWidth.rationale) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.rationale) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n />\n </InputContainer>\n )}\n\n {feedbackEnabled && (\n <FeedbackConfig feedback={model.feedback} onChange={this.changeFeedback} toolbarOpts={toolbarOpts} />\n )}\n </layout.ConfigLayout>\n </IdProvider>\n );\n }\n}\n\nconst styles = (theme) => ({\n alternatesHeader: {\n marginBottom: theme.spacing.unit * 2,\n },\n text: {\n paddingTop: theme.spacing.unit * 2,\n paddingBottom: theme.spacing.unit * 2,\n },\n inputContainer: {\n width: '100%',\n paddingTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n },\n title: {\n marginBottom: theme.spacing.unit * 4,\n },\n});\n\nexport default withDragContext(withStyles(styles)(Design));\n"],"file":"index.js"}
|
package/configure/lib/main.js
CHANGED
|
@@ -25,8 +25,6 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
|
25
25
|
|
|
26
26
|
var _styles = require("@material-ui/core/styles");
|
|
27
27
|
|
|
28
|
-
var _classnames = _interopRequireDefault(require("classnames"));
|
|
29
|
-
|
|
30
28
|
var _design = _interopRequireDefault(require("./design"));
|
|
31
29
|
|
|
32
30
|
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,23 +45,21 @@ var Main = /*#__PURE__*/function (_React$Component) {
|
|
|
47
45
|
key: "render",
|
|
48
46
|
value: function render() {
|
|
49
47
|
var _this$props = this.props,
|
|
50
|
-
classes = _this$props.classes,
|
|
51
|
-
className = _this$props.className,
|
|
52
48
|
model = _this$props.model,
|
|
53
49
|
onModelChanged = _this$props.onModelChanged,
|
|
54
50
|
configuration = _this$props.configuration,
|
|
55
|
-
onConfigurationChanged = _this$props.onConfigurationChanged
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
imageSupport:
|
|
60
|
-
uploadSoundSupport:
|
|
51
|
+
onConfigurationChanged = _this$props.onConfigurationChanged,
|
|
52
|
+
imageSupport = _this$props.imageSupport,
|
|
53
|
+
uploadSoundSupport = _this$props.uploadSoundSupport;
|
|
54
|
+
return /*#__PURE__*/_react["default"].createElement(_design["default"], {
|
|
55
|
+
imageSupport: imageSupport,
|
|
56
|
+
uploadSoundSupport: uploadSoundSupport,
|
|
61
57
|
title: "Design",
|
|
62
58
|
model: model,
|
|
63
59
|
configuration: configuration,
|
|
64
60
|
onChange: onModelChanged,
|
|
65
61
|
onConfigurationChanged: onConfigurationChanged
|
|
66
|
-
})
|
|
62
|
+
});
|
|
67
63
|
}
|
|
68
64
|
}]);
|
|
69
65
|
return Main;
|
|
@@ -83,9 +79,7 @@ exports.Main = Main;
|
|
|
83
79
|
(0, _defineProperty2["default"])(Main, "defaultProps", {});
|
|
84
80
|
|
|
85
81
|
var styles = function styles() {
|
|
86
|
-
return {
|
|
87
|
-
main: {}
|
|
88
|
-
};
|
|
82
|
+
return {};
|
|
89
83
|
};
|
|
90
84
|
|
|
91
85
|
var _default = (0, _styles.withStyles)(styles)(Main);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/main.jsx"],"names":["Main","props","
|
|
1
|
+
{"version":3,"sources":["../src/main.jsx"],"names":["Main","props","model","onModelChanged","configuration","onConfigurationChanged","imageSupport","uploadSoundSupport","React","Component","classes","PropTypes","object","isRequired","className","string","func","styles"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;IAEaA,I;;;;;;;;;;;;WAcX,kBAAS;AACP,wBACE,KAAKC,KADP;AAAA,UAAQC,KAAR,eAAQA,KAAR;AAAA,UAAeC,cAAf,eAAeA,cAAf;AAAA,UAA+BC,aAA/B,eAA+BA,aAA/B;AAAA,UAA8CC,sBAA9C,eAA8CA,sBAA9C;AAAA,UAAsEC,YAAtE,eAAsEA,YAAtE;AAAA,UAAoFC,kBAApF,eAAoFA,kBAApF;AAGA,0BACE,gCAAC,kBAAD;AACE,QAAA,YAAY,EAAED,YADhB;AAEE,QAAA,kBAAkB,EAAEC,kBAFtB;AAGE,QAAA,KAAK,EAAC,QAHR;AAIE,QAAA,KAAK,EAAEL,KAJT;AAKE,QAAA,aAAa,EAAEE,aALjB;AAME,QAAA,QAAQ,EAAED,cANZ;AAOE,QAAA,sBAAsB,EAAEE;AAP1B,QADF;AAWD;;;EA7BuBG,kBAAMC,S;;;iCAAnBT,I,eACQ;AACjBU,EAAAA,OAAO,EAAEC,sBAAUC,MAAV,CAAiBC,UADT;AAEjBT,EAAAA,aAAa,EAAEO,sBAAUC,MAFR;AAGjBE,EAAAA,SAAS,EAAEH,sBAAUI,MAHJ;AAIjBV,EAAAA,sBAAsB,EAAEM,sBAAUK,IAJjB;AAKjBd,EAAAA,KAAK,EAAES,sBAAUC,MAAV,CAAiBC,UALP;AAMjBV,EAAAA,cAAc,EAAEQ,sBAAUK,IAAV,CAAeH,UANd;AAOjBP,EAAAA,YAAY,EAAEK,sBAAUC,MAPP;AAQjBL,EAAAA,kBAAkB,EAAEI,sBAAUC;AARb,C;iCADRZ,I,kBAYW,E;;AAmBxB,IAAMiB,MAAM,GAAG,SAATA,MAAS;AAAA,SAAO,EAAP;AAAA,CAAf;;eAEe,wBAAWA,MAAX,EAAmBjB,IAAnB,C","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport Design from './design';\n\nexport class Main 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 onModelChanged: PropTypes.func.isRequired,\n imageSupport: PropTypes.object,\n uploadSoundSupport: PropTypes.object,\n };\n\n static defaultProps = {};\n\n render() {\n const { model, onModelChanged, configuration, onConfigurationChanged, imageSupport, uploadSoundSupport } =\n this.props;\n\n return (\n <Design\n imageSupport={imageSupport}\n uploadSoundSupport={uploadSoundSupport}\n title=\"Design\"\n model={model}\n configuration={configuration}\n onChange={onModelChanged}\n onConfigurationChanged={onConfigurationChanged}\n />\n );\n }\n}\nconst styles = () => ({});\n\nexport default withStyles(styles)(Main);\n"],"file":"main.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/categorize/choices.jsx"],"names":["Blank","Choices","props","classes","choices","model","disabled","onDropChoice","onRemoveChoice","choicePosition","style","textAlign","direction","wrapper","background","choicesLabel","labelHolder","__html","map","c","index","empty","choice","maxWidth","categoriesPerRow","React","Component","PropTypes","object","isRequired","arrayOf","oneOfType","shape","ChoiceType","bool","number","string","styles","theme","flex","padding","spacing","unit","touchAction","display","justifyContent","alignItems","margin","paddingTop"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;AAGA,IAAMA,KAAK,GAAG,SAARA,KAAQ;AAAA,sBAAM,4CAAN;AAAA,CAAd;;IAEaC,O;;;;;;;;;;;;WAqBX,kBAAS;AACP,
|
|
1
|
+
{"version":3,"sources":["../../src/categorize/choices.jsx"],"names":["Blank","Choices","props","classes","choices","model","disabled","onDropChoice","onRemoveChoice","choicePosition","style","textAlign","direction","wrapper","background","choicesLabel","labelHolder","__html","map","c","index","empty","choice","maxWidth","categoriesPerRow","React","Component","PropTypes","object","isRequired","arrayOf","oneOfType","shape","ChoiceType","bool","number","string","styles","theme","flex","padding","spacing","unit","touchAction","display","justifyContent","alignItems","margin","paddingTop"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport Choice, { ChoiceType } from './choice';\nimport DroppablePlaceholder from './droppable-placeholder';\nexport { ChoiceType };\n\nconst Blank = () => <div />;\n\nexport class Choices extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n choices: PropTypes.arrayOf(\n PropTypes.oneOfType([PropTypes.shape(ChoiceType), PropTypes.shape({ empty: PropTypes.bool })]),\n ),\n model: PropTypes.shape({\n categoriesPerRow: PropTypes.number,\n choicesLabel: PropTypes.string,\n }),\n disabled: PropTypes.bool,\n choicePosition: PropTypes.string,\n };\n\n static defaultProps = {\n model: {\n categoriesPerRow: 1,\n choicesLabel: '',\n },\n };\n\n render() {\n const { classes, choices = [], model, disabled, onDropChoice, onRemoveChoice, choicePosition } = this.props;\n\n let style = {\n textAlign: 'center',\n };\n\n if (choicePosition === 'left') {\n style.direction = 'rtl';\n }\n\n return (\n <div className={classes.wrapper}>\n <DroppablePlaceholder\n onDropChoice={onDropChoice}\n onRemoveChoice={onRemoveChoice}\n disabled={disabled}\n style={{ background: 'none' }}\n choiceBoard={true}\n >\n {model.choicesLabel && model.choicesLabel !== '' && (\n <div className={classes.labelHolder} dangerouslySetInnerHTML={{ __html: model.choicesLabel }}></div>\n )}\n {choices.map((c, index) => {\n return c.empty ? (\n <Blank key={index} />\n ) : (\n <Choice\n disabled={disabled}\n className={classes.choice}\n key={index}\n extraStyle={{ maxWidth: `${95 / model.categoriesPerRow}%` }}\n {...c}\n />\n );\n })}\n </DroppablePlaceholder>\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n wrapper: {\n flex: 1,\n padding: theme.spacing.unit,\n touchAction: 'none',\n },\n choices: {\n padding: theme.spacing.unit / 2,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n },\n labelHolder: {\n margin: '0 auto',\n textAlign: 'center',\n paddingTop: theme.spacing.unit,\n },\n});\n\nexport default withStyles(styles)(Choices);\n"],"file":"choices.js"}
|
package/lib/categorize/index.js
CHANGED
|
@@ -184,15 +184,13 @@ var Categorize = /*#__PURE__*/function (_React$Component) {
|
|
|
184
184
|
className: classes.collapsible
|
|
185
185
|
}, /*#__PURE__*/_react["default"].createElement(_renderUi.PreviewPrompt, {
|
|
186
186
|
prompt: model.teacherInstructions
|
|
187
|
-
})),
|
|
187
|
+
}))), model.prompt && removeHTMLTags(model.prompt) && /*#__PURE__*/_react["default"].createElement(_renderUi.PreviewPrompt, {
|
|
188
|
+
prompt: model.prompt
|
|
189
|
+
}), /*#__PURE__*/_react["default"].createElement(_correctAnswerToggle["default"], {
|
|
188
190
|
show: showCorrect || correct === false,
|
|
189
191
|
toggled: showCorrect,
|
|
190
192
|
onToggle: this.toggleShowCorrect
|
|
191
|
-
}),
|
|
192
|
-
className: classes.prompt
|
|
193
|
-
}, /*#__PURE__*/_react["default"].createElement(_renderUi.PreviewPrompt, {
|
|
194
|
-
prompt: model.prompt
|
|
195
|
-
})), /*#__PURE__*/_react["default"].createElement("div", {
|
|
193
|
+
}), /*#__PURE__*/_react["default"].createElement("div", {
|
|
196
194
|
className: classes.categorize,
|
|
197
195
|
style: style
|
|
198
196
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
@@ -296,16 +294,11 @@ var CategorizeProvider = /*#__PURE__*/function (_React$Component2) {
|
|
|
296
294
|
var styles = function styles(theme) {
|
|
297
295
|
return {
|
|
298
296
|
mainContainer: {
|
|
299
|
-
padding: theme.spacing.unit,
|
|
300
297
|
color: _renderUi.color.text(),
|
|
301
298
|
backgroundColor: _renderUi.color.background()
|
|
302
299
|
},
|
|
303
|
-
prompt: {
|
|
304
|
-
marginBottom: '35px',
|
|
305
|
-
verticalAlign: 'middle'
|
|
306
|
-
},
|
|
307
300
|
note: {
|
|
308
|
-
|
|
301
|
+
marginBottom: theme.spacing.unit * 2
|
|
309
302
|
},
|
|
310
303
|
categorize: {
|
|
311
304
|
marginBottom: theme.spacing.unit,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/categorize/index.jsx"],"names":["log","removeHTMLTags","html","tmp","document","createElement","innerHTML","value","textContent","innerText","trim","Categorize","props","c","onAnswersChange","session","answers","id","categoryId","choiceIndex","draggedChoice","undefined","removeChoice","setState","showCorrect","state","onShowCorrectToggle","choicePosition","flexDirection","correctResponse","some","correctRes","alternateResponses","length","classes","model","choicesPosition","note","showNote","env","mode","role","style","getPositionDirection","categories","choices","correct","disabled","rowLabels","categoriesPerRow","nbOfRows","Math","ceil","existAlternate","existAlternateResponse","displayNote","mainContainer","teacherInstructions","hidden","visible","collapsible","toggleShowCorrect","prompt","categorize","display","flex","slice","map","label","index","alignItems","justifyContent","__html","dropChoice","rationale","correctness","feedback","React","Component","PropTypes","object","isRequired","shape","arrayOf","choice","string","category","func","CategorizeProvider","uid","generateId","styles","theme","padding","spacing","unit","color","text","backgroundColor","background","marginBottom","verticalAlign","paddingBottom"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport Choices from './choices';\nimport Categories from './categories';\nimport CorrectAnswerToggle from '@pie-lib/correct-answer-toggle';\nimport { withStyles } from '@material-ui/core/styles';\nimport {\n buildState,\n removeChoiceFromCategory,\n moveChoiceToCategory,\n} from '@pie-lib/categorize';\nimport { withDragContext, uid } from '@pie-lib/drag';\nimport {\n color,\n Feedback,\n Collapsible,\n hasText,\n PreviewPrompt,\n} from '@pie-lib/render-ui';\nimport debug from 'debug';\n\nconst log = debug('@pie-ui:categorize');\n\nconst removeHTMLTags = (html) => {\n const tmp = document.createElement('DIV');\n\n tmp.innerHTML = html;\n\n const value = tmp.textContent || tmp.innerText || '';\n\n return value.trim();\n};\n\nexport class Categorize extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n model: PropTypes.object,\n session: PropTypes.shape({\n answers: PropTypes.arrayOf(\n PropTypes.shape({\n choice: PropTypes.string,\n category: PropTypes.string,\n })\n ),\n }),\n onAnswersChange: PropTypes.func.isRequired,\n onShowCorrectToggle: PropTypes.func.isRequired,\n };\n\n static defaultProps = {\n disabled: false,\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n showCorrect: false,\n };\n }\n\n removeChoice = (c) => {\n log('[removeChoice]: ', c);\n const { onAnswersChange, session } = this.props;\n const answers = removeChoiceFromCategory(\n c.id,\n c.categoryId,\n c.choiceIndex,\n session.answers\n );\n onAnswersChange(answers);\n };\n\n dropChoice = (categoryId, draggedChoice) => {\n const { session, onAnswersChange } = this.props;\n if (draggedChoice) {\n log(\n '[dropChoice] category: ',\n draggedChoice.categoryId,\n 'choice: ',\n draggedChoice\n );\n } else {\n log('[dropChoice] category: ', undefined, 'choice: ', undefined);\n }\n\n const answers = draggedChoice ? moveChoiceToCategory(\n draggedChoice.id,\n draggedChoice.categoryId,\n categoryId,\n draggedChoice.choiceIndex,\n session.answers\n ) : this.removeChoice(categoryId)\n\n if (draggedChoice) {\n onAnswersChange(answers);\n } \n };\n\n UNSAFE_componentWillReceiveProps() {\n this.setState({ showCorrect: false });\n }\n\n toggleShowCorrect = () =>\n this.setState({ showCorrect: !this.state.showCorrect }, () => {\n this.props.onShowCorrectToggle();\n });\n\n getPositionDirection = (choicePosition) => {\n let flexDirection;\n\n switch (choicePosition) {\n case 'left':\n flexDirection = 'row-reverse';\n break;\n case 'right':\n flexDirection = 'row';\n break;\n case 'below':\n flexDirection = 'column';\n break;\n default:\n // above\n flexDirection = 'column-reverse';\n break;\n }\n\n return flexDirection;\n };\n\n existAlternateResponse = (correctResponse) => correctResponse?.some(correctRes => correctRes.alternateResponses?.length > 0);\n\n render() {\n const { classes, model, session } = this.props;\n const { showCorrect } = this.state;\n const { choicesPosition, note, showNote, env } = model;\n const { mode, role } = env || {};\n const choicePosition = choicesPosition || 'above';\n\n const style = {\n flexDirection: this.getPositionDirection(choicePosition),\n };\n\n const { categories, choices, correct } = buildState(\n model.categories,\n model.choices,\n showCorrect ? model.correctResponse : session.answers,\n model.correctResponse\n );\n\n log('[render] disabled: ', model.disabled);\n \n const { rowLabels, categoriesPerRow, correctResponse } = model;\n const nbOfRows = categories && Math.ceil(categories.length / categoriesPerRow) || 0;\n const existAlternate = this.existAlternateResponse(correctResponse) || false;\n const displayNote = (showCorrect || mode === 'view' && role === 'instructor') && showNote && note && existAlternate;\n\n return (\n <div className={classes.mainContainer}>\n {model.teacherInstructions && hasText(model.teacherInstructions) && (\n <React.Fragment>\n <Collapsible\n labels={{\n hidden: 'Show Teacher Instructions',\n visible: 'Hide Teacher Instructions',\n }}\n className={classes.collapsible}\n >\n <PreviewPrompt prompt={model.teacherInstructions} />\n </Collapsible>\n <br />\n </React.Fragment>\n )}\n <CorrectAnswerToggle\n show={showCorrect || correct === false}\n toggled={showCorrect}\n onToggle={this.toggleShowCorrect}\n />\n {model.prompt && removeHTMLTags(model.prompt) && (\n <div className={classes.prompt}>\n <PreviewPrompt prompt={model.prompt} />\n </div>\n )}\n <div className={classes.categorize} style={style}>\n <div style={{ display: 'flex', flex: 1 }}>\n\n {\n !!(rowLabels && nbOfRows) && (\n <div style={{ display: 'grid'}}>\n {rowLabels.slice(0, nbOfRows).map((label, index) => (\n <div\n key={index}\n style={{\n alignItems: 'center',\n display: 'flex',\n justifyContent: 'center'\n }}\n dangerouslySetInnerHTML={{\n __html: label\n }}\n />\n ))}\n </div>\n )\n }\n <Categories\n model={model}\n disabled={model.disabled}\n categories={categories}\n onDropChoice={this.dropChoice}\n onRemoveChoice={this.removeChoice}\n />\n </div>\n <Choices\n disabled={model.disabled}\n model={model}\n choices={choices}\n choicePosition={choicePosition}\n onDropChoice={this.dropChoice}\n onRemoveChoice={this.removeChoice}\n />\n </div>\n {displayNote && (\n <div\n className={classes.note}\n dangerouslySetInnerHTML={{\n __html: `<strong>Note:</strong> ${note}`,\n }}\n />\n )}\n {model.rationale && hasText(model.rationale) && (\n <Collapsible\n labels={{ hidden: 'Show Rationale', visible: 'Hide Rationale' }}\n className={classes.collapsible}\n >\n <PreviewPrompt prompt={model.rationale} />\n </Collapsible>\n )}\n {model.correctness && model.feedback && !showCorrect && (\n <Feedback correctness={model.correctness} feedback={model.feedback} />\n )}\n </div>\n );\n }\n}\n\nclass CategorizeProvider extends React.Component {\n constructor(props) {\n super(props);\n this.uid = uid.generateId();\n }\n\n render() {\n return (\n <uid.Provider value={this.uid}>\n <Categorize {...this.props} />\n </uid.Provider>\n );\n }\n}\n\nconst styles = (theme) => ({\n mainContainer: {\n padding: theme.spacing.unit,\n color: color.text(),\n backgroundColor: color.background(),\n },\n prompt: {\n marginBottom: '35px',\n verticalAlign: 'middle',\n },\n note: {\n padding: '5px 0',\n },\n categorize: {\n marginBottom: theme.spacing.unit,\n display: 'flex',\n flexDirection: 'column',\n },\n collapsible: {\n paddingBottom: theme.spacing.unit * 2,\n },\n});\n\nexport default withDragContext(withStyles(styles)(CategorizeProvider));\n"],"file":"index.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/categorize/index.jsx"],"names":["log","removeHTMLTags","html","tmp","document","createElement","innerHTML","value","textContent","innerText","trim","Categorize","props","c","onAnswersChange","session","answers","id","categoryId","choiceIndex","draggedChoice","undefined","removeChoice","setState","showCorrect","state","onShowCorrectToggle","choicePosition","flexDirection","correctResponse","some","correctRes","alternateResponses","length","classes","model","choicesPosition","note","showNote","env","mode","role","style","getPositionDirection","categories","choices","correct","disabled","rowLabels","categoriesPerRow","nbOfRows","Math","ceil","existAlternate","existAlternateResponse","displayNote","mainContainer","teacherInstructions","hidden","visible","collapsible","prompt","toggleShowCorrect","categorize","display","flex","slice","map","label","index","alignItems","justifyContent","__html","dropChoice","rationale","correctness","feedback","React","Component","PropTypes","object","isRequired","shape","arrayOf","choice","string","category","func","CategorizeProvider","uid","generateId","styles","theme","color","text","backgroundColor","background","marginBottom","spacing","unit","paddingBottom"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport Choices from './choices';\nimport Categories from './categories';\nimport CorrectAnswerToggle from '@pie-lib/correct-answer-toggle';\nimport { withStyles } from '@material-ui/core/styles';\nimport { buildState, removeChoiceFromCategory, moveChoiceToCategory } from '@pie-lib/categorize';\nimport { withDragContext, uid } from '@pie-lib/drag';\nimport { color, Feedback, Collapsible, hasText, PreviewPrompt } from '@pie-lib/render-ui';\nimport debug from 'debug';\n\nconst log = debug('@pie-ui:categorize');\n\nconst removeHTMLTags = (html) => {\n const tmp = document.createElement('DIV');\n\n tmp.innerHTML = html;\n\n const value = tmp.textContent || tmp.innerText || '';\n\n return value.trim();\n};\n\nexport class Categorize extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n model: PropTypes.object,\n session: PropTypes.shape({\n answers: PropTypes.arrayOf(\n PropTypes.shape({\n choice: PropTypes.string,\n category: PropTypes.string,\n }),\n ),\n }),\n onAnswersChange: PropTypes.func.isRequired,\n onShowCorrectToggle: PropTypes.func.isRequired,\n };\n\n static defaultProps = {\n disabled: false,\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n showCorrect: false,\n };\n }\n\n removeChoice = (c) => {\n log('[removeChoice]: ', c);\n const { onAnswersChange, session } = this.props;\n const answers = removeChoiceFromCategory(c.id, c.categoryId, c.choiceIndex, session.answers);\n onAnswersChange(answers);\n };\n\n dropChoice = (categoryId, draggedChoice) => {\n const { session, onAnswersChange } = this.props;\n if (draggedChoice) {\n log('[dropChoice] category: ', draggedChoice.categoryId, 'choice: ', draggedChoice);\n } else {\n log('[dropChoice] category: ', undefined, 'choice: ', undefined);\n }\n\n const answers = draggedChoice\n ? moveChoiceToCategory(\n draggedChoice.id,\n draggedChoice.categoryId,\n categoryId,\n draggedChoice.choiceIndex,\n session.answers,\n )\n : this.removeChoice(categoryId);\n\n if (draggedChoice) {\n onAnswersChange(answers);\n }\n };\n\n UNSAFE_componentWillReceiveProps() {\n this.setState({ showCorrect: false });\n }\n\n toggleShowCorrect = () =>\n this.setState({ showCorrect: !this.state.showCorrect }, () => {\n this.props.onShowCorrectToggle();\n });\n\n getPositionDirection = (choicePosition) => {\n let flexDirection;\n\n switch (choicePosition) {\n case 'left':\n flexDirection = 'row-reverse';\n break;\n case 'right':\n flexDirection = 'row';\n break;\n case 'below':\n flexDirection = 'column';\n break;\n default:\n // above\n flexDirection = 'column-reverse';\n break;\n }\n\n return flexDirection;\n };\n\n existAlternateResponse = (correctResponse) =>\n correctResponse?.some((correctRes) => correctRes.alternateResponses?.length > 0);\n\n render() {\n const { classes, model, session } = this.props;\n const { showCorrect } = this.state;\n const { choicesPosition, note, showNote, env } = model;\n const { mode, role } = env || {};\n const choicePosition = choicesPosition || 'above';\n\n const style = {\n flexDirection: this.getPositionDirection(choicePosition),\n };\n\n const { categories, choices, correct } = buildState(\n model.categories,\n model.choices,\n showCorrect ? model.correctResponse : session.answers,\n model.correctResponse,\n );\n\n log('[render] disabled: ', model.disabled);\n\n const { rowLabels, categoriesPerRow, correctResponse } = model;\n const nbOfRows = (categories && Math.ceil(categories.length / categoriesPerRow)) || 0;\n const existAlternate = this.existAlternateResponse(correctResponse) || false;\n const displayNote =\n (showCorrect || (mode === 'view' && role === 'instructor')) && showNote && note && existAlternate;\n\n return (\n <div className={classes.mainContainer}>\n {model.teacherInstructions && hasText(model.teacherInstructions) && (\n <React.Fragment>\n <Collapsible\n labels={{\n hidden: 'Show Teacher Instructions',\n visible: 'Hide Teacher Instructions',\n }}\n className={classes.collapsible}\n >\n <PreviewPrompt prompt={model.teacherInstructions} />\n </Collapsible>\n </React.Fragment>\n )}\n\n {model.prompt && removeHTMLTags(model.prompt) && <PreviewPrompt prompt={model.prompt} />}\n\n <CorrectAnswerToggle\n show={showCorrect || correct === false}\n toggled={showCorrect}\n onToggle={this.toggleShowCorrect}\n />\n\n <div className={classes.categorize} style={style}>\n <div style={{ display: 'flex', flex: 1 }}>\n {!!(rowLabels && nbOfRows) && (\n <div style={{ display: 'grid' }}>\n {rowLabels.slice(0, nbOfRows).map((label, index) => (\n <div\n key={index}\n style={{\n alignItems: 'center',\n display: 'flex',\n justifyContent: 'center',\n }}\n dangerouslySetInnerHTML={{\n __html: label,\n }}\n />\n ))}\n </div>\n )}\n <Categories\n model={model}\n disabled={model.disabled}\n categories={categories}\n onDropChoice={this.dropChoice}\n onRemoveChoice={this.removeChoice}\n />\n </div>\n <Choices\n disabled={model.disabled}\n model={model}\n choices={choices}\n choicePosition={choicePosition}\n onDropChoice={this.dropChoice}\n onRemoveChoice={this.removeChoice}\n />\n </div>\n\n {displayNote && (\n <div\n className={classes.note}\n dangerouslySetInnerHTML={{\n __html: `<strong>Note:</strong> ${note}`,\n }}\n />\n )}\n\n {model.rationale && hasText(model.rationale) && (\n <Collapsible labels={{ hidden: 'Show Rationale', visible: 'Hide Rationale' }} className={classes.collapsible}>\n <PreviewPrompt prompt={model.rationale} />\n </Collapsible>\n )}\n\n {model.correctness && model.feedback && !showCorrect && (\n <Feedback correctness={model.correctness} feedback={model.feedback} />\n )}\n </div>\n );\n }\n}\n\nclass CategorizeProvider extends React.Component {\n constructor(props) {\n super(props);\n this.uid = uid.generateId();\n }\n\n render() {\n return (\n <uid.Provider value={this.uid}>\n <Categorize {...this.props} />\n </uid.Provider>\n );\n }\n}\n\nconst styles = (theme) => ({\n mainContainer: {\n color: color.text(),\n backgroundColor: color.background(),\n },\n note: {\n marginBottom: theme.spacing.unit * 2,\n },\n categorize: {\n marginBottom: theme.spacing.unit,\n display: 'flex',\n flexDirection: 'column',\n },\n collapsible: {\n paddingBottom: theme.spacing.unit * 2,\n },\n});\n\nexport default withDragContext(withStyles(styles)(CategorizeProvider));\n"],"file":"index.js"}
|
package/lib/index.js
CHANGED
|
@@ -47,6 +47,7 @@ var Categorize = /*#__PURE__*/function (_HTMLElement) {
|
|
|
47
47
|
key: "model",
|
|
48
48
|
set: function set(m) {
|
|
49
49
|
this._model = m;
|
|
50
|
+
this.eliminateBlindAnswersFromSession();
|
|
50
51
|
this.dispatchEvent(new _piePlayerEvents.ModelSetEvent(this.tagName.toLowerCase(), this.isComplete(), !!this._model));
|
|
51
52
|
this.render();
|
|
52
53
|
}
|
|
@@ -72,6 +73,32 @@ var Categorize = /*#__PURE__*/function (_HTMLElement) {
|
|
|
72
73
|
this._session = s;
|
|
73
74
|
this.render();
|
|
74
75
|
}
|
|
76
|
+
}, {
|
|
77
|
+
key: "eliminateBlindAnswersFromSession",
|
|
78
|
+
value: function eliminateBlindAnswersFromSession() {
|
|
79
|
+
var _ref = this._session || {},
|
|
80
|
+
_ref$answers = _ref.answers,
|
|
81
|
+
answers = _ref$answers === void 0 ? [] : _ref$answers;
|
|
82
|
+
|
|
83
|
+
var _ref2 = this._model || {},
|
|
84
|
+
_ref2$choices = _ref2.choices,
|
|
85
|
+
choices = _ref2$choices === void 0 ? [] : _ref2$choices;
|
|
86
|
+
|
|
87
|
+
var mappedChoices = choices.map(function (c) {
|
|
88
|
+
return c.id;
|
|
89
|
+
}) || [];
|
|
90
|
+
var filteredAnswers = answers.map(function (answer) {
|
|
91
|
+
var answerChoices = (answer === null || answer === void 0 ? void 0 : answer.choices) || [];
|
|
92
|
+
answer.choices = answerChoices.filter(function (c) {
|
|
93
|
+
return mappedChoices.includes(c);
|
|
94
|
+
});
|
|
95
|
+
return answer;
|
|
96
|
+
});
|
|
97
|
+
|
|
98
|
+
if (filteredAnswers.length > 0) {
|
|
99
|
+
this.changeAnswers(filteredAnswers);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
75
102
|
}, {
|
|
76
103
|
key: "changeAnswers",
|
|
77
104
|
value: function changeAnswers(answers) {
|
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","
|
|
1
|
+
{"version":3,"sources":["../src/index.js"],"names":["Categorize","m","_model","eliminateBlindAnswersFromSession","dispatchEvent","ModelSetEvent","tagName","toLowerCase","isComplete","render","_session","Array","isArray","answers","length","s","choices","mappedChoices","map","c","id","filteredAnswers","answer","answerChoices","filter","includes","changeAnswers","SessionChangedEvent","el","React","createElement","CategorizeComponent","model","session","onAnswersChange","bind","onShowCorrectToggle","ReactDOM","HTMLElement"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;IAEqBA,U;;;;;;;;;;;;SACnB,aAAUC,CAAV,EAAa;AACX,WAAKC,MAAL,GAAcD,CAAd;AAEA,WAAKE,gCAAL;AACA,WAAKC,aAAL,CAAmB,IAAIC,8BAAJ,CAAkB,KAAKC,OAAL,CAAaC,WAAb,EAAlB,EAA8C,KAAKC,UAAL,EAA9C,EAAiE,CAAC,CAAC,KAAKN,MAAxE,CAAnB;AACA,WAAKO,MAAL;AACD;;;WAED,sBAAa;AACX,UAAI,CAAC,KAAKC,QAAV,EAAoB;AAClB,eAAO,KAAP;AACD;;AAED,aAAOC,KAAK,CAACC,OAAN,CAAc,KAAKF,QAAL,CAAcG,OAA5B,KAAwC,KAAKH,QAAL,CAAcG,OAAd,CAAsBC,MAAtB,GAA+B,CAA9E;AACD;;;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,4CAAkC;AAChC,iBAAyB,KAAKC,QAAL,IAAiB,EAA1C;AAAA,8BAAQG,OAAR;AAAA,UAAQA,OAAR,6BAAkB,EAAlB;;AACA,kBAAyB,KAAKX,MAAL,IAAe,EAAxC;AAAA,gCAAQc,OAAR;AAAA,UAAQA,OAAR,8BAAkB,EAAlB;;AACA,UAAMC,aAAa,GAAID,OAAO,CAACE,GAAR,CAAY,UAAAC,CAAC;AAAA,eAAIA,CAAC,CAACC,EAAN;AAAA,OAAb,KAA0B,EAAjD;AACA,UAAMC,eAAe,GAAGR,OAAO,CAACK,GAAR,CAAY,UAAAI,MAAM,EAAI;AAC5C,YAAMC,aAAa,GAAG,CAAAD,MAAM,SAAN,IAAAA,MAAM,WAAN,YAAAA,MAAM,CAAEN,OAAR,KAAmB,EAAzC;AACAM,QAAAA,MAAM,CAACN,OAAP,GAAiBO,aAAa,CAACC,MAAd,CAAqB,UAAAL,CAAC;AAAA,iBAAIF,aAAa,CAACQ,QAAd,CAAuBN,CAAvB,CAAJ;AAAA,SAAtB,CAAjB;AACA,eAAOG,MAAP;AACD,OAJuB,CAAxB;;AAKA,UAAGD,eAAe,CAACP,MAAhB,GAAyB,CAA5B,EAA8B;AAC5B,aAAKY,aAAL,CAAmBL,eAAnB;AACD;AACF;;;WAED,uBAAcR,OAAd,EAAuB;AACrB,WAAKH,QAAL,CAAcG,OAAd,GAAwBA,OAAxB;AAEA,WAAKT,aAAL,CAAmB,IAAIuB,oCAAJ,CAAwB,KAAKrB,OAAL,CAAaC,WAAb,EAAxB,EAAoD,KAAKC,UAAL,EAApD,CAAnB;AAEA,WAAKC,MAAL;AACD;;;WAED,+BAAsB;AACpB,qCAAW,IAAX;AACD;;;WAED,kBAAS;AAAA;;AACP,UAAI,KAAKP,MAAL,IAAe,KAAKQ,QAAxB,EAAkC;AAChC,YAAMkB,EAAE,gBAAGC,kBAAMC,aAAN,CAAoBC,sBAApB,EAAyC;AAClDC,UAAAA,KAAK,EAAE,KAAK9B,MADsC;AAElD+B,UAAAA,OAAO,EAAE,KAAKvB,QAFoC;AAGlDwB,UAAAA,eAAe,EAAE,KAAKR,aAAL,CAAmBS,IAAnB,CAAwB,IAAxB,CAHiC;AAIlDC,UAAAA,mBAAmB,EAAE,KAAKA,mBAAL,CAAyBD,IAAzB,CAA8B,IAA9B;AAJ6B,SAAzC,CAAX;;AAOAE,6BAAS5B,MAAT,CAAgBmB,EAAhB,EAAoB,IAApB,EAA0B,YAAM;AAC9B,yCAAW,KAAX;AACD,SAFD;AAGD;AACF;;;kDArEqCU,W","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport { SessionChangedEvent, ModelSetEvent } 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.eliminateBlindAnswersFromSession();\n this.dispatchEvent(new ModelSetEvent(this.tagName.toLowerCase(), this.isComplete(), !!this._model));\n this.render();\n }\n\n isComplete() {\n if (!this._session) {\n return false;\n }\n\n return Array.isArray(this._session.answers) && this._session.answers.length > 0;\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 eliminateBlindAnswersFromSession(){\n const { answers = [] } = this._session || {};\n const { choices = [] } = this._model || {};\n const mappedChoices = choices.map(c => c.id) || [];\n const filteredAnswers = answers.map(answer => {\n const answerChoices = answer?.choices || [];\n answer.choices = answerChoices.filter(c => mappedChoices.includes(c));\n return answer;\n })\n if(filteredAnswers.length > 0){\n this.changeAnswers(filteredAnswers);\n }\n }\n\n changeAnswers(answers) {\n this._session.answers = answers;\n\n this.dispatchEvent(new SessionChangedEvent(this.tagName.toLowerCase(), this.isComplete()));\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": "7.9.1-next.
|
|
7
|
+
"version": "7.9.1-next.78+3867e7270",
|
|
8
8
|
"description": "",
|
|
9
9
|
"author": "pie framework developers",
|
|
10
10
|
"license": "ISC",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"react-dnd": "^14.0.5",
|
|
25
25
|
"react-dom": "^16.8.1"
|
|
26
26
|
},
|
|
27
|
-
"gitHead": "
|
|
27
|
+
"gitHead": "3867e7270466f7f9b9f4c33bb72e7eed6d50bb57",
|
|
28
28
|
"scripts": {
|
|
29
29
|
"postpublish": "../../scripts/postpublish"
|
|
30
30
|
},
|