@kids-reporter/draft-renderer 0.1.0 → 0.2.1

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 (51) hide show
  1. package/lib/block-render-map.js +183 -0
  2. package/lib/block-renderer-fn.js +16 -75
  3. package/lib/block-renderers/embedded-code-block.js +33 -21
  4. package/lib/block-renderers/image-block.js +90 -46
  5. package/lib/block-renderers/index.js +3 -31
  6. package/lib/block-renderers/info-box-block.js +2 -115
  7. package/lib/block-renderers/multimedia.js +127 -0
  8. package/lib/block-renderers/slideshow-block.js +574 -199
  9. package/lib/draft-renderer.js +10 -194
  10. package/lib/entity-decorators/annotation-decorator.js +58 -100
  11. package/lib/entity-decorators/index.js +17 -6
  12. package/lib/entity-decorators/link-decorator.js +4 -7
  13. package/lib/index.js +39 -14
  14. package/lib/theme/index.js +0 -11
  15. package/package.json +10 -6
  16. package/lib/assets/annotation-arrow.png +0 -0
  17. package/lib/assets/audio-pause.png +0 -0
  18. package/lib/assets/audio-play.png +0 -0
  19. package/lib/assets/citation-download.png +0 -0
  20. package/lib/assets/default-og-img.png +0 -0
  21. package/lib/assets/slideshow-arrow-down-dark.png +0 -0
  22. package/lib/assets/slideshow-arrow-down.png +0 -0
  23. package/lib/assets/slideshow-arrow-up.png +0 -0
  24. package/lib/assets/slideshow-close-cross.png +0 -0
  25. package/lib/block-renderers/audio-block.js +0 -162
  26. package/lib/block-renderers/background-image-block.js +0 -257
  27. package/lib/block-renderers/background-video-block.js +0 -272
  28. package/lib/block-renderers/color-box-block.js +0 -94
  29. package/lib/block-renderers/divider-block.js +0 -27
  30. package/lib/block-renderers/media-block.js +0 -65
  31. package/lib/block-renderers/related-post-block.js +0 -73
  32. package/lib/block-renderers/side-index-block.js +0 -49
  33. package/lib/block-renderers/table-block.js +0 -455
  34. package/lib/block-renderers/video-block.js +0 -37
  35. package/lib/components/slideshow-lightbox.js +0 -134
  36. package/lib/components/slideshow-sidebar.js +0 -148
  37. package/lib/const.js +0 -10
  38. package/lib/entity-decorator.js +0 -18
  39. package/lib/public/07d1287fd390346af0c15b930148a5e4.png +0 -0
  40. package/lib/public/5b3cb1a908786c8750f1041860699cc1.png +0 -0
  41. package/lib/public/679d63b1846e81ada28c2f76edbd2931.png +0 -0
  42. package/lib/public/722f90c535fa64c27555ec6ee5f22393.png +0 -0
  43. package/lib/public/903cf84ef5c5ad76634c30bdc0ff8c49.png +0 -0
  44. package/lib/public/dc249b3412c5af890a004508287a3c3d.png +0 -0
  45. package/lib/public/dd45f0788d9c70cabe72430bf08e7413.png +0 -0
  46. package/lib/public/f96d4b486ba2061c460962ae694f4670.png +0 -0
  47. package/lib/shared-style/content-type.js +0 -163
  48. package/lib/shared-style/index.js +0 -108
  49. package/lib/types/index.js +0 -32
  50. package/lib/utils/common.js +0 -44
  51. package/lib/utils/post.js +0 -147
