@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 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
@@ -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.18.1-next.0+a5d1550f",
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.18.1-next.0+a5d1550f",
10
- "@pie-lib/render-ui": "^4.31.1-next.0+a5d1550f",
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": "a5d1550faec7e27c8824e5aa4b4ef29ad4ee525a"
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
  }