@pie-lib/scoring-config 3.26.3-next.2 → 3.26.3-next.208

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.md CHANGED
@@ -3,7 +3,7 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
- ## [3.26.2](https://github.com/pie-framework/pie-lib/compare/@pie-lib/scoring-config@3.26.1...@pie-lib/scoring-config@3.26.2) (2025-11-27)
6
+ # [4.0.0-next.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/scoring-config@3.26.3-next.0...@pie-lib/scoring-config@4.0.0-next.0) (2026-01-19)
7
7
 
8
8
  **Note:** Version bump only for package @pie-lib/scoring-config
9
9
 
@@ -11,7 +11,7 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
11
11
 
12
12
 
13
13
 
14
- ## [3.26.1](https://github.com/pie-framework/pie-lib/compare/@pie-lib/scoring-config@3.22.2...@pie-lib/scoring-config@3.26.1) (2025-10-22)
14
+ ## [3.26.3-next.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/scoring-config@3.40.0-mui-update.0...@pie-lib/scoring-config@3.26.3-next.0) (2026-01-19)
15
15
 
16
16
 
17
17
  ### Bug Fixes
@@ -22,141 +22,89 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
22
22
 
23
23
 
24
24
 
25
- # [3.26.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/scoring-config@3.25.0...@pie-lib/scoring-config@3.26.0) (2025-10-16)
25
+ ## [3.26.2](https://github.com/pie-framework/pie-lib/compare/@pie-lib/scoring-config@3.26.1...@pie-lib/scoring-config@3.26.2) (2025-11-27)
26
26
 
27
27
  **Note:** Version bump only for package @pie-lib/scoring-config
28
28
 
29
+ ## [3.26.1](https://github.com/pie-framework/pie-lib/compare/@pie-lib/scoring-config@3.22.2...@pie-lib/scoring-config@3.26.1) (2025-10-22)
29
30
 
31
+ ### Bug Fixes
30
32
 
