@pie-element/complex-rubric 2.0.2-next.13 → 2.0.2-next.15

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 (96) hide show
  1. package/configure/node_modules/@pie-element/multi-trait-rubric/CHANGELOG.json +1 -0
  2. package/configure/node_modules/@pie-element/multi-trait-rubric/CHANGELOG.md +978 -0
  3. package/configure/node_modules/@pie-element/multi-trait-rubric/LICENSE.md +5 -0
  4. package/configure/node_modules/@pie-element/multi-trait-rubric/README.md +55 -0
  5. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/CHANGELOG.json +1 -0
  6. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/CHANGELOG.md +869 -0
  7. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/common.js +502 -0
  8. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/common.js.map +1 -0
  9. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/defaults.js +98 -0
  10. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/defaults.js.map +1 -0
  11. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/index.js +126 -0
  12. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/index.js.map +1 -0
  13. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/main.js +553 -0
  14. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/main.js.map +1 -0
  15. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/modals.js +361 -0
  16. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/modals.js.map +1 -0
  17. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/scale.js +552 -0
  18. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/scale.js.map +1 -0
  19. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/trait.js +371 -0
  20. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/trait.js.map +1 -0
  21. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/traitsHeader.js +270 -0
  22. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/traitsHeader.js.map +1 -0
  23. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/utils.js +29 -0
  24. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/utils.js.map +1 -0
  25. package/configure/node_modules/@pie-element/multi-trait-rubric/configure/package.json +18 -0
  26. package/configure/node_modules/@pie-element/multi-trait-rubric/controller/CHANGELOG.json +1 -0
  27. package/configure/node_modules/@pie-element/multi-trait-rubric/controller/CHANGELOG.md +210 -0
  28. package/configure/node_modules/@pie-element/multi-trait-rubric/controller/lib/defaults.js +94 -0
  29. package/configure/node_modules/@pie-element/multi-trait-rubric/controller/lib/defaults.js.map +1 -0
  30. package/configure/node_modules/@pie-element/multi-trait-rubric/controller/lib/index.js +161 -0
  31. package/configure/node_modules/@pie-element/multi-trait-rubric/controller/lib/index.js.map +1 -0
  32. package/configure/node_modules/@pie-element/multi-trait-rubric/controller/lib/utils.js +13 -0
  33. package/configure/node_modules/@pie-element/multi-trait-rubric/controller/lib/utils.js.map +1 -0
  34. package/configure/node_modules/@pie-element/multi-trait-rubric/controller/package.json +15 -0
  35. package/configure/node_modules/@pie-element/multi-trait-rubric/docs/config-schema.json +272 -0
  36. package/configure/node_modules/@pie-element/multi-trait-rubric/docs/config-schema.json.md +206 -0
  37. package/configure/node_modules/@pie-element/multi-trait-rubric/docs/demo/config.js +8 -0
  38. package/configure/node_modules/@pie-element/multi-trait-rubric/docs/demo/generate.js +180 -0
  39. package/configure/node_modules/@pie-element/multi-trait-rubric/docs/demo/index.html +1 -0
  40. package/configure/node_modules/@pie-element/multi-trait-rubric/docs/demo/session.js +6 -0
  41. package/configure/node_modules/@pie-element/multi-trait-rubric/docs/pie-schema.json +298 -0
  42. package/configure/node_modules/@pie-element/multi-trait-rubric/docs/pie-schema.json.md +201 -0
  43. package/configure/node_modules/@pie-element/multi-trait-rubric/lib/index.js +85 -0
  44. package/configure/node_modules/@pie-element/multi-trait-rubric/lib/index.js.map +1 -0
  45. package/configure/node_modules/@pie-element/multi-trait-rubric/lib/main.js +161 -0
  46. package/configure/node_modules/@pie-element/multi-trait-rubric/lib/main.js.map +1 -0
  47. package/configure/node_modules/@pie-element/multi-trait-rubric/lib/scale.js +330 -0
  48. package/configure/node_modules/@pie-element/multi-trait-rubric/lib/scale.js.map +1 -0
  49. package/configure/node_modules/@pie-element/multi-trait-rubric/lib/trait.js +103 -0
  50. package/configure/node_modules/@pie-element/multi-trait-rubric/lib/trait.js.map +1 -0
  51. package/configure/node_modules/@pie-element/multi-trait-rubric/package.json +24 -0
  52. package/configure/node_modules/@pie-element/rubric/CHANGELOG.json +257 -0
  53. package/configure/node_modules/@pie-element/rubric/CHANGELOG.md +1248 -0
  54. package/configure/node_modules/@pie-element/rubric/LICENSE.md +5 -0
  55. package/configure/node_modules/@pie-element/rubric/README.md +3 -0
  56. package/configure/node_modules/@pie-element/rubric/configure/CHANGELOG.json +197 -0
  57. package/configure/node_modules/@pie-element/rubric/configure/CHANGELOG.md +1088 -0
  58. package/configure/node_modules/@pie-element/rubric/configure/lib/defaults.js +34 -0
  59. package/configure/node_modules/@pie-element/rubric/configure/lib/defaults.js.map +1 -0
  60. package/configure/node_modules/@pie-element/rubric/configure/lib/index.js +130 -0
  61. package/configure/node_modules/@pie-element/rubric/configure/lib/index.js.map +1 -0
  62. package/configure/node_modules/@pie-element/rubric/configure/lib/main.js +108 -0
  63. package/configure/node_modules/@pie-element/rubric/configure/lib/main.js.map +1 -0
  64. package/configure/node_modules/@pie-element/rubric/configure/package.json +17 -0
  65. package/configure/node_modules/@pie-element/rubric/configure/src/defaults.js +26 -0
  66. package/configure/node_modules/@pie-element/rubric/configure/src/index.js +64 -0
  67. package/configure/node_modules/@pie-element/rubric/configure/src/main.jsx +56 -0
  68. package/configure/node_modules/@pie-element/rubric/controller/CHANGELOG.json +17 -0
  69. package/configure/node_modules/@pie-element/rubric/controller/CHANGELOG.md +192 -0
  70. package/configure/node_modules/@pie-element/rubric/controller/lib/index.js +14 -0
  71. package/configure/node_modules/@pie-element/rubric/controller/lib/index.js.map +1 -0
  72. package/configure/node_modules/@pie-element/rubric/controller/package.json +13 -0
  73. package/configure/node_modules/@pie-element/rubric/controller/src/__tests__/index.test.js +31 -0
  74. package/configure/node_modules/@pie-element/rubric/controller/src/index.js +6 -0
  75. package/configure/node_modules/@pie-element/rubric/docs/config-schema.json +160 -0
  76. package/configure/node_modules/@pie-element/rubric/docs/config-schema.json.md +127 -0
  77. package/configure/node_modules/@pie-element/rubric/docs/demo/config.js +8 -0
  78. package/configure/node_modules/@pie-element/rubric/docs/demo/generate.js +8 -0
  79. package/configure/node_modules/@pie-element/rubric/docs/demo/index.html +2 -0
  80. package/configure/node_modules/@pie-element/rubric/docs/pie-schema.json +96 -0
  81. package/configure/node_modules/@pie-element/rubric/docs/pie-schema.json.md +65 -0
  82. package/configure/node_modules/@pie-element/rubric/lib/index.js +88 -0
  83. package/configure/node_modules/@pie-element/rubric/lib/index.js.map +1 -0
  84. package/configure/node_modules/@pie-element/rubric/lib/main.js +188 -0
  85. package/configure/node_modules/@pie-element/rubric/lib/main.js.map +1 -0
  86. package/configure/node_modules/@pie-element/rubric/lib/print.js +114 -0
  87. package/configure/node_modules/@pie-element/rubric/lib/print.js.map +1 -0
  88. package/configure/node_modules/@pie-element/rubric/package.json +26 -0
  89. package/configure/node_modules/@pie-element/rubric/src/__tests__/__snapshots__/rubric-view.test.jsx.snap +23003 -0
  90. package/configure/node_modules/@pie-element/rubric/src/__tests__/rubric-view.test.jsx +46 -0
  91. package/configure/node_modules/@pie-element/rubric/src/index.js +34 -0
  92. package/configure/node_modules/@pie-element/rubric/src/main.jsx +136 -0
  93. package/configure/node_modules/@pie-element/rubric/src/print.js +63 -0
  94. package/configure/package.json +2 -2
  95. package/controller/package.json +1 -1
  96. package/package.json +4 -4
