@pie-element/explicit-constructed-response 3.7.19-next.85 → 3.8.1-beta.587

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 (38) hide show
  1. package/CHANGELOG.md +541 -0
  2. package/configure/CHANGELOG.md +482 -0
  3. package/configure/lib/alternateResponses.js +45 -12
  4. package/configure/lib/alternateResponses.js.map +1 -1
  5. package/configure/lib/alternateSection.js +116 -19
  6. package/configure/lib/alternateSection.js.map +1 -1
  7. package/configure/lib/defaults.js +35 -0
  8. package/configure/lib/defaults.js.map +1 -1
  9. package/configure/lib/ecr-toolbar.js +35 -19
  10. package/configure/lib/ecr-toolbar.js.map +1 -1
  11. package/configure/lib/index.js +17 -3
  12. package/configure/lib/index.js.map +1 -1
  13. package/configure/lib/main.js +291 -58
  14. package/configure/lib/main.js.map +1 -1
  15. package/configure/lib/markupUtils.js +29 -3
  16. package/configure/lib/markupUtils.js.map +1 -1
  17. package/configure/lib/utils.js +15 -0
  18. package/configure/lib/utils.js.map +1 -0
  19. package/configure/package.json +23 -5
  20. package/controller/CHANGELOG.md +107 -0
  21. package/controller/lib/defaults.js +1 -0
  22. package/controller/lib/defaults.js.map +1 -1
  23. package/controller/lib/index.js +109 -6
  24. package/controller/lib/index.js.map +1 -1
  25. package/controller/package.json +2 -2
  26. package/docs/config-schema.json +137 -0
  27. package/docs/config-schema.json.md +105 -1
  28. package/docs/demo/config.js +2 -2
  29. package/docs/demo/generate.js +6 -2
  30. package/docs/pie-schema.json +68 -0
  31. package/docs/pie-schema.json.md +53 -0
  32. package/lib/index.js +8 -1
  33. package/lib/index.js.map +1 -1
  34. package/lib/main.js +95 -25
  35. package/lib/main.js.map +1 -1
  36. package/lib/print.js +115 -0
  37. package/lib/print.js.map +1 -0
  38. package/package.json +14 -8
package/lib/main.js CHANGED
@@ -31,6 +31,8 @@ var _debounce = _interopRequireDefault(require("lodash/debounce"));
31
31
 
32
32
  var _isEmpty = _interopRequireDefault(require("lodash/isEmpty"));
33
33
 
34
+ var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
35
+
34
36
  var _correctAnswerToggle = _interopRequireDefault(require("@pie-lib/correct-answer-toggle"));
35
37
 
36
38
  var _maskMarkup = require("@pie-lib/mask-markup");
@@ -39,9 +41,11 @@ var _renderUi = require("@pie-lib/render-ui");
39
41
 
40
42
  var _styles = require("@material-ui/core/styles");
41
43
 
44
+ var _classnames = _interopRequireDefault(require("classnames"));
45
+
42
46
  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); }; }
43
47
 
44
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
48
+ 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; } }
45
49
 
46
50
  var Main = /*#__PURE__*/function (_React$Component) {
47
51
  (0, _inherits2["default"])(Main, _React$Component);
@@ -59,15 +63,22 @@ var Main = /*#__PURE__*/function (_React$Component) {
59
63
 
60
64
  _this = _super.call.apply(_super, [this].concat(args));
61
65
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "state", {
62
- showCorrectAnswer: false,
66
+ showCorrectAnswer: _this.props.alwaysShowCorrect || false,
63
67
  value: _this.props.value
64
68
  });
69
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "getChangeSession", function (maxLengthPerChoice) {
70
+ return maxLengthPerChoice && maxLengthPerChoice.every(function (val, i, arr) {
71
+ return val === arr[0] && val === 1;
72
+ }) ? _this.props.onChange : (0, _debounce["default"])(_this.props.onChange, 1500, {
73
+ maxWait: 1500
74
+ });
75
+ });
65
76
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "toggleShowCorrect", function () {
66
77
  _this.setState({
67
78
  showCorrectAnswer: !_this.state.showCorrectAnswer
68
79
  });
69
80
  });
