@pie-lib/drag 2.18.1-next.0 → 2.19.1
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/esm/index.js +525 -0
- package/esm/index.js.map +1 -0
- package/package.json +11 -4
package/esm/index.js
ADDED
|
@@ -0,0 +1,525 @@
|
|
|
1
|
+
import { DragSource, DndProvider, DropTarget } from 'react-dnd';
|
|
2
|
+
export { DragSource, DropTarget } from 'react-dnd';
|
|
3
|
+
import React, { useState, useCallback, useRef, useEffect } from 'react';
|
|
4
|
+
import { withStyles } from '@material-ui/core/styles';
|
|
5
|
+
import classNames from 'classnames';
|
|
6
|
+
import PropTypes from 'prop-types';
|
|
7
|
+
import grey from '@material-ui/core/colors/grey';
|
|
8
|
+
import { color, PreviewPrompt } from '@pie-lib/render-ui';
|
|
9
|
+
import MultiBackend, { usePreview, MouseTransition, TouchTransition } from 'react-dnd-multi-backend';
|
|
10
|
+
import { TouchBackend } from 'react-dnd-touch-backend';
|
|
11
|
+
import { HTML5Backend } from 'react-dnd-html5-backend';
|
|
12
|
+
import { renderMath } from '@pie-lib/math-rendering';
|
|
13
|
+
import cloneDeep from 'lodash/cloneDeep';
|
|
14
|
+
|
|
15
|
+
function _extends() {
|
|
16
|
+
_extends = Object.assign || function (target) {
|
|
17
|
+
for (var i = 1; i < arguments.length; i++) {
|
|
18
|
+
var source = arguments[i];
|
|
19
|
+
|
|
20
|
+
for (var key in source) {
|
|
21
|
+
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
|
22
|
+
target[key] = source[key];
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
return target;
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
return _extends.apply(this, arguments);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
const PlaceHolder = props => {
|
|
34
|
+
const {
|
|
35
|
+
children,
|
|
36
|
+
classes,
|
|
37
|
+
className,
|
|
38
|
+
isOver,
|
|
39
|
+
type,
|
|
40
|
+
grid,
|
|
41
|
+
disabled,
|
|
42
|
+
choiceBoard,
|
|
43
|
+
isCategorize,
|
|
44
|
+
isVerticalPool,
|
|
45
|
+
minHeight
|
|
46
|
+
} = props;
|
|
47
|
+
const names = classNames(classes.placeholder, disabled && classes.disabled, isOver && classes.over, classes[type], className);
|
|
48
|
+
const style = {};
|
|
49
|
+
|
|
50
|
+
if (grid && grid.columns) {
|
|
51
|
+
style.gridTemplateColumns = `repeat(${grid.columns}, 1fr)`;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
if (grid && grid.rows) {
|
|
55
|
+
const repeatValue = grid.rowsRepeatValue || '1fr';
|
|
56
|
+
style.gridTemplateRows = `repeat(${grid.rows}, ${repeatValue})`;
|
|
57
|
+
} // The "type" is only sent through placement-ordering / placeholder
|
|
58
|
+
// It can be "choice" or "target"
|
|
59
|
+
// We apply a different style for the "choice" type
|
|
60
|
+
// For any other type, use a dashed black border and a white fill
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
if (type === 'choice') {
|
|
64
|
+
style.border = `1px solid ${color.borderLight()}`;
|
|
65
|
+
style.background = color.backgroundDark();
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
const boardStyle = isCategorize ? classes.categorizeBoard : classes.board;
|
|
69
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
70
|
+
style: _extends({}, style, {
|
|
71
|
+
minHeight: minHeight
|
|
72
|
+
}),
|
|
73
|
+
className: classNames(classes.noSelectStyles, choiceBoard ? boardStyle : names, isVerticalPool && classes.verticalPool)
|
|
74
|
+
}, children);
|
|
75
|
+
};
|
|
76
|
+
PlaceHolder.propTypes = {
|
|
77
|
+
classes: PropTypes.object.isRequired,
|
|
78
|
+
choiceBoard: PropTypes.bool,
|
|
79
|
+
grid: PropTypes.shape({
|
|
80
|
+
columns: PropTypes.number,
|
|
81
|
+
rows: PropTypes.number,
|
|
82
|
+
// if a different value then 1fr is wanted
|
|
83
|
+
rowsRepeatValue: PropTypes.string
|
|
84
|
+
}),
|
|
85
|
+
children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,
|
|
86
|
+
className: PropTypes.string,
|
|
87
|
+
isOver: PropTypes.bool,
|
|
88
|
+
index: PropTypes.number,
|
|
89
|
+
type: PropTypes.string,
|
|
90
|
+
disabled: PropTypes.bool,
|
|
91
|
+
isCategorize: PropTypes.bool,
|
|
92
|
+
isVerticalPool: PropTypes.bool,
|
|
93
|
+
minHeight: PropTypes.number
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
const styles$2 = theme => ({
|
|
97
|
+
noSelectStyles: {
|
|
98
|
+
WebkitTouchCallout: 'none',
|
|
99
|
+
WebkitUserSelect: 'none',
|
|
100
|
+
KhtmlUserSelect: 'none',
|
|
101
|
+
MozUserSelect: 'none',
|
|
102
|
+
MsUserSelect: 'none',
|
|
103
|
+
userSelect: 'none'
|
|
104
|
+
},
|
|
105
|
+
placeholder: {
|
|
106
|
+
width: '100%',
|
|
107
|
+
height: '100%',
|
|
108
|
+
background: color.white(),
|
|
109
|
+
transition: 'background-color 200ms linear, border-color 200ms linear',
|
|
110
|
+
boxSizing: 'border-box',
|
|
111
|
+
display: 'grid',
|
|
112
|
+
gridRowGap: `${theme.spacing.unit}px`,
|
|
113
|
+
gridColumnGap: `${theme.spacing.unit}px`,
|
|
114
|
+
padding: theme.spacing.unit * 1,
|
|
115
|
+
border: `2px dashed ${color.black()}`
|
|
116
|
+
},
|
|
117
|
+
disabled: {
|
|
118
|
+
boxShadow: 'none',
|
|
119
|
+
background: theme.palette.background.paper
|
|
120
|
+
},
|
|
121
|
+
over: {
|
|
122
|
+
border: `1px solid ${grey[500]}`,
|
|
123
|
+
backgroundColor: `${grey[300]}`
|
|
124
|
+
},
|
|
125
|
+
board: {
|
|
126
|
+
padding: theme.spacing.unit,
|
|
127
|
+
display: 'flex',
|
|
128
|
+
flexWrap: 'wrap',
|
|
129
|
+
alignItems: 'center',
|
|
130
|
+
minHeight: '100px',
|
|
131
|
+
justifyContent: 'center',
|
|
132
|
+
overflow: 'hidden',
|
|
133
|
+
touchAction: 'none',
|
|
134
|
+
backgroundColor: color.backgroundDark()
|
|
135
|
+
},
|
|
136
|
+
categorizeBoard: {
|
|
137
|
+
padding: theme.spacing.unit / 2,
|
|
138
|
+
display: 'flex',
|
|
139
|
+
flexWrap: 'wrap',
|
|
140
|
+
alignItems: 'center',
|
|
141
|
+
minHeight: '100px',
|
|
142
|
+
justifyContent: 'center',
|
|
143
|
+
overflow: 'hidden',
|
|
144
|
+
touchAction: 'none',
|
|
145
|
+
backgroundColor: color.backgroundDark()
|
|
146
|
+
},
|
|
147
|
+
verticalPool: {
|
|
148
|
+
display: 'flex',
|
|
149
|
+
flexFlow: 'column wrap'
|
|
150
|
+
}
|
|
151
|
+
});
|
|
152
|
+
|
|
153
|
+
var PlaceHolder$1 = withStyles(styles$2)(PlaceHolder);
|
|
154
|
+
|
|
155
|
+
const {
|
|
156
|
+
Consumer,
|
|
157
|
+
Provider
|
|
158
|
+
} = /*#__PURE__*/React.createContext(-1);
|
|
159
|
+
const generateId = () => (Math.random() * 1000001).toFixed(0);
|
|
160
|
+
const withUid = Component => {
|
|
161
|
+
const Wrapped = props => /*#__PURE__*/React.createElement(Consumer, null, uid => /*#__PURE__*/React.createElement(Component, _extends({}, props, {
|
|
162
|
+
uid: uid
|
|
163
|
+
})));
|
|
164
|
+
|
|
165
|
+
return Wrapped;
|
|
166
|
+
};
|
|
167
|
+
|
|
168
|
+
var uidContext = /*#__PURE__*/Object.freeze({
|
|
169
|
+
__proto__: null,
|
|
170
|
+
Consumer: Consumer,
|
|
171
|
+
Provider: Provider,
|
|
172
|
+
generateId: generateId,
|
|
173
|
+
withUid: withUid
|
|
174
|
+
});
|
|
175
|
+
|
|
176
|
+
class Choice extends React.Component {
|
|
177
|
+
render() {
|
|
178
|
+
const {
|
|
179
|
+
classes,
|
|
180
|
+
className,
|
|
181
|
+
children,
|
|
182
|
+
connectDragSource
|
|
183
|
+
} = this.props;
|
|
184
|
+
return connectDragSource( /*#__PURE__*/React.createElement("div", {
|
|
185
|
+
className: classNames(classes.choice, className)
|
|
186
|
+
}, children));
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
}
|
|
190
|
+
Choice.propTypes = {
|
|
191
|
+
classes: PropTypes.object.isRequired,
|
|
192
|
+
className: PropTypes.string,
|
|
193
|
+
children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),
|
|
194
|
+
connectDragSource: PropTypes.func.isRequired
|
|
195
|
+
};
|
|
196
|
+
Choice.defaultProps = {};
|
|
197
|
+
|
|
198
|
+
const styles$1 = theme => ({
|
|
199
|
+
choice: {
|
|
200
|
+
backgroundColor: theme.palette.background.paper,
|
|
201
|
+
border: `solid 1px ${grey[400]}`,
|
|
202
|
+
padding: theme.spacing.unit,
|
|
203
|
+
minHeight: '30px',
|
|
204
|
+
minWidth: theme.spacing.unit * 20,
|
|
205
|
+
maxWidth: theme.spacing.unit * 75
|
|
206
|
+
}
|
|
207
|
+
});
|
|
208
|
+
|
|
209
|
+
const choiceSource = {
|
|
210
|
+
canDrag(props) {
|
|
211
|
+
return !props.disabled;
|
|
212
|
+
},
|
|
213
|
+
|
|
214
|
+
beginDrag(props) {
|
|
215
|
+
const out = {
|
|
216
|
+
choiceId: props.choice.id,
|
|
217
|
+
from: props.category.id,
|
|
218
|
+
alternateResponseIndex: props.alternateResponseIndex,
|
|
219
|
+
choiceIndex: props.choiceIndex
|
|
220
|
+
};
|
|
221
|
+
return out;
|
|
222
|
+
},
|
|
223
|
+
|
|
224
|
+
endDrag: (props, monitor) => {
|
|
225
|
+
if (!monitor.didDrop()) {
|
|
226
|
+
const item = monitor.getItem();
|
|
227
|
+
|
|
228
|
+
if (item.from) {
|
|
229
|
+
props.onRemoveChoice(item);
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
};
|
|
234
|
+
const styledChoice = withStyles(styles$1)(Choice);
|
|
235
|
+
const DraggableChoice = DragSource(({
|
|
236
|
+
uid
|
|
237
|
+
}) => uid, choiceSource, (connect, monitor) => ({
|
|
238
|
+
connectDragSource: connect.dragSource(),
|
|
239
|
+
connectDragPreview: connect.dragPreview(),
|
|
240
|
+
isDragging: monitor.isDragging()
|
|
241
|
+
}))(styledChoice);
|
|
242
|
+
var choice = withUid(DraggableChoice);
|
|
243
|
+
|
|
244
|
+
const styles = {
|
|
245
|
+
maskBlank: {
|
|
246
|
+
// this style is applied only on small screens and for touch devices when dragging, for drag-in-the-blank.
|
|
247
|
+
// It is styled to be identical to the drag-in-the-blank chip
|
|
248
|
+
backgroundColor: color.white(),
|
|
249
|
+
border: `1px solid ${color.text()}`,
|
|
250
|
+
color: color.text(),
|
|
251
|
+
alignItems: 'center',
|
|
252
|
+
display: 'inline-flex',
|
|
253
|
+
height: 'initial',
|
|
254
|
+
minHeight: '32px',
|
|
255
|
+
fontSize: 'inherit',
|
|
256
|
+
whiteSpace: 'pre-wrap',
|
|
257
|
+
maxWidth: '374px',
|
|
258
|
+
borderRadius: '3px',
|
|
259
|
+
padding: '12px'
|
|
260
|
+
},
|
|
261
|
+
ica: {
|
|
262
|
+
backgroundColor: color.background(),
|
|
263
|
+
border: `1px solid ${color.borderDark()}`,
|
|
264
|
+
display: 'flex',
|
|
265
|
+
alignItems: 'center',
|
|
266
|
+
justifyContent: 'center',
|
|
267
|
+
minHeight: '28px',
|
|
268
|
+
padding: '0 3px',
|
|
269
|
+
marginLeft: 2,
|
|
270
|
+
marginTop: 2,
|
|
271
|
+
width: 'fit-content'
|
|
272
|
+
},
|
|
273
|
+
categorize: {
|
|
274
|
+
color: color.text(),
|
|
275
|
+
backgroundColor: color.background(),
|
|
276
|
+
padding: '16px',
|
|
277
|
+
borderRadius: '4px',
|
|
278
|
+
border: '1px solid'
|
|
279
|
+
},
|
|
280
|
+
matchList: {
|
|
281
|
+
color: color.text(),
|
|
282
|
+
backgroundColor: color.background(),
|
|
283
|
+
padding: '10px',
|
|
284
|
+
boxSizing: 'border-box',
|
|
285
|
+
border: '1px solid #D1D1D1'
|
|
286
|
+
},
|
|
287
|
+
placementOrdering: {
|
|
288
|
+
padding: '10px',
|
|
289
|
+
boxSizing: 'border-box',
|
|
290
|
+
border: '1px solid #D1D1D1',
|
|
291
|
+
backgroundColor: color.background()
|
|
292
|
+
}
|
|
293
|
+
};
|
|
294
|
+
|
|
295
|
+
const getPrompt = (itemType, item) => {
|
|
296
|
+
var _item$choice;
|
|
297
|
+
|
|
298
|
+
switch (itemType) {
|
|
299
|
+
// DRAG-IN-THE-BLANK
|
|
300
|
+
case 'MaskBlank':
|
|
301
|
+
return item == null ? void 0 : (_item$choice = item.choice) == null ? void 0 : _item$choice.value;
|
|
302
|
+
// IMAGE-CLOZE-ASSOCIATION
|
|
303
|
+
|
|
304
|
+
case 'react-dnd-response':
|
|
305
|
+
return item == null ? void 0 : item.value;
|
|
306
|
+
// MATCH-LIST
|
|
307
|
+
|
|
308
|
+
case 'Answer':
|
|
309
|
+
return item == null ? void 0 : item.value;
|
|
310
|
+
// PLACEMENT-ORDERING
|
|
311
|
+
|
|
312
|
+
case 'Tile':
|
|
313
|
+
return item == null ? void 0 : item.value;
|
|
314
|
+
|
|
315
|
+
default:
|
|
316
|
+
return (item == null ? void 0 : item.itemType) === 'categorize' ? item == null ? void 0 : item.value : undefined;
|
|
317
|
+
}
|
|
318
|
+
};
|
|
319
|
+
|
|
320
|
+
const getCustomStyle = (itemType, item, touchPosition, style) => {
|
|
321
|
+
const transform = `translate(${touchPosition.x}px, ${touchPosition.y}px)`;
|
|
322
|
+
const top = (style == null ? void 0 : style.top) || 0;
|
|
323
|
+
const left = (style == null ? void 0 : style.left) || 0;
|
|
324
|
+
const position = (style == null ? void 0 : style.position) || 'fixed';
|
|
325
|
+
return _extends({
|
|
326
|
+
position,
|
|
327
|
+
top,
|
|
328
|
+
left,
|
|
329
|
+
transform
|
|
330
|
+
}, itemType === 'MaskBlank' ? styles.maskBlank : {}, (item == null ? void 0 : item.itemType) === 'categorize' ? styles.categorize : {}, itemType === 'Answer' ? styles.matchList : {}, itemType === 'Tile' ? styles.placementOrdering : {}, itemType === 'react-dnd-response' ? styles.ica : {});
|
|
331
|
+
};
|
|
332
|
+
|
|
333
|
+
const PreviewComponent = () => {
|
|
334
|
+
var _item$choice2;
|
|
335
|
+
|
|
336
|
+
const preview = usePreview();
|
|
337
|
+
const {
|
|
338
|
+
itemType,
|
|
339
|
+
item,
|
|
340
|
+
style,
|
|
341
|
+
display
|
|
342
|
+
} = preview;
|
|
343
|
+
const [touchPosition, setTouchPosition] = useState({
|
|
344
|
+
x: 0,
|
|
345
|
+
y: 0
|
|
346
|
+
});
|
|
347
|
+
const [zoomLevel, setZoomLevel] = useState(1);
|
|
348
|
+
const handleTouchMove = useCallback(event => {
|
|
349
|
+
if (event.touches.length > 0) {
|
|
350
|
+
const touch = event.touches[0];
|
|
351
|
+
const touchOffset = 1;
|
|
352
|
+
setTouchPosition({
|
|
353
|
+
x: (touch.clientX + touchOffset) / zoomLevel,
|
|
354
|
+
y: (touch.clientY + touchOffset) / zoomLevel
|
|
355
|
+
});
|
|
356
|
+
}
|
|
357
|
+
}, [zoomLevel]);
|
|
358
|
+
const root = useRef(null);
|
|
359
|
+
useEffect(() => {
|
|
360
|
+
if (display && root.current) {
|
|
361
|
+
renderMath(root.current); // Adjusted for precise zoom level calculation in Online Testing, targeting the specific class pattern .asmt-zoomable.asmt-zoom-NR .asmt-question .padding
|
|
362
|
+
|
|
363
|
+
const zoomAffectedElement = document.querySelector('.padding') || document.body;
|
|
364
|
+
setZoomLevel(parseFloat(getComputedStyle(zoomAffectedElement).zoom) || 1);
|
|
365
|
+
}
|
|
366
|
+
}, [display, item == null ? void 0 : (_item$choice2 = item.choice) == null ? void 0 : _item$choice2.value, item == null ? void 0 : item.value, itemType, item]);
|
|
367
|
+
useEffect(() => {
|
|
368
|
+
const touchMoveListener = event => handleTouchMove(event);
|
|
369
|
+
|
|
370
|
+
if (display) {
|
|
371
|
+
window.addEventListener('touchmove', touchMoveListener);
|
|
372
|
+
}
|
|
373
|
+
|
|
374
|
+
return () => {
|
|
375
|
+
window.removeEventListener('touchmove', touchMoveListener);
|
|
376
|
+
};
|
|
377
|
+
}, [display, handleTouchMove]);
|
|
378
|
+
|
|
379
|
+
if (!display) {
|
|
380
|
+
return null;
|
|
381
|
+
}
|
|
382
|
+
|
|
383
|
+
const customStyle = getCustomStyle(itemType, item, touchPosition, style);
|
|
384
|
+
const prompt = getPrompt(itemType, item);
|
|
385
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
386
|
+
ref: root,
|
|
387
|
+
style: customStyle
|
|
388
|
+
}, /*#__PURE__*/React.createElement(PreviewPrompt, {
|
|
389
|
+
className: "label",
|
|
390
|
+
prompt: prompt,
|
|
391
|
+
tagName: "span"
|
|
392
|
+
}));
|
|
393
|
+
};
|
|
394
|
+
|
|
395
|
+
const backends = [{
|
|
396
|
+
backend: HTML5Backend,
|
|
397
|
+
transition: MouseTransition
|
|
398
|
+
}, {
|
|
399
|
+
backend: TouchBackend,
|
|
400
|
+
options: {
|
|
401
|
+
enableMouseEvents: true,
|
|
402
|
+
enableTouchEvents: true
|
|
403
|
+
},
|
|
404
|
+
preview: true,
|
|
405
|
+
transition: TouchTransition,
|
|
406
|
+
skipDispatchOnTransition: true
|
|
407
|
+
}];
|
|
408
|
+
var withDragContext = (Component => props => {
|
|
409
|
+
const isClient = typeof window !== 'undefined';
|
|
410
|
+
return /*#__PURE__*/React.createElement(DndProvider, _extends({
|
|
411
|
+
backend: MultiBackend,
|
|
412
|
+
options: {
|
|
413
|
+
backends
|
|
414
|
+
}
|
|
415
|
+
}, isClient && {
|
|
416
|
+
context: window
|
|
417
|
+
}), /*#__PURE__*/React.createElement(Component, props), /*#__PURE__*/React.createElement(PreviewComponent, null));
|
|
418
|
+
});
|
|
419
|
+
|
|
420
|
+
var swap = ((arr, fromIndex, toIndex) => {
|
|
421
|
+
if (!arr || arr.length <= 1 || fromIndex === undefined || toIndex === undefined) {
|
|
422
|
+
throw new Error(`swap requires a non-empty array, fromIndex, toIndex: ${arr}, ${fromIndex} ${toIndex}`);
|
|
423
|
+
}
|
|
424
|
+
|
|
425
|
+
const update = cloneDeep(arr);
|
|
426
|
+
const tmp = arr[toIndex];
|
|
427
|
+
update[toIndex] = update[fromIndex];
|
|
428
|
+
update[fromIndex] = tmp;
|
|
429
|
+
return update;
|
|
430
|
+
});
|
|
431
|
+
|
|
432
|
+
const preventInteractionStyle = {
|
|
433
|
+
flex: 1
|
|
434
|
+
};
|
|
435
|
+
class DroppablePlaceholder extends React.Component {
|
|
436
|
+
render() {
|
|
437
|
+
const {
|
|
438
|
+
children,
|
|
439
|
+
connectDropTarget,
|
|
440
|
+
isOver,
|
|
441
|
+
disabled,
|
|
442
|
+
classes,
|
|
443
|
+
isVerticalPool,
|
|
444
|
+
minHeight
|
|
445
|
+
} = this.props;
|
|
446
|
+
return connectDropTarget( /*#__PURE__*/React.createElement("div", {
|
|
447
|
+
style: preventInteractionStyle
|
|
448
|
+
}, /*#__PURE__*/React.createElement(PlaceHolder$1, {
|
|
449
|
+
disabled: disabled,
|
|
450
|
+
isOver: isOver,
|
|
451
|
+
choiceBoard: true,
|
|
452
|
+
className: classes,
|
|
453
|
+
isVerticalPool: isVerticalPool,
|
|
454
|
+
minHeight: minHeight
|
|
455
|
+
}, children)));
|
|
456
|
+
}
|
|
457
|
+
|
|
458
|
+
}
|
|
459
|
+
DroppablePlaceholder.propTypes = {
|
|
460
|
+
classes: PropTypes.object,
|
|
461
|
+
connectDropTarget: PropTypes.func.isRequired,
|
|
462
|
+
isOver: PropTypes.bool,
|
|
463
|
+
children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,
|
|
464
|
+
disabled: PropTypes.bool,
|
|
465
|
+
isVerticalPool: PropTypes.bool,
|
|
466
|
+
minHeight: PropTypes.number
|
|
467
|
+
};
|
|
468
|
+
|
|
469
|
+
var dragType = {
|
|
470
|
+
types: {
|
|
471
|
+
ica: 'react-dnd-response',
|
|
472
|
+
ml: 'Answer',
|
|
473
|
+
db: 'MaskBlank'
|
|
474
|
+
}
|
|
475
|
+
};
|
|
476
|
+
|
|
477
|
+
const spec$2 = {
|
|
478
|
+
canDrop: props => {
|
|
479
|
+
return !props.disabled;
|
|
480
|
+
},
|
|
481
|
+
drop: (props, monitor) => {
|
|
482
|
+
const item = monitor.getItem();
|
|
483
|
+
|
|
484
|
+
if (props.onRemoveAnswer) {
|
|
485
|
+
props.onRemoveAnswer(item.promptId);
|
|
486
|
+
}
|
|
487
|
+
}
|
|
488
|
+
};
|
|
489
|
+
const WithTarget$2 = DropTarget(dragType.types.ml, spec$2, (connect, monitor) => ({
|
|
490
|
+
connectDropTarget: connect.dropTarget(),
|
|
491
|
+
isOver: monitor.isOver()
|
|
492
|
+
}))(DroppablePlaceholder);
|
|
493
|
+
|
|
494
|
+
const spec$1 = {
|
|
495
|
+
canDrop: props => {
|
|
496
|
+
return !props.disabled;
|
|
497
|
+
},
|
|
498
|
+
drop: () => ({
|
|
499
|
+
dropped: true
|
|
500
|
+
})
|
|
501
|
+
};
|
|
502
|
+
const WithTarget$1 = DropTarget(dragType.types.db, spec$1, (connect, monitor) => ({
|
|
503
|
+
connectDropTarget: connect.dropTarget(),
|
|
504
|
+
isOver: monitor.isOver()
|
|
505
|
+
}))(DroppablePlaceholder);
|
|
506
|
+
|
|
507
|
+
const spec = {
|
|
508
|
+
canDrop: props => {
|
|
509
|
+
return !props.disabled;
|
|
510
|
+
},
|
|
511
|
+
drop: (props, monitor) => {
|
|
512
|
+
const item = monitor.getItem();
|
|
513
|
+
|
|
514
|
+
if (props.onRemoveAnswer) {
|
|
515
|
+
props.onRemoveAnswer(item);
|
|
516
|
+
}
|
|
517
|
+
}
|
|
518
|
+
};
|
|
519
|
+
const WithTarget = DropTarget(dragType.types.ica, spec, (connect, monitor) => ({
|
|
520
|
+
connectDropTarget: connect.dropTarget(),
|
|
521
|
+
isOver: monitor.isOver()
|
|
522
|
+
}))(DroppablePlaceholder);
|
|
523
|
+
|
|
524
|
+
export { choice as Choice, WithTarget$1 as DragDroppablePlaceholder, WithTarget as ICADroppablePlaceholder, WithTarget$2 as MatchDroppablePlaceholder, PlaceHolder$1 as PlaceHolder, swap, uidContext as uid, withDragContext };
|
|
525
|
+
//# sourceMappingURL=index.js.map
|
package/esm/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/placeholder.jsx","../src/uid-context.js","../src/choice.jsx","../src/preview-component.jsx","../src/with-drag-context.js","../src/swap.js","../src/droppable-placeholder.jsx","../src/drag-type.js","../src/match-list-dp.jsx","../src/drag-in-the-blank-dp.jsx","../src/ica-dp.jsx"],"sourcesContent":["import React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport grey from '@material-ui/core/colors/grey';\nimport { color } from '@pie-lib/render-ui';\n\nexport const PlaceHolder = (props) => {\n const {\n children,\n classes,\n className,\n isOver,\n type,\n grid,\n disabled,\n choiceBoard,\n isCategorize,\n isVerticalPool,\n minHeight,\n } = props;\n\n const names = classNames(\n classes.placeholder,\n disabled && classes.disabled,\n isOver && classes.over,\n classes[type],\n className,\n );\n\n const style = {};\n\n if (grid && grid.columns) {\n style.gridTemplateColumns = `repeat(${grid.columns}, 1fr)`;\n }\n\n if (grid && grid.rows) {\n const repeatValue = grid.rowsRepeatValue || '1fr';\n\n style.gridTemplateRows = `repeat(${grid.rows}, ${repeatValue})`;\n }\n\n // The \"type\" is only sent through placement-ordering / placeholder\n // It can be \"choice\" or \"target\"\n // We apply a different style for the \"choice\" type\n // For any other type, use a dashed black border and a white fill\n if (type === 'choice') {\n style.border = `1px solid ${color.borderLight()}`;\n style.background = color.backgroundDark();\n }\n\n const boardStyle = isCategorize ? classes.categorizeBoard : classes.board;\n\n return (\n <div\n style={{ ...style, minHeight: minHeight }}\n className={classNames(\n classes.noSelectStyles,\n choiceBoard ? boardStyle : names,\n isVerticalPool && classes.verticalPool,\n )}\n >\n {children}\n </div>\n );\n};\n\nPlaceHolder.propTypes = {\n classes: PropTypes.object.isRequired,\n choiceBoard: PropTypes.bool,\n grid: PropTypes.shape({\n columns: PropTypes.number,\n rows: PropTypes.number,\n // if a different value then 1fr is wanted\n rowsRepeatValue: PropTypes.string,\n }),\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,\n className: PropTypes.string,\n isOver: PropTypes.bool,\n index: PropTypes.number,\n type: PropTypes.string,\n disabled: PropTypes.bool,\n isCategorize: PropTypes.bool,\n isVerticalPool: PropTypes.bool,\n minHeight: PropTypes.number,\n};\n\nconst styles = (theme) => ({\n noSelectStyles: {\n WebkitTouchCallout: 'none',\n WebkitUserSelect: 'none',\n KhtmlUserSelect: 'none',\n MozUserSelect: 'none',\n MsUserSelect: 'none',\n userSelect: 'none',\n },\n placeholder: {\n width: '100%',\n height: '100%',\n background: color.white(),\n transition: 'background-color 200ms linear, border-color 200ms linear',\n boxSizing: 'border-box',\n display: 'grid',\n gridRowGap: `${theme.spacing.unit}px`,\n gridColumnGap: `${theme.spacing.unit}px`,\n padding: theme.spacing.unit * 1,\n border: `2px dashed ${color.black()}`,\n },\n disabled: {\n boxShadow: 'none',\n background: theme.palette.background.paper,\n },\n over: {\n border: `1px solid ${grey[500]}`,\n backgroundColor: `${grey[300]}`,\n },\n board: {\n padding: theme.spacing.unit,\n display: 'flex',\n flexWrap: 'wrap',\n alignItems: 'center',\n minHeight: '100px',\n justifyContent: 'center',\n overflow: 'hidden',\n touchAction: 'none',\n backgroundColor: color.backgroundDark(),\n },\n categorizeBoard: {\n padding: theme.spacing.unit / 2,\n display: 'flex',\n flexWrap: 'wrap',\n alignItems: 'center',\n minHeight: '100px',\n justifyContent: 'center',\n overflow: 'hidden',\n touchAction: 'none',\n backgroundColor: color.backgroundDark(),\n },\n verticalPool: {\n display: 'flex',\n flexFlow: 'column wrap',\n },\n});\n\nexport default withStyles(styles)(PlaceHolder);\n","import React from 'react';\n\nconst { Consumer, Provider } = React.createContext(-1);\n\nexport { Provider, Consumer };\n\nexport const generateId = () => (Math.random() * 1000001).toFixed(0);\n\nexport const withUid = (Component) => {\n const Wrapped = (props) => <Consumer>{(uid) => <Component {...props} uid={uid} />}</Consumer>;\n\n return Wrapped;\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport grey from '@material-ui/core/colors/grey';\n\nimport { DragSource } from 'react-dnd';\nimport { withUid } from './uid-context';\n\nexport const DRAG_TYPE = 'CHOICE';\n\nexport class Choice extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n connectDragSource: PropTypes.func.isRequired,\n };\n\n static defaultProps = {};\n\n render() {\n const { classes, className, children, connectDragSource } = this.props;\n\n return connectDragSource(<div className={classNames(classes.choice, className)}>{children}</div>);\n }\n}\n\nconst styles = (theme) => ({\n choice: {\n backgroundColor: theme.palette.background.paper,\n border: `solid 1px ${grey[400]}`,\n padding: theme.spacing.unit,\n minHeight: '30px',\n minWidth: theme.spacing.unit * 20,\n maxWidth: theme.spacing.unit * 75,\n },\n});\n\nconst choiceSource = {\n canDrag(props) {\n return !props.disabled;\n },\n beginDrag(props) {\n const out = {\n choiceId: props.choice.id,\n from: props.category.id,\n alternateResponseIndex: props.alternateResponseIndex,\n choiceIndex: props.choiceIndex,\n };\n return out;\n },\n\n endDrag: (props, monitor) => {\n if (!monitor.didDrop()) {\n const item = monitor.getItem();\n if (item.from) {\n props.onRemoveChoice(item);\n }\n }\n },\n};\n\nconst styledChoice = withStyles(styles)(Choice);\n\nconst DraggableChoice = DragSource(\n ({ uid }) => uid,\n choiceSource,\n (connect, monitor) => ({\n connectDragSource: connect.dragSource(),\n connectDragPreview: connect.dragPreview(),\n isDragging: monitor.isDragging(),\n }),\n)(styledChoice);\n\nexport default withUid(DraggableChoice);\n","import React, { useEffect, useRef, useState, useCallback } from 'react';\nimport { usePreview } from 'react-dnd-multi-backend';\nimport { PreviewPrompt, color } from '@pie-lib/render-ui';\nimport { renderMath } from '@pie-lib/math-rendering';\n\nconst styles = {\n maskBlank: {\n // this style is applied only on small screens and for touch devices when dragging, for drag-in-the-blank.\n // It is styled to be identical to the drag-in-the-blank chip\n backgroundColor: color.white(),\n border: `1px solid ${color.text()}`,\n color: color.text(),\n alignItems: 'center',\n display: 'inline-flex',\n height: 'initial',\n minHeight: '32px',\n fontSize: 'inherit',\n whiteSpace: 'pre-wrap',\n maxWidth: '374px',\n borderRadius: '3px',\n padding: '12px',\n },\n ica: {\n backgroundColor: color.background(),\n border: `1px solid ${color.borderDark()}`,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n minHeight: '28px',\n padding: '0 3px',\n marginLeft: 2,\n marginTop: 2,\n width: 'fit-content',\n },\n categorize: {\n color: color.text(),\n backgroundColor: color.background(),\n padding: '16px',\n borderRadius: '4px',\n border: '1px solid',\n },\n matchList: {\n color: color.text(),\n backgroundColor: color.background(),\n padding: '10px',\n boxSizing: 'border-box',\n border: '1px solid #D1D1D1',\n },\n placementOrdering: {\n padding: '10px',\n boxSizing: 'border-box',\n border: '1px solid #D1D1D1',\n backgroundColor: color.background(),\n },\n};\n\nconst getPrompt = (itemType, item) => {\n switch (itemType) {\n // DRAG-IN-THE-BLANK\n case 'MaskBlank':\n return item?.choice?.value;\n // IMAGE-CLOZE-ASSOCIATION\n case 'react-dnd-response':\n return item?.value;\n // MATCH-LIST\n case 'Answer':\n return item?.value;\n // PLACEMENT-ORDERING\n case 'Tile':\n return item?.value;\n default:\n return item?.itemType === 'categorize' ? item?.value : undefined;\n }\n};\n\nconst getCustomStyle = (itemType, item, touchPosition, style) => {\n const transform = `translate(${touchPosition.x}px, ${touchPosition.y}px)`;\n const top = style?.top || 0;\n const left = style?.left || 0;\n const position = style?.position || 'fixed';\n\n return {\n position,\n top,\n left,\n transform,\n ...(itemType === 'MaskBlank' ? styles.maskBlank : {}),\n ...(item?.itemType === 'categorize' ? styles.categorize : {}),\n ...(itemType === 'Answer' ? styles.matchList : {}),\n ...(itemType === 'Tile' ? styles.placementOrdering : {}),\n ...(itemType === 'react-dnd-response' ? styles.ica : {}),\n };\n};\n\nconst PreviewComponent = () => {\n const preview = usePreview();\n const { itemType, item, style, display } = preview;\n const [touchPosition, setTouchPosition] = useState({ x: 0, y: 0 });\n const [zoomLevel, setZoomLevel] = useState(1);\n\n const handleTouchMove = useCallback(\n (event) => {\n if (event.touches.length > 0) {\n const touch = event.touches[0];\n const touchOffset = 1;\n setTouchPosition({\n x: (touch.clientX + touchOffset) / zoomLevel,\n y: (touch.clientY + touchOffset) / zoomLevel,\n });\n }\n },\n [zoomLevel],\n );\n\n const root = useRef(null);\n\n useEffect(() => {\n if (display && root.current) {\n renderMath(root.current);\n\n // Adjusted for precise zoom level calculation in Online Testing, targeting the specific class pattern .asmt-zoomable.asmt-zoom-NR .asmt-question .padding\n const zoomAffectedElement = document.querySelector('.padding') || document.body;\n\n setZoomLevel(parseFloat(getComputedStyle(zoomAffectedElement).zoom) || 1);\n }\n }, [display, item?.choice?.value, item?.value, itemType, item]);\n\n useEffect(() => {\n const touchMoveListener = (event) => handleTouchMove(event);\n if (display) {\n window.addEventListener('touchmove', touchMoveListener);\n }\n return () => {\n window.removeEventListener('touchmove', touchMoveListener);\n };\n }, [display, handleTouchMove]);\n\n if (!display) {\n return null;\n }\n\n const customStyle = getCustomStyle(itemType, item, touchPosition, style);\n\n const prompt = getPrompt(itemType, item);\n\n return (\n <div ref={root} style={customStyle}>\n <PreviewPrompt className=\"label\" prompt={prompt} tagName=\"span\" />\n </div>\n );\n};\n\nexport default PreviewComponent;\n","import React from 'react';\nimport MultiBackend, { TouchTransition, MouseTransition } from 'react-dnd-multi-backend';\nimport { DndProvider } from 'react-dnd';\nimport { TouchBackend } from 'react-dnd-touch-backend';\nimport { HTML5Backend } from 'react-dnd-html5-backend';\n\nimport PreviewComponent from './preview-component';\n\nconst backends = [\n {\n backend: HTML5Backend,\n transition: MouseTransition,\n },\n {\n backend: TouchBackend,\n options: { enableMouseEvents: true, enableTouchEvents: true },\n preview: true,\n transition: TouchTransition,\n skipDispatchOnTransition: true,\n },\n];\n\nexport default (Component) => (props) => {\n const isClient = typeof window !== 'undefined';\n\n return (\n <DndProvider backend={MultiBackend} options={{ backends }} {...(isClient && { context: window })}>\n <Component {...props} />\n <PreviewComponent />\n </DndProvider>\n );\n};\n","import cloneDeep from 'lodash/cloneDeep';\n\nexport default (arr, fromIndex, toIndex) => {\n if (!arr || arr.length <= 1 || fromIndex === undefined || toIndex === undefined) {\n throw new Error(`swap requires a non-empty array, fromIndex, toIndex: ${arr}, ${fromIndex} ${toIndex}`);\n }\n\n const update = cloneDeep(arr);\n const tmp = arr[toIndex];\n update[toIndex] = update[fromIndex];\n update[fromIndex] = tmp;\n\n return update;\n};\n","import React from 'react';\nimport PlaceHolder from './placeholder';\nimport PropTypes from 'prop-types';\n\nconst preventInteractionStyle = {\n flex: 1,\n};\n\nexport class DroppablePlaceholder extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n connectDropTarget: PropTypes.func.isRequired,\n isOver: PropTypes.bool,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,\n disabled: PropTypes.bool,\n isVerticalPool: PropTypes.bool,\n minHeight: PropTypes.number,\n };\n\n render() {\n const { children, connectDropTarget, isOver, disabled, classes, isVerticalPool, minHeight } = this.props;\n\n return connectDropTarget(\n <div style={preventInteractionStyle}>\n <PlaceHolder\n disabled={disabled}\n isOver={isOver}\n choiceBoard={true}\n className={classes}\n isVerticalPool={isVerticalPool}\n minHeight={minHeight}\n >\n {children}\n </PlaceHolder>\n </div>,\n );\n }\n}\n","export default {\n types: {\n ica: 'react-dnd-response',\n ml: 'Answer',\n db: 'MaskBlank',\n },\n};\n","import { DropTarget } from 'react-dnd';\nimport { DroppablePlaceholder } from './droppable-placeholder';\nimport dragType from './drag-type';\n\nexport const spec = {\n canDrop: (props) => {\n return !props.disabled;\n },\n drop: (props, monitor) => {\n const item = monitor.getItem();\n\n if (props.onRemoveAnswer) {\n props.onRemoveAnswer(item.promptId);\n }\n },\n};\n\nconst WithTarget = DropTarget(dragType.types.ml, spec, (connect, monitor) => ({\n connectDropTarget: connect.dropTarget(),\n isOver: monitor.isOver(),\n}))(DroppablePlaceholder);\n\nexport default WithTarget;\n","import { DropTarget } from 'react-dnd';\nimport { DroppablePlaceholder } from './droppable-placeholder';\nimport dragType from './drag-type';\n\nexport const spec = {\n canDrop: (props) => {\n return !props.disabled;\n },\n drop: () => ({\n dropped: true,\n }),\n};\n\nconst WithTarget = DropTarget(dragType.types.db, spec, (connect, monitor) => ({\n connectDropTarget: connect.dropTarget(),\n isOver: monitor.isOver(),\n}))(DroppablePlaceholder);\n\nexport default WithTarget;\n","import { DropTarget } from 'react-dnd';\nimport { DroppablePlaceholder } from './droppable-placeholder';\nimport dragType from './drag-type';\n\nexport const spec = {\n canDrop: (props) => {\n return !props.disabled;\n },\n drop: (props, monitor) => {\n const item = monitor.getItem();\n\n if (props.onRemoveAnswer) {\n props.onRemoveAnswer(item);\n }\n },\n};\n\nconst WithTarget = DropTarget(dragType.types.ica, spec, (connect, monitor) => ({\n connectDropTarget: connect.dropTarget(),\n isOver: monitor.isOver(),\n}))(DroppablePlaceholder);\n\nexport default WithTarget;\n"],"names":["PlaceHolder","props","children","classes","className","isOver","type","grid","disabled","choiceBoard","isCategorize","isVerticalPool","minHeight","names","classNames","placeholder","over","style","columns","gridTemplateColumns","rows","repeatValue","rowsRepeatValue","gridTemplateRows","border","color","borderLight","background","backgroundDark","boardStyle","categorizeBoard","board","noSelectStyles","verticalPool","propTypes","PropTypes","object","isRequired","bool","shape","number","string","oneOfType","arrayOf","node","index","styles","theme","WebkitTouchCallout","WebkitUserSelect","KhtmlUserSelect","MozUserSelect","MsUserSelect","userSelect","width","height","white","transition","boxSizing","display","gridRowGap","spacing","unit","gridColumnGap","padding","black","boxShadow","palette","paper","grey","backgroundColor","flexWrap","alignItems","justifyContent","overflow","touchAction","flexFlow","withStyles","Consumer","Provider","React","createContext","generateId","Math","random","toFixed","withUid","Component","Wrapped","uid","Choice","render","connectDragSource","choice","func","defaultProps","minWidth","maxWidth","choiceSource","canDrag","beginDrag","out","choiceId","id","from","category","alternateResponseIndex","choiceIndex","endDrag","monitor","didDrop","item","getItem","onRemoveChoice","styledChoice","DraggableChoice","DragSource","connect","dragSource","connectDragPreview","dragPreview","isDragging","maskBlank","text","fontSize","whiteSpace","borderRadius","ica","borderDark","marginLeft","marginTop","categorize","matchList","placementOrdering","getPrompt","itemType","value","undefined","getCustomStyle","touchPosition","transform","x","y","top","left","position","PreviewComponent","preview","usePreview","setTouchPosition","useState","zoomLevel","setZoomLevel","handleTouchMove","useCallback","event","touches","length","touch","touchOffset","clientX","clientY","root","useRef","useEffect","current","renderMath","zoomAffectedElement","document","querySelector","body","parseFloat","getComputedStyle","zoom","touchMoveListener","window","addEventListener","removeEventListener","customStyle","prompt","backends","backend","HTML5Backend","MouseTransition","TouchBackend","options","enableMouseEvents","enableTouchEvents","TouchTransition","skipDispatchOnTransition","isClient","MultiBackend","context","arr","fromIndex","toIndex","Error","update","cloneDeep","tmp","preventInteractionStyle","flex","DroppablePlaceholder","connectDropTarget","types","ml","db","spec","canDrop","drop","onRemoveAnswer","promptId","WithTarget","DropTarget","dragType","dropTarget","dropped"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pie-lib/drag",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.19.1",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "src/index.js",
|
|
7
7
|
"dependencies": {
|
|
8
8
|
"@material-ui/core": "^3.8.3",
|
|
9
|
-
"@pie-lib/math-rendering": "^3.
|
|
10
|
-
"@pie-lib/render-ui": "^4.
|
|
9
|
+
"@pie-lib/math-rendering": "^3.19.0",
|
|
10
|
+
"@pie-lib/render-ui": "^4.32.1",
|
|
11
11
|
"classnames": "^2.2.6",
|
|
12
12
|
"lodash": "^4.17.11",
|
|
13
13
|
"prop-types": "^15.7.2",
|
|
@@ -23,5 +23,12 @@
|
|
|
23
23
|
"scripts": {},
|
|
24
24
|
"author": "",
|
|
25
25
|
"license": "ISC",
|
|
26
|
-
"gitHead": "
|
|
26
|
+
"gitHead": "be0b7951407a81d53b8b8b4861b8407b31728809",
|
|
27
|
+
"exports": {
|
|
28
|
+
".": {
|
|
29
|
+
"import": "./esm/index.js",
|
|
30
|
+
"require": "./lib/index.js",
|
|
31
|
+
"default": "./esm/index.js"
|
|
32
|
+
}
|
|
33
|
+
}
|
|
27
34
|
}
|