@pie-element/charting 2.7.3-next.1016 → 2.7.3-next.1034

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"));
@@ -31,18 +35,25 @@ var _styles = require("@material-ui/core/styles");
31
35
 
32
36
  var _charting = require("@pie-lib/charting");
33
37
 
34
- 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"));
35
39
 
36
- 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"));
37
41
 
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; }
42
+ var _excluded = ["editable", "interactive", "deletable"],
43
+ _excluded2 = ["interactive", "editable"];
39
44
 
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; }
45
+ 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); }
46
+
47
+ 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; }
41
48
 
42
49
  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); }; }
43
50
 
44
51
  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; } }
45
52
 
53
+ 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; }
54
+
55
+ 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; }
56
+
46
57
  var styles = function styles(theme) {
47
58
  return {
48
59
  container: {
@@ -62,21 +73,75 @@ var styles = function styles(theme) {
62
73
  };
63
74
  };
64
75
 
76
+ var addCategoryProps = function addCategoryProps(correctAnswer, data) {
77
+ return correctAnswer.map(function (correct, index) {
78
+ return _objectSpread(_objectSpread({}, correct), {}, {
79
+ editable: index < data.length ? data[index].editable : true,
80
+ interactive: index < data.length ? data[index].interactive : true,
81
+ deletable: index >= data.length ? true : false
82
+ });
83
+ });
84
+ };
85
+
86
+ var updateCorrectResponseData = function updateCorrectResponseData(correctAnswer, data) {
87
+ if (!correctAnswer) {
88
+ return data;
89
+ }
90
+
91
+ var correctAnswerData = (0, _toConsumableArray2["default"])(correctAnswer);
92
+ var correctResponseDefinition = [];
93
+ data.forEach(function (category, currentIndex) {
94
+ var _correctAnswer$curren, _correctAnswer$curren2;
95
+
96
+ var editable = category.editable;
97
+ var interactive = category.interactive;
98
+ var label = editable && (_correctAnswer$curren = correctAnswer[currentIndex]) !== null && _correctAnswer$curren !== void 0 && _correctAnswer$curren.label ? correctAnswer[currentIndex].label : category.label;
99
+ var value = interactive && (_correctAnswer$curren2 = correctAnswer[currentIndex]) !== null && _correctAnswer$curren2 !== void 0 && _correctAnswer$curren2.value ? correctAnswer[currentIndex].value : category.value;
100
+ correctResponseDefinition[currentIndex] = {
101
+ label: label,
102
+ value: value,
103
+ editable: category.editable,
104
+ interactive: category.interactive
105
+ };
106
+ });
107
+
108
+ if (correctResponseDefinition.length < correctAnswer.length) {
109
+ var missingCategories = correctAnswerData.slice(correctResponseDefinition.length, correctAnswer.length);
110
+ return addCategoryProps(correctResponseDefinition.concat(missingCategories), data);
111
+ }
112
+
113
+ return correctResponseDefinition;
114
+ };
115
+
116
+ var insertCategory = function insertCategory(correctAnswer, data) {
117
+ var positionToInsert = data.length - 1;
118
+ var _data = data[data.length - 1],
119
+ editable = _data.editable,
120
+ interactive = _data.interactive,
121
+ deletable = _data.deletable,
122
+ categoryToInsert = (0, _objectWithoutProperties2["default"])(_data, _excluded);
123
+ correctAnswer.splice(positionToInsert, 0, categoryToInsert);
124
+ var correctAnswerData = (0, _toConsumableArray2["default"])(correctAnswer);
125
+ return addCategoryProps(correctAnswerData, data);
126
+ };
127
+
128
+ var removeCategory = function removeCategory(correctAnswer, data) {
129
+ var positionToRemove = data.length - 1;
130
+ correctAnswer.splice(positionToRemove, 1);
131
+ var correctAnswerData = (0, _toConsumableArray2["default"])(correctAnswer);
132
+ return addCategoryProps(correctAnswerData, data);
133
+ };
134
+
65
135
  var CorrectResponse = /*#__PURE__*/function (_React$Component) {
66
136
  (0, _inherits2["default"])(CorrectResponse, _React$Component);
67
137
 
68
138
  var _super = _createSuper(CorrectResponse);
69
139
 
70
- function CorrectResponse() {
140
+ function CorrectResponse(props) {
71
141
  var _this;
72
142
 
73
143
  (0, _classCallCheck2["default"])(this, CorrectResponse);
74
-
75
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
76
- args[_key] = arguments[_key];
77
- }
78
-
79
- _this = _super.call.apply(_super, [this].concat(args));
144
+ _this = _super.call(this, props);
80
145
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeData", function (data) {
81
146
  var _this$props = _this.props,
82
147
  model = _this$props.model,
@@ -87,22 +152,92 @@ var CorrectResponse = /*#__PURE__*/function (_React$Component) {
87
152
 
88
153
  onChange(_objectSpread(_objectSpread({}, model), {}, {
89
154
  correctAnswer: _objectSpread(_objectSpread({}, correctAnswer), {}, {
90
- data: data
155
+ data: data.map(function (_ref2) {
156
+ var interactive = _ref2.interactive,
157
+ editable = _ref2.editable,
158
+ keepAttrs = (0, _objectWithoutProperties2["default"])(_ref2, _excluded2);
159
+ return keepAttrs;
160
+ })
91
161
  })
92
162
  }));
93
163
  });
164
+ _this.state = {
165
+ categories: updateCorrectResponseData(props.model.correctAnswer.data, props.model.data)
166
+ };
94
167
  return _this;
95
168
  }
96
169
 
97
170
  (0, _createClass2["default"])(CorrectResponse, [{
171
+ key: "UNSAFE_componentWillReceiveProps",
172
+ value: function UNSAFE_componentWillReceiveProps(nextProps) {
173
+ var _nextProps$model = nextProps.model;
174
+ _nextProps$model = _nextProps$model === void 0 ? {} : _nextProps$model;
175
+ var _nextProps$model$data = _nextProps$model.data,
176
+ nextData = _nextProps$model$data === void 0 ? [] : _nextProps$model$data,
177
+ _nextProps$model$corr = _nextProps$model.correctAnswer.data,
178
+ nextCorrectAnswerData = _nextProps$model$corr === void 0 ? [] : _nextProps$model$corr;
179
+ var _this$props$model = this.props.model;
180
+ _this$props$model = _this$props$model === void 0 ? {} : _this$props$model;
181
+ var _this$props$model$dat = _this$props$model.data,
182
+ data = _this$props$model$dat === void 0 ? [] : _this$props$model$dat;
183
+ var nextCategories = [];
184
+
185
+ if (nextData.length > data.length && nextCorrectAnswerData.length > data.length) {
186
+ nextCategories = insertCategory(nextCorrectAnswerData, nextData);
187
+ }
188
+
189
+ if (nextData.length < data.length) {
190
+ nextCategories = removeCategory(nextCorrectAnswerData, nextData);
191
+ }
192
+
193
+ if (!(0, _isEqual["default"])(nextCorrectAnswerData, this.props.model.correctAnswer.data)) {
194
+ nextCategories = nextCorrectAnswerData.map(function (correct, index) {
195
+ return _objectSpread(_objectSpread({}, correct), {}, {
196
+ editable: index < data.length ? data[index].editable : true,
197
+ interactive: index < data.length ? data[index].interactive : true
198
+ });
199
+ });
200
+ }
201
+
202
+ if ((0, _isEmpty["default"])(nextCategories)) {
203
+ nextCategories = updateCorrectResponseData(nextCorrectAnswerData, nextData);
204
+ nextCorrectAnswerData.map(function (answer, currentIndex) {
205
+ var dataExists = currentIndex < nextData.length;
206
+ var label;
207
+ var value;
208
+ var deletable;
209
+
210
+ if (dataExists) {
211
+ label = nextData[currentIndex].editable ? answer.label : nextData[currentIndex].label;
212
+ value = nextData[currentIndex].interactive ? answer.value : nextData[currentIndex].value;
213
+ } else {
214
+ label = answer.label;
215
+ value = answer.value;
216
+ deletable = true;
217
+ }
218
+
219
+ nextCorrectAnswerData[currentIndex] = {
220
+ label: label,
221
+ value: value
222
+ };
223
+ });
224
+ }
225
+
226
+ if (!(0, _isEqual["default"])(nextCategories, data)) {
227
+ this.setState({
228
+ categories: nextCategories
229
+ });
230
+ }
231
+ }
232
+ }, {
98
233
  key: "render",
99
234
  value: function render() {
100
235
  var _this2 = this;
101
236
 
102
237
  var _this$props2 = this.props,
103
- classes = _this$props2.classes,
104
238
  model = _this$props2.model,
105
239
  charts = _this$props2.charts;
240
+ var categories = this.state.categories;
106
241
  return /*#__PURE__*/React.createElement("div", null, "Define Correct Response", /*#__PURE__*/React.createElement("div", {
107
242
  key: "correct-response-graph-".concat(model.correctAnswer.name)
108
243
  }, /*#__PURE__*/React.createElement("p", null, model.correctAnswer.name), /*#__PURE__*/React.createElement(_charting.Chart, {
@@ -111,7 +246,7 @@ var CorrectResponse = /*#__PURE__*/function (_React$Component) {
111
246
  domain: model.domain,
112
247
  range: model.range,
113
248
  charts: charts,
114
- data: model.correctAnswer.data || [],
249
+ data: categories,
115
250
  title: model.title,
116
251
  onDataChange: function onDataChange(data) {
117
252
  return _this2.changeData(data);
@@ -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","classes","charts","name","chartType","graph","domain","range","title","changeData","addCategoryEnabled","categoryDefaultLabel","React","Component","PropTypes","object","isRequired","func","array"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;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;;;;;;WAED,kBAAS;AAAA;;AACP,yBAAmC,KAAKC,KAAxC;AAAA,UAAQI,OAAR,gBAAQA,OAAR;AAAA,UAAiBH,KAAjB,gBAAiBA,KAAjB;AAAA,UAAwBI,MAAxB,gBAAwBA,MAAxB;AAEA,0BACE,yEAEI;AAAK,QAAA,GAAG,mCAA4BJ,KAAK,CAACE,aAAN,CAAoBG,IAAhD;AAAR,sBACE,+BAAIL,KAAK,CAACE,aAAN,CAAoBG,IAAxB,CADF,eAEE,oBAAC,eAAD;AACE,QAAA,SAAS,EAAEL,KAAK,CAACM,SADnB;AAEE,QAAA,IAAI,EAAEN,KAAK,CAACO,KAFd;AAGE,QAAA,MAAM,EAAEP,KAAK,CAACQ,MAHhB;AAIE,QAAA,KAAK,EAAER,KAAK,CAACS,KAJf;AAKE,QAAA,MAAM,EAAEL,MALV;AAME,QAAA,IAAI,EAAEJ,KAAK,CAACE,aAAN,CAAoBJ,IAApB,IAA4B,EANpC;AAOE,QAAA,KAAK,EAAEE,KAAK,CAACU,KAPf;AAQE,QAAA,YAAY,EAAE,sBAACZ,IAAD;AAAA,iBAAU,MAAI,CAACa,UAAL,CAAgBb,IAAhB,CAAV;AAAA,SARhB;AASE,QAAA,kBAAkB,EAAEE,KAAK,CAACY,kBAT5B;AAUE,QAAA,oBAAoB,EAAEZ,KAAK,CAACa;AAV9B,QAFF,CAFJ,CADF;AAoBD;;;EA5CkCC,KAAK,CAACC,S;;;iCAA9BlB,e,eACQ;AACjBM,EAAAA,OAAO,EAAEa,sBAAUC,MAAV,CAAiBC,UADT;AAEjBlB,EAAAA,KAAK,EAAEgB,sBAAUC,MAAV,CAAiBC,UAFP;AAGjBjB,EAAAA,QAAQ,EAAEe,sBAAUG,IAAV,CAAeD,UAHR;AAIjBd,EAAAA,MAAM,EAAEY,sBAAUI;AAJD,C;;eA8CN,wBAAWpC,MAAX,EAAmBa,eAAnB,C","sourcesContent":["import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\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 render() {\n const { classes, model, charts } = this.props;\n\n return (\n <div>\n Define Correct Response\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 addCategoryEnabled={model.addCategoryEnabled}\n categoryDefaultLabel={model.categoryDefaultLabel}\n />\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","border","borderRadius","padding","spacing","unit","background","button","marginTop","cursor","width","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","answer","dataExists","setState","charts","name","chartType","graph","domain","range","title","changeData","addCategoryEnabled","categoryDefaultLabel","React","Component","classes","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\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\nconst addCategoryProps = (correctAnswer, data) => correctAnswer.map((correct, index) => ({ ...correct, editable: index < data.length ? data[index].editable : true, interactive: index < data.length ? data[index].interactive : true, deletable: index >= data.length ? true : false }));\n\nconst updateCorrectResponseData = (correctAnswer, data) => {\n if (!correctAnswer) {\n return data;\n }\n\n const correctAnswerData = [...correctAnswer];\n\n let correctResponseDefinition = [];\n\n data.forEach((category, currentIndex) => {\n const editable = category.editable;\n const interactive = category.interactive;\n\n const label = (editable && correctAnswer[currentIndex]?.label)\n ? correctAnswer[currentIndex].label\n : category.label\n\n const value = (interactive && correctAnswer[currentIndex]?.value)\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) => {\n const positionToRemove = data.length - 1\n\n correctAnswer.splice(positionToRemove, 1);\n\n const correctAnswerData = [...correctAnswer];\n\n return addCategoryProps(correctAnswerData, data);\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(\n props.model.correctAnswer.data,\n props.model.data\n )\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, ...keepAttrs }) => keepAttrs),\n },\n });\n };\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n const {\n model: {\n data: nextData = [],\n correctAnswer: { data: nextCorrectAnswerData = [] },\n } = {},\n } = nextProps;\n\n const {\n model: {\n data = [],\n } = {},\n } = this.props;\n\n let nextCategories = [];\n\n if (nextData.length > data.length && nextCorrectAnswerData.length > data.length) {\n nextCategories = insertCategory(nextCorrectAnswerData, nextData);\n }\n\n if (nextData.length < data.length) {\n nextCategories = removeCategory(nextCorrectAnswerData, nextData);\n }\n\n if (!isEqual(nextCorrectAnswerData, this.props.model.correctAnswer.data)) {\n nextCategories = nextCorrectAnswerData.map((correct, index) => ({ ...correct, editable: index < data.length ? data[index].editable : true, interactive: index < data.length ? data[index].interactive : true }));\n }\n\n if (isEmpty(nextCategories)) {\n nextCategories = updateCorrectResponseData(\n nextCorrectAnswerData,\n nextData\n );\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 (!isEqual(nextCategories, data)) {\n this.setState({ categories: nextCategories });\n }\n }\n\n render() {\n const { model, charts } = this.props;\n const { categories } = this.state;\n\n return (\n <div>\n Define Correct Response\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={categories}\n title={model.title}\n onDataChange={(data) => this.changeData(data)}\n addCategoryEnabled={model.addCategoryEnabled}\n categoryDefaultLabel={model.categoryDefaultLabel}\n />\n </div>\n </div>\n );\n }\n}\n\nexport default withStyles(styles)(CorrectResponse);\n"],"file":"correct-response.js"}
@@ -8,21 +8,15 @@ exports.model = (id, element) => ({
8
8
  data: [
9
9
  {
10
10
  label: 'A',
11
- value: 1,
12
- interactive: false,
13
- editable: false
11
+ value: 1
14
12
  },
15
13
  {
16
14
  label: 'B',
17
- value: 1,
18
- interactive: true,
19
- editable: false
15
+ value: 1
20
16
  },
21
17
  {
22
18
  label: 'C',
23
- value: 1,
24
- interactive: true,
25
- editable: false
19
+ value: 1
26
20
  },
27
21
  ]
28
22
  },
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "access": "public"
5
5
  },
6
6
  "repository": "pie-framework/pie-elements",
7
- "version": "2.7.3-next.1016+1dc291af4",
7
+ "version": "2.7.3-next.1034+ff5ea2362",
8
8
  "description": "",
9
9
  "scripts": {
10
10
  "test": "echo \"Error: no test specified\" && exit 1",
@@ -25,7 +25,7 @@
25
25
  },
26
26
  "author": "",
27
27
  "license": "ISC",
28
- "gitHead": "1dc291af490cf91cc86a6a7c8d0eb0fdf184232b",
28
+ "gitHead": "ff5ea23624627af6e855bc44e5d457bad927325b",
29
29
  "main": "lib/index.js",
30
30
  "module": "src/index.js"
31
31
  }