70
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeSession", (0, _debounce["default"])(_this.props.onChange, 1500));
81
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeSession", _this.getChangeSession(_this.props.maxLengthPerChoice));
71
82
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onChange", function (value) {
72
83
  _this.setState({
73
84
  value: value
@@ -81,11 +92,23 @@ var Main = /*#__PURE__*/function (_React$Component) {
81
92
  (0, _createClass2["default"])(Main, [{
82
93
  key: "UNSAFE_componentWillReceiveProps",
83
94
  value: function UNSAFE_componentWillReceiveProps(nextProps) {
95
+ var maxLengthPerChoice = this.props.maxLengthPerChoice;
96
+
84
97
  if ((0, _isEmpty["default"])(nextProps.feedback)) {
85
98
  this.setState({
86
99
  showCorrectAnswer: false
87
100
  });
88
101
  }
102
+
103
+ if (nextProps.alwaysShowCorrect) {
104
+ this.setState({
105
+ showCorrectAnswer: true
106
+ });
107
+ }
108
+
109
+ if (maxLengthPerChoice && !(0, _isEqual["default"])(maxLengthPerChoice, nextProps.maxLengthPerChoice)) {
110
+ this.changeSession = this.getChangeSession(nextProps.maxLengthPerChoice);
111
+ }
89
112
  }
90
113
  }, {
91
114
  key: "render",
@@ -98,44 +121,70 @@ var Main = /*#__PURE__*/function (_React$Component) {
98
121
  mode = _this$props.mode,
99
122
  prompt = _this$props.prompt,
100
123
  rationale = _this$props.rationale,
101
- teacherInstructions = _this$props.teacherInstructions;
124
+ teacherInstructions = _this$props.teacherInstructions,
125
+ note = _this$props.note,
126
+ showNote = _this$props.showNote,
127
+ env = _this$props.env,
128
+ animationsDisabled = _this$props.animationsDisabled,
129
+ alwaysShowCorrect = _this$props.alwaysShowCorrect,
130
+ maxLengthPerChoice = _this$props.maxLengthPerChoice,
131
+ maxLengthPerChoiceEnabled = _this$props.maxLengthPerChoiceEnabled,
132
+ displayType = _this$props.displayType,
133
+ playerSpellCheckEnabled = _this$props.playerSpellCheckEnabled;
134
+
135
+ var _ref = env || {},
136
+ role = _ref.role;
137
+
138
+ var displayNote = (showCorrectAnswer || mode === 'view' && role === 'instructor') && showNote && note;
139
+ var mainClasses = (0, _classnames["default"])([classes.mainContainer, (0, _defineProperty2["default"])({}, classes.noBorderColor, alwaysShowCorrect)]);
140
+
141
+ var teacherInstructionsDiv = /*#__PURE__*/_react["default"].createElement(_renderUi.PreviewPrompt, {
142
+ defaultClassName: "teacher-instructions",
143
+ prompt: teacherInstructions
144
+ });
145
+
146
+ var rationaleDiv = /*#__PURE__*/_react["default"].createElement(_renderUi.PreviewPrompt, {
147
+ prompt: rationale
148
+ });
149
+
102
150
  return /*#__PURE__*/_react["default"].createElement("div", {
103
- className: classes.mainContainer
151
+ className: mainClasses,
152
+ style: {
153
+ display: "".concat(displayType)
154
+ }
104
155
  }, teacherInstructions && (0, _renderUi.hasText)(teacherInstructions) && /*#__PURE__*/_react["default"].createElement("div", {
105
156
  className: classes.collapsible
106
- }, /*#__PURE__*/_react["default"].createElement(_renderUi.Collapsible, {
157
+ }, !animationsDisabled ? /*#__PURE__*/_react["default"].createElement(_renderUi.Collapsible, {
107
158
  labels: {
108
159
  hidden: 'Show Teacher Instructions',
109
160
  visible: 'Hide Teacher Instructions'
110
161
  }
111
- }, /*#__PURE__*/_react["default"].createElement("div", {
112
- dangerouslySetInnerHTML: {
113
- __html: teacherInstructions
114
- }
115
- }))), /*#__PURE__*/_react["default"].createElement(_correctAnswerToggle["default"], {
162
+ }, teacherInstructionsDiv) : teacherInstructionsDiv), !alwaysShowCorrect && /*#__PURE__*/_react["default"].createElement(_correctAnswerToggle["default"], {
116
163
  show: mode === 'evaluate',
117
164
  toggled: showCorrectAnswer,
118
165
  onToggle: this.toggleShowCorrect
119
- }), prompt && /*#__PURE__*/_react["default"].createElement("div", {
166
+ }), prompt && /*#__PURE__*/_react["default"].createElement(_renderUi.PreviewPrompt, {
167
+ prompt: prompt
168
+ }), /*#__PURE__*/_react["default"].createElement(_maskMarkup.ConstructedResponse, (0, _extends2["default"])({}, this.props, {
169
+ onChange: this.onChange,
170
+ showCorrectAnswer: showCorrectAnswer,
171
+ value: value,
172
+ maxLength: maxLengthPerChoice,
173
+ adjustedLimit: maxLengthPerChoiceEnabled,
174
+ spellCheck: playerSpellCheckEnabled
175
+ })), displayNote && /*#__PURE__*/_react["default"].createElement("div", {
176
+ className: (0, _classnames["default"])(classes.note, 'note'),
120
177
  dangerouslySetInnerHTML: {
121
- __html: prompt
178
+ __html: "<strong>Note:</strong> ".concat(note)
122
179
  }
123
180
  }), rationale && (0, _renderUi.hasText)(rationale) && /*#__PURE__*/_react["default"].createElement("div", {
124
181
  className: classes.collapsible
125
- }, /*#__PURE__*/_react["default"].createElement(_renderUi.Collapsible, {
182
+ }, !animationsDisabled ? /*#__PURE__*/_react["default"].createElement(_renderUi.Collapsible, {
126
183
  labels: {
127
184
  hidden: 'Show Rationale',
128
185
  visible: 'Hide Rationale'
129
186
  }
130
- }, /*#__PURE__*/_react["default"].createElement("div", {
131
- dangerouslySetInnerHTML: {
132
- __html: rationale
133
- }
134
- }))), /*#__PURE__*/_react["default"].createElement(_maskMarkup.ConstructedResponse, (0, _extends2["default"])({}, this.props, {
135
- onChange: this.onChange,
136
- showCorrectAnswer: showCorrectAnswer,
137
- value: value
138
- })));
187
+ }, rationaleDiv) : rationaleDiv));
139
188
  }
140
189
  }]);
