@skitter/assistant_md 1.0.2 → 1.0.4
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/dist/assistant_md.cjs +42 -189
- package/dist/assistant_md.cjs.map +1 -1
- package/dist/assistant_md.d.ts +1 -0
- package/dist/assistant_md.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/assistant_md.tsx +30 -6
- package/.parcel-cache/07e964bee140377c +0 -0
- package/.parcel-cache/1719bc81d3eb64ad +0 -0
- package/.parcel-cache/35f98d50b52b1932 +0 -0
- package/.parcel-cache/592a5a9a568d8802.txt +0 -4510
- 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 +0 -4510
- 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.cjs
CHANGED
|
@@ -12,8 +12,9 @@ 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);
|
|
16
|
+
$parcel$export(module.exports, "default", () => $69304f3cd9aa4f81$export$2e2bcd8739ae039);
|
|
17
|
+
$parcel$export(module.exports, "evalNormalOrJoinText", () => $69304f3cd9aa4f81$export$28609798bd00e85c);
|
|
17
18
|
|
|
18
19
|
const $69304f3cd9aa4f81$var$URL_REGEX = /[(http(s)?):\/\/(www\.)?a-zA-Z0-9@:%._\+~#=-]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/;
|
|
19
20
|
const $69304f3cd9aa4f81$var$normalStr = (str)=>({
|
|
@@ -48,13 +49,7 @@ const $69304f3cd9aa4f81$var$DisplayWithSpace = ({ text: text })=>{
|
|
|
48
49
|
return /*#__PURE__*/ (0, ($parcel$interopDefault($kmRvl$react))).createElement("span", {
|
|
49
50
|
style: {
|
|
50
51
|
whiteSpace: "pre-wrap"
|
|
51
|
-
}
|
|
52
|
-
__source: {
|
|
53
|
-
fileName: "src/assistant_md.tsx",
|
|
54
|
-
lineNumber: 46,
|
|
55
|
-
columnNumber: 10
|
|
56
|
-
},
|
|
57
|
-
__self: undefined
|
|
52
|
+
}
|
|
58
53
|
}, text);
|
|
59
54
|
};
|
|
60
55
|
const $69304f3cd9aa4f81$var$DisplayLineBreaks = ({ text: text1 })=>{
|
|
@@ -64,31 +59,13 @@ const $69304f3cd9aa4f81$var$DisplayLineBreaks = ({ text: text1 })=>{
|
|
|
64
59
|
return /*#__PURE__*/ (0, ($parcel$interopDefault($kmRvl$react))).createElement((0, ($parcel$interopDefault($kmRvl$react))).Fragment, null, exceptLastOne.reduce((arr, text)=>[
|
|
65
60
|
...arr,
|
|
66
61
|
/*#__PURE__*/ (0, ($parcel$interopDefault($kmRvl$react))).createElement($69304f3cd9aa4f81$var$DisplayWithSpace, {
|
|
67
|
-
text: text
|
|
68
|
-
__source: {
|
|
69
|
-
fileName: "src/assistant_md.tsx",
|
|
70
|
-
lineNumber: 58,
|
|
71
|
-
columnNumber: 11
|
|
72
|
-
},
|
|
73
|
-
__self: undefined
|
|
62
|
+
text: text
|
|
74
63
|
}),
|
|
75
64
|
/*#__PURE__*/ (0, ($parcel$interopDefault($kmRvl$react))).createElement("br", {
|
|
76
|
-
key: arr.length
|
|
77
|
-
__source: {
|
|
78
|
-
fileName: "src/assistant_md.tsx",
|
|
79
|
-
lineNumber: 59,
|
|
80
|
-
columnNumber: 11
|
|
81
|
-
},
|
|
82
|
-
__self: undefined
|
|
65
|
+
key: arr.length
|
|
83
66
|
}),
|
|
84
67
|
], []), /*#__PURE__*/ (0, ($parcel$interopDefault($kmRvl$react))).createElement($69304f3cd9aa4f81$var$DisplayWithSpace, {
|
|
85
|
-
text: lastOne
|
|
86
|
-
__source: {
|
|
87
|
-
fileName: "src/assistant_md.tsx",
|
|
88
|
-
lineNumber: 63,
|
|
89
|
-
columnNumber: 8
|
|
90
|
-
},
|
|
91
|
-
__self: undefined
|
|
68
|
+
text: lastOne
|
|
92
69
|
}));
|
|
93
70
|
};
|
|
94
71
|
const $69304f3cd9aa4f81$var$DisplayURL = ({ text: text })=>{
|
|
@@ -97,110 +74,48 @@ const $69304f3cd9aa4f81$var$DisplayURL = ({ text: text })=>{
|
|
|
97
74
|
href: value,
|
|
98
75
|
target: "_blank",
|
|
99
76
|
key: i,
|
|
100
|
-
rel: "noreferrer"
|
|
101
|
-
__source: {
|
|
102
|
-
fileName: "src/assistant_md.tsx",
|
|
103
|
-
lineNumber: 74,
|
|
104
|
-
columnNumber: 11
|
|
105
|
-
},
|
|
106
|
-
__self: undefined
|
|
77
|
+
rel: "noreferrer"
|
|
107
78
|
}, value) : /*#__PURE__*/ (0, ($parcel$interopDefault($kmRvl$react))).createElement($69304f3cd9aa4f81$var$DisplayLineBreaks, {
|
|
108
79
|
text: value,
|
|
109
|
-
key: i
|
|
110
|
-
__source: {
|
|
111
|
-
fileName: "src/assistant_md.tsx",
|
|
112
|
-
lineNumber: 78,
|
|
113
|
-
columnNumber: 11
|
|
114
|
-
},
|
|
115
|
-
__self: undefined
|
|
80
|
+
key: i
|
|
116
81
|
})));
|
|
117
82
|
};
|
|
118
|
-
const $69304f3cd9aa4f81$var$normalWrapper = (TagName)=>({ mdText: mdText })=>/*#__PURE__*/ (0, ($parcel$interopDefault($kmRvl$react))).createElement(TagName, {
|
|
119
|
-
|
|
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
|
|
83
|
+
const $69304f3cd9aa4f81$var$normalWrapper = (TagName)=>({ mdText: mdText })=>/*#__PURE__*/ (0, ($parcel$interopDefault($kmRvl$react))).createElement(TagName, null, /*#__PURE__*/ (0, ($parcel$interopDefault($kmRvl$react))).createElement($69304f3cd9aa4f81$export$2e2bcd8739ae039, {
|
|
84
|
+
mdText: mdText.value
|
|
133
85
|
}));
|
|
134
|
-
const $69304f3cd9aa4f81$var$listWrapper = (TagName)=>({ mdText: { list: list } })=>/*#__PURE__*/ (0, ($parcel$interopDefault($kmRvl$react))).createElement(TagName, {
|
|
135
|
-
|
|
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
|
|
86
|
+
const $69304f3cd9aa4f81$var$listWrapper = (TagName)=>({ mdText: { list: list } })=>/*#__PURE__*/ (0, ($parcel$interopDefault($kmRvl$react))).createElement(TagName, null, list.map((mdText)=>/*#__PURE__*/ (0, ($parcel$interopDefault($kmRvl$react))).createElement("li", null, /*#__PURE__*/ (0, ($parcel$interopDefault($kmRvl$react))).createElement($69304f3cd9aa4f81$export$2e2bcd8739ae039, {
|
|
87
|
+
mdText: mdText
|
|
156
88
|
}))));
|
|
157
89
|
// type RenderMap = Record<RenderTypes, MdRenderers>;
|
|
158
90
|
const $69304f3cd9aa4f81$var$NormalTextMd = ({ mdText: mdText })=>{
|
|
159
91
|
return /*#__PURE__*/ (0, ($parcel$interopDefault($kmRvl$react))).createElement($69304f3cd9aa4f81$var$DisplayURL, {
|
|
160
|
-
text: mdText
|
|
161
|
-
__source: {
|
|
162
|
-
fileName: "src/assistant_md.tsx",
|
|
163
|
-
lineNumber: 215,
|
|
164
|
-
columnNumber: 10
|
|
165
|
-
},
|
|
166
|
-
__self: undefined
|
|
92
|
+
text: mdText
|
|
167
93
|
});
|
|
168
94
|
};
|
|
169
95
|
const $69304f3cd9aa4f81$var$HyperLinkMd = ({ mdText: mdText })=>/*#__PURE__*/ (0, ($parcel$interopDefault($kmRvl$react))).createElement("a", {
|
|
170
96
|
href: mdText.link,
|
|
171
|
-
target: "_blank"
|
|
172
|
-
__source: {
|
|
173
|
-
fileName: "src/assistant_md.tsx",
|
|
174
|
-
lineNumber: 219,
|
|
175
|
-
columnNumber: 3
|
|
176
|
-
},
|
|
177
|
-
__self: undefined
|
|
97
|
+
target: "_blank"
|
|
178
98
|
}, /*#__PURE__*/ (0, ($parcel$interopDefault($kmRvl$react))).createElement($69304f3cd9aa4f81$export$2e2bcd8739ae039, {
|
|
179
|
-
mdText: mdText.value
|
|
180
|
-
__source: {
|
|
181
|
-
fileName: "src/assistant_md.tsx",
|
|
182
|
-
lineNumber: 220,
|
|
183
|
-
columnNumber: 5
|
|
184
|
-
},
|
|
185
|
-
__self: undefined
|
|
99
|
+
mdText: mdText.value
|
|
186
100
|
}));
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
101
|
+
function $69304f3cd9aa4f81$export$28609798bd00e85c(mdText) {
|
|
102
|
+
return mdText.markdown_text === "normal_text" ? mdText.normal_text : mdText.markdown_text === "join" ? $69304f3cd9aa4f81$var$joinAsNormalText(mdText.join.lhs, mdText.join.rhs) : null;
|
|
103
|
+
}
|
|
104
|
+
function $69304f3cd9aa4f81$var$joinAsNormalText(lhs, rhs) {
|
|
105
|
+
let evaluatedLhs = $69304f3cd9aa4f81$export$28609798bd00e85c(lhs);
|
|
106
|
+
let evaluatedRhs = $69304f3cd9aa4f81$export$28609798bd00e85c(rhs);
|
|
107
|
+
return evaluatedLhs !== null && evaluatedRhs !== null && `${evaluatedLhs}${evaluatedRhs}` || null;
|
|
108
|
+
}
|
|
109
|
+
const $69304f3cd9aa4f81$var$JoinMd = ({ mdText: { lhs: lhs , rhs: rhs } })=>{
|
|
110
|
+
let normalText = $69304f3cd9aa4f81$var$joinAsNormalText(lhs, rhs);
|
|
111
|
+
return normalText ? /*#__PURE__*/ (0, ($parcel$interopDefault($kmRvl$react))).createElement($69304f3cd9aa4f81$var$NormalTextMd, {
|
|
112
|
+
mdText: normalText
|
|
113
|
+
}) : /*#__PURE__*/ (0, ($parcel$interopDefault($kmRvl$react))).createElement((0, ($parcel$interopDefault($kmRvl$react))).Fragment, null, /*#__PURE__*/ (0, ($parcel$interopDefault($kmRvl$react))).createElement($69304f3cd9aa4f81$export$2e2bcd8739ae039, {
|
|
114
|
+
mdText: lhs
|
|
195
115
|
}), /*#__PURE__*/ (0, ($parcel$interopDefault($kmRvl$react))).createElement($69304f3cd9aa4f81$export$2e2bcd8739ae039, {
|
|
196
|
-
mdText: rhs
|
|
197
|
-
__source: {
|
|
198
|
-
fileName: "src/assistant_md.tsx",
|
|
199
|
-
lineNumber: 227,
|
|
200
|
-
columnNumber: 5
|
|
201
|
-
},
|
|
202
|
-
__self: undefined
|
|
116
|
+
mdText: rhs
|
|
203
117
|
}));
|
|
118
|
+
};
|
|
204
119
|
const $69304f3cd9aa4f81$var$mdTypeRenderers = {
|
|
205
120
|
normal_text: $69304f3cd9aa4f81$var$NormalTextMd,
|
|
206
121
|
bold: $69304f3cd9aa4f81$var$normalWrapper("strong"),
|
|
@@ -209,14 +124,7 @@ const $69304f3cd9aa4f81$var$mdTypeRenderers = {
|
|
|
209
124
|
hyperlink: $69304f3cd9aa4f81$var$HyperLinkMd,
|
|
210
125
|
ordered_list: $69304f3cd9aa4f81$var$listWrapper("ol"),
|
|
211
126
|
unordered_list: $69304f3cd9aa4f81$var$listWrapper("ul"),
|
|
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
|
-
}),
|
|
127
|
+
newline: ()=>/*#__PURE__*/ (0, ($parcel$interopDefault($kmRvl$react))).createElement("br", null),
|
|
220
128
|
join: $69304f3cd9aa4f81$var$JoinMd
|
|
221
129
|
};
|
|
222
130
|
function $69304f3cd9aa4f81$var$exhaustiveCheck(param) {}
|
|
@@ -227,13 +135,7 @@ function $69304f3cd9aa4f81$export$2e2bcd8739ae039({ mdText: mdText }) {
|
|
|
227
135
|
let RendenMDElement = $69304f3cd9aa4f81$var$mdTypeRenderers[mdText.markdown_text];
|
|
228
136
|
let container = mdText[mdText.markdown_text];
|
|
229
137
|
return /*#__PURE__*/ (0, ($parcel$interopDefault($kmRvl$react))).createElement(RendenMDElement, {
|
|
230
|
-
mdText: container
|
|
231
|
-
__source: {
|
|
232
|
-
fileName: "src/assistant_md.tsx",
|
|
233
|
-
lineNumber: 250,
|
|
234
|
-
columnNumber: 14
|
|
235
|
-
},
|
|
236
|
-
__self: this
|
|
138
|
+
mdText: container
|
|
237
139
|
});
|
|
238
140
|
}
|
|
239
141
|
case "italic":
|
|
@@ -241,13 +143,7 @@ function $69304f3cd9aa4f81$export$2e2bcd8739ae039({ mdText: mdText }) {
|
|
|
241
143
|
let RendenMDElement = $69304f3cd9aa4f81$var$mdTypeRenderers[mdText.markdown_text];
|
|
242
144
|
let container = mdText[mdText.markdown_text];
|
|
243
145
|
return /*#__PURE__*/ (0, ($parcel$interopDefault($kmRvl$react))).createElement(RendenMDElement, {
|
|
244
|
-
mdText: container
|
|
245
|
-
__source: {
|
|
246
|
-
fileName: "src/assistant_md.tsx",
|
|
247
|
-
lineNumber: 255,
|
|
248
|
-
columnNumber: 14
|
|
249
|
-
},
|
|
250
|
-
__self: this
|
|
146
|
+
mdText: container
|
|
251
147
|
});
|
|
252
148
|
}
|
|
253
149
|
case "normal_text":
|
|
@@ -255,13 +151,7 @@ function $69304f3cd9aa4f81$export$2e2bcd8739ae039({ mdText: mdText }) {
|
|
|
255
151
|
let RendenMDElement = $69304f3cd9aa4f81$var$mdTypeRenderers[mdText.markdown_text];
|
|
256
152
|
let container = mdText[mdText.markdown_text];
|
|
257
153
|
return /*#__PURE__*/ (0, ($parcel$interopDefault($kmRvl$react))).createElement(RendenMDElement, {
|
|
258
|
-
mdText: container
|
|
259
|
-
__source: {
|
|
260
|
-
fileName: "src/assistant_md.tsx",
|
|
261
|
-
lineNumber: 260,
|
|
262
|
-
columnNumber: 14
|
|
263
|
-
},
|
|
264
|
-
__self: this
|
|
154
|
+
mdText: container
|
|
265
155
|
});
|
|
266
156
|
}
|
|
267
157
|
case "underline":
|
|
@@ -269,13 +159,7 @@ function $69304f3cd9aa4f81$export$2e2bcd8739ae039({ mdText: mdText }) {
|
|
|
269
159
|
let RendenMDElement = $69304f3cd9aa4f81$var$mdTypeRenderers[mdText.markdown_text];
|
|
270
160
|
let container = mdText[mdText.markdown_text];
|
|
271
161
|
return /*#__PURE__*/ (0, ($parcel$interopDefault($kmRvl$react))).createElement(RendenMDElement, {
|
|
272
|
-
mdText: container
|
|
273
|
-
__source: {
|
|
274
|
-
fileName: "src/assistant_md.tsx",
|
|
275
|
-
lineNumber: 265,
|
|
276
|
-
columnNumber: 14
|
|
277
|
-
},
|
|
278
|
-
__self: this
|
|
162
|
+
mdText: container
|
|
279
163
|
});
|
|
280
164
|
}
|
|
281
165
|
case "hyperlink":
|
|
@@ -283,13 +167,7 @@ function $69304f3cd9aa4f81$export$2e2bcd8739ae039({ mdText: mdText }) {
|
|
|
283
167
|
let RendenMDElement = $69304f3cd9aa4f81$var$mdTypeRenderers[mdText.markdown_text];
|
|
284
168
|
let container = mdText[mdText.markdown_text];
|
|
285
169
|
return /*#__PURE__*/ (0, ($parcel$interopDefault($kmRvl$react))).createElement(RendenMDElement, {
|
|
286
|
-
mdText: container
|
|
287
|
-
__source: {
|
|
288
|
-
fileName: "src/assistant_md.tsx",
|
|
289
|
-
lineNumber: 270,
|
|
290
|
-
columnNumber: 14
|
|
291
|
-
},
|
|
292
|
-
__self: this
|
|
170
|
+
mdText: container
|
|
293
171
|
});
|
|
294
172
|
}
|
|
295
173
|
case "ordered_list":
|
|
@@ -297,13 +175,7 @@ function $69304f3cd9aa4f81$export$2e2bcd8739ae039({ mdText: mdText }) {
|
|
|
297
175
|
let RendenMDElement = $69304f3cd9aa4f81$var$mdTypeRenderers[mdText.markdown_text];
|
|
298
176
|
let container = mdText[mdText.markdown_text];
|
|
299
177
|
return /*#__PURE__*/ (0, ($parcel$interopDefault($kmRvl$react))).createElement(RendenMDElement, {
|
|
300
|
-
mdText: container
|
|
301
|
-
__source: {
|
|
302
|
-
fileName: "src/assistant_md.tsx",
|
|
303
|
-
lineNumber: 275,
|
|
304
|
-
columnNumber: 14
|
|
305
|
-
},
|
|
306
|
-
__self: this
|
|
178
|
+
mdText: container
|
|
307
179
|
});
|
|
308
180
|
}
|
|
309
181
|
case "unordered_list":
|
|
@@ -311,13 +183,7 @@ function $69304f3cd9aa4f81$export$2e2bcd8739ae039({ mdText: mdText }) {
|
|
|
311
183
|
let RendenMDElement = $69304f3cd9aa4f81$var$mdTypeRenderers[mdText.markdown_text];
|
|
312
184
|
let container = mdText[mdText.markdown_text];
|
|
313
185
|
return /*#__PURE__*/ (0, ($parcel$interopDefault($kmRvl$react))).createElement(RendenMDElement, {
|
|
314
|
-
mdText: container
|
|
315
|
-
__source: {
|
|
316
|
-
fileName: "src/assistant_md.tsx",
|
|
317
|
-
lineNumber: 280,
|
|
318
|
-
columnNumber: 14
|
|
319
|
-
},
|
|
320
|
-
__self: this
|
|
186
|
+
mdText: container
|
|
321
187
|
});
|
|
322
188
|
}
|
|
323
189
|
case "join":
|
|
@@ -325,26 +191,13 @@ function $69304f3cd9aa4f81$export$2e2bcd8739ae039({ mdText: mdText }) {
|
|
|
325
191
|
let RendenMDElement = $69304f3cd9aa4f81$var$mdTypeRenderers[mdText.markdown_text];
|
|
326
192
|
let container = mdText[mdText.markdown_text];
|
|
327
193
|
return /*#__PURE__*/ (0, ($parcel$interopDefault($kmRvl$react))).createElement(RendenMDElement, {
|
|
328
|
-
mdText: container
|
|
329
|
-
__source: {
|
|
330
|
-
fileName: "src/assistant_md.tsx",
|
|
331
|
-
lineNumber: 285,
|
|
332
|
-
columnNumber: 14
|
|
333
|
-
},
|
|
334
|
-
__self: this
|
|
194
|
+
mdText: container
|
|
335
195
|
});
|
|
336
196
|
}
|
|
337
197
|
case "newline":
|
|
338
198
|
{
|
|
339
199
|
let RendenMDElement = $69304f3cd9aa4f81$var$mdTypeRenderers[mdText.markdown_text];
|
|
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
|
-
});
|
|
200
|
+
return /*#__PURE__*/ (0, ($parcel$interopDefault($kmRvl$react))).createElement(RendenMDElement, null);
|
|
348
201
|
}
|
|
349
202
|
}
|
|
350
203
|
$69304f3cd9aa4f81$var$exhaustiveCheck(mdText);
|
|
@@ -1 +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
|
+
{"mappings":";;;;;;;;;;;;;;;;;AAAA;AAEA,MAAM,+BAAS,oGACoF,AAAC;AAEpG,MAAM,+BAAS,GAAG,CAAC,GAAW,GAAM,CAAA;QAClC,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,GAAG;KACX,CAAA,AAAC,AAAC;AAEH,MAAM,4BAAM,GAAG,CAAC,GAAW,GAAM,CAAA;QAC/B,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,GAAG;KACX,CAAA,AAAC,AAAC;AAEI,SAAS,yCAAiB,CAAC,GAAW,EAAE;IAC7C,MAAM,OAAO,GAAG,EAAE,AAAC;IACnB,IAAI,SAAS,GAAG,GAAG,AAAC;IACpB,MAAO,SAAS,CAAE;QAChB,IAAI,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,+BAAS,CAAC,AAAC;QACvC,IAAI,CAAC,KAAK,EAAE;YACV,OAAO,CAAC,IAAI,CAAC,+BAAS,CAAC,SAAS,CAAC,CAAC,CAAC;YACnC,MAAM;SACP;QAED,IAAI,KAAK,CAAC,KAAK,KAAK,CAAC,EAAE;YACrB,OAAO,CAAC,IAAI,CAAC,+BAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACzD,OAAO,CAAC,IAAI,CACV,4BAAM,CACJ,SAAS,CAAC,KAAK,CACb,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAC7C,CACF,CACF,CAAC;YACF,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC1E,SAAS;SACV;QACD,OAAO,CAAC,IAAI,CAAC,4BAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC1D,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;KAC9C;IACD,OAAO,OAAO,CAAC;CAChB;AAED,MAAM,sCAAgB,GAAG,CAAC,QAAE,IAAI,CAAA,EAAoB,GAAK;IACvD,qBAAO,0DAAC,MAAI;QAAC,KAAK,EAAE;YAAE,UAAU,EAAE,UAAU;SAAE;OAAG,IAAI,CAAQ,CAAC;CAC/D,AAAC;AAEF,MAAM,uCAAiB,GAAG,CAAC,EAAE,IAAI,EAAJ,KAAI,CAAA,EAAoB,GAAK;IACxD,IAAI,KAAK,GAAG,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC,AAAC;IAC7B,IAAI,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,AAAC;IACtC,IAAI,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,AAAC;IACrD,qBACE,sHACG,aAAa,CAAC,MAAM,CACnB,CAAC,GAA6B,EAAE,IAAI,GAAK;eACpC,GAAG;0BACN,0DAAC,sCAAgB;gBAAC,IAAI,EAAE,IAAI;cAAI;0BAChC,0DAAC,IAAE;gBAAC,GAAG,EAAE,GAAG,CAAC,MAAM;cAAI;SACxB,EACD,EAAE,CACH,gBACA,0DAAC,sCAAgB;QAAC,IAAI,EAAE,OAAO;MAAI,CACnC,CACH;CACH,AAAC;AAEF,MAAM,gCAAU,GAAG,CAAC,QAAE,IAAI,CAAA,EAAoB,GAAK;IACjD,MAAM,MAAM,GAAG,yCAAiB,CAAC,IAAI,CAAC,AAAC;IACvC,qBACE,sHACG,MAAM,CAAC,GAAG,CAAC,CAAC,QAAE,IAAI,CAAA,SAAE,KAAK,CAAA,EAAE,EAAE,CAAC,GAC7B,IAAI,KAAK,KAAK,iBACZ,0DAAC,GAAC;YAAC,IAAI,EAAE,KAAK;YAAE,MAAM,EAAC,QAAQ;YAAC,GAAG,EAAE,CAAC;YAAE,GAAG,EAAC,YAAY;WACrD,KAAK,CACJ,iBAEJ,0DAAC,uCAAiB;YAAC,IAAI,EAAE,KAAK;YAAE,GAAG,EAAE,CAAC;UAAsB,AAC7D,CACF,CACA,CACH;CACH,AAAC;AAkGF,MAAM,mCAAa,GACjB,CAAC,OAA0B,GAC3B,CAAC,UAAE,MAAM,CAAA,EAAE,iBAEP,0DAAC,OAAO,sBACN,0DAAC,wCAAW;YAAC,MAAM,EAAE,MAAM,CAAC,KAAK;UAAI,CAC7B,AACX,AAAC;AAEN,MAAM,iCAAW,GACf,CAAC,OAAO,GACR,CAAC,EAAE,MAAM,EAAE,QAAE,IAAI,CAAA,EAAE,CAAA,EAAE,iBAEjB,0DAAC,OAAO,QACL,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,iBACf,0DAAC,IAAE,sBACD,0DAAC,wCAAW;gBAAC,MAAM,EAAE,MAAM;cAAI,CAC5B,AACN,CAAC,CACM,AACX,AAAC;AAWN,qDAAqD;AAErD,MAAM,kCAAY,GAAiB,CAAC,UAAE,MAAM,CAAA,EAAE,GAAK;IACjD,qBAAO,0DAAC,gCAAU;QAAC,IAAI,EAAE,MAAM;MAAI,CAAC;CACrC,AAAC;AAEF,MAAM,iCAAW,GAAsB,CAAC,UAAE,MAAM,CAAA,EAAE,iBAChD,0DAAC,GAAC;QAAC,IAAI,EAAE,MAAM,CAAC,IAAI;QAAE,MAAM,EAAC,QAAQ;qBACnC,0DAAC,wCAAW;QAAC,MAAM,EAAE,MAAM,CAAC,KAAK;MAAI,CACnC,AACL,AAAC;AAEK,SAAS,yCAAoB,CAAC,MAAW,EAAO;IACrD,OAAO,MAAM,CAAC,aAAa,KAAK,aAAa,GACzC,MAAM,CAAC,WAAW,GAClB,MAAM,CAAC,aAAa,KAAK,MAAM,GAC/B,sCAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAClD,IAAI,CAAC;CACV;AAED,SAAS,sCAAgB,CAAC,GAAQ,EAAE,GAAQ,EAAiB;IAC3D,IAAI,YAAY,GAAG,yCAAoB,CAAC,GAAG,CAAC,AAAC;IAC7C,IAAI,YAAY,GAAG,yCAAoB,CAAC,GAAG,CAAC,AAAC;IAC7C,OACE,AAAC,YAAY,KAAK,IAAI,IACpB,YAAY,KAAK,IAAI,IACrB,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,CAAC,IAClC,IAAI,CACJ;CACH;AAED,MAAM,4BAAM,GAAmB,CAAC,EAAE,MAAM,EAAE,OAAE,GAAG,CAAA,OAAE,GAAG,CAAA,EAAE,CAAA,EAAE,GAAK;IAC3D,IAAI,UAAU,GAAG,sCAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,AAAC;IAC5C,OAAO,UAAU,iBACf,0DAAC,kCAAY;QAAC,MAAM,EAAE,UAAU;MAAI,iBAEpC,oIACE,0DAAC,wCAAW;QAAC,MAAM,EAAE,GAAG;MAAI,gBAC5B,0DAAC,wCAAW;QAAC,MAAM,EAAE,GAAG;MAAI,CAC3B,AACJ,CAAC;CACH,AAAC;AAEF,MAAM,qCAAe,GAAG;IACtB,WAAW,EAAE,kCAAY;IACzB,IAAI,EAAE,mCAAa,CAAC,QAAQ,CAAC;IAC7B,MAAM,EAAE,mCAAa,CAAC,IAAI,CAAC;IAC3B,SAAS,EAAE,mCAAa,CAAC,GAAG,CAAC;IAC7B,SAAS,EAAE,iCAAW;IACtB,YAAY,EAAE,iCAAW,CAAC,IAAI,CAAC;IAC/B,cAAc,EAAE,iCAAW,CAAC,IAAI,CAAC;IACjC,OAAO,EAAE,kBAAM,0DAAC,IAAE,OAAG;IACrB,IAAI,EAAE,4BAAM;CACb,AAAC;AAEF,SAAS,qCAAe,CAAC,KAAY,EAAE,EAAE;AAE1B,kDAAqB,UAAE,MAAM,CAAA,EAAc,EAAE;IAC1D,OAAQ,MAAM,CAAC,aAAa;QAC1B,KAAK,MAAM;YAAE;gBACX,IAAI,eAAe,GAAG,qCAAe,CAAC,MAAM,CAAC,aAAa,CAAC,AAAC;gBAC5D,IAAI,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,AAAC;gBAC7C,qBAAO,0DAAC,eAAe;oBAAC,MAAM,EAAE,SAAS;kBAAI,CAAC;aAC/C;QACD,KAAK,QAAQ;YAAE;gBACb,IAAI,eAAe,GAAG,qCAAe,CAAC,MAAM,CAAC,aAAa,CAAC,AAAC;gBAC5D,IAAI,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,AAAC;gBAC7C,qBAAO,0DAAC,eAAe;oBAAC,MAAM,EAAE,SAAS;kBAAI,CAAC;aAC/C;QACD,KAAK,aAAa;YAAE;gBAClB,IAAI,eAAe,GAAG,qCAAe,CAAC,MAAM,CAAC,aAAa,CAAC,AAAC;gBAC5D,IAAI,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,AAAC;gBAC7C,qBAAO,0DAAC,eAAe;oBAAC,MAAM,EAAE,SAAS;kBAAI,CAAC;aAC/C;QACD,KAAK,WAAW;YAAE;gBAChB,IAAI,eAAe,GAAG,qCAAe,CAAC,MAAM,CAAC,aAAa,CAAC,AAAC;gBAC5D,IAAI,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,AAAC;gBAC7C,qBAAO,0DAAC,eAAe;oBAAC,MAAM,EAAE,SAAS;kBAAI,CAAC;aAC/C;QACD,KAAK,WAAW;YAAE;gBAChB,IAAI,eAAe,GAAG,qCAAe,CAAC,MAAM,CAAC,aAAa,CAAC,AAAC;gBAC5D,IAAI,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,AAAC;gBAC7C,qBAAO,0DAAC,eAAe;oBAAC,MAAM,EAAE,SAAS;kBAAI,CAAC;aAC/C;QACD,KAAK,cAAc;YAAE;gBACnB,IAAI,eAAe,GAAG,qCAAe,CAAC,MAAM,CAAC,aAAa,CAAC,AAAC;gBAC5D,IAAI,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,AAAC;gBAC7C,qBAAO,0DAAC,eAAe;oBAAC,MAAM,EAAE,SAAS;kBAAI,CAAC;aAC/C;QACD,KAAK,gBAAgB;YAAE;gBACrB,IAAI,eAAe,GAAG,qCAAe,CAAC,MAAM,CAAC,aAAa,CAAC,AAAC;gBAC5D,IAAI,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,AAAC;gBAC7C,qBAAO,0DAAC,eAAe;oBAAC,MAAM,EAAE,SAAS;kBAAI,CAAC;aAC/C;QACD,KAAK,MAAM;YAAE;gBACX,IAAI,eAAe,GAAG,qCAAe,CAAC,MAAM,CAAC,aAAa,CAAC,AAAC;gBAC5D,IAAI,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,AAAC;gBAC7C,qBAAO,0DAAC,eAAe;oBAAC,MAAM,EAAE,SAAS;kBAAI,CAAC;aAC/C;QACD,KAAK,SAAS;YAAE;gBACd,IAAI,eAAe,GAAG,qCAAe,CAAC,MAAM,CAAC,aAAa,CAAC,AAAC;gBAC5D,qBAAO,0DAAC,eAAe,OAAG,CAAC;aAC5B;KACF;IACD,qCAAe,CAAC,MAAM,CAAC,CAAC;CACzB","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\nexport function evalNormalOrJoinText(mdText: any): any {\n return mdText.markdown_text === \"normal_text\"\n ? mdText.normal_text\n : mdText.markdown_text === \"join\"\n ? joinAsNormalText(mdText.join.lhs, mdText.join.rhs)\n : null;\n}\n\nfunction joinAsNormalText(lhs: any, rhs: any): string | null {\n let evaluatedLhs = evalNormalOrJoinText(lhs);\n let evaluatedRhs = evalNormalOrJoinText(rhs);\n return (\n (evaluatedLhs !== null &&\n evaluatedRhs !== null &&\n `${evaluatedLhs}${evaluatedRhs}`) ||\n null\n );\n}\n\nconst JoinMd: JoinMdRenderer = ({ mdText: { lhs, rhs } }) => {\n let normalText = joinAsNormalText(lhs, rhs);\n return normalText ? (\n <NormalTextMd mdText={normalText} />\n ) : (\n <>\n <AssistantMd mdText={lhs} />\n <AssistantMd mdText={rhs} />\n </>\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"}
|
package/dist/assistant_md.d.ts
CHANGED
|
@@ -55,6 +55,7 @@ type MdText = NormalText | BoldText | ItalicText | UnderlineText | HyperLinkText
|
|
|
55
55
|
type MdTextProp = {
|
|
56
56
|
mdText: MdText;
|
|
57
57
|
};
|
|
58
|
+
export function evalNormalOrJoinText(mdText: any): any;
|
|
58
59
|
export default function AssistantMd({ mdText }: MdTextProp): JSX.Element;
|
|
59
60
|
|
|
60
61
|
//# sourceMappingURL=assistant_md.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"AAeA,kCAAkC,GAAG,EAAE,MAAM;;;IA2B5C;
|
|
1
|
+
{"mappings":"AAeA,kCAAkC,GAAG,EAAE,MAAM;;;IA2B5C;AAqDD,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;AAyDrC,qCAAqC,MAAM,EAAE,GAAG,GAAG,GAAG,CAMrD;AAuCD,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 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\nexport function evalNormalOrJoinText(mdText: any): any {\n return mdText.markdown_text === \"normal_text\"\n ? mdText.normal_text\n : mdText.markdown_text === \"join\"\n ? joinAsNormalText(mdText.join.lhs, mdText.join.rhs)\n : null;\n}\n\nfunction joinAsNormalText(lhs: any, rhs: any): string | null {\n let evaluatedLhs = evalNormalOrJoinText(lhs);\n let evaluatedRhs = evalNormalOrJoinText(rhs);\n return (\n (evaluatedLhs !== null &&\n evaluatedRhs !== null &&\n `${evaluatedLhs}${evaluatedRhs}`) ||\n null\n );\n}\n\nconst JoinMd: JoinMdRenderer = ({ mdText: { lhs, rhs } }) => {\n let normalText = joinAsNormalText(lhs, rhs);\n return normalText ? (\n <NormalTextMd mdText={normalText} />\n ) : (\n <>\n <AssistantMd mdText={lhs} />\n <AssistantMd mdText={rhs} />\n </>\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.
|
|
3
|
+
"version": "1.0.4",
|
|
4
4
|
"description": "",
|
|
5
5
|
"source": "src/assistant_md.tsx",
|
|
6
|
-
"main": "dist/assistant_md.
|
|
6
|
+
"main": "dist/assistant_md.js",
|
|
7
7
|
"types": "dist/assistant_md.d.ts",
|
|
8
8
|
"scripts": {
|
|
9
9
|
"watch": "parcel watch",
|
package/src/assistant_md.tsx
CHANGED
|
@@ -221,12 +221,36 @@ const HyperLinkMd: HyperLinkRenderer = ({ mdText }) => (
|
|
|
221
221
|
</a>
|
|
222
222
|
);
|
|
223
223
|
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
224
|
+
export function evalNormalOrJoinText(mdText: any): any {
|
|
225
|
+
return mdText.markdown_text === "normal_text"
|
|
226
|
+
? mdText.normal_text
|
|
227
|
+
: mdText.markdown_text === "join"
|
|
228
|
+
? joinAsNormalText(mdText.join.lhs, mdText.join.rhs)
|
|
229
|
+
: null;
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
function joinAsNormalText(lhs: any, rhs: any): string | null {
|
|
233
|
+
let evaluatedLhs = evalNormalOrJoinText(lhs);
|
|
234
|
+
let evaluatedRhs = evalNormalOrJoinText(rhs);
|
|
235
|
+
return (
|
|
236
|
+
(evaluatedLhs !== null &&
|
|
237
|
+
evaluatedRhs !== null &&
|
|
238
|
+
`${evaluatedLhs}${evaluatedRhs}`) ||
|
|
239
|
+
null
|
|
240
|
+
);
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
const JoinMd: JoinMdRenderer = ({ mdText: { lhs, rhs } }) => {
|
|
244
|
+
let normalText = joinAsNormalText(lhs, rhs);
|
|
245
|
+
return normalText ? (
|
|
246
|
+
<NormalTextMd mdText={normalText} />
|
|
247
|
+
) : (
|
|
248
|
+
<>
|
|
249
|
+
<AssistantMd mdText={lhs} />
|
|
250
|
+
<AssistantMd mdText={rhs} />
|
|
251
|
+
</>
|
|
252
|
+
);
|
|
253
|
+
};
|
|
230
254
|
|
|
231
255
|
const mdTypeRenderers = {
|
|
232
256
|
normal_text: NormalTextMd,
|
|
Binary file
|
|
Binary file
|
|
Binary file
|