@pie-element/categorize 7.13.1-next.9 → 7.14.1-next.13
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 +20 -0
- package/configure/CHANGELOG.md +18 -0
- package/configure/lib/defaults.js +5 -1
- package/configure/lib/defaults.js.map +1 -1
- package/configure/lib/design/categories/RowLabel.js +5 -2
- package/configure/lib/design/categories/RowLabel.js.map +1 -1
- package/configure/lib/design/categories/alternateResponses.js +7 -3
- package/configure/lib/design/categories/alternateResponses.js.map +1 -1
- package/configure/lib/design/categories/category.js +5 -2
- package/configure/lib/design/categories/category.js.map +1 -1
- package/configure/lib/design/categories/index.js +5 -2
- package/configure/lib/design/categories/index.js.map +1 -1
- package/configure/lib/design/index.js +16 -8
- package/configure/lib/design/index.js.map +1 -1
- package/configure/lib/design/input-header.js +5 -2
- package/configure/lib/design/input-header.js.map +1 -1
- package/configure/lib/index.js +22 -1
- package/configure/lib/index.js.map +1 -1
- package/configure/package.json +6 -6
- package/controller/lib/index.js +43 -20
- package/controller/lib/index.js.map +1 -1
- package/controller/package.json +3 -3
- package/docs/config-schema.json +32 -0
- package/docs/config-schema.json.md +24 -0
- package/docs/pie-schema.json +16 -0
- package/docs/pie-schema.json.md +12 -0
- package/lib/categorize/grid-content.js +1 -1
- package/lib/categorize/grid-content.js.map +1 -1
- package/package.json +7 -7
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,26 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [7.14.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/categorize@7.13.0...@pie-element/categorize@7.14.0) (2023-06-13)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* **categorize:** PD-2605 update snapshots ([1d72f85](https://github.com/pie-framework/pie-elements/commit/1d72f85b134fa1371ed72f43bfef2f812b23a547))
|
|
12
|
+
* **categorize:** PD-2605-avoid excessive white space in categories player ([7d9b531](https://github.com/pie-framework/pie-elements/commit/7d9b531e384b61766a5b17049a799414719a4212))
|
|
13
|
+
* update libs PD-2722, PD-2827, PD-2832 ([834ecf9](https://github.com/pie-framework/pie-elements/commit/834ecf92cc7204c851c68f0945ad5d52e453c9d0))
|
|
14
|
+
* update pie-libs ([649fb8f](https://github.com/pie-framework/pie-elements/commit/649fb8f535172d76b3ffc676ec53b2726432808c))
|
|
15
|
+
* update pie-libs PD-2150, PD-2795 ([ff6f64a](https://github.com/pie-framework/pie-elements/commit/ff6f64afa6ccaa8a060c986b1637c680e68c62b6))
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
### Features
|
|
19
|
+
|
|
20
|
+
* add mathMlOptions PD-2150 ([0c6984c](https://github.com/pie-framework/pie-elements/commit/0c6984cf042141eac36badfbab1c46d8d42f71ee))
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
6
26
|
# [7.13.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/categorize@7.12.3...@pie-element/categorize@7.13.0) (2023-05-23)
|
|
7
27
|
|
|
8
28
|
|
package/configure/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,24 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [6.14.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/categorize-configure@6.13.0...@pie-element/categorize-configure@6.14.0) (2023-06-13)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* update libs PD-2722, PD-2827, PD-2832 ([834ecf9](https://github.com/pie-framework/pie-elements/commit/834ecf92cc7204c851c68f0945ad5d52e453c9d0))
|
|
12
|
+
* update pie-libs ([649fb8f](https://github.com/pie-framework/pie-elements/commit/649fb8f535172d76b3ffc676ec53b2726432808c))
|
|
13
|
+
* update pie-libs PD-2150, PD-2795 ([ff6f64a](https://github.com/pie-framework/pie-elements/commit/ff6f64afa6ccaa8a060c986b1637c680e68c62b6))
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
### Features
|
|
17
|
+
|
|
18
|
+
* add mathMlOptions PD-2150 ([0c6984c](https://github.com/pie-framework/pie-elements/commit/0c6984cf042141eac36badfbab1c46d8d42f71ee))
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
6
24
|
# [6.13.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/categorize-configure@6.12.3...@pie-element/categorize-configure@6.13.0) (2023-05-23)
|
|
7
25
|
|
|
8
26
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/defaults.js"],"names":["model","choices","choicesPosition","choicesLabel","lockChoiceOrder","allowMultiplePlacementsEnabled","multiplePlacements","enabled","allowAlternateEnabled","categoriesPerRow","categories","alternates","correctResponse","rowLabels","partialScoring","feedbackEnabled","rationaleEnabled","promptEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","toolbarEditorPosition","configuration","spellCheck","label","settings","feedback","allowMultiplePlacements","allowAlternate","prompt","rationale","scoringType","settingsPanelDisabled","studentInstructions","teacherInstructions","maxImageWidth","rowLabel","categoryLabel","maxImageHeight","withRubric","minCategoriesPerRow"],"mappings":"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
|
|
1
|
+
{"version":3,"sources":["../src/defaults.js"],"names":["model","choices","choicesPosition","choicesLabel","lockChoiceOrder","allowMultiplePlacementsEnabled","multiplePlacements","enabled","allowAlternateEnabled","categoriesPerRow","categories","alternates","correctResponse","rowLabels","partialScoring","feedbackEnabled","rationaleEnabled","promptEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","toolbarEditorPosition","configuration","spellCheck","label","settings","feedback","allowMultiplePlacements","allowAlternate","prompt","rationale","scoringType","settingsPanelDisabled","studentInstructions","teacherInstructions","maxImageWidth","rowLabel","categoryLabel","maxImageHeight","withRubric","minCategoriesPerRow","mathMlOptions","mmlOutput","mmlEditing"],"mappings":"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","sourcesContent":["import { multiplePlacements } from './utils';\n\nexport default {\n model: {\n choices: [],\n choicesPosition: 'below',\n choicesLabel: '',\n lockChoiceOrder: true,\n allowMultiplePlacementsEnabled: multiplePlacements.enabled,\n allowAlternateEnabled: false,\n categoriesPerRow: 2,\n categories: [],\n alternates: [],\n correctResponse: [],\n rowLabels: [''],\n partialScoring: true,\n feedbackEnabled: false,\n rationaleEnabled: true,\n promptEnabled: true,\n teacherInstructionsEnabled: true,\n studentInstructionsEnabled: true,\n toolbarEditorPosition: 'bottom',\n },\n configuration: {\n spellCheck: {\n label: 'Spellcheck',\n settings: false,\n enabled: true,\n },\n feedback: {\n settings: true,\n label: 'Feedback',\n enabled: true,\n },\n lockChoiceOrder: {\n settings: true,\n label: 'Lock Choice Order',\n },\n choicesPosition: {\n settings: true,\n label: 'Choices Position',\n },\n allowMultiplePlacements: {\n settings: true,\n label: 'Allow Multiple Placements',\n },\n allowAlternate: {\n settings: true,\n label: 'Allow Alternate Correct Answers',\n },\n categoriesPerRow: {\n settings: true,\n label: 'Categories per row',\n },\n partialScoring: {\n settings: false,\n label: 'Allow Partial Scoring',\n },\n prompt: {\n settings: true,\n label: 'Prompt',\n },\n rationale: {\n settings: true,\n label: 'Rationale',\n },\n scoringType: {\n settings: false,\n label: 'Scoring Type',\n },\n settingsPanelDisabled: false,\n studentInstructions: {\n settings: false,\n label: 'Student Instructions',\n },\n teacherInstructions: {\n settings: true,\n label: 'Teacher Instructions',\n },\n toolbarEditorPosition: {\n settings: false,\n label: 'Toolbar Editor Position',\n },\n maxImageWidth: {\n teacherInstructions: 300,\n prompt: 300,\n rationale: 300,\n rowLabel: 200,\n categoryLabel: 260,\n choices: 240,\n },\n maxImageHeight: {\n teacherInstructions: 300,\n prompt: 300,\n rationale: 300,\n rowLabel: 100,\n categoryLabel: 100,\n choices: 150,\n },\n withRubric: {\n settings: false,\n label: 'Add Rubric',\n },\n minCategoriesPerRow: 1,\n mathMlOptions: {\n mmlOutput: false,\n mmlEditing: false,\n },\n },\n};\n"],"file":"defaults.js"}
|
|
@@ -38,7 +38,9 @@ var RowLabel = (0, _styles.withStyles)(styles)(function (_ref) {
|
|
|
38
38
|
spellCheck = _ref.spellCheck,
|
|
39
39
|
maxImageWidth = _ref.maxImageWidth,
|
|
40
40
|
maxImageHeight = _ref.maxImageHeight,
|
|
41
|
-
uploadSoundSupport = _ref.uploadSoundSupport
|
|
41
|
+
uploadSoundSupport = _ref.uploadSoundSupport,
|
|
42
|
+
_ref$mathMlOptions = _ref.mathMlOptions,
|
|
43
|
+
mathMlOptions = _ref$mathMlOptions === void 0 ? {} : _ref$mathMlOptions;
|
|
42
44
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
43
45
|
style: {
|
|
44
46
|
gridColumn: "1/".concat(categoriesPerRow + 1),
|
|
@@ -62,7 +64,8 @@ var RowLabel = (0, _styles.withStyles)(styles)(function (_ref) {
|
|
|
62
64
|
language: 'spanish'
|
|
63
65
|
}, {
|
|
64
66
|
language: 'special'
|
|
65
|
-
}]
|
|
67
|
+
}],
|
|
68
|
+
mathMlOptions: mathMlOptions
|
|
66
69
|
})));
|
|
67
70
|
});
|
|
68
71
|
exports.RowLabel = RowLabel;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/design/categories/RowLabel.jsx"],"names":["styles","theme","rowLabel","gridColumn","rowLabelHolder","paddingTop","spacing","unit","width","RowLabel","categoriesPerRow","classes","disabled","markup","imageSupport","onChange","toolbarOpts","spellCheck","maxImageWidth","maxImageHeight","uploadSoundSupport","language"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAEA,IAAMA,MAAM,GAAG,SAATA,MAAS,CAACC,KAAD;AAAA,SAAY;AACzBC,IAAAA,QAAQ,EAAE;AACRC,MAAAA,UAAU,EAAE;AADJ,KADe;AAIzBC,IAAAA,cAAc,EAAE;AACdC,MAAAA,UAAU,EAAEJ,KAAK,CAACK,OAAN,CAAcC,IAAd,GAAqB,CADnB;AAEdC,MAAAA,KAAK,EAAE;AAFO;AAJS,GAAZ;AAAA,CAAf;;AAUO,IAAMC,QAAQ,GAAG,wBAAWT,MAAX,EACtB,
|
|
1
|
+
{"version":3,"sources":["../../../src/design/categories/RowLabel.jsx"],"names":["styles","theme","rowLabel","gridColumn","rowLabelHolder","paddingTop","spacing","unit","width","RowLabel","categoriesPerRow","classes","disabled","markup","imageSupport","onChange","toolbarOpts","spellCheck","maxImageWidth","maxImageHeight","uploadSoundSupport","mathMlOptions","language"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAEA,IAAMA,MAAM,GAAG,SAATA,MAAS,CAACC,KAAD;AAAA,SAAY;AACzBC,IAAAA,QAAQ,EAAE;AACRC,MAAAA,UAAU,EAAE;AADJ,KADe;AAIzBC,IAAAA,cAAc,EAAE;AACdC,MAAAA,UAAU,EAAEJ,KAAK,CAACK,OAAN,CAAcC,IAAd,GAAqB,CADnB;AAEdC,MAAAA,KAAK,EAAE;AAFO;AAJS,GAAZ;AAAA,CAAf;;AAUO,IAAMC,QAAQ,GAAG,wBAAWT,MAAX,EACtB,gBAaM;AAAA,MAZJU,gBAYI,QAZJA,gBAYI;AAAA,MAXJC,OAWI,QAXJA,OAWI;AAAA,MAVJC,QAUI,QAVJA,QAUI;AAAA,MATJC,MASI,QATJA,MASI;AAAA,MARJC,YAQI,QARJA,YAQI;AAAA,MAPJC,QAOI,QAPJA,QAOI;AAAA,MANJC,WAMI,QANJA,WAMI;AAAA,MALJC,UAKI,QALJA,UAKI;AAAA,MAJJC,aAII,QAJJA,aAII;AAAA,MAHJC,cAGI,QAHJA,cAGI;AAAA,MAFJC,kBAEI,QAFJA,kBAEI;AAAA,gCADHC,aACG;AAAA,MADHA,aACG,mCADa,EACb;AACJ,sBACE;AACE,IAAA,KAAK,EAAE;AACLlB,MAAAA,UAAU,cAAOO,gBAAgB,GAAG,CAA1B,CADL;AAELF,MAAAA,KAAK,EAAE;AAFF;AADT,kBAME,gCAAC,wBAAD;AAAgB,IAAA,KAAK,EAAC,WAAtB;AAAkC,IAAA,SAAS,EAAEG,OAAO,CAACP;AAArD,kBACE,gCAAC,wBAAD;AACE,IAAA,QAAQ,EAAEQ,QADZ;AAEE,IAAA,MAAM,EAAEC,MAFV;AAGE,IAAA,QAAQ,EAAEE,QAHZ;AAIE,IAAA,YAAY,EAAED,YAJhB;AAKE,IAAA,QAAQ,EAAE,KALZ;AAME,IAAA,WAAW,EAAEE,WANf;AAOE,IAAA,UAAU,EAAEC,UAPd;AAQE,IAAA,aAAa,EAAEC,aARjB;AASE,IAAA,cAAc,EAAEC,cATlB;AAUE,IAAA,kBAAkB,EAAEC,kBAVtB;AAWE,IAAA,uBAAuB,EAAE,CAAC;AAAEE,MAAAA,QAAQ,EAAE;AAAZ,KAAD,EAA0B;AAAEA,MAAAA,QAAQ,EAAE;AAAZ,KAA1B,CAX3B;AAYE,IAAA,aAAa,EAAED;AAZjB,IADF,CANF,CADF;AAyBD,CAxCqB,CAAjB","sourcesContent":["import React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\nimport EditableHtml from '@pie-lib/editable-html';\nimport { InputContainer } from '@pie-lib/render-ui';\n\nconst styles = (theme) => ({\n rowLabel: {\n gridColumn: '1/3',\n },\n rowLabelHolder: {\n paddingTop: theme.spacing.unit * 2,\n width: '100%',\n },\n});\n\nexport const RowLabel = withStyles(styles)(\n ({\n categoriesPerRow,\n classes,\n disabled,\n markup,\n imageSupport,\n onChange,\n toolbarOpts,\n spellCheck,\n maxImageWidth,\n maxImageHeight,\n uploadSoundSupport,\n mathMlOptions = {}\n }) => {\n return (\n <div\n style={{\n gridColumn: `1/${categoriesPerRow + 1}`,\n width: '100%',\n }}\n >\n <InputContainer label=\"Row Label\" className={classes.rowLabelHolder}>\n <EditableHtml\n disabled={disabled}\n markup={markup}\n onChange={onChange}\n imageSupport={imageSupport}\n nonEmpty={false}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheck}\n maxImageWidth={maxImageWidth}\n maxImageHeight={maxImageHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n </InputContainer>\n </div>\n );\n },\n);\n"],"file":"RowLabel.js"}
|
|
@@ -194,7 +194,9 @@ var AlternateResponses = /*#__PURE__*/function (_React$Component) {
|
|
|
194
194
|
uploadSoundSupport = _this$props4.uploadSoundSupport,
|
|
195
195
|
toolbarOpts = _this$props4.toolbarOpts,
|
|
196
196
|
defaultImageMaxHeight = _this$props4.defaultImageMaxHeight,
|
|
197
|
-
defaultImageMaxWidth = _this$props4.defaultImageMaxWidth
|
|
197
|
+
defaultImageMaxWidth = _this$props4.defaultImageMaxWidth,
|
|
198
|
+
_this$props4$mathMlOp = _this$props4.mathMlOptions,
|
|
199
|
+
mathMlOptions = _this$props4$mathMlOp === void 0 ? {} : _this$props4$mathMlOp;
|
|
198
200
|
var categoriesPerRow = model.categoriesPerRow,
|
|
199
201
|
errors = model.errors,
|
|
200
202
|
rowLabels = model.rowLabels;
|
|
@@ -235,7 +237,8 @@ var AlternateResponses = /*#__PURE__*/function (_React$Component) {
|
|
|
235
237
|
spellCheck: spellCheck,
|
|
236
238
|
maxImageWidth: maxImageWidth && maxImageWidth.rowLabel || defaultImageMaxWidth,
|
|
237
239
|
maxImageHeight: maxImageHeight && maxImageHeight.rowLabel || defaultImageMaxHeight,
|
|
238
|
-
uploadSoundSupport: uploadSoundSupport
|
|
240
|
+
uploadSoundSupport: uploadSoundSupport,
|
|
241
|
+
mathMlOptions: mathMlOptions
|
|
239
242
|
}), /*#__PURE__*/_react["default"].createElement(_category["default"], {
|
|
240
243
|
key: index,
|
|
241
244
|
alternateResponseIndex: altIndex,
|
|
@@ -250,7 +253,8 @@ var AlternateResponses = /*#__PURE__*/function (_React$Component) {
|
|
|
250
253
|
onMoveChoice: function onMoveChoice(choiceId, from, to, choiceIndex, alternateIndex) {
|
|
251
254
|
return _this2.moveChoice(choiceId, from, to, choiceIndex, alternateIndex);
|
|
252
255
|
},
|
|
253
|
-
uploadSoundSupport: uploadSoundSupport
|
|
256
|
+
uploadSoundSupport: uploadSoundSupport,
|
|
257
|
+
mathMlOptions: mathMlOptions
|
|
254
258
|
}));
|
|
255
259
|
})));
|
|
256
260
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/design/categories/alternateResponses.jsx"],"names":["styles","theme","categories","marginBottom","spacing","unit","categoriesHolder","display","gridRowGap","gridColumnGap","row","gridTemplateColumns","alignItems","width","marginTop","rowLabel","gridColumn","rowLabelHolder","AlternateResponses","addedChoice","categoryId","props","altIndex","model","correctResponse","choices","onModelChanged","choice","find","c","id","forEach","a","category","alternateResponses","push","categoryCount","reduce","acc","currentValue","foundIndex","findIndex","filter","choiceId","from","to","choiceIndex","alternateIndex","altId","configuration","classes","className","imageSupport","spellCheck","uploadSoundSupport","toolbarOpts","defaultImageMaxHeight","defaultImageMaxWidth","categoriesPerRow","errors","rowLabels","duplicateAlternate","maxImageWidth","maxImageHeight","holderStyle","isDuplicated","index","map","hasRowLabel","rowIndex","val","changeRowLabel","addChoiceToCategory","deleteChoiceFromCategory","moveChoice","React","Component","PropTypes","number","isRequired","object","shape","add","func","string","array","bool"],"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 Category from './category';\nimport { moveChoiceToAlternate } from '@pie-lib/categorize';\nimport { RowLabel } from './RowLabel';\n\nconst styles = (theme) => ({\n categories: {\n marginBottom: theme.spacing.unit * 2.5,\n },\n categoriesHolder: {\n display: 'grid',\n gridRowGap: `${theme.spacing.unit}px`,\n gridColumnGap: `${theme.spacing.unit}px`,\n },\n row: {\n display: 'grid',\n gridTemplateColumns: 'repeat(2, 1fr)',\n gridColumnGap: `${theme.spacing.unit}px`,\n alignItems: 'baseline',\n width: '100%',\n marginTop: theme.spacing.unit,\n marginBottom: 2 * theme.spacing.unit,\n },\n rowLabel: {\n gridColumn: '1/3',\n },\n rowLabelHolder: {\n width: '100%',\n },\n});\n\nexport class AlternateResponses extends React.Component {\n static propTypes = {\n altIndex: PropTypes.number.isRequired,\n configuration: PropTypes.object,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n categories: PropTypes.array,\n defaultImageMaxHeight: PropTypes.number,\n defaultImageMaxWidth: PropTypes.number,\n onModelChanged: PropTypes.func,\n model: PropTypes.object.isRequired,\n uploadSoundSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n toolbarOpts: PropTypes.object,\n spellCheck: PropTypes.bool,\n };\n\n addChoiceToCategory = (addedChoice, categoryId) => {\n const {\n altIndex,\n model: { correctResponse, choices },\n onModelChanged,\n } = this.props;\n\n const choice = choices.find((c) => c.id === addedChoice.id);\n\n correctResponse.forEach((a) => {\n if (a.category === categoryId) {\n a.alternateResponses = a.alternateResponses || [];\n\n if (!a.alternateResponses[altIndex]) {\n a.alternateResponses[altIndex] = [];\n }\n\n a.alternateResponses[altIndex].push(addedChoice.id);\n if (choice.categoryCount && choice.categoryCount !== 0) {\n a.alternateResponses[altIndex] = a.alternateResponses[altIndex].reduce((acc, currentValue) => {\n if (currentValue === choice.id) {\n const foundIndex = acc.findIndex((c) => c === choice.id);\n if (foundIndex === -1) {\n acc.push(currentValue);\n }\n } else {\n acc.push(currentValue);\n }\n\n return acc;\n }, []);\n }\n\n return a;\n } else {\n if (a.alternateResponses[altIndex] && choice.categoryCount !== 0) {\n a.alternateResponses[altIndex] = a.alternateResponses[altIndex].filter((c) => c !== addedChoice.id);\n return a;\n }\n }\n\n return a;\n });\n\n onModelChanged({ correctResponse });\n };\n\n moveChoice = (choiceId, from, to, choiceIndex, alternateIndex) => {\n const { model, onModelChanged } = this.props;\n let { choices, correctResponse = [] } = model || {};\n const choice = (choices || []).find((choice) => choice.id === choiceId);\n correctResponse = moveChoiceToAlternate(\n choiceId,\n from,\n to,\n choiceIndex,\n correctResponse,\n alternateIndex,\n choice?.categoryCount,\n );\n\n onModelChanged({ correctResponse });\n };\n\n deleteChoiceFromCategory = (category, choice) => {\n const {\n altIndex,\n model: { correctResponse },\n onModelChanged,\n } = this.props;\n\n correctResponse.forEach((a) => {\n if (a.category === category.id) {\n if (a.alternateResponses[altIndex]) {\n a.alternateResponses[altIndex] = a.alternateResponses[altIndex].filter((altId) => altId !== choice.id);\n }\n }\n\n return a;\n });\n\n onModelChanged({ correctResponse });\n };\n\n render() {\n const {\n altIndex,\n model,\n configuration,\n classes,\n className,\n categories,\n imageSupport,\n spellCheck,\n uploadSoundSupport,\n toolbarOpts,\n defaultImageMaxHeight,\n defaultImageMaxWidth,\n } = this.props;\n const { categoriesPerRow, errors, rowLabels } = model;\n const { duplicateAlternate } = errors || {};\n const { maxImageWidth = {}, maxImageHeight = {} } = configuration || {};\n\n const holderStyle = {\n gridTemplateColumns: `repeat(${categoriesPerRow}, 1fr)`,\n };\n const isDuplicated = duplicateAlternate ? duplicateAlternate.index === altIndex : false;\n\n return (\n <div className={classNames(classes.categories, className)}>\n <div className={classes.categoriesHolder} style={holderStyle}>\n {categories.map((category, index) => {\n const hasRowLabel = index % categoriesPerRow === 0;\n const rowIndex = index / categoriesPerRow;\n\n return (\n <React.Fragment key={index}>\n {hasRowLabel && (\n <RowLabel\n categoriesPerRow={categoriesPerRow}\n disabled={true}\n rowIndex={rowIndex}\n markup={rowLabels[rowIndex] || ''}\n onChange={(val) => this.changeRowLabel(val, rowIndex)}\n imageSupport={imageSupport}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheck}\n maxImageWidth={(maxImageWidth && maxImageWidth.rowLabel) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.rowLabel) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n />\n )}\n\n <Category\n key={index}\n alternateResponseIndex={altIndex}\n imageSupport={imageSupport}\n isDuplicated={isDuplicated && duplicateAlternate.category === category.id}\n category={category}\n spellCheck={spellCheck}\n onAddChoice={this.addChoiceToCategory}\n onDeleteChoice={(choice, choiceIndex) => this.deleteChoiceFromCategory(category, choice, choiceIndex)}\n onMoveChoice={(choiceId, from, to, choiceIndex, alternateIndex) =>\n this.moveChoice(choiceId, from, to, choiceIndex, alternateIndex)\n }\n uploadSoundSupport={uploadSoundSupport}\n />\n </React.Fragment>\n );\n })}\n </div>\n </div>\n );\n }\n}\n\nexport default withStyles(styles)(AlternateResponses);\n"],"file":"alternateResponses.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/design/categories/alternateResponses.jsx"],"names":["styles","theme","categories","marginBottom","spacing","unit","categoriesHolder","display","gridRowGap","gridColumnGap","row","gridTemplateColumns","alignItems","width","marginTop","rowLabel","gridColumn","rowLabelHolder","AlternateResponses","addedChoice","categoryId","props","altIndex","model","correctResponse","choices","onModelChanged","choice","find","c","id","forEach","a","category","alternateResponses","push","categoryCount","reduce","acc","currentValue","foundIndex","findIndex","filter","choiceId","from","to","choiceIndex","alternateIndex","altId","configuration","classes","className","imageSupport","spellCheck","uploadSoundSupport","toolbarOpts","defaultImageMaxHeight","defaultImageMaxWidth","mathMlOptions","categoriesPerRow","errors","rowLabels","duplicateAlternate","maxImageWidth","maxImageHeight","holderStyle","isDuplicated","index","map","hasRowLabel","rowIndex","val","changeRowLabel","addChoiceToCategory","deleteChoiceFromCategory","moveChoice","React","Component","PropTypes","number","isRequired","object","shape","add","func","string","array","bool"],"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 Category from './category';\nimport { moveChoiceToAlternate } from '@pie-lib/categorize';\nimport { RowLabel } from './RowLabel';\n\nconst styles = (theme) => ({\n categories: {\n marginBottom: theme.spacing.unit * 2.5,\n },\n categoriesHolder: {\n display: 'grid',\n gridRowGap: `${theme.spacing.unit}px`,\n gridColumnGap: `${theme.spacing.unit}px`,\n },\n row: {\n display: 'grid',\n gridTemplateColumns: 'repeat(2, 1fr)',\n gridColumnGap: `${theme.spacing.unit}px`,\n alignItems: 'baseline',\n width: '100%',\n marginTop: theme.spacing.unit,\n marginBottom: 2 * theme.spacing.unit,\n },\n rowLabel: {\n gridColumn: '1/3',\n },\n rowLabelHolder: {\n width: '100%',\n },\n});\n\nexport class AlternateResponses extends React.Component {\n static propTypes = {\n altIndex: PropTypes.number.isRequired,\n configuration: PropTypes.object,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n categories: PropTypes.array,\n defaultImageMaxHeight: PropTypes.number,\n defaultImageMaxWidth: PropTypes.number,\n onModelChanged: PropTypes.func,\n model: PropTypes.object.isRequired,\n uploadSoundSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n toolbarOpts: PropTypes.object,\n spellCheck: PropTypes.bool,\n };\n\n addChoiceToCategory = (addedChoice, categoryId) => {\n const {\n altIndex,\n model: { correctResponse, choices },\n onModelChanged,\n } = this.props;\n\n const choice = choices.find((c) => c.id === addedChoice.id);\n\n correctResponse.forEach((a) => {\n if (a.category === categoryId) {\n a.alternateResponses = a.alternateResponses || [];\n\n if (!a.alternateResponses[altIndex]) {\n a.alternateResponses[altIndex] = [];\n }\n\n a.alternateResponses[altIndex].push(addedChoice.id);\n if (choice.categoryCount && choice.categoryCount !== 0) {\n a.alternateResponses[altIndex] = a.alternateResponses[altIndex].reduce((acc, currentValue) => {\n if (currentValue === choice.id) {\n const foundIndex = acc.findIndex((c) => c === choice.id);\n if (foundIndex === -1) {\n acc.push(currentValue);\n }\n } else {\n acc.push(currentValue);\n }\n\n return acc;\n }, []);\n }\n\n return a;\n } else {\n if (a.alternateResponses[altIndex] && choice.categoryCount !== 0) {\n a.alternateResponses[altIndex] = a.alternateResponses[altIndex].filter((c) => c !== addedChoice.id);\n return a;\n }\n }\n\n return a;\n });\n\n onModelChanged({ correctResponse });\n };\n\n moveChoice = (choiceId, from, to, choiceIndex, alternateIndex) => {\n const { model, onModelChanged } = this.props;\n let { choices, correctResponse = [] } = model || {};\n const choice = (choices || []).find((choice) => choice.id === choiceId);\n correctResponse = moveChoiceToAlternate(\n choiceId,\n from,\n to,\n choiceIndex,\n correctResponse,\n alternateIndex,\n choice?.categoryCount,\n );\n\n onModelChanged({ correctResponse });\n };\n\n deleteChoiceFromCategory = (category, choice) => {\n const {\n altIndex,\n model: { correctResponse },\n onModelChanged,\n } = this.props;\n\n correctResponse.forEach((a) => {\n if (a.category === category.id) {\n if (a.alternateResponses[altIndex]) {\n a.alternateResponses[altIndex] = a.alternateResponses[altIndex].filter((altId) => altId !== choice.id);\n }\n }\n\n return a;\n });\n\n onModelChanged({ correctResponse });\n };\n\n render() {\n const {\n altIndex,\n model,\n configuration,\n classes,\n className,\n categories,\n imageSupport,\n spellCheck,\n uploadSoundSupport,\n toolbarOpts,\n defaultImageMaxHeight,\n defaultImageMaxWidth,\n mathMlOptions = {}\n } = this.props;\n const { categoriesPerRow, errors, rowLabels } = model;\n const { duplicateAlternate } = errors || {};\n const { maxImageWidth = {}, maxImageHeight = {} } = configuration || {};\n\n const holderStyle = {\n gridTemplateColumns: `repeat(${categoriesPerRow}, 1fr)`,\n };\n const isDuplicated = duplicateAlternate ? duplicateAlternate.index === altIndex : false;\n\n return (\n <div className={classNames(classes.categories, className)}>\n <div className={classes.categoriesHolder} style={holderStyle}>\n {categories.map((category, index) => {\n const hasRowLabel = index % categoriesPerRow === 0;\n const rowIndex = index / categoriesPerRow;\n\n return (\n <React.Fragment key={index}>\n {hasRowLabel && (\n <RowLabel\n categoriesPerRow={categoriesPerRow}\n disabled={true}\n rowIndex={rowIndex}\n markup={rowLabels[rowIndex] || ''}\n onChange={(val) => this.changeRowLabel(val, rowIndex)}\n imageSupport={imageSupport}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheck}\n maxImageWidth={(maxImageWidth && maxImageWidth.rowLabel) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.rowLabel) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n mathMlOptions={mathMlOptions}\n />\n )}\n\n <Category\n key={index}\n alternateResponseIndex={altIndex}\n imageSupport={imageSupport}\n isDuplicated={isDuplicated && duplicateAlternate.category === category.id}\n category={category}\n spellCheck={spellCheck}\n onAddChoice={this.addChoiceToCategory}\n onDeleteChoice={(choice, choiceIndex) => this.deleteChoiceFromCategory(category, choice, choiceIndex)}\n onMoveChoice={(choiceId, from, to, choiceIndex, alternateIndex) =>\n this.moveChoice(choiceId, from, to, choiceIndex, alternateIndex)\n }\n uploadSoundSupport={uploadSoundSupport}\n mathMlOptions={mathMlOptions}\n />\n </React.Fragment>\n );\n })}\n </div>\n </div>\n );\n }\n}\n\nexport default withStyles(styles)(AlternateResponses);\n"],"file":"alternateResponses.js"}
|
|
@@ -90,7 +90,9 @@ var Category = /*#__PURE__*/function (_React$Component) {
|
|
|
90
90
|
toolbarOpts = _this$props2.toolbarOpts,
|
|
91
91
|
maxImageWidth = _this$props2.maxImageWidth,
|
|
92
92
|
maxImageHeight = _this$props2.maxImageHeight,
|
|
93
|
-
uploadSoundSupport = _this$props2.uploadSoundSupport
|
|
93
|
+
uploadSoundSupport = _this$props2.uploadSoundSupport,
|
|
94
|
+
_this$props2$mathMlOp = _this$props2.mathMlOptions,
|
|
95
|
+
mathMlOptions = _this$props2$mathMlOp === void 0 ? {} : _this$props2$mathMlOp;
|
|
94
96
|
return /*#__PURE__*/_react["default"].createElement(_Card["default"], {
|
|
95
97
|
className: (0, _classnames["default"])(classes.category, className, (0, _defineProperty2["default"])({}, classes.duplicateError, isDuplicated))
|
|
96
98
|
}, /*#__PURE__*/_react["default"].createElement("span", null, /*#__PURE__*/_react["default"].createElement(_inputHeader["default"], {
|
|
@@ -107,7 +109,8 @@ var Category = /*#__PURE__*/function (_React$Component) {
|
|
|
107
109
|
spellCheck: spellCheck,
|
|
108
110
|
maxImageWidth: maxImageWidth,
|
|
109
111
|
maxImageHeight: maxImageHeight,
|
|
110
|
-
uploadSoundSupport: uploadSoundSupport
|
|
112
|
+
uploadSoundSupport: uploadSoundSupport,
|
|
113
|
+
mathMlOptions: mathMlOptions
|
|
111
114
|
}), error && /*#__PURE__*/_react["default"].createElement("div", {
|
|
112
115
|
className: classes.errorText
|
|
113
116
|
}, error)), /*#__PURE__*/_react["default"].createElement(_droppablePlaceholder["default"], {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/design/categories/category.jsx"],"names":["Category","l","props","category","onChange","label","alternateResponseIndex","classes","className","deleteFocusedEl","focusedEl","index","error","isDuplicated","onDelete","onDeleteChoice","onAddChoice","onMoveChoice","imageSupport","spellCheck","toolbarOpts","maxImageWidth","maxImageHeight","uploadSoundSupport","duplicateError","changeLabel","errorText","placeHolder","choices","id","actions","React","Component","PropTypes","number","object","isRequired","string","defaultImageMaxHeight","defaultImageMaxWidth","func","bool","shape","add","styles","theme","minHeight","deleteButton","margin","padding","paddingBottom","paddingTop","spacing","unit","iconButtonRoot","width","height","header","display","justifyContent","minWidth","overflow","border","fontSize","typography","color","palette","main","editor","flex"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA;;;;;;IAEaA,Q;;;;;;;;;;;;;;;oGAkCG,UAACC,CAAD,EAAO;AACnB,wBAA+B,MAAKC,KAApC;AAAA,UAAQC,QAAR,eAAQA,QAAR;AAAA,UAAkBC,QAAlB,eAAkBA,QAAlB;AACAD,MAAAA,QAAQ,CAACE,KAAT,GAAiBJ,CAAjB;AACAG,MAAAA,QAAQ,CAACD,QAAD,CAAR;AACD,K;;;;;;WAED,kBAAS;AACP,
|
|
1
|
+
{"version":3,"sources":["../../../src/design/categories/category.jsx"],"names":["Category","l","props","category","onChange","label","alternateResponseIndex","classes","className","deleteFocusedEl","focusedEl","index","error","isDuplicated","onDelete","onDeleteChoice","onAddChoice","onMoveChoice","imageSupport","spellCheck","toolbarOpts","maxImageWidth","maxImageHeight","uploadSoundSupport","mathMlOptions","duplicateError","changeLabel","errorText","placeHolder","choices","id","actions","React","Component","PropTypes","number","object","isRequired","string","defaultImageMaxHeight","defaultImageMaxWidth","func","bool","shape","add","styles","theme","minHeight","deleteButton","margin","padding","paddingBottom","paddingTop","spacing","unit","iconButtonRoot","width","height","header","display","justifyContent","minWidth","overflow","border","fontSize","typography","color","palette","main","editor","flex"],"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 Card from '@material-ui/core/Card';\nimport InputHeader from '../input-header';\nimport CardActions from '@material-ui/core/CardActions';\nimport { DeleteButton } from '../buttons';\n\nimport PlaceHolder from './droppable-placeholder';\n\nexport class Category extends React.Component {\n static propTypes = {\n alternateResponseIndex: PropTypes.number,\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n category: PropTypes.object.isRequired,\n defaultImageMaxHeight: PropTypes.number,\n defaultImageMaxWidth: PropTypes.number,\n deleteFocusedEl: PropTypes.func,\n focusedEl: PropTypes.number,\n index: PropTypes.number,\n error: PropTypes.string,\n isDuplicated: PropTypes.bool,\n maxImageWidth: PropTypes.object,\n maxImageHeight: PropTypes.object,\n onChange: PropTypes.func,\n onDelete: PropTypes.func,\n onDeleteChoice: PropTypes.func,\n onAddChoice: PropTypes.func,\n onMoveChoice: PropTypes.func,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n toolbarOpts: PropTypes.object,\n spellCheck: PropTypes.bool,\n uploadSoundSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n };\n\n static defaultProps = {};\n\n changeLabel = (l) => {\n const { category, onChange } = this.props;\n category.label = l;\n onChange(category);\n };\n\n render() {\n const {\n alternateResponseIndex,\n category,\n classes,\n className,\n deleteFocusedEl,\n focusedEl,\n index,\n error,\n isDuplicated,\n onDelete,\n onDeleteChoice,\n onAddChoice,\n onMoveChoice,\n imageSupport,\n spellCheck,\n toolbarOpts,\n maxImageWidth,\n maxImageHeight,\n uploadSoundSupport,\n mathMlOptions = {}\n } = this.props;\n return (\n <Card\n className={classNames(classes.category, className, {\n [classes.duplicateError]: isDuplicated,\n })}\n >\n <span>\n <InputHeader\n label={category.label}\n focusedEl={focusedEl}\n deleteFocusedEl={deleteFocusedEl}\n index={index}\n disabled={!!alternateResponseIndex || alternateResponseIndex === 0}\n error={error}\n onChange={this.changeLabel}\n onDelete={onDelete}\n imageSupport={imageSupport}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheck}\n maxImageWidth={maxImageWidth}\n maxImageHeight={maxImageHeight}\n uploadSoundSupport={uploadSoundSupport}\n mathMlOptions={mathMlOptions}\n />\n {error && <div className={classes.errorText}>{error}</div>}\n </span>\n <PlaceHolder\n className={classes.placeHolder}\n alternateResponseIndex={alternateResponseIndex}\n category={category}\n choices={category.choices}\n onDeleteChoice={onDeleteChoice}\n onDropChoice={onAddChoice}\n onMoveChoice={onMoveChoice}\n categoryId={category.id}\n />\n {onDelete && (\n <CardActions className={classes.actions}>\n <DeleteButton label={'delete'} onClick={onDelete} />\n </CardActions>\n )}\n </Card>\n );\n }\n}\nconst styles = (theme) => ({\n placeHolder: {\n minHeight: '100px',\n },\n deleteButton: {\n margin: 0,\n },\n actions: {\n padding: 0,\n paddingBottom: 0,\n paddingTop: theme.spacing.unit,\n },\n iconButtonRoot: {\n width: 'auto',\n height: 'auto',\n },\n header: {\n display: 'flex',\n justifyContent: 'space-between',\n },\n category: {\n minWidth: '196px',\n padding: theme.spacing.unit,\n overflow: 'visible',\n },\n duplicateError: {\n border: '1px solid red',\n },\n errorText: {\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingBottom: theme.spacing.unit,\n },\n editor: {\n flex: '1',\n paddingBottom: theme.spacing.unit * 2,\n },\n});\nexport default withStyles(styles)(Category);\n"],"file":"category.js"}
|
|
@@ -266,7 +266,9 @@ var Categories = /*#__PURE__*/function (_React$Component) {
|
|
|
266
266
|
spellCheck = _this$props6.spellCheck,
|
|
267
267
|
configuration = _this$props6.configuration,
|
|
268
268
|
defaultImageMaxHeight = _this$props6.defaultImageMaxHeight,
|
|
269
|
-
defaultImageMaxWidth = _this$props6.defaultImageMaxWidth
|
|
269
|
+
defaultImageMaxWidth = _this$props6.defaultImageMaxWidth,
|
|
270
|
+
_this$props6$mathMlOp = _this$props6.mathMlOptions,
|
|
271
|
+
mathMlOptions = _this$props6$mathMlOp === void 0 ? {} : _this$props6$mathMlOp;
|
|
270
272
|
var categoriesPerRow = model.categoriesPerRow,
|
|
271
273
|
rowLabels = model.rowLabels,
|
|
272
274
|
errors = model.errors;
|
|
@@ -330,7 +332,8 @@ var Categories = /*#__PURE__*/function (_React$Component) {
|
|
|
330
332
|
spellCheck: spellCheck,
|
|
331
333
|
maxImageWidth: maxImageWidth && maxImageWidth.rowLabel || defaultImageMaxWidth,
|
|
332
334
|
maxImageHeight: maxImageHeight && maxImageHeight.rowLabel || defaultImageMaxHeight,
|
|
333
|
-
uploadSoundSupport: uploadSoundSupport
|
|
335
|
+
uploadSoundSupport: uploadSoundSupport,
|
|
336
|
+
mathMlOptions: mathMlOptions
|
|
334
337
|
}), /*#__PURE__*/_react["default"].createElement(_category["default"], {
|
|
335
338
|
imageSupport: imageSupport,
|
|
336
339
|
focusedEl: _this2.state.focusedEl,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/design/categories/index.jsx"],"names":["styles","theme","categories","marginBottom","spacing","unit","categoriesHolder","display","gridRowGap","gridColumnGap","row","gridTemplateColumns","alignItems","width","marginTop","rowLabel","gridColumn","rowLabelHolder","tooltip","fontSize","typography","whiteSpace","maxWidth","errorText","color","palette","error","main","paddingTop","Categories","focusedEl","props","model","oldCategories","categoriesPerRow","id","utils","firstAvailableIndex","map","a","data","label","addRowLabel","length","rowLabels","push","setState","onModelChanged","concat","category","index","findIndex","splice","correctResponse","c","addedChoice","categoryId","choices","choice","find","undefined","categoryCount","choiceIndex","choiceId","from","to","val","newRowLabels","classes","className","imageSupport","uploadSoundSupport","toolbarOpts","spellCheck","configuration","defaultImageMaxHeight","defaultImageMaxWidth","errors","associationError","categoriesError","categoriesErrors","maxCategories","maxImageWidth","maxImageHeight","holderStyle","validationMessage","add","marginLeft","hasRowLabel","rowIndex","changeRowLabel","state","deleteFocusedEl","change","addChoiceToCategory","moveChoice","deleteChoiceFromCategory","categoryLabel","React","Component","PropTypes","number","shape","func","isRequired","object","string","array","bool"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAOA;;AACA;;AACA;;AACA;;;;;;AAEA,IAAMA,MAAM,GAAG,SAATA,MAAS,CAACC,KAAD;AAAA,SAAY;AACzBC,IAAAA,UAAU,EAAE;AACVC,MAAAA,YAAY,EAAEF,KAAK,CAACG,OAAN,CAAcC,IAAd,GAAqB;AADzB,KADa;AAIzBC,IAAAA,gBAAgB,EAAE;AAChBC,MAAAA,OAAO,EAAE,MADO;AAEhBC,MAAAA,UAAU,YAAKP,KAAK,CAACG,OAAN,CAAcC,IAAnB,OAFM;AAGhBI,MAAAA,aAAa,YAAKR,KAAK,CAACG,OAAN,CAAcC,IAAnB;AAHG,KAJO;AASzBK,IAAAA,GAAG,EAAE;AACHH,MAAAA,OAAO,EAAE,MADN;AAEHI,MAAAA,mBAAmB,EAAE,gBAFlB;AAGHF,MAAAA,aAAa,YAAKR,KAAK,CAACG,OAAN,CAAcC,IAAnB,OAHV;AAIHO,MAAAA,UAAU,EAAE,UAJT;AAKHC,MAAAA,KAAK,EAAE,MALJ;AAMHC,MAAAA,SAAS,EAAEb,KAAK,CAACG,OAAN,CAAcC,IANtB;AAOHF,MAAAA,YAAY,EAAE,IAAIF,KAAK,CAACG,OAAN,CAAcC;AAP7B,KAToB;AAkBzBU,IAAAA,QAAQ,EAAE;AACRC,MAAAA,UAAU,EAAE;AADJ,KAlBe;AAqBzBC,IAAAA,cAAc,EAAE;AACdJ,MAAAA,KAAK,EAAE;AADO,KArBS;AAwBzBK,IAAAA,OAAO,EAAE;AACPC,MAAAA,QAAQ,EAAElB,KAAK,CAACmB,UAAN,CAAiBD,QAAjB,GAA4B,CAD/B;AAEPE,MAAAA,UAAU,EAAE,KAFL;AAGPC,MAAAA,QAAQ,EAAE;AAHH,KAxBgB;AA6BzBC,IAAAA,SAAS,EAAE;AACTJ,MAAAA,QAAQ,EAAElB,KAAK,CAACmB,UAAN,CAAiBD,QAAjB,GAA4B,CAD7B;AAETK,MAAAA,KAAK,EAAEvB,KAAK,CAACwB,OAAN,CAAcC,KAAd,CAAoBC,IAFlB;AAGTC,MAAAA,UAAU,EAAE3B,KAAK,CAACG,OAAN,CAAcC,IAAd,GAAqB;AAHxB;AA7Bc,GAAZ;AAAA,CAAf;;IAoCawB,U;;;;;;;;;;;;;;;8FAsBH;AACNC,MAAAA,SAAS,EAAE;AADL,K;4FAIF,YAAM;AACV,wBAA6C,MAAKC,KAAlD;AAAA,UAAQC,KAAR,eAAQA,KAAR;AAAA,UAA2BC,aAA3B,eAAe/B,UAAf;AACA,UAAQgC,gBAAR,GAA6BF,KAA7B,CAAQE,gBAAR;;AACA,UAAMC,EAAE,GAAGC,sBAAMC,mBAAN,CACTL,KAAK,CAAC9B,UAAN,CAAiBoC,GAAjB,CAAqB,UAACC,CAAD;AAAA,eAAOA,CAAC,CAACJ,EAAT;AAAA,OAArB,CADS,EAET,CAFS,CAAX;;AAIA,UAAMK,IAAI,GAAG;AAAEL,QAAAA,EAAE,EAAFA,EAAF;AAAMM,QAAAA,KAAK,EAAE,cAAcN;AAA3B,OAAb;AACA,UAAMO,WAAW,GAAGV,KAAK,CAAC9B,UAAN,CAAiByC,MAAjB,GAA0BT,gBAA1B,KAA+C,CAAnE;AACA,UAAMU,SAAS,uCAAOZ,KAAK,CAACY,SAAb,CAAf;;AAEA,UAAIF,WAAJ,EAAiB;AACfE,QAAAA,SAAS,CAACC,IAAV,CAAe,EAAf;AACD;;AAED,YAAKC,QAAL,CACE;AACEhB,QAAAA,SAAS,EAAEG,aAAa,CAACU;AAD3B,OADF,EAIE,YAAM;AACJ,cAAKZ,KAAL,CAAWgB,cAAX,CAA0B;AACxBH,UAAAA,SAAS,EAATA,SADwB;AAExB1C,UAAAA,UAAU,EAAE8B,KAAK,CAAC9B,UAAN,CAAiB8C,MAAjB,CAAwB,CAACR,IAAD,CAAxB;AAFY,SAA1B;AAID,OATH;AAWD,K;wGAEiB,YAAM;AACtB,YAAKM,QAAL,CAAc;AACZhB,QAAAA,SAAS,EAAE;AADC,OAAd;AAGD,K;+FAEQ,UAACmB,QAAD,EAAc;AACrB,yBAAkC,MAAKlB,KAAvC;AAAA,UAAQC,KAAR,gBAAQA,KAAR;AAAA,UAAee,cAAf,gBAAeA,cAAf;AACA,UAAMG,KAAK,GAAGlB,KAAK,CAAC9B,UAAN,CAAiBiD,SAAjB,CAA2B,UAACZ,CAAD;AAAA,eAAOA,CAAC,CAACJ,EAAF,KAASc,QAAQ,CAACd,EAAzB;AAAA,OAA3B,CAAd;;AAEA,UAAIe,KAAK,KAAK,CAAC,CAAf,EAAkB;AAChBlB,QAAAA,KAAK,CAAC9B,UAAN,CAAiBkD,MAAjB,CAAwBF,KAAxB,EAA+B,CAA/B;AACAlB,QAAAA,KAAK,CAACqB,eAAN,GAAwB,gCAAeJ,QAAQ,CAACd,EAAxB,EAA4BH,KAAK,CAACqB,eAAlC,CAAxB;AACAN,QAAAA,cAAc,CAACf,KAAD,CAAd;AACD;AACF,K;+FAEQ,UAACsB,CAAD,EAAO;AACd,UAAQpD,UAAR,GAAuB,MAAK6B,KAA5B,CAAQ7B,UAAR;AACA,UAAMgD,KAAK,GAAGhD,UAAU,CAACiD,SAAX,CAAqB,UAACZ,CAAD;AAAA,eAAOA,CAAC,CAACJ,EAAF,KAASmB,CAAC,CAACnB,EAAlB;AAAA,OAArB,CAAd;;AAEA,UAAIe,KAAK,KAAK,CAAC,CAAf,EAAkB;AAChBhD,QAAAA,UAAU,CAACkD,MAAX,CAAkBF,KAAlB,EAAyB,CAAzB,EAA4BI,CAA5B;;AACA,cAAKvB,KAAL,CAAWgB,cAAX,CAA0B;AAAE7C,UAAAA,UAAU,EAAVA;AAAF,SAA1B;AACD;AACF,K;4GAEqB,UAACqD,WAAD,EAAcC,UAAd,EAA6B;AACjD,yBAAkC,MAAKzB,KAAvC;AAAA,UAAQC,KAAR,gBAAQA,KAAR;AAAA,UAAee,cAAf,gBAAeA,cAAf;;AACA,iBAA6Cf,KAAK,IAAI,EAAtD;AAAA,8BAAMyB,OAAN;AAAA,UAAMA,OAAN,6BAAgB,EAAhB;AAAA,sCAAoBJ,eAApB;AAAA,UAAoBA,eAApB,qCAAsC,EAAtC;;AACA,UAAMK,MAAM,GAAG,CAACD,OAAO,IAAI,EAAZ,EAAgBE,IAAhB,CAAqB,UAACD,MAAD;AAAA,eAAYA,MAAM,CAACvB,EAAP,KAAcoB,WAAW,CAACpB,EAAtC;AAAA,OAArB,CAAf;AACAkB,MAAAA,eAAe,GAAG,sCAAqBE,WAAW,CAACpB,EAAjC,EAAqCyB,SAArC,EAAgDJ,UAAhD,EAA4D,CAA5D,EAA+DxB,KAAK,CAACqB,eAArE,CAAlB,CAJiD,CAKjD;;AACA,UAAIK,MAAM,CAACG,aAAP,KAAyB,CAA7B,EAAgC;AAC9BR,QAAAA,eAAe,GAAG,+CAA8BE,WAA9B,EAA2CC,UAA3C,EAAuDH,eAAvD,CAAlB;AACD;;AACDN,MAAAA,cAAc,CAAC;AAAEM,QAAAA,eAAe,EAAfA;AAAF,OAAD,CAAd;AACD,K;iHAE0B,UAACJ,QAAD,EAAWS,MAAX,EAAmBI,WAAnB,EAAmC;AAC5D,yBAAkC,MAAK/B,KAAvC;AAAA,UAAQC,KAAR,gBAAQA,KAAR;AAAA,UAAee,cAAf,gBAAeA,cAAf;AACA,UAAMM,eAAe,GAAG,0CAAyBK,MAAM,CAACvB,EAAhC,EAAoCc,QAAQ,CAACd,EAA7C,EAAiD2B,WAAjD,EAA8D9B,KAAK,CAACqB,eAApE,CAAxB;AAEAN,MAAAA,cAAc,CAAC;AAAEM,QAAAA,eAAe,EAAfA;AAAF,OAAD,CAAd;AACD,K;mGAEY,UAACU,QAAD,EAAWC,IAAX,EAAiBC,EAAjB,EAAqBH,WAArB,EAAqC;AAChD,yBAAkC,MAAK/B,KAAvC;AAAA,UAAQC,KAAR,gBAAQA,KAAR;AAAA,UAAee,cAAf,gBAAeA,cAAf;;AACA,kBAAwCf,KAAK,IAAI,EAAjD;AAAA,UAAMyB,OAAN,SAAMA,OAAN;AAAA,wCAAeJ,eAAf;AAAA,UAAeA,eAAf,sCAAiC,EAAjC;;AACA,UAAMK,MAAM,GAAG,CAACD,OAAO,IAAI,EAAZ,EAAgBE,IAAhB,CAAqB,UAACD,MAAD;AAAA,eAAYA,MAAM,CAACvB,EAAP,KAAc4B,QAA1B;AAAA,OAArB,CAAf;;AACA,UAAIE,EAAE,KAAKD,IAAP,IAAe,CAACN,MAApB,EAA4B;AAC1B;AACD;;AACD,UAAIA,MAAM,CAACG,aAAP,KAAyB,CAA7B,EAAgC;AAC9BR,QAAAA,eAAe,GAAG,sCAAqBK,MAAM,CAACvB,EAA5B,EAAgC6B,IAAhC,EAAsCC,EAAtC,EAA0CH,WAA1C,EAAuDT,eAAvD,CAAlB;AACAA,QAAAA,eAAe,GAAG,+CAA8BK,MAA9B,EAAsCO,EAAtC,EAA0CZ,eAA1C,CAAlB;AACD,OAHD,MAGO,IAAIK,MAAM,CAACG,aAAP,KAAyB,CAA7B,EAAgC;AACrCR,QAAAA,eAAe,GAAG,sCAAqBK,MAAM,CAACvB,EAA5B,EAAgCyB,SAAhC,EAA2CK,EAA3C,EAA+C,CAA/C,EAAkDZ,eAAlD,CAAlB;AACD;;AACDN,MAAAA,cAAc,CAAC;AAAEM,QAAAA,eAAe,EAAfA;AAAF,OAAD,CAAd;AACD,K;uGAEgB,UAACa,GAAD,EAAMhB,KAAN,EAAgB;AAC/B,UAAQlB,KAAR,GAAkB,MAAKD,KAAvB,CAAQC,KAAR;AACA,UAAQY,SAAR,GAAsBZ,KAAtB,CAAQY,SAAR;AACA,UAAMuB,YAAY,uCAAOvB,SAAP,CAAlB;;AAEA,UAAIuB,YAAY,CAACxB,MAAb,GAAsBO,KAA1B,EAAiC;AAC/BiB,QAAAA,YAAY,CAACtB,IAAb,CAAkBqB,GAAlB;AACD,OAFD,MAEO;AACLC,QAAAA,YAAY,CAACjB,KAAD,CAAZ,GAAsBgB,GAAtB;AACD;;AAED,YAAKnC,KAAL,CAAWgB,cAAX,CAA0B;AACxBH,QAAAA,SAAS,EAAEuB;AADa,OAA1B;AAGD,K;;;;;;WAED,kBAAS;AAAA;;AACP,yBAYI,KAAKpC,KAZT;AAAA,UACEC,KADF,gBACEA,KADF;AAAA,UAEEoC,OAFF,gBAEEA,OAFF;AAAA,UAGEC,SAHF,gBAGEA,SAHF;AAAA,UAIEnE,UAJF,gBAIEA,UAJF;AAAA,UAKEoE,YALF,gBAKEA,YALF;AAAA,UAMEC,kBANF,gBAMEA,kBANF;AAAA,UAOEC,WAPF,gBAOEA,WAPF;AAAA,UAQEC,UARF,gBAQEA,UARF;AAAA,UASEC,aATF,gBASEA,aATF;AAAA,UAUEC,qBAVF,gBAUEA,qBAVF;AAAA,UAWEC,oBAXF,gBAWEA,oBAXF;AAcA,UAAQ1C,gBAAR,GAAgDF,KAAhD,CAAQE,gBAAR;AAAA,UAA0BU,SAA1B,GAAgDZ,KAAhD,CAA0BY,SAA1B;AAAA,UAAqCiC,MAArC,GAAgD7C,KAAhD,CAAqC6C,MAArC;;AACA,kBAAgEA,MAAM,IAAI,EAA1E;AAAA,UAAQC,gBAAR,SAAQA,gBAAR;AAAA,UAA0BC,eAA1B,SAA0BA,eAA1B;AAAA,UAA2CC,gBAA3C,SAA2CA,gBAA3C;;AACA,kBAAmEN,aAAa,IAAI,EAApF;AAAA,UAAQO,aAAR,SAAQA,aAAR;AAAA,sCAAuBC,aAAvB;AAAA,UAAuBA,aAAvB,oCAAuC,EAAvC;AAAA,uCAA2CC,cAA3C;AAAA,UAA2CA,cAA3C,qCAA4D,EAA5D;;AACA,UAAMC,WAAW,GAAG;AAClBzE,QAAAA,mBAAmB,mBAAYuB,gBAAZ;AADD,OAApB;AAIA,UAAMmD,iBAAiB,GAAG,sCAA0BX,aAA1B,CAA1B;AAEA,0BACE;AAAK,QAAA,SAAS,EAAE,4BAAWN,OAAO,CAAClE,UAAnB,EAA+BmE,SAA/B;AAAhB,sBACE,gCAAC,kBAAD;AACE,QAAA,KAAK,EAAC,YADR;AAEE,QAAA,WAAW,EAAC,gBAFd;AAGE,QAAA,KAAK,EAAE,KAAKiB,GAHd;AAIE,QAAA,IAAI,eACF,gCAAC,mBAAD;AACE,UAAA,OAAO,EAAE;AAAEpE,YAAAA,OAAO,EAAEkD,OAAO,CAAClD;AAAnB,WADX;AAEE,UAAA,oBAAoB,MAFtB;AAGE,UAAA,oBAAoB,MAHtB;AAIE,UAAA,SAAS,EAAE,OAJb;AAKE,UAAA,KAAK,EAAEmE;AALT,wBAOE,gCAAC,gBAAD;AAAM,UAAA,QAAQ,EAAE,OAAhB;AAAyB,UAAA,KAAK,EAAE,SAAhC;AAA2C,UAAA,KAAK,EAAE;AAAEE,YAAAA,UAAU,EAAE;AAAd;AAAlD,UAPF,CALJ;AAeE,QAAA,cAAc,EAAEN,aAAa,IAAI/E,UAAjB,IAA+B+E,aAAa,KAAK/E,UAAU,CAACyC;AAf9E,QADF,eAmBE;AAAK,QAAA,SAAS,EAAEyB,OAAO,CAAC9D,gBAAxB;AAA0C,QAAA,KAAK,EAAE8E;AAAjD,SACGlF,UAAU,CAACoC,GAAX,CAAe,UAACW,QAAD,EAAWC,KAAX,EAAqB;AACnC,YAAMsC,WAAW,GAAGtC,KAAK,GAAGhB,gBAAR,KAA6B,CAAjD;AACA,YAAMuD,QAAQ,GAAGvC,KAAK,GAAGhB,gBAAzB;AAEA,4BACE,gCAAC,iBAAD,CAAO,QAAP;AAAgB,UAAA,GAAG,EAAEgB;AAArB,WACGsC,WAAW,iBACV,gCAAC,kBAAD;AACE,UAAA,gBAAgB,EAAEtD,gBADpB;AAEE,UAAA,QAAQ,EAAE,KAFZ;AAGE,UAAA,QAAQ,EAAEuD,QAHZ;AAIE,UAAA,MAAM,EAAE7C,SAAS,CAAC6C,QAAD,CAAT,IAAuB,EAJjC;AAKE,UAAA,QAAQ,EAAE,kBAACvB,GAAD;AAAA,mBAAS,MAAI,CAACwB,cAAL,CAAoBxB,GAApB,EAAyBuB,QAAzB,CAAT;AAAA,WALZ;AAME,UAAA,YAAY,EAAEnB,YANhB;AAOE,UAAA,WAAW,EAAEE,WAPf;AAQE,UAAA,UAAU,EAAEC,UARd;AASE,UAAA,aAAa,EAAGS,aAAa,IAAIA,aAAa,CAACnE,QAAhC,IAA6C6D,oBAT9D;AAUE,UAAA,cAAc,EAAGO,cAAc,IAAIA,cAAc,CAACpE,QAAlC,IAA+C4D,qBAVjE;AAWE,UAAA,kBAAkB,EAAEJ;AAXtB,UAFJ,eAiBE,gCAAC,oBAAD;AACE,UAAA,YAAY,EAAED,YADhB;AAEE,UAAA,SAAS,EAAE,MAAI,CAACqB,KAAL,CAAW7D,SAFxB;AAGE,UAAA,eAAe,EAAE,MAAI,CAAC8D,eAHxB;AAIE,UAAA,KAAK,EAAE1C,KAJT;AAKE,UAAA,QAAQ,EAAED,QALZ;AAME,UAAA,KAAK,EAAE+B,gBAAgB,IAAIA,gBAAgB,CAAC/B,QAAQ,CAACd,EAAV,CAN7C;AAOE,UAAA,QAAQ,EAAE,MAAI,CAAC0D,MAPjB;AAQE,UAAA,QAAQ,EAAE;AAAA,mBAAM,MAAI,UAAJ,CAAY5C,QAAZ,CAAN;AAAA,WARZ;AASE,UAAA,WAAW,EAAE,MAAI,CAAC6C,mBATpB;AAUE,UAAA,YAAY,EAAE,sBAAC/B,QAAD,EAAWC,IAAX,EAAiBC,EAAjB,EAAqBH,WAArB;AAAA,mBAAqC,MAAI,CAACiC,UAAL,CAAgBhC,QAAhB,EAA0BC,IAA1B,EAAgCC,EAAhC,EAAoCH,WAApC,CAArC;AAAA,WAVhB;AAWE,UAAA,WAAW,EAAEU,WAXf;AAYE,UAAA,UAAU,EAAEC,UAZd;AAaE,UAAA,cAAc,EAAE,wBAACf,MAAD,EAASI,WAAT;AAAA,mBAAyB,MAAI,CAACkC,wBAAL,CAA8B/C,QAA9B,EAAwCS,MAAxC,EAAgDI,WAAhD,CAAzB;AAAA,WAblB;AAcE,UAAA,aAAa,EAAGoB,aAAa,IAAIA,aAAa,CAACe,aAAhC,IAAkDrB,oBAdnE;AAeE,UAAA,cAAc,EAAGO,cAAc,IAAIA,cAAc,CAACc,aAAlC,IAAoDtB,qBAftE;AAgBE,UAAA,kBAAkB,EAAEJ;AAhBtB,UAjBF,CADF;AAsCD,OA1CA,CADH,CAnBF,EAiEGO,gBAAgB,iBAAI;AAAK,QAAA,SAAS,EAAEV,OAAO,CAAC7C;AAAxB,SAAoCuD,gBAApC,CAjEvB,EAkEGC,eAAe,iBAAI;AAAK,QAAA,SAAS,EAAEX,OAAO,CAAC7C;AAAxB,SAAoCwD,eAApC,CAlEtB,CADF;AAsED;;;EAlO6BmB,kBAAMC,S;;;iCAAzBtE,U,eACQ;AACjB8C,EAAAA,qBAAqB,EAAEyB,sBAAUC,MADhB;AAEjBzB,EAAAA,oBAAoB,EAAEwB,sBAAUC,MAFf;AAGjB/B,EAAAA,YAAY,EAAE8B,sBAAUE,KAAV,CAAgB;AAC5BhB,IAAAA,GAAG,EAAEc,sBAAUG,IAAV,CAAeC,UADQ;AAE5B,cAAQJ,sBAAUG,IAAV,CAAeC;AAFK,GAAhB,CAHG;AAOjBjC,EAAAA,kBAAkB,EAAE6B,sBAAUE,KAAV,CAAgB;AAClChB,IAAAA,GAAG,EAAEc,sBAAUG,IAAV,CAAeC,UADc;AAElC,cAAQJ,sBAAUG,IAAV,CAAeC;AAFW,GAAhB,CAPH;AAWjBpC,EAAAA,OAAO,EAAEgC,sBAAUK,MAAV,CAAiBD,UAXT;AAYjBnC,EAAAA,SAAS,EAAE+B,sBAAUM,MAZJ;AAajBxG,EAAAA,UAAU,EAAEkG,sBAAUO,KAbL;AAcjB5D,EAAAA,cAAc,EAAEqD,sBAAUG,IAdT;AAejBvE,EAAAA,KAAK,EAAEoE,sBAAUK,MAAV,CAAiBD,UAfP;AAgBjB9B,EAAAA,aAAa,EAAE0B,sBAAUK,MAAV,CAAiBD,UAhBf;AAiBjBhC,EAAAA,WAAW,EAAE4B,sBAAUK,MAjBN;AAkBjBhC,EAAAA,UAAU,EAAE2B,sBAAUQ;AAlBL,C;;eAoON,wBAAW5G,MAAX,EAAmB6B,UAAnB,C","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { choiceUtils as utils } from '@pie-lib/config-ui';\nimport classNames from 'classnames';\nimport Info from '@material-ui/icons/Info';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport {\n moveChoiceToCategory,\n removeCategory,\n removeChoiceFromCategory,\n verifyAllowMultiplePlacements,\n} from '@pie-lib/categorize';\n\nimport Category from './category';\nimport Header from '../header';\nimport { generateValidationMessage } from '../../utils';\nimport { RowLabel } from './RowLabel';\n\nconst styles = (theme) => ({\n categories: {\n marginBottom: theme.spacing.unit * 3,\n },\n categoriesHolder: {\n display: 'grid',\n gridRowGap: `${theme.spacing.unit}px`,\n gridColumnGap: `${theme.spacing.unit}px`,\n },\n row: {\n display: 'grid',\n gridTemplateColumns: 'repeat(2, 1fr)',\n gridColumnGap: `${theme.spacing.unit}px`,\n alignItems: 'baseline',\n width: '100%',\n marginTop: theme.spacing.unit,\n marginBottom: 2 * theme.spacing.unit,\n },\n rowLabel: {\n gridColumn: '1/3',\n },\n rowLabelHolder: {\n width: '100%',\n },\n tooltip: {\n fontSize: theme.typography.fontSize - 2,\n whiteSpace: 'pre',\n maxWidth: '500px',\n },\n errorText: {\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingTop: theme.spacing.unit / 2,\n },\n});\n\nexport class Categories extends React.Component {\n static propTypes = {\n defaultImageMaxHeight: PropTypes.number,\n defaultImageMaxWidth: PropTypes.number,\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 classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n categories: PropTypes.array,\n onModelChanged: PropTypes.func,\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n toolbarOpts: PropTypes.object,\n spellCheck: PropTypes.bool,\n };\n\n state = {\n focusedEl: null,\n };\n\n add = () => {\n const { model, categories: oldCategories } = this.props;\n const { categoriesPerRow } = model;\n const id = utils.firstAvailableIndex(\n model.categories.map((a) => a.id),\n 0,\n );\n const data = { id, label: 'Category ' + id };\n const addRowLabel = model.categories.length % categoriesPerRow === 0;\n const rowLabels = [...model.rowLabels];\n\n if (addRowLabel) {\n rowLabels.push('');\n }\n\n this.setState(\n {\n focusedEl: oldCategories.length,\n },\n () => {\n this.props.onModelChanged({\n rowLabels,\n categories: model.categories.concat([data]),\n });\n },\n );\n };\n\n deleteFocusedEl = () => {\n this.setState({\n focusedEl: null,\n });\n };\n\n delete = (category) => {\n const { model, onModelChanged } = this.props;\n const index = model.categories.findIndex((a) => a.id === category.id);\n\n if (index !== -1) {\n model.categories.splice(index, 1);\n model.correctResponse = removeCategory(category.id, model.correctResponse);\n onModelChanged(model);\n }\n };\n\n change = (c) => {\n const { categories } = this.props;\n const index = categories.findIndex((a) => a.id === c.id);\n\n if (index !== -1) {\n categories.splice(index, 1, c);\n this.props.onModelChanged({ categories });\n }\n };\n\n addChoiceToCategory = (addedChoice, categoryId) => {\n const { model, onModelChanged } = this.props;\n let { choices = [], correctResponse = [] } = model || {};\n const choice = (choices || []).find((choice) => choice.id === addedChoice.id);\n correctResponse = moveChoiceToCategory(addedChoice.id, undefined, categoryId, 0, model.correctResponse);\n // if multiplePlacements not allowed, ensure the consistency in the other categories\n if (choice.categoryCount !== 0) {\n correctResponse = verifyAllowMultiplePlacements(addedChoice, categoryId, correctResponse);\n }\n onModelChanged({ correctResponse });\n };\n\n deleteChoiceFromCategory = (category, choice, choiceIndex) => {\n const { model, onModelChanged } = this.props;\n const correctResponse = removeChoiceFromCategory(choice.id, category.id, choiceIndex, model.correctResponse);\n\n onModelChanged({ correctResponse });\n };\n\n moveChoice = (choiceId, from, to, choiceIndex) => {\n const { model, onModelChanged } = this.props;\n let { choices, correctResponse = [] } = model || {};\n const choice = (choices || []).find((choice) => choice.id === choiceId);\n if (to === from || !choice) {\n return;\n }\n if (choice.categoryCount !== 0) {\n correctResponse = moveChoiceToCategory(choice.id, from, to, choiceIndex, correctResponse);\n correctResponse = verifyAllowMultiplePlacements(choice, to, correctResponse);\n } else if (choice.categoryCount === 0) {\n correctResponse = moveChoiceToCategory(choice.id, undefined, to, 0, correctResponse);\n }\n onModelChanged({ correctResponse });\n };\n\n changeRowLabel = (val, index) => {\n const { model } = this.props;\n const { rowLabels } = model;\n const newRowLabels = [...rowLabels];\n\n if (newRowLabels.length < index) {\n newRowLabels.push(val);\n } else {\n newRowLabels[index] = val;\n }\n\n this.props.onModelChanged({\n rowLabels: newRowLabels,\n });\n };\n\n render() {\n const {\n model,\n classes,\n className,\n categories,\n imageSupport,\n uploadSoundSupport,\n toolbarOpts,\n spellCheck,\n configuration,\n defaultImageMaxHeight,\n defaultImageMaxWidth,\n } = this.props;\n\n const { categoriesPerRow, rowLabels, errors } = model;\n const { associationError, categoriesError, categoriesErrors } = errors || {};\n const { maxCategories, maxImageWidth = {}, maxImageHeight = {} } = configuration || {};\n const holderStyle = {\n gridTemplateColumns: `repeat(${categoriesPerRow}, 1fr)`,\n };\n\n const validationMessage = generateValidationMessage(configuration);\n\n return (\n <div className={classNames(classes.categories, className)}>\n <Header\n label=\"Categories\"\n buttonLabel=\"ADD A CATEGORY\"\n onAdd={this.add}\n info={\n <Tooltip\n classes={{ tooltip: classes.tooltip }}\n disableFocusListener\n disableTouchListener\n placement={'right'}\n title={validationMessage}\n >\n <Info fontSize={'small'} color={'primary'} style={{ marginLeft: '5px' }} />\n </Tooltip>\n }\n buttonDisabled={maxCategories && categories && maxCategories === categories.length}\n />\n\n <div className={classes.categoriesHolder} style={holderStyle}>\n {categories.map((category, index) => {\n const hasRowLabel = index % categoriesPerRow === 0;\n const rowIndex = index / categoriesPerRow;\n\n return (\n <React.Fragment key={index}>\n {hasRowLabel && (\n <RowLabel\n categoriesPerRow={categoriesPerRow}\n disabled={false}\n rowIndex={rowIndex}\n markup={rowLabels[rowIndex] || ''}\n onChange={(val) => this.changeRowLabel(val, rowIndex)}\n imageSupport={imageSupport}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheck}\n maxImageWidth={(maxImageWidth && maxImageWidth.rowLabel) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.rowLabel) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n />\n )}\n\n <Category\n imageSupport={imageSupport}\n focusedEl={this.state.focusedEl}\n deleteFocusedEl={this.deleteFocusedEl}\n index={index}\n category={category}\n error={categoriesErrors && categoriesErrors[category.id]}\n onChange={this.change}\n onDelete={() => this.delete(category)}\n onAddChoice={this.addChoiceToCategory}\n onMoveChoice={(choiceId, from, to, choiceIndex) => this.moveChoice(choiceId, from, to, choiceIndex)}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheck}\n onDeleteChoice={(choice, choiceIndex) => this.deleteChoiceFromCategory(category, choice, choiceIndex)}\n maxImageWidth={(maxImageWidth && maxImageWidth.categoryLabel) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.categoryLabel) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n />\n </React.Fragment>\n );\n })}\n </div>\n\n {associationError && <div className={classes.errorText}>{associationError}</div>}\n {categoriesError && <div className={classes.errorText}>{categoriesError}</div>}\n </div>\n );\n }\n}\n\nexport default withStyles(styles)(Categories);\n"],"file":"index.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/design/categories/index.jsx"],"names":["styles","theme","categories","marginBottom","spacing","unit","categoriesHolder","display","gridRowGap","gridColumnGap","row","gridTemplateColumns","alignItems","width","marginTop","rowLabel","gridColumn","rowLabelHolder","tooltip","fontSize","typography","whiteSpace","maxWidth","errorText","color","palette","error","main","paddingTop","Categories","focusedEl","props","model","oldCategories","categoriesPerRow","id","utils","firstAvailableIndex","map","a","data","label","addRowLabel","length","rowLabels","push","setState","onModelChanged","concat","category","index","findIndex","splice","correctResponse","c","addedChoice","categoryId","choices","choice","find","undefined","categoryCount","choiceIndex","choiceId","from","to","val","newRowLabels","classes","className","imageSupport","uploadSoundSupport","toolbarOpts","spellCheck","configuration","defaultImageMaxHeight","defaultImageMaxWidth","mathMlOptions","errors","associationError","categoriesError","categoriesErrors","maxCategories","maxImageWidth","maxImageHeight","holderStyle","validationMessage","add","marginLeft","hasRowLabel","rowIndex","changeRowLabel","state","deleteFocusedEl","change","addChoiceToCategory","moveChoice","deleteChoiceFromCategory","categoryLabel","React","Component","PropTypes","number","shape","func","isRequired","object","string","array","bool"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAOA;;AACA;;AACA;;AACA;;;;;;AAEA,IAAMA,MAAM,GAAG,SAATA,MAAS,CAACC,KAAD;AAAA,SAAY;AACzBC,IAAAA,UAAU,EAAE;AACVC,MAAAA,YAAY,EAAEF,KAAK,CAACG,OAAN,CAAcC,IAAd,GAAqB;AADzB,KADa;AAIzBC,IAAAA,gBAAgB,EAAE;AAChBC,MAAAA,OAAO,EAAE,MADO;AAEhBC,MAAAA,UAAU,YAAKP,KAAK,CAACG,OAAN,CAAcC,IAAnB,OAFM;AAGhBI,MAAAA,aAAa,YAAKR,KAAK,CAACG,OAAN,CAAcC,IAAnB;AAHG,KAJO;AASzBK,IAAAA,GAAG,EAAE;AACHH,MAAAA,OAAO,EAAE,MADN;AAEHI,MAAAA,mBAAmB,EAAE,gBAFlB;AAGHF,MAAAA,aAAa,YAAKR,KAAK,CAACG,OAAN,CAAcC,IAAnB,OAHV;AAIHO,MAAAA,UAAU,EAAE,UAJT;AAKHC,MAAAA,KAAK,EAAE,MALJ;AAMHC,MAAAA,SAAS,EAAEb,KAAK,CAACG,OAAN,CAAcC,IANtB;AAOHF,MAAAA,YAAY,EAAE,IAAIF,KAAK,CAACG,OAAN,CAAcC;AAP7B,KAToB;AAkBzBU,IAAAA,QAAQ,EAAE;AACRC,MAAAA,UAAU,EAAE;AADJ,KAlBe;AAqBzBC,IAAAA,cAAc,EAAE;AACdJ,MAAAA,KAAK,EAAE;AADO,KArBS;AAwBzBK,IAAAA,OAAO,EAAE;AACPC,MAAAA,QAAQ,EAAElB,KAAK,CAACmB,UAAN,CAAiBD,QAAjB,GAA4B,CAD/B;AAEPE,MAAAA,UAAU,EAAE,KAFL;AAGPC,MAAAA,QAAQ,EAAE;AAHH,KAxBgB;AA6BzBC,IAAAA,SAAS,EAAE;AACTJ,MAAAA,QAAQ,EAAElB,KAAK,CAACmB,UAAN,CAAiBD,QAAjB,GAA4B,CAD7B;AAETK,MAAAA,KAAK,EAAEvB,KAAK,CAACwB,OAAN,CAAcC,KAAd,CAAoBC,IAFlB;AAGTC,MAAAA,UAAU,EAAE3B,KAAK,CAACG,OAAN,CAAcC,IAAd,GAAqB;AAHxB;AA7Bc,GAAZ;AAAA,CAAf;;IAoCawB,U;;;;;;;;;;;;;;;8FAsBH;AACNC,MAAAA,SAAS,EAAE;AADL,K;4FAIF,YAAM;AACV,wBAA6C,MAAKC,KAAlD;AAAA,UAAQC,KAAR,eAAQA,KAAR;AAAA,UAA2BC,aAA3B,eAAe/B,UAAf;AACA,UAAQgC,gBAAR,GAA6BF,KAA7B,CAAQE,gBAAR;;AACA,UAAMC,EAAE,GAAGC,sBAAMC,mBAAN,CACTL,KAAK,CAAC9B,UAAN,CAAiBoC,GAAjB,CAAqB,UAACC,CAAD;AAAA,eAAOA,CAAC,CAACJ,EAAT;AAAA,OAArB,CADS,EAET,CAFS,CAAX;;AAIA,UAAMK,IAAI,GAAG;AAAEL,QAAAA,EAAE,EAAFA,EAAF;AAAMM,QAAAA,KAAK,EAAE,cAAcN;AAA3B,OAAb;AACA,UAAMO,WAAW,GAAGV,KAAK,CAAC9B,UAAN,CAAiByC,MAAjB,GAA0BT,gBAA1B,KAA+C,CAAnE;AACA,UAAMU,SAAS,uCAAOZ,KAAK,CAACY,SAAb,CAAf;;AAEA,UAAIF,WAAJ,EAAiB;AACfE,QAAAA,SAAS,CAACC,IAAV,CAAe,EAAf;AACD;;AAED,YAAKC,QAAL,CACE;AACEhB,QAAAA,SAAS,EAAEG,aAAa,CAACU;AAD3B,OADF,EAIE,YAAM;AACJ,cAAKZ,KAAL,CAAWgB,cAAX,CAA0B;AACxBH,UAAAA,SAAS,EAATA,SADwB;AAExB1C,UAAAA,UAAU,EAAE8B,KAAK,CAAC9B,UAAN,CAAiB8C,MAAjB,CAAwB,CAACR,IAAD,CAAxB;AAFY,SAA1B;AAID,OATH;AAWD,K;wGAEiB,YAAM;AACtB,YAAKM,QAAL,CAAc;AACZhB,QAAAA,SAAS,EAAE;AADC,OAAd;AAGD,K;+FAEQ,UAACmB,QAAD,EAAc;AACrB,yBAAkC,MAAKlB,KAAvC;AAAA,UAAQC,KAAR,gBAAQA,KAAR;AAAA,UAAee,cAAf,gBAAeA,cAAf;AACA,UAAMG,KAAK,GAAGlB,KAAK,CAAC9B,UAAN,CAAiBiD,SAAjB,CAA2B,UAACZ,CAAD;AAAA,eAAOA,CAAC,CAACJ,EAAF,KAASc,QAAQ,CAACd,EAAzB;AAAA,OAA3B,CAAd;;AAEA,UAAIe,KAAK,KAAK,CAAC,CAAf,EAAkB;AAChBlB,QAAAA,KAAK,CAAC9B,UAAN,CAAiBkD,MAAjB,CAAwBF,KAAxB,EAA+B,CAA/B;AACAlB,QAAAA,KAAK,CAACqB,eAAN,GAAwB,gCAAeJ,QAAQ,CAACd,EAAxB,EAA4BH,KAAK,CAACqB,eAAlC,CAAxB;AACAN,QAAAA,cAAc,CAACf,KAAD,CAAd;AACD;AACF,K;+FAEQ,UAACsB,CAAD,EAAO;AACd,UAAQpD,UAAR,GAAuB,MAAK6B,KAA5B,CAAQ7B,UAAR;AACA,UAAMgD,KAAK,GAAGhD,UAAU,CAACiD,SAAX,CAAqB,UAACZ,CAAD;AAAA,eAAOA,CAAC,CAACJ,EAAF,KAASmB,CAAC,CAACnB,EAAlB;AAAA,OAArB,CAAd;;AAEA,UAAIe,KAAK,KAAK,CAAC,CAAf,EAAkB;AAChBhD,QAAAA,UAAU,CAACkD,MAAX,CAAkBF,KAAlB,EAAyB,CAAzB,EAA4BI,CAA5B;;AACA,cAAKvB,KAAL,CAAWgB,cAAX,CAA0B;AAAE7C,UAAAA,UAAU,EAAVA;AAAF,SAA1B;AACD;AACF,K;4GAEqB,UAACqD,WAAD,EAAcC,UAAd,EAA6B;AACjD,yBAAkC,MAAKzB,KAAvC;AAAA,UAAQC,KAAR,gBAAQA,KAAR;AAAA,UAAee,cAAf,gBAAeA,cAAf;;AACA,iBAA6Cf,KAAK,IAAI,EAAtD;AAAA,8BAAMyB,OAAN;AAAA,UAAMA,OAAN,6BAAgB,EAAhB;AAAA,sCAAoBJ,eAApB;AAAA,UAAoBA,eAApB,qCAAsC,EAAtC;;AACA,UAAMK,MAAM,GAAG,CAACD,OAAO,IAAI,EAAZ,EAAgBE,IAAhB,CAAqB,UAACD,MAAD;AAAA,eAAYA,MAAM,CAACvB,EAAP,KAAcoB,WAAW,CAACpB,EAAtC;AAAA,OAArB,CAAf;AACAkB,MAAAA,eAAe,GAAG,sCAAqBE,WAAW,CAACpB,EAAjC,EAAqCyB,SAArC,EAAgDJ,UAAhD,EAA4D,CAA5D,EAA+DxB,KAAK,CAACqB,eAArE,CAAlB,CAJiD,CAKjD;;AACA,UAAIK,MAAM,CAACG,aAAP,KAAyB,CAA7B,EAAgC;AAC9BR,QAAAA,eAAe,GAAG,+CAA8BE,WAA9B,EAA2CC,UAA3C,EAAuDH,eAAvD,CAAlB;AACD;;AACDN,MAAAA,cAAc,CAAC;AAAEM,QAAAA,eAAe,EAAfA;AAAF,OAAD,CAAd;AACD,K;iHAE0B,UAACJ,QAAD,EAAWS,MAAX,EAAmBI,WAAnB,EAAmC;AAC5D,yBAAkC,MAAK/B,KAAvC;AAAA,UAAQC,KAAR,gBAAQA,KAAR;AAAA,UAAee,cAAf,gBAAeA,cAAf;AACA,UAAMM,eAAe,GAAG,0CAAyBK,MAAM,CAACvB,EAAhC,EAAoCc,QAAQ,CAACd,EAA7C,EAAiD2B,WAAjD,EAA8D9B,KAAK,CAACqB,eAApE,CAAxB;AAEAN,MAAAA,cAAc,CAAC;AAAEM,QAAAA,eAAe,EAAfA;AAAF,OAAD,CAAd;AACD,K;mGAEY,UAACU,QAAD,EAAWC,IAAX,EAAiBC,EAAjB,EAAqBH,WAArB,EAAqC;AAChD,yBAAkC,MAAK/B,KAAvC;AAAA,UAAQC,KAAR,gBAAQA,KAAR;AAAA,UAAee,cAAf,gBAAeA,cAAf;;AACA,kBAAwCf,KAAK,IAAI,EAAjD;AAAA,UAAMyB,OAAN,SAAMA,OAAN;AAAA,wCAAeJ,eAAf;AAAA,UAAeA,eAAf,sCAAiC,EAAjC;;AACA,UAAMK,MAAM,GAAG,CAACD,OAAO,IAAI,EAAZ,EAAgBE,IAAhB,CAAqB,UAACD,MAAD;AAAA,eAAYA,MAAM,CAACvB,EAAP,KAAc4B,QAA1B;AAAA,OAArB,CAAf;;AACA,UAAIE,EAAE,KAAKD,IAAP,IAAe,CAACN,MAApB,EAA4B;AAC1B;AACD;;AACD,UAAIA,MAAM,CAACG,aAAP,KAAyB,CAA7B,EAAgC;AAC9BR,QAAAA,eAAe,GAAG,sCAAqBK,MAAM,CAACvB,EAA5B,EAAgC6B,IAAhC,EAAsCC,EAAtC,EAA0CH,WAA1C,EAAuDT,eAAvD,CAAlB;AACAA,QAAAA,eAAe,GAAG,+CAA8BK,MAA9B,EAAsCO,EAAtC,EAA0CZ,eAA1C,CAAlB;AACD,OAHD,MAGO,IAAIK,MAAM,CAACG,aAAP,KAAyB,CAA7B,EAAgC;AACrCR,QAAAA,eAAe,GAAG,sCAAqBK,MAAM,CAACvB,EAA5B,EAAgCyB,SAAhC,EAA2CK,EAA3C,EAA+C,CAA/C,EAAkDZ,eAAlD,CAAlB;AACD;;AACDN,MAAAA,cAAc,CAAC;AAAEM,QAAAA,eAAe,EAAfA;AAAF,OAAD,CAAd;AACD,K;uGAEgB,UAACa,GAAD,EAAMhB,KAAN,EAAgB;AAC/B,UAAQlB,KAAR,GAAkB,MAAKD,KAAvB,CAAQC,KAAR;AACA,UAAQY,SAAR,GAAsBZ,KAAtB,CAAQY,SAAR;AACA,UAAMuB,YAAY,uCAAOvB,SAAP,CAAlB;;AAEA,UAAIuB,YAAY,CAACxB,MAAb,GAAsBO,KAA1B,EAAiC;AAC/BiB,QAAAA,YAAY,CAACtB,IAAb,CAAkBqB,GAAlB;AACD,OAFD,MAEO;AACLC,QAAAA,YAAY,CAACjB,KAAD,CAAZ,GAAsBgB,GAAtB;AACD;;AAED,YAAKnC,KAAL,CAAWgB,cAAX,CAA0B;AACxBH,QAAAA,SAAS,EAAEuB;AADa,OAA1B;AAGD,K;;;;;;WAED,kBAAS;AAAA;;AACP,yBAaI,KAAKpC,KAbT;AAAA,UACEC,KADF,gBACEA,KADF;AAAA,UAEEoC,OAFF,gBAEEA,OAFF;AAAA,UAGEC,SAHF,gBAGEA,SAHF;AAAA,UAIEnE,UAJF,gBAIEA,UAJF;AAAA,UAKEoE,YALF,gBAKEA,YALF;AAAA,UAMEC,kBANF,gBAMEA,kBANF;AAAA,UAOEC,WAPF,gBAOEA,WAPF;AAAA,UAQEC,UARF,gBAQEA,UARF;AAAA,UASEC,aATF,gBASEA,aATF;AAAA,UAUEC,qBAVF,gBAUEA,qBAVF;AAAA,UAWEC,oBAXF,gBAWEA,oBAXF;AAAA,+CAYEC,aAZF;AAAA,UAYEA,aAZF,sCAYkB,EAZlB;AAeA,UAAQ3C,gBAAR,GAAgDF,KAAhD,CAAQE,gBAAR;AAAA,UAA0BU,SAA1B,GAAgDZ,KAAhD,CAA0BY,SAA1B;AAAA,UAAqCkC,MAArC,GAAgD9C,KAAhD,CAAqC8C,MAArC;;AACA,kBAAgEA,MAAM,IAAI,EAA1E;AAAA,UAAQC,gBAAR,SAAQA,gBAAR;AAAA,UAA0BC,eAA1B,SAA0BA,eAA1B;AAAA,UAA2CC,gBAA3C,SAA2CA,gBAA3C;;AACA,kBAAmEP,aAAa,IAAI,EAApF;AAAA,UAAQQ,aAAR,SAAQA,aAAR;AAAA,sCAAuBC,aAAvB;AAAA,UAAuBA,aAAvB,oCAAuC,EAAvC;AAAA,uCAA2CC,cAA3C;AAAA,UAA2CA,cAA3C,qCAA4D,EAA5D;;AACA,UAAMC,WAAW,GAAG;AAClB1E,QAAAA,mBAAmB,mBAAYuB,gBAAZ;AADD,OAApB;AAIA,UAAMoD,iBAAiB,GAAG,sCAA0BZ,aAA1B,CAA1B;AAEA,0BACE;AAAK,QAAA,SAAS,EAAE,4BAAWN,OAAO,CAAClE,UAAnB,EAA+BmE,SAA/B;AAAhB,sBACE,gCAAC,kBAAD;AACE,QAAA,KAAK,EAAC,YADR;AAEE,QAAA,WAAW,EAAC,gBAFd;AAGE,QAAA,KAAK,EAAE,KAAKkB,GAHd;AAIE,QAAA,IAAI,eACF,gCAAC,mBAAD;AACE,UAAA,OAAO,EAAE;AAAErE,YAAAA,OAAO,EAAEkD,OAAO,CAAClD;AAAnB,WADX;AAEE,UAAA,oBAAoB,MAFtB;AAGE,UAAA,oBAAoB,MAHtB;AAIE,UAAA,SAAS,EAAE,OAJb;AAKE,UAAA,KAAK,EAAEoE;AALT,wBAOE,gCAAC,gBAAD;AAAM,UAAA,QAAQ,EAAE,OAAhB;AAAyB,UAAA,KAAK,EAAE,SAAhC;AAA2C,UAAA,KAAK,EAAE;AAAEE,YAAAA,UAAU,EAAE;AAAd;AAAlD,UAPF,CALJ;AAeE,QAAA,cAAc,EAAEN,aAAa,IAAIhF,UAAjB,IAA+BgF,aAAa,KAAKhF,UAAU,CAACyC;AAf9E,QADF,eAmBE;AAAK,QAAA,SAAS,EAAEyB,OAAO,CAAC9D,gBAAxB;AAA0C,QAAA,KAAK,EAAE+E;AAAjD,SACGnF,UAAU,CAACoC,GAAX,CAAe,UAACW,QAAD,EAAWC,KAAX,EAAqB;AACnC,YAAMuC,WAAW,GAAGvC,KAAK,GAAGhB,gBAAR,KAA6B,CAAjD;AACA,YAAMwD,QAAQ,GAAGxC,KAAK,GAAGhB,gBAAzB;AAEA,4BACE,gCAAC,iBAAD,CAAO,QAAP;AAAgB,UAAA,GAAG,EAAEgB;AAArB,WACGuC,WAAW,iBACV,gCAAC,kBAAD;AACE,UAAA,gBAAgB,EAAEvD,gBADpB;AAEE,UAAA,QAAQ,EAAE,KAFZ;AAGE,UAAA,QAAQ,EAAEwD,QAHZ;AAIE,UAAA,MAAM,EAAE9C,SAAS,CAAC8C,QAAD,CAAT,IAAuB,EAJjC;AAKE,UAAA,QAAQ,EAAE,kBAACxB,GAAD;AAAA,mBAAS,MAAI,CAACyB,cAAL,CAAoBzB,GAApB,EAAyBwB,QAAzB,CAAT;AAAA,WALZ;AAME,UAAA,YAAY,EAAEpB,YANhB;AAOE,UAAA,WAAW,EAAEE,WAPf;AAQE,UAAA,UAAU,EAAEC,UARd;AASE,UAAA,aAAa,EAAGU,aAAa,IAAIA,aAAa,CAACpE,QAAhC,IAA6C6D,oBAT9D;AAUE,UAAA,cAAc,EAAGQ,cAAc,IAAIA,cAAc,CAACrE,QAAlC,IAA+C4D,qBAVjE;AAWE,UAAA,kBAAkB,EAAEJ,kBAXtB;AAYE,UAAA,aAAa,EAAEM;AAZjB,UAFJ,eAkBE,gCAAC,oBAAD;AACE,UAAA,YAAY,EAAEP,YADhB;AAEE,UAAA,SAAS,EAAE,MAAI,CAACsB,KAAL,CAAW9D,SAFxB;AAGE,UAAA,eAAe,EAAE,MAAI,CAAC+D,eAHxB;AAIE,UAAA,KAAK,EAAE3C,KAJT;AAKE,UAAA,QAAQ,EAAED,QALZ;AAME,UAAA,KAAK,EAAEgC,gBAAgB,IAAIA,gBAAgB,CAAChC,QAAQ,CAACd,EAAV,CAN7C;AAOE,UAAA,QAAQ,EAAE,MAAI,CAAC2D,MAPjB;AAQE,UAAA,QAAQ,EAAE;AAAA,mBAAM,MAAI,UAAJ,CAAY7C,QAAZ,CAAN;AAAA,WARZ;AASE,UAAA,WAAW,EAAE,MAAI,CAAC8C,mBATpB;AAUE,UAAA,YAAY,EAAE,sBAAChC,QAAD,EAAWC,IAAX,EAAiBC,EAAjB,EAAqBH,WAArB;AAAA,mBAAqC,MAAI,CAACkC,UAAL,CAAgBjC,QAAhB,EAA0BC,IAA1B,EAAgCC,EAAhC,EAAoCH,WAApC,CAArC;AAAA,WAVhB;AAWE,UAAA,WAAW,EAAEU,WAXf;AAYE,UAAA,UAAU,EAAEC,UAZd;AAaE,UAAA,cAAc,EAAE,wBAACf,MAAD,EAASI,WAAT;AAAA,mBAAyB,MAAI,CAACmC,wBAAL,CAA8BhD,QAA9B,EAAwCS,MAAxC,EAAgDI,WAAhD,CAAzB;AAAA,WAblB;AAcE,UAAA,aAAa,EAAGqB,aAAa,IAAIA,aAAa,CAACe,aAAhC,IAAkDtB,oBAdnE;AAeE,UAAA,cAAc,EAAGQ,cAAc,IAAIA,cAAc,CAACc,aAAlC,IAAoDvB,qBAftE;AAgBE,UAAA,kBAAkB,EAAEJ;AAhBtB,UAlBF,CADF;AAuCD,OA3CA,CADH,CAnBF,EAkEGQ,gBAAgB,iBAAI;AAAK,QAAA,SAAS,EAAEX,OAAO,CAAC7C;AAAxB,SAAoCwD,gBAApC,CAlEvB,EAmEGC,eAAe,iBAAI;AAAK,QAAA,SAAS,EAAEZ,OAAO,CAAC7C;AAAxB,SAAoCyD,eAApC,CAnEtB,CADF;AAuED;;;EApO6BmB,kBAAMC,S;;;iCAAzBvE,U,eACQ;AACjB8C,EAAAA,qBAAqB,EAAE0B,sBAAUC,MADhB;AAEjB1B,EAAAA,oBAAoB,EAAEyB,sBAAUC,MAFf;AAGjBhC,EAAAA,YAAY,EAAE+B,sBAAUE,KAAV,CAAgB;AAC5BhB,IAAAA,GAAG,EAAEc,sBAAUG,IAAV,CAAeC,UADQ;AAE5B,cAAQJ,sBAAUG,IAAV,CAAeC;AAFK,GAAhB,CAHG;AAOjBlC,EAAAA,kBAAkB,EAAE8B,sBAAUE,KAAV,CAAgB;AAClChB,IAAAA,GAAG,EAAEc,sBAAUG,IAAV,CAAeC,UADc;AAElC,cAAQJ,sBAAUG,IAAV,CAAeC;AAFW,GAAhB,CAPH;AAWjBrC,EAAAA,OAAO,EAAEiC,sBAAUK,MAAV,CAAiBD,UAXT;AAYjBpC,EAAAA,SAAS,EAAEgC,sBAAUM,MAZJ;AAajBzG,EAAAA,UAAU,EAAEmG,sBAAUO,KAbL;AAcjB7D,EAAAA,cAAc,EAAEsD,sBAAUG,IAdT;AAejBxE,EAAAA,KAAK,EAAEqE,sBAAUK,MAAV,CAAiBD,UAfP;AAgBjB/B,EAAAA,aAAa,EAAE2B,sBAAUK,MAAV,CAAiBD,UAhBf;AAiBjBjC,EAAAA,WAAW,EAAE6B,sBAAUK,MAjBN;AAkBjBjC,EAAAA,UAAU,EAAE4B,sBAAUQ;AAlBL,C;;eAsON,wBAAW7G,MAAX,EAAmB6B,UAAnB,C","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { choiceUtils as utils } from '@pie-lib/config-ui';\nimport classNames from 'classnames';\nimport Info from '@material-ui/icons/Info';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport {\n moveChoiceToCategory,\n removeCategory,\n removeChoiceFromCategory,\n verifyAllowMultiplePlacements,\n} from '@pie-lib/categorize';\n\nimport Category from './category';\nimport Header from '../header';\nimport { generateValidationMessage } from '../../utils';\nimport { RowLabel } from './RowLabel';\n\nconst styles = (theme) => ({\n categories: {\n marginBottom: theme.spacing.unit * 3,\n },\n categoriesHolder: {\n display: 'grid',\n gridRowGap: `${theme.spacing.unit}px`,\n gridColumnGap: `${theme.spacing.unit}px`,\n },\n row: {\n display: 'grid',\n gridTemplateColumns: 'repeat(2, 1fr)',\n gridColumnGap: `${theme.spacing.unit}px`,\n alignItems: 'baseline',\n width: '100%',\n marginTop: theme.spacing.unit,\n marginBottom: 2 * theme.spacing.unit,\n },\n rowLabel: {\n gridColumn: '1/3',\n },\n rowLabelHolder: {\n width: '100%',\n },\n tooltip: {\n fontSize: theme.typography.fontSize - 2,\n whiteSpace: 'pre',\n maxWidth: '500px',\n },\n errorText: {\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingTop: theme.spacing.unit / 2,\n },\n});\n\nexport class Categories extends React.Component {\n static propTypes = {\n defaultImageMaxHeight: PropTypes.number,\n defaultImageMaxWidth: PropTypes.number,\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 classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n categories: PropTypes.array,\n onModelChanged: PropTypes.func,\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n toolbarOpts: PropTypes.object,\n spellCheck: PropTypes.bool,\n };\n\n state = {\n focusedEl: null,\n };\n\n add = () => {\n const { model, categories: oldCategories } = this.props;\n const { categoriesPerRow } = model;\n const id = utils.firstAvailableIndex(\n model.categories.map((a) => a.id),\n 0,\n );\n const data = { id, label: 'Category ' + id };\n const addRowLabel = model.categories.length % categoriesPerRow === 0;\n const rowLabels = [...model.rowLabels];\n\n if (addRowLabel) {\n rowLabels.push('');\n }\n\n this.setState(\n {\n focusedEl: oldCategories.length,\n },\n () => {\n this.props.onModelChanged({\n rowLabels,\n categories: model.categories.concat([data]),\n });\n },\n );\n };\n\n deleteFocusedEl = () => {\n this.setState({\n focusedEl: null,\n });\n };\n\n delete = (category) => {\n const { model, onModelChanged } = this.props;\n const index = model.categories.findIndex((a) => a.id === category.id);\n\n if (index !== -1) {\n model.categories.splice(index, 1);\n model.correctResponse = removeCategory(category.id, model.correctResponse);\n onModelChanged(model);\n }\n };\n\n change = (c) => {\n const { categories } = this.props;\n const index = categories.findIndex((a) => a.id === c.id);\n\n if (index !== -1) {\n categories.splice(index, 1, c);\n this.props.onModelChanged({ categories });\n }\n };\n\n addChoiceToCategory = (addedChoice, categoryId) => {\n const { model, onModelChanged } = this.props;\n let { choices = [], correctResponse = [] } = model || {};\n const choice = (choices || []).find((choice) => choice.id === addedChoice.id);\n correctResponse = moveChoiceToCategory(addedChoice.id, undefined, categoryId, 0, model.correctResponse);\n // if multiplePlacements not allowed, ensure the consistency in the other categories\n if (choice.categoryCount !== 0) {\n correctResponse = verifyAllowMultiplePlacements(addedChoice, categoryId, correctResponse);\n }\n onModelChanged({ correctResponse });\n };\n\n deleteChoiceFromCategory = (category, choice, choiceIndex) => {\n const { model, onModelChanged } = this.props;\n const correctResponse = removeChoiceFromCategory(choice.id, category.id, choiceIndex, model.correctResponse);\n\n onModelChanged({ correctResponse });\n };\n\n moveChoice = (choiceId, from, to, choiceIndex) => {\n const { model, onModelChanged } = this.props;\n let { choices, correctResponse = [] } = model || {};\n const choice = (choices || []).find((choice) => choice.id === choiceId);\n if (to === from || !choice) {\n return;\n }\n if (choice.categoryCount !== 0) {\n correctResponse = moveChoiceToCategory(choice.id, from, to, choiceIndex, correctResponse);\n correctResponse = verifyAllowMultiplePlacements(choice, to, correctResponse);\n } else if (choice.categoryCount === 0) {\n correctResponse = moveChoiceToCategory(choice.id, undefined, to, 0, correctResponse);\n }\n onModelChanged({ correctResponse });\n };\n\n changeRowLabel = (val, index) => {\n const { model } = this.props;\n const { rowLabels } = model;\n const newRowLabels = [...rowLabels];\n\n if (newRowLabels.length < index) {\n newRowLabels.push(val);\n } else {\n newRowLabels[index] = val;\n }\n\n this.props.onModelChanged({\n rowLabels: newRowLabels,\n });\n };\n\n render() {\n const {\n model,\n classes,\n className,\n categories,\n imageSupport,\n uploadSoundSupport,\n toolbarOpts,\n spellCheck,\n configuration,\n defaultImageMaxHeight,\n defaultImageMaxWidth,\n mathMlOptions = {}\n } = this.props;\n\n const { categoriesPerRow, rowLabels, errors } = model;\n const { associationError, categoriesError, categoriesErrors } = errors || {};\n const { maxCategories, maxImageWidth = {}, maxImageHeight = {} } = configuration || {};\n const holderStyle = {\n gridTemplateColumns: `repeat(${categoriesPerRow}, 1fr)`,\n };\n\n const validationMessage = generateValidationMessage(configuration);\n\n return (\n <div className={classNames(classes.categories, className)}>\n <Header\n label=\"Categories\"\n buttonLabel=\"ADD A CATEGORY\"\n onAdd={this.add}\n info={\n <Tooltip\n classes={{ tooltip: classes.tooltip }}\n disableFocusListener\n disableTouchListener\n placement={'right'}\n title={validationMessage}\n >\n <Info fontSize={'small'} color={'primary'} style={{ marginLeft: '5px' }} />\n </Tooltip>\n }\n buttonDisabled={maxCategories && categories && maxCategories === categories.length}\n />\n\n <div className={classes.categoriesHolder} style={holderStyle}>\n {categories.map((category, index) => {\n const hasRowLabel = index % categoriesPerRow === 0;\n const rowIndex = index / categoriesPerRow;\n\n return (\n <React.Fragment key={index}>\n {hasRowLabel && (\n <RowLabel\n categoriesPerRow={categoriesPerRow}\n disabled={false}\n rowIndex={rowIndex}\n markup={rowLabels[rowIndex] || ''}\n onChange={(val) => this.changeRowLabel(val, rowIndex)}\n imageSupport={imageSupport}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheck}\n maxImageWidth={(maxImageWidth && maxImageWidth.rowLabel) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.rowLabel) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n mathMlOptions={mathMlOptions}\n />\n )}\n\n <Category\n imageSupport={imageSupport}\n focusedEl={this.state.focusedEl}\n deleteFocusedEl={this.deleteFocusedEl}\n index={index}\n category={category}\n error={categoriesErrors && categoriesErrors[category.id]}\n onChange={this.change}\n onDelete={() => this.delete(category)}\n onAddChoice={this.addChoiceToCategory}\n onMoveChoice={(choiceId, from, to, choiceIndex) => this.moveChoice(choiceId, from, to, choiceIndex)}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheck}\n onDeleteChoice={(choice, choiceIndex) => this.deleteChoiceFromCategory(category, choice, choiceIndex)}\n maxImageWidth={(maxImageWidth && maxImageWidth.categoryLabel) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.categoryLabel) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n />\n </React.Fragment>\n );\n })}\n </div>\n\n {associationError && <div className={classes.errorText}>{associationError}</div>}\n {categoriesError && <div className={classes.errorText}>{categoriesError}</div>}\n </div>\n );\n }\n}\n\nexport default withStyles(styles)(Categories);\n"],"file":"index.js"}
|
|
@@ -225,7 +225,9 @@ var Design = /*#__PURE__*/function (_React$Component) {
|
|
|
225
225
|
_ref$teacherInstructi = _ref.teacherInstructions,
|
|
226
226
|
teacherInstructions = _ref$teacherInstructi === void 0 ? {} : _ref$teacherInstructi,
|
|
227
227
|
_ref$withRubric = _ref.withRubric,
|
|
228
|
-
withRubric = _ref$withRubric === void 0 ? {} : _ref$withRubric
|
|
228
|
+
withRubric = _ref$withRubric === void 0 ? {} : _ref$withRubric,
|
|
229
|
+
_ref$mathMlOptions = _ref.mathMlOptions,
|
|
230
|
+
mathMlOptions = _ref$mathMlOptions === void 0 ? {} : _ref$mathMlOptions;
|
|
229
231
|
|
|
230
232
|
var _ref2 = model || {},
|
|
231
233
|
allowAlternateEnabled = _ref2.allowAlternateEnabled,
|
|
@@ -263,8 +265,9 @@ var Design = /*#__PURE__*/function (_React$Component) {
|
|
|
263
265
|
choicesPosition: choicesPosition.settings && radio(choicesPosition.label, ['below', 'above', 'left', 'right']),
|
|
264
266
|
allowMultiplePlacementsEnabled: allowMultiplePlacements.settings && dropdown(allowMultiplePlacements.label, [_utils.multiplePlacements.enabled, _utils.multiplePlacements.disabled, _utils.multiplePlacements.perChoice]),
|
|
265
267
|
promptEnabled: prompt.settings && toggle(prompt.label),
|
|
266
|
-
feedbackEnabled: feedback.settings && toggle(feedback.label)
|
|
267
|
-
allowAlternateEnabled: allowAlternate.settings && toggle(allowAlternate.label)
|
|
268
|
+
feedbackEnabled: feedback.settings && toggle(feedback.label) // PD-2960: deleted temporary from settings panel
|
|
269
|
+
// allowAlternateEnabled: allowAlternate.settings && toggle(allowAlternate.label),
|
|
270
|
+
|
|
268
271
|
};
|
|
269
272
|
var panelProperties = {
|
|
270
273
|
teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),
|
|
@@ -307,7 +310,8 @@ var Design = /*#__PURE__*/function (_React$Component) {
|
|
|
307
310
|
language: 'spanish'
|
|
308
311
|
}, {
|
|
309
312
|
language: 'special'
|
|
310
|
-
}]
|
|
313
|
+
}],
|
|
314
|
+
mathMlOptions: mathMlOptions
|
|
311
315
|
})), promptEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
|
|
312
316
|
label: prompt.label,
|
|
313
317
|
className: classes.inputContainer
|
|
@@ -327,7 +331,8 @@ var Design = /*#__PURE__*/function (_React$Component) {
|
|
|
327
331
|
language: 'spanish'
|
|
328
332
|
}, {
|
|
329
333
|
language: 'special'
|
|
330
|
-
}]
|
|
334
|
+
}],
|
|
335
|
+
mathMlOptions: mathMlOptions
|
|
331
336
|
})), /*#__PURE__*/_react["default"].createElement(_categories["default"], {
|
|
332
337
|
imageSupport: imageSupport,
|
|
333
338
|
uploadSoundSupport: uploadSoundSupport,
|
|
@@ -338,7 +343,8 @@ var Design = /*#__PURE__*/function (_React$Component) {
|
|
|
338
343
|
spellCheck: spellCheckEnabled,
|
|
339
344
|
configuration: configuration,
|
|
340
345
|
defaultImageMaxWidth: defaultImageMaxWidth,
|
|
341
|
-
defaultImageMaxHeight: defaultImageMaxHeight
|
|
346
|
+
defaultImageMaxHeight: defaultImageMaxHeight,
|
|
347
|
+
mathMlOptions: mathMlOptions
|
|
342
348
|
}), /*#__PURE__*/_react["default"].createElement(_choices["default"], {
|
|
343
349
|
imageSupport: imageSupport,
|
|
344
350
|
uploadSoundSupport: uploadSoundSupport,
|
|
@@ -376,7 +382,8 @@ var Design = /*#__PURE__*/function (_React$Component) {
|
|
|
376
382
|
uploadSoundSupport: uploadSoundSupport,
|
|
377
383
|
toolbarOpts: toolbarOpts,
|
|
378
384
|
defaultImageMaxWidth: defaultImageMaxWidth,
|
|
379
|
-
defaultImageMaxHeight: defaultImageMaxHeight
|
|
385
|
+
defaultImageMaxHeight: defaultImageMaxHeight,
|
|
386
|
+
mathMlOptions: mathMlOptions
|
|
380
387
|
}));
|
|
381
388
|
}), rationaleEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
|
|
382
389
|
label: rationale.label,
|
|
@@ -396,7 +403,8 @@ var Design = /*#__PURE__*/function (_React$Component) {
|
|
|
396
403
|
language: 'spanish'
|
|
397
404
|
}, {
|
|
398
405
|
language: 'special'
|
|
399
|
-
}]
|
|
406
|
+
}],
|
|
407
|
+
mathMlOptions: mathMlOptions
|
|
400
408
|
})), feedbackEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.FeedbackConfig, {
|
|
401
409
|
feedback: model.feedback,
|
|
402
410
|
onChange: this.changeFeedback,
|