@@ -0,0 +1,552 @@
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.Scale = void 0;
9
+
10
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
11
+
12
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
+
14
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
+
16
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
17
+
18
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
19
+
20
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
21
+
22
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
23
+
24
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
25
+
26
+ var _react = _interopRequireDefault(require("react"));
27
+
28
+ var _propTypes = _interopRequireDefault(require("prop-types"));
29
+
30
+ var _styles = require("@material-ui/core/styles");
31
+
32
+ var _ArrowBackIos = _interopRequireDefault(require("@material-ui/icons/ArrowBackIos"));
33
+
34
+ var _ArrowForwardIos = _interopRequireDefault(require("@material-ui/icons/ArrowForwardIos"));
35
+
36
+ var _drag = require("@pie-lib/pie-toolbox/drag");
37
+
38
+ var _renderUi = require("@pie-lib/pie-toolbox/render-ui");
39
+
40
+ var _traitsHeader = _interopRequireDefault(require("./traitsHeader"));
41
+
42
+ var _trait = _interopRequireDefault(require("./trait"));
43
+
44
+ var _common = require("./common");
45
+
46
+ var _modals = require("./modals");
47
+
48
+ 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); }; }
49
+
50
+ 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; } }
51
+
52
+ var AdjustedBlockWidth = _common.BlockWidth + 2 * 8; // 8 is padding
53
+
54
+ var styles = function styles(theme) {
55
+ return {
56
+ scaleWrapper: {
57
+ display: 'flex',
58
+ flexDirection: 'column',
59
+ wordBreak: 'break-word',
60
+ position: 'relative',
61
+ marginBottom: theme.spacing.unit * 2.5
62
+ },
63
+ maxPoints: {
64
+ width: '300px',
65
+ marginTop: theme.spacing.unit * 2,
66
+ marginBottom: theme.spacing.unit * 4
67
+ },
68
+ trait: {
69
+ background: _renderUi.color.secondaryBackground(),
70
+ marginTop: theme.spacing.unit * 2,
71
+ marginBottom: theme.spacing.unit * 2,
72
+ padding: theme.spacing.unit * 2
73
+ }
74
+ };
75
+ };
76
+
77
+ var Scale = /*#__PURE__*/function (_React$Component) {
78
+ (0, _inherits2["default"])(Scale, _React$Component);
79
+
80
+ var _super = _createSuper(Scale);
81
+
82
+ function Scale() {
83
+ var _this;
84
+
85
+ (0, _classCallCheck2["default"])(this, Scale);
86
+
87
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
88
+ args[_key] = arguments[_key];
89
+ }
90
+
91
+ _this = _super.call.apply(_super, [this].concat(args));
92
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "state", {
93
+ showDecreaseMaxPointsDialog: false,
94
+ showDeleteScaleDialog: false,
95
+ showDeleteTraitDialog: false,
96
+ currentPosition: 0,
97
+ showRight: null,
98
+ showLeft: null,
99
+ showInfoDialog: false,
100
+ infoDialogText: ''
101
+ });
102
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "set", function (newState) {
103
+ return _this.setState(newState);
104
+ });
105
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "updateMaxPointsFieldValue", function (_ref) {
106
+ var target = _ref.target;
107
+
108
+ var _ref2 = _this.props || {},
109
+ scale = _ref2.scale,
110
+ scaleIndex = _ref2.scaleIndex,
111
+ onScaleChanged = _ref2.onScaleChanged;
112
+
113
+ var maxPoints = scale.maxPoints,
114
+ scorePointsLabels = scale.scorePointsLabels,
115
+ traits = scale.traits;
116
+ var numberValue = parseInt(target.value, 10);
117
+
118
+ _this.setState({
119
+ currentPosition: 0,
120
+ showLeft: false,
121
+ showRight: _this.secondaryBlockRef && _this.secondaryBlockRef.scrollWidth - _this.secondaryBlockRef.offsetWidth
122
+ });
123
+
124
+ if (numberValue < maxPoints) {
125
+ _this.showDecreaseMaxPointsModal({
126
+ newMaxPoints: numberValue
127
+ });
128
+ } else {
129
+ var _loop = function _loop(i) {
130
+ if (!scorePointsLabels[i]) {
131
+ scorePointsLabels.push('');
132
+ }
133
+
134
+ traits.forEach(function (trait, index) {
135
+ if (!traits[index].scorePointsDescriptors[i]) {
136
+ traits[index].scorePointsDescriptors.push('');
137
+ }
138
+ });
139
+ };
140
+
141
+ for (var i = 0; i <= numberValue; i++) {
142
+ _loop(i);
143
+ }
144
+
145
+ onScaleChanged(scaleIndex, {
146
+ maxPoints: numberValue,
147
+ scorePointsLabels: scorePointsLabels,
148
+ traits: traits
149
+ });
150
+ }
151
+ });
152
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "showDecreaseMaxPointsModal", function (_ref3) {
153
+ var newMaxPoints = _ref3.newMaxPoints;
154
+ return _this.set({
155
+ showDecreaseMaxPointsDialog: true,
156
+ newMaxPoints: newMaxPoints
157
+ });
158
+ });
159
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "hideDecreaseMaxPointsModal", function () {
160
+ return _this.set({
161
+ showDecreaseMaxPointsDialog: false,
162
+ newMaxPoints: undefined
163
+ });
164
+ });
165
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeMaxPoints", function () {
166
+ var _ref4 = _this.state || {},
167
+ newMaxPoints = _ref4.newMaxPoints;
168
+
169
+ var _ref5 = _this.props || {},
170
+ scaleIndex = _ref5.scaleIndex,
171
+ onScaleChanged = _ref5.onScaleChanged;
172
+
173
+ if (newMaxPoints) {
174
+ onScaleChanged(scaleIndex, {
175
+ maxPoints: newMaxPoints
176
+ });
177
+ }
178
+
179
+ _this.hideDecreaseMaxPointsModal();
180
+ });
181
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "showDeleteScaleModal", function () {
182
+ return _this.set({
183
+ showDeleteScaleDialog: true
184
+ });
185
+ });
186
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "hideDeleteScaleModal", function () {
187
+ return _this.set({
188
+ showDeleteScaleDialog: false
189
+ });
190
+ });
191
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "deleteScale", function () {
192
+ var _ref6 = _this.props || {},
193
+ scaleIndex = _ref6.scaleIndex,
194
+ onScaleRemoved = _ref6.onScaleRemoved;
195
+
196
+ _this.hideDeleteScaleModal();
197
+
198
+ onScaleRemoved(scaleIndex);
199
+ });
200
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "showDeleteTraitModal", function (traitToDeleteIndex) {
201
+ return _this.set({
202
+ showDeleteTraitDialog: true,
203
+ traitToDeleteIndex: traitToDeleteIndex
204
+ });
205
+ });
206
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "hideDeleteTraitModal", function () {
207
+ return _this.set({
208
+ showDeleteTraitDialog: false,
209
+ traitToDeleteIndex: undefined
210
+ });
211
+ });
212
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onTraitRemoved", function () {
213
+ var traitToDeleteIndex = _this.state.traitToDeleteIndex;
214
+
215
+ var _ref7 = _this.props || {},
216
+ scale = _ref7.scale,
217
+ scaleIndex = _ref7.scaleIndex,
218
+ onScaleChanged = _ref7.onScaleChanged,
219
+ minNoOfTraits = _ref7.minNoOfTraits;
220
+
221
+ var _ref8 = scale || {},
222
+ traits = _ref8.traits,
223
+ traitLabel = _ref8.traitLabel;
224
+
225
+ if (traitToDeleteIndex < 0 || traitToDeleteIndex >= traits.length) return;
226
+
227
+ if (traits.length === minNoOfTraits) {
228
+ _this.set({
229
+ infoDialogText: "There can't be less than ".concat(minNoOfTraits, " ").concat((traitLabel || 'trait').toLowerCase(), "s."),
230
+ showInfoDialog: true
231
+ });
232
+
233
+ return false;
234
+ }
235
+
236
+ traits = [].concat((0, _toConsumableArray2["default"])(traits.slice(0, traitToDeleteIndex)), (0, _toConsumableArray2["default"])(traits.slice(traitToDeleteIndex + 1)));
237
+ onScaleChanged(scaleIndex, {
238
+ traits: traits
239
+ });
240
+
241
+ _this.hideDeleteTraitModal();
242
+ });
243
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onTraitAdded", function () {
244
+ var _ref9 = _this.props || {},
245
+ scale = _ref9.scale,
246
+ scaleIndex = _ref9.scaleIndex,
247
+ onScaleChanged = _ref9.onScaleChanged,
248
+ maxNoOfTraits = _ref9.maxNoOfTraits;
249
+
250
+ var _ref10 = scale || {},
251
+ traits = _ref10.traits,
252
+ scorePointsLabels = _ref10.scorePointsLabels;
253
+
254
+ if (traits.length === maxNoOfTraits) {
255
+ _this.set({
256
+ infoDialogText: "There can't be more than ".concat(maxNoOfTraits, " scales."),
257
+ showInfoDialog: true
258
+ });
259
+
260
+ return false;
261
+ }
262
+
263
+ traits.push({
264
+ name: '',
265
+ description: '',
266
+ standards: [],
267
+ scorePointsDescriptors: Array.from({
268
+ length: scorePointsLabels.length
269
+ }, function () {
270
+ return '';
271
+ })
272
+ });
273
+ onScaleChanged(scaleIndex, {
274
+ traits: traits
275
+ });
276
+ });
277
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onTraitChanged", function (traitIndex, trait) {
278
+ var _ref11 = _this.props || {},
279
+ scale = _ref11.scale,
280
+ scaleIndex = _ref11.scaleIndex,
281
+ onScaleChanged = _ref11.onScaleChanged;
282
+
283
+ var _ref12 = scale || {},
284
+ traits = _ref12.traits;
285
+
286
+ if (traitIndex >= 0 && traitIndex < traits.length) {
287
+ traits[traitIndex] = trait;
288
+ onScaleChanged(scaleIndex, {
289
+ traits: traits
290
+ });
291
+ }
292
+ });
293
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onTraitDropped", function (source, newIndex) {
294
+ var _ref13 = _this.props || {},
295
+ scale = _ref13.scale,
296
+ scaleIndex = _ref13.scaleIndex,
297
+ onScaleChanged = _ref13.onScaleChanged;
298
+
299
+ var _ref14 = scale || {},
300
+ traits = _ref14.traits;
301
+
302
+ var oldIndex = source.index;
303
+ var cup = traits[oldIndex];
304
+ var remainingTraits = traits.filter(function (item, index) {
305
+ return index !== oldIndex;
306
+ });
307
+ var newTraits = [].concat((0, _toConsumableArray2["default"])(remainingTraits.slice(0, newIndex)), [cup], (0, _toConsumableArray2["default"])(remainingTraits.slice(newIndex)));
308
+ onScaleChanged(scaleIndex, {
309
+ traits: newTraits
310
+ });
311
+ });
312
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "decreasePosition", function () {
313
+ var currentPosition = _this.state.currentPosition;
314
+ var decreasedPosition = currentPosition - (currentPosition === AdjustedBlockWidth / 2 ? AdjustedBlockWidth / 2 : AdjustedBlockWidth);
315
+
316
+ _this.setState({
317
+ currentPosition: decreasedPosition,
318
+ showRight: decreasedPosition < _this.secondaryBlockRef.scrollWidth - _this.secondaryBlockRef.offsetWidth,
319
+ showLeft: decreasedPosition > 0
320
+ });
321
+ });
322
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "increasePosition", function () {
323
+ var currentPosition = _this.state.currentPosition;
324
+ var increasedPosition = currentPosition + (currentPosition === 0 ? AdjustedBlockWidth / 2 : AdjustedBlockWidth);
325
+
326
+ _this.setState({
327
+ currentPosition: increasedPosition,
328
+ showRight: increasedPosition < _this.secondaryBlockRef.scrollWidth - _this.secondaryBlockRef.offsetWidth,
329
+ showLeft: increasedPosition > 0
330
+ });
331
+ });
332
+ return _this;
333
+ }
334
+
335
+ (0, _createClass2["default"])(Scale, [{
336
+ key: "componentDidMount",
337
+ value: function componentDidMount() {
338
+ if (this.state.showRight === null && this.secondaryBlockRef) {
339
+ this.setState({
340
+ showRight: this.secondaryBlockRef.scrollWidth - this.secondaryBlockRef.offsetWidth
341
+ });
342
+ }
343
+ }
344
+ }, {
345
+ key: "componentDidUpdate",
346
+ value: function componentDidUpdate(prevProps) {
347
+ if (prevProps.scale.maxPoints !== this.props.scale.maxPoints || prevProps.showDescription !== this.props.showDescription || prevProps.excludeZero !== this.props.excludeZero) {
348
+ this.setState({
349
+ showRight: this.secondaryBlockRef.scrollWidth - this.secondaryBlockRef.offsetWidth
350
+ });
351
+ }
352
+ }
353
+ }, {
354
+ key: "UNSAFE_componentWillReceiveProps",
355
+ value: function UNSAFE_componentWillReceiveProps(nextProps) {
356
+ if (nextProps.excludeZero !== this.props.excludeZero || nextProps.showStandards !== this.props.showStandards || nextProps.showDescription !== this.props.showDescription) {
357
+ this.setState({
358
+ currentPosition: 0,
359
+ showLeft: false,
360
+ showRight: this.secondaryBlockRef && this.secondaryBlockRef.scrollWidth - this.secondaryBlockRef.offsetWidth
361
+ });
362
+ }
363
+ } // Max Points
364
+
365
+ }, {
366
+ key: "render",
367
+ value: function render() {
368
+ var _this2 = this;
369
+
370
+ var _ref15 = this.props || {},
371
+ classes = _ref15.classes,
372
+ errors = _ref15.errors,
373
+ scale = _ref15.scale,
374
+ scaleIndex = _ref15.scaleIndex,
375
+ showStandards = _ref15.showStandards,
376
+ onScaleChanged = _ref15.onScaleChanged,
377
+ excludeZero = _ref15.excludeZero,
378
+ showDescription = _ref15.showDescription,
379
+ showLevelTagInput = _ref15.showLevelTagInput,
380
+ showScorePointLabels = _ref15.showScorePointLabels,
381
+ enableDragAndDrop = _ref15.enableDragAndDrop,
382
+ spellCheck = _ref15.spellCheck,
383
+ width = _ref15.width,
384
+ uploadSoundSupport = _ref15.uploadSoundSupport,
385
+ maxPointsEnabled = _ref15.maxPointsEnabled,
386
+ _ref15$mathMlOptions = _ref15.mathMlOptions,
387
+ mathMlOptions = _ref15$mathMlOptions === void 0 ? {} : _ref15$mathMlOptions;
388
+
389
+ var _ref16 = scale || {},
390
+ maxPoints = _ref16.maxPoints,
391
+ scorePointsLabels = _ref16.scorePointsLabels,
392
+ traitLabel = _ref16.traitLabel,
393
+ traits = _ref16.traits;
394
+
395
+ var _this$state = this.state,
396
+ showDecreaseMaxPointsDialog = _this$state.showDecreaseMaxPointsDialog,
397
+ showDeleteScaleDialog = _this$state.showDeleteScaleDialog,
398
+ showDeleteTraitDialog = _this$state.showDeleteTraitDialog,
399
+ currentPosition = _this$state.currentPosition,
400
+ showRight = _this$state.showRight,
401
+ showLeft = _this$state.showLeft,
402
+ showInfoDialog = _this$state.showInfoDialog,
403
+ infoDialogText = _this$state.infoDialogText;
404
+ var scorePointsValues = [];
405
+ var secondaryBlockWidth = parseInt(width) - _common.DragHandleSpace - _common.PrimaryBlockWidth || 320; // 320 is minWidth
406
+ // determining the score points values
407
+
408
+ for (var pointValue = maxPoints; pointValue >= excludeZero ? 1 : 0; pointValue -= 1) {
409
+ scorePointsValues.push(pointValue);
410
+ }
411
+
412
+ return /*#__PURE__*/_react["default"].createElement("div", {
413
+ key: "scale-".concat(scaleIndex),
414
+ className: classes.scaleWrapper,
415
+ ref: function ref(_ref17) {
416
+ _this2.scaleWrapper = _ref17;
417
+ }
418
+ }, /*#__PURE__*/_react["default"].createElement(_traitsHeader["default"], {
419
+ setSecondaryBlockRef: function setSecondaryBlockRef(ref) {
420
+ if (ref) {
421
+ _this2.secondaryBlockRef = ref;
422
+ }
423
+ },
424
+ key: 'header-key',
425
+ traitLabel: traitLabel,
426
+ scorePointsValues: scorePointsValues,
427
+ scorePointsLabels: scorePointsLabels,
428
+ onScaleChange: function onScaleChange(params) {
429
+ return onScaleChanged(scaleIndex, params);
430
+ },
431
+ onTraitLabelChange: function onTraitLabelChange(label) {
432
+ return onScaleChanged(scaleIndex, {
433
+ traitLabel: label
434
+ });
435
+ },
436
+ showStandards: showStandards,
437
+ showDescription: showDescription,
438
+ showLevelTagInput: showLevelTagInput,
439
+ showScorePointLabels: showScorePointLabels,
440
+ maxPoints: maxPoints,
441
+ updateMaxPointsFieldValue: this.updateMaxPointsFieldValue,
442
+ scaleIndex: scaleIndex,
443
+ showDeleteScaleModal: this.showDeleteScaleModal,
444
+ currentPosition: currentPosition,
445
+ secondaryBlockWidth: secondaryBlockWidth,
446
+ spellCheck: spellCheck,
447
+ uploadSoundSupport: uploadSoundSupport,
448
+ maxPointsEnabled: maxPointsEnabled,
449
+ mathMlOptions: mathMlOptions
450
+ }), traits.map(function (trait, index) {
451
+ return /*#__PURE__*/_react["default"].createElement(_trait["default"], {
452
+ key: index,
453
+ index: index,
454
+ error: errors && errors[index],
455
+ trait: trait,
456
+ traitLabel: traitLabel || 'Trait',
457
+ scorePointsValues: scorePointsValues,
458
+ scorePointsLabels: scorePointsLabels,
459
+ onTraitRemoved: function onTraitRemoved() {
460
+ return _this2.showDeleteTraitModal(index);
461
+ },
462
+ onTraitChanged: function onTraitChanged(trait) {
463
+ return _this2.onTraitChanged(index, trait);
464
+ },
465
+ onTraitDropped: _this2.onTraitDropped,
466
+ showStandards: showStandards,
467
+ showDescription: showDescription,
468
+ maxPoints: maxPoints,
469
+ currentPosition: currentPosition,
470
+ enableDragAndDrop: enableDragAndDrop,
471
+ secondaryBlockWidth: secondaryBlockWidth,
472
+ spellCheck: spellCheck,
473
+ uploadSoundSupport: uploadSoundSupport,
474
+ mathMlOptions: mathMlOptions
475
+ });
476
+ }), /*#__PURE__*/_react["default"].createElement(_common.Arrow, {
477
+ width: "".concat(AdjustedBlockWidth / 2, "px"),
478
+ show: showLeft,
479
+ onClick: this.decreasePosition,
480
+ left: "".concat(_common.PrimaryBlockWidth, "px"),
481
+ showLevelTagInput: showLevelTagInput
482
+ }, /*#__PURE__*/_react["default"].createElement(_ArrowBackIos["default"], null)), /*#__PURE__*/_react["default"].createElement(_common.Arrow, {
483
+ width: "".concat(AdjustedBlockWidth / 2, "px"),
484
+ show: showRight,
485
+ onClick: this.increasePosition,
486
+ showLevelTagInput: showLevelTagInput
487
+ }, /*#__PURE__*/_react["default"].createElement(_ArrowForwardIos["default"], null)), /*#__PURE__*/_react["default"].createElement(_common.MultiTraitButton, {
488
+ onClick: this.onTraitAdded
489
+ }, /*#__PURE__*/_react["default"].createElement("div", {
490
+ dangerouslySetInnerHTML: {
491
+ __html: "Add ".concat(traitLabel || ' Trait')
492
+ }
493
+ })), /*#__PURE__*/_react["default"].createElement(_modals.DecreaseMaxPoints, {
494
+ open: !!showDecreaseMaxPointsDialog,
495
+ deleteScorePoints: this.changeMaxPoints,
496
+ cancel: this.hideDecreaseMaxPointsModal
497
+ }), /*#__PURE__*/_react["default"].createElement(_modals.DeleteScale, {
498
+ open: !!showDeleteScaleDialog,
499
+ scaleIndex: scaleIndex,
500
+ deleteScale: this.deleteScale,
501
+ cancel: this.hideDeleteScaleModal
502
+ }), /*#__PURE__*/_react["default"].createElement(_modals.DeleteTrait, {
503
+ open: !!showDeleteTraitDialog,
504
+ deleteTrait: this.onTraitRemoved,
505
+ cancel: this.hideDeleteTraitModal,
506
+ traitLabel: traitLabel.toLowerCase()
507
+ }), /*#__PURE__*/_react["default"].createElement(_modals.InfoDialog, {
508
+ open: showInfoDialog,
509
+ text: infoDialogText,
510
+ onClose: function onClose() {
511
+ return _this2.set({
512
+ showInfoDialog: false
513
+ });
514
+ }
515
+ }));
516
+ }
517
+ }]);
518
+ return Scale;
519
+ }(_react["default"].Component);
520
+
521
+ exports.Scale = Scale;
522
+ Scale.propTypes = {
523
+ classes: _propTypes["default"].object,
524
+ errors: _propTypes["default"].object,
525
+ scale: _propTypes["default"].shape({
526
+ maxPoints: _propTypes["default"].number,
527
+ scorePointsLabels: _propTypes["default"].arrayOf(_propTypes["default"].string),
528
+ traitLabel: _propTypes["default"].string,
529
+ traits: _propTypes["default"].arrayOf(_propTypes["default"].shape({
530
+ name: _propTypes["default"].string,
531
+ standards: _propTypes["default"].arrayOf(_propTypes["default"].string),
532
+ scorePointsDescriptors: _propTypes["default"].arrayOf(_propTypes["default"].string),
533
+ description: _propTypes["default"].string
534
+ }))
535
+ }),
536
+ width: _propTypes["default"].string,
537
+ excludeZero: _propTypes["default"].bool,
538
+ scaleIndex: _propTypes["default"].number,
539
+ onScaleChanged: _propTypes["default"].func,
540
+ onScaleRemoved: _propTypes["default"].func,
541
+ showStandards: _propTypes["default"].bool,
542
+ showLevelTagInput: _propTypes["default"].bool,
543
+ showDescription: _propTypes["default"].bool,
544
+ uploadSoundSupport: _propTypes["default"].object,
545
+ showScorePointLabels: _propTypes["default"].bool,
546
+ enableDragAndDrop: _propTypes["default"].bool
547
+ };
548
+
549
+ var _default = (0, _drag.withDragContext)((0, _styles.withStyles)(styles)(Scale));
550
+
551
+ exports["default"] = _default;
552
+ //# sourceMappingURL=scale.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/scale.jsx"],"names":["AdjustedBlockWidth","BlockWidth","styles","theme","scaleWrapper","display","flexDirection","wordBreak","position","marginBottom","spacing","unit","maxPoints","width","marginTop","trait","background","color","secondaryBackground","padding","Scale","showDecreaseMaxPointsDialog","showDeleteScaleDialog","showDeleteTraitDialog","currentPosition","showRight","showLeft","showInfoDialog","infoDialogText","newState","setState","target","props","scale","scaleIndex","onScaleChanged","scorePointsLabels","traits","numberValue","parseInt","value","secondaryBlockRef","scrollWidth","offsetWidth","showDecreaseMaxPointsModal","newMaxPoints","i","push","forEach","index","scorePointsDescriptors","set","undefined","state","hideDecreaseMaxPointsModal","onScaleRemoved","hideDeleteScaleModal","traitToDeleteIndex","minNoOfTraits","traitLabel","length","toLowerCase","slice","hideDeleteTraitModal","maxNoOfTraits","name","description","standards","Array","from","traitIndex","source","newIndex","oldIndex","cup","remainingTraits","filter","item","newTraits","decreasedPosition","increasedPosition","prevProps","showDescription","excludeZero","nextProps","showStandards","classes","errors","showLevelTagInput","showScorePointLabels","enableDragAndDrop","spellCheck","uploadSoundSupport","maxPointsEnabled","mathMlOptions","scorePointsValues","secondaryBlockWidth","DragHandleSpace","PrimaryBlockWidth","pointValue","ref","params","label","updateMaxPointsFieldValue","showDeleteScaleModal","map","showDeleteTraitModal","onTraitChanged","onTraitDropped","decreasePosition","increasePosition","onTraitAdded","__html","changeMaxPoints","deleteScale","onTraitRemoved","React","Component","propTypes","PropTypes","object","shape","number","arrayOf","string","bool","func"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { withStyles } from '@material-ui/core/styles';\nimport ArrowBackIosIcon from '@material-ui/icons/ArrowBackIos';\nimport ArrowForwardIosIcon from '@material-ui/icons/ArrowForwardIos';\n\nimport { withDragContext } from '@pie-lib/pie-toolbox/drag';\nimport { color } from '@pie-lib/pie-toolbox/render-ui';\n\nimport TraitsHeader from './traitsHeader';\nimport TraitTile from './trait';\nimport { Arrow, BlockWidth, DragHandleSpace, MultiTraitButton, PrimaryBlockWidth } from './common';\nimport { DecreaseMaxPoints, DeleteScale, DeleteTrait, InfoDialog } from './modals';\n\nconst AdjustedBlockWidth = BlockWidth + 2 * 8; // 8 is padding\n\nconst styles = (theme) => ({\n scaleWrapper: {\n display: 'flex',\n flexDirection: 'column',\n wordBreak: 'break-word',\n position: 'relative',\n marginBottom: theme.spacing.unit * 2.5,\n },\n maxPoints: {\n width: '300px',\n marginTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 4,\n },\n trait: {\n background: color.secondaryBackground(),\n marginTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n padding: theme.spacing.unit * 2,\n },\n});\n\nexport class Scale extends React.Component {\n state = {\n showDecreaseMaxPointsDialog: false,\n showDeleteScaleDialog: false,\n showDeleteTraitDialog: false,\n currentPosition: 0,\n showRight: null,\n showLeft: null,\n showInfoDialog: false,\n infoDialogText: '',\n };\n\n set = (newState) => this.setState(newState);\n\n componentDidMount() {\n if (this.state.showRight === null && this.secondaryBlockRef) {\n this.setState({ showRight: this.secondaryBlockRef.scrollWidth - this.secondaryBlockRef.offsetWidth });\n }\n }\n\n componentDidUpdate(prevProps) {\n if (\n prevProps.scale.maxPoints !== this.props.scale.maxPoints ||\n prevProps.showDescription !== this.props.showDescription ||\n prevProps.excludeZero !== this.props.excludeZero\n ) {\n this.setState({ showRight: this.secondaryBlockRef.scrollWidth - this.secondaryBlockRef.offsetWidth });\n }\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n if (\n nextProps.excludeZero !== this.props.excludeZero ||\n nextProps.showStandards !== this.props.showStandards ||\n nextProps.showDescription !== this.props.showDescription\n ) {\n this.setState({\n currentPosition: 0,\n showLeft: false,\n showRight: this.secondaryBlockRef && this.secondaryBlockRef.scrollWidth - this.secondaryBlockRef.offsetWidth,\n });\n }\n }\n\n // Max Points\n updateMaxPointsFieldValue = ({ target }) => {\n const { scale, scaleIndex, onScaleChanged } = this.props || {};\n const { maxPoints, scorePointsLabels, traits } = scale;\n\n const numberValue = parseInt(target.value, 10);\n\n this.setState({\n currentPosition: 0,\n showLeft: false,\n showRight: this.secondaryBlockRef && this.secondaryBlockRef.scrollWidth - this.secondaryBlockRef.offsetWidth,\n });\n\n if (numberValue < maxPoints) {\n this.showDecreaseMaxPointsModal({ newMaxPoints: numberValue });\n } else {\n for (let i = 0; i <= numberValue; i++) {\n if (!scorePointsLabels[i]) {\n scorePointsLabels.push('');\n }\n\n traits.forEach((trait, index) => {\n if (!traits[index].scorePointsDescriptors[i]) {\n traits[index].scorePointsDescriptors.push('');\n }\n });\n }\n\n onScaleChanged(scaleIndex, { maxPoints: numberValue, scorePointsLabels, traits });\n }\n };\n\n showDecreaseMaxPointsModal = ({ newMaxPoints }) => this.set({ showDecreaseMaxPointsDialog: true, newMaxPoints });\n\n hideDecreaseMaxPointsModal = () => this.set({ showDecreaseMaxPointsDialog: false, newMaxPoints: undefined });\n\n changeMaxPoints = () => {\n const { newMaxPoints } = this.state || {};\n const { scaleIndex, onScaleChanged } = this.props || {};\n\n if (newMaxPoints) {\n onScaleChanged(scaleIndex, { maxPoints: newMaxPoints });\n }\n\n this.hideDecreaseMaxPointsModal();\n };\n\n // Delete Scale\n showDeleteScaleModal = () => this.set({ showDeleteScaleDialog: true });\n\n hideDeleteScaleModal = () => this.set({ showDeleteScaleDialog: false });\n\n deleteScale = () => {\n const { scaleIndex, onScaleRemoved } = this.props || {};\n\n this.hideDeleteScaleModal();\n\n onScaleRemoved(scaleIndex);\n };\n\n // Delete Trait\n showDeleteTraitModal = (traitToDeleteIndex) => this.set({ showDeleteTraitDialog: true, traitToDeleteIndex });\n\n hideDeleteTraitModal = () => this.set({ showDeleteTraitDialog: false, traitToDeleteIndex: undefined });\n\n onTraitRemoved = () => {\n const { traitToDeleteIndex } = this.state;\n const { scale, scaleIndex, onScaleChanged, minNoOfTraits } = this.props || {};\n let { traits, traitLabel } = scale || {};\n\n if (traitToDeleteIndex < 0 || traitToDeleteIndex >= traits.length) return;\n\n if (traits.length === minNoOfTraits) {\n this.set({\n infoDialogText: `There can't be less than ${minNoOfTraits} ${(traitLabel || 'trait').toLowerCase()}s.`,\n showInfoDialog: true,\n });\n\n return false;\n }\n\n traits = [...traits.slice(0, traitToDeleteIndex), ...traits.slice(traitToDeleteIndex + 1)];\n\n onScaleChanged(scaleIndex, { traits });\n\n this.hideDeleteTraitModal();\n };\n\n onTraitAdded = () => {\n const { scale, scaleIndex, onScaleChanged, maxNoOfTraits } = this.props || {};\n const { traits, scorePointsLabels } = scale || {};\n\n if (traits.length === maxNoOfTraits) {\n this.set({\n infoDialogText: `There can't be more than ${maxNoOfTraits} scales.`,\n showInfoDialog: true,\n });\n\n return false;\n }\n\n traits.push({\n name: '',\n description: '',\n standards: [],\n scorePointsDescriptors: Array.from({ length: scorePointsLabels.length }, () => ''),\n });\n\n onScaleChanged(scaleIndex, { traits });\n };\n\n onTraitChanged = (traitIndex, trait) => {\n const { scale, scaleIndex, onScaleChanged } = this.props || {};\n const { traits } = scale || {};\n\n if (traitIndex >= 0 && traitIndex < traits.length) {\n traits[traitIndex] = trait;\n\n onScaleChanged(scaleIndex, { traits });\n }\n };\n\n onTraitDropped = (source, newIndex) => {\n const { scale, scaleIndex, onScaleChanged } = this.props || {};\n const { traits } = scale || {};\n const { index: oldIndex } = source;\n const cup = traits[oldIndex];\n\n const remainingTraits = traits.filter((item, index) => index !== oldIndex);\n\n const newTraits = [...remainingTraits.slice(0, newIndex), cup, ...remainingTraits.slice(newIndex)];\n\n onScaleChanged(scaleIndex, { traits: newTraits });\n };\n\n decreasePosition = () => {\n const { currentPosition } = this.state;\n const decreasedPosition =\n currentPosition - (currentPosition === AdjustedBlockWidth / 2 ? AdjustedBlockWidth / 2 : AdjustedBlockWidth);\n\n this.setState({\n currentPosition: decreasedPosition,\n showRight: decreasedPosition < this.secondaryBlockRef.scrollWidth - this.secondaryBlockRef.offsetWidth,\n showLeft: decreasedPosition > 0,\n });\n };\n\n increasePosition = () => {\n const { currentPosition } = this.state;\n const increasedPosition = currentPosition + (currentPosition === 0 ? AdjustedBlockWidth / 2 : AdjustedBlockWidth);\n\n this.setState({\n currentPosition: increasedPosition,\n showRight: increasedPosition < this.secondaryBlockRef.scrollWidth - this.secondaryBlockRef.offsetWidth,\n showLeft: increasedPosition > 0,\n });\n };\n\n render() {\n const {\n classes,\n errors,\n scale,\n scaleIndex,\n showStandards,\n onScaleChanged,\n excludeZero,\n showDescription,\n showLevelTagInput,\n showScorePointLabels,\n enableDragAndDrop,\n spellCheck,\n width,\n uploadSoundSupport,\n maxPointsEnabled,\n mathMlOptions = {},\n } = this.props || {};\n\n const { maxPoints, scorePointsLabels, traitLabel, traits } = scale || {};\n\n const {\n showDecreaseMaxPointsDialog,\n showDeleteScaleDialog,\n showDeleteTraitDialog,\n currentPosition,\n showRight,\n showLeft,\n showInfoDialog,\n infoDialogText,\n } = this.state;\n\n const scorePointsValues = [];\n const secondaryBlockWidth = parseInt(width) - DragHandleSpace - PrimaryBlockWidth || 320; // 320 is minWidth\n\n // determining the score points values\n for (let pointValue = maxPoints; pointValue >= excludeZero ? 1 : 0; pointValue -= 1) {\n scorePointsValues.push(pointValue);\n }\n\n return (\n <div\n key={`scale-${scaleIndex}`}\n className={classes.scaleWrapper}\n ref={(ref) => {\n this.scaleWrapper = ref;\n }}\n >\n <TraitsHeader\n setSecondaryBlockRef={(ref) => {\n if (ref) {\n this.secondaryBlockRef = ref;\n }\n }}\n key={'header-key'}\n traitLabel={traitLabel}\n scorePointsValues={scorePointsValues}\n scorePointsLabels={scorePointsLabels}\n onScaleChange={(params) => onScaleChanged(scaleIndex, params)}\n onTraitLabelChange={(label) => onScaleChanged(scaleIndex, { traitLabel: label })}\n showStandards={showStandards}\n showDescription={showDescription}\n showLevelTagInput={showLevelTagInput}\n showScorePointLabels={showScorePointLabels}\n maxPoints={maxPoints}\n updateMaxPointsFieldValue={this.updateMaxPointsFieldValue}\n scaleIndex={scaleIndex}\n showDeleteScaleModal={this.showDeleteScaleModal}\n currentPosition={currentPosition}\n secondaryBlockWidth={secondaryBlockWidth}\n spellCheck={spellCheck}\n uploadSoundSupport={uploadSoundSupport}\n maxPointsEnabled={maxPointsEnabled}\n mathMlOptions={mathMlOptions}\n />\n\n {traits.map((trait, index) => (\n <TraitTile\n key={index}\n index={index}\n error={errors && errors[index]}\n trait={trait}\n traitLabel={traitLabel || 'Trait'}\n scorePointsValues={scorePointsValues}\n scorePointsLabels={scorePointsLabels}\n onTraitRemoved={() => this.showDeleteTraitModal(index)}\n onTraitChanged={(trait) => this.onTraitChanged(index, trait)}\n onTraitDropped={this.onTraitDropped}\n showStandards={showStandards}\n showDescription={showDescription}\n maxPoints={maxPoints}\n currentPosition={currentPosition}\n enableDragAndDrop={enableDragAndDrop}\n secondaryBlockWidth={secondaryBlockWidth}\n spellCheck={spellCheck}\n uploadSoundSupport={uploadSoundSupport}\n mathMlOptions={mathMlOptions}\n />\n ))}\n\n <Arrow\n width={`${AdjustedBlockWidth / 2}px`}\n show={showLeft}\n onClick={this.decreasePosition}\n left={`${PrimaryBlockWidth}px`}\n showLevelTagInput={showLevelTagInput}\n >\n <ArrowBackIosIcon />\n </Arrow>\n <Arrow\n width={`${AdjustedBlockWidth / 2}px`}\n show={showRight}\n onClick={this.increasePosition}\n showLevelTagInput={showLevelTagInput}\n >\n <ArrowForwardIosIcon />\n </Arrow>\n\n <MultiTraitButton onClick={this.onTraitAdded}>\n <div dangerouslySetInnerHTML={{ __html: `Add ${traitLabel || ' Trait'}` }} />\n </MultiTraitButton>\n\n <DecreaseMaxPoints\n open={!!showDecreaseMaxPointsDialog}\n deleteScorePoints={this.changeMaxPoints}\n cancel={this.hideDecreaseMaxPointsModal}\n />\n\n <DeleteScale\n open={!!showDeleteScaleDialog}\n scaleIndex={scaleIndex}\n deleteScale={this.deleteScale}\n cancel={this.hideDeleteScaleModal}\n />\n\n <DeleteTrait\n open={!!showDeleteTraitDialog}\n deleteTrait={this.onTraitRemoved}\n cancel={this.hideDeleteTraitModal}\n traitLabel={traitLabel.toLowerCase()}\n />\n <InfoDialog open={showInfoDialog} text={infoDialogText} onClose={() => this.set({ showInfoDialog: false })} />\n </div>\n );\n }\n}\n\nScale.propTypes = {\n classes: PropTypes.object,\n errors: PropTypes.object,\n scale: PropTypes.shape({\n maxPoints: PropTypes.number,\n scorePointsLabels: PropTypes.arrayOf(PropTypes.string),\n traitLabel: PropTypes.string,\n traits: PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string,\n standards: PropTypes.arrayOf(PropTypes.string),\n scorePointsDescriptors: PropTypes.arrayOf(PropTypes.string),\n description: PropTypes.string,\n }),\n ),\n }),\n width: PropTypes.string,\n excludeZero: PropTypes.bool,\n scaleIndex: PropTypes.number,\n onScaleChanged: PropTypes.func,\n onScaleRemoved: PropTypes.func,\n showStandards: PropTypes.bool,\n showLevelTagInput: PropTypes.bool,\n showDescription: PropTypes.bool,\n uploadSoundSupport: PropTypes.object,\n showScorePointLabels: PropTypes.bool,\n enableDragAndDrop: PropTypes.bool,\n};\n\nexport default withDragContext(withStyles(styles)(Scale));\n"],"file":"scale.js"}