141
190
  return Main;
@@ -145,6 +194,9 @@ exports.Main = Main;
145
194
  (0, _defineProperty2["default"])(Main, "propTypes", {
146
195
  classes: _propTypes["default"].object.isRequired,
147
196
  prompt: _propTypes["default"].string,
197
+ note: _propTypes["default"].string,
198
+ showNote: _propTypes["default"].bool,
199
+ env: _propTypes["default"].object,
148
200
  rationale: _propTypes["default"].string,
149
201
  disabled: _propTypes["default"].bool,
150
202
  markup: _propTypes["default"].string,
@@ -152,7 +204,11 @@ exports.Main = Main;
152
204
  teacherInstructions: _propTypes["default"].string,
153
205
  value: _propTypes["default"].object,
154
206
  feedback: _propTypes["default"].object,
155
- onChange: _propTypes["default"].func
207
+ onChange: _propTypes["default"].func,
208
+ alwaysShowCorrect: _propTypes["default"].bool,
209
+ animationsDisabled: _propTypes["default"].bool,
210
+ maxLengthPerChoice: _propTypes["default"].array,
211
+ playerSpellCheckEnabled: _propTypes["default"].bool
156
212
  });
157
213
  (0, _defineProperty2["default"])(Main, "defaultProps", {
158
214
  value: {}
@@ -165,8 +221,22 @@ var styles = function styles(theme) {
165
221
  color: _renderUi.color.text(),
166
222
  backgroundColor: _renderUi.color.background()
167
223
  },
224
+ inlineDisplay: {
225
+ display: 'inline-block'
226
+ },
227
+ blockDisplay: {
228
+ display: 'block'
229
+ },
230
+ note: {
231
+ padding: '5px 0'
232
+ },
168
233
  collapsible: {
169
- margin: "".concat(theme.spacing.unit * 2, " 0")
234
+ margin: "".concat(theme.spacing.unit * 2, "px 0")
235
+ },
236
+ noBorderColor: {
237
+ '& *': {
238
+ borderColor: "".concat(_renderUi.color.text(), " !important")
239
+ }
170
240
  }
171
241
  };
172
242
  };
