@mirai/ui 2.1.100 → 2.1.101
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.
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
4
3
|
Object.defineProperty(exports, "__esModule", {
|
|
5
4
|
value: true
|
|
6
5
|
});
|
|
7
6
|
exports.parseMarkdown = void 0;
|
|
8
7
|
var _react = _interopRequireDefault(require("react"));
|
|
9
8
|
var _helpers = require("../../Primitive/helpers");
|
|
10
|
-
var _excluded = ["
|
|
9
|
+
var _excluded = ["end"],
|
|
10
|
+
_excluded2 = ["text"];
|
|
11
11
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
12
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
12
13
|
function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) { o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } } return i; }
|
|
13
14
|
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) { if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } } return t; }
|
|
14
15
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
@@ -16,14 +17,6 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
|
|
|
16
17
|
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
17
18
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
18
19
|
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
19
|
-
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
20
|
-
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
21
|
-
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
22
|
-
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) { n[e] = r[e]; } return n; }
|
|
23
|
-
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0) { ; } } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
24
|
-
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
25
|
-
var LINK_REGEXP = /\[(.*?)\]\((.*?)\)/;
|
|
26
|
-
var MARKDOWN_REGEXP = /(\*\*|\*|_|~~|\[|\{)(.+?)(?:\1|\)|\})/g;
|
|
27
20
|
var SPACE_REGEXP = /\s/g;
|
|
28
21
|
var STYLE = {
|
|
29
22
|
BINDING: {
|
|
@@ -59,57 +52,150 @@ var STYLE = {
|
|
|
59
52
|
}
|
|
60
53
|
}
|
|
61
54
|
};
|
|
55
|
+
var DELIMITER_STYLE = {
|
|
56
|
+
'**': STYLE.BOLD,
|
|
57
|
+
'*': STYLE.ITALIC,
|
|
58
|
+
_: STYLE.UNDERLINE,
|
|
59
|
+
'~~': STYLE.LINE_THROUGH
|
|
60
|
+
};
|
|
61
|
+
var isLineBreak = function isLineBreak(character) {
|
|
62
|
+
return character === '\n' || character === '\r' || character === "\u2028" || character === "\u2029";
|
|
63
|
+
};
|
|
64
|
+
var isEscaped = function isEscaped(value, index) {
|
|
65
|
+
var backslashes = 0;
|
|
66
|
+
for (var cursor = index - 1; cursor >= 0 && value[cursor] === '\\'; cursor -= 1) {
|
|
67
|
+
backslashes += 1;
|
|
68
|
+
}
|
|
69
|
+
return backslashes % 2 === 1;
|
|
70
|
+
};
|
|
71
|
+
var getLinks = function getLinks(value) {
|
|
72
|
+
var links = new Map();
|
|
73
|
+
var openingBrackets = [];
|
|
74
|
+
var openingLinkBrackets = [];
|
|
75
|
+
var openingParentheses = [];
|
|
76
|
+
var pendingLinkBracket;
|
|
77
|
+
for (var index = 0; index < value.length; index += 1) {
|
|
78
|
+
var character = value[index];
|
|
79
|
+
if (isLineBreak(character)) {
|
|
80
|
+
openingBrackets.length = 0;
|
|
81
|
+
openingLinkBrackets.length = 0;
|
|
82
|
+
openingParentheses.length = 0;
|
|
83
|
+
pendingLinkBracket = undefined;
|
|
84
|
+
} else if (character === '[' && !isEscaped(value, index)) {
|
|
85
|
+
openingBrackets.push(index);
|
|
86
|
+
} else if (character === ']' && !isEscaped(value, index) && openingBrackets.length) {
|
|
87
|
+
var openingBracketIndex = openingBrackets.pop();
|
|
88
|
+
if (value[index + 1] === '(') pendingLinkBracket = openingBracketIndex;
|
|
89
|
+
} else if (character === '(' && !isEscaped(value, index)) {
|
|
90
|
+
openingParentheses.push(index);
|
|
91
|
+
openingLinkBrackets.push(pendingLinkBracket);
|
|
92
|
+
pendingLinkBracket = undefined;
|
|
93
|
+
} else if (character === ')' && !isEscaped(value, index) && openingParentheses.length) {
|
|
94
|
+
var openingParenthesisIndex = openingParentheses.pop();
|
|
95
|
+
var _openingBracketIndex = openingLinkBrackets.pop();
|
|
96
|
+
if (_openingBracketIndex !== undefined) {
|
|
97
|
+
links.set(_openingBracketIndex, {
|
|
98
|
+
closingBracket: openingParenthesisIndex - 1,
|
|
99
|
+
closingParenthesis: index,
|
|
100
|
+
openingParenthesis: openingParenthesisIndex
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
return links;
|
|
106
|
+
};
|
|
107
|
+
var getDelimiter = function getDelimiter(value, index) {
|
|
108
|
+
if (value[index] !== '*' && value[index] !== '_' && value[index] !== '~') return undefined;
|
|
109
|
+
if (isEscaped(value, index)) return undefined;
|
|
110
|
+
if (value.startsWith('**', index)) return '**';
|
|
111
|
+
if (value.startsWith('~~', index)) return '~~';
|
|
112
|
+
if (value[index] === '*' || value[index] === '_') return value[index];
|
|
113
|
+
return undefined;
|
|
114
|
+
};
|
|
115
|
+
var hasLineBreak = function hasLineBreak(value, start, end) {
|
|
116
|
+
for (var index = start; index < end; index += 1) {
|
|
117
|
+
if (isLineBreak(value[index])) return true;
|
|
118
|
+
}
|
|
119
|
+
return false;
|
|
120
|
+
};
|
|
121
|
+
var getClosingDelimiter = function getClosingDelimiter(value, delimiter, index) {
|
|
122
|
+
var contentIndex = index + delimiter.length;
|
|
123
|
+
var closingIndex = value.indexOf(delimiter, contentIndex + 1);
|
|
124
|
+
while (closingIndex !== -1 && isEscaped(value, closingIndex)) {
|
|
125
|
+
closingIndex = value.indexOf(delimiter, closingIndex + 1);
|
|
126
|
+
}
|
|
127
|
+
if (closingIndex === -1) return -1;
|
|
128
|
+
if (hasLineBreak(value, contentIndex, closingIndex)) return -1;
|
|
129
|
+
return closingIndex;
|
|
130
|
+
};
|
|
131
|
+
var getLink = function getLink(value, index, links) {
|
|
132
|
+
var link = links.get(index);
|
|
133
|
+
if (!link || link.closingParenthesis === link.openingParenthesis + 1) return undefined;
|
|
134
|
+
var href = value.slice(link.openingParenthesis + 1, link.closingParenthesis);
|
|
135
|
+
var text = value.slice(index + 1, link.closingBracket);
|
|
136
|
+
if (!text.trim() || !href.trim()) return undefined;
|
|
137
|
+
return _objectSpread({
|
|
138
|
+
end: link.closingParenthesis + 1,
|
|
139
|
+
href: href,
|
|
140
|
+
text: text
|
|
141
|
+
}, STYLE.LINK);
|
|
142
|
+
};
|
|
143
|
+
var getBinding = function getBinding(value, index) {
|
|
144
|
+
for (var cursor = index + 1; cursor < value.length; cursor += 1) {
|
|
145
|
+
var character = value[cursor];
|
|
146
|
+
if (isLineBreak(character) || character === '{' && !isEscaped(value, cursor)) return undefined;
|
|
147
|
+
if (character !== '}' || isEscaped(value, cursor)) continue;
|
|
148
|
+
if (cursor === index + 1) return undefined;
|
|
149
|
+
return _objectSpread({
|
|
150
|
+
end: cursor + 1,
|
|
151
|
+
text: value.slice(index, cursor + 1)
|
|
152
|
+
}, STYLE.BINDING);
|
|
153
|
+
}
|
|
154
|
+
return undefined;
|
|
155
|
+
};
|
|
62
156
|
var parseMarkdown = function parseMarkdown(value) {
|
|
63
157
|
var tag = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'text';
|
|
64
|
-
if (!value || typeof value !== 'string' || value.match(SPACE_REGEXP) === null
|
|
158
|
+
if (!value || typeof value !== 'string' || value.match(SPACE_REGEXP) === null) {
|
|
65
159
|
return value;
|
|
66
160
|
}
|
|
67
161
|
var tokens = [];
|
|
68
162
|
var lastIndex = 0;
|
|
69
|
-
var
|
|
70
|
-
|
|
71
|
-
var
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
text: text
|
|
87
|
-
}, STYLE.LINE_THROUGH));else if (start === '{') tokens.push(_objectSpread({
|
|
88
|
-
text: raw
|
|
89
|
-
}, STYLE.BINDING));else if (start === '[') {
|
|
90
|
-
var _ref = raw.match(LINK_REGEXP) || [],
|
|
91
|
-
_ref2 = _slicedToArray(_ref, 3),
|
|
92
|
-
title = _ref2[1],
|
|
93
|
-
href = _ref2[2];
|
|
94
|
-
tokens.push(href ? _objectSpread({
|
|
95
|
-
text: title,
|
|
96
|
-
href: href
|
|
97
|
-
}, STYLE.LINK) : {
|
|
98
|
-
text: raw
|
|
99
|
-
});
|
|
100
|
-
} else {
|
|
101
|
-
tokens.push({
|
|
102
|
-
text: raw
|
|
103
|
-
});
|
|
163
|
+
var links;
|
|
164
|
+
for (var index = 0; index < value.length; index += 1) {
|
|
165
|
+
var delimiter = getDelimiter(value, index);
|
|
166
|
+
var token = void 0;
|
|
167
|
+
if (delimiter) {
|
|
168
|
+
var closingIndex = getClosingDelimiter(value, delimiter, index);
|
|
169
|
+
if (closingIndex !== -1) {
|
|
170
|
+
token = _objectSpread({
|
|
171
|
+
end: closingIndex + delimiter.length,
|
|
172
|
+
text: value.slice(index + delimiter.length, closingIndex)
|
|
173
|
+
}, DELIMITER_STYLE[delimiter]);
|
|
174
|
+
}
|
|
175
|
+
} else if (value[index] === '[' && !isEscaped(value, index)) {
|
|
176
|
+
if (!links) links = getLinks(value);
|
|
177
|
+
token = getLink(value, index, links);
|
|
178
|
+
} else if (value[index] === '{' && !isEscaped(value, index)) {
|
|
179
|
+
token = getBinding(value, index);
|
|
104
180
|
}
|
|
105
|
-
|
|
181
|
+
if (!token) continue;
|
|
182
|
+
if (value.slice(lastIndex, index)) tokens.push({
|
|
183
|
+
text: value.slice(lastIndex, index)
|
|
184
|
+
});
|
|
185
|
+
var _token = token,
|
|
186
|
+
end = _token.end,
|
|
187
|
+
parsedToken = _objectWithoutProperties(_token, _excluded);
|
|
188
|
+
tokens.push(parsedToken);
|
|
189
|
+
lastIndex = end;
|
|
190
|
+
index = end - 1;
|
|
106
191
|
}
|
|
192
|
+
if (!tokens.length) return value;
|
|
107
193
|
if (value.slice(lastIndex)) tokens.push({
|
|
108
194
|
text: value.slice(lastIndex)
|
|
109
195
|
});
|
|
110
|
-
return tokens.map(function (
|
|
111
|
-
var text =
|
|
112
|
-
props = _objectWithoutProperties(
|
|
196
|
+
return tokens.map(function (_ref, index) {
|
|
197
|
+
var text = _ref.text,
|
|
198
|
+
props = _objectWithoutProperties(_ref, _excluded2);
|
|
113
199
|
return Object.keys(props).length ? /*#__PURE__*/_react["default"].createElement(props.href ? 'a' : (0, _helpers.getTag)(tag), _objectSpread({
|
|
114
200
|
key: index
|
|
115
201
|
}, props), text) : text;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseMarkdown.js","names":["_react","_interopRequireDefault","require","_helpers","_excluded","e","__esModule","_objectWithoutProperties","t","o","r","i","_objectWithoutPropertiesLoose","Object","getOwnPropertySymbols","s","length","includes","propertyIsEnumerable","call","n","hasOwnProperty","ownKeys","keys","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","_toPrimitive","_typeof","Symbol","toPrimitive","TypeError","String","Number","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","a","_arrayLikeToArray","toString","slice","constructor","name","Array","from","test","l","iterator","u","f","next","done","isArray","LINK_REGEXP","MARKDOWN_REGEXP","SPACE_REGEXP","STYLE","BINDING","style","color","fontWeight","BOLD","ITALIC","fontStyle","LINE_THROUGH","textDecoration","LINK","UNDERLINE","parseMarkdown","tag","undefined","match","tokens","lastIndex","exec","_match","_match2","raw","start","text","index","_ref","_ref2","title","href","map","_ref3","props","React","createElement","getTag","key","exports"],"sources":["../../../../src/primitives/Text/helpers/parseMarkdown.js"],"sourcesContent":["import React from 'react';\n\nimport { getTag } from '../../Primitive/helpers';\n\nconst LINK_REGEXP = /\\[(.*?)\\]\\((.*?)\\)/;\nconst MARKDOWN_REGEXP = /(\\*\\*|\\*|_|~~|\\[|\\{)(.+?)(?:\\1|\\)|\\})/g;\nconst SPACE_REGEXP = /\\s/g;\n\nconst STYLE = {\n BINDING: { style: { color: 'var(--mirai-ui-accent)', fontWeight: 'bold' } },\n BOLD: { style: { fontWeight: 'bold' } },\n ITALIC: { style: { fontStyle: 'italic' } },\n LINE_THROUGH: { style: { textDecoration: 'line-through' } },\n LINK: { style: { textDecoration: 'underline', color: 'var(--mirai-ui-accent)' } },\n UNDERLINE: { style: { textDecoration: 'underline' } },\n};\n\nexport const parseMarkdown = (value, tag = 'text') => {\n if (\n !value ||\n typeof value !== 'string' ||\n value.match(SPACE_REGEXP) === null ||\n value.match(MARKDOWN_REGEXP) === null\n ) {\n return value;\n }\n\n const tokens = [];\n let lastIndex = 0;\n let match;\n\n while ((match = MARKDOWN_REGEXP.exec(value)) !== null) {\n const [raw, start, text] = match;\n\n if (value.slice(lastIndex, match.index)) tokens.push({ text: value.slice(lastIndex, match.index) });\n\n if (start === '**') tokens.push({ text, ...STYLE.BOLD });\n else if (start === '*') tokens.push({ text, ...STYLE.ITALIC });\n else if (start === '_') tokens.push({ text, ...STYLE.UNDERLINE });\n else if (start === '~~') tokens.push({ text, ...STYLE.LINE_THROUGH });\n else if (start === '{') tokens.push({ text: raw, ...STYLE.BINDING });\n else if (start === '[') {\n const [, title, href] = raw.match(LINK_REGEXP) || [];\n tokens.push(href ? { text: title, href, ...STYLE.LINK } : { text: raw });\n } else {\n tokens.push({ text: raw });\n }\n\n ({ lastIndex } = MARKDOWN_REGEXP);\n }\n\n if (value.slice(lastIndex)) tokens.push({ text: value.slice(lastIndex) });\n\n return tokens.map(({ text, ...props }, index) =>\n Object.keys(props).length\n ? React.createElement(props.href ? 'a' : getTag(tag), { key: index, ...props }, text)\n : text,\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"parseMarkdown.js","names":["_react","_interopRequireDefault","require","_helpers","_excluded","_excluded2","e","__esModule","_typeof","o","Symbol","iterator","constructor","prototype","_objectWithoutProperties","t","r","i","_objectWithoutPropertiesLoose","Object","getOwnPropertySymbols","s","length","includes","propertyIsEnumerable","call","n","hasOwnProperty","ownKeys","keys","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","_toPrimitive","toPrimitive","TypeError","String","Number","SPACE_REGEXP","STYLE","BINDING","style","color","fontWeight","BOLD","ITALIC","fontStyle","LINE_THROUGH","textDecoration","LINK","UNDERLINE","DELIMITER_STYLE","_","isLineBreak","character","isEscaped","index","backslashes","cursor","getLinks","links","Map","openingBrackets","openingLinkBrackets","openingParentheses","pendingLinkBracket","undefined","openingBracketIndex","pop","openingParenthesisIndex","set","closingBracket","closingParenthesis","openingParenthesis","getDelimiter","startsWith","hasLineBreak","start","end","getClosingDelimiter","delimiter","contentIndex","closingIndex","indexOf","getLink","link","get","href","slice","text","trim","getBinding","parseMarkdown","tag","match","tokens","lastIndex","token","_token","parsedToken","map","_ref","props","React","createElement","getTag","key","exports"],"sources":["../../../../src/primitives/Text/helpers/parseMarkdown.js"],"sourcesContent":["import React from 'react';\n\nimport { getTag } from '../../Primitive/helpers';\n\nconst SPACE_REGEXP = /\\s/g;\n\nconst STYLE = {\n BINDING: { style: { color: 'var(--mirai-ui-accent)', fontWeight: 'bold' } },\n BOLD: { style: { fontWeight: 'bold' } },\n ITALIC: { style: { fontStyle: 'italic' } },\n LINE_THROUGH: { style: { textDecoration: 'line-through' } },\n LINK: { style: { textDecoration: 'underline', color: 'var(--mirai-ui-accent)' } },\n UNDERLINE: { style: { textDecoration: 'underline' } },\n};\n\nconst DELIMITER_STYLE = {\n '**': STYLE.BOLD,\n '*': STYLE.ITALIC,\n _: STYLE.UNDERLINE,\n '~~': STYLE.LINE_THROUGH,\n};\n\nconst isLineBreak = (character) =>\n character === '\\n' || character === '\\r' || character === '\\u2028' || character === '\\u2029';\n\nconst isEscaped = (value, index) => {\n let backslashes = 0;\n\n for (let cursor = index - 1; cursor >= 0 && value[cursor] === '\\\\'; cursor -= 1) backslashes += 1;\n\n return backslashes % 2 === 1;\n};\n\nconst getLinks = (value) => {\n const links = new Map();\n const openingBrackets = [];\n const openingLinkBrackets = [];\n const openingParentheses = [];\n let pendingLinkBracket;\n\n for (let index = 0; index < value.length; index += 1) {\n const character = value[index];\n\n if (isLineBreak(character)) {\n openingBrackets.length = 0;\n openingLinkBrackets.length = 0;\n openingParentheses.length = 0;\n pendingLinkBracket = undefined;\n } else if (character === '[' && !isEscaped(value, index)) {\n openingBrackets.push(index);\n } else if (character === ']' && !isEscaped(value, index) && openingBrackets.length) {\n const openingBracketIndex = openingBrackets.pop();\n\n if (value[index + 1] === '(') pendingLinkBracket = openingBracketIndex;\n } else if (character === '(' && !isEscaped(value, index)) {\n openingParentheses.push(index);\n openingLinkBrackets.push(pendingLinkBracket);\n pendingLinkBracket = undefined;\n } else if (character === ')' && !isEscaped(value, index) && openingParentheses.length) {\n const openingParenthesisIndex = openingParentheses.pop();\n const openingBracketIndex = openingLinkBrackets.pop();\n\n if (openingBracketIndex !== undefined) {\n links.set(openingBracketIndex, {\n closingBracket: openingParenthesisIndex - 1,\n closingParenthesis: index,\n openingParenthesis: openingParenthesisIndex,\n });\n }\n }\n }\n\n return links;\n};\n\nconst getDelimiter = (value, index) => {\n if (value[index] !== '*' && value[index] !== '_' && value[index] !== '~') return undefined;\n if (isEscaped(value, index)) return undefined;\n if (value.startsWith('**', index)) return '**';\n if (value.startsWith('~~', index)) return '~~';\n if (value[index] === '*' || value[index] === '_') return value[index];\n return undefined;\n};\n\nconst hasLineBreak = (value, start, end) => {\n for (let index = start; index < end; index += 1) {\n if (isLineBreak(value[index])) return true;\n }\n\n return false;\n};\n\nconst getClosingDelimiter = (value, delimiter, index) => {\n const contentIndex = index + delimiter.length;\n let closingIndex = value.indexOf(delimiter, contentIndex + 1);\n\n while (closingIndex !== -1 && isEscaped(value, closingIndex)) {\n closingIndex = value.indexOf(delimiter, closingIndex + 1);\n }\n\n if (closingIndex === -1) return -1;\n if (hasLineBreak(value, contentIndex, closingIndex)) return -1;\n\n return closingIndex;\n};\n\nconst getLink = (value, index, links) => {\n const link = links.get(index);\n\n if (!link || link.closingParenthesis === link.openingParenthesis + 1) return undefined;\n\n const href = value.slice(link.openingParenthesis + 1, link.closingParenthesis);\n const text = value.slice(index + 1, link.closingBracket);\n\n if (!text.trim() || !href.trim()) return undefined;\n\n return {\n end: link.closingParenthesis + 1,\n href,\n text,\n ...STYLE.LINK,\n };\n};\n\nconst getBinding = (value, index) => {\n for (let cursor = index + 1; cursor < value.length; cursor += 1) {\n const character = value[cursor];\n\n if (isLineBreak(character) || (character === '{' && !isEscaped(value, cursor))) return undefined;\n if (character !== '}' || isEscaped(value, cursor)) continue;\n if (cursor === index + 1) return undefined;\n\n return { end: cursor + 1, text: value.slice(index, cursor + 1), ...STYLE.BINDING };\n }\n\n return undefined;\n};\n\nexport const parseMarkdown = (value, tag = 'text') => {\n if (!value || typeof value !== 'string' || value.match(SPACE_REGEXP) === null) {\n return value;\n }\n\n const tokens = [];\n let lastIndex = 0;\n let links;\n\n for (let index = 0; index < value.length; index += 1) {\n const delimiter = getDelimiter(value, index);\n let token;\n\n if (delimiter) {\n const closingIndex = getClosingDelimiter(value, delimiter, index);\n\n if (closingIndex !== -1) {\n token = {\n end: closingIndex + delimiter.length,\n text: value.slice(index + delimiter.length, closingIndex),\n ...DELIMITER_STYLE[delimiter],\n };\n }\n } else if (value[index] === '[' && !isEscaped(value, index)) {\n if (!links) links = getLinks(value);\n token = getLink(value, index, links);\n } else if (value[index] === '{' && !isEscaped(value, index)) {\n token = getBinding(value, index);\n }\n\n if (!token) continue;\n\n if (value.slice(lastIndex, index)) tokens.push({ text: value.slice(lastIndex, index) });\n\n const { end, ...parsedToken } = token;\n tokens.push(parsedToken);\n lastIndex = end;\n index = end - 1;\n }\n\n if (!tokens.length) return value;\n if (value.slice(lastIndex)) tokens.push({ text: value.slice(lastIndex) });\n\n return tokens.map(({ text, ...props }, index) =>\n Object.keys(props).length\n ? React.createElement(props.href ? 'a' : getTag(tag), { key: index, ...props }, text)\n : text,\n );\n};\n"],"mappings":"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","ignoreList":[]}
|