@pie-element/select-text 6.5.24 → 6.5.26-next.2

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 (41) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/configure/CHANGELOG.md +16 -0
  3. package/configure/lib/__tests__/design.test.js +219 -0
  4. package/configure/lib/defaultConfiguration.js +6 -1
  5. package/configure/lib/defaultConfiguration.js.map +1 -1
  6. package/configure/lib/design.js +15 -7
  7. package/configure/lib/design.js.map +1 -1
  8. package/configure/lib/index.js +3 -3
  9. package/configure/lib/utils.js +3 -3
  10. package/configure/package.json +5 -5
  11. package/controller/CHANGELOG.md +8 -0
  12. package/controller/lib/__tests__/index.test.js +833 -0
  13. package/controller/lib/defaults.js +1 -1
  14. package/controller/lib/index.js +7 -5
  15. package/controller/lib/index.js.map +1 -1
  16. package/controller/package.json +2 -2
  17. package/docs/config-schema.json +16 -0
  18. package/docs/config-schema.json.md +12 -0
  19. package/docs/demo/generate.js +61 -61
  20. package/docs/demo/pie.manifest.json +11 -0
  21. package/docs/pie-schema.json +6 -0
  22. package/docs/pie-schema.json.md +4 -0
  23. package/lib/__tests__/index.test.js +91 -0
  24. package/lib/__tests__/main.test.js +83 -0
  25. package/lib/index.js +6 -3
  26. package/lib/index.js.map +1 -1
  27. package/lib/main.js +3 -3
  28. package/lib/print.js +3 -2
  29. package/lib/print.js.map +1 -1
  30. package/lib/utils.js +3 -3
  31. package/package.json +6 -6
  32. package/LICENSE.md +0 -5
  33. package/module/configure.js +0 -2727
  34. package/module/controller.js +0 -19141
  35. package/module/demo.js +0 -287
  36. package/module/element.js +0 -2518
  37. package/module/index.html +0 -21
  38. package/module/manifest.json +0 -14
  39. package/module/print-demo.js +0 -325
  40. package/module/print.html +0 -18
  41. package/module/print.js +0 -2480
package/CHANGELOG.md CHANGED
@@ -3,6 +3,22 @@
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
+ ## [6.5.26](https://github.com/pie-framework/pie-elements/compare/@pie-element/select-text@6.5.25...@pie-element/select-text@6.5.26) (2022-03-28)
7
+
8
+ **Note:** Version bump only for package @pie-element/select-text
9
+
10
+
11
+
12
+
13
+
14
+ ## [6.5.25](https://github.com/pie-framework/pie-elements/compare/@pie-element/select-text@6.5.24...@pie-element/select-text@6.5.25) (2022-03-22)
15
+
16
+ **Note:** Version bump only for package @pie-element/select-text
17
+
18
+
19
+
20
+
21
+
6
22
  ## [6.5.24](https://github.com/pie-framework/pie-elements/compare/@pie-element/select-text@6.5.23...@pie-element/select-text@6.5.24) (2022-03-08)
7
23
 
8
24
  **Note:** Version bump only for package @pie-element/select-text
@@ -3,6 +3,22 @@
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
+ ## [5.2.22](https://github.com/pie-framework/pie-elements/compare/@pie-element/select-text-configure@5.2.21...@pie-element/select-text-configure@5.2.22) (2022-03-28)
7
+
8
+ **Note:** Version bump only for package @pie-element/select-text-configure
9
+
10
+
11
+
12
+
13
+
14
+ ## [5.2.21](https://github.com/pie-framework/pie-elements/compare/@pie-element/select-text-configure@5.2.20...@pie-element/select-text-configure@5.2.21) (2022-03-22)
15
+
16
+ **Note:** Version bump only for package @pie-element/select-text-configure
17
+
18
+
19
+
20
+
21
+
6
22
  ## [5.2.20](https://github.com/pie-framework/pie-elements/compare/@pie-element/select-text-configure@5.2.19...@pie-element/select-text-configure@5.2.20) (2022-03-08)
7
23
 
8
24
  **Note:** Version bump only for package @pie-element/select-text-configure
