@pie-element/categorize 11.3.4-next.3 → 12.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/CHANGELOG.md +0 -11
  2. package/configure/CHANGELOG.md +0 -11
  3. package/configure/lib/__tests__/main.test.js +100 -0
  4. package/configure/lib/__tests__/utils.js +39 -0
  5. package/configure/lib/defaults.js +3 -6
  6. package/configure/lib/defaults.js.map +1 -1
  7. package/configure/lib/design/__tests__/builder.test.js +34 -0
  8. package/configure/lib/design/__tests__/buttons.test.js +36 -0
  9. package/configure/lib/design/__tests__/header.test.js +37 -0
  10. package/configure/lib/design/__tests__/index.test.js +125 -0
  11. package/configure/lib/design/__tests__/input-header.test.js +41 -0
  12. package/configure/lib/design/builder.js +16 -34
  13. package/configure/lib/design/builder.js.map +1 -1
  14. package/configure/lib/design/buttons.js +42 -96
  15. package/configure/lib/design/buttons.js.map +1 -1
  16. package/configure/lib/design/categories/RowLabel.js +34 -47
  17. package/configure/lib/design/categories/RowLabel.js.map +1 -1
  18. package/configure/lib/design/categories/__tests__/alternateResponses.test.js +93 -0
  19. package/configure/lib/design/categories/__tests__/category.test.js +65 -0
  20. package/configure/lib/design/categories/__tests__/choice-preview.test.js +52 -0
  21. package/configure/lib/design/categories/__tests__/droppable-placeholder.test.js +63 -0
  22. package/configure/lib/design/categories/__tests__/index.test.js +91 -0
  23. package/configure/lib/design/categories/alternateResponses.js +97 -252
  24. package/configure/lib/design/categories/alternateResponses.js.map +1 -1
  25. package/configure/lib/design/categories/category.js +136 -209
  26. package/configure/lib/design/categories/category.js.map +1 -1
  27. package/configure/lib/design/categories/choice-preview.js +62 -127
  28. package/configure/lib/design/categories/choice-preview.js.map +1 -1
  29. package/configure/lib/design/categories/droppable-placeholder.js +74 -166
  30. package/configure/lib/design/categories/droppable-placeholder.js.map +1 -1
  31. package/configure/lib/design/categories/index.js +196 -385
  32. package/configure/lib/design/categories/index.js.map +1 -1
  33. package/configure/lib/design/choices/__tests__/choice.test.js +62 -0
  34. package/configure/lib/design/choices/__tests__/config.test.js +66 -0
  35. package/configure/lib/design/choices/__tests__/index.test.js +70 -0
  36. package/configure/lib/design/choices/choice.js +156 -265
  37. package/configure/lib/design/choices/choice.js.map +1 -1
  38. package/configure/lib/design/choices/config.js +43 -99
  39. package/configure/lib/design/choices/config.js.map +1 -1
  40. package/configure/lib/design/choices/index.js +149 -237
  41. package/configure/lib/design/choices/index.js.map +1 -1
  42. package/configure/lib/design/header.js +58 -112
  43. package/configure/lib/design/header.js.map +1 -1
  44. package/configure/lib/design/index.js +633 -478
  45. package/configure/lib/design/index.js.map +1 -1
  46. package/configure/lib/design/input-header.js +95 -151
  47. package/configure/lib/design/input-header.js.map +1 -1
  48. package/configure/lib/design/utils.js +5 -16
  49. package/configure/lib/design/utils.js.map +1 -1
  50. package/configure/lib/index.js +121 -184
  51. package/configure/lib/index.js.map +1 -1
  52. package/configure/lib/main.js +31 -75
  53. package/configure/lib/main.js.map +1 -1
  54. package/configure/lib/utils.js +23 -33
  55. package/configure/lib/utils.js.map +1 -1
  56. package/configure/package.json +15 -15
  57. package/controller/CHANGELOG.md +0 -11
  58. package/controller/lib/__tests__/index.test.js +526 -0
  59. package/controller/lib/defaults.js +3 -6
  60. package/controller/lib/defaults.js.map +1 -1
  61. package/controller/lib/index.js +238 -319
  62. package/controller/lib/index.js.map +1 -1
  63. package/controller/lib/utils.js +29 -66
  64. package/controller/lib/utils.js.map +1 -1
  65. package/controller/package.json +5 -5
  66. package/docs/demo/.pie/.configure/package.json +10 -0
  67. package/docs/demo/.pie/.configure/yarn.lock +2181 -0
  68. package/docs/demo/.pie/.controllers/package.json +10 -0
  69. package/docs/demo/.pie/.controllers/yarn.lock +110 -0
  70. package/docs/demo/.pie/info.entry.js +89 -0
  71. package/docs/demo/.pie/info.webpack.config.js +119 -0
  72. package/docs/demo/.pie/package.json +10 -0
  73. package/docs/demo/.pie/yarn.lock +2190 -0
  74. package/docs/demo/pie.manifest.json +11 -0
  75. package/lib/__tests__/index.test.js +197 -0
  76. package/lib/categorize/__tests__/categories.test.js +138 -0
  77. package/lib/categorize/__tests__/category.test.js +137 -0
  78. package/lib/categorize/__tests__/choice.test.js +88 -0
  79. package/lib/categorize/__tests__/choices.test.js +118 -0
  80. package/lib/categorize/__tests__/droppable-placeholder.test.js +96 -0
  81. package/lib/categorize/__tests__/grid-content.test.js +48 -0
  82. package/lib/categorize/__tests__/index.test.js +152 -0
  83. package/lib/categorize/categories.js +107 -165
  84. package/lib/categorize/categories.js.map +1 -1
  85. package/lib/categorize/category.js +74 -124
  86. package/lib/categorize/category.js.map +1 -1
  87. package/lib/categorize/choice.js +119 -246
  88. package/lib/categorize/choice.js.map +1 -1
  89. package/lib/categorize/choices.js +67 -132
  90. package/lib/categorize/choices.js.map +1 -1
  91. package/lib/categorize/droppable-placeholder.js +47 -104
  92. package/lib/categorize/droppable-placeholder.js.map +1 -1
  93. package/lib/categorize/grid-content.js +40 -88
  94. package/lib/categorize/grid-content.js.map +1 -1
  95. package/lib/categorize/index.js +342 -318
  96. package/lib/categorize/index.js.map +1 -1
  97. package/lib/index.js +286 -307
  98. package/lib/index.js.map +1 -1
  99. package/package.json +16 -14
  100. package/esm/configure.js +0 -34401
  101. package/esm/configure.js.map +0 -1
  102. package/esm/controller.js +0 -1468
  103. package/esm/controller.js.map +0 -1
  104. package/esm/element.js +0 -13134
  105. package/esm/element.js.map +0 -1
  106. package/esm/package.json +0 -3
