@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.
Files changed (46) hide show
  1. package/CHANGELOG.md +0 -28
  2. package/lib/__tests__/editor-utils.test.js +164 -0
  3. package/lib/__tests__/editor-utils.test.js.map +1 -0
  4. package/lib/__tests__/serialization.test.js +241 -0
  5. package/lib/__tests__/serialization.test.js.map +1 -0
  6. package/lib/__tests__/utils.js +79 -0
  7. package/lib/__tests__/utils.js.map +1 -0
  8. package/lib/plugins/image/__tests__/component.test.js +96 -0
  9. package/lib/plugins/image/__tests__/component.test.js.map +1 -0
  10. package/lib/plugins/image/__tests__/image-toolbar-logic.test.js +131 -0
  11. package/lib/plugins/image/__tests__/image-toolbar-logic.test.js.map +1 -0
  12. package/lib/plugins/image/__tests__/image-toolbar.test.js +21 -0
  13. package/lib/plugins/image/__tests__/image-toolbar.test.js.map +1 -0
  14. package/lib/plugins/image/__tests__/index.test.js +86 -0
  15. package/lib/plugins/image/__tests__/index.test.js.map +1 -0
  16. package/lib/plugins/image/__tests__/insert-image-handler.test.js +112 -0
  17. package/lib/plugins/image/__tests__/insert-image-handler.test.js.map +1 -0
  18. package/lib/plugins/image/__tests__/mock-change.js +22 -0
  19. package/lib/plugins/image/__tests__/mock-change.js.map +1 -0
  20. package/lib/plugins/list/__tests__/index.test.js +63 -0
  21. package/lib/plugins/list/__tests__/index.test.js.map +1 -0
  22. package/lib/plugins/math/__tests__/index.test.js +284 -0
  23. package/lib/plugins/math/__tests__/index.test.js.map +1 -0
  24. package/lib/plugins/media/__tests__/index.test.js +69 -0
  25. package/lib/plugins/media/__tests__/index.test.js.map +1 -0
  26. package/lib/plugins/respArea/drag-in-the-blank/__tests__/choice.test.js +93 -0
  27. package/lib/plugins/respArea/drag-in-the-blank/__tests__/choice.test.js.map +1 -0
  28. package/lib/plugins/respArea/math-templated/index.js +2 -2
  29. package/lib/plugins/respArea/math-templated/index.js.map +1 -1
  30. package/lib/plugins/table/__tests__/index.test.js +416 -0
  31. package/lib/plugins/table/__tests__/index.test.js.map +1 -0
  32. package/lib/plugins/table/__tests__/table-toolbar.test.js +81 -0
  33. package/lib/plugins/table/__tests__/table-toolbar.test.js.map +1 -0
  34. package/lib/plugins/toolbar/__tests__/default-toolbar.test.js +153 -0
  35. package/lib/plugins/toolbar/__tests__/default-toolbar.test.js.map +1 -0
  36. package/lib/plugins/toolbar/__tests__/editor-and-toolbar.test.js +47 -0
  37. package/lib/plugins/toolbar/__tests__/editor-and-toolbar.test.js.map +1 -0
  38. package/lib/plugins/toolbar/__tests__/toolbar-buttons.test.js +112 -0
  39. package/lib/plugins/toolbar/__tests__/toolbar-buttons.test.js.map +1 -0
  40. package/lib/plugins/toolbar/__tests__/toolbar.test.js +118 -0
  41. package/lib/plugins/toolbar/__tests__/toolbar.test.js.map +1 -0
  42. package/lib/shared/alert-dialog.js +68 -0
  43. package/package.json +7 -7
  44. package/src/__tests__/utils.js +1 -1
  45. package/src/plugins/respArea/math-templated/index.jsx +1 -1
  46. 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":[]}