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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/lib/draft-js/buttons/annotation.js +22 -0
  2. package/lib/draft-js/buttons/audio.js +16 -3
  3. package/lib/draft-js/buttons/background-color.js +26 -0
  4. package/lib/draft-js/buttons/background-image.js +32 -13
  5. package/lib/draft-js/buttons/background-video.js +32 -13
  6. package/lib/draft-js/buttons/color-box.js +21 -5
  7. package/lib/draft-js/buttons/divider.js +12 -3
  8. package/lib/draft-js/buttons/embedded-code.js +16 -5
  9. package/lib/draft-js/buttons/enlarge.js +3 -0
  10. package/lib/draft-js/buttons/font-color.js +26 -0
  11. package/lib/draft-js/buttons/image.js +16 -5
  12. package/lib/draft-js/buttons/info-box.js +21 -5
  13. package/lib/draft-js/buttons/link.js +19 -0
  14. package/lib/draft-js/buttons/media.js +16 -3
  15. package/lib/draft-js/buttons/related-post.js +14 -3
  16. package/lib/draft-js/buttons/selector/align-selector.js +11 -2
  17. package/lib/draft-js/buttons/selector/audio-selector.js +33 -4
  18. package/lib/draft-js/buttons/selector/image-selector.js +50 -6
  19. package/lib/draft-js/buttons/selector/pagination.js +6 -2
  20. package/lib/draft-js/buttons/selector/post-selector.js +39 -6
  21. package/lib/draft-js/buttons/selector/search-box.js +9 -0
  22. package/lib/draft-js/buttons/selector/video-selector.js +33 -4
  23. package/lib/draft-js/buttons/side-index.js +31 -15
  24. package/lib/draft-js/buttons/slideshow.js +16 -7
  25. package/lib/draft-js/buttons/table.js +11 -5
  26. package/lib/draft-js/buttons/text-align.js +14 -0
  27. package/lib/draft-js/buttons/video.js +16 -3
  28. package/lib/draft-js/const.js +2 -0
  29. package/lib/draft-js/draft-converter/api-data-instance.js +14 -0
  30. package/lib/draft-js/draft-converter/atomic-block-processor.js +41 -12
  31. package/lib/draft-js/draft-converter/entities.js +0 -1
  32. package/lib/draft-js/draft-converter/index.js +29 -10
  33. package/lib/draft-js/draft-converter/inline-styles-processor.js +55 -22
  34. package/lib/draft-js/modifier.js +13 -5
  35. package/lib/index.js +4 -0
  36. package/lib/website/mirrormedia/block-renderer/background-image-block.js +14 -2
  37. package/lib/website/mirrormedia/block-renderer/background-video-block.js +14 -2
  38. package/lib/website/mirrormedia/block-renderer/color-box-block.js +14 -2
  39. package/lib/website/mirrormedia/block-renderer/embedded-code-block.js +12 -3
  40. package/lib/website/mirrormedia/block-renderer/info-box-block.js +14 -2
  41. package/lib/website/mirrormedia/block-renderer/side-index-block.js +13 -2
  42. package/lib/website/mirrormedia/block-renderer/slideshow-block.js +11 -4
  43. package/lib/website/mirrormedia/block-renderer/table-block.js +62 -28
  44. package/lib/website/mirrormedia/block-renderer-fn.js +30 -0
  45. package/lib/website/mirrormedia/draft-editor.js +106 -10
  46. package/lib/website/mirrormedia/entity-decorator.js +4 -0
  47. package/lib/website/mirrormedia/index.js +3 -0
  48. package/lib/website/mirrormedia/selector/align-selector.js +11 -2
  49. package/lib/website/mirrormedia/selector/audio-selector.js +33 -4
  50. package/lib/website/mirrormedia/selector/image-selector.js +49 -6
  51. package/lib/website/mirrormedia/selector/pagination.js +6 -2
  52. package/lib/website/mirrormedia/selector/post-selector.js +39 -6
  53. package/lib/website/mirrormedia/selector/search-box.js +9 -0
  54. package/lib/website/mirrormedia/selector/video-selector.js +32 -4
  55. package/lib/website/readr/block-renderer/background-image-block.js +14 -2
  56. package/lib/website/readr/block-renderer/background-video-block.js +14 -2
  57. package/lib/website/readr/block-renderer/color-box-block.js +14 -2
  58. package/lib/website/readr/block-renderer/info-box-block.js +14 -2
  59. package/lib/website/readr/block-renderer/side-index-block.js +13 -2
  60. package/lib/website/readr/block-renderer/table-block.js +62 -28
  61. package/lib/website/readr/block-renderer-fn.js +28 -0
  62. package/lib/website/readr/draft-editor.js +106 -10
  63. package/lib/website/readr/entity-decorator.js +4 -0
  64. package/lib/website/readr/index.js +3 -0
  65. package/lib/website/readr/selector/align-selector.js +11 -2
  66. package/lib/website/readr/selector/audio-selector.js +33 -16
  67. package/lib/website/readr/selector/image-selector.js +49 -6
  68. package/lib/website/readr/selector/pagination.js +6 -2
  69. package/lib/website/readr/selector/post-selector.js +39 -6
  70. package/lib/website/readr/selector/search-box.js +9 -0
  71. package/lib/website/readr/selector/video-selector.js +32 -4
  72. package/package.json +2 -2
