@pie-element/multi-trait-rubric 6.3.4-next.3 → 7.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 (44) hide show
  1. package/CHANGELOG.md +0 -11
  2. package/configure/CHANGELOG.md +0 -11
  3. package/configure/lib/common.js +375 -534
  4. package/configure/lib/common.js.map +1 -1
  5. package/configure/lib/defaults.js +35 -6
  6. package/configure/lib/defaults.js.map +1 -1
  7. package/configure/lib/index.js +96 -162
  8. package/configure/lib/index.js.map +1 -1
  9. package/configure/lib/main.js +346 -437
  10. package/configure/lib/main.js.map +1 -1
  11. package/configure/lib/modals.js +178 -333
  12. package/configure/lib/modals.js.map +1 -1
  13. package/configure/lib/scale.js +358 -463
  14. package/configure/lib/scale.js.map +1 -1
  15. package/configure/lib/trait.js +253 -358
  16. package/configure/lib/trait.js.map +1 -1
  17. package/configure/lib/traitsHeader.js +199 -264
  18. package/configure/lib/traitsHeader.js.map +1 -1
  19. package/configure/lib/utils.js +43 -74
  20. package/configure/lib/utils.js.map +1 -1
  21. package/configure/package.json +12 -9
  22. package/controller/lib/defaults.js +2 -3
  23. package/controller/lib/defaults.js.map +1 -1
  24. package/controller/lib/index.js +66 -123
  25. package/controller/lib/index.js.map +1 -1
  26. package/controller/lib/utils.js +1 -3
  27. package/controller/lib/utils.js.map +1 -1
  28. package/controller/package.json +1 -1
  29. package/lib/index.js +40 -77
  30. package/lib/index.js.map +1 -1
  31. package/lib/main.js +99 -140
  32. package/lib/main.js.map +1 -1
  33. package/lib/scale.js +217 -299
  34. package/lib/scale.js.map +1 -1
  35. package/lib/trait.js +51 -71
  36. package/lib/trait.js.map +1 -1
  37. package/package.json +10 -8
  38. package/esm/configure.js +0 -30404
  39. package/esm/configure.js.map +0 -1
  40. package/esm/controller.js +0 -176
  41. package/esm/controller.js.map +0 -1
  42. package/esm/element.js +0 -11204
  43. package/esm/element.js.map +0 -1
  44. package/esm/package.json +0 -3
@@ -1,380 +1,275 @@
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.TraitTile = exports.StyledTrait = 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 _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
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
-
7
+ exports.default = void 0;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
24
9
  var _react = _interopRequireDefault(require("react"));
25
-
26
10
  var _debug = _interopRequireDefault(require("debug"));
27
-
28
11
  var _propTypes = _interopRequireDefault(require("prop-types"));
29
-
30
12
  var _isEmpty = _interopRequireDefault(require("lodash/isEmpty"));
31
-
32
- var _reactDnd = require("react-dnd");
33
-
34
- var _styles = require("@material-ui/core/styles");
35
-
13
+ var _core = require("@dnd-kit/core");
14
+ var _styles = require("@mui/material/styles");
36
15
  var _renderUi = require("@pie-lib/render-ui");
37
-
38
16
  var _common = require("./common");
