@pie-element/multiple-choice 7.6.1-beta.2 → 7.6.1-beta.3
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/configure/package.json +3 -3
- package/package.json +3 -3
- package/configure/lib/__tests__/root.test.js +0 -271
- package/configure/lib/defaults.js +0 -120
- package/configure/lib/defaults.js.map +0 -1
- package/configure/lib/index.js +0 -212
- package/configure/lib/index.js.map +0 -1
- package/configure/lib/main.js +0 -604
- package/configure/lib/main.js.map +0 -1
- package/configure/lib/utils.js +0 -18
- package/configure/lib/utils.js.map +0 -1
- package/controller/lib/__tests__/index.test.js +0 -864
- package/controller/lib/__tests__/utils.test.js +0 -8
- package/controller/lib/defaults.js +0 -18
- package/controller/lib/defaults.js.map +0 -1
- package/controller/lib/index.js +0 -305
- package/controller/lib/index.js.map +0 -1
- package/controller/lib/utils.js +0 -36
- package/controller/lib/utils.js.map +0 -1
- package/docs/demo/pie.manifest.json +0 -11
- package/lib/__tests__/choice-input-test.js +0 -124
- package/lib/__tests__/index-test.js +0 -22
- package/lib/__tests__/multiple-choice-test.js +0 -237
- package/lib/__tests__/session-updater-test.js +0 -72
- package/lib/choice-input.js +0 -298
- package/lib/choice-input.js.map +0 -1
- package/lib/choice.js +0 -157
- package/lib/choice.js.map +0 -1
- package/lib/feedback-tick.js +0 -174
- package/lib/feedback-tick.js.map +0 -1
- package/lib/index.js +0 -151
- package/lib/index.js.map +0 -1
- package/lib/main.js +0 -100
- package/lib/main.js.map +0 -1
- package/lib/multiple-choice.js +0 -263
- package/lib/multiple-choice.js.map +0 -1
- package/lib/print.js +0 -129
- package/lib/print.js.map +0 -1
- package/lib/session-updater.js +0 -35
- package/lib/session-updater.js.map +0 -1
|
@@ -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=
|
package/lib/choice-input.js
DELETED
|
@@ -1,298 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports["default"] = exports.StyledRadio = exports.StyledFormControlLabel = exports.StyledCheckbox = exports.ChoiceInput = void 0;
|
|
9
|
-
|
|
10
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
-
|
|
12
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
|
-
|
|
14
|
-
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
15
|
-
|
|
16
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
17
|
-
|
|
18
|
-
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
19
|
-
|
|
20
|
-
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
21
|
-
|
|
22
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
23
|
-
|
|
24
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
25
|
-
|
|
26
|
-
var _FormControlLabel = _interopRequireDefault(require("@material-ui/core/FormControlLabel"));
|
|
27
|
-
|
|
28
|
-
var _react = _interopRequireDefault(require("react"));
|
|
29
|
-
|
|
30
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
31
|
-
|
|
32
|
-
var _styles = require("@material-ui/core/styles");
|
|
33
|
-
|
|
34
|
-
var _Checkbox = _interopRequireDefault(require("@material-ui/core/Checkbox"));
|
|
35
|
-
|
|
36
|
-
var _renderUi = require("@pie-lib/render-ui");
|
|
37
|
-
|
|
38
|
-
var _feedbackTick = _interopRequireDefault(require("./feedback-tick"));
|
|
39
|
-
|
|
40
|
-
var _Radio = _interopRequireDefault(require("@material-ui/core/Radio"));
|
|
41
|
-
|
|
42
|
-
var _classnames = _interopRequireDefault(require("classnames"));
|
|
43
|
-
|
|
44
|
-
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
45
|
-
|
|
46
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
47
|
-
|
|
48
|
-
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; }
|
|
49
|
-
|
|
50
|
-
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; }
|
|
51
|
-
|
|
52
|
-
var CLASS_NAME = 'multiple-choice-component';
|
|
53
|
-
|
|
54
|
-
var styleSheet = function styleSheet() {
|
|
55
|
-
return {
|
|
56
|
-
row: {
|
|
57
|
-
display: 'flex',
|
|
58
|
-
alignItems: 'center',
|
|
59
|
-
backgroundColor: _renderUi.color.background()
|
|
60
|
-
},
|
|
61
|
-
checkboxHolder: {
|
|
62
|
-
display: 'flex',
|
|
63
|
-
alignItems: 'center',
|
|
64
|
-
backgroundColor: _renderUi.color.background(),
|
|
65
|
-
flex: 1,
|
|
66
|
-
'& label': {
|
|
67
|
-
color: _renderUi.color.text()
|
|
68
|
-
}
|
|
69
|
-
},
|
|
70
|
-
horizontalLayout: (0, _defineProperty2["default"])({}, "& .".concat(CLASS_NAME), {
|
|
71
|
-
paddingRight: '8px'
|
|
72
|
-
})
|
|
73
|
-
};
|
|
74
|
-
};
|
|
75
|
-
|
|
76
|
-
var formStyleSheet = {
|
|
77
|
-
label: {
|
|
78
|
-
color: "".concat(_renderUi.color.text(), " !important"),
|
|
79
|
-
//'var(--choice-input-color, black)'
|
|
80
|
-
backgroundColor: _renderUi.color.background()
|
|
81
|
-
}
|
|
82
|
-
};
|
|
83
|
-
var StyledFormControlLabel = (0, _styles.withStyles)(formStyleSheet, {
|
|
84
|
-
name: 'FormControlLabel'
|
|
85
|
-
})(function (props) {
|
|
86
|
-
return /*#__PURE__*/_react["default"].createElement(_FormControlLabel["default"], (0, _extends2["default"])({}, props, {
|
|
87
|
-
classes: {
|
|
88
|
-
label: props.classes.label
|
|
89
|
-
}
|
|
90
|
-
}));
|
|
91
|
-
});
|
|
92
|
-
exports.StyledFormControlLabel = StyledFormControlLabel;
|
|
93
|
-
|
|
94
|
-
var colorStyle = function colorStyle(varName, fallback) {
|
|
95
|
-
return (0, _defineProperty2["default"])({}, "&.".concat(CLASS_NAME), {
|
|
96
|
-
color: "var(--choice-input-".concat(varName, ", ").concat(fallback, ") !important")
|
|
97
|
-
});
|
|
98
|
-
};
|
|
99
|
-
|
|
100
|
-
var inputStyles = {
|
|
101
|
-
'correct-root': colorStyle('correct-color', _renderUi.color.text()),
|
|
102
|
-
'correct-checked': colorStyle('correct-selected-color', _renderUi.color.correct()),
|
|
103
|
-
//green[500]),
|
|
104
|
-
'correct-disabled': colorStyle('correct-disabled-color', _renderUi.color.disabled()),
|
|
105
|
-
//'grey'),
|
|
106
|
-
'incorrect-root': colorStyle('incorrect-color', _renderUi.color.incorrect()),
|
|
107
|
-
'incorrect-checked': colorStyle('incorrect-checked', _renderUi.color.incorrect()),
|
|
108
|
-
//orange[500]),
|
|
109
|
-
'incorrect-disabled': colorStyle('incorrect-disabled-color', _renderUi.color.disabled()),
|
|
110
|
-
root: _objectSpread(_objectSpread({}, colorStyle('color', _renderUi.color.text())), {}, {
|
|
111
|
-
'&:hover': {
|
|
112
|
-
color: "".concat(_renderUi.color.primaryLight(), " !important")
|
|
113
|
-
}
|
|
114
|
-
}),
|
|
115
|
-
checked: colorStyle('selected-color', _renderUi.color.primary()),
|
|
116
|
-
disabled: _objectSpread(_objectSpread({}, colorStyle('disabled-color', _renderUi.color.text())), {}, {
|
|
117
|
-
opacity: 0.6,
|
|
118
|
-
cursor: 'not-allowed !important',
|
|
119
|
-
pointerEvents: 'initial !important'
|
|
120
|
-
})
|
|
121
|
-
};
|
|
122
|
-
var StyledCheckbox = (0, _styles.withStyles)(inputStyles)(function (props) {
|
|
123
|
-
var correctness = props.correctness,
|
|
124
|
-
classes = props.classes,
|
|
125
|
-
checked = props.checked,
|
|
126
|
-
onChange = props.onChange,
|
|
127
|
-
disabled = props.disabled,
|
|
128
|
-
accessibility = props.accessibility;
|
|
129
|
-
|
|
130
|
-
var key = function key(k) {
|
|
131
|
-
return correctness ? "".concat(correctness, "-").concat(k) : k;
|
|
132
|
-
};
|
|
133
|
-
|
|
134
|
-
var resolved = {
|
|
135
|
-
root: classes[key('root')],
|
|
136
|
-
checked: classes[key('checked')],
|
|
137
|
-
disabled: classes[key('disabled')]
|
|
138
|
-
};
|
|
139
|
-
var miniProps = {
|
|
140
|
-
checked: checked,
|
|
141
|
-
onChange: onChange,
|
|
142
|
-
disabled: disabled
|
|
143
|
-
};
|
|
144
|
-
return /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], (0, _extends2["default"])({
|
|
145
|
-
"aria-label": accessibility
|
|
146
|
-
}, miniProps, {
|
|
147
|
-
className: CLASS_NAME,
|
|
148
|
-
classes: {
|
|
149
|
-
root: resolved.root,
|
|
150
|
-
checked: resolved.checked,
|
|
151
|
-
disabled: "".concat(correctness ? '' : resolved.disabled)
|
|
152
|
-
}
|
|
153
|
-
}));
|
|
154
|
-
});
|
|
155
|
-
exports.StyledCheckbox = StyledCheckbox;
|
|
156
|
-
var StyledRadio = (0, _styles.withStyles)(inputStyles)(function (props) {
|
|
157
|
-
var correctness = props.correctness,
|
|
158
|
-
classes = props.classes,
|
|
159
|
-
checked = props.checked,
|
|
160
|
-
onChange = props.onChange,
|
|
161
|
-
disabled = props.disabled,
|
|
162
|
-
accessibility = props.accessibility;
|
|
163
|
-
|
|
164
|
-
var key = function key(k) {
|
|
165
|
-
return correctness ? "".concat(correctness, "-").concat(k) : k;
|
|
166
|
-
};
|
|
167
|
-
|
|
168
|
-
var resolved = {
|
|
169
|
-
root: classes[key('root')],
|
|
170
|
-
checked: classes[key('checked')],
|
|
171
|
-
disabled: classes[key('disabled')]
|
|
172
|
-
};
|
|
173
|
-
var miniProps = {
|
|
174
|
-
checked: checked,
|
|
175
|
-
onChange: onChange,
|
|
176
|
-
disabled: disabled
|
|
177
|
-
};
|
|
178
|
-
return /*#__PURE__*/_react["default"].createElement(_Radio["default"], (0, _extends2["default"])({
|
|
179
|
-
"aria-label": accessibility
|
|
180
|
-
}, miniProps, {
|
|
181
|
-
className: CLASS_NAME,
|
|
182
|
-
classes: {
|
|
183
|
-
root: resolved.root,
|
|
184
|
-
checked: resolved.checked,
|
|
185
|
-
disabled: "".concat(correctness ? '' : resolved.disabled)
|
|
186
|
-
}
|
|
187
|
-
}));
|
|
188
|
-
});
|
|
189
|
-
exports.StyledRadio = StyledRadio;
|
|
190
|
-
|
|
191
|
-
var ChoiceInput = /*#__PURE__*/function (_React$Component) {
|
|
192
|
-
(0, _inherits2["default"])(ChoiceInput, _React$Component);
|
|
193
|
-
|
|
194
|
-
var _super = _createSuper(ChoiceInput);
|
|
195
|
-
|
|
196
|
-
function ChoiceInput(props) {
|
|
197
|
-
var _this;
|
|
198
|
-
|
|
199
|
-
(0, _classCallCheck2["default"])(this, ChoiceInput);
|
|
200
|
-
_this = _super.call(this, props);
|
|
201
|
-
_this.onToggleChoice = _this.onToggleChoice.bind((0, _assertThisInitialized2["default"])(_this));
|
|
202
|
-
return _this;
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
(0, _createClass2["default"])(ChoiceInput, [{
|
|
206
|
-
key: "onToggleChoice",
|
|
207
|
-
value: function onToggleChoice() {
|
|
208
|
-
this.props.onChange({
|
|
209
|
-
value: this.props.value,
|
|
210
|
-
selected: !this.props.checked
|
|
211
|
-
});
|
|
212
|
-
}
|
|
213
|
-
}, {
|
|
214
|
-
key: "render",
|
|
215
|
-
value: function render() {
|
|
216
|
-
var _this$props = this.props,
|
|
217
|
-
choiceMode = _this$props.choiceMode,
|
|
218
|
-
disabled = _this$props.disabled,
|
|
219
|
-
displayKey = _this$props.displayKey,
|
|
220
|
-
feedback = _this$props.feedback,
|
|
221
|
-
label = _this$props.label,
|
|
222
|
-
checked = _this$props.checked,
|
|
223
|
-
correctness = _this$props.correctness,
|
|
224
|
-
classes = _this$props.classes,
|
|
225
|
-
className = _this$props.className,
|
|
226
|
-
rationale = _this$props.rationale,
|
|
227
|
-
accessibility = _this$props.accessibility,
|
|
228
|
-
hideTick = _this$props.hideTick,
|
|
229
|
-
isEvaluateMode = _this$props.isEvaluateMode,
|
|
230
|
-
choicesLayout = _this$props.choicesLayout;
|
|
231
|
-
var Tag = choiceMode === 'checkbox' ? StyledCheckbox : StyledRadio;
|
|
232
|
-
var classSuffix = choiceMode === 'checkbox' ? 'checkbox' : 'radio-button';
|
|
233
|
-
var holderClassNames = (0, _classnames["default"])(classes.checkboxHolder, (0, _defineProperty2["default"])({}, classes.horizontalLayout, choicesLayout === 'horizontal'));
|
|
234
|
-
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
235
|
-
className: (0, _classnames["default"])(className, 'corespring-' + classSuffix, 'choice-input')
|
|
236
|
-
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
237
|
-
className: classes.row
|
|
238
|
-
}, !hideTick && isEvaluateMode && /*#__PURE__*/_react["default"].createElement(_feedbackTick["default"], {
|
|
239
|
-
correctness: correctness
|
|
240
|
-
}), /*#__PURE__*/_react["default"].createElement("div", {
|
|
241
|
-
className: (0, _classnames["default"])(holderClassNames, 'checkbox-holder')
|
|
242
|
-
}, /*#__PURE__*/_react["default"].createElement(StyledFormControlLabel, {
|
|
243
|
-
disabled: disabled,
|
|
244
|
-
label: displayKey ? displayKey + '. ' : '',
|
|
245
|
-
control: /*#__PURE__*/_react["default"].createElement(Tag, {
|
|
246
|
-
accessibility: accessibility,
|
|
247
|
-
checked: checked,
|
|
248
|
-
correctness: correctness,
|
|
249
|
-
onChange: this.onToggleChoice
|
|
250
|
-
})
|
|
251
|
-
}), /*#__PURE__*/_react["default"].createElement(_renderUi.PreviewPrompt, {
|
|
252
|
-
className: "label",
|
|
253
|
-
onClick: this.onToggleChoice,
|
|
254
|
-
prompt: label,
|
|
255
|
-
tagName: "span"
|
|
256
|
-
}))), rationale && /*#__PURE__*/_react["default"].createElement(_renderUi.PreviewPrompt, {
|
|
257
|
-
className: "rationale",
|
|
258
|
-
defaultClassName: "rationale",
|
|
259
|
-
prompt: rationale
|
|
260
|
-
}), /*#__PURE__*/_react["default"].createElement(_renderUi.Feedback, {
|
|
261
|
-
feedback: feedback,
|
|
262
|
-
correctness: correctness
|
|
263
|
-
}));
|
|
264
|
-
}
|
|
265
|
-
}]);
|
|
266
|
-
return ChoiceInput;
|
|
267
|
-
}(_react["default"].Component);
|
|
268
|
-
|
|
269
|
-
exports.ChoiceInput = ChoiceInput;
|
|
270
|
-
(0, _defineProperty2["default"])(ChoiceInput, "propTypes", {
|
|
271
|
-
choiceMode: _propTypes["default"].oneOf(['radio', 'checkbox']),
|
|
272
|
-
displayKey: _propTypes["default"].string.isRequired,
|
|
273
|
-
checked: _propTypes["default"].bool.isRequired,
|
|
274
|
-
correctness: _propTypes["default"].string,
|
|
275
|
-
disabled: _propTypes["default"].bool.isRequired,
|
|
276
|
-
feedback: _propTypes["default"].string,
|
|
277
|
-
label: _propTypes["default"].string.isRequired,
|
|
278
|
-
rationale: _propTypes["default"].string,
|
|
279
|
-
accessibility: _propTypes["default"].string,
|
|
280
|
-
onChange: _propTypes["default"].func.isRequired,
|
|
281
|
-
value: _propTypes["default"].string.isRequired,
|
|
282
|
-
classes: _propTypes["default"].object,
|
|
283
|
-
className: _propTypes["default"].string,
|
|
284
|
-
hideTick: _propTypes["default"].bool,
|
|
285
|
-
isEvaluateMode: _propTypes["default"].bool,
|
|
286
|
-
choicesLayout: _propTypes["default"].oneOf(['vertical', 'grid', 'horizontal'])
|
|
287
|
-
});
|
|
288
|
-
(0, _defineProperty2["default"])(ChoiceInput, "defaultProps", {
|
|
289
|
-
rationale: null,
|
|
290
|
-
accessibility: null,
|
|
291
|
-
checked: false,
|
|
292
|
-
isEvaluateMode: false
|
|
293
|
-
});
|
|
294
|
-
|
|
295
|
-
var _default = (0, _styles.withStyles)(styleSheet)(ChoiceInput);
|
|
296
|
-
|
|
297
|
-
exports["default"] = _default;
|
|
298
|
-
//# sourceMappingURL=choice-input.js.map
|