@pie-lib/rubric 0.7.13-next.0 → 1.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.
package/CHANGELOG.md CHANGED
@@ -3,271 +3,6 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
- ## [0.7.12](https://github.com/pie-framework/pie-lib/compare/@pie-lib/rubric@0.7.10...@pie-lib/rubric@0.7.12) (2023-01-31)
7
-
8
- **Note:** Version bump only for package @pie-lib/rubric
9
-
10
-
11
-
12
-
13
-
14
- ## [0.7.10](https://github.com/pie-framework/pie-lib/compare/@pie-lib/rubric@0.7.9...@pie-lib/rubric@0.7.10) (2023-01-31)
15
-
16
- **Note:** Version bump only for package @pie-lib/rubric
17
-
18
-
19
-
20
-
21
-
22
- ## [0.7.9](https://github.com/pie-framework/pie-lib/compare/@pie-lib/rubric@0.7.8...@pie-lib/rubric@0.7.9) (2023-01-31)
23
-
24
- **Note:** Version bump only for package @pie-lib/rubric
25
-
26
-
27
-
28
-
29
-
30
- ## [0.7.8](https://github.com/pie-framework/pie-lib/compare/@pie-lib/rubric@0.7.7...@pie-lib/rubric@0.7.8) (2023-01-31)
31
-
32
- **Note:** Version bump only for package @pie-lib/rubric
33
-
34
-
35
-
36
-
37
-
38
- ## [0.7.7](https://github.com/pie-framework/pie-lib/compare/@pie-lib/rubric@0.7.5...@pie-lib/rubric@0.7.7) (2023-01-31)
39
-
40
- **Note:** Version bump only for package @pie-lib/rubric
41
-
42
-
43
-
44
-
45
-
46
- ## [0.7.5](https://github.com/pie-framework/pie-lib/compare/@pie-lib/rubric@0.7.3...@pie-lib/rubric@0.7.5) (2023-01-31)
47
-
48
- **Note:** Version bump only for package @pie-lib/rubric
49
-
50
-
51
-
52
-
53
-
54
- ## [0.7.3](https://github.com/pie-framework/pie-lib/compare/@pie-lib/rubric@0.7.1...@pie-lib/rubric@0.7.3) (2023-01-31)
55
-
56
- **Note:** Version bump only for package @pie-lib/rubric
57
-
58
-
59
-
60
-
61
-
62
- ## [0.7.1](https://github.com/pie-framework/pie-lib/compare/@pie-lib/rubric@0.7.0...@pie-lib/rubric@0.7.1) (2023-01-31)
63
-
64
- **Note:** Version bump only for package @pie-lib/rubric
65
-
66
-
67
-
68
-
69
-
70
- # [0.7.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/rubric@0.6.10...@pie-lib/rubric@0.7.0) (2023-01-16)
71
-
72
-
73
- ### Features
74
-
75
- * added theme naming support + cleanup ([72d562d](https://github.com/pie-framework/pie-lib/commit/72d562d509e5d31d883690eb455a9afea6bf54fc))
76
-
77
-
78
-
79
-
80
-
81
- ## [0.6.10](https://github.com/pie-framework/pie-lib/compare/@pie-lib/rubric@0.6.9...@pie-lib/rubric@0.6.10) (2023-01-04)
82
-
83
- **Note:** Version bump only for package @pie-lib/rubric
84
-
85
-
86
-
87
-
88
-
89
- ## [0.6.9](https://github.com/pie-framework/pie-lib/compare/@pie-lib/rubric@0.6.8...@pie-lib/rubric@0.6.9) (2023-01-03)
90
-
91
- **Note:** Version bump only for package @pie-lib/rubric
92
-
93
-
94
-
95
-
96
-
97
- ## [0.6.8](https://github.com/pie-framework/pie-lib/compare/@pie-lib/rubric@0.6.7...@pie-lib/rubric@0.6.8) (2022-12-19)
98
-
99
- **Note:** Version bump only for package @pie-lib/rubric
100
-
101
-
102
-
103
-
104
-
105
- ## [0.6.7](https://github.com/pie-framework/pie-lib/compare/@pie-lib/rubric@0.6.6...@pie-lib/rubric@0.6.7) (2022-12-06)
106
-
107
- **Note:** Version bump only for package @pie-lib/rubric
108
-
109
-
110
-
111
-
112
-
113
- ## [0.6.6](https://github.com/pie-framework/pie-lib/compare/@pie-lib/rubric@0.6.5...@pie-lib/rubric@0.6.6) (2022-11-29)
114
-
115
- **Note:** Version bump only for package @pie-lib/rubric
116
-
117
-
118
-
119
-
120
-
121
- ## [0.6.5](https://github.com/pie-framework/pie-lib/compare/@pie-lib/rubric@0.6.4...@pie-lib/rubric@0.6.5) (2022-11-23)
122
-
123
- **Note:** Version bump only for package @pie-lib/rubric
124
-
125
-
126
-
127
-
128
-
129
- ## [0.6.4](https://github.com/pie-framework/pie-lib/compare/@pie-lib/rubric@0.6.3...@pie-lib/rubric@0.6.4) (2022-11-23)
130
-
131
- **Note:** Version bump only for package @pie-lib/rubric
132
-
133
-
134
-
135
-
136
-
137
- ## [0.6.3](https://github.com/pie-framework/pie-lib/compare/@pie-lib/rubric@0.6.2...@pie-lib/rubric@0.6.3) (2022-11-17)
138
-
139
- **Note:** Version bump only for package @pie-lib/rubric
140
-
141
-
142
-
143
-
144
-
145
- ## [0.6.2](https://github.com/pie-framework/pie-lib/compare/@pie-lib/rubric@0.6.1...@pie-lib/rubric@0.6.2) (2022-11-14)
146
-
147
- **Note:** Version bump only for package @pie-lib/rubric
148
-
149
-
150
-
151
-
152
-
153
- ## [0.6.1](https://github.com/pie-framework/pie-lib/compare/@pie-lib/rubric@0.6.0...@pie-lib/rubric@0.6.1) (2022-10-31)
154
-
155
- **Note:** Version bump only for package @pie-lib/rubric
156
-
157
-
158
-
159
-
160
-
161
- # [0.6.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/rubric@0.5.4...@pie-lib/rubric@0.6.0) (2022-10-17)
162
-
163
-
164
- ### Features
165
-
166
- * **rubric:** add conditional rendering for exclude zeros and max points PD-2040 ([9914c99](https://github.com/pie-framework/pie-lib/commit/9914c99bf25da0e1e94bae6f59febafded65cfe6))
167
-
168
-
169
-
170
-
171
-
172
- ## [0.5.4](https://github.com/pie-framework/pie-lib/compare/@pie-lib/rubric@0.5.3...@pie-lib/rubric@0.5.4) (2022-09-29)
173
-
174
- **Note:** Version bump only for package @pie-lib/rubric
175
-
176
-
177
-
178
-
179
-
180
- ## [0.5.3](https://github.com/pie-framework/pie-lib/compare/@pie-lib/rubric@0.5.2...@pie-lib/rubric@0.5.3) (2022-09-28)
181
-
182
- **Note:** Version bump only for package @pie-lib/rubric
183
-
184
-
185
-
186
-
187
-
188
- ## [0.5.2](https://github.com/pie-framework/pie-lib/compare/@pie-lib/rubric@0.5.1...@pie-lib/rubric@0.5.2) (2022-09-28)
189
-
190
- **Note:** Version bump only for package @pie-lib/rubric
191
-
192
-
193
-
194
-
195
-
196
- ## [0.5.1](https://github.com/pie-framework/pie-lib/compare/@pie-lib/rubric@0.5.0...@pie-lib/rubric@0.5.1) (2022-09-14)
197
-
198
- **Note:** Version bump only for package @pie-lib/rubric
199
-
200
-
201
-
202
-
203
-
204
- # [0.5.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/rubric@0.4.39...@pie-lib/rubric@0.5.0) (2022-09-12)
205
-
206
-
207
- ### Features
208
-
209
- * **rubric:** create new object for rubric types ([3ef5861](https://github.com/pie-framework/pie-lib/commit/3ef5861e5bffc436ae29ffc79663ebd70fb296b3))
210
-
211
-
212
-
213
-
214
-
215
- ## [0.4.39](https://github.com/pie-framework/pie-lib/compare/@pie-lib/rubric@0.4.38...@pie-lib/rubric@0.4.39) (2022-08-30)
216
-
217
- **Note:** Version bump only for package @pie-lib/rubric
218
-
219
-
220
-
221
-
222
-
223
- ## [0.4.38](https://github.com/pie-framework/pie-lib/compare/@pie-lib/rubric@0.4.37...@pie-lib/rubric@0.4.38) (2022-08-29)
224
-
225
- **Note:** Version bump only for package @pie-lib/rubric
226
-
227
-
228
-
229
-
230
-
231
- ## [0.4.37](https://github.com/pie-framework/pie-lib/compare/@pie-lib/rubric@0.4.36...@pie-lib/rubric@0.4.37) (2022-08-29)
232
-
233
- **Note:** Version bump only for package @pie-lib/rubric
234
-
235
-
236
-
237
-
238
-
239
- ## [0.4.36](https://github.com/pie-framework/pie-lib/compare/@pie-lib/rubric@0.4.35...@pie-lib/rubric@0.4.36) (2022-08-15)
240
-
241
- **Note:** Version bump only for package @pie-lib/rubric
242
-
243
-
244
-
245
-
246
-
247
- ## [0.4.35](https://github.com/pie-framework/pie-lib/compare/@pie-lib/rubric@0.4.34...@pie-lib/rubric@0.4.35) (2022-08-08)
248
-
249
- **Note:** Version bump only for package @pie-lib/rubric
250
-
251
-
252
-
253
-
254
-
255
- ## [0.4.34](https://github.com/pie-framework/pie-lib/compare/@pie-lib/rubric@0.4.33...@pie-lib/rubric@0.4.34) (2022-08-01)
256
-
257
- **Note:** Version bump only for package @pie-lib/rubric
258
-
259
-
260
-
261
-
262
-
263
- ## [0.4.33](https://github.com/pie-framework/pie-lib/compare/@pie-lib/rubric@0.4.32...@pie-lib/rubric@0.4.33) (2022-08-01)
264
-
265
- **Note:** Version bump only for package @pie-lib/rubric
266
-
267
-
268
-
269
-
270
-
271
6
  ## [0.4.32](https://github.com/pie-framework/pie-lib/compare/@pie-lib/rubric@0.4.31...@pie-lib/rubric@0.4.32) (2022-07-22)
272
7
 
273
8
  **Note:** Version bump only for package @pie-lib/rubric
package/lib/authoring.js CHANGED
@@ -146,7 +146,7 @@ var PointConfig = (0, _styles.withStyles)(function (theme) {
146
146
  },
147
147
  editor: {
148
148
  width: '100%',
149
- backgroundColor: "".concat(theme.palette.common.white, " !important")
149
+ backgroundColor: 'white !important'
150
150
  },
151
151
  dragIndicator: {
152
152
  paddingTop: theme.spacing.unit,
@@ -328,12 +328,6 @@ var RawAuthoring = /*#__PURE__*/function (_React$Component) {
328
328
  className = _this$props5.className,
329
329
  value = _this$props5.value;
330
330
 
331
- var _ref = value || {},
332
- _ref$excludeZeroEnabl = _ref.excludeZeroEnabled,
333
- excludeZeroEnabled = _ref$excludeZeroEnabl === void 0 ? true : _ref$excludeZeroEnabl,
334
- _ref$maxPointsEnabled = _ref.maxPointsEnabled,
335
- maxPointsEnabled = _ref$maxPointsEnabled === void 0 ? true : _ref$maxPointsEnabled;
336
-
337
331
  if (value && Number.isFinite(value.maxPoints)) {
338
332
  // eslint-disable-next-line no-console
339
333
  console.warn('maxPoints is deprecated - remove from model');
@@ -346,11 +340,11 @@ var RawAuthoring = /*#__PURE__*/function (_React$Component) {
346
340
  className: classes.rubricTitle
347
341
  }, "Rubric"), /*#__PURE__*/_react["default"].createElement(_FormGroup["default"], {
348
342
  row: true
349
- }, maxPointsEnabled && /*#__PURE__*/_react["default"].createElement(MaxPoints, {
343
+ }, /*#__PURE__*/_react["default"].createElement(MaxPoints, {
350
344
  max: 10,
351
345
  value: value.points.length - 1,
352
346
  onChange: this.changeMaxPoints
353
- }), excludeZeroEnabled && /*#__PURE__*/_react["default"].createElement(_FormControlLabel["default"], {
347
+ }), /*#__PURE__*/_react["default"].createElement(_FormControlLabel["default"], {
354
348
  label: "Exclude zeros",
355
349
  control: /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], {
356
350
  checked: value.excludeZero,
@@ -463,4 +457,4 @@ Reverse.propTypes = {
463
457
  };
464
458
  var _default = Reverse;
465
459
  exports["default"] = _default;
466
- //# sourceMappingURL=authoring.js.map
460
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJsb2ciLCJkZWJ1ZyIsInJlb3JkZXIiLCJsaXN0Iiwic3RhcnRJbmRleCIsImVuZEluZGV4IiwicmVzdWx0IiwiQXJyYXkiLCJmcm9tIiwic3BsaWNlIiwicmVtb3ZlZCIsIlJ1YnJpY1R5cGUiLCJQcm9wVHlwZXMiLCJzaGFwZSIsImV4Y2x1ZGVaZXJvIiwiYm9vbCIsInBvaW50cyIsImFycmF5T2YiLCJzdHJpbmciLCJzYW1wbGVBbnN3ZXJzIiwiTWF4UG9pbnRzIiwid2l0aFN0eWxlcyIsInRoZW1lIiwiZm9ybUNvbnRyb2wiLCJtaW5XaWR0aCIsIm1hcmdpbiIsInNwYWNpbmciLCJ1bml0IiwicHJvcHMiLCJ2YWx1ZSIsIm9uQ2hhbmdlIiwibWF4IiwiY2xhc3NlcyIsImUiLCJ0YXJnZXQiLCJyYW5nZSIsIm1hcCIsInYiLCJjaGVja1NhbXBsZUFuc3dlciIsInNhbXBsZUFuc3dlciIsIlBvaW50Q29uZmlnIiwicG9pbnRDb25maWciLCJyb3ciLCJkaXNwbGF5Iiwid2lkdGgiLCJwb3NpdGlvbiIsImVkaXRvciIsImJhY2tncm91bmRDb2xvciIsImRyYWdJbmRpY2F0b3IiLCJwYWRkaW5nVG9wIiwiY29sb3IiLCJncmV5IiwicG9pbnRzTGFiZWwiLCJwYWRkaW5nQm90dG9tIiwidGV4dFRyYW5zZm9ybSIsInNhbXBsZUFuc3dlcnNFZGl0b3IiLCJwYWRkaW5nTGVmdCIsInBvaW50TWVudSIsInJpZ2h0IiwiY29udGVudCIsInNob3dTYW1wbGVBbnN3ZXIiLCJpY29uIiwib25NZW51Q2hhbmdlIiwib25TYW1wbGVDaGFuZ2UiLCJSYXdBdXRob3JpbmciLCJkZXN0aW5hdGlvbiIsInNvdXJjZSIsImluZGV4IiwibWF4UG9pbnRzIiwiY3VycmVudE1heCIsImxlbmd0aCIsInRpbWVzIiwiY29uY2F0IiwidGFrZVJpZ2h0IiwidHlwZSIsIml0ZW1zIiwiY2xpY2tlZEl0ZW0iLCJjaGFuZ2VDb250ZW50IiwiY2xhc3NOYW1lIiwiTnVtYmVyIiwiaXNGaW5pdGUiLCJjb25zb2xlIiwid2FybiIsImNsYXNzTmFtZXMiLCJydWJyaWNUaXRsZSIsImNoYW5nZU1heFBvaW50cyIsImV4Y2x1ZGVaZXJvcyIsImNvbnRhaW5lciIsImRyYWdFbmQiLCJwcm92aWRlZCIsImRyb3BwYWJsZVByb3BzIiwiaW5uZXJSZWYiLCJwIiwic2hvdWxkUmVuZGVyUG9pbnQiLCJ0b1N0cmluZyIsImNvbmZpZ0hvbGRlciIsImRyYWdnYWJsZVByb3BzIiwiZHJhZ0hhbmRsZVByb3BzIiwib25Qb2ludE1lbnVDaGFuZ2UiLCJwbGFjZWhvbGRlciIsIlJlYWN0IiwiQ29tcG9uZW50Iiwib2JqZWN0IiwiaXNSZXF1aXJlZCIsImZ1bmMiLCJzdHlsZXMiLCJib3JkZXJXaWR0aCIsImJvcmRlclN0eWxlIiwiYm9yZGVyQ29sb3IiLCJwYWRkaW5nIiwiU3R5bGVkUmF3QXV0aG9yaW5nIiwiUmV2ZXJzZSIsInJldmVyc2UiLCJwcm9wVHlwZXMiLCJnZXRJbmRleCJdLCJzb3VyY2VzIjpbIi4uL3NyYy9hdXRob3JpbmcuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHsgd2l0aFN0eWxlcyB9IGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL3N0eWxlcyc7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCBPdXRsaW5lZElucHV0IGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL091dGxpbmVkSW5wdXQnO1xuaW1wb3J0IElucHV0TGFiZWwgZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvSW5wdXRMYWJlbCc7XG5pbXBvcnQgU2VsZWN0IGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL1NlbGVjdCc7XG5pbXBvcnQgRm9ybUNvbnRyb2wgZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvRm9ybUNvbnRyb2wnO1xuaW1wb3J0IE1lbnVJdGVtIGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL01lbnVJdGVtJztcbmltcG9ydCB0aW1lcyBmcm9tICdsb2Rhc2gvdGltZXMnO1xuaW1wb3J0IENoZWNrYm94IGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL0NoZWNrYm94JztcbmltcG9ydCBGb3JtR3JvdXAgZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvRm9ybUdyb3VwJztcbmltcG9ydCBGb3JtQ29udHJvbExhYmVsIGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL0Zvcm1Db250cm9sTGFiZWwnO1xuaW1wb3J0IGdyZXkgZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvY29sb3JzL2dyZXknO1xuaW1wb3J0IFR5cG9ncmFwaHkgZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvVHlwb2dyYXBoeSc7XG5pbXBvcnQgRHJhZ0luZGljYXRvciBmcm9tICdAbWF0ZXJpYWwtdWkvaWNvbnMvRHJhZ0luZGljYXRvcic7XG5pbXBvcnQgRWRpdGFibGVIdG1sIGZyb20gJ0BwaWUtbGliL2VkaXRhYmxlLWh0bWwnO1xuaW1wb3J0IHsgRHJhZ0Ryb3BDb250ZXh0LCBEcm9wcGFibGUsIERyYWdnYWJsZSB9IGZyb20gJ3JlYWN0LWJlYXV0aWZ1bC1kbmQnO1xuaW1wb3J0IGRlYnVnIGZyb20gJ2RlYnVnJztcbmltcG9ydCB0YWtlUmlnaHQgZnJvbSAnbG9kYXNoL3Rha2VSaWdodCc7XG5pbXBvcnQgUG9pbnRNZW51IGZyb20gJy4vcG9pbnQtbWVudSc7XG5cbmltcG9ydCByYW5nZSBmcm9tICdsb2Rhc2gvcmFuZ2UnO1xuY29uc3QgbG9nID0gZGVidWcoJ3BpZS1saWI6cnVicmljOmF1dGhvcmluZycpO1xuXG5jb25zdCByZW9yZGVyID0gKGxpc3QsIHN0YXJ0SW5kZXgsIGVuZEluZGV4KSA9PiB7XG4gIGNvbnN0IHJlc3VsdCA9IEFycmF5LmZyb20obGlzdCk7XG4gIGNvbnN0IFtyZW1vdmVkXSA9IHJlc3VsdC5zcGxpY2Uoc3RhcnRJbmRleCwgMSk7XG5cbiAgcmVzdWx0LnNwbGljZShlbmRJbmRleCwgMCwgcmVtb3ZlZCk7XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbmV4cG9ydCBjb25zdCBSdWJyaWNUeXBlID0gUHJvcFR5cGVzLnNoYXBlKHtcbiAgZXhjbHVkZVplcm86IFByb3BUeXBlcy5ib29sLFxuICBwb2ludHM6IFByb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5zdHJpbmcpLFxuICBzYW1wbGVBbnN3ZXJzOiBQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMuc3RyaW5nKVxufSk7XG5cbmNvbnN0IE1heFBvaW50cyA9IHdpdGhTdHlsZXModGhlbWUgPT4gKHtcbiAgZm9ybUNvbnRyb2w6IHtcbiAgICBtaW5XaWR0aDogJzEyMHB4JyxcbiAgICBtYXJnaW46IHRoZW1lLnNwYWNpbmcudW5pdFxuICB9XG59KSkocHJvcHMgPT4ge1xuICBjb25zdCB7IHZhbHVlLCBvbkNoYW5nZSwgbWF4LCBjbGFzc2VzIH0gPSBwcm9wcztcblxuICByZXR1cm4gKFxuICAgIDxGb3JtQ29udHJvbCBjbGFzc05hbWU9e2NsYXNzZXMuZm9ybUNvbnRyb2x9IHZhcmlhbnQ9XCJvdXRsaW5lZFwiPlxuICAgICAgPElucHV0TGFiZWwgd2lkdGg9ezEwMH0gaHRtbEZvcj1cIi4uLlwiPlxuICAgICAgICBNYXggUG9pbnRzXG4gICAgICA8L0lucHV0TGFiZWw+XG4gICAgICA8U2VsZWN0XG4gICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgb25DaGFuZ2U9e2UgPT4gb25DaGFuZ2UoZS50YXJnZXQudmFsdWUpfVxuICAgICAgICBpbnB1dD17PE91dGxpbmVkSW5wdXQgbGFiZWxXaWR0aD17ODB9IC8+fVxuICAgICAgPlxuICAgICAgICB7cmFuZ2UoMSwgbWF4KS5tYXAodiA9PiAoXG4gICAgICAgICAgPE1lbnVJdGVtIGtleT17YCR7dn1gfSB2YWx1ZT17dn0+XG4gICAgICAgICAgICB7dn1cbiAgICAgICAgICA8L01lbnVJdGVtPlxuICAgICAgICApKX1cbiAgICAgIDwvU2VsZWN0PlxuICAgIDwvRm9ybUNvbnRyb2w+XG4gICk7XG59KTtcblxuLy8gaWYgdGhlIHZhbHVlIGlzIG51bGwgb3IgJ251bGwnLCB0aGUgU2FtcGxlIEFuc3dlciBpbnB1dCBmaWVsZCBmb3IgdGhhdCBwb2ludCB3aWxsIG5vdCBiZSBkaXNwYWx5ZWRcbi8vIGlmIHRoZSB2YWx1ZSBpcyAnJywgdGhlIFNhbXBsZSBBbnN3ZXIgaW5wdXQgZmllbGQgd2lsbCBiZSBlbXB0eVxuY29uc3QgY2hlY2tTYW1wbGVBbnN3ZXIgPSBzYW1wbGVBbnN3ZXIgPT4gc2FtcGxlQW5zd2VyID09PSBudWxsIHx8IHNhbXBsZUFuc3dlciA9PT0gJ251bGwnO1xuXG5leHBvcnQgY29uc3QgUG9pbnRDb25maWcgPSB3aXRoU3R5bGVzKHRoZW1lID0+ICh7XG4gIHBvaW50Q29uZmlnOiB7fSxcbiAgcm93OiB7XG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIHdpZHRoOiAnMTAwJScsXG4gICAgcG9zaXRpb246ICdyZWxhdGl2ZSdcbiAgfSxcbiAgZWRpdG9yOiB7XG4gICAgd2lkdGg6ICcxMDAlJyxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6ICd3aGl0ZSAhaW1wb3J0YW50J1xuICB9LFxuICBkcmFnSW5kaWNhdG9yOiB7XG4gICAgcGFkZGluZ1RvcDogdGhlbWUuc3BhY2luZy51bml0LFxuICAgIGNvbG9yOiBncmV5WzUwMF1cbiAgfSxcbiAgcG9pbnRzTGFiZWw6IHtcbiAgICBjb2xvcjogZ3JleVs1MDBdLFxuICAgIHBhZGRpbmdCb3R0b206IHRoZW1lLnNwYWNpbmcudW5pdCxcbiAgICB0ZXh0VHJhbnNmb3JtOiAndXBwZXJjYXNlJ1xuICB9LFxuICBzYW1wbGVBbnN3ZXJzRWRpdG9yOiB7XG4gICAgcGFkZGluZ0xlZnQ6IHRoZW1lLnNwYWNpbmcudW5pdCAqIDNcbiAgfSxcbiAgcG9pbnRNZW51OiB7XG4gICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgcmlnaHQ6IDBcbiAgfVxufSkpKHByb3BzID0+IHtcbiAgY29uc3QgeyBwb2ludHMsIGNvbnRlbnQsIGNsYXNzZXMsIHNhbXBsZUFuc3dlciB9ID0gcHJvcHM7XG4gIGNvbnN0IHBvaW50c0xhYmVsID0gYCR7cG9pbnRzfSAke3BvaW50cyA8PSAxID8gJ3B0JyA6ICdwdHMnfWA7XG4gIGNvbnN0IHNob3dTYW1wbGVBbnN3ZXIgPSBjaGVja1NhbXBsZUFuc3dlcihzYW1wbGVBbnN3ZXIpO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9e2NsYXNzZXMucG9pbnRDb25maWd9PlxuICAgICAgPFR5cG9ncmFwaHkgdmFyaWFudD1cIm92ZXJsaW5lXCIgY2xhc3NOYW1lPXtjbGFzc2VzLnBvaW50c0xhYmVsfT5cbiAgICAgICAge3BvaW50c0xhYmVsfVxuICAgICAgPC9UeXBvZ3JhcGh5PlxuICAgICAgPGRpdiBjbGFzc05hbWU9e2NsYXNzZXMucm93fT5cbiAgICAgICAgPERyYWdJbmRpY2F0b3IgY2xhc3NOYW1lPXtjbGFzc2VzLmRyYWdJbmRpY2F0b3J9IC8+XG4gICAgICAgIDxFZGl0YWJsZUh0bWwgY2xhc3NOYW1lPXtjbGFzc2VzLmVkaXRvcn0gbWFya3VwPXtjb250ZW50fSBvbkNoYW5nZT17cHJvcHMub25DaGFuZ2V9IC8+XG4gICAgICAgIDxQb2ludE1lbnVcbiAgICAgICAgICBjbGFzc2VzPXt7XG4gICAgICAgICAgICBpY29uOiBjbGFzc2VzLnBvaW50TWVudVxuICAgICAgICAgIH19XG4gICAgICAgICAgc2hvd1NhbXBsZUFuc3dlcj17c2hvd1NhbXBsZUFuc3dlcn1cbiAgICAgICAgICBvbkNoYW5nZT17cHJvcHMub25NZW51Q2hhbmdlfVxuICAgICAgICAvPlxuICAgICAgPC9kaXY+XG4gICAgICB7IXNob3dTYW1wbGVBbnN3ZXIgJiYgKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xhc3Nlcy5zYW1wbGVBbnN3ZXJzRWRpdG9yfT5cbiAgICAgICAgICA8VHlwb2dyYXBoeSB2YXJpYW50PVwib3ZlcmxpbmVcIiBjbGFzc05hbWU9e2NsYXNzZXMuZHJhZ0luZGljYXRvcn0+XG4gICAgICAgICAgICBTYW1wbGUgUmVzcG9uc2VcbiAgICAgICAgICA8L1R5cG9ncmFwaHk+XG4gICAgICAgICAgPEVkaXRhYmxlSHRtbFxuICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLmVkaXRvcn1cbiAgICAgICAgICAgIG1hcmt1cD17c2FtcGxlQW5zd2VyfVxuICAgICAgICAgICAgb25DaGFuZ2U9e3Byb3BzLm9uU2FtcGxlQ2hhbmdlfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKX1cbiAgICA8L2Rpdj5cbiAgKTtcbn0pO1xuXG5leHBvcnQgY2xhc3MgUmF3QXV0aG9yaW5nIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBjbGFzc2VzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIHZhbHVlOiBSdWJyaWNUeXBlLFxuICAgIG9uQ2hhbmdlOiBQcm9wVHlwZXMuZnVuY1xuICB9O1xuXG4gIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7fTtcblxuICBkcmFnRW5kID0gcmVzdWx0ID0+IHtcbiAgICBpZiAoIXJlc3VsdC5kZXN0aW5hdGlvbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHsgdmFsdWUsIG9uQ2hhbmdlIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3QgcG9pbnRzID0gcmVvcmRlcih2YWx1ZS5wb2ludHMsIHJlc3VsdC5zb3VyY2UuaW5kZXgsIHJlc3VsdC5kZXN0aW5hdGlvbi5pbmRleCk7XG4gICAgY29uc3Qgc2FtcGxlQW5zd2VycyA9IHJlb3JkZXIoXG4gICAgICB2YWx1ZS5zYW1wbGVBbnN3ZXJzLFxuICAgICAgcmVzdWx0LnNvdXJjZS5pbmRleCxcbiAgICAgIHJlc3VsdC5kZXN0aW5hdGlvbi5pbmRleFxuICAgICk7XG5cbiAgICBvbkNoYW5nZSh7IC4uLnZhbHVlLCBwb2ludHMsIHNhbXBsZUFuc3dlcnMgfSk7XG4gIH07XG5cbiAgY2hhbmdlTWF4UG9pbnRzID0gbWF4UG9pbnRzID0+IHtcbiAgICBjb25zdCB7IHZhbHVlLCBvbkNoYW5nZSB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBjdXJyZW50TWF4ID0gdmFsdWUucG9pbnRzLmxlbmd0aCAtIDE7XG5cbiAgICBsb2coJ2N1cnJlbnQnLCBjdXJyZW50TWF4LCAnbmV3OiAnLCBtYXhQb2ludHMpO1xuXG4gICAgbGV0IHBvaW50cywgc2FtcGxlQW5zd2VycztcbiAgICBpZiAobWF4UG9pbnRzID4gY3VycmVudE1heCkge1xuICAgICAgcG9pbnRzID0gdGltZXMobWF4UG9pbnRzIC0gY3VycmVudE1heClcbiAgICAgICAgLm1hcCgoKSA9PiAnJylcbiAgICAgICAgLmNvbmNhdCh2YWx1ZS5wb2ludHMpO1xuICAgICAgc2FtcGxlQW5zd2VycyA9IHRpbWVzKG1heFBvaW50cyAtIGN1cnJlbnRNYXgpXG4gICAgICAgIC5tYXAoKCkgPT4gbnVsbClcbiAgICAgICAgLmNvbmNhdCh2YWx1ZS5zYW1wbGVBbnN3ZXJzKTtcbiAgICB9XG5cbiAgICBpZiAobWF4UG9pbnRzIDwgY3VycmVudE1heCkge1xuICAgICAgbG9nKCdsZXNzIHRoYW4nKTtcbiAgICAgIHBvaW50cyA9IHRha2VSaWdodCh2YWx1ZS5wb2ludHMsIG1heFBvaW50cyArIDEpO1xuICAgICAgc2FtcGxlQW5zd2VycyA9IHRha2VSaWdodCh2YWx1ZS5zYW1wbGVBbnN3ZXJzLCBtYXhQb2ludHMgKyAxKTtcbiAgICB9XG5cbiAgICBpZiAocG9pbnRzKSB7XG4gICAgICBvbkNoYW5nZSh7IC4uLnZhbHVlLCBwb2ludHMsIHNhbXBsZUFuc3dlcnMgfSk7XG4gICAgfVxuICB9O1xuXG4gIGNoYW5nZUNvbnRlbnQgPSAoaW5kZXgsIGNvbnRlbnQsIHR5cGUpID0+IHtcbiAgICAvLyB0eXBlIGNvdWxkIGJlICdwb2ludHMnIG9yICdzYW1wbGVBbnN3ZXJzJ1xuICAgIGxvZyhgY2hhbmdlTW9kZWxbJHt0eXBlfV06YCwgaW5kZXgsIGNvbnRlbnQpO1xuXG4gICAgaWYgKHR5cGUgIT09ICdwb2ludHMnICYmIHR5cGUgIT09ICdzYW1wbGVBbnN3ZXJzJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHsgdmFsdWUsIG9uQ2hhbmdlIH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGl0ZW1zID0gdmFsdWVbdHlwZV0gJiYgQXJyYXkuZnJvbSh2YWx1ZVt0eXBlXSk7XG5cbiAgICBpdGVtcy5zcGxpY2UoaW5kZXgsIDEsIGNvbnRlbnQpO1xuICAgIGxvZyhgY2hhbmdlTW9kZWxbJHt0eXBlfV06YCwgaXRlbXMpO1xuXG4gICAgb25DaGFuZ2UoeyAuLi52YWx1ZSwgW3R5cGVdOiBpdGVtcyB9KTtcbiAgfTtcblxuICBleGNsdWRlWmVyb3MgPSAoKSA9PiB7XG4gICAgY29uc3QgeyB2YWx1ZSwgb25DaGFuZ2UgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBvbkNoYW5nZSh7IC4uLnZhbHVlLCBleGNsdWRlWmVybzogIXZhbHVlLmV4Y2x1ZGVaZXJvIH0pO1xuICB9O1xuXG4gIHNob3VsZFJlbmRlclBvaW50ID0gKGluZGV4LCB2YWx1ZSkgPT4ge1xuICAgIGlmICghdmFsdWUuZXhjbHVkZVplcm8pIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoaW5kZXggPCB2YWx1ZS5wb2ludHMubGVuZ3RoIC0gMSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH0gZWxzZSBpZiAoaW5kZXggPT09IHZhbHVlLnBvaW50cy5sZW5ndGggLSAxKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9O1xuXG4gIG9uUG9pbnRNZW51Q2hhbmdlID0gKGluZGV4LCBjbGlja2VkSXRlbSkgPT4ge1xuICAgIGlmIChjbGlja2VkSXRlbSA9PT0gJ3NhbXBsZScpIHtcbiAgICAgIGNvbnN0IHsgdmFsdWUgfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCBzYW1wbGVBbnN3ZXJzID0gQXJyYXkuZnJvbSh2YWx1ZS5zYW1wbGVBbnN3ZXJzIHx8IFtdKTtcblxuICAgICAgaWYgKGNoZWNrU2FtcGxlQW5zd2VyKHNhbXBsZUFuc3dlcnNbaW5kZXhdKSkge1xuICAgICAgICAvLyBhbiBlbXB0eSBzdHJpbmcgd2lsbCBkaXNwbGF5IGFuIGVtcHR5IFNhbXBsZSBBbnN3ZXIgaW5wdXQgZmllbGRcbiAgICAgICAgdGhpcy5jaGFuZ2VDb250ZW50KGluZGV4LCAnJywgJ3NhbXBsZUFuc3dlcnMnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIHdoZW4gdGhlIGNvbnRlbnQgaXMgbnVsbCBvciAnbnVsbCcsIHRoZSBTYW1wbGUgQW5zd2VyIGlucHV0IGZpZWxkIHdpbGwgbm90IGJlIGRpc3BsYXllZFxuICAgICAgICB0aGlzLmNoYW5nZUNvbnRlbnQoaW5kZXgsIG51bGwsICdzYW1wbGVBbnN3ZXJzJyk7XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7IGNsYXNzZXMsIGNsYXNzTmFtZSwgdmFsdWUgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBpZiAodmFsdWUgJiYgTnVtYmVyLmlzRmluaXRlKHZhbHVlLm1heFBvaW50cykpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICBjb25zb2xlLndhcm4oJ21heFBvaW50cyBpcyBkZXByZWNhdGVkIC0gcmVtb3ZlIGZyb20gbW9kZWwnKTtcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9e2NsYXNzTmFtZXMoY2xhc3Nlcy5jbGFzcywgY2xhc3NOYW1lKX0+XG4gICAgICAgIDxUeXBvZ3JhcGh5IHZhcmlhbnQ9XCJoNVwiIGNsYXNzTmFtZT17Y2xhc3Nlcy5ydWJyaWNUaXRsZX0+XG4gICAgICAgICAgUnVicmljXG4gICAgICAgIDwvVHlwb2dyYXBoeT5cbiAgICAgICAgPEZvcm1Hcm91cCByb3c+XG4gICAgICAgICAgPE1heFBvaW50cyBtYXg9ezEwfSB2YWx1ZT17dmFsdWUucG9pbnRzLmxlbmd0aCAtIDF9IG9uQ2hhbmdlPXt0aGlzLmNoYW5nZU1heFBvaW50c30gLz5cbiAgICAgICAgICA8Rm9ybUNvbnRyb2xMYWJlbFxuICAgICAgICAgICAgbGFiZWw9XCJFeGNsdWRlIHplcm9zXCJcbiAgICAgICAgICAgIGNvbnRyb2w9ezxDaGVja2JveCBjaGVja2VkPXt2YWx1ZS5leGNsdWRlWmVyb30gb25DaGFuZ2U9e3RoaXMuZXhjbHVkZVplcm9zfSAvPn1cbiAgICAgICAgICAvPlxuICAgICAgICA8L0Zvcm1Hcm91cD5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e2NsYXNzZXMuY29udGFpbmVyfT5cbiAgICAgICAgICA8RHJhZ0Ryb3BDb250ZXh0IG9uRHJhZ0VuZD17dGhpcy5kcmFnRW5kfT5cbiAgICAgICAgICAgIDxEcm9wcGFibGUgZHJvcHBhYmxlSWQ9XCJkcm9wcGFibGVcIj5cbiAgICAgICAgICAgICAge3Byb3ZpZGVkID0+IChcbiAgICAgICAgICAgICAgICA8ZGl2IHsuLi5wcm92aWRlZC5kcm9wcGFibGVQcm9wc30gcmVmPXtwcm92aWRlZC5pbm5lclJlZn0+XG4gICAgICAgICAgICAgICAgICB7dmFsdWUucG9pbnRzLm1hcChcbiAgICAgICAgICAgICAgICAgICAgKHAsIGluZGV4KSA9PlxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2hvdWxkUmVuZGVyUG9pbnQoaW5kZXgsIHZhbHVlKSAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8RHJhZ2dhYmxlXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17YCR7cC5wb2ludHN9LSR7aW5kZXh9YH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg9e2luZGV4fVxuICAgICAgICAgICAgICAgICAgICAgICAgICBkcmFnZ2FibGVJZD17aW5kZXgudG9TdHJpbmcoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAge3Byb3ZpZGVkID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzZXMuY29uZmlnSG9sZGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmPXtwcm92aWRlZC5pbm5lclJlZn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsuLi5wcm92aWRlZC5kcmFnZ2FibGVQcm9wc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsuLi5wcm92aWRlZC5kcmFnSGFuZGxlUHJvcHN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFBvaW50Q29uZmlnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvaW50cz17dmFsdWUucG9pbnRzLmxlbmd0aCAtIDEgLSBpbmRleH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudD17cH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2FtcGxlQW5zd2VyPXt2YWx1ZS5zYW1wbGVBbnN3ZXJzICYmIHZhbHVlLnNhbXBsZUFuc3dlcnNbaW5kZXhdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17Y29udGVudCA9PiB0aGlzLmNoYW5nZUNvbnRlbnQoaW5kZXgsIGNvbnRlbnQsICdwb2ludHMnKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25TYW1wbGVDaGFuZ2U9e2NvbnRlbnQgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZUNvbnRlbnQoaW5kZXgsIGNvbnRlbnQsICdzYW1wbGVBbnN3ZXJzJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbk1lbnVDaGFuZ2U9e2NsaWNrZWRJdGVtID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vblBvaW50TWVudUNoYW5nZShpbmRleCwgY2xpY2tlZEl0ZW0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0RyYWdnYWJsZT5cbiAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAge3Byb3ZpZGVkLnBsYWNlaG9sZGVyfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9Ecm9wcGFibGU+XG4gICAgICAgICAgPC9EcmFnRHJvcENvbnRleHQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxufVxuXG5jb25zdCBzdHlsZXMgPSB0aGVtZSA9PiAoe1xuICBjb250YWluZXI6IHtcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IGdyZXlbMjAwXSxcbiAgICBib3JkZXJXaWR0aDogMSxcbiAgICBib3JkZXJTdHlsZTogJ3NvbGlkJyxcbiAgICBib3JkZXJDb2xvcjogZ3JleVszMDBdLFxuICAgIHBhZGRpbmc6IHRoZW1lLnNwYWNpbmcudW5pdCAqIDIsXG4gICAgbWFyZ2luOiB0aGVtZS5zcGFjaW5nLnVuaXRcbiAgfSxcbiAgY29uZmlnSG9sZGVyOiB7XG4gICAgcGFkZGluZ1RvcDogdGhlbWUuc3BhY2luZy51bml0LFxuICAgIHBhZGRpbmdCb3R0b206IHRoZW1lLnNwYWNpbmcudW5pdFxuICB9LFxuICBydWJyaWNUaXRsZToge1xuICAgIHBhZGRpbmdMZWZ0OiB0aGVtZS5zcGFjaW5nLnVuaXQsXG4gICAgbWFyZ2luOiB0aGVtZS5zcGFjaW5nLnVuaXRcbiAgfVxufSk7XG5cbmNvbnN0IFN0eWxlZFJhd0F1dGhvcmluZyA9IHdpdGhTdHlsZXMoc3R5bGVzKShSYXdBdXRob3JpbmcpO1xuXG5jb25zdCBSZXZlcnNlID0gcHJvcHMgPT4ge1xuICBjb25zdCBwb2ludHMgPSBBcnJheS5mcm9tKHByb3BzLnZhbHVlLnBvaW50cyB8fCBbXSkucmV2ZXJzZSgpO1xuICBsZXQgc2FtcGxlQW5zd2VycyA9IEFycmF5LmZyb20ocHJvcHMudmFsdWUuc2FtcGxlQW5zd2VycyB8fCBbXSkucmV2ZXJzZSgpO1xuXG4gIGlmIChwb2ludHMubGVuZ3RoID4gc2FtcGxlQW5zd2Vycy5sZW5ndGgpIHtcbiAgICBzYW1wbGVBbnN3ZXJzID0gdGltZXMocG9pbnRzLmxlbmd0aCAtIHNhbXBsZUFuc3dlcnMubGVuZ3RoKVxuICAgICAgLm1hcCgoKSA9PiBudWxsKVxuICAgICAgLmNvbmNhdChzYW1wbGVBbnN3ZXJzKTtcbiAgfVxuXG4gIGNvbnN0IHZhbHVlID0geyAuLi5wcm9wcy52YWx1ZSwgcG9pbnRzLCBzYW1wbGVBbnN3ZXJzIH07XG5cbiAgY29uc3Qgb25DaGFuZ2UgPSB2YWx1ZSA9PiB7XG4gICAgcHJvcHMub25DaGFuZ2Uoe1xuICAgICAgLi4udmFsdWUsXG4gICAgICBwb2ludHM6IEFycmF5LmZyb20odmFsdWUucG9pbnRzIHx8IFtdKS5yZXZlcnNlKCksXG4gICAgICBzYW1wbGVBbnN3ZXJzOiBBcnJheS5mcm9tKHZhbHVlLnNhbXBsZUFuc3dlcnMgfHwgW10pLnJldmVyc2UoKVxuICAgIH0pO1xuICB9O1xuXG4gIHJldHVybiA8U3R5bGVkUmF3QXV0aG9yaW5nIHZhbHVlPXt2YWx1ZX0gb25DaGFuZ2U9e29uQ2hhbmdlfSAvPjtcbn07XG5cblJldmVyc2UucHJvcFR5cGVzID0ge1xuICB2YWx1ZTogUnVicmljVHlwZSxcbiAgZ2V0SW5kZXg6IFByb3BUeXBlcy5mdW5jLFxuICBvbkNoYW5nZTogUHJvcFR5cGVzLmZ1bmNcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFJldmVyc2U7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBOzs7Ozs7Ozs7O0FBQ0EsSUFBTUEsR0FBRyxHQUFHLElBQUFDLGlCQUFBLEVBQU0sMEJBQU4sQ0FBWjs7QUFFQSxJQUFNQyxPQUFPLEdBQUcsU0FBVkEsT0FBVSxDQUFDQyxJQUFELEVBQU9DLFVBQVAsRUFBbUJDLFFBQW5CLEVBQWdDO0VBQzlDLElBQU1DLE1BQU0sR0FBR0MsS0FBSyxDQUFDQyxJQUFOLENBQVdMLElBQVgsQ0FBZjs7RUFDQSxxQkFBa0JHLE1BQU0sQ0FBQ0csTUFBUCxDQUFjTCxVQUFkLEVBQTBCLENBQTFCLENBQWxCO0VBQUE7RUFBQSxJQUFPTSxPQUFQOztFQUVBSixNQUFNLENBQUNHLE1BQVAsQ0FBY0osUUFBZCxFQUF3QixDQUF4QixFQUEyQkssT0FBM0I7RUFFQSxPQUFPSixNQUFQO0FBQ0QsQ0FQRDs7QUFTTyxJQUFNSyxVQUFVLEdBQUdDLHFCQUFBLENBQVVDLEtBQVYsQ0FBZ0I7RUFDeENDLFdBQVcsRUFBRUYscUJBQUEsQ0FBVUcsSUFEaUI7RUFFeENDLE1BQU0sRUFBRUoscUJBQUEsQ0FBVUssT0FBVixDQUFrQkwscUJBQUEsQ0FBVU0sTUFBNUIsQ0FGZ0M7RUFHeENDLGFBQWEsRUFBRVAscUJBQUEsQ0FBVUssT0FBVixDQUFrQkwscUJBQUEsQ0FBVU0sTUFBNUI7QUFIeUIsQ0FBaEIsQ0FBbkI7OztBQU1QLElBQU1FLFNBQVMsR0FBRyxJQUFBQyxrQkFBQSxFQUFX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
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/authoring.jsx"],"names":["log","reorder","list","startIndex","endIndex","result","Array","from","splice","removed","RubricType","PropTypes","shape","excludeZero","bool","points","arrayOf","string","sampleAnswers","MaxPoints","theme","formControl","minWidth","margin","spacing","unit","props","value","onChange","max","classes","e","target","map","v","checkSampleAnswer","sampleAnswer","PointConfig","pointConfig","row","display","width","position","editor","backgroundColor","palette","common","white","dragIndicator","paddingTop","color","grey","pointsLabel","paddingBottom","textTransform","sampleAnswersEditor","paddingLeft","pointMenu","right","content","showSampleAnswer","icon","onMenuChange","onSampleChange","RawAuthoring","destination","source","index","maxPoints","currentMax","length","concat","type","items","clickedItem","changeContent","className","excludeZeroEnabled","maxPointsEnabled","Number","isFinite","console","warn","rubricTitle","changeMaxPoints","excludeZeros","container","dragEnd","provided","droppableProps","innerRef","p","shouldRenderPoint","toString","configHolder","draggableProps","dragHandleProps","onPointMenuChange","placeholder","React","Component","object","isRequired","func","styles","borderWidth","borderStyle","borderColor","padding","StyledRawAuthoring","Reverse","reverse","propTypes","getIndex"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport OutlinedInput from '@material-ui/core/OutlinedInput';\nimport InputLabel from '@material-ui/core/InputLabel';\nimport Select from '@material-ui/core/Select';\nimport FormControl from '@material-ui/core/FormControl';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport times from 'lodash/times';\nimport Checkbox from '@material-ui/core/Checkbox';\nimport FormGroup from '@material-ui/core/FormGroup';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport grey from '@material-ui/core/colors/grey';\nimport Typography from '@material-ui/core/Typography';\nimport DragIndicator from '@material-ui/icons/DragIndicator';\nimport EditableHtml from '@pie-lib/editable-html';\nimport { DragDropContext, Droppable, Draggable } from 'react-beautiful-dnd';\nimport debug from 'debug';\nimport takeRight from 'lodash/takeRight';\nimport PointMenu from './point-menu';\n\nimport range from 'lodash/range';\nconst log = debug('pie-lib:rubric:authoring');\n\nconst reorder = (list, startIndex, endIndex) => {\n const result = Array.from(list);\n const [removed] = result.splice(startIndex, 1);\n\n result.splice(endIndex, 0, removed);\n\n return result;\n};\n\nexport const RubricType = PropTypes.shape({\n excludeZero: PropTypes.bool,\n points: PropTypes.arrayOf(PropTypes.string),\n sampleAnswers: PropTypes.arrayOf(PropTypes.string),\n});\n\nconst MaxPoints = withStyles((theme) => ({\n formControl: {\n minWidth: '120px',\n margin: theme.spacing.unit,\n },\n}))((props) => {\n const { value, onChange, max, classes } = props;\n\n return (\n <FormControl className={classes.formControl} variant=\"outlined\">\n <InputLabel width={100} htmlFor=\"...\">\n Max Points\n </InputLabel>\n <Select value={value} onChange={(e) => onChange(e.target.value)} input={<OutlinedInput labelWidth={80} />}>\n {range(1, max).map((v) => (\n <MenuItem key={`${v}`} value={v}>\n {v}\n </MenuItem>\n ))}\n </Select>\n </FormControl>\n );\n});\n\n// if the value is null or 'null', the Sample Answer input field for that point will not be dispalyed\n// if the value is '', the Sample Answer input field will be empty\nconst checkSampleAnswer = (sampleAnswer) => sampleAnswer === null || sampleAnswer === 'null';\n\nexport const PointConfig = withStyles((theme) => ({\n pointConfig: {},\n row: {\n display: 'flex',\n width: '100%',\n position: 'relative',\n },\n editor: {\n width: '100%',\n backgroundColor: `${theme.palette.common.white} !important`,\n },\n dragIndicator: {\n paddingTop: theme.spacing.unit,\n color: grey[500],\n },\n pointsLabel: {\n color: grey[500],\n paddingBottom: theme.spacing.unit,\n textTransform: 'uppercase',\n },\n sampleAnswersEditor: {\n paddingLeft: theme.spacing.unit * 3,\n },\n pointMenu: {\n position: 'absolute',\n right: 0,\n },\n}))((props) => {\n const { points, content, classes, sampleAnswer } = props;\n const pointsLabel = `${points} ${points <= 1 ? 'pt' : 'pts'}`;\n const showSampleAnswer = checkSampleAnswer(sampleAnswer);\n\n return (\n <div className={classes.pointConfig}>\n <Typography variant=\"overline\" className={classes.pointsLabel}>\n {pointsLabel}\n </Typography>\n\n <div className={classes.row}>\n <DragIndicator className={classes.dragIndicator} />\n <EditableHtml className={classes.editor} markup={content} onChange={props.onChange} />\n <PointMenu\n classes={{\n icon: classes.pointMenu,\n }}\n showSampleAnswer={showSampleAnswer}\n onChange={props.onMenuChange}\n />\n </div>\n\n {!showSampleAnswer && (\n <div className={classes.sampleAnswersEditor}>\n <Typography variant=\"overline\" className={classes.dragIndicator}>\n Sample Response\n </Typography>\n <EditableHtml className={classes.editor} markup={sampleAnswer} onChange={props.onSampleChange} />\n </div>\n )}\n </div>\n );\n});\n\nexport class RawAuthoring extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n value: RubricType,\n onChange: PropTypes.func,\n };\n\n static defaultProps = {};\n\n dragEnd = (result) => {\n if (!result.destination) {\n return;\n }\n\n const { value, onChange } = this.props;\n\n const points = reorder(value.points, result.source.index, result.destination.index);\n const sampleAnswers = reorder(value.sampleAnswers, result.source.index, result.destination.index);\n\n onChange({ ...value, points, sampleAnswers });\n };\n\n changeMaxPoints = (maxPoints) => {\n const { value, onChange } = this.props;\n const currentMax = value.points.length - 1;\n\n log('current', currentMax, 'new: ', maxPoints);\n\n let points, sampleAnswers;\n if (maxPoints > currentMax) {\n points = times(maxPoints - currentMax)\n .map(() => '')\n .concat(value.points);\n sampleAnswers = times(maxPoints - currentMax)\n .map(() => null)\n .concat(value.sampleAnswers);\n }\n\n if (maxPoints < currentMax) {\n log('less than');\n points = takeRight(value.points, maxPoints + 1);\n sampleAnswers = takeRight(value.sampleAnswers, maxPoints + 1);\n }\n\n if (points) {\n onChange({ ...value, points, sampleAnswers });\n }\n };\n\n changeContent = (index, content, type) => {\n // type could be 'points' or 'sampleAnswers'\n log(`changeModel[${type}]:`, index, content);\n\n if (type !== 'points' && type !== 'sampleAnswers') {\n return;\n }\n\n const { value, onChange } = this.props;\n const items = value[type] && Array.from(value[type]);\n\n items.splice(index, 1, content);\n log(`changeModel[${type}]:`, items);\n\n onChange({ ...value, [type]: items });\n };\n\n excludeZeros = () => {\n const { value, onChange } = this.props;\n\n onChange({ ...value, excludeZero: !value.excludeZero });\n };\n\n shouldRenderPoint = (index, value) => {\n if (!value.excludeZero) {\n return true;\n } else {\n if (index < value.points.length - 1) {\n return true;\n } else if (index === value.points.length - 1) {\n return false;\n }\n\n return true;\n }\n };\n\n onPointMenuChange = (index, clickedItem) => {\n if (clickedItem === 'sample') {\n const { value } = this.props;\n const sampleAnswers = Array.from(value.sampleAnswers || []);\n\n if (checkSampleAnswer(sampleAnswers[index])) {\n // an empty string will display an empty Sample Answer input field\n this.changeContent(index, '', 'sampleAnswers');\n } else {\n // when the content is null or 'null', the Sample Answer input field will not be displayed\n this.changeContent(index, null, 'sampleAnswers');\n }\n }\n };\n\n render() {\n const { classes, className, value } = this.props;\n let { excludeZeroEnabled = true, maxPointsEnabled = true } = value || {};\n\n if (value && Number.isFinite(value.maxPoints)) {\n // eslint-disable-next-line no-console\n console.warn('maxPoints is deprecated - remove from model');\n }\n\n return (\n <div className={classNames(classes.class, className)}>\n <Typography variant=\"h5\" className={classes.rubricTitle}>\n Rubric\n </Typography>\n <FormGroup row>\n {maxPointsEnabled && <MaxPoints max={10} value={value.points.length - 1} onChange={this.changeMaxPoints} />}\n {excludeZeroEnabled && (\n <FormControlLabel\n label=\"Exclude zeros\"\n control={<Checkbox checked={value.excludeZero} onChange={this.excludeZeros} />}\n />\n )}\n </FormGroup>\n\n <div className={classes.container}>\n <DragDropContext onDragEnd={this.dragEnd}>\n <Droppable droppableId=\"droppable\">\n {(provided) => (\n <div {...provided.droppableProps} ref={provided.innerRef}>\n {value.points.map(\n (p, index) =>\n this.shouldRenderPoint(index, value) && (\n <Draggable key={`${p.points}-${index}`} index={index} draggableId={index.toString()}>\n {(provided) => (\n <div\n className={classes.configHolder}\n ref={provided.innerRef}\n {...provided.draggableProps}\n {...provided.dragHandleProps}\n >\n <PointConfig\n points={value.points.length - 1 - index}\n content={p}\n sampleAnswer={value.sampleAnswers && value.sampleAnswers[index]}\n onChange={(content) => this.changeContent(index, content, 'points')}\n onSampleChange={(content) => this.changeContent(index, content, 'sampleAnswers')}\n onMenuChange={(clickedItem) => this.onPointMenuChange(index, clickedItem)}\n />\n </div>\n )}\n </Draggable>\n ),\n )}\n {provided.placeholder}\n </div>\n )}\n </Droppable>\n </DragDropContext>\n </div>\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n container: {\n backgroundColor: grey[200],\n borderWidth: 1,\n borderStyle: 'solid',\n borderColor: grey[300],\n padding: theme.spacing.unit * 2,\n margin: theme.spacing.unit,\n },\n configHolder: {\n paddingTop: theme.spacing.unit,\n paddingBottom: theme.spacing.unit,\n },\n rubricTitle: {\n paddingLeft: theme.spacing.unit,\n margin: theme.spacing.unit,\n },\n});\n\nconst StyledRawAuthoring = withStyles(styles)(RawAuthoring);\n\nconst Reverse = (props) => {\n const points = Array.from(props.value.points || []).reverse();\n let sampleAnswers = Array.from(props.value.sampleAnswers || []).reverse();\n\n if (points.length > sampleAnswers.length) {\n sampleAnswers = times(points.length - sampleAnswers.length)\n .map(() => null)\n .concat(sampleAnswers);\n }\n\n const value = { ...props.value, points, sampleAnswers };\n\n const onChange = (value) => {\n props.onChange({\n ...value,\n points: Array.from(value.points || []).reverse(),\n sampleAnswers: Array.from(value.sampleAnswers || []).reverse(),\n });\n };\n\n return <StyledRawAuthoring value={value} onChange={onChange} />;\n};\n\nReverse.propTypes = {\n value: RubricType,\n getIndex: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default Reverse;\n"],"file":"authoring.js"}
1
+ {"version":3,"file":"authoring.js","names":["log","debug","reorder","list","startIndex","endIndex","result","Array","from","splice","removed","RubricType","PropTypes","shape","excludeZero","bool","points","arrayOf","string","sampleAnswers","MaxPoints","withStyles","theme","formControl","minWidth","margin","spacing","unit","props","value","onChange","max","classes","e","target","range","map","v","checkSampleAnswer","sampleAnswer","PointConfig","pointConfig","row","display","width","position","editor","backgroundColor","dragIndicator","paddingTop","color","grey","pointsLabel","paddingBottom","textTransform","sampleAnswersEditor","paddingLeft","pointMenu","right","content","showSampleAnswer","icon","onMenuChange","onSampleChange","RawAuthoring","destination","source","index","maxPoints","currentMax","length","times","concat","takeRight","type","items","clickedItem","changeContent","className","Number","isFinite","console","warn","classNames","rubricTitle","changeMaxPoints","excludeZeros","container","dragEnd","provided","droppableProps","innerRef","p","shouldRenderPoint","toString","configHolder","draggableProps","dragHandleProps","onPointMenuChange","placeholder","React","Component","object","isRequired","func","styles","borderWidth","borderStyle","borderColor","padding","StyledRawAuthoring","Reverse","reverse","propTypes","getIndex"],"sources":["../src/authoring.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport OutlinedInput from '@material-ui/core/OutlinedInput';\nimport InputLabel from '@material-ui/core/InputLabel';\nimport Select from '@material-ui/core/Select';\nimport FormControl from '@material-ui/core/FormControl';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport times from 'lodash/times';\nimport Checkbox from '@material-ui/core/Checkbox';\nimport FormGroup from '@material-ui/core/FormGroup';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport grey from '@material-ui/core/colors/grey';\nimport Typography from '@material-ui/core/Typography';\nimport DragIndicator from '@material-ui/icons/DragIndicator';\nimport EditableHtml from '@pie-lib/editable-html';\nimport { DragDropContext, Droppable, Draggable } from 'react-beautiful-dnd';\nimport debug from 'debug';\nimport takeRight from 'lodash/takeRight';\nimport PointMenu from './point-menu';\n\nimport range from 'lodash/range';\nconst log = debug('pie-lib:rubric:authoring');\n\nconst reorder = (list, startIndex, endIndex) => {\n const result = Array.from(list);\n const [removed] = result.splice(startIndex, 1);\n\n result.splice(endIndex, 0, removed);\n\n return result;\n};\n\nexport const RubricType = PropTypes.shape({\n excludeZero: PropTypes.bool,\n points: PropTypes.arrayOf(PropTypes.string),\n sampleAnswers: PropTypes.arrayOf(PropTypes.string)\n});\n\nconst MaxPoints = withStyles(theme => ({\n formControl: {\n minWidth: '120px',\n margin: theme.spacing.unit\n }\n}))(props => {\n const { value, onChange, max, classes } = props;\n\n return (\n <FormControl className={classes.formControl} variant=\"outlined\">\n <InputLabel width={100} htmlFor=\"...\">\n Max Points\n </InputLabel>\n <Select\n value={value}\n onChange={e => onChange(e.target.value)}\n input={<OutlinedInput labelWidth={80} />}\n >\n {range(1, max).map(v => (\n <MenuItem key={`${v}`} value={v}>\n {v}\n </MenuItem>\n ))}\n </Select>\n </FormControl>\n );\n});\n\n// if the value is null or 'null', the Sample Answer input field for that point will not be dispalyed\n// if the value is '', the Sample Answer input field will be empty\nconst checkSampleAnswer = sampleAnswer => sampleAnswer === null || sampleAnswer === 'null';\n\nexport const PointConfig = withStyles(theme => ({\n pointConfig: {},\n row: {\n display: 'flex',\n width: '100%',\n position: 'relative'\n },\n editor: {\n width: '100%',\n backgroundColor: 'white !important'\n },\n dragIndicator: {\n paddingTop: theme.spacing.unit,\n color: grey[500]\n },\n pointsLabel: {\n color: grey[500],\n paddingBottom: theme.spacing.unit,\n textTransform: 'uppercase'\n },\n sampleAnswersEditor: {\n paddingLeft: theme.spacing.unit * 3\n },\n pointMenu: {\n position: 'absolute',\n right: 0\n }\n}))(props => {\n const { points, content, classes, sampleAnswer } = props;\n const pointsLabel = `${points} ${points <= 1 ? 'pt' : 'pts'}`;\n const showSampleAnswer = checkSampleAnswer(sampleAnswer);\n\n return (\n <div className={classes.pointConfig}>\n <Typography variant=\"overline\" className={classes.pointsLabel}>\n {pointsLabel}\n </Typography>\n <div className={classes.row}>\n <DragIndicator className={classes.dragIndicator} />\n <EditableHtml className={classes.editor} markup={content} onChange={props.onChange} />\n <PointMenu\n classes={{\n icon: classes.pointMenu\n }}\n showSampleAnswer={showSampleAnswer}\n onChange={props.onMenuChange}\n />\n </div>\n {!showSampleAnswer && (\n <div className={classes.sampleAnswersEditor}>\n <Typography variant=\"overline\" className={classes.dragIndicator}>\n Sample Response\n </Typography>\n <EditableHtml\n className={classes.editor}\n markup={sampleAnswer}\n onChange={props.onSampleChange}\n />\n </div>\n )}\n </div>\n );\n});\n\nexport class RawAuthoring extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n value: RubricType,\n onChange: PropTypes.func\n };\n\n static defaultProps = {};\n\n dragEnd = result => {\n if (!result.destination) {\n return;\n }\n\n const { value, onChange } = this.props;\n\n const points = reorder(value.points, result.source.index, result.destination.index);\n const sampleAnswers = reorder(\n value.sampleAnswers,\n result.source.index,\n result.destination.index\n );\n\n onChange({ ...value, points, sampleAnswers });\n };\n\n changeMaxPoints = maxPoints => {\n const { value, onChange } = this.props;\n const currentMax = value.points.length - 1;\n\n log('current', currentMax, 'new: ', maxPoints);\n\n let points, sampleAnswers;\n if (maxPoints > currentMax) {\n points = times(maxPoints - currentMax)\n .map(() => '')\n .concat(value.points);\n sampleAnswers = times(maxPoints - currentMax)\n .map(() => null)\n .concat(value.sampleAnswers);\n }\n\n if (maxPoints < currentMax) {\n log('less than');\n points = takeRight(value.points, maxPoints + 1);\n sampleAnswers = takeRight(value.sampleAnswers, maxPoints + 1);\n }\n\n if (points) {\n onChange({ ...value, points, sampleAnswers });\n }\n };\n\n changeContent = (index, content, type) => {\n // type could be 'points' or 'sampleAnswers'\n log(`changeModel[${type}]:`, index, content);\n\n if (type !== 'points' && type !== 'sampleAnswers') {\n return;\n }\n\n const { value, onChange } = this.props;\n const items = value[type] && Array.from(value[type]);\n\n items.splice(index, 1, content);\n log(`changeModel[${type}]:`, items);\n\n onChange({ ...value, [type]: items });\n };\n\n excludeZeros = () => {\n const { value, onChange } = this.props;\n\n onChange({ ...value, excludeZero: !value.excludeZero });\n };\n\n shouldRenderPoint = (index, value) => {\n if (!value.excludeZero) {\n return true;\n } else {\n if (index < value.points.length - 1) {\n return true;\n } else if (index === value.points.length - 1) {\n return false;\n }\n\n return true;\n }\n };\n\n onPointMenuChange = (index, clickedItem) => {\n if (clickedItem === 'sample') {\n const { value } = this.props;\n const sampleAnswers = Array.from(value.sampleAnswers || []);\n\n if (checkSampleAnswer(sampleAnswers[index])) {\n // an empty string will display an empty Sample Answer input field\n this.changeContent(index, '', 'sampleAnswers');\n } else {\n // when the content is null or 'null', the Sample Answer input field will not be displayed\n this.changeContent(index, null, 'sampleAnswers');\n }\n }\n };\n\n render() {\n const { classes, className, value } = this.props;\n\n if (value && Number.isFinite(value.maxPoints)) {\n // eslint-disable-next-line no-console\n console.warn('maxPoints is deprecated - remove from model');\n }\n\n return (\n <div className={classNames(classes.class, className)}>\n <Typography variant=\"h5\" className={classes.rubricTitle}>\n Rubric\n </Typography>\n <FormGroup row>\n <MaxPoints max={10} value={value.points.length - 1} onChange={this.changeMaxPoints} />\n <FormControlLabel\n label=\"Exclude zeros\"\n control={<Checkbox checked={value.excludeZero} onChange={this.excludeZeros} />}\n />\n </FormGroup>\n <div className={classes.container}>\n <DragDropContext onDragEnd={this.dragEnd}>\n <Droppable droppableId=\"droppable\">\n {provided => (\n <div {...provided.droppableProps} ref={provided.innerRef}>\n {value.points.map(\n (p, index) =>\n this.shouldRenderPoint(index, value) && (\n <Draggable\n key={`${p.points}-${index}`}\n index={index}\n draggableId={index.toString()}\n >\n {provided => (\n <div\n className={classes.configHolder}\n ref={provided.innerRef}\n {...provided.draggableProps}\n {...provided.dragHandleProps}\n >\n <PointConfig\n points={value.points.length - 1 - index}\n content={p}\n sampleAnswer={value.sampleAnswers && value.sampleAnswers[index]}\n onChange={content => this.changeContent(index, content, 'points')}\n onSampleChange={content =>\n this.changeContent(index, content, 'sampleAnswers')\n }\n onMenuChange={clickedItem =>\n this.onPointMenuChange(index, clickedItem)\n }\n />\n </div>\n )}\n </Draggable>\n )\n )}\n {provided.placeholder}\n </div>\n )}\n </Droppable>\n </DragDropContext>\n </div>\n </div>\n );\n }\n}\n\nconst styles = theme => ({\n container: {\n backgroundColor: grey[200],\n borderWidth: 1,\n borderStyle: 'solid',\n borderColor: grey[300],\n padding: theme.spacing.unit * 2,\n margin: theme.spacing.unit\n },\n configHolder: {\n paddingTop: theme.spacing.unit,\n paddingBottom: theme.spacing.unit\n },\n rubricTitle: {\n paddingLeft: theme.spacing.unit,\n margin: theme.spacing.unit\n }\n});\n\nconst StyledRawAuthoring = withStyles(styles)(RawAuthoring);\n\nconst Reverse = props => {\n const points = Array.from(props.value.points || []).reverse();\n let sampleAnswers = Array.from(props.value.sampleAnswers || []).reverse();\n\n if (points.length > sampleAnswers.length) {\n sampleAnswers = times(points.length - sampleAnswers.length)\n .map(() => null)\n .concat(sampleAnswers);\n }\n\n const value = { ...props.value, points, sampleAnswers };\n\n const onChange = value => {\n props.onChange({\n ...value,\n points: Array.from(value.points || []).reverse(),\n sampleAnswers: Array.from(value.sampleAnswers || []).reverse()\n });\n };\n\n return <StyledRawAuthoring value={value} onChange={onChange} />;\n};\n\nReverse.propTypes = {\n value: RubricType,\n getIndex: PropTypes.func,\n onChange: PropTypes.func\n};\n\nexport default Reverse;\n"],"mappings":"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"}
package/lib/index.js CHANGED
@@ -20,4 +20,4 @@ var RUBRIC_TYPES = {
20
20
  MULTI_TRAIT_RUBRIC: 'multiTraitRubric'
21
21
  };
22
22
  exports.RUBRIC_TYPES = RUBRIC_TYPES;
23
- //# sourceMappingURL=index.js.map
23
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSVUJSSUNfVFlQRVMiLCJTSU1QTEVfUlVCUklDIiwiTVVMVElfVFJBSVRfUlVCUklDIl0sInNvdXJjZXMiOlsiLi4vc3JjL2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBBdXRob3JpbmcgZnJvbSAnLi9hdXRob3JpbmcnO1xuXG5jb25zdCBSVUJSSUNfVFlQRVMgPSB7XG4gIFNJTVBMRV9SVUJSSUM6ICdzaW1wbGVSdWJyaWMnLFxuICBNVUxUSV9UUkFJVF9SVUJSSUM6ICdtdWx0aVRyYWl0UnVicmljJ1xufTtcblxuZXhwb3J0IHsgQXV0aG9yaW5nLCBSVUJSSUNfVFlQRVMgfTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBRUEsSUFBTUEsWUFBWSxHQUFHO0VBQ25CQyxhQUFhLEVBQUUsY0FESTtFQUVuQkMsa0JBQWtCLEVBQUU7QUFGRCxDQUFyQiJ9
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.js"],"names":["RUBRIC_TYPES","SIMPLE_RUBRIC","MULTI_TRAIT_RUBRIC"],"mappings":";;;;;;;;;;;;;;;AAAA;;AAEA,IAAMA,YAAY,GAAG;AACnBC,EAAAA,aAAa,EAAE,cADI;AAEnBC,EAAAA,kBAAkB,EAAE;AAFD,CAArB","sourcesContent":["import Authoring from './authoring';\n\nconst RUBRIC_TYPES = {\n SIMPLE_RUBRIC: 'simpleRubric',\n MULTI_TRAIT_RUBRIC: 'multiTraitRubric',\n};\n\nexport { Authoring, RUBRIC_TYPES };\n"],"file":"index.js"}
1
+ {"version":3,"file":"index.js","names":["RUBRIC_TYPES","SIMPLE_RUBRIC","MULTI_TRAIT_RUBRIC"],"sources":["../src/index.js"],"sourcesContent":["import Authoring from './authoring';\n\nconst RUBRIC_TYPES = {\n SIMPLE_RUBRIC: 'simpleRubric',\n MULTI_TRAIT_RUBRIC: 'multiTraitRubric'\n};\n\nexport { Authoring, RUBRIC_TYPES };\n"],"mappings":";;;;;;;;;;;;;;;AAAA;;AAEA,IAAMA,YAAY,GAAG;EACnBC,aAAa,EAAE,cADI;EAEnBC,kBAAkB,EAAE;AAFD,CAArB"}
package/lib/point-menu.js CHANGED
@@ -169,4 +169,4 @@ exports["default"] = PointMenu;
169
169
  (0, _defineProperty2["default"])(PointMenu, "defaultProps", {
170
170
  classes: {}
171
171
  });
172
- //# sourceMappingURL=point-menu.js.map
172
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJJY29uTWVudSIsInByb3BzIiwiZXZlbnQiLCJzZXRTdGF0ZSIsIm9wZW4iLCJhbmNob3JFbCIsImN1cnJlbnRUYXJnZXQiLCJzdGF0ZSIsInVuZGVmaW5lZCIsIm9wdHMiLCJvbkNsaWNrIiwiY2xhc3NlcyIsImtleXMiLCJPYmplY3QiLCJoYW5kbGVNZW51Q2xpY2siLCJrZXkiLCJoYW5kbGVSZXF1ZXN0Q2xvc2UiLCJpY29uQ29sb3IiLCJoYW5kbGVDbGljayIsImljb24iLCJ0cmFuc2Zvcm0iLCJ2ZXJ0aWNhbCIsImhvcml6b250YWwiLCJtYXAiLCJrIiwiaW5kZXgiLCJSZWFjdCIsIkNvbXBvbmVudCIsIlByb3BUeXBlcyIsIm9iamVjdCIsImZ1bmMiLCJpc1JlcXVpcmVkIiwiUG9pbnRNZW51Iiwib25DaGFuZ2UiLCJzaG93U2FtcGxlQW5zd2VyIiwic2FtcGxlVGV4dCIsInNhbXBsZSIsImJvb2wiXSwic291cmNlcyI6WyIuLi9zcmMvcG9pbnQtbWVudS5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IE1lbnUgZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvTWVudSc7XG5pbXBvcnQgTWVudUl0ZW0gZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvTWVudUl0ZW0nO1xuaW1wb3J0IE1vcmVWZXJ0SWNvbiBmcm9tICdAbWF0ZXJpYWwtdWkvaWNvbnMvTW9yZVZlcnQnO1xuaW1wb3J0IE1vcmVIb3Jpekljb24gZnJvbSAnQG1hdGVyaWFsLXVpL2ljb25zL01vcmVIb3Jpeic7XG5pbXBvcnQgSWNvbkJ1dHRvbiBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9JY29uQnV0dG9uJztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuXG5leHBvcnQgY2xhc3MgSWNvbk1lbnUgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIG9wdHM6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgb25DbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBjbGFzc2VzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWRcbiAgfTtcblxuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgIHN1cGVyKHByb3BzKTtcbiAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgYW5jaG9yRWw6IHVuZGVmaW5lZCxcbiAgICAgIG9wZW46IGZhbHNlXG4gICAgfTtcbiAgfVxuXG4gIGhhbmRsZUNsaWNrID0gZXZlbnQgPT4gdGhpcy5zZXRTdGF0ZSh7IG9wZW46IHRydWUsIGFuY2hvckVsOiBldmVudC5jdXJyZW50VGFyZ2V0IH0pO1xuXG4gIGhhbmRsZVJlcXVlc3RDbG9zZSA9ICgpID0+IHRoaXMuc2V0U3RhdGUoeyBvcGVuOiBmYWxzZSB9KTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgeyBvcHRzLCBvbkNsaWNrLCBjbGFzc2VzIH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHsgb3BlbiwgYW5jaG9yRWwgfSA9IHRoaXMuc3RhdGU7XG4gICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKG9wdHMpIHx8IFtdO1xuXG4gICAgY29uc3QgaGFuZGxlTWVudUNsaWNrID0ga2V5ID0+ICgpID0+IHtcbiAgICAgIG9uQ2xpY2soa2V5KTtcbiAgICAgIHRoaXMuaGFuZGxlUmVxdWVzdENsb3NlKCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGljb25Db2xvciA9IG9wZW4gPyAnaW5oZXJpdCcgOiAnZGlzYWJsZWQnO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXY+XG4gICAgICAgIDxkaXYgb25DbGljaz17dGhpcy5oYW5kbGVDbGlja30+XG4gICAgICAgICAgPEljb25CdXR0b24gY2xhc3NOYW1lPXtjbGFzc2VzLmljb259PlxuICAgICAgICAgICAge29wZW4gPyA8TW9yZVZlcnRJY29uIGNvbG9yPXtpY29uQ29sb3J9IC8+IDogPE1vcmVIb3Jpekljb24gY29sb3I9e2ljb25Db2xvcn0gLz59XG4gICAgICAgICAgPC9JY29uQnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPE1lbnVcbiAgICAgICAgICBpZD1cInBvaW50LW1lbnVcIlxuICAgICAgICAgIGFuY2hvckVsPXthbmNob3JFbH1cbiAgICAgICAgICBvcGVuPXtvcGVufVxuICAgICAgICAgIG9uQ2xvc2U9e3RoaXMuaGFuZGxlUmVxdWVzdENsb3NlfVxuICAgICAgICAgIHN0eWxlPXt7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZSgtMTVweCwgLTE1cHgpJyB9fVxuICAgICAgICAgIHRyYW5zZm9ybU9yaWdpbj17e1xuICAgICAgICAgICAgdmVydGljYWw6ICdjZW50ZXInLFxuICAgICAgICAgICAgaG9yaXpvbnRhbDogJ3JpZ2h0J1xuICAgICAgICAgIH19XG4gICAgICAgID5cbiAgICAgICAgICB7a2V5cy5tYXAoKGssIGluZGV4KSA9PiAoXG4gICAgICAgICAgICA8TWVudUl0ZW0ga2V5PXtpbmRleH0gb25DbGljaz17aGFuZGxlTWVudUNsaWNrKGspfT5cbiAgICAgICAgICAgICAge29wdHNba119XG4gICAgICAgICAgICA8L01lbnVJdGVtPlxuICAgICAgICAgICkpfVxuICAgICAgICA8L01lbnU+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFBvaW50TWVudSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgb25DaGFuZ2U6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgY2xhc3NlczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIHNob3dTYW1wbGVBbnN3ZXI6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWRcbiAgfTtcblxuICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgIGNsYXNzZXM6IHt9XG4gIH07XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHsgb25DaGFuZ2UsIGNsYXNzZXMsIHNob3dTYW1wbGVBbnN3ZXIgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3Qgc2FtcGxlVGV4dCA9IHNob3dTYW1wbGVBbnN3ZXIgPyAnUHJvdmlkZSBTYW1wbGUgUmVzcG9uc2UnIDogJ1JlbW92ZSBTYW1wbGUgUmVzcG9uc2UnO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxJY29uTWVudVxuICAgICAgICBvbkNsaWNrPXtrZXkgPT4gb25DaGFuZ2Uoa2V5KX1cbiAgICAgICAgb3B0cz17e1xuICAgICAgICAgIHNhbXBsZTogc2FtcGxlVGV4dFxuICAgICAgICB9fVxuICAgICAgICBjbGFzc2VzPXtjbGFzc2VzfVxuICAgICAgLz5cbiAgICApO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7OztJQUVhQSxROzs7OztFQU9YLGtCQUFZQyxLQUFaLEVBQW1CO0lBQUE7O0lBQUE7SUFDakIsMEJBQU1BLEtBQU47SUFEaUIsZ0dBUUwsVUFBQUMsS0FBSztNQUFBLE9BQUksTUFBS0MsUUFBTCxDQUFjO1FBQUVDLElBQUksRUFBRSxJQUFSO1FBQWNDLFFBQVEsRUFBRUgsS0FBSyxDQUFDSTtNQUE5QixDQUFkLENBQUo7SUFBQSxDQVJBO0lBQUEsdUdBVUU7TUFBQSxPQUFNLE1BQUtILFFBQUwsQ0FBYztRQUFFQyxJQUFJLEVBQUU7TUFBUixDQUFkLENBQU47SUFBQSxDQVZGO0lBRWpCLE1BQUtHLEtBQUwsR0FBYTtNQUNYRixRQUFRLEVBQUVHLFNBREM7TUFFWEosSUFBSSxFQUFFO0lBRkssQ0FBYjtJQUZpQjtFQU1sQjs7OztXQU1ELGtCQUFTO01BQUE7O01BQ1Asa0JBQW1DLEtBQUtILEtBQXhDO01BQUEsSUFBUVEsSUFBUixlQUFRQSxJQUFSO01BQUEsSUFBY0MsT0FBZCxlQUFjQSxPQUFkO01BQUEsSUFBdUJDLE9BQXZCLGVBQXVCQSxPQUF2QjtNQUNB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
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/point-menu.jsx"],"names":["IconMenu","props","event","setState","open","anchorEl","currentTarget","state","undefined","opts","onClick","classes","keys","Object","handleMenuClick","key","handleRequestClose","iconColor","handleClick","icon","transform","vertical","horizontal","map","k","index","React","Component","PropTypes","object","func","isRequired","PointMenu","onChange","showSampleAnswer","sampleText","sample","bool"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;IAEaA,Q;;;;;AAOX,oBAAYC,KAAZ,EAAmB;AAAA;;AAAA;AACjB,8BAAMA,KAAN;AADiB,oGAQL,UAACC,KAAD;AAAA,aAAW,MAAKC,QAAL,CAAc;AAAEC,QAAAA,IAAI,EAAE,IAAR;AAAcC,QAAAA,QAAQ,EAAEH,KAAK,CAACI;AAA9B,OAAd,CAAX;AAAA,KARK;AAAA,2GAUE;AAAA,aAAM,MAAKH,QAAL,CAAc;AAAEC,QAAAA,IAAI,EAAE;AAAR,OAAd,CAAN;AAAA,KAVF;AAEjB,UAAKG,KAAL,GAAa;AACXF,MAAAA,QAAQ,EAAEG,SADC;AAEXJ,MAAAA,IAAI,EAAE;AAFK,KAAb;AAFiB;AAMlB;;;;WAMD,kBAAS;AAAA;;AACP,wBAAmC,KAAKH,KAAxC;AAAA,UAAQQ,IAAR,eAAQA,IAAR;AAAA,UAAcC,OAAd,eAAcA,OAAd;AAAA,UAAuBC,OAAvB,eAAuBA,OAAvB;AACA,wBAA2B,KAAKJ,KAAhC;AAAA,UAAQH,IAAR,eAAQA,IAAR;AAAA,UAAcC,QAAd,eAAcA,QAAd;AACA,UAAMO,IAAI,GAAGC,MAAM,CAACD,IAAP,CAAYH,IAAZ,KAAqB,EAAlC;;AAEA,UAAMK,eAAe,GAAG,SAAlBA,eAAkB,CAACC,GAAD;AAAA,eAAS,YAAM;AACrCL,UAAAA,OAAO,CAACK,GAAD,CAAP;;AACA,UAAA,MAAI,CAACC,kBAAL;AACD,SAHuB;AAAA,OAAxB;;AAKA,UAAMC,SAAS,GAAGb,IAAI,GAAG,SAAH,GAAe,UAArC;AAEA,0BACE,0DACE;AAAK,QAAA,OAAO,EAAE,KAAKc;AAAnB,sBACE,gCAAC,sBAAD;AAAY,QAAA,SAAS,EAAEP,OAAO,CAACQ;AAA/B,SACGf,IAAI,gBAAG,gCAAC,oBAAD;AAAc,QAAA,KAAK,EAAEa;AAArB,QAAH,gBAAwC,gCAAC,qBAAD;AAAe,QAAA,KAAK,EAAEA;AAAtB,QAD/C,CADF,CADF,eAME,gCAAC,gBAAD;AACE,QAAA,EAAE,EAAC,YADL;AAEE,QAAA,QAAQ,EAAEZ,QAFZ;AAGE,QAAA,IAAI,EAAED,IAHR;AAIE,QAAA,OAAO,EAAE,KAAKY,kBAJhB;AAKE,QAAA,KAAK,EAAE;AAAEI,UAAAA,SAAS,EAAE;AAAb,SALT;AAME,QAAA,eAAe,EAAE;AACfC,UAAAA,QAAQ,EAAE,QADK;AAEfC,UAAAA,UAAU,EAAE;AAFG;AANnB,SAWGV,IAAI,CAACW,GAAL,CAAS,UAACC,CAAD,EAAIC,KAAJ;AAAA,4BACR,gCAAC,oBAAD;AAAU,UAAA,GAAG,EAAEA,KAAf;AAAsB,UAAA,OAAO,EAAEX,eAAe,CAACU,CAAD;AAA9C,WACGf,IAAI,CAACe,CAAD,CADP,CADQ;AAAA,OAAT,CAXH,CANF,CADF;AA0BD;;;EAzD2BE,kBAAMC,S;;;iCAAvB3B,Q,eACQ;AACjBS,EAAAA,IAAI,EAAEmB,sBAAUC,MADC;AAEjBnB,EAAAA,OAAO,EAAEkB,sBAAUE,IAAV,CAAeC,UAFP;AAGjBpB,EAAAA,OAAO,EAAEiB,sBAAUC,MAAV,CAAiBE;AAHT,C;;IA2DAC,S;;;;;;;;;;;;WAWnB,kBAAS;AACP,yBAAgD,KAAK/B,KAArD;AAAA,UAAQgC,QAAR,gBAAQA,QAAR;AAAA,UAAkBtB,OAAlB,gBAAkBA,OAAlB;AAAA,UAA2BuB,gBAA3B,gBAA2BA,gBAA3B;AACA,UAAMC,UAAU,GAAGD,gBAAgB,GAAG,yBAAH,GAA+B,wBAAlE;AAEA,0BACE,gCAAC,QAAD;AACE,QAAA,OAAO,EAAE,iBAACnB,GAAD;AAAA,iBAASkB,QAAQ,CAAClB,GAAD,CAAjB;AAAA,SADX;AAEE,QAAA,IAAI,EAAE;AACJqB,UAAAA,MAAM,EAAED;AADJ,SAFR;AAKE,QAAA,OAAO,EAAExB;AALX,QADF;AASD;;;EAxBoCe,kBAAMC,S;;;iCAAxBK,S,eACA;AACjBC,EAAAA,QAAQ,EAAEL,sBAAUE,IAAV,CAAeC,UADR;AAEjBpB,EAAAA,OAAO,EAAEiB,sBAAUC,MAAV,CAAiBE,UAFT;AAGjBG,EAAAA,gBAAgB,EAAEN,sBAAUS,IAAV,CAAeN;AAHhB,C;iCADAC,S,kBAOG;AACpBrB,EAAAA,OAAO,EAAE;AADW,C","sourcesContent":["import Menu from '@material-ui/core/Menu';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport MoreVertIcon from '@material-ui/icons/MoreVert';\nimport MoreHorizIcon from '@material-ui/icons/MoreHoriz';\nimport IconButton from '@material-ui/core/IconButton';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nexport class IconMenu extends React.Component {\n static propTypes = {\n opts: PropTypes.object,\n onClick: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n };\n\n constructor(props) {\n super(props);\n this.state = {\n anchorEl: undefined,\n open: false,\n };\n }\n\n handleClick = (event) => this.setState({ open: true, anchorEl: event.currentTarget });\n\n handleRequestClose = () => this.setState({ open: false });\n\n render() {\n const { opts, onClick, classes } = this.props;\n const { open, anchorEl } = this.state;\n const keys = Object.keys(opts) || [];\n\n const handleMenuClick = (key) => () => {\n onClick(key);\n this.handleRequestClose();\n };\n\n const iconColor = open ? 'inherit' : 'disabled';\n\n return (\n <div>\n <div onClick={this.handleClick}>\n <IconButton className={classes.icon}>\n {open ? <MoreVertIcon color={iconColor} /> : <MoreHorizIcon color={iconColor} />}\n </IconButton>\n </div>\n <Menu\n id=\"point-menu\"\n anchorEl={anchorEl}\n open={open}\n onClose={this.handleRequestClose}\n style={{ transform: 'translate(-15px, -15px)' }}\n transformOrigin={{\n vertical: 'center',\n horizontal: 'right',\n }}\n >\n {keys.map((k, index) => (\n <MenuItem key={index} onClick={handleMenuClick(k)}>\n {opts[k]}\n </MenuItem>\n ))}\n </Menu>\n </div>\n );\n }\n}\n\nexport default class PointMenu extends React.Component {\n static propTypes = {\n onChange: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n showSampleAnswer: PropTypes.bool.isRequired,\n };\n\n static defaultProps = {\n classes: {},\n };\n\n render() {\n const { onChange, classes, showSampleAnswer } = this.props;\n const sampleText = showSampleAnswer ? 'Provide Sample Response' : 'Remove Sample Response';\n\n return (\n <IconMenu\n onClick={(key) => onChange(key)}\n opts={{\n sample: sampleText,\n }}\n classes={classes}\n />\n );\n }\n}\n"],"file":"point-menu.js"}
1
+ {"version":3,"file":"point-menu.js","names":["IconMenu","props","event","setState","open","anchorEl","currentTarget","state","undefined","opts","onClick","classes","keys","Object","handleMenuClick","key","handleRequestClose","iconColor","handleClick","icon","transform","vertical","horizontal","map","k","index","React","Component","PropTypes","object","func","isRequired","PointMenu","onChange","showSampleAnswer","sampleText","sample","bool"],"sources":["../src/point-menu.jsx"],"sourcesContent":["import Menu from '@material-ui/core/Menu';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport MoreVertIcon from '@material-ui/icons/MoreVert';\nimport MoreHorizIcon from '@material-ui/icons/MoreHoriz';\nimport IconButton from '@material-ui/core/IconButton';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nexport class IconMenu extends React.Component {\n static propTypes = {\n opts: PropTypes.object,\n onClick: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired\n };\n\n constructor(props) {\n super(props);\n this.state = {\n anchorEl: undefined,\n open: false\n };\n }\n\n handleClick = event => this.setState({ open: true, anchorEl: event.currentTarget });\n\n handleRequestClose = () => this.setState({ open: false });\n\n render() {\n const { opts, onClick, classes } = this.props;\n const { open, anchorEl } = this.state;\n const keys = Object.keys(opts) || [];\n\n const handleMenuClick = key => () => {\n onClick(key);\n this.handleRequestClose();\n };\n\n const iconColor = open ? 'inherit' : 'disabled';\n\n return (\n <div>\n <div onClick={this.handleClick}>\n <IconButton className={classes.icon}>\n {open ? <MoreVertIcon color={iconColor} /> : <MoreHorizIcon color={iconColor} />}\n </IconButton>\n </div>\n <Menu\n id=\"point-menu\"\n anchorEl={anchorEl}\n open={open}\n onClose={this.handleRequestClose}\n style={{ transform: 'translate(-15px, -15px)' }}\n transformOrigin={{\n vertical: 'center',\n horizontal: 'right'\n }}\n >\n {keys.map((k, index) => (\n <MenuItem key={index} onClick={handleMenuClick(k)}>\n {opts[k]}\n </MenuItem>\n ))}\n </Menu>\n </div>\n );\n }\n}\n\nexport default class PointMenu extends React.Component {\n static propTypes = {\n onChange: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n showSampleAnswer: PropTypes.bool.isRequired\n };\n\n static defaultProps = {\n classes: {}\n };\n\n render() {\n const { onChange, classes, showSampleAnswer } = this.props;\n const sampleText = showSampleAnswer ? 'Provide Sample Response' : 'Remove Sample Response';\n\n return (\n <IconMenu\n onClick={key => onChange(key)}\n opts={{\n sample: sampleText\n }}\n classes={classes}\n />\n );\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;IAEaA,Q;;;;;EAOX,kBAAYC,KAAZ,EAAmB;IAAA;;IAAA;IACjB,0BAAMA,KAAN;IADiB,gGAQL,UAAAC,KAAK;MAAA,OAAI,MAAKC,QAAL,CAAc;QAAEC,IAAI,EAAE,IAAR;QAAcC,QAAQ,EAAEH,KAAK,CAACI;MAA9B,CAAd,CAAJ;IAAA,CARA;IAAA,uGAUE;MAAA,OAAM,MAAKH,QAAL,CAAc;QAAEC,IAAI,EAAE;MAAR,CAAd,CAAN;IAAA,CAVF;IAEjB,MAAKG,KAAL,GAAa;MACXF,QAAQ,EAAEG,SADC;MAEXJ,IAAI,EAAE;IAFK,CAAb;IAFiB;EAMlB;;;;WAMD,kBAAS;MAAA;;MACP,kBAAmC,KAAKH,KAAxC;MAAA,IAAQQ,IAAR,eAAQA,IAAR;MAAA,IAAcC,OAAd,eAAcA,OAAd;MAAA,IAAuBC,OAAvB,eAAuBA,OAAvB;MACA,kBAA2B,KAAKJ,KAAhC;MAAA,IAAQH,IAAR,eAAQA,IAAR;MAAA,IAAcC,QAAd,eAAcA,QAAd;MACA,IAAMO,IAAI,GAAGC,MAAM,CAACD,IAAP,CAAYH,IAAZ,KAAqB,EAAlC;;MAEA,IAAMK,eAAe,GAAG,SAAlBA,eAAkB,CAAAC,GAAG;QAAA,OAAI,YAAM;UACnCL,OAAO,CAACK,GAAD,CAAP;;UACA,MAAI,CAACC,kBAAL;QACD,CAH0B;MAAA,CAA3B;;MAKA,IAAMC,SAAS,GAAGb,IAAI,GAAG,SAAH,GAAe,UAArC;MAEA,oBACE,0DACE;QAAK,OAAO,EAAE,KAAKc;MAAnB,gBACE,gCAAC,sBAAD;QAAY,SAAS,EAAEP,OAAO,CAACQ;MAA/B,GACGf,IAAI,gBAAG,gCAAC,oBAAD;QAAc,KAAK,EAAEa;MAArB,EAAH,gBAAwC,gCAAC,qBAAD;QAAe,KAAK,EAAEA;MAAtB,EAD/C,CADF,CADF,eAME,gCAAC,gBAAD;QACE,EAAE,EAAC,YADL;QAEE,QAAQ,EAAEZ,QAFZ;QAGE,IAAI,EAAED,IAHR;QAIE,OAAO,EAAE,KAAKY,kBAJhB;QAKE,KAAK,EAAE;UAAEI,SAAS,EAAE;QAAb,CALT;QAME,eAAe,EAAE;UACfC,QAAQ,EAAE,QADK;UAEfC,UAAU,EAAE;QAFG;MANnB,GAWGV,IAAI,CAACW,GAAL,CAAS,UAACC,CAAD,EAAIC,KAAJ;QAAA,oBACR,gCAAC,oBAAD;UAAU,GAAG,EAAEA,KAAf;UAAsB,OAAO,EAAEX,eAAe,CAACU,CAAD;QAA9C,GACGf,IAAI,CAACe,CAAD,CADP,CADQ;MAAA,CAAT,CAXH,CANF,CADF;IA0BD;;;EAzD2BE,iBAAA,CAAMC,S;;;iCAAvB3B,Q,eACQ;EACjBS,IAAI,EAAEmB,qBAAA,CAAUC,MADC;EAEjBnB,OAAO,EAAEkB,qBAAA,CAAUE,IAAV,CAAeC,UAFP;EAGjBpB,OAAO,EAAEiB,qBAAA,CAAUC,MAAV,CAAiBE;AAHT,C;;IA2DAC,S;;;;;;;;;;;;WAWnB,kBAAS;MACP,mBAAgD,KAAK/B,KAArD;MAAA,IAAQgC,QAAR,gBAAQA,QAAR;MAAA,IAAkBtB,OAAlB,gBAAkBA,OAAlB;MAAA,IAA2BuB,gBAA3B,gBAA2BA,gBAA3B;MACA,IAAMC,UAAU,GAAGD,gBAAgB,GAAG,yBAAH,GAA+B,wBAAlE;MAEA,oBACE,gCAAC,QAAD;QACE,OAAO,EAAE,iBAAAnB,GAAG;UAAA,OAAIkB,QAAQ,CAAClB,GAAD,CAAZ;QAAA,CADd;QAEE,IAAI,EAAE;UACJqB,MAAM,EAAED;QADJ,CAFR;QAKE,OAAO,EAAExB;MALX,EADF;IASD;;;EAxBoCe,iBAAA,CAAMC,S;;;iCAAxBK,S,eACA;EACjBC,QAAQ,EAAEL,qBAAA,CAAUE,IAAV,CAAeC,UADR;EAEjBpB,OAAO,EAAEiB,qBAAA,CAAUC,MAAV,CAAiBE,UAFT;EAGjBG,gBAAgB,EAAEN,qBAAA,CAAUS,IAAV,CAAeN;AAHhB,C;iCADAC,S,kBAOG;EACpBrB,OAAO,EAAE;AADW,C"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pie-lib/rubric",
3
- "version": "0.7.13-next.0+2f8c6198",
3
+ "version": "1.0.0-beta.1",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -9,7 +9,7 @@
9
9
  "dependencies": {
10
10
  "@material-ui/core": "^3.9.3",
11
11
  "@material-ui/icons": "^3.0.2",
12
- "@pie-lib/editable-html": "^9.5.13-next.0+2f8c6198",
12
+ "@pie-lib/editable-html": "10.0.0-beta.2",
13
13
  "debug": "^4.1.1",
14
14
  "editable-html": "npm:@pie-lib/editable-html@^7.21.0",
15
15
  "lodash": "^4.17.11",
@@ -17,6 +17,5 @@
17
17
  "react": "^16.8.1",
18
18
  "react-beautiful-dnd": "^11.0.2",
19
19
  "react-dom": "^16.9.0"
20
- },
21
- "gitHead": "2f8c619845b4aa9a1c862b2ac549a975fe0bd13f"
20
+ }
22
21
  }
package/src/authoring.jsx CHANGED
@@ -35,15 +35,15 @@ const reorder = (list, startIndex, endIndex) => {
35
35
  export const RubricType = PropTypes.shape({
36
36
  excludeZero: PropTypes.bool,
37
37
  points: PropTypes.arrayOf(PropTypes.string),
38
- sampleAnswers: PropTypes.arrayOf(PropTypes.string),
38
+ sampleAnswers: PropTypes.arrayOf(PropTypes.string)
39
39
  });
40
40
 
41
- const MaxPoints = withStyles((theme) => ({
41
+ const MaxPoints = withStyles(theme => ({
42
42
  formControl: {
43
43
  minWidth: '120px',
44
- margin: theme.spacing.unit,
45
- },
46
- }))((props) => {
44
+ margin: theme.spacing.unit
45
+ }
46
+ }))(props => {
47
47
  const { value, onChange, max, classes } = props;
48
48
 
49
49
  return (
@@ -51,8 +51,12 @@ const MaxPoints = withStyles((theme) => ({
51
51
  <InputLabel width={100} htmlFor="...">
52
52
  Max Points
53
53
  </InputLabel>
54
- <Select value={value} onChange={(e) => onChange(e.target.value)} input={<OutlinedInput labelWidth={80} />}>
55
- {range(1, max).map((v) => (
54
+ <Select
55
+ value={value}
56
+ onChange={e => onChange(e.target.value)}
57
+ input={<OutlinedInput labelWidth={80} />}
58
+ >
59
+ {range(1, max).map(v => (
56
60
  <MenuItem key={`${v}`} value={v}>
57
61
  {v}
58
62
  </MenuItem>
@@ -64,36 +68,36 @@ const MaxPoints = withStyles((theme) => ({
64
68
 
65
69
  // if the value is null or 'null', the Sample Answer input field for that point will not be dispalyed
66
70
  // if the value is '', the Sample Answer input field will be empty
67
- const checkSampleAnswer = (sampleAnswer) => sampleAnswer === null || sampleAnswer === 'null';
71
+ const checkSampleAnswer = sampleAnswer => sampleAnswer === null || sampleAnswer === 'null';
68
72
 
69
- export const PointConfig = withStyles((theme) => ({
73
+ export const PointConfig = withStyles(theme => ({
70
74
  pointConfig: {},
71
75
  row: {
72
76
  display: 'flex',
73
77
  width: '100%',
74
- position: 'relative',
78
+ position: 'relative'
75
79
  },
76
80
  editor: {
77
81
  width: '100%',
78
- backgroundColor: `${theme.palette.common.white} !important`,
82
+ backgroundColor: 'white !important'
79
83
  },
80
84
  dragIndicator: {
81
85
  paddingTop: theme.spacing.unit,
82
- color: grey[500],
86
+ color: grey[500]
83
87
  },
84
88
  pointsLabel: {
85
89
  color: grey[500],
86
90
  paddingBottom: theme.spacing.unit,
87
- textTransform: 'uppercase',
91
+ textTransform: 'uppercase'
88
92
  },
89
93
  sampleAnswersEditor: {
90
- paddingLeft: theme.spacing.unit * 3,
94
+ paddingLeft: theme.spacing.unit * 3
91
95
  },
92
96
  pointMenu: {
93
97
  position: 'absolute',
94
- right: 0,
95
- },
96
- }))((props) => {
98
+ right: 0
99
+ }
100
+ }))(props => {
97
101
  const { points, content, classes, sampleAnswer } = props;
98
102
  const pointsLabel = `${points} ${points <= 1 ? 'pt' : 'pts'}`;
99
103
  const showSampleAnswer = checkSampleAnswer(sampleAnswer);
@@ -103,25 +107,27 @@ export const PointConfig = withStyles((theme) => ({
103
107
  <Typography variant="overline" className={classes.pointsLabel}>
104
108
  {pointsLabel}
105
109
  </Typography>
106
-
107
110
  <div className={classes.row}>
108
111
  <DragIndicator className={classes.dragIndicator} />
109
112
  <EditableHtml className={classes.editor} markup={content} onChange={props.onChange} />
110
113
  <PointMenu
111
114
  classes={{
112
- icon: classes.pointMenu,
115
+ icon: classes.pointMenu
113
116
  }}
114
117
  showSampleAnswer={showSampleAnswer}
115
118
  onChange={props.onMenuChange}
116
119
  />
117
120
  </div>
118
-
119
121
  {!showSampleAnswer && (
120
122
  <div className={classes.sampleAnswersEditor}>
121
123
  <Typography variant="overline" className={classes.dragIndicator}>
122
124
  Sample Response
123
125
  </Typography>
124
- <EditableHtml className={classes.editor} markup={sampleAnswer} onChange={props.onSampleChange} />
126
+ <EditableHtml
127
+ className={classes.editor}
128
+ markup={sampleAnswer}
129
+ onChange={props.onSampleChange}
130
+ />
125
131
  </div>
126
132
  )}
127
133
  </div>
@@ -133,12 +139,12 @@ export class RawAuthoring extends React.Component {
133
139
  classes: PropTypes.object.isRequired,
134
140
  className: PropTypes.string,
135
141
  value: RubricType,
136
- onChange: PropTypes.func,
142
+ onChange: PropTypes.func
137
143
  };
138
144
 
139
145
  static defaultProps = {};
140
146
 
141
- dragEnd = (result) => {
147
+ dragEnd = result => {
142
148
  if (!result.destination) {
143
149
  return;
144
150
  }
@@ -146,12 +152,16 @@ export class RawAuthoring extends React.Component {
146
152
  const { value, onChange } = this.props;
147
153
 
148
154
  const points = reorder(value.points, result.source.index, result.destination.index);
149
- const sampleAnswers = reorder(value.sampleAnswers, result.source.index, result.destination.index);
155
+ const sampleAnswers = reorder(
156
+ value.sampleAnswers,
157
+ result.source.index,
158
+ result.destination.index
159
+ );
150
160
 
151
161
  onChange({ ...value, points, sampleAnswers });
152
162
  };
153
163
 
154
- changeMaxPoints = (maxPoints) => {
164
+ changeMaxPoints = maxPoints => {
155
165
  const { value, onChange } = this.props;
156
166
  const currentMax = value.points.length - 1;
157
167
 
@@ -232,7 +242,6 @@ export class RawAuthoring extends React.Component {
232
242
 
233
243
  render() {
234
244
  const { classes, className, value } = this.props;
235
- let { excludeZeroEnabled = true, maxPointsEnabled = true } = value || {};
236
245
 
237
246
  if (value && Number.isFinite(value.maxPoints)) {
238
247
  // eslint-disable-next-line no-console
@@ -245,25 +254,26 @@ export class RawAuthoring extends React.Component {
245
254
  Rubric
246
255
  </Typography>
247
256
  <FormGroup row>
248
- {maxPointsEnabled && <MaxPoints max={10} value={value.points.length - 1} onChange={this.changeMaxPoints} />}
249
- {excludeZeroEnabled && (
250
- <FormControlLabel
251
- label="Exclude zeros"
252
- control={<Checkbox checked={value.excludeZero} onChange={this.excludeZeros} />}
253
- />
254
- )}
257
+ <MaxPoints max={10} value={value.points.length - 1} onChange={this.changeMaxPoints} />
258
+ <FormControlLabel
259
+ label="Exclude zeros"
260
+ control={<Checkbox checked={value.excludeZero} onChange={this.excludeZeros} />}
261
+ />
255
262
  </FormGroup>
256
-
257
263
  <div className={classes.container}>
258
264
  <DragDropContext onDragEnd={this.dragEnd}>
259
265
  <Droppable droppableId="droppable">
260
- {(provided) => (
266
+ {provided => (
261
267
  <div {...provided.droppableProps} ref={provided.innerRef}>
262
268
  {value.points.map(
263
269
  (p, index) =>
264
270
  this.shouldRenderPoint(index, value) && (
265
- <Draggable key={`${p.points}-${index}`} index={index} draggableId={index.toString()}>
266
- {(provided) => (
271
+ <Draggable
272
+ key={`${p.points}-${index}`}
273
+ index={index}
274
+ draggableId={index.toString()}
275
+ >
276
+ {provided => (
267
277
  <div
268
278
  className={classes.configHolder}
269
279
  ref={provided.innerRef}
@@ -274,14 +284,18 @@ export class RawAuthoring extends React.Component {
274
284
  points={value.points.length - 1 - index}
275
285
  content={p}
276
286
  sampleAnswer={value.sampleAnswers && value.sampleAnswers[index]}
277
- onChange={(content) => this.changeContent(index, content, 'points')}
278
- onSampleChange={(content) => this.changeContent(index, content, 'sampleAnswers')}
279
- onMenuChange={(clickedItem) => this.onPointMenuChange(index, clickedItem)}
287
+ onChange={content => this.changeContent(index, content, 'points')}
288
+ onSampleChange={content =>
289
+ this.changeContent(index, content, 'sampleAnswers')
290
+ }
291
+ onMenuChange={clickedItem =>
292
+ this.onPointMenuChange(index, clickedItem)
293
+ }
280
294
  />
281
295
  </div>
282
296
  )}
283
297
  </Draggable>
284
- ),
298
+ )
285
299
  )}
286
300
  {provided.placeholder}
287
301
  </div>
@@ -294,28 +308,28 @@ export class RawAuthoring extends React.Component {
294
308
  }
295
309
  }
296
310
 
297
- const styles = (theme) => ({
311
+ const styles = theme => ({
298
312
  container: {
299
313
  backgroundColor: grey[200],
300
314
  borderWidth: 1,
301
315
  borderStyle: 'solid',
302
316
  borderColor: grey[300],
303
317
  padding: theme.spacing.unit * 2,
304
- margin: theme.spacing.unit,
318
+ margin: theme.spacing.unit
305
319
  },
306
320
  configHolder: {
307
321
  paddingTop: theme.spacing.unit,
308
- paddingBottom: theme.spacing.unit,
322
+ paddingBottom: theme.spacing.unit
309
323
  },
310
324
  rubricTitle: {
311
325
  paddingLeft: theme.spacing.unit,
312
- margin: theme.spacing.unit,
313
- },
326
+ margin: theme.spacing.unit
327
+ }
314
328
  });
315
329
 
316
330
  const StyledRawAuthoring = withStyles(styles)(RawAuthoring);
317
331
 
318
- const Reverse = (props) => {
332
+ const Reverse = props => {
319
333
  const points = Array.from(props.value.points || []).reverse();
320
334
  let sampleAnswers = Array.from(props.value.sampleAnswers || []).reverse();
321
335
 
@@ -327,11 +341,11 @@ const Reverse = (props) => {
327
341
 
328
342
  const value = { ...props.value, points, sampleAnswers };
329
343
 
330
- const onChange = (value) => {
344
+ const onChange = value => {
331
345
  props.onChange({
332
346
  ...value,
333
347
  points: Array.from(value.points || []).reverse(),
334
- sampleAnswers: Array.from(value.sampleAnswers || []).reverse(),
348
+ sampleAnswers: Array.from(value.sampleAnswers || []).reverse()
335
349
  });
336
350
  };
337
351
 
@@ -341,7 +355,7 @@ const Reverse = (props) => {
341
355
  Reverse.propTypes = {
342
356
  value: RubricType,
343
357
  getIndex: PropTypes.func,
344
- onChange: PropTypes.func,
358
+ onChange: PropTypes.func
345
359
  };
346
360
 
347
361
  export default Reverse;
package/src/index.js CHANGED
@@ -2,7 +2,7 @@ import Authoring from './authoring';
2
2
 
3
3
  const RUBRIC_TYPES = {
4
4
  SIMPLE_RUBRIC: 'simpleRubric',
5
- MULTI_TRAIT_RUBRIC: 'multiTraitRubric',
5
+ MULTI_TRAIT_RUBRIC: 'multiTraitRubric'
6
6
  };
7
7
 
8
8
  export { Authoring, RUBRIC_TYPES };
@@ -10,18 +10,18 @@ export class IconMenu extends React.Component {
10
10
  static propTypes = {
11
11
  opts: PropTypes.object,
12
12
  onClick: PropTypes.func.isRequired,
13
- classes: PropTypes.object.isRequired,
13
+ classes: PropTypes.object.isRequired
14
14
  };
15
15
 
16
16
  constructor(props) {
17
17
  super(props);
18
18
  this.state = {
19
19
  anchorEl: undefined,
20
- open: false,
20
+ open: false
21
21
  };
22
22
  }
23
23
 
24
- handleClick = (event) => this.setState({ open: true, anchorEl: event.currentTarget });
24
+ handleClick = event => this.setState({ open: true, anchorEl: event.currentTarget });
25
25
 
26
26
  handleRequestClose = () => this.setState({ open: false });
27
27
 
@@ -30,7 +30,7 @@ export class IconMenu extends React.Component {
30
30
  const { open, anchorEl } = this.state;
31
31
  const keys = Object.keys(opts) || [];
32
32
 
33
- const handleMenuClick = (key) => () => {
33
+ const handleMenuClick = key => () => {
34
34
  onClick(key);
35
35
  this.handleRequestClose();
36
36
  };
@@ -52,7 +52,7 @@ export class IconMenu extends React.Component {
52
52
  style={{ transform: 'translate(-15px, -15px)' }}
53
53
  transformOrigin={{
54
54
  vertical: 'center',
55
- horizontal: 'right',
55
+ horizontal: 'right'
56
56
  }}
57
57
  >
58
58
  {keys.map((k, index) => (
@@ -70,11 +70,11 @@ export default class PointMenu extends React.Component {
70
70
  static propTypes = {
71
71
  onChange: PropTypes.func.isRequired,
72
72
  classes: PropTypes.object.isRequired,
73
- showSampleAnswer: PropTypes.bool.isRequired,
73
+ showSampleAnswer: PropTypes.bool.isRequired
74
74
  };
75
75
 
76
76
  static defaultProps = {
77
- classes: {},
77
+ classes: {}
78
78
  };
79
79
 
80
80
  render() {
@@ -83,9 +83,9 @@ export default class PointMenu extends React.Component {
83
83
 
84
84
  return (
85
85
  <IconMenu
86
- onClick={(key) => onChange(key)}
86
+ onClick={key => onChange(key)}
87
87
  opts={{
88
- sample: sampleText,
88
+ sample: sampleText
89
89
  }}
90
90
  classes={classes}
91
91
  />
package/LICENSE.md DELETED
@@ -1,5 +0,0 @@
1
- Copyright 2019 CoreSpring Inc
2
-
3
- Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
4
-
5
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.