@pie-element/image-cloze-association 5.5.1-next.7 → 5.5.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 +11 -0
- package/controller/CHANGELOG.md +11 -0
- package/controller/lib/utils.js +2 -2
- package/controller/lib/utils.js.map +1 -1
- package/controller/package.json +1 -1
- package/controller/src/utils.js +2 -2
- package/lib/image-container.js +4 -3
- package/lib/image-container.js.map +1 -1
- package/lib/image-drop-target.js +1 -1
- package/lib/image-drop-target.js.map +1 -1
- package/lib/possible-responses.js +1 -1
- package/lib/possible-responses.js.map +1 -1
- package/lib/utils-correctness.js +3 -3
- package/lib/utils-correctness.js.map +1 -1
- package/package.json +2 -2
- package/src/image-container.jsx +2 -2
- package/src/image-drop-target.jsx +1 -1
- package/src/possible-responses.jsx +1 -1
- package/src/utils-correctness.js +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,17 @@
|
|
|
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
|
+
## [5.5.1](https://github.com/pie-framework/pie-elements/compare/@pie-element/image-cloze-association@5.5.0...@pie-element/image-cloze-association@5.5.1) (2024-02-10)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* add sanity checks ([26d413d](https://github.com/pie-framework/pie-elements/commit/26d413dedee87f1873b4bdbb9f9ebdaf07313a26))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
6
17
|
# [5.5.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/image-cloze-association@5.4.5...@pie-element/image-cloze-association@5.5.0) (2024-02-09)
|
|
7
18
|
|
|
8
19
|
|
package/controller/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,17 @@
|
|
|
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
|
+
## [4.2.1](https://github.com/pie-framework/pie-elements/compare/@pie-element/image-cloze-association-controller@4.2.0...@pie-element/image-cloze-association-controller@4.2.1) (2024-02-10)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* add sanity checks ([26d413d](https://github.com/pie-framework/pie-elements/commit/26d413dedee87f1873b4bdbb9f9ebdaf07313a26))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
6
17
|
# [4.2.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/image-cloze-association-controller@4.1.8...@pie-element/image-cloze-association-controller@4.2.0) (2024-02-09)
|
|
7
18
|
|
|
8
19
|
|
package/controller/lib/utils.js
CHANGED
|
@@ -14,7 +14,7 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
|
|
|
14
14
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
15
15
|
|
|
16
16
|
var getAllCorrectness = function getAllCorrectness(answers, responses) {
|
|
17
|
-
return answers.map(function (answer) {
|
|
17
|
+
return (answers || []).map(function (answer) {
|
|
18
18
|
return _objectSpread(_objectSpread({}, answer), {}, {
|
|
19
19
|
isCorrect: (responses[answer.containerIndex] && responses[answer.containerIndex].images || []).includes(answer.value)
|
|
20
20
|
});
|
|
@@ -39,7 +39,7 @@ var getAllUniqueCorrectness = function getAllUniqueCorrectness(answers, validRes
|
|
|
39
39
|
valuesToParse.shift(); // mark duplicates as incorrect
|
|
40
40
|
|
|
41
41
|
valuesToParse.forEach(function (value, index) {
|
|
42
|
-
allCorrectness = allCorrectness.map(function (finalAnswer) {
|
|
42
|
+
allCorrectness = (allCorrectness || []).map(function (finalAnswer) {
|
|
43
43
|
if (finalAnswer.id === value.id) {
|
|
44
44
|
var valid = getValidAnswer(finalAnswer, validResponses);
|
|
45
45
|
return _objectSpread(_objectSpread({}, finalAnswer), {}, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/utils.js"],"names":["getAllCorrectness","answers","responses","map","answer","isCorrect","containerIndex","images","includes","value","getValidAnswer","response","filter","res","getAllUniqueCorrectness","validResponses","allCorrectness","forEach","answer1","valuesToParse","answer2","length","shift","index","finalAnswer","id","valid"],"mappings":";;;;;;;;;;;;;;;AAAA,IAAMA,iBAAiB,GAAG,SAApBA,iBAAoB,CAACC,OAAD,EAAUC,SAAV;AAAA,
|
|
1
|
+
{"version":3,"sources":["../src/utils.js"],"names":["getAllCorrectness","answers","responses","map","answer","isCorrect","containerIndex","images","includes","value","getValidAnswer","response","filter","res","getAllUniqueCorrectness","validResponses","allCorrectness","forEach","answer1","valuesToParse","answer2","length","shift","index","finalAnswer","id","valid"],"mappings":";;;;;;;;;;;;;;;AAAA,IAAMA,iBAAiB,GAAG,SAApBA,iBAAoB,CAACC,OAAD,EAAUC,SAAV;AAAA,SAAwB,CAACD,OAAO,IAAI,EAAZ,EAAgBE,GAAhB,CAAoB,UAACC,MAAD;AAAA,2CAC/DA,MAD+D;AAElEC,MAAAA,SAAS,EAAE,CAACH,SAAS,CAACE,MAAM,CAACE,cAAR,CAAT,IAAoCJ,SAAS,CAACE,MAAM,CAACE,cAAR,CAAT,CAAiCC,MAArE,IAA+E,EAAhF,EAAoFC,QAApF,CAA6FJ,MAAM,CAACK,KAApG;AAFuD;AAAA,GAApB,CAAxB;AAAA,CAA1B;;AAKA,IAAMC,cAAc,GAAG,SAAjBA,cAAiB,CAACN,MAAD,EAASO,QAAT;AAAA,SACrB,CAACA,QAAQ,CAACP,MAAM,CAACE,cAAR,CAAR,IAAmCK,QAAQ,CAACP,MAAM,CAACE,cAAR,CAAR,CAAgCC,MAAnE,IAA6E,EAA9E,EAAkFK,MAAlF,CAAyF,UAACC,GAAD;AAAA,WAASA,GAAG,KAAKT,MAAM,CAACK,KAAxB;AAAA,GAAzF,CADqB;AAAA,CAAvB;;AAGO,IAAMK,uBAAuB,GAAG,SAA1BA,uBAA0B,CAACb,OAAD,EAAUc,cAAV,EAA6B;AAClE,MAAIC,cAAc,GAAGhB,iBAAiB,CAACC,OAAD,EAAUc,cAAV,CAAtC;AAEAd,EAAAA,OAAO,CAACgB,OAAR,CAAgB,UAACC,OAAD,EAAa;AAC3B,QAAMC,aAAa,GAAGlB,OAAO,CAACW,MAAR,CACpB,UAACQ,OAAD;AAAA,aAAaA,OAAO,CAACX,KAAR,KAAkBS,OAAO,CAACT,KAA1B,IAAmCW,OAAO,CAACd,cAAR,KAA2BY,OAAO,CAACZ,cAAnF;AAAA,KADoB,CAAtB;;AAIA,QAAIa,aAAa,CAACE,MAAd,GAAuB,CAA3B,EAA8B;AAC5B;AACAF,MAAAA,aAAa,CAACG,KAAd,GAF4B,CAG5B;;AACAH,MAAAA,aAAa,CAACF,OAAd,CAAsB,UAACR,KAAD,EAAQc,KAAR,EAAkB;AACtCP,QAAAA,cAAc,GAAG,CAACA,cAAc,IAAI,EAAnB,EAAuBb,GAAvB,CAA2B,UAACqB,WAAD,EAAiB;AAC3D,cAAIA,WAAW,CAACC,EAAZ,KAAmBhB,KAAK,CAACgB,EAA7B,EAAiC;AAC/B,gBAAIC,KAAK,GAAGhB,cAAc,CAACc,WAAD,EAAcT,cAAd,CAA1B;AACA,mDACKS,WADL;AAEEnB,cAAAA,SAAS,EAAEqB,KAAK,CAACL,MAAN,GAAeE,KAAK,GAAG;AAFpC;AAID;;AACD,iBAAOC,WAAP;AACD,SATgB,CAAjB;AAUD,OAXD;AAYD;AACF,GAtBD;AAuBA,SAAOR,cAAP;AACD,CA3BM","sourcesContent":["const getAllCorrectness = (answers, responses) => (answers || []).map((answer) => ({\n ...answer,\n isCorrect: (responses[answer.containerIndex] && responses[answer.containerIndex].images || []).includes(answer.value),\n}));\n\nconst getValidAnswer = (answer, response) =>\n (response[answer.containerIndex] && response[answer.containerIndex].images || []).filter((res) => res === answer.value);\n\nexport const getAllUniqueCorrectness = (answers, validResponses) => {\n let allCorrectness = getAllCorrectness(answers, validResponses);\n\n answers.forEach((answer1) => {\n const valuesToParse = answers.filter(\n (answer2) => answer2.value === answer1.value && answer2.containerIndex === answer1.containerIndex,\n );\n\n if (valuesToParse.length > 1) {\n // point only to duplicates but first\n valuesToParse.shift();\n // mark duplicates as incorrect\n valuesToParse.forEach((value, index) => {\n allCorrectness = (allCorrectness || []).map((finalAnswer) => {\n if (finalAnswer.id === value.id) {\n let valid = getValidAnswer(finalAnswer, validResponses);\n return {\n ...finalAnswer,\n isCorrect: valid.length > index + 1,\n };\n }\n return finalAnswer;\n });\n });\n }\n });\n return allCorrectness;\n};\n"],"file":"utils.js"}
|
package/controller/package.json
CHANGED
package/controller/src/utils.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const getAllCorrectness = (answers, responses) => answers.map((answer) => ({
|
|
1
|
+
const getAllCorrectness = (answers, responses) => (answers || []).map((answer) => ({
|
|
2
2
|
...answer,
|
|
3
3
|
isCorrect: (responses[answer.containerIndex] && responses[answer.containerIndex].images || []).includes(answer.value),
|
|
4
4
|
}));
|
|
@@ -19,7 +19,7 @@ export const getAllUniqueCorrectness = (answers, validResponses) => {
|
|
|
19
19
|
valuesToParse.shift();
|
|
20
20
|
// mark duplicates as incorrect
|
|
21
21
|
valuesToParse.forEach((value, index) => {
|
|
22
|
-
allCorrectness = allCorrectness.map((finalAnswer) => {
|
|
22
|
+
allCorrectness = (allCorrectness || []).map((finalAnswer) => {
|
|
23
23
|
if (finalAnswer.id === value.id) {
|
|
24
24
|
let valid = getValidAnswer(finalAnswer, validResponses);
|
|
25
25
|
return {
|
package/lib/image-container.js
CHANGED
|
@@ -54,8 +54,9 @@ var ImageContainer = /*#__PURE__*/function (_Component) {
|
|
|
54
54
|
classes = _this$props.classes,
|
|
55
55
|
draggingElement = _this$props.draggingElement,
|
|
56
56
|
duplicateResponses = _this$props.duplicateResponses,
|
|
57
|
-
_this$props$image = _this$props.image
|
|
58
|
-
|
|
57
|
+
_this$props$image = _this$props.image;
|
|
58
|
+
_this$props$image = _this$props$image === void 0 ? {} : _this$props$image;
|
|
59
|
+
var height = _this$props$image.height,
|
|
59
60
|
src = _this$props$image.src,
|
|
60
61
|
width = _this$props$image.width,
|
|
61
62
|
onAnswerSelect = _this$props.onAnswerSelect,
|
|
@@ -69,7 +70,7 @@ var ImageContainer = /*#__PURE__*/function (_Component) {
|
|
|
69
70
|
src: src,
|
|
70
71
|
height: height,
|
|
71
72
|
width: width
|
|
72
|
-
}), responseContainers.map(function (r, i) {
|
|
73
|
+
}), (responseContainers || []).map(function (r, i) {
|
|
73
74
|
var rHeight = r.height.replace('%', '') / 100 * height;
|
|
74
75
|
var rWidth = r.width.replace('%', '') / 100 * width;
|
|
75
76
|
var rLeft = r.x / 100 * width;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/image-container.jsx"],"names":["ImageContainer","props","answers","canDrag","classes","draggingElement","duplicateResponses","image","height","src","width","onAnswerSelect","onDragAnswerBegin","onDragAnswerEnd","responseContainers","showDashedBorder","base","map","r","i","rHeight","replace","rWidth","rLeft","x","rTop","y","answersParsed","filter","a","containerIndex","index","left","top","id","item","Component","propTypes","PropTypes","array","isRequired","bool","object","shape","func","defaultProps","styles","theme","margin","spacing","unit","position"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;;;;;;;;;IAEMA,c;;;;;;;;;;;;WACJ,kBAAS;AACP,wBAYI,KAAKC,KAZT;AAAA,UACEC,OADF,eACEA,OADF;AAAA,UAEEC,OAFF,eAEEA,OAFF;AAAA,UAGEC,OAHF,eAGEA,OAHF;AAAA,UAIEC,eAJF,eAIEA,eAJF;AAAA,UAKEC,kBALF,eAKEA,kBALF;AAAA,0CAMEC,KANF;AAAA,UAMWC,MANX,qBAMWA,MANX;AAAA,UAMmBC,GANnB,qBAMmBA,GANnB;AAAA,UAMwBC,KANxB,qBAMwBA,KANxB;AAAA,UAOEC,cAPF,eAOEA,cAPF;AAAA,UAQEC,iBARF,eAQEA,iBARF;AAAA,UASEC,eATF,eASEA,eATF;AAAA,UAUEC,kBAVF,eAUEA,kBAVF;AAAA,UAWEC,gBAXF,eAWEA,gBAXF;AAcA,0BACE;AAAK,QAAA,SAAS,EAAEX,OAAO,CAACY;AAAxB,sBACE;AAAK,QAAA,GAAG,EAAEP,GAAV;AAAe,QAAA,MAAM,EAAED,MAAvB;AAA+B,QAAA,KAAK,EAAEE;AAAtC,QADF,
|
|
1
|
+
{"version":3,"sources":["../src/image-container.jsx"],"names":["ImageContainer","props","answers","canDrag","classes","draggingElement","duplicateResponses","image","height","src","width","onAnswerSelect","onDragAnswerBegin","onDragAnswerEnd","responseContainers","showDashedBorder","base","map","r","i","rHeight","replace","rWidth","rLeft","x","rTop","y","answersParsed","filter","a","containerIndex","index","left","top","id","item","Component","propTypes","PropTypes","array","isRequired","bool","object","shape","func","defaultProps","styles","theme","margin","spacing","unit","position"],"mappings":"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","sourcesContent":["import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core';\n\nimport ImageDropTarget from './image-drop-target';\n\nclass ImageContainer extends Component {\n render() {\n const {\n answers,\n canDrag,\n classes,\n draggingElement,\n duplicateResponses,\n image: { height, src, width } = {},\n onAnswerSelect,\n onDragAnswerBegin,\n onDragAnswerEnd,\n responseContainers,\n showDashedBorder,\n } = this.props;\n\n return (\n <div className={classes.base}>\n <img src={src} height={height} width={width} />\n {(responseContainers || []).map((r, i) => {\n const rHeight = (r.height.replace('%', '') / 100) * height;\n const rWidth = (r.width.replace('%', '') / 100) * width;\n const rLeft = (r.x / 100) * width;\n const rTop = (r.y / 100) * height;\n const answersParsed = answers.filter((a) => a.containerIndex === r.index);\n\n return (\n <ImageDropTarget\n answers={answersParsed}\n canDrag={canDrag}\n containerStyle={{\n height: rHeight,\n width: rWidth,\n left: rLeft,\n top: rTop,\n }}\n duplicateResponses={duplicateResponses}\n key={r.id + i}\n draggingElement={draggingElement}\n onDrop={(item) => onAnswerSelect(item, r.index)}\n onDragAnswerBegin={onDragAnswerBegin}\n onDragAnswerEnd={onDragAnswerEnd}\n showDashedBorder={showDashedBorder}\n />\n );\n })}\n </div>\n );\n }\n}\n\nImageContainer.propTypes = {\n answers: PropTypes.array.isRequired,\n canDrag: PropTypes.bool.isRequired,\n classes: PropTypes.object,\n draggingElement: PropTypes.shape({}).isRequired,\n duplicateResponses: PropTypes.bool,\n image: PropTypes.object.isRequired,\n onAnswerSelect: PropTypes.func.isRequired,\n onDragAnswerBegin: PropTypes.func.isRequired,\n onDragAnswerEnd: PropTypes.func.isRequired,\n responseContainers: PropTypes.array.isRequired,\n showDashedBorder: PropTypes.bool,\n};\n\nImageContainer.defaultProps = {\n classes: {},\n duplicateResponses: false,\n};\n\nconst styles = (theme) => ({\n base: {\n margin: theme.spacing.unit * 2,\n position: 'relative',\n },\n});\nexport default withStyles(styles)(ImageContainer);\n"],"file":"image-container.js"}
|
package/lib/image-drop-target.js
CHANGED
|
@@ -37,7 +37,7 @@ var ImageDropTarget = function ImageDropTarget(_ref) {
|
|
|
37
37
|
style: containerStyle
|
|
38
38
|
}, answers.length || duplicateResponses && answers.length ? /*#__PURE__*/_react["default"].createElement("div", {
|
|
39
39
|
className: classes.answers
|
|
40
|
-
}, answers.map(function (answer) {
|
|
40
|
+
}, (answers || []).map(function (answer) {
|
|
41
41
|
return /*#__PURE__*/_react["default"].createElement(_possibleResponse["default"], {
|
|
42
42
|
canDrag: canDrag,
|
|
43
43
|
containerStyle: answer.isCorrect === undefined ? {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/image-drop-target.jsx"],"names":["ImageDropTarget","answers","canDrag","classes","containerStyle","draggingElement","duplicateResponses","onDragAnswerBegin","onDragAnswerEnd","showDashedBorder","connectDropTarget","responseContainer","id","responseContainerDashed","responseContainerActive","length","map","answer","isCorrect","undefined","borderWidth","propTypes","PropTypes","object","bool","isRequired","func","onDrop","defaultProps","styles","display","flexWrap","dragOverContainer","backgroundColor","color","background","pointerEvents","width","position","border","text","Styled","tileSource","hover","props","monitor","isOver","shallow","drop","item","getItem","c","types","response","connect","dropTarget","dragItem"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AACA;;AAEA,IAAMA,eAAe,GAAG,SAAlBA,eAAkB;AAAA,MACtBC,OADsB,QACtBA,OADsB;AAAA,MAEtBC,OAFsB,QAEtBA,OAFsB;AAAA,MAGtBC,OAHsB,QAGtBA,OAHsB;AAAA,MAItBC,cAJsB,QAItBA,cAJsB;AAAA,MAKtBC,eALsB,QAKtBA,eALsB;AAAA,MAMtBC,kBANsB,QAMtBA,kBANsB;AAAA,MAOtBC,iBAPsB,QAOtBA,iBAPsB;AAAA,MAQtBC,eARsB,QAQtBA,eARsB;AAAA,MAStBC,gBATsB,QAStBA,gBATsB;AAAA,MAWtBC,iBAXsB,QAWtBA,iBAXsB;AAAA,SAatBA,iBAAiB,eACf;AACE,IAAA,SAAS,sBACLP,OAAO,CAACQ,iBADH,uBAELF,gBAAgB,IAAI,CAACJ,eAAe,CAACO,EAArC,GAA0CT,OAAO,CAACU,uBAAlD,GAA4E,EAFvE,uBAGLR,eAAe,CAACO,EAAhB,GAAqBT,OAAO,CAACW,uBAA7B,GAAuD,EAHlD,aADX;AAME,IAAA,KAAK,EAAEV;AANT,KAQGH,OAAO,CAACc,MAAR,IAAmBT,kBAAkB,IAAIL,OAAO,CAACc,MAAjD,gBACC;AAAK,IAAA,SAAS,EAAEZ,OAAO,CAACF;AAAxB,
|
|
1
|
+
{"version":3,"sources":["../src/image-drop-target.jsx"],"names":["ImageDropTarget","answers","canDrag","classes","containerStyle","draggingElement","duplicateResponses","onDragAnswerBegin","onDragAnswerEnd","showDashedBorder","connectDropTarget","responseContainer","id","responseContainerDashed","responseContainerActive","length","map","answer","isCorrect","undefined","borderWidth","propTypes","PropTypes","object","bool","isRequired","func","onDrop","defaultProps","styles","display","flexWrap","dragOverContainer","backgroundColor","color","background","pointerEvents","width","position","border","text","Styled","tileSource","hover","props","monitor","isOver","shallow","drop","item","getItem","c","types","response","connect","dropTarget","dragItem"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { DropTarget } from '@pie-lib/pie-toolbox/drag';\nimport { withStyles } from '@material-ui/core/styles';\nimport { color } from '@pie-lib/pie-toolbox/render-ui';\n\nimport PossibleResponse from './possible-response';\nimport c from './constants';\n\nconst ImageDropTarget = ({\n answers,\n canDrag,\n classes,\n containerStyle,\n draggingElement,\n duplicateResponses,\n onDragAnswerBegin,\n onDragAnswerEnd,\n showDashedBorder,\n // dnd-related props\n connectDropTarget,\n}) =>\n connectDropTarget(\n <div\n className={`\n ${classes.responseContainer}\n ${showDashedBorder && !draggingElement.id ? classes.responseContainerDashed : ''}\n ${draggingElement.id ? classes.responseContainerActive : ''}\n `}\n style={containerStyle}\n >\n {answers.length || (duplicateResponses && answers.length) ? (\n <div className={classes.answers}>\n {(answers || []).map((answer) => (\n <PossibleResponse\n canDrag={canDrag}\n containerStyle={answer.isCorrect === undefined ? { borderWidth: 0 } : {}}\n key={answer.id}\n data={answer}\n onDragBegin={() => onDragAnswerBegin(answer)}\n onDragEnd={onDragAnswerEnd}\n />\n ))}\n </div>\n ) : null}\n </div>,\n );\n\nImageDropTarget.propTypes = {\n answer: PropTypes.object,\n canDrag: PropTypes.bool.isRequired,\n classes: PropTypes.object,\n containerStyle: PropTypes.object.isRequired,\n draggingElement: PropTypes.object.isRequired,\n onDragAnswerBegin: PropTypes.func.isRequired,\n onDragAnswerEnd: PropTypes.func.isRequired,\n onDrop: PropTypes.func.isRequired,\n showDashedBorder: PropTypes.bool,\n};\n\nImageDropTarget.defaultProps = {\n answer: {},\n classes: {},\n};\n\nconst styles = () => ({\n answers: {\n display: 'flex',\n flexWrap: 'wrap',\n },\n dragOverContainer: {\n backgroundColor: color.background(),\n pointerEvents: 'none',\n width: 'fit-content',\n },\n responseContainer: {\n position: 'absolute',\n },\n responseContainerActive: {\n border: `2px solid ${color.text()}`,\n backgroundColor: 'rgba(230, 242, 252, .8)',\n },\n responseContainerDashed: {\n border: `2px dashed ${color.text()}`,\n },\n});\n\nconst Styled = withStyles(styles)(ImageDropTarget);\n\nconst tileSource = {\n hover(props, monitor) {\n monitor.isOver({ shallow: true });\n },\n drop(props, monitor) {\n const item = monitor.getItem();\n props.onDrop(item);\n },\n};\n\nexport default DropTarget(c.types.response, tileSource, (connect, monitor) => ({\n connectDropTarget: connect.dropTarget(),\n isOver: monitor.isOver(),\n dragItem: monitor.getItem(),\n}))(Styled);\n"],"file":"image-drop-target.js"}
|
|
@@ -31,7 +31,7 @@ var PossibleResponses = function PossibleResponses(_ref) {
|
|
|
31
31
|
}, /*#__PURE__*/_react["default"].createElement(_drag.ICADroppablePlaceholder, {
|
|
32
32
|
disabled: !canDrag,
|
|
33
33
|
onRemoveAnswer: onAnswerRemove
|
|
34
|
-
}, data.map(function (item) {
|
|
34
|
+
}, (data || []).map(function (item) {
|
|
35
35
|
return /*#__PURE__*/_react["default"].createElement(_possibleResponse["default"], {
|
|
36
36
|
canDrag: canDrag,
|
|
37
37
|
key: item.id,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/possible-responses.jsx"],"names":["PossibleResponses","canDrag","classes","data","onAnswerRemove","onDragBegin","onDragEnd","base","map","item","id","propTypes","PropTypes","bool","isRequired","object","array","func","defaultProps","styles","theme","backgroundColor","color","background","padding","spacing","unit","display","alignItems"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AAEA,IAAMA,iBAAiB,GAAG,SAApBA,iBAAoB;AAAA,MAAGC,OAAH,QAAGA,OAAH;AAAA,MAAYC,OAAZ,QAAYA,OAAZ;AAAA,MAAqBC,IAArB,QAAqBA,IAArB;AAAA,MAA2BC,cAA3B,QAA2BA,cAA3B;AAAA,MAA2CC,WAA3C,QAA2CA,WAA3C;AAAA,MAAwDC,SAAxD,QAAwDA,SAAxD;AAAA,sBACxB;AAAK,IAAA,SAAS,EAAEJ,OAAO,CAACK;AAAxB,kBACE,gCAAC,6BAAD;AAAyB,IAAA,QAAQ,EAAE,CAACN,OAApC;AAA6C,IAAA,cAAc,EAAEG;AAA7D,
|
|
1
|
+
{"version":3,"sources":["../src/possible-responses.jsx"],"names":["PossibleResponses","canDrag","classes","data","onAnswerRemove","onDragBegin","onDragEnd","base","map","item","id","propTypes","PropTypes","bool","isRequired","object","array","func","defaultProps","styles","theme","backgroundColor","color","background","padding","spacing","unit","display","alignItems"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AAEA,IAAMA,iBAAiB,GAAG,SAApBA,iBAAoB;AAAA,MAAGC,OAAH,QAAGA,OAAH;AAAA,MAAYC,OAAZ,QAAYA,OAAZ;AAAA,MAAqBC,IAArB,QAAqBA,IAArB;AAAA,MAA2BC,cAA3B,QAA2BA,cAA3B;AAAA,MAA2CC,WAA3C,QAA2CA,WAA3C;AAAA,MAAwDC,SAAxD,QAAwDA,SAAxD;AAAA,sBACxB;AAAK,IAAA,SAAS,EAAEJ,OAAO,CAACK;AAAxB,kBACE,gCAAC,6BAAD;AAAyB,IAAA,QAAQ,EAAE,CAACN,OAApC;AAA6C,IAAA,cAAc,EAAEG;AAA7D,KACG,CAACD,IAAI,IAAI,EAAT,EAAaK,GAAb,CAAiB,UAACC,IAAD;AAAA,wBAChB,gCAAC,4BAAD;AAAkB,MAAA,OAAO,EAAER,OAA3B;AAAoC,MAAA,GAAG,EAAEQ,IAAI,CAACC,EAA9C;AAAkD,MAAA,IAAI,EAAED,IAAxD;AAA8D,MAAA,WAAW,EAAEJ,WAA3E;AAAwF,MAAA,SAAS,EAAEC;AAAnG,MADgB;AAAA,GAAjB,CADH,CADF,CADwB;AAAA,CAA1B;;AAUAN,iBAAiB,CAACW,SAAlB,GAA8B;AAC5BV,EAAAA,OAAO,EAAEW,sBAAUC,IAAV,CAAeC,UADI;AAE5BZ,EAAAA,OAAO,EAAEU,sBAAUG,MAFS;AAG5BZ,EAAAA,IAAI,EAAES,sBAAUI,KAAV,CAAgBF,UAHM;AAI5BV,EAAAA,cAAc,EAAEQ,sBAAUK,IAAV,CAAeH,UAJH;AAK5BT,EAAAA,WAAW,EAAEO,sBAAUK,IAAV,CAAeH,UALA;AAM5BR,EAAAA,SAAS,EAAEM,sBAAUK,IAAV,CAAeH;AANE,CAA9B;AASAd,iBAAiB,CAACkB,YAAlB,GAAiC;AAC/BhB,EAAAA,OAAO,EAAE;AADsB,CAAjC;;AAIA,IAAMiB,MAAM,GAAG,SAATA,MAAS,CAACC,KAAD;AAAA,SAAY;AACzBb,IAAAA,IAAI,EAAE;AACJc,MAAAA,eAAe,EAAEC,gBAAMC,UAAN,EADb;AAEJC,MAAAA,OAAO,EAAEJ,KAAK,CAACK,OAAN,CAAcC,IAAd,GAAqB,CAF1B;AAGJC,MAAAA,OAAO,EAAE,MAHL;AAIJC,MAAAA,UAAU,EAAE;AAJR;AADmB,GAAZ;AAAA,CAAf;;eASe,sBAAWT,MAAX,EAAmBnB,iBAAnB,C","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core';\nimport { color } from '@pie-lib/pie-toolbox/render-ui';\nimport { ICADroppablePlaceholder } from '@pie-lib/pie-toolbox/drag';\n\nimport PossibleResponse from './possible-response';\n\nconst PossibleResponses = ({ canDrag, classes, data, onAnswerRemove, onDragBegin, onDragEnd }) => (\n <div className={classes.base}>\n <ICADroppablePlaceholder disabled={!canDrag} onRemoveAnswer={onAnswerRemove}>\n {(data || []).map((item) => (\n <PossibleResponse canDrag={canDrag} key={item.id} data={item} onDragBegin={onDragBegin} onDragEnd={onDragEnd} />\n ))}\n </ICADroppablePlaceholder>\n </div>\n);\n\nPossibleResponses.propTypes = {\n canDrag: PropTypes.bool.isRequired,\n classes: PropTypes.object,\n data: PropTypes.array.isRequired,\n onAnswerRemove: PropTypes.func.isRequired,\n onDragBegin: PropTypes.func.isRequired,\n onDragEnd: PropTypes.func.isRequired,\n};\n\nPossibleResponses.defaultProps = {\n classes: {},\n};\n\nconst styles = (theme) => ({\n base: {\n backgroundColor: color.background(),\n padding: theme.spacing.unit * 2,\n display: 'flex',\n alignItems: 'center',\n },\n});\n\nexport default withStyles(styles)(PossibleResponses);\n"],"file":"possible-responses.js"}
|
package/lib/utils-correctness.js
CHANGED
|
@@ -16,7 +16,7 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
|
|
|
16
16
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
17
17
|
|
|
18
18
|
var getAllCorrectAnswers = function getAllCorrectAnswers(answers, responses) {
|
|
19
|
-
return answers.map(function (answer) {
|
|
19
|
+
return (answers || []).map(function (answer) {
|
|
20
20
|
return _objectSpread(_objectSpread({}, answer), {}, {
|
|
21
21
|
isCorrect: (responses[answer.containerIndex] && responses[answer.containerIndex].images || []).includes(answer.value)
|
|
22
22
|
});
|
|
@@ -41,7 +41,7 @@ var getUniqueCorrectAnswers = function getUniqueCorrectAnswers(answers, validRes
|
|
|
41
41
|
valuesToParse.shift(); // mark duplicates as incorrect
|
|
42
42
|
|
|
43
43
|
valuesToParse.forEach(function (value, index) {
|
|
44
|
-
finalAnswers = finalAnswers.map(function (finalAnswer) {
|
|
44
|
+
finalAnswers = (finalAnswers || []).map(function (finalAnswer) {
|
|
45
45
|
if (finalAnswer.id === value.id) {
|
|
46
46
|
var valid = getValidAnswer(finalAnswer, validResponses);
|
|
47
47
|
return _objectSpread(_objectSpread({}, finalAnswer), {}, {
|
|
@@ -93,7 +93,7 @@ var getAnswersCorrectness = function getAnswersCorrectness(answers, validation)
|
|
|
93
93
|
}).length; // Look for alternate correct responses if there are incorrect responses.
|
|
94
94
|
|
|
95
95
|
if (noOfCorrect < uniqueAnswers.length && altResponses && altResponses.length) {
|
|
96
|
-
var altUniqueStack = altResponses.map(function (altResponse) {
|
|
96
|
+
var altUniqueStack = (altResponses || []).map(function (altResponse) {
|
|
97
97
|
var altValue = altResponse.value;
|
|
98
98
|
var altAllCorrect = getAllCorrectAnswers(answers, altValue);
|
|
99
99
|
return getUniqueCorrectAnswers(altAllCorrect, altValue);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/utils-correctness.js"],"names":["getAllCorrectAnswers","answers","responses","map","answer","isCorrect","containerIndex","images","includes","value","getValidAnswer","response","filter","res","getUniqueCorrectAnswers","validResponses","finalAnswers","forEach","answer1","valuesToParse","answer2","length","shift","index","finalAnswer","id","valid","getUnansweredAnswers","validation","validResponse","reduce","unanswered","isAnswered","find","undefined","hidden","getAnswersCorrectness","altResponses","allCorrect","uniqueAnswers","noOfCorrect","altUniqueStack","altResponse","altValue","altAllCorrect","sort","a","b","c"],"mappings":";;;;;;;;;;;;;;;;;AAAA,IAAMA,oBAAoB,GAAG,SAAvBA,oBAAuB,CAACC,OAAD,EAAUC,SAAV;AAAA,
|
|
1
|
+
{"version":3,"sources":["../src/utils-correctness.js"],"names":["getAllCorrectAnswers","answers","responses","map","answer","isCorrect","containerIndex","images","includes","value","getValidAnswer","response","filter","res","getUniqueCorrectAnswers","validResponses","finalAnswers","forEach","answer1","valuesToParse","answer2","length","shift","index","finalAnswer","id","valid","getUnansweredAnswers","validation","validResponse","reduce","unanswered","isAnswered","find","undefined","hidden","getAnswersCorrectness","altResponses","allCorrect","uniqueAnswers","noOfCorrect","altUniqueStack","altResponse","altValue","altAllCorrect","sort","a","b","c"],"mappings":"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","sourcesContent":["const getAllCorrectAnswers = (answers, responses) =>\n (answers || []).map((answer) => ({\n ...answer,\n isCorrect: (responses[answer.containerIndex] && responses[answer.containerIndex].images || []).includes(answer.value),\n }));\n\nconst getValidAnswer = (answer, response) =>\n (response[answer.containerIndex].images || []).filter((res) => res === answer.value);\n\nconst getUniqueCorrectAnswers = (answers, validResponses) => {\n let finalAnswers = answers;\n\n answers.forEach((answer1) => {\n const valuesToParse = answers.filter(\n (answer2) => answer2.value === answer1.value && answer2.containerIndex === answer1.containerIndex,\n );\n\n if (valuesToParse.length > 1) {\n // point only to duplicates but first\n valuesToParse.shift();\n // mark duplicates as incorrect\n valuesToParse.forEach((value, index) => {\n finalAnswers = (finalAnswers || []).map((finalAnswer) => {\n if (finalAnswer.id === value.id) {\n let valid = getValidAnswer(finalAnswer, validResponses);\n\n return {\n ...finalAnswer,\n isCorrect: valid.length > index + 1,\n };\n }\n return finalAnswer;\n });\n });\n }\n });\n return finalAnswers;\n};\n\nexport const getUnansweredAnswers = (answers, validation) => {\n const { validResponse: { value } = {} } = validation;\n\n return (value || []).reduce((unanswered, response, index) => {\n const isAnswered = !!answers.find((answer) => answer.containerIndex === index);\n response.images = response.images || [];\n\n if (!isAnswered) {\n return [\n ...unanswered,\n {\n id: `unanswered-${index}`,\n value: response.images[0] || '',\n containerIndex: index,\n isCorrect: !response.images.length ? undefined : false,\n hidden: true,\n },\n ];\n }\n\n return unanswered;\n }, []);\n};\n\nexport const getAnswersCorrectness = (answers, validation) => {\n const {\n validResponse: { value },\n altResponses,\n } = validation;\n\n const allCorrect = getAllCorrectAnswers(answers, value);\n const uniqueAnswers = getUniqueCorrectAnswers(allCorrect, value);\n const noOfCorrect = uniqueAnswers.filter((answer) => answer.isCorrect).length;\n\n // Look for alternate correct responses if there are incorrect responses.\n if (noOfCorrect < uniqueAnswers.length && altResponses && altResponses.length) {\n const altUniqueStack = (altResponses || []).map((altResponse) => {\n const altValue = altResponse.value;\n\n const altAllCorrect = getAllCorrectAnswers(answers, altValue);\n return getUniqueCorrectAnswers(altAllCorrect, altValue);\n });\n // Return the one with most correct answers.\n return altUniqueStack.sort((a, b) => b.filter((c) => c.isCorrect).length - a.filter((c) => c.isCorrect).length)[0];\n }\n return uniqueAnswers;\n};\n"],"file":"utils-correctness.js"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pie-element/image-cloze-association",
|
|
3
|
-
"version": "5.5.1
|
|
3
|
+
"version": "5.5.1",
|
|
4
4
|
"description": "",
|
|
5
5
|
"repository": "pie-framework/pie-elements",
|
|
6
6
|
"publishConfig": {
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
},
|
|
19
19
|
"author": "pie framework developers",
|
|
20
20
|
"license": "ISC",
|
|
21
|
-
"gitHead": "
|
|
21
|
+
"gitHead": "0c9348d6495c4b6ce1e4023fd89300ee570f7d64",
|
|
22
22
|
"scripts": {
|
|
23
23
|
"postpublish": "../../scripts/postpublish"
|
|
24
24
|
},
|
package/src/image-container.jsx
CHANGED
|
@@ -12,7 +12,7 @@ class ImageContainer extends Component {
|
|
|
12
12
|
classes,
|
|
13
13
|
draggingElement,
|
|
14
14
|
duplicateResponses,
|
|
15
|
-
image: { height, src, width },
|
|
15
|
+
image: { height, src, width } = {},
|
|
16
16
|
onAnswerSelect,
|
|
17
17
|
onDragAnswerBegin,
|
|
18
18
|
onDragAnswerEnd,
|
|
@@ -23,7 +23,7 @@ class ImageContainer extends Component {
|
|
|
23
23
|
return (
|
|
24
24
|
<div className={classes.base}>
|
|
25
25
|
<img src={src} height={height} width={width} />
|
|
26
|
-
{responseContainers.map((r, i) => {
|
|
26
|
+
{(responseContainers || []).map((r, i) => {
|
|
27
27
|
const rHeight = (r.height.replace('%', '') / 100) * height;
|
|
28
28
|
const rWidth = (r.width.replace('%', '') / 100) * width;
|
|
29
29
|
const rLeft = (r.x / 100) * width;
|
|
@@ -31,7 +31,7 @@ const ImageDropTarget = ({
|
|
|
31
31
|
>
|
|
32
32
|
{answers.length || (duplicateResponses && answers.length) ? (
|
|
33
33
|
<div className={classes.answers}>
|
|
34
|
-
{answers.map((answer) => (
|
|
34
|
+
{(answers || []).map((answer) => (
|
|
35
35
|
<PossibleResponse
|
|
36
36
|
canDrag={canDrag}
|
|
37
37
|
containerStyle={answer.isCorrect === undefined ? { borderWidth: 0 } : {}}
|
|
@@ -9,7 +9,7 @@ import PossibleResponse from './possible-response';
|
|
|
9
9
|
const PossibleResponses = ({ canDrag, classes, data, onAnswerRemove, onDragBegin, onDragEnd }) => (
|
|
10
10
|
<div className={classes.base}>
|
|
11
11
|
<ICADroppablePlaceholder disabled={!canDrag} onRemoveAnswer={onAnswerRemove}>
|
|
12
|
-
{data.map((item) => (
|
|
12
|
+
{(data || []).map((item) => (
|
|
13
13
|
<PossibleResponse canDrag={canDrag} key={item.id} data={item} onDragBegin={onDragBegin} onDragEnd={onDragEnd} />
|
|
14
14
|
))}
|
|
15
15
|
</ICADroppablePlaceholder>
|
package/src/utils-correctness.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const getAllCorrectAnswers = (answers, responses) =>
|
|
2
|
-
answers.map((answer) => ({
|
|
2
|
+
(answers || []).map((answer) => ({
|
|
3
3
|
...answer,
|
|
4
4
|
isCorrect: (responses[answer.containerIndex] && responses[answer.containerIndex].images || []).includes(answer.value),
|
|
5
5
|
}));
|
|
@@ -20,7 +20,7 @@ const getUniqueCorrectAnswers = (answers, validResponses) => {
|
|
|
20
20
|
valuesToParse.shift();
|
|
21
21
|
// mark duplicates as incorrect
|
|
22
22
|
valuesToParse.forEach((value, index) => {
|
|
23
|
-
finalAnswers = finalAnswers.map((finalAnswer) => {
|
|
23
|
+
finalAnswers = (finalAnswers || []).map((finalAnswer) => {
|
|
24
24
|
if (finalAnswer.id === value.id) {
|
|
25
25
|
let valid = getValidAnswer(finalAnswer, validResponses);
|
|
26
26
|
|
|
@@ -73,7 +73,7 @@ export const getAnswersCorrectness = (answers, validation) => {
|
|
|
73
73
|
|
|
74
74
|
// Look for alternate correct responses if there are incorrect responses.
|
|
75
75
|
if (noOfCorrect < uniqueAnswers.length && altResponses && altResponses.length) {
|
|
76
|
-
const altUniqueStack = altResponses.map((altResponse) => {
|
|
76
|
+
const altUniqueStack = (altResponses || []).map((altResponse) => {
|
|
77
77
|
const altValue = altResponse.value;
|
|
78
78
|
|
|
79
79
|
const altAllCorrect = getAllCorrectAnswers(answers, altValue);
|