@pie-element/charting 2.7.19 → 2.7.20-beta.1445

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.
@@ -21,6 +21,10 @@ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime
21
21
 
22
22
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
23
23
 
24
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
25
+
26
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
27
+
24
28
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
25
29
 
26
30
  var React = _interopRequireWildcard(require("react"));
@@ -29,29 +33,36 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
29
33
 
30
34
  var _styles = require("@material-ui/core/styles");
31
35
 
32
- var _Checkbox = _interopRequireDefault(require("@material-ui/core/Checkbox"));
33
-
34
36
  var _charting = require("@pie-lib/charting");
35
37
 
36
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
38
+ var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
37
39
 
38
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
40
+ var _isEmpty = _interopRequireDefault(require("lodash/isEmpty"));
39
41
 
40
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
42
+ var _Typography = _interopRequireDefault(require("@material-ui/core/Typography"));
41
43
 
42
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
44
+ var _excluded = ["editable", "interactive", "deletable"],
45
+ _excluded2 = ["interactive", "editable", "index"];
46
+
47
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
48
+
49
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
43
50
 
44
51
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
45
52
 
46
53
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
47
54
 
55
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
56
+
57
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
58
+
48
59
  var styles = function styles(theme) {
49
60
  return {
50
61
  container: {
51
- border: '2px solid #ababab',
52
- borderRadius: '4px',
53
- padding: "".concat(theme.spacing.unit * 2, "px ").concat(theme.spacing.unit * 4, "px"),
54
- background: '#fafafa'
62
+ marginTop: theme.spacing.unit * 3,
63
+ marginBottom: theme.spacing.unit * 3,
64
+ display: 'flex',
65
+ flex: 1
55
66
  },
56
67
  button: {
57
68
  marginTop: theme.spacing.unit * 3,
@@ -60,25 +71,89 @@ var styles = function styles(theme) {
60
71
  padding: theme.spacing.unit * 2,
61
72
  width: 'fit-content',
62
73
  borderRadius: '4px'
74
+ },
75
+ column: {
76
+ flex: 1
77
+ },
78
+ chartError: {
79
+ border: '2px solid red'
80
+ },
81
+ errorText: {
82
+ fontSize: theme.typography.fontSize - 2,
83
+ color: 'red',
84
+ paddingTop: theme.spacing.unit
63
85
  }
64
86
  };
65
87
  };
66
88
 
89
+ var addCategoryProps = function addCategoryProps(correctAnswer, data) {
90
+ return correctAnswer.map(function (correct, index) {
91
+ return _objectSpread(_objectSpread({}, correct), {}, {
92
+ editable: index < data.length ? data[index].editable : true,
93
+ interactive: index < data.length ? data[index].interactive : true,
94
+ deletable: index >= data.length ? true : false
95
+ });
96
+ });
97
+ };
98
+
99
+ var updateCorrectResponseData = function updateCorrectResponseData(correctAnswer, data) {
100
+ if (!correctAnswer) {
101
+ return data;
102
+ }
103
+
104
+ var correctAnswerData = (0, _toConsumableArray2["default"])(correctAnswer);
105
+ var correctResponseDefinition = [];
106
+ data.forEach(function (category, currentIndex) {
107
+ var _correctAnswer$curren, _correctAnswer$curren2, _correctAnswer$curren3;
108
+
109
+ var editable = category.editable;
110
+ var interactive = category.interactive;
111
+ var label = editable && (_correctAnswer$curren = correctAnswer[currentIndex]) !== null && _correctAnswer$curren !== void 0 && _correctAnswer$curren.label ? correctAnswer[currentIndex].label : category.label;
112
+ var value = interactive && (_correctAnswer$curren2 = correctAnswer[currentIndex]) !== null && _correctAnswer$curren2 !== void 0 && _correctAnswer$curren2.value || interactive && ((_correctAnswer$curren3 = correctAnswer[currentIndex]) === null || _correctAnswer$curren3 === void 0 ? void 0 : _correctAnswer$curren3.value) == 0 ? correctAnswer[currentIndex].value : category.value;
113
+ correctResponseDefinition[currentIndex] = {
114
+ label: label,
115
+ value: value,
116
+ editable: category.editable,
117
+ interactive: category.interactive
118
+ };
119
+ });
120
+
121
+ if (correctResponseDefinition.length < correctAnswer.length) {
122
+ var missingCategories = correctAnswerData.slice(correctResponseDefinition.length, correctAnswer.length);
123
+ return addCategoryProps(correctResponseDefinition.concat(missingCategories), data);
124
+ }
125
+
126
+ return correctResponseDefinition;
127
+ };
128
+
129
+ var insertCategory = function insertCategory(correctAnswer, data) {
130
+ var positionToInsert = data.length - 1;
131
+ var _data = data[data.length - 1],
132
+ editable = _data.editable,
133
+ interactive = _data.interactive,
134
+ deletable = _data.deletable,
135
+ categoryToInsert = (0, _objectWithoutProperties2["default"])(_data, _excluded);
136
+ correctAnswer.splice(positionToInsert, 0, categoryToInsert);
137
+ var correctAnswerData = (0, _toConsumableArray2["default"])(correctAnswer);
138
+ return addCategoryProps(correctAnswerData, data);
139
+ };
140
+
141
+ var removeCategory = function removeCategory(correctAnswer, data, positionToRemove) {
142
+ correctAnswer.splice(positionToRemove, 1);
143
+ var correctAnswerData = (0, _toConsumableArray2["default"])(correctAnswer);
144
+ return addCategoryProps(correctAnswerData, data);
145
+ };
146
+
67
147
  var CorrectResponse = /*#__PURE__*/function (_React$Component) {
68
148
  (0, _inherits2["default"])(CorrectResponse, _React$Component);
69
149
 
70
150
  var _super = _createSuper(CorrectResponse);
71
151
 
72
- function CorrectResponse() {
152
+ function CorrectResponse(props) {
73
153
  var _this;
74
154
 
75
155
  (0, _classCallCheck2["default"])(this, CorrectResponse);
76
-
77
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
78
- args[_key] = arguments[_key];
79
- }
80
-
81
- _this = _super.call.apply(_super, [this].concat(args));
156
+ _this = _super.call(this, props);
82
157
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeData", function (data) {
83
158
  var _this$props = _this.props,
84
159
  model = _this$props.model,
@@ -89,24 +164,95 @@ var CorrectResponse = /*#__PURE__*/function (_React$Component) {
89
164
 
90
165
  onChange(_objectSpread(_objectSpread({}, model), {}, {
91
166
  correctAnswer: _objectSpread(_objectSpread({}, correctAnswer), {}, {
92
- data: data
167
+ data: data.map(function (_ref2) {
168
+ var interactive = _ref2.interactive,
169
+ editable = _ref2.editable,
170
+ index = _ref2.index,
171
+ keepAttrs = (0, _objectWithoutProperties2["default"])(_ref2, _excluded2);
172
+ return keepAttrs;
173
+ })
93
174
  })
94
175
  }));
95
176
  });
96
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeEditable", function (value) {
97
- return _this.props.onChange(_objectSpread(_objectSpread({}, _this.props.model), {}, {
98
- editCategoryEnabled: value
99
- }));
100
- });
101
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeAddRemoveEnabled", function (value) {
102
- return _this.props.onChange(_objectSpread(_objectSpread({}, _this.props.model), {}, {
103
- addCategoryEnabled: value
104
- }));
105
- });
177
+ _this.state = {
178
+ categories: updateCorrectResponseData(props.model.correctAnswer.data, props.model.data)
179
+ };
106
180
  return _this;
