@pie-lib/mask-markup 2.0.0-beta.1 → 2.0.0-beta.2
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 +143 -35
- package/lib/choices/choice.js +22 -31
- package/lib/choices/choice.js.map +1 -1
- package/lib/choices/index.js +9 -33
- package/lib/choices/index.js.map +1 -1
- package/lib/componentize.js +1 -4
- package/lib/componentize.js.map +1 -1
- package/lib/components/blank.js +61 -86
- package/lib/components/blank.js.map +1 -1
- package/lib/components/correct-input.js +9 -25
- package/lib/components/correct-input.js.map +1 -1
- package/lib/components/dropdown.js +11 -37
- package/lib/components/dropdown.js.map +1 -1
- package/lib/components/input.js +14 -17
- package/lib/components/input.js.map +1 -1
- package/lib/constructed-response.js +11 -14
- package/lib/constructed-response.js.map +1 -1
- package/lib/drag-in-the-blank.js +21 -50
- package/lib/drag-in-the-blank.js.map +1 -1
- package/lib/index.js +1 -7
- package/lib/index.js.map +1 -1
- package/lib/inline-dropdown.js +6 -11
- package/lib/inline-dropdown.js.map +1 -1
- package/lib/mask.js +8 -49
- package/lib/mask.js.map +1 -1
- package/lib/new-serialization.js +6 -59
- package/lib/new-serialization.js.map +1 -0
- package/lib/parse-html.js +7 -6
- package/lib/parse-html.js.map +1 -0
- package/lib/serialization.js +9 -42
- package/lib/serialization.js.map +1 -1
- package/lib/test-serializer.js +4 -55
- package/lib/test-serializer.js.map +1 -0
- package/lib/with-mask.js +6 -30
- package/lib/with-mask.js.map +1 -1
- package/package.json +7 -7
- package/src/choices/choice.jsx +27 -13
- package/src/choices/index.jsx +17 -13
- package/src/components/blank.jsx +43 -31
- package/src/components/correct-input.jsx +18 -18
- package/src/components/dropdown.jsx +27 -38
- package/src/components/input.jsx +6 -3
- package/src/constructed-response.jsx +5 -4
- package/src/drag-in-the-blank.jsx +12 -12
- package/src/index.js +1 -8
- package/src/inline-dropdown.jsx +4 -3
- package/src/mask.jsx +13 -14
- package/src/new-serialization.jsx +19 -19
- package/src/parse-html.js +1 -1
- package/src/serialization.js +19 -14
- package/src/test-serializer.js +9 -9
- package/src/with-mask.jsx +2 -9
package/lib/choices/index.js
CHANGED
|
@@ -1,72 +1,49 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports["default"] = void 0;
|
|
9
|
-
|
|
10
8
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
-
|
|
12
9
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
|
-
|
|
14
10
|
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
15
|
-
|
|
16
11
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
17
|
-
|
|
18
12
|
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
19
|
-
|
|
20
13
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
21
|
-
|
|
22
14
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
23
|
-
|
|
24
15
|
var _react = _interopRequireDefault(require("react"));
|
|
25
|
-
|
|
26
16
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
27
|
-
|
|
28
17
|
var _findKey = _interopRequireDefault(require("lodash/findKey"));
|
|
29
|
-
|
|
30
18
|
var _choice = _interopRequireDefault(require("./choice"));
|
|
31
|
-
|
|
19
|
+
var _dragInTheBlankDp = _interopRequireDefault(require("@pie-lib/drag/lib/drag-in-the-blank-dp"));
|
|
32
20
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
33
|
-
|
|
34
21
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
35
|
-
|
|
36
22
|
var Choices = /*#__PURE__*/function (_React$Component) {
|
|
37
23
|
(0, _inherits2["default"])(Choices, _React$Component);
|
|
38
|
-
|
|
39
24
|
var _super = _createSuper(Choices);
|
|
40
|
-
|
|
41
25
|
function Choices() {
|
|
42
26
|
var _this;
|
|
43
|
-
|
|
44
27
|
(0, _classCallCheck2["default"])(this, Choices);
|
|
45
|
-
|
|
46
28
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
47
29
|
args[_key] = arguments[_key];
|
|
48
30
|
}
|
|
49
|
-
|
|
50
31
|
_this = _super.call.apply(_super, [this].concat(args));
|
|
51
32
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "getStyleForWrapper", function () {
|
|
52
33
|
var choicePosition = _this.props.choicePosition;
|
|
53
|
-
|
|
54
34
|
switch (choicePosition) {
|
|
55
35
|
case 'above':
|
|
56
36
|
return {
|
|
57
37
|
margin: '0 0 40px 0'
|
|
58
38
|
};
|
|
59
|
-
|
|
60
39
|
case 'below':
|
|
61
40
|
return {
|
|
62
41
|
margin: '40px 0 0 0'
|
|
63
42
|
};
|
|
64
|
-
|
|
65
43
|
case 'right':
|
|
66
44
|
return {
|
|
67
45
|
margin: '0 0 0 40px'
|
|
68
46
|
};
|
|
69
|
-
|
|
70
47
|
default:
|
|
71
48
|
return {
|
|
72
49
|
margin: '0 40px 0 0'
|
|
@@ -75,20 +52,18 @@ var Choices = /*#__PURE__*/function (_React$Component) {
|
|
|
75
52
|
});
|
|
76
53
|
return _this;
|
|
77
54
|
}
|
|
78
|
-
|
|
79
55
|
(0, _createClass2["default"])(Choices, [{
|
|
80
56
|
key: "render",
|
|
81
57
|
value: function render() {
|
|
82
58
|
var _this$props = this.props,
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
59
|
+
disabled = _this$props.disabled,
|
|
60
|
+
duplicates = _this$props.duplicates,
|
|
61
|
+
choices = _this$props.choices,
|
|
62
|
+
value = _this$props.value;
|
|
87
63
|
var filteredChoices = choices.filter(function (c) {
|
|
88
64
|
if (duplicates === true) {
|
|
89
65
|
return true;
|
|
90
66
|
}
|
|
91
|
-
|
|
92
67
|
var foundChoice = (0, _findKey["default"])(value, function (v) {
|
|
93
68
|
return v === c.id;
|
|
94
69
|
});
|
|
@@ -97,18 +72,19 @@ var Choices = /*#__PURE__*/function (_React$Component) {
|
|
|
97
72
|
var elementStyle = this.getStyleForWrapper();
|
|
98
73
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
99
74
|
style: elementStyle
|
|
75
|
+
}, /*#__PURE__*/_react["default"].createElement(_dragInTheBlankDp["default"], {
|
|
76
|
+
disabled: disabled
|
|
100
77
|
}, filteredChoices.map(function (c, index) {
|
|
101
78
|
return /*#__PURE__*/_react["default"].createElement(_choice["default"], {
|
|
102
79
|
key: "".concat(c.value, "-").concat(index),
|
|
103
80
|
disabled: disabled,
|
|
104
81
|
choice: c
|
|
105
82
|
});
|
|
106
|
-
}));
|
|
83
|
+
})));
|
|
107
84
|
}
|
|
108
85
|
}]);
|
|
109
86
|
return Choices;
|
|
110
87
|
}(_react["default"].Component);
|
|
111
|
-
|
|
112
88
|
exports["default"] = Choices;
|
|
113
89
|
(0, _defineProperty2["default"])(Choices, "propTypes", {
|
|
114
90
|
disabled: _propTypes["default"].bool,
|
|
@@ -120,4 +96,4 @@ exports["default"] = Choices;
|
|
|
120
96
|
value: _propTypes["default"].object,
|
|
121
97
|
choicePosition: _propTypes["default"].string.isRequired
|
|
122
98
|
});
|
|
123
|
-
//# sourceMappingURL=
|
|
99
|
+
//# sourceMappingURL=index.js.map
|
package/lib/choices/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["Choices","choicePosition","props","margin","disabled","duplicates","choices","
|
|
1
|
+
{"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_propTypes","_findKey","_choice","_dragInTheBlankDp","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","Reflect","construct","arguments","apply","_possibleConstructorReturn2","sham","Proxy","Boolean","prototype","valueOf","call","e","Choices","_React$Component","_inherits2","_super","_this","_classCallCheck2","_len","length","args","Array","_key","concat","_defineProperty2","_assertThisInitialized2","choicePosition","props","margin","_createClass2","key","value","render","_this$props","disabled","duplicates","choices","filteredChoices","filter","c","foundChoice","findKey","v","id","undefined","elementStyle","getStyleForWrapper","createElement","style","map","index","choice","React","Component","exports","PropTypes","bool","arrayOf","shape","label","string","object","isRequired"],"sources":["../../src/choices/index.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport findKey from 'lodash/findKey';\nimport Choice from './choice';\nimport DragDroppablePlaceholder from '@pie-lib/drag/lib/drag-in-the-blank-dp';\n\nexport default class Choices extends React.Component {\n static propTypes = {\n disabled: PropTypes.bool,\n duplicates: PropTypes.bool,\n choices: PropTypes.arrayOf(PropTypes.shape({ label: PropTypes.string, value: PropTypes.string })),\n value: PropTypes.object,\n choicePosition: PropTypes.string.isRequired,\n };\n\n getStyleForWrapper = () => {\n const { choicePosition } = this.props;\n\n switch (choicePosition) {\n case 'above':\n return {\n margin: '0 0 40px 0',\n };\n\n case 'below':\n return {\n margin: '40px 0 0 0',\n };\n\n case 'right':\n return {\n margin: '0 0 0 40px',\n };\n\n default:\n return {\n margin: '0 40px 0 0',\n };\n }\n };\n\n render() {\n const { disabled, duplicates, choices, value } = this.props;\n const filteredChoices = choices.filter((c) => {\n if (duplicates === true) {\n return true;\n }\n const foundChoice = findKey(value, (v) => v === c.id);\n return foundChoice === undefined;\n });\n const elementStyle = this.getStyleForWrapper();\n\n return (\n <div style={elementStyle}>\n <DragDroppablePlaceholder disabled={disabled}>\n {filteredChoices.map((c, index) => (\n <Choice key={`${c.value}-${index}`} disabled={disabled} choice={c} />\n ))}\n </DragDroppablePlaceholder>\n </div>\n );\n }\n}\n"],"mappings":"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"}
|
package/lib/componentize.js
CHANGED
|
@@ -5,14 +5,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports["default"] = void 0;
|
|
7
7
|
var REGEX = /\{\{(\d+)\}\}/g;
|
|
8
|
-
|
|
9
8
|
var _default = function _default(s, t) {
|
|
10
9
|
if (!s) {
|
|
11
10
|
return {
|
|
12
11
|
markup: ''
|
|
13
12
|
};
|
|
14
13
|
}
|
|
15
|
-
|
|
16
14
|
var markup = s.replace(REGEX, function (match, g) {
|
|
17
15
|
return "<span data-component=\"".concat(t, "\" data-id=\"").concat(g, "\"></span>");
|
|
18
16
|
});
|
|
@@ -20,6 +18,5 @@ var _default = function _default(s, t) {
|
|
|
20
18
|
markup: markup
|
|
21
19
|
};
|
|
22
20
|
};
|
|
23
|
-
|
|
24
21
|
exports["default"] = _default;
|
|
25
|
-
//# sourceMappingURL=
|
|
22
|
+
//# sourceMappingURL=componentize.js.map
|
package/lib/componentize.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"componentize.js","names":["REGEX","s","t","markup","replace","match","g"],"sources":["../src/componentize.js"],"sourcesContent":["const REGEX = /\\{\\{(\\d+)\\}\\}/g;\n\nexport default (s, t) => {\n if (!s) {\n return { markup: '' };\n }\n\n const markup = s.replace(REGEX, (match, g) => {\n return `<span data-component=\"${t}\" data-id=\"${g}\"></span>`;\n });\n\n return { markup };\n};\n"],"mappings":";;;;;;AAAA,IAAMA,KAAK,GAAG,
|
|
1
|
+
{"version":3,"file":"componentize.js","names":["REGEX","_default","s","t","markup","replace","match","g","concat","exports"],"sources":["../src/componentize.js"],"sourcesContent":["const REGEX = /\\{\\{(\\d+)\\}\\}/g;\n\nexport default (s, t) => {\n if (!s) {\n return { markup: '' };\n }\n\n const markup = s.replace(REGEX, (match, g) => {\n return `<span data-component=\"${t}\" data-id=\"${g}\"></span>`;\n });\n\n return { markup };\n};\n"],"mappings":";;;;;;AAAA,IAAMA,KAAK,GAAG,gBAAgB;AAAC,IAAAC,QAAA,GAEhB,SAAAA,SAACC,CAAC,EAAEC,CAAC,EAAK;EACvB,IAAI,CAACD,CAAC,EAAE;IACN,OAAO;MAAEE,MAAM,EAAE;IAAG,CAAC;EACvB;EAEA,IAAMA,MAAM,GAAGF,CAAC,CAACG,OAAO,CAACL,KAAK,EAAE,UAACM,KAAK,EAAEC,CAAC,EAAK;IAC5C,iCAAAC,MAAA,CAAgCL,CAAC,mBAAAK,MAAA,CAAcD,CAAC;EAClD,CAAC,CAAC;EAEF,OAAO;IAAEH,MAAM,EAANA;EAAO,CAAC;AACnB,CAAC;AAAAK,OAAA,cAAAR,QAAA"}
|
package/lib/components/blank.js
CHANGED
|
@@ -1,56 +1,32 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports["default"] = exports.DRAG_TYPE = exports.BlankContent = void 0;
|
|
9
|
-
|
|
10
8
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
11
|
-
|
|
12
9
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
13
|
-
|
|
14
10
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
15
|
-
|
|
16
11
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
17
|
-
|
|
18
12
|
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
19
|
-
|
|
20
13
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
21
|
-
|
|
22
14
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
23
|
-
|
|
24
15
|
var _react = _interopRequireDefault(require("react"));
|
|
25
|
-
|
|
26
16
|
var _reactDom = _interopRequireDefault(require("react-dom"));
|
|
27
|
-
|
|
28
17
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
29
|
-
|
|
30
18
|
var _mathRendering = require("@pie-lib/math-rendering");
|
|
31
|
-
|
|
32
19
|
var _debug = _interopRequireDefault(require("debug"));
|
|
33
|
-
|
|
34
20
|
var _drag = require("@pie-lib/drag");
|
|
35
|
-
|
|
36
21
|
var _styles = require("@material-ui/core/styles");
|
|
37
|
-
|
|
38
22
|
var _Chip = _interopRequireDefault(require("@material-ui/core/Chip"));
|
|
39
|
-
|
|
40
23
|
var _classnames3 = _interopRequireDefault(require("classnames"));
|
|
41
|
-
|
|
42
24
|
var _renderUi = require("@pie-lib/render-ui");
|
|
43
|
-
|
|
44
25
|
var _excluded = ["connectDragSource", "connectDropTarget"];
|
|
45
|
-
|
|
46
26
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
47
|
-
|
|
48
27
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
49
|
-
|
|
50
28
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
51
|
-
|
|
52
29
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
53
|
-
|
|
54
30
|
var log = (0, _debug["default"])('pie-lib:mask-markup:blank');
|
|
55
31
|
var DRAG_TYPE = 'MaskBlank';
|
|
56
32
|
exports.DRAG_TYPE = DRAG_TYPE;
|
|
@@ -58,9 +34,14 @@ var useStyles = (0, _styles.withStyles)(function () {
|
|
|
58
34
|
return {
|
|
59
35
|
content: {
|
|
60
36
|
border: "solid 0px ".concat(_renderUi.color.primary()),
|
|
61
|
-
minWidth: '200px'
|
|
37
|
+
minWidth: '200px',
|
|
38
|
+
touchAction: 'none',
|
|
39
|
+
overflow: 'hidden'
|
|
62
40
|
},
|
|
63
41
|
chip: {
|
|
42
|
+
backgroundColor: _renderUi.color.background(),
|
|
43
|
+
border: "1px solid ".concat(_renderUi.color.text()),
|
|
44
|
+
color: _renderUi.color.text(),
|
|
64
45
|
minWidth: '90px',
|
|
65
46
|
fontSize: 'inherit',
|
|
66
47
|
minHeight: '32px',
|
|
@@ -70,6 +51,10 @@ var useStyles = (0, _styles.withStyles)(function () {
|
|
|
70
51
|
},
|
|
71
52
|
chipLabel: {
|
|
72
53
|
whiteSpace: 'pre-wrap',
|
|
54
|
+
// Added for touch devices, for image content.
|
|
55
|
+
// This will prevent the context menu from appearing and not allowing other interactions with the image.
|
|
56
|
+
// If interactions with the image in the token will be requested we should handle only the context Menu.
|
|
57
|
+
pointerEvents: 'none',
|
|
73
58
|
'& img': {
|
|
74
59
|
display: 'block',
|
|
75
60
|
padding: '2px 0'
|
|
@@ -81,7 +66,7 @@ var useStyles = (0, _styles.withStyles)(function () {
|
|
|
81
66
|
},
|
|
82
67
|
dragged: {
|
|
83
68
|
position: 'absolute',
|
|
84
|
-
left:
|
|
69
|
+
left: 16,
|
|
85
70
|
maxWidth: '60px'
|
|
86
71
|
},
|
|
87
72
|
correct: {
|
|
@@ -96,15 +81,11 @@ var useStyles = (0, _styles.withStyles)(function () {
|
|
|
96
81
|
}
|
|
97
82
|
};
|
|
98
83
|
});
|
|
99
|
-
|
|
100
84
|
var BlankContent = /*#__PURE__*/function (_React$Component) {
|
|
101
85
|
(0, _inherits2["default"])(BlankContent, _React$Component);
|
|
102
|
-
|
|
103
86
|
var _super = _createSuper(BlankContent);
|
|
104
|
-
|
|
105
87
|
function BlankContent() {
|
|
106
88
|
var _this;
|
|
107
|
-
|
|
108
89
|
(0, _classCallCheck2["default"])(this, BlankContent);
|
|
109
90
|
_this = _super.call(this);
|
|
110
91
|
_this.state = {
|
|
@@ -112,16 +93,13 @@ var BlankContent = /*#__PURE__*/function (_React$Component) {
|
|
|
112
93
|
};
|
|
113
94
|
return _this;
|
|
114
95
|
}
|
|
115
|
-
|
|
116
96
|
(0, _createClass2["default"])(BlankContent, [{
|
|
117
97
|
key: "componentDidUpdate",
|
|
118
98
|
value: function componentDidUpdate(prevProps) {
|
|
119
99
|
var _this2 = this;
|
|
120
|
-
|
|
121
100
|
(0, _mathRendering.renderMath)(this.rootRef);
|
|
122
101
|
var currentChoice = this.props.choice;
|
|
123
102
|
var prevChoice = prevProps.choice;
|
|
124
|
-
|
|
125
103
|
if (JSON.stringify(currentChoice) !== JSON.stringify(prevChoice)) {
|
|
126
104
|
if (!currentChoice) {
|
|
127
105
|
this.setState({
|
|
@@ -129,7 +107,6 @@ var BlankContent = /*#__PURE__*/function (_React$Component) {
|
|
|
129
107
|
});
|
|
130
108
|
return;
|
|
131
109
|
}
|
|
132
|
-
|
|
133
110
|
setTimeout(function () {
|
|
134
111
|
_this2.setState({
|
|
135
112
|
height: _this2.spanRef.offsetHeight
|
|
@@ -150,60 +127,62 @@ var BlankContent = /*#__PURE__*/function (_React$Component) {
|
|
|
150
127
|
key: "render",
|
|
151
128
|
value: function render() {
|
|
152
129
|
var _this3 = this,
|
|
153
|
-
|
|
154
|
-
|
|
130
|
+
_classnames2;
|
|
155
131
|
var _this$props = this.props,
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
132
|
+
disabled = _this$props.disabled,
|
|
133
|
+
choice = _this$props.choice,
|
|
134
|
+
classes = _this$props.classes,
|
|
135
|
+
isOver = _this$props.isOver,
|
|
136
|
+
dragItem = _this$props.dragItem,
|
|
137
|
+
correct = _this$props.correct;
|
|
162
138
|
var draggedLabel = dragItem && isOver && dragItem.choice.value;
|
|
163
139
|
var label = choice && choice.value;
|
|
164
|
-
return
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
140
|
+
return (
|
|
141
|
+
/*#__PURE__*/
|
|
142
|
+
// TODO the Chip element is causing drag problems on touch devices. Avoid using Chip and consider refactoring the code. Keep in mind that Chip is a span with a button role, which interferes with seamless touch device dragging.
|
|
143
|
+
_react["default"].createElement(_Chip["default"], {
|
|
144
|
+
clickable: false,
|
|
145
|
+
disabled: true,
|
|
146
|
+
ref: function ref(_ref3) {
|
|
147
|
+
//eslint-disable-next-line
|
|
148
|
+
_this3.rootRef = _reactDom["default"].findDOMNode(_ref3);
|
|
149
|
+
},
|
|
150
|
+
component: "span",
|
|
151
|
+
label: /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("span", {
|
|
152
|
+
className: (0, _classnames3["default"])(classes.chipLabel, isOver && classes.over, (0, _defineProperty2["default"])({}, classes.hidden, draggedLabel)),
|
|
153
|
+
ref: function ref(_ref) {
|
|
154
|
+
if (_ref) {
|
|
155
|
+
//eslint-disable-next-line
|
|
156
|
+
_this3.spanRef = _reactDom["default"].findDOMNode(_ref);
|
|
157
|
+
_ref.innerHTML = label || '';
|
|
158
|
+
_this3.addDraggableFalseAttributes(_ref);
|
|
159
|
+
}
|
|
179
160
|
}
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
_this3.addDraggableFalseAttributes(_ref2);
|
|
161
|
+
}, ' '), draggedLabel && /*#__PURE__*/_react["default"].createElement("span", {
|
|
162
|
+
className: (0, _classnames3["default"])(classes.chipLabel, isOver && classes.over, classes.dragged),
|
|
163
|
+
ref: function ref(_ref2) {
|
|
164
|
+
if (_ref2) {
|
|
165
|
+
//eslint-disable-next-line
|
|
166
|
+
_this3.spanRef = _reactDom["default"].findDOMNode(_ref2);
|
|
167
|
+
_ref2.innerHTML = draggedLabel || '';
|
|
168
|
+
_this3.addDraggableFalseAttributes(_ref2);
|
|
169
|
+
}
|
|
190
170
|
}
|
|
171
|
+
}, ' ')),
|
|
172
|
+
className: (0, _classnames3["default"])(classes.chip, isOver && classes.over, (_classnames2 = {}, (0, _defineProperty2["default"])(_classnames2, classes.correct, correct !== undefined && correct), (0, _defineProperty2["default"])(_classnames2, classes.incorrect, correct !== undefined && !correct), _classnames2)),
|
|
173
|
+
variant: disabled ? 'outlined' : undefined,
|
|
174
|
+
style: _objectSpread({}, this.state.height ? {
|
|
175
|
+
height: this.state.height
|
|
176
|
+
} : {}),
|
|
177
|
+
classes: {
|
|
178
|
+
label: isOver && classes.over
|
|
191
179
|
}
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
variant: disabled ? 'outlined' : undefined,
|
|
195
|
-
style: _objectSpread({}, this.state.height ? {
|
|
196
|
-
height: this.state.height
|
|
197
|
-
} : {}),
|
|
198
|
-
classes: {
|
|
199
|
-
label: isOver && classes.over
|
|
200
|
-
}
|
|
201
|
-
});
|
|
180
|
+
})
|
|
181
|
+
);
|
|
202
182
|
}
|
|
203
183
|
}]);
|
|
204
184
|
return BlankContent;
|
|
205
185
|
}(_react["default"].Component);
|
|
206
|
-
|
|
207
186
|
exports.BlankContent = BlankContent;
|
|
208
187
|
(0, _defineProperty2["default"])(BlankContent, "propTypes", {
|
|
209
188
|
id: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]),
|
|
@@ -219,10 +198,10 @@ exports.BlankContent = BlankContent;
|
|
|
219
198
|
var StyledBlankContent = useStyles(BlankContent);
|
|
220
199
|
var connectedBlankContent = useStyles(function (_ref4) {
|
|
221
200
|
var connectDragSource = _ref4.connectDragSource,
|
|
222
|
-
|
|
223
|
-
|
|
201
|
+
connectDropTarget = _ref4.connectDropTarget,
|
|
202
|
+
props = (0, _objectWithoutProperties2["default"])(_ref4, _excluded);
|
|
224
203
|
var classes = props.classes,
|
|
225
|
-
|
|
204
|
+
isOver = props.isOver;
|
|
226
205
|
return connectDropTarget(connectDragSource( /*#__PURE__*/_react["default"].createElement("span", {
|
|
227
206
|
className: (0, _classnames3["default"])(classes.content, isOver && classes.over)
|
|
228
207
|
}, /*#__PURE__*/_react["default"].createElement(StyledBlankContent, props))));
|
|
@@ -231,11 +210,9 @@ var tileTarget = {
|
|
|
231
210
|
drop: function drop(props, monitor) {
|
|
232
211
|
var draggedItem = monitor.getItem();
|
|
233
212
|
log('props.instanceId', props.instanceId, 'draggedItem.instanceId:', draggedItem.instanceId);
|
|
234
|
-
|
|
235
213
|
if (draggedItem.id !== props.id) {
|
|
236
214
|
props.onChange(props.id, draggedItem.choice.id);
|
|
237
215
|
}
|
|
238
|
-
|
|
239
216
|
return {
|
|
240
217
|
dropped: draggedItem.id !== props.id
|
|
241
218
|
};
|
|
@@ -267,10 +244,8 @@ var tileSource = {
|
|
|
267
244
|
endDrag: function endDrag(props, monitor) {
|
|
268
245
|
// this will be null if it did not drop
|
|
269
246
|
var dropResult = monitor.getDropResult();
|
|
270
|
-
|
|
271
247
|
if (!dropResult || dropResult.dropped && !props.duplicates) {
|
|
272
248
|
var draggedItem = monitor.getItem();
|
|
273
|
-
|
|
274
249
|
if (draggedItem.fromChoice) {
|
|
275
250
|
props.onChange(props.id, undefined);
|
|
276
251
|
}
|
|
@@ -285,4 +260,4 @@ var DragDropTile = (0, _drag.DragSource)(DRAG_TYPE, tileSource, function (connec
|
|
|
285
260
|
})(DropTile);
|
|
286
261
|
var _default = DragDropTile;
|
|
287
262
|
exports["default"] = _default;
|
|
288
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJsb2ciLCJkZWJ1ZyIsIkRSQUdfVFlQRSIsInVzZVN0eWxlcyIsIndpdGhTdHlsZXMiLCJjb250ZW50IiwiYm9yZGVyIiwiY29sb3IiLCJwcmltYXJ5IiwibWluV2lkdGgiLCJjaGlwIiwiZm9udFNpemUiLCJtaW5IZWlnaHQiLCJoZWlnaHQiLCJtYXhXaWR0aCIsInBvc2l0aW9uIiwiY2hpcExhYmVsIiwid2hpdGVTcGFjZSIsImRpc3BsYXkiLCJwYWRkaW5nIiwiaGlkZGVuIiwib3BhY2l0eSIsImRyYWdnZWQiLCJsZWZ0IiwiY29ycmVjdCIsImluY29ycmVjdCIsIm92ZXIiLCJvdmVyZmxvdyIsIkJsYW5rQ29udGVudCIsInN0YXRlIiwicHJldlByb3BzIiwicmVuZGVyTWF0aCIsInJvb3RSZWYiLCJjdXJyZW50Q2hvaWNlIiwicHJvcHMiLCJjaG9pY2UiLCJwcmV2Q2hvaWNlIiwiSlNPTiIsInN0cmluZ2lmeSIsInNldFN0YXRlIiwic2V0VGltZW91dCIsInNwYW5SZWYiLCJvZmZzZXRIZWlnaHQiLCJwYXJlbnQiLCJjaGlsZE5vZGVzIiwiZm9yRWFjaCIsImVsZW0iLCJFbGVtZW50IiwiSFRNTERvY3VtZW50Iiwic2V0QXR0cmlidXRlIiwiZGlzYWJsZWQiLCJjbGFzc2VzIiwiaXNPdmVyIiwiZHJhZ0l0ZW0iLCJkcmFnZ2VkTGFiZWwiLCJ2YWx1ZSIsImxhYmVsIiwicmVmIiwiUmVhY3RET00iLCJmaW5kRE9NTm9kZSIsImNsYXNzbmFtZXMiLCJpbm5lckhUTUwiLCJhZGREcmFnZ2FibGVGYWxzZUF0dHJpYnV0ZXMiLCJ1bmRlZmluZWQiLCJSZWFjdCIsIkNvbXBvbmVudCIsImlkIiwiUHJvcFR5cGVzIiwib25lT2ZUeXBlIiwic3RyaW5nIiwibnVtYmVyIiwiYm9vbCIsImR1cGxpY2F0ZXMiLCJvYmplY3QiLCJvbkNoYW5nZSIsImZ1bmMiLCJTdHlsZWRCbGFua0NvbnRlbnQiLCJjb25uZWN0ZWRCbGFua0NvbnRlbnQiLCJjb25uZWN0RHJhZ1NvdXJjZSIsImNvbm5lY3REcm9wVGFyZ2V0IiwidGlsZVRhcmdldCIsImRyb3AiLCJtb25pdG9yIiwiZHJhZ2dlZEl0ZW0iLCJnZXRJdGVtIiwiaW5zdGFuY2VJZCIsImRyb3BwZWQiLCJjYW5Ecm9wIiwiRHJvcFRpbGUiLCJEcm9wVGFyZ2V0IiwiY29ubmVjdCIsImRyb3BUYXJnZXQiLCJ0aWxlU291cmNlIiwiY2FuRHJhZyIsImJlZ2luRHJhZyIsImZyb21DaG9pY2UiLCJlbmREcmFnIiwiZHJvcFJlc3VsdCIsImdldERyb3BSZXN1bHQiLCJEcmFnRHJvcFRpbGUiLCJEcmFnU291cmNlIiwiZHJhZ1NvdXJjZSIsImlzRHJhZ2dpbmciXSwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tcG9uZW50cy9ibGFuay5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBSZWFjdERPTSBmcm9tICdyZWFjdC1kb20nO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB7IHJlbmRlck1hdGggfSBmcm9tICdAcGllLWxpYi9tYXRoLXJlbmRlcmluZyc7XG5pbXBvcnQgZGVidWcgZnJvbSAnZGVidWcnO1xuaW1wb3J0IHsgRHJhZ1NvdXJjZSwgRHJvcFRhcmdldCB9IGZyb20gJ0BwaWUtbGliL2RyYWcnO1xuaW1wb3J0IHsgd2l0aFN0eWxlcyB9IGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL3N0eWxlcyc7XG5pbXBvcnQgQ2hpcCBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9DaGlwJztcbmltcG9ydCBjbGFzc25hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IHsgY29sb3IgfSBmcm9tICdAcGllLWxpYi9yZW5kZXItdWknO1xuY29uc3QgbG9nID0gZGVidWcoJ3BpZS1saWI6bWFzay1tYXJrdXA6YmxhbmsnKTtcbmV4cG9ydCBjb25zdCBEUkFHX1RZUEUgPSAnTWFza0JsYW5rJztcblxuY29uc3QgdXNlU3R5bGVzID0gd2l0aFN0eWxlcygoKSA9PiAoe1xuICBjb250ZW50OiB7XG4gICAgYm9yZGVyOiBgc29saWQgMHB4ICR7Y29sb3IucHJpbWFyeSgpfWAsXG4gICAgbWluV2lkdGg6ICcyMDBweCdcbiAgfSxcbiAgY2hpcDoge1xuICAgIG1pbldpZHRoOiAnOTBweCcsXG4gICAgZm9udFNpemU6ICdpbmhlcml0JyxcbiAgICBtaW5IZWlnaHQ6ICczMnB4JyxcbiAgICBoZWlnaHQ6ICdhdXRvJyxcbiAgICBtYXhXaWR0aDogJzM3NHB4JyxcbiAgICBwb3NpdGlvbjogJ3JlbGF0aXZlJ1xuICB9LFxuICBjaGlwTGFiZWw6IHtcbiAgICB3aGl0ZVNwYWNlOiAncHJlLXdyYXAnLFxuICAgICcmIGltZyc6IHtcbiAgICAgIGRpc3BsYXk6ICdibG9jaycsXG4gICAgICBwYWRkaW5nOiAnMnB4IDAnXG4gICAgfVxuICB9LFxuICBoaWRkZW46IHtcbiAgICBjb2xvcjogJ3RyYW5zcGFyZW50JyxcbiAgICBvcGFjaXR5OiAwXG4gIH0sXG4gIGRyYWdnZWQ6IHtcbiAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICBsZWZ0OiAxNCxcbiAgICBtYXhXaWR0aDogJzYwcHgnXG4gIH0sXG4gIGNvcnJlY3Q6IHtcbiAgICBib3JkZXI6IGBzb2xpZCAxcHggJHtjb2xvci5jb3JyZWN0KCl9YFxuICB9LFxuICBpbmNvcnJlY3Q6IHtcbiAgICBib3JkZXI6IGBzb2xpZCAxcHggJHtjb2xvci5pbmNvcnJlY3QoKX1gXG4gIH0sXG4gIG92ZXI6IHtcbiAgICB3aGl0ZVNwYWNlOiAnbm93cmFwJyxcbiAgICBvdmVyZmxvdzogJ2hpZGRlbidcbiAgfVxufSkpO1xuXG5leHBvcnQgY2xhc3MgQmxhbmtDb250ZW50IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBpZDogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLnN0cmluZywgUHJvcFR5cGVzLm51bWJlcl0pLFxuICAgIGRpc2FibGVkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBkdXBsaWNhdGVzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBjaG9pY2U6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgY2xhc3NlczogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBpc092ZXI6IFByb3BUeXBlcy5ib29sLFxuICAgIGRyYWdJdGVtOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGNvcnJlY3Q6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uQ2hhbmdlOiBQcm9wVHlwZXMuZnVuY1xuICB9O1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgIGhlaWdodDogMFxuICAgIH07XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgcmVuZGVyTWF0aCh0aGlzLnJvb3RSZWYpO1xuICAgIGNvbnN0IHsgY2hvaWNlOiBjdXJyZW50Q2hvaWNlIH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHsgY2hvaWNlOiBwcmV2Q2hvaWNlIH0gPSBwcmV2UHJvcHM7XG5cbiAgICBpZiAoSlNPTi5zdHJpbmdpZnkoY3VycmVudENob2ljZSkgIT09IEpTT04uc3RyaW5naWZ5KHByZXZDaG9pY2UpKSB7XG4gICAgICBpZiAoIWN1cnJlbnRDaG9pY2UpIHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgaGVpZ2h0OiAwXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgaGVpZ2h0OiB0aGlzLnNwYW5SZWYub2Zmc2V0SGVpZ2h0XG4gICAgICAgIH0pO1xuICAgICAgfSwgMzAwKTtcbiAgICB9XG4gIH1cblxuICBhZGREcmFnZ2FibGVGYWxzZUF0dHJpYnV0ZXMocGFyZW50KSB7XG4gICAgcGFyZW50LmNoaWxkTm9kZXMuZm9yRWFjaChlbGVtID0+IHtcbiAgICAgIGlmIChlbGVtIGluc3RhbmNlb2YgRWxlbWVudCB8fCBlbGVtIGluc3RhbmNlb2YgSFRNTERvY3VtZW50KSB7XG4gICAgICAgIGVsZW0uc2V0QXR0cmlidXRlKCdkcmFnZ2FibGUnLCBmYWxzZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgeyBkaXNhYmxlZCwgY2hvaWNlLCBjbGFzc2VzLCBpc092ZXIsIGRyYWdJdGVtLCBjb3JyZWN0IH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGRyYWdnZWRMYWJlbCA9IGRyYWdJdGVtICYmIGlzT3ZlciAmJiBkcmFnSXRlbS5jaG9pY2UudmFsdWU7XG4gICAgY29uc3QgbGFiZWwgPSBjaG9pY2UgJiYgY2hvaWNlLnZhbHVlO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxDaGlwXG4gICAgICAgIHJlZj17cmVmID0+IHtcbiAgICAgICAgICAvL2VzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgICAgICAgIHRoaXMucm9vdFJlZiA9IFJlYWN0RE9NLmZpbmRET01Ob2RlKHJlZik7XG4gICAgICAgIH19XG4gICAgICAgIGNvbXBvbmVudD1cInNwYW5cIlxuICAgICAgICBsYWJlbD17XG4gICAgICAgICAgPFJlYWN0LkZyYWdtZW50PlxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc25hbWVzKGNsYXNzZXMuY2hpcExhYmVsLCBpc092ZXIgJiYgY2xhc3Nlcy5vdmVyLCB7XG4gICAgICAgICAgICAgICAgW2NsYXNzZXMuaGlkZGVuXTogZHJhZ2dlZExhYmVsXG4gICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICByZWY9e3JlZiA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHJlZikge1xuICAgICAgICAgICAgICAgICAgLy9lc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICAgICAgICAgICAgICAgIHRoaXMuc3BhblJlZiA9IFJlYWN0RE9NLmZpbmRET01Ob2RlKHJlZik7XG4gICAgICAgICAgICAgICAgICByZWYuaW5uZXJIVE1MID0gbGFiZWwgfHwgJyc7XG4gICAgICAgICAgICAgICAgICB0aGlzLmFkZERyYWdnYWJsZUZhbHNlQXR0cmlidXRlcyhyZWYpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgeycgJ31cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIHtkcmFnZ2VkTGFiZWwgJiYgKFxuICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NuYW1lcyhjbGFzc2VzLmNoaXBMYWJlbCwgaXNPdmVyICYmIGNsYXNzZXMub3ZlciwgY2xhc3Nlcy5kcmFnZ2VkKX1cbiAgICAgICAgICAgICAgICByZWY9e3JlZiA9PiB7XG4gICAgICAgICAgICAgICAgICBpZiAocmVmKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3BhblJlZiA9IFJlYWN0RE9NLmZpbmRET01Ob2RlKHJlZik7XG4gICAgICAgICAgICAgICAgICAgIHJlZi5pbm5lckhUTUwgPSBkcmFnZ2VkTGFiZWwgfHwgJyc7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWRkRHJhZ2dhYmxlRmFsc2VBdHRyaWJ1dGVzKHJlZik7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHsnICd9XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9SZWFjdC5GcmFnbWVudD5cbiAgICAgICAgfVxuICAgICAgICBjbGFzc05hbWU9e2NsYXNzbmFtZXMoY2xhc3Nlcy5jaGlwLCBpc092ZXIgJiYgY2xhc3Nlcy5vdmVyLCB7XG4gICAgICAgICAgW2NsYXNzZXMuY29ycmVjdF06IGNvcnJlY3QgIT09IHVuZGVmaW5lZCAmJiBjb3JyZWN0LFxuICAgICAgICAgIFtjbGFzc2VzLmluY29ycmVjdF06IGNvcnJlY3QgIT09IHVuZGVmaW5lZCAmJiAhY29ycmVjdFxuICAgICAgICB9KX1cbiAgICAgICAgdmFyaWFudD17ZGlzYWJsZWQgPyAnb3V0bGluZWQnIDogdW5kZWZpbmVkfVxuICAgICAgICBzdHlsZT17e1xuICAgICAgICAgIC4uLih0aGlzLnN0YXRlLmhlaWdodCA/IHsgaGVpZ2h0OiB0aGlzLnN0YXRlLmhlaWdodCB9IDoge30pXG4gICAgICAgIH19XG4gICAgICAgIGNsYXNzZXM9e3tcbiAgICAgICAgICBsYWJlbDogaXNPdmVyICYmIGNsYXNzZXMub3ZlclxuICAgICAgICB9fVxuICAgICAgLz5cbiAgICApO1xuICB9XG59XG5cbmNvbnN0IFN0eWxlZEJsYW5rQ29udGVudCA9IHVzZVN0eWxlcyhCbGFua0NvbnRlbnQpO1xuXG5jb25zdCBjb25uZWN0ZWRCbGFua0NvbnRlbnQgPSB1c2VTdHlsZXMoKHsgY29ubmVjdERyYWdTb3VyY2UsIGNvbm5lY3REcm9wVGFyZ2V0LCAuLi5wcm9wcyB9KSA9PiB7XG4gIGNvbnN0IHsgY2xhc3NlcywgaXNPdmVyIH0gPSBwcm9wcztcblxuICByZXR1cm4gY29ubmVjdERyb3BUYXJnZXQoXG4gICAgY29ubmVjdERyYWdTb3VyY2UoXG4gICAgICA8c3BhbiBjbGFzc05hbWU9e2NsYXNzbmFtZXMoY2xhc3Nlcy5jb250ZW50LCBpc092ZXIgJiYgY2xhc3Nlcy5vdmVyKX0+XG4gICAgICAgIDxTdHlsZWRCbGFua0NvbnRlbnQgey4uLnByb3BzfSAvPlxuICAgICAgPC9zcGFuPlxuICAgIClcbiAgKTtcbn0pO1xuXG5jb25zdCB0aWxlVGFyZ2V0ID0ge1xuICBkcm9wKHByb3BzLCBtb25pdG9yKSB7XG4gICAgY29uc3QgZHJhZ2dlZEl0ZW0gPSBtb25pdG9yLmdldEl0ZW0oKTtcblxuICAgIGxvZygncHJvcHMuaW5zdGFuY2VJZCcsIHByb3BzLmluc3RhbmNlSWQsICdkcmFnZ2VkSXRlbS5pbnN0YW5jZUlkOicsIGRyYWdnZWRJdGVtLmluc3RhbmNlSWQpO1xuXG4gICAgaWYgKGRyYWdnZWRJdGVtLmlkICE9PSBwcm9wcy5pZCkge1xuICAgICAgcHJvcHMub25DaGFuZ2UocHJvcHMuaWQsIGRyYWdnZWRJdGVtLmNob2ljZS5pZCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGRyb3BwZWQ6IGRyYWdnZWRJdGVtLmlkICE9PSBwcm9wcy5pZFxuICAgIH07XG4gIH0sXG4gIGNhbkRyb3AocHJvcHMsIG1vbml0b3IpIHtcbiAgICBjb25zdCBkcmFnZ2VkSXRlbSA9IG1vbml0b3IuZ2V0SXRlbSgpO1xuXG4gICAgcmV0dXJuIGRyYWdnZWRJdGVtLmluc3RhbmNlSWQgPT09IHByb3BzLmluc3RhbmNlSWQ7XG4gIH1cbn07XG5cbmNvbnN0IERyb3BUaWxlID0gRHJvcFRhcmdldChEUkFHX1RZUEUsIHRpbGVUYXJnZXQsIChjb25uZWN0LCBtb25pdG9yKSA9PiAoe1xuICBjb25uZWN0RHJvcFRhcmdldDogY29ubmVjdC5kcm9wVGFyZ2V0KCksXG4gIGlzT3ZlcjogbW9uaXRvci5pc092ZXIoKSxcbiAgZHJhZ0l0ZW06IG1vbml0b3IuZ2V0SXRlbSgpXG59KSkoY29ubmVjdGVkQmxhbmtDb250ZW50KTtcblxuY29uc3QgdGlsZVNvdXJjZSA9IHtcbiAgY2FuRHJhZyhwcm9wcykge1xuICAgIHJldHVybiAhcHJvcHMuZGlzYWJsZWQgJiYgISFwcm9wcy5jaG9pY2U7XG4gIH0sXG4gIGJlZ2luRHJhZyhwcm9wcykge1xuICAgIHJldHVybiB7XG4gICAgICBpZDogcHJvcHMuaWQsXG4gICAgICBjaG9pY2U6IHByb3BzLmNob2ljZSxcbiAgICAgIGluc3RhbmNlSWQ6IHByb3BzLmluc3RhbmNlSWQsXG4gICAgICBmcm9tQ2hvaWNlOiB0cnVlXG4gICAgfTtcbiAgfSxcbiAgZW5kRHJhZyhwcm9wcywgbW9uaXRvcikge1xuICAgIC8vIHRoaXMgd2lsbCBiZSBudWxsIGlmIGl0IGRpZCBub3QgZHJvcFxuICAgIGNvbnN0IGRyb3BSZXN1bHQgPSBtb25pdG9yLmdldERyb3BSZXN1bHQoKTtcblxuICAgIGlmICghZHJvcFJlc3VsdCB8fCAoZHJvcFJlc3VsdC5kcm9wcGVkICYmICFwcm9wcy5kdXBsaWNhdGVzKSkge1xuICAgICAgY29uc3QgZHJhZ2dlZEl0ZW0gPSBtb25pdG9yLmdldEl0ZW0oKTtcblxuICAgICAgaWYgKGRyYWdnZWRJdGVtLmZyb21DaG9pY2UpIHtcbiAgICAgICAgcHJvcHMub25DaGFuZ2UocHJvcHMuaWQsIHVuZGVmaW5lZCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59O1xuXG5jb25zdCBEcmFnRHJvcFRpbGUgPSBEcmFnU291cmNlKERSQUdfVFlQRSwgdGlsZVNvdXJjZSwgKGNvbm5lY3QsIG1vbml0b3IpID0+ICh7XG4gIGNvbm5lY3REcmFnU291cmNlOiBjb25uZWN0LmRyYWdTb3VyY2UoKSxcbiAgaXNEcmFnZ2luZzogbW9uaXRvci5pc0RyYWdnaW5nKClcbn0pKShEcm9wVGlsZSk7XG5cbmV4cG9ydCBkZWZhdWx0IERyYWdEcm9wVGlsZTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7Ozs7O0FBQ0EsSUFBTUEsR0FBRyxHQUFHLElBQUFDLGlCQUFBLEVBQU0sMkJBQU4sQ0FBWjtBQUNPLElBQU1DLFNBQVMsR0FBRyxXQUFsQjs7QUFFUCxJQUFNQyxTQUFTLEdBQUcsSUFBQUMsa0JBQUEsRUFBVztFQUFBLE9BQU87SUFDbENDLE9BQU8sRUFBRTtNQUNQQyxNQUFNLHNCQUFlQyxlQUFBLENBQU1DLE9BQU4sRUFBZixDQURDO01BRVBDLFFBQVEsRUFBRTtJQUZILENBRHlCO0lBS2xDQyxJQUFJLEVBQUU7TUFDSkQsUUFBUSxFQUFFLE1BRE47TUFFSkUsUUFB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
|
|
263
|
+
//# sourceMappingURL=blank.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blank.js","names":["log","debug","DRAG_TYPE","useStyles","withStyles","content","border","color","primary","minWidth","chip","fontSize","minHeight","height","maxWidth","position","chipLabel","whiteSpace","display","padding","hidden","opacity","dragged","left","correct","incorrect","over","overflow","BlankContent","state","prevProps","renderMath","rootRef","currentChoice","props","choice","prevChoice","JSON","stringify","setState","setTimeout","spanRef","offsetHeight","parent","childNodes","forEach","elem","Element","HTMLDocument","setAttribute","disabled","classes","isOver","dragItem","draggedLabel","value","label","ref","ReactDOM","findDOMNode","classnames","innerHTML","addDraggableFalseAttributes","undefined","React","Component","id","PropTypes","oneOfType","string","number","bool","duplicates","object","onChange","func","StyledBlankContent","connectedBlankContent","connectDragSource","connectDropTarget","tileTarget","drop","monitor","draggedItem","getItem","instanceId","dropped","canDrop","DropTile","DropTarget","connect","dropTarget","tileSource","canDrag","beginDrag","fromChoice","endDrag","dropResult","getDropResult","DragDropTile","DragSource","dragSource","isDragging"],"sources":["../../src/components/blank.jsx"],"sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport debug from 'debug';\nimport { DragSource, DropTarget } from '@pie-lib/drag';\nimport { withStyles } from '@material-ui/core/styles';\nimport Chip from '@material-ui/core/Chip';\nimport classnames from 'classnames';\nimport { color } from '@pie-lib/render-ui';\nconst log = debug('pie-lib:mask-markup:blank');\nexport const DRAG_TYPE = 'MaskBlank';\n\nconst useStyles = withStyles(() => ({\n content: {\n border: `solid 0px ${color.primary()}`,\n minWidth: '200px'\n },\n chip: {\n minWidth: '90px',\n fontSize: 'inherit',\n minHeight: '32px',\n height: 'auto',\n maxWidth: '374px',\n position: 'relative'\n },\n chipLabel: {\n whiteSpace: 'pre-wrap',\n '& img': {\n display: 'block',\n padding: '2px 0'\n }\n },\n hidden: {\n color: 'transparent',\n opacity: 0\n },\n dragged: {\n position: 'absolute',\n left: 14,\n maxWidth: '60px'\n },\n correct: {\n border: `solid 1px ${color.correct()}`\n },\n incorrect: {\n border: `solid 1px ${color.incorrect()}`\n },\n over: {\n whiteSpace: 'nowrap',\n overflow: 'hidden'\n }\n}));\n\nexport class BlankContent extends React.Component {\n static propTypes = {\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n disabled: PropTypes.bool,\n duplicates: PropTypes.bool,\n choice: PropTypes.object,\n classes: PropTypes.object,\n isOver: PropTypes.bool,\n dragItem: PropTypes.object,\n correct: PropTypes.bool,\n onChange: PropTypes.func\n };\n\n constructor() {\n super();\n this.state = {\n height: 0\n };\n }\n\n componentDidUpdate(prevProps) {\n renderMath(this.rootRef);\n const { choice: currentChoice } = this.props;\n const { choice: prevChoice } = prevProps;\n\n if (JSON.stringify(currentChoice) !== JSON.stringify(prevChoice)) {\n if (!currentChoice) {\n this.setState({\n height: 0\n });\n return;\n }\n setTimeout(() => {\n this.setState({\n height: this.spanRef.offsetHeight\n });\n }, 300);\n }\n }\n\n addDraggableFalseAttributes(parent) {\n parent.childNodes.forEach(elem => {\n if (elem instanceof Element || elem instanceof HTMLDocument) {\n elem.setAttribute('draggable', false);\n }\n });\n }\n\n render() {\n const { disabled, choice, classes, isOver, dragItem, correct } = this.props;\n const draggedLabel = dragItem && isOver && dragItem.choice.value;\n const label = choice && choice.value;\n\n return (\n <Chip\n ref={ref => {\n //eslint-disable-next-line\n this.rootRef = ReactDOM.findDOMNode(ref);\n }}\n component=\"span\"\n label={\n <React.Fragment>\n <span\n className={classnames(classes.chipLabel, isOver && classes.over, {\n [classes.hidden]: draggedLabel\n })}\n ref={ref => {\n if (ref) {\n //eslint-disable-next-line\n this.spanRef = ReactDOM.findDOMNode(ref);\n ref.innerHTML = label || '';\n this.addDraggableFalseAttributes(ref);\n }\n }}\n >\n {' '}\n </span>\n {draggedLabel && (\n <span\n className={classnames(classes.chipLabel, isOver && classes.over, classes.dragged)}\n ref={ref => {\n if (ref) {\n //eslint-disable-next-line\n this.spanRef = ReactDOM.findDOMNode(ref);\n ref.innerHTML = draggedLabel || '';\n this.addDraggableFalseAttributes(ref);\n }\n }}\n >\n {' '}\n </span>\n )}\n </React.Fragment>\n }\n className={classnames(classes.chip, isOver && classes.over, {\n [classes.correct]: correct !== undefined && correct,\n [classes.incorrect]: correct !== undefined && !correct\n })}\n variant={disabled ? 'outlined' : undefined}\n style={{\n ...(this.state.height ? { height: this.state.height } : {})\n }}\n classes={{\n label: isOver && classes.over\n }}\n />\n );\n }\n}\n\nconst StyledBlankContent = useStyles(BlankContent);\n\nconst connectedBlankContent = useStyles(({ connectDragSource, connectDropTarget, ...props }) => {\n const { classes, isOver } = props;\n\n return connectDropTarget(\n connectDragSource(\n <span className={classnames(classes.content, isOver && classes.over)}>\n <StyledBlankContent {...props} />\n </span>\n )\n );\n});\n\nconst tileTarget = {\n drop(props, monitor) {\n const draggedItem = monitor.getItem();\n\n log('props.instanceId', props.instanceId, 'draggedItem.instanceId:', draggedItem.instanceId);\n\n if (draggedItem.id !== props.id) {\n props.onChange(props.id, draggedItem.choice.id);\n }\n\n return {\n dropped: draggedItem.id !== props.id\n };\n },\n canDrop(props, monitor) {\n const draggedItem = monitor.getItem();\n\n return draggedItem.instanceId === props.instanceId;\n }\n};\n\nconst DropTile = DropTarget(DRAG_TYPE, tileTarget, (connect, monitor) => ({\n connectDropTarget: connect.dropTarget(),\n isOver: monitor.isOver(),\n dragItem: monitor.getItem()\n}))(connectedBlankContent);\n\nconst tileSource = {\n canDrag(props) {\n return !props.disabled && !!props.choice;\n },\n beginDrag(props) {\n return {\n id: props.id,\n choice: props.choice,\n instanceId: props.instanceId,\n fromChoice: true\n };\n },\n endDrag(props, monitor) {\n // this will be null if it did not drop\n const dropResult = monitor.getDropResult();\n\n if (!dropResult || (dropResult.dropped && !props.duplicates)) {\n const draggedItem = monitor.getItem();\n\n if (draggedItem.fromChoice) {\n props.onChange(props.id, undefined);\n }\n }\n }\n};\n\nconst DragDropTile = DragSource(DRAG_TYPE, tileSource, (connect, monitor) => ({\n connectDragSource: connect.dragSource(),\n isDragging: monitor.isDragging()\n}))(DropTile);\n\nexport default DragDropTile;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"blank.js","names":["_react","_interopRequireDefault","require","_reactDom","_propTypes","_mathRendering","_debug","_drag","_styles","_Chip","_classnames3","_renderUi","_excluded","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","Reflect","construct","_possibleConstructorReturn2","sham","Proxy","Boolean","prototype","valueOf","call","e","log","debug","DRAG_TYPE","exports","useStyles","withStyles","content","border","concat","color","primary","minWidth","touchAction","overflow","chip","backgroundColor","background","text","fontSize","minHeight","height","maxWidth","position","chipLabel","whiteSpace","pointerEvents","display","padding","hidden","opacity","dragged","left","correct","incorrect","over","BlankContent","_React$Component","_inherits2","_super","_this","_classCallCheck2","state","_createClass2","value","componentDidUpdate","prevProps","_this2","renderMath","rootRef","currentChoice","props","choice","prevChoice","JSON","stringify","setState","setTimeout","spanRef","offsetHeight","addDraggableFalseAttributes","parent","childNodes","elem","Element","HTMLDocument","setAttribute","render","_this3","_classnames2","_this$props","disabled","classes","isOver","dragItem","draggedLabel","label","createElement","clickable","ref","ReactDOM","findDOMNode","component","Fragment","className","classnames","innerHTML","undefined","variant","style","React","Component","id","PropTypes","oneOfType","string","number","bool","duplicates","onChange","func","StyledBlankContent","connectedBlankContent","_ref4","connectDragSource","connectDropTarget","_objectWithoutProperties2","tileTarget","drop","monitor","draggedItem","getItem","instanceId","dropped","canDrop","DropTile","DropTarget","connect","dropTarget","tileSource","canDrag","beginDrag","fromChoice","endDrag","dropResult","getDropResult","DragDropTile","DragSource","dragSource","isDragging","_default"],"sources":["../../src/components/blank.jsx"],"sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport debug from 'debug';\nimport { DragSource, DropTarget } from '@pie-lib/drag';\nimport { withStyles } from '@material-ui/core/styles';\nimport Chip from '@material-ui/core/Chip';\nimport classnames from 'classnames';\nimport { color } from '@pie-lib/render-ui';\nconst log = debug('pie-lib:mask-markup:blank');\nexport const DRAG_TYPE = 'MaskBlank';\n\nconst useStyles = withStyles(() => ({\n content: {\n border: `solid 0px ${color.primary()}`,\n minWidth: '200px',\n touchAction: 'none',\n overflow: 'hidden',\n },\n chip: {\n backgroundColor: color.background(),\n border: `1px solid ${color.text()}`,\n color: color.text(),\n minWidth: '90px',\n fontSize: 'inherit',\n minHeight: '32px',\n height: 'auto',\n maxWidth: '374px',\n position: 'relative',\n },\n chipLabel: {\n whiteSpace: 'pre-wrap',\n // Added for touch devices, for image content.\n // This will prevent the context menu from appearing and not allowing other interactions with the image.\n // If interactions with the image in the token will be requested we should handle only the context Menu.\n pointerEvents: 'none',\n '& img': {\n display: 'block',\n padding: '2px 0',\n },\n },\n hidden: {\n color: 'transparent',\n opacity: 0,\n },\n dragged: {\n position: 'absolute',\n left: 16,\n maxWidth: '60px',\n },\n correct: {\n border: `solid 1px ${color.correct()}`,\n },\n incorrect: {\n border: `solid 1px ${color.incorrect()}`,\n },\n over: {\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n },\n}));\n\nexport class BlankContent extends React.Component {\n static propTypes = {\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n disabled: PropTypes.bool,\n duplicates: PropTypes.bool,\n choice: PropTypes.object,\n classes: PropTypes.object,\n isOver: PropTypes.bool,\n dragItem: PropTypes.object,\n correct: PropTypes.bool,\n onChange: PropTypes.func,\n };\n\n constructor() {\n super();\n this.state = {\n height: 0,\n };\n }\n\n componentDidUpdate(prevProps) {\n renderMath(this.rootRef);\n const { choice: currentChoice } = this.props;\n const { choice: prevChoice } = prevProps;\n\n if (JSON.stringify(currentChoice) !== JSON.stringify(prevChoice)) {\n if (!currentChoice) {\n this.setState({\n height: 0,\n });\n return;\n }\n setTimeout(() => {\n this.setState({\n height: this.spanRef.offsetHeight,\n });\n }, 300);\n }\n }\n\n addDraggableFalseAttributes(parent) {\n parent.childNodes.forEach((elem) => {\n if (elem instanceof Element || elem instanceof HTMLDocument) {\n elem.setAttribute('draggable', false);\n }\n });\n }\n\n render() {\n const { disabled, choice, classes, isOver, dragItem, correct } = this.props;\n const draggedLabel = dragItem && isOver && dragItem.choice.value;\n const label = choice && choice.value;\n\n return (\n // TODO the Chip element is causing drag problems on touch devices. Avoid using Chip and consider refactoring the code. Keep in mind that Chip is a span with a button role, which interferes with seamless touch device dragging.\n <Chip\n clickable={false}\n disabled={true}\n ref={(ref) => {\n //eslint-disable-next-line\n this.rootRef = ReactDOM.findDOMNode(ref);\n }}\n component=\"span\"\n label={\n <React.Fragment>\n <span\n className={classnames(classes.chipLabel, isOver && classes.over, {\n [classes.hidden]: draggedLabel,\n })}\n ref={(ref) => {\n if (ref) {\n //eslint-disable-next-line\n this.spanRef = ReactDOM.findDOMNode(ref);\n ref.innerHTML = label || '';\n this.addDraggableFalseAttributes(ref);\n }\n }}\n >\n {' '}\n </span>\n {draggedLabel && (\n <span\n className={classnames(classes.chipLabel, isOver && classes.over, classes.dragged)}\n ref={(ref) => {\n if (ref) {\n //eslint-disable-next-line\n this.spanRef = ReactDOM.findDOMNode(ref);\n ref.innerHTML = draggedLabel || '';\n this.addDraggableFalseAttributes(ref);\n }\n }}\n >\n {' '}\n </span>\n )}\n </React.Fragment>\n }\n className={classnames(classes.chip, isOver && classes.over, {\n [classes.correct]: correct !== undefined && correct,\n [classes.incorrect]: correct !== undefined && !correct,\n })}\n variant={disabled ? 'outlined' : undefined}\n style={{\n ...(this.state.height ? { height: this.state.height } : {}),\n }}\n classes={{\n label: isOver && classes.over,\n }}\n />\n );\n }\n}\n\nconst StyledBlankContent = useStyles(BlankContent);\n\nconst connectedBlankContent = useStyles(({ connectDragSource, connectDropTarget, ...props }) => {\n const { classes, isOver } = props;\n\n return connectDropTarget(\n connectDragSource(\n <span className={classnames(classes.content, isOver && classes.over)}>\n <StyledBlankContent {...props} />\n </span>,\n ),\n );\n});\n\nconst tileTarget = {\n drop(props, monitor) {\n const draggedItem = monitor.getItem();\n\n log('props.instanceId', props.instanceId, 'draggedItem.instanceId:', draggedItem.instanceId);\n\n if (draggedItem.id !== props.id) {\n props.onChange(props.id, draggedItem.choice.id);\n }\n\n return {\n dropped: draggedItem.id !== props.id,\n };\n },\n canDrop(props, monitor) {\n const draggedItem = monitor.getItem();\n\n return draggedItem.instanceId === props.instanceId;\n },\n};\n\nconst DropTile = DropTarget(DRAG_TYPE, tileTarget, (connect, monitor) => ({\n connectDropTarget: connect.dropTarget(),\n isOver: monitor.isOver(),\n dragItem: monitor.getItem(),\n}))(connectedBlankContent);\n\nconst tileSource = {\n canDrag(props) {\n return !props.disabled && !!props.choice;\n },\n beginDrag(props) {\n return {\n id: props.id,\n choice: props.choice,\n instanceId: props.instanceId,\n fromChoice: true,\n };\n },\n endDrag(props, monitor) {\n // this will be null if it did not drop\n const dropResult = monitor.getDropResult();\n\n if (!dropResult || (dropResult.dropped && !props.duplicates)) {\n const draggedItem = monitor.getItem();\n\n if (draggedItem.fromChoice) {\n props.onChange(props.id, undefined);\n }\n }\n },\n};\n\nconst DragDropTile = DragSource(DRAG_TYPE, tileSource, (connect, monitor) => ({\n connectDragSource: connect.dragSource(),\n isDragging: monitor.isDragging(),\n}))(DropTile);\n\nexport default DragDropTile;\n"],"mappings":"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"}
|