33
+ - bump config-ui PD-5265 ([77d0c78](https://github.com/pie-framework/pie-lib/commit/77d0c78cacfa57e93ed17e7a7f1257f4a9cf6ab3))
31
34
 
32
-
33
- # [3.25.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/scoring-config@3.22.0...@pie-lib/scoring-config@3.25.0) (2025-10-16)
35
+ # [3.26.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/scoring-config@3.25.0...@pie-lib/scoring-config@3.26.0) (2025-10-16)
34
36
 
35
37
  **Note:** Version bump only for package @pie-lib/scoring-config
36
38
 
39
+ # [3.25.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/scoring-config@3.22.0...@pie-lib/scoring-config@3.25.0) (2025-10-16)
37
40
 
38
-
39
-
41
+ **Note:** Version bump only for package @pie-lib/scoring-config
40
42
 
41
43
  # [3.24.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/scoring-config@3.22.0...@pie-lib/scoring-config@3.24.0) (2025-10-16)
42
44
 
43
45
  **Note:** Version bump only for package @pie-lib/scoring-config
44
46
 
45
-
46
-
47
-
48
-
49
47
  # [3.23.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/scoring-config@3.22.0...@pie-lib/scoring-config@3.23.0) (2025-10-16)
50
48
 
51
49
  **Note:** Version bump only for package @pie-lib/scoring-config
52
50
 
53
-
54
-
55
-
56
-
57
51
  ## [3.22.2](https://github.com/pie-framework/pie-lib/compare/@pie-lib/scoring-config@3.22.1...@pie-lib/scoring-config@3.22.2) (2025-10-14)
58
52
 
59
53
  **Note:** Version bump only for package @pie-lib/scoring-config
60
54
 
61
-
62
-
63
-
64
-
65
55
  ## [3.22.1](https://github.com/pie-framework/pie-lib/compare/@pie-lib/scoring-config@3.22.0...@pie-lib/scoring-config@3.22.1) (2025-10-09)
66
56
 
67
57
  **Note:** Version bump only for package @pie-lib/scoring-config
68
58
 
69
-
70
-
71
-
72
-
73
59
  # [3.22.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/scoring-config@3.6.65...@pie-lib/scoring-config@3.22.0) (2025-09-25)
74
60
 
75
-
76
61
  ### Bug Fixes
77
62
 
78
- * fixed pie-lib/icons import [PD-5126] ([dcb506c](https://github.com/pie-framework/pie-lib/commit/dcb506c914a177f6d88bf73247a023bfe71dac1f))
79
-
63
+ - fixed pie-lib/icons import [PD-5126](<[dcb506c](https://github.com/pie-framework/pie-lib/commit/dcb506c914a177f6d88bf73247a023bfe71dac1f)>)
80
64
 
81
65
  ### Features
82
66
 
83
- * split pie-toolbox into multiple packages [PD-5126] ([7d55a25](https://github.com/pie-framework/pie-lib/commit/7d55a2552d084cd3d0d5c00dc77411b2ced2f5e2))
84
-
85
-
86
-
87
-
67
+ - split pie-toolbox into multiple packages [PD-5126](<[7d55a25](https://github.com/pie-framework/pie-lib/commit/7d55a2552d084cd3d0d5c00dc77411b2ced2f5e2)>)
88
68
 
89
69
  # [3.21.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/scoring-config@3.20.0...@pie-lib/scoring-config@3.21.0) (2025-09-18)
90
70
 
91
71
  **Note:** Version bump only for package @pie-lib/scoring-config
92
72
 
93
-
94
-
95
-
96
-
97
73
  # [3.20.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/scoring-config@3.19.0...@pie-lib/scoring-config@3.20.0) (2025-09-18)
98
74
 
99
75
  **Note:** Version bump only for package @pie-lib/scoring-config
100
76
 
101
-
102
-
103
-
104
-
105
77
  # [3.19.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/scoring-config@3.6.65...@pie-lib/scoring-config@3.19.0) (2025-09-18)
106
78
 
107
-
108
79
  ### Bug Fixes
109
80
 
110
- * fixed pie-lib/icons import [PD-5126] ([dcb506c](https://github.com/pie-framework/pie-lib/commit/dcb506c914a177f6d88bf73247a023bfe71dac1f))
111
-
81
+ - fixed pie-lib/icons import [PD-5126](<[dcb506c](https://github.com/pie-framework/pie-lib/commit/dcb506c914a177f6d88bf73247a023bfe71dac1f)>)
112
82
 
113
83
  ### Features
114
84
 
115
- * split pie-toolbox into multiple packages [PD-5126] ([7d55a25](https://github.com/pie-framework/pie-lib/commit/7d55a2552d084cd3d0d5c00dc77411b2ced2f5e2))
116
-
117
-
118
-
119
-
85
+ - split pie-toolbox into multiple packages [PD-5126](<[7d55a25](https://github.com/pie-framework/pie-lib/commit/7d55a2552d084cd3d0d5c00dc77411b2ced2f5e2)>)
120
86
 
121
87
  # [3.18.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/scoring-config@3.17.0...@pie-lib/scoring-config@3.18.0) (2025-09-17)
122
88
 
123
89
  **Note:** Version bump only for package @pie-lib/scoring-config
124
90
 
125
-
126
-
127
-
128
-
129
91
  # [3.17.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/scoring-config@3.16.0...@pie-lib/scoring-config@3.17.0) (2025-09-17)
130
92
 
131
93
  **Note:** Version bump only for package @pie-lib/scoring-config
132
94
 
133
-
134
-
135
-
136
-
137
95
  # [3.16.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/scoring-config@3.15.1...@pie-lib/scoring-config@3.16.0) (2025-09-17)
138
96
 
139
97
  **Note:** Version bump only for package @pie-lib/scoring-config
140
98
 
141
-
142
-
143
-
144
-
145
99
  ## [3.15.1](https://github.com/pie-framework/pie-lib/compare/@pie-lib/scoring-config@3.6.65...@pie-lib/scoring-config@3.15.1) (2025-08-11)
146
100
 
147
-
148
101
  ### Bug Fixes
149
102
 
150
- * fixed pie-lib/icons import [PD-5126] ([dcb506c](https://github.com/pie-framework/pie-lib/commit/dcb506c914a177f6d88bf73247a023bfe71dac1f))
151
-
103
+ - fixed pie-lib/icons import [PD-5126](<[dcb506c](https://github.com/pie-framework/pie-lib/commit/dcb506c914a177f6d88bf73247a023bfe71dac1f)>)
152
104
 
153
105
  ### Features
154
106
 
155
- * split pie-toolbox into multiple packages [PD-5126] ([7d55a25](https://github.com/pie-framework/pie-lib/commit/7d55a2552d084cd3d0d5c00dc77411b2ced2f5e2))
156
-
157
-
158
-
159
-
107
+ - split pie-toolbox into multiple packages [PD-5126](<[7d55a25](https://github.com/pie-framework/pie-lib/commit/7d55a2552d084cd3d0d5c00dc77411b2ced2f5e2)>)
160
108
 
161
109
  # [3.15.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/scoring-config@3.6.65...@pie-lib/scoring-config@3.15.0) (2025-08-07)
162
110
 
package/lib/index.js CHANGED
@@ -1,80 +1,58 @@
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
  exports["default"] = exports.PartialScoringConfig = void 0;
9
-
10
8
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
-
12
9
  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
10
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
19
-
20
11
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
21
-
12
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
22
13
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
23
-
24
14
  var _react = _interopRequireDefault(require("react"));
25
-
26
- var _Typography = _interopRequireDefault(require("@material-ui/core/Typography"));
27
-
28
- var _Checkbox = _interopRequireDefault(require("@material-ui/core/Checkbox"));
29
-
30
- var _styles = require("@material-ui/core/styles");
31
-
15
+ var _Typography = _interopRequireDefault(require("@mui/material/Typography"));
16
+ var _Checkbox = _interopRequireDefault(require("@mui/material/Checkbox"));
17
+ var _styles = require("@mui/material/styles");
32
18
  var _propTypes = _interopRequireDefault(require("prop-types"));
33
-
34
- 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); }; }
35
-
36
- 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; } }
37
-
38
- var PartialScoringConfig = /*#__PURE__*/function (_React$Component) {
39
- (0, _inherits2["default"])(PartialScoringConfig, _React$Component);
40
-
41
- var _super = _createSuper(PartialScoringConfig);
42
-
19
+ function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
20
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
21
+ var ScoringConfigContainer = (0, _styles.styled)('div')(function (_ref) {
22
+ var theme = _ref.theme;
23
+ return {
24
+ paddingTop: theme.spacing(1)
25
+ };
26
+ });
27
+ var PartialScoringConfig = exports.PartialScoringConfig = /*#__PURE__*/function (_React$Component) {
43
28
  function PartialScoringConfig(props) {
44
29
  var _this;
45
-
46
30
  (0, _classCallCheck2["default"])(this, PartialScoringConfig);
47
- _this = _super.call(this, props);
48
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "state", {
31
+ _this = _callSuper(this, PartialScoringConfig, [props]);
32
+ (0, _defineProperty2["default"])(_this, "state", {
49
33
  checked: false
50
34
  });
51
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onCheckboxChanged", function () {
35
+ (0, _defineProperty2["default"])(_this, "onCheckboxChanged", function () {
52
36
  var checked = !_this.state.checked;
53
37
  var onChange = _this.props.onChange;
54
-
55
38
  _this.setState({
56
39
  checked: checked
57
40
  });
58
-
59
41
  onChange(checked);
60
42
  });
61
43
  var partialScoring = props.partialScoring;
62
44
  _this.state.checked = partialScoring;
63
45
  return _this;
64
46
  }
65
-
66
- (0, _createClass2["default"])(PartialScoringConfig, [{
47
+ (0, _inherits2["default"])(PartialScoringConfig, _React$Component);
48
+ return (0, _createClass2["default"])(PartialScoringConfig, [{
67
49
  key: "render",
68
50
  value: function render() {
69
- var _this$props = this.props,
70
- classes = _this$props.classes,
71
- label = _this$props.label;
51
+ var label = this.props.label;
72
52
  var checked = this.state.checked;
73
53
  var textLabel = label || 'Each correct response is worth 1/X where X is the number of correct answer selections.';
74
- return /*#__PURE__*/_react["default"].createElement("div", {
75
- className: classes.scoringConfig
76
- }, /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
77
- type: "subheading"
54
+ return /*#__PURE__*/_react["default"].createElement(ScoringConfigContainer, null, /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
55
+ variant: "h6"
78
56
  }, "Partial Scoring Rules"), /*#__PURE__*/_react["default"].createElement("br", null), /*#__PURE__*/_react["default"].createElement(_Typography["default"], null, textLabel), /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], {
79
57
  checked: checked,
80
58
  onChange: this.onCheckboxChanged,
@@ -82,24 +60,11 @@ var PartialScoringConfig = /*#__PURE__*/function (_React$Component) {
82
60
  }));
83
61
  }
84
62
  }]);
85
- return PartialScoringConfig;
86
63
  }(_react["default"].Component);
87
-
88
- exports.PartialScoringConfig = PartialScoringConfig;
89
64
  (0, _defineProperty2["default"])(PartialScoringConfig, "propTypes", {
90
65
  label: _propTypes["default"].string,
91
66
  partialScoring: _propTypes["default"].bool,
92
- classes: _propTypes["default"].object.isRequired,
93
67
  onChange: _propTypes["default"].func
94
68
  });
95
-
96
- var _default = (0, _styles.withStyles)(function (theme) {
97
- return {
98
- scoringConfig: {
99
- paddingTop: theme.spacing.unit
100
- }
101
- };
102
- })(PartialScoringConfig);
103
-
104
- exports["default"] = _default;
69
+ var _default = exports["default"] = PartialScoringConfig;
105
70
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.jsx"],"names":["PartialScoringConfig","props","checked","state","onChange","setState","partialScoring","classes","label","textLabel","scoringConfig","onCheckboxChanged","React","Component","PropTypes","string","bool","object","isRequired","func","theme","paddingTop","spacing","unit"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;IAEaA,oB;;;;;AAYX,gCAAYC,KAAZ,EAAmB;AAAA;;AAAA;AACjB,8BAAMA,KAAN;AADiB,8FAJX;AACNC,MAAAA,OAAO,EAAE;AADH,KAIW;AAAA,0GAQC,YAAM;AACxB,UAAMA,OAAO,GAAG,CAAC,MAAKC,KAAL,CAAWD,OAA5B;AACA,UAAQE,QAAR,GAAqB,MAAKH,KAA1B,CAAQG,QAAR;;AAEA,YAAKC,QAAL,CAAc;AACZH,QAAAA,OAAO,EAAPA;AADY,OAAd;;AAGAE,MAAAA,QAAQ,CAACF,OAAD,CAAR;AACD,KAhBkB;AAGjB,QAAQI,cAAR,GAA2BL,KAA3B,CAAQK,cAAR;AAEA,UAAKH,KAAL,CAAWD,OAAX,GAAqBI,cAArB;AALiB;AAMlB;;;;WAYD,kBAAS;AACP,wBAA2B,KAAKL,KAAhC;AAAA,UAAQM,OAAR,eAAQA,OAAR;AAAA,UAAiBC,KAAjB,eAAiBA,KAAjB;AACA,UAAQN,OAAR,GAAoB,KAAKC,KAAzB,CAAQD,OAAR;AACA,UAAMO,SAAS,GAAGD,KAAK,IAAI,wFAA3B;AAEA,0BACE;AAAK,QAAA,SAAS,EAAED,OAAO,CAACG;AAAxB,sBACE,gCAAC,sBAAD;AAAY,QAAA,IAAI,EAAC;AAAjB,iCADF,eAEE,2CAFF,eAGE,gCAAC,sBAAD,QAAaD,SAAb,CAHF,eAIE,gCAAC,oBAAD;AAAU,QAAA,OAAO,EAAEP,OAAnB;AAA4B,QAAA,QAAQ,EAAE,KAAKS,iBAA3C;AAA8D,QAAA,KAAK,EAAE;AAArE,QAJF,CADF;AAQD;;;EA3CuCC,kBAAMC,S;;;iCAAnCb,oB,eACQ;AACjBQ,EAAAA,KAAK,EAAEM,sBAAUC,MADA;AAEjBT,EAAAA,cAAc,EAAEQ,sBAAUE,IAFT;AAGjBT,EAAAA,OAAO,EAAEO,sBAAUG,MAAV,CAAiBC,UAHT;AAIjBd,EAAAA,QAAQ,EAAEU,sBAAUK;AAJH,C;;eA6CN,wBAAW,UAACC,KAAD;AAAA,SAAY;AACpCV,IAAAA,aAAa,EAAE;AACbW,MAAAA,UAAU,EAAED,KAAK,CAACE,OAAN,CAAcC;AADb;AADqB,GAAZ;AAAA,CAAX,EAIXvB,oBAJW,C","sourcesContent":["import React from 'react';\nimport Typography from '@material-ui/core/Typography';\nimport Checkbox from '@material-ui/core/Checkbox';\nimport { withStyles } from '@material-ui/core/styles';\nimport PropTypes from 'prop-types';\n\nexport class PartialScoringConfig extends React.Component {\n static propTypes = {\n label: PropTypes.string,\n partialScoring: PropTypes.bool,\n classes: PropTypes.object.isRequired,\n onChange: PropTypes.func,\n };\n\n state = {\n checked: false,\n };\n\n constructor(props) {\n super(props);\n\n const { partialScoring } = props;\n\n this.state.checked = partialScoring;\n }\n\n onCheckboxChanged = () => {\n const checked = !this.state.checked;\n const { onChange } = this.props;\n\n this.setState({\n checked,\n });\n onChange(checked);\n };\n\n render() {\n const { classes, label } = this.props;\n const { checked } = this.state;\n const textLabel = label || 'Each correct response is worth 1/X where X is the number of correct answer selections.';\n\n return (\n <div className={classes.scoringConfig}>\n <Typography type=\"subheading\">Partial Scoring Rules</Typography>\n <br />\n <Typography>{textLabel}</Typography>\n <Checkbox checked={checked} onChange={this.onCheckboxChanged} label={''} />\n </div>\n );\n }\n}\n\nexport default withStyles((theme) => ({\n scoringConfig: {\n paddingTop: theme.spacing.unit,\n },\n}))(PartialScoringConfig);\n"],"file":"index.js"}
1
+ {"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_Typography","_Checkbox","_styles","_propTypes","_callSuper","t","o","e","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","apply","Boolean","prototype","valueOf","call","ScoringConfigContainer","styled","_ref","theme","paddingTop","spacing","PartialScoringConfig","exports","_React$Component","props","_this","_classCallCheck2","_defineProperty2","checked","state","onChange","setState","partialScoring","_inherits2","_createClass2","key","value","render","label","textLabel","createElement","variant","onCheckboxChanged","React","Component","PropTypes","string","bool","func","_default"],"sources":["../src/index.jsx"],"sourcesContent":["import React from 'react';\nimport Typography from '@mui/material/Typography';\nimport Checkbox from '@mui/material/Checkbox';\nimport { styled } from '@mui/material/styles';\nimport PropTypes from 'prop-types';\n\nconst ScoringConfigContainer = styled('div')(({ theme }) => ({\n paddingTop: theme.spacing(1),\n}));\n\nexport class PartialScoringConfig extends React.Component {\n static propTypes = {\n label: PropTypes.string,\n partialScoring: PropTypes.bool,\n onChange: PropTypes.func,\n };\n\n state = {\n checked: false,\n };\n\n constructor(props) {\n super(props);\n\n const { partialScoring } = props;\n\n this.state.checked = partialScoring;\n }\n\n onCheckboxChanged = () => {\n const checked = !this.state.checked;\n const { onChange } = this.props;\n\n this.setState({\n checked,\n });\n onChange(checked);\n };\n\n render() {\n const { label } = this.props;\n const { checked } = this.state;\n const textLabel = label || 'Each correct response is worth 1/X where X is the number of correct answer selections.';\n\n return (\n <ScoringConfigContainer>\n <Typography variant=\"h6\">Partial Scoring Rules</Typography>\n <br />\n <Typography>{textLabel}</Typography>\n <Checkbox checked={checked} onChange={this.onCheckboxChanged} label={''} />\n </ScoringConfigContainer>\n );\n }\n}\n\nexport default PartialScoringConfig;\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pie-lib/scoring-config",
3
- "version": "3.26.3-next.2+9ae1017d",
3
+ "version": "3.26.3-next.208+14442f94",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "module": "src/index.jsx",
@@ -11,28 +11,20 @@
11
11
  "author": "",
12
12
  "license": "ISC",
13
13
  "dependencies": {
14
- "@material-ui/core": "^3.8.3",
15
- "@material-ui/icons": "^3.0.2",
16
- "@pie-lib/config-ui": "^11.30.3-next.2+9ae1017d",
17
- "classnames": "^2.2.6",
14
+ "@emotion/react": "^11.14.0",
15
+ "@emotion/style": "^0.8.0",
16
+ "@mui/icons-material": "^7.3.4",
17
+ "@mui/material": "^7.3.4",
18
18
  "debug": "^4.1.1",
19
19
  "lodash": "^4.17.11",
20
20
  "prop-types": "^15.7.2"
21
21
  },
22
22
  "peerDependencies": {
23
- "react": "^16.8.1"
23
+ "react": "^18.2.0"
24
24
  },
25
25
  "devDependencies": {
26
- "react": "^16.8.1",
27
- "react-dom": "^16.9.0"
26
+ "react": "^18.2.0",
27
+ "react-dom": "^18.2.0"
28
28
  },
29
- "gitHead": "9ae1017d80207591d7570de6d6153fa476f3b18b",
30
- "exports": {
31
- ".": {
32
- "require": "./lib/index.js",
33
- "import": "./src/index.jsx",
34
- "default": "./lib/index.js"
35
- },
36
- "./esm": "./esm/index.js"
37
- }
29
+ "gitHead": "14442f9403cc03107f383dc38850d86933c6ec26"
38
30
  }
@@ -1,11 +1,107 @@
1
1
  import React from 'react';
2
-
3
- import renderer from 'react-test-renderer';
2
+ import { render, screen } from '@testing-library/react';
3
+ import userEvent from '@testing-library/user-event';
4
+ import { ThemeProvider, createTheme } from '@mui/material/styles';
4
5
  import { PartialScoringConfig } from '../index';
5
6
 
6
- describe('index', () => {
7
- it('empty - renders snapshots', () => {
8
- const tree = renderer.create(<PartialScoringConfig classes={{}} />).toJSON();
9
- expect(tree).toMatchSnapshot();
7
+ describe('PartialScoringConfig', () => {
8
+ const theme = createTheme();
9
+
10
+ const renderComponent = (props = {}) => {
11
+ const defaultProps = {
12
+ classes: {},
13
+ partialScoring: false,
14
+ onChange: jest.fn(),
15
+ ...props,
16
+ };
17
+
18
+ return {
19
+ ...render(
20
+ <ThemeProvider theme={theme}>
21
+ <PartialScoringConfig {...defaultProps} />
22
+ </ThemeProvider>
23
+ ),
24
+ onChange: defaultProps.onChange,
25
+ };
26
+ };
27
+
28
+ describe('rendering', () => {
29
+ it('renders title and default description', () => {
30
+ renderComponent();
31
+
32
+ expect(screen.getByText('Partial Scoring Rules')).toBeInTheDocument();
33
+ expect(screen.getByText('Each correct response is worth 1/X where X is the number of correct answer selections.')).toBeInTheDocument();
34
+ });
35
+
36
+ it('renders checkbox', () => {
37
+ renderComponent();
38
+
39
+ const checkbox = screen.getByRole('checkbox');
40
+ expect(checkbox).toBeInTheDocument();
41
+ expect(checkbox).not.toBeChecked();
42
+ });
43
+
44
+ it('renders with custom label', () => {
45
+ const customLabel = 'Custom scoring label';
46
+ renderComponent({ label: customLabel });
47
+
48
+ expect(screen.getByText(customLabel)).toBeInTheDocument();
49
+ expect(screen.queryByText('Each correct response is worth 1/X where X is the number of correct answer selections.')).not.toBeInTheDocument();
50
+ });
51
+
52
+ it('renders checkbox as checked when partialScoring is true', () => {
53
+ renderComponent({ partialScoring: true });
54
+
55
+ const checkbox = screen.getByRole('checkbox');
56
+ expect(checkbox).toBeChecked();
57
+ });
58
+
59
+ it('renders checkbox as unchecked when partialScoring is false', () => {
60
+ renderComponent({ partialScoring: false });
61
+
62
+ const checkbox = screen.getByRole('checkbox');
63
+ expect(checkbox).not.toBeChecked();
64
+ });
65
+ });
66
+
67
+ describe('interactions', () => {
68
+ it('calls onChange with true when checkbox is clicked (initially unchecked)', async () => {
69
+ const user = userEvent.setup();
70
+ const { onChange } = renderComponent({ partialScoring: false });
71
+
72
+ const checkbox = screen.getByRole('checkbox');
73
+ await user.click(checkbox);
74
+
75
+ expect(onChange).toHaveBeenCalledWith(true);
76
+ expect(checkbox).toBeChecked();
77
+ });
78
+
79
+ it('calls onChange with false when checkbox is clicked (initially checked)', async () => {
80
+ const user = userEvent.setup();
81
+ const { onChange } = renderComponent({ partialScoring: true });
82
+
83
+ const checkbox = screen.getByRole('checkbox');
84
+ await user.click(checkbox);
85
+
86
+ expect(onChange).toHaveBeenCalledWith(false);
87
+ expect(checkbox).not.toBeChecked();
88
+ });
89
+
90
+ it('toggles checkbox state on multiple clicks', async () => {
91
+ const user = userEvent.setup();
92
+ const { onChange } = renderComponent({ partialScoring: false });
93
+
94
+ const checkbox = screen.getByRole('checkbox');
95
+
96
+ // First click: unchecked -> checked
97
+ await user.click(checkbox);
98
+ expect(onChange).toHaveBeenCalledWith(true);
99
+ expect(checkbox).toBeChecked();
100
+
101
+ // Second click: checked -> unchecked
102
+ await user.click(checkbox);
103
+ expect(onChange).toHaveBeenCalledWith(false);
104
+ expect(checkbox).not.toBeChecked();
105
+ });
10
106
  });
11
107
  });
package/src/index.jsx CHANGED
@@ -1,14 +1,17 @@
1
1
  import React from 'react';
2
- import Typography from '@material-ui/core/Typography';
3
- import Checkbox from '@material-ui/core/Checkbox';
4
- import { withStyles } from '@material-ui/core/styles';
2
+ import Typography from '@mui/material/Typography';
3
+ import Checkbox from '@mui/material/Checkbox';
4
+ import { styled } from '@mui/material/styles';
5
5
  import PropTypes from 'prop-types';
6
6
 
7
+ const ScoringConfigContainer = styled('div')(({ theme }) => ({
8
+ paddingTop: theme.spacing(1),
9
+ }));
10
+
7
11
  export class PartialScoringConfig extends React.Component {
8
12
  static propTypes = {
9
13
  label: PropTypes.string,
10
14
  partialScoring: PropTypes.bool,
11
- classes: PropTypes.object.isRequired,
12
15
  onChange: PropTypes.func,
13
16
  };
14
17
 
@@ -35,23 +38,19 @@ export class PartialScoringConfig extends React.Component {
35
38
  };
36
39
 
37
40
  render() {
38
- const { classes, label } = this.props;
41
+ const { label } = this.props;
39
42
  const { checked } = this.state;
40
43
  const textLabel = label || 'Each correct response is worth 1/X where X is the number of correct answer selections.';
41
44
 
42
45
  return (
43
- <div className={classes.scoringConfig}>
44
- <Typography type="subheading">Partial Scoring Rules</Typography>
46
+ <ScoringConfigContainer>
47
+ <Typography variant="h6">Partial Scoring Rules</Typography>
45
48
  <br />
46
49
  <Typography>{textLabel}</Typography>
47
50
  <Checkbox checked={checked} onChange={this.onCheckboxChanged} label={''} />
48
- </div>
51
+ </ScoringConfigContainer>
49
52
  );
50
53
  }
51
54
  }
52
55
 
53
- export default withStyles((theme) => ({
54
- scoringConfig: {
55
- paddingTop: theme.spacing.unit,
56
- },
57
- }))(PartialScoringConfig);
56
+ export default PartialScoringConfig;