@pie-element/select-text 8.0.4-next.72 → 8.1.0-next.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,23 @@
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
+ # [8.1.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/select-text@8.0.3...@pie-element/select-text@8.1.0) (2023-12-19)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * update pie-lib/pie-toolbox PD-2068 ([34eccd5](https://github.com/pie-framework/pie-elements/commit/34eccd52c44259eddf3e2b816b00b82f83bc2bf8))
12
+
13
+
14
+ ### Features
15
+
16
+ * update pie-lib/pie-toolbox PD-2555 ([86d4fd9](https://github.com/pie-framework/pie-elements/commit/86d4fd909180dd1fcbc446bd8b29c23af21a1c69))
17
+ * update pie-lib/pie-toolbox PD-3307, PD-2067, PD-3271, PD-3041, PD-2068 ([2eabcbd](https://github.com/pie-framework/pie-elements/commit/2eabcbd036e318bb24552f4140ca7384ad865951))
18
+
19
+
20
+
21
+
22
+
6
23
  ## [8.0.3](https://github.com/pie-framework/pie-elements/compare/@pie-element/select-text@8.0.2...@pie-element/select-text@8.0.3) (2023-11-27)
7
24
 
8
25
 
@@ -3,6 +3,23 @@
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
+ # [7.1.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/select-text-configure@7.0.3...@pie-element/select-text-configure@7.1.0) (2023-12-19)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * update pie-lib/pie-toolbox PD-2068 ([34eccd5](https://github.com/pie-framework/pie-elements/commit/34eccd52c44259eddf3e2b816b00b82f83bc2bf8))
12
+
13
+
14
+ ### Features
15
+
16
+ * update pie-lib/pie-toolbox PD-2555 ([86d4fd9](https://github.com/pie-framework/pie-elements/commit/86d4fd909180dd1fcbc446bd8b29c23af21a1c69))
17
+ * update pie-lib/pie-toolbox PD-3307, PD-2067, PD-3271, PD-3041, PD-2068 ([2eabcbd](https://github.com/pie-framework/pie-elements/commit/2eabcbd036e318bb24552f4140ca7384ad865951))
18
+
19
+
20
+
21
+
22
+
6
23
  ## [7.0.3](https://github.com/pie-framework/pie-elements/compare/@pie-element/select-text-configure@7.0.2...@pie-element/select-text-configure@7.0.3) (2023-11-27)
7
24
 
8
25
 
@@ -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/pie-toolbox/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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vZGVzaWduLnRlc3QuanN4Il0sIm5hbWVzIjpbImplc3QiLCJtb2NrIiwibGF5b3V0IiwiQ29uZmlnTGF5b3V0IiwicHJvcHMiLCJjaGlsZHJlbiIsInNldHRpbmdzIiwiUGFuZWwiLCJvbkNoYW5nZSIsInRvZ2dsZSIsImZuIiwicmFkaW8iLCJkZXNjcmliZSIsInciLCJvblByb21wdENoYW5nZWQiLCJvblJhdGlvbmFsZUNoYW5nZWQiLCJnZXRNb2RlbCIsInRva2VucyIsImJlZm9yZUVhY2giLCJkZWZhdWx0VmFsdWVzIiwiY29uZmlndXJhdGlvbiIsIml0IiwiZXhwZWN0IiwidG9NYXRjaFNuYXBzaG90IiwidGV4dCIsImRlZmF1bHRDb25maWd1cmF0aW9uIiwiZmVlZGJhY2siLCJ3cmFwcGVyIiwiYXNzZXJ0IiwiYXJncyIsImV4cGVjdGVkIiwiZSIsIkpTT04iLCJzdHJpbmdpZnkiLCJpbnN0YW5jZSIsImFwcGx5IiwidG9CZUNhbGxlZFdpdGgiLCJ0YXJnZXQiLCJ2YWx1ZSIsIm0iLCJzdGFydCIsImVuZCIsIm1heFNlbGVjdGlvbnMiLCJtb2RlIiwiY29ycmVjdCIsImNvcnJlY3RGZWVkYmFja1R5cGUiLCJwYXJ0aWFsU2NvcmluZyIsInByb21wdCIsInRlYWNoZXJJbnN0cnVjdGlvbnMiLCJyYXRpb25hbGUiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOzs7Ozs7QUFFQUEsSUFBSSxDQUFDQyxJQUFMLENBQVUsZ0NBQVYsRUFBNEM7QUFBQSxTQUFPO0FBQ2pEQyxJQUFBQSxNQUFNLEVBQUU7QUFDTkMsTUFBQUEsWUFBWSxFQUFFLHNCQUFDQyxLQUFEO0FBQUEsNEJBQVcsNkNBQU1BLEtBQUssQ0FBQ0MsUUFBWixDQUFYO0FBQUE7QUFEUixLQUR5QztBQUlqREMsSUFBQUEsUUFBUSxFQUFFO0FBQ1JDLE1BQUFBLEtBQUssRUFBRSxlQUFDSCxLQUFEO0FBQUEsNEJBQVc7QUFBSyxV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YyxFQUFFO0FBRnFCO0FBQUEsT0FBakMsQ0FBTjtBQUlELEtBTE8sQ0FBUjtBQU9BbEMsSUFBQUEsUUFBUSxDQUFDLGNBQUQsRUFBaUIsWUFBTTtBQUM3QmdCLE1BQUFBLE1BQU0sQ0FBQyxpQkFBRCxFQUFvQixDQUFDLFlBQUQsQ0FBcEIsRUFBb0MsVUFBQ1csQ0FBRDtBQUFBLCtDQUNyQ0EsQ0FEcUM7QUFFeENRLFVBQUFBLE1BQU0sRUFBRTtBQUZnQztBQUFBLE9BQXBDLENBQU47QUFJRCxLQUxPLENBQVI7QUFPQW5DLElBQUFBLFFBQVEsQ0FBQywyQkFBRCxFQUE4QixZQUFNO0FBQzFDZ0IsTUFBQUEsTUFBTSxDQUFDLDhCQUFELEVBQWlDLENBQUMsMEJBQUQsQ0FBakMsRUFBK0QsVUFBQ1csQ0FBRDtBQUFBLCtDQUNoRUEsQ0FEZ0U7QUFFbkVTLFVBQUFBLG1CQUFtQixFQUFFO0FBRjhDO0FBQUEsT0FBL0QsQ0FBTjtBQUlELEtBTE8sQ0FBUjtBQU9BcEMsSUFBQUEsUUFBUSxDQUFDLGlCQUFELEVBQW9CLFlBQU07QUFDaENnQixNQUFBQSxNQUFNLENBQUMsb0JBQUQsRUFBdUIsQ0FBQyxlQUFELENBQXZCLEVBQTBDLFVBQUNXLENBQUQ7QUFBQSwrQ0FDM0NBLENBRDJDO0FBRTlDVSxVQUFBQSxTQUFTLEVBQUU7QUFGbUM7QUFBQSxPQUExQyxDQUFOO0FBSUQsS0FMTyxDQUFSO0FBTUQsR0E3RU8sQ0FBUjtBQThFRCxDQXpLTyxDQUFSIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc2hhbGxvdyB9IGZyb20gJ2VuenltZSc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgRGVzaWduIH0gZnJvbSAnLi4vZGVzaWduJztcbmltcG9ydCBkZWZhdWx0VmFsdWVzIGZyb20gJy4uL2RlZmF1bHRDb25maWd1cmF0aW9uJztcblxuamVzdC5tb2NrKCdAcGllLWxpYi9waWUtdG9vbGJveC9jb25maWctdWknLCAoKSA9PiAoe1xuICBsYXlvdXQ6IHtcbiAgICBDb25maWdMYXlvdXQ6IChwcm9wcykgPT4gPGRpdj57cHJvcHMuY2hpbGRyZW59PC9kaXY+LFxuICB9LFxuICBzZXR0aW5nczoge1xuICAgIFBhbmVsOiAocHJvcHMpID0+IDxkaXYgb0NoYW5nZU1vZGVsPXtwcm9wcy5vbkNoYW5nZX0gLz4sXG4gICAgdG9nZ2xlOiBqZXN0LmZuKCksXG4gICAgcmFkaW86IGplc3QuZm4oKSxcbiAgfSxcbn0pKTtcblxuamVzdC5tb2NrKCdsb2Rhc2gvZGVib3VuY2UnLCAoKSA9PiAoZm4pID0+IGZuKTtcblxuZGVzY3JpYmUoJ2Rlc2lnbicsICgpID0+IHtcbiAgbGV0IHc7XG4gIGxldCBvbkNoYW5nZTtcbiAgbGV0IG9uUHJvbXB0Q2hhbmdlZDtcbiAgbGV0IG9uUmF0aW9uYWxlQ2hhbmdlZDtcblxuICBjb25zdCBnZXRNb2RlbCA9ICgpID0+ICh7XG4gICAgdG9rZW5zOiBbXSxcbiAgfSk7XG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIG9uQ2hhbmdlID0gamVzdC5mbigpO1xuICAgIG9uUHJvbXB0Q2hhbmdlZCA9IGplc3QuZm4oKTtcbiAgICBvblJhdGlvbmFsZUNoYW5nZWQgPSBqZXN0LmZuKCk7XG4gICAgdyA9IHNoYWxsb3coXG4gICAgICA8RGVzaWduXG4gICAgICAgIG1vZGVsPXtnZXRNb2RlbCgpfVxuICAgICAgICBjb25maWd1cmF0aW9uPXtkZWZhdWx0VmFsdWVzLmNvbmZpZ3VyYXRpb259XG4gICAgICAgIGNsYXNzZXM9e3t9fVxuICAgICAgICBjbGFzc05hbWU9eydmb28nfVxuICAgICAgICBvbk1vZGVsQ2hhbmdlZD17b25DaGFuZ2V9XG4gICAgICAgIG9uUHJvbXB0Q2hhbmdlZD17b25Qcm9tcHRDaGFuZ2VkfVxuICAgICAgICBvblJhdGlvbmFsZUNoYW5nZWQ9e29uUmF0aW9uYWxlQ2hhbmdlZH1cbiAgICAgIC8+LFxuICAgICk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdzbmFwc2hvdCcsICgpID0+IHtcbiAgICBpdCgncmVuZGVycyBhbGwgaXRlbXMgd2l0aCBkZWZhdWx0UHJvcHMnLCAoKSA9PiB7XG4gICAgICBleHBlY3QodykudG9NYXRjaFNuYXBzaG90KCk7XG4gICAgfSk7XG5cbiAgICBpdCgndG9rZW5pemVyIHJlbmRlcnMgd2l0aCBodG1sIGVudGl0aWVzJywgKCkgPT4ge1xuICAgICAgZXhwZWN0KFxuICAgICAgICBzaGFsbG93KFxuICAgICAgICAgIDxEZXNpZ25cbiAgICAgICAgICAgIG1vZGVsPXt7XG4gICAgICAgICAgICAgIHRleHQ6ICc8cD4mIzgyMjA7THVjeT8mIzYzOyBBcmUgeW91IHVzaW5nIHlvdXIgdGltZSB3aXNlbHkgdG8gcGxhbiB5b3VyIHByb2plY3Q/JiMzMzsmIzMzOyYjMzM7JiM4MjIxOyBNci4gV2lsc29uIGFza2VkLjwvcD48cD5MdWN5IGxvb2tlZCBhIGxpdHRsZSBjb25mdXNlZCBhdCBmaXJzdC4gJiMxOTU7IFRoZW4gc2hlIGdyaW5uZWQgYW5kIHByb3VkbHkgc3RhdGVkLCAmIzgyMjA7V2h5LCB5ZXMgSSBhbSEgSSBwbGFuIHRvIG1ha2UgYSBiaXJkIGZlZWRlciBmb3IgdGhhdCB0cmVlIG91dCBvdXIgd2luZG93ISYjODIyMTs8L3A+JyxcbiAgICAgICAgICAgICAgdG9rZW5zOiBbXSxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICBjb25maWd1cmF0aW9uPXtkZWZhdWx0VmFsdWVzLmNvbmZpZ3VyYXRpb259XG4gICAgICAgICAgICBjbGFzc2VzPXt7fX1cbiAgICAgICAgICAgIGNsYXNzTmFtZT17J2Zvbyd9XG4gICAgICAgICAgICBvbk1vZGVsQ2hhbmdlZD17b25DaGFuZ2V9XG4gICAgICAgICAgICBvblByb21wdENoYW5nZWQ9e29uUHJvbXB0Q2hhbmdlZH1cbiAgICAgICAgICAgIG9uUmF0aW9uYWxlQ2hhbmdlZD17b25SYXRpb25hbGVDaGFuZ2VkfVxuICAgICAgICAgIC8+LFxuICAgICAgICApLFxuICAgICAgKS50b01hdGNoU25hcHNob3QoKTtcbiAgICB9KTtcblxuICAgIGl0KCdyZW5kZXJzIGFsbCBpdGVtcyBleGNlcHQgZmVlZGJhY2snLCAoKSA9PiB7XG4gICAgICBjb25zdCBkZWZhdWx0Q29uZmlndXJhdGlvbiA9IGRlZmF1bHRWYWx1ZXMuY29uZmlndXJhdGlvbjtcblxuICAgICAgZGVmYXVsdENvbmZpZ3VyYXRpb24uZmVlZGJhY2suc2V0dGluZ3MgPSBmYWxzZTtcblxuICAgICAgY29uc3Qgd3JhcHBlciA9IHNoYWxsb3coXG4gICAgICAgIDxEZXNpZ25cbiAgICAgICAgICBtb2RlbD17Z2V0TW9kZWwoKX1cbiAgICAgICAgICBjb25maWd1cmF0aW9uPXtkZWZhdWx0Q29uZmlndXJhdGlvbn1cbiAgICAgICAgICBjbGFzc2VzPXt7fX1cbiAgICAgICAgICBjbGFzc05hbWU9eydmb28nfVxuICAgICAgICAgIG9uTW9kZWxDaGFuZ2VkPXtvbkNoYW5nZX1cbiAgICAgICAgICBvblByb21wdENoYW5nZWQ9e29uUHJvbXB0Q2hhbmdlZH1cbiAgICAgICAgICBvblJhdGlvbmFsZUNoYW5nZWQ9e29uUmF0aW9uYWxlQ2hhbmdlZH1cbiAgICAgICAgLz4sXG4gICAgICApO1xuXG4gICAgICBleHBlY3Qod3JhcHBlcikudG9NYXRjaFNuYXBzaG90KCk7XG4gICAgfSk7XG5cbiAgICBpdCgncmVuZGVycyBhbGwgaXRlbXMgZXhjZXB0IHRoZSBjb250ZW50IGlucHV0JywgKCkgPT4ge1xuICAgICAgY29uc3QgZGVmYXVsdENvbmZpZ3VyYXRpb24gPSBkZWZhdWx0VmFsdWVzLmNvbmZpZ3VyYXRpb247XG5cbiAgICAgIGRlZmF1bHRDb25maWd1cmF0aW9uLnRleHQuc2V0dGluZ3MgPSBmYWxzZTtcblxuICAgICAgY29uc3Qgd3JhcHBlciA9IHNoYWxsb3coXG4gICAgICAgIDxEZXNpZ25cbiAgICAgICAgICBtb2RlbD17Z2V0TW9kZWwoKX1cbiAgICAgICAgICBjb25maWd1cmF0aW9uPXtkZWZhdWx0Q29uZmlndXJhdGlvbn1cbiAgICAgICAgICBjbGFzc2VzPXt7fX1cbiAgICAgICAgICBjbGFzc05hbWU9eydmb28nfVxuICAgICAgICAgIG9uTW9kZWxDaGFuZ2VkPXtvbkNoYW5nZX1cbiAgICAgICAgICBvblByb21wdENoYW5nZWQ9e29uUHJvbXB0Q2hhbmdlZH1cbiAgICAgICAgICBvblJhdGlvbmFsZUNoYW5nZWQ9e29uUmF0aW9uYWxlQ2hhbmdlZH1cbiAgICAgICAgLz4sXG4gICAgICApO1xuXG4gICAgICBleHBlY3Qod3JhcHBlcikudG9NYXRjaFNuYXBzaG90KCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdsb2dpYycsICgpID0+IHtcbiAgICBjb25zdCBhc3NlcnQgPSAoZm4sIGFyZ3MsIGV4cGVjdGVkKSA9PiB7XG4gICAgICBjb25zdCBlID0gZXhwZWN0ZWQoZ2V0TW9kZWwoKSk7XG5cbiAgICAgIGl0KGAke2ZufSAke0pTT04uc3RyaW5naWZ5KGFyZ3MpfSA9PiAke0pTT04uc3RyaW5naWZ5KGUpfWAsICgpID0+IHtcbiAgICAgICAgY29uc3QgaW5zdGFuY2UgPSB3Lmluc3RhbmNlKCk7XG4gICAgICAgIGluc3RhbmNlW2ZuXS5hcHBseShpbnN0YW5jZSwgYXJncyk7XG5cbiAgICAgICAgLy9qZXN0LnJ1bkFsbFRpbWVycygpO1xuXG4gICAgICAgIGV4cGVjdChvbkNoYW5nZSkudG9CZUNhbGxlZFdpdGgoZSk7XG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgZGVzY3JpYmUoJ2NoYW5nZVRleHQnLCAoKSA9PiB7XG4gICAgICBhc3NlcnQoJ2NoYW5nZVRleHQnLCBbeyB0YXJnZXQ6IHsgdmFsdWU6ICdmb28nIH0gfV0sIChtKSA9PiAoe1xuICAgICAgICAuLi5tLFxuICAgICAgICB0ZXh0OiAnZm9vJyxcbiAgICAgIH0pKTtcbiAgICB9KTtcblxuICAgIGRlc2NyaWJlKCdjaGFuZ2VUb2tlbnMnLCAoKSA9PiB7XG4gICAgICBhc3NlcnQoJ2NoYW5nZVRva2VucycsIFtbeyBzdGFydDogMCwgZW5kOiAxLCB0ZXh0OiAnZicgfV0sICd3b3JkcyddLCAobSkgPT4gKHtcbiAgICAgICAgLi4ubSxcbiAgICAgICAgbWF4U2VsZWN0aW9uczogMCxcbiAgICAgICAgdG9rZW5zOiBbeyBzdGFydDogMCwgZW5kOiAxLCB0ZXh0OiAnZicgfV0sXG4gICAgICAgIG1vZGU6ICd3b3JkcycsXG4gICAgICB9KSk7XG4gICAgICBhc3NlcnQoJ2NoYW5nZVRva2VucycsIFtbeyBzdGFydDogMCwgZW5kOiA4LCB0ZXh0OiAnRm9vIGJhci4nLCBjb3JyZWN0OiB0cnVlIH1dLCAnc2VudGVuY2VzJ10sIChtKSA9PiAoe1xuICAgICAgICAuLi5tLFxuICAgICAgICBtYXhTZWxlY3Rpb25zOiAxLFxuICAgICAgICB0b2tlbnM6IFt7IHN0YXJ0OiAwLCBlbmQ6IDgsIHRleHQ6ICdGb28gYmFyLicsIGNvcnJlY3Q6IHRydWUgfV0sXG4gICAgICAgIG1vZGU6ICdzZW50ZW5jZXMnLFxuICAgICAgfSkpO1xuICAgIH0pO1xuXG4gICAgZGVzY3JpYmUoJ2NoYW5nZU1heFNlbGVjdGlvbnMnLCAoKSA9PiB7XG4gICAgICBhc3NlcnQoJ2NoYW5nZU1heFNlbGVjdGlvbnMnLCBbe30sIDRdLCAobSkgPT4gKHtcbiAgICAgICAgLi4ubSxcbiAgICAgICAgbWF4U2VsZWN0aW9uczogNCxcbiAgICAgIH0pKTtcbiAgICB9KTtcblxuICAgIGRlc2NyaWJlKCdjaGFuZ2VGZWVkYmFjaycsICgpID0+IHtcbiAgICAgIGFzc2VydCgnY2hhbmdlRmVlZGJhY2snLCBbeyBjb3JyZWN0RmVlZGJhY2tUeXBlOiAnbm9uZScgfV0sIChtKSA9PiAoe1xuICAgICAgICAuLi5tLFxuICAgICAgICBmZWVkYmFjazogeyBjb3JyZWN0RmVlZGJhY2tUeXBlOiAnbm9uZScgfSxcbiAgICAgIH0pKTtcbiAgICB9KTtcblxuICAgIGRlc2NyaWJlKCdjaGFuZ2VQYXJ0aWFsU2NvcmluZycsICgpID0+IHtcbiAgICAgIGFzc2VydCgnY2hhbmdlUGFydGlhbFNjb3JpbmcnLCBbdHJ1ZV0sIChtKSA9PiAoe1xuICAgICAgICAuLi5tLFxuICAgICAgICBwYXJ0aWFsU2NvcmluZzogdHJ1ZSxcbiAgICAgIH0pKTtcbiAgICB9KTtcblxuICAgIGRlc2NyaWJlKCdjaGFuZ2VQcm9tcHQnLCAoKSA9PiB7XG4gICAgICBhc3NlcnQoJ29uUHJvbXB0Q2hhbmdlZCcsIFsnTmV3IFByb21wdCddLCAobSkgPT4gKHtcbiAgICAgICAgLi4ubSxcbiAgICAgICAgcHJvbXB0OiAnTmV3IFByb21wdCcsXG4gICAgICB9KSk7XG4gICAgfSk7XG5cbiAgICBkZXNjcmliZSgnY2hhbmdlVGVhY2hlckluc3RydWN0aW9ucycsICgpID0+IHtcbiAgICAgIGFzc2VydCgnb25UZWFjaGVySW5zdHJ1Y3Rpb25zQ2hhbmdlZCcsIFsnTmV3IFRlYWNoZXIgSW5zdHJ1Y3Rpb25zJ10sIChtKSA9PiAoe1xuICAgICAgICAuLi5tLFxuICAgICAgICB0ZWFjaGVySW5zdHJ1Y3Rpb25zOiAnTmV3IFRlYWNoZXIgSW5zdHJ1Y3Rpb25zJyxcbiAgICAgIH0pKTtcbiAgICB9KTtcblxuICAgIGRlc2NyaWJlKCdjaGFuZ2VSYXRpb25hbGUnLCAoKSA9PiB7XG4gICAgICBhc3NlcnQoJ29uUmF0aW9uYWxlQ2hhbmdlZCcsIFsnTmV3IFJhdGlvbmFsZSddLCAobSkgPT4gKHtcbiAgICAgICAgLi4ubSxcbiAgICAgICAgcmF0aW9uYWxlOiAnTmV3IFJhdGlvbmFsZScsXG4gICAgICB9KSk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
@@ -123,4 +123,4 @@ var _default = {
123
123
  }
124
124
  };
125
125
  exports["default"] = _default;
126
- //# sourceMappingURL=defaultConfiguration.js.map
126
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kZWZhdWx0Q29uZmlndXJhdGlvbi5qcyJdLCJuYW1lcyI6WyJ0b2tlbnMiLCJ0ZXh0Iiwic3RhcnQiLCJlbmQiLCJtb2RlbCIsImhpZ2hsaWdodENob2ljZXMiLCJwYXJ0aWFsU2NvcmluZyIsIm1heFNlbGVjdGlvbnMiLCJtb2RlIiwicHJvbXB0Iiwic2NvcmluZ1R5cGUiLCJmZWVkYmFja0VuYWJsZWQiLCJyYXRpb25hbGVFbmFibGVkIiwicHJvbXB0RW5hYmxlZCIsInRlYWNoZXJJbnN0cnVjdGlvbnNFbmFibGVkIiwic3R1ZGVudEluc3RydWN0aW9uc0VuYWJsZWQiLCJ0b29sYmFyRWRpdG9yUG9zaXRpb24iLCJjb25maWd1cmF0aW9uIiwic2VsZWN0aW9uQ291bnQiLCJzZXR0aW5ncyIsImxhYmVsIiwiY29ycmVjdEFuc3dlciIsInNlbGVjdGlvbnMiLCJyYXRpb25hbGUiLCJzdHVkZW50SW5zdHJ1Y3Rpb25zIiwidGVhY2hlckluc3RydWN0aW9ucyIsImZlZWRiYWNrIiwic3BlbGxDaGVjayIsImVuYWJsZWQiLCJtaW5Ub2tlbnMiLCJtYXhJbWFnZVdpZHRoIiwibWF4SW1hZ2VIZWlnaHQiLCJ3aXRoUnVicmljIiwibWF0aE1sT3B0aW9ucyIsIm1tbE91dHB1dCIsIm1tbEVkaXRpbmciLCJsYW5ndWFnZSIsImxhbmd1YWdlQ2hvaWNlcyIsIm9wdGlvbnMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxJQUFNQSxNQUFNLEdBQUcsU0FBVEEsTUFBUztBQUFBLFNBQU0sQ0FDbkI7QUFDRUMsSUFBQUEsSUFBSSxFQUFFLEVBRFI7QUFFRUMsSUFBQUEsS0FBSyxFQUFFLENBRlQ7QUFHRUMsSUFBQUEsR0FBRyxFQUFFO0FBSFAsR0FEbUIsQ0FBTjtBQUFBLENBQWY7O2VBUWU7QUFDYkMsRUFBQUEsS0FBSyxFQUFFO0FBQ0xDLElBQUFBLGdCQUFnQixFQUFFLEtBRGI7QUFFTEMsSUFBQUEsY0FBYyxFQUFFLEtBRlg7QUFHTEMsSUFBQUEsYUFB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O0FBQ2ROLE1BQUFBLG1CQUFtQixFQUFFLEdBRFA7QUFFZGhCLE1BQUFBLE1BQU0sRUFBRSxHQUZNO0FBR2RjLE1BQUFBLFNBQVMsRUFBRTtBQUhHLEtBcEVIO0FBeUViUyxJQUFBQSxVQUFVLEVBQUU7QUFDVmIsTUFBQUEsUUFBUSxFQUFFLEtBREE7QUFFVkMsTUFBQUEsS0FBSyxFQUFFO0FBRkcsS0F6RUM7QUE2RWJhLElBQUFBLGFBQWEsRUFBRTtBQUNiQyxNQUFBQSxTQUFTLEVBQUUsS0FERTtBQUViQyxNQUFBQSxVQUFVLEVBQUU7QUFGQyxLQTdFRjtBQWlGYkMsSUFBQUEsUUFBUSxFQUFFO0FBQ1JqQixNQUFBQSxRQUFRLEVBQUUsS0FERjtBQUVSQyxNQUFBQSxLQUFLLEVBQUUsa0JBRkM7QUFHUlEsTUFBQUEsT0FBTyxFQUFFO0FBSEQsS0FqRkc7QUFzRmJTLElBQUFBLGVBQWUsRUFBRTtBQUNmakIsTUFBQUEsS0FBSyxFQUFFLGtCQURRO0FBRWZrQixNQUFBQSxPQUFPLEVBQUU7QUFGTTtBQXRGSjtBQWpCRixDIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgdG9rZW5zID0gKCkgPT4gW1xuICB7XG4gICAgdGV4dDogJycsXG4gICAgc3RhcnQ6IDAsXG4gICAgZW5kOiAwLFxuICB9LFxuXTtcblxuZXhwb3J0IGRlZmF1bHQge1xuICBtb2RlbDoge1xuICAgIGhpZ2hsaWdodENob2ljZXM6IGZhbHNlLFxuICAgIHBhcnRpYWxTY29yaW5nOiBmYWxzZSxcbiAgICBtYXhTZWxlY3Rpb25zOiAyLFxuICAgIG1vZGU6ICdzZW50ZW5jZScsXG4gICAgcHJvbXB0OiAnUXVlc3Rpb24gUHJvbXB0IGdvZXMgaGVyZScsXG4gICAgdGV4dDogJycsXG4gICAgdG9rZW5zOiB0b2tlbnMoKSxcbiAgICBzY29yaW5nVHlwZTogJ2F1dG8nLFxuICAgIGZlZWRiYWNrRW5hYmxlZDogZmFsc2UsXG4gICAgcmF0aW9uYWxlRW5hYmxlZDogdHJ1ZSxcbiAgICBwcm9tcHRFbmFibGVkOiB0cnVlLFxuICAgIHRlYWNoZXJJbnN0cnVjdGlvbnNFbmFibGVkOiB0cnVlLFxuICAgIHN0dWRlbnRJbnN0cnVjdGlvbnNFbmFibGVkOiB0cnVlLFxuICAgIHRvb2xiYXJFZGl0b3JQb3NpdGlvbjogJ2JvdHRvbScsXG4gIH0sXG4gIGNvbmZpZ3VyYXRpb246IHtcbiAgICBzZWxlY3Rpb25Db3VudDoge1xuICAgICAgc2V0dGluZ3M6IHRydWUsXG4gICAgICBsYWJlbDogJ1NlbGVjdGlvbiBjb3VudCcsXG4gICAgfSxcbiAgICBjb3JyZWN0QW5zd2VyOiB7XG4gICAgICBzZXR0aW5nczogdHJ1ZSxcbiAgICAgIGxhYmVsOiAnQ29ycmVjdCBBbnN3ZXJzJyxcbiAgICB9LFxuICAgIHNlbGVjdGlvbnM6IHtcbiAgICAgIHNldHRpbmdzOiB0cnVlLFxuICAgICAgbGFiZWw6ICdTZWxlY3Rpb25zIEF2YWlsYWJsZScsXG4gICAgfSxcbiAgICBoaWdobGlnaHRDaG9pY2VzOiB7XG4gICAgICBzZXR0aW5nczogdHJ1ZSxcbiAgICAgIGxhYmVsOiAnSGlnaGxpZ2h0IGNob2ljZXMnLFxuICAgIH0sXG4gICAgcmF0aW9uYWxlOiB7XG4gICAgICBzZXR0aW5nczogdHJ1ZSxcbiAgICAgIGxhYmVsOiAnUmF0aW9uYWxlJyxcbiAgICB9LFxuICAgIHNjb3JpbmdUeXBlOiB7XG4gICAgICBzZXR0aW5nczogZmFsc2UsXG4gICAgICBsYWJlbDogJ1Njb3JpbmcgVHlwZScsXG4gICAgfSxcbiAgICBzdHVkZW50SW5zdHJ1Y3Rpb25zOiB7XG4gICAgICBzZXR0aW5nczogZmFsc2UsXG4gICAgICBsYWJlbDogJ1N0dWRlbnQgSW5zdHJ1Y3Rpb25zJyxcbiAgICB9LFxuICAgIHRlYWNoZXJJbnN0cnVjdGlvbnM6IHtcbiAgICAgIHNldHRpbmdzOiB0cnVlLFxuICAgICAgbGFiZWw6ICdUZWFjaGVyIEluc3RydWN0aW9ucycsXG4gICAgfSxcbiAgICBwcm9tcHQ6IHtcbiAgICAgIGxhYmVsOiAnUHJvbXB0JyxcbiAgICAgIHNldHRpbmdzOiB0cnVlLFxuICAgIH0sXG4gICAgdGV4dDoge1xuICAgICAgc2V0dGluZ3M6IHRydWUsXG4gICAgICBsYWJlbDogJ0NvbnRlbnQnLFxuICAgIH0sXG4gICAgdG9rZW5zOiB7XG4gICAgICBzZXR0aW5nczogdHJ1ZSxcbiAgICAgIGxhYmVsOiAnVG9rZW5zJyxcbiAgICB9LFxuICAgIGZlZWRiYWNrOiB7XG4gICAgICBzZXR0aW5nczogdHJ1ZSxcbiAgICAgIGxhYmVsOiAnRmVlZGJhY2snLFxuICAgIH0sXG4gICAgc3BlbGxDaGVjazoge1xuICAgICAgbGFiZWw6ICdTcGVsbGNoZWNrJyxcbiAgICAgIHNldHRpbmdzOiBmYWxzZSxcbiAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgfSxcbiAgICBwYXJ0aWFsU2NvcmluZzoge1xuICAgICAgc2V0dGluZ3M6IGZhbHNlLFxuICAgICAgbGFiZWw6ICdBbGxvdyBQYXJ0aWFsIFNjb3JpbmcnLFxuICAgIH0sXG4gICAgbW9kZToge1xuICAgICAgc2V0dGluZ3M6IHRydWUsXG4gICAgICBsYWJlbDogJ01vZGUnLFxuICAgIH0sXG4gICAgbWluVG9rZW5zOiAyLFxuICAgIG1heEltYWdlV2lkdGg6IHtcbiAgICAgIHRlYWNoZXJJbnN0cnVjdGlvbnM6IDMwMCxcbiAgICAgIHByb21wdDogMzAwLFxuICAgICAgcmF0aW9uYWxlOiAzMDAsXG4gICAgfSxcbiAgICBtYXhJbWFnZUhlaWdodDoge1xuICAgICAgdGVhY2hlckluc3RydWN0aW9uczogMzAwLFxuICAgICAgcHJvbXB0OiAzMDAsXG4gICAgICByYXRpb25hbGU6IDMwMCxcbiAgICB9LFxuICAgIHdpdGhSdWJyaWM6IHtcbiAgICAgIHNldHRpbmdzOiBmYWxzZSxcbiAgICAgIGxhYmVsOiAnQWRkIFJ1YnJpYycsXG4gICAgfSxcbiAgICBtYXRoTWxPcHRpb25zOiB7XG4gICAgICBtbWxPdXRwdXQ6IGZhbHNlLFxuICAgICAgbW1sRWRpdGluZzogZmFsc2UsXG4gICAgfSxcbiAgICBsYW5ndWFnZToge1xuICAgICAgc2V0dGluZ3M6IGZhbHNlLFxuICAgICAgbGFiZWw6ICdTcGVjaWZ5IExhbmd1YWdlJyxcbiAgICAgIGVuYWJsZWQ6IGZhbHNlLFxuICAgIH0sXG4gICAgbGFuZ3VhZ2VDaG9pY2VzOiB7XG4gICAgICBsYWJlbDogJ0xhbmd1YWdlIENob2ljZXMnLFxuICAgICAgb3B0aW9uczogW10sXG4gICAgfSxcbiAgfSxcbn07XG4iXX0=
@@ -43,7 +43,7 @@ var _Info = _interopRequireDefault(require("@material-ui/icons/Info"));
43
43
 
44
44
  var _debug = _interopRequireDefault(require("debug"));
45
45
 
46
- var _editableHtml = _interopRequireDefault(require("@pie-lib/pie-toolbox/editable-html"));
46
+ var _editableHtml = require("@pie-lib/pie-toolbox/editable-html");
47
47
 
48
48
  var _Tooltip = _interopRequireDefault(require("@material-ui/core/Tooltip"));
49
49
 
@@ -277,7 +277,7 @@ var Design = /*#__PURE__*/function (_React$Component) {
277
277
  }, teacherInstructionsEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
278
278
  label: teacherInstructions.label,
279
279
  className: classes.promptHolder
280
- }, /*#__PURE__*/_react["default"].createElement(_editableHtml["default"], {
280
+ }, /*#__PURE__*/_react["default"].createElement(_editableHtml.EditableHtml, {
281
281
  className: classes.prompt,
282
282
  markup: model.teacherInstructions || '',
283
283
  onChange: this.onTeacherInstructionsChanged,
@@ -297,7 +297,7 @@ var Design = /*#__PURE__*/function (_React$Component) {
297
297
  })), promptEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
298
298
  label: prompt.label || '',
299
299
  className: classes.promptHolder
300
- }, /*#__PURE__*/_react["default"].createElement(_editableHtml["default"], {
300
+ }, /*#__PURE__*/_react["default"].createElement(_editableHtml.EditableHtml, {
301
301
  className: classes.prompt,
302
302
  markup: model.prompt,
303
303
  onChange: this.onPromptChanged,
@@ -375,7 +375,7 @@ var Design = /*#__PURE__*/function (_React$Component) {
375
375
  })), rationaleEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
376
376
  label: rationale.label || '',
377
377
  className: classes.promptHolder
378
- }, /*#__PURE__*/_react["default"].createElement(_editableHtml["default"], {
378
+ }, /*#__PURE__*/_react["default"].createElement(_editableHtml.EditableHtml, {
379
379
  className: classes.prompt,
380
380
  markup: model.rationale || '',
381
381
  onChange: this.onRationaleChanged,
@@ -477,4 +477,4 @@ var _default = (0, _styles.withStyles)(function (theme) {
477
477
  })(Design);
478
478
 
479
479
  exports["default"] = _default;
480
- //# sourceMappingURL=design.js.map
480
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kZXNpZ24uanN4Il0sIm5hbWVzIjpbIlBhbmVsIiwic2V0dGluZ3MiLCJ0b2dnbGUiLCJyYWRpbyIsImRyb3Bkb3duIiwibG9nIiwiRGVzaWduIiwicHJvcHMiLCJ2YWwiLCJhcHBseSIsInUiLCJ0ZXh0IiwidG9rZW5zIiwiZXZlbnQiLCJ1cGRhdGVUZXh0IiwidGFyZ2V0IiwidmFsdWUiLCJtb2RlIiwiY29ycmVjdFRva2VuQ291bnQiLCJmaWx0ZXIiLCJ0IiwiY29ycmVjdCIsImxlbmd0aCIsIm1heCIsImlzRmluaXRlIiwibWF4U2VsZWN0aW9ucyIsIk1hdGgiLCJmbiIsIm9uTW9kZWxDaGFuZ2VkIiwibW9kZWwiLCJ1cGRhdGUiLCJmZWVkYmFjayIsInBhcnRpYWxTY29yaW5nIiwicHJvbXB0IiwidGVhY2hlckluc3RydWN0aW9ucyIsInJhdGlvbmFsZSIsInN0YXRlIiwiblByb3BzIiwic2V0U3RhdGUiLCJ0ZXh0VmFsdWUiLCJjbGFzc2VzIiwiY29uZmlndXJhdGlvbiIsImltYWdlU3VwcG9ydCIsIm9uQ29uZmlndXJhdGlvbkNoYW5nZWQiLCJ1cGxvYWRTb3VuZFN1cHBvcnQiLCJjb3JyZWN0QW5zd2VyIiwiY29udGVudERpbWVuc2lvbnMiLCJoaWdobGlnaHRDaG9pY2VzIiwic2VsZWN0aW9uQ291bnQiLCJzZWxlY3Rpb25zIiwic2V0dGluZ3NQYW5lbERpc2FibGVkIiwic2NvcmluZ1R5cGUiLCJzcGVsbENoZWNrIiwic3R1ZGVudEluc3RydWN0aW9ucyIsIm1heEltYWdlV2lkdGgiLCJtYXhJbWFnZUhlaWdodCIsIndpdGhSdWJyaWMiLCJtYXRoTWxPcHRpb25zIiwibGFuZ3VhZ2UiLCJsYW5ndWFnZUNob2ljZXMiLCJlcnJvcnMiLCJmZWVkYmFja0VuYWJsZWQiLCJwcm9tcHRFbmFibGVkIiwicmF0aW9uYWxlRW5hYmxlZCIsInNwZWxsQ2hlY2tFbmFibGVkIiwidGVhY2hlckluc3RydWN0aW9uc0VuYWJsZWQiLCJ0b29sYmFyRWRpdG9yUG9zaXRpb24iLCJ0b2tlbnNFcnJvciIsInNlbGVjdGlvbnNFcnJvciIsInZhbGlkYXRpb25NZXNzYWdlIiwiZGVmYXVsdEltYWdlTWF4V2lkdGgiLCJkZWZhdWx0SW1hZ2VNYXhIZWlnaHQiLCJ0b2tlbnNNb2RlbCIsInRvb2xiYXJPcHRzIiwicG9zaXRpb24iLCJwYW5lbFNldHRpbmdzIiwibGFiZWwiLCJlbmFibGVkIiwib3B0aW9ucyIsInBhbmVsUHJvcGVydGllcyIsInN0dWRlbnRJbnN0cnVjdGlvbnNFbmFibGVkIiwicnVicmljRW5hYmxlZCIsIlNldHRpbmdzIiwiUHJvcGVydGllcyIsInByb21wdEhvbGRlciIsIm9uVGVhY2hlckluc3RydWN0aW9uc0NoYW5nZWQiLCJvblByb21wdENoYW5nZWQiLCJpbnB1dCIsImNoYW5nZVRleHQiLCJ0b2tlbml6ZXJDb250YWluZXIiLCJ0b29sdGlwIiwibGVmdCIsInRvcCIsInRva2VuaXplciIsImNoYW5nZVRva2VucyIsImVycm9yVGV4dCIsInRva2Vuc0RldGFpbHMiLCJjaGlwIiwiY2hhbmdlTWF4U2VsZWN0aW9ucyIsIm51bWJlckZpZWxkIiwib25SYXRpb25hbGVDaGFuZ2VkIiwiY2hhbmdlRmVlZGJhY2siLCJSZWFjdCIsIkNvbXBvbmVudCIsIlByb3BUeXBlcyIsIm9iamVjdCIsImlzUmVxdWlyZWQiLCJmdW5jIiwic2hhcGUiLCJhZGQiLCJ0aGVtZSIsInBhZGRpbmdSaWdodCIsIm1hcmdpblJpZ2h0IiwiYm90dG9tIiwicmlnaHQiLCJoZWlnaHQiLCJjb250ZW50IiwiYmFja2dyb3VuZENvbG9yIiwicGFsZXR0ZSIsInByaW1hcnkiLCJtYWluIiwibWFyZ2luQm90dG9tIiwic3BhY2luZyIsInVuaXQiLCJtYXJnaW5Ub3AiLCJ3aWR0aCIsIm1haW5PcHRzIiwianVzdGlmeUNvbnRlbnQiLCJkaXNwbGF5IiwiYWxpZ25JdGVtcyIsInBhZGRpbmdUb3AiLCJmbGV4V3JhcCIsIm1hcmdpbiIsImZvbnRTaXplIiwidHlwb2dyYXBo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QixNQUFBQSxLQUFLLEVBQUUsT0FESTtBQUVYTyxNQUFBQSxNQUFNLFlBQUt0QixLQUFLLENBQUNZLE9BQU4sQ0FBY0MsSUFBZCxHQUFxQixDQUExQjtBQUZLLEtBMUN1QjtBQThDcENqQyxJQUFBQSxPQUFPLEVBQUU7QUFDUDJDLE1BQUFBLFFBQVEsRUFBRXZCLEtBQUssQ0FBQ3dCLFVBQU4sQ0FBaUJELFFBQWpCLEdBQTRCLENBRC9CO0FBRVBFLE1BQUFBLFVBQVUsRUFBRSxLQUZMO0FBR1BDLE1BQUFBLFFBQVEsRUFBRTtBQUhILEtBOUMyQjtBQW1EcEN6QyxJQUFBQSxTQUFTLEVBQUU7QUFDVHNDLE1BQUFBLFFBQVEsRUFBRXZCLEtBQUssQ0FBQ3dCLFVBQU4sQ0FBaUJELFFBQWpCLEdBQTRCLENBRDdCO0FBRVRJLE1BQUFBLEtBQUssRUFBRTNCLEtBQUssQ0FBQ1EsT0FBTixDQUFjb0IsS0FBZCxDQUFvQmxCLElBRmxCO0FBR1RtQixNQUFBQSxhQUFhLEVBQUU3QixLQUFLLENBQUNZLE9BQU4sQ0FBY0M7QUFIcEI7QUFuRHlCLEdBQVo7QUFBQSxDQUFYLEVBd0RYckgsTUF4RFcsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IFRleHRGaWVsZCBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9UZXh0RmllbGQnO1xuaW1wb3J0IHsgd2l0aFN0eWxlcyB9IGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL3N0eWxlcyc7XG5pbXBvcnQgY2xvbmVEZWVwIGZyb20gJ2xvZGFzaC9jbG9uZURlZXAnO1xuaW1wb3J0IGRlYm91bmNlIGZyb20gJ2xvZGFzaC9kZWJvdW5jZSc7XG5pbXBvcnQgeyBUb2tlbml6ZXIgfSBmcm9tICdAcGllLWxpYi9waWUtdG9vbGJveC90ZXh0LXNlbGVjdCc7XG5pbXBvcnQgeyBJbnB1dENvbnRhaW5lciwgTnVtYmVyVGV4dEZpZWxkLCBGZWVkYmFja0NvbmZpZywgc2V0dGluZ3MsIGxheW91dCB9IGZyb20gJ0BwaWUtbGliL3BpZS10b29sYm94L2NvbmZpZy11aSc7XG5pbXBvcnQgQ2hpcCBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9DaGlwJztcbmltcG9ydCBJbmZvIGZyb20gJ0BtYXRlcmlhbC11aS9pY29ucy9JbmZvJztcbmltcG9ydCBkZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5pbXBvcnQge0VkaXRhYmxlSHRtbH0gZnJvbSAnQHBpZS1saWIvcGllLXRvb2xib3gvZWRpdGFibGUtaHRtbCc7XG5pbXBvcnQgVG9vbHRpcCBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9Ub29sdGlwJztcbmltcG9ydCB7IGdlbmVyYXRlVmFsaWRhdGlvbk1lc3NhZ2UgfSBmcm9tICcuL3V0aWxzJztcblxuY29uc3QgeyBQYW5lbCwgdG9nZ2xlLCByYWRpbywgZHJvcGRvd24gfSA9IHNldHRpbmdzO1xuXG5jb25zdCBsb2cgPSBkZWJ1ZygnQHBpZS1lbGVtZW50OnNlbGVjdC10ZXh0OmNvbmZpZ3VyZScpO1xuXG5leHBvcnQgY2xhc3MgRGVzaWduIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBtb2RlbDogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIGNvbmZpZ3VyYXRpb246IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBjbGFzc2VzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgb25Nb2RlbENoYW5nZWQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25Db25maWd1cmF0aW9uQ2hhbmdlZDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBpbWFnZVN1cHBvcnQ6IFByb3BUeXBlcy5zaGFwZSh7XG4gICAgICBhZGQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgICBkZWxldGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgfSksXG4gICAgdXBsb2FkU291bmRTdXBwb3J0OiBQcm9wVHlwZXMub2JqZWN0LFxuICB9O1xuXG4gIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7fTtcblxuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgIHN1cGVyKHByb3BzKTtcblxuICAgIGNvbnN0IHsgbW9kZWwgfSA9IHRoaXMucHJvcHM7XG5cbiAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgdGV4dDogKG1vZGVsICYmIG1vZGVsLnRleHQpIHx8ICcnLFxuICAgIH07XG4gIH1cblxuICBVTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhuUHJvcHMpIHtcbiAgICBjb25zdCB7IG1vZGVsIH0gPSBuUHJvcHM7XG5cbiAgICBpZiAobW9kZWwgJiYgbW9kZWwudGV4dCkge1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgIHRleHQ6IG1vZGVsLnRleHQsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGVUZXh0ID0gZGVib3VuY2UoKHZhbCkgPT4ge1xuICAgIHRoaXMuYXBwbHkoKHUpID0+IHtcbiAgICAgIHUudGV4dCA9IHZhbDtcbiAgICAgIHUudG9rZW5zID0gW107XG4gICAgfSk7XG4gIH0sIDIwMCk7XG5cbiAgY2hhbmdlVGV4dCA9IChldmVudCkgPT4gdGhpcy51cGRhdGVUZXh0KGV2ZW50LnRhcmdldC52YWx1ZSk7XG5cbiAgY2hhbmdlVG9rZW5zID0gKHRva2VucywgbW9kZSkgPT4ge1xuICAgIHRoaXMuYXBwbHkoKHUpID0+IHtcbiAgICAgIHUudG9rZW5zID0gdG9rZW5zO1xuICAgICAgdS5tb2RlID0gbW9kZTtcblxuICAgICAgY29uc3QgY29ycmVjdFRva2VuQ291bnQgPSB0b2tlbnMuZmlsdGVyKCh0KSA9PiB0LmNvcnJlY3QpLmxlbmd0aDtcbiAgICAgIGNvbnN0IG1heCA9IGlzRmluaXRlKHUubWF4U2VsZWN0aW9ucykgPyB1Lm1heFNlbGVjdGlvbnMgOiAwO1xuXG4gICAgICB1Lm1heFNlbGVjdGlvbnMgPSBNYXRoLm1heChtYXgsIGNvcnJlY3RUb2tlbkNvdW50KTtcbiAgICB9KTtcbiAgfTtcblxuICBjaGFuZ2VNYXhTZWxlY3Rpb25zID0gKGV2ZW50LCBtYXgpID0+IHtcbiAgICB0aGlzLmFwcGx5KCh1KSA9PiAodS5tYXhTZWxlY3Rpb25zID0gbWF4KSk7XG4gIH07XG5cbiAgYXBwbHkgPSAoZm4pID0+IHtcbiAgICBjb25zdCB7IG9uTW9kZWxDaGFuZ2VkLCBtb2RlbCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB1cGRhdGUgPSBjbG9uZURlZXAobW9kZWwpO1xuXG4gICAgZm4odXBkYXRlKTtcbiAgICBvbk1vZGVsQ2hhbmdlZCh1cGRhdGUpO1xuICB9O1xuXG4gIGNoYW5nZUZlZWRiYWNrID0gKGZlZWRiYWNrKSA9PiB7XG4gICAgdGhpcy5hcHBseSgodSkgPT4gKHUuZmVlZGJhY2sgPSBmZWVkYmFjaykpO1xuICB9O1xuXG4gIGNoYW5nZVBhcnRpYWxTY29yaW5nID0gKHBhcnRpYWxTY29yaW5nKSA9PiB7XG4gICAgY29uc3QgeyBvbk1vZGVsQ2hhbmdlZCwgbW9kZWwgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgdXBkYXRlID0gY2xvbmVEZWVwKG1vZGVsKTtcbiAgICB1cGRhdGUucGFydGlhbFNjb3JpbmcgPSBwYXJ0aWFsU2NvcmluZztcblxuICAgIG9uTW9kZWxDaGFuZ2VkKHVwZGF0ZSk7XG4gIH07XG5cbiAgb25Qcm9tcHRDaGFuZ2VkID0gKHByb21wdCkgPT4ge1xuICAgIGNvbnN0IHsgb25Nb2RlbENoYW5nZWQsIG1vZGVsIH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHVwZGF0ZSA9IGNsb25lRGVlcChtb2RlbCk7XG5cbiAgICB1cGRhdGUucHJvbXB0ID0gcHJvbXB0O1xuICAgIG9uTW9kZWxDaGFuZ2VkKHVwZGF0ZSk7XG4gIH07XG5cbiAgb25UZWFjaGVySW5zdHJ1Y3Rpb25zQ2hhbmdlZCA9ICh0ZWFjaGVySW5zdHJ1Y3Rpb25zKSA9PiB7XG4gICAgY29uc3QgeyBvbk1vZGVsQ2hhbmdlZCwgbW9kZWwgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgdXBkYXRlID0gY2xvbmVEZWVwKG1vZGVsKTtcblxuICAgIHVwZGF0ZS50ZWFjaGVySW5zdHJ1Y3Rpb25zID0gdGVhY2hlckluc3RydWN0aW9ucztcbiAgICBvbk1vZGVsQ2hhbmdlZCh1cGRhdGUpO1xuICB9O1xuXG4gIG9uUmF0aW9uYWxlQ2hhbmdlZCA9IChyYXRpb25hbGUpID0+IHtcbiAgICBjb25zdCB7IG9uTW9kZWxDaGFuZ2VkLCBtb2RlbCB9ID0gdGhpcy5wcm9wcztcblxuICAgIG9uTW9kZWxDaGFuZ2VkKHsgLi4ubW9kZWwsIHJhdGlvbmFsZSB9KTtcbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgeyB0ZXh0OiB0ZXh0VmFsdWUgfSA9IHRoaXMuc3RhdGU7XG4gICAgY29uc3QgeyBjbGFzc2VzLCBjb25maWd1cmF0aW9uLCBpbWFnZVN1cHBvcnQsIG1vZGVsLCBvbkNvbmZpZ3VyYXRpb25DaGFuZ2VkLCBvbk1vZGVsQ2hhbmdlZCwgdXBsb2FkU291bmRTdXBwb3J0IH0gPVxuICAgICAgdGhpcy5wcm9wcztcbiAgICBjb25zdCB7XG4gICAgICBjb3JyZWN0QW5zd2VyID0ge30sXG4gICAgICBjb250ZW50RGltZW5zaW9ucyA9IHt9LFxuICAgICAgZmVlZGJhY2sgPSB7fSxcbiAgICAgIGhpZ2hsaWdodENob2ljZXMgPSB7fSxcbiAgICAgIG1vZGUgPSB7fSxcbiAgICAgIHBhcnRpYWxTY29yaW5nID0ge30sXG4gICAgICBwcm9tcHQgPSB7fSxcbiAgICAgIHJhdGlvbmFsZSA9IHt9LFxuICAgICAgc2VsZWN0aW9uQ291bnQgPSB7fSxcbiAgICAgIHNlbGVjdGlvbnMgPSB7fSxcbiAgICAgIHNldHRpbmdzUGFuZWxEaXNhYmxlZCxcbiAgICAgIHNjb3JpbmdUeXBlID0ge30sXG4gICAgICBzcGVsbENoZWNrID0ge30sXG4gICAgICBzdHVkZW50SW5zdHJ1Y3Rpb25zID0ge30sXG4gICAgICB0ZWFjaGVySW5zdHJ1Y3Rpb25zID0ge30sXG4gICAgICB0ZXh0ID0ge30sXG4gICAgICB0b2tlbnMgPSB7fSxcbiAgICAgIG1heEltYWdlV2lkdGggPSB7fSxcbiAgICAgIG1heEltYWdlSGVpZ2h0ID0ge30sXG4gICAgICB3aXRoUnVicmljID0ge30sXG4gICAgICBtYXRoTWxPcHRpb25zID0ge30sXG4gICAgICBsYW5ndWFnZSA9IHt9LFxuICAgICAgbGFuZ3VhZ2VDaG9pY2VzID0ge30sXG4gICAgfSA9IGNvbmZpZ3VyYXRpb24gfHwge307XG4gICAgY29uc3Qge1xuICAgICAgZXJyb3JzLFxuICAgICAgZmVlZGJhY2tFbmFibGVkLFxuICAgICAgcHJvbXB0RW5hYmxlZCxcbiAgICAgIHJhdGlvbmFsZUVuYWJsZWQsXG4gICAgICBzcGVsbENoZWNrRW5hYmxlZCxcbiAgICAgIHRlYWNoZXJJbnN0cnVjdGlvbnNFbmFibGVkLFxuICAgICAgdG9vbGJhckVkaXRvclBvc2l0aW9uLFxuICAgIH0gPSBtb2RlbCB8fCB7fTtcblxuICAgIGNvbnN0IHsgdG9rZW5zRXJyb3IsIHNlbGVjdGlvbnNFcnJvciB9ID0gZXJyb3JzIHx8IHt9O1xuICAgIGNvbnN0IHZhbGlkYXRpb25NZXNzYWdlID0gZ2VuZXJhdGVWYWxpZGF0aW9uTWVzc2FnZShjb25maWd1cmF0aW9uKTtcblxuICAgIGNvbnN0IGRlZmF1bHRJbWFnZU1heFdpZHRoID0gbWF4SW1hZ2VXaWR0aCAmJiBtYXhJbWFnZVdpZHRoLnByb21wdDtcbiAgICBjb25zdCBkZWZhdWx0SW1hZ2VNYXhIZWlnaHQgPSBtYXhJbWFnZUhlaWdodCAmJiBtYXhJbWFnZUhlaWdodC5wcm9tcHQ7XG5cbiAgICBsZXQgeyB0b2tlbnM6IHRva2Vuc01vZGVsIH0gPSBtb2RlbDtcbiAgICB0b2tlbnNNb2RlbCA9IHRva2Vuc01vZGVsIHx8IFtdO1xuXG4gICAgY29uc3QgdG9vbGJhck9wdHMgPSB7XG4gICAgICBwb3NpdGlvbjogdG9vbGJhckVkaXRvclBvc2l0aW9uID09PSAndG9wJyA/ICd0b3AnIDogJ2JvdHRvbScsXG4gICAgfTtcblxuICAgIGxvZygnW3JlbmRlcl0gbWF4U2VsZWN0aW9uczonLCBtb2RlbC5tYXhTZWxlY3Rpb25zKTtcblxuICAgIGNvbnN0IHBhbmVsU2V0dGluZ3MgPSB7XG4gICAgICBwYXJ0aWFsU2NvcmluZzogcGFydGlhbFNjb3Jpbmcuc2V0dGluZ3MgJiYgdG9nZ2xlKHBhcnRpYWxTY29yaW5nLmxhYmVsKSxcbiAgICAgIGhpZ2hsaWdodENob2ljZXM6IGhpZ2hsaWdodENob2ljZXMuc2V0dGluZ3MgJiYgdG9nZ2xlKGhpZ2hsaWdodENob2ljZXMubGFiZWwpLFxuICAgICAgZmVlZGJhY2tFbmFibGVkOiBmZWVkYmFjay5zZXR0aW5ncyAmJiB0b2dnbGUoZmVlZGJhY2subGFiZWwpLFxuICAgICAgJ2xhbmd1YWdlLmVuYWJsZWQnOiBsYW5ndWFnZS5zZXR0aW5ncyAmJiB0b2dnbGUobGFuZ3VhZ2UubGFiZWwsIHRydWUpLFxuICAgICAgbGFuZ3VhZ2U6IGxhbmd1YWdlLnNldHRpbmdzICYmIGxhbmd1YWdlLmVuYWJsZWQgJiYgZHJvcGRvd24obGFuZ3VhZ2VDaG9pY2VzLmxhYmVsLCBsYW5ndWFnZUNob2ljZXMub3B0aW9ucyksXG4gICAgfTtcblxuICAgIGNvbnN0IHBhbmVsUHJvcGVydGllcyA9IHtcbiAgICAgIHRlYWNoZXJJbnN0cnVjdGlvbnNFbmFibGVkOiB0ZWFjaGVySW5zdHJ1Y3Rpb25zLnNldHRpbmdzICYmIHRvZ2dsZSh0ZWFjaGVySW5zdHJ1Y3Rpb25zLmxhYmVsKSxcbiAgICAgIHN0dWRlbnRJbnN0cnVjdGlvbnNFbmFibGVkOiBzdHVkZW50SW5zdHJ1Y3Rpb25zLnNldHRpbmdzICYmIHRvZ2dsZShzdHVkZW50SW5zdHJ1Y3Rpb25zLmxhYmVsKSxcbiAgICAgIHByb21wdEVuYWJsZWQ6IHByb21wdC5zZXR0aW5ncyAmJiB0b2dnbGUocHJvbXB0LmxhYmVsKSxcbiAgICAgIHJhdGlvbmFsZUVuYWJsZWQ6IHJhdGlvbmFsZS5zZXR0aW5ncyAmJiB0b2dnbGUocmF0aW9uYWxlLmxhYmVsKSxcbiAgICAgIHNwZWxsQ2hlY2tFbmFibGVkOiBzcGVsbENoZWNrLnNldHRpbmdzICYmIHRvZ2dsZShzcGVsbENoZWNrLmxhYmVsKSxcbiAgICAgIHNjb3JpbmdUeXBlOiBzY29yaW5nVHlwZS5zZXR0aW5ncyAmJiByYWRpbyhzY29yaW5nVHlwZS5sYWJlbCwgWydhdXRvJywgJ3J1YnJpYyddKSxcbiAgICAgIHJ1YnJpY0VuYWJsZWQ6IHdpdGhSdWJyaWM/LnNldHRpbmdzICYmIHRvZ2dsZSh3aXRoUnVicmljPy5sYWJlbCksXG4gICAgfTtcblxuICAgIHJldHVybiAoXG4gICAgICA8bGF5b3V0LkNvbmZpZ0xheW91dFxuICAgICAgICBkaW1lbnNpb25zPXtjb250ZW50RGltZW5zaW9uc31cbiAgICAgICAgaGlkZVNldHRpbmdzPXtzZXR0aW5nc1BhbmVsRGlzYWJsZWR9XG4gICAgICAgIHNldHRpbmdzPXtcbiAgICAgICAgICA8UGFuZWxcbiAgICAgICAgICAgIG1vZGVsPXttb2RlbH1cbiAgICAgICAgICAgIGNvbmZpZ3VyYXRpb249e2NvbmZpZ3VyYXRpb259XG4gICAgICAgICAgICBvbkNoYW5nZU1vZGVsPXsobW9kZWwpID0+IG9uTW9kZWxDaGFuZ2VkKG1vZGVsKX1cbiAgICAgICAgICAgIG9uQ2hhbmdlQ29uZmlndXJhdGlvbj17b25Db25maWd1cmF0aW9uQ2hhbmdlZH1cbiAgICAgICAgICAgIGdyb3Vwcz17e1xuICAgICAgICAgICAgICBTZXR0aW5nczogcGFuZWxTZXR0aW5ncyxcbiAgICAgICAgICAgICAgUHJvcGVydGllczogcGFuZWxQcm9wZXJ0aWVzLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAvPlxuICAgICAgICB9XG4gICAgICA+XG4gICAgICAgIHt0ZWFjaGVySW5zdHJ1Y3Rpb25zRW5hYmxlZCAmJiAoXG4gICAgICAgICAgPElucHV0Q29udGFpbmVyIGxhYmVsPXt0ZWFjaGVySW5zdHJ1Y3Rpb25zLmxhYmVsfSBjbGFzc05hbWU9e2NsYXNzZXMucHJvbXB0SG9sZGVyfT5cbiAgICAgICAgICAgIDxFZGl0YWJsZUh0bWxcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLnByb21wdH1cbiAgICAgICAgICAgICAgbWFya3VwPXttb2RlbC50ZWFjaGVySW5zdHJ1Y3Rpb25zIHx8ICcnfVxuICAgICAgICAgICAgICBvbkNoYW5nZT17dGhpcy5vblRlYWNoZXJJbnN0cnVjdGlvbnNDaGFuZ2VkfVxuICAgICAgICAgICAgICBpbWFnZVN1cHBvcnQ9e2ltYWdlU3VwcG9ydH1cbiAgICAgICAgICAgICAgbm9uRW1wdHk9e2ZhbHNlfVxuICAgICAgICAgICAgICB0b29sYmFyT3B0cz17dG9vbGJhck9wdHN9XG4gICAgICAgICAgICAgIHNwZWxsQ2hlY2s9e3NwZWxsQ2hlY2tFbmFibGVkfVxuICAgICAgICAgICAgICBtYXhJbWFnZVdpZHRoPXsobWF4SW1hZ2VXaWR0aCAmJiBtYXhJbWFnZVdpZHRoLnRlYWNoZXJJbnN0cnVjdGlvbnMpIHx8IGRlZmF1bHRJbWFnZU1heFdpZHRofVxuICAgICAgICAgICAgICBtYXhJbWFnZUhlaWdodD17KG1heEltYWdlSGVpZ2h0ICYmIG1heEltYWdlSGVpZ2h0LnRlYWNoZXJJbnN0cnVjdGlvbnMpIHx8IGRlZmF1bHRJbWFnZU1heEhlaWdodH1cbiAgICAgICAgICAgICAgdXBsb2FkU291bmRTdXBwb3J0PXt1cGxvYWRTb3VuZFN1cHBvcnR9XG4gICAgICAgICAgICAgIGxhbmd1YWdlQ2hhcmFjdGVyc1Byb3BzPXtbeyBsYW5ndWFnZTogJ3NwYW5pc2gnIH0sIHsgbGFuZ3VhZ2U6ICdzcGVjaWFsJyB9XX1cbiAgICAgICAgICAgICAgbWF0aE1sT3B0aW9ucz17bWF0aE1sT3B0aW9uc31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9JbnB1dENvbnRhaW5lcj5cbiAgICAgICAgKX1cblxuICAgICAgICB7cHJvbXB0RW5hYmxlZCAmJiAoXG4gICAgICAgICAgPElucHV0Q29udGFpbmVyIGxhYmVsPXtwcm9tcHQubGFiZWwgfHwgJyd9IGNsYXNzTmFtZT17Y2xhc3Nlcy5wcm9tcHRIb2xkZXJ9PlxuICAgICAgICAgICAgPEVkaXRhYmxlSHRtbFxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzZXMucHJvbXB0fVxuICAgICAgICAgICAgICBtYXJrdXA9e21vZGVsLnByb21wdH1cbiAgICAgICAgICAgICAgb25DaGFuZ2U9e3RoaXMub25Qcm9tcHRDaGFuZ2VkfVxuICAgICAgICAgICAgICBpbWFnZVN1cHBvcnQ9e2ltYWdlU3VwcG9ydH1cbiAgICAgICAgICAgICAgdG9vbGJhck9wdHM9e3Rvb2xiYXJPcHRzfVxuICAgICAgICAgICAgICBzcGVsbENoZWNrPXtzcGVsbENoZWNrRW5hYmxlZH1cbiAgICAgICAgICAgICAgbWF4SW1hZ2VXaWR0aD17ZGVmYXVsdEltYWdlTWF4V2lkdGh9XG4gICAgICAgICAgICAgIG1heEltYWdlSGVpZ2h0PXtkZWZhdWx0SW1hZ2VNYXhIZWlnaHR9XG4gICAgICAgICAgICAgIHVwbG9hZFNvdW5kU3VwcG9ydD17dXBsb2FkU291bmRTdXBwb3J0fVxuICAgICAgICAgICAgICBsYW5ndWFnZUNoYXJhY3RlcnNQcm9wcz17W3sgbGFuZ3VhZ2U6ICdzcGFuaXNoJyB9LCB7IGxhbmd1YWdlOiAnc3BlY2lhbCcgfV19XG4gICAgICAgICAgICAgIG1hdGhNbE9wdGlvbnM9e21hdGhNbE9wdGlvbnN9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvSW5wdXRDb250YWluZXI+XG4gICAgICAgICl9XG5cbiAgICAgICAge3RleHQuc2V0dGluZ3MgJiYgKFxuICAgICAgICAgIDxJbnB1dENvbnRhaW5lciBsYWJlbD17dGV4dC5sYWJlbCB8fCAnJ30gY2xhc3NOYW1lPXtjbGFzc2VzLnByb21wdEhvbGRlcn0+XG4gICAgICAgICAgICA8VGV4dEZpZWxkXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3Nlcy5pbnB1dH1cbiAgICAgICAgICAgICAgbXVsdGlsaW5lXG4gICAgICAgICAgICAgIGRlZmF1bHRWYWx1ZT17dGV4dFZhbHVlfVxuICAgICAgICAgICAgICBvbkNoYW5nZT17dGhpcy5jaGFuZ2VUZXh0fVxuICAgICAgICAgICAgICBzcGVsbENoZWNrPXtzcGVsbENoZWNrRW5hYmxlZH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9JbnB1dENvbnRhaW5lcj5cbiAgICAgICAgKX1cblxuICAgICAgICB7dG9rZW5zLnNldHRpbmdzICYmIChcbiAgICAgICAgICA8SW5wdXRDb250YWluZXIgbGFiZWw9e3Rva2Vucy5sYWJlbCB8fCAnJ30gY2xhc3NOYW1lPXtjbGFzc2VzLnRva2VuaXplckNvbnRhaW5lcn0+XG4gICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICBjbGFzc2VzPXt7IHRvb2x0aXA6IGNsYXNzZXMudG9vbHRpcCB9fVxuICAgICAgICAgICAgICBkaXNhYmxlRm9jdXNMaXN0ZW5lclxuICAgICAgICAgICAgICBkaXNhYmxlVG91Y2hMaXN0ZW5lclxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9eydyaWdodCd9XG4gICAgICAgICAgICAgIHRpdGxlPXt2YWxpZGF0aW9uTWVzc2FnZX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPEluZm8gZm9udFNpemU9eydzbWFsbCd9IGNvbG9yPXsncHJpbWFyeSd9IHN0eWxlPXt7IHBvc2l0aW9uOiAnYWJzb2x1dGUnLCBsZWZ0OiAnNDhweCcsIHRvcDogJy0zcHgnIH19IC8+XG4gICAgICAgICAgICA8L1Rvb2x0aXA+XG5cbiAgICAgICAgICAgIDxUb2tlbml6ZXJcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLnRva2VuaXplcn1cbiAgICAgICAgICAgICAgdGV4dD17bW9kZWwudGV4dH1cbiAgICAgICAgICAgICAgdG9rZW5zPXt0b2tlbnNNb2RlbH1cbiAgICAgICAgICAgICAgb25DaGFuZ2U9e3RoaXMuY2hhbmdlVG9rZW5zfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L0lucHV0Q29udGFpbmVyPlxuICAgICAgICApfVxuICAgICAgICB7dG9rZW5zRXJyb3IgJiYgPGRpdiBjbGFzc05hbWU9e2NsYXNzZXMuZXJyb3JUZXh0fT57dG9rZW5zRXJyb3J9PC9kaXY+fVxuICAgICAgICB7c2VsZWN0aW9uc0Vycm9yICYmIDxkaXYgY2xhc3NOYW1lPXtjbGFzc2VzLmVycm9yVGV4dH0+e3NlbGVjdGlvbnNFcnJvcn08L2Rpdj59XG5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e2NsYXNzZXMudG9rZW5zRGV0YWlsc30+XG4gICAgICAgICAge21vZGUuc2V0dGluZ3MgJiYgKFxuICAgICAgICAgICAgPENoaXAgbGFiZWw9e2Ake21vZGUubGFiZWx9OiAke21vZGVsLm1vZGUgPyBtb2RlbC5tb2RlIDogJ05vbmUnfWB9IGNsYXNzTmFtZT17Y2xhc3Nlcy5jaGlwfSAvPlxuICAgICAgICAgICl9XG5cbiAgICAgICAgICB7c2VsZWN0aW9ucy5zZXR0aW5ncyAmJiAoXG4gICAgICAgICAgICA8Q2hpcCBsYWJlbD17YCR7c2VsZWN0aW9ucy5sYWJlbH06ICR7dG9rZW5zTW9kZWwubGVuZ3RofWB9IGNsYXNzTmFtZT17Y2xhc3Nlcy5jaGlwfSAvPlxuICAgICAgICAgICl9XG5cbiAgICAgICAgICB7Y29ycmVjdEFuc3dlci5zZXR0aW5ncyAmJiAoXG4gICAgICAgICAgICA8Q2hpcFxuICAgICAgICAgICAgICBsYWJlbD17YCR7Y29ycmVjdEFuc3dlci5sYWJlbH06ICR7dG9rZW5zTW9kZWwuZmlsdGVyKCh0KSA9PiB0LmNvcnJlY3QpLmxlbmd0aH1gfVxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzZXMuY2hpcH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cblxuICAgICAgICAgIHtzZWxlY3Rpb25Db3VudC5zZXR0aW5ncyAmJiAoXG4gICAgICAgICAgICA8TnVtYmVyVGV4dEZpZWxkXG4gICAgICAgICAgICAgIG1pbj17dG9rZW5zTW9kZWwuZmlsdGVyKCh0KSA9PiB0LmNvcnJlY3QpLmxlbmd0aCB8fCAwfVxuICAgICAgICAgICAgICBsYWJlbD17YCR7c2VsZWN0aW9uQ291bnQubGFiZWx9ICgwOmFueSlgfVxuICAgICAgICAgICAgICBtYXg9e3Rva2Vuc01vZGVsLmxlbmd0aH1cbiAgICAgICAgICAgICAgdmFsdWU9e21vZGVsLm1heFNlbGVjdGlvbnN9XG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXt0aGlzLmNoYW5nZU1heFNlbGVjdGlvbnN9XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3Nlcy5udW1iZXJGaWVsZH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAge3JhdGlvbmFsZUVuYWJsZWQgJiYgKFxuICAgICAgICAgIDxJbnB1dENvbnRhaW5lciBsYWJlbD17cmF0aW9uYWxlLmxhYmVsIHx8ICcnfSBjbGFzc05hbWU9e2NsYXNzZXMucHJvbXB0SG9sZGVyfT5cbiAgICAgICAgICAgIDxFZGl0YWJsZUh0bWxcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLnByb21wdH1cbiAgICAgICAgICAgICAgbWFya3VwPXttb2RlbC5yYXRpb25hbGUgfHwgJyd9XG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXt0aGlzLm9uUmF0aW9uYWxlQ2hhbmdlZH1cbiAgICAgICAgICAgICAgaW1hZ2VTdXBwb3J0PXtpbWFnZVN1cHBvcnR9XG4gICAgICAgICAgICAgIHRvb2xiYXJPcHRzPXt0b29sYmFyT3B0c31cbiAgICAgICAgICAgICAgc3BlbGxDaGVjaz17c3BlbGxDaGVja0VuYWJsZWR9XG4gICAgICAgICAgICAgIG1heEltYWdlV2lkdGg9eyhtYXhJbWFnZVdpZHRoICYmIG1heEltYWdlV2lkdGgucmF0aW9uYWxlKSB8fCBkZWZhdWx0SW1hZ2VNYXhXaWR0aH1cbiAgICAgICAgICAgICAgbWF4SW1hZ2VIZWlnaHQ9eyhtYXhJbWFnZUhlaWdodCAmJiBtYXhJbWFnZUhlaWdodC5yYXRpb25hbGUpIHx8IGRlZmF1bHRJbWFnZU1heEhlaWdodH1cbiAgICAgICAgICAgICAgdXBsb2FkU291bmRTdXBwb3J0PXt1cGxvYWRTb3VuZFN1cHBvcnR9XG4gICAgICAgICAgICAgIGxhbmd1YWdlQ2hhcmFjdGVyc1Byb3BzPXtbeyBsYW5ndWFnZTogJ3NwYW5pc2gnIH0sIHsgbGFuZ3VhZ2U6ICdzcGVjaWFsJyB9XX1cbiAgICAgICAgICAgICAgbWF0aE1sT3B0aW9ucz17bWF0aE1sT3B0aW9uc31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9JbnB1dENvbnRhaW5lcj5cbiAgICAgICAgKX1cblxuICAgICAgICB7ZmVlZGJhY2tFbmFibGVkICYmIChcbiAgICAgICAgICA8RmVlZGJhY2tDb25maWcgZmVlZGJhY2s9e21vZGVsLmZlZWRiYWNrfSBvbkNoYW5nZT17dGhpcy5jaGFuZ2VGZWVkYmFja30gdG9vbGJhck9wdHM9e3Rvb2xiYXJPcHRzfSAvPlxuICAgICAgICApfVxuICAgICAgPC9sYXlvdXQuQ29uZmlnTGF5b3V0PlxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgd2l0aFN0eWxlcygodGhlbWUpID0+ICh7XG4gIHRva2VuaXplckNvbnRhaW5lcjoge1xuICAgIHBhZGRpbmdSaWdodDogMCxcbiAgICBtYXJnaW5SaWdodDogMCxcbiAgICAnJjphZnRlcic6IHtcbiAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgYm90dG9tOiAwLFxuICAgICAgbGVmdDogMCxcbiAgICAgIHJpZ2h0OiAwLFxuICAgICAgaGVpZ2h0OiAnMXB4JyxcbiAgICAgIGNvbnRlbnQ6ICdcIlwiJyxcbiAgICAgIGJhY2tncm91bmRDb2xvcjogdGhlbWUucGFsZXR0ZS5wcmltYXJ5Lm1haW4sXG4gICAgfSxcbiAgICBtYXJnaW5Cb3R0b206IHRoZW1lLnNwYWNpbmcudW5pdCxcbiAgfSxcbiAgY2hpcDoge1xuICAgIG1hcmdpblRvcDogdGhlbWUuc3BhY2luZy51bml0IC8gMixcbiAgICBtYXJnaW5SaWdodDogdGhlbWUuc3BhY2luZy51bml0ICogMixcbiAgfSxcbiAgaW5wdXQ6IHtcbiAgICB3aWR0aDogJzEwMCUnLFxuICB9LFxuICB0b2tlbml6ZXI6IHtcbiAgICBtYXJnaW5Ub3A6IHRoZW1lLnNwYWNpbmcudW5pdCAqIDIsXG4gIH0sXG4gIG1haW5PcHRzOiB7XG4gICAgd2lkdGg6ICcxMDAlJyxcbiAgICBqdXN0aWZ5Q29udGVudDogJ3NwYWNlLWJldHdlZW4nLFxuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBhbGlnbkl0ZW1zOiAnYmFzZWxpbmUnLFxuICB9LFxuICBwcm9tcHRIb2xkZXI6IHtcbiAgICB3aWR0aDogJzEwMCUnLFxuICAgIHBhZGRpbmdUb3A6IHRoZW1lLnNwYWNpbmcudW5pdCAqIDIsXG4gICAgbWFyZ2luQm90dG9tOiB0aGVtZS5zcGFjaW5nLnVuaXQgKiAyLFxuICB9LFxuICB0b2tlbnNEZXRhaWxzOiB7XG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgIGZsZXhXcmFwOiAnd3JhcCcsXG4gICAgbWFyZ2luQm90dG9tOiB0aGVtZS5zcGFjaW5nLnVuaXQgKiAyLjUsXG4gIH0sXG4gIG51bWJlckZpZWxkOiB7XG4gICAgd2lkdGg6ICcxODBweCcsXG4gICAgbWFyZ2luOiBgJHt0aGVtZS5zcGFjaW5nLnVuaXQgLyAyfXB4IGF1dG8gMGAsXG4gIH0sXG4gIHRvb2x0aXA6IHtcbiAgICBmb250U2l6ZTogdGhlbWUudHlwb2dyYXBoeS5mb250U2l6ZSAtIDIsXG4gICAgd2hpdGVTcGFjZTogJ3ByZScsXG4gICAgbWF4V2lkdGg6ICc1MDBweCcsXG4gIH0sXG4gIGVycm9yVGV4dDoge1xuICAgIGZvbnRTaXplOiB0aGVtZS50eXBvZ3JhcGh5LmZvbnRTaXplIC0gMixcbiAgICBjb2xvcjogdGhlbWUucGFsZXR0ZS5lcnJvci5tYWluLFxuICAgIHBhZGRpbmdCb3R0b206IHRoZW1lLnNwYWNpbmcudW5pdCxcbiAgfSxcbn0pKShEZXNpZ24pO1xuIl19
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/design.jsx"],"names":["Panel","settings","toggle","radio","dropdown","log","Design","props","val","apply","u","text","tokens","event","updateText","target","value","mode","correctTokenCount","filter","t","correct","length","max","isFinite","maxSelections","Math","fn","onModelChanged","model","update","feedback","partialScoring","prompt","teacherInstructions","rationale","state","nProps","setState","textValue","classes","configuration","imageSupport","onConfigurationChanged","uploadSoundSupport","correctAnswer","contentDimensions","highlightChoices","selectionCount","selections","settingsPanelDisabled","scoringType","spellCheck","studentInstructions","maxImageWidth","maxImageHeight","withRubric","mathMlOptions","language","languageChoices","errors","feedbackEnabled","promptEnabled","rationaleEnabled","spellCheckEnabled","teacherInstructionsEnabled","toolbarEditorPosition","tokensError","selectionsError","validationMessage","defaultImageMaxWidth","defaultImageMaxHeight","tokensModel","toolbarOpts","position","panelSettings","label","enabled","options","panelProperties","studentInstructionsEnabled","rubricEnabled","Settings","Properties","promptHolder","onTeacherInstructionsChanged","onPromptChanged","input","changeText","tokenizerContainer","tooltip","left","top","tokenizer","changeTokens","errorText","tokensDetails","chip","changeMaxSelections","numberField","onRationaleChanged","changeFeedback","React","Component","PropTypes","object","isRequired","func","shape","add","theme","paddingRight","marginRight","bottom","right","height","content","backgroundColor","palette","primary","main","marginBottom","spacing","unit","marginTop","width","mainOpts","justifyContent","display","alignItems","paddingTop","flexWrap","margin","fontSize","typography","whiteSpace","maxWidth","color","error","paddingBottom"],"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/pie-toolbox/text-select';\nimport { InputContainer, NumberTextField, FeedbackConfig, settings, layout } from '@pie-lib/pie-toolbox/config-ui';\nimport Chip from '@material-ui/core/Chip';\nimport Info from '@material-ui/icons/Info';\nimport debug from 'debug';\nimport EditableHtml from '@pie-lib/pie-toolbox/editable-html';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport { generateValidationMessage } from './utils';\n\nconst { Panel, toggle, radio, dropdown } = 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 uploadSoundSupport: PropTypes.object,\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) => this.updateText(event.target.value);\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\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\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({ ...model, rationale });\n };\n\n render() {\n const { text: textValue } = this.state;\n const { classes, configuration, imageSupport, model, onConfigurationChanged, onModelChanged, uploadSoundSupport } =\n this.props;\n const {\n correctAnswer = {},\n contentDimensions = {},\n feedback = {},\n highlightChoices = {},\n mode = {},\n partialScoring = {},\n prompt = {},\n rationale = {},\n selectionCount = {},\n selections = {},\n settingsPanelDisabled,\n scoringType = {},\n spellCheck = {},\n studentInstructions = {},\n teacherInstructions = {},\n text = {},\n tokens = {},\n maxImageWidth = {},\n maxImageHeight = {},\n withRubric = {},\n mathMlOptions = {},\n language = {},\n languageChoices = {},\n } = configuration || {};\n const {\n errors,\n feedbackEnabled,\n promptEnabled,\n rationaleEnabled,\n spellCheckEnabled,\n teacherInstructionsEnabled,\n toolbarEditorPosition,\n } = model || {};\n\n const { tokensError, selectionsError } = errors || {};\n const validationMessage = generateValidationMessage(configuration);\n\n const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;\n const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;\n\n let { tokens: tokensModel } = model;\n tokensModel = tokensModel || [];\n\n const toolbarOpts = {\n position: toolbarEditorPosition === 'top' ? 'top' : 'bottom',\n };\n\n log('[render] maxSelections:', model.maxSelections);\n\n const panelSettings = {\n partialScoring: partialScoring.settings && toggle(partialScoring.label),\n highlightChoices: highlightChoices.settings && toggle(highlightChoices.label),\n feedbackEnabled: feedback.settings && toggle(feedback.label),\n 'language.enabled': language.settings && toggle(language.label, true),\n language: language.settings && language.enabled && dropdown(languageChoices.label, languageChoices.options),\n };\n\n const panelProperties = {\n teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),\n studentInstructionsEnabled: studentInstructions.settings && toggle(studentInstructions.label),\n promptEnabled: prompt.settings && toggle(prompt.label),\n rationaleEnabled: rationale.settings && toggle(rationale.label),\n spellCheckEnabled: spellCheck.settings && toggle(spellCheck.label),\n scoringType: scoringType.settings && radio(scoringType.label, ['auto', 'rubric']),\n rubricEnabled: withRubric?.settings && toggle(withRubric?.label),\n };\n\n return (\n <layout.ConfigLayout\n dimensions={contentDimensions}\n hideSettings={settingsPanelDisabled}\n settings={\n <Panel\n model={model}\n configuration={configuration}\n onChangeModel={(model) => onModelChanged(model)}\n onChangeConfiguration={onConfigurationChanged}\n groups={{\n Settings: panelSettings,\n Properties: panelProperties,\n }}\n />\n }\n >\n {teacherInstructionsEnabled && (\n <InputContainer label={teacherInstructions.label} className={classes.promptHolder}>\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 maxImageWidth={(maxImageWidth && maxImageWidth.teacherInstructions) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.teacherInstructions) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n </InputContainer>\n )}\n\n {promptEnabled && (\n <InputContainer label={prompt.label || ''} className={classes.promptHolder}>\n <EditableHtml\n className={classes.prompt}\n markup={model.prompt}\n onChange={this.onPromptChanged}\n imageSupport={imageSupport}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n maxImageWidth={defaultImageMaxWidth}\n maxImageHeight={defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n </InputContainer>\n )}\n\n {text.settings && (\n <InputContainer label={text.label || ''} className={classes.promptHolder}>\n <TextField\n className={classes.input}\n multiline\n defaultValue={textValue}\n onChange={this.changeText}\n spellCheck={spellCheckEnabled}\n />\n </InputContainer>\n )}\n\n {tokens.settings && (\n <InputContainer label={tokens.label || ''} className={classes.tokenizerContainer}>\n <Tooltip\n classes={{ tooltip: classes.tooltip }}\n disableFocusListener\n disableTouchListener\n placement={'right'}\n title={validationMessage}\n >\n <Info fontSize={'small'} color={'primary'} style={{ position: 'absolute', left: '48px', top: '-3px' }} />\n </Tooltip>\n\n <Tokenizer\n className={classes.tokenizer}\n text={model.text}\n tokens={tokensModel}\n onChange={this.changeTokens}\n />\n </InputContainer>\n )}\n {tokensError && <div className={classes.errorText}>{tokensError}</div>}\n {selectionsError && <div className={classes.errorText}>{selectionsError}</div>}\n\n <div className={classes.tokensDetails}>\n {mode.settings && (\n <Chip label={`${mode.label}: ${model.mode ? model.mode : 'None'}`} className={classes.chip} />\n )}\n\n {selections.settings && (\n <Chip label={`${selections.label}: ${tokensModel.length}`} className={classes.chip} />\n )}\n\n {correctAnswer.settings && (\n <Chip\n label={`${correctAnswer.label}: ${tokensModel.filter((t) => t.correct).length}`}\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 </div>\n\n {rationaleEnabled && (\n <InputContainer label={rationale.label || ''} className={classes.promptHolder}>\n <EditableHtml\n className={classes.prompt}\n markup={model.rationale || ''}\n onChange={this.onRationaleChanged}\n imageSupport={imageSupport}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n maxImageWidth={(maxImageWidth && maxImageWidth.rationale) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.rationale) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n </InputContainer>\n )}\n\n {feedbackEnabled && (\n <FeedbackConfig feedback={model.feedback} onChange={this.changeFeedback} toolbarOpts={toolbarOpts} />\n )}\n </layout.ConfigLayout>\n );\n }\n}\n\nexport default withStyles((theme) => ({\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 marginTop: theme.spacing.unit / 2,\n marginRight: theme.spacing.unit * 2,\n },\n input: {\n width: '100%',\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 paddingTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n },\n tokensDetails: {\n display: 'flex',\n alignItems: 'center',\n flexWrap: 'wrap',\n marginBottom: theme.spacing.unit * 2.5,\n },\n numberField: {\n width: '180px',\n margin: `${theme.spacing.unit / 2}px auto 0`,\n },\n tooltip: {\n fontSize: theme.typography.fontSize - 2,\n whiteSpace: 'pre',\n maxWidth: '500px',\n },\n errorText: {\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingBottom: theme.spacing.unit,\n },\n}))(Design);\n"],"file":"design.js"}
1
+ {"version":3,"sources":["../src/design.jsx"],"names":["Panel","settings","toggle","radio","dropdown","log","Design","props","val","apply","u","text","tokens","event","updateText","target","value","mode","correctTokenCount","filter","t","correct","length","max","isFinite","maxSelections","Math","fn","onModelChanged","model","update","feedback","partialScoring","prompt","teacherInstructions","rationale","state","nProps","setState","textValue","classes","configuration","imageSupport","onConfigurationChanged","uploadSoundSupport","correctAnswer","contentDimensions","highlightChoices","selectionCount","selections","settingsPanelDisabled","scoringType","spellCheck","studentInstructions","maxImageWidth","maxImageHeight","withRubric","mathMlOptions","language","languageChoices","errors","feedbackEnabled","promptEnabled","rationaleEnabled","spellCheckEnabled","teacherInstructionsEnabled","toolbarEditorPosition","tokensError","selectionsError","validationMessage","defaultImageMaxWidth","defaultImageMaxHeight","tokensModel","toolbarOpts","position","panelSettings","label","enabled","options","panelProperties","studentInstructionsEnabled","rubricEnabled","Settings","Properties","promptHolder","onTeacherInstructionsChanged","onPromptChanged","input","changeText","tokenizerContainer","tooltip","left","top","tokenizer","changeTokens","errorText","tokensDetails","chip","changeMaxSelections","numberField","onRationaleChanged","changeFeedback","React","Component","PropTypes","object","isRequired","func","shape","add","theme","paddingRight","marginRight","bottom","right","height","content","backgroundColor","palette","primary","main","marginBottom","spacing","unit","marginTop","width","mainOpts","justifyContent","display","alignItems","paddingTop","flexWrap","margin","fontSize","typography","whiteSpace","maxWidth","color","error","paddingBottom"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;AAEA,IAAQA,KAAR,GAA2CC,kBAA3C,CAAQD,KAAR;AAAA,IAAeE,MAAf,GAA2CD,kBAA3C,CAAeC,MAAf;AAAA,IAAuBC,KAAvB,GAA2CF,kBAA3C,CAAuBE,KAAvB;AAAA,IAA8BC,QAA9B,GAA2CH,kBAA3C,CAA8BG,QAA9B;AAEA,IAAMC,GAAG,GAAG,uBAAM,oCAAN,CAAZ;;IAEaC,M;;;;;AAgBX,kBAAYC,KAAZ,EAAmB;AAAA;;AAAA;AACjB,8BAAMA,KAAN;AADiB,mGAoBN,0BAAS,UAACC,GAAD,EAAS;AAC7B,YAAKC,KAAL,CAAW,UAACC,CAAD,EAAO;AAChBA,QAAAA,CAAC,CAACC,IAAF,GAASH,GAAT;AACAE,QAAAA,CAAC,CAACE,MAAF,GAAW,EAAX;AACD,OAHD;AAID,KALY,EAKV,GALU,CApBM;AAAA,mGA2BN,UAACC,KAAD;AAAA,aAAW,MAAKC,UAAL,CAAgBD,KAAK,CAACE,MAAN,CAAaC,KAA7B,CAAX;AAAA,KA3BM;AAAA,qGA6BJ,UAACJ,MAAD,EAASK,IAAT,EAAkB;AAC/B,YAAKR,KAAL,CAAW,UAACC,CAAD,EAAO;AAChBA,QAAAA,CAAC,CAACE,MAAF,GAAWA,MAAX;AACAF,QAAAA,CAAC,CAACO,IAAF,GAASA,IAAT;AAEA,YAAMC,iBAAiB,GAAGN,MAAM,CAACO,MAAP,CAAc,UAACC,CAAD;AAAA,iBAAOA,CAAC,CAACC,OAAT;AAAA,SAAd,EAAgCC,MAA1D;AACA,YAAMC,GAAG,GAAGC,QAAQ,CAACd,CAAC,CAACe,aAAH,CAAR,GAA4Bf,CAAC,CAACe,aAA9B,GAA8C,CAA1D;AAEAf,QAAAA,CAAC,CAACe,aAAF,GAAkBC,IAAI,CAACH,GAAL,CAASA,GAAT,EAAcL,iBAAd,CAAlB;AACD,OARD;AASD,KAvCkB;AAAA,4GAyCG,UAACL,KAAD,EAAQU,GAAR,EAAgB;AACpC,YAAKd,KAAL,CAAW,UAACC,CAAD;AAAA,eAAQA,CAAC,CAACe,aAAF,GAAkBF,GAA1B;AAAA,OAAX;AACD,KA3CkB;AAAA,8FA6CX,UAACI,EAAD,EAAQ;AACd,wBAAkC,MAAKpB,KAAvC;AAAA,UAAQqB,cAAR,eAAQA,cAAR;AAAA,UAAwBC,KAAxB,eAAwBA,KAAxB;AACA,UAAMC,MAAM,GAAG,2BAAUD,KAAV,CAAf;AAEAF,MAAAA,EAAE,CAACG,MAAD,CAAF;AACAF,MAAAA,cAAc,CAACE,MAAD,CAAd;AACD,KAnDkB;AAAA,uGAqDF,UAACC,QAAD,EAAc;AAC7B,YAAKtB,KAAL,CAAW,UAACC,CAAD;AAAA,eAAQA,CAAC,CAACqB,QAAF,GAAaA,QAArB;AAAA,OAAX;AACD,KAvDkB;AAAA,6GAyDI,UAACC,cAAD,EAAoB;AACzC,yBAAkC,MAAKzB,KAAvC;AAAA,UAAQqB,cAAR,gBAAQA,cAAR;AAAA,UAAwBC,KAAxB,gBAAwBA,KAAxB;AACA,UAAMC,MAAM,GAAG,2BAAUD,KAAV,CAAf;AACAC,MAAAA,MAAM,CAACE,cAAP,GAAwBA,cAAxB;AAEAJ,MAAAA,cAAc,CAACE,MAAD,CAAd;AACD,KA/DkB;AAAA,wGAiED,UAACG,MAAD,EAAY;AAC5B,yBAAkC,MAAK1B,KAAvC;AAAA,UAAQqB,cAAR,gBAAQA,cAAR;AAAA,UAAwBC,KAAxB,gBAAwBA,KAAxB;AACA,UAAMC,MAAM,GAAG,2BAAUD,KAAV,CAAf;AAEAC,MAAAA,MAAM,CAACG,MAAP,GAAgBA,MAAhB;AACAL,MAAAA,cAAc,CAACE,MAAD,CAAd;AACD,KAvEkB;AAAA,qHAyEY,UAACI,mBAAD,EAAyB;AACtD,yBAAkC,MAAK3B,KAAvC;AAAA,UAAQqB,cAAR,gBAAQA,cAAR;AAAA,UAAwBC,KAAxB,gBAAwBA,KAAxB;AACA,UAAMC,MAAM,GAAG,2BAAUD,KAAV,CAAf;AAEAC,MAAAA,MAAM,CAACI,mBAAP,GAA6BA,mBAA7B;AACAN,MAAAA,cAAc,CAACE,MAAD,CAAd;AACD,KA/EkB;AAAA,2GAiFE,UAACK,SAAD,EAAe;AAClC,yBAAkC,MAAK5B,KAAvC;AAAA,UAAQqB,cAAR,gBAAQA,cAAR;AAAA,UAAwBC,KAAxB,gBAAwBA,KAAxB;AAEAD,MAAAA,cAAc,iCAAMC,KAAN;AAAaM,QAAAA,SAAS,EAATA;AAAb,SAAd;AACD,KArFkB;AAGjB,QAAQN,MAAR,GAAkB,MAAKtB,KAAvB,CAAQsB,KAAR;AAEA,UAAKO,KAAL,GAAa;AACXzB,MAAAA,IAAI,EAAGkB,MAAK,IAAIA,MAAK,CAAClB,IAAhB,IAAyB;AADpB,KAAb;AALiB;AAQlB;;;;WAED,0CAAiC0B,MAAjC,EAAyC;AACvC,UAAQR,KAAR,GAAkBQ,MAAlB,CAAQR,KAAR;;AAEA,UAAIA,KAAK,IAAIA,KAAK,CAAClB,IAAnB,EAAyB;AACvB,aAAK2B,QAAL,CAAc;AACZ3B,UAAAA,IAAI,EAAEkB,KAAK,CAAClB;AADA,SAAd;AAGD;AACF;;;WAqED,kBAAS;AACP,UAAc4B,SAAd,GAA4B,KAAKH,KAAjC,CAAQzB,IAAR;AACA,yBACE,KAAKJ,KADP;AAAA,UAAQiC,OAAR,gBAAQA,OAAR;AAAA,UAAiBC,aAAjB,gBAAiBA,aAAjB;AAAA,UAAgCC,YAAhC,gBAAgCA,YAAhC;AAAA,UAA8Cb,KAA9C,gBAA8CA,KAA9C;AAAA,UAAqDc,sBAArD,gBAAqDA,sBAArD;AAAA,UAA6Ef,cAA7E,gBAA6EA,cAA7E;AAAA,UAA6FgB,kBAA7F,gBAA6FA,kBAA7F;;AAEA,iBAwBIH,aAAa,IAAI,EAxBrB;AAAA,oCACEI,aADF;AAAA,UACEA,aADF,mCACkB,EADlB;AAAA,uCAEEC,iBAFF;AAAA,UAEEA,iBAFF,sCAEsB,EAFtB;AAAA,+BAGEf,QAHF;AAAA,UAGEA,QAHF,8BAGa,EAHb;AAAA,uCAIEgB,gBAJF;AAAA,UAIEA,gBAJF,sCAIqB,EAJrB;AAAA,2BAKE9B,IALF;AAAA,UAKEA,IALF,0BAKS,EALT;AAAA,qCAMEe,cANF;AAAA,UAMEA,cANF,oCAMmB,EANnB;AAAA,6BAOEC,MAPF;AAAA,UAOEA,MAPF,4BAOW,EAPX;AAAA,gCAQEE,SARF;AAAA,UAQEA,SARF,+BAQc,EARd;AAAA,qCASEa,cATF;AAAA,UASEA,cATF,oCASmB,EATnB;AAAA,iCAUEC,UAVF;AAAA,UAUEA,UAVF,gCAUe,EAVf;AAAA,UAWEC,qBAXF,QAWEA,qBAXF;AAAA,kCAYEC,WAZF;AAAA,UAYEA,WAZF,iCAYgB,EAZhB;AAAA,iCAaEC,UAbF;AAAA,UAaEA,UAbF,gCAae,EAbf;AAAA,uCAcEC,mBAdF;AAAA,UAcEA,mBAdF,sCAcwB,EAdxB;AAAA,uCAeEnB,mBAfF;AAAA,UAeEA,mBAfF,sCAewB,EAfxB;AAAA,2BAgBEvB,IAhBF;AAAA,UAgBEA,IAhBF,0BAgBS,EAhBT;AAAA,6BAiBEC,MAjBF;AAAA,UAiBEA,MAjBF,4BAiBW,EAjBX;AAAA,oCAkBE0C,aAlBF;AAAA,UAkBEA,aAlBF,mCAkBkB,EAlBlB;AAAA,qCAmBEC,cAnBF;AAAA,UAmBEA,cAnBF,oCAmBmB,EAnBnB;AAAA,iCAoBEC,UApBF;AAAA,UAoBEA,UApBF,gCAoBe,EApBf;AAAA,oCAqBEC,aArBF;AAAA,UAqBEA,aArBF,mCAqBkB,EArBlB;AAAA,+BAsBEC,QAtBF;AAAA,UAsBEA,QAtBF,8BAsBa,EAtBb;AAAA,sCAuBEC,eAvBF;AAAA,UAuBEA,eAvBF,qCAuBoB,EAvBpB;;AAyBA,kBAQI9B,KAAK,IAAI,EARb;AAAA,UACE+B,MADF,SACEA,MADF;AAAA,UAEEC,eAFF,SAEEA,eAFF;AAAA,UAGEC,aAHF,SAGEA,aAHF;AAAA,UAIEC,gBAJF,SAIEA,gBAJF;AAAA,UAKEC,iBALF,SAKEA,iBALF;AAAA,UAMEC,0BANF,SAMEA,0BANF;AAAA,UAOEC,qBAPF,SAOEA,qBAPF;;AAUA,kBAAyCN,MAAM,IAAI,EAAnD;AAAA,UAAQO,WAAR,SAAQA,WAAR;AAAA,UAAqBC,eAArB,SAAqBA,eAArB;;AACA,UAAMC,iBAAiB,GAAG,sCAA0B5B,aAA1B,CAA1B;AAEA,UAAM6B,oBAAoB,GAAGhB,aAAa,IAAIA,aAAa,CAACrB,MAA5D;AACA,UAAMsC,qBAAqB,GAAGhB,cAAc,IAAIA,cAAc,CAACtB,MAA/D;AAEA,UAAcuC,WAAd,GAA8B3C,KAA9B,CAAMjB,MAAN;AACA4D,MAAAA,WAAW,GAAGA,WAAW,IAAI,EAA7B;AAEA,UAAMC,WAAW,GAAG;AAClBC,QAAAA,QAAQ,EAAER,qBAAqB,KAAK,KAA1B,GAAkC,KAAlC,GAA0C;AADlC,OAApB;AAIA7D,MAAAA,GAAG,CAAC,yBAAD,EAA4BwB,KAAK,CAACJ,aAAlC,CAAH;AAEA,UAAMkD,aAAa,GAAG;AACpB3C,QAAAA,cAAc,EAAEA,cAAc,CAAC/B,QAAf,IAA2BC,MAAM,CAAC8B,cAAc,CAAC4C,KAAhB,CAD7B;AAEpB7B,QAAAA,gBAAgB,EAAEA,gBAAgB,CAAC9C,QAAjB,IAA6BC,MAAM,CAAC6C,gBAAgB,CAAC6B,KAAlB,CAFjC;AAGpBf,QAAAA,eAAe,EAAE9B,QAAQ,CAAC9B,QAAT,IAAqBC,MAAM,CAAC6B,QAAQ,CAAC6C,KAAV,CAHxB;AAIpB,4BAAoBlB,QAAQ,CAACzD,QAAT,IAAqBC,MAAM,CAACwD,QAAQ,CAACkB,KAAV,EAAiB,IAAjB,CAJ3B;AAKpBlB,QAAAA,QAAQ,EAAEA,QAAQ,CAACzD,QAAT,IAAqByD,QAAQ,CAACmB,OAA9B,IAAyCzE,QAAQ,CAACuD,eAAe,CAACiB,KAAjB,EAAwBjB,eAAe,CAACmB,OAAxC;AALvC,OAAtB;AAQA,UAAMC,eAAe,GAAG;AACtBd,QAAAA,0BAA0B,EAAE/B,mBAAmB,CAACjC,QAApB,IAAgCC,MAAM,CAACgC,mBAAmB,CAAC0C,KAArB,CAD5C;AAEtBI,QAAAA,0BAA0B,EAAE3B,mBAAmB,CAACpD,QAApB,IAAgCC,MAAM,CAACmD,mBAAmB,CAACuB,KAArB,CAF5C;AAGtBd,QAAAA,aAAa,EAAE7B,MAAM,CAAChC,QAAP,IAAmBC,MAAM,CAAC+B,MAAM,CAAC2C,KAAR,CAHlB;AAItBb,QAAAA,gBAAgB,EAAE5B,SAAS,CAAClC,QAAV,IAAsBC,MAAM,CAACiC,SAAS,CAACyC,KAAX,CAJxB;AAKtBZ,QAAAA,iBAAiB,EAAEZ,UAAU,CAACnD,QAAX,IAAuBC,MAAM,CAACkD,UAAU,CAACwB,KAAZ,CAL1B;AAMtBzB,QAAAA,WAAW,EAAEA,WAAW,CAAClD,QAAZ,IAAwBE,KAAK,CAACgD,WAAW,CAACyB,KAAb,EAAoB,CAAC,MAAD,EAAS,QAAT,CAApB,CANpB;AAOtBK,QAAAA,aAAa,EAAE,CAAAzB,UAAU,SAAV,IAAAA,UAAU,WAAV,YAAAA,UAAU,CAAEvD,QAAZ,KAAwBC,MAAM,CAACsD,UAAD,aAACA,UAAD,uBAACA,UAAU,CAAEoB,KAAb;AAPvB,OAAxB;AAUA,0BACE,gCAAC,gBAAD,CAAQ,YAAR;AACE,QAAA,UAAU,EAAE9B,iBADd;AAEE,QAAA,YAAY,EAAEI,qBAFhB;AAGE,QAAA,QAAQ,eACN,gCAAC,KAAD;AACE,UAAA,KAAK,EAAErB,KADT;AAEE,UAAA,aAAa,EAAEY,aAFjB;AAGE,UAAA,aAAa,EAAE,uBAACZ,KAAD;AAAA,mBAAWD,cAAc,CAACC,KAAD,CAAzB;AAAA,WAHjB;AAIE,UAAA,qBAAqB,EAAEc,sBAJzB;AAKE,UAAA,MAAM,EAAE;AACNuC,YAAAA,QAAQ,EAAEP,aADJ;AAENQ,YAAAA,UAAU,EAAEJ;AAFN;AALV;AAJJ,SAgBGd,0BAA0B,iBACzB,gCAAC,wBAAD;AAAgB,QAAA,KAAK,EAAE/B,mBAAmB,CAAC0C,KAA3C;AAAkD,QAAA,SAAS,EAAEpC,OAAO,CAAC4C;AAArE,sBACE,gCAAC,0BAAD;AACE,QAAA,SAAS,EAAE5C,OAAO,CAACP,MADrB;AAEE,QAAA,MAAM,EAAEJ,KAAK,CAACK,mBAAN,IAA6B,EAFvC;AAGE,QAAA,QAAQ,EAAE,KAAKmD,4BAHjB;AAIE,QAAA,YAAY,EAAE3C,YAJhB;AAKE,QAAA,QAAQ,EAAE,KALZ;AAME,QAAA,WAAW,EAAE+B,WANf;AAOE,QAAA,UAAU,EAAET,iBAPd;AAQE,QAAA,aAAa,EAAGV,aAAa,IAAIA,aAAa,CAACpB,mBAAhC,IAAwDoC,oBARzE;AASE,QAAA,cAAc,EAAGf,cAAc,IAAIA,cAAc,CAACrB,mBAAlC,IAA0DqC,qBAT5E;AAUE,QAAA,kBAAkB,EAAE3B,kBAVtB;AAWE,QAAA,uBAAuB,EAAE,CAAC;AAAEc,UAAAA,QAAQ,EAAE;AAAZ,SAAD,EAA0B;AAAEA,UAAAA,QAAQ,EAAE;AAAZ,SAA1B,CAX3B;AAYE,QAAA,aAAa,EAAED;AAZjB,QADF,CAjBJ,EAmCGK,aAAa,iBACZ,gCAAC,wBAAD;AAAgB,QAAA,KAAK,EAAE7B,MAAM,CAAC2C,KAAP,IAAgB,EAAvC;AAA2C,QAAA,SAAS,EAAEpC,OAAO,CAAC4C;AAA9D,sBACE,gCAAC,0BAAD;AACE,QAAA,SAAS,EAAE5C,OAAO,CAACP,MADrB;AAEE,QAAA,MAAM,EAAEJ,KAAK,CAACI,MAFhB;AAGE,QAAA,QAAQ,EAAE,KAAKqD,eAHjB;AAIE,QAAA,YAAY,EAAE5C,YAJhB;AAKE,QAAA,WAAW,EAAE+B,WALf;AAME,QAAA,UAAU,EAAET,iBANd;AAOE,QAAA,aAAa,EAAEM,oBAPjB;AAQE,QAAA,cAAc,EAAEC,qBARlB;AASE,QAAA,kBAAkB,EAAE3B,kBATtB;AAUE,QAAA,uBAAuB,EAAE,CAAC;AAAEc,UAAAA,QAAQ,EAAE;AAAZ,SAAD,EAA0B;AAAEA,UAAAA,QAAQ,EAAE;AAAZ,SAA1B,CAV3B;AAWE,QAAA,aAAa,EAAED;AAXjB,QADF,CApCJ,EAqDG9C,IAAI,CAACV,QAAL,iBACC,gCAAC,wBAAD;AAAgB,QAAA,KAAK,EAAEU,IAAI,CAACiE,KAAL,IAAc,EAArC;AAAyC,QAAA,SAAS,EAAEpC,OAAO,CAAC4C;AAA5D,sBACE,gCAAC,qBAAD;AACE,QAAA,SAAS,EAAE5C,OAAO,CAAC+C,KADrB;AAEE,QAAA,SAAS,MAFX;AAGE,QAAA,YAAY,EAAEhD,SAHhB;AAIE,QAAA,QAAQ,EAAE,KAAKiD,UAJjB;AAKE,QAAA,UAAU,EAAExB;AALd,QADF,CAtDJ,EAiEGpD,MAAM,CAACX,QAAP,iBACC,gCAAC,wBAAD;AAAgB,QAAA,KAAK,EAAEW,MAAM,CAACgE,KAAP,IAAgB,EAAvC;AAA2C,QAAA,SAAS,EAAEpC,OAAO,CAACiD;AAA9D,sBACE,gCAAC,mBAAD;AACE,QAAA,OAAO,EAAE;AAAEC,UAAAA,OAAO,EAAElD,OAAO,CAACkD;AAAnB,SADX;AAEE,QAAA,oBAAoB,MAFtB;AAGE,QAAA,oBAAoB,MAHtB;AAIE,QAAA,SAAS,EAAE,OAJb;AAKE,QAAA,KAAK,EAAErB;AALT,sBAOE,gCAAC,gBAAD;AAAM,QAAA,QAAQ,EAAE,OAAhB;AAAyB,QAAA,KAAK,EAAE,SAAhC;AAA2C,QAAA,KAAK,EAAE;AAAEK,UAAAA,QAAQ,EAAE,UAAZ;AAAwBiB,UAAAA,IAAI,EAAE,MAA9B;AAAsCC,UAAAA,GAAG,EAAE;AAA3C;AAAlD,QAPF,CADF,eAWE,gCAAC,qBAAD;AACE,QAAA,SAAS,EAAEpD,OAAO,CAACqD,SADrB;AAEE,QAAA,IAAI,EAAEhE,KAAK,CAAClB,IAFd;AAGE,QAAA,MAAM,EAAE6D,WAHV;AAIE,QAAA,QAAQ,EAAE,KAAKsB;AAJjB,QAXF,CAlEJ,EAqFG3B,WAAW,iBAAI;AAAK,QAAA,SAAS,EAAE3B,OAAO,CAACuD;AAAxB,SAAoC5B,WAApC,CArFlB,EAsFGC,eAAe,iBAAI;AAAK,QAAA,SAAS,EAAE5B,OAAO,CAACuD;AAAxB,SAAoC3B,eAApC,CAtFtB,eAwFE;AAAK,QAAA,SAAS,EAAE5B,OAAO,CAACwD;AAAxB,SACG/E,IAAI,CAAChB,QAAL,iBACC,gCAAC,gBAAD;AAAM,QAAA,KAAK,YAAKgB,IAAI,CAAC2D,KAAV,eAAoB/C,KAAK,CAACZ,IAAN,GAAaY,KAAK,CAACZ,IAAnB,GAA0B,MAA9C,CAAX;AAAmE,QAAA,SAAS,EAAEuB,OAAO,CAACyD;AAAtF,QAFJ,EAKGhD,UAAU,CAAChD,QAAX,iBACC,gCAAC,gBAAD;AAAM,QAAA,KAAK,YAAKgD,UAAU,CAAC2B,KAAhB,eAA0BJ,WAAW,CAAClD,MAAtC,CAAX;AAA2D,QAAA,SAAS,EAAEkB,OAAO,CAACyD;AAA9E,QANJ,EASGpD,aAAa,CAAC5C,QAAd,iBACC,gCAAC,gBAAD;AACE,QAAA,KAAK,YAAK4C,aAAa,CAAC+B,KAAnB,eAA6BJ,WAAW,CAACrD,MAAZ,CAAmB,UAACC,CAAD;AAAA,iBAAOA,CAAC,CAACC,OAAT;AAAA,SAAnB,EAAqCC,MAAlE,CADP;AAEE,QAAA,SAAS,EAAEkB,OAAO,CAACyD;AAFrB,QAVJ,EAgBGjD,cAAc,CAAC/C,QAAf,iBACC,gCAAC,yBAAD;AACE,QAAA,GAAG,EAAEuE,WAAW,CAACrD,MAAZ,CAAmB,UAACC,CAAD;AAAA,iBAAOA,CAAC,CAACC,OAAT;AAAA,SAAnB,EAAqCC,MAArC,IAA+C,CADtD;AAEE,QAAA,KAAK,YAAK0B,cAAc,CAAC4B,KAApB,aAFP;AAGE,QAAA,GAAG,EAAEJ,WAAW,CAAClD,MAHnB;AAIE,QAAA,KAAK,EAAEO,KAAK,CAACJ,aAJf;AAKE,QAAA,QAAQ,EAAE,KAAKyE,mBALjB;AAME,QAAA,SAAS,EAAE1D,OAAO,CAAC2D;AANrB,QAjBJ,CAxFF,EAoHGpC,gBAAgB,iBACf,gCAAC,wBAAD;AAAgB,QAAA,KAAK,EAAE5B,SAAS,CAACyC,KAAV,IAAmB,EAA1C;AAA8C,QAAA,SAAS,EAAEpC,OAAO,CAAC4C;AAAjE,sBACE,gCAAC,0BAAD;AACE,QAAA,SAAS,EAAE5C,OAAO,CAACP,MADrB;AAEE,QAAA,MAAM,EAAEJ,KAAK,CAACM,SAAN,IAAmB,EAF7B;AAGE,QAAA,QAAQ,EAAE,KAAKiE,kBAHjB;AAIE,QAAA,YAAY,EAAE1D,YAJhB;AAKE,QAAA,WAAW,EAAE+B,WALf;AAME,QAAA,UAAU,EAAET,iBANd;AAOE,QAAA,aAAa,EAAGV,aAAa,IAAIA,aAAa,CAACnB,SAAhC,IAA8CmC,oBAP/D;AAQE,QAAA,cAAc,EAAGf,cAAc,IAAIA,cAAc,CAACpB,SAAlC,IAAgDoC,qBARlE;AASE,QAAA,kBAAkB,EAAE3B,kBATtB;AAUE,QAAA,uBAAuB,EAAE,CAAC;AAAEc,UAAAA,QAAQ,EAAE;AAAZ,SAAD,EAA0B;AAAEA,UAAAA,QAAQ,EAAE;AAAZ,SAA1B,CAV3B;AAWE,QAAA,aAAa,EAAED;AAXjB,QADF,CArHJ,EAsIGI,eAAe,iBACd,gCAAC,wBAAD;AAAgB,QAAA,QAAQ,EAAEhC,KAAK,CAACE,QAAhC;AAA0C,QAAA,QAAQ,EAAE,KAAKsE,cAAzD;AAAyE,QAAA,WAAW,EAAE5B;AAAtF,QAvIJ,CADF;AA4ID;;;EA3TyB6B,kBAAMC,S;;;iCAArBjG,M,eACQ;AACjBuB,EAAAA,KAAK,EAAE2E,sBAAUC,MAAV,CAAiBC,UADP;AAEjBjE,EAAAA,aAAa,EAAE+D,sBAAUC,MAAV,CAAiBC,UAFf;AAGjBlE,EAAAA,OAAO,EAAEgE,sBAAUC,MAAV,CAAiBC,UAHT;AAIjB9E,EAAAA,cAAc,EAAE4E,sBAAUG,IAAV,CAAeD,UAJd;AAKjB/D,EAAAA,sBAAsB,EAAE6D,sBAAUG,IAAV,CAAeD,UALtB;AAMjBhE,EAAAA,YAAY,EAAE8D,sBAAUI,KAAV,CAAgB;AAC5BC,IAAAA,GAAG,EAAEL,sBAAUG,IAAV,CAAeD,UADQ;AAE5B,cAAQF,sBAAUG,IAAV,CAAeD;AAFK,GAAhB,CANG;AAUjB9D,EAAAA,kBAAkB,EAAE4D,sBAAUC;AAVb,C;iCADRnG,M,kBAcW,E;;eAgTT,wBAAW,UAACwG,KAAD;AAAA,SAAY;AACpCrB,IAAAA,kBAAkB,EAAE;AAClBsB,MAAAA,YAAY,EAAE,CADI;AAElBC,MAAAA,WAAW,EAAE,CAFK;AAGlB,iBAAW;AACTtC,QAAAA,QAAQ,EAAE,UADD;AAETuC,QAAAA,MAAM,EAAE,CAFC;AAGTtB,QAAAA,IAAI,EAAE,CAHG;AAITuB,QAAAA,KAAK,EAAE,CAJE;AAKTC,QAAAA,MAAM,EAAE,KALC;AAMTC,QAAAA,OAAO,EAAE,IANA;AAOTC,QAAAA,eAAe,EAAEP,KAAK,CAACQ,OAAN,CAAcC,OAAd,CAAsBC;AAP9B,OAHO;AAYlBC,MAAAA,YAAY,EAAEX,KAAK,CAACY,OAAN,CAAcC;AAZV,KADgB;AAepC1B,IAAAA,IAAI,EAAE;AACJ2B,MAAAA,SAAS,EAAEd,KAAK,CAACY,OAAN,CAAcC,IAAd,GAAqB,CAD5B;AAEJX,MAAAA,WAAW,EAAEF,KAAK,CAACY,OAAN,CAAcC,IAAd,GAAqB;AAF9B,KAf8B;AAmBpCpC,IAAAA,KAAK,EAAE;AACLsC,MAAAA,KAAK,EAAE;AADF,KAnB6B;AAsBpChC,IAAAA,SAAS,EAAE;AACT+B,MAAAA,SAAS,EAAEd,KAAK,CAACY,OAAN,CAAcC,IAAd,GAAqB;AADvB,KAtByB;AAyBpCG,IAAAA,QAAQ,EAAE;AACRD,MAAAA,KAAK,EAAE,MADC;AAERE,MAAAA,cAAc,EAAE,eAFR;AAGRC,MAAAA,OAAO,EAAE,MAHD;AAIRC,MAAAA,UAAU,EAAE;AAJJ,KAzB0B;AA+BpC7C,IAAAA,YAAY,EAAE;AACZyC,MAAAA,KAAK,EAAE,MADK;AAEZK,MAAAA,UAAU,EAAEpB,KAAK,CAACY,OAAN,CAAcC,IAAd,GAAqB,CAFrB;AAGZF,MAAAA,YAAY,EAAEX,KAAK,CAACY,OAAN,CAAcC,IAAd,GAAqB;AAHvB,KA/BsB;AAoCpC3B,IAAAA,aAAa,EAAE;AACbgC,MAAAA,OAAO,EAAE,MADI;AAEbC,MAAAA,UAAU,EAAE,QAFC;AAGbE,MAAAA,QAAQ,EAAE,MAHG;AAIbV,MAAAA,YAAY,EAAEX,KAAK,CAACY,OAAN,CAAcC,IAAd,GAAqB;AAJtB,KApCqB;AA0CpCxB,IAAAA,WAAW,EAAE;AACX0B,MAAAA,KAAK,EAAE,OADI;AAEXO,MAAAA,MAAM,YAAKtB,KAAK,CAACY,OAAN,CAAcC,IAAd,GAAqB,CAA1B;AAFK,KA1CuB;AA8CpCjC,IAAAA,OAAO,EAAE;AACP2C,MAAAA,QAAQ,EAAEvB,KAAK,CAACwB,UAAN,CAAiBD,QAAjB,GAA4B,CAD/B;AAEPE,MAAAA,UAAU,EAAE,KAFL;AAGPC,MAAAA,QAAQ,EAAE;AAHH,KA9C2B;AAmDpCzC,IAAAA,SAAS,EAAE;AACTsC,MAAAA,QAAQ,EAAEvB,KAAK,CAACwB,UAAN,CAAiBD,QAAjB,GAA4B,CAD7B;AAETI,MAAAA,KAAK,EAAE3B,KAAK,CAACQ,OAAN,CAAcoB,KAAd,CAAoBlB,IAFlB;AAGTmB,MAAAA,aAAa,EAAE7B,KAAK,CAACY,OAAN,CAAcC;AAHpB;AAnDyB,GAAZ;AAAA,CAAX,EAwDXrH,MAxDW,C","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/pie-toolbox/text-select';\nimport { InputContainer, NumberTextField, FeedbackConfig, settings, layout } from '@pie-lib/pie-toolbox/config-ui';\nimport Chip from '@material-ui/core/Chip';\nimport Info from '@material-ui/icons/Info';\nimport debug from 'debug';\nimport {EditableHtml} from '@pie-lib/pie-toolbox/editable-html';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport { generateValidationMessage } from './utils';\n\nconst { Panel, toggle, radio, dropdown } = 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 uploadSoundSupport: PropTypes.object,\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) => this.updateText(event.target.value);\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\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\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({ ...model, rationale });\n };\n\n render() {\n const { text: textValue } = this.state;\n const { classes, configuration, imageSupport, model, onConfigurationChanged, onModelChanged, uploadSoundSupport } =\n this.props;\n const {\n correctAnswer = {},\n contentDimensions = {},\n feedback = {},\n highlightChoices = {},\n mode = {},\n partialScoring = {},\n prompt = {},\n rationale = {},\n selectionCount = {},\n selections = {},\n settingsPanelDisabled,\n scoringType = {},\n spellCheck = {},\n studentInstructions = {},\n teacherInstructions = {},\n text = {},\n tokens = {},\n maxImageWidth = {},\n maxImageHeight = {},\n withRubric = {},\n mathMlOptions = {},\n language = {},\n languageChoices = {},\n } = configuration || {};\n const {\n errors,\n feedbackEnabled,\n promptEnabled,\n rationaleEnabled,\n spellCheckEnabled,\n teacherInstructionsEnabled,\n toolbarEditorPosition,\n } = model || {};\n\n const { tokensError, selectionsError } = errors || {};\n const validationMessage = generateValidationMessage(configuration);\n\n const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;\n const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;\n\n let { tokens: tokensModel } = model;\n tokensModel = tokensModel || [];\n\n const toolbarOpts = {\n position: toolbarEditorPosition === 'top' ? 'top' : 'bottom',\n };\n\n log('[render] maxSelections:', model.maxSelections);\n\n const panelSettings = {\n partialScoring: partialScoring.settings && toggle(partialScoring.label),\n highlightChoices: highlightChoices.settings && toggle(highlightChoices.label),\n feedbackEnabled: feedback.settings && toggle(feedback.label),\n 'language.enabled': language.settings && toggle(language.label, true),\n language: language.settings && language.enabled && dropdown(languageChoices.label, languageChoices.options),\n };\n\n const panelProperties = {\n teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),\n studentInstructionsEnabled: studentInstructions.settings && toggle(studentInstructions.label),\n promptEnabled: prompt.settings && toggle(prompt.label),\n rationaleEnabled: rationale.settings && toggle(rationale.label),\n spellCheckEnabled: spellCheck.settings && toggle(spellCheck.label),\n scoringType: scoringType.settings && radio(scoringType.label, ['auto', 'rubric']),\n rubricEnabled: withRubric?.settings && toggle(withRubric?.label),\n };\n\n return (\n <layout.ConfigLayout\n dimensions={contentDimensions}\n hideSettings={settingsPanelDisabled}\n settings={\n <Panel\n model={model}\n configuration={configuration}\n onChangeModel={(model) => onModelChanged(model)}\n onChangeConfiguration={onConfigurationChanged}\n groups={{\n Settings: panelSettings,\n Properties: panelProperties,\n }}\n />\n }\n >\n {teacherInstructionsEnabled && (\n <InputContainer label={teacherInstructions.label} className={classes.promptHolder}>\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 maxImageWidth={(maxImageWidth && maxImageWidth.teacherInstructions) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.teacherInstructions) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n </InputContainer>\n )}\n\n {promptEnabled && (\n <InputContainer label={prompt.label || ''} className={classes.promptHolder}>\n <EditableHtml\n className={classes.prompt}\n markup={model.prompt}\n onChange={this.onPromptChanged}\n imageSupport={imageSupport}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n maxImageWidth={defaultImageMaxWidth}\n maxImageHeight={defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n </InputContainer>\n )}\n\n {text.settings && (\n <InputContainer label={text.label || ''} className={classes.promptHolder}>\n <TextField\n className={classes.input}\n multiline\n defaultValue={textValue}\n onChange={this.changeText}\n spellCheck={spellCheckEnabled}\n />\n </InputContainer>\n )}\n\n {tokens.settings && (\n <InputContainer label={tokens.label || ''} className={classes.tokenizerContainer}>\n <Tooltip\n classes={{ tooltip: classes.tooltip }}\n disableFocusListener\n disableTouchListener\n placement={'right'}\n title={validationMessage}\n >\n <Info fontSize={'small'} color={'primary'} style={{ position: 'absolute', left: '48px', top: '-3px' }} />\n </Tooltip>\n\n <Tokenizer\n className={classes.tokenizer}\n text={model.text}\n tokens={tokensModel}\n onChange={this.changeTokens}\n />\n </InputContainer>\n )}\n {tokensError && <div className={classes.errorText}>{tokensError}</div>}\n {selectionsError && <div className={classes.errorText}>{selectionsError}</div>}\n\n <div className={classes.tokensDetails}>\n {mode.settings && (\n <Chip label={`${mode.label}: ${model.mode ? model.mode : 'None'}`} className={classes.chip} />\n )}\n\n {selections.settings && (\n <Chip label={`${selections.label}: ${tokensModel.length}`} className={classes.chip} />\n )}\n\n {correctAnswer.settings && (\n <Chip\n label={`${correctAnswer.label}: ${tokensModel.filter((t) => t.correct).length}`}\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 </div>\n\n {rationaleEnabled && (\n <InputContainer label={rationale.label || ''} className={classes.promptHolder}>\n <EditableHtml\n className={classes.prompt}\n markup={model.rationale || ''}\n onChange={this.onRationaleChanged}\n imageSupport={imageSupport}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n maxImageWidth={(maxImageWidth && maxImageWidth.rationale) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.rationale) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n </InputContainer>\n )}\n\n {feedbackEnabled && (\n <FeedbackConfig feedback={model.feedback} onChange={this.changeFeedback} toolbarOpts={toolbarOpts} />\n )}\n </layout.ConfigLayout>\n );\n }\n}\n\nexport default withStyles((theme) => ({\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 marginTop: theme.spacing.unit / 2,\n marginRight: theme.spacing.unit * 2,\n },\n input: {\n width: '100%',\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 paddingTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n },\n tokensDetails: {\n display: 'flex',\n alignItems: 'center',\n flexWrap: 'wrap',\n marginBottom: theme.spacing.unit * 2.5,\n },\n numberField: {\n width: '180px',\n margin: `${theme.spacing.unit / 2}px auto 0`,\n },\n tooltip: {\n fontSize: theme.typography.fontSize - 2,\n whiteSpace: 'pre',\n maxWidth: '500px',\n },\n errorText: {\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingBottom: theme.spacing.unit,\n },\n}))(Design);\n"],"file":"design.js"}
@@ -186,4 +186,4 @@ exports["default"] = SelectTextConfigure;
186
186
 
187
187
  return (0, _utils.generateModel)(newModel);
188
188
  });
189
- //# sourceMappingURL=index.js.map
189
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJTZWxlY3RUZXh0Q29uZmlndXJlIiwiX21vZGVsIiwiY3JlYXRlRGVmYXVsdE1vZGVsIiwiX2NvbmZpZ3VyYXRpb24iLCJkZWZhdWx0VmFsdWVzIiwiY29uZmlndXJhdGlvbiIsIm0iLCJyZW5kZXIiLCJjIiwibmV3Q29uZmlndXJhdGlvbiIsImxhbmd1YWdlIiwiZW5hYmxlZCIsImxhbmd1YWdlQ2hvaWNlcyIsIm9wdGlvbnMiLCJsZW5ndGgiLCJ2YWx1ZSIsInNldHRpbmdzIiwiZmluZCIsIm9wdGlvbiIsInB1c2giLCJsYWJlbCIsImRpc3BhdGNoRXZlbnQiLCJNb2RlbFVwZGF0ZWRFdmVudCIsImhhbmRsZXIiLCJJbnNlcnRJbWFnZUV2ZW50Iiwic3JjIiwiZG9uZSIsIkRlbGV0ZUltYWdlRXZlbnQiLCJJbnNlcnRTb3VuZEV2ZW50IiwiRGVsZXRlU291bmRFdmVudCIsImVsIiwiUmVhY3QiLCJjcmVhdGVFbGVtZW50IiwiTWFpbiIsIm1vZGVsIiwib25Nb2RlbENoYW5nZWQiLCJtb2RlbENoYW5nZWQiLCJiaW5kIiwib25Db25maWd1cmF0aW9uQ2hhbmdlZCIsImltYWdlU3VwcG9ydCIsImFkZCIsImluc2VydEltYWdlIiwib25EZWxldGVJbWFnZSIsInVwbG9hZFNvdW5kU3VwcG9ydCIsImluc2VydFNvdW5kIiwib25EZWxldGVTb3VuZCIsIlJlYWN0RE9NIiwiSFRNTEVsZW1lbnQiLCJuZXdNb2RlbCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFPQTs7QUFDQTs7Ozs7Ozs7OztJQUVxQkEsbUI7Ozs7O0FBVW5CLGlDQUFjO0FBQUE7O0FBQUE7QUFDWjtBQUNBLFVBQUtDLE1BQUwsR0FBY0QsbUJBQW1CLENBQUNFLGtCQUFwQixFQUFkO0FBQ0EsVUFBS0MsY0FBTCxHQUFzQkMsaUNBQWNDLGFBQXBDO0FBSFk7QUFJYjs7OztTQUVELGFBQVVDLENBQVYsRUFBYTtBQUNYLFdBQUtMLE1BQUwsR0FBY0QsbUJBQW1CLENBQUNFLGtCQUFwQixDQUF1Q0ksQ0FBdkMsQ0FBZDtBQUNBLFdBQUtDLE1BQUw7QUFDRDs7O1NBRUQsYUFBa0JDLENBQWxCLEVBQXFCO0FBQUE7QUFBQTs7QUFDbkIsVUFBTUMsZ0JBQWdCLG1DQUNqQkwsaUNBQWNDLGFBREcsR0FFakJHLENBRmlCLENBQXRCOztBQUtBLFdBQUtMLGNBQUwsR0FBc0JNLGdCQUF0QixDQU5tQixDQVFuQjtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxVQUFJQSxnQkFBSixhQUFJQSxnQkFBSix3Q0FBSUEsZ0JBQWdCLENBQUVDLFFBQXRCLGtEQUFJLHNCQUE0QkMsT0FBaEMsRUFBeUM7QUFBQTs7QUFDdkMsWUFBSUYsZ0JBQUosYUFBSUEsZ0JBQUoseUNBQUlBLGdCQUFnQixDQUFFRyxlQUF0Qiw2RUFBSSx1QkFBbUNDLE9BQXZDLG1EQUFJLHVCQUE0Q0MsTUFBaEQsRUFBd0Q7QUFDdEQsZUFBS2IsTUFBTCxDQUFZUyxRQUFaLEdBQXVCRCxnQkFBdkIsYUFBdUJBLGdCQUF2Qix1QkFBdUJBLGdCQUFnQixDQUFFRyxlQUFsQixDQUFrQ0MsT0FBbEMsQ0FBMEMsQ0FBMUMsRUFBNkNFLEtBQXBFO0FBQ0Q7QUFDRixPQUpELE1BSU8sSUFBSU4sZ0JBQWdCLENBQUNDLFFBQWpCLENBQTBCTSxRQUExQixJQUFzQyxLQUFLZixNQUFMLENBQVlTLFFBQXRELEVBQWdFO0FBQ3JFLGFBQUtQLGNBQUwsQ0FBb0JPLFFBQXBCLENBQTZCQyxPQUE3QixHQUF1QyxJQUF2Qzs7QUFFQSxZQUFJLENBQUMsS0FBS1IsY0FBTCxDQUFvQlMsZUFBcEIsQ0FBb0NDLE9BQXJDLElBQWdELENBQUMsS0FBS1YsY0FBTCxDQUFvQlMsZUFBcEIsQ0FBb0NDLE9BQXBDLENBQTRDQyxNQUFqRyxFQUF5RztBQUN2RyxlQUFLWCxjQUFMLENBQW9CUyxlQUFwQixDQUFvQ0MsT0FBcEMsR0FBOEMsRUFBOUM7QUFDRCxTQUxvRSxDQU9yRTtBQUNBOzs7QUFDQSxZQUFJLENBQUMsS0FBS1YsY0FBTCxDQUFvQlMsZUFBcEIsQ0FBb0NDLE9BQXBDLENBQTRDSSxJQUE1QyxDQUFpRCxVQUFBQyxNQUFNO0FBQUEsaUJBQUlBLE1BQU0sQ0FBQ0gsS0FBUCxLQUFpQixNQUFJLENBQUNkLE1BQUwsQ0FBWVMsUUFBakM7QUFBQSxTQUF2RCxDQUFMLEVBQXdHO0FBQ3RHLGVBQUtQLGNBQUwsQ0FBb0JTLGVBQXBCLENBQW9DQyxPQUFwQyxDQUE0Q00sSUFBNUMsQ0FBaUQ7QUFDL0NKLFlBQUFBLEtBQUssRUFBRSxLQUFLZCxNQUFMLENBQVlTLFFBRDRCO0FBRS9DVSxZQUFBQSxLQUFLLEVBQUUsS0FBS25CLE1BQUwsQ0FBWVM7QUFGNEIsV0FBakQ7QUFJRDtBQUNGLE9BZk0sTUFlQTtBQUNMLGVBQU8sS0FBS1QsTUFBTCxDQUFZUyxRQUFuQjtBQUNEOztBQUVELFdBQUtILE1BQUw7QUFDRDs7O1dBRUQsNkJBQW9CO0FBQ2xCLFdBQUtBLE1BQUw7QUFDRDs7O1dBRUQsc0JBQWFELENBQWIsRUFBZ0I7QUFDZCxXQUFLTCxNQUFMLEdBQWNLLENBQWQ7QUFDQSxXQUFLZSxhQUFMLENBQW1CLElBQUlDLHFDQUFKLENBQXNCLEtBQUtyQixNQUEzQixDQUFuQixFQUF1RCxJQUF2RDtBQUNBLFdBQUtNLE1BQUw7QUFDRDs7O1dBRUQsZ0NBQXVCQyxDQUF2QixFQUEwQjtBQUN4QixXQUFLTCxjQUFMLEdBQXNCSyxDQUF0Qjs7QUFFQSxVQUFJLEtBQUtQLE1BQVQsRUFBaUI7QUFDZixhQUFLb0IsYUFBTCxDQUFtQixJQUFJQyxxQ0FBSixDQUFzQixLQUFLckIsTUFBM0IsQ0FBbkIsRUFBdUQsS0FBdkQ7QUFDRDs7QUFFRCxXQUFLTSxNQUFMO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTs7OztXQUNFLHFCQUFZZ0IsT0FBWixFQUFxQjtBQUNuQixXQUFLRixhQUFMLENBQW1CLElBQUlHLG9DQUFKLENBQXFCRCxPQUFyQixDQUFuQjtBQUNEOzs7V0FFRCx1QkFBY0UsR0FBZCxFQUFtQkMsSUFBbkIsRUFBeUI7QUFDdkIsV0FBS0wsYUFBTCxDQUFtQixJQUFJTSxvQ0FBSixDQUFxQkYsR0FBckIsRUFBMEJDLElBQTFCLENBQW5CO0FBQ0Q7OztXQUVELHFCQUFZSCxPQUFaLEVBQXFCO0FBQ25CLFdBQUtGLGFBQUwsQ0FBbUIsSUFBSU8sb0NBQUosQ0FBcUJMLE9BQXJCLENBQW5CO0FBQ0Q7OztXQUVELHVCQUFjRSxHQUFkLEVBQW1CQyxJQUFuQixFQUF5QjtBQUN2QixXQUFLTCxhQUFMLENBQW1CLElBQUlRLG9DQUFKLENBQXFCSixHQUFyQixFQUEwQkMsSUFBMUIsQ0FBbkI7QUFDRDs7O1dBRUQsa0JBQVM7QUFDUCxVQUFJLEtBQUt6QixNQUFULEVBQWlCO0FBQ2YsWUFBTTZCLEVBQUUsZ0JBQUdDLGtCQUFNQyxhQUFOLENBQW9CQyxrQkFBcEIsRUFBMEI7QUFDbkNDLFVBQUFBLEtBQUssRUFBRSxLQUFLakMsTUFEdUI7QUFFbkNJLFVBQUFBLGFBQWEsRUFBRSxLQUFLRixjQUZlO0FBR25DZ0MsVUFBQUEsY0FBYyxFQUFFLEtBQUtDLFlBQUwsQ0FBa0JDLElBQWxCLENBQXVCLElBQXZCLENBSG1CO0FBSW5DQyxVQUFBQSxzQkFBc0IsRUFBRSxLQUFLQSxzQkFBTCxDQUE0QkQsSUFBNUIsQ0FBaUMsSUFBakMsQ0FKVztBQUtuQ0UsVUFBQUEsWUFBWSxFQUFFO0FBQ1pDLFlBQUFBLEdBQUcsRUFBRSxLQUFLQyxXQUFMLENBQWlCSixJQUFqQixDQUFzQixJQUF0QixDQURPO0FBRVosc0JBQVEsS0FBS0ssYUFBTCxDQUFtQkwsSUFBbkIsQ0FBd0IsSUFBeEI7QUFGSSxXQUxxQjtBQVNuQ00sVUFBQUEsa0JBQWtCLEVBQUU7QUFDbEJILFlBQUFBLEdBQUcsRUFBRSxLQUFLSSxXQUFMLENBQWlCUCxJQUFqQixDQUFzQixJQUF0QixDQURhO0FBRWxCLHNCQUFRLEtBQUtRLGFBQUwsQ0FBbUJSLElBQW5CLENBQXdCLElBQXhCO0FBRlU7QUFUZSxTQUExQixDQUFYOztBQWVBUyw2QkFBU3ZDLE1BQVQsQ0FBZ0J1QixFQUFoQixFQUFvQixJQUFwQjtBQUNEO0FBQ0Y7OztrREF0SDhDaUIsVzs7O2lDQUE1Qi9DLG1CLHdCQUNTLFlBQWdCO0FBQUEsTUFBZmtDLEtBQWUsdUVBQVAsRUFBTzs7QUFDMUMsTUFBTWMsUUFBUSxtQ0FDVDVDLGlDQUFjOEIsS0FETCxHQUVUQSxLQUZTLENBQWQ7O0FBS0EsU0FBTywwQkFBY2MsUUFBZCxDQUFQO0FBQ0QsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUmVhY3RET00gZnJvbSAncmVhY3QtZG9tJztcbmltcG9ydCBNYWluIGZyb20gJy4vZGVzaWduJztcbmltcG9ydCB7XG4gIE1vZGVsVXBkYXRlZEV2ZW50LFxuICBEZWxldGVJbWFnZUV2ZW50LFxuICBJbnNlcnRJbWFnZUV2ZW50LFxuICBJbnNlcnRTb3VuZEV2ZW50LFxuICBEZWxldGVTb3VuZEV2ZW50LFxufSBmcm9tICdAcGllLWZyYW1ld29yay9waWUtY29uZmlndXJlLWV2ZW50cyc7XG5pbXBvcnQgZGVmYXVsdFZhbHVlcyBmcm9tICcuL2RlZmF1bHRDb25maWd1cmF0aW9uJztcbmltcG9ydCB7IGdlbmVyYXRlTW9kZWwgfSBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU2VsZWN0VGV4dENvbmZpZ3VyZSBleHRlbmRzIEhUTUxFbGVtZW50IHtcbiAgc3RhdGljIGNyZWF0ZURlZmF1bHRNb2RlbCA9IChtb2RlbCA9IHt9KSA9PiB7XG4gICAgY29uc3QgbmV3TW9kZWwgPSB7XG4gICAgICAuLi5kZWZhdWx0VmFsdWVzLm1vZGVsLFxuICAgICAgLi4ubW9kZWwsXG4gICAgfTtcblxuICAgIHJldHVybiBnZW5lcmF0ZU1vZGVsKG5ld01vZGVsKTtcbiAgfTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuX21vZGVsID0gU2VsZWN0VGV4dENvbmZpZ3VyZS5jcmVhdGVEZWZhdWx0TW9kZWwoKTtcbiAgICB0aGlzLl9jb25maWd1cmF0aW9uID0gZGVmYXVsdFZhbHVlcy5jb25maWd1cmF0aW9uO1xuICB9XG5cbiAgc2V0IG1vZGVsKG0pIHtcbiAgICB0aGlzLl9tb2RlbCA9IFNlbGVjdFRleHRDb25maWd1cmUuY3JlYXRlRGVmYXVsdE1vZGVsKG0pO1xuICAgIHRoaXMucmVuZGVyKCk7XG4gIH1cblxuICBzZXQgY29uZmlndXJhdGlvbihjKSB7XG4gICAgY29uc3QgbmV3Q29uZmlndXJhdGlvbiA9IHtcbiAgICAgIC4uLmRlZmF1bHRWYWx1ZXMuY29uZmlndXJhdGlvbixcbiAgICAgIC4uLmMsXG4gICAgfTtcblxuICAgIHRoaXMuX2NvbmZpZ3VyYXRpb24gPSBuZXdDb25maWd1cmF0aW9uO1xuXG4gICAgLy8gaWYgbGFuZ3VhZ2U6ZW5hYmxlZCBpcyB0cnVlLCB0aGVuIHRoZSBjb3JyZXNwb25kaW5nIGRlZmF1bHQgaXRlbSBtb2RlbCBzaG91bGQgaW5jbHVkZSBhIGxhbmd1YWdlIHZhbHVlO1xuICAgIC8vIGlmIGl0IGlzIGZhbHNlLCB0aGVuIHRoZSBsYW5ndWFnZSBmaWVsZCBzaG91bGQgYmUgb21pdHRlZCBmcm9tIHRoZSBpdGVtIG1vZGVsLlxuICAgIC8vIGlmIGEgZGVmYXVsdCBpdGVtIG1vZGVsIGluY2x1ZGVzIGEgbGFuZ3VhZ2UgdmFsdWUgKGUuZy4sIGVuX1VTKSBhbmQgdGhlIGNvcnJlc3BvbmRpbmcgYXV0aG9yaW5nIHZpZXcgc2V0dGluZ3MgaGF2ZSBsYW5ndWFnZTpzZXR0aW5ncyA9IHRydWUsXG4gICAgLy8gdGhlbiAoYSkgbGFuZ3VhZ2U6ZW5hYmxlZCBzaG91bGQgYWxzbyBiZSB0cnVlLCBhbmQgKGIpIHRoYXQgZGVmYXVsdCBsYW5ndWFnZSB2YWx1ZSBzaG91bGQgYmUgcmVwcmVzZW50ZWQgaW4gbGFuZ3VhZ2VDaG9pY2VzW10gKGFzIGEga2V5KS5cbiAgICBpZiAobmV3Q29uZmlndXJhdGlvbj8ubGFuZ3VhZ2U/LmVuYWJsZWQpIHtcbiAgICAgIGlmIChuZXdDb25maWd1cmF0aW9uPy5sYW5ndWFnZUNob2ljZXM/Lm9wdGlvbnM/Lmxlbmd0aCkge1xuICAgICAgICB0aGlzLl9tb2RlbC5sYW5ndWFnZSA9IG5ld0NvbmZpZ3VyYXRpb24/Lmxhbmd1YWdlQ2hvaWNlcy5vcHRpb25zWzBdLnZhbHVlO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAobmV3Q29uZmlndXJhdGlvbi5sYW5ndWFnZS5zZXR0aW5ncyAmJiB0aGlzLl9tb2RlbC5sYW5ndWFnZSkge1xuICAgICAgdGhpcy5fY29uZmlndXJhdGlvbi5sYW5ndWFnZS5lbmFibGVkID0gdHJ1ZTtcblxuICAgICAgaWYgKCF0aGlzLl9jb25maWd1cmF0aW9uLmxhbmd1YWdlQ2hvaWNlcy5vcHRpb25zIHx8ICF0aGlzLl9jb25maWd1cmF0aW9uLmxhbmd1YWdlQ2hvaWNlcy5vcHRpb25zLmxlbmd0aCkge1xuICAgICAgICB0aGlzLl9jb25maWd1cmF0aW9uLmxhbmd1YWdlQ2hvaWNlcy5vcHRpb25zID0gW107XG4gICAgICB9XG5cbiAgICAgIC8vIGNoZWNrIGlmIHRoZSBsYW5ndWFnZSBpcyBhbHJlYWR5IGluY2x1ZGVkIGluIHRoZSBsYW5ndWFnZUNob2ljZXMub3B0aW9ucyBhcnJheVxuICAgICAgLy8gYW5kIGlmIG5vdCwgdGhlbiBhZGQgaXQuXG4gICAgICBpZiAoIXRoaXMuX2NvbmZpZ3VyYXRpb24ubGFuZ3VhZ2VDaG9pY2VzLm9wdGlvbnMuZmluZChvcHRpb24gPT4gb3B0aW9uLnZhbHVlID09PSB0aGlzLl9tb2RlbC5sYW5ndWFnZSkpIHtcbiAgICAgICAgdGhpcy5fY29uZmlndXJhdGlvbi5sYW5ndWFnZUNob2ljZXMub3B0aW9ucy5wdXNoKHtcbiAgICAgICAgICB2YWx1ZTogdGhpcy5fbW9kZWwubGFuZ3VhZ2UsXG4gICAgICAgICAgbGFiZWw6IHRoaXMuX21vZGVsLmxhbmd1YWdlLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgZGVsZXRlIHRoaXMuX21vZGVsLmxhbmd1YWdlO1xuICAgIH1cblxuICAgIHRoaXMucmVuZGVyKCk7XG4gIH1cblxuICBjb25uZWN0ZWRDYWxsYmFjaygpIHtcbiAgICB0aGlzLnJlbmRlcigpO1xuICB9XG5cbiAgbW9kZWxDaGFuZ2VkKG0pIHtcbiAgICB0aGlzLl9tb2RlbCA9IG07XG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBNb2RlbFVwZGF0ZWRFdmVudCh0aGlzLl9tb2RlbCksIHRydWUpO1xuICAgIHRoaXMucmVuZGVyKCk7XG4gIH1cblxuICBvbkNvbmZpZ3VyYXRpb25DaGFuZ2VkKGMpIHtcbiAgICB0aGlzLl9jb25maWd1cmF0aW9uID0gYztcblxuICAgIGlmICh0aGlzLl9tb2RlbCkge1xuICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBNb2RlbFVwZGF0ZWRFdmVudCh0aGlzLl9tb2RlbCksIGZhbHNlKTtcbiAgICB9XG5cbiAgICB0aGlzLnJlbmRlcigpO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSB7ZG9uZSwgcHJvZ3Jlc3MsIGZpbGV9IGhhbmRsZXJcbiAgICovXG4gIGluc2VydEltYWdlKGhhbmRsZXIpIHtcbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEluc2VydEltYWdlRXZlbnQoaGFuZGxlcikpO1xuICB9XG5cbiAgb25EZWxldGVJbWFnZShzcmMsIGRvbmUpIHtcbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IERlbGV0ZUltYWdlRXZlbnQoc3JjLCBkb25lKSk7XG4gIH1cblxuICBpbnNlcnRTb3VuZChoYW5kbGVyKSB7XG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBJbnNlcnRTb3VuZEV2ZW50KGhhbmRsZXIpKTtcbiAgfVxuXG4gIG9uRGVsZXRlU291bmQoc3JjLCBkb25lKSB7XG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBEZWxldGVTb3VuZEV2ZW50KHNyYywgZG9uZSkpO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGlmICh0aGlzLl9tb2RlbCkge1xuICAgICAgY29uc3QgZWwgPSBSZWFjdC5jcmVhdGVFbGVtZW50KE1haW4sIHtcbiAgICAgICAgbW9kZWw6IHRoaXMuX21vZGVsLFxuICAgICAgICBjb25maWd1cmF0aW9uOiB0aGlzLl9jb25maWd1cmF0aW9uLFxuICAgICAgICBvbk1vZGVsQ2hhbmdlZDogdGhpcy5tb2RlbENoYW5nZWQuYmluZCh0aGlzKSxcbiAgICAgICAgb25Db25maWd1cmF0aW9uQ2hhbmdlZDogdGhpcy5vbkNvbmZpZ3VyYXRpb25DaGFuZ2VkLmJpbmQodGhpcyksXG4gICAgICAgIGltYWdlU3VwcG9ydDoge1xuICAgICAgICAgIGFkZDogdGhpcy5pbnNlcnRJbWFnZS5iaW5kKHRoaXMpLFxuICAgICAgICAgIGRlbGV0ZTogdGhpcy5vbkRlbGV0ZUltYWdlLmJpbmQodGhpcyksXG4gICAgICAgIH0sXG4gICAgICAgIHVwbG9hZFNvdW5kU3VwcG9ydDoge1xuICAgICAgICAgIGFkZDogdGhpcy5pbnNlcnRTb3VuZC5iaW5kKHRoaXMpLFxuICAgICAgICAgIGRlbGV0ZTogdGhpcy5vbkRlbGV0ZVNvdW5kLmJpbmQodGhpcyksXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgUmVhY3RET00ucmVuZGVyKGVsLCB0aGlzKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==