107
181
  }
108
182
 
109
183
  (0, _createClass2["default"])(CorrectResponse, [{
184
+ key: "UNSAFE_componentWillReceiveProps",
185
+ value: function UNSAFE_componentWillReceiveProps(nextProps) {
186
+ var _nextProps$model = nextProps.model;
187
+ _nextProps$model = _nextProps$model === void 0 ? {} : _nextProps$model;
188
+ var _nextProps$model$data = _nextProps$model.data,
189
+ nextData = _nextProps$model$data === void 0 ? [] : _nextProps$model$data,
190
+ _nextProps$model$corr = _nextProps$model.correctAnswer.data,
191
+ nextCorrectAnswerData = _nextProps$model$corr === void 0 ? [] : _nextProps$model$corr;
192
+ var _this$props$model = this.props.model;
193
+ _this$props$model = _this$props$model === void 0 ? {} : _this$props$model;
194
+ var _this$props$model$dat = _this$props$model.data,
195
+ data = _this$props$model$dat === void 0 ? [] : _this$props$model$dat;
196
+ var categories = this.state.categories;
197
+ var nextCategories = [];
198
+
199
+ if (nextData.length > data.length) {
200
+ nextCategories = insertCategory(nextCorrectAnswerData, nextData);
201
+ }
202
+
203
+ if (nextData.length < data.length) {
204
+ var removedIndex = nextData.length; // we need to remove the category from the correct answer data and categories, from the same index it was removed from the data
205
+ // index is a property of the nextData category
206
+
207
+ for (var index = 0; index < nextData.length; index++) {
208
+ if (nextData[index].index !== index) {
209
+ removedIndex = index;
210
+ break;
211
+ }
212
+ }
213
+
214
+ this.props.model.correctAnswer.data.splice(removedIndex, 1);
215
+ nextCategories = removeCategory(categories, nextData, removedIndex);
216
+ }
217
+
218
+ if (!(0, _isEqual["default"])(nextCorrectAnswerData, this.props.model.correctAnswer.data)) {
219
+ nextCategories = nextCorrectAnswerData.map(function (correct, index) {
220
+ return _objectSpread(_objectSpread({}, correct), {}, {
221
+ editable: index < data.length ? data[index].editable : true,
222
+ interactive: index < data.length ? data[index].interactive : true
223
+ });
224
+ });
225
+ } else if ((0, _isEmpty["default"])(nextCategories)) {
226
+ nextCategories = updateCorrectResponseData(nextCorrectAnswerData, nextData);
227
+ nextCorrectAnswerData.map(function (answer, currentIndex) {
228
+ var dataExists = currentIndex < nextData.length;
229
+ var label;
230
+ var value;
231
+ var deletable;
232
+
233
+ if (dataExists) {
234
+ label = nextData[currentIndex].editable ? answer.label : nextData[currentIndex].label;
235
+ value = nextData[currentIndex].interactive ? answer.value : nextData[currentIndex].value;
236
+ } else {
237
+ label = answer.label;
238
+ value = answer.value;
239
+ deletable = true;
240
+ }
241
+
242
+ nextCorrectAnswerData[currentIndex] = {
243
+ label: label,
244
+ value: value
245
+ };
246
+ });
247
+ }
248
+
249
+ if (!(0, _isEqual["default"])(nextCategories, data) || !(0, _isEqual["default"])(nextCorrectAnswerData, categories) || !(0, _isEqual["default"])(nextCategories, categories) || (0, _isEmpty["default"])(nextCategories) && (0, _isEmpty["default"])(data)) {
250
+ this.setState({
251
+ categories: nextCategories
252
+ });
253
+ }
254
+ }
255
+ }, {
110
256
  key: "render",
111
257
  value: function render() {
112
258
  var _this2 = this;
@@ -114,36 +260,51 @@ var CorrectResponse = /*#__PURE__*/function (_React$Component) {
114
260
  var _this$props2 = this.props,
115
261
  classes = _this$props2.classes,
116
262
  model = _this$props2.model,
117
- charts = _this$props2.charts;
263
+ charts = _this$props2.charts,
264
+ error = _this$props2.error,
265
+ correctAnswerErrors = _this$props2.correctAnswerErrors;
266
+ var categories = this.state.categories;
267
+
268
+ var _ref3 = model || {},
269
+ _ref3$domain = _ref3.domain,
270
+ domain = _ref3$domain === void 0 ? {} : _ref3$domain,
271
+ _ref3$range = _ref3.range,
272
+ range = _ref3$range === void 0 ? {} : _ref3$range;
273
+
274
+ var _ref4 = correctAnswerErrors || {},
275
+ identicalError = _ref4.identicalError,
276
+ categoriesError = _ref4.categoriesError;
277
+
118
278
  return /*#__PURE__*/React.createElement("div", null, "Define Correct Response", /*#__PURE__*/React.createElement("div", {
119
279
  className: classes.container
120
280
  }, /*#__PURE__*/React.createElement("div", {
121
- key: "correct-response-graph-".concat(model.correctAnswer.name)
122
- }, /*#__PURE__*/React.createElement("p", null, model.correctAnswer.name), /*#__PURE__*/React.createElement(_charting.Chart, {
281
+ className: classes.column,
282
+ key: "graph"
283
+ }, /*#__PURE__*/React.createElement(_Typography["default"], {
284
+ component: "div",
285
+ type: "body1"
286
+ }, /*#__PURE__*/React.createElement("span", null, "Use the tools below to define the correct answer.")), /*#__PURE__*/React.createElement("div", {
287
+ key: "correct-response-graph-".concat(model.correctAnswer.name),
288
+ className: identicalError || categoriesError ? classes.chartError : {}
289
+ }, /*#__PURE__*/React.createElement(_charting.Chart, {
123
290
  chartType: model.chartType,
124
291
  size: model.graph,
125
- domain: model.domain,
126
- range: model.range,
292
+ domain: domain,
293
+ range: range,
127
294
  charts: charts,
128
- data: model.correctAnswer.data || [],
295
+ data: categories,
129
296
  title: model.title,
130
297
  onDataChange: function onDataChange(data) {
131
298
  return _this2.changeData(data);
132
299
  },
133
- editCategoryEnabled: true,
134
- addCategoryEnabled: true,
135
- categoryDefaultLabel: model.categoryDefaultLabel
136
- }), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(_Checkbox["default"], {
137
- checked: model.editCategoryEnabled,
138
- onChange: function onChange(e) {
139
- _this2.changeEditable(e.target.checked);
140
- }
141
- }), "Student can edit category labels"), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(_Checkbox["default"], {
142
- checked: model.addCategoryEnabled,
143
- onChange: function onChange(e) {
144
- _this2.changeAddRemoveEnabled(e.target.checked);
145
- }
146
- }), "Student can add/remove category labels"))));
300
+ addCategoryEnabled: model.addCategoryEnabled,
301
+ categoryDefaultLabel: model.categoryDefaultLabel,
302
+ error: error
303
+ })), (identicalError || categoriesError) && /*#__PURE__*/React.createElement(_Typography["default"], {
304
+ component: "div",
305
+ type: "body1",
306
+ className: classes.errorText
307
+ }, /*#__PURE__*/React.createElement("span", null, identicalError || categoriesError)))));
147
308
  }
