@pie-element/inline-dropdown 4.10.16-next.1 → 4.11.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +461 -0
- package/LICENSE.md +5 -0
- package/configure/CHANGELOG.md +405 -0
- package/configure/lib/defaults.js +18 -1
- package/configure/lib/defaults.js.map +1 -1
- package/configure/lib/index.js +15 -1
- package/configure/lib/index.js.map +1 -1
- package/configure/lib/inline-dropdown-toolbar.js +54 -47
- package/configure/lib/inline-dropdown-toolbar.js.map +1 -1
- package/configure/lib/main.js +227 -159
- package/configure/lib/main.js.map +1 -1
- package/configure/lib/markupUtils.js +1 -1
- package/configure/lib/markupUtils.js.map +1 -1
- package/configure/lib/utils.js +17 -0
- package/configure/lib/utils.js.map +1 -0
- package/configure/package.json +5 -5
- package/controller/CHANGELOG.md +85 -0
- package/controller/lib/defaults.js +1 -1
- package/controller/lib/index.js +28 -1
- package/controller/lib/index.js.map +1 -1
- package/controller/lib/utils.js +1 -1
- package/controller/lib/utils.js.map +1 -1
- package/controller/package.json +2 -2
- package/docs/config-schema.json +94 -0
- package/docs/config-schema.json.md +73 -1
- package/docs/demo/config.js +2 -2
- package/docs/demo/generate.js +19 -20
- package/docs/pie-schema.json +27 -0
- package/docs/pie-schema.json.md +20 -0
- package/lib/index.js +4 -1
- package/lib/index.js.map +1 -1
- package/lib/inline-dropdown.js +31 -21
- package/lib/inline-dropdown.js.map +1 -1
- package/package.json +6 -6
- package/configure/lib/__tests__/inline-dropdown-toolbar.test.js +0 -124
- package/configure/lib/__tests__/main.test.js +0 -516
- package/configure/lib/__tests__/markupUtils.test.js +0 -108
- package/controller/lib/__tests__/index.test.js +0 -942
- package/docs/demo/pie.manifest.json +0 -11
- package/lib/__tests__/inline-dropdown.test.js +0 -121
|
@@ -1,121 +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 _enzyme = require("enzyme");
|
|
8
|
-
|
|
9
|
-
var _react = _interopRequireDefault(require("react"));
|
|
10
|
-
|
|
11
|
-
var _inlineDropdown = require("../inline-dropdown");
|
|
12
|
-
|
|
13
|
-
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; }
|
|
14
|
-
|
|
15
|
-
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; }
|
|
16
|
-
|
|
17
|
-
describe('InlineDropdown', function () {
|
|
18
|
-
var wrapper;
|
|
19
|
-
var onChange = jest.fn();
|
|
20
|
-
beforeAll(function () {
|
|
21
|
-
wrapper = function wrapper(extra) {
|
|
22
|
-
var props = _objectSpread({
|
|
23
|
-
classes: {},
|
|
24
|
-
prompt: 'Prompt',
|
|
25
|
-
rationale: 'Rationale',
|
|
26
|
-
teacherInstructions: 'Teacher Instructions',
|
|
27
|
-
disabled: false,
|
|
28
|
-
choices: {
|
|
29
|
-
'0': [{
|
|
30
|
-
label: 'cow ',
|
|
31
|
-
value: '0',
|
|
32
|
-
correct: true,
|
|
33
|
-
rationale: 'rationale cow'
|
|
34
|
-
}, {
|
|
35
|
-
label: 'dog ',
|
|
36
|
-
value: '1',
|
|
37
|
-
correct: false
|
|
38
|
-
}, {
|
|
39
|
-
label: 'cat ',
|
|
40
|
-
value: '2',
|
|
41
|
-
correct: false
|
|
42
|
-
}],
|
|
43
|
-
'1': [{
|
|
44
|
-
label: 'over ',
|
|
45
|
-
value: '0',
|
|
46
|
-
correct: true,
|
|
47
|
-
rationale: 'rationale over'
|
|
48
|
-
}, {
|
|
49
|
-
label: 'under ',
|
|
50
|
-
value: '1',
|
|
51
|
-
correct: false
|
|
52
|
-
}, {
|
|
53
|
-
label: 'across ',
|
|
54
|
-
value: '2',
|
|
55
|
-
correct: false
|
|
56
|
-
}],
|
|
57
|
-
'2': [{
|
|
58
|
-
label: 'moon ',
|
|
59
|
-
value: '0',
|
|
60
|
-
correct: true,
|
|
61
|
-
rationale: 'rationale moon'
|
|
62
|
-
}, {
|
|
63
|
-
label: 'sun',
|
|
64
|
-
value: '2',
|
|
65
|
-
correct: false
|
|
66
|
-
}, {
|
|
67
|
-
label: 'house ',
|
|
68
|
-
value: '3',
|
|
69
|
-
correct: false
|
|
70
|
-
}]
|
|
71
|
-
},
|
|
72
|
-
markup: '<div><p>The {{0}} jumped {{1}} the {{2}}</p></div>',
|
|
73
|
-
mode: 'gather',
|
|
74
|
-
feedback: {
|
|
75
|
-
0: 'correct',
|
|
76
|
-
1: 'correct',
|
|
77
|
-
2: 'correct'
|
|
78
|
-
},
|
|
79
|
-
value: {
|
|
80
|
-
0: '1',
|
|
81
|
-
1: '0',
|
|
82
|
-
2: '0'
|
|
83
|
-
},
|
|
84
|
-
onChange: onChange
|
|
85
|
-
}, extra);
|
|
86
|
-
|
|
87
|
-
return (0, _enzyme.shallow)( /*#__PURE__*/_react["default"].createElement(_inlineDropdown.InlineDropdown, props));
|
|
88
|
-
};
|
|
89
|
-
});
|
|
90
|
-
describe('render', function () {
|
|
91
|
-
it('should render in gather mode', function () {
|
|
92
|
-
expect(wrapper()).toMatchSnapshot();
|
|
93
|
-
});
|
|
94
|
-
it('should render in view mode', function () {
|
|
95
|
-
expect(wrapper({
|
|
96
|
-
mode: 'view'
|
|
97
|
-
})).toMatchSnapshot();
|
|
98
|
-
});
|
|
99
|
-
it('should render in evaluate mode', function () {
|
|
100
|
-
expect(wrapper({
|
|
101
|
-
mode: 'evaluate'
|
|
102
|
-
})).toMatchSnapshot();
|
|
103
|
-
});
|
|
104
|
-
it('should render without teacher instructions', function () {
|
|
105
|
-
expect(wrapper({
|
|
106
|
-
teacherInstructions: null
|
|
107
|
-
})).toMatchSnapshot();
|
|
108
|
-
});
|
|
109
|
-
it('should render without rationale', function () {
|
|
110
|
-
expect(wrapper({
|
|
111
|
-
rationale: null
|
|
112
|
-
})).toMatchSnapshot();
|
|
113
|
-
});
|
|
114
|
-
it('should render without prompt', function () {
|
|
115
|
-
expect(wrapper({
|
|
116
|
-
prompt: null
|
|
117
|
-
})).toMatchSnapshot();
|
|
118
|
-
});
|
|
119
|
-
});
|
|
120
|
-
});
|
|
121
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vaW5saW5lLWRyb3Bkb3duLnRlc3QuanN4Il0sIm5hbWVzIjpbImRlc2NyaWJlIiwid3JhcHBlciIsIm9uQ2hhbmdlIiwiamVzdCIsImZuIiwiYmVmb3JlQWxsIiwiZXh0cmEiLCJwcm9wcyIsImNsYXNzZXMiLCJwcm9tcHQiLCJyYXRpb25hbGUiLCJ0ZWFjaGVySW5zdHJ1Y3Rpb25zIiwiZGlzYWJsZWQiLCJjaG9pY2VzIiwibGFiZWwiLCJ2YWx1ZSIsImNvcnJlY3QiLCJtYXJrdXAiLCJtb2RlIiwiZmVlZGJhY2siLCJpdCIsImV4cGVjdCIsInRvTWF0Y2hTbmFwc2hvdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7O0FBQ0E7O0FBRUE7Ozs7OztBQUVBQSxRQUFRLENBQUMsZ0JBQUQsRUFBbUIsWUFBTTtBQUMvQixNQUFJQyxPQUFKO0FBQ0EsTUFBSUMsUUFBUSxHQUFHQyxJQUFJLENBQUNDLEVBQUwsRUFBZjtBQUVBQyxFQUFBQSxTQUFTLENBQUMsWUFBTTtBQUNkSixJQUFBQSxPQUFPLEdBQUcsaUJBQUNLLEtBQUQsRUFBVztBQUNuQixVQUFNQyxLQUFLO0FBQ1RDLFFBQUFBLE9BQU8sRUFBRSxFQURBO0FBRVRDLFFBQUFBLE1BQU0sRUFBRSxRQUZDO0FBR1RDLFFBQUFBLFNBQVMsRUFBRSxXQUhGO0FBSVRDLFFBQUFBLG1CQUFtQixFQUFFLHNCQUpaO0FBS1RDLFFBQUFBLFFBQVEsRUFBRSxLQUxEO0FBTVRDLFFBQUFBLE9BQU8sRUFBRTtBQUNQLGVBQUssQ0FDSDtBQUNFQyxZQUFBQSxLQUFLLEVBQUUsTUFEVDtBQUVFQyxZQUFBQSxLQUFLLEVBQUUsR0FGVDtBQUdFQyxZQUFBQSxPQUFPLEVBQUUsSUFIWDtBQUlFTixZQUFBQSxTQUFTLEVBQUU7QUFKYixXQURHLEVBT0g7QUFDRUksWUFBQUEsS0FBSyxFQUFFLE1BRFQ7QUFFRUMsWUFBQUEsS0FBSyxFQUFFLEdBRlQ7QUFHRUMsWUFBQUEsT0FBTyxFQUFFO0FB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QUNELEtBRkMsQ0FBRjtBQUlBRixJQUFBQSxFQUFFLENBQUMsOEJBQUQsRUFBaUMsWUFBTTtBQUN2Q0MsTUFBQUEsTUFBTSxDQUFDcEIsT0FBTyxDQUFDO0FBQUVRLFFBQUFBLE1BQU0sRUFBRTtBQUFWLE9BQUQsQ0FBUixDQUFOLENBQWtDYSxlQUFsQztBQUNELEtBRkMsQ0FBRjtBQUdELEdBeEJPLENBQVI7QUF5QkQsQ0F6R08sQ0FBUiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNoYWxsb3cgfSBmcm9tICdlbnp5bWUnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHsgSW5saW5lRHJvcGRvd24gfSBmcm9tICcuLi9pbmxpbmUtZHJvcGRvd24nO1xuXG5kZXNjcmliZSgnSW5saW5lRHJvcGRvd24nLCAoKSA9PiB7XG4gIGxldCB3cmFwcGVyO1xuICBsZXQgb25DaGFuZ2UgPSBqZXN0LmZuKCk7XG5cbiAgYmVmb3JlQWxsKCgpID0+IHtcbiAgICB3cmFwcGVyID0gKGV4dHJhKSA9PiB7XG4gICAgICBjb25zdCBwcm9wcyA9IHtcbiAgICAgICAgY2xhc3Nlczoge30sXG4gICAgICAgIHByb21wdDogJ1Byb21wdCcsXG4gICAgICAgIHJhdGlvbmFsZTogJ1JhdGlvbmFsZScsXG4gICAgICAgIHRlYWNoZXJJbnN0cnVjdGlvbnM6ICdUZWFjaGVyIEluc3RydWN0aW9ucycsXG4gICAgICAgIGRpc2FibGVkOiBmYWxzZSxcbiAgICAgICAgY2hvaWNlczoge1xuICAgICAgICAgICcwJzogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBsYWJlbDogJ2NvdyAnLFxuICAgICAgICAgICAgICB2YWx1ZTogJzAnLFxuICAgICAgICAgICAgICBjb3JyZWN0OiB0cnVlLFxuICAgICAgICAgICAgICByYXRpb25hbGU6ICdyYXRpb25hbGUgY293J1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbGFiZWw6ICdkb2cgJyxcbiAgICAgICAgICAgICAgdmFsdWU6ICcxJyxcbiAgICAgICAgICAgICAgY29ycmVjdDogZmFsc2VcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGxhYmVsOiAnY2F0ICcsXG4gICAgICAgICAgICAgIHZhbHVlOiAnMicsXG4gICAgICAgICAgICAgIGNvcnJlY3Q6IGZhbHNlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgXSxcbiAgICAgICAgICAnMSc6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbGFiZWw6ICdvdmVyICcsXG4gICAgICAgICAgICAgIHZhbHVlOiAnMCcsXG4gICAgICAgICAgICAgIGNvcnJlY3Q6IHRydWUsXG4gICAgICAgICAgICAgIHJhdGlvbmFsZTogJ3JhdGlvbmFsZSBvdmVyJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbGFiZWw6ICd1bmRlciAnLFxuICAgICAgICAgICAgICB2YWx1ZTogJzEnLFxuICAgICAgICAgICAgICBjb3JyZWN0OiBmYWxzZVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbGFiZWw6ICdhY3Jvc3MgJyxcbiAgICAgICAgICAgICAgdmFsdWU6ICcyJyxcbiAgICAgICAgICAgICAgY29ycmVjdDogZmFsc2VcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdLFxuICAgICAgICAgICcyJzogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBsYWJlbDogJ21vb24gJyxcbiAgICAgICAgICAgICAgdmFsdWU6ICcwJyxcbiAgICAgICAgICAgICAgY29ycmVjdDogdHJ1ZSxcbiAgICAgICAgICAgICAgcmF0aW9uYWxlOiAncmF0aW9uYWxlIG1vb24nXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBsYWJlbDogJ3N1bicsXG4gICAgICAgICAgICAgIHZhbHVlOiAnMicsXG4gICAgICAgICAgICAgIGNvcnJlY3Q6IGZhbHNlXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBsYWJlbDogJ2hvdXNlICcsXG4gICAgICAgICAgICAgIHZhbHVlOiAnMycsXG4gICAgICAgICAgICAgIGNvcnJlY3Q6IGZhbHNlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICBtYXJrdXA6ICc8ZGl2PjxwPlRoZSB7ezB9fSBqdW1wZWQge3sxfX0gdGhlIHt7Mn19PC9wPjwvZGl2PicsXG4gICAgICAgIG1vZGU6ICdnYXRoZXInLFxuICAgICAgICBmZWVkYmFjazogeyAwOiAnY29ycmVjdCcsIDE6ICdjb3JyZWN0JywgMjogJ2NvcnJlY3QnIH0sXG4gICAgICAgIHZhbHVlOiB7IDA6ICcxJywgMTogJzAnLCAyOiAnMCcgfSxcbiAgICAgICAgb25DaGFuZ2UsXG4gICAgICAgIC4uLmV4dHJhXG4gICAgICB9O1xuXG4gICAgICByZXR1cm4gc2hhbGxvdyg8SW5saW5lRHJvcGRvd24gey4uLnByb3BzfS8+KTtcbiAgICB9O1xuICB9KTtcblxuICBkZXNjcmliZSgncmVuZGVyJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgcmVuZGVyIGluIGdhdGhlciBtb2RlJywgKCkgPT4ge1xuICAgICAgZXhwZWN0KHdyYXBwZXIoKSkudG9NYXRjaFNuYXBzaG90KCk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHJlbmRlciBpbiB2aWV3IG1vZGUnLCAoKSA9PiB7XG4gICAgICBleHBlY3Qod3JhcHBlcih7IG1vZGU6ICd2aWV3JyB9KSkudG9NYXRjaFNuYXBzaG90KCk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHJlbmRlciBpbiBldmFsdWF0ZSBtb2RlJywgKCkgPT4ge1xuICAgICAgZXhwZWN0KHdyYXBwZXIoeyBtb2RlOiAnZXZhbHVhdGUnIH0pKS50b01hdGNoU25hcHNob3QoKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmVuZGVyIHdpdGhvdXQgdGVhY2hlciBpbnN0cnVjdGlvbnMnLCAoKSA9PiB7XG4gICAgICBleHBlY3Qod3JhcHBlcih7IHRlYWNoZXJJbnN0cnVjdGlvbnM6IG51bGwgfSkpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCByZW5kZXIgd2l0aG91dCByYXRpb25hbGUnLCAoKSA9PiB7XG4gICAgICBleHBlY3Qod3JhcHBlcih7IHJhdGlvbmFsZTogbnVsbCB9KSkudG9NYXRjaFNuYXBzaG90KCk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHJlbmRlciB3aXRob3V0IHByb21wdCcsICgpID0+IHtcbiAgICAgIGV4cGVjdCh3cmFwcGVyKHsgcHJvbXB0OiBudWxsIH0pKS50b01hdGNoU25hcHNob3QoKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
|