@pie-lib/editable-html 12.1.0-next.0 → 12.1.0-next.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 +40 -0
- package/package.json +7 -7
- package/lib/__tests__/editor-utils.test.js +0 -164
- package/lib/__tests__/serialization.test.js +0 -242
- package/lib/__tests__/utils.js +0 -79
- package/lib/block-tags.js +0 -24
- package/lib/block-tags.js.map +0 -1
- package/lib/constants.js +0 -11
- package/lib/constants.js.map +0 -1
- package/lib/editor.js +0 -1224
- package/lib/editor.js.map +0 -1
- package/lib/index.js +0 -208
- package/lib/index.js.map +0 -1
- package/lib/parse-html.js +0 -16
- package/lib/parse-html.js.map +0 -1
- package/lib/plugins/characters/custom-popper.js +0 -57
- package/lib/plugins/characters/custom-popper.js.map +0 -1
- package/lib/plugins/characters/index.js +0 -265
- package/lib/plugins/characters/index.js.map +0 -1
- package/lib/plugins/characters/utils.js +0 -378
- package/lib/plugins/characters/utils.js.map +0 -1
- package/lib/plugins/css/icons/index.js +0 -25
- package/lib/plugins/css/icons/index.js.map +0 -1
- package/lib/plugins/css/index.js +0 -338
- package/lib/plugins/css/index.js.map +0 -1
- package/lib/plugins/customPlugin/index.js +0 -98
- package/lib/plugins/customPlugin/index.js.map +0 -1
- package/lib/plugins/html/icons/index.js +0 -30
- package/lib/plugins/html/icons/index.js.map +0 -1
- package/lib/plugins/html/index.js +0 -71
- package/lib/plugins/html/index.js.map +0 -1
- package/lib/plugins/image/__tests__/component.test.js +0 -96
- package/lib/plugins/image/__tests__/image-toolbar-logic.test.js +0 -131
- package/lib/plugins/image/__tests__/image-toolbar.test.js +0 -22
- package/lib/plugins/image/__tests__/index.test.js +0 -90
- package/lib/plugins/image/__tests__/insert-image-handler.test.js +0 -112
- package/lib/plugins/image/__tests__/mock-change.js +0 -22
- package/lib/plugins/image/alt-dialog.js +0 -100
- package/lib/plugins/image/alt-dialog.js.map +0 -1
- package/lib/plugins/image/component.js +0 -343
- package/lib/plugins/image/component.js.map +0 -1
- package/lib/plugins/image/image-toolbar.js +0 -137
- package/lib/plugins/image/image-toolbar.js.map +0 -1
- package/lib/plugins/image/index.js +0 -223
- package/lib/plugins/image/index.js.map +0 -1
- package/lib/plugins/image/insert-image-handler.js +0 -140
- package/lib/plugins/image/insert-image-handler.js.map +0 -1
- package/lib/plugins/index.js +0 -342
- package/lib/plugins/index.js.map +0 -1
- package/lib/plugins/list/__tests__/index.test.js +0 -64
- package/lib/plugins/list/index.js +0 -288
- package/lib/plugins/list/index.js.map +0 -1
- package/lib/plugins/math/__tests__/index.test.js +0 -284
- package/lib/plugins/math/index.js +0 -402
- package/lib/plugins/math/index.js.map +0 -1
- package/lib/plugins/media/__tests__/index.test.js +0 -69
- package/lib/plugins/media/index.js +0 -330
- package/lib/plugins/media/index.js.map +0 -1
- package/lib/plugins/media/media-dialog.js +0 -594
- package/lib/plugins/media/media-dialog.js.map +0 -1
- package/lib/plugins/media/media-toolbar.js +0 -76
- package/lib/plugins/media/media-toolbar.js.map +0 -1
- package/lib/plugins/media/media-wrapper.js +0 -64
- package/lib/plugins/media/media-wrapper.js.map +0 -1
- package/lib/plugins/rendering/index.js +0 -36
- package/lib/plugins/rendering/index.js.map +0 -1
- package/lib/plugins/respArea/drag-in-the-blank/choice.js +0 -271
- package/lib/plugins/respArea/drag-in-the-blank/choice.js.map +0 -1
- package/lib/plugins/respArea/drag-in-the-blank/index.js +0 -55
- package/lib/plugins/respArea/drag-in-the-blank/index.js.map +0 -1
- package/lib/plugins/respArea/drag-in-the-blank/utils.js +0 -38
- package/lib/plugins/respArea/drag-in-the-blank/utils.js.map +0 -1
- package/lib/plugins/respArea/explicit-constructed-response/index.js +0 -50
- package/lib/plugins/respArea/explicit-constructed-response/index.js.map +0 -1
- package/lib/plugins/respArea/icons/index.js +0 -72
- package/lib/plugins/respArea/icons/index.js.map +0 -1
- package/lib/plugins/respArea/index.js +0 -287
- package/lib/plugins/respArea/index.js.map +0 -1
- package/lib/plugins/respArea/inline-dropdown/index.js +0 -67
- package/lib/plugins/respArea/inline-dropdown/index.js.map +0 -1
- package/lib/plugins/respArea/math-templated/index.js +0 -112
- package/lib/plugins/respArea/math-templated/index.js.map +0 -1
- package/lib/plugins/respArea/utils.js +0 -95
- package/lib/plugins/respArea/utils.js.map +0 -1
- package/lib/plugins/table/CustomTablePlugin.js +0 -116
- package/lib/plugins/table/CustomTablePlugin.js.map +0 -1
- package/lib/plugins/table/__tests__/index.test.js +0 -416
- package/lib/plugins/table/__tests__/table-toolbar.test.js +0 -81
- package/lib/plugins/table/icons/index.js +0 -55
- package/lib/plugins/table/icons/index.js.map +0 -1
- package/lib/plugins/table/index.js +0 -413
- package/lib/plugins/table/index.js.map +0 -1
- package/lib/plugins/table/table-toolbar.js +0 -138
- package/lib/plugins/table/table-toolbar.js.map +0 -1
- package/lib/plugins/textAlign/icons/index.js +0 -187
- package/lib/plugins/textAlign/icons/index.js.map +0 -1
- package/lib/plugins/textAlign/index.js +0 -26
- package/lib/plugins/textAlign/index.js.map +0 -1
- package/lib/plugins/toolbar/__tests__/default-toolbar.test.js +0 -154
- package/lib/plugins/toolbar/__tests__/editor-and-toolbar.test.js +0 -47
- package/lib/plugins/toolbar/__tests__/toolbar-buttons.test.js +0 -112
- package/lib/plugins/toolbar/__tests__/toolbar.test.js +0 -118
- package/lib/plugins/toolbar/default-toolbar.js +0 -180
- package/lib/plugins/toolbar/default-toolbar.js.map +0 -1
- package/lib/plugins/toolbar/done-button.js +0 -35
- package/lib/plugins/toolbar/done-button.js.map +0 -1
- package/lib/plugins/toolbar/editor-and-toolbar.js +0 -258
- package/lib/plugins/toolbar/editor-and-toolbar.js.map +0 -1
- package/lib/plugins/toolbar/index.js +0 -29
- package/lib/plugins/toolbar/index.js.map +0 -1
- package/lib/plugins/toolbar/toolbar-buttons.js +0 -145
- package/lib/plugins/toolbar/toolbar-buttons.js.map +0 -1
- package/lib/plugins/toolbar/toolbar.js +0 -307
- package/lib/plugins/toolbar/toolbar.js.map +0 -1
- package/lib/plugins/utils.js +0 -42
- package/lib/plugins/utils.js.map +0 -1
- package/lib/serialization.js +0 -571
- package/lib/serialization.js.map +0 -1
- package/lib/shared/alert-dialog.js +0 -68
- package/lib/theme.js +0 -8
- package/lib/theme.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,46 @@
|
|
|
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
|
+
# [12.1.0-next.2](https://github.com/pie-framework/pie-lib/compare/@pie-lib/editable-html@12.1.0-next.1...@pie-lib/editable-html@12.1.0-next.2) (2026-01-26)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @pie-lib/editable-html
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
# [12.1.0-next.1](https://github.com/pie-framework/pie-lib/compare/@pie-lib/editable-html@11.21.2...@pie-lib/editable-html@12.1.0-next.1) (2026-01-26)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### Bug Fixes
|
|
18
|
+
|
|
19
|
+
* add missing dependencies for dnd-kit ([c50ec8e](https://github.com/pie-framework/pie-lib/commit/c50ec8e0a839e574aa61db78ecd121c6fdbc70c9))
|
|
20
|
+
* choice render for both img and math ([39bc638](https://github.com/pie-framework/pie-lib/commit/39bc638070fc5e9c5f2b50d0d70698f80a32ecb9))
|
|
21
|
+
* fix math rendering issues after React, mui and drag upgrade for drag-in-the-blank ([6dc3c95](https://github.com/pie-framework/pie-lib/commit/6dc3c95c041be02015a9005133fe750e1ff78842))
|
|
22
|
+
* fixed circular dependencies and bumped versions, plus image upload handling [PD-5141] ([7b5fbc9](https://github.com/pie-framework/pie-lib/commit/7b5fbc9126446916d42d6b3597232a231567b2d8))
|
|
23
|
+
* implemented image, responseArea, math, and some custom toolbars [PD-5141] ([d1dd966](https://github.com/pie-framework/pie-lib/commit/d1dd966188d14f3e4a9c6e4c7dbc4a92da727fd5))
|
|
24
|
+
* prevent math re-rendering issues when dragging choices over blanks ([b316544](https://github.com/pie-framework/pie-lib/commit/b316544f0d574f7f57b70e2de4d8bab2086a4151))
|
|
25
|
+
* remove carets from [@pie-lib](https://github.com/pie-lib) dependencies and configure lerna to use exact versions ([c9cd800](https://github.com/pie-framework/pie-lib/commit/c9cd800844abca09e7acf1fd35b2ddf51a6d86df))
|
|
26
|
+
* remove carret, point to specific libs version ([09939a5](https://github.com/pie-framework/pie-lib/commit/09939a5aca19d7dda03d62c93d4d524f98dd69da))
|
|
27
|
+
* remove exports and publish ([#2068](https://github.com/pie-framework/pie-lib/issues/2068)) ([60a96cd](https://github.com/pie-framework/pie-lib/commit/60a96cde0ec65f6b1cac0ae329aa33a0abc50d05))
|
|
28
|
+
* use fixed lib deps ([de7c64d](https://github.com/pie-framework/pie-lib/commit/de7c64d14f13259fe44d47405e4421baef21e24e))
|
|
29
|
+
* **editable-html:** add slateEditorExtraStyles prop ([0b71f34](https://github.com/pie-framework/pie-lib/commit/0b71f3412aeb90d613d41a9afe93b9ccd13f09c4))
|
|
30
|
+
* **editable-html:** replace ReactDOM.render() with createRoot() for React 18 compatibility ([e9618b5](https://github.com/pie-framework/pie-lib/commit/e9618b5d892ee98d08f4440934eec9be58ee170a))
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
### Features
|
|
34
|
+
|
|
35
|
+
* bump react and react-dom ([01dc19e](https://github.com/pie-framework/pie-lib/commit/01dc19e88bbc8d372c561d1511df1a82937d45af))
|
|
36
|
+
* drag library update ([fb7a4d0](https://github.com/pie-framework/pie-lib/commit/fb7a4d0ce761f2f4c1a122854cfa306abb8ea7c8))
|
|
37
|
+
* initial work for tiptap changes [PD-5141] ([d73e617](https://github.com/pie-framework/pie-lib/commit/d73e6179c01e1497688c630da98213b31e9f4938))
|
|
38
|
+
* packages/editable-html mui update PD-5268 ([6b8d201](https://github.com/pie-framework/pie-lib/commit/6b8d201cfc0bf7e26eea58e296109c463544075f))
|
|
39
|
+
* sync latest changes from dev ([c936e9c](https://github.com/pie-framework/pie-lib/commit/c936e9c7f9e095e7d9b9805ac2bf72bd271e05f1))
|
|
40
|
+
* updates for drag-in-the-blank ([0c096d8](https://github.com/pie-framework/pie-lib/commit/0c096d887f97edecd2dac68cda136b2d265dc7d5))
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
|
|
6
46
|
# [12.0.0-next.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/editable-html@11.21.3-next.0...@pie-lib/editable-html@12.0.0-next.0) (2026-01-19)
|
|
7
47
|
|
|
8
48
|
**Note:** Version bump only for package @pie-lib/editable-html
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pie-lib/editable-html",
|
|
3
|
-
"version": "12.1.0-next.
|
|
3
|
+
"version": "12.1.0-next.2",
|
|
4
4
|
"description": "",
|
|
5
5
|
"license": "ISC",
|
|
6
6
|
"main": "lib/index.js",
|
|
@@ -14,11 +14,11 @@
|
|
|
14
14
|
"@emotion/style": "^0.8.0",
|
|
15
15
|
"@mui/icons-material": "^7.3.4",
|
|
16
16
|
"@mui/material": "^7.3.4",
|
|
17
|
-
"@pie-lib/drag": "3.1.0-next.
|
|
18
|
-
"@pie-lib/math-input": "7.1.0-next.
|
|
19
|
-
"@pie-lib/math-rendering": "4.1.0-next.
|
|
20
|
-
"@pie-lib/math-toolbar": "2.1.0-next.
|
|
21
|
-
"@pie-lib/render-ui": "5.1.0-next.
|
|
17
|
+
"@pie-lib/drag": "3.1.0-next.2",
|
|
18
|
+
"@pie-lib/math-input": "7.1.0-next.1",
|
|
19
|
+
"@pie-lib/math-rendering": "4.1.0-next.1",
|
|
20
|
+
"@pie-lib/math-toolbar": "2.1.0-next.2",
|
|
21
|
+
"@pie-lib/render-ui": "5.1.0-next.2",
|
|
22
22
|
"change-case": "^3.0.2",
|
|
23
23
|
"classnames": "^2.2.6",
|
|
24
24
|
"debug": "^4.1.1",
|
|
@@ -52,6 +52,6 @@
|
|
|
52
52
|
"publishConfig": {
|
|
53
53
|
"access": "public"
|
|
54
54
|
},
|
|
55
|
-
"gitHead": "
|
|
55
|
+
"gitHead": "04c639af6e49d1881bf3244ebb3940171c26bd3e",
|
|
56
56
|
"scripts": {}
|
|
57
57
|
}
|
|
@@ -1,164 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _editor = require("../editor");
|
|
4
|
-
describe('Editor Utilities', function () {
|
|
5
|
-
describe('valueToSize', function () {
|
|
6
|
-
it('returns undefined for falsy values', function () {
|
|
7
|
-
expect((0, _editor.valueToSize)(null)).toBeUndefined();
|
|
8
|
-
expect((0, _editor.valueToSize)(undefined)).toBeUndefined();
|
|
9
|
-
expect((0, _editor.valueToSize)('')).toBeUndefined();
|
|
10
|
-
expect((0, _editor.valueToSize)(0)).toBeUndefined();
|
|
11
|
-
});
|
|
12
|
-
it('converts number to px string', function () {
|
|
13
|
-
expect((0, _editor.valueToSize)(100)).toBe('100px');
|
|
14
|
-
expect((0, _editor.valueToSize)(50)).toBe('50px');
|
|
15
|
-
});
|
|
16
|
-
it('returns undefined for percentage strings', function () {
|
|
17
|
-
expect((0, _editor.valueToSize)('100%')).toBeUndefined();
|
|
18
|
-
expect((0, _editor.valueToSize)('50%')).toBeUndefined();
|
|
19
|
-
});
|
|
20
|
-
it('preserves valid CSS unit strings', function () {
|
|
21
|
-
expect((0, _editor.valueToSize)('100px')).toBe('100px');
|
|
22
|
-
expect((0, _editor.valueToSize)('10vh')).toBe('10vh');
|
|
23
|
-
expect((0, _editor.valueToSize)('50vw')).toBe('50vw');
|
|
24
|
-
expect((0, _editor.valueToSize)('9ch')).toBe('9ch');
|
|
25
|
-
expect((0, _editor.valueToSize)('2em')).toBe('2em');
|
|
26
|
-
});
|
|
27
|
-
it('preserves calc() expressions', function () {
|
|
28
|
-
expect((0, _editor.valueToSize)('calc(10em + 42px)')).toBe('calc(10em + 42px)');
|
|
29
|
-
expect((0, _editor.valueToSize)('calc(100% - 20px)')).toBe('calc(100% - 20px)');
|
|
30
|
-
});
|
|
31
|
-
it('converts numeric strings to px', function () {
|
|
32
|
-
expect((0, _editor.valueToSize)('100')).toBe('100px');
|
|
33
|
-
expect((0, _editor.valueToSize)('50')).toBe('50px');
|
|
34
|
-
});
|
|
35
|
-
it('handles invalid numeric strings', function () {
|
|
36
|
-
var result = (0, _editor.valueToSize)('invalid');
|
|
37
|
-
expect(isNaN(result)).toBe(true);
|
|
38
|
-
});
|
|
39
|
-
});
|
|
40
|
-
describe('buildSizeStyle', function () {
|
|
41
|
-
it('builds style with numeric width', function () {
|
|
42
|
-
var result = (0, _editor.buildSizeStyle)({
|
|
43
|
-
width: 100
|
|
44
|
-
});
|
|
45
|
-
expect(result).toEqual({
|
|
46
|
-
width: '100px',
|
|
47
|
-
minWidth: undefined,
|
|
48
|
-
maxWidth: undefined,
|
|
49
|
-
height: undefined,
|
|
50
|
-
minHeight: undefined,
|
|
51
|
-
maxHeight: undefined
|
|
52
|
-
});
|
|
53
|
-
});
|
|
54
|
-
it('returns undefined for percentage values', function () {
|
|
55
|
-
var result = (0, _editor.buildSizeStyle)({
|
|
56
|
-
height: '100%',
|
|
57
|
-
width: '100%'
|
|
58
|
-
});
|
|
59
|
-
expect(result).toEqual({
|
|
60
|
-
width: undefined,
|
|
61
|
-
height: undefined,
|
|
62
|
-
minWidth: undefined,
|
|
63
|
-
maxWidth: undefined,
|
|
64
|
-
minHeight: undefined,
|
|
65
|
-
maxHeight: undefined
|
|
66
|
-
});
|
|
67
|
-
});
|
|
68
|
-
it('builds style with numeric height', function () {
|
|
69
|
-
var result = (0, _editor.buildSizeStyle)({
|
|
70
|
-
height: 100
|
|
71
|
-
});
|
|
72
|
-
expect(result).toEqual({
|
|
73
|
-
width: undefined,
|
|
74
|
-
minWidth: undefined,
|
|
75
|
-
maxWidth: undefined,
|
|
76
|
-
height: '100px',
|
|
77
|
-
minHeight: undefined,
|
|
78
|
-
maxHeight: undefined
|
|
79
|
-
});
|
|
80
|
-
});
|
|
81
|
-
it('builds style with minHeight', function () {
|
|
82
|
-
var result = (0, _editor.buildSizeStyle)({
|
|
83
|
-
minHeight: 100
|
|
84
|
-
});
|
|
85
|
-
expect(result).toEqual({
|
|
86
|
-
width: undefined,
|
|
87
|
-
minWidth: undefined,
|
|
88
|
-
maxWidth: undefined,
|
|
89
|
-
height: undefined,
|
|
90
|
-
minHeight: '100px',
|
|
91
|
-
maxHeight: undefined
|
|
92
|
-
});
|
|
93
|
-
});
|
|
94
|
-
it('builds style with maxHeight', function () {
|
|
95
|
-
var result = (0, _editor.buildSizeStyle)({
|
|
96
|
-
maxHeight: 100
|
|
97
|
-
});
|
|
98
|
-
expect(result).toEqual({
|
|
99
|
-
width: undefined,
|
|
100
|
-
minWidth: undefined,
|
|
101
|
-
maxWidth: undefined,
|
|
102
|
-
height: undefined,
|
|
103
|
-
minHeight: undefined,
|
|
104
|
-
maxHeight: '100px'
|
|
105
|
-
});
|
|
106
|
-
});
|
|
107
|
-
it('builds style with calc() expression', function () {
|
|
108
|
-
var result = (0, _editor.buildSizeStyle)({
|
|
109
|
-
width: 'calc(10em + 42px)'
|
|
110
|
-
});
|
|
111
|
-
expect(result).toEqual({
|
|
112
|
-
width: 'calc(10em + 42px)',
|
|
113
|
-
minWidth: undefined,
|
|
114
|
-
maxWidth: undefined,
|
|
115
|
-
height: undefined,
|
|
116
|
-
minHeight: undefined,
|
|
117
|
-
maxHeight: undefined
|
|
118
|
-
});
|
|
119
|
-
});
|
|
120
|
-
it('builds style with ch unit', function () {
|
|
121
|
-
var result = (0, _editor.buildSizeStyle)({
|
|
122
|
-
width: '9ch'
|
|
123
|
-
});
|
|
124
|
-
expect(result).toEqual({
|
|
125
|
-
width: '9ch',
|
|
126
|
-
minWidth: undefined,
|
|
127
|
-
maxWidth: undefined,
|
|
128
|
-
height: undefined,
|
|
129
|
-
minHeight: undefined,
|
|
130
|
-
maxHeight: undefined
|
|
131
|
-
});
|
|
132
|
-
});
|
|
133
|
-
it('builds style with no size props', function () {
|
|
134
|
-
var result = (0, _editor.buildSizeStyle)({});
|
|
135
|
-
expect(result).toEqual({
|
|
136
|
-
width: undefined,
|
|
137
|
-
minWidth: undefined,
|
|
138
|
-
maxWidth: undefined,
|
|
139
|
-
height: undefined,
|
|
140
|
-
minHeight: undefined,
|
|
141
|
-
maxHeight: undefined
|
|
142
|
-
});
|
|
143
|
-
});
|
|
144
|
-
it('builds style with multiple size constraints', function () {
|
|
145
|
-
var result = (0, _editor.buildSizeStyle)({
|
|
146
|
-
width: 500,
|
|
147
|
-
minWidth: 300,
|
|
148
|
-
maxWidth: 700,
|
|
149
|
-
height: 400,
|
|
150
|
-
minHeight: 200,
|
|
151
|
-
maxHeight: 600
|
|
152
|
-
});
|
|
153
|
-
expect(result).toEqual({
|
|
154
|
-
width: '500px',
|
|
155
|
-
minWidth: '300px',
|
|
156
|
-
maxWidth: '700px',
|
|
157
|
-
height: '400px',
|
|
158
|
-
minHeight: '200px',
|
|
159
|
-
maxHeight: '600px'
|
|
160
|
-
});
|
|
161
|
-
});
|
|
162
|
-
});
|
|
163
|
-
});
|
|
164
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZWRpdG9yIiwicmVxdWlyZSIsImRlc2NyaWJlIiwiaXQiLCJleHBlY3QiLCJ2YWx1ZVRvU2l6ZSIsInRvQmVVbmRlZmluZWQiLCJ1bmRlZmluZWQiLCJ0b0JlIiwicmVzdWx0IiwiaXNOYU4iLCJidWlsZFNpemVTdHlsZSIsIndpZHRoIiwidG9FcXVhbCIsIm1pbldpZHRoIiwibWF4V2lkdGgiLCJoZWlnaHQiLCJtaW5IZWlnaHQiLCJtYXhIZWlnaHQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvX190ZXN0c19fL2VkaXRvci11dGlscy50ZXN0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHZhbHVlVG9TaXplLCBidWlsZFNpemVTdHlsZSB9IGZyb20gJy4uL2VkaXRvcic7XG5cbmRlc2NyaWJlKCdFZGl0b3IgVXRpbGl0aWVzJywgKCkgPT4ge1xuICBkZXNjcmliZSgndmFsdWVUb1NpemUnLCAoKSA9PiB7XG4gICAgaXQoJ3JldHVybnMgdW5kZWZpbmVkIGZvciBmYWxzeSB2YWx1ZXMnLCAoKSA9PiB7XG4gICAgICBleHBlY3QodmFsdWVUb1NpemUobnVsbCkpLnRvQmVVbmRlZmluZWQoKTtcbiAgICAgIGV4cGVjdCh2YWx1ZVRvU2l6ZSh1bmRlZmluZWQpKS50b0JlVW5kZWZpbmVkKCk7XG4gICAgICBleHBlY3QodmFsdWVUb1NpemUoJycpKS50b0JlVW5kZWZpbmVkKCk7XG4gICAgICBleHBlY3QodmFsdWVUb1NpemUoMCkpLnRvQmVVbmRlZmluZWQoKTtcbiAgICB9KTtcblxuICAgIGl0KCdjb252ZXJ0cyBudW1iZXIgdG8gcHggc3RyaW5nJywgKCkgPT4ge1xuICAgICAgZXhwZWN0KHZhbHVlVG9TaXplKDEwMCkpLnRvQmUoJzEwMHB4Jyk7XG4gICAgICBleHBlY3QodmFsdWVUb1NpemUoNTApKS50b0JlKCc1MHB4Jyk7XG4gICAgfSk7XG5cbiAgICBpdCgncmV0dXJucyB1bmRlZmluZWQgZm9yIHBlcmNlbnRhZ2Ugc3RyaW5ncycsICgpID0+IHtcbiAgICAgIGV4cGVjdCh2YWx1ZVRvU2l6ZSgnMTAwJScpKS50b0JlVW5kZWZpbmVkKCk7XG4gICAgICBleHBlY3QodmFsdWVUb1NpemUoJzUwJScpKS50b0JlVW5kZWZpbmVkKCk7XG4gICAgfSk7XG5cbiAgICBpdCgncHJlc2VydmVzIHZhbGlkIENTUyB1bml0IHN0cmluZ3MnLCAoKSA9PiB7XG4gICAgICBleHBlY3QodmFsdWVUb1NpemUoJzEwMHB4JykpLnRvQmUoJzEwMHB4Jyk7XG4gICAgICBleHBlY3QodmFsdWVUb1NpemUoJzEwdmgnKSkudG9CZSgnMTB2aCcpO1xuICAgICAgZXhwZWN0KHZhbHVlVG9TaXplKCc1MHZ3JykpLnRvQmUoJzUwdncnKTtcbiAgICAgIGV4cGVjdCh2YWx1ZVRvU2l6ZSgnOWNoJykpLnRvQmUoJzljaCcpO1xuICAgICAgZXhwZWN0KHZhbHVlVG9TaXplKCcyZW0nKSkudG9CZSgnMmVtJyk7XG4gICAgfSk7XG5cbiAgICBpdCgncHJlc2VydmVzIGNhbGMoKSBleHByZXNzaW9ucycsICgpID0+IHtcbiAgICAgIGV4cGVjdCh2YWx1ZVRvU2l6ZSgnY2FsYygxMGVtICsgNDJweCknKSkudG9CZSgnY2FsYygxMGVtICsgNDJweCknKTtcbiAgICAgIGV4cGVjdCh2YWx1ZVRvU2l6ZSgnY2FsYygxMDAlIC0gMjBweCknKSkudG9CZSgnY2FsYygxMDAlIC0gMjBweCknKTtcbiAgICB9KTtcblxuICAgIGl0KCdjb252ZXJ0cyBudW1lcmljIHN0cmluZ3MgdG8gcHgnLCAoKSA9PiB7XG4gICAgICBleHBlY3QodmFsdWVUb1NpemUoJzEwMCcpKS50b0JlKCcxMDBweCcpO1xuICAgICAgZXhwZWN0KHZhbHVlVG9TaXplKCc1MCcpKS50b0JlKCc1MHB4Jyk7XG4gICAgfSk7XG5cbiAgICBpdCgnaGFuZGxlcyBpbnZhbGlkIG51bWVyaWMgc3RyaW5ncycsICgpID0+IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHZhbHVlVG9TaXplKCdpbnZhbGlkJyk7XG4gICAgICBleHBlY3QoaXNOYU4ocmVzdWx0KSkudG9CZSh0cnVlKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2J1aWxkU2l6ZVN0eWxlJywgKCkgPT4ge1xuICAgIGl0KCdidWlsZHMgc3R5bGUgd2l0aCBudW1lcmljIHdpZHRoJywgKCkgPT4ge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYnVpbGRTaXplU3R5bGUoeyB3aWR0aDogMTAwIH0pO1xuICAgICAgZXhwZWN0KHJlc3VsdCkudG9FcXVhbCh7XG4gICAgICAgIHdpZHRoOiAnMTAwcHgnLFxuICAgICAgICBtaW5XaWR0aDogdW5kZWZpbmVkLFxuICAgICAgICBtYXhXaWR0aDogdW5kZWZpbmVkLFxuICAgICAgICBoZWlnaHQ6IHVuZGVmaW5lZCxcbiAgICAgICAgbWluSGVpZ2h0OiB1bmRlZmluZWQsXG4gICAgICAgIG1heEhlaWdodDogdW5kZWZpbmVkLFxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpdCgncmV0dXJucyB1bmRlZmluZWQgZm9yIHBlcmNlbnRhZ2UgdmFsdWVzJywgKCkgPT4ge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYnVpbGRTaXplU3R5bGUoeyBoZWlnaHQ6ICcxMDAlJywgd2lkdGg6ICcxMDAlJyB9KTtcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoe1xuICAgICAgICB3aWR0aDogdW5kZWZpbmVkLFxuICAgICAgICBoZWlnaHQ6IHVuZGVmaW5lZCxcbiAgICAgICAgbWluV2lkdGg6IHVuZGVmaW5lZCxcbiAgICAgICAgbWF4V2lkdGg6IHVuZGVmaW5lZCxcbiAgICAgICAgbWluSGVpZ2h0OiB1bmRlZmluZWQsXG4gICAgICAgIG1heEhlaWdodDogdW5kZWZpbmVkLFxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpdCgnYnVpbGRzIHN0eWxlIHdpdGggbnVtZXJpYyBoZWlnaHQnLCAoKSA9PiB7XG4gICAgICBjb25zdCByZXN1bHQgPSBidWlsZFNpemVTdHlsZSh7IGhlaWdodDogMTAwIH0pO1xuICAgICAgZXhwZWN0KHJlc3VsdCkudG9FcXVhbCh7XG4gICAgICAgIHdpZHRoOiB1bmRlZmluZWQsXG4gICAgICAgIG1pbldpZHRoOiB1bmRlZmluZWQsXG4gICAgICAgIG1heFdpZHRoOiB1bmRlZmluZWQsXG4gICAgICAgIGhlaWdodDogJzEwMHB4JyxcbiAgICAgICAgbWluSGVpZ2h0OiB1bmRlZmluZWQsXG4gICAgICAgIG1heEhlaWdodDogdW5kZWZpbmVkLFxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpdCgnYnVpbGRzIHN0eWxlIHdpdGggbWluSGVpZ2h0JywgKCkgPT4ge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYnVpbGRTaXplU3R5bGUoeyBtaW5IZWlnaHQ6IDEwMCB9KTtcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoe1xuICAgICAgICB3aWR0aDogdW5kZWZpbmVkLFxuICAgICAgICBtaW5XaWR0aDogdW5kZWZpbmVkLFxuICAgICAgICBtYXhXaWR0aDogdW5kZWZpbmVkLFxuICAgICAgICBoZWlnaHQ6IHVuZGVmaW5lZCxcbiAgICAgICAgbWluSGVpZ2h0OiAnMTAwcHgnLFxuICAgICAgICBtYXhIZWlnaHQ6IHVuZGVmaW5lZCxcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoJ2J1aWxkcyBzdHlsZSB3aXRoIG1heEhlaWdodCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGJ1aWxkU2l6ZVN0eWxlKHsgbWF4SGVpZ2h0OiAxMDAgfSk7XG4gICAgICBleHBlY3QocmVzdWx0KS50b0VxdWFsKHtcbiAgICAgICAgd2lkdGg6IHVuZGVmaW5lZCxcbiAgICAgICAgbWluV2lkdGg6IHVuZGVmaW5lZCxcbiAgICAgICAgbWF4V2lkdGg6IHVuZGVmaW5lZCxcbiAgICAgICAgaGVpZ2h0OiB1bmRlZmluZWQsXG4gICAgICAgIG1pbkhlaWdodDogdW5kZWZpbmVkLFxuICAgICAgICBtYXhIZWlnaHQ6ICcxMDBweCcsXG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGl0KCdidWlsZHMgc3R5bGUgd2l0aCBjYWxjKCkgZXhwcmVzc2lvbicsICgpID0+IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGJ1aWxkU2l6ZVN0eWxlKHsgd2lkdGg6ICdjYWxjKDEwZW0gKyA0MnB4KScgfSk7XG4gICAgICBleHBlY3QocmVzdWx0KS50b0VxdWFsKHtcbiAgICAgICAgd2lkdGg6ICdjYWxjKDEwZW0gKyA0MnB4KScsXG4gICAgICAgIG1pbldpZHRoOiB1bmRlZmluZWQsXG4gICAgICAgIG1heFdpZHRoOiB1bmRlZmluZWQsXG4gICAgICAgIGhlaWdodDogdW5kZWZpbmVkLFxuICAgICAgICBtaW5IZWlnaHQ6IHVuZGVmaW5lZCxcbiAgICAgICAgbWF4SGVpZ2h0OiB1bmRlZmluZWQsXG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGl0KCdidWlsZHMgc3R5bGUgd2l0aCBjaCB1bml0JywgKCkgPT4ge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYnVpbGRTaXplU3R5bGUoeyB3aWR0aDogJzljaCcgfSk7XG4gICAgICBleHBlY3QocmVzdWx0KS50b0VxdWFsKHtcbiAgICAgICAgd2lkdGg6ICc5Y2gnLFxuICAgICAgICBtaW5XaWR0aDogdW5kZWZpbmVkLFxuICAgICAgICBtYXhXaWR0aDogdW5kZWZpbmVkLFxuICAgICAgICBoZWlnaHQ6IHVuZGVmaW5lZCxcbiAgICAgICAgbWluSGVpZ2h0OiB1bmRlZmluZWQsXG4gICAgICAgIG1heEhlaWdodDogdW5kZWZpbmVkLFxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpdCgnYnVpbGRzIHN0eWxlIHdpdGggbm8gc2l6ZSBwcm9wcycsICgpID0+IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGJ1aWxkU2l6ZVN0eWxlKHt9KTtcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoe1xuICAgICAgICB3aWR0aDogdW5kZWZpbmVkLFxuICAgICAgICBtaW5XaWR0aDogdW5kZWZpbmVkLFxuICAgICAgICBtYXhXaWR0aDogdW5kZWZpbmVkLFxuICAgICAgICBoZWlnaHQ6IHVuZGVmaW5lZCxcbiAgICAgICAgbWluSGVpZ2h0OiB1bmRlZmluZWQsXG4gICAgICAgIG1heEhlaWdodDogdW5kZWZpbmVkLFxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpdCgnYnVpbGRzIHN0eWxlIHdpdGggbXVsdGlwbGUgc2l6ZSBjb25zdHJhaW50cycsICgpID0+IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGJ1aWxkU2l6ZVN0eWxlKHtcbiAgICAgICAgd2lkdGg6IDUwMCxcbiAgICAgICAgbWluV2lkdGg6IDMwMCxcbiAgICAgICAgbWF4V2lkdGg6IDcwMCxcbiAgICAgICAgaGVpZ2h0OiA0MDAsXG4gICAgICAgIG1pbkhlaWdodDogMjAwLFxuICAgICAgICBtYXhIZWlnaHQ6IDYwMCxcbiAgICAgIH0pO1xuICAgICAgZXhwZWN0KHJlc3VsdCkudG9FcXVhbCh7XG4gICAgICAgIHdpZHRoOiAnNTAwcHgnLFxuICAgICAgICBtaW5XaWR0aDogJzMwMHB4JyxcbiAgICAgICAgbWF4V2lkdGg6ICc3MDBweCcsXG4gICAgICAgIGhlaWdodDogJzQwMHB4JyxcbiAgICAgICAgbWluSGVpZ2h0OiAnMjAwcHgnLFxuICAgICAgICBtYXhIZWlnaHQ6ICc2MDBweCcsXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxJQUFBQSxPQUFBLEdBQUFDLE9BQUE7QUFFQUMsUUFBUSxDQUFDLGtCQUFrQixFQUFFLFlBQU07RUFDakNBLFFBQVEsQ0FBQyxhQUFhLEVBQUUsWUFBTTtJQUM1QkMsRUFBRSxDQUFDLG9DQUFvQyxFQUFFLFlBQU07TUFDN0NDLE1BQU0sQ0FBQyxJQUFBQyxtQkFBVyxFQUFDLElBQUksQ0FBQyxDQUFDLENBQUNDLGFBQWEsQ0FBQyxDQUFDO01BQ3pDRixNQUFNLENBQUMsSUFBQUMsbUJBQVcsRUFBQ0UsU0FBUyxDQUFDLENBQUMsQ0FBQ0QsYUFBYSxDQUFDLENBQUM7TUFDOUNGLE1BQU0sQ0FBQyxJQUFBQyxtQkFB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
|
|
@@ -1,242 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _serialization = require("../serialization");
|
|
4
|
-
jest.mock('../plugins/math', function () {
|
|
5
|
-
return {
|
|
6
|
-
serialization: {
|
|
7
|
-
serialize: jest.fn(function (o, c) {
|
|
8
|
-
return undefined;
|
|
9
|
-
}),
|
|
10
|
-
deserialize: jest.fn(function (el, next) {
|
|
11
|
-
return undefined;
|
|
12
|
-
})
|
|
13
|
-
}
|
|
14
|
-
};
|
|
15
|
-
});
|
|
16
|
-
describe('TEXT_RULE', function () {
|
|
17
|
-
var mkBr = function mkBr(previousSibling) {
|
|
18
|
-
return {
|
|
19
|
-
remove: jest.fn(),
|
|
20
|
-
previousSibling: previousSibling,
|
|
21
|
-
replaceWith: function replaceWith(foo) {
|
|
22
|
-
previousSibling.textContent = previousSibling.textContent.replace(/(<br>)|(<\/br>)/g, foo);
|
|
23
|
-
},
|
|
24
|
-
normalize: jest.fn().mockReturnThis(),
|
|
25
|
-
tagName: 'br'
|
|
26
|
-
};
|
|
27
|
-
};
|
|
28
|
-
var mkTextNode = function mkTextNode() {
|
|
29
|
-
var textContent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
30
|
-
return {
|
|
31
|
-
nodeName: '#text',
|
|
32
|
-
textContent: textContent,
|
|
33
|
-
normalize: jest.fn().mockReturnThis()
|
|
34
|
-
};
|
|
35
|
-
};
|
|
36
|
-
var mkEl = function mkEl(querySelectorAllResult) {
|
|
37
|
-
return {
|
|
38
|
-
querySelectorAll: jest.fn().mockReturnValue(querySelectorAllResult),
|
|
39
|
-
normalize: jest.fn().mockReturnThis()
|
|
40
|
-
};
|
|
41
|
-
};
|
|
42
|
-
describe('deserialize', function () {
|
|
43
|
-
it('if no previous text node, no error is thrown', function () {
|
|
44
|
-
var br = mkBr();
|
|
45
|
-
var el = mkEl([br]);
|
|
46
|
-
expect(function () {
|
|
47
|
-
return _serialization.TEXT_RULE.deserialize(el);
|
|
48
|
-
}).not.toThrow();
|
|
49
|
-
});
|
|
50
|
-
});
|
|
51
|
-
});
|
|
52
|
-
describe('htmlToValue', function () {
|
|
53
|
-
it('converts', function () {
|
|
54
|
-
var expected = {
|
|
55
|
-
object: 'value',
|
|
56
|
-
document: {
|
|
57
|
-
object: 'document',
|
|
58
|
-
data: {},
|
|
59
|
-
nodes: [{
|
|
60
|
-
object: 'block',
|
|
61
|
-
type: 'div',
|
|
62
|
-
isVoid: false,
|
|
63
|
-
data: {
|
|
64
|
-
attributes: {}
|
|
65
|
-
},
|
|
66
|
-
nodes: [{
|
|
67
|
-
object: 'block',
|
|
68
|
-
type: 'paragraph',
|
|
69
|
-
isVoid: false,
|
|
70
|
-
data: {
|
|
71
|
-
attributes: {}
|
|
72
|
-
},
|
|
73
|
-
nodes: [{
|
|
74
|
-
object: 'text',
|
|
75
|
-
leaves: [{
|
|
76
|
-
object: 'leaf',
|
|
77
|
-
text: 'foo',
|
|
78
|
-
marks: []
|
|
79
|
-
}]
|
|
80
|
-
}, {
|
|
81
|
-
object: 'inline',
|
|
82
|
-
type: 'image',
|
|
83
|
-
isVoid: true,
|
|
84
|
-
data: {
|
|
85
|
-
src: 'blah.jpg',
|
|
86
|
-
width: null,
|
|
87
|
-
height: null,
|
|
88
|
-
margin: '',
|
|
89
|
-
justifyContent: '',
|
|
90
|
-
alignment: null,
|
|
91
|
-
alt: null
|
|
92
|
-
},
|
|
93
|
-
nodes: [{
|
|
94
|
-
object: 'text',
|
|
95
|
-
leaves: [{
|
|
96
|
-
object: 'leaf',
|
|
97
|
-
text: '',
|
|
98
|
-
marks: []
|
|
99
|
-
}]
|
|
100
|
-
}]
|
|
101
|
-
}, {
|
|
102
|
-
object: 'text',
|
|
103
|
-
leaves: [{
|
|
104
|
-
object: 'leaf',
|
|
105
|
-
text: 'bar',
|
|
106
|
-
marks: []
|
|
107
|
-
}]
|
|
108
|
-
}]
|
|
109
|
-
}]
|
|
110
|
-
}]
|
|
111
|
-
}
|
|
112
|
-
};
|
|
113
|
-
var html = "<div><p>foo<img src=\"blah.jpg\"/>bar</p></div>";
|
|
114
|
-
var v = (0, _serialization.htmlToValue)(html);
|
|
115
|
-
console.log(JSON.stringify(v.toJSON()));
|
|
116
|
-
expect(v.toJSON()).toEqual(expected);
|
|
117
|
-
});
|
|
118
|
-
it('does not break', function () {
|
|
119
|
-
/*
|
|
120
|
-
More than 12 iterations of the same kind would previously break the input. Here we have 16 text nodes, and now it works.
|
|
121
|
-
*/
|
|
122
|
-
var expected = {
|
|
123
|
-
object: 'value',
|
|
124
|
-
document: {
|
|
125
|
-
object: 'document',
|
|
126
|
-
data: {},
|
|
127
|
-
nodes: [{
|
|
128
|
-
object: 'block',
|
|
129
|
-
type: 'div',
|
|
130
|
-
isVoid: false,
|
|
131
|
-
data: {
|
|
132
|
-
attributes: {}
|
|
133
|
-
},
|
|
134
|
-
nodes: [{
|
|
135
|
-
object: 'text',
|
|
136
|
-
leaves: [{
|
|
137
|
-
object: 'leaf',
|
|
138
|
-
text: 'Foo ',
|
|
139
|
-
marks: []
|
|
140
|
-
}, {
|
|
141
|
-
object: 'leaf',
|
|
142
|
-
text: 'x',
|
|
143
|
-
marks: [{
|
|
144
|
-
object: 'mark',
|
|
145
|
-
type: 'italic',
|
|
146
|
-
data: {}
|
|
147
|
-
}]
|
|
148
|
-
}, {
|
|
149
|
-
object: 'leaf',
|
|
150
|
-
text: ' bar ',
|
|
151
|
-
marks: []
|
|
152
|
-
}, {
|
|
153
|
-
object: 'leaf',
|
|
154
|
-
text: 'x',
|
|
155
|
-
marks: [{
|
|
156
|
-
object: 'mark',
|
|
157
|
-
type: 'italic',
|
|
158
|
-
data: {}
|
|
159
|
-
}]
|
|
160
|
-
}, {
|
|
161
|
-
object: 'leaf',
|
|
162
|
-
text: ' Foo ',
|
|
163
|
-
marks: []
|
|
164
|
-
}, {
|
|
165
|
-
object: 'leaf',
|
|
166
|
-
text: 'x',
|
|
167
|
-
marks: [{
|
|
168
|
-
object: 'mark',
|
|
169
|
-
type: 'italic',
|
|
170
|
-
data: {}
|
|
171
|
-
}]
|
|
172
|
-
}, {
|
|
173
|
-
object: 'leaf',
|
|
174
|
-
text: ' bar ',
|
|
175
|
-
marks: []
|
|
176
|
-
}, {
|
|
177
|
-
object: 'leaf',
|
|
178
|
-
text: 'x',
|
|
179
|
-
marks: [{
|
|
180
|
-
object: 'mark',
|
|
181
|
-
type: 'italic',
|
|
182
|
-
data: {}
|
|
183
|
-
}]
|
|
184
|
-
}, {
|
|
185
|
-
object: 'leaf',
|
|
186
|
-
text: ' Foo ',
|
|
187
|
-
marks: []
|
|
188
|
-
}, {
|
|
189
|
-
object: 'leaf',
|
|
190
|
-
text: 'x',
|
|
191
|
-
marks: [{
|
|
192
|
-
object: 'mark',
|
|
193
|
-
type: 'italic',
|
|
194
|
-
data: {}
|
|
195
|
-
}]
|
|
196
|
-
}, {
|
|
197
|
-
object: 'leaf',
|
|
198
|
-
text: ' bar ',
|
|
199
|
-
marks: []
|
|
200
|
-
}, {
|
|
201
|
-
object: 'leaf',
|
|
202
|
-
text: 'x',
|
|
203
|
-
marks: [{
|
|
204
|
-
object: 'mark',
|
|
205
|
-
type: 'italic',
|
|
206
|
-
data: {}
|
|
207
|
-
}]
|
|
208
|
-
}, {
|
|
209
|
-
object: 'leaf',
|
|
210
|
-
text: ' Foo ',
|
|
211
|
-
marks: []
|
|
212
|
-
}, {
|
|
213
|
-
object: 'leaf',
|
|
214
|
-
text: 'x',
|
|
215
|
-
marks: [{
|
|
216
|
-
object: 'mark',
|
|
217
|
-
type: 'italic',
|
|
218
|
-
data: {}
|
|
219
|
-
}]
|
|
220
|
-
}, {
|
|
221
|
-
object: 'leaf',
|
|
222
|
-
text: ' bar ',
|
|
223
|
-
marks: []
|
|
224
|
-
}, {
|
|
225
|
-
object: 'leaf',
|
|
226
|
-
text: 'x',
|
|
227
|
-
marks: [{
|
|
228
|
-
object: 'mark',
|
|
229
|
-
type: 'italic',
|
|
230
|
-
data: {}
|
|
231
|
-
}]
|
|
232
|
-
}]
|
|
233
|
-
}]
|
|
234
|
-
}]
|
|
235
|
-
}
|
|
236
|
-
};
|
|
237
|
-
var html = '<div>Foo <em>x</em> bar <em>x</em> Foo <em>x</em> bar <em>x</em> Foo <em>x</em> bar <em>x</em> Foo <em>x</em> bar <em>x</em></div>';
|
|
238
|
-
var v = (0, _serialization.htmlToValue)(html);
|
|
239
|
-
expect(v.toJSON()).toEqual(expected);
|
|
240
|
-
});
|
|
241
|
-
});
|
|
242
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfc2VyaWFsaXphdGlvbiIsInJlcXVpcmUiLCJqZXN0IiwibW9jayIsInNlcmlhbGl6YXRpb24iLCJzZXJpYWxpemUiLCJmbiIsIm8iLCJjIiwidW5kZWZpbmVkIiwiZGVzZXJpYWxpemUiLCJlbCIsIm5leHQiLCJkZXNjcmliZSIsIm1rQnIiLCJwcmV2aW91c1NpYmxpbmciLCJyZW1vdmUiLCJyZXBsYWNlV2l0aCIsImZvbyIsInRleHRDb250ZW50IiwicmVwbGFjZSIsIm5vcm1hbGl6ZSIsIm1vY2tSZXR1cm5UaGlzIiwidGFnTmFtZSIsIm1rVGV4dE5vZGUiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJub2RlTmFtZSIsIm1rRWwiLCJxdWVyeVNlbGVjdG9yQWxsUmVzdWx0IiwicXVlcnlTZWxlY3RvckFsbCIsIm1vY2tSZXR1cm5WYWx1ZSIsIml0IiwiYnIiLCJleHBlY3QiLCJURVhUX1JVTEUiLCJub3QiLCJ0b1Rocm93IiwiZXhwZWN0ZWQiLCJvYmplY3QiLCJkb2N1bWVudCIsImRhdGEiLCJub2RlcyIsInR5cGUiLCJpc1ZvaWQiLCJhdHRyaWJ1dGVzIiwibGVhdmVzIiwidGV4dCIsIm1hcmtzIiwic3JjIiwid2lkdGgiLCJoZWlnaHQiLCJtYXJnaW4iLCJqdXN0aWZ5Q29udGVudCIsImFsaWdubWVudCIsImFsdCIsImh0bWwiLCJ2IiwiaHRtbFRvVmFsdWUiLCJjb25zb2xlIiwibG9nIiwiSlNPTiIsInN0cmluZ2lmeSIsInRvSlNPTiIsInRvRXF1YWwiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvX190ZXN0c19fL3NlcmlhbGl6YXRpb24udGVzdC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBodG1sVG9WYWx1ZSwgVEVYVF9SVUxFIH0gZnJvbSAnLi4vc2VyaWFsaXphdGlvbic7XG5cbmplc3QubW9jaygnLi4vcGx1Z2lucy9tYXRoJywgKCkgPT4gKHtcbiAgc2VyaWFsaXphdGlvbjoge1xuICAgIHNlcmlhbGl6ZTogamVzdC5mbigobywgYykgPT4ge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9KSxcbiAgICBkZXNlcmlhbGl6ZTogamVzdC5mbigoZWwsIG5leHQpID0+IHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfSksXG4gIH0sXG59KSk7XG5cbmRlc2NyaWJlKCdURVhUX1JVTEUnLCAoKSA9PiB7XG4gIGNvbnN0IG1rQnIgPSAocHJldmlvdXNTaWJsaW5nKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHJlbW92ZTogamVzdC5mbigpLFxuICAgICAgcHJldmlvdXNTaWJsaW5nLFxuICAgICAgcmVwbGFjZVdpdGg6IChmb28pID0+IHtcbiAgICAgICAgcHJldmlvdXNTaWJsaW5nLnRleHRDb250ZW50ID0gcHJldmlvdXNTaWJsaW5nLnRleHRDb250ZW50LnJlcGxhY2UoLyg8YnI+KXwoPFxcL2JyPikvZywgZm9vKTtcbiAgICAgIH0sXG4gICAgICBub3JtYWxpemU6IGplc3QuZm4oKS5tb2NrUmV0dXJuVGhpcygpLFxuICAgICAgdGFnTmFtZTogJ2JyJyxcbiAgICB9O1xuICB9O1xuXG4gIGNvbnN0IG1rVGV4dE5vZGUgPSAodGV4dENvbnRlbnQgPSAnJykgPT4gKHtcbiAgICBub2RlTmFtZTogJyN0ZXh0JyxcbiAgICB0ZXh0Q29udGVudCxcbiAgICBub3JtYWxpemU6IGplc3QuZm4oKS5tb2NrUmV0dXJuVGhpcygpLFxuICB9KTtcblxuICBjb25zdCBta0VsID0gKHF1ZXJ5U2VsZWN0b3JBbGxSZXN1bHQpID0+ICh7XG4gICAgcXVlcnlTZWxlY3RvckFsbDogamVzdC5mbigpLm1vY2tSZXR1cm5WYWx1ZShxdWVyeVNlbGVjdG9yQWxsUmVzdWx0KSxcbiAgICBub3JtYWxpemU6IGplc3QuZm4oKS5tb2NrUmV0dXJuVGhpcygpLFxuICB9KTtcblxuICBkZXNjcmliZSgnZGVzZXJpYWxpemUnLCAoKSA9PiB7XG4gICAgaXQoJ2lmIG5vIHByZXZpb3VzIHRleHQgbm9kZSwgbm8gZXJyb3IgaXMgdGhyb3duJywgKCkgPT4ge1xuICAgICAgY29uc3QgYnIgPSBta0JyKCk7XG4gICAgICBjb25zdCBlbCA9IG1rRWwoW2JyXSk7XG4gICAgICBleHBlY3QoKCkgPT4gVEVYVF9SVUxFLmRlc2VyaWFsaXplKGVsKSkubm90LnRvVGhyb3coKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcblxuZGVzY3JpYmUoJ2h0bWxUb1ZhbHVlJywgKCkgPT4ge1xuICBpdCgnY29udmVydHMnLCAoKSA9PiB7XG4gICAgY29uc3QgZXhwZWN0ZWQgPSB7XG4gICAgICBvYmplY3Q6ICd2YWx1ZScsXG4gICAgICBkb2N1bWVudDoge1xuICAgICAgICBvYmplY3Q6ICdkb2N1bWVudCcsXG4gICAgICAgIGRhdGE6IHt9LFxuICAgICAgICBub2RlczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG9iamVjdDogJ2Jsb2NrJyxcbiAgICAgICAgICAgIHR5cGU6ICdkaXYnLFxuICAgICAgICAgICAgaXNWb2lkOiBmYWxzZSxcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgYXR0cmlidXRlczoge30sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbm9kZXM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG9iamVjdDogJ2Jsb2NrJyxcbiAgICAgICAgICAgICAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICAgICAgICAgICAgICBpc1ZvaWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXM6IHt9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgbm9kZXM6IFtcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgb2JqZWN0OiAndGV4dCcsXG4gICAgICAgICAgICAgICAgICAgIGxlYXZlczogW1xuICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9iamVjdDogJ2xlYWYnLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dDogJ2ZvbycsXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJrczogW10sXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIG9iamVjdDogJ2lubGluZScsXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdpbWFnZScsXG4gICAgICAgICAgICAgICAgICAgIGlzVm9pZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgICAgICAgIHNyYzogJ2JsYWguanBnJyxcbiAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAnJyxcbiAgICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJycsXG4gICAgICAgICAgICAgICAgICAgICAgYWxpZ25tZW50OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgIGFsdDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgbm9kZXM6IFtcbiAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvYmplY3Q6ICd0ZXh0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlYXZlczogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JqZWN0OiAnbGVhZicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dDogJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFya3M6IFtdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgb2JqZWN0OiAndGV4dCcsXG4gICAgICAgICAgICAgICAgICAgIGxlYXZlczogW1xuICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9iamVjdDogJ2xlYWYnLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dDogJ2JhcicsXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJrczogW10sXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgfTtcbiAgICBjb25zdCBodG1sID0gYDxkaXY+PHA+Zm9vPGltZyBzcmM9XCJibGFoLmpwZ1wiLz5iYXI8L3A+PC9kaXY+YDtcbiAgICBjb25zdCB2ID0gaHRtbFRvVmFsdWUoaHRtbCk7XG5cbiAgICBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeSh2LnRvSlNPTigpKSk7XG4gICAgZXhwZWN0KHYudG9KU09OKCkpLnRvRXF1YWwoZXhwZWN0ZWQpO1xuICB9KTtcblxuICBpdCgnZG9lcyBub3QgYnJlYWsnLCAoKSA9PiB7XG4gICAgLypcbiAgICAgTW9yZSB0aGFuIDEyIGl0ZXJhdGlvbnMgb2YgdGhlIHNhbWUga2luZCB3b3VsZCBwcmV2aW91c2x5IGJyZWFrIHRoZSBpbnB1dC4gSGVyZSB3ZSBoYXZlIDE2IHRleHQgbm9kZXMsIGFuZCBub3cgaXQgd29ya3MuXG4gICAgICovXG4gICAgY29uc3QgZXhwZWN0ZWQgPSB7XG4gICAgICBvYmplY3Q6ICd2YWx1ZScsXG4gICAgICBkb2N1bWVudDoge1xuICAgICAgICBvYmplY3Q6ICdkb2N1bWVudCcsXG4gICAgICAgIGRhdGE6IHt9LFxuICAgICAgICBub2RlczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG9iamVjdDogJ2Jsb2NrJyxcbiAgICAgICAgICAgIHR5cGU6ICdkaXYnLFxuICAgICAgICAgICAgaXNWb2lkOiBmYWxzZSxcbiAgICAgICAgICAgIGRhdGE6IHsgYXR0cmlidXRlczoge30gfSxcbiAgICAgICAgICAgIG5vZGVzOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBvYmplY3Q6ICd0ZXh0JyxcbiAgICAgICAgICAgICAgICBsZWF2ZXM6IFtcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgb2JqZWN0OiAnbGVhZicsXG4gICAgICAgICAgICAgICAgICAgIHRleHQ6ICdGb28gJyxcbiAgICAgICAgICAgICAgICAgICAgbWFya3M6IFtdLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgb2JqZWN0OiAnbGVhZicsXG4gICAgICAgICAgICAgICAgICAgIHRleHQ6ICd4JyxcbiAgICAgICAgICAgICAgICAgICAgbWFya3M6IFtcbiAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvYmplY3Q6ICdtYXJrJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdpdGFsaWMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YToge30sXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIG9iamVjdDogJ2xlYWYnLFxuICAgICAgICAgICAgICAgICAgICB0ZXh0OiAnIGJhciAnLFxuICAgICAgICAgICAgICAgICAgICBtYXJrczogW10sXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBvYmplY3Q6ICdsZWFmJyxcbiAgICAgICAgICAgICAgICAgICAgdGV4dDogJ3gnLFxuICAgICAgICAgICAgICAgICAgICBtYXJrczogW1xuICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9iamVjdDogJ21hcmsnLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2l0YWxpYycsXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgb2JqZWN0OiAnbGVhZicsXG4gICAgICAgICAgICAgICAgICAgIHRleHQ6ICcgRm9vICcsXG4gICAgICAgICAgICAgICAgICAgIG1hcmtzOiBbXSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIG9iamVjdDogJ2xlYWYnLFxuICAgICAgICAgICAgICAgICAgICB0ZXh0OiAneCcsXG4gICAgICAgICAgICAgICAgICAgIG1hcmtzOiBbXG4gICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgb2JqZWN0OiAnbWFyaycsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnaXRhbGljJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBvYmplY3Q6ICdsZWFmJyxcbiAgICAgICAgICAgICAgICAgICAgdGV4dDogJyBiYXIgJyxcbiAgICAgICAgICAgICAgICAgICAgbWFya3M6IFtdLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgb2JqZWN0OiAnbGVhZicsXG4gICAgICAgICAgICAgICAgICAgIHRleHQ6ICd4JyxcbiAgICAgICAgICAgICAgICAgICAgbWFya3M6IFtcbiAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvYmplY3Q6ICdtYXJrJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdpdGFsaWMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YToge30sXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIG9iamVjdDogJ2xlYWYnLFxuICAgICAgICAgICAgICAgICAgICB0ZXh0OiAnIEZvbyAnLFxuICAgICAgICAgICAgICAgICAgICBtYXJrczogW10sXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBvYmplY3Q6ICdsZWFmJyxcbiAgICAgICAgICAgICAgICAgICAgdGV4dDogJ3gnLFxuICAgICAgICAgICAgICAgICAgICBtYXJrczogW1xuICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9iamVjdDogJ21hcmsnLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2l0YWxpYycsXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgb2JqZWN0OiAnbGVhZicsXG4gICAgICAgICAgICAgICAgICAgIHRleHQ6ICcgYmFyICcsXG4gICAgICAgICAgICAgICAgICAgIG1hcmtzOiBbXSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIG9iamVjdDogJ2xlYWYnLFxuICAgICAgICAgICAgICAgICAgICB0ZXh0OiAneCcsXG4gICAgICAgICAgICAgICAgICAgIG1hcmtzOiBbXG4gICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgb2JqZWN0OiAnbWFyaycsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnaXRhbGljJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBvYmplY3Q6ICdsZWFmJyxcbiAgICAgICAgICAgICAgICAgICAgdGV4dDogJyBGb28gJyxcbiAgICAgICAgICAgICAgICAgICAgbWFya3M6IFtdLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgb2JqZWN0OiAnbGVhZicsXG4gICAgICAgICAgICAgICAgICAgIHRleHQ6ICd4JyxcbiAgICAgICAgICAgICAgICAgICAgbWFya3M6IFtcbiAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvYmplY3Q6ICdtYXJrJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdpdGFsaWMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YToge30sXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIG9iamVjdDogJ2xlYWYnLFxuICAgICAgICAgICAgICAgICAgICB0ZXh0OiAnIGJhciAnLFxuICAgICAgICAgICAgICAgICAgICBtYXJrczogW10sXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBvYmplY3Q6ICdsZWFmJyxcbiAgICAgICAgICAgICAgICAgICAgdGV4dDogJ3gnLFxuICAgICAgICAgICAgICAgICAgICBtYXJrczogW1xuICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9iamVjdDogJ21hcmsnLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2l0YWxpYycsXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICB9O1xuICAgIGNvbnN0IGh0bWwgPVxuICAgICAgJzxkaXY+Rm9vIDxlbT54PC9lbT4gYmFyIDxlbT54PC9lbT4gRm9vIDxlbT54PC9lbT4gYmFyIDxlbT54PC9lbT4gRm9vIDxlbT54PC9lbT4gYmFyIDxlbT54PC9lbT4gRm9vIDxlbT54PC9lbT4gYmFyIDxlbT54PC9lbT48L2Rpdj4nO1xuICAgIGNvbnN0IHYgPSBodG1sVG9WYWx1ZShodG1sKTtcblxuICAgIGV4cGVjdCh2LnRvSlNPTigpKS50b0VxdWFsKGV4cGVjdGVkKTtcbiAgfSk7XG59KTtcbiJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxJQUFBQSxjQUFBLEdBQUFDLE9BQUE7QUFFQUMsSUFBSSxDQUFDQyxJQUFJLENBQUMsaUJBQWlCLEVBQUU7RUFBQSxPQUFPO0lBQ2xDQyxhQUFhLEVBQUU7TUFDYkMsU0FBUyxFQUFFSCxJQUFJLENBQUNJLEVBQUUsQ0FBQyxVQUFDQyxDQUFDLEVBQUVDLENBQUMsRUFBSztRQUMzQixPQUFPQyxTQUFTO01BQ2xCLENBQUMsQ0FBQztNQUNGQyxXQUFXLEVBQUVSLElBQUksQ0FBQ0ksRUFBRSxDQUFDLFVBQUNLLEVBQUUsRUFBRUMsSUFBSSxFQUFLO1FBQ2pDLE9BQU9ILFNBQVM7TUFDbEIsQ0FBQztJQUNIO0VBQ0YsQ0FBQztBQUFBLENBQUMsQ0FBQztBQUVISSxRQUFRLENBQUMsV0FBVyxFQUFFLFlBQU07RUFDMUIsSUFBTUMsSUFBSSxHQUFHLFNBQVBBLElBQUlBLENBQUlDLGVBQWUsRUFBSztJQUNoQyxPQUFPO01BQ0xDLE1BQU0sRUFBRWQsSUFBSSxDQUFDSSxFQUFFLENBQUMsQ0FBQztNQUNqQlMsZUFBZSxFQUFmQSxlQUFlO01BQ2ZFLFdBQVcsRUFBRSxTQUFiQSxXQUFXQSxDQUFHQyxHQUFHLEVBQUs7UUFDcEJILGVBQWUsQ0FBQ0ksV0FBVyxHQUFHSixlQUFlLENBQUNJLFdBQVcsQ0FBQ0MsT0FBTyxDQUFDLGtCQUFrQixFQUFFRixHQUFHLENBQUM7TUFDNUYsQ0FBQztNQUNERyxTQUFTLEVBQUVuQixJQUFJLENBQUNJLEVBQUUsQ0FBQyxDQUFDLENBQUNnQixjQUFjLENBQUMsQ0FBQztNQUNyQ0MsT0FBTyxFQUFFO0lBQ1gsQ0FBQztFQUNILENBQUM7RUFFRCxJQUFNQyxVQUFVLEdBQUcsU0FBYkEsVUFBVUEsQ0FBQTtJQUFBLElBQUlMLFdBQVcsR0FBQU0sU0FBQSxDQUFBQyxNQUFBLFFBQUFELFNBQUEsUUFBQWhCLFNBQUEsR0FB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
|
package/lib/__tests__/utils.js
DELETED
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.classObject = classObject;
|
|
8
|
-
exports.mockComponents = mockComponents;
|
|
9
|
-
exports.mockIconButton = mockIconButton;
|
|
10
|
-
exports.mockMathInput = mockMathInput;
|
|
11
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
12
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
13
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
14
|
-
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
15
|
-
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
16
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
17
|
-
var _react = _interopRequireDefault(require("react"));
|
|
18
|
-
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
19
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
20
|
-
function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
|
|
21
|
-
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
22
|
-
function classObject() {
|
|
23
|
-
var out = {};
|
|
24
|
-
for (var a in arguments) {
|
|
25
|
-
var value = arguments[a];
|
|
26
|
-
out[value] = value;
|
|
27
|
-
}
|
|
28
|
-
return out;
|
|
29
|
-
}
|
|
30
|
-
function mockComponents() {
|
|
31
|
-
var _arguments = arguments;
|
|
32
|
-
var out = {};
|
|
33
|
-
var _loop = function _loop() {
|
|
34
|
-
var value = _arguments[a];
|
|
35
|
-
out[value] = /*#__PURE__*/function (_React$Component) {
|
|
36
|
-
function _class() {
|
|
37
|
-
(0, _classCallCheck2["default"])(this, _class);
|
|
38
|
-
return _callSuper(this, _class, arguments);
|
|
39
|
-
}
|
|
40
|
-
(0, _inherits2["default"])(_class, _React$Component);
|
|
41
|
-
return (0, _createClass2["default"])(_class, [{
|
|
42
|
-
key: "render",
|
|
43
|
-
value: function render() {
|
|
44
|
-
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
45
|
-
"data-mock-component": "true"
|
|
46
|
-
}, value);
|
|
47
|
-
}
|
|
48
|
-
}]);
|
|
49
|
-
}(_react["default"].Component);
|
|
50
|
-
};
|
|
51
|
-
for (var a in arguments) {
|
|
52
|
-
_loop();
|
|
53
|
-
}
|
|
54
|
-
return out;
|
|
55
|
-
}
|
|
56
|
-
function mockIconButton() {
|
|
57
|
-
jest.mock('@mui/material/IconButton', function () {
|
|
58
|
-
return function (props) {
|
|
59
|
-
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
60
|
-
className: props.className,
|
|
61
|
-
style: props.style,
|
|
62
|
-
ariaLabel: props['aria-label']
|
|
63
|
-
});
|
|
64
|
-
};
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
function mockMathInput() {
|
|
68
|
-
jest.mock('@pie-lib/math-input', function () {
|
|
69
|
-
return _objectSpread({
|
|
70
|
-
addBrackets: jest.fn(function (s) {
|
|
71
|
-
return s;
|
|
72
|
-
}),
|
|
73
|
-
removeBrackets: jest.fn(function (s) {
|
|
74
|
-
return s;
|
|
75
|
-
})
|
|
76
|
-
}, mockComponents('Keypad', 'MathQuillInput', 'EditableMathInput', 'HorizontalKeypad'));
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIm93bktleXMiLCJlIiwiciIsInQiLCJPYmplY3QiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5IiwiX2NhbGxTdXBlciIsIl9nZXRQcm90b3R5cGVPZjIiLCJfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybjIiLCJfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0IiwiUmVmbGVjdCIsImNvbnN0cnVjdCIsImNvbnN0cnVjdG9yIiwiQm9vbGVhbiIsInByb3RvdHlwZSIsInZhbHVlT2YiLCJjYWxsIiwiY2xhc3NPYmplY3QiLCJvdXQiLCJhIiwidmFsdWUiLCJtb2NrQ29tcG9uZW50cyIsIl9hcmd1bWVudHMiLCJfbG9vcCIsIl9SZWFjdCRDb21wb25lbnQiLCJfY2xhc3MiLCJfY2xhc3NDYWxsQ2hlY2syIiwiX2luaGVyaXRzMiIsIl9jcmVhdGVDbGFzczIiLCJrZXkiLCJyZW5kZXIiLCJjcmVhdGVFbGVtZW50IiwiUmVhY3QiLCJDb21wb25lbnQiLCJtb2NrSWNvbkJ1dHRvbiIsImplc3QiLCJtb2NrIiwicHJvcHMiLCJjbGFzc05hbWUiLCJzdHlsZSIsImFyaWFMYWJlbCIsIm1vY2tNYXRoSW5wdXQiLCJhZGRCcmFja2V0cyIsImZuIiwicyIsInJlbW92ZUJyYWNrZXRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL19fdGVzdHNfXy91dGlscy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuXG5leHBvcnQgZnVuY3Rpb24gY2xhc3NPYmplY3QoKSB7XG4gIGNvbnN0IG91dCA9IHt9O1xuICBmb3IgKHZhciBhIGluIGFyZ3VtZW50cykge1xuICAgIGNvbnN0IHZhbHVlID0gYXJndW1lbnRzW2FdO1xuICAgIG91dFt2YWx1ZV0gPSB2YWx1ZTtcbiAgfVxuICByZXR1cm4gb3V0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbW9ja0NvbXBvbmVudHMoKSB7XG4gIGNvbnN0IG91dCA9IHt9O1xuICBmb3IgKHZhciBhIGluIGFyZ3VtZW50cykge1xuICAgIGNvbnN0IHZhbHVlID0gYXJndW1lbnRzW2FdO1xuICAgIG91dFt2YWx1ZV0gPSBjbGFzcyBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gICAgICByZW5kZXIoKSB7XG4gICAgICAgIHJldHVybiA8ZGl2IGRhdGEtbW9jay1jb21wb25lbnQ9XCJ0cnVlXCI+e3ZhbHVlfTwvZGl2PjtcbiAgICAgIH1cbiAgICB9O1xuICB9XG4gIHJldHVybiBvdXQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb2NrSWNvbkJ1dHRvbigpIHtcbiAgamVzdC5tb2NrKCdAbXVpL21hdGVyaWFsL0ljb25CdXR0b24nLCAoKSA9PiB7XG4gICAgcmV0dXJuIChwcm9wcykgPT4gPGRpdiBjbGFzc05hbWU9e3Byb3BzLmNsYXNzTmFtZX0gc3R5bGU9e3Byb3BzLnN0eWxlfSBhcmlhTGFiZWw9e3Byb3BzWydhcmlhLWxhYmVsJ119IC8+O1xuICB9KTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBtb2NrTWF0aElucHV0KCkge1xuICBqZXN0Lm1vY2soJ0BwaWUtbGliL21hdGgtaW5wdXQnLCAoKSA9PiAoe1xuICAgIGFkZEJyYWNrZXRzOiBqZXN0LmZuKChzKSA9PiBzKSxcbiAgICByZW1vdmVCcmFja2V0czogamVzdC5mbigocykgPT4gcyksXG4gICAgLi4ubW9ja0NvbXBvbmVudHMoJ0tleXBhZCcsICdNYXRoUXVpbGxJbnB1dCcsICdFZGl0YWJsZU1hdGhJbnB1dCcs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
|