@pie-element/categorize 8.15.1-next.1 → 8.15.1-next.10

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.
Files changed (61) hide show
  1. package/configure/lib/defaults.js +207 -0
  2. package/configure/lib/defaults.js.map +1 -0
  3. package/configure/lib/design/builder.js +74 -0
  4. package/configure/lib/design/builder.js.map +1 -0
  5. package/configure/lib/design/buttons.js +127 -0
  6. package/configure/lib/design/buttons.js.map +1 -0
  7. package/configure/lib/design/categories/RowLabel.js +78 -0
  8. package/configure/lib/design/categories/RowLabel.js.map +1 -0
  9. package/configure/lib/design/categories/alternateResponses.js +293 -0
  10. package/configure/lib/design/categories/alternateResponses.js.map +1 -0
  11. package/configure/lib/design/categories/category.js +219 -0
  12. package/configure/lib/design/categories/category.js.map +1 -0
  13. package/configure/lib/design/categories/choice-preview.js +136 -0
  14. package/configure/lib/design/categories/choice-preview.js.map +1 -0
  15. package/configure/lib/design/categories/droppable-placeholder.js +187 -0
  16. package/configure/lib/design/categories/droppable-placeholder.js.map +1 -0
  17. package/configure/lib/design/categories/index.js +408 -0
  18. package/configure/lib/design/categories/index.js.map +1 -0
  19. package/configure/lib/design/choices/choice.js +297 -0
  20. package/configure/lib/design/choices/choice.js.map +1 -0
  21. package/configure/lib/design/choices/config.js +114 -0
  22. package/configure/lib/design/choices/config.js.map +1 -0
  23. package/configure/lib/design/choices/index.js +276 -0
  24. package/configure/lib/design/choices/index.js.map +1 -0
  25. package/configure/lib/design/header.js +107 -0
  26. package/configure/lib/design/header.js.map +1 -0
  27. package/configure/lib/design/index.js +538 -0
  28. package/configure/lib/design/index.js.map +1 -0
  29. package/configure/lib/design/input-header.js +166 -0
  30. package/configure/lib/design/input-header.js.map +1 -0
  31. package/configure/lib/design/utils.js +23 -0
  32. package/configure/lib/design/utils.js.map +1 -0
  33. package/configure/lib/index.js +196 -0
  34. package/configure/lib/index.js.map +1 -0
  35. package/configure/lib/main.js +88 -0
  36. package/configure/lib/main.js.map +1 -0
  37. package/configure/lib/utils.js +40 -0
  38. package/configure/lib/utils.js.map +1 -0
  39. package/controller/lib/defaults.js +31 -0
  40. package/controller/lib/defaults.js.map +1 -0
  41. package/controller/lib/index.js +484 -0
  42. package/controller/lib/index.js.map +1 -0
  43. package/controller/lib/utils.js +60 -0
  44. package/controller/lib/utils.js.map +1 -0
  45. package/lib/categorize/categories.js +193 -0
  46. package/lib/categorize/categories.js.map +1 -0
  47. package/lib/categorize/category.js +135 -0
  48. package/lib/categorize/category.js.map +1 -0
  49. package/lib/categorize/choice.js +228 -0
  50. package/lib/categorize/choice.js.map +1 -0
  51. package/lib/categorize/choices.js +162 -0
  52. package/lib/categorize/choices.js.map +1 -0
  53. package/lib/categorize/droppable-placeholder.js +111 -0
  54. package/lib/categorize/droppable-placeholder.js.map +1 -0
  55. package/lib/categorize/grid-content.js +103 -0
  56. package/lib/categorize/grid-content.js.map +1 -0
  57. package/lib/categorize/index.js +368 -0
  58. package/lib/categorize/index.js.map +1 -0
  59. package/lib/index.js +137 -0
  60. package/lib/index.js.map +1 -0
  61. package/package.json +2 -2