@@ -1,193 +1,135 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- var _typeof = require("@babel/runtime/helpers/typeof");
6
-
7
4
  Object.defineProperty(exports, "__esModule", {
8
5
  value: true
9
6
  });
10
7
  exports.Categories = void 0;
11
8
  Object.defineProperty(exports, "CategoryType", {
12
9
  enumerable: true,
13
- get: function get() {
10
+ get: function () {
14
11
  return _category.CategoryType;
15
12
  }
16
13
  });
17
- exports["default"] = void 0;
18
-
14
+ exports.default = void 0;
19
15
  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
16
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
32
-
33
17
  var _react = _interopRequireDefault(require("react"));
34
-
35
18
  var _propTypes = _interopRequireDefault(require("prop-types"));
36
-
37
- var _styles = require("@material-ui/core/styles");
38
-
19
+ var _styles = require("@mui/material/styles");
39
20
  var _renderUi = require("@pie-lib/render-ui");
40
-
41
21
  var _gridContent = _interopRequireDefault(require("./grid-content"));
42
-
43
22
  var _category = _interopRequireWildcard(require("./category"));
44
-
45
- 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); }
46
-
47
- 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; }
48
-
49
- 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); }; }
50
-
51
- 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; } }
52
-
53
- var Categories = /*#__PURE__*/function (_React$Component) {
54
- (0, _inherits2["default"])(Categories, _React$Component);
55
-
56
- var _super = _createSuper(Categories);
57
-
58
- function Categories() {
59
- (0, _classCallCheck2["default"])(this, Categories);
60
- return _super.apply(this, arguments);
61
- }
62
-
63
- (0, _createClass2["default"])(Categories, [{
64
- key: "render",
65
- value: function render() {
66
- var _this$props = this.props,
67
- classes = _this$props.classes,
68
- categories = _this$props.categories,
69
- model = _this$props.model,
70
- disabled = _this$props.disabled,
71
- _onDropChoice = _this$props.onDropChoice,
72
- onRemoveChoice = _this$props.onRemoveChoice,
73
- rowLabels = _this$props.rowLabels;
74
- var categoriesPerRow = model.categoriesPerRow,
75
- minRowHeight = model.minRowHeight; // split categories into an array of arrays (inner array),
76
- // where each inner array represents how many categories should be displayed on one row
77
-
78
- var chunkedCategories = [];
79
- var cats = categories || [];
80
-
81
- for (var i = 0; i < cats.length; i += categoriesPerRow) {
82
- chunkedCategories.push(cats.slice(i, i + categoriesPerRow));
23
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
24
+ class Categories extends _react.default.Component {
25
+ render() {
26
+ const {
27
+ categories,
28
+ model,
29
+ disabled,
30
+ onDropChoice,
31
+ onRemoveChoice,
32
+ rowLabels
33
+ } = this.props;
34
+ const {
35
+ categoriesPerRow,
36
+ minRowHeight
37
+ } = model;
38
+
39
+ // split categories into an array of arrays (inner array),
40
+ // where each inner array represents how many categories should be displayed on one row
41
+ const chunkedCategories = [];
42
+ const cats = categories || [];
43
+ for (let i = 0; i < cats.length; i += categoriesPerRow) {
44
+ chunkedCategories.push(cats.slice(i, i + categoriesPerRow));
45
+ }
46
+ const hasNonEmptyString = array => {
47
+ let found = false;
48
+ (array || []).forEach(element => {
49
+ if (typeof element === 'string' && element.trim() !== '' && element.trim() !== '<div></div>') {
50
+ found = true;
51
+ }
52
+ });
53
+ return found;
54
+ };
55
+ return /*#__PURE__*/_react.default.createElement(_gridContent.default, {
56
+ columns: categoriesPerRow,
57
+ rows: Math.ceil(categories.length / categoriesPerRow) * 2,
58
+ extraStyle: {
59
+ flex: 1
83
60
  }
84
-
85
- var hasNonEmptyString = function hasNonEmptyString(array) {
86
- var found = false;
87
- (array || []).forEach(function (element) {
88
- if (typeof element === 'string' && element.trim() !== '' && element.trim() !== '<div></div>') {
89
- found = true;
61
+ }, chunkedCategories.map((cat, rowIndex) => {
62
+ let items = [];
63
+
64
+ // for each inner array of categories, create a row with category titles
65
+ // first cell of row has to be the row label
66
+ cat.forEach((c, columnIndex) => {
67
+ items.push(/*#__PURE__*/_react.default.createElement("div", {
68
+ style: {
69
+ display: 'flex'
90
70
  }
91
- });
92
- return found;
93
- };
94
-
95
- return /*#__PURE__*/_react["default"].createElement(_gridContent["default"], {
96
- columns: categoriesPerRow,
97
- className: classes.categories,
98
- rows: Math.ceil(categories.length / categoriesPerRow) * 2
99
- }, chunkedCategories.map(function (cat, rowIndex) {
100
- var items = []; // for each inner array of categories, create a row with category titles
101
- // first cell of row has to be the row label
102
-
103
- cat.forEach(function (c, columnIndex) {
104
- items.push( /*#__PURE__*/_react["default"].createElement("div", {
105
- style: {
106
- display: 'flex'
107
- }
108
- }, columnIndex === 0 && hasNonEmptyString(rowLabels) ? /*#__PURE__*/_react["default"].createElement("div", {
109
- key: rowIndex,
110
- className: classes.rowLabel,
111
- dangerouslySetInnerHTML: {
112
- __html: rowLabels[rowIndex] || ''
113
- }
114
- }) : null, /*#__PURE__*/_react["default"].createElement("div", {
115
- className: classes.categoryWrapper
116
- }, /*#__PURE__*/_react["default"].createElement("div", {
117
- className: classes.label,
118
- key: "category-label-".concat(rowIndex, "-").concat(columnIndex),
119
- dangerouslySetInnerHTML: {
120
- __html: c.label
121
- }
122
- }), /*#__PURE__*/_react["default"].createElement(_category["default"], (0, _extends2["default"])({
123
- minRowHeight: minRowHeight,
124
- onDropChoice: function onDropChoice(h) {
125
- return _onDropChoice(c.id, h);
126
- },
127
- onRemoveChoice: onRemoveChoice,
128
- disabled: disabled,
129
- className: classes.category,
130
- key: "category-element-".concat(rowIndex, "-").concat(columnIndex)
131
- }, c)))));
132
- }); // if the last row has fewer categories than max on a row, fill the spaces with divs
133
-
134
- items = items.concat(Array(categoriesPerRow - cat.length).fill( /*#__PURE__*/_react["default"].createElement("div", null)).map(function (value, index) {
135
- return /*#__PURE__*/_react["default"].createElement("div", {
136
- key: "fill-space-final-".concat(index)
137
- });
138
- }));
139
- return items;
140
- }));
141
- }
142
- }]);
143
- return Categories;
144
- }(_react["default"].Component);
145
-
71
+ }, columnIndex === 0 && hasNonEmptyString(rowLabels) ? /*#__PURE__*/_react.default.createElement(StyledRowLabel, {
72
+ key: rowIndex,
73
+ dangerouslySetInnerHTML: {
74
+ __html: rowLabels[rowIndex] || ''
75
+ }
76
+ }) : null, /*#__PURE__*/_react.default.createElement(StyledCategoryWrapper, null, /*#__PURE__*/_react.default.createElement(StyledLabel, {
77
+ key: `category-label-${rowIndex}-${columnIndex}`,
78
+ dangerouslySetInnerHTML: {
79
+ __html: c.label
80
+ }
81
+ }), /*#__PURE__*/_react.default.createElement(_category.default, (0, _extends2.default)({
82
+ minRowHeight: minRowHeight,
83
+ onDropChoice: h => onDropChoice(c.id, h),
84
+ onRemoveChoice: onRemoveChoice,
85
+ disabled: disabled,
86
+ key: `category-element-${rowIndex}-${columnIndex}`
87
+ }, c)))));
88
+ });
89
+
90
+ // if the last row has fewer categories than max on a row, fill the spaces with divs
91
+ items = items.concat(Array(categoriesPerRow - cat.length).fill(/*#__PURE__*/_react.default.createElement("div", null)).map((value, index) => /*#__PURE__*/_react.default.createElement("div", {
92
+ key: `fill-space-final-${index}`
93
+ })));
94
+ return items;
95
+ }));
96
+ }
97
+ }
146
98
  exports.Categories = Categories;
147
- (0, _defineProperty2["default"])(Categories, "propTypes", {
148
- classes: _propTypes["default"].object.isRequired,
149
- categories: _propTypes["default"].arrayOf(_propTypes["default"].shape(_category.CategoryType)),
150
- model: _propTypes["default"].shape({
151
- categoriesPerRow: _propTypes["default"].number
99
+ (0, _defineProperty2.default)(Categories, "propTypes", {
100
+ categories: _propTypes.default.arrayOf(_propTypes.default.shape(_category.CategoryType)),
101
+ model: _propTypes.default.shape({
102
+ categoriesPerRow: _propTypes.default.number
152
103
  }),
153
- disabled: _propTypes["default"].bool,
154
- onDropChoice: _propTypes["default"].func.isRequired,
155
- onRemoveChoice: _propTypes["default"].func.isRequired,
156
- rowLabels: _propTypes["default"].array
104
+ disabled: _propTypes.default.bool,
105
+ onDropChoice: _propTypes.default.func.isRequired,
106
+ onRemoveChoice: _propTypes.default.func.isRequired,
107
+ rowLabels: _propTypes.default.array
157
108
  });
158
- (0, _defineProperty2["default"])(Categories, "defaultProps", {
109
+ (0, _defineProperty2.default)(Categories, "defaultProps", {
159
110
  model: {
160
111
  categoriesPerRow: 1
161
112
  }
162
113
  });
163
-
164
- var styles = function styles(theme) {
165
- return {
166
- categories: {
167
- flex: 1
168
- },
169
- label: {
170
- color: _renderUi.color.text(),
171
- backgroundColor: _renderUi.color.background(),
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
114
+ const StyledLabel = (0, _styles.styled)('div')(({
115
+ theme
116
+ }) => ({
117
+ color: _renderUi.color.text(),
118
+ backgroundColor: _renderUi.color.background(),
119
+ textAlign: 'center',
120
+ paddingTop: theme.spacing(1)
121
+ }));
122
+ const StyledRowLabel = (0, _styles.styled)('div')({
123
+ alignItems: 'center',
124
+ display: 'flex',
125
+ justifyContent: 'center',
126
+ flex: 0.5,
127
+ marginRight: '12px'
128
+ });
129
+ const StyledCategoryWrapper = (0, _styles.styled)('div')({
130
+ display: 'flex',
131
+ flex: '2',
132
+ flexDirection: 'column'
133
+ });
134
+ var _default = exports.default = Categories;
135
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9wcm9wVHlwZXMiLCJfc3R5bGVzIiwiX3JlbmRlclVpIiwiX2dyaWRDb250ZW50IiwiX2NhdGVnb3J5IiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJlIiwidCIsIldlYWtNYXAiLCJyIiwibiIsIl9fZXNNb2R1bGUiLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJkZWZhdWx0IiwiaGFzIiwiZ2V0Iiwic2V0IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJDYXRlZ29yaWVzIiwiUmVhY3QiLCJDb21wb25lbnQiLCJyZW5kZXIiLCJjYXRlZ29yaWVzIiwibW9kZWwiLCJkaXNhYmxlZCIsIm9uRHJvcENob2ljZSIsIm9uUmVtb3ZlQ2hvaWNlIiwicm93TGFiZWxzIiwicHJvcHMiLCJjYXRlZ29yaWVzUGVyUm93IiwibWluUm93SGVpZ2h0IiwiY2h1bmtlZENhdGVnb3JpZXMiLCJjYXRzIiwibGVuZ3RoIiwicHVzaCIsInNsaWNlIiwiaGFzTm9uRW1wdHlTdHJpbmciLCJhcnJheSIsImZvdW5kIiwiZm9yRWFjaCIsImVsZW1lbnQiLCJ0cmltIiwiY3JlYXRlRWxlbWVudCIsImNvbHVtbnMiLCJyb3dzIiwiTWF0aCIsImNlaWwiLCJleHRyYVN0eWxlIiwiZmxleCIsIm1hcCIsImNhdCIsInJvd0luZGV4IiwiaXRlbXMiLCJjIiwiY29sdW1uSW5kZXgiLCJzdHlsZSIsImRpc3BsYXkiLCJTdHlsZWRSb3dMYWJlbCIsImtleSIsImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIiwiX19odG1sIiwiU3R5bGVkQ2F0ZWdvcnlXcmFwcGVyIiwiU3R5bGVkTGFiZWwiLCJsYWJlbCIsIl9leHRlbmRzMiIsImgiLCJpZCIsImNvbmNhdCIsIkFycmF5IiwiZmlsbCIsInZhbHVlIiwiaW5kZXgiLCJleHBvcnRzIiwiX2RlZmluZVByb3BlcnR5MiIsIlByb3BUeXBlcyIsImFycmF5T2YiLCJzaGFwZSIsIkNhdGVnb3J5VHlwZSIsIm51bWJlciIsImJvb2wiLCJmdW5jIiwiaXNSZXF1aXJlZCIsInN0eWxlZCIsInRoZW1lIiwiY29sb3IiLCJ0ZXh0IiwiYmFja2dyb3VuZENvbG9yIiwiYmFja2dyb3VuZCIsInRleHRBbGlnbiIsInBhZGRpbmdUb3AiLCJzcGFjaW5nIiwiYWxpZ25JdGVtcyIsImp1c3RpZnlDb250ZW50IiwibWFyZ2luUmlnaHQiLCJmbGV4RGlyZWN0aW9uIiwiX2RlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvY2F0ZWdvcml6ZS9jYXRlZ29yaWVzLmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB7IHN0eWxlZCB9IGZyb20gJ0BtdWkvbWF0ZXJpYWwvc3R5bGVzJztcbmltcG9ydCB7IGNvbG9yIH0gZnJvbSAnQHBpZS1saWIvcmVuZGVyLXVpJztcblxuaW1wb3J0IEdyaWRDb250ZW50IGZyb20gJy4vZ3JpZC1jb250ZW50JztcbmltcG9ydCBDYXRlZ29yeSwgeyBDYXRlZ29yeVR5cGUgfSBmcm9tICcuL2NhdGVnb3J5JztcblxuZXhwb3J0IHsgQ2F0ZWdvcnlUeXBlIH07XG5cbmV4cG9ydCBjbGFzcyBDYXRlZ29yaWVzIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBjYXRlZ29yaWVzOiBQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMuc2hhcGUoQ2F0ZWdvcnlUeXBlKSksXG4gICAgbW9kZWw6IFByb3BUeXBlcy5zaGFwZSh7XG4gICAgICBjYXRlZ29yaWVzUGVyUm93OiBQcm9wVHlwZXMubnVtYmVyLFxuICAgIH0pLFxuICAgIGRpc2FibGVkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBvbkRyb3BDaG9pY2U6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25SZW1vdmVDaG9pY2U6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgcm93TGFiZWxzOiBQcm9wVHlwZXMuYXJyYXksXG4gIH07XG5cbiAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICBtb2RlbDoge1xuICAgICAgY2F0ZWdvcmllc1BlclJvdzogMSxcbiAgICB9LFxuICB9O1xuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7IGNhdGVnb3JpZXMsIG1vZGVsLCBkaXNhYmxlZCwgb25Ecm9wQ2hvaWNlLCBvblJlbW92ZUNob2ljZSwgcm93TGFiZWxzIH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHsgY2F0ZWdvcmllc1BlclJvdywgbWluUm93SGVpZ2h0IH0gPSBtb2RlbDtcblxuICAgIC8vIHNwbGl0IGNhdGVnb3JpZXMgaW50byBhbiBhcnJheSBvZiBhcnJheXMgKGlubmVyIGFycmF5KSxcbiAgICAvLyB3aGVyZSBlYWNoIGlubmVyIGFycmF5IHJlcHJlc2VudHMgaG93IG1hbnkgY2F0ZWdvcmllcyBzaG91bGQgYmUgZGlzcGxheWVkIG9uIG9uZSByb3dcbiAgICBjb25zdCBjaHVua2VkQ2F0ZWdvcmllcyA9IFtdO1xuICAgIGNvbnN0IGNhdHMgPSBjYXRlZ29yaWVzIHx8IFtdO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2F0cy5sZW5ndGg7IGkgKz0gY2F0ZWdvcmllc1BlclJvdykge1xuICAgICAgY2h1bmtlZENhdGVnb3JpZXMucHVzaChjYXRzLnNsaWNlKGksIGkgKyBjYXRlZ29yaWVzUGVyUm93KSk7XG4gICAgfVxuXG4gICAgY29uc3QgaGFzTm9uRW1wdHlTdHJpbmcgPSAoYXJyYXkpID0+IHtcbiAgICAgIGxldCBmb3VuZCA9IGZhbHNlO1xuXG4gICAgICAoYXJyYXkgfHwgW10pLmZvckVhY2goKGVsZW1lbnQpID0+IHtcbiAgICAgICAgaWYgKHR5cGVvZiBlbGVtZW50ID09PSAnc3RyaW5nJyAmJiBlbGVtZW50LnRyaW0oKSAhPT0gJycgJiYgZWxlbWVudC50cmltKCkgIT09ICc8ZGl2PjwvZGl2PicpIHtcbiAgICAgICAgICBmb3VuZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gZm91bmQ7XG4gICAgfTtcblxuICAgIHJldHVybiAoXG4gICAgICA8R3JpZENvbnRlbnRcbiAgICAgICAgY29sdW1ucz17Y2F0ZWdvcmllc1BlclJvd31cbiAgICAgICAgcm93cz17TWF0aC5jZWlsKGNhdGVnb3JpZXMubGVuZ3RoIC8gY2F0ZWdvcmllc1BlclJvdykgKiAyfVxuICAgICAgICBleHRyYVN0eWxlPXt7IGZsZXg6IDEgfX1cbiAgICAgID5cbiAgICAgICAge2NodW5rZWRDYXRlZ29yaWVzLm1hcCgoY2F0LCByb3dJbmRleCkgPT4ge1xuICAgICAgICAgIGxldCBpdGVtcyA9IFtdO1xuXG4gICAgICAgICAgLy8gZm9yIGVhY2ggaW5uZXIgYXJyYXkgb2YgY2F0ZWdvcmllcywgY3JlYXRlIGEgcm93IHdpdGggY2F0ZWdvcnkgdGl0bGVzXG4gICAgICAgICAgLy8gZmlyc3QgY2VsbCBvZiByb3cgaGFzIHRvIGJlIHRoZSByb3cgbGFiZWxcbiAgICAgICAgICBjYXQuZm9yRWFjaCgoYywgY29sdW1uSW5kZXgpID0+IHtcbiAgICAgICAgICAgIGl0ZW1zLnB1c2goXG4gICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3sgZGlzcGxheTogJ2ZsZXgnIH19PlxuICAgICAgICAgICAgICAgIHtjb2x1bW5JbmRleCA9PT0gMCAmJiBoYXNOb25FbXB0eVN0cmluZyhyb3dMYWJlbHMpID8gKFxuICAgICAgICAgICAgICAgICAgPFN0eWxlZFJvd0xhYmVsXG4gICAgICAgICAgICAgICAgICAgIGtleT17cm93SW5kZXh9XG4gICAgICAgICAgICAgICAgICAgIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MPXt7XG4gICAgICAgICAgICAgICAgICAgICAgX19odG1sOiByb3dMYWJlbHNbcm93SW5kZXhdIHx8ICcnLFxuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8U3R5bGVkQ2F0ZWdvcnlXcmFwcGVyPlxuICAgICAgICAgICAgICAgICAgPFN0eWxlZExhYmVsXG4gICAgICAgICAgICAgICAgICAgIGtleT17YGNhdGVnb3J5LWxhYmVsLSR7cm93SW5kZXh9LSR7Y29sdW1uSW5kZXh9YH1cbiAgICAgICAgICAgICAgICAgICAgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw9e3sgX19odG1sOiBjLmxhYmVsIH19XG4gICAgICAgICAgICAgICAgICAvPlxuXG4gICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlcbiAgICAgICAgICAgICAgICAgICAgbWluUm93SGVpZ2h0PXttaW5Sb3dIZWlnaHR9XG4gICAgICAgICAgICAgICAgICAgIG9uRHJvcENob2ljZT17KGgpID0+IG9uRHJvcENob2ljZShjLmlkLCBoKX1cbiAgICAgICAgICAgICAgICAgICAgb25SZW1vdmVDaG9pY2U9e29uUmVtb3ZlQ2hvaWNlfVxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgIGtleT17YGNhdGVnb3J5LWVsZW1lbnQtJHtyb3dJbmRleH0tJHtjb2x1bW5JbmRleH1gfVxuICAgICAgICAgICAgICAgICAgICB7Li4uY31cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9TdHlsZWRDYXRlZ29yeVdyYXBwZXI+XG4gICAgICAgICAgICAgIDwvZGl2PixcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICAvLyBpZiB0aGUgbGFzdCByb3cgaGFzIGZld2VyIGNhdGVnb3JpZXMgdGhhbiBtYXggb24gYSByb3csIGZpbGwgdGhlIHNwYWNlcyB3aXRoIGRpdnNcbiAgICAgICAgICBpdGVtcyA9IGl0ZW1zLmNvbmNhdChcbiAgICAgICAgICAgIEFycmF5KGNhdGVnb3JpZXNQZXJSb3cgLSBjYXQubGVuZ3RoKVxuICAgICAgICAgICAgICAuZmlsbCg8ZGl2IC8+KVxuICAgICAgICAgICAgICAubWFwKCh2YWx1ZSwgaW5kZXgpID0+IDxkaXYga2V5PXtgZmlsbC1zcGFjZS1maW5hbC0ke2luZGV4fWB9IC8+KSxcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgcmV0dXJuIGl0ZW1zO1xuICAgICAgICB9KX1cbiAgICAgIDwvR3JpZENvbnRlbnQ+XG4gICAgKTtcbiAgfVxufVxuXG5jb25zdCBTdHlsZWRMYWJlbCA9IHN0eWxlZCgnZGl2JykoKHsgdGhlbWUgfSkgPT4gKHtcbiAgY29sb3I6IGNvbG9yLnRleHQoKSxcbiAgYmFja2dyb3VuZENvbG9yOiBjb2xvci5iYWNrZ3JvdW5kKCksXG4gIHRleHRBbGlnbjogJ2NlbnRlcicsXG4gIHBhZGRpbmdUb3A6IHRoZW1lLnNwYWNpbmcoMSksXG59KSk7XG5cbmNvbnN0IFN0eWxlZFJvd0xhYmVsID0gc3R5bGVkKCdkaXYnKSh7XG4gIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICBkaXNwbGF5OiAnZmxleCcsXG4gIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgZmxleDogMC41LFxuICBtYXJnaW5SaWdodDogJzEycHgnLFxufSk7XG5cbmNvbnN0IFN0eWxlZENhdGVnb3J5V3JhcHBlciA9IHN0eWxlZCgnZGl2Jykoe1xuICBkaXNwbGF5OiAnZmxleCcsXG4gIGZsZXg6ICcyJyxcbiAgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsXG59KTtcblxuZXhwb3J0IGRlZmF1bHQgQ2F0ZWdvcmllcztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFVBQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFFLE9BQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLFNB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
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/categorize/categories.jsx"],"names":["Categories","props","classes","categories","model","disabled","onDropChoice","onRemoveChoice","rowLabels","categoriesPerRow","minRowHeight","chunkedCategories","cats","i","length","push","slice","hasNonEmptyString","array","found","forEach","element","trim","Math","ceil","map","cat","rowIndex","items","c","columnIndex","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","color","text","backgroundColor","background","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 { color } from '@pie-lib/render-ui';\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, minRowHeight } = 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 = [];\n const cats = categories || [];\n for (let i = 0; i < cats.length; i += categoriesPerRow) {\n chunkedCategories.push(cats.slice(i, i + categoriesPerRow));\n }\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) ? (\n <div\n key={rowIndex}\n className={classes.rowLabel}\n dangerouslySetInnerHTML={{\n __html: rowLabels[rowIndex] || '',\n }}\n />\n ) : null}\n <div className={classes.categoryWrapper}>\n <div\n className={classes.label}\n key={`category-label-${rowIndex}-${columnIndex}`}\n dangerouslySetInnerHTML={{ __html: c.label }}\n />\n\n <Category\n minRowHeight={minRowHeight}\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(\n Array(categoriesPerRow - cat.length)\n .fill(<div />)\n .map((value, index) => <div key={`fill-space-final-${index}`} />),\n );\n\n return items;\n })}\n </GridContent>\n );\n }\n}\n\nconst styles = (theme) => ({\n categories: {\n flex: 1,\n },\n label: {\n color: color.text(),\n backgroundColor: color.background(),\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"}
1
+ {"version":3,"file":"categories.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_renderUi","_gridContent","_category","_interopRequireWildcard","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","Categories","React","Component","render","categories","model","disabled","onDropChoice","onRemoveChoice","rowLabels","props","categoriesPerRow","minRowHeight","chunkedCategories","cats","length","push","slice","hasNonEmptyString","array","found","forEach","element","trim","createElement","columns","rows","Math","ceil","extraStyle","flex","map","cat","rowIndex","items","c","columnIndex","style","display","StyledRowLabel","key","dangerouslySetInnerHTML","__html","StyledCategoryWrapper","StyledLabel","label","_extends2","h","id","concat","Array","fill","value","index","exports","_defineProperty2","PropTypes","arrayOf","shape","CategoryType","number","bool","func","isRequired","styled","theme","color","text","backgroundColor","background","textAlign","paddingTop","spacing","alignItems","justifyContent","marginRight","flexDirection","_default"],"sources":["../../src/categorize/categories.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport { color } from '@pie-lib/render-ui';\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 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 { categories, model, disabled, onDropChoice, onRemoveChoice, rowLabels } = this.props;\n const { categoriesPerRow, minRowHeight } = 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 = [];\n const cats = categories || [];\n for (let i = 0; i < cats.length; i += categoriesPerRow) {\n chunkedCategories.push(cats.slice(i, i + categoriesPerRow));\n }\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 rows={Math.ceil(categories.length / categoriesPerRow) * 2}\n extraStyle={{ flex: 1 }}\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) ? (\n <StyledRowLabel\n key={rowIndex}\n dangerouslySetInnerHTML={{\n __html: rowLabels[rowIndex] || '',\n }}\n />\n ) : null}\n <StyledCategoryWrapper>\n <StyledLabel\n key={`category-label-${rowIndex}-${columnIndex}`}\n dangerouslySetInnerHTML={{ __html: c.label }}\n />\n\n <Category\n minRowHeight={minRowHeight}\n onDropChoice={(h) => onDropChoice(c.id, h)}\n onRemoveChoice={onRemoveChoice}\n disabled={disabled}\n key={`category-element-${rowIndex}-${columnIndex}`}\n {...c}\n />\n </StyledCategoryWrapper>\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(\n Array(categoriesPerRow - cat.length)\n .fill(<div />)\n .map((value, index) => <div key={`fill-space-final-${index}`} />),\n );\n\n return items;\n })}\n </GridContent>\n );\n }\n}\n\nconst StyledLabel = styled('div')(({ theme }) => ({\n color: color.text(),\n backgroundColor: color.background(),\n textAlign: 'center',\n paddingTop: theme.spacing(1),\n}));\n\nconst StyledRowLabel = styled('div')({\n alignItems: 'center',\n display: 'flex',\n justifyContent: 'center',\n flex: 0.5,\n marginRight: '12px',\n});\n\nconst StyledCategoryWrapper = styled('div')({\n display: 'flex',\n flex: '2',\n flexDirection: 'column',\n});\n\nexport default Categories;\n"],"mappings":"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","ignoreList":[]}
@@ -1,140 +1,90 @@
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
- exports["default"] = exports.CategoryType = exports.Category = void 0;
9
-
7
+ exports.default = exports.CategoryType = exports.Category = void 0;
10
8
  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
9
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
23
-
24
10
  var _react = _interopRequireDefault(require("react"));
25
-
26
11
  var _propTypes = _interopRequireDefault(require("prop-types"));
27
-
28
- var _styles = require("@material-ui/core/styles");
29
-
30
- var _classnames = _interopRequireDefault(require("classnames"));
31
-
12
+ var _styles = require("@mui/material/styles");
13
+ var _renderUi = require("@pie-lib/render-ui");
32
14
  var _choice = _interopRequireDefault(require("./choice"));
33
-
34
15
  var _droppablePlaceholder = _interopRequireDefault(require("./droppable-placeholder"));
35
-
36
- var _renderUi = require("@pie-lib/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
16
+ const CategoryType = exports.CategoryType = {
17
+ id: _propTypes.default.string.isRequired,
18
+ categoryId: _propTypes.default.string
49
19
  };
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);
20
+ class Category extends _react.default.Component {
21
+ render() {
22
+ const {
23
+ className,
24
+ choices = [],
25
+ disabled,
26
+ onDropChoice,
27
+ onRemoveChoice,
28
+ id,
29
+ correct,
30
+ minRowHeight
31
+ } = this.props;
32
+ return /*#__PURE__*/_react.default.createElement(StyledDiv, {
33
+ className: className,
34
+ id: id
35
+ }, /*#__PURE__*/_react.default.createElement(StyledPlaceHolder, {
36
+ id: id,
37
+ onDropChoice: onDropChoice,
38
+ disabled: disabled,
39
+ correct: correct,
40
+ minRowHeight: minRowHeight
41
+ }, choices.map((c, index) => /*#__PURE__*/_react.default.createElement(_choice.default, (0, _extends2.default)({
42
+ onRemoveChoice: onRemoveChoice,
43
+ disabled: disabled,
44
+ key: index,
45
+ choiceIndex: index,
46
+ categoryId: id
47
+ }, c)))));
60
48
  }
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
- minRowHeight = _this$props.minRowHeight;
76
- var names = (0, _classnames["default"])(classes.category, className);
77
- var placeholderNames = (0, _classnames["default"])(classes.placeholder, correct === false && classes.incorrect, correct === true && classes.correct);
78
- return /*#__PURE__*/_react["default"].createElement("div", {
79
- className: names
80
- }, /*#__PURE__*/_react["default"].createElement(_droppablePlaceholder["default"], {
81
- onDropChoice: onDropChoice,
82
- disabled: disabled,
83
- className: placeholderNames,
84
- minRowHeight: minRowHeight
85
- }, choices.map(function (c, index) {
86
- return /*#__PURE__*/_react["default"].createElement(_choice["default"], (0, _extends2["default"])({
87
- onRemoveChoice: onRemoveChoice,
88
- disabled: disabled,
89
- key: index,
90
- choiceIndex: index,
91
- categoryId: id
92
- }, c));
93
- })));
94
- }
95
- }]);
96
- return Category;
97
- }(_react["default"].Component);
98
-
49
+ }
99
50
  exports.Category = Category;
