@pie-lib/editable-html 9.5.13 → 10.0.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 (144) hide show
  1. package/CHANGELOG.md +0 -302
  2. package/lib/components.js +116 -0
  3. package/lib/components.js.map +1 -0
  4. package/lib/editor.js +418 -103
  5. package/lib/editor.js.map +1 -1
  6. package/lib/index.js +101 -155
  7. package/lib/index.js.map +1 -1
  8. package/lib/new-serialization.js +320 -0
  9. package/lib/new-serialization.js.map +1 -0
  10. package/lib/old-serialization.js +330 -0
  11. package/lib/parse-html.js +1 -1
  12. package/lib/parse-html.js.map +1 -1
  13. package/lib/plugins/characters/custom-popper.js +1 -1
  14. package/lib/plugins/characters/custom-popper.js.map +1 -1
  15. package/lib/plugins/characters/index.js +21 -19
  16. package/lib/plugins/characters/index.js.map +1 -1
  17. package/lib/plugins/characters/utils.js +1 -1
  18. package/lib/plugins/characters/utils.js.map +1 -1
  19. package/lib/plugins/hotKeys/index.js +67 -0
  20. package/lib/plugins/hotKeys/index.js.map +1 -0
  21. package/lib/plugins/image/alt-dialog.js +1 -6
  22. package/lib/plugins/image/alt-dialog.js.map +1 -1
  23. package/lib/plugins/image/component.js +70 -53
  24. package/lib/plugins/image/component.js.map +1 -1
  25. package/lib/plugins/image/image-toolbar.js +7 -9
  26. package/lib/plugins/image/image-toolbar.js.map +1 -1
  27. package/lib/plugins/image/index.js +83 -27
  28. package/lib/plugins/image/index.js.map +1 -1
  29. package/lib/plugins/image/insert-image-handler.js +72 -33
  30. package/lib/plugins/image/insert-image-handler.js.map +1 -1
  31. package/lib/plugins/index.js +23 -41
  32. package/lib/plugins/index.js.map +1 -1
  33. package/lib/plugins/list/index.js +64 -100
  34. package/lib/plugins/list/index.js.map +1 -1
  35. package/lib/plugins/math/index.js +86 -60
  36. package/lib/plugins/math/index.js.map +1 -1
  37. package/lib/plugins/media/index.js +202 -132
  38. package/lib/plugins/media/index.js.map +1 -1
  39. package/lib/plugins/media/media-dialog.js +17 -16
  40. package/lib/plugins/media/media-dialog.js.map +1 -1
  41. package/lib/plugins/media/media-toolbar.js +3 -3
  42. package/lib/plugins/media/media-toolbar.js.map +1 -1
  43. package/lib/plugins/media/media-wrapper.js +21 -58
  44. package/lib/plugins/media/media-wrapper.js.map +1 -1
  45. package/lib/plugins/respArea/drag-in-the-blank/choice.js +3 -3
  46. package/lib/plugins/respArea/drag-in-the-blank/choice.js.map +1 -1
  47. package/lib/plugins/respArea/drag-in-the-blank/index.js +3 -2
  48. package/lib/plugins/respArea/drag-in-the-blank/index.js.map +1 -1
  49. package/lib/plugins/respArea/explicit-constructed-response/index.js +3 -2
  50. package/lib/plugins/respArea/explicit-constructed-response/index.js.map +1 -1
  51. package/lib/plugins/respArea/icons/index.js +13 -15
  52. package/lib/plugins/respArea/icons/index.js.map +1 -1
  53. package/lib/plugins/respArea/index.js +87 -53
  54. package/lib/plugins/respArea/index.js.map +1 -1
  55. package/lib/plugins/respArea/inline-dropdown/index.js +4 -3
  56. package/lib/plugins/respArea/inline-dropdown/index.js.map +1 -1
  57. package/lib/plugins/respArea/utils.js +17 -20
  58. package/lib/plugins/respArea/utils.js.map +1 -1
  59. package/lib/plugins/table/icons/index.js +1 -1
  60. package/lib/plugins/table/icons/index.js.map +1 -1
  61. package/lib/plugins/table/index.js +381 -212
  62. package/lib/plugins/table/index.js.map +1 -1
  63. package/lib/plugins/table/table-toolbar.js +5 -6
  64. package/lib/plugins/table/table-toolbar.js.map +1 -1
  65. package/lib/plugins/toolbar/default-toolbar.js +55 -11
  66. package/lib/plugins/toolbar/default-toolbar.js.map +1 -1
  67. package/lib/plugins/toolbar/done-button.js +1 -1
  68. package/lib/plugins/toolbar/done-button.js.map +1 -1
  69. package/lib/plugins/toolbar/editor-and-toolbar.js +186 -232
  70. package/lib/plugins/toolbar/editor-and-toolbar.js.map +1 -1
  71. package/lib/plugins/toolbar/index.js +1 -2
  72. package/lib/plugins/toolbar/index.js.map +1 -1
  73. package/lib/plugins/toolbar/toolbar-buttons.js +1 -1
  74. package/lib/plugins/toolbar/toolbar-buttons.js.map +1 -1
  75. package/lib/plugins/toolbar/toolbar.js +253 -239
  76. package/lib/plugins/toolbar/toolbar.js.map +1 -1
  77. package/lib/plugins/utils.js +27 -2
  78. package/lib/plugins/utils.js.map +1 -1
  79. package/lib/serialization.js +1 -1
  80. package/lib/serialization.js.map +1 -1
  81. package/lib/slate-editor.js +302 -0
  82. package/lib/test-serializer.js +189 -0
  83. package/lib/test-serializer.js.map +1 -0
  84. package/lib/theme.js +1 -1
  85. package/lib/theme.js.map +1 -1
  86. package/package.json +18 -14
  87. package/playground/image/data.js +20 -20
  88. package/playground/image/index.html +22 -20
  89. package/playground/image/index.jsx +12 -10
  90. package/playground/index.html +25 -23
  91. package/playground/mathquill/index.html +23 -20
  92. package/playground/mathquill/index.jsx +18 -22
  93. package/playground/prod-test/index.html +24 -20
  94. package/playground/prod-test/index.jsx +5 -3
  95. package/playground/schema-override/data.js +10 -10
  96. package/playground/schema-override/image-plugin.jsx +3 -4
  97. package/playground/schema-override/index.html +21 -19
  98. package/playground/schema-override/index.jsx +13 -14
  99. package/playground/serialization/data.js +10 -10
  100. package/playground/serialization/image-plugin.jsx +3 -4
  101. package/playground/serialization/index.html +22 -20
  102. package/playground/table-examples.html +5 -8
  103. package/playground/webpack.config.js +10 -10
  104. package/src/components.js +135 -0
  105. package/src/editor.jsx +478 -141
  106. package/src/index.jsx +71 -95
  107. package/src/new-serialization.jsx +291 -0
  108. package/src/parse-html.js +1 -1
  109. package/src/plugins/characters/custom-popper.js +7 -7
  110. package/src/plugins/characters/index.jsx +33 -34
  111. package/src/plugins/characters/utils.js +81 -81
  112. package/src/plugins/hotKeys/index.js +54 -0
  113. package/src/plugins/image/alt-dialog.jsx +4 -5
  114. package/src/plugins/image/component.jsx +106 -89
  115. package/src/plugins/image/image-toolbar.jsx +27 -19
  116. package/src/plugins/image/index.jsx +75 -43
  117. package/src/plugins/image/insert-image-handler.js +62 -27
  118. package/src/plugins/index.jsx +23 -41
  119. package/src/plugins/list/index.jsx +70 -95
  120. package/src/plugins/math/index.jsx +102 -82
  121. package/src/plugins/media/index.jsx +159 -124
  122. package/src/plugins/media/media-dialog.js +98 -71
  123. package/src/plugins/media/media-toolbar.jsx +8 -8
  124. package/src/plugins/media/media-wrapper.jsx +29 -30
  125. package/src/plugins/respArea/drag-in-the-blank/choice.jsx +21 -19
  126. package/src/plugins/respArea/drag-in-the-blank/index.jsx +14 -11
  127. package/src/plugins/respArea/explicit-constructed-response/index.jsx +7 -6
  128. package/src/plugins/respArea/icons/index.jsx +11 -14
  129. package/src/plugins/respArea/index.jsx +92 -52
  130. package/src/plugins/respArea/inline-dropdown/index.jsx +9 -8
  131. package/src/plugins/respArea/utils.jsx +26 -35
  132. package/src/plugins/table/icons/index.jsx +17 -11
  133. package/src/plugins/table/index.jsx +288 -231
  134. package/src/plugins/table/table-toolbar.jsx +15 -11
  135. package/src/plugins/toolbar/default-toolbar.jsx +65 -19
  136. package/src/plugins/toolbar/done-button.jsx +4 -4
  137. package/src/plugins/toolbar/editor-and-toolbar.jsx +150 -145
  138. package/src/plugins/toolbar/index.jsx +2 -3
  139. package/src/plugins/toolbar/toolbar-buttons.jsx +11 -11
  140. package/src/plugins/toolbar/toolbar.jsx +244 -221
  141. package/src/plugins/utils.js +21 -4
  142. package/src/serialization.jsx +32 -32
  143. package/src/test-serializer.js +139 -0
  144. package/src/test-serializer.js.rej +20 -0
