@pie-element/rubric 6.0.2-esm.0 → 6.2.0-mui-update.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.
Files changed (59) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/configure/CHANGELOG.md +19 -0
  3. package/configure/lib/defaults.js +2 -3
  4. package/configure/lib/defaults.js.map +1 -1
  5. package/configure/lib/index.js +90 -152
  6. package/configure/lib/index.js.map +1 -1
  7. package/configure/lib/main.js +90 -149
  8. package/configure/lib/main.js.map +1 -1
  9. package/configure/package.json +10 -7
  10. package/configure/src/index.js +12 -2
  11. package/configure/src/main.jsx +11 -13
  12. package/controller/CHANGELOG.md +16 -0
  13. package/controller/lib/defaults.js +2 -3
  14. package/controller/lib/defaults.js.map +1 -1
  15. package/controller/lib/index.js +15 -28
  16. package/controller/lib/index.js.map +1 -1
  17. package/controller/package.json +1 -1
  18. package/lib/index.js +38 -80
  19. package/lib/index.js.map +1 -1
  20. package/lib/main.js +184 -244
  21. package/lib/main.js.map +1 -1
  22. package/lib/print.js +41 -84
  23. package/lib/print.js.map +1 -1
  24. package/package.json +11 -25
  25. package/src/__tests__/__snapshots__/rubric-view.test.jsx.snap +2350 -1524
  26. package/src/index.js +14 -3
  27. package/src/main.jsx +100 -93
  28. package/src/print.js +13 -2
  29. package/LICENSE.md +0 -5
  30. package/configure/lib/pie-toolbox-rubric/authoring.js +0 -573
  31. package/configure/lib/pie-toolbox-rubric/authoring.js.map +0 -1
  32. package/configure/lib/pie-toolbox-rubric/index.js +0 -24
  33. package/configure/lib/pie-toolbox-rubric/index.js.map +0 -1
  34. package/configure/lib/pie-toolbox-rubric/point-menu.js +0 -172
  35. package/configure/lib/pie-toolbox-rubric/point-menu.js.map +0 -1
  36. package/configure/src/pie-toolbox-rubric/authoring.jsx +0 -449
  37. package/configure/src/pie-toolbox-rubric/index.js +0 -9
  38. package/configure/src/pie-toolbox-rubric/point-menu.jsx +0 -94
  39. package/esm/configure.css +0 -847
  40. package/esm/configure.js +0 -11976
  41. package/esm/configure.js.map +0 -1
  42. package/esm/controller.css +0 -847
  43. package/esm/controller.js +0 -68
  44. package/esm/controller.js.map +0 -1
  45. package/esm/element.css +0 -847
  46. package/esm/element.js +0 -263
  47. package/esm/element.js.map +0 -1
  48. package/esm/print.css +0 -847
  49. package/esm/print.js +0 -298
  50. package/esm/print.js.map +0 -1
  51. package/module/configure.js +0 -1
  52. package/module/controller.js +0 -113
  53. package/module/demo.js +0 -33
  54. package/module/element.js +0 -1
  55. package/module/index.html +0 -21
  56. package/module/manifest.json +0 -10
  57. package/module/print-demo.js +0 -71
  58. package/module/print.html +0 -18
  59. package/module/print.js +0 -1
package/lib/index.js CHANGED
@@ -1,94 +1,52 @@
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"] = void 0;
9
-
10
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
-
12
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
-
14
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
15
-
16
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
-
18
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
19
-
20
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
21
-
22
- var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper"));
23
-
7
+ exports.default = void 0;
24
8
  var _main = _interopRequireDefault(require("./main"));
25
-
26
9
  var _react = _interopRequireDefault(require("react"));
27
-
28
- var _reactDom = _interopRequireDefault(require("react-dom"));
29
-
10
+ var _client = require("react-dom/client");
30
11
  var _debug = _interopRequireDefault(require("debug"));
