@pie-element/multiple-choice 7.6.1-beta.2 → 7.6.1-beta.4

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 (39) hide show
  1. package/configure/lib/defaults.js +0 -1
  2. package/configure/lib/defaults.js.map +1 -1
  3. package/configure/lib/index.js +3 -47
  4. package/configure/lib/index.js.map +1 -1
  5. package/configure/lib/main.js +84 -142
  6. package/configure/lib/main.js.map +1 -1
  7. package/configure/lib/utils.js +1 -3
  8. package/configure/lib/utils.js.map +1 -1
  9. package/configure/package.json +3 -3
  10. package/controller/lib/defaults.js.map +1 -1
  11. package/controller/lib/index.js +54 -110
  12. package/controller/lib/index.js.map +1 -1
  13. package/controller/lib/utils.js +0 -8
  14. package/controller/lib/utils.js.map +1 -1
  15. package/lib/choice-input.js +24 -63
  16. package/lib/choice-input.js.map +1 -1
  17. package/lib/choice.js +17 -49
  18. package/lib/choice.js.map +1 -1
  19. package/lib/feedback-tick.js +2 -28
  20. package/lib/feedback-tick.js.map +1 -1
  21. package/lib/index.js +2 -36
  22. package/lib/index.js.map +1 -1
  23. package/lib/main.js +5 -27
  24. package/lib/main.js.map +1 -1
  25. package/lib/multiple-choice.js +13 -45
  26. package/lib/multiple-choice.js.map +1 -1
  27. package/lib/print.js +1 -27
  28. package/lib/print.js.map +1 -1
  29. package/lib/session-updater.js +0 -7
  30. package/lib/session-updater.js.map +1 -1
  31. package/package.json +3 -3
  32. package/configure/lib/__tests__/root.test.js +0 -271
  33. package/controller/lib/__tests__/index.test.js +0 -864
  34. package/controller/lib/__tests__/utils.test.js +0 -8
  35. package/docs/demo/pie.manifest.json +0 -11
  36. package/lib/__tests__/choice-input-test.js +0 -124
  37. package/lib/__tests__/index-test.js +0 -22
  38. package/lib/__tests__/multiple-choice-test.js +0 -237
  39. package/lib/__tests__/session-updater-test.js +0 -72