39
-
40
- var _IconButton = _interopRequireDefault(require("@material-ui/core/IconButton"));
41
-
42
- var _MoreVert = _interopRequireDefault(require("@material-ui/icons/MoreVert"));
43
-
44
- var _Menu = _interopRequireDefault(require("@material-ui/core/Menu"));
45
-
46
- var _MenuItem = _interopRequireDefault(require("@material-ui/core/MenuItem"));
47
-
48
- var _DragIndicator = _interopRequireDefault(require("@material-ui/icons/DragIndicator"));
49
-
50
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
51
-
52
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
53
-
54
- var log = (0, _debug["default"])('@pie-element:placement-ordering:configure:trait-tile');
55
-
56
- var styles = function styles(theme) {
57
- return {
58
- actions: {
59
- color: _renderUi.color.text()
60
- },
61
- primaryBlock: {
62
- display: 'flex',
63
- flexDirection: 'column',
64
- justifyContent: 'space-between',
65
- marginBottom: theme.spacing.unit * 5
66
- },
67
- controls: {
68
- display: 'flex',
69
- alignItems: 'center',
70
- width: '100%',
71
- cursor: 'pointer'
72
- },
73
- options: {
74
- marginLeft: 'auto'
75
- },
76
- dragHandle: {},
77
- removeLabel: {
78
- display: 'flex',
79
- whiteSpace: 'break-spaces'
80
- },
81
- errorText: {
82
- fontSize: theme.typography.fontSize - 2,
83
- color: theme.palette.error.main,
84
- paddingBottom: theme.spacing.unit
17
+ var _IconButton = _interopRequireDefault(require("@mui/material/IconButton"));
18
+ var _MoreVert = _interopRequireDefault(require("@mui/icons-material/MoreVert"));
19
+ var _Menu = _interopRequireDefault(require("@mui/material/Menu"));
20
+ var _MenuItem = _interopRequireDefault(require("@mui/material/MenuItem"));
21
+ var _DragIndicator = _interopRequireDefault(require("@mui/icons-material/DragIndicator"));
22
+ const log = (0, _debug.default)('@pie-element:placement-ordering:configure:trait-tile');
23
+ const ActionsIcon = (0, _styles.styled)(_DragIndicator.default)({
24
+ color: _renderUi.color.text()
25
+ });
26
+ const StyledPrimaryBlock = (0, _styles.styled)(_common.PrimaryBlock)(({
27
+ theme
28
+ }) => ({
29
+ display: 'flex',
30
+ flexDirection: 'column',
31
+ justifyContent: 'space-between',
32
+ marginBottom: theme.spacing(5)
33
+ }));
34
+ const Controls = (0, _styles.styled)('div')({
35
+ display: 'flex',
36
+ alignItems: 'center',
37
+ width: '100%',
38
+ cursor: 'pointer'
39
+ });
40
+ const Options = (0, _styles.styled)(_IconButton.default)({
41
+ marginLeft: 'auto'
42
+ });
43
+ const RemoveLabel = (0, _styles.styled)('div')({
44
+ display: 'flex',
45
+ whiteSpace: 'break-spaces'
46
+ });
47
+ const ErrorText = (0, _styles.styled)('div')(({
48
+ theme
49
+ }) => ({
50
+ fontSize: theme.typography.fontSize - 2,
51
+ color: theme.palette.error.main,
52
+ paddingBottom: theme.spacing(1)
53
+ }));
54
+ function TraitTile({
55
+ error,
56
+ trait: {
57
+ name,
58
+ standards,
59
+ description,
60
+ scorePointsDescriptors
61
+ },
62
+ traitLabel,
63
+ scorePointsValues,
64
+ showStandards,
65
+ showDescription,
66
+ enableDragAndDrop,
67
+ currentPosition,
68
+ secondaryBlockWidth,
69
+ spellCheck,
70
+ maxPoints,
71
+ uploadSoundSupport,
72
+ mathMlOptions = {},
73
+ expandedPluginProps = {},
74
+ labelPluginProps = {},
75
+ imageSupport = {},
76
+ index,
77
+ onTraitChanged,
78
+ onTraitRemoved,
79
+ onTraitDropped
80
+ }) {
81
+ const [anchorEl, setAnchorEl] = _react.default.useState(null);
82
+ const secondaryBlockRef = _react.default.useRef(null);
83
+ const {
84
+ attributes,
85
+ listeners,
86
+ setNodeRef: setDragRef,
87
+ transform,
88
+ isDragging
89
+ } = (0, _core.useDraggable)({
90
+ id: `trait-${index}`,
91
+ data: {
92
+ type: 'trait',
93
+ index,
94
+ name
85
95
  }
86
- };
87
- };
88
-
89
- var TraitTile = /*#__PURE__*/function (_React$Component) {
90
- (0, _inherits2["default"])(TraitTile, _React$Component);
91
-
92
- var _super = _createSuper(TraitTile);
93
-
94
- function TraitTile() {
95
- var _this;
96
-
97
- (0, _classCallCheck2["default"])(this, TraitTile);
98
-
99
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
100
- args[_key] = arguments[_key];
96
+ });
97
+ const {
98
+ setNodeRef: setDropRef
99
+ } = (0, _core.useDroppable)({
100
+ id: `trait-drop-${index}`,
101
+ data: {
102
+ type: 'trait',
103
+ index
101
104
  }
102
-
103
- _this = _super.call.apply(_super, [this].concat(args));
104
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "state", {});
105
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onTraitChanged", function (params) {
106
- var _this$props = _this.props,
107
- trait = _this$props.trait,
108
- onTraitChanged = _this$props.onTraitChanged;
109
- if ((0, _isEmpty["default"])(params)) return;
110
- Object.keys(params).forEach(function (key) {
111
- trait[key] = params[key];
112
- });
113
- onTraitChanged(trait);
114
- });
115
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onScorePointDescriptorChange", function (_ref) {
116
- var descriptor = _ref.descriptor,
117
- value = _ref.value;
118
- var scorePointsDescriptors = _this.props.trait.scorePointsDescriptors;
119
- if (value < 0 || value >= scorePointsDescriptors.length) return;
120
- scorePointsDescriptors[value] = descriptor;
121
-
122
- _this.onTraitChanged({
123
- scorePointsDescriptors: scorePointsDescriptors
124
- });
125
- });
126
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleClick", function (event) {
127
- return _this.setState({
128
- anchorEl: event.currentTarget
129
- });
130
- });
131
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleClose", function () {
132
- return _this.setState({
133
- anchorEl: null
134
- });
135
- });
136
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "scrollToPosition", function (position) {
137
- return _this.secondaryBlock.scrollTo({
138
- left: position
139
- });
140
- });
141
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "openMenu", function () {
142
- _this.props.onTraitRemoved();
143
-
144
- _this.handleClose();
105
+ });
106
+ _react.default.useEffect(() => {
107
+ if (currentPosition !== undefined && secondaryBlockRef.current && secondaryBlockRef.current.scrollLeft !== currentPosition) {
108
+ scrollToPosition(currentPosition);
109
+ }
110
+ }, [currentPosition]);
111
+ const onTraitChangedHandler = params => {
112
+ if ((0, _isEmpty.default)(params)) return;
113
+ const updatedTrait = {
114
+ ...{
115
+ name,
116
+ standards,
117
+ description,
118
+ scorePointsDescriptors
119
+ },
120
+ ...params
121
+ };
122
+ onTraitChanged(updatedTrait);
123
+ };
124
+ const onScorePointDescriptorChange = ({
125
+ descriptor,
126
+ value
127
+ }) => {
128
+ if (value < 0 || value >= scorePointsDescriptors.length) return;
129
+ const newDescriptors = [...scorePointsDescriptors];
130
+ newDescriptors[value] = descriptor;
131
+ onTraitChangedHandler({
132
+ scorePointsDescriptors: newDescriptors
145
133
  });
146
- return _this;
147
- }
148
-
149
- (0, _createClass2["default"])(TraitTile, [{
150
- key: "UNSAFE_componentWillReceiveProps",
151
- value: function UNSAFE_componentWillReceiveProps(nextProps) {
152
- if (nextProps.currentPosition !== this.props.currentPosition || this.secondaryBlock && this.secondaryBlock.scrollLeft !== nextProps.currentPosition) {
153
- this.scrollToPosition(nextProps.currentPosition);
154
- }
134
+ };
135
+ const handleClick = event => setAnchorEl(event.currentTarget);
136
+ const handleClose = () => setAnchorEl(null);
137
+ const scrollToPosition = position => secondaryBlockRef.current?.scrollTo({
138
+ left: position
139
+ });
140
+ const openMenu = () => {
141
+ onTraitRemoved();
142
+ handleClose();
143
+ };
144
+ const dragStyle = transform ? {
145
+ transform: `translate3d(${transform.x}px, ${transform.y}px, 0)`,
146
+ opacity: isDragging ? 0.5 : 1
147
+ } : {};
148
+ return /*#__PURE__*/_react.default.createElement("div", {
149
+ ref: setDropRef,
150
+ style: dragStyle
151
+ }, /*#__PURE__*/_react.default.createElement(_common.Row, null, /*#__PURE__*/_react.default.createElement(StyledPrimaryBlock, null, /*#__PURE__*/_react.default.createElement(Controls, null, enableDragAndDrop && /*#__PURE__*/_react.default.createElement("span", (0, _extends2.default)({
152
+ ref: setDragRef
153
+ }, attributes, listeners), /*#__PURE__*/_react.default.createElement(ActionsIcon, null)), /*#__PURE__*/_react.default.createElement(Options, {
154
+ "aria-label": "more",
155
+ "aria-controls": "long-menu",
156
+ "aria-haspopup": "true",
157
+ onClick: handleClick,
158
+ size: "large"
159
+ }, /*#__PURE__*/_react.default.createElement(_MoreVert.default, null)), /*#__PURE__*/_react.default.createElement(_Menu.default, {
160
+ id: "long-menu",
161
+ anchorEl: anchorEl,
162
+ keepMounted: true,
163
+ open: !!anchorEl,
164
+ onClose: handleClose,
165
+ transitionDuration: {
166
+ enter: 225,
167
+ exit: 195
155
168
  }
156
- }, {
157
- key: "render",
158
- value: function render() {
159
- var _this2 = this;
160
-
161
- var _this$props2 = this.props,
162
- classes = _this$props2.classes,
163
- connectDragSource = _this$props2.connectDragSource,
164
- connectDropTarget = _this$props2.connectDropTarget,
165
- connectDragPreview = _this$props2.connectDragPreview,
166
- error = _this$props2.error,
167
- _this$props2$trait = _this$props2.trait,
168
- name = _this$props2$trait.name,
169
- standards = _this$props2$trait.standards,
170
- description = _this$props2$trait.description,
171
- scorePointsDescriptors = _this$props2$trait.scorePointsDescriptors,
172
- traitLabel = _this$props2.traitLabel,
173
- scorePointsValues = _this$props2.scorePointsValues,
174
- showStandards = _this$props2.showStandards,
175
- showDescription = _this$props2.showDescription,
176
- enableDragAndDrop = _this$props2.enableDragAndDrop,
177
- currentPosition = _this$props2.currentPosition,
178
- secondaryBlockWidth = _this$props2.secondaryBlockWidth,
179
- spellCheck = _this$props2.spellCheck,
180
- maxPoints = _this$props2.maxPoints,
181
- uploadSoundSupport = _this$props2.uploadSoundSupport,
182
- _this$props2$mathMlOp = _this$props2.mathMlOptions,
183
- mathMlOptions = _this$props2$mathMlOp === void 0 ? {} : _this$props2$mathMlOp,
184
- _this$props2$expanded = _this$props2.expandedPluginProps,
185
- expandedPluginProps = _this$props2$expanded === void 0 ? {} : _this$props2$expanded,
186
- _this$props2$labelPlu = _this$props2.labelPluginProps,
187
- labelPluginProps = _this$props2$labelPlu === void 0 ? {} : _this$props2$labelPlu,
188
- _this$props2$imageSup = _this$props2.imageSupport,
189
- imageSupport = _this$props2$imageSup === void 0 ? {} : _this$props2$imageSup;
190
- var anchorEl = this.state.anchorEl;
191
- return connectDragPreview(connectDropTarget( /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(_common.Row, null, /*#__PURE__*/_react["default"].createElement(_common.PrimaryBlock, {
192
- className: classes.primaryBlock
193
- }, /*#__PURE__*/_react["default"].createElement("div", {
194
- className: classes.controls
195
- }, enableDragAndDrop ? connectDragSource( /*#__PURE__*/_react["default"].createElement("span", {
196
- className: classes.dragHandle
197
- }, /*#__PURE__*/_react["default"].createElement(_DragIndicator["default"], {
198
- className: classes.actions
199
- }))) : null, /*#__PURE__*/_react["default"].createElement(_IconButton["default"], {
200
- className: classes.options,
201
- "aria-label": "more",
202
- "aria-controls": "long-menu",
203
- "aria-haspopup": "true",
204
- onClick: this.handleClick
205
- }, /*#__PURE__*/_react["default"].createElement(_MoreVert["default"], null)), /*#__PURE__*/_react["default"].createElement(_Menu["default"], {
206
- id: "long-menu",
207
- anchorEl: anchorEl,
208
- keepMounted: true,
209
- open: !!anchorEl,
210
- onClose: this.handleClose
211
- }, /*#__PURE__*/_react["default"].createElement(_MenuItem["default"], {
212
- onClick: this.openMenu
213
- }, /*#__PURE__*/_react["default"].createElement("div", {
214
- className: classes.removeLabel,
215
- dangerouslySetInnerHTML: {
216
- __html: "Remove ".concat(name || traitLabel)
217
- }
218
- })))), /*#__PURE__*/_react["default"].createElement(_common.UnderlinedInput, {
219
- markup: name,
220
- error: (error === null || error === void 0 ? void 0 : error.name) || '',
221
- onChange: function onChange(name) {
222
- return _this2.onTraitChanged({
223
- name: name
224
- });
225
- },
226
- pluginProps: labelPluginProps,
227
- placeholder: "Enter ".concat(traitLabel),
228
- spellCheck: spellCheck,
229
- uploadSoundSupport: uploadSoundSupport,
230
- mathMlOptions: mathMlOptions,
231
- imageSupport: imageSupport
232
- }), error && /*#__PURE__*/_react["default"].createElement("div", {
233
- className: classes.errorText
234
- }, error.name || '')), /*#__PURE__*/_react["default"].createElement(_common.SecondaryBlock, {
235
- setRef: function setRef(ref) {
236
- _this2.secondaryBlock = ref;
237
- },
238
- width: "".concat(secondaryBlockWidth, "px")
239
- }, showStandards && standards && /*#__PURE__*/_react["default"].createElement(_common.Block, null, /*#__PURE__*/_react["default"].createElement(_common.ExpandedInput, {
240
- placeholder: "Standards",
241
- markup: standards.join(','),
242
- onChange: function onChange(standards) {
243
- return _this2.onTraitChanged({
244
- standards: standards.split(',')
245
- });
246
- },
247
- pluginProps: expandedPluginProps,
248
- spellCheck: spellCheck,
249
- uploadSoundSupport: uploadSoundSupport,
250
- mathMlOptions: mathMlOptions,
251
- imageSupport: imageSupport
252
- })), showDescription && /*#__PURE__*/_react["default"].createElement(_common.Block, null, /*#__PURE__*/_react["default"].createElement(_common.ExpandedInput, {
253
- placeholder: "Enter Description",
254
- markup: description,
255
- error: (error === null || error === void 0 ? void 0 : error.description) || '',
256
- onChange: function onChange(description) {
257
- return _this2.onTraitChanged({
258
- description: description
259
- });
260
- },
261
- pluginProps: expandedPluginProps,
262
- spellCheck: spellCheck,
263
- uploadSoundSupport: uploadSoundSupport,
264
- mathMlOptions: mathMlOptions,
265
- imageSupport: imageSupport
266
- }), error && /*#__PURE__*/_react["default"].createElement("div", {
267
- className: classes.errorText
268
- }, error.description || '')), (scorePointsValues || []).map(function (scorePointsValue, index) {
269
- var adjustedBlockWidth = _common.BlockWidth + 2 * 8; // 8 is padding
270
-
271
- var remainingSpace = secondaryBlockWidth - adjustedBlockWidth * index + currentPosition - 98;
272
- var value = scorePointsValues.length - index - 1;
273
- var scoreDescriptor;
274
-
275
- try {
276
- scoreDescriptor = scorePointsDescriptors[value] || '';
277
- } catch (e) {
278
- scoreDescriptor = '';
279
- }
280
-
281
- return /*#__PURE__*/_react["default"].createElement(_common.Block, {
282
- key: "key-key-".concat(index)
283
- }, /*#__PURE__*/_react["default"].createElement(_common.ExpandedInput, {
284
- placeholder: "Enter Descriptor",
285
- markup: scoreDescriptor,
286
- onChange: function onChange(descriptor) {
287
- return _this2.onScorePointDescriptorChange({
288
- descriptor: descriptor,
289
- value: value
290
- });
291
- },
292
- pluginProps: expandedPluginProps,
293
- alignToRight: remainingSpace < 296 && scorePointsValue < maxPoints // 296 is the space required for the toolbar
294
- ,
295
- spellCheck: spellCheck,
296
- uploadSoundSupport: uploadSoundSupport,
297
- mathMlOptions: mathMlOptions,
298
- imageSupport: imageSupport
299
- }));
300
- }))))));
169
+ }, /*#__PURE__*/_react.default.createElement(_MenuItem.default, {
170
+ onClick: openMenu
171
+ }, /*#__PURE__*/_react.default.createElement(RemoveLabel, {
172
+ dangerouslySetInnerHTML: {
173
+ __html: `Remove ${name || traitLabel}`
301
174
  }
302
- }]);
303
- return TraitTile;
304
- }(_react["default"].Component);
305
-
306
- exports.TraitTile = TraitTile;
307
- (0, _defineProperty2["default"])(TraitTile, "propTypes", {
308
- spellCheck: _propTypes["default"].bool,
309
- uploadSoundSupport: _propTypes["default"].object
310
- });
175
+ })))), /*#__PURE__*/_react.default.createElement(_common.UnderlinedInput, {
176
+ markup: name,
177
+ error: error?.name || '',
178
+ onChange: name => onTraitChangedHandler({
179
+ name
180
+ }),
181
+ pluginProps: labelPluginProps,
182
+ placeholder: `Enter ${traitLabel}`,
183
+ spellCheck: spellCheck,
184
+ uploadSoundSupport: uploadSoundSupport,
185
+ mathMlOptions: mathMlOptions,
186
+ imageSupport: imageSupport
187
+ }), error && /*#__PURE__*/_react.default.createElement(ErrorText, null, error.name || '')), /*#__PURE__*/_react.default.createElement(_common.SecondaryBlock, {
188
+ setRef: ref => {
189
+ secondaryBlockRef.current = ref;
190
+ },
191
+ width: `${secondaryBlockWidth}px`
192
+ }, showStandards && standards && /*#__PURE__*/_react.default.createElement(_common.Block, null, /*#__PURE__*/_react.default.createElement(_common.ExpandedInput, {
193
+ placeholder: "Standards",
194
+ markup: standards.join(','),
195
+ onChange: standards => onTraitChangedHandler({
196
+ standards: standards.split(',')
197
+ }),
198
+ pluginProps: expandedPluginProps,
199
+ spellCheck: spellCheck,
200
+ uploadSoundSupport: uploadSoundSupport,
201
+ mathMlOptions: mathMlOptions,
202
+ imageSupport: imageSupport
203
+ })), showDescription && /*#__PURE__*/_react.default.createElement(_common.Block, null, /*#__PURE__*/_react.default.createElement(_common.ExpandedInput, {
204
+ placeholder: "Enter Description",
205
+ markup: description,
206
+ error: error?.description || '',
207
+ onChange: description => onTraitChangedHandler({
208
+ description
209
+ }),
210
+ pluginProps: expandedPluginProps,
211
+ spellCheck: spellCheck,
212
+ uploadSoundSupport: uploadSoundSupport,
213
+ mathMlOptions: mathMlOptions,
214
+ imageSupport: imageSupport
215
+ }), error && /*#__PURE__*/_react.default.createElement(ErrorText, null, error.description || '')), (scorePointsValues || []).map((scorePointsValue, scoreIndex) => {
216
+ const adjustedBlockWidth = _common.BlockWidth + 2 * 8; // 8 is padding
217
+ const remainingSpace = secondaryBlockWidth - adjustedBlockWidth * scoreIndex + currentPosition - 98;
218
+ const value = scorePointsValues.length - scoreIndex - 1;
219
+ let scoreDescriptor;
220
+ try {
221
+ scoreDescriptor = scorePointsDescriptors[value] || '';
222
+ } catch (e) {
223
+ scoreDescriptor = '';
224
+ }
225
+ return /*#__PURE__*/_react.default.createElement(_common.Block, {
226
+ key: `key-key-${scoreIndex}`
227
+ }, /*#__PURE__*/_react.default.createElement(_common.ExpandedInput, {
228
+ placeholder: "Enter Descriptor",
229
+ markup: scoreDescriptor,
230
+ onChange: descriptor => onScorePointDescriptorChange({
231
+ descriptor,
232
+ value
233
+ }),
234
+ pluginProps: expandedPluginProps,
235
+ alignToRight: remainingSpace < 296 && scorePointsValue < maxPoints // 296 is the space required for the toolbar
236
+ ,
237
+ spellCheck: spellCheck,
238
+ uploadSoundSupport: uploadSoundSupport,
239
+ mathMlOptions: mathMlOptions,
240
+ imageSupport: imageSupport
241
+ }));
242
+ }))));
243
+ }
311
244
  TraitTile.propTypes = {
312
- connectDragSource: _propTypes["default"].func.isRequired,
313
- connectDropTarget: _propTypes["default"].func.isRequired,
314
- connectDragPreview: _propTypes["default"].func.isRequired,
315
- classes: _propTypes["default"].object.isRequired,
316
- error: _propTypes["default"].object,
317
- isDragging: _propTypes["default"].bool.isRequired,
318
- id: _propTypes["default"].any,
319
- isOver: _propTypes["default"].bool,
320
- index: _propTypes["default"].number,
321
- onTraitChanged: _propTypes["default"].func.isRequired,
322
- onTraitRemoved: _propTypes["default"].func.isRequired,
323
- trait: _propTypes["default"].shape({
324
- name: _propTypes["default"].string,
325
- standards: _propTypes["default"].arrayOf(_propTypes["default"].string),
326
- scorePointsDescriptors: _propTypes["default"].arrayOf(_propTypes["default"].string),
327
- description: _propTypes["default"].string
245
+ error: _propTypes.default.object,
246
+ index: _propTypes.default.number.isRequired,
247
+ onTraitChanged: _propTypes.default.func.isRequired,
248
+ onTraitRemoved: _propTypes.default.func.isRequired,
249
+ onTraitDropped: _propTypes.default.func,
250
+ trait: _propTypes.default.shape({
251
+ name: _propTypes.default.string,
252
+ standards: _propTypes.default.arrayOf(_propTypes.default.string),
253
+ scorePointsDescriptors: _propTypes.default.arrayOf(_propTypes.default.string),
254
+ description: _propTypes.default.string
328
255
  }),
329
- traitLabel: _propTypes["default"].string,
330
- scorePointsValues: _propTypes["default"].arrayOf(_propTypes["default"].number),
331
- showStandards: _propTypes["default"].bool,
332
- showDescription: _propTypes["default"].bool,
333
- maxPoints: _propTypes["default"].number,
334
- enableDragAndDrop: _propTypes["default"].bool,
335
- currentPosition: _propTypes["default"].number,
336
- secondaryBlockWidth: _propTypes["default"].number,
337
- expandedPluginProps: _propTypes["default"].object,
338
- labelPluginProps: _propTypes["default"].object,
339
- imageSupport: _propTypes["default"].shape({
340
- add: _propTypes["default"].func.isRequired,
341
- "delete": _propTypes["default"].func.isRequired
256
+ traitLabel: _propTypes.default.string,
257
+ scorePointsValues: _propTypes.default.arrayOf(_propTypes.default.number),
258
+ showStandards: _propTypes.default.bool,
259
+ showDescription: _propTypes.default.bool,
260
+ maxPoints: _propTypes.default.number,
261
+ enableDragAndDrop: _propTypes.default.bool,
262
+ currentPosition: _propTypes.default.number,
263
+ secondaryBlockWidth: _propTypes.default.number,
264
+ spellCheck: _propTypes.default.bool,
265
+ uploadSoundSupport: _propTypes.default.object,
266
+ mathMlOptions: _propTypes.default.object,
267
+ expandedPluginProps: _propTypes.default.object,
268
+ labelPluginProps: _propTypes.default.object,
269
+ imageSupport: _propTypes.default.shape({
270
+ add: _propTypes.default.func.isRequired,
271
+ delete: _propTypes.default.func.isRequired
342
272
  })
343
273
  };
344
- var StyledTrait = (0, _styles.withStyles)(styles)(TraitTile);
345
- exports.StyledTrait = StyledTrait;
346
- var NAME = 'trait-config';
347
- var traitSource = {
348
- beginDrag: function beginDrag(props) {
349
- return {
350
- name: props.trait.name,
351
- index: props.index
352
- };
353
- }
354
- };
355
- var StyledSource = (0, _reactDnd.DragSource)(NAME, traitSource, function (connect, monitor) {
356
- return {
357
- connectDragSource: connect.dragSource(),
358
- connectDragPreview: connect.dragPreview(),
359
- isDragging: monitor.isDragging()
360
- };
361
- })(StyledTrait);
362
- var traitTarget = {
363
- hover: function hover() {
364
- log('[hover]');
365
- },
366
- drop: function drop(props, monitor) {
367
- var item = monitor.getItem();
368
- log('[drop] item: ', item, 'didDrop?', monitor.didDrop());
369
- props.onTraitDropped(item, props.index);
370
- }
371
- };
372
- var StyledSourceAndTarget = (0, _reactDnd.DropTarget)(NAME, traitTarget, function (connect, monitor) {
373
- return {
374
- connectDropTarget: connect.dropTarget(),
375
- isOver: monitor.isOver()
376
- };
377
- })(StyledSource);
378
- var _default = StyledSourceAndTarget;
379
- exports["default"] = _default;
274
+ var _default = exports.default = TraitTile;
380
275
  //# sourceMappingURL=trait.js.map