@@ -0,0 +1,297 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.specTarget = exports.spec = exports["default"] = exports.Choice = void 0;
9
+
10
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
+
12
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
+
14
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
15
+
16
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
+
18
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
19
+
20
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
21
+
22
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
23
+
24
+ var _react = _interopRequireDefault(require("react"));
25
+
26
+ var _propTypes = _interopRequireDefault(require("prop-types"));
27
+
28
+ var _styles = require("@material-ui/core/styles");
29
+
30
+ var _classnames = _interopRequireDefault(require("classnames"));
31
+
32
+ var _Card = _interopRequireDefault(require("@material-ui/core/Card"));
33
+
34
+ var _CardActions = _interopRequireDefault(require("@material-ui/core/CardActions"));
35
+
36
+ var _inputHeader = _interopRequireDefault(require("../input-header"));
37
+
38
+ var _configUi = require("@pie-lib/pie-toolbox/config-ui");
39
+
40
+ var _buttons = require("../buttons");
41
+
42
+ var _DragHandle = _interopRequireDefault(require("@material-ui/icons/DragHandle"));
43
+
44
+ var _reactDnd = require("react-dnd");
45
+
46
+ var _debug = _interopRequireDefault(require("debug"));
47
+
48
+ var _drag = require("@pie-lib/pie-toolbox/drag");
49
+
50
+ var _utils = require("../../utils");
51
+
52
+ var _flow = _interopRequireDefault(require("lodash/flow"));
53
+
54
+ 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); }; }
55
+
56
+ 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; } }
57
+
58
+ var log = (0, _debug["default"])('@pie-element:categorize:configure:choice');
59
+
60
+ var canDrag = function canDrag(props) {
61
+ if (props.lockChoiceOrder) {
62
+ return true;
63
+ }
64
+
65
+ var count = props.choice.categoryCount || 0;
66
+
67
+ if (count === 0) {
68
+ return true;
69
+ } else {
70
+ return props.correctResponseCount < count;
71
+ }
72
+ };
73
+
74
+ var Choice = /*#__PURE__*/function (_React$Component) {
75
+ (0, _inherits2["default"])(Choice, _React$Component);
76
+
77
+ var _super = _createSuper(Choice);
78
+
79
+ function Choice() {
80
+ var _this;
81
+
82
+ (0, _classCallCheck2["default"])(this, Choice);
83
+
84
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
85
+ args[_key] = arguments[_key];
86
+ }
87
+
88
+ _this = _super.call.apply(_super, [this].concat(args));
89
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeContent", function (content) {
90
+ var _this$props = _this.props,
91
+ onChange = _this$props.onChange,
92
+ choice = _this$props.choice;
93
+ choice.content = content;
94
+ onChange(choice);
95
+ });
96
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeCategoryCount", function () {
97
+ var _this$props2 = _this.props,
98
+ onChange = _this$props2.onChange,
99
+ choice = _this$props2.choice;
100
+
101
+ if (choice.categoryCount === 1) {
102
+ choice.categoryCount = 0;
103
+ } else {
104
+ choice.categoryCount = 1;
105
+ }
106
+
107
+ onChange(choice);
108
+ });
109
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "isCheckboxShown", function (allowMultiplePlacements) {
110
+ return allowMultiplePlacements === _utils.multiplePlacements.perChoice;
111
+ });
112
+ return _this;
113
+ }
114
+
115
+ (0, _createClass2["default"])(Choice, [{
116
+ key: "render",
117
+ value: function render() {
118
+ var _this$props3 = this.props,
119
+ allowMultiplePlacements = _this$props3.allowMultiplePlacements,
120
+ classes = _this$props3.classes,
121
+ className = _this$props3.className,
122
+ configuration = _this$props3.configuration,
123
+ choice = _this$props3.choice,
124
+ deleteFocusedEl = _this$props3.deleteFocusedEl,
125
+ focusedEl = _this$props3.focusedEl,
126
+ index = _this$props3.index,
127
+ onDelete = _this$props3.onDelete,
128
+ connectDropTarget = _this$props3.connectDropTarget,
129
+ connectDragSource = _this$props3.connectDragSource,
130
+ connectDragPreview = _this$props3.connectDragPreview,
131
+ imageSupport = _this$props3.imageSupport,
132
+ spellCheck = _this$props3.spellCheck,
133
+ toolbarOpts = _this$props3.toolbarOpts,
134
+ error = _this$props3.error,
135
+ maxImageWidth = _this$props3.maxImageWidth,
136
+ maxImageHeight = _this$props3.maxImageHeight,
137
+ uploadSoundSupport = _this$props3.uploadSoundSupport;
138
+ var showRemoveAfterPlacing = this.isCheckboxShown(allowMultiplePlacements);
139
+ var draggable = canDrag(this.props);
140
+ return /*#__PURE__*/_react["default"].createElement(_Card["default"], {
141
+ className: (0, _classnames["default"])(classes.choice, className)
142
+ }, /*#__PURE__*/_react["default"].createElement(_CardActions["default"], {
143
+ className: classes.actions
144
+ }, connectDragSource(connectDropTarget( /*#__PURE__*/_react["default"].createElement("span", {
145
+ className: (0, _classnames["default"])(classes.dragHandle, draggable === false && classes.dragDisabled)
146
+ }, /*#__PURE__*/_react["default"].createElement(_DragHandle["default"], {
147
+ color: draggable ? 'primary' : 'disabled'
148
+ }))))), connectDragPreview( /*#__PURE__*/_react["default"].createElement("span", null, /*#__PURE__*/_react["default"].createElement(_inputHeader["default"], {
149
+ imageSupport: imageSupport,
150
+ focusedEl: focusedEl,
151
+ deleteFocusedEl: deleteFocusedEl,
152
+ index: index,
153
+ label: choice.content,
154
+ onChange: this.changeContent,
155
+ onDelete: onDelete,
156
+ toolbarOpts: toolbarOpts,
157
+ spellCheck: spellCheck,
158
+ error: error,
159
+ maxImageWidth: maxImageWidth,
160
+ maxImageHeight: maxImageHeight,
161
+ uploadSoundSupport: uploadSoundSupport,
162
+ configuration: configuration
163
+ }), error && /*#__PURE__*/_react["default"].createElement("div", {
164
+ className: classes.errorText
165
+ }, error))), /*#__PURE__*/_react["default"].createElement(_CardActions["default"], {
166
+ className: classes.actions
167
+ }, /*#__PURE__*/_react["default"].createElement(_buttons.DeleteButton, {
168
+ label: 'delete',
169
+ onClick: onDelete
170
+ }), showRemoveAfterPlacing && /*#__PURE__*/_react["default"].createElement(_configUi.Checkbox, {
171
+ mini: true,
172
+ label: 'Remove after placing',
173
+ checked: choice.categoryCount === 1,
174
+ onChange: this.changeCategoryCount
175
+ })));
176
+ }
177
+ }]);
178
+ return Choice;
179
+ }(_react["default"].Component);
180
+
181
+ exports.Choice = Choice;
182
+ (0, _defineProperty2["default"])(Choice, "propTypes", {
183
+ allowMultiplePlacements: _propTypes["default"].string,
184
+ classes: _propTypes["default"].object.isRequired,
185
+ className: _propTypes["default"].string,
186
+ configuration: _propTypes["default"].object.isRequired,
187
+ choice: _propTypes["default"].object.isRequired,
188
+ connectDropTarget: _propTypes["default"].func,
189
+ deleteFocusedEl: _propTypes["default"].func,
190
+ defaultImageMaxHeight: _propTypes["default"].number,
191
+ defaultImageMaxWidth: _propTypes["default"].number,
192
+ focusedEl: _propTypes["default"].number,
193
+ index: _propTypes["default"].number,
194
+ lockChoiceOrder: _propTypes["default"].bool,
195
+ maxImageHeight: _propTypes["default"].object,
196
+ maxImageWidth: _propTypes["default"].object,
197
+ onChange: _propTypes["default"].func.isRequired,
198
+ onDelete: _propTypes["default"].func.isRequired,
199
+ connectDragSource: _propTypes["default"].func.isRequired,
200
+ connectDragPreview: _propTypes["default"].func.isRequired,
201
+ correctResponseCount: _propTypes["default"].number.isRequired,
202
+ imageSupport: _propTypes["default"].shape({
203
+ add: _propTypes["default"].func.isRequired,
204
+ "delete": _propTypes["default"].func.isRequired
205
+ }),
206
+ toolbarOpts: _propTypes["default"].object,
207
+ error: _propTypes["default"].string,
208
+ uploadSoundSupport: _propTypes["default"].shape({
209
+ add: _propTypes["default"].func.isRequired,
210
+ "delete": _propTypes["default"].func.isRequired
211
+ }),
212
+ spellCheck: _propTypes["default"].bool
213
+ });
214
+ (0, _defineProperty2["default"])(Choice, "defaultProps", {});
215
+
216
+ var styles = function styles(theme) {
217
+ return {
218
+ actions: {
219
+ padding: 0,
220
+ justifyContent: 'space-between'
221
+ },
222
+ choice: {
223
+ minWidth: '196px',
224
+ padding: theme.spacing.unit,
225
+ overflow: 'visible'
226
+ },
227
+ dragHandle: {
228
+ cursor: 'move'
229
+ },
230
+ dragDisabled: {
231
+ cursor: 'inherit'
232
+ },
233
+ errorText: {
234
+ fontSize: theme.typography.fontSize - 2,
235
+ color: theme.palette.error.main,
236
+ paddingBottom: theme.spacing.unit
237
+ }
238
+ };
239
+ };
240
+
241
+ var StyledChoice = (0, _styles.withStyles)(styles)(Choice);
242
+ var spec = {
243
+ canDrag: canDrag,
244
+ beginDrag: function beginDrag(props) {
245
+ var out = {
246
+ id: props.choice.id,
247
+ index: props.index
248
+ };
249
+ log('[beginDrag] out:', out);
250
+ return out;
251
+ },
252
+ endDrag: function endDrag(props, monitor) {
253
+ if (!monitor.didDrop()) {
254
+ var item = monitor.getItem();
255
+
256
+ if (item.categoryId) {
257
+ log('wasnt droppped - what to do?');
258
+ props.onRemoveChoice(item);
259
+ }
260
+ }
261
+ }
262
+ };
263
+ exports.spec = spec;
264
+ var specTarget = {
265
+ drop: function drop(props, monitor) {
266
+ log('[drop] props: ', props);
267
+ var item = monitor.getItem();
268
+ props.rearrangeChoices(item.index, props.index);
269
+ },
270
+ canDrop: function canDrop(props, monitor) {
271
+ var item = monitor.getItem();
272
+ return props.choice.id !== item.id;
273
+ }
274
+ };
275
+ exports.specTarget = specTarget;
276
+
277
+ var _default = _drag.uid.withUid((0, _flow["default"])((0, _reactDnd.DragSource)(function (_ref) {
278
+ var uid = _ref.uid;
279
+ return uid;
280
+ }, spec, function (connect, monitor) {
281
+ return {
282
+ connectDragSource: connect.dragSource(),
283
+ connectDragPreview: connect.dragPreview(),
284
+ isDragging: monitor.isDragging()
285
+ };
286
+ }), (0, _reactDnd.DropTarget)(function (_ref2) {
287
+ var uid = _ref2.uid;
288
+ return uid;
289
+ }, specTarget, function (connect, monitor) {
290
+ return {
291
+ connectDropTarget: connect.dropTarget(),
292
+ isOver: monitor.isOver()
293
+ };
294
+ }))(StyledChoice));
295
+
296
+ exports["default"] = _default;
297
+ //# sourceMappingURL=choice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/design/choices/choice.jsx"],"names":["log","canDrag","props","lockChoiceOrder","count","choice","categoryCount","correctResponseCount","Choice","content","onChange","allowMultiplePlacements","multiplePlacements","perChoice","classes","className","configuration","deleteFocusedEl","focusedEl","index","onDelete","connectDropTarget","connectDragSource","connectDragPreview","imageSupport","spellCheck","toolbarOpts","error","maxImageWidth","maxImageHeight","uploadSoundSupport","showRemoveAfterPlacing","isCheckboxShown","draggable","actions","dragHandle","dragDisabled","changeContent","errorText","changeCategoryCount","React","Component","PropTypes","string","object","isRequired","func","defaultImageMaxHeight","number","defaultImageMaxWidth","bool","shape","add","styles","theme","padding","justifyContent","minWidth","spacing","unit","overflow","cursor","fontSize","typography","color","palette","main","paddingBottom","StyledChoice","spec","beginDrag","out","id","endDrag","monitor","didDrop","item","getItem","categoryId","onRemoveChoice","specTarget","drop","rearrangeChoices","canDrop","uid","withUid","connect","dragSource","dragPreview","isDragging","dropTarget","isOver"],"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/pie-toolbox/config-ui';\nimport { DeleteButton } from '../buttons';\nimport DragHandle from '@material-ui/icons/DragHandle';\nimport { DragSource, DropTarget } from 'react-dnd';\nimport debug from 'debug';\nimport { uid } from '@pie-lib/pie-toolbox/drag';\nimport { multiplePlacements } from '../../utils';\nimport flow from 'lodash/flow';\n\nconst log = debug('@pie-element:categorize:configure:choice');\n\nconst canDrag = (props) => {\n if (props.lockChoiceOrder) {\n return true;\n }\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 allowMultiplePlacements: PropTypes.string,\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n configuration: PropTypes.object.isRequired,\n choice: PropTypes.object.isRequired,\n connectDropTarget: PropTypes.func,\n deleteFocusedEl: PropTypes.func,\n defaultImageMaxHeight: PropTypes.number,\n defaultImageMaxWidth: PropTypes.number,\n focusedEl: PropTypes.number,\n index: PropTypes.number,\n lockChoiceOrder: PropTypes.bool,\n maxImageHeight: PropTypes.object,\n maxImageWidth: PropTypes.object,\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 spellCheck: PropTypes.bool,\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 isCheckboxShown = (allowMultiplePlacements) => allowMultiplePlacements === multiplePlacements.perChoice;\n\n render() {\n const {\n allowMultiplePlacements,\n classes,\n className,\n configuration,\n choice,\n deleteFocusedEl,\n focusedEl,\n index,\n onDelete,\n connectDropTarget,\n connectDragSource,\n connectDragPreview,\n imageSupport,\n spellCheck,\n toolbarOpts,\n error,\n maxImageWidth,\n maxImageHeight,\n uploadSoundSupport,\n } = this.props;\n\n const showRemoveAfterPlacing = this.isCheckboxShown(allowMultiplePlacements);\n const draggable = canDrag(this.props);\n\n return (\n <Card className={classNames(classes.choice, className)}>\n <CardActions className={classes.actions}>\n {connectDragSource(\n connectDropTarget(\n <span className={classNames(classes.dragHandle, draggable === false && classes.dragDisabled)}>\n <DragHandle color={draggable ? 'primary' : 'disabled'} />\n </span>,\n ),\n )}\n </CardActions>\n {connectDragPreview(\n <span>\n <InputHeader\n imageSupport={imageSupport}\n focusedEl={focusedEl}\n deleteFocusedEl={deleteFocusedEl}\n index={index}\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 configuration={configuration}\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 {showRemoveAfterPlacing && (\n <Checkbox\n mini\n label={'Remove after placing'}\n checked={choice.categoryCount === 1}\n onChange={this.changeCategoryCount}\n />\n )}\n </CardActions>\n </Card>\n );\n }\n}\nconst styles = (theme) => ({\n actions: {\n padding: 0,\n justifyContent: 'space-between',\n },\n choice: {\n minWidth: '196px',\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: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingBottom: theme.spacing.unit,\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 index: props.index,\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\nexport const specTarget = {\n drop: (props, monitor) => {\n log('[drop] props: ', props);\n const item = monitor.getItem();\n props.rearrangeChoices(item.index, props.index);\n },\n canDrop: (props, monitor) => {\n const item = monitor.getItem();\n return props.choice.id !== item.id;\n },\n};\n\nexport default uid.withUid(\n flow(\n DragSource(\n ({ uid }) => uid,\n spec,\n (connect, monitor) => ({\n connectDragSource: connect.dragSource(),\n connectDragPreview: connect.dragPreview(),\n isDragging: monitor.isDragging(),\n }),\n ),\n DropTarget(\n ({ uid }) => uid,\n specTarget,\n (connect, monitor) => ({\n connectDropTarget: connect.dropTarget(),\n isOver: monitor.isOver(),\n }),\n ),\n )(StyledChoice),\n);\n"],"file":"choice.js"}
@@ -0,0 +1,114 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = exports.Config = void 0;
9
+
10
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
+
12
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
+
14
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
15
+
16
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
+
18
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
19
+
20
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
21
+
22
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
23
+
24
+ var _react = _interopRequireDefault(require("react"));
25
+
26
+ var _propTypes = _interopRequireDefault(require("prop-types"));
27
+
28
+ var _styles = require("@material-ui/core/styles");
29
+
30
+ var _classnames = _interopRequireDefault(require("classnames"));
31
+
32
+ var _TextField = _interopRequireDefault(require("@material-ui/core/TextField"));
33
+
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
+
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
+
38
+ var Config = /*#__PURE__*/function (_React$Component) {
39
+ (0, _inherits2["default"])(Config, _React$Component);
40
+
41
+ var _super = _createSuper(Config);
42
+
43
+ function Config() {
44
+ var _this;
45
+
46
+ (0, _classCallCheck2["default"])(this, Config);
47
+
48
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
49
+ args[_key] = arguments[_key];
50
+ }
51
+
52
+ _this = _super.call.apply(_super, [this].concat(args));
53
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeLabel", function (_ref) {
54
+ var target = _ref.target;
55
+
56
+ _this.props.onModelChanged({
57
+ choicesLabel: target.value
58
+ });
59
+ });
60
+ return _this;
61
+ }
62
+
63
+ (0, _createClass2["default"])(Config, [{
64
+ key: "render",
65
+ value: function render() {
66
+ var _this$props = this.props,
67
+ classes = _this$props.classes,
68
+ className = _this$props.className,
69
+ config = _this$props.config,
70
+ spellCheck = _this$props.spellCheck;
71
+ return /*#__PURE__*/_react["default"].createElement("div", {
72
+ className: (0, _classnames["default"])(classes.config, className)
73
+ }, /*#__PURE__*/_react["default"].createElement(_TextField["default"], {
74
+ className: classes.label,
75
+ InputLabelProps: {
76
+ shrink: true
77
+ },
78
+ variant: "outlined",
79
+ label: "Label",
80
+ value: config.choicesLabel,
81
+ onChange: this.changeLabel,
82
+ spellCheck: spellCheck
83
+ }));
84
+ }
85
+ }]);
86
+ return Config;
87
+ }(_react["default"].Component);
88
+
89
+ exports.Config = Config;
90
+ (0, _defineProperty2["default"])(Config, "propTypes", {
91
+ classes: _propTypes["default"].object.isRequired,
92
+ className: _propTypes["default"].string,
93
+ config: _propTypes["default"].object,
94
+ onModelChanged: _propTypes["default"].func,
95
+ spellCheck: _propTypes["default"].bool
96
+ });
97
+ (0, _defineProperty2["default"])(Config, "defaultProps", {});
98
+
99
+ var styles = function styles(theme) {
100
+ return {
101
+ config: {
102
+ paddingTop: theme.spacing.unit,
103
+ marginBottom: theme.spacing.unit
104
+ },
105
+ label: {
106
+ width: '100%'
107
+ }
108
+ };
109
+ };
110
+
111
+ var _default = (0, _styles.withStyles)(styles)(Config);
112
+
113
+ exports["default"] = _default;
114
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/design/choices/config.jsx"],"names":["Config","target","props","onModelChanged","choicesLabel","value","classes","className","config","spellCheck","label","shrink","changeLabel","React","Component","PropTypes","object","isRequired","string","func","bool","styles","theme","paddingTop","spacing","unit","marginBottom","width"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;IAEaA,M;;;;;;;;;;;;;;;oGAWG,gBAAgB;AAAA,UAAbC,MAAa,QAAbA,MAAa;;AAC5B,YAAKC,KAAL,CAAWC,cAAX,CAA0B;AAAEC,QAAAA,YAAY,EAAEH,MAAM,CAACI;AAAvB,OAA1B;AACD,K;;;;;;WAED,kBAAS;AACP,wBAAmD,KAAKH,KAAxD;AAAA,UAAQI,OAAR,eAAQA,OAAR;AAAA,UAAiBC,SAAjB,eAAiBA,SAAjB;AAAA,UAA4BC,MAA5B,eAA4BA,MAA5B;AAAA,UAAoCC,UAApC,eAAoCA,UAApC;AAEA,0BACE;AAAK,QAAA,SAAS,EAAE,4BAAWH,OAAO,CAACE,MAAnB,EAA2BD,SAA3B;AAAhB,sBACE,gCAAC,qBAAD;AACE,QAAA,SAAS,EAAED,OAAO,CAACI,KADrB;AAEE,QAAA,eAAe,EAAE;AACfC,UAAAA,MAAM,EAAE;AADO,SAFnB;AAKE,QAAA,OAAO,EAAC,UALV;AAME,QAAA,KAAK,EAAC,OANR;AAOE,QAAA,KAAK,EAAEH,MAAM,CAACJ,YAPhB;AAQE,QAAA,QAAQ,EAAE,KAAKQ,WARjB;AASE,QAAA,UAAU,EAAEH;AATd,QADF,CADF;AAeD;;;EAjCyBI,kBAAMC,S;;;iCAArBd,M,eACQ;AACjBM,EAAAA,OAAO,EAAES,sBAAUC,MAAV,CAAiBC,UADT;AAEjBV,EAAAA,SAAS,EAAEQ,sBAAUG,MAFJ;AAGjBV,EAAAA,MAAM,EAAEO,sBAAUC,MAHD;AAIjBb,EAAAA,cAAc,EAAEY,sBAAUI,IAJT;AAKjBV,EAAAA,UAAU,EAAEM,sBAAUK;AALL,C;iCADRpB,M,kBASW,E;;AA2BxB,IAAMqB,MAAM,GAAG,SAATA,MAAS,CAACC,KAAD;AAAA,SAAY;AACzBd,IAAAA,MAAM,EAAE;AACNe,MAAAA,UAAU,EAAED,KAAK,CAACE,OAAN,CAAcC,IADpB;AAENC,MAAAA,YAAY,EAAEJ,KAAK,CAACE,OAAN,CAAcC;AAFtB,KADiB;AAKzBf,IAAAA,KAAK,EAAE;AACLiB,MAAAA,KAAK,EAAE;AADF;AALkB,GAAZ;AAAA,CAAf;;eAUe,wBAAWN,MAAX,EAAmBrB,MAAnB,C","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport TextField from '@material-ui/core/TextField';\n\nexport class Config extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n config: PropTypes.object,\n onModelChanged: PropTypes.func,\n spellCheck: PropTypes.bool,\n };\n\n static defaultProps = {};\n\n changeLabel = ({ target }) => {\n this.props.onModelChanged({ choicesLabel: target.value });\n };\n\n render() {\n const { classes, className, config, spellCheck } = this.props;\n\n return (\n <div className={classNames(classes.config, className)}>\n <TextField\n className={classes.label}\n InputLabelProps={{\n shrink: true,\n }}\n variant=\"outlined\"\n label=\"Label\"\n value={config.choicesLabel}\n onChange={this.changeLabel}\n spellCheck={spellCheck}\n />\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n config: {\n paddingTop: theme.spacing.unit,\n marginBottom: theme.spacing.unit,\n },\n label: {\n width: '100%',\n },\n});\n\nexport default withStyles(styles)(Config);\n"],"file":"config.js"}