@pie-element/graphing-solution-set 6.1.2-next.1 → 6.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.json +1 -0
- package/CHANGELOG.md +856 -0
- package/LICENSE.md +5 -0
- package/README.md +20 -0
- package/configure/CHANGELOG.json +1 -0
- package/configure/CHANGELOG.md +816 -0
- package/configure/lib/configure.js +312 -0
- package/configure/lib/configure.js.map +1 -0
- package/configure/lib/correct-response.js +435 -0
- package/configure/lib/correct-response.js.map +1 -0
- package/configure/lib/defaults.js +357 -0
- package/configure/lib/defaults.js.map +1 -0
- package/configure/lib/graphing-config.js +408 -0
- package/configure/lib/graphing-config.js.map +1 -0
- package/configure/lib/index.js +163 -0
- package/configure/lib/index.js.map +1 -0
- package/configure/lib/utils.js +630 -0
- package/configure/lib/utils.js.map +1 -0
- package/configure/package.json +29 -0
- package/controller/CHANGELOG.json +1 -0
- package/controller/CHANGELOG.md +675 -0
- package/controller/lib/defaults.js +69 -0
- package/controller/lib/defaults.js.map +1 -0
- package/controller/lib/index.js +351 -0
- package/controller/lib/index.js.map +1 -0
- package/controller/lib/utils.js +212 -0
- package/controller/lib/utils.js.map +1 -0
- package/controller/package.json +22 -0
- package/demo-gss.gif +0 -0
- package/docs/config-schema.json +1560 -0
- package/docs/config-schema.json.md +1114 -0
- package/docs/demo/config.js +8 -0
- package/docs/demo/generate.js +54 -0
- package/docs/demo/index.html +1 -0
- package/docs/demo/session.js +6 -0
- package/docs/pie-schema.json +1800 -0
- package/docs/pie-schema.json.md +952 -0
- package/lib/index.js +164 -0
- package/lib/index.js.map +1 -0
- package/lib/main.js +355 -0
- package/lib/main.js.map +1 -0
- package/lib/utils.js +515 -0
- package/lib/utils.js.map +1 -0
- package/package.json +23 -86
- package/configure.js +0 -2
- package/controller.js +0 -1
- package/dist/author/configure.d.ts +0 -26
- package/dist/author/configure.js +0 -190
- package/dist/author/correct-response.d.ts +0 -33
- package/dist/author/correct-response.js +0 -206
- package/dist/author/defaults.d.ts +0 -238
- package/dist/author/defaults.js +0 -339
- package/dist/author/graphing-config.d.ts +0 -33
- package/dist/author/graphing-config.js +0 -237
- package/dist/author/index.d.ts +0 -62
- package/dist/author/index.js +0 -87
- package/dist/author/utils.d.ts +0 -46
- package/dist/author/utils.js +0 -474
- package/dist/browser/author/index.js +0 -1942
- package/dist/browser/author/index.js.map +0 -1
- package/dist/browser/browser-pUycHh7Y.js +0 -348
- package/dist/browser/browser-pUycHh7Y.js.map +0 -1
- package/dist/browser/controller/index.js +0 -193
- package/dist/browser/controller/index.js.map +0 -1
- package/dist/browser/delivery/index.js +0 -782
- package/dist/browser/delivery/index.js.map +0 -1
- package/dist/browser/dist-BxTk7Laj.js +0 -57671
- package/dist/browser/dist-BxTk7Laj.js.map +0 -1
- package/dist/browser/graphing-solution-set.css +0 -2
- package/dist/controller/defaults.d.ts +0 -64
- package/dist/controller/defaults.js +0 -54
- package/dist/controller/index.d.ts +0 -24
- package/dist/controller/index.js +0 -110
- package/dist/controller/utils.d.ts +0 -20
- package/dist/controller/utils.js +0 -39
- package/dist/delivery/index.d.ts +0 -22
- package/dist/delivery/index.js +0 -62
- package/dist/delivery/main.d.ts +0 -31
- package/dist/delivery/main.js +0 -198
- package/dist/delivery/utils.d.ts +0 -12
- package/dist/delivery/utils.js +0 -220
- package/dist/graphing-solution-set.css +0 -2
- package/dist/index.d.ts +0 -1
- package/dist/index.iife.d.ts +0 -8
- package/dist/index.iife.js +0 -405
- package/dist/index.js +0 -2
- package/dist/runtime-support.d.ts +0 -12
- package/dist/runtime-support.js +0 -12
package/lib/index.js
ADDED
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
Object.defineProperty(exports, "Component", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: function () {
|
|
10
|
+
return _main.default;
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
exports.default = void 0;
|
|
14
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
15
|
+
var _react = _interopRequireDefault(require("react"));
|
|
16
|
+
var _client = require("react-dom/client");
|
|
17
|
+
var _piePlayerEvents = require("@pie-framework/pie-player-events");
|
|
18
|
+
var _mathRendering = require("@pie-lib/math-rendering");
|
|
19
|
+
var _utils = require("./utils");
|
|
20
|
+
var _main = _interopRequireDefault(require("./main"));
|
|
21
|
+
class Graphing extends HTMLElement {
|
|
22
|
+
constructor() {
|
|
23
|
+
super();
|
|
24
|
+
/*
|
|
25
|
+
* Is complete function
|
|
26
|
+
* @param {object} answer - Answer object
|
|
27
|
+
* */
|
|
28
|
+
(0, _defineProperty2.default)(this, "isComplete", answer => Array.isArray(answer) && answer.length > 0);
|
|
29
|
+
/*
|
|
30
|
+
* Callback function to change answers
|
|
31
|
+
* @param {object} answer - Answer object
|
|
32
|
+
* @param {boolean} isUndoOperation - Boolean value to check if undo operation is performed
|
|
33
|
+
* */
|
|
34
|
+
(0, _defineProperty2.default)(this, "changeAnswers", (answer, isUndoOperation) => {
|
|
35
|
+
// avoid removeInvalidObjects when undo or redo operations are executed
|
|
36
|
+
// in order to preserve the logic of undo and redo
|
|
37
|
+
const {
|
|
38
|
+
gssData
|
|
39
|
+
} = this._model;
|
|
40
|
+
if (gssData.selectedTool === 'lineA' && answer.length > 0) {
|
|
41
|
+
answer[0].fill = gssData['lineA'].lineType;
|
|
42
|
+
}
|
|
43
|
+
if (gssData.selectedTool === 'lineB' && answer.length > 1) {
|
|
44
|
+
answer[1].fill = gssData['lineB'].lineType;
|
|
45
|
+
}
|
|
46
|
+
if (answer.length === 0) {
|
|
47
|
+
gssData.selectedTool = 'lineA';
|
|
48
|
+
this._model.gssData = gssData;
|
|
49
|
+
}
|
|
50
|
+
if (!isUndoOperation) {
|
|
51
|
+
this._session.answer = (0, _utils.removeInvalidAnswers)(answer);
|
|
52
|
+
} else {
|
|
53
|
+
this._session.answer = answer;
|
|
54
|
+
}
|
|
55
|
+
this.dispatchEvent(new _piePlayerEvents.SessionChangedEvent(this.tagName.toLowerCase(), this.isComplete(this._session.answer)));
|
|
56
|
+
this._render();
|
|
57
|
+
});
|
|
58
|
+
/*
|
|
59
|
+
* Function to set gssData object and session object
|
|
60
|
+
* @param {object} gssData - GSS Data object
|
|
61
|
+
* @param {object} session - Session object
|
|
62
|
+
* */
|
|
63
|
+
(0, _defineProperty2.default)(this, "setGssData", (gssData, session) => {
|
|
64
|
+
this._model.gssData = gssData;
|
|
65
|
+
this._session = session;
|
|
66
|
+
this.dispatchEvent(new _piePlayerEvents.SessionChangedEvent(this.tagName.toLowerCase(), this.isComplete(this._session.answer)));
|
|
67
|
+
this._render();
|
|
68
|
+
});
|
|
69
|
+
this._root = null;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/*
|
|
73
|
+
* Function to set model
|
|
74
|
+
* @param {object} m - Model object
|
|
75
|
+
* */
|
|
76
|
+
set model(m) {
|
|
77
|
+
this._model = m;
|
|
78
|
+
this._render();
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/*
|
|
82
|
+
* Function to set session
|
|
83
|
+
* @param {object} s - Session object
|
|
84
|
+
* */
|
|
85
|
+
set session(s) {
|
|
86
|
+
this._session = s;
|
|
87
|
+
if (!this._session.answer) {
|
|
88
|
+
this._session.answer = [];
|
|
89
|
+
}
|
|
90
|
+
const {
|
|
91
|
+
answer
|
|
92
|
+
} = this._session || {};
|
|
93
|
+
const {
|
|
94
|
+
gssLineData,
|
|
95
|
+
domain,
|
|
96
|
+
range
|
|
97
|
+
} = this._model;
|
|
98
|
+
let section = answer && answer.filter(mark => mark.type === 'polygon').length > 0;
|
|
99
|
+
if (gssLineData.numberOfLines === 1) {
|
|
100
|
+
this._model.gssData = {
|
|
101
|
+
numberOfLines: 1,
|
|
102
|
+
selectedTool: section ? 'solutionSet' : 'lineA',
|
|
103
|
+
sections: [],
|
|
104
|
+
lineA: {
|
|
105
|
+
lineType: answer && answer.length > 0 ? answer[0].fill : 'Solid'
|
|
106
|
+
}
|
|
107
|
+
};
|
|
108
|
+
} else {
|
|
109
|
+
this._model.gssData = {
|
|
110
|
+
numberOfLines: 2,
|
|
111
|
+
selectedTool: section ? 'solutionSet' : 'lineA',
|
|
112
|
+
sections: [],
|
|
113
|
+
lineA: {
|
|
114
|
+
lineType: answer && answer.length > 0 ? answer[0].fill : 'Solid'
|
|
115
|
+
},
|
|
116
|
+
lineB: {
|
|
117
|
+
lineType: answer && answer.length > 1 ? answer[1].fill : 'Solid'
|
|
118
|
+
}
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
if (section) {
|
|
122
|
+
this._model.gssData = (0, _utils.findSectionsInSolutionSet)(this._model.gssData, answer, domain, range);
|
|
123
|
+
}
|
|
124
|
+
this._render();
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
/*
|
|
128
|
+
* Function to get session
|
|
129
|
+
* */
|
|
130
|
+
get session() {
|
|
131
|
+
return this._session;
|
|
132
|
+
}
|
|
133
|
+
connectedCallback() {
|
|
134
|
+
this._render();
|
|
135
|
+
}
|
|
136
|
+
/*
|
|
137
|
+
* Render function
|
|
138
|
+
* */
|
|
139
|
+
_render() {
|
|
140
|
+
if (!this._model || !this._session) {
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
const el = /*#__PURE__*/_react.default.createElement(_main.default, {
|
|
144
|
+
model: this._model,
|
|
145
|
+
session: this._session,
|
|
146
|
+
onAnswersChange: this.changeAnswers,
|
|
147
|
+
setGssData: this.setGssData
|
|
148
|
+
});
|
|
149
|
+
if (!this._root) {
|
|
150
|
+
this._root = (0, _client.createRoot)(this);
|
|
151
|
+
}
|
|
152
|
+
this._root.render(el);
|
|
153
|
+
queueMicrotask(() => {
|
|
154
|
+
(0, _mathRendering.renderMath)(this);
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
disconnectedCallback() {
|
|
158
|
+
if (this._root) {
|
|
159
|
+
this._root.unmount();
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
exports.default = Graphing;
|
|
164
|
+
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_client","_piePlayerEvents","_mathRendering","_utils","_main","Graphing","HTMLElement","constructor","_defineProperty2","default","answer","Array","isArray","length","isUndoOperation","gssData","_model","selectedTool","fill","lineType","_session","removeInvalidAnswers","dispatchEvent","SessionChangedEvent","tagName","toLowerCase","isComplete","_render","session","_root","model","m","s","gssLineData","domain","range","section","filter","mark","type","numberOfLines","sections","lineA","lineB","findSectionsInSolutionSet","connectedCallback","el","React","createElement","Main","onAnswersChange","changeAnswers","setGssData","createRoot","render","queueMicrotask","renderMath","disconnectedCallback","unmount","exports"],"sources":["../src/index.js"],"sourcesContent":["import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { SessionChangedEvent } from '@pie-framework/pie-player-events';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport { findSectionsInSolutionSet, removeInvalidAnswers } from './utils';\nimport Main from './main';\n\nexport { Main as Component };\n\nexport default class Graphing extends HTMLElement {\n constructor() {\n super();\n this._root = null;\n }\n\n /*\n * Function to set model\n * @param {object} m - Model object\n * */\n set model(m) {\n this._model = m;\n this._render();\n }\n\n /*\n * Function to set session\n * @param {object} s - Session object\n * */\n set session(s) {\n this._session = s;\n if (!this._session.answer) {\n this._session.answer = [];\n }\n const { answer } = this._session || {};\n const { gssLineData, domain, range } = this._model;\n let section = answer && answer.filter((mark) => mark.type === 'polygon').length > 0;\n if (gssLineData.numberOfLines === 1) {\n this._model.gssData = {\n numberOfLines: 1,\n selectedTool: section ? 'solutionSet' : 'lineA',\n sections: [],\n lineA: {\n lineType: answer && answer.length > 0 ? answer[0].fill : 'Solid',\n },\n };\n } else {\n this._model.gssData = {\n numberOfLines: 2,\n selectedTool: section ? 'solutionSet' : 'lineA',\n sections: [],\n lineA: {\n lineType: answer && answer.length > 0 ? answer[0].fill : 'Solid',\n },\n lineB: {\n lineType: answer && answer.length > 1 ? answer[1].fill : 'Solid',\n },\n };\n }\n if (section) {\n this._model.gssData = findSectionsInSolutionSet(this._model.gssData, answer, domain, range);\n }\n this._render();\n }\n\n /*\n * Function to get session\n * */\n get session() {\n return this._session;\n }\n\n connectedCallback() {\n this._render();\n }\n\n /*\n * Is complete function\n * @param {object} answer - Answer object\n * */\n isComplete = (answer) => Array.isArray(answer) && answer.length > 0;\n\n /*\n * Callback function to change answers\n * @param {object} answer - Answer object\n * @param {boolean} isUndoOperation - Boolean value to check if undo operation is performed\n * */\n changeAnswers = (answer, isUndoOperation) => {\n // avoid removeInvalidObjects when undo or redo operations are executed\n // in order to preserve the logic of undo and redo\n const { gssData } = this._model;\n if (gssData.selectedTool === 'lineA' && answer.length > 0) {\n answer[0].fill = gssData['lineA'].lineType;\n }\n if (gssData.selectedTool === 'lineB' && answer.length > 1) {\n answer[1].fill = gssData['lineB'].lineType;\n }\n if (answer.length === 0) {\n gssData.selectedTool = 'lineA';\n this._model.gssData = gssData;\n }\n if (!isUndoOperation) {\n this._session.answer = removeInvalidAnswers(answer);\n } else {\n this._session.answer = answer;\n }\n this.dispatchEvent(new SessionChangedEvent(this.tagName.toLowerCase(), this.isComplete(this._session.answer)));\n this._render();\n };\n\n /*\n * Function to set gssData object and session object\n * @param {object} gssData - GSS Data object\n * @param {object} session - Session object\n * */\n setGssData = (gssData, session) => {\n this._model.gssData = gssData;\n this._session = session;\n this.dispatchEvent(new SessionChangedEvent(this.tagName.toLowerCase(), this.isComplete(this._session.answer)));\n this._render();\n };\n\n /*\n * Render function\n * */\n _render() {\n if (!this._model || !this._session) {\n return;\n }\n const el = React.createElement(Main, {\n model: this._model,\n session: this._session,\n onAnswersChange: this.changeAnswers,\n setGssData: this.setGssData,\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 disconnectedCallback() {\n if (this._root) {\n this._root.unmount();\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
package/lib/main.js
ADDED
|
@@ -0,0 +1,355 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = exports.Main = void 0;
|
|
8
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
|
+
var _react = _interopRequireDefault(require("react"));
|
|
10
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
+
var _styles = require("@mui/material/styles");
|
|
12
|
+
var _graphingSolutionSet = require("@pie-lib/graphing-solution-set");
|
|
13
|
+
var _renderUi = require("@pie-lib/render-ui");
|
|
14
|
+
var _correctAnswerToggle = _interopRequireDefault(require("@pie-lib/correct-answer-toggle"));
|
|
15
|
+
var _utils = require("./utils");
|
|
16
|
+
var _configUi = require("@pie-lib/config-ui");
|
|
17
|
+
const MainContainer = (0, _styles.styled)(_renderUi.UiLayout)({
|
|
18
|
+
color: _renderUi.color.text(),
|
|
19
|
+
backgroundColor: _renderUi.color.background()
|
|
20
|
+
});
|
|
21
|
+
const TeacherInstructions = (0, _styles.styled)(_renderUi.Collapsible)(({
|
|
22
|
+
theme
|
|
23
|
+
}) => ({
|
|
24
|
+
marginBottom: theme.spacing(2)
|
|
25
|
+
}));
|
|
26
|
+
const Graph = (0, _styles.styled)(_graphingSolutionSet.GraphContainer)(({
|
|
27
|
+
theme
|
|
28
|
+
}) => ({
|
|
29
|
+
marginTop: theme.spacing(2),
|
|
30
|
+
marginBottom: theme.spacing(2)
|
|
31
|
+
}));
|
|
32
|
+
class Main extends _react.default.Component {
|
|
33
|
+
constructor(...args) {
|
|
34
|
+
super(...args);
|
|
35
|
+
(0, _defineProperty2.default)(this, "state", {
|
|
36
|
+
showingCorrect: false,
|
|
37
|
+
dialog: {
|
|
38
|
+
open: false
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
/*
|
|
42
|
+
* Function to handle the AlertDialog
|
|
43
|
+
* @param {boolean} open - open state of the dialog
|
|
44
|
+
* @param {function} callback - callback function to be called after setting the state
|
|
45
|
+
* */
|
|
46
|
+
(0, _defineProperty2.default)(this, "handleAlertDialog", (open, callback) => this.setState({
|
|
47
|
+
dialog: {
|
|
48
|
+
open
|
|
49
|
+
}
|
|
50
|
+
}, callback));
|
|
51
|
+
/*
|
|
52
|
+
* Function to toggle the correct answer
|
|
53
|
+
* @param {boolean} showingCorrect - state of the correct answer
|
|
54
|
+
* */
|
|
55
|
+
(0, _defineProperty2.default)(this, "toggleCorrect", showingCorrect => this.setState({
|
|
56
|
+
showingCorrect
|
|
57
|
+
}));
|
|
58
|
+
/*
|
|
59
|
+
* Reset the graph to original state
|
|
60
|
+
* */
|
|
61
|
+
(0, _defineProperty2.default)(this, "onResetClick", () => {
|
|
62
|
+
const {
|
|
63
|
+
model,
|
|
64
|
+
session,
|
|
65
|
+
setGssData
|
|
66
|
+
} = this.props;
|
|
67
|
+
let {
|
|
68
|
+
gssData
|
|
69
|
+
} = model;
|
|
70
|
+
this.setState({
|
|
71
|
+
dialog: {
|
|
72
|
+
open: true,
|
|
73
|
+
title: 'Warning',
|
|
74
|
+
text: `This will remove all the elements added on the graph and reset graph to original state. Are you sure you want to continue?`,
|
|
75
|
+
onConfirm: () => {
|
|
76
|
+
// Reset the graph to original state
|
|
77
|
+
session.answer = [];
|
|
78
|
+
gssData.selectedTool = 'lineA';
|
|
79
|
+
gssData.lineA.lineType = 'Solid';
|
|
80
|
+
if (gssData.lineB) gssData.lineB.lineType = 'Solid';
|
|
81
|
+
// Set the gssData and session
|
|
82
|
+
setGssData(gssData, session);
|
|
83
|
+
this.handleAlertDialog(false);
|
|
84
|
+
},
|
|
85
|
+
onClose: () => this.handleAlertDialog(false)
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
/*
|
|
90
|
+
* Function to handle the event of solution set selected
|
|
91
|
+
* @param {object} point - point selected on the graph
|
|
92
|
+
* */
|
|
93
|
+
(0, _defineProperty2.default)(this, "onSolutionSetSelected", point => {
|
|
94
|
+
const {
|
|
95
|
+
model,
|
|
96
|
+
session,
|
|
97
|
+
setGssData
|
|
98
|
+
} = this.props;
|
|
99
|
+
const {
|
|
100
|
+
gssData,
|
|
101
|
+
disabled
|
|
102
|
+
} = model;
|
|
103
|
+
if (disabled) {
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
for (const section of gssData.sections) {
|
|
107
|
+
if ((0, _utils.pointInsidePolygon)(point, section)) {
|
|
108
|
+
let polygon = {
|
|
109
|
+
points: section,
|
|
110
|
+
building: false,
|
|
111
|
+
type: 'polygon',
|
|
112
|
+
closed: true,
|
|
113
|
+
isSolution: true
|
|
114
|
+
};
|
|
115
|
+
session.answer = session.answer.filter(mark => mark.type !== 'polygon');
|
|
116
|
+
session.answer.push(polygon);
|
|
117
|
+
break;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
setGssData(gssData, session);
|
|
121
|
+
});
|
|
122
|
+
/*
|
|
123
|
+
* Function to handle the event of change in GSS Line Data
|
|
124
|
+
* @param {object} gssData - GSS Line Data
|
|
125
|
+
* @param {string} oldSelectedTool - old selected tool
|
|
126
|
+
* */
|
|
127
|
+
(0, _defineProperty2.default)(this, "onChangeGssLineData", (gssData, oldSelectedTool) => {
|
|
128
|
+
const {
|
|
129
|
+
model,
|
|
130
|
+
session
|
|
131
|
+
} = this.props;
|
|
132
|
+
const {
|
|
133
|
+
domain,
|
|
134
|
+
range,
|
|
135
|
+
disabled
|
|
136
|
+
} = model;
|
|
137
|
+
if (disabled) {
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
if (gssData.selectedTool === 'solutionSet') {
|
|
141
|
+
let lines = session.answer.filter(mark => mark.type !== 'polygon');
|
|
142
|
+
if (!(0, _utils.checkIfLinesAreAdded)(gssData, lines)) {
|
|
143
|
+
gssData.selectedTool = oldSelectedTool;
|
|
144
|
+
this.setState({
|
|
145
|
+
dialog: {
|
|
146
|
+
open: true,
|
|
147
|
+
title: 'Warning',
|
|
148
|
+
text: 'Please define the line(s) and then select a solution set for the item.',
|
|
149
|
+
onConfirm: () => this.handleAlertDialog(false)
|
|
150
|
+
}
|
|
151
|
+
});
|
|
152
|
+
} else {
|
|
153
|
+
let lines = session.answer.filter(mark => mark.type !== 'polygon');
|
|
154
|
+
gssData = (0, _utils.findSectionsInSolutionSet)(gssData, lines, domain, range);
|
|
155
|
+
}
|
|
156
|
+
this.handleGssDataChange(gssData, session);
|
|
157
|
+
} else {
|
|
158
|
+
let polygons = session.answer.filter(mark => mark.type === 'polygon');
|
|
159
|
+
if (oldSelectedTool === 'solutionSet' && polygons.length > 0) {
|
|
160
|
+
this.setState({
|
|
161
|
+
dialog: {
|
|
162
|
+
open: true,
|
|
163
|
+
title: 'Warning',
|
|
164
|
+
text: 'Changing a line after adding a solution set will clear your selected solution set. Click \'Clear Solution Set\' to change the line. Otherwise, click \'Cancel\'.',
|
|
165
|
+
onConfirm: () => {
|
|
166
|
+
session.answer = session.answer.filter(mark => mark.type !== 'polygon');
|
|
167
|
+
this.handleGssDataChange(gssData, session);
|
|
168
|
+
this.handleAlertDialog(false);
|
|
169
|
+
},
|
|
170
|
+
onConfirmText: 'CLEAR SOLUTION SET',
|
|
171
|
+
onClose: () => {
|
|
172
|
+
gssData.selectedTool = oldSelectedTool;
|
|
173
|
+
this.handleGssDataChange(gssData, session);
|
|
174
|
+
this.handleAlertDialog(false);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
});
|
|
178
|
+
} else {
|
|
179
|
+
this.handleGssDataChange(gssData, session);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
});
|
|
183
|
+
/*
|
|
184
|
+
* Function to handle the event of change in GSS Data
|
|
185
|
+
* @param {object} gssData - GSS Data
|
|
186
|
+
* @param {object} session - session data
|
|
187
|
+
* */
|
|
188
|
+
(0, _defineProperty2.default)(this, "handleGssDataChange", (gssData, session) => {
|
|
189
|
+
const {
|
|
190
|
+
setGssData
|
|
191
|
+
} = this.props;
|
|
192
|
+
if (session.answer && session.answer.length > 0 && session.answer[0] && gssData.lineA) {
|
|
193
|
+
session.answer[0].fill = gssData.lineA.lineType;
|
|
194
|
+
}
|
|
195
|
+
if (session.answer && session.answer.length > 1 && session.answer[1] && gssData.lineB) {
|
|
196
|
+
session.answer[1].fill = gssData.lineB.lineType;
|
|
197
|
+
}
|
|
198
|
+
if (gssData.selectedTool === 'lineB' && session.answer.length === 0 || gssData.selectedTool === 'lineB' && session.answer[0].building) {
|
|
199
|
+
this.setState({
|
|
200
|
+
dialog: {
|
|
201
|
+
open: true,
|
|
202
|
+
title: 'Warning',
|
|
203
|
+
text: 'Please add Line A to the graph before adding Line B',
|
|
204
|
+
onConfirm: () => this.handleAlertDialog(false)
|
|
205
|
+
}
|
|
206
|
+
});
|
|
207
|
+
gssData.selectedTool = 'lineA';
|
|
208
|
+
}
|
|
209
|
+
if (gssData.selectedTool === 'lineA' && session.answer.length > 1 && session.answer[1].building) {
|
|
210
|
+
this.setState({
|
|
211
|
+
dialog: {
|
|
212
|
+
open: true,
|
|
213
|
+
title: 'Warning',
|
|
214
|
+
text: 'Please add Line B to the graph before switching to Line A',
|
|
215
|
+
onConfirm: () => this.handleAlertDialog(false)
|
|
216
|
+
}
|
|
217
|
+
});
|
|
218
|
+
gssData.selectedTool = 'lineB';
|
|
219
|
+
}
|
|
220
|
+
setGssData(gssData, session);
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
/*
|
|
224
|
+
* Render the component
|
|
225
|
+
* */
|
|
226
|
+
render() {
|
|
227
|
+
const {
|
|
228
|
+
model,
|
|
229
|
+
onAnswersChange,
|
|
230
|
+
session
|
|
231
|
+
} = this.props;
|
|
232
|
+
const {
|
|
233
|
+
showingCorrect,
|
|
234
|
+
dialog
|
|
235
|
+
} = this.state;
|
|
236
|
+
const {
|
|
237
|
+
answer
|
|
238
|
+
} = session || {};
|
|
239
|
+
const {
|
|
240
|
+
answersCorrected,
|
|
241
|
+
arrows,
|
|
242
|
+
coordinatesOnHover,
|
|
243
|
+
correctResponse,
|
|
244
|
+
defaultTool,
|
|
245
|
+
disabled,
|
|
246
|
+
domain,
|
|
247
|
+
extraCSSRules,
|
|
248
|
+
labels,
|
|
249
|
+
labelsEnabled,
|
|
250
|
+
prompt,
|
|
251
|
+
range,
|
|
252
|
+
rationale,
|
|
253
|
+
size,
|
|
254
|
+
showToggle,
|
|
255
|
+
title,
|
|
256
|
+
titleEnabled,
|
|
257
|
+
teacherInstructions,
|
|
258
|
+
language,
|
|
259
|
+
gssLineData,
|
|
260
|
+
gssData
|
|
261
|
+
} = model || {};
|
|
262
|
+
const marks = answersCorrected || answer || [];
|
|
263
|
+
const showRationale = model.rationale && ((0, _renderUi.hasText)(model.rationale) || (0, _renderUi.hasMedia)(model.rationale));
|
|
264
|
+
const showTeacherInstructions = model.teacherInstructions && ((0, _renderUi.hasText)(model.teacherInstructions) || (0, _renderUi.hasMedia)(model.teacherInstructions));
|
|
265
|
+
return /*#__PURE__*/_react.default.createElement(MainContainer, {
|
|
266
|
+
extraCSSRules: extraCSSRules
|
|
267
|
+
}, showTeacherInstructions && /*#__PURE__*/_react.default.createElement(TeacherInstructions, {
|
|
268
|
+
labels: {
|
|
269
|
+
hidden: 'Show Teacher Instructions',
|
|
270
|
+
visible: 'Hide Teacher Instructions'
|
|
271
|
+
}
|
|
272
|
+
}, /*#__PURE__*/_react.default.createElement(_renderUi.PreviewPrompt, {
|
|
273
|
+
prompt: teacherInstructions
|
|
274
|
+
})), prompt && /*#__PURE__*/_react.default.createElement(_renderUi.PreviewPrompt, {
|
|
275
|
+
className: "prompt",
|
|
276
|
+
prompt: prompt
|
|
277
|
+
}), /*#__PURE__*/_react.default.createElement(_correctAnswerToggle.default, {
|
|
278
|
+
show: showToggle,
|
|
279
|
+
toggled: showingCorrect,
|
|
280
|
+
onToggle: this.toggleCorrect,
|
|
281
|
+
language: language
|
|
282
|
+
}), showingCorrect && showToggle ? /*#__PURE__*/_react.default.createElement(Graph, {
|
|
283
|
+
axesSettings: {
|
|
284
|
+
includeArrows: arrows
|
|
285
|
+
},
|
|
286
|
+
coordinatesOnHover: coordinatesOnHover,
|
|
287
|
+
disabled: true,
|
|
288
|
+
disabledLabels: true,
|
|
289
|
+
disabledTitle: true,
|
|
290
|
+
domain: domain,
|
|
291
|
+
labels: labels,
|
|
292
|
+
marks: correctResponse.map(i => ({
|
|
293
|
+
...i,
|
|
294
|
+
correctness: 'correct'
|
|
295
|
+
})),
|
|
296
|
+
onChangeMarks: onAnswersChange,
|
|
297
|
+
range: range,
|
|
298
|
+
showLabels: labelsEnabled,
|
|
299
|
+
showTitle: titleEnabled,
|
|
300
|
+
size: size,
|
|
301
|
+
title: title,
|
|
302
|
+
language: language,
|
|
303
|
+
gssLineData: gssLineData,
|
|
304
|
+
onChangeGssLineData: this.onChangeGssLineData,
|
|
305
|
+
onSolutionSetSelected: this.onSolutionSetSelected,
|
|
306
|
+
toolbarTools: ['line', 'polygon']
|
|
307
|
+
}) : /*#__PURE__*/_react.default.createElement(Graph, {
|
|
308
|
+
axesSettings: {
|
|
309
|
+
includeArrows: arrows
|
|
310
|
+
},
|
|
311
|
+
coordinatesOnHover: coordinatesOnHover,
|
|
312
|
+
defaultTool: defaultTool,
|
|
313
|
+
disabled: disabled,
|
|
314
|
+
disabledLabels: true,
|
|
315
|
+
disabledTitle: true,
|
|
316
|
+
domain: domain,
|
|
317
|
+
labels: labels,
|
|
318
|
+
marks: marks,
|
|
319
|
+
onChangeMarks: onAnswersChange,
|
|
320
|
+
onCustomReset: this.onResetClick,
|
|
321
|
+
range: range,
|
|
322
|
+
showLabels: labelsEnabled,
|
|
323
|
+
showTitle: titleEnabled,
|
|
324
|
+
size: size,
|
|
325
|
+
title: title,
|
|
326
|
+
language: language,
|
|
327
|
+
gssLineData: gssData,
|
|
328
|
+
onChangeGssLineData: this.onChangeGssLineData,
|
|
329
|
+
onSolutionSetSelected: this.onSolutionSetSelected,
|
|
330
|
+
toolbarTools: ['line', 'polygon']
|
|
331
|
+
}), showRationale && /*#__PURE__*/_react.default.createElement(_renderUi.Collapsible, {
|
|
332
|
+
labels: {
|
|
333
|
+
hidden: 'Show Rationale',
|
|
334
|
+
visible: 'Hide Rationale'
|
|
335
|
+
}
|
|
336
|
+
}, /*#__PURE__*/_react.default.createElement(_renderUi.PreviewPrompt, {
|
|
337
|
+
prompt: rationale
|
|
338
|
+
})), /*#__PURE__*/_react.default.createElement(_configUi.AlertDialog, {
|
|
339
|
+
open: dialog.open,
|
|
340
|
+
title: dialog.title,
|
|
341
|
+
text: dialog.text,
|
|
342
|
+
onClose: dialog.onClose,
|
|
343
|
+
onConfirm: dialog.onConfirm,
|
|
344
|
+
onConfirmText: dialog.onConfirmText ? dialog.onConfirmText : 'OK'
|
|
345
|
+
}));
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
exports.Main = Main;
|
|
349
|
+
(0, _defineProperty2.default)(Main, "propTypes", {
|
|
350
|
+
model: _propTypes.default.object.isRequired,
|
|
351
|
+
session: _propTypes.default.object.isRequired,
|
|
352
|
+
onAnswersChange: _propTypes.default.func
|
|
353
|
+
});
|
|
354
|
+
var _default = exports.default = Main;
|
|
355
|
+
//# sourceMappingURL=main.js.map
|
package/lib/main.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"main.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_graphingSolutionSet","_renderUi","_correctAnswerToggle","_utils","_configUi","MainContainer","styled","UiLayout","color","text","backgroundColor","background","TeacherInstructions","Collapsible","theme","marginBottom","spacing","Graph","GraphContainer","marginTop","Main","React","Component","constructor","args","_defineProperty2","default","showingCorrect","dialog","open","callback","setState","model","session","setGssData","props","gssData","title","onConfirm","answer","selectedTool","lineA","lineType","lineB","handleAlertDialog","onClose","point","disabled","section","sections","pointInsidePolygon","polygon","points","building","type","closed","isSolution","filter","mark","push","oldSelectedTool","domain","range","lines","checkIfLinesAreAdded","findSectionsInSolutionSet","handleGssDataChange","polygons","length","onConfirmText","fill","render","onAnswersChange","state","answersCorrected","arrows","coordinatesOnHover","correctResponse","defaultTool","extraCSSRules","labels","labelsEnabled","prompt","rationale","size","showToggle","titleEnabled","teacherInstructions","language","gssLineData","marks","showRationale","hasText","hasMedia","showTeacherInstructions","createElement","hidden","visible","PreviewPrompt","className","show","toggled","onToggle","toggleCorrect","axesSettings","includeArrows","disabledLabels","disabledTitle","map","i","correctness","onChangeMarks","showLabels","showTitle","onChangeGssLineData","onSolutionSetSelected","toolbarTools","onCustomReset","onResetClick","AlertDialog","exports","PropTypes","object","isRequired","func","_default"],"sources":["../src/main.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport { GraphContainer } from '@pie-lib/graphing-solution-set';\nimport { color, Collapsible, hasText, hasMedia, PreviewPrompt, UiLayout } from '@pie-lib/render-ui';\nimport CorrectAnswerToggle from '@pie-lib/correct-answer-toggle';\nimport { findSectionsInSolutionSet, pointInsidePolygon, checkIfLinesAreAdded } from './utils';\nimport { AlertDialog } from '@pie-lib/config-ui';\n\nconst MainContainer = styled(UiLayout)({\n color: color.text(),\n backgroundColor: color.background(),\n});\n\nconst TeacherInstructions = styled(Collapsible)(({ theme }) => ({\n marginBottom: theme.spacing(2),\n}));\n\nconst Graph = styled(GraphContainer)(({ theme }) => ({\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(2),\n}));\n\nexport class Main extends React.Component {\n static propTypes = {\n model: PropTypes.object.isRequired,\n session: PropTypes.object.isRequired,\n onAnswersChange: PropTypes.func,\n };\n\n state = {\n showingCorrect: false,\n dialog: {\n open: false,\n },\n };\n\n /*\n * Function to handle the AlertDialog\n * @param {boolean} open - open state of the dialog\n * @param {function} callback - callback function to be called after setting the state\n * */\n handleAlertDialog = (open, callback) =>\n this.setState(\n {\n dialog: { open },\n },\n callback,\n );\n\n /*\n * Function to toggle the correct answer\n * @param {boolean} showingCorrect - state of the correct answer\n * */\n toggleCorrect = (showingCorrect) => this.setState({ showingCorrect });\n\n /*\n * Reset the graph to original state\n * */\n onResetClick = () => {\n const { model, session, setGssData } = this.props;\n let { gssData } = model;\n this.setState({\n dialog: {\n open: true,\n title: 'Warning',\n text: `This will remove all the elements added on the graph and reset graph to original state. Are you sure you want to continue?`,\n onConfirm: () => {\n // Reset the graph to original state\n session.answer = [];\n gssData.selectedTool = 'lineA';\n gssData.lineA.lineType = 'Solid';\n if (gssData.lineB) gssData.lineB.lineType = 'Solid';\n // Set the gssData and session\n setGssData(gssData, session);\n this.handleAlertDialog(false);\n },\n onClose: () => this.handleAlertDialog(false),\n },\n });\n };\n\n /*\n * Function to handle the event of solution set selected\n * @param {object} point - point selected on the graph\n * */\n onSolutionSetSelected = (point) => {\n const { model, session, setGssData } = this.props;\n const { gssData, disabled } = model;\n if (disabled) {\n return;\n }\n for (const section of gssData.sections) {\n if (pointInsidePolygon(point, section)) {\n let polygon = {\n points: section,\n building: false,\n type: 'polygon',\n closed: true,\n isSolution: true,\n };\n session.answer = session.answer.filter((mark) => mark.type !== 'polygon');\n session.answer.push(polygon);\n break;\n }\n }\n setGssData(gssData, session);\n };\n\n /*\n * Function to handle the event of change in GSS Line Data\n * @param {object} gssData - GSS Line Data\n * @param {string} oldSelectedTool - old selected tool\n * */\n onChangeGssLineData = (gssData, oldSelectedTool) => {\n const { model, session } = this.props;\n const { domain, range, disabled } = model;\n if (disabled) {\n return;\n }\n if (gssData.selectedTool === 'solutionSet') {\n let lines = session.answer.filter((mark) => mark.type !== 'polygon');\n if (!checkIfLinesAreAdded(gssData, lines)) {\n gssData.selectedTool = oldSelectedTool;\n this.setState({\n dialog: {\n open: true,\n title: 'Warning',\n text: 'Please define the line(s) and then select a solution set for the item.',\n onConfirm: () => this.handleAlertDialog(false),\n },\n });\n } else {\n let lines = session.answer.filter((mark) => mark.type !== 'polygon');\n gssData = findSectionsInSolutionSet(gssData, lines, domain, range);\n }\n this.handleGssDataChange(gssData, session);\n } else {\n let polygons = session.answer.filter((mark) => mark.type === 'polygon');\n if (oldSelectedTool === 'solutionSet' && polygons.length > 0) {\n this.setState({\n dialog: {\n open: true,\n title: 'Warning',\n text: 'Changing a line after adding a solution set will clear your selected solution set. Click \\'Clear Solution Set\\' to change the line. Otherwise, click \\'Cancel\\'.',\n onConfirm: () => {\n session.answer = session.answer.filter((mark) => mark.type !== 'polygon');\n this.handleGssDataChange(gssData, session);\n this.handleAlertDialog(false);\n },\n onConfirmText: 'CLEAR SOLUTION SET',\n onClose: () => {\n gssData.selectedTool = oldSelectedTool;\n this.handleGssDataChange(gssData, session);\n this.handleAlertDialog(false);\n },\n },\n });\n } else {\n this.handleGssDataChange(gssData, session);\n }\n }\n };\n\n /*\n * Function to handle the event of change in GSS Data\n * @param {object} gssData - GSS Data\n * @param {object} session - session data\n * */\n handleGssDataChange = (gssData, session) => {\n const { setGssData } = this.props;\n if (session.answer && session.answer.length > 0 && session.answer[0] && gssData.lineA) {\n session.answer[0].fill = gssData.lineA.lineType;\n }\n if (session.answer && session.answer.length > 1 && session.answer[1] && gssData.lineB) {\n session.answer[1].fill = gssData.lineB.lineType;\n }\n if (\n (gssData.selectedTool === 'lineB' && session.answer.length === 0) ||\n (gssData.selectedTool === 'lineB' && session.answer[0].building)\n ) {\n this.setState({\n dialog: {\n open: true,\n title: 'Warning',\n text: 'Please add Line A to the graph before adding Line B',\n onConfirm: () => this.handleAlertDialog(false),\n },\n });\n gssData.selectedTool = 'lineA';\n }\n if (gssData.selectedTool === 'lineA' && session.answer.length > 1 && session.answer[1].building) {\n this.setState({\n dialog: {\n open: true,\n title: 'Warning',\n text: 'Please add Line B to the graph before switching to Line A',\n onConfirm: () => this.handleAlertDialog(false),\n },\n });\n gssData.selectedTool = 'lineB';\n }\n setGssData(gssData, session);\n };\n\n /*\n * Render the component\n * */\n render() {\n const { model, onAnswersChange, session } = this.props;\n const { showingCorrect, dialog } = this.state;\n const { answer } = session || {};\n const {\n answersCorrected,\n arrows,\n coordinatesOnHover,\n correctResponse,\n defaultTool,\n disabled,\n domain,\n extraCSSRules,\n labels,\n labelsEnabled,\n prompt,\n range,\n rationale,\n size,\n showToggle,\n title,\n titleEnabled,\n teacherInstructions,\n language,\n gssLineData,\n gssData,\n } = model || {};\n const marks = answersCorrected || answer || [];\n const showRationale = model.rationale && (hasText(model.rationale) || hasMedia(model.rationale));\n const showTeacherInstructions =\n model.teacherInstructions && (hasText(model.teacherInstructions) || hasMedia(model.teacherInstructions));\n return (\n <MainContainer extraCSSRules={extraCSSRules}>\n {showTeacherInstructions && (\n <TeacherInstructions\n labels={{ hidden: 'Show Teacher Instructions', visible: 'Hide Teacher Instructions' }}\n >\n <PreviewPrompt prompt={teacherInstructions} />\n </TeacherInstructions>\n )}\n {prompt && <PreviewPrompt className=\"prompt\" prompt={prompt} />}\n <CorrectAnswerToggle\n show={showToggle}\n toggled={showingCorrect}\n onToggle={this.toggleCorrect}\n language={language}\n />\n {showingCorrect && showToggle ? (\n <Graph\n axesSettings={{ includeArrows: arrows }}\n coordinatesOnHover={coordinatesOnHover}\n disabled={true}\n disabledLabels={true}\n disabledTitle={true}\n domain={domain}\n labels={labels}\n marks={correctResponse.map((i) => ({ ...i, correctness: 'correct' }))}\n onChangeMarks={onAnswersChange}\n range={range}\n showLabels={labelsEnabled}\n showTitle={titleEnabled}\n size={size}\n title={title}\n language={language}\n gssLineData={gssLineData}\n onChangeGssLineData={this.onChangeGssLineData}\n onSolutionSetSelected={this.onSolutionSetSelected}\n toolbarTools={['line', 'polygon']}\n />\n ) : (\n <Graph\n axesSettings={{ includeArrows: arrows }}\n coordinatesOnHover={coordinatesOnHover}\n defaultTool={defaultTool}\n disabled={disabled}\n disabledLabels={true}\n disabledTitle={true}\n domain={domain}\n labels={labels}\n marks={marks}\n onChangeMarks={onAnswersChange}\n onCustomReset={this.onResetClick}\n range={range}\n showLabels={labelsEnabled}\n showTitle={titleEnabled}\n size={size}\n title={title}\n language={language}\n gssLineData={gssData}\n onChangeGssLineData={this.onChangeGssLineData}\n onSolutionSetSelected={this.onSolutionSetSelected}\n toolbarTools={['line', 'polygon']}\n />\n )}\n {showRationale && (\n <Collapsible labels={{ hidden: 'Show Rationale', visible: 'Hide Rationale' }}>\n <PreviewPrompt prompt={rationale} />\n </Collapsible>\n )}\n <AlertDialog\n open={dialog.open}\n title={dialog.title}\n text={dialog.text}\n onClose={dialog.onClose}\n onConfirm={dialog.onConfirm}\n onConfirmText={dialog.onConfirmText ? dialog.onConfirmText : 'OK'}\n />\n </MainContainer>\n );\n }\n}\n\nexport default Main;\n"],"mappings":"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","ignoreList":[]}
|