@botonic/react 1.0.0-dev.1 → 1.0.0-dev.2

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 (116) hide show
  1. package/lib/components/button.js +2 -0
  2. package/lib/components/button.js.map +1 -1
  3. package/lib/components/components.js +1 -1
  4. package/lib/components/image.js +47 -5
  5. package/lib/components/image.js.map +1 -1
  6. package/lib/components/index.js +6 -6
  7. package/lib/components/markdown.js +1 -1
  8. package/lib/components/multichannel/multichannel-utils.js +8 -6
  9. package/lib/components/multichannel/multichannel-utils.js.map +1 -1
  10. package/lib/components/timestamps.js +1 -1
  11. package/lib/constants.js +2 -1
  12. package/lib/constants.js.map +1 -1
  13. package/lib/dev-app.js +7 -6
  14. package/lib/dev-app.js.map +1 -1
  15. package/lib/index.d.ts +3 -0
  16. package/lib/index.js +20 -20
  17. package/lib/message-utils.js +1 -1
  18. package/lib/util/dom.js +8 -2
  19. package/lib/util/dom.js.map +1 -1
  20. package/lib/util/environment.js +1 -1
  21. package/lib/util/objects.js +1 -1
  22. package/lib/util/react.js +1 -1
  23. package/lib/util/webchat.js +1 -1
  24. package/lib/webchat/actions.js +3 -1
  25. package/lib/webchat/actions.js.map +1 -1
  26. package/lib/webchat/devices/device-adapter.js +14 -4
  27. package/lib/webchat/devices/device-adapter.js.map +1 -1
  28. package/lib/webchat/devices/scrollbar-controller.js +5 -3
  29. package/lib/webchat/devices/scrollbar-controller.js.map +1 -1
  30. package/lib/webchat/header.js +1 -1
  31. package/lib/webchat/hooks.js +14 -4
  32. package/lib/webchat/hooks.js.map +1 -1
  33. package/lib/webchat/index.js +1 -1
  34. package/lib/webchat/webchat-reducer.js +6 -0
  35. package/lib/webchat/webchat-reducer.js.map +1 -1
  36. package/lib/webchat/webchat.js +21 -4
  37. package/lib/webchat/webchat.js.map +1 -1
  38. package/lib/webchat/webview.js +1 -1
  39. package/lib/webchat-app.js +20 -9
  40. package/lib/webchat-app.js.map +1 -1
  41. package/package.json +6 -6
  42. package/src/components/button.jsx +2 -0
  43. package/src/dev-app.jsx +8 -3
  44. package/src/experimental/components/custom-message.jsx +2 -1
  45. package/src/experimental/components/message.jsx +14 -7
  46. package/src/experimental/constants.js +189 -0
  47. package/src/experimental/contexts.jsx +36 -0
  48. package/src/experimental/dev-app.jsx +14 -7
  49. package/src/experimental/index.js +32 -20
  50. package/src/experimental/msg-to-botonic.jsx +9 -9
  51. package/src/experimental/react-bot.jsx +1 -1
  52. package/src/experimental/util/dom.js +55 -0
  53. package/src/experimental/util/objects.js +39 -0
  54. package/src/experimental/util/webchat.js +61 -0
  55. package/src/experimental/webchat/actions.jsx +24 -0
  56. package/src/experimental/webchat/hooks.js +296 -0
  57. package/src/experimental/webchat/messages-reducer.js +86 -0
  58. package/src/experimental/webchat/session-view.jsx +166 -0
  59. package/src/experimental/webchat/webchat-dev.jsx +23 -19
  60. package/src/experimental/webchat/webchat-reducer.js +68 -0
  61. package/src/experimental/webchat/webchat.jsx +107 -75
  62. package/src/experimental/webchat-app.jsx +34 -15
  63. package/src/index.d.ts +1 -0
  64. package/src/util/dom.js +5 -3
  65. package/src/webchat/devices/device-adapter.js +16 -4
  66. package/src/webchat/devices/scrollbar-controller.js +9 -4
  67. package/src/webchat/webchat.jsx +2 -1
  68. package/src/webchat-app.jsx +6 -4
  69. package/lib/experimental/components/audio.js +0 -46
  70. package/lib/experimental/components/audio.js.map +0 -1
  71. package/lib/experimental/components/carousel.js +0 -194
  72. package/lib/experimental/components/carousel.js.map +0 -1
  73. package/lib/experimental/components/custom-message.js +0 -132
  74. package/lib/experimental/components/custom-message.js.map +0 -1
  75. package/lib/experimental/components/document.js +0 -69
  76. package/lib/experimental/components/document.js.map +0 -1
  77. package/lib/experimental/components/image.js +0 -47
  78. package/lib/experimental/components/image.js.map +0 -1
  79. package/lib/experimental/components/index.js +0 -184
  80. package/lib/experimental/components/index.js.map +0 -1
  81. package/lib/experimental/components/location.js +0 -54
  82. package/lib/experimental/components/location.js.map +0 -1
  83. package/lib/experimental/components/markdown.js +0 -103
  84. package/lib/experimental/components/markdown.js.map +0 -1
  85. package/lib/experimental/components/message.js +0 -353
  86. package/lib/experimental/components/message.js.map +0 -1
  87. package/lib/experimental/components/text.js +0 -80
  88. package/lib/experimental/components/text.js.map +0 -1
  89. package/lib/experimental/components/video.js +0 -49
  90. package/lib/experimental/components/video.js.map +0 -1
  91. package/lib/experimental/components/whatsapp-template.js +0 -53
  92. package/lib/experimental/components/whatsapp-template.js.map +0 -1
  93. package/lib/experimental/dev-app.js +0 -240
  94. package/lib/experimental/dev-app.js.map +0 -1
  95. package/lib/experimental/index.js +0 -1022
  96. package/lib/experimental/index.js.map +0 -1
  97. package/lib/experimental/msg-to-botonic.js +0 -162
  98. package/lib/experimental/msg-to-botonic.js.map +0 -1
  99. package/lib/experimental/node-app.js +0 -97
  100. package/lib/experimental/node-app.js.map +0 -1
  101. package/lib/experimental/react-bot.js +0 -167
  102. package/lib/experimental/react-bot.js.map +0 -1
  103. package/lib/experimental/webchat/assets/Inter-VariableFont_slnt,wght.ttf +0 -0
  104. package/lib/experimental/webchat/assets/botonic-logo-white.svg +0 -16
  105. package/lib/experimental/webchat/assets/messenger.svg +0 -10
  106. package/lib/experimental/webchat/assets/open-new-window.svg +0 -3
  107. package/lib/experimental/webchat/assets/open.svg +0 -3
  108. package/lib/experimental/webchat/assets/telegram.svg +0 -10
  109. package/lib/experimental/webchat/assets/webchat.svg +0 -21
  110. package/lib/experimental/webchat/assets/whatsapp.svg +0 -4
  111. package/lib/experimental/webchat/webchat-dev.js +0 -300
  112. package/lib/experimental/webchat/webchat-dev.js.map +0 -1
  113. package/lib/experimental/webchat/webchat.js +0 -1051
  114. package/lib/experimental/webchat/webchat.js.map +0 -1
  115. package/lib/experimental/webchat-app.js +0 -642
  116. package/lib/experimental/webchat-app.js.map +0 -1
