@pie-element/charting 2.7.3-next.917 → 2.7.3-next.962

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.
@@ -31,6 +31,8 @@ var _styles = require("@material-ui/core/styles");
31
31
 
32
32
  var _charting = require("@pie-lib/charting");
33
33
 
34
+ var _Checkbox = _interopRequireDefault(require("@material-ui/core/Checkbox"));
35
+
34
36
  var _Typography = _interopRequireDefault(require("@material-ui/core/Typography"));
35
37
 
36
38
  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); }
@@ -79,12 +81,19 @@ var ChartingConfig = /*#__PURE__*/function (_React$Component) {
79
81
  data: data
80
82
  }));
81
83
  });
84
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeAddRemoveEnabled", function (value) {
85
+ return _this.props.onChange(_objectSpread(_objectSpread({}, _this.props.model), {}, {
86
+ addCategoryEnabled: value
87
+ }));
88
+ });
82
89
  return _this;
83
90
  }
84
91
 
85
92
  (0, _createClass2["default"])(ChartingConfig, [{
86
93
  key: "render",
87
94
  value: function render() {
95
+ var _this2 = this;
96
+
88
97
  var _this$props = this.props,
89
98
  classes = _this$props.classes,
90
99
  model = _this$props.model,
@@ -107,10 +116,14 @@ var ChartingConfig = /*#__PURE__*/function (_React$Component) {
107
116
  data: model.data,
108
117
  title: model.title,
109
118
  onDataChange: this.changeData,
110
- editCategoryEnabled: true,
111
119
  addCategoryEnabled: true,
112
120
  categoryDefaultLabel: model.categoryDefaultLabel
113
- }))));
121
+ }), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(_Checkbox["default"], {
122
+ checked: model.addCategoryEnabled,
123
+ onChange: function onChange(e) {
124
+ _this2.changeAddRemoveEnabled(e.target.checked);
125
+ }
126
+ }), "Student can add categories"))));
114
127
  }
115
128
  }]);
116
129
  return ChartingConfig;
@@ -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;AACP,wBAAmC,KAAKC,KAAxC;AAAA,UAAQG,OAAR,eAAQA,OAAR;AAAA,UAAiBD,KAAjB,eAAiBA,KAAjB;AAAA,UAAwBE,MAAxB,eAAwBA,MAAxB;AAEA,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,WAAW,EAAE,IADf;AAEE,QAAA,SAAS,EAAEK,KAAK,CAACG,SAFnB;AAGE,QAAA,IAAI,EAAEH,KAAK,CAACI,KAHd;AAIE,QAAA,MAAM,EAAEJ,KAAK,CAACK,MAJhB;AAKE,QAAA,KAAK,EAAEL,KAAK,CAACM,KALf;AAME,QAAA,MAAM,EAAEJ,MANV;AAOE,QAAA,IAAI,EAAEF,KAAK,CAACH,IAPd;AAQE,QAAA,KAAK,EAAEG,KAAK,CAACO,KARf;AASE,QAAA,YAAY,EAAE,KAAKC,UATrB;AAUE,QAAA,mBAAmB,EAAE,IAVvB;AAWE,QAAA,kBAAkB,EAAE,IAXtB;AAYE,QAAA,oBAAoB,EAAER,KAAK,CAACS;AAZ9B,QALF,CADF,CAHF,CADF;AA6BD;;;EA1CiCC,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;;eA4CN,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 defineChart={true}\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","ChartingConfig","data","props","onChange","model","value","addCategoryEnabled","classes","charts","chartType","graph","domain","range","title","changeData","categoryDefaultLabel","e","changeAddRemoveEnabled","target","checked","React","Component","PropTypes","object","isRequired","func","array"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;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;+GAEQ,UAAAI,KAAK;AAAA,aAAI,MAAKH,KAAL,CAAWC,QAAX,iCAAyB,MAAKD,KAAL,CAAWE,KAApC;AAA2CE,QAAAA,kBAAkB,EAAED;AAA/D,SAAJ;AAAA,K;;;;;;WAE9B,kBAAS;AAAA;;AACP,wBAAmC,KAAKH,KAAxC;AAAA,UAAQK,OAAR,eAAQA,OAAR;AAAA,UAAiBH,KAAjB,eAAiBA,KAAjB;AAAA,UAAwBI,MAAxB,eAAwBA,MAAxB;AAEA,0BACE,yEAGE;AAAK,QAAA,SAAS,EAAED,OAAO,CAACf;AAAxB,sBACE;AAAK,QAAA,SAAS,EAAEe,OAAO,CAACR,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,WAAW,EAAE,IADf;AAEE,QAAA,SAAS,EAAEK,KAAK,CAACK,SAFnB;AAGE,QAAA,IAAI,EAAEL,KAAK,CAACM,KAHd;AAIE,QAAA,MAAM,EAAEN,KAAK,CAACO,MAJhB;AAKE,QAAA,KAAK,EAAEP,KAAK,CAACQ,KALf;AAME,QAAA,MAAM,EAAEJ,MANV;AAOE,QAAA,IAAI,EAAEJ,KAAK,CAACH,IAPd;AAQE,QAAA,KAAK,EAAEG,KAAK,CAACS,KARf;AASE,QAAA,YAAY,EAAE,KAAKC,UATrB;AAUE,QAAA,kBAAkB,EAAE,IAVtB;AAWE,QAAA,oBAAoB,EAAEV,KAAK,CAACW;AAX9B,QALF,eAkBG,8CACC,oBAAC,oBAAD;AACE,QAAA,OAAO,EAAEX,KAAK,CAACE,kBADjB;AAEE,QAAA,QAAQ,EAAE,kBAACU,CAAD,EAAO;AACf,UAAA,MAAI,CAACC,sBAAL,CAA4BD,CAAC,CAACE,MAAF,CAASC,OAArC;AACD;AAJH,QADD,+BAlBH,CADF,CAHF,CADF;AAqCD;;;EApDiCC,KAAK,CAACC,S;;;iCAA7BrB,c,eACQ;AACjBO,EAAAA,OAAO,EAAEe,sBAAUC,MAAV,CAAiBC,UADT;AAEjBpB,EAAAA,KAAK,EAAEkB,sBAAUC,MAAV,CAAiBC,UAFP;AAGjBrB,EAAAA,QAAQ,EAAEmB,sBAAUG,IAAV,CAAeD,UAHR;AAIjBhB,EAAAA,MAAM,EAAEc,sBAAUI;AAJD,C;;eAsDN,wBAAWpC,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';\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\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 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 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 defineChart={true}\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 addCategoryEnabled={true}\n categoryDefaultLabel={model.categoryDefaultLabel}\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 </div>\n\n </div>\n </div>\n );\n }\n}\n\nexport default withStyles(styles)(ChartingConfig);\n"],"file":"charting-config.js"}
@@ -29,8 +29,6 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
29
29
 
30
30
  var _styles = require("@material-ui/core/styles");
31
31
 
32
- var _Checkbox = _interopRequireDefault(require("@material-ui/core/Checkbox"));
33
-
34
32
  var _charting = require("@pie-lib/charting");
35
33
 
36
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); }
@@ -93,16 +91,6 @@ var CorrectResponse = /*#__PURE__*/function (_React$Component) {
93
91
  })
94
92
  }));
95
93
  });
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
- });
106
94
  return _this;
107
95
  }
108
96
 
