@skitter/assistant_md 1.0.2-alpha.0 → 1.0.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.
- package/.parcel-cache/07e964bee140377c +0 -0
- package/.parcel-cache/1719bc81d3eb64ad +0 -0
- package/.parcel-cache/35f98d50b52b1932 +0 -0
- package/.parcel-cache/592a5a9a568d8802.txt +4510 -0
- package/.parcel-cache/77ebbc788c6f6994 +0 -0
- package/.parcel-cache/7f3e278da4854454 +0 -0
- package/.parcel-cache/a9ee6204a2a85169 +0 -0
- package/.parcel-cache/b6694c1eefd2b32c +0 -0
- package/.parcel-cache/bd80eeaad5f7aeb5 +0 -0
- package/.parcel-cache/c0e87891cd14f32b.txt +4510 -0
- package/.parcel-cache/cbf39635cd1b2434 +0 -0
- package/.parcel-cache/data.mdb +0 -0
- package/.parcel-cache/ffdc629ccf572e1f +0 -0
- package/.parcel-cache/lock.mdb +0 -0
- package/dist/{assistant_md.js → assistant_md.cjs} +189 -28
- package/dist/assistant_md.cjs.map +1 -0
- package/dist/assistant_md.d.ts.map +1 -1
- package/package.json +2 -2
- package/dist/assistant_md.js.map +0 -1
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -12,8 +12,8 @@ function $parcel$export(e, n, v, s) {
|
|
|
12
12
|
|
|
13
13
|
$parcel$defineInteropFlag(module.exports);
|
|
14
14
|
|
|
15
|
-
$parcel$export(module.exports, "parseUrlAndString", () => $69304f3cd9aa4f81$export$41849f4004f0a2a6);
|
|
16
|
-
$parcel$export(module.exports, "default", () => $69304f3cd9aa4f81$export$2e2bcd8739ae039);
|
|
15
|
+
$parcel$export(module.exports, "parseUrlAndString", () => $69304f3cd9aa4f81$export$41849f4004f0a2a6, (v) => $69304f3cd9aa4f81$export$41849f4004f0a2a6 = v);
|
|
16
|
+
$parcel$export(module.exports, "default", () => $69304f3cd9aa4f81$export$2e2bcd8739ae039, (v) => $69304f3cd9aa4f81$export$2e2bcd8739ae039 = v);
|
|
17
17
|
|
|
18
18
|
const $69304f3cd9aa4f81$var$URL_REGEX = /[(http(s)?):\/\/(www\.)?a-zA-Z0-9@:%._\+~#=-]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/;
|
|
19
19
|
const $69304f3cd9aa4f81$var$normalStr = (str)=>({
|
|
@@ -48,7 +48,13 @@ const $69304f3cd9aa4f81$var$DisplayWithSpace = ({ text: text })=>{
|
|
|
48
48
|
return /*#__PURE__*/ (0, ($parcel$interopDefault($kmRvl$react))).createElement("span", {
|
|
49
49
|
style: {
|
|
50
50
|
whiteSpace: "pre-wrap"
|
|
51
|
-
}
|
|
51
|
+
},
|
|
52
|
+
__source: {
|
|
53
|
+
fileName: "src/assistant_md.tsx",
|
|
54
|
+
lineNumber: 46,
|
|
55
|
+
columnNumber: 10
|
|
56
|
+
},
|
|
57
|
+
__self: undefined
|
|
52
58
|
}, text);
|
|
53
59
|
};
|
|
54
60
|
const $69304f3cd9aa4f81$var$DisplayLineBreaks = ({ text: text1 })=>{
|
|
@@ -58,13 +64,31 @@ const $69304f3cd9aa4f81$var$DisplayLineBreaks = ({ text: text1 })=>{
|
|
|
58
64
|
return /*#__PURE__*/ (0, ($parcel$interopDefault($kmRvl$react))).createElement((0, ($parcel$interopDefault($kmRvl$react))).Fragment, null, exceptLastOne.reduce((arr, text)=>[
|
|
59
65
|
...arr,
|
|
60
66
|
/*#__PURE__*/ (0, ($parcel$interopDefault($kmRvl$react))).createElement($69304f3cd9aa4f81$var$DisplayWithSpace, {
|
|
61
|
-
text: text
|
|
67
|
+
text: text,
|
|
68
|
+
__source: {
|
|
69
|
+
fileName: "src/assistant_md.tsx",
|
|
70
|
+
lineNumber: 58,
|
|
71
|
+
columnNumber: 11
|
|
72
|
+
},
|
|
73
|
+
__self: undefined
|
|
62
74
|
}),
|
|
63
75
|
/*#__PURE__*/ (0, ($parcel$interopDefault($kmRvl$react))).createElement("br", {
|
|
64
|
-
key: arr.length
|
|
76
|
+
key: arr.length,
|
|
77
|
+
__source: {
|
|
78
|
+
fileName: "src/assistant_md.tsx",
|
|
79
|
+
lineNumber: 59,
|
|
80
|
+
columnNumber: 11
|
|
81
|
+
},
|
|
82
|
+
__self: undefined
|
|
65
83
|
}),
|
|
66
84
|
], []), /*#__PURE__*/ (0, ($parcel$interopDefault($kmRvl$react))).createElement($69304f3cd9aa4f81$var$DisplayWithSpace, {
|
|
67
|
-
text: lastOne
|
|
85
|
+
text: lastOne,
|
|
86
|
+
__source: {
|
|
87
|
+
fileName: "src/assistant_md.tsx",
|
|
88
|
+
lineNumber: 63,
|
|
89
|
+
columnNumber: 8
|
|
90
|
+
},
|
|
91
|
+
__self: undefined
|
|
68
92
|
}));
|
|
69
93
|
};
|
|
70
94
|
const $69304f3cd9aa4f81$var$DisplayURL = ({ text: text })=>{
|
|
@@ -73,34 +97,109 @@ const $69304f3cd9aa4f81$var$DisplayURL = ({ text: text })=>{
|
|
|
73
97
|
href: value,
|
|
74
98
|
target: "_blank",
|
|
75
99
|
key: i,
|
|
76
|
-
rel: "noreferrer"
|
|
100
|
+
rel: "noreferrer",
|
|
101
|
+
__source: {
|
|
102
|
+
fileName: "src/assistant_md.tsx",
|
|
103
|
+
lineNumber: 74,
|
|
104
|
+
columnNumber: 11
|
|
105
|
+
},
|
|
106
|
+
__self: undefined
|
|
77
107
|
}, value) : /*#__PURE__*/ (0, ($parcel$interopDefault($kmRvl$react))).createElement($69304f3cd9aa4f81$var$DisplayLineBreaks, {
|
|
78
108
|
text: value,
|
|
79
|
-
key: i
|
|
109
|
+
key: i,
|
|
110
|
+
__source: {
|
|
111
|
+
fileName: "src/assistant_md.tsx",
|
|
112
|
+
lineNumber: 78,
|
|
113
|
+
columnNumber: 11
|
|
114
|
+
},
|
|
115
|
+
__self: undefined
|
|
80
116
|
})));
|
|
81
117
|
};
|
|
82
|
-
const $69304f3cd9aa4f81$var$normalWrapper = (TagName)=>({ mdText: mdText })=>/*#__PURE__*/ (0, ($parcel$interopDefault($kmRvl$react))).createElement(TagName,
|
|
83
|
-
|
|
118
|
+
const $69304f3cd9aa4f81$var$normalWrapper = (TagName)=>({ mdText: mdText })=>/*#__PURE__*/ (0, ($parcel$interopDefault($kmRvl$react))).createElement(TagName, {
|
|
119
|
+
__source: {
|
|
120
|
+
fileName: "src/assistant_md.tsx",
|
|
121
|
+
lineNumber: 185,
|
|
122
|
+
columnNumber: 7
|
|
123
|
+
},
|
|
124
|
+
__self: undefined
|
|
125
|
+
}, /*#__PURE__*/ (0, ($parcel$interopDefault($kmRvl$react))).createElement($69304f3cd9aa4f81$export$2e2bcd8739ae039, {
|
|
126
|
+
mdText: mdText.value,
|
|
127
|
+
__source: {
|
|
128
|
+
fileName: "src/assistant_md.tsx",
|
|
129
|
+
lineNumber: 186,
|
|
130
|
+
columnNumber: 9
|
|
131
|
+
},
|
|
132
|
+
__self: undefined
|
|
84
133
|
}));
|
|
85
|
-
const $69304f3cd9aa4f81$var$listWrapper = (TagName)=>({ mdText: { list: list } })=>/*#__PURE__*/ (0, ($parcel$interopDefault($kmRvl$react))).createElement(TagName,
|
|
86
|
-
|
|
134
|
+
const $69304f3cd9aa4f81$var$listWrapper = (TagName)=>({ mdText: { list: list } })=>/*#__PURE__*/ (0, ($parcel$interopDefault($kmRvl$react))).createElement(TagName, {
|
|
135
|
+
__source: {
|
|
136
|
+
fileName: "src/assistant_md.tsx",
|
|
137
|
+
lineNumber: 194,
|
|
138
|
+
columnNumber: 7
|
|
139
|
+
},
|
|
140
|
+
__self: undefined
|
|
141
|
+
}, list.map((mdText)=>/*#__PURE__*/ (0, ($parcel$interopDefault($kmRvl$react))).createElement("li", {
|
|
142
|
+
__source: {
|
|
143
|
+
fileName: "src/assistant_md.tsx",
|
|
144
|
+
lineNumber: 196,
|
|
145
|
+
columnNumber: 11
|
|
146
|
+
},
|
|
147
|
+
__self: undefined
|
|
148
|
+
}, /*#__PURE__*/ (0, ($parcel$interopDefault($kmRvl$react))).createElement($69304f3cd9aa4f81$export$2e2bcd8739ae039, {
|
|
149
|
+
mdText: mdText,
|
|
150
|
+
__source: {
|
|
151
|
+
fileName: "src/assistant_md.tsx",
|
|
152
|
+
lineNumber: 197,
|
|
153
|
+
columnNumber: 13
|
|
154
|
+
},
|
|
155
|
+
__self: undefined
|
|
87
156
|
}))));
|
|
88
157
|
// type RenderMap = Record<RenderTypes, MdRenderers>;
|
|
89
158
|
const $69304f3cd9aa4f81$var$NormalTextMd = ({ mdText: mdText })=>{
|
|
90
159
|
return /*#__PURE__*/ (0, ($parcel$interopDefault($kmRvl$react))).createElement($69304f3cd9aa4f81$var$DisplayURL, {
|
|
91
|
-
text: mdText
|
|
160
|
+
text: mdText,
|
|
161
|
+
__source: {
|
|
162
|
+
fileName: "src/assistant_md.tsx",
|
|
163
|
+
lineNumber: 215,
|
|
164
|
+
columnNumber: 10
|
|
165
|
+
},
|
|
166
|
+
__self: undefined
|
|
92
167
|
});
|
|
93
168
|
};
|
|
94
169
|
const $69304f3cd9aa4f81$var$HyperLinkMd = ({ mdText: mdText })=>/*#__PURE__*/ (0, ($parcel$interopDefault($kmRvl$react))).createElement("a", {
|
|
95
170
|
href: mdText.link,
|
|
96
|
-
target: "_blank"
|
|
171
|
+
target: "_blank",
|
|
172
|
+
__source: {
|
|
173
|
+
fileName: "src/assistant_md.tsx",
|
|
174
|
+
lineNumber: 219,
|
|
175
|
+
columnNumber: 3
|
|
176
|
+
},
|
|
177
|
+
__self: undefined
|
|
97
178
|
}, /*#__PURE__*/ (0, ($parcel$interopDefault($kmRvl$react))).createElement($69304f3cd9aa4f81$export$2e2bcd8739ae039, {
|
|
98
|
-
mdText: mdText.value
|
|
179
|
+
mdText: mdText.value,
|
|
180
|
+
__source: {
|
|
181
|
+
fileName: "src/assistant_md.tsx",
|
|
182
|
+
lineNumber: 220,
|
|
183
|
+
columnNumber: 5
|
|
184
|
+
},
|
|
185
|
+
__self: undefined
|
|
99
186
|
}));
|
|
100
187
|
const $69304f3cd9aa4f81$var$JoinMd = ({ mdText: { lhs: lhs , rhs: rhs } })=>/*#__PURE__*/ (0, ($parcel$interopDefault($kmRvl$react))).createElement((0, ($parcel$interopDefault($kmRvl$react))).Fragment, null, /*#__PURE__*/ (0, ($parcel$interopDefault($kmRvl$react))).createElement($69304f3cd9aa4f81$export$2e2bcd8739ae039, {
|
|
101
|
-
mdText: lhs
|
|
188
|
+
mdText: lhs,
|
|
189
|
+
__source: {
|
|
190
|
+
fileName: "src/assistant_md.tsx",
|
|
191
|
+
lineNumber: 226,
|
|
192
|
+
columnNumber: 5
|
|
193
|
+
},
|
|
194
|
+
__self: undefined
|
|
102
195
|
}), /*#__PURE__*/ (0, ($parcel$interopDefault($kmRvl$react))).createElement($69304f3cd9aa4f81$export$2e2bcd8739ae039, {
|
|
103
|
-
mdText: rhs
|
|
196
|
+
mdText: rhs,
|
|
197
|
+
__source: {
|
|
198
|
+
fileName: "src/assistant_md.tsx",
|
|
199
|
+
lineNumber: 227,
|
|
200
|
+
columnNumber: 5
|
|
201
|
+
},
|
|
202
|
+
__self: undefined
|
|
104
203
|
}));
|
|
105
204
|
const $69304f3cd9aa4f81$var$mdTypeRenderers = {
|
|
106
205
|
normal_text: $69304f3cd9aa4f81$var$NormalTextMd,
|
|
@@ -110,7 +209,14 @@ const $69304f3cd9aa4f81$var$mdTypeRenderers = {
|
|
|
110
209
|
hyperlink: $69304f3cd9aa4f81$var$HyperLinkMd,
|
|
111
210
|
ordered_list: $69304f3cd9aa4f81$var$listWrapper("ol"),
|
|
112
211
|
unordered_list: $69304f3cd9aa4f81$var$listWrapper("ul"),
|
|
113
|
-
newline: ()=>/*#__PURE__*/ (0, ($parcel$interopDefault($kmRvl$react))).createElement("br",
|
|
212
|
+
newline: ()=>/*#__PURE__*/ (0, ($parcel$interopDefault($kmRvl$react))).createElement("br", {
|
|
213
|
+
__source: {
|
|
214
|
+
fileName: "src/assistant_md.tsx",
|
|
215
|
+
lineNumber: 239,
|
|
216
|
+
columnNumber: 18
|
|
217
|
+
},
|
|
218
|
+
__self: undefined
|
|
219
|
+
}),
|
|
114
220
|
join: $69304f3cd9aa4f81$var$JoinMd
|
|
115
221
|
};
|
|
116
222
|
function $69304f3cd9aa4f81$var$exhaustiveCheck(param) {}
|
|
@@ -121,7 +227,13 @@ function $69304f3cd9aa4f81$export$2e2bcd8739ae039({ mdText: mdText }) {
|
|
|
121
227
|
let RendenMDElement = $69304f3cd9aa4f81$var$mdTypeRenderers[mdText.markdown_text];
|
|
122
228
|
let container = mdText[mdText.markdown_text];
|
|
123
229
|
return /*#__PURE__*/ (0, ($parcel$interopDefault($kmRvl$react))).createElement(RendenMDElement, {
|
|
124
|
-
mdText: container
|
|
230
|
+
mdText: container,
|
|
231
|
+
__source: {
|
|
232
|
+
fileName: "src/assistant_md.tsx",
|
|
233
|
+
lineNumber: 250,
|
|
234
|
+
columnNumber: 14
|
|
235
|
+
},
|
|
236
|
+
__self: this
|
|
125
237
|
});
|
|
126
238
|
}
|
|
127
239
|
case "italic":
|
|
@@ -129,7 +241,13 @@ function $69304f3cd9aa4f81$export$2e2bcd8739ae039({ mdText: mdText }) {
|
|
|
129
241
|
let RendenMDElement = $69304f3cd9aa4f81$var$mdTypeRenderers[mdText.markdown_text];
|
|
130
242
|
let container = mdText[mdText.markdown_text];
|
|
131
243
|
return /*#__PURE__*/ (0, ($parcel$interopDefault($kmRvl$react))).createElement(RendenMDElement, {
|
|
132
|
-
mdText: container
|
|
244
|
+
mdText: container,
|
|
245
|
+
__source: {
|
|
246
|
+
fileName: "src/assistant_md.tsx",
|
|
247
|
+
lineNumber: 255,
|
|
248
|
+
columnNumber: 14
|
|
249
|
+
},
|
|
250
|
+
__self: this
|
|
133
251
|
});
|
|
134
252
|
}
|
|
135
253
|
case "normal_text":
|
|
@@ -137,7 +255,13 @@ function $69304f3cd9aa4f81$export$2e2bcd8739ae039({ mdText: mdText }) {
|
|
|
137
255
|
let RendenMDElement = $69304f3cd9aa4f81$var$mdTypeRenderers[mdText.markdown_text];
|
|
138
256
|
let container = mdText[mdText.markdown_text];
|
|
139
257
|
return /*#__PURE__*/ (0, ($parcel$interopDefault($kmRvl$react))).createElement(RendenMDElement, {
|
|
140
|
-
mdText: container
|
|
258
|
+
mdText: container,
|
|
259
|
+
__source: {
|
|
260
|
+
fileName: "src/assistant_md.tsx",
|
|
261
|
+
lineNumber: 260,
|
|
262
|
+
columnNumber: 14
|
|
263
|
+
},
|
|
264
|
+
__self: this
|
|
141
265
|
});
|
|
142
266
|
}
|
|
143
267
|
case "underline":
|
|
@@ -145,7 +269,13 @@ function $69304f3cd9aa4f81$export$2e2bcd8739ae039({ mdText: mdText }) {
|
|
|
145
269
|
let RendenMDElement = $69304f3cd9aa4f81$var$mdTypeRenderers[mdText.markdown_text];
|
|
146
270
|
let container = mdText[mdText.markdown_text];
|
|
147
271
|
return /*#__PURE__*/ (0, ($parcel$interopDefault($kmRvl$react))).createElement(RendenMDElement, {
|
|
148
|
-
mdText: container
|
|
272
|
+
mdText: container,
|
|
273
|
+
__source: {
|
|
274
|
+
fileName: "src/assistant_md.tsx",
|
|
275
|
+
lineNumber: 265,
|
|
276
|
+
columnNumber: 14
|
|
277
|
+
},
|
|
278
|
+
__self: this
|
|
149
279
|
});
|
|
150
280
|
}
|
|
151
281
|
case "hyperlink":
|
|
@@ -153,7 +283,13 @@ function $69304f3cd9aa4f81$export$2e2bcd8739ae039({ mdText: mdText }) {
|
|
|
153
283
|
let RendenMDElement = $69304f3cd9aa4f81$var$mdTypeRenderers[mdText.markdown_text];
|
|
154
284
|
let container = mdText[mdText.markdown_text];
|
|
155
285
|
return /*#__PURE__*/ (0, ($parcel$interopDefault($kmRvl$react))).createElement(RendenMDElement, {
|
|
156
|
-
mdText: container
|
|
286
|
+
mdText: container,
|
|
287
|
+
__source: {
|
|
288
|
+
fileName: "src/assistant_md.tsx",
|
|
289
|
+
lineNumber: 270,
|
|
290
|
+
columnNumber: 14
|
|
291
|
+
},
|
|
292
|
+
__self: this
|
|
157
293
|
});
|
|
158
294
|
}
|
|
159
295
|
case "ordered_list":
|
|
@@ -161,7 +297,13 @@ function $69304f3cd9aa4f81$export$2e2bcd8739ae039({ mdText: mdText }) {
|
|
|
161
297
|
let RendenMDElement = $69304f3cd9aa4f81$var$mdTypeRenderers[mdText.markdown_text];
|
|
162
298
|
let container = mdText[mdText.markdown_text];
|
|
163
299
|
return /*#__PURE__*/ (0, ($parcel$interopDefault($kmRvl$react))).createElement(RendenMDElement, {
|
|
164
|
-
mdText: container
|
|
300
|
+
mdText: container,
|
|
301
|
+
__source: {
|
|
302
|
+
fileName: "src/assistant_md.tsx",
|
|
303
|
+
lineNumber: 275,
|
|
304
|
+
columnNumber: 14
|
|
305
|
+
},
|
|
306
|
+
__self: this
|
|
165
307
|
});
|
|
166
308
|
}
|
|
167
309
|
case "unordered_list":
|
|
@@ -169,7 +311,13 @@ function $69304f3cd9aa4f81$export$2e2bcd8739ae039({ mdText: mdText }) {
|
|
|
169
311
|
let RendenMDElement = $69304f3cd9aa4f81$var$mdTypeRenderers[mdText.markdown_text];
|
|
170
312
|
let container = mdText[mdText.markdown_text];
|
|
171
313
|
return /*#__PURE__*/ (0, ($parcel$interopDefault($kmRvl$react))).createElement(RendenMDElement, {
|
|
172
|
-
mdText: container
|
|
314
|
+
mdText: container,
|
|
315
|
+
__source: {
|
|
316
|
+
fileName: "src/assistant_md.tsx",
|
|
317
|
+
lineNumber: 280,
|
|
318
|
+
columnNumber: 14
|
|
319
|
+
},
|
|
320
|
+
__self: this
|
|
173
321
|
});
|
|
174
322
|
}
|
|
175
323
|
case "join":
|
|
@@ -177,17 +325,30 @@ function $69304f3cd9aa4f81$export$2e2bcd8739ae039({ mdText: mdText }) {
|
|
|
177
325
|
let RendenMDElement = $69304f3cd9aa4f81$var$mdTypeRenderers[mdText.markdown_text];
|
|
178
326
|
let container = mdText[mdText.markdown_text];
|
|
179
327
|
return /*#__PURE__*/ (0, ($parcel$interopDefault($kmRvl$react))).createElement(RendenMDElement, {
|
|
180
|
-
mdText: container
|
|
328
|
+
mdText: container,
|
|
329
|
+
__source: {
|
|
330
|
+
fileName: "src/assistant_md.tsx",
|
|
331
|
+
lineNumber: 285,
|
|
332
|
+
columnNumber: 14
|
|
333
|
+
},
|
|
334
|
+
__self: this
|
|
181
335
|
});
|
|
182
336
|
}
|
|
183
337
|
case "newline":
|
|
184
338
|
{
|
|
185
339
|
let RendenMDElement = $69304f3cd9aa4f81$var$mdTypeRenderers[mdText.markdown_text];
|
|
186
|
-
return /*#__PURE__*/ (0, ($parcel$interopDefault($kmRvl$react))).createElement(RendenMDElement,
|
|
340
|
+
return /*#__PURE__*/ (0, ($parcel$interopDefault($kmRvl$react))).createElement(RendenMDElement, {
|
|
341
|
+
__source: {
|
|
342
|
+
fileName: "src/assistant_md.tsx",
|
|
343
|
+
lineNumber: 289,
|
|
344
|
+
columnNumber: 14
|
|
345
|
+
},
|
|
346
|
+
__self: this
|
|
347
|
+
});
|
|
187
348
|
}
|
|
188
349
|
}
|
|
189
350
|
$69304f3cd9aa4f81$var$exhaustiveCheck(mdText);
|
|
190
351
|
}
|
|
191
352
|
|
|
192
353
|
|
|
193
|
-
//# sourceMappingURL=assistant_md.
|
|
354
|
+
//# sourceMappingURL=assistant_md.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"mappings":"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","sources":["src/assistant_md.tsx"],"sourcesContent":["import React from \"react\";\n\nconst URL_REGEX =\n /[(http(s)?):\\/\\/(www\\.)?a-zA-Z0-9@:%._\\+~#=-]{2,256}\\.[a-z]{2,6}\\b([-a-zA-Z0-9@:%_\\+.~#?&//=]*)/;\n\nconst normalStr = (str: string) => ({\n type: \"normal_str\",\n value: str,\n});\n\nconst urlStr = (str: string) => ({\n type: \"url\",\n value: str,\n});\n\nexport function parseUrlAndString(str: string) {\n const results = [];\n let remaining = str;\n while (remaining) {\n let match = remaining.match(URL_REGEX);\n if (!match) {\n results.push(normalStr(remaining));\n break;\n }\n\n if (match.index !== 0) {\n results.push(normalStr(remaining.slice(0, match.index)));\n results.push(\n urlStr(\n remaining.slice(\n match.index,\n match.index && match.index + match[0].length\n )\n )\n );\n remaining = remaining.slice(match.index && match.index + match[0].length);\n continue;\n }\n results.push(urlStr(remaining.slice(0, match[0].length)));\n remaining = remaining.slice(match[0].length);\n }\n return results;\n}\n\nconst DisplayWithSpace = ({ text }: { text: string }) => {\n return <span style={{ whiteSpace: \"pre-wrap\" }}>{text}</span>;\n};\n\nconst DisplayLineBreaks = ({ text }: { text: string }) => {\n let texts = text.split(\"\\n\");\n let lastOne = texts[texts.length - 1];\n let exceptLastOne = texts.slice(0, texts.length - 1);\n return (\n <>\n {exceptLastOne.reduce(\n (arr: (string | JSX.Element)[], text) => [\n ...arr,\n <DisplayWithSpace text={text} />,\n <br key={arr.length} />,\n ],\n []\n )}\n {<DisplayWithSpace text={lastOne} />}\n </>\n );\n};\n\nconst DisplayURL = ({ text }: { text: string }) => {\n const parsed = parseUrlAndString(text);\n return (\n <>\n {parsed.map(({ type, value }, i) =>\n type === \"url\" ? (\n <a href={value} target=\"_blank\" key={i} rel=\"noreferrer\">\n {value}\n </a>\n ) : (\n <DisplayLineBreaks text={value} key={i}></DisplayLineBreaks>\n )\n )}\n </>\n );\n};\n\ntype MdTypes =\n | \"normal_text\"\n | \"bold\"\n | \"italic\"\n | \"underline\"\n | \"hyperlink\"\n | \"ordered_list\"\n | \"unordered_list\"\n | \"newline\"\n | \"join\";\n\ntype NormalText = {\n normal_text: string;\n markdown_text: \"normal_text\";\n};\n\ntype MdValueContainer = { value: MdText };\n\ntype BoldText = {\n bold: MdValueContainer;\n markdown_text: \"bold\";\n};\n\ntype ItalicText = {\n italic: MdValueContainer;\n markdown_text: \"italic\";\n};\n\ntype UnderlineText = {\n underline: MdValueContainer;\n markdown_text: \"underline\";\n};\n\ntype HyperLinkContainer = {\n link: string;\n value: MdText;\n};\n\ntype HyperLinkText = {\n hyperlink: HyperLinkContainer;\n markdown_text: \"hyperlink\";\n};\n\ntype MdList = {\n list: MdText[];\n};\n\ntype OrdredListText = {\n ordered_list: MdList;\n markdown_text: \"ordered_list\";\n};\n\ntype UnOrdredListText = {\n unordered_list: MdList;\n markdown_text: \"unordered_list\";\n};\n\ntype NewlineText = {\n markdown_text: \"newline\";\n};\n\ntype JoinMdContainer = {\n lhs: MdText;\n rhs: MdText;\n};\n\ntype JoinMdText = {\n join: JoinMdContainer;\n markdown_text: \"join\";\n};\n\ntype MdText =\n | NormalText\n | BoldText\n | ItalicText\n | UnderlineText\n | HyperLinkText\n | OrdredListText\n | UnOrdredListText\n | JoinMdText\n | NewlineText;\n\ntype MdTextProp = { mdText: MdText };\n\ntype NormalRenderes = React.FunctionComponent<{ mdText: MdValueContainer }>;\n\ntype ListRenderers = React.FunctionComponent<{ mdText: MdList }>;\n\ntype TextRenderer = React.FunctionComponent<{ mdText: string }>;\n\ntype JoinMdRenderer = React.FunctionComponent<{ mdText: JoinMdContainer }>;\n\ntype HyperLinkRenderer = React.FunctionComponent<{\n mdText: HyperLinkContainer;\n}>;\n\nconst normalWrapper: (TagName: React.ElementType) => NormalRenderes =\n (TagName: React.ElementType) =>\n ({ mdText }) =>\n (\n <TagName>\n <AssistantMd mdText={mdText.value} />\n </TagName>\n );\n\nconst listWrapper: (TagName: React.ElementType) => ListRenderers =\n (TagName) =>\n ({ mdText: { list } }) =>\n (\n <TagName>\n {list.map((mdText) => (\n <li>\n <AssistantMd mdText={mdText} />\n </li>\n ))}\n </TagName>\n );\n\ntype RenderTypes = MdTypes;\n\ntype MdRenderers =\n | NormalRenderes\n | ListRenderers\n | TextRenderer\n | HyperLinkRenderer\n | JoinMdRenderer;\n\n// type RenderMap = Record<RenderTypes, MdRenderers>;\n\nconst NormalTextMd: TextRenderer = ({ mdText }) => {\n return <DisplayURL text={mdText} />;\n};\n\nconst HyperLinkMd: HyperLinkRenderer = ({ mdText }) => (\n <a href={mdText.link} target=\"_blank\">\n <AssistantMd mdText={mdText.value} />\n </a>\n);\n\nconst JoinMd: JoinMdRenderer = ({ mdText: { lhs, rhs } }) => (\n <>\n <AssistantMd mdText={lhs} />\n <AssistantMd mdText={rhs} />\n </>\n);\n\nconst mdTypeRenderers = {\n normal_text: NormalTextMd,\n bold: normalWrapper(\"strong\"),\n italic: normalWrapper(\"em\"),\n underline: normalWrapper(\"u\"),\n hyperlink: HyperLinkMd,\n ordered_list: listWrapper(\"ol\"),\n unordered_list: listWrapper(\"ul\"),\n newline: () => <br />,\n join: JoinMd,\n};\n\nfunction exhaustiveCheck(param: never) {}\n\nexport default function AssistantMd({ mdText }: MdTextProp) {\n switch (mdText.markdown_text) {\n case \"bold\": {\n let RendenMDElement = mdTypeRenderers[mdText.markdown_text];\n let container = mdText[mdText.markdown_text];\n return <RendenMDElement mdText={container} />;\n }\n case \"italic\": {\n let RendenMDElement = mdTypeRenderers[mdText.markdown_text];\n let container = mdText[mdText.markdown_text];\n return <RendenMDElement mdText={container} />;\n }\n case \"normal_text\": {\n let RendenMDElement = mdTypeRenderers[mdText.markdown_text];\n let container = mdText[mdText.markdown_text];\n return <RendenMDElement mdText={container} />;\n }\n case \"underline\": {\n let RendenMDElement = mdTypeRenderers[mdText.markdown_text];\n let container = mdText[mdText.markdown_text];\n return <RendenMDElement mdText={container} />;\n }\n case \"hyperlink\": {\n let RendenMDElement = mdTypeRenderers[mdText.markdown_text];\n let container = mdText[mdText.markdown_text];\n return <RendenMDElement mdText={container} />;\n }\n case \"ordered_list\": {\n let RendenMDElement = mdTypeRenderers[mdText.markdown_text];\n let container = mdText[mdText.markdown_text];\n return <RendenMDElement mdText={container} />;\n }\n case \"unordered_list\": {\n let RendenMDElement = mdTypeRenderers[mdText.markdown_text];\n let container = mdText[mdText.markdown_text];\n return <RendenMDElement mdText={container} />;\n }\n case \"join\": {\n let RendenMDElement = mdTypeRenderers[mdText.markdown_text];\n let container = mdText[mdText.markdown_text];\n return <RendenMDElement mdText={container} />;\n }\n case \"newline\": {\n let RendenMDElement = mdTypeRenderers[mdText.markdown_text];\n return <RendenMDElement />;\n }\n }\n exhaustiveCheck(mdText);\n}\n"],"names":[],"version":3,"file":"assistant_md.cjs.map","sourceRoot":"../"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"AAeA,kCAAkC,GAAG,EAAE,MAAM;;;IA2B5C;
|
|
1
|
+
{"mappings":"AAeA,kCAAkC,GAAG,EAAE,MAAM;;;IA2B5C;AAiDD,kBAAkB;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,aAAa,CAAC;CAC9B,CAAC;AAEF,wBAAwB;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1C,gBAAgB;IACd,IAAI,EAAE,gBAAgB,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,kBAAkB;IAChB,MAAM,EAAE,gBAAgB,CAAC;IACzB,aAAa,EAAE,QAAQ,CAAC;CACzB,CAAC;AAEF,qBAAqB;IACnB,SAAS,EAAE,gBAAgB,CAAC;IAC5B,aAAa,EAAE,WAAW,CAAC;CAC5B,CAAC;AAEF,0BAA0B;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,qBAAqB;IACnB,SAAS,EAAE,kBAAkB,CAAC;IAC9B,aAAa,EAAE,WAAW,CAAC;CAC5B,CAAC;AAEF,cAAc;IACZ,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB,CAAC;AAEF,sBAAsB;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,cAAc,CAAC;CAC/B,CAAC;AAEF,wBAAwB;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,gBAAgB,CAAC;CACjC,CAAC;AAEF,mBAAmB;IACjB,aAAa,EAAE,SAAS,CAAC;CAC1B,CAAC;AAEF,uBAAuB;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,kBAAkB;IAChB,IAAI,EAAE,eAAe,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,cACI,UAAU,GACV,QAAQ,GACR,UAAU,GACV,aAAa,GACb,aAAa,GACb,cAAc,GACd,gBAAgB,GAChB,UAAU,GACV,WAAW,CAAC;AAEhB,kBAAkB;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AA8ErC,oCAAoC,EAAE,MAAM,EAAE,EAAE,UAAU,eAgDzD","sources":["src/src/assistant_md.tsx","src/assistant_md.tsx"],"sourcesContent":[null,"import React from \"react\";\n\nconst URL_REGEX =\n /[(http(s)?):\\/\\/(www\\.)?a-zA-Z0-9@:%._\\+~#=-]{2,256}\\.[a-z]{2,6}\\b([-a-zA-Z0-9@:%_\\+.~#?&//=]*)/;\n\nconst normalStr = (str: string) => ({\n type: \"normal_str\",\n value: str,\n});\n\nconst urlStr = (str: string) => ({\n type: \"url\",\n value: str,\n});\n\nexport function parseUrlAndString(str: string) {\n const results = [];\n let remaining = str;\n while (remaining) {\n let match = remaining.match(URL_REGEX);\n if (!match) {\n results.push(normalStr(remaining));\n break;\n }\n\n if (match.index !== 0) {\n results.push(normalStr(remaining.slice(0, match.index)));\n results.push(\n urlStr(\n remaining.slice(\n match.index,\n match.index && match.index + match[0].length\n )\n )\n );\n remaining = remaining.slice(match.index && match.index + match[0].length);\n continue;\n }\n results.push(urlStr(remaining.slice(0, match[0].length)));\n remaining = remaining.slice(match[0].length);\n }\n return results;\n}\n\nconst DisplayLineBreaks = ({ text }: { text: string }) => {\n let texts = text.split(\"\\n\");\n let lastOne = texts[texts.length - 1];\n let exceptLastOne = texts.slice(0, texts.length - 1);\n return (\n <>\n {exceptLastOne.reduce(\n (arr: (string | JSX.Element)[], text) => [\n ...arr,\n text,\n <br key={arr.length} />,\n ],\n []\n )}\n {lastOne}\n </>\n );\n};\n\nconst DisplayURL = ({ text }: { text: string }) => {\n const parsed = parseUrlAndString(text);\n return (\n <>\n {parsed.map(({ type, value }, i) =>\n type === \"url\" ? (\n <a href={value} target=\"_blank\" key={i} rel=\"noreferrer\">\n {value}\n </a>\n ) : (\n <DisplayLineBreaks text={value} key={i}></DisplayLineBreaks>\n )\n )}\n </>\n );\n};\n\ntype MdTypes =\n | \"normal_text\"\n | \"bold\"\n | \"italic\"\n | \"underline\"\n | \"hyperlink\"\n | \"ordered_list\"\n | \"unordered_list\"\n | \"newline\"\n | \"join\";\n\ntype NormalText = {\n normal_text: string;\n markdown_text: \"normal_text\";\n};\n\ntype MdValueContainer = { value: MdText };\n\ntype BoldText = {\n bold: MdValueContainer;\n markdown_text: \"bold\";\n};\n\ntype ItalicText = {\n italic: MdValueContainer;\n markdown_text: \"italic\";\n};\n\ntype UnderlineText = {\n underline: MdValueContainer;\n markdown_text: \"underline\";\n};\n\ntype HyperLinkContainer = {\n link: string;\n value: MdText;\n};\n\ntype HyperLinkText = {\n hyperlink: HyperLinkContainer;\n markdown_text: \"hyperlink\";\n};\n\ntype MdList = {\n list: MdText[];\n};\n\ntype OrdredListText = {\n ordered_list: MdList;\n markdown_text: \"ordered_list\";\n};\n\ntype UnOrdredListText = {\n unordered_list: MdList;\n markdown_text: \"unordered_list\";\n};\n\ntype NewlineText = {\n markdown_text: \"newline\";\n};\n\ntype JoinMdContainer = {\n lhs: MdText;\n rhs: MdText;\n};\n\ntype JoinMdText = {\n join: JoinMdContainer;\n markdown_text: \"join\";\n};\n\ntype MdText =\n | NormalText\n | BoldText\n | ItalicText\n | UnderlineText\n | HyperLinkText\n | OrdredListText\n | UnOrdredListText\n | JoinMdText\n | NewlineText;\n\ntype MdTextProp = { mdText: MdText };\n\ntype NormalRenderes = React.FunctionComponent<{ mdText: MdValueContainer }>;\n\ntype ListRenderers = React.FunctionComponent<{ mdText: MdList }>;\n\ntype TextRenderer = React.FunctionComponent<{ mdText: string }>;\n\ntype JoinMdRenderer = React.FunctionComponent<{ mdText: JoinMdContainer }>;\n\ntype HyperLinkRenderer = React.FunctionComponent<{\n mdText: HyperLinkContainer;\n}>;\n\nconst normalWrapper: (TagName: React.ElementType) => NormalRenderes =\n (TagName: React.ElementType) =>\n ({ mdText }) =>\n (\n <TagName>\n <AssistantMd mdText={mdText.value} />\n </TagName>\n );\n\nconst listWrapper: (TagName: React.ElementType) => ListRenderers =\n (TagName) =>\n ({ mdText: { list } }) =>\n (\n <TagName>\n {list.map((mdText) => (\n <li>\n <AssistantMd mdText={mdText} />\n </li>\n ))}\n </TagName>\n );\n\ntype RenderTypes = MdTypes;\n\ntype MdRenderers =\n | NormalRenderes\n | ListRenderers\n | TextRenderer\n | HyperLinkRenderer\n | JoinMdRenderer;\n\n// type RenderMap = Record<RenderTypes, MdRenderers>;\n\nconst NormalTextMd: TextRenderer = ({ mdText }) => {\n return <DisplayURL text={mdText} />;\n};\n\nconst HyperLinkMd: HyperLinkRenderer = ({ mdText }) => (\n <a href={mdText.link}>\n <AssistantMd mdText={mdText.value} />\n </a>\n);\n\nconst JoinMd: JoinMdRenderer = ({ mdText: { lhs, rhs } }) => (\n <>\n <AssistantMd mdText={lhs} />\n <AssistantMd mdText={rhs} />\n </>\n);\n\nconst mdTypeRenderers = {\n normal_text: NormalTextMd,\n bold: normalWrapper(\"strong\"),\n italic: normalWrapper(\"em\"),\n underline: normalWrapper(\"u\"),\n hyperlink: HyperLinkMd,\n ordered_list: listWrapper(\"ol\"),\n unordered_list: listWrapper(\"ul\"),\n newline: () => <br />,\n join: JoinMd,\n};\n\nfunction exhaustiveCheck(param: never) {}\n\nexport default function AssistantMd({ mdText }: MdTextProp) {\n switch (mdText.markdown_text) {\n case \"bold\": {\n let RendenMDElement = mdTypeRenderers[mdText.markdown_text];\n let container = mdText[mdText.markdown_text];\n return <RendenMDElement mdText={container} />;\n }\n case \"italic\": {\n let RendenMDElement = mdTypeRenderers[mdText.markdown_text];\n let container = mdText[mdText.markdown_text];\n return <RendenMDElement mdText={container} />;\n }\n case \"normal_text\": {\n let RendenMDElement = mdTypeRenderers[mdText.markdown_text];\n let container = mdText[mdText.markdown_text];\n return <RendenMDElement mdText={container} />;\n }\n case \"underline\": {\n let RendenMDElement = mdTypeRenderers[mdText.markdown_text];\n let container = mdText[mdText.markdown_text];\n return <RendenMDElement mdText={container} />;\n }\n case \"hyperlink\": {\n let RendenMDElement = mdTypeRenderers[mdText.markdown_text];\n let container = mdText[mdText.markdown_text];\n return <RendenMDElement mdText={container} />;\n }\n case \"ordered_list\": {\n let RendenMDElement = mdTypeRenderers[mdText.markdown_text];\n let container = mdText[mdText.markdown_text];\n return <RendenMDElement mdText={container} />;\n }\n case \"unordered_list\": {\n let RendenMDElement = mdTypeRenderers[mdText.markdown_text];\n let container = mdText[mdText.markdown_text];\n return <RendenMDElement mdText={container} />;\n }\n case \"join\": {\n let RendenMDElement = mdTypeRenderers[mdText.markdown_text];\n let container = mdText[mdText.markdown_text];\n return <RendenMDElement mdText={container} />;\n }\n case \"newline\": {\n let RendenMDElement = mdTypeRenderers[mdText.markdown_text];\n return <RendenMDElement />;\n }\n }\n exhaustiveCheck(mdText);\n}\n"],"names":[],"version":3,"file":"assistant_md.d.ts.map"}
|
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@skitter/assistant_md",
|
|
3
|
-
"version": "1.0.2
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"description": "",
|
|
5
5
|
"source": "src/assistant_md.tsx",
|
|
6
|
-
"main": "dist/assistant_md.
|
|
6
|
+
"main": "dist/assistant_md.cjs",
|
|
7
7
|
"types": "dist/assistant_md.d.ts",
|
|
8
8
|
"scripts": {
|
|
9
9
|
"watch": "parcel watch",
|
package/dist/assistant_md.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"mappings":"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","sources":["src/assistant_md.tsx"],"sourcesContent":["import React from \"react\";\n\nconst URL_REGEX =\n /[(http(s)?):\\/\\/(www\\.)?a-zA-Z0-9@:%._\\+~#=-]{2,256}\\.[a-z]{2,6}\\b([-a-zA-Z0-9@:%_\\+.~#?&//=]*)/;\n\nconst normalStr = (str: string) => ({\n type: \"normal_str\",\n value: str,\n});\n\nconst urlStr = (str: string) => ({\n type: \"url\",\n value: str,\n});\n\nexport function parseUrlAndString(str: string) {\n const results = [];\n let remaining = str;\n while (remaining) {\n let match = remaining.match(URL_REGEX);\n if (!match) {\n results.push(normalStr(remaining));\n break;\n }\n\n if (match.index !== 0) {\n results.push(normalStr(remaining.slice(0, match.index)));\n results.push(\n urlStr(\n remaining.slice(\n match.index,\n match.index && match.index + match[0].length\n )\n )\n );\n remaining = remaining.slice(match.index && match.index + match[0].length);\n continue;\n }\n results.push(urlStr(remaining.slice(0, match[0].length)));\n remaining = remaining.slice(match[0].length);\n }\n return results;\n}\n\nconst DisplayWithSpace = ({ text }: { text: string }) => {\n return <span style={{ whiteSpace: \"pre-wrap\" }}>{text}</span>;\n};\n\nconst DisplayLineBreaks = ({ text }: { text: string }) => {\n let texts = text.split(\"\\n\");\n let lastOne = texts[texts.length - 1];\n let exceptLastOne = texts.slice(0, texts.length - 1);\n return (\n <>\n {exceptLastOne.reduce(\n (arr: (string | JSX.Element)[], text) => [\n ...arr,\n <DisplayWithSpace text={text} />,\n <br key={arr.length} />,\n ],\n []\n )}\n {<DisplayWithSpace text={lastOne} />}\n </>\n );\n};\n\nconst DisplayURL = ({ text }: { text: string }) => {\n const parsed = parseUrlAndString(text);\n return (\n <>\n {parsed.map(({ type, value }, i) =>\n type === \"url\" ? (\n <a href={value} target=\"_blank\" key={i} rel=\"noreferrer\">\n {value}\n </a>\n ) : (\n <DisplayLineBreaks text={value} key={i}></DisplayLineBreaks>\n )\n )}\n </>\n );\n};\n\ntype MdTypes =\n | \"normal_text\"\n | \"bold\"\n | \"italic\"\n | \"underline\"\n | \"hyperlink\"\n | \"ordered_list\"\n | \"unordered_list\"\n | \"newline\"\n | \"join\";\n\ntype NormalText = {\n normal_text: string;\n markdown_text: \"normal_text\";\n};\n\ntype MdValueContainer = { value: MdText };\n\ntype BoldText = {\n bold: MdValueContainer;\n markdown_text: \"bold\";\n};\n\ntype ItalicText = {\n italic: MdValueContainer;\n markdown_text: \"italic\";\n};\n\ntype UnderlineText = {\n underline: MdValueContainer;\n markdown_text: \"underline\";\n};\n\ntype HyperLinkContainer = {\n link: string;\n value: MdText;\n};\n\ntype HyperLinkText = {\n hyperlink: HyperLinkContainer;\n markdown_text: \"hyperlink\";\n};\n\ntype MdList = {\n list: MdText[];\n};\n\ntype OrdredListText = {\n ordered_list: MdList;\n markdown_text: \"ordered_list\";\n};\n\ntype UnOrdredListText = {\n unordered_list: MdList;\n markdown_text: \"unordered_list\";\n};\n\ntype NewlineText = {\n markdown_text: \"newline\";\n};\n\ntype JoinMdContainer = {\n lhs: MdText;\n rhs: MdText;\n};\n\ntype JoinMdText = {\n join: JoinMdContainer;\n markdown_text: \"join\";\n};\n\ntype MdText =\n | NormalText\n | BoldText\n | ItalicText\n | UnderlineText\n | HyperLinkText\n | OrdredListText\n | UnOrdredListText\n | JoinMdText\n | NewlineText;\n\ntype MdTextProp = { mdText: MdText };\n\ntype NormalRenderes = React.FunctionComponent<{ mdText: MdValueContainer }>;\n\ntype ListRenderers = React.FunctionComponent<{ mdText: MdList }>;\n\ntype TextRenderer = React.FunctionComponent<{ mdText: string }>;\n\ntype JoinMdRenderer = React.FunctionComponent<{ mdText: JoinMdContainer }>;\n\ntype HyperLinkRenderer = React.FunctionComponent<{\n mdText: HyperLinkContainer;\n}>;\n\nconst normalWrapper: (TagName: React.ElementType) => NormalRenderes =\n (TagName: React.ElementType) =>\n ({ mdText }) =>\n (\n <TagName>\n <AssistantMd mdText={mdText.value} />\n </TagName>\n );\n\nconst listWrapper: (TagName: React.ElementType) => ListRenderers =\n (TagName) =>\n ({ mdText: { list } }) =>\n (\n <TagName>\n {list.map((mdText) => (\n <li>\n <AssistantMd mdText={mdText} />\n </li>\n ))}\n </TagName>\n );\n\ntype RenderTypes = MdTypes;\n\ntype MdRenderers =\n | NormalRenderes\n | ListRenderers\n | TextRenderer\n | HyperLinkRenderer\n | JoinMdRenderer;\n\n// type RenderMap = Record<RenderTypes, MdRenderers>;\n\nconst NormalTextMd: TextRenderer = ({ mdText }) => {\n return <DisplayURL text={mdText} />;\n};\n\nconst HyperLinkMd: HyperLinkRenderer = ({ mdText }) => (\n <a href={mdText.link} target=\"_blank\">\n <AssistantMd mdText={mdText.value} />\n </a>\n);\n\nconst JoinMd: JoinMdRenderer = ({ mdText: { lhs, rhs } }) => (\n <>\n <AssistantMd mdText={lhs} />\n <AssistantMd mdText={rhs} />\n </>\n);\n\nconst mdTypeRenderers = {\n normal_text: NormalTextMd,\n bold: normalWrapper(\"strong\"),\n italic: normalWrapper(\"em\"),\n underline: normalWrapper(\"u\"),\n hyperlink: HyperLinkMd,\n ordered_list: listWrapper(\"ol\"),\n unordered_list: listWrapper(\"ul\"),\n newline: () => <br />,\n join: JoinMd,\n};\n\nfunction exhaustiveCheck(param: never) {}\n\nexport default function AssistantMd({ mdText }: MdTextProp) {\n switch (mdText.markdown_text) {\n case \"bold\": {\n let RendenMDElement = mdTypeRenderers[mdText.markdown_text];\n let container = mdText[mdText.markdown_text];\n return <RendenMDElement mdText={container} />;\n }\n case \"italic\": {\n let RendenMDElement = mdTypeRenderers[mdText.markdown_text];\n let container = mdText[mdText.markdown_text];\n return <RendenMDElement mdText={container} />;\n }\n case \"normal_text\": {\n let RendenMDElement = mdTypeRenderers[mdText.markdown_text];\n let container = mdText[mdText.markdown_text];\n return <RendenMDElement mdText={container} />;\n }\n case \"underline\": {\n let RendenMDElement = mdTypeRenderers[mdText.markdown_text];\n let container = mdText[mdText.markdown_text];\n return <RendenMDElement mdText={container} />;\n }\n case \"hyperlink\": {\n let RendenMDElement = mdTypeRenderers[mdText.markdown_text];\n let container = mdText[mdText.markdown_text];\n return <RendenMDElement mdText={container} />;\n }\n case \"ordered_list\": {\n let RendenMDElement = mdTypeRenderers[mdText.markdown_text];\n let container = mdText[mdText.markdown_text];\n return <RendenMDElement mdText={container} />;\n }\n case \"unordered_list\": {\n let RendenMDElement = mdTypeRenderers[mdText.markdown_text];\n let container = mdText[mdText.markdown_text];\n return <RendenMDElement mdText={container} />;\n }\n case \"join\": {\n let RendenMDElement = mdTypeRenderers[mdText.markdown_text];\n let container = mdText[mdText.markdown_text];\n return <RendenMDElement mdText={container} />;\n }\n case \"newline\": {\n let RendenMDElement = mdTypeRenderers[mdText.markdown_text];\n return <RendenMDElement />;\n }\n }\n exhaustiveCheck(mdText);\n}\n"],"names":[],"version":3,"file":"assistant_md.js.map"}
|