@@ -0,0 +1,219 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
6
+
7
+ var _enzyme = require("enzyme");
8
+
9
+ var _react = _interopRequireDefault(require("react"));
10
+
11
+ var _design = require("../design");
12
+
13
+ var _defaultConfiguration = _interopRequireDefault(require("../defaultConfiguration"));
14
+
15
+ 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; }
16
+
17
+ 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; }
18
+
19
+ jest.mock('@pie-lib/config-ui', function () {
20
+ return {
21
+ layout: {
22
+ ConfigLayout: function ConfigLayout(props) {
23
+ return /*#__PURE__*/_react["default"].createElement("div", null, props.children);
24
+ }
25
+ },
26
+ settings: {
27
+ Panel: function Panel(props) {
28
+ return /*#__PURE__*/_react["default"].createElement("div", {
29
+ oChangeModel: props.onChange
30
+ });
31
+ },
32
+ toggle: jest.fn(),
33
+ radio: jest.fn()
34
+ }
35
+ };
36
+ });
37
+ jest.mock('lodash/debounce', function () {
38
+ return function (fn) {
39
+ return fn;
40
+ };
41
+ });
42
+ describe('design', function () {
43
+ var w;
44
+ var onChange;
45
+ var onPromptChanged;
46
+ var onRationaleChanged;
47
+
48
+ var getModel = function getModel() {
49
+ return {
50
+ tokens: []
51
+ };
52
+ };
53
+
54
+ beforeEach(function () {
55
+ onChange = jest.fn();
56
+ onPromptChanged = jest.fn();
57
+ onRationaleChanged = jest.fn();
58
+ w = (0, _enzyme.shallow)( /*#__PURE__*/_react["default"].createElement(_design.Design, {
59
+ model: getModel(),
60
+ configuration: _defaultConfiguration["default"].configuration,
61
+ classes: {},
62
+ className: 'foo',
63
+ onModelChanged: onChange,
64
+ onPromptChanged: onPromptChanged,
65
+ onRationaleChanged: onRationaleChanged
66
+ }));
67
+ });
68
+ describe('snapshot', function () {
69
+ it('renders all items with defaultProps', function () {
70
+ expect(w).toMatchSnapshot();
71
+ });
72
+ it('tokenizer renders with html entities', function () {
73
+ expect((0, _enzyme.shallow)( /*#__PURE__*/_react["default"].createElement(_design.Design, {
74
+ model: {
75
+ text: '<p>&#8220;Lucy?&#63; Are you using your time wisely to plan your project?&#33;&#33;&#33;&#8221; Mr. Wilson asked.</p><p>Lucy looked a little confused at first. &#195; Then she grinned and proudly stated, &#8220;Why, yes I am! I plan to make a bird feeder for that tree out our window!&#8221;</p>',
76
+ tokens: []
77
+ },
78
+ configuration: _defaultConfiguration["default"].configuration,
79
+ classes: {},
80
+ className: 'foo',
81
+ onModelChanged: onChange,
82
+ onPromptChanged: onPromptChanged,
83
+ onRationaleChanged: onRationaleChanged
84
+ }))).toMatchSnapshot();
85
+ });
86
+ it('renders all items except feedback', function () {
87
+ var defaultConfiguration = _defaultConfiguration["default"].configuration;
88
+ defaultConfiguration.feedback.settings = false;
89
+ var wrapper = (0, _enzyme.shallow)( /*#__PURE__*/_react["default"].createElement(_design.Design, {
90
+ model: getModel(),
91
+ configuration: defaultConfiguration,
92
+ classes: {},
93
+ className: 'foo',
94
+ onModelChanged: onChange,
95
+ onPromptChanged: onPromptChanged,
96
+ onRationaleChanged: onRationaleChanged
97
+ }));
98
+ expect(wrapper).toMatchSnapshot();
99
+ });
100
+ it('renders all items except the content input', function () {
101
+ var defaultConfiguration = _defaultConfiguration["default"].configuration;
102
+ defaultConfiguration.text.settings = false;
103
+ var wrapper = (0, _enzyme.shallow)( /*#__PURE__*/_react["default"].createElement(_design.Design, {
104
+ model: getModel(),
105
+ configuration: defaultConfiguration,
106
+ classes: {},
107
+ className: 'foo',
108
+ onModelChanged: onChange,
109
+ onPromptChanged: onPromptChanged,
110
+ onRationaleChanged: onRationaleChanged
111
+ }));
112
+ expect(wrapper).toMatchSnapshot();
113
+ });
114
+ });
115
+ describe('logic', function () {
116
+ var assert = function assert(fn, args, expected) {
117
+ var e = expected(getModel());
118
+ it("".concat(fn, " ").concat(JSON.stringify(args), " => ").concat(JSON.stringify(e)), function () {
119
+ var instance = w.instance();
120
+ instance[fn].apply(instance, args); //jest.runAllTimers();
121
+
122
+ expect(onChange).toBeCalledWith(e);
123
+ });
124
+ };
125
+
126
+ describe('changeText', function () {
127
+ assert('changeText', [{
128
+ target: {
129
+ value: 'foo'
130
+ }
131
+ }], function (m) {
132
+ return _objectSpread(_objectSpread({}, m), {}, {
133
+ text: 'foo'
134
+ });
135
+ });
136
+ });
137
+ describe('changeTokens', function () {
138
+ assert('changeTokens', [[{
139
+ start: 0,
140
+ end: 1,
141
+ text: 'f'
142
+ }], 'words'], function (m) {
143
+ return _objectSpread(_objectSpread({}, m), {}, {
144
+ maxSelections: 0,
145
+ tokens: [{
146
+ start: 0,
147
+ end: 1,
148
+ text: 'f'
149
+ }],
150
+ mode: 'words'
151
+ });
152
+ });
153
+ assert('changeTokens', [[{
154
+ start: 0,
155
+ end: 8,
156
+ text: 'Foo bar.',
157
+ correct: true
158
+ }], 'sentences'], function (m) {
159
+ return _objectSpread(_objectSpread({}, m), {}, {
160
+ maxSelections: 1,
161
+ tokens: [{
162
+ start: 0,
163
+ end: 8,
164
+ text: 'Foo bar.',
165
+ correct: true
166
+ }],
167
+ mode: 'sentences'
168
+ });
169
+ });
170
+ });
171
+ describe('changeMaxSelections', function () {
172
+ assert('changeMaxSelections', [{}, 4], function (m) {
173
+ return _objectSpread(_objectSpread({}, m), {}, {
174
+ maxSelections: 4
175
+ });
176
+ });
177
+ });
178
+ describe('changeFeedback', function () {
179
+ assert('changeFeedback', [{
180
+ correctFeedbackType: 'none'
181
+ }], function (m) {
182
+ return _objectSpread(_objectSpread({}, m), {}, {
183
+ feedback: {
184
+ correctFeedbackType: 'none'
185
+ }
186
+ });
187
+ });
188
+ });
189
+ describe('changePartialScoring', function () {
190
+ assert('changePartialScoring', [true], function (m) {
191
+ return _objectSpread(_objectSpread({}, m), {}, {
192
+ partialScoring: true
193
+ });
194
+ });
195
+ });
196
+ describe('changePrompt', function () {
197
+ assert('onPromptChanged', ['New Prompt'], function (m) {
198
+ return _objectSpread(_objectSpread({}, m), {}, {
199
+ prompt: 'New Prompt'
200
+ });
201
+ });
202
+ });
203
+ describe('changeTeacherInstructions', function () {
204
+ assert('onTeacherInstructionsChanged', ['New Teacher Instructions'], function (m) {
205
+ return _objectSpread(_objectSpread({}, m), {}, {
206
+ teacherInstructions: 'New Teacher Instructions'
207
+ });
208
+ });
209
+ });
210
+ describe('changeRationale', function () {
211
+ assert('onRationaleChanged', ['New Rationale'], function (m) {
212
+ return _objectSpread(_objectSpread({}, m), {}, {
213
+ rationale: 'New Rationale'
214
+ });
215
+ });
216
+ });
217
+ });
218
+ });
219
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vZGVzaWduLnRlc3QuanN4Il0sIm5hbWVzIjpbImplc3QiLCJtb2NrIiwibGF5b3V0IiwiQ29uZmlnTGF5b3V0IiwicHJvcHMiLCJjaGlsZHJlbiIsInNldHRpbmdzIiwiUGFuZWwiLCJvbkNoYW5nZSIsInRvZ2dsZSIsImZuIiwicmFkaW8iLCJkZXNjcmliZSIsInciLCJvblByb21wdENoYW5nZWQiLCJvblJhdGlvbmFsZUNoYW5nZWQiLCJnZXRNb2RlbCIsInRva2VucyIsImJlZm9yZUVhY2giLCJkZWZhdWx0VmFsdWVzIiwiY29uZmlndXJhdGlvbiIsIml0IiwiZXhwZWN0IiwidG9NYXRjaFNuYXBzaG90IiwidGV4dCIsImRlZmF1bHRDb25maWd1cmF0aW9uIiwiZmVlZGJhY2siLCJ3cmFwcGVyIiwiYXNzZXJ0IiwiYXJncyIsImV4cGVjdGVkIiwiZSIsIkpTT04iLCJzdHJpbmdpZnkiLCJpbnN0YW5jZSIsImFwcGx5IiwidG9CZUNhbGxlZFdpdGgiLCJ0YXJnZXQiLCJ2YWx1ZSIsIm0iLCJzdGFydCIsImVuZCIsIm1heFNlbGVjdGlvbnMiLCJtb2RlIiwiY29ycmVjdCIsImNvcnJlY3RGZWVkYmFja1R5cGUiLCJwYXJ0aWFsU2NvcmluZyIsInByb21wdCIsInRlYWNoZXJJbnN0cnVjdGlvbnMiLCJyYXRpb25hbGUiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOzs7Ozs7QUFFQUEsSUFBSSxDQUFDQyxJQUFMLENBQVUsb0JBQVYsRUFBZ0M7QUFBQSxTQUFPO0FBQ3JDQyxJQUFBQSxNQUFNLEVBQUU7QUFDTkMsTUFBQUEsWUFBWSxFQUFFLHNCQUFDQyxLQUFEO0FBQUEsNEJBQVcsNkNBQU1BLEtBQUssQ0FBQ0MsUUFBWixDQUFYO0FBQUE7QUFEUixLQUQ2QjtBQUlyQ0MsSUFBQUEsUUFBUSxFQUFFO0FBQ1JDLE1BQUFBLEtBQUssRUFBRSxlQUFDSCxLQUFEO0FBQUEsNEJBQVc7QUFBSyxV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T0FBakMsQ0FBTjtBQUlELEtBTE8sQ0FBUjtBQU9BbEMsSUFBQUEsUUFBUSxDQUFDLGNBQUQsRUFBaUIsWUFBTTtBQUM3QmdCLE1BQUFBLE1BQU0sQ0FBQyxpQkFBRCxFQUFvQixDQUFDLFlBQUQsQ0FBcEIsRUFBb0MsVUFBQ1csQ0FBRDtBQUFBLCtDQUNyQ0EsQ0FEcUM7QUFFeENRLFVBQUFBLE1BQU0sRUFBRTtBQUZnQztBQUFBLE9BQXBDLENBQU47QUFJRCxLQUxPLENBQVI7QUFPQW5DLElBQUFBLFFBQVEsQ0FBQywyQkFBRCxFQUE4QixZQUFNO0FBQzFDZ0IsTUFBQUEsTUFBTSxDQUNKLDhCQURJLEVBRUosQ0FBQywwQkFBRCxDQUZJLEVBR0osVUFBQ1csQ0FBRDtBQUFBLCtDQUNLQSxDQURMO0FBRUVTLFVBQUFBLG1CQUFtQixFQUFFO0FBRnZCO0FBQUEsT0FISSxDQUFOO0FBUUQsS0FUTyxDQUFSO0FBV0FwQyxJQUFBQSxRQUFRLENBQUMsaUJBQUQsRUFBb0IsWUFBTTtBQUNoQ2dCLE1BQUFBLE1BQU0sQ0FBQyxvQkFBRCxFQUF1QixDQUFDLGVBQUQsQ0FBdkIsRUFBMEMsVUFBQ1csQ0FBRDtBQUFBLCtDQUMzQ0EsQ0FEMkM7QUFFOUNVLFVBQUFBLFNBQVMsRUFBRTtBQUZtQztBQUFBLE9BQTFDLENBQU47QUFJRCxLQUxPLENBQVI7QUFNRCxHQXpGTyxDQUFSO0FBMEZELENBdExPLENBQVIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzaGFsbG93IH0gZnJvbSAnZW56eW1lJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBEZXNpZ24gfSBmcm9tICcuLi9kZXNpZ24nO1xuaW1wb3J0IGRlZmF1bHRWYWx1ZXMgZnJvbSAnLi4vZGVmYXVsdENvbmZpZ3VyYXRpb24nO1xuXG5qZXN0Lm1vY2soJ0BwaWUtbGliL2NvbmZpZy11aScsICgpID0+ICh7XG4gIGxheW91dDoge1xuICAgIENvbmZpZ0xheW91dDogKHByb3BzKSA9PiA8ZGl2Pntwcm9wcy5jaGlsZHJlbn08L2Rpdj4sXG4gIH0sXG4gIHNldHRpbmdzOiB7XG4gICAgUGFuZWw6IChwcm9wcykgPT4gPGRpdiBvQ2hhbmdlTW9kZWw9e3Byb3BzLm9uQ2hhbmdlfSAvPixcbiAgICB0b2dnbGU6IGplc3QuZm4oKSxcbiAgICByYWRpbzogamVzdC5mbigpLFxuICB9LFxufSkpO1xuXG5qZXN0Lm1vY2soJ2xvZGFzaC9kZWJvdW5jZScsICgpID0+IChmbikgPT4gZm4pO1xuXG5kZXNjcmliZSgnZGVzaWduJywgKCkgPT4ge1xuICBsZXQgdztcbiAgbGV0IG9uQ2hhbmdlO1xuICBsZXQgb25Qcm9tcHRDaGFuZ2VkO1xuICBsZXQgb25SYXRpb25hbGVDaGFuZ2VkO1xuXG4gIGNvbnN0IGdldE1vZGVsID0gKCkgPT4gKHtcbiAgICB0b2tlbnM6IFtdLFxuICB9KTtcbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgb25DaGFuZ2UgPSBqZXN0LmZuKCk7XG4gICAgb25Qcm9tcHRDaGFuZ2VkID0gamVzdC5mbigpO1xuICAgIG9uUmF0aW9uYWxlQ2hhbmdlZCA9IGplc3QuZm4oKTtcbiAgICB3ID0gc2hhbGxvdyhcbiAgICAgIDxEZXNpZ25cbiAgICAgICAgbW9kZWw9e2dldE1vZGVsKCl9XG4gICAgICAgIGNvbmZpZ3VyYXRpb249e2RlZmF1bHRWYWx1ZXMuY29uZmlndXJhdGlvbn1cbiAgICAgICAgY2xhc3Nlcz17e319XG4gICAgICAgIGNsYXNzTmFtZT17J2Zvbyd9XG4gICAgICAgIG9uTW9kZWxDaGFuZ2VkPXtvbkNoYW5nZX1cbiAgICAgICAgb25Qcm9tcHRDaGFuZ2VkPXtvblByb21wdENoYW5nZWR9XG4gICAgICAgIG9uUmF0aW9uYWxlQ2hhbmdlZD17b25SYXRpb25hbGVDaGFuZ2VkfVxuICAgICAgLz5cbiAgICApO1xuICB9KTtcblxuICBkZXNjcmliZSgnc25hcHNob3QnLCAoKSA9PiB7XG4gICAgaXQoJ3JlbmRlcnMgYWxsIGl0ZW1zIHdpdGggZGVmYXVsdFByb3BzJywgKCkgPT4ge1xuICAgICAgZXhwZWN0KHcpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Rva2VuaXplciByZW5kZXJzIHdpdGggaHRtbCBlbnRpdGllcycsICgpID0+IHtcbiAgICAgIGV4cGVjdChcbiAgICAgICAgc2hhbGxvdyhcbiAgICAgICAgICA8RGVzaWduXG4gICAgICAgICAgICBtb2RlbD17e1xuICAgICAgICAgICAgICB0ZXh0OlxuICAgICAgICAgICAgICAgICc8cD4mIzgyMjA7THVjeT8mIzYzOyBBcmUgeW91IHVzaW5nIHlvdXIgdGltZSB3aXNlbHkgdG8gcGxhbiB5b3VyIHByb2plY3Q/JiMzMzsmIzMzOyYjMzM7JiM4MjIxOyBNci4gV2lsc29uIGFza2VkLjwvcD48cD5MdWN5IGxvb2tlZCBhIGxpdHRsZSBjb25mdXNlZCBhdCBmaXJzdC4gJiMxOTU7IFRoZW4gc2hlIGdyaW5uZWQgYW5kIHByb3VkbHkgc3RhdGVkLCAmIzgyMjA7V2h5LCB5ZXMgSSBhbSEgSSBwbGFuIHRvIG1ha2UgYSBiaXJkIGZlZWRlciBmb3IgdGhhdCB0cmVlIG91dCBvdXIgd2luZG93ISYjODIyMTs8L3A+JyxcbiAgICAgICAgICAgICAgdG9rZW5zOiBbXSxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICBjb25maWd1cmF0aW9uPXtkZWZhdWx0VmFsdWVzLmNvbmZpZ3VyYXRpb259XG4gICAgICAgICAgICBjbGFzc2VzPXt7fX1cbiAgICAgICAgICAgIGNsYXNzTmFtZT17J2Zvbyd9XG4gICAgICAgICAgICBvbk1vZGVsQ2hhbmdlZD17b25DaGFuZ2V9XG4gICAgICAgICAgICBvblByb21wdENoYW5nZWQ9e29uUHJvbXB0Q2hhbmdlZH1cbiAgICAgICAgICAgIG9uUmF0aW9uYWxlQ2hhbmdlZD17b25SYXRpb25hbGVDaGFuZ2VkfVxuICAgICAgICAgIC8+XG4gICAgICAgIClcbiAgICAgICkudG9NYXRjaFNuYXBzaG90KCk7XG4gICAgfSk7XG5cbiAgICBpdCgncmVuZGVycyBhbGwgaXRlbXMgZXhjZXB0IGZlZWRiYWNrJywgKCkgPT4ge1xuICAgICAgY29uc3QgZGVmYXVsdENvbmZpZ3VyYXRpb24gPSBkZWZhdWx0VmFsdWVzLmNvbmZpZ3VyYXRpb247XG5cbiAgICAgIGRlZmF1bHRDb25maWd1cmF0aW9uLmZlZWRiYWNrLnNldHRpbmdzID0gZmFsc2U7XG5cbiAgICAgIGNvbnN0IHdyYXBwZXIgPSBzaGFsbG93KFxuICAgICAgICA8RGVzaWduXG4gICAgICAgICAgbW9kZWw9e2dldE1vZGVsKCl9XG4gICAgICAgICAgY29uZmlndXJhdGlvbj17ZGVmYXVsdENvbmZpZ3VyYXRpb259XG4gICAgICAgICAgY2xhc3Nlcz17e319XG4gICAgICAgICAgY2xhc3NOYW1lPXsnZm9vJ31cbiAgICAgICAgICBvbk1vZGVsQ2hhbmdlZD17b25DaGFuZ2V9XG4gICAgICAgICAgb25Qcm9tcHRDaGFuZ2VkPXtvblByb21wdENoYW5nZWR9XG4gICAgICAgICAgb25SYXRpb25hbGVDaGFuZ2VkPXtvblJhdGlvbmFsZUNoYW5nZWR9XG4gICAgICAgIC8+XG4gICAgICApO1xuXG4gICAgICBleHBlY3Qod3JhcHBlcikudG9NYXRjaFNuYXBzaG90KCk7XG4gICAgfSk7XG5cbiAgICBpdCgncmVuZGVycyBhbGwgaXRlbXMgZXhjZXB0IHRoZSBjb250ZW50IGlucHV0JywgKCkgPT4ge1xuICAgICAgY29uc3QgZGVmYXVsdENvbmZpZ3VyYXRpb24gPSBkZWZhdWx0VmFsdWVzLmNvbmZpZ3VyYXRpb247XG5cbiAgICAgIGRlZmF1bHRDb25maWd1cmF0aW9uLnRleHQuc2V0dGluZ3MgPSBmYWxzZTtcblxuICAgICAgY29uc3Qgd3JhcHBlciA9IHNoYWxsb3coXG4gICAgICAgIDxEZXNpZ25cbiAgICAgICAgICBtb2RlbD17Z2V0TW9kZWwoKX1cbiAgICAgICAgICBjb25maWd1cmF0aW9uPXtkZWZhdWx0Q29uZmlndXJhdGlvbn1cbiAgICAgICAgICBjbGFzc2VzPXt7fX1cbiAgICAgICAgICBjbGFzc05hbWU9eydmb28nfVxuICAgICAgICAgIG9uTW9kZWxDaGFuZ2VkPXtvbkNoYW5nZX1cbiAgICAgICAgICBvblByb21wdENoYW5nZWQ9e29uUHJvbXB0Q2hhbmdlZH1cbiAgICAgICAgICBvblJhdGlvbmFsZUNoYW5nZWQ9e29uUmF0aW9uYWxlQ2hhbmdlZH1cbiAgICAgICAgLz5cbiAgICAgICk7XG5cbiAgICAgIGV4cGVjdCh3cmFwcGVyKS50b01hdGNoU25hcHNob3QoKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2xvZ2ljJywgKCkgPT4ge1xuICAgIGNvbnN0IGFzc2VydCA9IChmbiwgYXJncywgZXhwZWN0ZWQpID0+IHtcbiAgICAgIGNvbnN0IGUgPSBleHBlY3RlZChnZXRNb2RlbCgpKTtcblxuICAgICAgaXQoYCR7Zm59ICR7SlNPTi5zdHJpbmdpZnkoYXJncyl9ID0+ICR7SlNPTi5zdHJpbmdpZnkoZSl9YCwgKCkgPT4ge1xuICAgICAgICBjb25zdCBpbnN0YW5jZSA9IHcuaW5zdGFuY2UoKTtcbiAgICAgICAgaW5zdGFuY2VbZm5dLmFwcGx5KGluc3RhbmNlLCBhcmdzKTtcblxuICAgICAgICAvL2plc3QucnVuQWxsVGltZXJzKCk7XG5cbiAgICAgICAgZXhwZWN0KG9uQ2hhbmdlKS50b0JlQ2FsbGVkV2l0aChlKTtcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBkZXNjcmliZSgnY2hhbmdlVGV4dCcsICgpID0+IHtcbiAgICAgIGFzc2VydCgnY2hhbmdlVGV4dCcsIFt7IHRhcmdldDogeyB2YWx1ZTogJ2ZvbycgfSB9XSwgKG0pID0+ICh7XG4gICAgICAgIC4uLm0sXG4gICAgICAgIHRleHQ6ICdmb28nLFxuICAgICAgfSkpO1xuICAgIH0pO1xuXG4gICAgZGVzY3JpYmUoJ2NoYW5nZVRva2VucycsICgpID0+IHtcbiAgICAgIGFzc2VydChcbiAgICAgICAgJ2NoYW5nZVRva2VucycsXG4gICAgICAgIFtbeyBzdGFydDogMCwgZW5kOiAxLCB0ZXh0OiAnZicgfV0sICd3b3JkcyddLFxuICAgICAgICAobSkgPT4gKHtcbiAgICAgICAgICAuLi5tLFxuICAgICAgICAgIG1heFNlbGVjdGlvbnM6IDAsXG4gICAgICAgICAgdG9rZW5zOiBbeyBzdGFydDogMCwgZW5kOiAxLCB0ZXh0OiAnZicgfV0sXG4gICAgICAgICAgbW9kZTogJ3dvcmRzJyxcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgICBhc3NlcnQoXG4gICAgICAgICdjaGFuZ2VUb2tlbnMnLFxuICAgICAgICBbW3sgc3RhcnQ6IDAsIGVuZDogOCwgdGV4dDogJ0ZvbyBiYXIuJywgY29ycmVjdDogdHJ1ZSB9XSwgJ3NlbnRlbmNlcyddLFxuICAgICAgICAobSkgPT4gKHtcbiAgICAgICAgICAuLi5tLFxuICAgICAgICAgIG1heFNlbGVjdGlvbnM6IDEsXG4gICAgICAgICAgdG9rZW5zOiBbeyBzdGFydDogMCwgZW5kOiA4LCB0ZXh0OiAnRm9vIGJhci4nLCBjb3JyZWN0OiB0cnVlIH1dLFxuICAgICAgICAgIG1vZGU6ICdzZW50ZW5jZXMnLFxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIGRlc2NyaWJlKCdjaGFuZ2VNYXhTZWxlY3Rpb25zJywgKCkgPT4ge1xuICAgICAgYXNzZXJ0KCdjaGFuZ2VNYXhTZWxlY3Rpb25zJywgW3t9LCA0XSwgKG0pID0+ICh7XG4gICAgICAgIC4uLm0sXG4gICAgICAgIG1heFNlbGVjdGlvbnM6IDQsXG4gICAgICB9KSk7XG4gICAgfSk7XG5cbiAgICBkZXNjcmliZSgnY2hhbmdlRmVlZGJhY2snLCAoKSA9PiB7XG4gICAgICBhc3NlcnQoJ2NoYW5nZUZlZWRiYWNrJywgW3sgY29ycmVjdEZlZWRiYWNrVHlwZTogJ25vbmUnIH1dLCAobSkgPT4gKHtcbiAgICAgICAgLi4ubSxcbiAgICAgICAgZmVlZGJhY2s6IHsgY29ycmVjdEZlZWRiYWNrVHlwZTogJ25vbmUnIH0sXG4gICAgICB9KSk7XG4gICAgfSk7XG5cbiAgICBkZXNjcmliZSgnY2hhbmdlUGFydGlhbFNjb3JpbmcnLCAoKSA9PiB7XG4gICAgICBhc3NlcnQoJ2NoYW5nZVBhcnRpYWxTY29yaW5nJywgW3RydWVdLCAobSkgPT4gKHtcbiAgICAgICAgLi4ubSxcbiAgICAgICAgcGFydGlhbFNjb3Jpbmc6IHRydWUsXG4gICAgICB9KSk7XG4gICAgfSk7XG5cbiAgICBkZXNjcmliZSgnY2hhbmdlUHJvbXB0JywgKCkgPT4ge1xuICAgICAgYXNzZXJ0KCdvblByb21wdENoYW5nZWQnLCBbJ05ldyBQcm9tcHQnXSwgKG0pID0+ICh7XG4gICAgICAgIC4uLm0sXG4gICAgICAgIHByb21wdDogJ05ldyBQcm9tcHQnLFxuICAgICAgfSkpO1xuICAgIH0pO1xuXG4gICAgZGVzY3JpYmUoJ2NoYW5nZVRlYWNoZXJJbnN0cnVjdGlvbnMnLCAoKSA9PiB7XG4gICAgICBhc3NlcnQoXG4gICAgICAgICdvblRlYWNoZXJJbnN0cnVjdGlvbnNDaGFuZ2VkJyxcbiAgICAgICAgWydOZXcgVGVhY2hlciBJbnN0cnVjdGlvbnMnXSxcbiAgICAgICAgKG0pID0+ICh7XG4gICAgICAgICAgLi4ubSxcbiAgICAgICAgICB0ZWFjaGVySW5zdHJ1Y3Rpb25zOiAnTmV3IFRlYWNoZXIgSW5zdHJ1Y3Rpb25zJyxcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICBkZXNjcmliZSgnY2hhbmdlUmF0aW9uYWxlJywgKCkgPT4ge1xuICAgICAgYXNzZXJ0KCdvblJhdGlvbmFsZUNoYW5nZWQnLCBbJ05ldyBSYXRpb25hbGUnXSwgKG0pID0+ICh7XG4gICAgICAgIC4uLm0sXG4gICAgICAgIHJhdGlvbmFsZTogJ05ldyBSYXRpb25hbGUnLFxuICAgICAgfSkpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
@@ -79,6 +79,11 @@ var _default = {
79
79
  settings: true,
80
80
  label: 'Feedback'
81
81
  },
