@pie-element/match-list 1.16.1-next.80 → 1.16.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 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
+ ## [1.16.1](https://github.com/pie-framework/pie-elements/compare/@pie-element/match-list@1.16.0...@pie-element/match-list@1.16.1) (2023-02-28)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * update pie-libs ([110161a](https://github.com/pie-framework/pie-elements/commit/110161ad113e76b5fdb6fc06e233889befbc366a))
12
+
13
+
14
+
15
+
16
+
6
17
  # [1.16.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/match-list@1.15.0...@pie-element/match-list@1.16.0) (2023-02-01)
7
18
 
8
19
 
@@ -142,9 +142,6 @@ var AnswerArea = /*#__PURE__*/function (_React$Component) {
142
142
  id = _ref.id;
143
143
  return /*#__PURE__*/_react["default"].createElement("div", {
144
144
  className: classes.row,
145
- style: {
146
- display: 'flex'
147
- },
148
145
  key: index
149
146
  }, /*#__PURE__*/_react["default"].createElement("div", {
150
147
  className: classes.promptEntry,
@@ -194,7 +191,7 @@ exports.AnswerArea = AnswerArea;
194
191
  prompt: _propTypes["default"].string
195
192
  });
196
193
 
197
- var styles = function styles() {
194
+ var styles = function styles(theme) {
198
195
  return {
199
196
  answer: {
200
197
  flex: 1
@@ -210,7 +207,9 @@ var styles = function styles() {
210
207
  display: 'flex',
211
208
  flex: 1,
212
209
  flexDirection: 'column',
213
- justifyContent: 'space-between'
210
+ justifyContent: 'space-between',
211
+ marginTop: theme.spacing.unit * 2,
212
+ marginBottom: theme.spacing.unit * 2
214
213
  },
215
214
  promptEntry: {
216
215
  border: '1px solid #c2c2c2',
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/answer-area.jsx"],"names":["AnswerArea","promptId","props","model","session","showCorrect","config","answerId","prompts","find","p","id","relatedAnswer","value","answer","answers","sessionValue","reduce","obj","prompt","undefined","mode","correctPromptMap","val","key","map","sessionAnswer","getAnswerFromSession","classes","disabled","onPlaceAnswer","instanceId","onRemoveAnswer","rows","buildRows","correctnessMap","getCorrectOrIncorrectMap","itemList","index","title","row","display","promptEntry","__html","arrowEntry","place","React","Component","PropTypes","object","isRequired","bool","onSessionChange","func","string","styles","flex","alignItems","height","margin","flexDirection","justifyContent","border","boxSizing","minHeight","overflow","padding","textAlign","width","wordBreak"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport isEmpty from 'lodash/isEmpty';\nimport isUndefined from 'lodash/isUndefined';\nimport reduce from 'lodash/reduce';\n\nimport Arrow from './arrow';\nimport DragAndDropAnswer from './answer';\n\nexport class AnswerArea extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n session: PropTypes.object.isRequired,\n showCorrect: PropTypes.bool.isRequired,\n disabled: PropTypes.bool.isRequired,\n onSessionChange: PropTypes.func,\n onRemoveAnswer: PropTypes.func,\n onPlaceAnswer: PropTypes.func.isRequired,\n instanceId: PropTypes.string.isRequired,\n model: PropTypes.object.isRequired,\n prompt: PropTypes.string,\n };\n\n getAnswerFromSession = (promptId) => {\n const { model, session, showCorrect } = this.props;\n const { config } = model;\n const answerId = showCorrect\n ? config.prompts.find((p) => p.id === promptId).relatedAnswer\n : session.value && session.value[promptId];\n const answer = config.answers.find((answer) => answer.id === answerId);\n\n return answer || {};\n };\n\n getCorrectOrIncorrectMap = () => {\n const { model, session, showCorrect } = this.props;\n const { config } = model;\n const sessionValue =\n session.value ||\n config.prompts.reduce((obj, prompt) => {\n obj[prompt.id] = undefined;\n return obj;\n }, {});\n\n if (model.mode !== 'evaluate') {\n return {};\n }\n\n if (showCorrect) {\n return config.prompts.reduce((obj, prompt) => {\n obj[prompt.id] = true;\n\n return obj;\n }, {});\n }\n\n const correctPromptMap = config.prompts.reduce((obj, prompt) => {\n if (!isUndefined(prompt.relatedAnswer)) {\n obj[prompt.id] = prompt.relatedAnswer;\n }\n\n return obj;\n }, {});\n\n return reduce(\n sessionValue,\n (obj, val, key) => {\n obj[key] = correctPromptMap[key] === sessionValue[key];\n\n return obj;\n },\n {},\n );\n };\n\n buildRows = () => {\n const { model } = this.props;\n const { config } = model;\n const prompts = config.prompts || [];\n\n return prompts.map((prompt) => {\n const sessionAnswer = this.getAnswerFromSession(prompt.id);\n\n return {\n ...prompt,\n sessionAnswer,\n };\n });\n };\n\n render() {\n const { classes, disabled, onPlaceAnswer, instanceId, onRemoveAnswer } = this.props;\n const rows = this.buildRows();\n const correctnessMap = this.getCorrectOrIncorrectMap();\n\n return (\n <div className={classes.itemList}>\n {rows.map(({ sessionAnswer, title, id }, index) => {\n return (\n <div\n className={classes.row}\n style={{\n display: 'flex',\n }}\n key={index}\n >\n <div className={classes.promptEntry} dangerouslySetInnerHTML={{ __html: title }} />\n <div className={classes.arrowEntry}>\n <Arrow direction=\"left\" />\n <Arrow />\n </div>\n <DragAndDropAnswer\n key={index}\n className={classes.answer}\n index={index}\n promptId={id}\n correct={correctnessMap[id]}\n draggable={!isEmpty(sessionAnswer)}\n disabled={disabled}\n instanceId={instanceId}\n id={sessionAnswer.id}\n onPlaceAnswer={(place, id) => onPlaceAnswer(place, id)}\n title={sessionAnswer.title}\n type={'target'}\n onRemoveChoice={() => onRemoveAnswer(id)}\n />\n </div>\n );\n })}\n </div>\n );\n }\n}\n\nconst styles = () => ({\n answer: {\n flex: 1,\n },\n arrowEntry: {\n alignItems: 'normal',\n display: 'flex',\n height: 40,\n margin: '10px 20px',\n },\n itemList: {\n alignItems: 'flex-start',\n display: 'flex',\n flex: 1,\n flexDirection: 'column',\n justifyContent: 'space-between',\n },\n promptEntry: {\n border: '1px solid #c2c2c2',\n boxSizing: 'border-box',\n flex: 1,\n margin: '10px 0',\n minHeight: 40,\n overflow: 'hidden',\n padding: 10,\n textAlign: 'center',\n width: '100%',\n wordBreak: 'break-word',\n },\n row: {\n alignItems: 'center',\n display: 'flex',\n justifyContent: 'space-between',\n width: '100%',\n },\n});\n\nexport default withStyles(styles)(AnswerArea);\n"],"file":"answer-area.js"}
1
+ {"version":3,"sources":["../src/answer-area.jsx"],"names":["AnswerArea","promptId","props","model","session","showCorrect","config","answerId","prompts","find","p","id","relatedAnswer","value","answer","answers","sessionValue","reduce","obj","prompt","undefined","mode","correctPromptMap","val","key","map","sessionAnswer","getAnswerFromSession","classes","disabled","onPlaceAnswer","instanceId","onRemoveAnswer","rows","buildRows","correctnessMap","getCorrectOrIncorrectMap","itemList","index","title","row","promptEntry","__html","arrowEntry","place","React","Component","PropTypes","object","isRequired","bool","onSessionChange","func","string","styles","theme","flex","alignItems","display","height","margin","flexDirection","justifyContent","marginTop","spacing","unit","marginBottom","border","boxSizing","minHeight","overflow","padding","textAlign","width","wordBreak"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport isEmpty from 'lodash/isEmpty';\nimport isUndefined from 'lodash/isUndefined';\nimport reduce from 'lodash/reduce';\n\nimport Arrow from './arrow';\nimport DragAndDropAnswer from './answer';\n\nexport class AnswerArea extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n session: PropTypes.object.isRequired,\n showCorrect: PropTypes.bool.isRequired,\n disabled: PropTypes.bool.isRequired,\n onSessionChange: PropTypes.func,\n onRemoveAnswer: PropTypes.func,\n onPlaceAnswer: PropTypes.func.isRequired,\n instanceId: PropTypes.string.isRequired,\n model: PropTypes.object.isRequired,\n prompt: PropTypes.string,\n };\n\n getAnswerFromSession = (promptId) => {\n const { model, session, showCorrect } = this.props;\n const { config } = model;\n const answerId = showCorrect\n ? config.prompts.find((p) => p.id === promptId).relatedAnswer\n : session.value && session.value[promptId];\n const answer = config.answers.find((answer) => answer.id === answerId);\n\n return answer || {};\n };\n\n getCorrectOrIncorrectMap = () => {\n const { model, session, showCorrect } = this.props;\n const { config } = model;\n const sessionValue =\n session.value ||\n config.prompts.reduce((obj, prompt) => {\n obj[prompt.id] = undefined;\n return obj;\n }, {});\n\n if (model.mode !== 'evaluate') {\n return {};\n }\n\n if (showCorrect) {\n return config.prompts.reduce((obj, prompt) => {\n obj[prompt.id] = true;\n\n return obj;\n }, {});\n }\n\n const correctPromptMap = config.prompts.reduce((obj, prompt) => {\n if (!isUndefined(prompt.relatedAnswer)) {\n obj[prompt.id] = prompt.relatedAnswer;\n }\n\n return obj;\n }, {});\n\n return reduce(\n sessionValue,\n (obj, val, key) => {\n obj[key] = correctPromptMap[key] === sessionValue[key];\n\n return obj;\n },\n {},\n );\n };\n\n buildRows = () => {\n const { model } = this.props;\n const { config } = model;\n const prompts = config.prompts || [];\n\n return prompts.map((prompt) => {\n const sessionAnswer = this.getAnswerFromSession(prompt.id);\n\n return {\n ...prompt,\n sessionAnswer,\n };\n });\n };\n\n render() {\n const { classes, disabled, onPlaceAnswer, instanceId, onRemoveAnswer } = this.props;\n const rows = this.buildRows();\n const correctnessMap = this.getCorrectOrIncorrectMap();\n\n return (\n <div className={classes.itemList}>\n {rows.map(({ sessionAnswer, title, id }, index) => {\n return (\n <div className={classes.row} key={index}>\n <div className={classes.promptEntry} dangerouslySetInnerHTML={{ __html: title }} />\n\n <div className={classes.arrowEntry}>\n <Arrow direction=\"left\" />\n <Arrow />\n </div>\n\n <DragAndDropAnswer\n key={index}\n className={classes.answer}\n index={index}\n promptId={id}\n correct={correctnessMap[id]}\n draggable={!isEmpty(sessionAnswer)}\n disabled={disabled}\n instanceId={instanceId}\n id={sessionAnswer.id}\n onPlaceAnswer={(place, id) => onPlaceAnswer(place, id)}\n title={sessionAnswer.title}\n type={'target'}\n onRemoveChoice={() => onRemoveAnswer(id)}\n />\n </div>\n );\n })}\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n answer: {\n flex: 1,\n },\n arrowEntry: {\n alignItems: 'normal',\n display: 'flex',\n height: 40,\n margin: '10px 20px',\n },\n itemList: {\n alignItems: 'flex-start',\n display: 'flex',\n flex: 1,\n flexDirection: 'column',\n justifyContent: 'space-between',\n marginTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n },\n promptEntry: {\n border: '1px solid #c2c2c2',\n boxSizing: 'border-box',\n flex: 1,\n margin: '10px 0',\n minHeight: 40,\n overflow: 'hidden',\n padding: 10,\n textAlign: 'center',\n width: '100%',\n wordBreak: 'break-word',\n },\n row: {\n alignItems: 'center',\n display: 'flex',\n justifyContent: 'space-between',\n width: '100%',\n },\n});\n\nexport default withStyles(styles)(AnswerArea);\n"],"file":"answer-area.js"}
@@ -63,10 +63,7 @@ var ChoicesList = /*#__PURE__*/function (_React$Component) {
63
63
  onRemoveAnswer = _this$props.onRemoveAnswer;
64
64
  var config = model.config;
65
65
  var duplicates = config.duplicates;
66
- return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, _drag.MatchDroppablePlaceholder ? /*#__PURE__*/_react["default"].createElement(_drag.MatchDroppablePlaceholder, {
67
- disabled: disabled,
68
- onRemoveAnswer: onRemoveAnswer
69
- }, config.answers.filter(function (answer) {
66
+ var filteredAnswers = config.answers.filter(function (answer) {
70
67
  return duplicates || (0, _isEmpty["default"])(session) || !session.value || (0, _isUndefined["default"])((0, _find["default"])(session.value, function (val) {
71
68
  return val === answer.id;
72
69
  }));
@@ -78,25 +75,17 @@ var ChoicesList = /*#__PURE__*/function (_React$Component) {
78
75
  draggable: true,
79
76
  disabled: disabled,
80
77
  session: session,
81
- type: 'choice'
78
+ type: "choice"
82
79
  }, answer));
83
- })) : /*#__PURE__*/_react["default"].createElement("div", {
80
+ });
81
+ return /*#__PURE__*/_react["default"].createElement("div", {
82
+ className: classes.choicesContainer
83
+ }, _drag.MatchDroppablePlaceholder ? /*#__PURE__*/_react["default"].createElement(_drag.MatchDroppablePlaceholder, {
84
+ disabled: disabled,
85
+ onRemoveAnswer: onRemoveAnswer
86
+ }, filteredAnswers) : /*#__PURE__*/_react["default"].createElement("div", {
84
87
  className: classes.answersContainer
85
- }, ' ', config.answers.filter(function (answer) {
86
- return duplicates || (0, _isEmpty["default"])(session) || !session.value || (0, _isUndefined["default"])((0, _find["default"])(session.value, function (val) {
87
- return val === answer.id;
88
- }));
89
- }).map(function (answer) {
90
- return /*#__PURE__*/_react["default"].createElement(_answer.DragAnswer, (0, _extends2["default"])({
91
- key: answer.id,
92
- instanceId: instanceId,
93
- className: classes.choice,
94
- draggable: true,
95
- disabled: disabled,
96
- session: session,
97
- type: 'choice'
98
- }, answer));
99
- }), ' '));
88
+ }, filteredAnswers));
100
89
  }
101
90
  }]);
102
91
  return ChoicesList;
@@ -111,21 +100,25 @@ exports.ChoicesList = ChoicesList;
111
100
  disabled: _propTypes["default"].bool.isRequired
112
101
  });
113
102
 
114
- var styles = function styles() {
103
+ var styles = function styles(theme) {
115
104
  return {
105
+ choicesContainer: {
106
+ marginBottom: theme.spacing.unit * 2
107
+ },
116
108
  answersContainer: {
117
109
  alignItems: 'center',
118
110
  display: 'flex',
119
111
  flexDirection: 'row',
120
112
  flexWrap: 'wrap',
121
113
  justifyContent: 'space-between',
122
- marginTop: 50
114
+ marginTop: theme.spacing.unit,
115
+ marginBottom: theme.spacing.unit
123
116
  },
124
117
  choice: {
125
118
  minHeight: '40px',
126
119
  minWidth: '200px',
127
120
  height: 'initial',
128
- margin: '4px'
121
+ margin: theme.spacing.unit / 2
129
122
  }
130
123
  };
131
124
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/choices-list.jsx"],"names":["ChoicesList","props","model","classes","disabled","session","instanceId","onRemoveAnswer","config","duplicates","MatchDroppablePlaceholder","answers","filter","answer","value","val","id","map","choice","answersContainer","React","Component","PropTypes","object","isRequired","string","bool","styles","alignItems","display","flexDirection","flexWrap","justifyContent","marginTop","minHeight","minWidth","height","margin"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport isEmpty from 'lodash/isEmpty';\nimport isUndefined from 'lodash/isUndefined';\nimport find from 'lodash/find';\nimport { DragAnswer } from './answer';\nimport { MatchDroppablePlaceholder } from '@pie-lib/drag';\n\nexport class ChoicesList extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n session: PropTypes.object.isRequired,\n instanceId: PropTypes.string.isRequired,\n model: PropTypes.object.isRequired,\n disabled: PropTypes.bool.isRequired,\n };\n\n render() {\n const { model, classes, disabled, session, instanceId, onRemoveAnswer } = this.props;\n const { config } = model;\n const { duplicates } = config;\n\n return (\n <>\n {MatchDroppablePlaceholder ? (\n <MatchDroppablePlaceholder disabled={disabled} onRemoveAnswer={onRemoveAnswer}>\n {config.answers\n .filter(\n (answer) =>\n duplicates ||\n isEmpty(session) ||\n !session.value ||\n isUndefined(find(session.value, (val) => val === answer.id))\n )\n .map((answer) => (\n <DragAnswer\n key={answer.id}\n instanceId={instanceId}\n className={classes.choice}\n draggable={true}\n disabled={disabled}\n session={session}\n type={'choice'}\n {...answer}\n />\n ))}\n </MatchDroppablePlaceholder>\n ) : (\n <div className={classes.answersContainer}>\n {' '}\n {config.answers\n .filter(\n (answer) =>\n duplicates ||\n isEmpty(session) ||\n !session.value ||\n isUndefined(find(session.value, (val) => val === answer.id))\n )\n .map((answer) => (\n <DragAnswer\n key={answer.id}\n instanceId={instanceId}\n className={classes.choice}\n draggable={true}\n disabled={disabled}\n session={session}\n type={'choice'}\n {...answer}\n />\n ))}{' '}\n </div>\n )}\n </>\n );\n }\n}\n\nconst styles = () => ({\n answersContainer: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'wrap',\n justifyContent: 'space-between',\n marginTop: 50\n },\n choice: {\n minHeight: '40px',\n minWidth: '200px',\n height: 'initial',\n margin: '4px',\n },\n});\n\nexport default withStyles(styles)(ChoicesList);\n"],"file":"choices-list.js"}
1
+ {"version":3,"sources":["../src/choices-list.jsx"],"names":["ChoicesList","props","model","classes","disabled","session","instanceId","onRemoveAnswer","config","duplicates","filteredAnswers","answers","filter","answer","value","val","id","map","choice","choicesContainer","MatchDroppablePlaceholder","answersContainer","React","Component","PropTypes","object","isRequired","string","bool","styles","theme","marginBottom","spacing","unit","alignItems","display","flexDirection","flexWrap","justifyContent","marginTop","minHeight","minWidth","height","margin"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport isEmpty from 'lodash/isEmpty';\nimport isUndefined from 'lodash/isUndefined';\nimport find from 'lodash/find';\nimport { DragAnswer } from './answer';\nimport { MatchDroppablePlaceholder } from '@pie-lib/drag';\n\nexport class ChoicesList extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n session: PropTypes.object.isRequired,\n instanceId: PropTypes.string.isRequired,\n model: PropTypes.object.isRequired,\n disabled: PropTypes.bool.isRequired,\n };\n\n render() {\n const { model, classes, disabled, session, instanceId, onRemoveAnswer } = this.props;\n const { config } = model;\n const { duplicates } = config;\n\n const filteredAnswers = config.answers\n .filter(\n (answer) =>\n duplicates ||\n isEmpty(session) ||\n !session.value ||\n isUndefined(find(session.value, (val) => val === answer.id)),\n )\n .map((answer) => (\n <DragAnswer\n key={answer.id}\n instanceId={instanceId}\n className={classes.choice}\n draggable={true}\n disabled={disabled}\n session={session}\n type=\"choice\"\n {...answer}\n />\n ));\n\n return (\n <div className={classes.choicesContainer}>\n {MatchDroppablePlaceholder ? (\n <MatchDroppablePlaceholder disabled={disabled} onRemoveAnswer={onRemoveAnswer}>\n {filteredAnswers}\n </MatchDroppablePlaceholder>\n ) : (\n <div className={classes.answersContainer}>{filteredAnswers}</div>\n )}\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n choicesContainer: {\n marginBottom: theme.spacing.unit * 2,\n },\n answersContainer: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'wrap',\n justifyContent: 'space-between',\n marginTop: theme.spacing.unit,\n marginBottom: theme.spacing.unit,\n },\n choice: {\n minHeight: '40px',\n minWidth: '200px',\n height: 'initial',\n margin: theme.spacing.unit / 2,\n },\n});\n\nexport default withStyles(styles)(ChoicesList);\n"],"file":"choices-list.js"}
package/lib/main.js CHANGED
@@ -118,13 +118,13 @@ var Main = /*#__PURE__*/function (_React$Component) {
118
118
  var prompt = config.prompt;
119
119
  return /*#__PURE__*/_react["default"].createElement("div", {
120
120
  className: classes.mainContainer
121
- }, /*#__PURE__*/_react["default"].createElement(_correctAnswerToggle["default"], {
121
+ }, /*#__PURE__*/_react["default"].createElement(_renderUi.PreviewPrompt, {
122
+ className: "prompt",
123
+ prompt: prompt
124
+ }), /*#__PURE__*/_react["default"].createElement(_correctAnswerToggle["default"], {
122
125
  show: mode === 'evaluate',
123
126
  toggled: showCorrectAnswer,
124
127
  onToggle: this.toggleShowCorrect
125
- }), /*#__PURE__*/_react["default"].createElement(_renderUi.PreviewPrompt, {
126
- className: "prompt",
127
- prompt: prompt
128
128
  }), /*#__PURE__*/_react["default"].createElement(_answerArea["default"], {
129
129
  instanceId: this.instanceId,
130
130
  model: model,
@@ -170,17 +170,10 @@ var styles = function styles(theme) {
170
170
  flexDirection: 'column',
171
171
  justifyContent: 'center',
172
172
  color: _renderUi.color.text(),
173
- backgroundColor: _renderUi.color.background(),
174
- padding: theme.spacing.unit * 3 / 2
173
+ backgroundColor: _renderUi.color.background()
175
174
  },
176
175
  promptList: {
177
176
  alignItems: 'flex-start'
178
- },
179
- main: {
180
- width: '100%'
181
- },
182
- toggle: {
183
- paddingBottom: theme.spacing.unit * 3
184
177
  }
185
178
  };
186
179
  };
package/lib/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/main.jsx"],"names":["Main","props","setState","showCorrectAnswer","state","instanceId","id","session","onSessionChange","value","undefined","place","model","duplicates","config","choiceKey","val","classes","mode","prompt","mainContainer","toggleShowCorrect","onPlaceAnswer","onRemoveAnswer","correctness","feedback","React","Component","PropTypes","object","isRequired","func","string","styles","theme","display","flexDirection","justifyContent","color","text","backgroundColor","background","padding","spacing","unit","promptList","alignItems","main","width","toggle","paddingBottom","styledMain"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withDragContext, swap } from '@pie-lib/drag';\nimport CorrectAnswerToggle from '@pie-lib/correct-answer-toggle';\nimport { color, Feedback, PreviewPrompt } from '@pie-lib/render-ui';\nimport { withStyles } from '@material-ui/core/styles';\nimport uniqueId from 'lodash/uniqueId';\nimport isUndefined from 'lodash/isUndefined';\nimport findKey from 'lodash/findKey';\nimport AnswerArea from './answer-area';\nimport ChoicesList from './choices-list';\n\nexport class Main extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n session: PropTypes.object.isRequired,\n onSessionChange: PropTypes.func,\n model: PropTypes.object.isRequired,\n prompt: PropTypes.string,\n };\n\n constructor(props) {\n super(props);\n\n this.instanceId = uniqueId();\n this.state = {\n showCorrectAnswer: false,\n };\n }\n\n onRemoveAnswer(id) {\n const { session, onSessionChange } = this.props;\n\n session.value[id] = undefined;\n\n onSessionChange(session);\n }\n\n onPlaceAnswer(place, id) {\n const { session, onSessionChange, model } = this.props;\n const {\n config: { duplicates },\n } = model;\n\n if (isUndefined(session.value)) {\n session.value = {};\n }\n\n const choiceKey = findKey(session.value, (val) => val === id);\n\n if (choiceKey && !duplicates) {\n session.value = swap(session.value, choiceKey, place);\n } else {\n session.value[place] = id;\n }\n\n onSessionChange(session);\n }\n\n toggleShowCorrect = () => {\n this.setState({ showCorrectAnswer: !this.state.showCorrectAnswer });\n };\n\n render() {\n const { showCorrectAnswer } = this.state;\n const { classes, model, session } = this.props;\n const { config, mode } = model;\n const { prompt } = config;\n\n return (\n <div className={classes.mainContainer}>\n <CorrectAnswerToggle show={mode === 'evaluate'} toggled={showCorrectAnswer} onToggle={this.toggleShowCorrect} />\n <PreviewPrompt className=\"prompt\" prompt={prompt} />\n <AnswerArea\n instanceId={this.instanceId}\n model={model}\n session={session}\n onPlaceAnswer={(place, id) => this.onPlaceAnswer(place, id)}\n onRemoveAnswer={(id) => this.onRemoveAnswer(id)}\n disabled={mode !== 'gather'}\n showCorrect={showCorrectAnswer}\n />\n <ChoicesList instanceId={this.instanceId} model={model} session={session} disabled={mode !== 'gather'} onRemoveAnswer={(id) => this.onRemoveAnswer(id)}/>\n {model.correctness && model.feedback && !showCorrectAnswer && (\n <Feedback correctness={model.correctness.correctness} feedback={model.feedback} />\n )}\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n mainContainer: {\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n color: color.text(),\n backgroundColor: color.background(),\n padding: (theme.spacing.unit * 3) / 2,\n },\n promptList: {\n alignItems: 'flex-start',\n },\n main: {\n width: '100%',\n },\n toggle: {\n paddingBottom: theme.spacing.unit * 3,\n },\n});\n\nexport const styledMain = withStyles(styles)(Main);\n\nexport default withDragContext(styledMain);\n"],"file":"main.js"}
1
+ {"version":3,"sources":["../src/main.jsx"],"names":["Main","props","setState","showCorrectAnswer","state","instanceId","id","session","onSessionChange","value","undefined","place","model","duplicates","config","choiceKey","val","classes","mode","prompt","mainContainer","toggleShowCorrect","onPlaceAnswer","onRemoveAnswer","correctness","feedback","React","Component","PropTypes","object","isRequired","func","string","styles","theme","display","flexDirection","justifyContent","color","text","backgroundColor","background","promptList","alignItems","styledMain"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withDragContext, swap } from '@pie-lib/drag';\nimport CorrectAnswerToggle from '@pie-lib/correct-answer-toggle';\nimport { color, Feedback, PreviewPrompt } from '@pie-lib/render-ui';\nimport { withStyles } from '@material-ui/core/styles';\nimport uniqueId from 'lodash/uniqueId';\nimport isUndefined from 'lodash/isUndefined';\nimport findKey from 'lodash/findKey';\nimport AnswerArea from './answer-area';\nimport ChoicesList from './choices-list';\n\nexport class Main extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n session: PropTypes.object.isRequired,\n onSessionChange: PropTypes.func,\n model: PropTypes.object.isRequired,\n prompt: PropTypes.string,\n };\n\n constructor(props) {\n super(props);\n\n this.instanceId = uniqueId();\n this.state = {\n showCorrectAnswer: false,\n };\n }\n\n onRemoveAnswer(id) {\n const { session, onSessionChange } = this.props;\n\n session.value[id] = undefined;\n\n onSessionChange(session);\n }\n\n onPlaceAnswer(place, id) {\n const { session, onSessionChange, model } = this.props;\n const {\n config: { duplicates },\n } = model;\n\n if (isUndefined(session.value)) {\n session.value = {};\n }\n\n const choiceKey = findKey(session.value, (val) => val === id);\n\n if (choiceKey && !duplicates) {\n session.value = swap(session.value, choiceKey, place);\n } else {\n session.value[place] = id;\n }\n\n onSessionChange(session);\n }\n\n toggleShowCorrect = () => {\n this.setState({ showCorrectAnswer: !this.state.showCorrectAnswer });\n };\n\n render() {\n const { showCorrectAnswer } = this.state;\n const { classes, model, session } = this.props;\n const { config, mode } = model;\n const { prompt } = config;\n\n return (\n <div className={classes.mainContainer}>\n <PreviewPrompt className=\"prompt\" prompt={prompt} />\n\n <CorrectAnswerToggle show={mode === 'evaluate'} toggled={showCorrectAnswer} onToggle={this.toggleShowCorrect} />\n\n <AnswerArea\n instanceId={this.instanceId}\n model={model}\n session={session}\n onPlaceAnswer={(place, id) => this.onPlaceAnswer(place, id)}\n onRemoveAnswer={(id) => this.onRemoveAnswer(id)}\n disabled={mode !== 'gather'}\n showCorrect={showCorrectAnswer}\n />\n\n <ChoicesList\n instanceId={this.instanceId}\n model={model}\n session={session}\n disabled={mode !== 'gather'}\n onRemoveAnswer={(id) => this.onRemoveAnswer(id)}\n />\n\n {model.correctness && model.feedback && !showCorrectAnswer && (\n <Feedback correctness={model.correctness.correctness} feedback={model.feedback} />\n )}\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n mainContainer: {\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n color: color.text(),\n backgroundColor: color.background(),\n },\n promptList: {\n alignItems: 'flex-start',\n },\n});\n\nexport const styledMain = withStyles(styles)(Main);\n\nexport default withDragContext(styledMain);\n"],"file":"main.js"}
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "access": "public"
5
5
  },
6
6
  "repository": "pie-framework/pie-elements",
7
- "version": "1.16.1-next.80+9353f7376",
7
+ "version": "1.16.1",
8
8
  "description": "",
9
9
  "scripts": {
10
10
  "test": "echo \"Error: no test specified\" && exit 1",
@@ -14,10 +14,10 @@
14
14
  "@material-ui/core": "^3.9.2",
15
15
  "@material-ui/icons": "^3.0.2",
16
16
  "@pie-framework/pie-player-events": "^0.1.0",
17
- "@pie-lib/correct-answer-toggle": "^2.3.62",
18
- "@pie-lib/drag": "^2.1.12",
17
+ "@pie-lib/correct-answer-toggle": "^2.3.63",
18
+ "@pie-lib/drag": "^2.1.13",
19
19
  "@pie-lib/math-rendering": "^2.5.12",
20
- "@pie-lib/render-ui": "^4.14.12",
20
+ "@pie-lib/render-ui": "^4.14.13",
21
21
  "classnames": "^2.2.5",
22
22
  "debug": "^4.1.1",
23
23
  "lodash": "^4.17.10",
@@ -28,7 +28,7 @@
28
28
  },
29
29
  "author": "",
30
30
  "license": "ISC",
31
- "gitHead": "9353f73768c78233621ab11119b1961af018a7e4",
31
+ "gitHead": "67ee976cb7b9b3ee1f4b660cd51ca73d2b2cf2c2",
32
32
  "main": "lib/index.js",
33
33
  "module": "src/index.js"
34
34
  }