@pie-element/multiple-choice 7.9.3-next.3 → 7.9.3-next.35

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.
@@ -8,9 +8,9 @@
8
8
  "@material-ui/core": "^3.9.2",
9
9
  "@material-ui/icons": "^3.0.1",
10
10
  "@pie-framework/pie-configure-events": "^1.3.0",
11
- "@pie-lib/config-ui": "^11.5.3",
12
- "@pie-lib/editable-html": "^9.5.15",
13
- "@pie-lib/scoring-config": "^3.6.17",
11
+ "@pie-lib/config-ui": "^11.5.4",
12
+ "@pie-lib/editable-html": "^9.5.16",
13
+ "@pie-lib/scoring-config": "^3.6.18",
14
14
  "debug": "^3.1.0",
15
15
  "lodash": "^4.17.15",
16
16
  "prop-types": "^15.6.2",
@@ -51,6 +51,10 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
51
51
 
52
52
  var CLASS_NAME = 'multiple-choice-component';
53
53
 
54
+ var generateId = function generateId() {
55
+ return (Math.random() * 1000001).toFixed(0);
56
+ };
57
+
54
58
  var styleSheet = function styleSheet(theme) {
55
59
  return {
56
60
  row: {
@@ -126,7 +130,8 @@ var StyledCheckbox = (0, _styles.withStyles)(inputStyles)(function (props) {
126
130
  onChange = props.onChange,
127
131
  disabled = props.disabled,
128
132
  accessibility = props.accessibility,
129
- value = props.value;
133
+ value = props.value,
134
+ id = props.id;
130
135
 
131
136
  var key = function key(k) {
132
137
  return correctness ? "".concat(correctness, "-").concat(k) : k;
@@ -144,7 +149,8 @@ var StyledCheckbox = (0, _styles.withStyles)(inputStyles)(function (props) {
144
149
  value: value
145
150
  };
146
151
  return /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], (0, _extends2["default"])({
147
- "aria-label": accessibility || value,
152
+ id: id,
153
+ "aria-label": accessibility,
148
154
  "aria-checked": checked
149
155
  }, miniProps, {
150
156
  className: CLASS_NAME,
@@ -163,7 +169,8 @@ var StyledRadio = (0, _styles.withStyles)(inputStyles)(function (props) {
163
169
  onChange = props.onChange,
164
170
  disabled = props.disabled,
165
171
  accessibility = props.accessibility,
166
- value = props.value;
172
+ value = props.value,
173
+ id = props.id;
167
174
 
168
175
  var key = function key(k) {
169
176
  return correctness ? "".concat(correctness, "-").concat(k) : k;
@@ -181,7 +188,8 @@ var StyledRadio = (0, _styles.withStyles)(inputStyles)(function (props) {
181
188
  value: value
182
189
  };
183
190
  return /*#__PURE__*/_react["default"].createElement(_Radio["default"], (0, _extends2["default"])({
184
- "aria-label": accessibility || value,
191
+ id: id,
192
+ "aria-label": accessibility,
185
193
  "aria-checked": checked
186
194
  }, miniProps, {
187
195
  className: CLASS_NAME,
@@ -239,6 +247,15 @@ var ChoiceInput = /*#__PURE__*/function (_React$Component) {
239
247
  var Tag = choiceMode === 'checkbox' ? StyledCheckbox : StyledRadio;
240
248
  var classSuffix = choiceMode === 'checkbox' ? 'checkbox' : 'radio-button';
241
249
  var holderClassNames = (0, _classnames["default"])(classes.checkboxHolder, (0, _defineProperty2["default"])({}, classes.horizontalLayout, choicesLayout === 'horizontal'));
250
+
251
+ var choicelabel = /*#__PURE__*/_react["default"].createElement(_renderUi.PreviewPrompt, {
252
+ className: "label",
253
+ onClick: this.onToggleChoice,
254
+ prompt: displayKey ? "".concat(displayKey, ".&nbsp ").concat(label) : label,
255
+ tagName: "span"
256
+ });
257
+
258
+ var id = generateId();
242
259
  return /*#__PURE__*/_react["default"].createElement("div", {
243
260
  className: (0, _classnames["default"])(className, 'corespring-' + classSuffix, 'choice-input')
244
261
  }, /*#__PURE__*/_react["default"].createElement("div", {
@@ -248,21 +265,18 @@ var ChoiceInput = /*#__PURE__*/function (_React$Component) {
248
265
  }), /*#__PURE__*/_react["default"].createElement("div", {
249
266
  className: (0, _classnames["default"])(holderClassNames, 'checkbox-holder')
250
267
  }, /*#__PURE__*/_react["default"].createElement(StyledFormControlLabel, {
251
- label: displayKey ? displayKey + '. ' : '',
268
+ label: choicelabel,
252
269
  value: value,
253
270
  control: /*#__PURE__*/_react["default"].createElement(Tag, {
254
271
  accessibility: accessibility,
255
272
  disabled: disabled,
256
273
  checked: checked,
257
274
  correctness: correctness,
275
+ id: id,
258
276
  value: value,
259
277
  onChange: this.onToggleChoice
260
- })
261
- }), /*#__PURE__*/_react["default"].createElement(_renderUi.PreviewPrompt, {
262
- className: "label",
263
- onClick: this.onToggleChoice,
264
- prompt: label,
265
- tagName: "span"
278
+ }),
279
+ htmlFor: id
266
280
  }))), rationale && /*#__PURE__*/_react["default"].createElement(_renderUi.PreviewPrompt, {
267
281
  className: "rationale",
268
282
  defaultClassName: "rationale",
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/choice-input.jsx"],"names":["CLASS_NAME","styleSheet","theme","row","display","alignItems","backgroundColor","color","background","checkboxHolder","flex","text","horizontalLayout","paddingRight","spacing","unit","formStyleSheet","label","StyledFormControlLabel","name","props","classes","colorStyle","varName","fallback","inputStyles","correct","disabled","incorrect","root","primaryLight","checked","primary","opacity","cursor","pointerEvents","StyledCheckbox","correctness","onChange","accessibility","value","key","k","resolved","miniProps","StyledRadio","ChoiceInput","onToggleChoice","bind","event","updateSession","selected","choiceMode","displayKey","feedback","className","rationale","hideTick","isEvaluateMode","choicesLayout","Tag","classSuffix","holderClassNames","React","Component","PropTypes","oneOf","string","isRequired","bool","func","object"],"mappings":"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","sourcesContent":["import FormControlLabel from '@material-ui/core/FormControlLabel';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\n\nimport Checkbox from '@material-ui/core/Checkbox';\nimport { Feedback, color, PreviewPrompt } from '@pie-lib/render-ui';\nimport FeedbackTick from './feedback-tick';\nimport Radio from '@material-ui/core/Radio';\nimport classNames from 'classnames';\n\nconst CLASS_NAME = 'multiple-choice-component';\n\nconst styleSheet = (theme) => ({\n row: {\n display: 'flex',\n alignItems: 'center',\n backgroundColor: color.background(),\n },\n checkboxHolder: {\n display: 'flex',\n alignItems: 'center',\n backgroundColor: color.background(),\n flex: 1,\n '& label': {\n color: color.text(),\n },\n },\n horizontalLayout: {\n [`& .${CLASS_NAME}`]: {\n paddingRight: theme.spacing.unit,\n },\n },\n});\n\nconst formStyleSheet = {\n label: {\n color: `${color.text()} !important`, //'var(--choice-input-color, black)'\n backgroundColor: color.background(),\n },\n};\n\nexport const StyledFormControlLabel = withStyles(formStyleSheet, {\n name: 'FormControlLabel',\n})((props) => <FormControlLabel {...props} classes={{ label: props.classes.label }} />);\n\nconst colorStyle = (varName, fallback) => ({\n [`&.${CLASS_NAME}`]: {\n color: `var(--choice-input-${varName}, ${fallback}) !important`,\n },\n});\n\nconst inputStyles = {\n 'correct-root': colorStyle('correct-color', color.text()),\n 'correct-checked': colorStyle('correct-selected-color', color.correct()), //green[500]),\n 'correct-disabled': colorStyle('correct-disabled-color', color.disabled()), //'grey'),\n 'incorrect-root': colorStyle('incorrect-color', color.incorrect()),\n 'incorrect-checked': colorStyle('incorrect-checked', color.incorrect()), //orange[500]),\n 'incorrect-disabled': colorStyle('incorrect-disabled-color', color.disabled()),\n root: {\n ...colorStyle('color', color.text()),\n '&:hover': { color: `${color.primaryLight()} !important` },\n },\n checked: colorStyle('selected-color', color.primary()),\n disabled: {\n ...colorStyle('disabled-color', color.text()),\n opacity: 0.6,\n cursor: 'not-allowed !important',\n pointerEvents: 'initial !important',\n },\n};\n\nexport const StyledCheckbox = withStyles(inputStyles)((props) => {\n const { correctness, classes, checked, onChange, disabled, accessibility, value } = props;\n const key = (k) => (correctness ? `${correctness}-${k}` : k);\n\n const resolved = {\n root: classes[key('root')],\n checked: classes[key('checked')],\n disabled: classes[key('disabled')],\n };\n\n const miniProps = { checked, onChange, disabled, value };\n\n return (\n <Checkbox\n aria-label={accessibility || value}\n aria-checked={checked}\n {...miniProps}\n className={CLASS_NAME}\n classes={{\n root: resolved.root,\n checked: resolved.checked,\n disabled: `${correctness ? '' : resolved.disabled}`,\n }}\n />\n );\n});\n\nexport const StyledRadio = withStyles(inputStyles)((props) => {\n const { correctness, classes, checked, onChange, disabled, accessibility, value } = props;\n const key = (k) => (correctness ? `${correctness}-${k}` : k);\n\n const resolved = {\n root: classes[key('root')],\n checked: classes[key('checked')],\n disabled: classes[key('disabled')],\n };\n\n const miniProps = { checked, onChange, disabled, value };\n\n return (\n <Radio\n aria-label={accessibility || value}\n aria-checked={checked}\n {...miniProps}\n className={CLASS_NAME}\n classes={{\n root: resolved.root,\n checked: resolved.checked,\n disabled: `${correctness ? '' : resolved.disabled}`,\n }}\n />\n );\n});\n\nexport class ChoiceInput extends React.Component {\n static propTypes = {\n choiceMode: PropTypes.oneOf(['radio', 'checkbox']),\n displayKey: PropTypes.string.isRequired,\n checked: PropTypes.bool.isRequired,\n correctness: PropTypes.string,\n disabled: PropTypes.bool.isRequired,\n feedback: PropTypes.string,\n label: PropTypes.string.isRequired,\n rationale: PropTypes.string,\n accessibility: PropTypes.string,\n onChange: PropTypes.func.isRequired,\n value: PropTypes.string.isRequired,\n classes: PropTypes.object,\n className: PropTypes.string,\n hideTick: PropTypes.bool,\n isEvaluateMode: PropTypes.bool,\n choicesLayout: PropTypes.oneOf(['vertical', 'grid', 'horizontal']),\n };\n\n static defaultProps = {\n rationale: null,\n accessibility: null,\n checked: false,\n isEvaluateMode: false,\n };\n\n constructor(props) {\n super(props);\n this.onToggleChoice = this.onToggleChoice.bind(this);\n }\n\n onToggleChoice(event) {\n this.props.onChange(event);\n this.props.updateSession({\n value: this.props.value,\n selected: !this.props.checked,\n });\n }\n\n render() {\n const {\n choiceMode,\n disabled,\n displayKey,\n feedback,\n label,\n correctness,\n classes,\n className,\n rationale,\n accessibility,\n hideTick,\n isEvaluateMode,\n choicesLayout,\n value,\n checked,\n } = this.props;\n const Tag = choiceMode === 'checkbox' ? StyledCheckbox : StyledRadio;\n const classSuffix = choiceMode === 'checkbox' ? 'checkbox' : 'radio-button';\n\n const holderClassNames = classNames(classes.checkboxHolder, {\n [classes.horizontalLayout]: choicesLayout === 'horizontal',\n });\n\n return (\n <div className={classNames(className, 'corespring-' + classSuffix, 'choice-input')}>\n <div className={classes.row}>\n {!hideTick && isEvaluateMode && <FeedbackTick correctness={correctness} />}\n <div className={classNames(holderClassNames, 'checkbox-holder')}>\n <StyledFormControlLabel\n label={displayKey ? displayKey + '. ' : ''}\n value={value}\n control={\n <Tag\n accessibility={accessibility}\n disabled={disabled}\n checked={checked}\n correctness={correctness}\n value={value}\n onChange={this.onToggleChoice}\n />\n }\n />\n <PreviewPrompt className=\"label\" onClick={this.onToggleChoice} prompt={label} tagName=\"span\" />\n </div>\n </div>\n {rationale && <PreviewPrompt className=\"rationale\" defaultClassName=\"rationale\" prompt={rationale} />}\n <Feedback feedback={feedback} correctness={correctness} />\n </div>\n );\n }\n}\n\nexport default withStyles(styleSheet)(ChoiceInput);\n"],"file":"choice-input.js"}
1
+ {"version":3,"sources":["../src/choice-input.jsx"],"names":["CLASS_NAME","generateId","Math","random","toFixed","styleSheet","theme","row","display","alignItems","backgroundColor","color","background","checkboxHolder","flex","text","horizontalLayout","paddingRight","spacing","unit","formStyleSheet","label","StyledFormControlLabel","name","props","classes","colorStyle","varName","fallback","inputStyles","correct","disabled","incorrect","root","primaryLight","checked","primary","opacity","cursor","pointerEvents","StyledCheckbox","correctness","onChange","accessibility","value","id","key","k","resolved","miniProps","StyledRadio","ChoiceInput","onToggleChoice","bind","event","updateSession","selected","choiceMode","displayKey","feedback","className","rationale","hideTick","isEvaluateMode","choicesLayout","Tag","classSuffix","holderClassNames","choicelabel","React","Component","PropTypes","oneOf","string","isRequired","bool","func","object"],"mappings":"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","sourcesContent":["import FormControlLabel from '@material-ui/core/FormControlLabel';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\n\nimport Checkbox from '@material-ui/core/Checkbox';\nimport { Feedback, color, PreviewPrompt } from '@pie-lib/render-ui';\nimport FeedbackTick from './feedback-tick';\nimport Radio from '@material-ui/core/Radio';\nimport classNames from 'classnames';\n\nconst CLASS_NAME = 'multiple-choice-component';\nconst generateId = () => (Math.random() * 1000001).toFixed(0);\n\nconst styleSheet = (theme) => ({\n row: {\n display: 'flex',\n alignItems: 'center',\n backgroundColor: color.background(),\n },\n checkboxHolder: {\n display: 'flex',\n alignItems: 'center',\n backgroundColor: color.background(),\n flex: 1,\n '& label': {\n color: color.text(),\n },\n },\n horizontalLayout: {\n [`& .${CLASS_NAME}`]: {\n paddingRight: theme.spacing.unit,\n },\n },\n});\n\nconst formStyleSheet = {\n label: {\n color: `${color.text()} !important`, //'var(--choice-input-color, black)'\n backgroundColor: color.background(),\n },\n};\n\nexport const StyledFormControlLabel = withStyles(formStyleSheet, {\n name: 'FormControlLabel',\n})((props) => <FormControlLabel {...props} classes={{ label: props.classes.label }} />);\n\nconst colorStyle = (varName, fallback) => ({\n [`&.${CLASS_NAME}`]: {\n color: `var(--choice-input-${varName}, ${fallback}) !important`,\n },\n});\n\nconst inputStyles = {\n 'correct-root': colorStyle('correct-color', color.text()),\n 'correct-checked': colorStyle('correct-selected-color', color.correct()), //green[500]),\n 'correct-disabled': colorStyle('correct-disabled-color', color.disabled()), //'grey'),\n 'incorrect-root': colorStyle('incorrect-color', color.incorrect()),\n 'incorrect-checked': colorStyle('incorrect-checked', color.incorrect()), //orange[500]),\n 'incorrect-disabled': colorStyle('incorrect-disabled-color', color.disabled()),\n root: {\n ...colorStyle('color', color.text()),\n '&:hover': { color: `${color.primaryLight()} !important` },\n },\n checked: colorStyle('selected-color', color.primary()),\n disabled: {\n ...colorStyle('disabled-color', color.text()),\n opacity: 0.6,\n cursor: 'not-allowed !important',\n pointerEvents: 'initial !important',\n },\n};\n\nexport const StyledCheckbox = withStyles(inputStyles)((props) => {\n const { correctness, classes, checked, onChange, disabled, accessibility, value, id } = props;\n const key = (k) => (correctness ? `${correctness}-${k}` : k);\n\n const resolved = {\n root: classes[key('root')],\n checked: classes[key('checked')],\n disabled: classes[key('disabled')],\n };\n\n const miniProps = { checked, onChange, disabled, value };\n\n return (\n <Checkbox\n id={id}\n aria-label={accessibility}\n aria-checked={checked}\n {...miniProps}\n className={CLASS_NAME}\n classes={{\n root: resolved.root,\n checked: resolved.checked,\n disabled: `${correctness ? '' : resolved.disabled}`,\n }}\n />\n );\n});\n\nexport const StyledRadio = withStyles(inputStyles)((props) => {\n const { correctness, classes, checked, onChange, disabled, accessibility, value, id } = props;\n const key = (k) => (correctness ? `${correctness}-${k}` : k);\n\n const resolved = {\n root: classes[key('root')],\n checked: classes[key('checked')],\n disabled: classes[key('disabled')],\n };\n\n const miniProps = { checked, onChange, disabled, value };\n\n return (\n <Radio\n id={id}\n aria-label={accessibility}\n aria-checked={checked}\n {...miniProps}\n className={CLASS_NAME}\n classes={{\n root: resolved.root,\n checked: resolved.checked,\n disabled: `${correctness ? '' : resolved.disabled}`,\n }}\n />\n );\n});\n\nexport class ChoiceInput extends React.Component {\n static propTypes = {\n choiceMode: PropTypes.oneOf(['radio', 'checkbox']),\n displayKey: PropTypes.string.isRequired,\n checked: PropTypes.bool.isRequired,\n correctness: PropTypes.string,\n disabled: PropTypes.bool.isRequired,\n feedback: PropTypes.string,\n label: PropTypes.string.isRequired,\n rationale: PropTypes.string,\n accessibility: PropTypes.string,\n onChange: PropTypes.func.isRequired,\n value: PropTypes.string.isRequired,\n classes: PropTypes.object,\n className: PropTypes.string,\n hideTick: PropTypes.bool,\n isEvaluateMode: PropTypes.bool,\n choicesLayout: PropTypes.oneOf(['vertical', 'grid', 'horizontal']),\n };\n\n static defaultProps = {\n rationale: null,\n accessibility: null,\n checked: false,\n isEvaluateMode: false,\n };\n\n constructor(props) {\n super(props);\n this.onToggleChoice = this.onToggleChoice.bind(this);\n }\n\n onToggleChoice(event) {\n this.props.onChange(event);\n this.props.updateSession({\n value: this.props.value,\n selected: !this.props.checked,\n });\n }\n\n render() {\n const {\n choiceMode,\n disabled,\n displayKey,\n feedback,\n label,\n correctness,\n classes,\n className,\n rationale,\n accessibility,\n hideTick,\n isEvaluateMode,\n choicesLayout,\n value,\n checked,\n } = this.props;\n const Tag = choiceMode === 'checkbox' ? StyledCheckbox : StyledRadio;\n const classSuffix = choiceMode === 'checkbox' ? 'checkbox' : 'radio-button';\n\n const holderClassNames = classNames(classes.checkboxHolder, {\n [classes.horizontalLayout]: choicesLayout === 'horizontal',\n });\n\n const choicelabel= <PreviewPrompt className=\"label\" onClick={this.onToggleChoice} prompt={displayKey ? `${displayKey}.&nbsp ${label}`: label} tagName=\"span\" />\n const id = generateId();\n\n return (\n <div className={classNames(className, 'corespring-' + classSuffix, 'choice-input')}>\n <div className={classes.row}>\n {!hideTick && isEvaluateMode && <FeedbackTick correctness={correctness} />}\n <div className={classNames(holderClassNames, 'checkbox-holder')}>\n <StyledFormControlLabel\n label={choicelabel}\n value={value}\n control={\n <Tag\n accessibility={accessibility}\n disabled={disabled}\n checked={checked}\n correctness={correctness}\n id={id}\n value={value}\n onChange={this.onToggleChoice}\n />\n }\n htmlFor={id}\n />\n </div>\n </div>\n {rationale && <PreviewPrompt className=\"rationale\" defaultClassName=\"rationale\" prompt={rationale} />}\n <Feedback feedback={feedback} correctness={correctness} />\n </div>\n );\n }\n}\n\nexport default withStyles(styleSheet)(ChoiceInput);\n"],"file":"choice-input.js"}
package/package.json CHANGED
@@ -1,16 +1,16 @@
1
1
  {
2
2
  "name": "@pie-element/multiple-choice",
3
3
  "repository": "pie-framework/pie-elements",
4
- "version": "7.9.3-next.3+826e0c039",
4
+ "version": "7.9.3-next.35+229873261",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
8
8
  "dependencies": {
9
9
  "@material-ui/core": "^3.9.2",
10
- "@pie-lib/config-ui": "^11.5.3",
11
- "@pie-lib/correct-answer-toggle": "^2.3.65",
10
+ "@pie-lib/config-ui": "^11.5.4",
11
+ "@pie-lib/correct-answer-toggle": "^2.3.66",
12
12
  "@pie-lib/math-rendering": "^2.5.12",
13
- "@pie-lib/render-ui": "^4.14.15",
13
+ "@pie-lib/render-ui": "^4.14.16",
14
14
  "classnames": "^2.2.5",
15
15
  "debug": "^4.1.1",
16
16
  "enzyme-to-json": "^3.3.3",
@@ -21,7 +21,7 @@
21
21
  "react-test-renderer": "^16.3.2",
22
22
  "react-transition-group": "^2.3.1"
23
23
  },
24
- "gitHead": "826e0c039a2cd5b956be6bf1e56eb76e6b9c9306",
24
+ "gitHead": "2298732616a2fb908d6f97faf5c5ede5d0e82c5c",
25
25
  "scripts": {
26
26
  "postpublish": "../../scripts/postpublish"
27
27
  },