@pie-lib/config-ui 10.10.24 → 10.11.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 +12 -0
- package/lib/choice-configuration/index.js +18 -6
- package/lib/choice-configuration/index.js.map +1 -1
- package/lib/inputs.js +16 -5
- package/lib/inputs.js.map +1 -1
- package/package.json +3 -3
- package/src/choice-configuration/index.jsx +15 -4
- package/src/inputs.jsx +13 -5
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,18 @@
|
|
|
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.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)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* PD-1679 remove unwanted changes ([61982ef](https://github.com/pie-framework/pie-lib/commit/61982efc31296b0ed3e84d1bd1f74dcd4dbe9ac2))
|
|
12
|
+
* **config-ui, editable-html:** add ui/ux validation for choices and editable html fields ([d40148f](https://github.com/pie-framework/pie-lib/commit/d40148f0f4b1232ce1506867a7424aa56e26c5ec))
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
6
18
|
## [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
19
|
|
|
8
20
|
**Note:** Version bump only for package @pie-lib/config-ui
|
|
@@ -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
|
-
|
|
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"}
|
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;
|
|
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.
|
|
3
|
+
"version": "10.11.0",
|
|
4
4
|
"main": "lib/index.js",
|
|
5
5
|
"module": "src/index.js",
|
|
6
6
|
"publishConfig": {
|
|
@@ -10,7 +10,7 @@
|
|
|
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.
|
|
13
|
+
"@pie-lib/editable-html": "^7.20.0",
|
|
14
14
|
"@pie-lib/icons": "^2.4.25",
|
|
15
15
|
"@pie-lib/render-ui": "^4.12.5",
|
|
16
16
|
"classnames": "^2.2.6",
|
|
@@ -26,5 +26,5 @@
|
|
|
26
26
|
"peerDependencies": {
|
|
27
27
|
"react": "^16.8.1"
|
|
28
28
|
},
|
|
29
|
-
"gitHead": "
|
|
29
|
+
"gitHead": "c37429328de4f87b6a7095de6e671c2cc53dd7f5"
|
|
30
30
|
}
|
|
@@ -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
|
|
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
|
|
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
|
|
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
|
|