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