package/lib/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/main.js"],"names":["Main","showCorrectAnswer","value","props","setState","state","onChange","changeSession","nextProps","feedback","classes","mode","prompt","rationale","teacherInstructions","mainContainer","collapsible","hidden","visible","__html","toggleShowCorrect","React","Component","PropTypes","object","isRequired","string","disabled","bool","markup","func","styles","theme","padding","spacing","unit","color","text","backgroundColor","background","margin"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport debounce from 'lodash/debounce';\nimport isEmpty from 'lodash/isEmpty';\nimport CorrectAnswerToggle from '@pie-lib/correct-answer-toggle';\nimport { ConstructedResponse } from '@pie-lib/mask-markup';\nimport { color, Collapsible, hasText } from '@pie-lib/render-ui';\nimport { withStyles } from '@material-ui/core/styles';\n\nexport class Main extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n prompt: PropTypes.string,\n rationale: PropTypes.string,\n disabled: PropTypes.bool,\n markup: PropTypes.string,\n mode: PropTypes.string,\n teacherInstructions: PropTypes.string,\n value: PropTypes.object,\n feedback: PropTypes.object,\n onChange: PropTypes.func\n };\n\n static defaultProps = {\n value: {}\n };\n\n state = {\n showCorrectAnswer: false,\n value: this.props.value\n };\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n if (isEmpty(nextProps.feedback)) {\n this.setState({ showCorrectAnswer: false });\n }\n }\n\n toggleShowCorrect = () => {\n this.setState({ showCorrectAnswer: !this.state.showCorrectAnswer });\n };\n\n changeSession = debounce(this.props.onChange, 1500);\n\n onChange = value => {\n this.setState({ value });\n\n this.changeSession(value);\n };\n\n render() {\n const { showCorrectAnswer, value } = this.state;\n const { classes, mode, prompt, rationale, teacherInstructions } = this.props;\n\n return (\n <div className={classes.mainContainer}>\n {\n teacherInstructions && hasText(teacherInstructions) && (\n <div className={classes.collapsible}>\n <Collapsible\n labels={{ hidden: 'Show Teacher Instructions', visible: 'Hide Teacher Instructions' }}\n >\n <div dangerouslySetInnerHTML={{ __html: teacherInstructions }}/>\n </Collapsible>\n </div>\n )\n }\n <CorrectAnswerToggle\n show={mode === 'evaluate'}\n toggled={showCorrectAnswer}\n onToggle={this.toggleShowCorrect}\n />\n {prompt && <div dangerouslySetInnerHTML={{ __html: prompt }}/>}\n {\n rationale && hasText(rationale) && (\n <div className={classes.collapsible}>\n <Collapsible\n labels={{ hidden: 'Show Rationale', visible: 'Hide Rationale' }}\n >\n <div dangerouslySetInnerHTML={{ __html: rationale }}/>\n </Collapsible>\n </div>\n )\n }\n <ConstructedResponse\n {...this.props}\n onChange={this.onChange}\n showCorrectAnswer={showCorrectAnswer}\n value={value}\n />\n </div>\n );\n }\n}\n\nconst styles = theme => ({\n mainContainer: {\n padding: theme.spacing.unit,\n color: color.text(),\n backgroundColor: color.background()\n },\n collapsible: {\n margin: `${theme.spacing.unit * 2} 0`,\n }\n});\n\nexport default withStyles(styles)(Main);\n"],"file":"main.js"}
1
+ {"version":3,"sources":["../src/main.js"],"names":["Main","showCorrectAnswer","props","alwaysShowCorrect","value","maxLengthPerChoice","every","val","i","arr","onChange","maxWait","setState","state","getChangeSession","changeSession","nextProps","feedback","classes","mode","prompt","rationale","teacherInstructions","note","showNote","env","animationsDisabled","maxLengthPerChoiceEnabled","displayType","playerSpellCheckEnabled","role","displayNote","mainClasses","mainContainer","noBorderColor","teacherInstructionsDiv","rationaleDiv","display","collapsible","hidden","visible","toggleShowCorrect","__html","React","Component","PropTypes","object","isRequired","string","bool","disabled","markup","func","array","styles","theme","padding","spacing","unit","color","text","backgroundColor","background","inlineDisplay","blockDisplay","margin","borderColor"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport debounce from 'lodash/debounce';\nimport isEmpty from 'lodash/isEmpty';\nimport isEqual from 'lodash/isEqual';\nimport CorrectAnswerToggle from '@pie-lib/correct-answer-toggle';\nimport { ConstructedResponse } from '@pie-lib/mask-markup';\nimport { color, Collapsible, hasText, PreviewPrompt } from '@pie-lib/render-ui';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\n\nexport class Main extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n prompt: PropTypes.string,\n note: PropTypes.string,\n showNote: PropTypes.bool,\n env: PropTypes.object,\n rationale: PropTypes.string,\n disabled: PropTypes.bool,\n markup: PropTypes.string,\n mode: PropTypes.string,\n teacherInstructions: PropTypes.string,\n value: PropTypes.object,\n feedback: PropTypes.object,\n onChange: PropTypes.func,\n alwaysShowCorrect: PropTypes.bool,\n animationsDisabled: PropTypes.bool,\n maxLengthPerChoice: PropTypes.array,\n playerSpellCheckEnabled: PropTypes.bool,\n };\n\n static defaultProps = {\n value: {},\n };\n\n state = {\n showCorrectAnswer: this.props.alwaysShowCorrect || false,\n value: this.props.value,\n };\n\n // if for all responses max length is 1, call onChange for each keystroke\n getChangeSession = (maxLengthPerChoice) =>\n maxLengthPerChoice && maxLengthPerChoice.every((val, i, arr) => val === arr[0] && val === 1)\n ? this.props.onChange\n : debounce(this.props.onChange, 1500, { maxWait: 1500 });\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n const { maxLengthPerChoice } = this.props;\n\n if (isEmpty(nextProps.feedback)) {\n this.setState({ showCorrectAnswer: false });\n }\n\n if (nextProps.alwaysShowCorrect) {\n this.setState({ showCorrectAnswer: true });\n }\n\n if (maxLengthPerChoice && !isEqual(maxLengthPerChoice, nextProps.maxLengthPerChoice)) {\n this.changeSession = this.getChangeSession(nextProps.maxLengthPerChoice);\n }\n }\n\n toggleShowCorrect = () => {\n this.setState({ showCorrectAnswer: !this.state.showCorrectAnswer });\n };\n\n changeSession = this.getChangeSession(this.props.maxLengthPerChoice);\n\n onChange = (value) => {\n this.setState({ value });\n\n this.changeSession(value);\n };\n\n render() {\n const { showCorrectAnswer, value } = this.state;\n const {\n classes,\n mode,\n prompt,\n rationale,\n teacherInstructions,\n note,\n showNote,\n env,\n animationsDisabled,\n alwaysShowCorrect,\n maxLengthPerChoice,\n maxLengthPerChoiceEnabled,\n displayType,\n playerSpellCheckEnabled,\n } = this.props;\n\n const { role } = env || {};\n const displayNote = (showCorrectAnswer || (mode === 'view' && role === 'instructor')) && showNote && note;\n const mainClasses = classNames([\n classes.mainContainer,\n {\n [classes.noBorderColor]: alwaysShowCorrect,\n },\n ]);\n\n const teacherInstructionsDiv = (\n <PreviewPrompt defaultClassName=\"teacher-instructions\" prompt={teacherInstructions} />\n );\n\n const rationaleDiv = <PreviewPrompt prompt={rationale} />;\n\n return (\n <div className={mainClasses} style={{ display: `${displayType}` }}>\n {teacherInstructions && hasText(teacherInstructions) && (\n <div className={classes.collapsible}>\n {!animationsDisabled ? (\n <Collapsible labels={{ hidden: 'Show Teacher Instructions', visible: 'Hide Teacher Instructions' }}>\n {teacherInstructionsDiv}\n </Collapsible>\n ) : (\n teacherInstructionsDiv\n )}\n </div>\n )}\n {!alwaysShowCorrect && (\n <CorrectAnswerToggle\n show={mode === 'evaluate'}\n toggled={showCorrectAnswer}\n onToggle={this.toggleShowCorrect}\n />\n )}\n {prompt && <PreviewPrompt prompt={prompt} />}\n <ConstructedResponse\n {...this.props}\n onChange={this.onChange}\n showCorrectAnswer={showCorrectAnswer}\n value={value}\n maxLength={maxLengthPerChoice}\n adjustedLimit={maxLengthPerChoiceEnabled}\n spellCheck={playerSpellCheckEnabled}\n />\n {displayNote && (\n <div\n className={classNames(classes.note, 'note')}\n dangerouslySetInnerHTML={{ __html: `<strong>Note:</strong> ${note}` }}\n />\n )}\n {rationale && hasText(rationale) && (\n <div className={classes.collapsible}>\n {!animationsDisabled ? (\n <Collapsible labels={{ hidden: 'Show Rationale', visible: 'Hide Rationale' }}>{rationaleDiv}</Collapsible>\n ) : (\n rationaleDiv\n )}\n </div>\n )}\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n mainContainer: {\n padding: theme.spacing.unit,\n color: color.text(),\n backgroundColor: color.background(),\n },\n inlineDisplay: {\n display: 'inline-block',\n },\n blockDisplay: {\n display: 'block',\n },\n note: {\n padding: '5px 0',\n },\n collapsible: {\n margin: `${theme.spacing.unit * 2}px 0`,\n },\n noBorderColor: {\n '& *': {\n borderColor: `${color.text()} !important`,\n },\n },\n});\n\nexport default withStyles(styles)(Main);\n"],"file":"main.js"}
package/lib/print.js ADDED
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+
12
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
+
14
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
+
16
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
17
+
18
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
19
+
20
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
21
+
22
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
23
+
24
+ var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper"));
25
+
26
+ var _react = _interopRequireDefault(require("react"));
27
+
28
+ var _reactDom = _interopRequireDefault(require("react-dom"));
29
+
30
+ var _debounce = _interopRequireDefault(require("lodash/debounce"));
31
+
32
+ var _main = _interopRequireDefault(require("./main"));
33
+
34
+ var _mathRendering = require("@pie-lib/math-rendering");
35
+
36
+ var _debug = _interopRequireDefault(require("debug"));
37
+
38
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
39
+
40
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
41
+
42
+ 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); }; }
43
+
44
+ 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; } }
45
+
46
+ var log = (0, _debug["default"])('pie-element:explicit-constructed-response:print');
47
+
48
+ var preparePrintModel = function preparePrintModel(model, opts) {
49
+ var instr = opts.role === 'instructor';
50
+ model.prompt = model.promptEnabled !== false ? model.prompt : undefined;
51
+ model.teacherInstructions = instr && model.teacherInstructionsEnabled !== false ? model.teacherInstructions : undefined;
52
+ model.rationale = instr && model.rationaleEnabled !== false ? model.rationale : undefined;
53
+ model.alwaysShowCorrect = instr;
54
+ model.mode = instr ? 'evaluate' : model.mode;
55
+ model.disabled = true;
56
+ model.animationsDisabled = true;
57
+ return model;
58
+ };
59
+
60
+ var ExplicitConstructedResponsePrint = /*#__PURE__*/function (_HTMLElement) {
61
+ (0, _inherits2["default"])(ExplicitConstructedResponsePrint, _HTMLElement);
62
+
63
+ var _super = _createSuper(ExplicitConstructedResponsePrint);
64
+
65
+ function ExplicitConstructedResponsePrint() {
66
+ var _this;
67
+
68
+ (0, _classCallCheck2["default"])(this, ExplicitConstructedResponsePrint);
69
+ _this = _super.call(this);
70
+ _this._options = null;
71
+ _this._model = null;
72
+ _this._session = [];
73
+ _this._rerender = (0, _debounce["default"])(function () {
74
+ if (_this._model && _this._session) {
75
+ var printModel = preparePrintModel(_this._model, _this._options);
76
+
77
+ var element = _this._options && /*#__PURE__*/_react["default"].createElement(_main["default"], _objectSpread(_objectSpread({}, printModel), {}, {
78
+ onChange: function onChange() {}
79
+ }));
80
+
81
+ _reactDom["default"].render(element, (0, _assertThisInitialized2["default"])(_this), function () {
82
+ log('render complete - render math');
83
+ (0, _mathRendering.renderMath)((0, _assertThisInitialized2["default"])(_this));
84
+ });
85
+ } else {
86
+ log('skip');
87
+ }
88
+ }, 50, {
89
+ leading: false,
90
+ trailing: true
91
+ });
92
+ return _this;
93
+ }
94
+
95
+ (0, _createClass2["default"])(ExplicitConstructedResponsePrint, [{
96
+ key: "options",
97
+ set: function set(o) {
98
+ this._options = o;
99
+ }
100
+ }, {
101
+ key: "model",
102
+ set: function set(s) {
103
+ this._model = s;
104
+
105
+ this._rerender();
106
+ }
107
+ }, {
108
+ key: "connectedCallback",
109
+ value: function connectedCallback() {}
110
+ }]);
111
+ return ExplicitConstructedResponsePrint;
112
+ }( /*#__PURE__*/(0, _wrapNativeSuper2["default"])(HTMLElement));
113
+
114
+ exports["default"] = ExplicitConstructedResponsePrint;
115
+ //# sourceMappingURL=print.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/print.js"],"names":["log","preparePrintModel","model","opts","instr","role","prompt","promptEnabled","undefined","teacherInstructions","teacherInstructionsEnabled","rationale","rationaleEnabled","alwaysShowCorrect","mode","disabled","animationsDisabled","ExplicitConstructedResponsePrint","_options","_model","_session","_rerender","printModel","element","React","createElement","Main","onChange","ReactDOM","render","leading","trailing","o","s","HTMLElement"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;AAEA,IAAMA,GAAG,GAAG,uBAAM,iDAAN,CAAZ;;AAEA,IAAMC,iBAAiB,GAAG,SAApBA,iBAAoB,CAACC,KAAD,EAAQC,IAAR,EAAiB;AACzC,MAAMC,KAAK,GAAGD,IAAI,CAACE,IAAL,KAAc,YAA5B;AAEAH,EAAAA,KAAK,CAACI,MAAN,GAAeJ,KAAK,CAACK,aAAN,KAAwB,KAAxB,GAAgCL,KAAK,CAACI,MAAtC,GAA+CE,SAA9D;AACAN,EAAAA,KAAK,CAACO,mBAAN,GACEL,KAAK,IAAIF,KAAK,CAACQ,0BAAN,KAAqC,KAA9C,GAAsDR,KAAK,CAACO,mBAA5D,GAAkFD,SADpF;AAEAN,EAAAA,KAAK,CAACS,SAAN,GAAkBP,KAAK,IAAIF,KAAK,CAACU,gBAAN,KAA2B,KAApC,GAA4CV,KAAK,CAACS,SAAlD,GAA8DH,SAAhF;AAEAN,EAAAA,KAAK,CAACW,iBAAN,GAA0BT,KAA1B;AACAF,EAAAA,KAAK,CAACY,IAAN,GAAaV,KAAK,GAAG,UAAH,GAAgBF,KAAK,CAACY,IAAxC;AAEAZ,EAAAA,KAAK,CAACa,QAAN,GAAiB,IAAjB;AACAb,EAAAA,KAAK,CAACc,kBAAN,GAA2B,IAA3B;AAEA,SAAOd,KAAP;AACD,CAfD;;IAiBqBe,gC;;;;;AACnB,8CAAc;AAAA;;AAAA;AACZ;AACA,UAAKC,QAAL,GAAgB,IAAhB;AACA,UAAKC,MAAL,GAAc,IAAd;AACA,UAAKC,QAAL,GAAgB,EAAhB;AACA,UAAKC,SAAL,GAAiB,0BACf,YAAM;AACJ,UAAI,MAAKF,MAAL,IAAe,MAAKC,QAAxB,EAAkC;AAChC,YAAME,UAAU,GAAGrB,iBAAiB,CAAC,MAAKkB,MAAN,EAAc,MAAKD,QAAnB,CAApC;;AAEA,YAAMK,OAAO,GACX,MAAKL,QAAL,iBACAM,kBAAMC,aAAN,CAAoBC,gBAApB,kCACKJ,UADL;AAEEK,UAAAA,QAAQ,EAAE,oBAAM,CAAE;AAFpB,WAFF;;AAOAC,6BAASC,MAAT,CAAgBN,OAAhB,kDAA+B,YAAM;AACnCvB,UAAAA,GAAG,CAAC,+BAAD,CAAH;AACA;AACD,SAHD;AAID,OAdD,MAcO;AACLA,QAAAA,GAAG,CAAC,MAAD,CAAH;AACD;AACF,KAnBc,EAoBf,EApBe,EAqBf;AAAE8B,MAAAA,OAAO,EAAE,KAAX;AAAkBC,MAAAA,QAAQ,EAAE;AAA5B,KArBe,CAAjB;AALY;AA4Bb;;;;SACD,aAAYC,CAAZ,EAAe;AACb,WAAKd,QAAL,GAAgBc,CAAhB;AACD;;;SAED,aAAUC,CAAV,EAAa;AACX,WAAKd,MAAL,GAAcc,CAAd;;AACA,WAAKZ,SAAL;AACD;;;WAED,6BAAoB,CAAE;;;kDAvCsCa,W","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport debounce from 'lodash/debounce';\nimport Main from './main';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport debug from 'debug';\n\nconst log = debug('pie-element:explicit-constructed-response:print');\n\nconst preparePrintModel = (model, opts) => {\n const instr = opts.role === 'instructor';\n\n model.prompt = model.promptEnabled !== false ? model.prompt : undefined;\n model.teacherInstructions =\n instr && model.teacherInstructionsEnabled !== false ? model.teacherInstructions : undefined;\n model.rationale = instr && model.rationaleEnabled !== false ? model.rationale : undefined;\n\n model.alwaysShowCorrect = instr;\n model.mode = instr ? 'evaluate' : model.mode;\n\n model.disabled = true;\n model.animationsDisabled = true;\n\n return model;\n};\n\nexport default class ExplicitConstructedResponsePrint extends HTMLElement {\n constructor() {\n super();\n this._options = null;\n this._model = null;\n this._session = [];\n this._rerender = debounce(\n () => {\n if (this._model && this._session) {\n const printModel = preparePrintModel(this._model, this._options);\n\n const element =\n this._options &&\n React.createElement(Main, {\n ...printModel,\n onChange: () => {},\n });\n\n ReactDOM.render(element, this, () => {\n log('render complete - render math');\n renderMath(this);\n });\n } else {\n log('skip');\n }\n },\n 50,\n { leading: false, trailing: true },\n );\n }\n set options(o) {\n this._options = o;\n }\n\n set model(s) {\n this._model = s;\n this._rerender();\n }\n\n connectedCallback() {}\n}\n"],"file":"print.js"}
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "access": "public"
5
5
  },
