@pie-element/categorize 8.7.1-next.0 → 8.7.1-next.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/configure/lib/defaults.js +73 -3
- package/configure/lib/defaults.js.map +1 -1
- package/configure/lib/design/categories/RowLabel.js +6 -0
- package/configure/lib/design/categories/RowLabel.js.map +1 -1
- package/configure/lib/design/categories/alternateResponses.js +4 -2
- package/configure/lib/design/categories/alternateResponses.js.map +1 -1
- package/configure/lib/design/categories/category.js +7 -1
- package/configure/lib/design/categories/category.js.map +1 -1
- package/configure/lib/design/categories/index.js +4 -2
- package/configure/lib/design/categories/index.js.map +1 -1
- package/configure/lib/design/choices/choice.js +4 -1
- package/configure/lib/design/choices/choice.js.map +1 -1
- package/configure/lib/design/choices/index.js +2 -1
- package/configure/lib/design/choices/index.js.map +1 -1
- package/configure/lib/design/index.js +13 -8
- package/configure/lib/design/index.js.map +1 -1
- package/configure/lib/design/input-header.js +7 -9
- package/configure/lib/design/input-header.js.map +1 -1
- package/configure/lib/design/utils.js +23 -0
- package/configure/lib/design/utils.js.map +1 -0
- package/docs/config-schema.json +432 -22
- package/docs/config-schema.json.md +308 -12
- package/docs/pie-schema.json +146 -2
- package/docs/pie-schema.json.md +106 -2
- package/package.json +2 -2
|
@@ -31,6 +31,17 @@ var _default = {
|
|
|
31
31
|
toolbarEditorPosition: 'bottom'
|
|
32
32
|
},
|
|
33
33
|
configuration: {
|
|
34
|
+
baseInputConfiguration: {
|
|
35
|
+
audio: {
|
|
36
|
+
disabled: false
|
|
37
|
+
},
|
|
38
|
+
video: {
|
|
39
|
+
disabled: false
|
|
40
|
+
},
|
|
41
|
+
image: {
|
|
42
|
+
disabled: false
|
|
43
|
+
}
|
|
44
|
+
},
|
|
34
45
|
spellCheck: {
|
|
35
46
|
label: 'Spellcheck',
|
|
36
47
|
settings: false,
|
|
@@ -72,12 +83,34 @@ var _default = {
|
|
|
72
83
|
prompt: {
|
|
73
84
|
settings: true,
|
|
74
85
|
label: 'Prompt',
|
|
75
|
-
required: false
|
|
86
|
+
required: false,
|
|
87
|
+
inputConfiguration: {
|
|
88
|
+
audio: {
|
|
89
|
+
disabled: false
|
|
90
|
+
},
|
|
91
|
+
video: {
|
|
92
|
+
disabled: false
|
|
93
|
+
},
|
|
94
|
+
image: {
|
|
95
|
+
disabled: false
|
|
96
|
+
}
|
|
97
|
+
}
|
|
76
98
|
},
|
|
77
99
|
rationale: {
|
|
78
100
|
settings: true,
|
|
79
101
|
label: 'Rationale',
|
|
80
|
-
required: false
|
|
102
|
+
required: false,
|
|
103
|
+
inputConfiguration: {
|
|
104
|
+
audio: {
|
|
105
|
+
disabled: false
|
|
106
|
+
},
|
|
107
|
+
video: {
|
|
108
|
+
disabled: false
|
|
109
|
+
},
|
|
110
|
+
image: {
|
|
111
|
+
disabled: false
|
|
112
|
+
}
|
|
113
|
+
}
|
|
81
114
|
},
|
|
82
115
|
scoringType: {
|
|
83
116
|
settings: false,
|
|
@@ -91,7 +124,44 @@ var _default = {
|
|
|
91
124
|
teacherInstructions: {
|
|
92
125
|
settings: true,
|
|
93
126
|
label: 'Teacher Instructions',
|
|
94
|
-
required: false
|
|
127
|
+
required: false,
|
|
128
|
+
inputConfiguration: {
|
|
129
|
+
audio: {
|
|
130
|
+
disabled: false
|
|
131
|
+
},
|
|
132
|
+
video: {
|
|
133
|
+
disabled: false
|
|
134
|
+
},
|
|
135
|
+
image: {
|
|
136
|
+
disabled: false
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
},
|
|
140
|
+
headers: {
|
|
141
|
+
inputConfiguration: {
|
|
142
|
+
audio: {
|
|
143
|
+
disabled: true
|
|
144
|
+
},
|
|
145
|
+
video: {
|
|
146
|
+
disabled: true
|
|
147
|
+
},
|
|
148
|
+
image: {
|
|
149
|
+
disabled: false
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
},
|
|
153
|
+
rowLabels: {
|
|
154
|
+
inputConfiguration: {
|
|
155
|
+
audio: {
|
|
156
|
+
disabled: false
|
|
157
|
+
},
|
|
158
|
+
video: {
|
|
159
|
+
disabled: false
|
|
160
|
+
},
|
|
161
|
+
image: {
|
|
162
|
+
disabled: false
|
|
163
|
+
}
|
|
164
|
+
}
|
|
95
165
|
},
|
|
96
166
|
toolbarEditorPosition: {
|
|
97
167
|
settings: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/defaults.js"],"names":["model","choices","choicesPosition","choicesLabel","lockChoiceOrder","allowMultiplePlacementsEnabled","multiplePlacements","enabled","allowAlternateEnabled","allowMaxChoicesPerCategory","maxChoicesPerCategory","categoriesPerRow","categories","alternates","correctResponse","rowLabels","partialScoring","feedbackEnabled","rationaleEnabled","promptEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","toolbarEditorPosition","configuration","spellCheck","label","settings","feedback","allowMultiplePlacements","maxPlacements","allowAlternate","prompt","required","rationale","scoringType","settingsPanelDisabled","studentInstructions","teacherInstructions","maxImageWidth","rowLabel","categoryLabel","maxImageHeight","withRubric","minCategoriesPerRow","mathMlOptions","mmlOutput","mmlEditing","language","languageChoices","options"],"mappings":";;;;;;;AAAA;;eAEe;AACbA,EAAAA,KAAK,EAAE;AACLC,IAAAA,OAAO,EAAE,EADJ;AAELC,IAAAA,eAAe,EAAE,OAFZ;AAGLC,IAAAA,YAAY,EAAE,EAHT;AAILC,IAAAA,eAAe,EAAE,IAJZ;AAKLC,IAAAA,8BAA8B,EAAEC,0BAAmBC,OAL9C;AAMLC,IAAAA,qBAAqB,EAAE,KANlB;AAOLC,IAAAA,0BAA0B,EAAE,KAPvB;AAQLC,IAAAA,qBAAqB,EAAE,CARlB;AASLC,IAAAA,gBAAgB,EAAE,CATb;AAULC,IAAAA,UAAU,EAAE,EAVP;AAWLC,IAAAA,UAAU,EAAE,EAXP;AAYLC,IAAAA,eAAe,EAAE,EAZZ;AAaLC,IAAAA,SAAS,EAAE,CAAC,EAAD,CAbN;AAcLC,IAAAA,cAAc,EAAE,IAdX;AAeLC,IAAAA,eAAe,EAAE,KAfZ;AAgBLC,IAAAA,gBAAgB,EAAE,IAhBb;AAiBLC,IAAAA,aAAa,EAAE,IAjBV;AAkBLC,IAAAA,0BAA0B,EAAE,IAlBvB;AAmBLC,IAAAA,0BAA0B,EAAE,IAnBvB;AAoBLC,IAAAA,qBAAqB,EAAE;AApBlB,GADM;AAuBbC,EAAAA,aAAa,EAAE;AACbC,IAAAA,UAAU,EAAE;AACVC,MAAAA,KAAK,EAAE,YADG;AAEVC,MAAAA,QAAQ,EAAE,KAFA;
|
|
1
|
+
{"version":3,"sources":["../src/defaults.js"],"names":["model","choices","choicesPosition","choicesLabel","lockChoiceOrder","allowMultiplePlacementsEnabled","multiplePlacements","enabled","allowAlternateEnabled","allowMaxChoicesPerCategory","maxChoicesPerCategory","categoriesPerRow","categories","alternates","correctResponse","rowLabels","partialScoring","feedbackEnabled","rationaleEnabled","promptEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","toolbarEditorPosition","configuration","baseInputConfiguration","audio","disabled","video","image","spellCheck","label","settings","feedback","allowMultiplePlacements","maxPlacements","allowAlternate","prompt","required","inputConfiguration","rationale","scoringType","settingsPanelDisabled","studentInstructions","teacherInstructions","headers","maxImageWidth","rowLabel","categoryLabel","maxImageHeight","withRubric","minCategoriesPerRow","mathMlOptions","mmlOutput","mmlEditing","language","languageChoices","options"],"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 allowMaxChoicesPerCategory: false,\n maxChoicesPerCategory: 0,\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 baseInputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\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 maxPlacements: {\n settings: true,\n label: 'Max choices per category',\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 required: false,\n inputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n },\n rationale: {\n settings: true,\n label: 'Rationale',\n required: false,\n inputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\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 required: false,\n inputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n },\n headers: {\n inputConfiguration: {\n audio: { disabled: true },\n video: { disabled: true },\n image: { disabled: false },\n },\n },\n rowLabels: {\n inputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\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 language: {\n settings: false,\n label: 'Specify Language',\n enabled: false,\n },\n languageChoices: {\n label: 'Language Choices',\n options: [],\n },\n },\n};\n"],"file":"defaults.js"}
|
|
@@ -7,6 +7,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
});
|
|
8
8
|
exports.RowLabel = void 0;
|
|
9
9
|
|
|
10
|
+
var _utils = require("../utils");
|
|
11
|
+
|
|
10
12
|
var _react = _interopRequireDefault(require("react"));
|
|
11
13
|
|
|
12
14
|
var _styles = require("@material-ui/core/styles");
|
|
@@ -30,6 +32,7 @@ var styles = function styles(theme) {
|
|
|
30
32
|
var RowLabel = (0, _styles.withStyles)(styles)(function (_ref) {
|
|
31
33
|
var categoriesPerRow = _ref.categoriesPerRow,
|
|
32
34
|
classes = _ref.classes,
|
|
35
|
+
configuration = _ref.configuration,
|
|
33
36
|
disabled = _ref.disabled,
|
|
34
37
|
markup = _ref.markup,
|
|
35
38
|
imageSupport = _ref.imageSupport,
|
|
@@ -41,6 +44,8 @@ var RowLabel = (0, _styles.withStyles)(styles)(function (_ref) {
|
|
|
41
44
|
uploadSoundSupport = _ref.uploadSoundSupport,
|
|
42
45
|
_ref$mathMlOptions = _ref.mathMlOptions,
|
|
43
46
|
mathMlOptions = _ref$mathMlOptions === void 0 ? {} : _ref$mathMlOptions;
|
|
47
|
+
var rowLabels = configuration.rowLabels,
|
|
48
|
+
baseInputConfiguration = configuration.baseInputConfiguration;
|
|
44
49
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
45
50
|
style: {
|
|
46
51
|
gridColumn: "1/".concat(categoriesPerRow + 1),
|
|
@@ -56,6 +61,7 @@ var RowLabel = (0, _styles.withStyles)(styles)(function (_ref) {
|
|
|
56
61
|
imageSupport: imageSupport,
|
|
57
62
|
nonEmpty: false,
|
|
58
63
|
toolbarOpts: toolbarOpts,
|
|
64
|
+
pluginProps: (0, _utils.getPluginProps)(rowLabels === null || rowLabels === void 0 ? void 0 : rowLabels.inputConfiguration, baseInputConfiguration),
|
|
59
65
|
spellCheck: spellCheck,
|
|
60
66
|
maxImageWidth: maxImageWidth,
|
|
61
67
|
maxImageHeight: maxImageHeight,
|
|
@@ -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","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,
|
|
1
|
+
{"version":3,"sources":["../../../src/design/categories/RowLabel.jsx"],"names":["styles","theme","rowLabel","gridColumn","rowLabelHolder","paddingTop","spacing","unit","width","RowLabel","categoriesPerRow","classes","configuration","disabled","markup","imageSupport","onChange","toolbarOpts","spellCheck","maxImageWidth","maxImageHeight","uploadSoundSupport","mathMlOptions","rowLabels","baseInputConfiguration","inputConfiguration","language"],"mappings":";;;;;;;;;AAAA;;AACA;;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,gBAcM;AAAA,MAbJU,gBAaI,QAbJA,gBAaI;AAAA,MAZJC,OAYI,QAZJA,OAYI;AAAA,MAXJC,aAWI,QAXJA,aAWI;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,gCADJC,aACI;AAAA,MADJA,aACI,mCADY,EACZ;AACJ,MAAQC,SAAR,GAA8CX,aAA9C,CAAQW,SAAR;AAAA,MAAmBC,sBAAnB,GAA8CZ,aAA9C,CAAmBY,sBAAnB;AAEA,sBACE;AACE,IAAA,KAAK,EAAE;AACLrB,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,0BAAD;AACE,IAAA,QAAQ,EAAES,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,WAAW,EAAE,2BAAeM,SAAf,aAAeA,SAAf,uBAAeA,SAAS,CAAEE,kBAA1B,EAA8CD,sBAA9C,CAPf;AAQE,IAAA,UAAU,EAAEN,UARd;AASE,IAAA,aAAa,EAAEC,aATjB;AAUE,IAAA,cAAc,EAAEC,cAVlB;AAWE,IAAA,kBAAkB,EAAEC,kBAXtB;AAYE,IAAA,uBAAuB,EAAE,CAAC;AAAEK,MAAAA,QAAQ,EAAE;AAAZ,KAAD,EAA0B;AAAEA,MAAAA,QAAQ,EAAE;AAAZ,KAA1B,CAZ3B;AAaE,IAAA,aAAa,EAAEJ;AAbjB,IADF,CANF,CADF;AA0BD,CA5CqB,CAAjB","sourcesContent":["import { getPluginProps } from '../utils';\nimport React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\nimport { EditableHtml } from '@pie-lib/pie-toolbox/editable-html';\nimport { InputContainer } from '@pie-lib/pie-toolbox/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 configuration,\n disabled,\n markup,\n imageSupport,\n onChange,\n toolbarOpts,\n spellCheck,\n maxImageWidth,\n maxImageHeight,\n uploadSoundSupport,\n mathMlOptions = {},\n }) => {\n const { rowLabels, baseInputConfiguration } = configuration;\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 pluginProps={getPluginProps(rowLabels?.inputConfiguration, baseInputConfiguration)}\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"}
|
|
@@ -238,7 +238,8 @@ var AlternateResponses = /*#__PURE__*/function (_React$Component) {
|
|
|
238
238
|
maxImageWidth: maxImageWidth && maxImageWidth.rowLabel || defaultImageMaxWidth,
|
|
239
239
|
maxImageHeight: maxImageHeight && maxImageHeight.rowLabel || defaultImageMaxHeight,
|
|
240
240
|
uploadSoundSupport: uploadSoundSupport,
|
|
241
|
-
mathMlOptions: mathMlOptions
|
|
241
|
+
mathMlOptions: mathMlOptions,
|
|
242
|
+
configuration: configuration
|
|
242
243
|
}), /*#__PURE__*/_react["default"].createElement(_category["default"], {
|
|
243
244
|
key: index,
|
|
244
245
|
alternateResponseIndex: altIndex,
|
|
@@ -254,7 +255,8 @@ var AlternateResponses = /*#__PURE__*/function (_React$Component) {
|
|
|
254
255
|
return _this2.moveChoice(choiceId, from, to, choiceIndex, alternateIndex);
|
|
255
256
|
},
|
|
256
257
|
uploadSoundSupport: uploadSoundSupport,
|
|
257
|
-
mathMlOptions: mathMlOptions
|
|
258
|
+
mathMlOptions: mathMlOptions,
|
|
259
|
+
configuration: configuration
|
|
258
260
|
}));
|
|
259
261
|
})));
|
|
260
262
|
}
|
|
@@ -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","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/pie-toolbox/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"}
|
|
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/pie-toolbox/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 configuration={configuration}\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 configuration={configuration}\n />\n </React.Fragment>\n );\n })}\n </div>\n </div>\n );\n }\n}\n\nexport default withStyles(styles)(AlternateResponses);\n"],"file":"alternateResponses.js"}
|
|
@@ -76,6 +76,7 @@ var Category = /*#__PURE__*/function (_React$Component) {
|
|
|
76
76
|
category = _this$props2.category,
|
|
77
77
|
classes = _this$props2.classes,
|
|
78
78
|
className = _this$props2.className,
|
|
79
|
+
configuration = _this$props2.configuration,
|
|
79
80
|
deleteFocusedEl = _this$props2.deleteFocusedEl,
|
|
80
81
|
focusedEl = _this$props2.focusedEl,
|
|
81
82
|
index = _this$props2.index,
|
|
@@ -93,6 +94,9 @@ var Category = /*#__PURE__*/function (_React$Component) {
|
|
|
93
94
|
uploadSoundSupport = _this$props2.uploadSoundSupport,
|
|
94
95
|
_this$props2$mathMlOp = _this$props2.mathMlOptions,
|
|
95
96
|
mathMlOptions = _this$props2$mathMlOp === void 0 ? {} : _this$props2$mathMlOp;
|
|
97
|
+
console.log({
|
|
98
|
+
category: configuration
|
|
99
|
+
});
|
|
96
100
|
return /*#__PURE__*/_react["default"].createElement(_Card["default"], {
|
|
97
101
|
className: (0, _classnames["default"])(classes.category, className, (0, _defineProperty2["default"])({}, classes.duplicateError, isDuplicated))
|
|
98
102
|
}, /*#__PURE__*/_react["default"].createElement("span", null, /*#__PURE__*/_react["default"].createElement(_inputHeader["default"], {
|
|
@@ -110,7 +114,8 @@ var Category = /*#__PURE__*/function (_React$Component) {
|
|
|
110
114
|
maxImageWidth: maxImageWidth,
|
|
111
115
|
maxImageHeight: maxImageHeight,
|
|
112
116
|
uploadSoundSupport: uploadSoundSupport,
|
|
113
|
-
mathMlOptions: mathMlOptions
|
|
117
|
+
mathMlOptions: mathMlOptions,
|
|
118
|
+
configuration: configuration
|
|
114
119
|
}), error && /*#__PURE__*/_react["default"].createElement("div", {
|
|
115
120
|
className: classes.errorText
|
|
116
121
|
}, error)), /*#__PURE__*/_react["default"].createElement(_droppablePlaceholder["default"], {
|
|
@@ -139,6 +144,7 @@ exports.Category = Category;
|
|
|
139
144
|
classes: _propTypes["default"].object.isRequired,
|
|
140
145
|
className: _propTypes["default"].string,
|
|
141
146
|
category: _propTypes["default"].object.isRequired,
|
|
147
|
+
configuration: _propTypes["default"].object.isRequired,
|
|
142
148
|
defaultImageMaxHeight: _propTypes["default"].number,
|
|
143
149
|
defaultImageMaxWidth: _propTypes["default"].number,
|
|
144
150
|
deleteFocusedEl: _propTypes["default"].func,
|
|
@@ -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","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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/design/categories/category.jsx"],"names":["Category","l","props","category","onChange","label","alternateResponseIndex","classes","className","configuration","deleteFocusedEl","focusedEl","index","error","isDuplicated","onDelete","onDeleteChoice","onAddChoice","onMoveChoice","imageSupport","spellCheck","toolbarOpts","maxImageWidth","maxImageHeight","uploadSoundSupport","mathMlOptions","console","log","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 configuration: 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 configuration,\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\n console.log({category: configuration});\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 configuration={configuration}\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"}
|
|
@@ -343,7 +343,8 @@ var Categories = /*#__PURE__*/function (_React$Component) {
|
|
|
343
343
|
maxImageWidth: maxImageWidth && maxImageWidth.rowLabel || defaultImageMaxWidth,
|
|
344
344
|
maxImageHeight: maxImageHeight && maxImageHeight.rowLabel || defaultImageMaxHeight,
|
|
345
345
|
uploadSoundSupport: uploadSoundSupport,
|
|
346
|
-
mathMlOptions: mathMlOptions
|
|
346
|
+
mathMlOptions: mathMlOptions,
|
|
347
|
+
configuration: configuration
|
|
347
348
|
}), /*#__PURE__*/_react["default"].createElement(_category["default"], {
|
|
348
349
|
imageSupport: imageSupport,
|
|
349
350
|
focusedEl: _this2.state.focusedEl,
|
|
@@ -366,7 +367,8 @@ var Categories = /*#__PURE__*/function (_React$Component) {
|
|
|
366
367
|
},
|
|
367
368
|
maxImageWidth: maxImageWidth && maxImageWidth.categoryLabel || defaultImageMaxWidth,
|
|
368
369
|
maxImageHeight: maxImageHeight && maxImageHeight.categoryLabel || defaultImageMaxHeight,
|
|
369
|
-
uploadSoundSupport: uploadSoundSupport
|
|
370
|
+
uploadSoundSupport: uploadSoundSupport,
|
|
371
|
+
configuration: configuration
|
|
370
372
|
}));
|
|
371
373
|
})), associationError && /*#__PURE__*/_react["default"].createElement("div", {
|
|
372
374
|
className: classes.errorText
|
|
@@ -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","maxChoicesPerCategory","choice","find","undefined","categoryCount","maxCategoryChoices","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":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { choiceUtils as utils } from '@pie-lib/pie-toolbox/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/pie-toolbox/categorize';\n\nimport Category from './category';\nimport Header from '../header';\nimport { generateValidationMessage, getMaxCategoryChoices } 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 = [], maxChoicesPerCategory = 0 } = 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 const maxCategoryChoices = getMaxCategoryChoices(model);\n // when maxChoicesPerCategory is set to 0, there is no limit so it should not be updated\n onModelChanged({ correctResponse, maxChoicesPerCategory: maxChoicesPerCategory !== 0 && maxChoicesPerCategory < maxCategoryChoices ? maxChoicesPerCategory + 1 : maxChoicesPerCategory });\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 = [], maxChoicesPerCategory = 0 } = 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 const maxCategoryChoices = getMaxCategoryChoices(model);\n // when maxChoicesPerCategory is set to 0, there is no limit so it should not be updated\n onModelChanged({ correctResponse, maxChoicesPerCategory: maxChoicesPerCategory !== 0 && maxChoicesPerCategory < maxCategoryChoices ? maxChoicesPerCategory + 1 : maxChoicesPerCategory });\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"}
|
|
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","maxChoicesPerCategory","choice","find","undefined","categoryCount","maxCategoryChoices","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":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { choiceUtils as utils } from '@pie-lib/pie-toolbox/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/pie-toolbox/categorize';\n\nimport Category from './category';\nimport Header from '../header';\nimport { generateValidationMessage, getMaxCategoryChoices } 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 = [], maxChoicesPerCategory = 0 } = 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 const maxCategoryChoices = getMaxCategoryChoices(model);\n // when maxChoicesPerCategory is set to 0, there is no limit so it should not be updated\n onModelChanged({\n correctResponse,\n maxChoicesPerCategory:\n maxChoicesPerCategory !== 0 && maxChoicesPerCategory < maxCategoryChoices\n ? maxChoicesPerCategory + 1\n : maxChoicesPerCategory,\n });\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 = [], maxChoicesPerCategory = 0 } = 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 const maxCategoryChoices = getMaxCategoryChoices(model);\n // when maxChoicesPerCategory is set to 0, there is no limit so it should not be updated\n onModelChanged({\n correctResponse,\n maxChoicesPerCategory:\n maxChoicesPerCategory !== 0 && maxChoicesPerCategory < maxCategoryChoices\n ? maxChoicesPerCategory + 1\n : maxChoicesPerCategory,\n });\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 configuration={configuration}\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 configuration={configuration}\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"}
|
|
@@ -119,6 +119,7 @@ var Choice = /*#__PURE__*/function (_React$Component) {
|
|
|
119
119
|
allowMultiplePlacements = _this$props3.allowMultiplePlacements,
|
|
120
120
|
classes = _this$props3.classes,
|
|
121
121
|
className = _this$props3.className,
|
|
122
|
+
configuration = _this$props3.configuration,
|
|
122
123
|
choice = _this$props3.choice,
|
|
123
124
|
deleteFocusedEl = _this$props3.deleteFocusedEl,
|
|
124
125
|
focusedEl = _this$props3.focusedEl,
|
|
@@ -157,7 +158,8 @@ var Choice = /*#__PURE__*/function (_React$Component) {
|
|
|
157
158
|
error: error,
|
|
158
159
|
maxImageWidth: maxImageWidth,
|
|
159
160
|
maxImageHeight: maxImageHeight,
|
|
160
|
-
uploadSoundSupport: uploadSoundSupport
|
|
161
|
+
uploadSoundSupport: uploadSoundSupport,
|
|
162
|
+
configuration: configuration
|
|
161
163
|
}), error && /*#__PURE__*/_react["default"].createElement("div", {
|
|
162
164
|
className: classes.errorText
|
|
163
165
|
}, error))), /*#__PURE__*/_react["default"].createElement(_CardActions["default"], {
|
|
@@ -181,6 +183,7 @@ exports.Choice = Choice;
|
|
|
181
183
|
allowMultiplePlacements: _propTypes["default"].string,
|
|
182
184
|
classes: _propTypes["default"].object.isRequired,
|
|
183
185
|
className: _propTypes["default"].string,
|
|
186
|
+
configuration: _propTypes["default"].object.isRequired,
|
|
184
187
|
choice: _propTypes["default"].object.isRequired,
|
|
185
188
|
connectDropTarget: _propTypes["default"].func,
|
|
186
189
|
deleteFocusedEl: _propTypes["default"].func,
|