82
+ spellCheck: {
83
+ label: 'Spellcheck',
84
+ settings: false,
85
+ enabled: true
86
+ },
82
87
  partialScoring: {
83
88
  settings: false,
84
89
  label: 'Allow Partial Scoring'
@@ -90,4 +95,4 @@ var _default = {
90
95
  }
91
96
  };
92
97
  exports["default"] = _default;
93
- //# sourceMappingURL=defaultConfiguration.js.map
98
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kZWZhdWx0Q29uZmlndXJhdGlvbi5qcyJdLCJuYW1lcyI6WyJ0b2tlbnMiLCJ0ZXh0Iiwic3RhcnQiLCJlbmQiLCJtb2RlbCIsImhpZ2hsaWdodENob2ljZXMiLCJwYXJ0aWFsU2NvcmluZyIsIm1heFNlbGVjdGlvbnMiLCJtb2RlIiwicHJvbXB0Iiwic2NvcmluZ1R5cGUiLCJmZWVkYmFja0VuYWJsZWQiLCJyYXRpb25hbGVFbmFibGVkIiwicHJvbXB0RW5hYmxlZCIsInRlYWNoZXJJbnN0cnVjdGlvbnNFbmFibGVkIiwic3R1ZGVudEluc3RydWN0aW9uc0VuYWJsZWQiLCJ0b29sYmFyRWRpdG9yUG9zaXRpb24iLCJjb25maWd1cmF0aW9uIiwic2VsZWN0aW9uQ291bnQiLCJzZXR0aW5ncyIsImxhYmVsIiwiY29ycmVjdEFuc3dlciIsInNlbGVjdGlvbnMiLCJyYXRpb25hbGUiLCJzdHVkZW50SW5zdHJ1Y3Rpb25zIiwidGVhY2hlckluc3RydWN0aW9ucyIsImZlZWRiYWNrIiwic3BlbGxDaGVjayIsImVuYWJsZWQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxJQUFNQSxNQUFNLEdBQUcsU0FBVEEsTUFBUztBQUFBLFNBQU0sQ0FDbkI7QUFDRUMsSUFBQUEsSUFBSSxFQUFFLEVBRFI7QUFFRUMsSUFBQUEsS0FBSyxFQUFFLENBRlQ7QUFHRUMsSUFBQUEsR0FBRyxFQUFFO0FBSFAsR0FEbUIsQ0FBTjtBQUFBLENBQWY7O2VBUWU7QUFDYkMsRUFBQUEsS0FBSyxFQUFFO0FBQ0xDLElBQUFBLGdCQUFnQixFQUFFLEtBRGI7QUFFTEMsSUFBQUEsY0FBYyxFQUFFLEtBRlg7QUFHTEMsSUFBQUEsYUFBYSxFQUFFLENBSFY7QUFJTEMsSUFBQUEsSUFBSSxFQUFFLFVBSkQ7QUFLTEMsSUFBQUEsTUFBTSxFQUFFLDJCQUxIO0FBTUxSLElBQUFBLElBQUksRUFBRSxFQU5EO0FBT0xELElBQUFBLE1BQU0sRUFBRUEsTUFBTSxFQVBUO0FBUUxVLElBQUFBLFdBQVcsRUFBRSxNQVJSO0FBU0xDLElBQUFBLGVBQWUsRUFBRSxJQVRaO0FBVUxDLElBQUFBLGdCQUFnQixFQUFFLElBVmI7QUFXTEMsSUFBQUEsYUFBYSxFQUFFLElBWFY7QUFZTEMsSUFBQUEsMEJBQTBCLEVBQUUsSUFadkI7QUFhTEMsSUFBQUEsMEJBQTBCLEVBQUUsSUFidkI7QUFjTEMsSUFBQUEscUJBQXFCLEVBQUU7QUFkbEIsR0FETTtBQWlCYkMsRUFBQUEsYUFBYSxFQUFFO0FBQ2JDLElBQUFBLGNBQWMsRUFBRTtBQUNkQyxNQUFBQSxRQUFRLEVBQUUsSUFESTtBQUVkQyxNQUFBQSxLQUFLLEVBQUU7QUFGTyxLQURIO0FBS2JDLElBQUFBLGFBQWEsRUFBRTtBQUNiRixNQUFBQSxRQUFRLEVBQUUsSUFERztBQUViQyxNQUFBQSxLQUFLLEVBQUU7QUFGTSxLQUxGO0FBU2JFLElBQUFBLFVBQVUsRUFBRTtBQUNWSCxNQUFBQSxRQUFRLEVBQUUsSUFEQTtBQUVWQyxNQUFBQSxLQUFLLEVBQUU7QUFGRyxLQVRDO0FBYWJmLElBQUFBLGdCQUFnQixFQUFFO0FBQ2hCYyxNQUFBQSxRQUFRLEVBQUUsSUFETTtBQUVoQkMsTUFBQUEsS0FBSyxFQUFFO0FBRlMsS0FiTDtBQWlCYkcsSUFBQUEsU0FBUyxFQUFFO0FBQ1RKLE1BQUFBLFFBQVEsRUFBRSxJQUREO0FBRVRDLE1BQUFBLEtBQUssRUFBRTtBQUZFLEtBakJFO0FBcUJiVixJQUFBQSxXQUFXLEVBQUU7QUFDWFMsTUFBQUEsUUFBUSxFQUFFLEtBREM7QUFFWEMsTUFBQUEsS0FBSyxFQUFFO0FBRkksS0FyQkE7QUF5QmJJLElBQUFBLG1CQUFtQixFQUFFO0FBQ25CTCxNQUFBQSxRQUFRLEVBQUUsS0FEUztBQUVuQkMsTUFBQUEsS0FBSyxFQUFFO0FBRlksS0F6QlI7QUE2QmJLLElBQUFBLG1CQUFtQixFQUFFO0FBQ25CTixNQUFBQSxRQUFRLEVBQUUsSUFEUztBQUVuQkMsTUFBQUEsS0FBSyxFQUFFO0FBRlksS0E3QlI7QUFpQ2JYLElBQUFBLE1BQU0sRUFBRTtBQUNOVyxNQUFBQSxLQUFLLEVBQUUsUUFERDtBQUVORCxNQUFBQSxRQUFRLEVBQUU7QUFGSixLQWpDSztBQXFDYmxCLElBQUFBLElBQUksRUFBRTtBQUNKa0IsTUFBQUEsUUFBUSxFQUFFLElBRE47QUFFSkMsTUFBQUEsS0FBSyxFQUFFO0FBRkgsS0FyQ087QUF5Q2JwQixJQUFBQSxNQUFNLEVBQUU7QUFDTm1CLE1BQUFBLFFBQVEsRUFBRSxJQURKO0FBRU5DLE1BQUFBLEtBQUssRUFBRTtBQUZELEtBekNLO0FBNkNiTSxJQUFBQSxRQUFRLEVBQUU7QUFDUlAsTUFBQUEsUUFBUSxFQUFFLElBREY7QUFFUkMsTUFBQUEsS0FBSyxFQUFFO0FBRkMsS0E3Q0c7QUFpRGJPLElBQUFBLFVBQVUsRUFBRTtBQUNWUCxNQUFBQSxLQUFLLEVBQUUsWUFERztBQUVWRCxNQUFBQSxRQUFRLEVBQUMsS0FGQztBQUdWUyxNQUFBQSxPQUFPLEVBQUM7QUFIRSxLQWpEQztBQXNEYnRCLElBQUFBLGNBQWMsRUFBRTtBQUNkYSxNQUFBQSxRQUFRLEVBQUUsS0FESTtBQUVkQyxNQUFBQSxLQUFLLEVBQUU7QUFGTyxLQXRESDtBQTBEYlosSUFBQUEsSUFBSSxFQUFFO0FBQ0pXLE1BQUFBLFFBQVEsRUFBRSxJQUROO0FBRUpDLE1BQUFBLEtBQUssRUFBRTtBQUZIO0FBMURPO0FBakJGLEMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCB0b2tlbnMgPSAoKSA9PiBbXG4gIHtcbiAgICB0ZXh0OiAnJyxcbiAgICBzdGFydDogMCxcbiAgICBlbmQ6IDBcbiAgfVxuXTtcblxuZXhwb3J0IGRlZmF1bHQge1xuICBtb2RlbDoge1xuICAgIGhpZ2hsaWdodENob2ljZXM6IGZhbHNlLFxuICAgIHBhcnRpYWxTY29yaW5nOiBmYWxzZSxcbiAgICBtYXhTZWxlY3Rpb25zOiAyLFxuICAgIG1vZGU6ICdzZW50ZW5jZScsXG4gICAgcHJvbXB0OiAnUXVlc3Rpb24gUHJvbXB0IGdvZXMgaGVyZScsXG4gICAgdGV4dDogJycsXG4gICAgdG9rZW5zOiB0b2tlbnMoKSxcbiAgICBzY29yaW5nVHlwZTogJ2F1dG8nLFxuICAgIGZlZWRiYWNrRW5hYmxlZDogdHJ1ZSxcbiAgICByYXRpb25hbGVFbmFibGVkOiB0cnVlLFxuICAgIHByb21wdEVuYWJsZWQ6IHRydWUsXG4gICAgdGVhY2hlckluc3RydWN0aW9uc0VuYWJsZWQ6IHRydWUsXG4gICAgc3R1ZGVudEluc3RydWN0aW9uc0VuYWJsZWQ6IHRydWUsXG4gICAgdG9vbGJhckVkaXRvclBvc2l0aW9uOiAnYm90dG9tJ1xuICB9LFxuICBjb25maWd1cmF0aW9uOiB7XG4gICAgc2VsZWN0aW9uQ291bnQ6IHtcbiAgICAgIHNldHRpbmdzOiB0cnVlLFxuICAgICAgbGFiZWw6ICdTZWxlY3Rpb24gY291bnQnXG4gICAgfSxcbiAgICBjb3JyZWN0QW5zd2VyOiB7XG4gICAgICBzZXR0aW5nczogdHJ1ZSxcbiAgICAgIGxhYmVsOiAnQ29ycmVjdCBBbnN3ZXJzJ1xuICAgIH0sXG4gICAgc2VsZWN0aW9uczoge1xuICAgICAgc2V0dGluZ3M6IHRydWUsXG4gICAgICBsYWJlbDogJ1NlbGVjdGlvbnMgQXZhaWxhYmxlJ1xuICAgIH0sXG4gICAgaGlnaGxpZ2h0Q2hvaWNlczoge1xuICAgICAgc2V0dGluZ3M6IHRydWUsXG4gICAgICBsYWJlbDogJ0hpZ2hsaWdodCBjaG9pY2VzJ1xuICAgIH0sXG4gICAgcmF0aW9uYWxlOiB7XG4gICAgICBzZXR0aW5nczogdHJ1ZSxcbiAgICAgIGxhYmVsOiAnUmF0aW9uYWxlJ1xuICAgIH0sXG4gICAgc2NvcmluZ1R5cGU6IHtcbiAgICAgIHNldHRpbmdzOiBmYWxzZSxcbiAgICAgIGxhYmVsOiAnU2NvcmluZyBUeXBlJ1xuICAgIH0sXG4gICAgc3R1ZGVudEluc3RydWN0aW9uczoge1xuICAgICAgc2V0dGluZ3M6IGZhbHNlLFxuICAgICAgbGFiZWw6ICdTdHVkZW50IEluc3RydWN0aW9ucydcbiAgICB9LFxuICAgIHRlYWNoZXJJbnN0cnVjdGlvbnM6IHtcbiAgICAgIHNldHRpbmdzOiB0cnVlLFxuICAgICAgbGFiZWw6ICdUZWFjaGVyIEluc3RydWN0aW9ucydcbiAgICB9LFxuICAgIHByb21wdDoge1xuICAgICAgbGFiZWw6ICdQcm9tcHQnLFxuICAgICAgc2V0dGluZ3M6IHRydWVcbiAgICB9LFxuICAgIHRleHQ6IHtcbiAgICAgIHNldHRpbmdzOiB0cnVlLFxuICAgICAgbGFiZWw6ICdDb250ZW50J1xuICAgIH0sXG4gICAgdG9rZW5zOiB7XG4gICAgICBzZXR0aW5nczogdHJ1ZSxcbiAgICAgIGxhYmVsOiAnVG9rZW5zJ1xuICAgIH0sXG4gICAgZmVlZGJhY2s6IHtcbiAgICAgIHNldHRpbmdzOiB0cnVlLFxuICAgICAgbGFiZWw6ICdGZWVkYmFjaydcbiAgICB9LFxuICAgIHNwZWxsQ2hlY2s6IHtcbiAgICAgIGxhYmVsOiAnU3BlbGxjaGVjaycsXG4gICAgICBzZXR0aW5nczpmYWxzZSxcbiAgICAgIGVuYWJsZWQ6dHJ1ZVxuICAgIH0sXG4gICAgcGFydGlhbFNjb3Jpbmc6IHtcbiAgICAgIHNldHRpbmdzOiBmYWxzZSxcbiAgICAgIGxhYmVsOiAnQWxsb3cgUGFydGlhbCBTY29yaW5nJ1xuICAgIH0sXG4gICAgbW9kZToge1xuICAgICAgc2V0dGluZ3M6IHRydWUsXG4gICAgICBsYWJlbDogJ01vZGUnXG4gICAgfVxuICB9XG59O1xuIl19
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/defaultConfiguration.js"],"names":["tokens","text","start","end","model","highlightChoices","partialScoring","maxSelections","mode","prompt","scoringType","feedbackEnabled","rationaleEnabled","promptEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","toolbarEditorPosition","configuration","selectionCount","settings","label","correctAnswer","selections","rationale","studentInstructions","teacherInstructions","feedback"],"mappings":";;;;;;;AAAA,IAAMA,MAAM,GAAG,SAATA,MAAS;AAAA,SAAM,CACnB;AACEC,IAAAA,IAAI,EAAE,EADR;AAEEC,IAAAA,KAAK,EAAE,CAFT;AAGEC,IAAAA,GAAG,EAAE;AAHP,GADmB,CAAN;AAAA,CAAf;;eAQe;AACbC,EAAAA,KAAK,EAAE;AACLC,IAAAA,gBAAgB,EAAE,KADb;AAELC,IAAAA,cAAc,EAAE,KAFX;AAGLC,IAAAA,aAAa,EAAE,CAHV;AAILC,IAAAA,IAAI,EAAE,UAJD;AAKLC,IAAAA,MAAM,EAAE,2BALH;AAMLR,IAAAA,IAAI,EAAE,EAND;AAOLD,IAAAA,MAAM,EAAEA,MAAM,EAPT;AAQLU,IAAAA,WAAW,EAAE,MARR;AASLC,IAAAA,eAAe,EAAE,IATZ;AAULC,IAAAA,gBAAgB,EAAE,IAVb;AAWLC,IAAAA,aAAa,EAAE,IAXV;AAYLC,IAAAA,0BAA0B,EAAE,IAZvB;AAaLC,IAAAA,0BAA0B,EAAE,IAbvB;AAcLC,IAAAA,qBAAqB,EAAE;AAdlB,GADM;AAiBbC,EAAAA,aAAa,EAAE;AACbC,IAAAA,cAAc,EAAE;AACdC,MAAAA,QAAQ,EAAE,IADI;AAEdC,MAAAA,KAAK,EAAE;AAFO,KADH;AAKbC,IAAAA,aAAa,EAAE;AACbF,MAAAA,QAAQ,EAAE,IADG;AAEbC,MAAAA,KAAK,EAAE;AAFM,KALF;AASbE,IAAAA,UAAU,EAAE;AACVH,MAAAA,QAAQ,EAAE,IADA;AAEVC,MAAAA,KAAK,EAAE;AAFG,KATC;AAabf,IAAAA,gBAAgB,EAAE;AAChBc,MAAAA,QAAQ,EAAE,IADM;AAEhBC,MAAAA,KAAK,EAAE;AAFS,KAbL;AAiBbG,IAAAA,SAAS,EAAE;AACTJ,MAAAA,QAAQ,EAAE,IADD;AAETC,MAAAA,KAAK,EAAE;AAFE,KAjBE;AAqBbV,IAAAA,WAAW,EAAE;AACXS,MAAAA,QAAQ,EAAE,KADC;AAEXC,MAAAA,KAAK,EAAE;AAFI,KArBA;AAyBbI,IAAAA,mBAAmB,EAAE;AACnBL,MAAAA,QAAQ,EAAE,KADS;AAEnBC,MAAAA,KAAK,EAAE;AAFY,KAzBR;AA6BbK,IAAAA,mBAAmB,EAAE;AACnBN,MAAAA,QAAQ,EAAE,IADS;AAEnBC,MAAAA,KAAK,EAAE;AAFY,KA7BR;AAiCbX,IAAAA,MAAM,EAAE;AACNW,MAAAA,KAAK,EAAE,QADD;AAEND,MAAAA,QAAQ,EAAE;AAFJ,KAjCK;AAqCblB,IAAAA,IAAI,EAAE;AACJkB,MAAAA,QAAQ,EAAE,IADN;AAEJC,MAAAA,KAAK,EAAE;AAFH,KArCO;AAyCbpB,IAAAA,MAAM,EAAE;AACNmB,MAAAA,QAAQ,EAAE,IADJ;AAENC,MAAAA,KAAK,EAAE;AAFD,KAzCK;AA6CbM,IAAAA,QAAQ,EAAE;AACRP,MAAAA,QAAQ,EAAE,IADF;AAERC,MAAAA,KAAK,EAAE;AAFC,KA7CG;AAiDbd,IAAAA,cAAc,EAAE;AACda,MAAAA,QAAQ,EAAE,KADI;AAEdC,MAAAA,KAAK,EAAE;AAFO,KAjDH;AAqDbZ,IAAAA,IAAI,EAAE;AACJW,MAAAA,QAAQ,EAAE,IADN;AAEJC,MAAAA,KAAK,EAAE;AAFH;AArDO;AAjBF,C","sourcesContent":["const tokens = () => [\n {\n text: '',\n start: 0,\n end: 0\n }\n];\n\nexport default {\n model: {\n highlightChoices: false,\n partialScoring: false,\n maxSelections: 2,\n mode: 'sentence',\n prompt: 'Question Prompt goes here',\n text: '',\n tokens: tokens(),\n scoringType: 'auto',\n feedbackEnabled: true,\n rationaleEnabled: true,\n promptEnabled: true,\n teacherInstructionsEnabled: true,\n studentInstructionsEnabled: true,\n toolbarEditorPosition: 'bottom'\n },\n configuration: {\n selectionCount: {\n settings: true,\n label: 'Selection count'\n },\n correctAnswer: {\n settings: true,\n label: 'Correct Answers'\n },\n selections: {\n settings: true,\n label: 'Selections Available'\n },\n highlightChoices: {\n settings: true,\n label: 'Highlight choices'\n },\n rationale: {\n settings: true,\n label: 'Rationale'\n },\n scoringType: {\n settings: false,\n label: 'Scoring Type'\n },\n studentInstructions: {\n settings: false,\n label: 'Student Instructions'\n },\n teacherInstructions: {\n settings: true,\n label: 'Teacher Instructions'\n },\n prompt: {\n label: 'Prompt',\n settings: true\n },\n text: {\n settings: true,\n label: 'Content'\n },\n tokens: {\n settings: true,\n label: 'Tokens'\n },\n feedback: {\n settings: true,\n label: 'Feedback'\n },\n partialScoring: {\n settings: false,\n label: 'Allow Partial Scoring'\n },\n mode: {\n settings: true,\n label: 'Mode'\n }\n }\n};\n"],"file":"defaultConfiguration.js"}
1
+ {"version":3,"sources":["../src/defaultConfiguration.js"],"names":["tokens","text","start","end","model","highlightChoices","partialScoring","maxSelections","mode","prompt","scoringType","feedbackEnabled","rationaleEnabled","promptEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","toolbarEditorPosition","configuration","selectionCount","settings","label","correctAnswer","selections","rationale","studentInstructions","teacherInstructions","feedback","spellCheck","enabled"],"mappings":";;;;;;;AAAA,IAAMA,MAAM,GAAG,SAATA,MAAS;AAAA,SAAM,CACnB;AACEC,IAAAA,IAAI,EAAE,EADR;AAEEC,IAAAA,KAAK,EAAE,CAFT;AAGEC,IAAAA,GAAG,EAAE;AAHP,GADmB,CAAN;AAAA,CAAf;;eAQe;AACbC,EAAAA,KAAK,EAAE;AACLC,IAAAA,gBAAgB,EAAE,KADb;AAELC,IAAAA,cAAc,EAAE,KAFX;AAGLC,IAAAA,aAAa,EAAE,CAHV;AAILC,IAAAA,IAAI,EAAE,UAJD;AAKLC,IAAAA,MAAM,EAAE,2BALH;AAMLR,IAAAA,IAAI,EAAE,EAND;AAOLD,IAAAA,MAAM,EAAEA,MAAM,EAPT;AAQLU,IAAAA,WAAW,EAAE,MARR;AASLC,IAAAA,eAAe,EAAE,IATZ;AAULC,IAAAA,gBAAgB,EAAE,IAVb;AAWLC,IAAAA,aAAa,EAAE,IAXV;AAYLC,IAAAA,0BAA0B,EAAE,IAZvB;AAaLC,IAAAA,0BAA0B,EAAE,IAbvB;AAcLC,IAAAA,qBAAqB,EAAE;AAdlB,GADM;AAiBbC,EAAAA,aAAa,EAAE;AACbC,IAAAA,cAAc,EAAE;AACdC,MAAAA,QAAQ,EAAE,IADI;AAEdC,MAAAA,KAAK,EAAE;AAFO,KADH;AAKbC,IAAAA,aAAa,EAAE;AACbF,MAAAA,QAAQ,EAAE,IADG;AAEbC,MAAAA,KAAK,EAAE;AAFM,KALF;AASbE,IAAAA,UAAU,EAAE;AACVH,MAAAA,QAAQ,EAAE,IADA;AAEVC,MAAAA,KAAK,EAAE;AAFG,KATC;AAabf,IAAAA,gBAAgB,EAAE;AAChBc,MAAAA,QAAQ,EAAE,IADM;AAEhBC,MAAAA,KAAK,EAAE;AAFS,KAbL;AAiBbG,IAAAA,SAAS,EAAE;AACTJ,MAAAA,QAAQ,EAAE,IADD;AAETC,MAAAA,KAAK,EAAE;AAFE,KAjBE;AAqBbV,IAAAA,WAAW,EAAE;AACXS,MAAAA,QAAQ,EAAE,KADC;AAEXC,MAAAA,KAAK,EAAE;AAFI,KArBA;AAyBbI,IAAAA,mBAAmB,EAAE;AACnBL,MAAAA,QAAQ,EAAE,KADS;AAEnBC,MAAAA,KAAK,EAAE;AAFY,KAzBR;AA6BbK,IAAAA,mBAAmB,EAAE;AACnBN,MAAAA,QAAQ,EAAE,IADS;AAEnBC,MAAAA,KAAK,EAAE;AAFY,KA7BR;AAiCbX,IAAAA,MAAM,EAAE;AACNW,MAAAA,KAAK,EAAE,QADD;AAEND,MAAAA,QAAQ,EAAE;AAFJ,KAjCK;AAqCblB,IAAAA,IAAI,EAAE;AACJkB,MAAAA,QAAQ,EAAE,IADN;AAEJC,MAAAA,KAAK,EAAE;AAFH,KArCO;AAyCbpB,IAAAA,MAAM,EAAE;AACNmB,MAAAA,QAAQ,EAAE,IADJ;AAENC,MAAAA,KAAK,EAAE;AAFD,KAzCK;AA6CbM,IAAAA,QAAQ,EAAE;AACRP,MAAAA,QAAQ,EAAE,IADF;AAERC,MAAAA,KAAK,EAAE;AAFC,KA7CG;AAiDbO,IAAAA,UAAU,EAAE;AACVP,MAAAA,KAAK,EAAE,YADG;AAEVD,MAAAA,QAAQ,EAAC,KAFC;AAGVS,MAAAA,OAAO,EAAC;AAHE,KAjDC;AAsDbtB,IAAAA,cAAc,EAAE;AACda,MAAAA,QAAQ,EAAE,KADI;AAEdC,MAAAA,KAAK,EAAE;AAFO,KAtDH;AA0DbZ,IAAAA,IAAI,EAAE;AACJW,MAAAA,QAAQ,EAAE,IADN;AAEJC,MAAAA,KAAK,EAAE;AAFH;AA1DO;AAjBF,C","sourcesContent":["const tokens = () => [\n {\n text: '',\n start: 0,\n end: 0\n }\n];\n\nexport default {\n model: {\n highlightChoices: false,\n partialScoring: false,\n maxSelections: 2,\n mode: 'sentence',\n prompt: 'Question Prompt goes here',\n text: '',\n tokens: tokens(),\n scoringType: 'auto',\n feedbackEnabled: true,\n rationaleEnabled: true,\n promptEnabled: true,\n teacherInstructionsEnabled: true,\n studentInstructionsEnabled: true,\n toolbarEditorPosition: 'bottom'\n },\n configuration: {\n selectionCount: {\n settings: true,\n label: 'Selection count'\n },\n correctAnswer: {\n settings: true,\n label: 'Correct Answers'\n },\n selections: {\n settings: true,\n label: 'Selections Available'\n },\n highlightChoices: {\n settings: true,\n label: 'Highlight choices'\n },\n rationale: {\n settings: true,\n label: 'Rationale'\n },\n scoringType: {\n settings: false,\n label: 'Scoring Type'\n },\n studentInstructions: {\n settings: false,\n label: 'Student Instructions'\n },\n teacherInstructions: {\n settings: true,\n label: 'Teacher Instructions'\n },\n prompt: {\n label: 'Prompt',\n settings: true\n },\n text: {\n settings: true,\n label: 'Content'\n },\n tokens: {\n settings: true,\n label: 'Tokens'\n },\n feedback: {\n settings: true,\n label: 'Feedback'\n },\n spellCheck: {\n label: 'Spellcheck',\n settings:false,\n enabled:true\n },\n partialScoring: {\n settings: false,\n label: 'Allow Partial Scoring'\n },\n mode: {\n settings: true,\n label: 'Mode'\n }\n }\n};\n"],"file":"defaultConfiguration.js"}
@@ -43,9 +43,9 @@ var _debug = _interopRequireDefault(require("debug"));
43
43
 
