@pie-element/charting 5.6.1-beta.0 → 5.6.1-beta.1

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.
@@ -1 +0,0 @@
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","validate","config","correctData","errors","correctAnswerErrors","categoryErrors","category","identicalAnswer","some","c","categoriesError","identicalError"],"mappings":"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","sourcesContent":["import debug from 'debug';\nimport isEqual from 'lodash/isEqual';\nimport isEmpty from 'lodash/isEmpty';\nimport pick from 'lodash/pick';\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) =>\n answers\n ? 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\nexport const validate = (model = {}, config = {}) => {\n const { correctAnswer, data } = model || {};\n const { data: correctData } = correctAnswer || {};\n const categories = correctData || [];\n\n const errors = {};\n const correctAnswerErrors = {};\n const categoryErrors = {};\n\n categories.forEach((category, index) => {\n const { label } = category;\n\n if (label === '' || label === '<div></div>') {\n categoryErrors[index] = 'Content should not be empty.';\n } else {\n const identicalAnswer = categories.slice(index + 1).some((c) => c.label === label);\n\n if (identicalAnswer) {\n categoryErrors[index + 1] = 'Content should be unique.';\n }\n }\n });\n\n if (categories.length < 1 || categories.length > 20) {\n correctAnswerErrors.categoriesError = 'The correct answer should include between 1 and 20 categories.';\n } else if (\n isEqual(\n data.map((category) => pick(category, 'value', 'label')),\n correctData.map((category) => pick(category, 'value', 'label')),\n )\n ) {\n correctAnswerErrors.identicalError = 'Correct answer should not be identical to the chart’s initial state';\n }\n\n if (!isEmpty(categoryErrors)) {\n errors.categoryErrors = categoryErrors;\n }\n\n if (!isEmpty(correctAnswerErrors)) {\n errors.correctAnswerErrors = correctAnswerErrors;\n }\n\n return errors;\n};\n"],"file":"index.js"}
package/lib/index.js DELETED
@@ -1,115 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- Object.defineProperty(exports, "Component", {
9
- enumerable: true,
10
- get: function get() {
11
- return _main["default"];
12
- }
13
- });
14
- exports["default"] = void 0;
15
-
16
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
17
-
18
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
19
-
20
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
21
-
22
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
23
-
24
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
25
-
26
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
27
-
28
- var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper"));
29
-
30
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
31
-
32
- var _react = _interopRequireDefault(require("react"));
33
-
34
- var _reactDom = _interopRequireDefault(require("react-dom"));
35
-
36
- var _main = _interopRequireDefault(require("./main"));
37
-
38
- var _piePlayerEvents = require("@pie-framework/pie-player-events");
39
-
40
- var _mathRendering = require("@pie-lib/math-rendering");
41
-
42
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
43
-
44
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
45
-
46
- var Graphing = /*#__PURE__*/function (_HTMLElement) {
47
- (0, _inherits2["default"])(Graphing, _HTMLElement);
48
-
49
- var _super = _createSuper(Graphing);
50
-
51
- function Graphing() {
52
- var _this;
53
-
54
- (0, _classCallCheck2["default"])(this, Graphing);
55
- _this = _super.call(this);
56
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "isComplete", function (answer) {
57
- return Array.isArray(answer) && answer.length > 0;
58
- });
59
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeAnswers", function (answer) {
60
- _this._session.answer = answer;
61
-
62
- _this.dispatchEvent(new _piePlayerEvents.SessionChangedEvent(_this.tagName.toLowerCase(), _this.isComplete(_this._session.answer)));
63
-
64
- _this._render();
65
- });
66
- return _this;
67
- }
68
-
69
- (0, _createClass2["default"])(Graphing, [{
70
- key: "model",
71
- set: function set(m) {
72
- this._model = m;
73
-
74
- this._render();
75
- }
76
- }, {
77
- key: "session",
78
- get: function get() {
79
- return this._session;
80
- },
81
- set: function set(s) {
82
- this._session = s;
83
-
84
- this._render();
85
- }
86
- }, {
87
- key: "connectedCallback",
88
- value: function connectedCallback() {
89
- this._render();
90
- }
91
- }, {
92
- key: "_render",
93
- value: function _render() {
94
- var _this2 = this;
95
-
96
- if (!this._model || !this._session) {
97
- return;
98
- }
99
-
100
- var el = /*#__PURE__*/_react["default"].createElement(_main["default"], {
101
- model: this._model,
102
- categories: this._session.answer,
103
- onAnswersChange: this.changeAnswers
104
- });
105
-
106
- _reactDom["default"].render(el, this, function () {
107
- (0, _mathRendering.renderMath)(_this2);
108
- });
109
- }
110
- }]);
111
- return Graphing;
112
- }( /*#__PURE__*/(0, _wrapNativeSuper2["default"])(HTMLElement));
113
-
114
- exports["default"] = Graphing;
115
- //# sourceMappingURL=index.js.map
package/lib/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/index.js"],"names":["Graphing","answer","Array","isArray","length","_session","dispatchEvent","SessionChangedEvent","tagName","toLowerCase","isComplete","_render","m","_model","s","el","React","createElement","Main","model","categories","onAnswersChange","changeAnswers","ReactDOM","render","HTMLElement"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;IAIqBA,Q;;;;;AACnB,sBAAc;AAAA;;AAAA;AACZ;AADY,mGAsBD,UAACC,MAAD;AAAA,aAAYC,KAAK,CAACC,OAAN,CAAcF,MAAd,KAAyBA,MAAM,CAACG,MAAP,GAAgB,CAArD;AAAA,KAtBC;AAAA,sGAwBE,UAACH,MAAD,EAAY;AAC1B,YAAKI,QAAL,CAAcJ,MAAd,GAAuBA,MAAvB;;AAEA,YAAKK,aAAL,CAAmB,IAAIC,oCAAJ,CAAwB,MAAKC,OAAL,CAAaC,WAAb,EAAxB,EAAoD,MAAKC,UAAL,CAAgB,MAAKL,QAAL,CAAcJ,MAA9B,CAApD,CAAnB;;AAEA,YAAKU,OAAL;AACD,KA9Ba;AAAA;AAEb;;;;SAED,aAAUC,CAAV,EAAa;AACX,WAAKC,MAAL,GAAcD,CAAd;;AACA,WAAKD,OAAL;AACD;;;SAOD,eAAc;AACZ,aAAO,KAAKN,QAAZ;AACD,K;SAPD,aAAYS,CAAZ,EAAe;AACb,WAAKT,QAAL,GAAgBS,CAAhB;;AACA,WAAKH,OAAL;AACD;;;WAMD,6BAAoB;AAClB,WAAKA,OAAL;AACD;;;WAYD,mBAAU;AAAA;;AACR,UAAI,CAAC,KAAKE,MAAN,IAAgB,CAAC,KAAKR,QAA1B,EAAoC;AAClC;AACD;;AAED,UAAMU,EAAE,gBAAGC,kBAAMC,aAAN,CAAoBC,gBAApB,EAA0B;AACnCC,QAAAA,KAAK,EAAE,KAAKN,MADuB;AAEnCO,QAAAA,UAAU,EAAE,KAAKf,QAAL,CAAcJ,MAFS;AAGnCoB,QAAAA,eAAe,EAAE,KAAKC;AAHa,OAA1B,CAAX;;AAMAC,2BAASC,MAAT,CAAgBT,EAAhB,EAAoB,IAApB,EAA0B,YAAM;AAC9B,uCAAW,MAAX;AACD,OAFD;AAGD;;;kDA/CmCU,W","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport Main from './main';\nimport { SessionChangedEvent } from '@pie-framework/pie-player-events';\nimport { renderMath } from '@pie-lib/math-rendering';\n\nexport { Main as Component };\n\nexport default class Graphing extends HTMLElement {\n constructor() {\n super();\n }\n\n set model(m) {\n this._model = m;\n this._render();\n }\n\n set session(s) {\n this._session = s;\n this._render();\n }\n\n get session() {\n return this._session;\n }\n\n connectedCallback() {\n this._render();\n }\n\n isComplete = (answer) => Array.isArray(answer) && answer.length > 0;\n\n changeAnswers = (answer) => {\n this._session.answer = answer;\n\n this.dispatchEvent(new SessionChangedEvent(this.tagName.toLowerCase(), this.isComplete(this._session.answer)));\n\n this._render();\n };\n\n _render() {\n if (!this._model || !this._session) {\n return;\n }\n\n const el = React.createElement(Main, {\n model: this._model,\n categories: this._session.answer,\n onAnswersChange: this.changeAnswers,\n });\n\n ReactDOM.render(el, this, () => {\n renderMath(this);\n });\n }\n}\n"],"file":"index.js"}
package/lib/main.js DELETED
@@ -1,197 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports["default"] = exports.Main = void 0;
9
-
10
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
-
12
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
-
14
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
15
-
16
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
-
18
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
19
-
20
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
21
-
22
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
23
-
24
- var _react = _interopRequireDefault(require("react"));
25
-
26
- var _propTypes = _interopRequireDefault(require("prop-types"));
27
-
28
- var _styles = require("@material-ui/core/styles");
29
-
30
- var _renderUi = require("@pie-lib/render-ui");
31
-
32
- var _charting = require("@pie-lib/charting");
33
-
34
- var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
35
-
36
- var _correctAnswerToggle = _interopRequireDefault(require("@pie-lib/correct-answer-toggle"));
37
-
38
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
39
-
40
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
41
-
42
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
43
-
44
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
45
-
46
- var Main = /*#__PURE__*/function (_React$Component) {
47
- (0, _inherits2["default"])(Main, _React$Component);
48
-
49
- var _super = _createSuper(Main);
50
-
51
- function Main(props) {
52
- var _this;
53
-
54
- (0, _classCallCheck2["default"])(this, Main);
55
- _this = _super.call(this, props);
56
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeData", function (data) {
57
- return _this.setState({
58
- categories: data
59
- }, function () {
60
- return _this.props.onAnswersChange(data);
61
- });
62
- });
63
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "toggleCorrect", function (showingCorrect) {
64
- return _this.setState({
65
- showingCorrect: showingCorrect
66
- });
67
- });
68
- _this.state = {
69
- categories: props.categories || props.model.data,
70
- showingCorrect: false
71
- };
72
- return _this;
73
- }
74
-
75
- (0, _createClass2["default"])(Main, [{
76
- key: "UNSAFE_componentWillReceiveProps",
77
- value: function UNSAFE_componentWillReceiveProps(nextProps) {
78
- var _nextProps$model = nextProps.model;
79
- _nextProps$model = _nextProps$model === void 0 ? {} : _nextProps$model;
80
- var _nextProps$model$data = _nextProps$model.data,
81
- nextData = _nextProps$model$data === void 0 ? [] : _nextProps$model$data;
82
- var _this$props$model = this.props.model;
83
- _this$props$model = _this$props$model === void 0 ? {} : _this$props$model;
84
- var _this$props$model$dat = _this$props$model.data,
85
- data = _this$props$model$dat === void 0 ? [] : _this$props$model$dat;
86
-
87
- if (!(0, _isEqual["default"])(nextData, data)) {
88
- this.setState({
89
- categories: nextData
90
- });
91
- }
92
- }
93
- }, {
94
- key: "render",
95
- value: function render() {
96
- var _this$state = this.state,
97
- categories = _this$state.categories,
98
- showingCorrect = _this$state.showingCorrect;
99
- var _this$props = this.props,
100
- model = _this$props.model,
101
- classes = _this$props.classes;
102
- var teacherInstructions = model.teacherInstructions,
103
- prompt = model.prompt,
104
- chartType = model.chartType,
105
- size = model.size,
106
- domain = model.domain,
107
- range = model.range,
108
- title = model.title,
109
- addCategoryEnabled = model.addCategoryEnabled,
110
- categoryDefaultLabel = model.categoryDefaultLabel,
111
- rationale = model.rationale,
112
- correctedAnswer = model.correctedAnswer,
113
- correctAnswer = model.correctAnswer;
114
- var correctData = correctAnswer && correctAnswer.data ? correctAnswer.data.map(function (data) {
115
- return _objectSpread(_objectSpread({}, data), {}, {
116
- interactive: false,
117
- editable: false
118
- });
119
- }) : [];
120
- var showToggle = correctData && correctData.length > 0;
121
- return /*#__PURE__*/_react["default"].createElement("div", {
122
- className: classes.mainContainer
123
- }, /*#__PURE__*/_react["default"].createElement(_correctAnswerToggle["default"], {
124
- show: showToggle,
125
- toggled: showingCorrect,
126
- onToggle: this.toggleCorrect
127
- }), teacherInstructions && (0, _renderUi.hasText)(teacherInstructions) && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_renderUi.Collapsible, {
128
- labels: {
129
- hidden: 'Show Teacher Instructions',
130
- visible: 'Hide Teacher Instructions'
131
- }
132
- }, /*#__PURE__*/_react["default"].createElement(_renderUi.PreviewPrompt, {
133
- prompt: teacherInstructions
134
- })), /*#__PURE__*/_react["default"].createElement("br", null)), prompt && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_renderUi.PreviewPrompt, {
135
- className: "prompt",
136
- prompt: prompt
137
- }), /*#__PURE__*/_react["default"].createElement("br", null)), showingCorrect && showToggle ? /*#__PURE__*/_react["default"].createElement(_charting.Chart, {
138
- chartType: chartType,
139
- size: size,
140
- domain: domain,
141
- range: range,
142
- charts: [_charting.chartTypes.Bar(), _charting.chartTypes.Histogram(), _charting.chartTypes.LineDot(), _charting.chartTypes.LineCross(), _charting.chartTypes.DotPlot(), _charting.chartTypes.LinePlot()],
143
- data: correctData || categories,
144
- title: title,
145
- onDataChange: this.changeData,
146
- addCategoryEnabled: false,
147
- categoryDefaultLabel: categoryDefaultLabel
148
- }) : /*#__PURE__*/_react["default"].createElement(_charting.Chart, {
149
- chartType: chartType,
150
- size: size,
151
- domain: domain,
152
- range: range,
153
- charts: [_charting.chartTypes.Bar(), _charting.chartTypes.Histogram(), _charting.chartTypes.LineDot(), _charting.chartTypes.LineCross(), _charting.chartTypes.DotPlot(), _charting.chartTypes.LinePlot()],
154
- data: correctedAnswer || categories,
155
- title: title,
156
- onDataChange: this.changeData,
157
- addCategoryEnabled: addCategoryEnabled,
158
- categoryDefaultLabel: categoryDefaultLabel
159
- }), /*#__PURE__*/_react["default"].createElement("br", null), rationale && (0, _renderUi.hasText)(rationale) && /*#__PURE__*/_react["default"].createElement(_renderUi.Collapsible, {
160
- labels: {
161
- hidden: 'Show Rationale',
162
- visible: 'Hide Rationale'
163
- }
164
- }, /*#__PURE__*/_react["default"].createElement(_renderUi.PreviewPrompt, {
165
- prompt: rationale
166
- })));
167
- }
168
- }]);
169
- return Main;
170
- }(_react["default"].Component);
171
-
172
- exports.Main = Main;
173
- (0, _defineProperty2["default"])(Main, "propTypes", {
174
- classes: _propTypes["default"].object,
175
- model: _propTypes["default"].object.isRequired,
176
- onAnswersChange: _propTypes["default"].func,
177
- categories: _propTypes["default"].array
178
- });
179
- (0, _defineProperty2["default"])(Main, "defaultProps", {
180
- classes: {}
181
- });
182
-
183
- var styles = function styles(theme) {
184
- return {
185
- mainContainer: {
186
- padding: theme.spacing.unit,
187
- color: _renderUi.color.text(),
188
- backgroundColor: _renderUi.color.background(),
189
- overflow: 'hidden'
190
- }
191
- };
192
- };
193
-
194
- var _default = (0, _styles.withStyles)(styles)(Main);
195
-
196
- exports["default"] = _default;
197
- //# sourceMappingURL=main.js.map
package/lib/main.js.map DELETED
@@ -1 +0,0 @@
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":";;;;;;;;;;;;;;;;;;;;;;;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,GAaIJ,KAbJ,CACEI,mBADF;AAAA,UAEEC,MAFF,GAaIL,KAbJ,CAEEK,MAFF;AAAA,UAGEC,SAHF,GAaIN,KAbJ,CAGEM,SAHF;AAAA,UAIEC,IAJF,GAaIP,KAbJ,CAIEO,IAJF;AAAA,UAKEC,MALF,GAaIR,KAbJ,CAKEQ,MALF;AAAA,UAMEC,KANF,GAaIT,KAbJ,CAMES,KANF;AAAA,UAOEC,KAPF,GAaIV,KAbJ,CAOEU,KAPF;AAAA,UAQEC,kBARF,GAaIX,KAbJ,CAQEW,kBARF;AAAA,UASEC,oBATF,GAaIZ,KAbJ,CASEY,oBATF;AAAA,UAUEC,SAVF,GAaIb,KAbJ,CAUEa,SAVF;AAAA,UAWEC,eAXF,GAaId,KAbJ,CAWEc,eAXF;AAAA,UAYEC,aAZF,GAaIf,KAbJ,CAYEe,aAZF;AAeA,UAAMC,WAAW,GACfD,aAAa,IAAIA,aAAa,CAACrB,IAA/B,GACIqB,aAAa,CAACrB,IAAd,CAAmBuB,GAAnB,CAAuB,UAACvB,IAAD,EAAU;AAC/B,+CACKA,IADL;AAEEwB,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,EAAElB,OAAO,CAACmB;AAAxB,sBACE,gCAAC,+BAAD;AAAqB,QAAA,IAAI,EAAEF,UAA3B;AAAuC,QAAA,OAAO,EAAEtB,cAAhD;AAAgE,QAAA,QAAQ,EAAE,KAAKyB;AAA/E,QADF,EAGGnB,mBAAmB,IAAI,uBAAQA,mBAAR,CAAvB,iBACC,gCAAC,iBAAD,CAAO,QAAP,qBACE,gCAAC,qBAAD;AACE,QAAA,MAAM,EAAE;AACNoB,UAAAA,MAAM,EAAE,2BADF;AAENC,UAAAA,OAAO,EAAE;AAFH;AADV,sBAME,gCAAC,uBAAD;AAAe,QAAA,MAAM,EAAErB;AAAvB,QANF,CADF,eASE,2CATF,CAJJ,EAiBGC,MAAM,iBACL,gCAAC,iBAAD,CAAO,QAAP,qBACE,gCAAC,uBAAD;AAAe,QAAA,SAAS,EAAC,QAAzB;AAAkC,QAAA,MAAM,EAAEA;AAA1C,QADF,eAEE,2CAFF,CAlBJ,EAwBGP,cAAc,IAAIsB,UAAlB,gBACC,gCAAC,eAAD;AACE,QAAA,SAAS,EAAEd,SADb;AAEE,QAAA,IAAI,EAAEC,IAFR;AAGE,QAAA,MAAM,EAAEC,MAHV;AAIE,QAAA,KAAK,EAAEC,KAJT;AAKE,QAAA,MAAM,EAAE,CACNiB,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,IAAIpB,UAbvB;AAcE,QAAA,KAAK,EAAEc,KAdT;AAeE,QAAA,YAAY,EAAE,KAAKuB,UAfrB;AAgBE,QAAA,kBAAkB,EAAE,KAhBtB;AAiBE,QAAA,oBAAoB,EAAErB;AAjBxB,QADD,gBAqBC,gCAAC,eAAD;AACE,QAAA,SAAS,EAAEN,SADb;AAEE,QAAA,IAAI,EAAEC,IAFR;AAGE,QAAA,MAAM,EAAEC,MAHV;AAIE,QAAA,KAAK,EAAEC,KAJT;AAKE,QAAA,MAAM,EAAE,CACNiB,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,IAAIlB,UAb3B;AAcE,QAAA,KAAK,EAAEc,KAdT;AAeE,QAAA,YAAY,EAAE,KAAKuB,UAfrB;AAgBE,QAAA,kBAAkB,EAAEtB,kBAhBtB;AAiBE,QAAA,oBAAoB,EAAEC;AAjBxB,QA7CJ,eAkEE,2CAlEF,EAmEGC,SAAS,IAAI,uBAAQA,SAAR,CAAb,iBACC,gCAAC,qBAAD;AAAa,QAAA,MAAM,EAAE;AAAEW,UAAAA,MAAM,EAAE,gBAAV;AAA4BC,UAAAA,OAAO,EAAE;AAArC;AAArB,sBACE,gCAAC,uBAAD;AAAe,QAAA,MAAM,EAAEZ;AAAvB,QADF,CApEJ,CADF;AA2ED;;;EAhJuBqB,kBAAMC,S;;;iCAAnB3C,I,eACQ;AACjBW,EAAAA,OAAO,EAAEiC,sBAAUC,MADF;AAEjBrC,EAAAA,KAAK,EAAEoC,sBAAUC,MAAV,CAAiBC,UAFP;AAGjBzC,EAAAA,eAAe,EAAEuC,sBAAUG,IAHV;AAIjB3C,EAAAA,UAAU,EAAEwC,sBAAUI;AAJL,C;iCADRhD,I,kBAQW;AAAEW,EAAAA,OAAO,EAAE;AAAX,C;;AA2IxB,IAAMsC,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,EAAmBjD,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 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 show={showToggle} toggled={showingCorrect} onToggle={this.toggleCorrect} />\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 labels={{ hidden: 'Show Rationale', visible: 'Hide Rationale' }}>\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"}