148
309
  }]);
149
310
  return CorrectResponse;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/correct-response.jsx"],"names":["styles","theme","container","border","borderRadius","padding","spacing","unit","background","button","marginTop","cursor","width","CorrectResponse","data","props","model","onChange","correctAnswer","value","editCategoryEnabled","addCategoryEnabled","classes","charts","name","chartType","graph","domain","range","title","changeData","categoryDefaultLabel","e","changeEditable","target","checked","changeAddRemoveEnabled","React","Component","PropTypes","object","isRequired","func","array"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;AAEA,IAAMA,MAAM,GAAG,SAATA,MAAS,CAAAC,KAAK;AAAA,SAAK;AACvBC,IAAAA,SAAS,EAAE;AACTC,MAAAA,MAAM,EAAE,mBADC;AAETC,MAAAA,YAAY,EAAE,KAFL;AAGTC,MAAAA,OAAO,YAAKJ,KAAK,CAACK,OAAN,CAAcC,IAAd,GAAqB,CAA1B,gBAAiCN,KAAK,CAACK,OAAN,CAAcC,IAAd,GAAqB,CAAtD,OAHE;AAITC,MAAAA,UAAU,EAAE;AAJH,KADY;AAOvBC,IAAAA,MAAM,EAAE;AACNC,MAAAA,SAAS,EAAET,KAAK,CAACK,OAAN,CAAcC,IAAd,GAAqB,CAD1B;AAENI,MAAAA,MAAM,EAAE,SAFF;AAGNH,MAAAA,UAAU,EAAE,MAHN;AAINH,MAAAA,OAAO,EAAEJ,KAAK,CAACK,OAAN,CAAcC,IAAd,GAAqB,CAJxB;AAKNK,MAAAA,KAAK,EAAE,aALD;AAMNR,MAAAA,YAAY,EAAE;AANR;AAPe,GAAL;AAAA,CAApB;;IAiBaS,e;;;;;;;;;;;;;;;mGAQE,UAAAC,IAAI,EAAI;AACnB,wBAA4B,MAAKC,KAAjC;AAAA,UAAQC,KAAR,eAAQA,KAAR;AAAA,UAAeC,QAAf,eAAeA,QAAf;;AACA,iBAA0BD,KAAK,IAAI,EAAnC;AAAA,UAAQE,aAAR,QAAQA,aAAR;;AAEAD,MAAAA,QAAQ,iCACHD,KADG;AAENE,QAAAA,aAAa,kCACRA,aADQ;AAEXJ,UAAAA,IAAI,EAAJA;AAFW;AAFP,SAAR;AAOD,K;uGAEgB,UAAAK,KAAK;AAAA,aAAI,MAAKJ,KAAL,CAAWE,QAAX,iCAAyB,MAAKF,KAAL,CAAWC,KAApC;AAA2CI,QAAAA,mBAAmB,EAAED;AAAhE,SAAJ;AAAA,K;+GAEG,UAAAA,KAAK;AAAA,aAAI,MAAKJ,KAAL,CAAWE,QAAX,iCAAyB,MAAKF,KAAL,CAAWC,KAApC;AAA2CK,QAAAA,kBAAkB,EAAEF;AAA/D,SAAJ;AAAA,K;;;;;;WAE9B,kBAAS;AAAA;;AACP,yBAAmC,KAAKJ,KAAxC;AAAA,UAAQO,OAAR,gBAAQA,OAAR;AAAA,UAAiBN,KAAjB,gBAAiBA,KAAjB;AAAA,UAAwBO,MAAxB,gBAAwBA,MAAxB;AAEA,0BACE,yEAEE;AAAK,QAAA,SAAS,EAAED,OAAO,CAACpB;AAAxB,sBACE;AAAK,QAAA,GAAG,mCAA4Bc,KAAK,CAACE,aAAN,CAAoBM,IAAhD;AAAR,sBACE,+BAAIR,KAAK,CAACE,aAAN,CAAoBM,IAAxB,CADF,eAEE,oBAAC,eAAD;AACE,QAAA,SAAS,EAAER,KAAK,CAACS,SADnB;AAEE,QAAA,IAAI,EAAET,KAAK,CAACU,KAFd;AAGE,QAAA,MAAM,EAAEV,KAAK,CAACW,MAHhB;AAIE,QAAA,KAAK,EAAEX,KAAK,CAACY,KAJf;AAKE,QAAA,MAAM,EAAEL,MALV;AAME,QAAA,IAAI,EAAEP,KAAK,CAACE,aAAN,CAAoBJ,IAApB,IAA4B,EANpC;AAOE,QAAA,KAAK,EAAEE,KAAK,CAACa,KAPf;AAQE,QAAA,YAAY,EAAE,sBAACf,IAAD;AAAA,iBAAU,MAAI,CAACgB,UAAL,CAAgBhB,IAAhB,CAAV;AAAA,SARhB;AASE,QAAA,mBAAmB,EAAE,IATvB;AAUE,QAAA,kBAAkB,EAAE,IAVtB;AAWE,QAAA,oBAAoB,EAAEE,KAAK,CAACe;AAX9B,QAFF,eAeE,8CACE,oBAAC,oBAAD;AACE,QAAA,OAAO,EAAEf,KAAK,CAACI,mBADjB;AAEE,QAAA,QAAQ,EAAE,kBAACY,CAAD,EAAO;AACf,UAAA,MAAI,CAACC,cAAL,CAAoBD,CAAC,CAACE,MAAF,CAASC,OAA7B;AACD;AAJH,QADF,qCAfF,eAwBE,8CACE,oBAAC,oBAAD;AACE,QAAA,OAAO,EAAEnB,KAAK,CAACK,kBADjB;AAEE,QAAA,QAAQ,EAAE,kBAACW,CAAD,EAAO;AACf,UAAA,MAAI,CAACI,sBAAL,CAA4BJ,CAAC,CAACE,MAAF,CAASC,OAArC;AACD;AAJH,QADF,2CAxBF,CADF,CAFF,CADF;AAyCD;;;EArEkCE,KAAK,CAACC,S;;;iCAA9BzB,e,eACQ;AACjBS,EAAAA,OAAO,EAAEiB,sBAAUC,MAAV,CAAiBC,UADT;AAEjBzB,EAAAA,KAAK,EAAEuB,sBAAUC,MAAV,CAAiBC,UAFP;AAGjBxB,EAAAA,QAAQ,EAAEsB,sBAAUG,IAAV,CAAeD,UAHR;AAIjBlB,EAAAA,MAAM,EAAEgB,sBAAUI;AAJD,C;;eAuEN,wBAAW3C,MAAX,EAAmBa,eAAnB,C","sourcesContent":["import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport Checkbox from '@material-ui/core/Checkbox';\nimport { Chart } from '@pie-lib/charting';\n\nconst styles = theme => ({\n container: {\n border: '2px solid #ababab',\n borderRadius: '4px',\n padding: `${theme.spacing.unit * 2}px ${theme.spacing.unit * 4}px`,\n background: '#fafafa'\n },\n button: {\n marginTop: theme.spacing.unit * 3,\n cursor: 'pointer',\n background: '#eee',\n padding: theme.spacing.unit * 2,\n width: 'fit-content',\n borderRadius: '4px'\n }\n});\n\nexport class CorrectResponse extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n model: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n charts: PropTypes.array\n };\n\n changeData = data => {\n const { model, onChange } = this.props;\n const { correctAnswer } = model || {};\n\n onChange({\n ...model,\n correctAnswer: {\n ...correctAnswer,\n data\n }\n });\n };\n\n changeEditable = value => this.props.onChange({ ...this.props.model, editCategoryEnabled: value });\n\n changeAddRemoveEnabled = value => this.props.onChange({ ...this.props.model, addCategoryEnabled: value });\n\n render() {\n const { classes, model, charts } = this.props;\n\n return (\n <div>\n Define Correct Response\n <div className={classes.container}>\n <div key={`correct-response-graph-${model.correctAnswer.name}`}>\n <p>{model.correctAnswer.name}</p>\n <Chart\n chartType={model.chartType}\n size={model.graph}\n domain={model.domain}\n range={model.range}\n charts={charts}\n data={model.correctAnswer.data || []}\n title={model.title}\n onDataChange={(data) => this.changeData(data)}\n editCategoryEnabled={true}\n addCategoryEnabled={true}\n categoryDefaultLabel={model.categoryDefaultLabel}\n />\n <div>\n <Checkbox\n checked={model.editCategoryEnabled}\n onChange={(e) => {\n this.changeEditable(e.target.checked)\n }}\n />\n Student can edit category labels\n </div>\n <div>\n <Checkbox\n checked={model.addCategoryEnabled}\n onChange={(e) => {\n this.changeAddRemoveEnabled(e.target.checked)\n }}\n />\n Student can add/remove category labels\n </div>\n </div>\n </div>\n </div>\n );\n }\n}\n\nexport default withStyles(styles)(CorrectResponse);\n"],"file":"correct-response.js"}
