@pie-element/multiple-choice 9.19.0-beta.0 → 9.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/CHANGELOG.md +68 -2
  2. package/configure/CHANGELOG.md +61 -2
  3. package/configure/lib/defaults.js +1 -1
  4. package/configure/lib/defaults.js.map +1 -0
  5. package/configure/lib/index.js +2 -2
  6. package/configure/lib/index.js.map +1 -0
  7. package/configure/lib/main.js +7 -7
  8. package/configure/lib/main.js.map +1 -0
  9. package/configure/lib/utils.js +1 -1
  10. package/configure/lib/utils.js.map +1 -0
  11. package/configure/package.json +2 -4
  12. package/controller/CHANGELOG.md +61 -2
  13. package/controller/lib/defaults.js +1 -1
  14. package/controller/lib/defaults.js.map +1 -0
  15. package/controller/lib/index.js +2 -2
  16. package/controller/lib/index.js.map +1 -0
  17. package/controller/lib/utils.js +1 -1
  18. package/controller/lib/utils.js.map +1 -0
  19. package/controller/package.json +2 -2
  20. package/lib/choice-input.js +2 -2
  21. package/lib/choice-input.js.map +1 -0
  22. package/lib/choice.js +1 -1
  23. package/lib/choice.js.map +1 -0
  24. package/lib/feedback-tick.js +2 -2
  25. package/lib/feedback-tick.js.map +1 -0
  26. package/lib/index.js +22 -8
  27. package/lib/index.js.map +1 -0
  28. package/lib/main.js +2 -2
  29. package/lib/main.js.map +1 -0
  30. package/lib/multiple-choice.js +9 -6
  31. package/lib/multiple-choice.js.map +1 -0
  32. package/lib/print.js +2 -2
  33. package/lib/print.js.map +1 -0
  34. package/lib/session-updater.js +1 -1
  35. package/lib/session-updater.js.map +1 -0
  36. package/module/configure.js +11070 -0
  37. package/module/controller.js +3601 -0
  38. package/module/demo.js +86 -0
  39. package/module/element.js +13461 -0
  40. package/module/index.html +21 -0
  41. package/module/manifest.json +14 -0
  42. package/module/print-demo.js +124 -0
  43. package/module/print.html +18 -0
  44. package/module/print.js +13207 -0
  45. package/package.json +3 -6
  46. package/configure/lib/__tests__/root.test.js +0 -271
  47. package/controller/lib/__tests__/index.test.js +0 -867
  48. package/controller/lib/__tests__/utils.test.js +0 -8
  49. package/docs/demo/pie.manifest.json +0 -11
  50. package/lib/__tests__/choice-input-test.js +0 -131
  51. package/lib/__tests__/index-test.js +0 -183
  52. package/lib/__tests__/key-events-test.js +0 -98
  53. package/lib/__tests__/multiple-choice-test.js +0 -235
  54. package/lib/__tests__/session-updater-test.js +0 -72