@@ -116,8 +104,6 @@ var CorrectResponse = /*#__PURE__*/function (_React$Component) {
116
104
  model = _this$props2.model,
117
105
  charts = _this$props2.charts;
118
106
  return /*#__PURE__*/React.createElement("div", null, "Define Correct Response", /*#__PURE__*/React.createElement("div", {
119
- className: classes.container
120
- }, /*#__PURE__*/React.createElement("div", {
121
107
  key: "correct-response-graph-".concat(model.correctAnswer.name)
122
108
  }, /*#__PURE__*/React.createElement("p", null, model.correctAnswer.name), /*#__PURE__*/React.createElement(_charting.Chart, {
123
109
  chartType: model.chartType,
@@ -130,20 +116,9 @@ var CorrectResponse = /*#__PURE__*/function (_React$Component) {
130
116
  onDataChange: function onDataChange(data) {
131
117
  return _this2.changeData(data);
132
118
  },
133
- editCategoryEnabled: true,
134
- addCategoryEnabled: true,
119
+ addCategoryEnabled: model.addCategoryEnabled,
135
120
  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"))));
121
+ })));
147
122
  }
148
123
  }]);
149
124
  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":"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","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","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"}
@@ -14,8 +14,7 @@ exports["default"] = void 0;
14
14
  // label,
15
15
  // value,
16
16
  // interactive: true,
17
- // editable: true,
18
- // deletable: true
17
+ // editable: true
19
18
  // });