44
44
  var _editableHtml = _interopRequireDefault(require("@pie-lib/editable-html"));
45
45
 
46
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
46
+ 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; }
47
47
 
48
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
48
+ 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; }
49
49
 
50
50
  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); }; }
51
51
 
@@ -200,6 +200,8 @@ var Design = /*#__PURE__*/function (_React$Component) {
200
200
  rationale = _ref$rationale === void 0 ? {} : _ref$rationale,
201
201
  _ref$scoringType = _ref.scoringType,
202
202
  scoringType = _ref$scoringType === void 0 ? {} : _ref$scoringType,
203
+ _ref$spellCheck = _ref.spellCheck,
204
+ spellCheck = _ref$spellCheck === void 0 ? {} : _ref$spellCheck,
203
205
  _ref$highlightChoices = _ref.highlightChoices,
204
206
  highlightChoices = _ref$highlightChoices === void 0 ? {} : _ref$highlightChoices;
205
207
 
@@ -207,6 +209,7 @@ var Design = /*#__PURE__*/function (_React$Component) {
207
209
  teacherInstructionsEnabled = _ref2.teacherInstructionsEnabled,
208
210
  promptEnabled = _ref2.promptEnabled,
209
211
  rationaleEnabled = _ref2.rationaleEnabled,
212
+ spellCheckEnabled = _ref2.spellCheckEnabled,
210
213
  feedbackEnabled = _ref2.feedbackEnabled;
211
214
 
212
215
  var toolbarOpts = {};
@@ -243,6 +246,7 @@ var Design = /*#__PURE__*/function (_React$Component) {
243
246
  studentInstructionsEnabled: studentInstructions.settings && toggle(studentInstructions.label),
244
247
  promptEnabled: prompt.settings && toggle(prompt.label),
245
248
  rationaleEnabled: rationale.settings && toggle(rationale.label),
249
+ spellCheckEnabled: spellCheck.settings && toggle(spellCheck.label),
246
250
  scoringType: scoringType.settings && radio(scoringType.label, ['auto', 'rubric'])
247
251
  }
248
252
  }
@@ -258,7 +262,8 @@ var Design = /*#__PURE__*/function (_React$Component) {
258
262
  onChange: this.onTeacherInstructionsChanged,
259
263
  imageSupport: imageSupport,
260
264
  nonEmpty: false,
261
- toolbarOpts: toolbarOpts
265
+ toolbarOpts: toolbarOpts,
266
+ spellCheck: spellCheckEnabled
262
267
  })), promptEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
