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