@mirrormedia/lilith-draft-editor 1.1.0-alpha.9 → 1.3.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.
Files changed (31) hide show
  1. package/lib/draft-js/buttons/audio.js +3 -2
  2. package/lib/draft-js/buttons/image.js +3 -3
  3. package/lib/draft-js/buttons/link.js +49 -22
  4. package/lib/draft-js/buttons/selector/audio-selector.js +5 -0
  5. package/lib/draft-js/buttons/selector/image-selector.js +14 -10
  6. package/lib/draft-js/buttons/video.js +3 -2
  7. package/lib/draft-js/buttons/youtube.js +147 -0
  8. package/lib/draft-js/draft-converter/atomic-block-processor.js +15 -34
  9. package/lib/draft-js/draft-converter/entities.js +6 -0
  10. package/lib/draft-js/util.js +32 -0
  11. package/lib/website/mirrormedia/block-renderer/embedded-code-block.js +3 -0
  12. package/lib/website/mirrormedia/block-renderer/image-block.js +108 -0
  13. package/lib/website/mirrormedia/block-renderer/slideshow-block.js +85 -6
  14. package/lib/website/mirrormedia/block-renderer-fn.js +24 -5
  15. package/lib/website/mirrormedia/draft-editor.js +26 -2
  16. package/lib/website/mirrormedia/entity-decorator.js +8 -1
  17. package/lib/website/mirrormedia/selector/audio-selector.js +4 -3
  18. package/lib/website/mirrormedia/selector/image-selector.js +27 -13
  19. package/lib/website/mirrormedia/selector/post-selector.js +1 -0
  20. package/lib/website/mirrormedia/selector/video-selector.js +4 -3
  21. package/lib/website/mirrormedia/shared-style/index.js +17 -0
  22. package/lib/website/readr/block-renderer/background-image-block.js +53 -5
  23. package/lib/website/readr/block-renderer/background-video-block.js +63 -5
  24. package/lib/website/readr/block-renderer/image-block.js +106 -0
  25. package/lib/website/readr/block-renderer-fn.js +3 -2
  26. package/lib/website/readr/selector/audio-selector.js +1 -0
  27. package/lib/website/readr/selector/image-selector.js +13 -10
  28. package/lib/website/readr/selector/post-selector.js +3 -9
  29. package/lib/website/readr/selector/video-selector.js +1 -0
  30. package/lib/website/readr/theme/index.js +11 -0
  31. package/package.json +8 -8
@@ -6,12 +6,18 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.SlideshowEditBlock = SlideshowEditBlock;
7
7
  exports.SlideshowEditBlockV2 = SlideshowEditBlockV2;
8
8
 
9
- var _react = _interopRequireDefault(require("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
- `; // support old version of slideshow without delay propertiy
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
- function SlideshowEditBlock(entity) {
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(entity) {
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
- return /*#__PURE__*/_react.default.createElement(Figure, null, /*#__PURE__*/_react.default.createElement(Image, {
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
- AudioBlock
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 ImageBlock(entity);
55
+ return (0, _imageBlock.ImageEditorBlock)(props);
52
56
  }
53
57
 
54
58
  case 'slideshow':
55
59
  {
56
- return (0, _slideshowBlock.SlideshowEditBlock)(entity);
60
+ return (0, _slideshowBlock.SlideshowEditBlock)(props);
57
61
  }
58
62
 
59
63
  case 'slideshow-v2':
60
64
  {
61
- return (0, _slideshowBlock.SlideshowEditBlockV2)(entity);
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
- const decorators = new _draftJs.CompositeDecorator([annotationDecorator, linkDecorator]);
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.urlOriginal
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.urlOriginal
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
- urlOriginal
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 === null || selected === void 0 ? void 0 : selected.includes(image),
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,11 +277,11 @@ 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)(undefined);
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
- const pageSize = 6;
284
+ const pageSize = 18;
263
285
  const options = [{
264
286
  value: undefined,
265
287
  label: 'default',
@@ -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,6 +28,7 @@ const postsQuery = (0, _apollo.gql)`
28
28
  postsCount(where: { title: { contains: $searchText } })
29
29
  posts(
30
30
  where: { title: { contains: $searchText } }
31
+ orderBy: { id: desc }
31
32
  take: $take
32
33
  skip: $skip
33
34
  ) {
@@ -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
- urlOriginal
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.urlOriginal
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.urlOriginal
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
- BGImageBlock
26
- } = _readr.default.blockRenderers;
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
- BGVideoBlock
26
- } = _readr.default.blockRenderers;
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;