@@ -0,0 +1,302 @@
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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
@@ -0,0 +1,189 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+
10
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
11
+
12
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
+
14
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
+
16
+ var _react = _interopRequireDefault(require("react"));
17
+
18
+ var _server = _interopRequireDefault(require("react-dom/server"));
19
+
20
+ var _escapeHtml = _interopRequireDefault(require("escape-html"));
21
+
22
+ var _slate = require("slate");
23
+
24
+ var _slateHyperscript = require("slate-hyperscript");
25
+
26
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
27
+
28
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
29
+
30
+ var Html = /*#__PURE__*/(0, _createClass2["default"])(function Html(props) {
31
+ var _this = this;
32
+
33
+ (0, _classCallCheck2["default"])(this, Html);
34
+ (0, _defineProperty2["default"])(this, "serializeEls", function (node) {
35
+ if (_slate.Text.isText(node)) {
36
+ var string = (0, _escapeHtml["default"])(node.text);
37
+
38
+ if (node.bold) {
39
+ string = /*#__PURE__*/_react["default"].createElement("strong", null, string);
40
+ }
41
+
42
+ return string;
43
+ }
44
+
45
+ var children = (node.children || []).map(function (n) {
46
+ return _this.serializeEls(n);
47
+ });
48
+
49
+ var correctRule = _this.rules.reduce(function (res, rule) {
50
+ return res || rule.serialize(node, children);
51
+ }, null);
52
+
53
+ if (correctRule) {
54
+ return correctRule;
55
+ }
56
+
57
+ switch (node.type) {
58
+ case 'quote':
59
+ return /*#__PURE__*/_react["default"].createElement("blockquote", null, /*#__PURE__*/_react["default"].createElement("p", null, children));
60
+
61
+ case 'paragraph':
62
+ return /*#__PURE__*/_react["default"].createElement("p", null, children);
63
+
64
+ case 'link':
65
+ return /*#__PURE__*/_react["default"].createElement("a", {
66
+ href: (0, _escapeHtml["default"])(node.url)
67
+ }, children);
68
+
69
+ default:
70
+ return children;
71
+ }
72
+ });
73
+ (0, _defineProperty2["default"])(this, "serialize", function (node) {
74
+ var deserialized = _this.serializeEls(node);
75
+
76
+ var html = _server["default"].renderToStaticMarkup( /*#__PURE__*/_react["default"].createElement('body', null, deserialized));
77
+
78
+ var inner = html.slice(6, -7);
79
+ return inner;
80
+ });
81
+ (0, _defineProperty2["default"])(this, "deserialize", function (html) {
82
+ var body = _this.parseHtml(html);
83
+
84
+ if (!body.firstChild || body.firstChild.nodeType === Node.TEXT_NODE) {
85
+ body = _this.parseHtml("<p>".concat(html, "</p>"));
86
+ }
87
+
88
+ return _this.deserializeEls(body);
89
+ });
90
+ (0, _defineProperty2["default"])(this, "deserializeEls", function (element) {
91
+ var markAttributes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
92
+
93
+ if (element.nodeType === Node.TEXT_NODE) {
94
+ return (0, _slateHyperscript.jsx)('text', markAttributes, element.textContent);
95
+ } else if (element.nodeType !== Node.ELEMENT_NODE) {
96
+ return null;
97
+ }
98
+
99
+ var nodeAttributes = _objectSpread({}, markAttributes); // define attributes for text nodes
100
+
101
+
102
+ if (element.nodeName === 'STRONG') {
103
+ nodeAttributes.bold = true;
104
+ }
105
+
106
+ var nextFn = function nextFn(nodes) {
107
+ var childNodes = Array.from(nodes);
108
+ var children = Array.from(childNodes).map(function (node) {
109
+ return _this.deserializeEls(node, nodeAttributes);
110
+ }).flat();
111
+
112
+ if (children.length === 0) {
113
+ children.push((0, _slateHyperscript.jsx)('text', nodeAttributes, ''));
114
+ }
115
+
116
+ return children;
117
+ };
118
+
119
+ var correctRule = _this.rules.reduce(function (res, rule) {
120
+ return res || rule.deserialize(element, nextFn);
121
+ }, null);
122
+
123
+ if (correctRule) {
124
+ return correctRule;
125
+ }
126
+
127
+ var childNodes = Array.from(element.childNodes);
128
+ var children = Array.from(childNodes).map(function (node) {
129
+ return _this.deserializeEls(node, nodeAttributes);
130
+ }).flat();
131
+
132
+ if (children.length === 0) {
133
+ children.push((0, _slateHyperscript.jsx)('text', nodeAttributes, ''));
134
+ }
135
+
136
+ switch (element.nodeName) {
137
+ case 'TABLE':
138
+ return (0, _slateHyperscript.jsx)('element', {
139
+ type: 'table'
140
+ }, children);
141
+
142
+ case 'TBODY':
143
+ return (0, _slateHyperscript.jsx)('element', {
144
+ type: 'tbody'
145
+ }, children);
146
+
147
+ case 'TR':
148
+ return (0, _slateHyperscript.jsx)('element', {
149
+ type: 'tr'
150
+ }, children);
151
+
152
+ case 'TD':
153
+ return (0, _slateHyperscript.jsx)('element', {
154
+ type: 'td'
155
+ }, children);
156
+
157
+ case 'BODY':
158
+ return (0, _slateHyperscript.jsx)('fragment', {}, children);
159
+
160
+ case 'BR':
161
+ return '\n';
162
+
163
+ case 'BLOCKQUOTE':
164
+ return (0, _slateHyperscript.jsx)('element', {
165
+ type: 'quote'
166
+ }, children);
167
+
168
+ case 'P':
169
+ return (0, _slateHyperscript.jsx)('element', {
170
+ type: 'paragraph'
171
+ }, children);
172
+
173
+ case 'A':
174
+ return (0, _slateHyperscript.jsx)('element', {
175
+ type: 'link',
176
+ url: element.getAttribute('href')
177
+ }, children);
178
+
179
+ default:
180
+ return children;
181
+ }
182
+ });
183
+ this.defaultBlock = props.defaultBlock;
184
+ this.parseHtml = props.parseHtml;
185
+ this.rules = props.rules;
186
+ });
187
+ var _default = Html;
188
+ exports["default"] = _default;
189
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJIdG1sIiwicHJvcHMiLCJub2RlIiwiVGV4dCIsImlzVGV4dCIsInN0cmluZyIsImVzY2FwZUh0bWwiLCJ0ZXh0IiwiYm9sZCIsImNoaWxkcmVuIiwibWFwIiwibiIsInNlcmlhbGl6ZUVscyIsImNvcnJlY3RSdWxlIiwicnVsZXMiLCJyZWR1Y2UiLCJyZXMiLCJydWxlIiwic2VyaWFsaXplIiwidHlwZSIsInVybCIsImRlc2VyaWFsaXplZCIsImh0bWwiLCJSZWFjdFNlcnZlciIsInJlbmRlclRvU3RhdGljTWFya3VwIiwiUmVhY3QiLCJjcmVhdGVFbGVtZW50IiwiaW5uZXIiLCJzbGljZSIsImJvZHkiLCJwYXJzZUh0bWwiLCJmaXJzdENoaWxkIiwibm9kZVR5cGUiLCJOb2RlIiwiVEVYVF9OT0RFIiwiZGVzZXJpYWxpemVFbHMiLCJlbGVtZW50IiwibWFya0F0dHJpYnV0ZXMiLCJqc3giLCJ0ZXh0Q29udGVudCIsIkVMRU1FTlRfTk9ERSIsIm5vZGVBdHRyaWJ1dGVzIiwibm9kZU5hbWUiLCJuZXh0Rm4iLCJub2RlcyIsImNoaWxkTm9kZXMiLCJBcnJheSIsImZyb20iLCJmbGF0IiwibGVuZ3RoIiwicHVzaCIsImRlc2VyaWFsaXplIiwiZ2V0QXR0cmlidXRlIiwiZGVmYXVsdEJsb2NrIl0sInNvdXJjZXMiOlsiLi4vc3JjL3Rlc3Qtc2VyaWFsaXplci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFJlYWN0U2VydmVyIGZyb20gJ3JlYWN0LWRvbS9zZXJ2ZXInO1xuaW1wb3J0IGVzY2FwZUh0bWwgZnJvbSAnZXNjYXBlLWh0bWwnO1xuaW1wb3J0IHsgVGV4dCB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IGpzeCB9IGZyb20gJ3NsYXRlLWh5cGVyc2NyaXB0JztcblxuY2xhc3MgSHRtbCB7XG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgdGhpcy5kZWZhdWx0QmxvY2sgPSBwcm9wcy5kZWZhdWx0QmxvY2s7XG4gICAgdGhpcy5wYXJzZUh0bWwgPSBwcm9wcy5wYXJzZUh0bWw7XG4gICAgdGhpcy5ydWxlcyA9IHByb3BzLnJ1bGVzO1xuICB9XG5cbiAgc2VyaWFsaXplRWxzID0gbm9kZSA9PiB7XG4gICAgaWYgKFRleHQuaXNUZXh0KG5vZGUpKSB7XG4gICAgICBsZXQgc3RyaW5nID0gZXNjYXBlSHRtbChub2RlLnRleHQpO1xuICAgICAgaWYgKG5vZGUuYm9sZCkge1xuICAgICAgICBzdHJpbmcgPSA8c3Ryb25nPntzdHJpbmd9PC9zdHJvbmc+O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHN0cmluZztcbiAgICB9XG5cbiAgICBsZXQgY2hpbGRyZW4gPSAobm9kZS5jaGlsZHJlbiB8fCBbXSkubWFwKG4gPT4gdGhpcy5zZXJpYWxpemVFbHMobikpO1xuXG4gICAgY29uc3QgY29ycmVjdFJ1bGUgPSB0aGlzLnJ1bGVzLnJlZHVjZSgocmVzLCBydWxlKSA9PiB7XG4gICAgICByZXR1cm4gcmVzIHx8IHJ1bGUuc2VyaWFsaXplKG5vZGUsIGNoaWxkcmVuKTtcbiAgICB9LCBudWxsKTtcblxuICAgIGlmIChjb3JyZWN0UnVsZSkge1xuICAgICAgcmV0dXJuIGNvcnJlY3RSdWxlO1xuICAgIH1cblxuICAgIHN3aXRjaCAobm9kZS50eXBlKSB7XG4gICAgICBjYXNlICdxdW90ZSc6XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgPGJsb2NrcXVvdGU+XG4gICAgICAgICAgICA8cD57Y2hpbGRyZW59PC9wPlxuICAgICAgICAgIDwvYmxvY2txdW90ZT5cbiAgICAgICAgKTtcbiAgICAgIGNhc2UgJ3BhcmFncmFwaCc6XG4gICAgICAgIHJldHVybiA8cD57Y2hpbGRyZW59PC9wPjtcbiAgICAgIGNhc2UgJ2xpbmsnOlxuICAgICAgICByZXR1cm4gPGEgaHJlZj17ZXNjYXBlSHRtbChub2RlLnVybCl9PntjaGlsZHJlbn08L2E+O1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIGNoaWxkcmVuO1xuICAgIH1cbiAgfTtcblxuICBzZXJpYWxpemUgPSBub2RlID0+IHtcbiAgICBjb25zdCBkZXNlcmlhbGl6ZWQgPSB0aGlzLnNlcmlhbGl6ZUVscyhub2RlKTtcbiAgICBjb25zdCBodG1sID0gUmVhY3RTZXJ2ZXIucmVuZGVyVG9TdGF0aWNNYXJrdXAoUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICdib2R5JyxcbiAgICAgIG51bGwsXG4gICAgICBkZXNlcmlhbGl6ZWRcbiAgICApKTtcbiAgICBjb25zdCBpbm5lciA9IGh0bWwuc2xpY2UoNiwgLTcpO1xuICAgIHJldHVybiBpbm5lcjtcbiAgfTtcblxuICBkZXNlcmlhbGl6ZSA9IGh0bWwgPT4ge1xuICAgIGxldCBib2R5ID0gdGhpcy5wYXJzZUh0bWwoaHRtbCk7XG5cbiAgICBpZiAoIWJvZHkuZmlyc3RDaGlsZCB8fCBib2R5LmZpcnN0Q2hpbGQubm9kZVR5cGUgPT09IE5vZGUuVEVYVF9OT0RFKSB7XG4gICAgICBib2R5ID0gdGhpcy5wYXJzZUh0bWwoYDxwPiR7aHRtbH08L3A+YCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZGVzZXJpYWxpemVFbHMoYm9keSk7XG4gIH07XG5cbiAgZGVzZXJpYWxpemVFbHMgPSAoZWxlbWVudCwgbWFya0F0dHJpYnV0ZXMgPSB7fSkgPT4ge1xuICAgIGlmIChlbGVtZW50Lm5vZGVUeXBlID09PSBOb2RlLlRFWFRfTk9ERSkge1xuICAgICAgcmV0dXJuIGpzeCgndGV4dCcsIG1hcmtBdHRyaWJ1dGVzLCBlbGVtZW50LnRleHRDb250ZW50KTtcbiAgICB9IGVsc2UgaWYgKGVsZW1lbnQubm9kZVR5cGUgIT09IE5vZGUuRUxFTUVOVF9OT0RFKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBub2RlQXR0cmlidXRlcyA9IHsgLi4ubWFya0F0dHJpYnV0ZXMgfTtcblxuICAgIC8vIGRlZmluZSBhdHRyaWJ1dGVzIGZvciB0ZXh0IG5vZGVzXG4gICAgaWYgKGVsZW1lbnQubm9kZU5hbWUgPT09ICdTVFJPTkcnKSB7XG4gICAgICBub2RlQXR0cmlidXRlcy5ib2xkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBjb25zdCBuZXh0Rm4gPSBub2RlcyA9PiB7XG4gICAgICBjb25zdCBjaGlsZE5vZGVzID0gQXJyYXkuZnJvbShub2Rlcyk7XG4gICAgICBjb25zdCBjaGlsZHJlbiA9IEFycmF5LmZyb20oY2hpbGROb2RlcylcbiAgICAgICAgLm1hcChub2RlID0+IHRoaXMuZGVzZXJpYWxpemVFbHMobm9kZSwgbm9kZUF0dHJpYnV0ZXMpKVxuICAgICAgICAuZmxhdCgpO1xuXG4gICAgICBpZiAoY2hpbGRyZW4ubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIGNoaWxkcmVuLnB1c2goanN4KCd0ZXh0Jywgbm9kZUF0dHJpYnV0ZXMsICcnKSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBjaGlsZHJlbjtcbiAgICB9O1xuXG4gICAgY29uc3QgY29ycmVjdFJ1bGUgPSB0aGlzLnJ1bGVzLnJlZHVjZSgocmVzLCBydWxlKSA9PiB7XG4gICAgICByZXR1cm4gcmVzIHx8IHJ1bGUuZGVzZXJpYWxpemUoZWxlbWVudCwgbmV4dEZuKTtcbiAgICB9LCBudWxsKTtcblxuICAgIGlmIChjb3JyZWN0UnVsZSkge1xuICAgICAgcmV0dXJuIGNvcnJlY3RSdWxlO1xuICAgIH1cblxuICAgIGNvbnN0IGNoaWxkTm9kZXMgPSBBcnJheS5mcm9tKGVsZW1lbnQuY2hpbGROb2Rlcyk7XG4gICAgY29uc3QgY2hpbGRyZW4gPSBBcnJheS5mcm9tKGNoaWxkTm9kZXMpXG4gICAgICAubWFwKG5vZGUgPT4gdGhpcy5kZXNlcmlhbGl6ZUVscyhub2RlLCBub2RlQXR0cmlidXRlcykpXG4gICAgICAuZmxhdCgpO1xuXG4gICAgaWYgKGNoaWxkcmVuLmxlbmd0aCA9PT0gMCkge1xuICAgICAgY2hpbGRyZW4ucHVzaChqc3goJ3RleHQnLCBub2RlQXR0cmlidXRlcywgJycpKTtcbiAgICB9XG5cbiAgICBzd2l0Y2ggKGVsZW1lbnQubm9kZU5hbWUpIHtcbiAgICAgIGNhc2UgJ1RBQkxFJzpcbiAgICAgICAgcmV0dXJuIGpzeCgnZWxlbWVudCcsIHsgdHlwZTogJ3RhYmxlJyB9LCBjaGlsZHJlbik7XG4gICAgICBjYXNlICdUQk9EWSc6XG4gICAgICAgIHJldHVybiBqc3goJ2VsZW1lbnQnLCB7IHR5cGU6ICd0Ym9keScgfSwgY2hpbGRyZW4pO1xuICAgICAgY2FzZSAnVFInOlxuICAgICAgICByZXR1cm4ganN4KCdlbGVtZW50JywgeyB0eXBlOiAndHInIH0sIGNoaWxkcmVuKTtcbiAgICAgIGNhc2UgJ1REJzpcbiAgICAgICAgcmV0dXJuIGpzeCgnZWxlbWVudCcsIHsgdHlwZTogJ3RkJyB9LCBjaGlsZHJlbik7XG4gICAgICBjYXNlICdCT0RZJzpcbiAgICAgICAgcmV0dXJuIGpzeCgnZnJhZ21lbnQnLCB7fSwgY2hpbGRyZW4pO1xuICAgICAgY2FzZSAnQlInOlxuICAgICAgICByZXR1cm4gJ1xcbic7XG4gICAgICBjYXNlICdCTE9DS1FVT1RFJzpcbiAgICAgICAgcmV0dXJuIGpzeCgnZWxlbWVudCcsIHsgdHlwZTogJ3F1b3RlJyB9LCBjaGlsZHJlbik7XG4gICAgICBjYXNlICdQJzpcbiAgICAgICAgcmV0dXJuIGpzeCgnZWxlbWVudCcsIHsgdHlwZTogJ3BhcmFncmFwaCcgfSwgY2hpbGRyZW4pO1xuICAgICAgY2FzZSAnQSc6XG4gICAgICAgIHJldHVybiBqc3goJ2VsZW1lbnQnLCB7IHR5cGU6ICdsaW5rJywgdXJsOiBlbGVtZW50LmdldEF0dHJpYnV0ZSgnaHJlZicpIH0sIGNoaWxkcmVuKTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBjaGlsZHJlbjtcbiAgICB9XG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IEh0bWw7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOzs7Ozs7SUFFTUEsSSw4Q0FDSixjQUFZQyxLQUFa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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-serializer.js","names":["Html","props","node","Text","isText","string","escapeHtml","text","bold","children","map","n","serializeEls","correctRule","rules","reduce","res","rule","serialize","type","url","deserialized","html","ReactServer","renderToStaticMarkup","React","createElement","inner","slice","body","parseHtml","deserializeEls","element","markAttributes","nodeType","Node","TEXT_NODE","jsx","textContent","ELEMENT_NODE","nodeAttributes","nodeName","nextFn","nodes","childNodes","Array","from","flat","length","push","deserialize","getAttribute","defaultBlock"],"sources":["../src/test-serializer.js"],"sourcesContent":["import React from 'react';\nimport ReactServer from 'react-dom/server';\nimport escapeHtml from 'escape-html';\nimport { Text } from 'slate';\nimport { jsx } from 'slate-hyperscript';\n\nclass Html {\n constructor(props) {\n this.defaultBlock = props.defaultBlock;\n this.parseHtml = props.parseHtml;\n this.rules = props.rules;\n }\n\n serializeEls = node => {\n if (Text.isText(node)) {\n let string = escapeHtml(node.text);\n if (node.bold) {\n string = <strong>{string}</strong>;\n }\n return string;\n }\n\n let children = node.children.map(n => this.serializeEls(n));\n\n const correctRule = this.rules.reduce((res, rule) => {\n return res || rule.serialize(node, children);\n }, null);\n\n if (correctRule) {\n return correctRule;\n }\n\n switch (node.type) {\n case 'quote':\n return (\n <blockquote>\n <p>{children}</p>\n </blockquote>\n );\n case 'paragraph':\n return <p>{children}</p>;\n case 'link':\n return <a href={escapeHtml(node.url)}>{children}</a>;\n default:\n return children;\n }\n };\n\n serialize = node => {\n const deserialized = this.serializeEls(node);\n const html = ReactServer.renderToStaticMarkup(React.createElement(\n 'body',\n null,\n deserialized\n ));\n const inner = html.slice(6, -7);\n return inner;\n };\n\n deserialize = html => {\n const body = this.parseHtml(html);\n return this.deserializeEls(body);\n };\n\n deserializeEls = (element, markAttributes = {}) => {\n if (element.nodeType === Node.TEXT_NODE) {\n return jsx('text', markAttributes, element.textContent);\n } else if (element.nodeType !== Node.ELEMENT_NODE) {\n return null;\n }\n\n const nodeAttributes = { ...markAttributes };\n\n // define attributes for text nodes\n if (element.nodeName === 'STRONG') {\n nodeAttributes.bold = true;\n }\n\n const nextFn = nodes => {\n const childNodes = Array.from(nodes);\n const children = Array.from(childNodes)\n .map(node => this.deserializeEls(node, nodeAttributes))\n .flat();\n\n if (children.length === 0) {\n children.push(jsx('text', nodeAttributes, ''));\n }\n\n return children;\n };\n\n const correctRule = this.rules.reduce((res, rule) => {\n return res || rule.deserialize(element, nextFn);\n }, null);\n\n if (correctRule) {\n return correctRule;\n }\n\n const childNodes = Array.from(element.childNodes);\n const children = Array.from(childNodes)\n .map(node => this.deserializeEls(node, nodeAttributes))\n .flat();\n\n if (children.length === 0) {\n children.push(jsx('text', nodeAttributes, ''));\n }\n\n switch (element.nodeName) {\n case 'TABLE':\n return jsx('element', { type: 'table' }, children);\n case 'TBODY':\n return jsx('element', { type: 'tbody' }, children);\n case 'TR':\n return jsx('element', { type: 'tr' }, children);\n case 'TD':\n return jsx('element', { type: 'td' }, children);\n case 'BODY':\n return jsx('fragment', {}, children);\n case 'BR':\n return '\\n';\n case 'BLOCKQUOTE':\n return jsx('element', { type: 'quote' }, children);\n case 'P':\n return jsx('element', { type: 'paragraph' }, children);\n case 'A':\n return jsx('element', { type: 'link', url: element.getAttribute('href') }, children);\n default:\n return children;\n }\n };\n}\n\nexport default Html;\n"],"mappings":"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"}
package/lib/theme.js CHANGED
@@ -6,4 +6,4 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.primary = void 0;
7
7
  var primary = '#304ffe';
8
8
  exports.primary = primary;
9
- //# sourceMappingURL=theme.js.map
9
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJwcmltYXJ5Il0sInNvdXJjZXMiOlsiLi4vc3JjL3RoZW1lLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBwcmltYXJ5ID0gJyMzMDRmZmUnO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBTyxJQUFNQSxPQUFPLEdBQUcsU0FBaEIifQ==
package/lib/theme.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/theme.js"],"names":["primary"],"mappings":";;;;;;AAAO,IAAMA,OAAO,GAAG,SAAhB","sourcesContent":["export const primary = '#304ffe';\n"],"file":"theme.js"}
1
+ {"version":3,"file":"theme.js","names":["primary"],"sources":["../src/theme.js"],"sourcesContent":["export const primary = '#304ffe';\n"],"mappings":";;;;;;AAAO,IAAMA,OAAO,GAAG,SAAhB"}
package/package.json CHANGED
@@ -1,39 +1,43 @@
1
1
  {
2
2
  "name": "@pie-lib/editable-html",
3
- "version": "9.5.13",
3
+ "version": "10.0.0-beta.1",
4
4
  "description": "",
5
5
  "license": "ISC",
6
6
  "main": "lib/index.js",
7
7
  "module": "src/index.jsx",
8
8
  "author": "pie-framework developers",
9
9
  "dependencies": {
10
+ "@emotion/css": "^11.10.0",
10
11
  "@material-ui/core": "^3.8.3",
11
12
  "@material-ui/icons": "^3.0.2",
12
13
  "@material-ui/styles": "^3.0.0-alpha.10",
13
- "@pie-lib/drag": "^2.1.12",
14
- "@pie-lib/math-rendering": "^2.5.12",
15
- "@pie-lib/math-toolbar": "^1.11.22",
16
- "@pie-lib/render-ui": "^4.14.12",
14
+ "@pie-lib/drag": "^1.1.52",
15
+ "@pie-lib/math-rendering": "^2.5.0",
16
+ "@pie-lib/math-toolbar": "^1.11.0",
17
+ "@pie-lib/render-ui": "^4.13.4",
17
18
  "change-case": "^3.0.2",
18
19
  "classnames": "^2.2.6",
19
20
  "debug": "^4.1.1",
20
21
  "immutable": "^4.0.0-rc.12",
22
+ "is-hotkey": "^0.2.0",
21
23
  "keycode": "^2.2.0",
22
24
  "lodash": "^4.17.11",
23
25
  "prop-types": "^15.6.2",
24
26
  "react-attr-converter": "^0.3.1",
25
27
  "react-jss": "^8.6.1",
26
28
  "react-portal": "^4.2.0",
27
- "slate": "^0.36.2",
28
- "slate-dev-environment": "^0.2.0",
29
- "slate-edit-list": "^0.11.3",
30
- "slate-edit-table": "^0.17.0",
31
- "slate-html-serializer": "^0.6.12",
32
- "slate-plain-serializer": "^0.5.26",
33
- "slate-prop-types": "^0.4.38",
34
- "slate-react": "^0.14.3",
29
+ "slate": "^0.82.1",
30
+ "slate-dev-environment": "^0.2.5",
31
+ "slate-edit-list": "^0.12.1",
32
+ "slate-edit-table": "^0.18.0",
33
+ "slate-history": "^0.66.0",
34
+ "slate-html-serializer": "^0.8.13",
35
+ "slate-hyperscript": "^0.77.0",
36
+ "slate-plain-serializer": "^0.7.13",
37
+ "slate-prop-types": "^0.5.44",
38
+ "slate-react": "^0.83.0",
35
39
  "slate-schema-violations": "^0.1.39",
36
- "slate-soft-break": "^0.8.1",
40
+ "slate-soft-break": "^0.9.0",
37
41
  "to-style": "^1.3.3"
38
42
  },
39
43
  "devDependencies": {