@@ -4,14 +4,23 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.BGImageEditorBlock = BGImageEditorBlock;
7
+
7
8
  var _react = _interopRequireWildcard(require("react"));
9
+
8
10
  var _styledComponents = _interopRequireDefault(require("styled-components"));
11
+
9
12
  var _draftConverter = _interopRequireDefault(require("../../../draft-js/draft-converter"));
13
+
10
14
  var _backgroundImage = require("../../../draft-js/buttons/background-image");
15
+
11
16
  var _mirrormedia = _interopRequireDefault(require("@mirrormedia/lilith-draft-renderer/lib/website/mirrormedia"));
17
+
12
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
+
13
20
  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
+
14
22
  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
+
15
24
  const {
16
25
  BGImageBlock
17
26
  } = _mirrormedia.default.blockRenderers;
@@ -21,6 +30,7 @@ const BGImageRenderButton = _styledComponents.default.span`
21
30
  padding: 6px;
22
31
  border-radius: 6px;
23
32
  `;
33
+
24
34
  function BGImageEditorBlock(props) {
25
35
  const [toShowInput, setToShowInput] = (0, _react.useState)(false);
26
36
  const {
@@ -40,6 +50,7 @@ function BGImageEditorBlock(props) {
40
50
  image,
41
51
  rawContentState
42
52
  } = entity.getData();
53
+
43
54
  const onChange = ({
44
55
  textBlockAlign: newTextBlockAlign,
45
56
  image: newImage,
@@ -57,6 +68,7 @@ function BGImageEditorBlock(props) {
57
68
  }
58
69
  });
59
70
  };
71
+
60
72
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_backgroundImage.BGImageInput, {
61
73
  renderBasicEditor: renderBasicEditor,
62
74
  textBlockAlign: textBlockAlign,
@@ -71,8 +83,8 @@ function BGImageEditorBlock(props) {
71
83
  }), /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(BGImageBlock, props), /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(BGImageRenderButton, {
72
84
  onClick: () => {
73
85
  // call `onEditStart` prop as we are trying to update the BGImage entity
74
- onEditStart();
75
- // open `BGImageInput`
86
+ onEditStart(); // open `BGImageInput`
87
+
76
88
  setToShowInput(true);
77
89
  }
78
90
  }, /*#__PURE__*/_react.default.createElement("i", {
@@ -4,14 +4,23 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.BGVideoEditorBlock = BGVideoEditorBlock;
7
+
7
8
  var _react = _interopRequireWildcard(require("react"));
9
+
8
10
  var _styledComponents = _interopRequireDefault(require("styled-components"));
11
+
9
12
  var _draftConverter = _interopRequireDefault(require("../../../draft-js/draft-converter"));
13
+
10
14
  var _backgroundVideo = require("../../../draft-js/buttons/background-video");
15
+
11
16
  var _mirrormedia = _interopRequireDefault(require("@mirrormedia/lilith-draft-renderer/lib/website/mirrormedia"));
17
+
12
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
+
13
20
  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
+
14
22
  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
+
15
24
  const {
16
25
  BGVideoBlock
17
26
  } = _mirrormedia.default.blockRenderers;
@@ -21,6 +30,7 @@ const BGVideoRenderButton = _styledComponents.default.span`
21
30
  padding: 6px;
22
31
  border-radius: 6px;
23
32
  `;
33
+
24
34
  function BGVideoEditorBlock(props) {
25
35
  const [toShowInput, setToShowInput] = (0, _react.useState)(false);
26
36
  const {
@@ -40,6 +50,7 @@ function BGVideoEditorBlock(props) {
40
50
  video,
41
51
  rawContentState
42
52
  } = entity.getData();
53
+
43
54
  const onChange = ({
44
55
  textBlockAlign: newTextBlockAlign,
45
56
  video: newVideo,
@@ -57,6 +68,7 @@ function BGVideoEditorBlock(props) {
57
68
  }
58
69
  });
59
70
  };
71
+
60
72
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_backgroundVideo.BGVideoInput, {
61
73
  renderBasicEditor: renderBasicEditor,
62
74
  textBlockAlign: textBlockAlign,
@@ -71,8 +83,8 @@ function BGVideoEditorBlock(props) {
71
83
  }), /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(BGVideoBlock, props), /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(BGVideoRenderButton, {
72
84
  onClick: () => {
73
85
  // call `onEditStart` prop as we are trying to update the BGVideo entity
74
- onEditStart();
75
- // open `BGVideoInput`
86
+ onEditStart(); // open `BGVideoInput`
87
+
76
88
  setToShowInput(true);
77
89
  }
78
90
  }, /*#__PURE__*/_react.default.createElement("i", {
@@ -4,20 +4,30 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.ColorBoxEditorBlock = ColorBoxEditorBlock;
7
+
7
8
  var _react = _interopRequireWildcard(require("react"));
9
+
8
10
  var _styledComponents = _interopRequireDefault(require("styled-components"));
11
+
9
12
  var _draftConverter = _interopRequireDefault(require("../../../draft-js/draft-converter"));
13
+
10
14
  var _colorBox = require("../../../draft-js/buttons/color-box");
15
+
11
16
  var _mirrormedia = _interopRequireDefault(require("@mirrormedia/lilith-draft-renderer/lib/website/mirrormedia"));
17
+
12
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
+
13
20
  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
+
14
22
  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
+
15
24
  const {
16
25
  ColorBoxBlock
17
26
  } = _mirrormedia.default.blockRenderers;
18
27
  const ColorBoxRenderButton = _styledComponents.default.div`
19
28
  cursor: pointer;
20
29
  `;
30
+
21
31
  function ColorBoxEditorBlock(props) {
22
32
  const [toShowInput, setToShowInput] = (0, _react.useState)(false);
23
33
  const {
@@ -36,6 +46,7 @@ function ColorBoxEditorBlock(props) {
36
46
  color,
37
47
  rawContentState
38
48
  } = entity.getData();
49
+
39
50
  const onChange = ({
40
51
  color: newColor,
41
52
  rawContentState: newRawContentState
@@ -51,6 +62,7 @@ function ColorBoxEditorBlock(props) {
51
62
  }
52
63
  });
53
64
  };
65
+
54
66
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_colorBox.ColorBoxInput, {
55
67
  renderBasicEditor: renderBasicEditor,
56
68
  color: color,
@@ -64,8 +76,8 @@ function ColorBoxEditorBlock(props) {
64
76
  }), /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(ColorBoxBlock, props), /*#__PURE__*/_react.default.createElement(ColorBoxRenderButton, {
65
77
  onClick: () => {
66
78
  // call `onEditStart` prop as we are trying to update the ColorBox entity
67
- onEditStart();
68
- // open `ColorBoxInput`
79
+ onEditStart(); // open `ColorBoxInput`
80
+
69
81
  setToShowInput(true);
70
82
  }
71
83
  }, /*#__PURE__*/_react.default.createElement("i", {
@@ -4,11 +4,17 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.EmbeddedCodeEditorBlock = exports.Caption = exports.Block = void 0;
7
+
7
8
  var _react = _interopRequireWildcard(require("react"));
9
+
8
10
  var _styledComponents = _interopRequireDefault(require("styled-components"));
11
+
9
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
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
  const Block = _styledComponents.default.div`
13
19
  position: relative;
14
20
  /* styles for image link */
@@ -28,6 +34,7 @@ const Caption = _styledComponents.default.div`
28
34
  padding: 15px 15px 0 15px;
29
35
  `;
30
36
  exports.Caption = Caption;
37
+
31
38
  const EmbeddedCodeEditorBlock = entity => {
32
39
  const {
33
40
  caption,
@@ -37,9 +44,7 @@ const EmbeddedCodeEditorBlock = entity => {
37
44
  (0, _react.useEffect)(() => {
38
45
  if (!embedded.current) return;
39
46
  const node = embedded.current;
40
- const fragment = document.createDocumentFragment();
41
-
42
- // `embeddedCode` is a string, which may includes
47
+ const fragment = document.createDocumentFragment(); // `embeddedCode` is a string, which may includes
43
48
  // multiple '<script>' tags and other html tags.
44
49
  // For executing '<script>' tags on the browser,
45
50
  // we need to extract '<script>' tags from `embeddedCode` string first.
@@ -48,6 +53,7 @@ const EmbeddedCodeEditorBlock = entity => {
48
53
  // and we could use DOM element built-in functions,
49
54
  // such as `querySelectorAll` method, to query '<script>' elements,
50
55
  // and other non '<script>' elements.
56
+
51
57
  const parser = new DOMParser();
52
58
  const ele = parser.parseFromString(`<div id="draft-embed">${embeddedCode}</div>`, 'text/html');
53
59
  const scripts = ele.querySelectorAll('script');
@@ -58,9 +64,11 @@ const EmbeddedCodeEditorBlock = entity => {
58
64
  scripts.forEach(s => {
59
65
  const scriptEle = document.createElement('script');
60
66
  const attrs = s.attributes;
67
+
61
68
  for (let i = 0; i < attrs.length; i++) {
62
69
  scriptEle.setAttribute(attrs[i].name, attrs[i].value);
63
70
  }
71
+
64
72
  scriptEle.text = s.text || '';
65
73
  fragment.appendChild(scriptEle);
66
74
  });
@@ -73,4 +81,5 @@ const EmbeddedCodeEditorBlock = entity => {
73
81
  ref: embedded
74
82
  }), caption ? /*#__PURE__*/_react.default.createElement(Caption, null, caption) : null);
75
83
  };
84
+
76
85
  exports.EmbeddedCodeEditorBlock = EmbeddedCodeEditorBlock;
@@ -4,20 +4,30 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.InfoBoxEditorBlock = InfoBoxEditorBlock;
7
+
7
8
  var _react = _interopRequireWildcard(require("react"));
9
+
8
10
  var _styledComponents = _interopRequireDefault(require("styled-components"));
11
+
9
12
  var _draftConverter = _interopRequireDefault(require("../../../draft-js/draft-converter"));
13
+
10
14
  var _infoBox = require("../../../draft-js/buttons/info-box");
15
+
11
16
  var _mirrormedia = _interopRequireDefault(require("@mirrormedia/lilith-draft-renderer/lib/website/mirrormedia"));
17
+
12
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
+
13
20
  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
+
14
22
  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
+
15
24
  const {
16
25
  InfoBoxBlock
17
26
  } = _mirrormedia.default.blockRenderers;
18
27
  const InfoBoxRenderButton = _styledComponents.default.div`
19
28
  cursor: pointer;
20
29
  `;
30
+
21
31
  function InfoBoxEditorBlock(props) {
22
32
  const [toShowInput, setToShowInput] = (0, _react.useState)(false);
23
33
  const {
@@ -36,6 +46,7 @@ function InfoBoxEditorBlock(props) {
36
46
  title,
37
47
  rawContentState
38
48
  } = entity.getData();
49
+
39
50
  const onChange = ({
40
51
  title: newTitle,
41
52
  rawContentState: newRawContentState
@@ -51,6 +62,7 @@ function InfoBoxEditorBlock(props) {
51
62
  }
52
63
  });
53
64
  };
65
+
54
66
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_infoBox.InfoBoxInput, {
55
67
  renderBasicEditor: renderBasicEditor,
56
68
  title: title,
@@ -64,8 +76,8 @@ function InfoBoxEditorBlock(props) {
64
76
  }), /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(InfoBoxBlock, props), /*#__PURE__*/_react.default.createElement(InfoBoxRenderButton, {
65
77
  onClick: () => {
66
78
  // call `onEditStart` prop as we are trying to update the InfoBox entity
67
- onEditStart();
68
- // open `InfoBoxInput`
79
+ onEditStart(); // open `InfoBoxInput`
80
+
69
81
  setToShowInput(true);
70
82
  }
71
83
  }, /*#__PURE__*/_react.default.createElement("i", {
@@ -4,13 +4,21 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.SideIndexEditorBlock = SideIndexEditorBlock;
7
+
7
8
  var _react = _interopRequireWildcard(require("react"));
9
+
8
10
  var _styledComponents = _interopRequireDefault(require("styled-components"));
11
+
9
12
  var _sideIndex = require("../../../draft-js/buttons/side-index");
13
+
10
14
  var _mirrormedia = _interopRequireDefault(require("@mirrormedia/lilith-draft-renderer/lib/website/mirrormedia"));
15
+
11
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
+
12
18
  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); }
19
+
13
20
  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; }
21
+
14
22
  const {
15
23
  SideIndexBlock
16
24
  } = _mirrormedia.default.blockRenderers;
@@ -18,6 +26,7 @@ const SideIndexBlockButton = _styledComponents.default.div`
18
26
  cursor: pointer;
19
27
  margin-left: 20px;
20
28
  `;
29
+
21
30
  function SideIndexEditorBlock(props) {
22
31
  const [toShowInput, setToShowInput] = (0, _react.useState)(false);
23
32
  const {
@@ -37,6 +46,7 @@ function SideIndexEditorBlock(props) {
37
46
  sideIndexUrl,
38
47
  sideIndexImage
39
48
  } = entity.getData();
49
+
40
50
  const onChange = ({
41
51
  h2Text,
42
52
  sideIndexText,
@@ -55,6 +65,7 @@ function SideIndexEditorBlock(props) {
55
65
  }
56
66
  });
57
67
  };
68
+
58
69
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_sideIndex.SideIndexInput, {
59
70
  h2Text: h2Text,
60
71
  sideIndexText: sideIndexText,
@@ -69,8 +80,8 @@ function SideIndexEditorBlock(props) {
69
80
  }), /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(SideIndexBlock, props), /*#__PURE__*/_react.default.createElement(SideIndexBlockButton, {
70
81
  onClick: () => {
71
82
  // call `onEditStart` prop as we are trying to update the SideIndex entity
72
- onEditStart();
73
- // open `SideIndexInput`
83
+ onEditStart(); // open `SideIndexInput`
84
+
74
85
  setToShowInput(true);
75
86
  }
76
87
  }, /*#__PURE__*/_react.default.createElement("i", {
@@ -5,9 +5,13 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.SlideshowEditBlock = SlideshowEditBlock;
7
7
  exports.SlideshowEditBlockV2 = SlideshowEditBlockV2;
8
+
8
9
  var _react = _interopRequireDefault(require("react"));
10
+
9
11
  var _styledComponents = _interopRequireDefault(require("styled-components"));
12
+
10
13
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
+
11
15
  const Image = _styledComponents.default.img`
12
16
  width: 100%;
13
17
  `;
@@ -32,24 +36,26 @@ const Figure = _styledComponents.default.figure`
32
36
  margin-block: unset;
33
37
  margin-inline: unset;
34
38
  margin: 0 10px;
35
- `;
39
+ `; // support old version of slideshow without delay propertiy
36
40
 
37
- // support old version of slideshow without delay propertiy
38
41
  function SlideshowEditBlock(entity) {
39
42
  var _images$, _images$$resized;
43
+
40
44
  const images = entity.getData();
41
45
  return /*#__PURE__*/_react.default.createElement(Figure, null, /*#__PURE__*/_react.default.createElement(Image, {
42
46
  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,
43
47
  onError: e => {
44
48
  var _images$2, _images$2$imageFile;
49
+
45
50
  return e.currentTarget.src = images === null || images === void 0 ? void 0 : (_images$2 = images[0]) === null || _images$2 === void 0 ? void 0 : (_images$2$imageFile = _images$2.imageFile) === null || _images$2$imageFile === void 0 ? void 0 : _images$2$imageFile.url;
46
51
  }
47
52
  }), /*#__PURE__*/_react.default.createElement(SlideshowCount, null, "+", images.length));
48
- }
53
+ } // 202206 latest version of slideshow, support delay property
54
+
49
55
 
50
- // 202206 latest version of slideshow, support delay property
51
56
  function SlideshowEditBlockV2(entity) {
52
57
  var _images$3, _images$3$resized;
58
+
53
59
  const {
54
60
  images,
55
61
  delay
@@ -58,6 +64,7 @@ function SlideshowEditBlockV2(entity) {
58
64
  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,
59
65
  onError: e => {
60
66
  var _images$4, _images$4$imageFile;
67
+
61
68
  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;
62
69
  }
63
70
  }), /*#__PURE__*/_react.default.createElement(SlideshowCount, null, /*#__PURE__*/_react.default.createElement("div", null, "+", images.length), delay && /*#__PURE__*/_react.default.createElement("div", null, `${delay}s`)));
@@ -4,34 +4,49 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.TableEditorBlock = void 0;
7
+
7
8
  var _react = _interopRequireWildcard(require("react"));
9
+
8
10
  var _styledComponents = _interopRequireDefault(require("styled-components"));
11
+
9
12
  var _draftJs = require("draft-js");
13
+
10
14
  var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
15
+
11
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
+
12
18
  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); }
19
+
13
20
  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; }
21
+
14
22
  const _ = {
15
23
  cloneDeep: _cloneDeep.default
16
24
  };
17
- var ActionType = /*#__PURE__*/function (ActionType) {
25
+ var ActionType;
26
+
27
+ (function (ActionType) {
18
28
  ActionType["Insert"] = "insert";
19
29
  ActionType["Delete"] = "delete";
20
30
  ActionType["Update"] = "update";
21
- return ActionType;
22
- }(ActionType || {});
23
- var TableEnum = /*#__PURE__*/function (TableEnum) {
31
+ })(ActionType || (ActionType = {}));
32
+
33
+ var TableEnum;
34
+
35
+ (function (TableEnum) {
24
36
  TableEnum["Row"] = "row";
25
37
  TableEnum["Column"] = "column";
26
- return TableEnum;
27
- }(TableEnum || {});
38
+ })(TableEnum || (TableEnum = {}));
39
+
28
40
  function createEmptyRow(colLen = 0, emptyValue) {
29
41
  const rtn = [];
42
+
30
43
  for (let i = 0; i < colLen; i++) {
31
44
  rtn.push(emptyValue);
32
45
  }
46
+
33
47
  return rtn;
34
48
  }
49
+
35
50
  function resolveTableStyles(action, tableStyles) {
36
51
  switch (action === null || action === void 0 ? void 0 : action.type) {
37
52
  case ActionType.Insert:
@@ -41,10 +56,12 @@ function resolveTableStyles(action, tableStyles) {
41
56
  return Object.assign({}, tableStyles, {
42
57
  rows
43
58
  });
44
- }
45
- // TODO: handle target === TableEnum.Column if needed
59
+ } // TODO: handle target === TableEnum.Column if needed
60
+
61
+
46
62
  return tableStyles;
47
63
  }
64
+
48
65
  case ActionType.Delete:
49
66
  {
50
67
  if (action.target === TableEnum.Row) {
@@ -52,61 +69,75 @@ function resolveTableStyles(action, tableStyles) {
52
69
  return Object.assign({}, tableStyles, {
53
70
  rows
54
71
  });
55
- }
56
- // TODO: handle target === TableEnum.Column if needed
72
+ } // TODO: handle target === TableEnum.Column if needed
73
+
74
+
57
75
  return tableStyles;
58
76
  }
59
77
  // TODO: handle action.type === ActionType.Update if needed
78
+
60
79
  default:
61
80
  {
62
81
  return tableStyles;
63
82
  }
64
83
  }
65
84
  }
85
+
66
86
  function resolveTableData(action, tableData) {
67
87
  switch (action === null || action === void 0 ? void 0 : action.type) {
68
88
  case ActionType.Insert:
69
89
  {
70
90
  var _tableData$;
91
+
71
92
  if (typeof (action === null || action === void 0 ? void 0 : action.index) !== 'number') {
72
93
  return tableData;
73
94
  }
95
+
74
96
  if ((action === null || action === void 0 ? void 0 : action.target) === TableEnum.Column) {
75
97
  // add the new column at specific position in each row
76
98
  return tableData.map(r => [...r.slice(0, action === null || action === void 0 ? void 0 : action.index), _draftJs.EditorState.createEmpty(), ...r.slice(action === null || action === void 0 ? void 0 : action.index)]);
77
- }
78
- // add the new row
99
+ } // add the new row
100
+
101
+
79
102
  return [...tableData.slice(0, action === null || action === void 0 ? void 0 : action.index), createEmptyRow(tableData === null || tableData === void 0 ? void 0 : (_tableData$ = tableData[0]) === null || _tableData$ === void 0 ? void 0 : _tableData$.length, _draftJs.EditorState.createEmpty()), ...tableData.slice(action === null || action === void 0 ? void 0 : action.index)];
80
103
  }
104
+
81
105
  case ActionType.Delete:
82
106
  {
83
107
  if (typeof (action === null || action === void 0 ? void 0 : action.index) !== 'number') {
84
108
  return tableData;
85
109
  }
110
+
86
111
  if ((action === null || action === void 0 ? void 0 : action.target) === 'column') {
87
112
  // delete the column at specific position in each row
88
113
  return tableData.map(r => [...r.slice(0, action.index), ...r.slice(action.index + 1)]);
89
- }
90
- // delete the column
114
+ } // delete the column
115
+
116
+
91
117
  return [...tableData.slice(0, action.index), ...tableData.slice(action.index + 1)];
92
118
  }
119
+
93
120
  case ActionType.Update:
94
121
  {
95
122
  // The reason we copy the array is to make sure
96
123
  // that React component re-renders.
97
124
  const copiedData = [...tableData];
125
+
98
126
  if (typeof (action === null || action === void 0 ? void 0 : action.rIndex) !== 'number' || typeof (action === null || action === void 0 ? void 0 : action.cIndex) !== 'number') {
99
127
  return copiedData;
100
128
  }
129
+
101
130
  copiedData[action.rIndex][action.cIndex] = action === null || action === void 0 ? void 0 : action.value;
102
131
  return copiedData;
103
132
  }
133
+
104
134
  default:
105
135
  {
106
136
  return tableData;
107
137
  }
108
138
  }
109
139
  }
140
+
110
141
  function convertTableDataFromRaw(rawTableData) {
111
142
  return rawTableData.map(rowData => {
112
143
  return rowData.map(colData => {
@@ -115,6 +146,7 @@ function convertTableDataFromRaw(rawTableData) {
115
146
  });
116
147
  });
117
148
  }
149
+
118
150
  function convertTableDataToRaw(tableData) {
119
151
  return tableData.map(rowData => {
120
152
  return rowData.map(colData => {
@@ -122,6 +154,7 @@ function convertTableDataToRaw(tableData) {
122
154
  });
123
155
  });
124
156
  }
157
+
125
158
  const Table = _styledComponents.default.div`
126
159
  display: table;
127
160
  width: 95%;
@@ -222,8 +255,10 @@ const TableBlockContainer = _styledComponents.default.div`
222
255
  overflow: scroll;
223
256
  padding: 15px;
224
257
  `;
258
+
225
259
  const TableEditorBlock = props => {
226
260
  var _tableData$2;
261
+
227
262
  const {
228
263
  block,
229
264
  blockProps,
@@ -240,26 +275,24 @@ const TableEditorBlock = props => {
240
275
  tableData: rawTableData,
241
276
  tableStyles: _tableStyles
242
277
  } = entity.getData();
243
- const [tableData, setTableData] = (0, _react.useState)(convertTableDataFromRaw(rawTableData));
244
- // deep clone `_tableStyles` to prevent updating the entity data directly
245
- const [tableStyles, setTableStyles] = (0, _react.useState)(_.cloneDeep(_tableStyles));
246
- const tableRef = (0, _react.useRef)(null);
278
+ const [tableData, setTableData] = (0, _react.useState)(convertTableDataFromRaw(rawTableData)); // deep clone `_tableStyles` to prevent updating the entity data directly
247
279
 
248
- // `TableBlock` will render other inner/nested DraftJS Editors inside the main Editor.
280
+ const [tableStyles, setTableStyles] = (0, _react.useState)(_.cloneDeep(_tableStyles));
281
+ const tableRef = (0, _react.useRef)(null); // `TableBlock` will render other inner/nested DraftJS Editors inside the main Editor.
249
282
  // However, main Editor's `readOnly` needs to be mutually exclusive with nested Editors' `readOnly`.
250
283
  // If the main Editor and nested Editor are editable (`readOnly={false}`) at the same time,
251
284
  // there will be a DraftJS Edtior Selection bug.
252
- const [cellEditorReadOnly, setCellEditorReadOnly] = (0, _react.useState)(!getMainEditorReadOnly());
253
285
 
254
- // The user clicks the table for editing
286
+ const [cellEditorReadOnly, setCellEditorReadOnly] = (0, _react.useState)(!getMainEditorReadOnly()); // The user clicks the table for editing
287
+
255
288
  const onTableClick = () => {
256
289
  // call `onEditStart` function to tell the main DraftJS Editor
257
290
  // that we are going to interact with the custom atomic block.
258
- onEditStart();
291
+ onEditStart(); // make nested DraftJS Editors editable
259
292
 
260
- // make nested DraftJS Editors editable
261
293
  setCellEditorReadOnly(false);
262
294
  };
295
+
263
296
  (0, _react.useEffect)(() => {
264
297
  // The user clicks other places except the table,
265
298
  // so we think he/she doesn't want to edit the table anymore.
@@ -271,10 +304,9 @@ const TableEditorBlock = props => {
271
304
  // this `handleClickOutside` will only handle the just updated one.
272
305
  if (tableRef.current && !tableRef.current.contains(event.target) && !cellEditorReadOnly) {
273
306
  // make inner DraftJS Editors NOT editable
274
- setCellEditorReadOnly(true);
275
-
276
- // call `onEditFinish` function tell the main DraftJS Editor
307
+ setCellEditorReadOnly(true); // call `onEditFinish` function tell the main DraftJS Editor
277
308
  // that we are finishing interacting with the custom atomic block.
309
+
278
310
  onEditFinish({
279
311
  entityKey,
280
312
  entityData: {
@@ -284,6 +316,7 @@ const TableEditorBlock = props => {
284
316
  });
285
317
  }
286
318
  }
319
+
287
320
  console.debug('(rich-text-editor/table): add click outside event listener');
288
321
  document.addEventListener('mousedown', handleClickOutside);
289
322
  return () => {
@@ -291,8 +324,7 @@ const TableEditorBlock = props => {
291
324
  console.debug('(rich-text-editor/table): remove click outside event listener');
292
325
  document.removeEventListener('mousedown', handleClickOutside);
293
326
  };
294
- },
295
- // Skip running effect if `tableData` and `cellEditorReadOnly` are not changed.
327
+ }, // Skip running effect if `tableData` and `cellEditorReadOnly` are not changed.
296
328
  [tableData, cellEditorReadOnly]);
297
329
  return /*#__PURE__*/_react.default.createElement(TableBlockContainer, null, /*#__PURE__*/_react.default.createElement(Table, {
298
330
  key: entityKey,
@@ -324,6 +356,7 @@ const TableEditorBlock = props => {
324
356
  }));
325
357
  })), tableData.map((rowData, rIndex) => {
326
358
  var _tableStyles$rows;
359
+
327
360
  const colsJsx = rowData.map((colData, cIndex) => {
328
361
  return /*#__PURE__*/_react.default.createElement(Td, {
329
362
  key: `col_${cIndex}`
@@ -371,4 +404,5 @@ const TableEditorBlock = props => {
371
404
  })), colsJsx));
372
405
  })));
373
406
  };
407
+
374
408
  exports.TableEditorBlock = TableEditorBlock;