@pie-lib/editable-html 10.0.0-beta.4 → 10.0.0-beta.6

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 (143) hide show
  1. package/CHANGELOG.md +255 -152
  2. package/lib/components.js +15 -39
  3. package/lib/components.js.map +1 -1
  4. package/lib/editor.js +200 -356
  5. package/lib/editor.js.map +1 -1
  6. package/lib/index.js +25 -49
  7. package/lib/index.js.map +1 -1
  8. package/lib/new-serialization.js +31 -71
  9. package/lib/new-serialization.js.map +1 -1
  10. package/lib/parse-html.js +7 -6
  11. package/lib/parse-html.js.map +1 -1
  12. package/lib/plugins/characters/custom-popper.js +3 -13
  13. package/lib/plugins/characters/custom-popper.js.map +1 -1
  14. package/lib/plugins/characters/index.js +20 -59
  15. package/lib/plugins/characters/index.js.map +1 -1
  16. package/lib/plugins/characters/utils.js +1 -1
  17. package/lib/plugins/characters/utils.js.map +1 -1
  18. package/lib/plugins/hotKeys/index.js +9 -16
  19. package/lib/plugins/hotKeys/index.js.map +1 -1
  20. package/lib/plugins/image/alt-dialog.js +6 -27
  21. package/lib/plugins/image/alt-dialog.js.map +1 -1
  22. package/lib/plugins/image/component.js +42 -99
  23. package/lib/plugins/image/component.js.map +1 -1
  24. package/lib/plugins/image/image-toolbar.js +14 -50
  25. package/lib/plugins/image/image-toolbar.js.map +1 -1
  26. package/lib/plugins/image/index.js +16 -59
  27. package/lib/plugins/image/index.js.map +1 -1
  28. package/lib/plugins/image/insert-image-handler.js +13 -25
  29. package/lib/plugins/image/insert-image-handler.js.map +1 -1
  30. package/lib/plugins/index.js +6 -36
  31. package/lib/plugins/index.js.map +1 -1
  32. package/lib/plugins/list/index.js +11 -46
  33. package/lib/plugins/list/index.js.map +1 -1
  34. package/lib/plugins/math/index.js +89 -93
  35. package/lib/plugins/math/index.js.map +1 -1
  36. package/lib/plugins/media/index.js +32 -109
  37. package/lib/plugins/media/index.js.map +1 -1
  38. package/lib/plugins/media/media-dialog.js +107 -195
  39. package/lib/plugins/media/media-dialog.js.map +1 -1
  40. package/lib/plugins/media/media-toolbar.js +7 -27
  41. package/lib/plugins/media/media-toolbar.js.map +1 -1
  42. package/lib/plugins/media/media-wrapper.js +9 -14
  43. package/lib/plugins/media/media-wrapper.js.map +1 -1
  44. package/lib/plugins/respArea/drag-in-the-blank/choice.js +13 -53
  45. package/lib/plugins/respArea/drag-in-the-blank/choice.js.map +1 -1
  46. package/lib/plugins/respArea/drag-in-the-blank/index.js +6 -20
  47. package/lib/plugins/respArea/drag-in-the-blank/index.js.map +1 -1
  48. package/lib/plugins/respArea/explicit-constructed-response/index.js +5 -10
  49. package/lib/plugins/respArea/explicit-constructed-response/index.js.map +1 -1
  50. package/lib/plugins/respArea/icons/index.js +16 -31
  51. package/lib/plugins/respArea/icons/index.js.map +1 -1
  52. package/lib/plugins/respArea/index.js +7 -54
  53. package/lib/plugins/respArea/index.js.map +1 -1
  54. package/lib/plugins/respArea/inline-dropdown/index.js +3 -10
  55. package/lib/plugins/respArea/inline-dropdown/index.js.map +1 -1
  56. package/lib/plugins/respArea/utils.js +6 -21
  57. package/lib/plugins/respArea/utils.js.map +1 -1
  58. package/lib/plugins/table/icons/index.js +1 -8
  59. package/lib/plugins/table/icons/index.js.map +1 -1
  60. package/lib/plugins/table/index.js +54 -187
  61. package/lib/plugins/table/index.js.map +1 -1
  62. package/lib/plugins/table/table-toolbar.js +12 -44
  63. package/lib/plugins/table/table-toolbar.js.map +1 -1
  64. package/lib/plugins/toolbar/default-toolbar.js +17 -46
  65. package/lib/plugins/toolbar/default-toolbar.js.map +1 -1
  66. package/lib/plugins/toolbar/done-button.js +2 -10
  67. package/lib/plugins/toolbar/done-button.js.map +1 -1
  68. package/lib/plugins/toolbar/editor-and-toolbar.js +134 -144
  69. package/lib/plugins/toolbar/editor-and-toolbar.js.map +1 -1
  70. package/lib/plugins/toolbar/index.js +2 -6
  71. package/lib/plugins/toolbar/index.js.map +1 -1
  72. package/lib/plugins/toolbar/toolbar-buttons.js +9 -40
  73. package/lib/plugins/toolbar/toolbar-buttons.js.map +1 -1
  74. package/lib/plugins/toolbar/toolbar.js +29 -83
  75. package/lib/plugins/toolbar/toolbar.js.map +1 -1
  76. package/lib/plugins/utils.js +8 -30
  77. package/lib/plugins/utils.js.map +1 -1
  78. package/lib/serialization.js +11 -69
  79. package/lib/serialization.js.map +1 -1
  80. package/lib/test-serializer.js +5 -56
  81. package/lib/test-serializer.js.map +1 -1
  82. package/lib/theme.js +1 -1
  83. package/lib/theme.js.map +1 -1
  84. package/package.json +7 -7
  85. package/playground/image/data.js +20 -20
  86. package/playground/image/index.html +20 -22
  87. package/playground/image/index.jsx +10 -12
  88. package/playground/index.html +23 -25
  89. package/playground/mathquill/index.html +20 -23
  90. package/playground/mathquill/index.jsx +22 -18
  91. package/playground/prod-test/index.html +20 -24
  92. package/playground/prod-test/index.jsx +3 -5
  93. package/playground/schema-override/data.js +10 -10
  94. package/playground/schema-override/image-plugin.jsx +4 -3
  95. package/playground/schema-override/index.html +19 -21
  96. package/playground/schema-override/index.jsx +14 -13
  97. package/playground/serialization/data.js +10 -10
  98. package/playground/serialization/image-plugin.jsx +4 -3
  99. package/playground/serialization/index.html +20 -22
  100. package/playground/table-examples.html +8 -5
  101. package/playground/webpack.config.js +10 -10
  102. package/src/editor.jsx +108 -104
  103. package/src/index.jsx +20 -13
  104. package/src/new-serialization.jsx +30 -11
  105. package/src/parse-html.js +1 -1
  106. package/src/plugins/characters/custom-popper.js +7 -7
  107. package/src/plugins/characters/index.jsx +34 -23
  108. package/src/plugins/characters/utils.js +81 -81
  109. package/src/plugins/image/alt-dialog.jsx +5 -4
  110. package/src/plugins/image/component.jsx +47 -44
  111. package/src/plugins/image/image-toolbar.jsx +19 -27
  112. package/src/plugins/image/index.jsx +24 -18
  113. package/src/plugins/image/insert-image-handler.js +9 -0
  114. package/src/plugins/index.jsx +7 -9
  115. package/src/plugins/list/index.jsx +7 -7
  116. package/src/plugins/math/index.jsx +71 -28
  117. package/src/plugins/media/index.jsx +7 -7
  118. package/src/plugins/media/media-dialog.js +63 -89
  119. package/src/plugins/media/media-toolbar.jsx +8 -8
  120. package/src/plugins/media/media-wrapper.jsx +8 -5
  121. package/src/plugins/respArea/drag-in-the-blank/choice.jsx +19 -21
  122. package/src/plugins/respArea/drag-in-the-blank/index.jsx +4 -4
  123. package/src/plugins/respArea/explicit-constructed-response/index.jsx +5 -4
  124. package/src/plugins/respArea/icons/index.jsx +14 -11
  125. package/src/plugins/respArea/index.jsx +9 -15
  126. package/src/plugins/respArea/inline-dropdown/index.jsx +6 -6
  127. package/src/plugins/respArea/utils.jsx +7 -3
  128. package/src/plugins/table/icons/index.jsx +11 -17
  129. package/src/plugins/table/index.jsx +14 -10
  130. package/src/plugins/table/table-toolbar.jsx +6 -6
  131. package/src/plugins/toolbar/default-toolbar.jsx +9 -9
  132. package/src/plugins/toolbar/done-button.jsx +4 -4
  133. package/src/plugins/toolbar/editor-and-toolbar.jsx +36 -33
  134. package/src/plugins/toolbar/index.jsx +3 -2
  135. package/src/plugins/toolbar/toolbar-buttons.jsx +11 -11
  136. package/src/plugins/toolbar/toolbar.jsx +6 -1
  137. package/src/plugins/utils.js +2 -2
  138. package/src/serialization.jsx +34 -32
  139. package/src/test-serializer.js +2 -9
  140. package/lib/old-serialization.js +0 -330
  141. package/lib/slate-editor.js +0 -302
  142. package/src/test-serializer.js.rej +0 -20
  143. package/yarn-error.log +0 -18318