263
268
  label: prompt.label || '',
264
269
  className: classes.promptHolder
@@ -267,7 +272,8 @@ var Design = /*#__PURE__*/function (_React$Component) {
267
272
  markup: model.prompt,
268
273
  onChange: this.onPromptChanged,
269
274
  imageSupport: imageSupport,
270
- toolbarOpts: toolbarOpts
275
+ toolbarOpts: toolbarOpts,
276
+ spellCheck: spellCheckEnabled
271
277
  })), rationaleEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
272
278
  label: rationale.label || '',
273
279
  className: classes.promptHolder
@@ -276,13 +282,15 @@ var Design = /*#__PURE__*/function (_React$Component) {
276
282
  markup: model.rationale || '',
277
283
  onChange: this.onRationaleChanged,
278
284
  imageSupport: imageSupport,
279
- toolbarOpts: toolbarOpts
285
+ toolbarOpts: toolbarOpts,
286
+ spellCheck: spellCheckEnabled
280
287
  })), text.settings && /*#__PURE__*/_react["default"].createElement(_TextField["default"], {
281
288
  label: text.label,
282
289
  className: classes.input,
283
290
  multiline: true,
284
291
  value: textValue,
285
- onChange: this.changeText
292
+ onChange: this.changeText,
293
+ spellCheck: spellCheckEnabled
286
294
  }), tokens.settings && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
287
295
  label: tokens.label || '',
288
296
  className: classes.tokenizerContainer
@@ -386,4 +394,4 @@ var _default = (0, _styles.withStyles)(function (theme) {
386
394
  })(Design);
387
395
 
388
396
  exports["default"] = _default;
