@pie-element/categorize 6.7.3-next.137 → 6.7.3-next.1372
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 +272 -0
- package/configure/CHANGELOG.md +223 -0
- package/configure/lib/defaults.js +25 -0
- package/configure/lib/defaults.js.map +1 -1
- package/configure/lib/design/builder.js +8 -5
- package/configure/lib/design/builder.js.map +1 -1
- package/configure/lib/design/buttons.js +6 -4
- package/configure/lib/design/buttons.js.map +1 -1
- package/configure/lib/design/categories/alternateResponses.js +12 -4
- package/configure/lib/design/categories/alternateResponses.js.map +1 -1
- package/configure/lib/design/categories/category.js +16 -4
- package/configure/lib/design/categories/category.js.map +1 -1
- package/configure/lib/design/categories/choice-preview.js +4 -4
- package/configure/lib/design/categories/choice-preview.js.map +1 -1
- package/configure/lib/design/categories/droppable-placeholder.js +3 -3
- package/configure/lib/design/categories/droppable-placeholder.js.map +1 -1
- package/configure/lib/design/categories/index.js +91 -10
- package/configure/lib/design/categories/index.js.map +1 -1
- package/configure/lib/design/choices/choice.js +28 -6
- package/configure/lib/design/choices/choice.js.map +1 -1
- package/configure/lib/design/choices/config.js +5 -3
- package/configure/lib/design/choices/config.js.map +1 -1
- package/configure/lib/design/choices/index.js +44 -7
- package/configure/lib/design/choices/index.js.map +1 -1
- package/configure/lib/design/header.js +15 -5
- package/configure/lib/design/header.js.map +1 -1
- package/configure/lib/design/index.js +70 -12
- package/configure/lib/design/index.js.map +1 -1
- package/configure/lib/design/input-header.js +24 -4
- package/configure/lib/design/input-header.js.map +1 -1
- package/configure/lib/index.js +17 -3
- package/configure/lib/index.js.map +1 -1
- package/configure/lib/main.js +4 -2
- package/configure/lib/main.js.map +1 -1
- package/configure/lib/utils.js +20 -0
- package/configure/lib/utils.js.map +1 -0
- package/configure/package.json +5 -5
- package/controller/CHANGELOG.md +47 -0
- package/controller/lib/index.js +103 -15
- package/controller/lib/index.js.map +1 -1
- package/controller/package.json +1 -1
- package/docs/config-schema.json +155 -0
- package/docs/config-schema.json.md +121 -1
- package/docs/demo/generate.js +1 -0
- package/docs/pie-schema.json +48 -0
- package/docs/pie-schema.json.md +36 -0
- package/lib/categorize/categories.js +9 -4
- package/lib/categorize/categories.js.map +1 -1
- package/lib/categorize/category.js +4 -4
- package/lib/categorize/category.js.map +1 -1
- package/lib/categorize/choice.js +5 -4
- package/lib/categorize/choice.js.map +1 -1
- package/lib/categorize/choices.js +12 -5
- package/lib/categorize/choices.js.map +1 -1
- package/lib/categorize/droppable-placeholder.js +2 -2
- package/lib/categorize/droppable-placeholder.js.map +1 -1
- package/lib/categorize/grid-content.js +3 -3
- package/lib/categorize/grid-content.js.map +1 -1
- package/lib/categorize/index.js +11 -15
- package/lib/categorize/index.js.map +1 -1
- package/lib/index.js +4 -1
- package/lib/index.js.map +1 -1
- package/package.json +5 -5
|
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports["default"] = exports.
|
|
8
|
+
exports.spec = exports["default"] = exports.Choice = void 0;
|
|
9
9
|
|
|
10
10
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
11
|
|
|
@@ -49,7 +49,7 @@ var _drag = require("@pie-lib/drag");
|
|
|
49
49
|
|
|
50
50
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
51
51
|
|
|
52
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try {
|
|
52
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
53
53
|
|
|
54
54
|
var log = (0, _debug["default"])('@pie-element:categorize:configure:choice');
|
|
55
55
|
|
|
@@ -112,7 +112,12 @@ var Choice = /*#__PURE__*/function (_React$Component) {
|
|
|
112
112
|
connectDragSource = _this$props3.connectDragSource,
|
|
113
113
|
connectDragPreview = _this$props3.connectDragPreview,
|
|
114
114
|
imageSupport = _this$props3.imageSupport,
|
|
115
|
-
|
|
115
|
+
spellCheck = _this$props3.spellCheck,
|
|
116
|
+
toolbarOpts = _this$props3.toolbarOpts,
|
|
117
|
+
error = _this$props3.error,
|
|
118
|
+
maxImageWidth = _this$props3.maxImageWidth,
|
|
119
|
+
maxImageHeight = _this$props3.maxImageHeight,
|
|
120
|
+
uploadSoundSupport = _this$props3.uploadSoundSupport;
|
|
116
121
|
var draggable = canDrag(this.props);
|
|
117
122
|
return /*#__PURE__*/_react["default"].createElement(_Card["default"], {
|
|
118
123
|
className: (0, _classnames["default"])(classes.choice, className)
|
|
@@ -127,8 +132,15 @@ var Choice = /*#__PURE__*/function (_React$Component) {
|
|
|
127
132
|
label: choice.content,
|
|
128
133
|
onChange: this.changeContent,
|
|
129
134
|
onDelete: onDelete,
|
|
130
|
-
toolbarOpts: toolbarOpts
|
|
131
|
-
|
|
135
|
+
toolbarOpts: toolbarOpts,
|
|
136
|
+
spellCheck: spellCheck,
|
|
137
|
+
error: error,
|
|
138
|
+
maxImageWidth: maxImageWidth,
|
|
139
|
+
maxImageHeight: maxImageHeight,
|
|
140
|
+
uploadSoundSupport: uploadSoundSupport
|
|
141
|
+
}), error && /*#__PURE__*/_react["default"].createElement("div", {
|
|
142
|
+
className: classes.errorText
|
|
143
|
+
}, error))), /*#__PURE__*/_react["default"].createElement(_CardActions["default"], {
|
|
132
144
|
className: classes.actions
|
|
133
145
|
}, /*#__PURE__*/_react["default"].createElement(_buttons.DeleteButton, {
|
|
134
146
|
label: 'delete',
|
|
@@ -158,7 +170,12 @@ exports.Choice = Choice;
|
|
|
158
170
|
add: _propTypes["default"].func.isRequired,
|
|
159
171
|
"delete": _propTypes["default"].func.isRequired
|
|
160
172
|
}),
|
|
161
|
-
toolbarOpts: _propTypes["default"].object
|
|
173
|
+
toolbarOpts: _propTypes["default"].object,
|
|
174
|
+
error: _propTypes["default"].string,
|
|
175
|
+
uploadSoundSupport: _propTypes["default"].shape({
|
|
176
|
+
add: _propTypes["default"].func.isRequired,
|
|
177
|
+
"delete": _propTypes["default"].func.isRequired
|
|
178
|
+
})
|
|
162
179
|
});
|
|
163
180
|
(0, _defineProperty2["default"])(Choice, "defaultProps", {});
|
|
164
181
|
|
|
@@ -177,6 +194,11 @@ var styles = function styles(theme) {
|
|
|
177
194
|
},
|
|
178
195
|
dragDisabled: {
|
|
179
196
|
cursor: 'inherit'
|
|
197
|
+
},
|
|
198
|
+
errorText: {
|
|
199
|
+
fontSize: '11px',
|
|
200
|
+
color: 'red',
|
|
201
|
+
paddingBottom: '5px'
|
|
180
202
|
}
|
|
181
203
|
};
|
|
182
204
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/design/choices/choice.jsx"],"names":["log","canDrag","props","count","choice","categoryCount","correctResponseCount","Choice","content","onChange","classes","className","onDelete","connectDragSource","connectDragPreview","imageSupport","toolbarOpts","draggable","actions","dragHandle","dragDisabled","changeContent","changeCategoryCount","React","Component","PropTypes","object","isRequired","string","func","number","shape","add","styles","theme","padding","justifyContent","spacing","unit","overflow","cursor","StyledChoice","spec","beginDrag","out","id","endDrag","monitor","didDrop","item","getItem","categoryId","onRemoveChoice","DraggableChoice","uid","connect","dragSource","dragPreview","isDragging","withUid"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport Card from '@material-ui/core/Card';\nimport CardActions from '@material-ui/core/CardActions';\nimport InputHeader from '../input-header';\nimport { Checkbox } from '@pie-lib/config-ui';\nimport { DeleteButton } from '../buttons';\nimport DragHandle from '@material-ui/icons/DragHandle';\nimport { DragSource } from 'react-dnd';\nimport debug from 'debug';\nimport { uid } from '@pie-lib/drag';\n\nconst log = debug('@pie-element:categorize:configure:choice');\n\nconst canDrag = props => {\n const count = props.choice.categoryCount || 0;\n if (count === 0) {\n return true;\n } else {\n return props.correctResponseCount < count;\n }\n};\n\nexport class Choice extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n choice: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n onDelete: PropTypes.func.isRequired,\n connectDragSource: PropTypes.func.isRequired,\n connectDragPreview: PropTypes.func.isRequired,\n correctResponseCount: PropTypes.number.isRequired,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired\n }),\n toolbarOpts: PropTypes.object\n };\n\n static defaultProps = {};\n\n changeContent = content => {\n const { onChange, choice } = this.props;\n choice.content = content;\n onChange(choice);\n };\n\n changeCategoryCount = () => {\n const { onChange, choice } = this.props;\n if (choice.categoryCount === 1) {\n choice.categoryCount = 0;\n } else {\n choice.categoryCount = 1;\n }\n onChange(choice);\n };\n\n render() {\n const {\n classes,\n className,\n choice,\n onDelete,\n connectDragSource,\n connectDragPreview,\n imageSupport,\n toolbarOpts\n } = this.props;\n\n const draggable = canDrag(this.props);\n\n return (\n <Card className={classNames(classes.choice, className)}>\n <CardActions className={classes.actions}>\n {connectDragSource(\n <span\n className={classNames(\n classes.dragHandle,\n draggable === false && classes.dragDisabled\n )}\n >\n <DragHandle color={draggable ? 'primary' : 'disabled'} />\n </span>\n )}\n </CardActions>\n {connectDragPreview(\n <span>\n <InputHeader\n imageSupport={imageSupport}\n label={choice.content}\n onChange={this.changeContent}\n onDelete={onDelete}\n toolbarOpts={toolbarOpts}\n />\n </span>\n )}\n\n <CardActions className={classes.actions}>\n <DeleteButton label={'delete'} onClick={onDelete} />\n <Checkbox\n mini\n label={'Remove after placing'}\n checked={choice.categoryCount === 1}\n onChange={this.changeCategoryCount}\n />\n </CardActions>\n </Card>\n );\n }\n}\nconst styles = theme => ({\n actions: {\n padding: 0,\n justifyContent: 'space-between'\n },\n choice: {\n padding: theme.spacing.unit,\n overflow: 'visible'\n },\n dragHandle: {\n cursor: 'move'\n },\n dragDisabled: {\n cursor: 'inherit'\n }\n});\n\nconst StyledChoice = withStyles(styles)(Choice);\n\nexport const spec = {\n canDrag,\n beginDrag: props => {\n const out = {\n id: props.choice.id\n };\n log('[beginDrag] out:', out);\n return out;\n },\n endDrag: (props, monitor) => {\n if (!monitor.didDrop()) {\n const item = monitor.getItem();\n if (item.categoryId) {\n log('wasnt droppped - what to do?');\n props.onRemoveChoice(item);\n }\n }\n }\n};\n\nconst DraggableChoice = DragSource(\n ({ uid }) => uid,\n spec,\n (connect, monitor) => ({\n connectDragSource: connect.dragSource(),\n connectDragPreview: connect.dragPreview(),\n isDragging: monitor.isDragging()\n })\n)(StyledChoice);\n\nexport default uid.withUid(DraggableChoice);\n"],"file":"choice.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/design/choices/choice.jsx"],"names":["log","canDrag","props","count","choice","categoryCount","correctResponseCount","Choice","content","onChange","classes","className","onDelete","connectDragSource","connectDragPreview","imageSupport","spellCheck","toolbarOpts","error","maxImageWidth","maxImageHeight","uploadSoundSupport","draggable","actions","dragHandle","dragDisabled","changeContent","errorText","changeCategoryCount","React","Component","PropTypes","object","isRequired","string","func","number","shape","add","styles","theme","padding","justifyContent","spacing","unit","overflow","cursor","fontSize","color","paddingBottom","StyledChoice","spec","beginDrag","out","id","endDrag","monitor","didDrop","item","getItem","categoryId","onRemoveChoice","DraggableChoice","uid","connect","dragSource","dragPreview","isDragging","withUid"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport Card from '@material-ui/core/Card';\nimport CardActions from '@material-ui/core/CardActions';\nimport InputHeader from '../input-header';\nimport { Checkbox } from '@pie-lib/config-ui';\nimport { DeleteButton } from '../buttons';\nimport DragHandle from '@material-ui/icons/DragHandle';\nimport { DragSource } from 'react-dnd';\nimport debug from 'debug';\nimport { uid } from '@pie-lib/drag';\n\nconst log = debug('@pie-element:categorize:configure:choice');\n\nconst canDrag = props => {\n const count = props.choice.categoryCount || 0;\n if (count === 0) {\n return true;\n } else {\n return props.correctResponseCount < count;\n }\n};\n\nexport class Choice extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n choice: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n onDelete: PropTypes.func.isRequired,\n connectDragSource: PropTypes.func.isRequired,\n connectDragPreview: PropTypes.func.isRequired,\n correctResponseCount: PropTypes.number.isRequired,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired\n }),\n toolbarOpts: PropTypes.object,\n error: PropTypes.string,\n uploadSoundSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired\n })\n };\n\n static defaultProps = {};\n\n changeContent = content => {\n const { onChange, choice } = this.props;\n choice.content = content;\n onChange(choice);\n };\n\n changeCategoryCount = () => {\n const { onChange, choice } = this.props;\n if (choice.categoryCount === 1) {\n choice.categoryCount = 0;\n } else {\n choice.categoryCount = 1;\n }\n onChange(choice);\n };\n\n render() {\n const {\n classes,\n className,\n choice,\n onDelete,\n connectDragSource,\n connectDragPreview,\n imageSupport,\n spellCheck,\n toolbarOpts,\n error,\n maxImageWidth,\n maxImageHeight,\n uploadSoundSupport\n } = this.props;\n\n const draggable = canDrag(this.props);\n\n return (\n <Card className={classNames(classes.choice, className)}>\n <CardActions className={classes.actions}>\n {connectDragSource(\n <span\n className={classNames(\n classes.dragHandle,\n draggable === false && classes.dragDisabled\n )}\n >\n <DragHandle color={draggable ? 'primary' : 'disabled'} />\n </span>\n )}\n </CardActions>\n {connectDragPreview(\n <span>\n <InputHeader\n imageSupport={imageSupport}\n label={choice.content}\n onChange={this.changeContent}\n onDelete={onDelete}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheck}\n error={error}\n maxImageWidth={maxImageWidth}\n maxImageHeight={maxImageHeight}\n uploadSoundSupport={uploadSoundSupport}\n />\n {error && <div className={classes.errorText}>{error}</div>}\n </span>\n )}\n\n <CardActions className={classes.actions}>\n <DeleteButton label={'delete'} onClick={onDelete} />\n <Checkbox\n mini\n label={'Remove after placing'}\n checked={choice.categoryCount === 1}\n onChange={this.changeCategoryCount}\n />\n </CardActions>\n </Card>\n );\n }\n}\nconst styles = theme => ({\n actions: {\n padding: 0,\n justifyContent: 'space-between'\n },\n choice: {\n padding: theme.spacing.unit,\n overflow: 'visible'\n },\n dragHandle: {\n cursor: 'move'\n },\n dragDisabled: {\n cursor: 'inherit'\n },\n errorText: {\n fontSize: '11px',\n color: 'red',\n paddingBottom: '5px'\n },\n});\n\nconst StyledChoice = withStyles(styles)(Choice);\n\nexport const spec = {\n canDrag,\n beginDrag: props => {\n const out = {\n id: props.choice.id\n };\n log('[beginDrag] out:', out);\n return out;\n },\n endDrag: (props, monitor) => {\n if (!monitor.didDrop()) {\n const item = monitor.getItem();\n if (item.categoryId) {\n log('wasnt droppped - what to do?');\n props.onRemoveChoice(item);\n }\n }\n }\n};\n\nconst DraggableChoice = DragSource(\n ({ uid }) => uid,\n spec,\n (connect, monitor) => ({\n connectDragSource: connect.dragSource(),\n connectDragPreview: connect.dragPreview(),\n isDragging: monitor.isDragging()\n })\n)(StyledChoice);\n\nexport default uid.withUid(DraggableChoice);\n"],"file":"choice.js"}
|
|
@@ -45,7 +45,7 @@ var _configUi = require("@pie-lib/config-ui");
|
|
|
45
45
|
|
|
46
46
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
47
47
|
|
|
48
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try {
|
|
48
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
49
49
|
|
|
50
50
|
var positionOptions = [{
|
|
51
51
|
label: 'Above',
|
|
@@ -148,7 +148,8 @@ var Config = /*#__PURE__*/function (_React$Component) {
|
|
|
148
148
|
classes = _this$props2.classes,
|
|
149
149
|
className = _this$props2.className,
|
|
150
150
|
categoryCountIsOne = _this$props2.categoryCountIsOne,
|
|
151
|
-
config = _this$props2.config
|
|
151
|
+
config = _this$props2.config,
|
|
152
|
+
spellCheck = _this$props2.spellCheck;
|
|
152
153
|
var positionOption = positionOptions.find(function (option) {
|
|
153
154
|
return option.value === config.choicesPosition;
|
|
154
155
|
}) || positionOption[1];
|
|
@@ -173,7 +174,8 @@ var Config = /*#__PURE__*/function (_React$Component) {
|
|
|
173
174
|
},
|
|
174
175
|
label: "Label",
|
|
175
176
|
value: config.choicesLabel,
|
|
176
|
-
onChange: this.changeLabel
|
|
177
|
+
onChange: this.changeLabel,
|
|
178
|
+
spellCheck: spellCheck
|
|
177
179
|
}), /*#__PURE__*/_react["default"].createElement(_List["default"], {
|
|
178
180
|
component: "nav"
|
|
179
181
|
}, /*#__PURE__*/_react["default"].createElement(_ListItem["default"], {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/design/choices/config.jsx"],"names":["positionOptions","label","value","secondaryText","Config","anchorEl","props","config","onModelChanged","allAtOne","allChoicesHaveCount","update","choices","map","c","categoryCount","target","choicesLabel","lockChoiceOrder","position","choicesPosition","setState","event","currentTarget","index","selectedIndex","state","classes","className","categoryCountIsOne","positionOption","find","option","row","toggleRemoveAllTiles","toggleShuffle","configuration","shrink","changeLabel","handleClickPosition","Boolean","handleClose","changePosition","React","Component","PropTypes","object","isRequired","string","bool","func","styles","theme","display","alignItems","gridColumnGap","spacing","unit","gridRowGap","gridTemplateColumns","justifyContent","marginBottom","choiceConfig","width","maxWidth","backgroundColor","palette","background","paper","marginTop","shuffleCheckbox","gridColumnStart","gridColumnEnd"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\n\nimport TextField from '@material-ui/core/TextField';\nimport List from '@material-ui/core/List';\nimport ListItem from '@material-ui/core/ListItem';\nimport ListItemText from '@material-ui/core/ListItemText';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport Menu from '@material-ui/core/Menu';\nimport { Checkbox } from '@pie-lib/config-ui';\n\nconst positionOptions = [\n {\n label: 'Above',\n value: 'above',\n secondaryText: 'Choices will be shown above categories'\n },\n {\n label: 'Below',\n value: 'below',\n secondaryText: 'Choices will be shown below categories'\n },\n {\n label: 'Left',\n value: 'left',\n secondaryText: 'Choices will be shown to the left of the categories'\n },\n {\n label: 'Right',\n value: 'right',\n secondaryText: 'Choices will be shown to the right of the categories'\n }\n];\n\nexport class Config extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n config: PropTypes.object,\n categoryCountIsOne: PropTypes.bool,\n allChoicesHaveCount: PropTypes.func,\n onModelChanged: PropTypes.func\n };\n\n static defaultProps = {};\n\n state = {\n anchorEl: null\n };\n\n toggleRemoveAllTiles = () => {\n const { config, onModelChanged } = this.props;\n\n const allAtOne = this.props.allChoicesHaveCount(1);\n const update = config.choices.map(c => {\n c.categoryCount = allAtOne ? 0 : 1;\n return c;\n });\n\n onModelChanged({ choices: update });\n };\n\n changeLabel = ({ target }) => {\n this.props.onModelChanged({ choicesLabel: target.value });\n };\n\n toggleShuffle = () => {\n this.props.onModelChanged({\n lockChoiceOrder: !this.props.config.lockChoiceOrder\n });\n };\n\n changePosition = position => {\n this.props.onModelChanged({ choicesPosition: position.value });\n\n this.setState({ anchorEl: null });\n };\n\n handleClickPosition = event => {\n this.setState({ anchorEl: event.currentTarget });\n };\n\n handleMenuItemClick = (event, index) => {\n this.setState({ selectedIndex: index, anchorEl: null });\n };\n\n handleClose = () => {\n this.setState({ anchorEl: null });\n };\n\n render() {\n const { anchorEl } = this.state;\n const { classes, className, categoryCountIsOne, config } = this.props;\n\n const positionOption =\n positionOptions.find(option => option.value === config.choicesPosition) ||\n positionOption[1];\n\n return (\n <div className={classNames(classes.config, className)}>\n <div className={classes.row}>\n <Checkbox\n label={'Remove all tiles after placing'}\n checked={categoryCountIsOne}\n onChange={this.toggleRemoveAllTiles}\n />\n <Checkbox\n label={'Lock Choice Order'}\n checked={config.lockChoiceOrder}\n onChange={this.toggleShuffle}\n />\n </div>\n\n <div className={classes.configuration}>\n <TextField\n className={classes.label}\n InputLabelProps={{\n shrink: true\n }}\n label=\"Label\"\n value={config.choicesLabel}\n onChange={this.changeLabel}\n />\n <List component=\"nav\">\n <ListItem\n button\n aria-haspopup=\"true\"\n onClick={this.handleClickPosition}\n >\n <ListItemText\n primary=\"Choices Position\"\n secondary={positionOption.secondaryText}\n />\n </ListItem>\n </List>\n <Menu\n id=\"lock-menu\"\n anchorEl={anchorEl}\n open={Boolean(anchorEl)}\n onClose={this.handleClose}\n >\n {positionOptions.map(option => (\n <MenuItem\n key={option.value}\n selected={option.value === config.choicesPosition}\n onClick={() => this.changePosition(option)}\n >\n {option.label}\n </MenuItem>\n ))}\n </Menu>\n </div>\n </div>\n );\n }\n}\nconst styles = theme => ({\n configuration: {\n display: 'grid',\n alignItems: 'center',\n gridColumnGap: `${theme.spacing.unit}px`,\n gridRowGap: `${theme.spacing.unit}px`,\n gridTemplateColumns: 'repeat(2, 1fr)',\n justifyContent: 'space-between',\n marginBottom: theme.spacing.unit\n },\n choiceConfig: {\n width: '100%',\n maxWidth: 360,\n backgroundColor: theme.palette.background.paper\n },\n row: {\n display: 'grid',\n gridColumnGap: `${theme.spacing.unit}px`,\n gridRowGap: `${theme.spacing.unit}px`,\n gridTemplateColumns: 'repeat(2, 1fr)',\n justifyContent: 'space-between',\n marginTop: theme.spacing.unit,\n marginBottom: theme.spacing.unit\n },\n shuffleCheckbox: {\n gridColumnStart: 2,\n gridColumnEnd: 2\n }\n});\nexport default withStyles(styles)(Config);\n"],"file":"config.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/design/choices/config.jsx"],"names":["positionOptions","label","value","secondaryText","Config","anchorEl","props","config","onModelChanged","allAtOne","allChoicesHaveCount","update","choices","map","c","categoryCount","target","choicesLabel","lockChoiceOrder","position","choicesPosition","setState","event","currentTarget","index","selectedIndex","state","classes","className","categoryCountIsOne","spellCheck","positionOption","find","option","row","toggleRemoveAllTiles","toggleShuffle","configuration","shrink","changeLabel","handleClickPosition","Boolean","handleClose","changePosition","React","Component","PropTypes","object","isRequired","string","bool","func","styles","theme","display","alignItems","gridColumnGap","spacing","unit","gridRowGap","gridTemplateColumns","justifyContent","marginBottom","choiceConfig","width","maxWidth","backgroundColor","palette","background","paper","marginTop","shuffleCheckbox","gridColumnStart","gridColumnEnd"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\n\nimport TextField from '@material-ui/core/TextField';\nimport List from '@material-ui/core/List';\nimport ListItem from '@material-ui/core/ListItem';\nimport ListItemText from '@material-ui/core/ListItemText';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport Menu from '@material-ui/core/Menu';\nimport { Checkbox } from '@pie-lib/config-ui';\n\nconst positionOptions = [\n {\n label: 'Above',\n value: 'above',\n secondaryText: 'Choices will be shown above categories'\n },\n {\n label: 'Below',\n value: 'below',\n secondaryText: 'Choices will be shown below categories'\n },\n {\n label: 'Left',\n value: 'left',\n secondaryText: 'Choices will be shown to the left of the categories'\n },\n {\n label: 'Right',\n value: 'right',\n secondaryText: 'Choices will be shown to the right of the categories'\n }\n];\n\nexport class Config extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n config: PropTypes.object,\n categoryCountIsOne: PropTypes.bool,\n allChoicesHaveCount: PropTypes.func,\n onModelChanged: PropTypes.func\n };\n\n static defaultProps = {};\n\n state = {\n anchorEl: null\n };\n\n toggleRemoveAllTiles = () => {\n const { config, onModelChanged } = this.props;\n\n const allAtOne = this.props.allChoicesHaveCount(1);\n const update = config.choices.map(c => {\n c.categoryCount = allAtOne ? 0 : 1;\n return c;\n });\n\n onModelChanged({ choices: update });\n };\n\n changeLabel = ({ target }) => {\n this.props.onModelChanged({ choicesLabel: target.value });\n };\n\n toggleShuffle = () => {\n this.props.onModelChanged({\n lockChoiceOrder: !this.props.config.lockChoiceOrder\n });\n };\n\n changePosition = position => {\n this.props.onModelChanged({ choicesPosition: position.value });\n\n this.setState({ anchorEl: null });\n };\n\n handleClickPosition = event => {\n this.setState({ anchorEl: event.currentTarget });\n };\n\n handleMenuItemClick = (event, index) => {\n this.setState({ selectedIndex: index, anchorEl: null });\n };\n\n handleClose = () => {\n this.setState({ anchorEl: null });\n };\n\n render() {\n const { anchorEl } = this.state;\n const { classes, className, categoryCountIsOne, config, spellCheck} = this.props;\n\n const positionOption =\n positionOptions.find(option => option.value === config.choicesPosition) ||\n positionOption[1];\n\n return (\n <div className={classNames(classes.config, className)}>\n <div className={classes.row}>\n <Checkbox\n label={'Remove all tiles after placing'}\n checked={categoryCountIsOne}\n onChange={this.toggleRemoveAllTiles}\n />\n <Checkbox\n label={'Lock Choice Order'}\n checked={config.lockChoiceOrder}\n onChange={this.toggleShuffle}\n />\n </div>\n\n <div className={classes.configuration}>\n <TextField\n className={classes.label}\n InputLabelProps={{\n shrink: true\n }}\n label=\"Label\"\n value={config.choicesLabel}\n onChange={this.changeLabel}\n spellCheck={spellCheck}\n />\n <List component=\"nav\">\n <ListItem\n button\n aria-haspopup=\"true\"\n onClick={this.handleClickPosition}\n >\n <ListItemText\n primary=\"Choices Position\"\n secondary={positionOption.secondaryText}\n />\n </ListItem>\n </List>\n <Menu\n id=\"lock-menu\"\n anchorEl={anchorEl}\n open={Boolean(anchorEl)}\n onClose={this.handleClose}\n >\n {positionOptions.map(option => (\n <MenuItem\n key={option.value}\n selected={option.value === config.choicesPosition}\n onClick={() => this.changePosition(option)}\n >\n {option.label}\n </MenuItem>\n ))}\n </Menu>\n </div>\n </div>\n );\n }\n}\nconst styles = theme => ({\n configuration: {\n display: 'grid',\n alignItems: 'center',\n gridColumnGap: `${theme.spacing.unit}px`,\n gridRowGap: `${theme.spacing.unit}px`,\n gridTemplateColumns: 'repeat(2, 1fr)',\n justifyContent: 'space-between',\n marginBottom: theme.spacing.unit\n },\n choiceConfig: {\n width: '100%',\n maxWidth: 360,\n backgroundColor: theme.palette.background.paper\n },\n row: {\n display: 'grid',\n gridColumnGap: `${theme.spacing.unit}px`,\n gridRowGap: `${theme.spacing.unit}px`,\n gridTemplateColumns: 'repeat(2, 1fr)',\n justifyContent: 'space-between',\n marginTop: theme.spacing.unit,\n marginBottom: theme.spacing.unit\n },\n shuffleCheckbox: {\n gridColumnStart: 2,\n gridColumnEnd: 2\n }\n});\nexport default withStyles(styles)(Config);\n"],"file":"config.js"}
|
|
@@ -45,7 +45,7 @@ var _categorize = require("@pie-lib/categorize");
|
|
|
45
45
|
|
|
46
46
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
47
47
|
|
|
48
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try {
|
|
48
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
49
49
|
|
|
50
50
|
var Choices = /*#__PURE__*/function (_React$Component) {
|
|
51
51
|
(0, _inherits2["default"])(Choices, _React$Component);
|
|
@@ -128,8 +128,26 @@ var Choices = /*#__PURE__*/function (_React$Component) {
|
|
|
128
128
|
choices = _this$props4.choices,
|
|
129
129
|
model = _this$props4.model,
|
|
130
130
|
imageSupport = _this$props4.imageSupport,
|
|
131
|
+
uploadSoundSupport = _this$props4.uploadSoundSupport,
|
|
131
132
|
onModelChanged = _this$props4.onModelChanged,
|
|
132
|
-
|
|
133
|
+
spellCheck = _this$props4.spellCheck,
|
|
134
|
+
toolbarOpts = _this$props4.toolbarOpts,
|
|
135
|
+
configuration = _this$props4.configuration,
|
|
136
|
+
defaultImageMaxWidth = _this$props4.defaultImageMaxWidth,
|
|
137
|
+
defaultImageMaxHeight = _this$props4.defaultImageMaxHeight;
|
|
138
|
+
var errors = model.errors;
|
|
139
|
+
|
|
140
|
+
var _ref = errors || {},
|
|
141
|
+
choicesError = _ref.choicesError,
|
|
142
|
+
choicesErrors = _ref.choicesErrors;
|
|
143
|
+
|
|
144
|
+
var _ref2 = configuration || {},
|
|
145
|
+
maxChoices = _ref2.maxChoices,
|
|
146
|
+
_ref2$maxImageWidth = _ref2.maxImageWidth,
|
|
147
|
+
maxImageWidth = _ref2$maxImageWidth === void 0 ? {} : _ref2$maxImageWidth,
|
|
148
|
+
_ref2$maxImageHeight = _ref2.maxImageHeight,
|
|
149
|
+
maxImageHeight = _ref2$maxImageHeight === void 0 ? {} : _ref2$maxImageHeight;
|
|
150
|
+
|
|
133
151
|
var categoryCountIsOne = this.allChoicesHaveCount(1);
|
|
134
152
|
var choiceHolderStyle = {
|
|
135
153
|
gridTemplateColumns: "repeat(".concat(model.categoriesPerRow, ", 1fr)")
|
|
@@ -139,12 +157,16 @@ var Choices = /*#__PURE__*/function (_React$Component) {
|
|
|
139
157
|
}, /*#__PURE__*/_react["default"].createElement(_header["default"], {
|
|
140
158
|
label: "Choices",
|
|
141
159
|
buttonLabel: "ADD A CHOICE",
|
|
142
|
-
onAdd: this.addChoice
|
|
143
|
-
|
|
160
|
+
onAdd: this.addChoice,
|
|
161
|
+
buttonDisabled: maxChoices && choices && maxChoices === choices.length
|
|
162
|
+
}), choicesError && /*#__PURE__*/_react["default"].createElement("div", {
|
|
163
|
+
className: classes.errorText
|
|
164
|
+
}, choicesError), /*#__PURE__*/_react["default"].createElement(_config["default"], {
|
|
144
165
|
config: model,
|
|
145
166
|
categoryCountIsOne: categoryCountIsOne,
|
|
146
167
|
onModelChanged: onModelChanged,
|
|
147
|
-
allChoicesHaveCount: this.allChoicesHaveCount
|
|
168
|
+
allChoicesHaveCount: this.allChoicesHaveCount,
|
|
169
|
+
spellCheck: spellCheck
|
|
148
170
|
}), /*#__PURE__*/_react["default"].createElement("div", {
|
|
149
171
|
className: classes.choiceHolder,
|
|
150
172
|
style: choiceHolderStyle
|
|
@@ -158,7 +180,12 @@ var Choices = /*#__PURE__*/function (_React$Component) {
|
|
|
158
180
|
onDelete: function onDelete() {
|
|
159
181
|
return _this2.deleteChoice(h);
|
|
160
182
|
},
|
|
161
|
-
toolbarOpts: toolbarOpts
|
|
183
|
+
toolbarOpts: toolbarOpts,
|
|
184
|
+
spellCheck: spellCheck,
|
|
185
|
+
error: choicesErrors && choicesErrors[h.id],
|
|
186
|
+
maxImageWidth: maxImageWidth && maxImageWidth.choice || defaultImageMaxWidth,
|
|
187
|
+
maxImageHeight: maxImageHeight && maxImageHeight.choice || defaultImageMaxHeight,
|
|
188
|
+
uploadSoundSupport: uploadSoundSupport
|
|
162
189
|
});
|
|
163
190
|
})), /*#__PURE__*/_react["default"].createElement(_buttons.Divider, null));
|
|
164
191
|
}
|
|
@@ -169,6 +196,7 @@ var Choices = /*#__PURE__*/function (_React$Component) {
|
|
|
169
196
|
exports.Choices = Choices;
|
|
170
197
|
(0, _defineProperty2["default"])(Choices, "propTypes", {
|
|
171
198
|
model: _propTypes["default"].object.isRequired,
|
|
199
|
+
configuration: _propTypes["default"].object.isRequired,
|
|
172
200
|
classes: _propTypes["default"].object.isRequired,
|
|
173
201
|
className: _propTypes["default"].string,
|
|
174
202
|
choices: _propTypes["default"].array.isRequired,
|
|
@@ -177,6 +205,10 @@ exports.Choices = Choices;
|
|
|
177
205
|
add: _propTypes["default"].func.isRequired,
|
|
178
206
|
"delete": _propTypes["default"].func.isRequired
|
|
179
207
|
}),
|
|
208
|
+
uploadSoundSupport: _propTypes["default"].shape({
|
|
209
|
+
add: _propTypes["default"].func.isRequired,
|
|
210
|
+
"delete": _propTypes["default"].func.isRequired
|
|
211
|
+
}),
|
|
180
212
|
toolbarOpts: _propTypes["default"].object
|
|
181
213
|
});
|
|
182
214
|
(0, _defineProperty2["default"])(Choices, "defaultProps", {});
|
|
@@ -194,7 +226,12 @@ var styles = function styles(theme) {
|
|
|
194
226
|
paddingTop: theme.spacing.unit * 2,
|
|
195
227
|
paddingBottom: theme.spacing.unit * 2
|
|
196
228
|
},
|
|
197
|
-
label: {}
|
|
229
|
+
label: {},
|
|
230
|
+
errorText: {
|
|
231
|
+
fontSize: '12px',
|
|
232
|
+
color: 'red',
|
|
233
|
+
padding: '5px 0'
|
|
234
|
+
}
|
|
198
235
|
};
|
|
199
236
|
};
|
|
200
237
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/design/choices/index.jsx"],"names":["Choices","choice","props","choices","onModelChanged","index","findIndex","h","id","splice","count","c","categoryCount","model","utils","firstAvailableIndex","map","a","data","content","concat","correctResponse","classes","className","imageSupport","toolbarOpts","categoryCountIsOne","allChoicesHaveCount","choiceHolderStyle","gridTemplateColumns","categoriesPerRow","addChoice","choiceHolder","correctResponseCount","changeChoice","deleteChoice","React","Component","PropTypes","object","isRequired","string","array","func","shape","add","styles","theme","paddingTop","spacing","unit","paddingBottom","display","gridRowGap","gridColumnGap","label"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;IAEaA,O;;;;;;;;;;;;;;;qGAgBI,UAAAC,MAAM,EAAI;AAAA,wBACa,MAAKC,KADlB;AAAA,UACfC,OADe,eACfA,OADe;AAAA,UACNC,cADM,eACNA,cADM;AAEvB,UAAMC,KAAK,GAAGF,OAAO,CAACG,SAAR,CAAkB,UAAAC,CAAC;AAAA,eAAIA,CAAC,CAACC,EAAF,KAASP,MAAM,CAACO,EAApB;AAAA,OAAnB,CAAd;;AACA,UAAIH,KAAK,KAAK,CAAC,CAAf,EAAkB;AAChBF,QAAAA,OAAO,CAACM,MAAR,CAAeJ,KAAf,EAAsB,CAAtB,EAAyBJ,MAAzB;AACAG,QAAAA,cAAc,CAAC;AAAED,UAAAA,OAAO,EAAPA;AAAF,SAAD,CAAd;AACD;AACF,K;4GAEqB,UAAAO,KAAK,EAAI;AAAA,UACrBP,OADqB,GACT,MAAKD,KADI,CACrBC,OADqB;AAE7B,aAAO,uBAAMA,OAAN,EAAe,UAAAQ,CAAC;AAAA,eAAIA,CAAC,CAACC,aAAF,KAAoBF,KAAxB;AAAA,OAAhB,CAAP;AACD,K;kGAEW,YAAM;AAAA,yBACkB,MAAKR,KADvB;AAAA,UACRE,cADQ,gBACRA,cADQ;AAAA,UACQS,KADR,gBACQA,KADR;;AAGhB,UAAML,EAAE,GAAGM,sBAAMC,mBAAN,CAA0BF,KAAK,CAACV,OAAN,CAAca,GAAd,CAAkB,UAAAC,CAAC;AAAA,eAAIA,CAAC,CAACT,EAAN;AAAA,OAAnB,CAA1B,EAAwD,CAAxD,CAAX;;AACA,UAAMU,IAAI,GAAG;AAAEV,QAAAA,EAAE,EAAFA,EAAF;AAAMW,QAAAA,OAAO,EAAE,YAAYX;AAA3B,OAAb;AAEAJ,MAAAA,cAAc,CAAC;AAAED,QAAAA,OAAO,EAAEU,KAAK,CAACV,OAAN,CAAciB,MAAd,CAAqB,CAACF,IAAD,CAArB;AAAX,OAAD,CAAd;AACD,K;qGAEc,UAAAjB,MAAM,EAAI;AAAA,yBACW,MAAKC,KADhB;AAAA,UACfW,KADe,gBACfA,KADe;AAAA,UACRT,cADQ,gBACRA,cADQ;AAEvB,UAAMC,KAAK,GAAGQ,KAAK,CAACV,OAAN,CAAcG,SAAd,CAAwB,UAAAW,CAAC;AAAA,eAAIA,CAAC,CAACT,EAAF,KAASP,MAAM,CAACO,EAApB;AAAA,OAAzB,CAAd;;AACA,UAAIH,KAAK,KAAK,CAAC,CAAf,EAAkB;AAChBQ,QAAAA,KAAK,CAACV,OAAN,CAAcM,MAAd,CAAqBJ,KAArB,EAA4B,CAA5B;AACAQ,QAAAA,KAAK,CAACQ,eAAN,GAAwB,kCACtBpB,MAAM,CAACO,EADe,EAEtBK,KAAK,CAACQ,eAFgB,CAAxB;AAIAjB,QAAAA,cAAc,CAACS,KAAD,CAAd;AACD;AACF,K;;;;;;WAED,kBAAS;AAAA;;AAAA,yBASH,KAAKX,KATF;AAAA,UAELoB,OAFK,gBAELA,OAFK;AAAA,UAGLC,SAHK,gBAGLA,SAHK;AAAA,UAILpB,OAJK,gBAILA,OAJK;AAAA,UAKLU,KALK,gBAKLA,KALK;AAAA,UAMLW,YANK,gBAMLA,YANK;AAAA,UAOLpB,cAPK,gBAOLA,cAPK;AAAA,UAQLqB,WARK,gBAQLA,WARK;AAWP,UAAMC,kBAAkB,GAAG,KAAKC,mBAAL,CAAyB,CAAzB,CAA3B;AACA,UAAMC,iBAAiB,GAAG;AACxBC,QAAAA,mBAAmB,mBAAYhB,KAAK,CAACiB,gBAAlB;AADK,OAA1B;AAIA,0BACE;AAAK,QAAA,SAAS,EAAE,4BAAWR,OAAO,CAACnB,OAAnB,EAA4BoB,SAA5B;AAAhB,sBACE,gCAAC,kBAAD;AAAQ,QAAA,KAAK,EAAC,SAAd;AAAwB,QAAA,WAAW,EAAC,cAApC;AAAmD,QAAA,KAAK,EAAE,KAAKQ;AAA/D,QADF,eAEE,gCAAC,kBAAD;AACE,QAAA,MAAM,EAAElB,KADV;AAEE,QAAA,kBAAkB,EAAEa,kBAFtB;AAGE,QAAA,cAAc,EAAEtB,cAHlB;AAIE,QAAA,mBAAmB,EAAE,KAAKuB;AAJ5B,QAFF,eAQE;AAAK,QAAA,SAAS,EAAEL,OAAO,CAACU,YAAxB;AAAsC,QAAA,KAAK,EAAEJ;AAA7C,SACGzB,OAAO,CAACa,GAAR,CAAY,UAACT,CAAD,EAAIF,KAAJ;AAAA,4BACX,gCAAC,kBAAD;AACE,UAAA,MAAM,EAAEE,CADV;AAEE,UAAA,oBAAoB,EAAEA,CAAC,CAAC0B,oBAF1B;AAGE,UAAA,GAAG,EAAE5B,KAHP;AAIE,UAAA,YAAY,EAAEmB,YAJhB;AAKE,UAAA,QAAQ,EAAE,MAAI,CAACU,YALjB;AAME,UAAA,QAAQ,EAAE;AAAA,mBAAM,MAAI,CAACC,YAAL,CAAkB5B,CAAlB,CAAN;AAAA,WANZ;AAOE,UAAA,WAAW,EAAEkB;AAPf,UADW;AAAA,OAAZ,CADH,CARF,eAqBE,gCAAC,gBAAD,OArBF,CADF;AAyBD;;;EA7F0BW,kBAAMC,S;;;iCAAtBrC,O,eACQ;AACjBa,EAAAA,KAAK,EAAEyB,sBAAUC,MAAV,CAAiBC,UADP;AAEjBlB,EAAAA,OAAO,EAAEgB,sBAAUC,MAAV,CAAiBC,UAFT;AAGjBjB,EAAAA,SAAS,EAAEe,sBAAUG,MAHJ;AAIjBtC,EAAAA,OAAO,EAAEmC,sBAAUI,KAAV,CAAgBF,UAJR;AAKjBpC,EAAAA,cAAc,EAAEkC,sBAAUK,IAAV,CAAeH,UALd;AAMjBhB,EAAAA,YAAY,EAAEc,sBAAUM,KAAV,CAAgB;AAC5BC,IAAAA,GAAG,EAAEP,sBAAUK,IAAV,CAAeH,UADQ;AAE5B,cAAQF,sBAAUK,IAAV,CAAeH;AAFK,GAAhB,CANG;AAUjBf,EAAAA,WAAW,EAAEa,sBAAUC;AAVN,C;iCADRvC,O,kBAcW,E;;AAiFxB,IAAM8C,MAAM,GAAG,SAATA,MAAS,CAAAC,KAAK;AAAA,SAAK;AACvBf,IAAAA,YAAY,EAAE;AACZgB,MAAAA,UAAU,EAAED,KAAK,CAACE,OAAN,CAAcC,IADd;AAEZC,MAAAA,aAAa,EAAEJ,KAAK,CAACE,OAAN,CAAcC,IAFjB;AAGZE,MAAAA,OAAO,EAAE,MAHG;AAIZC,MAAAA,UAAU,YAAKN,KAAK,CAACE,OAAN,CAAcC,IAAnB,OAJE;AAKZI,MAAAA,aAAa,YAAKP,KAAK,CAACE,OAAN,CAAcC,IAAnB;AALD,KADS;AAQvB/C,IAAAA,OAAO,EAAE;AACP6C,MAAAA,UAAU,EAAED,KAAK,CAACE,OAAN,CAAcC,IAAd,GAAqB,CAD1B;AAEPC,MAAAA,aAAa,EAAEJ,KAAK,CAACE,OAAN,CAAcC,IAAd,GAAqB;AAF7B,KARc;AAYvBK,IAAAA,KAAK,EAAE;AAZgB,GAAL;AAAA,CAApB;;eAce,wBAAWT,MAAX,EAAmB9C,OAAnB,C","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { Divider } from '../buttons';\nimport classNames from 'classnames';\nimport Choice from './choice';\nimport Header from '../header';\nimport every from 'lodash/every';\nimport Config from './config';\nimport { choiceUtils as utils } from '@pie-lib/config-ui';\nimport { removeAllChoices } from '@pie-lib/categorize';\n\nexport class Choices extends React.Component {\n static propTypes = {\n model: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n choices: PropTypes.array.isRequired,\n onModelChanged: PropTypes.func.isRequired,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired\n }),\n toolbarOpts: PropTypes.object\n };\n\n static defaultProps = {};\n\n changeChoice = choice => {\n const { choices, onModelChanged } = this.props;\n const index = choices.findIndex(h => h.id === choice.id);\n if (index !== -1) {\n choices.splice(index, 1, choice);\n onModelChanged({ choices });\n }\n };\n\n allChoicesHaveCount = count => {\n const { choices } = this.props;\n return every(choices, c => c.categoryCount === count);\n };\n\n addChoice = () => {\n const { onModelChanged, model } = this.props;\n\n const id = utils.firstAvailableIndex(model.choices.map(a => a.id), 0);\n const data = { id, content: 'Choice ' + id };\n\n onModelChanged({ choices: model.choices.concat([data]) });\n };\n\n deleteChoice = choice => {\n const { model, onModelChanged } = this.props;\n const index = model.choices.findIndex(a => a.id === choice.id);\n if (index !== -1) {\n model.choices.splice(index, 1);\n model.correctResponse = removeAllChoices(\n choice.id,\n model.correctResponse\n );\n onModelChanged(model);\n }\n };\n\n render() {\n const {\n classes,\n className,\n choices,\n model,\n imageSupport,\n onModelChanged,\n toolbarOpts\n } = this.props;\n\n const categoryCountIsOne = this.allChoicesHaveCount(1);\n const choiceHolderStyle = {\n gridTemplateColumns: `repeat(${model.categoriesPerRow}, 1fr)`\n };\n\n return (\n <div className={classNames(classes.choices, className)}>\n <Header label=\"Choices\" buttonLabel=\"ADD A CHOICE\" onAdd={this.addChoice} />\n <Config\n config={model}\n categoryCountIsOne={categoryCountIsOne}\n onModelChanged={onModelChanged}\n allChoicesHaveCount={this.allChoicesHaveCount}\n />\n <div className={classes.choiceHolder} style={choiceHolderStyle}>\n {choices.map((h, index) => (\n <Choice\n choice={h}\n correctResponseCount={h.correctResponseCount}\n key={index}\n imageSupport={imageSupport}\n onChange={this.changeChoice}\n onDelete={() => this.deleteChoice(h)}\n toolbarOpts={toolbarOpts}\n />\n ))}\n </div>\n <Divider />\n </div>\n );\n }\n}\nconst styles = theme => ({\n choiceHolder: {\n paddingTop: theme.spacing.unit,\n paddingBottom: theme.spacing.unit,\n display: 'grid',\n gridRowGap: `${theme.spacing.unit}px`,\n gridColumnGap: `${theme.spacing.unit}px`\n },\n choices: {\n paddingTop: theme.spacing.unit * 2,\n paddingBottom: theme.spacing.unit * 2\n },\n label: {}\n});\nexport default withStyles(styles)(Choices);\n"],"file":"index.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/design/choices/index.jsx"],"names":["Choices","choice","props","choices","onModelChanged","index","findIndex","h","id","splice","count","c","categoryCount","model","utils","firstAvailableIndex","map","a","data","content","concat","correctResponse","classes","className","imageSupport","uploadSoundSupport","spellCheck","toolbarOpts","configuration","defaultImageMaxWidth","defaultImageMaxHeight","errors","choicesError","choicesErrors","maxChoices","maxImageWidth","maxImageHeight","categoryCountIsOne","allChoicesHaveCount","choiceHolderStyle","gridTemplateColumns","categoriesPerRow","addChoice","length","errorText","choiceHolder","correctResponseCount","changeChoice","deleteChoice","React","Component","PropTypes","object","isRequired","string","array","func","shape","add","styles","theme","paddingTop","spacing","unit","paddingBottom","display","gridRowGap","gridColumnGap","label","fontSize","color","padding"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { Divider } from '../buttons';\nimport classNames from 'classnames';\nimport Choice from './choice';\nimport Header from '../header';\nimport every from 'lodash/every';\nimport Config from './config';\nimport { choiceUtils as utils } from '@pie-lib/config-ui';\nimport { removeAllChoices } from '@pie-lib/categorize';\n\nexport class Choices extends React.Component {\n static propTypes = {\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n choices: PropTypes.array.isRequired,\n onModelChanged: PropTypes.func.isRequired,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired\n }),\n uploadSoundSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired\n }),\n toolbarOpts: PropTypes.object\n };\n\n static defaultProps = {};\n\n changeChoice = choice => {\n const { choices, onModelChanged } = this.props;\n const index = choices.findIndex(h => h.id === choice.id);\n if (index !== -1) {\n choices.splice(index, 1, choice);\n onModelChanged({ choices });\n }\n };\n\n allChoicesHaveCount = count => {\n const { choices } = this.props;\n return every(choices, c => c.categoryCount === count);\n };\n\n addChoice = () => {\n const { onModelChanged, model } = this.props;\n\n const id = utils.firstAvailableIndex(model.choices.map(a => a.id), 0);\n const data = { id, content: 'Choice ' + id };\n\n onModelChanged({ choices: model.choices.concat([data]) });\n };\n\n deleteChoice = choice => {\n const { model, onModelChanged } = this.props;\n const index = model.choices.findIndex(a => a.id === choice.id);\n if (index !== -1) {\n model.choices.splice(index, 1);\n model.correctResponse = removeAllChoices(\n choice.id,\n model.correctResponse\n );\n onModelChanged(model);\n }\n };\n\n render() {\n const {\n classes,\n className,\n choices,\n model,\n imageSupport,\n uploadSoundSupport,\n onModelChanged,\n spellCheck,\n toolbarOpts,\n configuration,\n defaultImageMaxWidth,\n defaultImageMaxHeight\n } = this.props;\n const { errors } = model;\n const { choicesError, choicesErrors } = errors || {};\n const {\n maxChoices,\n maxImageWidth = {},\n maxImageHeight = {},\n } = configuration || {};\n\n const categoryCountIsOne = this.allChoicesHaveCount(1);\n const choiceHolderStyle = {\n gridTemplateColumns: `repeat(${model.categoriesPerRow}, 1fr)`\n };\n\n return (\n <div className={classNames(classes.choices, className)}>\n <Header\n label=\"Choices\"\n buttonLabel=\"ADD A CHOICE\"\n onAdd={this.addChoice}\n buttonDisabled={maxChoices && choices && maxChoices === choices.length}\n />\n {choicesError && <div className={classes.errorText}>{choicesError}</div>}\n <Config\n config={model}\n categoryCountIsOne={categoryCountIsOne}\n onModelChanged={onModelChanged}\n allChoicesHaveCount={this.allChoicesHaveCount}\n spellCheck={spellCheck}\n />\n <div className={classes.choiceHolder} style={choiceHolderStyle}>\n {choices.map((h, index) => (\n <Choice\n choice={h}\n correctResponseCount={h.correctResponseCount}\n key={index}\n imageSupport={imageSupport}\n onChange={this.changeChoice}\n onDelete={() => this.deleteChoice(h)}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheck}\n error={choicesErrors && choicesErrors[h.id]}\n maxImageWidth={maxImageWidth && maxImageWidth.choice || defaultImageMaxWidth}\n maxImageHeight={maxImageHeight && maxImageHeight.choice || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n />\n ))}\n </div>\n <Divider />\n </div>\n );\n }\n}\nconst styles = theme => ({\n choiceHolder: {\n paddingTop: theme.spacing.unit,\n paddingBottom: theme.spacing.unit,\n display: 'grid',\n gridRowGap: `${theme.spacing.unit}px`,\n gridColumnGap: `${theme.spacing.unit}px`\n },\n choices: {\n paddingTop: theme.spacing.unit * 2,\n paddingBottom: theme.spacing.unit * 2\n },\n label: {},\n errorText: {\n fontSize: '12px',\n color: 'red',\n padding: '5px 0'\n },\n});\nexport default withStyles(styles)(Choices);\n"],"file":"index.js"}
|
|
@@ -33,7 +33,7 @@ var _buttons = require("./buttons");
|
|
|
33
33
|
|
|
34
34
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
35
35
|
|
|
36
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try {
|
|
36
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
37
37
|
|
|
38
38
|
var Header = /*#__PURE__*/function (_React$Component) {
|
|
39
39
|
(0, _inherits2["default"])(Header, _React$Component);
|
|
@@ -53,15 +53,20 @@ var Header = /*#__PURE__*/function (_React$Component) {
|
|
|
53
53
|
className = _this$props.className,
|
|
54
54
|
onAdd = _this$props.onAdd,
|
|
55
55
|
label = _this$props.label,
|
|
56
|
-
buttonLabel = _this$props.buttonLabel
|
|
56
|
+
buttonLabel = _this$props.buttonLabel,
|
|
57
|
+
info = _this$props.info,
|
|
58
|
+
buttonDisabled = _this$props.buttonDisabled;
|
|
57
59
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
58
60
|
className: (0, _classnames["default"])(classes.header, className)
|
|
61
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
62
|
+
className: classes.titleContainer
|
|
59
63
|
}, /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
|
|
60
64
|
variant: "title",
|
|
61
65
|
className: classes.title
|
|
62
|
-
}, label), /*#__PURE__*/_react["default"].createElement(_buttons.AddButton, {
|
|
66
|
+
}, label), info), /*#__PURE__*/_react["default"].createElement(_buttons.AddButton, {
|
|
63
67
|
onClick: onAdd,
|
|
64
|
-
label: buttonLabel
|
|
68
|
+
label: buttonLabel,
|
|
69
|
+
disabled: buttonDisabled
|
|
65
70
|
}));
|
|
66
71
|
}
|
|
67
72
|
}]);
|
|
@@ -74,7 +79,9 @@ exports.Header = Header;
|
|
|
74
79
|
className: _propTypes["default"].string,
|
|
75
80
|
buttonLabel: _propTypes["default"].string,
|
|
76
81
|
onAdd: _propTypes["default"].func.isRequired,
|
|
77
|
-
label: _propTypes["default"].string.isRequired
|
|
82
|
+
label: _propTypes["default"].string.isRequired,
|
|
83
|
+
info: _propTypes["default"].any,
|
|
84
|
+
buttonDisabled: _propTypes["default"].bool
|
|
78
85
|
});
|
|
79
86
|
(0, _defineProperty2["default"])(Header, "defaultProps", {});
|
|
80
87
|
|
|
@@ -84,6 +91,9 @@ var styles = function styles(theme) {
|
|
|
84
91
|
display: 'flex',
|
|
85
92
|
justifyContent: 'space-between',
|
|
86
93
|
marginBottom: 2 * theme.spacing.unit
|
|
94
|
+
},
|
|
95
|
+
titleContainer: {
|
|
96
|
+
display: 'flex'
|
|
87
97
|
}
|
|
88
98
|
};
|
|
89
99
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/design/header.jsx"],"names":["Header","props","classes","className","onAdd","label","buttonLabel","header","title","React","Component","PropTypes","object","isRequired","string","func","styles","theme","display","justifyContent","marginBottom","spacing","unit"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;IAEaA,M;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"sources":["../../src/design/header.jsx"],"names":["Header","props","classes","className","onAdd","label","buttonLabel","info","buttonDisabled","header","titleContainer","title","React","Component","PropTypes","object","isRequired","string","func","any","bool","styles","theme","display","justifyContent","marginBottom","spacing","unit"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;IAEaA,M;;;;;;;;;;;;WAYX,kBAAS;AACP,wBAAgF,KAAKC,KAArF;AAAA,UAAQC,OAAR,eAAQA,OAAR;AAAA,UAAiBC,SAAjB,eAAiBA,SAAjB;AAAA,UAA4BC,KAA5B,eAA4BA,KAA5B;AAAA,UAAmCC,KAAnC,eAAmCA,KAAnC;AAAA,UAA0CC,WAA1C,eAA0CA,WAA1C;AAAA,UAAuDC,IAAvD,eAAuDA,IAAvD;AAAA,UAA6DC,cAA7D,eAA6DA,cAA7D;AACA,0BACE;AAAK,QAAA,SAAS,EAAE,4BAAWN,OAAO,CAACO,MAAnB,EAA2BN,SAA3B;AAAhB,sBACE;AAAK,QAAA,SAAS,EAAED,OAAO,CAACQ;AAAxB,sBACA,gCAAC,sBAAD;AAAY,QAAA,OAAO,EAAC,OAApB;AAA4B,QAAA,SAAS,EAAER,OAAO,CAACS;AAA/C,SACGN,KADH,CADA,EAICE,IAJD,CADF,eAOE,gCAAC,kBAAD;AAAW,QAAA,OAAO,EAAEH,KAApB;AAA2B,QAAA,KAAK,EAAEE,WAAlC;AAA+C,QAAA,QAAQ,EAAEE;AAAzD,QAPF,CADF;AAWD;;;EAzByBI,kBAAMC,S;;;iCAArBb,M,eACQ;AACjBE,EAAAA,OAAO,EAAEY,sBAAUC,MAAV,CAAiBC,UADT;AAEjBb,EAAAA,SAAS,EAAEW,sBAAUG,MAFJ;AAGjBX,EAAAA,WAAW,EAAEQ,sBAAUG,MAHN;AAIjBb,EAAAA,KAAK,EAAEU,sBAAUI,IAAV,CAAeF,UAJL;AAKjBX,EAAAA,KAAK,EAAES,sBAAUG,MAAV,CAAiBD,UALP;AAMjBT,EAAAA,IAAI,EAAEO,sBAAUK,GANC;AAOjBX,EAAAA,cAAc,EAAEM,sBAAUM;AAPT,C;iCADRpB,M,kBAWW,E;;AAgBxB,IAAMqB,MAAM,GAAG,SAATA,MAAS,CAAAC,KAAK;AAAA,SAAK;AACvBb,IAAAA,MAAM,EAAE;AACNc,MAAAA,OAAO,EAAE,MADH;AAENC,MAAAA,cAAc,EAAE,eAFV;AAGNC,MAAAA,YAAY,EAAE,IAAIH,KAAK,CAACI,OAAN,CAAcC;AAH1B,KADe;AAMvBjB,IAAAA,cAAc,EAAE;AACda,MAAAA,OAAO,EAAE;AADK;AANO,GAAL;AAAA,CAApB;;eAUe,wBAAWF,MAAX,EAAmBrB,MAAnB,C","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport Typography from '@material-ui/core/Typography';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport { AddButton } from './buttons';\n\nexport class Header extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n buttonLabel: PropTypes.string,\n onAdd: PropTypes.func.isRequired,\n label: PropTypes.string.isRequired,\n info: PropTypes.any,\n buttonDisabled: PropTypes.bool\n };\n\n static defaultProps = {};\n render() {\n const { classes, className, onAdd, label, buttonLabel, info, buttonDisabled } = this.props;\n return (\n <div className={classNames(classes.header, className)}>\n <div className={classes.titleContainer}>\n <Typography variant=\"title\" className={classes.title}>\n {label}\n </Typography>\n {info}\n </div>\n <AddButton onClick={onAdd} label={buttonLabel} disabled={buttonDisabled}/>\n </div>\n );\n }\n}\nconst styles = theme => ({\n header: {\n display: 'flex',\n justifyContent: 'space-between',\n marginBottom: 2 * theme.spacing.unit\n },\n titleContainer: {\n display: 'flex',\n }\n});\nexport default withStyles(styles)(Header);\n"],"file":"header.js"}
|
|
@@ -51,13 +51,13 @@ var _builder = require("./builder");
|
|
|
51
51
|
|
|
52
52
|
var _header = _interopRequireDefault(require("./header"));
|
|
53
53
|
|
|
54
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
54
|
+
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; }
|
|
55
55
|
|
|
56
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
56
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
57
57
|
|
|
58
58
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
59
59
|
|
|
60
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try {
|
|
60
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
61
61
|
|
|
62
62
|
var Panel = _configUi.settings.Panel,
|
|
63
63
|
toggle = _configUi.settings.toggle,
|
|
@@ -167,6 +167,7 @@ var Design = /*#__PURE__*/function (_React$Component) {
|
|
|
167
167
|
className = _this$props4.className,
|
|
168
168
|
model = _this$props4.model,
|
|
169
169
|
imageSupport = _this$props4.imageSupport,
|
|
170
|
+
uploadSoundSupport = _this$props4.uploadSoundSupport,
|
|
170
171
|
configuration = _this$props4.configuration,
|
|
171
172
|
onChange = _this$props4.onChange,
|
|
172
173
|
onConfigurationChanged = _this$props4.onConfigurationChanged;
|
|
@@ -187,13 +188,24 @@ var Design = /*#__PURE__*/function (_React$Component) {
|
|
|
187
188
|
_ref$feedback = _ref.feedback,
|
|
188
189
|
feedback = _ref$feedback === void 0 ? {} : _ref$feedback,
|
|
189
190
|
_ref$prompt = _ref.prompt,
|
|
190
|
-
prompt = _ref$prompt === void 0 ? {} : _ref$prompt
|
|
191
|
+
prompt = _ref$prompt === void 0 ? {} : _ref$prompt,
|
|
192
|
+
_ref$spellCheck = _ref.spellCheck,
|
|
193
|
+
spellCheck = _ref$spellCheck === void 0 ? {} : _ref$spellCheck,
|
|
194
|
+
_ref$maxImageWidth = _ref.maxImageWidth,
|
|
195
|
+
maxImageWidth = _ref$maxImageWidth === void 0 ? {} : _ref$maxImageWidth,
|
|
196
|
+
_ref$maxImageHeight = _ref.maxImageHeight,
|
|
197
|
+
maxImageHeight = _ref$maxImageHeight === void 0 ? {} : _ref$maxImageHeight,
|
|
198
|
+
_ref$withRubric = _ref.withRubric,
|
|
199
|
+
withRubric = _ref$withRubric === void 0 ? {} : _ref$withRubric;
|
|
191
200
|
|
|
192
201
|
var _ref2 = model || {},
|
|
193
202
|
teacherInstructionsEnabled = _ref2.teacherInstructionsEnabled,
|
|
194
203
|
promptEnabled = _ref2.promptEnabled,
|
|
195
204
|
rationaleEnabled = _ref2.rationaleEnabled,
|
|
196
|
-
feedbackEnabled = _ref2.feedbackEnabled
|
|
205
|
+
feedbackEnabled = _ref2.feedbackEnabled,
|
|
206
|
+
spellCheckEnabled = _ref2.spellCheckEnabled,
|
|
207
|
+
errors = _ref2.errors,
|
|
208
|
+
rubricEnabled = _ref2.rubricEnabled;
|
|
197
209
|
|
|
198
210
|
var toolbarOpts = {};
|
|
199
211
|
|
|
@@ -218,6 +230,8 @@ var Design = /*#__PURE__*/function (_React$Component) {
|
|
|
218
230
|
c.correctResponseCount = _this2.countChoiceInCorrectResponse(c);
|
|
219
231
|
return c;
|
|
220
232
|
});
|
|
233
|
+
var defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;
|
|
234
|
+
var defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;
|
|
221
235
|
return /*#__PURE__*/_react["default"].createElement(IdProvider, {
|
|
222
236
|
value: this.uid
|
|
223
237
|
}, /*#__PURE__*/_react["default"].createElement(_configUi.layout.ConfigLayout, {
|
|
@@ -237,7 +251,9 @@ var Design = /*#__PURE__*/function (_React$Component) {
|
|
|
237
251
|
teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),
|
|
238
252
|
studentInstructionsEnabled: studentInstructions.settings && toggle(studentInstructions.label),
|
|
239
253
|
rationaleEnabled: rationale.settings && toggle(rationale.label),
|
|
240
|
-
|
|
254
|
+
spellCheckEnabled: spellCheck.settings && toggle(spellCheck.label),
|
|
255
|
+
scoringType: scoringType.settings && radio(scoringType.label, ['auto', 'rubric']),
|
|
256
|
+
rubricEnabled: withRubric.settings && toggle(withRubric.label)
|
|
241
257
|
}
|
|
242
258
|
}
|
|
243
259
|
})
|
|
@@ -253,7 +269,16 @@ var Design = /*#__PURE__*/function (_React$Component) {
|
|
|
253
269
|
imageSupport: imageSupport,
|
|
254
270
|
nonEmpty: false,
|
|
255
271
|
disableUnderline: true,
|
|
256
|
-
toolbarOpts: toolbarOpts
|
|
272
|
+
toolbarOpts: toolbarOpts,
|
|
273
|
+
spellCheck: spellCheckEnabled,
|
|
274
|
+
maxImageWidth: maxImageWidth && maxImageWidth.prompt,
|
|
275
|
+
maxImageHeight: maxImageHeight && maxImageHeight.prompt,
|
|
276
|
+
uploadSoundSupport: uploadSoundSupport,
|
|
277
|
+
languageCharactersProps: [{
|
|
278
|
+
language: 'spanish'
|
|
279
|
+
}, {
|
|
280
|
+
language: 'special'
|
|
281
|
+
}]
|
|
257
282
|
})), teacherInstructionsEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
|
|
258
283
|
label: teacherInstructions.label,
|
|
259
284
|
className: classes.inputHolder
|
|
@@ -263,7 +288,16 @@ var Design = /*#__PURE__*/function (_React$Component) {
|
|
|
263
288
|
onChange: this.changeTeacherInstructions,
|
|
264
289
|
imageSupport: imageSupport,
|
|
265
290
|
nonEmpty: false,
|
|
266
|
-
toolbarOpts: toolbarOpts
|
|
291
|
+
toolbarOpts: toolbarOpts,
|
|
292
|
+
spellCheck: spellCheckEnabled,
|
|
293
|
+
maxImageWidth: maxImageWidth && maxImageWidth.teacherInstructions || defaultImageMaxWidth,
|
|
294
|
+
maxImageHeight: maxImageHeight && maxImageHeight.teacherInstructions || defaultImageMaxHeight,
|
|
295
|
+
uploadSoundSupport: uploadSoundSupport,
|
|
296
|
+
languageCharactersProps: [{
|
|
297
|
+
language: 'spanish'
|
|
298
|
+
}, {
|
|
299
|
+
language: 'special'
|
|
300
|
+
}]
|
|
267
301
|
})), rationaleEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
|
|
268
302
|
label: rationale.label,
|
|
269
303
|
className: classes.inputHolder
|
|
@@ -273,13 +307,27 @@ var Design = /*#__PURE__*/function (_React$Component) {
|
|
|
273
307
|
onChange: this.changeRationale,
|
|
274
308
|
imageSupport: imageSupport,
|
|
275
309
|
nonEmpty: false,
|
|
276
|
-
toolbarOpts: toolbarOpts
|
|
310
|
+
toolbarOpts: toolbarOpts,
|
|
311
|
+
spellCheck: spellCheckEnabled,
|
|
312
|
+
maxImageWidth: maxImageWidth && maxImageWidth.rationale || defaultImageMaxWidth,
|
|
313
|
+
maxImageHeight: maxImageHeight && maxImageHeight.rationale || defaultImageMaxHeight,
|
|
314
|
+
uploadSoundSupport: uploadSoundSupport,
|
|
315
|
+
languageCharactersProps: [{
|
|
316
|
+
language: 'spanish'
|
|
317
|
+
}, {
|
|
318
|
+
language: 'special'
|
|
319
|
+
}]
|
|
277
320
|
})), /*#__PURE__*/_react["default"].createElement(_categories["default"], {
|
|
278
321
|
imageSupport: imageSupport,
|
|
322
|
+
uploadSoundSupport: uploadSoundSupport,
|
|
279
323
|
model: model,
|
|
280
324
|
categories: categories || [],
|
|
281
325
|
onModelChanged: this.updateModel,
|
|
282
|
-
toolbarOpts: toolbarOpts
|
|
326
|
+
toolbarOpts: toolbarOpts,
|
|
327
|
+
spellCheck: spellCheckEnabled,
|
|
328
|
+
configuration: configuration,
|
|
329
|
+
defaultImageMaxWidth: defaultImageMaxWidth,
|
|
330
|
+
defaultImageMaxHeight: defaultImageMaxHeight
|
|
283
331
|
}), /*#__PURE__*/_react["default"].createElement(_header["default"], {
|
|
284
332
|
className: classes.alternatesHeader,
|
|
285
333
|
label: "Alternate Responses",
|
|
@@ -300,14 +348,20 @@ var Design = /*#__PURE__*/function (_React$Component) {
|
|
|
300
348
|
imageSupport: imageSupport,
|
|
301
349
|
model: model,
|
|
302
350
|
categories: categoriesList,
|
|
303
|
-
onModelChanged: _this2.updateModel
|
|
351
|
+
onModelChanged: _this2.updateModel,
|
|
352
|
+
uploadSoundSupport: uploadSoundSupport
|
|
304
353
|
}));
|
|
305
354
|
}), /*#__PURE__*/_react["default"].createElement(_buttons.Divider, null), /*#__PURE__*/_react["default"].createElement(_choices["default"], {
|
|
306
355
|
imageSupport: imageSupport,
|
|
356
|
+
uploadSoundSupport: uploadSoundSupport,
|
|
307
357
|
choices: choices,
|
|
308
358
|
model: model,
|
|
309
359
|
onModelChanged: this.updateModel,
|
|
310
|
-
toolbarOpts: toolbarOpts
|
|
360
|
+
toolbarOpts: toolbarOpts,
|
|
361
|
+
spellCheck: spellCheckEnabled,
|
|
362
|
+
configuration: configuration,
|
|
363
|
+
defaultImageMaxWidth: defaultImageMaxWidth,
|
|
364
|
+
defaultImageMaxHeight: defaultImageMaxHeight
|
|
311
365
|
}), feedbackEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.FeedbackConfig, {
|
|
312
366
|
feedback: model.feedback,
|
|
313
367
|
onChange: this.changeFeedback,
|
|
@@ -330,6 +384,10 @@ exports.Design = Design;
|
|
|
330
384
|
imageSupport: _propTypes["default"].shape({
|
|
331
385
|
add: _propTypes["default"].func.isRequired,
|
|
332
386
|
"delete": _propTypes["default"].func.isRequired
|
|
387
|
+
}),
|
|
388
|
+
uploadSoundSupport: _propTypes["default"].shape({
|
|
389
|
+
add: _propTypes["default"].func.isRequired,
|
|
390
|
+
"delete": _propTypes["default"].func.isRequired
|
|
333
391
|
})
|
|
334
392
|
});
|
|
335
393
|
|