@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.
Files changed (79) 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 +18 -7
  12. package/lib/draft-js/buttons/info-box.js +21 -5
  13. package/lib/draft-js/buttons/link.js +68 -22
  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 +64 -16
  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 +19 -5
  28. package/lib/draft-js/buttons/youtube.js +147 -0
  29. package/lib/draft-js/const.js +2 -0
  30. package/lib/draft-js/draft-converter/api-data-instance.js +14 -0
  31. package/lib/draft-js/draft-converter/atomic-block-processor.js +42 -12
  32. package/lib/draft-js/draft-converter/entities.js +3 -1
  33. package/lib/draft-js/draft-converter/index.js +29 -10
  34. package/lib/draft-js/draft-converter/inline-styles-processor.js +55 -22
  35. package/lib/draft-js/modifier.js +13 -5
  36. package/lib/draft-js/util.js +32 -0
  37. package/lib/index.js +4 -0
  38. package/lib/website/mirrormedia/block-renderer/background-image-block.js +14 -2
  39. package/lib/website/mirrormedia/block-renderer/background-video-block.js +14 -2
  40. package/lib/website/mirrormedia/block-renderer/color-box-block.js +14 -2
  41. package/lib/website/mirrormedia/block-renderer/embedded-code-block.js +12 -3
  42. package/lib/website/mirrormedia/block-renderer/image-block.js +108 -0
  43. package/lib/website/mirrormedia/block-renderer/info-box-block.js +14 -2
  44. package/lib/website/mirrormedia/block-renderer/side-index-block.js +13 -2
  45. package/lib/website/mirrormedia/block-renderer/slideshow-block.js +93 -7
  46. package/lib/website/mirrormedia/block-renderer/table-block.js +62 -28
  47. package/lib/website/mirrormedia/block-renderer-fn.js +48 -5
  48. package/lib/website/mirrormedia/draft-editor.js +138 -14
  49. package/lib/website/mirrormedia/entity-decorator.js +12 -1
  50. package/lib/website/mirrormedia/index.js +3 -0
  51. package/lib/website/mirrormedia/selector/align-selector.js +11 -2
  52. package/lib/website/mirrormedia/selector/audio-selector.js +34 -5
  53. package/lib/website/mirrormedia/selector/image-selector.js +75 -18
  54. package/lib/website/mirrormedia/selector/pagination.js +6 -2
  55. package/lib/website/mirrormedia/selector/post-selector.js +40 -6
  56. package/lib/website/mirrormedia/selector/search-box.js +9 -0
  57. package/lib/website/mirrormedia/selector/video-selector.js +36 -7
  58. package/lib/website/mirrormedia/shared-style/index.js +17 -0
  59. package/lib/website/mirrormedia/theme/index.js +28 -0
  60. package/lib/website/readr/block-renderer/background-image-block.js +66 -6
  61. package/lib/website/readr/block-renderer/background-video-block.js +76 -6
  62. package/lib/website/readr/block-renderer/color-box-block.js +14 -2
  63. package/lib/website/readr/block-renderer/image-block.js +106 -0
  64. package/lib/website/readr/block-renderer/info-box-block.js +14 -2
  65. package/lib/website/readr/block-renderer/side-index-block.js +13 -2
  66. package/lib/website/readr/block-renderer/table-block.js +62 -28
  67. package/lib/website/readr/block-renderer-fn.js +32 -3
  68. package/lib/website/readr/draft-editor.js +112 -12
  69. package/lib/website/readr/entity-decorator.js +4 -0
  70. package/lib/website/readr/index.js +3 -0
  71. package/lib/website/readr/selector/align-selector.js +11 -2
  72. package/lib/website/readr/selector/audio-selector.js +34 -17
  73. package/lib/website/readr/selector/image-selector.js +62 -16
  74. package/lib/website/readr/selector/pagination.js +6 -2
  75. package/lib/website/readr/selector/post-selector.js +40 -13
  76. package/lib/website/readr/selector/search-box.js +9 -0
  77. package/lib/website/readr/selector/video-selector.js +33 -4
  78. package/lib/website/readr/theme/index.js +39 -0
  79. package/package.json +8 -8