389
- //# sourceMappingURL=design.js.map
397
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kZXNpZ24uanN4Il0sIm5hbWVzIjpbIlBhbmVsIiwic2V0dGluZ3MiLCJ0b2dnbGUiLCJyYWRpbyIsImxvZyIsIkRlc2lnbiIsInByb3BzIiwidmFsIiwiYXBwbHkiLCJ1IiwidGV4dCIsInRva2VucyIsImV2ZW50IiwidmFsdWUiLCJ0YXJnZXQiLCJwcmVwYXJlZFRleHQiLCJzZXRTdGF0ZSIsInVwZGF0ZVRleHQiLCJtb2RlIiwiY29ycmVjdFRva2VuQ291bnQiLCJmaWx0ZXIiLCJ0IiwiY29ycmVjdCIsImxlbmd0aCIsIm1heCIsImlzRmluaXRlIiwibWF4U2VsZWN0aW9ucyIsIk1hdGgiLCJmbiIsIm9uTW9kZWxDaGFuZ2VkIiwibW9kZWwiLCJ1cGRhdGUiLCJmZWVkYmFjayIsInBhcnRpYWxTY29yaW5nIiwicHJvbXB0IiwidGVhY2hlckluc3RydWN0aW9ucyIsInJhdGlvbmFsZSIsInN0YXRlIiwiblByb3BzIiwidGV4dFZhbHVlIiwiY2xhc3NlcyIsImltYWdlU3VwcG9ydCIsImNvbmZpZ3VyYXRpb24iLCJvbkNvbmZpZ3VyYXRpb25DaGFuZ2VkIiwic2VsZWN0aW9ucyIsInNlbGVjdGlvbkNvdW50IiwiY29ycmVjdEFuc3dlciIsInN0dWRlbnRJbnN0cnVjdGlvbnMiLCJzY29yaW5nVHlwZSIsInNwZWxsQ2hlY2siLCJoaWdobGlnaHRDaG9pY2VzIiwidGVhY2hlckluc3RydWN0aW9uc0VuYWJsZWQiLCJwcm9tcHRFbmFibGVkIiwicmF0aW9uYWxlRW5hYmxlZCIsInNwZWxsQ2hlY2tFbmFibGVkIiwiZmVlZGJhY2tFbmFibGVkIiwidG9vbGJhck9wdHMiLCJ0b29sYmFyRWRpdG9yUG9zaXRpb24iLCJwb3NpdGlvbiIsInRva2Vuc01vZGVsIiwiU2V0dGluZ3MiLCJsYWJlbCIsIlByb3BlcnRpZXMiLCJzdHVkZW50SW5zdHJ1Y3Rpb25zRW5hYmxlZCIsImNvbnRhaW5lciIsInByb21wdEhvbGRlciIsIm9uVGVhY2hlckluc3RydWN0aW9uc0NoYW5nZWQiLCJvblByb21wdENoYW5nZWQiLCJvblJhdGlvbmFsZUNoYW5nZWQiLCJpbnB1dCIsImNoYW5nZVRleHQiLCJ0b2tlbml6ZXJDb250YWluZXIiLCJ0b2tlbml6ZXIiLCJjaGFuZ2VUb2tlbnMiLCJjaGlwIiwiY2hhbmdlTWF4U2VsZWN0aW9ucyIsIm51bWJlckZpZWxkIiwiY2hhbmdlRmVlZGJhY2siLCJSZWFjdCIsIkNvbXBvbmVudCIsIlByb3BUeXBlcyIsIm9iamVjdCIsImlzUmVxdWlyZWQiLCJmdW5jIiwic2hhcGUiLCJhZGQiLCJ0aGVtZSIsInBhZGRpbmdUb3AiLCJzcGFjaW5nIiwidW5pdCIsInBhZGRpbmdSaWdodCIsIm1hcmdpblJpZ2h0IiwiYm90dG9tIiwibGVmdCIsInJpZ2h0IiwiaGVpZ2h0IiwiY29udGVudCIsImJhY2tncm91bmRDb2xvciIsInBhbGV0dGUiLCJwcmltYXJ5IiwibWFpbiIsIm1hcmdpbkJvdHRvbSIsIndpZHRoIiwicGFkZGluZ0JvdHRvbSIsIm1hcmdpblRvcCIsIm1haW5PcHRzIiwianVzdGlmeUNvbnRlbnQiLCJkaXNwbGF5IiwiYWxpZ25JdGVtcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFPQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7OztBQUVBLElBQVFBLEtBQVIsR0FBaUNDLGtCQUFqQyxDQUFRRCxLQUFSO0FBQUEsSUFBZUUsTUFBZixHQUFpQ0Qsa0JBQWpDLENBQWVDLE1BQWY7QUFBQSxJQUF1QkMsS0FBdkIsR0FBaUNGLGtCQUFqQyxDQUF1QkUsS0FBdkI7QUFFQSxJQUFNQyxHQUFHLEdBQUcsdUJBQU0sb0NBQU4sQ0FBWjs7SUFFYUMsTTs7Ozs7QUFlWCxrQkFBWUMsS0FBWixFQUFtQjtBQUFBOztBQUFBO0FBQ2pCLDhCQUFNQSxLQUFOO0FBRGlCLG1HQW9CTiwwQkFBUyxVQUFBQyxHQUFHLEVBQUk7QUFDM0IsWUFBS0Ms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QyxJQUFkLEdBQXFCO0FBRi9CLEtBckIyQjtBQXlCbENqQixJQUFBQSxTQUFTLEVBQUU7QUFDVGdDLE1BQUFBLFNBQVMsRUFBRWxCLEtBQUssQ0FBQ0UsT0FBTixDQUFjQyxJQUFkLEdBQXFCO0FBRHZCLEtBekJ1QjtBQTRCbENnQixJQUFBQSxRQUFRLEVBQUU7QUFDUkgsTUFBQUEsS0FBSyxFQUFFLE1BREM7QUFFUkksTUFBQUEsY0FBYyxFQUFFLGVBRlI7QUFHUkMsTUFBQUEsT0FBTyxFQUFFLE1BSEQ7QUFJUkMsTUFBQUEsVUFBVSxFQUFFO0FBSkosS0E1QndCO0FBa0NsQzNDLElBQUFBLFlBQVksRUFBRTtBQUNacUMsTUFBQUEsS0FBSyxFQUFFLE1BREs7QUFFWkMsTUFBQUEsYUFBYSxFQUFFakIsS0FBSyxDQUFDRSxPQUFOLENBQWNDLElBQWQsR0FBcUIsQ0FGeEI7QUFHWlksTUFBQUEsWUFBWSxFQUFFZixLQUFLLENBQUNFLE9BQU4sQ0FBY0MsSUFBZCxHQUFxQjtBQUh2QixLQWxDb0I7QUF1Q2xDdkQsSUFBQUEsTUFBTSxFQUFFO0FBQ05xRCxNQUFBQSxVQUFVLEVBQUVELEtBQUssQ0FBQ0UsT0FBTixDQUFjQyxJQUFkLEdBQXFCLENBRDNCO0FBRU5hLE1BQUFBLEtBQUssRUFBRTtBQUZELEtBdkMwQjtBQTJDbEMxQixJQUFBQSxXQUFXLEVBQUU7QUFDWDBCLE1BQUFBLEtBQUssRUFBRTtBQURJO0FBM0NxQixHQUFMO0FBQUEsQ0FBaEIsRUE4Q1hqRyxNQTlDVyxDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgVGV4dEZpZWxkIGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL1RleHRGaWVsZCc7XG5pbXBvcnQgeyB3aXRoU3R5bGVzIH0gZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvc3R5bGVzJztcbmltcG9ydCBjbG9uZURlZXAgZnJvbSAnbG9kYXNoL2Nsb25lRGVlcCc7XG5pbXBvcnQgZGVib3VuY2UgZnJvbSAnbG9kYXNoL2RlYm91bmNlJztcbmltcG9ydCB7IFRva2VuaXplciB9IGZyb20gJ0BwaWUtbGliL3RleHQtc2VsZWN0JztcbmltcG9ydCB7XG4gIElucHV0Q29udGFpbmVyLFxuICBOdW1iZXJUZXh0RmllbGQsXG4gIEZlZWRiYWNrQ29uZmlnLFxuICBzZXR0aW5ncyxcbiAgbGF5b3V0XG59IGZyb20gJ0BwaWUtbGliL2NvbmZpZy11aSc7XG5pbXBvcnQgQ2hpcCBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9DaGlwJztcbmltcG9ydCBkZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5pbXBvcnQgRWRpdGFibGVIdG1sIGZyb20gJ0BwaWUtbGliL2VkaXRhYmxlLWh0bWwnO1xuXG5jb25zdCB7IFBhbmVsLCB0b2dnbGUsIHJhZGlvIH0gPSBzZXR0aW5ncztcblxuY29uc3QgbG9nID0gZGVidWcoJ0BwaWUtZWxlbWVudDpzZWxlY3QtdGV4dDpjb25maWd1cmUnKTtcblxuZXhwb3J0IGNsYXNzIERlc2lnbiBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgbW9kZWw6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBjb25maWd1cmF0aW9uOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgY2xhc3NlczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIG9uTW9kZWxDaGFuZ2VkOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uQ29uZmlndXJhdGlvbkNoYW5nZWQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgaW1hZ2VTdXBwb3J0OiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgICAgYWRkOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgZGVsZXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkXG4gICAgfSlcbiAgfTtcblxuICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge307XG5cbiAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG5cbiAgICBjb25zdCB7IG1vZGVsIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgIHRleHQ6IChtb2RlbCAmJiBtb2RlbC50ZXh0KSB8fCAnJ1xuICAgIH07XG4gIH1cblxuICBVTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhuUHJvcHMpIHtcbiAgICBjb25zdCB7IG1vZGVsIH0gPSBuUHJvcHM7XG5cbiAgICBpZiAobW9kZWwgJiYgbW9kZWwudGV4dCkge1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgIHRleHQ6IG1vZGVsLnRleHRcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZVRleHQgPSBkZWJvdW5jZSh2YWwgPT4ge1xuICAgIHRoaXMuYXBwbHkodSA9PiB7XG4gICAgICB1LnRleHQgPSB2YWw7XG4gICAgICB1LnRva2VucyA9IFtdO1xuICAgIH0pO1xuICB9LCAyMDApO1xuXG4gIGNoYW5nZVRleHQgPSBldmVudCA9PiB7XG4gICAgY29uc3QgdmFsdWUgPSBldmVudC50YXJnZXQudmFsdWU7XG4gICAgY29uc3QgcHJlcGFyZWRUZXh0ID0gdmFsdWU7XG5cbiAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgIHRleHQ6IHZhbHVlXG4gICAgfSk7XG4gICAgdGhpcy51cGRhdGVUZXh0KHByZXBhcmVkVGV4dCk7XG4gIH07XG5cbiAgY2hhbmdlVG9rZW5zID0gKHRva2VucywgbW9kZSkgPT4ge1xuICAgIHRoaXMuYXBwbHkodSA9PiB7XG4gICAgICB1LnRva2VucyA9IHRva2VucztcbiAgICAgIHUubW9kZSA9IG1vZGU7XG5cbiAgICAgIGNvbnN0IGNvcnJlY3RUb2tlbkNvdW50ID0gdG9rZW5zLmZpbHRlcih0ID0+IHQuY29ycmVjdCkubGVuZ3RoO1xuICAgICAgY29uc3QgbWF4ID0gaXNGaW5pdGUodS5tYXhTZWxlY3Rpb25zKSA/IHUubWF4U2VsZWN0aW9ucyA6IDA7XG5cbiAgICAgIHUubWF4U2VsZWN0aW9ucyA9IE1hdGgubWF4KG1heCwgY29ycmVjdFRva2VuQ291bnQpO1xuICAgIH0pO1xuICB9O1xuXG4gIGNoYW5nZU1heFNlbGVjdGlvbnMgPSAoZXZlbnQsIG1heCkgPT4ge1xuICAgIHRoaXMuYXBwbHkodSA9PiAodS5tYXhTZWxlY3Rpb25zID0gbWF4KSk7XG4gIH07XG5cbiAgYXBwbHkgPSBmbiA9PiB7XG4gICAgY29uc3QgeyBvbk1vZGVsQ2hhbmdlZCwgbW9kZWwgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgdXBkYXRlID0gY2xvbmVEZWVwKG1vZGVsKTtcbiAgICBmbih1cGRhdGUpO1xuICAgIG9uTW9kZWxDaGFuZ2VkKHVwZGF0ZSk7XG4gIH07XG5cbiAgY2hhbmdlRmVlZGJhY2sgPSBmZWVkYmFjayA9PiB7XG4gICAgdGhpcy5hcHBseSh1ID0+ICh1LmZlZWRiYWNrID0gZmVlZGJhY2spKTtcbiAgfTtcblxuICBjaGFuZ2VQYXJ0aWFsU2NvcmluZyA9IHBhcnRpYWxTY29yaW5nID0+IHtcbiAgICBjb25zdCB7IG9uTW9kZWxDaGFuZ2VkLCBtb2RlbCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB1cGRhdGUgPSBjbG9uZURlZXAobW9kZWwpO1xuICAgIHVwZGF0ZS5wYXJ0aWFsU2NvcmluZyA9IHBhcnRpYWxTY29yaW5nO1xuICAgIG9uTW9kZWxDaGFuZ2VkKHVwZGF0ZSk7XG4gIH07XG5cbiAgb25Qcm9tcHRDaGFuZ2VkID0gcHJvbXB0ID0+IHtcbiAgICBjb25zdCB7IG9uTW9kZWxDaGFuZ2VkLCBtb2RlbCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB1cGRhdGUgPSBjbG9uZURlZXAobW9kZWwpO1xuXG4gICAgdXBkYXRlLnByb21wdCA9IHByb21wdDtcbiAgICBvbk1vZGVsQ2hhbmdlZCh1cGRhdGUpO1xuICB9O1xuXG4gIG9uVGVhY2hlckluc3RydWN0aW9uc0NoYW5nZWQgPSB0ZWFjaGVySW5zdHJ1Y3Rpb25zID0+IHtcbiAgICBjb25zdCB7IG9uTW9kZWxDaGFuZ2VkLCBtb2RlbCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB1cGRhdGUgPSBjbG9uZURlZXAobW9kZWwpO1xuXG4gICAgdXBkYXRlLnRlYWNoZXJJbnN0cnVjdGlvbnMgPSB0ZWFjaGVySW5zdHJ1Y3Rpb25zO1xuICAgIG9uTW9kZWxDaGFuZ2VkKHVwZGF0ZSk7XG4gIH07XG5cbiAgb25SYXRpb25hbGVDaGFuZ2VkID0gcmF0aW9uYWxlID0+IHtcbiAgICBjb25zdCB7IG9uTW9kZWxDaGFuZ2VkLCBtb2RlbCB9ID0gdGhpcy5wcm9wcztcblxuICAgIG9uTW9kZWxDaGFuZ2VkKHtcbiAgICAgIC4uLm1vZGVsLFxuICAgICAgcmF0aW9uYWxlXG4gICAgfSk7XG4gIH07XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHsgdGV4dDogdGV4dFZhbHVlIH0gPSB0aGlzLnN0YXRlO1xuICAgIGNvbnN0IHtcbiAgICAgIG1vZGVsLFxuICAgICAgY2xhc3NlcyxcbiAgICAgIGltYWdlU3VwcG9ydCxcbiAgICAgIG9uTW9kZWxDaGFuZ2VkLFxuICAgICAgY29uZmlndXJhdGlvbixcbiAgICAgIG9uQ29uZmlndXJhdGlvbkNoYW5nZWRcbiAgICB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7XG4gICAgICBwcm9tcHQgPSB7fSxcbiAgICAgIHRleHQgPSB7fSxcbiAgICAgIHRva2VucyA9IHt9LFxuICAgICAgbW9kZSA9IHt9LFxuICAgICAgZmVlZGJhY2sgPSB7fSxcbiAgICAgIHBhcnRpYWxTY29yaW5nID0ge30sXG4gICAgICBzZWxlY3Rpb25zID0ge30sXG4gICAgICBzZWxlY3Rpb25Db3VudCA9IHt9LFxuICAgICAgY29ycmVjdEFuc3dlciA9IHt9LFxuICAgICAgdGVhY2hlckluc3RydWN0aW9ucyA9IHt9LFxuICAgICAgc3R1ZGVudEluc3RydWN0aW9ucyA9IHt9LFxuICAgICAgcmF0aW9uYWxlID0ge30sXG4gICAgICBzY29yaW5nVHlwZSA9IHt9LFxuICAgICAgc3BlbGxDaGVjayA9IHt9LFxuICAgICAgaGlnaGxpZ2h0Q2hvaWNlcyA9IHt9XG4gICAgfSA9IGNvbmZpZ3VyYXRpb24gfHwge307XG4gICAgY29uc3Qge1xuICAgICAgdGVhY2hlckluc3RydWN0aW9uc0VuYWJsZWQsIHByb21wdEVuYWJsZWQsIHJhdGlvbmFsZUVuYWJsZWQsIHNwZWxsQ2hlY2tFbmFibGVkLCBmZWVkYmFja0VuYWJsZWRcbiAgICB9ID0gbW9kZWwgfHwge307XG4gICAgY29uc3QgdG9vbGJhck9wdHMgPSB7fTtcblxuICAgIHN3aXRjaCAobW9kZWwudG9vbGJhckVkaXRvclBvc2l0aW9uKSB7XG4gICAgICBjYXNlICd0b3AnOlxuICAgICAgICB0b29sYmFyT3B0cy5wb3NpdGlvbiA9ICd0b3AnO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRvb2xiYXJPcHRzLnBvc2l0aW9uID0gJ2JvdHRvbSc7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBsZXQgeyB0b2tlbnM6IHRva2Vuc01vZGVsIH0gPSBtb2RlbDtcbiAgICB0b2tlbnNNb2RlbCA9IHRva2Vuc01vZGVsIHx8IFtdO1xuXG4gICAgbG9nKCdbcmVuZGVyXSBtYXhTZWxlY3Rpb25zOicsIG1vZGVsLm1heFNlbGVjdGlvbnMpO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxsYXlvdXQuQ29uZmlnTGF5b3V0XG4gICAgICAgIHNldHRpbmdzPXtcbiAgICAgICAgICA8UGFuZWxcbiAgICAgICAgICAgIG1vZGVsPXttb2RlbH1cbiAgICAgICAgICAgIGNvbmZpZ3VyYXRpb249e2NvbmZpZ3VyYXRpb259XG4gICAgICAgICAgICBvbkNoYW5nZU1vZGVsPXttb2RlbCA9PiBvbk1vZGVsQ2hhbmdlZChtb2RlbCl9XG4gICAgICAgICAgICBvbkNoYW5nZUNvbmZpZ3VyYXRpb249e29uQ29uZmlndXJhdGlvbkNoYW5nZWR9XG4gICAgICAgICAgICBncm91cHM9e3tcbiAgICAgICAgICAgICAgU2V0dGluZ3M6IHtcbiAgICAgICAgICAgICAgICBwYXJ0aWFsU2NvcmluZzpcbiAgICAgICAgICAgICAgICAgIHBhcnRpYWxTY29yaW5nLnNldHRpbmdzICYmIHRvZ2dsZShwYXJ0aWFsU2NvcmluZy5sYWJlbCksXG4gICAgICAgICAgICAgICAgaGlnaGxpZ2h0Q2hvaWNlczpcbiAgICAgICAgICAgICAgICAgIGhpZ2hsaWdodENob2ljZXMuc2V0dGluZ3MgJiYgdG9nZ2xlKGhpZ2hsaWdodENob2ljZXMubGFiZWwpLFxuICAgICAgICAgICAgICAgIGZlZWRiYWNrRW5hYmxlZDpcbiAgICAgICAgICAgICAgICAgIGZlZWRiYWNrLnNldHRpbmdzICYmIHRvZ2dsZShmZWVkYmFjay5sYWJlbClcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgUHJvcGVydGllczoge1xuICAgICAgICAgICAgICAgIHRlYWNoZXJJbnN0cnVjdGlvbnNFbmFibGVkOlxuICAgICAgICAgICAgICAgICAgdGVhY2hlckluc3RydWN0aW9ucy5zZXR0aW5ncyAmJlxuICAgICAgICAgICAgICAgICAgdG9nZ2xlKHRlYWNoZXJJbnN0cnVjdGlvbnMubGFiZWwpLFxuICAgICAgICAgICAgICAgIHN0dWRlbnRJbnN0cnVjdGlvbnNFbmFibGVkOlxuICAgICAgICAgICAgICAgICAgc3R1ZGVudEluc3RydWN0aW9ucy5zZXR0aW5ncyAmJlxuICAgICAgICAgICAgICAgICAgdG9nZ2xlKHN0dWRlbnRJbnN0cnVjdGlvbnMubGFiZWwpLFxuICAgICAgICAgICAgICAgIHByb21wdEVuYWJsZWQ6IHByb21wdC5zZXR0aW5ncyAmJiB0b2dnbGUocHJvbXB0LmxhYmVsKSxcbiAgICAgICAgICAgICAgICByYXRpb25hbGVFbmFibGVkOiByYXRpb25hbGUuc2V0dGluZ3MgJiYgdG9nZ2xlKHJhdGlvbmFsZS5sYWJlbCksXG4gICAgICAgICAgICAgICAgc3BlbGxDaGVja0VuYWJsZWQ6XG4gICAgICAgICAgICAgICAgICAgIHNwZWxsQ2hlY2suc2V0dGluZ3MgJiYgdG9nZ2xlKHNwZWxsQ2hlY2subGFiZWwpLFxuICAgICAgICAgICAgICAgIHNjb3JpbmdUeXBlOlxuICAgICAgICAgICAgICAgICAgc2NvcmluZ1R5cGUuc2V0dGluZ3MgJiZcbiAgICAgICAgICAgICAgICAgIHJhZGlvKHNjb3JpbmdUeXBlLmxhYmVsLCBbJ2F1dG8nLCAncnVicmljJ10pXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH19XG4gICAgICAgICAgLz5cbiAgICAgICAgfVxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xhc3Nlcy5jb250YWluZXJ9PlxuICAgICAgICAgIHt0ZWFjaGVySW5zdHJ1Y3Rpb25zRW5hYmxlZCAmJiAoXG4gICAgICAgICAgICA8SW5wdXRDb250YWluZXJcbiAgICAgICAgICAgICAgbGFiZWw9e3RlYWNoZXJJbnN0cnVjdGlvbnMubGFiZWx9XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3Nlcy5wcm9tcHRIb2xkZXJ9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxFZGl0YWJsZUh0bWxcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzZXMucHJvbXB0fVxuICAgICAgICAgICAgICAgIG1hcmt1cD17bW9kZWwudGVhY2hlckluc3RydWN0aW9ucyB8fCAnJ31cbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17dGhpcy5vblRlYWNoZXJJbnN0cnVjdGlvbnNDaGFuZ2VkfVxuICAgICAgICAgICAgICAgIGltYWdlU3VwcG9ydD17aW1hZ2VTdXBwb3J0fVxuICAgICAgICAgICAgICAgIG5vbkVtcHR5PXtmYWxzZX1cbiAgICAgICAgICAgICAgICB0b29sYmFyT3B0cz17dG9vbGJhck9wdHN9XG4gICAgICAgICAgICAgICAgc3BlbGxDaGVjaz17c3BlbGxDaGVja0VuYWJsZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L0lucHV0Q29udGFpbmVyPlxuICAgICAgICAgICl9XG5cbiAgICAgICAgICB7cHJvbXB0RW5hYmxlZCAmJiAoXG4gICAgICAgICAgICA8SW5wdXRDb250YWluZXJcbiAgICAgICAgICAgICAgbGFiZWw9e3Byb21wdC5sYWJlbCB8fCAnJ31cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLnByb21wdEhvbGRlcn1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPEVkaXRhYmxlSHRtbFxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3Nlcy5wcm9tcHR9XG4gICAgICAgICAgICAgICAgbWFya3VwPXttb2RlbC5wcm9tcHR9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9e3RoaXMub25Qcm9tcHRDaGFuZ2VkfVxuICAgICAgICAgICAgICAgIGltYWdlU3VwcG9ydD17aW1hZ2VTdXBwb3J0fVxuICAgICAgICAgICAgICAgIHRvb2xiYXJPcHRzPXt0b29sYmFyT3B0c31cbiAgICAgICAgICAgICAgICBzcGVsbENoZWNrPXtzcGVsbENoZWNrRW5hYmxlZH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvSW5wdXRDb250YWluZXI+XG4gICAgICAgICAgKX1cblxuICAgICAgICAgIHtyYXRpb25hbGVFbmFibGVkICYmIChcbiAgICAgICAgICAgIDxJbnB1dENvbnRhaW5lclxuICAgICAgICAgICAgICBsYWJlbD17cmF0aW9uYWxlLmxhYmVsIHx8ICcnfVxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzZXMucHJvbXB0SG9sZGVyfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8RWRpdGFibGVIdG1sXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLnByb21wdH1cbiAgICAgICAgICAgICAgICBtYXJrdXA9e21vZGVsLnJhdGlvbmFsZSB8fCAnJ31cbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17dGhpcy5vblJhdGlvbmFsZUNoYW5nZWR9XG4gICAgICAgICAgICAgICAgaW1hZ2VTdXBwb3J0PXtpbWFnZVN1cHBvcnR9XG4gICAgICAgICAgICAgICAgdG9vbGJhck9wdHM9e3Rvb2xiYXJPcHRzfVxuICAgICAgICAgICAgICAgIHNwZWxsQ2hlY2s9e3NwZWxsQ2hlY2tFbmFibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9JbnB1dENvbnRhaW5lcj5cbiAgICAgICAgICApfVxuXG4gICAgICAgICAge3RleHQuc2V0dGluZ3MgJiYgKFxuICAgICAgICAgICAgPFRleHRGaWVsZFxuICAgICAgICAgICAgICBsYWJlbD17dGV4dC5sYWJlbH1cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLmlucHV0fVxuICAgICAgICAgICAgICBtdWx0aWxpbmVcbiAgICAgICAgICAgICAgdmFsdWU9e3RleHRWYWx1ZX1cbiAgICAgICAgICAgICAgb25DaGFuZ2U9e3RoaXMuY2hhbmdlVGV4dH1cbiAgICAgICAgICAgICAgc3BlbGxDaGVjaz17c3BlbGxDaGVja0VuYWJsZWR9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICl9XG5cbiAgICAgICAgICB7dG9rZW5zLnNldHRpbmdzICYmIChcbiAgICAgICAgICAgIDxJbnB1dENvbnRhaW5lclxuICAgICAgICAgICAgICBsYWJlbD17dG9rZW5zLmxhYmVsIHx8ICcnfVxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzZXMudG9rZW5pemVyQ29udGFpbmVyfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8VG9rZW5pemVyXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLnRva2VuaXplcn1cbiAgICAgICAgICAgICAgICB0ZXh0PXttb2RlbC50ZXh0fVxuICAgICAgICAgICAgICAgIHRva2Vucz17dG9rZW5zTW9kZWx9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9e3RoaXMuY2hhbmdlVG9rZW5zfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9JbnB1dENvbnRhaW5lcj5cbiAgICAgICAgICApfVxuXG4gICAgICAgICAge21vZGUuc2V0dGluZ3MgJiYgKFxuICAgICAgICAgICAgPENoaXBcbiAgICAgICAgICAgICAgbGFiZWw9e2Ake21vZGUubGFiZWx9OiAke21vZGVsLm1vZGUgPyBtb2RlbC5tb2RlIDogJ05vbmUnfWB9XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3Nlcy5jaGlwfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuXG4gICAgICAgICAge3NlbGVjdGlvbnMuc2V0dGluZ3MgJiYgKFxuICAgICAgICAgICAgPENoaXBcbiAgICAgICAgICAgICAgbGFiZWw9e2Ake3NlbGVjdGlvbnMubGFiZWx9OiAke3Rva2Vuc01vZGVsLmxlbmd0aH1gfVxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzZXMuY2hpcH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cblxuICAgICAgICAgIHtjb3JyZWN0QW5zd2VyLnNldHRpbmdzICYmIChcbiAgICAgICAgICAgIDxDaGlwXG4gICAgICAgICAgICAgIGxhYmVsPXtgJHtjb3JyZWN0QW5zd2VyLmxhYmVsfTogJHtcbiAgICAgICAgICAgICAgICB0b2tlbnNNb2RlbC5maWx0ZXIodCA9PiB0LmNvcnJlY3QpLmxlbmd0aFxuICAgICAgICAgICAgICB9YH1cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLmNoaXB9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICl9XG5cbiAgICAgICAgICB7c2VsZWN0aW9uQ291bnQuc2V0dGluZ3MgJiYgKFxuICAgICAgICAgICAgPE51bWJlclRleHRGaWVsZFxuICAgICAgICAgICAgICBtaW49e3Rva2Vuc01vZGVsLmZpbHRlcih0ID0+IHQuY29ycmVjdCkubGVuZ3RoIHx8IDB9XG4gICAgICAgICAgICAgIGxhYmVsPXtgJHtzZWxlY3Rpb25Db3VudC5sYWJlbH0gKDA6YW55KWB9XG4gICAgICAgICAgICAgIG1heD17dG9rZW5zTW9kZWwubGVuZ3RofVxuICAgICAgICAgICAgICB2YWx1ZT17bW9kZWwubWF4U2VsZWN0aW9uc31cbiAgICAgICAgICAgICAgb25DaGFuZ2U9e3RoaXMuY2hhbmdlTWF4U2VsZWN0aW9uc31cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLm51bWJlckZpZWxkfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuXG4gICAgICAgICAge2ZlZWRiYWNrRW5hYmxlZCAmJiAoXG4gICAgICAgICAgICA8RmVlZGJhY2tDb25maWdcbiAgICAgICAgICAgICAgZmVlZGJhY2s9e21vZGVsLmZlZWRiYWNrfVxuICAgICAgICAgICAgICBvbkNoYW5nZT17dGhpcy5jaGFuZ2VGZWVkYmFja31cbiAgICAgICAgICAgICAgdG9vbGJhck9wdHM9e3Rvb2xiYXJPcHRzfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbGF5b3V0LkNvbmZpZ0xheW91dD5cbiAgICApO1xuICB9XG59XG5leHBvcnQgZGVmYXVsdCB3aXRoU3R5bGVzKHRoZW1lID0+ICh7XG4gIGNvbnRhaW5lcjoge1xuICAgIHBhZGRpbmdUb3A6IHRoZW1lLnNwYWNpbmcudW5pdFxuICB9LFxuICB0b2tlbml6ZXJDb250YWluZXI6IHtcbiAgICBwYWRkaW5nUmlnaHQ6IDAsXG4gICAgbWFyZ2luUmlnaHQ6IDAsXG4gICAgJyY6YWZ0ZXInOiB7XG4gICAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICAgIGJvdHRvbTogMCxcbiAgICAgIGxlZnQ6IDAsXG4gICAgICByaWdodDogMCxcbiAgICAgIGhlaWdodDogJzFweCcsXG4gICAgICBjb250ZW50OiAnXCJcIicsXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLnBhbGV0dGUucHJpbWFyeS5tYWluXG4gICAgfSxcbiAgICBtYXJnaW5Cb3R0b206IHRoZW1lLnNwYWNpbmcudW5pdFxuICB9LFxuICBjaGlwOiB7XG4gICAgbWFyZ2luUmlnaHQ6IHRoZW1lLnNwYWNpbmcudW5pdCAqIDJcbiAgfSxcbiAgaW5wdXQ6IHtcbiAgICB3aWR0aDogJzEwMCUnLFxuICAgIHBhZGRpbmdCb3R0b206IHRoZW1lLnNwYWNpbmcudW5pdCAqIDNcbiAgfSxcbiAgdG9rZW5pemVyOiB7XG4gICAgbWFyZ2luVG9wOiB0aGVtZS5zcGFjaW5nLnVuaXQgKiAyXG4gIH0sXG4gIG1haW5PcHRzOiB7XG4gICAgd2lkdGg6ICcxMDAlJyxcbiAgICBqdXN0aWZ5Q29udGVudDogJ3NwYWNlLWJldHdlZW4nLFxuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBhbGlnbkl0ZW1zOiAnYmFzZWxpbmUnXG4gIH0sXG4gIHByb21wdEhvbGRlcjoge1xuICAgIHdpZHRoOiAnMTAwJScsXG4gICAgcGFkZGluZ0JvdHRvbTogdGhlbWUuc3BhY2luZy51bml0ICogMixcbiAgICBtYXJnaW5Cb3R0b206IHRoZW1lLnNwYWNpbmcudW5pdCAqIDJcbiAgfSxcbiAgcHJvbXB0OiB7XG4gICAgcGFkZGluZ1RvcDogdGhlbWUuc3BhY2luZy51bml0ICogMixcbiAgICB3aWR0aDogJzEwMCUnXG4gIH0sXG4gIG51bWJlckZpZWxkOiB7XG4gICAgd2lkdGg6ICcxODBweCdcbiAgfVxufSkpKERlc2lnbik7XG4iXX0=
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/design.jsx"],"names":["Panel","settings","toggle","radio","log","Design","props","val","apply","u","text","tokens","event","value","target","preparedText","setState","updateText","mode","correctTokenCount","filter","t","correct","length","max","isFinite","maxSelections","Math","fn","onModelChanged","model","update","feedback","partialScoring","prompt","teacherInstructions","rationale","state","nProps","textValue","classes","imageSupport","configuration","onConfigurationChanged","selections","selectionCount","correctAnswer","studentInstructions","scoringType","highlightChoices","teacherInstructionsEnabled","promptEnabled","rationaleEnabled","feedbackEnabled","toolbarOpts","toolbarEditorPosition","position","tokensModel","Settings","label","Properties","studentInstructionsEnabled","container","promptHolder","onTeacherInstructionsChanged","onPromptChanged","onRationaleChanged","input","changeText","tokenizerContainer","tokenizer","changeTokens","chip","changeMaxSelections","numberField","changeFeedback","React","Component","PropTypes","object","isRequired","func","shape","add","theme","paddingTop","spacing","unit","paddingRight","marginRight","bottom","left","right","height","content","backgroundColor","palette","primary","main","marginBottom","width","paddingBottom","marginTop","mainOpts","justifyContent","display","alignItems"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport TextField from '@material-ui/core/TextField';\nimport { withStyles } from '@material-ui/core/styles';\nimport cloneDeep from 'lodash/cloneDeep';\nimport debounce from 'lodash/debounce';\nimport { Tokenizer } from '@pie-lib/text-select';\nimport {\n InputContainer,\n NumberTextField,\n FeedbackConfig,\n settings,\n layout\n} from '@pie-lib/config-ui';\nimport Chip from '@material-ui/core/Chip';\nimport debug from 'debug';\nimport EditableHtml from '@pie-lib/editable-html';\n\nconst { Panel, toggle, radio } = settings;\n\nconst log = debug('@pie-element:select-text:configure');\n\nexport class Design extends React.Component {\n static propTypes = {\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n onModelChanged: PropTypes.func.isRequired,\n onConfigurationChanged: PropTypes.func.isRequired,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired\n })\n };\n\n static defaultProps = {};\n\n constructor(props) {\n super(props);\n\n const { model } = this.props;\n\n this.state = {\n text: (model && model.text) || ''\n };\n }\n\n UNSAFE_componentWillReceiveProps(nProps) {\n const { model } = nProps;\n\n if (model && model.text) {\n this.setState({\n text: model.text\n });\n }\n }\n\n updateText = debounce(val => {\n this.apply(u => {\n u.text = val;\n u.tokens = [];\n });\n }, 200);\n\n changeText = event => {\n const value = event.target.value;\n const preparedText = value;\n\n this.setState({\n text: value\n });\n this.updateText(preparedText);\n };\n\n changeTokens = (tokens, mode) => {\n this.apply(u => {\n u.tokens = tokens;\n u.mode = mode;\n\n const correctTokenCount = tokens.filter(t => t.correct).length;\n const max = isFinite(u.maxSelections) ? u.maxSelections : 0;\n\n u.maxSelections = Math.max(max, correctTokenCount);\n });\n };\n\n changeMaxSelections = (event, max) => {\n this.apply(u => (u.maxSelections = max));\n };\n\n apply = fn => {\n const { onModelChanged, model } = this.props;\n const update = cloneDeep(model);\n fn(update);\n onModelChanged(update);\n };\n\n changeFeedback = feedback => {\n this.apply(u => (u.feedback = feedback));\n };\n\n changePartialScoring = partialScoring => {\n const { onModelChanged, model } = this.props;\n const update = cloneDeep(model);\n update.partialScoring = partialScoring;\n onModelChanged(update);\n };\n\n onPromptChanged = prompt => {\n const { onModelChanged, model } = this.props;\n const update = cloneDeep(model);\n\n update.prompt = prompt;\n onModelChanged(update);\n };\n\n onTeacherInstructionsChanged = teacherInstructions => {\n const { onModelChanged, model } = this.props;\n const update = cloneDeep(model);\n\n update.teacherInstructions = teacherInstructions;\n onModelChanged(update);\n };\n\n onRationaleChanged = rationale => {\n const { onModelChanged, model } = this.props;\n\n onModelChanged({\n ...model,\n rationale\n });\n };\n\n render() {\n const { text: textValue } = this.state;\n const {\n model,\n classes,\n imageSupport,\n onModelChanged,\n configuration,\n onConfigurationChanged\n } = this.props;\n const {\n prompt = {},\n text = {},\n tokens = {},\n mode = {},\n feedback = {},\n partialScoring = {},\n selections = {},\n selectionCount = {},\n correctAnswer = {},\n teacherInstructions = {},\n studentInstructions = {},\n rationale = {},\n scoringType = {},\n highlightChoices = {}\n } = configuration || {};\n const {\n teacherInstructionsEnabled, promptEnabled, rationaleEnabled, feedbackEnabled\n } = model || {};\n const toolbarOpts = {};\n\n switch (model.toolbarEditorPosition) {\n case 'top':\n toolbarOpts.position = 'top';\n break;\n default:\n toolbarOpts.position = 'bottom';\n break;\n }\n let { tokens: tokensModel } = model;\n tokensModel = tokensModel || [];\n\n log('[render] maxSelections:', model.maxSelections);\n\n return (\n <layout.ConfigLayout\n settings={\n <Panel\n model={model}\n configuration={configuration}\n onChangeModel={model => onModelChanged(model)}\n onChangeConfiguration={onConfigurationChanged}\n groups={{\n Settings: {\n partialScoring:\n partialScoring.settings && toggle(partialScoring.label),\n highlightChoices:\n highlightChoices.settings && toggle(highlightChoices.label),\n feedbackEnabled:\n feedback.settings && toggle(feedback.label)\n },\n Properties: {\n teacherInstructionsEnabled:\n teacherInstructions.settings &&\n toggle(teacherInstructions.label),\n studentInstructionsEnabled:\n studentInstructions.settings &&\n toggle(studentInstructions.label),\n promptEnabled: prompt.settings && toggle(prompt.label),\n rationaleEnabled: rationale.settings && toggle(rationale.label),\n scoringType:\n scoringType.settings &&\n radio(scoringType.label, ['auto', 'rubric'])\n }\n }}\n />\n }\n >\n <div className={classes.container}>\n {teacherInstructionsEnabled && (\n <InputContainer\n label={teacherInstructions.label}\n className={classes.promptHolder}\n >\n <EditableHtml\n className={classes.prompt}\n markup={model.teacherInstructions || ''}\n onChange={this.onTeacherInstructionsChanged}\n imageSupport={imageSupport}\n nonEmpty={false}\n toolbarOpts={toolbarOpts}\n />\n </InputContainer>\n )}\n\n {promptEnabled && (\n <InputContainer\n label={prompt.label || ''}\n className={classes.promptHolder}\n >\n <EditableHtml\n className={classes.prompt}\n markup={model.prompt}\n onChange={this.onPromptChanged}\n imageSupport={imageSupport}\n toolbarOpts={toolbarOpts}\n />\n </InputContainer>\n )}\n\n {rationaleEnabled && (\n <InputContainer\n label={rationale.label || ''}\n className={classes.promptHolder}\n >\n <EditableHtml\n className={classes.prompt}\n markup={model.rationale || ''}\n onChange={this.onRationaleChanged}\n imageSupport={imageSupport}\n toolbarOpts={toolbarOpts}\n />\n </InputContainer>\n )}\n\n {text.settings && (\n <TextField\n label={text.label}\n className={classes.input}\n multiline\n value={textValue}\n onChange={this.changeText}\n />\n )}\n\n {tokens.settings && (\n <InputContainer\n label={tokens.label || ''}\n className={classes.tokenizerContainer}\n >\n <Tokenizer\n className={classes.tokenizer}\n text={model.text}\n tokens={tokensModel}\n onChange={this.changeTokens}\n />\n </InputContainer>\n )}\n\n {mode.settings && (\n <Chip\n label={`${mode.label}: ${model.mode ? model.mode : 'None'}`}\n className={classes.chip}\n />\n )}\n\n {selections.settings && (\n <Chip\n label={`${selections.label}: ${tokensModel.length}`}\n className={classes.chip}\n />\n )}\n\n {correctAnswer.settings && (\n <Chip\n label={`${correctAnswer.label}: ${\n tokensModel.filter(t => t.correct).length\n }`}\n className={classes.chip}\n />\n )}\n\n {selectionCount.settings && (\n <NumberTextField\n min={tokensModel.filter(t => t.correct).length || 0}\n label={`${selectionCount.label} (0:any)`}\n max={tokensModel.length}\n value={model.maxSelections}\n onChange={this.changeMaxSelections}\n className={classes.numberField}\n />\n )}\n\n {feedbackEnabled && (\n <FeedbackConfig\n feedback={model.feedback}\n onChange={this.changeFeedback}\n toolbarOpts={toolbarOpts}\n />\n )}\n </div>\n </layout.ConfigLayout>\n );\n }\n}\nexport default withStyles(theme => ({\n container: {\n paddingTop: theme.spacing.unit\n },\n tokenizerContainer: {\n paddingRight: 0,\n marginRight: 0,\n '&:after': {\n position: 'absolute',\n bottom: 0,\n left: 0,\n right: 0,\n height: '1px',\n content: '\"\"',\n backgroundColor: theme.palette.primary.main\n },\n marginBottom: theme.spacing.unit\n },\n chip: {\n marginRight: theme.spacing.unit * 2\n },\n input: {\n width: '100%',\n paddingBottom: theme.spacing.unit * 3\n },\n tokenizer: {\n marginTop: theme.spacing.unit * 2\n },\n mainOpts: {\n width: '100%',\n justifyContent: 'space-between',\n display: 'flex',\n alignItems: 'baseline'\n },\n promptHolder: {\n width: '100%',\n paddingBottom: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2\n },\n prompt: {\n paddingTop: theme.spacing.unit * 2,\n width: '100%'\n },\n numberField: {\n width: '180px'\n }\n}))(Design);\n"],"file":"design.js"}
1
+ {"version":3,"sources":["../src/design.jsx"],"names":["Panel","settings","toggle","radio","log","Design","props","val","apply","u","text","tokens","event","value","target","preparedText","setState","updateText","mode","correctTokenCount","filter","t","correct","length","max","isFinite","maxSelections","Math","fn","onModelChanged","model","update","feedback","partialScoring","prompt","teacherInstructions","rationale","state","nProps","textValue","classes","imageSupport","configuration","onConfigurationChanged","selections","selectionCount","correctAnswer","studentInstructions","scoringType","spellCheck","highlightChoices","teacherInstructionsEnabled","promptEnabled","rationaleEnabled","spellCheckEnabled","feedbackEnabled","toolbarOpts","toolbarEditorPosition","position","tokensModel","Settings","label","Properties","studentInstructionsEnabled","container","promptHolder","onTeacherInstructionsChanged","onPromptChanged","onRationaleChanged","input","changeText","tokenizerContainer","tokenizer","changeTokens","chip","changeMaxSelections","numberField","changeFeedback","React","Component","PropTypes","object","isRequired","func","shape","add","theme","paddingTop","spacing","unit","paddingRight","marginRight","bottom","left","right","height","content","backgroundColor","palette","primary","main","marginBottom","width","paddingBottom","marginTop","mainOpts","justifyContent","display","alignItems"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport TextField from '@material-ui/core/TextField';\nimport { withStyles } from '@material-ui/core/styles';\nimport cloneDeep from 'lodash/cloneDeep';\nimport debounce from 'lodash/debounce';\nimport { Tokenizer } from '@pie-lib/text-select';\nimport {\n InputContainer,\n NumberTextField,\n FeedbackConfig,\n settings,\n layout\n} from '@pie-lib/config-ui';\nimport Chip from '@material-ui/core/Chip';\nimport debug from 'debug';\nimport EditableHtml from '@pie-lib/editable-html';\n\nconst { Panel, toggle, radio } = settings;\n\nconst log = debug('@pie-element:select-text:configure');\n\nexport class Design extends React.Component {\n static propTypes = {\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n onModelChanged: PropTypes.func.isRequired,\n onConfigurationChanged: PropTypes.func.isRequired,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired\n })\n };\n\n static defaultProps = {};\n\n constructor(props) {\n super(props);\n\n const { model } = this.props;\n\n this.state = {\n text: (model && model.text) || ''\n };\n }\n\n UNSAFE_componentWillReceiveProps(nProps) {\n const { model } = nProps;\n\n if (model && model.text) {\n this.setState({\n text: model.text\n });\n }\n }\n\n updateText = debounce(val => {\n this.apply(u => {\n u.text = val;\n u.tokens = [];\n });\n }, 200);\n\n changeText = event => {\n const value = event.target.value;\n const preparedText = value;\n\n this.setState({\n text: value\n });\n this.updateText(preparedText);\n };\n\n changeTokens = (tokens, mode) => {\n this.apply(u => {\n u.tokens = tokens;\n u.mode = mode;\n\n const correctTokenCount = tokens.filter(t => t.correct).length;\n const max = isFinite(u.maxSelections) ? u.maxSelections : 0;\n\n u.maxSelections = Math.max(max, correctTokenCount);\n });\n };\n\n changeMaxSelections = (event, max) => {\n this.apply(u => (u.maxSelections = max));\n };\n\n apply = fn => {\n const { onModelChanged, model } = this.props;\n const update = cloneDeep(model);\n fn(update);\n onModelChanged(update);\n };\n\n changeFeedback = feedback => {\n this.apply(u => (u.feedback = feedback));\n };\n\n changePartialScoring = partialScoring => {\n const { onModelChanged, model } = this.props;\n const update = cloneDeep(model);\n update.partialScoring = partialScoring;\n onModelChanged(update);\n };\n\n onPromptChanged = prompt => {\n const { onModelChanged, model } = this.props;\n const update = cloneDeep(model);\n\n update.prompt = prompt;\n onModelChanged(update);\n };\n\n onTeacherInstructionsChanged = teacherInstructions => {\n const { onModelChanged, model } = this.props;\n const update = cloneDeep(model);\n\n update.teacherInstructions = teacherInstructions;\n onModelChanged(update);\n };\n\n onRationaleChanged = rationale => {\n const { onModelChanged, model } = this.props;\n\n onModelChanged({\n ...model,\n rationale\n });\n };\n\n render() {\n const { text: textValue } = this.state;\n const {\n model,\n classes,\n imageSupport,\n onModelChanged,\n configuration,\n onConfigurationChanged\n } = this.props;\n const {\n prompt = {},\n text = {},\n tokens = {},\n mode = {},\n feedback = {},\n partialScoring = {},\n selections = {},\n selectionCount = {},\n correctAnswer = {},\n teacherInstructions = {},\n studentInstructions = {},\n rationale = {},\n scoringType = {},\n spellCheck = {},\n highlightChoices = {}\n } = configuration || {};\n const {\n teacherInstructionsEnabled, promptEnabled, rationaleEnabled, spellCheckEnabled, feedbackEnabled\n } = model || {};\n const toolbarOpts = {};\n\n switch (model.toolbarEditorPosition) {\n case 'top':\n toolbarOpts.position = 'top';\n break;\n default:\n toolbarOpts.position = 'bottom';\n break;\n }\n let { tokens: tokensModel } = model;\n tokensModel = tokensModel || [];\n\n log('[render] maxSelections:', model.maxSelections);\n\n return (\n <layout.ConfigLayout\n settings={\n <Panel\n model={model}\n configuration={configuration}\n onChangeModel={model => onModelChanged(model)}\n onChangeConfiguration={onConfigurationChanged}\n groups={{\n Settings: {\n partialScoring:\n partialScoring.settings && toggle(partialScoring.label),\n highlightChoices:\n highlightChoices.settings && toggle(highlightChoices.label),\n feedbackEnabled:\n feedback.settings && toggle(feedback.label)\n },\n Properties: {\n teacherInstructionsEnabled:\n teacherInstructions.settings &&\n toggle(teacherInstructions.label),\n studentInstructionsEnabled:\n studentInstructions.settings &&\n toggle(studentInstructions.label),\n promptEnabled: prompt.settings && toggle(prompt.label),\n rationaleEnabled: rationale.settings && toggle(rationale.label),\n spellCheckEnabled:\n spellCheck.settings && toggle(spellCheck.label),\n scoringType:\n scoringType.settings &&\n radio(scoringType.label, ['auto', 'rubric'])\n }\n }}\n />\n }\n >\n <div className={classes.container}>\n {teacherInstructionsEnabled && (\n <InputContainer\n label={teacherInstructions.label}\n className={classes.promptHolder}\n >\n <EditableHtml\n className={classes.prompt}\n markup={model.teacherInstructions || ''}\n onChange={this.onTeacherInstructionsChanged}\n imageSupport={imageSupport}\n nonEmpty={false}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n />\n </InputContainer>\n )}\n\n {promptEnabled && (\n <InputContainer\n label={prompt.label || ''}\n className={classes.promptHolder}\n >\n <EditableHtml\n className={classes.prompt}\n markup={model.prompt}\n onChange={this.onPromptChanged}\n imageSupport={imageSupport}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n />\n </InputContainer>\n )}\n\n {rationaleEnabled && (\n <InputContainer\n label={rationale.label || ''}\n className={classes.promptHolder}\n >\n <EditableHtml\n className={classes.prompt}\n markup={model.rationale || ''}\n onChange={this.onRationaleChanged}\n imageSupport={imageSupport}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n />\n </InputContainer>\n )}\n\n {text.settings && (\n <TextField\n label={text.label}\n className={classes.input}\n multiline\n value={textValue}\n onChange={this.changeText}\n spellCheck={spellCheckEnabled}\n />\n )}\n\n {tokens.settings && (\n <InputContainer\n label={tokens.label || ''}\n className={classes.tokenizerContainer}\n >\n <Tokenizer\n className={classes.tokenizer}\n text={model.text}\n tokens={tokensModel}\n onChange={this.changeTokens}\n />\n </InputContainer>\n )}\n\n {mode.settings && (\n <Chip\n label={`${mode.label}: ${model.mode ? model.mode : 'None'}`}\n className={classes.chip}\n />\n )}\n\n {selections.settings && (\n <Chip\n label={`${selections.label}: ${tokensModel.length}`}\n className={classes.chip}\n />\n )}\n\n {correctAnswer.settings && (\n <Chip\n label={`${correctAnswer.label}: ${\n tokensModel.filter(t => t.correct).length\n }`}\n className={classes.chip}\n />\n )}\n\n {selectionCount.settings && (\n <NumberTextField\n min={tokensModel.filter(t => t.correct).length || 0}\n label={`${selectionCount.label} (0:any)`}\n max={tokensModel.length}\n value={model.maxSelections}\n onChange={this.changeMaxSelections}\n className={classes.numberField}\n />\n )}\n\n {feedbackEnabled && (\n <FeedbackConfig\n feedback={model.feedback}\n onChange={this.changeFeedback}\n toolbarOpts={toolbarOpts}\n />\n )}\n </div>\n </layout.ConfigLayout>\n );\n }\n}\nexport default withStyles(theme => ({\n container: {\n paddingTop: theme.spacing.unit\n },\n tokenizerContainer: {\n paddingRight: 0,\n marginRight: 0,\n '&:after': {\n position: 'absolute',\n bottom: 0,\n left: 0,\n right: 0,\n height: '1px',\n content: '\"\"',\n backgroundColor: theme.palette.primary.main\n },\n marginBottom: theme.spacing.unit\n },\n chip: {\n marginRight: theme.spacing.unit * 2\n },\n input: {\n width: '100%',\n paddingBottom: theme.spacing.unit * 3\n },\n tokenizer: {\n marginTop: theme.spacing.unit * 2\n },\n mainOpts: {\n width: '100%',\n justifyContent: 'space-between',\n display: 'flex',\n alignItems: 'baseline'\n },\n promptHolder: {\n width: '100%',\n paddingBottom: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2\n },\n prompt: {\n paddingTop: theme.spacing.unit * 2,\n width: '100%'\n },\n numberField: {\n width: '180px'\n }\n}))(Design);\n"],"file":"design.js"}