@@ -1,235 +0,0 @@
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 _react = _interopRequireDefault(require("react"));
8
-
9
- var _enzyme = require("enzyme");
10
-
11
- var _multipleChoice = require("../multiple-choice");
12
-
13
- var _correctAnswerToggle = _interopRequireDefault(require("@pie-lib/correct-answer-toggle"));
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
- describe('Choice', function () {
20
- var wrapper,
21
- onChoiceChanged = jest.fn();
22
- beforeEach(function () {
23
- wrapper = function wrapper(extras) {
24
- var props = _objectSpread({
25
- classes: {},
26
- choice: {},
27
- index: 0,
28
- choicesLength: 1,
29
- showCorrect: false,
30
- isEvaluateMode: false,
31
- choiceMode: 'radio',
32
- disabled: true,
33
- onChoiceChanged: onChoiceChanged,
34
- checked: true,
35
- correctness: 'correct',
36
- displayKey: '0',
37
- choicesLayout: 'grid',
38
- gridColumns: 2
39
- }, extras);
40
-
41
- return (0, _enzyme.shallow)( /*#__PURE__*/_react["default"].createElement(_multipleChoice.Choice, props));
42
- };
43
- });
44
- describe('snapshot', function () {
45
- it('renders', function () {
46
- expect(wrapper()).toMatchSnapshot();
47
- });
48
- });
49
- describe('logic', function () {
50
- it('does not call onChoiceChanged if disabled is true', function () {
51
- var w = wrapper();
52
- w.instance().onChange();
53
- expect(onChoiceChanged).not.toHaveBeenCalled();
54
- });
55
- it('calls onChoiceChanged if disabled is false', function () {
56
- var w = wrapper({
57
- disabled: false
58
- });
59
- w.instance().onChange();
60
- expect(onChoiceChanged).toHaveBeenCalled();
61
- });
62
- });
63
- });
64
- describe('CorespringChoice', function () {
65
- var wrapper, toggle;
66
- beforeEach(function () {
67
- toggle = function toggle() {
68
- return /*#__PURE__*/_react["default"].createElement("div", null, "mocked-toggle");
69
- };
70
- });
71
-
72
- var mkWrapper = function mkWrapper(opts) {
73
- var clone = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
74
- opts = clone ? _objectSpread({
75
- classes: {},
76
- choices: [],
77
- disabled: false,
78
- keyMode: 'letters',
79
- onChoiceChanged: jest.fn(),
80
- mode: 'gather'
81
- }, opts) : opts;
82
- return (0, _enzyme.shallow)( /*#__PURE__*/_react["default"].createElement(_multipleChoice.MultipleChoice, opts));
83
- };
84
-
85
- describe('snapshot', function () {
86
- it('renders', function () {
87
- wrapper = mkWrapper({
88
- choices: [{
89
- value: 'a',
90
- label: 'label a',
91
- correct: true,
92
- feedback: 'great'
93
- }, {
94
- value: 'b',
95
- label: 'label b'
96
- }, {
97
- value: 'c',
98
- label: 'label c',
99
- correct: true,
100
- feedback: 'great'
101
- }]
102
- });
103
- expect(wrapper).toMatchSnapshot();
104
- });
105
- describe('renders incorrect tick if one answer is correct but it is not checked', function () {
106
- it('renders', function () {
107
- var w = mkWrapper({
108
- mode: 'evaluate',
109
- keyMode: 'none',
110
- choices: [{
111
- value: 'a',
112
- label: 'label a',
113
- correct: true,
114
- feedback: 'great'
115
- }, {
116
- value: 'b',
117
- label: 'label b'
118
- }, {
119
- value: 'c',
120
- label: 'label c',
121
- correct: true,
122
- feedback: 'great'
123
- }],
124
- session: {
125
- value: ['a']
126
- }
127
- });
128
- expect(w).toMatchSnapshot();
129
- });
130
- });
131
- describe('getCorrectness', function () {
132
- var itemChoices = [{
133
- value: 'a',
134
- label: 'label a',
135
- correct: true,
136
- feedback: 'great'
137
- }, {
138
- value: 'b',
139
- label: 'label b'
140
- }, {
141
- value: 'c',
142
- label: 'label c',
143
- feedback: 'great'
144
- }, {
145
- value: 'd',
146
- label: 'label d',
147
- correct: true,
148
- feedback: 'great'
149
- }];
150
- var w = mkWrapper({
151
- mode: 'evaluate',
152
- choices: itemChoices,
153
- session: {
154
- value: ['a', 'c']
155
- }
156
- });
157
- describe('showCorrectToggle disabled (state.showCorrect is false)', function () {
158
- it('shows choice correctness only if was checked', function () {
159
- // this one was selected and is correct
160
- expect(w.instance().getCorrectness(itemChoices[0])).toEqual('correct'); // this one was not selected and is incorrect
161
-
162
- expect(w.instance().getCorrectness(itemChoices[1])).toEqual(undefined); // this one was selected, but is incorrect
163
-
164
- expect(w.instance().getCorrectness(itemChoices[2])).toEqual('incorrect'); // this one was not selected and is correct
165
-
166
- expect(w.instance().getCorrectness(itemChoices[3])).toEqual('incorrect');
167
- });
168
- });
169
- describe('showCorrectToggle enabled (state.showCorrect is true)', function () {
170
- it('shows choice correctness no matter if was checked or not', function () {
171
- w.instance().state.showCorrect = true; // this one is correct
172
-
173
- expect(w.instance().getCorrectness(itemChoices[0])).toEqual('correct'); // this one is not correct
174
-
175
- expect(w.instance().getCorrectness(itemChoices[1])).toEqual(undefined); // this one is not correct
176
-
177
- expect(w.instance().getCorrectness(itemChoices[2])).toEqual(undefined); // this one is correct
178
-
179
- expect(w.instance().getCorrectness(itemChoices[3])).toEqual('correct');
180
- });
181
- });
182
- });
183
- describe('onToggle', function () {
184
- it('toggles the state', function () {
185
- var w = mkWrapper({
186
- mode: 'evaluate'
187
- });
188
- expect(w.state('showCorrect')).toEqual(false);
189
- w.instance().onToggle();
190
- expect(w.state('showCorrect')).toEqual(true);
191
- });
192
- });
193
- describe('Toggle', function () {
194
- it('toggle is rendered', function () {
195
- var t = mkWrapper().find(_correctAnswerToggle["default"]);
196
- expect(t.length).toEqual(1);
197
- });
198
- it('toggle show is set to false', function () {
199
- expect(mkWrapper().find(_correctAnswerToggle["default"]).prop('show')).toEqual(false);
200
- });
201
- it('shows toggle if mode is evaluate, feedback is enabled and responseCorrect is false', function () {
202
- expect(mkWrapper({
203
- mode: 'evaluate',
204
- responseCorrect: false,
205
- feedbackEnabled: true
206
- }).find(_correctAnswerToggle["default"]).prop('show')).toEqual(true);
207
- });
208
- it('hides toggle if mode is evaluate and responseCorrect is false', function () {
209
- expect(mkWrapper({
210
- mode: 'evaluate',
211
- responseCorrect: true
212
- }).find(_correctAnswerToggle["default"]).prop('show')).toEqual(false);
213
- });
214
- it('not toggled if showCorrect is false', function () {
215
- var w = mkWrapper({
216
- mode: 'evaluate'
217
- });
218
- w.setState({
219
- showCorrect: false
220
- });
221
- expect(w.find(_correctAnswerToggle["default"]).prop('toggled')).toEqual(false);
222
- });
223
- it('is toggled showCorrect=true && mode=evaluate', function () {
224
- var w = mkWrapper({
225
- mode: 'evaluate'
226
- });
227
- w.setState({
228
- showCorrect: true
229
- });
230
- expect(w.find(_correctAnswerToggle["default"]).prop('toggled')).toEqual(true);
231
- });
232
- });
233
- });
234
- });
235
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vbXVsdGlwbGUtY2hvaWNlLXRlc3QuanN4Il0sIm5hbWVzIjpbImRlc2NyaWJlIiwid3JhcHBlciIsIm9uQ2hvaWNlQ2hhbmdlZCIsImplc3QiLCJmbiIsImJlZm9yZUVhY2giLCJleHRyYXMiLCJwcm9wcyIsImNsYXNzZXMiLCJjaG9pY2UiLCJpbmRleCIsImNob2ljZXNMZW5ndGgiLCJzaG93Q29ycmVjdCIsImlzRXZhbHVhdGVNb2RlIiwiY2hvaWNlTW9kZSIsImRpc2FibGVkIiwiY2hlY2tlZCIsImNvcnJlY3RuZXNzIiwiZGlzcGxheUtleSIsImNob2ljZXNMYXlvdXQiLCJncmlkQ29sdW1ucyIsIml0IiwiZXhwZWN0IiwidG9NYXRjaFNuYXBzaG90IiwidyIsImluc3RhbmNlIiwib25DaGFuZ2UiLCJub3QiLCJ0b0hhdmVCZWVuQ2FsbGVkIiwidG9nZ2xlIiwibWtXcmFwcGVyIiwib3B0cyIsImNsb25lIiwiY2hvaWNlcyIsImtleU1vZGUiLCJtb2RlIiwidmFsdWUiLCJsYWJlbCIsImNvcnJlY3QiLCJmZWVkYmFjayIsInNlc3Npb24iLCJpdGVtQ2hvaWNlcyIsImdldENvcnJlY3RuZXNzIiwidG9FcXVhbCIsInVuZGVmaW5lZCIsInN0YXRlIiwib25Ub2dnbGUiLCJ0IiwiZmluZCIsIkNvcnJlY3RBbnN3ZXJUb2dnbGUiLCJsZW5ndGgiLCJwcm9wIiwicmVzcG9uc2VDb3JyZWN0IiwiZmVlZGJhY2tFbmFibGVkIiwic2V0U3RhdGUiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOzs7Ozs7QUFFQUEsUUFBUSxDQUFDLFFBQUQsRUFBVyxZQUFNO0FBQ3ZCLE1BQUlDLE9BQUo7QUFBQSxNQUNFQyxlQUFlLEdBQUdDLElBQUksQ0FBQ0MsRUFBTCxFQURwQjtBQUdBQyxFQUFBQSxVQUFVLENBQUMsWUFBTTtBQUNmSixJQUFBQSxPQUFPLEdBQUcsaUJBQUNLLE1BQUQsRUFBWTtBQUNwQixV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QVUsUUFBQUEsTUFBTSxDQUFDRSxDQUFDLENBQUN3QixJQUFGLENBQU9DLCtCQUFQLEVBQTRCRSxJQUE1QixDQUFpQyxTQUFqQyxDQUFELENBQU4sQ0FBb0RSLE9BQXBELENBQTRELEtBQTVEO0FBQ0QsT0FKQyxDQUFGO0FBTUF0QixNQUFBQSxFQUFFLENBQUMsOENBQUQsRUFBaUQsWUFBTTtBQUN2RCxZQUFJRyxDQUFDLEdBQUdNLFNBQVMsQ0FBQztBQUFFSyxVQUFBQSxJQUFJLEVBQUU7QUFBUixTQUFELENBQWpCO0FBQ0FYLFFBQUFBLENBQUMsQ0FBQzhCLFFBQUYsQ0FBVztBQUFFMUMsVUFBQUEsV0FBVyxFQUFFO0FBQWYsU0FBWDtBQUNBVSxRQUFBQSxNQUFNLENBQUNFLENBQUMsQ0FBQ3dCLElBQUYsQ0FBT0MsK0JBQVAsRUFBNEJFLElBQTVCLENBQWlDLFNBQWpDLENBQUQsQ0FBTixDQUFvRFIsT0FBcEQsQ0FBNEQsSUFBNUQ7QUFDRCxPQUpDLENBQUY7QUFLRCxLQW5DTyxDQUFSO0FBb0NELEdBekhPLENBQVI7QUEwSEQsQ0FuSk8sQ0FBUiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBzaGFsbG93IH0gZnJvbSAnZW56eW1lJztcbmltcG9ydCB7IE11bHRpcGxlQ2hvaWNlLCBDaG9pY2UgfSBmcm9tICcuLi9tdWx0aXBsZS1jaG9pY2UnO1xuaW1wb3J0IENvcnJlY3RBbnN3ZXJUb2dnbGUgZnJvbSAnQHBpZS1saWIvY29ycmVjdC1hbnN3ZXItdG9nZ2xlJztcblxuZGVzY3JpYmUoJ0Nob2ljZScsICgpID0+IHtcbiAgbGV0IHdyYXBwZXIsXG4gICAgb25DaG9pY2VDaGFuZ2VkID0gamVzdC5mbigpO1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIHdyYXBwZXIgPSAoZXh0cmFzKSA9PiB7XG4gICAgICBjb25zdCBwcm9wcyA9IHtcbiAgICAgICAgY2xhc3Nlczoge30sXG4gICAgICAgIGNob2ljZToge30sXG4gICAgICAgIGluZGV4OiAwLFxuICAgICAgICBjaG9pY2VzTGVuZ3RoOiAxLFxuICAgICAgICBzaG93Q29ycmVjdDogZmFsc2UsXG4gICAgICAgIGlzRXZhbHVhdGVNb2RlOiBmYWxzZSxcbiAgICAgICAgY2hvaWNlTW9kZTogJ3JhZGlvJyxcbiAgICAgICAgZGlzYWJsZWQ6IHRydWUsXG4gICAgICAgIG9uQ2hvaWNlQ2hhbmdlZCxcbiAgICAgICAgY2hlY2tlZDogdHJ1ZSxcbiAgICAgICAgY29ycmVjdG5lc3M6ICdjb3JyZWN0JyxcbiAgICAgICAgZGlzcGxheUtleTogJzAnLFxuICAgICAgICBjaG9pY2VzTGF5b3V0OiAnZ3JpZCcsXG4gICAgICAgIGdyaWRDb2x1bW5zOiAyLFxuICAgICAgICAuLi5leHRyYXMsXG4gICAgICB9O1xuICAgICAgcmV0dXJuIHNoYWxsb3coPENob2ljZSB7Li4ucHJvcHN9IC8+KTtcbiAgICB9O1xuICB9KTtcblxuICBkZXNjcmliZSgnc25hcHNob3QnLCAoKSA9PiB7XG4gICAgaXQoJ3JlbmRlcnMnLCAoKSA9PiB7XG4gICAgICBleHBlY3Qod3JhcHBlcigpKS50b01hdGNoU25hcHNob3QoKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2xvZ2ljJywgKCkgPT4ge1xuICAgIGl0KCdkb2VzIG5vdCBjYWxsIG9uQ2hvaWNlQ2hhbmdlZCBpZiBkaXNhYmxlZCBpcyB0cnVlJywgKCkgPT4ge1xuICAgICAgbGV0IHcgPSB3cmFwcGVyKCk7XG5cbiAgICAgIHcuaW5zdGFuY2UoKS5vbkNoYW5nZSgpO1xuXG4gICAgICBleHBlY3Qob25DaG9pY2VDaGFuZ2VkKS5ub3QudG9IYXZlQmVlbkNhbGxlZCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2NhbGxzIG9uQ2hvaWNlQ2hhbmdlZCBpZiBkaXNhYmxlZCBpcyBmYWxzZScsICgpID0+IHtcbiAgICAgIGxldCB3ID0gd3JhcHBlcih7IGRpc2FibGVkOiBmYWxzZSB9KTtcblxuICAgICAgdy5pbnN0YW5jZSgpLm9uQ2hhbmdlKCk7XG5cbiAgICAgIGV4cGVjdChvbkNob2ljZUNoYW5nZWQpLnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcblxuZGVzY3JpYmUoJ0NvcmVzcHJpbmdDaG9pY2UnLCAoKSA9PiB7XG4gIGxldCB3cmFwcGVyLCB0b2dnbGU7XG5cbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgdG9nZ2xlID0gKCkgPT4ge1xuICAgICAgcmV0dXJuIDxkaXY+bW9ja2VkLXRvZ2dsZTwvZGl2PjtcbiAgICB9O1xuICB9KTtcblxuICBsZXQgbWtXcmFwcGVyID0gKG9wdHMsIGNsb25lID0gdHJ1ZSkgPT4ge1xuICAgIG9wdHMgPSBjbG9uZVxuICAgICAgPyB7XG4gICAgICAgIGNsYXNzZXM6IHt9LFxuICAgICAgICBjaG9pY2VzOiBbXSxcbiAgICAgICAgZGlzYWJsZWQ6IGZhbHNlLFxuICAgICAgICBrZXlNb2RlOiAnbGV0dGVycycsXG4gICAgICAgIG9uQ2hvaWNlQ2hhbmdlZDogamVzdC5mbigpLFxuICAgICAgICBtb2RlOiAnZ2F0aGVyJyxcbiAgICAgICAgLi4ub3B0c1xuICAgICAgfVxuICAgICAgOiBvcHRzO1xuXG4gICAgcmV0dXJuIHNoYWxsb3coPE11bHRpcGxlQ2hvaWNlIHsuLi5vcHRzfSAvPik7XG4gIH07XG5cbiAgZGVzY3JpYmUoJ3NuYXBzaG90JywgKCkgPT4ge1xuICAgIGl0KCdyZW5kZXJzJywgKCkgPT4ge1xuICAgICAgd3JhcHBlciA9IG1rV3JhcHBlcih7XG4gICAgICAgIGNob2ljZXM6IFtcbiAgICAgICAgICB7IHZhbHVlOiAnYScsIGxhYmVsOiAnbGFiZWwgYScsIGNvcnJlY3Q6IHRydWUsIGZlZWRiYWNrOiAnZ3JlYXQnIH0sXG4gICAgICAgICAgeyB2YWx1ZTogJ2InLCBsYWJlbDogJ2xhYmVsIGInIH0sXG4gICAgICAgICAgeyB2YWx1ZTogJ2MnLCBsYWJlbDogJ2xhYmVsIGMnLCBjb3JyZWN0OiB0cnVlLCBmZWVkYmFjazogJ2dyZWF0JyB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdCh3cmFwcGVyKS50b01hdGNoU25hcHNob3QoKTtcbiAgICB9KTtcblxuICAgIGRlc2NyaWJlKCdyZW5kZXJzIGluY29ycmVjdCB0aWNrIGlmIG9uZSBhbnN3ZXIgaXMgY29ycmVjdCBidXQgaXQgaXMgbm90IGNoZWNrZWQnLCAoKSA9PiB7XG4gICAgICBpdCgncmVuZGVycycsICgpID0+IHtcbiAgICAgICAgbGV0IHcgPSBta1dyYXBwZXIoe1xuICAgICAgICAgIG1vZGU6ICdldmFsdWF0ZScsXG4gICAgICAgICAga2V5TW9kZTogJ25vbmUnLFxuICAgICAgICAgIGNob2ljZXM6IFtcbiAgICAgICAgICAgIHsgdmFsdWU6ICdhJywgbGFiZWw6ICdsYWJlbCBhJywgY29ycmVjdDogdHJ1ZSwgZmVlZGJhY2s6ICdncmVhdCcgfSxcbiAgICAgICAgICAgIHsgdmFsdWU6ICdiJywgbGFiZWw6ICdsYWJlbCBiJyB9LFxuICAgICAgICAgICAgeyB2YWx1ZTogJ2MnLCBsYWJlbDogJ2xhYmVsIGMnLCBjb3JyZWN0OiB0cnVlLCBmZWVkYmFjazogJ2dyZWF0JyB9LFxuICAgICAgICAgIF0sXG4gICAgICAgICAgc2Vzc2lvbjoge1xuICAgICAgICAgICAgdmFsdWU6IFsnYSddLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGV4cGVjdCh3KS50b01hdGNoU25hcHNob3QoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgZGVzY3JpYmUoJ2dldENvcnJlY3RuZXNzJywgKCkgPT4ge1xuICAgICAgbGV0IGl0ZW1DaG9pY2VzID0gW1xuICAgICAgICB7IHZhbHVlOiAnYScsIGxhYmVsOiAnbGFiZWwgYScsIGNvcnJlY3Q6IHRydWUsIGZlZWRiYWNrOiAnZ3JlYXQnIH0sXG4gICAgICAgIHsgdmFsdWU6ICdiJywgbGFiZWw6ICdsYWJlbCBiJyB9LFxuICAgICAgICB7IHZhbHVlOiAnYycsIGxhYmVsOiAnbGFiZWwgYycsIGZlZWRiYWNrOiAnZ3JlYXQnIH0sXG4gICAgICAgIHsgdmFsdWU6ICdkJywgbGFiZWw6ICdsYWJlbCBkJywgY29ycmVjdDogdHJ1ZSwgZmVlZGJhY2s6ICdncmVhdCcgfSxcbiAgICAgIF07XG4gICAgICBsZXQgdyA9IG1rV3JhcHBlcih7XG4gICAgICAgIG1vZGU6ICdldmFsdWF0ZScsXG4gICAgICAgIGNob2ljZXM6IGl0ZW1DaG9pY2VzLFxuICAgICAgICBzZXNzaW9uOiB7XG4gICAgICAgICAgdmFsdWU6IFsnYScsICdjJ10sXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgZGVzY3JpYmUoJ3Nob3dDb3JyZWN0VG9nZ2xlIGRpc2FibGVkIChzdGF0ZS5zaG93Q29ycmVjdCBpcyBmYWxzZSknLCAoKSA9PiB7XG4gICAgICAgIGl0KCdzaG93cyBjaG9pY2UgY29ycmVjdG5lc3Mgb25seSBpZiB3YXMgY2hlY2tlZCcsICgpID0+IHtcbiAgICAgICAgICAvLyB0aGlzIG9uZSB3YXMgc2VsZWN0ZWQgYW5kIGlzIGNvcnJlY3RcbiAgICAgICAgICBleHBlY3Qody5pbnN0YW5jZSgpLmdldENvcnJlY3RuZXNzKGl0ZW1DaG9pY2VzWzBdKSkudG9FcXVhbCgnY29ycmVjdCcpO1xuICAgICAgICAgIC8vIHRoaXMgb25lIHdhcyBub3Qgc2VsZWN0ZWQgYW5kIGlzIGluY29ycmVjdFxuICAgICAgICAgIGV4cGVjdCh3Lmluc3RhbmNlKCkuZ2V0Q29ycmVjdG5lc3MoaXRlbUNob2ljZXNbMV0pKS50b0VxdWFsKHVuZGVmaW5lZCk7XG4gICAgICAgICAgLy8gdGhpcyBvbmUgd2FzIHNlbGVjdGVkLCBidXQgaXMgaW5jb3JyZWN0XG4gICAgICAgICAgZXhwZWN0KHcuaW5zdGFuY2UoKS5nZXRDb3JyZWN0bmVzcyhpdGVtQ2hvaWNlc1syXSkpLnRvRXF1YWwoJ2luY29ycmVjdCcpO1xuICAgICAgICAgIC8vIHRoaXMgb25lIHdhcyBub3Qgc2VsZWN0ZWQgYW5kIGlzIGNvcnJlY3RcbiAgICAgICAgICBleHBlY3Qody5pbnN0YW5jZSgpLmdldENvcnJlY3RuZXNzKGl0ZW1DaG9pY2VzWzNdKSkudG9FcXVhbCgnaW5jb3JyZWN0Jyk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG5cbiAgICAgIGRlc2NyaWJlKCdzaG93Q29ycmVjdFRvZ2dsZSBlbmFibGVkIChzdGF0ZS5zaG93Q29ycmVjdCBpcyB0cnVlKScsICgpID0+IHtcbiAgICAgICAgaXQoJ3Nob3dzIGNob2ljZSBjb3JyZWN0bmVzcyBubyBtYXR0ZXIgaWYgd2FzIGNoZWNrZWQgb3Igbm90JywgKCkgPT4ge1xuICAgICAgICAgIHcuaW5zdGFuY2UoKS5zdGF0ZS5zaG93Q29ycmVjdCA9IHRydWU7XG5cbiAgICAgICAgICAvLyB0aGlzIG9uZSBpcyBjb3JyZWN0XG4gICAgICAgICAgZXhwZWN0KHcuaW5zdGFuY2UoKS5nZXRDb3JyZWN0bmVzcyhpdGVtQ2hvaWNlc1swXSkpLnRvRXF1YWwoJ2NvcnJlY3QnKTtcbiAgICAgICAgICAvLyB0aGlzIG9uZSBpcyBub3QgY29ycmVjdFxuICAgICAgICAgIGV4cGVjdCh3Lmluc3RhbmNlKCkuZ2V0Q29ycmVjdG5lc3MoaXRlbUNob2ljZXNbMV0pKS50b0VxdWFsKHVuZGVmaW5lZCk7XG4gICAgICAgICAgLy8gdGhpcyBvbmUgaXMgbm90IGNvcnJlY3RcbiAgICAgICAgICBleHBlY3Qody5pbnN0YW5jZSgpLmdldENvcnJlY3RuZXNzKGl0ZW1DaG9pY2VzWzJdKSkudG9FcXVhbCh1bmRlZmluZWQpO1xuICAgICAgICAgIC8vIHRoaXMgb25lIGlzIGNvcnJlY3RcbiAgICAgICAgICBleHBlY3Qody5pbnN0YW5jZSgpLmdldENvcnJlY3RuZXNzKGl0ZW1DaG9pY2VzWzNdKSkudG9FcXVhbCgnY29ycmVjdCcpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgZGVzY3JpYmUoJ29uVG9nZ2xlJywgKCkgPT4ge1xuICAgICAgaXQoJ3RvZ2dsZXMgdGhlIHN0YXRlJywgKCkgPT4ge1xuICAgICAgICBsZXQgdyA9IG1rV3JhcHBlcih7IG1vZGU6ICdldmFsdWF0ZScgfSk7XG4gICAgICAgIGV4cGVjdCh3LnN0YXRlKCdzaG93Q29ycmVjdCcpKS50b0VxdWFsKGZhbHNlKTtcbiAgICAgICAgdy5pbnN0YW5jZSgpLm9uVG9nZ2xlKCk7XG4gICAgICAgIGV4cGVjdCh3LnN0YXRlKCdzaG93Q29ycmVjdCcpKS50b0VxdWFsKHRydWUpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBkZXNjcmliZSgnVG9nZ2xlJywgKCkgPT4ge1xuICAgICAgaXQoJ3RvZ2dsZSBpcyByZW5kZXJlZCcsICgpID0+IHtcbiAgICAgICAgY29uc3QgdCA9IG1rV3JhcHBlcigpLmZpbmQoQ29ycmVjdEFuc3dlclRvZ2dsZSk7XG4gICAgICAgIGV4cGVjdCh0Lmxlbmd0aCkudG9FcXVhbCgxKTtcbiAgICAgIH0pO1xuXG4gICAgICBpdCgndG9nZ2xlIHNob3cgaXMgc2V0IHRvIGZhbHNlJywgKCkgPT4ge1xuICAgICAgICBleHBlY3QobWtXcmFwcGVyKCkuZmluZChDb3JyZWN0QW5zd2VyVG9nZ2xlKS5wcm9wKCdzaG93JykpLnRvRXF1YWwoZmFsc2UpO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KCdzaG93cyB0b2dnbGUgaWYgbW9kZSBpcyBldmFsdWF0ZSwgZmVlZGJhY2sgaXMgZW5hYmxlZCBhbmQgcmVzcG9uc2VDb3JyZWN0IGlzIGZhbHNlJywgKCkgPT4ge1xuICAgICAgICBleHBlY3QoXG4gICAgICAgICAgbWtXcmFwcGVyKHsgbW9kZTogJ2V2YWx1YXRlJywgcmVzcG9uc2VDb3JyZWN0OiBmYWxzZSwgZmVlZGJhY2tFbmFibGVkOiB0cnVlIH0pXG4gICAgICAgICAgICAuZmluZChDb3JyZWN0QW5zd2VyVG9nZ2xlKVxuICAgICAgICAgICAgLnByb3AoJ3Nob3cnKSxcbiAgICAgICAgKS50b0VxdWFsKHRydWUpO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KCdoaWRlcyB0b2dnbGUgaWYgbW9kZSBpcyBldmFsdWF0ZSBhbmQgcmVzcG9uc2VDb3JyZWN0IGlzIGZhbHNlJywgKCkgPT4ge1xuICAgICAgICBleHBlY3QobWtXcmFwcGVyKHsgbW9kZTogJ2V2YWx1YXRlJywgcmVzcG9uc2VDb3JyZWN0OiB0cnVlIH0pLmZpbmQoQ29ycmVjdEFuc3dlclRvZ2dsZSkucHJvcCgnc2hvdycpKS50b0VxdWFsKFxuICAgICAgICAgIGZhbHNlLFxuICAgICAgICApO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KCdub3QgdG9nZ2xlZCBpZiBzaG93Q29ycmVjdCBpcyBmYWxzZScsICgpID0+IHtcbiAgICAgICAgbGV0IHcgPSBta1dyYXBwZXIoeyBtb2RlOiAnZXZhbHVhdGUnIH0pO1xuICAgICAgICB3LnNldFN0YXRlKHsgc2hvd0NvcnJlY3Q6IGZhbHNlIH0pO1xuICAgICAgICBleHBlY3Qody5maW5kKENvcnJlY3RBbnN3ZXJUb2dnbGUpLnByb3AoJ3RvZ2dsZWQnKSkudG9FcXVhbChmYWxzZSk7XG4gICAgICB9KTtcblxuICAgICAgaXQoJ2lzIHRvZ2dsZWQgc2hvd0NvcnJlY3Q9dHJ1ZSAmJiBtb2RlPWV2YWx1YXRlJywgKCkgPT4ge1xuICAgICAgICBsZXQgdyA9IG1rV3JhcHBlcih7IG1vZGU6ICdldmFsdWF0ZScgfSk7XG4gICAgICAgIHcuc2V0U3RhdGUoeyBzaG93Q29ycmVjdDogdHJ1ZSB9KTtcbiAgICAgICAgZXhwZWN0KHcuZmluZChDb3JyZWN0QW5zd2VyVG9nZ2xlKS5wcm9wKCd0b2dnbGVkJykpLnRvRXF1YWwodHJ1ZSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
@@ -1,72 +0,0 @@
1
- "use strict";
2
-
3
- var _sessionUpdater = require("../session-updater");
4
-
5
- describe('session-updater', function () {
6
- var updater;
7
- beforeEach(function () {});
8
- describe('updateSessionValue', function () {
9
- var assert = function assert(mode, session, data, expected) {
10
- return function () {
11
- (0, _sessionUpdater.updateSessionValue)(session, mode, data);
12
- expect(session.value).toEqual(expected);
13
- };
14
- };
15
-
16
- describe('checkbox', function () {
17
- var cb = assert.bind(null, 'checkbox');
18
- it('adds 1', cb({
19
- value: []
20
- }, {
21
- value: '1',
22
- selected: true
23
- }, ['1']));
24
- it('removes 1', cb({
25
- value: ['1']
26
- }, {
27
- value: '1',
28
- selected: false
29
- }, []));
30
- it('adds 2', cb({
31
- value: ['1']
32
- }, {
33
- value: '2',
34
- selected: true
35
- }, ['1', '2']));
36
- it('does not add duplicate 1', cb({
37
- value: ['1']
38
- }, {
39
- value: '1',
40
- selected: true
41
- }, ['1']));
42
- it('does not remove if not in arrary', cb({
43
- value: ['1']
44
- }, {
45
- value: '2',
46
- selected: false
47
- }, ['1']));
48
- });
49
- describe('radio', function () {
50
- var cb = assert.bind(null, 'radio');
51
- it('adds 1', cb({
52
- value: []
53
- }, {
54
- value: '1',
55
- selected: true
56
- }, ['1']));
57
- it('adds 2', cb({
58
- value: ['1']
59
- }, {
60
- value: '2',
61
- selected: true
62
- }, ['2']));
63
- it('does not add duplicate 1', cb({
64
- value: ['1']
65
- }, {
66
- value: '1',
67
- selected: true
68
- }, ['1']));
69
- });
70
- });
71
- });
72
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vc2Vzc2lvbi11cGRhdGVyLXRlc3QuanN4Il0sIm5hbWVzIjpbImRlc2NyaWJlIiwidXBkYXRlciIsImJlZm9yZUVhY2giLCJhc3NlcnQiLCJtb2RlIiwic2Vzc2lvbiIsImRhdGEiLCJleHBlY3RlZCIsImV4cGVjdCIsInZhbHVlIiwidG9FcXVhbCIsImNiIiwiYmluZCIsIml0Iiwic2VsZWN0ZWQiXSwibWFwcGluZ3MiOiI7O0FBQUE7O0FBRUFBLFFBQVEsQ0FBQyxpQkFBRCxFQUFvQixZQUFNO0FBQ2hDLE1BQUlDLE9BQUo7QUFFQUMsRUFBQUEsVUFBVSxDQUFDLFlBQU0sQ0FBRSxDQUFULENBQVY7QUFFQUYsRUFBQUEsUUFBUSxDQUFDLG9CQUFELEVBQXVCLFlBQU07QUFDbkMsUUFBTUcsTUFBTSxHQUFHLFNBQVRBLE1BQVMsQ0FBQ0MsSUFBRCxFQUFPQyxPQUFQLEVBQWdCQyxJQUFoQixFQUFzQkMsUUFBdEIsRUFBbUM7QUFDaEQsYUFBTyxZQUFNO0FBQ1gsZ0RBQW1CRixPQUFuQixFQUE0QkQsSUFBNUIsRUFBa0NFLElBQWxDO0FBQ0FFLFFBQUFBLE1BQU0sQ0FBQ0gsT0FBTyxDQUFDSSxLQUFULENBQU4sQ0FBc0JDLE9BQXRCLENBQThCSCxRQUE5QjtBQUNELE9BSEQ7QUFJRCxLQUxEOztBQU9BUCxJQUFBQSxRQUFRLENBQUMsVUFBRCxFQUFhLFlBQU07QUFDekIsVUFBTVcsRUFBRSxHQUFHUixNQUFNLENBQUNTLElBQVAsQ0FBWSxJQUFaLEVBQWtCLFVBQWxCLENBQVg7QUFDQUMsTUFBQUEsRUFBRSxDQUFDLFFBQUQsRUFBV0YsRUFBRSxDQUFDO0FBQUVGLFFBQUFBLEtBQUssRUFBRTtBQUFULE9BQUQsRUFBZ0I7QUFBRUEsUUFBQUEsS0FBSyxFQUFFLEdBQVQ7QUFBY0ssUUFBQUEsUUFBUSxFQUFFO0FBQXhCLE9BQWhCLEVBQWdELENBQUMsR0FBRCxDQUFoRCxDQUFiLENBQUY7QUFDQUQsTUFBQUEsRUFBRSxDQUFDLFdBQUQsRUFBY0YsRUFBRSxDQUFDO0FBQUVGLFFBQUFBLEtBQUssRUFBRSxDQUFDLEdBQUQ7QUFBVCxPQUFELEVBQW1CO0FBQUVBLFFBQUFBLEtBQUssRUFBRSxHQUFUO0FBQWNLLFFBQUFBLFFBQVEsRUFBRTtBQUF4QixPQUFuQixFQUFvRCxFQUFwRCxDQUFoQixDQUFGO0FBQ0FELE1BQUFBLEVBQUUsQ0FBQyxRQUFELEVBQVdGLEVBQUUsQ0FBQztBQUFFRixRQUFBQSxLQUFLLEVBQUUsQ0FBQyxHQUFEO0FBQVQsT0FBRCxFQUFtQjtBQUFFQSxRQUFBQSxLQUFLLEVBQUUsR0FBVDtBQUFjSyxRQUFBQSxRQUFRLEVBQUU7QUFBeEIsT0FBbkIsRUFBbUQsQ0FBQyxHQUFELEVBQU0sR0FBTixDQUFuRCxDQUFiLENBQUY7QUFDQUQsTUFBQUEsRUFBRSxDQUFDLDBCQUFELEVBQTZCRixFQUFFLENBQUM7QUFBRUYsUUFBQUEsS0FBSyxFQUFFLENBQUMsR0FBRDtBQUFULE9BQUQsRUFBbUI7QUFBRUEsUUFBQUEsS0FBSyxFQUFFLEdBQVQ7QUFBY0ssUUFBQUEsUUFBUSxFQUFFO0FBQXhCLE9BQW5CLEVBQW1ELENBQUMsR0FBRCxDQUFuRCxDQUEvQixDQUFGO0FBQ0FELE1BQUFBLEVBQUUsQ0FBQyxrQ0FBRCxFQUFxQ0YsRUFBRSxDQUFDO0FBQUVGLFFBQUFBLEtBQUssRUFBRSxDQUFDLEdBQUQ7QUFBVCxPQUFELEVBQW1CO0FBQUVBLFFBQUFBLEtBQUssRUFBRSxHQUFUO0FBQWNLLFFBQUFBLFFBQVEsRUFBRTtBQUF4QixPQUFuQixFQUFvRCxDQUFDLEdBQUQsQ0FBcEQsQ0FBdkMsQ0FBRjtBQUNELEtBUE8sQ0FBUjtBQVNBZCxJQUFBQSxRQUFRLENBQUMsT0FBRCxFQUFVLFlBQU07QUFDdEIsVUFBTVcsRUFBRSxHQUFHUixNQUFNLENBQUNTLElBQVAsQ0FBWSxJQUFaLEVBQWtCLE9BQWxCLENBQVg7QUFDQUMsTUFBQUEsRUFBRSxDQUFDLFFBQUQsRUFBV0YsRUFBRSxDQUFDO0FBQUVGLFFBQUFBLEtBQUssRUFBRTtBQUFULE9BQUQsRUFBZ0I7QUFBRUEsUUFBQUEsS0FBSyxFQUFFLEdBQVQ7QUFBY0ssUUFBQUEsUUFBUSxFQUFFO0FBQXhCLE9BQWhCLEVBQWdELENBQUMsR0FBRCxDQUFoRCxDQUFiLENBQUY7QUFDQUQsTUFBQUEsRUFBRSxDQUFDLFFBQUQsRUFBV0YsRUFBRSxDQUFDO0FBQUVGLFFBQUFBLEtBQUssRUFBRSxDQUFDLEdBQUQ7QUFBVCxPQUFELEVBQW1CO0FBQUVBLFFBQUFBLEtBQUssRUFBRSxHQUFUO0FBQWNLLFFBQUFBLFFBQVEsRUFBRTtBQUF4QixPQUFuQixFQUFtRCxDQUFDLEdBQUQsQ0FBbkQsQ0FBYixDQUFGO0FBQ0FELE1BQUFBLEVBQUUsQ0FBQywwQkFBRCxFQUE2QkYsRUFBRSxDQUFDO0FBQUVGLFFBQUFBLEtBQUssRUFBRSxDQUFDLEdBQUQ7QUFBVCxPQUFELEVBQW1CO0FBQUVBLFFBQUFBLEtBQUssRUFBRSxHQUFUO0FBQWNLLFFBQUFBLFFBQVEsRUFBRTtBQUF4QixPQUFuQixFQUFtRCxDQUFDLEdBQUQsQ0FBbkQsQ0FBL0IsQ0FBRjtBQUNELEtBTE8sQ0FBUjtBQU1ELEdBdkJPLENBQVI7QUF3QkQsQ0E3Qk8sQ0FBUiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVwZGF0ZVNlc3Npb25WYWx1ZSB9IGZyb20gJy4uL3Nlc3Npb24tdXBkYXRlcic7XG5cbmRlc2NyaWJlKCdzZXNzaW9uLXVwZGF0ZXInLCAoKSA9PiB7XG4gIGxldCB1cGRhdGVyO1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge30pO1xuXG4gIGRlc2NyaWJlKCd1cGRhdGVTZXNzaW9uVmFsdWUnLCAoKSA9PiB7XG4gICAgY29uc3QgYXNzZXJ0ID0gKG1vZGUsIHNlc3Npb24sIGRhdGEsIGV4cGVjdGVkKSA9PiB7XG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICB1cGRhdGVTZXNzaW9uVmFsdWUoc2Vzc2lvbiwgbW9kZSwgZGF0YSk7XG4gICAgICAgIGV4cGVjdChzZXNzaW9uLnZhbHVlKS50b0VxdWFsKGV4cGVjdGVkKTtcbiAgICAgIH07XG4gICAgfTtcblxuICAgIGRlc2NyaWJlKCdjaGVja2JveCcsICgpID0+IHtcbiAgICAgIGNvbnN0IGNiID0gYXNzZXJ0LmJpbmQobnVsbCwgJ2NoZWNrYm94Jyk7XG4gICAgICBpdCgnYWRkcyAxJywgY2IoeyB2YWx1ZTogW10gfSwgeyB2YWx1ZTogJzEnLCBzZWxlY3RlZDogdHJ1ZSB9LCBbJzEnXSkpO1xuICAgICAgaXQoJ3JlbW92ZXMgMScsIGNiKHsgdmFsdWU6IFsnMSddIH0sIHsgdmFsdWU6ICcxJywgc2VsZWN0ZWQ6IGZhbHNlIH0sIFtdKSk7XG4gICAgICBpdCgnYWRkcyAyJywgY2IoeyB2YWx1ZTogWycxJ10gfSwgeyB2YWx1ZTogJzInLCBzZWxlY3RlZDogdHJ1ZSB9LCBbJzEnLCAnMiddKSk7XG4gICAgICBpdCgnZG9lcyBub3QgYWRkIGR1cGxpY2F0ZSAxJywgY2IoeyB2YWx1ZTogWycxJ10gfSwgeyB2YWx1ZTogJzEnLCBzZWxlY3RlZDogdHJ1ZSB9LCBbJzEnXSkpO1xuICAgICAgaXQoJ2RvZXMgbm90IHJlbW92ZSBpZiBub3QgaW4gYXJyYXJ5JywgY2IoeyB2YWx1ZTogWycxJ10gfSwgeyB2YWx1ZTogJzInLCBzZWxlY3RlZDogZmFsc2UgfSwgWycxJ10pKTtcbiAgICB9KTtcblxuICAgIGRlc2NyaWJlKCdyYWRpbycsICgpID0+IHtcbiAgICAgIGNvbnN0IGNiID0gYXNzZXJ0LmJpbmQobnVsbCwgJ3JhZGlvJyk7XG4gICAgICBpdCgnYWRkcyAxJywgY2IoeyB2YWx1ZTogW10gfSwgeyB2YWx1ZTogJzEnLCBzZWxlY3RlZDogdHJ1ZSB9LCBbJzEnXSkpO1xuICAgICAgaXQoJ2FkZHMgMicsIGNiKHsgdmFsdWU6IFsnMSddIH0sIHsgdmFsdWU6ICcyJywgc2VsZWN0ZWQ6IHRydWUgfSwgWycyJ10pKTtcbiAgICAgIGl0KCdkb2VzIG5vdCBhZGQgZHVwbGljYXRlIDEnLCBjYih7IHZhbHVlOiBbJzEnXSB9LCB7IHZhbHVlOiAnMScsIHNlbGVjdGVkOiB0cnVlIH0sIFsnMSddKSk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=