@pie-lib/drag 2.2.10-next.1 → 2.4.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +16 -0
- package/NEXT.CHANGELOG.json +1 -0
- package/lib/__tests__/placeholder.test.js +65 -0
- package/lib/__tests__/uid-context.test.js +31 -0
- package/lib/choice.js +1 -1
- package/lib/drag-in-the-blank-dp.js +2 -2
- package/lib/drag-type.js +1 -1
- package/lib/droppable-placeholder.js +11 -11
- package/lib/ica-dp.js +1 -1
- package/lib/index.js +1 -1
- package/lib/match-list-dp.js +1 -1
- package/lib/placeholder.js +60 -11
- package/lib/preview-component.js +69 -17
- package/lib/swap.js +1 -1
- package/lib/uid-context.js +1 -1
- package/lib/with-drag-context.js +10 -5
- package/package.json +4 -4
- package/src/__tests__/__snapshots__/placeholder.test.jsx.snap +68 -0
- package/src/__tests__/placeholder.test.jsx +48 -0
- package/src/__tests__/uid-context.test.jsx +21 -0
- package/src/drag-in-the-blank-dp.jsx +1 -1
- package/src/droppable-placeholder.jsx +11 -8
- package/src/placeholder.jsx +65 -6
- package/src/preview-component.jsx +58 -19
- package/src/with-drag-context.js +15 -8
- package/README.md +0 -3
- package/lib/choice.js.map +0 -1
- package/lib/drag-in-the-blank-dp.js.map +0 -1
- package/lib/drag-type.js.map +0 -1
- package/lib/droppable-placeholder.js.map +0 -1
- package/lib/ica-dp.js.map +0 -1
- package/lib/index.js.map +0 -1
- package/lib/match-list-dp.js.map +0 -1
- package/lib/placeholder.js.map +0 -1
- package/lib/preview-component.js.map +0 -1
- package/lib/swap.js.map +0 -1
- package/lib/uid-context.js.map +0 -1
- package/lib/with-drag-context.js.map +0 -1
package/lib/with-drag-context.js
CHANGED
|
@@ -9,6 +9,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
9
9
|
});
|
|
10
10
|
exports["default"] = void 0;
|
|
11
11
|
|
|
12
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
13
|
+
|
|
12
14
|
var _react = _interopRequireDefault(require("react"));
|
|
13
15
|
|
|
14
16
|
var _reactDndMultiBackend = _interopRequireWildcard(require("react-dnd-multi-backend"));
|
|
@@ -26,7 +28,8 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
26
28
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
27
29
|
|
|
28
30
|
var backends = [{
|
|
29
|
-
backend: _reactDndHtml5Backend.HTML5Backend
|
|
31
|
+
backend: _reactDndHtml5Backend.HTML5Backend,
|
|
32
|
+
transition: _reactDndMultiBackend.MouseTransition
|
|
30
33
|
}, {
|
|
31
34
|
backend: _reactDndTouchBackend.TouchBackend,
|
|
32
35
|
options: {
|
|
@@ -40,15 +43,17 @@ var backends = [{
|
|
|
40
43
|
|
|
41
44
|
var _default = function _default(Component) {
|
|
42
45
|
return function (props) {
|
|
43
|
-
|
|
46
|
+
var isClient = typeof window !== 'undefined';
|
|
47
|
+
return /*#__PURE__*/_react["default"].createElement(_reactDnd.DndProvider, (0, _extends2["default"])({
|
|
44
48
|
backend: _reactDndMultiBackend["default"],
|
|
45
49
|
options: {
|
|
46
50
|
backends: backends
|
|
47
|
-
}
|
|
51
|
+
}
|
|
52
|
+
}, isClient && {
|
|
48
53
|
context: window
|
|
49
|
-
}, /*#__PURE__*/_react["default"].createElement(Component, props), /*#__PURE__*/_react["default"].createElement(_previewComponent["default"], null));
|
|
54
|
+
}), /*#__PURE__*/_react["default"].createElement(Component, props), /*#__PURE__*/_react["default"].createElement(_previewComponent["default"], null));
|
|
50
55
|
};
|
|
51
56
|
};
|
|
52
57
|
|
|
53
58
|
exports["default"] = _default;
|
|
54
|
-
//# sourceMappingURL=
|
|
59
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy93aXRoLWRyYWctY29udGV4dC5qcyJdLCJuYW1lcyI6WyJiYWNrZW5kcyIsImJhY2tlbmQiLCJIVE1MNUJhY2tlbmQiLCJ0cmFuc2l0aW9uIiwiTW91c2VUcmFuc2l0aW9uIiwiVG91Y2hCYWNrZW5kIiwib3B0aW9ucyIsImVuYWJsZU1vdXNlRXZlbnRzIiwiZW5hYmxlVG91Y2hFdmVudHMiLCJwcmV2aWV3IiwiVG91Y2hUcmFuc2l0aW9uIiwic2tpcERpc3BhdGNoT25UcmFuc2l0aW9uIiwiQ29tcG9uZW50IiwicHJvcHMiLCJpc0NsaWVudCIsIndpbmRvdyIsIk11bHRpQmFja2VuZCIsImNvbnRleHQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQTs7Ozs7O0FBRUEsSUFBTUEsUUFBUSxHQUFHLENBQ2Y7QUFDRUMsRUFBQUEsT0FBTyxFQUFFQyxrQ0FEWDtBQUVFQyxFQUFBQSxVQUFVLEVBQUVDO0FBRmQsQ0FEZSxFQUtmO0FBQ0VILEVBQUFBLE9BQU8sRUFBRUksa0NBRFg7QUFFRUMsRUFBQUEsT0FBTyxFQUFFO0FBQUVDLElBQUFBLGlCQUFpQixFQUFFLElBQXJCO0FBQTJCQyxJQUFBQSxpQkFBaUIsRUFBRTtBQUE5QyxHQUZYO0FBR0VDLEVBQUFBLE9BQU8sRUFBRSxJQUhYO0FBSUVOLEVBQUFBLFVBQVUsRUFBRU8scUNBSmQ7QUFLRUMsRUFBQUEsd0JBQXdCLEVBQUU7QUFMNUIsQ0FMZSxDQUFqQjs7ZUFjZSxrQkFBQ0MsU0FBRDtBQUFBLFNBQWUsVUFBQUMsS0FBSyxFQUFJO0FBQ3JDLFFBQU1DLFFBQVEsR0FBRyxPQUFPQyxNQUFQLEtBQWtCLFdBQW5DO0FBRUEsd0JBQ0UsZ0NBQUMscUJBQUQ7QUFBYSxNQUFBLE9BQU8sRUFBRUMsZ0NBQXRCO0FBQW9DLE1BQUEsT0FBTyxFQUFFO0FBQUVoQixRQUFBQSxRQUFRLEVBQVJBO0FBQUY7QUFBN0MsT0FBZ0VjLFFBQVEsSUFBSTtBQUFFRyxNQUFBQSxPQUFPLEVBQUVGO0FBQVgsS0FBNUUsZ0JBQ0UsZ0NBQUMsU0FBRCxFQUFlRixLQUFmLENBREYsZUFFRSxnQ0FBQyw0QkFBRCxPQUZGLENBREY7QUFNRCxHQVRjO0FBQUEsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgTXVsdGlCYWNrZW5kLCB7IFRvdWNoVHJhbnNpdGlvbiwgTW91c2VUcmFuc2l0aW9uIH0gZnJvbSAncmVhY3QtZG5kLW11bHRpLWJhY2tlbmQnO1xuaW1wb3J0IHsgRG5kUHJvdmlkZXIgfSBmcm9tICdyZWFjdC1kbmQnO1xuaW1wb3J0IHsgVG91Y2hCYWNrZW5kIH0gZnJvbSAncmVhY3QtZG5kLXRvdWNoLWJhY2tlbmQnO1xuaW1wb3J0IHsgSFRNTDVCYWNrZW5kIH0gZnJvbSAncmVhY3QtZG5kLWh0bWw1LWJhY2tlbmQnO1xuXG5pbXBvcnQgUHJldmlld0NvbXBvbmVudCBmcm9tICcuL3ByZXZpZXctY29tcG9uZW50JztcblxuY29uc3QgYmFja2VuZHMgPSBbXG4gIHtcbiAgICBiYWNrZW5kOiBIVE1MNUJhY2tlbmQsXG4gICAgdHJhbnNpdGlvbjogTW91c2VUcmFuc2l0aW9uLFxuICB9LFxuICB7XG4gICAgYmFja2VuZDogVG91Y2hCYWNrZW5kLFxuICAgIG9wdGlvbnM6IHsgZW5hYmxlTW91c2VFdmVudHM6IHRydWUsIGVuYWJsZVRvdWNoRXZlbnRzOiB0cnVlIH0sXG4gICAgcHJldmlldzogdHJ1ZSxcbiAgICB0cmFuc2l0aW9uOiBUb3VjaFRyYW5zaXRpb24sXG4gICAgc2tpcERpc3BhdGNoT25UcmFuc2l0aW9uOiB0cnVlLFxuICB9LFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgKENvbXBvbmVudCkgPT4gcHJvcHMgPT4ge1xuICBjb25zdCBpc0NsaWVudCA9IHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnO1xuXG4gIHJldHVybiAoXG4gICAgPERuZFByb3ZpZGVyIGJhY2tlbmQ9e011bHRpQmFja2VuZH0gb3B0aW9ucz17eyBiYWNrZW5kcyB9fSB7Li4uKGlzQ2xpZW50ICYmIHsgY29udGV4dDogd2luZG93IH0pfT5cbiAgICAgIDxDb21wb25lbnQgey4uLnByb3BzfSAvPlxuICAgICAgPFByZXZpZXdDb21wb25lbnQgLz5cbiAgICA8L0RuZFByb3ZpZGVyPlxuICApO1xufTtcbiJdfQ==
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pie-lib/drag",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.4.0-beta.0",
|
|
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": "
|
|
10
|
-
"@pie-lib/render-ui": "^4.
|
|
9
|
+
"@pie-lib/math-rendering": "^3.4.0-beta.0",
|
|
10
|
+
"@pie-lib/render-ui": "^4.17.0-beta.0",
|
|
11
11
|
"classnames": "^2.2.6",
|
|
12
12
|
"lodash": "^4.17.11",
|
|
13
13
|
"react-dnd": "^14.0.5",
|
|
@@ -21,5 +21,5 @@
|
|
|
21
21
|
"scripts": {},
|
|
22
22
|
"author": "",
|
|
23
23
|
"license": "ISC",
|
|
24
|
-
"gitHead": "
|
|
24
|
+
"gitHead": "3818c24530f62b5bb9be7a2c6aa5428f13a17e0a"
|
|
25
25
|
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
|
+
|
|
3
|
+
exports[`placeholder snapshot className 1`] = `
|
|
4
|
+
<div
|
|
5
|
+
className="placeholder bar"
|
|
6
|
+
style={
|
|
7
|
+
Object {
|
|
8
|
+
"minHeight": undefined,
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
>
|
|
12
|
+
Foo
|
|
13
|
+
</div>
|
|
14
|
+
`;
|
|
15
|
+
|
|
16
|
+
exports[`placeholder snapshot disabled: true 1`] = `
|
|
17
|
+
<div
|
|
18
|
+
className="placeholder disabled"
|
|
19
|
+
style={
|
|
20
|
+
Object {
|
|
21
|
+
"minHeight": undefined,
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
>
|
|
25
|
+
Foo
|
|
26
|
+
</div>
|
|
27
|
+
`;
|
|
28
|
+
|
|
29
|
+
exports[`placeholder snapshot isOver: true 1`] = `
|
|
30
|
+
<div
|
|
31
|
+
className="placeholder over"
|
|
32
|
+
style={
|
|
33
|
+
Object {
|
|
34
|
+
"minHeight": undefined,
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
>
|
|
38
|
+
Foo
|
|
39
|
+
</div>
|
|
40
|
+
`;
|
|
41
|
+
|
|
42
|
+
exports[`placeholder snapshot reqular 1`] = `
|
|
43
|
+
<div
|
|
44
|
+
className="placeholder"
|
|
45
|
+
style={
|
|
46
|
+
Object {
|
|
47
|
+
"minHeight": undefined,
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
>
|
|
51
|
+
Foo
|
|
52
|
+
</div>
|
|
53
|
+
`;
|
|
54
|
+
|
|
55
|
+
exports[`placeholder snapshot specific grid rowsRepeatValue 1`] = `
|
|
56
|
+
<div
|
|
57
|
+
className="placeholder"
|
|
58
|
+
style={
|
|
59
|
+
Object {
|
|
60
|
+
"gridTemplateColumns": "repeat(1, 1fr)",
|
|
61
|
+
"gridTemplateRows": "repeat(2, min-content)",
|
|
62
|
+
"minHeight": undefined,
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
>
|
|
66
|
+
Foo
|
|
67
|
+
</div>
|
|
68
|
+
`;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { shallow } from 'enzyme';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { PlaceHolder } from '../placeholder';
|
|
4
|
+
|
|
5
|
+
describe('placeholder', () => {
|
|
6
|
+
const wrapper = (extras) => {
|
|
7
|
+
const defaults = {
|
|
8
|
+
classes: {
|
|
9
|
+
placeholder: 'placeholder',
|
|
10
|
+
disabled: 'disabled',
|
|
11
|
+
over: 'over',
|
|
12
|
+
number: 'number',
|
|
13
|
+
},
|
|
14
|
+
};
|
|
15
|
+
const props = { ...defaults, ...extras };
|
|
16
|
+
return shallow(<PlaceHolder {...props}> Foo </PlaceHolder>);
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
describe('snapshot', () => {
|
|
20
|
+
it('reqular', () => {
|
|
21
|
+
const w = wrapper();
|
|
22
|
+
expect(w).toMatchSnapshot();
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
it('isOver: true', () => {
|
|
26
|
+
expect(wrapper({ isOver: true })).toMatchSnapshot();
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
it('disabled: true', () => {
|
|
30
|
+
expect(wrapper({ disabled: true })).toMatchSnapshot();
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
it('className', () => {
|
|
34
|
+
expect(wrapper({ className: 'bar' })).toMatchSnapshot();
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
it('specific grid rowsRepeatValue', () => {
|
|
38
|
+
const w = wrapper({
|
|
39
|
+
grid: {
|
|
40
|
+
rows: 2,
|
|
41
|
+
columns: 1,
|
|
42
|
+
rowsRepeatValue: 'min-content',
|
|
43
|
+
},
|
|
44
|
+
});
|
|
45
|
+
expect(w).toMatchSnapshot();
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
});
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { createContext, createElement } from 'react';
|
|
2
|
+
import { withUid } from '../uid-context';
|
|
3
|
+
|
|
4
|
+
jest.mock('react', () => ({
|
|
5
|
+
createElement: jest.fn((c) => c),
|
|
6
|
+
createContext: jest.fn().mockReturnValue({
|
|
7
|
+
Consumer: jest.fn((fn) => fn),
|
|
8
|
+
Provider: jest.fn(),
|
|
9
|
+
}),
|
|
10
|
+
}));
|
|
11
|
+
|
|
12
|
+
describe('id-context', () => {
|
|
13
|
+
describe('withUid', () => {
|
|
14
|
+
it('calls createElement', () => {
|
|
15
|
+
const Wrapped = withUid(() => ({}));
|
|
16
|
+
|
|
17
|
+
const Consumer = Wrapped({});
|
|
18
|
+
expect(createElement).toBeCalledWith(expect.any(Function), null, expect.anything());
|
|
19
|
+
});
|
|
20
|
+
});
|
|
21
|
+
});
|
|
@@ -4,12 +4,6 @@ import PropTypes from 'prop-types';
|
|
|
4
4
|
|
|
5
5
|
const preventInteractionStyle = {
|
|
6
6
|
flex: 1,
|
|
7
|
-
WebkitTouchCallout: 'none',
|
|
8
|
-
WebkitUserSelect: 'none',
|
|
9
|
-
KhtmlUserSelect: 'none',
|
|
10
|
-
MozUserSelect: 'none',
|
|
11
|
-
MsUserSelect: 'none',
|
|
12
|
-
UserSelect: 'none',
|
|
13
7
|
};
|
|
14
8
|
|
|
15
9
|
export class DroppablePlaceholder extends React.Component {
|
|
@@ -19,14 +13,23 @@ export class DroppablePlaceholder extends React.Component {
|
|
|
19
13
|
isOver: PropTypes.bool,
|
|
20
14
|
children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,
|
|
21
15
|
disabled: PropTypes.bool,
|
|
16
|
+
isVerticalPool: PropTypes.bool,
|
|
17
|
+
minHeight: PropTypes.number,
|
|
22
18
|
};
|
|
23
19
|
|
|
24
20
|
render() {
|
|
25
|
-
const { children, connectDropTarget, isOver, disabled, classes } = this.props;
|
|
21
|
+
const { children, connectDropTarget, isOver, disabled, classes, isVerticalPool, minHeight } = this.props;
|
|
26
22
|
|
|
27
23
|
return connectDropTarget(
|
|
28
24
|
<div style={preventInteractionStyle}>
|
|
29
|
-
<PlaceHolder
|
|
25
|
+
<PlaceHolder
|
|
26
|
+
disabled={disabled}
|
|
27
|
+
isOver={isOver}
|
|
28
|
+
choiceBoard={true}
|
|
29
|
+
className={classes}
|
|
30
|
+
isVerticalPool={isVerticalPool}
|
|
31
|
+
minHeight={minHeight}
|
|
32
|
+
>
|
|
30
33
|
{children}
|
|
31
34
|
</PlaceHolder>
|
|
32
35
|
</div>,
|
package/src/placeholder.jsx
CHANGED
|
@@ -3,9 +3,23 @@ import { withStyles } from '@material-ui/core/styles';
|
|
|
3
3
|
import classNames from 'classnames';
|
|
4
4
|
import PropTypes from 'prop-types';
|
|
5
5
|
import grey from '@material-ui/core/colors/grey';
|
|
6
|
+
import { color } from '@pie-lib/render-ui';
|
|
6
7
|
|
|
7
8
|
export const PlaceHolder = (props) => {
|
|
8
|
-
const {
|
|
9
|
+
const {
|
|
10
|
+
children,
|
|
11
|
+
classes,
|
|
12
|
+
className,
|
|
13
|
+
isOver,
|
|
14
|
+
type,
|
|
15
|
+
grid,
|
|
16
|
+
disabled,
|
|
17
|
+
choiceBoard,
|
|
18
|
+
isCategorize,
|
|
19
|
+
isVerticalPool,
|
|
20
|
+
minHeight,
|
|
21
|
+
} = props;
|
|
22
|
+
|
|
9
23
|
const names = classNames(
|
|
10
24
|
classes.placeholder,
|
|
11
25
|
disabled && classes.disabled,
|
|
@@ -19,14 +33,33 @@ export const PlaceHolder = (props) => {
|
|
|
19
33
|
if (grid && grid.columns) {
|
|
20
34
|
style.gridTemplateColumns = `repeat(${grid.columns}, 1fr)`;
|
|
21
35
|
}
|
|
36
|
+
|
|
22
37
|
if (grid && grid.rows) {
|
|
23
38
|
const repeatValue = grid.rowsRepeatValue || '1fr';
|
|
24
39
|
|
|
25
40
|
style.gridTemplateRows = `repeat(${grid.rows}, ${repeatValue})`;
|
|
26
41
|
}
|
|
27
42
|
|
|
43
|
+
// The "type" is only sent through placement-ordering / placeholder
|
|
44
|
+
// It can be "choice" or "target"
|
|
45
|
+
// We apply a different style for the "choice" type
|
|
46
|
+
// For any other type, use a dashed black border and a white fill
|
|
47
|
+
if (type === 'choice') {
|
|
48
|
+
style.border = `1px solid ${color.borderLight()}`;
|
|
49
|
+
style.background = color.backgroundDark();
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
const boardStyle = isCategorize ? classes.categorizeBoard : classes.board;
|
|
53
|
+
|
|
28
54
|
return (
|
|
29
|
-
<div
|
|
55
|
+
<div
|
|
56
|
+
style={{ ...style, minHeight: minHeight }}
|
|
57
|
+
className={classNames(
|
|
58
|
+
classes.noSelectStyles,
|
|
59
|
+
choiceBoard ? boardStyle : names,
|
|
60
|
+
isVerticalPool && classes.verticalPool,
|
|
61
|
+
)}
|
|
62
|
+
>
|
|
30
63
|
{children}
|
|
31
64
|
</div>
|
|
32
65
|
);
|
|
@@ -47,20 +80,31 @@ PlaceHolder.propTypes = {
|
|
|
47
80
|
index: PropTypes.number,
|
|
48
81
|
type: PropTypes.string,
|
|
49
82
|
disabled: PropTypes.bool,
|
|
83
|
+
isCategorize: PropTypes.bool,
|
|
84
|
+
isVerticalPool: PropTypes.bool,
|
|
85
|
+
minHeight: PropTypes.number,
|
|
50
86
|
};
|
|
51
87
|
|
|
52
88
|
const styles = (theme) => ({
|
|
89
|
+
noSelectStyles: {
|
|
90
|
+
WebkitTouchCallout: 'none',
|
|
91
|
+
WebkitUserSelect: 'none',
|
|
92
|
+
KhtmlUserSelect: 'none',
|
|
93
|
+
MozUserSelect: 'none',
|
|
94
|
+
MsUserSelect: 'none',
|
|
95
|
+
userSelect: 'none',
|
|
96
|
+
},
|
|
53
97
|
placeholder: {
|
|
54
98
|
width: '100%',
|
|
55
99
|
height: '100%',
|
|
56
|
-
background:
|
|
57
|
-
border: '1px solid #D1D1D1',
|
|
100
|
+
background: color.white(),
|
|
58
101
|
transition: 'background-color 200ms linear, border-color 200ms linear',
|
|
59
102
|
boxSizing: 'border-box',
|
|
60
103
|
display: 'grid',
|
|
61
104
|
gridRowGap: `${theme.spacing.unit}px`,
|
|
62
105
|
gridColumnGap: `${theme.spacing.unit}px`,
|
|
63
106
|
padding: theme.spacing.unit * 1,
|
|
107
|
+
border: `2px dashed ${color.black()}`,
|
|
64
108
|
},
|
|
65
109
|
disabled: {
|
|
66
110
|
boxShadow: 'none',
|
|
@@ -71,15 +115,30 @@ const styles = (theme) => ({
|
|
|
71
115
|
backgroundColor: `${grey[300]}`,
|
|
72
116
|
},
|
|
73
117
|
board: {
|
|
74
|
-
border: '1px solid #D1D1D1',
|
|
75
118
|
padding: theme.spacing.unit,
|
|
76
119
|
display: 'flex',
|
|
77
120
|
flexWrap: 'wrap',
|
|
78
121
|
alignItems: 'center',
|
|
79
|
-
minHeight: '
|
|
122
|
+
minHeight: '100px',
|
|
123
|
+
justifyContent: 'center',
|
|
124
|
+
overflow: 'hidden',
|
|
125
|
+
touchAction: 'none',
|
|
126
|
+
backgroundColor: color.backgroundDark(),
|
|
127
|
+
},
|
|
128
|
+
categorizeBoard: {
|
|
129
|
+
padding: theme.spacing.unit / 2,
|
|
130
|
+
display: 'flex',
|
|
131
|
+
flexWrap: 'wrap',
|
|
132
|
+
alignItems: 'center',
|
|
133
|
+
minHeight: '100px',
|
|
80
134
|
justifyContent: 'center',
|
|
81
135
|
overflow: 'hidden',
|
|
82
136
|
touchAction: 'none',
|
|
137
|
+
backgroundColor: color.backgroundDark(),
|
|
138
|
+
},
|
|
139
|
+
verticalPool: {
|
|
140
|
+
display: 'flex',
|
|
141
|
+
flexFlow: 'column wrap',
|
|
83
142
|
},
|
|
84
143
|
});
|
|
85
144
|
|
|
@@ -1,26 +1,28 @@
|
|
|
1
|
-
import React, { useEffect, useRef } from 'react';
|
|
1
|
+
import React, { useEffect, useRef, useState, useCallback } from 'react';
|
|
2
2
|
import { usePreview } from 'react-dnd-multi-backend';
|
|
3
|
-
import { PreviewPrompt } from '@pie-lib/render-ui';
|
|
3
|
+
import { PreviewPrompt, color } from '@pie-lib/render-ui';
|
|
4
4
|
import { renderMath } from '@pie-lib/math-rendering';
|
|
5
|
-
import { color } from '@pie-lib/render-ui';
|
|
6
5
|
|
|
7
6
|
const styles = {
|
|
8
7
|
maskBlank: {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
// this style is applied only on small screens and for touch devices when dragging, for drag-in-the-blank.
|
|
9
|
+
// It is styled to be identical to the drag-in-the-blank chip
|
|
10
|
+
backgroundColor: color.white(),
|
|
11
|
+
border: `1px solid ${color.text()}`,
|
|
12
|
+
color: color.text(),
|
|
13
|
+
alignItems: 'center',
|
|
14
|
+
display: 'inline-flex',
|
|
15
|
+
height: 'initial',
|
|
12
16
|
minHeight: '32px',
|
|
13
|
-
|
|
17
|
+
fontSize: 'inherit',
|
|
18
|
+
whiteSpace: 'pre-wrap',
|
|
14
19
|
maxWidth: '374px',
|
|
15
|
-
|
|
16
|
-
padding: '
|
|
17
|
-
alignItems: 'center',
|
|
18
|
-
justifyContent: 'center',
|
|
19
|
-
borderRadius: '16px',
|
|
20
|
+
borderRadius: '3px',
|
|
21
|
+
padding: '12px',
|
|
20
22
|
},
|
|
21
23
|
ica: {
|
|
22
24
|
backgroundColor: color.background(),
|
|
23
|
-
border: `1px solid ${color.
|
|
25
|
+
border: `1px solid ${color.borderDark()}`,
|
|
24
26
|
display: 'flex',
|
|
25
27
|
alignItems: 'center',
|
|
26
28
|
justifyContent: 'center',
|
|
@@ -71,36 +73,73 @@ const getPrompt = (itemType, item) => {
|
|
|
71
73
|
}
|
|
72
74
|
};
|
|
73
75
|
|
|
74
|
-
const getCustomStyle = (itemType, item, style) => {
|
|
75
|
-
const
|
|
76
|
-
|
|
76
|
+
const getCustomStyle = (itemType, item, touchPosition, style) => {
|
|
77
|
+
const transform = `translate(${touchPosition.x}px, ${touchPosition.y}px)`;
|
|
78
|
+
const top = style?.top || 0;
|
|
79
|
+
const left = style?.left || 0;
|
|
80
|
+
const position = style?.position || 'fixed';
|
|
81
|
+
|
|
82
|
+
return {
|
|
83
|
+
position,
|
|
84
|
+
top,
|
|
85
|
+
left,
|
|
86
|
+
transform,
|
|
77
87
|
...(itemType === 'MaskBlank' ? styles.maskBlank : {}),
|
|
78
88
|
...(item?.itemType === 'categorize' ? styles.categorize : {}),
|
|
79
89
|
...(itemType === 'Answer' ? styles.matchList : {}),
|
|
80
90
|
...(itemType === 'Tile' ? styles.placementOrdering : {}),
|
|
81
91
|
...(itemType === 'react-dnd-response' ? styles.ica : {}),
|
|
82
92
|
};
|
|
83
|
-
|
|
84
|
-
return baseStyle;
|
|
85
93
|
};
|
|
86
94
|
|
|
87
95
|
const PreviewComponent = () => {
|
|
88
96
|
const preview = usePreview();
|
|
89
97
|
const { itemType, item, style, display } = preview;
|
|
98
|
+
const [touchPosition, setTouchPosition] = useState({ x: 0, y: 0 });
|
|
99
|
+
const [zoomLevel, setZoomLevel] = useState(1);
|
|
100
|
+
|
|
101
|
+
const handleTouchMove = useCallback(
|
|
102
|
+
(event) => {
|
|
103
|
+
if (event.touches.length > 0) {
|
|
104
|
+
const touch = event.touches[0];
|
|
105
|
+
const touchOffset = 1;
|
|
106
|
+
setTouchPosition({
|
|
107
|
+
x: (touch.clientX + touchOffset) / zoomLevel,
|
|
108
|
+
y: (touch.clientY + touchOffset) / zoomLevel,
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
},
|
|
112
|
+
[zoomLevel],
|
|
113
|
+
);
|
|
90
114
|
|
|
91
115
|
const root = useRef(null);
|
|
92
116
|
|
|
93
117
|
useEffect(() => {
|
|
94
118
|
if (display && root.current) {
|
|
95
119
|
renderMath(root.current);
|
|
120
|
+
|
|
121
|
+
// Adjusted for precise zoom level calculation in Online Testing, targeting the specific class pattern .asmt-zoomable.asmt-zoom-NR .asmt-question .padding
|
|
122
|
+
const zoomAffectedElement = document.querySelector('.padding') || document.body;
|
|
123
|
+
|
|
124
|
+
setZoomLevel(parseFloat(getComputedStyle(zoomAffectedElement).zoom) || 1);
|
|
96
125
|
}
|
|
97
126
|
}, [display, item?.choice?.value, item?.value, itemType, item]);
|
|
98
127
|
|
|
128
|
+
useEffect(() => {
|
|
129
|
+
const touchMoveListener = (event) => handleTouchMove(event);
|
|
130
|
+
if (display) {
|
|
131
|
+
window.addEventListener('touchmove', touchMoveListener);
|
|
132
|
+
}
|
|
133
|
+
return () => {
|
|
134
|
+
window.removeEventListener('touchmove', touchMoveListener);
|
|
135
|
+
};
|
|
136
|
+
}, [display, handleTouchMove]);
|
|
137
|
+
|
|
99
138
|
if (!display) {
|
|
100
139
|
return null;
|
|
101
140
|
}
|
|
102
141
|
|
|
103
|
-
const customStyle = getCustomStyle(itemType, item, style);
|
|
142
|
+
const customStyle = getCustomStyle(itemType, item, touchPosition, style);
|
|
104
143
|
|
|
105
144
|
const prompt = getPrompt(itemType, item);
|
|
106
145
|
|
package/src/with-drag-context.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import MultiBackend, { TouchTransition } from 'react-dnd-multi-backend';
|
|
2
|
+
import MultiBackend, { TouchTransition, MouseTransition } from 'react-dnd-multi-backend';
|
|
3
3
|
import { DndProvider } from 'react-dnd';
|
|
4
4
|
import { TouchBackend } from 'react-dnd-touch-backend';
|
|
5
5
|
import { HTML5Backend } from 'react-dnd-html5-backend';
|
|
@@ -7,7 +7,10 @@ import { HTML5Backend } from 'react-dnd-html5-backend';
|
|
|
7
7
|
import PreviewComponent from './preview-component';
|
|
8
8
|
|
|
9
9
|
const backends = [
|
|
10
|
-
{
|
|
10
|
+
{
|
|
11
|
+
backend: HTML5Backend,
|
|
12
|
+
transition: MouseTransition,
|
|
13
|
+
},
|
|
11
14
|
{
|
|
12
15
|
backend: TouchBackend,
|
|
13
16
|
options: { enableMouseEvents: true, enableTouchEvents: true },
|
|
@@ -17,9 +20,13 @@ const backends = [
|
|
|
17
20
|
},
|
|
18
21
|
];
|
|
19
22
|
|
|
20
|
-
export default (Component) =>
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
23
|
+
export default (Component) => props => {
|
|
24
|
+
const isClient = typeof window !== 'undefined';
|
|
25
|
+
|
|
26
|
+
return (
|
|
27
|
+
<DndProvider backend={MultiBackend} options={{ backends }} {...(isClient && { context: window })}>
|
|
28
|
+
<Component {...props} />
|
|
29
|
+
<PreviewComponent />
|
|
30
|
+
</DndProvider>
|
|
31
|
+
);
|
|
32
|
+
};
|
package/README.md
DELETED
package/lib/choice.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/choice.jsx"],"names":["DRAG_TYPE","Choice","props","classes","className","children","connectDragSource","choice","React","Component","PropTypes","object","isRequired","string","oneOfType","arrayOf","node","func","styles","theme","backgroundColor","palette","background","paper","border","grey","padding","spacing","unit","minHeight","minWidth","maxWidth","choiceSource","canDrag","disabled","beginDrag","out","choiceId","id","from","category","alternateResponseIndex","choiceIndex","endDrag","monitor","didDrop","item","getItem","onRemoveChoice","styledChoice","DraggableChoice","uid","connect","dragSource","connectDragPreview","dragPreview","isDragging"],"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 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"],"file":"choice.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/drag-in-the-blank-dp.jsx"],"names":["spec","canDrop","props","disabled","drop","dropped","WithTarget","dragType","types","db","connect","monitor","connectDropTarget","dropTarget","isOver","DroppablePlaceholder"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AAEO,IAAMA,IAAI,GAAG;AAClBC,EAAAA,OAAO,EAAE,iBAACC,KAAD,EAAW;AAClB,WAAO,CAACA,KAAK,CAACC,QAAd;AACD,GAHiB;AAIlBC,EAAAA,IAAI,EAAE;AAAA,WAAO;AACXC,MAAAA,OAAO,EAAE;AADE,KAAP;AAAA;AAJY,CAAb;;AASP,IAAMC,UAAU,GAAG,0BAAWC,qBAASC,KAAT,CAAeC,EAA1B,EAA8BT,IAA9B,EAAoC,UAACU,OAAD,EAAUC,OAAV;AAAA,SAAuB;AAC5EC,IAAAA,iBAAiB,EAAEF,OAAO,CAACG,UAAR,EADyD;AAE5EC,IAAAA,MAAM,EAAEH,OAAO,CAACG,MAAR;AAFoE,GAAvB;AAAA,CAApC,EAGfC,0CAHe,CAAnB;eAKeT,U","sourcesContent":["import { DropTarget } from 'react-dnd';\nimport { DroppablePlaceholder } from '../lib/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"],"file":"drag-in-the-blank-dp.js"}
|
package/lib/drag-type.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/drag-type.js"],"names":["types","ica","ml","db"],"mappings":";;;;;;eAAe;AACbA,EAAAA,KAAK,EAAE;AACLC,IAAAA,GAAG,EAAE,oBADA;AAELC,IAAAA,EAAE,EAAE,QAFC;AAGLC,IAAAA,EAAE,EAAE;AAHC;AADM,C","sourcesContent":["export default {\n types: {\n ica: 'react-dnd-response',\n ml: 'Answer',\n db: 'MaskBlank',\n },\n};\n"],"file":"drag-type.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/droppable-placeholder.jsx"],"names":["preventInteractionStyle","flex","WebkitTouchCallout","WebkitUserSelect","KhtmlUserSelect","MozUserSelect","MsUserSelect","UserSelect","DroppablePlaceholder","props","children","connectDropTarget","isOver","disabled","classes","React","Component","PropTypes","object","func","isRequired","bool","oneOfType","arrayOf","node"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;AAEA,IAAMA,uBAAuB,GAAG;AAC9BC,EAAAA,IAAI,EAAE,CADwB;AAE9BC,EAAAA,kBAAkB,EAAE,MAFU;AAG9BC,EAAAA,gBAAgB,EAAE,MAHY;AAI9BC,EAAAA,eAAe,EAAE,MAJa;AAK9BC,EAAAA,aAAa,EAAE,MALe;AAM9BC,EAAAA,YAAY,EAAE,MANgB;AAO9BC,EAAAA,UAAU,EAAE;AAPkB,CAAhC;;IAUaC,oB;;;;;;;;;;;;WASX,kBAAS;AACP,wBAAmE,KAAKC,KAAxE;AAAA,UAAQC,QAAR,eAAQA,QAAR;AAAA,UAAkBC,iBAAlB,eAAkBA,iBAAlB;AAAA,UAAqCC,MAArC,eAAqCA,MAArC;AAAA,UAA6CC,QAA7C,eAA6CA,QAA7C;AAAA,UAAuDC,OAAvD,eAAuDA,OAAvD;AAEA,aAAOH,iBAAiB,eACtB;AAAK,QAAA,KAAK,EAAEX;AAAZ,sBACE,gCAAC,uBAAD;AAAa,QAAA,QAAQ,EAAEa,QAAvB;AAAiC,QAAA,MAAM,EAAED,MAAzC;AAAiD,QAAA,WAAW,EAAE,IAA9D;AAAoE,QAAA,SAAS,EAAEE;AAA/E,SACGJ,QADH,CADF,CADsB,CAAxB;AAOD;;;EAnBuCK,kBAAMC,S;;;iCAAnCR,oB,eACQ;AACjBM,EAAAA,OAAO,EAAEG,sBAAUC,MADF;AAEjBP,EAAAA,iBAAiB,EAAEM,sBAAUE,IAAV,CAAeC,UAFjB;AAGjBR,EAAAA,MAAM,EAAEK,sBAAUI,IAHD;AAIjBX,EAAAA,QAAQ,EAAEO,sBAAUK,SAAV,CAAoB,CAACL,sBAAUM,OAAV,CAAkBN,sBAAUO,IAA5B,CAAD,EAAoCP,sBAAUO,IAA9C,CAApB,EAAyEJ,UAJlE;AAKjBP,EAAAA,QAAQ,EAAEI,sBAAUI;AALH,C","sourcesContent":["import React from 'react';\nimport PlaceHolder from './placeholder';\nimport PropTypes from 'prop-types';\n\nconst preventInteractionStyle = {\n flex: 1,\n WebkitTouchCallout: 'none',\n WebkitUserSelect: 'none',\n KhtmlUserSelect: 'none',\n MozUserSelect: 'none',\n MsUserSelect: 'none',\n UserSelect: 'none',\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 };\n\n render() {\n const { children, connectDropTarget, isOver, disabled, classes } = this.props;\n\n return connectDropTarget(\n <div style={preventInteractionStyle}>\n <PlaceHolder disabled={disabled} isOver={isOver} choiceBoard={true} className={classes}>\n {children}\n </PlaceHolder>\n </div>,\n );\n }\n}\n"],"file":"droppable-placeholder.js"}
|
package/lib/ica-dp.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/ica-dp.jsx"],"names":["spec","canDrop","props","disabled","drop","monitor","item","getItem","onRemoveAnswer","WithTarget","dragType","types","ica","connect","connectDropTarget","dropTarget","isOver","DroppablePlaceholder"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AAEO,IAAMA,IAAI,GAAG;AAClBC,EAAAA,OAAO,EAAE,iBAACC,KAAD,EAAW;AAClB,WAAO,CAACA,KAAK,CAACC,QAAd;AACD,GAHiB;AAIlBC,EAAAA,IAAI,EAAE,cAACF,KAAD,EAAQG,OAAR,EAAoB;AACxB,QAAMC,IAAI,GAAGD,OAAO,CAACE,OAAR,EAAb;;AAEA,QAAIL,KAAK,CAACM,cAAV,EAA0B;AACxBN,MAAAA,KAAK,CAACM,cAAN,CAAqBF,IAArB;AACD;AACF;AAViB,CAAb;;AAaP,IAAMG,UAAU,GAAG,0BAAWC,qBAASC,KAAT,CAAeC,GAA1B,EAA+BZ,IAA/B,EAAqC,UAACa,OAAD,EAAUR,OAAV;AAAA,SAAuB;AAC7ES,IAAAA,iBAAiB,EAAED,OAAO,CAACE,UAAR,EAD0D;AAE7EC,IAAAA,MAAM,EAAEX,OAAO,CAACW,MAAR;AAFqE,GAAvB;AAAA,CAArC,EAGfC,0CAHe,CAAnB;eAKeR,U","sourcesContent":["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"],"file":"ica-dp.js"}
|
package/lib/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAEA;;AACA;;AACA;;AACA;;AACA;;;;AACA;;AACA;;AACA","sourcesContent":["import { DragSource, DropTarget } from 'react-dnd';\n\nimport PlaceHolder from './placeholder';\nimport Choice from './choice';\nimport withDragContext from './with-drag-context';\nimport swap from './swap';\nimport * as uid from './uid-context';\nimport MatchDroppablePlaceholder from './match-list-dp';\nimport DragDroppablePlaceholder from './drag-in-the-blank-dp';\nimport ICADroppablePlaceholder from './ica-dp';\n\nexport {\n PlaceHolder,\n MatchDroppablePlaceholder,\n DragDroppablePlaceholder,\n ICADroppablePlaceholder,\n withDragContext,\n Choice,\n swap,\n uid,\n DragSource,\n DropTarget,\n};\n"],"file":"index.js"}
|
package/lib/match-list-dp.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/match-list-dp.jsx"],"names":["spec","canDrop","props","disabled","drop","monitor","item","getItem","onRemoveAnswer","promptId","WithTarget","dragType","types","ml","connect","connectDropTarget","dropTarget","isOver","DroppablePlaceholder"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AAEO,IAAMA,IAAI,GAAG;AAClBC,EAAAA,OAAO,EAAE,iBAACC,KAAD,EAAW;AAClB,WAAO,CAACA,KAAK,CAACC,QAAd;AACD,GAHiB;AAIlBC,EAAAA,IAAI,EAAE,cAACF,KAAD,EAAQG,OAAR,EAAoB;AACxB,QAAMC,IAAI,GAAGD,OAAO,CAACE,OAAR,EAAb;;AAEA,QAAIL,KAAK,CAACM,cAAV,EAA0B;AACxBN,MAAAA,KAAK,CAACM,cAAN,CAAqBF,IAAI,CAACG,QAA1B;AACD;AACF;AAViB,CAAb;;AAaP,IAAMC,UAAU,GAAG,0BAAWC,qBAASC,KAAT,CAAeC,EAA1B,EAA8Bb,IAA9B,EAAoC,UAACc,OAAD,EAAUT,OAAV;AAAA,SAAuB;AAC5EU,IAAAA,iBAAiB,EAAED,OAAO,CAACE,UAAR,EADyD;AAE5EC,IAAAA,MAAM,EAAEZ,OAAO,CAACY,MAAR;AAFoE,GAAvB;AAAA,CAApC,EAGfC,0CAHe,CAAnB;eAKeR,U","sourcesContent":["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"],"file":"match-list-dp.js"}
|
package/lib/placeholder.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/placeholder.jsx"],"names":["PlaceHolder","props","children","classes","className","isOver","type","grid","disabled","choiceBoard","names","placeholder","over","style","columns","gridTemplateColumns","rows","repeatValue","rowsRepeatValue","gridTemplateRows","board","propTypes","PropTypes","object","isRequired","bool","shape","number","string","oneOfType","arrayOf","node","index","styles","theme","width","height","background","palette","grey","border","transition","boxSizing","display","gridRowGap","spacing","unit","gridColumnGap","padding","boxShadow","paper","backgroundColor","flexWrap","alignItems","minHeight","justifyContent","overflow","touchAction"],"mappings":"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","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';\n\nexport const PlaceHolder = (props) => {\n const { children, classes, className, isOver, type, grid, disabled, choiceBoard } = props;\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 if (grid && grid.rows) {\n const repeatValue = grid.rowsRepeatValue || '1fr';\n\n style.gridTemplateRows = `repeat(${grid.rows}, ${repeatValue})`;\n }\n\n return (\n <div style={style} className={choiceBoard ? classes.board : names}>\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};\n\nconst styles = (theme) => ({\n placeholder: {\n width: '100%',\n height: '100%',\n background: theme.palette.grey[200],\n border: '1px solid #D1D1D1',\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 },\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 border: '1px solid #D1D1D1',\n padding: theme.spacing.unit,\n display: 'flex',\n flexWrap: 'wrap',\n alignItems: 'center',\n minHeight: '200px',\n justifyContent: 'center',\n overflow: 'hidden',\n touchAction: 'none',\n },\n});\n\nexport default withStyles(styles)(PlaceHolder);\n"],"file":"placeholder.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/preview-component.jsx"],"names":["styles","maskBlank","border","color","minWidth","minHeight","height","maxWidth","display","padding","alignItems","justifyContent","borderRadius","ica","backgroundColor","background","primary","marginLeft","marginTop","width","categorize","text","matchList","boxSizing","placementOrdering","getPrompt","itemType","item","choice","value","undefined","getCustomStyle","style","baseStyle","PreviewComponent","preview","root","current","customStyle","prompt"],"mappings":"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","sourcesContent":["import React, { useEffect, useRef } from 'react';\nimport { usePreview } from 'react-dnd-multi-backend';\nimport { PreviewPrompt } from '@pie-lib/render-ui';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport { color } from '@pie-lib/render-ui';\n\nconst styles = {\n maskBlank: {\n border: '1px solid black',\n color: 'black',\n minWidth: '90px',\n minHeight: '32px',\n height: 'auto',\n maxWidth: '374px',\n display: 'flex',\n padding: '4px',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: '16px',\n },\n ica: {\n backgroundColor: color.background(),\n border: `1px solid ${color.primary()}`,\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, style) => {\n const baseStyle = {\n ...style,\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 return baseStyle;\n};\n\nconst PreviewComponent = () => {\n const preview = usePreview();\n const { itemType, item, style, display } = preview;\n\n const root = useRef(null);\n\n useEffect(() => {\n if (display && root.current) {\n renderMath(root.current);\n }\n }, [display, item?.choice?.value, item?.value, itemType, item]);\n\n if (!display) {\n return null;\n }\n\n const customStyle = getCustomStyle(itemType, item, 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"],"file":"preview-component.js"}
|
package/lib/swap.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/swap.js"],"names":["arr","fromIndex","toIndex","length","undefined","Error","update","tmp"],"mappings":";;;;;;;;;AAAA;;eAEe,kBAACA,GAAD,EAAMC,SAAN,EAAiBC,OAAjB,EAA6B;AAC1C,MAAI,CAACF,GAAD,IAAQA,GAAG,CAACG,MAAJ,IAAc,CAAtB,IAA2BF,SAAS,KAAKG,SAAzC,IAAsDF,OAAO,KAAKE,SAAtE,EAAiF;AAC/E,UAAM,IAAIC,KAAJ,gEAAkEL,GAAlE,eAA0EC,SAA1E,cAAuFC,OAAvF,EAAN;AACD;;AAED,MAAMI,MAAM,GAAG,2BAAUN,GAAV,CAAf;AACA,MAAMO,GAAG,GAAGP,GAAG,CAACE,OAAD,CAAf;AACAI,EAAAA,MAAM,CAACJ,OAAD,CAAN,GAAkBI,MAAM,CAACL,SAAD,CAAxB;AACAK,EAAAA,MAAM,CAACL,SAAD,CAAN,GAAoBM,GAApB;AAEA,SAAOD,MAAP;AACD,C","sourcesContent":["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"],"file":"swap.js"}
|
package/lib/uid-context.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/uid-context.js"],"names":["React","createContext","Consumer","Provider","generateId","Math","random","toFixed","withUid","Component","Wrapped","props","uid"],"mappings":";;;;;;;;;;;AAAA;;AAEA,wCAA+BA,kBAAMC,aAAN,CAAoB,CAAC,CAArB,CAA/B;AAAA,IAAQC,QAAR,wBAAQA,QAAR;AAAA,IAAkBC,QAAlB,wBAAkBA,QAAlB;;;;;AAIO,IAAMC,UAAU,GAAG,SAAbA,UAAa;AAAA,SAAM,CAACC,IAAI,CAACC,MAAL,KAAgB,OAAjB,EAA0BC,OAA1B,CAAkC,CAAlC,CAAN;AAAA,CAAnB;;;;AAEA,IAAMC,OAAO,GAAG,SAAVA,OAAU,CAACC,SAAD,EAAe;AACpC,MAAMC,OAAO,GAAG,SAAVA,OAAU,CAACC,KAAD;AAAA,wBAAW,gCAAC,QAAD,QAAW,UAACC,GAAD;AAAA,0BAAS,gCAAC,SAAD,gCAAeD,KAAf;AAAsB,QAAA,GAAG,EAAEC;AAA3B,SAAT;AAAA,KAAX,CAAX;AAAA,GAAhB;;AAEA,SAAOF,OAAP;AACD,CAJM","sourcesContent":["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"],"file":"uid-context.js"}
|