@pie-element/charting 2.5.19-next.85 → 2.6.1-beta.587
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +535 -0
- package/configure/CHANGELOG.md +466 -0
- package/configure/lib/charting-config.js +132 -21
- package/configure/lib/charting-config.js.map +1 -1
- package/configure/lib/configure.js +157 -77
- package/configure/lib/configure.js.map +1 -1
- package/configure/lib/correct-response.js +214 -49
- package/configure/lib/correct-response.js.map +1 -1
- package/configure/lib/defaults.js +53 -13
- package/configure/lib/defaults.js.map +1 -1
- package/configure/lib/index.js +24 -4
- package/configure/lib/index.js.map +1 -1
- package/configure/lib/utils.js +95 -0
- package/configure/lib/utils.js.map +1 -0
- package/configure/package.json +6 -5
- package/controller/CHANGELOG.md +90 -0
- package/controller/lib/index.js +99 -20
- package/controller/lib/index.js.map +1 -1
- package/controller/package.json +3 -3
- package/docs/config-schema.json +198 -0
- package/docs/config-schema.json.md +155 -1
- package/docs/demo/config.js +2 -2
- package/docs/demo/generate.js +6 -25
- package/docs/demo/session.js +3 -9
- package/docs/pie-schema.json +114 -48
- package/docs/pie-schema.json.md +82 -9
- package/lib/index.js +4 -1
- package/lib/index.js.map +1 -1
- package/lib/main.js +52 -25
- package/lib/main.js.map +1 -1
- package/package.json +7 -5
- package/configure/lib/chart-type.js +0 -72
- package/configure/lib/chart-type.js.map +0 -1
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
|
4
|
-
|
|
5
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
6
4
|
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
7
7
|
Object.defineProperty(exports, "__esModule", {
|
|
8
8
|
value: true
|
|
9
9
|
});
|
|
@@ -31,15 +31,23 @@ var _styles = require("@material-ui/core/styles");
|
|
|
31
31
|
|
|
32
32
|
var _charting = require("@pie-lib/charting");
|
|
33
33
|
|
|
34
|
+
var _configUi = require("@pie-lib/config-ui");
|
|
35
|
+
|
|
36
|
+
var _Checkbox = _interopRequireDefault(require("@material-ui/core/Checkbox"));
|
|
37
|
+
|
|
34
38
|
var _Typography = _interopRequireDefault(require("@material-ui/core/Typography"));
|
|
35
39
|
|
|
36
|
-
function
|
|
40
|
+
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); }
|
|
41
|
+
|
|
42
|
+
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
|
+
|
|
44
|
+
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; }
|
|
37
45
|
|
|
38
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
46
|
+
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
47
|
|
|
40
48
|
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
49
|
|
|
42
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try {
|
|
50
|
+
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; } }
|
|
43
51
|
|
|
44
52
|
var styles = function styles(theme) {
|
|
45
53
|
return {
|
|
@@ -55,37 +63,119 @@ var styles = function styles(theme) {
|
|
|
55
63
|
};
|
|
56
64
|
};
|
|
57
65
|
|
|
66
|
+
var restoreCorrectAnswer = function restoreCorrectAnswer(correctAnswer, data) {
|
|
67
|
+
if (!correctAnswer) {
|
|
68
|
+
return data;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
var correctResponseDefinition = [];
|
|
72
|
+
(data || []).forEach(function (category, currentIndex) {
|
|
73
|
+
var _correctAnswer$curren, _correctAnswer$curren2;
|
|
74
|
+
|
|
75
|
+
var editable = category.editable,
|
|
76
|
+
interactive = category.interactive;
|
|
77
|
+
var label = editable && (_correctAnswer$curren = correctAnswer[currentIndex]) !== null && _correctAnswer$curren !== void 0 && _correctAnswer$curren.label ? correctAnswer[currentIndex].label : category.label;
|
|
78
|
+
var value = interactive && (_correctAnswer$curren2 = correctAnswer[currentIndex]) !== null && _correctAnswer$curren2 !== void 0 && _correctAnswer$curren2.value ? correctAnswer[currentIndex].value : category.value;
|
|
79
|
+
correctResponseDefinition[currentIndex] = {
|
|
80
|
+
label: label,
|
|
81
|
+
value: value,
|
|
82
|
+
editable: category.editable,
|
|
83
|
+
interactive: category.interactive
|
|
84
|
+
};
|
|
85
|
+
});
|
|
86
|
+
return correctResponseDefinition;
|
|
87
|
+
};
|
|
88
|
+
|
|
58
89
|
var ChartingConfig = /*#__PURE__*/function (_React$Component) {
|
|
59
90
|
(0, _inherits2["default"])(ChartingConfig, _React$Component);
|
|
60
91
|
|
|
61
92
|
var _super = _createSuper(ChartingConfig);
|
|
62
93
|
|
|
63
|
-
function ChartingConfig() {
|
|
94
|
+
function ChartingConfig(props) {
|
|
64
95
|
var _this;
|
|
65
96
|
|
|
66
97
|
(0, _classCallCheck2["default"])(this, ChartingConfig);
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
98
|
+
_this = _super.call(this, props);
|
|
99
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleAlertDialog", function (open, callback) {
|
|
100
|
+
return _this.setState({
|
|
101
|
+
dialog: {
|
|
102
|
+
open: open
|
|
103
|
+
}
|
|
104
|
+
}, callback);
|
|
105
|
+
});
|
|
73
106
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeData", function (data) {
|
|
74
107
|
return _this.props.onChange(_objectSpread(_objectSpread({}, _this.props.model), {}, {
|
|
75
108
|
data: data
|
|
76
109
|
}));
|
|
77
110
|
});
|
|
111
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeAddRemoveEnabled", function (value) {
|
|
112
|
+
var model = _this.props.model;
|
|
113
|
+
var correctAnswer = restoreCorrectAnswer(model.correctAnswer.data, model.data);
|
|
114
|
+
|
|
115
|
+
if (!value) {
|
|
116
|
+
_this.setState({
|
|
117
|
+
dialog: {
|
|
118
|
+
open: true,
|
|
119
|
+
title: 'Warning',
|
|
120
|
+
text: "This change will remove any correct answer categories that are not part of the initial item configuration.",
|
|
121
|
+
onConfirm: function onConfirm() {
|
|
122
|
+
return _this.handleAlertDialog(false, _this.props.onChange(_objectSpread(_objectSpread({}, _this.props.model), {}, {
|
|
123
|
+
addCategoryEnabled: value,
|
|
124
|
+
correctAnswer: {
|
|
125
|
+
data: correctAnswer
|
|
126
|
+
}
|
|
127
|
+
})));
|
|
128
|
+
},
|
|
129
|
+
onClose: function onClose() {
|
|
130
|
+
return _this.handleAlertDialog(false);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
});
|
|
134
|
+
} else {
|
|
135
|
+
_this.props.onChange(_objectSpread(_objectSpread({}, _this.props.model), {}, {
|
|
136
|
+
addCategoryEnabled: value
|
|
137
|
+
}));
|
|
138
|
+
}
|
|
139
|
+
});
|
|
140
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeTitle", function (title) {
|
|
141
|
+
return _this.props.onChange(_objectSpread(_objectSpread({}, _this.props.model), {}, {
|
|
142
|
+
title: title
|
|
143
|
+
}));
|
|
144
|
+
});
|
|
145
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeLabel", function (type, label) {
|
|
146
|
+
return _this.props.onChange(_objectSpread(_objectSpread({}, _this.props.model), {}, (0, _defineProperty2["default"])({}, type, _objectSpread(_objectSpread({}, _this.props.model[type]), {}, {
|
|
147
|
+
label: label
|
|
148
|
+
}))));
|
|
149
|
+
});
|
|
150
|
+
_this.state = {
|
|
151
|
+
dialog: {
|
|
152
|
+
open: false
|
|
153
|
+
}
|
|
154
|
+
};
|
|
78
155
|
return _this;
|
|
79
156
|
}
|
|
80
157
|
|
|
81
158
|
(0, _createClass2["default"])(ChartingConfig, [{
|
|
82
159
|
key: "render",
|
|
83
160
|
value: function render() {
|
|
161
|
+
var _this2 = this;
|
|
162
|
+
|
|
84
163
|
var _this$props = this.props,
|
|
85
164
|
classes = _this$props.classes,
|
|
86
165
|
model = _this$props.model,
|
|
87
|
-
charts = _this$props.charts
|
|
88
|
-
|
|
166
|
+
charts = _this$props.charts,
|
|
167
|
+
labelsPlaceholders = _this$props.labelsPlaceholders,
|
|
168
|
+
titlePlaceholder = _this$props.titlePlaceholder,
|
|
169
|
+
showPixelGuides = _this$props.showPixelGuides;
|
|
170
|
+
var dialog = this.state.dialog;
|
|
171
|
+
|
|
172
|
+
var _ref = model || {},
|
|
173
|
+
_ref$domain = _ref.domain,
|
|
174
|
+
domain = _ref$domain === void 0 ? {} : _ref$domain,
|
|
175
|
+
_ref$range = _ref.range,
|
|
176
|
+
range = _ref$range === void 0 ? {} : _ref$range;
|
|
177
|
+
|
|
178
|
+
return /*#__PURE__*/React.createElement("div", null, "Define Initial Chart Attributes", /*#__PURE__*/React.createElement("div", {
|
|
89
179
|
className: classes.container
|
|
90
180
|
}, /*#__PURE__*/React.createElement("div", {
|
|
91
181
|
className: classes.column,
|
|
@@ -93,18 +183,39 @@ var ChartingConfig = /*#__PURE__*/function (_React$Component) {
|
|
|
93
183
|
}, /*#__PURE__*/React.createElement(_Typography["default"], {
|
|
94
184
|
component: "div",
|
|
95
185
|
type: "body1"
|
|
96
|
-
}, /*#__PURE__*/React.createElement("span", null, "Use the tools below to set
|
|
186
|
+
}, /*#__PURE__*/React.createElement("span", null, "Use the tools below to set up the chart as it will initially appear to students.")), /*#__PURE__*/React.createElement(_charting.Chart, {
|
|
187
|
+
defineChart: true,
|
|
188
|
+
showPixelGuides: showPixelGuides,
|
|
97
189
|
chartType: model.chartType,
|
|
98
190
|
size: model.graph,
|
|
99
|
-
domain:
|
|
100
|
-
range:
|
|
101
|
-
charts: charts
|
|
102
|
-
|
|
191
|
+
domain: domain,
|
|
192
|
+
range: range,
|
|
193
|
+
charts: charts // index is a property used for setting the correct answer data; it's needed in order to remove categories from other data sets from the same index it was removed from the initial data
|
|
194
|
+
,
|
|
195
|
+
data: model.data.map(function (category, index) {
|
|
196
|
+
return _objectSpread(_objectSpread({}, category), {}, {
|
|
197
|
+
index: index
|
|
198
|
+
});
|
|
199
|
+
}),
|
|
103
200
|
title: model.title,
|
|
104
201
|
onDataChange: this.changeData,
|
|
105
|
-
|
|
202
|
+
onChangeTitle: this.changeTitle,
|
|
203
|
+
onChangeLabels: this.changeLabel,
|
|
106
204
|
addCategoryEnabled: true,
|
|
107
|
-
categoryDefaultLabel: model.categoryDefaultLabel
|
|
205
|
+
categoryDefaultLabel: model.categoryDefaultLabel,
|
|
206
|
+
labelsPlaceholders: labelsPlaceholders,
|
|
207
|
+
titlePlaceholder: titlePlaceholder === null || titlePlaceholder === void 0 ? void 0 : titlePlaceholder.label
|
|
208
|
+
}), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(_Checkbox["default"], {
|
|
209
|
+
checked: model.addCategoryEnabled,
|
|
210
|
+
onChange: function onChange(e) {
|
|
211
|
+
_this2.changeAddRemoveEnabled(e.target.checked);
|
|
212
|
+
}
|
|
213
|
+
}), "Student can add categories"), /*#__PURE__*/React.createElement(_configUi.AlertDialog, {
|
|
214
|
+
open: dialog.open,
|
|
215
|
+
title: dialog.title,
|
|
216
|
+
text: dialog.text,
|
|
217
|
+
onClose: dialog.onClose,
|
|
218
|
+
onConfirm: dialog.onConfirm
|
|
108
219
|
}))));
|
|
109
220
|
}
|
|
110
221
|
}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/charting-config.jsx"],"names":["styles","theme","container","marginTop","spacing","unit","marginBottom","display","flex","column","ChartingConfig","data","props","onChange","model","classes","charts","chartType","graph","domain","range","title","changeData","categoryDefaultLabel","React","Component","PropTypes","object","isRequired","func","array"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAEA;;;;;;;;;;AAEA,IAAMA,MAAM,GAAG,SAATA,MAAS,CAAAC,KAAK;AAAA,SAAK;AACvBC,IAAAA,SAAS,EAAE;AACTC,MAAAA,SAAS,EAAEF,KAAK,CAACG,OAAN,CAAcC,IAAd,GAAqB,CADvB;AAETC,MAAAA,YAAY,EAAEL,KAAK,CAACG,OAAN,CAAcC,IAAd,GAAqB,CAF1B;AAGTE,MAAAA,OAAO,EAAE,MAHA;AAITC,MAAAA,IAAI,EAAE;AAJG,KADY;AAOvBC,IAAAA,MAAM,EAAE;AACND,MAAAA,IAAI,EAAE;AADA;AAPe,GAAL;AAAA,CAApB;;IAYaE,c;;;;;;;;;;;;;;;mGAQE,UAAAC,IAAI;AAAA,aAAI,MAAKC,KAAL,CAAWC,QAAX,iCAAyB,MAAKD,KAAL,CAAWE,KAApC;AAA2CH,QAAAA,IAAI,EAAJA;AAA3C,SAAJ;AAAA,K;;;;;;WAEjB,kBAAS;AAAA,wBAC4B,KAAKC,KADjC;AAAA,UACCG,OADD,eACCA,OADD;AAAA,UACUD,KADV,eACUA,KADV;AAAA,UACiBE,MADjB,eACiBA,MADjB;AAGP,0BACE,yEAGE;AAAK,QAAA,SAAS,EAAED,OAAO,CAACb;AAAxB,sBACE;AAAK,QAAA,SAAS,EAAEa,OAAO,CAACN,MAAxB;AAAgC,QAAA,GAAG,EAAC;AAApC,sBACE,oBAAC,sBAAD;AAAY,QAAA,SAAS,EAAC,KAAtB;AAA4B,QAAA,IAAI,EAAC;AAAjC,sBACE,iFADF,CADF,eAKE,oBAAC,eAAD;AACE,QAAA,SAAS,EAAEK,KAAK,CAACG,SADnB;AAEE,QAAA,IAAI,EAAEH,KAAK,CAACI,KAFd;AAGE,QAAA,MAAM,EAAEJ,KAAK,CAACK,MAHhB;AAIE,QAAA,KAAK,EAAEL,KAAK,CAACM,KAJf;AAKE,QAAA,MAAM,EAAEJ,MALV;AAME,QAAA,IAAI,EAAEF,KAAK,CAACH,IANd;AAOE,QAAA,KAAK,EAAEG,KAAK,CAACO,KAPf;AAQE,QAAA,YAAY,EAAE,KAAKC,UARrB;AASE,QAAA,mBAAmB,EAAE,IATvB;AAUE,QAAA,kBAAkB,EAAE,IAVtB;AAWE,QAAA,oBAAoB,EAAER,KAAK,CAACS;AAX9B,QALF,CADF,CAHF,CADF;AA4BD;;;EAzCiCC,KAAK,CAACC,S;;;iCAA7Bf,c,eACQ;AACjBK,EAAAA,OAAO,EAAEW,sBAAUC,MAAV,CAAiBC,UADT;AAEjBd,EAAAA,KAAK,EAAEY,sBAAUC,MAAV,CAAiBC,UAFP;AAGjBf,EAAAA,QAAQ,EAAEa,sBAAUG,IAAV,CAAeD,UAHR;AAIjBZ,EAAAA,MAAM,EAAEU,sBAAUI;AAJD,C;;eA2CN,wBAAW9B,MAAX,EAAmBU,cAAnB,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\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 column: {\n flex: 1\n }\n});\n\nexport class ChartingConfig 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 => this.props.onChange({ ...this.props.model, data });\n\n render() {\n const { classes, model, charts } = this.props;\n\n return (\n <div>\n Define Graph Attributes\n\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 set background shapes</span>\n </Typography>\n\n <Chart\n chartType={model.chartType}\n size={model.graph}\n domain={model.domain}\n range={model.range}\n charts={charts}\n data={model.data}\n title={model.title}\n onDataChange={this.changeData}\n editCategoryEnabled={true}\n addCategoryEnabled={true}\n categoryDefaultLabel={model.categoryDefaultLabel}\n />\n </div>\n\n </div>\n </div>\n );\n }\n}\n\nexport default withStyles(styles)(ChartingConfig);\n"],"file":"charting-config.js"}
|
|
1
|
+
{"version":3,"sources":["../src/charting-config.jsx"],"names":["styles","theme","container","marginTop","spacing","unit","marginBottom","display","flex","column","restoreCorrectAnswer","correctAnswer","data","correctResponseDefinition","forEach","category","currentIndex","editable","interactive","label","value","ChartingConfig","props","open","callback","setState","dialog","onChange","model","title","text","onConfirm","handleAlertDialog","addCategoryEnabled","onClose","type","state","classes","charts","labelsPlaceholders","titlePlaceholder","showPixelGuides","domain","range","chartType","graph","map","index","changeData","changeTitle","changeLabel","categoryDefaultLabel","e","changeAddRemoveEnabled","target","checked","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 { AlertDialog } from '@pie-lib/config-ui';\nimport Checkbox from '@material-ui/core/Checkbox';\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 column: {\n flex: 1,\n },\n});\n\nconst restoreCorrectAnswer = (correctAnswer, data) => {\n if (!correctAnswer) {\n return data;\n }\n\n let correctResponseDefinition = [];\n\n (data || []).forEach((category, currentIndex) => {\n const { editable, interactive } = category;\n\n const label = editable && correctAnswer[currentIndex]?.label ? correctAnswer[currentIndex].label : category.label;\n\n const value =\n interactive && correctAnswer[currentIndex]?.value ? correctAnswer[currentIndex].value : category.value;\n\n correctResponseDefinition[currentIndex] = {\n label: label,\n value: value,\n editable: category.editable,\n interactive: category.interactive,\n };\n });\n\n return correctResponseDefinition;\n};\n\nexport class ChartingConfig 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 dialog: {\n open: false,\n },\n };\n }\n\n handleAlertDialog = (open, callback) =>\n this.setState(\n {\n dialog: { open },\n },\n callback,\n );\n\n changeData = (data) => this.props.onChange({ ...this.props.model, data });\n\n changeAddRemoveEnabled = (value) => {\n const { model } = this.props;\n const correctAnswer = restoreCorrectAnswer(model.correctAnswer.data, model.data);\n\n if (!value) {\n this.setState({\n dialog: {\n open: true,\n title: 'Warning',\n text: `This change will remove any correct answer categories that are not part of the initial item configuration.`,\n onConfirm: () =>\n this.handleAlertDialog(\n false,\n this.props.onChange({\n ...this.props.model,\n addCategoryEnabled: value,\n correctAnswer: { data: correctAnswer },\n }),\n ),\n onClose: () => this.handleAlertDialog(false),\n },\n });\n } else {\n this.props.onChange({ ...this.props.model, addCategoryEnabled: value });\n }\n };\n\n changeTitle = (title) => this.props.onChange({ ...this.props.model, title });\n\n changeLabel = (type, label) =>\n this.props.onChange({\n ...this.props.model,\n [type]: {\n ...this.props.model[type],\n label,\n },\n });\n\n render() {\n const { classes, model, charts, labelsPlaceholders, titlePlaceholder, showPixelGuides } = this.props;\n const { dialog } = this.state;\n const { domain = {}, range = {} } = model || {};\n\n return (\n <div>\n Define Initial Chart Attributes\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 set up the chart as it will initially appear to students.</span>\n </Typography>\n\n <Chart\n defineChart={true}\n showPixelGuides={showPixelGuides}\n chartType={model.chartType}\n size={model.graph}\n domain={domain}\n range={range}\n charts={charts}\n // index is a property used for setting the correct answer data; it's needed in order to remove categories from other data sets from the same index it was removed from the initial data\n data={model.data.map((category, index) => ({\n ...category,\n index: index,\n }))}\n title={model.title}\n onDataChange={this.changeData}\n onChangeTitle={this.changeTitle}\n onChangeLabels={this.changeLabel}\n addCategoryEnabled={true}\n categoryDefaultLabel={model.categoryDefaultLabel}\n labelsPlaceholders={labelsPlaceholders}\n titlePlaceholder={titlePlaceholder?.label}\n />\n <div>\n <Checkbox\n checked={model.addCategoryEnabled}\n onChange={(e) => {\n this.changeAddRemoveEnabled(e.target.checked);\n }}\n />\n Student can add categories\n </div>\n\n <AlertDialog\n open={dialog.open}\n title={dialog.title}\n text={dialog.text}\n onClose={dialog.onClose}\n onConfirm={dialog.onConfirm}\n />\n </div>\n </div>\n </div>\n );\n }\n}\n\nexport default withStyles(styles)(ChartingConfig);\n"],"file":"charting-config.js"}
|
|
@@ -41,21 +41,20 @@ var _chartingConfig = _interopRequireDefault(require("./charting-config"));
|
|
|
41
41
|
|
|
42
42
|
var _correctResponse = _interopRequireDefault(require("./correct-response"));
|
|
43
43
|
|
|
44
|
-
var
|
|
44
|
+
var _utils = require("./utils");
|
|
45
45
|
|
|
46
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
46
|
+
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; }
|
|
47
47
|
|
|
48
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
48
|
+
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; }
|
|
49
49
|
|
|
50
50
|
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); }; }
|
|
51
51
|
|
|
52
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try {
|
|
52
|
+
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; } }
|
|
53
53
|
|
|
54
54
|
var log = (0, _debug["default"])('@pie-element:graphing:configure');
|
|
55
55
|
var Panel = _configUi.settings.Panel,
|
|
56
56
|
toggle = _configUi.settings.toggle,
|
|
57
|
-
radio = _configUi.settings.radio
|
|
58
|
-
numberFields = _configUi.settings.numberFields;
|
|
57
|
+
radio = _configUi.settings.radio;
|
|
59
58
|
|
|
60
59
|
var styles = function styles(theme) {
|
|
61
60
|
return {
|
|
@@ -88,16 +87,11 @@ var Configure = /*#__PURE__*/function (_React$Component) {
|
|
|
88
87
|
|
|
89
88
|
var _super = _createSuper(Configure);
|
|
90
89
|
|
|
91
|
-
function Configure() {
|
|
90
|
+
function Configure(props) {
|
|
92
91
|
var _this;
|
|
93
92
|
|
|
94
93
|
(0, _classCallCheck2["default"])(this, Configure);
|
|
95
|
-
|
|
96
|
-
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
97
|
-
args[_key] = arguments[_key];
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
_this = _super.call.apply(_super, [this].concat(args));
|
|
94
|
+
_this = _super.call(this, props);
|
|
101
95
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onRationaleChange", function (rationale) {
|
|
102
96
|
return _this.props.onModelChanged(_objectSpread(_objectSpread({}, _this.props.model), {}, {
|
|
103
97
|
rationale: rationale
|
|
@@ -118,74 +112,126 @@ var Configure = /*#__PURE__*/function (_React$Component) {
|
|
|
118
112
|
chartType: chartType
|
|
119
113
|
}));
|
|
120
114
|
});
|
|
115
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onConfigChange", function (config) {
|
|
116
|
+
var _this$props = _this.props,
|
|
117
|
+
model = _this$props.model,
|
|
118
|
+
onModelChanged = _this$props.onModelChanged;
|
|
119
|
+
var _this$state = _this.state,
|
|
120
|
+
oldGridValues = _this$state.gridValues,
|
|
121
|
+
oldLabelValues = _this$state.labelValues;
|
|
122
|
+
|
|
123
|
+
var updatedModel = _objectSpread(_objectSpread({}, model), config);
|
|
124
|
+
|
|
125
|
+
var graph = updatedModel.graph,
|
|
126
|
+
range = updatedModel.range;
|
|
127
|
+
var gridValues = {};
|
|
128
|
+
var labelValues = {};
|
|
129
|
+
var rangeConstraints = (0, _utils.applyConstraints)(range, graph.height, oldGridValues.range, oldLabelValues.range);
|
|
130
|
+
gridValues.range = rangeConstraints.gridValues;
|
|
131
|
+
labelValues.range = rangeConstraints.labelValues;
|
|
132
|
+
|
|
133
|
+
_this.setState({
|
|
134
|
+
gridValues: gridValues,
|
|
135
|
+
labelValues: labelValues
|
|
136
|
+
});
|
|
137
|
+
|
|
138
|
+
onModelChanged(updatedModel);
|
|
139
|
+
});
|
|
140
|
+
|
|
141
|
+
var _ref = props.model || {},
|
|
142
|
+
_ref$range = _ref.range,
|
|
143
|
+
_range = _ref$range === void 0 ? {} : _ref$range,
|
|
144
|
+
_graph = _ref.graph;
|
|
145
|
+
|
|
146
|
+
var _gridValues = {
|
|
147
|
+
range: (0, _utils.getGridValues)(_range, _graph.height, true)
|
|
148
|
+
};
|
|
149
|
+
var _labelValues = {
|
|
150
|
+
range: (0, _utils.getLabelValues)(_range.step || 1)
|
|
151
|
+
};
|
|
152
|
+
_this.state = {
|
|
153
|
+
gridValues: _gridValues,
|
|
154
|
+
labelValues: _labelValues
|
|
155
|
+
};
|
|
121
156
|
return _this;
|
|
122
157
|
}
|
|
123
158
|
|
|
124
159
|
(0, _createClass2["default"])(Configure, [{
|
|
125
160
|
key: "render",
|
|
126
161
|
value: function render() {
|
|
127
|
-
var
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
model = _this$
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
imageSupport = _this$props.imageSupport;
|
|
162
|
+
var _this$props2 = this.props,
|
|
163
|
+
classes = _this$props2.classes,
|
|
164
|
+
configuration = _this$props2.configuration,
|
|
165
|
+
imageSupport = _this$props2.imageSupport,
|
|
166
|
+
model = _this$props2.model,
|
|
167
|
+
onConfigurationChanged = _this$props2.onConfigurationChanged,
|
|
168
|
+
onModelChanged = _this$props2.onModelChanged,
|
|
169
|
+
uploadSoundSupport = _this$props2.uploadSoundSupport;
|
|
136
170
|
log('[render] model', model);
|
|
137
171
|
var graph = model.graph;
|
|
138
172
|
|
|
139
|
-
var
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
173
|
+
var _ref2 = configuration || {},
|
|
174
|
+
_ref2$chartDimensions = _ref2.chartDimensions,
|
|
175
|
+
chartDimensions = _ref2$chartDimensions === void 0 ? {} : _ref2$chartDimensions,
|
|
176
|
+
_ref2$labelsPlacehold = _ref2.labelsPlaceholders,
|
|
177
|
+
labelsPlaceholders = _ref2$labelsPlacehold === void 0 ? {} : _ref2$labelsPlacehold,
|
|
178
|
+
_ref2$maxImageWidth = _ref2.maxImageWidth,
|
|
179
|
+
maxImageWidth = _ref2$maxImageWidth === void 0 ? {} : _ref2$maxImageWidth,
|
|
180
|
+
_ref2$maxImageHeight = _ref2.maxImageHeight,
|
|
181
|
+
maxImageHeight = _ref2$maxImageHeight === void 0 ? {} : _ref2$maxImageHeight,
|
|
182
|
+
_ref2$prompt = _ref2.prompt,
|
|
183
|
+
prompt = _ref2$prompt === void 0 ? {} : _ref2$prompt,
|
|
184
|
+
_ref2$rationale = _ref2.rationale,
|
|
185
|
+
rationale = _ref2$rationale === void 0 ? {} : _ref2$rationale,
|
|
186
|
+
_ref2$scoringType = _ref2.scoringType,
|
|
187
|
+
scoringType = _ref2$scoringType === void 0 ? {} : _ref2$scoringType,
|
|
188
|
+
settingsPanelDisabled = _ref2.settingsPanelDisabled,
|
|
189
|
+
_ref2$spellCheck = _ref2.spellCheck,
|
|
190
|
+
spellCheck = _ref2$spellCheck === void 0 ? {} : _ref2$spellCheck,
|
|
191
|
+
_ref2$studentInstruct = _ref2.studentInstructions,
|
|
192
|
+
studentInstructions = _ref2$studentInstruct === void 0 ? {} : _ref2$studentInstruct,
|
|
193
|
+
_ref2$teacherInstruct = _ref2.teacherInstructions,
|
|
194
|
+
teacherInstructions = _ref2$teacherInstruct === void 0 ? {} : _ref2$teacherInstruct,
|
|
195
|
+
_ref2$titlePlaceholde = _ref2.titlePlaceholder,
|
|
196
|
+
titlePlaceholder = _ref2$titlePlaceholde === void 0 ? {} : _ref2$titlePlaceholde,
|
|
197
|
+
_ref2$withRubric = _ref2.withRubric,
|
|
198
|
+
withRubric = _ref2$withRubric === void 0 ? {} : _ref2$withRubric;
|
|
199
|
+
|
|
200
|
+
var _ref3 = model || {},
|
|
201
|
+
errors = _ref3.errors,
|
|
202
|
+
promptEnabled = _ref3.promptEnabled,
|
|
203
|
+
rationaleEnabled = _ref3.rationaleEnabled,
|
|
204
|
+
spellCheckEnabled = _ref3.spellCheckEnabled,
|
|
205
|
+
teacherInstructionsEnabled = _ref3.teacherInstructionsEnabled;
|
|
206
|
+
|
|
207
|
+
var _ref4 = errors || {},
|
|
208
|
+
categoryErrors = _ref4.categoryErrors,
|
|
209
|
+
correctAnswerErrors = _ref4.correctAnswerErrors;
|
|
210
|
+
|
|
211
|
+
var _this$state2 = this.state,
|
|
212
|
+
gridValues = _this$state2.gridValues,
|
|
213
|
+
labelValues = _this$state2.labelValues;
|
|
214
|
+
var showPixeGuides = chartDimensions.showInConfigPanel || true;
|
|
215
|
+
var defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;
|
|
216
|
+
var defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;
|
|
217
|
+
var panelProperties = {
|
|
218
|
+
teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),
|
|
219
|
+
studentInstructionsEnabled: studentInstructions.settings && toggle(studentInstructions.label),
|
|
220
|
+
rationaleEnabled: rationale.settings && toggle(rationale.label),
|
|
221
|
+
spellCheckEnabled: spellCheck.settings && toggle(spellCheck.label),
|
|
222
|
+
promptEnabled: prompt.settings && toggle(prompt.label),
|
|
223
|
+
scoringType: scoringType.settings && radio(scoringType.label, ['all or nothing', 'partial scoring']),
|
|
224
|
+
rubricEnabled: (withRubric === null || withRubric === void 0 ? void 0 : withRubric.settings) && toggle(withRubric === null || withRubric === void 0 ? void 0 : withRubric.label)
|
|
225
|
+
};
|
|
158
226
|
return /*#__PURE__*/_react["default"].createElement(_configUi.layout.ConfigLayout, {
|
|
227
|
+
hideSettings: settingsPanelDisabled,
|
|
159
228
|
settings: /*#__PURE__*/_react["default"].createElement(Panel, {
|
|
160
229
|
model: model,
|
|
161
230
|
configuration: configuration,
|
|
162
231
|
onChangeModel: onModelChanged,
|
|
163
232
|
onChangeConfiguration: onConfigurationChanged,
|
|
164
233
|
groups: {
|
|
165
|
-
|
|
166
|
-
'title.enabled': title.settings && toggle(title.label, true),
|
|
167
|
-
graph: numberFields('Graph Display Size', {
|
|
168
|
-
width: {
|
|
169
|
-
label: 'Width',
|
|
170
|
-
suffix: 'px',
|
|
171
|
-
min: 400,
|
|
172
|
-
max: 700
|
|
173
|
-
},
|
|
174
|
-
height: {
|
|
175
|
-
label: 'Height',
|
|
176
|
-
suffix: 'px',
|
|
177
|
-
min: 400,
|
|
178
|
-
max: 700
|
|
179
|
-
}
|
|
180
|
-
})
|
|
181
|
-
},
|
|
182
|
-
Properties: {
|
|
183
|
-
teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),
|
|
184
|
-
studentInstructionsEnabled: studentInstructions.settings && toggle(studentInstructions.label),
|
|
185
|
-
rationaleEnabled: rationale.settings && toggle(rationale.label),
|
|
186
|
-
promptEnabled: prompt.settings && toggle(prompt.label),
|
|
187
|
-
scoringType: scoringType.settings && radio(scoringType.label, ['all or nothing', 'partial scoring'])
|
|
188
|
-
}
|
|
234
|
+
Properties: panelProperties
|
|
189
235
|
}
|
|
190
236
|
})
|
|
191
237
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
@@ -193,7 +239,7 @@ var Configure = /*#__PURE__*/function (_React$Component) {
|
|
|
193
239
|
}, /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
|
|
194
240
|
component: "div",
|
|
195
241
|
type: "body1"
|
|
196
|
-
}, /*#__PURE__*/_react["default"].createElement("span", null, "This
|
|
242
|
+
}, /*#__PURE__*/_react["default"].createElement("span", null, "This item type provides various types of interactive charts. Depending upon how an item is configured, students can change the heights of bars (or other similar chart elements) created by the author; relabel bars created by the author; and/or add new bars, label them, and set their heights.")), teacherInstructionsEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
|
|
197
243
|
label: teacherInstructions.label,
|
|
198
244
|
className: classes.promptHolder
|
|
199
245
|
}, /*#__PURE__*/_react["default"].createElement(_editableHtml["default"], {
|
|
@@ -201,7 +247,16 @@ var Configure = /*#__PURE__*/function (_React$Component) {
|
|
|
201
247
|
markup: model.teacherInstructions || '',
|
|
202
248
|
onChange: this.onTeacherInstructionsChange,
|
|
203
249
|
imageSupport: imageSupport,
|
|
204
|
-
nonEmpty: false
|
|
250
|
+
nonEmpty: false,
|
|
251
|
+
spellCheck: spellCheckEnabled,
|
|
252
|
+
maxImageWidth: maxImageWidth && maxImageWidth.teacherInstructions || defaultImageMaxWidth,
|
|
253
|
+
maxImageHeight: maxImageHeight && maxImageHeight.teacherInstructions || defaultImageMaxHeight,
|
|
254
|
+
uploadSoundSupport: uploadSoundSupport,
|
|
255
|
+
languageCharactersProps: [{
|
|
256
|
+
language: 'spanish'
|
|
257
|
+
}, {
|
|
258
|
+
language: 'special'
|
|
259
|
+
}]
|
|
205
260
|
})), promptEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
|
|
206
261
|
label: prompt.label,
|
|
207
262
|
className: classes.promptHolder
|
|
@@ -211,7 +266,16 @@ var Configure = /*#__PURE__*/function (_React$Component) {
|
|
|
211
266
|
onChange: this.onPromptChange,
|
|
212
267
|
imageSupport: imageSupport,
|
|
213
268
|
nonEmpty: false,
|
|
214
|
-
|
|
269
|
+
spellCheck: spellCheckEnabled,
|
|
270
|
+
disableUnderline: true,
|
|
271
|
+
maxImageWidth: defaultImageMaxWidth,
|
|
272
|
+
maxImageHeight: defaultImageMaxHeight,
|
|
273
|
+
uploadSoundSupport: uploadSoundSupport,
|
|
274
|
+
languageCharactersProps: [{
|
|
275
|
+
language: 'spanish'
|
|
276
|
+
}, {
|
|
277
|
+
language: 'special'
|
|
278
|
+
}]
|
|
215
279
|
})), rationaleEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
|
|
216
280
|
label: rationale.label || 'Rationale',
|
|
217
281
|
className: classes.promptHolder
|
|
@@ -219,22 +283,37 @@ var Configure = /*#__PURE__*/function (_React$Component) {
|
|
|
219
283
|
className: classes.prompt,
|
|
220
284
|
markup: model.rationale || '',
|
|
221
285
|
onChange: this.onRationaleChange,
|
|
222
|
-
imageSupport: imageSupport
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
286
|
+
imageSupport: imageSupport,
|
|
287
|
+
spellCheck: spellCheckEnabled,
|
|
288
|
+
maxImageWidth: maxImageWidth && maxImageWidth.rationale || defaultImageMaxWidth,
|
|
289
|
+
maxImageHeight: maxImageHeight && maxImageHeight.rationale || defaultImageMaxHeight,
|
|
290
|
+
uploadSoundSupport: uploadSoundSupport,
|
|
291
|
+
languageCharactersProps: [{
|
|
292
|
+
language: 'spanish'
|
|
293
|
+
}, {
|
|
294
|
+
language: 'special'
|
|
295
|
+
}]
|
|
296
|
+
})), /*#__PURE__*/_react["default"].createElement(_charting.ConfigureChartPanel, {
|
|
297
|
+
model: model,
|
|
298
|
+
onChange: this.onConfigChange,
|
|
299
|
+
gridValues: gridValues,
|
|
300
|
+
labelValues: labelValues,
|
|
301
|
+
chartDimensions: chartDimensions,
|
|
302
|
+
charts: charts
|
|
228
303
|
}), /*#__PURE__*/_react["default"].createElement(_chartingConfig["default"], {
|
|
229
|
-
config: graph,
|
|
230
304
|
model: model,
|
|
231
305
|
onChange: onModelChanged,
|
|
232
|
-
charts: charts
|
|
306
|
+
charts: charts,
|
|
307
|
+
labelsPlaceholders: labelsPlaceholders,
|
|
308
|
+
titlePlaceholder: titlePlaceholder,
|
|
309
|
+
showPixelGuides: showPixeGuides
|
|
233
310
|
}), /*#__PURE__*/_react["default"].createElement(_correctResponse["default"], {
|
|
234
311
|
config: graph,
|
|
235
312
|
model: model,
|
|
236
313
|
onChange: onModelChanged,
|
|
237
|
-
charts: charts
|
|
314
|
+
charts: charts,
|
|
315
|
+
error: categoryErrors,
|
|
316
|
+
correctAnswerErrors: correctAnswerErrors
|
|
238
317
|
})));
|
|
239
318
|
}
|
|
240
319
|
}]);
|
|
@@ -247,6 +326,7 @@ exports.Configure = Configure;
|
|
|
247
326
|
onConfigurationChanged: _propTypes["default"].func,
|
|
248
327
|
classes: _propTypes["default"].object,
|
|
249
328
|
imageSupport: _propTypes["default"].object,
|
|
329
|
+
uploadSoundSupport: _propTypes["default"].object,
|
|
250
330
|
model: _propTypes["default"].object.isRequired,
|
|
251
331
|
configuration: _propTypes["default"].object.isRequired
|
|
252
332
|
});
|