@pie-element/fraction-model 4.3.4-next.0 → 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/configure/lib/card-bar.js +45 -66
- package/configure/lib/card-bar.js.map +1 -1
- package/configure/lib/defaults.js +4 -5
- package/configure/lib/defaults.js.map +1 -1
- package/configure/lib/index.js +127 -193
- package/configure/lib/index.js.map +1 -1
- package/configure/lib/main.js +216 -276
- package/configure/lib/main.js.map +1 -1
- package/configure/lib/model-options.js +119 -196
- package/configure/lib/model-options.js.map +1 -1
- package/configure/lib/number-text-field.js +31 -90
- package/configure/lib/number-text-field.js.map +1 -1
- package/configure/package.json +9 -6
- package/controller/lib/defaults.js +2 -3
- package/controller/lib/defaults.js.map +1 -1
- package/controller/lib/index.js +66 -111
- package/controller/lib/index.js.map +1 -1
- package/controller/package.json +2 -2
- package/lib/answer-fraction.js +94 -159
- package/lib/answer-fraction.js.map +1 -1
- package/lib/fraction-model-chart.js +140 -219
- package/lib/fraction-model-chart.js.map +1 -1
- package/lib/index.js +68 -108
- package/lib/index.js.map +1 -1
- package/lib/main.js +150 -204
- package/lib/main.js.map +1 -1
- package/package.json +14 -14
package/lib/answer-fraction.js
CHANGED
|
@@ -1,174 +1,109 @@
|
|
|
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
|
|
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.AnswerFraction = 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
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
var min = 1;
|
|
68
|
-
var max = key === 'noOfModel' ? model.maxModelSelected : 9;
|
|
69
|
-
|
|
70
|
-
if (value > max) {
|
|
71
|
-
value = max;
|
|
72
|
-
} else if (value < min) {
|
|
73
|
-
value = min;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
newAnswers[key] = value;
|
|
77
|
-
onAnswerChange(newAnswers);
|
|
11
|
+
var _styles = require("@mui/material/styles");
|
|
12
|
+
var _material = require("@mui/material");
|
|
13
|
+
const GroupInline = (0, _styles.styled)('div')({
|
|
14
|
+
alignItems: 'center',
|
|
15
|
+
display: 'flex',
|
|
16
|
+
gap: '20px'
|
|
17
|
+
});
|
|
18
|
+
const Group = (0, _styles.styled)('div')({
|
|
19
|
+
margin: '12px 0'
|
|
20
|
+
});
|
|
21
|
+
const InputLabel = (0, _styles.styled)('label')({
|
|
22
|
+
display: 'block',
|
|
23
|
+
marginBottom: '4px'
|
|
24
|
+
});
|
|
25
|
+
const StyledTextField = (0, _styles.styled)(_material.TextField)({
|
|
26
|
+
width: '120px',
|
|
27
|
+
maxHeight: '40px',
|
|
28
|
+
'& [class^="MuiInputBase-root"]': {
|
|
29
|
+
height: 40,
|
|
30
|
+
fontSize: '14px'
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
class AnswerFraction extends _react.default.Component {
|
|
34
|
+
constructor(...args) {
|
|
35
|
+
super(...args);
|
|
36
|
+
/**
|
|
37
|
+
* Function to trigger when value change from number selection
|
|
38
|
+
* @param {string} key contains event change object
|
|
39
|
+
* @returns updated answer change object
|
|
40
|
+
*/
|
|
41
|
+
(0, _defineProperty2.default)(this, "onValueChange", key => event => {
|
|
42
|
+
let value = parseInt(event?.target?.value);
|
|
43
|
+
const {
|
|
44
|
+
model,
|
|
45
|
+
onAnswerChange,
|
|
46
|
+
answers
|
|
47
|
+
} = this.props;
|
|
48
|
+
const newAnswers = {
|
|
49
|
+
...answers
|
|
78
50
|
};
|
|
51
|
+
const min = 1;
|
|
52
|
+
const max = key === 'noOfModel' ? model.maxModelSelected : 9;
|
|
53
|
+
if (value > max) {
|
|
54
|
+
value = max;
|
|
55
|
+
} else if (value < min) {
|
|
56
|
+
value = min;
|
|
57
|
+
}
|
|
58
|
+
newAnswers[key] = value;
|
|
59
|
+
onAnswerChange(newAnswers);
|
|
79
60
|
});
|
|
80
|
-
return _this;
|
|
81
61
|
}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
},
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
inputProps: {
|
|
121
|
-
min: 1,
|
|
122
|
-
max: 9
|
|
123
|
-
},
|
|
124
|
-
name: "preview_parts-per-model",
|
|
125
|
-
onChange: this.onValueChange('partsPerModel'),
|
|
126
|
-
type: "number",
|
|
127
|
-
variant: "outlined",
|
|
128
|
-
disabled: disabled,
|
|
129
|
-
value: showCorrect ? model.partsPerModel : answers.partsPerModel
|
|
130
|
-
}))));
|
|
131
|
-
}
|
|
132
|
-
}]);
|
|
133
|
-
return AnswerFraction;
|
|
134
|
-
}(_react["default"].Component);
|
|
135
|
-
|
|
62
|
+
render() {
|
|
63
|
+
const {
|
|
64
|
+
model,
|
|
65
|
+
showCorrect,
|
|
66
|
+
answers,
|
|
67
|
+
disabled
|
|
68
|
+
} = this.props;
|
|
69
|
+
return /*#__PURE__*/_react.default.createElement("div", null, model.allowedStudentConfig && /*#__PURE__*/_react.default.createElement(GroupInline, null, /*#__PURE__*/_react.default.createElement(Group, null, /*#__PURE__*/_react.default.createElement(InputLabel, {
|
|
70
|
+
htmlFor: 'preview_number-of-models'
|
|
71
|
+
}, "Number of Models"), /*#__PURE__*/_react.default.createElement(StyledTextField, {
|
|
72
|
+
id: "preview_number-of-models",
|
|
73
|
+
inputProps: {
|
|
74
|
+
min: 1,
|
|
75
|
+
max: model.maxModelSelected
|
|
76
|
+
},
|
|
77
|
+
name: "preview_number-of-models",
|
|
78
|
+
onChange: this.onValueChange('noOfModel'),
|
|
79
|
+
type: "number",
|
|
80
|
+
variant: "outlined",
|
|
81
|
+
disabled: disabled,
|
|
82
|
+
value: showCorrect ? model.maxModelSelected : answers.noOfModel
|
|
83
|
+
})), /*#__PURE__*/_react.default.createElement(Group, null, /*#__PURE__*/_react.default.createElement(InputLabel, {
|
|
84
|
+
htmlFor: 'preview_parts-per-model'
|
|
85
|
+
}, "Parts per Model"), /*#__PURE__*/_react.default.createElement(StyledTextField, {
|
|
86
|
+
id: "preview_parts-per-model",
|
|
87
|
+
inputProps: {
|
|
88
|
+
min: 1,
|
|
89
|
+
max: 9
|
|
90
|
+
},
|
|
91
|
+
name: "preview_parts-per-model",
|
|
92
|
+
onChange: this.onValueChange('partsPerModel'),
|
|
93
|
+
type: "number",
|
|
94
|
+
variant: "outlined",
|
|
95
|
+
disabled: disabled,
|
|
96
|
+
value: showCorrect ? model.partsPerModel : answers.partsPerModel
|
|
97
|
+
}))));
|
|
98
|
+
}
|
|
99
|
+
}
|
|
136
100
|
exports.AnswerFraction = AnswerFraction;
|
|
137
|
-
(0, _defineProperty2
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
answers: _propTypes["default"].object.isRequired
|
|
101
|
+
(0, _defineProperty2.default)(AnswerFraction, "propTypes", {
|
|
102
|
+
model: _propTypes.default.object.isRequired,
|
|
103
|
+
disabled: _propTypes.default.bool.isRequired,
|
|
104
|
+
showCorrect: _propTypes.default.bool.isRequired,
|
|
105
|
+
onAnswerChange: _propTypes.default.func.isRequired,
|
|
106
|
+
answers: _propTypes.default.object.isRequired
|
|
144
107
|
});
|
|
145
|
-
|
|
146
|
-
var styles = function styles() {
|
|
147
|
-
return {
|
|
148
|
-
groupInline: {
|
|
149
|
-
alignItems: 'center',
|
|
150
|
-
display: 'flex',
|
|
151
|
-
gap: '20px'
|
|
152
|
-
},
|
|
153
|
-
group: {
|
|
154
|
-
margin: '12px 0'
|
|
155
|
-
},
|
|
156
|
-
inputLabel: {
|
|
157
|
-
display: 'block',
|
|
158
|
-
marginBottom: '4px'
|
|
159
|
-
},
|
|
160
|
-
textField: {
|
|
161
|
-
width: '120px',
|
|
162
|
-
maxHeight: '40px',
|
|
163
|
-
'& [class^="MuiInputBase-root"]': {
|
|
164
|
-
height: 40,
|
|
165
|
-
fontSize: '14px'
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
};
|
|
169
|
-
};
|
|
170
|
-
|
|
171
|
-
var _default = (0, _styles.withStyles)(styles)(AnswerFraction);
|
|
172
|
-
|
|
173
|
-
exports["default"] = _default;
|
|
108
|
+
var _default = exports.default = AnswerFraction;
|
|
174
109
|
//# sourceMappingURL=answer-fraction.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"answer-fraction.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_material","GroupInline","styled","alignItems","display","gap","Group","margin","InputLabel","marginBottom","StyledTextField","TextField","width","maxHeight","height","fontSize","AnswerFraction","React","Component","constructor","args","_defineProperty2","default","key","event","value","parseInt","target","model","onAnswerChange","answers","props","newAnswers","min","max","maxModelSelected","render","showCorrect","disabled","createElement","allowedStudentConfig","htmlFor","id","inputProps","name","onChange","onValueChange","type","variant","noOfModel","partsPerModel","exports","PropTypes","object","isRequired","bool","func","_default"],"sources":["../src/answer-fraction.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport { TextField } from '@mui/material';\n\nconst GroupInline = styled('div')({\n alignItems: 'center',\n display: 'flex',\n gap: '20px',\n});\n\nconst Group = styled('div')({\n margin: '12px 0',\n});\n\nconst InputLabel = styled('label')({\n display: 'block',\n marginBottom: '4px',\n});\n\nconst StyledTextField = styled(TextField)({\n width: '120px',\n maxHeight: '40px',\n '& [class^=\"MuiInputBase-root\"]': {\n height: 40,\n fontSize: '14px',\n },\n});\n\nexport class AnswerFraction extends React.Component {\n static propTypes = {\n model: PropTypes.object.isRequired,\n disabled: PropTypes.bool.isRequired,\n showCorrect: PropTypes.bool.isRequired,\n onAnswerChange: PropTypes.func.isRequired,\n answers: PropTypes.object.isRequired,\n };\n\n /**\n * Function to trigger when value change from number selection\n * @param {string} key contains event change object\n * @returns updated answer change object\n */\n onValueChange = (key) => (event) => {\n let value = parseInt(event?.target?.value);\n const { model, onAnswerChange, answers } = this.props;\n const newAnswers = { ...answers };\n const min = 1;\n const max = (key === 'noOfModel') ? model.maxModelSelected : 9;\n if(value > max) {\n value = max;\n } else if(value < min) {\n value = min;\n }\n newAnswers[key] = value;\n onAnswerChange(newAnswers);\n };\n\n render() {\n const { model, showCorrect, answers, disabled } = this.props;\n\n return (\n <div>\n {model.allowedStudentConfig && (\n <GroupInline>\n <Group>\n <InputLabel htmlFor={'preview_number-of-models'}>\n Number of Models\n </InputLabel>\n <StyledTextField\n id=\"preview_number-of-models\"\n inputProps={{ min: 1, max: model.maxModelSelected }}\n name=\"preview_number-of-models\"\n onChange={this.onValueChange('noOfModel')}\n type=\"number\"\n variant=\"outlined\"\n disabled={disabled}\n value={showCorrect ? model.maxModelSelected : answers.noOfModel}\n />\n </Group>\n <Group>\n <InputLabel htmlFor={'preview_parts-per-model'}>\n Parts per Model\n </InputLabel>\n <StyledTextField\n id=\"preview_parts-per-model\"\n inputProps={{ min: 1, max: 9 }}\n name=\"preview_parts-per-model\"\n onChange={this.onValueChange('partsPerModel')}\n type=\"number\"\n variant=\"outlined\"\n disabled={disabled}\n value={showCorrect ? model.partsPerModel : answers.partsPerModel}\n />\n </Group>\n </GroupInline>\n )}\n </div>\n );\n }\n}\n\nexport default AnswerFraction;\n"],"mappings":"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","ignoreList":[]}
|