@pie-element/rubric 6.3.4-next.3 → 7.0.0-beta.1

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 (56) hide show
  1. package/CHANGELOG.md +0 -11
  2. package/configure/CHANGELOG.md +0 -11
  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 +11 -7
  10. package/configure/src/__tests__/index.test.jsx +12 -2
  11. package/configure/src/index.js +12 -2
  12. package/configure/src/main.jsx +11 -13
  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 +182 -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 +8 -13
  25. package/src/__tests__/rubric-view.test.jsx +12 -24
  26. package/src/index.js +14 -3
  27. package/src/main.jsx +100 -93
  28. package/src/print.js +13 -2
  29. package/configure/lib/pie-toolbox-rubric/authoring.js +0 -573
  30. package/configure/lib/pie-toolbox-rubric/authoring.js.map +0 -1
  31. package/configure/lib/pie-toolbox-rubric/index.js +0 -24
  32. package/configure/lib/pie-toolbox-rubric/index.js.map +0 -1
  33. package/configure/lib/pie-toolbox-rubric/point-menu.js +0 -172
  34. package/configure/lib/pie-toolbox-rubric/point-menu.js.map +0 -1
  35. package/configure/src/pie-toolbox-rubric/authoring.jsx +0 -449
  36. package/configure/src/pie-toolbox-rubric/index.js +0 -9
  37. package/configure/src/pie-toolbox-rubric/point-menu.jsx +0 -94
  38. package/esm/configure.js +0 -34632
  39. package/esm/configure.js.map +0 -1
  40. package/esm/controller.js +0 -68
  41. package/esm/controller.js.map +0 -1
  42. package/esm/element.js +0 -12909
  43. package/esm/element.js.map +0 -1
  44. package/esm/package.json +0 -3
  45. package/esm/print.js +0 -13482
  46. package/esm/print.js.map +0 -1
  47. package/module/configure.js +0 -1
  48. package/module/controller.js +0 -113
  49. package/module/demo.js +0 -33
  50. package/module/element.js +0 -1
  51. package/module/index.html +0 -21
  52. package/module/manifest.json +0 -14
  53. package/module/print-demo.js +0 -71
  54. package/module/print.html +0 -18
  55. package/module/print.js +0 -1
  56. package/src/__tests__/__snapshots__/rubric-view.test.jsx.snap +0 -2521
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,208 @@
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
+ color: _renderUi.color.text(),
18
+ backgroundColor: _renderUi.color.background(),
19
+ // apply styles to tables to match the rest of the UI
20
+ '&:not(.MathJax) table': {
21
+ borderCollapse: 'collapse'
22
+ },
23
+ '&:not(.MathJax) table td, &:not(.MathJax) table th': {
24
+ padding: '8px 12px',
25
+ textAlign: 'left'
26
+ },
27
+ // reset paragraph margins and line-height inside lists to override client styles
28
+ '& ul p, & ol p': {
29
+ marginBottom: 0,
30
+ marginTop: 0,
31
+ lineHeight: 'normal'
32
+ }
47
33
  });
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) {
34
+ const StyledListItem = (0, _styles.styled)(_ListItem.default)({
35
+ display: 'flex',
36
+ flexDirection: 'column',
37
+ alignItems: 'flex-start',
38
+ padding: '12px 0px'
39
+ });
40
+ const Text = (0, _styles.styled)('div')({
41
+ color: _renderUi.color.text()
42
+ });
43
+ const TitleText = (0, _styles.styled)('h3')({
44
+ color: _renderUi.color.text(),
45
+ fontSize: '16px',
46
+ fontWeight: '700',
47
+ margin: 0,
48
+ paddingBottom: '6px'
49
+ });
50
+ const SampleTitleText = (0, _styles.styled)('h4')({
51
+ color: _renderUi.color.text(),
52
+ fontSize: '16px',
53
+ fontWeight: 'normal',
54
+ margin: 0,
55
+ paddingBottom: '6px'
56
+ });
57
+ const RubricToggle = (0, _styles.styled)('h2')(({
58
+ theme
59
+ }) => ({
60
+ display: 'flex',
61
+ alignItems: 'center',
62
+ cursor: 'pointer',
63
+ userSelect: 'none',
64
+ fontSize: theme.typography.fontSize,
65
+ fontWeight: '500',
66
+ color: _renderUi.color.tertiary(),
67
+ margin: 0
68
+ }));
69
+ const ChevronStyle = (0, _styles.styled)('span')({
70
+ display: 'inline-flex',
71
+ transition: 'transform 0.2s',
72
+ marginLeft: 2,
73
+ alignSelf: 'center'
74
+ });
75
+ const HiddenScreenReader = (0, _styles.styled)('h2')({
76
+ position: 'absolute',
77
+ width: '1px',
78
+ height: '1px',
79
+ padding: 0,
80
+ margin: '-1px',
81
+ overflow: 'hidden',
82
+ clip: 'rect(0,0,0,0)',
83
+ border: 0,
84
+ whiteSpace: 'nowrap'
85
+ });
86
+ const RubricType = exports.RubricType = _propTypes.default.shape({
87
+ excludeZero: _propTypes.default.bool,
88
+ points: _propTypes.default.arrayOf(_propTypes.default.string),
89
+ sampleAnswers: _propTypes.default.arrayOf(_propTypes.default.string),
90
+ animationsDisabled: _propTypes.default.bool
91
+ });
92
+ class Rubric extends _react.default.Component {
93
+ constructor(props) {
94
+ super(props);
95
+ (0, _defineProperty2.default)(this, "dudUrl", 'javascript:;');
96
+ (0, _defineProperty2.default)(this, "shouldRenderPoint", (index, value) => {
63
97
  if (!value.excludeZero) {
64
98
  return true;
65
99
  } else {
66
100
  return index !== 0;
67
101
  }
68
102
  });
69
- _this.state = {
103
+ this.state = {
70
104
  rubricOpen: false,
71
105
  linkPrefix: 'Show'
72
106
  };
73
- _this.toggleRubric = _this.toggleRubric.bind((0, _assertThisInitialized2["default"])(_this));
74
- return _this;
107
+ this.toggleRubric = this.toggleRubric.bind(this);
75
108
  }
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();
109
+ toggleRubric() {
110
+ this.setState({
111
+ rubricOpen: !this.state.rubricOpen
112
+ });
113
+ this.setState({
114
+ linkPrefix: this.state.rubricOpen ? 'Show' : 'Hide'
115
+ });
116
+ }
117
+ render() {
118
+ const {
119
+ model,
120
+ value
121
+ } = this.props;
122
+ let {
123
+ animationsDisabled
124
+ } = this.props;
125
+ animationsDisabled = animationsDisabled || value.animationsDisabled;
126
+ if (value && value.points) {
127
+ const {
128
+ extraCSSRules
129
+ } = model || {};
130
+ const {
131
+ points,
132
+ sampleAnswers
133
+ } = value;
134
+ const rubricList = /*#__PURE__*/_react.default.createElement(_List.default, {
135
+ component: "nav"
136
+ }, points.slice(0).reverse().map((desc, index) => {
137
+ index = points.length - index - 1;
138
+ const pointsLabel = value.excludeZero ? index + 1 : index;
139
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, {
140
+ key: index
141
+ }, /*#__PURE__*/_react.default.createElement(StyledListItem, {
142
+ key: `P${index}`
143
+ }, /*#__PURE__*/_react.default.createElement(TitleText, null, pointsLabel === 1 ? `${pointsLabel} PT` : `${pointsLabel} PTS`), /*#__PURE__*/_react.default.createElement(Text, {
144
+ dangerouslySetInnerHTML: {
145
+ __html: desc
153
146
  }
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
- }
147
+ })), sampleAnswers && sampleAnswers[index] && /*#__PURE__*/_react.default.createElement(StyledListItem, {
148
+ key: `S${index}`
149
+ }, /*#__PURE__*/_react.default.createElement(SampleTitleText, null, "Sample Answer"), /*#__PURE__*/_react.default.createElement(Text, {
150
+ dangerouslySetInnerHTML: {
151
+ __html: sampleAnswers[index]
152
+ }
153
+ })));
154
+ }));
155
+ return /*#__PURE__*/_react.default.createElement(StyledUiLayout, {
156
+ extraCSSRules: extraCSSRules
157
+ }, /*#__PURE__*/_react.default.createElement(HiddenScreenReader, null, "Rubric"), !animationsDisabled ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(RubricToggle, {
158
+ id: 'rubric-toggle',
159
+ tabIndex: 0,
160
+ role: "button",
161
+ "aria-expanded": this.state.rubricOpen,
162
+ onClick: this.toggleRubric,
163
+ onKeyPress: e => {
164
+ if (e.key === 'Enter' || e.key === ' ') this.toggleRubric();
165
+ }
166
+ }, this.state.linkPrefix, " Rubric", /*#__PURE__*/_react.default.createElement(ChevronStyle, {
167
+ "aria-hidden": "true"
168
+ }, this.state.rubricOpen ? /*#__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: "18 15 12 9 6 15"
179
+ })) : /*#__PURE__*/_react.default.createElement("svg", {
180
+ width: "20",
181
+ height: "20",
182
+ viewBox: "0 0 24 24",
183
+ fill: "none",
184
+ stroke: "currentColor",
185
+ strokeWidth: "2",
186
+ strokeLinecap: "round",
187
+ strokeLinejoin: "round"
188
+ }, /*#__PURE__*/_react.default.createElement("polyline", {
189
+ points: "6 9 12 15 18 9"
190
+ })))), /*#__PURE__*/_react.default.createElement(_Collapse.default, {
191
+ in: this.state.rubricOpen,
192
+ timeout: {
193
+ enter: 225,
194
+ exit: 195
195
+ }
196
+ }, rubricList)) : rubricList);
197
+ } else {
198
+ return null;
186
199
  }
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,
200
+ }
201
+ }
202
+ (0, _defineProperty2.default)(Rubric, "propTypes", {
203
+ model: _propTypes.default.object.isRequired,
204
+ animationsDisabled: _propTypes.default.bool,
195
205
  value: RubricType
196
206
  });
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;
207
+ var _default = exports.default = Rubric;
270
208
  //# sourceMappingURL=main.js.map