@pie-lib/mask-markup 1.15.0-beta.0 → 1.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.json +1 -871
- package/CHANGELOG.md +107 -20
- package/lib/choices/choice.js +5 -5
- package/lib/choices/choice.js.map +1 -0
- package/lib/choices/index.js +1 -1
- package/lib/choices/index.js.map +1 -0
- package/lib/componentize.js +1 -1
- package/lib/componentize.js.map +1 -0
- package/lib/components/blank.js +8 -8
- package/lib/components/blank.js.map +1 -0
- package/lib/components/correct-input.js +9 -9
- package/lib/components/correct-input.js.map +1 -0
- package/lib/components/dropdown.js +187 -52
- package/lib/components/dropdown.js.map +1 -0
- package/lib/components/input.js +1 -1
- package/lib/components/input.js.map +1 -0
- package/lib/constructed-response.js +5 -5
- package/lib/constructed-response.js.map +1 -0
- package/lib/customizable.js +1 -1
- package/lib/customizable.js.map +1 -0
- package/lib/drag-in-the-blank.js +1 -1
- package/lib/drag-in-the-blank.js.map +1 -0
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -0
- package/lib/inline-dropdown.js +1 -1
- package/lib/inline-dropdown.js.map +1 -0
- package/lib/mask.js +1 -1
- package/lib/mask.js.map +1 -0
- package/lib/serialization.js +1 -1
- package/lib/serialization.js.map +1 -0
- package/lib/shared/index.js +136 -0
- package/lib/with-mask.js +1 -1
- package/lib/with-mask.js.map +1 -0
- package/package.json +8 -5
- package/src/choices/choice.jsx +1 -1
- package/src/components/__tests__/__snapshots__/dropdown.test.js.snap +15 -12
- package/src/components/__tests__/blank.test.js +1 -1
- package/src/components/blank.jsx +1 -1
- package/src/components/correct-input.jsx +1 -1
- package/src/components/dropdown.jsx +118 -23
- package/src/constructed-response.jsx +1 -1
- package/src/serialization.js +1 -1
- package/lib/__tests__/drag-in-the-blank.test.js +0 -71
- package/lib/__tests__/index.test.js +0 -50
- package/lib/__tests__/mask.test.js +0 -149
- package/lib/__tests__/serialization.test.js +0 -45
- package/lib/__tests__/utils.js +0 -17
- package/lib/__tests__/with-mask.test.js +0 -65
- package/lib/choices/__tests__/index.test.js +0 -85
- package/lib/components/__tests__/blank.test.js +0 -234
- package/lib/components/__tests__/correct-input.test.js +0 -63
- package/lib/components/__tests__/dropdown.test.js +0 -70
- package/lib/components/__tests__/input.test.js +0 -64
package/src/components/blank.jsx
CHANGED
|
@@ -8,7 +8,7 @@ import { DragSource, DropTarget } from '@pie-lib/drag';
|
|
|
8
8
|
import { withStyles } from '@material-ui/core/styles';
|
|
9
9
|
import Chip from '@material-ui/core/Chip';
|
|
10
10
|
import classnames from 'classnames';
|
|
11
|
-
import { color } from '
|
|
11
|
+
import { color } from '../../../render-ui/src/index';
|
|
12
12
|
|
|
13
13
|
const log = debug('pie-lib:mask-markup:blank');
|
|
14
14
|
export const DRAG_TYPE = 'MaskBlank';
|
|
@@ -2,7 +2,7 @@ import React from 'react';
|
|
|
2
2
|
import OutlinedInput from '@material-ui/core/OutlinedInput';
|
|
3
3
|
import classnames from 'classnames';
|
|
4
4
|
import { withStyles } from '@material-ui/core/styles';
|
|
5
|
-
import { color } from '
|
|
5
|
+
import { color } from '../../../render-ui/src/index';
|
|
6
6
|
|
|
7
7
|
const correctStyle = (color) => ({
|
|
8
8
|
borderColor: `${color} !important`,
|
|
@@ -5,12 +5,14 @@ import InputLabel from '@material-ui/core/InputLabel';
|
|
|
5
5
|
import Menu from '@material-ui/core/Menu';
|
|
6
6
|
import MenuItem from '@material-ui/core/MenuItem';
|
|
7
7
|
import ArrowDropDownIcon from '@material-ui/icons/ArrowDropDown';
|
|
8
|
+
import ArrowDropUpIcon from '@material-ui/icons/ArrowDropUp';
|
|
8
9
|
import Close from '@material-ui/icons/Close';
|
|
9
10
|
import Check from '@material-ui/icons/Check';
|
|
10
11
|
import { withStyles } from '@material-ui/core/styles';
|
|
11
12
|
import classNames from 'classnames';
|
|
13
|
+
import isEqual from 'lodash/isEqual';
|
|
12
14
|
|
|
13
|
-
import { color } from '
|
|
15
|
+
import { color } from '../../../render-ui/src/index';
|
|
14
16
|
import { renderMath } from '@pie-lib/math-rendering';
|
|
15
17
|
|
|
16
18
|
class Dropdown extends React.Component {
|
|
@@ -23,6 +25,8 @@ class Dropdown extends React.Component {
|
|
|
23
25
|
correct: PropTypes.bool,
|
|
24
26
|
choices: PropTypes.arrayOf(PropTypes.shape({ value: PropTypes.string, label: PropTypes.string })),
|
|
25
27
|
showCorrectAnswer: PropTypes.bool,
|
|
28
|
+
singleQuery: PropTypes.bool,
|
|
29
|
+
correctValue: PropTypes.string,
|
|
26
30
|
};
|
|
27
31
|
|
|
28
32
|
constructor(props) {
|
|
@@ -31,27 +35,73 @@ class Dropdown extends React.Component {
|
|
|
31
35
|
this.state = {
|
|
32
36
|
anchorEl: null,
|
|
33
37
|
highlightedOptionId: null,
|
|
38
|
+
menuWidth: null,
|
|
39
|
+
previewValue: null,
|
|
34
40
|
};
|
|
35
|
-
|
|
41
|
+
this.hiddenRef = React.createRef();
|
|
42
|
+
this.buttonRef = React.createRef();
|
|
43
|
+
this.previewRef = React.createRef();
|
|
36
44
|
this.elementRefs = [];
|
|
37
45
|
}
|
|
38
46
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
47
|
+
componentDidMount() {
|
|
48
|
+
// measure hidden menu width once
|
|
49
|
+
if (this.hiddenRef.current && this.state.menuWidth === null) {
|
|
50
|
+
this.setState({ menuWidth: this.hiddenRef.current.clientWidth });
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
componentDidUpdate(prevProps, prevState) {
|
|
55
|
+
const hiddenEl = this.hiddenRef.current;
|
|
56
|
+
|
|
57
|
+
const dropdownJustOpened = !prevState.anchorEl && this.state.anchorEl;
|
|
58
|
+
if (dropdownJustOpened) {
|
|
59
|
+
this.elementRefs.forEach((ref) => {
|
|
60
|
+
if (!ref) return;
|
|
61
|
+
|
|
62
|
+
const containsLatex = ref.querySelector('[data-latex], [data-raw]');
|
|
63
|
+
const hasMathJax = ref.querySelector('mjx-container');
|
|
64
|
+
const mathHandled = ref.querySelector('[data-math-handled="true"]');
|
|
65
|
+
|
|
66
|
+
if (containsLatex && (!mathHandled || !hasMathJax)) {
|
|
67
|
+
renderMath(ref);
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
if (hiddenEl) {
|
|
73
|
+
const newWidth = hiddenEl.clientWidth;
|
|
74
|
+
if (newWidth !== this.state.menuWidth) {
|
|
75
|
+
this.elementRefs.forEach((ref) => {
|
|
76
|
+
if (ref) renderMath(ref);
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
renderMath(hiddenEl);
|
|
80
|
+
this.setState({ menuWidth: newWidth });
|
|
43
81
|
}
|
|
44
|
-
}
|
|
82
|
+
}
|
|
45
83
|
}
|
|
46
84
|
|
|
47
85
|
handleClick = (event) => this.setState({ anchorEl: event.currentTarget });
|
|
48
86
|
|
|
49
|
-
handleClose = () =>
|
|
87
|
+
handleClose = () => {
|
|
88
|
+
const { value } = this.props;
|
|
89
|
+
this.setState({ anchorEl: null, previewValue: null, highlightedOptionId: null });
|
|
90
|
+
// clear displayed preview if no selection
|
|
91
|
+
if (!value && this.previewRef.current) {
|
|
92
|
+
this.previewRef.current.innerHTML = '';
|
|
93
|
+
}
|
|
94
|
+
};
|
|
50
95
|
|
|
51
96
|
handleHighlight = (index) => {
|
|
52
97
|
const highlightedOptionId = `dropdown-option-${this.props.id}-${index}`;
|
|
53
98
|
|
|
54
|
-
|
|
99
|
+
// preview on hover if nothing selected
|
|
100
|
+
const stateUpdate = { highlightedOptionId };
|
|
101
|
+
if (!this.props.value) {
|
|
102
|
+
stateUpdate.previewValue = this.props.choices[index].value;
|
|
103
|
+
}
|
|
104
|
+
this.setState(stateUpdate);
|
|
55
105
|
};
|
|
56
106
|
|
|
57
107
|
handleSelect = (value, index) => {
|
|
@@ -60,6 +110,25 @@ class Dropdown extends React.Component {
|
|
|
60
110
|
this.handleClose();
|
|
61
111
|
};
|
|
62
112
|
|
|
113
|
+
handleHover = (index) => {
|
|
114
|
+
const selectedValue = this.props.value;
|
|
115
|
+
|
|
116
|
+
if (selectedValue) return;
|
|
117
|
+
|
|
118
|
+
const highlightedOptionId = `dropdown-option-${this.props.id}-${index}`;
|
|
119
|
+
const previewValue = this.state.previewValue;
|
|
120
|
+
|
|
121
|
+
this.setState({ highlightedOptionId, previewValue }, () => {
|
|
122
|
+
// On hover, preview the math-rendered content inside the button if no value is selected.
|
|
123
|
+
const ref = this.elementRefs[index];
|
|
124
|
+
const preview = this.previewRef.current;
|
|
125
|
+
|
|
126
|
+
if (ref && preview) {
|
|
127
|
+
preview.innerHTML = ref.innerHTML;
|
|
128
|
+
}
|
|
129
|
+
});
|
|
130
|
+
};
|
|
131
|
+
|
|
63
132
|
getLabel(choices, value) {
|
|
64
133
|
const found = (choices || []).find((choice) => choice.value === value);
|
|
65
134
|
|
|
@@ -68,7 +137,6 @@ class Dropdown extends React.Component {
|
|
|
68
137
|
|
|
69
138
|
render() {
|
|
70
139
|
const { classes, id, correct, disabled, value, choices, showCorrectAnswer, singleQuery, correctValue } = this.props;
|
|
71
|
-
|
|
72
140
|
const { anchorEl } = this.state;
|
|
73
141
|
const open = Boolean(anchorEl);
|
|
74
142
|
const buttonId = `dropdown-button-${id}`;
|
|
@@ -90,7 +158,6 @@ class Dropdown extends React.Component {
|
|
|
90
158
|
const labelText = singleQuery ? 'Query' : `Query ${incrementedId}`;
|
|
91
159
|
|
|
92
160
|
// Changed from Select to Button for dropdown to enhance accessibility. This modification offers explicit control over aria attributes and focuses management, ensuring the dropdown is compliant with accessibility standards. The use of Button and Menu components allows for better handling of keyboard interactions and provides accessible labels and menus, aligning with WCAG guidelines and improving usability for assistive technology users.
|
|
93
|
-
|
|
94
161
|
let correctnessIcon = null;
|
|
95
162
|
if (disabled && correct !== undefined) {
|
|
96
163
|
correctnessIcon =
|
|
@@ -103,10 +170,23 @@ class Dropdown extends React.Component {
|
|
|
103
170
|
|
|
104
171
|
return (
|
|
105
172
|
<>
|
|
173
|
+
<div ref={this.hiddenRef} style={{ position: 'absolute', visibility: 'hidden', top: 0, left: 0 }}>
|
|
174
|
+
{(choices || []).map((c, index) => (
|
|
175
|
+
<MenuItem key={index} classes={{ root: classes.menuRoot, selected: classes.selected }}>
|
|
176
|
+
<span className={classes.label} dangerouslySetInnerHTML={{ __html: c.label }} />
|
|
177
|
+
</MenuItem>
|
|
178
|
+
))}
|
|
179
|
+
</div>
|
|
106
180
|
<InputLabel className={classes.srOnly} id={labelId}>
|
|
107
181
|
{labelText}
|
|
108
182
|
</InputLabel>
|
|
109
183
|
<Button
|
|
184
|
+
ref={this.buttonRef}
|
|
185
|
+
style={{
|
|
186
|
+
...(this.state.menuWidth && { minWidth: `calc(${this.state.menuWidth}px + 8px)` }),
|
|
187
|
+
borderWidth: open ? '2px' : '1px',
|
|
188
|
+
transition: 'border-width 0.2s ease-in-out',
|
|
189
|
+
}}
|
|
110
190
|
aria-controls={open ? menuId : undefined}
|
|
111
191
|
aria-haspopup="listbox"
|
|
112
192
|
aria-expanded={open ? 'true' : undefined}
|
|
@@ -125,12 +205,17 @@ class Dropdown extends React.Component {
|
|
|
125
205
|
{correctnessIcon}
|
|
126
206
|
<span
|
|
127
207
|
id={valueDisplayId}
|
|
208
|
+
ref={this.previewRef}
|
|
128
209
|
className={classes.label}
|
|
129
210
|
dangerouslySetInnerHTML={{
|
|
130
|
-
__html: correctValue
|
|
211
|
+
__html: correctValue
|
|
212
|
+
? correctValue
|
|
213
|
+
: open && this.state.previewValue
|
|
214
|
+
? this.getLabel(choices, this.state.previewValue)
|
|
215
|
+
: this.getLabel(choices, value) || '',
|
|
131
216
|
}}
|
|
132
217
|
/>
|
|
133
|
-
<ArrowDropDownIcon />
|
|
218
|
+
{open ? <ArrowDropUpIcon /> : <ArrowDropDownIcon />}
|
|
134
219
|
</Button>
|
|
135
220
|
<Menu
|
|
136
221
|
id={menuId}
|
|
@@ -139,9 +224,14 @@ class Dropdown extends React.Component {
|
|
|
139
224
|
keepMounted
|
|
140
225
|
open={open}
|
|
141
226
|
onClose={this.handleClose}
|
|
227
|
+
getContentAnchorEl={null}
|
|
228
|
+
anchorOrigin={{ vertical: 'bottom', horizontal: 'left' }}
|
|
229
|
+
transformOrigin={{ vertical: 'top', horizontal: 'left' }}
|
|
230
|
+
PaperProps={this.state.menuWidth ? { style: { minWidth: this.state.menuWidth, padding: '4px' } } : undefined}
|
|
142
231
|
MenuListProps={{
|
|
143
232
|
'aria-labelledby': buttonId,
|
|
144
233
|
role: 'listbox',
|
|
234
|
+
disablePadding: true,
|
|
145
235
|
}}
|
|
146
236
|
>
|
|
147
237
|
{(choices || []).map((c, index) => {
|
|
@@ -156,6 +246,7 @@ class Dropdown extends React.Component {
|
|
|
156
246
|
onClick={() => this.handleSelect(c.value, index)}
|
|
157
247
|
role="option"
|
|
158
248
|
aria-selected={this.state.highlightedOptionId === optionId ? 'true' : undefined}
|
|
249
|
+
onMouseOver={() => this.handleHover(index)}
|
|
159
250
|
>
|
|
160
251
|
<span
|
|
161
252
|
ref={(ref) => (this.elementRefs[index] = ref)}
|
|
@@ -163,7 +254,7 @@ class Dropdown extends React.Component {
|
|
|
163
254
|
dangerouslySetInnerHTML={{ __html: c.label }}
|
|
164
255
|
/>
|
|
165
256
|
<span
|
|
166
|
-
className={classes.
|
|
257
|
+
className={classes.selectedIndicator}
|
|
167
258
|
dangerouslySetInnerHTML={{ __html: c.value === value ? ' ✓' : '' }}
|
|
168
259
|
/>
|
|
169
260
|
</MenuItem>
|
|
@@ -178,7 +269,7 @@ class Dropdown extends React.Component {
|
|
|
178
269
|
const styles = () => ({
|
|
179
270
|
root: {
|
|
180
271
|
color: color.text(),
|
|
181
|
-
border: `1px solid ${color.
|
|
272
|
+
border: `1px solid ${color.borderGray()}`,
|
|
182
273
|
borderRadius: '4px',
|
|
183
274
|
justifyContent: 'space-between',
|
|
184
275
|
backgroundColor: color.background(),
|
|
@@ -220,13 +311,17 @@ const styles = () => ({
|
|
|
220
311
|
border: `1px solid ${color.text()}`,
|
|
221
312
|
borderColor: 'initial',
|
|
222
313
|
},
|
|
314
|
+
// remove default padding on the inner list
|
|
315
|
+
'& .MuiList-root': {
|
|
316
|
+
padding: 0,
|
|
317
|
+
},
|
|
223
318
|
},
|
|
224
319
|
selected: {
|
|
225
320
|
color: `${color.text()} !important`,
|
|
226
321
|
backgroundColor: `${color.background()} !important`,
|
|
227
322
|
'&:hover': {
|
|
228
323
|
color: color.text(),
|
|
229
|
-
backgroundColor: `${color.
|
|
324
|
+
backgroundColor: `${color.dropdownBackground()} !important`,
|
|
230
325
|
},
|
|
231
326
|
},
|
|
232
327
|
menuRoot: {
|
|
@@ -238,20 +333,20 @@ const styles = () => ({
|
|
|
238
333
|
},
|
|
239
334
|
'&:hover': {
|
|
240
335
|
color: color.text(),
|
|
241
|
-
backgroundColor: color.
|
|
336
|
+
backgroundColor: color.dropdownBackground(),
|
|
242
337
|
},
|
|
243
338
|
boxSizing: 'border-box',
|
|
244
339
|
padding: '25px',
|
|
245
|
-
'
|
|
246
|
-
borderRadius: '3px 3px 0 0',
|
|
247
|
-
},
|
|
248
|
-
'&:last-of-type': {
|
|
249
|
-
borderRadius: '0 0 3px 3px',
|
|
250
|
-
},
|
|
340
|
+
borderRadius: '4px',
|
|
251
341
|
},
|
|
252
342
|
label: {
|
|
253
343
|
fontSize: 'max(1rem, 14px)',
|
|
254
344
|
},
|
|
345
|
+
selectedIndicator: {
|
|
346
|
+
fontSize: 'max(1rem, 14px)',
|
|
347
|
+
position: 'absolute',
|
|
348
|
+
right: '10px',
|
|
349
|
+
},
|
|
255
350
|
srOnly: {
|
|
256
351
|
position: 'absolute',
|
|
257
352
|
left: '-10000px',
|
|
@@ -2,7 +2,7 @@ import React from 'react';
|
|
|
2
2
|
import { withStyles } from '@material-ui/core/styles';
|
|
3
3
|
import classnames from 'classnames';
|
|
4
4
|
|
|
5
|
-
import { color } from '
|
|
5
|
+
import { color } from '../../render-ui/src/index';
|
|
6
6
|
import EditableHtml from '@pie-lib/editable-html';
|
|
7
7
|
import { withMask } from './with-mask';
|
|
8
8
|
|
package/src/serialization.js
CHANGED
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
-
|
|
7
|
-
var React = _interopRequireWildcard(require("react"));
|
|
8
|
-
|
|
9
|
-
var _enzyme = require("enzyme");
|
|
10
|
-
|
|
11
|
-
var _dragInTheBlank = _interopRequireDefault(require("../drag-in-the-blank"));
|
|
12
|
-
|
|
13
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
14
|
-
|
|
15
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
16
|
-
|
|
17
|
-
var markup = "<div>\n <img src=\"https://image.shutterstock.com/image-vector/cow-jumped-over-moon-traditional-260nw-1152899330.jpg\"></img>\n <h5>Hey Diddle Diddle <i>by ?</i></h5>\n <p>1: Hey, diddle, diddle,</p>\n <p>2: The cat and the fiddle,</p>\n <p>3: The cow {{0}} over the moon;</p>\n <p>4: The little dog {{1}},</p>\n <p>5: To see such sport,</p>\n <p>6: And the dish ran away with the {{2}}.</p>\n</div>";
|
|
18
|
-
|
|
19
|
-
var choice = function choice(v, id) {
|
|
20
|
-
return {
|
|
21
|
-
value: v,
|
|
22
|
-
id: id
|
|
23
|
-
};
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
describe('DragInTheBlank', function () {
|
|
27
|
-
var defaultProps = {
|
|
28
|
-
disabled: false,
|
|
29
|
-
feedback: {},
|
|
30
|
-
markup: markup,
|
|
31
|
-
choices: [choice('Jumped', '0'), choice('Laughed', '1'), choice('Spoon', '2'), choice('Fork', '3'), choice('Bumped', '4'), choice('Smiled', '5')],
|
|
32
|
-
value: {
|
|
33
|
-
0: undefined
|
|
34
|
-
}
|
|
35
|
-
};
|
|
36
|
-
var wrapper;
|
|
37
|
-
beforeEach(function () {
|
|
38
|
-
wrapper = (0, _enzyme.shallow)( /*#__PURE__*/React.createElement(_dragInTheBlank["default"], defaultProps));
|
|
39
|
-
});
|
|
40
|
-
describe('render', function () {
|
|
41
|
-
it('renders correctly with default props', function () {
|
|
42
|
-
expect(wrapper).toMatchSnapshot();
|
|
43
|
-
});
|
|
44
|
-
it('renders correctly with disabled prop as true', function () {
|
|
45
|
-
wrapper.setProps({
|
|
46
|
-
disabled: true
|
|
47
|
-
});
|
|
48
|
-
expect(wrapper).toMatchSnapshot();
|
|
49
|
-
});
|
|
50
|
-
it('renders correctly with feedback', function () {
|
|
51
|
-
wrapper.setProps({
|
|
52
|
-
feedback: {
|
|
53
|
-
0: {
|
|
54
|
-
value: 'Jumped',
|
|
55
|
-
correct: 'Jumped'
|
|
56
|
-
},
|
|
57
|
-
1: {
|
|
58
|
-
value: 'Laughed',
|
|
59
|
-
correct: 'Laughed'
|
|
60
|
-
},
|
|
61
|
-
2: {
|
|
62
|
-
value: 'Spoon',
|
|
63
|
-
correct: 'Spoon'
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
});
|
|
67
|
-
expect(wrapper).toMatchSnapshot();
|
|
68
|
-
});
|
|
69
|
-
});
|
|
70
|
-
});
|
|
71
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vZHJhZy1pbi10aGUtYmxhbmsudGVzdC5qcyJdLCJuYW1lcyI6WyJtYXJrdXAiLCJjaG9pY2UiLCJ2IiwiaWQiLCJ2YWx1ZSIsImRlc2NyaWJlIiwiZGVmYXVsdFByb3BzIiwiZGlzYWJsZWQiLCJmZWVkYmFjayIsImNob2ljZXMiLCJ1bmRlZmluZWQiLCJ3cmFwcGVyIiwiYmVmb3JlRWFjaCIsIml0IiwiZXhwZWN0IiwidG9NYXRjaFNuYXBzaG90Iiwic2V0UHJvcHMiLCJjb3JyZWN0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7Ozs7O0FBRUEsSUFBTUEsTUFBTSx1WkFBWjs7QUFVQSxJQUFNQyxNQUFNLEdBQUcsU0FBVEEsTUFBUyxDQUFDQyxDQUFELEVBQUlDLEVBQUo7QUFBQSxTQUFZO0FBQUVDLElBQUFBLEtBQUssRUFBRUYsQ0FBVDtBQUFZQyxJQUFBQSxFQUFFLEVBQUZBO0FBQVosR0FBWjtBQUFBLENBQWY7O0FBRUFFLFFBQVEsQ0FBQyxnQkFBRCxFQUFtQixZQUFNO0FBQy9CLE1BQU1DLFlBQVksR0FBRztBQUNuQkMsSUFBQUEsUUFBUSxFQUFFLEtBRFM7QUFFbkJDLElBQUFBLFFBQVEsRUFBRSxFQUZTO0FBR25CUixJQUFBQSxNQUFNLEVBQU5BLE1BSG1CO0FBSW5CUyxJQUFBQSxPQUFPLEVBQUUsQ0FDUFIsTUFBTSxDQUFDLFFBQUQsRUFBVyxHQUFYLENBREMsRUFFUEEsTUFBTSxDQUFDLFNBQUQsRUFBWSxHQUFaLENBRkMsRUFHUEEsTUFBTSxDQUFDLE9BQUQsRUFBVSxHQUFWLENBSEMsRUFJUEEsTUFBTSxDQUFDLE1BQUQsRUFBUyxHQUFULENBSkMsRUFLUEEsTUFBTSxDQUFDLFFBQUQsRUFBVyxHQUFYLENBTEMsRUFNUEEsTUFBTSxDQUFDLFFBQUQsRUFBVyxHQUFYLENBTkMsQ0FKVTtBQWFuQkcsSUFBQUEsS0FBSyxFQUFFO0FBQ0wsU0FBR007QUFERTtBQWJZLEdBQXJCO0FBaUJBLE1BQUlDLE9BQUo7QUFFQUMsRUFBQUEsVUFBVSxDQUFDLFlBQU07QUFDZkQsSUFBQUEsT0FBTyxHQUFHLG1DQUFRLG9CQUFDLDBCQUFELEVBQW9CTCxZQUFwQixDQUFSLENBQVY7QUFDRCxHQUZTLENBQVY7QUFJQUQsRUFBQUEsUUFBUSxDQUFDLFFBQUQsRUFBVyxZQUFNO0FBQ3ZCUSxJQUFBQSxFQUFFLENBQUMsc0NBQUQsRUFBeUMsWUFBTTtBQUMvQ0MsTUFBQUEsTUFBTSxDQUFDSCxPQUFELENBQU4sQ0FBZ0JJLGVBQWhCO0FBQ0QsS0FGQyxDQUFGO0FBSUFGLElBQUFBLEVBQUUsQ0FBQyw4Q0FBRCxFQUFpRCxZQUFNO0FBQ3ZERixNQUFBQSxPQUFPLENBQUNLLFFBQVIsQ0FBaUI7QUFBRVQsUUFBQUEsUUFBUSxFQUFFO0FBQVosT0FBakI7QUFDQU8sTUFBQUEsTUFBTSxDQUFDSCxPQUFELENBQU4sQ0FBZ0JJLGVBQWhCO0FBQ0QsS0FIQyxDQUFGO0FBS0FGLElBQUFBLEVBQUUsQ0FBQyxpQ0FBRCxFQUFvQyxZQUFNO0FBQzFDRixNQUFBQSxPQUFPLENBQUNLLFFBQVIsQ0FBaUI7QUFDZlIsUUFBQUEsUUFBUSxFQUFFO0FBQ1IsYUFBRztBQUNESixZQUFBQSxLQUFLLEVBQUUsUUFETjtBQUVEYSxZQUFBQSxPQUFPLEVBQUU7QUFGUixXQURLO0FBS1IsYUFBRztBQUNEYixZQUFBQSxLQUFLLEVBQUUsU0FETjtBQUVEYSxZQUFBQSxPQUFPLEVBQUU7QUFGUixXQUxLO0FBU1IsYUFBRztBQUNEYixZQUFBQSxLQUFLLEVBQUUsT0FETjtBQUVEYSxZQUFBQSxPQUFPLEVBQUU7QUFGUjtBQVRLO0FBREssT0FBakI7QUFnQkFILE1BQUFBLE1BQU0sQ0FBQ0gsT0FBRCxDQUFOLENBQWdCSSxlQUFoQjtBQUNELEtBbEJDLENBQUY7QUFtQkQsR0E3Qk8sQ0FBUjtBQThCRCxDQXRETyxDQUFSIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgc2hhbGxvdyB9IGZyb20gJ2VuenltZSc7XG5pbXBvcnQgRHJhZ0luVGhlQmxhbmsgZnJvbSAnLi4vZHJhZy1pbi10aGUtYmxhbmsnO1xuXG5jb25zdCBtYXJrdXAgPSBgPGRpdj5cbiAgPGltZyBzcmM9XCJodHRwczovL2ltYWdlLnNodXR0ZXJzdG9jay5jb20vaW1hZ2UtdmVjdG9yL2Nvdy1qdW1wZWQtb3Zlci1tb29uLXRyYWRpdGlvbmFsLTI2MG53LTExNTI4OTkzMzAuanBnXCI+PC9pbWc+XG4gICA8aDU+SGV5IERpZGRsZSBEaWRkbGUgPGk+YnkgPzwvaT48L2g1PlxuIDxwPjE6IEhleSwgZGlkZGxlLCBkaWRkbGUsPC9wPlxuIDxwPjI6IFRoZSBjYXQgYW5kIHRoZSBmaWRkbGUsPC9wPlxuIDxwPjM6IFRoZSBjb3cge3swfX0gb3ZlciB0aGUgbW9vbjs8L3A+XG4gPHA+NDogVGhlIGxpdHRsZSBkb2cge3sxfX0sPC9wPlxuIDxwPjU6IFRvIHNlZSBzdWNoIHNwb3J0LDwvcD5cbiA8cD42OiBBbmQgdGhlIGRpc2ggcmFuIGF3YXkgd2l0aCB0aGUge3syfX0uPC9wPlxuPC9kaXY+YDtcbmNvbnN0IGNob2ljZSA9ICh2LCBpZCkgPT4gKHsgdmFsdWU6IHYsIGlkIH0pO1xuXG5kZXNjcmliZSgnRHJhZ0luVGhlQmxhbmsnLCAoKSA9PiB7XG4gIGNvbnN0IGRlZmF1bHRQcm9wcyA9IHtcbiAgICBkaXNhYmxlZDogZmFsc2UsXG4gICAgZmVlZGJhY2s6IHt9LFxuICAgIG1hcmt1cCxcbiAgICBjaG9pY2VzOiBbXG4gICAgICBjaG9pY2UoJ0p1bXBlZCcsICcwJyksXG4gICAgICBjaG9pY2UoJ0xhdWdoZWQnLCAnMScpLFxuICAgICAgY2hvaWNlKCdTcG9vbicsICcyJyksXG4gICAgICBjaG9pY2UoJ0ZvcmsnLCAnMycpLFxuICAgICAgY2hvaWNlKCdCdW1wZWQnLCAnNCcpLFxuICAgICAgY2hvaWNlKCdTbWlsZWQnLCAnNScpLFxuICAgIF0sXG5cbiAgICB2YWx1ZToge1xuICAgICAgMDogdW5kZWZpbmVkLFxuICAgIH0sXG4gIH07XG4gIGxldCB3cmFwcGVyO1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIHdyYXBwZXIgPSBzaGFsbG93KDxEcmFnSW5UaGVCbGFuayB7Li4uZGVmYXVsdFByb3BzfSAvPik7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdyZW5kZXInLCAoKSA9PiB7XG4gICAgaXQoJ3JlbmRlcnMgY29ycmVjdGx5IHdpdGggZGVmYXVsdCBwcm9wcycsICgpID0+IHtcbiAgICAgIGV4cGVjdCh3cmFwcGVyKS50b01hdGNoU25hcHNob3QoKTtcbiAgICB9KTtcblxuICAgIGl0KCdyZW5kZXJzIGNvcnJlY3RseSB3aXRoIGRpc2FibGVkIHByb3AgYXMgdHJ1ZScsICgpID0+IHtcbiAgICAgIHdyYXBwZXIuc2V0UHJvcHMoeyBkaXNhYmxlZDogdHJ1ZSB9KTtcbiAgICAgIGV4cGVjdCh3cmFwcGVyKS50b01hdGNoU25hcHNob3QoKTtcbiAgICB9KTtcblxuICAgIGl0KCdyZW5kZXJzIGNvcnJlY3RseSB3aXRoIGZlZWRiYWNrJywgKCkgPT4ge1xuICAgICAgd3JhcHBlci5zZXRQcm9wcyh7XG4gICAgICAgIGZlZWRiYWNrOiB7XG4gICAgICAgICAgMDoge1xuICAgICAgICAgICAgdmFsdWU6ICdKdW1wZWQnLFxuICAgICAgICAgICAgY29ycmVjdDogJ0p1bXBlZCcsXG4gICAgICAgICAgfSxcbiAgICAgICAgICAxOiB7XG4gICAgICAgICAgICB2YWx1ZTogJ0xhdWdoZWQnLFxuICAgICAgICAgICAgY29ycmVjdDogJ0xhdWdoZWQnLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgMjoge1xuICAgICAgICAgICAgdmFsdWU6ICdTcG9vbicsXG4gICAgICAgICAgICBjb3JyZWN0OiAnU3Bvb24nLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICAgIGV4cGVjdCh3cmFwcGVyKS50b01hdGNoU25hcHNob3QoKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
-
|
|
7
|
-
var React = _interopRequireWildcard(require("react"));
|
|
8
|
-
|
|
9
|
-
var _componentize = _interopRequireDefault(require("../componentize"));
|
|
10
|
-
|
|
11
|
-
var _serialization = require("../serialization");
|
|
12
|
-
|
|
13
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
14
|
-
|
|
15
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
16
|
-
|
|
17
|
-
describe('index', function () {
|
|
18
|
-
describe('componentize', function () {
|
|
19
|
-
it('should return an array with the appropriate markup', function () {
|
|
20
|
-
var dropDownMarkup = (0, _componentize["default"])('{{0}} foo {{1}}', 'dropdown');
|
|
21
|
-
expect(dropDownMarkup).toEqual({
|
|
22
|
-
markup: '<span data-component="dropdown" data-id="0"></span> foo <span data-component="dropdown" data-id="1"></span>'
|
|
23
|
-
});
|
|
24
|
-
});
|
|
25
|
-
});
|
|
26
|
-
describe('serialization', function () {
|
|
27
|
-
it('should have default node a span', function () {
|
|
28
|
-
expect((0, _serialization.deserialize)('something')).toEqual(expect.objectContaining({
|
|
29
|
-
object: 'value',
|
|
30
|
-
document: {
|
|
31
|
-
object: 'document',
|
|
32
|
-
data: {},
|
|
33
|
-
nodes: [{
|
|
34
|
-
object: 'block',
|
|
35
|
-
data: {},
|
|
36
|
-
isVoid: false,
|
|
37
|
-
type: 'span',
|
|
38
|
-
nodes: [{
|
|
39
|
-
object: 'text',
|
|
40
|
-
leaves: [{
|
|
41
|
-
text: 'something'
|
|
42
|
-
}]
|
|
43
|
-
}]
|
|
44
|
-
}]
|
|
45
|
-
}
|
|
46
|
-
}));
|
|
47
|
-
});
|
|
48
|
-
});
|
|
49
|
-
});
|
|
50
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vaW5kZXgudGVzdC5qcyJdLCJuYW1lcyI6WyJkZXNjcmliZSIsIml0IiwiZHJvcERvd25NYXJrdXAiLCJleHBlY3QiLCJ0b0VxdWFsIiwibWFya3VwIiwib2JqZWN0Q29udGFpbmluZyIsIm9iamVjdCIsImRvY3VtZW50IiwiZGF0YSIsIm5vZGVzIiwiaXNWb2lkIiwidHlwZSIsImxlYXZlcyIsInRleHQiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOztBQUNBOztBQUNBOzs7Ozs7QUFFQUEsUUFBUSxDQUFDLE9BQUQsRUFBVSxZQUFNO0FBQ3RCQSxFQUFBQSxRQUFRLENBQUMsY0FBRCxFQUFpQixZQUFNO0FBQzdCQyxJQUFBQSxFQUFFLENBQUMsb0RBQUQsRUFBdUQsWUFBTTtBQUM3RCxVQUFNQyxjQUFjLEdBQUcsOEJBQWEsaUJBQWIsRUFBZ0MsVUFBaEMsQ0FBdkI7QUFFQUMsTUFBQUEsTUFBTSxDQUFDRCxjQUFELENBQU4sQ0FBdUJFLE9BQXZCLENBQStCO0FBQzdCQyxRQUFBQSxNQUFNLEVBQ0o7QUFGMkIsT0FBL0I7QUFJRCxLQVBDLENBQUY7QUFRRCxHQVRPLENBQVI7QUFXQUwsRUFBQUEsUUFBUSxDQUFDLGVBQUQsRUFBa0IsWUFBTTtBQUM5QkMsSUFBQUEsRUFBRSxDQUFDLGlDQUFELEVBQW9DLFlBQU07QUFDMUNFLE1BQUFBLE1BQU0sQ0FBQyxnQ0FBWSxXQUFaLENBQUQsQ0FBTixDQUFpQ0MsT0FBakMsQ0FDRUQsTUFBTSxDQUFDRyxnQkFBUCxDQUF3QjtBQUN0QkMsUUFBQUEsTUFBTSxFQUFFLE9BRGM7QUFFdEJDLFFBQUFBLFFBQVEsRUFBRTtBQUNSRCxVQUFBQSxNQUFNLEVBQUUsVUFEQTtBQUVSRSxVQUFBQSxJQUFJLEVBQUUsRUFGRTtBQUdSQyxVQUFBQSxLQUFLLEVBQUUsQ0FDTDtBQUNFSCxZQUFBQSxNQUFNLEVBQUUsT0FEVjtBQUVFRSxZQUFBQSxJQUFJLEVBQUUsRUFGUjtBQUdFRSxZQUFBQSxNQUFNLEVBQUUsS0FIVjtBQUlFQyxZQUFBQSxJQUFJLEVBQUUsTUFKUjtBQUtFRixZQUFBQSxLQUFLLEVBQUUsQ0FBQztBQUFFSCxjQUFBQSxNQUFNLEVBQUUsTUFBVjtBQUFrQk0sY0FBQUEsTUFBTSxFQUFFLENBQUM7QUFBRUMsZ0JBQUFBLElBQUksRUFBRTtBQUFSLGVBQUQ7QUFBMUIsYUFBRDtBQUxULFdBREs7QUFIQztBQUZZLE9BQXhCLENBREY7QUFrQkQsS0FuQkMsQ0FBRjtBQW9CRCxHQXJCTyxDQUFSO0FBc0JELENBbENPLENBQVIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgY29tcG9uZW50aXplIGZyb20gJy4uL2NvbXBvbmVudGl6ZSc7XG5pbXBvcnQgeyBkZXNlcmlhbGl6ZSB9IGZyb20gJy4uL3NlcmlhbGl6YXRpb24nO1xuXG5kZXNjcmliZSgnaW5kZXgnLCAoKSA9PiB7XG4gIGRlc2NyaWJlKCdjb21wb25lbnRpemUnLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCByZXR1cm4gYW4gYXJyYXkgd2l0aCB0aGUgYXBwcm9wcmlhdGUgbWFya3VwJywgKCkgPT4ge1xuICAgICAgY29uc3QgZHJvcERvd25NYXJrdXAgPSBjb21wb25lbnRpemUoJ3t7MH19IGZvbyB7ezF9fScsICdkcm9wZG93bicpO1xuXG4gICAgICBleHBlY3QoZHJvcERvd25NYXJrdXApLnRvRXF1YWwoe1xuICAgICAgICBtYXJrdXA6XG4gICAgICAgICAgJzxzcGFuIGRhdGEtY29tcG9uZW50PVwiZHJvcGRvd25cIiBkYXRhLWlkPVwiMFwiPjwvc3Bhbj4gZm9vIDxzcGFuIGRhdGEtY29tcG9uZW50PVwiZHJvcGRvd25cIiBkYXRhLWlkPVwiMVwiPjwvc3Bhbj4nLFxuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdzZXJpYWxpemF0aW9uJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgaGF2ZSBkZWZhdWx0IG5vZGUgYSBzcGFuJywgKCkgPT4ge1xuICAgICAgZXhwZWN0KGRlc2VyaWFsaXplKCdzb21ldGhpbmcnKSkudG9FcXVhbChcbiAgICAgICAgZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICAgIG9iamVjdDogJ3ZhbHVlJyxcbiAgICAgICAgICBkb2N1bWVudDoge1xuICAgICAgICAgICAgb2JqZWN0OiAnZG9jdW1lbnQnLFxuICAgICAgICAgICAgZGF0YToge30sXG4gICAgICAgICAgICBub2RlczogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgb2JqZWN0OiAnYmxvY2snLFxuICAgICAgICAgICAgICAgIGRhdGE6IHt9LFxuICAgICAgICAgICAgICAgIGlzVm9pZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgdHlwZTogJ3NwYW4nLFxuICAgICAgICAgICAgICAgIG5vZGVzOiBbeyBvYmplY3Q6ICd0ZXh0JywgbGVhdmVzOiBbeyB0ZXh0OiAnc29tZXRoaW5nJyB9XSB9XSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
|
|
@@ -1,149 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
-
|
|
7
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
8
|
-
|
|
9
|
-
var React = _interopRequireWildcard(require("react"));
|
|
10
|
-
|
|
11
|
-
var _enzyme = require("enzyme");
|
|
12
|
-
|
|
13
|
-
var _mask = _interopRequireDefault(require("../mask"));
|
|
14
|
-
|
|
15
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
16
|
-
|
|
17
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
18
|
-
|
|
19
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
20
|
-
|
|
21
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
22
|
-
|
|
23
|
-
describe('Mask', function () {
|
|
24
|
-
var renderChildren = jest.fn();
|
|
25
|
-
var onChange = jest.fn();
|
|
26
|
-
var defaultProps = {
|
|
27
|
-
renderChildren: renderChildren,
|
|
28
|
-
onChange: onChange,
|
|
29
|
-
layout: {
|
|
30
|
-
nodes: [{
|
|
31
|
-
object: 'text',
|
|
32
|
-
leaves: [{
|
|
33
|
-
text: 'Foo'
|
|
34
|
-
}]
|
|
35
|
-
}]
|
|
36
|
-
},
|
|
37
|
-
value: {}
|
|
38
|
-
};
|
|
39
|
-
var wrapper;
|
|
40
|
-
beforeEach(function () {
|
|
41
|
-
wrapper = (0, _enzyme.shallow)( /*#__PURE__*/React.createElement(_mask["default"], defaultProps));
|
|
42
|
-
});
|
|
43
|
-
describe('render', function () {
|
|
44
|
-
it('renders correctly with default props', function () {
|
|
45
|
-
expect(wrapper).toMatchSnapshot();
|
|
46
|
-
});
|
|
47
|
-
it('renders correctly a paragraph', function () {
|
|
48
|
-
wrapper.setProps({
|
|
49
|
-
layout: {
|
|
50
|
-
nodes: [{
|
|
51
|
-
type: 'p',
|
|
52
|
-
nodes: [{
|
|
53
|
-
object: 'text',
|
|
54
|
-
leaves: [{
|
|
55
|
-
text: 'Foo'
|
|
56
|
-
}]
|
|
57
|
-
}]
|
|
58
|
-
}]
|
|
59
|
-
}
|
|
60
|
-
});
|
|
61
|
-
expect(wrapper).toMatchSnapshot();
|
|
62
|
-
});
|
|
63
|
-
it('renders correctly a div', function () {
|
|
64
|
-
wrapper.setProps({
|
|
65
|
-
layout: {
|
|
66
|
-
nodes: [{
|
|
67
|
-
type: 'div',
|
|
68
|
-
data: {
|
|
69
|
-
attributes: {}
|
|
70
|
-
},
|
|
71
|
-
nodes: [{
|
|
72
|
-
type: 'p',
|
|
73
|
-
data: {
|
|
74
|
-
attributes: {}
|
|
75
|
-
},
|
|
76
|
-
nodes: [{
|
|
77
|
-
object: 'text',
|
|
78
|
-
leaves: [{
|
|
79
|
-
text: 'Foo'
|
|
80
|
-
}]
|
|
81
|
-
}]
|
|
82
|
-
}]
|
|
83
|
-
}]
|
|
84
|
-
}
|
|
85
|
-
});
|
|
86
|
-
expect(wrapper).toMatchSnapshot();
|
|
87
|
-
});
|
|
88
|
-
it.only('renders correctly a em', function () {
|
|
89
|
-
wrapper.setProps({
|
|
90
|
-
layout: {
|
|
91
|
-
nodes: [{
|
|
92
|
-
leaves: [{
|
|
93
|
-
text: 'Foo '
|
|
94
|
-
}],
|
|
95
|
-
object: 'text'
|
|
96
|
-
}, {
|
|
97
|
-
leaves: [{
|
|
98
|
-
marks: [{
|
|
99
|
-
data: undefined,
|
|
100
|
-
type: 'italic'
|
|
101
|
-
}],
|
|
102
|
-
text: 'x'
|
|
103
|
-
}],
|
|
104
|
-
object: 'text'
|
|
105
|
-
}, {
|
|
106
|
-
leaves: [{
|
|
107
|
-
text: ' bar'
|
|
108
|
-
}],
|
|
109
|
-
object: 'text'
|
|
110
|
-
}],
|
|
111
|
-
object: 'block',
|
|
112
|
-
type: 'div'
|
|
113
|
-
}
|
|
114
|
-
});
|
|
115
|
-
expect(wrapper).toMatchSnapshot();
|
|
116
|
-
});
|
|
117
|
-
|
|
118
|
-
var da = function da() {
|
|
119
|
-
return {
|
|
120
|
-
data: {
|
|
121
|
-
attributes: {}
|
|
122
|
-
}
|
|
123
|
-
};
|
|
124
|
-
};
|
|
125
|
-
|
|
126
|
-
it('renders without space under tbody', function () {
|
|
127
|
-
wrapper.setProps({
|
|
128
|
-
layout: {
|
|
129
|
-
nodes: [_objectSpread(_objectSpread({
|
|
130
|
-
type: 'tbody'
|
|
131
|
-
}, da()), {}, {
|
|
132
|
-
nodes: [{
|
|
133
|
-
object: 'text',
|
|
134
|
-
leaves: [{
|
|
135
|
-
text: ' '
|
|
136
|
-
}]
|
|
137
|
-
}, _objectSpread(_objectSpread({
|
|
138
|
-
type: 'tr'
|
|
139
|
-
}, da()), {}, {
|
|
140
|
-
nodes: []
|
|
141
|
-
})]
|
|
142
|
-
})]
|
|
143
|
-
}
|
|
144
|
-
});
|
|
145
|
-
expect(wrapper).toMatchSnapshot();
|
|
146
|
-
});
|
|
147
|
-
});
|
|
148
|
-
});
|
|
149
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vbWFzay50ZXN0LmpzIl0sIm5hbWVzIjpbImRlc2NyaWJlIiwicmVuZGVyQ2hpbGRyZW4iLCJqZXN0IiwiZm4iLCJvbkNoYW5nZSIsImRlZmF1bHRQcm9wcyIsImxheW91dCIsIm5vZGVzIiwib2JqZWN0IiwibGVhdmVzIiwidGV4dCIsInZhbHVlIiwid3JhcHBlciIsImJlZm9yZUVhY2giLCJpdCIsImV4cGVjdCIsInRvTWF0Y2hTbmFwc2hvdCIsInNldFByb3BzIiwidHlwZSIsImRhdGEiLCJhdHRyaWJ1dGVzIiwib25seSIsIm1hcmtzIiwidW5kZWZpbmVkIiwiZGEiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7Ozs7Ozs7Ozs7QUFFQUEsUUFBUSxDQUFDLE1BQUQsRUFBUyxZQUFNO0FBQ3JCLE1BQU1DLGNBQWMsR0FBR0MsSUFBSSxDQUFDQyxFQUFMLEVBQXZCO0FBQ0EsTUFBTUMsUUFBUSxHQUFHRixJQUFJLENBQUNDLEVBQUwsRUFBakI7QUFDQSxNQUFNRSxZQUFZLEdBQUc7QUFDbkJKLElBQUFBLGNBQWMsRUFBZEEsY0FEbUI7QUFFbkJHLElBQUFBLFFBQVEsRUFBUkEsUUFGbUI7QUFHbkJFLElBQUFBLE1BQU0sRUFBRTtBQUNOQyxNQUFBQSxLQUFLLEVBQUUsQ0FDTDtBQUNFQyxRQUFBQSxNQUFNLEVBQUUsTUFEVjtBQUVFQyxRQUFBQSxNQUFNLEVBQUUsQ0FDTjtBQUNFQyxVQUFBQSxJQUFJLEVBQUU7QUFEUixTQURNO0FBRlYsT0FESztBQURELEtBSFc7QUFlbkJDLElBQUFBLEtBQUssRUFBRTtBQWZZLEdBQXJCO0FBaUJBLE1BQUlDLE9BQUo7QUFFQUMsRUFBQUEsVUFBVSxDQUFDLFlBQU07QUFDZkQsSUFBQUEsT0FBTyxHQUFHLG1DQUFRLG9CQUFDLGdCQUFELEVBQVVQLFlBQVYsQ0FBUixDQUFWO0FBQ0QsR0FGUyxDQUFWO0FBSUFMLEVBQUFBLFFBQVEsQ0FBQyxRQUFELEVBQVcs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RSxDQUFDLG1DQUFELEVBQXNDLFlBQU07QUFDNUNGLE1BQUFBLE9BQU8sQ0FBQ0ssUUFBUixDQUFpQjtBQUNmWCxRQUFBQSxNQUFNLEVBQUU7QUFDTkMsVUFBQUEsS0FBSyxFQUFFO0FBRUhXLFlBQUFBLElBQUksRUFBRTtBQUZILGFBR0FNLEVBQUUsRUFIRjtBQUlIakIsWUFBQUEsS0FBSyxFQUFFLENBQ0w7QUFDRUMsY0FBQUEsTUFBTSxFQUFFLE1BRFY7QUFFRUMsY0FBQUEsTUFBTSxFQUFFLENBQUM7QUFBRUMsZ0JBQUFBLElBQUksRUFBRTtBQUFSLGVBQUQ7QUFGVixhQURLO0FBS0hRLGNBQUFBLElBQUksRUFBRTtBQUxILGVBS1lNLEVBQUUsRUFMZDtBQUtrQmpCLGNBQUFBLEtBQUssRUFBRTtBQUx6QjtBQUpKO0FBREQ7QUFETyxPQUFqQjtBQWlCQVEsTUFBQUEsTUFBTSxDQUFDSCxPQUFELENBQU4sQ0FBZ0JJLGVBQWhCO0FBQ0QsS0FuQkMsQ0FBRjtBQW9CRCxHQXhITyxDQUFSO0FBeUhELENBbkpPLENBQVIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBzaGFsbG93IH0gZnJvbSAnZW56eW1lJztcbmltcG9ydCBNYXNrIGZyb20gJy4uL21hc2snO1xuXG5kZXNjcmliZSgnTWFzaycsICgpID0+IHtcbiAgY29uc3QgcmVuZGVyQ2hpbGRyZW4gPSBqZXN0LmZuKCk7XG4gIGNvbnN0IG9uQ2hhbmdlID0gamVzdC5mbigpO1xuICBjb25zdCBkZWZhdWx0UHJvcHMgPSB7XG4gICAgcmVuZGVyQ2hpbGRyZW4sXG4gICAgb25DaGFuZ2UsXG4gICAgbGF5b3V0OiB7XG4gICAgICBub2RlczogW1xuICAgICAgICB7XG4gICAgICAgICAgb2JqZWN0OiAndGV4dCcsXG4gICAgICAgICAgbGVhdmVzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHRleHQ6ICdGb28nLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIHZhbHVlOiB7fSxcbiAgfTtcbiAgbGV0IHdyYXBwZXI7XG5cbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgd3JhcHBlciA9IHNoYWxsb3coPE1hc2sgey4uLmRlZmF1bHRQcm9wc30gLz4pO1xuICB9KTtcblxuICBkZXNjcmliZSgncmVuZGVyJywgKCkgPT4ge1xuICAgIGl0KCdyZW5kZXJzIGNvcnJlY3RseSB3aXRoIGRlZmF1bHQgcHJvcHMnLCAoKSA9PiB7XG4gICAgICBleHBlY3Qod3JhcHBlcikudG9NYXRjaFNuYXBzaG90KCk7XG4gICAgfSk7XG5cbiAgICBpdCgncmVuZGVycyBjb3JyZWN0bHkgYSBwYXJhZ3JhcGgnLCAoKSA9PiB7XG4gICAgICB3cmFwcGVyLnNldFByb3BzKHtcbiAgICAgICAgbGF5b3V0OiB7XG4gICAgICAgICAgbm9kZXM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdHlwZTogJ3AnLFxuICAgICAgICAgICAgICBub2RlczogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIG9iamVjdDogJ3RleHQnLFxuICAgICAgICAgICAgICAgICAgbGVhdmVzOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICB0ZXh0OiAnRm9vJyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3Qod3JhcHBlcikudG9NYXRjaFNuYXBzaG90KCk7XG4gICAgfSk7XG5cbiAgICBpdCgncmVuZGVycyBjb3JyZWN0bHkgYSBkaXYnLCAoKSA9PiB7XG4gICAgICB3cmFwcGVyLnNldFByb3BzKHtcbiAgICAgICAgbGF5b3V0OiB7XG4gICAgICAgICAgbm9kZXM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdHlwZTogJ2RpdicsXG4gICAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzOiB7fSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgbm9kZXM6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICB0eXBlOiAncCcsXG4gICAgICAgICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXM6IHt9LFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIG5vZGVzOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICBvYmplY3Q6ICd0ZXh0JyxcbiAgICAgICAgICAgICAgICAgICAgICBsZWF2ZXM6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dDogJ0ZvbycsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KHdyYXBwZXIpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICAgIH0pO1xuXG4gICAgaXQub25seSgncmVuZGVycyBjb3JyZWN0bHkgYSBlbScsICgpID0+IHtcbiAgICAgIHdyYXBwZXIuc2V0UHJvcHMoe1xuICAgICAgICBsYXlvdXQ6IHtcbiAgICAgICAgICBub2RlczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBsZWF2ZXM6IFt7IHRleHQ6ICdGb28gJyB9XSxcbiAgICAgICAgICAgICAgb2JqZWN0OiAndGV4dCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBsZWF2ZXM6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBtYXJrczogW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgZGF0YTogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdpdGFsaWMnLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgIHRleHQ6ICd4JyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBvYmplY3Q6ICd0ZXh0JyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGxlYXZlczogW3sgdGV4dDogJyBiYXInIH1dLFxuICAgICAgICAgICAgICBvYmplY3Q6ICd0ZXh0JyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgICBvYmplY3Q6ICdibG9jaycsXG4gICAgICAgICAgdHlwZTogJ2RpdicsXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KHdyYXBwZXIpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICAgIH0pO1xuXG4gICAgY29uc3QgZGEgPSAoKSA9PiAoeyBkYXRhOiB7IGF0dHJpYnV0ZXM6IHt9IH0gfSk7XG4gICAgaXQoJ3JlbmRlcnMgd2l0aG91dCBzcGFjZSB1bmRlciB0Ym9keScsICgpID0+IHtcbiAgICAgIHdyYXBwZXIuc2V0UHJvcHMoe1xuICAgICAgICBsYXlvdXQ6IHtcbiAgICAgICAgICBub2RlczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0eXBlOiAndGJvZHknLFxuICAgICAgICAgICAgICAuLi5kYSgpLFxuICAgICAgICAgICAgICBub2RlczogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIG9iamVjdDogJ3RleHQnLFxuICAgICAgICAgICAgICAgICAgbGVhdmVzOiBbeyB0ZXh0OiAnICcgfV0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7IHR5cGU6ICd0cicsIC4uLmRhKCksIG5vZGVzOiBbXSB9LFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgICBleHBlY3Qod3JhcHBlcikudG9NYXRjaFNuYXBzaG90KCk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
|