20
19
  var _default = {
21
20
  model: {
@@ -27,7 +26,6 @@ var _default = {
27
26
  domain: {
28
27
  label: 'Fruits'
29
28
  },
30
- editCategoryEnabled: true,
31
29
  graph: {
32
30
  width: 480,
33
31
  height: 480
@@ -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","spellCheck","settings","enabled","studentInstructions","teacherInstructions"],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AAGA;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;AACbC,IAAAA,UAAU,EAAE;AACVjB,MAAAA,KAAK,EAAE,YADG;AAEVkB,MAAAA,QAAQ,EAAC,KAFC;AAGVC,MAAAA,OAAO,EAAC;AAHE,KADC;AAMbd,IAAAA,MAAM,EAAE;AACNa,MAAAA,QAAQ,EAAE,IADJ;AAENlB,MAAAA,KAAK,EAAE;AAFD,KANK;AAUbO,IAAAA,SAAS,EAAE;AACTW,MAAAA,QAAQ,EAAE,IADD;AAETlB,MAAAA,KAAK,EAAE;AAFE,KAVE;AAcbW,IAAAA,WAAW,EAAE;AACXO,MAAAA,QAAQ,EAAE,KADC;AAEXlB,MAAAA,KAAK,EAAE;AAFI,KAdA;AAkBboB,IAAAA,mBAAmB,EAAE;AACnBF,MAAAA,QAAQ,EAAE,KADS;AAEnBlB,MAAAA,KAAK,EAAE;AAFY,KAlBR;AAsBbqB,IAAAA,mBAAmB,EAAE;AACnBH,MAAAA,QAAQ,EAAE,IADS;AAEnBlB,MAAAA,KAAK,EAAE;AAFY,KAtBR;AA0BbY,IAAAA,KAAK,EAAE;AACLM,MAAAA,QAAQ,EAAE,KADL;AAELlB,MAAAA,KAAK,EAAE;AAFF;AA1BM;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// 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 spellCheck: {\n label: 'Spellcheck',\n settings:false,\n enabled:true\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 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","label","graph","width","height","prompt","promptEnabled","rationale","range","max","min","scoringType","title","rationaleEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","configuration","spellCheck","settings","enabled","studentInstructions","teacherInstructions"],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AAGA;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,KAAK,EAAE;AACLC,MAAAA,KAAK,EAAE,GADF;AAELC,MAAAA,MAAM,EAAE;AAFH,KATF;AAaLC,IAAAA,MAAM,EAAE,sBAbH;AAcLC,IAAAA,aAAa,EAAE,IAdV;AAeLC,IAAAA,SAAS,EAAE,sBAfN;AAgBLC,IAAAA,KAAK,EAAE;AACLP,MAAAA,KAAK,EAAE,QADF;AAELQ,MAAAA,GAAG,EAAE,GAFA;AAGLC,MAAAA,GAAG,EAAE;AAHA,KAhBF;AAqBLC,IAAAA,WAAW,EAAE,gBArBR;AAsBLC,IAAAA,KAAK,EAAE,kBAtBF;AAuBLC,IAAAA,gBAAgB,EAAE,IAvBb;AAwBLC,IAAAA,0BAA0B,EAAE,IAxBvB;AAyBLC,IAAAA,0BAA0B,EAAE;AAzBvB,GADM;AA4BbC,EAAAA,aAAa,EAAE;AACbC,IAAAA,UAAU,EAAE;AACVhB,MAAAA,KAAK,EAAE,YADG;AAEViB,MAAAA,QAAQ,EAAC,KAFC;AAGVC,MAAAA,OAAO,EAAC;AAHE,KADC;AAMbd,IAAAA,MAAM,EAAE;AACNa,MAAAA,QAAQ,EAAE,IADJ;AAENjB,MAAAA,KAAK,EAAE;AAFD,KANK;AAUbM,IAAAA,SAAS,EAAE;AACTW,MAAAA,QAAQ,EAAE,IADD;AAETjB,MAAAA,KAAK,EAAE;AAFE,KAVE;AAcbU,IAAAA,WAAW,EAAE;AACXO,MAAAA,QAAQ,EAAE,KADC;AAEXjB,MAAAA,KAAK,EAAE;AAFI,KAdA;AAkBbmB,IAAAA,mBAAmB,EAAE;AACnBF,MAAAA,QAAQ,EAAE,KADS;AAEnBjB,MAAAA,KAAK,EAAE;AAFY,KAlBR;AAsBboB,IAAAA,mBAAmB,EAAE;AACnBH,MAAAA,QAAQ,EAAE,IADS;AAEnBjB,MAAAA,KAAK,EAAE;AAFY,KAtBR;AA0BbW,IAAAA,KAAK,EAAE;AACLM,MAAAA,QAAQ,EAAE,KADL;AAELjB,MAAAA,KAAK,EAAE;AAFF;AA1BM;AA5BF,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// 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 label: 'Fruits',\n },\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 spellCheck: {\n label: 'Spellcheck',\n settings:false,\n enabled:true\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 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"}
@@ -9,9 +9,9 @@
9
9
  "dependencies": {
10
10
  "@material-ui/core": "^3.9.2",
11
11
  "@pie-framework/pie-configure-events": "^1.2.0",
12
- "@pie-lib/charting": "^4.5.16",
13
- "@pie-lib/config-ui": "^10.13.2",
14
- "@pie-lib/editable-html": "^7.22.5",
12
+ "@pie-lib/charting": "^4.5.17",
13
+ "@pie-lib/config-ui": "^10.13.3",
14
+ "@pie-lib/editable-html": "^7.22.6",
15
15
  "classnames": "^2.2.5",
16
16
  "debug": "^4.1.1",
17
17
  "prop-types": "^15.6.2",
@@ -23,7 +23,8 @@ var _isEmpty = _interopRequireDefault(require("lodash/isEmpty"));
23
23
 
24
24
  var _controllerUtils = require("@pie-lib/controller-utils");
25
25
 
26
- var _excluded = ["correctness"];
26
+ var _excluded = ["deletable"],
27
+ _excluded2 = ["correctness"];
27
28
 
28
29
  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; }
29
30
 
@@ -57,7 +58,6 @@ exports.setCorrectness = setCorrectness;
57
58
  var normalize = function normalize(question) {
58
59
  return _objectSpread({
59
60
  addCategoryEnabled: true,
60
- editCategoryEnabled: true,
61
61
  promptEnabled: true,
62
62
  rationaleEnabled: true,
63
63
  teacherInstructionsEnabled: true,
@@ -72,8 +72,7 @@ var getScore = function getScore(question, session) {
72
72
  var correctAnswer = question.correctAnswer,
73
73
  _question$data = question.data,
74
74
  initialData = _question$data === void 0 ? [] : _question$data,
75
- scoringType = question.scoringType,
76
- editCategoryEnabled = question.editCategoryEnabled;
75
+ scoringType = question.scoringType;
77
76
 
78
77
  var isPartialScoring = _controllerUtils.partialScoring.enabled({
79
78
  partialScoring: scoringType !== undefined ? scoringType === 'partial scoring' : scoringType
@@ -83,7 +82,7 @@ var getScore = function getScore(question, session) {
83
82
  _ref$data = _ref.data,
84
83
  correctAnswers = _ref$data === void 0 ? [] : _ref$data;
85
84
 
86
- var defaultAnswers = filterCategories(initialData, editCategoryEnabled);
85
+ var defaultAnswers = filterCategories(initialData);
87
86
  var answers = setCorrectness(session && session.answer || defaultAnswers, isPartialScoring);
88
87
  var result = 0;
89
88
 
@@ -183,12 +182,11 @@ var getScore = function getScore(question, session) {
183
182
 
184
183
  exports.getScore = getScore;
185
184
 
186
- var filterCategories = function filterCategories(categories, editable) {
187
- return categories ? categories.map(function (category) {
188
- return _objectSpread(_objectSpread({}, category), {}, {
189
- deletable: false,
190
- editable: editable
191
- });
185
+ var filterCategories = function filterCategories(categories) {
186
+ return categories ? categories.map(function (_ref2) {
187
+ var deletable = _ref2.deletable,
188
+ rest = (0, _objectWithoutProperties2["default"])(_ref2, _excluded);
189
+ return rest;
192
190
  }) : [];
193
191
  };
194
192
 
@@ -202,7 +200,6 @@ function model(question, session, env) {
202
200
  chartType = normalizedQuestion.chartType,
203
201
  data = normalizedQuestion.data,
204
202
  domain = normalizedQuestion.domain,
205
- editCategoryEnabled = normalizedQuestion.editCategoryEnabled,
206
203
  graph = normalizedQuestion.graph,
207
204
  prompt = normalizedQuestion.prompt,
208
205
  promptEnabled = normalizedQuestion.promptEnabled,
@@ -222,9 +219,8 @@ function model(question, session, env) {
222
219
  addCategoryEnabled: addCategoryEnabled,
223
220
  categoryDefaultLabel: categoryDefaultLabel,
224
221
  chartType: chartType,
225
- data: filterCategories(data, editCategoryEnabled),
222
+ data: filterCategories(data),
226
223
  domain: domain,
227
- editCategoryEnabled: editCategoryEnabled,
228
224
  graph: graph,
229
225
  prompt: promptEnabled ? prompt : null,
230
226
  range: range,
@@ -235,12 +231,12 @@ function model(question, session, env) {
235
231
  disabled: env.mode !== 'gather',
236
232
  scoringType: scoringType
237
233
  };
238
- var answers = filterCategories(getScore(normalizedQuestion, session, env).answers, false);
234
+ var answers = filterCategories(getScore(normalizedQuestion, session, env).answers);
239
235
 
240
236
  if (env.mode === 'view') {
241
- base.correctedAnswer = answers.map(function (_ref2) {
242
- var correctness = _ref2.correctness,
243
- rest = (0, _objectWithoutProperties2["default"])(_ref2, _excluded);
237
+ base.correctedAnswer = answers.map(function (_ref3) {
238
+ var correctness = _ref3.correctness,
239
+ rest = (0, _objectWithoutProperties2["default"])(_ref3, _excluded2);
244
240
  return _objectSpread(_objectSpread({}, rest), {}, {
245
241
  interactive: false
246
242
  });
@@ -280,8 +276,17 @@ var createCorrectResponseSession = function createCorrectResponseSession(questio
280
276
  return new Promise(function (resolve) {
281
277
  if (env.mode !== 'evaluate' && env.role === 'instructor') {
282
278
  var correctAnswer = question.correctAnswer;
279
+ var answers = correctAnswer && correctAnswer.data; // for IBX preview mode
280
+
281
+ if (env.mode === 'gather') {
282
+ var data = question.data;
283
+ answers = (correctAnswer && correctAnswer.data || []).map(function (answer, index) {
284
+ return _objectSpread(_objectSpread({}, data[index]), answer);
285
+ });
286
+ }
287
+
283
288
  resolve({
284
- answer: correctAnswer && correctAnswer.data,
289
+ answer: answers,
285
290
  id: '1'
286
291
  });
287
292
  } else {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.js"],"names":["log","lowerCase","string","toLowerCase","checkLabelsEquality","givenAnswerLabel","correctAnswerLabel","setCorrectness","answers","partialScoring","map","answer","correctness","value","label","normalize","question","addCategoryEnabled","editCategoryEnabled","promptEnabled","rationaleEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","getScore","session","env","correctAnswer","data","initialData","scoringType","isPartialScoring","enabled","undefined","correctAnswers","defaultAnswers","filterCategories","result","maxScore","score","scoreForLabelAndValueEditable","corrAnswer","forEach","index","defaultAnswer","editable","interactive","length","slice","parseFloat","toFixed","categories","category","deletable","model","Promise","resolve","normalizedQuestion","categoryDefaultLabel","chartType","domain","graph","prompt","range","rationale","title","teacherInstructions","correctInfo","base","size","disabled","mode","correctedAnswer","rest","role","outcome","empty","createCorrectResponseSession","id"],"mappings":"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","sourcesContent":["import debug from 'debug';\nimport isEmpty from 'lodash/isEmpty';\n\nimport { partialScoring } from '@pie-lib/controller-utils';\n\nconst log = debug('@pie-element:graphing:controller');\n\nconst lowerCase = string => (string || '').toLowerCase();\n\nexport const checkLabelsEquality = (givenAnswerLabel, correctAnswerLabel) =>\n lowerCase(givenAnswerLabel) === lowerCase(correctAnswerLabel);\n\nexport const setCorrectness = (answers, partialScoring) => answers ? answers.map(answer => ({\n ...answer,\n correctness: {\n value: partialScoring ? 'incorrect' : 'correct',\n label: partialScoring ? 'incorrect' : 'correct'\n }\n})) : [];\n\n\nexport const normalize = question => ({\n addCategoryEnabled: true,\n editCategoryEnabled: true,\n promptEnabled: true,\n rationaleEnabled: true,\n teacherInstructionsEnabled: true,\n studentInstructionsEnabled: true,\n ...question,\n});\n\nexport const getScore = (question, session, env = {}) => {\n const { correctAnswer, data: initialData = [], scoringType, editCategoryEnabled } = question;\n\n const isPartialScoring = partialScoring.enabled(\n { partialScoring: scoringType !== undefined ? scoringType === 'partial scoring' : scoringType },\n env\n );\n\n const { data: correctAnswers = [] } = correctAnswer || {};\n const defaultAnswers = filterCategories(initialData, editCategoryEnabled);\n\n let answers = setCorrectness((session && session.answer) || defaultAnswers, isPartialScoring);\n\n let result = 0;\n\n if (isPartialScoring) {\n // if score type is \"partial scoring\"\n // maxScore is calculated based on the correct response\n // score is calculated based on the given response\n let maxScore = 0;\n let score = 0;\n\n const scoreForLabelAndValueEditable = (answer, corrAnswer) => {\n const { value, label } = answer;\n\n maxScore += 2;\n\n if (value === corrAnswer.value) {\n score += 1;\n answer.correctness.value = 'correct';\n }\n\n if (checkLabelsEquality(label, corrAnswer.label)) {\n score += 1;\n answer.correctness.label = 'correct';\n }\n };\n\n // if given answer has more categories than the correct answers, the \"extra\" will be ignored\n correctAnswers.forEach((corrAnswer, index) => {\n const defaultAnswer = defaultAnswers[index];\n const answer = answers[index];\n\n // if there is a corresponding category at the same position in the given answer\n if (answer) {\n // if there is a corresponding category at the same position in the default answer\n if (defaultAnswer) {\n // if category's label (in default answer) was not editable\n // it means that this category values only one point (only the value can be changed)\n if (!defaultAnswer.editable && answer.interactive) {\n maxScore += 1;\n\n if (answer.value === corrAnswer.value) {\n score += 1;\n answer.correctness.value = 'correct';\n }\n answer.correctness.label = 'correct';\n\n // if category's label (in default answer) was editable\n // it means that this category values 2 points (both label and value can be changed)\n } else if (defaultAnswer.editable && answer.interactive) {\n scoreForLabelAndValueEditable(answer, corrAnswer);\n } else if (!answer.interactive) {\n answer.correctness.value = 'correct';\n answer.correctness.label = 'correct';\n }\n } else {\n // if there is not a corresponding category at the same position in the default answer\n scoreForLabelAndValueEditable(answer, corrAnswer);\n }\n } else {\n // if there is not a corresponding category at the same position in the given answer\n // it means that the given answer has less categories than the correct answer\n maxScore += 2;\n }\n });\n\n result = maxScore ? score / maxScore : 0;\n } else {\n // if scoring type is \"all or nothing\"\n // the length on correct answers and length of given answer have to match\n result = correctAnswers.length === answers.length ? 1 : 0;\n\n if (result) {\n // if there is at least one difference between the correct answer and the given answer\n // the result will be incorrect\n correctAnswers.forEach((corrAnswer, index) => {\n const { value, label } = answers[index];\n\n if (value !== corrAnswer.value) {\n result = 0;\n answers[index].correctness.value = 'incorrect';\n }\n if (lowerCase(label) !== lowerCase(corrAnswer.label)) {\n result = 0;\n answers[index].correctness.label = 'incorrect';\n }\n });\n } else {\n answers = [\n ...answers.slice(0, correctAnswers.length),\n ...setCorrectness(answers.slice(correctAnswers.length), true)\n ];\n }\n }\n\n return {\n score: parseFloat(result.toFixed(2)),\n answers\n };\n};\n\nexport const filterCategories = (categories, editable) => categories ? categories.map(category => ({\n ...category,\n deletable: false,\n editable\n})) : [];\n\nexport function model(question, session, env) {\n return new Promise(resolve => {\n const normalizedQuestion = normalize(question);\n const {\n addCategoryEnabled,\n categoryDefaultLabel,\n chartType,\n data,\n domain,\n editCategoryEnabled,\n graph,\n prompt,\n promptEnabled,\n range,\n rationale,\n title,\n rationaleEnabled,\n teacherInstructions,\n teacherInstructionsEnabled,\n correctAnswer,\n scoringType\n } = normalizedQuestion;\n\n const correctInfo = { correctness: 'incorrect', score: '0%' };\n\n const base = {\n addCategoryEnabled,\n categoryDefaultLabel,\n chartType,\n data: filterCategories(data, editCategoryEnabled),\n domain,\n editCategoryEnabled,\n graph,\n prompt: promptEnabled ? prompt : null,\n range,\n rationale,\n title,\n size: graph,\n correctness: correctInfo,\n disabled: env.mode !== 'gather',\n scoringType\n };\n\n const answers = filterCategories(getScore(normalizedQuestion, session, env).answers, false);\n\n if (env.mode === 'view') {\n base.correctedAnswer = answers.map(({correctness, ...rest}) => {\n return { ...rest, interactive: false };\n });\n\n base.addCategoryEnabled = false;\n }\n\n if (env.mode === 'evaluate') {\n base.correctedAnswer = answers;\n base.correctAnswer = correctAnswer;\n base.addCategoryEnabled = false;\n }\n\n if (env.role === 'instructor' && (env.mode === 'view' || env.mode === 'evaluate')) {\n base.rationale = rationaleEnabled ? rationale : null;\n base.teacherInstructions = teacherInstructionsEnabled ? teacherInstructions : null;\n } else {\n base.rationale = null;\n base.teacherInstructions = null;\n }\n\n log('base: ', base);\n resolve(base);\n });\n}\n\nexport function outcome(model, session, env) {\n return new Promise(resolve => {\n resolve({\n score: getScore(model, session, env).score,\n empty: !session || isEmpty(session)\n });\n });\n}\n\nexport const createCorrectResponseSession = (question, env) => {\n return new Promise(resolve => {\n if (env.mode !== 'evaluate' && env.role === 'instructor') {\n const { correctAnswer } = question;\n\n resolve({\n answer: correctAnswer && correctAnswer.data,\n id: '1'\n });\n } else {\n return resolve(null);\n }\n });\n};\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../src/index.js"],"names":["log","lowerCase","string","toLowerCase","checkLabelsEquality","givenAnswerLabel","correctAnswerLabel","setCorrectness","answers","partialScoring","map","answer","correctness","value","label","normalize","question","addCategoryEnabled","promptEnabled","rationaleEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","getScore","session","env","correctAnswer","data","initialData","scoringType","isPartialScoring","enabled","undefined","correctAnswers","defaultAnswers","filterCategories","result","maxScore","score","scoreForLabelAndValueEditable","corrAnswer","forEach","index","defaultAnswer","editable","interactive","length","slice","parseFloat","toFixed","categories","deletable","rest","model","Promise","resolve","normalizedQuestion","categoryDefaultLabel","chartType","domain","graph","prompt","range","rationale","title","teacherInstructions","correctInfo","base","size","disabled","mode","correctedAnswer","role","outcome","empty","createCorrectResponseSession","id"],"mappings":"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","sourcesContent":["import debug from 'debug';\nimport isEmpty from 'lodash/isEmpty';\n\nimport { partialScoring } from '@pie-lib/controller-utils';\n\nconst log = debug('@pie-element:graphing:controller');\n\nconst lowerCase = string => (string || '').toLowerCase();\n\nexport const checkLabelsEquality = (givenAnswerLabel, correctAnswerLabel) =>\n lowerCase(givenAnswerLabel) === lowerCase(correctAnswerLabel);\n\nexport const setCorrectness = (answers, partialScoring) => answers ? answers.map(answer => ({\n ...answer,\n correctness: {\n value: partialScoring ? 'incorrect' : 'correct',\n label: partialScoring ? 'incorrect' : 'correct'\n }\n})) : [];\n\n\nexport const normalize = question => ({\n addCategoryEnabled: true,\n promptEnabled: true,\n rationaleEnabled: true,\n teacherInstructionsEnabled: true,\n studentInstructionsEnabled: true,\n ...question,\n});\n\nexport const getScore = (question, session, env = {}) => {\n const { correctAnswer, data: initialData = [], scoringType } = question;\n\n const isPartialScoring = partialScoring.enabled(\n { partialScoring: scoringType !== undefined ? scoringType === 'partial scoring' : scoringType },\n env\n );\n\n const { data: correctAnswers = [] } = correctAnswer || {};\n const defaultAnswers = filterCategories(initialData);\n\n let answers = setCorrectness((session && session.answer) || defaultAnswers, isPartialScoring);\n\n let result = 0;\n\n if (isPartialScoring) {\n // if score type is \"partial scoring\"\n // maxScore is calculated based on the correct response\n // score is calculated based on the given response\n let maxScore = 0;\n let score = 0;\n\n const scoreForLabelAndValueEditable = (answer, corrAnswer) => {\n const { value, label } = answer;\n\n maxScore += 2;\n\n if (value === corrAnswer.value) {\n score += 1;\n answer.correctness.value = 'correct';\n }\n\n if (checkLabelsEquality(label, corrAnswer.label)) {\n score += 1;\n answer.correctness.label = 'correct';\n }\n };\n\n // if given answer has more categories than the correct answers, the \"extra\" will be ignored\n correctAnswers.forEach((corrAnswer, index) => {\n const defaultAnswer = defaultAnswers[index];\n const answer = answers[index];\n\n // if there is a corresponding category at the same position in the given answer\n if (answer) {\n // if there is a corresponding category at the same position in the default answer\n if (defaultAnswer) {\n // if category's label (in default answer) was not editable\n // it means that this category values only one point (only the value can be changed)\n if (!defaultAnswer.editable && answer.interactive) {\n maxScore += 1;\n\n if (answer.value === corrAnswer.value) {\n score += 1;\n answer.correctness.value = 'correct';\n }\n answer.correctness.label = 'correct';\n\n // if category's label (in default answer) was editable\n // it means that this category values 2 points (both label and value can be changed)\n } else if (defaultAnswer.editable && answer.interactive) {\n scoreForLabelAndValueEditable(answer, corrAnswer);\n } else if (!answer.interactive) {\n answer.correctness.value = 'correct';\n answer.correctness.label = 'correct';\n }\n } else {\n // if there is not a corresponding category at the same position in the default answer\n scoreForLabelAndValueEditable(answer, corrAnswer);\n }\n } else {\n // if there is not a corresponding category at the same position in the given answer\n // it means that the given answer has less categories than the correct answer\n maxScore += 2;\n }\n });\n\n result = maxScore ? score / maxScore : 0;\n } else {\n // if scoring type is \"all or nothing\"\n // the length on correct answers and length of given answer have to match\n result = correctAnswers.length === answers.length ? 1 : 0;\n\n if (result) {\n // if there is at least one difference between the correct answer and the given answer\n // the result will be incorrect\n correctAnswers.forEach((corrAnswer, index) => {\n const { value, label } = answers[index];\n\n if (value !== corrAnswer.value) {\n result = 0;\n answers[index].correctness.value = 'incorrect';\n }\n if (lowerCase(label) !== lowerCase(corrAnswer.label)) {\n result = 0;\n answers[index].correctness.label = 'incorrect';\n }\n });\n } else {\n answers = [\n ...answers.slice(0, correctAnswers.length),\n ...setCorrectness(answers.slice(correctAnswers.length), true)\n ];\n }\n }\n\n return {\n score: parseFloat(result.toFixed(2)),\n answers\n };\n};\n\nexport const filterCategories = (categories) => categories ? categories.map(({deletable, ...rest}) => rest) : [];\n\nexport function model(question, session, env) {\n return new Promise(resolve => {\n const normalizedQuestion = normalize(question);\n const {\n addCategoryEnabled,\n categoryDefaultLabel,\n chartType,\n data,\n domain,\n graph,\n prompt,\n promptEnabled,\n range,\n rationale,\n title,\n rationaleEnabled,\n teacherInstructions,\n teacherInstructionsEnabled,\n correctAnswer,\n scoringType\n } = normalizedQuestion;\n\n const correctInfo = { correctness: 'incorrect', score: '0%' };\n\n const base = {\n addCategoryEnabled,\n categoryDefaultLabel,\n chartType,\n data: filterCategories(data),\n domain,\n graph,\n prompt: promptEnabled ? prompt : null,\n range,\n rationale,\n title,\n size: graph,\n correctness: correctInfo,\n disabled: env.mode !== 'gather',\n scoringType\n };\n\n const answers = filterCategories(getScore(normalizedQuestion, session, env).answers);\n\n if (env.mode === 'view') {\n base.correctedAnswer = answers.map(({correctness, ...rest}) => {\n return { ...rest, interactive: false };\n });\n\n base.addCategoryEnabled = false;\n }\n\n if (env.mode === 'evaluate') {\n base.correctedAnswer = answers;\n base.correctAnswer = correctAnswer;\n base.addCategoryEnabled = false;\n }\n\n if (env.role === 'instructor' && (env.mode === 'view' || env.mode === 'evaluate')) {\n base.rationale = rationaleEnabled ? rationale : null;\n base.teacherInstructions = teacherInstructionsEnabled ? teacherInstructions : null;\n } else {\n base.rationale = null;\n base.teacherInstructions = null;\n }\n\n log('base: ', base);\n resolve(base);\n });\n}\n\nexport function outcome(model, session, env) {\n return new Promise(resolve => {\n resolve({\n score: getScore(model, session, env).score,\n empty: !session || isEmpty(session)\n });\n });\n}\n\nexport const createCorrectResponseSession = (question, env) => {\n return new Promise(resolve => {\n if (env.mode !== 'evaluate' && env.role === 'instructor') {\n const { correctAnswer } = question;\n\n let answers = correctAnswer && correctAnswer.data;\n\n // for IBX preview mode\n if (env.mode === 'gather') {\n const {data} = question;\n\n answers = (correctAnswer && correctAnswer.data || []).map((answer, index) => {\n return {\n ...data[index],\n ...answer\n };\n });\n }\n\n resolve({\n answer: answers,\n id: '1'\n });\n } else {\n return resolve(null);\n }\n });\n};\n"],"file":"index.js"}
@@ -1,7 +1,6 @@
1
1
  exports.model = (id, element) => ({
2
2
  id,
3
3
  element,
4
-
5
4
  addCategoryEnabled: true,
6
5
  categoryDefaultLabel: 'Category',
7
6
  chartType: 'bar',
@@ -11,22 +10,19 @@ exports.model = (id, element) => ({
11
10
  label: 'A',
12
11
  value: 1,
13
12
  interactive: false,
14
- editable: true,
15
- deletable: true
13
+ editable: false
16
14
  },
17
15
  {
18
16
  label: 'B',
19
17
  value: 1,
20
18
  interactive: true,
21
- editable: true,
22
- deletable: true
19
+ editable: false
23
20
  },
24
21
  {
25
22
  label: 'C',
26
23
  value: 1,
27
24
  interactive: true,
28
- editable: true,
29
- deletable: true
25
+ editable: false
30
26
  },
31
27
  ]
32
28
  },
@@ -35,28 +31,24 @@ exports.model = (id, element) => ({
35
31
  label: 'A',
36
32
  value: 1,
37
33
  interactive: false,
38
- editable: true,
39
- deletable: true
34
+ editable: false
40
35
  },
41
36
  {
42
37
  label: 'B',
43
38
  value: 1,
44
39
  interactive: true,
45
- editable: true,
46
- deletable: true
40
+ editable: false
47
41
  },
48
42
  {
49
43
  label: 'D',
50
44
  value: 2,
51
45
  interactive: true,
52
- editable: true,
53
- deletable: true
46
+ editable: false
54
47
  },
55
48
  ],
56
49
  domain: {
57
50
  label: 'Characters',
58
51
  },
59
- editCategoryEnabled: true,
60
52
  graph: {
61
53
  width: 480,
62
54
  height: 480
@@ -7,22 +7,19 @@ module.exports = [
7
7
  // label: 'A',
8
8
  // value: 1,
9
9
  // interactive: false,
10
- // editable: true,
11
- // deletable: true
10
+ // editable: true
12
11
  // },
13
12
  // {
14
13
  // label: 'B',
15
14
  // value: 1,
16
15
  // interactive: true,
17
- // editable: true,
18
- // deletable: true
16
+ // editable: true
19
17
  // },
20
18
  // {
21
19
  // label: 'C',
22
20
  // value: 1,
23
21
  // interactive: true,
24
- // editable: true,
25
- // deletable: true
22
+ // editable: true
26
23
  // }
27
24
  // ]
28
25
  },
@@ -366,11 +366,6 @@
366
366
  "step"
367
367
  ]
368
368
  },
369
- "editCategoryEnabled": {
370
- "description": "Indicates if user can edit default categories",
371
- "type": "boolean",
372
- "title": "editCategoryEnabled"
373
- },
374
369
  "graph": {
375
370
  "title": "Chart",
376
371
  "type": "object",
@@ -506,7 +501,6 @@
506
501
  "correctAnswer",
507
502
  "data",
508
503
  "domain",
509
- "editCategoryEnabled",
510
504
  "element",
511
505
  "graph",
512
506
  "id",
@@ -69,10 +69,6 @@ Label step value
69
69
 
70
70
  Axis Label
71
71
 
72
- # `editCategoryEnabled` (boolean, required)
73
-
74
- Indicates if user can edit default categories
75
-
76
72
  # `graph` (object, required)
77
73
 
78
74
  Properties of the `graph` object:
package/lib/main.js CHANGED
@@ -106,7 +106,6 @@ var Main = /*#__PURE__*/function (_React$Component) {
106
106
  domain = model.domain,
107
107
  range = model.range,
108
108
  title = model.title,
109
- editCategoryEnabled = model.editCategoryEnabled,
110
109
  addCategoryEnabled = model.addCategoryEnabled,
111
110
  categoryDefaultLabel = model.categoryDefaultLabel,
112
111
  rationale = model.rationale,
@@ -144,7 +143,6 @@ var Main = /*#__PURE__*/function (_React$Component) {
144
143
  data: correctData || categories,
145
144
  title: title,
146
145
  onDataChange: this.changeData,
147
- editCategoryEnabled: false,
148
146
  addCategoryEnabled: false,
149
147
  categoryDefaultLabel: categoryDefaultLabel
150
148
  }) : /*#__PURE__*/_react["default"].createElement(_charting.Chart, {
@@ -156,7 +154,6 @@ var Main = /*#__PURE__*/function (_React$Component) {
156
154
  data: correctedAnswer || categories,
157
155
  title: title,
158
156
  onDataChange: this.changeData,
159
- editCategoryEnabled: editCategoryEnabled,
160
157
  addCategoryEnabled: addCategoryEnabled,
161
158
  categoryDefaultLabel: categoryDefaultLabel
162
159
  }), /*#__PURE__*/_react["default"].createElement("br", null), rationale && (0, _renderUi.hasText)(rationale) && /*#__PURE__*/_react["default"].createElement(_renderUi.Collapsible, {
package/lib/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/main.jsx"],"names":["Main","props","data","setState","categories","onAnswersChange","showingCorrect","state","model","nextProps","nextData","classes","teacherInstructions","prompt","chartType","size","domain","range","title","editCategoryEnabled","addCategoryEnabled","categoryDefaultLabel","rationale","correctedAnswer","correctAnswer","correctData","map","interactive","editable","showToggle","length","mainContainer","toggleCorrect","hidden","visible","chartTypes","Bar","Histogram","LineDot","LineCross","DotPlot","LinePlot","changeData","React","Component","PropTypes","object","isRequired","func","array","styles","theme","padding","spacing","unit","color","text","backgroundColor","background","overflow"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;IAEaA,I;;;;;AAUX,gBAAYC,KAAZ,EAAmB;AAAA;;AAAA;AACjB,8BAAMA,KAAN;AADiB,mGAkBN,UAACC,IAAD;AAAA,aACX,MAAKC,QAAL,CACE;AACEC,QAAAA,UAAU,EAAEF;AADd,OADF,EAIE;AAAA,eAAM,MAAKD,KAAL,CAAWI,eAAX,CAA2BH,IAA3B,CAAN;AAAA,OAJF,CADW;AAAA,KAlBM;AAAA,sGA0BH,UAACI,cAAD;AAAA,aAAoB,MAAKH,QAAL,CAAc;AAAEG,QAAAA,cAAc,EAAdA;AAAF,OAAd,CAApB;AAAA,KA1BG;AAGjB,UAAKC,KAAL,GAAa;AACXH,MAAAA,UAAU,EAAEH,KAAK,CAACG,UAAN,IAAoBH,KAAK,CAACO,KAAN,CAAYN,IADjC;AAEXI,MAAAA,cAAc,EAAE;AAFL,KAAb;AAHiB;AAOlB;;;;WAED,0CAAiCG,SAAjC,EAA4C;AAC1C,6BAAgDA,SAAhD,CAAQD,KAAR;AAAA,uDAAyC,EAAzC;AAAA,mDAAiBN,IAAjB;AAAA,UAAuBQ,QAAvB,sCAAkC,EAAlC;AACA,8BAAsC,KAAKT,KAA3C,CAAQO,KAAR;AAAA,yDAA+B,EAA/B;AAAA,oDAAiBN,IAAjB;AAAA,UAAiBA,IAAjB,sCAAwB,EAAxB;;AAEA,UAAI,CAAC,yBAAQQ,QAAR,EAAkBR,IAAlB,CAAL,EAA8B;AAC5B,aAAKC,QAAL,CAAc;AAAEC,UAAAA,UAAU,EAAEM;AAAd,SAAd;AACD;AACF;;;WAYD,kBAAS;AACP,wBAAuC,KAAKH,KAA5C;AAAA,UAAQH,UAAR,eAAQA,UAAR;AAAA,UAAoBE,cAApB,eAAoBA,cAApB;AACA,wBAA2B,KAAKL,KAAhC;AAAA,UAAQO,KAAR,eAAQA,KAAR;AAAA,UAAeG,OAAf,eAAeA,OAAf;AACA,UACEC,mBADF,GAcIJ,KAdJ,CACEI,mBADF;AAAA,UAEEC,MAFF,GAcIL,KAdJ,CAEEK,MAFF;AAAA,UAGEC,SAHF,GAcIN,KAdJ,CAGEM,SAHF;AAAA,UAIEC,IAJF,GAcIP,KAdJ,CAIEO,IAJF;AAAA,UAKEC,MALF,GAcIR,KAdJ,CAKEQ,MALF;AAAA,UAMEC,KANF,GAcIT,KAdJ,CAMES,KANF;AAAA,UAOEC,KAPF,GAcIV,KAdJ,CAOEU,KAPF;AAAA,UAQEC,mBARF,GAcIX,KAdJ,CAQEW,mBARF;AAAA,UASEC,kBATF,GAcIZ,KAdJ,CASEY,kBATF;AAAA,UAUEC,oBAVF,GAcIb,KAdJ,CAUEa,oBAVF;AAAA,UAWEC,SAXF,GAcId,KAdJ,CAWEc,SAXF;AAAA,UAYEC,eAZF,GAcIf,KAdJ,CAYEe,eAZF;AAAA,UAaEC,aAbF,GAcIhB,KAdJ,CAaEgB,aAbF;AAgBA,UAAMC,WAAW,GACfD,aAAa,IAAIA,aAAa,CAACtB,IAA/B,GACIsB,aAAa,CAACtB,IAAd,CAAmBwB,GAAnB,CAAuB,UAACxB,IAAD,EAAU;AAC/B,+CACKA,IADL;AAEEyB,UAAAA,WAAW,EAAE,KAFf;AAGEC,UAAAA,QAAQ,EAAE;AAHZ;AAKD,OAND,CADJ,GAQI,EATN;AAWA,UAAMC,UAAU,GAAGJ,WAAW,IAAIA,WAAW,CAACK,MAAZ,GAAqB,CAAvD;AAEA,0BACE;AAAK,QAAA,SAAS,EAAEnB,OAAO,CAACoB;AAAxB,sBACE,gCAAC,+BAAD;AACE,QAAA,IAAI,EAAEF,UADR;AAEE,QAAA,OAAO,EAAEvB,cAFX;AAGE,QAAA,QAAQ,EAAE,KAAK0B;AAHjB,QADF,EAOGpB,mBAAmB,IAAI,uBAAQA,mBAAR,CAAvB,iBACC,gCAAC,iBAAD,CAAO,QAAP,qBACE,gCAAC,qBAAD;AACE,QAAA,MAAM,EAAE;AACNqB,UAAAA,MAAM,EAAE,2BADF;AAENC,UAAAA,OAAO,EAAE;AAFH;AADV,sBAME,gCAAC,uBAAD;AAAe,QAAA,MAAM,EAAEtB;AAAvB,QANF,CADF,eASE,2CATF,CARJ,EAqBGC,MAAM,iBACL,gCAAC,iBAAD,CAAO,QAAP,qBACE,gCAAC,uBAAD;AAAe,QAAA,SAAS,EAAC,QAAzB;AAAkC,QAAA,MAAM,EAAEA;AAA1C,QADF,eAEE,2CAFF,CAtBJ,EA4BGP,cAAc,IAAIuB,UAAlB,gBACC,gCAAC,eAAD;AACE,QAAA,SAAS,EAAEf,SADb;AAEE,QAAA,IAAI,EAAEC,IAFR;AAGE,QAAA,MAAM,EAAEC,MAHV;AAIE,QAAA,KAAK,EAAEC,KAJT;AAKE,QAAA,MAAM,EAAE,CACNkB,qBAAWC,GAAX,EADM,EAEND,qBAAWE,SAAX,EAFM,EAGNF,qBAAWG,OAAX,EAHM,EAINH,qBAAWI,SAAX,EAJM,EAKNJ,qBAAWK,OAAX,EALM,EAMNL,qBAAWM,QAAX,EANM,CALV;AAaE,QAAA,IAAI,EAAEhB,WAAW,IAAIrB,UAbvB;AAcE,QAAA,KAAK,EAAEc,KAdT;AAeE,QAAA,YAAY,EAAE,KAAKwB,UAfrB;AAgBE,QAAA,mBAAmB,EAAE,KAhBvB;AAiBE,QAAA,kBAAkB,EAAE,KAjBtB;AAkBE,QAAA,oBAAoB,EAAErB;AAlBxB,QADD,gBAsBC,gCAAC,eAAD;AACE,QAAA,SAAS,EAAEP,SADb;AAEE,QAAA,IAAI,EAAEC,IAFR;AAGE,QAAA,MAAM,EAAEC,MAHV;AAIE,QAAA,KAAK,EAAEC,KAJT;AAKE,QAAA,MAAM,EAAE,CACNkB,qBAAWC,GAAX,EADM,EAEND,qBAAWE,SAAX,EAFM,EAGNF,qBAAWG,OAAX,EAHM,EAINH,qBAAWI,SAAX,EAJM,EAKNJ,qBAAWK,OAAX,EALM,EAMNL,qBAAWM,QAAX,EANM,CALV;AAaE,QAAA,IAAI,EAAElB,eAAe,IAAInB,UAb3B;AAcE,QAAA,KAAK,EAAEc,KAdT;AAeE,QAAA,YAAY,EAAE,KAAKwB,UAfrB;AAgBE,QAAA,mBAAmB,EAAEvB,mBAhBvB;AAiBE,QAAA,kBAAkB,EAAEC,kBAjBtB;AAkBE,QAAA,oBAAoB,EAAEC;AAlBxB,QAlDJ,eAwEE,2CAxEF,EAyEGC,SAAS,IAAI,uBAAQA,SAAR,CAAb,iBACC,gCAAC,qBAAD;AACE,QAAA,MAAM,EAAE;AAAEW,UAAAA,MAAM,EAAE,gBAAV;AAA4BC,UAAAA,OAAO,EAAE;AAArC;AADV,sBAGE,gCAAC,uBAAD;AAAe,QAAA,MAAM,EAAEZ;AAAvB,QAHF,CA1EJ,CADF;AAmFD;;;EAzJuBqB,kBAAMC,S;;;iCAAnB5C,I,eACQ;AACjBW,EAAAA,OAAO,EAAEkC,sBAAUC,MADF;AAEjBtC,EAAAA,KAAK,EAAEqC,sBAAUC,MAAV,CAAiBC,UAFP;AAGjB1C,EAAAA,eAAe,EAAEwC,sBAAUG,IAHV;AAIjB5C,EAAAA,UAAU,EAAEyC,sBAAUI;AAJL,C;iCADRjD,I,kBAQW;AAAEW,EAAAA,OAAO,EAAE;AAAX,C;;AAoJxB,IAAMuC,MAAM,GAAG,SAATA,MAAS,CAACC,KAAD;AAAA,SAAY;AACzBpB,IAAAA,aAAa,EAAE;AACbqB,MAAAA,OAAO,EAAED,KAAK,CAACE,OAAN,CAAcC,IADV;AAEbC,MAAAA,KAAK,EAAEA,gBAAMC,IAAN,EAFM;AAGbC,MAAAA,eAAe,EAAEF,gBAAMG,UAAN,EAHJ;AAIbC,MAAAA,QAAQ,EAAE;AAJG;AADU,GAAZ;AAAA,CAAf;;eASe,wBAAWT,MAAX,EAAmBlD,IAAnB,C","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport {color, Collapsible, hasText, PreviewPrompt} from '@pie-lib/render-ui';\nimport { Chart, chartTypes } from '@pie-lib/charting';\nimport isEqual from 'lodash/isEqual';\nimport CorrectAnswerToggle from '@pie-lib/correct-answer-toggle';\n\nexport class Main extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n model: PropTypes.object.isRequired,\n onAnswersChange: PropTypes.func,\n categories: PropTypes.array,\n };\n\n static defaultProps = { classes: {} };\n\n constructor(props) {\n super(props);\n\n this.state = {\n categories: props.categories || props.model.data,\n showingCorrect: false,\n };\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n const { model: { data: nextData = [] } = {} } = nextProps;\n const { model: { data = [] } = {} } = this.props;\n\n if (!isEqual(nextData, data)) {\n this.setState({ categories: nextData });\n }\n }\n\n changeData = (data) =>\n this.setState(\n {\n categories: data,\n },\n () => this.props.onAnswersChange(data)\n );\n\n toggleCorrect = (showingCorrect) => this.setState({ showingCorrect });\n\n render() {\n const { categories, showingCorrect } = this.state;\n const { model, classes } = this.props;\n const {\n teacherInstructions,\n prompt,\n chartType,\n size,\n domain,\n range,\n title,\n editCategoryEnabled,\n addCategoryEnabled,\n categoryDefaultLabel,\n rationale,\n correctedAnswer,\n correctAnswer,\n } = model;\n\n const correctData =\n correctAnswer && correctAnswer.data\n ? correctAnswer.data.map((data) => {\n return {\n ...data,\n interactive: false,\n editable: false,\n };\n })\n : [];\n\n const showToggle = correctData && correctData.length > 0;\n\n return (\n <div className={classes.mainContainer}>\n <CorrectAnswerToggle\n show={showToggle}\n toggled={showingCorrect}\n onToggle={this.toggleCorrect}\n />\n\n {teacherInstructions && hasText(teacherInstructions) && (\n <React.Fragment>\n <Collapsible\n labels={{\n hidden: 'Show Teacher Instructions',\n visible: 'Hide Teacher Instructions',\n }}\n >\n <PreviewPrompt prompt={teacherInstructions} />\n </Collapsible>\n <br />\n </React.Fragment>\n )}\n\n {prompt && (\n <React.Fragment>\n <PreviewPrompt className=\"prompt\" prompt={prompt} />\n <br />\n </React.Fragment>\n )}\n\n {showingCorrect && showToggle ? (\n <Chart\n chartType={chartType}\n size={size}\n domain={domain}\n range={range}\n charts={[\n chartTypes.Bar(),\n chartTypes.Histogram(),\n chartTypes.LineDot(),\n chartTypes.LineCross(),\n chartTypes.DotPlot(),\n chartTypes.LinePlot(),\n ]}\n data={correctData || categories}\n title={title}\n onDataChange={this.changeData}\n editCategoryEnabled={false}\n addCategoryEnabled={false}\n categoryDefaultLabel={categoryDefaultLabel}\n />\n ) : (\n <Chart\n chartType={chartType}\n size={size}\n domain={domain}\n range={range}\n charts={[\n chartTypes.Bar(),\n chartTypes.Histogram(),\n chartTypes.LineDot(),\n chartTypes.LineCross(),\n chartTypes.DotPlot(),\n chartTypes.LinePlot(),\n ]}\n data={correctedAnswer || categories}\n title={title}\n onDataChange={this.changeData}\n editCategoryEnabled={editCategoryEnabled}\n addCategoryEnabled={addCategoryEnabled}\n categoryDefaultLabel={categoryDefaultLabel}\n />\n )}\n\n <br />\n {rationale && hasText(rationale) && (\n <Collapsible\n labels={{ hidden: 'Show Rationale', visible: 'Hide Rationale' }}\n >\n <PreviewPrompt prompt={rationale} />\n </Collapsible>\n )}\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n mainContainer: {\n padding: theme.spacing.unit,\n color: color.text(),\n backgroundColor: color.background(),\n overflow: 'hidden'\n }\n});\n\nexport default withStyles(styles)(Main);\n"],"file":"main.js"}
1
+ {"version":3,"sources":["../src/main.jsx"],"names":["Main","props","data","setState","categories","onAnswersChange","showingCorrect","state","model","nextProps","nextData","classes","teacherInstructions","prompt","chartType","size","domain","range","title","addCategoryEnabled","categoryDefaultLabel","rationale","correctedAnswer","correctAnswer","correctData","map","interactive","editable","showToggle","length","mainContainer","toggleCorrect","hidden","visible","chartTypes","Bar","Histogram","LineDot","LineCross","DotPlot","LinePlot","changeData","React","Component","PropTypes","object","isRequired","func","array","styles","theme","padding","spacing","unit","color","text","backgroundColor","background","overflow"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport {color, Collapsible, hasText, PreviewPrompt} from '@pie-lib/render-ui';\nimport { Chart, chartTypes } from '@pie-lib/charting';\nimport isEqual from 'lodash/isEqual';\nimport CorrectAnswerToggle from '@pie-lib/correct-answer-toggle';\n\nexport class Main extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n model: PropTypes.object.isRequired,\n onAnswersChange: PropTypes.func,\n categories: PropTypes.array,\n };\n\n static defaultProps = { classes: {} };\n\n constructor(props) {\n super(props);\n\n this.state = {\n categories: props.categories || props.model.data,\n showingCorrect: false,\n };\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n const { model: { data: nextData = [] } = {} } = nextProps;\n const { model: { data = [] } = {} } = this.props;\n\n if (!isEqual(nextData, data)) {\n this.setState({ categories: nextData });\n }\n }\n\n changeData = (data) =>\n this.setState(\n {\n categories: data,\n },\n () => this.props.onAnswersChange(data)\n );\n\n toggleCorrect = (showingCorrect) => this.setState({ showingCorrect });\n\n render() {\n const { categories, showingCorrect } = this.state;\n const { model, classes } = this.props;\n const {\n teacherInstructions,\n prompt,\n chartType,\n size,\n domain,\n range,\n title,\n addCategoryEnabled,\n categoryDefaultLabel,\n rationale,\n correctedAnswer,\n correctAnswer,\n } = model;\n\n const correctData =\n correctAnswer && correctAnswer.data\n ? correctAnswer.data.map((data) => {\n return {\n ...data,\n interactive: false,\n editable: false,\n };\n })\n : [];\n\n const showToggle = correctData && correctData.length > 0;\n\n return (\n <div className={classes.mainContainer}>\n <CorrectAnswerToggle\n show={showToggle}\n toggled={showingCorrect}\n onToggle={this.toggleCorrect}\n />\n\n {teacherInstructions && hasText(teacherInstructions) && (\n <React.Fragment>\n <Collapsible\n labels={{\n hidden: 'Show Teacher Instructions',\n visible: 'Hide Teacher Instructions',\n }}\n >\n <PreviewPrompt prompt={teacherInstructions} />\n </Collapsible>\n <br />\n </React.Fragment>\n )}\n\n {prompt && (\n <React.Fragment>\n <PreviewPrompt className=\"prompt\" prompt={prompt} />\n <br />\n </React.Fragment>\n )}\n\n {showingCorrect && showToggle ? (\n <Chart\n chartType={chartType}\n size={size}\n domain={domain}\n range={range}\n charts={[\n chartTypes.Bar(),\n chartTypes.Histogram(),\n chartTypes.LineDot(),\n chartTypes.LineCross(),\n chartTypes.DotPlot(),\n chartTypes.LinePlot(),\n ]}\n data={correctData || categories}\n title={title}\n onDataChange={this.changeData}\n addCategoryEnabled={false}\n categoryDefaultLabel={categoryDefaultLabel}\n />\n ) : (\n <Chart\n chartType={chartType}\n size={size}\n domain={domain}\n range={range}\n charts={[\n chartTypes.Bar(),\n chartTypes.Histogram(),\n chartTypes.LineDot(),\n chartTypes.LineCross(),\n chartTypes.DotPlot(),\n chartTypes.LinePlot(),\n ]}\n data={correctedAnswer || categories}\n title={title}\n onDataChange={this.changeData}\n addCategoryEnabled={addCategoryEnabled}\n categoryDefaultLabel={categoryDefaultLabel}\n />\n )}\n\n <br />\n {rationale && hasText(rationale) && (\n <Collapsible\n labels={{ hidden: 'Show Rationale', visible: 'Hide Rationale' }}\n >\n <PreviewPrompt prompt={rationale} />\n </Collapsible>\n )}\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n mainContainer: {\n padding: theme.spacing.unit,\n color: color.text(),\n backgroundColor: color.background(),\n overflow: 'hidden'\n }\n});\n\nexport default withStyles(styles)(Main);\n"],"file":"main.js"}
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.917+752e77c53",
7
+ "version": "2.7.3-next.962+02dd34be6",
8
8
  "description": "",
9
9
  "scripts": {
10
10
  "test": "echo \"Error: no test specified\" && exit 1",
@@ -13,10 +13,10 @@
13
13
  "dependencies": {
14
14
  "@material-ui/core": "^3.9.2",
15
15
  "@pie-framework/pie-player-events": "^0.1.0",
16
- "@pie-lib/charting": "^4.5.16",
17
- "@pie-lib/correct-answer-toggle": "^2.3.38",
18
- "@pie-lib/math-rendering": "^2.4.2",
19
- "@pie-lib/render-ui": "^4.12.8",
16
+ "@pie-lib/charting": "^4.5.17",
17
+ "@pie-lib/correct-answer-toggle": "^2.3.39",
18
+ "@pie-lib/math-rendering": "^2.4.3",
19
+ "@pie-lib/render-ui": "^4.12.9",
20
20
  "classnames": "^2.2.5",
21
21
  "debug": "^4.1.1",
22
22
  "lodash": "^4.17.15",
@@ -25,7 +25,7 @@
25
25
  },
26
26
  "author": "",
27
27
  "license": "ISC",
28
- "gitHead": "752e77c539be63c45f92128f8aa2acad5d1c6acc",
28
+ "gitHead": "02dd34be6306a744cdf2819344acefc4f285042f",
29
29
  "main": "lib/index.js",
30
30
  "module": "src/index.js"
31
31
  }