@pie-element/charting 2.7.3-next.1016 → 2.7.3-next.1025
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
|
-
|
|
38
|
+
var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
|
|
35
39
|
|
|
36
|
-
|
|
40
|
+
var _isEmpty = _interopRequireDefault(require("lodash/isEmpty"));
|
|
37
41
|
|
|
38
|
-
|
|
42
|
+
var _excluded = ["editable", "interactive", "deletable"],
|
|
43
|
+
_excluded2 = ["interactive", "editable"];
|
|
39
44
|
|
|
40
|
-
function
|
|
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,76 @@ 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
|
+
});
|
|
82
|
+
});
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
;
|
|
86
|
+
|
|
87
|
+
var updateCorrectResponseData = function updateCorrectResponseData(correctAnswer, data) {
|
|
88
|
+
if (!correctAnswer) {
|
|
89
|
+
return data;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
var correctAnswerData = (0, _toConsumableArray2["default"])(correctAnswer);
|
|
93
|
+
var correctResponseDefinition = [];
|
|
94
|
+
data.forEach(function (category, currentIndex) {
|
|
95
|
+
var _correctAnswer$curren, _correctAnswer$curren2;
|
|
96
|
+
|
|
97
|
+
var editable = category.editable;
|
|
98
|
+
var interactive = category.interactive;
|
|
99
|
+
var label = editable && (_correctAnswer$curren = correctAnswer[currentIndex]) !== null && _correctAnswer$curren !== void 0 && _correctAnswer$curren.label ? correctAnswer[currentIndex].label : category.label;
|
|
100
|
+
var value = interactive && (_correctAnswer$curren2 = correctAnswer[currentIndex]) !== null && _correctAnswer$curren2 !== void 0 && _correctAnswer$curren2.value ? correctAnswer[currentIndex].value : category.value;
|
|
101
|
+
correctResponseDefinition[currentIndex] = {
|
|
102
|
+
label: label,
|
|
103
|
+
value: value,
|
|
104
|
+
editable: category.editable,
|
|
105
|
+
interactive: category.interactive
|
|
106
|
+
};
|
|
107
|
+
});
|
|
108
|
+
|
|
109
|
+
if (correctResponseDefinition.length < correctAnswer.length) {
|
|
110
|
+
var missingCategories = correctAnswerData.slice(correctResponseDefinition.length, correctAnswer.length);
|
|
111
|
+
return addCategoryProps(correctResponseDefinition.concat(missingCategories), data);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
return correctResponseDefinition;
|
|
115
|
+
};
|
|
116
|
+
|
|
117
|
+
var insertCategory = function insertCategory(correctAnswer, data) {
|
|
118
|
+
var positionToInsert = data.length - 1;
|
|
119
|
+
var _data = data[data.length - 1],
|
|
120
|
+
editable = _data.editable,
|
|
121
|
+
interactive = _data.interactive,
|
|
122
|
+
deletable = _data.deletable,
|
|
123
|
+
categoryToInsert = (0, _objectWithoutProperties2["default"])(_data, _excluded);
|
|
124
|
+
correctAnswer.splice(positionToInsert, 0, categoryToInsert);
|
|
125
|
+
var correctAnswerData = (0, _toConsumableArray2["default"])(correctAnswer);
|
|
126
|
+
return addCategoryProps(correctAnswerData, data);
|
|
127
|
+
};
|
|
128
|
+
|
|
129
|
+
var removeCategory = function removeCategory(correctAnswer, data) {
|
|
130
|
+
var positionToRemove = data.length - 1;
|
|
131
|
+
correctAnswer.splice(positionToRemove, 1);
|
|
132
|
+
var correctAnswerData = (0, _toConsumableArray2["default"])(correctAnswer);
|
|
133
|
+
return addCategoryProps(correctAnswerData, data);
|
|
134
|
+
};
|
|
135
|
+
|
|
65
136
|
var CorrectResponse = /*#__PURE__*/function (_React$Component) {
|
|
66
137
|
(0, _inherits2["default"])(CorrectResponse, _React$Component);
|
|
67
138
|
|
|
68
139
|
var _super = _createSuper(CorrectResponse);
|
|
69
140
|
|
|
70
|
-
function CorrectResponse() {
|
|
141
|
+
function CorrectResponse(props) {
|
|
71
142
|
var _this;
|
|
72
143
|
|
|
73
144
|
(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));
|
|
145
|
+
_this = _super.call(this, props);
|
|
80
146
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeData", function (data) {
|
|
81
147
|
var _this$props = _this.props,
|
|
82
148
|
model = _this$props.model,
|
|
@@ -87,22 +153,90 @@ var CorrectResponse = /*#__PURE__*/function (_React$Component) {
|
|
|
87
153
|
|
|
88
154
|
onChange(_objectSpread(_objectSpread({}, model), {}, {
|
|
89
155
|
correctAnswer: _objectSpread(_objectSpread({}, correctAnswer), {}, {
|
|
90
|
-
data: data
|
|
156
|
+
data: data.map(function (_ref2) {
|
|
157
|
+
var interactive = _ref2.interactive,
|
|
158
|
+
editable = _ref2.editable,
|
|
159
|
+
keepAttrs = (0, _objectWithoutProperties2["default"])(_ref2, _excluded2);
|
|
160
|
+
return keepAttrs;
|
|
161
|
+
})
|
|
91
162
|
})
|
|
92
163
|
}));
|
|
93
164
|
});
|
|
165
|
+
_this.state = {
|
|
166
|
+
categories: updateCorrectResponseData(props.model.correctAnswer.data, props.model.data)
|
|
167
|
+
};
|
|
94
168
|
return _this;
|
|
95
169
|
}
|
|
96
170
|
|
|
97
171
|
(0, _createClass2["default"])(CorrectResponse, [{
|
|
172
|
+
key: "UNSAFE_componentWillReceiveProps",
|
|
173
|
+
value: function UNSAFE_componentWillReceiveProps(nextProps) {
|
|
174
|
+
var _nextProps$model = nextProps.model;
|
|
175
|
+
_nextProps$model = _nextProps$model === void 0 ? {} : _nextProps$model;
|
|
176
|
+
var _nextProps$model$data = _nextProps$model.data,
|
|
177
|
+
nextData = _nextProps$model$data === void 0 ? [] : _nextProps$model$data,
|
|
178
|
+
_nextProps$model$corr = _nextProps$model.correctAnswer.data,
|
|
179
|
+
nextCorrectAnswerData = _nextProps$model$corr === void 0 ? [] : _nextProps$model$corr;
|
|
180
|
+
var _this$props$model = this.props.model;
|
|
181
|
+
_this$props$model = _this$props$model === void 0 ? {} : _this$props$model;
|
|
182
|
+
var _this$props$model$dat = _this$props$model.data,
|
|
183
|
+
data = _this$props$model$dat === void 0 ? [] : _this$props$model$dat;
|
|
184
|
+
var nextCategories = [];
|
|
185
|
+
|
|
186
|
+
if (nextData.length > data.length && nextCorrectAnswerData.length > data.length) {
|
|
187
|
+
nextCategories = insertCategory(nextCorrectAnswerData, nextData);
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
if (nextData.length < data.length) {
|
|
191
|
+
nextCategories = removeCategory(nextCorrectAnswerData, nextData);
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
if (!(0, _isEqual["default"])(nextCorrectAnswerData, this.props.model.correctAnswer.data)) {
|
|
195
|
+
nextCategories = nextCorrectAnswerData.map(function (correct, index) {
|
|
196
|
+
return _objectSpread(_objectSpread({}, correct), {}, {
|
|
197
|
+
editable: index < data.length ? data[index].editable : true,
|
|
198
|
+
interactive: index < data.length ? data[index].interactive : true
|
|
199
|
+
});
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
if ((0, _isEmpty["default"])(nextCategories)) {
|
|
204
|
+
nextCategories = updateCorrectResponseData(nextCorrectAnswerData, nextData);
|
|
205
|
+
nextCorrectAnswerData.map(function (answer, currentIndex) {
|
|
206
|
+
var dataExists = currentIndex < nextData.length;
|
|
207
|
+
var label;
|
|
208
|
+
var value;
|
|
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
|
+
}
|
|
217
|
+
|
|
218
|
+
nextCorrectAnswerData[currentIndex] = {
|
|
219
|
+
label: label,
|
|
220
|
+
value: value
|
|
221
|
+
};
|
|
222
|
+
});
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
if (!(0, _isEqual["default"])(nextCategories, data)) {
|
|
226
|
+
this.setState({
|
|
227
|
+
categories: nextCategories
|
|
228
|
+
});
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
}, {
|
|
98
232
|
key: "render",
|
|
99
233
|
value: function render() {
|
|
100
234
|
var _this2 = this;
|
|
101
235
|
|
|
102
236
|
var _this$props2 = this.props,
|
|
103
|
-
classes = _this$props2.classes,
|
|
104
237
|
model = _this$props2.model,
|
|
105
238
|
charts = _this$props2.charts;
|
|
239
|
+
var categories = this.state.categories;
|
|
106
240
|
return /*#__PURE__*/React.createElement("div", null, "Define Correct Response", /*#__PURE__*/React.createElement("div", {
|
|
107
241
|
key: "correct-response-graph-".concat(model.correctAnswer.name)
|
|
108
242
|
}, /*#__PURE__*/React.createElement("p", null, model.correctAnswer.name), /*#__PURE__*/React.createElement(_charting.Chart, {
|
|
@@ -111,7 +245,7 @@ var CorrectResponse = /*#__PURE__*/function (_React$Component) {
|
|
|
111
245
|
domain: model.domain,
|
|
112
246
|
range: model.range,
|
|
113
247
|
charts: charts,
|
|
114
|
-
data:
|
|
248
|
+
data: categories,
|
|
115
249
|
title: model.title,
|
|
116
250
|
onDataChange: function onDataChange(data) {
|
|
117
251
|
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","updateCorrectResponseData","correctAnswerData","correctResponseDefinition","forEach","category","currentIndex","label","value","missingCategories","slice","concat","insertCategory","positionToInsert","deletable","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 }));;\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\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 }\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"}
|
package/docs/demo/generate.js
CHANGED
|
@@ -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.
|
|
7
|
+
"version": "2.7.3-next.1025+bbb29f992",
|
|
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": "
|
|
28
|
+
"gitHead": "bbb29f99259cda60386d37b469fdb49b22fad4b3",
|
|
29
29
|
"main": "lib/index.js",
|
|
30
30
|
"module": "src/index.js"
|
|
31
31
|
}
|