@mirrormedia/lilith-draft-editor 1.1.0-alpha.3 → 1.1.0-alpha.5

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.
Files changed (72) hide show
  1. package/lib/draft-js/buttons/annotation.js +22 -0
  2. package/lib/draft-js/buttons/audio.js +16 -3
  3. package/lib/draft-js/buttons/background-color.js +26 -0
  4. package/lib/draft-js/buttons/background-image.js +32 -13
  5. package/lib/draft-js/buttons/background-video.js +32 -13
  6. package/lib/draft-js/buttons/color-box.js +21 -5
  7. package/lib/draft-js/buttons/divider.js +12 -3
  8. package/lib/draft-js/buttons/embedded-code.js +16 -5
  9. package/lib/draft-js/buttons/enlarge.js +3 -0
  10. package/lib/draft-js/buttons/font-color.js +26 -0
  11. package/lib/draft-js/buttons/image.js +16 -5
  12. package/lib/draft-js/buttons/info-box.js +21 -5
  13. package/lib/draft-js/buttons/link.js +19 -0
  14. package/lib/draft-js/buttons/media.js +16 -3
  15. package/lib/draft-js/buttons/related-post.js +14 -3
  16. package/lib/draft-js/buttons/selector/align-selector.js +11 -2
  17. package/lib/draft-js/buttons/selector/audio-selector.js +33 -5
  18. package/lib/draft-js/buttons/selector/image-selector.js +50 -6
  19. package/lib/draft-js/buttons/selector/pagination.js +6 -2
  20. package/lib/draft-js/buttons/selector/post-selector.js +39 -6
  21. package/lib/draft-js/buttons/selector/search-box.js +9 -0
  22. package/lib/draft-js/buttons/selector/video-selector.js +33 -4
  23. package/lib/draft-js/buttons/side-index.js +31 -15
  24. package/lib/draft-js/buttons/slideshow.js +16 -7
  25. package/lib/draft-js/buttons/table.js +11 -5
  26. package/lib/draft-js/buttons/text-align.js +14 -0
  27. package/lib/draft-js/buttons/video.js +16 -3
  28. package/lib/draft-js/const.js +2 -0
  29. package/lib/draft-js/draft-converter/api-data-instance.js +14 -0
  30. package/lib/draft-js/draft-converter/atomic-block-processor.js +41 -12
  31. package/lib/draft-js/draft-converter/entities.js +0 -1
  32. package/lib/draft-js/draft-converter/index.js +29 -10
  33. package/lib/draft-js/draft-converter/inline-styles-processor.js +55 -22
  34. package/lib/draft-js/modifier.js +13 -5
  35. package/lib/index.js +4 -0
  36. package/lib/website/mirrormedia/block-renderer/background-image-block.js +14 -2
  37. package/lib/website/mirrormedia/block-renderer/background-video-block.js +14 -2
  38. package/lib/website/mirrormedia/block-renderer/color-box-block.js +14 -2
  39. package/lib/website/mirrormedia/block-renderer/embedded-code-block.js +12 -3
  40. package/lib/website/mirrormedia/block-renderer/info-box-block.js +14 -2
  41. package/lib/website/mirrormedia/block-renderer/side-index-block.js +13 -2
  42. package/lib/website/mirrormedia/block-renderer/slideshow-block.js +11 -4
  43. package/lib/website/mirrormedia/block-renderer/table-block.js +62 -28
  44. package/lib/website/mirrormedia/block-renderer-fn.js +30 -0
  45. package/lib/website/mirrormedia/draft-editor.js +106 -10
  46. package/lib/website/mirrormedia/entity-decorator.js +4 -0
  47. package/lib/website/mirrormedia/index.js +3 -0
  48. package/lib/website/mirrormedia/selector/align-selector.js +11 -2
  49. package/lib/website/mirrormedia/selector/audio-selector.js +33 -5
  50. package/lib/website/mirrormedia/selector/image-selector.js +49 -6
  51. package/lib/website/mirrormedia/selector/pagination.js +6 -2
  52. package/lib/website/mirrormedia/selector/post-selector.js +39 -6
  53. package/lib/website/mirrormedia/selector/search-box.js +9 -0
  54. package/lib/website/mirrormedia/selector/video-selector.js +32 -4
  55. package/lib/website/readr/block-renderer/background-image-block.js +14 -2
  56. package/lib/website/readr/block-renderer/background-video-block.js +14 -2
  57. package/lib/website/readr/block-renderer/color-box-block.js +14 -2
  58. package/lib/website/readr/block-renderer/info-box-block.js +14 -2
  59. package/lib/website/readr/block-renderer/side-index-block.js +13 -2
  60. package/lib/website/readr/block-renderer/table-block.js +62 -28
  61. package/lib/website/readr/block-renderer-fn.js +29 -1
  62. package/lib/website/readr/draft-editor.js +106 -10
  63. package/lib/website/readr/entity-decorator.js +4 -0
  64. package/lib/website/readr/index.js +3 -0
  65. package/lib/website/readr/selector/align-selector.js +11 -2
  66. package/lib/website/readr/selector/audio-selector.js +33 -17
  67. package/lib/website/readr/selector/image-selector.js +49 -6
  68. package/lib/website/readr/selector/pagination.js +6 -2
  69. package/lib/website/readr/selector/post-selector.js +39 -6
  70. package/lib/website/readr/selector/search-box.js +9 -0
  71. package/lib/website/readr/selector/video-selector.js +32 -4
  72. package/package.json +2 -2