1
+ {"version":3,"sources":["../src/correct-response.jsx"],"names":["styles","theme","container","marginTop","spacing","unit","marginBottom","display","flex","button","cursor","background","padding","width","borderRadius","column","chartError","border","errorText","fontSize","typography","color","paddingTop","addCategoryProps","correctAnswer","data","map","correct","index","editable","length","interactive","deletable","updateCorrectResponseData","correctAnswerData","correctResponseDefinition","forEach","category","currentIndex","label","value","missingCategories","slice","concat","insertCategory","positionToInsert","categoryToInsert","splice","removeCategory","positionToRemove","CorrectResponse","props","model","onChange","keepAttrs","state","categories","nextProps","nextData","nextCorrectAnswerData","nextCategories","removedIndex","answer","dataExists","setState","classes","charts","error","correctAnswerErrors","domain","range","identicalError","categoriesError","name","chartType","graph","title","changeData","addCategoryEnabled","categoryDefaultLabel","React","Component","PropTypes","object","isRequired","func","array"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { Chart } from '@pie-lib/charting';\nimport isEqual from 'lodash/isEqual';\nimport isEmpty from 'lodash/isEmpty';\n\nimport Typography from '@material-ui/core/Typography';\n\nconst styles = (theme) => ({\n container: {\n marginTop: theme.spacing.unit * 3,\n marginBottom: theme.spacing.unit * 3,\n display: 'flex',\n flex: 1,\n },\n button: {\n marginTop: theme.spacing.unit * 3,\n cursor: 'pointer',\n background: '#eee',\n padding: theme.spacing.unit * 2,\n width: 'fit-content',\n borderRadius: '4px',\n },\n column: {\n flex: 1,\n },\n chartError: {\n border: '2px solid red',\n },\n errorText: {\n fontSize: theme.typography.fontSize - 2,\n color: 'red',\n paddingTop: theme.spacing.unit,\n },\n});\n\nconst addCategoryProps = (correctAnswer, data) =>\n correctAnswer.map((correct, index) => ({\n ...correct,\n editable: index < data.length ? data[index].editable : true,\n interactive: index < data.length ? data[index].interactive : true,\n deletable: index >= data.length ? true : false,\n }));\n\nconst updateCorrectResponseData = (correctAnswer, data) => {\n if (!correctAnswer) {\n return data;\n }\n\n const correctAnswerData = [...correctAnswer];\n let correctResponseDefinition = [];\n\n data.forEach((category, currentIndex) => {\n const editable = category.editable;\n const interactive = category.interactive;\n const label = editable && correctAnswer[currentIndex]?.label ? correctAnswer[currentIndex].label : category.label;\n const value =\n (interactive && correctAnswer[currentIndex]?.value) || (interactive && correctAnswer[currentIndex]?.value == 0)\n ? correctAnswer[currentIndex].value\n : category.value;\n\n correctResponseDefinition[currentIndex] = {\n label: label,\n value: value,\n editable: category.editable,\n interactive: category.interactive,\n };\n });\n\n if (correctResponseDefinition.length < correctAnswer.length) {\n const missingCategories = correctAnswerData.slice(correctResponseDefinition.length, correctAnswer.length);\n\n return addCategoryProps(correctResponseDefinition.concat(missingCategories), data);\n }\n\n return correctResponseDefinition;\n};\n\nconst insertCategory = (correctAnswer, data) => {\n const positionToInsert = data.length - 1;\n const { editable, interactive, deletable, ...categoryToInsert } = data[data.length - 1];\n\n correctAnswer.splice(positionToInsert, 0, categoryToInsert);\n const correctAnswerData = [...correctAnswer];\n\n return addCategoryProps(correctAnswerData, data);\n};\n\nconst removeCategory = (correctAnswer, data, positionToRemove) => {\n correctAnswer.splice(positionToRemove, 1);\n const correctAnswerData = [...correctAnswer];\n\n return addCategoryProps(correctAnswerData, data);\n};\n\nexport class CorrectResponse extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n model: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n charts: PropTypes.array,\n };\n\n constructor(props) {\n super(props);\n this.state = {\n categories: updateCorrectResponseData(props.model.correctAnswer.data, props.model.data),\n };\n }\n\n changeData = (data) => {\n const { model, onChange } = this.props;\n const { correctAnswer } = model || {};\n\n onChange({\n ...model,\n correctAnswer: {\n ...correctAnswer,\n data: data.map(({ interactive, editable, index, ...keepAttrs }) => keepAttrs),\n },\n });\n };\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n const { model: { data: nextData = [], correctAnswer: { data: nextCorrectAnswerData = [] } } = {} } = nextProps;\n const { model: { data = [] } = {} } = this.props;\n const { categories } = this.state;\n let nextCategories = [];\n\n if (nextData.length > data.length) {\n nextCategories = insertCategory(nextCorrectAnswerData, nextData);\n }\n\n if (nextData.length < data.length) {\n let removedIndex = nextData.length;\n\n // we need to remove the category from the correct answer data and categories, from the same index it was removed from the data\n // index is a property of the nextData category\n for (let index = 0; index < nextData.length; index++) {\n if (nextData[index].index !== index) {\n removedIndex = index;\n break;\n }\n }\n\n this.props.model.correctAnswer.data.splice(removedIndex, 1);\n nextCategories = removeCategory(categories, nextData, removedIndex);\n }\n\n if (!isEqual(nextCorrectAnswerData, this.props.model.correctAnswer.data)) {\n nextCategories = nextCorrectAnswerData.map((correct, index) => ({\n ...correct,\n editable: index < data.length ? data[index].editable : true,\n interactive: index < data.length ? data[index].interactive : true,\n }));\n } else if (isEmpty(nextCategories)) {\n nextCategories = updateCorrectResponseData(nextCorrectAnswerData, nextData);\n\n nextCorrectAnswerData.map((answer, currentIndex) => {\n const dataExists = currentIndex < nextData.length;\n let label;\n let value;\n let deletable;\n\n if (dataExists) {\n label = nextData[currentIndex].editable ? answer.label : nextData[currentIndex].label;\n value = nextData[currentIndex].interactive ? answer.value : nextData[currentIndex].value;\n } else {\n label = answer.label;\n value = answer.value;\n deletable = true;\n }\n\n nextCorrectAnswerData[currentIndex] = {\n label: label,\n value: value,\n };\n });\n }\n\n if (\n !isEqual(nextCategories, data) ||\n !isEqual(nextCorrectAnswerData, categories) ||\n !isEqual(nextCategories, categories) ||\n (isEmpty(nextCategories) && isEmpty(data))\n ) {\n this.setState({ categories: nextCategories });\n }\n }\n\n render() {\n const { classes, model, charts, error, correctAnswerErrors } = this.props;\n const { categories } = this.state;\n const { domain = {}, range = {} } = model || {};\n const { identicalError, categoriesError } = correctAnswerErrors || {};\n\n return (\n <div>\n Define Correct Response\n <div className={classes.container}>\n <div className={classes.column} key=\"graph\">\n <Typography component=\"div\" type=\"body1\">\n <span>Use the tools below to define the correct answer.</span>\n </Typography>\n\n <div\n key={`correct-response-graph-${model.correctAnswer.name}`}\n className={identicalError || categoriesError ? classes.chartError : {}}\n >\n <Chart\n chartType={model.chartType}\n size={model.graph}\n domain={domain}\n range={range}\n charts={charts}\n data={categories}\n title={model.title}\n onDataChange={(data) => this.changeData(data)}\n addCategoryEnabled={model.addCategoryEnabled}\n categoryDefaultLabel={model.categoryDefaultLabel}\n error={error}\n />\n </div>\n\n {(identicalError || categoriesError) && (\n <Typography component=\"div\" type=\"body1\" className={classes.errorText}>\n <span>{identicalError || categoriesError}</span>\n </Typography>\n )}\n </div>\n </div>\n </div>\n );\n }\n}\n\nexport default withStyles(styles)(CorrectResponse);\n"],"file":"correct-response.js"}
@@ -13,10 +13,8 @@ exports["default"] = void 0;
13
13
  // const createCategory = (label, value) => ({
14
14
  // label,
15
15
  // value,
16
- // initial: true,
17
16
  // interactive: true,
18
- // editable: true,
19
- // deletable: true
17
+ // editable: true
20
18
  // });
21
19
  var _default = {
22
20
  model: {
@@ -25,29 +23,46 @@ var _default = {
25
23
  chartType: 'lineCross',
26
24
  correctAnswer: {},
27
25
  data: [],
28
- domain: {
29
- label: 'Fruits'
30
- },
31
- editCategoryEnabled: true,
26
+ domain: {},
32
27
  graph: {
33
28
  width: 480,
34
29
  height: 480
35
30
  },
36
- prompt: 'Here goes item stem!',
31
+ prompt: '',
37
32
  promptEnabled: true,
38
- rationale: 'Rationale goes here!',
33
+ rationale: '',
39
34
  range: {
40
- label: 'Amount',
41
- max: 5.5,
35
+ label: '',
36
+ max: 1,
42
37
  min: 0
43
38
  },
44
39
  scoringType: 'all or nothing',
45
- title: 'This is a chart!',
40
+ title: '',
46
41
  rationaleEnabled: true,
47
42
  teacherInstructionsEnabled: true,
48
43
  studentInstructionsEnabled: true
49
44
  },
50
45
  configuration: {
46
+ spellCheck: {
47
+ label: 'Spellcheck',
48
+ settings: false,
49
+ enabled: true
50
+ },
51
+ chartDimensions: {
52
+ settings: false,
53
+ label: 'Chart Dimensions',
54
+ showInConfigPanel: true,
55
+ width: {
56
+ min: 50,
57
+ max: 700,
58
+ step: 20
59
+ },
60
+ height: {
61
+ min: 400,
62
+ max: 700,
63
+ step: 20
64
+ }
65
+ },
51
66
  prompt: {
52
67
  settings: true,
53
68
  label: 'Item Stem'
@@ -60,6 +75,7 @@ var _default = {
60
75
  settings: false,
61
76
  label: 'Scoring Type'
62
77
  },
78
+ settingsPanelDisabled: false,
63
79
  studentInstructions: {
64
80
  settings: false,
65
81
  label: 'Student Instructions'
@@ -70,7 +86,31 @@ var _default = {
70
86
  },
71
87
  title: {
72
88
  settings: false,
73
- label: 'Graph Title'
89
+ label: 'Chart Title'
90
+ },
91
+ titlePlaceholder: {
92
+ settings: false,
93
+ label: 'Click here to add a title'
94
+ },
95
+ labelsPlaceholders: {
96
+ left: 'Click here to add a label for this axis',
97
+ right: '',
98
+ top: '',
99
+ bottom: 'Click here to add a label for this axis'
100
+ },
101
+ maxImageWidth: {
102
+ teacherInstructions: 300,
103
+ prompt: 300,
104
+ rationale: 300
105
+ },
106
+ maxImageHeight: {
107
+ teacherInstructions: 300,
108
+ prompt: 300,
109
+ rationale: 300
110
+ },
111
+ withRubric: {
112
+ settings: false,
113
+ label: 'Add Rubric'
74
114
  }
75
115
  }
76
116
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/defaults.js"],"names":["model","addCategoryEnabled","categoryDefaultLabel","chartType","correctAnswer","data","domain","label","editCategoryEnabled","graph","width","height","prompt","promptEnabled","rationale","range","max","min","scoringType","title","rationaleEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","configuration","settings","studentInstructions","teacherInstructions"],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;eAEe;AACbA,EAAAA,KAAK,EAAE;AACLC,IAAAA,kBAAkB,EAAE,IADf;AAELC,IAAAA,oBAAoB,EAAE,UAFjB;AAGLC,IAAAA,SAAS,EAAE,WAHN;AAILC,IAAAA,aAAa,EAAE,EAJV;AAKLC,IAAAA,IAAI,EAAE,EALD;AAMLC,IAAAA,MAAM,EAAE;AACNC,MAAAA,KAAK,EAAE;AADD,KANH;AASLC,IAAAA,mBAAmB,EAAE,IAThB;AAULC,IAAAA,KAAK,EAAE;AACLC,MAAAA,KAAK,EAAE,GADF;AAELC,MAAAA,MAAM,EAAE;AAFH,KAVF;AAcLC,IAAAA,MAAM,EAAE,sBAdH;AAeLC,IAAAA,aAAa,EAAE,IAfV;AAgBLC,IAAAA,SAAS,EAAE,sBAhBN;AAiBLC,IAAAA,KAAK,EAAE;AACLR,MAAAA,KAAK,EAAE,QADF;AAELS,MAAAA,GAAG,EAAE,GAFA;AAGLC,MAAAA,GAAG,EAAE;AAHA,KAjBF;AAsBLC,IAAAA,WAAW,EAAE,gBAtBR;AAuBLC,IAAAA,KAAK,EAAE,kBAvBF;AAwBLC,IAAAA,gBAAgB,EAAE,IAxBb;AAyBLC,IAAAA,0BAA0B,EAAE,IAzBvB;AA0BLC,IAAAA,0BAA0B,EAAE;AA1BvB,GADM;AA6BbC,EAAAA,aAAa,EAAE;AACbX,IAAAA,MAAM,EAAE;AACNY,MAAAA,QAAQ,EAAE,IADJ;AAENjB,MAAAA,KAAK,EAAE;AAFD,KADK;AAKbO,IAAAA,SAAS,EAAE;AACTU,MAAAA,QAAQ,EAAE,IADD;AAETjB,MAAAA,KAAK,EAAE;AAFE,KALE;AASbW,IAAAA,WAAW,EAAE;AACXM,MAAAA,QAAQ,EAAE,KADC;AAEXjB,MAAAA,KAAK,EAAE;AAFI,KATA;AAabkB,IAAAA,mBAAmB,EAAE;AACnBD,MAAAA,QAAQ,EAAE,KADS;AAEnBjB,MAAAA,KAAK,EAAE;AAFY,KAbR;AAiBbmB,IAAAA,mBAAmB,EAAE;AACnBF,MAAAA,QAAQ,EAAE,IADS;AAEnBjB,MAAAA,KAAK,EAAE;AAFY,KAjBR;AAqBbY,IAAAA,KAAK,EAAE;AACLK,MAAAA,QAAQ,EAAE,KADL;AAELjB,MAAAA,KAAK,EAAE;AAFF;AArBM;AA7BF,C","sourcesContent":["/**\n * NOTE: There's no functionality described for graphTitle,\n * rationale, scoringType, studentInstructions, teacherInstructions\n * so there's no implementation (they are only added in model)\n */\n\n\n// const createCategory = (label, value) => ({\n// label,\n// value,\n// initial: true,\n// interactive: true,\n// editable: true,\n// deletable: true\n// });\n\nexport default {\n model: {\n addCategoryEnabled: true,\n categoryDefaultLabel: 'Category',\n chartType: 'lineCross',\n correctAnswer: {},\n data: [],\n domain: {\n label: 'Fruits',\n },\n editCategoryEnabled: true,\n graph: {\n width: 480,\n height: 480\n },\n prompt: 'Here goes item stem!',\n promptEnabled: true,\n rationale: 'Rationale goes here!',\n range: {\n label: 'Amount',\n max: 5.5,\n min: 0,\n },\n scoringType: 'all or nothing',\n title: 'This is a chart!',\n rationaleEnabled: true,\n teacherInstructionsEnabled: true,\n studentInstructionsEnabled: true\n },\n configuration: {\n prompt: {\n settings: true,\n label: 'Item Stem'\n },\n rationale: {\n settings: true,\n label: 'Rationale'\n },\n scoringType: {\n settings: false,\n label: 'Scoring Type'\n },\n studentInstructions: {\n settings: false,\n label: 'Student Instructions'\n },\n teacherInstructions: {\n settings: true,\n label: 'Teacher Instructions'\n },\n title: {\n settings: false,\n label: 'Graph Title'\n }\n }\n};\n"],"file":"defaults.js"}
1
+ {"version":3,"sources":["../src/defaults.js"],"names":["model","addCategoryEnabled","categoryDefaultLabel","chartType","correctAnswer","data","domain","graph","width","height","prompt","promptEnabled","rationale","range","label","max","min","scoringType","title","rationaleEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","configuration","spellCheck","settings","enabled","chartDimensions","showInConfigPanel","step","settingsPanelDisabled","studentInstructions","teacherInstructions","titlePlaceholder","labelsPlaceholders","left","right","top","bottom","maxImageWidth","maxImageHeight","withRubric"],"mappings":"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","sourcesContent":["/**\n * NOTE: There's no functionality described for graphTitle,\n * rationale, scoringType, studentInstructions, teacherInstructions\n * so there's no implementation (they are only added in model)\n */\n\n// const createCategory = (label, value) => ({\n// label,\n// value,\n// interactive: true,\n// editable: true\n// });\n\nexport default {\n model: {\n addCategoryEnabled: true,\n categoryDefaultLabel: 'Category',\n chartType: 'lineCross',\n correctAnswer: {},\n data: [],\n domain: {},\n graph: {\n width: 480,\n height: 480,\n },\n prompt: '',\n promptEnabled: true,\n rationale: '',\n range: {\n label: '',\n max: 1,\n min: 0,\n },\n scoringType: 'all or nothing',\n title: '',\n rationaleEnabled: true,\n teacherInstructionsEnabled: true,\n studentInstructionsEnabled: true,\n },\n configuration: {\n spellCheck: {\n label: 'Spellcheck',\n settings: false,\n enabled: true,\n },\n chartDimensions: {\n settings: false,\n label: 'Chart Dimensions',\n showInConfigPanel: true,\n width: {\n min: 50,\n max: 700,\n step: 20,\n },\n height: {\n min: 400,\n max: 700,\n step: 20,\n },\n },\n prompt: {\n settings: true,\n label: 'Item Stem',\n },\n rationale: {\n settings: true,\n label: 'Rationale',\n },\n scoringType: {\n settings: false,\n label: 'Scoring Type',\n },\n settingsPanelDisabled: false,\n studentInstructions: {\n settings: false,\n label: 'Student Instructions',\n },\n teacherInstructions: {\n settings: true,\n label: 'Teacher Instructions',\n },\n title: {\n settings: false,\n label: 'Chart Title',\n },\n titlePlaceholder: {\n settings: false,\n label: 'Click here to add a title',\n },\n labelsPlaceholders: {\n left: 'Click here to add a label for this axis',\n right: '',\n top: '',\n bottom: 'Click here to add a label for this axis',\n },\n maxImageWidth: {\n teacherInstructions: 300,\n prompt: 300,\n rationale: 300,\n },\n maxImageHeight: {\n teacherInstructions: 300,\n prompt: 300,\n rationale: 300,\n },\n withRubric: {\n settings: false,\n label: 'Add Rubric',\n },\n },\n};\n"],"file":"defaults.js"}
@@ -33,9 +33,11 @@ var _configure = _interopRequireDefault(require("./configure"));
33
33
 
34
34
  var _defaults = _interopRequireDefault(require("./defaults"));
35
35
 
36
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
36
+ var _mathRendering = require("@pie-lib/math-rendering");
37
37
 
38
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
38
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
39
+
40
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
39
41
 
40
42
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
41
43
 
@@ -99,9 +101,21 @@ var GraphLinesConfigure = /*#__PURE__*/function (_HTMLElement) {
99
101
  value: function onDeleteImage(src, done) {
100
102
  this.dispatchEvent(new _pieConfigureEvents.DeleteImageEvent(src, done));
101
103
  }
104
+ }, {
105
+ key: "insertSound",
106
+ value: function insertSound(handler) {
107
+ this.dispatchEvent(new _pieConfigureEvents.InsertSoundEvent(handler));
108
+ }
109
+ }, {
110
+ key: "onDeleteSound",
111
+ value: function onDeleteSound(src, done) {
112
+ this.dispatchEvent(new _pieConfigureEvents.DeleteSoundEvent(src, done));
113
+ }
102
114
  }, {
103
115
  key: "_render",
104
116
  value: function _render() {
117
+ var _this2 = this;
118
+
105
119
  if (this._model) {
106
120
  var el = /*#__PURE__*/_react["default"].createElement(_configure["default"], {
107
121
  onModelChanged: this.onModelChanged.bind(this),
@@ -111,10 +125,16 @@ var GraphLinesConfigure = /*#__PURE__*/function (_HTMLElement) {
111
125
  imageSupport: {
112
126
  add: this.insertImage.bind(this),
113
127
  "delete": this.onDeleteImage.bind(this)
128
+ },
129
+ uploadSoundSupport: {
130
+ add: this.insertSound.bind(this),
131
+ "delete": this.onDeleteSound.bind(this)
114
132
  }
115
133
  });
116
134
 
117
- _reactDom["default"].render(el, this);
135
+ _reactDom["default"].render(el, this, function () {
136
+ (0, _mathRendering.renderMath)(_this2);
137
+ });
118
138
  }
119
139
  }
120
140
  }]);
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.js"],"names":["log","GraphLinesConfigure","_model","createDefaultModel","_configuration","defaultValues","configuration","m","_render","c","model","dispatchEvent","ModelUpdatedEvent","config","handler","InsertImageEvent","src","done","DeleteImageEvent","el","React","createElement","Configure","onModelChanged","bind","onConfigurationChanged","imageSupport","add","insertImage","onDeleteImage","ReactDOM","render","HTMLElement"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;AAEA,IAAMA,GAAG,GAAG,uBAAM,iCAAN,CAAZ;;IAEqBC,mB;;;;;AAGnB,iCAAc;AAAA;;AAAA;AACZ;AACA,UAAKC,MAAL,GAAcD,mBAAmB,CAACE,kBAApB,EAAd;AACA,UAAKC,cAAL,GAAsBC,qBAAcC,aAApC;AAHY;AAIb;;;;SAED,aAAUC,CAAV,EAAa;AACX,WAAKL,MAAL,GAAcD,mBAAmB,CAACE,kBAApB,CAAuCI,CAAvC,CAAd;;AACA,WAAKC,OAAL;AACD;;;SAED,aAAkBC,CAAlB,EAAqB;AACnB,WAAKL,cAAL,GAAsBK,CAAtB;;AACA,WAAKD,OAAL;AACD;;;WAED,wBAAeE,KAAf,EAAsB;AACpB,WAAKR,MAAL,GAAcQ,KAAd;;AACA,WAAKF,OAAL;;AACAR,MAAAA,GAAG,CAAC,oBAAD,EAAuB,KAAKE,MAA5B,CAAH;AACA,WAAKS,aAAL,CAAmB,IAAIC,qCAAJ,CAAsB,KAAKV,MAA3B,CAAnB;AACD;;;WAED,gCAAuBW,MAAvB,EAA+B;AAC7B,WAAKT,cAAL,GAAsBS,MAAtB;;AACA,WAAKL,OAAL;AACD;;;WAED,qBAAYM,OAAZ,EAAqB;AACnB,WAAKH,aAAL,CAAmB,IAAII,oCAAJ,CAAqBD,OAArB,CAAnB;AACD;;;WAED,uBAAcE,GAAd,EAAmBC,IAAnB,EAAyB;AACvB,WAAKN,aAAL,CAAmB,IAAIO,oCAAJ,CAAqBF,GAArB,EAA0BC,IAA1B,CAAnB;AACD;;;WAED,mBAAU;AACR,UAAI,KAAKf,MAAT,EAAiB;AACf,YAAMiB,EAAE,gBAAGC,kBAAMC,aAAN,CAAoBC,qBAApB,EAA+B;AACxCC,UAAAA,cAAc,EAAE,KAAKA,cAAL,CAAoBC,IAApB,CAAyB,IAAzB,CADwB;AAExCC,UAAAA,sBAAsB,EAAE,KAAKA,sBAAL,CAA4BD,IAA5B,CAAiC,IAAjC,CAFgB;AAGxCd,UAAAA,KAAK,EAAE,KAAKR,MAH4B;AAIxCI,UAAAA,aAAa,EAAE,KAAKF,cAJoB;AAKxCsB,UAAAA,YAAY,EAAE;AACZC,YAAAA,GAAG,EAAE,KAAKC,WAAL,CAAiBJ,IAAjB,CAAsB,IAAtB,CADO;AAEZ,sBAAQ,KAAKK,aAAL,CAAmBL,IAAnB,CAAwB,IAAxB;AAFI;AAL0B,SAA/B,CAAX;;AAUAM,6BAASC,MAAT,CAAgBZ,EAAhB,EAAoB,IAApB;AACD;AACF;;;kDArD8Ca,W;;;iCAA5B/B,mB,wBACS;AAAA,MAACS,KAAD,uEAAS,EAAT;AAAA,yCAAsBL,qBAAcK,KAApC,GAA8CA,KAA9C;AAAA,C","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport { DeleteImageEvent, InsertImageEvent, ModelUpdatedEvent } from '@pie-framework/pie-configure-events';\nimport debug from 'debug';\nimport Configure from './configure';\nimport defaultValues from './defaults';\n\nconst log = debug('pie-elements:graphing:configure');\n\nexport default class GraphLinesConfigure extends HTMLElement {\n static createDefaultModel = (model = {}) => ({ ...defaultValues.model, ...model });\n\n constructor() {\n super();\n this._model = GraphLinesConfigure.createDefaultModel();\n this._configuration = defaultValues.configuration;\n }\n\n set model(m) {\n this._model = GraphLinesConfigure.createDefaultModel(m);\n this._render();\n }\n\n set configuration(c) {\n this._configuration = c;\n this._render();\n }\n\n onModelChanged(model) {\n this._model = model;\n this._render();\n log('[onModelChanged]: ', this._model);\n this.dispatchEvent(new ModelUpdatedEvent(this._model));\n }\n\n onConfigurationChanged(config) {\n this._configuration = config;\n this._render();\n }\n\n insertImage(handler) {\n this.dispatchEvent(new InsertImageEvent(handler));\n }\n\n onDeleteImage(src, done) {\n this.dispatchEvent(new DeleteImageEvent(src, done));\n }\n\n _render() {\n if (this._model) {\n const el = React.createElement(Configure, {\n onModelChanged: this.onModelChanged.bind(this),\n onConfigurationChanged: this.onConfigurationChanged.bind(this),\n model: this._model,\n configuration: this._configuration,\n imageSupport: {\n add: this.insertImage.bind(this),\n delete: this.onDeleteImage.bind(this)\n }\n });\n ReactDOM.render(el, this);\n }\n }\n}\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../src/index.js"],"names":["log","GraphLinesConfigure","_model","createDefaultModel","_configuration","defaultValues","configuration","m","_render","c","model","dispatchEvent","ModelUpdatedEvent","config","handler","InsertImageEvent","src","done","DeleteImageEvent","InsertSoundEvent","DeleteSoundEvent","el","React","createElement","Configure","onModelChanged","bind","onConfigurationChanged","imageSupport","add","insertImage","onDeleteImage","uploadSoundSupport","insertSound","onDeleteSound","ReactDOM","render","HTMLElement"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAOA;;AACA;;AACA;;AACA;;;;;;;;;;AAEA,IAAMA,GAAG,GAAG,uBAAM,iCAAN,CAAZ;;IAEqBC,mB;;;;;AAGnB,iCAAc;AAAA;;AAAA;AACZ;AACA,UAAKC,MAAL,GAAcD,mBAAmB,CAACE,kBAApB,EAAd;AACA,UAAKC,cAAL,GAAsBC,qBAAcC,aAApC;AAHY;AAIb;;;;SAED,aAAUC,CAAV,EAAa;AACX,WAAKL,MAAL,GAAcD,mBAAmB,CAACE,kBAApB,CAAuCI,CAAvC,CAAd;;AACA,WAAKC,OAAL;AACD;;;SAED,aAAkBC,CAAlB,EAAqB;AACnB,WAAKL,cAAL,GAAsBK,CAAtB;;AACA,WAAKD,OAAL;AACD;;;WAED,wBAAeE,KAAf,EAAsB;AACpB,WAAKR,MAAL,GAAcQ,KAAd;;AACA,WAAKF,OAAL;;AAEAR,MAAAA,GAAG,CAAC,oBAAD,EAAuB,KAAKE,MAA5B,CAAH;AAEA,WAAKS,aAAL,CAAmB,IAAIC,qCAAJ,CAAsB,KAAKV,MAA3B,CAAnB;AACD;;;WAED,gCAAuBW,MAAvB,EAA+B;AAC7B,WAAKT,cAAL,GAAsBS,MAAtB;;AACA,WAAKL,OAAL;AACD;;;WAED,qBAAYM,OAAZ,EAAqB;AACnB,WAAKH,aAAL,CAAmB,IAAII,oCAAJ,CAAqBD,OAArB,CAAnB;AACD;;;WAED,uBAAcE,GAAd,EAAmBC,IAAnB,EAAyB;AACvB,WAAKN,aAAL,CAAmB,IAAIO,oCAAJ,CAAqBF,GAArB,EAA0BC,IAA1B,CAAnB;AACD;;;WAED,qBAAYH,OAAZ,EAAqB;AACnB,WAAKH,aAAL,CAAmB,IAAIQ,oCAAJ,CAAqBL,OAArB,CAAnB;AACD;;;WAED,uBAAcE,GAAd,EAAmBC,IAAnB,EAAyB;AACvB,WAAKN,aAAL,CAAmB,IAAIS,oCAAJ,CAAqBJ,GAArB,EAA0BC,IAA1B,CAAnB;AACD;;;WAED,mBAAU;AAAA;;AACR,UAAI,KAAKf,MAAT,EAAiB;AACf,YAAMmB,EAAE,gBAAGC,kBAAMC,aAAN,CAAoBC,qBAApB,EAA+B;AACxCC,UAAAA,cAAc,EAAE,KAAKA,cAAL,CAAoBC,IAApB,CAAyB,IAAzB,CADwB;AAExCC,UAAAA,sBAAsB,EAAE,KAAKA,sBAAL,CAA4BD,IAA5B,CAAiC,IAAjC,CAFgB;AAGxChB,UAAAA,KAAK,EAAE,KAAKR,MAH4B;AAIxCI,UAAAA,aAAa,EAAE,KAAKF,cAJoB;AAKxCwB,UAAAA,YAAY,EAAE;AACZC,YAAAA,GAAG,EAAE,KAAKC,WAAL,CAAiBJ,IAAjB,CAAsB,IAAtB,CADO;AAEZ,sBAAQ,KAAKK,aAAL,CAAmBL,IAAnB,CAAwB,IAAxB;AAFI,WAL0B;AASxCM,UAAAA,kBAAkB,EAAE;AAClBH,YAAAA,GAAG,EAAE,KAAKI,WAAL,CAAiBP,IAAjB,CAAsB,IAAtB,CADa;AAElB,sBAAQ,KAAKQ,aAAL,CAAmBR,IAAnB,CAAwB,IAAxB;AAFU;AAToB,SAA/B,CAAX;;AAeAS,6BAASC,MAAT,CAAgBf,EAAhB,EAAoB,IAApB,EAA0B,YAAM;AAC9B,yCAAW,MAAX;AACD,SAFD;AAGD;AACF;;;kDAtE8CgB,W;;;iCAA5BpC,mB,wBACS;AAAA,MAACS,KAAD,uEAAS,EAAT;AAAA,yCAAsBL,qBAAcK,KAApC,GAA8CA,KAA9C;AAAA,C","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport {\n ModelUpdatedEvent,\n DeleteImageEvent,\n InsertImageEvent,\n InsertSoundEvent,\n DeleteSoundEvent,\n} from '@pie-framework/pie-configure-events';\nimport debug from 'debug';\nimport Configure from './configure';\nimport defaultValues from './defaults';\nimport { renderMath } from '@pie-lib/math-rendering';\n\nconst log = debug('pie-elements:graphing:configure');\n\nexport default class GraphLinesConfigure extends HTMLElement {\n static createDefaultModel = (model = {}) => ({ ...defaultValues.model, ...model });\n\n constructor() {\n super();\n this._model = GraphLinesConfigure.createDefaultModel();\n this._configuration = defaultValues.configuration;\n }\n\n set model(m) {\n this._model = GraphLinesConfigure.createDefaultModel(m);\n this._render();\n }\n\n set configuration(c) {\n this._configuration = c;\n this._render();\n }\n\n onModelChanged(model) {\n this._model = model;\n this._render();\n\n log('[onModelChanged]: ', this._model);\n\n this.dispatchEvent(new ModelUpdatedEvent(this._model));\n }\n\n onConfigurationChanged(config) {\n this._configuration = config;\n this._render();\n }\n\n insertImage(handler) {\n this.dispatchEvent(new InsertImageEvent(handler));\n }\n\n onDeleteImage(src, done) {\n this.dispatchEvent(new DeleteImageEvent(src, done));\n }\n\n insertSound(handler) {\n this.dispatchEvent(new InsertSoundEvent(handler));\n }\n\n onDeleteSound(src, done) {\n this.dispatchEvent(new DeleteSoundEvent(src, done));\n }\n\n _render() {\n if (this._model) {\n const el = React.createElement(Configure, {\n onModelChanged: this.onModelChanged.bind(this),\n onConfigurationChanged: this.onConfigurationChanged.bind(this),\n model: this._model,\n configuration: this._configuration,\n imageSupport: {\n add: this.insertImage.bind(this),\n delete: this.onDeleteImage.bind(this),\n },\n uploadSoundSupport: {\n add: this.insertSound.bind(this),\n delete: this.onDeleteSound.bind(this),\n },\n });\n\n ReactDOM.render(el, this, () => {\n renderMath(this);\n });\n }\n }\n}\n"],"file":"index.js"}