@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,67 +4,39 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = exports.buttonNames = void 0;
|
|
7
|
-
|
|
8
7
|
var _react = _interopRequireDefault(require("react"));
|
|
9
|
-
|
|
10
8
|
var _styledComponents = _interopRequireWildcard(require("styled-components"));
|
|
11
|
-
|
|
12
9
|
var _draftJs = require("draft-js");
|
|
13
|
-
|
|
14
10
|
var _blockRendererFn = require("./block-renderer-fn");
|
|
15
|
-
|
|
16
11
|
var _entityDecorator = _interopRequireDefault(require("./entity-decorator"));
|
|
17
|
-
|
|
18
12
|
var _annotation = require("../../draft-js/buttons/annotation");
|
|
19
|
-
|
|
20
13
|
var _embeddedCode = require("../../draft-js/buttons/embedded-code");
|
|
21
|
-
|
|
22
14
|
var _enlarge = require("../../draft-js/buttons/enlarge");
|
|
23
|
-
|
|
24
15
|
var _image = require("../../draft-js/buttons/image");
|
|
25
|
-
|
|
26
16
|
var _infoBox = require("../../draft-js/buttons/info-box");
|
|
27
|
-
|
|
28
17
|
var _link = require("../../draft-js/buttons/link");
|
|
29
|
-
|
|
30
18
|
var _slideshow = require("../../draft-js/buttons/slideshow");
|
|
31
|
-
|
|
32
19
|
var _table = require("../../draft-js/buttons/table");
|
|
33
|
-
|
|
34
20
|
var _divider = require("../../draft-js/buttons/divider");
|
|
35
|
-
|
|
36
21
|
var _colorBox = require("../../draft-js/buttons/color-box");
|
|
37
|
-
|
|
38
22
|
var _backgroundImage = require("../../draft-js/buttons/background-image");
|
|
39
|
-
|
|
40
23
|
var _backgroundVideo = require("../../draft-js/buttons/background-video");
|
|
41
|
-
|
|
42
24
|
var _relatedPost = require("../../draft-js/buttons/related-post");
|
|
43
|
-
|
|
44
25
|
var _sideIndex = require("../../draft-js/buttons/side-index");
|
|
45
|
-
|
|
46
26
|
var _textAlign = require("../../draft-js/buttons/text-align");
|
|
47
|
-
|
|
48
27
|
var _fontColor = require("../../draft-js/buttons/font-color");
|
|
49
|
-
|
|
50
28
|
var _backgroundColor = require("../../draft-js/buttons/background-color");
|
|
51
|
-
|
|
29
|
+
var _video = require("../../draft-js/buttons/video");
|
|
30
|
+
var _audio = require("../../draft-js/buttons/audio");
|
|
52
31
|
var _const = require("../../draft-js/const");
|
|
53
|
-
|
|
54
32
|
var _imageSelector = require("./selector/image-selector");
|
|
55
|
-
|
|
56
33
|
var _videoSelector = require("./selector/video-selector");
|
|
57
|
-
|
|
58
34
|
var _postSelector = require("./selector/post-selector");
|
|
59
|
-
|
|
35
|
+
var _audioSelector = require("./selector/audio-selector");
|
|
60
36
|
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); }
|
|
61
|
-
|
|
62
37
|
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; }
|
|
63
|
-
|
|
64
38
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
65
|
-
|
|
66
39
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
67
|
-
|
|
68
40
|
const buttonNames = {
|
|
69
41
|
// inline styles
|
|
70
42
|
bold: 'bold',
|
|
@@ -95,10 +67,12 @@ const buttonNames = {
|
|
|
95
67
|
backgroundImage: 'background-image',
|
|
96
68
|
backgroundVideo: 'background-video',
|
|
97
69
|
relatedPost: 'related-post',
|
|
98
|
-
sideIndex: 'side-index'
|
|
70
|
+
sideIndex: 'side-index',
|
|
71
|
+
video: 'video',
|
|
72
|
+
audio: 'audio'
|
|
99
73
|
};
|
|
100
74
|
exports.buttonNames = buttonNames;
|
|
101
|
-
const disabledButtonsOnBasicEditor = [buttonNames.annotation, buttonNames.divider, buttonNames.embed, buttonNames.image, buttonNames.infoBox, buttonNames.slideshow, buttonNames.table, buttonNames.textAlign, buttonNames.colorBox, buttonNames.backgroundColor, buttonNames.backgroundImage, buttonNames.backgroundVideo, buttonNames.relatedPost, buttonNames.sideIndex];
|
|
75
|
+
const disabledButtonsOnBasicEditor = [buttonNames.annotation, buttonNames.divider, buttonNames.embed, buttonNames.image, buttonNames.infoBox, buttonNames.slideshow, buttonNames.table, buttonNames.textAlign, buttonNames.colorBox, buttonNames.backgroundColor, buttonNames.backgroundImage, buttonNames.backgroundVideo, buttonNames.relatedPost, buttonNames.sideIndex, buttonNames.video, buttonNames.audio];
|
|
102
76
|
const buttonStyle = (0, _styledComponents.css)`
|
|
103
77
|
border-radius: 6px;
|
|
104
78
|
text-align: center;
|
|
@@ -114,18 +88,15 @@ const buttonStyle = (0, _styledComponents.css)`
|
|
|
114
88
|
if (props.readOnly) {
|
|
115
89
|
return 'not-allowed';
|
|
116
90
|
}
|
|
117
|
-
|
|
118
91
|
return 'pointer';
|
|
119
92
|
}};
|
|
120
93
|
color: ${props => {
|
|
121
94
|
if (props.readOnly) {
|
|
122
95
|
return '#c1c7d0';
|
|
123
96
|
}
|
|
124
|
-
|
|
125
97
|
if (props.isActive) {
|
|
126
98
|
return '#3b82f6';
|
|
127
99
|
}
|
|
128
|
-
|
|
129
100
|
return '#6b7280';
|
|
130
101
|
}};
|
|
131
102
|
border: solid 1px
|
|
@@ -133,22 +104,18 @@ const buttonStyle = (0, _styledComponents.css)`
|
|
|
133
104
|
if (props.readOnly) {
|
|
134
105
|
return '#c1c7d0';
|
|
135
106
|
}
|
|
136
|
-
|
|
137
107
|
if (props.isActive) {
|
|
138
108
|
return '#3b82f6';
|
|
139
109
|
}
|
|
140
|
-
|
|
141
110
|
return '#6b7280';
|
|
142
111
|
}};
|
|
143
112
|
box-shadow: ${props => {
|
|
144
113
|
if (props.readOnly) {
|
|
145
114
|
return 'unset';
|
|
146
115
|
}
|
|
147
|
-
|
|
148
116
|
if (props.isActive) {
|
|
149
117
|
return 'rgba(38, 132, 255, 20%) 0px 1px 4px ';
|
|
150
118
|
}
|
|
151
|
-
|
|
152
119
|
return 'unset';
|
|
153
120
|
}};
|
|
154
121
|
transition: box-shadow 100ms linear;
|
|
@@ -157,7 +124,6 @@ const buttonStyle = (0, _styledComponents.css)`
|
|
|
157
124
|
if (props.isDisabled) {
|
|
158
125
|
return 'none';
|
|
159
126
|
}
|
|
160
|
-
|
|
161
127
|
return 'inline-flex';
|
|
162
128
|
}};
|
|
163
129
|
`;
|
|
@@ -167,11 +133,9 @@ const longFormButtonStyle = (0, _styledComponents.css)`
|
|
|
167
133
|
if (props.readOnly) {
|
|
168
134
|
return '#c1c7d0';
|
|
169
135
|
}
|
|
170
|
-
|
|
171
136
|
if (props.isActive) {
|
|
172
137
|
return '#ED8B00';
|
|
173
138
|
}
|
|
174
|
-
|
|
175
139
|
return '#6b7280';
|
|
176
140
|
}};
|
|
177
141
|
border: solid 1px
|
|
@@ -179,22 +143,18 @@ const longFormButtonStyle = (0, _styledComponents.css)`
|
|
|
179
143
|
if (props.readOnly) {
|
|
180
144
|
return '#c1c7d0';
|
|
181
145
|
}
|
|
182
|
-
|
|
183
146
|
if (props.isActive) {
|
|
184
147
|
return '#ED8B00';
|
|
185
148
|
}
|
|
186
|
-
|
|
187
149
|
return '#FECC85';
|
|
188
150
|
}};
|
|
189
151
|
box-shadow: ${props => {
|
|
190
152
|
if (props.readOnly) {
|
|
191
153
|
return 'unset';
|
|
192
154
|
}
|
|
193
|
-
|
|
194
155
|
if (props.isActive) {
|
|
195
156
|
return 'rgba(237, 139, 0, 0.5) 0px 1px 4px';
|
|
196
157
|
}
|
|
197
|
-
|
|
198
158
|
return 'unset';
|
|
199
159
|
}};
|
|
200
160
|
`;
|
|
@@ -213,7 +173,6 @@ const CustomAnnotationButton = (0, _styledComponents.default)(_annotation.Annota
|
|
|
213
173
|
const CustomLinkButton = (0, _styledComponents.default)(_link.LinkButton)`
|
|
214
174
|
${buttonStyle}
|
|
215
175
|
`;
|
|
216
|
-
|
|
217
176
|
function createButtonWithoutProps(referenceComponent, isLongForm = false, additionalCSS = ``) {
|
|
218
177
|
return isLongForm ? (0, _styledComponents.default)(referenceComponent)`
|
|
219
178
|
${longFormButtonStyle}
|
|
@@ -223,7 +182,6 @@ function createButtonWithoutProps(referenceComponent, isLongForm = false, additi
|
|
|
223
182
|
${additionalCSS}
|
|
224
183
|
`;
|
|
225
184
|
}
|
|
226
|
-
|
|
227
185
|
const CustomEnlargeButton = createButtonWithoutProps(_enlarge.EnlargeButton, false, `color: #999`);
|
|
228
186
|
const CustomImageButton = createButtonWithoutProps(_image.ImageButton);
|
|
229
187
|
const CustomSlideshowButton = createButtonWithoutProps(_slideshow.SlideshowButton);
|
|
@@ -238,6 +196,8 @@ const CustomRelatedPostButton = createButtonWithoutProps(_relatedPost.RelatedPos
|
|
|
238
196
|
const CustomSideIndexButton = createButtonWithoutProps(_sideIndex.SideIndexButton, true);
|
|
239
197
|
const CustomAlignCenterButton = createButtonWithoutProps(_textAlign.AlignCenterButton, true);
|
|
240
198
|
const CustomAlignLeftButton = createButtonWithoutProps(_textAlign.AlignLeftButton, true);
|
|
199
|
+
const CustomVideoButton = createButtonWithoutProps(_video.VideoButton);
|
|
200
|
+
const CustomAudioButton = createButtonWithoutProps(_audio.AudioButton);
|
|
241
201
|
const DraftEditorWrapper = _styledComponents.default.div`
|
|
242
202
|
/* Rich-editor default setting (.RichEditor-root)*/
|
|
243
203
|
background: #fff;
|
|
@@ -379,15 +339,14 @@ const EnlargeButtonWrapper = _styledComponents.default.div`
|
|
|
379
339
|
right: 0;
|
|
380
340
|
margin: 0;
|
|
381
341
|
`;
|
|
382
|
-
|
|
383
342
|
class RichTextEditor extends _react.default.Component {
|
|
384
343
|
constructor(props) {
|
|
385
344
|
super(props);
|
|
386
345
|
this.state = {
|
|
387
346
|
isEnlarged: false,
|
|
388
347
|
readOnly: false
|
|
389
|
-
};
|
|
390
|
-
|
|
348
|
+
};
|
|
349
|
+
// Custom overrides for "code" style.
|
|
391
350
|
this.customStyleMap = {
|
|
392
351
|
CODE: {
|
|
393
352
|
backgroundColor: 'rgba(0, 0, 0, 0.05)',
|
|
@@ -397,18 +356,15 @@ class RichTextEditor extends _react.default.Component {
|
|
|
397
356
|
}
|
|
398
357
|
};
|
|
399
358
|
}
|
|
400
|
-
|
|
401
359
|
onChange = editorState => {
|
|
402
360
|
this.props.onChange(editorState);
|
|
403
361
|
};
|
|
404
362
|
handleKeyCommand = (command, editorState) => {
|
|
405
363
|
const newState = _draftJs.RichUtils.handleKeyCommand(editorState, command);
|
|
406
|
-
|
|
407
364
|
if (newState) {
|
|
408
365
|
this.onChange(newState);
|
|
409
366
|
return true;
|
|
410
367
|
}
|
|
411
|
-
|
|
412
368
|
return false;
|
|
413
369
|
};
|
|
414
370
|
handleReturn = event => {
|
|
@@ -420,24 +376,17 @@ class RichTextEditor extends _react.default.Component {
|
|
|
420
376
|
onChange(_draftJs.RichUtils.insertSoftNewline(editorState));
|
|
421
377
|
return 'handled';
|
|
422
378
|
}
|
|
423
|
-
|
|
424
379
|
return 'not-handled';
|
|
425
380
|
};
|
|
426
381
|
mapKeyToEditorCommand = e => {
|
|
427
|
-
if (e.keyCode === 9
|
|
428
|
-
|
|
429
|
-
) {
|
|
430
|
-
const newEditorState = _draftJs.RichUtils.onTab(e, this.props.editorState, 4
|
|
431
|
-
/* maxDepth */
|
|
432
|
-
);
|
|
382
|
+
if (e.keyCode === 9 /* TAB */) {
|
|
383
|
+
const newEditorState = _draftJs.RichUtils.onTab(e, this.props.editorState, 4 /* maxDepth */);
|
|
433
384
|
|
|
434
385
|
if (newEditorState !== this.props.editorState) {
|
|
435
386
|
this.onChange(newEditorState);
|
|
436
387
|
}
|
|
437
|
-
|
|
438
388
|
return;
|
|
439
389
|
}
|
|
440
|
-
|
|
441
390
|
return (0, _draftJs.getDefaultKeyBinding)(e);
|
|
442
391
|
};
|
|
443
392
|
toggleBlockType = blockType => {
|
|
@@ -454,23 +403,18 @@ class RichTextEditor extends _react.default.Component {
|
|
|
454
403
|
const endOffset = selection.getEndOffset();
|
|
455
404
|
let entityInstance;
|
|
456
405
|
let entityKey;
|
|
457
|
-
|
|
458
406
|
if (!selection.isCollapsed()) {
|
|
459
407
|
entityKey = startBlock.getEntityAt(startOffset);
|
|
460
408
|
} else {
|
|
461
409
|
entityKey = startBlock.getEntityAt(endOffset);
|
|
462
410
|
}
|
|
463
|
-
|
|
464
411
|
if (entityKey !== null) {
|
|
465
412
|
entityInstance = contentState.getEntity(entityKey);
|
|
466
413
|
}
|
|
467
|
-
|
|
468
414
|
let entityType = '';
|
|
469
|
-
|
|
470
415
|
if (entityInstance) {
|
|
471
416
|
entityType = entityInstance.getType();
|
|
472
417
|
}
|
|
473
|
-
|
|
474
418
|
return entityType;
|
|
475
419
|
};
|
|
476
420
|
getCustomStyle = style => {
|
|
@@ -478,11 +422,9 @@ class RichTextEditor extends _react.default.Component {
|
|
|
478
422
|
if (styleName !== null && styleName !== void 0 && styleName.startsWith(_const.CUSTOM_STYLE_PREFIX_FONT_COLOR)) {
|
|
479
423
|
styles['color'] = styleName.split(_const.CUSTOM_STYLE_PREFIX_FONT_COLOR)[1];
|
|
480
424
|
}
|
|
481
|
-
|
|
482
425
|
if (styleName !== null && styleName !== void 0 && styleName.startsWith(_const.CUSTOM_STYLE_PREFIX_BACKGROUND_COLOR)) {
|
|
483
426
|
styles['backgroundColor'] = styleName.split(_const.CUSTOM_STYLE_PREFIX_BACKGROUND_COLOR)[1];
|
|
484
427
|
}
|
|
485
|
-
|
|
486
428
|
return styles;
|
|
487
429
|
}, {});
|
|
488
430
|
};
|
|
@@ -494,10 +436,8 @@ class RichTextEditor extends _react.default.Component {
|
|
|
494
436
|
customStyleFn = style => {
|
|
495
437
|
return this.getCustomStyle(style);
|
|
496
438
|
};
|
|
497
|
-
|
|
498
439
|
blockStyleFn(block) {
|
|
499
440
|
var _entity$getData;
|
|
500
|
-
|
|
501
441
|
const {
|
|
502
442
|
editorState
|
|
503
443
|
} = this.props;
|
|
@@ -505,17 +445,14 @@ class RichTextEditor extends _react.default.Component {
|
|
|
505
445
|
const entity = entityKey ? editorState.getCurrentContent().getEntity(entityKey) : null;
|
|
506
446
|
let result = '';
|
|
507
447
|
const blockData = block.getData();
|
|
508
|
-
|
|
509
448
|
if (blockData) {
|
|
510
449
|
const textAlign = blockData === null || blockData === void 0 ? void 0 : blockData.get('textAlign');
|
|
511
|
-
|
|
512
450
|
if (textAlign === 'center') {
|
|
513
451
|
result += 'alignCenter ';
|
|
514
452
|
} else if (textAlign === 'left') {
|
|
515
453
|
result += 'alignLeft ';
|
|
516
454
|
}
|
|
517
455
|
}
|
|
518
|
-
|
|
519
456
|
switch (block.getType()) {
|
|
520
457
|
case 'header-two':
|
|
521
458
|
case 'header-three':
|
|
@@ -523,25 +460,19 @@ class RichTextEditor extends _react.default.Component {
|
|
|
523
460
|
case 'blockquote':
|
|
524
461
|
result += 'public-DraftStyleDefault-' + block.getType();
|
|
525
462
|
break;
|
|
526
|
-
|
|
527
463
|
case 'atomic':
|
|
528
464
|
if ((_entity$getData = entity.getData()) !== null && _entity$getData !== void 0 && _entity$getData.alignment) {
|
|
529
465
|
// support all atomic block to set alignment
|
|
530
466
|
result += ' ' + entity.getData().alignment;
|
|
531
467
|
}
|
|
532
|
-
|
|
533
468
|
break;
|
|
534
|
-
|
|
535
469
|
default:
|
|
536
470
|
break;
|
|
537
471
|
}
|
|
538
|
-
|
|
539
472
|
return result;
|
|
540
473
|
}
|
|
541
|
-
|
|
542
474
|
blockRendererFn = block => {
|
|
543
475
|
const atomicBlockObj = (0, _blockRendererFn.atomicBlockRenderer)(block);
|
|
544
|
-
|
|
545
476
|
if (atomicBlockObj) {
|
|
546
477
|
const onEditStart = () => {
|
|
547
478
|
this.setState({
|
|
@@ -557,7 +488,6 @@ class RichTextEditor extends _react.default.Component {
|
|
|
557
488
|
readOnly: true
|
|
558
489
|
});
|
|
559
490
|
};
|
|
560
|
-
|
|
561
491
|
const onEditFinish = ({
|
|
562
492
|
entityKey,
|
|
563
493
|
entityData
|
|
@@ -568,20 +498,20 @@ class RichTextEditor extends _react.default.Component {
|
|
|
568
498
|
this.onChange(_draftJs.EditorState.set(this.props.editorState, {
|
|
569
499
|
currentContent: newContentState
|
|
570
500
|
}));
|
|
571
|
-
}
|
|
501
|
+
}
|
|
502
|
+
|
|
503
|
+
// Custom block interaction is finished.
|
|
572
504
|
// Therefore, we set readOnly={false} to
|
|
573
505
|
// make editor editable.
|
|
574
|
-
|
|
575
|
-
|
|
576
506
|
this.setState({
|
|
577
507
|
readOnly: false
|
|
578
508
|
});
|
|
579
|
-
};
|
|
509
|
+
};
|
|
510
|
+
|
|
511
|
+
// `onEditStart` and `onEditFinish` will be passed
|
|
580
512
|
// into custom block component.
|
|
581
513
|
// We can get them via `props.blockProps.onEditStart`
|
|
582
514
|
// and `props.blockProps.onEditFinish` in the custom block components.
|
|
583
|
-
|
|
584
|
-
|
|
585
515
|
atomicBlockObj['props'] = {
|
|
586
516
|
onEditStart,
|
|
587
517
|
onEditFinish,
|
|
@@ -593,10 +523,8 @@ class RichTextEditor extends _react.default.Component {
|
|
|
593
523
|
}
|
|
594
524
|
};
|
|
595
525
|
}
|
|
596
|
-
|
|
597
526
|
return atomicBlockObj;
|
|
598
527
|
};
|
|
599
|
-
|
|
600
528
|
render() {
|
|
601
529
|
const {
|
|
602
530
|
disabledButtons = []
|
|
@@ -604,24 +532,20 @@ class RichTextEditor extends _react.default.Component {
|
|
|
604
532
|
let {
|
|
605
533
|
editorState
|
|
606
534
|
} = this.props;
|
|
607
|
-
|
|
608
535
|
if (!(editorState instanceof _draftJs.EditorState)) {
|
|
609
536
|
editorState = _draftJs.EditorState.createEmpty(_entityDecorator.default);
|
|
610
537
|
}
|
|
611
|
-
|
|
612
538
|
const {
|
|
613
539
|
isEnlarged,
|
|
614
540
|
readOnly
|
|
615
541
|
} = this.state;
|
|
616
542
|
const entityType = this.getEntityType(editorState);
|
|
617
543
|
const customStyle = this.getCustomStyle(editorState.getCurrentInlineStyle());
|
|
618
|
-
|
|
619
544
|
const renderBasicEditor = propsOfBasicEditor => {
|
|
620
545
|
return /*#__PURE__*/_react.default.createElement(RichTextEditor, _extends({}, propsOfBasicEditor, {
|
|
621
546
|
disabledButtons: disabledButtonsOnBasicEditor
|
|
622
547
|
}));
|
|
623
548
|
};
|
|
624
|
-
|
|
625
549
|
return /*#__PURE__*/_react.default.createElement(DraftEditorContainer, {
|
|
626
550
|
isEnlarged: isEnlarged
|
|
627
551
|
}, /*#__PURE__*/_react.default.createElement(DraftEditorWrapper, null, /*#__PURE__*/_react.default.createElement("link", {
|
|
@@ -683,6 +607,18 @@ class RichTextEditor extends _react.default.Component {
|
|
|
683
607
|
onChange: this.onChange,
|
|
684
608
|
readOnly: this.state.readOnly,
|
|
685
609
|
ImageSelector: _imageSelector.ImageSelector
|
|
610
|
+
})), /*#__PURE__*/_react.default.createElement(ButtonGroup, null, /*#__PURE__*/_react.default.createElement(CustomVideoButton, {
|
|
611
|
+
isDisabled: disabledButtons.includes(buttonNames.video),
|
|
612
|
+
editorState: editorState,
|
|
613
|
+
onChange: this.onChange,
|
|
614
|
+
readOnly: this.state.readOnly,
|
|
615
|
+
VideoSelector: _videoSelector.VideoSelector
|
|
616
|
+
})), /*#__PURE__*/_react.default.createElement(ButtonGroup, null, /*#__PURE__*/_react.default.createElement(CustomAudioButton, {
|
|
617
|
+
isDisabled: disabledButtons.includes(buttonNames.audio),
|
|
618
|
+
editorState: editorState,
|
|
619
|
+
onChange: this.onChange,
|
|
620
|
+
readOnly: this.state.readOnly,
|
|
621
|
+
AudioSelector: _audioSelector.AudioSelector
|
|
686
622
|
})), /*#__PURE__*/_react.default.createElement(ButtonGroup, null, /*#__PURE__*/_react.default.createElement(CustomSlideshowButton, {
|
|
687
623
|
isDisabled: disabledButtons.includes(buttonNames.slideshow),
|
|
688
624
|
editorState: editorState,
|
|
@@ -761,7 +697,6 @@ class RichTextEditor extends _react.default.Component {
|
|
|
761
697
|
})))), /*#__PURE__*/_react.default.createElement(TextEditorWrapper, {
|
|
762
698
|
onClick: () => {
|
|
763
699
|
var _this$refs$editor;
|
|
764
|
-
|
|
765
700
|
// eslint-disable-next-line prettier/prettier
|
|
766
701
|
(_this$refs$editor = this.refs.editor) === null || _this$refs$editor === void 0 ? void 0 : _this$refs$editor.focus();
|
|
767
702
|
}
|
|
@@ -781,15 +716,12 @@ class RichTextEditor extends _react.default.Component {
|
|
|
781
716
|
readOnly: readOnly
|
|
782
717
|
}))));
|
|
783
718
|
}
|
|
784
|
-
|
|
785
719
|
}
|
|
786
|
-
|
|
787
720
|
class StyleButton extends _react.default.Component {
|
|
788
721
|
onToggle = e => {
|
|
789
722
|
e.preventDefault();
|
|
790
723
|
this.props.onToggle(this.props.style);
|
|
791
724
|
};
|
|
792
|
-
|
|
793
725
|
render() {
|
|
794
726
|
return /*#__PURE__*/_react.default.createElement(CustomButton, {
|
|
795
727
|
isDisabled: this.props.isDisabled,
|
|
@@ -800,9 +732,7 @@ class StyleButton extends _react.default.Component {
|
|
|
800
732
|
className: this.props.icon
|
|
801
733
|
}), /*#__PURE__*/_react.default.createElement("span", null, !this.props.icon ? this.props.label : ''));
|
|
802
734
|
}
|
|
803
|
-
|
|
804
735
|
}
|
|
805
|
-
|
|
806
736
|
const blockStyles = [{
|
|
807
737
|
label: 'H2',
|
|
808
738
|
style: 'header-two',
|
|
@@ -832,7 +762,6 @@ const blockStyles = [{
|
|
|
832
762
|
style: 'code-block',
|
|
833
763
|
icon: 'fas fa-code'
|
|
834
764
|
}];
|
|
835
|
-
|
|
836
765
|
const BlockStyleControls = props => {
|
|
837
766
|
const {
|
|
838
767
|
editorState,
|
|
@@ -851,7 +780,6 @@ const BlockStyleControls = props => {
|
|
|
851
780
|
readOnly: props.readOnly
|
|
852
781
|
})));
|
|
853
782
|
};
|
|
854
|
-
|
|
855
783
|
const inlineStyles = [{
|
|
856
784
|
label: 'Bold',
|
|
857
785
|
style: 'BOLD',
|
|
@@ -869,7 +797,6 @@ const inlineStyles = [{
|
|
|
869
797
|
style: 'CODE',
|
|
870
798
|
icon: 'fas fa-terminal'
|
|
871
799
|
}];
|
|
872
|
-
|
|
873
800
|
const InlineStyleControls = props => {
|
|
874
801
|
const currentStyle = props.editorState.getCurrentInlineStyle();
|
|
875
802
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, inlineStyles.map(type => /*#__PURE__*/_react.default.createElement(StyleButton, {
|
|
@@ -883,7 +810,6 @@ const InlineStyleControls = props => {
|
|
|
883
810
|
readOnly: props.readOnly
|
|
884
811
|
})));
|
|
885
812
|
};
|
|
886
|
-
|
|
887
813
|
const DraftEditor = {
|
|
888
814
|
RichTextEditor,
|
|
889
815
|
decorators: _entityDecorator.default
|
|
@@ -4,13 +4,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _draftJs = require("draft-js");
|
|
9
|
-
|
|
10
8
|
var _readr = _interopRequireDefault(require("@mirrormedia/lilith-draft-renderer/lib/website/readr"));
|
|
11
|
-
|
|
12
9
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
-
|
|
14
10
|
const {
|
|
15
11
|
annotationDecorator,
|
|
16
12
|
linkDecorator
|
|
@@ -4,11 +4,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _draftEditor = _interopRequireDefault(require("./draft-editor"));
|
|
9
|
-
|
|
10
8
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
-
|
|
12
9
|
const Readr = {
|
|
13
10
|
DraftEditor: _draftEditor.default
|
|
14
11
|
};
|
|
@@ -4,19 +4,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.AlignSelector = AlignSelector;
|
|
7
|
-
|
|
8
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
-
|
|
10
8
|
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
11
|
-
|
|
12
9
|
var _fields = require("@keystone-ui/fields");
|
|
13
|
-
|
|
14
10
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
-
|
|
16
11
|
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); }
|
|
17
|
-
|
|
18
12
|
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; }
|
|
19
|
-
|
|
20
13
|
const Label = _styledComponents.default.label`
|
|
21
14
|
display: block;
|
|
22
15
|
margin: 10px 0;
|
|
@@ -29,7 +22,6 @@ const AlignSelect = (0, _styledComponents.default)(_fields.Select)`
|
|
|
29
22
|
return `margin-bottom: ${menuHeight}px;`;
|
|
30
23
|
}}
|
|
31
24
|
`;
|
|
32
|
-
|
|
33
25
|
function AlignSelector(props) {
|
|
34
26
|
const [isOpen, setIsOpen] = (0, _react.useState)(false);
|
|
35
27
|
const [menuHeight, setMenuHeight] = (0, _react.useState)(0);
|
|
@@ -41,7 +33,6 @@ function AlignSelector(props) {
|
|
|
41
33
|
} = props;
|
|
42
34
|
(0, _react.useEffect)(() => {
|
|
43
35
|
const selectMenu = document.querySelector('.css-nabggt-menu');
|
|
44
|
-
|
|
45
36
|
if (selectMenu) {
|
|
46
37
|
const styles = window.getComputedStyle(selectMenu);
|
|
47
38
|
const margin = parseFloat(styles['marginTop']) + parseFloat(styles['marginBottom']);
|
|
@@ -49,7 +40,6 @@ function AlignSelector(props) {
|
|
|
49
40
|
} else {
|
|
50
41
|
setMenuHeight(0);
|
|
51
42
|
}
|
|
52
|
-
|
|
53
43
|
if (isOpen && onOpen) {
|
|
54
44
|
onOpen();
|
|
55
45
|
}
|
|
@@ -57,7 +47,8 @@ function AlignSelector(props) {
|
|
|
57
47
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(Label, {
|
|
58
48
|
htmlFor: "alignment"
|
|
59
49
|
}, "\u5C0D\u9F4A"), /*#__PURE__*/_react.default.createElement(AlignSelect, {
|
|
60
|
-
id: "alignment"
|
|
50
|
+
id: "alignment"
|
|
51
|
+
// default align === undefined
|
|
61
52
|
,
|
|
62
53
|
value: options.find(option => option.value === align),
|
|
63
54
|
options: options,
|