@@ -1,302 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- var _typeof = require("@babel/runtime/helpers/typeof");
6
-
7
- Object.defineProperty(exports, "__esModule", {
8
- value: true
9
- });
10
- exports["default"] = void 0;
11
-
12
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
-
14
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
-
16
- var _react = _interopRequireWildcard(require("react"));
17
-
18
- var _isHotkey = _interopRequireDefault(require("is-hotkey"));
19
-
20
- var _slateReact = require("slate-react");
21
-
22
- var _slate = require("slate");
23
-
24
- var _slateHistory = require("slate-history");
25
-
26
- var _mathToolbar = require("@pie-lib/math-toolbar");
27
-
28
- var _components = require("./components");
29
-
30
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
31
-
32
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
33
-
34
- var HOTKEYS = {
35
- 'mod+b': 'bold',
36
- 'mod+i': 'italic',
37
- 'mod+u': 'underline',
38
- 'mod+`': 'code'
39
- };
40
- var LIST_TYPES = ['numbered-list', 'bulleted-list'];
41
- var TEXT_ALIGN_TYPES = ['left', 'center', 'right', 'justify'];
42
-
43
- var withMath = function withMath(editor) {
44
- var isVoid = editor.isVoid,
45
- isInline = editor.isInline;
46
-
47
- editor.isVoid = function (element) {
48
- return element.type === 'math' ? true : isVoid(element);
49
- };
50
-
51
- editor.isInline = function (element) {
52
- return element.type === 'math' ? true : isInline(element);
53
- };
54
-
55
- return editor;
56
- };
57
-
58
- var plugins = [withMath, _slateHistory.withHistory, _slateReact.withReact];
59
-
60
- var withPlugins = function withPlugins(editor) {
61
- plugins.forEach(function (plugin) {
62
- plugin(editor);
63
- });
64
- return editor;
65
- };
66
-
67
- var initialValue = [{
68
- type: 'paragraph',
69
- children: [{
70
- type: 'math',
71
- data: {
72
- latex: '\\frac{1}{2}',
73
- wrapper: 'round_brackets'
74
- },
75
- children: [{
76
- text: '\\(\\frac{1}{2}\\)'
77
- }]
78
- }]
79
- }];
80
-
81
- var SlateEditor = function SlateEditor(_ref) {
82
- var value = _ref.value;
83
- var renderElement = (0, _react.useCallback)(function (props) {
84
- return /*#__PURE__*/_react["default"].createElement(Element, props);
85
- }, []);
86
- var renderLeaf = (0, _react.useCallback)(function (props) {
87
- return /*#__PURE__*/_react["default"].createElement(Leaf, props);
88
- }, []);
89
- var editor = (0, _react.useMemo)(function () {
90
- return withPlugins((0, _slate.createEditor)());
91
- }, []);
92
- var slateValue = (0, _react.useMemo)(function () {
93
- // Slate throws an error if the value on the initial render is invalid
94
- // so we directly set the value on the editor in order
95
- // to be able to trigger normalization on the initial value before rendering
96
- editor.children = value;
97
-
98
- _slate.Editor.normalize(editor, {
99
- force: true
100
- }); // We return the normalized internal value so that the rendering can take over from here
101
-
102
-
103
- return editor.children;
104
- }, [editor, value]);
105
- return /*#__PURE__*/_react["default"].createElement(_slateReact.Slate, {
106
- editor: editor,
107
- value: slateValue
108
- }, /*#__PURE__*/_react["default"].createElement(_slateReact.Editable, {
109
- renderElement: renderElement,
110
- renderLeaf: renderLeaf,
111
- placeholder: "Enter some rich text\u2026",
112
- spellCheck: true,
113
- onKeyDown: function onKeyDown(event) {
114
- for (var hotkey in HOTKEYS) {
115
- if ((0, _isHotkey["default"])(hotkey, event)) {
116
- event.preventDefault();
117
- var mark = HOTKEYS[hotkey];
118
- toggleMark(editor, mark);
119
- }
120
- }
121
- }
122
- }));
123
- };
124
-
125
- var toggleBlock = function toggleBlock(editor, format) {
126
- var isActive = isBlockActive(editor, format, TEXT_ALIGN_TYPES.includes(format) ? 'align' : 'type');
127
- var isList = LIST_TYPES.includes(format);
128
-
129
- _slate.Transforms.unwrapNodes(editor, {
130
- match: function match(n) {
131
- return !_slate.Editor.isEditor(n) && _slate.Element.isElement(n) && LIST_TYPES.includes(n.type) && !TEXT_ALIGN_TYPES.includes(format);
132
- },
133
- split: true
134
- });
135
-
136
- var newProperties;
137
-
138
- if (TEXT_ALIGN_TYPES.includes(format)) {
139
- newProperties = {
140
- align: isActive ? undefined : format
141
- };
142
- } else {
143
- newProperties = {
144
- type: isActive ? 'paragraph' : isList ? 'list-item' : format
145
- };
146
- }
147
-
148
- _slate.Transforms.setNodes(editor, newProperties);
149
-
150
- if (!isActive && isList) {
151
- var block = {
152
- type: format,
153
- children: []
154
- };
155
-
156
- _slate.Transforms.wrapNodes(editor, block);
157
- }
158
- };
159
-
160
- var toggleMark = function toggleMark(editor, format) {
161
- var isActive = isMarkActive(editor, format);
162
-
163
- if (isActive) {
164
- _slate.Editor.removeMark(editor, format);
165
- } else {
166
- _slate.Editor.addMark(editor, format, true);
167
- }
168
- };
169
-
170
- var isBlockActive = function isBlockActive(editor, format) {
171
- var blockType = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'type';
172
- var selection = editor.selection;
173
- if (!selection) return false;
174
-
175
- var _Array$from = Array.from(_slate.Editor.nodes(editor, {
176
- at: _slate.Editor.unhangRange(editor, selection),
177
- match: function match(n) {
178
- return !_slate.Editor.isEditor(n) && _slate.Element.isElement(n) && n[blockType] === format;
179
- }
180
- })),
181
- _Array$from2 = (0, _slicedToArray2["default"])(_Array$from, 1),
182
- match = _Array$from2[0];
183
-
184
- return !!match;
185
- };
186
-
187
- var isMarkActive = function isMarkActive(editor, format) {
188
- var marks = _slate.Editor.marks(editor);
189
-
190
- return marks ? marks[format] === true : false;
191
- };
192
-
193
- var Element = function Element(props) {
194
- var attributes = props.attributes,
195
- children = props.children,
196
- element = props.element;
197
- var style = {
198
- textAlign: element.align
199
- };
200
-
201
- switch (element.type) {
202
- case 'block-quote':
203
- return /*#__PURE__*/_react["default"].createElement("blockquote", (0, _extends2["default"])({
204
- style: style
205
- }, attributes), children);
206
-
207
- case 'bulleted-list':
208
- return /*#__PURE__*/_react["default"].createElement("ul", (0, _extends2["default"])({
209
- style: style
210
- }, attributes), children);
211
-
212
- case 'heading-one':
213
- return /*#__PURE__*/_react["default"].createElement("h1", (0, _extends2["default"])({
214
- style: style
215
- }, attributes), children);
216
-
217
- case 'heading-two':
218
- return /*#__PURE__*/_react["default"].createElement("h2", (0, _extends2["default"])({
219
- style: style
220
- }, attributes), children);
221
-
222
- case 'list-item':
223
- return /*#__PURE__*/_react["default"].createElement("li", (0, _extends2["default"])({
224
- style: style
225
- }, attributes), children);
226
-
227
- case 'numbered-list':
228
- return /*#__PURE__*/_react["default"].createElement("ol", (0, _extends2["default"])({
229
- style: style
230
- }, attributes), children);
231
-
232
- case 'math':
233
- return /*#__PURE__*/_react["default"].createElement(_mathToolbar.MathPreview, (0, _extends2["default"])({}, attributes, props));
234
-
235
- case 'mathml':
236
- var html = props.node.data.get('html');
237
- return /*#__PURE__*/_react["default"].createElement("span", (0, _extends2["default"])({}, props.attributes, {
238
- dangerouslySetInnerHTML: {
239
- __html: html
240
- }
241
- }));
242
-
243
- default:
244
- return /*#__PURE__*/_react["default"].createElement("p", (0, _extends2["default"])({
245
- style: style
246
- }, attributes), children);
247
- }
248
- };
249
-
250
- var Leaf = function Leaf(_ref2) {
251
- var attributes = _ref2.attributes,
252
- children = _ref2.children,
253
- leaf = _ref2.leaf;
254
-
255
- if (leaf.bold) {
256
- children = /*#__PURE__*/_react["default"].createElement("strong", null, children);
257
- }
258
-
259
- if (leaf.code) {
260
- children = /*#__PURE__*/_react["default"].createElement("code", null, children);
261
- }
262
-
263
- if (leaf.italic) {
264
- children = /*#__PURE__*/_react["default"].createElement("em", null, children);
265
- }
266
-
267
- if (leaf.underline) {
268
- children = /*#__PURE__*/_react["default"].createElement("u", null, children);
269
- }
270
-
271
- return /*#__PURE__*/_react["default"].createElement("span", attributes, children);
272
- };
273
-
274
- var BlockButton = function BlockButton(_ref3) {
275
- var format = _ref3.format,
276
- icon = _ref3.icon;
277
- var editor = (0, _slateReact.useSlate)();
278
- return /*#__PURE__*/_react["default"].createElement(_components.Button, {
279
- active: isBlockActive(editor, format, TEXT_ALIGN_TYPES.includes(format) ? 'align' : 'type'),
280
- onMouseDown: function onMouseDown(event) {
281
- event.preventDefault();
282
- toggleBlock(editor, format);
283
- }
284
- }, /*#__PURE__*/_react["default"].createElement(_components.Icon, null, icon));
285
- };
286
-
287
- var MarkButton = function MarkButton(_ref4) {
288
- var format = _ref4.format,
289
- icon = _ref4.icon;
290
- var editor = (0, _slateReact.useSlate)();
291
- return /*#__PURE__*/_react["default"].createElement(_components.Button, {
292
- active: isMarkActive(editor, format),
293
- onMouseDown: function onMouseDown(event) {
294
- event.preventDefault();
295
- toggleMark(editor, format);
296
- }
297
- }, /*#__PURE__*/_react["default"].createElement(_components.Icon, null, icon));
298
- };
299
-
300
- var _default = SlateEditor;
301
- exports["default"] = _default;
302
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJIT1RLRVlTIiwiTElTVF9UWVBFUyIsIlRFWFRfQUxJR05fVFlQRVMiLCJ3aXRoTWF0aCIsImVkaXRvciIsImlzVm9pZCIsImlzSW5saW5lIiwiZWxlbWVudCIsInR5cGUiLCJwbHVnaW5zIiwid2l0aEhpc3RvcnkiLCJ3aXRoUmVhY3QiLCJ3aXRoUGx1Z2lucyIsImZvckVhY2giLCJwbHVnaW4iLCJpbml0aWFsVmFsdWUiLCJjaGlsZHJlbiIsImRhdGEiLCJsYXRleCIsIndyYXBwZXIiLCJ0ZXh0IiwiU2xhdGVFZGl0b3IiLCJ2YWx1ZSIsInJlbmRlckVsZW1lbnQiLCJ1c2VDYWxsYmFjayIsInByb3BzIiwicmVuZGVyTGVhZiIsInVzZU1lbW8iLCJjcmVhdGVFZGl0b3IiLCJzbGF0ZVZhbHVlIiwiRWRpdG9yIiwibm9ybWFsaXplIiwiZm9yY2UiLCJldmVudCIsImhvdGtleSIsImlzSG90a2V5IiwicHJldmVudERlZmF1bHQiLCJtYXJrIiwidG9nZ2xlTWFyayIsInRvZ2dsZUJsb2NrIiwiZm9ybWF0IiwiaXNBY3RpdmUiLCJpc0Jsb2NrQWN0aXZlIiwiaW5jbHVkZXMiLCJpc0xpc3QiLCJUcmFuc2Zvcm1zIiwidW53cmFwTm9kZXMiLCJtYXRjaCIsIm4iLCJpc0VkaXRvciIsIlNsYXRlRWxlbWVudCIsImlzRWxlbWVudCIsInNwbGl0IiwibmV3UHJvcGVydGllcyIsImFsaWduIiwidW5kZWZpbmVkIiwic2V0Tm9kZXMiLCJibG9jayIsIndyYXBOb2RlcyIsImlzTWFya0FjdGl2ZSIsInJlbW92ZU1hcmsiLCJhZGRNYXJrIiwiYmxvY2tUeXBlIiwic2VsZWN0aW9uIiwiQXJyYXkiLCJmcm9tIiwibm9kZXMiLCJhdCIsInVuaGFuZ1JhbmdlIiwibWFya3MiLCJFbGVtZW50IiwiYXR0cmlidXRlcyIsInN0eWxlIiwidGV4dEFsaWduIiwiaHRtbCIsIm5vZGUiLCJnZXQiLCJfX2h0bWwiLCJMZWFmIiwibGVhZiIsImJvbGQiLCJjb2RlIiwiaXRhbGljIiwidW5kZXJsaW5lIiwiQmxvY2tCdXR0b24iLCJpY29uIiwidXNlU2xhdGUiLCJNYXJrQnV0dG9uIl0sInNvdXJjZXMiOlsiLi4vc3JjL3NsYXRlLWVkaXRvci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlQ2FsbGJhY2ssIHVzZU1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgaXNIb3RrZXkgZnJvbSAnaXMtaG90a2V5JztcbmltcG9ydCB7IEVkaXRhYmxlLCB3aXRoUmVhY3QsIHVzZVNsYXRlLCBTbGF0ZSB9IGZyb20gJ3NsYXRlLXJlYWN0JztcbmltcG9ydCB7IEVkaXRvciwgVHJhbnNmb3JtcywgY3JlYXRlRWRpdG9yLCBFbGVtZW50IGFzIFNsYXRlRWxlbWVudCB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IHdpdGhIaXN0b3J5IH0gZnJvbSAnc2xhdGUtaGlzdG9yeSc7XG5pbXBvcnQgeyBNYXRoUHJldmlldyB9IGZyb20gJ0BwaWUtbGliL21hdGgtdG9vbGJhcic7XG5cbmltcG9ydCB7IEJ1dHRvbiwgSWNvbiwgVG9vbGJhciB9IGZyb20gJy4vY29tcG9uZW50cyc7XG5cbmNvbnN0IEhPVEtFWVMgPSB7XG4gICdtb2QrYic6ICdib2xkJyxcbiAgJ21vZCtpJzogJ2l0YWxpYycsXG4gICdtb2QrdSc6ICd1bmRlcmxpbmUnLFxuICAnbW9kK2AnOiAnY29kZSdcbn07XG5cbmNvbnN0IExJU1RfVFlQRVMgPSBbJ251bWJlcmVkLWxpc3QnLCAnYnVsbGV0ZWQtbGlzdCddO1xuY29uc3QgVEVYVF9BTElHTl9UWVBFUyA9IFsnbGVmdCcsICdjZW50ZXInLCAncmlnaHQnLCAnanVzdGlmeSddO1xuXG5jb25zdCB3aXRoTWF0aCA9IGVkaXRvciA9PiB7XG4gIGNvbnN0IHsgaXNWb2lkLCBpc0lubGluZSB9ID0gZWRpdG9yO1xuXG4gIGVkaXRvci5pc1ZvaWQgPSBlbGVtZW50ID0+IHtcbiAgICByZXR1cm4gZWxlbWVudC50eXBlID09PSAnbWF0aCcgPyB0cnVlIDogaXNWb2lkKGVsZW1lbnQpO1xuICB9O1xuXG4gIGVkaXRvci5pc0lubGluZSA9IGVsZW1lbnQgPT4ge1xuICAgIHJldHVybiBlbGVtZW50LnR5cGUgPT09ICdtYXRoJyA/IHRydWUgOiBpc0lubGluZShlbGVtZW50KTtcbiAgfTtcblxuICByZXR1cm4gZWRpdG9yO1xufTtcblxuY29uc3QgcGx1Z2lucyA9IFt3aXRoTWF0aCwgd2l0aEhpc3RvcnksIHdpdGhSZWFjdF07XG5cbmNvbnN0IHdpdGhQbHVnaW5zID0gZWRpdG9yID0+IHtcbiAgcGx1Z2lucy5mb3JFYWNoKHBsdWdpbiA9PiB7XG4gICAgcGx1Z2luKGVkaXRvcik7XG4gIH0pO1xuXG4gIHJldHVybiBlZGl0b3I7XG59O1xuXG5jb25zdCBpbml0aWFsVmFsdWUgPSBbXG4gIHtcbiAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICBjaGlsZHJlbjogW1xuICAgICAge1xuICAgICAgICB0eXBlOiAnbWF0aCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICBsYXRleDogJ1xcXFxmcmFjezF9ezJ9JyxcbiAgICAgICAgICB3cmFwcGVyOiAncm91bmRfYnJhY2tldHMnXG4gICAgICAgIH0sXG4gICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgdGV4dDogJ1xcXFwoXFxcXGZyYWN7MX17Mn1cXFxcKSdcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH1cbiAgICBdXG4gIH1cbl07XG5cbmNvbnN0IFNsYXRlRWRpdG9yID0gKHsgdmFsdWUgfSkgPT4ge1xuICBjb25zdCByZW5kZXJFbGVtZW50ID0gdXNlQ2FsbGJhY2socHJvcHMgPT4gPEVsZW1lbnQgey4uLnByb3BzfSAvPiwgW10pO1xuICBjb25zdCByZW5kZXJMZWFmID0gdXNlQ2FsbGJhY2socHJvcHMgPT4gPExlYWYgey4uLnByb3BzfSAvPiwgW10pO1xuICBjb25zdCBlZGl0b3IgPSB1c2VNZW1vKCgpID0+IHdpdGhQbHVnaW5zKGNyZWF0ZUVkaXRvcigpKSwgW10pO1xuXG4gIGNvbnN0IHNsYXRlVmFsdWUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAvLyBTbGF0ZSB0aHJvd3MgYW4gZXJyb3IgaWYgdGhlIHZhbHVlIG9uIHRoZSBpbml0aWFsIHJlbmRlciBpcyBpbnZhbGlkXG4gICAgLy8gc28gd2UgZGlyZWN0bHkgc2V0IHRoZSB2YWx1ZSBvbiB0aGUgZWRpdG9yIGluIG9yZGVyXG4gICAgLy8gdG8gYmUgYWJsZSB0byB0cmlnZ2VyIG5vcm1hbGl6YXRpb24gb24gdGhlIGluaXRpYWwgdmFsdWUgYmVmb3JlIHJlbmRlcmluZ1xuICAgIGVkaXRvci5jaGlsZHJlbiA9IHZhbHVlO1xuICAgIEVkaXRvci5ub3JtYWxpemUoZWRpdG9yLCB7IGZvcmNlOiB0cnVlIH0pO1xuICAgIC8vIFdlIHJldHVybiB0aGUgbm9ybWFsaXplZCBpbnRlcm5hbCB2YWx1ZSBzbyB0aGF0IHRoZSByZW5kZXJpbmcgY2FuIHRha2Ugb3ZlciBmcm9tIGhlcmVcbiAgICByZXR1cm4gZWRpdG9yLmNoaWxkcmVuO1xuICB9LCBbZWRpdG9yLCB2YWx1ZV0pO1xuXG4gIHJldHVybiAoXG4gICAgPFNsYXRlIGVkaXRvcj17ZWRpdG9yfSB2YWx1ZT17c2xhdGVWYWx1ZX0+XG4gICAgICA8RWRpdGFibGVcbiAgICAgICAgcmVuZGVyRWxlbWVudD17cmVuZGVyRWxlbWVudH1cbiAgICAgICAgcmVuZGVyTGVhZj17cmVuZGVyTGVhZn1cbiAgICAgICAgcGxhY2Vob2xkZXI9XCJFbnRlciBzb21lIHJpY2ggdGV4dOKAplwiXG4gICAgICAgIHNwZWxsQ2hlY2tcbiAgICAgICAgb25LZXlEb3duPXtldmVudCA9PiB7XG4gICAgICAgICAgZm9yIChjb25zdCBob3RrZXkgaW4gSE9US0VZUykge1xuICAgICAgICAgICAgaWYgKGlzSG90a2V5KGhvdGtleSwgZXZlbnQpKSB7XG4gICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgIGNvbnN0IG1hcmsgPSBIT1RLRVlTW2hvdGtleV07XG4gICAgICAgICAgICAgIHRvZ2dsZU1hcmsoZWRpdG9yLCBtYXJrKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH19XG4gICAgICAvPlxuICAgIDwvU2xhdGU+XG4gICk7XG59O1xuXG5jb25zdCB0b2dnbGVCbG9jayA9IChlZGl0b3IsIGZvcm1hdCkgPT4ge1xuICBjb25zdCBpc0FjdGl2ZSA9IGlzQmxvY2tBY3RpdmUoXG4gICAgZWRpdG9yLFxuICAgIGZvcm1hdCxcbiAgICBURVhUX0FMSUdOX1RZUEVTLmluY2x1ZGVzKGZvcm1hdCkgPyAnYWxpZ24nIDogJ3R5cGUnXG4gICk7XG4gIGNvbnN0IGlzTGlzdCA9IExJU1RfVFlQRVMuaW5jbHVkZXMoZm9ybWF0KTtcblxuICBUcmFuc2Zvcm1zLnVud3JhcE5vZGVzKGVkaXRvciwge1xuICAgIG1hdGNoOiBuID0+XG4gICAgICAhRWRpdG9yLmlzRWRpdG9yKG4pICYmXG4gICAgICBTbGF0ZUVsZW1lbnQuaXNFbGVtZW50KG4pICYmXG4gICAgICBMSVNUX1RZUEVTLmluY2x1ZGVzKG4udHlwZSkgJiZcbiAgICAgICFURVhUX0FMSUdOX1RZUEVTLmluY2x1ZGVzKGZvcm1hdCksXG4gICAgc3BsaXQ6IHRydWVcbiAgfSk7XG4gIGxldCBuZXdQcm9wZXJ0aWVzO1xuICBpZiAoVEVYVF9BTElHTl9UWVBFUy5pbmNsdWRlcyhmb3JtYXQpKSB7XG4gICAgbmV3UHJvcGVydGllcyA9IHtcbiAgICAgIGFsaWduOiBpc0FjdGl2ZSA/IHVuZGVmaW5lZCA6IGZvcm1hdFxuICAgIH07XG4gIH0gZWxzZSB7XG4gICAgbmV3UHJvcGVydGllcyA9IHtcbiAgICAgIHR5cGU6IGlzQWN0aXZlID8gJ3BhcmFncmFwaCcgOiBpc0xpc3QgPyAnbGlzdC1pdGVtJyA6IGZvcm1hdFxuICAgIH07XG4gIH1cbiAgVHJhbnNmb3Jtcy5zZXROb2RlcyhlZGl0b3IsIG5ld1Byb3BlcnRpZXMpO1xuXG4gIGlmICghaXNBY3RpdmUgJiYgaXNMaXN0KSB7XG4gICAgY29uc3QgYmxvY2sgPSB7IHR5cGU6IGZvcm1hdCwgY2hpbGRyZW46IFtdIH07XG4gICAgVHJhbnNmb3Jtcy53cmFwTm9kZXMoZWRpdG9yLCBibG9jayk7XG4gIH1cbn07XG5cbmNvbnN0IHRvZ2dsZU1hcmsgPSAoZWRpdG9yLCBmb3JtYXQpID0+IHtcbiAgY29uc3QgaXNBY3RpdmUgPSBpc01hcmtBY3RpdmUoZWRpdG9yLCBmb3JtYXQpO1xuXG4gIGlmIChpc0FjdGl2ZSkge1xuICAgIEVkaXRvci5yZW1vdmVNYXJrKGVkaXRvciwgZm9ybWF0KTtcbiAgfSBlbHNlIHtcbiAgICBFZGl0b3IuYWRkTWFyayhlZGl0b3IsIGZvcm1hdCwgdHJ1ZSk7XG4gIH1cbn07XG5cbmNvbnN0IGlzQmxvY2tBY3RpdmUgPSAoZWRpdG9yLCBmb3JtYXQsIGJsb2NrVHlwZSA9ICd0eXBlJykgPT4ge1xuICBjb25zdCB7IHNlbGVjdGlvbiB9ID0gZWRpdG9yO1xuICBpZiAoIXNlbGVjdGlvbikgcmV0dXJuIGZhbHNlO1xuXG4gIGNvbnN0IFttYXRjaF0gPSBBcnJheS5mcm9tKFxuICAgIEVkaXRvci5ub2RlcyhlZGl0b3IsIHtcbiAgICAgIGF0OiBFZGl0b3IudW5oYW5nUmFuZ2UoZWRpdG9yLCBzZWxlY3Rpb24pLFxuICAgICAgbWF0Y2g6IG4gPT4gIUVkaXRvci5pc0VkaXRvcihuKSAmJiBTbGF0ZUVsZW1lbnQuaXNFbGVtZW50KG4pICYmIG5bYmxvY2tUeXBlXSA9PT0gZm9ybWF0XG4gICAgfSlcbiAgKTtcblxuICByZXR1cm4gISFtYXRjaDtcbn07XG5cbmNvbnN0IGlzTWFya0FjdGl2ZSA9IChlZGl0b3IsIGZvcm1hdCkgPT4ge1xuICBjb25zdCBtYXJrcyA9IEVkaXRvci5tYXJrcyhlZGl0b3IpO1xuICByZXR1cm4gbWFya3MgPyBtYXJrc1tmb3JtYXRdID09PSB0cnVlIDogZmFsc2U7XG59O1xuXG5jb25zdCBFbGVtZW50ID0gcHJvcHMgPT4ge1xuICBjb25zdCB7IGF0dHJpYnV0ZXMsIGNoaWxkcmVuLCBlbGVtZW50IH0gPSBwcm9wcztcbiAgY29uc3Qgc3R5bGUgPSB7IHRleHRBbGlnbjogZWxlbWVudC5hbGlnbiB9O1xuICBzd2l0Y2ggKGVsZW1lbnQudHlwZSkge1xuICAgIGNhc2UgJ2Jsb2NrLXF1b3RlJzpcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxibG9ja3F1b3RlIHN0eWxlPXtzdHlsZX0gey4uLmF0dHJpYnV0ZXN9PlxuICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgPC9ibG9ja3F1b3RlPlxuICAgICAgKTtcbiAgICBjYXNlICdidWxsZXRlZC1saXN0JzpcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDx1bCBzdHlsZT17c3R5bGV9IHsuLi5hdHRyaWJ1dGVzfT5cbiAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgIDwvdWw+XG4gICAgICApO1xuICAgIGNhc2UgJ2hlYWRpbmctb25lJzpcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxoMSBzdHlsZT17c3R5bGV9IHsuLi5hdHRyaWJ1dGVzfT5cbiAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgIDwvaDE+XG4gICAgICApO1xuICAgIGNhc2UgJ2hlYWRpbmctdHdvJzpcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxoMiBzdHlsZT17c3R5bGV9IHsuLi5hdHRyaWJ1dGVzfT5cbiAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgIDwvaDI+XG4gICAgICApO1xuICAgIGNhc2UgJ2xpc3QtaXRlbSc6XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8bGkgc3R5bGU9e3N0eWxlfSB7Li4uYXR0cmlidXRlc30+XG4gICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICA8L2xpPlxuICAgICAgKTtcbiAgICBjYXNlICdudW1iZXJlZC1saXN0JzpcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxvbCBzdHlsZT17c3R5bGV9IHsuLi5hdHRyaWJ1dGVzfT5cbiAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgIDwvb2w+XG4gICAgICApO1xuICAgIGNhc2UgJ21hdGgnOlxuICAgICAgcmV0dXJuIDxNYXRoUHJldmlldyB7Li4uYXR0cmlidXRlc30gey4uLnByb3BzfSAvPjtcbiAgICBjYXNlICdtYXRobWwnOlxuICAgICAgY29uc3QgaHRtbCA9IHByb3BzLm5vZGUuZGF0YS5nZXQoJ2h0bWwnKTtcblxuICAgICAgcmV0dXJuIDxzcGFuIHsuLi5wcm9wcy5hdHRyaWJ1dGVzfSBkYW5nZXJvdXNseVNldElubmVySFRNTD17eyBfX2h0bWw6IGh0bWwgfX0gLz47XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxwIHN0eWxlPXtzdHlsZX0gey4uLmF0dHJpYnV0ZXN9PlxuICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgPC9wPlxuICAgICAgKTtcbiAgfVxufTtcblxuY29uc3QgTGVhZiA9ICh7IGF0dHJpYnV0ZXMsIGNoaWxkcmVuLCBsZWFmIH0pID0+IHtcbiAgaWYgKGxlYWYuYm9sZCkge1xuICAgIGNoaWxkcmVuID0gPHN0cm9uZz57Y2hpbGRyZW59PC9zdHJvbmc+O1xuICB9XG5cbiAgaWYgKGxlYWYuY29kZSkge1xuICAgIGNoaWxkcmVuID0gPGNvZGU+e2NoaWxkcmVufTwvY29kZT47XG4gIH1cblxuICBpZiAobGVhZi5pdGFsaWMpIHtcbiAgICBjaGlsZHJlbiA9IDxlbT57Y2hpbGRyZW59PC9lbT47XG4gIH1cblxuICBpZiAobGVhZi51bmRlcmxpbmUpIHtcbiAgICBjaGlsZHJlbiA9IDx1PntjaGlsZHJlbn08L3U+O1xuICB9XG5cbiAgcmV0dXJuIDxzcGFuIHsuLi5hdHRyaWJ1dGVzfT57Y2hpbGRyZW59PC9zcGFuPjtcbn07XG5cbmNvbnN0IEJsb2NrQnV0dG9uID0gKHsgZm9ybWF0LCBpY29uIH0pID0+IHtcbiAgY29uc3QgZWRpdG9yID0gdXNlU2xhdGUoKTtcbiAgcmV0dXJuIChcbiAgICA8QnV0dG9uXG4gICAgICBhY3RpdmU9e2lzQmxvY2tBY3RpdmUoZWRpdG9yLCBmb3JtYXQsIFRFWFRfQUxJR05fVFlQRVMuaW5jbHVkZXMoZm9ybWF0KSA/ICdhbGlnbicgOiAndHlwZScpfVxuICAgICAgb25Nb3VzZURvd249e2V2ZW50ID0+IHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdG9nZ2xlQmxvY2soZWRpdG9yLCBmb3JtYXQpO1xuICAgICAgfX1cbiAgICA+XG4gICAgICA8SWNvbj57aWNvbn08L0ljb24+XG4gICAgPC9CdXR0b24+XG4gICk7XG59O1xuXG5jb25zdCBNYXJrQnV0dG9uID0gKHsgZm9ybWF0LCBpY29uIH0pID0+IHtcbiAgY29uc3QgZWRpdG9yID0gdXNlU2xhdGUoKTtcbiAgcmV0dXJuIChcbiAgICA8QnV0dG9uXG4gICAgICBhY3RpdmU9e2lzTWFya0FjdGl2ZShlZGl0b3IsIGZvcm1hdCl9XG4gICAgICBvbk1vdXNlRG93bj17ZXZlbnQgPT4ge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0b2dnbGVNYXJrKGVkaXRvciwgZm9ybWF0KTtcbiAgICAgIH19XG4gICAgPlxuICAgICAgPEljb24+e2ljb259PC9JY29uPlxuICAgIDwvQnV0dG9uPlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgU2xhdGVFZGl0b3I7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBOzs7Ozs7QUFFQSxJQUFNQSxPQUFPLEdBQUc7RUFDZCxTQUFTLE1BREs7RUFFZCxTQUFTLFFBRks7RUFHZCxTQUFTLFdBSEs7RUFJZCxTQUFTO0FBSkssQ0FBaEI7QUFPQSxJQUFNQyxVQUFVLEdBQUcsQ0FBQyxlQUFELEVBQWtCLGVBQWxCLENBQW5CO0FBQ0EsSUFBTUMsZ0JBQWdCLEdBQUcsQ0FBQyxNQUFELEVBQVMsUUFBVCxFQUFtQixPQUFuQixFQUE0QixTQUE1QixDQUF6Qjs7QUFFQSxJQUFNQyxRQUFRLEdBQUcsU0FBWEEsUUFBVyxDQUFBQyxN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
@@ -1,20 +0,0 @@
1
- diff a/packages/editable-html/src/test-serializer.js b/packages/editable-html/src/test-serializer.js (rejected hunks)
2
- @@ -4 +4 @@ import { jsx } from 'slate-hyperscript';
3
- -import { unWrapMath } from "@pie-lib/math-rendering";
4
- +import { unWrapMath } from '@pie-lib/math-rendering';
5
- @@ -82,4 +82,11 @@ class Html {
6
- - return jsx('element', { type: 'math', data: {
7
- - latex: unwrapped,
8
- - wrapper: wrapType
9
- - } }, children);
10
- + return jsx(
11
- + 'element',
12
- + {
13
- + type: 'math',
14
- + data: {
15
- + latex: unwrapped,
16
- + wrapper: wrapType
17
- + }
18
- + },
19
- + children
20
- + );