@pie-element/categorize 8.15.1-next.1 → 8.15.1-next.11
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/configure/lib/defaults.js +207 -0
- package/configure/lib/defaults.js.map +1 -0
- package/configure/lib/design/builder.js +74 -0
- package/configure/lib/design/builder.js.map +1 -0
- package/configure/lib/design/buttons.js +127 -0
- package/configure/lib/design/buttons.js.map +1 -0
- package/configure/lib/design/categories/RowLabel.js +78 -0
- package/configure/lib/design/categories/RowLabel.js.map +1 -0
- package/configure/lib/design/categories/alternateResponses.js +293 -0
- package/configure/lib/design/categories/alternateResponses.js.map +1 -0
- package/configure/lib/design/categories/category.js +219 -0
- package/configure/lib/design/categories/category.js.map +1 -0
- package/configure/lib/design/categories/choice-preview.js +136 -0
- package/configure/lib/design/categories/choice-preview.js.map +1 -0
- package/configure/lib/design/categories/droppable-placeholder.js +187 -0
- package/configure/lib/design/categories/droppable-placeholder.js.map +1 -0
- package/configure/lib/design/categories/index.js +408 -0
- package/configure/lib/design/categories/index.js.map +1 -0
- package/configure/lib/design/choices/choice.js +297 -0
- package/configure/lib/design/choices/choice.js.map +1 -0
- package/configure/lib/design/choices/config.js +114 -0
- package/configure/lib/design/choices/config.js.map +1 -0
- package/configure/lib/design/choices/index.js +276 -0
- package/configure/lib/design/choices/index.js.map +1 -0
- package/configure/lib/design/header.js +107 -0
- package/configure/lib/design/header.js.map +1 -0
- package/configure/lib/design/index.js +538 -0
- package/configure/lib/design/index.js.map +1 -0
- package/configure/lib/design/input-header.js +166 -0
- package/configure/lib/design/input-header.js.map +1 -0
- package/configure/lib/design/utils.js +23 -0
- package/configure/lib/design/utils.js.map +1 -0
- package/configure/lib/index.js +196 -0
- package/configure/lib/index.js.map +1 -0
- package/configure/lib/main.js +88 -0
- package/configure/lib/main.js.map +1 -0
- package/configure/lib/utils.js +40 -0
- package/configure/lib/utils.js.map +1 -0
- package/controller/lib/defaults.js +31 -0
- package/controller/lib/defaults.js.map +1 -0
- package/controller/lib/index.js +484 -0
- package/controller/lib/index.js.map +1 -0
- package/controller/lib/utils.js +60 -0
- package/controller/lib/utils.js.map +1 -0
- package/lib/categorize/categories.js +193 -0
- package/lib/categorize/categories.js.map +1 -0
- package/lib/categorize/category.js +135 -0
- package/lib/categorize/category.js.map +1 -0
- package/lib/categorize/choice.js +228 -0
- package/lib/categorize/choice.js.map +1 -0
- package/lib/categorize/choices.js +162 -0
- package/lib/categorize/choices.js.map +1 -0
- package/lib/categorize/droppable-placeholder.js +111 -0
- package/lib/categorize/droppable-placeholder.js.map +1 -0
- package/lib/categorize/grid-content.js +103 -0
- package/lib/categorize/grid-content.js.map +1 -0
- package/lib/categorize/index.js +368 -0
- package/lib/categorize/index.js.map +1 -0
- package/lib/index.js +137 -0
- package/lib/index.js.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports.Categories = void 0;
|
|
11
|
+
Object.defineProperty(exports, "CategoryType", {
|
|
12
|
+
enumerable: true,
|
|
13
|
+
get: function get() {
|
|
14
|
+
return _category.CategoryType;
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
exports["default"] = void 0;
|
|
18
|
+
|
|
19
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
20
|
+
|
|
21
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
22
|
+
|
|
23
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
24
|
+
|
|
25
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
26
|
+
|
|
27
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
28
|
+
|
|
29
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
30
|
+
|
|
31
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
32
|
+
|
|
33
|
+
var _react = _interopRequireDefault(require("react"));
|
|
34
|
+
|
|
35
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
36
|
+
|
|
37
|
+
var _styles = require("@material-ui/core/styles");
|
|
38
|
+
|
|
39
|
+
var _Typography = _interopRequireDefault(require("@material-ui/core/Typography"));
|
|
40
|
+
|
|
41
|
+
var _renderUi = require("@pie-lib/pie-toolbox/render-ui");
|
|
42
|
+
|
|
43
|
+
var _chunk = _interopRequireDefault(require("lodash/chunk"));
|
|
44
|
+
|
|
45
|
+
var _gridContent = _interopRequireDefault(require("./grid-content"));
|
|
46
|
+
|
|
47
|
+
var _category = _interopRequireWildcard(require("./category"));
|
|
48
|
+
|
|
49
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
50
|
+
|
|
51
|
+
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; }
|
|
52
|
+
|
|
53
|
+
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); }; }
|
|
54
|
+
|
|
55
|
+
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; } }
|
|
56
|
+
|
|
57
|
+
var Categories = /*#__PURE__*/function (_React$Component) {
|
|
58
|
+
(0, _inherits2["default"])(Categories, _React$Component);
|
|
59
|
+
|
|
60
|
+
var _super = _createSuper(Categories);
|
|
61
|
+
|
|
62
|
+
function Categories() {
|
|
63
|
+
(0, _classCallCheck2["default"])(this, Categories);
|
|
64
|
+
return _super.apply(this, arguments);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
(0, _createClass2["default"])(Categories, [{
|
|
68
|
+
key: "render",
|
|
69
|
+
value: function render() {
|
|
70
|
+
var _this$props = this.props,
|
|
71
|
+
classes = _this$props.classes,
|
|
72
|
+
categories = _this$props.categories,
|
|
73
|
+
model = _this$props.model,
|
|
74
|
+
disabled = _this$props.disabled,
|
|
75
|
+
_onDropChoice = _this$props.onDropChoice,
|
|
76
|
+
onRemoveChoice = _this$props.onRemoveChoice,
|
|
77
|
+
rowLabels = _this$props.rowLabels;
|
|
78
|
+
var categoriesPerRow = model.categoriesPerRow; // split categories into an array of arrays (inner array),
|
|
79
|
+
// where each inner array represents how many categories should be displayed on one row
|
|
80
|
+
|
|
81
|
+
var chunkedCategories = (0, _chunk["default"])(categories, categoriesPerRow);
|
|
82
|
+
|
|
83
|
+
var hasNonEmptyString = function hasNonEmptyString(array) {
|
|
84
|
+
var found = false;
|
|
85
|
+
(array || []).forEach(function (element) {
|
|
86
|
+
if (typeof element === 'string' && element.trim() !== '' && element.trim() !== '<div></div>') {
|
|
87
|
+
found = true;
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
return found;
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
return /*#__PURE__*/_react["default"].createElement(_gridContent["default"], {
|
|
94
|
+
columns: categoriesPerRow,
|
|
95
|
+
className: classes.categories,
|
|
96
|
+
rows: Math.ceil(categories.length / categoriesPerRow) * 2
|
|
97
|
+
}, chunkedCategories.map(function (cat, rowIndex) {
|
|
98
|
+
var items = []; // for each inner array of categories, create a row with category titles
|
|
99
|
+
// first cell of row has to be the row label
|
|
100
|
+
|
|
101
|
+
cat.forEach(function (c, columnIndex) {
|
|
102
|
+
items.push( /*#__PURE__*/_react["default"].createElement("div", {
|
|
103
|
+
style: {
|
|
104
|
+
display: 'flex'
|
|
105
|
+
}
|
|
106
|
+
}, columnIndex === 0 && hasNonEmptyString(rowLabels) ? /*#__PURE__*/_react["default"].createElement("div", {
|
|
107
|
+
key: rowIndex,
|
|
108
|
+
className: classes.rowLabel,
|
|
109
|
+
dangerouslySetInnerHTML: {
|
|
110
|
+
__html: rowLabels[rowIndex] || ''
|
|
111
|
+
}
|
|
112
|
+
}) : null, /*#__PURE__*/_react["default"].createElement("div", {
|
|
113
|
+
className: classes.categoryWrapper
|
|
114
|
+
}, /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
|
|
115
|
+
className: classes.label,
|
|
116
|
+
key: "category-label-".concat(rowIndex, "-").concat(columnIndex)
|
|
117
|
+
}, /*#__PURE__*/_react["default"].createElement("span", {
|
|
118
|
+
dangerouslySetInnerHTML: {
|
|
119
|
+
__html: c.label
|
|
120
|
+
}
|
|
121
|
+
})), /*#__PURE__*/_react["default"].createElement(_category["default"], (0, _extends2["default"])({
|
|
122
|
+
onDropChoice: function onDropChoice(h) {
|
|
123
|
+
return _onDropChoice(c.id, h);
|
|
124
|
+
},
|
|
125
|
+
onRemoveChoice: onRemoveChoice,
|
|
126
|
+
disabled: disabled,
|
|
127
|
+
className: classes.category,
|
|
128
|
+
key: "category-element-".concat(rowIndex, "-").concat(columnIndex)
|
|
129
|
+
}, c)))));
|
|
130
|
+
}); // if the last row has fewer categories than max on a row, fill the spaces with divs
|
|
131
|
+
|
|
132
|
+
items = items.concat(Array(categoriesPerRow - cat.length).fill( /*#__PURE__*/_react["default"].createElement("div", null)).map(function (value, index) {
|
|
133
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
134
|
+
key: "fill-space-final-".concat(index)
|
|
135
|
+
});
|
|
136
|
+
}));
|
|
137
|
+
return items;
|
|
138
|
+
}));
|
|
139
|
+
}
|
|
140
|
+
}]);
|
|
141
|
+
return Categories;
|
|
142
|
+
}(_react["default"].Component);
|
|
143
|
+
|
|
144
|
+
exports.Categories = Categories;
|
|
145
|
+
(0, _defineProperty2["default"])(Categories, "propTypes", {
|
|
146
|
+
classes: _propTypes["default"].object.isRequired,
|
|
147
|
+
categories: _propTypes["default"].arrayOf(_propTypes["default"].shape(_category.CategoryType)),
|
|
148
|
+
model: _propTypes["default"].shape({
|
|
149
|
+
categoriesPerRow: _propTypes["default"].number
|
|
150
|
+
}),
|
|
151
|
+
disabled: _propTypes["default"].bool,
|
|
152
|
+
onDropChoice: _propTypes["default"].func.isRequired,
|
|
153
|
+
onRemoveChoice: _propTypes["default"].func.isRequired,
|
|
154
|
+
rowLabels: _propTypes["default"].array
|
|
155
|
+
});
|
|
156
|
+
(0, _defineProperty2["default"])(Categories, "defaultProps", {
|
|
157
|
+
model: {
|
|
158
|
+
categoriesPerRow: 1
|
|
159
|
+
}
|
|
160
|
+
});
|
|
161
|
+
|
|
162
|
+
var styles = function styles(theme) {
|
|
163
|
+
return {
|
|
164
|
+
categories: {
|
|
165
|
+
flex: 1,
|
|
166
|
+
padding: '8px'
|
|
167
|
+
},
|
|
168
|
+
label: {
|
|
169
|
+
color: _renderUi.color.text(),
|
|
170
|
+
backgroundColor: _renderUi.color.background(),
|
|
171
|
+
fontSize: theme.typography.fontSize,
|
|
172
|
+
textAlign: 'center',
|
|
173
|
+
paddingTop: theme.spacing.unit
|
|
174
|
+
},
|
|
175
|
+
rowLabel: {
|
|
176
|
+
alignItems: 'center',
|
|
177
|
+
display: 'flex',
|
|
178
|
+
justifyContent: 'center',
|
|
179
|
+
flex: 0.5,
|
|
180
|
+
marginRight: '12px'
|
|
181
|
+
},
|
|
182
|
+
categoryWrapper: {
|
|
183
|
+
display: 'flex',
|
|
184
|
+
flex: '2',
|
|
185
|
+
flexDirection: 'column'
|
|
186
|
+
}
|
|
187
|
+
};
|
|
188
|
+
};
|
|
189
|
+
|
|
190
|
+
var _default = (0, _styles.withStyles)(styles)(Categories);
|
|
191
|
+
|
|
192
|
+
exports["default"] = _default;
|
|
193
|
+
//# sourceMappingURL=categories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/categorize/categories.jsx"],"names":["Categories","props","classes","categories","model","disabled","onDropChoice","onRemoveChoice","rowLabels","categoriesPerRow","chunkedCategories","hasNonEmptyString","array","found","forEach","element","trim","Math","ceil","length","map","cat","rowIndex","items","c","columnIndex","push","display","rowLabel","__html","categoryWrapper","label","h","id","category","concat","Array","fill","value","index","React","Component","PropTypes","object","isRequired","arrayOf","shape","CategoryType","number","bool","func","styles","theme","flex","padding","color","text","backgroundColor","background","fontSize","typography","textAlign","paddingTop","spacing","unit","alignItems","justifyContent","marginRight","flexDirection"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport Typography from '@material-ui/core/Typography';\nimport { color } from '@pie-lib/pie-toolbox/render-ui';\n\nimport chunk from 'lodash/chunk';\n\nimport GridContent from './grid-content';\nimport Category, { CategoryType } from './category';\n\nexport { CategoryType };\n\nexport class Categories extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n categories: PropTypes.arrayOf(PropTypes.shape(CategoryType)),\n model: PropTypes.shape({\n categoriesPerRow: PropTypes.number,\n }),\n disabled: PropTypes.bool,\n onDropChoice: PropTypes.func.isRequired,\n onRemoveChoice: PropTypes.func.isRequired,\n rowLabels: PropTypes.array\n };\n\n static defaultProps = {\n model: {\n categoriesPerRow: 1,\n },\n };\n\n render() {\n const { classes, categories, model, disabled, onDropChoice, onRemoveChoice, rowLabels } = this.props;\n const { categoriesPerRow } = model;\n\n // split categories into an array of arrays (inner array),\n // where each inner array represents how many categories should be displayed on one row\n const chunkedCategories = chunk(categories, categoriesPerRow);\n\n const hasNonEmptyString = (array) => {\n let found = false;\n\n (array || []).forEach(element => {\n if (typeof element === 'string' && element.trim() !== '' && element.trim() !== '<div></div>') {\n found = true;\n }\n });\n\n return found;\n };\n\n return (\n <GridContent\n columns={categoriesPerRow}\n className={classes.categories}\n rows={Math.ceil(categories.length / categoriesPerRow) * 2}\n >\n {chunkedCategories.map((cat, rowIndex) => {\n let items = [];\n\n // for each inner array of categories, create a row with category titles\n // first cell of row has to be the row label\n cat.forEach((c, columnIndex) => {\n items.push(\n <div style={{ display: 'flex' }}>\n {columnIndex === 0 && hasNonEmptyString(rowLabels) ? <div\n key={rowIndex}\n className={classes.rowLabel}\n dangerouslySetInnerHTML={{\n __html: rowLabels[rowIndex] || '',\n }}\n /> : null}\n <div className={classes.categoryWrapper}>\n <Typography className={classes.label} key={`category-label-${rowIndex}-${columnIndex}`}>\n <span dangerouslySetInnerHTML={{ __html: c.label }}/>\n </Typography>\n <Category\n onDropChoice={(h) => onDropChoice(c.id, h)}\n onRemoveChoice={onRemoveChoice}\n disabled={disabled}\n className={classes.category}\n key={`category-element-${rowIndex}-${columnIndex}`}\n {...c}\n />\n </div>\n </div>\n );\n });\n\n // if the last row has fewer categories than max on a row, fill the spaces with divs\n items = items.concat(Array(categoriesPerRow - cat.length).fill(<div/>).map((value, index) => <div\n key={`fill-space-final-${index}`}/>));\n\n return items;\n })}\n </GridContent>\n );\n }\n}\n\nconst styles = (theme) => ({\n categories: {\n flex: 1,\n padding: '8px'\n },\n label: {\n color: color.text(),\n backgroundColor: color.background(),\n fontSize: theme.typography.fontSize,\n textAlign: 'center',\n paddingTop: theme.spacing.unit,\n },\n rowLabel: {\n alignItems: 'center',\n display: 'flex',\n justifyContent: 'center',\n flex: 0.5,\n marginRight: '12px'\n },\n categoryWrapper: {\n display: 'flex',\n flex: '2',\n flexDirection: 'column'\n }\n});\nexport default withStyles(styles)(Categories);\n"],"file":"categories.js"}
|
|
@@ -0,0 +1,135 @@
|
|
|
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.CategoryType = exports.Category = 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 _classnames = _interopRequireDefault(require("classnames"));
|
|
31
|
+
|
|
32
|
+
var _choice = _interopRequireDefault(require("./choice"));
|
|
33
|
+
|
|
34
|
+
var _droppablePlaceholder = _interopRequireDefault(require("./droppable-placeholder"));
|
|
35
|
+
|
|
36
|
+
var _renderUi = require("@pie-lib/pie-toolbox/render-ui");
|
|
37
|
+
|
|
38
|
+
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; }
|
|
39
|
+
|
|
40
|
+
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; }
|
|
41
|
+
|
|
42
|
+
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); }; }
|
|
43
|
+
|
|
44
|
+
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; } }
|
|
45
|
+
|
|
46
|
+
var CategoryType = {
|
|
47
|
+
id: _propTypes["default"].string.isRequired,
|
|
48
|
+
categoryId: _propTypes["default"].string
|
|
49
|
+
};
|
|
50
|
+
exports.CategoryType = CategoryType;
|
|
51
|
+
|
|
52
|
+
var Category = /*#__PURE__*/function (_React$Component) {
|
|
53
|
+
(0, _inherits2["default"])(Category, _React$Component);
|
|
54
|
+
|
|
55
|
+
var _super = _createSuper(Category);
|
|
56
|
+
|
|
57
|
+
function Category() {
|
|
58
|
+
(0, _classCallCheck2["default"])(this, Category);
|
|
59
|
+
return _super.apply(this, arguments);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
(0, _createClass2["default"])(Category, [{
|
|
63
|
+
key: "render",
|
|
64
|
+
value: function render() {
|
|
65
|
+
var _this$props = this.props,
|
|
66
|
+
classes = _this$props.classes,
|
|
67
|
+
className = _this$props.className,
|
|
68
|
+
_this$props$choices = _this$props.choices,
|
|
69
|
+
choices = _this$props$choices === void 0 ? [] : _this$props$choices,
|
|
70
|
+
disabled = _this$props.disabled,
|
|
71
|
+
onDropChoice = _this$props.onDropChoice,
|
|
72
|
+
onRemoveChoice = _this$props.onRemoveChoice,
|
|
73
|
+
id = _this$props.id,
|
|
74
|
+
correct = _this$props.correct;
|
|
75
|
+
var names = (0, _classnames["default"])(classes.category, className);
|
|
76
|
+
var placeholderNames = (0, _classnames["default"])(classes.placeholder, correct === false && classes.incorrect);
|
|
77
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
78
|
+
className: names
|
|
79
|
+
}, /*#__PURE__*/_react["default"].createElement(_droppablePlaceholder["default"], {
|
|
80
|
+
onDropChoice: onDropChoice,
|
|
81
|
+
disabled: disabled,
|
|
82
|
+
className: placeholderNames
|
|
83
|
+
}, choices.map(function (c, index) {
|
|
84
|
+
return /*#__PURE__*/_react["default"].createElement(_choice["default"], (0, _extends2["default"])({
|
|
85
|
+
onRemoveChoice: onRemoveChoice,
|
|
86
|
+
disabled: disabled,
|
|
87
|
+
key: index,
|
|
88
|
+
choiceIndex: index,
|
|
89
|
+
categoryId: id
|
|
90
|
+
}, c));
|
|
91
|
+
})));
|
|
92
|
+
}
|
|
93
|
+
}]);
|
|
94
|
+
return Category;
|
|
95
|
+
}(_react["default"].Component);
|
|
96
|
+
|
|
97
|
+
exports.Category = Category;
|
|
98
|
+
(0, _defineProperty2["default"])(Category, "propTypes", _objectSpread(_objectSpread({}, CategoryType), {}, {
|
|
99
|
+
className: _propTypes["default"].string,
|
|
100
|
+
disabled: _propTypes["default"].bool,
|
|
101
|
+
classes: _propTypes["default"].object.isRequired,
|
|
102
|
+
onDropChoice: _propTypes["default"].func,
|
|
103
|
+
onRemoveChoice: _propTypes["default"].func
|
|
104
|
+
}));
|
|
105
|
+
(0, _defineProperty2["default"])(Category, "defaultProps", {});
|
|
106
|
+
|
|
107
|
+
var styles = function styles(theme) {
|
|
108
|
+
return {
|
|
109
|
+
incorrect: {
|
|
110
|
+
border: "solid 2px ".concat(_renderUi.color.incorrect())
|
|
111
|
+
},
|
|
112
|
+
placeholder: {
|
|
113
|
+
minHeight: '80px',
|
|
114
|
+
padding: theme.spacing.unit / 2,
|
|
115
|
+
borderRadius: theme.spacing.unit / 2,
|
|
116
|
+
gridColumnGap: 0,
|
|
117
|
+
gridRowGap: 0,
|
|
118
|
+
display: 'flex',
|
|
119
|
+
flexWrap: 'wrap',
|
|
120
|
+
justifyContent: 'center',
|
|
121
|
+
alignItems: 'center',
|
|
122
|
+
alignContent: 'flex-start'
|
|
123
|
+
},
|
|
124
|
+
category: {
|
|
125
|
+
display: 'flex',
|
|
126
|
+
flexDirection: 'column',
|
|
127
|
+
flex: 2
|
|
128
|
+
}
|
|
129
|
+
};
|
|
130
|
+
};
|
|
131
|
+
|
|
132
|
+
var _default = (0, _styles.withStyles)(styles)(Category);
|
|
133
|
+
|
|
134
|
+
exports["default"] = _default;
|
|
135
|
+
//# sourceMappingURL=category.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/categorize/category.jsx"],"names":["CategoryType","id","PropTypes","string","isRequired","categoryId","Category","props","classes","className","choices","disabled","onDropChoice","onRemoveChoice","correct","names","category","placeholderNames","placeholder","incorrect","map","c","index","React","Component","bool","object","func","styles","theme","border","color","minHeight","padding","spacing","unit","borderRadius","gridColumnGap","gridRowGap","display","flexWrap","justifyContent","alignItems","alignContent","flexDirection","flex"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;AAEO,IAAMA,YAAY,GAAG;AAC1BC,EAAAA,EAAE,EAAEC,sBAAUC,MAAV,CAAiBC,UADK;AAE1BC,EAAAA,UAAU,EAAEH,sBAAUC;AAFI,CAArB;;;IAKMG,Q;;;;;;;;;;;;WAYX,kBAAS;AACP,wBAAkG,KAAKC,KAAvG;AAAA,UAAQC,OAAR,eAAQA,OAAR;AAAA,UAAiBC,SAAjB,eAAiBA,SAAjB;AAAA,4CAA4BC,OAA5B;AAAA,UAA4BA,OAA5B,oCAAsC,EAAtC;AAAA,UAA0CC,QAA1C,eAA0CA,QAA1C;AAAA,UAAoDC,YAApD,eAAoDA,YAApD;AAAA,UAAkEC,cAAlE,eAAkEA,cAAlE;AAAA,UAAkFZ,EAAlF,eAAkFA,EAAlF;AAAA,UAAsFa,OAAtF,eAAsFA,OAAtF;AAEA,UAAMC,KAAK,GAAG,4BAAWP,OAAO,CAACQ,QAAnB,EAA6BP,SAA7B,CAAd;AACA,UAAMQ,gBAAgB,GAAG,4BAAWT,OAAO,CAACU,WAAnB,EAAgCJ,OAAO,KAAK,KAAZ,IAAqBN,OAAO,CAACW,SAA7D,CAAzB;AAEA,0BACE;AAAK,QAAA,SAAS,EAAEJ;AAAhB,sBACE,gCAAC,gCAAD;AAAa,QAAA,YAAY,EAAEH,YAA3B;AAAyC,QAAA,QAAQ,EAAED,QAAnD;AAA6D,QAAA,SAAS,EAAEM;AAAxE,SACGP,OAAO,CAACU,GAAR,CAAY,UAACC,CAAD,EAAIC,KAAJ;AAAA,4BACX,gCAAC,kBAAD;AACE,UAAA,cAAc,EAAET,cADlB;AAEE,UAAA,QAAQ,EAAEF,QAFZ;AAGE,UAAA,GAAG,EAAEW,KAHP;AAIE,UAAA,WAAW,EAAEA,KAJf;AAKE,UAAA,UAAU,EAAErB;AALd,WAMMoB,CANN,EADW;AAAA,OAAZ,CADH,CADF,CADF;AAgBD;;;EAlC2BE,kBAAMC,S;;;iCAAvBlB,Q,+CAENN,Y;AACHS,EAAAA,SAAS,EAAEP,sBAAUC,M;AACrBQ,EAAAA,QAAQ,EAAET,sBAAUuB,I;AACpBjB,EAAAA,OAAO,EAAEN,sBAAUwB,MAAV,CAAiBtB,U;AAC1BQ,EAAAA,YAAY,EAAEV,sBAAUyB,I;AACxBd,EAAAA,cAAc,EAAEX,sBAAUyB;;iCAPjBrB,Q,kBAUW,E;;AA2BxB,IAAMsB,MAAM,GAAG,SAATA,MAAS,CAACC,KAAD;AAAA,SAAY;AACzBV,IAAAA,SAAS,EAAE;AACTW,MAAAA,MAAM,sBAAeC,gBAAMZ,SAAN,EAAf;AADG,KADc;AAIzBD,IAAAA,WAAW,EAAE;AACXc,MAAAA,SAAS,EAAE,MADA;AAEXC,MAAAA,OAAO,EAAEJ,KAAK,CAACK,OAAN,CAAcC,IAAd,GAAqB,CAFnB;AAGXC,MAAAA,YAAY,EAAEP,KAAK,CAACK,OAAN,CAAcC,IAAd,GAAqB,CAHxB;AAIXE,MAAAA,aAAa,EAAE,CAJJ;AAKXC,MAAAA,UAAU,EAAE,CALD;AAMXC,MAAAA,OAAO,EAAE,MANE;AAOXC,MAAAA,QAAQ,EAAE,MAPC;AAQXC,MAAAA,cAAc,EAAE,QARL;AASXC,MAAAA,UAAU,EAAE,QATD;AAUXC,MAAAA,YAAY,EAAE;AAVH,KAJY;AAgBzB3B,IAAAA,QAAQ,EAAE;AACRuB,MAAAA,OAAO,EAAE,MADD;AAERK,MAAAA,aAAa,EAAE,QAFP;AAGRC,MAAAA,IAAI,EAAE;AAHE;AAhBe,GAAZ;AAAA,CAAf;;eAuBe,wBAAWjB,MAAX,EAAmBtB,QAAnB,C","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport Choice from './choice';\nimport PlaceHolder from './droppable-placeholder';\nimport { color } from '@pie-lib/pie-toolbox/render-ui';\n\nexport const CategoryType = {\n id: PropTypes.string.isRequired,\n categoryId: PropTypes.string,\n};\n\nexport class Category extends React.Component {\n static propTypes = {\n ...CategoryType,\n className: PropTypes.string,\n disabled: PropTypes.bool,\n classes: PropTypes.object.isRequired,\n onDropChoice: PropTypes.func,\n onRemoveChoice: PropTypes.func,\n };\n\n static defaultProps = {};\n\n render() {\n const { classes, className, choices = [], disabled, onDropChoice, onRemoveChoice, id, correct } = this.props;\n\n const names = classNames(classes.category, className);\n const placeholderNames = classNames(classes.placeholder, correct === false && classes.incorrect);\n\n return (\n <div className={names}>\n <PlaceHolder onDropChoice={onDropChoice} disabled={disabled} className={placeholderNames}>\n {choices.map((c, index) => (\n <Choice\n onRemoveChoice={onRemoveChoice}\n disabled={disabled}\n key={index}\n choiceIndex={index}\n categoryId={id}\n {...c}\n />\n ))}\n </PlaceHolder>\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n incorrect: {\n border: `solid 2px ${color.incorrect()}`,\n },\n placeholder: {\n minHeight: '80px',\n padding: theme.spacing.unit / 2,\n borderRadius: theme.spacing.unit / 2,\n gridColumnGap: 0,\n gridRowGap: 0,\n display: 'flex',\n flexWrap: 'wrap',\n justifyContent: 'center',\n alignItems: 'center',\n alignContent: 'flex-start',\n },\n category: {\n display: 'flex',\n flexDirection: 'column',\n flex: 2\n },\n});\n\nexport default withStyles(styles)(Category);\n"],"file":"category.js"}
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.spec = exports["default"] = exports.Layout = exports.ChoiceType = exports.Choice = 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 _styles = require("@material-ui/core/styles");
|
|
27
|
+
|
|
28
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
29
|
+
|
|
30
|
+
var _reactDnd = require("react-dnd");
|
|
31
|
+
|
|
32
|
+
var _drag = require("@pie-lib/pie-toolbox/drag");
|
|
33
|
+
|
|
34
|
+
var _Card = _interopRequireDefault(require("@material-ui/core/Card"));
|
|
35
|
+
|
|
36
|
+
var _CardContent = _interopRequireDefault(require("@material-ui/core/CardContent"));
|
|
37
|
+
|
|
38
|
+
var _renderUi = require("@pie-lib/pie-toolbox/render-ui");
|
|
39
|
+
|
|
40
|
+
var _debug = _interopRequireDefault(require("debug"));
|
|
41
|
+
|
|
42
|
+
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; }
|
|
43
|
+
|
|
44
|
+
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; }
|
|
45
|
+
|
|
46
|
+
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); }; }
|
|
47
|
+
|
|
48
|
+
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; } }
|
|
49
|
+
|
|
50
|
+
var log = (0, _debug["default"])('@pie-ui:categorize:choice');
|
|
51
|
+
var ChoiceType = {
|
|
52
|
+
content: _propTypes["default"].string.isRequired,
|
|
53
|
+
id: _propTypes["default"].string
|
|
54
|
+
};
|
|
55
|
+
exports.ChoiceType = ChoiceType;
|
|
56
|
+
|
|
57
|
+
var Layout = /*#__PURE__*/function (_React$Component) {
|
|
58
|
+
(0, _inherits2["default"])(Layout, _React$Component);
|
|
59
|
+
|
|
60
|
+
var _super = _createSuper(Layout);
|
|
61
|
+
|
|
62
|
+
function Layout() {
|
|
63
|
+
(0, _classCallCheck2["default"])(this, Layout);
|
|
64
|
+
return _super.apply(this, arguments);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
(0, _createClass2["default"])(Layout, [{
|
|
68
|
+
key: "render",
|
|
69
|
+
value: function render() {
|
|
70
|
+
var _this$props = this.props,
|
|
71
|
+
classes = _this$props.classes,
|
|
72
|
+
className = _this$props.className,
|
|
73
|
+
content = _this$props.content,
|
|
74
|
+
isDragging = _this$props.isDragging,
|
|
75
|
+
disabled = _this$props.disabled,
|
|
76
|
+
correct = _this$props.correct;
|
|
77
|
+
var rootNames = (0, _classnames["default"])(correct === true && 'correct', correct === false && 'incorrect', classes.choice, isDragging && classes.dragging, disabled && classes.disabled, className);
|
|
78
|
+
var cardNames = (0, _classnames["default"])(classes.card);
|
|
79
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
80
|
+
className: rootNames
|
|
81
|
+
}, /*#__PURE__*/_react["default"].createElement(_Card["default"], {
|
|
82
|
+
className: cardNames
|
|
83
|
+
}, /*#__PURE__*/_react["default"].createElement(_CardContent["default"], {
|
|
84
|
+
classes: {
|
|
85
|
+
root: classes.cardRoot
|
|
86
|
+
},
|
|
87
|
+
dangerouslySetInnerHTML: {
|
|
88
|
+
__html: content
|
|
89
|
+
}
|
|
90
|
+
})));
|
|
91
|
+
}
|
|
92
|
+
}]);
|
|
93
|
+
return Layout;
|
|
94
|
+
}(_react["default"].Component);
|
|
95
|
+
|
|
96
|
+
exports.Layout = Layout;
|
|
97
|
+
(0, _defineProperty2["default"])(Layout, "propTypes", _objectSpread(_objectSpread({}, ChoiceType), {}, {
|
|
98
|
+
classes: _propTypes["default"].object.isRequired,
|
|
99
|
+
className: _propTypes["default"].string,
|
|
100
|
+
disabled: _propTypes["default"].bool,
|
|
101
|
+
correct: _propTypes["default"].bool
|
|
102
|
+
}));
|
|
103
|
+
(0, _defineProperty2["default"])(Layout, "defaultProps", {});
|
|
104
|
+
|
|
105
|
+
var styles = function styles(theme) {
|
|
106
|
+
return {
|
|
107
|
+
choice: {
|
|
108
|
+
direction: 'initial',
|
|
109
|
+
cursor: 'pointer',
|
|
110
|
+
width: '100%',
|
|
111
|
+
'&.correct': {
|
|
112
|
+
border: "solid 2px ".concat(_renderUi.color.correct())
|
|
113
|
+
},
|
|
114
|
+
'&.incorrect': {
|
|
115
|
+
border: "solid 2px ".concat(_renderUi.color.incorrect())
|
|
116
|
+
},
|
|
117
|
+
borderRadius: '6px'
|
|
118
|
+
},
|
|
119
|
+
cardRoot: {
|
|
120
|
+
color: _renderUi.color.text(),
|
|
121
|
+
backgroundColor: _renderUi.color.background(),
|
|
122
|
+
fontSize: theme.typography.fontSize + 2,
|
|
123
|
+
'&:last-child': {
|
|
124
|
+
paddingBottom: theme.spacing.unit * 2
|
|
125
|
+
},
|
|
126
|
+
borderRadius: '4px',
|
|
127
|
+
border: '1px solid'
|
|
128
|
+
},
|
|
129
|
+
disabled: {
|
|
130
|
+
cursor: 'not-allowed',
|
|
131
|
+
opacity: '0.6'
|
|
132
|
+
},
|
|
133
|
+
dragging: {
|
|
134
|
+
cursor: 'move'
|
|
135
|
+
},
|
|
136
|
+
card: {
|
|
137
|
+
color: _renderUi.color.text(),
|
|
138
|
+
backgroundColor: _renderUi.color.background(),
|
|
139
|
+
width: '100%'
|
|
140
|
+
}
|
|
141
|
+
};
|
|
142
|
+
};
|
|
143
|
+
|
|
144
|
+
var Styled = (0, _styles.withStyles)(styles)(Layout);
|
|
145
|
+
|
|
146
|
+
var Choice = /*#__PURE__*/function (_React$Component2) {
|
|
147
|
+
(0, _inherits2["default"])(Choice, _React$Component2);
|
|
148
|
+
|
|
149
|
+
var _super2 = _createSuper(Choice);
|
|
150
|
+
|
|
151
|
+
function Choice() {
|
|
152
|
+
(0, _classCallCheck2["default"])(this, Choice);
|
|
153
|
+
return _super2.apply(this, arguments);
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
(0, _createClass2["default"])(Choice, [{
|
|
157
|
+
key: "render",
|
|
158
|
+
value: function render() {
|
|
159
|
+
var _this$props2 = this.props,
|
|
160
|
+
connectDragSource = _this$props2.connectDragSource,
|
|
161
|
+
id = _this$props2.id,
|
|
162
|
+
content = _this$props2.content,
|
|
163
|
+
disabled = _this$props2.disabled,
|
|
164
|
+
isDragging = _this$props2.isDragging,
|
|
165
|
+
correct = _this$props2.correct,
|
|
166
|
+
extraStyle = _this$props2.extraStyle;
|
|
167
|
+
return connectDragSource( /*#__PURE__*/_react["default"].createElement("div", {
|
|
168
|
+
style: _objectSpread({
|
|
169
|
+
margin: '4px'
|
|
170
|
+
}, extraStyle)
|
|
171
|
+
}, /*#__PURE__*/_react["default"].createElement(Styled, {
|
|
172
|
+
id: id,
|
|
173
|
+
content: content,
|
|
174
|
+
disabled: disabled,
|
|
175
|
+
correct: correct,
|
|
176
|
+
isDragging: isDragging
|
|
177
|
+
})));
|
|
178
|
+
}
|
|
179
|
+
}]);
|
|
180
|
+
return Choice;
|
|
181
|
+
}(_react["default"].Component);
|
|
182
|
+
|
|
183
|
+
exports.Choice = Choice;
|
|
184
|
+
(0, _defineProperty2["default"])(Choice, "propTypes", _objectSpread(_objectSpread({}, ChoiceType), {}, {
|
|
185
|
+
extraStyle: _propTypes["default"].object,
|
|
186
|
+
connectDragSource: _propTypes["default"].func.isRequired
|
|
187
|
+
}));
|
|
188
|
+
var spec = {
|
|
189
|
+
canDrag: function canDrag(props) {
|
|
190
|
+
return !props.disabled;
|
|
191
|
+
},
|
|
192
|
+
beginDrag: function beginDrag(props) {
|
|
193
|
+
var out = {
|
|
194
|
+
id: props.id,
|
|
195
|
+
categoryId: props.categoryId,
|
|
196
|
+
choiceIndex: props.choiceIndex,
|
|
197
|
+
value: props.content,
|
|
198
|
+
itemType: 'categorize'
|
|
199
|
+
};
|
|
200
|
+
log('[beginDrag] out:', out);
|
|
201
|
+
return out;
|
|
202
|
+
},
|
|
203
|
+
endDrag: function endDrag(props, monitor) {
|
|
204
|
+
if (!monitor.didDrop()) {
|
|
205
|
+
var item = monitor.getItem();
|
|
206
|
+
|
|
207
|
+
if (item.categoryId) {
|
|
208
|
+
log('wasnt droppped - what to do?');
|
|
209
|
+
props.onRemoveChoice(item);
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
};
|
|
214
|
+
exports.spec = spec;
|
|
215
|
+
var DraggableChoice = (0, _reactDnd.DragSource)(function (_ref) {
|
|
216
|
+
var uid = _ref.uid;
|
|
217
|
+
return uid;
|
|
218
|
+
}, spec, function (connect, monitor) {
|
|
219
|
+
return {
|
|
220
|
+
connectDragSource: connect.dragSource(),
|
|
221
|
+
isDragging: monitor.isDragging()
|
|
222
|
+
};
|
|
223
|
+
})(Choice);
|
|
224
|
+
|
|
225
|
+
var _default = _drag.uid.withUid(DraggableChoice);
|
|
226
|
+
|
|
227
|
+
exports["default"] = _default;
|
|
228
|
+
//# sourceMappingURL=choice.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/categorize/choice.jsx"],"names":["log","ChoiceType","content","PropTypes","string","isRequired","id","Layout","props","classes","className","isDragging","disabled","correct","rootNames","choice","dragging","cardNames","card","root","cardRoot","__html","React","Component","object","bool","styles","theme","direction","cursor","width","border","color","incorrect","borderRadius","text","backgroundColor","background","fontSize","typography","paddingBottom","spacing","unit","opacity","Styled","Choice","connectDragSource","extraStyle","margin","func","spec","canDrag","beginDrag","out","categoryId","choiceIndex","value","itemType","endDrag","monitor","didDrop","item","getItem","onRemoveChoice","DraggableChoice","uid","connect","dragSource","withUid"],"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 { DragSource } from 'react-dnd';\nimport { uid } from '@pie-lib/pie-toolbox/drag';\nimport Card from '@material-ui/core/Card';\nimport CardContent from '@material-ui/core/CardContent';\nimport { color } from '@pie-lib/pie-toolbox/render-ui';\nimport debug from 'debug';\n\nconst log = debug('@pie-ui:categorize:choice');\n\nexport const ChoiceType = {\n content: PropTypes.string.isRequired,\n id: PropTypes.string,\n};\n\nexport class Layout extends React.Component {\n static propTypes = {\n ...ChoiceType,\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n disabled: PropTypes.bool,\n correct: PropTypes.bool,\n };\n static defaultProps = {};\n render() {\n const { classes, className, content, isDragging, disabled, correct } = this.props;\n\n const rootNames = classNames(\n correct === true && 'correct',\n correct === false && 'incorrect',\n classes.choice,\n isDragging && classes.dragging,\n disabled && classes.disabled,\n className,\n );\n const cardNames = classNames(classes.card);\n return (\n <div className={rootNames}>\n <Card className={cardNames}>\n <CardContent classes={{ root: classes.cardRoot }} dangerouslySetInnerHTML={{ __html: content }} />\n </Card>\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n choice: {\n direction: 'initial',\n cursor: 'pointer',\n width: '100%',\n '&.correct': {\n border: `solid 2px ${color.correct()}`,\n },\n '&.incorrect': {\n border: `solid 2px ${color.incorrect()}`,\n },\n borderRadius: '6px',\n },\n cardRoot: {\n color: color.text(),\n backgroundColor: color.background(),\n fontSize: theme.typography.fontSize + 2,\n '&:last-child': {\n paddingBottom: theme.spacing.unit * 2,\n },\n borderRadius: '4px',\n border: '1px solid',\n },\n disabled: {\n cursor: 'not-allowed',\n opacity: '0.6',\n },\n dragging: {\n cursor: 'move',\n },\n card: {\n color: color.text(),\n backgroundColor: color.background(),\n width: '100%',\n },\n});\n\nconst Styled = withStyles(styles)(Layout);\n\nexport class Choice extends React.Component {\n static propTypes = {\n ...ChoiceType,\n extraStyle: PropTypes.object,\n connectDragSource: PropTypes.func.isRequired,\n };\n\n render() {\n const { connectDragSource, id, content, disabled, isDragging, correct, extraStyle } = this.props;\n\n return connectDragSource(\n <div style={{ margin: '4px', ...extraStyle }}>\n <Styled id={id} content={content} disabled={disabled} correct={correct} isDragging={isDragging} />\n </div>,\n );\n }\n}\n\nexport const spec = {\n canDrag: (props) => !props.disabled,\n beginDrag: (props) => {\n const out = {\n id: props.id,\n categoryId: props.categoryId,\n choiceIndex: props.choiceIndex,\n value: props.content,\n itemType: 'categorize'\n };\n log('[beginDrag] out:', out);\n return out;\n },\n endDrag: (props, monitor) => {\n if (!monitor.didDrop()) {\n const item = monitor.getItem();\n if (item.categoryId) {\n log('wasnt droppped - what to do?');\n props.onRemoveChoice(item);\n }\n }\n },\n};\n\nconst DraggableChoice = DragSource(\n ({ uid }) => uid,\n spec,\n (connect, monitor) => ({\n connectDragSource: connect.dragSource(),\n isDragging: monitor.isDragging(),\n }),\n)(Choice);\n\nexport default uid.withUid(DraggableChoice);\n"],"file":"choice.js"}
|