@mirrormedia/lilith-draft-editor 1.0.0-beta → 1.0.0-beta4

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 (171) hide show
  1. package/lib/draft-js/block-renderer/background-image-block.js +123 -0
  2. package/lib/draft-js/block-renderer/background-video-block.js +133 -0
  3. package/lib/draft-js/block-renderer/color-box-block.js +92 -0
  4. package/lib/draft-js/block-renderer/divider-block.js +24 -0
  5. package/lib/draft-js/block-renderer/embedded-code-block.js +63 -0
  6. package/lib/draft-js/block-renderer/image-block.js +47 -0
  7. package/lib/draft-js/block-renderer/info-box-block.js +89 -0
  8. package/lib/draft-js/block-renderer/media-block.js +65 -0
  9. package/lib/draft-js/block-renderer/related-post-block.js +51 -0
  10. package/lib/draft-js/block-renderer/side-index-block.js +103 -0
  11. package/lib/draft-js/block-renderer/slideshow-block.js +71 -0
  12. package/lib/draft-js/block-renderer/table-block.js +408 -0
  13. package/lib/draft-js/buttons/annotation.js +117 -0
  14. package/lib/draft-js/buttons/background-color.js +123 -0
  15. package/lib/draft-js/buttons/background-image.js +222 -0
  16. package/lib/draft-js/buttons/background-video.js +222 -0
  17. package/lib/draft-js/buttons/color-box.js +172 -0
  18. package/lib/draft-js/buttons/divider.js +63 -0
  19. package/lib/draft-js/buttons/embedded-code.js +109 -0
  20. package/lib/draft-js/buttons/enlarge.js +24 -0
  21. package/lib/draft-js/buttons/font-color.js +116 -0
  22. package/lib/draft-js/buttons/image.js +68 -0
  23. package/lib/draft-js/buttons/info-box.js +147 -0
  24. package/lib/draft-js/buttons/link.js +107 -0
  25. package/lib/draft-js/buttons/media.js +121 -0
  26. package/lib/draft-js/buttons/related-post.js +71 -0
  27. package/lib/draft-js/buttons/selector/align-selector.js +71 -0
  28. package/lib/draft-js/buttons/selector/image-selector.js +428 -0
  29. package/lib/draft-js/buttons/selector/pagination.js +82 -0
  30. package/lib/draft-js/buttons/selector/post-selector.js +317 -0
  31. package/lib/draft-js/buttons/selector/search-box.js +46 -0
  32. package/lib/draft-js/buttons/selector/video-selector.js +284 -0
  33. package/lib/draft-js/buttons/side-index.js +200 -0
  34. package/lib/draft-js/buttons/slideshow.js +71 -0
  35. package/lib/draft-js/buttons/table.js +67 -0
  36. package/lib/draft-js/buttons/text-align.js +88 -0
  37. package/lib/draft-js/editor/basic-editor.js +366 -0
  38. package/lib/draft-js/editor/block-renderer-fn.js +117 -0
  39. package/lib/draft-js/editor/entity-decorator.js +16 -0
  40. package/lib/draft-js/editor/modifier.js +68 -0
  41. package/lib/draft-js/entity-decorator/annotation-decorator.js +86 -0
  42. package/lib/draft-js/entity-decorator/link-decorator.js +39 -0
  43. package/lib/website/mirrormedia/custom/block-renderer/background-image-block.js +91 -0
  44. package/lib/website/mirrormedia/custom/block-renderer/background-video-block.js +91 -0
  45. package/lib/website/mirrormedia/custom/block-renderer/color-box-block.js +84 -0
  46. package/lib/website/mirrormedia/custom/block-renderer/info-box-block.js +84 -0
  47. package/lib/website/mirrormedia/custom/block-renderer/side-index-block.js +90 -0
  48. package/lib/website/mirrormedia/custom/block-renderer/table-block.js +408 -0
  49. package/lib/website/mirrormedia/custom/selector/align-selector.js +71 -0
  50. package/lib/website/mirrormedia/custom/selector/image-selector.js +427 -0
  51. package/lib/website/mirrormedia/custom/selector/pagination.js +82 -0
  52. package/lib/website/mirrormedia/custom/selector/post-selector.js +318 -0
  53. package/lib/website/mirrormedia/custom/selector/search-box.js +46 -0
  54. package/lib/website/mirrormedia/custom/selector/video-selector.js +282 -0
  55. package/lib/website/mirrormedia/draft-editor/block-renderer-fn.js +117 -0
  56. package/lib/website/mirrormedia/draft-editor/entity-decorator.js +18 -0
  57. package/lib/website/mirrormedia/draft-editor/index.js +799 -0
  58. package/lib/website/mirrormedia/index.js +1 -4
  59. package/lib/website/readr/custom/block-renderer/background-image-block.js +91 -0
  60. package/lib/website/readr/custom/block-renderer/background-video-block.js +91 -0
  61. package/lib/website/readr/custom/block-renderer/color-box-block.js +84 -0
  62. package/lib/website/readr/custom/block-renderer/info-box-block.js +84 -0
  63. package/lib/website/readr/custom/block-renderer/side-index-block.js +90 -0
  64. package/lib/website/readr/custom/block-renderer/table-block.js +408 -0
  65. package/lib/website/readr/custom/selector/align-selector.js +71 -0
  66. package/lib/website/readr/custom/selector/image-selector.js +427 -0
  67. package/lib/website/readr/custom/selector/pagination.js +82 -0
  68. package/lib/website/readr/custom/selector/post-selector.js +318 -0
  69. package/lib/website/readr/custom/selector/search-box.js +46 -0
  70. package/lib/website/readr/custom/selector/video-selector.js +282 -0
  71. package/lib/website/readr/draft-editor/block-renderer-fn.js +117 -0
  72. package/lib/website/readr/draft-editor/entity-decorator.js +18 -0
  73. package/lib/website/readr/draft-editor/index.js +799 -0
  74. package/lib/website/readr/index.js +1 -4
  75. package/package.json +3 -2
  76. package/lib/draft-js/block-renderer/background-image-block.tsx +0 -113
  77. package/lib/draft-js/block-renderer/background-video-block.tsx +0 -120
  78. package/lib/draft-js/block-renderer/color-box-block.tsx +0 -85
  79. package/lib/draft-js/block-renderer/divider-block.tsx +0 -12
  80. package/lib/draft-js/block-renderer/embedded-code-block.tsx +0 -65
  81. package/lib/draft-js/block-renderer/image-block.tsx +0 -41
  82. package/lib/draft-js/block-renderer/info-box-block.tsx +0 -85
  83. package/lib/draft-js/block-renderer/media-block.tsx +0 -36
  84. package/lib/draft-js/block-renderer/related-post-block.tsx +0 -47
  85. package/lib/draft-js/block-renderer/side-index-block.tsx +0 -113
  86. package/lib/draft-js/block-renderer/slideshow-block.tsx +0 -62
  87. package/lib/draft-js/block-renderer/table-block.tsx +0 -488
  88. package/lib/draft-js/buttons/annotation.tsx +0 -113
  89. package/lib/draft-js/buttons/background-color.tsx +0 -125
  90. package/lib/draft-js/buttons/background-image.tsx +0 -276
  91. package/lib/draft-js/buttons/background-video.tsx +0 -275
  92. package/lib/draft-js/buttons/color-box.tsx +0 -207
  93. package/lib/draft-js/buttons/divider.tsx +0 -56
  94. package/lib/draft-js/buttons/embedded-code.tsx +0 -126
  95. package/lib/draft-js/buttons/enlarge.tsx +0 -11
  96. package/lib/draft-js/buttons/font-color.tsx +0 -113
  97. package/lib/draft-js/buttons/image.tsx +0 -71
  98. package/lib/draft-js/buttons/info-box.tsx +0 -170
  99. package/lib/draft-js/buttons/link.tsx +0 -103
  100. package/lib/draft-js/buttons/media.tsx +0 -120
  101. package/lib/draft-js/buttons/related-post.tsx +0 -81
  102. package/lib/draft-js/buttons/selector/align-selector.tsx +0 -65
  103. package/lib/draft-js/buttons/selector/image-selector.tsx +0 -485
  104. package/lib/draft-js/buttons/selector/pagination.tsx +0 -83
  105. package/lib/draft-js/buttons/selector/post-selector.tsx +0 -367
  106. package/lib/draft-js/buttons/selector/search-box.tsx +0 -39
  107. package/lib/draft-js/buttons/selector/video-selector.tsx +0 -312
  108. package/lib/draft-js/buttons/side-index.tsx +0 -257
  109. package/lib/draft-js/buttons/slideshow.tsx +0 -81
  110. package/lib/draft-js/buttons/table.tsx +0 -63
  111. package/lib/draft-js/buttons/text-align.tsx +0 -88
  112. package/lib/draft-js/editor/basic-editor.tsx +0 -384
  113. package/lib/draft-js/editor/block-redender-fn.tsx +0 -77
  114. package/lib/draft-js/editor/entity-decorator.tsx +0 -7
  115. package/lib/draft-js/editor/modifier.tsx +0 -71
  116. package/lib/draft-js/entity-decorator/annotation-decorator.tsx +0 -81
  117. package/lib/draft-js/entity-decorator/link-decorator.tsx +0 -27
  118. package/lib/website/mirrormedia/custom/block-renderer/background-image-block.tsx +0 -128
  119. package/lib/website/mirrormedia/custom/block-renderer/background-video-block.tsx +0 -135
  120. package/lib/website/mirrormedia/custom/block-renderer/color-box-block.tsx +0 -98
  121. package/lib/website/mirrormedia/custom/block-renderer/divider-block.tsx +0 -12
  122. package/lib/website/mirrormedia/custom/block-renderer/embedded-code-block.tsx +0 -65
  123. package/lib/website/mirrormedia/custom/block-renderer/image-block.tsx +0 -41
  124. package/lib/website/mirrormedia/custom/block-renderer/info-box-block.tsx +0 -98
  125. package/lib/website/mirrormedia/custom/block-renderer/media-block.tsx +0 -36
  126. package/lib/website/mirrormedia/custom/block-renderer/related-post-block.tsx +0 -47
  127. package/lib/website/mirrormedia/custom/block-renderer/side-index-block.tsx +0 -125
  128. package/lib/website/mirrormedia/custom/block-renderer/slideshow-block.tsx +0 -62
  129. package/lib/website/mirrormedia/custom/block-renderer/table-block.tsx +0 -537
  130. package/lib/website/mirrormedia/custom/entity-decorator/annotation-decorator.tsx +0 -81
  131. package/lib/website/mirrormedia/custom/entity-decorator/link-decorator.tsx +0 -27
  132. package/lib/website/mirrormedia/custom/selector/align-selector.tsx +0 -65
  133. package/lib/website/mirrormedia/custom/selector/image-selector.tsx +0 -485
  134. package/lib/website/mirrormedia/custom/selector/pagination.tsx +0 -83
  135. package/lib/website/mirrormedia/custom/selector/post-selector.tsx +0 -367
  136. package/lib/website/mirrormedia/custom/selector/search-box.tsx +0 -39
  137. package/lib/website/mirrormedia/custom/selector/video-selector.tsx +0 -310
  138. package/lib/website/mirrormedia/draft-editor/block-redender-fn.tsx +0 -77
  139. package/lib/website/mirrormedia/draft-editor/entity-decorator.tsx +0 -7
  140. package/lib/website/mirrormedia/draft-editor/index.tsx +0 -909
  141. package/lib/website/mirrormedia/draft-renderer/block-redender-fn.tsx +0 -77
  142. package/lib/website/mirrormedia/draft-renderer/entity-decorator.tsx +0 -7
  143. package/lib/website/mirrormedia/draft-renderer/index-deprecated.tsx +0 -43
  144. package/lib/website/mirrormedia/draft-renderer/index.tsx +0 -150
  145. package/lib/website/readr/custom/block-renderer/background-image-block.tsx +0 -128
  146. package/lib/website/readr/custom/block-renderer/background-video-block.tsx +0 -135
  147. package/lib/website/readr/custom/block-renderer/color-box-block.tsx +0 -98
  148. package/lib/website/readr/custom/block-renderer/divider-block.tsx +0 -12
  149. package/lib/website/readr/custom/block-renderer/embedded-code-block.tsx +0 -65
  150. package/lib/website/readr/custom/block-renderer/image-block.tsx +0 -41
  151. package/lib/website/readr/custom/block-renderer/info-box-block.tsx +0 -98
  152. package/lib/website/readr/custom/block-renderer/media-block.tsx +0 -36
  153. package/lib/website/readr/custom/block-renderer/related-post-block.tsx +0 -47
  154. package/lib/website/readr/custom/block-renderer/side-index-block.tsx +0 -125
  155. package/lib/website/readr/custom/block-renderer/slideshow-block.tsx +0 -62
  156. package/lib/website/readr/custom/block-renderer/table-block.tsx +0 -537
  157. package/lib/website/readr/custom/entity-decorator/annotation-decorator.tsx +0 -81
  158. package/lib/website/readr/custom/entity-decorator/link-decorator.tsx +0 -27
  159. package/lib/website/readr/custom/selector/align-selector.tsx +0 -65
  160. package/lib/website/readr/custom/selector/image-selector.tsx +0 -485
  161. package/lib/website/readr/custom/selector/pagination.tsx +0 -83
  162. package/lib/website/readr/custom/selector/post-selector.tsx +0 -367
  163. package/lib/website/readr/custom/selector/search-box.tsx +0 -39
  164. package/lib/website/readr/custom/selector/video-selector.tsx +0 -310
  165. package/lib/website/readr/draft-editor/block-redender-fn.tsx +0 -77
  166. package/lib/website/readr/draft-editor/entity-decorator.tsx +0 -7
  167. package/lib/website/readr/draft-editor/index.tsx +0 -909
  168. package/lib/website/readr/draft-renderer/block-redender-fn.tsx +0 -77
  169. package/lib/website/readr/draft-renderer/entity-decorator.tsx +0 -7
  170. package/lib/website/readr/draft-renderer/index-deprecated.tsx +0 -43
  171. package/lib/website/readr/draft-renderer/index.tsx +0 -150
