@mirrormedia/lilith-draft-editor 1.1.0-alpha.9 → 1.2.0
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/audio.js +3 -2
- package/lib/draft-js/buttons/image.js +3 -3
- package/lib/draft-js/buttons/link.js +49 -22
- package/lib/draft-js/buttons/selector/audio-selector.js +5 -0
- package/lib/draft-js/buttons/selector/image-selector.js +14 -10
- package/lib/draft-js/buttons/video.js +3 -2
- package/lib/draft-js/buttons/youtube.js +147 -0
- package/lib/draft-js/draft-converter/atomic-block-processor.js +15 -34
- package/lib/draft-js/draft-converter/entities.js +6 -0
- package/lib/draft-js/util.js +32 -0
- package/lib/website/mirrormedia/block-renderer/embedded-code-block.js +3 -0
- package/lib/website/mirrormedia/block-renderer/image-block.js +108 -0
- package/lib/website/mirrormedia/block-renderer/slideshow-block.js +85 -6
- package/lib/website/mirrormedia/block-renderer-fn.js +24 -5
- package/lib/website/mirrormedia/draft-editor.js +26 -2
- package/lib/website/mirrormedia/entity-decorator.js +8 -1
- package/lib/website/mirrormedia/selector/audio-selector.js +4 -3
- package/lib/website/mirrormedia/selector/image-selector.js +26 -12
- package/lib/website/mirrormedia/selector/post-selector.js +1 -0
- package/lib/website/mirrormedia/selector/video-selector.js +4 -3
- package/lib/website/mirrormedia/shared-style/index.js +17 -0
- package/lib/website/readr/block-renderer/background-image-block.js +53 -5
- package/lib/website/readr/block-renderer/background-video-block.js +63 -5
- package/lib/website/readr/block-renderer/image-block.js +106 -0
- package/lib/website/readr/block-renderer-fn.js +3 -2
- package/lib/website/readr/selector/audio-selector.js +1 -0
- package/lib/website/readr/selector/image-selector.js +13 -10
- package/lib/website/readr/selector/post-selector.js +3 -9
- package/lib/website/readr/selector/video-selector.js +1 -0
- package/lib/website/readr/theme/index.js +11 -0
- package/package.json +9 -9
|
@@ -6,12 +6,18 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.SlideshowEditBlock = SlideshowEditBlock;
|
|
7
7
|
exports.SlideshowEditBlockV2 = SlideshowEditBlockV2;
|
|
8
8
|
|
|
9
|
-
var _react =
|
|
9
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
10
10
|
|
|
11
11
|
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
12
12
|
|
|
13
|
+
var _imageSelector = require("../selector/image-selector");
|
|
14
|
+
|
|
13
15
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
14
16
|
|
|
17
|
+
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); }
|
|
18
|
+
|
|
19
|
+
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; }
|
|
20
|
+
|
|
15
21
|
const Image = _styledComponents.default.img`
|
|
16
22
|
width: 100%;
|
|
17
23
|
`;
|
|
@@ -36,11 +42,24 @@ const Figure = _styledComponents.default.figure`
|
|
|
36
42
|
margin-block: unset;
|
|
37
43
|
margin-inline: unset;
|
|
38
44
|
margin: 0 10px;
|
|
39
|
-
`;
|
|
45
|
+
`;
|
|
46
|
+
const SlideshowEditButton = _styledComponents.default.span`
|
|
47
|
+
cursor: pointer;
|
|
48
|
+
background-color: white;
|
|
49
|
+
padding: 6px;
|
|
50
|
+
border-radius: 6px;
|
|
51
|
+
`;
|
|
40
52
|
|
|
41
|
-
|
|
53
|
+
// support old version of slideshow without delay propertiy
|
|
54
|
+
function SlideshowEditBlock(props) {
|
|
42
55
|
var _images$, _images$$resized;
|
|
43
56
|
|
|
57
|
+
const {
|
|
58
|
+
block,
|
|
59
|
+
contentState
|
|
60
|
+
} = props;
|
|
61
|
+
const entityKey = block.getEntityAt(0);
|
|
62
|
+
const entity = contentState.getEntity(entityKey);
|
|
44
63
|
const images = entity.getData();
|
|
45
64
|
return /*#__PURE__*/_react.default.createElement(Figure, null, /*#__PURE__*/_react.default.createElement(Image, {
|
|
46
65
|
src: images === null || images === void 0 ? void 0 : (_images$ = images[0]) === null || _images$ === void 0 ? void 0 : (_images$$resized = _images$.resized) === null || _images$$resized === void 0 ? void 0 : _images$$resized.original,
|
|
@@ -53,19 +72,79 @@ function SlideshowEditBlock(entity) {
|
|
|
53
72
|
} // 202206 latest version of slideshow, support delay property
|
|
54
73
|
|
|
55
74
|
|
|
56
|
-
function SlideshowEditBlockV2(
|
|
75
|
+
function SlideshowEditBlockV2(props) {
|
|
57
76
|
var _images$3, _images$3$resized;
|
|
58
77
|
|
|
78
|
+
const {
|
|
79
|
+
block,
|
|
80
|
+
blockProps,
|
|
81
|
+
contentState
|
|
82
|
+
} = props;
|
|
83
|
+
const {
|
|
84
|
+
onEditStart,
|
|
85
|
+
onEditFinish
|
|
86
|
+
} = blockProps;
|
|
87
|
+
const entityKey = block.getEntityAt(0);
|
|
88
|
+
const entity = contentState.getEntity(entityKey);
|
|
59
89
|
const {
|
|
60
90
|
images,
|
|
61
91
|
delay
|
|
62
92
|
} = entity.getData();
|
|
63
|
-
|
|
93
|
+
const initialSelected = images.map(image => ({
|
|
94
|
+
desc: image.desc,
|
|
95
|
+
image: {
|
|
96
|
+
id: image.id,
|
|
97
|
+
name: image.name,
|
|
98
|
+
imageFile: image.imageFile,
|
|
99
|
+
resized: image.resized,
|
|
100
|
+
resizedWebp: image.resizedWebp
|
|
101
|
+
}
|
|
102
|
+
}));
|
|
103
|
+
const [toShowImageSelector, setToShowImageSelector] = (0, _react.useState)(false);
|
|
104
|
+
|
|
105
|
+
const onImageSelectorChange = (selected, align, delay) => {
|
|
106
|
+
if (selected.length === 0) {
|
|
107
|
+
onEditFinish({});
|
|
108
|
+
} else {
|
|
109
|
+
onEditFinish({
|
|
110
|
+
entityKey,
|
|
111
|
+
entityData: {
|
|
112
|
+
alignment: align,
|
|
113
|
+
delay,
|
|
114
|
+
images: selected.map(ele => {
|
|
115
|
+
return { ...(ele === null || ele === void 0 ? void 0 : ele.image),
|
|
116
|
+
desc: ele === null || ele === void 0 ? void 0 : ele.desc
|
|
117
|
+
};
|
|
118
|
+
})
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
setToShowImageSelector(false);
|
|
124
|
+
};
|
|
125
|
+
|
|
126
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, toShowImageSelector && /*#__PURE__*/_react.default.createElement(_imageSelector.ImageSelector, {
|
|
127
|
+
onChange: onImageSelectorChange,
|
|
128
|
+
enableCaption: true,
|
|
129
|
+
enableDelay: true,
|
|
130
|
+
enableMultiSelect: true,
|
|
131
|
+
initialSelected: initialSelected,
|
|
132
|
+
initialDelay: delay
|
|
133
|
+
}), /*#__PURE__*/_react.default.createElement(Figure, null, /*#__PURE__*/_react.default.createElement(Image, {
|
|
64
134
|
src: images === null || images === void 0 ? void 0 : (_images$3 = images[0]) === null || _images$3 === void 0 ? void 0 : (_images$3$resized = _images$3.resized) === null || _images$3$resized === void 0 ? void 0 : _images$3$resized.original,
|
|
65
135
|
onError: e => {
|
|
66
136
|
var _images$4, _images$4$imageFile;
|
|
67
137
|
|
|
68
138
|
return e.currentTarget.src = images === null || images === void 0 ? void 0 : (_images$4 = images[0]) === null || _images$4 === void 0 ? void 0 : (_images$4$imageFile = _images$4.imageFile) === null || _images$4$imageFile === void 0 ? void 0 : _images$4$imageFile.url;
|
|
69
139
|
}
|
|
70
|
-
}), /*#__PURE__*/_react.default.createElement(SlideshowCount, null, /*#__PURE__*/_react.default.createElement("div", null, "+", images.length), delay && /*#__PURE__*/_react.default.createElement("div", null, `${delay}s`)))
|
|
140
|
+
}), /*#__PURE__*/_react.default.createElement(SlideshowCount, null, /*#__PURE__*/_react.default.createElement("div", null, "+", images.length), delay && /*#__PURE__*/_react.default.createElement("div", null, `${delay}s`))), /*#__PURE__*/_react.default.createElement(SlideshowEditButton, {
|
|
141
|
+
onClick: () => {
|
|
142
|
+
// call `onEditStart` prop as we are trying to update the BGImage entity
|
|
143
|
+
onEditStart(); // open `BGImageInput`
|
|
144
|
+
|
|
145
|
+
setToShowImageSelector(true);
|
|
146
|
+
}
|
|
147
|
+
}, /*#__PURE__*/_react.default.createElement("i", {
|
|
148
|
+
className: "fa-solid fa-pen"
|
|
149
|
+
}), /*#__PURE__*/_react.default.createElement("span", null, "Modify")));
|
|
71
150
|
}
|
|
@@ -21,17 +21,21 @@ var _embeddedCodeBlock = require("./block-renderer/embedded-code-block");
|
|
|
21
21
|
|
|
22
22
|
var _slideshowBlock = require("./block-renderer/slideshow-block");
|
|
23
23
|
|
|
24
|
+
var _imageBlock = require("./block-renderer/image-block");
|
|
25
|
+
|
|
24
26
|
var _mirrormedia = _interopRequireDefault(require("@mirrormedia/lilith-draft-renderer/lib/website/mirrormedia"));
|
|
25
27
|
|
|
26
28
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
27
29
|
|
|
28
30
|
const {
|
|
29
31
|
MediaBlock,
|
|
30
|
-
ImageBlock,
|
|
31
32
|
DividerBlock,
|
|
32
33
|
RelatedPostBlock,
|
|
33
34
|
VideoBlock,
|
|
34
|
-
|
|
35
|
+
VideoBlockV2,
|
|
36
|
+
AudioBlock,
|
|
37
|
+
AudioBlockV2,
|
|
38
|
+
YoutubeBlock
|
|
35
39
|
} = _mirrormedia.default.blockRenderers;
|
|
36
40
|
|
|
37
41
|
const AtomicBlock = props => {
|
|
@@ -48,17 +52,17 @@ const AtomicBlock = props => {
|
|
|
48
52
|
|
|
49
53
|
case 'image':
|
|
50
54
|
{
|
|
51
|
-
return
|
|
55
|
+
return (0, _imageBlock.ImageEditorBlock)(props);
|
|
52
56
|
}
|
|
53
57
|
|
|
54
58
|
case 'slideshow':
|
|
55
59
|
{
|
|
56
|
-
return (0, _slideshowBlock.SlideshowEditBlock)(
|
|
60
|
+
return (0, _slideshowBlock.SlideshowEditBlock)(props);
|
|
57
61
|
}
|
|
58
62
|
|
|
59
63
|
case 'slideshow-v2':
|
|
60
64
|
{
|
|
61
|
-
return (0, _slideshowBlock.SlideshowEditBlockV2)(
|
|
65
|
+
return (0, _slideshowBlock.SlideshowEditBlockV2)(props);
|
|
62
66
|
}
|
|
63
67
|
|
|
64
68
|
case 'EMBEDDEDCODE':
|
|
@@ -111,10 +115,25 @@ const AtomicBlock = props => {
|
|
|
111
115
|
return VideoBlock(entity);
|
|
112
116
|
}
|
|
113
117
|
|
|
118
|
+
case 'VIDEO-V2':
|
|
119
|
+
{
|
|
120
|
+
return VideoBlockV2(entity);
|
|
121
|
+
}
|
|
122
|
+
|
|
114
123
|
case 'AUDIO':
|
|
115
124
|
{
|
|
116
125
|
return AudioBlock(entity);
|
|
117
126
|
}
|
|
127
|
+
|
|
128
|
+
case 'AUDIO-V2':
|
|
129
|
+
{
|
|
130
|
+
return AudioBlockV2(entity);
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
case 'YOUTUBE':
|
|
134
|
+
{
|
|
135
|
+
return YoutubeBlock(entity);
|
|
136
|
+
}
|
|
118
137
|
}
|
|
119
138
|
|
|
120
139
|
return null;
|
|
@@ -55,6 +55,8 @@ var _video = require("../../draft-js/buttons/video");
|
|
|
55
55
|
|
|
56
56
|
var _audio = require("../../draft-js/buttons/audio");
|
|
57
57
|
|
|
58
|
+
var _youtube = require("../../draft-js/buttons/youtube");
|
|
59
|
+
|
|
58
60
|
var _const = require("../../draft-js/const");
|
|
59
61
|
|
|
60
62
|
var _imageSelector = require("./selector/image-selector");
|
|
@@ -65,6 +67,8 @@ var _postSelector = require("./selector/post-selector");
|
|
|
65
67
|
|
|
66
68
|
var _audioSelector = require("./selector/audio-selector");
|
|
67
69
|
|
|
70
|
+
var _sharedStyle = require("./shared-style");
|
|
71
|
+
|
|
68
72
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
69
73
|
|
|
70
74
|
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; }
|
|
@@ -105,10 +109,11 @@ const buttonNames = {
|
|
|
105
109
|
relatedPost: 'related-post',
|
|
106
110
|
sideIndex: 'side-index',
|
|
107
111
|
video: 'video',
|
|
108
|
-
audio: 'audio'
|
|
112
|
+
audio: 'audio',
|
|
113
|
+
youtube: 'youtube'
|
|
109
114
|
};
|
|
110
115
|
exports.buttonNames = buttonNames;
|
|
111
|
-
const disabledButtonsOnBasicEditor = [buttonNames.annotation, buttonNames.divider, buttonNames.embed, buttonNames.image, buttonNames.infoBox, buttonNames.slideshow, buttonNames.table, buttonNames.textAlign, buttonNames.colorBox, buttonNames.backgroundColor, buttonNames.backgroundImage, buttonNames.backgroundVideo, buttonNames.relatedPost, buttonNames.sideIndex, buttonNames.video, buttonNames.audio];
|
|
116
|
+
const disabledButtonsOnBasicEditor = [buttonNames.annotation, buttonNames.divider, buttonNames.embed, buttonNames.image, buttonNames.infoBox, buttonNames.slideshow, buttonNames.table, buttonNames.textAlign, buttonNames.colorBox, buttonNames.backgroundColor, buttonNames.backgroundImage, buttonNames.backgroundVideo, buttonNames.relatedPost, buttonNames.sideIndex, buttonNames.video, buttonNames.audio, buttonNames.youtube];
|
|
112
117
|
const buttonStyle = (0, _styledComponents.css)`
|
|
113
118
|
border-radius: 6px;
|
|
114
119
|
text-align: center;
|
|
@@ -250,6 +255,7 @@ const CustomAlignCenterButton = createButtonWithoutProps(_textAlign.AlignCenterB
|
|
|
250
255
|
const CustomAlignLeftButton = createButtonWithoutProps(_textAlign.AlignLeftButton, true);
|
|
251
256
|
const CustomVideoButton = createButtonWithoutProps(_video.VideoButton);
|
|
252
257
|
const CustomAudioButton = createButtonWithoutProps(_audio.AudioButton);
|
|
258
|
+
const CustomYoutubeButton = createButtonWithoutProps(_youtube.YoutubeButton);
|
|
253
259
|
const DraftEditorWrapper = _styledComponents.default.div`
|
|
254
260
|
/* Rich-editor default setting (.RichEditor-root)*/
|
|
255
261
|
background: #fff;
|
|
@@ -267,21 +273,34 @@ const DraftEditorWrapper = _styledComponents.default.div`
|
|
|
267
273
|
background: rgb(255, 255, 255);
|
|
268
274
|
border-radius: 6px;
|
|
269
275
|
padding: 0 1rem 1rem;
|
|
276
|
+
font-size: 18px;
|
|
277
|
+
line-height: 2;
|
|
278
|
+
letter-spacing: 0.5px;
|
|
279
|
+
|
|
280
|
+
.public-DraftStyleDefault-block {
|
|
281
|
+
${_sharedStyle.defaultMarginBottom}
|
|
282
|
+
}
|
|
270
283
|
|
|
271
284
|
/* Draft built-in buttons' style */
|
|
272
285
|
.public-DraftStyleDefault-header-two {
|
|
286
|
+
font-size: 36px;
|
|
287
|
+
line-height: 1.5;
|
|
273
288
|
}
|
|
274
289
|
.public-DraftStyleDefault-header-three {
|
|
290
|
+
font-size: 30px;
|
|
291
|
+
line-height: 1.5;
|
|
275
292
|
}
|
|
276
293
|
.public-DraftStyleDefault-header-four {
|
|
277
294
|
}
|
|
278
295
|
.public-DraftStyleDefault-blockquote {
|
|
279
296
|
}
|
|
280
297
|
.public-DraftStyleDefault-ul {
|
|
298
|
+
${_sharedStyle.defaultMarginBottom}
|
|
281
299
|
}
|
|
282
300
|
.public-DraftStyleDefault-unorderedListItem {
|
|
283
301
|
}
|
|
284
302
|
.public-DraftStyleDefault-ol {
|
|
303
|
+
${_sharedStyle.defaultMarginBottom}
|
|
285
304
|
}
|
|
286
305
|
.public-DraftStyleDefault-orderedListItem {
|
|
287
306
|
}
|
|
@@ -703,6 +722,11 @@ class RichTextEditor extends _react.default.Component {
|
|
|
703
722
|
onChange: this.onChange,
|
|
704
723
|
readOnly: this.state.readOnly,
|
|
705
724
|
VideoSelector: _videoSelector.VideoSelector
|
|
725
|
+
})), /*#__PURE__*/_react.default.createElement(ButtonGroup, null, /*#__PURE__*/_react.default.createElement(CustomYoutubeButton, {
|
|
726
|
+
isDisabled: disabledButtons.includes(buttonNames.youtube),
|
|
727
|
+
editorState: editorState,
|
|
728
|
+
onChange: this.onChange,
|
|
729
|
+
readOnly: this.state.readOnly
|
|
706
730
|
})), /*#__PURE__*/_react.default.createElement(ButtonGroup, null, /*#__PURE__*/_react.default.createElement(CustomAudioButton, {
|
|
707
731
|
isDisabled: disabledButtons.includes(buttonNames.audio),
|
|
708
732
|
editorState: editorState,
|
|
@@ -11,10 +11,17 @@ var _mirrormedia = _interopRequireDefault(require("@mirrormedia/lilith-draft-ren
|
|
|
11
11
|
|
|
12
12
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
13
|
|
|
14
|
+
//Because `annotationDecorator` and `linkDecorator` is generated by different `contentLayout`,
|
|
15
|
+
//so it is needed to generate decorators by using function `decoratorsGenerator`.
|
|
14
16
|
const {
|
|
15
17
|
annotationDecorator,
|
|
16
18
|
linkDecorator
|
|
17
19
|
} = _mirrormedia.default.entityDecorators;
|
|
18
|
-
|
|
20
|
+
|
|
21
|
+
const decoratorsGenerator = (contentLayout = 'normal') => {
|
|
22
|
+
return new _draftJs.CompositeDecorator([annotationDecorator(contentLayout), linkDecorator(contentLayout)]);
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
const decorators = decoratorsGenerator('normal');
|
|
19
26
|
var _default = decorators;
|
|
20
27
|
exports.default = _default;
|
|
@@ -102,7 +102,7 @@ function AudioGrid(props) {
|
|
|
102
102
|
}) : null), /*#__PURE__*/_react.default.createElement(Audio, {
|
|
103
103
|
controls: true
|
|
104
104
|
}, /*#__PURE__*/_react.default.createElement("source", {
|
|
105
|
-
src: audio === null || audio === void 0 ? void 0 : audio.
|
|
105
|
+
src: audio === null || audio === void 0 ? void 0 : audio.audioSrc
|
|
106
106
|
}), /*#__PURE__*/_react.default.createElement("source", {
|
|
107
107
|
src: audio === null || audio === void 0 ? void 0 : (_audio$file = audio.file) === null || _audio$file === void 0 ? void 0 : _audio$file.url
|
|
108
108
|
})), /*#__PURE__*/_react.default.createElement(AudioName, null, audio === null || audio === void 0 ? void 0 : audio.name));
|
|
@@ -134,7 +134,7 @@ function AudioMetaGrid(props) {
|
|
|
134
134
|
return /*#__PURE__*/_react.default.createElement(AudioMetaGridWrapper, null, /*#__PURE__*/_react.default.createElement(Audio, {
|
|
135
135
|
controls: true
|
|
136
136
|
}, /*#__PURE__*/_react.default.createElement("source", {
|
|
137
|
-
src: audio === null || audio === void 0 ? void 0 : audio.
|
|
137
|
+
src: audio === null || audio === void 0 ? void 0 : audio.audioSrc
|
|
138
138
|
}), /*#__PURE__*/_react.default.createElement("source", {
|
|
139
139
|
src: audio === null || audio === void 0 ? void 0 : (_audio$file2 = audio.file) === null || _audio$file2 === void 0 ? void 0 : _audio$file2.url
|
|
140
140
|
})), /*#__PURE__*/_react.default.createElement(AudioName, null, audio === null || audio === void 0 ? void 0 : audio.name));
|
|
@@ -145,12 +145,13 @@ const AudiosQuery = (0, _apollo.gql)`
|
|
|
145
145
|
audioFilesCount(where: { name: { contains: $searchText } })
|
|
146
146
|
audioFiles(
|
|
147
147
|
where: { name: { contains: $searchText } }
|
|
148
|
+
orderBy: { id: desc }
|
|
148
149
|
take: $take
|
|
149
150
|
skip: $skip
|
|
150
151
|
) {
|
|
151
152
|
id
|
|
152
153
|
name
|
|
153
|
-
|
|
154
|
+
audioSrc
|
|
154
155
|
file {
|
|
155
156
|
url
|
|
156
157
|
}
|
|
@@ -34,6 +34,7 @@ const imagesQuery = (0, _apollo.gql)`
|
|
|
34
34
|
photosCount(where: { name: { contains: $searchText } })
|
|
35
35
|
photos(
|
|
36
36
|
where: { name: { contains: $searchText } }
|
|
37
|
+
orderBy: { id: desc }
|
|
37
38
|
take: $take
|
|
38
39
|
skip: $skip
|
|
39
40
|
) {
|
|
@@ -41,6 +42,8 @@ const imagesQuery = (0, _apollo.gql)`
|
|
|
41
42
|
name
|
|
42
43
|
imageFile {
|
|
43
44
|
url
|
|
45
|
+
width
|
|
46
|
+
height
|
|
44
47
|
}
|
|
45
48
|
resized {
|
|
46
49
|
original
|
|
@@ -50,6 +53,14 @@ const imagesQuery = (0, _apollo.gql)`
|
|
|
50
53
|
w1600
|
|
51
54
|
w2400
|
|
52
55
|
}
|
|
56
|
+
resizedWebp {
|
|
57
|
+
original
|
|
58
|
+
w480
|
|
59
|
+
w800
|
|
60
|
+
w1200
|
|
61
|
+
w1600
|
|
62
|
+
w2400
|
|
63
|
+
}
|
|
53
64
|
}
|
|
54
65
|
}
|
|
55
66
|
`;
|
|
@@ -122,7 +133,7 @@ function ImageGrids(props) {
|
|
|
122
133
|
return /*#__PURE__*/_react.default.createElement(ImageGridsWrapper, null, images.map(image => {
|
|
123
134
|
return /*#__PURE__*/_react.default.createElement(ImageGrid, {
|
|
124
135
|
key: image.id,
|
|
125
|
-
isSelected: selected
|
|
136
|
+
isSelected: !!(selected !== null && selected !== void 0 && selected.find(selectedImage => selectedImage.id === image.id)),
|
|
126
137
|
onSelect: () => onSelect(image),
|
|
127
138
|
image: image
|
|
128
139
|
});
|
|
@@ -242,6 +253,17 @@ function DelayInput(props) {
|
|
|
242
253
|
}
|
|
243
254
|
|
|
244
255
|
function ImageSelector(props) {
|
|
256
|
+
const {
|
|
257
|
+
enableMultiSelect = false,
|
|
258
|
+
enableCaption = false,
|
|
259
|
+
enableUrl = false,
|
|
260
|
+
enableAlignment = false,
|
|
261
|
+
enableDelay = false,
|
|
262
|
+
onChange,
|
|
263
|
+
initialSelected = [],
|
|
264
|
+
initialAlign,
|
|
265
|
+
initialDelay
|
|
266
|
+
} = props;
|
|
245
267
|
const [queryImages, {
|
|
246
268
|
loading,
|
|
247
269
|
error,
|
|
@@ -255,9 +277,9 @@ function ImageSelector(props) {
|
|
|
255
277
|
const [currentPage, setCurrentPage] = (0, _react.useState)(0); // page starts with 1, 0 is used to detect initialization
|
|
256
278
|
|
|
257
279
|
const [searchText, setSearchText] = (0, _react.useState)('');
|
|
258
|
-
const [selected, setSelected] = (0, _react.useState)(
|
|
259
|
-
const [delay, setDelay] = (0, _react.useState)('5');
|
|
260
|
-
const [align, setAlign] = (0, _react.useState)(
|
|
280
|
+
const [selected, setSelected] = (0, _react.useState)(initialSelected);
|
|
281
|
+
const [delay, setDelay] = (0, _react.useState)(initialDelay ?? '5');
|
|
282
|
+
const [align, setAlign] = (0, _react.useState)(initialAlign);
|
|
261
283
|
const contentWrapperRef = (0, _react.useRef)();
|
|
262
284
|
const pageSize = 6;
|
|
263
285
|
const options = [{
|
|
@@ -273,14 +295,6 @@ function ImageSelector(props) {
|
|
|
273
295
|
label: 'right',
|
|
274
296
|
isDisabled: false
|
|
275
297
|
}];
|
|
276
|
-
const {
|
|
277
|
-
enableMultiSelect = false,
|
|
278
|
-
enableCaption = false,
|
|
279
|
-
enableUrl = false,
|
|
280
|
-
enableAlignment = false,
|
|
281
|
-
enableDelay = false,
|
|
282
|
-
onChange
|
|
283
|
-
} = props;
|
|
284
298
|
|
|
285
299
|
const onSave = () => {
|
|
286
300
|
let adjustedDelay = +delay;
|
|
@@ -28,12 +28,13 @@ const videosQuery = (0, _apollo.gql)`
|
|
|
28
28
|
videosCount(where: { name: { contains: $searchText } })
|
|
29
29
|
videos(
|
|
30
30
|
where: { name: { contains: $searchText } }
|
|
31
|
+
orderBy: { id: desc }
|
|
31
32
|
take: $take
|
|
32
33
|
skip: $skip
|
|
33
34
|
) {
|
|
34
35
|
id
|
|
35
36
|
name
|
|
36
|
-
|
|
37
|
+
videoSrc
|
|
37
38
|
file {
|
|
38
39
|
filename
|
|
39
40
|
filesize
|
|
@@ -135,7 +136,7 @@ function VideoGrid(props) {
|
|
|
135
136
|
muted: true,
|
|
136
137
|
loop: true
|
|
137
138
|
}, /*#__PURE__*/_react.default.createElement("source", {
|
|
138
|
-
src: video === null || video === void 0 ? void 0 : video.
|
|
139
|
+
src: video === null || video === void 0 ? void 0 : video.videoSrc
|
|
139
140
|
}), /*#__PURE__*/_react.default.createElement("source", {
|
|
140
141
|
src: video === null || video === void 0 ? void 0 : (_video$file = video.file) === null || _video$file === void 0 ? void 0 : _video$file.url
|
|
141
142
|
})));
|
|
@@ -169,7 +170,7 @@ function VideoMetaGrid(props) {
|
|
|
169
170
|
autoPlay: true,
|
|
170
171
|
loop: true
|
|
171
172
|
}, /*#__PURE__*/_react.default.createElement("source", {
|
|
172
|
-
src: video === null || video === void 0 ? void 0 : video.
|
|
173
|
+
src: video === null || video === void 0 ? void 0 : video.videoSrc
|
|
173
174
|
}), /*#__PURE__*/_react.default.createElement("source", {
|
|
174
175
|
src: video === null || video === void 0 ? void 0 : (_video$file2 = video.file) === null || _video$file2 === void 0 ? void 0 : _video$file2.url
|
|
175
176
|
})), /*#__PURE__*/_react.default.createElement(VideoName, null, video === null || video === void 0 ? void 0 : video.name));
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.defaultMarginTop = exports.defaultMarginBottom = void 0;
|
|
7
|
+
|
|
8
|
+
var _styledComponents = require("styled-components");
|
|
9
|
+
|
|
10
|
+
const defaultMarginTop = (0, _styledComponents.css)`
|
|
11
|
+
margin-top: 32px;
|
|
12
|
+
`;
|
|
13
|
+
exports.defaultMarginTop = defaultMarginTop;
|
|
14
|
+
const defaultMarginBottom = (0, _styledComponents.css)`
|
|
15
|
+
margin-bottom: 32px;
|
|
16
|
+
`;
|
|
17
|
+
exports.defaultMarginBottom = defaultMarginBottom;
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
exports.BGImageBlock = BGImageBlock;
|
|
6
7
|
exports.BGImageEditorBlock = BGImageEditorBlock;
|
|
7
8
|
|
|
8
9
|
var _react = _interopRequireWildcard(require("react"));
|
|
@@ -13,17 +14,64 @@ var _draftConverter = _interopRequireDefault(require("../../../draft-js/draft-co
|
|
|
13
14
|
|
|
14
15
|
var _backgroundImage = require("../../../draft-js/buttons/background-image");
|
|
15
16
|
|
|
16
|
-
var _readr = _interopRequireDefault(require("@mirrormedia/lilith-draft-renderer/lib/website/readr"));
|
|
17
|
-
|
|
18
17
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
19
18
|
|
|
20
19
|
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); }
|
|
21
20
|
|
|
22
21
|
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; }
|
|
23
22
|
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
|
|
23
|
+
const BGImageRenderWrapper = _styledComponents.default.div`
|
|
24
|
+
padding: 30px;
|
|
25
|
+
position: relative;
|
|
26
|
+
width: 100%;
|
|
27
|
+
height: 100%;
|
|
28
|
+
background-image: url(${({
|
|
29
|
+
image
|
|
30
|
+
}) => image});
|
|
31
|
+
background-size: cover;
|
|
32
|
+
background-position: center center;
|
|
33
|
+
${({
|
|
34
|
+
textBlockAlign
|
|
35
|
+
}) => {
|
|
36
|
+
if (textBlockAlign === 'left') {
|
|
37
|
+
return `padding-right: 50%;`;
|
|
38
|
+
} else if (textBlockAlign === 'right') {
|
|
39
|
+
return `padding-left: 50%;`;
|
|
40
|
+
} else if (textBlockAlign === 'bottom') {
|
|
41
|
+
return `padding-top: 50%;`;
|
|
42
|
+
}
|
|
43
|
+
}}
|
|
44
|
+
`;
|
|
45
|
+
const BGImageRenderBody = _styledComponents.default.div`
|
|
46
|
+
background: rgba(0, 0, 0, 0.5);
|
|
47
|
+
padding: 4px 20px;
|
|
48
|
+
margin-bottom: 10px;
|
|
49
|
+
`;
|
|
50
|
+
|
|
51
|
+
function BGImageBlock(props) {
|
|
52
|
+
var _image$imageFile, _image$resized, _image$resized2;
|
|
53
|
+
|
|
54
|
+
const {
|
|
55
|
+
block,
|
|
56
|
+
contentState
|
|
57
|
+
} = props;
|
|
58
|
+
const entityKey = block.getEntityAt(0);
|
|
59
|
+
const entity = contentState.getEntity(entityKey);
|
|
60
|
+
const {
|
|
61
|
+
textBlockAlign,
|
|
62
|
+
image,
|
|
63
|
+
body
|
|
64
|
+
} = entity.getData();
|
|
65
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(BGImageRenderWrapper, {
|
|
66
|
+
image: (image === null || image === void 0 ? void 0 : (_image$imageFile = image.imageFile) === null || _image$imageFile === void 0 ? void 0 : _image$imageFile.url) || (image === null || image === void 0 ? void 0 : (_image$resized = image.resized) === null || _image$resized === void 0 ? void 0 : _image$resized.w800) || (image === null || image === void 0 ? void 0 : (_image$resized2 = image.resized) === null || _image$resized2 === void 0 ? void 0 : _image$resized2.original),
|
|
67
|
+
textBlockAlign: textBlockAlign
|
|
68
|
+
}, /*#__PURE__*/_react.default.createElement(BGImageRenderBody, {
|
|
69
|
+
dangerouslySetInnerHTML: {
|
|
70
|
+
__html: body
|
|
71
|
+
}
|
|
72
|
+
})));
|
|
73
|
+
}
|
|
74
|
+
|
|
27
75
|
const BGImageRenderButton = _styledComponents.default.span`
|
|
28
76
|
cursor: pointer;
|
|
29
77
|
background-color: white;
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
exports.BGVideoBlock = BGVideoBlock;
|
|
6
7
|
exports.BGVideoEditorBlock = BGVideoEditorBlock;
|
|
7
8
|
|
|
8
9
|
var _react = _interopRequireWildcard(require("react"));
|
|
@@ -13,17 +14,74 @@ var _draftConverter = _interopRequireDefault(require("../../../draft-js/draft-co
|
|
|
13
14
|
|
|
14
15
|
var _backgroundVideo = require("../../../draft-js/buttons/background-video");
|
|
15
16
|
|
|
16
|
-
var _readr = _interopRequireDefault(require("@mirrormedia/lilith-draft-renderer/lib/website/readr"));
|
|
17
|
-
|
|
18
17
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
19
18
|
|
|
20
19
|
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); }
|
|
21
20
|
|
|
22
21
|
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; }
|
|
23
22
|
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
|
|
23
|
+
const BGVideoRenderWrapper = _styledComponents.default.div`
|
|
24
|
+
position: relative;
|
|
25
|
+
padding: 30px;
|
|
26
|
+
width: 100%;
|
|
27
|
+
${({
|
|
28
|
+
textBlockAlign
|
|
29
|
+
}) => {
|
|
30
|
+
if (textBlockAlign === 'left') {
|
|
31
|
+
return `padding-right: 50%;`;
|
|
32
|
+
} else if (textBlockAlign === 'right') {
|
|
33
|
+
return `padding-left: 50%;`;
|
|
34
|
+
} else if (textBlockAlign === 'bottom') {
|
|
35
|
+
return `padding-top: 50%;`;
|
|
36
|
+
}
|
|
37
|
+
}}
|
|
38
|
+
`;
|
|
39
|
+
const BGVideoRednerVideo = _styledComponents.default.video`
|
|
40
|
+
position: absolute;
|
|
41
|
+
width: 100%;
|
|
42
|
+
height: 100%;
|
|
43
|
+
top: 0;
|
|
44
|
+
left: 0;
|
|
45
|
+
z-index: -1;
|
|
46
|
+
background-color: black;
|
|
47
|
+
`;
|
|
48
|
+
const BGVideoRenderBody = _styledComponents.default.div`
|
|
49
|
+
background: rgba(0, 0, 0, 0.5);
|
|
50
|
+
padding: 4px 20px;
|
|
51
|
+
margin-bottom: 10px;
|
|
52
|
+
`;
|
|
53
|
+
|
|
54
|
+
function BGVideoBlock(props) {
|
|
55
|
+
var _video$file;
|
|
56
|
+
|
|
57
|
+
const {
|
|
58
|
+
block,
|
|
59
|
+
contentState
|
|
60
|
+
} = props;
|
|
61
|
+
const entityKey = block.getEntityAt(0);
|
|
62
|
+
const entity = contentState.getEntity(entityKey);
|
|
63
|
+
const {
|
|
64
|
+
textBlockAlign,
|
|
65
|
+
video,
|
|
66
|
+
body
|
|
67
|
+
} = entity.getData();
|
|
68
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(BGVideoRenderWrapper, {
|
|
69
|
+
textBlockAlign: textBlockAlign
|
|
70
|
+
}, /*#__PURE__*/_react.default.createElement(BGVideoRednerVideo, {
|
|
71
|
+
muted: true,
|
|
72
|
+
autoPlay: true,
|
|
73
|
+
loop: true
|
|
74
|
+
}, /*#__PURE__*/_react.default.createElement("source", {
|
|
75
|
+
src: video === null || video === void 0 ? void 0 : video.url
|
|
76
|
+
}), /*#__PURE__*/_react.default.createElement("source", {
|
|
77
|
+
src: video === null || video === void 0 ? void 0 : (_video$file = video.file) === null || _video$file === void 0 ? void 0 : _video$file.url
|
|
78
|
+
})), /*#__PURE__*/_react.default.createElement(BGVideoRenderBody, {
|
|
79
|
+
dangerouslySetInnerHTML: {
|
|
80
|
+
__html: body
|
|
81
|
+
}
|
|
82
|
+
})));
|
|
83
|
+
}
|
|
84
|
+
|
|
27
85
|
const BGVideoRenderButton = _styledComponents.default.span`
|
|
28
86
|
cursor: pointer;
|
|
29
87
|
background-color: white;
|