@@ -4,15 +4,25 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.VideoSelector = VideoSelector;
7
+
7
8
  var _react = _interopRequireWildcard(require("react"));
9
+
8
10
  var _styledComponents = _interopRequireDefault(require("styled-components"));
11
+
9
12
  var _modals = require("@keystone-ui/modals");
13
+
10
14
  var _apollo = require("@keystone-6/core/admin-ui/apollo");
15
+
11
16
  var _searchBox = require("./search-box");
17
+
12
18
  var _pagination = require("./pagination");
19
+
13
20
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
+
14
22
  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); }
23
+
15
24
  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; }
25
+
16
26
  const VideoSearchBox = (0, _styledComponents.default)(_searchBox.SearchBox)`
17
27
  margin-top: 10px;
18
28
  `;
@@ -59,6 +69,7 @@ const ErrorWrapper = _styledComponents.default.div`
59
69
  margin: 0;
60
70
  }
61
71
  `;
72
+
62
73
  function VideosGrids(props) {
63
74
  const {
64
75
  videos,
@@ -74,8 +85,10 @@ function VideosGrids(props) {
74
85
  });
75
86
  }));
76
87
  }
88
+
77
89
  function VideoGrid(props) {
78
90
  var _video$videoFile;
91
+
79
92
  const {
80
93
  video,
81
94
  onSelect,
@@ -95,20 +108,24 @@ function VideoGrid(props) {
95
108
  src: video === null || video === void 0 ? void 0 : (_video$videoFile = video.videoFile) === null || _video$videoFile === void 0 ? void 0 : _video$videoFile.url
96
109
  })));
97
110
  }
111
+
98
112
  function VideoMetaGrids(props) {
99
113
  const {
100
114
  videoMetas
101
115
  } = props;
102
116
  return /*#__PURE__*/_react.default.createElement(VideoMetaGridsWrapper, null, videoMetas.map(videoMeta => {
103
117
  var _videoMeta$video;
118
+
104
119
  return /*#__PURE__*/_react.default.createElement(VideoMetaGrid, {
105
120
  key: videoMeta === null || videoMeta === void 0 ? void 0 : (_videoMeta$video = videoMeta.video) === null || _videoMeta$video === void 0 ? void 0 : _videoMeta$video.id,
106
121
  videoMeta: videoMeta
107
122
  });
108
123
  }));
109
124
  }
125
+
110
126
  function VideoMetaGrid(props) {
111
127
  var _video$videoFile2;
128
+
112
129
  const {
113
130
  videoMeta
114
131
  } = props;
@@ -125,6 +142,7 @@ function VideoMetaGrid(props) {
125
142
  src: video === null || video === void 0 ? void 0 : (_video$videoFile2 = video.videoFile) === null || _video$videoFile2 === void 0 ? void 0 : _video$videoFile2.url
126
143
  })));
127
144
  }
145
+
128
146
  const videosQuery = (0, _apollo.gql)`
129
147
  query Videos($searchText: String!, $take: Int, $skip: Int) {
130
148
  videosCount(where: { name: { contains: $searchText } })
@@ -155,6 +173,7 @@ const videosQuery = (0, _apollo.gql)`
155
173
  }
156
174
  }