@@ -1,94 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.ColorBoxBlock = ColorBoxBlock;
7
-
8
- var _react = _interopRequireDefault(require("react"));
9
-
10
- var _styledComponents = _interopRequireDefault(require("styled-components"));
11
-
12
- var _sharedStyle = require("../shared-style");
13
-
14
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
-
16
- const colorBoxDefaultSpacing = 32;
17
- const ColorBoxRenderWrapper = _styledComponents.default.div`
18
- background-color: ${props => props.color ? props.color : ' #FFFFFF'};
19
- padding: 12px 24px;
20
- position: relative;
21
- color: #000928;
22
- ${({
23
- theme
24
- }) => theme.margin.default};
25
-
26
- > div > * + * {
27
- margin: ${colorBoxDefaultSpacing}px 0 0;
28
- min-height: 0.01px; //to make margins between paragraphs effective
29
- }
30
-
31
- h2 {
32
- ${_sharedStyle.defaultH2Style}
33
- }
34
-
35
- ul {
36
- ${_sharedStyle.defaultUlStyle}
37
- margin-top: ${colorBoxDefaultSpacing}px;
38
-
39
- > li {
40
- ${_sharedStyle.defaultUnorderedListStyle}
41
-
42
- & + li {
43
- margin: ${colorBoxDefaultSpacing / 2}px 0 0;
44
- }
45
- }
46
- }
47
-
48
- ol {
49
- ${_sharedStyle.defaultOlStyle}
50
- margin-top: ${colorBoxDefaultSpacing}px;
51
-
52
- > li {
53
- ${_sharedStyle.defaultOrderedListStyle}
54
-
55
- & + li {
56
- margin: ${colorBoxDefaultSpacing / 2}px 0 0;
57
- }
58
- }
59
- }
60
-
61
- a {
62
- ${_sharedStyle.defaultLinkStyle}
63
- }
64
-
65
- blockquote {
66
- ${_sharedStyle.defaultBlockQuoteStyle}
67
- }
68
-
69
- ${({
70
- theme
71
- }) => theme.breakpoint.md} {
72
- padding: 16px 32px;
73
- }
74
- `;
75
-
76
- function ColorBoxBlock(props) {
77
- const {
78
- block,
79
- contentState
80
- } = props;
81
- const entityKey = block.getEntityAt(0);
82
- const entity = contentState.getEntity(entityKey);
83
- const {
84
- color,
85
- body
86
- } = entity.getData();
87
- return /*#__PURE__*/_react.default.createElement(ColorBoxRenderWrapper, {
88
- color: color
89
- }, /*#__PURE__*/_react.default.createElement("div", {
90
- dangerouslySetInnerHTML: {
91
- __html: body
92
- }
93
- }));
94
- }
@@ -1,27 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.DividerBlock = void 0;
7
-
8
- var _react = _interopRequireDefault(require("react"));
9
-
10
- var _styledComponents = _interopRequireDefault(require("styled-components"));
11
-
12
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
-
14
- const Divider = _styledComponents.default.hr`
15
- box-sizing: border-box;
16
- border-width: 1px;
17
- border-style: inset;
18
- ${({
19
- theme
20
- }) => theme.margin.default};
21
- `;
22
-
23
- const DividerBlock = () => {
24
- return /*#__PURE__*/_react.default.createElement(Divider, null);
25
- };
26
-
27
- exports.DividerBlock = DividerBlock;
@@ -1,65 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.MediaBlock = void 0;
7
-
8
- var _react = _interopRequireDefault(require("react"));
9
-
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
-
12
- const styles = {
13
- media: {
14
- width: '100%'
15
- }
16
- };
17
-
18
- const Audio = props => {
19
- return /*#__PURE__*/_react.default.createElement("audio", {
20
- controls: true,
21
- src: props.src,
22
- style: styles.media
23
- });
24
- };
25
-
26
- const Image = props => {
27
- return /*#__PURE__*/_react.default.createElement("img", {
28
- src: props.src,
29
- style: styles.media
30
- });
31
- };
32
-
33
- const Video = props => {
34
- return /*#__PURE__*/_react.default.createElement("video", {
35
- controls: true,
36
- src: props.src,
37
- style: styles.media
38
- });
39
- };
40
-
41
- const MediaBlock = entity => {
42
- const {
43
- src
44
- } = entity.getData();
45
- const type = entity.getType();
46
- let media;
47
-
48
- if (type === 'audioLink') {
49
- media = /*#__PURE__*/_react.default.createElement(Audio, {
50
- src: src
51
- });
52
- } else if (type === 'imageLink') {
53
- media = /*#__PURE__*/_react.default.createElement(Image, {
54
- src: src
55
- });
56
- } else if (type === 'videoLink') {
57
- media = /*#__PURE__*/_react.default.createElement(Video, {
58
- src: src
59
- });
60
- }
61
-
62
- return media;
63
- };
64
-
65
- exports.MediaBlock = MediaBlock;
@@ -1,73 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.RelatedPostBlock = RelatedPostBlock;
7
-
8
- var _react = _interopRequireDefault(require("react"));
9
-
10
- var _styledComponents = _interopRequireDefault(require("styled-components"));
11
-
12
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
-
14
- const RelatedPostWrapper = _styledComponents.default.div`
15
- display: flex;
16
- flex-direction: column;
17
- width: 100%;
18
- border: 2px solid #04295e;
19
- border-width: 2px 2px 2px 12px;
20
- padding: 16px;
21
- ${({
22
- theme
23
- }) => theme.margin.default};
24
-
25
- ${({
26
- theme
27
- }) => theme.breakpoint.md} {
28
- padding: 24px;
29
- }
30
- `;
31
- const RelatedPostTitle = _styledComponents.default.p`
32
- color: #04295e;
33
- font-size: 14px;
34
- line-height: 20px;
35
- margin: 0 0 -8px;
36
- ${({
37
- theme
38
- }) => theme.breakpoint.md} {
39
- font-size: 16px;
40
- line-height: 23px;
41
- }
42
- `;
43
- const RelatedPostItem = _styledComponents.default.div`
44
- display: flex;
45
- `;
46
- const RelatedPostAnchorWrapper = _styledComponents.default.a`
47
- text-decoration: none;
48
- display: inline-block;
49
- margin: 12px 0 0;
50
-
51
- &:hover span {
52
- border-bottom: 2px solid #04295e;
53
- }
54
- `;
55
- const RelatedPost = _styledComponents.default.span`
56
- color: rgba(0, 9, 40, 0.87);
57
- font-size: 18px;
58
- line-height: 1.6;
59
- border-bottom: 2px solid #ebf02c;
60
- padding-bottom: 2px;
61
- `;
62
-
63
- function RelatedPostBlock(entity) {
64
- const {
65
- posts
66
- } = entity.getData();
67
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(RelatedPostWrapper, null, /*#__PURE__*/_react.default.createElement(RelatedPostTitle, null, "\u63A8\u85A6\u95B1\u8B80"), posts.map(post => /*#__PURE__*/_react.default.createElement(RelatedPostItem, {
68
- key: post.id
69
- }, /*#__PURE__*/_react.default.createElement(RelatedPostAnchorWrapper, {
70
- href: `/post/${post.id}`,
71
- target: "_blank"
72
- }, /*#__PURE__*/_react.default.createElement(RelatedPost, null, post.name))))));
73
- }
@@ -1,49 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.SideIndexBlock = SideIndexBlock;
7
-
8
- var _react = _interopRequireDefault(require("react"));
9
-
10
- var _styledComponents = _interopRequireDefault(require("styled-components"));
11
-
12
- var _sharedStyle = require("../shared-style");
13
-
14
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
-
16
- const sideIndexDefaultSpacing = 32;
17
- const SideIndexBlockWrapper = _styledComponents.default.div`
18
- margin-top: ${sideIndexDefaultSpacing}px;
19
-
20
- h2 {
21
- ${_sharedStyle.defaultH2Style}
22
- }
23
- `;
24
-
25
- function SideIndexBlock(props) {
26
- const {
27
- block,
28
- contentState
29
- } = props;
30
- const entityKey = block.getEntityAt(0);
31
- const entity = contentState.getEntity(entityKey);
32
- const {
33
- h2Text,
34
- sideIndexText
35
- } = entity.getData();
36
- const sideIndexTitle = sideIndexText || h2Text || '';
37
- const key = sideIndexTitle.replace(/\s+/g, '');
38
- let sideIndexBlock;
39
-
40
- if (h2Text) {
41
- sideIndexBlock = /*#__PURE__*/_react.default.createElement(SideIndexBlockWrapper, {
42
- id: `header-${key}`
43
- }, /*#__PURE__*/_react.default.createElement("h2", null, h2Text));
44
- } else {
45
- sideIndexBlock = null;
46
- }
47
-
48
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, sideIndexBlock);
49
- }