@pie-lib/mask-markup 3.1.5 → 3.1.6-beta.10
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 -105
- package/lib/__tests__/drag-in-the-blank.test.js +129 -0
- package/lib/__tests__/index.test.js +39 -0
- package/lib/__tests__/keyboard-coordinates.test.js +449 -0
- package/lib/__tests__/mask.test.js +344 -0
- package/lib/__tests__/serialization.test.js +44 -0
- package/lib/__tests__/utils.js +14 -0
- package/lib/__tests__/with-mask.test.js +110 -0
- package/lib/choices/__tests__/index.test.js +139 -0
- package/lib/choices/choice.js +6 -24
- package/lib/choices/choice.js.map +1 -1
- package/lib/choices/index.js +9 -32
- package/lib/choices/index.js.map +1 -1
- package/lib/components/__tests__/blank.test.js +293 -0
- package/lib/components/__tests__/correct-input.test.js +132 -0
- package/lib/components/__tests__/dropdown.test.js +202 -0
- package/lib/components/__tests__/input.test.js +129 -0
- package/lib/components/blank.js +29 -106
- package/lib/components/blank.js.map +1 -1
- package/lib/components/dropdown.js +9 -6
- package/lib/components/dropdown.js.map +1 -1
- package/lib/drag-in-the-blank.js +30 -139
- package/lib/drag-in-the-blank.js.map +1 -1
- package/lib/keyboard-coordinates.js +1 -1
- package/lib/mask.js +15 -20
- package/lib/mask.js.map +1 -1
- package/package.json +6 -6
- package/src/__tests__/drag-in-the-blank.test.js +2 -147
- package/src/__tests__/mask.test.js +0 -98
- package/src/choices/__tests__/index.test.js +1 -104
- package/src/choices/choice.jsx +3 -16
- package/src/choices/index.jsx +3 -27
- package/src/components/__tests__/blank.test.js +5 -186
- package/src/components/blank.jsx +35 -108
- package/src/components/dropdown.jsx +9 -7
- package/src/drag-in-the-blank.jsx +22 -132
- package/src/mask.jsx +11 -13
- package/LICENSE.md +0 -5
- package/lib/keyboard-coordinates.js.map +0 -1
- package/src/__tests__/keyboard-coordinates.test.js +0 -202
- package/src/keyboard-coordinates.js +0 -147
package/CHANGELOG.md
CHANGED
|
@@ -3,111 +3,6 @@
|
|
|
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
|
-
## [3.1.5](https://github.com/pie-framework/pie-lib/compare/@pie-lib/mask-markup@3.1.4...@pie-lib/mask-markup@3.1.5) (2026-09-22)
|
|
7
|
-
|
|
8
|
-
**Note:** Version bump only for package @pie-lib/mask-markup
|
|
9
|
-
|
|
10
|
-
## [3.1.4](https://github.com/pie-framework/pie-lib/compare/@pie-lib/mask-markup@3.1.3...@pie-lib/mask-markup@3.1.4) (2026-09-16)
|
|
11
|
-
|
|
12
|
-
**Note:** Version bump only for package @pie-lib/mask-markup
|
|
13
|
-
|
|
14
|
-
## [3.1.3](https://github.com/pie-framework/pie-lib/compare/@pie-lib/mask-markup@3.1.2...@pie-lib/mask-markup@3.1.3) (2026-09-09)
|
|
15
|
-
|
|
16
|
-
### Bug Fixes
|
|
17
|
-
|
|
18
|
-
- **mask-markup:** prevent transparent dropdown background PIE-1008 ([225b527](https://github.com/pie-framework/pie-lib/commit/225b5277ebb391b8ca6ccd469d7f06bcc59c2d76))
|
|
19
|
-
|
|
20
|
-
## [3.1.2](https://github.com/pie-framework/pie-lib/compare/@pie-lib/mask-markup@3.1.1...@pie-lib/mask-markup@3.1.2) (2026-09-03)
|
|
21
|
-
|
|
22
|
-
**Note:** Version bump only for package @pie-lib/mask-markup
|
|
23
|
-
|
|
24
|
-
## [3.1.1](https://github.com/pie-framework/pie-lib/compare/@pie-lib/mask-markup@3.1.0...@pie-lib/mask-markup@3.1.1) (2026-09-02)
|
|
25
|
-
|
|
26
|
-
**Note:** Version bump only for package @pie-lib/mask-markup
|
|
27
|
-
|
|
28
|
-
# [3.1.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/mask-markup@3.0.17...@pie-lib/mask-markup@3.1.0) (2026-08-26)
|
|
29
|
-
|
|
30
|
-
### Bug Fixes
|
|
31
|
-
|
|
32
|
-
- **mask-markup:** scope dropdown menu to Paper slot PIE-853 ([c714042](https://github.com/pie-framework/pie-lib/commit/c714042b9c41dc72103fcc9b2a54cf8fe0365555))
|
|
33
|
-
|
|
34
|
-
### Features
|
|
35
|
-
|
|
36
|
-
- **mask-markup:** add additional keyboard navigation (Tab/Shift+Tab placement) PIE-803 and click-to-select/click-to-place functionality PIE-796 for drag-in-the-blank ([e30b166](https://github.com/pie-framework/pie-lib/commit/e30b1667f0cee547ecbd0dcd1d02a969d98afeb4))
|
|
37
|
-
|
|
38
|
-
## [3.0.17](https://github.com/pie-framework/pie-lib/compare/@pie-lib/mask-markup@3.0.16...@pie-lib/mask-markup@3.0.17) (2026-08-22)
|
|
39
|
-
|
|
40
|
-
### Bug Fixes
|
|
41
|
-
|
|
42
|
-
- made sure template field renders all marks [PIE-518] ([ad97d4f](https://github.com/pie-framework/pie-lib/commit/ad97d4ff98821544ca944741643601eeaefbffc5))
|
|
43
|
-
|
|
44
|
-
## [3.0.16](https://github.com/pie-framework/pie-lib/compare/@pie-lib/mask-markup@3.0.15...@pie-lib/mask-markup@3.0.16) (2026-08-21)
|
|
45
|
-
|
|
46
|
-
**Note:** Version bump only for package @pie-lib/mask-markup
|
|
47
|
-
|
|
48
|
-
## [3.0.15](https://github.com/pie-framework/pie-lib/compare/@pie-lib/mask-markup@3.0.14...@pie-lib/mask-markup@3.0.15) (2026-08-18)
|
|
49
|
-
|
|
50
|
-
**Note:** Version bump only for package @pie-lib/mask-markup
|
|
51
|
-
|
|
52
|
-
## [3.0.14](https://github.com/pie-framework/pie-lib/compare/@pie-lib/mask-markup@3.0.13...@pie-lib/mask-markup@3.0.14) (2026-08-13)
|
|
53
|
-
|
|
54
|
-
**Note:** Version bump only for package @pie-lib/mask-markup
|
|
55
|
-
|
|
56
|
-
## [3.0.13](https://github.com/pie-framework/pie-lib/compare/@pie-lib/mask-markup@3.0.12...@pie-lib/mask-markup@3.0.13) (2026-07-31)
|
|
57
|
-
|
|
58
|
-
### Bug Fixes
|
|
59
|
-
|
|
60
|
-
- made sure the numbers near the fraction have the same font size as the fraction [PIE-755] ([1c6d035](https://github.com/pie-framework/pie-lib/commit/1c6d03581470303e750cb14e5edcd08ba2eaf617))
|
|
61
|
-
- **mask-markup:** handle measurment of choices with text and images PIE-679 ([48d9d69](https://github.com/pie-framework/pie-lib/commit/48d9d693ca2fceed6a6213106dbc541e4f29d01d))
|
|
62
|
-
|
|
63
|
-
## [3.0.12](https://github.com/pie-framework/pie-lib/compare/@pie-lib/mask-markup@3.0.11...@pie-lib/mask-markup@3.0.12) (2026-07-08)
|
|
64
|
-
|
|
65
|
-
### Bug Fixes
|
|
66
|
-
|
|
67
|
-
- **mask-markup:** update width and height calculations to include padding and border adjustments PIE-679 ([7142a76](https://github.com/pie-framework/pie-lib/commit/7142a7629da6db7fea621809a38d2cb280bc063f))
|
|
68
|
-
|
|
69
|
-
## [3.0.11](https://github.com/pie-framework/pie-lib/compare/@pie-lib/mask-markup@3.0.10...@pie-lib/mask-markup@3.0.11) (2026-07-01)
|
|
70
|
-
|
|
71
|
-
**Note:** Version bump only for package @pie-lib/mask-markup
|
|
72
|
-
|
|
73
|
-
## [3.0.10](https://github.com/pie-framework/pie-lib/compare/@pie-lib/mask-markup@3.0.9...@pie-lib/mask-markup@3.0.10) (2026-06-25)
|
|
74
|
-
|
|
75
|
-
### Bug Fixes
|
|
76
|
-
|
|
77
|
-
- **blank:** prevent ResizeObserver feedback loops and re-measure dimensions on visibility ([009cf1d](https://github.com/pie-framework/pie-lib/commit/009cf1d56af3f5f436d2f09b33e4d6d0bfad8609))
|
|
78
|
-
|
|
79
|
-
## [3.0.9](https://github.com/pie-framework/pie-lib/compare/@pie-lib/mask-markup@3.0.8...@pie-lib/mask-markup@3.0.9) (2026-06-19)
|
|
80
|
-
|
|
81
|
-
### Bug Fixes
|
|
82
|
-
|
|
83
|
-
- **mask-markup/choice:** add fallback dimensions for dragging state in Choice component PIE-693 ([87b7782](https://github.com/pie-framework/pie-lib/commit/87b77824785bf7485b1b3e986749fc877224d154))
|
|
84
|
-
|
|
85
|
-
## [3.0.8](https://github.com/pie-framework/pie-lib/compare/@pie-lib/mask-markup@3.0.7...@pie-lib/mask-markup@3.0.8) (2026-06-17)
|
|
86
|
-
|
|
87
|
-
**Note:** Version bump only for package @pie-lib/mask-markup
|
|
88
|
-
|
|
89
|
-
## [3.0.7](https://github.com/pie-framework/pie-lib/compare/@pie-lib/mask-markup@3.0.6...@pie-lib/mask-markup@3.0.7) (2026-06-12)
|
|
90
|
-
|
|
91
|
-
### Bug Fixes
|
|
92
|
-
|
|
93
|
-
- correct @emotion/style typo to @emotion/styled in package deps PIE-678 ([d529ac7](https://github.com/pie-framework/pie-lib/commit/d529ac7bc3dfa94d8037688452d4c70c66f2590b))
|
|
94
|
-
|
|
95
|
-
## [3.0.6](https://github.com/pie-framework/pie-lib/compare/@pie-lib/mask-markup@3.0.5...@pie-lib/mask-markup@3.0.6) (2026-06-03)
|
|
96
|
-
|
|
97
|
-
### Bug Fixes
|
|
98
|
-
|
|
99
|
-
- render math when the correct value changes [PIE-600] ([38a0024](https://github.com/pie-framework/pie-lib/commit/38a002426ae495e98c2fd1355f7cb83069a7dcdc))
|
|
100
|
-
|
|
101
|
-
## [3.0.5](https://github.com/pie-framework/pie-lib/compare/@pie-lib/mask-markup@3.0.4...@pie-lib/mask-markup@3.0.5) (2026-06-01)
|
|
102
|
-
|
|
103
|
-
### Bug Fixes
|
|
104
|
-
|
|
105
|
-
- made sure selected item in dropdown is focused first when the menu is opened [PIE-438] ([a1cdc68](https://github.com/pie-framework/pie-lib/commit/a1cdc686deec2991e543393b17b98181b074d324))
|
|
106
|
-
|
|
107
|
-
## [3.0.4](https://github.com/pie-framework/pie-lib/compare/@pie-lib/mask-markup@3.0.3...@pie-lib/mask-markup@3.0.4) (2026-05-21)
|
|
108
|
-
|
|
109
|
-
**Note:** Version bump only for package @pie-lib/mask-markup
|
|
110
|
-
|
|
111
6
|
## [3.0.3](https://github.com/pie-framework/pie-lib/compare/@pie-lib/mask-markup@3.0.2...@pie-lib/mask-markup@3.0.3) (2026-05-15)
|
|
112
7
|
|
|
113
8
|
### Bug Fixes
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
6
|
+
var React = _interopRequireWildcard(require("react"));
|
|
7
|
+
var _react2 = require("@testing-library/react");
|
|
8
|
+
var _dragInTheBlank = _interopRequireDefault(require("../drag-in-the-blank"));
|
|
9
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
10
|
+
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>";
|
|
11
|
+
var choice = function choice(v, id) {
|
|
12
|
+
return {
|
|
13
|
+
value: v,
|
|
14
|
+
id: id
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
// Mock DragProvider and DragDroppablePlaceholder to avoid DndContext requirement
|
|
19
|
+
jest.mock('@pie-lib/drag', function () {
|
|
20
|
+
return {
|
|
21
|
+
DragProvider: function DragProvider(_ref) {
|
|
22
|
+
var children = _ref.children,
|
|
23
|
+
onDragStart = _ref.onDragStart,
|
|
24
|
+
onDragEnd = _ref.onDragEnd;
|
|
25
|
+
// Simple wrapper that doesn't require DndContext
|
|
26
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
27
|
+
"data-testid": "drag-provider"
|
|
28
|
+
}, children);
|
|
29
|
+
},
|
|
30
|
+
DragDroppablePlaceholder: function DragDroppablePlaceholder(_ref2) {
|
|
31
|
+
var children = _ref2.children,
|
|
32
|
+
disabled = _ref2.disabled,
|
|
33
|
+
instanceId = _ref2.instanceId;
|
|
34
|
+
// Simple wrapper that doesn't require useDroppable
|
|
35
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
36
|
+
"data-testid": "drag-droppable-placeholder"
|
|
37
|
+
}, children);
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
// Mock @dnd-kit/core components and hooks used by DragInTheBlank and child components
|
|
43
|
+
jest.mock('@dnd-kit/core', function () {
|
|
44
|
+
return {
|
|
45
|
+
DragOverlay: function DragOverlay(_ref3) {
|
|
46
|
+
var children = _ref3.children;
|
|
47
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
48
|
+
"data-testid": "drag-overlay"
|
|
49
|
+
}, children);
|
|
50
|
+
},
|
|
51
|
+
closestCenter: jest.fn(),
|
|
52
|
+
useDraggable: jest.fn(function () {
|
|
53
|
+
return {
|
|
54
|
+
attributes: {},
|
|
55
|
+
listeners: {},
|
|
56
|
+
setNodeRef: jest.fn(),
|
|
57
|
+
transform: null,
|
|
58
|
+
isDragging: false
|
|
59
|
+
};
|
|
60
|
+
}),
|
|
61
|
+
useDroppable: jest.fn(function () {
|
|
62
|
+
return {
|
|
63
|
+
setNodeRef: jest.fn(),
|
|
64
|
+
isOver: false,
|
|
65
|
+
active: null
|
|
66
|
+
};
|
|
67
|
+
})
|
|
68
|
+
};
|
|
69
|
+
});
|
|
70
|
+
jest.mock('@dnd-kit/utilities', function () {
|
|
71
|
+
return {
|
|
72
|
+
CSS: {
|
|
73
|
+
Translate: {
|
|
74
|
+
toString: jest.fn(function () {
|
|
75
|
+
return 'translate3d(0, 0, 0)';
|
|
76
|
+
})
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
});
|
|
81
|
+
describe('DragInTheBlank', function () {
|
|
82
|
+
var defaultProps = {
|
|
83
|
+
disabled: false,
|
|
84
|
+
feedback: {},
|
|
85
|
+
markup: markup,
|
|
86
|
+
choices: [choice('Jumped', '0'), choice('Laughed', '1'), choice('Spoon', '2'), choice('Fork', '3'), choice('Bumped', '4'), choice('Smiled', '5')],
|
|
87
|
+
value: {
|
|
88
|
+
0: undefined
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
describe('render', function () {
|
|
92
|
+
it('renders correctly with default props', function () {
|
|
93
|
+
var _render = (0, _react2.render)(/*#__PURE__*/React.createElement(_dragInTheBlank["default"], defaultProps)),
|
|
94
|
+
container = _render.container;
|
|
95
|
+
expect(container.firstChild).toBeInTheDocument();
|
|
96
|
+
// Check that markup content is rendered
|
|
97
|
+
expect(_react2.screen.getByText(/Hey Diddle Diddle/)).toBeInTheDocument();
|
|
98
|
+
expect(_react2.screen.getByText(/Hey, diddle, diddle,/)).toBeInTheDocument();
|
|
99
|
+
});
|
|
100
|
+
it('renders correctly with disabled prop as true', function () {
|
|
101
|
+
var _render2 = (0, _react2.render)(/*#__PURE__*/React.createElement(_dragInTheBlank["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
102
|
+
disabled: true
|
|
103
|
+
}))),
|
|
104
|
+
container = _render2.container;
|
|
105
|
+
expect(container.firstChild).toBeInTheDocument();
|
|
106
|
+
});
|
|
107
|
+
it('renders correctly with feedback', function () {
|
|
108
|
+
var _render3 = (0, _react2.render)(/*#__PURE__*/React.createElement(_dragInTheBlank["default"], (0, _extends2["default"])({}, defaultProps, {
|
|
109
|
+
feedback: {
|
|
110
|
+
0: {
|
|
111
|
+
value: 'Jumped',
|
|
112
|
+
correct: 'Jumped'
|
|
113
|
+
},
|
|
114
|
+
1: {
|
|
115
|
+
value: 'Laughed',
|
|
116
|
+
correct: 'Laughed'
|
|
117
|
+
},
|
|
118
|
+
2: {
|
|
119
|
+
value: 'Spoon',
|
|
120
|
+
correct: 'Spoon'
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}))),
|
|
124
|
+
container = _render3.container;
|
|
125
|
+
expect(container.firstChild).toBeInTheDocument();
|
|
126
|
+
});
|
|
127
|
+
});
|
|
128
|
+
});
|
|
129
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwicmVxdWlyZSIsIl9yZWFjdDIiLCJfZHJhZ0luVGhlQmxhbmsiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiZSIsInQiLCJXZWFrTWFwIiwiciIsIm4iLCJfX2VzTW9kdWxlIiwibyIsImkiLCJmIiwiX19wcm90b19fIiwiX3R5cGVvZiIsImhhcyIsImdldCIsInNldCIsIl90IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJtYXJrdXAiLCJjaG9pY2UiLCJ2IiwiaWQiLCJ2YWx1ZSIsImplc3QiLCJtb2NrIiwiRHJhZ1Byb3ZpZGVyIiwiX3JlZiIsImNoaWxkcmVuIiwib25EcmFnU3RhcnQiLCJvbkRyYWdFbmQiLCJjcmVhdGVFbGVtZW50IiwiRHJhZ0Ryb3BwYWJsZVBsYWNlaG9sZGVyIiwiX3JlZjIiLCJkaXNhYmxlZCIsImluc3RhbmNlSWQiLCJEcmFnT3ZlcmxheSIsIl9yZWYzIiwiY2xvc2VzdENlbnRlciIsImZuIiwidXNlRHJhZ2dhYmxlIiwiYXR0cmlidXRlcyIsImxpc3RlbmVycyIsInNldE5vZGVSZWYiLCJ0cmFuc2Zvcm0iLCJpc0RyYWdnaW5nIiwidXNlRHJvcHBhYmxlIiwiaXNPdmVyIiwiYWN0aXZlIiwiQ1NTIiwiVHJhbnNsYXRlIiwidG9TdHJpbmciLCJkZXNjcmliZSIsImRlZmF1bHRQcm9wcyIsImZlZWRiYWNrIiwiY2hvaWNlcyIsInVuZGVmaW5lZCIsIml0IiwiX3JlbmRlciIsInJlbmRlciIsImNvbnRhaW5lciIsImV4cGVjdCIsImZpcnN0Q2hpbGQiLCJ0b0JlSW5UaGVEb2N1bWVudCIsInNjcmVlbiIsImdldEJ5VGV4dCIsIl9yZW5kZXIyIiwiX2V4dGVuZHMyIiwiX3JlbmRlcjMiLCJjb3JyZWN0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL19fdGVzdHNfXy9kcmFnLWluLXRoZS1ibGFuay50ZXN0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHJlbmRlciwgc2NyZWVuIH0gZnJvbSAnQHRlc3RpbmctbGlicmFyeS9yZWFjdCc7XG5pbXBvcnQgRHJhZ0luVGhlQmxhbmsgZnJvbSAnLi4vZHJhZy1pbi10aGUtYmxhbmsnO1xuXG5jb25zdCBtYXJrdXAgPSBgPGRpdj5cbiAgPGltZyBzcmM9XCJodHRwczovL2ltYWdlLnNodXR0ZXJzdG9jay5jb20vaW1hZ2UtdmVjdG9yL2Nvdy1qdW1wZWQtb3Zlci1tb29uLXRyYWRpdGlvbmFsLTI2MG53LTExNTI4OTkzMzAuanBnXCI+PC9pbWc+XG4gICA8aDU+SGV5IERpZGRsZSBEaWRkbGUgPGk+YnkgPzwvaT48L2g1PlxuIDxwPjE6IEhleSwgZGlkZGxlLCBkaWRkbGUsPC9wPlxuIDxwPjI6IFRoZSBjYXQgYW5kIHRoZSBmaWRkbGUsPC9wPlxuIDxwPjM6IFRoZSBjb3cge3swfX0gb3ZlciB0aGUgbW9vbjs8L3A+XG4gPHA+NDogVGhlIGxpdHRsZSBkb2cge3sxfX0sPC9wPlxuIDxwPjU6IFRvIHNlZSBzdWNoIHNwb3J0LDwvcD5cbiA8cD42OiBBbmQgdGhlIGRpc2ggcmFuIGF3YXkgd2l0aCB0aGUge3syfX0uPC9wPlxuPC9kaXY+YDtcbmNvbnN0IGNob2ljZSA9ICh2LCBpZCkgPT4gKHsgdmFsdWU6IHYsIGlkIH0pO1xuXG4vLyBNb2NrIERyYWdQcm92aWRlciBhbmQgRHJhZ0Ryb3BwYWJsZVBsYWNlaG9sZGVyIHRvIGF2b2lkIERuZENvbnRleHQgcmVxdWlyZW1lbnRcbmplc3QubW9jaygnQHBpZS1saWIvZHJhZycsICgpID0+ICh7XG4gIERyYWdQcm92aWRlcjogKHsgY2hpbGRyZW4sIG9uRHJhZ1N0YXJ0LCBvbkRyYWdFbmQgfSkgPT4ge1xuICAgIC8vIFNpbXBsZSB3cmFwcGVyIHRoYXQgZG9lc24ndCByZXF1aXJlIERuZENvbnRleHRcbiAgICByZXR1cm4gPGRpdiBkYXRhLXRlc3RpZD1cImRyYWctcHJvdmlkZXJcIj57Y2hpbGRyZW59PC9kaXY+O1xuICB9LFxuICBEcmFnRHJvcHBhYmxlUGxhY2Vob2xkZXI6ICh7IGNoaWxkcmVuLCBkaXNhYmxlZCwgaW5zdGFuY2VJZCB9KSA9PiB7XG4gICAgLy8gU2ltcGxlIHdyYXBwZXIgdGhhdCBkb2Vzbid0IHJlcXVpcmUgdXNlRHJvcHBhYmxlXG4gICAgcmV0dXJuIDxkaXYgZGF0YS10ZXN0aWQ9XCJkcmFnLWRyb3BwYWJsZS1wbGFjZWhvbGRlclwiPntjaGlsZHJlbn08L2Rpdj47XG4gIH0sXG59KSk7XG5cbi8vIE1vY2sgQGRuZC1raXQvY29yZSBjb21wb25lbnRzIGFuZCBob29rcyB1c2VkIGJ5IERyYWdJblRoZUJsYW5rIGFuZCBjaGlsZCBjb21wb25lbnRzXG5qZXN0Lm1vY2soJ0BkbmQta2l0L2NvcmUnLCAoKSA9PiAoe1xuICBEcmFnT3ZlcmxheTogKHsgY2hpbGRyZW4gfSkgPT4gPGRpdiBkYXRhLXRlc3RpZD1cImRyYWctb3ZlcmxheVwiPntjaGlsZHJlbn08L2Rpdj4sXG4gIGNsb3Nlc3RDZW50ZXI6IGplc3QuZm4oKSxcbiAgdXNlRHJhZ2dhYmxlOiBqZXN0LmZuKCgpID0+ICh7XG4gICAgYXR0cmlidXRlczoge30sXG4gICAgbGlzdGVuZXJzOiB7fSxcbiAgICBzZXROb2RlUmVmOiBqZXN0LmZuKCksXG4gICAgdHJhbnNmb3JtOiBudWxsLFxuICAgIGlzRHJhZ2dpbmc6IGZhbHNlLFxuICB9KSksXG4gIHVzZURyb3BwYWJsZTogamVzdC5mbigoKSA9PiAoe1xuICAgIHNldE5vZGVSZWY6IGplc3QuZm4oKSxcbiAgICBpc092ZXI6IGZhbHNlLFxuICAgIGFjdGl2ZTogbnVsbCxcbiAgfSkpLFxufSkpO1xuXG5qZXN0Lm1vY2soJ0BkbmQta2l0L3V0aWxpdGllcycsICgpID0+ICh7XG4gIENTUzoge1xuICAgIFRyYW5zbGF0ZToge1xuICAgICAgdG9TdHJpbmc6IGplc3QuZm4oKCkgPT4gJ3RyYW5zbGF0ZTNkKDAsIDAsIDApJyksXG4gICAgfSxcbiAgfSxcbn0pKTtcblxuZGVzY3JpYmUoJ0RyYWdJblRoZUJsYW5rJywgKCkgPT4ge1xuICBjb25zdCBkZWZhdWx0UHJvcHMgPSB7XG4gICAgZGlzYWJsZWQ6IGZhbHNlLFxuICAgIGZlZWRiYWNrOiB7fSxcbiAgICBtYXJrdXAsXG4gICAgY2hvaWNlczogW1xuICAgICAgY2hvaWNlKCdKdW1wZWQnLCAnMCcpLFxuICAgICAgY2hvaWNlKCdMYXVnaGVkJywgJzEnKSxcbiAgICAgIGNob2ljZSgnU3Bvb24nLCAnMicpLFxuICAgICAgY2hvaWNlKCdGb3JrJywgJzMnKSxcbiAgICAgIGNob2ljZSgnQnVtcGVkJywgJzQnKSxcbiAgICAgIGNob2ljZSgnU21pbGVkJywgJzUnKSxcbiAgICBdLFxuXG4gICAgdmFsdWU6IHtcbiAgICAgIDA6IHVuZGVmaW5lZCxcbiAgICB9LFxuICB9O1xuXG4gIGRlc2NyaWJlKCdyZW5kZXInLCAoKSA9PiB7XG4gICAgaXQoJ3JlbmRlcnMgY29ycmVjdGx5IHdpdGggZGVmYXVsdCBwcm9wcycsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPERyYWdJblRoZUJsYW5rIHsuLi5kZWZhdWx0UHJvcHN9IC8+KTtcbiAgICAgIGV4cGVjdChjb250YWluZXIuZmlyc3RDaGlsZCkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICAgIC8vIENoZWNrIHRoYXQgbWFya3VwIGNvbnRlbnQgaXMgcmVuZGVyZWRcbiAgICAgIGV4cGVjdChzY3JlZW4uZ2V0QnlUZXh0KC9IZXkgRGlkZGxlIERpZGRsZS8pKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgICAgZXhwZWN0KHNjcmVlbi5nZXRCeVRleHQoL0hleSwgZGlkZGxlLCBkaWRkbGUsLykpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG5cbiAgICBpdCgncmVuZGVycyBjb3JyZWN0bHkgd2l0aCBkaXNhYmxlZCBwcm9wIGFzIHRydWUnLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyKDxEcmFnSW5UaGVCbGFuayB7Li4uZGVmYXVsdFByb3BzfSBkaXNhYmxlZD17dHJ1ZX0gLz4pO1xuICAgICAgZXhwZWN0KGNvbnRhaW5lci5maXJzdENoaWxkKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3JlbmRlcnMgY29ycmVjdGx5IHdpdGggZmVlZGJhY2snLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyKFxuICAgICAgICA8RHJhZ0luVGhlQmxhbmtcbiAgICAgICAgICB7Li4uZGVmYXVsdFByb3BzfVxuICAgICAgICAgIGZlZWRiYWNrPXt7XG4gICAgICAgICAgICAwOiB7XG4gICAgICAgICAgICAgIHZhbHVlOiAnSnVtcGVkJyxcbiAgICAgICAgICAgICAgY29ycmVjdDogJ0p1bXBlZCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgMToge1xuICAgICAgICAgICAgICB2YWx1ZTogJ0xhdWdoZWQnLFxuICAgICAgICAgICAgICBjb3JyZWN0OiAnTGF1Z2hlZCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgMjoge1xuICAgICAgICAgICAgICB2YWx1ZTogJ1Nwb29uJyxcbiAgICAgICAgICAgICAgY29ycmVjdDogJ1Nwb29uJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfX1cbiAgICAgICAgLz4sXG4gICAgICApO1xuICAgICAgZXhwZWN0KGNvbnRhaW5lci5maXJzdENoaWxkKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl0sIm1hcHBpbmdzIjoiOzs7OztBQUFBLElBQUFBLEtBQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE9BQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLGVBQUEsR0FBQUMsc0JBQUEsQ0FBQUgsT0FBQTtBQUFrRCxTQUFBRCx3QkFBQUssQ0FBQSxFQUFB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
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _componentize = _interopRequireDefault(require("../componentize"));
|
|
5
|
+
var _serialization = require("../serialization");
|
|
6
|
+
describe('index', function () {
|
|
7
|
+
describe('componentize', function () {
|
|
8
|
+
it('should return an array with the appropriate markup', function () {
|
|
9
|
+
var dropDownMarkup = (0, _componentize["default"])('{{0}} foo {{1}}', 'dropdown');
|
|
10
|
+
expect(dropDownMarkup).toEqual({
|
|
11
|
+
markup: '<span data-component="dropdown" data-id="0"></span> foo <span data-component="dropdown" data-id="1"></span>'
|
|
12
|
+
});
|
|
13
|
+
});
|
|
14
|
+
});
|
|
15
|
+
describe('serialization', function () {
|
|
16
|
+
it('should have default node a span', function () {
|
|
17
|
+
expect((0, _serialization.deserialize)('something')).toEqual(expect.objectContaining({
|
|
18
|
+
object: 'value',
|
|
19
|
+
document: {
|
|
20
|
+
object: 'document',
|
|
21
|
+
data: {},
|
|
22
|
+
nodes: [{
|
|
23
|
+
object: 'block',
|
|
24
|
+
data: {},
|
|
25
|
+
isVoid: false,
|
|
26
|
+
type: 'span',
|
|
27
|
+
nodes: [{
|
|
28
|
+
object: 'text',
|
|
29
|
+
leaves: [{
|
|
30
|
+
text: 'something'
|
|
31
|
+
}]
|
|
32
|
+
}]
|
|
33
|
+
}]
|
|
34
|
+
}
|
|
35
|
+
}));
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29tcG9uZW50aXplIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfc2VyaWFsaXphdGlvbiIsImRlc2NyaWJlIiwiaXQiLCJkcm9wRG93bk1hcmt1cCIsImNvbXBvbmVudGl6ZSIsImV4cGVjdCIsInRvRXF1YWwiLCJtYXJrdXAiLCJkZXNlcmlhbGl6ZSIsIm9iamVjdENvbnRhaW5pbmciLCJvYmplY3QiLCJkb2N1bWVudCIsImRhdGEiLCJub2RlcyIsImlzVm9pZCIsInR5cGUiLCJsZWF2ZXMiLCJ0ZXh0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL19fdGVzdHNfXy9pbmRleC50ZXN0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjb21wb25lbnRpemUgZnJvbSAnLi4vY29tcG9uZW50aXplJztcbmltcG9ydCB7IGRlc2VyaWFsaXplIH0gZnJvbSAnLi4vc2VyaWFsaXphdGlvbic7XG5cbmRlc2NyaWJlKCdpbmRleCcsICgpID0+IHtcbiAgZGVzY3JpYmUoJ2NvbXBvbmVudGl6ZScsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIHJldHVybiBhbiBhcnJheSB3aXRoIHRoZSBhcHByb3ByaWF0ZSBtYXJrdXAnLCAoKSA9PiB7XG4gICAgICBjb25zdCBkcm9wRG93bk1hcmt1cCA9IGNvbXBvbmVudGl6ZSgne3swfX0gZm9vIHt7MX19JywgJ2Ryb3Bkb3duJyk7XG5cbiAgICAgIGV4cGVjdChkcm9wRG93bk1hcmt1cCkudG9FcXVhbCh7XG4gICAgICAgIG1hcmt1cDpcbiAgICAgICAgICAnPHNwYW4gZGF0YS1jb21wb25lbnQ9XCJkcm9wZG93blwiIGRhdGEtaWQ9XCIwXCI+PC9zcGFuPiBmb28gPHNwYW4gZGF0YS1jb21wb25lbnQ9XCJkcm9wZG93blwiIGRhdGEtaWQ9XCIxXCI+PC9zcGFuPicsXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3NlcmlhbGl6YXRpb24nLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCBoYXZlIGRlZmF1bHQgbm9kZSBhIHNwYW4nLCAoKSA9PiB7XG4gICAgICBleHBlY3QoZGVzZXJpYWxpemUoJ3NvbWV0aGluZycpKS50b0VxdWFsKFxuICAgICAgICBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgICAgb2JqZWN0OiAndmFsdWUnLFxuICAgICAgICAgIGRvY3VtZW50OiB7XG4gICAgICAgICAgICBvYmplY3Q6ICdkb2N1bWVudCcsXG4gICAgICAgICAgICBkYXRhOiB7fSxcbiAgICAgICAgICAgIG5vZGVzOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBvYmplY3Q6ICdibG9jaycsXG4gICAgICAgICAgICAgICAgZGF0YToge30sXG4gICAgICAgICAgICAgICAgaXNWb2lkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICB0eXBlOiAnc3BhbicsXG4gICAgICAgICAgICAgICAgbm9kZXM6IFt7IG9iamVjdDogJ3RleHQnLCBsZWF2ZXM6IFt7IHRleHQ6ICdzb21ldGhpbmcnIH1dIH1dLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXSwibWFwcGluZ3MiOiI7OztBQUFBLElBQUFBLGFBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLGNBQUEsR0FBQUQsT0FBQTtBQUVBRSxRQUFRLENBQUMsT0FBTyxFQUFFLFlBQU07RUFDdEJBLFFBQVEsQ0FBQyxjQUFjLEVBQUUsWUFBTTtJQUM3QkMsRUFBRSxDQUFDLG9EQUFvRCxFQUFFLFlBQU07TUFDN0QsSUFBTUMsY0FBYyxHQUFHLElBQUFDLHdCQUFZLEVBQUMsaUJBQWlCLEVBQUUsVUFBVSxDQUFDO01BRWxFQyxNQUFNLENBQUNGLGNBQWMsQ0FBQyxDQUFDRyxPQUFPLENBQUM7UUFDN0JDLE1BQU0sRUFDSjtNQUNKLENBQUMsQ0FBQztJQUNKLENBQUMsQ0FBQztFQUNKLENBQUMsQ0FBQztFQUVGTixRQUFRLENBQUMsZUFBZSxFQUFFLFlBQU07SUFDOUJDLEVBQUUsQ0FBQyxpQ0FBaUMsRUFBRSxZQUFNO01BQzFDRyxNQUFNLENBQUMsSUFBQUcsMEJBQVcsRUFBQyxXQUFXLENBQUMsQ0FBQyxDQUFDRixPQUFPLENBQ3RDRCxNQUFNLENBQUNJLGdCQUFnQixDQUFDO1FBQ3RCQyxNQUFNLEVBQUUsT0FBTztRQUNmQyxRQUFRLEVBQUU7VUFDUkQsTUFBTSxFQUFFLFVBQVU7VUFDbEJFLElBQUksRUFBRSxDQUFDLENBQUM7VUFDUkMsS0FBSyxFQUFFLENBQ0w7WUFDRUgsTUFBTSxFQUFFLE9BQU87WUFDZkUsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUNSRSxNQUFNLEVBQUUsS0FBSztZQUNiQyxJQUFJLEVBQUUsTUFBTTtZQUNaRixLQUFLLEVBQUUsQ0FBQztjQUFFSCxNQUFNLEVBQUUsTUFBTTtjQUFFTSxNQUFNLEVBQUUsQ0FBQztnQkFBRUMsSUFBSSxFQUFFO2NBQVksQ0FBQztZQUFFLENBQUM7VUFDN0QsQ0FBQztRQUVMO01BQ0YsQ0FBQyxDQUNILENBQUM7SUFDSCxDQUFDLENBQUM7RUFDSixDQUFDLENBQUM7QUFDSixDQUFDLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
|