100
- (0, _defineProperty2["default"])(Category, "propTypes", _objectSpread(_objectSpread({}, CategoryType), {}, {
101
- className: _propTypes["default"].string,
102
- disabled: _propTypes["default"].bool,
103
- classes: _propTypes["default"].object.isRequired,
104
- onDropChoice: _propTypes["default"].func,
105
- onRemoveChoice: _propTypes["default"].func,
106
- minRowHeight: _propTypes["default"].string
51
+ (0, _defineProperty2.default)(Category, "propTypes", {
52
+ ...CategoryType,
53
+ className: _propTypes.default.string,
54
+ disabled: _propTypes.default.bool,
55
+ onDropChoice: _propTypes.default.func,
56
+ onRemoveChoice: _propTypes.default.func,
57
+ minRowHeight: _propTypes.default.string
58
+ });
59
+ (0, _defineProperty2.default)(Category, "defaultProps", {});
60
+ const StyledDiv = (0, _styles.styled)('div')(({
61
+ theme
62
+ }) => ({
63
+ display: 'flex',
64
+ flexDirection: 'column',
65
+ flex: 2
107
66
  }));
108
- (0, _defineProperty2["default"])(Category, "defaultProps", {});
109
-
110
- var styles = function styles(theme) {
111
- return {
112
- incorrect: {
113
- border: "solid 2px ".concat(_renderUi.color.incorrect())
114
- },
115
- correct: {
116
- border: "solid 2px ".concat(_renderUi.color.correct())
117
- },
118
- placeholder: {
119
- padding: theme.spacing.unit / 2,
120
- borderRadius: theme.spacing.unit / 2,
121
- gridColumnGap: 0,
122
- gridRowGap: 0,
123
- display: 'flex',
124
- flexWrap: 'wrap',
125
- justifyContent: 'center',
126
- alignItems: 'center',
127
- alignContent: 'flex-start'
128
- },
129
- category: {
130
- display: 'flex',
131
- flexDirection: 'column',
132
- flex: 2
133
- }
134
- };
135
- };
136
-
137
- var _default = (0, _styles.withStyles)(styles)(Category);
138
-
139
- exports["default"] = _default;
140
- //# sourceMappingURL=category.js.map
67
+ const StyledPlaceHolder = (0, _styles.styled)(_droppablePlaceholder.default, {
68
+ shouldForwardProp: prop => prop !== 'correct'
69
+ })(({
70
+ theme,
71
+ correct
72
+ }) => ({
73
+ padding: theme.spacing(0.5),
74
+ borderRadius: theme.spacing(0.5),
75
+ gridColumnGap: 0,
76
+ gridRowGap: 0,
77
+ display: 'flex',
78
+ flexWrap: 'wrap',
79
+ justifyContent: 'center',
80
+ alignItems: 'center',
81
+ alignContent: 'flex-start',
82
+ ...(correct === false && {
83
+ border: `solid 2px ${_renderUi.color.incorrect()}`
84
+ }),
85
+ ...(correct === true && {
86
+ border: `solid 2px ${_renderUi.color.correct()}`
87
+ })
88
+ }));
89
+ var _default = exports.default = Category;
90
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9wcm9wVHlwZXMiLCJfc3R5bGVzIiwiX3JlbmRlclVpIiwiX2Nob2ljZSIsIl9kcm9wcGFibGVQbGFjZWhvbGRlciIsIkNhdGVnb3J5VHlwZSIsImV4cG9ydHMiLCJpZCIsIlByb3BUeXBlcyIsInN0cmluZyIsImlzUmVxdWlyZWQiLCJjYXRlZ29yeUlkIiwiQ2F0ZWdvcnkiLCJSZWFjdCIsIkNvbXBvbmVudCIsInJlbmRlciIsImNsYXNzTmFtZSIsImNob2ljZXMiLCJkaXNhYmxlZCIsIm9uRHJvcENob2ljZSIsIm9uUmVtb3ZlQ2hvaWNlIiwiY29ycmVjdCIsIm1pblJvd0hlaWdodCIsInByb3BzIiwiZGVmYXVsdCIsImNyZWF0ZUVsZW1lbnQiLCJTdHlsZWREaXYiLCJTdHlsZWRQbGFjZUhvbGRlciIsIm1hcCIsImMiLCJpbmRleCIsIl9leHRlbmRzMiIsImtleSIsImNob2ljZUluZGV4IiwiX2RlZmluZVByb3BlcnR5MiIsImJvb2wiLCJmdW5jIiwic3R5bGVkIiwidGhlbWUiLCJkaXNwbGF5IiwiZmxleERpcmVjdGlvbiIsImZsZXgiLCJQbGFjZUhvbGRlciIsInNob3VsZEZvcndhcmRQcm9wIiwicHJvcCIsInBhZGRpbmciLCJzcGFjaW5nIiwiYm9yZGVyUmFkaXVzIiwiZ3JpZENvbHVtbkdhcCIsImdyaWRSb3dHYXAiLCJmbGV4V3JhcCIsImp1c3RpZnlDb250ZW50IiwiYWxpZ25JdGVtcyIsImFsaWduQ29udGVudCIsImJvcmRlciIsImNvbG9yIiwiaW5jb3JyZWN0IiwiX2RlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvY2F0ZWdvcml6ZS9jYXRlZ29yeS5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgeyBzdHlsZWQgfSBmcm9tICdAbXVpL21hdGVyaWFsL3N0eWxlcyc7XG5pbXBvcnQgeyBjb2xvciB9IGZyb20gJ0BwaWUtbGliL3JlbmRlci11aSc7XG5cbmltcG9ydCBDaG9pY2UgZnJvbSAnLi9jaG9pY2UnO1xuaW1wb3J0IFBsYWNlSG9sZGVyIGZyb20gJy4vZHJvcHBhYmxlLXBsYWNlaG9sZGVyJztcblxuZXhwb3J0IGNvbnN0IENhdGVnb3J5VHlwZSA9IHtcbiAgaWQ6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgY2F0ZWdvcnlJZDogUHJvcFR5cGVzLnN0cmluZyxcbn07XG5cbmV4cG9ydCBjbGFzcyBDYXRlZ29yeSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgLi4uQ2F0ZWdvcnlUeXBlLFxuICAgIGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBkaXNhYmxlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgb25Ecm9wQ2hvaWNlOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBvblJlbW92ZUNob2ljZTogUHJvcFR5cGVzLmZ1bmMsXG4gICAgbWluUm93SGVpZ2h0OiBQcm9wVHlwZXMuc3RyaW5nLFxuICB9O1xuXG4gIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7fTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgY2xhc3NOYW1lLFxuICAgICAgY2hvaWNlcyA9IFtdLFxuICAgICAgZGlzYWJsZWQsXG4gICAgICBvbkRyb3BDaG9pY2UsXG4gICAgICBvblJlbW92ZUNob2ljZSxcbiAgICAgIGlkLFxuICAgICAgY29ycmVjdCxcbiAgICAgIG1pblJvd0hlaWdodCxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8U3R5bGVkRGl2IGNsYXNzTmFtZT17Y2xhc3NOYW1lfSBpZD17aWR9PlxuICAgICAgICA8U3R5bGVkUGxhY2VIb2xkZXJcbiAgICAgICAgICBpZD17aWR9XG4gICAgICAgICAgb25Ecm9wQ2hvaWNlPXtvbkRyb3BDaG9pY2V9XG4gICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgIGNvcnJlY3Q9e2NvcnJlY3R9XG4gICAgICAgICAgbWluUm93SGVpZ2h0PXttaW5Sb3dIZWlnaHR9XG4gICAgICAgID5cbiAgICAgICAgICB7Y2hvaWNlcy5tYXAoKGMsIGluZGV4KSA9PiAoXG4gICAgICAgICAgICA8Q2hvaWNlXG4gICAgICAgICAgICAgIG9uUmVtb3ZlQ2hvaWNlPXtvblJlbW92ZUNob2ljZX1cbiAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICBrZXk9e2luZGV4fVxuICAgICAgICAgICAgICBjaG9pY2VJbmRleD17aW5kZXh9XG4gICAgICAgICAgICAgIGNhdGVnb3J5SWQ9e2lkfVxuICAgICAgICAgICAgICB7Li4uY31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKSl9XG4gICAgICAgIDwvU3R5bGVkUGxhY2VIb2xkZXI+XG4gICAgICA8L1N0eWxlZERpdj5cbiAgICApO1xuICB9XG59XG5cbmNvbnN0IFN0eWxlZERpdiA9IHN0eWxlZCgnZGl2JykoKHsgdGhlbWUgfSkgPT4gKHtcbiAgZGlzcGxheTogJ2ZsZXgnLFxuICBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJyxcbiAgZmxleDogMixcbn0pKTtcblxuY29uc3QgU3R5bGVkUGxhY2VIb2xkZXIgPSBzdHlsZWQoUGxhY2VIb2xkZXIsIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IChwcm9wKSA9PiBwcm9wICE9PSAnY29ycmVjdCcsXG59KSgoeyB0aGVtZSwgY29ycmVjdCB9KSA9PiAoe1xuICBwYWRkaW5nOiB0aGVtZS5zcGFjaW5nKDAuNSksXG4gIGJvcmRlclJhZGl1czogdGhlbWUuc3BhY2luZygwLjUpLFxuICBncmlkQ29sdW1uR2FwOiAwLFxuICBncmlkUm93R2FwOiAwLFxuICBkaXNwbGF5OiAnZmxleCcsXG4gIGZsZXhXcmFwOiAnd3JhcCcsXG4gIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gIGFsaWduQ29udGVudDogJ2ZsZXgtc3RhcnQnLFxuICAuLi4oY29ycmVjdCA9PT0gZmFsc2UgJiYge1xuICAgIGJvcmRlcjogYHNvbGlkIDJweCAke2NvbG9yLmluY29ycmVjdCgpfWAsXG4gIH0pLFxuICAuLi4oY29ycmVjdCA9PT0gdHJ1ZSAmJiB7XG4gICAgYm9yZGVyOiBgc29saWQgMnB4ICR7Y29sb3IuY29ycmVjdCgpfWAsXG4gIH0pLFxufSkpO1xuXG5leHBvcnQgZGVmYXVsdCBDYXRlZ29yeTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsVUFBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsT0FBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsU0FBQSxHQUFBSCxPQUFBO0FBRUEsSUFBQUksT0FBQSxHQUFBTCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUsscUJBQUEsR0FBQU4sc0JBQUEsQ0FBQUMsT0FBQTtBQUVPLE1BQU1NLFlBQVksR0FBQUMsT0FBQSxDQUFBRCxZQUFBLEdBQUc7RUFDMUJFLEVBQUUsRUFBRUMsa0JBQVMsQ0FBQ0MsTUFBTSxDQUFDQyxVQUFVO0VBQy9CQyxVQUFVLEVBQUVILGtCQUFTLENBQUNDO0FBQ3hCLENBQUM7QUFFTSxNQUFNRyxRQUFRLFNBQVNDLGNBQUssQ0FBQ0MsU0FBUyxDQUFDO0VBWTVDQyxNQUFNQSxDQUFBLEVBQUc7SUFDUCxNQUFNO01BQ0pDLFNBQVM7TUFDVEMsT0FBTyxHQUFHLEVBQUU7TUFDWkMsUUFBUTtNQUNSQyxZQUFZO01BQ1pDLGNBQWM7TUFDZGIsRUFBRTtNQUNGYyxPQUFPO01BQ1BDO0lBQ0YsQ0FBQyxHQUFHLElBQUksQ0FBQ0MsS0FBSztJQUVkLG9CQUNFMUIsTUFBQSxDQUFBMkIsT0FBQSxDQUFBQyxhQUFBLENBQUNDLFNBQVM7TUFBQ1YsU0FBUyxFQUFF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