@@ -4,16 +4,27 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.atomicBlockRenderer = atomicBlockRenderer;
7
+
7
8
  var _infoBoxBlock = require("./block-renderer/info-box-block");
9
+
8
10
  var _tableBlock = require("./block-renderer/table-block");
11
+
9
12
  var _colorBoxBlock = require("./block-renderer/color-box-block");
13
+
10
14
  var _backgroundImageBlock = require("./block-renderer/background-image-block");
15
+
11
16
  var _backgroundVideoBlock = require("./block-renderer/background-video-block");
17
+
12
18
  var _sideIndexBlock = require("./block-renderer/side-index-block");
19
+
13
20
  var _embeddedCodeBlock = require("./block-renderer/embedded-code-block");
21
+
14
22
  var _slideshowBlock = require("./block-renderer/slideshow-block");
23
+
15
24
  var _mirrormedia = _interopRequireDefault(require("@mirrormedia/lilith-draft-renderer/lib/website/mirrormedia"));
25
+
16
26
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
27
+
17
28
  const {
18
29
  MediaBlock,
19
30
  ImageBlock,
@@ -22,9 +33,11 @@ const {
22
33
  VideoBlock,
23
34
  AudioBlock
24
35
  } = _mirrormedia.default.blockRenderers;
36
+
25
37
  const AtomicBlock = props => {
26
38
  const entity = props.contentState.getEntity(props.block.getEntityAt(0));
27
39
  const entityType = entity.getType();
40
+
28
41
  switch (entityType) {
29
42
  case 'audioLink':
30
43
  case 'imageLink':
@@ -32,65 +45,81 @@ const AtomicBlock = props => {
32
45
  {
33
46
  return MediaBlock(entity);
34
47
  }
48
+
35
49
  case 'image':
36
50
  {
37
51
  return ImageBlock(entity);
38
52
  }
53
+
39
54
  case 'slideshow':
40
55
  {
41
56
  return (0, _slideshowBlock.SlideshowEditBlock)(entity);
42
57
  }
58
+
43
59
  case 'slideshow-v2':
44
60
  {
45
61
  return (0, _slideshowBlock.SlideshowEditBlockV2)(entity);
46
62
  }
63
+
47
64
  case 'EMBEDDEDCODE':
48
65
  {
49
66
  return (0, _embeddedCodeBlock.EmbeddedCodeEditorBlock)(entity);
50
67
  }
68
+
51
69
  case 'INFOBOX':
52
70
  {
53
71
  return (0, _infoBoxBlock.InfoBoxEditorBlock)(props);
54
72
  }
73
+
55
74
  case 'DIVIDER':
56
75
  {
57
76
  return DividerBlock();
58
77
  }
78
+
59
79
  case 'TABLE':
60
80
  {
61
81
  return (0, _tableBlock.TableEditorBlock)(props);
62
82
  }
83
+
63
84
  case 'COLORBOX':
64
85
  {
65
86
  return (0, _colorBoxBlock.ColorBoxEditorBlock)(props);
66
87
  }
88
+
67
89
  case 'BACKGROUNDIMAGE':
68
90
  {
69
91
  return (0, _backgroundImageBlock.BGImageEditorBlock)(props);
70
92
  }
93
+
71
94
  case 'BACKGROUNDVIDEO':
72
95
  {
73
96
  return (0, _backgroundVideoBlock.BGVideoEditorBlock)(props);
74
97
  }
98
+
75
99
  case 'RELATEDPOST':
76
100
  {
77
101
  return RelatedPostBlock(entity);
78
102
  }
103
+
79
104
  case 'SIDEINDEX':
80
105
  {
81
106
  return (0, _sideIndexBlock.SideIndexEditorBlock)(props);
82
107
  }
108
+
83
109
  case 'VIDEO':
84
110
  {
85
111
  return VideoBlock(entity);
86
112
  }
113
+
87
114
  case 'AUDIO':
88
115
  {
89
116
  return AudioBlock(entity);
90
117
  }
91
118
  }
119
+
92
120
  return null;
93
121
  };
122
+
94
123
  function atomicBlockRenderer(block) {
95
124
  if (block.getType() === 'atomic') {
96
125
  return {
@@ -98,5 +127,6 @@ function atomicBlockRenderer(block) {
98
127
  editable: false
99
128
  };
100
129
  }
130
+
101
131
  return null;
102
132
  }
@@ -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
- // Custom overrides for "code" style.
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 /* TAB */) {
383
- const newEditorState = _draftJs.RichUtils.onTab(e, this.props.editorState, 4 /* maxDepth */);
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 _mirrormedia = _interopRequireDefault(require("@mirrormedia/lilith-draft-renderer/lib/website/mirrormedia"));
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 MirrorMedia = {
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,