@@ -1,8 +0,0 @@
1
- "use strict";
2
-
3
- describe('utils', function () {
4
- xit('todo', function () {
5
- expect(true).toEqual(false);
6
- });
7
- });
8
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vdXRpbHMudGVzdC5qcyJdLCJuYW1lcyI6WyJkZXNjcmliZSIsInhpdCIsImV4cGVjdCIsInRvRXF1YWwiXSwibWFwcGluZ3MiOiI7O0FBQUFBLFFBQVEsQ0FBQyxPQUFELEVBQVUsWUFBTTtBQUN0QkMsRUFBQUEsR0FBRyxDQUFDLE1BQUQsRUFBUyxZQUFNO0FBQ2hCQyxJQUFBQSxNQUFNLENBQUMsSUFBRCxDQUFOLENBQWFDLE9BQWIsQ0FBcUIsS0FBckI7QUFDRCxHQUZFLENBQUg7QUFHRCxDQUpPLENBQVIiLCJzb3VyY2VzQ29udGVudCI6WyJkZXNjcmliZSgndXRpbHMnLCAoKSA9PiB7XG4gIHhpdCgndG9kbycsICgpID0+IHtcbiAgICBleHBlY3QodHJ1ZSkudG9FcXVhbChmYWxzZSk7XG4gIH0pO1xufSk7XG4iXX0=
@@ -1,11 +0,0 @@
1
- {
2
- "hash": "1801896442",
3
- "info": [
4
- {
5
- "pie": "@pie-element/multiple-choice",
6
- "version": {
7
- "requested": "latest"
8
- }
9
- }
10
- ]
11
- }
@@ -1,124 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
6
-
7
- var _react = _interopRequireDefault(require("react"));
8
-
9
- var _lodash = _interopRequireDefault(require("lodash"));
10
-
11
- var _enzyme = require("enzyme");
12
-
13
- var _choiceInput = require("../choice-input");
14
-
15
- var _enzymeToJson = _interopRequireDefault(require("enzyme-to-json"));
16
-
17
- describe('ChoiceInput', function () {
18
- var onChange, wrapper;
19
-
20
- var mkWrapper = function mkWrapper() {
21
- var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
22
- opts = _lodash["default"].extend({
23
- checked: false,
24
- disabled: false,
25
- choiceMode: 'checkbox',
26
- label: 'label',
27
- displayKey: '1',
28
- correctness: 'correct',
29
- value: 'value',
30
- classes: {
31
- label: 'label'
32
- }
33
- }, opts);
34
- return (0, _enzyme.shallow)( /*#__PURE__*/_react["default"].createElement(_choiceInput.ChoiceInput, (0, _extends2["default"])({}, opts, {
35
- onChange: onChange
36
- })));
37
- };
38
-
39
- beforeEach(function () {
40
- onChange = jest.fn();
41
- wrapper = mkWrapper();
42
- });
43
- describe('snapshots', function () {
44
- describe('radio', function () {
45
- it('renders', function () {
46
- var wrapper = mkWrapper({
47
- choiceMode: 'radio'
48
- });
49
- expect((0, _enzymeToJson["default"])(wrapper)).toMatchSnapshot();
50
- });
51
- });
52
- describe('checkbox', function () {
53
- it('renders', function () {
54
- var wrapper = mkWrapper({
55
- choiceMode: 'checkbox'
56
- });
57
- expect((0, _enzymeToJson["default"])(wrapper)).toMatchSnapshot();
58
- });
59
- });
60
- describe('radio with incorrect', function () {
61
- it('renders', function () {
62
- var wrapper = mkWrapper({
63
- choiceMode: 'radio',
64
- correctness: 'incorrect'
65
- });
66
- expect((0, _enzymeToJson["default"])(wrapper)).toMatchSnapshot();
67
- });
68
- });
69
- describe('rationale', function () {
70
- it('does not render', function () {
71
- var wrapper = mkWrapper();
72
- expect((0, _enzymeToJson["default"])(wrapper)).toMatchSnapshot();
73
- });
74
- it('renders', function () {
75
- var wrapper = mkWrapper({
76
- rationale: 'This is rationale'
77
- });
78
- expect((0, _enzymeToJson["default"])(wrapper)).toMatchSnapshot();
79
- });
80
- });
81
- });
82
- describe('onToggleChoice', function () {
83
- it('calls handler', function () {
84
- wrapper.instance().onToggleChoice({
85
- target: {
86
- checked: true
87
- }
88
- });
89
- expect(onChange).toBeCalledWith({
90
- value: 'value',
91
- selected: true
92
- });
93
- });
94
- });
95
- /** we're mocking preview prompt - so this won't pass */
96
-
97
- describe.skip('clicking on choice text triggers toggle choice', function () {
98
- it('calls handler', function () {
99
- var onChange = jest.fn();
100
- var props = {
101
- checked: false,
102
- disabled: false,
103
- choiceMode: 'checkbox',
104
- label: 'label',
105
- displayKey: '1',
106
- correctness: 'correct',
107
- value: 'value',
108
- classes: {
109
- label: 'label'
110
- },
111
- onChange: onChange
112
- };
113
- console.log(_choiceInput.ChoiceInput);
114
- var item = (0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement(_choiceInput.ChoiceInput, props));
115
- var label = item.find('.label');
116
- label.simulate('click');
117
- expect(onChange).toHaveBeenCalledWith({
118
- value: 'value',
119
- selected: true
120
- });
121
- });
122
- });
123
- });
124
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vY2hvaWNlLWlucHV0LXRlc3QuanN4Il0sIm5hbWVzIjpbImRlc2NyaWJlIiwib25DaGFuZ2UiLCJ3cmFwcGVyIiwibWtXcmFwcGVyIiwib3B0cyIsIl8iLCJleHRlbmQiLCJjaGVja2VkIiwiZGlzYWJsZWQiLCJjaG9pY2VNb2RlIiwibGFiZWwiLCJkaXNwbGF5S2V5IiwiY29ycmVjdG5lc3MiLCJ2YWx1ZSIsImNsYXNzZXMiLCJiZWZvcmVFYWNoIiwiamVzdCIsImZuIiwiaXQiLCJleHBlY3QiLCJ0b01hdGNoU25hcHNob3QiLCJyYXRpb25hbGUiLCJpbnN0YW5jZSIsIm9uVG9nZ2xlQ2hvaWNlIiwidGFyZ2V0IiwidG9CZUNhbGxlZFdpdGgiLCJzZWxlY3RlZCIsInNraXAiLCJwcm9wcyIsImNvbnNvbGUiLCJsb2ciLCJDaG9pY2VJbnB1dCIsIml0ZW0iLCJmaW5kIiwic2ltdWxhdGUiLCJ0b0hhdmVCZWVuQ2FsbGVkV2l0aCJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUFBLFFBQVEsQ0FBQyxhQUFELEVBQWdCLFlBQU07QUFDNUIsTUFBSUMsUUFBSixFQUFjQyxPQUFkOztBQUVBLE1BQU1DLFNBQVMsR0FBRyxTQUFaQSxTQUFZLEdBQWU7QUFBQSxRQUFkQyxJQUFjLHVFQUFQLEVBQU87QUFDL0JBLElBQUFBLElBQUksR0FBR0MsbUJBQUVDLE1BQUYsQ0FDTDtBQUNFQyxNQUFBQSxPQUFPLEVBQUUsS0FEWDtBQUVFQyxNQUFBQSxRQUFRLEVBQUUsS0FGWjtBQUdFQyxNQUFBQSxVQUFVLEVBQUUsVUFIZDtBQUlFQyxNQUFBQSxLQUFLLEVBQUUsT0FKVDtBQUtFQyxNQUFBQSxVQUFVLEVBQUUsR0FMZDtBQU1FQyxNQUFBQSxXQUFXLEVBQUUsU0FOZjtBQU9FQyxNQUFBQSxLQUFLLEVBQUUsT0FQVDtBQVFFQyxNQUFBQSxPQUFPLEVBQUU7QUFDUEosUUFBQUEsS0FBSyxFQUFFO0FBREE7QUFSWCxLQURLLEVBYUxOLElBYkssQ0FBUDtBQWdCQSxXQUFPLG1DQUFRLGdDQUFDLHdCQUFELGdDQUFpQkEsSUFBakI7QUFBdUIsTUFBQSxRQUFRLEVBQUVIO0FBQWpDLE9BQVIsQ0FBUDtBQUNELEdBbEJEOztBQW9CQWMsRUFBQUEsVUFBVSxDQUFDLFlBQU07QUFDZmQsSUFBQUEsUUFBUSxHQUFHZSxJQUFJLENBQUNDLEVBQUwsRUFBWDtBQUNBZixJQUFBQSxPQUFPLEdBQUdDLFNBQVMsRUFBbkI7QUFDRCxHQUhTLENBQVY7QUFLQUgsRUFBQUEsUUFBUSxDQUFDLFdBQUQsRUFBYyxZQUFNO0FBQzFCQSxJQUFBQSxRQUFRLENBQUMsT0FBRCxFQUFVLFlBQU07QUFDdEJrQixNQUFBQSxFQUFFLENBQUMsU0FBRCxFQUFZLFlBQU07QUFDbEIsWUFBTWhCLE9BQU8sR0FBR0MsU0FBUyxDQUFDO0FBQUVNLFVBQUFBLFVBQVUsRUFBRTtBQUFkLFNBQUQsQ0FBekI7QUFDQVUsUUFBQUEsTUFBTSxDQUFDLDhCQUFPakIsT0FBUCxDQUFELENBQU4sQ0FBd0JrQixlQUF4QjtBQUNELE9BSEMsQ0FBRjtBQUlELEtBTE8sQ0FBUjtBQU9BcEIsSUFBQUEsUUFBUSxDQUFDLFVBQUQsRUFBYSxZQUFNO0FBQ3pCa0IsTUFBQUEsRUFBRSxDQUFDLFNBQUQsRUFBWSxZQUFNO0FBQ2xCLFlBQU1oQixPQUFPLEdBQUdDLFNBQVMsQ0FBQztBQUFFTSxVQUFBQSxVQUFVLEVBQUU7QUFBZCxTQUFELENBQXpCO0FBQ0FVLFFBQUFBLE1BQU0sQ0FBQyw4QkFBT2pCLE9BQVAsQ0FBRCxDQUFOLENBQXdCa0IsZUFBeEI7QUFDRCxPQUhDLENBQUY7QUFJRCxLQUxPLENBQVI7QUFPQXBCLElBQUFBLFFBQVEsQ0FBQyxzQkFBRCxFQUF5QixZQUFNO0FBQ3JDa0IsTUFBQUEsRUFBRSxDQUFDLFNBQUQsRUFBWSxZQUFNO0FBQ2xCLFlBQU1oQixPQUFPLEdBQUdDLFNBQVMsQ0FBQztBQUN4Qk0sVUFBQUEsVUFBVSxFQUFFLE9BRFk7QUFFeEJHLFVBQUFBLFdBQVcsRUFBRTtBQUZXLFNBQUQsQ0FBekI7QUFJQU8sUUFBQUEsTUFBTSxDQUFDLDhCQUFPakIsT0FBUCxDQUFELENBQU4sQ0FBd0JrQixlQUF4QjtBQUNELE9BTkMsQ0FBRjtBQU9ELEtBUk8sQ0FBUjtBQVVBcEIsSUFBQUEsUUFBUSxDQUFDLFdBQUQsRUFBYyxZQUFNO0FBQzFCa0IsTUFBQUEsRUFBRSxDQUFDLGlCQUFELEVBQW9CLFlBQU07QUFDMUIsWUFBTWhCLE9BQU8sR0FBR0MsU0FBUyxFQUF6QjtBQUNBZ0IsUUFBQUEsTUFBTSxDQUFDLDhCQUFPakIsT0FBUCxDQUFELENBQU4sQ0FBd0JrQixlQUF4QjtBQUNELE9BSEMsQ0FBRjtBQUtBRixNQUFBQSxFQUFFLENBQUMsU0FBRCxFQUFZLFlBQU07QUFDbEIsWUFBTWhCLE9BQU8sR0FBR0MsU0FBUyxDQUFDO0FBQUVrQixVQUFBQSxTQUFTLEVBQUU7QUFBYixTQUFELENBQXpCO0FBQ0FGLFFBQUFBLE1BQU0sQ0FBQyw4QkFBT2pCLE9BQVAsQ0FBRCxDQUFOLENBQXdCa0IsZUFBeEI7QUFDRCxPQUhDLENBQUY7QUFJRCxLQVZPLENBQVI7QUFXRCxHQXBDTyxDQUFSO0FBc0NBcEIsRUFBQUEsUUFBUSxDQUFDLGdCQUFELEVBQW1CLFlBQU07QUFDL0JrQixJQUFBQSxFQUFFLENBQUMsZUFBRCxFQUFrQixZQUFNO0FBQ3hCaEIsTUFBQUEsT0FBTyxDQUFDb0IsUUFBUixHQUFtQkMsY0FBbkIsQ0FBa0M7QUFBRUMsUUFBQUEsTUFBTSxFQUFFO0FBQUVqQixVQUFBQSxPQUFPLEVBQUU7QUFBWDtBQUFWLE9BQWxDO0FBQ0FZLE1BQUFBLE1BQU0sQ0FBQ2xCLFFBQUQsQ0FBTixDQUFpQndCLGNBQWpCLENBQWdDO0FBQzlCWixRQUFBQSxLQUFLLEVBQUUsT0FEdUI7QUFFOUJhLFFBQUFBLFFBQVEsRUFBRTtBQUZvQixPQUFoQztBQUlELEtBTkMsQ0FBRjtBQU9ELEdBUk8sQ0FBUjtBQVVBOztBQUNBMUIsRUFBQUEsUUFBUSxDQUFDMkIsSUFBVCxDQUFjLGdEQUFkLEVBQWdFLFlBQU07QUFDcEVULElBQUFBLEVBQUUsQ0FBQyxlQUFELEVBQWtCLFlBQU07QUFDeEIsVUFBTWpCLFFBQVEsR0FBR2UsSUFBSSxDQUFDQyxFQUFMLEVBQWpCO0FBQ0EsVUFBTVcsS0FBSyxHQUFHO0FBQ1pyQixRQUFBQSxPQUFPLEVBQUUsS0FERztBQUVaQyxRQUFBQSxRQUFRLEVBQUUsS0FGRTtBQUdaQyxRQUFBQSxVQUFVLEVBQUUsVUFIQTtBQUlaQyxRQUFBQSxLQUFLLEVBQUUsT0FKSztBQUtaQyxRQUFBQSxVQUFVLEVBQUUsR0FMQTtBQU1aQyxRQUFBQSxXQUFXLEVBQUUsU0FORDtBQU9aQyxRQUFBQSxLQUFLLEVBQUUsT0FQSztBQVFaQyxRQUFBQSxPQUFPLEVBQUU7QUFDUEosVUFBQUEsS0FBSyxFQUFFO0FBREEsU0FSRztBQVdaVCxRQUFBQSxRQUFRLEVBQVJBO0FBWFksT0FBZDtBQWNBNEIsTUFBQUEsT0FBTyxDQUFDQyxHQUFSLENBQVlDLHdCQUFaO0FBQ0EsVUFBTUMsSUFBSSxHQUFHLGlDQUFNLGdDQUFDLHdCQUFELEVBQWlCSixLQUFqQixDQUFOLENBQWI7QUFDQSxVQUFNbEIsS0FBSyxHQUFHc0IsSUFBSSxDQUFDQyxJQUFMLENBQVUsUUFBVixDQUFkO0FBRUF2QixNQUFBQSxLQUFLLENBQUN3QixRQUFOLENBQWUsT0FBZjtBQUVBZixNQUFBQSxNQUFNLENBQUNsQixRQUFELENBQU4sQ0FBaUJrQyxvQkFBakIsQ0FBc0M7QUFBRXRCLFFBQUFBLEtBQUssRUFBRSxPQUFUO0FBQWtCYSxRQUFBQSxRQUFRLEVBQUU7QUFBNUIsT0FBdEM7QUFDRCxLQXZCQyxDQUFGO0FBd0JELEdBekJEO0FBMEJELENBdkdPLENBQVIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IHNoYWxsb3csIG1vdW50IH0gZnJvbSAnZW56eW1lJztcbmltcG9ydCB7IENob2ljZUlucHV0IH0gZnJvbSAnLi4vY2hvaWNlLWlucHV0JztcbmltcG9ydCB0b0pzb24gZnJvbSAnZW56eW1lLXRvLWpzb24nO1xuXG5kZXNjcmliZSgnQ2hvaWNlSW5wdXQnLCAoKSA9PiB7XG4gIGxldCBvbkNoYW5nZSwgd3JhcHBlcjtcblxuICBjb25zdCBta1dyYXBwZXIgPSAob3B0cyA9IHt9KSA9PiB7XG4gICAgb3B0cyA9IF8uZXh0ZW5kKFxuICAgICAge1xuICAgICAgICBjaGVja2VkOiBmYWxzZSxcbiAgICAgICAgZGlzYWJsZWQ6IGZhbHNlLFxuICAgICAgICBjaG9pY2VNb2RlOiAnY2hlY2tib3gnLFxuICAgICAgICBsYWJlbDogJ2xhYmVsJyxcbiAgICAgICAgZGlzcGxheUtleTogJzEnLFxuICAgICAgICBjb3JyZWN0bmVzczogJ2NvcnJlY3QnLFxuICAgICAgICB2YWx1ZTogJ3ZhbHVlJyxcbiAgICAgICAgY2xhc3Nlczoge1xuICAgICAgICAgIGxhYmVsOiAnbGFiZWwnLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIG9wdHMsXG4gICAgKTtcblxuICAgIHJldHVybiBzaGFsbG93KDxDaG9pY2VJbnB1dCB7Li4ub3B0c30gb25DaGFuZ2U9e29uQ2hhbmdlfSAvPik7XG4gIH07XG5cbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgb25DaGFuZ2UgPSBqZXN0LmZuKCk7XG4gICAgd3JhcHBlciA9IG1rV3JhcHBlcigpO1xuICB9KTtcblxuICBkZXNjcmliZSgnc25hcHNob3RzJywgKCkgPT4ge1xuICAgIGRlc2NyaWJlKCdyYWRpbycsICgpID0+IHtcbiAgICAgIGl0KCdyZW5kZXJzJywgKCkgPT4ge1xuICAgICAgICBjb25zdCB3cmFwcGVyID0gbWtXcmFwcGVyKHsgY2hvaWNlTW9kZTogJ3JhZGlvJyB9KTtcbiAgICAgICAgZXhwZWN0KHRvSnNvbih3cmFwcGVyKSkudG9NYXRjaFNuYXBzaG90KCk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGRlc2NyaWJlKCdjaGVja2JveCcsICgpID0+IHtcbiAgICAgIGl0KCdyZW5kZXJzJywgKCkgPT4ge1xuICAgICAgICBjb25zdCB3cmFwcGVyID0gbWtXcmFwcGVyKHsgY2hvaWNlTW9kZTogJ2NoZWNrYm94JyB9KTtcbiAgICAgICAgZXhwZWN0KHRvSnNvbih3cmFwcGVyKSkudG9NYXRjaFNuYXBzaG90KCk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGRlc2NyaWJlKCdyYWRpbyB3aXRoIGluY29ycmVjdCcsICgpID0+IHtcbiAgICAgIGl0KCdyZW5kZXJzJywgKCkgPT4ge1xuICAgICAgICBjb25zdCB3cmFwcGVyID0gbWtXcmFwcGVyKHtcbiAgICAgICAgICBjaG9pY2VNb2RlOiAncmFkaW8nLFxuICAgICAgICAgIGNvcnJlY3RuZXNzOiAnaW5jb3JyZWN0JyxcbiAgICAgICAgfSk7XG4gICAgICAgIGV4cGVjdCh0b0pzb24od3JhcHBlcikpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBkZXNjcmliZSgncmF0aW9uYWxlJywgKCkgPT4ge1xuICAgICAgaXQoJ2RvZXMgbm90IHJlbmRlcicsICgpID0+IHtcbiAgICAgICAgY29uc3Qgd3JhcHBlciA9IG1rV3JhcHBlcigpO1xuICAgICAgICBleHBlY3QodG9Kc29uKHdyYXBwZXIpKS50b01hdGNoU25hcHNob3QoKTtcbiAgICAgIH0pO1xuXG4gICAgICBpdCgncmVuZGVycycsICgpID0+IHtcbiAgICAgICAgY29uc3Qgd3JhcHBlciA9IG1rV3JhcHBlcih7IHJhdGlvbmFsZTogJ1RoaXMgaXMgcmF0aW9uYWxlJyB9KTtcbiAgICAgICAgZXhwZWN0KHRvSnNvbih3cmFwcGVyKSkudG9NYXRjaFNuYXBzaG90KCk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ29uVG9nZ2xlQ2hvaWNlJywgKCkgPT4ge1xuICAgIGl0KCdjYWxscyBoYW5kbGVyJywgKCkgPT4ge1xuICAgICAgd3JhcHBlci5pbnN0YW5jZSgpLm9uVG9nZ2xlQ2hvaWNlKHsgdGFyZ2V0OiB7IGNoZWNrZWQ6IHRydWUgfSB9KTtcbiAgICAgIGV4cGVjdChvbkNoYW5nZSkudG9CZUNhbGxlZFdpdGgoe1xuICAgICAgICB2YWx1ZTogJ3ZhbHVlJyxcbiAgICAgICAgc2VsZWN0ZWQ6IHRydWUsXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgLyoqIHdlJ3JlIG1vY2tpbmcgcHJldmlldyBwcm9tcHQgLSBzbyB0aGlzIHdvbid0IHBhc3MgKi9cbiAgZGVzY3JpYmUuc2tpcCgnY2xpY2tpbmcgb24gY2hvaWNlIHRleHQgdHJpZ2dlcnMgdG9nZ2xlIGNob2ljZScsICgpID0+IHtcbiAgICBpdCgnY2FsbHMgaGFuZGxlcicsICgpID0+IHtcbiAgICAgIGNvbnN0IG9uQ2hhbmdlID0gamVzdC5mbigpO1xuICAgICAgY29uc3QgcHJvcHMgPSB7XG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxuICAgICAgICBkaXNhYmxlZDogZmFsc2UsXG4gICAgICAgIGNob2ljZU1vZGU6ICdjaGVja2JveCcsXG4gICAgICAgIGxhYmVsOiAnbGFiZWwnLFxuICAgICAgICBkaXNwbGF5S2V5OiAnMScsXG4gICAgICAgIGNvcnJlY3RuZXNzOiAnY29ycmVjdCcsXG4gICAgICAgIHZhbHVlOiAndmFsdWUnLFxuICAgICAgICBjbGFzc2VzOiB7XG4gICAgICAgICAgbGFiZWw6ICdsYWJlbCcsXG4gICAgICAgIH0sXG4gICAgICAgIG9uQ2hhbmdlLFxuICAgICAgfTtcblxuICAgICAgY29uc29sZS5sb2coQ2hvaWNlSW5wdXQpO1xuICAgICAgY29uc3QgaXRlbSA9IG1vdW50KDxDaG9pY2VJbnB1dCB7Li4ucHJvcHN9IC8+KTtcbiAgICAgIGNvbnN0IGxhYmVsID0gaXRlbS5maW5kKCcubGFiZWwnKTtcblxuICAgICAgbGFiZWwuc2ltdWxhdGUoJ2NsaWNrJyk7XG5cbiAgICAgIGV4cGVjdChvbkNoYW5nZSkudG9IYXZlQmVlbkNhbGxlZFdpdGgoeyB2YWx1ZTogJ3ZhbHVlJywgc2VsZWN0ZWQ6IHRydWUgfSk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
@@ -1,22 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
6
-
7
- var _index = require("../index");
8
-
9
- var _templateObject;
10
-
11
- describe('isComplete', function () {
12
- it.each(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n session | expected\n ", " | ", "\n ", " | ", "\n ", " | ", "\n ", " | ", "\n ", " | ", "\n "])), {
13
- value: [1, 2, 3]
14
- }, true, {
15
- value: []
16
- }, false, {}, false, null, false, undefined, false)('session = $session is complete => $expected', function (_ref) {
17
- var session = _ref.session,
18
- expected = _ref.expected;
19
- expect((0, _index.isComplete)(session)).toEqual(expected);
20
- });
21
- });
22
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vaW5kZXgtdGVzdC5qc3giXSwibmFtZXMiOlsiZGVzY3JpYmUiLCJpdCIsImVhY2giLCJ2YWx1ZSIsInVuZGVmaW5lZCIsInNlc3Npb24iLCJleHBlY3RlZCIsImV4cGVjdCIsInRvRXF1YWwiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOzs7O0FBRUFBLFFBQVEsQ0FBQyxZQUFELEVBQWUsWUFBTTtBQUMzQkMsRUFBQUEsRUFBRSxDQUFDQyxJQUFILDRRQUVJO0FBQUVDLElBQUFBLEtBQUssRUFBRSxDQUFDLENBQUQsRUFBSSxDQUFKLEVBQU8sQ0FBUDtBQUFULEdBRkosRUFFOEIsSUFGOUIsRUFHSTtBQUFFQSxJQUFBQSxLQUFLLEVBQUU7QUFBVCxHQUhKLEVBRzhCLEtBSDlCLEVBSUksRUFKSixFQUk4QixLQUo5QixFQUtJLElBTEosRUFLOEIsS0FMOUIsRUFNSUMsU0FOSixFQU04QixLQU45QixFQU9FLDZDQVBGLEVBT2lELGdCQUEyQjtBQUFBLFFBQXhCQyxPQUF3QixRQUF4QkEsT0FBd0I7QUFBQSxRQUFmQyxRQUFlLFFBQWZBLFFBQWU7QUFDMUVDLElBQUFBLE1BQU0sQ0FBQyx1QkFBV0YsT0FBWCxDQUFELENBQU4sQ0FBNEJHLE9BQTVCLENBQW9DRixRQUFwQztBQUNELEdBVEQ7QUFVRCxDQVhPLENBQVIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc0NvbXBsZXRlIH0gZnJvbSAnLi4vaW5kZXgnO1xuXG5kZXNjcmliZSgnaXNDb21wbGV0ZScsICgpID0+IHtcbiAgaXQuZWFjaGBcbiAgICBzZXNzaW9uICAgICAgICAgICAgICAgICB8IGV4cGVjdGVkXG4gICAgJHt7IHZhbHVlOiBbMSwgMiwgM10gfX0gfCAke3RydWV9XG4gICAgJHt7IHZhbHVlOiBbXSB9fSAgICAgICAgfCAke2ZhbHNlfVxuICAgICR7e319ICAgICAgICAgICAgICAgICAgIHwgJHtmYWxzZX1cbiAgICAke251bGx9ICAgICAgICAgICAgICAgICB8ICR7ZmFsc2V9XG4gICAgJHt1bmRlZmluZWR9ICAgICAgICAgICAgfCAke2ZhbHNlfVxuICBgKCdzZXNzaW9uID0gJHNlc3Npb24gaXMgY29tcGxldGUgPT4gJGV4cGVjdGVkJywgKHsgc2Vzc2lvbiwgZXhwZWN0ZWQgfSkgPT4ge1xuICAgIGV4cGVjdChpc0NvbXBsZXRlKHNlc3Npb24pKS50b0VxdWFsKGV4cGVjdGVkKTtcbiAgfSk7XG59KTtcbiJdfQ==
@@ -1,237 +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 _lodash = _interopRequireDefault(require("lodash"));
10
-
11
- var _enzyme = require("enzyme");
12
-
13
- var _multipleChoice = require("../multiple-choice");
14
-
15
- var _correctAnswerToggle = _interopRequireDefault(require("@pie-lib/correct-answer-toggle"));
16
-
17
- 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; }
18
-
19
- 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; }
20
-
21
- describe('Choice', function () {
22
- var wrapper,
23
- onChoiceChanged = jest.fn();
24
- beforeEach(function () {
25
- wrapper = function wrapper(extras) {
26
- var props = _objectSpread({
27
- classes: {},
28
- choice: {},
29
- index: 0,
30
- choicesLength: 1,
31
- showCorrect: false,
32
- isEvaluateMode: false,
33
- choiceMode: 'radio',
34
- disabled: true,
35
- onChoiceChanged: onChoiceChanged,
36
- checked: true,
37
- correctness: 'correct',
38
- displayKey: '0',
39
- choicesLayout: 'grid',
40
- gridColumns: 2
41
- }, extras);
42
-
43
- return (0, _enzyme.shallow)( /*#__PURE__*/_react["default"].createElement(_multipleChoice.Choice, props));
44
- };
45
- });
46
- describe('snapshot', function () {
47
- it('renders', function () {
48
- expect(wrapper()).toMatchSnapshot();
49
- });
50
- });
51
- describe('logic', function () {
52
- it('does not call onChoiceChanged if disabled is true', function () {
53
- var w = wrapper();
54
- w.instance().onChange();
55
- expect(onChoiceChanged).not.toHaveBeenCalled();
56
- });
57
- it('calls onChoiceChanged if disabled is false', function () {
58
- var w = wrapper({
59
- disabled: false
60
- });
61
- w.instance().onChange();
62
- expect(onChoiceChanged).toHaveBeenCalled();
63
- });
64
- });
65
- });
66
- describe('CorespringChoice', function () {
67
- var wrapper, toggle;
68
- beforeEach(function () {
69
- toggle = function toggle() {
70
- return /*#__PURE__*/_react["default"].createElement("div", null, "mocked-toggle");
71
- };
72
- });
73
-
74
- var mkWrapper = function mkWrapper(opts) {
75
- var clone = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
76
- opts = clone ? opts = _lodash["default"].merge({
77
- classes: {},
78
- choices: [],
79
- disabled: false,
80
- keyMode: 'letters',
81
- onChoiceChanged: jest.fn(),
82
- mode: 'gather'
83
- }, opts) : opts;
84
- return (0, _enzyme.shallow)( /*#__PURE__*/_react["default"].createElement(_multipleChoice.MultipleChoice, opts));
85
- };
86
-
87
- describe('snapshot', function () {
88
- it('renders', function () {
89
- wrapper = mkWrapper({
90
- choices: [{
91
- value: 'a',
92
- label: 'label a',
93
- correct: true,
94
- feedback: 'great'
95
- }, {
96
- value: 'b',
97
- label: 'label b'
98
- }, {
99
- value: 'c',
100
- label: 'label c',
101
- correct: true,
102
- feedback: 'great'
103
- }]
104
- });
105
- expect(wrapper).toMatchSnapshot();
106
- });
107
- describe('renders incorrect tick if one answer is correct but it is not checked', function () {
108
- it('renders', function () {
109
- var w = mkWrapper({
110
- mode: 'evaluate',
111
- keyMode: 'none',
112
- choices: [{
113
- value: 'a',
114
- label: 'label a',
115
- correct: true,
116
- feedback: 'great'
117
- }, {
118
- value: 'b',
119
- label: 'label b'
120
- }, {
121
- value: 'c',
122
- label: 'label c',
123
- correct: true,
124
- feedback: 'great'
125
- }],
126
- session: {
127
- value: ['a']
128
- }
129
- });
130
- expect(w).toMatchSnapshot();
131
- });
132
- });
133
- describe('getCorrectness', function () {
134
- var itemChoices = [{
135
- value: 'a',
136
- label: 'label a',
137
- correct: true,
138
- feedback: 'great'
139
- }, {
140
- value: 'b',
141
- label: 'label b'
142
- }, {
143
- value: 'c',
144
- label: 'label c',
145
- feedback: 'great'
146
- }, {
147
- value: 'd',
148
- label: 'label d',
149
- correct: true,
150
- feedback: 'great'
151
- }];
152
- var w = mkWrapper({
153
- mode: 'evaluate',
154
- choices: itemChoices,
155
- session: {
156
- value: ['a', 'c']
157
- }
158
- });
159
- describe('showCorrectToggle disabled (state.showCorrect is false)', function () {
160
- it('shows choice correctness only if was checked', function () {
161
- // this one was selected and is correct
162
- expect(w.instance().getCorrectness(itemChoices[0])).toEqual('correct'); // this one was not selected and is incorrect
163
-
164
- expect(w.instance().getCorrectness(itemChoices[1])).toEqual(undefined); // this one was selected, but is incorrect
165
-
166
- expect(w.instance().getCorrectness(itemChoices[2])).toEqual('incorrect'); // this one was not selected and is correct
167
-
168
- expect(w.instance().getCorrectness(itemChoices[3])).toEqual('incorrect');
169
- });
170
- });
171
- describe('showCorrectToggle enabled (state.showCorrect is true)', function () {
172
- it('shows choice correctness no matter if was checked or not', function () {
173
- w.instance().state.showCorrect = true; // this one is correct
174
-
175
- expect(w.instance().getCorrectness(itemChoices[0])).toEqual('correct'); // this one is not correct
176
-
177
- expect(w.instance().getCorrectness(itemChoices[1])).toEqual(undefined); // this one is not correct
178
-
179
- expect(w.instance().getCorrectness(itemChoices[2])).toEqual(undefined); // this one is correct
180
-
181
- expect(w.instance().getCorrectness(itemChoices[3])).toEqual('correct');
182
- });
183
- });
184
- });
185
- describe('onToggle', function () {
186
- it('toggles the state', function () {
187
- var w = mkWrapper({
188
- mode: 'evaluate'
189
- });
190
- expect(w.state('showCorrect')).toEqual(false);
191
- w.instance().onToggle();
192
- expect(w.state('showCorrect')).toEqual(true);
193
- });
194
- });
195
- describe('Toggle', function () {
196
- it('toggle is rendered', function () {
197
- var t = mkWrapper().find(_correctAnswerToggle["default"]);
198
- expect(t.length).toEqual(1);
199
- });
200
- it('toggle show is set to false', function () {
201
- expect(mkWrapper().find(_correctAnswerToggle["default"]).prop('show')).toEqual(false);
202
- });
203
- it('shows toggle if mode is evaluate, feedback is enabled and responseCorrect is false', function () {
204
- expect(mkWrapper({
205
- mode: 'evaluate',
206
- responseCorrect: false,
207
- feedbackEnabled: true
208
- }).find(_correctAnswerToggle["default"]).prop('show')).toEqual(true);
209
- });
210
- it('hides toggle if mode is evaluate and responseCorrect is false', function () {
211
- expect(mkWrapper({
212
- mode: 'evaluate',
213
- responseCorrect: true
214
- }).find(_correctAnswerToggle["default"]).prop('show')).toEqual(false);
215
- });
216
- it('not toggled if showCorrect is false', function () {
217
- var w = mkWrapper({
218
- mode: 'evaluate'
219
- });
220
- w.setState({
221
- showCorrect: false
222
- });
223
- expect(w.find(_correctAnswerToggle["default"]).prop('toggled')).toEqual(false);
224
- });
225
- it('is toggled showCorrect=true && mode=evaluate', function () {
226
- var w = mkWrapper({
227
- mode: 'evaluate'
228
- });
229
- w.setState({
230
- showCorrect: true
231
- });
232
- expect(w.find(_correctAnswerToggle["default"]).prop('toggled')).toEqual(true);
233
- });
234
- });
235
- });
236
- });
237
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vbXVsdGlwbGUtY2hvaWNlLXRlc3QuanN4Il0sIm5hbWVzIjpbImRlc2NyaWJlIiwid3JhcHBlciIsIm9uQ2hvaWNlQ2hhbmdlZCIsImplc3QiLCJmbiIsImJlZm9yZUVhY2giLCJleHRyYXMiLCJwcm9wcyIsImNsYXNzZXMiLCJjaG9pY2UiLCJpbmRleCIsImNob2ljZXNMZW5ndGgiLCJzaG93Q29ycmVjdCIsImlzRXZhbHVhdGVNb2RlIiwiY2hvaWNlTW9kZSIsImRpc2FibGVkIiwiY2hlY2tlZCIsImNvcnJlY3RuZXNzIiwiZGlzcGxheUtleSIsImNob2ljZXNMYXlvdXQiLCJncmlkQ29sdW1ucyIsIml0IiwiZXhwZWN0IiwidG9NYXRjaFNuYXBzaG90IiwidyIsImluc3RhbmNlIiwib25DaGFuZ2UiLCJub3QiLCJ0b0hhdmVCZWVuQ2FsbGVkIiwidG9nZ2xlIiwibWtXcmFwcGVyIiwib3B0cyIsImNsb25lIiwiXyIsIm1lcmdlIiwiY2hvaWNlcyIsImtleU1vZGUiLCJtb2RlIiwidmFsdWUiLCJsYWJlbCIsImNvcnJlY3QiLCJmZWVkYmFjayIsInNlc3Npb24iLCJpdGVtQ2hvaWNlcyIsImdldENvcnJlY3RuZXNzIiwidG9FcXVhbCIsInVuZGVmaW5lZCIsInN0YXRlIiwib25Ub2dnbGUiLCJ0IiwiZmluZCIsIkNvcnJlY3RBbnN3ZXJUb2dnbGUiLCJsZW5ndGgiLCJwcm9wIiwicmVzcG9uc2VDb3JyZWN0IiwiZmVlZGJhY2tFbmFibGVkIiwic2V0U3RhdGUiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOzs7Ozs7QUFFQUEsUUFBUSxDQUFDLFFBQUQsRUFBVyxZQUFNO0FBQ3ZCLE1BQUlDLE9BQUo7QUFBQSxNQUNFQyxlQUFlLEdBQUdDLElBQUksQ0FBQ0MsRUFBTCxFQURwQjtBQUdBQyxFQUFBQSxVQUFVLENBQUMsWUFBTTtBQUNmSixJQUFBQSxPQUFPLEdBQUcsaUJBQUNL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YixRQUFBQSxDQUFDLENBQUNnQyxRQUFGLENBQVc7QUFBRTVDLFVBQUFBLFdBQVcsRUFBRTtBQUFmLFNBQVg7QUFDQVUsUUFBQUEsTUFBTSxDQUFDRSxDQUFDLENBQUMwQixJQUFGLENBQU9DLCtCQUFQLEVBQTRCRSxJQUE1QixDQUFpQyxTQUFqQyxDQUFELENBQU4sQ0FBb0RSLE9BQXBELENBQTRELEtBQTVEO0FBQ0QsT0FKQyxDQUFGO0FBTUF4QixNQUFBQSxFQUFFLENBQUMsOENBQUQsRUFBaUQsWUFBTTtBQUN2RCxZQUFJRyxDQUFDLEdBQUdNLFNBQVMsQ0FBQztBQUFFTyxVQUFBQSxJQUFJLEVBQUU7QUFBUixTQUFELENBQWpCO0FBQ0FiLFFBQUFBLENBQUMsQ0FBQ2dDLFFBQUYsQ0FBVztBQUFFNUMsVUFBQUEsV0FBVyxFQUFFO0FBQWYsU0FBWDtBQUNBVSxRQUFBQSxNQUFNLENBQUNFLENBQUMsQ0FBQzBCLElBQUYsQ0FBT0MsK0JBQVAsRUFBNEJFLElBQTVCLENBQWlDLFNBQWpDLENBQUQsQ0FBTixDQUFvRFIsT0FBcEQsQ0FBNEQsSUFBNUQ7QUFDRCxPQUpDLENBQUY7QUFLRCxLQW5DTyxDQUFSO0FBb0NELEdBekhPLENBQVI7QUEwSEQsQ0FySk8sQ0FBUiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgc2hhbGxvdyB9IGZyb20gJ2VuenltZSc7XG5pbXBvcnQgeyBNdWx0aXBsZUNob2ljZSwgQ2hvaWNlIH0gZnJvbSAnLi4vbXVsdGlwbGUtY2hvaWNlJztcbmltcG9ydCBDb3JyZWN0QW5zd2VyVG9nZ2xlIGZyb20gJ0BwaWUtbGliL2NvcnJlY3QtYW5zd2VyLXRvZ2dsZSc7XG5cbmRlc2NyaWJlKCdDaG9pY2UnLCAoKSA9PiB7XG4gIGxldCB3cmFwcGVyLFxuICAgIG9uQ2hvaWNlQ2hhbmdlZCA9IGplc3QuZm4oKTtcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICB3cmFwcGVyID0gKGV4dHJhcykgPT4ge1xuICAgICAgY29uc3QgcHJvcHMgPSB7XG4gICAgICAgIGNsYXNzZXM6IHt9LFxuICAgICAgICBjaG9pY2U6IHt9LFxuICAgICAgICBpbmRleDogMCxcbiAgICAgICAgY2hvaWNlc0xlbmd0aDogMSxcbiAgICAgICAgc2hvd0NvcnJlY3Q6IGZhbHNlLFxuICAgICAgICBpc0V2YWx1YXRlTW9kZTogZmFsc2UsXG4gICAgICAgIGNob2ljZU1vZGU6ICdyYWRpbycsXG4gICAgICAgIGRpc2FibGVkOiB0cnVlLFxuICAgICAgICBvbkNob2ljZUNoYW5nZWQsXG4gICAgICAgIGNoZWNrZWQ6IHRydWUsXG4gICAgICAgIGNvcnJlY3RuZXNzOiAnY29ycmVjdCcsXG4gICAgICAgIGRpc3BsYXlLZXk6ICcwJyxcbiAgICAgICAgY2hvaWNlc0xheW91dDogJ2dyaWQnLFxuICAgICAgICBncmlkQ29sdW1uczogMixcbiAgICAgICAgLi4uZXh0cmFzLFxuICAgICAgfTtcbiAgICAgIHJldHVybiBzaGFsbG93KDxDaG9pY2Ugey4uLnByb3BzfSAvPik7XG4gICAgfTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3NuYXBzaG90JywgKCkgPT4ge1xuICAgIGl0KCdyZW5kZXJzJywgKCkgPT4ge1xuICAgICAgZXhwZWN0KHdyYXBwZXIoKSkudG9NYXRjaFNuYXBzaG90KCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdsb2dpYycsICgpID0+IHtcbiAgICBpdCgnZG9lcyBub3QgY2FsbCBvbkNob2ljZUNoYW5nZWQgaWYgZGlzYWJsZWQgaXMgdHJ1ZScsICgpID0+IHtcbiAgICAgIGxldCB3ID0gd3JhcHBlcigpO1xuXG4gICAgICB3Lmluc3RhbmNlKCkub25DaGFuZ2UoKTtcblxuICAgICAgZXhwZWN0KG9uQ2hvaWNlQ2hhbmdlZCkubm90LnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgICB9KTtcblxuICAgIGl0KCdjYWxscyBvbkNob2ljZUNoYW5nZWQgaWYgZGlzYWJsZWQgaXMgZmFsc2UnLCAoKSA9PiB7XG4gICAgICBsZXQgdyA9IHdyYXBwZXIoeyBkaXNhYmxlZDogZmFsc2UgfSk7XG5cbiAgICAgIHcuaW5zdGFuY2UoKS5vbkNoYW5nZSgpO1xuXG4gICAgICBleHBlY3Qob25DaG9pY2VDaGFuZ2VkKS50b0hhdmVCZWVuQ2FsbGVkKCk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG5cbmRlc2NyaWJlKCdDb3Jlc3ByaW5nQ2hvaWNlJywgKCkgPT4ge1xuICBsZXQgd3JhcHBlciwgdG9nZ2xlO1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIHRvZ2dsZSA9ICgpID0+IHtcbiAgICAgIHJldHVybiA8ZGl2Pm1vY2tlZC10b2dnbGU8L2Rpdj47XG4gICAgfTtcbiAgfSk7XG5cbiAgbGV0IG1rV3JhcHBlciA9IChvcHRzLCBjbG9uZSA9IHRydWUpID0+IHtcbiAgICBvcHRzID0gY2xvbmVcbiAgICAgID8gKG9wdHMgPSBfLm1lcmdlKFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzZXM6IHt9LFxuICAgICAgICAgICAgY2hvaWNlczogW10sXG4gICAgICAgICAgICBkaXNhYmxlZDogZmFsc2UsXG4gICAgICAgICAgICBrZXlNb2RlOiAnbGV0dGVycycsXG4gICAgICAgICAgICBvbkNob2ljZUNoYW5nZWQ6IGplc3QuZm4oKSxcbiAgICAgICAgICAgIG1vZGU6ICdnYXRoZXInLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgb3B0cyxcbiAgICAgICAgKSlcbiAgICAgIDogb3B0cztcblxuICAgIHJldHVybiBzaGFsbG93KDxNdWx0aXBsZUNob2ljZSB7Li4ub3B0c30gLz4pO1xuICB9O1xuXG4gIGRlc2NyaWJlKCdzbmFwc2hvdCcsICgpID0+IHtcbiAgICBpdCgncmVuZGVycycsICgpID0+IHtcbiAgICAgIHdyYXBwZXIgPSBta1dyYXBwZXIoe1xuICAgICAgICBjaG9pY2VzOiBbXG4gICAgICAgICAgeyB2YWx1ZTogJ2EnLCBsYWJlbDogJ2xhYmVsIGEnLCBjb3JyZWN0OiB0cnVlLCBmZWVkYmFjazogJ2dyZWF0JyB9LFxuICAgICAgICAgIHsgdmFsdWU6ICdiJywgbGFiZWw6ICdsYWJlbCBiJyB9LFxuICAgICAgICAgIHsgdmFsdWU6ICdjJywgbGFiZWw6ICdsYWJlbCBjJywgY29ycmVjdDogdHJ1ZSwgZmVlZGJhY2s6ICdncmVhdCcgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3Qod3JhcHBlcikudG9NYXRjaFNuYXBzaG90KCk7XG4gICAgfSk7XG5cbiAgICBkZXNjcmliZSgncmVuZGVycyBpbmNvcnJlY3QgdGljayBpZiBvbmUgYW5zd2VyIGlzIGNvcnJlY3QgYnV0IGl0IGlzIG5vdCBjaGVja2VkJywgKCkgPT4ge1xuICAgICAgaXQoJ3JlbmRlcnMnLCAoKSA9PiB7XG4gICAgICAgIGxldCB3ID0gbWtXcmFwcGVyKHtcbiAgICAgICAgICBtb2RlOiAnZXZhbHVhdGUnLFxuICAgICAgICAgIGtleU1vZGU6ICdub25lJyxcbiAgICAgICAgICBjaG9pY2VzOiBbXG4gICAgICAgICAgICB7IHZhbHVlOiAnYScsIGxhYmVsOiAnbGFiZWwgYScsIGNvcnJlY3Q6IHRydWUsIGZlZWRiYWNrOiAnZ3JlYXQnIH0sXG4gICAgICAgICAgICB7IHZhbHVlOiAnYicsIGxhYmVsOiAnbGFiZWwgYicgfSxcbiAgICAgICAgICAgIHsgdmFsdWU6ICdjJywgbGFiZWw6ICdsYWJlbCBjJywgY29ycmVjdDogdHJ1ZSwgZmVlZGJhY2s6ICdncmVhdCcgfSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIHNlc3Npb246IHtcbiAgICAgICAgICAgIHZhbHVlOiBbJ2EnXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcblxuICAgICAgICBleHBlY3QodykudG9NYXRjaFNuYXBzaG90KCk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGRlc2NyaWJlKCdnZXRDb3JyZWN0bmVzcycsICgpID0+IHtcbiAgICAgIGxldCBpdGVtQ2hvaWNlcyA9IFtcbiAgICAgICAgeyB2YWx1ZTogJ2EnLCBsYWJlbDogJ2xhYmVsIGEnLCBjb3JyZWN0OiB0cnVlLCBmZWVkYmFjazogJ2dyZWF0JyB9LFxuICAgICAgICB7IHZhbHVlOiAnYicsIGxhYmVsOiAnbGFiZWwgYicgfSxcbiAgICAgICAgeyB2YWx1ZTogJ2MnLCBsYWJlbDogJ2xhYmVsIGMnLCBmZWVkYmFjazogJ2dyZWF0JyB9LFxuICAgICAgICB7IHZhbHVlOiAnZCcsIGxhYmVsOiAnbGFiZWwgZCcsIGNvcnJlY3Q6IHRydWUsIGZlZWRiYWNrOiAnZ3JlYXQnIH0sXG4gICAgICBdO1xuICAgICAgbGV0IHcgPSBta1dyYXBwZXIoe1xuICAgICAgICBtb2RlOiAnZXZhbHVhdGUnLFxuICAgICAgICBjaG9pY2VzOiBpdGVtQ2hvaWNlcyxcbiAgICAgICAgc2Vzc2lvbjoge1xuICAgICAgICAgIHZhbHVlOiBbJ2EnLCAnYyddLFxuICAgICAgICB9LFxuICAgICAgfSk7XG5cbiAgICAgIGRlc2NyaWJlKCdzaG93Q29ycmVjdFRvZ2dsZSBkaXNhYmxlZCAoc3RhdGUuc2hvd0NvcnJlY3QgaXMgZmFsc2UpJywgKCkgPT4ge1xuICAgICAgICBpdCgnc2hvd3MgY2hvaWNlIGNvcnJlY3RuZXNzIG9ubHkgaWYgd2FzIGNoZWNrZWQnLCAoKSA9PiB7XG4gICAgICAgICAgLy8gdGhpcyBvbmUgd2FzIHNlbGVjdGVkIGFuZCBpcyBjb3JyZWN0XG4gICAgICAgICAgZXhwZWN0KHcuaW5zdGFuY2UoKS5nZXRDb3JyZWN0bmVzcyhpdGVtQ2hvaWNlc1swXSkpLnRvRXF1YWwoJ2NvcnJlY3QnKTtcbiAgICAgICAgICAvLyB0aGlzIG9uZSB3YXMgbm90IHNlbGVjdGVkIGFuZCBpcyBpbmNvcnJlY3RcbiAgICAgICAgICBleHBlY3Qody5pbnN0YW5jZSgpLmdldENvcnJlY3RuZXNzKGl0ZW1DaG9pY2VzWzFdKSkudG9FcXVhbCh1bmRlZmluZWQpO1xuICAgICAgICAgIC8vIHRoaXMgb25lIHdhcyBzZWxlY3RlZCwgYnV0IGlzIGluY29ycmVjdFxuICAgICAgICAgIGV4cGVjdCh3Lmluc3RhbmNlKCkuZ2V0Q29ycmVjdG5lc3MoaXRlbUNob2ljZXNbMl0pKS50b0VxdWFsKCdpbmNvcnJlY3QnKTtcbiAgICAgICAgICAvLyB0aGlzIG9uZSB3YXMgbm90IHNlbGVjdGVkIGFuZCBpcyBjb3JyZWN0XG4gICAgICAgICAgZXhwZWN0KHcuaW5zdGFuY2UoKS5nZXRDb3JyZWN0bmVzcyhpdGVtQ2hvaWNlc1szXSkpLnRvRXF1YWwoJ2luY29ycmVjdCcpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuXG4gICAgICBkZXNjcmliZSgnc2hvd0NvcnJlY3RUb2dnbGUgZW5hYmxlZCAoc3RhdGUuc2hvd0NvcnJlY3QgaXMgdHJ1ZSknLCAoKSA9PiB7XG4gICAgICAgIGl0KCdzaG93cyBjaG9pY2UgY29ycmVjdG5lc3Mgbm8gbWF0dGVyIGlmIHdhcyBjaGVja2VkIG9yIG5vdCcsICgpID0+IHtcbiAgICAgICAgICB3Lmluc3RhbmNlKCkuc3RhdGUuc2hvd0NvcnJlY3QgPSB0cnVlO1xuXG4gICAgICAgICAgLy8gdGhpcyBvbmUgaXMgY29ycmVjdFxuICAgICAgICAgIGV4cGVjdCh3Lmluc3RhbmNlKCkuZ2V0Q29ycmVjdG5lc3MoaXRlbUNob2ljZXNbMF0pKS50b0VxdWFsKCdjb3JyZWN0Jyk7XG4gICAgICAgICAgLy8gdGhpcyBvbmUgaXMgbm90IGNvcnJlY3RcbiAgICAgICAgICBleHBlY3Qody5pbnN0YW5jZSgpLmdldENvcnJlY3RuZXNzKGl0ZW1DaG9pY2VzWzFdKSkudG9FcXVhbCh1bmRlZmluZWQpO1xuICAgICAgICAgIC8vIHRoaXMgb25lIGlzIG5vdCBjb3JyZWN0XG4gICAgICAgICAgZXhwZWN0KHcuaW5zdGFuY2UoKS5nZXRDb3JyZWN0bmVzcyhpdGVtQ2hvaWNlc1syXSkpLnRvRXF1YWwodW5kZWZpbmVkKTtcbiAgICAgICAgICAvLyB0aGlzIG9uZSBpcyBjb3JyZWN0XG4gICAgICAgICAgZXhwZWN0KHcuaW5zdGFuY2UoKS5nZXRDb3JyZWN0bmVzcyhpdGVtQ2hvaWNlc1szXSkpLnRvRXF1YWwoJ2NvcnJlY3QnKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGRlc2NyaWJlKCdvblRvZ2dsZScsICgpID0+IHtcbiAgICAgIGl0KCd0b2dnbGVzIHRoZSBzdGF0ZScsICgpID0+IHtcbiAgICAgICAgbGV0IHcgPSBta1dyYXBwZXIoeyBtb2RlOiAnZXZhbHVhdGUnIH0pO1xuICAgICAgICBleHBlY3Qody5zdGF0ZSgnc2hvd0NvcnJlY3QnKSkudG9FcXVhbChmYWxzZSk7XG4gICAgICAgIHcuaW5zdGFuY2UoKS5vblRvZ2dsZSgpO1xuICAgICAgICBleHBlY3Qody5zdGF0ZSgnc2hvd0NvcnJlY3QnKSkudG9FcXVhbCh0cnVlKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgZGVzY3JpYmUoJ1RvZ2dsZScsICgpID0+IHtcbiAgICAgIGl0KCd0b2dnbGUgaXMgcmVuZGVyZWQnLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHQgPSBta1dyYXBwZXIoKS5maW5kKENvcnJlY3RBbnN3ZXJUb2dnbGUpO1xuICAgICAgICBleHBlY3QodC5sZW5ndGgpLnRvRXF1YWwoMSk7XG4gICAgICB9KTtcblxuICAgICAgaXQoJ3RvZ2dsZSBzaG93IGlzIHNldCB0byBmYWxzZScsICgpID0+IHtcbiAgICAgICAgZXhwZWN0KG1rV3JhcHBlcigpLmZpbmQoQ29ycmVjdEFuc3dlclRvZ2dsZSkucHJvcCgnc2hvdycpKS50b0VxdWFsKGZhbHNlKTtcbiAgICAgIH0pO1xuXG4gICAgICBpdCgnc2hvd3MgdG9nZ2xlIGlmIG1vZGUgaXMgZXZhbHVhdGUsIGZlZWRiYWNrIGlzIGVuYWJsZWQgYW5kIHJlc3BvbnNlQ29ycmVjdCBpcyBmYWxzZScsICgpID0+IHtcbiAgICAgICAgZXhwZWN0KFxuICAgICAgICAgIG1rV3JhcHBlcih7IG1vZGU6ICdldmFsdWF0ZScsIHJlc3BvbnNlQ29ycmVjdDogZmFsc2UsIGZlZWRiYWNrRW5hYmxlZDogdHJ1ZSB9KVxuICAgICAgICAgICAgLmZpbmQoQ29ycmVjdEFuc3dlclRvZ2dsZSlcbiAgICAgICAgICAgIC5wcm9wKCdzaG93JyksXG4gICAgICAgICkudG9FcXVhbCh0cnVlKTtcbiAgICAgIH0pO1xuXG4gICAgICBpdCgnaGlkZXMgdG9nZ2xlIGlmIG1vZGUgaXMgZXZhbHVhdGUgYW5kIHJlc3BvbnNlQ29ycmVjdCBpcyBmYWxzZScsICgpID0+IHtcbiAgICAgICAgZXhwZWN0KG1rV3JhcHBlcih7IG1vZGU6ICdldmFsdWF0ZScsIHJlc3BvbnNlQ29ycmVjdDogdHJ1ZSB9KS5maW5kKENvcnJlY3RBbnN3ZXJUb2dnbGUpLnByb3AoJ3Nob3cnKSkudG9FcXVhbChcbiAgICAgICAgICBmYWxzZSxcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuXG4gICAgICBpdCgnbm90IHRvZ2dsZWQgaWYgc2hvd0NvcnJlY3QgaXMgZmFsc2UnLCAoKSA9PiB7XG4gICAgICAgIGxldCB3ID0gbWtXcmFwcGVyKHsgbW9kZTogJ2V2YWx1YXRlJyB9KTtcbiAgICAgICAgdy5zZXRTdGF0ZSh7IHNob3dDb3JyZWN0OiBmYWxzZSB9KTtcbiAgICAgICAgZXhwZWN0KHcuZmluZChDb3JyZWN0QW5zd2VyVG9nZ2xlKS5wcm9wKCd0b2dnbGVkJykpLnRvRXF1YWwoZmFsc2UpO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KCdpcyB0b2dnbGVkIHNob3dDb3JyZWN0PXRydWUgJiYgbW9kZT1ldmFsdWF0ZScsICgpID0+IHtcbiAgICAgICAgbGV0IHcgPSBta1dyYXBwZXIoeyBtb2RlOiAnZXZhbHVhdGUnIH0pO1xuICAgICAgICB3LnNldFN0YXRlKHsgc2hvd0NvcnJlY3Q6IHRydWUgfSk7XG4gICAgICAgIGV4cGVjdCh3LmZpbmQoQ29ycmVjdEFuc3dlclRvZ2dsZSkucHJvcCgndG9nZ2xlZCcpKS50b0VxdWFsKHRydWUpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
@@ -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=