@pie-lib/editable-html 13.0.8 → 13.1.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +0 -28
- package/lib/__tests__/editor-utils.test.js +164 -0
- package/lib/__tests__/editor-utils.test.js.map +1 -0
- package/lib/__tests__/serialization.test.js +241 -0
- package/lib/__tests__/serialization.test.js.map +1 -0
- package/lib/__tests__/utils.js +79 -0
- package/lib/__tests__/utils.js.map +1 -0
- package/lib/plugins/image/__tests__/component.test.js +96 -0
- package/lib/plugins/image/__tests__/component.test.js.map +1 -0
- package/lib/plugins/image/__tests__/image-toolbar-logic.test.js +131 -0
- package/lib/plugins/image/__tests__/image-toolbar-logic.test.js.map +1 -0
- package/lib/plugins/image/__tests__/image-toolbar.test.js +21 -0
- package/lib/plugins/image/__tests__/image-toolbar.test.js.map +1 -0
- package/lib/plugins/image/__tests__/index.test.js +86 -0
- package/lib/plugins/image/__tests__/index.test.js.map +1 -0
- package/lib/plugins/image/__tests__/insert-image-handler.test.js +112 -0
- package/lib/plugins/image/__tests__/insert-image-handler.test.js.map +1 -0
- package/lib/plugins/image/__tests__/mock-change.js +22 -0
- package/lib/plugins/image/__tests__/mock-change.js.map +1 -0
- package/lib/plugins/list/__tests__/index.test.js +63 -0
- package/lib/plugins/list/__tests__/index.test.js.map +1 -0
- package/lib/plugins/math/__tests__/index.test.js +284 -0
- package/lib/plugins/math/__tests__/index.test.js.map +1 -0
- package/lib/plugins/media/__tests__/index.test.js +69 -0
- package/lib/plugins/media/__tests__/index.test.js.map +1 -0
- package/lib/plugins/respArea/drag-in-the-blank/__tests__/choice.test.js +93 -0
- package/lib/plugins/respArea/drag-in-the-blank/__tests__/choice.test.js.map +1 -0
- package/lib/plugins/respArea/math-templated/index.js +2 -2
- package/lib/plugins/respArea/math-templated/index.js.map +1 -1
- package/lib/plugins/table/__tests__/index.test.js +416 -0
- package/lib/plugins/table/__tests__/index.test.js.map +1 -0
- package/lib/plugins/table/__tests__/table-toolbar.test.js +81 -0
- package/lib/plugins/table/__tests__/table-toolbar.test.js.map +1 -0
- package/lib/plugins/toolbar/__tests__/default-toolbar.test.js +153 -0
- package/lib/plugins/toolbar/__tests__/default-toolbar.test.js.map +1 -0
- package/lib/plugins/toolbar/__tests__/editor-and-toolbar.test.js +47 -0
- package/lib/plugins/toolbar/__tests__/editor-and-toolbar.test.js.map +1 -0
- package/lib/plugins/toolbar/__tests__/toolbar-buttons.test.js +112 -0
- package/lib/plugins/toolbar/__tests__/toolbar-buttons.test.js.map +1 -0
- package/lib/plugins/toolbar/__tests__/toolbar.test.js +118 -0
- package/lib/plugins/toolbar/__tests__/toolbar.test.js.map +1 -0
- package/lib/shared/alert-dialog.js +68 -0
- package/package.json +7 -7
- package/src/__tests__/utils.js +1 -1
- package/src/plugins/respArea/math-templated/index.jsx +1 -1
- package/LICENSE.md +0 -5
package/CHANGELOG.md
CHANGED
|
@@ -3,34 +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
|
-
## [13.0.8](https://github.com/pie-framework/pie-lib/compare/@pie-lib/editable-html@13.0.7...@pie-lib/editable-html@13.0.8) (2026-07-31)
|
|
7
|
-
|
|
8
|
-
### Bug Fixes
|
|
9
|
-
|
|
10
|
-
- 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))
|
|
11
|
-
|
|
12
|
-
## [13.0.7](https://github.com/pie-framework/pie-lib/compare/@pie-lib/editable-html@13.0.6...@pie-lib/editable-html@13.0.7) (2026-07-01)
|
|
13
|
-
|
|
14
|
-
**Note:** Version bump only for package @pie-lib/editable-html
|
|
15
|
-
|
|
16
|
-
## [13.0.6](https://github.com/pie-framework/pie-lib/compare/@pie-lib/editable-html@13.0.5...@pie-lib/editable-html@13.0.6) (2026-06-25)
|
|
17
|
-
|
|
18
|
-
**Note:** Version bump only for package @pie-lib/editable-html
|
|
19
|
-
|
|
20
|
-
## [13.0.5](https://github.com/pie-framework/pie-lib/compare/@pie-lib/editable-html@13.0.4...@pie-lib/editable-html@13.0.5) (2026-06-17)
|
|
21
|
-
|
|
22
|
-
**Note:** Version bump only for package @pie-lib/editable-html
|
|
23
|
-
|
|
24
|
-
## [13.0.4](https://github.com/pie-framework/pie-lib/compare/@pie-lib/editable-html@13.0.3...@pie-lib/editable-html@13.0.4) (2026-06-12)
|
|
25
|
-
|
|
26
|
-
### Bug Fixes
|
|
27
|
-
|
|
28
|
-
- correct @emotion/style typo to @emotion/styled in package deps PIE-678 ([d529ac7](https://github.com/pie-framework/pie-lib/commit/d529ac7bc3dfa94d8037688452d4c70c66f2590b))
|
|
29
|
-
|
|
30
|
-
## [13.0.3](https://github.com/pie-framework/pie-lib/compare/@pie-lib/editable-html@13.0.2...@pie-lib/editable-html@13.0.3) (2026-06-01)
|
|
31
|
-
|
|
32
|
-
**Note:** Version bump only for package @pie-lib/editable-html
|
|
33
|
-
|
|
34
6
|
## [13.0.2](https://github.com/pie-framework/pie-lib/compare/@pie-lib/editable-html@13.0.2-next.2...@pie-lib/editable-html@13.0.2) (2026-05-07)
|
|
35
7
|
|
|
36
8
|
**Note:** Version bump only for package @pie-lib/editable-html
|
|
@@ -0,0 +1,164 @@
|
|
|
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=editor-utils.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"editor-utils.test.js","names":["_editor","require","describe","it","expect","valueToSize","toBeUndefined","undefined","toBe","result","isNaN","buildSizeStyle","width","toEqual","minWidth","maxWidth","height","minHeight","maxHeight"],"sources":["../../src/__tests__/editor-utils.test.js"],"sourcesContent":["import { buildSizeStyle, valueToSize } from '../editor';\n\ndescribe('Editor Utilities', () => {\n describe('valueToSize', () => {\n it('returns undefined for falsy values', () => {\n expect(valueToSize(null)).toBeUndefined();\n expect(valueToSize(undefined)).toBeUndefined();\n expect(valueToSize('')).toBeUndefined();\n expect(valueToSize(0)).toBeUndefined();\n });\n\n it('converts number to px string', () => {\n expect(valueToSize(100)).toBe('100px');\n expect(valueToSize(50)).toBe('50px');\n });\n\n it('returns undefined for percentage strings', () => {\n expect(valueToSize('100%')).toBeUndefined();\n expect(valueToSize('50%')).toBeUndefined();\n });\n\n it('preserves valid CSS unit strings', () => {\n expect(valueToSize('100px')).toBe('100px');\n expect(valueToSize('10vh')).toBe('10vh');\n expect(valueToSize('50vw')).toBe('50vw');\n expect(valueToSize('9ch')).toBe('9ch');\n expect(valueToSize('2em')).toBe('2em');\n });\n\n it('preserves calc() expressions', () => {\n expect(valueToSize('calc(10em + 42px)')).toBe('calc(10em + 42px)');\n expect(valueToSize('calc(100% - 20px)')).toBe('calc(100% - 20px)');\n });\n\n it('converts numeric strings to px', () => {\n expect(valueToSize('100')).toBe('100px');\n expect(valueToSize('50')).toBe('50px');\n });\n\n it('handles invalid numeric strings', () => {\n const result = valueToSize('invalid');\n expect(isNaN(result)).toBe(true);\n });\n });\n\n describe('buildSizeStyle', () => {\n it('builds style with numeric width', () => {\n const result = buildSizeStyle({ width: 100 });\n expect(result).toEqual({\n width: '100px',\n minWidth: undefined,\n maxWidth: undefined,\n height: undefined,\n minHeight: undefined,\n maxHeight: undefined,\n });\n });\n\n it('returns undefined for percentage values', () => {\n const result = buildSizeStyle({ height: '100%', width: '100%' });\n expect(result).toEqual({\n width: undefined,\n height: undefined,\n minWidth: undefined,\n maxWidth: undefined,\n minHeight: undefined,\n maxHeight: undefined,\n });\n });\n\n it('builds style with numeric height', () => {\n const result = buildSizeStyle({ height: 100 });\n expect(result).toEqual({\n width: undefined,\n minWidth: undefined,\n maxWidth: undefined,\n height: '100px',\n minHeight: undefined,\n maxHeight: undefined,\n });\n });\n\n it('builds style with minHeight', () => {\n const result = buildSizeStyle({ minHeight: 100 });\n expect(result).toEqual({\n width: undefined,\n minWidth: undefined,\n maxWidth: undefined,\n height: undefined,\n minHeight: '100px',\n maxHeight: undefined,\n });\n });\n\n it('builds style with maxHeight', () => {\n const result = buildSizeStyle({ maxHeight: 100 });\n expect(result).toEqual({\n width: undefined,\n minWidth: undefined,\n maxWidth: undefined,\n height: undefined,\n minHeight: undefined,\n maxHeight: '100px',\n });\n });\n\n it('builds style with calc() expression', () => {\n const result = buildSizeStyle({ width: 'calc(10em + 42px)' });\n expect(result).toEqual({\n width: 'calc(10em + 42px)',\n minWidth: undefined,\n maxWidth: undefined,\n height: undefined,\n minHeight: undefined,\n maxHeight: undefined,\n });\n });\n\n it('builds style with ch unit', () => {\n const result = buildSizeStyle({ width: '9ch' });\n expect(result).toEqual({\n width: '9ch',\n minWidth: undefined,\n maxWidth: undefined,\n height: undefined,\n minHeight: undefined,\n maxHeight: undefined,\n });\n });\n\n it('builds style with no size props', () => {\n const result = buildSizeStyle({});\n expect(result).toEqual({\n width: undefined,\n minWidth: undefined,\n maxWidth: undefined,\n height: undefined,\n minHeight: undefined,\n maxHeight: undefined,\n });\n });\n\n it('builds style with multiple size constraints', () => {\n const result = buildSizeStyle({\n width: 500,\n minWidth: 300,\n maxWidth: 700,\n height: 400,\n minHeight: 200,\n maxHeight: 600,\n });\n expect(result).toEqual({\n width: '500px',\n minWidth: '300px',\n maxWidth: '700px',\n height: '400px',\n minHeight: '200px',\n maxHeight: '600px',\n });\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,241 @@
|
|
|
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
|
+
expect(v.toJSON()).toEqual(expected);
|
|
116
|
+
});
|
|
117
|
+
it('does not break', function () {
|
|
118
|
+
/*
|
|
119
|
+
More than 12 iterations of the same kind would previously break the input. Here we have 16 text nodes, and now it works.
|
|
120
|
+
*/
|
|
121
|
+
var expected = {
|
|
122
|
+
object: 'value',
|
|
123
|
+
document: {
|
|
124
|
+
object: 'document',
|
|
125
|
+
data: {},
|
|
126
|
+
nodes: [{
|
|
127
|
+
object: 'block',
|
|
128
|
+
type: 'div',
|
|
129
|
+
isVoid: false,
|
|
130
|
+
data: {
|
|
131
|
+
attributes: {}
|
|
132
|
+
},
|
|
133
|
+
nodes: [{
|
|
134
|
+
object: 'text',
|
|
135
|
+
leaves: [{
|
|
136
|
+
object: 'leaf',
|
|
137
|
+
text: 'Foo ',
|
|
138
|
+
marks: []
|
|
139
|
+
}, {
|
|
140
|
+
object: 'leaf',
|
|
141
|
+
text: 'x',
|
|
142
|
+
marks: [{
|
|
143
|
+
object: 'mark',
|
|
144
|
+
type: 'italic',
|
|
145
|
+
data: {}
|
|
146
|
+
}]
|
|
147
|
+
}, {
|
|
148
|
+
object: 'leaf',
|
|
149
|
+
text: ' bar ',
|
|
150
|
+
marks: []
|
|
151
|
+
}, {
|
|
152
|
+
object: 'leaf',
|
|
153
|
+
text: 'x',
|
|
154
|
+
marks: [{
|
|
155
|
+
object: 'mark',
|
|
156
|
+
type: 'italic',
|
|
157
|
+
data: {}
|
|
158
|
+
}]
|
|
159
|
+
}, {
|
|
160
|
+
object: 'leaf',
|
|
161
|
+
text: ' Foo ',
|
|
162
|
+
marks: []
|
|
163
|
+
}, {
|
|
164
|
+
object: 'leaf',
|
|
165
|
+
text: 'x',
|
|
166
|
+
marks: [{
|
|
167
|
+
object: 'mark',
|
|
168
|
+
type: 'italic',
|
|
169
|
+
data: {}
|
|
170
|
+
}]
|
|
171
|
+
}, {
|
|
172
|
+
object: 'leaf',
|
|
173
|
+
text: ' bar ',
|
|
174
|
+
marks: []
|
|
175
|
+
}, {
|
|
176
|
+
object: 'leaf',
|
|
177
|
+
text: 'x',
|
|
178
|
+
marks: [{
|
|
179
|
+
object: 'mark',
|
|
180
|
+
type: 'italic',
|
|
181
|
+
data: {}
|
|
182
|
+
}]
|
|
183
|
+
}, {
|
|
184
|
+
object: 'leaf',
|
|
185
|
+
text: ' Foo ',
|
|
186
|
+
marks: []
|
|
187
|
+
}, {
|
|
188
|
+
object: 'leaf',
|
|
189
|
+
text: 'x',
|
|
190
|
+
marks: [{
|
|
191
|
+
object: 'mark',
|
|
192
|
+
type: 'italic',
|
|
193
|
+
data: {}
|
|
194
|
+
}]
|
|
195
|
+
}, {
|
|
196
|
+
object: 'leaf',
|
|
197
|
+
text: ' bar ',
|
|
198
|
+
marks: []
|
|
199
|
+
}, {
|
|
200
|
+
object: 'leaf',
|
|
201
|
+
text: 'x',
|
|
202
|
+
marks: [{
|
|
203
|
+
object: 'mark',
|
|
204
|
+
type: 'italic',
|
|
205
|
+
data: {}
|
|
206
|
+
}]
|
|
207
|
+
}, {
|
|
208
|
+
object: 'leaf',
|
|
209
|
+
text: ' Foo ',
|
|
210
|
+
marks: []
|
|
211
|
+
}, {
|
|
212
|
+
object: 'leaf',
|
|
213
|
+
text: 'x',
|
|
214
|
+
marks: [{
|
|
215
|
+
object: 'mark',
|
|
216
|
+
type: 'italic',
|
|
217
|
+
data: {}
|
|
218
|
+
}]
|
|
219
|
+
}, {
|
|
220
|
+
object: 'leaf',
|
|
221
|
+
text: ' bar ',
|
|
222
|
+
marks: []
|
|
223
|
+
}, {
|
|
224
|
+
object: 'leaf',
|
|
225
|
+
text: 'x',
|
|
226
|
+
marks: [{
|
|
227
|
+
object: 'mark',
|
|
228
|
+
type: 'italic',
|
|
229
|
+
data: {}
|
|
230
|
+
}]
|
|
231
|
+
}]
|
|
232
|
+
}]
|
|
233
|
+
}]
|
|
234
|
+
}
|
|
235
|
+
};
|
|
236
|
+
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>';
|
|
237
|
+
var v = (0, _serialization.htmlToValue)(html);
|
|
238
|
+
expect(v.toJSON()).toEqual(expected);
|
|
239
|
+
});
|
|
240
|
+
});
|
|
241
|
+
//# sourceMappingURL=serialization.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serialization.test.js","names":["_serialization","require","jest","mock","serialization","serialize","fn","o","c","undefined","deserialize","el","next","describe","mkBr","previousSibling","remove","replaceWith","foo","textContent","replace","normalize","mockReturnThis","tagName","mkTextNode","arguments","length","nodeName","mkEl","querySelectorAllResult","querySelectorAll","mockReturnValue","it","br","expect","TEXT_RULE","not","toThrow","expected","object","document","data","nodes","type","isVoid","attributes","leaves","text","marks","src","width","height","margin","justifyContent","alignment","alt","html","v","htmlToValue","toJSON","toEqual"],"sources":["../../src/__tests__/serialization.test.js"],"sourcesContent":["import { htmlToValue, TEXT_RULE } from '../serialization';\n\njest.mock('../plugins/math', () => ({\n serialization: {\n serialize: jest.fn((o, c) => {\n return undefined;\n }),\n deserialize: jest.fn((el, next) => {\n return undefined;\n }),\n },\n}));\n\ndescribe('TEXT_RULE', () => {\n const mkBr = (previousSibling) => {\n return {\n remove: jest.fn(),\n previousSibling,\n replaceWith: (foo) => {\n previousSibling.textContent = previousSibling.textContent.replace(/(<br>)|(<\\/br>)/g, foo);\n },\n normalize: jest.fn().mockReturnThis(),\n tagName: 'br',\n };\n };\n\n const mkTextNode = (textContent = '') => ({\n nodeName: '#text',\n textContent,\n normalize: jest.fn().mockReturnThis(),\n });\n\n const mkEl = (querySelectorAllResult) => ({\n querySelectorAll: jest.fn().mockReturnValue(querySelectorAllResult),\n normalize: jest.fn().mockReturnThis(),\n });\n\n describe('deserialize', () => {\n it('if no previous text node, no error is thrown', () => {\n const br = mkBr();\n const el = mkEl([br]);\n expect(() => TEXT_RULE.deserialize(el)).not.toThrow();\n });\n });\n});\n\ndescribe('htmlToValue', () => {\n it('converts', () => {\n const expected = {\n object: 'value',\n document: {\n object: 'document',\n data: {},\n nodes: [\n {\n object: 'block',\n type: 'div',\n isVoid: false,\n data: {\n attributes: {},\n },\n nodes: [\n {\n object: 'block',\n type: 'paragraph',\n isVoid: false,\n data: {\n attributes: {},\n },\n nodes: [\n {\n object: 'text',\n leaves: [\n {\n object: 'leaf',\n text: 'foo',\n marks: [],\n },\n ],\n },\n {\n object: 'inline',\n type: 'image',\n isVoid: true,\n data: {\n src: 'blah.jpg',\n width: null,\n height: null,\n margin: '',\n justifyContent: '',\n alignment: null,\n alt: null,\n },\n nodes: [\n {\n object: 'text',\n leaves: [\n {\n object: 'leaf',\n text: '',\n marks: [],\n },\n ],\n },\n ],\n },\n {\n object: 'text',\n leaves: [\n {\n object: 'leaf',\n text: 'bar',\n marks: [],\n },\n ],\n },\n ],\n },\n ],\n },\n ],\n },\n };\n const html = `<div><p>foo<img src=\"blah.jpg\"/>bar</p></div>`;\n const v = htmlToValue(html);\n\n expect(v.toJSON()).toEqual(expected);\n });\n\n it('does not break', () => {\n /*\n More than 12 iterations of the same kind would previously break the input. Here we have 16 text nodes, and now it works.\n */\n const expected = {\n object: 'value',\n document: {\n object: 'document',\n data: {},\n nodes: [\n {\n object: 'block',\n type: 'div',\n isVoid: false,\n data: { attributes: {} },\n nodes: [\n {\n object: 'text',\n leaves: [\n {\n object: 'leaf',\n text: 'Foo ',\n marks: [],\n },\n {\n object: 'leaf',\n text: 'x',\n marks: [\n {\n object: 'mark',\n type: 'italic',\n data: {},\n },\n ],\n },\n {\n object: 'leaf',\n text: ' bar ',\n marks: [],\n },\n {\n object: 'leaf',\n text: 'x',\n marks: [\n {\n object: 'mark',\n type: 'italic',\n data: {},\n },\n ],\n },\n {\n object: 'leaf',\n text: ' Foo ',\n marks: [],\n },\n {\n object: 'leaf',\n text: 'x',\n marks: [\n {\n object: 'mark',\n type: 'italic',\n data: {},\n },\n ],\n },\n {\n object: 'leaf',\n text: ' bar ',\n marks: [],\n },\n {\n object: 'leaf',\n text: 'x',\n marks: [\n {\n object: 'mark',\n type: 'italic',\n data: {},\n },\n ],\n },\n {\n object: 'leaf',\n text: ' Foo ',\n marks: [],\n },\n {\n object: 'leaf',\n text: 'x',\n marks: [\n {\n object: 'mark',\n type: 'italic',\n data: {},\n },\n ],\n },\n {\n object: 'leaf',\n text: ' bar ',\n marks: [],\n },\n {\n object: 'leaf',\n text: 'x',\n marks: [\n {\n object: 'mark',\n type: 'italic',\n data: {},\n },\n ],\n },\n {\n object: 'leaf',\n text: ' Foo ',\n marks: [],\n },\n {\n object: 'leaf',\n text: 'x',\n marks: [\n {\n object: 'mark',\n type: 'italic',\n data: {},\n },\n ],\n },\n {\n object: 'leaf',\n text: ' bar ',\n marks: [],\n },\n {\n object: 'leaf',\n text: 'x',\n marks: [\n {\n object: 'mark',\n type: 'italic',\n data: {},\n },\n ],\n },\n ],\n },\n ],\n },\n ],\n },\n };\n const html =\n '<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>';\n const v = htmlToValue(html);\n\n expect(v.toJSON()).toEqual(expected);\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,79 @@
|
|
|
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-mathlive', 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=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","names":["_react","_interopRequireDefault","require","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","_callSuper","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","Boolean","prototype","valueOf","call","classObject","out","a","value","mockComponents","_arguments","_loop","_React$Component","_class","_classCallCheck2","_inherits2","_createClass2","key","render","createElement","React","Component","mockIconButton","jest","mock","props","className","style","ariaLabel","mockMathInput","addBrackets","fn","s","removeBrackets"],"sources":["../../src/__tests__/utils.js"],"sourcesContent":["import React from 'react';\n\nexport function classObject() {\n const out = {};\n for (var a in arguments) {\n const value = arguments[a];\n out[value] = value;\n }\n return out;\n}\n\nexport function mockComponents() {\n const out = {};\n for (var a in arguments) {\n const value = arguments[a];\n out[value] = class extends React.Component {\n render() {\n return <div data-mock-component=\"true\">{value}</div>;\n }\n };\n }\n return out;\n}\n\nexport function mockIconButton() {\n jest.mock('@mui/material/IconButton', () => {\n return (props) => <div className={props.className} style={props.style} ariaLabel={props['aria-label']} />;\n });\n}\nexport function mockMathInput() {\n jest.mock('@pie-lib/math-input-mathlive', () => ({\n addBrackets: jest.fn((s) => s),\n removeBrackets: jest.fn((s) => s),\n ...mockComponents('Keypad', 'MathQuillInput', 'EditableMathInput', 'HorizontalKeypad'),\n }));\n}\n"],"mappings":"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","ignoreList":[]}
|