@pie-lib/config-ui 10.10.24 → 10.12.0

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,38 @@
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
+ # [10.12.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/config-ui@10.11.1...@pie-lib/config-ui@10.12.0) (2022-05-03)
7
+
8
+
9
+ ### Features
10
+
11
+ * **config-ui:** tweak form-section component for placement-ordering ui/ux PD-1744 ([2e7bc9e](https://github.com/pie-framework/pie-lib/commit/2e7bc9e2d133d90096f0651a302925b9595b1173))
12
+ * implemented an alert dialog ([7a82e03](https://github.com/pie-framework/pie-lib/commit/7a82e0351b5f3124fb78fbfce6eee406f0b9d030))
13
+
14
+
15
+
16
+
17
+
18
+ ## [10.11.1](https://github.com/pie-framework/pie-lib/compare/@pie-lib/config-ui@10.11.0...@pie-lib/config-ui@10.11.1) (2022-04-28)
19
+
20
+ **Note:** Version bump only for package @pie-lib/config-ui
21
+
22
+
23
+
24
+
25
+
26
+ # [10.11.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/config-ui@10.10.24...@pie-lib/config-ui@10.11.0) (2022-04-12)
27
+
28
+
29
+ ### Features
30
+
31
+ * PD-1679 remove unwanted changes ([61982ef](https://github.com/pie-framework/pie-lib/commit/61982efc31296b0ed3e84d1bd1f74dcd4dbe9ac2))
32
+ * **config-ui, editable-html:** add ui/ux validation for choices and editable html fields ([d40148f](https://github.com/pie-framework/pie-lib/commit/d40148f0f4b1232ce1506867a7424aa56e26c5ec))
33
+
34
+
35
+
36
+
37
+
6
38
  ## [10.10.24](https://github.com/pie-framework/pie-lib/compare/@pie-lib/config-ui@10.10.23...@pie-lib/config-ui@10.10.24) (2022-03-21)
7
39
 
8
40
  **Note:** Version bump only for package @pie-lib/config-ui
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+
12
+ var _core = require("@material-ui/core");
13
+
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
15
+
16
+ var AlertDialog = function AlertDialog(_ref) {
17
+ var text = _ref.text,
18
+ title = _ref.title,
19
+ onClose = _ref.onClose,
20
+ onConfirm = _ref.onConfirm,
21
+ open = _ref.open;
22
+ return /*#__PURE__*/_react["default"].createElement(_core.Dialog, {
23
+ open: open,
24
+ onClose: onClose
25
+ }, title && /*#__PURE__*/_react["default"].createElement(_core.DialogTitle, null, title), text && /*#__PURE__*/_react["default"].createElement(_core.DialogContent, null, /*#__PURE__*/_react["default"].createElement(_core.DialogContentText, null, text)), /*#__PURE__*/_react["default"].createElement(_core.DialogActions, null, onClose && /*#__PURE__*/_react["default"].createElement(_core.Button, {
26
+ onClick: onClose,
27
+ color: "primary"
28
+ }, "CANCEL"), onConfirm && /*#__PURE__*/_react["default"].createElement(_core.Button, {
29
+ autoFocus: true,
30
+ onClick: onConfirm,
31
+ color: "primary"
32
+ }, "OK")));
33
+ };
34
+
35
+ AlertDialog.propTypes = {
36
+ text: _propTypes["default"].string,
37
+ title: _propTypes["default"].string,
38
+ onClose: _propTypes["default"].func,
39
+ onConfirm: _propTypes["default"].func,
40
+ open: _propTypes["default"].bool
41
+ };
42
+ var _default = AlertDialog;
43
+ exports["default"] = _default;
44
+ //# sourceMappingURL=alert-dialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/alert-dialog.jsx"],"names":["AlertDialog","text","title","onClose","onConfirm","open","propTypes","PropTypes","string","func","bool"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;;;AASA,IAAMA,WAAW,GAAG,SAAdA,WAAc;AAAA,MAAGC,IAAH,QAAGA,IAAH;AAAA,MAASC,KAAT,QAASA,KAAT;AAAA,MAAgBC,OAAhB,QAAgBA,OAAhB;AAAA,MAAyBC,SAAzB,QAAyBA,SAAzB;AAAA,MAAoCC,IAApC,QAAoCA,IAApC;AAAA,sBAClB,gCAAC,YAAD;AAAQ,IAAA,IAAI,EAAEA,IAAd;AAAoB,IAAA,OAAO,EAAEF;AAA7B,KACGD,KAAK,iBAAI,gCAAC,iBAAD,QAAcA,KAAd,CADZ,EAEGD,IAAI,iBACH,gCAAC,mBAAD,qBACE,gCAAC,uBAAD,QAAoBA,IAApB,CADF,CAHJ,eAOE,gCAAC,mBAAD,QACGE,OAAO,iBACN,gCAAC,YAAD;AAAQ,IAAA,OAAO,EAAEA,OAAjB;AAA0B,IAAA,KAAK,EAAC;AAAhC,cAFJ,EAMGC,SAAS,iBACR,gCAAC,YAAD;AAAQ,IAAA,SAAS,MAAjB;AAAkB,IAAA,OAAO,EAAEA,SAA3B;AAAsC,IAAA,KAAK,EAAC;AAA5C,UAPJ,CAPF,CADkB;AAAA,CAApB;;AAuBAJ,WAAW,CAACM,SAAZ,GAAwB;AACtBL,EAAAA,IAAI,EAAEM,sBAAUC,MADM;AAEtBN,EAAAA,KAAK,EAAEK,sBAAUC,MAFK;AAGtBL,EAAAA,OAAO,EAAEI,sBAAUE,IAHG;AAItBL,EAAAA,SAAS,EAAEG,sBAAUE,IAJC;AAKtBJ,EAAAA,IAAI,EAAEE,sBAAUG;AALM,CAAxB;eAQeV,W","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport {\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n DialogContentText,\n DialogTitle\n} from '@material-ui/core';\n\nconst AlertDialog = ({ text, title, onClose, onConfirm, open }) => (\n <Dialog open={open} onClose={onClose}>\n {title && <DialogTitle>{title}</DialogTitle>}\n {text && (\n <DialogContent>\n <DialogContentText>{text}</DialogContentText>\n </DialogContent>\n )}\n <DialogActions>\n {onClose && (\n <Button onClick={onClose} color=\"primary\">\n CANCEL\n </Button>\n )}\n {onConfirm && (\n <Button autoFocus onClick={onConfirm} color=\"primary\">\n OK\n </Button>\n )}\n </DialogActions>\n </Dialog>\n);\n\nAlertDialog.propTypes = {\n text: PropTypes.string,\n title: PropTypes.string,\n onClose: PropTypes.func,\n onConfirm: PropTypes.func,\n open: PropTypes.bool\n};\n\nexport default AlertDialog;\n"],"file":"alert-dialog.js"}
@@ -78,7 +78,8 @@ var EditableHtmlContainer = (0, _styles.withStyles)(function (theme) {
78
78
  disabled = _ref.disabled,
79
79
  spellCheck = _ref.spellCheck,
80
80
  nonEmpty = _ref.nonEmpty,
81
- toolbarOpts = _ref.toolbarOpts;
81
+ toolbarOpts = _ref.toolbarOpts,
82
+ error = _ref.error;
82
83
  var names = (0, _classnames["default"])(classes.labelContainer, className);
83
84
  return /*#__PURE__*/_react["default"].createElement(_renderUi.InputContainer, {
84
85
  label: label,
@@ -93,7 +94,8 @@ var EditableHtmlContainer = (0, _styles.withStyles)(function (theme) {
93
94
  onChange: onChange,
94
95
  imageSupport: imageSupport,
95
96
  className: classes.editor,
96
- toolbarOpts: toolbarOpts
97
+ toolbarOpts: toolbarOpts,
98
+ error: error
97
99
  })));
98
100
  });
99
101
  var Feedback = (0, _styles.withStyles)(function () {
@@ -248,7 +250,9 @@ var ChoiceConfiguration = /*#__PURE__*/function (_React$Component) {
248
250
  nonEmpty = _this$props5.nonEmpty,
249
251
  allowFeedBack = _this$props5.allowFeedBack,
250
252
  allowDelete = _this$props5.allowDelete,
251
- toolbarOpts = _this$props5.toolbarOpts;
253
+ toolbarOpts = _this$props5.toolbarOpts,
254
+ error = _this$props5.error,
255
+ noCorrectAnswerError = _this$props5.noCorrectAnswerError;
252
256
  var InputToggle = mode === 'checkbox' ? _inputs.InputCheckbox : _inputs.InputRadio;
253
257
  var names = (0, _classnames["default"])(classes.choiceConfiguration, className);
254
258
  return /*#__PURE__*/_react["default"].createElement("div", {
@@ -262,7 +266,8 @@ var ChoiceConfiguration = /*#__PURE__*/function (_React$Component) {
262
266
  className: classes.toggle,
263
267
  onChange: this.onCheckedChange,
264
268
  label: !noLabels ? 'Correct' : '',
265
- checked: !!data.correct
269
+ checked: !!data.correct,
270
+ error: noCorrectAnswerError
266
271
  }), /*#__PURE__*/_react["default"].createElement("div", {
267
272
  className: classes.middleColumn
268
273
  }, /*#__PURE__*/_react["default"].createElement(EditableHtmlContainer, {
@@ -273,8 +278,11 @@ var ChoiceConfiguration = /*#__PURE__*/function (_React$Component) {
273
278
  disabled: disabled,
274
279
  spellCheck: spellCheck,
275
280
  nonEmpty: nonEmpty,
276
- toolbarOpts: toolbarOpts
277
- }), allowFeedBack && /*#__PURE__*/_react["default"].createElement(Feedback, _extends({}, data.feedback, {
281
+ toolbarOpts: toolbarOpts,
282
+ error: error
283
+ }), error && /*#__PURE__*/_react["default"].createElement("div", {
284
+ className: classes.errorText
285
+ }, error), allowFeedBack && /*#__PURE__*/_react["default"].createElement(Feedback, _extends({}, data.feedback, {
278
286
  correct: data.correct,
279
287
  defaults: defaultFeedback,
280
288
  onChange: this.onFeedbackValueChange,
@@ -387,6 +395,10 @@ var styles = function styles(theme) {
387
395
  display: 'flex',
388
396
  flex: 1,
389
397
  flexDirection: 'column'
398
+ },
399
+ errorText: {
400
+ fontSize: '12px',
401
+ color: 'red'
390
402
  }
391
403
  };
392
404
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/choice-configuration/index.jsx"],"names":["EditableHtmlContainer","theme","labelContainer","editorHolder","marginTop","spacing","unit","label","classes","onChange","value","className","imageSupport","disabled","spellCheck","nonEmpty","toolbarOpts","names","editor","Feedback","text","width","feedbackContainer","position","arrowIcon","fill","left","top","type","correct","defaults","incorrect","ChoiceConfiguration","key","update","props","data","_changeFn","event","target","checked","v","feedback","fb","t","undefined","mode","onDelete","defaultFeedback","index","noLabels","useLetterOrdering","allowFeedBack","allowDelete","InputToggle","InputCheckbox","InputRadio","choiceConfiguration","topRow","String","fromCharCode","toUpperCase","toggle","onCheckedChange","middleColumn","onLabelChange","onFeedbackValueChange","onFeedbackTypeChange","icon","feedbackIcon","deleteIcon","React","Component","PropTypes","object","isRequired","bool","string","oneOf","shape","func","number","add","styles","padding","display","flex","paddingRight","paddingTop","paddingLeft","marginLeft","margin","flexDirection"],"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 classNames from 'classnames';\nimport { InputContainer } from '@pie-lib/render-ui';\nimport EditableHtml from '@pie-lib/editable-html';\nimport { InputCheckbox, InputRadio } from '../inputs';\nimport FeedbackMenu from './feedback-menu';\nimport ActionDelete from '@material-ui/icons/Delete';\nimport ArrowRight from '@material-ui/icons/SubdirectoryArrowRight';\nimport IconButton from '@material-ui/core/IconButton';\n\nconst EditableHtmlContainer = withStyles(theme => ({\n labelContainer: {},\n editorHolder: {\n marginTop: theme.spacing.unit * 2\n }\n}))(\n ({\n label,\n classes,\n onChange,\n value,\n className,\n imageSupport,\n disabled,\n spellCheck,\n nonEmpty,\n toolbarOpts\n }) => {\n const names = classNames(classes.labelContainer, className);\n\n return (\n <InputContainer label={label} className={names}>\n <div className={classes.editorHolder}>\n <EditableHtml\n markup={value || ''}\n disabled={disabled}\n spellCheck = {spellCheck}\n nonEmpty={nonEmpty}\n onChange={onChange}\n imageSupport={imageSupport}\n className={classes.editor}\n toolbarOpts={toolbarOpts}\n />\n </div>\n </InputContainer>\n );\n }\n);\n\nconst Feedback = withStyles(() => ({\n text: {\n width: '100%'\n },\n feedbackContainer: {\n position: 'relative'\n },\n arrowIcon: {\n fill: '#ccc',\n left: -56,\n position: 'absolute',\n top: 20\n }\n}))(({ value, onChange, type, correct, classes, defaults, toolbarOpts }) => {\n if (!type || type === 'none') {\n return null;\n } else if (type === 'default') {\n return (\n <div className={classes.feedbackContainer}>\n <ArrowRight className={classes.arrowIcon} />\n <TextField\n className={classes.text}\n label=\"Feedback Text\"\n value={correct ? defaults.correct : defaults.incorrect}\n />\n </div>\n );\n } else {\n return (\n <div className={classes.feedbackContainer}>\n <ArrowRight className={classes.arrowIcon} />\n <EditableHtmlContainer\n className={classes.text}\n label=\"Feedback Text\"\n value={value}\n onChange={onChange}\n toolbarOpts={toolbarOpts}\n />\n </div>\n );\n }\n});\n\nexport class ChoiceConfiguration extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n noLabels: PropTypes.bool,\n useLetterOrdering: PropTypes.bool,\n className: PropTypes.string,\n mode: PropTypes.oneOf(['checkbox', 'radio']),\n defaultFeedback: PropTypes.object.isRequired,\n disabled: PropTypes.bool,\n nonEmpty: PropTypes.bool,\n data: PropTypes.shape({\n label: PropTypes.string.isRequired,\n value: PropTypes.string.isRequired,\n correct: PropTypes.bool,\n feedback: PropTypes.shape({\n type: PropTypes.string,\n value: PropTypes.string\n })\n }),\n onDelete: PropTypes.func,\n onChange: PropTypes.func,\n index: PropTypes.number,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired\n }),\n allowFeedBack: PropTypes.bool,\n allowDelete: PropTypes.bool,\n toolbarOpts: PropTypes.object\n };\n\n static defaultProps = {\n index: -1,\n noLabels: false,\n useLetterOrdering: false,\n allowFeedBack: true,\n allowDelete: true\n };\n\n _changeFn = key => update => {\n const { data, onChange } = this.props;\n if (onChange) {\n onChange({ ...data, [key]: update });\n }\n };\n\n onLabelChange = this._changeFn('label');\n\n onCheckedChange = event => {\n const correct = event.target.checked;\n const { data, onChange } = this.props;\n\n if (onChange) {\n onChange({ ...data, correct });\n }\n };\n\n onFeedbackValueChange = v => {\n const { data, onChange } = this.props;\n\n if (data.feedback.type !== 'custom') {\n return;\n }\n\n const fb = { ...data.feedback, value: v };\n\n if (onChange) onChange({ ...data, feedback: fb });\n };\n\n onFeedbackTypeChange = t => {\n const { data, onChange } = this.props;\n const fb = { ...data.feedback, type: t };\n if (fb.type !== 'custom') {\n fb.value = undefined;\n }\n\n if (onChange) onChange({ ...data, feedback: fb });\n };\n\n render() {\n const {\n data,\n classes,\n mode,\n onDelete,\n defaultFeedback,\n index,\n className,\n noLabels,\n useLetterOrdering,\n imageSupport,\n disabled,\n spellCheck,\n nonEmpty,\n allowFeedBack,\n allowDelete,\n toolbarOpts\n } = this.props;\n\n const InputToggle = mode === 'checkbox' ? InputCheckbox : InputRadio;\n const names = classNames(classes.choiceConfiguration, className);\n return (\n <div className={names}>\n <div className={classes.topRow}>\n {index > 0 && (\n <span className={classes.index} type=\"title\">\n {useLetterOrdering ? String.fromCharCode(96 + index).toUpperCase() : index}\n </span>\n )}\n <InputToggle\n className={classes.toggle}\n onChange={this.onCheckedChange}\n label={!noLabels ? 'Correct' : ''}\n checked={!!data.correct}\n />\n <div className={classes.middleColumn}>\n <EditableHtmlContainer\n label={!noLabels ? 'Label' : ''}\n value={data.label}\n onChange={this.onLabelChange}\n imageSupport={imageSupport}\n disabled={disabled}\n spellCheck = {spellCheck}\n nonEmpty={nonEmpty}\n toolbarOpts={toolbarOpts}\n />\n\n {allowFeedBack && (\n <Feedback\n {...data.feedback}\n correct={data.correct}\n defaults={defaultFeedback}\n onChange={this.onFeedbackValueChange}\n toolbarOpts={toolbarOpts}\n />\n )}\n </div>\n {allowFeedBack && (\n <InputContainer className={classes.feedback} label={!noLabels ? 'Feedback' : ''}>\n <FeedbackMenu\n onChange={this.onFeedbackTypeChange}\n value={data.feedback}\n classes={{\n icon: classes.feedbackIcon\n }}\n />\n </InputContainer>\n )}\n {allowDelete && (\n <InputContainer className={classes.delete} label={!noLabels ? 'Delete' : ''}>\n <IconButton aria-label=\"delete\" className={classes.deleteIcon} onClick={onDelete}>\n <ActionDelete />\n </IconButton>\n </InputContainer>\n )}\n </div>\n </div>\n );\n }\n}\n\nconst styles = theme => ({\n index: {\n padding: '24px 10px 0 0'\n },\n choiceConfiguration: {},\n topRow: {\n display: 'flex'\n },\n value: {\n flex: '0.5',\n paddingRight: theme.spacing.unit\n },\n editorHolder: {\n marginTop: theme.spacing.unit * 2\n },\n toggle: {\n flex: '0 1 auto'\n },\n feedback: {\n flex: '0 1 auto',\n paddingTop: theme.spacing.unit,\n paddingLeft: 0,\n marginLeft: 0,\n paddingRight: theme.spacing.unit * 3\n },\n feedbackIcon: {\n margin: 0,\n paddingLeft: 0,\n width: 'inherit'\n },\n deleteIcon: {\n margin: 0,\n width: 'inherit'\n },\n delete: {\n flex: '0 1 auto',\n paddingTop: theme.spacing.unit,\n paddingLeft: 0,\n marginLeft: 0\n },\n middleColumn: {\n display: 'flex',\n flex: 1,\n flexDirection: 'column'\n }\n});\n\nexport default withStyles(styles)(ChoiceConfiguration);\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../src/choice-configuration/index.jsx"],"names":["EditableHtmlContainer","theme","labelContainer","editorHolder","marginTop","spacing","unit","label","classes","onChange","value","className","imageSupport","disabled","spellCheck","nonEmpty","toolbarOpts","error","names","editor","Feedback","text","width","feedbackContainer","position","arrowIcon","fill","left","top","type","correct","defaults","incorrect","ChoiceConfiguration","key","update","props","data","_changeFn","event","target","checked","v","feedback","fb","t","undefined","mode","onDelete","defaultFeedback","index","noLabels","useLetterOrdering","allowFeedBack","allowDelete","noCorrectAnswerError","InputToggle","InputCheckbox","InputRadio","choiceConfiguration","topRow","String","fromCharCode","toUpperCase","toggle","onCheckedChange","middleColumn","onLabelChange","errorText","onFeedbackValueChange","onFeedbackTypeChange","icon","feedbackIcon","deleteIcon","React","Component","PropTypes","object","isRequired","bool","string","oneOf","shape","func","number","add","styles","padding","display","flex","paddingRight","paddingTop","paddingLeft","marginLeft","margin","flexDirection","fontSize","color"],"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 classNames from 'classnames';\nimport { InputContainer } from '@pie-lib/render-ui';\nimport EditableHtml from '@pie-lib/editable-html';\nimport { InputCheckbox, InputRadio } from '../inputs';\nimport FeedbackMenu from './feedback-menu';\nimport ActionDelete from '@material-ui/icons/Delete';\nimport ArrowRight from '@material-ui/icons/SubdirectoryArrowRight';\nimport IconButton from '@material-ui/core/IconButton';\n\nconst EditableHtmlContainer = withStyles(theme => ({\n labelContainer: {},\n editorHolder: {\n marginTop: theme.spacing.unit * 2\n }\n}))(\n ({\n label,\n classes,\n onChange,\n value,\n className,\n imageSupport,\n disabled,\n spellCheck,\n nonEmpty,\n toolbarOpts,\n error\n }) => {\n const names = classNames(classes.labelContainer, className);\n\n return (\n <InputContainer label={label} className={names}>\n <div className={classes.editorHolder}>\n <EditableHtml\n markup={value || ''}\n disabled={disabled}\n spellCheck={spellCheck}\n nonEmpty={nonEmpty}\n onChange={onChange}\n imageSupport={imageSupport}\n className={classes.editor}\n toolbarOpts={toolbarOpts}\n error={error}\n />\n </div>\n </InputContainer>\n );\n }\n);\n\nconst Feedback = withStyles(() => ({\n text: {\n width: '100%'\n },\n feedbackContainer: {\n position: 'relative'\n },\n arrowIcon: {\n fill: '#ccc',\n left: -56,\n position: 'absolute',\n top: 20\n }\n}))(({ value, onChange, type, correct, classes, defaults, toolbarOpts }) => {\n if (!type || type === 'none') {\n return null;\n } else if (type === 'default') {\n return (\n <div className={classes.feedbackContainer}>\n <ArrowRight className={classes.arrowIcon} />\n <TextField\n className={classes.text}\n label=\"Feedback Text\"\n value={correct ? defaults.correct : defaults.incorrect}\n />\n </div>\n );\n } else {\n return (\n <div className={classes.feedbackContainer}>\n <ArrowRight className={classes.arrowIcon} />\n <EditableHtmlContainer\n className={classes.text}\n label=\"Feedback Text\"\n value={value}\n onChange={onChange}\n toolbarOpts={toolbarOpts}\n />\n </div>\n );\n }\n});\n\nexport class ChoiceConfiguration extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n noLabels: PropTypes.bool,\n useLetterOrdering: PropTypes.bool,\n className: PropTypes.string,\n mode: PropTypes.oneOf(['checkbox', 'radio']),\n defaultFeedback: PropTypes.object.isRequired,\n disabled: PropTypes.bool,\n nonEmpty: PropTypes.bool,\n data: PropTypes.shape({\n label: PropTypes.string.isRequired,\n value: PropTypes.string.isRequired,\n correct: PropTypes.bool,\n feedback: PropTypes.shape({\n type: PropTypes.string,\n value: PropTypes.string\n })\n }),\n onDelete: PropTypes.func,\n onChange: PropTypes.func,\n index: PropTypes.number,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired\n }),\n allowFeedBack: PropTypes.bool,\n allowDelete: PropTypes.bool,\n toolbarOpts: PropTypes.object\n };\n\n static defaultProps = {\n index: -1,\n noLabels: false,\n useLetterOrdering: false,\n allowFeedBack: true,\n allowDelete: true\n };\n\n _changeFn = key => update => {\n const { data, onChange } = this.props;\n if (onChange) {\n onChange({ ...data, [key]: update });\n }\n };\n\n onLabelChange = this._changeFn('label');\n\n onCheckedChange = event => {\n const correct = event.target.checked;\n const { data, onChange } = this.props;\n\n if (onChange) {\n onChange({ ...data, correct });\n }\n };\n\n onFeedbackValueChange = v => {\n const { data, onChange } = this.props;\n\n if (data.feedback.type !== 'custom') {\n return;\n }\n\n const fb = { ...data.feedback, value: v };\n\n if (onChange) onChange({ ...data, feedback: fb });\n };\n\n onFeedbackTypeChange = t => {\n const { data, onChange } = this.props;\n const fb = { ...data.feedback, type: t };\n if (fb.type !== 'custom') {\n fb.value = undefined;\n }\n\n if (onChange) onChange({ ...data, feedback: fb });\n };\n\n render() {\n const {\n data,\n classes,\n mode,\n onDelete,\n defaultFeedback,\n index,\n className,\n noLabels,\n useLetterOrdering,\n imageSupport,\n disabled,\n spellCheck,\n nonEmpty,\n allowFeedBack,\n allowDelete,\n toolbarOpts,\n error,\n noCorrectAnswerError\n } = this.props;\n\n const InputToggle = mode === 'checkbox' ? InputCheckbox : InputRadio;\n const names = classNames(classes.choiceConfiguration, className);\n return (\n <div className={names}>\n <div className={classes.topRow}>\n {index > 0 && (\n <span className={classes.index} type=\"title\">\n {useLetterOrdering ? String.fromCharCode(96 + index).toUpperCase() : index}\n </span>\n )}\n <InputToggle\n className={classes.toggle}\n onChange={this.onCheckedChange}\n label={!noLabels ? 'Correct' : ''}\n checked={!!data.correct}\n error={noCorrectAnswerError}\n />\n <div className={classes.middleColumn}>\n <EditableHtmlContainer\n label={!noLabels ? 'Label' : ''}\n value={data.label}\n onChange={this.onLabelChange}\n imageSupport={imageSupport}\n disabled={disabled}\n spellCheck={spellCheck}\n nonEmpty={nonEmpty}\n toolbarOpts={toolbarOpts}\n error={error}\n />\n {error && <div className={classes.errorText}>{error}</div>}\n\n {allowFeedBack && (\n <Feedback\n {...data.feedback}\n correct={data.correct}\n defaults={defaultFeedback}\n onChange={this.onFeedbackValueChange}\n toolbarOpts={toolbarOpts}\n />\n )}\n </div>\n {allowFeedBack && (\n <InputContainer className={classes.feedback} label={!noLabels ? 'Feedback' : ''}>\n <FeedbackMenu\n onChange={this.onFeedbackTypeChange}\n value={data.feedback}\n classes={{\n icon: classes.feedbackIcon\n }}\n />\n </InputContainer>\n )}\n {allowDelete && (\n <InputContainer className={classes.delete} label={!noLabels ? 'Delete' : ''}>\n <IconButton aria-label=\"delete\" className={classes.deleteIcon} onClick={onDelete}>\n <ActionDelete />\n </IconButton>\n </InputContainer>\n )}\n </div>\n </div>\n );\n }\n}\n\nconst styles = theme => ({\n index: {\n padding: '24px 10px 0 0'\n },\n choiceConfiguration: {},\n topRow: {\n display: 'flex'\n },\n value: {\n flex: '0.5',\n paddingRight: theme.spacing.unit\n },\n editorHolder: {\n marginTop: theme.spacing.unit * 2\n },\n toggle: {\n flex: '0 1 auto'\n },\n feedback: {\n flex: '0 1 auto',\n paddingTop: theme.spacing.unit,\n paddingLeft: 0,\n marginLeft: 0,\n paddingRight: theme.spacing.unit * 3\n },\n feedbackIcon: {\n margin: 0,\n paddingLeft: 0,\n width: 'inherit'\n },\n deleteIcon: {\n margin: 0,\n width: 'inherit'\n },\n delete: {\n flex: '0 1 auto',\n paddingTop: theme.spacing.unit,\n paddingLeft: 0,\n marginLeft: 0\n },\n middleColumn: {\n display: 'flex',\n flex: 1,\n flexDirection: 'column'\n },\n errorText: {\n fontSize: '12px',\n color: 'red'\n }\n});\n\nexport default withStyles(styles)(ChoiceConfiguration);\n"],"file":"index.js"}
@@ -31,12 +31,14 @@ var _default = (0, _styles.withStyles)(styles)(function (_ref) {
31
31
  var className = _ref.className,
32
32
  classes = _ref.classes,
33
33
  label = _ref.label,
34
- children = _ref.children;
34
+ children = _ref.children,
35
+ labelExtraStyle = _ref.labelExtraStyle;
35
36
  return /*#__PURE__*/_react["default"].createElement("div", {
36
37
  className: (0, _classnames["default"])(classes.formSection, className)
37
38
  }, /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
38
39
  className: classes.label,
39
- type: "subheading"
40
+ type: "subheading",
41
+ style: labelExtraStyle
40
42
  }, label), children);
41
43
  });
42
44
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/form-section.jsx"],"names":["styles","theme","formSection","marginTop","spacing","unit","marginBottom","label","className","classes","children"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;;;AAEA,IAAMA,MAAM,GAAG,SAATA,MAAS,CAAAC,KAAK;AAAA,SAAK;AACvBC,IAAAA,WAAW,EAAE;AACXC,MAAAA,SAAS,EAAEF,KAAK,CAACG,OAAN,CAAcC,IAAd,GAAqB,CADrB;AAEXC,MAAAA,YAAY,EAAEL,KAAK,CAACG,OAAN,CAAcC,IAAd,GAAqB;AAFxB,KADU;AAKvBE,IAAAA,KAAK,EAAE;AACLD,MAAAA,YAAY,EAAEL,KAAK,CAACG,OAAN,CAAcC;AADvB;AALgB,GAAL;AAAA,CAApB;;eAUe,wBAAWL,MAAX,EAAmB;AAAA,MAAGQ,SAAH,QAAGA,SAAH;AAAA,MAAcC,OAAd,QAAcA,OAAd;AAAA,MAAuBF,KAAvB,QAAuBA,KAAvB;AAAA,MAA8BG,QAA9B,QAA8BA,QAA9B;AAAA,sBAChC;AAAK,IAAA,SAAS,EAAE,4BAAWD,OAAO,CAACP,WAAnB,EAAgCM,SAAhC;AAAhB,kBACE,gCAAC,sBAAD;AAAY,IAAA,SAAS,EAAEC,OAAO,CAACF,KAA/B;AAAsC,IAAA,IAAI,EAAC;AAA3C,KACGA,KADH,CADF,EAIGG,QAJH,CADgC;AAAA,CAAnB,C","sourcesContent":["import React from 'react';\nimport Typography from '@material-ui/core/Typography';\nimport classNames from 'classnames';\nimport { withStyles } from '@material-ui/core/styles';\n\nconst styles = theme => ({\n formSection: {\n marginTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2\n },\n label: {\n marginBottom: theme.spacing.unit\n }\n});\n\nexport default withStyles(styles)(({ className, classes, label, children }) => (\n <div className={classNames(classes.formSection, className)}>\n <Typography className={classes.label} type=\"subheading\">\n {label}\n </Typography>\n {children}\n </div>\n));\n"],"file":"form-section.js"}
1
+ {"version":3,"sources":["../src/form-section.jsx"],"names":["styles","theme","formSection","marginTop","spacing","unit","marginBottom","label","className","classes","children","labelExtraStyle"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;;;AAEA,IAAMA,MAAM,GAAG,SAATA,MAAS,CAAAC,KAAK;AAAA,SAAK;AACvBC,IAAAA,WAAW,EAAE;AACXC,MAAAA,SAAS,EAAEF,KAAK,CAACG,OAAN,CAAcC,IAAd,GAAqB,CADrB;AAEXC,MAAAA,YAAY,EAAEL,KAAK,CAACG,OAAN,CAAcC,IAAd,GAAqB;AAFxB,KADU;AAKvBE,IAAAA,KAAK,EAAE;AACLD,MAAAA,YAAY,EAAEL,KAAK,CAACG,OAAN,CAAcC;AADvB;AALgB,GAAL;AAAA,CAApB;;eAUe,wBAAWL,MAAX,EAAmB;AAAA,MAAGQ,SAAH,QAAGA,SAAH;AAAA,MAAcC,OAAd,QAAcA,OAAd;AAAA,MAAuBF,KAAvB,QAAuBA,KAAvB;AAAA,MAA8BG,QAA9B,QAA8BA,QAA9B;AAAA,MAAwCC,eAAxC,QAAwCA,eAAxC;AAAA,sBAChC;AAAK,IAAA,SAAS,EAAE,4BAAWF,OAAO,CAACP,WAAnB,EAAgCM,SAAhC;AAAhB,kBACE,gCAAC,sBAAD;AAAY,IAAA,SAAS,EAAEC,OAAO,CAACF,KAA/B;AAAsC,IAAA,IAAI,EAAC,YAA3C;AAAwD,IAAA,KAAK,EAAEI;AAA/D,KACGJ,KADH,CADF,EAIGG,QAJH,CADgC;AAAA,CAAnB,C","sourcesContent":["import React from 'react';\nimport Typography from '@material-ui/core/Typography';\nimport classNames from 'classnames';\nimport { withStyles } from '@material-ui/core/styles';\n\nconst styles = theme => ({\n formSection: {\n marginTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2\n },\n label: {\n marginBottom: theme.spacing.unit\n }\n});\n\nexport default withStyles(styles)(({ className, classes, label, children, labelExtraStyle }) => (\n <div className={classNames(classes.formSection, className)}>\n <Typography className={classes.label} type=\"subheading\" style={labelExtraStyle}>\n {label}\n </Typography>\n {children}\n </div>\n));\n"],"file":"form-section.js"}
package/lib/index.js CHANGED
@@ -5,6 +5,12 @@ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" =
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
+ Object.defineProperty(exports, "AlertDialog", {
9
+ enumerable: true,
10
+ get: function get() {
11
+ return _alertDialog["default"];
12
+ }
13
+ });
8
14
  Object.defineProperty(exports, "Checkbox", {
9
15
  enumerable: true,
10
16
  get: function get() {
@@ -146,6 +152,8 @@ Object.defineProperty(exports, "withStatefulModel", {
146
152
  }
147
153
  });
148
154
 
155
+ var _alertDialog = _interopRequireDefault(require("./alert-dialog"));
156
+
149
157
  var _feedbackConfig = _interopRequireWildcard(require("./feedback-config"));
150
158
 
151
159
  var _inputs = require("./inputs");
@@ -192,9 +200,9 @@ var settings = _interopRequireWildcard(require("./settings"));
192
200
 
193
201
  exports.settings = settings;
194
202
 
195
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
196
-
197
203
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
198
204
 
199
205
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
206
+
207
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
200
208
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAIA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;AAEA;;;;AACA;;AACA;;AACA;;AAEA","sourcesContent":["import FeedbackConfig, {\n FeedbackSelector,\n buildDefaults as feedbackConfigDefaults\n} from './feedback-config';\nimport { InputCheckbox, InputSwitch, InputRadio } from './inputs';\nimport Langs, { LanguageControls } from './langs';\nimport Tabs from './tabs';\nimport Checkbox from './checkbox';\nimport FormSection from './form-section';\nimport Help from './help';\nimport Input from './input';\nimport { InputContainer } from '@pie-lib/render-ui';\nimport NumberTextField from './number-text-field';\nimport TwoChoice, { NChoice } from './two-choice';\nimport TagsInput from './tags-input';\nimport MuiBox from './mui-box';\nimport ChoiceConfiguration from './choice-configuration';\nimport * as layout from './layout';\n\nimport * as choiceUtils from './choice-utils';\nimport withStatefulModel from './with-stateful-model';\nimport Toggle from './settings/toggle';\nimport DisplaySize from './settings/display-size';\n\nimport * as settings from './settings';\n\nexport {\n FeedbackConfig,\n FeedbackSelector,\n feedbackConfigDefaults,\n InputCheckbox,\n InputSwitch,\n InputRadio,\n Langs,\n LanguageControls,\n Tabs,\n Checkbox,\n FormSection,\n Help,\n Input,\n InputContainer,\n NumberTextField,\n TwoChoice,\n NChoice,\n TagsInput,\n MuiBox,\n ChoiceConfiguration,\n layout,\n choiceUtils,\n withStatefulModel,\n Toggle,\n DisplaySize,\n settings\n};\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../src/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AAIA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;AAEA;;;;AACA;;AACA;;AACA;;AAEA","sourcesContent":["import AlertDialog from './alert-dialog';\nimport FeedbackConfig, {\n FeedbackSelector,\n buildDefaults as feedbackConfigDefaults\n} from './feedback-config';\nimport { InputCheckbox, InputSwitch, InputRadio } from './inputs';\nimport Langs, { LanguageControls } from './langs';\nimport Tabs from './tabs';\nimport Checkbox from './checkbox';\nimport FormSection from './form-section';\nimport Help from './help';\nimport Input from './input';\nimport { InputContainer } from '@pie-lib/render-ui';\nimport NumberTextField from './number-text-field';\nimport TwoChoice, { NChoice } from './two-choice';\nimport TagsInput from './tags-input';\nimport MuiBox from './mui-box';\nimport ChoiceConfiguration from './choice-configuration';\nimport * as layout from './layout';\n\nimport * as choiceUtils from './choice-utils';\nimport withStatefulModel from './with-stateful-model';\nimport Toggle from './settings/toggle';\nimport DisplaySize from './settings/display-size';\n\nimport * as settings from './settings';\n\nexport {\n AlertDialog,\n FeedbackConfig,\n FeedbackSelector,\n feedbackConfigDefaults,\n InputCheckbox,\n InputSwitch,\n InputRadio,\n Langs,\n LanguageControls,\n Tabs,\n Checkbox,\n FormSection,\n Help,\n Input,\n InputContainer,\n NumberTextField,\n TwoChoice,\n NChoice,\n TagsInput,\n MuiBox,\n ChoiceConfiguration,\n layout,\n choiceUtils,\n withStatefulModel,\n Toggle,\n DisplaySize,\n settings\n};\n"],"file":"index.js"}
package/lib/inputs.js CHANGED
@@ -19,6 +19,8 @@ var _Switch = _interopRequireDefault(require("@material-ui/core/Switch"));
19
19
 
20
20
  var _styles = require("@material-ui/core/styles");
21
21
 
22
+ var _classnames = _interopRequireDefault(require("classnames"));
23
+
22
24
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
23
25
 
24
26
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
@@ -33,7 +35,8 @@ var InputTypes = {
33
35
  label: _propTypes["default"].string,
34
36
  checked: _propTypes["default"].bool,
35
37
  onChange: _propTypes["default"].func,
36
- disabled: _propTypes["default"].bool
38
+ disabled: _propTypes["default"].bool,
39
+ error: _propTypes["default"].string
37
40
  };
38
41
 
39
42
  var RawInputSwitch = function RawInputSwitch(_ref) {
@@ -68,12 +71,13 @@ var RawInputCheckbox = function RawInputCheckbox(props) {
68
71
  label = props.label,
69
72
  checked = props.checked,
70
73
  onChange = props.onChange,
71
- disabled = props.disabled;
74
+ disabled = props.disabled,
75
+ error = props.error;
72
76
  return /*#__PURE__*/_react["default"].createElement(_renderUi.InputContainer, {
73
77
  className: className,
74
78
  label: label
75
79
  }, /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], {
76
- className: classes.checkboxRoot,
80
+ className: (0, _classnames["default"])(classes.checkboxRoot, error && classes.error),
77
81
  disabled: disabled,
78
82
  checked: checked,
79
83
  onChange: onChange,
@@ -89,12 +93,13 @@ var RawInputRadio = function RawInputRadio(props) {
89
93
  label = props.label,
90
94
  checked = props.checked,
91
95
  onChange = props.onChange,
92
- disabled = props.disabled;
96
+ disabled = props.disabled,
97
+ error = props.error;
93
98
  return /*#__PURE__*/_react["default"].createElement(_renderUi.InputContainer, {
94
99
  className: className,
95
100
  label: label
96
101
  }, /*#__PURE__*/_react["default"].createElement(_Radio["default"], {
97
- className: classes.radioRoot,
102
+ className: (0, _classnames["default"])(classes.radioRoot, error && classes.error),
98
103
  disabled: disabled,
99
104
  checked: checked,
100
105
  onChange: onChange,
@@ -106,6 +111,9 @@ RawInputRadio.propTypes = _objectSpread({}, InputTypes);
106
111
  var InputCheckbox = (0, _styles.withStyles)({
107
112
  checkboxRoot: {
108
113
  transform: 'translate(-25%, 20%)'
114
+ },
115
+ error: {
116
+ color: 'red'
109
117
  }
110
118
  })(RawInputCheckbox);
111
119
  exports.InputCheckbox = InputCheckbox;
@@ -113,6 +121,9 @@ var InputRadio = (0, _styles.withStyles)(function () {
113
121
  return {
114
122
  radioRoot: {
115
123
  transform: 'translate(-20%, 20%)'
124
+ },
125
+ error: {
126
+ color: 'red'
116
127
  }
117
128
  };
118
129
  })(RawInputRadio);
package/lib/inputs.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/inputs.jsx"],"names":["InputTypes","classes","PropTypes","object","isRequired","className","string","label","checked","bool","onChange","func","disabled","RawInputSwitch","switchRoot","propTypes","InputSwitch","justifyContent","transform","RawInputCheckbox","props","checkboxRoot","RawInputRadio","radioRoot","InputCheckbox","InputRadio"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;AAEA,IAAMA,UAAU,GAAG;AACjBC,EAAAA,OAAO,EAAEC,sBAAUC,MAAV,CAAiBC,UADT;AAEjBC,EAAAA,SAAS,EAAEH,sBAAUI,MAFJ;AAGjBC,EAAAA,KAAK,EAAEL,sBAAUI,MAHA;AAIjBE,EAAAA,OAAO,EAAEN,sBAAUO,IAJF;AAKjBC,EAAAA,QAAQ,EAAER,sBAAUS,IALH;AAMjBC,EAAAA,QAAQ,EAAEV,sBAAUO;AANH,CAAnB;;AASA,IAAMI,cAAc,GAAG,SAAjBA,cAAiB,OAAsD;AAAA,MAAnDZ,OAAmD,QAAnDA,OAAmD;AAAA,MAA1CI,SAA0C,QAA1CA,SAA0C;AAAA,MAA/BE,KAA+B,QAA/BA,KAA+B;AAAA,MAAxBC,OAAwB,QAAxBA,OAAwB;AAAA,MAAfE,QAAe,QAAfA,QAAe;AAC3E,sBACE,gCAAC,wBAAD;AAAgB,IAAA,SAAS,EAAEL,SAA3B;AAAsC,IAAA,KAAK,EAAEE;AAA7C,kBACE,gCAAC,kBAAD;AACE,IAAA,SAAS,EAAEN,OAAO,CAACa,UADrB;AAEE,IAAA,OAAO,EAAEN,OAFX;AAGE,IAAA,QAAQ,EAAEE,QAHZ;AAIE,kBAAYH;AAJd,IADF,CADF;AAUD,CAXD;;AAaAM,cAAc,CAACE,SAAf,qBAAgCf,UAAhC;AAEA,IAAMgB,WAAW,GAAG,wBAAW;AAC7BF,EAAAA,UAAU,EAAE;AACVG,IAAAA,cAAc,EAAE,SADN;AAEVC,IAAAA,SAAS,EAAE;AAFD;AADiB,CAAX,EAKjBL,cALiB,CAApB;;;AAOA,IAAMM,gBAAgB,GAAG,SAAnBA,gBAAmB,CAAAC,KAAK,EAAI;AAChC,MAAQnB,OAAR,GAAmEmB,KAAnE,CAAQnB,OAAR;AAAA,MAAiBI,SAAjB,GAAmEe,KAAnE,CAAiBf,SAAjB;AAAA,MAA4BE,KAA5B,GAAmEa,KAAnE,CAA4Bb,KAA5B;AAAA,MAAmCC,OAAnC,GAAmEY,KAAnE,CAAmCZ,OAAnC;AAAA,MAA4CE,QAA5C,GAAmEU,KAAnE,CAA4CV,QAA5C;AAAA,MAAsDE,QAAtD,GAAmEQ,KAAnE,CAAsDR,QAAtD;AAEA,sBACE,gCAAC,wBAAD;AAAgB,IAAA,SAAS,EAAEP,SAA3B;AAAsC,IAAA,KAAK,EAAEE;AAA7C,kBACE,gCAAC,oBAAD;AACE,IAAA,SAAS,EAAEN,OAAO,CAACoB,YADrB;AAEE,IAAA,QAAQ,EAAET,QAFZ;AAGE,IAAA,OAAO,EAAEJ,OAHX;AAIE,IAAA,QAAQ,EAAEE,QAJZ;AAKE,kBAAYH;AALd,IADF,CADF;AAWD,CAdD;;AAgBAY,gBAAgB,CAACJ,SAAjB,qBAAkCf,UAAlC;;AAEA,IAAMsB,aAAa,GAAG,SAAhBA,aAAgB,CAAAF,KAAK,EAAI;AAC7B,MAAQnB,OAAR,GAAmEmB,KAAnE,CAAQnB,OAAR;AAAA,MAAiBI,SAAjB,GAAmEe,KAAnE,CAAiBf,SAAjB;AAAA,MAA4BE,KAA5B,GAAmEa,KAAnE,CAA4Bb,KAA5B;AAAA,MAAmCC,OAAnC,GAAmEY,KAAnE,CAAmCZ,OAAnC;AAAA,MAA4CE,QAA5C,GAAmEU,KAAnE,CAA4CV,QAA5C;AAAA,MAAsDE,QAAtD,GAAmEQ,KAAnE,CAAsDR,QAAtD;AAEA,sBACE,gCAAC,wBAAD;AAAgB,IAAA,SAAS,EAAEP,SAA3B;AAAsC,IAAA,KAAK,EAAEE;AAA7C,kBACE,gCAAC,iBAAD;AACE,IAAA,SAAS,EAAEN,OAAO,CAACsB,SADrB;AAEE,IAAA,QAAQ,EAAEX,QAFZ;AAGE,IAAA,OAAO,EAAEJ,OAHX;AAIE,IAAA,QAAQ,EAAEE,QAJZ;AAKE,kBAAYH;AALd,IADF,CADF;AAWD,CAdD;;AAgBAe,aAAa,CAACP,SAAd,qBAA+Bf,UAA/B;AAEA,IAAMwB,aAAa,GAAG,wBAAW;AAC/BH,EAAAA,YAAY,EAAE;AACZH,IAAAA,SAAS,EAAE;AADC;AADiB,CAAX,EAInBC,gBAJmB,CAAtB;;AAMA,IAAMM,UAAU,GAAG,wBAAW;AAAA,SAAO;AACnCF,IAAAA,SAAS,EAAE;AACTL,MAAAA,SAAS,EAAE;AADF;AADwB,GAAP;AAAA,CAAX,EAIfI,aAJe,CAAnB","sourcesContent":["import Checkbox from '@material-ui/core/Checkbox';\nimport Radio from '@material-ui/core/Radio';\nimport { InputContainer } from '@pie-lib/render-ui';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport Switch from '@material-ui/core/Switch';\nimport { withStyles } from '@material-ui/core/styles';\n\nconst InputTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n label: PropTypes.string,\n checked: PropTypes.bool,\n onChange: PropTypes.func,\n disabled: PropTypes.bool\n};\n\nconst RawInputSwitch = ({ classes, className, label, checked, onChange }) => {\n return (\n <InputContainer className={className} label={label}>\n <Switch\n className={classes.switchRoot}\n checked={checked}\n onChange={onChange}\n aria-label={label}\n />\n </InputContainer>\n );\n};\n\nRawInputSwitch.propTypes = { ...InputTypes };\n\nconst InputSwitch = withStyles({\n switchRoot: {\n justifyContent: 'inherit',\n transform: 'translate(-20%, 20%)'\n }\n})(RawInputSwitch);\n\nconst RawInputCheckbox = props => {\n const { classes, className, label, checked, onChange, disabled } = props;\n\n return (\n <InputContainer className={className} label={label}>\n <Checkbox\n className={classes.checkboxRoot}\n disabled={disabled}\n checked={checked}\n onChange={onChange}\n aria-label={label}\n />\n </InputContainer>\n );\n};\n\nRawInputCheckbox.propTypes = { ...InputTypes };\n\nconst RawInputRadio = props => {\n const { classes, className, label, checked, onChange, disabled } = props;\n\n return (\n <InputContainer className={className} label={label}>\n <Radio\n className={classes.radioRoot}\n disabled={disabled}\n checked={checked}\n onChange={onChange}\n aria-label={label}\n />\n </InputContainer>\n );\n};\n\nRawInputRadio.propTypes = { ...InputTypes };\n\nconst InputCheckbox = withStyles({\n checkboxRoot: {\n transform: 'translate(-25%, 20%)'\n }\n})(RawInputCheckbox);\n\nconst InputRadio = withStyles(() => ({\n radioRoot: {\n transform: 'translate(-20%, 20%)'\n }\n}))(RawInputRadio);\n\nexport { InputSwitch, InputCheckbox, InputRadio };\n"],"file":"inputs.js"}
1
+ {"version":3,"sources":["../src/inputs.jsx"],"names":["InputTypes","classes","PropTypes","object","isRequired","className","string","label","checked","bool","onChange","func","disabled","error","RawInputSwitch","switchRoot","propTypes","InputSwitch","justifyContent","transform","RawInputCheckbox","props","checkboxRoot","RawInputRadio","radioRoot","InputCheckbox","color","InputRadio"],"mappings":"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","sourcesContent":["import Checkbox from '@material-ui/core/Checkbox';\nimport Radio from '@material-ui/core/Radio';\nimport { InputContainer } from '@pie-lib/render-ui';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport Switch from '@material-ui/core/Switch';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\n\nconst InputTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n label: PropTypes.string,\n checked: PropTypes.bool,\n onChange: PropTypes.func,\n disabled: PropTypes.bool,\n error: PropTypes.string\n};\n\nconst RawInputSwitch = ({ classes, className, label, checked, onChange }) => {\n return (\n <InputContainer className={className} label={label}>\n <Switch\n className={classes.switchRoot}\n checked={checked}\n onChange={onChange}\n aria-label={label}\n />\n </InputContainer>\n );\n};\n\nRawInputSwitch.propTypes = { ...InputTypes };\n\nconst InputSwitch = withStyles({\n switchRoot: {\n justifyContent: 'inherit',\n transform: 'translate(-20%, 20%)'\n }\n})(RawInputSwitch);\n\nconst RawInputCheckbox = props => {\n const { classes, className, label, checked, onChange, disabled, error } = props;\n\n return (\n <InputContainer className={className} label={label}>\n <Checkbox\n className={classNames(classes.checkboxRoot, error && classes.error)}\n disabled={disabled}\n checked={checked}\n onChange={onChange}\n aria-label={label}\n />\n </InputContainer>\n );\n};\n\nRawInputCheckbox.propTypes = { ...InputTypes };\n\nconst RawInputRadio = props => {\n const { classes, className, label, checked, onChange, disabled, error } = props;\n\n return (\n <InputContainer className={className} label={label}>\n <Radio\n className={classNames(classes.radioRoot, error && classes.error)}\n disabled={disabled}\n checked={checked}\n onChange={onChange}\n aria-label={label}\n />\n </InputContainer>\n );\n};\n\nRawInputRadio.propTypes = { ...InputTypes };\n\nconst InputCheckbox = withStyles({\n checkboxRoot: {\n transform: 'translate(-25%, 20%)'\n },\n error: {\n color: 'red'\n }\n})(RawInputCheckbox);\n\nconst InputRadio = withStyles(() => ({\n radioRoot: {\n transform: 'translate(-20%, 20%)'\n },\n error: {\n color: 'red'\n }\n}))(RawInputRadio);\n\nexport { InputSwitch, InputCheckbox, InputRadio };\n"],"file":"inputs.js"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pie-lib/config-ui",
3
- "version": "10.10.24",
3
+ "version": "10.12.0",
4
4
  "main": "lib/index.js",
5
5
  "module": "src/index.js",
6
6
  "publishConfig": {
@@ -10,9 +10,9 @@
10
10
  "dependencies": {
11
11
  "@material-ui/core": "^3.8.3",
12
12
  "@material-ui/icons": "^3.0.2",
13
- "@pie-lib/editable-html": "^7.19.3",
13
+ "@pie-lib/editable-html": "^7.22.0",
14
14
  "@pie-lib/icons": "^2.4.25",
15
- "@pie-lib/render-ui": "^4.12.5",
15
+ "@pie-lib/render-ui": "^4.12.6",
16
16
  "classnames": "^2.2.6",
17
17
  "debug": "^4.1.1",
18
18
  "lodash": "^4.17.11",
@@ -26,5 +26,5 @@
26
26
  "peerDependencies": {
27
27
  "react": "^16.8.1"
28
28
  },
29
- "gitHead": "aece71eebc3d81299789f41be579058ca796d106"
29
+ "gitHead": "087c2d35cb14814526bbaa0cf6744c02ae4b1c5e"
30
30
  }
@@ -0,0 +1,43 @@
1
+ import React from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import {
4
+ Button,
5
+ Dialog,
6
+ DialogActions,
7
+ DialogContent,
8
+ DialogContentText,
9
+ DialogTitle
10
+ } from '@material-ui/core';
11
+
12
+ const AlertDialog = ({ text, title, onClose, onConfirm, open }) => (
13
+ <Dialog open={open} onClose={onClose}>
14
+ {title && <DialogTitle>{title}</DialogTitle>}
15
+ {text && (
16
+ <DialogContent>
17
+ <DialogContentText>{text}</DialogContentText>
18
+ </DialogContent>
19
+ )}
20
+ <DialogActions>
21
+ {onClose && (
22
+ <Button onClick={onClose} color="primary">
23
+ CANCEL
24
+ </Button>
25
+ )}
26
+ {onConfirm && (
27
+ <Button autoFocus onClick={onConfirm} color="primary">
28
+ OK
29
+ </Button>
30
+ )}
31
+ </DialogActions>
32
+ </Dialog>
33
+ );
34
+
35
+ AlertDialog.propTypes = {
36
+ text: PropTypes.string,
37
+ title: PropTypes.string,
38
+ onClose: PropTypes.func,
39
+ onConfirm: PropTypes.func,
40
+ open: PropTypes.bool
41
+ };
42
+
43
+ export default AlertDialog;
@@ -27,7 +27,8 @@ const EditableHtmlContainer = withStyles(theme => ({
27
27
  disabled,
28
28
  spellCheck,
29
29
  nonEmpty,
30
- toolbarOpts
30
+ toolbarOpts,
31
+ error
31
32
  }) => {
32
33
  const names = classNames(classes.labelContainer, className);
33
34
 
@@ -37,12 +38,13 @@ const EditableHtmlContainer = withStyles(theme => ({
37
38
  <EditableHtml
38
39
  markup={value || ''}
39
40
  disabled={disabled}
40
- spellCheck = {spellCheck}
41
+ spellCheck={spellCheck}
41
42
  nonEmpty={nonEmpty}
42
43
  onChange={onChange}
43
44
  imageSupport={imageSupport}
44
45
  className={classes.editor}
45
46
  toolbarOpts={toolbarOpts}
47
+ error={error}
46
48
  />
47
49
  </div>
48
50
  </InputContainer>
@@ -189,7 +191,9 @@ export class ChoiceConfiguration extends React.Component {
189
191
  nonEmpty,
190
192
  allowFeedBack,
191
193
  allowDelete,
192
- toolbarOpts
194
+ toolbarOpts,
195
+ error,
196
+ noCorrectAnswerError
193
197
  } = this.props;
194
198
 
195
199
  const InputToggle = mode === 'checkbox' ? InputCheckbox : InputRadio;
@@ -207,6 +211,7 @@ export class ChoiceConfiguration extends React.Component {
207
211
  onChange={this.onCheckedChange}
208
212
  label={!noLabels ? 'Correct' : ''}
209
213
  checked={!!data.correct}
214
+ error={noCorrectAnswerError}
210
215
  />
211
216
  <div className={classes.middleColumn}>
212
217
  <EditableHtmlContainer
@@ -215,10 +220,12 @@ export class ChoiceConfiguration extends React.Component {
215
220
  onChange={this.onLabelChange}
216
221
  imageSupport={imageSupport}
217
222
  disabled={disabled}
218
- spellCheck = {spellCheck}
223
+ spellCheck={spellCheck}
219
224
  nonEmpty={nonEmpty}
220
225
  toolbarOpts={toolbarOpts}
226
+ error={error}
221
227
  />
228
+ {error && <div className={classes.errorText}>{error}</div>}
222
229
 
223
230
  {allowFeedBack && (
224
231
  <Feedback
@@ -298,6 +305,10 @@ const styles = theme => ({
298
305
  display: 'flex',
299
306
  flex: 1,
300
307
  flexDirection: 'column'
308
+ },
309
+ errorText: {
310
+ fontSize: '12px',
311
+ color: 'red'
301
312
  }
302
313
  });
303
314
 
@@ -13,9 +13,9 @@ const styles = theme => ({
13
13
  }
14
14
  });
15
15
 
16
- export default withStyles(styles)(({ className, classes, label, children }) => (
16
+ export default withStyles(styles)(({ className, classes, label, children, labelExtraStyle }) => (
17
17
  <div className={classNames(classes.formSection, className)}>
18
- <Typography className={classes.label} type="subheading">
18
+ <Typography className={classes.label} type="subheading" style={labelExtraStyle}>
19
19
  {label}
20
20
  </Typography>
21
21
  {children}
package/src/index.js CHANGED
@@ -1,3 +1,4 @@
1
+ import AlertDialog from './alert-dialog';
1
2
  import FeedbackConfig, {
2
3
  FeedbackSelector,
3
4
  buildDefaults as feedbackConfigDefaults
@@ -25,6 +26,7 @@ import DisplaySize from './settings/display-size';
25
26
  import * as settings from './settings';
26
27
 
27
28
  export {
29
+ AlertDialog,
28
30
  FeedbackConfig,
29
31
  FeedbackSelector,
30
32
  feedbackConfigDefaults,
package/src/inputs.jsx CHANGED
@@ -5,6 +5,7 @@ import PropTypes from 'prop-types';
5
5
  import React from 'react';
6
6
  import Switch from '@material-ui/core/Switch';
7
7
  import { withStyles } from '@material-ui/core/styles';
8
+ import classNames from 'classnames';
8
9
 
9
10
  const InputTypes = {
10
11
  classes: PropTypes.object.isRequired,
@@ -12,7 +13,8 @@ const InputTypes = {
12
13
  label: PropTypes.string,
13
14
  checked: PropTypes.bool,
14
15
  onChange: PropTypes.func,
15
- disabled: PropTypes.bool
16
+ disabled: PropTypes.bool,
17
+ error: PropTypes.string
16
18
  };
17
19
 
18
20
  const RawInputSwitch = ({ classes, className, label, checked, onChange }) => {
@@ -38,12 +40,12 @@ const InputSwitch = withStyles({
38
40
  })(RawInputSwitch);
39
41
 
40
42
  const RawInputCheckbox = props => {
41
- const { classes, className, label, checked, onChange, disabled } = props;
43
+ const { classes, className, label, checked, onChange, disabled, error } = props;
42
44
 
43
45
  return (
44
46
  <InputContainer className={className} label={label}>
45
47
  <Checkbox
46
- className={classes.checkboxRoot}
48
+ className={classNames(classes.checkboxRoot, error && classes.error)}
47
49
  disabled={disabled}
48
50
  checked={checked}
49
51
  onChange={onChange}
@@ -56,12 +58,12 @@ const RawInputCheckbox = props => {
56
58
  RawInputCheckbox.propTypes = { ...InputTypes };
57
59
 
58
60
  const RawInputRadio = props => {
59
- const { classes, className, label, checked, onChange, disabled } = props;
61
+ const { classes, className, label, checked, onChange, disabled, error } = props;
60
62
 
61
63
  return (
62
64
  <InputContainer className={className} label={label}>
63
65
  <Radio
64
- className={classes.radioRoot}
66
+ className={classNames(classes.radioRoot, error && classes.error)}
65
67
  disabled={disabled}
66
68
  checked={checked}
67
69
  onChange={onChange}
@@ -76,12 +78,18 @@ RawInputRadio.propTypes = { ...InputTypes };
76
78
  const InputCheckbox = withStyles({
77
79
  checkboxRoot: {
78
80
  transform: 'translate(-25%, 20%)'
81
+ },
82
+ error: {
83
+ color: 'red'
79
84
  }
80
85
  })(RawInputCheckbox);
81
86
 
82
87
  const InputRadio = withStyles(() => ({
83
88
  radioRoot: {
84
89
  transform: 'translate(-20%, 20%)'
90
+ },
91
+ error: {
92
+ color: 'red'
85
93
  }
86
94
  }))(RawInputRadio);
87
95