157
175
  `;
176
+
158
177
  function VideoSelector(props) {
159
178
  const [queryVideos, {
160
179
  loading,
@@ -167,40 +186,46 @@ function VideoSelector(props) {
167
186
  fetchPolicy: 'no-cache'
168
187
  });
169
188
  const [currentPage, setCurrentPage] = (0, _react.useState)(0); // page starts with 1, 0 is used to detect initialization
189
+
170
190
  const [searchText, setSearchText] = (0, _react.useState)('');
171
191
  const [selected, setSelected] = (0, _react.useState)([]);
172
192
  const pageSize = 6;
173
193
  const {
174
194
  onChange
175
195
  } = props;
196
+
176
197
  const onSave = () => {
177
198
  onChange(selected);
178
199
  };
200
+
179
201
  const onCancel = () => {
180
202
  onChange([]);
181
203
  };
204
+
182
205
  const onSearchBoxChange = async searchInput => {
183
206
  setSearchText(searchInput);
184
207
  setCurrentPage(1);
185
208
  };
209
+
186
210
  const onVideosGridSelect = videoEntity => {
187
211
  setSelected(selected => {
188
212
  const filterdSelected = selected.filter(ele => {
189
213
  var _ele$video;
214
+
190
215
  return ((_ele$video = ele.video) === null || _ele$video === void 0 ? void 0 : _ele$video.id) !== videoEntity.id;
191
- });
216
+ }); // deselect the video
192
217
 
193
- // deselect the video
194
218
  if (filterdSelected.length !== selected.length) {
195
219
  return filterdSelected;
196
- }
220
+ } // single select
221
+
197
222
 
198
- // single select
199
223
  return [{
200
224
  video: videoEntity
201
225
  }];
202
226
  });
203
227
  };
228
+
204
229
  const selectedVideos = selected.map(ele => {
205
230
  return ele.video;
206
231
  });
@@ -215,6 +240,7 @@ function VideoSelector(props) {
215
240
  });
216
241
  }
217
242
  }, [currentPage, searchText]);
243
+
218
244
  let searchResult = /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(VideosGrids, {
219
245
  videos: videos,
220
246
  selected: selectedVideos,
@@ -227,12 +253,15 @@ function VideoSelector(props) {
227
253
  setCurrentPage(pageIndex);
228
254
  }
229
255
  }));
256
+
230
257
  if (loading) {
231
258
  searchResult = /*#__PURE__*/_react.default.createElement("p", null, "searching...");
232
259
  }
260
+
233
261
  if (error) {
234
262
  searchResult = /*#__PURE__*/_react.default.createElement(ErrorWrapper, null, /*#__PURE__*/_react.default.createElement("h3", null, "Errors occurs in the `videos` query"), /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("br", null), /*#__PURE__*/_react.default.createElement("b", null, "Message:"), /*#__PURE__*/_react.default.createElement("div", null, error.message), /*#__PURE__*/_react.default.createElement("br", null), /*#__PURE__*/_react.default.createElement("b", null, "Stack:"), /*#__PURE__*/_react.default.createElement("div", null, error.stack), /*#__PURE__*/_react.default.createElement("br", null), /*#__PURE__*/_react.default.createElement("b", null, "Query:"), /*#__PURE__*/_react.default.createElement("pre", null, videosQuery.loc.source.body)));
235
263
  }
264
+
236
265
  return /*#__PURE__*/_react.default.createElement(_modals.DrawerController, {
237
266
  isOpen: true
238
267
  }, /*#__PURE__*/_react.default.createElement(_modals.Drawer, {
@@ -5,16 +5,27 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.SideIndexButton = SideIndexButton;
7
7
  exports.SideIndexInput = SideIndexInput;
8
+
8
9
  var _react = _interopRequireWildcard(require("react"));
10
+
9
11
  var _draftJs = require("draft-js");
12
+
10
13
  var _modals = require("@keystone-ui/modals");
14
+
11
15
  var _button = require("@keystone-ui/button");
16
+
12
17
  var _styledComponents = _interopRequireDefault(require("styled-components"));
18
+
13
19
  var _imageSelector = require("./selector/image-selector");
20
+
14
21
  var _fields = require("@keystone-ui/fields");
22
+
15
23
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
24
+
16
25
  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); }
26
+
17
27
  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; }
28
+
18
29
  const Label = _styledComponents.default.label`
19
30
  display: block;
20
31
  font-weight: 600;
@@ -24,8 +35,10 @@ const ImageInputText = _styledComponents.default.span`
24
35
  display: inline-block;
25
36
  margin-right: 10px;
26
37
  `;
