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