@pie-element/fraction-model 4.3.4-next.3 → 5.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/index.js CHANGED
@@ -1,131 +1,91 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  Object.defineProperty(exports, "FractionModelChart", {
9
8
  enumerable: true,
10
- get: function get() {
11
- return _fractionModelChart["default"];
9
+ get: function () {
10
+ return _fractionModelChart.default;
12
11
  }
13
12
  });
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 _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
21
-
22
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
23
-
24
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
25
-
26
- var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper"));
27
-
13
+ exports.default = void 0;
28
14
  var _react = _interopRequireDefault(require("react"));
29
-
30
- var _reactDom = _interopRequireDefault(require("react-dom"));
31
-
15
+ var _client = require("react-dom/client");
32
16
  var _piePlayerEvents = require("@pie-framework/pie-player-events");
33
-
34
17
  var _main = _interopRequireDefault(require("./main"));
35
-
36
18
  var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
37
-
38
19
  var _mathRendering = require("@pie-lib/math-rendering");
39
-
40
20
  var _fractionModelChart = _interopRequireDefault(require("./fraction-model-chart"));
21
+ // Export FractionModelChart for use in configure
41
22
 
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 FractionModel = /*#__PURE__*/function (_HTMLElement) {
47
- (0, _inherits2["default"])(FractionModel, _HTMLElement);
48
-
49
- var _super = _createSuper(FractionModel);
50
-
51
- function FractionModel() {
52
- (0, _classCallCheck2["default"])(this, FractionModel);
53
- return _super.call(this);
23
+ class FractionModel extends HTMLElement {
24
+ constructor() {
25
+ super();
26
+ this._root = null;
27
+ }
28
+ set model(m) {
29
+ this._model = m;
30
+ this._render();
31
+ }
32
+ get model() {
33
+ return this._model;
34
+ }
35
+ set session(s) {
36
+ this._session = s;
37
+ this._render();
38
+ }
39
+ get session() {
40
+ return this._session;
54
41
  }
55
42
 
56
- (0, _createClass2["default"])(FractionModel, [{
57
- key: "model",
58
- get: function get() {
59
- return this._model;
60
- },
61
- set: function set(m) {
62
- this._model = m;
63
-
64
- this._render();
65
- }
66
- }, {
67
- key: "session",
68
- get: function get() {
69
- return this._session;
70
- }
71
- /*
72
- * Method to check if student answered the question
73
- * @param {session} session contains the session object
74
- * @param {model} model contains the model object
75
- * */
76
- ,
77
- set: function set(s) {
78
- this._session = s;
79
-
80
- this._render();
81
- }
82
- }, {
83
- key: "isSessionComplete",
84
- value: function isSessionComplete(session, model) {
85
- var answers = session && session.answers;
86
- var configComplete = model.allowedStudentConfig ? answers.noOfModel > 0 && answers.partsPerModel > 0 : true;
87
- var responseComplete = Array.isArray(answers.response) && answers.response.length > 0;
88
- return configComplete && responseComplete;
89
- }
90
- /*
91
- * Session change event handler
92
- * @param {session} session contains the session object
93
- * */
94
-
95
- }, {
96
- key: "onSessionChange",
97
- value: function onSessionChange(session) {
98
- this._session.answers = session && session.answers;
99
- var complete = this.isSessionComplete(this._session, this._model);
100
- this.dispatchEvent(new _piePlayerEvents.SessionChangedEvent(this.tagName.toLowerCase(), complete));
101
- }
102
- }, {
103
- key: "connectedCallback",
104
- value: function connectedCallback() {
105
- this._render();
106
- }
107
- }, {
108
- key: "_render",
109
- value: function _render() {
110
- var _this = this;
111
-
112
- if (this._model && this._session) {
113
- var model = (0, _cloneDeep["default"])(this._model);
114
-
115
- var el = /*#__PURE__*/_react["default"].createElement(_main["default"], {
116
- model: model,
117
- session: this._session,
118
- onSessionChange: this.onSessionChange.bind(this)
119
- });
43
+ /*
44
+ * Method to check if student answered the question
45
+ * @param {session} session contains the session object
46
+ * @param {model} model contains the model object
47
+ * */
48
+ isSessionComplete(session, model) {
49
+ const answers = session && session.answers;
50
+ const configComplete = model.allowedStudentConfig ? answers.noOfModel > 0 && answers.partsPerModel > 0 : true;
51
+ const responseComplete = Array.isArray(answers.response) && answers.response.length > 0;
52
+ return configComplete && responseComplete;
53
+ }
120
54
 
121
- _reactDom["default"].render(el, this, function () {
122
- (0, _mathRendering.renderMath)(_this);
123
- });
55
+ /*
56
+ * Session change event handler
57
+ * @param {session} session contains the session object
58
+ * */
59
+ onSessionChange(session) {
60
+ this._session.answers = session && session.answers;
61
+ const complete = this.isSessionComplete(this._session, this._model);
62
+ this.dispatchEvent(new _piePlayerEvents.SessionChangedEvent(this.tagName.toLowerCase(), complete));
63
+ }
64
+ connectedCallback() {
65
+ this._render();
66
+ }
67
+ _render() {
68
+ if (this._model && this._session) {
69
+ let model = (0, _cloneDeep.default)(this._model);
70
+ const el = /*#__PURE__*/_react.default.createElement(_main.default, {
71
+ model,
72
+ session: this._session,
73
+ onSessionChange: this.onSessionChange.bind(this)
74
+ });
75
+ if (!this._root) {
76
+ this._root = (0, _client.createRoot)(this);
124
77
  }
78
+ this._root.render(el);
79
+ queueMicrotask(() => {
80
+ (0, _mathRendering.renderMath)(this);
81
+ });
125
82
  }
126
- }]);
127
- return FractionModel;
128
- }( /*#__PURE__*/(0, _wrapNativeSuper2["default"])(HTMLElement));
129
-
130
- exports["default"] = FractionModel;
83
+ }
84
+ disconnectedCallback() {
85
+ if (this._root) {
86
+ this._root.unmount();
87
+ }
88
+ }
89
+ }
90
+ exports.default = FractionModel;
131
91
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.js"],"names":["FractionModel","_model","m","_render","_session","s","session","model","answers","configComplete","allowedStudentConfig","noOfModel","partsPerModel","responseComplete","Array","isArray","response","length","complete","isSessionComplete","dispatchEvent","SessionChangedEvent","tagName","toLowerCase","el","React","createElement","Main","onSessionChange","bind","ReactDOM","render","HTMLElement"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;IAKqBA,a;;;;;AACnB,2BAAc;AAAA;AAAA;AAEb;;;;SAOD,eAAY;AACV,aAAO,KAAKC,MAAZ;AACD,K;SAPD,aAAUC,CAAV,EAAa;AACX,WAAKD,MAAL,GAAcC,CAAd;;AACA,WAAKC,OAAL;AACD;;;SAWD,eAAc;AACZ,aAAO,KAAKC,QAAZ;AACD;AAED;AACF;AACA;AACA;AACA;;SAbE,aAAYC,CAAZ,EAAe;AACb,WAAKD,QAAL,GAAgBC,CAAhB;;AACA,WAAKF,OAAL;AACD;;;WAWD,2BAAkBG,OAAlB,EAA2BC,KAA3B,EAAkC;AAChC,UAAMC,OAAO,GAAGF,OAAO,IAAIA,OAAO,CAACE,OAAnC;AACA,UAAMC,cAAc,GAAGF,KAAK,CAACG,oBAAN,GAA6BF,OAAO,CAACG,SAAR,GAAoB,CAApB,IAAyBH,OAAO,CAACI,aAAR,GAAwB,CAA9E,GAAkF,IAAzG;AACA,UAAMC,gBAAgB,GAAGC,KAAK,CAACC,OAAN,CAAcP,OAAO,CAACQ,QAAtB,KAAmCR,OAAO,CAACQ,QAAR,CAAiBC,MAAjB,GAA0B,CAAtF;AACA,aAAOR,cAAc,IAAII,gBAAzB;AACD;AAED;AACF;AACA;AACA;;;;WACE,yBAAgBP,OAAhB,EAAyB;AACvB,WAAKF,QAAL,CAAcI,OAAd,GAAwBF,OAAO,IAAIA,OAAO,CAACE,OAA3C;AACA,UAAMU,QAAQ,GAAG,KAAKC,iBAAL,CAAuB,KAAKf,QAA5B,EAAsC,KAAKH,MAA3C,CAAjB;AACA,WAAKmB,aAAL,CAAmB,IAAIC,oCAAJ,CAAwB,KAAKC,OAAL,CAAaC,WAAb,EAAxB,EAAoDL,QAApD,CAAnB;AACD;;;WAED,6BAAoB;AAClB,WAAKf,OAAL;AACD;;;WAED,mBAAU;AAAA;;AACR,UAAI,KAAKF,MAAL,IAAe,KAAKG,QAAxB,EAAkC;AAChC,YAAIG,KAAK,GAAG,2BAAU,KAAKN,MAAf,CAAZ;;AACA,YAAMuB,EAAE,gBAAGC,kBAAMC,aAAN,CAAoBC,gBAApB,EAA0B;AACnCpB,UAAAA,KAAK,EAALA,KADmC;AAEnCD,UAAAA,OAAO,EAAE,KAAKF,QAFqB;AAGnCwB,UAAAA,eAAe,EAAE,KAAKA,eAAL,CAAqBC,IAArB,CAA0B,IAA1B;AAHkB,SAA1B,CAAX;;AAMAC,6BAASC,MAAT,CAAgBP,EAAhB,EAAoB,IAApB,EAA0B,YAAM;AAC9B,yCAAW,KAAX;AACD,SAFD;AAGD;AACF;;;kDA9DwCQ,W","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport { SessionChangedEvent, ModelSetEvent } from '@pie-framework/pie-player-events';\nimport Main from './main';\nimport cloneDeep from 'lodash/cloneDeep';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport FractionModelChart from './fraction-model-chart';\n\n// Export FractionModelChart for use in configure\nexport { FractionModelChart };\n\nexport default class FractionModel extends HTMLElement {\n constructor() {\n super();\n }\n\n set model(m) {\n this._model = m;\n this._render();\n }\n\n get model() {\n return this._model;\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 /*\n * Method to check if student answered the question\n * @param {session} session contains the session object\n * @param {model} model contains the model object\n * */\n isSessionComplete(session, model) {\n const answers = session && session.answers;\n const configComplete = model.allowedStudentConfig ? answers.noOfModel > 0 && answers.partsPerModel > 0 : true;\n const responseComplete = Array.isArray(answers.response) && answers.response.length > 0;\n return configComplete && responseComplete;\n }\n\n /*\n * Session change event handler\n * @param {session} session contains the session object\n * */\n onSessionChange(session) {\n this._session.answers = session && session.answers;\n const complete = this.isSessionComplete(this._session, this._model);\n this.dispatchEvent(new SessionChangedEvent(this.tagName.toLowerCase(), complete));\n }\n\n connectedCallback() {\n this._render();\n }\n\n _render() {\n if (this._model && this._session) {\n let model = cloneDeep(this._model);\n const el = React.createElement(Main, {\n model,\n session: this._session,\n onSessionChange: this.onSessionChange.bind(this),\n });\n\n ReactDOM.render(el, this, () => {\n renderMath(this);\n });\n }\n }\n}\n"],"file":"index.js"}
1
+ {"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_client","_piePlayerEvents","_main","_cloneDeep","_mathRendering","_fractionModelChart","FractionModel","HTMLElement","constructor","_root","model","m","_model","_render","session","s","_session","isSessionComplete","answers","configComplete","allowedStudentConfig","noOfModel","partsPerModel","responseComplete","Array","isArray","response","length","onSessionChange","complete","dispatchEvent","SessionChangedEvent","tagName","toLowerCase","connectedCallback","cloneDeep","el","React","createElement","Main","bind","createRoot","render","queueMicrotask","renderMath","disconnectedCallback","unmount","exports","default"],"sources":["../src/index.js"],"sourcesContent":["import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { SessionChangedEvent } from '@pie-framework/pie-player-events';\nimport Main from './main';\nimport cloneDeep from 'lodash/cloneDeep';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport FractionModelChart from './fraction-model-chart';\n\n// Export FractionModelChart for use in configure\nexport { FractionModelChart };\n\nexport default class FractionModel extends HTMLElement {\n constructor() {\n super();\n this._root = null;\n }\n\n set model(m) {\n this._model = m;\n this._render();\n }\n\n get model() {\n return this._model;\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 /*\n * Method to check if student answered the question\n * @param {session} session contains the session object\n * @param {model} model contains the model object\n * */\n isSessionComplete(session, model) {\n const answers = session && session.answers;\n const configComplete = model.allowedStudentConfig ? answers.noOfModel > 0 && answers.partsPerModel > 0 : true;\n const responseComplete = Array.isArray(answers.response) && answers.response.length > 0;\n return configComplete && responseComplete;\n }\n\n /*\n * Session change event handler\n * @param {session} session contains the session object\n * */\n onSessionChange(session) {\n this._session.answers = session && session.answers;\n const complete = this.isSessionComplete(this._session, this._model);\n this.dispatchEvent(new SessionChangedEvent(this.tagName.toLowerCase(), complete));\n }\n\n connectedCallback() {\n this._render();\n }\n\n _render() {\n if (this._model && this._session) {\n let model = cloneDeep(this._model);\n const el = React.createElement(Main, {\n model,\n session: this._session,\n onSessionChange: this.onSessionChange.bind(this),\n });\n\n if (!this._root) {\n this._root = createRoot(this);\n }\n this._root.render(el);\n queueMicrotask(() => {\n renderMath(this);\n });\n }\n }\n\n disconnectedCallback() {\n if (this._root) {\n this._root.unmount();\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
package/lib/main.js CHANGED
@@ -1,89 +1,67 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
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
-
7
+ exports.default = exports.Main = void 0;
22
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
23
-
24
9
  var _react = _interopRequireDefault(require("react"));
25
-
26
10
  var _propTypes = _interopRequireDefault(require("prop-types"));
27
-
28
- var _styles = require("@material-ui/core/styles");
29
-
11
+ var _styles = require("@mui/material/styles");
30
12
  var _answerFraction = _interopRequireDefault(require("./answer-fraction"));
31
-
32
13
  var _correctAnswerToggle = _interopRequireDefault(require("@pie-lib/correct-answer-toggle"));
33
-
34
14
  var _fractionModelChart = _interopRequireDefault(require("./fraction-model-chart"));
35
-
36
15
  var _configUi = require("@pie-lib/config-ui");
37
-
38
16
  var _renderUi = require("@pie-lib/render-ui");
39
-
40
17
  var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
41
-
42
- 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; }
43
-
44
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
45
-
46
- 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); }; }
47
-
48
- 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; } }
49
-
50
- var Main = /*#__PURE__*/function (_React$Component) {
51
- (0, _inherits2["default"])(Main, _React$Component);
52
-
53
- var _super = _createSuper(Main);
54
-
55
- function Main(props) {
56
- var _this;
57
-
58
- (0, _classCallCheck2["default"])(this, Main);
59
- _this = _super.call(this, props);
60
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "callOnSessionChange", function () {
61
- var onSessionChange = _this.props.onSessionChange;
62
-
18
+ const ModelPreview = (0, _styles.styled)('div')({
19
+ padding: '16px'
20
+ });
21
+ const TitleContainer = (0, _styles.styled)('div')({
22
+ textAlign: 'center',
23
+ fontSize: '20px'
24
+ });
25
+ class Main extends _react.default.Component {
26
+ constructor(props) {
27
+ super(props);
28
+ /**
29
+ * Function to trigger when session value change for fraction model
30
+ */
31
+ (0, _defineProperty2.default)(this, "callOnSessionChange", () => {
32
+ const {
33
+ onSessionChange
34
+ } = this.props;
63
35
  if (onSessionChange) {
64
- onSessionChange(_this.state.session);
36
+ onSessionChange(this.state.session);
65
37
  }
66
38
  });
67
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "generateAnswers", function (model) {
68
- var answers = {
39
+ /**
40
+ * Function to generate answers for preview selection
41
+ * @param {object} model contains model object for fraction model
42
+ * @returns answer model
43
+ */
44
+ (0, _defineProperty2.default)(this, "generateAnswers", model => {
45
+ const answers = {
69
46
  response: []
70
47
  };
71
-
72
48
  if (model.allowedStudentConfig) {
73
49
  answers.noOfModel = '', answers.partsPerModel = '';
74
50
  }
75
-
76
51
  return answers;
77
52
  });
78
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onAnswerChange", function (newAnswers) {
79
- var oldSession = (0, _cloneDeep["default"])(_this.state.session);
80
-
81
- var newSession = _objectSpread(_objectSpread({}, _this.state.session), {}, {
53
+ /**
54
+ * Function to trigger when answer change from preview
55
+ * @param {object} newAnswers contains updated answer model
56
+ */
57
+ (0, _defineProperty2.default)(this, "onAnswerChange", newAnswers => {
58
+ let oldSession = (0, _cloneDeep.default)(this.state.session);
59
+ let newSession = {
60
+ ...this.state.session,
82
61
  answers: newAnswers
83
- });
84
-
62
+ };
85
63
  if (newAnswers.response.length > 0) {
86
- _this.setState({
64
+ this.setState({
87
65
  answerChangeDialog: {
88
66
  open: true,
89
67
  oldSession: oldSession,
@@ -92,166 +70,134 @@ var Main = /*#__PURE__*/function (_React$Component) {
92
70
  }
93
71
  });
94
72
  } else {
95
- _this.setState(function (state) {
96
- return {
97
- session: newSession
98
- };
99
- }, _this.callOnSessionChange);
73
+ this.setState(state => ({
74
+ session: newSession
75
+ }), this.callOnSessionChange);
100
76
  }
101
77
  });
102
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "toggleShowCorrect", function (show) {
103
- _this.setState({
78
+ /*
79
+ * Function to toggle correct answer
80
+ * @param {boolean} show contains boolean value to show correct answer
81
+ * */
82
+ (0, _defineProperty2.default)(this, "toggleShowCorrect", show => {
83
+ this.setState({
104
84
  showCorrect: show
105
85
  });
106
86
  });
107
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onResponseChange", function (response) {
108
- _this.setState(function (state) {
109
- return {
110
- session: _objectSpread(_objectSpread({}, state.session), {}, {
111
- answers: _objectSpread(_objectSpread({}, state.session.answers), {}, {
112
- response: response
113
- })
114
- })
115
- };
116
- }, _this.callOnSessionChange);
87
+ /*
88
+ * Function to trigger when response change from preview
89
+ * @param {object} response contains updated response model
90
+ * */
91
+ (0, _defineProperty2.default)(this, "onResponseChange", response => {
92
+ this.setState(state => ({
93
+ session: {
94
+ ...state.session,
95
+ answers: {
96
+ ...state.session.answers,
97
+ response
98
+ }
99
+ }
100
+ }), this.callOnSessionChange);
117
101
  });
118
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "generateRandomKey", function () {
102
+ /*
103
+ * Method to generate random key
104
+ * */
105
+ (0, _defineProperty2.default)(this, "generateRandomKey", () => {
119
106
  return Math.floor(Math.random() * 10000);
120
107
  });
121
- _this.state = {
122
- session: _objectSpread(_objectSpread({}, props.session), {}, {
123
- answers: props.session && props.session.answers || _this.generateAnswers(props.model)
124
- }),
108
+ this.state = {
109
+ session: {
110
+ ...props.session,
111
+ answers: props.session && props.session.answers || this.generateAnswers(props.model)
112
+ },
125
113
  showCorrect: false,
126
114
  answerChangeDialog: {
127
115
  open: false,
128
116
  text: ''
129
117
  }
130
118
  };
131
-
132
- _this.callOnSessionChange();
133
-
134
- return _this;
119
+ this.callOnSessionChange();
135
120
  }
136
- /**
137
- * Function to trigger when session value change for fraction model
138
- */
139
-
140
-
141
- (0, _createClass2["default"])(Main, [{
142
- key: "render",
143
- value: function render() {
144
- var _this2 = this;
145
-
146
- var _this$props = this.props,
147
- model = _this$props.model,
148
- classes = _this$props.classes;
149
- var _this$state = this.state,
150
- showCorrect = _this$state.showCorrect,
151
- session = _this$state.session,
152
- answerChangeDialog = _this$state.answerChangeDialog;
153
- var prompt = model.prompt,
154
- title = model.title,
155
- _model$correctness = model.correctness,
156
- correctness = _model$correctness === void 0 ? {} : _model$correctness,
157
- extraCSSRules = model.extraCSSRules,
158
- language = model.language;
159
- var showCorrectAnswerToggle = correctness.correctness && correctness.correctness !== 'correct';
160
- var fractionModelChartKey = this.generateRandomKey();
161
- return /*#__PURE__*/_react["default"].createElement(_renderUi.UiLayout, {
162
- extraCSSRules: extraCSSRules
163
- }, /*#__PURE__*/_react["default"].createElement("div", {
164
- className: classes.modelPreview
165
- }, /*#__PURE__*/_react["default"].createElement("div", {
166
- className: classes.titleContainer
167
- }, /*#__PURE__*/_react["default"].createElement(_renderUi.PreviewPrompt, {
168
- className: "prompt",
169
- prompt: title,
170
- tagName: "h3"
171
- })), /*#__PURE__*/_react["default"].createElement(_renderUi.PreviewPrompt, {
172
- className: "prompt",
173
- prompt: prompt,
174
- tagName: "p"
175
- }), /*#__PURE__*/_react["default"].createElement(_correctAnswerToggle["default"], {
176
- language: language,
177
- show: showCorrectAnswerToggle,
178
- toggled: showCorrect,
179
- onToggle: this.toggleShowCorrect
180
- }), /*#__PURE__*/_react["default"].createElement(_answerFraction["default"], {
181
- model: model,
182
- showCorrect: showCorrect,
183
- disabled: model.view,
184
- onAnswerChange: this.onAnswerChange,
185
- answers: session.answers
186
- }), /*#__PURE__*/_react["default"].createElement(_fractionModelChart["default"], {
187
- key: fractionModelChartKey,
188
- disabled: model.view,
189
- value: showCorrect ? model.correctResponse : session.answers.response,
190
- modelType: model.modelTypeSelected,
191
- noOfModels: showCorrect ? model.maxModelSelected : model.allowedStudentConfig ? session.answers.noOfModel : model.maxModelSelected,
192
- partsPerModel: showCorrect ? model.partsPerModel : model.allowedStudentConfig ? session.answers.partsPerModel : model.partsPerModel,
193
- showLabel: model.showGraphLabels,
194
- onChange: this.onResponseChange
195
- }), /*#__PURE__*/_react["default"].createElement(_configUi.AlertDialog, {
196
- open: answerChangeDialog.open,
197
- title: "Warning",
198
- text: answerChangeDialog.text,
199
- onConfirm: function onConfirm() {
200
- var newSession = _this2.state.answerChangeDialog.newSession;
201
- newSession.answers.response = [];
202
-
203
- _this2.setState(function () {
204
- return {
205
- session: newSession,
206
- answerChangeDialog: {
207
- open: false
208
- }
209
- };
210
- }, _this2.callOnSessionChange);
211
- },
212
- onClose: function onClose() {
213
- _this2.setState(function (prevState) {
214
- return {
215
- session: prevState.answerChangeDialog.oldSession,
216
- answerChangeDialog: {
217
- open: false
218
- }
219
- };
220
- }, _this2.callOnSessionChange);
221
- },
222
- onConfirmText: 'OK',
223
- onCloseText: 'Cancel'
224
- })));
225
- }
226
- }]);
227
- return Main;
228
- }(_react["default"].Component);
229
-
121
+ render() {
122
+ const {
123
+ model
124
+ } = this.props;
125
+ const {
126
+ showCorrect,
127
+ session,
128
+ answerChangeDialog
129
+ } = this.state;
130
+ const {
131
+ prompt,
132
+ title,
133
+ correctness = {},
134
+ extraCSSRules,
135
+ language
136
+ } = model;
137
+ const showCorrectAnswerToggle = correctness.correctness && correctness.correctness !== 'correct';
138
+ const fractionModelChartKey = this.generateRandomKey();
139
+ return /*#__PURE__*/_react.default.createElement(_renderUi.UiLayout, {
140
+ extraCSSRules: extraCSSRules
141
+ }, /*#__PURE__*/_react.default.createElement(ModelPreview, null, /*#__PURE__*/_react.default.createElement(TitleContainer, null, /*#__PURE__*/_react.default.createElement(_renderUi.PreviewPrompt, {
142
+ className: "prompt",
143
+ prompt: title,
144
+ tagName: "h3"
145
+ })), /*#__PURE__*/_react.default.createElement(_renderUi.PreviewPrompt, {
146
+ className: "prompt",
147
+ prompt: prompt,
148
+ tagName: "p"
149
+ }), /*#__PURE__*/_react.default.createElement(_correctAnswerToggle.default, {
150
+ language: language,
151
+ show: showCorrectAnswerToggle,
152
+ toggled: showCorrect,
153
+ onToggle: this.toggleShowCorrect
154
+ }), /*#__PURE__*/_react.default.createElement(_answerFraction.default, {
155
+ model: model,
156
+ showCorrect: showCorrect,
157
+ disabled: model.view,
158
+ onAnswerChange: this.onAnswerChange,
159
+ answers: session.answers
160
+ }), /*#__PURE__*/_react.default.createElement(_fractionModelChart.default, {
161
+ key: fractionModelChartKey,
162
+ disabled: model.view,
163
+ value: showCorrect ? model.correctResponse : session.answers.response,
164
+ modelType: model.modelTypeSelected,
165
+ noOfModels: showCorrect ? model.maxModelSelected : model.allowedStudentConfig ? session.answers.noOfModel : model.maxModelSelected,
166
+ partsPerModel: showCorrect ? model.partsPerModel : model.allowedStudentConfig ? session.answers.partsPerModel : model.partsPerModel,
167
+ showLabel: model.showGraphLabels,
168
+ onChange: this.onResponseChange
169
+ }), /*#__PURE__*/_react.default.createElement(_configUi.AlertDialog, {
170
+ open: answerChangeDialog.open,
171
+ title: "Warning",
172
+ text: answerChangeDialog.text,
173
+ onConfirm: () => {
174
+ let newSession = this.state.answerChangeDialog.newSession;
175
+ newSession.answers.response = [];
176
+ this.setState(() => ({
177
+ session: newSession,
178
+ answerChangeDialog: {
179
+ open: false
180
+ }
181
+ }), this.callOnSessionChange);
182
+ },
183
+ onClose: () => {
184
+ this.setState(prevState => ({
185
+ session: prevState.answerChangeDialog.oldSession,
186
+ answerChangeDialog: {
187
+ open: false
188
+ }
189
+ }), this.callOnSessionChange);
190
+ },
191
+ onConfirmText: 'OK',
192
+ onCloseText: 'Cancel'
193
+ })));
194
+ }
195
+ }
230
196
  exports.Main = Main;
231
- (0, _defineProperty2["default"])(Main, "propTypes", {
232
- model: _propTypes["default"].object,
233
- session: _propTypes["default"].object,
234
- onSessionChange: _propTypes["default"].func.isRequired
197
+ (0, _defineProperty2.default)(Main, "propTypes", {
198
+ model: _propTypes.default.object,
199
+ session: _propTypes.default.object,
200
+ onSessionChange: _propTypes.default.func.isRequired
235
201
  });
236
-
237
- var styles = function styles() {
238
- return {
239
- previewHeading: {
240
- fontWeight: '400',
241
- fontSize: '24px',
242
- margin: '14px 0'
243
- },
244
- modelPreview: {
245
- padding: '16px'
246
- },
247
- titleContainer: {
248
- textAlign: 'center',
249
- fontSize: '20px'
250
- }
251
- };
252
- };
253
-
254
- var _default = (0, _styles.withStyles)(styles)(Main);
255
-
256
- exports["default"] = _default;
202
+ var _default = exports.default = Main;
257
203
  //# sourceMappingURL=main.js.map