31
-
32
12
  var _mathRendering = require("@pie-lib/math-rendering");
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 RubricRender = /*#__PURE__*/function (_HTMLElement) {
39
- (0, _inherits2["default"])(RubricRender, _HTMLElement);
40
-
41
- var _super = _createSuper(RubricRender);
42
-
43
- function RubricRender() {
44
- var _this;
45
-
46
- (0, _classCallCheck2["default"])(this, RubricRender);
47
- _this = _super.call(this);
48
-
49
- _debug["default"].log('constructor called');
50
-
51
- _this.onModelChanged = _this.onModelChanged.bind((0, _assertThisInitialized2["default"])(_this));
52
- return _this;
13
+ class RubricRender extends HTMLElement {
14
+ constructor() {
15
+ super();
16
+ _debug.default.log('constructor called');
17
+ this.onModelChanged = this.onModelChanged.bind(this);
18
+ this._root = null;
53
19
  }
54
-
55
- (0, _createClass2["default"])(RubricRender, [{
56
- key: "model",
57
- set: function set(s) {
58
- this._model = s;
59
-
60
- this._render();
61
- }
62
- }, {
63
- key: "onModelChanged",
64
- value: function onModelChanged(m) {
65
- this._model = m;
66
-
67
- this._render();
68
- }
69
- }, {
70
- key: "connectedCallback",
71
- value: function connectedCallback() {
72
- this._render();
73
- }
74
- }, {
75
- key: "_render",
76
- value: function _render() {
77
- var _this2 = this;
78
-
79
- if (this._model) {
80
- var el = /*#__PURE__*/_react["default"].createElement(_main["default"], {
81
- value: this._model
82
- });
83
-
84
- _reactDom["default"].render(el, this, function () {
85
- (0, _mathRendering.renderMath)(_this2);
86
- });
20
+ set model(s) {
21
+ this._model = s;
22
+ this._render();
23
+ }
24
+ onModelChanged(m) {
25
+ this._model = m;
26
+ this._render();
27
+ }
28
+ connectedCallback() {
29
+ this._render();
30
+ }
31
+ _render() {
32
+ if (this._model) {
33
+ const el = /*#__PURE__*/_react.default.createElement(_main.default, {
34
+ value: this._model
35
+ });
36
+ if (!this._root) {
37
+ this._root = (0, _client.createRoot)(this);
87
38
  }
39
+ this._root.render(el);
40
+ queueMicrotask(() => {
41
+ (0, _mathRendering.renderMath)(this);
42
+ });
88
43
  }
89
- }]);
90
- return RubricRender;
91
- }( /*#__PURE__*/(0, _wrapNativeSuper2["default"])(HTMLElement));
92
-
93
- exports["default"] = RubricRender;
44
+ }
45
+ disconnectedCallback() {
46
+ if (this._root) {
47
+ this._root.unmount();
48
+ }
49
+ }
50
+ }
51
+ exports.default = RubricRender;
94
52
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.js"],"names":["RubricRender","debug","log","onModelChanged","bind","s","_model","_render","m","el","ReactDOM","render","HTMLElement"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;IAEqBA,Y;;;;;AACnB,0BAAc;AAAA;;AAAA;AACZ;;AACAC,sBAAMC,GAAN,CAAU,oBAAV;;AACA,UAAKC,cAAL,GAAsB,MAAKA,cAAL,CAAoBC,IAApB,gDAAtB;AAHY;AAIb;;;;SAED,aAAUC,CAAV,EAAa;AACX,WAAKC,MAAL,GAAcD,CAAd;;AACA,WAAKE,OAAL;AACD;;;WAED,wBAAeC,CAAf,EAAkB;AAChB,WAAKF,MAAL,GAAcE,CAAd;;AACA,WAAKD,OAAL;AACD;;;WAED,6BAAoB;AAClB,WAAKA,OAAL;AACD;;;WAED,mBAAU;AAAA;;AACR,UAAI,KAAKD,MAAT,EAAiB;AACf,YAAMG,EAAE,gBAAG,gCAAC,gBAAD;AAAQ,UAAA,KAAK,EAAE,KAAKH;AAApB,UAAX;;AAEAI,6BAASC,MAAT,CAAgBF,EAAhB,EAAoB,IAApB,EAA0B,YAAM;AAC9B,yCAAW,MAAX;AACD,SAFD;AAGD;AACF;;;kDA7BuCG,W","sourcesContent":["import Rubric from './main';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport debug from 'debug';\nimport { renderMath } from '@pie-lib/math-rendering';\n\nexport default class RubricRender extends HTMLElement {\n constructor() {\n super();\n debug.log('constructor called');\n this.onModelChanged = this.onModelChanged.bind(this);\n }\n\n set model(s) {\n this._model = s;\n this._render();\n }\n\n onModelChanged(m) {\n this._model = m;\n this._render();\n }\n\n connectedCallback() {\n this._render();\n }\n\n _render() {\n if (this._model) {\n const el = <Rubric value={this._model} />;\n\n ReactDOM.render(el, this, () => {\n renderMath(this);\n });\n }\n }\n}\n"],"file":"index.js"}
1
+ {"version":3,"file":"index.js","names":["_main","_interopRequireDefault","require","_react","_client","_debug","_mathRendering","RubricRender","HTMLElement","constructor","debug","log","onModelChanged","bind","_root","model","s","_model","_render","m","connectedCallback","el","React","createElement","Rubric","value","createRoot","render","queueMicrotask","renderMath","disconnectedCallback","unmount","exports","default"],"sources":["../src/index.js"],"sourcesContent":["import Rubric from './main';\nimport React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport debug from 'debug';\nimport { renderMath } from '@pie-lib/math-rendering';\n\nexport default class RubricRender extends HTMLElement {\n constructor() {\n super();\n debug.log('constructor called');\n this.onModelChanged = this.onModelChanged.bind(this);\n this._root = null;\n }\n\n set model(s) {\n this._model = s;\n this._render();\n }\n\n onModelChanged(m) {\n this._model = m;\n this._render();\n }\n\n connectedCallback() {\n this._render();\n }\n\n _render() {\n if (this._model) {\n const el = React.createElement(Rubric, { value: this._model });\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":";;;;;;;AAAA,IAAAA,KAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,MAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,cAAA,GAAAJ,OAAA;AAEe,MAAMK,YAAY,SAASC,WAAW,CAAC;EACpDC,WAAWA,CAAA,EAAG;IACZ,KAAK,CAAC,CAAC;IACPC,cAAK,CAACC,GAAG,CAAC,oBAAoB,CAAC;IAC/B,IAAI,CAACC,cAAc,GAAG,IAAI,CAACA,cAAc,CAACC,IAAI,CAAC,IAAI,CAAC;IACpD,IAAI,CAACC,KAAK,GAAG,IAAI;EACnB;EAEA,IAAIC,KAAKA,CAACC,CAAC,EAAE;IACX,IAAI,CAACC,MAAM,GAAGD,CAAC;IACf,IAAI,CAACE,OAAO,CAAC,CAAC;EAChB;EAEAN,cAAcA,CAACO,CAAC,EAAE;IAChB,IAAI,CAACF,MAAM,GAAGE,CAAC;IACf,IAAI,CAACD,OAAO,CAAC,CAAC;EAChB;EAEAE,iBAAiBA,CAAA,EAAG;IAClB,IAAI,CAACF,OAAO,CAAC,CAAC;EAChB;EAEAA,OAAOA,CAAA,EAAG;IACR,IAAI,IAAI,CAACD,MAAM,EAAE;MACf,MAAMI,EAAE,gBAAGC,cAAK,CAACC,aAAa,CAACC,aAAM,EAAE;QAAEC,KAAK,EAAE,IAAI,CAACR;MAAO,CAAC,CAAC;MAE9D,IAAI,CAAC,IAAI,CAACH,KAAK,EAAE;QACf,IAAI,CAACA,KAAK,GAAG,IAAAY,kBAAU,EAAC,IAAI,CAAC;MAC/B;MACA,IAAI,CAACZ,KAAK,CAACa,MAAM,CAACN,EAAE,CAAC;MACrBO,cAAc,CAAC,MAAM;QACnB,IAAAC,yBAAU,EAAC,IAAI,CAAC;MAClB,CAAC,CAAC;IACJ;EACF;EAEAC,oBAAoBA,CAAA,EAAG;IACrB,IAAI,IAAI,CAAChB,KAAK,EAAE;MACd,IAAI,CAACA,KAAK,CAACiB,OAAO,CAAC,CAAC;IACtB;EACF;AACF;AAACC,OAAA,CAAAC,OAAA,GAAA1B,YAAA","ignoreList":[]}
package/lib/main.js CHANGED
@@ -1,270 +1,210 @@
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.RubricType = 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.RubricType = void 0;
22
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
23
-
24
9
  var _react = _interopRequireDefault(require("react"));
25
-
26
- var _styles = require("@material-ui/core/styles");
27
-
28
- var _ListItem = _interopRequireDefault(require("@material-ui/core/ListItem"));
29
-
30
- var _List = _interopRequireDefault(require("@material-ui/core/List"));
31
-
32
- var _Collapse = _interopRequireDefault(require("@material-ui/core/Collapse"));
33
-
10
+ var _styles = require("@mui/material/styles");
11
+ var _ListItem = _interopRequireDefault(require("@mui/material/ListItem"));
12
+ var _List = _interopRequireDefault(require("@mui/material/List"));
13
+ var _Collapse = _interopRequireDefault(require("@mui/material/Collapse"));
34
14
  var _renderUi = require("@pie-lib/render-ui");
35
-
36
15
  var _propTypes = _interopRequireDefault(require("prop-types"));
37
-
38
- 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); }; }
39
-
40
- 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; } }
41
-
42
- var RubricType = _propTypes["default"].shape({
43
- excludeZero: _propTypes["default"].bool,
44
- points: _propTypes["default"].arrayOf(_propTypes["default"].string),
45
- sampleAnswers: _propTypes["default"].arrayOf(_propTypes["default"].string),
46
- animationsDisabled: _propTypes["default"].bool
16
+ const StyledUiLayout = (0, _styles.styled)(_renderUi.UiLayout)(({
17
+ theme
18
+ }) => ({
19
+ color: _renderUi.color.text(),
20
+ backgroundColor: _renderUi.color.background(),
21
+ // apply styles to tables to match the rest of the UI
22
+ '&:not(.MathJax) table': {
23
+ borderCollapse: 'collapse'
24
+ },
25
+ '&:not(.MathJax) table td, &:not(.MathJax) table th': {
26
+ padding: '8px 12px',
27
+ textAlign: 'left'
28
+ },
29
+ // reset paragraph margins and line-height inside lists to override client styles
30
+ '& ul p, & ol p': {
31
+ marginBottom: 0,
32
+ marginTop: 0,
33
+ lineHeight: 'normal'
34
+ }
35
+ }));
36
+ const StyledListItem = (0, _styles.styled)(_ListItem.default)({
37
+ display: 'flex',
38
+ flexDirection: 'column',
39
+ alignItems: 'flex-start',
40
+ padding: '12px 0px'
47
41
  });
48
-
49
- exports.RubricType = RubricType;
50
-
51
- var Rubric = /*#__PURE__*/function (_React$Component) {
52
- (0, _inherits2["default"])(Rubric, _React$Component);
53
-
54
- var _super = _createSuper(Rubric);
55
-
56
- function Rubric(props) {
57
- var _this;
58
-
59
- (0, _classCallCheck2["default"])(this, Rubric);
60
- _this = _super.call(this, props);
61
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "dudUrl", 'javascript:;');
62
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "shouldRenderPoint", function (index, value) {
42
+ const Text = (0, _styles.styled)('div')({
43
+ color: _renderUi.color.text()
44
+ });
45
+ const TitleText = (0, _styles.styled)('h3')({
46
+ color: _renderUi.color.text(),
47
+ fontSize: '16px',
48
+ fontWeight: '700',
49
+ margin: 0,
50
+ paddingBottom: '6px'
51
+ });
52
+ const SampleTitleText = (0, _styles.styled)('h4')({
53
+ color: _renderUi.color.text(),
54
+ fontSize: '16px',
55
+ fontWeight: 'normal',
56
+ margin: 0,
57
+ paddingBottom: '6px'
58
+ });
59
+ const RubricToggle = (0, _styles.styled)('h2')(({
60
+ theme
61
+ }) => ({
62
+ display: 'flex',
63
+ alignItems: 'center',
64
+ cursor: 'pointer',
65
+ userSelect: 'none',
66
+ fontSize: theme.typography.fontSize,
67
+ fontWeight: '500',
68
+ color: _renderUi.color.tertiary(),
69
+ margin: 0
70
+ }));
71
+ const ChevronStyle = (0, _styles.styled)('span')({
72
+ display: 'inline-flex',
73
+ transition: 'transform 0.2s',
74
+ marginLeft: 2,
75
+ alignSelf: 'center'
76
+ });
77
+ const HiddenScreenReader = (0, _styles.styled)('h2')({
78
+ position: 'absolute',
79
+ width: '1px',
80
+ height: '1px',
81
+ padding: 0,
82
+ margin: '-1px',
83
+ overflow: 'hidden',
84
+ clip: 'rect(0,0,0,0)',
85
+ border: 0,
86
+ whiteSpace: 'nowrap'
87
+ });
88
+ const RubricType = exports.RubricType = _propTypes.default.shape({
89
+ excludeZero: _propTypes.default.bool,
90
+ points: _propTypes.default.arrayOf(_propTypes.default.string),
91
+ sampleAnswers: _propTypes.default.arrayOf(_propTypes.default.string),
92
+ animationsDisabled: _propTypes.default.bool
93
+ });
94
+ class Rubric extends _react.default.Component {
95
+ constructor(props) {
96
+ super(props);
97
+ (0, _defineProperty2.default)(this, "dudUrl", 'javascript:;');
98
+ (0, _defineProperty2.default)(this, "shouldRenderPoint", (index, value) => {
63
99
  if (!value.excludeZero) {
64
100
  return true;
65
101
  } else {
66
102
  return index !== 0;
67
103
  }
68
104
  });
69
- _this.state = {
105
+ this.state = {
70
106
  rubricOpen: false,
71
107
  linkPrefix: 'Show'
72
108
  };
73
- _this.toggleRubric = _this.toggleRubric.bind((0, _assertThisInitialized2["default"])(_this));
74
- return _this;
109
+ this.toggleRubric = this.toggleRubric.bind(this);
75
110
  }
76
-
77
- (0, _createClass2["default"])(Rubric, [{
78
- key: "toggleRubric",
79
- value: function toggleRubric() {
80
- this.setState({
81
- rubricOpen: !this.state.rubricOpen
82
- });
83
- this.setState({
84
- linkPrefix: this.state.rubricOpen ? 'Show' : 'Hide'
85
- });
86
- }
87
- }, {
88
- key: "render",
89
- value: function render() {
90
- var _this2 = this;
91
-
92
- var _this$props = this.props,
93
- model = _this$props.model,
94
- value = _this$props.value,
95
- classes = _this$props.classes;
96
- var animationsDisabled = this.props.animationsDisabled;
97
- animationsDisabled = animationsDisabled || value.animationsDisabled;
98
-
99
- if (value && value.points) {
100
- var _ref = model || {},
101
- extraCSSRules = _ref.extraCSSRules;
102
-
103
- var points = value.points,
104
- sampleAnswers = value.sampleAnswers;
105
-
106
- var rubricList = /*#__PURE__*/_react["default"].createElement(_List["default"], {
107
- component: "nav"
108
- }, points.slice(0).reverse().map(function (desc, index) {
109
- index = points.length - index - 1;
110
- var pointsLabel = value.excludeZero ? index + 1 : index;
111
- return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, {
112
- key: index
113
- }, /*#__PURE__*/_react["default"].createElement(_ListItem["default"], {
114
- key: "P".concat(index),
115
- className: classes.listColumn
116
- }, /*#__PURE__*/_react["default"].createElement("h3", {
117
- className: classes.titleText
118
- }, pointsLabel === 1 ? "".concat(pointsLabel, " PT") : "".concat(pointsLabel, " PTS")), /*#__PURE__*/_react["default"].createElement("div", {
119
- className: classes.text,
120
- dangerouslySetInnerHTML: {
121
- __html: desc
122
- }
123
- })), sampleAnswers && sampleAnswers[index] && /*#__PURE__*/_react["default"].createElement(_ListItem["default"], {
124
- key: "S".concat(index),
125
- className: classes.listColumn
126
- }, /*#__PURE__*/_react["default"].createElement("h4", {
127
- className: classes.titleText,
128
- style: {
129
- fontWeight: 'normal'
130
- }
131
- }, "Sample Answer"), /*#__PURE__*/_react["default"].createElement("div", {
132
- className: classes.text,
133
- dangerouslySetInnerHTML: {
134
- __html: sampleAnswers[index]
135
- }
136
- })));
137
- }));
138
-
139
- return /*#__PURE__*/_react["default"].createElement(_renderUi.UiLayout, {
140
- extraCSSRules: extraCSSRules,
141
- className: classes.root
142
- }, /*#__PURE__*/_react["default"].createElement("h2", {
143
- className: classes.hiddenScreenReader
144
- }, "Rubric"), !animationsDisabled ? /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("h2", {
145
- id: 'rubric-toggle',
146
- className: classes.rubricToggle,
147
- tabIndex: 0,
148
- role: "button",
149
- "aria-expanded": this.state.rubricOpen,
150
- onClick: this.toggleRubric,
151
- onKeyPress: function onKeyPress(e) {
152
- if (e.key === 'Enter' || e.key === ' ') _this2.toggleRubric();
111
+ toggleRubric() {
112
+ this.setState({
113
+ rubricOpen: !this.state.rubricOpen
114
+ });
115
+ this.setState({
116
+ linkPrefix: this.state.rubricOpen ? 'Show' : 'Hide'
117
+ });
118
+ }
119
+ render() {
120
+ const {
121
+ model,
122
+ value
123
+ } = this.props;
124
+ let {
125
+ animationsDisabled
126
+ } = this.props;
127
+ animationsDisabled = animationsDisabled || value.animationsDisabled;
128
+ if (value && value.points) {
129
+ const {
130
+ extraCSSRules
131
+ } = model || {};
132
+ const {
133
+ points,
134
+ sampleAnswers
135
+ } = value;
136
+ const rubricList = /*#__PURE__*/_react.default.createElement(_List.default, {
137
+ component: "nav"
138
+ }, points.slice(0).reverse().map((desc, index) => {
139
+ index = points.length - index - 1;
140
+ const pointsLabel = value.excludeZero ? index + 1 : index;
141
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, {
142
+ key: index
143
+ }, /*#__PURE__*/_react.default.createElement(StyledListItem, {
144
+ key: `P${index}`
145
+ }, /*#__PURE__*/_react.default.createElement(TitleText, null, pointsLabel === 1 ? `${pointsLabel} PT` : `${pointsLabel} PTS`), /*#__PURE__*/_react.default.createElement(Text, {
146
+ dangerouslySetInnerHTML: {
147
+ __html: desc
153
148
  }
154
- }, this.state.linkPrefix, " Rubric", /*#__PURE__*/_react["default"].createElement("span", {
155
- className: classes.chevronStyle,
156
- "aria-hidden": "true"
157
- }, this.state.rubricOpen ? /*#__PURE__*/_react["default"].createElement("svg", {
158
- width: "20",
159
- height: "20",
160
- viewBox: "0 0 24 24",
161
- fill: "none",
162
- stroke: "currentColor",
163
- strokeWidth: "2",
164
- strokeLinecap: "round",
165
- strokeLinejoin: "round"
166
- }, /*#__PURE__*/_react["default"].createElement("polyline", {
167
- points: "18 15 12 9 6 15"
168
- })) : /*#__PURE__*/_react["default"].createElement("svg", {
169
- width: "20",
170
- height: "20",
171
- viewBox: "0 0 24 24",
172
- fill: "none",
173
- stroke: "currentColor",
174
- strokeWidth: "2",
175
- strokeLinecap: "round",
176
- strokeLinejoin: "round"
177
- }, /*#__PURE__*/_react["default"].createElement("polyline", {
178
- points: "6 9 12 15 18 9"
179
- })))), /*#__PURE__*/_react["default"].createElement(_Collapse["default"], {
180
- "in": this.state.rubricOpen,
181
- timeout: "auto"
182
- }, rubricList)) : rubricList);
183
- } else {
184
- return null;
185
- }
149
+ })), sampleAnswers && sampleAnswers[index] && /*#__PURE__*/_react.default.createElement(StyledListItem, {
150
+ key: `S${index}`
151
+ }, /*#__PURE__*/_react.default.createElement(SampleTitleText, null, "Sample Answer"), /*#__PURE__*/_react.default.createElement(Text, {
152
+ dangerouslySetInnerHTML: {
153
+ __html: sampleAnswers[index]
154
+ }
155
+ })));
156
+ }));
157
+ return /*#__PURE__*/_react.default.createElement(StyledUiLayout, {
158
+ extraCSSRules: extraCSSRules
159
+ }, /*#__PURE__*/_react.default.createElement(HiddenScreenReader, null, "Rubric"), !animationsDisabled ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(RubricToggle, {
160
+ id: 'rubric-toggle',
161
+ tabIndex: 0,
162
+ role: "button",
163
+ "aria-expanded": this.state.rubricOpen,
164
+ onClick: this.toggleRubric,
165
+ onKeyPress: e => {
166
+ if (e.key === 'Enter' || e.key === ' ') this.toggleRubric();
167
+ }
168
+ }, this.state.linkPrefix, " Rubric", /*#__PURE__*/_react.default.createElement(ChevronStyle, {
169
+ "aria-hidden": "true"
170
+ }, this.state.rubricOpen ? /*#__PURE__*/_react.default.createElement("svg", {
171
+ width: "20",
172
+ height: "20",
173
+ viewBox: "0 0 24 24",
174
+ fill: "none",
175
+ stroke: "currentColor",
176
+ strokeWidth: "2",
177
+ strokeLinecap: "round",
178
+ strokeLinejoin: "round"
179
+ }, /*#__PURE__*/_react.default.createElement("polyline", {
180
+ points: "18 15 12 9 6 15"
181
+ })) : /*#__PURE__*/_react.default.createElement("svg", {
182
+ width: "20",
183
+ height: "20",
184
+ viewBox: "0 0 24 24",
185
+ fill: "none",
186
+ stroke: "currentColor",
187
+ strokeWidth: "2",
188
+ strokeLinecap: "round",
189
+ strokeLinejoin: "round"
190
+ }, /*#__PURE__*/_react.default.createElement("polyline", {
191
+ points: "6 9 12 15 18 9"
192
+ })))), /*#__PURE__*/_react.default.createElement(_Collapse.default, {
193
+ in: this.state.rubricOpen,
194
+ timeout: {
195
+ enter: 225,
196
+ exit: 195
197
+ }
198
+ }, rubricList)) : rubricList);
199
+ } else {
200
+ return null;
186
201
  }
187
- }]);
188
- return Rubric;
189
- }(_react["default"].Component);
190
-
191
- (0, _defineProperty2["default"])(Rubric, "propTypes", {
192
- classes: _propTypes["default"].object.isRequired,
193
- model: _propTypes["default"].object.isRequired,
194
- animationsDisabled: _propTypes["default"].bool,
202
+ }
203
+ }
204
+ (0, _defineProperty2.default)(Rubric, "propTypes", {
205
+ model: _propTypes.default.object.isRequired,
206
+ animationsDisabled: _propTypes.default.bool,
195
207
  value: RubricType
196
208
  });
197
-
198
- var styles = function styles(theme) {
199
- return {
200
- root: {
201
- color: _renderUi.color.text(),
202
- backgroundColor: _renderUi.color.background(),
203
- // apply styles to tables to match the rest of the UI
204
- '&:not(.MathJax) table': {
205
- borderCollapse: 'collapse'
206
- },
207
- '&:not(.MathJax) table td, &:not(.MathJax) table th': {
208
- padding: '8px 12px',
209
- textAlign: 'left'
210
- },
211
- // reset paragraph margins and line-height inside lists to override client styles
212
- '& ul p, & ol p': {
213
- marginBottom: 0,
214
- marginTop: 0,
215
- lineHeight: 'normal'
216
- }
217
- },
218
- listColumn: {
219
- display: 'flex',
220
- flexDirection: 'column',
221
- alignItems: 'flex-start',
222
- padding: '12px 0px'
223
- },
224
- listColumnItem: {
225
- padding: 0
226
- },
227
- text: {
228
- color: _renderUi.color.text()
229
- },
230
- titleText: {
231
- color: _renderUi.color.text(),
232
- fontSize: '16px',
233
- fontWeight: '700',
234
- margin: 0,
235
- paddingBottom: '6px'
236
- },
237
- rubricToggle: {
238
- display: 'flex',
239
- alignItems: 'center',
240
- cursor: 'pointer',
241
- userSelect: 'none',
242
- fontSize: theme.typography.fontSize,
243
- fontWeight: '500',
244
- color: _renderUi.color.tertiary(),
245
- margin: 0
246
- },
247
- chevronStyle: {
248
- display: 'inline-flex',
249
- transition: 'transform 0.2s',
250
- marginLeft: 2,
251
- alignSelf: 'center'
252
- },
253
- hiddenScreenReader: {
254
- position: 'absolute',
255
- width: '1px',
256
- height: '1px',
257
- padding: 0,
258
- margin: '-1px',
259
- overflow: 'hidden',
260
- clip: 'rect(0,0,0,0)',
261
- border: 0,
262
- whiteSpace: 'nowrap'
263
- }
264
- };
265
- };
266
-
267
- var _default = (0, _styles.withStyles)(styles)(Rubric);
268
-
269
- exports["default"] = _default;
209
+ var _default = exports.default = Rubric;
270
210
  //# sourceMappingURL=main.js.map