@mirrormedia/lilith-draft-editor 1.1.0-alpha.1 → 1.1.0-alpha.3
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/lib/draft-js/buttons/annotation.js +0 -22
- package/lib/draft-js/buttons/audio.js +52 -0
- package/lib/draft-js/buttons/background-color.js +0 -26
- package/lib/draft-js/buttons/background-image.js +13 -32
- package/lib/draft-js/buttons/background-video.js +13 -32
- package/lib/draft-js/buttons/color-box.js +5 -21
- package/lib/draft-js/buttons/divider.js +3 -12
- package/lib/draft-js/buttons/embedded-code.js +5 -16
- package/lib/draft-js/buttons/enlarge.js +0 -3
- package/lib/draft-js/buttons/font-color.js +0 -26
- package/lib/draft-js/buttons/image.js +5 -16
- package/lib/draft-js/buttons/info-box.js +5 -21
- package/lib/draft-js/buttons/link.js +0 -19
- package/lib/draft-js/buttons/media.js +3 -16
- package/lib/draft-js/buttons/related-post.js +3 -14
- package/lib/draft-js/buttons/selector/align-selector.js +2 -11
- package/lib/draft-js/buttons/selector/audio-selector.js +252 -0
- package/lib/draft-js/buttons/selector/image-selector.js +6 -50
- package/lib/draft-js/buttons/selector/pagination.js +2 -6
- package/lib/draft-js/buttons/selector/post-selector.js +6 -39
- package/lib/draft-js/buttons/selector/search-box.js +0 -9
- package/lib/draft-js/buttons/selector/video-selector.js +4 -33
- package/lib/draft-js/buttons/side-index.js +15 -31
- package/lib/draft-js/buttons/slideshow.js +7 -16
- package/lib/draft-js/buttons/table.js +5 -11
- package/lib/draft-js/buttons/text-align.js +0 -14
- package/lib/draft-js/buttons/video.js +52 -0
- package/lib/draft-js/const.js +0 -2
- package/lib/draft-js/draft-converter/api-data-instance.js +0 -14
- package/lib/draft-js/draft-converter/atomic-block-processor.js +12 -41
- package/lib/draft-js/draft-converter/entities.js +1 -0
- package/lib/draft-js/draft-converter/index.js +10 -29
- package/lib/draft-js/draft-converter/inline-styles-processor.js +22 -55
- package/lib/draft-js/modifier.js +5 -13
- package/lib/index.js +0 -4
- package/lib/website/mirrormedia/block-renderer/background-image-block.js +2 -14
- package/lib/website/mirrormedia/block-renderer/background-video-block.js +2 -14
- package/lib/website/mirrormedia/block-renderer/color-box-block.js +2 -14
- package/lib/website/mirrormedia/block-renderer/embedded-code-block.js +3 -12
- package/lib/website/mirrormedia/block-renderer/info-box-block.js +2 -14
- package/lib/website/mirrormedia/block-renderer/side-index-block.js +2 -13
- package/lib/website/mirrormedia/block-renderer/slideshow-block.js +4 -11
- package/lib/website/mirrormedia/block-renderer/table-block.js +28 -62
- package/lib/website/mirrormedia/block-renderer-fn.js +11 -29
- package/lib/website/mirrormedia/draft-editor.js +31 -105
- package/lib/website/mirrormedia/entity-decorator.js +0 -4
- package/lib/website/mirrormedia/index.js +0 -3
- package/lib/website/mirrormedia/selector/align-selector.js +2 -11
- package/lib/website/mirrormedia/selector/audio-selector.js +252 -0
- package/lib/website/mirrormedia/selector/image-selector.js +10 -50
- package/lib/website/mirrormedia/selector/pagination.js +2 -6
- package/lib/website/mirrormedia/selector/post-selector.js +6 -39
- package/lib/website/mirrormedia/selector/search-box.js +0 -9
- package/lib/website/mirrormedia/selector/video-selector.js +8 -33
- package/lib/website/readr/block-renderer/background-image-block.js +2 -14
- package/lib/website/readr/block-renderer/background-video-block.js +2 -14
- package/lib/website/readr/block-renderer/color-box-block.js +2 -14
- package/lib/website/readr/block-renderer/info-box-block.js +2 -14
- package/lib/website/readr/block-renderer/side-index-block.js +2 -13
- package/lib/website/readr/block-renderer/table-block.js +28 -62
- package/lib/website/readr/block-renderer-fn.js +11 -27
- package/lib/website/readr/draft-editor.js +31 -105
- package/lib/website/readr/entity-decorator.js +0 -4
- package/lib/website/readr/index.js +0 -3
- package/lib/website/readr/selector/align-selector.js +2 -11
- package/lib/website/readr/selector/audio-selector.js +252 -0
- package/lib/website/readr/selector/image-selector.js +10 -50
- package/lib/website/readr/selector/pagination.js +2 -6
- package/lib/website/readr/selector/post-selector.js +6 -39
- package/lib/website/readr/selector/search-box.js +0 -9
- package/lib/website/readr/selector/video-selector.js +8 -33
- package/package.json +2 -2
|
@@ -4,72 +4,56 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.convertToHtml = convertToHtml;
|
|
7
|
-
|
|
8
7
|
var _lodash = _interopRequireDefault(require("lodash"));
|
|
9
|
-
|
|
10
8
|
var _const = require("../const");
|
|
11
|
-
|
|
12
9
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
-
|
|
14
10
|
// Modified from https://github.com/dburrows/draft-js-basic-html-editor/blob/master/src/utils/processInlineStylesAndEntities.js
|
|
11
|
+
|
|
15
12
|
function tagForCustomInlineStyle(style) {
|
|
16
13
|
const customInlineStylePrefixs = [_const.CUSTOM_STYLE_PREFIX_FONT_COLOR, _const.CUSTOM_STYLE_PREFIX_BACKGROUND_COLOR];
|
|
17
14
|
const stylePrefix = customInlineStylePrefixs.find(prefix => style.startsWith(prefix));
|
|
18
15
|
let tag, value;
|
|
19
|
-
|
|
20
16
|
switch (stylePrefix) {
|
|
21
17
|
case _const.CUSTOM_STYLE_PREFIX_FONT_COLOR:
|
|
22
18
|
value = style.split(_const.CUSTOM_STYLE_PREFIX_FONT_COLOR)[1];
|
|
23
19
|
tag = [`<span style="color: ${value}">`, '</span>'];
|
|
24
20
|
break;
|
|
25
|
-
|
|
26
21
|
case _const.CUSTOM_STYLE_PREFIX_BACKGROUND_COLOR:
|
|
27
22
|
value = style.split(_const.CUSTOM_STYLE_PREFIX_BACKGROUND_COLOR)[1];
|
|
28
23
|
tag = [`<span style="background-color: ${value}">`, '</span>'];
|
|
29
24
|
break;
|
|
30
|
-
|
|
31
25
|
default:
|
|
32
26
|
break;
|
|
33
27
|
}
|
|
34
|
-
|
|
35
28
|
return tag;
|
|
36
29
|
}
|
|
37
|
-
|
|
38
30
|
function _fullfilIntersection(block) {
|
|
39
31
|
// SORT BEFORE PROCESSING
|
|
40
32
|
let sortedISRanges = _lodash.default.sortBy(block.inlineStyleRanges, 'offset');
|
|
41
|
-
|
|
42
33
|
let sortedEntityRanges = _lodash.default.sortBy(block.entityRanges, 'offset');
|
|
43
|
-
|
|
44
34
|
let splitedISInline = [];
|
|
45
|
-
|
|
46
35
|
for (let i = 0; i < sortedEntityRanges.length; i++) {
|
|
47
36
|
let entityRange = sortedEntityRanges[i];
|
|
48
|
-
|
|
49
37
|
for (let j = 0; j < sortedISRanges.length; j++) {
|
|
50
38
|
let entityOffset = _lodash.default.get(entityRange, 'offset', 0);
|
|
51
|
-
|
|
52
39
|
let entityLength = _lodash.default.get(entityRange, 'length', 0);
|
|
53
|
-
|
|
54
40
|
let inlineLength = _lodash.default.get(sortedISRanges, [j, 'length'], 0);
|
|
55
|
-
|
|
56
41
|
let inlineOffset = _lodash.default.get(sortedISRanges, [j, 'offset'], 0);
|
|
57
|
-
|
|
58
42
|
let inlineStyle = _lodash.default.get(sortedISRanges, [j, 'style'], '');
|
|
59
|
-
|
|
60
43
|
let nextEntityOffset = _lodash.default.get(sortedEntityRanges, [i + 1, 'offset'], 0);
|
|
44
|
+
let nextEntityLength = _lodash.default.get(sortedEntityRanges, [i + 1, 'length'], 0);
|
|
61
45
|
|
|
62
|
-
|
|
46
|
+
// handle intersections of inline style and entity
|
|
63
47
|
// <a></a> is entity
|
|
64
48
|
// <abbr></abbr> is next entity
|
|
65
49
|
// <strong></strong> is inline style
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
if (nextEntityOffset >= inlineOffset && nextEntityOffset < inlineOffset + inlineLength && nextEntityOffset + nextEntityLength > inlineOffset + inlineLength && // <a><strong></a></strong>
|
|
50
|
+
if (nextEntityOffset >= inlineOffset && nextEntityOffset < inlineOffset + inlineLength && nextEntityOffset + nextEntityLength > inlineOffset + inlineLength &&
|
|
51
|
+
// <a><strong></a></strong>
|
|
69
52
|
entityOffset < inlineOffset && entityOffset + entityLength > inlineOffset && entityOffset + entityLength <= inlineOffset + inlineLength) {
|
|
70
53
|
// <strong><abbr></strong></abbr>
|
|
71
54
|
// situation: <a><strong></a><abbr></strong></abbr>
|
|
72
55
|
// should be: <a><strong></strong></a><strong></strong><abbr><strong></strong></abbr>
|
|
56
|
+
|
|
73
57
|
// skip next entity checking
|
|
74
58
|
i = i + 1;
|
|
75
59
|
splitedISInline.push({
|
|
@@ -121,109 +105,92 @@ function _fullfilIntersection(block) {
|
|
|
121
105
|
}
|
|
122
106
|
}
|
|
123
107
|
}
|
|
124
|
-
|
|
125
108
|
_lodash.default.forEachRight(splitedISInline, ele => {
|
|
126
109
|
sortedISRanges.splice(ele.index, 1, ...ele.replace);
|
|
127
110
|
});
|
|
128
|
-
|
|
129
111
|
return sortedISRanges;
|
|
130
112
|
}
|
|
131
|
-
|
|
132
113
|
function _inlineTag(inlineTagMap, inlineStyleRanges, tagInsertMap = {}) {
|
|
133
114
|
// SORT BEFORE PROCESSING
|
|
134
|
-
let sortedRanges = _lodash.default.sortBy(inlineStyleRanges, 'offset');
|
|
135
|
-
|
|
115
|
+
let sortedRanges = _lodash.default.sortBy(inlineStyleRanges, 'offset');
|
|
136
116
|
|
|
117
|
+
// map all the tag insertions we're going to do
|
|
137
118
|
sortedRanges.forEach(function (range) {
|
|
138
|
-
let tag = inlineTagMap[range.style];
|
|
119
|
+
let tag = inlineTagMap[range.style];
|
|
139
120
|
|
|
121
|
+
// handle dynamic inline style
|
|
140
122
|
if (!tag) {
|
|
141
123
|
tag = tagForCustomInlineStyle(range.style);
|
|
142
124
|
}
|
|
143
|
-
|
|
144
125
|
if (!tagInsertMap[range.offset]) {
|
|
145
126
|
tagInsertMap[range.offset] = [];
|
|
146
|
-
}
|
|
147
|
-
|
|
127
|
+
}
|
|
148
128
|
|
|
129
|
+
// add starting tag to the end of the array to form the tag nesting
|
|
149
130
|
tagInsertMap[range.offset].push(tag[0]);
|
|
150
|
-
|
|
151
131
|
if (tag[1]) {
|
|
152
132
|
if (!tagInsertMap[range.offset + range.length]) {
|
|
153
133
|
tagInsertMap[range.offset + range.length] = [];
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
|
|
134
|
+
}
|
|
135
|
+
// add closing tags to start of array, otherwise tag nesting will be invalid
|
|
157
136
|
tagInsertMap[range.offset + range.length].unshift(tag[1]);
|
|
158
137
|
}
|
|
159
138
|
});
|
|
160
139
|
return tagInsertMap;
|
|
161
140
|
}
|
|
162
|
-
|
|
163
141
|
function _entityTag(entityTagMap, entityMap, entityRanges, tagInsertMap = {}) {
|
|
164
142
|
_lodash.default.forEach(entityRanges, range => {
|
|
165
143
|
let entity = entityMap[range.key];
|
|
166
144
|
let type = entity.type && entity.type.toUpperCase();
|
|
167
145
|
let tag = entityTagMap[type];
|
|
168
146
|
let data = entity.data;
|
|
169
|
-
|
|
170
147
|
let compiledTag0 = _lodash.default.template(tag[0], {
|
|
171
148
|
variable: 'data'
|
|
172
149
|
})(data);
|
|
173
|
-
|
|
174
150
|
let compiledTag1 = _lodash.default.template(tag[1], {
|
|
175
151
|
variable: 'data'
|
|
176
152
|
})(data);
|
|
177
|
-
|
|
178
153
|
if (!tagInsertMap[range.offset]) {
|
|
179
154
|
tagInsertMap[range.offset] = [];
|
|
180
|
-
}
|
|
181
|
-
|
|
155
|
+
}
|
|
182
156
|
|
|
157
|
+
// add starting tag
|
|
183
158
|
tagInsertMap[range.offset].push(compiledTag0);
|
|
184
|
-
|
|
185
159
|
if (tag[1]) {
|
|
186
160
|
if (!tagInsertMap[range.offset + range.length]) {
|
|
187
161
|
tagInsertMap[range.offset + range.length] = [];
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
|
|
162
|
+
}
|
|
163
|
+
// add closing tags to start of array, otherwise tag nesting will be invalid
|
|
191
164
|
tagInsertMap[range.offset + range.length].unshift(compiledTag1);
|
|
192
165
|
}
|
|
193
166
|
});
|
|
194
|
-
|
|
195
167
|
return tagInsertMap;
|
|
196
168
|
}
|
|
197
|
-
|
|
198
169
|
function convertToHtml(inlineTagMap, entityTagMap, entityMap, block) {
|
|
199
170
|
// exit if there is no inlineStyleRanges/entityRanges or length === 0 as well
|
|
200
171
|
if (!block.inlineStyleRanges && !block.entityRanges || block.inlineStyleRanges.length === 0 && block.entityRanges.length === 0) {
|
|
201
172
|
return block.text;
|
|
202
173
|
}
|
|
203
|
-
|
|
204
174
|
let html = block.text;
|
|
205
|
-
|
|
206
175
|
let inlineStyleRanges = _fullfilIntersection(block);
|
|
207
|
-
|
|
208
176
|
let tagInsertMap = {};
|
|
209
177
|
tagInsertMap = _entityTag(entityTagMap, entityMap, block.entityRanges, tagInsertMap);
|
|
210
|
-
tagInsertMap = _inlineTag(inlineTagMap, inlineStyleRanges, tagInsertMap);
|
|
178
|
+
tagInsertMap = _inlineTag(inlineTagMap, inlineStyleRanges, tagInsertMap);
|
|
211
179
|
|
|
180
|
+
// sort on position, as we'll need to keep track of offset
|
|
212
181
|
let orderedKeys = Object.keys(tagInsertMap).sort(function (a, b) {
|
|
213
182
|
a = Number(a);
|
|
214
183
|
b = Number(b);
|
|
215
|
-
|
|
216
184
|
if (a > b) {
|
|
217
185
|
return 1;
|
|
218
186
|
}
|
|
219
|
-
|
|
220
187
|
if (a < b) {
|
|
221
188
|
return -1;
|
|
222
189
|
}
|
|
223
|
-
|
|
224
190
|
return 0;
|
|
225
|
-
});
|
|
191
|
+
});
|
|
226
192
|
|
|
193
|
+
// insert tags into string, keep track of offset caused by our text insertions
|
|
227
194
|
let offset = 0;
|
|
228
195
|
orderedKeys.forEach(function (pos) {
|
|
229
196
|
let index = Number(pos);
|
package/lib/draft-js/modifier.js
CHANGED
|
@@ -4,13 +4,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.Modifier = void 0;
|
|
7
|
-
|
|
8
7
|
var _draftJs = require("draft-js");
|
|
9
|
-
|
|
10
8
|
var _immutable = require("immutable");
|
|
11
|
-
|
|
12
|
-
|
|
9
|
+
const Modifier = {
|
|
10
|
+
..._draftJs.Modifier
|
|
13
11
|
};
|
|
12
|
+
|
|
14
13
|
/*
|
|
15
14
|
This method is specified for custom inline style such as 'FONT_COLOR_#ffffff'.
|
|
16
15
|
For this kind of inline style there may be more than one style name 'FONT_COLOR_#ffffff', 'FONT_COLOR_#000000'.
|
|
@@ -22,20 +21,18 @@ const Modifier = { ..._draftJs.Modifier
|
|
|
22
21
|
|
|
23
22
|
Reference: https://github.com/facebook/draft-js/blob/main/src/model/transaction/ContentStateInlineStyle.js#L39-L88
|
|
24
23
|
*/
|
|
25
|
-
|
|
26
24
|
exports.Modifier = Modifier;
|
|
27
|
-
|
|
28
25
|
Modifier.removeInlineStyleByPrefix = (contentState, selectionState, inlineStylePrefix) => {
|
|
29
26
|
const blockMap = contentState.getBlockMap();
|
|
30
27
|
const startKey = selectionState.getStartKey();
|
|
31
28
|
const startOffset = selectionState.getStartOffset();
|
|
32
29
|
const endKey = selectionState.getEndKey();
|
|
33
|
-
const endOffset = selectionState.getEndOffset();
|
|
30
|
+
const endOffset = selectionState.getEndOffset();
|
|
34
31
|
|
|
32
|
+
// loop through all selected blocks and every block chars to remove specific inline style
|
|
35
33
|
const newBlocks = blockMap.skipUntil((_, k) => k === startKey).takeUntil((_, k) => k === endKey).concat((0, _immutable.Map)([[endKey, blockMap.get(endKey)]])).map((block, blockKey) => {
|
|
36
34
|
let sliceStart;
|
|
37
35
|
let sliceEnd;
|
|
38
|
-
|
|
39
36
|
if (startKey === endKey) {
|
|
40
37
|
sliceStart = startOffset;
|
|
41
38
|
sliceEnd = endOffset;
|
|
@@ -43,21 +40,16 @@ Modifier.removeInlineStyleByPrefix = (contentState, selectionState, inlineStyleP
|
|
|
43
40
|
sliceStart = blockKey === startKey ? startOffset : 0;
|
|
44
41
|
sliceEnd = blockKey === endKey ? endOffset : block.getLength();
|
|
45
42
|
}
|
|
46
|
-
|
|
47
43
|
let chars = block.getCharacterList();
|
|
48
44
|
let current;
|
|
49
|
-
|
|
50
45
|
while (sliceStart < sliceEnd) {
|
|
51
46
|
current = chars.get(sliceStart);
|
|
52
47
|
const inlineStyle = current.getStyle().find(styleName => styleName.startsWith(inlineStylePrefix));
|
|
53
|
-
|
|
54
48
|
if (inlineStyle) {
|
|
55
49
|
chars = chars.set(sliceStart, _draftJs.CharacterMetadata.removeStyle(current, inlineStyle));
|
|
56
50
|
}
|
|
57
|
-
|
|
58
51
|
sliceStart++;
|
|
59
52
|
}
|
|
60
|
-
|
|
61
53
|
return block.set('characterList', chars);
|
|
62
54
|
});
|
|
63
55
|
return contentState.merge({
|
package/lib/index.js
CHANGED
|
@@ -21,11 +21,7 @@ Object.defineProperty(exports, "draftConverter", {
|
|
|
21
21
|
return _draftConverter.default;
|
|
22
22
|
}
|
|
23
23
|
});
|
|
24
|
-
|
|
25
24
|
var _draftConverter = _interopRequireDefault(require("./draft-js/draft-converter"));
|
|
26
|
-
|
|
27
25
|
var _mirrormedia = _interopRequireDefault(require("./website/mirrormedia"));
|
|
28
|
-
|
|
29
26
|
var _readr = _interopRequireDefault(require("./website/readr"));
|
|
30
|
-
|
|
31
27
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
@@ -4,23 +4,14 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.BGImageEditorBlock = BGImageEditorBlock;
|
|
7
|
-
|
|
8
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
-
|
|
10
8
|
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
11
|
-
|
|
12
9
|
var _draftConverter = _interopRequireDefault(require("../../../draft-js/draft-converter"));
|
|
13
|
-
|
|
14
10
|
var _backgroundImage = require("../../../draft-js/buttons/background-image");
|
|
15
|
-
|
|
16
11
|
var _mirrormedia = _interopRequireDefault(require("@mirrormedia/lilith-draft-renderer/lib/website/mirrormedia"));
|
|
17
|
-
|
|
18
12
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
19
|
-
|
|
20
13
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
21
|
-
|
|
22
14
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
23
|
-
|
|
24
15
|
const {
|
|
25
16
|
BGImageBlock
|
|
26
17
|
} = _mirrormedia.default.blockRenderers;
|
|
@@ -30,7 +21,6 @@ const BGImageRenderButton = _styledComponents.default.span`
|
|
|
30
21
|
padding: 6px;
|
|
31
22
|
border-radius: 6px;
|
|
32
23
|
`;
|
|
33
|
-
|
|
34
24
|
function BGImageEditorBlock(props) {
|
|
35
25
|
const [toShowInput, setToShowInput] = (0, _react.useState)(false);
|
|
36
26
|
const {
|
|
@@ -50,7 +40,6 @@ function BGImageEditorBlock(props) {
|
|
|
50
40
|
image,
|
|
51
41
|
rawContentState
|
|
52
42
|
} = entity.getData();
|
|
53
|
-
|
|
54
43
|
const onChange = ({
|
|
55
44
|
textBlockAlign: newTextBlockAlign,
|
|
56
45
|
image: newImage,
|
|
@@ -68,7 +57,6 @@ function BGImageEditorBlock(props) {
|
|
|
68
57
|
}
|
|
69
58
|
});
|
|
70
59
|
};
|
|
71
|
-
|
|
72
60
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_backgroundImage.BGImageInput, {
|
|
73
61
|
renderBasicEditor: renderBasicEditor,
|
|
74
62
|
textBlockAlign: textBlockAlign,
|
|
@@ -83,8 +71,8 @@ function BGImageEditorBlock(props) {
|
|
|
83
71
|
}), /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(BGImageBlock, props), /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(BGImageRenderButton, {
|
|
84
72
|
onClick: () => {
|
|
85
73
|
// call `onEditStart` prop as we are trying to update the BGImage entity
|
|
86
|
-
onEditStart();
|
|
87
|
-
|
|
74
|
+
onEditStart();
|
|
75
|
+
// open `BGImageInput`
|
|
88
76
|
setToShowInput(true);
|
|
89
77
|
}
|
|
90
78
|
}, /*#__PURE__*/_react.default.createElement("i", {
|
|
@@ -4,23 +4,14 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.BGVideoEditorBlock = BGVideoEditorBlock;
|
|
7
|
-
|
|
8
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
-
|
|
10
8
|
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
11
|
-
|
|
12
9
|
var _draftConverter = _interopRequireDefault(require("../../../draft-js/draft-converter"));
|
|
13
|
-
|
|
14
10
|
var _backgroundVideo = require("../../../draft-js/buttons/background-video");
|
|
15
|
-
|
|
16
11
|
var _mirrormedia = _interopRequireDefault(require("@mirrormedia/lilith-draft-renderer/lib/website/mirrormedia"));
|
|
17
|
-
|
|
18
12
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
19
|
-
|
|
20
13
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
21
|
-
|
|
22
14
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
23
|
-
|
|
24
15
|
const {
|
|
25
16
|
BGVideoBlock
|
|
26
17
|
} = _mirrormedia.default.blockRenderers;
|
|
@@ -30,7 +21,6 @@ const BGVideoRenderButton = _styledComponents.default.span`
|
|
|
30
21
|
padding: 6px;
|
|
31
22
|
border-radius: 6px;
|
|
32
23
|
`;
|
|
33
|
-
|
|
34
24
|
function BGVideoEditorBlock(props) {
|
|
35
25
|
const [toShowInput, setToShowInput] = (0, _react.useState)(false);
|
|
36
26
|
const {
|
|
@@ -50,7 +40,6 @@ function BGVideoEditorBlock(props) {
|
|
|
50
40
|
video,
|
|
51
41
|
rawContentState
|
|
52
42
|
} = entity.getData();
|
|
53
|
-
|
|
54
43
|
const onChange = ({
|
|
55
44
|
textBlockAlign: newTextBlockAlign,
|
|
56
45
|
video: newVideo,
|
|
@@ -68,7 +57,6 @@ function BGVideoEditorBlock(props) {
|
|
|
68
57
|
}
|
|
69
58
|
});
|
|
70
59
|
};
|
|
71
|
-
|
|
72
60
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_backgroundVideo.BGVideoInput, {
|
|
73
61
|
renderBasicEditor: renderBasicEditor,
|
|
74
62
|
textBlockAlign: textBlockAlign,
|
|
@@ -83,8 +71,8 @@ function BGVideoEditorBlock(props) {
|
|
|
83
71
|
}), /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(BGVideoBlock, props), /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(BGVideoRenderButton, {
|
|
84
72
|
onClick: () => {
|
|
85
73
|
// call `onEditStart` prop as we are trying to update the BGVideo entity
|
|
86
|
-
onEditStart();
|
|
87
|
-
|
|
74
|
+
onEditStart();
|
|
75
|
+
// open `BGVideoInput`
|
|
88
76
|
setToShowInput(true);
|
|
89
77
|
}
|
|
90
78
|
}, /*#__PURE__*/_react.default.createElement("i", {
|
|
@@ -4,30 +4,20 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.ColorBoxEditorBlock = ColorBoxEditorBlock;
|
|
7
|
-
|
|
8
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
-
|
|
10
8
|
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
11
|
-
|
|
12
9
|
var _draftConverter = _interopRequireDefault(require("../../../draft-js/draft-converter"));
|
|
13
|
-
|
|
14
10
|
var _colorBox = require("../../../draft-js/buttons/color-box");
|
|
15
|
-
|
|
16
11
|
var _mirrormedia = _interopRequireDefault(require("@mirrormedia/lilith-draft-renderer/lib/website/mirrormedia"));
|
|
17
|
-
|
|
18
12
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
19
|
-
|
|
20
13
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
21
|
-
|
|
22
14
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
23
|
-
|
|
24
15
|
const {
|
|
25
16
|
ColorBoxBlock
|
|
26
17
|
} = _mirrormedia.default.blockRenderers;
|
|
27
18
|
const ColorBoxRenderButton = _styledComponents.default.div`
|
|
28
19
|
cursor: pointer;
|
|
29
20
|
`;
|
|
30
|
-
|
|
31
21
|
function ColorBoxEditorBlock(props) {
|
|
32
22
|
const [toShowInput, setToShowInput] = (0, _react.useState)(false);
|
|
33
23
|
const {
|
|
@@ -46,7 +36,6 @@ function ColorBoxEditorBlock(props) {
|
|
|
46
36
|
color,
|
|
47
37
|
rawContentState
|
|
48
38
|
} = entity.getData();
|
|
49
|
-
|
|
50
39
|
const onChange = ({
|
|
51
40
|
color: newColor,
|
|
52
41
|
rawContentState: newRawContentState
|
|
@@ -62,7 +51,6 @@ function ColorBoxEditorBlock(props) {
|
|
|
62
51
|
}
|
|
63
52
|
});
|
|
64
53
|
};
|
|
65
|
-
|
|
66
54
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_colorBox.ColorBoxInput, {
|
|
67
55
|
renderBasicEditor: renderBasicEditor,
|
|
68
56
|
color: color,
|
|
@@ -76,8 +64,8 @@ function ColorBoxEditorBlock(props) {
|
|
|
76
64
|
}), /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(ColorBoxBlock, props), /*#__PURE__*/_react.default.createElement(ColorBoxRenderButton, {
|
|
77
65
|
onClick: () => {
|
|
78
66
|
// call `onEditStart` prop as we are trying to update the ColorBox entity
|
|
79
|
-
onEditStart();
|
|
80
|
-
|
|
67
|
+
onEditStart();
|
|
68
|
+
// open `ColorBoxInput`
|
|
81
69
|
setToShowInput(true);
|
|
82
70
|
}
|
|
83
71
|
}, /*#__PURE__*/_react.default.createElement("i", {
|
|
@@ -4,17 +4,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.EmbeddedCodeEditorBlock = exports.Caption = exports.Block = void 0;
|
|
7
|
-
|
|
8
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
-
|
|
10
8
|
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
11
|
-
|
|
12
9
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
-
|
|
14
10
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
15
|
-
|
|
16
11
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
17
|
-
|
|
18
12
|
const Block = _styledComponents.default.div`
|
|
19
13
|
position: relative;
|
|
20
14
|
/* styles for image link */
|
|
@@ -34,7 +28,6 @@ const Caption = _styledComponents.default.div`
|
|
|
34
28
|
padding: 15px 15px 0 15px;
|
|
35
29
|
`;
|
|
36
30
|
exports.Caption = Caption;
|
|
37
|
-
|
|
38
31
|
const EmbeddedCodeEditorBlock = entity => {
|
|
39
32
|
const {
|
|
40
33
|
caption,
|
|
@@ -44,7 +37,9 @@ const EmbeddedCodeEditorBlock = entity => {
|
|
|
44
37
|
(0, _react.useEffect)(() => {
|
|
45
38
|
if (!embedded.current) return;
|
|
46
39
|
const node = embedded.current;
|
|
47
|
-
const fragment = document.createDocumentFragment();
|
|
40
|
+
const fragment = document.createDocumentFragment();
|
|
41
|
+
|
|
42
|
+
// `embeddedCode` is a string, which may includes
|
|
48
43
|
// multiple '<script>' tags and other html tags.
|
|
49
44
|
// For executing '<script>' tags on the browser,
|
|
50
45
|
// we need to extract '<script>' tags from `embeddedCode` string first.
|
|
@@ -53,7 +48,6 @@ const EmbeddedCodeEditorBlock = entity => {
|
|
|
53
48
|
// and we could use DOM element built-in functions,
|
|
54
49
|
// such as `querySelectorAll` method, to query '<script>' elements,
|
|
55
50
|
// and other non '<script>' elements.
|
|
56
|
-
|
|
57
51
|
const parser = new DOMParser();
|
|
58
52
|
const ele = parser.parseFromString(`<div id="draft-embed">${embeddedCode}</div>`, 'text/html');
|
|
59
53
|
const scripts = ele.querySelectorAll('script');
|
|
@@ -64,11 +58,9 @@ const EmbeddedCodeEditorBlock = entity => {
|
|
|
64
58
|
scripts.forEach(s => {
|
|
65
59
|
const scriptEle = document.createElement('script');
|
|
66
60
|
const attrs = s.attributes;
|
|
67
|
-
|
|
68
61
|
for (let i = 0; i < attrs.length; i++) {
|
|
69
62
|
scriptEle.setAttribute(attrs[i].name, attrs[i].value);
|
|
70
63
|
}
|
|
71
|
-
|
|
72
64
|
scriptEle.text = s.text || '';
|
|
73
65
|
fragment.appendChild(scriptEle);
|
|
74
66
|
});
|
|
@@ -81,5 +73,4 @@ const EmbeddedCodeEditorBlock = entity => {
|
|
|
81
73
|
ref: embedded
|
|
82
74
|
}), caption ? /*#__PURE__*/_react.default.createElement(Caption, null, caption) : null);
|
|
83
75
|
};
|
|
84
|
-
|
|
85
76
|
exports.EmbeddedCodeEditorBlock = EmbeddedCodeEditorBlock;
|
|
@@ -4,30 +4,20 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.InfoBoxEditorBlock = InfoBoxEditorBlock;
|
|
7
|
-
|
|
8
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
-
|
|
10
8
|
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
11
|
-
|
|
12
9
|
var _draftConverter = _interopRequireDefault(require("../../../draft-js/draft-converter"));
|
|
13
|
-
|
|
14
10
|
var _infoBox = require("../../../draft-js/buttons/info-box");
|
|
15
|
-
|
|
16
11
|
var _mirrormedia = _interopRequireDefault(require("@mirrormedia/lilith-draft-renderer/lib/website/mirrormedia"));
|
|
17
|
-
|
|
18
12
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
19
|
-
|
|
20
13
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
21
|
-
|
|
22
14
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
23
|
-
|
|
24
15
|
const {
|
|
25
16
|
InfoBoxBlock
|
|
26
17
|
} = _mirrormedia.default.blockRenderers;
|
|
27
18
|
const InfoBoxRenderButton = _styledComponents.default.div`
|
|
28
19
|
cursor: pointer;
|
|
29
20
|
`;
|
|
30
|
-
|
|
31
21
|
function InfoBoxEditorBlock(props) {
|
|
32
22
|
const [toShowInput, setToShowInput] = (0, _react.useState)(false);
|
|
33
23
|
const {
|
|
@@ -46,7 +36,6 @@ function InfoBoxEditorBlock(props) {
|
|
|
46
36
|
title,
|
|
47
37
|
rawContentState
|
|
48
38
|
} = entity.getData();
|
|
49
|
-
|
|
50
39
|
const onChange = ({
|
|
51
40
|
title: newTitle,
|
|
52
41
|
rawContentState: newRawContentState
|
|
@@ -62,7 +51,6 @@ function InfoBoxEditorBlock(props) {
|
|
|
62
51
|
}
|
|
63
52
|
});
|
|
64
53
|
};
|
|
65
|
-
|
|
66
54
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_infoBox.InfoBoxInput, {
|
|
67
55
|
renderBasicEditor: renderBasicEditor,
|
|
68
56
|
title: title,
|
|
@@ -76,8 +64,8 @@ function InfoBoxEditorBlock(props) {
|
|
|
76
64
|
}), /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(InfoBoxBlock, props), /*#__PURE__*/_react.default.createElement(InfoBoxRenderButton, {
|
|
77
65
|
onClick: () => {
|
|
78
66
|
// call `onEditStart` prop as we are trying to update the InfoBox entity
|
|
79
|
-
onEditStart();
|
|
80
|
-
|
|
67
|
+
onEditStart();
|
|
68
|
+
// open `InfoBoxInput`
|
|
81
69
|
setToShowInput(true);
|
|
82
70
|
}
|
|
83
71
|
}, /*#__PURE__*/_react.default.createElement("i", {
|
|
@@ -4,21 +4,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.SideIndexEditorBlock = SideIndexEditorBlock;
|
|
7
|
-
|
|
8
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
-
|
|
10
8
|
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
11
|
-
|
|
12
9
|
var _sideIndex = require("../../../draft-js/buttons/side-index");
|
|
13
|
-
|
|
14
10
|
var _mirrormedia = _interopRequireDefault(require("@mirrormedia/lilith-draft-renderer/lib/website/mirrormedia"));
|
|
15
|
-
|
|
16
11
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
|
-
|
|
18
12
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
19
|
-
|
|
20
13
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
21
|
-
|
|
22
14
|
const {
|
|
23
15
|
SideIndexBlock
|
|
24
16
|
} = _mirrormedia.default.blockRenderers;
|
|
@@ -26,7 +18,6 @@ const SideIndexBlockButton = _styledComponents.default.div`
|
|
|
26
18
|
cursor: pointer;
|
|
27
19
|
margin-left: 20px;
|
|
28
20
|
`;
|
|
29
|
-
|
|
30
21
|
function SideIndexEditorBlock(props) {
|
|
31
22
|
const [toShowInput, setToShowInput] = (0, _react.useState)(false);
|
|
32
23
|
const {
|
|
@@ -46,7 +37,6 @@ function SideIndexEditorBlock(props) {
|
|
|
46
37
|
sideIndexUrl,
|
|
47
38
|
sideIndexImage
|
|
48
39
|
} = entity.getData();
|
|
49
|
-
|
|
50
40
|
const onChange = ({
|
|
51
41
|
h2Text,
|
|
52
42
|
sideIndexText,
|
|
@@ -65,7 +55,6 @@ function SideIndexEditorBlock(props) {
|
|
|
65
55
|
}
|
|
66
56
|
});
|
|
67
57
|
};
|
|
68
|
-
|
|
69
58
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_sideIndex.SideIndexInput, {
|
|
70
59
|
h2Text: h2Text,
|
|
71
60
|
sideIndexText: sideIndexText,
|
|
@@ -80,8 +69,8 @@ function SideIndexEditorBlock(props) {
|
|
|
80
69
|
}), /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(SideIndexBlock, props), /*#__PURE__*/_react.default.createElement(SideIndexBlockButton, {
|
|
81
70
|
onClick: () => {
|
|
82
71
|
// call `onEditStart` prop as we are trying to update the SideIndex entity
|
|
83
|
-
onEditStart();
|
|
84
|
-
|
|
72
|
+
onEditStart();
|
|
73
|
+
// open `SideIndexInput`
|
|
85
74
|
setToShowInput(true);
|
|
86
75
|
}
|
|
87
76
|
}, /*#__PURE__*/_react.default.createElement("i", {
|