@@ -0,0 +1,172 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ColorBoxButton = ColorBoxButton;
7
+ exports.ColorBoxInput = ColorBoxInput;
8
+
9
+ var _react = _interopRequireWildcard(require("react"));
10
+
11
+ var _entityDecorator = _interopRequireDefault(require("../editor/entity-decorator"));
12
+
13
+ var _draftJs = require("draft-js");
14
+
15
+ var _basicEditor = require("../editor/basic-editor");
16
+
17
+ var _modals = require("@keystone-ui/modals");
18
+
19
+ var _fields = require("@keystone-ui/fields");
20
+
21
+ var _draftConverter = _interopRequireDefault(require("../editor/draft-converter"));
22
+
23
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
24
+
25
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
26
+
27
+ 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); }
28
+
29
+ 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; }
30
+
31
+ const Label = _styledComponents.default.label`
32
+ display: block;
33
+ font-weight: 600;
34
+ margin: 10px 0;
35
+ `;
36
+ const ColorHexInput = (0, _styledComponents.default)(_fields.TextInput)`
37
+ margin-bottom: 10px;
38
+ `;
39
+
40
+ function ColorBoxInput(props) {
41
+ const {
42
+ isOpen,
43
+ onChange,
44
+ onCancel,
45
+ color,
46
+ rawContentStateForColorBoxEditor
47
+ } = props;
48
+ const rawContentState = rawContentStateForColorBoxEditor || {
49
+ blocks: [],
50
+ entityMap: {}
51
+ };
52
+ const initialInputValue = {
53
+ color: color || '',
54
+ // create an `editorState` from raw content state object
55
+ editorStateOfBasicEditor: _draftJs.EditorState.createWithContent((0, _draftJs.convertFromRaw)(rawContentState), _entityDecorator.default)
56
+ };
57
+ const [inputValue, setInputValue] = (0, _react.useState)(initialInputValue);
58
+
59
+ const clearInputValue = () => {
60
+ setInputValue({
61
+ color: '',
62
+ editorStateOfBasicEditor: _draftJs.EditorState.createWithContent((0, _draftJs.convertFromRaw)({
63
+ blocks: [],
64
+ entityMap: {}
65
+ }), _entityDecorator.default)
66
+ });
67
+ };
68
+
69
+ (0, _react.useEffect)(() => {
70
+ if (isOpen) {
71
+ setInputValue(initialInputValue);
72
+ }
73
+ }, [isOpen]);
74
+ return /*#__PURE__*/_react.default.createElement(_modals.DrawerController, {
75
+ isOpen: isOpen
76
+ }, /*#__PURE__*/_react.default.createElement(_modals.Drawer, {
77
+ title: `Insert Color Box`,
78
+ actions: {
79
+ cancel: {
80
+ label: 'Cancel',
81
+ action: () => {
82
+ clearInputValue();
83
+ onCancel();
84
+ }
85
+ },
86
+ confirm: {
87
+ label: 'Confirm',
88
+ action: () => {
89
+ onChange({
90
+ color: inputValue.color,
91
+ // convert `contentState` of the `editorState` into raw content state object
92
+ rawContentState: (0, _draftJs.convertToRaw)(inputValue.editorStateOfBasicEditor.getCurrentContent())
93
+ });
94
+ clearInputValue();
95
+ }
96
+ }
97
+ }
98
+ }, /*#__PURE__*/_react.default.createElement(Label, null, "Hex Color Code (#ffffff)"), /*#__PURE__*/_react.default.createElement(ColorHexInput, {
99
+ onChange: e => setInputValue({
100
+ color: e.target.value,
101
+ editorStateOfBasicEditor: inputValue.editorStateOfBasicEditor
102
+ }),
103
+ type: "text",
104
+ placeholder: "Color",
105
+ value: inputValue.color
106
+ }), /*#__PURE__*/_react.default.createElement(Label, null, "\u5167\u6587"), /*#__PURE__*/_react.default.createElement(_basicEditor.BasicEditor, {
107
+ editorState: inputValue.editorStateOfBasicEditor,
108
+ onChange: editorStateOfBasicEditor => {
109
+ setInputValue({
110
+ color: inputValue.color,
111
+ editorStateOfBasicEditor
112
+ });
113
+ }
114
+ })));
115
+ }
116
+
117
+ function ColorBoxButton(props) {
118
+ const [toShowInput, setToShowInput] = (0, _react.useState)(false);
119
+ const {
120
+ className,
121
+ editorState,
122
+ onChange: onEditorStateChange
123
+ } = props;
124
+
125
+ const onChange = ({
126
+ color,
127
+ rawContentState
128
+ }) => {
129
+ const contentState = editorState.getCurrentContent(); // create an ColorBox entity
130
+
131
+ const contentStateWithEntity = contentState.createEntity('COLORBOX', 'IMMUTABLE', {
132
+ color,
133
+ rawContentState,
134
+ body: _draftConverter.default.convertToHtml(rawContentState)
135
+ });
136
+ const entityKey = contentStateWithEntity.getLastCreatedEntityKey();
137
+
138
+ const newEditorState = _draftJs.EditorState.set(editorState, {
139
+ currentContent: contentStateWithEntity
140
+ }); //The third parameter here is a space string, not an empty string
141
+ //If you set an empty string, you will get an error: Unknown DraftEntity key: null
142
+
143
+
144
+ onEditorStateChange(_draftJs.AtomicBlockUtils.insertAtomicBlock(newEditorState, entityKey, ' '));
145
+ setToShowInput(false);
146
+ };
147
+
148
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(ColorBoxInput, {
149
+ onChange: onChange,
150
+ onCancel: () => {
151
+ setToShowInput(false);
152
+ },
153
+ isOpen: toShowInput
154
+ }), /*#__PURE__*/_react.default.createElement("div", {
155
+ className: className,
156
+ onClick: () => {
157
+ setToShowInput(true);
158
+ }
159
+ }, /*#__PURE__*/_react.default.createElement("svg", {
160
+ width: "16",
161
+ height: "16",
162
+ viewBox: "0 0 16 16",
163
+ fill: "none",
164
+ xmlns: "http://www.w3.org/2000/svg"
165
+ }, /*#__PURE__*/_react.default.createElement("path", {
166
+ d: "M14 0H2C0.895431 0 0 0.895431 0 2V14C0 15.1046 0.895431 16 2 16H14C15.1046 16 16 15.1046 16 14V2C16 0.895431 15.1046 0 14 0Z",
167
+ fill: "#6b7280"
168
+ }), /*#__PURE__*/_react.default.createElement("path", {
169
+ d: "M12.3867 2.66667H3.61332C3.36225 2.66667 3.12146 2.76641 2.94393 2.94394C2.76639 3.12148 2.66666 3.36227 2.66666 3.61334V5.51112C2.68312 5.75156 2.79025 5.97678 2.96639 6.14127C3.14253 6.30576 3.37454 6.39725 3.61555 6.39725C3.85655 6.39725 4.08856 6.30576 4.2647 6.14127C4.44084 5.97678 4.54797 5.75156 4.56443 5.51112V4.56445H6.94221V11.4356H5.99555C5.86547 11.4267 5.73496 11.4446 5.61211 11.4882C5.48926 11.5319 5.3767 11.6003 5.28141 11.6893C5.18612 11.7783 5.11015 11.8859 5.0582 12.0055C5.00626 12.1251 4.97946 12.2541 4.97946 12.3844C4.97946 12.5148 5.00626 12.6438 5.0582 12.7634C5.11015 12.883 5.18612 12.9906 5.28141 13.0796C5.3767 13.1686 5.48926 13.237 5.61211 13.2807C5.73496 13.3243 5.86547 13.3422 5.99555 13.3333H9.78666C10.0271 13.3169 10.2523 13.2097 10.4168 13.0336C10.5813 12.8575 10.6728 12.6255 10.6728 12.3844C10.6728 12.1434 10.5813 11.9114 10.4168 11.7353C10.2523 11.5592 10.0271 11.452 9.78666 11.4356H8.83999V4.56445H11.4355V5.51112C11.452 5.75156 11.5591 5.97678 11.7353 6.14127C11.9114 6.30576 12.1434 6.39725 12.3844 6.39725C12.6254 6.39725 12.8575 6.30576 13.0336 6.14127C13.2097 5.97678 13.3169 5.75156 13.3333 5.51112V3.61334C13.3333 3.36227 13.2336 3.12148 13.0561 2.94394C12.8785 2.76641 12.6377 2.66667 12.3867 2.66667Z",
170
+ fill: "white"
171
+ })), /*#__PURE__*/_react.default.createElement("span", null, " ColorBox")));
172
+ }
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.DividerButton = DividerButton;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _draftJs = require("draft-js");
11
+
12
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
13
+
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+
16
+ const IconWrapper = _styledComponents.default.span`
17
+ display: inline-block;
18
+ position: relative;
19
+ top: 2px;
20
+ `;
21
+
22
+ function DividerButton(props) {
23
+ const {
24
+ editorState,
25
+ onChange,
26
+ className
27
+ } = props;
28
+
29
+ const onClick = () => {
30
+ const contentState = editorState.getCurrentContent();
31
+ const contentStateWithEntity = contentState.createEntity('DIVIDER', 'IMMUTABLE', {});
32
+ const entityKey = contentStateWithEntity.getLastCreatedEntityKey();
33
+
34
+ const newEditorState = _draftJs.EditorState.set(editorState, {
35
+ currentContent: contentStateWithEntity
36
+ }); // The third parameter here is a space string, not an empty string
37
+ // If you set an empty string, you will get an error: Unknown DraftEntity key: null
38
+
39
+
40
+ onChange(_draftJs.AtomicBlockUtils.insertAtomicBlock(newEditorState, entityKey, ' '));
41
+ };
42
+
43
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
44
+ onClick: onClick,
45
+ className: className
46
+ }, /*#__PURE__*/_react.default.createElement(IconWrapper, null, /*#__PURE__*/_react.default.createElement("svg", {
47
+ xmlns: "http://www.w3.org/2000/svg",
48
+ height: "16",
49
+ viewBox: "0 0 16 16",
50
+ width: "16"
51
+ }, /*#__PURE__*/_react.default.createElement("g", {
52
+ fill: "none",
53
+ fillRule: "evenodd"
54
+ }, /*#__PURE__*/_react.default.createElement("path", {
55
+ d: "M0 0h16v16H0z"
56
+ }), /*#__PURE__*/_react.default.createElement("path", {
57
+ d: "M15 10.501a0.5 0.5 0 0 1 0.496 0.442l0.004 0.059v2.031a2.468 2.468 0 0 1 -2.361 2.466l-0.107 0.003H2.967a2.467 2.467 0 0 1 -2.465 -2.36L0.5 13.032v-2.03a0.5 0.5 0 0 1 0.997 -0.058l0.004 0.059v2.03a1.468 1.468 0 0 0 1.381 1.464l0.086 0.003h10.065a1.468 1.468 0 0 0 1.466 -1.382l0.003 -0.086v-2.031a0.5 0.5 0 0 1 0.5 -0.5zM15.5 7.5a0.5 0.5 0 0 1 0 1H0.5a0.5 0.5 0 0 1 0 -1zM13.029 0.5a2.471 2.471 0 0 1 2.469 2.364l0.003 0.107v2.031a0.5 0.5 0 0 1 -0.997 0.058L14.5 5.003V2.971a1.471 1.471 0 0 0 -1.385 -1.468L13.029 1.5H2.97a1.47 1.47 0 0 0 -1.467 1.383L1.5 2.97V5a0.5 0.5 0 0 1 -0.997 0.058L0.5 5V2.97a2.47 2.47 0 0 1 2.362 -2.467L2.97 0.5z",
58
+ fill: "#6b7280",
59
+ fillRule: "nonzero",
60
+ stroke: "#6b7280",
61
+ strokeWidth: "0.5"
62
+ }))))));
63
+ }
@@ -0,0 +1,109 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.EmbeddedCodeButton = EmbeddedCodeButton;
7
+
8
+ var _react = _interopRequireWildcard(require("react"));
9
+
10
+ var _draftJs = require("draft-js");
11
+
12
+ var _modals = require("@keystone-ui/modals");
13
+
14
+ var _fields = require("@keystone-ui/fields");
15
+
16
+ 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); }
17
+
18
+ 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; }
19
+
20
+ function EmbeddedCodeButton(props) {
21
+ const {
22
+ editorState,
23
+ onChange,
24
+ className
25
+ } = props;
26
+ const [toShowInput, setToShowInput] = (0, _react.useState)(false);
27
+ const [inputValue, setInputValue] = (0, _react.useState)({
28
+ caption: '',
29
+ embeddedCode: ''
30
+ });
31
+
32
+ const promptForInput = () => {
33
+ setToShowInput(true);
34
+ setInputValue({
35
+ caption: '',
36
+ embeddedCode: ''
37
+ });
38
+ };
39
+
40
+ const confirmInput = () => {
41
+ const contentState = editorState.getCurrentContent();
42
+ const contentStateWithEntity = contentState.createEntity('EMBEDDEDCODE', 'IMMUTABLE', inputValue);
43
+ const entityKey = contentStateWithEntity.getLastCreatedEntityKey();
44
+
45
+ const newEditorState = _draftJs.EditorState.set(editorState, {
46
+ currentContent: contentStateWithEntity
47
+ }); // The third parameter here is a space string, not an empty string
48
+ // If you set an empty string, you will get an error: Unknown DraftEntity key: null
49
+
50
+
51
+ onChange(_draftJs.AtomicBlockUtils.insertAtomicBlock(newEditorState, entityKey, ' '));
52
+ setToShowInput(false);
53
+ setInputValue({
54
+ caption: '',
55
+ embeddedCode: ''
56
+ });
57
+ };
58
+
59
+ const input = /*#__PURE__*/_react.default.createElement(_modals.DrawerController, {
60
+ isOpen: toShowInput
61
+ }, /*#__PURE__*/_react.default.createElement(_modals.Drawer, {
62
+ title: `Insert Embedded Code` //isOpen={toShowInput}
63
+ ,
64
+ actions: {
65
+ cancel: {
66
+ label: 'Cancel',
67
+ action: () => {
68
+ setToShowInput(false);
69
+ }
70
+ },
71
+ confirm: {
72
+ label: 'Confirm',
73
+ action: confirmInput
74
+ }
75
+ }
76
+ }, /*#__PURE__*/_react.default.createElement(_fields.TextInput, {
77
+ onChange: e => setInputValue({
78
+ caption: e.target.value,
79
+ embeddedCode: inputValue.embeddedCode
80
+ }),
81
+ type: "text",
82
+ placeholder: "Caption",
83
+ value: inputValue.caption,
84
+ style: {
85
+ marginBottom: '10px',
86
+ marginTop: '30px'
87
+ }
88
+ }), /*#__PURE__*/_react.default.createElement(_fields.TextArea, {
89
+ onChange: e => setInputValue({
90
+ caption: inputValue.caption,
91
+ embeddedCode: e.target.value
92
+ }),
93
+ placeholder: "Embedded Code",
94
+ type: "text",
95
+ value: inputValue.embeddedCode,
96
+ style: {
97
+ marginBottom: '30px'
98
+ }
99
+ })));
100
+
101
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, input, /*#__PURE__*/_react.default.createElement("div", {
102
+ onClick: () => {
103
+ promptForInput();
104
+ },
105
+ className: className
106
+ }, /*#__PURE__*/_react.default.createElement("i", {
107
+ className: "far"
108
+ }), /*#__PURE__*/_react.default.createElement("span", null, "Embed")));
109
+ }
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.EnlargeButton = EnlargeButton;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+
12
+ function EnlargeButton(props) {
13
+ const {
14
+ onToggle,
15
+ isEnlarged,
16
+ className
17
+ } = props;
18
+ return /*#__PURE__*/_react.default.createElement("div", {
19
+ className: className,
20
+ onClick: onToggle
21
+ }, /*#__PURE__*/_react.default.createElement("i", {
22
+ className: isEnlarged ? 'fas fa-compress' : 'fas fa-expand'
23
+ }));
24
+ }
@@ -0,0 +1,116 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.CUSTOM_STYLE_PREFIX_FONT_COLOR = void 0;
7
+ exports.FontColorButton = FontColorButton;
8
+
9
+ var _react = _interopRequireWildcard(require("react"));
10
+
11
+ var _modals = require("@keystone-ui/modals");
12
+
13
+ var _draftJs = require("draft-js");
14
+
15
+ var _fields = require("@keystone-ui/fields");
16
+
17
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
18
+
19
+ var _modifier = require("../editor/modifier");
20
+
21
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
22
+
23
+ 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); }
24
+
25
+ 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; }
26
+
27
+ const ColorHexInput = (0, _styledComponents.default)(_fields.TextInput)`
28
+ font-family: Georgia, serif;
29
+ margin-right: 10px;
30
+ padding: 10px;
31
+ `;
32
+ const CUSTOM_STYLE_PREFIX_FONT_COLOR = 'FONT_COLOR_';
33
+ exports.CUSTOM_STYLE_PREFIX_FONT_COLOR = CUSTOM_STYLE_PREFIX_FONT_COLOR;
34
+
35
+ function FontColorButton(props) {
36
+ const {
37
+ isActive,
38
+ editorState,
39
+ onChange
40
+ } = props;
41
+ const [toShowColorInput, setToShowColorInput] = (0, _react.useState)(false);
42
+ const [colorValue, setColorValue] = (0, _react.useState)('');
43
+
44
+ const promptForColor = e => {
45
+ e.preventDefault();
46
+ const selection = editorState.getSelection();
47
+
48
+ if (!selection.isCollapsed()) {
49
+ setToShowColorInput(true);
50
+ }
51
+ };
52
+
53
+ const confirmColor = () => {
54
+ const selection = editorState.getSelection();
55
+ const contentState = editorState.getCurrentContent();
56
+
57
+ let newContentState = _modifier.Modifier.removeInlineStyleByPrefix(contentState, selection, CUSTOM_STYLE_PREFIX_FONT_COLOR);
58
+
59
+ if (colorValue) {
60
+ newContentState = _modifier.Modifier.applyInlineStyle(newContentState, selection, CUSTOM_STYLE_PREFIX_FONT_COLOR + colorValue);
61
+ }
62
+
63
+ onChange(_draftJs.EditorState.push(editorState, newContentState, 'change-inline-style'));
64
+ setToShowColorInput(false);
65
+ setColorValue('');
66
+ };
67
+
68
+ const onColorInputKeyDown = e => {
69
+ if (e.which === 13) {
70
+ e.preventDefault();
71
+ confirmColor();
72
+ }
73
+ };
74
+
75
+ const removeColor = () => {
76
+ const selection = editorState.getSelection();
77
+
78
+ if (!selection.isCollapsed()) {
79
+ const contentState = editorState.getCurrentContent();
80
+
81
+ const newContentState = _modifier.Modifier.removeInlineStyleByPrefix(contentState, selection, CUSTOM_STYLE_PREFIX_FONT_COLOR);
82
+
83
+ onChange(_draftJs.EditorState.push(editorState, newContentState, 'change-inline-style'));
84
+ }
85
+
86
+ setToShowColorInput(false);
87
+ setColorValue('');
88
+ };
89
+
90
+ const colorInput = /*#__PURE__*/_react.default.createElement(_modals.AlertDialog, {
91
+ title: "Hex Color Code (#ffffff)",
92
+ isOpen: toShowColorInput,
93
+ actions: {
94
+ cancel: {
95
+ label: 'Cancel',
96
+ action: removeColor
97
+ },
98
+ confirm: {
99
+ label: 'Confirm',
100
+ action: confirmColor
101
+ }
102
+ }
103
+ }, /*#__PURE__*/_react.default.createElement(ColorHexInput, {
104
+ onChange: e => setColorValue(e.target.value),
105
+ type: "text",
106
+ value: colorValue,
107
+ onKeyDown: onColorInputKeyDown
108
+ }));
109
+
110
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, colorInput, /*#__PURE__*/_react.default.createElement("div", {
111
+ className: props.className,
112
+ onMouseDown: isActive ? removeColor : promptForColor
113
+ }, /*#__PURE__*/_react.default.createElement("i", {
114
+ className: "fas fa-palette"
115
+ })));
116
+ }
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ImageButton = ImageButton;
7
+
8
+ var _react = _interopRequireWildcard(require("react"));
9
+
10
+ var _draftJs = require("draft-js");
11
+
12
+ var _imageSelector = require("./selector/image-selector");
13
+
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
+
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
+
18
+ function ImageButton(props) {
19
+ const {
20
+ editorState,
21
+ onChange,
22
+ className,
23
+ ImageSelector = _imageSelector.ImageSelector
24
+ } = props;
25
+ const [toShowImageSelector, setToShowImageSelector] = (0, _react.useState)(false);
26
+
27
+ const promptForImageSelector = () => {
28
+ setToShowImageSelector(true);
29
+ };
30
+
31
+ const onImageSelectorChange = (selectedImagesWithMeta, align) => {
32
+ const selected = selectedImagesWithMeta === null || selectedImagesWithMeta === void 0 ? void 0 : selectedImagesWithMeta[0];
33
+
34
+ if (!selected) {
35
+ setToShowImageSelector(false);
36
+ return;
37
+ }
38
+
39
+ const contentState = editorState.getCurrentContent();
40
+ const contentStateWithEntity = contentState.createEntity('image', 'IMMUTABLE', { ...(selected === null || selected === void 0 ? void 0 : selected.image),
41
+ desc: selected === null || selected === void 0 ? void 0 : selected.desc,
42
+ url: selected === null || selected === void 0 ? void 0 : selected.url,
43
+ alignment: align
44
+ });
45
+ const entityKey = contentStateWithEntity.getLastCreatedEntityKey();
46
+
47
+ const newEditorState = _draftJs.EditorState.set(editorState, {
48
+ currentContent: contentStateWithEntity
49
+ }); // The third parameter here is a space string, not an empty string
50
+ // If you set an empty string, you will get an error: Unknown DraftEntity key: null
51
+
52
+
53
+ onChange(_draftJs.AtomicBlockUtils.insertAtomicBlock(newEditorState, entityKey, ' '));
54
+ setToShowImageSelector(false);
55
+ };
56
+
57
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, toShowImageSelector && /*#__PURE__*/_react.default.createElement(ImageSelector, {
58
+ onChange: onImageSelectorChange,
59
+ enableCaption: true,
60
+ enableUrl: true,
61
+ enableAlignment: true
62
+ }), /*#__PURE__*/_react.default.createElement("div", {
63
+ className: className,
64
+ onClick: promptForImageSelector
65
+ }, /*#__PURE__*/_react.default.createElement("i", {
66
+ className: "far fa-image"
67
+ }), /*#__PURE__*/_react.default.createElement("span", null, " Image")));
68
+ }