38
+
27
39
  function SideIndexInput(props) {
28
40
  var _inputValue$sideIndex;
41
+
29
42
  const {
30
43
  isOpen,
31
44
  onChange,
@@ -43,19 +56,23 @@ function SideIndexInput(props) {
43
56
  };
44
57
  const [inputValue, setInputValue] = (0, _react.useState)(initialInputValue);
45
58
  const [toShowImageSelector, setToShowImageSelector] = (0, _react.useState)(false);
59
+
46
60
  const onImageSelectorChange = selectedImagesWithMeta => {
47
61
  var _selectedImagesWithMe;
62
+
48
63
  const image = selectedImagesWithMeta === null || selectedImagesWithMeta === void 0 ? void 0 : (_selectedImagesWithMe = selectedImagesWithMeta[0]) === null || _selectedImagesWithMe === void 0 ? void 0 : _selectedImagesWithMe.image;
64
+
49
65
  if (!image) {
50
66
  setToShowImageSelector(false);
51
67
  return;
52
68
  }
53
- setInputValue(oldInputValue => ({
54
- ...oldInputValue,
69
+
70
+ setInputValue(oldInputValue => ({ ...oldInputValue,
55
71
  sideIndexImage: image
56
72
  }));
57
73
  setToShowImageSelector(false);
58
74
  };
75
+
59
76
  (0, _react.useEffect)(() => {
60
77
  if (isOpen) {
61
78
  setInputValue(initialInputValue);
@@ -77,31 +94,27 @@ function SideIndexInput(props) {
77
94
  confirm: {
78
95
  label: 'Confirm',
79
96
  action: () => {
80
- onChange({
81
- ...inputValue
97
+ onChange({ ...inputValue
82
98
  });
83
99
  }
84
100
  }
85
101
  }
86
102
  }, /*#__PURE__*/_react.default.createElement(Label, null, "\u6587\u5167\u6A19\u984C (\u82E5\u586B\u5165\u5916\u90E8\u9023\u7D50\u5247\u4E0D\u6703\u7522\u751F\u6587\u7AE0\u5167h2)"), /*#__PURE__*/_react.default.createElement(_fields.TextInput, {
87
- onChange: e => setInputValue(oldInputValue => ({
88
- ...oldInputValue,
103
+ onChange: e => setInputValue(oldInputValue => ({ ...oldInputValue,
89
104
  h2Text: e.target.value
90
105
  })),
91
106
  type: "text",
92
107
  placeholder: "h2 text",
93
108
  value: inputValue.h2Text
94
109
  }), /*#__PURE__*/_react.default.createElement(Label, null, "\u5074\u6B04\u6A19\u984C (Optional, \u82E5\u672A\u8A2D\u5B9A\u6703\u76F4\u63A5\u7528\u6587\u5167\u6A19\u984C)"), /*#__PURE__*/_react.default.createElement(_fields.TextInput, {
95
- onChange: e => setInputValue(oldInputValue => ({
96
- ...oldInputValue,
110
+ onChange: e => setInputValue(oldInputValue => ({ ...oldInputValue,
97
111
  sideIndexText: e.target.value
98
112
  })),
99
113
  type: "text",
100
114
  placeholder: "sideindex text",
101
115
  value: inputValue.sideIndexText
102
116
  }), /*#__PURE__*/_react.default.createElement(Label, null, "\u5074\u6B04 Url (Optional, \u5916\u90E8\u9023\u7D50\u624D\u9700\u4F7F\u7528)"), /*#__PURE__*/_react.default.createElement(_fields.TextInput, {
103
- onChange: e => setInputValue(oldInputValue => ({
104
- ...oldInputValue,
117
+ onChange: e => setInputValue(oldInputValue => ({ ...oldInputValue,
105
118
  sideIndexUrl: e.target.value
106
119
  })),
107
120
  type: "url",
@@ -113,6 +126,7 @@ function SideIndexInput(props) {
113
126
  tone: "passive"
114
127
  }, "\u6DFB\u52A0\u5716\u7247")))));
115
128
  }
129
+
116
130
  function SideIndexButton(props) {
117
131
  const [toShowInput, setToShowInput] = (0, _react.useState)(false);
118
132
  const {
@@ -120,15 +134,15 @@ function SideIndexButton(props) {
120
134
  editorState,
121
135
  onChange: onEditorStateChange
122
136
  } = props;
137
+
123
138
  const onChange = ({
124
139
  h2Text,
125
140
  sideIndexText,
126
141
  sideIndexUrl,
127
142
  sideIndexImage
128
143
  }) => {
129
- const contentState = editorState.getCurrentContent();
144
+ const contentState = editorState.getCurrentContent(); // create an SideIndex entity
130
145
 
131
- // create an SideIndex entity
132
146
  const contentStateWithEntity = contentState.createEntity('SIDEINDEX', 'IMMUTABLE', {
133
147
  h2Text,
134
148
  sideIndexText,
@@ -136,15 +150,17 @@ function SideIndexButton(props) {
136
150
  sideIndexImage
137
151
  });
138
152
  const entityKey = contentStateWithEntity.getLastCreatedEntityKey();
153
+
139
154
  const newEditorState = _draftJs.EditorState.set(editorState, {
140
155
  currentContent: contentStateWithEntity
141
- });
142
-
143
- //The third parameter here is a space string, not an empty string
156
+ }); //The third parameter here is a space string, not an empty string
144
157
  //If you set an empty string, you will get an error: Unknown DraftEntity key: null
158
+
159
+
145
160
  onEditorStateChange(_draftJs.AtomicBlockUtils.insertAtomicBlock(newEditorState, entityKey, ' '));
146
161
  setToShowInput(false);
147
162
  };
163
+
148
164
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(SideIndexInput, {
149
165
  onChange: onChange,
150
166
  onCancel: () => {
@@ -4,11 +4,17 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.SlideshowButton = SlideshowButton;
7
+
7
8
  var _react = _interopRequireWildcard(require("react"));
9
+
8
10
  var _imageSelector = require("./selector/image-selector");
11
+
9
12
  var _draftJs = require("draft-js");
13
+
10
14
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
15
+
11
16
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
17
+
12
18
  function SlideshowButton(props) {
13
19
  const {
14
20
  editorState,
@@ -17,37 +23,40 @@ function SlideshowButton(props) {
17
23
  ImageSelector = _imageSelector.ImageSelector
18
24
  } = props;
19
25
  const [toShowImageSelector, setToShowImageSelector] = (0, _react.useState)(false);
26
+
20
27
  const promptForImageSelector = () => {
21
28
  setToShowImageSelector(true);
22
29
  };
30
+
23
31
  const onImageSelectorChange = (selected, align, delay) => {
24
32
  if (selected.length === 0) {
25
33
  setToShowImageSelector(false);
26
34
  return;
27
35
  }
28
- const contentState = editorState.getCurrentContent();
29
36
 
30
- // since 202206, only slideshow-v2 will be created
37
+ const contentState = editorState.getCurrentContent(); // since 202206, only slideshow-v2 will be created
38
+
31
39
  const contentStateWithEntity = contentState.createEntity('slideshow-v2', 'IMMUTABLE', {
32
40
  alignment: align,
33
41
  delay,
34
42
  images: selected.map(ele => {
35
- return {
36
- ...(ele === null || ele === void 0 ? void 0 : ele.image),
43
+ return { ...(ele === null || ele === void 0 ? void 0 : ele.image),
37
44
  desc: ele === null || ele === void 0 ? void 0 : ele.desc
38
45
  };
39
46
  })
40
47
  });
41
48
  const entityKey = contentStateWithEntity.getLastCreatedEntityKey();
49
+
42
50
  const newEditorState = _draftJs.EditorState.set(editorState, {
43
51
  currentContent: contentStateWithEntity
44
- });
45
-
46
- // The third parameter here is a space string, not an empty string
52
+ }); // The third parameter here is a space string, not an empty string
47
53
  // If you set an empty string, you will get an error: Unknown DraftEntity key: null
54
+
55
+
48
56
  onChange(_draftJs.AtomicBlockUtils.insertAtomicBlock(newEditorState, entityKey, ' '));
49
57
  setToShowImageSelector(false);
50
58
  };
59
+
51
60
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, toShowImageSelector && /*#__PURE__*/_react.default.createElement(ImageSelector, {
52
61
  onChange: onImageSelectorChange,
53
62
  enableCaption: true,
@@ -4,15 +4,20 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.TableButton = TableButton;
7
+
7
8
  var _react = _interopRequireDefault(require("react"));
9
+
8
10
  var _draftJs = require("draft-js");
11
+
9
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+
10
14
  function TableButton(props) {
11
15
  const {
12
16
  editorState,
13
17
  onChange,
14
18
  className
15
19
  } = props;
20
+
16
21
  const onClick = () => {
17
22
  const rawDarftContentState = {
18
23
  blocks: [],
@@ -24,8 +29,7 @@ function TableButton(props) {
24
29
  // Therefore, please make sure the style name needs to be camelCase.
25
30
  tableStyles: {
26
31
  // We can customize the inline styles of each row.
27
- rows: [
28
- // thead has different background color.
32
+ rows: [// thead has different background color.
29
33
  {
30
34
  backgroundColor: '#f2f2f2'
31
35
  }, {}, {}],
@@ -44,14 +48,16 @@ function TableButton(props) {
44
48
  tableData: [[rawDarftContentState, rawDarftContentState], [rawDarftContentState, rawDarftContentState], [rawDarftContentState, rawDarftContentState]]
45
49
  });
46
50
  const entityKey = contentStateWithEntity.getLastCreatedEntityKey();
51
+
47
52
  const newEditorState = _draftJs.EditorState.set(editorState, {
48
53
  currentContent: contentStateWithEntity
49
- });
50
-
51
- // The third parameter here is a space string, not an empty string
54
+ }); // The third parameter here is a space string, not an empty string
52
55
  // If you set an empty string, you will get an error: Unknown DraftEntity key: null
56
+
57
+
53
58
  onChange(_draftJs.AtomicBlockUtils.insertAtomicBlock(newEditorState, entityKey, ' '));
54
59
  };
60
+
55
61
  return /*#__PURE__*/_react.default.createElement("div", {
56
62
  onClick: onClick,
57
63
  className: className
@@ -6,34 +6,45 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.AlignCenterButton = AlignCenterButton;
7
7
  exports.AlignLeftButton = AlignLeftButton;
8
8
  exports.getSelectionBlockData = void 0;
9
+
9
10
  var _react = _interopRequireDefault(require("react"));
11
+
10
12
  var _draftJs = require("draft-js");
13
+
11
14
  var _modifier = require("../modifier");
15
+
12
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
+
13
18
  const toggleSelectionTextAlign = (editorState, textAlign) => {
14
19
  return setSelectionBlockData(editorState, {
15
20
  textAlign: getSelectionBlockData(editorState, 'textAlign') !== textAlign ? textAlign : undefined
16
21
  });
17
22
  };
23
+
18
24
  const setSelectionBlockData = (editorState, blockData) => {
19
25
  return _modifier.Modifier.setBlockData(editorState.getCurrentContent(), editorState.getSelection(), blockData);
20
26
  };
27
+
21
28
  const getSelectionBlockData = (editorState, name) => {
22
29
  const block = editorState.getCurrentContent().getBlockForKey(editorState.getSelection().getAnchorKey());
23
30
  const blockData = block.getData();
24
31
  return blockData.get(name);
25
32
  };
33
+
26
34
  exports.getSelectionBlockData = getSelectionBlockData;
35
+
27
36
  function AlignCenterButton(props) {
28
37
  const {
29
38
  isActive,
30
39
  editorState,
31
40
  onChange
32
41
  } = props;
42
+
33
43
  const toggleTextAlign = () => {
34
44
  const newContentState = toggleSelectionTextAlign(editorState, 'center');
35
45
  onChange(_draftJs.EditorState.push(editorState, newContentState, 'change-block-style'));
36
46
  };
47
+
37
48
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
38
49
  className: props.className,
39
50
  onMouseDown: toggleTextAlign
@@ -48,16 +59,19 @@ function AlignCenterButton(props) {
48
59
  fill: isActive ? '#ED8B00' : '#6b7280'
49
60
  }))));
50
61
  }
62
+
51
63
  function AlignLeftButton(props) {
52
64
  const {
53
65
  isActive,
54
66
  editorState,
55
67
  onChange
56
68
  } = props;
69
+
57
70
  const toggleTextAlign = () => {
58
71
  const newContentState = toggleSelectionTextAlign(editorState, 'left');
59
72
  onChange(_draftJs.EditorState.push(editorState, newContentState, 'change-block-style'));
60
73
  };
74
+
61
75
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
62
76
  className: props.className,
63
77
  onMouseDown: toggleTextAlign
@@ -4,11 +4,17 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.VideoButton = VideoButton;
7
+
7
8
  var _react = _interopRequireWildcard(require("react"));
9
+
8
10
  var _draftJs = require("draft-js");
11
+
9
12
  var _videoSelector = require("./selector/video-selector");
13
+
10
14
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
15
+
11
16
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
17
+
12
18
  function VideoButton(props) {
13
19
  const {
14
20
  editorState,
@@ -17,30 +23,38 @@ function VideoButton(props) {
17
23
  VideoSelector = _videoSelector.VideoSelector
18
24
  } = props;
19
25
  const [toShowVideoSelector, setToShowVideoSelector] = (0, _react.useState)(false);
26
+
20
27
  const promptForVideoSelector = () => {
21
28
  setToShowVideoSelector(true);
22
29
  };
30
+
23
31
  const onVideoSelectorChange = selectedVideosWithMeta => {
24
32
  var _selectedVideosWithMe;
33
+
25
34
  const video = selectedVideosWithMeta === null || selectedVideosWithMeta === void 0 ? void 0 : (_selectedVideosWithMe = selectedVideosWithMeta[0]) === null || _selectedVideosWithMe === void 0 ? void 0 : _selectedVideosWithMe.video;
35
+
26
36
  if (!video) {
27
37
  setToShowVideoSelector(false);
28
38
  return;
29
39
  }
30
- const contentState = editorState.getCurrentContent();
31
- const contentStateWithEntity = contentState.createEntity('VIDEO', 'IMMUTABLE', {
40
+
41
+ const contentState = editorState.getCurrentContent(); // since 202310, only VIDEO-V2 will be created
42
+
43
+ const contentStateWithEntity = contentState.createEntity('VIDEO-V2', 'IMMUTABLE', {
32
44
  video
33
45
  });
34
46
  const entityKey = contentStateWithEntity.getLastCreatedEntityKey();
47
+
35
48
  const newEditorState = _draftJs.EditorState.set(editorState, {
36
49
  currentContent: contentStateWithEntity
37
- });
38
-
39
- // The third parameter here is a space string, not an empty string
50
+ }); // The third parameter here is a space string, not an empty string
40
51
  // If you set an empty string, you will get an error: Unknown DraftEntity key: null
52
+
53
+
41
54
  onChange(_draftJs.AtomicBlockUtils.insertAtomicBlock(newEditorState, entityKey, ' '));
42
55
  setToShowVideoSelector(false);
43
56
  };
57
+
44
58
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, toShowVideoSelector && /*#__PURE__*/_react.default.createElement(VideoSelector, {
45
59
  onChange: onVideoSelectorChange
46
60
  }), /*#__PURE__*/_react.default.createElement("div", {