@pie-element/drag-in-the-blank 10.2.0 → 10.2.2-beta.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 +27 -42
- package/configure/CHANGELOG.md +27 -41
- package/configure/lib/__tests__/choice.test.js +114 -0
- package/configure/lib/__tests__/choices.test.js +157 -0
- package/configure/lib/__tests__/main.test.js +167 -0
- package/configure/lib/__tests__/markupUtils.test.js +105 -0
- package/configure/lib/choice.js +3 -4
- package/configure/lib/choice.js.map +1 -1
- package/configure/package.json +4 -4
- package/controller/CHANGELOG.md +38 -6
- package/controller/lib/__tests__/index.test.js +775 -0
- package/controller/package.json +1 -1
- package/docs/demo/pie.manifest.json +11 -0
- package/lib/__tests__/index.test.js +118 -0
- package/lib/__tests__/main.test.js +139 -0
- package/lib/index.js +2 -2
- package/lib/index.js.map +1 -1
- package/package.json +6 -6
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
5
|
+
var _react = _interopRequireDefault(require("react"));
|
|
6
|
+
var _react2 = require("@testing-library/react");
|
|
7
|
+
var _styles = require("@mui/material/styles");
|
|
8
|
+
var _main = require("../main");
|
|
9
|
+
var _defaults = _interopRequireDefault(require("../defaults"));
|
|
10
|
+
var _markupUtils = require("../markupUtils");
|
|
11
|
+
jest.mock('@pie-lib/config-ui', () => ({
|
|
12
|
+
choiceUtils: {
|
|
13
|
+
firstAvailableIndex: jest.fn()
|
|
14
|
+
},
|
|
15
|
+
settings: {
|
|
16
|
+
Panel: props => /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({
|
|
17
|
+
"data-testid": "settings-panel"
|
|
18
|
+
}, props)),
|
|
19
|
+
toggle: jest.fn(),
|
|
20
|
+
radio: jest.fn(),
|
|
21
|
+
dropdown: jest.fn()
|
|
22
|
+
},
|
|
23
|
+
layout: {
|
|
24
|
+
ConfigLayout: props => /*#__PURE__*/_react.default.createElement("div", {
|
|
25
|
+
"data-testid": "config-layout"
|
|
26
|
+
}, props.children)
|
|
27
|
+
},
|
|
28
|
+
InputContainer: props => /*#__PURE__*/_react.default.createElement("div", {
|
|
29
|
+
"data-testid": "input-container"
|
|
30
|
+
}, props.children)
|
|
31
|
+
}));
|
|
32
|
+
jest.mock('@pie-lib/render-ui', () => ({
|
|
33
|
+
InputContainer: props => /*#__PURE__*/_react.default.createElement("div", {
|
|
34
|
+
"data-testid": "input-container"
|
|
35
|
+
}, props.children)
|
|
36
|
+
}));
|
|
37
|
+
jest.mock('@pie-lib/editable-html-tip-tap', () => ({
|
|
38
|
+
__esModule: true,
|
|
39
|
+
default: ({
|
|
40
|
+
markup,
|
|
41
|
+
onChange
|
|
42
|
+
}) => /*#__PURE__*/_react.default.createElement("div", {
|
|
43
|
+
"data-testid": "editable-html",
|
|
44
|
+
onClick: () => onChange && onChange('new value')
|
|
45
|
+
}, markup),
|
|
46
|
+
ALL_PLUGINS: []
|
|
47
|
+
}));
|
|
48
|
+
jest.mock('@pie-lib/drag', () => ({
|
|
49
|
+
DragProvider: ({
|
|
50
|
+
children
|
|
51
|
+
}) => /*#__PURE__*/_react.default.createElement("div", {
|
|
52
|
+
"data-testid": "drag-provider"
|
|
53
|
+
}, children)
|
|
54
|
+
}));
|
|
55
|
+
jest.mock('@pie-lib/math-rendering', () => ({
|
|
56
|
+
renderMath: jest.fn()
|
|
57
|
+
}));
|
|
58
|
+
jest.mock('@dnd-kit/core', () => ({
|
|
59
|
+
DragOverlay: ({
|
|
60
|
+
children
|
|
61
|
+
}) => /*#__PURE__*/_react.default.createElement("div", {
|
|
62
|
+
"data-testid": "drag-overlay"
|
|
63
|
+
}, children)
|
|
64
|
+
}));
|
|
65
|
+
jest.mock('@dnd-kit/modifiers', () => ({
|
|
66
|
+
restrictToFirstScrollableAncestor: jest.fn()
|
|
67
|
+
}));
|
|
68
|
+
jest.mock('../choice', () => ({
|
|
69
|
+
__esModule: true,
|
|
70
|
+
default: props => /*#__PURE__*/_react.default.createElement("div", {
|
|
71
|
+
"data-testid": "choice"
|
|
72
|
+
}, props.choice?.value)
|
|
73
|
+
}));
|
|
74
|
+
jest.mock('../choices', () => ({
|
|
75
|
+
__esModule: true,
|
|
76
|
+
default: props => /*#__PURE__*/_react.default.createElement("div", {
|
|
77
|
+
"data-testid": "choices"
|
|
78
|
+
}, props.children)
|
|
79
|
+
}));
|
|
80
|
+
const theme = (0, _styles.createTheme)();
|
|
81
|
+
const model = {
|
|
82
|
+
markup: '{{0}} + {{1}} = 15',
|
|
83
|
+
prompt: '<p>Solve the equation below.</p>',
|
|
84
|
+
choices: [{
|
|
85
|
+
value: '<div>6</div>',
|
|
86
|
+
id: '0'
|
|
87
|
+
}, {
|
|
88
|
+
value: '<div>9</div>',
|
|
89
|
+
id: '1'
|
|
90
|
+
}],
|
|
91
|
+
choicesPosition: 'below',
|
|
92
|
+
correctResponse: {
|
|
93
|
+
0: '0',
|
|
94
|
+
1: '1'
|
|
95
|
+
},
|
|
96
|
+
duplicates: true,
|
|
97
|
+
alternateResponses: [['1'], ['0']],
|
|
98
|
+
rationale: '<p>A correct response is shown below:</p><ul><li>2/6 = 1/3</li><li>4/8 = 1/2</li><li>6/10 = 3/5</li><li>9/12 = 3/4</li></ul>'
|
|
99
|
+
};
|
|
100
|
+
const prepareModel = (model = {}) => {
|
|
101
|
+
const joinedObj = {
|
|
102
|
+
..._defaults.default.model,
|
|
103
|
+
...model
|
|
104
|
+
};
|
|
105
|
+
// Handle null choices by converting to empty array for processing
|
|
106
|
+
const choicesForProcessing = joinedObj.choices || [];
|
|
107
|
+
const slateMarkup = model.slateMarkup || (0, _markupUtils.createSlateMarkup)(joinedObj.markup, choicesForProcessing, joinedObj.correctResponse);
|
|
108
|
+
const processedMarkup = (0, _markupUtils.processMarkup)(slateMarkup);
|
|
109
|
+
return {
|
|
110
|
+
...joinedObj,
|
|
111
|
+
slateMarkup,
|
|
112
|
+
markup: processedMarkup.markup,
|
|
113
|
+
correctResponse: processedMarkup.correctResponse
|
|
114
|
+
};
|
|
115
|
+
};
|
|
116
|
+
describe('Main', () => {
|
|
117
|
+
let onModelChanged;
|
|
118
|
+
let onConfigurationChanged;
|
|
119
|
+
beforeEach(() => {
|
|
120
|
+
onModelChanged = jest.fn();
|
|
121
|
+
onConfigurationChanged = jest.fn();
|
|
122
|
+
});
|
|
123
|
+
const renderMain = (extras = {}) => {
|
|
124
|
+
const defaults = {
|
|
125
|
+
onModelChanged,
|
|
126
|
+
onConfigurationChanged,
|
|
127
|
+
classes: {},
|
|
128
|
+
model: prepareModel({
|
|
129
|
+
...model,
|
|
130
|
+
...extras
|
|
131
|
+
}),
|
|
132
|
+
configuration: _defaults.default.configuration
|
|
133
|
+
};
|
|
134
|
+
return (0, _react2.render)(/*#__PURE__*/_react.default.createElement(_styles.ThemeProvider, {
|
|
135
|
+
theme: theme
|
|
136
|
+
}, /*#__PURE__*/_react.default.createElement(_main.Main, defaults)));
|
|
137
|
+
};
|
|
138
|
+
describe('render', () => {
|
|
139
|
+
it('renders with teacher instructions, prompt and rationale even if not set', () => {
|
|
140
|
+
const {
|
|
141
|
+
container
|
|
142
|
+
} = renderMain();
|
|
143
|
+
expect(container.firstChild).toBeInTheDocument();
|
|
144
|
+
});
|
|
145
|
+
it('renders without teacher instructions, prompt and rationale', () => {
|
|
146
|
+
const {
|
|
147
|
+
container
|
|
148
|
+
} = renderMain({
|
|
149
|
+
promptEnabled: false,
|
|
150
|
+
teacherInstructionsEnabled: false,
|
|
151
|
+
rationaleEnabled: false
|
|
152
|
+
});
|
|
153
|
+
expect(container.firstChild).toBeInTheDocument();
|
|
154
|
+
});
|
|
155
|
+
});
|
|
156
|
+
|
|
157
|
+
// Note: Tests for internal methods (onModelChange, onPromptChanged, onRationaleChanged,
|
|
158
|
+
// onTeacherInstructionsChanged, onMarkupChanged, onResponsesChanged) are implementation
|
|
159
|
+
// details and cannot be directly tested with RTL.
|
|
160
|
+
// These methods should be tested through user interactions in integration tests:
|
|
161
|
+
// - onPromptChanged: Test by typing in the prompt EditableHtml component
|
|
162
|
+
// - onRationaleChanged: Test by typing in the rationale EditableHtml component
|
|
163
|
+
// - onTeacherInstructionsChanged: Test by typing in the teacher instructions EditableHtml component
|
|
164
|
+
// - onMarkupChanged: Test by modifying the markup via the Design component
|
|
165
|
+
// - onResponsesChanged: Test by adding/removing/editing choices via the Choices component
|
|
166
|
+
});
|
|
167
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9yZWFjdDIiLCJfc3R5bGVzIiwiX21haW4iLCJfZGVmYXVsdHMiLCJfbWFya3VwVXRpbHMiLCJqZXN0IiwibW9jayIsImNob2ljZVV0aWxzIiwiZmlyc3RBdmFpbGFibGVJbmRleCIsImZuIiwic2V0dGluZ3MiLCJQYW5lbCIsInByb3BzIiwiZGVmYXVsdCIsImNyZWF0ZUVsZW1lbnQiLCJfZXh0ZW5kczIiLCJ0b2dnbGUiLCJyYWRpbyIsImRyb3Bkb3duIiwibGF5b3V0IiwiQ29uZmlnTGF5b3V0IiwiY2hpbGRyZW4iLCJJbnB1dENvbnRhaW5lciIsIl9fZXNNb2R1bGUiLCJtYXJrdXAiLCJvbkNoYW5nZSIsIm9uQ2xpY2siLCJBTExfUExVR0lOUyIsIkRyYWdQcm92aWRlciIsInJlbmRlck1hdGgiLCJEcmFnT3ZlcmxheSIsInJlc3RyaWN0VG9GaXJzdFNjcm9sbGFibGVBbmNlc3RvciIsImNob2ljZSIsInZhbHVlIiwidGhlbWUiLCJjcmVhdGVUaGVtZSIsIm1vZGVsIiwicHJvbXB0IiwiY2hvaWNlcyIsImlkIiwiY2hvaWNlc1Bvc2l0aW9uIiwiY29ycmVjdFJlc3BvbnNlIiwiZHVwbGljYXRlcyIsImFsdGVybmF0ZVJlc3BvbnNlcyIsInJhdGlvbmFsZSIsInByZXBhcmVNb2RlbCIsImpvaW5lZE9iaiIsInNlbnNpYmxlRGVmYXVsdHMiLCJjaG9pY2VzRm9yUHJvY2Vzc2luZyIsInNsYXRlTWFya3VwIiwiY3JlYXRlU2xhdGVNYXJrdXAiLCJwcm9jZXNzZWRNYXJrdXAiLCJwcm9jZXNzTWFya3VwIiwiZGVzY3JpYmUiLCJvbk1vZGVsQ2hhbmdlZCIsIm9uQ29uZmlndXJhdGlvbkNoYW5nZWQiLCJiZWZvcmVFYWNoIiwicmVuZGVyTWFpbiIsImV4dHJhcyIsImRlZmF1bHRzIiwiY2xhc3NlcyIsImNvbmZpZ3VyYXRpb24iLCJyZW5kZXIiLCJUaGVtZVByb3ZpZGVyIiwiTWFpbiIsIml0IiwiY29udGFpbmVyIiwiZXhwZWN0IiwiZmlyc3RDaGlsZCIsInRvQmVJblRoZURvY3VtZW50IiwicHJvbXB0RW5hYmxlZCIsInRlYWNoZXJJbnN0cnVjdGlvbnNFbmFibGVkIiwicmF0aW9uYWxlRW5hYmxlZCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vbWFpbi50ZXN0LmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSAnQHRlc3RpbmctbGlicmFyeS9yZWFjdCc7XG5pbXBvcnQgeyBUaGVtZVByb3ZpZGVyLCBjcmVhdGVUaGVtZSB9IGZyb20gJ0BtdWkvbWF0ZXJpYWwvc3R5bGVzJztcblxuaW1wb3J0IHsgTWFpbiB9IGZyb20gJy4uL21haW4nO1xuaW1wb3J0IHNlbnNpYmxlRGVmYXVsdHMgZnJvbSAnLi4vZGVmYXVsdHMnO1xuaW1wb3J0IHsgY3JlYXRlU2xhdGVNYXJrdXAsIHByb2Nlc3NNYXJrdXAgfSBmcm9tICcuLi9tYXJrdXBVdGlscyc7XG5cbmplc3QubW9jaygnQHBpZS1saWIvY29uZmlnLXVpJywgKCkgPT4gKHtcbiAgY2hvaWNlVXRpbHM6IHtcbiAgICBmaXJzdEF2YWlsYWJsZUluZGV4OiBqZXN0LmZuKCksXG4gIH0sXG4gIHNldHRpbmdzOiB7XG4gICAgUGFuZWw6IChwcm9wcykgPT4gPGRpdiBkYXRhLXRlc3RpZD1cInNldHRpbmdzLXBhbmVsXCIgey4uLnByb3BzfSAvPixcbiAgICB0b2dnbGU6IGplc3QuZm4oKSxcbiAgICByYWRpbzogamVzdC5mbigpLFxuICAgIGRyb3Bkb3duOiBqZXN0LmZuKCksXG4gIH0sXG4gIGxheW91dDoge1xuICAgIENvbmZpZ0xheW91dDogKHByb3BzKSA9PiA8ZGl2IGRhdGEtdGVzdGlkPVwiY29uZmlnLWxheW91dFwiPntwcm9wcy5jaGlsZHJlbn08L2Rpdj4sXG4gIH0sXG4gIElucHV0Q29udGFpbmVyOiAocHJvcHMpID0+IDxkaXYgZGF0YS10ZXN0aWQ9XCJpbnB1dC1jb250YWluZXJcIj57cHJvcHMuY2hpbGRyZW59PC9kaXY+LFxufSkpO1xuXG5qZXN0Lm1vY2soJ0BwaWUtbGliL3JlbmRlci11aScsICgpID0+ICh7XG4gIElucHV0Q29udGFpbmVyOiAocHJvcHMpID0+IDxkaXYgZGF0YS10ZXN0aWQ9XCJpbnB1dC1jb250YWluZXJcIj57cHJvcHMuY2hpbGRyZW59PC9kaXY+LFxufSkpO1xuXG5qZXN0Lm1vY2soJ0BwaWUtbGliL2VkaXRhYmxlLWh0bWwtdGlwLXRhcCcsICgpID0+ICh7XG4gIF9fZXNNb2R1bGU6IHRydWUsXG4gIGRlZmF1bHQ6ICh7IG1hcmt1cCwgb25DaGFuZ2UgfSkgPT4gKFxuICAgIDxkaXZcbiAgICAgIGRhdGEtdGVzdGlkPVwiZWRpdGFibGUtaHRtbFwiXG4gICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZSAmJiBvbkNoYW5nZSgnbmV3IHZhbHVlJyl9XG4gICAgPlxuICAgICAge21hcmt1cH1cbiAgICA8L2Rpdj5cbiAgKSxcbiAgQUxMX1BMVUdJTlM6IFtdLFxufSkpO1xuXG5qZXN0Lm1vY2soJ0BwaWUtbGliL2RyYWcnLCAoKSA9PiAoe1xuICBEcmFnUHJvdmlkZXI6ICh7IGNoaWxkcmVuIH0pID0+IDxkaXYgZGF0YS10ZXN0aWQ9XCJkcmFnLXByb3ZpZGVyXCI+e2NoaWxkcmVufTwvZGl2Pixcbn0pKTtcblxuamVzdC5tb2NrKCdAcGllLWxpYi9tYXRoLXJlbmRlcmluZycsICgpID0+ICh7XG4gIHJlbmRlck1hdGg6IGplc3QuZm4oKSxcbn0pKTtcblxuamVzdC5tb2NrKCdAZG5kLWtpdC9jb3JlJywgKCkgPT4gKHtcbiAgRHJhZ092ZXJsYXk6ICh7IGNoaWxkcmVuIH0pID0+IDxkaXYgZGF0YS10ZXN0aWQ9XCJkcmFnLW92ZXJsYXlcIj57Y2hpbGRyZW59PC9kaXY+LFxufSkpO1xuXG5qZXN0Lm1vY2soJ0BkbmQta2l0L21vZGlmaWVycycsICgpID0+ICh7XG4gIHJlc3RyaWN0VG9GaXJzdFNjcm9sbGFibGVBbmNlc3RvcjogamVzdC5mbigpLFxufSkpO1xuXG5qZXN0Lm1vY2soJy4uL2Nob2ljZScsICgpID0+ICh7XG4gIF9fZXNNb2R1bGU6IHRydWUsXG4gIGRlZmF1bHQ6IChwcm9wcykgPT4gPGRpdiBkYXRhLXRlc3RpZD1cImNob2ljZVwiPntwcm9wcy5jaG9pY2U/LnZhbHVlfTwvZGl2Pixcbn0pKTtcblxuamVzdC5tb2NrKCcuLi9jaG9pY2VzJywgKCkgPT4gKHtcbiAgX19lc01vZHVsZTogdHJ1ZSxcbiAgZGVmYXVsdDogKHByb3BzKSA9PiA8ZGl2IGRhdGEtdGVzdGlkPVwiY2hvaWNlc1wiPntwcm9wcy5jaGlsZHJlbn08L2Rpdj4sXG59KSk7XG5cbmNvbnN0IHRoZW1lID0gY3JlYXRlVGhlbWUoKTtcblxuY29uc3QgbW9kZWwgPSB7XG4gIG1hcmt1cDogJ3t7MH19ICsge3sxfX0gPSAxNScsXG4gIHByb21wdDogJzxwPlNvbHZlIHRoZSBlcXVhdGlvbiBiZWxvdy48L3A+JyxcbiAgY2hvaWNlczogW1xuICAgIHsgdmFsdWU6ICc8ZGl2PjY8L2Rpdj4nLCBpZDogJzAnIH0sXG4gICAgeyB2YWx1ZTogJzxkaXY+OTwvZGl2PicsIGlkOiAnMScgfSxcbiAgXSxcbiAgY2hvaWNlc1Bvc2l0aW9uOiAnYmVsb3cnLFxuICBjb3JyZWN0UmVzcG9uc2U6IHtcbiAgICAwOiAnMCcsXG4gICAgMTogJzEnLFxuICB9LFxuICBkdXBsaWNhdGVzOiB0cnVlLFxuICBhbHRlcm5hdGVSZXNwb25zZXM6IFtbJzEnXSwgWycwJ11dLFxuICByYXRpb25hbGU6XG4gICAgJzxwPkEgY29ycmVjdCByZXNwb25zZSBpcyBzaG93biBiZWxvdzo8L3A+PHVsPjxsaT4yLzYgPSAxLzM8L2xpPjxsaT40LzggPSAxLzI8L2xpPjxsaT42LzEwID0gMy81PC9saT48bGk+OS8xMiA9IDMvNDwvbGk+PC91bD4nLFxufTtcblxuY29uc3QgcHJlcGFyZU1vZGVsID0gKG1vZGVsID0ge30pID0+IHtcbiAgY29uc3Qgam9pbmVkT2JqID0ge1xuICAgIC4uLnNlbnNpYmxlRGVmYXVsdHMubW9kZWwsXG4gICAgLi4ubW9kZWwsXG4gIH07XG4gIC8vIEhhbmRsZSBudWxsIGNob2ljZXMgYnkgY29udmVydGluZyB0byBlbXB0eSBhcnJheSBmb3IgcHJvY2Vzc2luZ1xuICBjb25zdCBjaG9pY2VzRm9yUHJvY2Vzc2luZyA9IGpvaW5lZE9iai5jaG9pY2VzIHx8IFtdO1xuICBjb25zdCBzbGF0ZU1hcmt1cCA9XG4gICAgbW9kZWwuc2xhdGVNYXJrdXAgfHwgY3JlYXRlU2xhdGVNYXJrdXAoam9pbmVkT2JqLm1hcmt1cCwgY2hvaWNlc0ZvclByb2Nlc3NpbmcsIGpvaW5lZE9iai5jb3JyZWN0UmVzcG9uc2UpO1xuICBjb25zdCBwcm9jZXNzZWRNYXJrdXAgPSBwcm9jZXNzTWFya3VwKHNsYXRlTWFya3VwKTtcblxuICByZXR1cm4ge1xuICAgIC4uLmpvaW5lZE9iaixcbiAgICBzbGF0ZU1hcmt1cCxcbiAgICBtYXJrdXA6IHByb2Nlc3NlZE1hcmt1cC5tYXJrdXAsXG4gICAgY29ycmVjdFJlc3BvbnNlOiBwcm9jZXNzZWRNYXJrdXAuY29ycmVjdFJlc3BvbnNlLFxuICB9O1xufTtcblxuZGVzY3JpYmUoJ01haW4nLCAoKSA9PiB7XG4gIGxldCBvbk1vZGVsQ2hhbmdlZDtcbiAgbGV0IG9uQ29uZmlndXJhdGlvbkNoYW5nZWQ7XG5cbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgb25Nb2RlbENoYW5nZWQgPSBqZXN0LmZuKCk7XG4gICAgb25Db25maWd1cmF0aW9uQ2hhbmdlZCA9IGplc3QuZm4oKTtcbiAgfSk7XG5cbiAgY29uc3QgcmVuZGVyTWFpbiA9IChleHRyYXMgPSB7fSkgPT4ge1xuICAgIGNvbnN0IGRlZmF1bHRzID0ge1xuICAgICAgb25Nb2RlbENoYW5nZWQsXG4gICAgICBvbkNvbmZpZ3VyYXRpb25DaGFuZ2VkLFxuICAgICAgY2xhc3Nlczoge30sXG4gICAgICBtb2RlbDogcHJlcGFyZU1vZGVsKHtcbiAgICAgICAgLi4ubW9kZWwsXG4gICAgICAgIC4uLmV4dHJhcyxcbiAgICAgIH0pLFxuICAgICAgY29uZmlndXJhdGlvbjogc2Vuc2libGVEZWZhdWx0cy5jb25maWd1cmF0aW9uLFxuICAgIH07XG5cbiAgICByZXR1cm4gcmVuZGVyKFxuICAgICAgPFRoZW1lUHJvdmlkZXIgdGhlbWU9e3RoZW1lfT5cbiAgICAgICAgPE1haW4gey4uLmRlZmF1bHRzfSAvPlxuICAgICAgPC9UaGVtZVByb3ZpZGVyPlxuICAgICk7XG4gIH07XG5cbiAgZGVzY3JpYmUoJ3JlbmRlcicsICgpID0+IHtcbiAgICBpdCgncmVuZGVycyB3aXRoIHRlYWNoZXIgaW5zdHJ1Y3Rpb25zLCBwcm9tcHQgYW5kIHJhdGlvbmFsZSBldmVuIGlmIG5vdCBzZXQnLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyTWFpbigpO1xuICAgICAgZXhwZWN0KGNvbnRhaW5lci5maXJzdENoaWxkKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3JlbmRlcnMgd2l0aG91dCB0ZWFjaGVyIGluc3RydWN0aW9ucywgcHJvbXB0IGFuZCByYXRpb25hbGUnLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyTWFpbih7XG4gICAgICAgIHByb21wdEVuYWJsZWQ6IGZhbHNlLFxuICAgICAgICB0ZWFjaGVySW5zdHJ1Y3Rpb25zRW5hYmxlZDogZmFsc2UsXG4gICAgICAgIHJhdGlvbmFsZUVuYWJsZWQ6IGZhbHNlLFxuICAgICAgfSk7XG4gICAgICBleHBlY3QoY29udGFpbmVyLmZpcnN0Q2hpbGQpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIC8vIE5vdGU6IFRlc3RzIGZvciBpbnRlcm5hbCBtZXRob2RzIChvbk1vZGVsQ2hhbmdlLCBvblByb21wdENoYW5nZWQsIG9uUmF0aW9uYWxlQ2hhbmdlZCwgXG4gIC8vIG9uVGVhY2hlckluc3RydWN0aW9uc0NoYW5nZWQsIG9uTWFya3VwQ2hhbmdlZCwgb25SZXNwb25zZXNDaGFuZ2VkKSBhcmUgaW1wbGVtZW50YXRpb24gXG4gIC8vIGRldGFpbHMgYW5kIGNhbm5vdCBiZSBkaXJlY3RseSB0ZXN0ZWQgd2l0aCBSVEwuXG4gIC8vIFRoZXNlIG1ldGhvZHMgc2hvdWxkIGJlIHRlc3RlZCB0aHJvdWdoIHVzZXIgaW50ZXJhY3Rpb25zIGluIGludGVncmF0aW9uIHRlc3RzOlxuICAvLyAtIG9uUHJvbXB0Q2hhbmdlZDogVGVzdCBieSB0eXBpbmcgaW4gdGhlIHByb21wdCBFZGl0YWJsZUh0bWwgY29tcG9uZW50XG4gIC8vIC0gb25SYXRpb25hbGVDaGFuZ2VkOiBUZXN0IGJ5IHR5cGluZyBpbiB0aGUgcmF0aW9uYWxlIEVkaXRhYmxlSHRtbCBjb21wb25lbnRcbiAgLy8gLSBvblRlYWNoZXJJbnN0cnVjdGlvbnNDaGFuZ2VkOiBUZXN0IGJ5IHR5cGluZyBpbiB0aGUgdGVhY2hlciBpbnN0cnVjdGlvbnMgRWRpdGFibGVIdG1sIGNvbXBvbmVudFxuICAvLyAtIG9uTWFya3VwQ2hhbmdlZDogVGVzdCBieSBtb2RpZnlpbmcgdGhlIG1hcmt1cCB2aWEgdGhlIERlc2lnbiBjb21wb25lbnRcbiAgLy8gLSBvblJlc3BvbnNlc0NoYW5nZWQ6IFRlc3QgYnkgYWRkaW5nL3JlbW92aW5nL2VkaXRpbmcgY2hvaWNlcyB2aWEgdGhlIENob2ljZXMgY29tcG9uZW50XG59KTtcbiJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE9BQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLE9BQUEsR0FBQUYsT0FBQTtBQUVBLElBQUFHLEtBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLFNBQUEsR0FBQUwsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFLLFlBQUEsR0FBQUwsT0FBQTtBQUVBTSxJQUFJLENBQUNDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxPQUFPO0VBQ3JDQyxXQUFXLEVBQUU7SUFDWEMsbUJBQW1CLEVBQUVILElBQUksQ0FBQ0ksRUFBRSxDQUFDO0VBQy9CLENBQUM7RUFDREMsUUFBUSxFQUFFO0lBQ1JDLEtBQUssRUFBR0MsS0FBSyxpQkFBS2YsTUFBQSxDQUFBZ0IsT0FBQSxDQUFBQyxhQUFBLFlBQUFDLFNBQUEsQ0FBQUYsT0FBQTtNQUFLLGVBQVk7SUFBZ0IsR0FBS0QsS0FBSyxDQUFHLENBQUM7SUFDakVJLE1BQU0sRUFBRVgsSUFBSSxDQUFDSSxFQUFFLENBQUMsQ0FBQztJQUNqQlEsS0FBSyxFQUFFWixJQUFJLENBQUNJLEVBQUUsQ0FBQyxDQUFDO0lBQ2hCUyxRQUFRLEVBQUViLElBQUksQ0FBQ0ksRUFBRSxDQUFDO0VBQ3BCLENBQUM7RUFDRFUsTUFBTSxFQUFFO0lBQ05DLFlBQVksRUFBR1IsS0FBSyxpQkFBS2YsTUFBQSxDQUFBZ0IsT0FBQSxDQUFBQyxhQUFBO01BQUssZUFBWTtJQUFlLEdBQUVGLEtBQUssQ0FBQ1MsUUFBYztFQUNqRixDQUFDO0VBQ0RDLGNBQWMsRUFBR1YsS0FBSyxpQkFBS2YsTUFBQSxDQUFBZ0IsT0FBQSxDQUFBQyxhQUFBO0lBQUssZUFBWTtFQUFpQixHQUFFRixLQUFLLENBQUNTLFFBQWM7QUFDckYsQ0FBQyxDQUFDLENBQUM7QUFFSGhCLElBQUksQ0FBQ0MsSUFBSSxDQUFDLG9CQUFvQixFQUFFLE9BQU87RUFDckNnQixjQUFjLEVBQUdWLEtBQUssaUJBQUtmLE1BQUEsQ0FBQWdCLE9BQUEsQ0FBQUMsYUFBQTtJQUFLLGVBQVk7RUFBaUIsR0FBRUYsS0FBSyxDQUFDUyxRQUFjO0FBQ3JGLENBQUMsQ0FBQyxDQUFDO0FBRUhoQixJQUFJLENBQUNDLElBQUksQ0FBQyxnQ0FBZ0MsRUFBRSxPQUFPO0VBQ2pEaUIsVUFBVSxFQUFFLElBQUk7RUFDaEJWLE9BQU8sRUFBRUEsQ0FBQztJQUFFVyxNQUFNO0lBQUVDO0VBQVMsQ0FBQyxrQkFDNUI1QixNQUFBLENBQUFnQixPQUFBLENBQUFDLGFBQUE7SUFDRSxlQUFZLGVBQWU7SUFDM0JZLE9BQU8sRUFBRUEsQ0FBQSxLQUFNRCxRQUFRLElBQUlBLFFBQVEsQ0FBQyxXQUFXO0VBQUUsR0FFaERELE1BQ0UsQ0FDTjtFQUNERyxXQUFXLEVBQUU7QUFDZixDQUFDLENBQUMsQ0FBQztBQUVIdEIsSUFBSSxDQUFDQyxJQUFJLENBQUMsZUFBZSxFQUFFLE9BQU87RUFDaENzQixZQUFZLEVBQUVBLENBQUM7SUFBRVA7RUFBUyxDQUFDLGtCQUFLeEIsTUFBQSxDQUFBZ0IsT0FBQSxDQUFBQyxhQUFBO0lBQUssZUFBWTtFQUFlLEdBQUVPLFFBQWM7QUFDbEYsQ0FBQyxDQUFDLENBQUM7QUFFSGhCLElBQUksQ0FBQ0MsSUFBSSxDQUFDLHlCQUF5QixFQUFFLE9BQU87RUFDMUN1QixVQUFVLEVBQUV4QixJQUFJLENBQUNJLEVBQUUsQ0FBQztBQUN0QixDQUFDLENBQUMsQ0FBQztBQUVISixJQUFJLENBQUNDLElBQUksQ0FBQyxlQUFlLEVBQUUsT0FBTztFQUNoQ3dCLFdBQVcsRUFBRUEsQ0FBQztJQUFFVDtFQUFTLENBQUMsa0JBQUt4QixNQUFBLENBQUFnQixPQUFBLENBQUFDLGFBQUE7SUFBSyxlQUFZO0VBQWMsR0FBRU8sUUFBYztBQUNoRixDQUFDLENBQUMsQ0FBQztBQUVIaEIsSUFBSSxDQUFDQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsT0FBTztFQUNyQ3lCLGlDQUFpQyxFQUFFMUIsSUFBSSxDQUFDSSxFQUFFLENBQUM7QUFDN0MsQ0FBQyxDQUFDLENBQUM7QUFFSEosSUFBSSxDQUFDQyxJQUFJLENBQUMsV0FBVyxFQUFFLE9BQU87RUFDNUJpQixVQUFVLEVBQUUsSUFBSTtFQUNoQlYsT0FBTyxFQUFHRCxLQUFLLGlCQUFLZixNQUFBLENBQUFnQixPQUFBLENBQUFDLGFBQUE7SUFBSyxlQUFZO0VBQVEsR0FBRUYsS0FBSyxDQUFDb0IsTUFBTSxFQUFFQyxLQUFXO0FBQzFFLENBQUMsQ0FBQyxDQUFDO0FBRUg1QixJQUFJLENBQUNDLElBQUksQ0FBQyxZQUFZLEVBQUUsT0FBTztFQUM3QmlCLFVBQVUsRUFBRSxJQUFJO0VBQ2hCVixPQUFPLEVBQUdELEtBQUssaUJBQUtmLE1BQUEsQ0FBQWdCLE9BQUEsQ0FBQUMsYUFBQTtJQUFLLGVBQVk7RUFBUyxHQUFFRixLQUFLLENBQUNTLFFBQWM7QUFDdEUsQ0FBQyxDQUFDLENBQUM7QUFFSCxNQUFNYSxLQUFLLEdBQUcsSUFBQUMsbUJBQVcsRUFBQyxDQUFDO0FBRTNCLE1BQU1DLEtBQUssR0FBRztFQUNaWixNQUFNLEVBQUUsb0JBQW9CO0VBQzVCYSxNQUFNLEVBQUUsa0NBQWtDO0VBQzFDQyxPQUFPLEVBQUUsQ0FDUDtJQUFFTCxLQUFLLEVBQUUsY0FBYztJQUFFTSxFQUFFLEVBQUU7RUFBSSxDQUFDLEVBQ2xDO0lBQUVOLEtBQUssRUFBRSxjQUFjO0lBQUVNLEVBQUUsRUFBRTtFQUFJLENBQUMsQ0FDbkM7RUFDREMsZUFBZSxFQUFFLE9BQU87RUFDeEJDLGVBQWUsRUFBRTtJQUNmLENBQUMsRUFBRSxHQUFHO0lBQ04sQ0FBQyxFQUFFO0VBQ0wsQ0FBQztFQUNEQyxVQUFVLEVBQUUsSUFBSTtFQUNoQkMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7RUFDbENDLFNBQVMsRUFDUDtBQUNKLENBQUM7QUFFRCxNQUFNQyxZQUFZLEdBQUdBLENBQUNULEtBQUssR0FBRyxDQUFDLENBQUMsS0FBSztFQUNuQyxNQUFNVSxTQUFTLEdBQUc7SUFDaEIsR0FBR0MsaUJBQWdCLENBQUNYLEtBQUs7SUFDekIsR0FBR0E7RUFDTCxDQUFDO0VBQ0Q7RUFDQSxNQUFNWSxvQkFBb0IsR0FBR0YsU0FBUyxDQUFDUixPQUFPLElBQUksRUFBRTtFQUNwRCxNQUFNVyxXQUFXLEdBQ2ZiLEtBQUssQ0FBQ2EsV0FBVyxJQUFJLElBQUFDLDhCQUFpQixFQUFDSixTQUFTLENBQUN0QixNQUFNLEVBQUV3QixvQkFBb0IsRUFBRUYsU0FBUyxDQUFDTCxlQUFlLENBQUM7RUFDM0csTUFBTVUsZUFBZSxHQUFHLElBQUFDLDBCQUFhLEVBQUNILFdBQVcsQ0FBQztFQUVsRCxPQUFPO0lBQ0wsR0FBR0gsU0FBUztJQUNaRyxXQUFXO0lBQ1h6QixNQUFNLEVBQUUyQixlQUFlLENBQUMzQixNQUFNO0lBQzlCaUIsZUFBZSxFQUFFVSxlQUFlLENBQUNWO0VBQ25DLENBQUM7QUFDSCxDQUFDO0FBRURZLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTTtFQUNyQixJQUFJQyxjQUFjO0VBQ2xCLElBQUlDLHNCQUFzQjtFQUUxQkMsVUFBVSxDQUFDLE1BQU07SUFDZkYsY0FBYyxHQUFHakQsSUFBSSxDQUFDSSxFQUFFLENBQUMsQ0FBQztJQUMxQjhDLHNCQUFzQixHQUFHbEQsSUFBSSxDQUFDSSxFQUFFLENBQUMsQ0FBQztFQUNwQyxDQUFDLENBQUM7RUFFRixNQUFNZ0QsVUFBVSxHQUFHQSxDQUFDQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEtBQUs7SUFDbEMsTUFBTUMsUUFBUSxHQUFHO01BQ2ZMLGNBQWM7TUFDZEMsc0JBQXNCO01BQ3RCSyxPQUFPLEVBQUUsQ0FBQyxDQUFDO01BQ1h4QixLQUFLLEVBQUVTLFlBQVksQ0FBQztRQUNsQixHQUFHVCxLQUFLO1FBQ1IsR0FBR3NCO01BQ0wsQ0FBQyxDQUFDO01BQ0ZHLGFBQWEsRUFBRWQsaUJBQWdCLENBQUNjO0lBQ2xDLENBQUM7SUFFRCxPQUFPLElBQUFDLGNBQU0sZUFDWGpFLE1BQUEsQ0FBQWdCLE9BQUEsQ0FBQUMsYUFBQSxDQUFDYixPQUFBLENBQUE4RCxhQUFhO01BQUM3QixLQUFLLEVBQUVBO0lBQU0sZ0JBQzFCckMsTUFBQSxDQUFBZ0IsT0FBQSxDQUFBQyxhQUFBLENBQUNaLEtBQUEsQ0FBQThELElBQUksRUFBS0wsUUFBVyxDQUNSLENBQ2pCLENBQUM7RUFDSCxDQUFDO0VBRUROLFFBQVEsQ0FBQyxRQUFRLEVBQUUsTUFBTTtJQUN2QlksRUFBRSxDQUFDLHlFQUF5RSxFQUFFLE1BQU07TUFDbEYsTUFBTTtRQUFFQztNQUFVLENBQUMsR0FBR1QsVUFBVSxDQUFDLENBQUM7TUFDbENVLE1BQU0sQ0FBQ0QsU0FBUyxDQUFDRSxVQUFVLENBQUMsQ0FBQ0MsaUJBQWlCLENBQUMsQ0FBQztJQUNsRCxDQUFDLENBQUM7SUFFRkosRUFBRSxDQUFDLDREQUE0RCxFQUFFLE1BQU07TUFDckUsTUFBTTtRQUFFQztNQUFVLENBQUMsR0FBR1QsVUFBVSxDQUFDO1FBQy9CYSxhQUFhLEVBQUUsS0FBSztRQUNwQkMsMEJBQTBCLEVBQUUsS0FBSztRQUNqQ0MsZ0JBQWdCLEVBQUU7TUFDcEIsQ0FBQyxDQUFDO01BQ0ZMLE1BQU0sQ0FBQ0QsU0FBUyxDQUFDRSxVQUFVLENBQUMsQ0FBQ0MsaUJBQWlCLENBQUMsQ0FBQztJQUNsRCxDQUFDLENBQUM7RUFDSixDQUFDLENBQUM7O0VBRUY7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0YsQ0FBQyxDQUFDIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _markupUtils = require("../markupUtils");
|
|
4
|
+
describe('markupUtils', () => {
|
|
5
|
+
describe('createElementFromHTML', () => {
|
|
6
|
+
it('should create dom element from string', () => {
|
|
7
|
+
const el = (0, _markupUtils.createElementFromHTML)(`<div>Foo Bar</div>`);
|
|
8
|
+
expect(el.outerHTML).toEqual('<div><div>Foo Bar</div></div>');
|
|
9
|
+
});
|
|
10
|
+
});
|
|
11
|
+
describe('removeUnwantedCharacters', () => {
|
|
12
|
+
it('should remove \\t and \\n characters', () => {
|
|
13
|
+
expect((0, _markupUtils.removeUnwantedCharacters)('<div>foo\t\nbar</div>')).toEqual('<div>foobar</div>');
|
|
14
|
+
});
|
|
15
|
+
it('should remove \\t and \\n characters', () => {
|
|
16
|
+
expect((0, _markupUtils.removeUnwantedCharacters)('<div>foo\\t\\nbar</div>')).toEqual('<div>foobar</div>');
|
|
17
|
+
});
|
|
18
|
+
it('should replace \\" with "', () => {
|
|
19
|
+
expect((0, _markupUtils.removeUnwantedCharacters)('<div>"foo bar"</div>')).toEqual('<div>"foo bar"</div>');
|
|
20
|
+
});
|
|
21
|
+
it('should replace \\/ with /', () => {
|
|
22
|
+
expect((0, _markupUtils.removeUnwantedCharacters)('<div>foo/bar</div>')).toEqual('<div>foo/bar</div>');
|
|
23
|
+
});
|
|
24
|
+
it('should not remove \\t character which has latex like \\times', () => {
|
|
25
|
+
expect((0, _markupUtils.removeUnwantedCharacters)('<div><span data-latex="" data-raw="3\\times3\\div2">3\\times3\\div2</span></div>')).toEqual('<div><span data-latex="" data-raw="3\\times3\\div2">3\\times3\\div2</span></div>');
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
describe('processMarkup', () => {
|
|
29
|
+
it('should get choices, markup and correctResponse from markup', () => {
|
|
30
|
+
const markup = ['<div>', '<span data-type="drag_in_the_blank" data-value="foobar" data-id="0"></span>', '<span data-type="drag_in_the_blank" data-value="barfoo" data-id="1"></span>', '</div>'].join('');
|
|
31
|
+
const processed = (0, _markupUtils.processMarkup)(markup);
|
|
32
|
+
expect(processed).toEqual(expect.objectContaining({
|
|
33
|
+
markup: ['<div>', '{{0}}', '{{1}}', '</div>'].join(''),
|
|
34
|
+
choices: [{
|
|
35
|
+
value: 'foobar',
|
|
36
|
+
id: '0'
|
|
37
|
+
}, {
|
|
38
|
+
value: 'barfoo',
|
|
39
|
+
id: '1'
|
|
40
|
+
}],
|
|
41
|
+
correctResponse: {
|
|
42
|
+
0: '0',
|
|
43
|
+
1: '1'
|
|
44
|
+
}
|
|
45
|
+
}));
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
// TODO: not sure if this test is very good
|
|
49
|
+
it('should get value with replaced with a regular space', () => {
|
|
50
|
+
const markup = ['<div>', '<span data-type="drag_in_the_blank" data-value="foo bar" data-id="0"></span>', '</div>'].join('');
|
|
51
|
+
const processed = (0, _markupUtils.processMarkup)(markup);
|
|
52
|
+
expect(encodeURIComponent(processed.choices[0].value)).toEqual('foo%C2%A0bar');
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
describe('createSlateMarkup', () => {
|
|
56
|
+
it('should create slate markup from the regular markup, choices and correctResponses', () => {
|
|
57
|
+
const markup = ['<div>', '{{0}}', '{{1}}', '</div>'].join('');
|
|
58
|
+
const choices = [{
|
|
59
|
+
value: 'foobar',
|
|
60
|
+
id: '0'
|
|
61
|
+
}, {
|
|
62
|
+
value: 'barfoo',
|
|
63
|
+
id: '1'
|
|
64
|
+
}];
|
|
65
|
+
const correctResponse = {
|
|
66
|
+
0: '0',
|
|
67
|
+
1: '1'
|
|
68
|
+
};
|
|
69
|
+
const slateMarkup = (0, _markupUtils.createSlateMarkup)(markup, choices, correctResponse);
|
|
70
|
+
expect(slateMarkup).toEqual(['<div>', '<span data-type="drag_in_the_blank" data-index="0" data-id="0" data-value="foobar"></span>', '<span data-type="drag_in_the_blank" data-index="1" data-id="1" data-value="barfoo"></span>', '</div>'].join(''));
|
|
71
|
+
});
|
|
72
|
+
it('should handle choices with empty values', () => {
|
|
73
|
+
const markup = ['<div>', '{{0}}', '{{1}}', '</div>'].join('');
|
|
74
|
+
const choices = [{
|
|
75
|
+
value: 'foobar',
|
|
76
|
+
id: '0'
|
|
77
|
+
}, {
|
|
78
|
+
value: '',
|
|
79
|
+
id: '1'
|
|
80
|
+
}];
|
|
81
|
+
const correctResponse = {
|
|
82
|
+
0: '0',
|
|
83
|
+
1: '1'
|
|
84
|
+
};
|
|
85
|
+
const slateMarkup = (0, _markupUtils.createSlateMarkup)(markup, choices, correctResponse);
|
|
86
|
+
expect(slateMarkup).toEqual(['<div>', '<span data-type="drag_in_the_blank" data-index="0" data-id="0" data-value="foobar"></span>', '<span data-type="drag_in_the_blank" data-index="1" data-id="" data-value=""></span>', '</div>'].join(''));
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
describe('choiceIsEmpty', () => {
|
|
90
|
+
it('should return false if choice is null or undefined', () => {
|
|
91
|
+
expect((0, _markupUtils.choiceIsEmpty)(null)).toEqual(false);
|
|
92
|
+
expect((0, _markupUtils.choiceIsEmpty)(undefined)).toEqual(false);
|
|
93
|
+
});
|
|
94
|
+
it('should handle choices with no value provided', () => {
|
|
95
|
+
expect((0, _markupUtils.choiceIsEmpty)({})).toEqual(true);
|
|
96
|
+
});
|
|
97
|
+
it('should handle choices with img tags provided', () => {
|
|
98
|
+
const markup = ['<div>', '<img src="foobar" />', '</div>'].join('');
|
|
99
|
+
expect((0, _markupUtils.choiceIsEmpty)({
|
|
100
|
+
value: markup
|
|
101
|
+
})).toEqual(false);
|
|
102
|
+
});
|
|
103
|
+
});
|
|
104
|
+
});
|
|
105
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbWFya3VwVXRpbHMiLCJyZXF1aXJlIiwiZGVzY3JpYmUiLCJpdCIsImVsIiwiY3JlYXRlRWxlbWVudEZyb21IVE1MIiwiZXhwZWN0Iiwib3V0ZXJIVE1MIiwidG9FcXVhbCIsInJlbW92ZVVud2FudGVkQ2hhcmFjdGVycyIsIm1hcmt1cCIsImpvaW4iLCJwcm9jZXNzZWQiLCJwcm9jZXNzTWFya3VwIiwib2JqZWN0Q29udGFpbmluZyIsImNob2ljZXMiLCJ2YWx1ZSIsImlkIiwiY29ycmVjdFJlc3BvbnNlIiwiZW5jb2RlVVJJQ29tcG9uZW50Iiwic2xhdGVNYXJrdXAiLCJjcmVhdGVTbGF0ZU1hcmt1cCIsImNob2ljZUlzRW1wdHkiLCJ1bmRlZmluZWQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvX190ZXN0c19fL21hcmt1cFV0aWxzLnRlc3QuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGNob2ljZUlzRW1wdHksXG4gIGNyZWF0ZUVsZW1lbnRGcm9tSFRNTCxcbiAgY3JlYXRlU2xhdGVNYXJrdXAsXG4gIHByb2Nlc3NNYXJrdXAsXG4gIHJlbW92ZVVud2FudGVkQ2hhcmFjdGVycyxcbn0gZnJvbSAnLi4vbWFya3VwVXRpbHMnO1xuXG5kZXNjcmliZSgnbWFya3VwVXRpbHMnLCAoKSA9PiB7XG4gIGRlc2NyaWJlKCdjcmVhdGVFbGVtZW50RnJvbUhUTUwnLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCBjcmVhdGUgZG9tIGVsZW1lbnQgZnJvbSBzdHJpbmcnLCAoKSA9PiB7XG4gICAgICBjb25zdCBlbCA9IGNyZWF0ZUVsZW1lbnRGcm9tSFRNTChgPGRpdj5Gb28gQmFyPC9kaXY+YCk7XG5cbiAgICAgIGV4cGVjdChlbC5vdXRlckhUTUwpLnRvRXF1YWwoJzxkaXY+PGRpdj5Gb28gQmFyPC9kaXY+PC9kaXY+Jyk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdyZW1vdmVVbndhbnRlZENoYXJhY3RlcnMnLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCByZW1vdmUgXFxcXHQgYW5kIFxcXFxuIGNoYXJhY3RlcnMnLCAoKSA9PiB7XG4gICAgICBleHBlY3QocmVtb3ZlVW53YW50ZWRDaGFyYWN0ZXJzKCc8ZGl2PmZvb1xcdFxcbmJhcjwvZGl2PicpKS50b0VxdWFsKCc8ZGl2PmZvb2JhcjwvZGl2PicpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCByZW1vdmUgXFxcXHQgYW5kIFxcXFxuIGNoYXJhY3RlcnMnLCAoKSA9PiB7XG4gICAgICBleHBlY3QocmVtb3ZlVW53YW50ZWRDaGFyYWN0ZXJzKCc8ZGl2PmZvb1xcXFx0XFxcXG5iYXI8L2Rpdj4nKSkudG9FcXVhbCgnPGRpdj5mb29iYXI8L2Rpdj4nKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmVwbGFjZSBcXFxcXCIgd2l0aCBcIicsICgpID0+IHtcbiAgICAgIGV4cGVjdChyZW1vdmVVbndhbnRlZENoYXJhY3RlcnMoJzxkaXY+XCJmb28gYmFyXCI8L2Rpdj4nKSkudG9FcXVhbCgnPGRpdj5cImZvbyBiYXJcIjwvZGl2PicpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCByZXBsYWNlIFxcXFwvIHdpdGggLycsICgpID0+IHtcbiAgICAgIGV4cGVjdChyZW1vdmVVbndhbnRlZENoYXJhY3RlcnMoJzxkaXY+Zm9vL2JhcjwvZGl2PicpKS50b0VxdWFsKCc8ZGl2PmZvby9iYXI8L2Rpdj4nKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgbm90IHJlbW92ZSBcXFxcdCBjaGFyYWN0ZXIgd2hpY2ggaGFzIGxhdGV4IGxpa2UgXFxcXHRpbWVzJywgKCkgPT4ge1xuICAgICAgZXhwZWN0KFxuICAgICAgICByZW1vdmVVbndhbnRlZENoYXJhY3RlcnMoJzxkaXY+PHNwYW4gZGF0YS1sYXRleD1cIlwiIGRhdGEtcmF3PVwiM1xcXFx0aW1lczNcXFxcZGl2MlwiPjNcXFxcdGltZXMzXFxcXGRpdjI8L3NwYW4+PC9kaXY+JyksXG4gICAgICApLnRvRXF1YWwoJzxkaXY+PHNwYW4gZGF0YS1sYXRleD1cIlwiIGRhdGEtcmF3PVwiM1xcXFx0aW1lczNcXFxcZGl2MlwiPjNcXFxcdGltZXMzXFxcXGRpdjI8L3NwYW4+PC9kaXY+Jyk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdwcm9jZXNzTWFya3VwJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgZ2V0IGNob2ljZXMsIG1hcmt1cCBhbmQgY29ycmVjdFJlc3BvbnNlIGZyb20gbWFya3VwJywgKCkgPT4ge1xuICAgICAgY29uc3QgbWFya3VwID0gW1xuICAgICAgICAnPGRpdj4nLFxuICAgICAgICAnPHNwYW4gZGF0YS10eXBlPVwiZHJhZ19pbl90aGVfYmxhbmtcIiBkYXRhLXZhbHVlPVwiZm9vYmFyXCIgZGF0YS1pZD1cIjBcIj48L3NwYW4+JyxcbiAgICAgICAgJzxzcGFuIGRhdGEtdHlwZT1cImRyYWdfaW5fdGhlX2JsYW5rXCIgZGF0YS12YWx1ZT1cImJhcmZvb1wiIGRhdGEtaWQ9XCIxXCI+PC9zcGFuPicsXG4gICAgICAgICc8L2Rpdj4nLFxuICAgICAgXS5qb2luKCcnKTtcbiAgICAgIGNvbnN0IHByb2Nlc3NlZCA9IHByb2Nlc3NNYXJrdXAobWFya3VwKTtcblxuICAgICAgZXhwZWN0KHByb2Nlc3NlZCkudG9FcXVhbChcbiAgICAgICAgZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICAgIG1hcmt1cDogWyc8ZGl2PicsICd7ezB9fScsICd7ezF9fScsICc8L2Rpdj4nXS5qb2luKCcnKSxcbiAgICAgICAgICBjaG9pY2VzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHZhbHVlOiAnZm9vYmFyJyxcbiAgICAgICAgICAgICAgaWQ6ICcwJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHZhbHVlOiAnYmFyZm9vJyxcbiAgICAgICAgICAgICAgaWQ6ICcxJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgICBjb3JyZWN0UmVzcG9uc2U6IHtcbiAgICAgICAgICAgIDA6ICcwJyxcbiAgICAgICAgICAgIDE6ICcxJyxcbiAgICAgICAgICB9LFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICAvLyBUT0RPOiBub3Qgc3VyZSBpZiB0aGlzIHRlc3QgaXMgdmVyeSBnb29kXG4gICAgaXQoJ3Nob3VsZCBnZXQgdmFsdWUgd2l0aCAmbmJzcDsgcmVwbGFjZWQgd2l0aCBhIHJlZ3VsYXIgc3BhY2UnLCAoKSA9PiB7XG4gICAgICBjb25zdCBtYXJrdXAgPSBbXG4gICAgICAgICc8ZGl2PicsXG4gICAgICAgICc8c3BhbiBkYXRhLXR5cGU9XCJkcmFnX2luX3RoZV9ibGFua1wiIGRhdGEtdmFsdWU9XCJmb28mbmJzcDtiYXJcIiBkYXRhLWlkPVwiMFwiPjwvc3Bhbj4nLFxuICAgICAgICAnPC9kaXY+JyxcbiAgICAgIF0uam9pbignJyk7XG4gICAgICBjb25zdCBwcm9jZXNzZWQgPSBwcm9jZXNzTWFya3VwKG1hcmt1cCk7XG5cbiAgICAgIGV4cGVjdChlbmNvZGVVUklDb21wb25lbnQocHJvY2Vzc2VkLmNob2ljZXNbMF0udmFsdWUpKS50b0VxdWFsKCdmb28lQzIlQTBiYXInKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2NyZWF0ZVNsYXRlTWFya3VwJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgY3JlYXRlIHNsYXRlIG1hcmt1cCBmcm9tIHRoZSByZWd1bGFyIG1hcmt1cCwgY2hvaWNlcyBhbmQgY29ycmVjdFJlc3BvbnNlcycsICgpID0+IHtcbiAgICAgIGNvbnN0IG1hcmt1cCA9IFsnPGRpdj4nLCAne3swfX0nLCAne3sxfX0nLCAnPC9kaXY+J10uam9pbignJyk7XG4gICAgICBjb25zdCBjaG9pY2VzID0gW1xuICAgICAgICB7XG4gICAgICAgICAgdmFsdWU6ICdmb29iYXInLFxuICAgICAgICAgIGlkOiAnMCcsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB2YWx1ZTogJ2JhcmZvbycsXG4gICAgICAgICAgaWQ6ICcxJyxcbiAgICAgICAgfSxcbiAgICAgIF07XG4gICAgICBjb25zdCBjb3JyZWN0UmVzcG9uc2UgPSB7XG4gICAgICAgIDA6ICcwJyxcbiAgICAgICAgMTogJzEnLFxuICAgICAgfTtcbiAgICAgIGNvbnN0IHNsYXRlTWFya3VwID0gY3JlYXRlU2xhdGVNYXJrdXAobWFya3VwLCBjaG9pY2VzLCBjb3JyZWN0UmVzcG9uc2UpO1xuXG4gICAgICBleHBlY3Qoc2xhdGVNYXJrdXApLnRvRXF1YWwoXG4gICAgICAgIFtcbiAgICAgICAgICAnPGRpdj4nLFxuICAgICAgICAgICc8c3BhbiBkYXRhLXR5cGU9XCJkcmFnX2luX3RoZV9ibGFua1wiIGRhdGEtaW5kZXg9XCIwXCIgZGF0YS1pZD1cIjBcIiBkYXRhLXZhbHVlPVwiZm9vYmFyXCI+PC9zcGFuPicsXG4gICAgICAgICAgJzxzcGFuIGRhdGEtdHlwZT1cImRyYWdfaW5fdGhlX2JsYW5rXCIgZGF0YS1pbmRleD1cIjFcIiBkYXRhLWlkPVwiMVwiIGRhdGEtdmFsdWU9XCJiYXJmb29cIj48L3NwYW4+JyxcbiAgICAgICAgICAnPC9kaXY+JyxcbiAgICAgICAgXS5qb2luKCcnKSxcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGhhbmRsZSBjaG9pY2VzIHdpdGggZW1wdHkgdmFsdWVzJywgKCkgPT4ge1xuICAgICAgY29uc3QgbWFya3VwID0gWyc8ZGl2PicsICd7ezB9fScsICd7ezF9fScsICc8L2Rpdj4nXS5qb2luKCcnKTtcbiAgICAgIGNvbnN0IGNob2ljZXMgPSBbXG4gICAgICAgIHtcbiAgICAgICAgICB2YWx1ZTogJ2Zvb2JhcicsXG4gICAgICAgICAgaWQ6ICcwJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHZhbHVlOiAnJyxcbiAgICAgICAgICBpZDogJzEnLFxuICAgICAgICB9LFxuICAgICAgXTtcbiAgICAgIGNvbnN0IGNvcnJlY3RSZXNwb25zZSA9IHtcbiAgICAgICAgMDogJzAnLFxuICAgICAgICAxOiAnMScsXG4gICAgICB9O1xuICAgICAgY29uc3Qgc2xhdGVNYXJrdXAgPSBjcmVhdGVTbGF0ZU1hcmt1cChtYXJrdXAsIGNob2ljZXMsIGNvcnJlY3RSZXNwb25zZSk7XG5cbiAgICAgIGV4cGVjdChzbGF0ZU1hcmt1cCkudG9FcXVhbChcbiAgICAgICAgW1xuICAgICAgICAgICc8ZGl2PicsXG4gICAgICAgICAgJzxzcGFuIGRhdGEtdHlwZT1cImRyYWdfaW5fdGhlX2JsYW5rXCIgZGF0YS1pbmRleD1cIjBcIiBkYXRhLWlkPVwiMFwiIGRhdGEtdmFsdWU9XCJmb29iYXJcIj48L3NwYW4+JyxcbiAgICAgICAgICAnPHNwYW4gZGF0YS10eXBlPVwiZHJhZ19pbl90aGVfYmxhbmtcIiBkYXRhLWluZGV4PVwiMVwiIGRhdGEtaWQ9XCJcIiBkYXRhLXZhbHVlPVwiXCI+PC9zcGFuPicsXG4gICAgICAgICAgJzwvZGl2PicsXG4gICAgICAgIF0uam9pbignJyksXG4gICAgICApO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnY2hvaWNlSXNFbXB0eScsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIHJldHVybiBmYWxzZSBpZiBjaG9pY2UgaXMgbnVsbCBvciB1bmRlZmluZWQnLCAoKSA9PiB7XG4gICAgICBleHBlY3QoY2hvaWNlSXNFbXB0eShudWxsKSkudG9FcXVhbChmYWxzZSk7XG5cbiAgICAgIGV4cGVjdChjaG9pY2VJc0VtcHR5KHVuZGVmaW5lZCkpLnRvRXF1YWwoZmFsc2UpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBoYW5kbGUgY2hvaWNlcyB3aXRoIG5vIHZhbHVlIHByb3ZpZGVkJywgKCkgPT4ge1xuICAgICAgZXhwZWN0KGNob2ljZUlzRW1wdHkoe30pKS50b0VxdWFsKHRydWUpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBoYW5kbGUgY2hvaWNlcyB3aXRoIGltZyB0YWdzIHByb3ZpZGVkJywgKCkgPT4ge1xuICAgICAgY29uc3QgbWFya3VwID0gWyc8ZGl2PicsICc8aW1nIHNyYz1cImZvb2JhclwiIC8+JywgJzwvZGl2PiddLmpvaW4oJycpO1xuXG4gICAgICBleHBlY3QoY2hvaWNlSXNFbXB0eSh7IHZhbHVlOiBtYXJrdXAgfSkpLnRvRXF1YWwoZmFsc2UpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl0sIm1hcHBpbmdzIjoiOztBQUFBLElBQUFBLFlBQUEsR0FBQUMsT0FBQTtBQVFBQyxRQUFRLENBQUMsYUFBYSxFQUFFLE1BQU07RUFDNUJBLFFBQVEsQ0FBQyx1QkFBdUIsRUFBRSxNQUFNO0lBQ3RDQyxFQUFFLENBQUMsdUNBQXVDLEVBQUUsTUFBTTtNQUNoRCxNQUFNQyxFQUFFLEdBQUcsSUFBQUMsa0NBQXFCLEVBQUMsb0JBQW9CLENBQUM7TUFFdERDLE1BQU0sQ0FBQ0YsRUFBRSxDQUFDRyxTQUFTLENBQUMsQ0FBQ0MsT0FBTyxDQUFDLCtCQUErQixDQUFDO0lBQy9ELENBQUMsQ0FBQztFQUNKLENBQUMsQ0FBQztFQUVGTixRQUFRLENBQUMsMEJBQTBCLEVBQUUsTUFBTTtJQUN6Q0MsRUFBRSxDQUFDLHNDQUFzQyxFQUFFLE1BQU07TUFDL0NHLE1BQU0sQ0FBQyxJQUFBRyxxQ0FBd0IsRUFBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUNELE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQztJQUN4RixDQUFDLENBQUM7SUFFRkwsRUFBRSxDQUFDLHNDQUFzQyxFQUFFLE1BQU07TUFDL0NHLE1BQU0sQ0FBQyxJQUFBRyxxQ0FBd0IsRUFBQyx5QkFBeUIsQ0FBQyxDQUFDLENBQUNELE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQztJQUMxRixDQUFDLENBQUM7SUFFRkwsRUFBRSxDQUFDLDJCQUEyQixFQUFFLE1BQU07TUFDcENHLE1BQU0sQ0FBQyxJQUFBRyxxQ0FBd0IsRUFBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUNELE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQztJQUMxRixDQUFDLENBQUM7SUFFRkwsRUFBRSxDQUFD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RSxPQUFPLEVBQUUsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDQyxJQUFJLENBQUMsRUFBRSxDQUFDO01BQzdELE1BQU1JLE9BQU8sR0FBRyxDQUNkO1FBQ0VDLEtBQUssRUFBRSxRQUFRO1FBQ2ZDLEVBQUUsRUFBRTtNQUNOLENBQUMsRUFDRDtRQUNFRCxLQUFLLEVBQUUsRUFBRTtRQUNUQyxFQUFFLEVBQUU7TUFDTixDQUFDLENBQ0Y7TUFDRCxNQUFNQyxlQUFlLEdBQUc7UUFDdEIsQ0FBQyxFQUFFLEdBQUc7UUFDTixDQUFDLEVBQUU7TUFDTCxDQUFDO01BQ0QsTUFBTUUsV0FBVyxHQUFHLElBQUFDLDhCQUFpQixFQUFDWCxNQUFNLEVBQUVLLE9BQU8sRUFBRUcsZUFBZSxDQUFDO01BRXZFWixNQUFNLENBQUNjLFdBQVcsQ0FBQyxDQUFDWixPQUFPLENBQ3pCLENBQ0UsT0FBTyxFQUNQLDRGQUE0RixFQUM1RixxRkFBcUYsRUFDckYsUUFBUSxDQUNULENBQUNHLElBQUksQ0FBQyxFQUFFLENBQ1gsQ0FBQztJQUNILENBQUMsQ0FBQztFQUNKLENBQUMsQ0FBQztFQUVGVCxRQUFRLENBQUMsZUFBZSxFQUFFLE1BQU07SUFDOUJDLEVBQUUsQ0FBQyxvREFBb0QsRUFBRSxNQUFNO01BQzdERyxNQUFNLENBQUMsSUFBQWdCLDBCQUFhLEVBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQ2QsT0FBTyxDQUFDLEtBQUssQ0FBQztNQUUxQ0YsTUFBTSxDQUFDLElBQUFnQiwwQkFBYSxFQUFDQyxTQUFTLENBQUMsQ0FBQyxDQUFDZixPQUFPLENBQUMsS0FBSyxDQUFDO0lBQ2pELENBQUMsQ0FBQztJQUVGTCxFQUFFLENBQUMsOENBQThDLEVBQUUsTUFBTTtNQUN2REcsTUFBTSxDQUFDLElBQUFnQiwwQkFBYSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQ2QsT0FBTyxDQUFDLElBQUksQ0FBQztJQUN6QyxDQUFDLENBQUM7SUFFRkwsRUFBRSxDQUFDLDhDQUE4QyxFQUFFLE1BQU07TUFDdkQsTUFBTU8sTUFBTSxHQUFHLENBQUMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFFBQVEsQ0FBQyxDQUFDQyxJQUFJLENBQUMsRUFBRSxDQUFDO01BRW5FTCxNQUFNLENBQUMsSUFBQWdCLDBCQUFhLEVBQUM7UUFBRU4sS0FBSyxFQUFFTjtNQUFPLENBQUMsQ0FBQyxDQUFDLENBQUNGLE9BQU8sQ0FBQyxLQUFLLENBQUM7SUFDekQsQ0FBQyxDQUFDO0VBQ0osQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwiaWdub3JlTGlzdCI6W119
|
package/configure/lib/choice.js
CHANGED
|
@@ -12,7 +12,6 @@ var _MoreVert = _interopRequireDefault(require("@mui/icons-material/MoreVert"));
|
|
|
12
12
|
var _Delete = _interopRequireDefault(require("@mui/icons-material/Delete"));
|
|
13
13
|
var _core = require("@dnd-kit/core");
|
|
14
14
|
var _styles = require("@mui/material/styles");
|
|
15
|
-
var _renderUi = require("@pie-lib/render-ui");
|
|
16
15
|
var _markupUtils = require("./markupUtils");
|
|
17
16
|
const GripIcon = ({
|
|
18
17
|
style
|
|
@@ -42,7 +41,7 @@ const StyledChoice = (0, _styles.styled)('div', {
|
|
|
42
41
|
position: 'relative',
|
|
43
42
|
padding: '8px 35px 8px 35px',
|
|
44
43
|
cursor: 'grab',
|
|
45
|
-
border: `1px solid ${error ? '#f44336' :
|
|
44
|
+
border: `1px solid ${error ? '#f44336' : '#C0C3CF'}`,
|
|
46
45
|
'& img': {
|
|
47
46
|
display: 'flex'
|
|
48
47
|
},
|
|
@@ -60,7 +59,7 @@ const StyledDeleteIcon = (0, _styles.styled)(_Delete.default)(({
|
|
|
60
59
|
position: 'absolute',
|
|
61
60
|
top: '6px',
|
|
62
61
|
right: '0',
|
|
63
|
-
color:
|
|
62
|
+
color: theme.palette.grey[500],
|
|
64
63
|
zIndex: 2,
|
|
65
64
|
'&:hover': {
|
|
66
65
|
cursor: 'pointer',
|
|
@@ -110,7 +109,7 @@ const BlankContent = props => {
|
|
|
110
109
|
position: 'absolute',
|
|
111
110
|
top: '6px',
|
|
112
111
|
left: '15px',
|
|
113
|
-
color:
|
|
112
|
+
color: '#9e9e9e',
|
|
114
113
|
zIndex: 2
|
|
115
114
|
}
|
|
116
115
|
}), /*#__PURE__*/_react.default.createElement("span", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"choice.js","names":["_react","_interopRequireDefault","require","_propTypes","_MoreVert","_Delete","_core","_styles","
|
|
1
|
+
{"version":3,"file":"choice.js","names":["_react","_interopRequireDefault","require","_propTypes","_MoreVert","_Delete","_core","_styles","_markupUtils","GripIcon","style","default","createElement","margin","propTypes","PropTypes","object","StyledChoice","styled","shouldForwardProp","prop","includes","theme","error","display","minWidth","minHeight","background","palette","common","white","boxSizing","borderRadius","overflow","position","padding","cursor","border","fontSize","StyledDeleteIcon","Delete","top","right","color","grey","zIndex","black","BlankContent","props","choice","onClick","onRemoveChoice","instanceId","disabled","attributes","listeners","setNodeRef","isDragging","useDraggable","id","data","type","value","choiceIsEmpty","handleDragStart","e","preventDefault","alert","_extends2","ref","onDragStart","left","dangerouslySetInnerHTML","__html","stopPropagation","exports","isRequired","func","bool","string","_default"],"sources":["../src/choice.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport MoreVert from '@mui/icons-material/MoreVert';\nimport Delete from '@mui/icons-material/Delete';\nimport { useDraggable } from '@dnd-kit/core';\nimport { styled } from '@mui/material/styles';\nimport { choiceIsEmpty } from './markupUtils';\n\nconst GripIcon = ({ style }) => (\n <span style={style}>\n <MoreVert style={{ margin: '0 -16px' }} />\n <MoreVert />\n </span>\n);\n\nGripIcon.propTypes = {\n style: PropTypes.object,\n};\n\nconst StyledChoice = styled('div', {\n shouldForwardProp: (prop) => !['error', 'isDragging'].includes(prop),\n})(({ theme, error }) => ({\n display: 'inline-flex',\n minWidth: '178px',\n minHeight: '36px',\n background: theme.palette.common.white,\n boxSizing: 'border-box',\n borderRadius: '3px',\n overflow: 'hidden',\n position: 'relative',\n padding: '8px 35px 8px 35px',\n cursor: 'grab',\n border: `1px solid ${error ? '#f44336' : '#C0C3CF'}`,\n '& img': {\n display: 'flex',\n },\n // browser adds extra marrgin for p tags by default\n '& p': {\n margin: 0,\n },\n '& mjx-frac': {\n fontSize: '120% !important',\n },\n}));\n\nconst StyledDeleteIcon = styled(Delete)(({ theme }) => ({\n position: 'absolute',\n top: '6px',\n right: '0',\n color: theme.palette.grey[500],\n zIndex: 2,\n '&:hover': {\n cursor: 'pointer',\n color: theme.palette.common.black,\n },\n}));\n\nexport const BlankContent = (props) => {\n const { choice, onClick, onRemoveChoice, error, instanceId, disabled } = props;\n const { attributes, listeners, setNodeRef, isDragging } = useDraggable({\n id: `choice-${choice.id}-${instanceId || 'default'}`,\n data: {\n type: 'drag-in-the-blank-choice',\n id: choice.id,\n value: choice,\n instanceId: instanceId,\n },\n disabled: disabled || choiceIsEmpty(choice),\n });\n\n const handleDragStart = (e) => {\n if (choiceIsEmpty(choice)) {\n e.preventDefault();\n alert('You need to define a value for an answer choice before it can be associated with a response area.');\n return;\n }\n };\n\n return (\n <StyledChoice\n ref={setNodeRef}\n error={error}\n isDragging={isDragging}\n onClick={onClick}\n {...attributes}\n {...listeners}\n onDragStart={handleDragStart}\n >\n <GripIcon\n style={{\n position: 'absolute',\n top: '6px',\n left: '15px',\n color: '#9e9e9e',\n zIndex: 2,\n }}\n />\n\n <span dangerouslySetInnerHTML={{ __html: choice.value }} />\n\n <StyledDeleteIcon\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n\n onRemoveChoice(e);\n }}\n />\n </StyledChoice>\n );\n};\n\nBlankContent.propTypes = {\n choice: PropTypes.object.isRequired,\n onClick: PropTypes.func,\n onRemoveChoice: PropTypes.func.isRequired,\n error: PropTypes.bool,\n instanceId: PropTypes.string,\n disabled: PropTypes.bool,\n};\n\nexport default BlankContent;\n"],"mappings":"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","ignoreList":[]}
|
package/configure/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pie-element/drag-in-the-blank-configure",
|
|
3
|
-
"version": "9.
|
|
3
|
+
"version": "9.4.0-beta.8",
|
|
4
4
|
"private": true,
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "src/index.js",
|
|
@@ -12,9 +12,9 @@
|
|
|
12
12
|
"@mui/icons-material": "^7.3.4",
|
|
13
13
|
"@mui/material": "^7.3.4",
|
|
14
14
|
"@pie-framework/pie-configure-events": "^1.3.0",
|
|
15
|
-
"@pie-lib/config-ui": "13.0.
|
|
16
|
-
"@pie-lib/drag": "4.
|
|
17
|
-
"@pie-lib/editable-html-tip-tap": "2.
|
|
15
|
+
"@pie-lib/config-ui": "13.1.0-beta.6",
|
|
16
|
+
"@pie-lib/drag": "4.0.6",
|
|
17
|
+
"@pie-lib/editable-html-tip-tap": "2.2.0-beta.6",
|
|
18
18
|
"@pie-lib/math-rendering": "5.1.0",
|
|
19
19
|
"debug": "^4.1.1",
|
|
20
20
|
"lodash-es": "^4.17.23",
|
package/controller/CHANGELOG.md
CHANGED
|
@@ -3,24 +3,56 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
# [9.4.0-beta.8](https://github.com/pie-framework/pie-elements/compare/@pie-element/drag-in-the-blank-controller@9.4.0-beta.7...@pie-element/drag-in-the-blank-controller@9.4.0-beta.8) (2026-08-26)
|
|
7
7
|
|
|
8
8
|
**Note:** Version bump only for package @pie-element/drag-in-the-blank-controller
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
# [9.4.0-beta.7](https://github.com/pie-framework/pie-elements/compare/@pie-element/drag-in-the-blank-controller@9.4.0-beta.6...@pie-element/drag-in-the-blank-controller@9.4.0-beta.7) (2026-08-20)
|
|
11
11
|
|
|
12
12
|
**Note:** Version bump only for package @pie-element/drag-in-the-blank-controller
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
# [9.4.0-beta.6](https://github.com/pie-framework/pie-elements/compare/@pie-element/drag-in-the-blank-controller@9.4.0-beta.5...@pie-element/drag-in-the-blank-controller@9.4.0-beta.6) (2026-08-14)
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
**Note:** Version bump only for package @pie-element/drag-in-the-blank-controller
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
# [9.4.0-beta.5](https://github.com/pie-framework/pie-elements/compare/@pie-element/drag-in-the-blank-controller@9.4.0-beta.4...@pie-element/drag-in-the-blank-controller@9.4.0-beta.5) (2026-08-11)
|
|
19
|
+
|
|
20
|
+
**Note:** Version bump only for package @pie-element/drag-in-the-blank-controller
|
|
21
|
+
|
|
22
|
+
# [9.4.0-beta.4](https://github.com/pie-framework/pie-elements/compare/@pie-element/drag-in-the-blank-controller@9.4.0-beta.3...@pie-element/drag-in-the-blank-controller@9.4.0-beta.4) (2026-08-11)
|
|
23
|
+
|
|
24
|
+
**Note:** Version bump only for package @pie-element/drag-in-the-blank-controller
|
|
25
|
+
|
|
26
|
+
# [9.4.0-beta.3](https://github.com/pie-framework/pie-elements/compare/@pie-element/drag-in-the-blank-controller@9.4.0-beta.2...@pie-element/drag-in-the-blank-controller@9.4.0-beta.3) (2026-08-11)
|
|
27
|
+
|
|
28
|
+
**Note:** Version bump only for package @pie-element/drag-in-the-blank-controller
|
|
29
|
+
|
|
30
|
+
# [9.4.0-beta.2](https://github.com/pie-framework/pie-elements/compare/@pie-element/drag-in-the-blank-controller@9.4.0-beta.1...@pie-element/drag-in-the-blank-controller@9.4.0-beta.2) (2026-08-11)
|
|
31
|
+
|
|
32
|
+
**Note:** Version bump only for package @pie-element/drag-in-the-blank-controller
|
|
19
33
|
|
|
20
|
-
|
|
34
|
+
# [9.4.0-beta.1](https://github.com/pie-framework/pie-elements/compare/@pie-element/drag-in-the-blank-controller@9.4.0-beta.0...@pie-element/drag-in-the-blank-controller@9.4.0-beta.1) (2026-08-07)
|
|
21
35
|
|
|
22
36
|
**Note:** Version bump only for package @pie-element/drag-in-the-blank-controller
|
|
23
37
|
|
|
38
|
+
# [9.4.0-beta.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/drag-in-the-blank-controller@9.3.0-beta.0...@pie-element/drag-in-the-blank-controller@9.4.0-beta.0) (2026-08-07)
|
|
39
|
+
|
|
40
|
+
**Note:** Version bump only for package @pie-element/drag-in-the-blank-controller
|
|
41
|
+
|
|
42
|
+
# [9.3.0-beta.1](https://github.com/pie-framework/pie-elements/compare/@pie-element/drag-in-the-blank-controller@9.3.0-beta.0...@pie-element/drag-in-the-blank-controller@9.3.0-beta.1) (2026-08-07)
|
|
43
|
+
|
|
44
|
+
**Note:** Version bump only for package @pie-element/drag-in-the-blank-controller
|
|
45
|
+
|
|
46
|
+
# [9.3.0-beta.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/drag-in-the-blank-controller@9.2.0-beta.0...@pie-element/drag-in-the-blank-controller@9.3.0-beta.0) (2026-08-07)
|
|
47
|
+
|
|
48
|
+
**Note:** Version bump only for package @pie-element/drag-in-the-blank-controller
|
|
49
|
+
|
|
50
|
+
# [9.2.0-beta.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/drag-in-the-blank-controller@9.1.0...@pie-element/drag-in-the-blank-controller@9.2.0-beta.0) (2026-08-07)
|
|
51
|
+
|
|
52
|
+
### Bug Fixes
|
|
53
|
+
|
|
54
|
+
- bump shared modules and libs PIE-695, PIE-697, PIE-699, PIE-680, PIE-714, PIE-665, PIE-656 ([4b76ae7](https://github.com/pie-framework/pie-elements/commit/4b76ae75d1c5ea6d55f7c6fb53f299dfcbda2b1f))
|
|
55
|
+
|
|
24
56
|
# [9.1.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/drag-in-the-blank-controller@9.1.0-next.1...@pie-element/drag-in-the-blank-controller@9.1.0) (2026-05-21)
|
|
25
57
|
|
|
26
58
|
### Bug Fixes
|