@pie-lib/mask-markup 1.13.13-next.0 → 2.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.
- package/CHANGELOG.md +0 -186
- package/lib/choices/choice.js +2 -2
- package/lib/choices/choice.js.map +1 -1
- package/lib/choices/index.js +2 -6
- package/lib/choices/index.js.map +1 -1
- package/lib/componentize.js +1 -1
- package/lib/componentize.js.map +1 -1
- package/lib/components/blank.js +1 -1
- package/lib/components/blank.js.map +1 -1
- package/lib/components/correct-input.js +1 -1
- package/lib/components/correct-input.js.map +1 -1
- package/lib/components/dropdown.js +1 -1
- package/lib/components/dropdown.js.map +1 -1
- package/lib/components/input.js +1 -1
- package/lib/components/input.js.map +1 -1
- package/lib/constructed-response.js +1 -1
- package/lib/constructed-response.js.map +1 -1
- package/lib/drag-in-the-blank.js +1 -1
- package/lib/drag-in-the-blank.js.map +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/inline-dropdown.js +1 -1
- package/lib/inline-dropdown.js.map +1 -1
- package/lib/mask.js +10 -19
- package/lib/mask.js.map +1 -1
- package/lib/new-serialization.js +320 -0
- package/lib/parse-html.js +16 -0
- package/lib/serialization.js +33 -30
- package/lib/serialization.js.map +1 -1
- package/lib/test-serializer.js +215 -0
- package/lib/with-mask.js +2 -2
- package/lib/with-mask.js.map +1 -1
- package/package.json +12 -11
- package/src/choices/choice.jsx +13 -13
- package/src/choices/index.jsx +13 -17
- package/src/components/blank.jsx +30 -30
- package/src/components/correct-input.jsx +18 -18
- package/src/components/dropdown.jsx +38 -27
- package/src/components/input.jsx +3 -3
- package/src/constructed-response.jsx +4 -2
- package/src/drag-in-the-blank.jsx +11 -8
- package/src/index.js +8 -1
- package/src/inline-dropdown.jsx +3 -2
- package/src/mask.jsx +18 -29
- package/src/new-serialization.jsx +291 -0
- package/src/parse-html.js +8 -0
- package/src/serialization.js +43 -37
- package/src/test-serializer.js +163 -0
- package/src/with-mask.jsx +10 -3
- package/LICENSE.md +0 -5
|
@@ -0,0 +1,320 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.valueToHtml = exports.reactAttributes = exports.parseStyleString = exports.htmlToValue = exports.getBase64 = exports.TEXT_RULE = exports.BLOCK_TAGS = void 0;
|
|
9
|
+
|
|
10
|
+
var _testSerializer = _interopRequireDefault(require("./test-serializer"));
|
|
11
|
+
|
|
12
|
+
var _react = _interopRequireDefault(require("react"));
|
|
13
|
+
|
|
14
|
+
var _debug = _interopRequireDefault(require("debug"));
|
|
15
|
+
|
|
16
|
+
var _toStyle = require("to-style");
|
|
17
|
+
|
|
18
|
+
var _image = require("./plugins/image");
|
|
19
|
+
|
|
20
|
+
var _math = require("./plugins/math");
|
|
21
|
+
|
|
22
|
+
var _media = require("./plugins/media");
|
|
23
|
+
|
|
24
|
+
var _list = require("./plugins/list");
|
|
25
|
+
|
|
26
|
+
var _table = require("./plugins/table");
|
|
27
|
+
|
|
28
|
+
var _respArea = require("./plugins/respArea");
|
|
29
|
+
|
|
30
|
+
var _slate = require("slate");
|
|
31
|
+
|
|
32
|
+
var _slateHyperscript = require("slate-hyperscript");
|
|
33
|
+
|
|
34
|
+
var log = (0, _debug["default"])('@pie-lib:editable-html:serialization');
|
|
35
|
+
/**
|
|
36
|
+
* Tags to blocks.
|
|
37
|
+
*
|
|
38
|
+
* @type {Object}
|
|
39
|
+
*/
|
|
40
|
+
|
|
41
|
+
var BLOCK_TAGS = {
|
|
42
|
+
div: 'div',
|
|
43
|
+
span: 'span',
|
|
44
|
+
p: 'paragraph',
|
|
45
|
+
blockquote: 'quote',
|
|
46
|
+
pre: 'code',
|
|
47
|
+
h1: 'heading-one',
|
|
48
|
+
h2: 'heading-two',
|
|
49
|
+
h3: 'heading-three',
|
|
50
|
+
h4: 'heading-four',
|
|
51
|
+
h5: 'heading-five',
|
|
52
|
+
h6: 'heading-six'
|
|
53
|
+
};
|
|
54
|
+
/**
|
|
55
|
+
* Tags to marks.
|
|
56
|
+
*
|
|
57
|
+
* @type {Object}
|
|
58
|
+
*/
|
|
59
|
+
|
|
60
|
+
exports.BLOCK_TAGS = BLOCK_TAGS;
|
|
61
|
+
var MARK_TAGS = {
|
|
62
|
+
b: 'bold',
|
|
63
|
+
em: 'italic',
|
|
64
|
+
u: 'underline',
|
|
65
|
+
s: 'strikethrough',
|
|
66
|
+
code: 'code',
|
|
67
|
+
strong: 'bold'
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
var parseStyleString = function parseStyleString(s) {
|
|
71
|
+
var regex = /([\w-]*)\s*:\s*([^;]*)/g;
|
|
72
|
+
var match;
|
|
73
|
+
var result = {};
|
|
74
|
+
|
|
75
|
+
while (match = regex.exec(s)) {
|
|
76
|
+
result[match[1]] = match[2].trim();
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
return result;
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
exports.parseStyleString = parseStyleString;
|
|
83
|
+
|
|
84
|
+
var getBase64 = function getBase64(file) {
|
|
85
|
+
return new Promise(function (resolve, reject) {
|
|
86
|
+
var reader = new FileReader();
|
|
87
|
+
reader.readAsDataURL(file);
|
|
88
|
+
|
|
89
|
+
reader.onload = function () {
|
|
90
|
+
return resolve(reader.result);
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
reader.onerror = function (error) {
|
|
94
|
+
return reject(error);
|
|
95
|
+
};
|
|
96
|
+
});
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
exports.getBase64 = getBase64;
|
|
100
|
+
|
|
101
|
+
var reactAttributes = function reactAttributes(o) {
|
|
102
|
+
return (0, _toStyle.object)(o, {
|
|
103
|
+
camelize: true,
|
|
104
|
+
addUnits: false
|
|
105
|
+
});
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
exports.reactAttributes = reactAttributes;
|
|
109
|
+
|
|
110
|
+
var attributesToMap = function attributesToMap(el) {
|
|
111
|
+
return function (acc, attribute) {
|
|
112
|
+
var value = el.getAttribute(attribute);
|
|
113
|
+
|
|
114
|
+
if (value) {
|
|
115
|
+
if (attribute === 'style') {
|
|
116
|
+
var styleString = el.getAttribute(attribute);
|
|
117
|
+
var reactStyleObject = reactAttributes(parseStyleString(styleString));
|
|
118
|
+
acc['style'] = reactStyleObject;
|
|
119
|
+
} else {
|
|
120
|
+
acc[attribute] = el.getAttribute(attribute);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
return acc;
|
|
125
|
+
};
|
|
126
|
+
};
|
|
127
|
+
|
|
128
|
+
var attributes = ['border', 'cellpadding', 'cellspacing', 'class', 'style'];
|
|
129
|
+
/**
|
|
130
|
+
* Serializer rules.
|
|
131
|
+
*
|
|
132
|
+
* @type {Array}
|
|
133
|
+
*/
|
|
134
|
+
|
|
135
|
+
var blocks = {
|
|
136
|
+
deserialize: function deserialize(el, next) {
|
|
137
|
+
log('[blocks:deserialize] block: ', el);
|
|
138
|
+
var block = BLOCK_TAGS[el.tagName.toLowerCase()];
|
|
139
|
+
if (!block) return;
|
|
140
|
+
log('[blocks:deserialize] block: ', block);
|
|
141
|
+
|
|
142
|
+
if (el.childNodes.length === 1) {
|
|
143
|
+
var cn = el.childNodes[0];
|
|
144
|
+
|
|
145
|
+
if (cn && cn.tagName && cn.tagName.toLowerCase() === block) {
|
|
146
|
+
log('[we have a child node of the same]...');
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
return (0, _slateHyperscript.jsx)('element', {
|
|
152
|
+
type: block,
|
|
153
|
+
|
|
154
|
+
/**
|
|
155
|
+
* Here for rendering styles for all block elements
|
|
156
|
+
*/
|
|
157
|
+
data: {
|
|
158
|
+
attributes: attributes.reduce(attributesToMap(el), {})
|
|
159
|
+
}
|
|
160
|
+
}, next(el.childNodes));
|
|
161
|
+
},
|
|
162
|
+
serialize: function serialize(object, children) {
|
|
163
|
+
if (object.object !== 'block') return;
|
|
164
|
+
var jsonData = object.data.toJSON();
|
|
165
|
+
log('[blocks:serialize] object: ', object, children);
|
|
166
|
+
var key;
|
|
167
|
+
|
|
168
|
+
for (key in BLOCK_TAGS) {
|
|
169
|
+
if (BLOCK_TAGS[key] === object.type) {
|
|
170
|
+
var Tag = key;
|
|
171
|
+
return /*#__PURE__*/_react["default"].createElement(Tag, jsonData.attributes, children);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
};
|
|
176
|
+
var marks = {
|
|
177
|
+
deserialize: function deserialize(el, next) {
|
|
178
|
+
var mark = MARK_TAGS[el.tagName.toLowerCase()];
|
|
179
|
+
|
|
180
|
+
if (!mark) {
|
|
181
|
+
return;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
log('[deserialize] mark: ', mark);
|
|
185
|
+
return (0, _slateHyperscript.jsx)('element', {
|
|
186
|
+
type: mark
|
|
187
|
+
}, next(el.childNodes));
|
|
188
|
+
},
|
|
189
|
+
serialize: function serialize(object, children) {
|
|
190
|
+
/*if (Mark.isMark(object)) {
|
|
191
|
+
for (var key in MARK_TAGS) {
|
|
192
|
+
if (MARK_TAGS[key] === object.type) {
|
|
193
|
+
const Tag = key;
|
|
194
|
+
return <Tag>{children}</Tag>;
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
}*/
|
|
198
|
+
}
|
|
199
|
+
};
|
|
200
|
+
|
|
201
|
+
var findPreviousText = function findPreviousText(el) {
|
|
202
|
+
if (el.nodeName === '#text') {
|
|
203
|
+
return el;
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
if (el.previousSibling) {
|
|
207
|
+
return findPreviousText(el.previousSibling);
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
return null;
|
|
211
|
+
};
|
|
212
|
+
|
|
213
|
+
var TEXT_RULE = {
|
|
214
|
+
deserialize: function deserialize(el) {
|
|
215
|
+
/**
|
|
216
|
+
* This needs to be called on the dom element in order to merge the adjacent text nodes together
|
|
217
|
+
* */
|
|
218
|
+
el.normalize();
|
|
219
|
+
|
|
220
|
+
if (el.tagName && el.tagName.toLowerCase() === 'br') {
|
|
221
|
+
return (0, _slateHyperscript.jsx)('text', {});
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
if (el.nodeName === '#text') {
|
|
225
|
+
if (el.nodeValue && el.nodeValue.match(/<!--.*?-->/)) return;
|
|
226
|
+
log('[text:deserialize] return text object..');
|
|
227
|
+
return (0, _slateHyperscript.jsx)('text', {}, el.nodeValue);
|
|
228
|
+
}
|
|
229
|
+
},
|
|
230
|
+
serialize: function serialize(obj, children) {
|
|
231
|
+
if (obj.object === 'string') {
|
|
232
|
+
return children.split('\n').reduce(function (array, text, i) {
|
|
233
|
+
if (i !== 0) array.push( /*#__PURE__*/_react["default"].createElement("br", null));
|
|
234
|
+
array.push(text);
|
|
235
|
+
return array;
|
|
236
|
+
}, []);
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
};
|
|
240
|
+
exports.TEXT_RULE = TEXT_RULE;
|
|
241
|
+
var RULES = [_list.serialization, _math.serialization, _media.serialization, _image.serialization, _table.serialization, _respArea.serialization, TEXT_RULE, blocks, marks];
|
|
242
|
+
|
|
243
|
+
function allWhitespace(node) {
|
|
244
|
+
// Use ECMA-262 Edition 3 String and RegExp features
|
|
245
|
+
return !/[^\t\n\r ]/.test(node.textContent);
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
function defaultParseHtml(html) {
|
|
249
|
+
if (typeof DOMParser === 'undefined') {
|
|
250
|
+
throw new Error('The native `DOMParser` global which the `Html` serializer uses by default is not present in this environment. You must supply the `options.parseHtml` function instead.');
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
var parsed = new DOMParser().parseFromString(html, 'text/html');
|
|
254
|
+
var body = parsed.body;
|
|
255
|
+
var textNodes = document.createTreeWalker(body, NodeFilter.SHOW_TEXT, null, null);
|
|
256
|
+
var n = textNodes.nextNode();
|
|
257
|
+
|
|
258
|
+
while (n) {
|
|
259
|
+
if (allWhitespace(n) || n.nodeValue === "\u200B") {
|
|
260
|
+
n.parentNode.removeChild(n);
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
n = textNodes.nextNode();
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
return body;
|
|
267
|
+
}
|
|
268
|
+
/** If this lib is used on the server side, we need to bypass using the DOMParser - just put in a stub. */
|
|
269
|
+
|
|
270
|
+
|
|
271
|
+
var parseHtml = typeof window === 'undefined' ? function () {
|
|
272
|
+
return {
|
|
273
|
+
childNodes: []
|
|
274
|
+
};
|
|
275
|
+
} : defaultParseHtml;
|
|
276
|
+
var serializer = new _testSerializer["default"]({
|
|
277
|
+
defaultBlock: 'div',
|
|
278
|
+
rules: RULES,
|
|
279
|
+
parseHtml: parseHtml
|
|
280
|
+
});
|
|
281
|
+
|
|
282
|
+
var _extends = Object.assign || function (target) {
|
|
283
|
+
for (var i = 1; i < arguments.length; i++) {
|
|
284
|
+
var source = arguments[i];
|
|
285
|
+
|
|
286
|
+
for (var key in source) {
|
|
287
|
+
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
|
288
|
+
target[key] = source[key];
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
return target;
|
|
294
|
+
};
|
|
295
|
+
|
|
296
|
+
var htmlToValue = function htmlToValue(html) {
|
|
297
|
+
try {
|
|
298
|
+
return serializer.deserialize(html);
|
|
299
|
+
} catch (e) {
|
|
300
|
+
console.log("Couldn't parse html: ", e);
|
|
301
|
+
return {};
|
|
302
|
+
}
|
|
303
|
+
};
|
|
304
|
+
|
|
305
|
+
exports.htmlToValue = htmlToValue;
|
|
306
|
+
|
|
307
|
+
var valueToHtml = function valueToHtml(value) {
|
|
308
|
+
return serializer.serialize(value);
|
|
309
|
+
};
|
|
310
|
+
/**
|
|
311
|
+
*
|
|
312
|
+
* <div><div>a</div></div> -> <div>a</div>
|
|
313
|
+
*
|
|
314
|
+
* <div><div>a</div><div>b</div></div> -> <div>a</div><div>b</div>
|
|
315
|
+
* <div><div>a</div>4444<div>b</div></div> -> <div>a</div>4444<div>b</div>
|
|
316
|
+
*/
|
|
317
|
+
|
|
318
|
+
|
|
319
|
+
exports.valueToHtml = valueToHtml;
|
|
320
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJsb2ciLCJkZWJ1ZyIsIkJMT0NLX1RBR1MiLCJkaXYiLCJzcGFuIiwicCIsImJsb2NrcXVvdGUiLCJwcmUiLCJoMSIsImgyIiwiaDMiLCJoNCIsImg1IiwiaDYiLCJNQVJLX1RBR1MiLCJiIiwiZW0iLCJ1IiwicyIsImNvZGUiLCJzdHJvbmciLCJwYXJzZVN0eWxlU3RyaW5nIiwicmVnZXgiLCJtYXRjaCIsInJlc3VsdCIsImV4ZWMiLCJ0cmltIiwiZ2V0QmFzZTY0IiwiZmlsZSIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0IiwicmVhZGVyIiwiRmlsZVJlYWRlciIsInJlYWRBc0RhdGFVUkwiLCJvbmxvYWQiLCJvbmVycm9yIiwiZXJyb3IiLCJyZWFjdEF0dHJpYnV0ZXMiLCJvIiwidG9TdHlsZU9iamVjdCIsImNhbWVsaXplIiwiYWRkVW5pdHMiLCJhdHRyaWJ1dGVzVG9NYXAiLCJlbCIsImFjYyIsImF0dHJpYnV0ZSIsInZhbHVlIiwiZ2V0QXR0cmlidXRlIiwic3R5bGVTdHJpbmciLCJyZWFjdFN0eWxlT2JqZWN0IiwiYXR0cmlidXRlcyIsImJsb2NrcyIsImRlc2VyaWFsaXplIiwibmV4dCIsImJsb2NrIiwidGFnTmFtZSIsInRvTG93ZXJDYXNlIiwiY2hpbGROb2RlcyIsImxlbmd0aCIsImNuIiwianN4IiwidHlwZSIsImRhdGEiLCJyZWR1Y2UiLCJzZXJpYWxpemUiLCJvYmplY3QiLCJjaGlsZHJlbiIsImpzb25EYXRhIiwidG9KU09OIiwia2V5IiwiVGFnIiwibWFya3MiLCJtYXJrIiwiZmluZFByZXZpb3VzVGV4dCIsIm5vZGVOYW1lIiwicHJldmlvdXNTaWJsaW5nIiwiVEVYVF9SVUxFIiwibm9ybWFsaXplIiwibm9kZVZhbHVlIiwib2JqIiwic3BsaXQiLCJhcnJheSIsInRleHQiLCJpIiwicHVzaCIsIlJVTEVTIiwibGlzdFNlcmlhbGl6YXRpb24iLCJtYXRoU2VyaWFsaXphdGlvbiIsIm1lZGlhU2VyaWFsaXphdGlvbiIsImltZ1NlcmlhbGl6YXRpb24iLCJ0YWJsZVNlcmlhbGl6YXRpb24iLCJyZXNwb25zZUFyZWFTZXJpYWxpemF0aW9uIiwiYWxsV2hpdGVzcGFjZSIsIm5vZGUiLCJ0ZXN0IiwidGV4dENvbnRlbnQiLCJkZWZhdWx0UGFyc2VIdG1sIiwiaHRtbCIsIkRPTVBhcnNlciIsIkVycm9yIiwicGFyc2VkIiwicGFyc2VGcm9tU3RyaW5nIiwiYm9keSIsInRleHROb2RlcyIsImRvY3VtZW50IiwiY3JlYXRlVHJlZVdhbGtlciIsIk5vZGVGaWx0ZXIiLCJTSE9XX1RFWFQiLCJuIiwibmV4dE5vZGUiLCJwYXJlbnROb2RlIiwicmVtb3ZlQ2hpbGQiLCJwYXJzZUh0bWwiLCJ3aW5kb3ciLCJzZXJpYWxpemVyIiwiVGVzdFNlcmlhbGl6ZXIiLCJkZWZhdWx0QmxvY2siLCJydWxlcyIsIl9leHRlbmRzIiwiT2JqZWN0IiwiYXNzaWduIiwidGFyZ2V0IiwiYXJndW1lbnRzIiwic291cmNlIiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaHRtbFRvVmFsdWUiLCJlIiwiY29uc29sZSIsInZhbHVlVG9IdG1sIl0sInNvdXJjZXMiOlsiLi4vc3JjL25ldy1zZXJpYWxpemF0aW9uLmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgVGVzdFNlcmlhbGl6ZXIgZnJvbSAnLi90ZXN0LXNlcmlhbGl6ZXInO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBkZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5pbXBvcnQgeyBvYmplY3QgYXMgdG9TdHlsZU9iamVjdCB9IGZyb20gJ3RvLXN0eWxlJztcblxuaW1wb3J0IHsgc2VyaWFsaXphdGlvbiBhcyBpbWdTZXJpYWxpemF0aW9uIH0gZnJvbSAnLi9wbHVnaW5zL2ltYWdlJztcbmltcG9ydCB7IHNlcmlhbGl6YXRpb24gYXMgbWF0aFNlcmlhbGl6YXRpb24gfSBmcm9tICcuL3BsdWdpbnMvbWF0aCc7XG5pbXBvcnQgeyBzZXJpYWxpemF0aW9uIGFzIG1lZGlhU2VyaWFsaXphdGlvbiB9IGZyb20gJy4vcGx1Z2lucy9tZWRpYSc7XG5pbXBvcnQgeyBzZXJpYWxpemF0aW9uIGFzIGxpc3RTZXJpYWxpemF0aW9uIH0gZnJvbSAnLi9wbHVnaW5zL2xpc3QnO1xuaW1wb3J0IHsgc2VyaWFsaXphdGlvbiBhcyB0YWJsZVNlcmlhbGl6YXRpb24gfSBmcm9tICcuL3BsdWdpbnMvdGFibGUnO1xuaW1wb3J0IHsgc2VyaWFsaXphdGlvbiBhcyByZXNwb25zZUFyZWFTZXJpYWxpemF0aW9uIH0gZnJvbSAnLi9wbHVnaW5zL3Jlc3BBcmVhJztcbmltcG9ydCB7IE1hcmssIFZhbHVlIH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsganN4IH0gZnJvbSBcInNsYXRlLWh5cGVyc2NyaXB0XCI7XG5cbmNvbnN0IGxvZyA9IGRlYnVnKCdAcGllLWxpYjplZGl0YWJsZS1odG1sOnNlcmlhbGl6YXRpb24nKTtcblxuLyoqXG4gKiBUYWdzIHRvIGJsb2Nrcy5cbiAqXG4gKiBAdHlwZSB7T2JqZWN0fVxuICovXG5cbmV4cG9ydCBjb25zdCBCTE9DS19UQUdTID0ge1xuICBkaXY6ICdkaXYnLFxuICBzcGFuOiAnc3BhbicsXG4gIHA6ICdwYXJhZ3JhcGgnLFxuICBibG9ja3F1b3RlOiAncXVvdGUnLFxuICBwcmU6ICdjb2RlJyxcbiAgaDE6ICdoZWFkaW5nLW9uZScsXG4gIGgyOiAnaGVhZGluZy10d28nLFxuICBoMzogJ2hlYWRpbmctdGhyZWUnLFxuICBoNDogJ2hlYWRpbmctZm91cicsXG4gIGg1OiAnaGVhZGluZy1maXZlJyxcbiAgaDY6ICdoZWFkaW5nLXNpeCdcbn07XG5cbi8qKlxuICogVGFncyB0byBtYXJrcy5cbiAqXG4gKiBAdHlwZSB7T2JqZWN0fVxuICovXG5cbmNvbnN0IE1BUktfVEFHUyA9IHtcbiAgYjogJ2JvbGQnLFxuICBlbTogJ2l0YWxpYycsXG4gIHU6ICd1bmRlcmxpbmUnLFxuICBzOiAnc3RyaWtldGhyb3VnaCcsXG4gIGNvZGU6ICdjb2RlJyxcbiAgc3Ryb25nOiAnYm9sZCdcbn07XG5cbmV4cG9ydCBjb25zdCBwYXJzZVN0eWxlU3RyaW5nID0gcyA9PiB7XG4gIGNvbnN0IHJlZ2V4ID0gLyhbXFx3LV0qKVxccyo6XFxzKihbXjtdKikvZztcbiAgbGV0IG1hdGNoO1xuICBjb25zdCByZXN1bHQgPSB7fTtcbiAgd2hpbGUgKChtYXRjaCA9IHJlZ2V4LmV4ZWMocykpKSB7XG4gICAgcmVzdWx0W21hdGNoWzFdXSA9IG1hdGNoWzJdLnRyaW0oKTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEJhc2U2NCA9IGZpbGUgPT4ge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XG4gICAgcmVhZGVyLm9ubG9hZCA9ICgpID0+IHJlc29sdmUocmVhZGVyLnJlc3VsdCk7XG4gICAgcmVhZGVyLm9uZXJyb3IgPSBlcnJvciA9PiByZWplY3QoZXJyb3IpO1xuICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCByZWFjdEF0dHJpYnV0ZXMgPSBvID0+IHRvU3R5bGVPYmplY3QobywgeyBjYW1lbGl6ZTogdHJ1ZSwgYWRkVW5pdHM6IGZhbHNlIH0pO1xuXG5jb25zdCBhdHRyaWJ1dGVzVG9NYXAgPSBlbCA9PiAoYWNjLCBhdHRyaWJ1dGUpID0+IHtcbiAgY29uc3QgdmFsdWUgPSBlbC5nZXRBdHRyaWJ1dGUoYXR0cmlidXRlKTtcbiAgaWYgKHZhbHVlKSB7XG4gICAgaWYgKGF0dHJpYnV0ZSA9PT0gJ3N0eWxlJykge1xuICAgICAgY29uc3Qgc3R5bGVTdHJpbmcgPSBlbC5nZXRBdHRyaWJ1dGUoYXR0cmlidXRlKTtcbiAgICAgIGNvbnN0IHJlYWN0U3R5bGVPYmplY3QgPSByZWFjdEF0dHJpYnV0ZXMocGFyc2VTdHlsZVN0cmluZyhzdHlsZVN0cmluZykpO1xuICAgICAgYWNjWydzdHlsZSddID0gcmVhY3RTdHlsZU9iamVjdDtcbiAgICB9IGVsc2Uge1xuICAgICAgYWNjW2F0dHJpYnV0ZV0gPSBlbC5nZXRBdHRyaWJ1dGUoYXR0cmlidXRlKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGFjYztcbn07XG5cbmNvbnN0IGF0dHJpYnV0ZXMgPSBbJ2JvcmRlcicsICdjZWxscGFkZGluZycsICdjZWxsc3BhY2luZycsICdjbGFzcycsICdzdHlsZSddO1xuXG4vKipcbiAqIFNlcmlhbGl6ZXIgcnVsZXMuXG4gKlxuICogQHR5cGUge0FycmF5fVxuICovXG5cbmNvbnN0IGJsb2NrcyA9IHtcbiAgZGVzZXJpYWxpemUoZWwsIG5leHQpIHtcbiAgICBsb2coJ1tibG9ja3M6ZGVzZXJpYWxpemVdIGJsb2NrOiAnLCBlbCk7XG4gICAgY29uc3QgYmxvY2sgPSBCTE9DS19UQUdTW2VsLnRhZ05hbWUudG9Mb3dlckNhc2UoKV07XG4gICAgaWYgKCFibG9jaykgcmV0dXJuO1xuICAgIGxvZygnW2Jsb2NrczpkZXNlcmlhbGl6ZV0gYmxvY2s6ICcsIGJsb2NrKTtcblxuICAgIGlmIChlbC5jaGlsZE5vZGVzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgY29uc3QgY24gPSBlbC5jaGlsZE5vZGVzWzBdO1xuICAgICAgaWYgKGNuICYmIGNuLnRhZ05hbWUgJiYgY24udGFnTmFtZS50b0xvd2VyQ2FzZSgpID09PSBibG9jaykge1xuICAgICAgICBsb2coJ1t3ZSBoYXZlIGEgY2hpbGQgbm9kZSBvZiB0aGUgc2FtZV0uLi4nKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBqc3goXG4gICAgICAnZWxlbWVudCcsXG4gICAgICB7XG4gICAgICAgIHR5cGU6IGJsb2NrLFxuICAgICAgICAvKipcbiAgICAgICAgICogSGVyZSBmb3IgcmVuZGVyaW5nIHN0eWxlcyBmb3IgYWxsIGJsb2NrIGVsZW1lbnRzXG4gICAgICAgICAqL1xuICAgICAgICBkYXRhOiB7IGF0dHJpYnV0ZXM6IGF0dHJpYnV0ZXMucmVkdWNlKGF0dHJpYnV0ZXNUb01hcChlbCksIHt9KSB9XG4gICAgICB9LFxuICAgICAgbmV4dChlbC5jaGlsZE5vZGVzKVxuICAgICk7XG4gIH0sXG4gIHNlcmlhbGl6ZTogKG9iamVjdCwgY2hpbGRyZW4pID0+IHtcbiAgICBpZiAob2JqZWN0Lm9iamVjdCAhPT0gJ2Jsb2NrJykgcmV0dXJuO1xuXG4gICAgY29uc3QganNvbkRhdGEgPSBvYmplY3QuZGF0YS50b0pTT04oKTtcblxuICAgIGxvZygnW2Jsb2NrczpzZXJpYWxpemVdIG9iamVjdDogJywgb2JqZWN0LCBjaGlsZHJlbik7XG4gICAgbGV0IGtleTtcblxuICAgIGZvciAoa2V5IGluIEJMT0NLX1RBR1MpIHtcbiAgICAgIGlmIChCTE9DS19UQUdTW2tleV0gPT09IG9iamVjdC50eXBlKSB7XG4gICAgICAgIGNvbnN0IFRhZyA9IGtleTtcblxuICAgICAgICByZXR1cm4gPFRhZyB7Li4uanNvbkRhdGEuYXR0cmlidXRlc30+e2NoaWxkcmVufTwvVGFnPjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn07XG5cbmNvbnN0IG1hcmtzID0ge1xuICBkZXNlcmlhbGl6ZShlbCwgbmV4dCkge1xuICAgIGNvbnN0IG1hcmsgPSBNQVJLX1RBR1NbZWwudGFnTmFtZS50b0xvd2VyQ2FzZSgpXTtcbiAgICBpZiAoIW1hcmspIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgbG9nKCdbZGVzZXJpYWxpemVdIG1hcms6ICcsIG1hcmspO1xuXG4gICAgcmV0dXJuIGpzeCgnZWxlbWVudCcsIHsgdHlwZTogbWFyayB9LCBuZXh0KGVsLmNoaWxkTm9kZXMpKTtcbiAgfSxcbiAgc2VyaWFsaXplKG9iamVjdCwgY2hpbGRyZW4pIHtcbiAgICAvKmlmIChNYXJrLmlzTWFyayhvYmplY3QpKSB7XG4gICAgICBmb3IgKHZhciBrZXkgaW4gTUFSS19UQUdTKSB7XG4gICAgICAgIGlmIChNQVJLX1RBR1Nba2V5XSA9PT0gb2JqZWN0LnR5cGUpIHtcbiAgICAgICAgICBjb25zdCBUYWcgPSBrZXk7XG4gICAgICAgICAgcmV0dXJuIDxUYWc+e2NoaWxkcmVufTwvVGFnPjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0qL1xuICB9XG59O1xuXG5jb25zdCBmaW5kUHJldmlvdXNUZXh0ID0gZWwgPT4ge1xuICBpZiAoZWwubm9kZU5hbWUgPT09ICcjdGV4dCcpIHtcbiAgICByZXR1cm4gZWw7XG4gIH1cblxuICBpZiAoZWwucHJldmlvdXNTaWJsaW5nKSB7XG4gICAgcmV0dXJuIGZpbmRQcmV2aW91c1RleHQoZWwucHJldmlvdXNTaWJsaW5nKTtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufTtcblxuZXhwb3J0IGNvbnN0IFRFWFRfUlVMRSA9IHtcbiAgZGVzZXJpYWxpemUoZWwpIHtcbiAgICAvKipcbiAgICAgKiBUaGlzIG5lZWRzIHRvIGJlIGNhbGxlZCBvbiB0aGUgZG9tIGVsZW1lbnQgaW4gb3JkZXIgdG8gbWVyZ2UgdGhlIGFkamFjZW50IHRleHQgbm9kZXMgdG9nZXRoZXJcbiAgICAgKiAqL1xuICAgIGVsLm5vcm1hbGl6ZSgpO1xuXG4gICAgaWYgKGVsLnRhZ05hbWUgJiYgZWwudGFnTmFtZS50b0xvd2VyQ2FzZSgpID09PSAnYnInKSB7XG4gICAgICByZXR1cm4ganN4KCd0ZXh0Jywge30pO1xuICAgIH1cblxuICAgIGlmIChlbC5ub2RlTmFtZSA9PT0gJyN0ZXh0Jykge1xuICAgICAgaWYgKGVsLm5vZGVWYWx1ZSAmJiBlbC5ub2RlVmFsdWUubWF0Y2goLzwhLS0uKj8tLT4vKSkgcmV0dXJuO1xuXG4gICAgICBsb2coJ1t0ZXh0OmRlc2VyaWFsaXplXSByZXR1cm4gdGV4dCBvYmplY3QuLicpO1xuICAgICAgcmV0dXJuIGpzeCgndGV4dCcsIHt9LCBlbC5ub2RlVmFsdWUpO1xuICAgIH1cbiAgfSxcblxuICBzZXJpYWxpemUob2JqLCBjaGlsZHJlbikge1xuICAgIGlmIChvYmoub2JqZWN0ID09PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuIGNoaWxkcmVuLnNwbGl0KCdcXG4nKS5yZWR1Y2UoKGFycmF5LCB0ZXh0LCBpKSA9PiB7XG4gICAgICAgIGlmIChpICE9PSAwKSBhcnJheS5wdXNoKDxiciAvPik7XG4gICAgICAgIGFycmF5LnB1c2godGV4dCk7XG4gICAgICAgIHJldHVybiBhcnJheTtcbiAgICAgIH0sIFtdKTtcbiAgICB9XG4gIH1cbn07XG5cbmNvbnN0IFJVTEVTID0gW1xuICBsaXN0U2VyaWFsaXphdGlvbixcbiAgbWF0aFNlcmlhbGl6YXRpb24sXG4gIG1lZGlhU2VyaWFsaXphdGlvbixcbiAgaW1nU2VyaWFsaXphdGlvbixcbiAgdGFibGVTZXJpYWxpemF0aW9uLFxuICByZXNwb25zZUFyZWFTZXJpYWxpemF0aW9uLFxuICBURVhUX1JVTEUsXG4gIGJsb2NrcyxcbiAgbWFya3Ncbl07XG5cbmZ1bmN0aW9uIGFsbFdoaXRlc3BhY2Uobm9kZSkge1xuICAvLyBVc2UgRUNNQS0yNjIgRWRpdGlvbiAzIFN0cmluZyBhbmQgUmVnRXhwIGZlYXR1cmVzXG4gIHJldHVybiAhL1teXFx0XFxuXFxyIF0vLnRlc3Qobm9kZS50ZXh0Q29udGVudCk7XG59XG5cbmZ1bmN0aW9uIGRlZmF1bHRQYXJzZUh0bWwoaHRtbCkge1xuICBpZiAodHlwZW9mIERPTVBhcnNlciA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnVGhlIG5hdGl2ZSBgRE9NUGFyc2VyYCBnbG9iYWwgd2hpY2ggdGhlIGBIdG1sYCBzZXJpYWxpemVyIHVzZXMgYnkgZGVmYXVsdCBpcyBub3QgcHJlc2VudCBpbiB0aGlzIGVudmlyb25tZW50LiBZb3UgbXVzdCBzdXBwbHkgdGhlIGBvcHRpb25zLnBhcnNlSHRtbGAgZnVuY3Rpb24gaW5zdGVhZC4nXG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IHBhcnNlZCA9IG5ldyBET01QYXJzZXIoKS5wYXJzZUZyb21TdHJpbmcoaHRtbCwgJ3RleHQvaHRtbCcpO1xuXG4gIGNvbnN0IHsgYm9keSB9ID0gcGFyc2VkO1xuICBjb25zdCB0ZXh0Tm9kZXMgPSBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGJvZHksIE5vZGVGaWx0ZXIuU0hPV19URVhULCBudWxsLCBudWxsKTtcbiAgbGV0IG4gPSB0ZXh0Tm9kZXMubmV4dE5vZGUoKTtcblxuICB3aGlsZSAobikge1xuICAgIGlmIChhbGxXaGl0ZXNwYWNlKG4pIHx8IG4ubm9kZVZhbHVlID09PSAnXFx1MjAwQicpIHtcbiAgICAgIG4ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChuKTtcbiAgICB9XG4gICAgbiA9IHRleHROb2Rlcy5uZXh0Tm9kZSgpO1xuICB9XG5cbiAgcmV0dXJuIGJvZHk7XG59XG5cbi8qKiBJZiB0aGlzIGxpYiBpcyB1c2VkIG9uIHRoZSBzZXJ2ZXIgc2lkZSwgd2UgbmVlZCB0byBieXBhc3MgdXNpbmcgdGhlIERPTVBhcnNlciAtIGp1c3QgcHV0IGluIGEgc3R1Yi4gKi9cbmNvbnN0IHBhcnNlSHRtbCA9XG4gIHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnXG4gICAgPyAoKSA9PiAoe1xuICAgICAgICBjaGlsZE5vZGVzOiBbXVxuICAgICAgfSlcbiAgICA6IGRlZmF1bHRQYXJzZUh0bWw7XG5cbmNvbnN0IHNlcmlhbGl6ZXIgPSBuZXcgVGVzdFNlcmlhbGl6ZXIoe1xuICBkZWZhdWx0QmxvY2s6ICdkaXYnLFxuICBydWxlczogUlVMRVMsXG4gIHBhcnNlSHRtbFxufSk7XG5cbmNvbnN0IF9leHRlbmRzID1cbiAgT2JqZWN0LmFzc2lnbiB8fFxuICBmdW5jdGlvbih0YXJnZXQpIHtcbiAgICBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTtcblxuICAgICAgZm9yICh2YXIga2V5IGluIHNvdXJjZSkge1xuICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkge1xuICAgICAgICAgIHRhcmdldFtrZXldID0gc291cmNlW2tleV07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGFyZ2V0O1xuICB9O1xuXG5leHBvcnQgY29uc3QgaHRtbFRvVmFsdWUgPSBodG1sID0+IHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gc2VyaWFsaXplci5kZXNlcmlhbGl6ZShodG1sKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGNvbnNvbGUubG9nKFwiQ291bGRuJ3QgcGFyc2UgaHRtbDogXCIsIGUpO1xuICAgIHJldHVybiB7fTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IHZhbHVlVG9IdG1sID0gdmFsdWUgPT4gc2VyaWFsaXplci5zZXJpYWxpemUodmFsdWUpO1xuXG4vKipcbiAqXG4gKiA8ZGl2PjxkaXY+YTwvZGl2PjwvZGl2PiAtPiA8ZGl2PmE8L2Rpdj5cbiAqXG4gKiA8ZGl2PjxkaXY+YTwvZGl2PjxkaXY+YjwvZGl2PjwvZGl2PiAtPiA8ZGl2PmE8L2Rpdj48ZGl2PmI8L2Rpdj5cbiAqIDxkaXY+PGRpdj5hPC9kaXY+NDQ0NDxkaXY+YjwvZGl2PjwvZGl2PiAtPiA8ZGl2PmE8L2Rpdj40NDQ0PGRpdj5iPC9kaXY+XG4gKi9cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUEsSUFBTUEsR0FBRyxHQUFHLElBQUFDLGlCQUFBLEVBQU0sc0NBQU4sQ0FBWjtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRU8sSUFBTUMsVUFBVSxHQUFHO0VBQ3hCQyxHQUFHLEVBQUUsS0FEbUI7RUFFeEJDLElBQUksRUFBRSxNQUZrQjtFQUd4QkMsQ0FBQyxFQUFFLFdBSHFCO0VBSXhCQyxVQUFVLEVBQUUsT0FKWTtFQUt4QkMsR0FBRyxFQUFFLE1BTG1CO0VBTXhCQyxFQUFFLEVBQUUsYUFOb0I7RUFPeEJDLEVBQUUsRUFBRSxhQVBvQjtFQVF4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
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.parseDegrees = void 0;
|
|
7
|
+
|
|
8
|
+
var parseDegrees = function parseDegrees(html) {
|
|
9
|
+
return html // removes \( use case: 50°
|
|
10
|
+
.replace(/\\[(]/g, '') // removes \) use case: 50°+m<1
|
|
11
|
+
.replace(/\\[)]/g, '') // removes \degree use case: 50°
|
|
12
|
+
.replace(/\\degree/g, '°');
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
exports.parseDegrees = parseDegrees;
|
|
16
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJwYXJzZURlZ3JlZXMiLCJodG1sIiwicmVwbGFjZSJdLCJzb3VyY2VzIjpbIi4uL3NyYy9wYXJzZS1odG1sLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBwYXJzZURlZ3JlZXMgPSBodG1sID0+XG4gIGh0bWxcbiAgICAvLyByZW1vdmVzIFxcKCAgIHVzZSBjYXNlOiA1MMKwXG4gICAgLnJlcGxhY2UoL1xcXFxbKF0vZywgJycpXG4gICAgLy8gcmVtb3ZlcyBcXCkgICB1c2UgY2FzZTogNTDCsCttPDFcbiAgICAucmVwbGFjZSgvXFxcXFspXS9nLCAnJylcbiAgICAvLyByZW1vdmVzIFxcZGVncmVlICB1c2UgY2FzZTogNTDCsFxuICAgIC5yZXBsYWNlKC9cXFxcZGVncmVlL2csICcmZGVnOycpO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQU8sSUFBTUEsWUFBWSxHQUFHLFNBQWZBLFlBQWUsQ0FBQUMsSUFBSTtFQUFBLE9BQzlCQSxJQUFJLENBQ0Y7RUFERSxDQUVEQyxPQUZILENBRVcsUUFGWCxFQUVxQixFQUZyQixFQUdFO0VBSEYsQ0FJR0EsT0FKSCxDQUlXLFFBSlgsRUFJcUIsRUFKckIsRUFLRTtFQUxGLENBTUdBLE9BTkgsQ0FNVyxXQU5YLEVBTXdCLE9BTnhCLENBRDhCO0FBQUEsQ0FBekIifQ==
|
package/lib/serialization.js
CHANGED
|
@@ -11,12 +11,14 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
|
|
|
11
11
|
|
|
12
12
|
var _react = _interopRequireDefault(require("react"));
|
|
13
13
|
|
|
14
|
-
var
|
|
14
|
+
var _slateHyperscript = require("slate-hyperscript");
|
|
15
15
|
|
|
16
16
|
var _toStyle = require("to-style");
|
|
17
17
|
|
|
18
18
|
var _debug = _interopRequireDefault(require("debug"));
|
|
19
19
|
|
|
20
|
+
var _testSerializer = _interopRequireDefault(require("./test-serializer"));
|
|
21
|
+
|
|
20
22
|
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; }
|
|
21
23
|
|
|
22
24
|
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; }
|
|
@@ -134,13 +136,15 @@ exports.MARK_TAGS = MARK_TAGS;
|
|
|
134
136
|
var marks = {
|
|
135
137
|
deserialize: function deserialize(el, next) {
|
|
136
138
|
var mark = MARK_TAGS[el.tagName.toLowerCase()];
|
|
137
|
-
|
|
139
|
+
|
|
140
|
+
if (!mark) {
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
|
|
138
144
|
log('[deserialize] mark: ', mark);
|
|
139
|
-
return {
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
nodes: next(el.childNodes)
|
|
143
|
-
};
|
|
145
|
+
return (0, _slateHyperscript.jsx)('text', {
|
|
146
|
+
type: mark
|
|
147
|
+
}, next(el.childNodes));
|
|
144
148
|
}
|
|
145
149
|
};
|
|
146
150
|
var rules = [marks, {
|
|
@@ -153,40 +157,39 @@ var rules = [marks, {
|
|
|
153
157
|
}
|
|
154
158
|
|
|
155
159
|
if (el.nodeType === TEXT_NODE) {
|
|
156
|
-
return
|
|
157
|
-
object: 'text',
|
|
158
|
-
leaves: [{
|
|
159
|
-
text: el.textContent
|
|
160
|
-
}]
|
|
161
|
-
};
|
|
160
|
+
return (0, _slateHyperscript.jsx)('text', el.textContent);
|
|
162
161
|
}
|
|
163
162
|
|
|
164
163
|
var type = el.tagName.toLowerCase();
|
|
165
164
|
var normalAttrs = attr(el) || {};
|
|
166
|
-
|
|
167
|
-
if (type == 'audio' && normalAttrs.controls == '') {
|
|
168
|
-
normalAttrs.controls = true;
|
|
169
|
-
}
|
|
170
|
-
|
|
171
165
|
var allAttrs = attributes.reduce(attributesToMap(el), _objectSpread({}, normalAttrs));
|
|
172
|
-
var object = getObject(type);
|
|
173
166
|
|
|
174
167
|
if (el.tagName.toLowerCase() === 'math') {
|
|
175
|
-
return {
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
168
|
+
return (0, _slateHyperscript.jsx)('element', {
|
|
169
|
+
type: 'mathml',
|
|
170
|
+
data: {
|
|
171
|
+
html: el.innerHTML
|
|
172
|
+
}
|
|
173
|
+
}); // return {
|
|
174
|
+
// isMath: true,
|
|
175
|
+
// nodes: [el]
|
|
176
|
+
// };
|
|
179
177
|
}
|
|
180
178
|
|
|
181
|
-
|
|
182
|
-
|
|
179
|
+
if (el.tagName.toLowerCase() === 'br') {
|
|
180
|
+
return (0, _slateHyperscript.jsx)('element', {
|
|
181
|
+
type: type,
|
|
182
|
+
data: {}
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
return (0, _slateHyperscript.jsx)('element', {
|
|
183
187
|
type: type,
|
|
184
188
|
data: {
|
|
185
189
|
dataset: _objectSpread({}, el.dataset),
|
|
186
190
|
attributes: _objectSpread({}, allAttrs)
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
};
|
|
191
|
+
}
|
|
192
|
+
}, next(el.childNodes));
|
|
190
193
|
}
|
|
191
194
|
}];
|
|
192
195
|
/**
|
|
@@ -194,7 +197,7 @@ var rules = [marks, {
|
|
|
194
197
|
* Having a default div block will just put every div on it's own line, which is not ideal.
|
|
195
198
|
*/
|
|
196
199
|
|
|
197
|
-
var html = new
|
|
200
|
+
var html = new _testSerializer["default"]({
|
|
198
201
|
rules: rules,
|
|
199
202
|
defaultBlock: 'span'
|
|
200
203
|
});
|
|
@@ -206,4 +209,4 @@ var deserialize = function deserialize(s) {
|
|
|
206
209
|
};
|
|
207
210
|
|
|
208
211
|
exports.deserialize = deserialize;
|
|
209
|
-
//# sourceMappingURL=serialization.js.map
|
|
212
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJsb2ciLCJkZWJ1ZyIsIklOTElORSIsIk1BUksiLCJURVhUX05PREUiLCJDT01NRU5UX05PREUiLCJhdHRyIiwiZWwiLCJhdHRyaWJ1dGVzIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwib3V0IiwiaSIsImEiLCJuYW1lIiwidmFsdWUiLCJnZXRPYmplY3QiLCJ0eXBlIiwiaW5jbHVkZXMiLCJwYXJzZVN0eWxlU3RyaW5nIiwicyIsInJlZ2V4IiwibWF0Y2giLCJyZXN1bHQiLCJleGVjIiwidHJpbSIsInJlYWN0QXR0cmlidXRlcyIsIm8iLCJ0b1N0eWxlT2JqZWN0IiwiY2FtZWxpemUiLCJhZGRVbml0cyIsImhhbmRsZVN0eWxlcyIsImF0dHJpYnV0ZSIsInN0eWxlU3RyaW5nIiwiZ2V0QXR0cmlidXRlIiwiaGFuZGxlQ2xhc3MiLCJhY2MiLCJjbGFzc05hbWVzIiwiYXR0cmlidXRlc1RvTWFwIiwic3R5bGUiLCJjbGFzc05hbWUiLCJNQVJLX1RBR1MiLCJiIiwiZW0iLCJ1IiwiY29kZSIsInN0cm9uZyIsIm1hcmtzIiwiZGVzZXJpYWxpemUiLCJuZXh0IiwibWFyayIsInRhZ05hbWUiLCJ0b0xvd2VyQ2FzZSIsImpzeCIsImNoaWxkTm9kZXMiLCJydWxlcyIsIm5vZGVUeXBlIiwidGV4dENvbnRlbnQiLCJub3JtYWxBdHRycyIsImFsbEF0dHJzIiwicmVkdWNlIiwiZGF0YSIsImh0bWwiLCJpbm5lckhUTUwiLCJkYXRhc2V0IiwiSHRtbCIsImRlZmF1bHRCbG9jayIsInRvSlNPTiJdLCJzb3VyY2VzIjpbIi4uL3NyYy9zZXJpYWxpemF0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBqc3ggfSBmcm9tICdzbGF0ZS1oeXBlcnNjcmlwdCc7XG5pbXBvcnQgeyBvYmplY3QgYXMgdG9TdHlsZU9iamVjdCB9IGZyb20gJ3RvLXN0eWxlJztcbmltcG9ydCBkZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5cbmltcG9ydCBIdG1sIGZyb20gJy4vdGVzdC1zZXJpYWxpemVyJztcblxuY29uc3QgbG9nID0gZGVidWcoJ0BwaWUtbGliOm1hc2stbWFya3VwOnNlcmlhbGl6YXRpb24nKTtcblxuY29uc3QgSU5MSU5FID0gWydzcGFuJ107XG5jb25zdCBNQVJLID0gWydlbScsICdzdHJvbmcnLCAndSddO1xuY29uc3QgVEVYVF9OT0RFID0gMztcbmNvbnN0IENPTU1FTlRfTk9ERSA9IDg7XG5cbmNvbnN0IGF0dHIgPSBlbCA9PiB7XG4gIGlmICghZWwuYXR0cmlidXRlcyB8fCBlbC5hdHRyaWJ1dGVzLmxlbmd0aCA8PSAwKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGNvbnN0IG91dCA9IHt9O1xuICBsZXQgaTtcblxuICBmb3IgKGkgPSAwOyBpIDwgZWwuYXR0cmlidXRlcy5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IGEgPSBlbC5hdHRyaWJ1dGVzW2ldO1xuXG4gICAgb3V0W2EubmFtZV0gPSBhLnZhbHVlO1xuICB9XG5cbiAgcmV0dXJuIG91dDtcbn07XG5cbmNvbnN0IGdldE9iamVjdCA9IHR5cGUgPT4ge1xuICBpZiAoSU5MSU5FLmluY2x1ZGVzKHR5cGUpKSB7XG4gICAgcmV0dXJuICdpbmxpbmUnO1xuICB9IGVsc2UgaWYgKE1BUksuaW5jbHVkZXModHlwZSkpIHtcbiAgICByZXR1cm4gJ21hcmsnO1xuICB9XG4gIHJldHVybiAnYmxvY2snO1xufTtcblxuZXhwb3J0IGNvbnN0IHBhcnNlU3R5bGVTdHJpbmcgPSBzID0+IHtcbiAgY29uc3QgcmVnZXggPSAvKFtcXHctXSopXFxzKjpcXHMqKFteO10qKS9nO1xuICBsZXQgbWF0Y2g7XG4gIGNvbnN0IHJlc3VsdCA9IHt9O1xuICB3aGlsZSAoKG1hdGNoID0gcmVnZXguZXhlYyhzKSkpIHtcbiAgICByZXN1bHRbbWF0Y2hbMV1dID0gbWF0Y2hbMl0udHJpbSgpO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59O1xuXG5leHBvcnQgY29uc3QgcmVhY3RBdHRyaWJ1dGVzID0gbyA9PiB0b1N0eWxlT2JqZWN0KG8sIHsgY2FtZWxpemU6IHRydWUsIGFkZFVuaXRzOiBmYWxzZSB9KTtcblxuY29uc3QgaGFuZGxlU3R5bGVzID0gKGVsLCBhdHRyaWJ1dGUpID0+IHtcbiAgY29uc3Qgc3R5bGVTdHJpbmcgPSBlbC5nZXRBdHRyaWJ1dGUoYXR0cmlidXRlKTtcblxuICByZXR1cm4gcmVhY3RBdHRyaWJ1dGVzKHBhcnNlU3R5bGVTdHJpbmcoc3R5bGVTdHJpbmcpKTtcbn07XG5cbmNvbnN0IGhhbmRsZUNsYXNzID0gKGVsLCBhY2MsIGF0dHJpYnV0ZSkgPT4ge1xuICBjb25zdCBjbGFzc05hbWVzID0gZWwuZ2V0QXR0cmlidXRlKGF0dHJpYnV0ZSk7XG5cbiAgZGVsZXRlIGFjYy5jbGFzcztcblxuICByZXR1cm4gY2xhc3NOYW1lcztcbn07XG5cbmNvbnN0IGF0dHJpYnV0ZXNUb01hcCA9IGVsID0+IChhY2MsIGF0dHJpYnV0ZSkgPT4ge1xuICBpZiAoIWVsLmdldEF0dHJpYnV0ZSkge1xuICAgIHJldHVybiBhY2M7XG4gIH1cblxuICBjb25zdCB2YWx1ZSA9IGVsLmdldEF0dHJpYnV0ZShhdHRyaWJ1dGUpO1xuXG4gIGlmICh2YWx1ZSkge1xuICAgIHN3aXRjaCAoYXR0cmlidXRlKSB7XG4gICAgICBjYXNlICdzdHlsZSc6XG4gICAgICAgIGFjYy5zdHlsZSA9IGhhbmRsZVN0eWxlcyhlbCwgYXR0cmlidXRlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdjbGFzcyc6XG4gICAgICAgIGFjYy5jbGFzc05hbWUgPSBoYW5kbGVDbGFzcyhlbCwgYWNjLCBhdHRyaWJ1dGUpO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGFjY1thdHRyaWJ1dGVdID0gZWwuZ2V0QXR0cmlidXRlKGF0dHJpYnV0ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBhY2M7XG59O1xuXG5jb25zdCBhdHRyaWJ1dGVzID0gWydib3JkZXInLCAnY2xhc3MnLCAnc3R5bGUnXTtcblxuLyoqXG4gKiBUYWdzIHRvIG1hcmtzLlxuICpcbiAqIEB0eXBlIHtPYmplY3R9XG4gKi9cblxuZXhwb3J0IGNvbnN0IE1BUktfVEFHUyA9IHtcbiAgYjogJ2JvbGQnLFxuICBlbTogJ2l0YWxpYycsXG4gIHU6ICd1bmRlcmxpbmUnLFxuICBzOiAnc3RyaWtldGhyb3VnaCcsXG4gIGNvZGU6ICdjb2RlJyxcbiAgc3Ryb25nOiAnc3Ryb25nJ1xufTtcblxuY29uc3QgbWFya3MgPSB7XG4gIGRlc2VyaWFsaXplKGVsLCBuZXh0KSB7XG4gICAgY29uc3QgbWFyayA9IE1BUktfVEFHU1tlbC50YWdOYW1lLnRvTG93ZXJDYXNlKCldO1xuXG4gICAgaWYgKCFtYXJrKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbG9nKCdbZGVzZXJpYWxpemVdIG1hcms6ICcsIG1hcmspO1xuICAgIHJldHVybiBqc3goJ3RleHQnLCB7IHR5cGU6IG1hcmsgfSwgbmV4dChlbC5jaGlsZE5vZGVzKSk7XG4gIH1cbn07XG5cbmNvbnN0IHJ1bGVzID0gW1xuICBtYXJrcyxcbiAge1xuICAgIC8qKlxuICAgICAqIGRlc2VyaWFsaXplIGV2ZXJ5dGhpbmcsIHdlJ3JlIG5vdCBmdXNzeSBhYm91dCB0aGUgZG9tIHN0cnVjdHVyZSBmb3Igbm93LlxuICAgICAqL1xuICAgIGRlc2VyaWFsaXplOiAoZWwsIG5leHQpID0+IHtcbiAgICAgIGlmIChlbC5ub2RlVHlwZSA9PT0gQ09NTUVOVF9OT0RFKSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG5cbiAgICAgIGlmIChlbC5ub2RlVHlwZSA9PT0gVEVYVF9OT0RFKSB7XG4gICAgICAgIHJldHVybiBqc3goJ3RleHQnLCBlbC50ZXh0Q29udGVudCk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHR5cGUgPSBlbC50YWdOYW1lLnRvTG93ZXJDYXNlKCk7XG5cbiAgICAgIGNvbnN0IG5vcm1hbEF0dHJzID0gYXR0cihlbCkgfHwge307XG4gICAgICBjb25zdCBhbGxBdHRycyA9IGF0dHJpYnV0ZXMucmVkdWNlKGF0dHJpYnV0ZXNUb01hcChlbCksIHsgLi4ubm9ybWFsQXR0cnMgfSk7XG5cbiAgICAgIGlmIChlbC50YWdOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICdtYXRoJykge1xuICAgICAgICByZXR1cm4ganN4KCdlbGVtZW50Jywge1xuICAgICAgICAgIHR5cGU6ICdtYXRobWwnLFxuICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIGh0bWw6IGVsLmlubmVySFRNTFxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gcmV0dXJuIHtcbiAgICAgICAgLy8gICBpc01hdGg6IHRydWUsXG4gICAgICAgIC8vICAgbm9kZXM6IFtlbF1cbiAgICAgICAgLy8gfTtcbiAgICAgIH1cblxuICAgICAgaWYgKGVsLnRhZ05hbWUudG9Mb3dlckNhc2UoKSA9PT0gJ2JyJykge1xuICAgICAgICByZXR1cm4ganN4KCdlbGVtZW50JywgeyB0eXBlLCBkYXRhOiB7fSB9KTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGpzeChcbiAgICAgICAgJ2VsZW1lbnQnLFxuICAgICAgICB7XG4gICAgICAgICAgdHlwZSxcbiAgICAgICAgICBkYXRhOiB7IGRhdGFzZXQ6IHsgLi4uZWwuZGF0YXNldCB9LCBhdHRyaWJ1dGVzOiB7IC4uLmFsbEF0dHJzIH0gfVxuICAgICAgICB9LFxuICAgICAgICBuZXh0KGVsLmNoaWxkTm9kZXMpXG4gICAgICApO1xuICAgIH1cbiAgfVxuXTtcblxuLyoqXG4gKiBDcmVhdGUgYSBuZXcgc2VyaWFsaXplciBpbnN0YW5jZSB3aXRoIG91ciBgcnVsZXNgIGZyb20gYWJvdmUuXG4gKiBIYXZpbmcgYSBkZWZhdWx0IGRpdiBibG9jayB3aWxsIGp1c3QgcHV0IGV2ZXJ5IGRpdiBvbiBpdCdzIG93biBsaW5lLCB3aGljaCBpcyBub3QgaWRlYWwuXG4gKi9cbmNvbnN0IGh0bWwgPSBuZXcgSHRtbCh7IHJ1bGVzLCBkZWZhdWx0QmxvY2s6ICdzcGFuJyB9KTtcblxuZXhwb3J0IGNvbnN0IGRlc2VyaWFsaXplID0gcyA9PiBodG1sLmRlc2VyaWFsaXplKHMsIHsgdG9KU09OOiB0cnVlIH0pO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUVBOzs7Ozs7QUFFQSxJQUFNQSxHQUFHLEdBQUcsSUFBQUMsaUJBQUEsRUFBTSxvQ0FBTixDQUFaO0FBRUEsSUFBTUMsTUFBTSxHQUFHLENBQUMsTUFBRCxDQUFmO0FBQ0EsSUFBTUMsSUFBSSxHQUFHLENBQUMsSUFBRCxFQUFPLFFBQVAsRUFBaUIsR0FBakIsQ0FBYjtBQUNBLElBQU1DLFNBQVMsR0FBRyxDQUFsQjtBQUNBLElBQU1DLFlBQVksR0FBRyxDQUFyQjs7QUFFQSxJQUFNQyxJQUFJLEdBQUcsU0FBUEEsSUFBTyxDQUFBQyxFQUFFLEVBQUk7RUFDakIsSUFBSSxDQUFDQSxFQUFFLENBQUNDLFVBQUosSUFBa0JELEVBQUUsQ0FBQ0MsVUFBSCxDQUFjQyxNQUFkLElBQXdCLENBQTlDLEVBQWlEO0lBQy9DLE9BQU9DLFNBQVA7RUFDRDs7RUFFRCxJQUFNQyxHQUFHLEdBQUcsRUFBWjtFQUNBLElBQUlDLENBQUo7O0VBRUEsS0FBS0EsQ0FBQyxHQUFHLENBQVQsRUFBWUEsQ0FBQyxHQUFHTCxFQUFFLENBQUNDLFVBQUgsQ0FBY0MsTUFBOUIsRUFBc0NHLENBQUMsRUFBdkMsRUFBMkM7SUFDekMsSUFBTUMsQ0FBQyxHQUFHTixFQUFFLENBQUNDLFVBQUgsQ0FBY0ksQ0FBZCxDQUFWO0lBRUFELEdBQUcsQ0FBQ0UsQ0FBQyxDQUFDQyxJQUFILENBQUgsR0FBY0QsQ0FBQyxDQUFDRSxLQUFoQjtFQUNEOztFQUVELE9BQU9KLEdBQVA7QUFDRCxDQWZEOztBQWlCQSxJQUFNSyxTQUFTLEdBQUcsU0FBWkEsU0FBWSxDQUFBQyxJQUFJLEVBQUk7RUFDeEIsSUFBSWYsTUFBTSxDQUFDZ0Is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
|
package/lib/serialization.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"serialization.js","names":["log","debug","INLINE","MARK","TEXT_NODE","COMMENT_NODE","attr","el","attributes","length","undefined","out","i","a","name","value","getObject","type","includes","parseStyleString","s","regex","match","result","exec","trim","reactAttributes","o","toStyleObject","camelize","addUnits","handleStyles","attribute","styleString","getAttribute","handleClass","acc","classNames","attributesToMap","style","className","MARK_TAGS","b","em","u","code","strong","marks","deserialize","next","mark","tagName","toLowerCase","object","nodes","childNodes","rules","nodeType","leaves","text","textContent","normalAttrs","allAttrs","reduce","isMath","data","dataset","html","Html","defaultBlock","toJSON"],"sources":["../src/serialization.js"],"sourcesContent":["import React from 'react';\nimport Html from './html-serializer';\nimport { object as toStyleObject } from 'to-style';\nimport debug from 'debug';\n\nconst log = debug('@pie-lib:mask-markup:serialization');\n\nconst INLINE = ['span'];\nconst MARK = ['em', 'strong', 'u'];\nconst TEXT_NODE = 3;\nconst COMMENT_NODE = 8;\n\nconst attr = el => {\n if (!el.attributes || el.attributes.length <= 0) {\n return undefined;\n }\n\n const out = {};\n let i;\n\n for (i = 0; i < el.attributes.length; i++) {\n const a = el.attributes[i];\n\n out[a.name] = a.value;\n }\n\n return out;\n};\n\nconst getObject = type => {\n if (INLINE.includes(type)) {\n return 'inline';\n } else if (MARK.includes(type)) {\n return 'mark';\n }\n return 'block';\n};\n\nexport const parseStyleString = s => {\n const regex = /([\\w-]*)\\s*:\\s*([^;]*)/g;\n let match;\n const result = {};\n while ((match = regex.exec(s))) {\n result[match[1]] = match[2].trim();\n }\n return result;\n};\n\nexport const reactAttributes = o => toStyleObject(o, { camelize: true, addUnits: false });\n\nconst handleStyles = (el, attribute) => {\n const styleString = el.getAttribute(attribute);\n\n return reactAttributes(parseStyleString(styleString));\n};\n\nconst handleClass = (el, acc, attribute) => {\n const classNames = el.getAttribute(attribute);\n\n delete acc.class;\n\n return classNames;\n};\n\nconst attributesToMap = el => (acc, attribute) => {\n if (!el.getAttribute) {\n return acc;\n }\n\n const value = el.getAttribute(attribute);\n\n if (value) {\n switch (attribute) {\n case 'style':\n acc.style = handleStyles(el, attribute);\n break;\n case 'class':\n acc.className = handleClass(el, acc, attribute);\n break;\n default:\n acc[attribute] = el.getAttribute(attribute);\n break;\n }\n }\n\n return acc;\n};\n\nconst attributes = ['border', 'class', 'style'];\n\n/**\n * Tags to marks.\n *\n * @type {Object}\n */\n\nexport const MARK_TAGS = {\n b: 'bold',\n em: 'italic',\n u: 'underline',\n s: 'strikethrough',\n code: 'code',\n strong: 'strong'\n};\n\nconst marks = {\n deserialize(el, next) {\n const mark = MARK_TAGS[el.tagName.toLowerCase()];\n if (!mark) return;\n log('[deserialize] mark: ', mark);\n return {\n object: 'mark',\n type: mark,\n nodes: next(el.childNodes)\n };\n }\n};\n\nconst rules = [\n marks,\n {\n /**\n * deserialize everything, we're not fussy about the dom structure for now.\n */\n deserialize: (el, next) => {\n if (el.nodeType === COMMENT_NODE) {\n return undefined;\n }\n\n if (el.nodeType === TEXT_NODE) {\n return {\n object: 'text',\n leaves: [{ text: el.textContent }]\n };\n }\n\n const type = el.tagName.toLowerCase();\n\n const normalAttrs = attr(el) || {};\n const allAttrs = attributes.reduce(attributesToMap(el), { ...normalAttrs });\n const object = getObject(type);\n\n if (el.tagName.toLowerCase() === 'math') {\n return {\n isMath: true,\n nodes: [el]\n };\n }\n\n return {\n object,\n type,\n data: { dataset: { ...el.dataset }, attributes: { ...allAttrs } },\n nodes: next(el.childNodes)\n };\n }\n }\n];\n\n/**\n * Create a new serializer instance with our `rules` from above.\n * Having a default div block will just put every div on it's own line, which is not ideal.\n */\nconst html = new Html({ rules, defaultBlock: 'span' });\n\nexport const deserialize = s => html.deserialize(s, { toJSON: true });\n"],"mappings":"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"}
|