@pie-element/categorize 6.9.21 → 7.1.1
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 +40 -0
- package/configure/CHANGELOG.md +38 -0
- package/configure/lib/defaults.js +16 -0
- package/configure/lib/defaults.js.map +1 -1
- package/configure/lib/design/categories/category.js +6 -2
- package/configure/lib/design/categories/category.js.map +1 -1
- package/configure/lib/design/categories/index.js +20 -6
- package/configure/lib/design/categories/index.js.map +1 -1
- package/configure/lib/design/choices/choice.js +6 -2
- package/configure/lib/design/choices/choice.js.map +1 -1
- package/configure/lib/design/choices/index.js +11 -3
- package/configure/lib/design/choices/index.js.map +1 -1
- package/configure/lib/design/index.js +22 -6
- package/configure/lib/design/index.js.map +1 -1
- package/configure/lib/design/input-header.js +6 -2
- package/configure/lib/design/input-header.js.map +1 -1
- package/configure/package.json +4 -4
- package/docs/config-schema.json +108 -0
- package/docs/config-schema.json.md +85 -1
- package/docs/pie-schema.json +36 -0
- package/docs/pie-schema.json.md +28 -0
- package/package.json +5 -5
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,46 @@
|
|
|
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.1.1](https://github.com/pie-framework/pie-elements/compare/@pie-element/categorize@7.1.0...@pie-element/categorize@7.1.1) (2022-07-19)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @pie-element/categorize
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
# [7.1.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/categorize@7.0.0...@pie-element/categorize@7.1.0) (2022-06-28)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### Features
|
|
18
|
+
|
|
19
|
+
* **categorize:** add maxImageWidth and maxImageHeight props PD-1801 ([c438cea](https://github.com/pie-framework/pie-elements/commit/c438cea310e6e5cdfbd8c057fc9aadb36d53bb76))
|
|
20
|
+
* update documentation for items that have validation with settings configurable by client systems PD-1789 ([8ef69cc](https://github.com/pie-framework/pie-elements/commit/8ef69cc0c7439a5803dc95f570efc7cd24c8e334))
|
|
21
|
+
* **categorize:** added configurable validation PD-1739 ([c0d8275](https://github.com/pie-framework/pie-elements/commit/c0d827559fd43106e907967c111912ad92366e8e))
|
|
22
|
+
* **categorize:** implement generate validation message method, add info tooltip PD-1740 ([b315f4e](https://github.com/pie-framework/pie-elements/commit/b315f4ea0bc1461da0a8469bd9df383bc98e78ca))
|
|
23
|
+
* **categorize:** implement ui/ux for validation PD-1740 ([0a05866](https://github.com/pie-framework/pie-elements/commit/0a05866af89b0123b8979ef3b4916af4b2a0cdf9))
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
# [7.0.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/categorize@6.9.21...@pie-element/categorize@7.0.0) (2022-06-28)
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
### chore
|
|
33
|
+
|
|
34
|
+
* Merge master with develop. ([cdca48a](https://github.com/pie-framework/pie-elements/commit/cdca48abaa1d4179e4a961e13d171e14b7ed2444))
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
### BREAKING CHANGES
|
|
38
|
+
|
|
39
|
+
* Image percent buttons were removed from toolbar.
|
|
40
|
+
New properties maxImageWidth and maxImageHeight were added.
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
|
|
6
46
|
## [6.9.21](https://github.com/pie-framework/pie-elements/compare/@pie-element/categorize@6.9.20...@pie-element/categorize@6.9.21) (2022-06-13)
|
|
7
47
|
|
|
8
48
|
**Note:** Version bump only for package @pie-element/categorize
|
package/configure/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,44 @@
|
|
|
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.1.1](https://github.com/pie-framework/pie-elements/compare/@pie-element/categorize-configure@6.1.0...@pie-element/categorize-configure@6.1.1) (2022-07-19)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @pie-element/categorize-configure
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
# [6.1.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/categorize-configure@6.0.0...@pie-element/categorize-configure@6.1.0) (2022-06-28)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### Features
|
|
18
|
+
|
|
19
|
+
* **categorize:** add maxImageWidth and maxImageHeight props PD-1801 ([c438cea](https://github.com/pie-framework/pie-elements/commit/c438cea310e6e5cdfbd8c057fc9aadb36d53bb76))
|
|
20
|
+
* **categorize:** implement generate validation message method, add info tooltip PD-1740 ([b315f4e](https://github.com/pie-framework/pie-elements/commit/b315f4ea0bc1461da0a8469bd9df383bc98e78ca))
|
|
21
|
+
* **categorize:** implement ui/ux for validation PD-1740 ([0a05866](https://github.com/pie-framework/pie-elements/commit/0a05866af89b0123b8979ef3b4916af4b2a0cdf9))
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
# [6.0.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/categorize-configure@5.4.25...@pie-element/categorize-configure@6.0.0) (2022-06-28)
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
### chore
|
|
31
|
+
|
|
32
|
+
* Merge master with develop. ([cdca48a](https://github.com/pie-framework/pie-elements/commit/cdca48abaa1d4179e4a961e13d171e14b7ed2444))
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
### BREAKING CHANGES
|
|
36
|
+
|
|
37
|
+
* Image percent buttons were removed from toolbar.
|
|
38
|
+
New properties maxImageWidth and maxImageHeight were added.
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
|
|
6
44
|
## [5.4.25](https://github.com/pie-framework/pie-elements/compare/@pie-element/categorize-configure@5.4.24...@pie-element/categorize-configure@5.4.25) (2022-06-13)
|
|
7
45
|
|
|
8
46
|
**Note:** Version bump only for package @pie-element/categorize-configure
|
|
@@ -66,6 +66,22 @@ var _default = {
|
|
|
66
66
|
toolbarEditorPosition: {
|
|
67
67
|
settings: false,
|
|
68
68
|
label: 'Toolbar Editor Position'
|
|
69
|
+
},
|
|
70
|
+
maxImageWidth: {
|
|
71
|
+
teacherInstructions: 300,
|
|
72
|
+
prompt: 300,
|
|
73
|
+
rationale: 300,
|
|
74
|
+
rowLabel: 200,
|
|
75
|
+
categoryLabel: 260,
|
|
76
|
+
choices: 240
|
|
77
|
+
},
|
|
78
|
+
maxImageHeight: {
|
|
79
|
+
teacherInstructions: 300,
|
|
80
|
+
prompt: 300,
|
|
81
|
+
rationale: 300,
|
|
82
|
+
rowLabel: 100,
|
|
83
|
+
categoryLabel: 100,
|
|
84
|
+
choices: 150
|
|
69
85
|
}
|
|
70
86
|
}
|
|
71
87
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/defaults.js"],"names":["model","choices","choicesPosition","choicesLabel","lockChoiceOrder","removeTilesAfterPlacing","categoriesPerRow","categories","alternates","correctResponse","rowLabels","partialScoring","feedbackEnabled","rationaleEnabled","promptEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","toolbarEditorPosition","configuration","spellCheck","label","settings","enabled","feedback","prompt","rationale","scoringType","studentInstructions","teacherInstructions"],"mappings":";;;;;;eAAe;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,uBAAuB,EAAE,KALpB;AAMLC,IAAAA,gBAAgB,EAAE,CANb;AAOLC,IAAAA,UAAU,EAAE,EAPP;AAQLC,IAAAA,UAAU,EAAE,EARP;AASLC,IAAAA,eAAe,EAAE,EATZ;AAULC,IAAAA,SAAS,EAAE,CAAC,EAAD,CAVN;AAWLC,IAAAA,cAAc,EAAE,IAXX;AAYLC,IAAAA,eAAe,EAAE,IAZZ;AAaLC,IAAAA,gBAAgB,EAAE,IAbb;AAcLC,IAAAA,aAAa,EAAE,IAdV;AAeLC,IAAAA,0BAA0B,EAAE,IAfvB;AAgBLC,IAAAA,0BAA0B,EAAE,IAhBvB;AAiBLC,IAAAA,qBAAqB,EAAE;AAjBlB,GADM;AAoBbC,EAAAA,aAAa,EAAE;AACbC,IAAAA,UAAU,EAAE;AACVC,MAAAA,KAAK,EAAE,YADG;AAEVC,MAAAA,QAAQ,EAAC,KAFC;AAGVC,MAAAA,OAAO,EAAC;AAHE,KADC;AAMbC,IAAAA,QAAQ,EAAE;AACRF,MAAAA,QAAQ,EAAE,IADF;AAERD,MAAAA,KAAK,EAAE,UAFC;AAGRE,MAAAA,OAAO,EAAE;AAHD,KANG;AAWblB,IAAAA,eAAe,EAAE;AACfiB,MAAAA,QAAQ,EAAE,KADK;AAEfD,MAAAA,KAAK,EAAE;AAFQ,KAXJ;AAebT,IAAAA,cAAc,EAAE;AACdU,MAAAA,QAAQ,EAAE,KADI;AAEdD,MAAAA,KAAK,EAAE;AAFO,KAfH;AAmBbI,IAAAA,MAAM,EAAE;AACNH,MAAAA,QAAQ,EAAE,IADJ;AAEND,MAAAA,KAAK,EAAE;AAFD,KAnBK;AAuBbK,IAAAA,SAAS,EAAE;AACTJ,MAAAA,QAAQ,EAAE,IADD;AAETD,MAAAA,KAAK,EAAE;AAFE,KAvBE;AA2BbM,IAAAA,WAAW,EAAE;AACXL,MAAAA,QAAQ,EAAE,KADC;AAEXD,MAAAA,KAAK,EAAE;AAFI,KA3BA;AA+BbO,IAAAA,mBAAmB,EAAE;AACnBN,MAAAA,QAAQ,EAAE,KADS;AAEnBD,MAAAA,KAAK,EAAE;AAFY,KA/BR;AAmCbQ,IAAAA,mBAAmB,EAAE;AACnBP,MAAAA,QAAQ,EAAE,IADS;AAEnBD,MAAAA,KAAK,EAAE;AAFY,KAnCR;AAuCbH,IAAAA,qBAAqB,EAAC;AACpBI,MAAAA,QAAQ,EAAE,KADU;AAEpBD,MAAAA,KAAK,EAAE;AAFa;
|
|
1
|
+
{"version":3,"sources":["../src/defaults.js"],"names":["model","choices","choicesPosition","choicesLabel","lockChoiceOrder","removeTilesAfterPlacing","categoriesPerRow","categories","alternates","correctResponse","rowLabels","partialScoring","feedbackEnabled","rationaleEnabled","promptEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","toolbarEditorPosition","configuration","spellCheck","label","settings","enabled","feedback","prompt","rationale","scoringType","studentInstructions","teacherInstructions","maxImageWidth","rowLabel","categoryLabel","maxImageHeight"],"mappings":";;;;;;eAAe;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,uBAAuB,EAAE,KALpB;AAMLC,IAAAA,gBAAgB,EAAE,CANb;AAOLC,IAAAA,UAAU,EAAE,EAPP;AAQLC,IAAAA,UAAU,EAAE,EARP;AASLC,IAAAA,eAAe,EAAE,EATZ;AAULC,IAAAA,SAAS,EAAE,CAAC,EAAD,CAVN;AAWLC,IAAAA,cAAc,EAAE,IAXX;AAYLC,IAAAA,eAAe,EAAE,IAZZ;AAaLC,IAAAA,gBAAgB,EAAE,IAbb;AAcLC,IAAAA,aAAa,EAAE,IAdV;AAeLC,IAAAA,0BAA0B,EAAE,IAfvB;AAgBLC,IAAAA,0BAA0B,EAAE,IAhBvB;AAiBLC,IAAAA,qBAAqB,EAAE;AAjBlB,GADM;AAoBbC,EAAAA,aAAa,EAAE;AACbC,IAAAA,UAAU,EAAE;AACVC,MAAAA,KAAK,EAAE,YADG;AAEVC,MAAAA,QAAQ,EAAC,KAFC;AAGVC,MAAAA,OAAO,EAAC;AAHE,KADC;AAMbC,IAAAA,QAAQ,EAAE;AACRF,MAAAA,QAAQ,EAAE,IADF;AAERD,MAAAA,KAAK,EAAE,UAFC;AAGRE,MAAAA,OAAO,EAAE;AAHD,KANG;AAWblB,IAAAA,eAAe,EAAE;AACfiB,MAAAA,QAAQ,EAAE,KADK;AAEfD,MAAAA,KAAK,EAAE;AAFQ,KAXJ;AAebT,IAAAA,cAAc,EAAE;AACdU,MAAAA,QAAQ,EAAE,KADI;AAEdD,MAAAA,KAAK,EAAE;AAFO,KAfH;AAmBbI,IAAAA,MAAM,EAAE;AACNH,MAAAA,QAAQ,EAAE,IADJ;AAEND,MAAAA,KAAK,EAAE;AAFD,KAnBK;AAuBbK,IAAAA,SAAS,EAAE;AACTJ,MAAAA,QAAQ,EAAE,IADD;AAETD,MAAAA,KAAK,EAAE;AAFE,KAvBE;AA2BbM,IAAAA,WAAW,EAAE;AACXL,MAAAA,QAAQ,EAAE,KADC;AAEXD,MAAAA,KAAK,EAAE;AAFI,KA3BA;AA+BbO,IAAAA,mBAAmB,EAAE;AACnBN,MAAAA,QAAQ,EAAE,KADS;AAEnBD,MAAAA,KAAK,EAAE;AAFY,KA/BR;AAmCbQ,IAAAA,mBAAmB,EAAE;AACnBP,MAAAA,QAAQ,EAAE,IADS;AAEnBD,MAAAA,KAAK,EAAE;AAFY,KAnCR;AAuCbH,IAAAA,qBAAqB,EAAC;AACpBI,MAAAA,QAAQ,EAAE,KADU;AAEpBD,MAAAA,KAAK,EAAE;AAFa,KAvCT;AA2CbS,IAAAA,aAAa,EAAE;AACbD,MAAAA,mBAAmB,EAAE,GADR;AAEbJ,MAAAA,MAAM,EAAE,GAFK;AAGbC,MAAAA,SAAS,EAAE,GAHE;AAIbK,MAAAA,QAAQ,EAAE,GAJG;AAKbC,MAAAA,aAAa,EAAE,GALF;AAMb9B,MAAAA,OAAO,EAAE;AANI,KA3CF;AAmDb+B,IAAAA,cAAc,EAAE;AACdJ,MAAAA,mBAAmB,EAAE,GADP;AAEdJ,MAAAA,MAAM,EAAE,GAFM;AAGdC,MAAAA,SAAS,EAAE,GAHG;AAIdK,MAAAA,QAAQ,EAAE,GAJI;AAKdC,MAAAA,aAAa,EAAE,GALD;AAMd9B,MAAAA,OAAO,EAAE;AANK;AAnDH;AApBF,C","sourcesContent":["export default {\n model: {\n choices: [],\n choicesPosition: 'below',\n choicesLabel: '',\n lockChoiceOrder: true,\n removeTilesAfterPlacing: false,\n categoriesPerRow: 2,\n categories: [],\n alternates: [],\n correctResponse: [],\n rowLabels: [''],\n partialScoring: true,\n feedbackEnabled: true,\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: false,\n label: 'Lock Choice Order'\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 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 }\n};\n"],"file":"defaults.js"}
|
|
@@ -81,7 +81,9 @@ var Category = /*#__PURE__*/function (_React$Component) {
|
|
|
81
81
|
onAddChoice = _this$props2.onAddChoice,
|
|
82
82
|
imageSupport = _this$props2.imageSupport,
|
|
83
83
|
spellCheck = _this$props2.spellCheck,
|
|
84
|
-
toolbarOpts = _this$props2.toolbarOpts
|
|
84
|
+
toolbarOpts = _this$props2.toolbarOpts,
|
|
85
|
+
maxImageWidth = _this$props2.maxImageWidth,
|
|
86
|
+
maxImageHeight = _this$props2.maxImageHeight;
|
|
85
87
|
return /*#__PURE__*/_react["default"].createElement(_Card["default"], {
|
|
86
88
|
className: (0, _classnames["default"])(classes.category, className)
|
|
87
89
|
}, onChange && /*#__PURE__*/_react["default"].createElement(_inputHeader["default"], {
|
|
@@ -90,7 +92,9 @@ var Category = /*#__PURE__*/function (_React$Component) {
|
|
|
90
92
|
onDelete: onDelete,
|
|
91
93
|
imageSupport: imageSupport,
|
|
92
94
|
toolbarOpts: toolbarOpts,
|
|
93
|
-
spellCheck: spellCheck
|
|
95
|
+
spellCheck: spellCheck,
|
|
96
|
+
maxImageWidth: maxImageWidth,
|
|
97
|
+
maxImageHeight: maxImageHeight
|
|
94
98
|
}), /*#__PURE__*/_react["default"].createElement(_droppablePlaceholder["default"], {
|
|
95
99
|
className: classes.placeHolder,
|
|
96
100
|
choices: category.choices,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/design/categories/category.jsx"],"names":["Category","l","props","category","onChange","label","classes","className","onDelete","onDeleteChoice","onAddChoice","imageSupport","spellCheck","toolbarOpts","changeLabel","placeHolder","choices","id","actions","React","Component","PropTypes","object","isRequired","string","func","shape","add","styles","theme","minHeight","deleteButton","margin","padding","paddingBottom","paddingTop","spacing","unit","iconButtonRoot","width","height","header","display","justifyContent","overflow","editor","flex"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA;;;;;;IAEaA,Q;;;;;;;;;;;;;;;oGAkBG,UAAAC,CAAC,EAAI;AACjB,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","classes","className","onDelete","onDeleteChoice","onAddChoice","imageSupport","spellCheck","toolbarOpts","maxImageWidth","maxImageHeight","changeLabel","placeHolder","choices","id","actions","React","Component","PropTypes","object","isRequired","string","func","shape","add","styles","theme","minHeight","deleteButton","margin","padding","paddingBottom","paddingTop","spacing","unit","iconButtonRoot","width","height","header","display","justifyContent","overflow","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 classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n category: PropTypes.object.isRequired,\n onChange: PropTypes.func,\n onDelete: PropTypes.func,\n onDeleteChoice: PropTypes.func,\n onAddChoice: PropTypes.func,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired\n }),\n toolbarOpts: PropTypes.object\n };\n\n static defaultProps = {};\n\n changeLabel = l => {\n const { category, onChange } = this.props;\n category.label = l;\n onChange(category);\n };\n\n render() {\n const {\n category,\n classes,\n className,\n onChange,\n onDelete,\n onDeleteChoice,\n onAddChoice,\n imageSupport,\n spellCheck,\n toolbarOpts,\n maxImageWidth,\n maxImageHeight\n } = this.props;\n return (\n <Card className={classNames(classes.category, className)}>\n {\n onChange && (\n <InputHeader\n label={category.label}\n onChange={this.changeLabel}\n onDelete={onDelete}\n imageSupport={imageSupport}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheck}\n maxImageWidth={maxImageWidth}\n maxImageHeight={maxImageHeight}\n />\n )\n }\n <PlaceHolder\n className={classes.placeHolder}\n choices={category.choices}\n onDeleteChoice={onDeleteChoice}\n onDropChoice={onAddChoice}\n categoryId={category.id}\n />\n {\n onDelete && (\n <CardActions className={classes.actions}>\n <DeleteButton label={'delete'} onClick={onDelete} />\n </CardActions>\n )\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 padding: theme.spacing.unit,\n overflow: 'visible'\n },\n editor: {\n flex: '1',\n paddingBottom: theme.spacing.unit * 2\n }\n});\nexport default withStyles(styles)(Category);\n"],"file":"category.js"}
|
|
@@ -100,7 +100,9 @@ var RowLabel = (0, _styles.withStyles)(styles)(function (_ref) {
|
|
|
100
100
|
imageSupport = _ref.imageSupport,
|
|
101
101
|
onChange = _ref.onChange,
|
|
102
102
|
toolbarOpts = _ref.toolbarOpts,
|
|
103
|
-
spellCheck = _ref.spellCheck
|
|
103
|
+
spellCheck = _ref.spellCheck,
|
|
104
|
+
maxImageWidth = _ref.maxImageWidth,
|
|
105
|
+
maxImageHeight = _ref.maxImageHeight;
|
|
104
106
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
105
107
|
style: {
|
|
106
108
|
gridColumn: "1/".concat(categoriesPerRow + 1),
|
|
@@ -115,7 +117,9 @@ var RowLabel = (0, _styles.withStyles)(styles)(function (_ref) {
|
|
|
115
117
|
imageSupport: imageSupport,
|
|
116
118
|
nonEmpty: false,
|
|
117
119
|
toolbarOpts: toolbarOpts,
|
|
118
|
-
spellCheck: spellCheck
|
|
120
|
+
spellCheck: spellCheck,
|
|
121
|
+
maxImageWidth: maxImageWidth,
|
|
122
|
+
maxImageHeight: maxImageHeight
|
|
119
123
|
}));
|
|
120
124
|
});
|
|
121
125
|
|
|
@@ -244,7 +248,9 @@ var Categories = /*#__PURE__*/function (_React$Component) {
|
|
|
244
248
|
imageSupport = _this$props4.imageSupport,
|
|
245
249
|
toolbarOpts = _this$props4.toolbarOpts,
|
|
246
250
|
spellCheck = _this$props4.spellCheck,
|
|
247
|
-
configuration = _this$props4.configuration
|
|
251
|
+
configuration = _this$props4.configuration,
|
|
252
|
+
defaultImageMaxHeight = _this$props4.defaultImageMaxHeight,
|
|
253
|
+
defaultImageMaxWidth = _this$props4.defaultImageMaxWidth;
|
|
248
254
|
var categoriesPerRow = model.categoriesPerRow,
|
|
249
255
|
rowLabels = model.rowLabels,
|
|
250
256
|
errors = model.errors;
|
|
@@ -254,7 +260,11 @@ var Categories = /*#__PURE__*/function (_React$Component) {
|
|
|
254
260
|
categoriesError = _ref2.categoriesError;
|
|
255
261
|
|
|
256
262
|
var _ref3 = configuration || {},
|
|
257
|
-
maxCategories = _ref3.maxCategories
|
|
263
|
+
maxCategories = _ref3.maxCategories,
|
|
264
|
+
_ref3$maxImageWidth = _ref3.maxImageWidth,
|
|
265
|
+
maxImageWidth = _ref3$maxImageWidth === void 0 ? {} : _ref3$maxImageWidth,
|
|
266
|
+
_ref3$maxImageHeight = _ref3.maxImageHeight,
|
|
267
|
+
maxImageHeight = _ref3$maxImageHeight === void 0 ? {} : _ref3$maxImageHeight;
|
|
258
268
|
|
|
259
269
|
var holderStyle = {
|
|
260
270
|
gridTemplateColumns: "repeat(".concat(categoriesPerRow, ", 1fr)")
|
|
@@ -314,7 +324,9 @@ var Categories = /*#__PURE__*/function (_React$Component) {
|
|
|
314
324
|
},
|
|
315
325
|
imageSupport: imageSupport,
|
|
316
326
|
toolbarOpts: toolbarOpts,
|
|
317
|
-
spellCheck: spellCheck
|
|
327
|
+
spellCheck: spellCheck,
|
|
328
|
+
maxImageWidth: maxImageWidth && maxImageWidth.rowLabel || defaultImageMaxWidth,
|
|
329
|
+
maxImageHeight: maxImageHeight && maxImageHeight.rowLabel || defaultImageMaxHeight
|
|
318
330
|
}), /*#__PURE__*/_react["default"].createElement(_category["default"], {
|
|
319
331
|
imageSupport: imageSupport,
|
|
320
332
|
category: category,
|
|
@@ -327,7 +339,9 @@ var Categories = /*#__PURE__*/function (_React$Component) {
|
|
|
327
339
|
spellCheck: spellCheck,
|
|
328
340
|
onDeleteChoice: function onDeleteChoice(choice, choiceIndex) {
|
|
329
341
|
return _this2.deleteChoiceFromCategory(category, choice, choiceIndex);
|
|
330
|
-
}
|
|
342
|
+
},
|
|
343
|
+
maxImageWidth: maxImageWidth && maxImageWidth.categoryLabel || defaultImageMaxWidth,
|
|
344
|
+
maxImageHeight: maxImageHeight && maxImageHeight.categoryLabel || defaultImageMaxHeight
|
|
331
345
|
}));
|
|
332
346
|
})));
|
|
333
347
|
}
|
|
@@ -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","whiteSpace","maxWidth","errorText","color","padding","RowLabel","categoriesPerRow","classes","markup","imageSupport","onChange","toolbarOpts","spellCheck","text","Categories","event","numberValue","parseInt","target","value","props","onModelChanged","model","id","utils","firstAvailableIndex","map","a","data","label","addRowLabel","length","rowLabels","push","concat","category","index","findIndex","splice","correctResponse","c","choice","categoryId","undefined","choiceIndex","val","newRowLabels","className","configuration","errors","associationError","categoriesError","maxCategories","holderStyle","validationMessage","add","marginLeft","min","max","changeCategoryColumns","hasRowLabel","rowIndex","changeRowLabel","change","addChoiceToCategory","deleteChoiceFromCategory","React","Component","PropTypes","shape","func","isRequired","object","string","array"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport TextField from '@material-ui/core/TextField';\nimport Typography from '@material-ui/core/Typography';\nimport { choiceUtils as utils } from '@pie-lib/config-ui';\nimport EditableHtml from '@pie-lib/editable-html';\nimport classNames from 'classnames';\nimport Info from '@material-ui/icons/Info';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport { moveChoiceToCategory, removeCategory, removeChoiceFromCategory } from '@pie-lib/categorize';\n\nimport Category from './category';\nimport Header from '../header';\nimport { generateValidationMessage } from '../../utils';\n\nconst styles = theme => ({\n categories: {\n marginBottom: theme.spacing.unit\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: '12px',\n whiteSpace: 'pre',\n maxWidth: '500px',\n },\n errorText: {\n fontSize: '12px',\n color: 'red',\n padding: '5px 0'\n },\n});\n\nconst RowLabel = withStyles(styles)(({ categoriesPerRow, classes, markup, imageSupport, onChange, toolbarOpts, spellCheck}) => {\n return (\n <div\n style={{\n gridColumn: `1/${categoriesPerRow + 1}`,\n width: '100%'\n }}\n >\n <Typography className={classes.text}>\n Row Label\n </Typography>\n <EditableHtml\n className={classes.rowLabelHolder}\n markup={markup}\n onChange={onChange}\n imageSupport={imageSupport}\n nonEmpty={false}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheck}\n />\n </div>\n );\n});\n\nexport class Categories extends React.Component {\n static propTypes = {\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 onModelChanged: PropTypes.func,\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n toolbarOpts: PropTypes.object\n };\n\n changeCategoryColumns = event => {\n const numberValue = parseInt(event.target.value, 10);\n\n if (numberValue && numberValue >= 1 && numberValue <= 4) {\n this.props.onModelChanged({ categoriesPerRow: numberValue });\n }\n };\n\n add = () => {\n const { model } = this.props;\n const { categoriesPerRow } = model;\n const id = utils.firstAvailableIndex(model.categories.map(a => a.id), 0);\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.props.onModelChanged({\n rowLabels,\n categories: model.categories.concat([data])\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(\n category.id,\n model.correctResponse\n );\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 = (choice, categoryId) => {\n const { model, onModelChanged } = this.props;\n const correctResponse = moveChoiceToCategory(\n choice.id,\n undefined,\n categoryId,\n 0,\n model.correctResponse\n );\n\n onModelChanged({ correctResponse });\n };\n\n deleteChoiceFromCategory = (category, choice, choiceIndex) => {\n const { model, onModelChanged } = this.props;\n const correctResponse = removeChoiceFromCategory(\n choice.id,\n category.id,\n choiceIndex,\n model.correctResponse\n );\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 toolbarOpts,\n spellCheck,\n configuration\n } = this.props;\n\n const { categoriesPerRow, rowLabels, errors } = model;\n const { associationError, categoriesError } = errors || {};\n const { maxCategories } = 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={<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 buttonDisabled={maxCategories && categories && maxCategories === categories.length}\n />\n {associationError && <div className={classes.errorText}>{associationError}</div>}\n {categoriesError && <div className={classes.errorText}>{categoriesError}</div>}\n <div className={classes.row}>\n <TextField\n label=\"Categories per row\"\n type=\"number\"\n inputProps={{\n min: 1,\n max: 4\n }}\n value={categoriesPerRow}\n onChange={this.changeCategoryColumns}\n />\n </div>\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\n key={index}\n >\n {hasRowLabel && (\n <RowLabel\n categoriesPerRow={categoriesPerRow}\n rowIndex={rowIndex}\n markup={rowLabels[rowIndex] || ''}\n onChange={(val) => this.changeRowLabel(val, rowIndex)}\n imageSupport={imageSupport}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheck}\n />\n )}\n <Category\n imageSupport={imageSupport}\n category={category}\n onChange={this.change}\n onDelete={() => this.delete(category)}\n onAddChoice={this.addChoiceToCategory}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheck}\n onDeleteChoice={(choice, choiceIndex) =>\n this.deleteChoiceFromCategory(category, choice, choiceIndex)\n }\n />\n </React.Fragment>\n );\n })}\n </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","whiteSpace","maxWidth","errorText","color","padding","RowLabel","categoriesPerRow","classes","markup","imageSupport","onChange","toolbarOpts","spellCheck","maxImageWidth","maxImageHeight","text","Categories","event","numberValue","parseInt","target","value","props","onModelChanged","model","id","utils","firstAvailableIndex","map","a","data","label","addRowLabel","length","rowLabels","push","concat","category","index","findIndex","splice","correctResponse","c","choice","categoryId","undefined","choiceIndex","val","newRowLabels","className","configuration","defaultImageMaxHeight","defaultImageMaxWidth","errors","associationError","categoriesError","maxCategories","holderStyle","validationMessage","add","marginLeft","min","max","changeCategoryColumns","hasRowLabel","rowIndex","changeRowLabel","change","addChoiceToCategory","deleteChoiceFromCategory","categoryLabel","React","Component","PropTypes","shape","func","isRequired","object","string","array"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport TextField from '@material-ui/core/TextField';\nimport Typography from '@material-ui/core/Typography';\nimport { choiceUtils as utils } from '@pie-lib/config-ui';\nimport EditableHtml from '@pie-lib/editable-html';\nimport classNames from 'classnames';\nimport Info from '@material-ui/icons/Info';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport { moveChoiceToCategory, removeCategory, removeChoiceFromCategory } from '@pie-lib/categorize';\n\nimport Category from './category';\nimport Header from '../header';\nimport { generateValidationMessage } from '../../utils';\n\nconst styles = theme => ({\n categories: {\n marginBottom: theme.spacing.unit\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: '12px',\n whiteSpace: 'pre',\n maxWidth: '500px',\n },\n errorText: {\n fontSize: '12px',\n color: 'red',\n padding: '5px 0'\n },\n});\n\nconst RowLabel = withStyles(styles)(({ categoriesPerRow, classes, markup, imageSupport, onChange, toolbarOpts, spellCheck, maxImageWidth, maxImageHeight}) => {\n return (\n <div\n style={{\n gridColumn: `1/${categoriesPerRow + 1}`,\n width: '100%'\n }}\n >\n <Typography className={classes.text}>\n Row Label\n </Typography>\n <EditableHtml\n className={classes.rowLabelHolder}\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 />\n </div>\n );\n});\n\nexport class Categories extends React.Component {\n static propTypes = {\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 onModelChanged: PropTypes.func,\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n toolbarOpts: PropTypes.object\n };\n\n changeCategoryColumns = event => {\n const numberValue = parseInt(event.target.value, 10);\n\n if (numberValue && numberValue >= 1 && numberValue <= 4) {\n this.props.onModelChanged({ categoriesPerRow: numberValue });\n }\n };\n\n add = () => {\n const { model } = this.props;\n const { categoriesPerRow } = model;\n const id = utils.firstAvailableIndex(model.categories.map(a => a.id), 0);\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.props.onModelChanged({\n rowLabels,\n categories: model.categories.concat([data])\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(\n category.id,\n model.correctResponse\n );\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 = (choice, categoryId) => {\n const { model, onModelChanged } = this.props;\n const correctResponse = moveChoiceToCategory(\n choice.id,\n undefined,\n categoryId,\n 0,\n model.correctResponse\n );\n\n onModelChanged({ correctResponse });\n };\n\n deleteChoiceFromCategory = (category, choice, choiceIndex) => {\n const { model, onModelChanged } = this.props;\n const correctResponse = removeChoiceFromCategory(\n choice.id,\n category.id,\n choiceIndex,\n model.correctResponse\n );\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 toolbarOpts,\n spellCheck,\n configuration,\n defaultImageMaxHeight,\n defaultImageMaxWidth\n } = this.props;\n\n const { categoriesPerRow, rowLabels, errors } = model;\n const { associationError, categoriesError } = errors || {};\n const {\n maxCategories,\n maxImageWidth = {},\n maxImageHeight = {}\n } = 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={<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 buttonDisabled={maxCategories && categories && maxCategories === categories.length}\n />\n {associationError && <div className={classes.errorText}>{associationError}</div>}\n {categoriesError && <div className={classes.errorText}>{categoriesError}</div>}\n <div className={classes.row}>\n <TextField\n label=\"Categories per row\"\n type=\"number\"\n inputProps={{\n min: 1,\n max: 4\n }}\n value={categoriesPerRow}\n onChange={this.changeCategoryColumns}\n />\n </div>\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\n key={index}\n >\n {hasRowLabel && (\n <RowLabel\n categoriesPerRow={categoriesPerRow}\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 />\n )}\n <Category\n imageSupport={imageSupport}\n category={category}\n onChange={this.change}\n onDelete={() => this.delete(category)}\n onAddChoice={this.addChoiceToCategory}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheck}\n onDeleteChoice={(choice, choiceIndex) =>\n this.deleteChoiceFromCategory(category, choice, choiceIndex)\n }\n maxImageWidth={maxImageWidth && maxImageWidth.categoryLabel || defaultImageMaxWidth}\n maxImageHeight={maxImageHeight && maxImageHeight.categoryLabel || defaultImageMaxHeight}\n />\n </React.Fragment>\n );\n })}\n </div>\n </div>\n );\n }\n}\n\nexport default withStyles(styles)(Categories);\n"],"file":"index.js"}
|
|
@@ -114,7 +114,9 @@ var Choice = /*#__PURE__*/function (_React$Component) {
|
|
|
114
114
|
imageSupport = _this$props3.imageSupport,
|
|
115
115
|
spellCheck = _this$props3.spellCheck,
|
|
116
116
|
toolbarOpts = _this$props3.toolbarOpts,
|
|
117
|
-
error = _this$props3.error
|
|
117
|
+
error = _this$props3.error,
|
|
118
|
+
maxImageWidth = _this$props3.maxImageWidth,
|
|
119
|
+
maxImageHeight = _this$props3.maxImageHeight;
|
|
118
120
|
var draggable = canDrag(this.props);
|
|
119
121
|
return /*#__PURE__*/_react["default"].createElement(_Card["default"], {
|
|
120
122
|
className: (0, _classnames["default"])(classes.choice, className)
|
|
@@ -131,7 +133,9 @@ var Choice = /*#__PURE__*/function (_React$Component) {
|
|
|
131
133
|
onDelete: onDelete,
|
|
132
134
|
toolbarOpts: toolbarOpts,
|
|
133
135
|
spellCheck: spellCheck,
|
|
134
|
-
error: error
|
|
136
|
+
error: error,
|
|
137
|
+
maxImageWidth: maxImageWidth,
|
|
138
|
+
maxImageHeight: maxImageHeight
|
|
135
139
|
}), error && /*#__PURE__*/_react["default"].createElement("div", {
|
|
136
140
|
className: classes.errorText
|
|
137
141
|
}, error))), /*#__PURE__*/_react["default"].createElement(_CardActions["default"], {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/design/choices/choice.jsx"],"names":["log","canDrag","props","count","choice","categoryCount","correctResponseCount","Choice","content","onChange","classes","className","onDelete","connectDragSource","connectDragPreview","imageSupport","spellCheck","toolbarOpts","error","draggable","actions","dragHandle","dragDisabled","changeContent","errorText","changeCategoryCount","React","Component","PropTypes","object","isRequired","string","func","number","shape","add","styles","theme","padding","justifyContent","spacing","unit","overflow","cursor","fontSize","color","paddingBottom","StyledChoice","spec","beginDrag","out","id","endDrag","monitor","didDrop","item","getItem","categoryId","onRemoveChoice","DraggableChoice","uid","connect","dragSource","dragPreview","isDragging","withUid"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;AAEA,IAAMA,GAAG,GAAG,uBAAM,0CAAN,CAAZ;;AAEA,IAAMC,OAAO,GAAG,SAAVA,OAAU,CAAAC,KAAK,EAAI;AACvB,MAAMC,KAAK,GAAGD,KAAK,CAACE,MAAN,CAAaC,aAAb,IAA8B,CAA5C;;AACA,MAAIF,KAAK,KAAK,CAAd,EAAiB;AACf,WAAO,IAAP;AACD,GAFD,MAEO;AACL,WAAOD,KAAK,CAACI,oBAAN,GAA6BH,KAApC;AACD;AACF,CAPD;;IASaI,M;;;;;;;;;;;;;;;sGAoBK,UAAAC,OAAO,EAAI;AACzB,wBAA6B,MAAKN,KAAlC;AAAA,UAAQO,QAAR,eAAQA,QAAR;AAAA,UAAkBL,MAAlB,eAAkBA,MAAlB;AACAA,MAAAA,MAAM,CAACI,OAAP,GAAiBA,OAAjB;AACAC,MAAAA,QAAQ,CAACL,MAAD,CAAR;AACD,K;4GAEqB,YAAM;AAC1B,yBAA6B,MAAKF,KAAlC;AAAA,UAAQO,QAAR,gBAAQA,QAAR;AAAA,UAAkBL,MAAlB,gBAAkBA,MAAlB;;AACA,UAAIA,MAAM,CAACC,aAAP,KAAyB,CAA7B,EAAgC;AAC9BD,QAAAA,MAAM,CAACC,aAAP,GAAuB,CAAvB;AACD,OAFD,MAEO;AACLD,QAAAA,MAAM,CAACC,aAAP,GAAuB,CAAvB;AACD;;AACDI,MAAAA,QAAQ,CAACL,MAAD,CAAR;AACD,K;;;;;;WAED,kBAAS;AACP,yBAWI,KAAKF,KAXT;AAAA,UACEQ,OADF,gBACEA,OADF;AAAA,UAEEC,SAFF,gBAEEA,SAFF;AAAA,UAGEP,MAHF,gBAGEA,MAHF;AAAA,UAIEQ,QAJF,gBAIEA,QAJF;AAAA,UAKEC,iBALF,gBAKEA,iBALF;AAAA,UAMEC,kBANF,gBAMEA,kBANF;AAAA,UAOEC,YAPF,gBAOEA,YAPF;AAAA,UAQEC,UARF,gBAQEA,UARF;AAAA,UASEC,WATF,gBASEA,WATF;AAAA,UAUEC,KAVF,gBAUEA,KAVF;AAaA,UAAMC,SAAS,GAAGlB,OAAO,CAAC,KAAKC,KAAN,CAAzB;AAEA,0BACE,gCAAC,gBAAD;AAAM,QAAA,SAAS,EAAE,4BAAWQ,OAAO,CAACN,MAAnB,EAA2BO,SAA3B;AAAjB,sBACE,gCAAC,uBAAD;AAAa,QAAA,SAAS,EAAED,OAAO,CAACU;AAAhC,SACGP,iBAAiB,eAChB;AACE,QAAA,SAAS,EAAE,4BACTH,OAAO,CAACW,UADC,EAETF,SAAS,KAAK,KAAd,IAAuBT,OAAO,CAACY,YAFtB;AADb,sBAME,gCAAC,sBAAD;AAAY,QAAA,KAAK,EAAEH,SAAS,GAAG,SAAH,GAAe;AAA3C,QANF,CADgB,CADpB,CADF,EAaGL,kBAAkB,eACjB,2DACE,gCAAC,uBAAD;AACE,QAAA,YAAY,EAAEC,YADhB;AAEE,QAAA,KAAK,EAAEX,MAAM,CAACI,OAFhB;AAGE,QAAA,QAAQ,EAAE,KAAKe,aAHjB;AAIE,QAAA,QAAQ,EAAEX,QAJZ;AAKE,QAAA,WAAW,EAAEK,WALf;AAME,QAAA,UAAU,EAAED,UANd;AAOE,QAAA,KAAK,EAAEE;AAPT,QADF,EAUGA,KAAK,iBAAI;AAAK,QAAA,SAAS,EAAER,OAAO,CAACc;AAAxB,SAAoCN,KAApC,CAVZ,CADiB,CAbrB,eA4BE,gCAAC,uBAAD;AAAa,QAAA,SAAS,EAAER,OAAO,CAACU;AAAhC,sBACE,gCAAC,qBAAD;AAAc,QAAA,KAAK,EAAE,QAArB;AAA+B,QAAA,OAAO,EAAER;AAAxC,QADF,eAEE,gCAAC,kBAAD;AACE,QAAA,IAAI,MADN;AAEE,QAAA,KAAK,EAAE,sBAFT;AAGE,QAAA,OAAO,EAAER,MAAM,CAACC,aAAP,KAAyB,CAHpC;AAIE,QAAA,QAAQ,EAAE,KAAKoB;AAJjB,QAFF,CA5BF,CADF;AAwCD;;;EA5FyBC,kBAAMC,S;;;iCAArBpB,M,eACQ;AACjBG,EAAAA,OAAO,EAAEkB,sBAAUC,MAAV,CAAiBC,UADT;AAEjBnB,EAAAA,SAAS,EAAEiB,sBAAUG,MAFJ;AAGjB3B,EAAAA,MAAM,EAAEwB,sBAAUC,MAAV,CAAiBC,UAHR;AAIjBrB,EAAAA,QAAQ,EAAEmB,sBAAUI,IAAV,CAAeF,UAJR;AAKjBlB,EAAAA,QAAQ,EAAEgB,sBAAUI,IAAV,CAAeF,UALR;AAMjBjB,EAAAA,iBAAiB,EAAEe,sBAAUI,IAAV,CAAeF,UANjB;AAOjBhB,EAAAA,kBAAkB,EAAEc,sBAAUI,IAAV,CAAeF,UAPlB;AAQjBxB,EAAAA,oBAAoB,EAAEsB,sBAAUK,MAAV,CAAiBH,UARtB;AASjBf,EAAAA,YAAY,EAAEa,sBAAUM,KAAV,CAAgB;AAC5BC,IAAAA,GAAG,EAAEP,sBAAUI,IAAV,CAAeF,UADQ;AAE5B,cAAQF,sBAAUI,IAAV,CAAeF;AAFK,GAAhB,CATG;AAajBb,EAAAA,WAAW,EAAEW,sBAAUC,MAbN;AAcjBX,EAAAA,KAAK,EAAEU,sBAAUG;AAdA,C;iCADRxB,M,kBAkBW,E;;AA4ExB,IAAM6B,MAAM,GAAG,SAATA,MAAS,CAAAC,KAAK;AAAA,SAAK;AACvBjB,IAAAA,OAAO,EAAE;AACPkB,MAAAA,OAAO,EAAE,CADF;AAEPC,MAAAA,cAAc,EAAE;AAFT,KADc;AAKvBnC,IAAAA,MAAM,EAAE;AACNkC,MAAAA,OAAO,EAAED,KAAK,CAACG,OAAN,CAAcC,IADjB;AAENC,MAAAA,QAAQ,EAAE;AAFJ,KALe;AASvBrB,IAAAA,UAAU,EAAE;AACVsB,MAAAA,MAAM,EAAE;AADE,KATW;AAYvBrB,IAAAA,YAAY,EAAE;AACZqB,MAAAA,MAAM,EAAE;AADI,KAZS;AAevBnB,IAAAA,SAAS,EAAE;AACToB,MAAAA,QAAQ,EAAE,MADD;AAETC,MAAAA,KAAK,EAAE,KAFE;AAGTC,MAAAA,aAAa,EAAE;AAHN;AAfY,GAAL;AAAA,CAApB;;AAsBA,IAAMC,YAAY,GAAG,wBAAWX,MAAX,EAAmB7B,MAAnB,CAArB;AAEO,IAAMyC,IAAI,GAAG;AAClB/C,EAAAA,OAAO,EAAPA,OADkB;AAElBgD,EAAAA,SAAS,EAAE,mBAAA/C,KAAK,EAAI;AAClB,QAAMgD,GAAG,GAAG;AACVC,MAAAA,EAAE,EAAEjD,KAAK,CAACE,MAAN,CAAa+C;AADP,KAAZ;AAGAnD,IAAAA,GAAG,CAAC,kBAAD,EAAqBkD,GAArB,CAAH;AACA,WAAOA,GAAP;AACD,GARiB;AASlBE,EAAAA,OAAO,EAAE,iBAAClD,KAAD,EAAQmD,OAAR,EAAoB;AAC3B,QAAI,CAACA,OAAO,CAACC,OAAR,EAAL,EAAwB;AACtB,UAAMC,IAAI,GAAGF,OAAO,CAACG,OAAR,EAAb;;AACA,UAAID,IAAI,CAACE,UAAT,EAAqB;AACnBzD,QAAAA,GAAG,CAAC,8BAAD,CAAH;AACAE,QAAAA,KAAK,CAACwD,cAAN,CAAqBH,IAArB;AACD;AACF;AACF;AAjBiB,CAAb;;AAoBP,IAAMI,eAAe,GAAG,0BACtB;AAAA,MAAGC,GAAH,QAAGA,GAAH;AAAA,SAAaA,GAAb;AAAA,CADsB,EAEtBZ,IAFsB,EAGtB,UAACa,OAAD,EAAUR,OAAV;AAAA,SAAuB;AACrBxC,IAAAA,iBAAiB,EAAEgD,OAAO,CAACC,UAAR,EADE;AAErBhD,IAAAA,kBAAkB,EAAE+C,OAAO,CAACE,WAAR,EAFC;AAGrBC,IAAAA,UAAU,EAAEX,OAAO,CAACW,UAAR;AAHS,GAAvB;AAAA,CAHsB,EAQtBjB,YARsB,CAAxB;;eAUea,UAAIK,OAAJ,CAAYN,eAAZ,C","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 CardActions from '@material-ui/core/CardActions';\nimport InputHeader from '../input-header';\nimport { Checkbox } from '@pie-lib/config-ui';\nimport { DeleteButton } from '../buttons';\nimport DragHandle from '@material-ui/icons/DragHandle';\nimport { DragSource } from 'react-dnd';\nimport debug from 'debug';\nimport { uid } from '@pie-lib/drag';\n\nconst log = debug('@pie-element:categorize:configure:choice');\n\nconst canDrag = props => {\n const count = props.choice.categoryCount || 0;\n if (count === 0) {\n return true;\n } else {\n return props.correctResponseCount < count;\n }\n};\n\nexport class Choice extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n choice: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n onDelete: PropTypes.func.isRequired,\n connectDragSource: PropTypes.func.isRequired,\n connectDragPreview: PropTypes.func.isRequired,\n correctResponseCount: PropTypes.number.isRequired,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired\n }),\n toolbarOpts: PropTypes.object,\n error: PropTypes.string\n };\n\n static defaultProps = {};\n\n changeContent = content => {\n const { onChange, choice } = this.props;\n choice.content = content;\n onChange(choice);\n };\n\n changeCategoryCount = () => {\n const { onChange, choice } = this.props;\n if (choice.categoryCount === 1) {\n choice.categoryCount = 0;\n } else {\n choice.categoryCount = 1;\n }\n onChange(choice);\n };\n\n render() {\n const {\n classes,\n className,\n choice,\n onDelete,\n connectDragSource,\n connectDragPreview,\n imageSupport,\n spellCheck,\n toolbarOpts,\n error\n } = this.props;\n\n const draggable = canDrag(this.props);\n\n return (\n <Card className={classNames(classes.choice, className)}>\n <CardActions className={classes.actions}>\n {connectDragSource(\n <span\n className={classNames(\n classes.dragHandle,\n draggable === false && classes.dragDisabled\n )}\n >\n <DragHandle color={draggable ? 'primary' : 'disabled'} />\n </span>\n )}\n </CardActions>\n {connectDragPreview(\n <span>\n <InputHeader\n imageSupport={imageSupport}\n label={choice.content}\n onChange={this.changeContent}\n onDelete={onDelete}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheck}\n error={error}\n />\n {error && <div className={classes.errorText}>{error}</div>}\n </span>\n )}\n\n <CardActions className={classes.actions}>\n <DeleteButton label={'delete'} onClick={onDelete} />\n <Checkbox\n mini\n label={'Remove after placing'}\n checked={choice.categoryCount === 1}\n onChange={this.changeCategoryCount}\n />\n </CardActions>\n </Card>\n );\n }\n}\nconst styles = theme => ({\n actions: {\n padding: 0,\n justifyContent: 'space-between'\n },\n choice: {\n padding: theme.spacing.unit,\n overflow: 'visible'\n },\n dragHandle: {\n cursor: 'move'\n },\n dragDisabled: {\n cursor: 'inherit'\n },\n errorText: {\n fontSize: '11px',\n color: 'red',\n paddingBottom: '5px'\n },\n});\n\nconst StyledChoice = withStyles(styles)(Choice);\n\nexport const spec = {\n canDrag,\n beginDrag: props => {\n const out = {\n id: props.choice.id\n };\n log('[beginDrag] out:', out);\n return out;\n },\n endDrag: (props, monitor) => {\n if (!monitor.didDrop()) {\n const item = monitor.getItem();\n if (item.categoryId) {\n log('wasnt droppped - what to do?');\n props.onRemoveChoice(item);\n }\n }\n }\n};\n\nconst DraggableChoice = DragSource(\n ({ uid }) => uid,\n spec,\n (connect, monitor) => ({\n connectDragSource: connect.dragSource(),\n connectDragPreview: connect.dragPreview(),\n isDragging: monitor.isDragging()\n })\n)(StyledChoice);\n\nexport default uid.withUid(DraggableChoice);\n"],"file":"choice.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/design/choices/choice.jsx"],"names":["log","canDrag","props","count","choice","categoryCount","correctResponseCount","Choice","content","onChange","classes","className","onDelete","connectDragSource","connectDragPreview","imageSupport","spellCheck","toolbarOpts","error","maxImageWidth","maxImageHeight","draggable","actions","dragHandle","dragDisabled","changeContent","errorText","changeCategoryCount","React","Component","PropTypes","object","isRequired","string","func","number","shape","add","styles","theme","padding","justifyContent","spacing","unit","overflow","cursor","fontSize","color","paddingBottom","StyledChoice","spec","beginDrag","out","id","endDrag","monitor","didDrop","item","getItem","categoryId","onRemoveChoice","DraggableChoice","uid","connect","dragSource","dragPreview","isDragging","withUid"],"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 CardActions from '@material-ui/core/CardActions';\nimport InputHeader from '../input-header';\nimport { Checkbox } from '@pie-lib/config-ui';\nimport { DeleteButton } from '../buttons';\nimport DragHandle from '@material-ui/icons/DragHandle';\nimport { DragSource } from 'react-dnd';\nimport debug from 'debug';\nimport { uid } from '@pie-lib/drag';\n\nconst log = debug('@pie-element:categorize:configure:choice');\n\nconst canDrag = props => {\n const count = props.choice.categoryCount || 0;\n if (count === 0) {\n return true;\n } else {\n return props.correctResponseCount < count;\n }\n};\n\nexport class Choice extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n choice: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n onDelete: PropTypes.func.isRequired,\n connectDragSource: PropTypes.func.isRequired,\n connectDragPreview: PropTypes.func.isRequired,\n correctResponseCount: PropTypes.number.isRequired,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired\n }),\n toolbarOpts: PropTypes.object,\n error: PropTypes.string\n };\n\n static defaultProps = {};\n\n changeContent = content => {\n const { onChange, choice } = this.props;\n choice.content = content;\n onChange(choice);\n };\n\n changeCategoryCount = () => {\n const { onChange, choice } = this.props;\n if (choice.categoryCount === 1) {\n choice.categoryCount = 0;\n } else {\n choice.categoryCount = 1;\n }\n onChange(choice);\n };\n\n render() {\n const {\n classes,\n className,\n choice,\n onDelete,\n connectDragSource,\n connectDragPreview,\n imageSupport,\n spellCheck,\n toolbarOpts,\n error,\n maxImageWidth,\n maxImageHeight\n } = this.props;\n\n const draggable = canDrag(this.props);\n\n return (\n <Card className={classNames(classes.choice, className)}>\n <CardActions className={classes.actions}>\n {connectDragSource(\n <span\n className={classNames(\n classes.dragHandle,\n draggable === false && classes.dragDisabled\n )}\n >\n <DragHandle color={draggable ? 'primary' : 'disabled'} />\n </span>\n )}\n </CardActions>\n {connectDragPreview(\n <span>\n <InputHeader\n imageSupport={imageSupport}\n label={choice.content}\n onChange={this.changeContent}\n onDelete={onDelete}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheck}\n error={error}\n maxImageWidth={maxImageWidth}\n maxImageHeight={maxImageHeight}\n />\n {error && <div className={classes.errorText}>{error}</div>}\n </span>\n )}\n\n <CardActions className={classes.actions}>\n <DeleteButton label={'delete'} onClick={onDelete} />\n <Checkbox\n mini\n label={'Remove after placing'}\n checked={choice.categoryCount === 1}\n onChange={this.changeCategoryCount}\n />\n </CardActions>\n </Card>\n );\n }\n}\nconst styles = theme => ({\n actions: {\n padding: 0,\n justifyContent: 'space-between'\n },\n choice: {\n padding: theme.spacing.unit,\n overflow: 'visible'\n },\n dragHandle: {\n cursor: 'move'\n },\n dragDisabled: {\n cursor: 'inherit'\n },\n errorText: {\n fontSize: '11px',\n color: 'red',\n paddingBottom: '5px'\n },\n});\n\nconst StyledChoice = withStyles(styles)(Choice);\n\nexport const spec = {\n canDrag,\n beginDrag: props => {\n const out = {\n id: props.choice.id\n };\n log('[beginDrag] out:', out);\n return out;\n },\n endDrag: (props, monitor) => {\n if (!monitor.didDrop()) {\n const item = monitor.getItem();\n if (item.categoryId) {\n log('wasnt droppped - what to do?');\n props.onRemoveChoice(item);\n }\n }\n }\n};\n\nconst DraggableChoice = DragSource(\n ({ uid }) => uid,\n spec,\n (connect, monitor) => ({\n connectDragSource: connect.dragSource(),\n connectDragPreview: connect.dragPreview(),\n isDragging: monitor.isDragging()\n })\n)(StyledChoice);\n\nexport default uid.withUid(DraggableChoice);\n"],"file":"choice.js"}
|
|
@@ -131,7 +131,9 @@ var Choices = /*#__PURE__*/function (_React$Component) {
|
|
|
131
131
|
onModelChanged = _this$props4.onModelChanged,
|
|
132
132
|
spellCheck = _this$props4.spellCheck,
|
|
133
133
|
toolbarOpts = _this$props4.toolbarOpts,
|
|
134
|
-
configuration = _this$props4.configuration
|
|
134
|
+
configuration = _this$props4.configuration,
|
|
135
|
+
defaultImageMaxWidth = _this$props4.defaultImageMaxWidth,
|
|
136
|
+
defaultImageMaxHeight = _this$props4.defaultImageMaxHeight;
|
|
135
137
|
var errors = model.errors;
|
|
136
138
|
|
|
137
139
|
var _ref = errors || {},
|
|
@@ -139,7 +141,11 @@ var Choices = /*#__PURE__*/function (_React$Component) {
|
|
|
139
141
|
choicesErrors = _ref.choicesErrors;
|
|
140
142
|
|
|
141
143
|
var _ref2 = configuration || {},
|
|
142
|
-
maxChoices = _ref2.maxChoices
|
|
144
|
+
maxChoices = _ref2.maxChoices,
|
|
145
|
+
_ref2$maxImageWidth = _ref2.maxImageWidth,
|
|
146
|
+
maxImageWidth = _ref2$maxImageWidth === void 0 ? {} : _ref2$maxImageWidth,
|
|
147
|
+
_ref2$maxImageHeight = _ref2.maxImageHeight,
|
|
148
|
+
maxImageHeight = _ref2$maxImageHeight === void 0 ? {} : _ref2$maxImageHeight;
|
|
143
149
|
|
|
144
150
|
var categoryCountIsOne = this.allChoicesHaveCount(1);
|
|
145
151
|
var choiceHolderStyle = {
|
|
@@ -175,7 +181,9 @@ var Choices = /*#__PURE__*/function (_React$Component) {
|
|
|
175
181
|
},
|
|
176
182
|
toolbarOpts: toolbarOpts,
|
|
177
183
|
spellCheck: spellCheck,
|
|
178
|
-
error: choicesErrors && choicesErrors[h.id]
|
|
184
|
+
error: choicesErrors && choicesErrors[h.id],
|
|
185
|
+
maxImageWidth: maxImageWidth && maxImageWidth.choice || defaultImageMaxWidth,
|
|
186
|
+
maxImageHeight: maxImageHeight && maxImageHeight.choice || defaultImageMaxHeight
|
|
179
187
|
});
|
|
180
188
|
})), /*#__PURE__*/_react["default"].createElement(_buttons.Divider, null));
|
|
181
189
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/design/choices/index.jsx"],"names":["Choices","choice","props","choices","onModelChanged","index","findIndex","h","id","splice","count","c","categoryCount","model","utils","firstAvailableIndex","map","a","data","content","concat","correctResponse","classes","className","imageSupport","spellCheck","toolbarOpts","configuration","errors","choicesError","choicesErrors","maxChoices","categoryCountIsOne","allChoicesHaveCount","choiceHolderStyle","gridTemplateColumns","categoriesPerRow","addChoice","length","errorText","choiceHolder","correctResponseCount","changeChoice","deleteChoice","React","Component","PropTypes","object","isRequired","string","array","func","shape","add","styles","theme","paddingTop","spacing","unit","paddingBottom","display","gridRowGap","gridColumnGap","label","fontSize","color","padding"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { Divider } from '../buttons';\nimport classNames from 'classnames';\nimport Choice from './choice';\nimport Header from '../header';\nimport every from 'lodash/every';\nimport Config from './config';\nimport { choiceUtils as utils } from '@pie-lib/config-ui';\nimport { removeAllChoices } from '@pie-lib/categorize';\n\nexport class Choices extends React.Component {\n static propTypes = {\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n choices: PropTypes.array.isRequired,\n onModelChanged: PropTypes.func.isRequired,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired\n }),\n toolbarOpts: PropTypes.object\n };\n\n static defaultProps = {};\n\n changeChoice = choice => {\n const { choices, onModelChanged } = this.props;\n const index = choices.findIndex(h => h.id === choice.id);\n if (index !== -1) {\n choices.splice(index, 1, choice);\n onModelChanged({ choices });\n }\n };\n\n allChoicesHaveCount = count => {\n const { choices } = this.props;\n return every(choices, c => c.categoryCount === count);\n };\n\n addChoice = () => {\n const { onModelChanged, model } = this.props;\n\n const id = utils.firstAvailableIndex(model.choices.map(a => a.id), 0);\n const data = { id, content: 'Choice ' + id };\n\n onModelChanged({ choices: model.choices.concat([data]) });\n };\n\n deleteChoice = choice => {\n const { model, onModelChanged } = this.props;\n const index = model.choices.findIndex(a => a.id === choice.id);\n if (index !== -1) {\n model.choices.splice(index, 1);\n model.correctResponse = removeAllChoices(\n choice.id,\n model.correctResponse\n );\n onModelChanged(model);\n }\n };\n\n render() {\n const {\n classes,\n className,\n choices,\n model,\n imageSupport,\n onModelChanged,\n spellCheck,\n toolbarOpts,\n configuration,\n } = this.props;\n const { errors } = model;\n const { choicesError, choicesErrors } = errors || {};\n const { maxChoices } = configuration || {};\n\n const categoryCountIsOne = this.allChoicesHaveCount(1);\n const choiceHolderStyle = {\n gridTemplateColumns: `repeat(${model.categoriesPerRow}, 1fr)`\n };\n\n return (\n <div className={classNames(classes.choices, className)}>\n <Header\n label=\"Choices\"\n buttonLabel=\"ADD A CHOICE\"\n onAdd={this.addChoice}\n buttonDisabled={maxChoices && choices && maxChoices === choices.length}\n />\n {choicesError && <div className={classes.errorText}>{choicesError}</div>}\n <Config\n config={model}\n categoryCountIsOne={categoryCountIsOne}\n onModelChanged={onModelChanged}\n allChoicesHaveCount={this.allChoicesHaveCount}\n spellCheck={spellCheck}\n />\n <div className={classes.choiceHolder} style={choiceHolderStyle}>\n {choices.map((h, index) => (\n <Choice\n choice={h}\n correctResponseCount={h.correctResponseCount}\n key={index}\n imageSupport={imageSupport}\n onChange={this.changeChoice}\n onDelete={() => this.deleteChoice(h)}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheck}\n error={choicesErrors && choicesErrors[h.id]}\n />\n ))}\n </div>\n <Divider />\n </div>\n );\n }\n}\nconst styles = theme => ({\n choiceHolder: {\n paddingTop: theme.spacing.unit,\n paddingBottom: theme.spacing.unit,\n display: 'grid',\n gridRowGap: `${theme.spacing.unit}px`,\n gridColumnGap: `${theme.spacing.unit}px`\n },\n choices: {\n paddingTop: theme.spacing.unit * 2,\n paddingBottom: theme.spacing.unit * 2\n },\n label: {},\n errorText: {\n fontSize: '12px',\n color: 'red',\n padding: '5px 0'\n },\n});\nexport default withStyles(styles)(Choices);\n"],"file":"index.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/design/choices/index.jsx"],"names":["Choices","choice","props","choices","onModelChanged","index","findIndex","h","id","splice","count","c","categoryCount","model","utils","firstAvailableIndex","map","a","data","content","concat","correctResponse","classes","className","imageSupport","spellCheck","toolbarOpts","configuration","defaultImageMaxWidth","defaultImageMaxHeight","errors","choicesError","choicesErrors","maxChoices","maxImageWidth","maxImageHeight","categoryCountIsOne","allChoicesHaveCount","choiceHolderStyle","gridTemplateColumns","categoriesPerRow","addChoice","length","errorText","choiceHolder","correctResponseCount","changeChoice","deleteChoice","React","Component","PropTypes","object","isRequired","string","array","func","shape","add","styles","theme","paddingTop","spacing","unit","paddingBottom","display","gridRowGap","gridColumnGap","label","fontSize","color","padding"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { Divider } from '../buttons';\nimport classNames from 'classnames';\nimport Choice from './choice';\nimport Header from '../header';\nimport every from 'lodash/every';\nimport Config from './config';\nimport { choiceUtils as utils } from '@pie-lib/config-ui';\nimport { removeAllChoices } from '@pie-lib/categorize';\n\nexport class Choices extends React.Component {\n static propTypes = {\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n choices: PropTypes.array.isRequired,\n onModelChanged: PropTypes.func.isRequired,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired\n }),\n toolbarOpts: PropTypes.object\n };\n\n static defaultProps = {};\n\n changeChoice = choice => {\n const { choices, onModelChanged } = this.props;\n const index = choices.findIndex(h => h.id === choice.id);\n if (index !== -1) {\n choices.splice(index, 1, choice);\n onModelChanged({ choices });\n }\n };\n\n allChoicesHaveCount = count => {\n const { choices } = this.props;\n return every(choices, c => c.categoryCount === count);\n };\n\n addChoice = () => {\n const { onModelChanged, model } = this.props;\n\n const id = utils.firstAvailableIndex(model.choices.map(a => a.id), 0);\n const data = { id, content: 'Choice ' + id };\n\n onModelChanged({ choices: model.choices.concat([data]) });\n };\n\n deleteChoice = choice => {\n const { model, onModelChanged } = this.props;\n const index = model.choices.findIndex(a => a.id === choice.id);\n if (index !== -1) {\n model.choices.splice(index, 1);\n model.correctResponse = removeAllChoices(\n choice.id,\n model.correctResponse\n );\n onModelChanged(model);\n }\n };\n\n render() {\n const {\n classes,\n className,\n choices,\n model,\n imageSupport,\n onModelChanged,\n spellCheck,\n toolbarOpts,\n configuration,\n defaultImageMaxWidth,\n defaultImageMaxHeight\n } = this.props;\n const { errors } = model;\n const { choicesError, choicesErrors } = errors || {};\n const {\n maxChoices,\n maxImageWidth = {},\n maxImageHeight = {}\n } = configuration || {};\n\n const categoryCountIsOne = this.allChoicesHaveCount(1);\n const choiceHolderStyle = {\n gridTemplateColumns: `repeat(${model.categoriesPerRow}, 1fr)`\n };\n\n return (\n <div className={classNames(classes.choices, className)}>\n <Header\n label=\"Choices\"\n buttonLabel=\"ADD A CHOICE\"\n onAdd={this.addChoice}\n buttonDisabled={maxChoices && choices && maxChoices === choices.length}\n />\n {choicesError && <div className={classes.errorText}>{choicesError}</div>}\n <Config\n config={model}\n categoryCountIsOne={categoryCountIsOne}\n onModelChanged={onModelChanged}\n allChoicesHaveCount={this.allChoicesHaveCount}\n spellCheck={spellCheck}\n />\n <div className={classes.choiceHolder} style={choiceHolderStyle}>\n {choices.map((h, index) => (\n <Choice\n choice={h}\n correctResponseCount={h.correctResponseCount}\n key={index}\n imageSupport={imageSupport}\n onChange={this.changeChoice}\n onDelete={() => this.deleteChoice(h)}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheck}\n error={choicesErrors && choicesErrors[h.id]}\n maxImageWidth={maxImageWidth && maxImageWidth.choice || defaultImageMaxWidth}\n maxImageHeight={maxImageHeight && maxImageHeight.choice || defaultImageMaxHeight}\n />\n ))}\n </div>\n <Divider />\n </div>\n );\n }\n}\nconst styles = theme => ({\n choiceHolder: {\n paddingTop: theme.spacing.unit,\n paddingBottom: theme.spacing.unit,\n display: 'grid',\n gridRowGap: `${theme.spacing.unit}px`,\n gridColumnGap: `${theme.spacing.unit}px`\n },\n choices: {\n paddingTop: theme.spacing.unit * 2,\n paddingBottom: theme.spacing.unit * 2\n },\n label: {},\n errorText: {\n fontSize: '12px',\n color: 'red',\n padding: '5px 0'\n },\n});\nexport default withStyles(styles)(Choices);\n"],"file":"index.js"}
|
|
@@ -189,7 +189,11 @@ var Design = /*#__PURE__*/function (_React$Component) {
|
|
|
189
189
|
_ref$prompt = _ref.prompt,
|
|
190
190
|
prompt = _ref$prompt === void 0 ? {} : _ref$prompt,
|
|
191
191
|
_ref$spellCheck = _ref.spellCheck,
|
|
192
|
-
spellCheck = _ref$spellCheck === void 0 ? {} : _ref$spellCheck
|
|
192
|
+
spellCheck = _ref$spellCheck === void 0 ? {} : _ref$spellCheck,
|
|
193
|
+
_ref$maxImageWidth = _ref.maxImageWidth,
|
|
194
|
+
maxImageWidth = _ref$maxImageWidth === void 0 ? {} : _ref$maxImageWidth,
|
|
195
|
+
_ref$maxImageHeight = _ref.maxImageHeight,
|
|
196
|
+
maxImageHeight = _ref$maxImageHeight === void 0 ? {} : _ref$maxImageHeight;
|
|
193
197
|
|
|
194
198
|
var _ref2 = model || {},
|
|
195
199
|
teacherInstructionsEnabled = _ref2.teacherInstructionsEnabled,
|
|
@@ -222,6 +226,8 @@ var Design = /*#__PURE__*/function (_React$Component) {
|
|
|
222
226
|
c.correctResponseCount = _this2.countChoiceInCorrectResponse(c);
|
|
223
227
|
return c;
|
|
224
228
|
});
|
|
229
|
+
var defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;
|
|
230
|
+
var defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;
|
|
225
231
|
return /*#__PURE__*/_react["default"].createElement(IdProvider, {
|
|
226
232
|
value: this.uid
|
|
227
233
|
}, /*#__PURE__*/_react["default"].createElement(_configUi.layout.ConfigLayout, {
|
|
@@ -259,7 +265,9 @@ var Design = /*#__PURE__*/function (_React$Component) {
|
|
|
259
265
|
nonEmpty: false,
|
|
260
266
|
disableUnderline: true,
|
|
261
267
|
toolbarOpts: toolbarOpts,
|
|
262
|
-
spellCheck: spellCheckEnabled
|
|
268
|
+
spellCheck: spellCheckEnabled,
|
|
269
|
+
maxImageWidth: maxImageWidth && maxImageWidth.prompt,
|
|
270
|
+
maxImageHeight: maxImageHeight && maxImageHeight.prompt
|
|
263
271
|
})), teacherInstructionsEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
|
|
264
272
|
label: teacherInstructions.label,
|
|
265
273
|
className: classes.inputHolder
|
|
@@ -270,7 +278,9 @@ var Design = /*#__PURE__*/function (_React$Component) {
|
|
|
270
278
|
imageSupport: imageSupport,
|
|
271
279
|
nonEmpty: false,
|
|
272
280
|
toolbarOpts: toolbarOpts,
|
|
273
|
-
spellCheck: spellCheckEnabled
|
|
281
|
+
spellCheck: spellCheckEnabled,
|
|
282
|
+
maxImageWidth: maxImageWidth && maxImageWidth.teacherInstructions || defaultImageMaxWidth,
|
|
283
|
+
maxImageHeight: maxImageHeight && maxImageHeight.teacherInstructions || defaultImageMaxHeight
|
|
274
284
|
})), rationaleEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
|
|
275
285
|
label: rationale.label,
|
|
276
286
|
className: classes.inputHolder
|
|
@@ -281,7 +291,9 @@ var Design = /*#__PURE__*/function (_React$Component) {
|
|
|
281
291
|
imageSupport: imageSupport,
|
|
282
292
|
nonEmpty: false,
|
|
283
293
|
toolbarOpts: toolbarOpts,
|
|
284
|
-
spellCheck: spellCheckEnabled
|
|
294
|
+
spellCheck: spellCheckEnabled,
|
|
295
|
+
maxImageWidth: maxImageWidth && maxImageWidth.rationale || defaultImageMaxWidth,
|
|
296
|
+
maxImageHeight: maxImageHeight && maxImageHeight.rationale || defaultImageMaxHeight
|
|
285
297
|
})), /*#__PURE__*/_react["default"].createElement(_categories["default"], {
|
|
286
298
|
imageSupport: imageSupport,
|
|
287
299
|
model: model,
|
|
@@ -289,7 +301,9 @@ var Design = /*#__PURE__*/function (_React$Component) {
|
|
|
289
301
|
onModelChanged: this.updateModel,
|
|
290
302
|
toolbarOpts: toolbarOpts,
|
|
291
303
|
spellCheck: spellCheckEnabled,
|
|
292
|
-
configuration: configuration
|
|
304
|
+
configuration: configuration,
|
|
305
|
+
defaultImageMaxWidth: defaultImageMaxWidth,
|
|
306
|
+
defaultImageMaxHeight: defaultImageMaxHeight
|
|
293
307
|
}), /*#__PURE__*/_react["default"].createElement(_header["default"], {
|
|
294
308
|
className: classes.alternatesHeader,
|
|
295
309
|
label: "Alternate Responses",
|
|
@@ -319,7 +333,9 @@ var Design = /*#__PURE__*/function (_React$Component) {
|
|
|
319
333
|
onModelChanged: this.updateModel,
|
|
320
334
|
toolbarOpts: toolbarOpts,
|
|
321
335
|
spellCheck: spellCheckEnabled,
|
|
322
|
-
configuration: configuration
|
|
336
|
+
configuration: configuration,
|
|
337
|
+
defaultImageMaxWidth: defaultImageMaxWidth,
|
|
338
|
+
defaultImageMaxHeight: defaultImageMaxHeight
|
|
323
339
|
}), feedbackEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.FeedbackConfig, {
|
|
324
340
|
feedback: model.feedback,
|
|
325
341
|
onChange: this.changeFeedback,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/design/index.jsx"],"names":["Panel","settings","toggle","radio","IdProvider","uid","Provider","Design","props","model","onChange","updatedModel","correctResponse","choices","categories","map","c","id","label","h","content","categoryCount","rationale","teacherInstructions","feedback","updateModel","cr","alternateResponses","prompt","index","filter","alt","altIndex","choice","generateId","classes","className","imageSupport","configuration","onConfigurationChanged","partialScoring","lockChoiceOrder","studentInstructions","scoringType","spellCheck","teacherInstructionsEnabled","promptEnabled","rationaleEnabled","feedbackEnabled","spellCheckEnabled","errors","toolbarOpts","toolbarEditorPosition","position","config","columns","correctResponseCount","countChoiceInCorrectResponse","Settings","Properties","studentInstructionsEnabled","design","promptHolder","onPromptChanged","inputHolder","input","changeTeacherInstructions","changeRationale","alternatesHeader","onAddAlternateResponse","categoriesList","onRemoveAlternateResponse","changeFeedback","React","Component","PropTypes","object","isRequired","string","func","shape","add","styles","theme","paddingTop","spacing","unit","paddingBottom","text","width","marginBottom","maxWidth","title"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AAMA;;AAIA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;AAEA,IAAQA,KAAR,GAAiCC,kBAAjC,CAAQD,KAAR;AAAA,IAAeE,MAAf,GAAiCD,kBAAjC,CAAeC,MAAf;AAAA,IAAuBC,KAAvB,GAAiCF,kBAAjC,CAAuBE,KAAvB;AACA,IAAkBC,UAAlB,GAAiCC,SAAjC,CAAQC,QAAR;;IAEaC,M;;;;;AAeX,kBAAYC,MAAZ,EAAmB;AAAA;;AAAA;AACjB,8BAAMA,MAAN;AADiB,oGAKL,UAACA,KAAD,EAAW;AACvB,wBAA4B,MAAKA,KAAjC;AAAA,UAAQC,KAAR,eAAQA,KAAR;AAAA,UAAeC,QAAf,eAAeA,QAAf;;AAEA,UAAMC,YAAY,mCACbF,KADa,GAEbD,KAFa,CAAlB,CAHuB,CAQvB;;;AACAG,MAAAA,YAAY,CAACC,eAAb,GAA+B,8CAC7BD,YAAY,CAACC,eAAb,IAAgC,EADH,EAE7BD,YAAY,CAACE,OAFgB,CAA/B,CATuB,CAcvB;;AACAF,MAAAA,YAAY,CAACG,UAAb,GAA0BH,YAAY,CAACG,UAAb,CAAwBC,GAAxB,CAA4B,UAACC,CAAD;AAAA,eAAQ;AAC5DC,UAAAA,EAAE,EAAED,CAAC,CAACC,EADsD;AAE5DC,UAAAA,KAAK,EAAEF,CAAC,CAACE;AAFmD,SAAR;AAAA,OAA5B,CAA1B;AAKAP,MAAAA,YAAY,CAACE,OAAb,GAAuBF,YAAY,CAACE,OAAb,CAAqBE,GAArB,CAAyB,UAACI,CAAD;AAAA,eAAQ;AACtDF,UAAAA,EAAE,EAAEE,CAAC,CAACF,EADgD;AAEtDG,UAAAA,OAAO,EAAED,CAAC,CAACC,OAF2C;AAGtDC,UAAAA,aAAa,EAAEF,CAAC,CAACE;AAHqC,SAAR;AAAA,OAAzB,CAAvB;AAMAX,MAAAA,QAAQ,CAACC,YAAD,CAAR;AACD,KAhCkB;AAAA,wGAkCD,UAACW,SAAD,EAAe;AAC/B,yBAA4B,MAAKd,KAAjC;AAAA,UAAQC,KAAR,gBAAQA,KAAR;AAAA,UAAeC,QAAf,gBAAeA,QAAf;AAEAA,MAAAA,QAAQ,iCACHD,KADG;AAENa,QAAAA,SAAS,EAATA;AAFM,SAAR;AAID,KAzCkB;AAAA,kHA2CS,UAACC,mBAAD,EAAyB;AACnD,yBAA4B,MAAKf,KAAjC;AAAA,UAAQC,KAAR,gBAAQA,KAAR;AAAA,UAAeC,QAAf,gBAAeA,QAAf;AAEAA,MAAAA,QAAQ,iCACHD,KADG;AAENc,QAAAA,mBAAmB,EAAnBA;AAFM,SAAR;AAID,KAlDkB;AAAA,uGAoDF,UAACC,QAAD,EAAc;AAC7B,YAAKC,WAAL,CAAiB;AAAED,QAAAA,QAAQ,EAARA;AAAF,OAAjB;AACD,KAtDkB;AAAA,+GAwDM,YAAM;AAC7B,UACWZ,eADX,GAEI,MAAKJ,KAFT,CACEC,KADF,CACWG,eADX;;AAIA,YAAKa,WAAL,CAAiB;AACfb,QAAAA,eAAe,EAAE,CAACA,eAAe,IAAI,EAApB,EAAwBG,GAAxB,CAA4B,UAACW,EAAD;AAAA,iDACxCA,EADwC;AAE3CC,YAAAA,kBAAkB,gDAAOD,EAAE,CAACC,kBAAH,IAAyB,EAAhC,IAAqC,EAArC;AAFyB;AAAA,SAA5B;AADF,OAAjB;AAMD,KAnEkB;AAAA,wGAqED,UAACC,MAAD;AAAA,aAAY,MAAKH,WAAL,CAAiB;AAAEG,QAAAA,MAAM,EAANA;AAAF,OAAjB,CAAZ;AAAA,KArEC;AAAA,kHAuES,UAACC,KAAD,EAAW;AACrC,UACWjB,eADX,GAEI,MAAKJ,KAFT,CACEC,KADF,CACWG,eADX;;AAIA,YAAKa,WAAL,CAAiB;AACfb,QAAAA,eAAe,EAAE,CAACA,eAAe,IAAI,EAApB,EAAwBG,GAAxB,CAA4B,UAACW,EAAD;AAAA,iDACxCA,EADwC;AAE3CC,YAAAA,kBAAkB,EAAE,CAACD,EAAE,CAACC,kBAAH,IAAyB,EAA1B,EAA8BG,MAA9B,CAClB,UAACC,GAAD,EAAMC,QAAN;AAAA,qBAAmBA,QAAQ,KAAKH,KAAhC;AAAA,aADkB;AAFuB;AAAA,SAA5B;AADF,OAAjB;AAQD,KApFkB;AAAA,qHAsFY,UAACI,MAAD,EAAY;AACzC,UAAQxB,KAAR,GAAkB,MAAKD,KAAvB,CAAQC,KAAR;AAEA,aAAO,+BAAcwB,MAAM,CAAChB,EAArB,EAAyBR,KAAK,CAACG,eAA/B,CAAP;AACD,KA1FkB;AAEjB,UAAKP,GAAL,GAAWG,MAAK,CAACH,GAAN,IAAaA,UAAI6B,UAAJ,EAAxB;AAFiB;AAGlB;;;;WAyFD,kBAAS;AAAA;;AACP,yBAQI,KAAK1B,KART;AAAA,UACE2B,OADF,gBACEA,OADF;AAAA,UAEEC,SAFF,gBAEEA,SAFF;AAAA,UAGE3B,KAHF,gBAGEA,KAHF;AAAA,UAIE4B,YAJF,gBAIEA,YAJF;AAAA,UAKEC,aALF,gBAKEA,aALF;AAAA,UAME5B,QANF,gBAMEA,QANF;AAAA,UAOE6B,sBAPF,gBAOEA,sBAPF;;AASA,iBAUID,aAAa,IAAI,EAVrB;AAAA,qCACEE,cADF;AAAA,UACEA,cADF,oCACmB,EADnB;AAAA,sCAEEC,eAFF;AAAA,UAEEA,eAFF,qCAEoB,EAFpB;AAAA,uCAGElB,mBAHF;AAAA,UAGEA,mBAHF,sCAGwB,EAHxB;AAAA,uCAIEmB,mBAJF;AAAA,UAIEA,mBAJF,sCAIwB,EAJxB;AAAA,gCAKEpB,SALF;AAAA,UAKEA,SALF,+BAKc,EALd;AAAA,kCAMEqB,WANF;AAAA,UAMEA,WANF,iCAMgB,EANhB;AAAA,+BAOEnB,QAPF;AAAA,UAOEA,QAPF,8BAOa,EAPb;AAAA,6BAQEI,MARF;AAAA,UAQEA,MARF,4BAQW,EARX;AAAA,iCASEgB,UATF;AAAA,UASEA,UATF,gCASe,EATf;;AAWA,kBAOInC,KAAK,IAAI,EAPb;AAAA,UACEoC,0BADF,SACEA,0BADF;AAAA,UAEEC,aAFF,SAEEA,aAFF;AAAA,UAGEC,gBAHF,SAGEA,gBAHF;AAAA,UAIEC,eAJF,SAIEA,eAJF;AAAA,UAKEC,iBALF,SAKEA,iBALF;AAAA,UAMEC,MANF,SAMEA,MANF;;AASA,UAAMC,WAAW,GAAG,EAApB;;AAEA,cAAQ1C,KAAK,CAAC2C,qBAAd;AACE,aAAK,KAAL;AACED,UAAAA,WAAW,CAACE,QAAZ,GAAuB,KAAvB;AACA;;AACF;AACEF,UAAAA,WAAW,CAACE,QAAZ,GAAuB,QAAvB;AACA;AANJ;;AASA,UAAMC,MAAM,GAAG7C,KAAK,CAAC6C,MAAN,IAAgB,EAA/B;AACAA,MAAAA,MAAM,CAACzC,OAAP,GAAiByC,MAAM,CAACzC,OAAP,IAAkB;AAAEK,QAAAA,KAAK,EAAE,EAAT;AAAaqC,QAAAA,OAAO,EAAE;AAAtB,OAAnC;AAEA,UAAMzC,UAAU,GAAG,8BACjBL,KAAK,CAACK,UAAN,IAAoB,EADH,EAEjBL,KAAK,CAACI,OAAN,IAAiB,EAFA,EAGjBJ,KAAK,CAACG,eAAN,IAAyB,EAHR,CAAnB;AAMA,UAAMe,kBAAkB,GAAG,sCACzBlB,KAAK,CAACK,UAAN,IAAoB,EADK,EAEzBL,KAAK,CAACI,OAAN,IAAiB,EAFQ,EAGzBJ,KAAK,CAACG,eAAN,IAAyB,EAHA,CAA3B;AAMA,UAAMC,OAAO,GAAGJ,KAAK,CAACI,OAAN,CAAcE,GAAd,CAAkB,UAACC,CAAD,EAAO;AACvCA,QAAAA,CAAC,CAACwC,oBAAF,GAAyB,MAAI,CAACC,4BAAL,CAAkCzC,CAAlC,CAAzB;AACA,eAAOA,CAAP;AACD,OAHe,CAAhB;AAKA,0BACE,gCAAC,UAAD;AAAY,QAAA,KAAK,EAAE,KAAKX;AAAxB,sBACE,gCAAC,gBAAD,CAAQ,YAAR;AACE,QAAA,QAAQ,eACN,gCAAC,KAAD;AACE,UAAA,KAAK,EAAEI,KADT;AAEE,UAAA,aAAa,EAAEC,QAFjB;AAGE,UAAA,aAAa,EAAE4B,aAHjB;AAIE,UAAA,qBAAqB,EAAEC,sBAJzB;AAKE,UAAA,MAAM,EAAE;AACNmB,YAAAA,QAAQ,EAAE;AACRlB,cAAAA,cAAc,EACZA,cAAc,CAACvC,QAAf,IAA2BC,MAAM,CAACsC,cAAc,CAACtB,KAAhB,CAF3B;AAGRuB,cAAAA,eAAe,EACbA,eAAe,CAACxC,QAAhB,IAA4BC,MAAM,CAACuC,eAAe,CAACvB,KAAjB,CAJ5B;AAKR4B,cAAAA,aAAa,EAAElB,MAAM,CAAC3B,QAAP,IAAmBC,MAAM,CAAC0B,MAAM,CAACV,KAAR,CALhC;AAMR8B,cAAAA,eAAe,EAAExB,QAAQ,CAACvB,QAAT,IAAqBC,MAAM,CAACsB,QAAQ,CAACN,KAAV;AANpC,aADJ;AASNyC,YAAAA,UAAU,EAAE;AACVd,cAAAA,0BAA0B,EACxBtB,mBAAmB,CAACtB,QAApB,IACAC,MAAM,CAACqB,mBAAmB,CAACL,KAArB,CAHE;AAIV0C,cAAAA,0BAA0B,EACxBlB,mBAAmB,CAACzC,QAApB,IACAC,MAAM,CAACwC,mBAAmB,CAACxB,KAArB,CANE;AAOV6B,cAAAA,gBAAgB,EACdzB,SAAS,CAACrB,QAAV,IAAsBC,MAAM,CAACoB,SAAS,CAACJ,KAAX,CARpB;AASV+B,cAAAA,iBAAiB,EACfL,UAAU,CAAC3C,QAAX,IAAuBC,MAAM,CAAC0C,UAAU,CAAC1B,KAAZ,CAVrB;AAWVyB,cAAAA,WAAW,EACTA,WAAW,CAAC1C,QAAZ,IACAE,KAAK,CAACwC,WAAW,CAACzB,KAAb,EAAoB,CAAC,MAAD,EAAS,QAAT,CAApB;AAbG;AATN;AALV;AAFJ,sBAmCE;AAAK,QAAA,SAAS,EAAE,4BAAWiB,OAAO,CAAC0B,MAAnB,EAA2BzB,SAA3B;AAAhB,SACGU,aAAa,iBACZ,gCAAC,wBAAD;AACE,QAAA,KAAK,EAAElB,MAAM,CAACV,KADhB;AAEE,QAAA,SAAS,EAAEiB,OAAO,CAAC2B;AAFrB,sBAIE,gCAAC,wBAAD;AACE,QAAA,SAAS,EAAE3B,OAAO,CAACP,MADrB;AAEE,QAAA,MAAM,EAAEnB,KAAK,CAACmB,MAAN,IAAgB,EAF1B;AAGE,QAAA,QAAQ,EAAE,KAAKmC,eAHjB;AAIE,QAAA,YAAY,EAAE1B,YAJhB;AAKE,QAAA,QAAQ,EAAE,KALZ;AAME,QAAA,gBAAgB,MANlB;AAOE,QAAA,WAAW,EAAEc,WAPf;AAQE,QAAA,UAAU,EAAEF;AARd,QAJF,CAFJ,EAmBGJ,0BAA0B,iBACzB,gCAAC,wBAAD;AACE,QAAA,KAAK,EAAEtB,mBAAmB,CAACL,KAD7B;AAEE,QAAA,SAAS,EAAEiB,OAAO,CAAC6B;AAFrB,sBAIE,gCAAC,wBAAD;AACE,QAAA,SAAS,EAAE7B,OAAO,CAAC8B,KADrB;AAEE,QAAA,MAAM,EAAExD,KAAK,CAACc,mBAAN,IAA6B,EAFvC;AAGE,QAAA,QAAQ,EAAE,KAAK2C,yBAHjB;AAIE,QAAA,YAAY,EAAE7B,YAJhB;AAKE,QAAA,QAAQ,EAAE,KALZ;AAME,QAAA,WAAW,EAAEc,WANf;AAOE,QAAA,UAAU,EAAEF;AAPd,QAJF,CApBJ,EAoCGF,gBAAgB,iBACf,gCAAC,wBAAD;AACE,QAAA,KAAK,EAAEzB,SAAS,CAACJ,KADnB;AAEE,QAAA,SAAS,EAAEiB,OAAO,CAAC6B;AAFrB,sBAIE,gCAAC,wBAAD;AACE,QAAA,SAAS,EAAE7B,OAAO,CAAC8B,KADrB;AAEE,QAAA,MAAM,EAAExD,KAAK,CAACa,SAAN,IAAmB,EAF7B;AAGE,QAAA,QAAQ,EAAE,KAAK6C,eAHjB;AAIE,QAAA,YAAY,EAAE9B,YAJhB;AAKE,QAAA,QAAQ,EAAE,KALZ;AAME,QAAA,WAAW,EAAEc,WANf;AAOE,QAAA,UAAU,EAAEF;AAPd,QAJF,CArCJ,eAqDE,gCAAC,sBAAD;AACE,QAAA,YAAY,EAAEZ,YADhB;AAEE,QAAA,KAAK,EAAE5B,KAFT;AAGE,QAAA,UAAU,EAAEK,UAAU,IAAI,EAH5B;AAIE,QAAA,cAAc,EAAE,KAAKW,WAJvB;AAKE,QAAA,WAAW,EAAE0B,WALf;AAME,QAAA,UAAU,EAAEF,iBANd;AAOE,QAAA,aAAa,EAAEX;AAPjB,QArDF,eA+DE,gCAAC,kBAAD;AACE,QAAA,SAAS,EAAEH,OAAO,CAACiC,gBADrB;AAEE,QAAA,KAAK,EAAC,qBAFR;AAGE,QAAA,WAAW,EAAC,2BAHd;AAIE,QAAA,KAAK,EAAE,KAAKC;AAJd,QA/DF,EAsEG1C,kBAAkB,CAACZ,GAAnB,CAAuB,UAACuD,cAAD,EAAiBzC,KAAjB,EAA2B;AACjD,4BACE,gCAAC,iBAAD,CAAO,QAAP;AAAgB,UAAA,GAAG,EAAEA;AAArB,wBACE,gCAAC,kBAAD;AACE,UAAA,SAAS,EAAEM,OAAO,CAACiC,gBADrB;AAEE,UAAA,KAAK,EAAC,oBAFR;AAGE,UAAA,WAAW,EAAC,2BAHd;AAIE,UAAA,KAAK,EAAE;AAAA,mBAAM,MAAI,CAACG,yBAAL,CAA+B1C,KAA/B,CAAN;AAAA;AAJT,UADF,eAQE,gCAAC,8BAAD;AACE,UAAA,QAAQ,EAAEA,KADZ;AAEE,UAAA,YAAY,EAAEQ,YAFhB;AAGE,UAAA,KAAK,EAAE5B,KAHT;AAIE,UAAA,UAAU,EAAE6D,cAJd;AAKE,UAAA,cAAc,EAAE,MAAI,CAAC7C;AALvB,UARF,CADF;AAkBD,OAnBA,CAtEH,eA2FE,gCAAC,gBAAD,OA3FF,eA4FE,gCAAC,mBAAD;AACE,QAAA,YAAY,EAAEY,YADhB;AAEE,QAAA,OAAO,EAAExB,OAFX;AAGE,QAAA,KAAK,EAAEJ,KAHT;AAIE,QAAA,cAAc,EAAE,KAAKgB,WAJvB;AAKE,QAAA,WAAW,EAAE0B,WALf;AAME,QAAA,UAAU,EAAEF,iBANd;AAOE,QAAA,aAAa,EAAEX;AAPjB,QA5FF,EAsGGU,eAAe,iBACd,gCAAC,wBAAD;AACE,QAAA,QAAQ,EAAEvC,KAAK,CAACe,QADlB;AAEE,QAAA,QAAQ,EAAE,KAAKgD,cAFjB;AAGE,QAAA,WAAW,EAAErB;AAHf,QAvGJ,CAnCF,CADF,CADF;AAsJD;;;EA9TyBsB,kBAAMC,S;;;iCAArBnE,M,eACQ;AACjB4B,EAAAA,OAAO,EAAEwC,sBAAUC,MAAV,CAAiBC,UADT;AAEjBvC,EAAAA,aAAa,EAAEqC,sBAAUC,MAFR;AAGjBxC,EAAAA,SAAS,EAAEuC,sBAAUG,MAHJ;AAIjBvC,EAAAA,sBAAsB,EAAEoC,sBAAUI,IAJjB;AAKjBtE,EAAAA,KAAK,EAAEkE,sBAAUC,MAAV,CAAiBC,UALP;AAMjBnE,EAAAA,QAAQ,EAAEiE,sBAAUI,IAAV,CAAeF,UANR;AAOjBxE,EAAAA,GAAG,EAAEsE,sBAAUG,MAPE;AAQjBzC,EAAAA,YAAY,EAAEsC,sBAAUK,KAAV,CAAgB;AAC5BC,IAAAA,GAAG,EAAEN,sBAAUI,IAAV,CAAeF,UADQ;AAE5B,cAAQF,sBAAUI,IAAV,CAAeF;AAFK,GAAhB;AARG,C;;AAgUrB,IAAMK,MAAM,GAAG,SAATA,MAAS,CAACC,KAAD;AAAA,SAAY;AACzBf,IAAAA,gBAAgB,EAAE;AAChBgB,MAAAA,UAAU,EAAED,KAAK,CAACE,OAAN,CAAcC,IAAd,GAAqB,CADjB;AAEhBC,MAAAA,aAAa,EAAEJ,KAAK,CAACE,OAAN,CAAcC,IAAd,GAAqB;AAFpB,KADO;AAKzBE,IAAAA,IAAI,EAAE;AACJJ,MAAAA,UAAU,EAAED,KAAK,CAACE,OAAN,CAAcC,IAAd,GAAqB,CAD7B;AAEJC,MAAAA,aAAa,EAAEJ,KAAK,CAACE,OAAN,CAAcC,IAAd,GAAqB;AAFhC,KALmB;AASzBzB,IAAAA,MAAM,EAAE;AACNuB,MAAAA,UAAU,EAAED,KAAK,CAACE,OAAN,CAAcC,IADpB;AAENC,MAAAA,aAAa,EAAEJ,KAAK,CAACE,OAAN,CAAcC;AAFvB,KATiB;AAazBtB,IAAAA,WAAW,EAAE;AACXyB,MAAAA,KAAK,EAAE,MADI;AAEXF,MAAAA,aAAa,EAAEJ,KAAK,CAACE,OAAN,CAAcC,IAAd,GAAqB,CAFzB;AAGXI,MAAAA,YAAY,EAAEP,KAAK,CAACE,OAAN,CAAcC,IAAd,GAAqB;AAHxB,KAbY;AAkBzBrB,IAAAA,KAAK,EAAE;AACLmB,MAAAA,UAAU,EAAED,KAAK,CAACE,OAAN,CAAcC,IAAd,GAAqB,CAD5B;AAELG,MAAAA,KAAK,EAAE,MAFF;AAGLE,MAAAA,QAAQ,EAAE;AAHL,KAlBkB;AAuBzB/D,IAAAA,MAAM,EAAE;AACNwD,MAAAA,UAAU,EAAED,KAAK,CAACE,OAAN,CAAcC,IAAd,GAAqB,CAD3B;AAENG,MAAAA,KAAK,EAAE;AAFD,KAvBiB;AA2BzB3B,IAAAA,YAAY,EAAE;AACZ2B,MAAAA,KAAK,EAAE,MADK;AAEZF,MAAAA,aAAa,EAAEJ,KAAK,CAACE,OAAN,CAAcC,IAAd,GAAqB,CAFxB;AAGZI,MAAAA,YAAY,EAAEP,KAAK,CAACE,OAAN,CAAcC,IAAd,GAAqB;AAHvB,KA3BW;AAgCzBM,IAAAA,KAAK,EAAE;AACLF,MAAAA,YAAY,EAAE;AADT;AAhCkB,GAAZ;AAAA,CAAf;;eAqCe,2BAAgB,wBAAWR,MAAX,EAAmB3E,MAAnB,CAAhB,C","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport {\n FeedbackConfig,\n InputContainer,\n layout,\n settings,\n} from '@pie-lib/config-ui';\nimport {\n countInAnswer,\n ensureNoExtraChoicesInAnswer,\n} from '@pie-lib/categorize';\nimport EditableHtml from '@pie-lib/editable-html';\nimport { uid, withDragContext } from '@pie-lib/drag';\n\nimport Categories from './categories';\nimport AlternateResponses from './categories/alternateResponses';\nimport Choices from './choices';\nimport { Divider } from './buttons';\nimport { buildAlternateResponses, buildCategories } from './builder';\nimport Header from './header';\n\nconst { Panel, toggle, radio } = settings;\nconst { Provider: IdProvider } = uid;\n\nexport class Design extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n configuration: PropTypes.object,\n className: PropTypes.string,\n onConfigurationChanged: PropTypes.func,\n model: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n uid: PropTypes.string,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n };\n\n constructor(props) {\n super(props);\n this.uid = props.uid || uid.generateId();\n }\n\n updateModel = (props) => {\n const { model, onChange } = this.props;\n\n const updatedModel = {\n ...model,\n ...props,\n };\n\n //Ensure that there are no extra choices in correctResponse, if the user has decided that only one choice may be used.\n updatedModel.correctResponse = ensureNoExtraChoicesInAnswer(\n updatedModel.correctResponse || [],\n updatedModel.choices\n );\n\n //clean categories\n updatedModel.categories = updatedModel.categories.map((c) => ({\n id: c.id,\n label: c.label,\n }));\n\n updatedModel.choices = updatedModel.choices.map((h) => ({\n id: h.id,\n content: h.content,\n categoryCount: h.categoryCount,\n }));\n\n onChange(updatedModel);\n };\n\n changeRationale = (rationale) => {\n const { model, onChange } = this.props;\n\n onChange({\n ...model,\n rationale,\n });\n };\n\n changeTeacherInstructions = (teacherInstructions) => {\n const { model, onChange } = this.props;\n\n onChange({\n ...model,\n teacherInstructions,\n });\n };\n\n changeFeedback = (feedback) => {\n this.updateModel({ feedback });\n };\n\n onAddAlternateResponse = () => {\n const {\n model: { correctResponse },\n } = this.props;\n\n this.updateModel({\n correctResponse: (correctResponse || []).map((cr) => ({\n ...cr,\n alternateResponses: [...(cr.alternateResponses || []), []],\n })),\n });\n };\n\n onPromptChanged = (prompt) => this.updateModel({ prompt });\n\n onRemoveAlternateResponse = (index) => {\n const {\n model: { correctResponse },\n } = this.props;\n\n this.updateModel({\n correctResponse: (correctResponse || []).map((cr) => ({\n ...cr,\n alternateResponses: (cr.alternateResponses || []).filter(\n (alt, altIndex) => altIndex !== index\n ),\n })),\n });\n };\n\n countChoiceInCorrectResponse = (choice) => {\n const { model } = this.props;\n\n return countInAnswer(choice.id, model.correctResponse);\n };\n\n render() {\n const {\n classes,\n className,\n model,\n imageSupport,\n configuration,\n onChange,\n onConfigurationChanged,\n } = this.props;\n const {\n partialScoring = {},\n lockChoiceOrder = {},\n teacherInstructions = {},\n studentInstructions = {},\n rationale = {},\n scoringType = {},\n feedback = {},\n prompt = {},\n spellCheck = {},\n } = configuration || {};\n const {\n teacherInstructionsEnabled,\n promptEnabled,\n rationaleEnabled,\n feedbackEnabled,\n spellCheckEnabled,\n errors\n } = model || {};\n\n const toolbarOpts = {};\n\n switch (model.toolbarEditorPosition) {\n case 'top':\n toolbarOpts.position = 'top';\n break;\n default:\n toolbarOpts.position = 'bottom';\n break;\n }\n\n const config = model.config || {};\n config.choices = config.choices || { label: '', columns: 2 };\n\n const categories = buildCategories(\n model.categories || [],\n model.choices || [],\n model.correctResponse || []\n );\n\n const alternateResponses = buildAlternateResponses(\n model.categories || [],\n model.choices || [],\n model.correctResponse || []\n );\n\n const choices = model.choices.map((c) => {\n c.correctResponseCount = this.countChoiceInCorrectResponse(c);\n return c;\n });\n\n return (\n <IdProvider value={this.uid}>\n <layout.ConfigLayout\n settings={\n <Panel\n model={model}\n onChangeModel={onChange}\n configuration={configuration}\n onChangeConfiguration={onConfigurationChanged}\n groups={{\n Settings: {\n partialScoring:\n partialScoring.settings && toggle(partialScoring.label),\n lockChoiceOrder:\n lockChoiceOrder.settings && toggle(lockChoiceOrder.label),\n promptEnabled: prompt.settings && toggle(prompt.label),\n feedbackEnabled: feedback.settings && toggle(feedback.label),\n },\n Properties: {\n teacherInstructionsEnabled:\n teacherInstructions.settings &&\n toggle(teacherInstructions.label),\n studentInstructionsEnabled:\n studentInstructions.settings &&\n toggle(studentInstructions.label),\n rationaleEnabled:\n rationale.settings && toggle(rationale.label),\n spellCheckEnabled:\n spellCheck.settings && toggle(spellCheck.label),\n scoringType:\n scoringType.settings &&\n radio(scoringType.label, ['auto', 'rubric']),\n },\n }}\n />\n }\n >\n <div className={classNames(classes.design, className)}>\n {promptEnabled && (\n <InputContainer\n label={prompt.label}\n className={classes.promptHolder}\n >\n <EditableHtml\n className={classes.prompt}\n markup={model.prompt || ''}\n onChange={this.onPromptChanged}\n imageSupport={imageSupport}\n nonEmpty={false}\n disableUnderline\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n />\n </InputContainer>\n )}\n\n {teacherInstructionsEnabled && (\n <InputContainer\n label={teacherInstructions.label}\n className={classes.inputHolder}\n >\n <EditableHtml\n className={classes.input}\n markup={model.teacherInstructions || ''}\n onChange={this.changeTeacherInstructions}\n imageSupport={imageSupport}\n nonEmpty={false}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n />\n </InputContainer>\n )}\n\n {rationaleEnabled && (\n <InputContainer\n label={rationale.label}\n className={classes.inputHolder}\n >\n <EditableHtml\n className={classes.input}\n markup={model.rationale || ''}\n onChange={this.changeRationale}\n imageSupport={imageSupport}\n nonEmpty={false}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n />\n </InputContainer>\n )}\n\n <Categories\n imageSupport={imageSupport}\n model={model}\n categories={categories || []}\n onModelChanged={this.updateModel}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n configuration={configuration}\n />\n\n <Header\n className={classes.alternatesHeader}\n label=\"Alternate Responses\"\n buttonLabel=\"ADD AN ALTERNATE RESPONSE\"\n onAdd={this.onAddAlternateResponse}\n />\n\n {alternateResponses.map((categoriesList, index) => {\n return (\n <React.Fragment key={index}>\n <Header\n className={classes.alternatesHeader}\n label=\"Alternate Response\"\n buttonLabel=\"REMOVE ALTERNATE RESPONSE\"\n onAdd={() => this.onRemoveAlternateResponse(index)}\n />\n\n <AlternateResponses\n altIndex={index}\n imageSupport={imageSupport}\n model={model}\n categories={categoriesList}\n onModelChanged={this.updateModel}\n />\n </React.Fragment>\n );\n })}\n\n <Divider />\n <Choices\n imageSupport={imageSupport}\n choices={choices}\n model={model}\n onModelChanged={this.updateModel}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n configuration={configuration}\n />\n\n {feedbackEnabled && (\n <FeedbackConfig\n feedback={model.feedback}\n onChange={this.changeFeedback}\n toolbarOpts={toolbarOpts}\n />\n )}\n </div>\n </layout.ConfigLayout>\n </IdProvider>\n );\n }\n}\n\nconst styles = (theme) => ({\n alternatesHeader: {\n paddingTop: theme.spacing.unit * 2,\n paddingBottom: theme.spacing.unit * 2,\n },\n text: {\n paddingTop: theme.spacing.unit * 2,\n paddingBottom: theme.spacing.unit * 2,\n },\n design: {\n paddingTop: theme.spacing.unit,\n paddingBottom: theme.spacing.unit,\n },\n inputHolder: {\n width: '100%',\n paddingBottom: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n },\n input: {\n paddingTop: theme.spacing.unit * 2,\n width: '100%',\n maxWidth: '600px',\n },\n prompt: {\n paddingTop: theme.spacing.unit * 2,\n width: '100%',\n },\n promptHolder: {\n width: '100%',\n paddingBottom: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n },\n title: {\n marginBottom: '30px',\n },\n});\n\nexport default withDragContext(withStyles(styles)(Design));\n"],"file":"index.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/design/index.jsx"],"names":["Panel","settings","toggle","radio","IdProvider","uid","Provider","Design","props","model","onChange","updatedModel","correctResponse","choices","categories","map","c","id","label","h","content","categoryCount","rationale","teacherInstructions","feedback","updateModel","cr","alternateResponses","prompt","index","filter","alt","altIndex","choice","generateId","classes","className","imageSupport","configuration","onConfigurationChanged","partialScoring","lockChoiceOrder","studentInstructions","scoringType","spellCheck","maxImageWidth","maxImageHeight","teacherInstructionsEnabled","promptEnabled","rationaleEnabled","feedbackEnabled","spellCheckEnabled","errors","toolbarOpts","toolbarEditorPosition","position","config","columns","correctResponseCount","countChoiceInCorrectResponse","defaultImageMaxWidth","defaultImageMaxHeight","Settings","Properties","studentInstructionsEnabled","design","promptHolder","onPromptChanged","inputHolder","input","changeTeacherInstructions","changeRationale","alternatesHeader","onAddAlternateResponse","categoriesList","onRemoveAlternateResponse","changeFeedback","React","Component","PropTypes","object","isRequired","string","func","shape","add","styles","theme","paddingTop","spacing","unit","paddingBottom","text","width","marginBottom","maxWidth","title"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport {\n FeedbackConfig,\n InputContainer,\n layout,\n settings,\n} from '@pie-lib/config-ui';\nimport {\n countInAnswer,\n ensureNoExtraChoicesInAnswer,\n} from '@pie-lib/categorize';\nimport EditableHtml from '@pie-lib/editable-html';\nimport { uid, withDragContext } from '@pie-lib/drag';\n\nimport Categories from './categories';\nimport AlternateResponses from './categories/alternateResponses';\nimport Choices from './choices';\nimport { Divider } from './buttons';\nimport { buildAlternateResponses, buildCategories } from './builder';\nimport Header from './header';\n\nconst { Panel, toggle, radio } = settings;\nconst { Provider: IdProvider } = uid;\n\nexport class Design extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n configuration: PropTypes.object,\n className: PropTypes.string,\n onConfigurationChanged: PropTypes.func,\n model: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n uid: PropTypes.string,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n };\n\n constructor(props) {\n super(props);\n this.uid = props.uid || uid.generateId();\n }\n\n updateModel = (props) => {\n const { model, onChange } = this.props;\n\n const updatedModel = {\n ...model,\n ...props,\n };\n\n //Ensure that there are no extra choices in correctResponse, if the user has decided that only one choice may be used.\n updatedModel.correctResponse = ensureNoExtraChoicesInAnswer(\n updatedModel.correctResponse || [],\n updatedModel.choices\n );\n\n //clean categories\n updatedModel.categories = updatedModel.categories.map((c) => ({\n id: c.id,\n label: c.label,\n }));\n\n updatedModel.choices = updatedModel.choices.map((h) => ({\n id: h.id,\n content: h.content,\n categoryCount: h.categoryCount,\n }));\n\n onChange(updatedModel);\n };\n\n changeRationale = (rationale) => {\n const { model, onChange } = this.props;\n\n onChange({\n ...model,\n rationale,\n });\n };\n\n changeTeacherInstructions = (teacherInstructions) => {\n const { model, onChange } = this.props;\n\n onChange({\n ...model,\n teacherInstructions,\n });\n };\n\n changeFeedback = (feedback) => {\n this.updateModel({ feedback });\n };\n\n onAddAlternateResponse = () => {\n const {\n model: { correctResponse },\n } = this.props;\n\n this.updateModel({\n correctResponse: (correctResponse || []).map((cr) => ({\n ...cr,\n alternateResponses: [...(cr.alternateResponses || []), []],\n })),\n });\n };\n\n onPromptChanged = (prompt) => this.updateModel({ prompt });\n\n onRemoveAlternateResponse = (index) => {\n const {\n model: { correctResponse },\n } = this.props;\n\n this.updateModel({\n correctResponse: (correctResponse || []).map((cr) => ({\n ...cr,\n alternateResponses: (cr.alternateResponses || []).filter(\n (alt, altIndex) => altIndex !== index\n ),\n })),\n });\n };\n\n countChoiceInCorrectResponse = (choice) => {\n const { model } = this.props;\n\n return countInAnswer(choice.id, model.correctResponse);\n };\n\n render() {\n const {\n classes,\n className,\n model,\n imageSupport,\n configuration,\n onChange,\n onConfigurationChanged,\n } = this.props;\n const {\n partialScoring = {},\n lockChoiceOrder = {},\n teacherInstructions = {},\n studentInstructions = {},\n rationale = {},\n scoringType = {},\n feedback = {},\n prompt = {},\n spellCheck = {},\n maxImageWidth = {},\n maxImageHeight = {}\n } = configuration || {};\n const {\n teacherInstructionsEnabled,\n promptEnabled,\n rationaleEnabled,\n feedbackEnabled,\n spellCheckEnabled,\n errors\n } = model || {};\n\n const toolbarOpts = {};\n\n switch (model.toolbarEditorPosition) {\n case 'top':\n toolbarOpts.position = 'top';\n break;\n default:\n toolbarOpts.position = 'bottom';\n break;\n }\n\n const config = model.config || {};\n config.choices = config.choices || { label: '', columns: 2 };\n\n const categories = buildCategories(\n model.categories || [],\n model.choices || [],\n model.correctResponse || []\n );\n\n const alternateResponses = buildAlternateResponses(\n model.categories || [],\n model.choices || [],\n model.correctResponse || []\n );\n\n const choices = model.choices.map((c) => {\n c.correctResponseCount = this.countChoiceInCorrectResponse(c);\n return c;\n });\n\n const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;\n const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;\n\n return (\n <IdProvider value={this.uid}>\n <layout.ConfigLayout\n settings={\n <Panel\n model={model}\n onChangeModel={onChange}\n configuration={configuration}\n onChangeConfiguration={onConfigurationChanged}\n groups={{\n Settings: {\n partialScoring:\n partialScoring.settings && toggle(partialScoring.label),\n lockChoiceOrder:\n lockChoiceOrder.settings && toggle(lockChoiceOrder.label),\n promptEnabled: prompt.settings && toggle(prompt.label),\n feedbackEnabled: feedback.settings && toggle(feedback.label),\n },\n Properties: {\n teacherInstructionsEnabled:\n teacherInstructions.settings &&\n toggle(teacherInstructions.label),\n studentInstructionsEnabled:\n studentInstructions.settings &&\n toggle(studentInstructions.label),\n rationaleEnabled:\n rationale.settings && toggle(rationale.label),\n spellCheckEnabled:\n spellCheck.settings && toggle(spellCheck.label),\n scoringType:\n scoringType.settings &&\n radio(scoringType.label, ['auto', 'rubric']),\n },\n }}\n />\n }\n >\n <div className={classNames(classes.design, className)}>\n {promptEnabled && (\n <InputContainer\n label={prompt.label}\n className={classes.promptHolder}\n >\n <EditableHtml\n className={classes.prompt}\n markup={model.prompt || ''}\n onChange={this.onPromptChanged}\n imageSupport={imageSupport}\n nonEmpty={false}\n disableUnderline\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n maxImageWidth={maxImageWidth && maxImageWidth.prompt}\n maxImageHeight={maxImageHeight && maxImageHeight.prompt}\n />\n </InputContainer>\n )}\n\n {teacherInstructionsEnabled && (\n <InputContainer\n label={teacherInstructions.label}\n className={classes.inputHolder}\n >\n <EditableHtml\n className={classes.input}\n markup={model.teacherInstructions || ''}\n onChange={this.changeTeacherInstructions}\n imageSupport={imageSupport}\n nonEmpty={false}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n maxImageWidth={maxImageWidth && maxImageWidth.teacherInstructions || defaultImageMaxWidth}\n maxImageHeight={maxImageHeight && maxImageHeight.teacherInstructions || defaultImageMaxHeight}\n />\n </InputContainer>\n )}\n\n {rationaleEnabled && (\n <InputContainer\n label={rationale.label}\n className={classes.inputHolder}\n >\n <EditableHtml\n className={classes.input}\n markup={model.rationale || ''}\n onChange={this.changeRationale}\n imageSupport={imageSupport}\n nonEmpty={false}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n maxImageWidth={maxImageWidth && maxImageWidth.rationale || defaultImageMaxWidth}\n maxImageHeight={maxImageHeight && maxImageHeight.rationale || defaultImageMaxHeight}\n />\n </InputContainer>\n )}\n\n <Categories\n imageSupport={imageSupport}\n model={model}\n categories={categories || []}\n onModelChanged={this.updateModel}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n configuration={configuration}\n defaultImageMaxWidth={defaultImageMaxWidth}\n defaultImageMaxHeight={defaultImageMaxHeight}\n />\n\n <Header\n className={classes.alternatesHeader}\n label=\"Alternate Responses\"\n buttonLabel=\"ADD AN ALTERNATE RESPONSE\"\n onAdd={this.onAddAlternateResponse}\n />\n\n {alternateResponses.map((categoriesList, index) => {\n return (\n <React.Fragment key={index}>\n <Header\n className={classes.alternatesHeader}\n label=\"Alternate Response\"\n buttonLabel=\"REMOVE ALTERNATE RESPONSE\"\n onAdd={() => this.onRemoveAlternateResponse(index)}\n />\n\n <AlternateResponses\n altIndex={index}\n imageSupport={imageSupport}\n model={model}\n categories={categoriesList}\n onModelChanged={this.updateModel}\n />\n </React.Fragment>\n );\n })}\n\n <Divider />\n <Choices\n imageSupport={imageSupport}\n choices={choices}\n model={model}\n onModelChanged={this.updateModel}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n configuration={configuration}\n defaultImageMaxWidth={defaultImageMaxWidth}\n defaultImageMaxHeight={defaultImageMaxHeight}\n />\n\n {feedbackEnabled && (\n <FeedbackConfig\n feedback={model.feedback}\n onChange={this.changeFeedback}\n toolbarOpts={toolbarOpts}\n />\n )}\n </div>\n </layout.ConfigLayout>\n </IdProvider>\n );\n }\n}\n\nconst styles = (theme) => ({\n alternatesHeader: {\n paddingTop: theme.spacing.unit * 2,\n paddingBottom: theme.spacing.unit * 2,\n },\n text: {\n paddingTop: theme.spacing.unit * 2,\n paddingBottom: theme.spacing.unit * 2,\n },\n design: {\n paddingTop: theme.spacing.unit,\n paddingBottom: theme.spacing.unit,\n },\n inputHolder: {\n width: '100%',\n paddingBottom: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n },\n input: {\n paddingTop: theme.spacing.unit * 2,\n width: '100%',\n maxWidth: '600px',\n },\n prompt: {\n paddingTop: theme.spacing.unit * 2,\n width: '100%',\n },\n promptHolder: {\n width: '100%',\n paddingBottom: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n },\n title: {\n marginBottom: '30px',\n },\n});\n\nexport default withDragContext(withStyles(styles)(Design));\n"],"file":"index.js"}
|
|
@@ -54,7 +54,9 @@ var InputHeader = /*#__PURE__*/function (_React$Component) {
|
|
|
54
54
|
imageSupport = _this$props.imageSupport,
|
|
55
55
|
toolbarOpts = _this$props.toolbarOpts,
|
|
56
56
|
spellCheck = _this$props.spellCheck,
|
|
57
|
-
error = _this$props.error
|
|
57
|
+
error = _this$props.error,
|
|
58
|
+
maxImageWidth = _this$props.maxImageWidth,
|
|
59
|
+
maxImageHeight = _this$props.maxImageHeight;
|
|
58
60
|
var choicePlugins = {
|
|
59
61
|
audio: {
|
|
60
62
|
disabled: true
|
|
@@ -75,7 +77,9 @@ var InputHeader = /*#__PURE__*/function (_React$Component) {
|
|
|
75
77
|
pluginProps: choicePlugins,
|
|
76
78
|
toolbarOpts: toolbarOpts,
|
|
77
79
|
spellCheck: spellCheck,
|
|
78
|
-
error: error
|
|
80
|
+
error: error,
|
|
81
|
+
maxImageWidth: maxImageWidth,
|
|
82
|
+
maxImageHeight: maxImageHeight
|
|
79
83
|
}));
|
|
80
84
|
}
|
|
81
85
|
}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/design/input-header.jsx"],"names":["InputHeader","props","onChange","label","classes","className","imageSupport","toolbarOpts","spellCheck","error","choicePlugins","audio","disabled","video","inputHeader","editor","React","Component","PropTypes","object","isRequired","string","func","onDelete","shape","add","styles","theme","flex","paddingBottom","spacing","unit","iconButtonRoot","width","height","display","justifyContent"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;IAEaA,W;;;;;;;;;;;;WAgBX,kBAAS;AACP,
|
|
1
|
+
{"version":3,"sources":["../../src/design/input-header.jsx"],"names":["InputHeader","props","onChange","label","classes","className","imageSupport","toolbarOpts","spellCheck","error","maxImageWidth","maxImageHeight","choicePlugins","audio","disabled","video","inputHeader","editor","React","Component","PropTypes","object","isRequired","string","func","onDelete","shape","add","styles","theme","flex","paddingBottom","spacing","unit","iconButtonRoot","width","height","display","justifyContent"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;IAEaA,W;;;;;;;;;;;;WAgBX,kBAAS;AACP,wBAA6H,KAAKC,KAAlI;AAAA,UAAQC,QAAR,eAAQA,QAAR;AAAA,UAAkBC,KAAlB,eAAkBA,KAAlB;AAAA,UAAyBC,OAAzB,eAAyBA,OAAzB;AAAA,UAAkCC,SAAlC,eAAkCA,SAAlC;AAAA,UAA6CC,YAA7C,eAA6CA,YAA7C;AAAA,UAA2DC,WAA3D,eAA2DA,WAA3D;AAAA,UAAwEC,UAAxE,eAAwEA,UAAxE;AAAA,UAAoFC,KAApF,eAAoFA,KAApF;AAAA,UAA2FC,aAA3F,eAA2FA,aAA3F;AAAA,UAA0GC,cAA1G,eAA0GA,cAA1G;AACA,UAAMC,aAAa,GAAG;AACpBC,QAAAA,KAAK,EAAE;AAAEC,UAAAA,QAAQ,EAAE;AAAZ,SADa;AAEpBC,QAAAA,KAAK,EAAE;AAAED,UAAAA,QAAQ,EAAE;AAAZ;AAFa,OAAtB;AAKA,0BACE;AAAK,QAAA,SAAS,EAAE,4BAAWV,OAAO,CAACY,WAAnB,EAAgCX,SAAhC;AAAhB,sBACE,gCAAC,wBAAD;AACE,QAAA,YAAY,EAAEC,YADhB;AAEE,QAAA,gBAAgB,MAFlB;AAGE,QAAA,KAAK,EAAE,OAHT;AAIE,QAAA,MAAM,EAAEH,KAJV;AAKE,QAAA,QAAQ,EAAED,QALZ;AAME,QAAA,SAAS,EAAEE,OAAO,CAACa,MANrB;AAOE,QAAA,WAAW,EAAEL,aAPf;AAQE,QAAA,WAAW,EAAEL,WARf;AASE,QAAA,UAAU,EAAEC,UATd;AAUE,QAAA,KAAK,EAAEC,KAVT;AAWE,QAAA,aAAa,EAAEC,aAXjB;AAYE,QAAA,cAAc,EAAEC;AAZlB,QADF,CADF;AAkBD;;;EAzC8BO,kBAAMC,S;;;iCAA1BnB,W,eACQ;AACjBI,EAAAA,OAAO,EAAEgB,sBAAUC,MAAV,CAAiBC,UADT;AAEjBjB,EAAAA,SAAS,EAAEe,sBAAUG,MAFJ;AAGjBpB,EAAAA,KAAK,EAAEiB,sBAAUG,MAHA;AAIjBrB,EAAAA,QAAQ,EAAEkB,sBAAUI,IAJH;AAKjBC,EAAAA,QAAQ,EAAEL,sBAAUI,IALH;AAMjBlB,EAAAA,YAAY,EAAEc,sBAAUM,KAAV,CAAgB;AAC5BC,IAAAA,GAAG,EAAEP,sBAAUI,IAAV,CAAeF,UADQ;AAE5B,cAAQF,sBAAUI,IAAV,CAAeF;AAFK,GAAhB,CANG;AAUjBf,EAAAA,WAAW,EAAEa,sBAAUC,MAVN;AAWjBZ,EAAAA,KAAK,EAAEW,sBAAUG;AAXA,C;iCADRvB,W,kBAeW,E;;AA4BxB,IAAM4B,MAAM,GAAG,SAATA,MAAS,CAAAC,KAAK;AAAA,SAAK;AACvBZ,IAAAA,MAAM,EAAE;AACNa,MAAAA,IAAI,EAAE,GADA;AAENC,MAAAA,aAAa,EAAEF,KAAK,CAACG,OAAN,CAAcC;AAFvB,KADe;AAKvBC,IAAAA,cAAc,EAAE;AACdC,MAAAA,KAAK,EAAE,MADO;AAEdC,MAAAA,MAAM,EAAE;AAFM,KALO;AASvBpB,IAAAA,WAAW,EAAE;AACXqB,MAAAA,OAAO,EAAE,MADE;AAEXC,MAAAA,cAAc,EAAE;AAFL;AATU,GAAL;AAAA,CAApB;;eAce,wBAAWV,MAAX,EAAmB5B,WAAnB,C","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport EditableHtml from '@pie-lib/editable-html';\n\nexport class InputHeader extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n label: PropTypes.string,\n onChange: PropTypes.func,\n onDelete: PropTypes.func,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired\n }),\n toolbarOpts: PropTypes.object,\n error: PropTypes.string,\n };\n\n static defaultProps = {};\n render() {\n const { onChange, label, classes, className, imageSupport, toolbarOpts, spellCheck, error, maxImageWidth, maxImageHeight } = this.props;\n const choicePlugins = {\n audio: { disabled: true },\n video: { disabled: true }\n };\n\n return (\n <div className={classNames(classes.inputHeader, className)}>\n <EditableHtml\n imageSupport={imageSupport}\n autoWidthToolbar\n label={'label'}\n markup={label}\n onChange={onChange}\n className={classes.editor}\n pluginProps={choicePlugins}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheck}\n error={error}\n maxImageWidth={maxImageWidth}\n maxImageHeight={maxImageHeight}\n />\n </div>\n );\n }\n}\nconst styles = theme => ({\n editor: {\n flex: '1',\n paddingBottom: theme.spacing.unit\n },\n iconButtonRoot: {\n width: 'auto',\n height: 'auto'\n },\n inputHeader: {\n display: 'flex',\n justifyContent: 'space-between'\n }\n});\nexport default withStyles(styles)(InputHeader);\n"],"file":"input-header.js"}
|
package/configure/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"private": true,
|
|
4
4
|
"main": "lib/index.js",
|
|
5
5
|
"module": "src/index.js",
|
|
6
|
-
"version": "
|
|
6
|
+
"version": "6.1.1",
|
|
7
7
|
"description": "",
|
|
8
8
|
"scripts": {},
|
|
9
9
|
"author": "pie framework developers",
|
|
@@ -13,10 +13,10 @@
|
|
|
13
13
|
"@material-ui/icons": "^3.0.1",
|
|
14
14
|
"@pie-framework/pie-configure-events": "^1.2.0",
|
|
15
15
|
"@pie-lib/categorize": "^0.6.24",
|
|
16
|
-
"@pie-lib/config-ui": "^
|
|
16
|
+
"@pie-lib/config-ui": "^11.0.6",
|
|
17
17
|
"@pie-lib/drag": "^1.1.52",
|
|
18
|
-
"@pie-lib/editable-html": "^
|
|
19
|
-
"@pie-lib/render-ui": "^4.
|
|
18
|
+
"@pie-lib/editable-html": "^9.0.2",
|
|
19
|
+
"@pie-lib/render-ui": "^4.13.1",
|
|
20
20
|
"classnames": "^2.2.5",
|
|
21
21
|
"debug": "^3.1.0",
|
|
22
22
|
"lodash": "^4.17.15",
|
package/docs/config-schema.json
CHANGED
|
@@ -114,6 +114,78 @@
|
|
|
114
114
|
"type": "number",
|
|
115
115
|
"title": "maxCategories"
|
|
116
116
|
},
|
|
117
|
+
"maxImageWidth": {
|
|
118
|
+
"title": "ConfigureMaxImageDimensionsProp",
|
|
119
|
+
"type": "object",
|
|
120
|
+
"properties": {
|
|
121
|
+
"teacherInstructions": {
|
|
122
|
+
"description": "Indicates the max dimension for images in teacher instructions",
|
|
123
|
+
"type": "number",
|
|
124
|
+
"title": "teacherInstructions"
|
|
125
|
+
},
|
|
126
|
+
"prompt": {
|
|
127
|
+
"description": "Indicates the max dimension for images in prompt - this is also the default dimension for all other input fields if it's not specified",
|
|
128
|
+
"type": "number",
|
|
129
|
+
"title": "prompt"
|
|
130
|
+
},
|
|
131
|
+
"rationale": {
|
|
132
|
+
"description": "Indicates the max dimension for images in rationale",
|
|
133
|
+
"type": "number",
|
|
134
|
+
"title": "rationale"
|
|
135
|
+
},
|
|
136
|
+
"choices": {
|
|
137
|
+
"description": "Indicates the max dimension for images in choices",
|
|
138
|
+
"type": "number",
|
|
139
|
+
"title": "choices"
|
|
140
|
+
},
|
|
141
|
+
"rowLabel": {
|
|
142
|
+
"description": "Indicates the max dimension for images in row labels",
|
|
143
|
+
"type": "number",
|
|
144
|
+
"title": "rowLabel"
|
|
145
|
+
},
|
|
146
|
+
"categoryLabel": {
|
|
147
|
+
"description": "Indicates the max dimension for images in category labels",
|
|
148
|
+
"type": "number",
|
|
149
|
+
"title": "categoryLabel"
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
},
|
|
153
|
+
"maxImageHeight": {
|
|
154
|
+
"title": "ConfigureMaxImageDimensionsProp",
|
|
155
|
+
"type": "object",
|
|
156
|
+
"properties": {
|
|
157
|
+
"teacherInstructions": {
|
|
158
|
+
"description": "Indicates the max dimension for images in teacher instructions",
|
|
159
|
+
"type": "number",
|
|
160
|
+
"title": "teacherInstructions"
|
|
161
|
+
},
|
|
162
|
+
"prompt": {
|
|
163
|
+
"description": "Indicates the max dimension for images in prompt - this is also the default dimension for all other input fields if it's not specified",
|
|
164
|
+
"type": "number",
|
|
165
|
+
"title": "prompt"
|
|
166
|
+
},
|
|
167
|
+
"rationale": {
|
|
168
|
+
"description": "Indicates the max dimension for images in rationale",
|
|
169
|
+
"type": "number",
|
|
170
|
+
"title": "rationale"
|
|
171
|
+
},
|
|
172
|
+
"choices": {
|
|
173
|
+
"description": "Indicates the max dimension for images in choices",
|
|
174
|
+
"type": "number",
|
|
175
|
+
"title": "choices"
|
|
176
|
+
},
|
|
177
|
+
"rowLabel": {
|
|
178
|
+
"description": "Indicates the max dimension for images in row labels",
|
|
179
|
+
"type": "number",
|
|
180
|
+
"title": "rowLabel"
|
|
181
|
+
},
|
|
182
|
+
"categoryLabel": {
|
|
183
|
+
"description": "Indicates the max dimension for images in category labels",
|
|
184
|
+
"type": "number",
|
|
185
|
+
"title": "categoryLabel"
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
},
|
|
117
189
|
"showPrompt": {
|
|
118
190
|
"description": "Determines whether prompt field will be displayed or not",
|
|
119
191
|
"default": true,
|
|
@@ -149,6 +221,42 @@
|
|
|
149
221
|
"title": "label"
|
|
150
222
|
}
|
|
151
223
|
}
|
|
224
|
+
},
|
|
225
|
+
"ConfigureMaxImageDimensionsProp": {
|
|
226
|
+
"title": "ConfigureMaxImageDimensionsProp",
|
|
227
|
+
"type": "object",
|
|
228
|
+
"properties": {
|
|
229
|
+
"teacherInstructions": {
|
|
230
|
+
"description": "Indicates the max dimension for images in teacher instructions",
|
|
231
|
+
"type": "number",
|
|
232
|
+
"title": "teacherInstructions"
|
|
233
|
+
},
|
|
234
|
+
"prompt": {
|
|
235
|
+
"description": "Indicates the max dimension for images in prompt - this is also the default dimension for all other input fields if it's not specified",
|
|
236
|
+
"type": "number",
|
|
237
|
+
"title": "prompt"
|
|
238
|
+
},
|
|
239
|
+
"rationale": {
|
|
240
|
+
"description": "Indicates the max dimension for images in rationale",
|
|
241
|
+
"type": "number",
|
|
242
|
+
"title": "rationale"
|
|
243
|
+
},
|
|
244
|
+
"choices": {
|
|
245
|
+
"description": "Indicates the max dimension for images in choices",
|
|
246
|
+
"type": "number",
|
|
247
|
+
"title": "choices"
|
|
248
|
+
},
|
|
249
|
+
"rowLabel": {
|
|
250
|
+
"description": "Indicates the max dimension for images in row labels",
|
|
251
|
+
"type": "number",
|
|
252
|
+
"title": "rowLabel"
|
|
253
|
+
},
|
|
254
|
+
"categoryLabel": {
|
|
255
|
+
"description": "Indicates the max dimension for images in category labels",
|
|
256
|
+
"type": "number",
|
|
257
|
+
"title": "categoryLabel"
|
|
258
|
+
}
|
|
259
|
+
}
|
|
152
260
|
}
|
|
153
261
|
},
|
|
154
262
|
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
@@ -86,6 +86,62 @@ Maximum number of choices
|
|
|
86
86
|
|
|
87
87
|
Maximum number of categories
|
|
88
88
|
|
|
89
|
+
# `maxImageWidth` (object)
|
|
90
|
+
|
|
91
|
+
Properties of the `maxImageWidth` object:
|
|
92
|
+
|
|
93
|
+
## `teacherInstructions` (number)
|
|
94
|
+
|
|
95
|
+
Indicates the max dimension for images in teacher instructions
|
|
96
|
+
|
|
97
|
+
## `prompt` (number)
|
|
98
|
+
|
|
99
|
+
Indicates the max dimension for images in prompt - this is also the default dimension for all other input fields if it's not specified
|
|
100
|
+
|
|
101
|
+
## `rationale` (number)
|
|
102
|
+
|
|
103
|
+
Indicates the max dimension for images in rationale
|
|
104
|
+
|
|
105
|
+
## `choices` (number)
|
|
106
|
+
|
|
107
|
+
Indicates the max dimension for images in choices
|
|
108
|
+
|
|
109
|
+
## `rowLabel` (number)
|
|
110
|
+
|
|
111
|
+
Indicates the max dimension for images in row labels
|
|
112
|
+
|
|
113
|
+
## `categoryLabel` (number)
|
|
114
|
+
|
|
115
|
+
Indicates the max dimension for images in category labels
|
|
116
|
+
|
|
117
|
+
# `maxImageHeight` (object)
|
|
118
|
+
|
|
119
|
+
Properties of the `maxImageHeight` object:
|
|
120
|
+
|
|
121
|
+
## `teacherInstructions` (number)
|
|
122
|
+
|
|
123
|
+
Indicates the max dimension for images in teacher instructions
|
|
124
|
+
|
|
125
|
+
## `prompt` (number)
|
|
126
|
+
|
|
127
|
+
Indicates the max dimension for images in prompt - this is also the default dimension for all other input fields if it's not specified
|
|
128
|
+
|
|
129
|
+
## `rationale` (number)
|
|
130
|
+
|
|
131
|
+
Indicates the max dimension for images in rationale
|
|
132
|
+
|
|
133
|
+
## `choices` (number)
|
|
134
|
+
|
|
135
|
+
Indicates the max dimension for images in choices
|
|
136
|
+
|
|
137
|
+
## `rowLabel` (number)
|
|
138
|
+
|
|
139
|
+
Indicates the max dimension for images in row labels
|
|
140
|
+
|
|
141
|
+
## `categoryLabel` (number)
|
|
142
|
+
|
|
143
|
+
Indicates the max dimension for images in category labels
|
|
144
|
+
|
|
89
145
|
# `showPrompt` (boolean)
|
|
90
146
|
|
|
91
147
|
Determines whether prompt field will be displayed or not
|
|
@@ -120,4 +176,32 @@ Indicates if the item has to be displayed in the Settings Panel
|
|
|
120
176
|
|
|
121
177
|
### `label` (string)
|
|
122
178
|
|
|
123
|
-
Indicates the label for the item that has to be displayed in the Settings Panel
|
|
179
|
+
Indicates the label for the item that has to be displayed in the Settings Panel
|
|
180
|
+
|
|
181
|
+
## `ConfigureMaxImageDimensionsProp` (object)
|
|
182
|
+
|
|
183
|
+
Properties of the `ConfigureMaxImageDimensionsProp` object:
|
|
184
|
+
|
|
185
|
+
### `teacherInstructions` (number)
|
|
186
|
+
|
|
187
|
+
Indicates the max dimension for images in teacher instructions
|
|
188
|
+
|
|
189
|
+
### `prompt` (number)
|
|
190
|
+
|
|
191
|
+
Indicates the max dimension for images in prompt - this is also the default dimension for all other input fields if it's not specified
|
|
192
|
+
|
|
193
|
+
### `rationale` (number)
|
|
194
|
+
|
|
195
|
+
Indicates the max dimension for images in rationale
|
|
196
|
+
|
|
197
|
+
### `choices` (number)
|
|
198
|
+
|
|
199
|
+
Indicates the max dimension for images in choices
|
|
200
|
+
|
|
201
|
+
### `rowLabel` (number)
|
|
202
|
+
|
|
203
|
+
Indicates the max dimension for images in row labels
|
|
204
|
+
|
|
205
|
+
### `categoryLabel` (number)
|
|
206
|
+
|
|
207
|
+
Indicates the max dimension for images in category labels
|
package/docs/pie-schema.json
CHANGED
|
@@ -443,6 +443,42 @@
|
|
|
443
443
|
}
|
|
444
444
|
}
|
|
445
445
|
},
|
|
446
|
+
"ConfigureMaxImageDimensionsProp": {
|
|
447
|
+
"title": "ConfigureMaxImageDimensionsProp",
|
|
448
|
+
"type": "object",
|
|
449
|
+
"properties": {
|
|
450
|
+
"teacherInstructions": {
|
|
451
|
+
"description": "Indicates the max dimension for images in teacher instructions",
|
|
452
|
+
"type": "number",
|
|
453
|
+
"title": "teacherInstructions"
|
|
454
|
+
},
|
|
455
|
+
"prompt": {
|
|
456
|
+
"description": "Indicates the max dimension for images in prompt - this is also the default dimension for all other input fields if it's not specified",
|
|
457
|
+
"type": "number",
|
|
458
|
+
"title": "prompt"
|
|
459
|
+
},
|
|
460
|
+
"rationale": {
|
|
461
|
+
"description": "Indicates the max dimension for images in rationale",
|
|
462
|
+
"type": "number",
|
|
463
|
+
"title": "rationale"
|
|
464
|
+
},
|
|
465
|
+
"choices": {
|
|
466
|
+
"description": "Indicates the max dimension for images in choices",
|
|
467
|
+
"type": "number",
|
|
468
|
+
"title": "choices"
|
|
469
|
+
},
|
|
470
|
+
"rowLabel": {
|
|
471
|
+
"description": "Indicates the max dimension for images in row labels",
|
|
472
|
+
"type": "number",
|
|
473
|
+
"title": "rowLabel"
|
|
474
|
+
},
|
|
475
|
+
"categoryLabel": {
|
|
476
|
+
"description": "Indicates the max dimension for images in category labels",
|
|
477
|
+
"type": "number",
|
|
478
|
+
"title": "categoryLabel"
|
|
479
|
+
}
|
|
480
|
+
}
|
|
481
|
+
},
|
|
446
482
|
"CategoryChoice": {
|
|
447
483
|
"title": "CategoryChoice",
|
|
448
484
|
"type": "object",
|
package/docs/pie-schema.json.md
CHANGED
|
@@ -203,6 +203,34 @@ Indicates if the item has to be displayed in the Settings Panel
|
|
|
203
203
|
|
|
204
204
|
Indicates the label for the item that has to be displayed in the Settings Panel
|
|
205
205
|
|
|
206
|
+
## `ConfigureMaxImageDimensionsProp` (object)
|
|
207
|
+
|
|
208
|
+
Properties of the `ConfigureMaxImageDimensionsProp` object:
|
|
209
|
+
|
|
210
|
+
### `teacherInstructions` (number)
|
|
211
|
+
|
|
212
|
+
Indicates the max dimension for images in teacher instructions
|
|
213
|
+
|
|
214
|
+
### `prompt` (number)
|
|
215
|
+
|
|
216
|
+
Indicates the max dimension for images in prompt - this is also the default dimension for all other input fields if it's not specified
|
|
217
|
+
|
|
218
|
+
### `rationale` (number)
|
|
219
|
+
|
|
220
|
+
Indicates the max dimension for images in rationale
|
|
221
|
+
|
|
222
|
+
### `choices` (number)
|
|
223
|
+
|
|
224
|
+
Indicates the max dimension for images in choices
|
|
225
|
+
|
|
226
|
+
### `rowLabel` (number)
|
|
227
|
+
|
|
228
|
+
Indicates the max dimension for images in row labels
|
|
229
|
+
|
|
230
|
+
### `categoryLabel` (number)
|
|
231
|
+
|
|
232
|
+
Indicates the max dimension for images in category labels
|
|
233
|
+
|
|
206
234
|
## `CategoryChoice` (object)
|
|
207
235
|
|
|
208
236
|
Properties of the `CategoryChoice` object:
|
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
7
|
-
"version": "
|
|
7
|
+
"version": "7.1.1",
|
|
8
8
|
"description": "",
|
|
9
9
|
"author": "pie framework developers",
|
|
10
10
|
"license": "ISC",
|
|
@@ -12,10 +12,10 @@
|
|
|
12
12
|
"@material-ui/core": "^3.9.2",
|
|
13
13
|
"@pie-framework/pie-player-events": "^0.1.0",
|
|
14
14
|
"@pie-lib/categorize": "^0.6.24",
|
|
15
|
-
"@pie-lib/correct-answer-toggle": "^2.3.
|
|
15
|
+
"@pie-lib/correct-answer-toggle": "^2.3.41",
|
|
16
16
|
"@pie-lib/drag": "^1.1.52",
|
|
17
|
-
"@pie-lib/math-rendering": "^2.4.
|
|
18
|
-
"@pie-lib/render-ui": "^4.
|
|
17
|
+
"@pie-lib/math-rendering": "^2.4.5",
|
|
18
|
+
"@pie-lib/render-ui": "^4.13.1",
|
|
19
19
|
"classnames": "^2.2.5",
|
|
20
20
|
"debug": "^4.1.1",
|
|
21
21
|
"lodash": "^4.17.15",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"react-dnd": "^9.3.2",
|
|
25
25
|
"react-dom": "^16.8.1"
|
|
26
26
|
},
|
|
27
|
-
"gitHead": "
|
|
27
|
+
"gitHead": "30ddb939cb470e2b4f0281aec44143a9188e3106",
|
|
28
28
|
"scripts": {
|
|
29
29
|
"postpublish": "../../scripts/postpublish"
|
|
30
30
|
},
|