6
6
  "repository": "pie-framework/pie-elements",
7
- "version": "3.7.19-next.85+12b9093e",
7
+ "version": "3.8.1-beta.587+40df32c2f",
8
8
  "description": "",
9
9
  "scripts": {
10
10
  "test": "echo \"Error: no test specified\" && exit 1",
@@ -13,19 +13,25 @@
13
13
  "dependencies": {
14
14
  "@material-ui/core": "^3.9.2",
15
15
  "@pie-framework/pie-player-events": "^0.1.0",
16
- "@pie-lib/correct-answer-toggle": "^2.3.23",
17
- "@pie-lib/mask-markup": "^1.10.14",
18
- "@pie-lib/math-rendering": "^2.3.6",
19
- "@pie-lib/render-ui": "^4.11.5",
16
+ "@pie-lib/correct-answer-toggle": "^2.3.62",
17
+ "@pie-lib/mask-markup": "2.0.0-beta.1",
18
+ "@pie-lib/math-rendering": "^2.5.12",
19
+ "@pie-lib/render-ui": "^4.14.12",
20
20
  "classnames": "^2.2.5",
21
+ "is-plain-object": "^5.0.0",
21
22
  "lodash": "^4.17.10",
22
23
  "prop-types": "^15.6.1",
23
24
  "react": "^16.8.1",
24
- "react-dom": "^16.8.1"
25
+ "react-dom": "^16.8.1",
26
+ "slate-react": "0.92.0"
25
27
  },
26
28
  "author": "",
27
29
  "license": "ISC",
28
- "gitHead": "12b9093ed1230b8025537bd2ca24fc5996311a3d",
30
+ "gitHead": "40df32c2f78966706cb168843567c9df174f1d88",
29
31
  "main": "lib/index.js",
30
- "module": "src/index.js"
32
+ "module": "src/index.js",
33
+ "exports": {
34
+ ".": "./src/index.js",
35
+ "./print": "./src/print.js"
36
+ }
31
37
  }