@20minutes/draft-convert 3.0.3 → 3.1.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/README.md +2 -3
- package/esm/blockEntities.js +62 -65
- package/esm/blockInlineStyles.js +69 -92
- package/esm/convertFromHTML.js +447 -481
- package/esm/convertToHTML.js +81 -102
- package/esm/default/defaultBlockHTML.js +33 -30
- package/esm/default/defaultInlineHTML.js +16 -16
- package/esm/encodeBlock.js +38 -42
- package/esm/index.js +4 -4
- package/esm/util/accumulateFunction.js +7 -9
- package/esm/util/blockTypeObjectFunction.js +7 -9
- package/esm/util/getBlockTags.js +20 -20
- package/esm/util/getElementHTML.js +25 -29
- package/esm/util/getElementTagLength.js +15 -17
- package/esm/util/getNestedBlockTags.js +21 -26
- package/esm/util/parseHTML.js +15 -15
- package/esm/util/rangeSort.js +6 -6
- package/esm/util/splitReactElement.js +27 -13
- package/esm/util/styleObjectFunction.js +6 -8
- package/esm/util/updateMutation.js +57 -47
- package/lib/blockEntities.js +74 -69
- package/lib/blockInlineStyles.js +81 -96
- package/lib/convertFromHTML.js +502 -487
- package/lib/convertToHTML.js +134 -106
- package/lib/default/defaultBlockHTML.js +47 -35
- package/lib/default/defaultInlineHTML.js +29 -21
- package/lib/encodeBlock.js +50 -46
- package/lib/index.js +25 -23
- package/lib/util/accumulateFunction.js +13 -11
- package/lib/util/blockTypeObjectFunction.js +13 -11
- package/lib/util/getBlockTags.js +35 -27
- package/lib/util/getElementHTML.js +40 -36
- package/lib/util/getElementTagLength.js +28 -22
- package/lib/util/getNestedBlockTags.js +35 -32
- package/lib/util/parseHTML.js +22 -18
- package/lib/util/rangeSort.js +13 -9
- package/lib/util/splitReactElement.js +42 -19
- package/lib/util/styleObjectFunction.js +12 -10
- package/lib/util/updateMutation.js +64 -51
- package/package.json +25 -28
- package/dist/draft-convert.js +0 -440
- package/dist/draft-convert.min.js +0 -1
package/lib/convertToHTML.js
CHANGED
|
@@ -1,114 +1,142 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
2
|
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
|
|
3
|
+
value: true
|
|
6
4
|
});
|
|
7
|
-
exports
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
5
|
+
Object.defineProperty(exports, "default", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return _default;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _invariant = /*#__PURE__*/ _interop_require_default(require("invariant"));
|
|
12
|
+
const _react = /*#__PURE__*/ _interop_require_default(require("react"));
|
|
13
|
+
const _server = /*#__PURE__*/ _interop_require_default(require("react-dom/server"));
|
|
14
|
+
const _draftjs = /*#__PURE__*/ _interop_require_wildcard(require("draft-js"));
|
|
15
|
+
const _encodeBlock = /*#__PURE__*/ _interop_require_default(require("./encodeBlock.js"));
|
|
16
|
+
const _blockEntities = /*#__PURE__*/ _interop_require_default(require("./blockEntities.js"));
|
|
17
|
+
const _blockInlineStyles = /*#__PURE__*/ _interop_require_default(require("./blockInlineStyles.js"));
|
|
18
|
+
const _accumulateFunction = /*#__PURE__*/ _interop_require_default(require("./util/accumulateFunction.js"));
|
|
19
|
+
const _blockTypeObjectFunction = /*#__PURE__*/ _interop_require_default(require("./util/blockTypeObjectFunction.js"));
|
|
20
|
+
const _getBlockTags = /*#__PURE__*/ _interop_require_default(require("./util/getBlockTags.js"));
|
|
21
|
+
const _getNestedBlockTags = /*#__PURE__*/ _interop_require_default(require("./util/getNestedBlockTags.js"));
|
|
22
|
+
const _defaultBlockHTML = /*#__PURE__*/ _interop_require_default(require("./default/defaultBlockHTML.js"));
|
|
23
|
+
function _interop_require_default(obj) {
|
|
24
|
+
return obj && obj.__esModule ? obj : {
|
|
25
|
+
default: obj
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
function _getRequireWildcardCache(nodeInterop) {
|
|
29
|
+
if (typeof WeakMap !== "function") return null;
|
|
30
|
+
var cacheBabelInterop = new WeakMap();
|
|
31
|
+
var cacheNodeInterop = new WeakMap();
|
|
32
|
+
return (_getRequireWildcardCache = function(nodeInterop) {
|
|
33
|
+
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
|
|
34
|
+
})(nodeInterop);
|
|
35
|
+
}
|
|
36
|
+
function _interop_require_wildcard(obj, nodeInterop) {
|
|
37
|
+
if (!nodeInterop && obj && obj.__esModule) {
|
|
38
|
+
return obj;
|
|
39
|
+
}
|
|
40
|
+
if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
|
|
41
|
+
return {
|
|
42
|
+
default: obj
|
|
43
|
+
};
|
|
42
44
|
}
|
|
43
|
-
var
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
listStack = [];
|
|
60
|
-
} else {
|
|
61
|
-
while (depth + 1 !== listStack.length || type !== listStack[depth].type) {
|
|
62
|
-
if (depth + 1 === listStack.length) {
|
|
63
|
-
// depth is right but doesn't match type
|
|
64
|
-
var blockToClose = listStack[depth];
|
|
65
|
-
closeNestTags += (0, _getNestedBlockTags["default"])(getBlockHTML(blockToClose), depth).nestEnd;
|
|
66
|
-
openNestTags += (0, _getNestedBlockTags["default"])(getBlockHTML(block), depth).nestStart;
|
|
67
|
-
listStack[depth] = block;
|
|
68
|
-
} else if (depth + 1 < listStack.length) {
|
|
69
|
-
var _blockToClose = listStack[listStack.length - 1];
|
|
70
|
-
closeNestTags += (0, _getNestedBlockTags["default"])(getBlockHTML(_blockToClose), depth).nestEnd;
|
|
71
|
-
listStack = listStack.slice(0, -1);
|
|
72
|
-
} else {
|
|
73
|
-
openNestTags += (0, _getNestedBlockTags["default"])(getBlockHTML(block), depth).nestStart;
|
|
74
|
-
listStack.push(block);
|
|
75
|
-
}
|
|
45
|
+
var cache = _getRequireWildcardCache(nodeInterop);
|
|
46
|
+
if (cache && cache.has(obj)) {
|
|
47
|
+
return cache.get(obj);
|
|
48
|
+
}
|
|
49
|
+
var newObj = {
|
|
50
|
+
__proto__: null
|
|
51
|
+
};
|
|
52
|
+
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
53
|
+
for(var key in obj){
|
|
54
|
+
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
55
|
+
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
|
|
56
|
+
if (desc && (desc.get || desc.set)) {
|
|
57
|
+
Object.defineProperty(newObj, key, desc);
|
|
58
|
+
} else {
|
|
59
|
+
newObj[key] = obj[key];
|
|
60
|
+
}
|
|
76
61
|
}
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
62
|
+
}
|
|
63
|
+
newObj.default = obj;
|
|
64
|
+
if (cache) {
|
|
65
|
+
cache.set(obj, newObj);
|
|
66
|
+
}
|
|
67
|
+
return newObj;
|
|
68
|
+
}
|
|
69
|
+
const { convertToRaw } = _draftjs;
|
|
70
|
+
const defaultEntityToHTML = (entity, originalText)=>originalText;
|
|
71
|
+
const defaultValidateHTML = (html)=>true;
|
|
72
|
+
const convertToHTML = ({ styleToHTML = {}, blockToHTML = {}, entityToHTML = defaultEntityToHTML, validateHTML = defaultValidateHTML })=>(contentState)=>{
|
|
73
|
+
(0, _invariant.default)(contentState !== null && contentState !== undefined, 'Expected contentState to be non-null');
|
|
74
|
+
let getBlockHTML;
|
|
75
|
+
if (blockToHTML.__isMiddleware === true) {
|
|
76
|
+
getBlockHTML = blockToHTML((0, _blockTypeObjectFunction.default)(_defaultBlockHTML.default));
|
|
89
77
|
} else {
|
|
90
|
-
|
|
78
|
+
getBlockHTML = (0, _accumulateFunction.default)((0, _blockTypeObjectFunction.default)(blockToHTML), (0, _blockTypeObjectFunction.default)(_defaultBlockHTML.default));
|
|
91
79
|
}
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
80
|
+
const rawState = convertToRaw(contentState);
|
|
81
|
+
let listStack = [];
|
|
82
|
+
let result = rawState.blocks.map((block)=>{
|
|
83
|
+
const { type, depth } = block;
|
|
84
|
+
let closeNestTags = '';
|
|
85
|
+
let openNestTags = '';
|
|
86
|
+
const blockHTMLResult = getBlockHTML(block);
|
|
87
|
+
if (!blockHTMLResult) {
|
|
88
|
+
throw new Error(`convertToHTML: missing HTML definition for block with type ${block.type}`);
|
|
89
|
+
}
|
|
90
|
+
if (!blockHTMLResult.nest) {
|
|
91
|
+
// this block can't be nested, so reset all nesting if necessary
|
|
92
|
+
closeNestTags = listStack.reduceRight((string, nestedBlock)=>string + (0, _getNestedBlockTags.default)(getBlockHTML(nestedBlock), depth).nestEnd, '');
|
|
93
|
+
listStack = [];
|
|
94
|
+
} else {
|
|
95
|
+
while(depth + 1 !== listStack.length || type !== listStack[depth].type){
|
|
96
|
+
if (depth + 1 === listStack.length) {
|
|
97
|
+
// depth is right but doesn't match type
|
|
98
|
+
const blockToClose = listStack[depth];
|
|
99
|
+
closeNestTags += (0, _getNestedBlockTags.default)(getBlockHTML(blockToClose), depth).nestEnd;
|
|
100
|
+
openNestTags += (0, _getNestedBlockTags.default)(getBlockHTML(block), depth).nestStart;
|
|
101
|
+
listStack[depth] = block;
|
|
102
|
+
} else if (depth + 1 < listStack.length) {
|
|
103
|
+
const blockToClose = listStack[listStack.length - 1];
|
|
104
|
+
closeNestTags += (0, _getNestedBlockTags.default)(getBlockHTML(blockToClose), depth).nestEnd;
|
|
105
|
+
listStack = listStack.slice(0, -1);
|
|
106
|
+
} else {
|
|
107
|
+
openNestTags += (0, _getNestedBlockTags.default)(getBlockHTML(block), depth).nestStart;
|
|
108
|
+
listStack.push(block);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
const innerHTML = (0, _blockInlineStyles.default)((0, _blockEntities.default)((0, _encodeBlock.default)(block), rawState.entityMap, entityToHTML), styleToHTML);
|
|
113
|
+
const blockHTML = (0, _getBlockTags.default)(getBlockHTML(block));
|
|
114
|
+
let html;
|
|
115
|
+
if (typeof blockHTML === 'string') {
|
|
116
|
+
html = blockHTML;
|
|
117
|
+
} else {
|
|
118
|
+
html = blockHTML.start + innerHTML + blockHTML.end;
|
|
119
|
+
}
|
|
120
|
+
if (innerHTML.length === 0 && Object.prototype.hasOwnProperty.call(blockHTML, 'empty')) {
|
|
121
|
+
if (/*#__PURE__*/ _react.default.isValidElement(blockHTML.empty)) {
|
|
122
|
+
html = _server.default.renderToStaticMarkup(blockHTML.empty);
|
|
123
|
+
} else {
|
|
124
|
+
html = blockHTML.empty;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
const finalHtml = closeNestTags + openNestTags + html;
|
|
128
|
+
if (!validateHTML(finalHtml)) {
|
|
129
|
+
return '';
|
|
130
|
+
}
|
|
131
|
+
return finalHtml;
|
|
132
|
+
}).join('');
|
|
133
|
+
result = listStack.reduce((res, nestBlock)=>res + (0, _getNestedBlockTags.default)(getBlockHTML(nestBlock), nestBlock.depth).nestEnd, result);
|
|
134
|
+
return result;
|
|
135
|
+
};
|
|
136
|
+
const _default = (...args)=>{
|
|
137
|
+
if (args.length === 1 && Object.prototype.hasOwnProperty.call(args[0], '_map') && args[0].getBlockMap != null) {
|
|
138
|
+
// skip higher-order function and use defaults
|
|
139
|
+
return convertToHTML({})(...args);
|
|
140
|
+
}
|
|
141
|
+
return convertToHTML(...args);
|
|
104
142
|
};
|
|
105
|
-
var _default = exports["default"] = function _default() {
|
|
106
|
-
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
107
|
-
args[_key] = arguments[_key];
|
|
108
|
-
}
|
|
109
|
-
if (args.length === 1 && Object.prototype.hasOwnProperty.call(args[0], '_map') && args[0].getBlockMap != null) {
|
|
110
|
-
// skip higher-order function and use defaults
|
|
111
|
-
return convertToHTML({}).apply(void 0, args);
|
|
112
|
-
}
|
|
113
|
-
return convertToHTML.apply(void 0, args);
|
|
114
|
-
};
|
|
@@ -1,39 +1,51 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
2
|
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
|
|
3
|
+
value: true
|
|
6
4
|
});
|
|
7
|
-
exports
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
var _default = exports["default"] = {
|
|
12
|
-
unstyled: /*#__PURE__*/_react["default"].createElement("p", null),
|
|
13
|
-
paragraph: /*#__PURE__*/_react["default"].createElement("p", null),
|
|
14
|
-
'header-one': /*#__PURE__*/_react["default"].createElement("h1", null),
|
|
15
|
-
'header-two': /*#__PURE__*/_react["default"].createElement("h2", null),
|
|
16
|
-
'header-two-unordered': /*#__PURE__*/_react["default"].createElement("h2", null),
|
|
17
|
-
'header-two-ordered': /*#__PURE__*/_react["default"].createElement("h2", null),
|
|
18
|
-
'header-three': /*#__PURE__*/_react["default"].createElement("h3", null),
|
|
19
|
-
'header-four': /*#__PURE__*/_react["default"].createElement("h4", null),
|
|
20
|
-
'header-five': /*#__PURE__*/_react["default"].createElement("h5", null),
|
|
21
|
-
'header-six': /*#__PURE__*/_react["default"].createElement("h6", null),
|
|
22
|
-
'code-block': /*#__PURE__*/_react["default"].createElement("pre", null),
|
|
23
|
-
blockquote: /*#__PURE__*/_react["default"].createElement("blockquote", null),
|
|
24
|
-
'unordered-list-item': {
|
|
25
|
-
element: /*#__PURE__*/_react["default"].createElement("li", null),
|
|
26
|
-
nest: /*#__PURE__*/_react["default"].createElement("ul", null)
|
|
27
|
-
},
|
|
28
|
-
'ordered-list-item': {
|
|
29
|
-
element: /*#__PURE__*/_react["default"].createElement("li", null),
|
|
30
|
-
nest: function nest(depth) {
|
|
31
|
-
var type = ORDERED_LIST_TYPES[depth % 3];
|
|
32
|
-
return /*#__PURE__*/_react["default"].createElement("ol", {
|
|
33
|
-
type: type
|
|
34
|
-
});
|
|
5
|
+
Object.defineProperty(exports, "default", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return _default;
|
|
35
9
|
}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
10
|
+
});
|
|
11
|
+
const _react = /*#__PURE__*/ _interop_require_default(require("react"));
|
|
12
|
+
function _interop_require_default(obj) {
|
|
13
|
+
return obj && obj.__esModule ? obj : {
|
|
14
|
+
default: obj
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
// based on Draft.js' custom list depth styling
|
|
18
|
+
const ORDERED_LIST_TYPES = [
|
|
19
|
+
'1',
|
|
20
|
+
'a',
|
|
21
|
+
'i'
|
|
22
|
+
];
|
|
23
|
+
const _default = {
|
|
24
|
+
unstyled: /*#__PURE__*/ _react.default.createElement("p", null),
|
|
25
|
+
paragraph: /*#__PURE__*/ _react.default.createElement("p", null),
|
|
26
|
+
'header-one': /*#__PURE__*/ _react.default.createElement("h1", null),
|
|
27
|
+
'header-two': /*#__PURE__*/ _react.default.createElement("h2", null),
|
|
28
|
+
'header-two-unordered': /*#__PURE__*/ _react.default.createElement("h2", null),
|
|
29
|
+
'header-two-ordered': /*#__PURE__*/ _react.default.createElement("h2", null),
|
|
30
|
+
'header-three': /*#__PURE__*/ _react.default.createElement("h3", null),
|
|
31
|
+
'header-four': /*#__PURE__*/ _react.default.createElement("h4", null),
|
|
32
|
+
'header-five': /*#__PURE__*/ _react.default.createElement("h5", null),
|
|
33
|
+
'header-six': /*#__PURE__*/ _react.default.createElement("h6", null),
|
|
34
|
+
'code-block': /*#__PURE__*/ _react.default.createElement("pre", null),
|
|
35
|
+
blockquote: /*#__PURE__*/ _react.default.createElement("blockquote", null),
|
|
36
|
+
'unordered-list-item': {
|
|
37
|
+
element: /*#__PURE__*/ _react.default.createElement("li", null),
|
|
38
|
+
nest: /*#__PURE__*/ _react.default.createElement("ul", null)
|
|
39
|
+
},
|
|
40
|
+
'ordered-list-item': {
|
|
41
|
+
element: /*#__PURE__*/ _react.default.createElement("li", null),
|
|
42
|
+
nest: (depth)=>{
|
|
43
|
+
const type = ORDERED_LIST_TYPES[depth % 3];
|
|
44
|
+
return /*#__PURE__*/ _react.default.createElement("ol", {
|
|
45
|
+
type: type
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
media: /*#__PURE__*/ _react.default.createElement("figure", null),
|
|
50
|
+
atomic: /*#__PURE__*/ _react.default.createElement("figure", null)
|
|
51
|
+
};
|
|
@@ -1,25 +1,33 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
2
|
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
|
|
3
|
+
value: true
|
|
6
4
|
});
|
|
7
|
-
exports
|
|
8
|
-
|
|
5
|
+
Object.defineProperty(exports, "default", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return defaultInlineHTML;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _react = /*#__PURE__*/ _interop_require_default(require("react"));
|
|
12
|
+
function _interop_require_default(obj) {
|
|
13
|
+
return obj && obj.__esModule ? obj : {
|
|
14
|
+
default: obj
|
|
15
|
+
};
|
|
16
|
+
}
|
|
9
17
|
function defaultInlineHTML(style) {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
}
|
|
18
|
+
switch(style){
|
|
19
|
+
case 'BOLD':
|
|
20
|
+
return /*#__PURE__*/ _react.default.createElement("strong", null);
|
|
21
|
+
case 'ITALIC':
|
|
22
|
+
return /*#__PURE__*/ _react.default.createElement("em", null);
|
|
23
|
+
case 'UNDERLINE':
|
|
24
|
+
return /*#__PURE__*/ _react.default.createElement("u", null);
|
|
25
|
+
case 'CODE':
|
|
26
|
+
return /*#__PURE__*/ _react.default.createElement("code", null);
|
|
27
|
+
default:
|
|
28
|
+
return {
|
|
29
|
+
start: '',
|
|
30
|
+
end: ''
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
}
|
package/lib/encodeBlock.js
CHANGED
|
@@ -1,51 +1,55 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
2
|
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
|
|
3
|
+
value: true
|
|
6
4
|
});
|
|
7
|
-
exports
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
5
|
+
Object.defineProperty(exports, "default", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return _default;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _updateMutation = /*#__PURE__*/ _interop_require_default(require("./util/updateMutation.js"));
|
|
12
|
+
const _rangeSort = /*#__PURE__*/ _interop_require_default(require("./util/rangeSort.js"));
|
|
13
|
+
function _interop_require_default(obj) {
|
|
14
|
+
return obj && obj.__esModule ? obj : {
|
|
15
|
+
default: obj
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
const ENTITY_MAP = {
|
|
19
|
+
'&': '&',
|
|
20
|
+
'<': '<',
|
|
21
|
+
'>': '>',
|
|
22
|
+
'"': '"',
|
|
23
|
+
"'": ''',
|
|
24
|
+
'`': '`',
|
|
25
|
+
'\n': '<br/>'
|
|
22
26
|
};
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
27
|
+
const _default = (block)=>{
|
|
28
|
+
const blockText = [
|
|
29
|
+
...block.text
|
|
30
|
+
];
|
|
31
|
+
let entities = block.entityRanges.sort(_rangeSort.default);
|
|
32
|
+
let styles = block.inlineStyleRanges.sort(_rangeSort.default);
|
|
33
|
+
let resultText = '';
|
|
34
|
+
for(let index = 0; index < blockText.length; index += 1){
|
|
35
|
+
const char = blockText[index];
|
|
36
|
+
if (ENTITY_MAP[char] !== undefined) {
|
|
37
|
+
const encoded = ENTITY_MAP[char];
|
|
38
|
+
const resultIndex = [
|
|
39
|
+
...resultText
|
|
40
|
+
].length;
|
|
41
|
+
resultText += encoded;
|
|
42
|
+
const updateForChar = (mutation)=>(0, _updateMutation.default)(mutation, resultIndex, char.length, encoded.length, 0, 0);
|
|
43
|
+
entities = entities.map(updateForChar);
|
|
44
|
+
styles = styles.map(updateForChar);
|
|
45
|
+
} else {
|
|
46
|
+
resultText += char;
|
|
47
|
+
}
|
|
41
48
|
}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
entityRanges: entities
|
|
50
|
-
});
|
|
51
|
-
};
|
|
49
|
+
return {
|
|
50
|
+
...block,
|
|
51
|
+
text: resultText,
|
|
52
|
+
inlineStyleRanges: styles,
|
|
53
|
+
entityRanges: entities
|
|
54
|
+
};
|
|
55
|
+
};
|
package/lib/index.js
CHANGED
|
@@ -1,27 +1,29 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
2
|
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
|
|
3
|
+
value: true
|
|
6
4
|
});
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
5
|
+
function _export(target, all) {
|
|
6
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: Object.getOwnPropertyDescriptor(all, name).get
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
_export(exports, {
|
|
12
|
+
get convertFromHTML () {
|
|
13
|
+
return _convertFromHTML.default;
|
|
14
|
+
},
|
|
15
|
+
get convertToHTML () {
|
|
16
|
+
return _convertToHTML.default;
|
|
17
|
+
},
|
|
18
|
+
get parseHTML () {
|
|
19
|
+
return _parseHTML.default;
|
|
20
|
+
}
|
|
12
21
|
});
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
get: function get() {
|
|
22
|
-
return _parseHTML["default"];
|
|
23
|
-
}
|
|
24
|
-
});
|
|
25
|
-
var _convertToHTML = _interopRequireDefault(require("./convertToHTML"));
|
|
26
|
-
var _convertFromHTML = _interopRequireDefault(require("./convertFromHTML"));
|
|
27
|
-
var _parseHTML = _interopRequireDefault(require("./util/parseHTML"));
|
|
22
|
+
const _convertToHTML = /*#__PURE__*/ _interop_require_default(require("./convertToHTML.js"));
|
|
23
|
+
const _convertFromHTML = /*#__PURE__*/ _interop_require_default(require("./convertFromHTML.js"));
|
|
24
|
+
const _parseHTML = /*#__PURE__*/ _interop_require_default(require("./util/parseHTML.js"));
|
|
25
|
+
function _interop_require_default(obj) {
|
|
26
|
+
return obj && obj.__esModule ? obj : {
|
|
27
|
+
default: obj
|
|
28
|
+
};
|
|
29
|
+
}
|
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
2
|
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
|
|
3
|
+
value: true
|
|
5
4
|
});
|
|
6
|
-
exports
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
if (newResult !== undefined && newResult !== null) {
|
|
11
|
-
return newResult;
|
|
5
|
+
Object.defineProperty(exports, "default", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return _default;
|
|
12
9
|
}
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
10
|
+
});
|
|
11
|
+
const _default = (newFn, rest)=>(...args)=>{
|
|
12
|
+
const newResult = newFn(...args);
|
|
13
|
+
if (newResult !== undefined && newResult !== null) {
|
|
14
|
+
return newResult;
|
|
15
|
+
}
|
|
16
|
+
return rest(...args);
|
|
17
|
+
};
|
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
2
|
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
|
|
3
|
+
value: true
|
|
5
4
|
});
|
|
6
|
-
exports
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
// handle case where typeObject is already a function
|
|
11
|
-
return typeObject(block);
|
|
5
|
+
Object.defineProperty(exports, "default", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return _default;
|
|
12
9
|
}
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
10
|
+
});
|
|
11
|
+
const _default = (typeObject)=>(block)=>{
|
|
12
|
+
if (typeof typeObject === 'function') {
|
|
13
|
+
// handle case where typeObject is already a function
|
|
14
|
+
return typeObject(block);
|
|
15
|
+
}
|
|
16
|
+
return typeObject[block.type];
|
|
17
|
+
};
|