@pie-element/categorize 7.4.1-next.3 → 7.4.1-next.42
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/configure/lib/defaults.js +0 -1
- package/configure/lib/defaults.js.map +1 -1
- package/configure/lib/design/categories/alternateResponses.js +38 -14
- package/configure/lib/design/categories/alternateResponses.js.map +1 -1
- package/configure/lib/design/categories/category.js +16 -0
- package/configure/lib/design/categories/category.js.map +1 -1
- package/configure/lib/design/categories/choice-preview.js +15 -2
- package/configure/lib/design/categories/choice-preview.js.map +1 -1
- package/configure/lib/design/categories/droppable-placeholder.js +21 -2
- package/configure/lib/design/categories/droppable-placeholder.js.map +1 -1
- package/configure/lib/design/categories/index.js +83 -35
- package/configure/lib/design/categories/index.js.map +1 -1
- package/configure/lib/design/choices/choice.js +9 -0
- package/configure/lib/design/choices/choice.js.map +1 -1
- package/configure/lib/design/choices/index.js +21 -3
- package/configure/lib/design/choices/index.js.map +1 -1
- package/configure/lib/design/index.js.map +1 -1
- package/configure/lib/design/input-header.js +38 -15
- package/configure/lib/design/input-header.js.map +1 -1
- package/controller/lib/defaults.js +0 -1
- package/controller/lib/defaults.js.map +1 -1
- package/controller/lib/index.js +2 -3
- package/controller/lib/index.js.map +1 -1
- package/docs/config-schema.json.md +1 -1
- package/docs/pie-schema.json +0 -5
- package/docs/pie-schema.json.md +1 -6
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/defaults.js"],"names":["model","choices","choicesPosition","choicesLabel","lockChoiceOrder","
|
|
1
|
+
{"version":3,"sources":["../src/defaults.js"],"names":["model","choices","choicesPosition","choicesLabel","lockChoiceOrder","allowMultiplePlacementsEnabled","multiplePlacements","enabled","categoriesPerRow","categories","alternates","correctResponse","rowLabels","partialScoring","feedbackEnabled","rationaleEnabled","promptEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","toolbarEditorPosition","configuration","spellCheck","label","settings","feedback","allowMultiplePlacements","prompt","rationale","scoringType","studentInstructions","teacherInstructions","maxImageWidth","rowLabel","categoryLabel","maxImageHeight","withRubric","minCategoriesPerRow"],"mappings":"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","sourcesContent":["import { multiplePlacements } from './utils';\n\nexport default {\n model: {\n choices: [],\n choicesPosition: 'below',\n choicesLabel: '',\n lockChoiceOrder: true,\n allowMultiplePlacementsEnabled: multiplePlacements.enabled,\n categoriesPerRow: 2,\n categories: [],\n alternates: [],\n correctResponse: [],\n rowLabels: [''],\n partialScoring: true,\n feedbackEnabled: true,\n rationaleEnabled: true,\n promptEnabled: true,\n teacherInstructionsEnabled: true,\n studentInstructionsEnabled: true,\n toolbarEditorPosition: 'bottom',\n },\n configuration: {\n spellCheck: {\n label: 'Spellcheck',\n settings:false,\n enabled:true\n },\n feedback: {\n settings: true,\n label: 'Feedback',\n enabled: true\n },\n lockChoiceOrder: {\n settings: true,\n label: 'Lock Choice Order',\n },\n choicesPosition: {\n settings: true,\n label: 'Choices Position',\n },\n allowMultiplePlacements: {\n settings: true,\n label: 'Allow Multiple Placements'\n },\n categoriesPerRow: {\n settings: true,\n label: 'Categories per row'\n },\n partialScoring: {\n settings: false,\n label: 'Allow Partial Scoring',\n },\n prompt: {\n settings: true,\n label: 'Prompt'\n },\n rationale: {\n settings: true,\n label: 'Rationale'\n },\n scoringType: {\n settings: false,\n label: 'Scoring Type',\n },\n studentInstructions: {\n settings: false,\n label: 'Student Instructions'\n },\n teacherInstructions: {\n settings: true,\n label: 'Teacher Instructions'\n },\n toolbarEditorPosition:{\n settings: false,\n label: 'Toolbar Editor Position'\n },\n maxImageWidth: {\n teacherInstructions: 300,\n prompt: 300,\n rationale: 300,\n rowLabel: 200,\n categoryLabel: 260,\n choices: 240\n },\n maxImageHeight: {\n teacherInstructions: 300,\n prompt: 300,\n rationale: 300,\n rowLabel: 100,\n categoryLabel: 100,\n choices: 150\n },\n withRubric: {\n settings: false,\n label: 'Add Rubric'\n },\n minCategoriesPerRow: 1,\n }\n};\n"],"file":"defaults.js"}
|
|
@@ -31,6 +31,8 @@ var _classnames = _interopRequireDefault(require("classnames"));
|
|
|
31
31
|
|
|
32
32
|
var _category = _interopRequireDefault(require("./category"));
|
|
33
33
|
|
|
34
|
+
var _categorize = require("@pie-lib/categorize");
|
|
35
|
+
|
|
34
36
|
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
37
|
|
|
36
38
|
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; } }
|
|
@@ -101,11 +103,29 @@ var AlternateResponses = /*#__PURE__*/function (_React$Component) {
|
|
|
101
103
|
correctResponse: correctResponse
|
|
102
104
|
});
|
|
103
105
|
});
|
|
104
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "
|
|
106
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "moveChoice", function (choiceId, from, to, choiceIndex, alternateIndex) {
|
|
105
107
|
var _this$props2 = _this.props,
|
|
106
|
-
|
|
107
|
-
correctResponse = _this$props2.model.correctResponse,
|
|
108
|
+
model = _this$props2.model,
|
|
108
109
|
onModelChanged = _this$props2.onModelChanged;
|
|
110
|
+
|
|
111
|
+
var _ref = model || {},
|
|
112
|
+
choices = _ref.choices,
|
|
113
|
+
_ref$correctResponse = _ref.correctResponse,
|
|
114
|
+
correctResponse = _ref$correctResponse === void 0 ? [] : _ref$correctResponse;
|
|
115
|
+
|
|
116
|
+
var choice = (choices || []).find(function (choice) {
|
|
117
|
+
return choice.id === choiceId;
|
|
118
|
+
});
|
|
119
|
+
correctResponse = (0, _categorize.moveChoiceToAlternate)(choiceId, from, to, choiceIndex, correctResponse, alternateIndex, choice === null || choice === void 0 ? void 0 : choice.categoryCount);
|
|
120
|
+
onModelChanged({
|
|
121
|
+
correctResponse: correctResponse
|
|
122
|
+
});
|
|
123
|
+
});
|
|
124
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "deleteChoiceFromCategory", function (category, choice) {
|
|
125
|
+
var _this$props3 = _this.props,
|
|
126
|
+
altIndex = _this$props3.altIndex,
|
|
127
|
+
correctResponse = _this$props3.model.correctResponse,
|
|
128
|
+
onModelChanged = _this$props3.onModelChanged;
|
|
109
129
|
correctResponse.forEach(function (a) {
|
|
110
130
|
if (a.category === category.id) {
|
|
111
131
|
if (a.alternateResponses[altIndex]) {
|
|
@@ -129,20 +149,20 @@ var AlternateResponses = /*#__PURE__*/function (_React$Component) {
|
|
|
129
149
|
value: function render() {
|
|
130
150
|
var _this2 = this;
|
|
131
151
|
|
|
132
|
-
var _this$
|
|
133
|
-
altIndex = _this$
|
|
134
|
-
model = _this$
|
|
135
|
-
classes = _this$
|
|
136
|
-
className = _this$
|
|
137
|
-
categories = _this$
|
|
138
|
-
imageSupport = _this$
|
|
139
|
-
spellCheck = _this$
|
|
140
|
-
uploadSoundSupport = _this$
|
|
152
|
+
var _this$props4 = this.props,
|
|
153
|
+
altIndex = _this$props4.altIndex,
|
|
154
|
+
model = _this$props4.model,
|
|
155
|
+
classes = _this$props4.classes,
|
|
156
|
+
className = _this$props4.className,
|
|
157
|
+
categories = _this$props4.categories,
|
|
158
|
+
imageSupport = _this$props4.imageSupport,
|
|
159
|
+
spellCheck = _this$props4.spellCheck,
|
|
160
|
+
uploadSoundSupport = _this$props4.uploadSoundSupport;
|
|
141
161
|
var categoriesPerRow = model.categoriesPerRow,
|
|
142
162
|
errors = model.errors;
|
|
143
163
|
|
|
144
|
-
var
|
|
145
|
-
duplicateAlternate =
|
|
164
|
+
var _ref2 = errors || {},
|
|
165
|
+
duplicateAlternate = _ref2.duplicateAlternate;
|
|
146
166
|
|
|
147
167
|
var holderStyle = {
|
|
148
168
|
gridTemplateColumns: "repeat(".concat(categoriesPerRow, ", 1fr)")
|
|
@@ -156,6 +176,7 @@ var AlternateResponses = /*#__PURE__*/function (_React$Component) {
|
|
|
156
176
|
}, categories.map(function (category, index) {
|
|
157
177
|
return /*#__PURE__*/_react["default"].createElement(_category["default"], {
|
|
158
178
|
key: index,
|
|
179
|
+
alternateResponseIndex: altIndex,
|
|
159
180
|
imageSupport: imageSupport,
|
|
160
181
|
isDuplicated: isDuplicated && duplicateAlternate.category === category.id,
|
|
161
182
|
category: category,
|
|
@@ -164,6 +185,9 @@ var AlternateResponses = /*#__PURE__*/function (_React$Component) {
|
|
|
164
185
|
onDeleteChoice: function onDeleteChoice(choice, choiceIndex) {
|
|
165
186
|
return _this2.deleteChoiceFromCategory(category, choice, choiceIndex);
|
|
166
187
|
},
|
|
188
|
+
onMoveChoice: function onMoveChoice(choiceId, from, to, choiceIndex, alternateIndex) {
|
|
189
|
+
return _this2.moveChoice(choiceId, from, to, choiceIndex, alternateIndex);
|
|
190
|
+
},
|
|
167
191
|
uploadSoundSupport: uploadSoundSupport
|
|
168
192
|
});
|
|
169
193
|
})));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/design/categories/alternateResponses.jsx"],"names":["styles","theme","categories","marginBottom","spacing","unit","categoriesHolder","display","gridRowGap","gridColumnGap","row","gridTemplateColumns","alignItems","width","marginTop","rowLabel","gridColumn","rowLabelHolder","AlternateResponses","choice","categoryId","props","altIndex","correctResponse","model","onModelChanged","forEach","a","category","alternateResponses","push","id","filter","altId","classes","className","imageSupport","spellCheck","uploadSoundSupport","categoriesPerRow","errors","duplicateAlternate","holderStyle","isDuplicated","index","map","addChoiceToCategory","choiceIndex","deleteChoiceFromCategory","React","Component","PropTypes","number","isRequired","shape","add","func","object","string","array"],"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 Category from './category';\n\nconst styles = (theme) => ({\n categories: {\n marginBottom: theme.spacing.unit,\n },\n categoriesHolder: {\n display: 'grid',\n gridRowGap: `${theme.spacing.unit}px`,\n gridColumnGap: `${theme.spacing.unit}px`,\n },\n row: {\n display: 'grid',\n gridTemplateColumns: 'repeat(2, 1fr)',\n gridColumnGap: `${theme.spacing.unit}px`,\n alignItems: 'baseline',\n width: '100%',\n marginTop: theme.spacing.unit,\n marginBottom: 2 * theme.spacing.unit,\n },\n rowLabel: {\n gridColumn: '1/3',\n },\n rowLabelHolder: {\n width: '100%',\n },\n});\n\nexport class AlternateResponses extends React.Component {\n static propTypes = {\n altIndex: PropTypes.number.isRequired,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n categories: PropTypes.array,\n onModelChanged: PropTypes.func,\n model: PropTypes.object.isRequired,\n uploadSoundSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n };\n\n addChoiceToCategory = (choice, categoryId) => {\n const {\n altIndex,\n model: { correctResponse },\n onModelChanged,\n } = this.props;\n\n correctResponse.forEach((a) => {\n if (a.category === categoryId) {\n a.alternateResponses = a.alternateResponses || [];\n\n if (!a.alternateResponses[altIndex]) {\n a.alternateResponses[altIndex] = [];\n }\n\n a.alternateResponses[altIndex].push(choice.id);\n\n return a;\n }\n\n return a;\n });\n\n onModelChanged({ correctResponse });\n };\n\n deleteChoiceFromCategory = (category, choice) => {\n const {\n altIndex,\n model: { correctResponse },\n onModelChanged,\n } = this.props;\n\n correctResponse.forEach((a) => {\n if (a.category === category.id) {\n if (a.alternateResponses[altIndex]) {\n a.alternateResponses[altIndex] = a.alternateResponses[altIndex].filter((altId) => altId !== choice.id);\n }\n }\n\n return a;\n });\n\n onModelChanged({ correctResponse });\n };\n\n render() {\n const {\n altIndex,\n model,\n classes,\n className,\n categories,\n imageSupport,\n spellCheck,\n uploadSoundSupport,\n } = this.props;\n const { categoriesPerRow, errors } = model;\n const { duplicateAlternate } = errors || {};\n\n const holderStyle = {\n gridTemplateColumns: `repeat(${categoriesPerRow}, 1fr)`,\n };\n const isDuplicated = duplicateAlternate ? duplicateAlternate.index === altIndex : false;\n\n return (\n <div className={classNames(classes.categories, className)}>\n <div className={classes.categoriesHolder} style={holderStyle}>\n {categories.map((category, index) => (\n <Category\n key={index}\n imageSupport={imageSupport}\n isDuplicated={isDuplicated && duplicateAlternate.category === category.id}\n category={category}\n spellCheck={spellCheck}\n onAddChoice={this.addChoiceToCategory}\n onDeleteChoice={(choice, choiceIndex) => this.deleteChoiceFromCategory(category, choice, choiceIndex)}\n uploadSoundSupport={uploadSoundSupport}\n />\n ))}\n </div>\n </div>\n );\n }\n}\n\nexport default withStyles(styles)(AlternateResponses);\n"],"file":"alternateResponses.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/design/categories/alternateResponses.jsx"],"names":["styles","theme","categories","marginBottom","spacing","unit","categoriesHolder","display","gridRowGap","gridColumnGap","row","gridTemplateColumns","alignItems","width","marginTop","rowLabel","gridColumn","rowLabelHolder","AlternateResponses","choice","categoryId","props","altIndex","correctResponse","model","onModelChanged","forEach","a","category","alternateResponses","push","id","choiceId","from","to","choiceIndex","alternateIndex","choices","find","categoryCount","filter","altId","classes","className","imageSupport","spellCheck","uploadSoundSupport","categoriesPerRow","errors","duplicateAlternate","holderStyle","isDuplicated","index","map","addChoiceToCategory","deleteChoiceFromCategory","moveChoice","React","Component","PropTypes","number","isRequired","shape","add","func","object","string","array"],"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 Category from './category';\nimport { moveChoiceToAlternate } from '@pie-lib/categorize';\n\nconst styles = (theme) => ({\n categories: {\n marginBottom: theme.spacing.unit,\n },\n categoriesHolder: {\n display: 'grid',\n gridRowGap: `${theme.spacing.unit}px`,\n gridColumnGap: `${theme.spacing.unit}px`,\n },\n row: {\n display: 'grid',\n gridTemplateColumns: 'repeat(2, 1fr)',\n gridColumnGap: `${theme.spacing.unit}px`,\n alignItems: 'baseline',\n width: '100%',\n marginTop: theme.spacing.unit,\n marginBottom: 2 * theme.spacing.unit,\n },\n rowLabel: {\n gridColumn: '1/3',\n },\n rowLabelHolder: {\n width: '100%',\n },\n});\n\nexport class AlternateResponses extends React.Component {\n static propTypes = {\n altIndex: PropTypes.number.isRequired,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n categories: PropTypes.array,\n onModelChanged: PropTypes.func,\n model: PropTypes.object.isRequired,\n uploadSoundSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n };\n\n addChoiceToCategory = (choice, categoryId) => {\n const {\n altIndex,\n model: { correctResponse },\n onModelChanged,\n } = this.props;\n\n correctResponse.forEach((a) => {\n if (a.category === categoryId) {\n a.alternateResponses = a.alternateResponses || [];\n\n if (!a.alternateResponses[altIndex]) {\n a.alternateResponses[altIndex] = [];\n }\n\n a.alternateResponses[altIndex].push(choice.id);\n\n return a;\n }\n\n return a;\n });\n\n onModelChanged({ correctResponse });\n };\n\n moveChoice = (choiceId, from, to, choiceIndex, alternateIndex) => {\n const { model, onModelChanged } = this.props;\n let { choices, correctResponse = [] } = model || {};\n const choice = (choices || []).find((choice) => choice.id === choiceId);\n correctResponse = moveChoiceToAlternate(\n choiceId,\n from,\n to,\n choiceIndex,\n correctResponse,\n alternateIndex,\n choice?.categoryCount,\n );\n\n onModelChanged({ correctResponse });\n };\n\n deleteChoiceFromCategory = (category, choice) => {\n const {\n altIndex,\n model: { correctResponse },\n onModelChanged,\n } = this.props;\n\n correctResponse.forEach((a) => {\n if (a.category === category.id) {\n if (a.alternateResponses[altIndex]) {\n a.alternateResponses[altIndex] = a.alternateResponses[altIndex].filter((altId) => altId !== choice.id);\n }\n }\n\n return a;\n });\n\n onModelChanged({ correctResponse });\n };\n\n render() {\n const { altIndex, model, classes, className, categories, imageSupport, spellCheck, uploadSoundSupport } =\n this.props;\n const { categoriesPerRow, errors } = model;\n const { duplicateAlternate } = errors || {};\n\n const holderStyle = {\n gridTemplateColumns: `repeat(${categoriesPerRow}, 1fr)`,\n };\n const isDuplicated = duplicateAlternate ? duplicateAlternate.index === altIndex : false;\n\n return (\n <div className={classNames(classes.categories, className)}>\n <div className={classes.categoriesHolder} style={holderStyle}>\n {categories.map((category, index) => (\n <Category\n key={index}\n alternateResponseIndex={altIndex}\n imageSupport={imageSupport}\n isDuplicated={isDuplicated && duplicateAlternate.category === category.id}\n category={category}\n spellCheck={spellCheck}\n onAddChoice={this.addChoiceToCategory}\n onDeleteChoice={(choice, choiceIndex) => this.deleteChoiceFromCategory(category, choice, choiceIndex)}\n onMoveChoice={(choiceId, from, to, choiceIndex, alternateIndex) =>\n this.moveChoice(choiceId, from, to, choiceIndex, alternateIndex)\n }\n uploadSoundSupport={uploadSoundSupport}\n />\n ))}\n </div>\n </div>\n );\n }\n}\n\nexport default withStyles(styles)(AlternateResponses);\n"],"file":"alternateResponses.js"}
|
|
@@ -72,15 +72,20 @@ var Category = /*#__PURE__*/function (_React$Component) {
|
|
|
72
72
|
key: "render",
|
|
73
73
|
value: function render() {
|
|
74
74
|
var _this$props2 = this.props,
|
|
75
|
+
alternateResponseIndex = _this$props2.alternateResponseIndex,
|
|
75
76
|
category = _this$props2.category,
|
|
76
77
|
classes = _this$props2.classes,
|
|
77
78
|
className = _this$props2.className,
|
|
79
|
+
deleteFocusedEl = _this$props2.deleteFocusedEl,
|
|
80
|
+
focusedEl = _this$props2.focusedEl,
|
|
81
|
+
index = _this$props2.index,
|
|
78
82
|
error = _this$props2.error,
|
|
79
83
|
isDuplicated = _this$props2.isDuplicated,
|
|
80
84
|
onChange = _this$props2.onChange,
|
|
81
85
|
onDelete = _this$props2.onDelete,
|
|
82
86
|
onDeleteChoice = _this$props2.onDeleteChoice,
|
|
83
87
|
onAddChoice = _this$props2.onAddChoice,
|
|
88
|
+
onMoveChoice = _this$props2.onMoveChoice,
|
|
84
89
|
imageSupport = _this$props2.imageSupport,
|
|
85
90
|
spellCheck = _this$props2.spellCheck,
|
|
86
91
|
toolbarOpts = _this$props2.toolbarOpts,
|
|
@@ -91,6 +96,9 @@ var Category = /*#__PURE__*/function (_React$Component) {
|
|
|
91
96
|
className: (0, _classnames["default"])(classes.category, className, (0, _defineProperty2["default"])({}, classes.duplicateError, isDuplicated))
|
|
92
97
|
}, onChange && /*#__PURE__*/_react["default"].createElement("span", null, /*#__PURE__*/_react["default"].createElement(_inputHeader["default"], {
|
|
93
98
|
label: category.label,
|
|
99
|
+
focusedEl: focusedEl,
|
|
100
|
+
deleteFocusedEl: deleteFocusedEl,
|
|
101
|
+
index: index,
|
|
94
102
|
error: error,
|
|
95
103
|
onChange: this.changeLabel,
|
|
96
104
|
onDelete: onDelete,
|
|
@@ -104,9 +112,12 @@ var Category = /*#__PURE__*/function (_React$Component) {
|
|
|
104
112
|
className: classes.errorText
|
|
105
113
|
}, error)), /*#__PURE__*/_react["default"].createElement(_droppablePlaceholder["default"], {
|
|
106
114
|
className: classes.placeHolder,
|
|
115
|
+
alternateResponseIndex: alternateResponseIndex,
|
|
116
|
+
category: category,
|
|
107
117
|
choices: category.choices,
|
|
108
118
|
onDeleteChoice: onDeleteChoice,
|
|
109
119
|
onDropChoice: onAddChoice,
|
|
120
|
+
onMoveChoice: onMoveChoice,
|
|
110
121
|
categoryId: category.id
|
|
111
122
|
}), onDelete && /*#__PURE__*/_react["default"].createElement(_CardActions["default"], {
|
|
112
123
|
className: classes.actions
|
|
@@ -121,15 +132,20 @@ var Category = /*#__PURE__*/function (_React$Component) {
|
|
|
121
132
|
|
|
122
133
|
exports.Category = Category;
|
|
123
134
|
(0, _defineProperty2["default"])(Category, "propTypes", {
|
|
135
|
+
alternateResponseIndex: _propTypes["default"].number,
|
|
124
136
|
classes: _propTypes["default"].object.isRequired,
|
|
125
137
|
className: _propTypes["default"].string,
|
|
126
138
|
category: _propTypes["default"].object.isRequired,
|
|
139
|
+
deleteFocusedEl: _propTypes["default"].func,
|
|
140
|
+
focusedEl: _propTypes["default"].number,
|
|
141
|
+
index: _propTypes["default"].number,
|
|
127
142
|
error: _propTypes["default"].string,
|
|
128
143
|
isDuplicated: _propTypes["default"].bool,
|
|
129
144
|
onChange: _propTypes["default"].func,
|
|
130
145
|
onDelete: _propTypes["default"].func,
|
|
131
146
|
onDeleteChoice: _propTypes["default"].func,
|
|
132
147
|
onAddChoice: _propTypes["default"].func,
|
|
148
|
+
onMoveChoice: _propTypes["default"].func,
|
|
133
149
|
imageSupport: _propTypes["default"].shape({
|
|
134
150
|
add: _propTypes["default"].func.isRequired,
|
|
135
151
|
"delete": _propTypes["default"].func.isRequired
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/design/categories/category.jsx"],"names":["Category","l","props","category","onChange","label","classes","className","error","isDuplicated","onDelete","onDeleteChoice","onAddChoice","imageSupport","spellCheck","toolbarOpts","maxImageWidth","maxImageHeight","uploadSoundSupport","duplicateError","changeLabel","errorText","placeHolder","choices","id","actions","React","Component","PropTypes","object","isRequired","string","
|
|
1
|
+
{"version":3,"sources":["../../../src/design/categories/category.jsx"],"names":["Category","l","props","category","onChange","label","alternateResponseIndex","classes","className","deleteFocusedEl","focusedEl","index","error","isDuplicated","onDelete","onDeleteChoice","onAddChoice","onMoveChoice","imageSupport","spellCheck","toolbarOpts","maxImageWidth","maxImageHeight","uploadSoundSupport","duplicateError","changeLabel","errorText","placeHolder","choices","id","actions","React","Component","PropTypes","number","object","isRequired","string","func","bool","shape","add","styles","theme","minHeight","deleteButton","margin","padding","paddingBottom","paddingTop","spacing","unit","iconButtonRoot","width","height","header","display","justifyContent","overflow","border","fontSize","color","editor","flex"],"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 InputHeader from '../input-header';\nimport CardActions from '@material-ui/core/CardActions';\nimport { DeleteButton } from '../buttons';\n\nimport PlaceHolder from './droppable-placeholder';\n\nexport class Category extends React.Component {\n static propTypes = {\n alternateResponseIndex: PropTypes.number,\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n category: PropTypes.object.isRequired,\n deleteFocusedEl: PropTypes.func,\n focusedEl: PropTypes.number,\n index: PropTypes.number,\n error: PropTypes.string,\n isDuplicated: PropTypes.bool,\n onChange: PropTypes.func,\n onDelete: PropTypes.func,\n onDeleteChoice: PropTypes.func,\n onAddChoice: PropTypes.func,\n onMoveChoice: PropTypes.func,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n toolbarOpts: PropTypes.object,\n uploadSoundSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n };\n\n static defaultProps = {};\n\n changeLabel = (l) => {\n const { category, onChange } = this.props;\n category.label = l;\n onChange(category);\n };\n\n render() {\n const {\n alternateResponseIndex,\n category,\n classes,\n className,\n deleteFocusedEl,\n focusedEl,\n index,\n error,\n isDuplicated,\n onChange,\n onDelete,\n onDeleteChoice,\n onAddChoice,\n onMoveChoice,\n imageSupport,\n spellCheck,\n toolbarOpts,\n maxImageWidth,\n maxImageHeight,\n uploadSoundSupport,\n } = this.props;\n return (\n <Card className={classNames(classes.category, className, {\n [classes.duplicateError]: isDuplicated\n })}>\n {onChange && (\n <span>\n <InputHeader\n label={category.label}\n focusedEl={focusedEl}\n deleteFocusedEl={deleteFocusedEl}\n index={index}\n error={error}\n onChange={this.changeLabel}\n onDelete={onDelete}\n imageSupport={imageSupport}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheck}\n maxImageWidth={maxImageWidth}\n maxImageHeight={maxImageHeight}\n uploadSoundSupport={uploadSoundSupport}\n />\n {error && <div className={classes.errorText}>{error}</div>}\n </span>\n )\n }\n <PlaceHolder\n className={classes.placeHolder}\n alternateResponseIndex={alternateResponseIndex}\n category={category}\n choices={category.choices}\n onDeleteChoice={onDeleteChoice}\n onDropChoice={onAddChoice}\n onMoveChoice={onMoveChoice}\n categoryId={category.id}\n />\n {onDelete && (\n <CardActions className={classes.actions}>\n <DeleteButton label={'delete'} onClick={onDelete} />\n </CardActions>\n )}\n </Card>\n );\n }\n}\nconst styles = (theme) => ({\n placeHolder: {\n minHeight: '100px',\n },\n deleteButton: {\n margin: 0,\n },\n actions: {\n padding: 0,\n paddingBottom: 0,\n paddingTop: theme.spacing.unit,\n },\n iconButtonRoot: {\n width: 'auto',\n height: 'auto',\n },\n header: {\n display: 'flex',\n justifyContent: 'space-between',\n },\n category: {\n padding: theme.spacing.unit,\n overflow: 'visible',\n },\n duplicateError: {\n border: '1px solid red',\n },\n errorText: {\n fontSize: '11px',\n color: 'red',\n paddingBottom: '5px'\n },\n editor: {\n flex: '1',\n paddingBottom: theme.spacing.unit * 2,\n },\n});\nexport default withStyles(styles)(Category);\n"],"file":"category.js"}
|
|
@@ -68,13 +68,26 @@ var ChoicePreview = /*#__PURE__*/function (_React$Component) {
|
|
|
68
68
|
(0, _createClass2["default"])(ChoicePreview, [{
|
|
69
69
|
key: "render",
|
|
70
70
|
value: function render() {
|
|
71
|
+
var _this2 = this;
|
|
72
|
+
|
|
71
73
|
var _this$props2 = this.props,
|
|
74
|
+
alternateResponseIndex = _this$props2.alternateResponseIndex,
|
|
75
|
+
category = _this$props2.category,
|
|
72
76
|
classes = _this$props2.classes,
|
|
73
77
|
className = _this$props2.className,
|
|
74
|
-
choice = _this$props2.choice
|
|
78
|
+
choice = _this$props2.choice,
|
|
79
|
+
choiceIndex = _this$props2.choiceIndex;
|
|
75
80
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
76
81
|
className: (0, _classnames["default"])(classes.choicePreview, className)
|
|
77
|
-
}, choice ? /*#__PURE__*/_react["default"].createElement(_drag.Choice,
|
|
82
|
+
}, choice ? /*#__PURE__*/_react["default"].createElement(_drag.Choice, {
|
|
83
|
+
alternateResponseIndex: alternateResponseIndex,
|
|
84
|
+
category: category,
|
|
85
|
+
choice: choice,
|
|
86
|
+
choiceIndex: choiceIndex,
|
|
87
|
+
onRemoveChoice: function onRemoveChoice() {
|
|
88
|
+
return _this2["delete"]();
|
|
89
|
+
}
|
|
90
|
+
}, /*#__PURE__*/_react["default"].createElement(_renderUi.HtmlAndMath, {
|
|
78
91
|
html: choice === null || choice === void 0 ? void 0 : choice.content
|
|
79
92
|
}), /*#__PURE__*/_react["default"].createElement(_IconButton["default"], {
|
|
80
93
|
color: "secondary",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/design/categories/choice-preview.jsx"],"names":["ChoicePreview","props","onDelete","choice","classes","className","choicePreview","content","React","Component","PropTypes","object","isRequired","string","func","styles","position","right","top"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;IAEaA,a;;;;;;;;;;;;;;;+FASF,YAAM;AACb,wBAA6B,MAAKC,KAAlC;AAAA,UAAQC,QAAR,eAAQA,QAAR;AAAA,UAAkBC,MAAlB,eAAkBA,MAAlB;AACAD,MAAAA,QAAQ,CAACC,MAAD,CAAR;AACD,K;;;;;;WAED,kBAAS;AACP,
|
|
1
|
+
{"version":3,"sources":["../../../src/design/categories/choice-preview.jsx"],"names":["ChoicePreview","props","onDelete","choice","alternateResponseIndex","category","classes","className","choiceIndex","choicePreview","content","React","Component","PropTypes","object","isRequired","string","func","styles","position","right","top"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;IAEaA,a;;;;;;;;;;;;;;;+FASF,YAAM;AACb,wBAA6B,MAAKC,KAAlC;AAAA,UAAQC,QAAR,eAAQA,QAAR;AAAA,UAAkBC,MAAlB,eAAkBA,MAAlB;AACAD,MAAAA,QAAQ,CAACC,MAAD,CAAR;AACD,K;;;;;;WAED,kBAAS;AAAA;;AACP,yBAAsF,KAAKF,KAA3F;AAAA,UAAQG,sBAAR,gBAAQA,sBAAR;AAAA,UAAgCC,QAAhC,gBAAgCA,QAAhC;AAAA,UAA0CC,OAA1C,gBAA0CA,OAA1C;AAAA,UAAmDC,SAAnD,gBAAmDA,SAAnD;AAAA,UAA8DJ,MAA9D,gBAA8DA,MAA9D;AAAA,UAAsEK,WAAtE,gBAAsEA,WAAtE;AACA,0BACE;AAAK,QAAA,SAAS,EAAE,4BAAWF,OAAO,CAACG,aAAnB,EAAkCF,SAAlC;AAAhB,SACGJ,MAAM,gBACL,gCAAC,YAAD;AAAQ,QAAA,sBAAsB,EAAEC,sBAAhC;AAAwD,QAAA,QAAQ,EAAEC,QAAlE;AAA4E,QAAA,MAAM,EAAEF,MAApF;AAA4F,QAAA,WAAW,EAAEK,WAAzG;AAAsH,QAAA,cAAc,EAAE;AAAA,iBAAM,MAAI,UAAJ,EAAN;AAAA;AAAtI,sBACE,gCAAC,qBAAD;AAAa,QAAA,IAAI,EAAEL,MAAF,aAAEA,MAAF,uBAAEA,MAAM,CAAEO;AAA3B,QADF,eAEE,gCAAC,sBAAD;AAAY,QAAA,KAAK,EAAC,WAAlB;AAA8B,sBAAW,QAAzC;AAAkD,QAAA,SAAS,EAAEJ,OAAO,UAApE;AAA6E,QAAA,OAAO,EAAE;AAAtF,sBACE,gCAAC,kBAAD,OADF,CAFF,CADK,GAOH,IARN,CADF;AAYD;;;EA5BgCK,kBAAMC,S;;;iCAA5BZ,a,eACQ;AACjBM,EAAAA,OAAO,EAAEO,sBAAUC,MAAV,CAAiBC,UADT;AAEjBR,EAAAA,SAAS,EAAEM,sBAAUG,MAFJ;AAGjBb,EAAAA,MAAM,EAAEU,sBAAUC,MAAV,CAAiBC,UAHR;AAIjBb,EAAAA,QAAQ,EAAEW,sBAAUI,IAAV,CAAeF;AAJR,C;iCADRf,a,kBAOW,E;;AAuBxB,IAAMkB,MAAM,GAAG,SAATA,MAAS;AAAA,SAAO;AACpBT,IAAAA,aAAa,EAAE;AACbU,MAAAA,QAAQ,EAAE;AADG,KADK;AAIpB,cAAQ;AACNA,MAAAA,QAAQ,EAAE,UADJ;AAENC,MAAAA,KAAK,EAAE,CAFD;AAGNC,MAAAA,GAAG,EAAE;AAHC;AAJY,GAAP;AAAA,CAAf;;eAUe,wBAAWH,MAAX,EAAmBlB,aAAnB,C","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport { Choice } from '@pie-lib/drag';\nimport IconButton from '@material-ui/core/IconButton';\nimport Delete from '@material-ui/icons/Delete';\nimport { HtmlAndMath } from '@pie-lib/render-ui';\n\nexport class ChoicePreview extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n choice: PropTypes.object.isRequired,\n onDelete: PropTypes.func.isRequired,\n };\n static defaultProps = {};\n\n delete = () => {\n const { onDelete, choice } = this.props;\n onDelete(choice);\n };\n\n render() {\n const { alternateResponseIndex, category, classes, className, choice, choiceIndex } = this.props;\n return (\n <div className={classNames(classes.choicePreview, className)}>\n {choice ? (\n <Choice alternateResponseIndex={alternateResponseIndex} category={category} choice={choice} choiceIndex={choiceIndex} onRemoveChoice={() => this.delete()}>\n <HtmlAndMath html={choice?.content} />\n <IconButton color=\"secondary\" aria-label=\"delete\" className={classes.delete} onClick={this.delete}>\n <Delete />\n </IconButton>\n </Choice>\n ) : null}\n </div>\n );\n }\n}\nconst styles = () => ({\n choicePreview: {\n position: 'relative',\n },\n delete: {\n position: 'absolute',\n right: 0,\n top: 0,\n },\n});\nexport default withStyles(styles)(ChoicePreview);\n"],"file":"choice-preview.js"}
|
|
@@ -59,12 +59,17 @@ var Helper = (0, _styles.withStyles)(function () {
|
|
|
59
59
|
});
|
|
60
60
|
|
|
61
61
|
var Previews = function Previews(_ref2) {
|
|
62
|
-
var
|
|
62
|
+
var alternateResponseIndex = _ref2.alternateResponseIndex,
|
|
63
|
+
category = _ref2.category,
|
|
64
|
+
choices = _ref2.choices,
|
|
63
65
|
onDeleteChoice = _ref2.onDeleteChoice;
|
|
64
66
|
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, choices.map(function (c, index) {
|
|
65
67
|
return c && /*#__PURE__*/_react["default"].createElement(_choicePreview["default"], {
|
|
68
|
+
alternateResponseIndex: alternateResponseIndex,
|
|
69
|
+
category: category,
|
|
66
70
|
choice: c,
|
|
67
71
|
key: index,
|
|
72
|
+
choiceIndex: index,
|
|
68
73
|
onDelete: function onDelete(choice) {
|
|
69
74
|
return onDeleteChoice(choice, index);
|
|
70
75
|
}
|
|
@@ -73,6 +78,8 @@ var Previews = function Previews(_ref2) {
|
|
|
73
78
|
};
|
|
74
79
|
|
|
75
80
|
Previews.propTypes = {
|
|
81
|
+
alternateResponseIndex: _propTypes["default"].number,
|
|
82
|
+
category: _propTypes["default"].object,
|
|
76
83
|
choices: _propTypes["default"].array,
|
|
77
84
|
onDeleteChoice: _propTypes["default"].func
|
|
78
85
|
};
|
|
@@ -91,7 +98,9 @@ var DroppablePlaceHolder = /*#__PURE__*/function (_React$Component) {
|
|
|
91
98
|
key: "render",
|
|
92
99
|
value: function render() {
|
|
93
100
|
var _this$props = this.props,
|
|
101
|
+
alternateResponseIndex = _this$props.alternateResponseIndex,
|
|
94
102
|
isOver = _this$props.isOver,
|
|
103
|
+
category = _this$props.category,
|
|
95
104
|
choices = _this$props.choices,
|
|
96
105
|
classes = _this$props.classes,
|
|
97
106
|
className = _this$props.className,
|
|
@@ -103,6 +112,8 @@ var DroppablePlaceHolder = /*#__PURE__*/function (_React$Component) {
|
|
|
103
112
|
isOver: isOver,
|
|
104
113
|
className: classes.placeHolder
|
|
105
114
|
}, (choices || []).length === 0 ? /*#__PURE__*/_react["default"].createElement(Helper, null) : /*#__PURE__*/_react["default"].createElement(Previews, {
|
|
115
|
+
alternateResponseIndex: alternateResponseIndex,
|
|
116
|
+
category: category,
|
|
106
117
|
choices: choices,
|
|
107
118
|
onDeleteChoice: onDeleteChoice
|
|
108
119
|
}))));
|
|
@@ -113,11 +124,14 @@ var DroppablePlaceHolder = /*#__PURE__*/function (_React$Component) {
|
|
|
113
124
|
|
|
114
125
|
exports.DroppablePlaceHolder = DroppablePlaceHolder;
|
|
115
126
|
(0, _defineProperty2["default"])(DroppablePlaceHolder, "propTypes", {
|
|
127
|
+
alternateResponseIndex: _propTypes["default"].number,
|
|
128
|
+
category: _propTypes["default"].object,
|
|
116
129
|
classes: _propTypes["default"].object.isRequired,
|
|
117
130
|
className: _propTypes["default"].string,
|
|
118
131
|
connectDropTarget: _propTypes["default"].func.isRequired,
|
|
119
132
|
choices: _propTypes["default"].array,
|
|
120
133
|
onDropChoice: _propTypes["default"].func.isRequired,
|
|
134
|
+
onMoveChoice: _propTypes["default"].func,
|
|
121
135
|
isOver: _propTypes["default"].bool,
|
|
122
136
|
onDeleteChoice: _propTypes["default"].func,
|
|
123
137
|
categoryId: _propTypes["default"].string.isRequired
|
|
@@ -142,7 +156,12 @@ var spec = {
|
|
|
142
156
|
drop: function drop(props, monitor) {
|
|
143
157
|
log('[drop] props: ', props);
|
|
144
158
|
var item = monitor.getItem();
|
|
145
|
-
|
|
159
|
+
|
|
160
|
+
if (item.from && item.alternateResponseIndex === props.alternateResponseIndex) {
|
|
161
|
+
props.onMoveChoice(item.choiceId, item.from, props.categoryId, item.choiceIndex, item.alternateResponseIndex);
|
|
162
|
+
} else {
|
|
163
|
+
props.onDropChoice(item, props.categoryId);
|
|
164
|
+
}
|
|
146
165
|
},
|
|
147
166
|
canDrop: function canDrop(props
|
|
148
167
|
/*, monitor*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/design/categories/droppable-placeholder.jsx"],"names":["log","Helper","helper","display","alignItems","fontSize","color","width","height","classes","Previews","choices","onDeleteChoice","map","c","index","choice","propTypes","PropTypes","array","func","DroppablePlaceHolder","props","isOver","className","connectDropTarget","droppablePlaceholder","placeHolder","length","React","Component","
|
|
1
|
+
{"version":3,"sources":["../../../src/design/categories/droppable-placeholder.jsx"],"names":["log","Helper","helper","display","alignItems","fontSize","color","width","height","classes","Previews","alternateResponseIndex","category","choices","onDeleteChoice","map","c","index","choice","propTypes","PropTypes","number","object","array","func","DroppablePlaceHolder","props","isOver","className","connectDropTarget","droppablePlaceholder","placeHolder","length","React","Component","isRequired","string","onDropChoice","onMoveChoice","bool","categoryId","styles","minHeight","Styled","spec","drop","monitor","item","getItem","from","choiceId","choiceIndex","canDrop","disabled","WithTarget","uid","connect","dropTarget","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 ChoicePreview from './choice-preview';\nimport { DropTarget } from 'react-dnd';\nimport { uid, PlaceHolder } from '@pie-lib/drag';\nimport debug from 'debug';\n\nconst log = debug('@pie-element:categorize:configure');\n\nconst Helper = withStyles(() => ({\n helper: {\n display: 'flex',\n alignItems: 'center',\n fontSize: '12px',\n color: 'rgba(0,0,0,0.4)',\n width: '100%',\n height: '100%',\n },\n}))(({ classes }) => <div className={classes.helper}>Drag your correct answers here</div>);\n\nconst Previews = ({ alternateResponseIndex, category, choices, onDeleteChoice }) => (\n <React.Fragment>\n {choices.map(\n (c, index) =>\n c && (\n <ChoicePreview\n alternateResponseIndex={alternateResponseIndex}\n category={category}\n choice={c}\n key={index}\n choiceIndex={index}\n onDelete={(choice) => onDeleteChoice(choice, index)}\n />\n ),\n )}\n </React.Fragment>\n);\n\nPreviews.propTypes = {\n alternateResponseIndex: PropTypes.number,\n category: PropTypes.object,\n choices: PropTypes.array,\n onDeleteChoice: PropTypes.func,\n};\n\nexport class DroppablePlaceHolder extends React.Component {\n static propTypes = {\n alternateResponseIndex: PropTypes.number,\n category: PropTypes.object,\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n connectDropTarget: PropTypes.func.isRequired,\n choices: PropTypes.array,\n onDropChoice: PropTypes.func.isRequired,\n onMoveChoice: PropTypes.func,\n isOver: PropTypes.bool,\n onDeleteChoice: PropTypes.func,\n categoryId: PropTypes.string.isRequired,\n };\n\n static defaultProps = {};\n render() {\n const { alternateResponseIndex, isOver, category, choices, classes, className, connectDropTarget, onDeleteChoice } =\n this.props;\n\n return connectDropTarget(\n <div className={classNames(classes.droppablePlaceholder, className)}>\n <PlaceHolder isOver={isOver} className={classes.placeHolder}>\n {(choices || []).length === 0 ? (\n <Helper />\n ) : (\n <Previews\n alternateResponseIndex={alternateResponseIndex}\n category={category}\n choices={choices}\n onDeleteChoice={onDeleteChoice}\n />\n )}\n </PlaceHolder>\n </div>,\n );\n }\n}\nconst styles = () => ({\n droppablePlaceholder: {\n minHeight: '100px',\n },\n placeHolder: {\n width: '100%',\n minHeight: '100px',\n height: 'auto',\n },\n});\n\nconst Styled = withStyles(styles)(DroppablePlaceHolder);\n\nexport const spec = {\n drop: (props, monitor) => {\n log('[drop] props: ', props);\n const item = monitor.getItem();\n\n if (item.from && item.alternateResponseIndex === props.alternateResponseIndex) {\n props.onMoveChoice(item.choiceId, item.from, props.categoryId, item.choiceIndex, item.alternateResponseIndex);\n } else {\n props.onDropChoice(item, props.categoryId);\n }\n },\n canDrop: (props /*, monitor*/) => {\n return !props.disabled;\n },\n};\n\nconst WithTarget = DropTarget(\n ({ uid }) => uid,\n spec,\n (connect, monitor) => ({\n connectDropTarget: connect.dropTarget(),\n isOver: monitor.isOver(),\n }),\n)(Styled);\n\nexport default uid.withUid(WithTarget);\n"],"file":"droppable-placeholder.js"}
|