@kids-reporter/draft-renderer 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/block-render-map.js +183 -0
- package/lib/block-renderer-fn.js +15 -74
- package/lib/block-renderers/embedded-code-block.js +16 -20
- package/lib/block-renderers/image-block.js +90 -46
- package/lib/block-renderers/index.js +2 -31
- package/lib/block-renderers/info-box-block.js +2 -115
- package/lib/block-renderers/multimedia.js +127 -0
- package/lib/block-renderers/slideshow-block.js +574 -199
- package/lib/draft-renderer.js +10 -194
- package/lib/entity-decorators/annotation-decorator.js +58 -100
- package/lib/entity-decorators/index.js +17 -6
- package/lib/entity-decorators/link-decorator.js +4 -7
- package/lib/index.js +39 -14
- package/lib/theme/index.js +0 -11
- package/package.json +10 -6
- package/lib/assets/annotation-arrow.png +0 -0
- package/lib/assets/audio-pause.png +0 -0
- package/lib/assets/audio-play.png +0 -0
- package/lib/assets/citation-download.png +0 -0
- package/lib/assets/default-og-img.png +0 -0
- package/lib/assets/slideshow-arrow-down-dark.png +0 -0
- package/lib/assets/slideshow-arrow-down.png +0 -0
- package/lib/assets/slideshow-arrow-up.png +0 -0
- package/lib/assets/slideshow-close-cross.png +0 -0
- package/lib/block-renderers/audio-block.js +0 -162
- package/lib/block-renderers/background-image-block.js +0 -257
- package/lib/block-renderers/background-video-block.js +0 -272
- package/lib/block-renderers/color-box-block.js +0 -94
- package/lib/block-renderers/divider-block.js +0 -27
- package/lib/block-renderers/media-block.js +0 -65
- package/lib/block-renderers/related-post-block.js +0 -73
- package/lib/block-renderers/side-index-block.js +0 -49
- package/lib/block-renderers/table-block.js +0 -455
- package/lib/block-renderers/video-block.js +0 -37
- package/lib/components/slideshow-lightbox.js +0 -134
- package/lib/components/slideshow-sidebar.js +0 -148
- package/lib/const.js +0 -10
- package/lib/entity-decorator.js +0 -18
- package/lib/public/07d1287fd390346af0c15b930148a5e4.png +0 -0
- package/lib/public/5b3cb1a908786c8750f1041860699cc1.png +0 -0
- package/lib/public/679d63b1846e81ada28c2f76edbd2931.png +0 -0
- package/lib/public/722f90c535fa64c27555ec6ee5f22393.png +0 -0
- package/lib/public/903cf84ef5c5ad76634c30bdc0ff8c49.png +0 -0
- package/lib/public/dc249b3412c5af890a004508287a3c3d.png +0 -0
- package/lib/public/dd45f0788d9c70cabe72430bf08e7413.png +0 -0
- package/lib/public/f96d4b486ba2061c460962ae694f4670.png +0 -0
- package/lib/shared-style/content-type.js +0 -163
- package/lib/shared-style/index.js +0 -108
- package/lib/types/index.js +0 -32
- package/lib/utils/common.js +0 -44
- package/lib/utils/post.js +0 -147
package/lib/draft-renderer.js
CHANGED
|
@@ -3,127 +3,20 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
7
|
-
|
|
8
|
-
var _draftJs = require("draft-js");
|
|
6
|
+
exports.DraftRenderer = DraftRenderer;
|
|
9
7
|
|
|
10
8
|
var _react = _interopRequireDefault(require("react"));
|
|
11
9
|
|
|
12
|
-
var
|
|
13
|
-
|
|
14
|
-
var _const = require("./const");
|
|
10
|
+
var _draftJs = require("draft-js");
|
|
15
11
|
|
|
16
12
|
var _blockRendererFn = require("./block-renderer-fn");
|
|
17
13
|
|
|
18
|
-
var
|
|
19
|
-
|
|
20
|
-
var _contentType = require("./shared-style/content-type");
|
|
21
|
-
|
|
22
|
-
var _index = require("./shared-style/index");
|
|
23
|
-
|
|
24
|
-
var _theme = _interopRequireDefault(require("./theme"));
|
|
14
|
+
var _blockRenderMap = require("./block-render-map");
|
|
25
15
|
|
|
26
|
-
var
|
|
27
|
-
|
|
28
|
-
var _common = require("./utils/common");
|
|
29
|
-
|
|
30
|
-
var _post = require("./utils/post");
|
|
31
|
-
|
|
32
|
-
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); }
|
|
33
|
-
|
|
34
|
-
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; }
|
|
16
|
+
var _index = require("./entity-decorators/index");
|
|
35
17
|
|
|
36
18
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
37
19
|
|
|
38
|
-
const DraftEditorWrapper = _styledComponents.default.div`
|
|
39
|
-
/* Rich-editor default setting (.RichEditor-root)*/
|
|
40
|
-
font-family: 'Georgia', serif;
|
|
41
|
-
text-align: left;
|
|
42
|
-
|
|
43
|
-
/* Custom setting */
|
|
44
|
-
font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
|
|
45
|
-
'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji',
|
|
46
|
-
'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
|
|
47
|
-
width: 100%;
|
|
48
|
-
height: 100%;
|
|
49
|
-
letter-spacing: 0.01em;
|
|
50
|
-
color: rgba(0, 9, 40, 0.87);
|
|
51
|
-
|
|
52
|
-
*:has(.bg) + *:has(.bg) {
|
|
53
|
-
section {
|
|
54
|
-
margin-top: 0 !important;
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
/* Draft built-in buttons' style */
|
|
59
|
-
.public-DraftStyleDefault-header-two {
|
|
60
|
-
${_index.defaultH2Style}
|
|
61
|
-
|
|
62
|
-
& + * {
|
|
63
|
-
${_index.narrowSpacingBetweenContent}
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
.public-DraftStyleDefault-ul {
|
|
68
|
-
${_index.defaultUlStyle}
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
.public-DraftStyleDefault-ol {
|
|
72
|
-
${_index.defaultOlStyle}
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
/* code-block */
|
|
76
|
-
.public-DraftStyleDefault-pre {
|
|
77
|
-
overflow: hidden;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
.alignCenter * {
|
|
81
|
-
text-align: center;
|
|
82
|
-
}
|
|
83
|
-
.alignLeft * {
|
|
84
|
-
text-align: left;
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
/* image-block: text-around-picture */
|
|
88
|
-
figure.left {
|
|
89
|
-
${({
|
|
90
|
-
theme
|
|
91
|
-
}) => theme.breakpoint.xl} {
|
|
92
|
-
${_index.textAroundPictureStyle};
|
|
93
|
-
float: left;
|
|
94
|
-
transform: translateX(calc(-50% - 32px));
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
figure.right {
|
|
99
|
-
${({
|
|
100
|
-
theme
|
|
101
|
-
}) => theme.breakpoint.xl} {
|
|
102
|
-
${_index.textAroundPictureStyle};
|
|
103
|
-
float: right;
|
|
104
|
-
transform: translateX(32px);
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
${({
|
|
109
|
-
contentType
|
|
110
|
-
}) => {
|
|
111
|
-
switch (contentType) {
|
|
112
|
-
case _types.ValidPostContentType.NORMAL:
|
|
113
|
-
case _types.ValidPostContentType.ACTIONLIST:
|
|
114
|
-
return _contentType.NormalStyle;
|
|
115
|
-
|
|
116
|
-
case _types.ValidPostContentType.SUMMARY:
|
|
117
|
-
return _contentType.SummaryStyle;
|
|
118
|
-
|
|
119
|
-
case _types.ValidPostContentType.CITATION:
|
|
120
|
-
return _contentType.CitationStyle;
|
|
121
|
-
|
|
122
|
-
default:
|
|
123
|
-
return _contentType.NormalStyle;
|
|
124
|
-
}
|
|
125
|
-
}}
|
|
126
|
-
`;
|
|
127
20
|
const customStyleMap = {
|
|
128
21
|
CODE: {
|
|
129
22
|
backgroundColor: 'rgba(0, 0, 0, 0.05)',
|
|
@@ -133,102 +26,25 @@ const customStyleMap = {
|
|
|
133
26
|
}
|
|
134
27
|
};
|
|
135
28
|
|
|
136
|
-
const customStyleFn = style => {
|
|
137
|
-
return style.reduce((styles, styleName) => {
|
|
138
|
-
if (styleName !== null && styleName !== void 0 && styleName.startsWith(_const.CUSTOM_STYLE_PREFIX_FONT_COLOR)) {
|
|
139
|
-
styles['color'] = styleName.split(_const.CUSTOM_STYLE_PREFIX_FONT_COLOR)[1];
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
if (styleName !== null && styleName !== void 0 && styleName.startsWith(_const.CUSTOM_STYLE_PREFIX_BACKGROUND_COLOR)) {
|
|
143
|
-
const highlightColor = styleName.split(_const.CUSTOM_STYLE_PREFIX_BACKGROUND_COLOR)[1];
|
|
144
|
-
styles['background'] = `linear-gradient(to top, transparent 25%, ${highlightColor} 25% 75%, transparent 75%)`;
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
return styles;
|
|
148
|
-
}, {});
|
|
149
|
-
};
|
|
150
|
-
|
|
151
|
-
const blockStyleFn = (editorState, block) => {
|
|
152
|
-
var _entity$getData;
|
|
153
|
-
|
|
154
|
-
const entityKey = block.getEntityAt(0);
|
|
155
|
-
const entity = entityKey ? editorState.getCurrentContent().getEntity(entityKey) : null;
|
|
156
|
-
let result = '';
|
|
157
|
-
const blockData = block.getData();
|
|
158
|
-
|
|
159
|
-
if (blockData) {
|
|
160
|
-
const textAlign = blockData === null || blockData === void 0 ? void 0 : blockData.get('textAlign');
|
|
161
|
-
|
|
162
|
-
if (textAlign === 'center') {
|
|
163
|
-
result += 'alignCenter ';
|
|
164
|
-
} else if (textAlign === 'left') {
|
|
165
|
-
result += 'alignLeft ';
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
switch (block.getType()) {
|
|
170
|
-
case 'header-two':
|
|
171
|
-
case 'header-three':
|
|
172
|
-
case 'header-four':
|
|
173
|
-
case 'blockquote':
|
|
174
|
-
result += 'public-DraftStyleDefault-' + block.getType();
|
|
175
|
-
break;
|
|
176
|
-
|
|
177
|
-
case 'atomic':
|
|
178
|
-
if ((_entity$getData = entity.getData()) !== null && _entity$getData !== void 0 && _entity$getData.alignment) {
|
|
179
|
-
// support all atomic block to set alignment
|
|
180
|
-
result += ' ' + entity.getData().alignment;
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
break;
|
|
184
|
-
|
|
185
|
-
default:
|
|
186
|
-
break;
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
return result;
|
|
190
|
-
};
|
|
191
|
-
|
|
192
29
|
const blockRendererFn = block => {
|
|
193
30
|
const atomicBlockObj = (0, _blockRendererFn.atomicBlockRenderer)(block);
|
|
194
31
|
return atomicBlockObj;
|
|
195
32
|
};
|
|
196
33
|
|
|
197
34
|
function DraftRenderer({
|
|
198
|
-
rawContentBlock
|
|
199
|
-
insertRecommend = [],
|
|
200
|
-
contentType = _types.ValidPostContentType.NORMAL
|
|
35
|
+
rawContentBlock
|
|
201
36
|
}) {
|
|
202
|
-
|
|
203
|
-
if (!rawContentBlock || !rawContentBlock.blocks || !rawContentBlock.blocks.length) {
|
|
204
|
-
throw new Error('There is no content in rawContentBlock, please check again.');
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
let contentState; //if `rawContentBlock` data need to insert recommends, use `insertRecommendInContent` utils
|
|
208
|
-
|
|
209
|
-
if (insertRecommend.length) {
|
|
210
|
-
const contentWithRecommend = (0, _post.insertRecommendInContentBlock)(rawContentBlock, insertRecommend);
|
|
211
|
-
contentState = (0, _draftJs.convertFromRaw)(contentWithRecommend);
|
|
212
|
-
} else {
|
|
213
|
-
//if `rawContentBlock` data has no recommends, only remove empty content blocks
|
|
214
|
-
const contentRemoveEmpty = (0, _common.removeEmptyContentBlock)(rawContentBlock);
|
|
215
|
-
contentState = (0, _draftJs.convertFromRaw)(contentRemoveEmpty);
|
|
216
|
-
}
|
|
37
|
+
const contentState = (0, _draftJs.convertFromRaw)(rawContentBlock);
|
|
217
38
|
|
|
218
|
-
const editorState = _draftJs.EditorState.createWithContent(contentState,
|
|
39
|
+
const editorState = _draftJs.EditorState.createWithContent(contentState, _index.decorators);
|
|
219
40
|
|
|
220
|
-
return /*#__PURE__*/_react.default.createElement(
|
|
221
|
-
theme: _theme.default
|
|
222
|
-
}, /*#__PURE__*/_react.default.createElement(DraftEditorWrapper, {
|
|
223
|
-
contentType: contentType
|
|
224
|
-
}, /*#__PURE__*/_react.default.createElement(_draftJs.Editor, {
|
|
41
|
+
return /*#__PURE__*/_react.default.createElement(_draftJs.Editor, {
|
|
225
42
|
editorState: editorState,
|
|
226
43
|
customStyleMap: customStyleMap,
|
|
227
|
-
|
|
44
|
+
blockRenderMap: _blockRenderMap.blockRenderMap,
|
|
228
45
|
blockRendererFn: blockRendererFn,
|
|
229
|
-
customStyleFn: customStyleFn,
|
|
230
46
|
readOnly: true // eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
231
47
|
,
|
|
232
48
|
onChange: () => {}
|
|
233
|
-
})
|
|
49
|
+
});
|
|
234
50
|
}
|
|
@@ -9,7 +9,11 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
9
9
|
|
|
10
10
|
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
11
11
|
|
|
12
|
-
var
|
|
12
|
+
var _draftJs = require("draft-js");
|
|
13
|
+
|
|
14
|
+
var _blockRenderMap = require("../block-render-map");
|
|
15
|
+
|
|
16
|
+
var _index = require("../entity-decorators/index");
|
|
13
17
|
|
|
14
18
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
19
|
|
|
@@ -17,128 +21,82 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
17
21
|
|
|
18
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; }
|
|
19
23
|
|
|
20
|
-
const annotationArrow = "https://unpkg.com/@kids-reporter/draft-renderer@0.1.0/lib/public/07d1287fd390346af0c15b930148a5e4.png";
|
|
21
|
-
const annotationDefaultSpacing = 8;
|
|
22
|
-
const AnnotationText = _styledComponents.default.span`
|
|
23
|
-
${_sharedStyle.defaultLinkStyle};
|
|
24
|
-
`;
|
|
25
24
|
const AnnotationWrapper = _styledComponents.default.span`
|
|
26
25
|
display: inline-block;
|
|
27
26
|
cursor: pointer;
|
|
28
|
-
|
|
29
|
-
&:hover ${AnnotationText} {
|
|
30
|
-
border-bottom: 2px solid #04295e;
|
|
31
|
-
}
|
|
27
|
+
color: #27b5f7;
|
|
32
28
|
`;
|
|
33
29
|
const AnnotationBody = _styledComponents.default.div`
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
30
|
+
margin-bottom: 10px;
|
|
31
|
+
border-top: 2px solid #27b5f7;
|
|
32
|
+
background-color: #fff;
|
|
33
|
+
padding: 25px 25px;
|
|
34
|
+
`;
|
|
35
|
+
const ArrowIcon = _styledComponents.default.span`
|
|
36
|
+
margin-left: 3px;
|
|
41
37
|
display: inline-block;
|
|
42
|
-
|
|
43
|
-
width:
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
38
|
+
vertical-align: middle;
|
|
39
|
+
width: 18px;
|
|
40
|
+
height: 18px;
|
|
41
|
+
border-radius: 50%;
|
|
42
|
+
border-width: 1px;
|
|
43
|
+
border-style: solid;
|
|
44
|
+
position: relative;
|
|
45
|
+
top: -1px;
|
|
46
|
+
|
|
47
|
+
&::before {
|
|
48
|
+
background-color: #27b5f7;
|
|
49
|
+
content: '';
|
|
50
|
+
width: 2px;
|
|
51
|
+
height: 6.5px;
|
|
52
|
+
top: 5px;
|
|
53
|
+
right: 5px;
|
|
54
|
+
transform: ${props => props.$showContent ? 'rotate(45deg)' : 'rotate(-45deg)'};
|
|
55
|
+
display: block;
|
|
56
|
+
position: absolute;
|
|
57
|
+
transition: transform 200ms ease 0s;
|
|
50
58
|
}
|
|
51
59
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
margin-top: ${annotationDefaultSpacing}px;
|
|
64
|
-
|
|
65
|
-
> li {
|
|
66
|
-
${_sharedStyle.defaultUnorderedListStyle}
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
ol {
|
|
71
|
-
${_sharedStyle.defaultOlStyle}
|
|
72
|
-
margin-top: ${annotationDefaultSpacing}px;
|
|
73
|
-
|
|
74
|
-
> li {
|
|
75
|
-
${_sharedStyle.defaultOrderedListStyle}
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
a {
|
|
80
|
-
${_sharedStyle.defaultLinkStyle}
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
blockquote {
|
|
84
|
-
${_sharedStyle.defaultBlockQuoteStyle}
|
|
60
|
+
&::after {
|
|
61
|
+
background-color: #27b5f7;
|
|
62
|
+
content: '';
|
|
63
|
+
width: 2px;
|
|
64
|
+
height: 6.5px;
|
|
65
|
+
top: 5px;
|
|
66
|
+
left: 5px;
|
|
67
|
+
transform: ${props => props.$showContent ? 'rotate(-45deg)' : 'rotate(45deg)'};
|
|
68
|
+
display: block;
|
|
69
|
+
position: absolute;
|
|
70
|
+
transition: transform 200ms ease 0s;
|
|
85
71
|
}
|
|
86
72
|
`;
|
|
87
|
-
const ArrowIcon = _styledComponents.default.span`
|
|
88
|
-
width: 24px;
|
|
89
|
-
height: 24px;
|
|
90
|
-
background-image: url(${annotationArrow});
|
|
91
|
-
background-repeat: no-repeat;
|
|
92
|
-
background-position: center center;
|
|
93
|
-
background-size: 24px;
|
|
94
|
-
margin: auto 4px;
|
|
95
|
-
transition: transform 0.3s;
|
|
96
|
-
display: inline-flex;
|
|
97
|
-
vertical-align: text-top;
|
|
98
|
-
transform: ${props => props.showContent ? 'rotate(-180deg)' : ''};
|
|
99
|
-
`;
|
|
100
73
|
|
|
101
74
|
function AnnotationBlock(props) {
|
|
102
75
|
const {
|
|
103
76
|
children: annotated
|
|
104
77
|
} = props;
|
|
105
78
|
const [showContent, setShowContent] = (0, _react.useState)(false);
|
|
106
|
-
/**
|
|
107
|
-
* to support k5 old annotation data, check if annotation key exist
|
|
108
|
-
* k5
|
|
109
|
-
* {
|
|
110
|
-
* text: string,
|
|
111
|
-
* annotation: html string,
|
|
112
|
-
* draftRawObj: DraftBlocks
|
|
113
|
-
* }
|
|
114
|
-
* k6
|
|
115
|
-
* {
|
|
116
|
-
* bodyHTML: string,
|
|
117
|
-
* bodyEscapedHTML: string,
|
|
118
|
-
* rawContentState: DraftBlocks
|
|
119
|
-
* }
|
|
120
|
-
*/
|
|
121
|
-
|
|
122
79
|
const {
|
|
123
|
-
|
|
124
|
-
annotation
|
|
80
|
+
rawContentState
|
|
125
81
|
} = props.contentState.getEntity(props.entityKey).getData();
|
|
126
|
-
const
|
|
82
|
+
const contentState = (0, _draftJs.convertFromRaw)(rawContentState);
|
|
83
|
+
|
|
84
|
+
const editorState = _draftJs.EditorState.createWithContent(contentState, _index.decorators);
|
|
85
|
+
|
|
127
86
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(AnnotationWrapper, {
|
|
128
87
|
onClick: e => {
|
|
129
88
|
e.preventDefault();
|
|
130
89
|
setShowContent(!showContent);
|
|
131
90
|
}
|
|
132
|
-
}, /*#__PURE__*/_react.default.createElement(
|
|
133
|
-
|
|
134
|
-
},
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
}) : null);
|
|
91
|
+
}, /*#__PURE__*/_react.default.createElement("span", null, annotated), /*#__PURE__*/_react.default.createElement(ArrowIcon, {
|
|
92
|
+
$showContent: showContent
|
|
93
|
+
})), showContent ? /*#__PURE__*/_react.default.createElement(AnnotationBody, null, /*#__PURE__*/_react.default.createElement(_draftJs.Editor, {
|
|
94
|
+
editorState: editorState,
|
|
95
|
+
blockRenderMap: _blockRenderMap.blockRenderMapForAnnotation,
|
|
96
|
+
readOnly: true // eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
97
|
+
,
|
|
98
|
+
onChange: () => {}
|
|
99
|
+
})) : null);
|
|
142
100
|
}
|
|
143
101
|
|
|
144
102
|
function findAnnotationEntities(contentBlock, callback, contentState) {
|
|
@@ -3,14 +3,25 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports
|
|
6
|
+
Object.defineProperty(exports, "annotationDecorator", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _annotationDecorator.annotationDecorator;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
exports.decorators = void 0;
|
|
13
|
+
Object.defineProperty(exports, "linkDecorator", {
|
|
14
|
+
enumerable: true,
|
|
15
|
+
get: function () {
|
|
16
|
+
return _linkDecorator.linkDecorator;
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
var _draftJs = require("draft-js");
|
|
7
21
|
|
|
8
22
|
var _annotationDecorator = require("./annotation-decorator");
|
|
9
23
|
|
|
10
24
|
var _linkDecorator = require("./link-decorator");
|
|
11
25
|
|
|
12
|
-
const
|
|
13
|
-
|
|
14
|
-
linkDecorator: _linkDecorator.linkDecorator
|
|
15
|
-
};
|
|
16
|
-
exports.entityDecorators = entityDecorators;
|
|
26
|
+
const decorators = new _draftJs.CompositeDecorator([_annotationDecorator.annotationDecorator, _linkDecorator.linkDecorator]);
|
|
27
|
+
exports.decorators = decorators;
|
|
@@ -12,15 +12,12 @@ var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
|
12
12
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
13
|
|
|
14
14
|
const LinkWrapper = _styledComponents.default.a`
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
text-align: justify;
|
|
19
|
-
color: rgba(0, 9, 40, 0.87);
|
|
20
|
-
padding-bottom: 2px;
|
|
15
|
+
text-decoration: underline;
|
|
16
|
+
color: #27b5f7;
|
|
17
|
+
transition: color 0.1s ease-in;
|
|
21
18
|
|
|
22
19
|
&:hover {
|
|
23
|
-
|
|
20
|
+
color: #232323;
|
|
24
21
|
}
|
|
25
22
|
`;
|
|
26
23
|
|
package/lib/index.js
CHANGED
|
@@ -3,28 +3,53 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
Object.defineProperty(exports, "DraftRenderer", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _draftRenderer.DraftRenderer;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "atomicBlockRenderer", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () {
|
|
15
|
+
return _blockRendererFn.atomicBlockRenderer;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
Object.defineProperty(exports, "blockRenderMap", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function () {
|
|
21
|
+
return _blockRenderMap.blockRenderMap;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
Object.defineProperty(exports, "blockRenderers", {
|
|
25
|
+
enumerable: true,
|
|
26
|
+
get: function () {
|
|
27
|
+
return _blockRenderers.blockRenderers;
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
Object.defineProperty(exports, "decorators", {
|
|
31
|
+
enumerable: true,
|
|
32
|
+
get: function () {
|
|
33
|
+
return _index.decorators;
|
|
34
|
+
}
|
|
35
|
+
});
|
|
6
36
|
exports.default = void 0;
|
|
7
37
|
|
|
8
|
-
var
|
|
9
|
-
|
|
10
|
-
var _draftRenderer = _interopRequireDefault(require("./draft-renderer"));
|
|
38
|
+
var _draftRenderer = require("./draft-renderer");
|
|
11
39
|
|
|
12
|
-
var
|
|
40
|
+
var _blockRendererFn = require("./block-renderer-fn");
|
|
13
41
|
|
|
14
|
-
var
|
|
42
|
+
var _blockRenderMap = require("./block-render-map");
|
|
15
43
|
|
|
16
|
-
var
|
|
44
|
+
var _blockRenderers = require("./block-renderers");
|
|
17
45
|
|
|
18
|
-
|
|
46
|
+
var _index = require("./entity-decorators/index");
|
|
19
47
|
|
|
20
48
|
var _default = {
|
|
21
|
-
DraftRenderer: _draftRenderer.
|
|
49
|
+
DraftRenderer: _draftRenderer.DraftRenderer,
|
|
50
|
+
atomicBlockRenderer: _blockRendererFn.atomicBlockRenderer,
|
|
51
|
+
blockRenderMap: _blockRenderMap.blockRenderMap,
|
|
22
52
|
blockRenderers: _blockRenderers.blockRenderers,
|
|
23
|
-
|
|
24
|
-
hasContentInRawContentBlock: _common.hasContentInRawContentBlock,
|
|
25
|
-
removeEmptyContentBlock: _common.removeEmptyContentBlock,
|
|
26
|
-
getSideIndexEntityData: _post.getSideIndexEntityData,
|
|
27
|
-
insertRecommendInContentBlock: _post.insertRecommendInContentBlock,
|
|
28
|
-
getFirstBlockEntityType: _post.getFirstBlockEntityType
|
|
53
|
+
decorators: _index.decorators
|
|
29
54
|
};
|
|
30
55
|
exports.default = _default;
|
package/lib/theme/index.js
CHANGED
|
@@ -21,17 +21,6 @@ const theme = {
|
|
|
21
21
|
lg: `@media (min-width: ${mediaSize.lg}px)`,
|
|
22
22
|
xl: `@media (min-width: ${mediaSize.xl}px)`,
|
|
23
23
|
xxl: `@media (min-width: ${mediaSize.xxl}px)`
|
|
24
|
-
},
|
|
25
|
-
fontSize: {
|
|
26
|
-
xs: 'font-size: 14px;',
|
|
27
|
-
sm: 'font-size: 16px;',
|
|
28
|
-
md: 'font-size: 18px;',
|
|
29
|
-
lg: 'font-size: 24px;',
|
|
30
|
-
xl: 'font-size: 28px;'
|
|
31
|
-
},
|
|
32
|
-
margin: {
|
|
33
|
-
default: 'margin: 32px auto;',
|
|
34
|
-
narrow: 'margin: 16px auto;'
|
|
35
24
|
}
|
|
36
25
|
};
|
|
37
26
|
exports.theme = theme;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kids-reporter/draft-renderer",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -23,9 +23,14 @@
|
|
|
23
23
|
"license": "MIT",
|
|
24
24
|
"dependencies": {
|
|
25
25
|
"@readr-media/react-image": "1.6.0",
|
|
26
|
+
"@twreporter/core": "^1.10.0",
|
|
27
|
+
"babel-loader": "^8.2.5",
|
|
26
28
|
"body-scroll-lock": "3.1.5",
|
|
27
29
|
"draft-js": "^0.11.7",
|
|
28
|
-
"
|
|
30
|
+
"html-webpack-plugin": "^5.5.0",
|
|
31
|
+
"node-html-parser": "^6.1.5",
|
|
32
|
+
"webpack": "^5.72.1",
|
|
33
|
+
"webpack-cli": "^4.9.2"
|
|
29
34
|
},
|
|
30
35
|
"peerDependencies": {
|
|
31
36
|
"react": "18.2.0",
|
|
@@ -36,9 +41,8 @@
|
|
|
36
41
|
"lib"
|
|
37
42
|
],
|
|
38
43
|
"devDependencies": {
|
|
39
|
-
"
|
|
40
|
-
"
|
|
41
|
-
"
|
|
42
|
-
"babel-plugin-inline-react-svg": "^2.0.1"
|
|
44
|
+
"react": "18.2.0",
|
|
45
|
+
"react-dom": "18.2.0",
|
|
46
|
+
"styled-components": "5.3.5"
|
|
43
47
|
}
|
|
44
48
|
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|