@coorpacademy/player-web 4.22.52 → 4.23.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.
- package/es/index.js +1 -8
- package/es/index.js.map +1 -1
- package/es/map-state-to-props/answer.js +0 -35
- package/es/map-state-to-props/answer.js.map +1 -1
- package/es/map-state-to-props/error-popin.js +0 -4
- package/es/map-state-to-props/error-popin.js.map +1 -1
- package/es/map-state-to-props/header.js +3 -14
- package/es/map-state-to-props/header.js.map +1 -1
- package/es/map-state-to-props/index.js +0 -6
- package/es/map-state-to-props/index.js.map +1 -1
- package/es/map-state-to-props/loading.js +0 -1
- package/es/map-state-to-props/loading.js.map +1 -1
- package/es/map-state-to-props/player.js +0 -13
- package/es/map-state-to-props/player.js.map +1 -1
- package/es/map-state-to-props/popin-correction.js +0 -25
- package/es/map-state-to-props/popin-correction.js.map +1 -1
- package/es/map-state-to-props/popin-end.js +6 -35
- package/es/map-state-to-props/popin-end.js.map +1 -1
- package/es/map-state-to-props/resources.js +4 -10
- package/es/map-state-to-props/resources.js.map +1 -1
- package/es/map-state-to-props/slide.js +0 -2
- package/es/map-state-to-props/slide.js.map +1 -1
- package/es/map-state-to-props/test/answer.js +0 -21
- package/es/map-state-to-props/test/answer.js.map +1 -1
- package/es/map-state-to-props/test/header.js +0 -2
- package/es/map-state-to-props/test/header.js.map +1 -1
- package/es/map-state-to-props/test/index.js +22 -29
- package/es/map-state-to-props/test/index.js.map +1 -1
- package/es/map-state-to-props/test/player.js +6 -19
- package/es/map-state-to-props/test/player.js.map +1 -1
- package/es/map-state-to-props/test/popin-correction.create-header-cta.js +0 -15
- package/es/map-state-to-props/test/popin-correction.create-header-cta.js.map +1 -1
- package/es/map-state-to-props/test/popin-correction.js +0 -8
- package/es/map-state-to-props/test/popin-correction.js.map +1 -1
- package/es/map-state-to-props/test/popin-end.js +0 -13
- package/es/map-state-to-props/test/popin-end.js.map +1 -1
- package/es/map-state-to-props/test/popin-error.js.map +1 -1
- package/es/map-state-to-props/test/resources.js +0 -2
- package/es/map-state-to-props/test/resources.js.map +1 -1
- package/es/run-app.js +0 -2
- package/es/run-app.js.map +1 -1
- package/es/store.js +0 -4
- package/es/store.js.map +1 -1
- package/es/test/add-timeout.js.map +1 -1
- package/es/test/helpers/css-register.js.map +1 -1
- package/es/test/helpers/macro.js +0 -1
- package/es/test/helpers/macro.js.map +1 -1
- package/es/test/index.js.map +1 -1
- package/es/test/init-reducers.js.map +1 -1
- package/es/test/locales.js.map +1 -1
- package/es/test/run-app.js.map +1 -1
- package/es/test/store.js.map +1 -1
- package/es/views/index.js.map +1 -1
- package/es/views/test/helpers/render.js +0 -2
- package/es/views/test/helpers/render.js.map +1 -1
- package/es/views/test/helpers/state-to-vnode.js +0 -2
- package/es/views/test/helpers/state-to-vnode.js.map +1 -1
- package/es/views/test/loading.js.map +1 -1
- package/es/views/test/popin-correction.js +0 -6
- package/es/views/test/popin-correction.js.map +1 -1
- package/es/views/test/popin-end.js.map +1 -1
- package/es/views/test/router.js.map +1 -1
- package/es/views/test/slide.js +0 -1
- package/es/views/test/slide.js.map +1 -1
- package/lib/index.js +2 -18
- package/lib/index.js.map +1 -1
- package/lib/map-state-to-props/answer.js +1 -47
- package/lib/map-state-to-props/answer.js.map +1 -1
- package/lib/map-state-to-props/error-popin.js +2 -10
- package/lib/map-state-to-props/error-popin.js.map +1 -1
- package/lib/map-state-to-props/header.js +5 -19
- package/lib/map-state-to-props/header.js.map +1 -1
- package/lib/map-state-to-props/index.js +1 -19
- package/lib/map-state-to-props/index.js.map +1 -1
- package/lib/map-state-to-props/loading.js +1 -4
- package/lib/map-state-to-props/loading.js.map +1 -1
- package/lib/map-state-to-props/player.js +2 -22
- package/lib/map-state-to-props/player.js.map +1 -1
- package/lib/map-state-to-props/popin-correction.js +1 -32
- package/lib/map-state-to-props/popin-correction.js.map +1 -1
- package/lib/map-state-to-props/popin-end.js +8 -47
- package/lib/map-state-to-props/popin-end.js.map +1 -1
- package/lib/map-state-to-props/resources.js +6 -20
- package/lib/map-state-to-props/resources.js.map +1 -1
- package/lib/map-state-to-props/slide.js +2 -11
- package/lib/map-state-to-props/slide.js.map +1 -1
- package/lib/map-state-to-props/test/answer.js +1 -37
- package/lib/map-state-to-props/test/answer.js.map +1 -1
- package/lib/map-state-to-props/test/header.js +1 -12
- package/lib/map-state-to-props/test/header.js.map +1 -1
- package/lib/map-state-to-props/test/index.js +23 -20
- package/lib/map-state-to-props/test/index.js.map +1 -1
- package/lib/map-state-to-props/test/player.js +12 -52
- package/lib/map-state-to-props/test/player.js.map +1 -1
- package/lib/map-state-to-props/test/popin-correction.create-header-cta.js +1 -27
- package/lib/map-state-to-props/test/popin-correction.create-header-cta.js.map +1 -1
- package/lib/map-state-to-props/test/popin-correction.js +1 -11
- package/lib/map-state-to-props/test/popin-correction.js.map +1 -1
- package/lib/map-state-to-props/test/popin-end.js +1 -26
- package/lib/map-state-to-props/test/popin-end.js.map +1 -1
- package/lib/map-state-to-props/test/popin-error.js +1 -6
- package/lib/map-state-to-props/test/popin-error.js.map +1 -1
- package/lib/map-state-to-props/test/resources.js +1 -11
- package/lib/map-state-to-props/test/resources.js.map +1 -1
- package/lib/run-app.js +1 -5
- package/lib/run-app.js.map +1 -1
- package/lib/store.js +1 -11
- package/lib/store.js.map +1 -1
- package/lib/test/add-timeout.js +1 -4
- package/lib/test/add-timeout.js.map +1 -1
- package/lib/test/helpers/css-register.js +1 -3
- package/lib/test/helpers/css-register.js.map +1 -1
- package/lib/test/helpers/macro.js +1 -4
- package/lib/test/helpers/macro.js.map +1 -1
- package/lib/test/index.js +3 -12
- package/lib/test/index.js.map +1 -1
- package/lib/test/init-reducers.js +1 -5
- package/lib/test/init-reducers.js.map +1 -1
- package/lib/test/locales.js +1 -8
- package/lib/test/locales.js.map +1 -1
- package/lib/test/run-app.js +1 -5
- package/lib/test/run-app.js.map +1 -1
- package/lib/test/store.js +1 -5
- package/lib/test/store.js.map +1 -1
- package/lib/views/index.js +2 -9
- package/lib/views/index.js.map +1 -1
- package/lib/views/test/helpers/render.js +2 -10
- package/lib/views/test/helpers/render.js.map +1 -1
- package/lib/views/test/helpers/state-to-vnode.js +1 -6
- package/lib/views/test/helpers/state-to-vnode.js.map +1 -1
- package/lib/views/test/loading.js +1 -5
- package/lib/views/test/loading.js.map +1 -1
- package/lib/views/test/popin-correction.js +1 -18
- package/lib/views/test/popin-correction.js.map +1 -1
- package/lib/views/test/popin-end.js +1 -10
- package/lib/views/test/popin-end.js.map +1 -1
- package/lib/views/test/router.js +1 -8
- package/lib/views/test/router.js.map +1 -1
- package/lib/views/test/slide.js +3 -23
- package/lib/views/test/slide.js.map +1 -1
- package/package.json +13 -14
|
@@ -31,15 +31,12 @@ test('should create initial qcm props', t => {
|
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
33
|
};
|
|
34
|
-
|
|
35
34
|
const _getAnswerProps = createGetAnswerProps(options, {
|
|
36
35
|
dispatch: thunk => {
|
|
37
36
|
t.true(_isFunction(thunk));
|
|
38
37
|
}
|
|
39
38
|
});
|
|
40
|
-
|
|
41
39
|
const props = _getAnswerProps(state, qcm);
|
|
42
|
-
|
|
43
40
|
t.is(props.type, 'qcm');
|
|
44
41
|
t.true(props.answers.every(answer => answer.selected === false));
|
|
45
42
|
props.answers[0].onClick();
|
|
@@ -84,15 +81,12 @@ test('should create edited template props', t => {
|
|
|
84
81
|
}
|
|
85
82
|
}
|
|
86
83
|
};
|
|
87
|
-
|
|
88
84
|
const _getAnswerProps = createGetAnswerProps(options, {
|
|
89
85
|
dispatch: thunk => {
|
|
90
86
|
t.true(_isFunction(thunk));
|
|
91
87
|
}
|
|
92
88
|
});
|
|
93
|
-
|
|
94
89
|
const props = _getAnswerProps(state, template);
|
|
95
|
-
|
|
96
90
|
t.is(props.type, 'template');
|
|
97
91
|
t.is(props.template, 'The answer is {{inp81438}} {{sel31191}}');
|
|
98
92
|
t.true(Array.isArray(props.answers));
|
|
@@ -129,15 +123,12 @@ test('should add an invalid `select an answer` choice for a select field in a te
|
|
|
129
123
|
}
|
|
130
124
|
}
|
|
131
125
|
};
|
|
132
|
-
|
|
133
126
|
const _getAnswerProps = createGetAnswerProps(options, {
|
|
134
127
|
dispatch: thunk => {
|
|
135
128
|
t.true(_isFunction(thunk));
|
|
136
129
|
}
|
|
137
130
|
});
|
|
138
|
-
|
|
139
131
|
const props = _getAnswerProps(state, template);
|
|
140
|
-
|
|
141
132
|
const selectOptions = props.answers[1].options;
|
|
142
133
|
t.is(selectOptions.length, 3);
|
|
143
134
|
t.is(selectOptions[0].name, '__Select an answer');
|
|
@@ -201,20 +192,15 @@ test('should create edited qcmGraphic props', t => {
|
|
|
201
192
|
}
|
|
202
193
|
}
|
|
203
194
|
};
|
|
204
|
-
|
|
205
195
|
const _getAnswerProps = createGetAnswerProps(options, {
|
|
206
196
|
dispatch: thunk => {
|
|
207
197
|
t.true(_isFunction(thunk));
|
|
208
198
|
}
|
|
209
199
|
});
|
|
210
|
-
|
|
211
200
|
const props = _getAnswerProps(state, qcmGraphic);
|
|
212
|
-
|
|
213
201
|
t.is(props.type, 'qcmGraphic');
|
|
214
202
|
t.is(props.answers.length, 2);
|
|
215
|
-
|
|
216
203
|
const answers = _pipe(_map(_pick(['title', 'selected'])), _sortBy('title'))(props.answers);
|
|
217
|
-
|
|
218
204
|
t.deepEqual(answers, [{
|
|
219
205
|
title: 'Faux',
|
|
220
206
|
selected: false
|
|
@@ -261,15 +247,12 @@ test('should create edited qcmDrag props', t => {
|
|
|
261
247
|
}
|
|
262
248
|
}
|
|
263
249
|
};
|
|
264
|
-
|
|
265
250
|
const _getAnswerProps = createGetAnswerProps(options, {
|
|
266
251
|
dispatch: thunk => {
|
|
267
252
|
t.true(_isFunction(thunk));
|
|
268
253
|
}
|
|
269
254
|
});
|
|
270
|
-
|
|
271
255
|
const props = _getAnswerProps(state, qcmDrag);
|
|
272
|
-
|
|
273
256
|
t.is(props.type, 'qcmDrag');
|
|
274
257
|
t.is(props.answers.length, 3);
|
|
275
258
|
t.is(props.answers[0].title, "L'ordinateur");
|
|
@@ -295,11 +278,9 @@ test('should create initial slider props', t => {
|
|
|
295
278
|
}
|
|
296
279
|
}
|
|
297
280
|
};
|
|
298
|
-
|
|
299
281
|
const dispatch = action => {
|
|
300
282
|
t.pass();
|
|
301
283
|
};
|
|
302
|
-
|
|
303
284
|
const props = createGetAnswerProps(options, {
|
|
304
285
|
dispatch
|
|
305
286
|
})(state, slider);
|
|
@@ -322,11 +303,9 @@ test('should default slider step to 1', t => {
|
|
|
322
303
|
}
|
|
323
304
|
}
|
|
324
305
|
};
|
|
325
|
-
|
|
326
306
|
const dispatch = action => {
|
|
327
307
|
t.pass();
|
|
328
308
|
};
|
|
329
|
-
|
|
330
309
|
const props = createGetAnswerProps(options, {
|
|
331
310
|
dispatch
|
|
332
311
|
})(state, _omit('question.content.step', slider));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"answer.js","names":["test","mockTranslate","createGetAnswerProps","createGetHelp","basic","qcm","qcmDrag","qcmGraphic","template","slider","options","translate","store","dispatch","getAnswerProps","getHelp","t","plan","state","ui","current","progressionId","_getAnswerProps","thunk","true","props","is","type","answers","every","answer","selected","onClick","value","length","title","false","Array","isArray","name","placeholder","onChange","selectOptions","validOption","data","configs","entities","version","shuffleChoices","progressions","engine","ref","deepEqual","order","action","pass","minLabel","maxLabel","help","help1","help2"],"sources":["../../../src/map-state-to-props/test/answer.js"],"sourcesContent":["import test from 'ava';\nimport {omit, isFunction, identity, sortBy, pipe, map, pick} from 'lodash/fp';\n\nimport {mockTranslate} from '@coorpacademy/translate';\nimport {createGetAnswerProps, createGetHelp} from '../answer';\nimport basic from './fixtures/slides/basic';\nimport qcm from './fixtures/slides/qcm';\nimport qcmDrag from './fixtures/slides/qcm-drag';\nimport qcmGraphic from './fixtures/slides/qcm-graphic';\nimport template from './fixtures/slides/template';\nimport slider from './fixtures/slides/slider';\n\nconst options = {translate: mockTranslate};\nconst store = {dispatch: identity};\nconst getAnswerProps = createGetAnswerProps(options, store);\nconst getHelp = createGetHelp(options, store);\n\ntest('should create initial qcm props', t => {\n t.plan(3);\n\n const state = {\n ui: {\n current: {progressionId: '1234'}\n }\n };\n\n const _getAnswerProps = createGetAnswerProps(options, {\n dispatch: thunk => {\n t.true(isFunction(thunk));\n }\n });\n\n const props = _getAnswerProps(state, qcm);\n\n t.is(props.type, 'qcm');\n t.true(props.answers.every(answer => answer.selected === false));\n\n props.answers[0].onClick();\n});\n\ntest('should create edited qcm props', t => {\n const state = {\n ui: {\n answers: {1234: {value: ['Case 1', 'Case 3']}},\n current: {progressionId: '1234'}\n }\n };\n\n const props = getAnswerProps(state, qcm);\n\n t.is(props.type, 'qcm');\n t.is(props.answers.length, 4);\n t.is(props.answers[0].title, 'Case 1');\n t.true(props.answers[0].selected);\n t.is(props.answers[1].title, 'Case 2');\n t.false(props.answers[1].selected);\n t.is(props.answers[2].title, 'Case 3');\n t.true(props.answers[2].selected);\n t.is(props.answers[3].title, 'Case 4');\n t.false(props.answers[3].selected);\n t.true(isFunction(props.answers[0].onClick));\n});\n\ntest('should create edited template props', t => {\n t.plan(24);\n\n const state = {\n ui: {\n answers: {1234: {value: ['foo', 'exclusive']}},\n current: {progressionId: '1234'}\n }\n };\n\n const _getAnswerProps = createGetAnswerProps(options, {\n dispatch: thunk => {\n t.true(isFunction(thunk));\n }\n });\n\n const props = _getAnswerProps(state, template);\n t.is(props.type, 'template');\n t.is(props.template, 'The answer is {{inp81438}} {{sel31191}}');\n t.true(Array.isArray(props.answers));\n t.is(props.answers.length, 2);\n t.is(props.answers[0].type, 'text');\n t.is(props.answers[0].name, 'inp81438');\n t.is(props.answers[0].placeholder, '__Type here');\n t.is(props.answers[0].value, 'foo');\n t.true(isFunction(props.answers[0].onChange));\n t.is(props.answers[1].type, 'select');\n t.is(props.answers[1].name, 'sel31191');\n t.is(props.answers[1]['aria-label'], '__Select an answer');\n t.true(isFunction(props.answers[1].onChange));\n const selectOptions = props.answers[1].options;\n t.true(Array.isArray(selectOptions));\n t.is(selectOptions.length, 2);\n t.is(selectOptions[0].name, 'temporary');\n t.is(selectOptions[0].value, 'temporary');\n t.false(selectOptions[0].selected);\n t.true(selectOptions[0].validOption);\n t.is(selectOptions[1].name, 'exclusive');\n t.is(selectOptions[1].value, 'exclusive');\n t.true(selectOptions[1].selected);\n t.true(selectOptions[1].validOption);\n\n props.answers[1].onChange();\n});\n\ntest('should add an invalid `select an answer` choice for a select field in a template question if there are no answers for it', t => {\n t.plan(13);\n const state = {\n ui: {\n answers: {},\n current: {progressionId: '1234'}\n }\n };\n\n const _getAnswerProps = createGetAnswerProps(options, {\n dispatch: thunk => {\n t.true(isFunction(thunk));\n }\n });\n\n const props = _getAnswerProps(state, template);\n const selectOptions = props.answers[1].options;\n\n t.is(selectOptions.length, 3);\n t.is(selectOptions[0].name, '__Select an answer');\n t.true(selectOptions[0].selected);\n t.false(selectOptions[0].validOption);\n t.is(selectOptions[1].name, 'temporary');\n t.is(selectOptions[1].value, 'temporary');\n t.false(selectOptions[1].selected);\n t.true(selectOptions[1].validOption);\n t.is(selectOptions[2].name, 'exclusive');\n t.is(selectOptions[2].value, 'exclusive');\n t.false(selectOptions[2].selected);\n t.true(selectOptions[2].validOption);\n\n props.answers[1].onChange();\n});\n\ntest('should create initial qcmGraphic props', t => {\n const state = {\n ui: {\n answers: {},\n current: {progressionId: '1234'}\n }\n };\n const props = getAnswerProps(state, qcmGraphic);\n t.is(props.type, 'qcmGraphic');\n t.is(props.answers.length, 2);\n t.true(props.answers.every(answer => answer.selected === false));\n});\n\ntest('should create edited qcmGraphic props', t => {\n t.plan(5);\n const state = {\n data: {\n configs: {\n entities: {\n 'learner@2': {\n version: '2',\n shuffleChoices: true\n }\n }\n },\n progressions: {\n entities: {\n 1234: {\n engine: {\n ref: 'learner',\n version: '2'\n }\n }\n }\n }\n },\n ui: {\n answers: {1234: {value: ['Vrai']}},\n current: {progressionId: '1234'}\n }\n };\n\n const _getAnswerProps = createGetAnswerProps(options, {\n dispatch: thunk => {\n t.true(isFunction(thunk));\n }\n });\n\n const props = _getAnswerProps(state, qcmGraphic);\n\n t.is(props.type, 'qcmGraphic');\n t.is(props.answers.length, 2);\n\n const answers = pipe(map(pick(['title', 'selected'])), sortBy('title'))(props.answers);\n t.deepEqual(answers, [\n {title: 'Faux', selected: false},\n {title: 'Vrai', selected: true}\n ]);\n\n t.true(isFunction(props.answers[0].onClick));\n\n props.answers[0].onClick();\n});\n\ntest('should create initial qcmDrag props', t => {\n const state = {\n ui: {\n answers: {},\n current: {progressionId: '1234'}\n }\n };\n const props = getAnswerProps(state, qcmDrag);\n t.is(props.type, 'qcmDrag');\n t.is(props.answers.length, 3);\n t.is(props.answers[0].title, \"L'ordinateur\");\n t.false(props.answers[0].selected);\n t.true(isFunction(props.answers[0].onClick));\n t.is(props.answers[1].title, 'La tablette');\n t.false(props.answers[1].selected);\n t.true(isFunction(props.answers[1].onClick));\n t.is(props.answers[2].title, 'Le smartphone');\n t.false(props.answers[2].selected);\n t.true(isFunction(props.answers[2].onClick));\n});\n\ntest('should create edited qcmDrag props', t => {\n t.plan(14);\n const state = {\n ui: {\n answers: {1234: {value: ['Le smartphone', \"L'ordinateur\"]}},\n current: {progressionId: '1234'}\n }\n };\n\n const _getAnswerProps = createGetAnswerProps(options, {\n dispatch: thunk => {\n t.true(isFunction(thunk));\n }\n });\n\n const props = _getAnswerProps(state, qcmDrag);\n\n t.is(props.type, 'qcmDrag');\n t.is(props.answers.length, 3);\n\n t.is(props.answers[0].title, \"L'ordinateur\");\n t.true(props.answers[0].selected);\n t.is(props.answers[0].order, 1);\n t.true(isFunction(props.answers[0].onClick));\n t.is(props.answers[1].title, 'La tablette');\n t.false(props.answers[1].selected);\n t.true(isFunction(props.answers[1].onClick));\n t.is(props.answers[2].title, 'Le smartphone');\n t.true(props.answers[2].selected);\n t.is(props.answers[2].order, 0);\n t.true(isFunction(props.answers[2].onClick));\n\n props.answers[2].onClick();\n});\n\ntest('should create initial slider props', t => {\n t.plan(8);\n const state = {\n ui: {\n answers: {},\n current: {progressionId: '1234'}\n }\n };\n\n const dispatch = action => {\n t.pass();\n };\n\n const props = createGetAnswerProps(options, {dispatch})(state, slider);\n\n t.is(props.type, 'slider');\n t.is(props.placeholder, 'Déplacez le curseur.');\n t.is(props.minLabel, '0 an(s)');\n t.is(props.maxLabel, '1000 an(s)');\n t.is(props.title, '500 an(s)');\n t.is(props.value, 0.5);\n t.true(isFunction(props.onChange));\n\n props.onChange(0.87);\n});\n\ntest('should default slider step to 1', t => {\n t.plan(2);\n const state = {\n ui: {\n answers: {},\n current: {progressionId: '1234'}\n }\n };\n\n const dispatch = action => {\n t.pass();\n };\n\n const props = createGetAnswerProps(options, {dispatch})(\n state,\n omit('question.content.step', slider)\n );\n\n t.true(isFunction(props.onChange));\n\n props.onChange(0.87);\n});\n\ntest('should create edited slider props', t => {\n const state = {\n ui: {\n answers: {1234: {value: ['300']}},\n current: {progressionId: '1234'}\n }\n };\n\n const props = getAnswerProps(state, slider);\n t.is(props.title, '300 an(s)');\n t.is(props.value, 0.3);\n});\n\ntest('should create initial basic props', t => {\n const state = {\n ui: {\n answers: {},\n current: {progressionId: null}\n }\n };\n const props = getAnswerProps(state, basic);\n t.is(props.type, 'freeText');\n});\n\ntest('should create edited basic props', t => {\n const state = {\n ui: {\n answers: {1234: {value: ['foo']}},\n current: {progressionId: '1234'}\n }\n };\n\n const props = getAnswerProps(state, basic);\n t.is(props.type, 'freeText');\n t.is(props.value, 'foo');\n t.true(isFunction(props.onChange));\n});\n\ntest('should provide an help subtitle depending on question.type', t => {\n const help = getHelp(qcmDrag);\n t.is(help, 'Cliquez sur les réponses dans le bon ordre.');\n const help1 = getHelp(template);\n t.is(help1, 'Type your answers');\n const help2 = getHelp(qcm);\n t.is(help2, '__Select something below');\n});\n"],"mappings":";;;;;;;AAAA,OAAOA,IAAP,MAAiB,KAAjB;AAGA,SAAQC,aAAR,QAA4B,yBAA5B;AACA,SAAQC,oBAAR,EAA8BC,aAA9B,QAAkD,WAAlD;AACA,OAAOC,KAAP,MAAkB,yBAAlB;AACA,OAAOC,GAAP,MAAgB,uBAAhB;AACA,OAAOC,OAAP,MAAoB,4BAApB;AACA,OAAOC,UAAP,MAAuB,+BAAvB;AACA,OAAOC,QAAP,MAAqB,4BAArB;AACA,OAAOC,MAAP,MAAmB,0BAAnB;AAEA,MAAMC,OAAO,GAAG;EAACC,SAAS,EAAEV;AAAZ,CAAhB;AACA,MAAMW,KAAK,GAAG;EAACC,QAAQ;AAAT,CAAd;AACA,MAAMC,cAAc,GAAGZ,oBAAoB,CAACQ,OAAD,EAAUE,KAAV,CAA3C;AACA,MAAMG,OAAO,GAAGZ,aAAa,CAACO,OAAD,EAAUE,KAAV,CAA7B;AAEAZ,IAAI,CAAC,iCAAD,EAAoCgB,CAAC,IAAI;EAC3CA,CAAC,CAACC,IAAF,CAAO,CAAP;EAEA,MAAMC,KAAK,GAAG;IACZC,EAAE,EAAE;MACFC,OAAO,EAAE;QAACC,aAAa,EAAE;MAAhB;IADP;EADQ,CAAd;;EAMA,MAAMC,eAAe,GAAGpB,oBAAoB,CAACQ,OAAD,EAAU;IACpDG,QAAQ,EAAEU,KAAK,IAAI;MACjBP,CAAC,CAACQ,IAAF,CAAO,YAAWD,KAAX,CAAP;IACD;EAHmD,CAAV,CAA5C;;EAMA,MAAME,KAAK,GAAGH,eAAe,CAACJ,KAAD,EAAQb,GAAR,CAA7B;;EAEAW,CAAC,CAACU,EAAF,CAAKD,KAAK,CAACE,IAAX,EAAiB,KAAjB;EACAX,CAAC,CAACQ,IAAF,CAAOC,KAAK,CAACG,OAAN,CAAcC,KAAd,CAAoBC,MAAM,IAAIA,MAAM,CAACC,QAAP,KAAoB,KAAlD,CAAP;EAEAN,KAAK,CAACG,OAAN,CAAc,CAAd,EAAiBI,OAAjB;AACD,CArBG,CAAJ;AAuBAhC,IAAI,CAAC,gCAAD,EAAmCgB,CAAC,IAAI;EAC1C,MAAME,KAAK,GAAG;IACZC,EAAE,EAAE;MACFS,OAAO,EAAE;QAAC,MAAM;UAACK,KAAK,EAAE,CAAC,QAAD,EAAW,QAAX;QAAR;MAAP,CADP;MAEFb,OAAO,EAAE;QAACC,aAAa,EAAE;MAAhB;IAFP;EADQ,CAAd;EAOA,MAAMI,KAAK,GAAGX,cAAc,CAACI,KAAD,EAAQb,GAAR,CAA5B;EAEAW,CAAC,CAACU,EAAF,CAAKD,KAAK,CAACE,IAAX,EAAiB,KAAjB;EACAX,CAAC,CAACU,EAAF,CAAKD,KAAK,CAACG,OAAN,CAAcM,MAAnB,EAA2B,CAA3B;EACAlB,CAAC,CAACU,EAAF,CAAKD,KAAK,CAACG,OAAN,CAAc,CAAd,EAAiBO,KAAtB,EAA6B,QAA7B;EACAnB,CAAC,CAACQ,IAAF,CAAOC,KAAK,CAACG,OAAN,CAAc,CAAd,EAAiBG,QAAxB;EACAf,CAAC,CAACU,EAAF,CAAKD,KAAK,CAACG,OAAN,CAAc,CAAd,EAAiBO,KAAtB,EAA6B,QAA7B;EACAnB,CAAC,CAACoB,KAAF,CAAQX,KAAK,CAACG,OAAN,CAAc,CAAd,EAAiBG,QAAzB;EACAf,CAAC,CAACU,EAAF,CAAKD,KAAK,CAACG,OAAN,CAAc,CAAd,EAAiBO,KAAtB,EAA6B,QAA7B;EACAnB,CAAC,CAACQ,IAAF,CAAOC,KAAK,CAACG,OAAN,CAAc,CAAd,EAAiBG,QAAxB;EACAf,CAAC,CAACU,EAAF,CAAKD,KAAK,CAACG,OAAN,CAAc,CAAd,EAAiBO,KAAtB,EAA6B,QAA7B;EACAnB,CAAC,CAACoB,KAAF,CAAQX,KAAK,CAACG,OAAN,CAAc,CAAd,EAAiBG,QAAzB;EACAf,CAAC,CAACQ,IAAF,CAAO,YAAWC,KAAK,CAACG,OAAN,CAAc,CAAd,EAAiBI,OAA5B,CAAP;AACD,CArBG,CAAJ;AAuBAhC,IAAI,CAAC,qCAAD,EAAwCgB,CAAC,IAAI;EAC/CA,CAAC,CAACC,IAAF,CAAO,EAAP;EAEA,MAAMC,KAAK,GAAG;IACZC,EAAE,EAAE;MACFS,OAAO,EAAE;QAAC,MAAM;UAACK,KAAK,EAAE,CAAC,KAAD,EAAQ,WAAR;QAAR;MAAP,CADP;MAEFb,OAAO,EAAE;QAACC,aAAa,EAAE;MAAhB;IAFP;EADQ,CAAd;;EAOA,MAAMC,eAAe,GAAGpB,oBAAoB,CAACQ,OAAD,EAAU;IACpDG,QAAQ,EAAEU,KAAK,IAAI;MACjBP,CAAC,CAACQ,IAAF,CAAO,YAAWD,KAAX,CAAP;IACD;EAHmD,CAAV,CAA5C;;EAMA,MAAME,KAAK,GAAGH,eAAe,CAACJ,KAAD,EAAQV,QAAR,CAA7B;;EACAQ,CAAC,CAACU,EAAF,CAAKD,KAAK,CAACE,IAAX,EAAiB,UAAjB;EACAX,CAAC,CAACU,EAAF,CAAKD,KAAK,CAACjB,QAAX,EAAqB,yCAArB;EACAQ,CAAC,CAACQ,IAAF,CAAOa,KAAK,CAACC,OAAN,CAAcb,KAAK,CAACG,OAApB,CAAP;EACAZ,CAAC,CAACU,EAAF,CAAKD,KAAK,CAACG,OAAN,CAAcM,MAAnB,EAA2B,CAA3B;EACAlB,CAAC,CAACU,EAAF,CAAKD,KAAK,CAACG,OAAN,CAAc,CAAd,EAAiBD,IAAtB,EAA4B,MAA5B;EACAX,CAAC,CAACU,EAAF,CAAKD,KAAK,CAACG,OAAN,CAAc,CAAd,EAAiBW,IAAtB,EAA4B,UAA5B;EACAvB,CAAC,CAACU,EAAF,CAAKD,KAAK,CAACG,OAAN,CAAc,CAAd,EAAiBY,WAAtB,EAAmC,aAAnC;EACAxB,CAAC,CAACU,EAAF,CAAKD,KAAK,CAACG,OAAN,CAAc,CAAd,EAAiBK,KAAtB,EAA6B,KAA7B;EACAjB,CAAC,CAACQ,IAAF,CAAO,YAAWC,KAAK,CAACG,OAAN,CAAc,CAAd,EAAiBa,QAA5B,CAAP;EACAzB,CAAC,CAACU,EAAF,CAAKD,KAAK,CAACG,OAAN,CAAc,CAAd,EAAiBD,IAAtB,EAA4B,QAA5B;EACAX,CAAC,CAACU,EAAF,CAAKD,KAAK,CAACG,OAAN,CAAc,CAAd,EAAiBW,IAAtB,EAA4B,UAA5B;EACAvB,CAAC,CAACU,EAAF,CAAKD,KAAK,CAACG,OAAN,CAAc,CAAd,EAAiB,YAAjB,CAAL,EAAqC,oBAArC;EACAZ,CAAC,CAACQ,IAAF,CAAO,YAAWC,KAAK,CAACG,OAAN,CAAc,CAAd,EAAiBa,QAA5B,CAAP;EACA,MAAMC,aAAa,GAAGjB,KAAK,CAACG,OAAN,CAAc,CAAd,EAAiBlB,OAAvC;EACAM,CAAC,CAACQ,IAAF,CAAOa,KAAK,CAACC,OAAN,CAAcI,aAAd,CAAP;EACA1B,CAAC,CAACU,EAAF,CAAKgB,aAAa,CAACR,MAAnB,EAA2B,CAA3B;EACAlB,CAAC,CAACU,EAAF,CAAKgB,aAAa,CAAC,CAAD,CAAb,CAAiBH,IAAtB,EAA4B,WAA5B;EACAvB,CAAC,CAACU,EAAF,CAAKgB,aAAa,CAAC,CAAD,CAAb,CAAiBT,KAAtB,EAA6B,WAA7B;EACAjB,CAAC,CAACoB,KAAF,CAAQM,aAAa,CAAC,CAAD,CAAb,CAAiBX,QAAzB;EACAf,CAAC,CAACQ,IAAF,CAAOkB,aAAa,CAAC,CAAD,CAAb,CAAiBC,WAAxB;EACA3B,CAAC,CAACU,EAAF,CAAKgB,aAAa,CAAC,CAAD,CAAb,CAAiBH,IAAtB,EAA4B,WAA5B;EACAvB,CAAC,CAACU,EAAF,CAAKgB,aAAa,CAAC,CAAD,CAAb,CAAiBT,KAAtB,EAA6B,WAA7B;EACAjB,CAAC,CAACQ,IAAF,CAAOkB,aAAa,CAAC,CAAD,CAAb,CAAiBX,QAAxB;EACAf,CAAC,CAACQ,IAAF,CAAOkB,aAAa,CAAC,CAAD,CAAb,CAAiBC,WAAxB;EAEAlB,KAAK,CAACG,OAAN,CAAc,CAAd,EAAiBa,QAAjB;AACD,CA3CG,CAAJ;AA6CAzC,IAAI,CAAC,0HAAD,EAA6HgB,CAAC,IAAI;EACpIA,CAAC,CAACC,IAAF,CAAO,EAAP;EACA,MAAMC,KAAK,GAAG;IACZC,EAAE,EAAE;MACFS,OAAO,EAAE,EADP;MAEFR,OAAO,EAAE;QAACC,aAAa,EAAE;MAAhB;IAFP;EADQ,CAAd;;EAOA,MAAMC,eAAe,GAAGpB,oBAAoB,CAACQ,OAAD,EAAU;IACpDG,QAAQ,EAAEU,KAAK,IAAI;MACjBP,CAAC,CAACQ,IAAF,CAAO,YAAWD,KAAX,CAAP;IACD;EAHmD,CAAV,CAA5C;;EAMA,MAAME,KAAK,GAAGH,eAAe,CAACJ,KAAD,EAAQV,QAAR,CAA7B;;EACA,MAAMkC,aAAa,GAAGjB,KAAK,CAACG,OAAN,CAAc,CAAd,EAAiBlB,OAAvC;EAEAM,CAAC,CAACU,EAAF,CAAKgB,aAAa,CAACR,MAAnB,EAA2B,CAA3B;EACAlB,CAAC,CAACU,EAAF,CAAKgB,aAAa,CAAC,CAAD,CAAb,CAAiBH,IAAtB,EAA4B,oBAA5B;EACAvB,CAAC,CAACQ,IAAF,CAAOkB,aAAa,CAAC,CAAD,CAAb,CAAiBX,QAAxB;EACAf,CAAC,CAACoB,KAAF,CAAQM,aAAa,CAAC,CAAD,CAAb,CAAiBC,WAAzB;EACA3B,CAAC,CAACU,EAAF,CAAKgB,aAAa,CAAC,CAAD,CAAb,CAAiBH,IAAtB,EAA4B,WAA5B;EACAvB,CAAC,CAACU,EAAF,CAAKgB,aAAa,CAAC,CAAD,CAAb,CAAiBT,KAAtB,EAA6B,WAA7B;EACAjB,CAAC,CAACoB,KAAF,CAAQM,aAAa,CAAC,CAAD,CAAb,CAAiBX,QAAzB;EACAf,CAAC,CAACQ,IAAF,CAAOkB,aAAa,CAAC,CAAD,CAAb,CAAiBC,WAAxB;EACA3B,CAAC,CAACU,EAAF,CAAKgB,aAAa,CAAC,CAAD,CAAb,CAAiBH,IAAtB,EAA4B,WAA5B;EACAvB,CAAC,CAACU,EAAF,CAAKgB,aAAa,CAAC,CAAD,CAAb,CAAiBT,KAAtB,EAA6B,WAA7B;EACAjB,CAAC,CAACoB,KAAF,CAAQM,aAAa,CAAC,CAAD,CAAb,CAAiBX,QAAzB;EACAf,CAAC,CAACQ,IAAF,CAAOkB,aAAa,CAAC,CAAD,CAAb,CAAiBC,WAAxB;EAEAlB,KAAK,CAACG,OAAN,CAAc,CAAd,EAAiBa,QAAjB;AACD,CAhCG,CAAJ;AAkCAzC,IAAI,CAAC,wCAAD,EAA2CgB,CAAC,IAAI;EAClD,MAAME,KAAK,GAAG;IACZC,EAAE,EAAE;MACFS,OAAO,EAAE,EADP;MAEFR,OAAO,EAAE;QAACC,aAAa,EAAE;MAAhB;IAFP;EADQ,CAAd;EAMA,MAAMI,KAAK,GAAGX,cAAc,CAACI,KAAD,EAAQX,UAAR,CAA5B;EACAS,CAAC,CAACU,EAAF,CAAKD,KAAK,CAACE,IAAX,EAAiB,YAAjB;EACAX,CAAC,CAACU,EAAF,CAAKD,KAAK,CAACG,OAAN,CAAcM,MAAnB,EAA2B,CAA3B;EACAlB,CAAC,CAACQ,IAAF,CAAOC,KAAK,CAACG,OAAN,CAAcC,KAAd,CAAoBC,MAAM,IAAIA,MAAM,CAACC,QAAP,KAAoB,KAAlD,CAAP;AACD,CAXG,CAAJ;AAaA/B,IAAI,CAAC,uCAAD,EAA0CgB,CAAC,IAAI;EACjDA,CAAC,CAACC,IAAF,CAAO,CAAP;EACA,MAAMC,KAAK,GAAG;IACZ0B,IAAI,EAAE;MACJC,OAAO,EAAE;QACPC,QAAQ,EAAE;UACR,aAAa;YACXC,OAAO,EAAE,GADE;YAEXC,cAAc,EAAE;UAFL;QADL;MADH,CADL;MASJC,YAAY,EAAE;QACZH,QAAQ,EAAE;UACR,MAAM;YACJI,MAAM,EAAE;cACNC,GAAG,EAAE,SADC;cAENJ,OAAO,EAAE;YAFH;UADJ;QADE;MADE;IATV,CADM;IAqBZ5B,EAAE,EAAE;MACFS,OAAO,EAAE;QAAC,MAAM;UAACK,KAAK,EAAE,CAAC,MAAD;QAAR;MAAP,CADP;MAEFb,OAAO,EAAE;QAACC,aAAa,EAAE;MAAhB;IAFP;EArBQ,CAAd;;EA2BA,MAAMC,eAAe,GAAGpB,oBAAoB,CAACQ,OAAD,EAAU;IACpDG,QAAQ,EAAEU,KAAK,IAAI;MACjBP,CAAC,CAACQ,IAAF,CAAO,YAAWD,KAAX,CAAP;IACD;EAHmD,CAAV,CAA5C;;EAMA,MAAME,KAAK,GAAGH,eAAe,CAACJ,KAAD,EAAQX,UAAR,CAA7B;;EAEAS,CAAC,CAACU,EAAF,CAAKD,KAAK,CAACE,IAAX,EAAiB,YAAjB;EACAX,CAAC,CAACU,EAAF,CAAKD,KAAK,CAACG,OAAN,CAAcM,MAAnB,EAA2B,CAA3B;;EAEA,MAAMN,OAAO,GAAG,MAAK,KAAI,MAAK,CAAC,OAAD,EAAU,UAAV,CAAL,CAAJ,CAAL,EAAuC,QAAO,OAAP,CAAvC,EAAwDH,KAAK,CAACG,OAA9D,CAAhB;;EACAZ,CAAC,CAACoC,SAAF,CAAYxB,OAAZ,EAAqB,CACnB;IAACO,KAAK,EAAE,MAAR;IAAgBJ,QAAQ,EAAE;EAA1B,CADmB,EAEnB;IAACI,KAAK,EAAE,MAAR;IAAgBJ,QAAQ,EAAE;EAA1B,CAFmB,CAArB;EAKAf,CAAC,CAACQ,IAAF,CAAO,YAAWC,KAAK,CAACG,OAAN,CAAc,CAAd,EAAiBI,OAA5B,CAAP;EAEAP,KAAK,CAACG,OAAN,CAAc,CAAd,EAAiBI,OAAjB;AACD,CAjDG,CAAJ;AAmDAhC,IAAI,CAAC,qCAAD,EAAwCgB,CAAC,IAAI;EAC/C,MAAME,KAAK,GAAG;IACZC,EAAE,EAAE;MACFS,OAAO,EAAE,EADP;MAEFR,OAAO,EAAE;QAACC,aAAa,EAAE;MAAhB;IAFP;EADQ,CAAd;EAMA,MAAMI,KAAK,GAAGX,cAAc,CAACI,KAAD,EAAQZ,OAAR,CAA5B;EACAU,CAAC,CAACU,EAAF,CAAKD,KAAK,CAACE,IAAX,EAAiB,SAAjB;EACAX,CAAC,CAACU,EAAF,CAAKD,KAAK,CAACG,OAAN,CAAcM,MAAnB,EAA2B,CAA3B;EACAlB,CAAC,CAACU,EAAF,CAAKD,KAAK,CAACG,OAAN,CAAc,CAAd,EAAiBO,KAAtB,EAA6B,cAA7B;EACAnB,CAAC,CAACoB,KAAF,CAAQX,KAAK,CAACG,OAAN,CAAc,CAAd,EAAiBG,QAAzB;EACAf,CAAC,CAACQ,IAAF,CAAO,YAAWC,KAAK,CAACG,OAAN,CAAc,CAAd,EAAiBI,OAA5B,CAAP;EACAhB,CAAC,CAACU,EAAF,CAAKD,KAAK,CAACG,OAAN,CAAc,CAAd,EAAiBO,KAAtB,EAA6B,aAA7B;EACAnB,CAAC,CAACoB,KAAF,CAAQX,KAAK,CAACG,OAAN,CAAc,CAAd,EAAiBG,QAAzB;EACAf,CAAC,CAACQ,IAAF,CAAO,YAAWC,KAAK,CAACG,OAAN,CAAc,CAAd,EAAiBI,OAA5B,CAAP;EACAhB,CAAC,CAACU,EAAF,CAAKD,KAAK,CAACG,OAAN,CAAc,CAAd,EAAiBO,KAAtB,EAA6B,eAA7B;EACAnB,CAAC,CAACoB,KAAF,CAAQX,KAAK,CAACG,OAAN,CAAc,CAAd,EAAiBG,QAAzB;EACAf,CAAC,CAACQ,IAAF,CAAO,YAAWC,KAAK,CAACG,OAAN,CAAc,CAAd,EAAiBI,OAA5B,CAAP;AACD,CAnBG,CAAJ;AAqBAhC,IAAI,CAAC,oCAAD,EAAuCgB,CAAC,IAAI;EAC9CA,CAAC,CAACC,IAAF,CAAO,EAAP;EACA,MAAMC,KAAK,GAAG;IACZC,EAAE,EAAE;MACFS,OAAO,EAAE;QAAC,MAAM;UAACK,KAAK,EAAE,CAAC,eAAD,EAAkB,cAAlB;QAAR;MAAP,CADP;MAEFb,OAAO,EAAE;QAACC,aAAa,EAAE;MAAhB;IAFP;EADQ,CAAd;;EAOA,MAAMC,eAAe,GAAGpB,oBAAoB,CAACQ,OAAD,EAAU;IACpDG,QAAQ,EAAEU,KAAK,IAAI;MACjBP,CAAC,CAACQ,IAAF,CAAO,YAAWD,KAAX,CAAP;IACD;EAHmD,CAAV,CAA5C;;EAMA,MAAME,KAAK,GAAGH,eAAe,CAACJ,KAAD,EAAQZ,OAAR,CAA7B;;EAEAU,CAAC,CAACU,EAAF,CAAKD,KAAK,CAACE,IAAX,EAAiB,SAAjB;EACAX,CAAC,CAACU,EAAF,CAAKD,KAAK,CAACG,OAAN,CAAcM,MAAnB,EAA2B,CAA3B;EAEAlB,CAAC,CAACU,EAAF,CAAKD,KAAK,CAACG,OAAN,CAAc,CAAd,EAAiBO,KAAtB,EAA6B,cAA7B;EACAnB,CAAC,CAACQ,IAAF,CAAOC,KAAK,CAACG,OAAN,CAAc,CAAd,EAAiBG,QAAxB;EACAf,CAAC,CAACU,EAAF,CAAKD,KAAK,CAACG,OAAN,CAAc,CAAd,EAAiByB,KAAtB,EAA6B,CAA7B;EACArC,CAAC,CAACQ,IAAF,CAAO,YAAWC,KAAK,CAACG,OAAN,CAAc,CAAd,EAAiBI,OAA5B,CAAP;EACAhB,CAAC,CAACU,EAAF,CAAKD,KAAK,CAACG,OAAN,CAAc,CAAd,EAAiBO,KAAtB,EAA6B,aAA7B;EACAnB,CAAC,CAACoB,KAAF,CAAQX,KAAK,CAACG,OAAN,CAAc,CAAd,EAAiBG,QAAzB;EACAf,CAAC,CAACQ,IAAF,CAAO,YAAWC,KAAK,CAACG,OAAN,CAAc,CAAd,EAAiBI,OAA5B,CAAP;EACAhB,CAAC,CAACU,EAAF,CAAKD,KAAK,CAACG,OAAN,CAAc,CAAd,EAAiBO,KAAtB,EAA6B,eAA7B;EACAnB,CAAC,CAACQ,IAAF,CAAOC,KAAK,CAACG,OAAN,CAAc,CAAd,EAAiBG,QAAxB;EACAf,CAAC,CAACU,EAAF,CAAKD,KAAK,CAACG,OAAN,CAAc,CAAd,EAAiByB,KAAtB,EAA6B,CAA7B;EACArC,CAAC,CAACQ,IAAF,CAAO,YAAWC,KAAK,CAACG,OAAN,CAAc,CAAd,EAAiBI,OAA5B,CAAP;EAEAP,KAAK,CAACG,OAAN,CAAc,CAAd,EAAiBI,OAAjB;AACD,CAjCG,CAAJ;AAmCAhC,IAAI,CAAC,oCAAD,EAAuCgB,CAAC,IAAI;EAC9CA,CAAC,CAACC,IAAF,CAAO,CAAP;EACA,MAAMC,KAAK,GAAG;IACZC,EAAE,EAAE;MACFS,OAAO,EAAE,EADP;MAEFR,OAAO,EAAE;QAACC,aAAa,EAAE;MAAhB;IAFP;EADQ,CAAd;;EAOA,MAAMR,QAAQ,GAAGyC,MAAM,IAAI;IACzBtC,CAAC,CAACuC,IAAF;EACD,CAFD;;EAIA,MAAM9B,KAAK,GAAGvB,oBAAoB,CAACQ,OAAD,EAAU;IAACG;EAAD,CAAV,CAApB,CAA0CK,KAA1C,EAAiDT,MAAjD,CAAd;EAEAO,CAAC,CAACU,EAAF,CAAKD,KAAK,CAACE,IAAX,EAAiB,QAAjB;EACAX,CAAC,CAACU,EAAF,CAAKD,KAAK,CAACe,WAAX,EAAwB,sBAAxB;EACAxB,CAAC,CAACU,EAAF,CAAKD,KAAK,CAAC+B,QAAX,EAAqB,SAArB;EACAxC,CAAC,CAACU,EAAF,CAAKD,KAAK,CAACgC,QAAX,EAAqB,YAArB;EACAzC,CAAC,CAACU,EAAF,CAAKD,KAAK,CAACU,KAAX,EAAkB,WAAlB;EACAnB,CAAC,CAACU,EAAF,CAAKD,KAAK,CAACQ,KAAX,EAAkB,GAAlB;EACAjB,CAAC,CAACQ,IAAF,CAAO,YAAWC,KAAK,CAACgB,QAAjB,CAAP;EAEAhB,KAAK,CAACgB,QAAN,CAAe,IAAf;AACD,CAxBG,CAAJ;AA0BAzC,IAAI,CAAC,iCAAD,EAAoCgB,CAAC,IAAI;EAC3CA,CAAC,CAACC,IAAF,CAAO,CAAP;EACA,MAAMC,KAAK,GAAG;IACZC,EAAE,EAAE;MACFS,OAAO,EAAE,EADP;MAEFR,OAAO,EAAE;QAACC,aAAa,EAAE;MAAhB;IAFP;EADQ,CAAd;;EAOA,MAAMR,QAAQ,GAAGyC,MAAM,IAAI;IACzBtC,CAAC,CAACuC,IAAF;EACD,CAFD;;EAIA,MAAM9B,KAAK,GAAGvB,oBAAoB,CAACQ,OAAD,EAAU;IAACG;EAAD,CAAV,CAApB,CACZK,KADY,EAEZ,MAAK,uBAAL,EAA8BT,MAA9B,CAFY,CAAd;EAKAO,CAAC,CAACQ,IAAF,CAAO,YAAWC,KAAK,CAACgB,QAAjB,CAAP;EAEAhB,KAAK,CAACgB,QAAN,CAAe,IAAf;AACD,CArBG,CAAJ;AAuBAzC,IAAI,CAAC,mCAAD,EAAsCgB,CAAC,IAAI;EAC7C,MAAME,KAAK,GAAG;IACZC,EAAE,EAAE;MACFS,OAAO,EAAE;QAAC,MAAM;UAACK,KAAK,EAAE,CAAC,KAAD;QAAR;MAAP,CADP;MAEFb,OAAO,EAAE;QAACC,aAAa,EAAE;MAAhB;IAFP;EADQ,CAAd;EAOA,MAAMI,KAAK,GAAGX,cAAc,CAACI,KAAD,EAAQT,MAAR,CAA5B;EACAO,CAAC,CAACU,EAAF,CAAKD,KAAK,CAACU,KAAX,EAAkB,WAAlB;EACAnB,CAAC,CAACU,EAAF,CAAKD,KAAK,CAACQ,KAAX,EAAkB,GAAlB;AACD,CAXG,CAAJ;AAaAjC,IAAI,CAAC,mCAAD,EAAsCgB,CAAC,IAAI;EAC7C,MAAME,KAAK,GAAG;IACZC,EAAE,EAAE;MACFS,OAAO,EAAE,EADP;MAEFR,OAAO,EAAE;QAACC,aAAa,EAAE;MAAhB;IAFP;EADQ,CAAd;EAMA,MAAMI,KAAK,GAAGX,cAAc,CAACI,KAAD,EAAQd,KAAR,CAA5B;EACAY,CAAC,CAACU,EAAF,CAAKD,KAAK,CAACE,IAAX,EAAiB,UAAjB;AACD,CATG,CAAJ;AAWA3B,IAAI,CAAC,kCAAD,EAAqCgB,CAAC,IAAI;EAC5C,MAAME,KAAK,GAAG;IACZC,EAAE,EAAE;MACFS,OAAO,EAAE;QAAC,MAAM;UAACK,KAAK,EAAE,CAAC,KAAD;QAAR;MAAP,CADP;MAEFb,OAAO,EAAE;QAACC,aAAa,EAAE;MAAhB;IAFP;EADQ,CAAd;EAOA,MAAMI,KAAK,GAAGX,cAAc,CAACI,KAAD,EAAQd,KAAR,CAA5B;EACAY,CAAC,CAACU,EAAF,CAAKD,KAAK,CAACE,IAAX,EAAiB,UAAjB;EACAX,CAAC,CAACU,EAAF,CAAKD,KAAK,CAACQ,KAAX,EAAkB,KAAlB;EACAjB,CAAC,CAACQ,IAAF,CAAO,YAAWC,KAAK,CAACgB,QAAjB,CAAP;AACD,CAZG,CAAJ;AAcAzC,IAAI,CAAC,4DAAD,EAA+DgB,CAAC,IAAI;EACtE,MAAM0C,IAAI,GAAG3C,OAAO,CAACT,OAAD,CAApB;EACAU,CAAC,CAACU,EAAF,CAAKgC,IAAL,EAAW,6CAAX;EACA,MAAMC,KAAK,GAAG5C,OAAO,CAACP,QAAD,CAArB;EACAQ,CAAC,CAACU,EAAF,CAAKiC,KAAL,EAAY,mBAAZ;EACA,MAAMC,KAAK,GAAG7C,OAAO,CAACV,GAAD,CAArB;EACAW,CAAC,CAACU,EAAF,CAAKkC,KAAL,EAAY,0BAAZ;AACD,CAPG,CAAJ"}
|
|
1
|
+
{"version":3,"file":"answer.js","names":["test","mockTranslate","createGetAnswerProps","createGetHelp","basic","qcm","qcmDrag","qcmGraphic","template","slider","options","translate","store","dispatch","_identity","getAnswerProps","getHelp","t","plan","state","ui","current","progressionId","_getAnswerProps","thunk","true","_isFunction","props","is","type","answers","every","answer","selected","onClick","value","length","title","false","Array","isArray","name","placeholder","onChange","selectOptions","validOption","data","configs","entities","version","shuffleChoices","progressions","engine","ref","_pipe","_map","_pick","_sortBy","deepEqual","order","action","pass","minLabel","maxLabel","_omit","help","help1","help2"],"sources":["../../../src/map-state-to-props/test/answer.js"],"sourcesContent":["import test from 'ava';\nimport {omit, isFunction, identity, sortBy, pipe, map, pick} from 'lodash/fp';\n\nimport {mockTranslate} from '@coorpacademy/translate';\nimport {createGetAnswerProps, createGetHelp} from '../answer';\nimport basic from './fixtures/slides/basic';\nimport qcm from './fixtures/slides/qcm';\nimport qcmDrag from './fixtures/slides/qcm-drag';\nimport qcmGraphic from './fixtures/slides/qcm-graphic';\nimport template from './fixtures/slides/template';\nimport slider from './fixtures/slides/slider';\n\nconst options = {translate: mockTranslate};\nconst store = {dispatch: identity};\nconst getAnswerProps = createGetAnswerProps(options, store);\nconst getHelp = createGetHelp(options, store);\n\ntest('should create initial qcm props', t => {\n t.plan(3);\n\n const state = {\n ui: {\n current: {progressionId: '1234'}\n }\n };\n\n const _getAnswerProps = createGetAnswerProps(options, {\n dispatch: thunk => {\n t.true(isFunction(thunk));\n }\n });\n\n const props = _getAnswerProps(state, qcm);\n\n t.is(props.type, 'qcm');\n t.true(props.answers.every(answer => answer.selected === false));\n\n props.answers[0].onClick();\n});\n\ntest('should create edited qcm props', t => {\n const state = {\n ui: {\n answers: {1234: {value: ['Case 1', 'Case 3']}},\n current: {progressionId: '1234'}\n }\n };\n\n const props = getAnswerProps(state, qcm);\n\n t.is(props.type, 'qcm');\n t.is(props.answers.length, 4);\n t.is(props.answers[0].title, 'Case 1');\n t.true(props.answers[0].selected);\n t.is(props.answers[1].title, 'Case 2');\n t.false(props.answers[1].selected);\n t.is(props.answers[2].title, 'Case 3');\n t.true(props.answers[2].selected);\n t.is(props.answers[3].title, 'Case 4');\n t.false(props.answers[3].selected);\n t.true(isFunction(props.answers[0].onClick));\n});\n\ntest('should create edited template props', t => {\n t.plan(24);\n\n const state = {\n ui: {\n answers: {1234: {value: ['foo', 'exclusive']}},\n current: {progressionId: '1234'}\n }\n };\n\n const _getAnswerProps = createGetAnswerProps(options, {\n dispatch: thunk => {\n t.true(isFunction(thunk));\n }\n });\n\n const props = _getAnswerProps(state, template);\n t.is(props.type, 'template');\n t.is(props.template, 'The answer is {{inp81438}} {{sel31191}}');\n t.true(Array.isArray(props.answers));\n t.is(props.answers.length, 2);\n t.is(props.answers[0].type, 'text');\n t.is(props.answers[0].name, 'inp81438');\n t.is(props.answers[0].placeholder, '__Type here');\n t.is(props.answers[0].value, 'foo');\n t.true(isFunction(props.answers[0].onChange));\n t.is(props.answers[1].type, 'select');\n t.is(props.answers[1].name, 'sel31191');\n t.is(props.answers[1]['aria-label'], '__Select an answer');\n t.true(isFunction(props.answers[1].onChange));\n const selectOptions = props.answers[1].options;\n t.true(Array.isArray(selectOptions));\n t.is(selectOptions.length, 2);\n t.is(selectOptions[0].name, 'temporary');\n t.is(selectOptions[0].value, 'temporary');\n t.false(selectOptions[0].selected);\n t.true(selectOptions[0].validOption);\n t.is(selectOptions[1].name, 'exclusive');\n t.is(selectOptions[1].value, 'exclusive');\n t.true(selectOptions[1].selected);\n t.true(selectOptions[1].validOption);\n\n props.answers[1].onChange();\n});\n\ntest('should add an invalid `select an answer` choice for a select field in a template question if there are no answers for it', t => {\n t.plan(13);\n const state = {\n ui: {\n answers: {},\n current: {progressionId: '1234'}\n }\n };\n\n const _getAnswerProps = createGetAnswerProps(options, {\n dispatch: thunk => {\n t.true(isFunction(thunk));\n }\n });\n\n const props = _getAnswerProps(state, template);\n const selectOptions = props.answers[1].options;\n\n t.is(selectOptions.length, 3);\n t.is(selectOptions[0].name, '__Select an answer');\n t.true(selectOptions[0].selected);\n t.false(selectOptions[0].validOption);\n t.is(selectOptions[1].name, 'temporary');\n t.is(selectOptions[1].value, 'temporary');\n t.false(selectOptions[1].selected);\n t.true(selectOptions[1].validOption);\n t.is(selectOptions[2].name, 'exclusive');\n t.is(selectOptions[2].value, 'exclusive');\n t.false(selectOptions[2].selected);\n t.true(selectOptions[2].validOption);\n\n props.answers[1].onChange();\n});\n\ntest('should create initial qcmGraphic props', t => {\n const state = {\n ui: {\n answers: {},\n current: {progressionId: '1234'}\n }\n };\n const props = getAnswerProps(state, qcmGraphic);\n t.is(props.type, 'qcmGraphic');\n t.is(props.answers.length, 2);\n t.true(props.answers.every(answer => answer.selected === false));\n});\n\ntest('should create edited qcmGraphic props', t => {\n t.plan(5);\n const state = {\n data: {\n configs: {\n entities: {\n 'learner@2': {\n version: '2',\n shuffleChoices: true\n }\n }\n },\n progressions: {\n entities: {\n 1234: {\n engine: {\n ref: 'learner',\n version: '2'\n }\n }\n }\n }\n },\n ui: {\n answers: {1234: {value: ['Vrai']}},\n current: {progressionId: '1234'}\n }\n };\n\n const _getAnswerProps = createGetAnswerProps(options, {\n dispatch: thunk => {\n t.true(isFunction(thunk));\n }\n });\n\n const props = _getAnswerProps(state, qcmGraphic);\n\n t.is(props.type, 'qcmGraphic');\n t.is(props.answers.length, 2);\n\n const answers = pipe(map(pick(['title', 'selected'])), sortBy('title'))(props.answers);\n t.deepEqual(answers, [\n {title: 'Faux', selected: false},\n {title: 'Vrai', selected: true}\n ]);\n\n t.true(isFunction(props.answers[0].onClick));\n\n props.answers[0].onClick();\n});\n\ntest('should create initial qcmDrag props', t => {\n const state = {\n ui: {\n answers: {},\n current: {progressionId: '1234'}\n }\n };\n const props = getAnswerProps(state, qcmDrag);\n t.is(props.type, 'qcmDrag');\n t.is(props.answers.length, 3);\n t.is(props.answers[0].title, \"L'ordinateur\");\n t.false(props.answers[0].selected);\n t.true(isFunction(props.answers[0].onClick));\n t.is(props.answers[1].title, 'La tablette');\n t.false(props.answers[1].selected);\n t.true(isFunction(props.answers[1].onClick));\n t.is(props.answers[2].title, 'Le smartphone');\n t.false(props.answers[2].selected);\n t.true(isFunction(props.answers[2].onClick));\n});\n\ntest('should create edited qcmDrag props', t => {\n t.plan(14);\n const state = {\n ui: {\n answers: {1234: {value: ['Le smartphone', \"L'ordinateur\"]}},\n current: {progressionId: '1234'}\n }\n };\n\n const _getAnswerProps = createGetAnswerProps(options, {\n dispatch: thunk => {\n t.true(isFunction(thunk));\n }\n });\n\n const props = _getAnswerProps(state, qcmDrag);\n\n t.is(props.type, 'qcmDrag');\n t.is(props.answers.length, 3);\n\n t.is(props.answers[0].title, \"L'ordinateur\");\n t.true(props.answers[0].selected);\n t.is(props.answers[0].order, 1);\n t.true(isFunction(props.answers[0].onClick));\n t.is(props.answers[1].title, 'La tablette');\n t.false(props.answers[1].selected);\n t.true(isFunction(props.answers[1].onClick));\n t.is(props.answers[2].title, 'Le smartphone');\n t.true(props.answers[2].selected);\n t.is(props.answers[2].order, 0);\n t.true(isFunction(props.answers[2].onClick));\n\n props.answers[2].onClick();\n});\n\ntest('should create initial slider props', t => {\n t.plan(8);\n const state = {\n ui: {\n answers: {},\n current: {progressionId: '1234'}\n }\n };\n\n const dispatch = action => {\n t.pass();\n };\n\n const props = createGetAnswerProps(options, {dispatch})(state, slider);\n\n t.is(props.type, 'slider');\n t.is(props.placeholder, 'Déplacez le curseur.');\n t.is(props.minLabel, '0 an(s)');\n t.is(props.maxLabel, '1000 an(s)');\n t.is(props.title, '500 an(s)');\n t.is(props.value, 0.5);\n t.true(isFunction(props.onChange));\n\n props.onChange(0.87);\n});\n\ntest('should default slider step to 1', t => {\n t.plan(2);\n const state = {\n ui: {\n answers: {},\n current: {progressionId: '1234'}\n }\n };\n\n const dispatch = action => {\n t.pass();\n };\n\n const props = createGetAnswerProps(options, {dispatch})(\n state,\n omit('question.content.step', slider)\n );\n\n t.true(isFunction(props.onChange));\n\n props.onChange(0.87);\n});\n\ntest('should create edited slider props', t => {\n const state = {\n ui: {\n answers: {1234: {value: ['300']}},\n current: {progressionId: '1234'}\n }\n };\n\n const props = getAnswerProps(state, slider);\n t.is(props.title, '300 an(s)');\n t.is(props.value, 0.3);\n});\n\ntest('should create initial basic props', t => {\n const state = {\n ui: {\n answers: {},\n current: {progressionId: null}\n }\n };\n const props = getAnswerProps(state, basic);\n t.is(props.type, 'freeText');\n});\n\ntest('should create edited basic props', t => {\n const state = {\n ui: {\n answers: {1234: {value: ['foo']}},\n current: {progressionId: '1234'}\n }\n };\n\n const props = getAnswerProps(state, basic);\n t.is(props.type, 'freeText');\n t.is(props.value, 'foo');\n t.true(isFunction(props.onChange));\n});\n\ntest('should provide an help subtitle depending on question.type', t => {\n const help = getHelp(qcmDrag);\n t.is(help, 'Cliquez sur les réponses dans le bon ordre.');\n const help1 = getHelp(template);\n t.is(help1, 'Type your answers');\n const help2 = getHelp(qcm);\n t.is(help2, '__Select something below');\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -13,7 +13,6 @@ const store = {
|
|
|
13
13
|
dispatch: _identity
|
|
14
14
|
};
|
|
15
15
|
const headerProps = createHeader(options, store);
|
|
16
|
-
|
|
17
16
|
const createProgression = slide => ({
|
|
18
17
|
engine: {
|
|
19
18
|
ref: 'microlearning',
|
|
@@ -36,7 +35,6 @@ const createProgression = slide => ({
|
|
|
36
35
|
viewedResources: []
|
|
37
36
|
}
|
|
38
37
|
});
|
|
39
|
-
|
|
40
38
|
const data = {
|
|
41
39
|
contents: {
|
|
42
40
|
chapter: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"header.js","names":["test","mockTranslate","createHeader","basicSlide","options","translate","store","dispatch","headerProps","createProgression","slide","engine","ref","version","content","type","state","nextContent","_id","lives","livesDisabled","step","current","viewedResources","data","contents","chapter","entities","name","level","chapterIds","chapter_id","progressions","basic","t","ui","progressionId","props","deepEqual","count","title","subcontent","details","is"],"sources":["../../../src/map-state-to-props/test/header.js"],"sourcesContent":["import test from 'ava';\nimport {set, identity, omit, pipe} from 'lodash/fp';\n\nimport {mockTranslate} from '@coorpacademy/translate';\nimport createHeader from '../header';\nimport basicSlide from './fixtures/slides/basic';\n\nconst options = {translate: mockTranslate};\nconst store = {dispatch: identity};\nconst headerProps = createHeader(options, store);\n\nconst createProgression = slide => ({\n engine: {\n ref: 'microlearning',\n version: '1'\n },\n content: {\n ref: '1.B1',\n type: 'chapter'\n },\n state: {\n nextContent: {\n ref: slide._id,\n type: 'slide'\n },\n lives: 100,\n livesDisabled: false,\n step: {\n current: 1\n },\n viewedResources: []\n }\n});\n\nconst data = {\n contents: {\n chapter: {\n entities: {\n '1.B2': {\n _id: '1.B2',\n name: 'some-title'\n }\n }\n },\n level: {\n entities: {\n '1.B': {\n name: 'level-with-chapters',\n chapterIds: ['1.B1', '1.B2', '1.B3']\n }\n }\n },\n slide: {\n entities: {\n [basicSlide._id]: {\n chapter_id: '1.B2'\n }\n }\n }\n },\n progressions: {\n entities: {\n basic: createProgression(basicSlide)\n }\n }\n};\n\ntest('should create header with the number of lives in the state', t => {\n const ui = {current: {progressionId: 'basic'}};\n const state = {data, ui};\n const props = headerProps(state);\n t.deepEqual(props.lives, {\n count: 100\n });\n});\n\ntest('should read title from the content when available', t => {\n const ui = {current: {progressionId: 'basic'}};\n const state = {data: set('progressions.entities.basic.content.ref', '1.B2', data), ui};\n const props = headerProps(state);\n\n t.deepEqual(omit('onClick', props.content), {\n title: 'some-title'\n });\n});\n\ntest('should find chapter details within learner.header.subcontent', t => {\n const ui = {current: {progressionId: 'basic'}};\n const state = {\n data: pipe(\n set('progressions.entities.basic.engine.ref', 'learner'),\n set('progressions.entities.basic.content.type', 'level'),\n set('progressions.entities.basic.content.ref', '1.B')\n )(data),\n ui\n };\n const props = headerProps(state);\n\n t.deepEqual(props.subcontent, {\n title: 'some-title',\n details: '2/3'\n });\n});\n\ntest('should set lives to null if lives are disabled in the progression', t => {\n const ui = {current: {progressionId: 'basic'}};\n const state = {data: set('progressions.entities.basic.state.livesDisabled', true, data), ui};\n const props = headerProps(state);\n\n t.is(props.lives, false);\n});\n"],"mappings":";;;;AAAA,OAAOA,
|
|
1
|
+
{"version":3,"file":"header.js","names":["test","mockTranslate","createHeader","basicSlide","options","translate","store","dispatch","_identity","headerProps","createProgression","slide","engine","ref","version","content","type","state","nextContent","_id","lives","livesDisabled","step","current","viewedResources","data","contents","chapter","entities","name","level","chapterIds","chapter_id","progressions","basic","t","ui","progressionId","props","deepEqual","count","_set","_omit","title","_pipe","subcontent","details","is"],"sources":["../../../src/map-state-to-props/test/header.js"],"sourcesContent":["import test from 'ava';\nimport {set, identity, omit, pipe} from 'lodash/fp';\n\nimport {mockTranslate} from '@coorpacademy/translate';\nimport createHeader from '../header';\nimport basicSlide from './fixtures/slides/basic';\n\nconst options = {translate: mockTranslate};\nconst store = {dispatch: identity};\nconst headerProps = createHeader(options, store);\n\nconst createProgression = slide => ({\n engine: {\n ref: 'microlearning',\n version: '1'\n },\n content: {\n ref: '1.B1',\n type: 'chapter'\n },\n state: {\n nextContent: {\n ref: slide._id,\n type: 'slide'\n },\n lives: 100,\n livesDisabled: false,\n step: {\n current: 1\n },\n viewedResources: []\n }\n});\n\nconst data = {\n contents: {\n chapter: {\n entities: {\n '1.B2': {\n _id: '1.B2',\n name: 'some-title'\n }\n }\n },\n level: {\n entities: {\n '1.B': {\n name: 'level-with-chapters',\n chapterIds: ['1.B1', '1.B2', '1.B3']\n }\n }\n },\n slide: {\n entities: {\n [basicSlide._id]: {\n chapter_id: '1.B2'\n }\n }\n }\n },\n progressions: {\n entities: {\n basic: createProgression(basicSlide)\n }\n }\n};\n\ntest('should create header with the number of lives in the state', t => {\n const ui = {current: {progressionId: 'basic'}};\n const state = {data, ui};\n const props = headerProps(state);\n t.deepEqual(props.lives, {\n count: 100\n });\n});\n\ntest('should read title from the content when available', t => {\n const ui = {current: {progressionId: 'basic'}};\n const state = {data: set('progressions.entities.basic.content.ref', '1.B2', data), ui};\n const props = headerProps(state);\n\n t.deepEqual(omit('onClick', props.content), {\n title: 'some-title'\n });\n});\n\ntest('should find chapter details within learner.header.subcontent', t => {\n const ui = {current: {progressionId: 'basic'}};\n const state = {\n data: pipe(\n set('progressions.entities.basic.engine.ref', 'learner'),\n set('progressions.entities.basic.content.type', 'level'),\n set('progressions.entities.basic.content.ref', '1.B')\n )(data),\n ui\n };\n const props = headerProps(state);\n\n t.deepEqual(props.subcontent, {\n title: 'some-title',\n details: '2/3'\n });\n});\n\ntest('should set lives to null if lives are disabled in the progression', t => {\n const ui = {current: {progressionId: 'basic'}};\n const state = {data: set('progressions.entities.basic.state.livesDisabled', true, data), ui};\n const props = headerProps(state);\n\n t.is(props.lives, false);\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
import _set from "lodash/fp/set";
|
|
2
2
|
import _get from "lodash/fp/get";
|
|
3
3
|
import _map from "lodash/fp/map";
|
|
4
|
-
|
|
5
|
-
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
6
|
-
|
|
7
4
|
import test from 'ava';
|
|
8
5
|
import createPlayer from '../player';
|
|
9
6
|
import { data, options, store } from './player';
|
|
@@ -26,33 +23,30 @@ test('memoize choices > QCM', t => {
|
|
|
26
23
|
}
|
|
27
24
|
}
|
|
28
25
|
});
|
|
29
|
-
|
|
30
26
|
const secondState = _set(['data', 'contents', 'slide', 'entities', 'qcmSlide-1', 'question', 'content', 'choices'], [{
|
|
31
27
|
label: 'foo'
|
|
32
28
|
}, {
|
|
33
29
|
label: 'bar'
|
|
34
|
-
}], initialState);
|
|
30
|
+
}], initialState);
|
|
35
31
|
|
|
32
|
+
// initiate player
|
|
33
|
+
const player = createPlayer(options, store);
|
|
36
34
|
|
|
37
|
-
|
|
38
|
-
|
|
35
|
+
// test answers values
|
|
39
36
|
const props = player(initialState);
|
|
37
|
+
const expected = _map('title', _get(['answerType', 'model', 'answers'], props));
|
|
40
38
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
39
|
+
// test new answers values when state is updated
|
|
44
40
|
const props2 = player(secondState);
|
|
45
|
-
|
|
46
41
|
const expected2 = _map('title', _get(['answerType', 'model', 'answers'], props2));
|
|
42
|
+
t.deepEqual(expected2, expected);
|
|
47
43
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
const newPlayer = createPlayer(options, store); // test new answers values when store and state are updated
|
|
44
|
+
// new player instance
|
|
45
|
+
const newPlayer = createPlayer(options, store);
|
|
51
46
|
|
|
47
|
+
// test new answers values when store and state are updated
|
|
52
48
|
const props3 = newPlayer(secondState);
|
|
53
|
-
|
|
54
49
|
const expected3 = _map('title', _get(['answerType', 'model', 'answers'], props3));
|
|
55
|
-
|
|
56
50
|
t.deepEqual([...expected3].sort(), ['bar', 'foo']);
|
|
57
51
|
});
|
|
58
52
|
test('memoize choices > QCM DRAG', t => {
|
|
@@ -74,34 +68,33 @@ test('memoize choices > QCM DRAG', t => {
|
|
|
74
68
|
}
|
|
75
69
|
}
|
|
76
70
|
});
|
|
77
|
-
|
|
78
71
|
const secondState = _set(['data', 'contents', 'slide', 'entities', '8.B2.2', 'question', 'content', 'choices'], [{
|
|
79
72
|
label: 'foo'
|
|
80
73
|
}, {
|
|
81
74
|
label: 'bar'
|
|
82
|
-
}],
|
|
83
|
-
|
|
75
|
+
}], {
|
|
76
|
+
...initialState
|
|
77
|
+
});
|
|
84
78
|
|
|
85
|
-
|
|
79
|
+
// initiate player
|
|
80
|
+
const player = createPlayer(options, store);
|
|
86
81
|
|
|
82
|
+
// test answers values
|
|
87
83
|
const props = player(initialState);
|
|
88
|
-
|
|
89
84
|
const expected = _map('title', _get(['answerType', 'model', 'answers'], props));
|
|
85
|
+
t.deepEqual([...expected].sort(), ["L'ordinateur", 'La tablette', 'Le smartphone']);
|
|
90
86
|
|
|
91
|
-
|
|
92
|
-
|
|
87
|
+
// test new answers values when state is updated
|
|
93
88
|
const props2 = player(secondState);
|
|
94
|
-
|
|
95
89
|
const expected2 = _map('title', _get(['answerType', 'model', 'answers'], props2));
|
|
90
|
+
t.deepEqual(expected2, expected);
|
|
96
91
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
const newPlayer = createPlayer(options, store); // test new answers values when store and state are updated
|
|
92
|
+
// new player instance
|
|
93
|
+
const newPlayer = createPlayer(options, store);
|
|
100
94
|
|
|
95
|
+
// test new answers values when store and state are updated
|
|
101
96
|
const props3 = newPlayer(secondState);
|
|
102
|
-
|
|
103
97
|
const expected3 = _map('title', _get(['answerType', 'model', 'answers'], props3));
|
|
104
|
-
|
|
105
98
|
t.deepEqual([...expected3].sort(), ['bar', 'foo']);
|
|
106
99
|
});
|
|
107
100
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["test","createPlayer","data","options","store","t","initialState","version","shuffleChoices","ui","route","qcm","current","progressionId","coaches","availableCoaches","secondState","label","player","props","expected","props2","expected2","deepEqual","newPlayer","props3","expected3","sort","qcmDrag"],"sources":["../../../src/map-state-to-props/test/index.js"],"sourcesContent":["import test from 'ava';\nimport {map, get, set} from 'lodash/fp';\nimport createPlayer from '../player';\n\nimport {data, options, store} from './player';\n\ntest('memoize choices > QCM', t => {\n // state fixture\n const initialState = set(\n ['data', 'configs', 'entities', 'microlearning@1'],\n {version: '1', shuffleChoices: true},\n {\n data,\n ui: {\n route: {qcm: 'answer'},\n current: {progressionId: 'qcm'},\n coaches: {availableCoaches: 1}\n }\n }\n );\n const secondState = set(\n ['data', 'contents', 'slide', 'entities', 'qcmSlide-1', 'question', 'content', 'choices'],\n [\n {\n label: 'foo'\n },\n {\n label: 'bar'\n }\n ],\n initialState\n );\n\n // initiate player\n const player = createPlayer(options, store);\n\n // test answers values\n const props = player(initialState);\n const expected = map('title', get(['answerType', 'model', 'answers'], props));\n\n // test new answers values when state is updated\n const props2 = player(secondState);\n const expected2 = map('title', get(['answerType', 'model', 'answers'], props2));\n t.deepEqual(expected2, expected);\n\n // new player instance\n const newPlayer = createPlayer(options, store);\n\n // test new answers values when store and state are updated\n const props3 = newPlayer(secondState);\n const expected3 = map('title', get(['answerType', 'model', 'answers'], props3));\n t.deepEqual([...expected3].sort(), ['bar', 'foo']);\n});\n\ntest('memoize choices > QCM DRAG', t => {\n // state fixture\n const initialState = set(\n ['data', 'configs', 'entities', 'microlearning@1'],\n {version: '1', shuffleChoices: true},\n {\n data,\n ui: {\n route: {qcmDrag: 'answer'},\n current: {progressionId: 'qcmDrag'},\n coaches: {availableCoaches: 1}\n }\n }\n );\n const secondState = set(\n ['data', 'contents', 'slide', 'entities', '8.B2.2', 'question', 'content', 'choices'],\n [\n {\n label: 'foo'\n },\n {\n label: 'bar'\n }\n ],\n {...initialState}\n );\n\n // initiate player\n const player = createPlayer(options, store);\n\n // test answers values\n const props = player(initialState);\n const expected = map('title', get(['answerType', 'model', 'answers'], props));\n t.deepEqual([...expected].sort(), [\"L'ordinateur\", 'La tablette', 'Le smartphone']);\n\n // test new answers values when state is updated\n const props2 = player(secondState);\n\n const expected2 = map('title', get(['answerType', 'model', 'answers'], props2));\n t.deepEqual(expected2, expected);\n\n // new player instance\n const newPlayer = createPlayer(options, store);\n\n // test new answers values when store and state are updated\n const props3 = newPlayer(secondState);\n const expected3 = map('title', get(['answerType', 'model', 'answers'], props3));\n t.deepEqual([...expected3].sort(), ['bar', 'foo']);\n});\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","names":["test","createPlayer","data","options","store","t","initialState","_set","version","shuffleChoices","ui","route","qcm","current","progressionId","coaches","availableCoaches","secondState","label","player","props","expected","_map","_get","props2","expected2","deepEqual","newPlayer","props3","expected3","sort","qcmDrag"],"sources":["../../../src/map-state-to-props/test/index.js"],"sourcesContent":["import test from 'ava';\nimport {map, get, set} from 'lodash/fp';\nimport createPlayer from '../player';\n\nimport {data, options, store} from './player';\n\ntest('memoize choices > QCM', t => {\n // state fixture\n const initialState = set(\n ['data', 'configs', 'entities', 'microlearning@1'],\n {version: '1', shuffleChoices: true},\n {\n data,\n ui: {\n route: {qcm: 'answer'},\n current: {progressionId: 'qcm'},\n coaches: {availableCoaches: 1}\n }\n }\n );\n const secondState = set(\n ['data', 'contents', 'slide', 'entities', 'qcmSlide-1', 'question', 'content', 'choices'],\n [\n {\n label: 'foo'\n },\n {\n label: 'bar'\n }\n ],\n initialState\n );\n\n // initiate player\n const player = createPlayer(options, store);\n\n // test answers values\n const props = player(initialState);\n const expected = map('title', get(['answerType', 'model', 'answers'], props));\n\n // test new answers values when state is updated\n const props2 = player(secondState);\n const expected2 = map('title', get(['answerType', 'model', 'answers'], props2));\n t.deepEqual(expected2, expected);\n\n // new player instance\n const newPlayer = createPlayer(options, store);\n\n // test new answers values when store and state are updated\n const props3 = newPlayer(secondState);\n const expected3 = map('title', get(['answerType', 'model', 'answers'], props3));\n t.deepEqual([...expected3].sort(), ['bar', 'foo']);\n});\n\ntest('memoize choices > QCM DRAG', t => {\n // state fixture\n const initialState = set(\n ['data', 'configs', 'entities', 'microlearning@1'],\n {version: '1', shuffleChoices: true},\n {\n data,\n ui: {\n route: {qcmDrag: 'answer'},\n current: {progressionId: 'qcmDrag'},\n coaches: {availableCoaches: 1}\n }\n }\n );\n const secondState = set(\n ['data', 'contents', 'slide', 'entities', '8.B2.2', 'question', 'content', 'choices'],\n [\n {\n label: 'foo'\n },\n {\n label: 'bar'\n }\n ],\n {...initialState}\n );\n\n // initiate player\n const player = createPlayer(options, store);\n\n // test answers values\n const props = player(initialState);\n const expected = map('title', get(['answerType', 'model', 'answers'], props));\n t.deepEqual([...expected].sort(), [\"L'ordinateur\", 'La tablette', 'Le smartphone']);\n\n // test new answers values when state is updated\n const props2 = player(secondState);\n\n const expected2 = map('title', get(['answerType', 'model', 'answers'], props2));\n t.deepEqual(expected2, expected);\n\n // new player instance\n const newPlayer = createPlayer(options, store);\n\n // test new answers values when store and state are updated\n const props3 = newPlayer(secondState);\n const expected3 = map('title', get(['answerType', 'model', 'answers'], props3));\n t.deepEqual([...expected3].sort(), ['bar', 'foo']);\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -7,9 +7,6 @@ import _set from "lodash/fp/set";
|
|
|
7
7
|
import _isEmpty from "lodash/fp/isEmpty";
|
|
8
8
|
import _get from "lodash/fp/get";
|
|
9
9
|
import _map from "lodash/fp/map";
|
|
10
|
-
|
|
11
|
-
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
12
|
-
|
|
13
10
|
import test from 'ava';
|
|
14
11
|
import { mockTranslate } from '@coorpacademy/translate';
|
|
15
12
|
import { Analytics as AnalyticsService, Answers as AnswersService, Clues as CluesService, Coach as CoachService, Comments as CommentsService, Content as ContentService, ExitNodes as ExitNodesService, LeaderBoard as LeaderBoardService, Location as LocationService, Progressions as ProgressionsService, Recommendations as RecommendationsService } from '@coorpacademy/player-services';
|
|
@@ -48,9 +45,7 @@ export const store = {
|
|
|
48
45
|
};
|
|
49
46
|
const createPlayerProps = createPlayer(options, store);
|
|
50
47
|
const createHeaderProps = createHeader(options, store);
|
|
51
|
-
|
|
52
48
|
const availableSlides = _pipe(_map(slide => [slide._id, slide]), _fromPairs)([basicSlide, plopSlide, qcmSlide, qcmDragSlide, qcmGraphicSlide, contextSlide]);
|
|
53
|
-
|
|
54
49
|
const createProgression = (slide, contentRef) => ({
|
|
55
50
|
engine: {
|
|
56
51
|
ref: 'microlearning',
|
|
@@ -73,7 +68,6 @@ const createProgression = (slide, contentRef) => ({
|
|
|
73
68
|
viewedResources: []
|
|
74
69
|
}
|
|
75
70
|
});
|
|
76
|
-
|
|
77
71
|
export const data = {
|
|
78
72
|
contents: {
|
|
79
73
|
chapter: {
|
|
@@ -110,7 +104,6 @@ export const data = {
|
|
|
110
104
|
}
|
|
111
105
|
}
|
|
112
106
|
};
|
|
113
|
-
|
|
114
107
|
const isDisabledFor = (slide, isConditional, answer) => {
|
|
115
108
|
const progressionId = 'progression';
|
|
116
109
|
const chapterId = 'chapter';
|
|
@@ -119,9 +112,10 @@ const isDisabledFor = (slide, isConditional, answer) => {
|
|
|
119
112
|
contents: {
|
|
120
113
|
slide: {
|
|
121
114
|
entities: {
|
|
122
|
-
[slide._id]:
|
|
115
|
+
[slide._id]: {
|
|
116
|
+
...slide,
|
|
123
117
|
chapter_id: chapterId
|
|
124
|
-
}
|
|
118
|
+
}
|
|
125
119
|
}
|
|
126
120
|
},
|
|
127
121
|
chapter: {
|
|
@@ -154,7 +148,6 @@ const isDisabledFor = (slide, isConditional, answer) => {
|
|
|
154
148
|
}
|
|
155
149
|
}).cta.disabled;
|
|
156
150
|
};
|
|
157
|
-
|
|
158
151
|
test('should create player props for basic question and show coaches', t => {
|
|
159
152
|
const state = {
|
|
160
153
|
data,
|
|
@@ -343,7 +336,6 @@ test('should display context tab button if slide context is available', t => {
|
|
|
343
336
|
}
|
|
344
337
|
}
|
|
345
338
|
};
|
|
346
|
-
|
|
347
339
|
const dispatch = action => {
|
|
348
340
|
t.deepEqual(action, {
|
|
349
341
|
type: UI_SELECT_ROUTE,
|
|
@@ -353,7 +345,6 @@ test('should display context tab button if slide context is available', t => {
|
|
|
353
345
|
}
|
|
354
346
|
});
|
|
355
347
|
};
|
|
356
|
-
|
|
357
348
|
const props = createPlayer(options, {
|
|
358
349
|
dispatch: action => action(dispatch, () => state)
|
|
359
350
|
})(state);
|
|
@@ -562,7 +553,6 @@ test('should not display review lesson notification when user has not seen any m
|
|
|
562
553
|
});
|
|
563
554
|
test('should feed step prop in non-adaptive mode', t => {
|
|
564
555
|
const state = _set('data.contents.level.entities.1.info.nbSlides', 12, learnerProgressionStateFixture);
|
|
565
|
-
|
|
566
556
|
const props = createPlayerProps(state);
|
|
567
557
|
t.deepEqual(props.step, {
|
|
568
558
|
current: 0,
|
|
@@ -571,7 +561,6 @@ test('should feed step prop in non-adaptive mode', t => {
|
|
|
571
561
|
});
|
|
572
562
|
test('should not feed step prop in adaptive mode', t => {
|
|
573
563
|
const state = _pipe(_set('data.contents.level.entities.1.info.nbSlides', 12), _set('data.contents.chapter.entities.chapter2.isConditional', true))(learnerProgressionStateFixture);
|
|
574
|
-
|
|
575
564
|
const props = createPlayerProps(state);
|
|
576
565
|
t.falsy(props.step);
|
|
577
566
|
});
|
|
@@ -579,7 +568,6 @@ test('should not send an id prop in resources', t => {
|
|
|
579
568
|
const props = createPlayerProps(learnerProgressionStateFixture);
|
|
580
569
|
t.is(_get('resources.0.id', props), undefined);
|
|
581
570
|
});
|
|
582
|
-
|
|
583
571
|
const createLearnerProgression = (slide, contentRef) => ({
|
|
584
572
|
engine: {
|
|
585
573
|
ref: 'learner',
|
|
@@ -602,7 +590,6 @@ const createLearnerProgression = (slide, contentRef) => ({
|
|
|
602
590
|
viewedResources: []
|
|
603
591
|
}
|
|
604
592
|
});
|
|
605
|
-
|
|
606
593
|
const check = (slide, answer) => {
|
|
607
594
|
const progressionId = 'progression';
|
|
608
595
|
const levelId = 'level';
|
|
@@ -612,9 +599,10 @@ const check = (slide, answer) => {
|
|
|
612
599
|
contents: {
|
|
613
600
|
slide: {
|
|
614
601
|
entities: {
|
|
615
|
-
[slide._id]:
|
|
602
|
+
[slide._id]: {
|
|
603
|
+
...slide,
|
|
616
604
|
chapter_id: chapterId
|
|
617
|
-
}
|
|
605
|
+
}
|
|
618
606
|
}
|
|
619
607
|
},
|
|
620
608
|
level: {
|
|
@@ -656,7 +644,6 @@ const check = (slide, answer) => {
|
|
|
656
644
|
}
|
|
657
645
|
}).cta.disabled;
|
|
658
646
|
};
|
|
659
|
-
|
|
660
647
|
test('should allow multi answers on adaptive level if the current chapter is not adaptive', t => {
|
|
661
648
|
t.true(check(basicSlide, []));
|
|
662
649
|
t.true(check(qcmSlide, []));
|