@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 +0 -265
- package/lib/authoring.js +4 -10
- package/lib/authoring.js.map +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/point-menu.js +1 -1
- package/lib/point-menu.js.map +1 -1
- package/package.json +3 -4
- package/src/authoring.jsx +64 -50
- package/src/index.js +1 -1
- package/src/point-menu.jsx +9 -9
- package/LICENSE.md +0 -5
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:
|
|
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
|
-
},
|
|
343
|
+
}, /*#__PURE__*/_react["default"].createElement(MaxPoints, {
|
|
350
344
|
max: 10,
|
|
351
345
|
value: value.points.length - 1,
|
|
352
346
|
onChange: this.changeMaxPoints
|
|
353
|
-
}),
|
|
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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
|
package/lib/authoring.js.map
CHANGED
|
@@ -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=
|
|
23
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSVUJSSUNfVFlQRVMiLCJTSU1QTEVfUlVCUklDIiwiTVVMVElfVFJBSVRfUlVCUklDIl0sInNvdXJjZXMiOlsiLi4vc3JjL2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBBdXRob3JpbmcgZnJvbSAnLi9hdXRob3JpbmcnO1xuXG5jb25zdCBSVUJSSUNfVFlQRVMgPSB7XG4gIFNJTVBMRV9SVUJSSUM6ICdzaW1wbGVSdWJyaWMnLFxuICBNVUxUSV9UUkFJVF9SVUJSSUM6ICdtdWx0aVRyYWl0UnVicmljJ1xufTtcblxuZXhwb3J0IHsgQXV0aG9yaW5nLCBSVUJSSUNfVFlQRVMgfTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBRUEsSUFBTUEsWUFBWSxHQUFHO0VBQ25CQyxhQUFhLEVBQUUsY0FESTtFQUVuQkMsa0JBQWtCLEVBQUU7QUFGRCxDQUFyQiJ9
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
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=
|
|
172
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJJY29uTWVudSIsInByb3BzIiwiZXZlbnQiLCJzZXRTdGF0ZSIsIm9wZW4iLCJhbmNob3JFbCIsImN1cnJlbnRUYXJnZXQiLCJzdGF0ZSIsInVuZGVmaW5lZCIsIm9wdHMiLCJvbkNsaWNrIiwiY2xhc3NlcyIsImtleXMiLCJPYmplY3QiLCJoYW5kbGVNZW51Q2xpY2siLCJrZXkiLCJoYW5kbGVSZXF1ZXN0Q2xvc2UiLCJpY29uQ29sb3IiLCJoYW5kbGVDbGljayIsImljb24iLCJ0cmFuc2Zvcm0iLCJ2ZXJ0aWNhbCIsImhvcml6b250YWwiLCJtYXAiLCJrIiwiaW5kZXgiLCJSZWFjdCIsIkNvbXBvbmVudCIsIlByb3BUeXBlcyIsIm9iamVjdCIsImZ1bmMiLCJpc1JlcXVpcmVkIiwiUG9pbnRNZW51Iiwib25DaGFuZ2UiLCJzaG93U2FtcGxlQW5zd2VyIiwic2FtcGxlVGV4dCIsInNhbXBsZSIsImJvb2wiXSwic291cmNlcyI6WyIuLi9zcmMvcG9pbnQtbWVudS5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IE1lbnUgZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvTWVudSc7XG5pbXBvcnQgTWVudUl0ZW0gZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvTWVudUl0ZW0nO1xuaW1wb3J0IE1vcmVWZXJ0SWNvbiBmcm9tICdAbWF0ZXJpYWwtdWkvaWNvbnMvTW9yZVZlcnQnO1xuaW1wb3J0IE1vcmVIb3Jpekljb24gZnJvbSAnQG1hdGVyaWFsLXVpL2ljb25zL01vcmVIb3Jpeic7XG5pbXBvcnQgSWNvbkJ1dHRvbiBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9JY29uQnV0dG9uJztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuXG5leHBvcnQgY2xhc3MgSWNvbk1lbnUgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIG9wdHM6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgb25DbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBjbGFzc2VzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWRcbiAgfTtcblxuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgIHN1cGVyKHByb3BzKTtcbiAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgYW5jaG9yRWw6IHVuZGVmaW5lZCxcbiAgICAgIG9wZW46IGZhbHNlXG4gICAgfTtcbiAgfVxuXG4gIGhhbmRsZUNsaWNrID0gZXZlbnQgPT4gdGhpcy5zZXRTdGF0ZSh7IG9wZW46IHRydWUsIGFuY2hvckVsOiBldmVudC5jdXJyZW50VGFyZ2V0IH0pO1xuXG4gIGhhbmRsZVJlcXVlc3RDbG9zZSA9ICgpID0+IHRoaXMuc2V0U3RhdGUoeyBvcGVuOiBmYWxzZSB9KTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgeyBvcHRzLCBvbkNsaWNrLCBjbGFzc2VzIH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHsgb3BlbiwgYW5jaG9yRWwgfSA9IHRoaXMuc3RhdGU7XG4gICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKG9wdHMpIHx8IFtdO1xuXG4gICAgY29uc3QgaGFuZGxlTWVudUNsaWNrID0ga2V5ID0+ICgpID0+IHtcbiAgICAgIG9uQ2xpY2soa2V5KTtcbiAgICAgIHRoaXMuaGFuZGxlUmVxdWVzdENsb3NlKCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGljb25Db2xvciA9IG9wZW4gPyAnaW5oZXJpdCcgOiAnZGlzYWJsZWQnO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXY+XG4gICAgICAgIDxkaXYgb25DbGljaz17dGhpcy5oYW5kbGVDbGlja30+XG4gICAgICAgICAgPEljb25CdXR0b24gY2xhc3NOYW1lPXtjbGFzc2VzLmljb259PlxuICAgICAgICAgICAge29wZW4gPyA8TW9yZVZlcnRJY29uIGNvbG9yPXtpY29uQ29sb3J9IC8+IDogPE1vcmVIb3Jpekljb24gY29sb3I9e2ljb25Db2xvcn0gLz59XG4gICAgICAgICAgPC9JY29uQnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPE1lbnVcbiAgICAgICAgICBpZD1cInBvaW50LW1lbnVcIlxuICAgICAgICAgIGFuY2hvckVsPXthbmNob3JFbH1cbiAgICAgICAgICBvcGVuPXtvcGVufVxuICAgICAgICAgIG9uQ2xvc2U9e3RoaXMuaGFuZGxlUmVxdWVzdENsb3NlfVxuICAgICAgICAgIHN0eWxlPXt7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZSgtMTVweCwgLTE1cHgpJyB9fVxuICAgICAgICAgIHRyYW5zZm9ybU9yaWdpbj17e1xuICAgICAgICAgICAgdmVydGljYWw6ICdjZW50ZXInLFxuICAgICAgICAgICAgaG9yaXpvbnRhbDogJ3JpZ2h0J1xuICAgICAgICAgIH19XG4gICAgICAgID5cbiAgICAgICAgICB7a2V5cy5tYXAoKGssIGluZGV4KSA9PiAoXG4gICAgICAgICAgICA8TWVudUl0ZW0ga2V5PXtpbmRleH0gb25DbGljaz17aGFuZGxlTWVudUNsaWNrKGspfT5cbiAgICAgICAgICAgICAge29wdHNba119XG4gICAgICAgICAgICA8L01lbnVJdGVtPlxuICAgICAgICAgICkpfVxuICAgICAgICA8L01lbnU+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFBvaW50TWVudSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgb25DaGFuZ2U6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgY2xhc3NlczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIHNob3dTYW1wbGVBbnN3ZXI6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWRcbiAgfTtcblxuICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgIGNsYXNzZXM6IHt9XG4gIH07XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHsgb25DaGFuZ2UsIGNsYXNzZXMsIHNob3dTYW1wbGVBbnN3ZXIgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3Qgc2FtcGxlVGV4dCA9IHNob3dTYW1wbGVBbnN3ZXIgPyAnUHJvdmlkZSBTYW1wbGUgUmVzcG9uc2UnIDogJ1JlbW92ZSBTYW1wbGUgUmVzcG9uc2UnO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxJY29uTWVudVxuICAgICAgICBvbkNsaWNrPXtrZXkgPT4gb25DaGFuZ2Uoa2V5KX1cbiAgICAgICAgb3B0cz17e1xuICAgICAgICAgIHNhbXBsZTogc2FtcGxlVGV4dFxuICAgICAgICB9fVxuICAgICAgICBjbGFzc2VzPXtjbGFzc2VzfVxuICAgICAgLz5cbiAgICApO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7OztJQUVhQSxROzs7OztFQU9YLGtCQUFZQyxLQUFaLEVBQW1CO0lBQUE7O0lBQUE7SUFDakIsMEJBQU1BLEtBQU47SUFEaUIsZ0dBUUwsVUFBQUMsS0FBSztNQUFBLE9BQUksTUFBS0MsUUFBTCxDQUFjO1FBQUVDLElBQUksRUFBRSxJQUFSO1FBQWNDLFFBQVEsRUFBRUgsS0FBSyxDQUFDSTtNQUE5QixDQUFkLENBQUo7SUFBQSxDQVJBO0lBQUEsdUdBVUU7TUFBQSxPQUFNLE1BQUtILFFBQUwsQ0FBYztRQUFFQyxJQUFJLEVBQUU7TUFBUixDQUFkLENBQU47SUFBQSxDQVZGO0lBRWpCLE1BQUtHLEtBQUwsR0FBYTtNQUNYRixRQUFRLEVBQUVHLFNBREM7TUFFWEosSUFBSSxFQUFFO0lBRkssQ0FBYjtJQUZpQjtFQU1sQjs7OztXQU1ELGtCQUFTO01BQUE7O01BQ1Asa0JBQW1DLEtBQUtILEtBQXhDO01BQUEsSUFBUVEsSUFBUixlQUFRQSxJQUFSO01BQUEsSUFBY0MsT0FBZCxlQUFjQSxPQUFkO01BQUEsSUFBdUJDLE9BQXZCLGVBQXVCQSxPQUF2QjtNQUNBLGtCQUEyQixLQUFLSixLQUFoQztNQUFBLElBQVFILElBQVIsZUFBUUEsSUFBUjtNQUFBLElBQWNDLFFBQWQsZUFBY0EsUUFBZDtNQUNBLElBQU1PLElBQUksR0FBR0MsTUFBTSxDQUFDRCxJQUFQLENBQVlILElBQVosS0FBcUIsRUFBbEM7O01BRUEsSUFBTUssZUFBZSxHQUFHLFNBQWxCQSxlQUFrQixDQUFBQyxHQUFHO1FBQUEsT0FBSSxZQUFNO1VBQ25DTCxPQUFPLENBQUNLLEdBQUQsQ0FBUDs7VUFDQSxNQUFJLENBQUNDLGtCQUFMO1FBQ0QsQ0FIMEI7TUFBQSxDQUEzQjs7TUFLQSxJQUFNQyxTQUFTLEdBQUdiLElBQUksR0FBRyxTQUFILEdBQWUsVUFBckM7TUFFQSxvQkFDRSwwREFDRTtRQUFLLE9BQU8sRUFBRSxLQUFLYztNQUFuQixnQkFDRSxnQ0FBQyxzQkFBRDtRQUFZLFNBQVMsRUFBRVAsT0FBTyxDQUFDUTtNQUEvQixHQUNHZixJQUFJLGdCQUFHLGdDQUFDLG9CQUFEO1FBQWMsS0FBSyxFQUFFYTtNQUFyQixFQUFILGdCQUF3QyxnQ0FBQyxxQkFBRDtRQUFlLEtBQUssRUFBRUE7TUFBdEIsRUFEL0MsQ0FERixDQURGLGVBTUUsZ0NBQUMsZ0JBQUQ7UUFDRSxFQUFFLEVBQUMsWUFETDtRQUVFLFFBQVEsRUFBRVosUUFGWjtRQUdFLElBQUksRUFBRUQsSUFIUjtRQUlFLE9BQU8sRUFBRSxLQUFLWSxrQkFKaEI7UUFLRSxLQUFLLEVBQUU7VUFBRUksU0FBUyxFQUFFO1FBQWIsQ0FMVDtRQU1FLGVBQWUsRUFBRTtVQUNmQyxRQUFRLEVBQUUsUUFESztVQUVmQyxVQUFVLEVBQUU7UUFGRztNQU5uQixHQVdHVixJQUFJLENBQUNXLEdBQUwsQ0FBUyxVQUFDQyxDQUFELEVBQUlDLEtBQUo7UUFBQSxvQkFDUixnQ0FBQyxvQkFBRDtVQUFVLEdBQUcsRUFBRUEsS0FBZjtVQUFzQixPQUFPLEVBQUVYLGVBQWUsQ0FBQ1UsQ0FBRDtRQUE5QyxHQUNHZixJQUFJLENBQUNlLENBQUQsQ0FEUCxDQURRO01BQUEsQ0FBVCxDQVhILENBTkYsQ0FERjtJQTBCRDs7O0VBekQyQkUsaUJBQUEsQ0FBTUMsUzs7O2lDQUF2QjNCLFEsZUFDUTtFQUNqQlMsSUFBSSxFQUFFbUIscUJBQUEsQ0FBVUMsTUFEQztFQUVqQm5CLE9BQU8sRUFBRWtCLHFCQUFBLENBQVVFLElBQVYsQ0FBZUMsVUFGUDtFQUdqQnBCLE9BQU8sRUFBRWlCLHFCQUFBLENBQVVDLE1BQVYsQ0FBaUJFO0FBSFQsQzs7SUEyREFDLFM7Ozs7Ozs7Ozs7OztXQVduQixrQkFBUztNQUNQLG1CQUFnRCxLQUFLL0IsS0FBckQ7TUFBQSxJQUFRZ0MsUUFBUixnQkFBUUEsUUFBUjtNQUFBLElBQWtCdEIsT0FBbEIsZ0JBQWtCQSxPQUFsQjtNQUFBLElBQTJCdUIsZ0JBQTNCLGdCQUEyQkEsZ0JBQTNCO01BQ0EsSUFBTUMsVUFBVSxHQUFHRCxnQkFBZ0IsR0FBRyx5QkFBSCxHQUErQix3QkFBbEU7TUFFQSxvQkFDRSxnQ0FBQyxRQUFEO1FBQ0UsT0FBTyxFQUFFLGlCQUFBbkIsR0FBRztVQUFBLE9BQUlrQixRQUFRLENBQUNsQixHQUFELENBQVo7UUFBQSxDQURkO1FBRUUsSUFBSSxFQUFFO1VBQ0pxQixNQUFNLEVBQUVEO1FBREosQ0FGUjtRQUtFLE9BQU8sRUFBRXhCO01BTFgsRUFERjtJQVNEOzs7RUF4Qm9DZSxpQkFBQSxDQUFNQyxTOzs7aUNBQXhCSyxTLGVBQ0E7RUFDakJDLFFBQVEsRUFBRUwscUJBQUEsQ0FBVUUsSUFBVixDQUFlQyxVQURSO0VBRWpCcEIsT0FBTyxFQUFFaUIscUJBQUEsQ0FBVUMsTUFBVixDQUFpQkUsVUFGVDtFQUdqQkcsZ0JBQWdCLEVBQUVOLHFCQUFBLENBQVVTLElBQVYsQ0FBZU47QUFIaEIsQztpQ0FEQUMsUyxrQkFPRztFQUNwQnJCLE9BQU8sRUFBRTtBQURXLEMifQ==
|
package/lib/point-menu.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
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":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pie-lib/rubric",
|
|
3
|
-
"version": "0.
|
|
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": "
|
|
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(
|
|
41
|
+
const MaxPoints = withStyles(theme => ({
|
|
42
42
|
formControl: {
|
|
43
43
|
minWidth: '120px',
|
|
44
|
-
margin: theme.spacing.unit
|
|
45
|
-
}
|
|
46
|
-
}))(
|
|
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
|
|
55
|
-
{
|
|
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 =
|
|
71
|
+
const checkSampleAnswer = sampleAnswer => sampleAnswer === null || sampleAnswer === 'null';
|
|
68
72
|
|
|
69
|
-
export const PointConfig = withStyles(
|
|
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:
|
|
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
|
-
}))(
|
|
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
|
|
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 =
|
|
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(
|
|
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 =
|
|
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
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
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
|
-
{
|
|
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
|
|
266
|
-
{
|
|
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={
|
|
278
|
-
onSampleChange={
|
|
279
|
-
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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
package/src/point-menu.jsx
CHANGED
|
@@ -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 =
|
|
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 =
|
|
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={
|
|
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.
|