@pie-element/categorize 11.3.4-next.3 → 12.0.0-beta.1
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 +0 -11
- package/configure/CHANGELOG.md +0 -11
- package/configure/lib/__tests__/main.test.js +100 -0
- package/configure/lib/__tests__/utils.js +39 -0
- package/configure/lib/defaults.js +3 -6
- package/configure/lib/defaults.js.map +1 -1
- package/configure/lib/design/__tests__/builder.test.js +34 -0
- package/configure/lib/design/__tests__/buttons.test.js +36 -0
- package/configure/lib/design/__tests__/header.test.js +37 -0
- package/configure/lib/design/__tests__/index.test.js +125 -0
- package/configure/lib/design/__tests__/input-header.test.js +41 -0
- package/configure/lib/design/builder.js +16 -34
- package/configure/lib/design/builder.js.map +1 -1
- package/configure/lib/design/buttons.js +42 -96
- package/configure/lib/design/buttons.js.map +1 -1
- package/configure/lib/design/categories/RowLabel.js +34 -47
- package/configure/lib/design/categories/RowLabel.js.map +1 -1
- package/configure/lib/design/categories/__tests__/alternateResponses.test.js +93 -0
- package/configure/lib/design/categories/__tests__/category.test.js +65 -0
- package/configure/lib/design/categories/__tests__/choice-preview.test.js +52 -0
- package/configure/lib/design/categories/__tests__/droppable-placeholder.test.js +63 -0
- package/configure/lib/design/categories/__tests__/index.test.js +91 -0
- package/configure/lib/design/categories/alternateResponses.js +97 -252
- package/configure/lib/design/categories/alternateResponses.js.map +1 -1
- package/configure/lib/design/categories/category.js +136 -209
- package/configure/lib/design/categories/category.js.map +1 -1
- package/configure/lib/design/categories/choice-preview.js +62 -127
- package/configure/lib/design/categories/choice-preview.js.map +1 -1
- package/configure/lib/design/categories/droppable-placeholder.js +74 -166
- package/configure/lib/design/categories/droppable-placeholder.js.map +1 -1
- package/configure/lib/design/categories/index.js +196 -385
- package/configure/lib/design/categories/index.js.map +1 -1
- package/configure/lib/design/choices/__tests__/choice.test.js +62 -0
- package/configure/lib/design/choices/__tests__/config.test.js +66 -0
- package/configure/lib/design/choices/__tests__/index.test.js +70 -0
- package/configure/lib/design/choices/choice.js +156 -265
- package/configure/lib/design/choices/choice.js.map +1 -1
- package/configure/lib/design/choices/config.js +43 -99
- package/configure/lib/design/choices/config.js.map +1 -1
- package/configure/lib/design/choices/index.js +149 -237
- package/configure/lib/design/choices/index.js.map +1 -1
- package/configure/lib/design/header.js +58 -112
- package/configure/lib/design/header.js.map +1 -1
- package/configure/lib/design/index.js +633 -478
- package/configure/lib/design/index.js.map +1 -1
- package/configure/lib/design/input-header.js +95 -151
- package/configure/lib/design/input-header.js.map +1 -1
- package/configure/lib/design/utils.js +5 -16
- package/configure/lib/design/utils.js.map +1 -1
- package/configure/lib/index.js +121 -184
- package/configure/lib/index.js.map +1 -1
- package/configure/lib/main.js +31 -75
- package/configure/lib/main.js.map +1 -1
- package/configure/lib/utils.js +23 -33
- package/configure/lib/utils.js.map +1 -1
- package/configure/package.json +15 -15
- package/controller/CHANGELOG.md +0 -11
- package/controller/lib/__tests__/index.test.js +526 -0
- package/controller/lib/defaults.js +3 -6
- package/controller/lib/defaults.js.map +1 -1
- package/controller/lib/index.js +238 -319
- package/controller/lib/index.js.map +1 -1
- package/controller/lib/utils.js +29 -66
- package/controller/lib/utils.js.map +1 -1
- package/controller/package.json +5 -5
- package/docs/demo/.pie/.configure/package.json +10 -0
- package/docs/demo/.pie/.configure/yarn.lock +2181 -0
- package/docs/demo/.pie/.controllers/package.json +10 -0
- package/docs/demo/.pie/.controllers/yarn.lock +110 -0
- package/docs/demo/.pie/info.entry.js +89 -0
- package/docs/demo/.pie/info.webpack.config.js +119 -0
- package/docs/demo/.pie/package.json +10 -0
- package/docs/demo/.pie/yarn.lock +2190 -0
- package/docs/demo/pie.manifest.json +11 -0
- package/lib/__tests__/index.test.js +197 -0
- package/lib/categorize/__tests__/categories.test.js +138 -0
- package/lib/categorize/__tests__/category.test.js +137 -0
- package/lib/categorize/__tests__/choice.test.js +88 -0
- package/lib/categorize/__tests__/choices.test.js +118 -0
- package/lib/categorize/__tests__/droppable-placeholder.test.js +96 -0
- package/lib/categorize/__tests__/grid-content.test.js +48 -0
- package/lib/categorize/__tests__/index.test.js +152 -0
- package/lib/categorize/categories.js +107 -165
- package/lib/categorize/categories.js.map +1 -1
- package/lib/categorize/category.js +74 -124
- package/lib/categorize/category.js.map +1 -1
- package/lib/categorize/choice.js +119 -246
- package/lib/categorize/choice.js.map +1 -1
- package/lib/categorize/choices.js +67 -132
- package/lib/categorize/choices.js.map +1 -1
- package/lib/categorize/droppable-placeholder.js +47 -104
- package/lib/categorize/droppable-placeholder.js.map +1 -1
- package/lib/categorize/grid-content.js +40 -88
- package/lib/categorize/grid-content.js.map +1 -1
- package/lib/categorize/index.js +342 -318
- package/lib/categorize/index.js.map +1 -1
- package/lib/index.js +286 -307
- package/lib/index.js.map +1 -1
- package/package.json +16 -14
- package/esm/configure.js +0 -34401
- package/esm/configure.js.map +0 -1
- package/esm/controller.js +0 -1468
- package/esm/controller.js.map +0 -1
- package/esm/element.js +0 -13134
- package/esm/element.js.map +0 -1
- package/esm/package.json +0 -3
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _react = _interopRequireDefault(require("react"));
|
|
5
|
+
var _react2 = require("@testing-library/react");
|
|
6
|
+
var _styles = require("@mui/material/styles");
|
|
7
|
+
var _choicePreview = require("../choice-preview");
|
|
8
|
+
jest.mock('@pie-lib/drag', () => ({
|
|
9
|
+
DraggableChoice: props => /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("button", {
|
|
10
|
+
onClick: props.onRemoveChoice
|
|
11
|
+
}, "Remove"), props.choice.content)
|
|
12
|
+
}));
|
|
13
|
+
jest.mock('@pie-lib/render-ui', () => ({
|
|
14
|
+
HtmlAndMath: props => /*#__PURE__*/_react.default.createElement("div", null, props.text),
|
|
15
|
+
color: {
|
|
16
|
+
tertiary: () => '#000'
|
|
17
|
+
}
|
|
18
|
+
}));
|
|
19
|
+
const theme = (0, _styles.createTheme)();
|
|
20
|
+
describe('ChoicePreview', () => {
|
|
21
|
+
let onDelete = jest.fn();
|
|
22
|
+
beforeEach(() => {
|
|
23
|
+
onDelete = jest.fn();
|
|
24
|
+
});
|
|
25
|
+
const renderChoicePreview = extras => {
|
|
26
|
+
const defaults = {
|
|
27
|
+
classes: {},
|
|
28
|
+
className: 'className',
|
|
29
|
+
choice: {
|
|
30
|
+
content: 'content',
|
|
31
|
+
id: '1'
|
|
32
|
+
},
|
|
33
|
+
onDelete
|
|
34
|
+
};
|
|
35
|
+
const props = {
|
|
36
|
+
...defaults,
|
|
37
|
+
...extras
|
|
38
|
+
};
|
|
39
|
+
return (0, _react2.render)(/*#__PURE__*/_react.default.createElement(_styles.ThemeProvider, {
|
|
40
|
+
theme: theme
|
|
41
|
+
}, /*#__PURE__*/_react.default.createElement(_choicePreview.ChoicePreview, props)));
|
|
42
|
+
};
|
|
43
|
+
describe('renders', () => {
|
|
44
|
+
it('renders without crashing', () => {
|
|
45
|
+
const {
|
|
46
|
+
container
|
|
47
|
+
} = renderChoicePreview();
|
|
48
|
+
expect(container).toBeInTheDocument();
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9yZWFjdDIiLCJfc3R5bGVzIiwiX2Nob2ljZVByZXZpZXciLCJqZXN0IiwibW9jayIsIkRyYWdnYWJsZUNob2ljZSIsInByb3BzIiwiZGVmYXVsdCIsImNyZWF0ZUVsZW1lbnQiLCJvbkNsaWNrIiwib25SZW1vdmVDaG9pY2UiLCJjaG9pY2UiLCJjb250ZW50IiwiSHRtbEFuZE1hdGgiLCJ0ZXh0IiwiY29sb3IiLCJ0ZXJ0aWFyeSIsInRoZW1lIiwiY3JlYXRlVGhlbWUiLCJkZXNjcmliZSIsIm9uRGVsZXRlIiwiZm4iLCJiZWZvcmVFYWNoIiwicmVuZGVyQ2hvaWNlUHJldmlldyIsImV4dHJhcyIsImRlZmF1bHRzIiwiY2xhc3NlcyIsImNsYXNzTmFtZSIsImlkIiwicmVuZGVyIiwiVGhlbWVQcm92aWRlciIsIkNob2ljZVByZXZpZXciLCJpdCIsImNvbnRhaW5lciIsImV4cGVjdCIsInRvQmVJblRoZURvY3VtZW50Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2Rlc2lnbi9jYXRlZ29yaWVzL19fdGVzdHNfXy9jaG9pY2UtcHJldmlldy50ZXN0LmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSAnQHRlc3RpbmctbGlicmFyeS9yZWFjdCc7XG5pbXBvcnQgeyBUaGVtZVByb3ZpZGVyLCBjcmVhdGVUaGVtZSB9IGZyb20gJ0BtdWkvbWF0ZXJpYWwvc3R5bGVzJztcbmltcG9ydCB7IENob2ljZVByZXZpZXcgfSBmcm9tICcuLi9jaG9pY2UtcHJldmlldyc7XG5cbmplc3QubW9jaygnQHBpZS1saWIvZHJhZycsICgpID0+ICh7XG4gIERyYWdnYWJsZUNob2ljZTogKHByb3BzKSA9PiAoXG4gICAgPGRpdj5cbiAgICAgIDxidXR0b24gb25DbGljaz17cHJvcHMub25SZW1vdmVDaG9pY2V9PlJlbW92ZTwvYnV0dG9uPlxuICAgICAge3Byb3BzLmNob2ljZS5jb250ZW50fVxuICAgIDwvZGl2PlxuICApLFxufSkpO1xuXG5qZXN0Lm1vY2soJ0BwaWUtbGliL3JlbmRlci11aScsICgpID0+ICh7XG4gIEh0bWxBbmRNYXRoOiAocHJvcHMpID0+IDxkaXY+e3Byb3BzLnRleHR9PC9kaXY+LFxuICBjb2xvcjoge1xuICAgIHRlcnRpYXJ5OiAoKSA9PiAnIzAwMCcsXG4gIH0sXG59KSk7XG5cbmNvbnN0IHRoZW1lID0gY3JlYXRlVGhlbWUoKTtcblxuZGVzY3JpYmUoJ0Nob2ljZVByZXZpZXcnLCAoKSA9PiB7XG4gIGxldCBvbkRlbGV0ZSA9IGplc3QuZm4oKTtcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICBvbkRlbGV0ZSA9IGplc3QuZm4oKTtcbiAgfSk7XG5cbiAgY29uc3QgcmVuZGVyQ2hvaWNlUHJldmlldyA9IChleHRyYXMpID0+IHtcbiAgICBjb25zdCBkZWZhdWx0cyA9IHtcbiAgICAgIGNsYXNzZXM6IHt9LFxuICAgICAgY2xhc3NOYW1lOiAnY2xhc3NOYW1lJyxcbiAgICAgIGNob2ljZToge1xuICAgICAgICBjb250ZW50OiAnY29udGVudCcsXG4gICAgICAgIGlkOiAnMScsXG4gICAgICB9LFxuICAgICAgb25EZWxldGUsXG4gICAgfTtcbiAgICBjb25zdCBwcm9wcyA9IHsgLi4uZGVmYXVsdHMsIC4uLmV4dHJhcyB9O1xuICAgIHJldHVybiByZW5kZXIoXG4gICAgICA8VGhlbWVQcm92aWRlciB0aGVtZT17dGhlbWV9PlxuICAgICAgICA8Q2hvaWNlUHJldmlldyB7Li4ucHJvcHN9IC8+XG4gICAgICA8L1RoZW1lUHJvdmlkZXI+XG4gICAgKTtcbiAgfTtcblxuICBkZXNjcmliZSgncmVuZGVycycsICgpID0+IHtcbiAgICBpdCgncmVuZGVycyB3aXRob3V0IGNyYXNoaW5nJywgKCkgPT4ge1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlckNob2ljZVByZXZpZXcoKTtcbiAgICAgIGV4cGVjdChjb250YWluZXIpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXSwibWFwcGluZ3MiOiI7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE9BQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLE9BQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLGNBQUEsR0FBQUgsT0FBQTtBQUVBSSxJQUFJLENBQUNDLElBQUksQ0FBQyxlQUFlLEVBQUUsT0FBTztFQUNoQ0MsZUFBZSxFQUFHQyxLQUFLLGlCQUNyQlQsTUFBQSxDQUFBVSxPQUFBLENBQUFDLGFBQUEsMkJBQ0VYLE1BQUEsQ0FBQVUsT0FBQSxDQUFBQyxhQUFBO0lBQVFDLE9BQU8sRUFBRUgsS0FBSyxDQUFDSTtFQUFlLEdBQUMsUUFBYyxDQUFDLEVBQ3JESixLQUFLLENBQUNLLE1BQU0sQ0FBQ0MsT0FDWDtBQUVULENBQUMsQ0FBQyxDQUFDO0FBRUhULElBQUksQ0FBQ0MsSUFBSSxDQUFDLG9CQUFvQixFQUFFLE9BQU87RUFDckNTLFdBQVcsRUFBR1AsS0FBSyxpQkFBS1QsTUFBQSxDQUFBVSxPQUFBLENBQUFDLGFBQUEsY0FBTUYsS0FBSyxDQUFDUSxJQUFVLENBQUM7RUFDL0NDLEtBQUssRUFBRTtJQUNMQyxRQUFRLEVBQUVBLENBQUEsS0FBTTtFQUNsQjtBQUNGLENBQUMsQ0FBQyxDQUFDO0FBRUgsTUFBTUMsS0FBSyxHQUFHLElBQUFDLG1CQUFXLEVBQUMsQ0FBQztBQUUzQkMsUUFBUSxDQUFDLGVBQWUsRUFBRSxNQUFNO0VBQzlCLElBQUlDLFFBQVEsR0FBR2pCLElBQUksQ0FBQ2tCLEVBQUUsQ0FBQyxDQUFDO0VBRXhCQyxVQUFVLENBQUMsTUFBTTtJQUNmRixRQUFRLEdBQUdqQixJQUFJLENBQUNrQixFQUFFLENBQUMsQ0FBQztFQUN0QixDQUFDLENBQUM7RUFFRixNQUFNRSxtQkFBbUIsR0FBSUMsTUFBTSxJQUFLO0lBQ3RDLE1BQU1DLFFBQVEsR0FBRztNQUNmQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO01BQ1hDLFNBQVMsRUFBRSxXQUFXO01BQ3RCaEIsTUFBTSxFQUFFO1FBQ05DLE9BQU8sRUFBRSxTQUFTO1FBQ2xCZ0IsRUFBRSxFQUFFO01BQ04sQ0FBQztNQUNEUjtJQUNGLENBQUM7SUFDRCxNQUFNZCxLQUFLLEdBQUc7TUFBRSxHQUFHbUIsUUFBUTtNQUFFLEdBQUdEO0lBQU8sQ0FBQztJQUN4QyxPQUFPLElBQUFLLGNBQU0sZUFDWGhDLE1BQUEsQ0FBQVUsT0FBQSxDQUFBQyxhQUFBLENBQUNQLE9BQUEsQ0FBQTZCLGFBQWE7TUFBQ2IsS0FBSyxFQUFFQTtJQUFNLGdCQUMxQnBCLE1BQUEsQ0FBQVUsT0FBQSxDQUFBQyxhQUFBLENBQUNOLGNBQUEsQ0FBQTZCLGFBQWEsRUFBS3pCLEtBQVEsQ0FDZCxDQUNqQixDQUFDO0VBQ0gsQ0FBQztFQUVEYSxRQUFRLENBQUMsU0FBUyxFQUFFLE1BQU07SUFDeEJhLEVBQUUsQ0FBQywwQkFBMEIsRUFBRSxNQUFNO01BQ25DLE1BQU07UUFBRUM7TUFBVSxDQUFDLEdBQUdWLG1CQUFtQixDQUFDLENBQUM7TUFDM0NXLE1BQU0sQ0FBQ0QsU0FBUyxDQUFDLENBQUNFLGlCQUFpQixDQUFDLENBQUM7SUFDdkMsQ0FBQyxDQUFDO0VBQ0osQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _react = _interopRequireDefault(require("react"));
|
|
5
|
+
var _react2 = require("@testing-library/react");
|
|
6
|
+
var _styles = require("@mui/material/styles");
|
|
7
|
+
var _droppablePlaceholder = _interopRequireDefault(require("../droppable-placeholder"));
|
|
8
|
+
jest.mock('../choice-preview', () => {
|
|
9
|
+
const React = require('react');
|
|
10
|
+
return {
|
|
11
|
+
__esModule: true,
|
|
12
|
+
default: props => /*#__PURE__*/React.createElement("div", null, props.choice && props.choice.content)
|
|
13
|
+
};
|
|
14
|
+
});
|
|
15
|
+
const theme = (0, _styles.createTheme)();
|
|
16
|
+
describe('DroppablePlaceholder', () => {
|
|
17
|
+
let connectDropTarget = jest.fn(o => o);
|
|
18
|
+
let onDropChoice = jest.fn();
|
|
19
|
+
let onDeleteChoice = jest.fn();
|
|
20
|
+
beforeEach(() => {
|
|
21
|
+
connectDropTarget = jest.fn(o => o);
|
|
22
|
+
onDropChoice = jest.fn();
|
|
23
|
+
onDeleteChoice = jest.fn();
|
|
24
|
+
});
|
|
25
|
+
const renderPlaceholder = extras => {
|
|
26
|
+
const defaults = {
|
|
27
|
+
classes: {},
|
|
28
|
+
className: 'className',
|
|
29
|
+
onDeleteChoice,
|
|
30
|
+
onDropChoice,
|
|
31
|
+
connectDropTarget,
|
|
32
|
+
categoryId: '1',
|
|
33
|
+
choices: [{
|
|
34
|
+
id: '1',
|
|
35
|
+
content: 'content'
|
|
36
|
+
}]
|
|
37
|
+
};
|
|
38
|
+
const props = {
|
|
39
|
+
...defaults,
|
|
40
|
+
...extras
|
|
41
|
+
};
|
|
42
|
+
return (0, _react2.render)(/*#__PURE__*/_react.default.createElement(_styles.ThemeProvider, {
|
|
43
|
+
theme: theme
|
|
44
|
+
}, /*#__PURE__*/_react.default.createElement(_droppablePlaceholder.default, props)));
|
|
45
|
+
};
|
|
46
|
+
describe('renders', () => {
|
|
47
|
+
it('renders without crashing', () => {
|
|
48
|
+
const {
|
|
49
|
+
container
|
|
50
|
+
} = renderPlaceholder();
|
|
51
|
+
expect(container).toBeInTheDocument();
|
|
52
|
+
});
|
|
53
|
+
it('renders helper when no choices', () => {
|
|
54
|
+
const {
|
|
55
|
+
container
|
|
56
|
+
} = renderPlaceholder({
|
|
57
|
+
choices: []
|
|
58
|
+
});
|
|
59
|
+
expect(container).toBeInTheDocument();
|
|
60
|
+
});
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9yZWFjdDIiLCJfc3R5bGVzIiwiX2Ryb3BwYWJsZVBsYWNlaG9sZGVyIiwiamVzdCIsIm1vY2siLCJSZWFjdCIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwicHJvcHMiLCJjcmVhdGVFbGVtZW50IiwiY2hvaWNlIiwiY29udGVudCIsInRoZW1lIiwiY3JlYXRlVGhlbWUiLCJkZXNjcmliZSIsImNvbm5lY3REcm9wVGFyZ2V0IiwiZm4iLCJvIiwib25Ecm9wQ2hvaWNlIiwib25EZWxldGVDaG9pY2UiLCJiZWZvcmVFYWNoIiwicmVuZGVyUGxhY2Vob2xkZXIiLCJleHRyYXMiLCJkZWZhdWx0cyIsImNsYXNzZXMiLCJjbGFzc05hbWUiLCJjYXRlZ29yeUlkIiwiY2hvaWNlcyIsImlkIiwicmVuZGVyIiwiVGhlbWVQcm92aWRlciIsIml0IiwiY29udGFpbmVyIiwiZXhwZWN0IiwidG9CZUluVGhlRG9jdW1lbnQiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGVzaWduL2NhdGVnb3JpZXMvX190ZXN0c19fL2Ryb3BwYWJsZS1wbGFjZWhvbGRlci50ZXN0LmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSAnQHRlc3RpbmctbGlicmFyeS9yZWFjdCc7XG5pbXBvcnQgeyBUaGVtZVByb3ZpZGVyLCBjcmVhdGVUaGVtZSB9IGZyb20gJ0BtdWkvbWF0ZXJpYWwvc3R5bGVzJztcblxuaW1wb3J0IERyb3BwYWJsZVBsYWNlSG9sZGVyIGZyb20gJy4uL2Ryb3BwYWJsZS1wbGFjZWhvbGRlcic7XG5cbmplc3QubW9jaygnLi4vY2hvaWNlLXByZXZpZXcnLCAoKSA9PiB7XG4gIGNvbnN0IFJlYWN0ID0gcmVxdWlyZSgncmVhY3QnKTtcbiAgcmV0dXJuIHtcbiAgICBfX2VzTW9kdWxlOiB0cnVlLFxuICAgIGRlZmF1bHQ6IChwcm9wcykgPT4gPGRpdj57cHJvcHMuY2hvaWNlICYmIHByb3BzLmNob2ljZS5jb250ZW50fTwvZGl2PixcbiAgfTtcbn0pO1xuXG5jb25zdCB0aGVtZSA9IGNyZWF0ZVRoZW1lKCk7XG5cbmRlc2NyaWJlKCdEcm9wcGFibGVQbGFjZWhvbGRlcicsICgpID0+IHtcbiAgbGV0IGNvbm5lY3REcm9wVGFyZ2V0ID0gamVzdC5mbigobykgPT4gbyk7XG4gIGxldCBvbkRyb3BDaG9pY2UgPSBqZXN0LmZuKCk7XG4gIGxldCBvbkRlbGV0ZUNob2ljZSA9IGplc3QuZm4oKTtcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICBjb25uZWN0RHJvcFRhcmdldCA9IGplc3QuZm4oKG8pID0+IG8pO1xuICAgIG9uRHJvcENob2ljZSA9IGplc3QuZm4oKTtcbiAgICBvbkRlbGV0ZUNob2ljZSA9IGplc3QuZm4oKTtcbiAgfSk7XG5cbiAgY29uc3QgcmVuZGVyUGxhY2Vob2xkZXIgPSAoZXh0cmFzKSA9PiB7XG4gICAgY29uc3QgZGVmYXVsdHMgPSB7XG4gICAgICBjbGFzc2VzOiB7fSxcbiAgICAgIGNsYXNzTmFtZTogJ2NsYXNzTmFtZScsXG4gICAgICBvbkRlbGV0ZUNob2ljZSxcbiAgICAgIG9uRHJvcENob2ljZSxcbiAgICAgIGNvbm5lY3REcm9wVGFyZ2V0LFxuICAgICAgY2F0ZWdvcnlJZDogJzEnLFxuICAgICAgY2hvaWNlczogW3sgaWQ6ICcxJywgY29udGVudDogJ2NvbnRlbnQnIH1dLFxuICAgIH07XG4gICAgY29uc3QgcHJvcHMgPSB7XG4gICAgICAuLi5kZWZhdWx0cyxcbiAgICAgIC4uLmV4dHJhcyxcbiAgICB9O1xuICAgIHJldHVybiByZW5kZXIoXG4gICAgICA8VGhlbWVQcm92aWRlciB0aGVtZT17dGhlbWV9PlxuICAgICAgICA8RHJvcHBhYmxlUGxhY2VIb2xkZXIgey4uLnByb3BzfSAvPlxuICAgICAgPC9UaGVtZVByb3ZpZGVyPlxuICAgICk7XG4gIH07XG5cbiAgZGVzY3JpYmUoJ3JlbmRlcnMnLCAoKSA9PiB7XG4gICAgaXQoJ3JlbmRlcnMgd2l0aG91dCBjcmFzaGluZycsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXJQbGFjZWhvbGRlcigpO1xuICAgICAgZXhwZWN0KGNvbnRhaW5lcikudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcblxuICAgIGl0KCdyZW5kZXJzIGhlbHBlciB3aGVuIG5vIGNob2ljZXMnLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyUGxhY2Vob2xkZXIoeyBjaG9pY2VzOiBbXSB9KTtcbiAgICAgIGV4cGVjdChjb250YWluZXIpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG5cbiJdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsT0FBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsT0FBQSxHQUFBRixPQUFBO0FBRUEsSUFBQUcscUJBQUEsR0FBQUosc0JBQUEsQ0FBQUMsT0FBQTtBQUVBSSxJQUFJLENBQUNDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxNQUFNO0VBQ25DLE1BQU1DLEtBQUssR0FBR04sT0FBTyxDQUFDLE9BQU8sQ0FBQztFQUM5QixPQUFPO0lBQ0xPLFVBQVUsRUFBRSxJQUFJO0lBQ2hCQyxPQUFPLEVBQUdDLEtBQUssaUJBQUtILEtBQUEsQ0FBQUksYUFBQSxjQUFNRCxLQUFLLENBQUNFLE1BQU0sSUFBSUYsS0FBSyxDQUFDRSxNQUFNLENBQUNDLE9BQWE7RUFDdEUsQ0FBQztBQUNILENBQUMsQ0FBQztBQUVGLE1BQU1DLEtBQUssR0FBRyxJQUFBQyxtQkFBVyxFQUFDLENBQUM7QUFFM0JDLFFBQVEsQ0FBQyxzQkFBc0IsRUFBRSxNQUFNO0VBQ3JDLElBQUlDLGlCQUFpQixHQUFHWixJQUFJLENBQUNhLEVBQUUsQ0FBRUMsQ0FBQyxJQUFLQSxDQUFDLENBQUM7RUFDekMsSUFBSUMsWUFBWSxHQUFHZixJQUFJLENBQUNhLEVBQUUsQ0FBQyxDQUFDO0VBQzVCLElBQUlHLGNBQWMsR0FBR2hCLElBQUksQ0FBQ2EsRUFBRSxDQUFDLENBQUM7RUFFOUJJLFVBQVUsQ0FBQyxNQUFNO0lBQ2ZMLGlCQUFpQixHQUFHWixJQUFJLENBQUNhLEVBQUUsQ0FBRUMsQ0FBQyxJQUFLQSxDQUFDLENBQUM7SUFDckNDLFlBQVksR0FBR2YsSUFBSSxDQUFDYSxFQUFFLENBQUMsQ0FBQztJQUN4QkcsY0FBYyxHQUFHaEIsSUFBSSxDQUFDYSxFQUFFLENBQUMsQ0FBQztFQUM1QixDQUFDLENBQUM7RUFFRixNQUFNSyxpQkFBaUIsR0FBSUMsTUFBTSxJQUFLO0lBQ3BDLE1BQU1DLFFBQVEsR0FBRztNQUNmQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO01BQ1hDLFNBQVMsRUFBRSxXQUFXO01BQ3RCTixjQUFjO01BQ2RELFlBQVk7TUFDWkgsaUJBQWlCO01BQ2pCVyxVQUFVLEVBQUUsR0FBRztNQUNmQyxPQUFPLEVBQUUsQ0FBQztRQUFFQyxFQUFFLEVBQUUsR0FBRztRQUFFakIsT0FBTyxFQUFFO01BQVUsQ0FBQztJQUMzQyxDQUFDO0lBQ0QsTUFBTUgsS0FBSyxHQUFHO01BQ1osR0FBR2UsUUFBUTtNQUNYLEdBQUdEO0lBQ0wsQ0FBQztJQUNELE9BQU8sSUFBQU8sY0FBTSxlQUNYaEMsTUFBQSxDQUFBVSxPQUFBLENBQUFFLGFBQUEsQ0FBQ1IsT0FBQSxDQUFBNkIsYUFBYTtNQUFDbEIsS0FBSyxFQUFFQTtJQUFNLGdCQUMxQmYsTUFBQSxDQUFBVSxPQUFBLENBQUFFLGFBQUEsQ0FBQ1AscUJBQUEsQ0FBQUssT0FBb0IsRUFBS0MsS0FBUSxDQUNyQixDQUNqQixDQUFDO0VBQ0gsQ0FBQztFQUVETSxRQUFRLENBQUMsU0FBUyxFQUFFLE1BQU07SUFDeEJpQixFQUFFLENBQUMsMEJBQTBCLEVBQUUsTUFBTTtNQUNuQyxNQUFNO1FBQUVDO01BQVUsQ0FBQyxHQUFHWCxpQkFBaUIsQ0FBQyxDQUFDO01BQ3pDWSxNQUFNLENBQUNELFNBQVMsQ0FBQyxDQUFDRSxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3ZDLENBQUMsQ0FBQztJQUVGSCxFQUFFLENBQUMsZ0NBQWdDLEVBQUUsTUFBTTtNQUN6QyxNQUFNO1FBQUVDO01BQVUsQ0FBQyxHQUFHWCxpQkFBaUIsQ0FBQztRQUFFTSxPQUFPLEVBQUU7TUFBRyxDQUFDLENBQUM7TUFDeERNLE1BQU0sQ0FBQ0QsU0FBUyxDQUFDLENBQUNFLGlCQUFpQixDQUFDLENBQUM7SUFDdkMsQ0FBQyxDQUFDO0VBQ0osQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _react = _interopRequireDefault(require("react"));
|
|
5
|
+
var _react2 = require("@testing-library/react");
|
|
6
|
+
var _styles = require("@mui/material/styles");
|
|
7
|
+
var _index = require("../index");
|
|
8
|
+
jest.mock('../category', () => ({
|
|
9
|
+
__esModule: true,
|
|
10
|
+
default: props => /*#__PURE__*/_react.default.createElement("div", props)
|
|
11
|
+
}));
|
|
12
|
+
jest.mock('../../header', () => ({
|
|
13
|
+
__esModule: true,
|
|
14
|
+
default: props => /*#__PURE__*/_react.default.createElement("div", props)
|
|
15
|
+
}));
|
|
16
|
+
const theme = (0, _styles.createTheme)();
|
|
17
|
+
describe('Categories', () => {
|
|
18
|
+
let onModelChanged;
|
|
19
|
+
let renderCategories;
|
|
20
|
+
beforeEach(() => {
|
|
21
|
+
let model = {
|
|
22
|
+
choices: [{
|
|
23
|
+
id: '0',
|
|
24
|
+
content: 'Choice 0',
|
|
25
|
+
categoryCount: 0
|
|
26
|
+
}, {
|
|
27
|
+
id: '1',
|
|
28
|
+
content: 'Choice 0',
|
|
29
|
+
categoryCount: 0
|
|
30
|
+
}, {
|
|
31
|
+
id: '2',
|
|
32
|
+
content: 'Choice 3',
|
|
33
|
+
categoryCount: 0
|
|
34
|
+
}],
|
|
35
|
+
choicesPosition: 'below',
|
|
36
|
+
choicesLabel: '',
|
|
37
|
+
lockChoiceOrder: true,
|
|
38
|
+
categoriesPerRow: 2,
|
|
39
|
+
categories: [{
|
|
40
|
+
id: '0',
|
|
41
|
+
label: 'Category 0',
|
|
42
|
+
choices: []
|
|
43
|
+
}],
|
|
44
|
+
rowLabels: [''],
|
|
45
|
+
correctResponse: [],
|
|
46
|
+
partialScoring: true
|
|
47
|
+
};
|
|
48
|
+
onModelChanged = jest.fn();
|
|
49
|
+
renderCategories = extras => {
|
|
50
|
+
model = {
|
|
51
|
+
...model,
|
|
52
|
+
...extras
|
|
53
|
+
};
|
|
54
|
+
const defaults = {
|
|
55
|
+
classes: {
|
|
56
|
+
categories: 'categories',
|
|
57
|
+
categoriesHolder: 'categoriesHolder',
|
|
58
|
+
row: 'row'
|
|
59
|
+
},
|
|
60
|
+
categories: [{
|
|
61
|
+
id: '1',
|
|
62
|
+
label: 'foo',
|
|
63
|
+
choices: []
|
|
64
|
+
}],
|
|
65
|
+
className: 'className',
|
|
66
|
+
model,
|
|
67
|
+
configuration: {
|
|
68
|
+
rowLabels: {},
|
|
69
|
+
baseInputConfiguration: {}
|
|
70
|
+
},
|
|
71
|
+
onModelChanged,
|
|
72
|
+
extras
|
|
73
|
+
};
|
|
74
|
+
const props = {
|
|
75
|
+
...defaults
|
|
76
|
+
};
|
|
77
|
+
return (0, _react2.render)(/*#__PURE__*/_react.default.createElement(_styles.ThemeProvider, {
|
|
78
|
+
theme: theme
|
|
79
|
+
}, /*#__PURE__*/_react.default.createElement(_index.Categories, props)));
|
|
80
|
+
};
|
|
81
|
+
});
|
|
82
|
+
describe('renders', () => {
|
|
83
|
+
it('renders without crashing', () => {
|
|
84
|
+
const {
|
|
85
|
+
container
|
|
86
|
+
} = renderCategories();
|
|
87
|
+
expect(container).toBeInTheDocument();
|
|
88
|
+
});
|
|
89
|
+
});
|
|
90
|
+
});
|
|
91
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9yZWFjdDIiLCJfc3R5bGVzIiwiX2luZGV4IiwiamVzdCIsIm1vY2siLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsInByb3BzIiwiY3JlYXRlRWxlbWVudCIsInRoZW1lIiwiY3JlYXRlVGhlbWUiLCJkZXNjcmliZSIsIm9uTW9kZWxDaGFuZ2VkIiwicmVuZGVyQ2F0ZWdvcmllcyIsImJlZm9yZUVhY2giLCJtb2RlbCIsImNob2ljZXMiLCJpZCIsImNvbnRlbnQiLCJjYXRlZ29yeUNvdW50IiwiY2hvaWNlc1Bvc2l0aW9uIiwiY2hvaWNlc0xhYmVsIiwibG9ja0Nob2ljZU9yZGVyIiwiY2F0ZWdvcmllc1BlclJvdyIsImNhdGVnb3JpZXMiLCJsYWJlbCIsInJvd0xhYmVscyIsImNvcnJlY3RSZXNwb25zZSIsInBhcnRpYWxTY29yaW5nIiwiZm4iLCJleHRyYXMiLCJkZWZhdWx0cyIsImNsYXNzZXMiLCJjYXRlZ29yaWVzSG9sZGVyIiwicm93IiwiY2xhc3NOYW1lIiwiY29uZmlndXJhdGlvbiIsImJhc2VJbnB1dENvbmZpZ3VyYXRpb24iLCJyZW5kZXIiLCJUaGVtZVByb3ZpZGVyIiwiQ2F0ZWdvcmllcyIsIml0IiwiY29udGFpbmVyIiwiZXhwZWN0IiwidG9CZUluVGhlRG9jdW1lbnQiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGVzaWduL2NhdGVnb3JpZXMvX190ZXN0c19fL2luZGV4LnRlc3QuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyByZW5kZXIgfSBmcm9tICdAdGVzdGluZy1saWJyYXJ5L3JlYWN0JztcbmltcG9ydCB7IFRoZW1lUHJvdmlkZXIsIGNyZWF0ZVRoZW1lIH0gZnJvbSAnQG11aS9tYXRlcmlhbC9zdHlsZXMnO1xuXG5pbXBvcnQgeyBDYXRlZ29yaWVzIH0gZnJvbSAnLi4vaW5kZXgnO1xuXG5qZXN0Lm1vY2soJy4uL2NhdGVnb3J5JywgKCkgPT4gKHtcbiAgX19lc01vZHVsZTogdHJ1ZSxcbiAgZGVmYXVsdDogKHByb3BzKSA9PiA8ZGl2IHsuLi5wcm9wc30gLz4sXG59KSk7XG5qZXN0Lm1vY2soJy4uLy4uL2hlYWRlcicsICgpID0+ICh7XG4gIF9fZXNNb2R1bGU6IHRydWUsXG4gIGRlZmF1bHQ6IChwcm9wcykgPT4gPGRpdiB7Li4ucHJvcHN9IC8+LFxufSkpO1xuXG5jb25zdCB0aGVtZSA9IGNyZWF0ZVRoZW1lKCk7XG5cbmRlc2NyaWJlKCdDYXRlZ29yaWVzJywgKCkgPT4ge1xuICBsZXQgb25Nb2RlbENoYW5nZWQ7XG4gIGxldCByZW5kZXJDYXRlZ29yaWVzO1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIGxldCBtb2RlbCA9IHtcbiAgICAgIGNob2ljZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGlkOiAnMCcsXG4gICAgICAgICAgY29udGVudDogJ0Nob2ljZSAwJyxcbiAgICAgICAgICBjYXRlZ29yeUNvdW50OiAwLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgaWQ6ICcxJyxcbiAgICAgICAgICBjb250ZW50OiAnQ2hvaWNlIDAnLFxuICAgICAgICAgIGNhdGVnb3J5Q291bnQ6IDAsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBpZDogJzInLFxuICAgICAgICAgIGNvbnRlbnQ6ICdDaG9pY2UgMycsXG4gICAgICAgICAgY2F0ZWdvcnlDb3VudDogMCxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBjaG9pY2VzUG9zaXRpb246ICdiZWxvdycsXG4gICAgICBjaG9pY2VzTGFiZWw6ICcnLFxuICAgICAgbG9ja0Nob2ljZU9yZGVyOiB0cnVlLFxuICAgICAgY2F0ZWdvcmllc1BlclJvdzogMixcbiAgICAgIGNhdGVnb3JpZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGlkOiAnMCcsXG4gICAgICAgICAgbGFiZWw6ICdDYXRlZ29yeSAwJyxcbiAgICAgICAgICBjaG9pY2VzOiBbXSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICByb3dMYWJlbHM6IFsnJ10sXG4gICAgICBjb3JyZWN0UmVzcG9uc2U6IFtdLFxuICAgICAgcGFydGlhbFNjb3Jpbmc6IHRydWUsXG4gICAgfTtcblxuICAgIG9uTW9kZWxDaGFuZ2VkID0gamVzdC5mbigpO1xuICAgIHJlbmRlckNhdGVnb3JpZXMgPSAoZXh0cmFzKSA9PiB7XG4gICAgICBtb2RlbCA9IHsgLi4ubW9kZWwsIC4uLmV4dHJhcyB9O1xuICAgICAgY29uc3QgZGVmYXVsdHMgPSB7XG4gICAgICAgIGNsYXNzZXM6IHtcbiAgICAgICAgICBjYXRlZ29yaWVzOiAnY2F0ZWdvcmllcycsXG4gICAgICAgICAgY2F0ZWdvcmllc0hvbGRlcjogJ2NhdGVnb3JpZXNIb2xkZXInLFxuICAgICAgICAgIHJvdzogJ3JvdycsXG4gICAgICAgIH0sXG4gICAgICAgIGNhdGVnb3JpZXM6IFt7IGlkOiAnMScsIGxhYmVsOiAnZm9vJywgY2hvaWNlczogW10gfV0sXG4gICAgICAgIGNsYXNzTmFtZTogJ2NsYXNzTmFtZScsXG4gICAgICAgIG1vZGVsLFxuICAgICAgICBjb25maWd1cmF0aW9uOiB7IHJvd0xhYmVsczoge30sIGJhc2VJbnB1dENvbmZpZ3VyYXRpb246IHt9IH0sXG4gICAgICAgIG9uTW9kZWxDaGFuZ2VkLFxuICAgICAgICBleHRyYXMsXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBwcm9wcyA9IHsgLi4uZGVmYXVsdHMgfTtcbiAgICAgIHJldHVybiByZW5kZXIoXG4gICAgICAgIDxUaGVtZVByb3ZpZGVyIHRoZW1lPXt0aGVtZX0+XG4gICAgICAgICAgPENhdGVnb3JpZXMgey4uLnByb3BzfSAvPlxuICAgICAgICA8L1RoZW1lUHJvdmlkZXI+XG4gICAgICApO1xuICAgIH07XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdyZW5kZXJzJywgKCkgPT4ge1xuICAgIGl0KCdyZW5kZXJzIHdpdGhvdXQgY3Jhc2hpbmcnLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyQ2F0ZWdvcmllcygpO1xuICAgICAgZXhwZWN0KGNvbnRhaW5lcikudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsT0FBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsT0FBQSxHQUFBRixPQUFBO0FBRUEsSUFBQUcsTUFBQSxHQUFBSCxPQUFBO0FBRUFJLElBQUksQ0FBQ0MsSUFBSSxDQUFDLGFBQWEsRUFBRSxPQUFPO0VBQzlCQyxVQUFVLEVBQUUsSUFBSTtFQUNoQkMsT0FBTyxFQUFHQyxLQUFLLGlCQUFLVixNQUFBLENBQUFTLE9BQUEsQ0FBQUUsYUFBQSxRQUFTRCxLQUFRO0FBQ3ZDLENBQUMsQ0FBQyxDQUFDO0FBQ0hKLElBQUksQ0FBQ0MsSUFBSSxDQUFDLGNBQWMsRUFBRSxPQUFPO0VBQy9CQyxVQUFVLEVBQUUsSUFBSTtFQUNoQkMsT0FBTyxFQUFHQyxLQUFLLGlCQUFLVixNQUFBLENBQUFTLE9BQUEsQ0FBQUUsYUFBQSxRQUFTRCxLQUFRO0FBQ3ZDLENBQUMsQ0FBQyxDQUFDO0FBRUgsTUFBTUUsS0FBSyxHQUFHLElBQUFDLG1CQUFXLEVBQUMsQ0FBQztBQUUzQkMsUUFBUSxDQUFDLFlBQVksRUFBRSxNQUFNO0VBQzNCLElBQUlDLGNBQWM7RUFDbEIsSUFBSUMsZ0JBQWdCO0VBRXBCQyxVQUFVLENBQUMsTUFBTTtJQUNmLElBQUlDLEtBQUssR0FBRztNQUNWQyxPQUFPLEVBQUUsQ0FDUDtRQUNFQyxFQUFFLEVBQUUsR0FBRztRQUNQQyxPQUFPLEVBQUUsVUFBVTtRQUNuQkMsYUFBYSxFQUFFO01BQ2pCLENBQUMsRUFDRDtRQUNFRixFQUFFLEVBQUUsR0FBRztRQUNQQyxPQUFPLEVBQUUsVUFBVTtRQUNuQkMsYUFBYSxFQUFFO01BQ2pCLENBQUMsRUFDRDtRQUNFRixFQUFFLEVBQUUsR0FBRztRQUNQQyxPQUFPLEVBQUUsVUFBVTtRQUNuQkMsYUFBYSxFQUFFO01BQ2pCLENBQUMsQ0FDRjtNQUNEQyxlQUFlLEVBQUUsT0FBTztNQUN4QkMsWUFBWSxFQUFFLEVBQUU7TUFDaEJDLGVBQWUsRUFBRSxJQUFJO01BQ3JCQyxnQkFBZ0IsRUFBRSxDQUFDO01BQ25CQyxVQUFVLEVBQUUsQ0FDVjtRQUNFUCxFQUFFLEVBQUUsR0FBRztRQUNQUSxLQUFLLEVBQUUsWUFBWTtRQUNuQlQsT0FBTyxFQUFFO01BQ1gsQ0FBQyxDQUNGO01BQ0RVLFNBQVMsRUFBRSxDQUFDLEVBQUUsQ0FBQztNQUNmQyxlQUFlLEVBQUUsRUFBRTtNQUNuQkMsY0FBYyxFQUFFO0lBQ2xCLENBQUM7SUFFRGhCLGNBQWMsR0FBR1QsSUFBSSxDQUFDMEIsRUFBRSxDQUFDLENBQUM7SUFDMUJoQixnQkFBZ0IsR0FBSWlCLE1BQU0sSUFBSztNQUM3QmYsS0FBSyxHQUFHO1FBQUUsR0FBR0EsS0FBSztRQUFFLEdBQUdlO01BQU8sQ0FBQztNQUMvQixNQUFNQyxRQUFRLEdBQUc7UUFDZkMsT0FBTyxFQUFFO1VBQ1BSLFVBQVUsRUFBRSxZQUFZO1VBQ3hCUyxnQkFBZ0IsRUFBRSxrQkFBa0I7VUFDcENDLEdBQUcsRUFBRTtRQUNQLENBQUM7UUFDRFYsVUFBVSxFQUFFLENBQUM7VUFBRVAsRUFBRSxFQUFFLEdBQUc7VUFBRVEsS0FBSyxFQUFFLEtBQUs7VUFBRVQsT0FBTyxFQUFFO1FBQUcsQ0FBQyxDQUFDO1FBQ3BEbUIsU0FBUyxFQUFFLFdBQVc7UUFDdEJwQixLQUFLO1FBQ0xxQixhQUFhLEVBQUU7VUFBRVYsU0FBUyxFQUFFLENBQUMsQ0FBQztVQUFFVyxzQkFBc0IsRUFBRSxDQUFDO1FBQUUsQ0FBQztRQUM1RHpCLGNBQWM7UUFDZGtCO01BQ0YsQ0FBQztNQUVELE1BQU12QixLQUFLLEdBQUc7UUFBRSxHQUFHd0I7TUFBUyxDQUFDO01BQzdCLE9BQU8sSUFBQU8sY0FBTSxlQUNYekMsTUFBQSxDQUFBUyxPQUFBLENBQUFFLGFBQUEsQ0FBQ1AsT0FBQSxDQUFBc0MsYUFBYTtRQUFDOUIsS0FBSyxFQUFFQTtNQUFNLGdCQUMxQlosTUFBQSxDQUFBUyxPQUFBLENBQUFFLGFBQUEsQ0FBQ04sTUFBQSxDQUFBc0MsVUFBVSxFQUFLakMsS0FBUSxDQUNYLENBQ2pCLENBQUM7SUFDSCxDQUFDO0VBQ0gsQ0FBQyxDQUFDO0VBRUZJLFFBQVEsQ0FBQyxTQUFTLEVBQUUsTUFBTTtJQUN4QjhCLEVBQUUsQ0FBQywwQkFBMEIsRUFBRSxNQUFNO01BQ25DLE1BQU07UUFBRUM7TUFBVSxDQUFDLEdBQUc3QixnQkFBZ0IsQ0FBQyxDQUFDO01BQ3hDOEIsTUFBTSxDQUFDRCxTQUFTLENBQUMsQ0FBQ0UsaUJBQWlCLENBQUMsQ0FBQztJQUN2QyxDQUFDLENBQUM7RUFDSixDQUFDLENBQUM7QUFDSixDQUFDLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -1,271 +1,116 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
|
-
exports
|
|
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
|
-
|
|
7
|
+
exports.default = exports.AlternateResponses = void 0;
|
|
22
8
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
23
|
-
|
|
24
9
|
var _react = _interopRequireDefault(require("react"));
|
|
25
|
-
|
|
26
10
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
27
|
-
|
|
28
|
-
var _styles = require("@material-ui/core/styles");
|
|
29
|
-
|
|
30
|
-
var _classnames = _interopRequireDefault(require("classnames"));
|
|
31
|
-
|
|
11
|
+
var _styles = require("@mui/material/styles");
|
|
32
12
|
var _categorize = require("@pie-lib/categorize");
|
|
33
|
-
|
|
34
13
|
var _category = _interopRequireDefault(require("./category"));
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
},
|
|
61
|
-
rowLabel: {
|
|
62
|
-
gridColumn: '1/3'
|
|
63
|
-
}
|
|
64
|
-
};
|
|
65
|
-
};
|
|
66
|
-
|
|
67
|
-
var AlternateResponses = /*#__PURE__*/function (_React$Component) {
|
|
68
|
-
(0, _inherits2["default"])(AlternateResponses, _React$Component);
|
|
69
|
-
|
|
70
|
-
var _super = _createSuper(AlternateResponses);
|
|
71
|
-
|
|
72
|
-
function AlternateResponses() {
|
|
73
|
-
var _this;
|
|
74
|
-
|
|
75
|
-
(0, _classCallCheck2["default"])(this, AlternateResponses);
|
|
76
|
-
|
|
77
|
-
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
78
|
-
args[_key] = arguments[_key];
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
_this = _super.call.apply(_super, [this].concat(args));
|
|
82
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "addChoiceToCategory", function (addedChoice, categoryId) {
|
|
83
|
-
var _this$props = _this.props,
|
|
84
|
-
altIndex = _this$props.altIndex,
|
|
85
|
-
_this$props$model = _this$props.model,
|
|
86
|
-
correctResponse = _this$props$model.correctResponse,
|
|
87
|
-
choices = _this$props$model.choices,
|
|
88
|
-
_this$props$model$max = _this$props$model.maxChoicesPerCategory,
|
|
89
|
-
maxChoicesPerCategory = _this$props$model$max === void 0 ? 0 : _this$props$model$max,
|
|
90
|
-
onModelChanged = _this$props.onModelChanged;
|
|
91
|
-
var choice = choices.find(function (c) {
|
|
92
|
-
return c.id === addedChoice.id;
|
|
93
|
-
});
|
|
94
|
-
correctResponse.forEach(function (a) {
|
|
95
|
-
if (a.category === categoryId) {
|
|
96
|
-
a.alternateResponses = a.alternateResponses || [];
|
|
97
|
-
|
|
98
|
-
if (!a.alternateResponses[altIndex]) {
|
|
99
|
-
a.alternateResponses[altIndex] = [];
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
a.alternateResponses[altIndex].push(addedChoice.id);
|
|
103
|
-
|
|
104
|
-
if (choice.categoryCount && choice.categoryCount !== 0) {
|
|
105
|
-
a.alternateResponses[altIndex] = a.alternateResponses[altIndex].reduce(function (acc, currentValue) {
|
|
106
|
-
if (currentValue === choice.id) {
|
|
107
|
-
var foundIndex = acc.findIndex(function (c) {
|
|
108
|
-
return c === choice.id;
|
|
109
|
-
});
|
|
110
|
-
|
|
111
|
-
if (foundIndex === -1) {
|
|
112
|
-
acc.push(currentValue);
|
|
113
|
-
}
|
|
114
|
-
} else {
|
|
115
|
-
acc.push(currentValue);
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
return acc;
|
|
119
|
-
}, []);
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
return a;
|
|
123
|
-
} else {
|
|
124
|
-
if (a.alternateResponses[altIndex] && choice.categoryCount !== 0) {
|
|
125
|
-
a.alternateResponses[altIndex] = a.alternateResponses[altIndex].filter(function (c) {
|
|
126
|
-
return c !== addedChoice.id;
|
|
127
|
-
});
|
|
128
|
-
return a;
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
return a;
|
|
133
|
-
});
|
|
134
|
-
var maxCategoryChoices = (0, _utils.getMaxCategoryChoices)(_this.props.model); // when maxChoicesPerCategory is set to 0, there is no limit so it should not be updated
|
|
135
|
-
|
|
136
|
-
onModelChanged({
|
|
137
|
-
correctResponse: correctResponse,
|
|
138
|
-
maxChoicesPerCategory: maxChoicesPerCategory !== 0 && maxChoicesPerCategory < maxCategoryChoices ? maxChoicesPerCategory + 1 : maxChoicesPerCategory
|
|
139
|
-
});
|
|
140
|
-
});
|
|
141
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "moveChoice", function (choiceId, from, to, choiceIndex, alternateIndex) {
|
|
142
|
-
var _this$props2 = _this.props,
|
|
143
|
-
model = _this$props2.model,
|
|
144
|
-
onModelChanged = _this$props2.onModelChanged;
|
|
145
|
-
|
|
146
|
-
var _ref = model || {},
|
|
147
|
-
choices = _ref.choices,
|
|
148
|
-
_ref$correctResponse = _ref.correctResponse,
|
|
149
|
-
correctResponse = _ref$correctResponse === void 0 ? [] : _ref$correctResponse,
|
|
150
|
-
_ref$maxChoicesPerCat = _ref.maxChoicesPerCategory,
|
|
151
|
-
maxChoicesPerCategory = _ref$maxChoicesPerCat === void 0 ? 0 : _ref$maxChoicesPerCat;
|
|
152
|
-
|
|
153
|
-
var choice = (choices || []).find(function (choice) {
|
|
154
|
-
return choice.id === choiceId;
|
|
155
|
-
});
|
|
156
|
-
correctResponse = (0, _categorize.moveChoiceToAlternate)(choiceId, from, to, choiceIndex, correctResponse, alternateIndex, choice === null || choice === void 0 ? void 0 : choice.categoryCount);
|
|
157
|
-
var maxCategoryChoices = (0, _utils.getMaxCategoryChoices)(_this.props.model); // when maxChoicesPerCategory is set to 0, there is no limit so it should not be updated
|
|
158
|
-
|
|
159
|
-
onModelChanged({
|
|
160
|
-
correctResponse: correctResponse,
|
|
161
|
-
maxChoicesPerCategory: maxChoicesPerCategory !== 0 && maxChoicesPerCategory < maxCategoryChoices ? maxChoicesPerCategory + 1 : maxChoicesPerCategory
|
|
162
|
-
});
|
|
163
|
-
});
|
|
164
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "deleteChoiceFromCategory", function (category, choice, choiceIndex) {
|
|
165
|
-
var _this$props3 = _this.props,
|
|
166
|
-
model = _this$props3.model,
|
|
167
|
-
altIndex = _this$props3.altIndex,
|
|
168
|
-
onModelChanged = _this$props3.onModelChanged;
|
|
169
|
-
var correctResponse = (0, _categorize.removeChoiceFromAlternate)(choice.id, category.id, choiceIndex, altIndex, model.correctResponse);
|
|
14
|
+
const CategoriesContainer = (0, _styles.styled)('div')(({
|
|
15
|
+
theme
|
|
16
|
+
}) => ({
|
|
17
|
+
marginBottom: theme.spacing(2.5)
|
|
18
|
+
}));
|
|
19
|
+
const CategoriesHolder = (0, _styles.styled)('div')(({
|
|
20
|
+
theme
|
|
21
|
+
}) => ({
|
|
22
|
+
display: 'grid',
|
|
23
|
+
gridRowGap: `${theme.spacing(1)}px`,
|
|
24
|
+
gridColumnGap: `${theme.spacing(1)}px`
|
|
25
|
+
}));
|
|
26
|
+
const RowLabel = (0, _styles.styled)('div')({
|
|
27
|
+
gridColumn: '1 / 3'
|
|
28
|
+
});
|
|
29
|
+
class AlternateResponses extends _react.default.Component {
|
|
30
|
+
constructor(...args) {
|
|
31
|
+
super(...args);
|
|
32
|
+
(0, _defineProperty2.default)(this, "deleteChoiceFromCategory", (category, choice, choiceIndex) => {
|
|
33
|
+
const {
|
|
34
|
+
model,
|
|
35
|
+
altIndex,
|
|
36
|
+
onModelChanged
|
|
37
|
+
} = this.props;
|
|
38
|
+
const correctResponse = (0, _categorize.removeChoiceFromAlternate)(choice.id, category.id, choiceIndex, altIndex, model.correctResponse);
|
|
170
39
|
onModelChanged({
|
|
171
|
-
correctResponse
|
|
40
|
+
correctResponse
|
|
172
41
|
});
|
|
173
42
|
});
|
|
174
|
-
return _this;
|
|
175
43
|
}
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
spellCheck: spellCheck,
|
|
231
|
-
onAddChoice: _this2.addChoiceToCategory,
|
|
232
|
-
onDeleteChoice: function onDeleteChoice(choice, choiceIndex) {
|
|
233
|
-
return _this2.deleteChoiceFromCategory(category, choice, choiceIndex);
|
|
234
|
-
},
|
|
235
|
-
onMoveChoice: function onMoveChoice(choiceId, from, to, choiceIndex, alternateIndex) {
|
|
236
|
-
return _this2.moveChoice(choiceId, from, to, choiceIndex, alternateIndex);
|
|
237
|
-
},
|
|
238
|
-
uploadSoundSupport: uploadSoundSupport,
|
|
239
|
-
mathMlOptions: mathMlOptions,
|
|
240
|
-
configuration: configuration
|
|
241
|
-
}));
|
|
242
|
-
})));
|
|
243
|
-
}
|
|
244
|
-
}]);
|
|
245
|
-
return AlternateResponses;
|
|
246
|
-
}(_react["default"].Component);
|
|
247
|
-
|
|
44
|
+
render() {
|
|
45
|
+
const {
|
|
46
|
+
altIndex,
|
|
47
|
+
model,
|
|
48
|
+
configuration,
|
|
49
|
+
categories,
|
|
50
|
+
imageSupport,
|
|
51
|
+
spellCheck,
|
|
52
|
+
uploadSoundSupport,
|
|
53
|
+
mathMlOptions = {}
|
|
54
|
+
} = this.props;
|
|
55
|
+
const {
|
|
56
|
+
categoriesPerRow,
|
|
57
|
+
errors,
|
|
58
|
+
rowLabels
|
|
59
|
+
} = model;
|
|
60
|
+
const {
|
|
61
|
+
duplicateAlternate
|
|
62
|
+
} = errors || {};
|
|
63
|
+
const holderStyle = {
|
|
64
|
+
gridTemplateColumns: `repeat(${categoriesPerRow}, 1fr)`
|
|
65
|
+
};
|
|
66
|
+
const isDuplicated = duplicateAlternate ? duplicateAlternate.index === altIndex : false;
|
|
67
|
+
return /*#__PURE__*/_react.default.createElement(CategoriesContainer, null, /*#__PURE__*/_react.default.createElement(CategoriesHolder, {
|
|
68
|
+
style: holderStyle
|
|
69
|
+
}, categories.map((category, index) => {
|
|
70
|
+
const hasRowLabel = index % categoriesPerRow === 0;
|
|
71
|
+
const rowIndex = index / categoriesPerRow;
|
|
72
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, {
|
|
73
|
+
key: index
|
|
74
|
+
}, hasRowLabel && /*#__PURE__*/_react.default.createElement(RowLabel, {
|
|
75
|
+
style: {
|
|
76
|
+
gridColumn: `1/${categoriesPerRow + 1}`,
|
|
77
|
+
width: '100%'
|
|
78
|
+
},
|
|
79
|
+
dangerouslySetInnerHTML: {
|
|
80
|
+
__html: rowLabels[rowIndex] || ''
|
|
81
|
+
}
|
|
82
|
+
}), /*#__PURE__*/_react.default.createElement(_category.default, {
|
|
83
|
+
key: index,
|
|
84
|
+
alternateResponseIndex: altIndex,
|
|
85
|
+
imageSupport: imageSupport,
|
|
86
|
+
isDuplicated: isDuplicated && duplicateAlternate.category === category.id,
|
|
87
|
+
category: category,
|
|
88
|
+
spellCheck: spellCheck,
|
|
89
|
+
onDeleteChoice: (choice, choiceIndex) => this.deleteChoiceFromCategory(category, choice, choiceIndex),
|
|
90
|
+
uploadSoundSupport: uploadSoundSupport,
|
|
91
|
+
mathMlOptions: mathMlOptions,
|
|
92
|
+
configuration: configuration,
|
|
93
|
+
isAlternate: true
|
|
94
|
+
}));
|
|
95
|
+
})));
|
|
96
|
+
}
|
|
97
|
+
}
|
|
248
98
|
exports.AlternateResponses = AlternateResponses;
|
|
249
|
-
(0, _defineProperty2
|
|
250
|
-
altIndex: _propTypes
|
|
251
|
-
configuration: _propTypes
|
|
252
|
-
imageSupport: _propTypes
|
|
253
|
-
add: _propTypes
|
|
254
|
-
|
|
99
|
+
(0, _defineProperty2.default)(AlternateResponses, "propTypes", {
|
|
100
|
+
altIndex: _propTypes.default.number.isRequired,
|
|
101
|
+
configuration: _propTypes.default.object,
|
|
102
|
+
imageSupport: _propTypes.default.shape({
|
|
103
|
+
add: _propTypes.default.func.isRequired,
|
|
104
|
+
delete: _propTypes.default.func.isRequired
|
|
255
105
|
}),
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
add: _propTypes["default"].func.isRequired,
|
|
263
|
-
"delete": _propTypes["default"].func.isRequired
|
|
106
|
+
categories: _propTypes.default.array,
|
|
107
|
+
onModelChanged: _propTypes.default.func,
|
|
108
|
+
model: _propTypes.default.object.isRequired,
|
|
109
|
+
uploadSoundSupport: _propTypes.default.shape({
|
|
110
|
+
add: _propTypes.default.func.isRequired,
|
|
111
|
+
delete: _propTypes.default.func.isRequired
|
|
264
112
|
}),
|
|
265
|
-
spellCheck: _propTypes
|
|
113
|
+
spellCheck: _propTypes.default.bool
|
|
266
114
|
});
|
|
267
|
-
|
|
268
|
-
var _default = (0, _styles.withStyles)(styles)(AlternateResponses);
|
|
269
|
-
|
|
270
|
-
exports["default"] = _default;
|
|
271
|
-
//# sourceMappingURL=alternateResponses.js.map
|
|
115
|
+
var _default = exports.default = AlternateResponses;
|
|
116
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9wcm9wVHlwZXMiLCJfc3R5bGVzIiwiX2NhdGVnb3JpemUiLCJfY2F0ZWdvcnkiLCJDYXRlZ29yaWVzQ29udGFpbmVyIiwic3R5bGVkIiwidGhlbWUiLCJtYXJnaW5Cb3R0b20iLCJzcGFjaW5nIiwiQ2F0ZWdvcmllc0hvbGRlciIsImRpc3BsYXkiLCJncmlkUm93R2FwIiwiZ3JpZENvbHVtbkdhcCIsIlJvd0xhYmVsIiwiZ3JpZENvbHVtbiIsIkFsdGVybmF0ZVJlc3BvbnNlcyIsIlJlYWN0IiwiQ29tcG9uZW50IiwiY29uc3RydWN0b3IiLCJhcmdzIiwiX2RlZmluZVByb3BlcnR5MiIsImRlZmF1bHQiLCJjYXRlZ29yeSIsImNob2ljZSIsImNob2ljZUluZGV4IiwibW9kZWwiLCJhbHRJbmRleCIsIm9uTW9kZWxDaGFuZ2VkIiwicHJvcHMiLCJjb3JyZWN0UmVzcG9uc2UiLCJyZW1vdmVDaG9pY2VGcm9tQWx0ZXJuYXRlIiwiaWQiLCJyZW5kZXIiLCJjb25maWd1cmF0aW9uIiwiY2F0ZWdvcmllcyIsImltYWdlU3VwcG9ydCIsInNwZWxsQ2hlY2siLCJ1cGxvYWRTb3VuZFN1cHBvcnQiLCJtYXRoTWxPcHRpb25zIiwiY2F0ZWdvcmllc1BlclJvdyIsImVycm9ycyIsInJvd0xhYmVscyIsImR1cGxpY2F0ZUFsdGVybmF0ZSIsImhvbGRlclN0eWxlIiwiZ3JpZFRlbXBsYXRlQ29sdW1ucyIsImlzRHVwbGljYXRlZCIsImluZGV4IiwiY3JlYXRlRWxlbWVudCIsInN0eWxlIiwibWFwIiwiaGFzUm93TGFiZWwiLCJyb3dJbmRleCIsIkZyYWdtZW50Iiwia2V5Iiwid2lkdGgiLCJkYW5nZXJvdXNseVNldElubmVySFRNTCIsIl9faHRtbCIsImFsdGVybmF0ZVJlc3BvbnNlSW5kZXgiLCJvbkRlbGV0ZUNob2ljZSIsImRlbGV0ZUNob2ljZUZyb21DYXRlZ29yeSIsImlzQWx0ZXJuYXRlIiwiZXhwb3J0cyIsIlByb3BUeXBlcyIsIm51bWJlciIsImlzUmVxdWlyZWQiLCJvYmplY3QiLCJzaGFwZSIsImFkZCIsImZ1bmMiLCJkZWxldGUiLCJhcnJheSIsImJvb2wiLCJfZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kZXNpZ24vY2F0ZWdvcmllcy9hbHRlcm5hdGVSZXNwb25zZXMuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHsgc3R5bGVkIH0gZnJvbSAnQG11aS9tYXRlcmlhbC9zdHlsZXMnO1xuaW1wb3J0IHsgcmVtb3ZlQ2hvaWNlRnJvbUFsdGVybmF0ZSB9IGZyb20gJ0BwaWUtbGliL2NhdGVnb3JpemUnO1xuXG5pbXBvcnQgQ2F0ZWdvcnkgZnJvbSAnLi9jYXRlZ29yeSc7XG5cbmNvbnN0IENhdGVnb3JpZXNDb250YWluZXIgPSBzdHlsZWQoJ2RpdicpKCh7IHRoZW1lIH0pID0+ICh7XG4gIG1hcmdpbkJvdHRvbTogdGhlbWUuc3BhY2luZygyLjUpLFxufSkpO1xuXG5jb25zdCBDYXRlZ29yaWVzSG9sZGVyID0gc3R5bGVkKCdkaXYnKSgoeyB0aGVtZSB9KSA9PiAoe1xuICBkaXNwbGF5OiAnZ3JpZCcsXG4gIGdyaWRSb3dHYXA6IGAke3RoZW1lLnNwYWNpbmcoMSl9cHhgLFxuICBncmlkQ29sdW1uR2FwOiBgJHt0aGVtZS5zcGFjaW5nKDEpfXB4YCxcbn0pKTtcblxuY29uc3QgUm93TGFiZWwgPSBzdHlsZWQoJ2RpdicpKHtcbiAgZ3JpZENvbHVtbjogJzEgLyAzJyxcbn0pO1xuXG5leHBvcnQgY2xhc3MgQWx0ZXJuYXRlUmVzcG9uc2VzIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBhbHRJbmRleDogUHJvcFR5cGVzLm51bWJlci5pc1JlcXVpcmVkLFxuICAgIGNvbmZpZ3VyYXRpb246IFByb3BUeXBlcy5vYmplY3QsXG4gICAgaW1hZ2VTdXBwb3J0OiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgICAgYWRkOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgZGVsZXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIH0pLFxuICAgIGNhdGVnb3JpZXM6IFByb3BUeXBlcy5hcnJheSxcbiAgICBvbk1vZGVsQ2hhbmdlZDogUHJvcFR5cGVzLmZ1bmMsXG4gICAgbW9kZWw6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICB1cGxvYWRTb3VuZFN1cHBvcnQ6IFByb3BUeXBlcy5zaGFwZSh7XG4gICAgICBhZGQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgICBkZWxldGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgfSksXG4gICAgc3BlbGxDaGVjazogUHJvcFR5cGVzLmJvb2wsXG4gIH07XG5cblxuICBkZWxldGVDaG9pY2VGcm9tQ2F0ZWdvcnkgPSAoY2F0ZWdvcnksIGNob2ljZSwgY2hvaWNlSW5kZXgpID0+IHtcbiAgICBjb25zdCB7IG1vZGVsLCBhbHRJbmRleCwgb25Nb2RlbENoYW5nZWQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBjb3JyZWN0UmVzcG9uc2UgPSByZW1vdmVDaG9pY2VGcm9tQWx0ZXJuYXRlKFxuICAgICAgY2hvaWNlLmlkLFxuICAgICAgY2F0ZWdvcnkuaWQsXG4gICAgICBjaG9pY2VJbmRleCxcbiAgICAgIGFsdEluZGV4LFxuICAgICAgbW9kZWwuY29ycmVjdFJlc3BvbnNlLFxuICAgICk7XG5cbiAgICBvbk1vZGVsQ2hhbmdlZCh7IGNvcnJlY3RSZXNwb25zZSB9KTtcbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgYWx0SW5kZXgsXG4gICAgICBtb2RlbCxcbiAgICAgIGNvbmZpZ3VyYXRpb24sXG4gICAgICBjYXRlZ29yaWVzLFxuICAgICAgaW1hZ2VTdXBwb3J0LFxuICAgICAgc3BlbGxDaGVjayxcbiAgICAgIHVwbG9hZFNvdW5kU3VwcG9ydCxcbiAgICAgIG1hdGhNbE9wdGlvbnMgPSB7fSxcbiAgICB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IGNhdGVnb3JpZXNQZXJSb3csIGVycm9ycywgcm93TGFiZWxzIH0gPSBtb2RlbDtcbiAgICBjb25zdCB7IGR1cGxpY2F0ZUFsdGVybmF0ZSB9ID0gZXJyb3JzIHx8IHt9O1xuXG4gICAgY29uc3QgaG9sZGVyU3R5bGUgPSB7XG4gICAgICBncmlkVGVtcGxhdGVDb2x1bW5zOiBgcmVwZWF0KCR7Y2F0ZWdvcmllc1BlclJvd30sIDFmcilgLFxuICAgIH07XG4gICAgY29uc3QgaXNEdXBsaWNhdGVkID0gZHVwbGljYXRlQWx0ZXJuYXRlID8gZHVwbGljYXRlQWx0ZXJuYXRlLmluZGV4ID09PSBhbHRJbmRleCA6IGZhbHNlO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxDYXRlZ29yaWVzQ29udGFpbmVyPlxuICAgICAgICA8Q2F0ZWdvcmllc0hvbGRlciBzdHlsZT17aG9sZGVyU3R5bGV9PlxuICAgICAgICAgIHtjYXRlZ29yaWVzLm1hcCgoY2F0ZWdvcnksIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBoYXNSb3dMYWJlbCA9IGluZGV4ICUgY2F0ZWdvcmllc1BlclJvdyA9PT0gMDtcbiAgICAgICAgICAgIGNvbnN0IHJvd0luZGV4ID0gaW5kZXggLyBjYXRlZ29yaWVzUGVyUm93O1xuXG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICA8UmVhY3QuRnJhZ21lbnQga2V5PXtpbmRleH0+XG4gICAgICAgICAgICAgICAge2hhc1Jvd0xhYmVsICYmIChcbiAgICAgICAgICAgICAgICAgIDxSb3dMYWJlbFxuICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgIGdyaWRDb2x1bW46IGAxLyR7Y2F0ZWdvcmllc1BlclJvdyArIDF9YCxcbiAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICBkYW5nZXJvdXNseVNldElubmVySFRNTD17e1xuICAgICAgICAgICAgICAgICAgICAgIF9faHRtbDogcm93TGFiZWxzW3Jvd0luZGV4XSB8fCAnJyxcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAgICAgIDxDYXRlZ29yeVxuICAgICAgICAgICAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgICAgICAgICAgIGFsdGVybmF0ZVJlc3BvbnNlSW5kZXg9e2FsdEluZGV4fVxuICAgICAgICAgICAgICAgICAgaW1hZ2VTdXBwb3J0PXtpbWFnZVN1cHBvcnR9XG4gICAgICAgICAgICAgICAgICBpc0R1cGxpY2F0ZWQ9e2lzRHVwbGljYXRlZCAmJiBkdXBsaWNhdGVBbHRlcm5hdGUuY2F0ZWdvcnkgPT09IGNhdGVnb3J5LmlkfVxuICAgICAgICAgICAgICAgICAgY2F0ZWdvcnk9e2NhdGVnb3J5fVxuICAgICAgICAgICAgICAgICAgc3BlbGxDaGVjaz17c3BlbGxDaGVja31cbiAgICAgICAgICAgICAgICAgIG9uRGVsZXRlQ2hvaWNlPXsoY2hvaWNlLCBjaG9pY2VJbmRleCkgPT4gdGhpcy5kZWxldGVDaG9pY2VGcm9tQ2F0ZWdvcnkoY2F0ZWdvcnksIGNob2ljZSwgY2hvaWNlSW5kZXgpfVxuICAgICAgICAgICAgICAgICAgdXBsb2FkU291bmRTdXBwb3J0PXt1cGxvYWRTb3VuZFN1cHBvcnR9XG4gICAgICAgICAgICAgICAgICBtYXRoTWxPcHRpb25zPXttYXRoTWxPcHRpb25zfVxuICAgICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbj17Y29uZmlndXJhdGlvbn1cbiAgICAgICAgICAgICAgICAgIGlzQWx0ZXJuYXRlPXt0cnVlfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvUmVhY3QuRnJhZ21lbnQ+XG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0pfVxuICAgICAgICA8L0NhdGVnb3JpZXNIb2xkZXI+XG4gICAgICA8L0NhdGVnb3JpZXNDb250YWluZXI+XG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBBbHRlcm5hdGVSZXNwb25zZXM7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsVUFBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsT0FBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsV0FBQSxHQUFBSCxPQUFBO0FBRUEsSUFBQUksU0FBQSxHQUFBTCxzQkFBQSxDQUFBQyxPQUFBO0FBRUEsTUFBTUssbUJBQW1CLEdBQUcsSUFBQUMsY0FBTSxFQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7RUFBRUM7QUFBTSxDQUFDLE1BQU07RUFDeERDLFlBQVksRUFBRUQsS0FBSyxDQUFDRSxPQUFPLENBQUMsR0FBRztBQUNqQyxDQUFDLENBQUMsQ0FBQztBQUVILE1BQU1DLGdCQUFnQixHQUFHLElBQUFKLGNBQU0sRUFBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0VBQUVDO0FBQU0sQ0FBQyxNQUFNO0VBQ3JESSxPQUFPLEVBQUUsTUFBTTtFQUNmQyxVQUFVLEVBQUUsR0FBR0wsS0FBSyxDQUFDRSxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUk7RUFDbkNJLGFBQWEsRUFBRSxHQUFHTixLQUFLLENBQUNFLE9BQU8sQ0FBQyxDQUFDLENBQUM7QUFDcEMsQ0FBQyxDQUFDLENBQUM7QUFFSCxNQUFNSyxRQUFRLEdBQUcsSUFBQVIsY0FBTSxFQUFDLEtBQUssQ0FBQyxDQUFDO0VBQzdCUyxVQUFVLEVBQUU7QUFDZCxDQUFDLENBQUM7QUFFSyxNQUFNQyxrQkFBa0IsU0FBU0MsY0FBSyxDQUFDQyxTQUFTLENBQUM7RUFBQUMsWUFBQSxHQUFBQyxJQUFBO0lBQUEsU0FBQUEsSUFBQTtJQUFBLElBQUFDLGdCQUFBLENBQUFDLE9BQUEsb0NBbUIzQixDQUFDQyxRQUFRLEVBQUVDLE1BQU0sRUFBRUMsV0FBVyxLQUFLO01BQzVELE1BQU07UUFBRUMsS0FBSztRQUFFQyxRQUFRO1FBQUVDO01BQWUsQ0FBQyxHQUFHLElBQUksQ0FBQ0MsS0FBSztNQUV0RCxNQUFNQyxlQUFlLEdBQUcsSUFBQUMscUNBQXlCLEVBQy9DUCxNQUFNLENBQUNRLEVBQUUsRUFDVFQsUUFBUSxDQUFDUyxFQUFFLEVBQ1hQLFdBQVcsRUFDWEUsUUFBUSxFQUNSRCxLQUFLLENBQUNJLGVBQ1IsQ0FBQztNQUVERixjQUFjLENBQUM7UUFBRUU7TUFBZ0IsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7RUFBQTtFQUVERyxNQUFNQSxDQUFBLEVBQUc7SUFDUCxNQUFNO01BQ0pOLFFBQVE7TUFDUkQsS0FBSztNQUNMUSxhQUFhO01BQ2JDLFVBQVU7TUFDVkMsWUFBWTtNQUNaQyxVQUFVO01BQ1ZDLGtCQUFrQjtNQUNsQkMsYUFBYSxHQUFHLENBQUM7SUFDbkIsQ0FBQyxHQUFHLElBQUksQ0FBQ1YsS0FBSztJQUNkLE1BQU07TUFBRVcsZ0JBQWdCO01BQUVDLE1BQU07TUFBRUM7SUFBVSxDQUFDLEdBQUdoQixLQUFLO0lBQ3JELE1BQU07TUFBRWlCO0lBQW1CLENBQUMsR0FBR0YsTUFBTSxJQUFJLENBQUMsQ0FBQztJQUUzQyxNQUFNRyxXQUFXLEdBQUc7TUFDbEJDLG1CQUFtQixFQUFFLFVBQVVMLGdCQUFnQjtJQUNqRCxDQUFDO0lBQ0QsTUFBTU0sWUFBWSxHQUFHSCxrQkFBa0IsR0FBR0Esa0JBQWtCLENBQUNJLEtBQUssS0FBS3BCLFFBQVEsR0FBRyxLQUFLO0lBRXZGLG9CQUNFN0IsTUFBQSxDQUFBd0IsT0FBQSxDQUFBMEIsYUFBQSxDQUFDM0MsbUJBQW1CLHFCQUNsQlAsTUFBQSxDQUFBd0IsT0FBQSxDQUFBMEIsYUFBQSxDQUFDdEMsZ0JBQWdCO01BQUN1QyxLQUFLLEVBQUVMO0lBQVksR0FDbENULFVBQVUsQ0FBQ2UsR0FBRyxDQUFDLENBQUMzQixRQUFRLEVBQUV3QixLQUFLLEtBQUs7TUFDbkMsTUFBTUksV0FBVyxHQUFHSixLQUFLLEdBQUdQLGdCQUFnQixLQUFLLENBQUM7TUFDbEQsTUFBTVksUUFBUSxHQUFHTCxLQUFLLEdBQUdQLGdCQUFnQjtNQUV6QyxvQkFDRTFDLE1BQUEsQ0FBQXdCLE9BQUEsQ0FBQTBCLGFBQUEsQ0FBQ2xELE1BQUEsQ0FBQXdCLE9BQUssQ0FBQytCLFFBQVE7UUFBQ0MsR0FBRyxFQUFFUDtNQUFNLEdBQ3hCSSxXQUFXLGlCQUNWckQsTUFBQSxDQUFBd0IsT0FBQSxDQUFBMEIsYUFBQSxDQUFDbEMsUUFBUTtRQUNQbUMsS0FBSyxFQUFFO1VBQ0xsQyxVQUFVLEVBQUUsS0FBS3lCLGdCQUFnQixHQUFHLENBQUMsRUFBRTtVQUN2Q2UsS0FBSyxFQUFFO1FBQ1QsQ0FBRTtRQUNGQyx1QkFBdUIsRUFBRTtVQUN2QkMsTUFBTSxFQUFFZixTQUFTLENBQUNVLFFBQVEsQ0FBQyxJQUFJO1FBQ2pDO01BQUUsQ0FDSCxDQUNGLGVBRUR0RCxNQUFBLENBQUF3QixPQUFBLENBQUEwQixhQUFBLENBQUM1QyxTQUFBLENBQUFrQixPQUFRO1FBQ1BnQyxHQUFHLEVBQUVQLEtBQU07UUFDWFcsc0JBQXNCLEVBQUUvQixRQUFTO1FBQ2pDUyxZQUFZLEVBQUVBLFlBQWE7UUFDM0JVLFlBQVksRUFBRUEsWUFBWSxJQUFJSCxrQkFBa0IsQ0FBQ3BCLFFBQVEsS0FBS0EsUUFBUSxDQUFDUyxFQUFHO1FBQzFFVCxRQUFRLEVBQUVBLFFBQVM7UUFDbkJjLFVBQVUsRUFBRUEsVUFBVztRQUN2QnNCLGNBQWMsRUFBRUEsQ0FBQ25DLE1BQU0sRUFBRUMsV0FBVyxLQUFLLElBQUksQ0FBQ21DLHdCQUF3QixDQUFDckMsUUFBUSxFQUFFQyxNQUFNLEVBQUVDLFdBQVcsQ0FBRTtRQUN0R2Esa0JBQWtCLEVBQUVBLGtCQUFtQjtRQUN2Q0MsYUFBYSxFQUFFQSxhQUFjO1FBQzdCTCxhQUFhLEVBQUVBLGFBQWM7UUFDN0IyQixXQUFXLEVBQUU7TUFBSyxDQUNuQixDQUNhLENBQUM7SUFFckIsQ0FBQyxDQUNlLENBQ0MsQ0FBQztFQUUxQjtBQUNGO0FBQUNDLE9BQUEsQ0FBQTlDLGtCQUFBLEdBQUFBLGtCQUFBO0FBQUEsSUFBQUssZ0JBQUEsQ0FBQUMsT0FBQSxFQTdGWU4sa0JBQWtCLGVBQ1Y7RUFDakJXLFFBQVEsRUFBRW9DLGtCQUFTLENBQUNDLE1BQU0sQ0FBQ0MsVUFBVTtFQUNyQy9CLGFBQWEsRUFBRTZCLGtCQUFTLENBQUNHLE1BQU07RUFDL0I5QixZQUFZLEVBQUUyQixrQkFBUyxDQUFDSSxLQUFLLENBQUM7SUFDNUJDLEdBQUcsRUFBRUwsa0JBQVMsQ0FBQ00sSUFBSSxDQUFDSixVQUFVO0lBQzlCSyxNQUFNLEVBQUVQLGtCQUFTLENBQUNNLElBQUksQ0FBQ0o7RUFDekIsQ0FBQyxDQUFDO0VBQ0Y5QixVQUFVLEVBQUU0QixrQkFBUyxDQUFDUSxLQUFLO0VBQzNCM0MsY0FBYyxFQUFFbUMsa0JBQVMsQ0FBQ00sSUFBSTtFQUM5QjNDLEtBQUssRUFBRXFDLGtCQUFTLENBQUNHLE1BQU0sQ0FBQ0QsVUFBVTtFQUNsQzNCLGtCQUFrQixFQUFFeUIsa0JBQVMsQ0FBQ0ksS0FBSyxDQUFDO0lBQ2xDQyxHQUFHLEVBQUVMLGtCQUFTLENBQUNNLElBQUksQ0FBQ0osVUFBVTtJQUM5QkssTUFBTSxFQUFFUCxrQkFBUyxDQUFDTSxJQUFJLENBQUNKO0VBQ3pCLENBQUMsQ0FBQztFQUNGNUIsVUFBVSxFQUFFMEIsa0JBQVMsQ0FBQ1M7QUFDeEIsQ0FBQztBQUFBLElBQUFDLFFBQUEsR0FBQVgsT0FBQSxDQUFBeEMsT0FBQSxHQStFWU4sa0JBQWtCIiwiaWdub3JlTGlzdCI6W119
|