@pie-element/match-list 2.9.2-next.1 → 2.9.2-next.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/controller/lib/defaults.js +23 -0
- package/controller/lib/defaults.js.map +1 -0
- package/controller/lib/index.js +262 -0
- package/controller/lib/index.js.map +1 -0
- package/controller/package.json +1 -1
- package/lib/answer-area.js +238 -0
- package/lib/answer-area.js.map +1 -0
- package/lib/answer.js +281 -0
- package/lib/answer.js.map +1 -0
- package/lib/arrow.js +101 -0
- package/lib/arrow.js.map +1 -0
- package/lib/choices-list.js +130 -0
- package/lib/choices-list.js.map +1 -0
- package/lib/index.js +132 -0
- package/lib/index.js.map +1 -0
- package/lib/main.js +189 -0
- package/lib/main.js.map +1 -0
- package/package.json +3 -3
package/lib/answer.js
ADDED
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports["default"] = exports.DropAnswer = exports.DragAnswer = exports.Answer = void 0;
|
|
9
|
+
|
|
10
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
+
|
|
12
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
|
+
|
|
14
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
15
|
+
|
|
16
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
17
|
+
|
|
18
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
19
|
+
|
|
20
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
21
|
+
|
|
22
|
+
var _reactDnd = require("react-dnd");
|
|
23
|
+
|
|
24
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
25
|
+
|
|
26
|
+
var _react = _interopRequireDefault(require("react"));
|
|
27
|
+
|
|
28
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
29
|
+
|
|
30
|
+
var _debug = _interopRequireDefault(require("debug"));
|
|
31
|
+
|
|
32
|
+
var _styles = require("@material-ui/core/styles");
|
|
33
|
+
|
|
34
|
+
var _drag = require("@pie-lib/pie-toolbox/drag");
|
|
35
|
+
|
|
36
|
+
var _isEmpty = _interopRequireDefault(require("lodash/isEmpty"));
|
|
37
|
+
|
|
38
|
+
var _renderUi = require("@pie-lib/pie-toolbox/render-ui");
|
|
39
|
+
|
|
40
|
+
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); }; }
|
|
41
|
+
|
|
42
|
+
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; } }
|
|
43
|
+
|
|
44
|
+
var log = (0, _debug["default"])('pie-elements:match-title:answer');
|
|
45
|
+
var Holder = (0, _styles.withStyles)(function (theme) {
|
|
46
|
+
return {
|
|
47
|
+
number: {
|
|
48
|
+
width: '100%',
|
|
49
|
+
fontSize: '18px',
|
|
50
|
+
textAlign: 'center',
|
|
51
|
+
color: "rgba(".concat(theme.palette.common.black, ", 0.6)")
|
|
52
|
+
},
|
|
53
|
+
placeholder: {
|
|
54
|
+
display: 'flex',
|
|
55
|
+
padding: '0',
|
|
56
|
+
alignItems: 'center',
|
|
57
|
+
justifyContent: 'center',
|
|
58
|
+
height: '40px'
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
})(function (_ref) {
|
|
62
|
+
var classes = _ref.classes,
|
|
63
|
+
index = _ref.index,
|
|
64
|
+
isOver = _ref.isOver,
|
|
65
|
+
disabled = _ref.disabled;
|
|
66
|
+
return /*#__PURE__*/_react["default"].createElement(_drag.PlaceHolder, {
|
|
67
|
+
className: classes.placeholder,
|
|
68
|
+
disabled: disabled,
|
|
69
|
+
isOver: isOver
|
|
70
|
+
}, index !== undefined && /*#__PURE__*/_react["default"].createElement("div", {
|
|
71
|
+
className: classes.number
|
|
72
|
+
}, index));
|
|
73
|
+
});
|
|
74
|
+
Holder.propTypes = {
|
|
75
|
+
index: _propTypes["default"].number,
|
|
76
|
+
isOver: _propTypes["default"].bool,
|
|
77
|
+
disabled: _propTypes["default"].bool
|
|
78
|
+
};
|
|
79
|
+
var AnswerContent = (0, _styles.withStyles)(function (theme) {
|
|
80
|
+
return {
|
|
81
|
+
over: {
|
|
82
|
+
opacity: 0.2
|
|
83
|
+
},
|
|
84
|
+
answerContent: {
|
|
85
|
+
color: _renderUi.color.text(),
|
|
86
|
+
backgroundColor: _renderUi.color.background(),
|
|
87
|
+
border: "1px solid ".concat(theme.palette.grey[400]),
|
|
88
|
+
cursor: 'pointer',
|
|
89
|
+
width: '100%',
|
|
90
|
+
padding: '10px',
|
|
91
|
+
boxSizing: 'border-box',
|
|
92
|
+
overflow: 'hidden',
|
|
93
|
+
transition: 'opacity 200ms linear',
|
|
94
|
+
wordBreak: 'break-word',
|
|
95
|
+
// Added for touch devices, for image content.
|
|
96
|
+
// This will prevent the context menu from appearing and not allowing other interactions with the image.
|
|
97
|
+
// If interactions with the image in the token will be requested we should handle only the context Menu.
|
|
98
|
+
pointerEvents: 'none'
|
|
99
|
+
},
|
|
100
|
+
dragging: {
|
|
101
|
+
opacity: 0.5
|
|
102
|
+
},
|
|
103
|
+
disabled: {
|
|
104
|
+
backgroundColor: _renderUi.color.background(),
|
|
105
|
+
opacity: 0.6,
|
|
106
|
+
cursor: 'not-allowed'
|
|
107
|
+
},
|
|
108
|
+
incorrect: {
|
|
109
|
+
border: "1px solid ".concat(_renderUi.color.incorrect())
|
|
110
|
+
},
|
|
111
|
+
correct: {
|
|
112
|
+
border: "1px solid ".concat(_renderUi.color.correct())
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
})(function (props) {
|
|
116
|
+
var classes = props.classes,
|
|
117
|
+
isDragging = props.isDragging,
|
|
118
|
+
isOver = props.isOver,
|
|
119
|
+
title = props.title,
|
|
120
|
+
disabled = props.disabled,
|
|
121
|
+
empty = props.empty,
|
|
122
|
+
outcome = props.outcome,
|
|
123
|
+
guideIndex = props.guideIndex,
|
|
124
|
+
type = props.type;
|
|
125
|
+
|
|
126
|
+
if (empty) {
|
|
127
|
+
return /*#__PURE__*/_react["default"].createElement(Holder, {
|
|
128
|
+
index: guideIndex,
|
|
129
|
+
isOver: isOver,
|
|
130
|
+
disabled: disabled,
|
|
131
|
+
type: type
|
|
132
|
+
});
|
|
133
|
+
} else {
|
|
134
|
+
var names = (0, _classnames["default"])(classes.answerContent, isDragging && !disabled && classes.dragging, isOver && !disabled && classes.over, disabled && classes.disabled, outcome && classes[outcome]);
|
|
135
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
136
|
+
className: names,
|
|
137
|
+
dangerouslySetInnerHTML: {
|
|
138
|
+
__html: title
|
|
139
|
+
}
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
});
|
|
143
|
+
|
|
144
|
+
var Answer = /*#__PURE__*/function (_React$Component) {
|
|
145
|
+
(0, _inherits2["default"])(Answer, _React$Component);
|
|
146
|
+
|
|
147
|
+
var _super = _createSuper(Answer);
|
|
148
|
+
|
|
149
|
+
function Answer() {
|
|
150
|
+
(0, _classCallCheck2["default"])(this, Answer);
|
|
151
|
+
return _super.apply(this, arguments);
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
(0, _createClass2["default"])(Answer, [{
|
|
155
|
+
key: "render",
|
|
156
|
+
value: function render() {
|
|
157
|
+
var _classNames;
|
|
158
|
+
|
|
159
|
+
var _this$props = this.props,
|
|
160
|
+
id = _this$props.id,
|
|
161
|
+
title = _this$props.title,
|
|
162
|
+
isDragging = _this$props.isDragging,
|
|
163
|
+
className = _this$props.className,
|
|
164
|
+
connectDragSource = _this$props.connectDragSource,
|
|
165
|
+
connectDropTarget = _this$props.connectDropTarget,
|
|
166
|
+
disabled = _this$props.disabled,
|
|
167
|
+
classes = _this$props.classes,
|
|
168
|
+
isOver = _this$props.isOver,
|
|
169
|
+
type = _this$props.type,
|
|
170
|
+
correct = _this$props.correct;
|
|
171
|
+
log('[render], props: ', this.props);
|
|
172
|
+
var name = (0, _classnames["default"])(className, classes.answer, (_classNames = {}, (0, _defineProperty2["default"])(_classNames, classes.correct, correct === true), (0, _defineProperty2["default"])(_classNames, classes.incorrect, correct === false), _classNames));
|
|
173
|
+
|
|
174
|
+
var content = /*#__PURE__*/_react["default"].createElement("div", {
|
|
175
|
+
className: name
|
|
176
|
+
}, /*#__PURE__*/_react["default"].createElement(AnswerContent, {
|
|
177
|
+
title: title,
|
|
178
|
+
id: id,
|
|
179
|
+
isOver: isOver,
|
|
180
|
+
empty: (0, _isEmpty["default"])(title),
|
|
181
|
+
isDragging: isDragging,
|
|
182
|
+
disabled: disabled,
|
|
183
|
+
type: type
|
|
184
|
+
}));
|
|
185
|
+
|
|
186
|
+
var droppable = connectDropTarget ? connectDropTarget(content) : content;
|
|
187
|
+
return connectDragSource ? connectDragSource(droppable) : droppable;
|
|
188
|
+
}
|
|
189
|
+
}]);
|
|
190
|
+
return Answer;
|
|
191
|
+
}(_react["default"].Component);
|
|
192
|
+
|
|
193
|
+
exports.Answer = Answer;
|
|
194
|
+
(0, _defineProperty2["default"])(Answer, "propTypes", {
|
|
195
|
+
className: _propTypes["default"].string,
|
|
196
|
+
connectDragSource: _propTypes["default"].func,
|
|
197
|
+
connectDropTarget: _propTypes["default"].func,
|
|
198
|
+
isDragging: _propTypes["default"].bool.isRequired,
|
|
199
|
+
id: _propTypes["default"].any,
|
|
200
|
+
title: _propTypes["default"].string,
|
|
201
|
+
isOver: _propTypes["default"].bool,
|
|
202
|
+
classes: _propTypes["default"].object.isRequired,
|
|
203
|
+
empty: _propTypes["default"].bool,
|
|
204
|
+
type: _propTypes["default"].string,
|
|
205
|
+
disabled: _propTypes["default"].bool,
|
|
206
|
+
correct: _propTypes["default"].bool
|
|
207
|
+
});
|
|
208
|
+
var StyledAnswer = (0, _styles.withStyles)({
|
|
209
|
+
answer: {
|
|
210
|
+
boxSizing: 'border-box',
|
|
211
|
+
minHeight: 40,
|
|
212
|
+
minWidth: '100px',
|
|
213
|
+
overflow: 'hidden',
|
|
214
|
+
margin: '10px 0',
|
|
215
|
+
padding: '0px',
|
|
216
|
+
textAlign: 'center'
|
|
217
|
+
},
|
|
218
|
+
incorrect: {
|
|
219
|
+
border: "1px solid var(--feedback-incorrect-bg-color, ".concat(_renderUi.color.incorrect(), ")")
|
|
220
|
+
},
|
|
221
|
+
correct: {
|
|
222
|
+
border: "1px solid var(--feedback-correct-bg-color, ".concat(_renderUi.color.correct(), ")")
|
|
223
|
+
}
|
|
224
|
+
})(Answer);
|
|
225
|
+
var answerTarget = {
|
|
226
|
+
drop: function drop(props, monitor) {
|
|
227
|
+
var draggedItem = monitor.getItem();
|
|
228
|
+
|
|
229
|
+
if (draggedItem.instanceId === props.instanceId) {
|
|
230
|
+
props.onPlaceAnswer(props.promptId, draggedItem.id);
|
|
231
|
+
}
|
|
232
|
+
},
|
|
233
|
+
canDrop: function canDrop(props, monitor) {
|
|
234
|
+
var draggedItem = monitor.getItem();
|
|
235
|
+
return draggedItem.instanceId === props.instanceId;
|
|
236
|
+
}
|
|
237
|
+
};
|
|
238
|
+
var DropAnswer = (0, _reactDnd.DropTarget)('Answer', answerTarget, function (connect, monitor) {
|
|
239
|
+
return {
|
|
240
|
+
connectDropTarget: connect.dropTarget(),
|
|
241
|
+
isOver: monitor.isOver()
|
|
242
|
+
};
|
|
243
|
+
})(StyledAnswer);
|
|
244
|
+
exports.DropAnswer = DropAnswer;
|
|
245
|
+
var answerSource = {
|
|
246
|
+
canDrag: function canDrag(props) {
|
|
247
|
+
return props.draggable && !props.disabled;
|
|
248
|
+
},
|
|
249
|
+
beginDrag: function beginDrag(props) {
|
|
250
|
+
return {
|
|
251
|
+
id: props.id,
|
|
252
|
+
type: props.type,
|
|
253
|
+
instanceId: props.instanceId,
|
|
254
|
+
value: props.title,
|
|
255
|
+
promptId: props.promptId
|
|
256
|
+
};
|
|
257
|
+
},
|
|
258
|
+
endDrag: function endDrag(props, monitor) {
|
|
259
|
+
if (!monitor.didDrop()) {
|
|
260
|
+
if (props.type === 'target') {
|
|
261
|
+
props.onRemoveChoice(monitor.getItem());
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
};
|
|
266
|
+
var DragAnswer = (0, _reactDnd.DragSource)('Answer', answerSource, function (connect, monitor) {
|
|
267
|
+
return {
|
|
268
|
+
connectDragSource: connect.dragSource(),
|
|
269
|
+
isDragging: monitor.isDragging()
|
|
270
|
+
};
|
|
271
|
+
})(StyledAnswer);
|
|
272
|
+
exports.DragAnswer = DragAnswer;
|
|
273
|
+
var DragAndDropAnswer = (0, _reactDnd.DragSource)('Answer', answerSource, function (connect, monitor) {
|
|
274
|
+
return {
|
|
275
|
+
connectDragSource: connect.dragSource(),
|
|
276
|
+
isDragging: monitor.isDragging()
|
|
277
|
+
};
|
|
278
|
+
})(DropAnswer);
|
|
279
|
+
var _default = DragAndDropAnswer;
|
|
280
|
+
exports["default"] = _default;
|
|
281
|
+
//# sourceMappingURL=answer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/answer.js"],"names":["log","Holder","theme","number","width","fontSize","textAlign","color","palette","common","black","placeholder","display","padding","alignItems","justifyContent","height","classes","index","isOver","disabled","undefined","propTypes","PropTypes","bool","AnswerContent","over","opacity","answerContent","text","backgroundColor","background","border","grey","cursor","boxSizing","overflow","transition","wordBreak","pointerEvents","dragging","incorrect","correct","props","isDragging","title","empty","outcome","guideIndex","type","names","__html","Answer","id","className","connectDragSource","connectDropTarget","name","answer","content","droppable","React","Component","string","func","isRequired","any","object","StyledAnswer","minHeight","minWidth","margin","answerTarget","drop","monitor","draggedItem","getItem","instanceId","onPlaceAnswer","promptId","canDrop","DropAnswer","connect","dropTarget","answerSource","canDrag","draggable","beginDrag","value","endDrag","didDrop","onRemoveChoice","DragAnswer","dragSource","DragAndDropAnswer"],"mappings":"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","sourcesContent":["import { DragSource, DropTarget } from 'react-dnd';\n\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport classNames from 'classnames';\nimport debug from 'debug';\nimport { withStyles } from '@material-ui/core/styles';\nimport { PlaceHolder } from '@pie-lib/pie-toolbox/drag';\nimport isEmpty from 'lodash/isEmpty';\nimport { color } from '@pie-lib/pie-toolbox/render-ui';\n\nconst log = debug('pie-elements:match-title:answer');\n\nconst Holder = withStyles((theme) => ({\n number: {\n width: '100%',\n fontSize: '18px',\n textAlign: 'center',\n color: `rgba(${theme.palette.common.black}, 0.6)`,\n },\n placeholder: {\n display: 'flex',\n padding: '0',\n alignItems: 'center',\n justifyContent: 'center',\n height: '40px',\n },\n}))(({ classes, index, isOver, disabled }) => (\n <PlaceHolder className={classes.placeholder} disabled={disabled} isOver={isOver}>\n {index !== undefined && <div className={classes.number}>{index}</div>}\n </PlaceHolder>\n));\n\nHolder.propTypes = {\n index: PropTypes.number,\n isOver: PropTypes.bool,\n disabled: PropTypes.bool,\n};\n\nconst AnswerContent = withStyles((theme) => ({\n over: {\n opacity: 0.2,\n },\n answerContent: {\n color: color.text(),\n backgroundColor: color.background(),\n border: `1px solid ${theme.palette.grey[400]}`,\n cursor: 'pointer',\n width: '100%',\n padding: '10px',\n boxSizing: 'border-box',\n overflow: 'hidden',\n transition: 'opacity 200ms linear',\n wordBreak: 'break-word',\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 },\n dragging: {\n opacity: 0.5,\n },\n disabled: {\n backgroundColor: color.background(),\n opacity: 0.6,\n cursor: 'not-allowed',\n },\n incorrect: {\n border: `1px solid ${color.incorrect()}`,\n },\n correct: {\n border: `1px solid ${color.correct()}`,\n },\n}))((props) => {\n const { classes, isDragging, isOver, title, disabled, empty, outcome, guideIndex, type } = props;\n\n if (empty) {\n return <Holder index={guideIndex} isOver={isOver} disabled={disabled} type={type} />;\n } else {\n const names = classNames(\n classes.answerContent,\n isDragging && !disabled && classes.dragging,\n isOver && !disabled && classes.over,\n disabled && classes.disabled,\n outcome && classes[outcome],\n );\n\n return <div className={names} dangerouslySetInnerHTML={{ __html: title }} />;\n }\n});\n\nexport class Answer extends React.Component {\n static propTypes = {\n className: PropTypes.string,\n connectDragSource: PropTypes.func,\n connectDropTarget: PropTypes.func,\n isDragging: PropTypes.bool.isRequired,\n id: PropTypes.any,\n title: PropTypes.string,\n isOver: PropTypes.bool,\n classes: PropTypes.object.isRequired,\n empty: PropTypes.bool,\n type: PropTypes.string,\n disabled: PropTypes.bool,\n correct: PropTypes.bool,\n };\n\n render() {\n const {\n id,\n title,\n isDragging,\n className,\n connectDragSource,\n connectDropTarget,\n disabled,\n classes,\n isOver,\n type,\n correct,\n } = this.props;\n\n log('[render], props: ', this.props);\n\n const name = classNames(className, classes.answer, {\n [classes.correct]: correct === true,\n [classes.incorrect]: correct === false,\n });\n\n const content = (\n <div className={name}>\n <AnswerContent\n title={title}\n id={id}\n isOver={isOver}\n empty={isEmpty(title)}\n isDragging={isDragging}\n disabled={disabled}\n type={type}\n />\n </div>\n );\n const droppable = connectDropTarget ? connectDropTarget(content) : content;\n\n return connectDragSource ? connectDragSource(droppable) : droppable;\n }\n}\n\nconst StyledAnswer = withStyles({\n answer: {\n boxSizing: 'border-box',\n minHeight: 40,\n minWidth: '100px',\n overflow: 'hidden',\n margin: '10px 0',\n padding: '0px',\n textAlign: 'center',\n },\n incorrect: {\n border: `1px solid var(--feedback-incorrect-bg-color, ${color.incorrect()})`,\n },\n correct: {\n border: `1px solid var(--feedback-correct-bg-color, ${color.correct()})`,\n },\n})(Answer);\n\nconst answerTarget = {\n drop(props, monitor) {\n const draggedItem = monitor.getItem();\n\n if (draggedItem.instanceId === props.instanceId) {\n props.onPlaceAnswer(props.promptId, draggedItem.id);\n }\n },\n canDrop(props, monitor) {\n const draggedItem = monitor.getItem();\n\n return draggedItem.instanceId === props.instanceId;\n },\n};\n\nexport const DropAnswer = DropTarget('Answer', answerTarget, (connect, monitor) => ({\n connectDropTarget: connect.dropTarget(),\n isOver: monitor.isOver(),\n}))(StyledAnswer);\n\nconst answerSource = {\n canDrag(props) {\n return props.draggable && !props.disabled;\n },\n beginDrag(props) {\n return {\n id: props.id,\n type: props.type,\n instanceId: props.instanceId,\n value: props.title,\n promptId: props.promptId,\n };\n },\n endDrag(props, monitor) {\n if (!monitor.didDrop()) {\n if (props.type === 'target') {\n props.onRemoveChoice(monitor.getItem());\n }\n }\n },\n};\n\nexport const DragAnswer = DragSource('Answer', answerSource, (connect, monitor) => ({\n connectDragSource: connect.dragSource(),\n isDragging: monitor.isDragging(),\n}))(StyledAnswer);\n\nconst DragAndDropAnswer = DragSource('Answer', answerSource, (connect, monitor) => ({\n connectDragSource: connect.dragSource(),\n isDragging: monitor.isDragging(),\n}))(DropAnswer);\n\nexport default DragAndDropAnswer;\n"],"file":"answer.js"}
|
package/lib/arrow.js
ADDED
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports["default"] = exports.Arrow = void 0;
|
|
9
|
+
|
|
10
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
+
|
|
12
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
|
+
|
|
14
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
15
|
+
|
|
16
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
17
|
+
|
|
18
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
19
|
+
|
|
20
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
21
|
+
|
|
22
|
+
var _react = _interopRequireDefault(require("react"));
|
|
23
|
+
|
|
24
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
25
|
+
|
|
26
|
+
var _classnames2 = _interopRequireDefault(require("classnames"));
|
|
27
|
+
|
|
28
|
+
var _ArrowDropDown = _interopRequireDefault(require("@material-ui/icons/ArrowDropDown"));
|
|
29
|
+
|
|
30
|
+
var _styles = require("@material-ui/core/styles");
|
|
31
|
+
|
|
32
|
+
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
|
+
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
|
+
var Arrow = /*#__PURE__*/function (_React$Component) {
|
|
37
|
+
(0, _inherits2["default"])(Arrow, _React$Component);
|
|
38
|
+
|
|
39
|
+
var _super = _createSuper(Arrow);
|
|
40
|
+
|
|
41
|
+
function Arrow() {
|
|
42
|
+
(0, _classCallCheck2["default"])(this, Arrow);
|
|
43
|
+
return _super.apply(this, arguments);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
(0, _createClass2["default"])(Arrow, [{
|
|
47
|
+
key: "render",
|
|
48
|
+
value: function render() {
|
|
49
|
+
var _this$props = this.props,
|
|
50
|
+
direction = _this$props.direction,
|
|
51
|
+
classes = _this$props.classes;
|
|
52
|
+
var extraStyle = direction === 'left' ? {} : {
|
|
53
|
+
transform: 'rotate(180deg)'
|
|
54
|
+
};
|
|
55
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
56
|
+
className: classes.arrow,
|
|
57
|
+
style: extraStyle
|
|
58
|
+
}, /*#__PURE__*/_react["default"].createElement(_ArrowDropDown["default"], {
|
|
59
|
+
style: {
|
|
60
|
+
transform: 'rotate(90deg)',
|
|
61
|
+
color: '#979797',
|
|
62
|
+
fontSize: 40
|
|
63
|
+
}
|
|
64
|
+
}), /*#__PURE__*/_react["default"].createElement("span", {
|
|
65
|
+
className: (0, _classnames2["default"])(classes.line, (0, _defineProperty2["default"])({}, classes.right, direction !== 'left'))
|
|
66
|
+
}));
|
|
67
|
+
}
|
|
68
|
+
}]);
|
|
69
|
+
return Arrow;
|
|
70
|
+
}(_react["default"].Component);
|
|
71
|
+
|
|
72
|
+
exports.Arrow = Arrow;
|
|
73
|
+
(0, _defineProperty2["default"])(Arrow, "propTypes", {
|
|
74
|
+
direction: _propTypes["default"].string,
|
|
75
|
+
classes: _propTypes["default"].object.isRequired
|
|
76
|
+
});
|
|
77
|
+
var styledArrow = (0, _styles.withStyles)(function (theme) {
|
|
78
|
+
return {
|
|
79
|
+
arrow: {
|
|
80
|
+
display: 'inline-block',
|
|
81
|
+
position: 'relative',
|
|
82
|
+
width: '100%'
|
|
83
|
+
},
|
|
84
|
+
line: {
|
|
85
|
+
backgroundColor: theme.palette.grey[500],
|
|
86
|
+
bottom: 19,
|
|
87
|
+
content: '""',
|
|
88
|
+
display: 'block',
|
|
89
|
+
height: 1,
|
|
90
|
+
left: 20,
|
|
91
|
+
position: 'absolute',
|
|
92
|
+
width: '100%'
|
|
93
|
+
},
|
|
94
|
+
right: {
|
|
95
|
+
bottom: 20
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
})(Arrow);
|
|
99
|
+
var _default = styledArrow;
|
|
100
|
+
exports["default"] = _default;
|
|
101
|
+
//# sourceMappingURL=arrow.js.map
|
package/lib/arrow.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/arrow.js"],"names":["Arrow","props","direction","classes","extraStyle","transform","arrow","color","fontSize","line","right","React","Component","PropTypes","string","object","isRequired","styledArrow","theme","display","position","width","backgroundColor","palette","grey","bottom","content","height","left"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;IAEaA,K;;;;;;;;;;;;WAMX,kBAAS;AACP,wBAA+B,KAAKC,KAApC;AAAA,UAAQC,SAAR,eAAQA,SAAR;AAAA,UAAmBC,OAAnB,eAAmBA,OAAnB;AAEA,UAAMC,UAAU,GACdF,SAAS,KAAK,MAAd,GACI,EADJ,GAEI;AACEG,QAAAA,SAAS,EAAE;AADb,OAHN;AAOA,0BACE;AAAK,QAAA,SAAS,EAAEF,OAAO,CAACG,KAAxB;AAA+B,QAAA,KAAK,EAAEF;AAAtC,sBACE,gCAAC,yBAAD;AACE,QAAA,KAAK,EAAE;AACLC,UAAAA,SAAS,EAAE,eADN;AAELE,UAAAA,KAAK,EAAE,SAFF;AAGLC,UAAAA,QAAQ,EAAE;AAHL;AADT,QADF,eAQE;AACE,QAAA,SAAS,EAAE,6BAAWL,OAAO,CAACM,IAAnB,uCACRN,OAAO,CAACO,KADA,EACQR,SAAS,KAAK,MADtB;AADb,QARF,CADF;AAgBD;;;EAhCwBS,kBAAMC,S;;;iCAApBZ,K,eACQ;AACjBE,EAAAA,SAAS,EAAEW,sBAAUC,MADJ;AAEjBX,EAAAA,OAAO,EAAEU,sBAAUE,MAAV,CAAiBC;AAFT,C;AAkCrB,IAAMC,WAAW,GAAG,wBAAW,UAACC,KAAD;AAAA,SAAY;AACzCZ,IAAAA,KAAK,EAAE;AACLa,MAAAA,OAAO,EAAE,cADJ;AAELC,MAAAA,QAAQ,EAAE,UAFL;AAGLC,MAAAA,KAAK,EAAE;AAHF,KADkC;AAMzCZ,IAAAA,IAAI,EAAE;AACJa,MAAAA,eAAe,EAAEJ,KAAK,CAACK,OAAN,CAAcC,IAAd,CAAmB,GAAnB,CADb;AAEJC,MAAAA,MAAM,EAAE,EAFJ;AAGJC,MAAAA,OAAO,EAAE,IAHL;AAIJP,MAAAA,OAAO,EAAE,OAJL;AAKJQ,MAAAA,MAAM,EAAE,CALJ;AAMJC,MAAAA,IAAI,EAAE,EANF;AAOJR,MAAAA,QAAQ,EAAE,UAPN;AAQJC,MAAAA,KAAK,EAAE;AARH,KANmC;AAgBzCX,IAAAA,KAAK,EAAE;AACLe,MAAAA,MAAM,EAAE;AADH;AAhBkC,GAAZ;AAAA,CAAX,EAmBhBzB,KAnBgB,CAApB;eAqBeiB,W","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport ArrowHead from '@material-ui/icons/ArrowDropDown';\nimport { withStyles } from '@material-ui/core/styles';\n\nexport class Arrow extends React.Component {\n static propTypes = {\n direction: PropTypes.string,\n classes: PropTypes.object.isRequired,\n };\n\n render() {\n const { direction, classes } = this.props;\n\n const extraStyle =\n direction === 'left'\n ? {}\n : {\n transform: 'rotate(180deg)',\n };\n\n return (\n <div className={classes.arrow} style={extraStyle}>\n <ArrowHead\n style={{\n transform: 'rotate(90deg)',\n color: '#979797',\n fontSize: 40,\n }}\n />\n <span\n className={classnames(classes.line, {\n [classes.right]: direction !== 'left',\n })}\n />\n </div>\n );\n }\n}\n\nconst styledArrow = withStyles((theme) => ({\n arrow: {\n display: 'inline-block',\n position: 'relative',\n width: '100%',\n },\n line: {\n backgroundColor: theme.palette.grey[500],\n bottom: 19,\n content: '\"\"',\n display: 'block',\n height: 1,\n left: 20,\n position: 'absolute',\n width: '100%',\n },\n right: {\n bottom: 20,\n },\n}))(Arrow);\n\nexport default styledArrow;\n"],"file":"arrow.js"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports["default"] = exports.ChoicesList = void 0;
|
|
9
|
+
|
|
10
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
|
+
|
|
12
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
13
|
+
|
|
14
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
15
|
+
|
|
16
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
17
|
+
|
|
18
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
19
|
+
|
|
20
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
21
|
+
|
|
22
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
23
|
+
|
|
24
|
+
var _react = _interopRequireDefault(require("react"));
|
|
25
|
+
|
|
26
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
27
|
+
|
|
28
|
+
var _styles = require("@material-ui/core/styles");
|
|
29
|
+
|
|
30
|
+
var _isEmpty = _interopRequireDefault(require("lodash/isEmpty"));
|
|
31
|
+
|
|
32
|
+
var _isUndefined = _interopRequireDefault(require("lodash/isUndefined"));
|
|
33
|
+
|
|
34
|
+
var _find = _interopRequireDefault(require("lodash/find"));
|
|
35
|
+
|
|
36
|
+
var _answer = require("./answer");
|
|
37
|
+
|
|
38
|
+
var _drag = require("@pie-lib/pie-toolbox/drag");
|
|
39
|
+
|
|
40
|
+
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); }; }
|
|
41
|
+
|
|
42
|
+
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; } }
|
|
43
|
+
|
|
44
|
+
var ChoicesList = /*#__PURE__*/function (_React$Component) {
|
|
45
|
+
(0, _inherits2["default"])(ChoicesList, _React$Component);
|
|
46
|
+
|
|
47
|
+
var _super = _createSuper(ChoicesList);
|
|
48
|
+
|
|
49
|
+
function ChoicesList() {
|
|
50
|
+
(0, _classCallCheck2["default"])(this, ChoicesList);
|
|
51
|
+
return _super.apply(this, arguments);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
(0, _createClass2["default"])(ChoicesList, [{
|
|
55
|
+
key: "render",
|
|
56
|
+
value: function render() {
|
|
57
|
+
var _this$props = this.props,
|
|
58
|
+
model = _this$props.model,
|
|
59
|
+
classes = _this$props.classes,
|
|
60
|
+
disabled = _this$props.disabled,
|
|
61
|
+
session = _this$props.session,
|
|
62
|
+
instanceId = _this$props.instanceId,
|
|
63
|
+
onRemoveAnswer = _this$props.onRemoveAnswer;
|
|
64
|
+
var config = model.config;
|
|
65
|
+
var duplicates = config.duplicates;
|
|
66
|
+
var filteredAnswers = config.answers.filter(function (answer) {
|
|
67
|
+
return duplicates || (0, _isEmpty["default"])(session) || !session.value || (0, _isUndefined["default"])((0, _find["default"])(session.value, function (val) {
|
|
68
|
+
return val === answer.id;
|
|
69
|
+
}));
|
|
70
|
+
}).map(function (answer) {
|
|
71
|
+
return /*#__PURE__*/_react["default"].createElement(_answer.DragAnswer, (0, _extends2["default"])({
|
|
72
|
+
key: answer.id,
|
|
73
|
+
instanceId: instanceId,
|
|
74
|
+
className: classes.choice,
|
|
75
|
+
draggable: true,
|
|
76
|
+
disabled: disabled,
|
|
77
|
+
session: session,
|
|
78
|
+
type: "choice"
|
|
79
|
+
}, answer));
|
|
80
|
+
});
|
|
81
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
82
|
+
className: classes.choicesContainer
|
|
83
|
+
}, _drag.MatchDroppablePlaceholder ? /*#__PURE__*/_react["default"].createElement(_drag.MatchDroppablePlaceholder, {
|
|
84
|
+
disabled: disabled,
|
|
85
|
+
onRemoveAnswer: onRemoveAnswer
|
|
86
|
+
}, filteredAnswers) : /*#__PURE__*/_react["default"].createElement("div", {
|
|
87
|
+
className: classes.answersContainer
|
|
88
|
+
}, filteredAnswers));
|
|
89
|
+
}
|
|
90
|
+
}]);
|
|
91
|
+
return ChoicesList;
|
|
92
|
+
}(_react["default"].Component);
|
|
93
|
+
|
|
94
|
+
exports.ChoicesList = ChoicesList;
|
|
95
|
+
(0, _defineProperty2["default"])(ChoicesList, "propTypes", {
|
|
96
|
+
classes: _propTypes["default"].object,
|
|
97
|
+
session: _propTypes["default"].object.isRequired,
|
|
98
|
+
instanceId: _propTypes["default"].string.isRequired,
|
|
99
|
+
model: _propTypes["default"].object.isRequired,
|
|
100
|
+
disabled: _propTypes["default"].bool.isRequired,
|
|
101
|
+
onRemoveAnswer: _propTypes["default"].func
|
|
102
|
+
});
|
|
103
|
+
|
|
104
|
+
var styles = function styles(theme) {
|
|
105
|
+
return {
|
|
106
|
+
choicesContainer: {
|
|
107
|
+
marginBottom: theme.spacing.unit * 2
|
|
108
|
+
},
|
|
109
|
+
answersContainer: {
|
|
110
|
+
alignItems: 'center',
|
|
111
|
+
display: 'flex',
|
|
112
|
+
flexDirection: 'row',
|
|
113
|
+
flexWrap: 'wrap',
|
|
114
|
+
justifyContent: 'space-between',
|
|
115
|
+
marginTop: theme.spacing.unit,
|
|
116
|
+
marginBottom: theme.spacing.unit
|
|
117
|
+
},
|
|
118
|
+
choice: {
|
|
119
|
+
minHeight: '40px',
|
|
120
|
+
minWidth: '200px',
|
|
121
|
+
height: 'initial',
|
|
122
|
+
margin: theme.spacing.unit / 2
|
|
123
|
+
}
|
|
124
|
+
};
|
|
125
|
+
};
|
|
126
|
+
|
|
127
|
+
var _default = (0, _styles.withStyles)(styles)(ChoicesList);
|
|
128
|
+
|
|
129
|
+
exports["default"] = _default;
|
|
130
|
+
//# sourceMappingURL=choices-list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/choices-list.jsx"],"names":["ChoicesList","props","model","classes","disabled","session","instanceId","onRemoveAnswer","config","duplicates","filteredAnswers","answers","filter","answer","value","val","id","map","choice","choicesContainer","MatchDroppablePlaceholder","answersContainer","React","Component","PropTypes","object","isRequired","string","bool","func","styles","theme","marginBottom","spacing","unit","alignItems","display","flexDirection","flexWrap","justifyContent","marginTop","minHeight","minWidth","height","margin"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport isEmpty from 'lodash/isEmpty';\nimport isUndefined from 'lodash/isUndefined';\nimport find from 'lodash/find';\nimport { DragAnswer } from './answer';\nimport { MatchDroppablePlaceholder } from '@pie-lib/pie-toolbox/drag';\n\nexport class ChoicesList extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n session: PropTypes.object.isRequired,\n instanceId: PropTypes.string.isRequired,\n model: PropTypes.object.isRequired,\n disabled: PropTypes.bool.isRequired,\n onRemoveAnswer: PropTypes.func,\n };\n\n render() {\n const { model, classes, disabled, session, instanceId, onRemoveAnswer } = this.props;\n const { config } = model;\n const { duplicates } = config;\n\n const filteredAnswers = config.answers\n .filter(\n (answer) =>\n duplicates ||\n isEmpty(session) ||\n !session.value ||\n isUndefined(find(session.value, (val) => val === answer.id)),\n )\n .map((answer) => (\n <DragAnswer\n key={answer.id}\n instanceId={instanceId}\n className={classes.choice}\n draggable={true}\n disabled={disabled}\n session={session}\n type=\"choice\"\n {...answer}\n />\n ));\n\n return (\n <div className={classes.choicesContainer}>\n {MatchDroppablePlaceholder ? (\n <MatchDroppablePlaceholder disabled={disabled} onRemoveAnswer={onRemoveAnswer}>\n {filteredAnswers}\n </MatchDroppablePlaceholder>\n ) : (\n <div className={classes.answersContainer}>{filteredAnswers}</div>\n )}\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n choicesContainer: {\n marginBottom: theme.spacing.unit * 2,\n },\n answersContainer: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'wrap',\n justifyContent: 'space-between',\n marginTop: theme.spacing.unit,\n marginBottom: theme.spacing.unit,\n },\n choice: {\n minHeight: '40px',\n minWidth: '200px',\n height: 'initial',\n margin: theme.spacing.unit / 2,\n },\n});\n\nexport default withStyles(styles)(ChoicesList);\n"],"file":"choices-list.js"}
|