@mirrormedia/lilith-draft-editor 1.1.0-alpha.3 → 1.1.0-alpha.30
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,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
|
-
|
|
54
|
-
|
|
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
|
-
|
|
31
|
-
const
|
|
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", {
|