@@ -1,184 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- var _exportNames = {
7
- Button: true,
8
- Element: true,
9
- MessageTemplate: true,
10
- Pic: true,
11
- Reply: true,
12
- ShareButton: true,
13
- Subtitle: true,
14
- Title: true,
15
- WebchatSettings: true,
16
- Audio: true,
17
- Carousel: true,
18
- customMessage: true,
19
- Document: true,
20
- Image: true,
21
- Location: true,
22
- Text: true,
23
- Video: true,
24
- WhatsappTemplate: true
25
- };
26
- Object.defineProperty(exports, "Button", {
27
- enumerable: true,
28
- get: function get() {
29
- return _button.Button;
30
- }
31
- });
32
- Object.defineProperty(exports, "Element", {
33
- enumerable: true,
34
- get: function get() {
35
- return _element.Element;
36
- }
37
- });
38
- Object.defineProperty(exports, "MessageTemplate", {
39
- enumerable: true,
40
- get: function get() {
41
- return _messageTemplate.MessageTemplate;
42
- }
43
- });
44
- Object.defineProperty(exports, "Pic", {
45
- enumerable: true,
46
- get: function get() {
47
- return _pic.Pic;
48
- }
49
- });
50
- Object.defineProperty(exports, "Reply", {
51
- enumerable: true,
52
- get: function get() {
53
- return _reply.Reply;
54
- }
55
- });
56
- Object.defineProperty(exports, "ShareButton", {
57
- enumerable: true,
58
- get: function get() {
59
- return _shareButton.ShareButton;
60
- }
61
- });
62
- Object.defineProperty(exports, "Subtitle", {
63
- enumerable: true,
64
- get: function get() {
65
- return _subtitle.Subtitle;
66
- }
67
- });
68
- Object.defineProperty(exports, "Title", {
69
- enumerable: true,
70
- get: function get() {
71
- return _title.Title;
72
- }
73
- });
74
- Object.defineProperty(exports, "WebchatSettings", {
75
- enumerable: true,
76
- get: function get() {
77
- return _webchatSettings.WebchatSettings;
78
- }
79
- });
80
- Object.defineProperty(exports, "Audio", {
81
- enumerable: true,
82
- get: function get() {
83
- return _audio.Audio;
84
- }
85
- });
86
- Object.defineProperty(exports, "Carousel", {
87
- enumerable: true,
88
- get: function get() {
89
- return _carousel.Carousel;
90
- }
91
- });
92
- Object.defineProperty(exports, "customMessage", {
93
- enumerable: true,
94
- get: function get() {
95
- return _customMessage.customMessage;
96
- }
97
- });
98
- Object.defineProperty(exports, "Document", {
99
- enumerable: true,
100
- get: function get() {
101
- return _document.Document;
102
- }
103
- });
104
- Object.defineProperty(exports, "Image", {
105
- enumerable: true,
106
- get: function get() {
107
- return _image.Image;
108
- }
109
- });
110
- Object.defineProperty(exports, "Location", {
111
- enumerable: true,
112
- get: function get() {
113
- return _location.Location;
114
- }
115
- });
116
- Object.defineProperty(exports, "Text", {
117
- enumerable: true,
118
- get: function get() {
119
- return _text.Text;
120
- }
121
- });
122
- Object.defineProperty(exports, "Video", {
123
- enumerable: true,
124
- get: function get() {
125
- return _video.Video;
126
- }
127
- });
128
- Object.defineProperty(exports, "WhatsappTemplate", {
129
- enumerable: true,
130
- get: function get() {
131
- return _whatsappTemplate.WhatsappTemplate;
132
- }
133
- });
134
-
135
- var _button = require("../../components/button");
136
-
137
- var _element = require("../../components/element");
138
-
139
- var _messageTemplate = require("../../components/message-template");
140
-
141
- var _multichannel = require("../../components/multichannel");
142
-
143
- Object.keys(_multichannel).forEach(function (key) {
144
- if (key === "default" || key === "__esModule") return;
145
- if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
146
- if (key in exports && exports[key] === _multichannel[key]) return;
147
- Object.defineProperty(exports, key, {
148
- enumerable: true,
149
- get: function get() {
150
- return _multichannel[key];
151
- }
152
- });
153
- });
154
-
155
- var _pic = require("../../components/pic");
156
-
157
- var _reply = require("../../components/reply");
158
-
159
- var _shareButton = require("../../components/share-button");
160
-
161
- var _subtitle = require("../../components/subtitle");
162
-
163
- var _title = require("../../components/title");
164
-
165
- var _webchatSettings = require("../../components/webchat-settings");
166
-
167
- var _audio = require("./audio");
168
-
169
- var _carousel = require("./carousel");
170
-
171
- var _customMessage = require("./custom-message");
172
-
173
- var _document = require("./document");
174
-
175
- var _image = require("./image");
176
-
177
- var _location = require("./location");
178
-
179
- var _text = require("./text");
180
-
181
- var _video = require("./video");
182
-
183
- var _whatsappTemplate = require("./whatsapp-template");
184
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/experimental/components/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAGA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA","sourcesContent":["export { Button } from '../../components/button'\nexport { Element } from '../../components/element'\nexport { MessageTemplate } from '../../components/message-template'\nexport * from '../../components/multichannel'\nexport { Pic } from '../../components/pic'\nexport { Reply } from '../../components/reply'\nexport { ShareButton } from '../../components/share-button'\nexport { Subtitle } from '../../components/subtitle'\nexport { Title } from '../../components/title'\nexport { WebchatSettings } from '../../components/webchat-settings'\n\n// Experimental\nexport { Audio } from './audio'\nexport { Carousel } from './carousel'\nexport { customMessage } from './custom-message'\nexport { Document } from './document'\nexport { Image } from './image'\nexport { Location } from './location'\nexport { Text } from './text'\nexport { Video } from './video'\nexport { WhatsappTemplate } from './whatsapp-template'\n"],"file":"index.js"}
@@ -1,54 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.Location = void 0;
9
-
10
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
-
12
- var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
13
-
14
- var _core = require("@botonic/core");
15
-
16
- var _react = _interopRequireDefault(require("react"));
17
-
18
- var _styledComponents = _interopRequireDefault(require("styled-components"));
19
-
20
- var _react2 = require("../../util/react");
21
-
22
- var _message = require("./message");
23
-
24
- var _templateObject;
25
-
26
- var Link = _styledComponents["default"].a(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n text-decoration: none;\n font-weight: bold;\n target: blank;\n"])));
27
-
28
- var serialize = function serialize(locationProps) {
29
- return {
30
- lat: locationProps.lat,
31
- "long": locationProps["long"]
32
- };
33
- };
34
-
35
- var Location = function Location(props) {
36
- var lat = parseFloat(props.lat);
37
-
38
- var _long = parseFloat(props["long"]);
39
-
40
- var locationUrl = "https://www.google.com/maps/search/?api=1&query=".concat(lat, ",").concat(_long);
41
- return /*#__PURE__*/_react["default"].createElement(_message.Message, (0, _extends2["default"])({
42
- json: serialize(props)
43
- }, props, {
44
- type: _core.INPUT.LOCATION
45
- }), (0, _core.isBrowser)() ? /*#__PURE__*/_react["default"].createElement(Link, {
46
- href: locationUrl,
47
- target: "_blank",
48
- rel: "noopener noreferrer"
49
- }, props.text || 'Open Location') : /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("lat", null, lat), /*#__PURE__*/_react["default"].createElement("long", null, _long)));
50
- };
51
-
52
- exports.Location = Location;
53
- Location.serialize = serialize;
54
- //# sourceMappingURL=location.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/experimental/components/location.jsx"],"names":["Link","styled","a","serialize","locationProps","lat","Location","props","parseFloat","long","locationUrl","INPUT","LOCATION","text"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;AACA;;;;AAEA,IAAMA,IAAI,GAAGC,6BAAOC,CAAV,0JAAV;;AAMA,IAAMC,SAAS,GAAG,SAAZA,SAAY,CAAAC,aAAa,EAAI;AACjC,SAAO;AAAEC,IAAAA,GAAG,EAAED,aAAa,CAACC,GAArB;AAA0B,YAAMD,aAAa;AAA7C,GAAP;AACD,CAFD;;AAIO,IAAME,QAAQ,GAAG,SAAXA,QAAW,CAAAC,KAAK,EAAI;AAC/B,MAAMF,GAAG,GAAGG,UAAU,CAACD,KAAK,CAACF,GAAP,CAAtB;;AACA,MAAMI,KAAI,GAAGD,UAAU,CAACD,KAAK,QAAN,CAAvB;;AACA,MAAMG,WAAW,6DAAsDL,GAAtD,cAA6DI,KAA7D,CAAjB;AACA,sBACE,gCAAC,gBAAD;AAAS,IAAA,IAAI,EAAEN,SAAS,CAACI,KAAD;AAAxB,KAAqCA,KAArC;AAA4C,IAAA,IAAI,EAAEI,YAAMC;AAAxD,MACG,sCACC,gCAAC,IAAD;AAAM,IAAA,IAAI,EAAEF,WAAZ;AAAyB,IAAA,MAAM,EAAC,QAAhC;AAAyC,IAAA,GAAG,EAAC;AAA7C,KACGH,KAAK,CAACM,IAAN,IAAc,eADjB,CADD,gBAKC,+EACE,6CAAMR,GAAN,CADF,eAEE,8CAAOI,KAAP,CAFF,CANJ,CADF;AAcD,CAlBM;;;AAoBPH,QAAQ,CAACH,SAAT,GAAqBA,SAArB","sourcesContent":["import { INPUT, isBrowser } from '@botonic/core'\nimport React from 'react'\nimport styled from 'styled-components'\n\nimport { renderComponent } from '../../util/react'\nimport { Message } from './message'\n\nconst Link = styled.a`\n text-decoration: none;\n font-weight: bold;\n target: blank;\n`\n\nconst serialize = locationProps => {\n return { lat: locationProps.lat, long: locationProps.long }\n}\n\nexport const Location = props => {\n const lat = parseFloat(props.lat)\n const long = parseFloat(props.long)\n const locationUrl = `https://www.google.com/maps/search/?api=1&query=${lat},${long}`\n return (\n <Message json={serialize(props)} {...props} type={INPUT.LOCATION}>\n {isBrowser() ? (\n <Link href={locationUrl} target='_blank' rel='noopener noreferrer'>\n {props.text || 'Open Location'}\n </Link>\n ) : (\n <>\n <lat>{lat}</lat>\n <long>{long}</long>\n </>\n )}\n </Message>\n )\n}\n\nLocation.serialize = serialize\n"],"file":"location.js"}
@@ -1,103 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.getDefaultMarkdownStyle = exports.getMarkdownStyle = exports.toMarkdownChildren = exports.serializeMarkdown = exports.renderLinks = exports.renderMarkdown = exports.ESCAPED_LINE_BREAK = void 0;
9
-
10
- var _markdownIt = _interopRequireDefault(require("markdown-it"));
11
-
12
- var BR_STRING_TAG = '<br/>';
13
- var BR_STRING_TAG_REGEX = new RegExp('<br\\s*/?>', 'g');
14
- var ESCAPED_LINE_BREAK = '&lt;br&gt;';
15
- exports.ESCAPED_LINE_BREAK = ESCAPED_LINE_BREAK;
16
- var ESCAPED_LINE_BREAK_REGEX = new RegExp(ESCAPED_LINE_BREAK, 'g');
17
-
18
- var isLineBreakElement = function isLineBreakElement(element) {
19
- return element.type === 'br';
20
- };
21
-
22
- var withLinksTarget = function withLinksTarget(renderer) {
23
- var target = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '_blank';
24
-
25
- // Support opening links in new tabs: https://github.com/markdown-it/markdown-it/blob/master/docs/architecture.md#renderer
26
- var newRenderer = renderer.renderer.rules.link_open || function (tokens, idx, options, env, self) {
27
- return self.renderToken(tokens, idx, options);
28
- };
29
-
30
- renderer.renderer.rules.link_open = function (tokens, idx, options, env, self) {
31
- var aIndex = tokens[idx].attrIndex('target');
32
- if (aIndex < 0) tokens[idx].attrPush(['target', target]);else tokens[idx].attrs[aIndex][1] = target;
33
- return newRenderer(tokens, idx, options, env, self);
34
- };
35
- };
36
-
37
- var configureLinksRenderer = function configureLinksRenderer() {
38
- // zero preset comes with all options disabled, only enabling links
39
- var linksRenderer = new _markdownIt["default"]('zero', {
40
- linkify: true
41
- }).enable(['linkify']);
42
- withLinksTarget(linksRenderer);
43
- return linksRenderer;
44
- };
45
-
46
- var configureMarkdownRenderer = function configureMarkdownRenderer() {
47
- var markdownRenderer = new _markdownIt["default"]({
48
- html: true,
49
- linkify: true,
50
- typographer: true
51
- });
52
- withLinksTarget(markdownRenderer);
53
- return markdownRenderer;
54
- };
55
-
56
- var markdownRenderer = configureMarkdownRenderer();
57
-
58
- var renderMarkdown = function renderMarkdown(text) {
59
- return markdownRenderer.render(text);
60
- };
61
-
62
- exports.renderMarkdown = renderMarkdown;
63
- var linksRenderer = configureLinksRenderer();
64
-
65
- var renderLinks = function renderLinks(text) {
66
- return linksRenderer.render(text);
67
- };
68
-
69
- exports.renderLinks = renderLinks;
70
-
71
- var serializeMarkdown = function serializeMarkdown(children) {
72
- children = Array.isArray(children) ? children : [children];
73
- var text = children.filter(function (e) {
74
- return isLineBreakElement(e) || !e.type;
75
- }).map(function (e) {
76
- if (Array.isArray(e)) return serializeMarkdown(e);
77
- if (isLineBreakElement(e)) return ESCAPED_LINE_BREAK;else return String(e).replace(BR_STRING_TAG_REGEX, ESCAPED_LINE_BREAK);
78
- }).join('');
79
- return text;
80
- };
81
-
82
- exports.serializeMarkdown = serializeMarkdown;
83
-
84
- var toMarkdownChildren = function toMarkdownChildren(children) {
85
- return children.map(function (e) {
86
- return isLineBreakElement(e) ? ESCAPED_LINE_BREAK : e;
87
- });
88
- };
89
-
90
- exports.toMarkdownChildren = toMarkdownChildren;
91
-
92
- var getMarkdownStyle = function getMarkdownStyle(getThemeFn, defaultColor) {
93
- return getThemeFn('markdownStyle', getDefaultMarkdownStyle(defaultColor));
94
- };
95
-
96
- exports.getMarkdownStyle = getMarkdownStyle;
97
-
98
- var getDefaultMarkdownStyle = function getDefaultMarkdownStyle(color) {
99
- return "\n*{\n margin: 0px;\n}\n\na {\n text-decoration:none;\n}\n\na:link{\n color:".concat(color, "; \n}\n\na:visited {\n color:").concat(color, ";\n}\n\na:hover {\n text-shadow: 0px 1px black;\n}\n\nblockquote {\n margin: 0;\n padding-left: 1.4rem;\n border-left: 4px solid #dadada; \n}\n\npre code {\n margin: 0;\n padding: 0;\n white-space: pre;\n border: none;\n background: transparent; \n}\n\npre {\n background-color: #f8f8f8;\n border: 1px solid #cccccc;\n font-size: 13px;\n line-height: 19px;\n overflow: auto;\n padding: 6px 10px;\n border-radius: 3px; \n}\n\ncode, tt {\n margin: 0 2px;\n padding: 0 5px;\n white-space: nowrap;\n border: 1px solid #eaeaea;\n background-color: #f8f8f8;\n border-radius: 3px; \n}\n\npre {\n background-color: #f8f8f8;\n border: 1px solid #cccccc;\n font-size: 13px;\n line-height: 19px;\n overflow: auto;\n padding: 6px 10px;\n border-radius: 3px; \n}\n\npre code, pre tt {\n background-color: transparent;\n border: none; \n}\n \ntable, td, th {\n border: 1px solid black;\n padding:10px;\n}\n");
100
- };
101
-
102
- exports.getDefaultMarkdownStyle = getDefaultMarkdownStyle;
103
- //# sourceMappingURL=markdown.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/experimental/components/markdown.js"],"names":["BR_STRING_TAG","BR_STRING_TAG_REGEX","RegExp","ESCAPED_LINE_BREAK","ESCAPED_LINE_BREAK_REGEX","isLineBreakElement","element","type","withLinksTarget","renderer","target","newRenderer","rules","link_open","tokens","idx","options","env","self","renderToken","aIndex","attrIndex","attrPush","attrs","configureLinksRenderer","linksRenderer","MarkdownIt","linkify","enable","configureMarkdownRenderer","markdownRenderer","html","typographer","renderMarkdown","text","render","renderLinks","serializeMarkdown","children","Array","isArray","filter","e","map","String","replace","join","toMarkdownChildren","getMarkdownStyle","getThemeFn","defaultColor","getDefaultMarkdownStyle","color"],"mappings":"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","sourcesContent":["import MarkdownIt from 'markdown-it'\n\nconst BR_STRING_TAG = '<br/>'\nconst BR_STRING_TAG_REGEX = new RegExp('<br\\\\s*/?>', 'g')\nexport const ESCAPED_LINE_BREAK = '&lt;br&gt;'\nconst ESCAPED_LINE_BREAK_REGEX = new RegExp(ESCAPED_LINE_BREAK, 'g')\nconst isLineBreakElement = element => element.type === 'br'\n\nconst withLinksTarget = (renderer, target = '_blank') => {\n // Support opening links in new tabs: https://github.com/markdown-it/markdown-it/blob/master/docs/architecture.md#renderer\n const newRenderer =\n renderer.renderer.rules.link_open ||\n function (tokens, idx, options, env, self) {\n return self.renderToken(tokens, idx, options)\n }\n renderer.renderer.rules.link_open = function (\n tokens,\n idx,\n options,\n env,\n self\n ) {\n const aIndex = tokens[idx].attrIndex('target')\n if (aIndex < 0) tokens[idx].attrPush(['target', target])\n else tokens[idx].attrs[aIndex][1] = target\n return newRenderer(tokens, idx, options, env, self)\n }\n}\n\nconst configureLinksRenderer = () => {\n // zero preset comes with all options disabled, only enabling links\n const linksRenderer = new MarkdownIt('zero', {\n linkify: true,\n }).enable(['linkify'])\n withLinksTarget(linksRenderer)\n return linksRenderer\n}\n\nconst configureMarkdownRenderer = () => {\n const markdownRenderer = new MarkdownIt({\n html: true,\n linkify: true,\n typographer: true,\n })\n withLinksTarget(markdownRenderer)\n return markdownRenderer\n}\n\nconst markdownRenderer = configureMarkdownRenderer()\nexport const renderMarkdown = text => markdownRenderer.render(text)\n\nconst linksRenderer = configureLinksRenderer()\nexport const renderLinks = text => {\n return linksRenderer.render(text)\n}\n\nexport const serializeMarkdown = children => {\n children = Array.isArray(children) ? children : [children]\n const text = children\n .filter(e => isLineBreakElement(e) || !e.type)\n .map(e => {\n if (Array.isArray(e)) return serializeMarkdown(e)\n if (isLineBreakElement(e)) return ESCAPED_LINE_BREAK\n else return String(e).replace(BR_STRING_TAG_REGEX, ESCAPED_LINE_BREAK)\n })\n .join('')\n return text\n}\n\nexport const toMarkdownChildren = children =>\n children.map(e => (isLineBreakElement(e) ? ESCAPED_LINE_BREAK : e))\n\nexport const getMarkdownStyle = (getThemeFn, defaultColor) =>\n getThemeFn('markdownStyle', getDefaultMarkdownStyle(defaultColor))\n\nexport const getDefaultMarkdownStyle = color => `\n*{\n margin: 0px;\n}\n\na {\n text-decoration:none;\n}\n\na:link{\n color:${color}; \n}\n\na:visited {\n color:${color};\n}\n\na:hover {\n text-shadow: 0px 1px black;\n}\n\nblockquote {\n margin: 0;\n padding-left: 1.4rem;\n border-left: 4px solid #dadada; \n}\n\npre code {\n margin: 0;\n padding: 0;\n white-space: pre;\n border: none;\n background: transparent; \n}\n\npre {\n background-color: #f8f8f8;\n border: 1px solid #cccccc;\n font-size: 13px;\n line-height: 19px;\n overflow: auto;\n padding: 6px 10px;\n border-radius: 3px; \n}\n\ncode, tt {\n margin: 0 2px;\n padding: 0 5px;\n white-space: nowrap;\n border: 1px solid #eaeaea;\n background-color: #f8f8f8;\n border-radius: 3px; \n}\n\npre {\n background-color: #f8f8f8;\n border: 1px solid #cccccc;\n font-size: 13px;\n line-height: 19px;\n overflow: auto;\n padding: 6px 10px;\n border-radius: 3px; \n}\n\npre code, pre tt {\n background-color: transparent;\n border: none; \n}\n \ntable, td, th {\n border: 1px solid black;\n padding:10px;\n}\n`\n"],"file":"markdown.js"}