@pie-element/rubric 6.1.0 → 6.2.0-mui-update.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 +11 -0
- package/configure/CHANGELOG.md +11 -0
- package/configure/lib/__tests__/index.test.js +174 -0
- package/configure/lib/defaults.js +3 -4
- package/configure/lib/defaults.js.map +1 -1
- package/configure/lib/index.js +91 -153
- package/configure/lib/index.js.map +1 -1
- package/configure/lib/main.js +91 -150
- package/configure/lib/main.js.map +1 -1
- package/configure/package.json +10 -7
- package/configure/src/index.js +12 -2
- package/configure/src/main.jsx +11 -13
- package/controller/CHANGELOG.md +8 -0
- package/controller/lib/__tests__/index.test.js +39 -0
- package/controller/lib/defaults.js +3 -4
- package/controller/lib/defaults.js.map +1 -1
- package/controller/lib/index.js +16 -29
- package/controller/lib/index.js.map +1 -1
- package/controller/package.json +1 -1
- package/docs/demo/pie.manifest.json +11 -0
- package/lib/__tests__/rubric-view.test.js +49 -0
- package/lib/index.js +39 -81
- package/lib/index.js.map +1 -1
- package/lib/main.js +185 -245
- package/lib/main.js.map +1 -1
- package/lib/print.js +42 -85
- package/lib/print.js.map +1 -1
- package/package.json +8 -5
- package/src/__tests__/__snapshots__/rubric-view.test.jsx.snap +2350 -1524
- package/src/index.js +14 -3
- package/src/main.jsx +100 -93
- package/src/print.js +13 -2
- package/LICENSE.md +0 -5
- package/configure/lib/pie-toolbox-rubric/authoring.js +0 -573
- package/configure/lib/pie-toolbox-rubric/authoring.js.map +0 -1
- package/configure/lib/pie-toolbox-rubric/index.js +0 -24
- package/configure/lib/pie-toolbox-rubric/index.js.map +0 -1
- package/configure/lib/pie-toolbox-rubric/point-menu.js +0 -172
- package/configure/lib/pie-toolbox-rubric/point-menu.js.map +0 -1
- package/configure/src/pie-toolbox-rubric/authoring.jsx +0 -449
- package/configure/src/pie-toolbox-rubric/index.js +0 -9
- package/configure/src/pie-toolbox-rubric/point-menu.jsx +0 -94
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,17 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [6.2.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/rubric@6.0.0...@pie-element/rubric@6.2.0) (2025-10-10)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* update libs PD-5208, PD-5211, PD-5199, PD-5218, PD-5217 ([da327fa](https://github.com/pie-framework/pie-elements/commit/da327fa501f6e9eff1c0b30b5ef092426a91f78b))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
6
17
|
# [6.1.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/rubric@5.0.0...@pie-element/rubric@6.1.0) (2025-10-07)
|
|
7
18
|
|
|
8
19
|
**Note:** Version bump only for package @pie-element/rubric
|
package/configure/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,17 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [5.2.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/rubric-configure@5.0.1...@pie-element/rubric-configure@5.2.0) (2025-10-10)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* update libs PD-5208, PD-5211, PD-5199, PD-5218, PD-5217 ([da327fa](https://github.com/pie-framework/pie-elements/commit/da327fa501f6e9eff1c0b30b5ef092426a91f78b))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
6
17
|
# [5.1.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/rubric-configure@5.0.0...@pie-element/rubric-configure@5.1.0) (2025-10-07)
|
|
7
18
|
|
|
8
19
|
**Note:** Version bump only for package @pie-element/rubric-configure
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _index = _interopRequireDefault(require("../index"));
|
|
5
|
+
var _defaults = _interopRequireDefault(require("../defaults"));
|
|
6
|
+
var _pieConfigureEvents = require("@pie-framework/pie-configure-events");
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
jest.mock('react-dom', () => ({
|
|
9
|
+
render: jest.fn()
|
|
10
|
+
}));
|
|
11
|
+
jest.mock('@pie-lib/config-ui', () => ({
|
|
12
|
+
layout: {
|
|
13
|
+
ConfigLayout: props => /*#__PURE__*/_react.default.createElement("div", props)
|
|
14
|
+
},
|
|
15
|
+
settings: {
|
|
16
|
+
Panel: props => /*#__PURE__*/_react.default.createElement("div", props),
|
|
17
|
+
toggle: jest.fn(),
|
|
18
|
+
radio: jest.fn()
|
|
19
|
+
}
|
|
20
|
+
}));
|
|
21
|
+
const model = extras => ({
|
|
22
|
+
id: '1',
|
|
23
|
+
element: 'pie-rubric',
|
|
24
|
+
points: ['A', 'B', 'C', 'D'],
|
|
25
|
+
sampleAnswers: [true, true, false, false],
|
|
26
|
+
maxPoints: 3,
|
|
27
|
+
excludeZero: false,
|
|
28
|
+
excludeZeroEnabled: true,
|
|
29
|
+
maxPointsEnabled: true,
|
|
30
|
+
...extras
|
|
31
|
+
});
|
|
32
|
+
const invalidModel = extras => ({
|
|
33
|
+
id: '2',
|
|
34
|
+
element: 'pie-rubric',
|
|
35
|
+
points: ['A', 'B', 'C', 'D'],
|
|
36
|
+
sampleAnswers: [true, true, false, false],
|
|
37
|
+
maxPoints: 5,
|
|
38
|
+
excludeZero: false,
|
|
39
|
+
excludeZeroEnabled: true,
|
|
40
|
+
maxPointsEnabled: true,
|
|
41
|
+
...extras
|
|
42
|
+
});
|
|
43
|
+
const configuration = c => ({
|
|
44
|
+
..._defaults.default.configuration,
|
|
45
|
+
...c
|
|
46
|
+
});
|
|
47
|
+
describe('RubricElement', () => {
|
|
48
|
+
let element;
|
|
49
|
+
beforeEach(() => {
|
|
50
|
+
element = new _index.default();
|
|
51
|
+
});
|
|
52
|
+
afterEach(() => {
|
|
53
|
+
jest.clearAllMocks();
|
|
54
|
+
});
|
|
55
|
+
describe('set model', () => {
|
|
56
|
+
it('should set the model correctly', () => {
|
|
57
|
+
const newModel = model();
|
|
58
|
+
element.model = newModel;
|
|
59
|
+
expect(element._model).toEqual(newModel);
|
|
60
|
+
});
|
|
61
|
+
});
|
|
62
|
+
describe('onModelChanged', () => {
|
|
63
|
+
it('should dispatch ModelUpdatedEvent on model change', () => {
|
|
64
|
+
const newModel = model();
|
|
65
|
+
const dispatchEventSpy = jest.spyOn(element, 'dispatchEvent');
|
|
66
|
+
element.onModelChanged(newModel);
|
|
67
|
+
expect(element._model).toEqual(newModel);
|
|
68
|
+
expect(dispatchEventSpy).toHaveBeenCalledWith(new _pieConfigureEvents.ModelUpdatedEvent(newModel, false));
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
describe('set configuration', () => {
|
|
72
|
+
it('should set the configuration correctly', () => {
|
|
73
|
+
const newConfiguration = configuration();
|
|
74
|
+
element.configuration = newConfiguration;
|
|
75
|
+
expect(element._configuration).toEqual(newConfiguration);
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
describe('onConfigurationChanged', () => {
|
|
79
|
+
it('should call _render method on configuration change and overwrite the defaults with the new values', () => {
|
|
80
|
+
const newConfiguration = configuration({
|
|
81
|
+
maxMaxPoints: 10
|
|
82
|
+
});
|
|
83
|
+
const renderSpy = jest.spyOn(element, '_render');
|
|
84
|
+
element.onConfigurationChanged(newConfiguration);
|
|
85
|
+
expect(element._configuration.maxMaxPoints).toEqual(10);
|
|
86
|
+
expect(renderSpy).toHaveBeenCalled();
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
describe('updateModelAccordingToReceivedProps', () => {
|
|
90
|
+
it('should return the same model if it is already valid', () => {
|
|
91
|
+
const validModel = model();
|
|
92
|
+
const validatedModel = element.updateModelAccordingToReceivedProps(validModel);
|
|
93
|
+
expect(validatedModel).toEqual(validModel);
|
|
94
|
+
});
|
|
95
|
+
it('should return an empty model if the input model is undefined', () => {
|
|
96
|
+
const validatedModel = element.updateModelAccordingToReceivedProps(undefined);
|
|
97
|
+
expect(validatedModel).toEqual(_defaults.default.model);
|
|
98
|
+
});
|
|
99
|
+
it('should return an empty model if the input model is null', () => {
|
|
100
|
+
const validatedModel = element.updateModelAccordingToReceivedProps(null);
|
|
101
|
+
expect(validatedModel).toEqual(_defaults.default.model);
|
|
102
|
+
});
|
|
103
|
+
it('should handle undefined properties in the input model', () => {
|
|
104
|
+
const validatedModel = element.updateModelAccordingToReceivedProps({});
|
|
105
|
+
expect(validatedModel).toEqual({
|
|
106
|
+
points: [],
|
|
107
|
+
sampleAnswers: []
|
|
108
|
+
});
|
|
109
|
+
});
|
|
110
|
+
it('should handle null properties in the input model', () => {
|
|
111
|
+
const validatedModel = element.updateModelAccordingToReceivedProps({
|
|
112
|
+
maxPoints: null,
|
|
113
|
+
excludeZero: null
|
|
114
|
+
});
|
|
115
|
+
expect(validatedModel).toEqual({
|
|
116
|
+
excludeZero: null,
|
|
117
|
+
maxPoints: null,
|
|
118
|
+
points: ['', ''],
|
|
119
|
+
sampleAnswers: [null, null]
|
|
120
|
+
});
|
|
121
|
+
});
|
|
122
|
+
it('should handle undefined points and sampleAnswers arrays', () => {
|
|
123
|
+
const validatedModel = element.updateModelAccordingToReceivedProps({
|
|
124
|
+
maxPoints: 5,
|
|
125
|
+
excludeZero: false
|
|
126
|
+
});
|
|
127
|
+
expect(validatedModel.points).toEqual(['', '', '', '', '', '']);
|
|
128
|
+
expect(validatedModel.sampleAnswers).toEqual([null, null, null, null, null, null]);
|
|
129
|
+
});
|
|
130
|
+
it('should handle case when howManyPointsDoesItHave is less than howManyPointsShouldHave with maxPoints & excludeZero changed', () => {
|
|
131
|
+
const nextModel = model({
|
|
132
|
+
maxPoints: 7,
|
|
133
|
+
excludeZero: true
|
|
134
|
+
});
|
|
135
|
+
const result = element.updateModelAccordingToReceivedProps(nextModel);
|
|
136
|
+
expect(result.points).toEqual(['A', 'B', 'C', 'D', '', '', '']);
|
|
137
|
+
expect(result.sampleAnswers).toEqual([true, true, false, false, null, null, null]);
|
|
138
|
+
});
|
|
139
|
+
it('should handle case when howManyPointsDoesItHave is less than howManyPointsShouldHave and maxPointsChanged', () => {
|
|
140
|
+
const nextModel = model({
|
|
141
|
+
maxPoints: 4,
|
|
142
|
+
excludeZero: false
|
|
143
|
+
});
|
|
144
|
+
const result = element.updateModelAccordingToReceivedProps(nextModel);
|
|
145
|
+
expect(result.points).toEqual(['A', 'B', 'C', 'D', '']);
|
|
146
|
+
expect(result.sampleAnswers).toEqual([true, true, false, false, null]);
|
|
147
|
+
});
|
|
148
|
+
it('should handle case when howManyPointsDoesItHave is greater than howManyPointsShouldHave and excludeZeroChanged', () => {
|
|
149
|
+
const nextModel = model({
|
|
150
|
+
maxPoints: 3,
|
|
151
|
+
excludeZero: true
|
|
152
|
+
});
|
|
153
|
+
const result = element.updateModelAccordingToReceivedProps(nextModel);
|
|
154
|
+
expect(result.points).toEqual(['B', 'C', 'D']);
|
|
155
|
+
expect(result.sampleAnswers).toEqual([true, false, false]);
|
|
156
|
+
});
|
|
157
|
+
it('should handle case when howManyPointsDoesItHave is greater than howManyPointsShouldHave and maxPointsChanged', () => {
|
|
158
|
+
const nextModel = model({
|
|
159
|
+
maxPoints: 1,
|
|
160
|
+
excludeZero: false
|
|
161
|
+
});
|
|
162
|
+
const result = element.updateModelAccordingToReceivedProps(nextModel);
|
|
163
|
+
expect(result.points).toEqual(['A', 'B']);
|
|
164
|
+
expect(result.sampleAnswers).toEqual([true, true]);
|
|
165
|
+
});
|
|
166
|
+
it('should handle case if invalid model is set, after updateModelAccordingToReceivedProps the returned model is valid', () => {
|
|
167
|
+
const newModel = invalidModel();
|
|
168
|
+
element.onModelChanged(newModel);
|
|
169
|
+
expect(element._model.points).toEqual(['A', 'B', 'C', 'D', '', '']);
|
|
170
|
+
expect(element._model.sampleAnswers).toEqual([true, true, false, false, null, null]);
|
|
171
|
+
});
|
|
172
|
+
});
|
|
173
|
+
});
|
|
174
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfaW5kZXgiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9kZWZhdWx0cyIsIl9waWVDb25maWd1cmVFdmVudHMiLCJfcmVhY3QiLCJqZXN0IiwibW9jayIsInJlbmRlciIsImZuIiwibGF5b3V0IiwiQ29uZmlnTGF5b3V0IiwicHJvcHMiLCJkZWZhdWx0IiwiY3JlYXRlRWxlbWVudCIsInNldHRpbmdzIiwiUGFuZWwiLCJ0b2dnbGUiLCJyYWRpbyIsIm1vZGVsIiwiZXh0cmFzIiwiaWQiLCJlbGVtZW50IiwicG9pbnRzIiwic2FtcGxlQW5zd2VycyIsIm1heFBvaW50cyIsImV4Y2x1ZGVaZXJvIiwiZXhjbHVkZVplcm9FbmFibGVkIiwibWF4UG9pbnRzRW5hYmxlZCIsImludmFsaWRNb2RlbCIsImNvbmZpZ3VyYXRpb24iLCJjIiwiZGVmYXVsdHMiLCJkZXNjcmliZSIsImJlZm9yZUVhY2giLCJSdWJyaWNFbGVtZW50IiwiYWZ0ZXJFYWNoIiwiY2xlYXJBbGxNb2NrcyIsIml0IiwibmV3TW9kZWwiLCJleHBlY3QiLCJfbW9kZWwiLCJ0b0VxdWFsIiwiZGlzcGF0Y2hFdmVudFNweSIsInNweU9uIiwib25Nb2RlbENoYW5nZWQiLCJ0b0hhdmVCZWVuQ2FsbGVkV2l0aCIsIk1vZGVsVXBkYXRlZEV2ZW50IiwibmV3Q29uZmlndXJhdGlvbiIsIl9jb25maWd1cmF0aW9uIiwibWF4TWF4UG9pbnRzIiwicmVuZGVyU3B5Iiwib25Db25maWd1cmF0aW9uQ2hhbmdlZCIsInRvSGF2ZUJlZW5DYWxsZWQiLCJ2YWxpZE1vZGVsIiwidmFsaWRhdGVkTW9kZWwiLCJ1cGRhdGVNb2RlbEFjY29yZGluZ1RvUmVjZWl2ZWRQcm9wcyIsInVuZGVmaW5lZCIsIm5leHRNb2RlbCIsInJlc3VsdCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vaW5kZXgudGVzdC5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJ1YnJpY0VsZW1lbnQgZnJvbSAnLi4vaW5kZXgnO1xuaW1wb3J0IGRlZmF1bHRzIGZyb20gJy4uL2RlZmF1bHRzJztcbmltcG9ydCB7IE1vZGVsVXBkYXRlZEV2ZW50LCBJbnNlcnRTb3VuZEV2ZW50LCBEZWxldGVTb3VuZEV2ZW50IH0gZnJvbSAnQHBpZS1mcmFtZXdvcmsvcGllLWNvbmZpZ3VyZS1ldmVudHMnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcblxuamVzdC5tb2NrKCdyZWFjdC1kb20nLCAoKSA9PiAoe1xuICByZW5kZXI6IGplc3QuZm4oKSxcbn0pKTtcblxuamVzdC5tb2NrKCdAcGllLWxpYi9jb25maWctdWknLCAoKSA9PiAoe1xuICBsYXlvdXQ6IHtcbiAgICBDb25maWdMYXlvdXQ6IChwcm9wcykgPT4gPGRpdiB7Li4ucHJvcHN9IC8+LFxuICB9LFxuICBzZXR0aW5nczoge1xuICAgIFBhbmVsOiAocHJvcHMpID0+IDxkaXYgey4uLnByb3BzfSAvPixcbiAgICB0b2dnbGU6IGplc3QuZm4oKSxcbiAgICByYWRpbzogamVzdC5mbigpLFxuICB9LFxufSkpO1xuXG5jb25zdCBtb2RlbCA9IChleHRyYXMpID0+ICh7XG4gIGlkOiAnMScsXG4gIGVsZW1lbnQ6ICdwaWUtcnVicmljJyxcbiAgcG9pbnRzOiBbJ0EnLCAnQicsICdDJywgJ0QnXSxcbiAgc2FtcGxlQW5zd2VyczogW3RydWUsIHRydWUsIGZhbHNlLCBmYWxzZV0sXG4gIG1heFBvaW50czogMyxcbiAgZXhjbHVkZVplcm86IGZhbHNlLFxuICBleGNsdWRlWmVyb0VuYWJsZWQ6IHRydWUsXG4gIG1heFBvaW50c0VuYWJsZWQ6IHRydWUsXG4gIC4uLmV4dHJhcyxcbn0pO1xuXG5jb25zdCBpbnZhbGlkTW9kZWwgPSAoZXh0cmFzKSA9PiAoe1xuICBpZDogJzInLFxuICBlbGVtZW50OiAncGllLXJ1YnJpYycsXG4gIHBvaW50czogWydBJywgJ0InLCAnQycsICdEJ10sXG4gIHNhbXBsZUFuc3dlcnM6IFt0cnVlLCB0cnVlLCBmYWxzZSwgZmFsc2VdLFxuICBtYXhQb2ludHM6IDUsXG4gIGV4Y2x1ZGVaZXJvOiBmYWxzZSxcbiAgZXhjbHVkZVplcm9FbmFibGVkOiB0cnVlLFxuICBtYXhQb2ludHNFbmFibGVkOiB0cnVlLFxuICAuLi5leHRyYXMsXG59KTtcbmNvbnN0IGNvbmZpZ3VyYXRpb24gPSAoYykgPT4gKHsgLi4uZGVmYXVsdHMuY29uZmlndXJhdGlvbiwgLi4uYyB9KTtcblxuZGVzY3JpYmUoJ1J1YnJpY0VsZW1lbnQnLCAoKSA9PiB7XG4gIGxldCBlbGVtZW50O1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIGVsZW1lbnQgPSBuZXcgUnVicmljRWxlbWVudCgpO1xuICB9KTtcblxuICBhZnRlckVhY2goKCkgPT4ge1xuICAgIGplc3QuY2xlYXJBbGxNb2NrcygpO1xuICB9KTtcblxuICBkZXNjcmliZSgnc2V0IG1vZGVsJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgc2V0IHRoZSBtb2RlbCBjb3JyZWN0bHknLCAoKSA9PiB7XG4gICAgICBjb25zdCBuZXdNb2RlbCA9IG1vZGVsKCk7XG4gICAgICBlbGVtZW50Lm1vZGVsID0gbmV3TW9kZWw7XG4gICAgICBleHBlY3QoZWxlbWVudC5fbW9kZWwpLnRvRXF1YWwobmV3TW9kZWwpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnb25Nb2RlbENoYW5nZWQnLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCBkaXNwYXRjaCBNb2RlbFVwZGF0ZWRFdmVudCBvbiBtb2RlbCBjaGFuZ2UnLCAoKSA9PiB7XG4gICAgICBjb25zdCBuZXdNb2RlbCA9IG1vZGVsKCk7XG4gICAgICBjb25zdCBkaXNwYXRjaEV2ZW50U3B5ID0gamVzdC5zcHlPbihlbGVtZW50LCAnZGlzcGF0Y2hFdmVudCcpO1xuICAgICAgZWxlbWVudC5vbk1vZGVsQ2hhbmdlZChuZXdNb2RlbCk7XG4gICAgICBleHBlY3QoZWxlbWVudC5fbW9kZWwpLnRvRXF1YWwobmV3TW9kZWwpO1xuICAgICAgZXhwZWN0KGRpc3BhdGNoRXZlbnRTcHkpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKG5ldyBNb2RlbFVwZGF0ZWRFdmVudChuZXdNb2RlbCwgZmFsc2UpKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3NldCBjb25maWd1cmF0aW9uJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgc2V0IHRoZSBjb25maWd1cmF0aW9uIGNvcnJlY3RseScsICgpID0+IHtcbiAgICAgIGNvbnN0IG5ld0NvbmZpZ3VyYXRpb24gPSBjb25maWd1cmF0aW9uKCk7XG4gICAgICBlbGVtZW50LmNvbmZpZ3VyYXRpb24gPSBuZXdDb25maWd1cmF0aW9uO1xuICAgICAgZXhwZWN0KGVsZW1lbnQuX2NvbmZpZ3VyYXRpb24pLnRvRXF1YWwobmV3Q29uZmlndXJhdGlvbik7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdvbkNvbmZpZ3VyYXRpb25DaGFuZ2VkJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgY2FsbCBfcmVuZGVyIG1ldGhvZCBvbiBjb25maWd1cmF0aW9uIGNoYW5nZSBhbmQgb3ZlcndyaXRlIHRoZSBkZWZhdWx0cyB3aXRoIHRoZSBuZXcgdmFsdWVzJywgKCkgPT4ge1xuICAgICAgY29uc3QgbmV3Q29uZmlndXJhdGlvbiA9IGNvbmZpZ3VyYXRpb24oeyBtYXhNYXhQb2ludHM6IDEwIH0pO1xuICAgICAgY29uc3QgcmVuZGVyU3B5ID0gamVzdC5zcHlPbihlbGVtZW50LCAnX3JlbmRlcicpO1xuICAgICAgZWxlbWVudC5vbkNvbmZpZ3VyYXRpb25DaGFuZ2VkKG5ld0NvbmZpZ3VyYXRpb24pO1xuICAgICAgZXhwZWN0KGVsZW1lbnQuX2NvbmZpZ3VyYXRpb24ubWF4TWF4UG9pbnRzKS50b0VxdWFsKDEwKTtcbiAgICAgIGV4cGVjdChyZW5kZXJTcHkpLnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3VwZGF0ZU1vZGVsQWNjb3JkaW5nVG9SZWNlaXZlZFByb3BzJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgcmV0dXJuIHRoZSBzYW1lIG1vZGVsIGlmIGl0IGlzIGFscmVhZHkgdmFsaWQnLCAoKSA9PiB7XG4gICAgICBjb25zdCB2YWxpZE1vZGVsID0gbW9kZWwoKTtcbiAgICAgIGNvbnN0IHZhbGlkYXRlZE1vZGVsID0gZWxlbWVudC51cGRhdGVNb2RlbEFjY29yZGluZ1RvUmVjZWl2ZWRQcm9wcyh2YWxpZE1vZGVsKTtcbiAgICAgIGV4cGVjdCh2YWxpZGF0ZWRNb2RlbCkudG9FcXVhbCh2YWxpZE1vZGVsKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmV0dXJuIGFuIGVtcHR5IG1vZGVsIGlmIHRoZSBpbnB1dCBtb2RlbCBpcyB1bmRlZmluZWQnLCAoKSA9PiB7XG4gICAgICBjb25zdCB2YWxpZGF0ZWRNb2RlbCA9IGVsZW1lbnQudXBkYXRlTW9kZWxBY2NvcmRpbmdUb1JlY2VpdmVkUHJvcHModW5kZWZpbmVkKTtcbiAgICAgIGV4cGVjdCh2YWxpZGF0ZWRNb2RlbCkudG9FcXVhbChkZWZhdWx0cy5tb2RlbCk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHJldHVybiBhbiBlbXB0eSBtb2RlbCBpZiB0aGUgaW5wdXQgbW9kZWwgaXMgbnVsbCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbGlkYXRlZE1vZGVsID0gZWxlbWVudC51cGRhdGVNb2RlbEFjY29yZGluZ1RvUmVjZWl2ZWRQcm9wcyhudWxsKTtcbiAgICAgIGV4cGVjdCh2YWxpZGF0ZWRNb2RlbCkudG9FcXVhbChkZWZhdWx0cy5tb2RlbCk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGhhbmRsZSB1bmRlZmluZWQgcHJvcGVydGllcyBpbiB0aGUgaW5wdXQgbW9kZWwnLCAoKSA9PiB7XG4gICAgICBjb25zdCB2YWxpZGF0ZWRNb2RlbCA9IGVsZW1lbnQudXBkYXRlTW9kZWxBY2NvcmRpbmdUb1JlY2VpdmVkUHJvcHMoe30pO1xuICAgICAgZXhwZWN0KHZhbGlkYXRlZE1vZGVsKS50b0VxdWFsKHsgcG9pbnRzOiBbXSwgc2FtcGxlQW5zd2VyczogW10gfSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGhhbmRsZSBudWxsIHByb3BlcnRpZXMgaW4gdGhlIGlucHV0IG1vZGVsJywgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsaWRhdGVkTW9kZWwgPSBlbGVtZW50LnVwZGF0ZU1vZGVsQWNjb3JkaW5nVG9SZWNlaXZlZFByb3BzKHsgbWF4UG9pbnRzOiBudWxsLCBleGNsdWRlWmVybzogbnVsbCB9KTtcbiAgICAgIGV4cGVjdCh2YWxpZGF0ZWRNb2RlbCkudG9FcXVhbCh7XG4gICAgICAgIGV4Y2x1ZGVaZXJvOiBudWxsLFxuICAgICAgICBtYXhQb2ludHM6IG51bGwsXG4gICAgICAgIHBvaW50czogWycnLCAnJ10sXG4gICAgICAgIHNhbXBsZUFuc3dlcnM6IFtudWxsLCBudWxsXSxcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBoYW5kbGUgdW5kZWZpbmVkIHBvaW50cyBhbmQgc2FtcGxlQW5zd2VycyBhcnJheXMnLCAoKSA9PiB7XG4gICAgICBjb25zdCB2YWxpZGF0ZWRNb2RlbCA9IGVsZW1lbnQudXBkYXRlTW9kZWxBY2NvcmRpbmdUb1JlY2VpdmVkUHJvcHMoeyBtYXhQb2ludHM6IDUsIGV4Y2x1ZGVaZXJvOiBmYWxzZSB9KTtcbiAgICAgIGV4cGVjdCh2YWxpZGF0ZWRNb2RlbC5wb2ludHMpLnRvRXF1YWwoWycnLCAnJywgJycsICcnLCAnJywgJyddKTtcbiAgICAgIGV4cGVjdCh2YWxpZGF0ZWRNb2RlbC5zYW1wbGVBbnN3ZXJzKS50b0VxdWFsKFtudWxsLCBudWxsLCBudWxsLCBudWxsLCBudWxsLCBudWxsXSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGhhbmRsZSBjYXNlIHdoZW4gaG93TWFueVBvaW50c0RvZXNJdEhhdmUgaXMgbGVzcyB0aGFuIGhvd01hbnlQb2ludHNTaG91bGRIYXZlIHdpdGggbWF4UG9pbnRzICYgZXhjbHVkZVplcm8gY2hhbmdlZCcsICgpID0+IHtcbiAgICAgIGNvbnN0IG5leHRNb2RlbCA9IG1vZGVsKHtcbiAgICAgICAgbWF4UG9pbnRzOiA3LFxuICAgICAgICBleGNsdWRlWmVybzogdHJ1ZSxcbiAgICAgIH0pO1xuICAgICAgY29uc3QgcmVzdWx0ID0gZWxlbWVudC51cGRhdGVNb2RlbEFjY29yZGluZ1RvUmVjZWl2ZWRQcm9wcyhuZXh0TW9kZWwpO1xuICAgICAgZXhwZWN0KHJlc3VsdC5wb2ludHMpLnRvRXF1YWwoWydBJywgJ0InLCAnQycsICdEJywgJycsICcnLCAnJ10pO1xuICAgICAgZXhwZWN0KHJlc3VsdC5zYW1wbGVBbnN3ZXJzKS50b0VxdWFsKFt0cnVlLCB0cnVlLCBmYWxzZSwgZmFsc2UsIG51bGwsIG51bGwsIG51bGxdKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgaGFuZGxlIGNhc2Ugd2hlbiBob3dNYW55UG9pbnRzRG9lc0l0SGF2ZSBpcyBsZXNzIHRoYW4gaG93TWFueVBvaW50c1Nob3VsZEhhdmUgYW5kIG1heFBvaW50c0NoYW5nZWQnLCAoKSA9PiB7XG4gICAgICBjb25zdCBuZXh0TW9kZWwgPSBtb2RlbCh7XG4gICAgICAgIG1heFBvaW50czogNCxcbiAgICAgICAgZXhjbHVkZVplcm86IGZhbHNlLFxuICAgICAgfSk7XG4gICAgICBjb25zdCByZXN1bHQgPSBlbGVtZW50LnVwZGF0ZU1vZGVsQWNjb3JkaW5nVG9SZWNlaXZlZFByb3BzKG5leHRNb2RlbCk7XG4gICAgICBleHBlY3QocmVzdWx0LnBvaW50cykudG9FcXVhbChbJ0EnLCAnQicsICdDJywgJ0QnLCAnJ10pO1xuICAgICAgZXhwZWN0KHJlc3VsdC5zYW1wbGVBbnN3ZXJzKS50b0VxdWFsKFt0cnVlLCB0cnVlLCBmYWxzZSwgZmFsc2UsIG51bGxdKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgaGFuZGxlIGNhc2Ugd2hlbiBob3dNYW55UG9pbnRzRG9lc0l0SGF2ZSBpcyBncmVhdGVyIHRoYW4gaG93TWFueVBvaW50c1Nob3VsZEhhdmUgYW5kIGV4Y2x1ZGVaZXJvQ2hhbmdlZCcsICgpID0+IHtcbiAgICAgIGNvbnN0IG5leHRNb2RlbCA9IG1vZGVsKHtcbiAgICAgICAgbWF4UG9pbnRzOiAzLFxuICAgICAgICBleGNsdWRlWmVybzogdHJ1ZSxcbiAgICAgIH0pO1xuICAgICAgY29uc3QgcmVzdWx0ID0gZWxlbWVudC51cGRhdGVNb2RlbEFjY29yZGluZ1RvUmVjZWl2ZWRQcm9wcyhuZXh0TW9kZWwpO1xuICAgICAgZXhwZWN0KHJlc3VsdC5wb2ludHMpLnRvRXF1YWwoWydCJywgJ0MnLCAnRCddKTtcbiAgICAgIGV4cGVjdChyZXN1bHQuc2FtcGxlQW5zd2VycykudG9FcXVhbChbdHJ1ZSwgZmFsc2UsIGZhbHNlXSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGhhbmRsZSBjYXNlIHdoZW4gaG93TWFueVBvaW50c0RvZXNJdEhhdmUgaXMgZ3JlYXRlciB0aGFuIGhvd01hbnlQb2ludHNTaG91bGRIYXZlIGFuZCBtYXhQb2ludHNDaGFuZ2VkJywgKCkgPT4ge1xuICAgICAgY29uc3QgbmV4dE1vZGVsID0gbW9kZWwoe1xuICAgICAgICBtYXhQb2ludHM6IDEsXG4gICAgICAgIGV4Y2x1ZGVaZXJvOiBmYWxzZSxcbiAgICAgIH0pO1xuICAgICAgY29uc3QgcmVzdWx0ID0gZWxlbWVudC51cGRhdGVNb2RlbEFjY29yZGluZ1RvUmVjZWl2ZWRQcm9wcyhuZXh0TW9kZWwpO1xuICAgICAgZXhwZWN0KHJlc3VsdC5wb2ludHMpLnRvRXF1YWwoWydBJywgJ0InXSk7XG4gICAgICBleHBlY3QocmVzdWx0LnNhbXBsZUFuc3dlcnMpLnRvRXF1YWwoW3RydWUsIHRydWVdKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgaGFuZGxlIGNhc2UgaWYgaW52YWxpZCBtb2RlbCBpcyBzZXQsIGFmdGVyIHVwZGF0ZU1vZGVsQWNjb3JkaW5nVG9SZWNlaXZlZFByb3BzIHRoZSByZXR1cm5lZCBtb2RlbCBpcyB2YWxpZCcsICgpID0+IHtcbiAgICAgIGNvbnN0IG5ld01vZGVsID0gaW52YWxpZE1vZGVsKCk7XG4gICAgICBlbGVtZW50Lm9uTW9kZWxDaGFuZ2VkKG5ld01vZGVsKTtcbiAgICAgIGV4cGVjdChlbGVtZW50Ll9tb2RlbC5wb2ludHMpLnRvRXF1YWwoWydBJywgJ0InLCAnQycsICdEJywgJycsICcnXSk7XG4gICAgICBleHBlY3QoZWxlbWVudC5fbW9kZWwuc2FtcGxlQW5zd2VycykudG9FcXVhbChbdHJ1ZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlLCBudWxsLCBudWxsXSk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXSwibWFwcGluZ3MiOiI7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFNBQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFFLG1CQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxNQUFBLEdBQUFKLHNCQUFBLENBQUFDLE9BQUE7QUFFQUksSUFBSSxDQUFDQyxJQUFJLENBQUMsV0FBVyxFQUFFLE9BQU87RUFDNUJDLE1BQU0sRUFBRUYsSUFBSSxDQUFDRyxFQUFFLENBQUM7QUFDbEIsQ0FBQyxDQUFDLENBQUM7QUFFSEgsSUFBSSxDQUFDQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsT0FBTztFQUNyQ0csTUFBTSxFQUFFO0lBQ05DLFlBQVksRUFBR0MsS0FBSyxpQkFBS1AsTUFBQSxDQUFBUSxPQUFBLENBQUFDLGFBQUEsUUFBU0YsS0FBUTtFQUM1QyxDQUFDO0VBQ0RHLFFBQVEsRUFBRTtJQUNSQyxLQUFLLEVBQUdKLEtBQUssaUJBQUtQLE1BQUEsQ0FBQVEsT0FBQSxDQUFBQyxhQUFBLFFBQVNGLEtBQVEsQ0FBQztJQUNwQ0ssTUFBTSxFQUFFWCxJQUFJLENBQUNHLEVBQUUsQ0FBQyxDQUFDO0lBQ2pCUyxLQUFLLEVBQUVaLElBQUksQ0FBQ0csRUFBRSxDQUFDO0VBQ2pCO0FBQ0YsQ0FBQyxDQUFDLENBQUM7QUFFSCxNQUFNVSxLQUFLLEdB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
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports
|
|
7
|
-
var _default = {
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _default = exports.default = {
|
|
8
8
|
model: {
|
|
9
9
|
points: ['', '', '', ''],
|
|
10
10
|
sampleAnswers: [null, null, null, null],
|
|
@@ -64,5 +64,4 @@ var _default = {
|
|
|
64
64
|
maxMaxPoints: 9
|
|
65
65
|
}
|
|
66
66
|
};
|
|
67
|
-
|
|
68
|
-
//# sourceMappingURL=defaults.js.map
|
|
67
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJtb2RlbCIsInBvaW50cyIsInNhbXBsZUFuc3dlcnMiLCJtYXhQb2ludHMiLCJleGNsdWRlWmVybyIsImV4Y2x1ZGVaZXJvRW5hYmxlZCIsIm1heFBvaW50c0VuYWJsZWQiLCJjb25maWd1cmF0aW9uIiwiYmFzZUlucHV0Q29uZmlndXJhdGlvbiIsImF1ZGlvIiwiZGlzYWJsZWQiLCJ2aWRlbyIsImltYWdlIiwidGV4dEFsaWduIiwic2hvd1BhcmFncmFwaHMiLCJzZXBhcmF0ZVBhcmFncmFwaHMiLCJydWJyaWNsZXNzSW5zdHJ1Y3Rpb24iLCJpbnB1dENvbmZpZ3VyYXRpb24iLCJzaG93RXhjbHVkZVplcm8iLCJzZXR0aW5ncyIsImxhYmVsIiwic2hvd01heFBvaW50Iiwic2V0dGluZ3NQYW5lbERpc2FibGVkIiwibWF0aE1sT3B0aW9ucyIsIm1tbE91dHB1dCIsIm1tbEVkaXRpbmciLCJtYXhNYXhQb2ludHMiXSwic291cmNlcyI6WyIuLi9zcmMvZGVmYXVsdHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQge1xuICBtb2RlbDoge1xuICAgIHBvaW50czogWycnLCAnJywgJycsICcnXSxcbiAgICBzYW1wbGVBbnN3ZXJzOiBbbnVsbCwgbnVsbCwgbnVsbCwgbnVsbF0sXG4gICAgbWF4UG9pbnRzOiAzLFxuICAgIGV4Y2x1ZGVaZXJvOiBmYWxzZSxcbiAgICBleGNsdWRlWmVyb0VuYWJsZWQ6IHRydWUsXG4gICAgbWF4UG9pbnRzRW5hYmxlZDogdHJ1ZSxcbiAgfSxcbiAgY29uZmlndXJhdGlvbjoge1xuICAgIGJhc2VJbnB1dENvbmZpZ3VyYXRpb246IHtcbiAgICAgIGF1ZGlvOiB7IGRpc2FibGVkOiBmYWxzZSB9LFxuICAgICAgdmlkZW86IHsgZGlzYWJsZWQ6IGZhbHNlIH0sXG4gICAgICBpbWFnZTogeyBkaXNhYmxlZDogZmFsc2UgfSxcbiAgICAgIHRleHRBbGlnbjogeyBkaXNhYmxlZDogdHJ1ZSB9LFxuICAgICAgc2hvd1BhcmFncmFwaHM6IHsgZGlzYWJsZWQ6IGZhbHNlIH0sXG4gICAgICBzZXBhcmF0ZVBhcmFncmFwaHM6IHsgZGlzYWJsZWQ6IHRydWUgfSxcbiAgICB9LFxuICAgIHJ1YnJpY2xlc3NJbnN0cnVjdGlvbjoge1xuICAgICAgaW5wdXRDb25maWd1cmF0aW9uOiB7XG4gICAgICAgIGF1ZGlvOiB7IGRpc2FibGVkOiBmYWxzZSB9LFxuICAgICAgICB2aWRlbzogeyBkaXNhYmxlZDogZmFsc2UgfSxcbiAgICAgICAgaW1hZ2U6IHsgZGlzYWJsZWQ6IGZhbHNlIH0sXG4gICAgICB9LFxuICAgIH0sXG4gICAgc2hvd0V4Y2x1ZGVaZXJvOiB7XG4gICAgICBzZXR0aW5nczogdHJ1ZSxcbiAgICAgIGxhYmVsOiAnQWJpbGl0eSB0byBleGNsdWRlIHplcm8nLFxuICAgIH0sXG4gICAgc2hvd01heFBvaW50OiB7XG4gICAgICBzZXR0aW5nczogdHJ1ZSxcbiAgICAgIGxhYmVsOiAnU2hvdyBtYXggcG9pbnRzIGRyb3Bkb3duJyxcbiAgICB9LFxuICAgIHNldHRpbmdzUGFuZWxEaXNhYmxlZDogZmFsc2UsXG4gICAgLy8gd2lkdGg6ICc1MDBweCdcbiAgICBtYXRoTWxPcHRpb25zOiB7XG4gICAgICBtbWxPdXRwdXQ6IGZhbHNlLFxuICAgICAgbW1sRWRpdGluZzogZmFsc2UsXG4gICAgfSxcbiAgICBtYXhNYXhQb2ludHM6IDksXG4gIH0sXG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7aUNBQWU7RUFDYkEsS0FBSyxFQUFFO0lBQ0xDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztJQUN4QkMsYUFBYSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO0lBQ3ZDQyxTQUFTLEVBQUUsQ0FBQztJQUNaQyxXQUFXLEVBQUUsS0FBSztJQUNsQkMsa0JBQWtCLEVBQUUsSUFBSTtJQUN4QkMsZ0JBQWdCLEVBQUU7RUFDcEIsQ0FBQztFQUNEQyxhQUFhLEVBQUU7SUFDYkMsc0JBQXNCLEVBQUU7TUFDdEJDLEtBQUssRUFBRTtRQUFFQyxRQUFRLEVBQUU7TUFBTSxDQUFDO01BQzFCQyxLQUFLLEVBQUU7UUFBRUQsUUFBUSxFQUFFO01BQU0sQ0FBQztNQUMxQkUsS0FBSyxFQUFFO1FBQUVGLFFBQVEsRUFBRTtNQUFNLENBQUM7TUFDMUJHLFNBQVMsRUFBRTtRQUFFSCxRQUFRLEVBQUU7TUFBSyxDQUFDO01BQzdCSSxjQUFjLEVBQUU7UUFBRUosUUFBUSxFQUFFO01BQU0sQ0FBQztNQUNuQ0ssa0JBQWtCLEVBQUU7UUFBRUwsUUFBUSxFQUFFO01BQUs7SUFDdkMsQ0FBQztJQUNETSxxQkFBcUIsRUFBRTtNQUNyQkMsa0JBQWtCLEVBQUU7UUFDbEJSLEtBQUssRUFBRTtVQUFFQyxRQUFRLEVBQUU7UUFBTSxDQUFDO1FBQzFCQyxLQUFLLEVBQUU7VUFBRUQsUUFBUSxFQUFFO1FBQU0sQ0FBQztRQUMxQkUsS0FBSyxFQUFFO1VBQUVGLFFBQVEsRUFBRTtRQUFNO01BQzNCO0lBQ0YsQ0FBQztJQUNEUSxlQUFlLEVBQUU7TUFDZkMsUUFBUSxFQUFFLElBQUk7TUFDZEMsS0FBSyxFQUFFO0lBQ1QsQ0FBQztJQUNEQyxZQUFZLEVBQUU7TUFDWkYsUUFBUSxFQUFFLElBQUk7TUFDZEMsS0FBSyxFQUFFO0lBQ1QsQ0FBQztJQUNERSxxQkFBcUIsRUFBRSxLQUFLO0lBQzVCO0lBQ0FDLGFBQWEsRUFBRTtNQUNiQyxTQUFTLEVBQUUsS0FBSztNQUNoQkMsVUFBVSxFQUFFO0lBQ2QsQ0FBQztJQUNEQyxZQUFZLEVBQUU7RUFDaEI7QUFDRixDQUFDIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"defaults.js","names":["model","points","sampleAnswers","maxPoints","excludeZero","excludeZeroEnabled","maxPointsEnabled","configuration","baseInputConfiguration","audio","disabled","video","image","textAlign","showParagraphs","separateParagraphs","rubriclessInstruction","inputConfiguration","showExcludeZero","settings","label","showMaxPoint","settingsPanelDisabled","mathMlOptions","mmlOutput","mmlEditing","maxMaxPoints"],"sources":["../src/defaults.js"],"sourcesContent":["export default {\n model: {\n points: ['', '', '', ''],\n sampleAnswers: [null, null, null, null],\n maxPoints: 3,\n excludeZero: false,\n excludeZeroEnabled: true,\n maxPointsEnabled: true,\n },\n configuration: {\n baseInputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n textAlign: { disabled: true },\n showParagraphs: { disabled: false },\n separateParagraphs: { disabled: true },\n },\n rubriclessInstruction: {\n inputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n },\n showExcludeZero: {\n settings: true,\n label: 'Ability to exclude zero',\n },\n showMaxPoint: {\n settings: true,\n label: 'Show max points dropdown',\n },\n settingsPanelDisabled: false,\n // width: '500px'\n mathMlOptions: {\n mmlOutput: false,\n mmlEditing: false,\n },\n maxMaxPoints: 9,\n },\n};\n"],"mappings":";;;;;;iCAAe;EACbA,KAAK,EAAE;IACLC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACxBC,aAAa,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;IACvCC,SAAS,EAAE,CAAC;IACZC,WAAW,EAAE,KAAK;IAClBC,kBAAkB,EAAE,IAAI;IACxBC,gBAAgB,EAAE;EACpB,CAAC;EACDC,aAAa,EAAE;IACbC,sBAAsB,EAAE;MACtBC,KAAK,EAAE;QAAEC,QAAQ,EAAE;MAAM,CAAC;MAC1BC,KAAK,EAAE;QAAED,QAAQ,EAAE;MAAM,CAAC;MAC1BE,KAAK,EAAE;QAAEF,QAAQ,EAAE;MAAM,CAAC;MAC1BG,SAAS,EAAE;QAAEH,QAAQ,EAAE;MAAK,CAAC;MAC7BI,cAAc,EAAE;QAAEJ,QAAQ,EAAE;MAAM,CAAC;MACnCK,kBAAkB,EAAE;QAAEL,QAAQ,EAAE;MAAK;IACvC,CAAC;IACDM,qBAAqB,EAAE;MACrBC,kBAAkB,EAAE;QAClBR,KAAK,EAAE;UAAEC,QAAQ,EAAE;QAAM,CAAC;QAC1BC,KAAK,EAAE;UAAED,QAAQ,EAAE;QAAM,CAAC;QAC1BE,KAAK,EAAE;UAAEF,QAAQ,EAAE;QAAM;MAC3B;IACF,CAAC;IACDQ,eAAe,EAAE;MACfC,QAAQ,EAAE,IAAI;MACdC,KAAK,EAAE;IACT,CAAC;IACDC,YAAY,EAAE;MACZF,QAAQ,EAAE,IAAI;MACdC,KAAK,EAAE;IACT,CAAC;IACDE,qBAAqB,EAAE,KAAK;IAC5B;IACAC,aAAa,EAAE;MACbC,SAAS,EAAE,KAAK;MAChBC,UAAU,EAAE;IACd,CAAC;IACDC,YAAY,EAAE;EAChB;AACF,CAAC","ignoreList":[]}
|
package/configure/lib/index.js
CHANGED
|
@@ -1,101 +1,60 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
|
-
exports
|
|
9
|
-
|
|
10
|
-
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
11
|
-
|
|
12
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
13
|
-
|
|
14
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
15
|
-
|
|
16
|
-
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
17
|
-
|
|
18
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
19
|
-
|
|
20
|
-
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
21
|
-
|
|
22
|
-
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
23
|
-
|
|
24
|
-
var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper"));
|
|
25
|
-
|
|
7
|
+
exports.default = void 0;
|
|
26
8
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
27
|
-
|
|
28
9
|
var _pieConfigureEvents = require("@pie-framework/pie-configure-events");
|
|
29
|
-
|
|
30
10
|
var _react = _interopRequireDefault(require("react"));
|
|
31
|
-
|
|
32
|
-
var _reactDom = _interopRequireDefault(require("react-dom"));
|
|
33
|
-
|
|
11
|
+
var _client = require("react-dom/client");
|
|
34
12
|
var _debug = _interopRequireDefault(require("debug"));
|
|
35
|
-
|
|
36
13
|
var _main = _interopRequireDefault(require("./main"));
|
|
37
|
-
|
|
38
14
|
var _defaults = _interopRequireDefault(require("./defaults"));
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
};
|
|
55
|
-
|
|
56
|
-
var RubricElement = /*#__PURE__*/function (_HTMLElement) {
|
|
57
|
-
(0, _inherits2["default"])(RubricElement, _HTMLElement);
|
|
58
|
-
|
|
59
|
-
var _super = _createSuper(RubricElement);
|
|
60
|
-
|
|
61
|
-
function RubricElement() {
|
|
62
|
-
var _this;
|
|
63
|
-
|
|
64
|
-
(0, _classCallCheck2["default"])(this, RubricElement);
|
|
65
|
-
_this = _super.call(this);
|
|
66
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "updateModelAccordingToReceivedProps", function (nextModel) {
|
|
67
|
-
var currentModel = _objectSpread({}, _this._model);
|
|
68
|
-
|
|
15
|
+
const modelWithDefaults = m => ({
|
|
16
|
+
..._defaults.default.model,
|
|
17
|
+
...m
|
|
18
|
+
});
|
|
19
|
+
const configurationWithDefaults = c => ({
|
|
20
|
+
..._defaults.default.configuration,
|
|
21
|
+
...c
|
|
22
|
+
});
|
|
23
|
+
class RubricElement extends HTMLElement {
|
|
24
|
+
constructor() {
|
|
25
|
+
super();
|
|
26
|
+
(0, _defineProperty2.default)(this, "updateModelAccordingToReceivedProps", nextModel => {
|
|
27
|
+
const currentModel = {
|
|
28
|
+
...this._model
|
|
29
|
+
};
|
|
69
30
|
if (!nextModel) {
|
|
70
31
|
return currentModel;
|
|
71
32
|
}
|
|
33
|
+
const validatedModel = {
|
|
34
|
+
...nextModel
|
|
35
|
+
};
|
|
72
36
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
37
|
+
// excludeZero should be false and disabled when maxPoints is 1
|
|
76
38
|
if (validatedModel.maxPoints === 1) {
|
|
77
39
|
validatedModel.excludeZero = false;
|
|
78
40
|
}
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
validatedModel.
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
var maxPointsChanged = (currentModel === null || currentModel === void 0 ? void 0 : currentModel.maxPoints) !== (nextModel === null || nextModel === void 0 ? void 0 : nextModel.maxPoints);
|
|
90
|
-
|
|
41
|
+
const {
|
|
42
|
+
maxPoints,
|
|
43
|
+
excludeZero
|
|
44
|
+
} = validatedModel || {};
|
|
45
|
+
validatedModel.points = validatedModel.points ? [...validatedModel.points] : [];
|
|
46
|
+
validatedModel.sampleAnswers = validatedModel.sampleAnswers ? [...validatedModel.sampleAnswers] : [];
|
|
47
|
+
const howManyPointsShouldHave = excludeZero ? maxPoints : maxPoints + 1;
|
|
48
|
+
const howManyPointsDoesItHave = validatedModel.points.length;
|
|
49
|
+
const excludeZeroChanged = currentModel?.excludeZero !== nextModel?.excludeZero;
|
|
50
|
+
const maxPointsChanged = currentModel?.maxPoints !== nextModel?.maxPoints;
|
|
91
51
|
if (howManyPointsDoesItHave < howManyPointsShouldHave) {
|
|
92
52
|
if (excludeZeroChanged && !excludeZero) {
|
|
93
|
-
validatedModel.points = [''
|
|
94
|
-
validatedModel.sampleAnswers = [null
|
|
53
|
+
validatedModel.points = ['', ...validatedModel.points];
|
|
54
|
+
validatedModel.sampleAnswers = [null, ...validatedModel.sampleAnswers];
|
|
95
55
|
}
|
|
96
|
-
|
|
97
56
|
if (maxPointsChanged) {
|
|
98
|
-
for (
|
|
57
|
+
for (let i = 0; i < howManyPointsShouldHave - howManyPointsDoesItHave; i++) {
|
|
99
58
|
validatedModel.points.push('');
|
|
100
59
|
validatedModel.sampleAnswers.push(null);
|
|
101
60
|
}
|
|
@@ -105,93 +64,72 @@ var RubricElement = /*#__PURE__*/function (_HTMLElement) {
|
|
|
105
64
|
validatedModel.points = validatedModel.points.slice(1);
|
|
106
65
|
validatedModel.sampleAnswers = validatedModel.sampleAnswers.slice(1);
|
|
107
66
|
}
|
|
108
|
-
|
|
109
67
|
if (maxPointsChanged) {
|
|
110
68
|
validatedModel.points = validatedModel.points.slice(0, howManyPointsShouldHave);
|
|
111
69
|
validatedModel.sampleAnswers = validatedModel.sampleAnswers.slice(0, howManyPointsShouldHave);
|
|
112
70
|
}
|
|
113
71
|
}
|
|
114
|
-
|
|
115
72
|
return validatedModel;
|
|
116
73
|
});
|
|
117
|
-
(0, _defineProperty2
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
_this.onModelChanged(_this._model);
|
|
74
|
+
(0, _defineProperty2.default)(this, "onConfigurationChanged", c => {
|
|
75
|
+
this._configuration = configurationWithDefaults(c);
|
|
76
|
+
if (this._model) {
|
|
77
|
+
this.onModelChanged(this._model);
|
|
122
78
|
}
|
|
123
|
-
|
|
124
|
-
_this._render();
|
|
79
|
+
this._render();
|
|
125
80
|
});
|
|
126
|
-
|
|
127
|
-
_debug
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
_this.onConfigurationChanged = _this.onConfigurationChanged.bind((0, _assertThisInitialized2["default"])(_this));
|
|
133
|
-
return _this;
|
|
81
|
+
this._root = null;
|
|
82
|
+
_debug.default.log('constructor called');
|
|
83
|
+
this._model = modelWithDefaults();
|
|
84
|
+
this._configuration = configurationWithDefaults();
|
|
85
|
+
this.onModelChanged = this.onModelChanged.bind(this);
|
|
86
|
+
this.onConfigurationChanged = this.onConfigurationChanged.bind(this);
|
|
134
87
|
}
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
value: function connectedCallback() {
|
|
172
|
-
this._render();
|
|
173
|
-
}
|
|
174
|
-
}, {
|
|
175
|
-
key: "_render",
|
|
176
|
-
value: function _render() {
|
|
177
|
-
if (this._model) {
|
|
178
|
-
var element = /*#__PURE__*/_react["default"].createElement(_main["default"], {
|
|
179
|
-
model: this._model,
|
|
180
|
-
configuration: this._configuration,
|
|
181
|
-
onModelChanged: this.onModelChanged,
|
|
182
|
-
onConfigurationChanged: this.onConfigurationChanged,
|
|
183
|
-
imageSupport: {
|
|
184
|
-
add: this.insertImage.bind(this),
|
|
185
|
-
"delete": this.onDeleteImage.bind(this)
|
|
186
|
-
}
|
|
187
|
-
});
|
|
188
|
-
|
|
189
|
-
_reactDom["default"].render(element, this);
|
|
88
|
+
set model(m) {
|
|
89
|
+
this._model = this.updateModelAccordingToReceivedProps(modelWithDefaults(m));
|
|
90
|
+
this._render();
|
|
91
|
+
}
|
|
92
|
+
set configuration(c) {
|
|
93
|
+
this._configuration = configurationWithDefaults(c);
|
|
94
|
+
this._render();
|
|
95
|
+
}
|
|
96
|
+
onModelChanged(m) {
|
|
97
|
+
this._model = this.updateModelAccordingToReceivedProps(m);
|
|
98
|
+
this._render();
|
|
99
|
+
this.dispatchEvent(new _pieConfigureEvents.ModelUpdatedEvent(this._model, false));
|
|
100
|
+
}
|
|
101
|
+
insertImage(handler) {
|
|
102
|
+
this.dispatchEvent(new _pieConfigureEvents.InsertImageEvent(handler));
|
|
103
|
+
}
|
|
104
|
+
onDeleteImage(src, done) {
|
|
105
|
+
this.dispatchEvent(new _pieConfigureEvents.DeleteImageEvent(src, done));
|
|
106
|
+
}
|
|
107
|
+
connectedCallback() {
|
|
108
|
+
this._render();
|
|
109
|
+
}
|
|
110
|
+
_render() {
|
|
111
|
+
if (this._model) {
|
|
112
|
+
let element = /*#__PURE__*/_react.default.createElement(_main.default, {
|
|
113
|
+
model: this._model,
|
|
114
|
+
configuration: this._configuration,
|
|
115
|
+
onModelChanged: this.onModelChanged,
|
|
116
|
+
onConfigurationChanged: this.onConfigurationChanged,
|
|
117
|
+
imageSupport: {
|
|
118
|
+
add: this.insertImage.bind(this),
|
|
119
|
+
delete: this.onDeleteImage.bind(this)
|
|
120
|
+
}
|
|
121
|
+
});
|
|
122
|
+
if (!this._root) {
|
|
123
|
+
this._root = (0, _client.createRoot)(this);
|
|
190
124
|
}
|
|
125
|
+
this._root.render(element);
|
|
191
126
|
}
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
127
|
+
}
|
|
128
|
+
disconnectedCallback() {
|
|
129
|
+
if (this._root) {
|
|
130
|
+
this._root.unmount();
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
exports.default = RubricElement;
|
|
135
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcGllQ29uZmlndXJlRXZlbnRzIiwicmVxdWlyZSIsIl9yZWFjdCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfY2xpZW50IiwiX2RlYnVnIiwiX21haW4iLCJfZGVmYXVsdHMiLCJtb2RlbFdpdGhEZWZhdWx0cyIsIm0iLCJkZWZhdWx0cyIsIm1vZGVsIiwiY29uZmlndXJhdGlvbldpdGhEZWZhdWx0cyIsImMiLCJjb25maWd1cmF0aW9uIiwiUnVicmljRWxlbWVudCIsIkhUTUxFbGVtZW50IiwiY29uc3RydWN0b3IiLCJfZGVmaW5lUHJvcGVydHkyIiwiZGVmYXVsdCIsIm5leHRNb2RlbCIsImN1cnJlbnRNb2RlbCIsIl9tb2RlbCIsInZhbGlkYXRlZE1vZGVsIiwibWF4UG9pbnRzIiwiZXhjbHVkZVplcm8iLCJwb2ludHMiLCJzYW1wbGVBbnN3ZXJzIiwiaG93TWFueVBvaW50c1Nob3VsZEhhdmUiLCJob3dNYW55UG9pbnRzRG9lc0l0SGF2ZSIsImxlbmd0aCIsImV4Y2x1ZGVaZXJvQ2hhbmdlZCIsIm1heFBvaW50c0NoYW5nZWQiLCJpIiwicHVzaCIsInNsaWNlIiwiX2NvbmZpZ3VyYXRpb24iLCJvbk1vZGVsQ2hhbmdlZCIsIl9yZW5kZXIiLCJfcm9vdCIsImRlYnVnIiwibG9nIiwiYmluZCIsIm9uQ29uZmlndXJhdGlvbkNoYW5nZWQiLCJ1cGRhdGVNb2RlbEFjY29yZGluZ1RvUmVjZWl2ZWRQcm9wcyIsImRpc3BhdGNoRXZlbnQiLCJNb2RlbFVwZGF0ZWRFdmVudCIsImluc2VydEltYWdlIiwiaGFuZGxlciIsIkluc2VydEltYWdlRXZlbnQiLCJvbkRlbGV0ZUltYWdlIiwic3JjIiwiZG9uZSIsIkRlbGV0ZUltYWdlRXZlbnQiLCJjb25uZWN0ZWRDYWxsYmFjayIsImVsZW1lbnQiLCJSZWFjdCIsImNyZWF0ZUVsZW1lbnQiLCJNYWluIiwiaW1hZ2VTdXBwb3J0IiwiYWRkIiwiZGVsZXRlIiwiY3JlYXRlUm9vdCIsInJlbmRlciIsImRpc2Nvbm5lY3RlZENhbGxiYWNrIiwidW5tb3VudCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi9zcmMvaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kZWxVcGRhdGVkRXZlbnQsIEluc2VydEltYWdlRXZlbnQsIERlbGV0ZUltYWdlRXZlbnQgfSBmcm9tICdAcGllLWZyYW1ld29yay9waWUtY29uZmlndXJlLWV2ZW50cyc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY3JlYXRlUm9vdCB9IGZyb20gJ3JlYWN0LWRvbS9jbGllbnQnO1xuaW1wb3J0IGRlYnVnIGZyb20gJ2RlYnVnJztcblxuaW1wb3J0IE1haW4gZnJvbSAnLi9tYWluJztcbmltcG9ydCBkZWZhdWx0cyBmcm9tICcuL2RlZmF1bHRzJztcblxuY29uc3QgbW9kZWxXaXRoRGVmYXVsdHMgPSAobSkgPT4gKHsgLi4uZGVmYXVsdHMubW9kZWwsIC4uLm0gfSk7XG5cbmNvbnN0IGNvbmZpZ3VyYXRpb25XaXRoRGVmYXVsdHMgPSAoYykgPT4gKHsgLi4uZGVmYXVsdHMuY29uZmlndXJhdGlvbiwgLi4uYyB9KTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUnVicmljRWxlbWVudCBleHRlbmRzIEhUTUxFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLl9yb290ID0gbnVsbDtcbiAgICBkZWJ1Zy5sb2coJ2NvbnN0cnVjdG9yIGNhbGxlZCcpO1xuICAgIHRoaXMuX21vZGVsID0gbW9kZWxXaXRoRGVmYXVsdHMoKTtcbiAgICB0aGlzLl9jb25maWd1cmF0aW9uID0gY29uZmlndXJhdGlvbldpdGhEZWZhdWx0cygpO1xuICAgIHRoaXMub25Nb2RlbENoYW5nZWQgPSB0aGlzLm9uTW9kZWxDaGFuZ2VkLmJpbmQodGhpcyk7XG4gICAgdGhpcy5vbkNvbmZpZ3VyYXRpb25DaGFuZ2VkID0gdGhpcy5vbkNvbmZpZ3VyYXRpb25DaGFuZ2VkLmJpbmQodGhpcyk7XG4gIH1cblxuICB1cGRhdGVNb2RlbEFjY29yZGluZ1RvUmVjZWl2ZWRQcm9wcyA9IChuZXh0TW9kZWwpID0+IHtcbiAgICBjb25zdCBjdXJyZW50TW9kZWwgPSB7IC4uLnRoaXMuX21vZGVsIH07XG5cbiAgICBpZiAoIW5leHRNb2RlbCkge1xuICAgICAgcmV0dXJuIGN1cnJlbnRNb2RlbDtcbiAgICB9XG5cbiAgICBjb25zdCB2YWxpZGF0ZWRNb2RlbCA9IHsgLi4ubmV4dE1vZGVsIH07XG5cbiAgICAvLyBleGNsdWRlWmVybyBzaG91bGQgYmUgZmFsc2UgYW5kIGRpc2FibGVkIHdoZW4gbWF4UG9pbnRzIGlzIDFcbiAgICBpZiAodmFsaWRhdGVkTW9kZWwubWF4UG9pbnRzID09PSAxKSB7XG4gICAgICB2YWxpZGF0ZWRNb2RlbC5leGNsdWRlWmVybyA9IGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IHsgbWF4UG9pbnRzLCBleGNsdWRlWmVybyB9ID0gdmFsaWRhdGVkTW9kZWwgfHwge307XG5cbiAgICB2YWxpZGF0ZWRNb2RlbC5wb2ludHMgPSB2YWxpZGF0ZWRNb2RlbC5wb2ludHMgPyBbLi4udmFsaWRhdGVkTW9kZWwucG9pbnRzXSA6IFtdO1xuICAgIHZhbGlkYXRlZE1vZGVsLnNhbXBsZUFuc3dlcnMgPSB2YWxpZGF0ZWRNb2RlbC5zYW1wbGVBbnN3ZXJzID8gWy4uLnZhbGlkYXRlZE1vZGVsLnNhbXBsZUFuc3dlcnNdIDogW107XG5cbiAgICBjb25zdCBob3dNYW55UG9pbnRzU2hvdWxkSGF2ZSA9IGV4Y2x1ZGVaZXJvID8gbWF4UG9pbnRzIDogbWF4UG9pbnRzICsgMTtcbiAgICBjb25zdCBob3dNYW55UG9pbnRzRG9lc0l0SGF2ZSA9IHZhbGlkYXRlZE1vZGVsLnBvaW50cy5sZW5ndGg7XG5cbiAgICBjb25zdCBleGNsdWRlWmVyb0NoYW5nZWQgPSBjdXJyZW50TW9kZWw/LmV4Y2x1ZGVaZXJvICE9PSBuZXh0TW9kZWw/LmV4Y2x1ZGVaZXJvO1xuICAgIGNvbnN0IG1heFBvaW50c0NoYW5nZWQgPSBjdXJyZW50TW9kZWw/Lm1heFBvaW50cyAhPT0gbmV4dE1vZGVsPy5tYXhQb2ludHM7XG5cbiAgICBpZiAoaG93TWFueVBvaW50c0RvZXNJdEhhdmUgPCBob3dNYW55UG9pbnRzU2hvdWxkSGF2ZSkge1xuICAgICAgaWYgKGV4Y2x1ZGVaZXJvQ2hhbmdlZCAmJiAhZXhjbHVkZVplcm8pIHtcbiAgICAgICAgdmFsaWRhdGVkTW9kZWwucG9pbnRzID0gWycnLCAuLi52YWxpZGF0ZWRNb2RlbC5wb2ludHNdO1xuICAgICAgICB2YWxpZGF0ZWRNb2RlbC5zYW1wbGVBbnN3ZXJzID0gW251bGwsIC4uLnZhbGlkYXRlZE1vZGVsLnNhbXBsZUFuc3dlcnNdO1xuICAgICAgfVxuXG4gICAgICBpZiAobWF4UG9pbnRzQ2hhbmdlZCkge1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGhvd01hbnlQb2ludHNTaG91bGRIYXZlIC0gaG93TWFueVBvaW50c0RvZXNJdEhhdmU7IGkrKykge1xuICAgICAgICAgIHZhbGlkYXRlZE1vZGVsLnBvaW50cy5wdXNoKCcnKTtcbiAgICAgICAgICB2YWxpZGF0ZWRNb2RlbC5zYW1wbGVBbnN3ZXJzLnB1c2gobnVsbCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGhvd01hbnlQb2ludHNEb2VzSXRIYXZlID4gaG93TWFueVBvaW50c1Nob3VsZEhhdmUpIHtcbiAgICAgIGlmIChleGNsdWRlWmVyb0NoYW5nZWQgJiYgZXhjbHVkZVplcm8pIHtcbiAgICAgICAgdmFsaWRhdGVkTW9kZWwucG9pbnRzID0gdmFsaWRhdGVkTW9kZWwucG9pbnRzLnNsaWNlKDEpO1xuICAgICAgICB2YWxpZGF0ZWRNb2RlbC5zYW1wbGVBbnN3ZXJzID0gdmFsaWRhdGVkTW9kZWwuc2FtcGxlQW5zd2Vycy5zbGljZSgxKTtcbiAgICAgIH1cblxuICAgICAgaWYgKG1heFBvaW50c0NoYW5nZWQpIHtcbiAgICAgICAgdmFsaWRhdGVkTW9kZWwucG9pbnRzID0gdmFsaWRhdGVkTW9kZWwucG9pbnRzLnNsaWNlKDAsIGhvd01hbnlQb2ludHNTaG91bGRIYXZlKTtcbiAgICAgICAgdmFsaWRhdGVkTW9kZWwuc2FtcGxlQW5zd2VycyA9IHZhbGlkYXRlZE1vZGVsLnNhbXBsZUFuc3dlcnMuc2xpY2UoMCwgaG93TWFueVBvaW50c1Nob3VsZEhhdmUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB2YWxpZGF0ZWRNb2RlbDtcbiAgfTtcblxuICBzZXQgbW9kZWwobSkge1xuICAgIHRoaXMuX21vZGVsID0gdGhpcy51cGRhdGVNb2RlbEFjY29yZGluZ1RvUmVjZWl2ZWRQcm9wcyhtb2RlbFdpdGhEZWZhdWx0cyhtKSk7XG4gICAgdGhpcy5fcmVuZGVyKCk7XG4gIH1cblxuICBzZXQgY29uZmlndXJhdGlvbihjKSB7XG4gICAgdGhpcy5fY29uZmlndXJhdGlvbiA9IGNvbmZpZ3VyYXRpb25XaXRoRGVmYXVsdHMoYyk7XG4gICAgdGhpcy5fcmVuZGVyKCk7XG4gIH1cblxuICBvbk1vZGVsQ2hhbmdlZChtKSB7XG4gICAgdGhpcy5fbW9kZWwgPSB0aGlzLnVwZGF0ZU1vZGVsQWNjb3JkaW5nVG9SZWNlaXZlZFByb3BzKG0pO1xuICAgIHRoaXMuX3JlbmRlcigpO1xuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgTW9kZWxVcGRhdGVkRXZlbnQodGhpcy5fbW9kZWwsIGZhbHNlKSk7XG4gIH1cblxuICBvbkNvbmZpZ3VyYXRpb25DaGFuZ2VkID0gKGMpID0+IHtcbiAgICB0aGlzLl9jb25maWd1cmF0aW9uID0gY29uZmlndXJhdGlvbldpdGhEZWZhdWx0cyhjKTtcblxuICAgIGlmICh0aGlzLl9tb2RlbCkge1xuICAgICAgdGhpcy5vbk1vZGVsQ2hhbmdlZCh0aGlzLl9tb2RlbCk7XG4gICAgfVxuXG4gICAgdGhpcy5fcmVuZGVyKCk7XG4gIH07XG5cbiAgaW5zZXJ0SW1hZ2UoaGFuZGxlcikge1xuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgSW5zZXJ0SW1hZ2VFdmVudChoYW5kbGVyKSk7XG4gIH1cblxuICBvbkRlbGV0ZUltYWdlKHNyYywgZG9uZSkge1xuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRGVsZXRlSW1hZ2VFdmVudChzcmMsIGRvbmUpKTtcbiAgfVxuXG4gIGNvbm5lY3RlZENhbGxiYWNrKCkge1xuICAgIHRoaXMuX3JlbmRlcigpO1xuICB9XG5cbiAgX3JlbmRlcigpIHtcbiAgICBpZiAodGhpcy5fbW9kZWwpIHtcbiAgICAgIGxldCBlbGVtZW50ID0gUmVhY3QuY3JlYXRlRWxlbWVudChNYWluLCB7XG4gICAgICAgIG1vZGVsOiB0aGlzLl9tb2RlbCxcbiAgICAgICAgY29uZmlndXJhdGlvbjogdGhpcy5fY29uZmlndXJhdGlvbixcbiAgICAgICAgb25Nb2RlbENoYW5nZWQ6IHRoaXMub25Nb2RlbENoYW5nZWQsXG4gICAgICAgIG9uQ29uZmlndXJhdGlvbkNoYW5nZWQ6IHRoaXMub25Db25maWd1cmF0aW9uQ2hhbmdlZCxcbiAgICAgICAgaW1hZ2VTdXBwb3J0OiB7XG4gICAgICAgICAgYWRkOiB0aGlzLmluc2VydEltYWdlLmJpbmQodGhpcyksXG4gICAgICAgICAgZGVsZXRlOiB0aGlzLm9uRGVsZXRlSW1hZ2UuYmluZCh0aGlzKSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuXG4gICAgICBpZiAoIXRoaXMuX3Jvb3QpIHtcbiAgICAgICAgdGhpcy5fcm9vdCA9IGNyZWF0ZVJvb3QodGhpcyk7XG4gICAgICB9XG4gICAgICB0aGlzLl9yb290LnJlbmRlcihlbGVtZW50KTtcbiAgICB9XG4gIH1cblxuICBkaXNjb25uZWN0ZWRDYWxsYmFjaygpIHtcbiAgICBpZiAodGhpcy5fcm9vdCkge1xuICAgICAgdGhpcy5fcm9vdC51bm1vdW50KCk7XG4gICAgfVxuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEsSUFBQUEsbUJBQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLE9BQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLE1BQUEsR0FBQUYsc0JBQUEsQ0FBQUYsT0FBQTtBQUVBLElBQUFLLEtBQUEsR0FBQUgsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFNLFNBQUEsR0FBQUosc0JBQUEsQ0FBQUYsT0FBQTtBQUVBLE1BQU1PLGlCQUFpQixHQUFJQyxDQUFDLEtBQU07RUFBRSxHQUFHQyxpQkFBUSxDQUFDQyxLQUFLO0VBQUUsR0FBR0Y7QUFBRSxDQUFDLENBQUM7QUFFOUQsTUFBTUcseUJBQXlCLEdBQUlDLENBQUMsS0FBTTtFQUFFLEdBQUdILGlCQUFRLENBQUNJLGFBQWE7RUFBRSxHQUFHRDtBQUFFLENBQUMsQ0FBQztBQUUvRCxNQUFNRSxhQUFhLFNBQVNDLFdBQVcsQ0FBQztFQUNyREMsV0FBV0EsQ0FBQSxFQUFHO0lBQ1osS0FBSyxDQUFDLENBQUM7SUFBQyxJQUFBQyxnQkFBQSxDQUFBQyxPQUFBLCtDQVM2QkMsU0FBUyxJQUFLO01BQ25ELE1BQU1DLFlBQVksR0FBRztRQUFFLEdBQUcsSUFBSSxDQUFDQztNQUFPLENBQUM7TUFFdkMsSUFBSSxDQUFDRixTQUFTLEVBQUU7UUFDZCxPQUFPQyxZQUFZO01BQ3JCO01BRUEsTUFBTUUsY0FBYyxHQUFHO1FBQUUsR0FBR0g7TUFBVSxDQUFDOztNQUV2QztNQUNBLElBQUlHLGNBQWMsQ0FBQ0MsU0FBUyxLQUFLLENBQUMsRUFBRTtRQUNsQ0QsY0FBYyxDQUFDRSxXQUFXLEdBQUcsS0FBSztNQUNwQztNQUVBLE1BQU07UUFBRUQsU0FBUztRQUFFQztNQUFZLENBQUMsR0FBR0YsY0FBYyxJQUFJLENBQUMsQ0FBQztNQUV2REEsY0FBYyxDQUFDRyxNQUFNLEdBQUdILGNBQWMsQ0FBQ0csTUFBTSxHQUFHLENBQUMsR0FBR0gsY0FBYyxDQUFDRyxNQUFNLENBQUMsR0FBRyxFQUFFO01BQy9FSCxjQUFjLENBQUNJLGFBQWEsR0FBR0osY0FBYyxDQUFDSSxhQUFhLEdBQUcsQ0FBQyxHQUFHSixjQUFjLENBQUNJLGFBQWEsQ0FBQyxHQUFHLEVBQUU7TUFFcEcsTUFBTUMsdUJBQXVCLEdBQUdILFdBQVcsR0FBR0QsU0FBUyxHQUFHQSxTQUFTLEdBQUcsQ0FBQztNQUN2RSxNQUFNSyx1QkFBdUIsR0FBR04sY0FBYyxDQUFDRyxNQUFNLENBQUNJLE1BQU07TUFFNUQsTUFBTUMsa0JBQWtCLEdBQUdWLFlBQVksRUFBRUksV0FBVyxLQUFLTCxTQUFTLEVBQUVLLFdBQVc7TUFDL0UsTUFBTU8sZ0JBQWdCLEdBQUdYLFlBQVksRUFBRUcsU0FBUyxLQUFLSixTQUFTLEVBQUVJLFNBQVM7TUFFekUsSUFBSUssdUJBQXVCLEdBQUdELHVCQUF1QixFQUFFO1FBQ3JELElBQUlHLGtCQUFrQixJQUFJLENBQUNOLFdBQVcsRUFBRTtVQUN0Q0YsY0FBYyxDQUFDRyxNQUFNLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBR0gsY0FBYyxDQUFDRyxNQUFNLENBQUM7VUFDdERILGNBQWMsQ0FBQ0ksYUFBYSxHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUdKLGNBQWMsQ0FBQ0ksYUFBYSxDQUFDO1FBQ3hFO1FBRUEsSUFBSUssZ0JBQWdCLEVBQUU7VUFDcEIsS0FBSyxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxFQUFFQSxDQUFDLEdBQUdMLHVCQUF1QixHQUFHQyx1QkFBdUIsRUFBRUksQ0FBQyxFQUFFLEVBQUU7WUFDMUVWLGNBQWMsQ0FBQ0csTUFBTSxDQUFDUSxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQzlCWCxjQUFjLENBQUNJLGFBQWEsQ0FBQ08sSUFBSSxDQUFDLElBQUksQ0FBQztVQUN6QztRQUNGO01BQ0YsQ0FBQyxNQUFNLElBQUlMLHVCQUF1QixHQUFHRCx1QkFBdUIsRUFBRTtRQUM1RCxJQUFJRyxrQkFBa0IsSUFBSU4sV0FBVyxFQUFFO1VBQ3JDRixjQUFjLENBQUNHLE1BQU0sR0FBR0gsY0FBYyxDQUFDRyxNQUFNLENBQUNTLEtBQUssQ0FBQyxDQUFDLENBQUM7VUFDdERaLGNBQWMsQ0FBQ0ksYUFBYSxHQUFHSixjQUFjLENBQUNJLGFBQWEsQ0FBQ1EsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUN0RTtRQUVBLElBQUlILGdCQUFnQixFQUFFO1VBQ3BCVCxjQUFjLENBQUNHLE1BQU0sR0FBR0gsY0FBYyxDQUFDRyxNQUFNLENBQUNTLEtBQUssQ0FBQyxDQUFDLEVBQUVQLHVCQUF1QixDQUFDO1VBQy9FTCxjQUFjLENBQUNJLGFBQWEsR0FBR0osY0FBYyxDQUFDSSxhQUFhLENBQUNRLEtBQUssQ0FBQyxDQUFDLEVBQUVQLHVCQUF1QixDQUFDO1FBQy9GO01BQ0Y7TUFFQSxPQUFPTCxjQUFjO0lBQ3ZCLENBQUM7SUFBQSxJQUFBTCxnQkFBQSxDQUFBQyxPQUFBLGtDQWtCeUJOLENBQUMsSUFBSztNQUM5QixJQUFJLENBQUN1QixjQUFjLEdBQUd4Qix5QkFBeUIsQ0FBQ0MsQ0FBQyxDQUFDO01BRWxELElBQUksSUFBSSxDQUFDUyxNQUFNLEVBQUU7UUFDZixJQUFJLENBQUNlLGNBQWMsQ0FBQyxJQUFJLENBQUNmLE1BQU0sQ0FBQztNQUNsQztNQUVBLElBQUksQ0FBQ2dCLE9BQU8sQ0FBQyxDQUFDO0lBQ2hCLENBQUM7SUFwRkMsSUFBSSxDQUFDQyxLQUFLLEdBQUcsSUFBSTtJQUNqQkMsY0FBSyxDQUFDQyxHQUFHLENBQUMsb0JBQW9CLENBQUM7SUFDL0IsSUFBSSxDQUFDbkIsTUFBTSxHQUFHZCxpQkFBaUIsQ0FBQyxDQUFDO0lBQ2pDLElBQUksQ0FBQzRCLGNBQWMsR0FBR3hCLHlCQUF5QixDQUFDLENBQUM7SUFDakQsSUFBSSxDQUFDeUIsY0FBYyxHQUFHLElBQUksQ0FBQ0EsY0FBYyxDQUFDSyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ3BELElBQUksQ0FBQ0Msc0JBQXNCLEdBQUcsSUFBSSxDQUFDQSxzQkFBc0IsQ0FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQztFQUN0RTtFQXNEQSxJQUFJL0IsS0FBS0EsQ0FBQ0YsQ0FBQyxFQUFFO0lBQ1gsSUFBSSxDQUFDYSxNQUFNLEdBQUcsSUFBSSxDQUFDc0IsbUNBQW1DLENBQUNwQyxpQkFBaUIsQ0FBQ0MsQ0FBQyxDQUFDLENBQUM7SUFDNUUsSUFBSSxDQUFDNkIsT0FBTyxDQUFDLENBQUM7RUFDaEI7RUFFQSxJQUFJeEIsYUFBYUEsQ0FBQ0QsQ0FBQyxFQUFFO0lBQ25CLElBQUksQ0FBQ3VCLGNBQWMsR0FBR3hCLHlCQUF5QixDQUFDQyxDQUFDLENBQUM7SUFDbEQsSUFBSSxDQUFDeUIsT0FBTyxDQUFDLENBQUM7RUFDaEI7RUFFQUQsY0FBY0EsQ0FBQzVCLENBQUMsRUFBRTtJQUNoQixJQUFJLENBQUNhLE1BQU0sR0FBRyxJQUFJLENBQUNzQixtQ0FBbUMsQ0FBQ25DLENBQUMsQ0FBQztJQUN6RCxJQUFJLENBQUM2QixPQUFPLENBQUMsQ0FBQztJQUNkLElBQUksQ0FBQ08sYUFBYSxDQUFDLElBQUlDLHFDQUFpQixDQUFDLElBQUksQ0FBQ3hCLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztFQUMvRDtFQVlBeUIsV0FBV0EsQ0FBQ0MsT0FBTyxFQUFFO0lBQ25CLElBQUksQ0FBQ0gsYUFBYSxDQUFDLElBQUlJLG9DQUFnQixDQUFDRCxPQUFPLENBQUMsQ0FBQztFQUNuRDtFQUVBRSxhQUFhQSxDQUFDQyxHQUFHLEVBQUVDLElBQUksRUFBRTtJQUN2QixJQUFJLENBQUNQLGFBQWEsQ0FBQyxJQUFJUSxvQ0FBZ0IsQ0FBQ0YsR0FBRyxFQUFFQyxJQUFJLENBQUMsQ0FBQztFQUNyRDtFQUVBRSxpQkFBaUJBLENBQUEsRUFBRztJQUNsQixJQUFJLENBQUNoQixPQUFPLENBQUMsQ0FBQztFQUNoQjtFQUVBQSxPQUFPQSxDQUFBLEVBQUc7SUFDUixJQUFJLElBQUksQ0FBQ2hCLE1BQU0sRUFBRTtNQUNmLElBQUlpQyxPQUFPLGdCQUFHQyxjQUFLLENBQUNDLGFBQWEsQ0FBQ0MsYUFBSSxFQUFFO1FBQ3RDL0MsS0FBSyxFQUFFLElBQUksQ0FBQ1csTUFBTTtRQUNsQlIsYUFBYSxFQUFFLElBQUksQ0FBQ3NCLGNBQWM7UUFDbENDLGNBQWMsRUFBRSxJQUFJLENBQUNBLGNBQWM7UUFDbkNNLHNCQUFzQixFQUFFLElBQUksQ0FBQ0Esc0JBQXNCO1FBQ25EZ0IsWUFBWSxFQUFFO1VBQ1pDLEdBQUcsRUFBRSxJQUFJLENBQUNiLFdBQVcsQ0FBQ0wsSUFBSSxDQUFDLElBQUksQ0FBQztVQUNoQ21CLE1BQU0sRUFBRSxJQUFJLENBQUNYLGFBQWEsQ0FBQ1IsSUFBSSxDQUFDLElBQUk7UUFDdEM7TUFDRixDQUFDLENBQUM7TUFFRixJQUFJLENBQUMsSUFBSSxDQUFDSCxLQUFLLEVBQUU7UUFDZixJQUFJLENBQUNBLEtBQUssR0FBRyxJQUFBdUIsa0JBQVUsRUFBQyxJQUFJLENBQUM7TUFDL0I7TUFDQSxJQUFJLENBQUN2QixLQUFLLENBQUN3QixNQUFNLENBQUNSLE9BQU8sQ0FBQztJQUM1QjtFQUNGO0VBRUFTLG9CQUFvQkEsQ0FBQSxFQUFHO0lBQ3JCLElBQUksSUFBSSxDQUFDekIsS0FBSyxFQUFFO01BQ2QsSUFBSSxDQUFDQSxLQUFLLENBQUMwQixPQUFPLENBQUMsQ0FBQztJQUN0QjtFQUNGO0FBQ0Y7QUFBQ0MsT0FBQSxDQUFBL0MsT0FBQSxHQUFBSixhQUFBIiwiaWdub3JlTGlzdCI6W119
|