@matechat/ng 20.0.1-alpha.0 → 20.1.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/README.md +206 -41
  2. package/fesm2022/matechat-ng.mjs +71 -70
  3. package/fesm2022/matechat-ng.mjs.map +1 -1
  4. package/index.d.ts +612 -3
  5. package/package.json +14 -3
  6. package/Base/base.component.d.ts +0 -11
  7. package/Bubble/avatar/avatar.component.d.ts +0 -23
  8. package/Bubble/avatar-body-icon/avatar-body-icon.component.d.ts +0 -7
  9. package/Bubble/avatar-no-body-icon/avatar-no-body-icon.component.d.ts +0 -7
  10. package/Bubble/bubble-loading/bubble-loading.component.d.ts +0 -5
  11. package/Bubble/bubble.component.d.ts +0 -26
  12. package/Bubble/bubble.module.d.ts +0 -10
  13. package/Bubble/index.d.ts +0 -6
  14. package/Input/button/button.component.d.ts +0 -32
  15. package/Input/index.d.ts +0 -2
  16. package/Input/input.component.d.ts +0 -65
  17. package/Input/input.module.d.ts +0 -11
  18. package/Input/send-icon/send-icon.component.d.ts +0 -5
  19. package/Locale/index.d.ts +0 -5
  20. package/Locale/locale.module.d.ts +0 -17
  21. package/Locale/locale.service.d.ts +0 -50
  22. package/Locale/translate.pipe.d.ts +0 -23
  23. package/MarkdownCard/code-block.component.d.ts +0 -49
  24. package/MarkdownCard/index.d.ts +0 -3
  25. package/MarkdownCard/markdown-card.component.d.ts +0 -200
  26. package/MarkdownCard/markdown-card.module.d.ts +0 -13
  27. package/components-common/Base/foundation.d.ts +0 -45
  28. package/components-common/Bubble/common/bubble-constants.d.ts +0 -4
  29. package/components-common/Bubble/common/bubble-types.d.ts +0 -12
  30. package/components-common/Bubble/foundation.d.ts +0 -9
  31. package/components-common/Input/button-foundation.d.ts +0 -15
  32. package/components-common/Input/common/types.d.ts +0 -16
  33. package/components-common/Input/foundation.d.ts +0 -20
  34. package/components-common/Locale/lang/en-us.d.ts +0 -26
  35. package/components-common/Locale/lang/zh-cn.d.ts +0 -26
  36. package/components-common/MarkdownCard/codeblock-foundation.d.ts +0 -21
  37. package/components-common/MarkdownCard/common/MDCardService.d.ts +0 -14
  38. package/components-common/MarkdownCard/common/MermaidService.d.ts +0 -23
  39. package/components-common/MarkdownCard/common/mdCard.types.d.ts +0 -56
  40. package/components-common/MarkdownCard/common/parser.d.ts +0 -150
  41. package/components-common/MarkdownCard/foundation.d.ts +0 -38
  42. package/esm2022/Base/base.component.mjs +0 -46
  43. package/esm2022/Bubble/avatar/avatar.component.mjs +0 -121
  44. package/esm2022/Bubble/avatar-body-icon/avatar-body-icon.component.mjs +0 -19
  45. package/esm2022/Bubble/avatar-no-body-icon/avatar-no-body-icon.component.mjs +0 -19
  46. package/esm2022/Bubble/bubble-loading/bubble-loading.component.mjs +0 -11
  47. package/esm2022/Bubble/bubble.component.mjs +0 -89
  48. package/esm2022/Bubble/bubble.module.mjs +0 -36
  49. package/esm2022/Bubble/index.mjs +0 -7
  50. package/esm2022/Input/button/button.component.mjs +0 -83
  51. package/esm2022/Input/index.mjs +0 -3
  52. package/esm2022/Input/input.component.mjs +0 -285
  53. package/esm2022/Input/input.module.mjs +0 -34
  54. package/esm2022/Input/send-icon/send-icon.component.mjs +0 -11
  55. package/esm2022/Locale/index.mjs +0 -6
  56. package/esm2022/Locale/locale.module.mjs +0 -39
  57. package/esm2022/Locale/locale.service.mjs +0 -140
  58. package/esm2022/Locale/translate.pipe.mjs +0 -38
  59. package/esm2022/MarkdownCard/code-block.component.mjs +0 -175
  60. package/esm2022/MarkdownCard/index.mjs +0 -4
  61. package/esm2022/MarkdownCard/markdown-card.component.mjs +0 -436
  62. package/esm2022/MarkdownCard/markdown-card.module.mjs +0 -44
  63. package/esm2022/components-common/Base/foundation.mjs +0 -66
  64. package/esm2022/components-common/Bubble/common/bubble-constants.mjs +0 -5
  65. package/esm2022/components-common/Bubble/common/bubble-types.mjs +0 -2
  66. package/esm2022/components-common/Bubble/foundation.mjs +0 -30
  67. package/esm2022/components-common/Input/button-foundation.mjs +0 -33
  68. package/esm2022/components-common/Input/common/types.mjs +0 -21
  69. package/esm2022/components-common/Input/foundation.mjs +0 -71
  70. package/esm2022/components-common/Locale/lang/en-us.mjs +0 -26
  71. package/esm2022/components-common/Locale/lang/zh-cn.mjs +0 -26
  72. package/esm2022/components-common/MarkdownCard/codeblock-foundation.mjs +0 -132
  73. package/esm2022/components-common/MarkdownCard/common/MDCardService.mjs +0 -69
  74. package/esm2022/components-common/MarkdownCard/common/MermaidService.mjs +0 -222
  75. package/esm2022/components-common/MarkdownCard/common/mdCard.types.mjs +0 -6
  76. package/esm2022/components-common/MarkdownCard/common/parser.mjs +0 -194
  77. package/esm2022/components-common/MarkdownCard/foundation.mjs +0 -84
  78. package/esm2022/matechat-ng.mjs +0 -5
  79. package/esm2022/public-api.mjs +0 -8
  80. package/public-api.d.ts +0 -4
@@ -1,222 +0,0 @@
1
- export class MermaidService {
2
- constructor(config = {}) {
3
- this.config = config;
4
- this.mermaidInstance = null;
5
- this.isLoading = false;
6
- this.lastValidResult = '';
7
- this.viewStateMap = new WeakMap();
8
- this.containerHeight = 400;
9
- }
10
- async loadMermaid() {
11
- if (this.mermaidInstance) {
12
- return this.mermaidInstance;
13
- }
14
- if (this.isLoading) {
15
- return new Promise((resolve) => {
16
- const checkInstance = () => {
17
- if (this.mermaidInstance) {
18
- resolve(this.mermaidInstance);
19
- }
20
- else {
21
- setTimeout(checkInstance, 50);
22
- }
23
- };
24
- checkInstance();
25
- });
26
- }
27
- this.isLoading = true;
28
- try {
29
- const { default: mermaid } = await import('mermaid');
30
- mermaid.initialize({
31
- theme: this.config.theme || 'default',
32
- startOnLoad: false,
33
- suppressErrorRendering: true,
34
- ...this.config
35
- });
36
- this.mermaidInstance = mermaid;
37
- return mermaid;
38
- }
39
- catch (error) {
40
- console.error('Failed to load mermaid:', error);
41
- throw new Error('Failed to load mermaid library');
42
- }
43
- finally {
44
- this.isLoading = false;
45
- }
46
- }
47
- async renderToContainer(container, code, theme = 'light') {
48
- const svgStr = await this.renderMermaid(code, theme);
49
- container.innerHTML = svgStr;
50
- const svg = container.querySelector('svg');
51
- if (svg) {
52
- this.initViewState(container, svg);
53
- this.applyTransform(container, svg);
54
- svg.addEventListener('mousedown', (e) => this.onSvgMouseDown(e, container, svg));
55
- }
56
- }
57
- initViewState(container, svg) {
58
- // 获取svg的viewBox或宽高
59
- let vb = svg.getAttribute('viewBox');
60
- let svgW = 0, svgH = 0;
61
- if (vb) {
62
- const arr = vb.split(/\s+/);
63
- svgW = parseFloat(arr[2]);
64
- svgH = parseFloat(arr[3]);
65
- }
66
- else {
67
- svgW = svg.width.baseVal.value || svg.getBoundingClientRect().width;
68
- svgH = svg.height.baseVal.value || svg.getBoundingClientRect().height;
69
- }
70
- const contW = container.clientWidth || 0;
71
- const contH = this.containerHeight;
72
- let scale = 1;
73
- if (svgW && svgH && contW && contH) {
74
- scale = Math.min(contW / svgW, contH / svgH, 1);
75
- }
76
- this.viewStateMap.set(container, {
77
- scale,
78
- offsetX: 0,
79
- offsetY: 0,
80
- dragging: false,
81
- dragStart: { x: 0, y: 0 },
82
- lastOffset: { x: 0, y: 0 },
83
- });
84
- }
85
- applyTransform(container, svg) {
86
- const state = this.viewStateMap.get(container);
87
- if (!state)
88
- return;
89
- svg.style.position = 'absolute';
90
- svg.style.left = '50%';
91
- svg.style.top = '50%';
92
- svg.style.transform = `translate(-50%, -50%) translate(${state.offsetX}px, ${state.offsetY}px) scale(${state.scale})`;
93
- svg.style.transformOrigin = 'center center';
94
- svg.style.cursor = state.dragging ? 'grabbing' : 'grab';
95
- }
96
- zoomIn(container) {
97
- const svg = container.querySelector('svg');
98
- const state = this.viewStateMap.get(container);
99
- if (svg && state) {
100
- state.scale = Math.min(state.scale + 0.2, 3);
101
- this.applyTransform(container, svg);
102
- }
103
- }
104
- zoomOut(container) {
105
- const svg = container.querySelector('svg');
106
- const state = this.viewStateMap.get(container);
107
- if (svg && state) {
108
- state.scale = Math.max(state.scale - 0.2, 0.2);
109
- this.applyTransform(container, svg);
110
- }
111
- }
112
- reset(container) {
113
- const svg = container.querySelector('svg');
114
- if (svg) {
115
- this.initViewState(container, svg);
116
- this.applyTransform(container, svg);
117
- }
118
- }
119
- async download(container, filename = 'diagram.png') {
120
- const svg = container.querySelector('svg');
121
- if (!svg)
122
- return;
123
- try {
124
- const clonedSvg = svg.cloneNode(true);
125
- const svgData = new XMLSerializer().serializeToString(clonedSvg);
126
- const svgUrl = `data:image/svg+xml;charset=utf-8,${encodeURIComponent(svgData)}`;
127
- const img = new Image();
128
- await new Promise((resolve, reject) => {
129
- img.onload = () => resolve();
130
- img.onerror = (e) => reject(new Error('Image loading failed'));
131
- img.src = svgUrl;
132
- });
133
- const canvas = document.createElement('canvas');
134
- const ctx = canvas.getContext('2d');
135
- if (!ctx)
136
- throw new Error('Canvas context not available');
137
- canvas.width = img.width * 2;
138
- canvas.height = img.height * 2;
139
- ctx.fillStyle = 'white';
140
- ctx.fillRect(0, 0, canvas.width, canvas.height);
141
- ctx.drawImage(img, 0, 0);
142
- canvas.toBlob((blob) => {
143
- if (!blob) {
144
- console.error('Failed to create blob from canvas');
145
- return;
146
- }
147
- const url = URL.createObjectURL(blob);
148
- const a = document.createElement('a');
149
- a.href = url;
150
- a.download = filename;
151
- document.body.appendChild(a);
152
- a.click();
153
- setTimeout(() => {
154
- document.body.removeChild(a);
155
- URL.revokeObjectURL(url);
156
- }, 100);
157
- }, 'image/png');
158
- }
159
- catch (error) {
160
- console.error('Failed to download diagram:', error);
161
- }
162
- }
163
- onSvgMouseDown(e, container, svg) {
164
- const state = this.viewStateMap.get(container);
165
- if (!state)
166
- return;
167
- state.dragging = true;
168
- state.dragStart = { x: e.clientX, y: e.clientY };
169
- state.lastOffset = { x: state.offsetX, y: state.offsetY };
170
- const move = (ev) => this.onSvgMouseMove(ev, container, svg);
171
- const up = () => this.onSvgMouseUp(container, svg, move, up);
172
- document.addEventListener('mousemove', move);
173
- document.addEventListener('mouseup', up);
174
- this.applyTransform(container, svg);
175
- }
176
- onSvgMouseMove(e, container, svg) {
177
- const state = this.viewStateMap.get(container);
178
- if (!state || !state.dragging)
179
- return;
180
- state.offsetX = state.lastOffset.x + (e.clientX - state.dragStart.x);
181
- state.offsetY = state.lastOffset.y + (e.clientY - state.dragStart.y);
182
- this.applyTransform(container, svg);
183
- }
184
- onSvgMouseUp(container, svg, move, up) {
185
- const state = this.viewStateMap.get(container);
186
- if (!state)
187
- return;
188
- state.dragging = false;
189
- document.removeEventListener('mousemove', move);
190
- document.removeEventListener('mouseup', up);
191
- this.applyTransform(container, svg);
192
- }
193
- async renderMermaid(code, theme = 'light') {
194
- try {
195
- const mermaid = await this.loadMermaid();
196
- if (this.config.theme !== theme) {
197
- this.config.theme = theme;
198
- mermaid.initialize({
199
- startOnLoad: false,
200
- suppressErrorRendering: true,
201
- theme: theme === 'dark' ? 'dark' : 'default',
202
- ...this.config
203
- });
204
- }
205
- const id = `mc_mermaid_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
206
- const { svg } = await mermaid.render(id, code);
207
- this.lastValidResult = svg;
208
- return svg;
209
- }
210
- catch (error) {
211
- return this.lastValidResult;
212
- }
213
- }
214
- // 设置配置
215
- setConfig(config = {}) {
216
- this.config = {
217
- theme: 'default',
218
- ...config
219
- };
220
- }
221
- }
222
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWVybWFpZFNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzLW5nL3NyYy9jb21wb25lbnRzLWNvbW1vbi9NYXJrZG93bkNhcmQvY29tbW9uL01lcm1haWRTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVdBLE1BQU0sT0FBTyxjQUFjO0lBT3pCLFlBQW9CLFNBQXdCLEVBQUU7UUFBMUIsV0FBTSxHQUFOLE1BQU0sQ0FBb0I7UUFOdEMsb0JBQWUsR0FBUSxJQUFJLENBQUM7UUFDNUIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixvQkFBZSxHQUFXLEVBQUUsQ0FBQztRQUM3QixpQkFBWSxHQUFHLElBQUksT0FBTyxFQUFpQyxDQUFDO1FBQzVELG9CQUFlLEdBQUcsR0FBRyxDQUFDO0lBRW1CLENBQUM7SUFFMUMsS0FBSyxDQUFDLFdBQVc7UUFDdkIsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDekIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO1FBQzlCLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNuQixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7Z0JBQzdCLE1BQU0sYUFBYSxHQUFHLEdBQUcsRUFBRTtvQkFDekIsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7d0JBQ3pCLE9BQU8sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7b0JBQ2hDLENBQUM7eUJBQU0sQ0FBQzt3QkFDTixVQUFVLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxDQUFDO29CQUNoQyxDQUFDO2dCQUNILENBQUMsQ0FBQztnQkFDRixhQUFhLEVBQUUsQ0FBQztZQUNsQixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJ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O29CQUM1QixLQUFLLEVBQUUsS0FBSyxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxTQUFTO29CQUM1QyxHQUFHLElBQUksQ0FBQyxNQUFNO2lCQUNmLENBQUMsQ0FBQztZQUNMLENBQUM7WUFDRCxNQUFNLEVBQUUsR0FBRyxjQUFjLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNqRixNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsTUFBTSxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUMvQyxJQUFJLENBQUMsZUFBZSxHQUFHLEdBQUcsQ0FBQztZQUMzQixPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO1FBQzlCLENBQUM7SUFDSCxDQUFDO0lBRUMsT0FBTztJQUNULFNBQVMsQ0FBQyxTQUF3QixFQUFFO1FBQ2xDLElBQUksQ0FBQyxNQUFNLEdBQUc7WUFDWixLQUFLLEVBQUUsU0FBUztZQUNoQixHQUFHLE1BQU07U0FDVixDQUFDO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBNZXJtYWlkQ29uZmlnIH0gZnJvbSAnLi9tZENhcmQudHlwZXMnO1xuXG5pbnRlcmZhY2UgTWVybWFpZFZpZXdTdGF0ZSB7XG4gIHNjYWxlOiBudW1iZXI7XG4gIG9mZnNldFg6IG51bWJlcjtcbiAgb2Zmc2V0WTogbnVtYmVyO1xuICBkcmFnZ2luZzogYm9vbGVhbjtcbiAgZHJhZ1N0YXJ0OiB7IHg6IG51bWJlcjsgeTogbnVtYmVyIH07XG4gIGxhc3RPZmZzZXQ6IHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfTtcbn1cblxuZXhwb3J0IGNsYXNzIE1lcm1haWRTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBtZXJtYWlkSW5zdGFuY2U6IGFueSA9IG51bGw7XG4gIHByaXZhdGUgaXNMb2FkaW5nID0gZmFsc2U7XG4gIHByaXZhdGUgbGFzdFZhbGlkUmVzdWx0OiBzdHJpbmcgPSAnJztcbiAgcHJpdmF0ZSB2aWV3U3RhdGVNYXAgPSBuZXcgV2Vha01hcDxIVE1MRWxlbWVudCwgTWVybWFpZFZpZXdTdGF0ZT4oKTtcbiAgcHJpdmF0ZSBjb250YWluZXJIZWlnaHQgPSA0MDA7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjb25maWc6IE1lcm1haWRDb25maWcgPSB7fSkge31cblxuICBwcml2YXRlIGFzeW5jIGxvYWRNZXJtYWlkKCkge1xuICAgIGlmICh0aGlzLm1lcm1haWRJbnN0YW5jZSkge1xuICAgICAgcmV0dXJuIHRoaXMubWVybWFpZEluc3RhbmNlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmlzTG9hZGluZykge1xuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICAgIGNvbnN0IGNoZWNrSW5zdGFuY2UgPSAoKSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMubWVybWFpZEluc3RhbmNlKSB7XG4gICAgICAgICAgICByZXNvbHZlKHRoaXMubWVybWFpZEluc3RhbmNlKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc2V0VGltZW91dChjaGVja0luc3RhbmNlLCA1MCk7XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBjaGVja0luc3RhbmNlKCk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHsgZGVmYXVsdDogbWVybWFpZCB9ID0gYXdhaXQgaW1wb3J0KCdtZXJtYWlkJykgYXMgYW55O1xuICAgICAgbWVybWFpZC5pbml0aWFsaXplKHtcbiAgICAgICAgdGhlbWU6IHRoaXMuY29uZmlnLnRoZW1lIHx8ICdkZWZhdWx0JyxcbiAgICAgICAgc3RhcnRPbkxvYWQ6IGZhbHNlLFxuICAgICAgICBzdXBwcmVzc0Vycm9yUmVuZGVyaW5nOiB0cnVlLFxuICAgICAgICAuLi50aGlzLmNvbmZpZ1xuICAgICAgfSk7XG4gICAgICB0aGlzLm1lcm1haWRJbnN0YW5jZSA9IG1lcm1haWQ7XG4gICAgICByZXR1cm4gbWVybWFpZDtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIGxvYWQgbWVybWFpZDonLCBlcnJvcik7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZhaWxlZCB0byBsb2FkIG1lcm1haWQgbGlicmFyeScpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHJlbmRlclRvQ29udGFpbmVyKGNvbnRhaW5lcjogSFRNTEVsZW1lbnQsIGNvZGU6IHN0cmluZywgdGhlbWU6ICdsaWdodCcgfCAnZGFyaycgPSAnbGlnaHQnKSB7XG4gICAgY29uc3Qgc3ZnU3RyID0gYXdhaXQgdGhpcy5yZW5kZXJNZXJtYWlkKGNvZGUsIHRoZW1lKTtcbiAgICBjb250YWluZXIuaW5uZXJIVE1MID0gc3ZnU3RyO1xuICAgIGNvbnN0IHN2ZyA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCdzdmcnKTtcbiAgICBpZiAoc3ZnKSB7XG4gICAgICB0aGlzLmluaXRWaWV3U3RhdGUoY29udGFpbmVyLCBzdmcpO1xuICAgICAgdGhpcy5hcHBseVRyYW5zZm9ybShjb250YWluZXIsIHN2Zyk7XG4gICAgICBzdmcuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgKGUpID0+IHRoaXMub25TdmdNb3VzZURvd24oZSwgY29udGFpbmVyLCBzdmcpKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGluaXRWaWV3U3RhdGUoY29udGFpbmVyOiBIVE1MRWxlbWVudCwgc3ZnOiBTVkdTVkdFbGVtZW50KSB7XG4gICAgLy8g6I635Y+Wc3Zn55qEdmlld0JveOaIluWuvemrmFxuICAgIGxldCB2YiA9IHN2Zy5nZXRBdHRyaWJ1dGUoJ3ZpZXdCb3gnKTtcbiAgICBsZXQgc3ZnVyA9IDAsIHN2Z0ggPSAwO1xuICAgIGlmICh2Yikge1xuICAgICAgY29uc3QgYXJyID0gdmIuc3BsaXQoL1xccysvKTtcbiAgICAgIHN2Z1cgPSBwYXJzZUZsb2F0KGFyclsyXSk7XG4gICAgICBzdmdIID0gcGFyc2VGbG9hdChhcnJbM10pO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdmdXID0gc3ZnLndpZHRoLmJhc2VWYWwudmFsdWUgfHwgc3ZnLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoO1xuICAgICAgc3ZnSCA9IHN2Zy5oZWlnaHQuYmFzZVZhbC52YWx1ZSB8fCBzdmcuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0O1xuICAgIH1cbiAgICBjb25zdCBjb250VyA9IGNvbnRhaW5lci5jbGllbnRXaWR0aCB8fCAwO1xuICAgIGNvbnN0IGNvbnRIID0gdGhpcy5jb250YWluZXJIZWlnaHQ7XG4gICAgbGV0IHNjYWxlID0gMTtcbiAgICBpZiAoc3ZnVyAmJiBzdmdIICYmIGNvbnRXICYmIGNvbnRIKSB7XG4gICAgICBzY2FsZSA9IE1hdGgubWluKGNvbnRXIC8gc3ZnVywgY29udEggLyBzdmdILCAxKTtcbiAgICB9XG4gICAgdGhpcy52aWV3U3RhdGVNYXAuc2V0KGNvbnRhaW5lciwge1xuICAgICAgc2NhbGUsXG4gICAgICBvZmZzZXRYOiAwLFxuICAgICAgb2Zmc2V0WTogMCxcbiAgICAgIGRyYWdnaW5nOiBmYWxzZSxcbiAgICAgIGRyYWdTdGFydDogeyB4OiAwLCB5OiAwIH0sXG4gICAgICBsYXN0T2Zmc2V0OiB7IHg6IDAsIHk6IDAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlUcmFuc2Zvcm0oY29udGFpbmVyOiBIVE1MRWxlbWVudCwgc3ZnOiBTVkdTVkdFbGVtZW50KSB7XG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLnZpZXdTdGF0ZU1hcC5nZXQoY29udGFpbmVyKTtcbiAgICBpZiAoIXN0YXRlKSByZXR1cm47XG4gICAgc3ZnLnN0eWxlLnBvc2l0aW9uID0gJ2Fic29sdXRlJztcbiAgICBzdmcuc3R5bGUubGVmdCA9ICc1MCUnO1xuICAgIHN2Zy5zdHlsZS50b3AgPSAnNTAlJztcbiAgICBzdmcuc3R5bGUudHJhbnNmb3JtID0gYHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSB0cmFuc2xhdGUoJHtzdGF0ZS5vZmZzZXRYfXB4LCAke3N0YXRlLm9mZnNldFl9cHgpIHNjYWxlKCR7c3RhdGUuc2NhbGV9KWA7XG4gICAgc3ZnLnN0eWxlLnRyYW5zZm9ybU9yaWdpbiA9ICdjZW50ZXIgY2VudGVyJztcbiAgICBzdmcuc3R5bGUuY3Vyc29yID0gc3RhdGUuZHJhZ2dpbmcgPyAnZ3JhYmJpbmcnIDogJ2dyYWInO1xuICB9XG5cbiAgem9vbUluKGNvbnRhaW5lcjogSFRNTEVsZW1lbnQpIHtcbiAgICBjb25zdCBzdmcgPSBjb250YWluZXIucXVlcnlTZWxlY3Rvcignc3ZnJyk7XG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLnZpZXdTdGF0ZU1hcC5nZXQoY29udGFpbmVyKTtcbiAgICBpZiAoc3ZnICYmIHN0YXRlKSB7XG4gICAgICBzdGF0ZS5zY2FsZSA9IE1hdGgubWluKHN0YXRlLnNjYWxlICsgMC4yLCAzKTtcbiAgICAgIHRoaXMuYXBwbHlUcmFuc2Zvcm0oY29udGFpbmVyLCBzdmcpO1xuICAgIH1cbiAgfVxuXG4gIHpvb21PdXQoY29udGFpbmVyOiBIVE1MRWxlbWVudCkge1xuICAgIGNvbnN0IHN2ZyA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCdzdmcnKTtcbiAgICBjb25zdCBzdGF0ZSA9IHRoaXMudmlld1N0YXRlTWFwLmdldChjb250YWluZXIpO1xuICAgIGlmIChzdmcgJiYgc3RhdGUpIHtcbiAgICAgIHN0YXRlLnNjYWxlID0gTWF0aC5tYXgoc3RhdGUuc2NhbGUgLSAwLjIsIDAuMik7XG4gICAgICB0aGlzLmFwcGx5VHJhbnNmb3JtKGNvbnRhaW5lciwgc3ZnKTtcbiAgICB9XG4gIH1cblxuICByZXNldChjb250YWluZXI6IEhUTUxFbGVtZW50KSB7XG4gICAgY29uc3Qgc3ZnID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJ3N2ZycpO1xuICAgIGlmIChzdmcpIHtcbiAgICAgIHRoaXMuaW5pdFZpZXdTdGF0ZShjb250YWluZXIsIHN2Zyk7XG4gICAgICB0aGlzLmFwcGx5VHJhbnNmb3JtKGNvbnRhaW5lciwgc3ZnKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBkb3dubG9hZChjb250YWluZXI6IEhUTUxFbGVtZW50LCBmaWxlbmFtZTogc3RyaW5nID0gJ2RpYWdyYW0ucG5nJyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHN2ZyA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCdzdmcnKTtcbiAgICBpZiAoIXN2ZykgcmV0dXJuO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGNsb25lZFN2ZyA9IHN2Zy5jbG9uZU5vZGUodHJ1ZSkgYXMgU1ZHU1ZHRWxlbWVudDtcblxuICAgICAgY29uc3Qgc3ZnRGF0YSA9IG5ldyBYTUxTZXJpYWxpemVyKCkuc2VyaWFsaXplVG9TdHJpbmcoY2xvbmVkU3ZnKTtcbiAgICAgIFxuICAgICAgY29uc3Qgc3ZnVXJsID0gYGRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0Zi04LCR7ZW5jb2RlVVJJQ29tcG9uZW50KHN2Z0RhdGEpfWA7XG5cbiAgICAgIGNvbnN0IGltZyA9IG5ldyBJbWFnZSgpO1xuICAgICAgYXdhaXQgbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICBpbWcub25sb2FkID0gKCkgPT4gcmVzb2x2ZSgpO1xuICAgICAgICBpbWcub25lcnJvciA9IChlKSA9PiByZWplY3QobmV3IEVycm9yKCdJbWFnZSBsb2FkaW5nIGZhaWxlZCcpKTtcbiAgICAgICAgaW1nLnNyYyA9IHN2Z1VybDtcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTtcbiAgICAgIGNvbnN0IGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpO1xuICAgICAgaWYgKCFjdHgpIHRocm93IG5ldyBFcnJvcignQ2FudmFzIGNvbnRleHQgbm90IGF2YWlsYWJsZScpO1xuXG4gICAgICBjYW52YXMud2lkdGggPSBpbWcud2lkdGggKiAyO1xuICAgICAgY2FudmFzLmhlaWdodCA9IGltZy5oZWlnaHQgKiAyO1xuICAgICAgXG4gICAgICBjdHguZmlsbFN0eWxlID0gJ3doaXRlJztcbiAgICAgIGN0eC5maWxsUmVjdCgwLCAwLCBjYW52YXMud2lkdGgsIGNhbnZhcy5oZWlnaHQpO1xuICAgICAgXG4gICAgICBjdHguZHJhd0ltYWdlKGltZywgMCwgMCk7XG5cbiAgICAgIGNhbnZhcy50b0Jsb2IoKGJsb2IpID0+IHtcbiAgICAgICAgaWYgKCFibG9iKSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIGNyZWF0ZSBibG9iIGZyb20gY2FudmFzJyk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICBjb25zdCB1cmwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xuICAgICAgICBjb25zdCBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xuICAgICAgICBhLmhyZWYgPSB1cmw7XG4gICAgICAgIGEuZG93bmxvYWQgPSBmaWxlbmFtZTtcbiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChhKTtcbiAgICAgICAgYS5jbGljaygpO1xuICAgICAgICBcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChhKTtcbiAgICAgICAgICBVUkwucmV2b2tlT2JqZWN0VVJMKHVybCk7XG4gICAgICAgIH0sIDEwMCk7XG4gICAgICB9LCAnaW1hZ2UvcG5nJyk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBkb3dubG9hZCBkaWFncmFtOicsIGVycm9yKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG9uU3ZnTW91c2VEb3duKGU6IE1vdXNlRXZlbnQsIGNvbnRhaW5lcjogSFRNTEVsZW1lbnQsIHN2ZzogU1ZHU1ZHRWxlbWVudCkge1xuICAgIGNvbnN0IHN0YXRlID0gdGhpcy52aWV3U3RhdGVNYXAuZ2V0KGNvbnRhaW5lcik7XG4gICAgaWYgKCFzdGF0ZSkgcmV0dXJuO1xuICAgIHN0YXRlLmRyYWdnaW5nID0gdHJ1ZTtcbiAgICBzdGF0ZS5kcmFnU3RhcnQgPSB7IHg6IGUuY2xpZW50WCwgeTogZS5jbGllbnRZIH07XG4gICAgc3RhdGUubGFzdE9mZnNldCA9IHsgeDogc3RhdGUub2Zmc2V0WCwgeTogc3RhdGUub2Zmc2V0WSB9O1xuICAgIGNvbnN0IG1vdmUgPSAoZXY6IE1vdXNlRXZlbnQpID0+IHRoaXMub25TdmdNb3VzZU1vdmUoZXYsIGNvbnRhaW5lciwgc3ZnKTtcbiAgICBjb25zdCB1cCA9ICgpID0+IHRoaXMub25TdmdNb3VzZVVwKGNvbnRhaW5lciwgc3ZnLCBtb3ZlLCB1cCk7XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgbW92ZSk7XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIHVwKTtcbiAgICB0aGlzLmFwcGx5VHJhbnNmb3JtKGNvbnRhaW5lciwgc3ZnKTtcbiAgfVxuICBwcml2YXRlIG9uU3ZnTW91c2VNb3ZlKGU6IE1vdXNlRXZlbnQsIGNvbnRhaW5lcjogSFRNTEVsZW1lbnQsIHN2ZzogU1ZHU1ZHRWxlbWVudCkge1xuICAgIGNvbnN0IHN0YXRlID0gdGhpcy52aWV3U3RhdGVNYXAuZ2V0KGNvbnRhaW5lcik7XG4gICAgaWYgKCFzdGF0ZSB8fCAhc3RhdGUuZHJhZ2dpbmcpIHJldHVybjtcbiAgICBzdGF0ZS5vZmZzZXRYID0gc3RhdGUubGFzdE9mZnNldC54ICsgKGUuY2xpZW50WCAtIHN0YXRlLmRyYWdTdGFydC54KTtcbiAgICBzdGF0ZS5vZmZzZXRZID0gc3RhdGUubGFzdE9mZnNldC55ICsgKGUuY2xpZW50WSAtIHN0YXRlLmRyYWdTdGFydC55KTtcbiAgICB0aGlzLmFwcGx5VHJhbnNmb3JtKGNvbnRhaW5lciwgc3ZnKTtcbiAgfVxuICBwcml2YXRlIG9uU3ZnTW91c2VVcChjb250YWluZXI6IEhUTUxFbGVtZW50LCBzdmc6IFNWR1NWR0VsZW1lbnQsIG1vdmU6IGFueSwgdXA6IGFueSkge1xuICAgIGNvbnN0IHN0YXRlID0gdGhpcy52aWV3U3RhdGVNYXAuZ2V0KGNvbnRhaW5lcik7XG4gICAgaWYgKCFzdGF0ZSkgcmV0dXJuO1xuICAgIHN0YXRlLmRyYWdnaW5nID0gZmFsc2U7XG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgbW92ZSk7XG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIHVwKTtcbiAgICB0aGlzLmFwcGx5VHJhbnNmb3JtKGNvbnRhaW5lciwgc3ZnKTtcbiAgfVxuXG4gIGFzeW5jIHJlbmRlck1lcm1haWQoY29kZTogc3RyaW5nLCB0aGVtZTogJ2xpZ2h0JyB8ICdkYXJrJyA9ICdsaWdodCcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBtZXJtYWlkID0gYXdhaXQgdGhpcy5sb2FkTWVybWFpZCgpO1xuICAgICAgaWYgKHRoaXMuY29uZmlnLnRoZW1lICE9PSB0aGVtZSkge1xuICAgICAgICB0aGlzLmNvbmZpZy50aGVtZSA9IHRoZW1lO1xuICAgICAgICAgIG1lcm1haWQuaW5pdGlhbGl6ZSh7XG4gICAgICAgICAgc3RhcnRPbkxvYWQ6IGZhbHNlLFxuICAgICAgICAgIHN1cHByZXNzRXJyb3JSZW5kZXJpbmc6IHRydWUsXG4gICAgICAgICAgdGhlbWU6IHRoZW1lID09PSAnZGFyaycgPyAnZGFyaycgOiAnZGVmYXVsdCcsXG4gICAgICAgICAgLi4udGhpcy5jb25maWdcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBjb25zdCBpZCA9IGBtY19tZXJtYWlkXyR7RGF0ZS5ub3coKX1fJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHIoMiwgOSl9YDtcbiAgICAgIGNvbnN0IHsgc3ZnIH0gPSBhd2FpdCBtZXJtYWlkLnJlbmRlcihpZCwgY29kZSk7XG4gICAgICB0aGlzLmxhc3RWYWxpZFJlc3VsdCA9IHN2ZztcbiAgICAgIHJldHVybiBzdmc7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHJldHVybiB0aGlzLmxhc3RWYWxpZFJlc3VsdDtcbiAgICB9XG4gIH1cblxuICAgIC8vIOiuvue9rumFjee9rlxuICBzZXRDb25maWcoY29uZmlnOiBNZXJtYWlkQ29uZmlnID0ge30pOiB2b2lkIHtcbiAgICB0aGlzLmNvbmZpZyA9IHtcbiAgICAgIHRoZW1lOiAnZGVmYXVsdCcsXG4gICAgICAuLi5jb25maWdcbiAgICB9O1xuICB9XG59XG4iXX0=
@@ -1,6 +0,0 @@
1
- export const defaultTypingConfig = {
2
- step: 2,
3
- interval: 50,
4
- style: 'normal',
5
- };
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWRDYXJkLnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy1uZy9zcmMvY29tcG9uZW50cy1jb21tb24vTWFya2Rvd25DYXJkL2NvbW1vbi9tZENhcmQudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBNEJBLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHO0lBQ2pDLElBQUksRUFBRSxDQUFDO0lBQ1AsUUFBUSxFQUFFLEVBQUU7SUFDWixLQUFLLEVBQUUsUUFBdUI7Q0FDL0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgT3B0aW9ucywgUGx1Z2luU2ltcGxlLCBQbHVnaW5XaXRoT3B0aW9ucywgUGx1Z2luV2l0aFBhcmFtcyB9IGZyb20gJ21hcmtkb3duLWl0JztcbmltcG9ydCB0eXBlIHsgVG9rZW4gfSBmcm9tICdtYXJrZG93bi1pdCc7XG5leHBvcnQgaW50ZXJmYWNlIE1lcm1haWRDb25maWcge1xuICB0aGVtZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDdXN0b21Yc3NSdWxlIHtcbiAga2V5OiBzdHJpbmc7XG4gIHZhbHVlOiBzdHJpbmdbXSB8IG51bGw7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29kQmxvY2tEYXRhIHtcbiAgY29kZTogc3RyaW5nO1xuICBsYW5ndWFnZTogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBDb2RlQmxvY2tTbG90ID0ge1xuICBhY3Rpb25zPzogKCkgPT4gdm9pZDtcbiAgaGVhZGVyPzogKCkgPT4gdm9pZDtcbiAgY29udGVudD86ICgpID0+IHZvaWQ7XG59O1xuXG5leHBvcnQgdHlwZSBUaGVtZSA9ICdsaWdodCcgfCAnZGFyayc7XG5cbmV4cG9ydCB0eXBlIFR5cGluZ1N0eWxlID0gJ25vcm1hbCcgfCAnY3Vyc29yJyB8ICdjb2xvcicgfCAnZ3JhZGllbnQnO1xuXG5leHBvcnQgdHlwZSBJbnRlcnZhbFR5cGUgPSBudW1iZXIgfCBbbnVtYmVyLCBudW1iZXJdO1xuXG5leHBvcnQgY29uc3QgZGVmYXVsdFR5cGluZ0NvbmZpZyA9IHtcbiAgc3RlcDogMixcbiAgaW50ZXJ2YWw6IDUwLFxuICBzdHlsZTogJ25vcm1hbCcgYXMgVHlwaW5nU3R5bGUsXG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIE1kUGx1Z2luIHtcbiAgcGx1Z2luOiBQbHVnaW5TaW1wbGUgfCBQbHVnaW5XaXRoT3B0aW9ucyB8IFBsdWdpbldpdGhQYXJhbXM7XG4gIG9wdHM/OiB1bmtub3duO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1hcmtkb3duQ2FyZFByb3BzIHtcbiAgY29udGVudD86IHN0cmluZztcbiAgdHlwaW5nPzogYm9vbGVhbjtcbiAgZW5hYmxlVGhpbms/OiBib29sZWFuO1xuICB0eXBpbmdPcHRpb25zPzoge1xuICAgIHN0ZXA/OiBudW1iZXI7XG4gICAgaW50ZXJ2YWw/OiBudW1iZXIgfCBbbnVtYmVyLCBudW1iZXJdO1xuICAgIHN0eWxlPzogVHlwaW5nU3R5bGU7XG4gIH07XG4gIHRoaW5rT3B0aW9ucz86IHtcbiAgICBjdXN0b21DbGFzcz86IHN0cmluZztcbiAgfTtcbiAgbWRPcHRpb25zPzogT3B0aW9ucztcbiAgbWRQbHVnaW5zPzogQXJyYXk8TWRQbHVnaW4+O1xuICBjdXN0b21Yc3NSdWxlcz86IEFycmF5PEN1c3RvbVhzc1J1bGU+O1xuICB0aGVtZT86IFRoZW1lO1xuICBlbmFibGVNZXJtYWlkPzogYm9vbGVhbjtcbiAgbWVybWFpZENvbmZpZz86IE1lcm1haWRDb25maWc7XG59XG5cbi8vIOWumuS5iSBBU1Qg6IqC54K55o6l5Y+jXG5leHBvcnQgaW50ZXJmYWNlIEFTVE5vZGUge1xuICBub2RlVHlwZTogc3RyaW5nO1xuICBvcGVuTm9kZTogVG9rZW4gfCBudWxsO1xuICBjbG9zZU5vZGU6IFRva2VuIHwgbnVsbDtcbiAgY2hpbGRyZW46IChBU1ROb2RlIHwgVG9rZW4pW107XG4gIHZOb2RlS2V5OiBzdHJpbmc7XG59Il19
@@ -1,194 +0,0 @@
1
- // 判断是否自闭合标签
2
- export const isSelfClosingTag = (token) => {
3
- // 判断token.content里面是否包含完整的HTML结构(所有开始标签都有对应的结束标签)
4
- const content = token.content || '';
5
- // 检查是否是自闭合标签(如 <img />, <br /> 等)
6
- if (content.match(/<(\w+)[^>]*\/>/)) {
7
- return true;
8
- }
9
- // 检查是否包含完整的HTML结构
10
- const tagStack = [];
11
- const openTagRegex = /<(\w+)[^>]*>/g;
12
- const closeTagRegex = /<\/(\w+)>/g;
13
- let openMatch;
14
- let closeMatch;
15
- // 重置正则表达式的lastIndex
16
- openTagRegex.lastIndex = 0;
17
- closeTagRegex.lastIndex = 0;
18
- // 按顺序处理所有标签
19
- const allMatches = [];
20
- // 收集所有开始标签
21
- while ((openMatch = openTagRegex.exec(content)) !== null) {
22
- allMatches.push({
23
- type: 'open',
24
- tagName: openMatch[1],
25
- index: openMatch.index
26
- });
27
- }
28
- // 收集所有结束标签
29
- while ((closeMatch = closeTagRegex.exec(content)) !== null) {
30
- allMatches.push({
31
- type: 'close',
32
- tagName: closeMatch[1],
33
- index: closeMatch.index
34
- });
35
- }
36
- // 按位置排序
37
- allMatches.sort((a, b) => a.index - b.index);
38
- // 检查标签是否完全匹配
39
- for (const match of allMatches) {
40
- if (match.type === 'open') {
41
- tagStack.push(match.tagName);
42
- }
43
- else {
44
- if (tagStack.length === 0) {
45
- return false; // 没有对应的开始标签
46
- }
47
- const lastOpenTag = tagStack[tagStack.length - 1];
48
- if (lastOpenTag !== match.tagName) {
49
- return false; // 标签不匹配
50
- }
51
- tagStack.pop();
52
- }
53
- }
54
- // 只有当所有标签都正确匹配时,才认为是自闭合的
55
- return tagStack.length === 0;
56
- };
57
- // 判断是否是结束标签
58
- export const isClosingTag = (openToken, closeToken) => {
59
- const openContent = openToken?.content || '';
60
- const closeContent = closeToken?.content || '';
61
- const openTagMatch = openContent.match(/<(\w+)/);
62
- const closeTagMatch = closeContent.match(/<\/(\w+)/);
63
- if (openTagMatch && closeTagMatch) {
64
- return openTagMatch[1] === closeTagMatch[1];
65
- }
66
- return false;
67
- };
68
- // 创建ast树节点
69
- export const genTreeNode = (node) => {
70
- return {
71
- nodeType: node ? node.type.replace('_open', '') : 'root',
72
- openNode: node,
73
- closeNode: null,
74
- children: [],
75
- vNodeKey: node?.vNodeKey || ''
76
- };
77
- };
78
- // 匹配成对html token
79
- export const matchHtmlToken = (token, stack) => {
80
- // 简单排除单独的闭合标签
81
- const isCloseTag = token.content.startsWith('</');
82
- if (!stack.length) {
83
- token.nesting = isCloseTag ? 0 : 1;
84
- stack.push(token);
85
- return;
86
- }
87
- // 判断当前token是否是上一个html token的闭合标签
88
- const prevToken = stack[stack.length - 1];
89
- const closing = isClosingTag(prevToken, token);
90
- if (closing) {
91
- token.nesting = -1;
92
- stack.pop();
93
- }
94
- else {
95
- if (isCloseTag) {
96
- token.nesting = 0;
97
- }
98
- else {
99
- token.nesting = 1;
100
- stack.push(token);
101
- }
102
- }
103
- };
104
- export const isValidTagName = (tagName) => {
105
- if (!tagName)
106
- return false;
107
- try {
108
- document.createElement(tagName);
109
- return true;
110
- }
111
- catch (error) {
112
- return false;
113
- }
114
- };
115
- export const tokensToAst = (tokens) => {
116
- // 递归处理 inline 类型的 token
117
- const processInlineToken = (token) => {
118
- const node = genTreeNode(token);
119
- // 如果 token 有 children,递归处理它们
120
- if (token.children && token.children.length > 0) {
121
- node.children = tokensToAst(token.children);
122
- }
123
- return node;
124
- };
125
- // 创建根节点
126
- const rootNode = genTreeNode(null);
127
- let curr = rootNode;
128
- const stack = [];
129
- const htmlInlineTokenStack = [];
130
- const htmlBlockTokenStack = [];
131
- // 处理html token nesting值
132
- tokens.forEach((tok, idx) => {
133
- tok.vNodeKey = `mc-markdown-content-key-${idx}`;
134
- tok.tokenIndex = idx;
135
- if (tok.type.includes('html_')) {
136
- if (isSelfClosingTag(tok)) {
137
- tok.nesting = 0;
138
- return;
139
- }
140
- const stack = tok.type === 'html_block'
141
- ? htmlBlockTokenStack
142
- : htmlInlineTokenStack;
143
- matchHtmlToken(tok, stack);
144
- }
145
- });
146
- tokens.forEach((tok, idx) => {
147
- let tmp;
148
- if (tok.nesting === 1) {
149
- // 开始标签
150
- tmp = genTreeNode(tok);
151
- curr.children.push(tmp);
152
- stack.push(curr);
153
- curr = tmp;
154
- }
155
- else if (tok.nesting === -1) {
156
- // 结束标签
157
- curr.closeNode = tok;
158
- if (!stack.length) {
159
- throw new Error('AST stack underflow.');
160
- }
161
- tmp = stack.pop();
162
- curr = tmp;
163
- }
164
- else if (tok.nesting === 0) {
165
- // 自闭合标签或 inline 内容
166
- if (tok.type === 'inline' && tok.children && tok.children.length > 0) {
167
- // 对于 inline 类型,递归处理其 children
168
- const inlineNode = processInlineToken(tok);
169
- curr.children.push(inlineNode);
170
- }
171
- else {
172
- // 普通 token,直接添加
173
- curr.children.push(tok);
174
- }
175
- }
176
- else {
177
- throw new Error(`Invalid nesting level found in token index ${idx}.`);
178
- }
179
- });
180
- if (stack.length !== 0) {
181
- // throw new Error('Unbalanced block open/close tokens.');
182
- }
183
- return rootNode.children;
184
- };
185
- // 声明一个utils静态默认导出
186
- export default {
187
- isSelfClosingTag,
188
- isClosingTag,
189
- tokensToAst,
190
- genTreeNode,
191
- matchHtmlToken,
192
- isValidTagName
193
- };
194
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy1uZy9zcmMvY29tcG9uZW50cy1jb21tb24vTWFya2Rvd25DYXJkL2NvbW1vbi9wYXJzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsWUFBWTtBQUNaLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBQUMsS0FBWSxFQUFXLEVBQUU7SUFDdEQsa0RBQWtEO0lBQ2xELE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO0lBRXBDLGtDQUFrQztJQUNsQyxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDO1FBQ2xDLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsTUFBTSxRQUFRLEdBQWEsRUFBRSxDQUFDO0lBQzlCLE1BQU0sWUFBWSxHQUFHLGVBQWUsQ0FBQztJQUNyQyxNQUFNLGFBQWEsR0FBRyxZQUFZLENBQUM7SUFFbkMsSUFBSSxTQUFTLENBQUM7SUFDZCxJQUFJLFVBQVUsQ0FBQztJQUVmLG9CQUFvQjtJQUNwQixZQUFZLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQztJQUMzQixhQUFhLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQztJQUU1QixZQUFZO0lBQ1osTUFBTSxVQUFVLEdBQXNFLEVBQUUsQ0FBQztJQUV6RixXQUFXO0lBQ1gsT0FBTyxDQUFDLFNBQVMsR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDdkQsVUFBVSxDQUFDLElBQUksQ0FBQztZQUNaLElBQUksRUFBRSxNQUFNO1lBQ1osT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDckIsS0FBSyxFQUFFLFNBQVMsQ0FBQyxLQUFLO1NBQ3pCLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxXQUFXO0lBQ1gsT0FBTyxDQUFDLFVBQVUsR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDekQsVUFBVSxDQUFDLElBQUksQ0FBQztZQUNaLElBQUksRUFBRSxPQUFPO1lBQ2IsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUM7WUFDdEIsS0FBSyxFQUFFLFVBQVUsQ0FBQyxLQUFLO1NBQzFCLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxRQUFRO0lBQ1IsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRTdDLGFBQWE7SUFDYixLQUFLLE1BQU0sS0FBSyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQzdCLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxNQUFNLEVBQUUsQ0FBQztZQUN4QixRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNqQyxDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDeEIsT0FBTyxLQUFLLENBQUMsQ0FBQyxZQUFZO1lBQzlCLENBQUM7WUFDRCxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNsRCxJQUFJLFdBQVcsS0FBSyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ2hDLE9BQU8sS0FBSyxDQUFDLENBQUMsUUFBUTtZQUMxQixDQUFDO1lBQ0QsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ25CLENBQUM7SUFDTCxDQUFDO0lBRUQseUJBQXlCO0lBQ3pCLE9BQU8sUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7QUFDakMsQ0FBQyxDQUFBO0FBRUQsWUFBWTtBQUNaLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFDLFNBQWdCLEVBQUUsVUFBaUIsRUFBVyxFQUFFO0lBQ3pFLE1BQU0sV0FBVyxHQUFHLFNBQVMsRUFBRSxPQUFPLElBQUksRUFBRSxDQUFDO0lBQzdDLE1BQU0sWUFBWSxHQUFHLFVBQVUsRUFBRSxPQUFPLElBQUksRUFBRSxDQUFDO0lBRS9DLE1BQU0sWUFBWSxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDakQsTUFBTSxhQUFhLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUVyRCxJQUFJLFlBQVksSUFBSSxhQUFhLEVBQUUsQ0FBQztRQUNoQyxPQUFPLFlBQVksQ0FBQyxDQUFDLENBQUMsS0FBSyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELE9BQU8sS0FBSyxDQUFDO0FBQ2pCLENBQUMsQ0FBQTtBQUVELFdBQVc7QUFDWCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxJQUFrQixFQUFXLEVBQUU7SUFDdkQsT0FBTztRQUNILFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTTtRQUN4RCxRQUFRLEVBQUUsSUFBSTtRQUNkLFNBQVMsRUFBRSxJQUFJO1FBQ2YsUUFBUSxFQUFFLEVBQUU7UUFDWixRQUFRLEVBQUcsSUFBWSxFQUFFLFFBQVEsSUFBSSxFQUFFO0tBQzFDLENBQUM7QUFDTixDQUFDLENBQUM7QUFFRixpQkFBaUI7QUFDakIsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLENBQUMsS0FBWSxFQUFFLEtBQWMsRUFBRSxFQUFFO0lBQzNELGNBQWM7SUFDZCxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsRCxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2hCLEtBQUssQ0FBQyxPQUFPLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xCLE9BQU87SUFDWCxDQUFDO0lBQ0QsaUNBQWlDO0lBQ2pDLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzFDLE1BQU0sT0FBTyxHQUFHLFlBQVksQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDL0MsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUNWLEtBQUssQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDbkIsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ2hCLENBQUM7U0FBTSxDQUFDO1FBQ0osSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNiLEtBQUssQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDO1FBQ3RCLENBQUM7YUFBTSxDQUFDO1lBQ0osS0FBSyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUM7WUFDbEIsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN0QixDQUFDO0lBQ0wsQ0FBQztBQUNMLENBQUMsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxDQUFDLE9BQTJCLEVBQVcsRUFBRTtJQUNuRSxJQUFJLENBQUMsT0FBTztRQUFFLE9BQU8sS0FBSyxDQUFBO0lBQzFCLElBQUksQ0FBQztRQUNELFFBQVEsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDL0IsT0FBTyxJQUFJLENBQUE7SUFDZixDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNiLE9BQU8sS0FBSyxDQUFBO0lBQ2hCLENBQUM7QUFDTCxDQUFDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxNQUFlLEVBQUUsRUFBRTtJQUMzQyx3QkFBd0I7SUFDeEIsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLEtBQVksRUFBVyxFQUFFO1FBQ25ELE1BQU0sSUFBSSxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVoQyw2QkFBNkI7UUFDN0IsSUFBSSxLQUFLLENBQUMsUUFBUSxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2hELElBQUksQ0FBQyxRQUFRLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM5QyxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDLENBQUM7SUFFRixRQUFRO0lBQ1IsTUFBTSxRQUFRLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25DLElBQUksSUFBSSxHQUFZLFFBQVEsQ0FBQztJQUM3QixNQUFNLEtBQUssR0FBYyxFQUFFLENBQUM7SUFDNUIsTUFBTSxvQkFBb0IsR0FBWSxFQUFFLENBQUM7SUFDekMsTUFBTSxtQkFBbUIsR0FBWSxFQUFFLENBQUM7SUFDeEMsd0JBQXdCO0lBQ3hCLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFVLEVBQUUsR0FBVyxFQUFFLEVBQUU7UUFDeEMsR0FBVyxDQUFDLFFBQVEsR0FBRywyQkFBMkIsR0FBRyxFQUFFLENBQUM7UUFDeEQsR0FBVyxDQUFDLFVBQVUsR0FBRyxHQUFHLENBQUM7UUFFOUIsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQy9CLElBQUksZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDMUIsR0FBRyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUM7Z0JBQ2hCLE9BQU87WUFDVCxDQUFDO1lBRUQsTUFBTSxLQUFLLEdBQ1QsR0FBRyxDQUFDLElBQUksS0FBSyxZQUFZO2dCQUN2QixDQUFDLENBQUMsbUJBQW1CO2dCQUNyQixDQUFDLENBQUMsb0JBQW9CLENBQUM7WUFFM0IsY0FBYyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM3QixDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7SUFFSCxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBVSxFQUFFLEdBQVcsRUFBRSxFQUFFO1FBQ3pDLElBQUksR0FBWSxDQUFDO1FBQ2pCLElBQUksR0FBRyxDQUFDLE9BQU8sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN0QixPQUFPO1lBQ1AsR0FBRyxHQUFHLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN2QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN4QixLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2pCLElBQUksR0FBRyxHQUFHLENBQUM7UUFDYixDQUFDO2FBQU0sSUFBSSxHQUFHLENBQUMsT0FBTyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDOUIsT0FBTztZQUNQLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDO1lBQ3JCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ2xCLE1BQU0sSUFBSSxLQUFLLENBQUMsc0JBQXNCLENBQUMsQ0FBQztZQUMxQyxDQUFDO1lBQ0QsR0FBRyxHQUFHLEtBQUssQ0FBQyxHQUFHLEVBQUcsQ0FBQztZQUNuQixJQUFJLEdBQUcsR0FBRyxDQUFDO1FBQ2IsQ0FBQzthQUFNLElBQUksR0FBRyxDQUFDLE9BQU8sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM3QixtQkFBbUI7WUFDbkIsSUFBSSxHQUFHLENBQUMsSUFBSSxLQUFLLFFBQVEsSUFBSSxHQUFHLENBQUMsUUFBUSxJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUNyRSw4QkFBOEI7Z0JBQzlCLE1BQU0sVUFBVSxHQUFHLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUMzQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNqQyxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sZ0JBQWdCO2dCQUNoQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUMxQixDQUFDO1FBQ0gsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLElBQUksS0FBSyxDQUFDLDhDQUE4QyxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQ3hFLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztJQUVILElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN2QiwwREFBMEQ7SUFDNUQsQ0FBQztJQUNELE9BQU8sUUFBUSxDQUFDLFFBQXFCLENBQUM7QUFDeEMsQ0FBQyxDQUFDO0FBRUosa0JBQWtCO0FBQ2xCLGVBQWU7SUFDWCxnQkFBZ0I7SUFDaEIsWUFBWTtJQUNaLFdBQVc7SUFDWCxXQUFXO0lBQ1gsY0FBYztJQUNkLGNBQWM7Q0FDakIsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgVG9rZW4gfSBmcm9tIFwibWFya2Rvd24taXRcIjtcbmltcG9ydCB0eXBlIHsgQVNUTm9kZSB9IGZyb20gJy4vbWRDYXJkLnR5cGVzJztcbi8vIOWIpOaWreaYr+WQpuiHqumXreWQiOagh+etvlxuZXhwb3J0IGNvbnN0IGlzU2VsZkNsb3NpbmdUYWcgPSAodG9rZW46IFRva2VuKTogYm9vbGVhbiA9PiB7XG4gICAgLy8g5Yik5patdG9rZW4uY29udGVudOmHjOmdouaYr+WQpuWMheWQq+WujOaVtOeahEhUTUznu5PmnoTvvIjmiYDmnInlvIDlp4vmoIfnrb7pg73mnInlr7nlupTnmoTnu5PmnZ/moIfnrb7vvIlcbiAgICBjb25zdCBjb250ZW50ID0gdG9rZW4uY29udGVudCB8fCAnJztcblxuICAgIC8vIOajgOafpeaYr+WQpuaYr+iHqumXreWQiOagh+etvu+8iOWmgiA8aW1nIC8+LCA8YnIgLz4g562J77yJXG4gICAgaWYgKGNvbnRlbnQubWF0Y2goLzwoXFx3KylbXj5dKlxcLz4vKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvLyDmo4Dmn6XmmK/lkKbljIXlkKvlrozmlbTnmoRIVE1M57uT5p6EXG4gICAgY29uc3QgdGFnU3RhY2s6IHN0cmluZ1tdID0gW107XG4gICAgY29uc3Qgb3BlblRhZ1JlZ2V4ID0gLzwoXFx3KylbXj5dKj4vZztcbiAgICBjb25zdCBjbG9zZVRhZ1JlZ2V4ID0gLzxcXC8oXFx3Kyk+L2c7XG5cbiAgICBsZXQgb3Blbk1hdGNoO1xuICAgIGxldCBjbG9zZU1hdGNoO1xuXG4gICAgLy8g6YeN572u5q2j5YiZ6KGo6L6+5byP55qEbGFzdEluZGV4XG4gICAgb3BlblRhZ1JlZ2V4Lmxhc3RJbmRleCA9IDA7XG4gICAgY2xvc2VUYWdSZWdleC5sYXN0SW5kZXggPSAwO1xuXG4gICAgLy8g5oyJ6aG65bqP5aSE55CG5omA5pyJ5qCH562+XG4gICAgY29uc3QgYWxsTWF0Y2hlczogQXJyYXk8eyB0eXBlOiAnb3BlbicgfCAnY2xvc2UnLCB0YWdOYW1lOiBzdHJpbmcsIGluZGV4OiBudW1iZXIgfT4gPSBbXTtcblxuICAgIC8vIOaUtumbhuaJgOacieW8gOWni+agh+etvlxuICAgIHdoaWxlICgob3Blbk1hdGNoID0gb3BlblRhZ1JlZ2V4LmV4ZWMoY29udGVudCkpICE9PSBudWxsKSB7XG4gICAgICAgIGFsbE1hdGNoZXMucHVzaCh7XG4gICAgICAgICAgICB0eXBlOiAnb3BlbicsXG4gICAgICAgICAgICB0YWdOYW1lOiBvcGVuTWF0Y2hbMV0sXG4gICAgICAgICAgICBpbmRleDogb3Blbk1hdGNoLmluZGV4XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIOaUtumbhuaJgOaciee7k+adn+agh+etvlxuICAgIHdoaWxlICgoY2xvc2VNYXRjaCA9IGNsb3NlVGFnUmVnZXguZXhlYyhjb250ZW50KSkgIT09IG51bGwpIHtcbiAgICAgICAgYWxsTWF0Y2hlcy5wdXNoKHtcbiAgICAgICAgICAgIHR5cGU6ICdjbG9zZScsXG4gICAgICAgICAgICB0YWdOYW1lOiBjbG9zZU1hdGNoWzFdLFxuICAgICAgICAgICAgaW5kZXg6IGNsb3NlTWF0Y2guaW5kZXhcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8g5oyJ5L2N572u5o6S5bqPXG4gICAgYWxsTWF0Y2hlcy5zb3J0KChhLCBiKSA9PiBhLmluZGV4IC0gYi5pbmRleCk7XG5cbiAgICAvLyDmo4Dmn6XmoIfnrb7mmK/lkKblrozlhajljLnphY1cbiAgICBmb3IgKGNvbnN0IG1hdGNoIG9mIGFsbE1hdGNoZXMpIHtcbiAgICAgICAgaWYgKG1hdGNoLnR5cGUgPT09ICdvcGVuJykge1xuICAgICAgICAgICAgdGFnU3RhY2sucHVzaChtYXRjaC50YWdOYW1lKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0YWdTdGFjay5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7IC8vIOayoeacieWvueW6lOeahOW8gOWni+agh+etvlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgbGFzdE9wZW5UYWcgPSB0YWdTdGFja1t0YWdTdGFjay5sZW5ndGggLSAxXTtcbiAgICAgICAgICAgIGlmIChsYXN0T3BlblRhZyAhPT0gbWF0Y2gudGFnTmFtZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsgLy8g5qCH562+5LiN5Yy56YWNXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0YWdTdGFjay5wb3AoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIOWPquacieW9k+aJgOacieagh+etvumDveato+ehruWMuemFjeaXtu+8jOaJjeiupOS4uuaYr+iHqumXreWQiOeahFxuICAgIHJldHVybiB0YWdTdGFjay5sZW5ndGggPT09IDA7XG59XG5cbi8vIOWIpOaWreaYr+WQpuaYr+e7k+adn+agh+etvlxuZXhwb3J0IGNvbnN0IGlzQ2xvc2luZ1RhZyA9IChvcGVuVG9rZW46IFRva2VuLCBjbG9zZVRva2VuOiBUb2tlbik6IGJvb2xlYW4gPT4ge1xuICAgIGNvbnN0IG9wZW5Db250ZW50ID0gb3BlblRva2VuPy5jb250ZW50IHx8ICcnO1xuICAgIGNvbnN0IGNsb3NlQ29udGVudCA9IGNsb3NlVG9rZW4/LmNvbnRlbnQgfHwgJyc7XG5cbiAgICBjb25zdCBvcGVuVGFnTWF0Y2ggPSBvcGVuQ29udGVudC5tYXRjaCgvPChcXHcrKS8pO1xuICAgIGNvbnN0IGNsb3NlVGFnTWF0Y2ggPSBjbG9zZUNvbnRlbnQubWF0Y2goLzxcXC8oXFx3KykvKTtcblxuICAgIGlmIChvcGVuVGFnTWF0Y2ggJiYgY2xvc2VUYWdNYXRjaCkge1xuICAgICAgICByZXR1cm4gb3BlblRhZ01hdGNoWzFdID09PSBjbG9zZVRhZ01hdGNoWzFdO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbn1cblxuLy8g5Yib5bu6YXN05qCR6IqC54K5XG5leHBvcnQgY29uc3QgZ2VuVHJlZU5vZGUgPSAobm9kZTogVG9rZW4gfCBudWxsKTogQVNUTm9kZSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgbm9kZVR5cGU6IG5vZGUgPyBub2RlLnR5cGUucmVwbGFjZSgnX29wZW4nLCAnJykgOiAncm9vdCcsXG4gICAgICAgIG9wZW5Ob2RlOiBub2RlLFxuICAgICAgICBjbG9zZU5vZGU6IG51bGwsXG4gICAgICAgIGNoaWxkcmVuOiBbXSxcbiAgICAgICAgdk5vZGVLZXk6IChub2RlIGFzIGFueSk/LnZOb2RlS2V5IHx8ICcnXG4gICAgfTtcbn07XG5cbi8vIOWMuemFjeaIkOWvuWh0bWwgdG9rZW5cbmV4cG9ydCBjb25zdCBtYXRjaEh0bWxUb2tlbiA9ICh0b2tlbjogVG9rZW4sIHN0YWNrOiBUb2tlbltdKSA9PiB7XG4gICAgLy8g566A5Y2V5o6S6Zmk5Y2V54us55qE6Zet5ZCI5qCH562+XG4gICAgY29uc3QgaXNDbG9zZVRhZyA9IHRva2VuLmNvbnRlbnQuc3RhcnRzV2l0aCgnPC8nKTtcbiAgICBpZiAoIXN0YWNrLmxlbmd0aCkge1xuICAgICAgICB0b2tlbi5uZXN0aW5nID0gaXNDbG9zZVRhZyA/IDAgOiAxO1xuICAgICAgICBzdGFjay5wdXNoKHRva2VuKTtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAvLyDliKTmlq3lvZPliY10b2tlbuaYr+WQpuaYr+S4iuS4gOS4qmh0bWwgdG9rZW7nmoTpl63lkIjmoIfnrb5cbiAgICBjb25zdCBwcmV2VG9rZW4gPSBzdGFja1tzdGFjay5sZW5ndGggLSAxXTtcbiAgICBjb25zdCBjbG9zaW5nID0gaXNDbG9zaW5nVGFnKHByZXZUb2tlbiwgdG9rZW4pO1xuICAgIGlmIChjbG9zaW5nKSB7XG4gICAgICAgIHRva2VuLm5lc3RpbmcgPSAtMTtcbiAgICAgICAgc3RhY2sucG9wKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGlzQ2xvc2VUYWcpIHtcbiAgICAgICAgICAgIHRva2VuLm5lc3RpbmcgPSAwO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdG9rZW4ubmVzdGluZyA9IDE7XG4gICAgICAgICAgICBzdGFjay5wdXNoKHRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNvbnN0IGlzVmFsaWRUYWdOYW1lID0gKHRhZ05hbWU6IHN0cmluZyB8IHVuZGVmaW5lZCk6IGJvb2xlYW4gPT4ge1xuICAgIGlmICghdGFnTmFtZSkgcmV0dXJuIGZhbHNlXG4gICAgdHJ5IHtcbiAgICAgICAgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0YWdOYW1lKVxuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbn1cblxuZXhwb3J0IGNvbnN0IHRva2Vuc1RvQXN0ID0gKHRva2VuczogVG9rZW5bXSkgPT4ge1xuICAgIC8vIOmAkuW9kuWkhOeQhiBpbmxpbmUg57G75Z6L55qEIHRva2VuXG4gICAgY29uc3QgcHJvY2Vzc0lubGluZVRva2VuID0gKHRva2VuOiBUb2tlbik6IEFTVE5vZGUgPT4ge1xuICAgICAgY29uc3Qgbm9kZSA9IGdlblRyZWVOb2RlKHRva2VuKTtcblxuICAgICAgLy8g5aaC5p6cIHRva2VuIOaciSBjaGlsZHJlbu+8jOmAkuW9kuWkhOeQhuWug+S7rFxuICAgICAgaWYgKHRva2VuLmNoaWxkcmVuICYmIHRva2VuLmNoaWxkcmVuLmxlbmd0aCA+IDApIHtcbiAgICAgICAgbm9kZS5jaGlsZHJlbiA9IHRva2Vuc1RvQXN0KHRva2VuLmNoaWxkcmVuKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG5vZGU7XG4gICAgfTtcblxuICAgIC8vIOWIm+W7uuagueiKgueCuVxuICAgIGNvbnN0IHJvb3ROb2RlID0gZ2VuVHJlZU5vZGUobnVsbCk7XG4gICAgbGV0IGN1cnI6IEFTVE5vZGUgPSByb290Tm9kZTtcbiAgICBjb25zdCBzdGFjazogQVNUTm9kZVtdID0gW107XG4gICAgY29uc3QgaHRtbElubGluZVRva2VuU3RhY2s6IFRva2VuW10gPSBbXTtcbiAgICBjb25zdCBodG1sQmxvY2tUb2tlblN0YWNrOiBUb2tlbltdID0gW107XG4gICAgLy8g5aSE55CGaHRtbCB0b2tlbiBuZXN0aW5n5YC8XG4gICAgdG9rZW5zLmZvckVhY2goKHRvazogVG9rZW4sIGlkeDogbnVtYmVyKSA9PiB7XG4gICAgICAodG9rIGFzIGFueSkudk5vZGVLZXkgPSBgbWMtbWFya2Rvd24tY29udGVudC1rZXktJHtpZHh9YDtcbiAgICAgICh0b2sgYXMgYW55KS50b2tlbkluZGV4ID0gaWR4O1xuXG4gICAgICBpZiAodG9rLnR5cGUuaW5jbHVkZXMoJ2h0bWxfJykpIHtcbiAgICAgICAgaWYgKGlzU2VsZkNsb3NpbmdUYWcodG9rKSkge1xuICAgICAgICAgIHRvay5uZXN0aW5nID0gMDtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzdGFjayA9XG4gICAgICAgICAgdG9rLnR5cGUgPT09ICdodG1sX2Jsb2NrJ1xuICAgICAgICAgICAgPyBodG1sQmxvY2tUb2tlblN0YWNrXG4gICAgICAgICAgICA6IGh0bWxJbmxpbmVUb2tlblN0YWNrO1xuXG4gICAgICAgIG1hdGNoSHRtbFRva2VuKHRvaywgc3RhY2spO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdG9rZW5zLmZvckVhY2goKHRvazogVG9rZW4sIGlkeDogbnVtYmVyKSA9PiB7XG4gICAgICBsZXQgdG1wOiBBU1ROb2RlO1xuICAgICAgaWYgKHRvay5uZXN0aW5nID09PSAxKSB7XG4gICAgICAgIC8vIOW8gOWni+agh+etvlxuICAgICAgICB0bXAgPSBnZW5UcmVlTm9kZSh0b2spO1xuICAgICAgICBjdXJyLmNoaWxkcmVuLnB1c2godG1wKTtcbiAgICAgICAgc3RhY2sucHVzaChjdXJyKTtcbiAgICAgICAgY3VyciA9IHRtcDtcbiAgICAgIH0gZWxzZSBpZiAodG9rLm5lc3RpbmcgPT09IC0xKSB7XG4gICAgICAgIC8vIOe7k+adn+agh+etvlxuICAgICAgICBjdXJyLmNsb3NlTm9kZSA9IHRvaztcbiAgICAgICAgaWYgKCFzdGFjay5sZW5ndGgpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0FTVCBzdGFjayB1bmRlcmZsb3cuJyk7XG4gICAgICAgIH1cbiAgICAgICAgdG1wID0gc3RhY2sucG9wKCkhO1xuICAgICAgICBjdXJyID0gdG1wO1xuICAgICAgfSBlbHNlIGlmICh0b2submVzdGluZyA9PT0gMCkge1xuICAgICAgICAvLyDoh6rpl63lkIjmoIfnrb7miJYgaW5saW5lIOWGheWuuVxuICAgICAgICBpZiAodG9rLnR5cGUgPT09ICdpbmxpbmUnICYmIHRvay5jaGlsZHJlbiAmJiB0b2suY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xuICAgICAgICAgIC8vIOWvueS6jiBpbmxpbmUg57G75Z6L77yM6YCS5b2S5aSE55CG5YW2IGNoaWxkcmVuXG4gICAgICAgICAgY29uc3QgaW5saW5lTm9kZSA9IHByb2Nlc3NJbmxpbmVUb2tlbih0b2spO1xuICAgICAgICAgIGN1cnIuY2hpbGRyZW4ucHVzaChpbmxpbmVOb2RlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyDmma7pgJogdG9rZW7vvIznm7TmjqXmt7vliqBcbiAgICAgICAgICBjdXJyLmNoaWxkcmVuLnB1c2godG9rKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIG5lc3RpbmcgbGV2ZWwgZm91bmQgaW4gdG9rZW4gaW5kZXggJHtpZHh9LmApO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKHN0YWNrLmxlbmd0aCAhPT0gMCkge1xuICAgICAgLy8gdGhyb3cgbmV3IEVycm9yKCdVbmJhbGFuY2VkIGJsb2NrIG9wZW4vY2xvc2UgdG9rZW5zLicpO1xuICAgIH1cbiAgICByZXR1cm4gcm9vdE5vZGUuY2hpbGRyZW4gYXMgQVNUTm9kZVtdO1xuICB9O1xuXG4vLyDlo7DmmI7kuIDkuKp1dGlsc+mdmeaAgem7mOiupOWvvOWHulxuZXhwb3J0IGRlZmF1bHQge1xuICAgIGlzU2VsZkNsb3NpbmdUYWcsXG4gICAgaXNDbG9zaW5nVGFnLFxuICAgIHRva2Vuc1RvQXN0LFxuICAgIGdlblRyZWVOb2RlLFxuICAgIG1hdGNoSHRtbFRva2VuLFxuICAgIGlzVmFsaWRUYWdOYW1lXG59Il19
@@ -1,84 +0,0 @@
1
- import BaseFoundation from '../Base/foundation';
2
- import { defaultTypingConfig } from './common/mdCard.types';
3
- export class MarkdownCardFoundation extends BaseFoundation {
4
- constructor(adapter) {
5
- super({ ...adapter });
6
- this.isToken = (node) => {
7
- return 'type' in node && 'content' in node;
8
- };
9
- this.typewriterEnd = () => {
10
- this.setState({ isTyping: false });
11
- this._adapter.typingEnd?.();
12
- };
13
- this.getThinkContent = (content, thinkOptions) => {
14
- const thinkClass = thinkOptions?.customClass || 'mc-think-block';
15
- return (content
16
- ?.replace('<think>', `<div class="${thinkClass}">`)
17
- ?.replace('</think>', '</div>') || '');
18
- };
19
- this.parseTypingContent = (content) => {
20
- const { typingOptions } = this.getProps();
21
- const { typingIndex } = this.getStates();
22
- content = content.slice(0, typingIndex) || '';
23
- const options = { ...defaultTypingConfig, ...typingOptions };
24
- if (options.style === 'cursor') {
25
- content += `<span class="mc-typewriter mc-typewriter-cursor">|</span>`;
26
- }
27
- else if (options.style === 'color' || options.style === 'gradient') {
28
- content =
29
- content.slice(0, -5) +
30
- `<span class="mc-typewriter mc-typewriter-${options.style}">${content.slice(-5)}</span>`;
31
- }
32
- return content || '';
33
- };
34
- this.parseContent = () => {
35
- const { content, thinkOptions, enableThink } = this.getProps();
36
- const { typing, isTyping } = this.getStates();
37
- let parseContent = content || '';
38
- if (typing && isTyping) {
39
- parseContent = this.parseTypingContent(content);
40
- }
41
- if (enableThink) {
42
- parseContent = this.getThinkContent(content, thinkOptions);
43
- }
44
- parseContent = this._adapter.parseContent(parseContent);
45
- };
46
- this.typewriterStart = () => {
47
- const { typingOptions } = this.getProps();
48
- const { timer } = this.getStates();
49
- if (timer) {
50
- clearTimeout(timer);
51
- }
52
- this.setState({ isTyping: true });
53
- this._adapter.typingStart?.();
54
- const options = { ...defaultTypingConfig, ...typingOptions };
55
- const typingStep = () => {
56
- const { typingIndex, content } = this.getStates();
57
- let step = options.step || 2;
58
- if (Array.isArray(options.step)) {
59
- step =
60
- options.step[0] +
61
- Math.floor(Math.random() * (options.step[1] - options.step[0]));
62
- }
63
- let index = typingIndex + step;
64
- this.setState({ typingIndex: index });
65
- this.parseContent();
66
- this._adapter.typingEvent();
67
- if (index >= content.length) {
68
- this.typewriterEnd();
69
- this.parseContent();
70
- return;
71
- }
72
- let typingTimeout = setTimeout(typingStep, typeof options.interval === 'number' ? options.interval : 50);
73
- this.setState({
74
- timer: typingTimeout,
75
- });
76
- };
77
- let typingStepTimeout = setTimeout(typingStep);
78
- this.setState({
79
- timer: typingStepTimeout,
80
- });
81
- };
82
- }
83
- }
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm91bmRhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMtbmcvc3JjL2NvbXBvbmVudHMtY29tbW9uL01hcmtkb3duQ2FyZC9mb3VuZGF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sY0FBa0MsTUFBTSxvQkFBb0IsQ0FBQztBQUdwRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQVU1RCxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsY0FBbUM7SUFDN0UsWUFBWSxPQUE0QjtRQUN0QyxLQUFLLENBQUMsRUFBRSxHQUFHLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFHeEIsWUFBTyxHQUFHLENBQUMsSUFBcUIsRUFBaUIsRUFBRTtZQUNqRCxPQUFPLE1BQU0sSUFBSSxJQUFJLElBQUksU0FBUyxJQUFJLElBQUksQ0FBQztRQUM3QyxDQUFDLENBQUM7UUFFRixrQkFBYSxHQUFHLEdBQUcsRUFBRTtZQUNuQixJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDbkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDO1FBQzlCLENBQUMsQ0FBQztRQUVGLG9CQUFlLEdBQUcsQ0FBQyxPQUFlLEVBQUUsWUFBaUIsRUFBRSxFQUFFO1lBQ3ZELE1BQU0sVUFBVSxHQUFHLFlBQVksRUFBRSxXQUFXLElBQUksZ0JBQWdCLENBQUM7WUFDakUsT0FBTyxDQUNMLE9BQU87Z0JBQ0wsRUFBRSxPQUFPLENBQUMsU0FBUyxFQUFFLGVBQWUsVUFBVSxJQUFJLENBQUM7Z0JBQ25ELEVBQUUsT0FBTyxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsSUFBSSxFQUFFLENBQ3hDLENBQUM7UUFDSixDQUFDLENBQUM7UUFFRix1QkFBa0IsR0FBRyxDQUFDLE9BQWUsRUFBRSxFQUFFO1lBQ3ZDLE1B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QUMsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDcEUsQ0FBQztnQkFDRCxJQUFJLEtBQUssR0FBRyxXQUFXLEdBQUcsSUFBSSxDQUFDO2dCQUMvQixJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7Z0JBQ3RDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFDcEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFFNUIsSUFBSSxLQUFLLElBQUksT0FBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUM3QixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7b0JBQ3JCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztvQkFDcEIsT0FBTztnQkFDVCxDQUFDO2dCQUVELElBQUksYUFBYSxHQUFHLFVBQVUsQ0FDNUIsVUFBVSxFQUNWLE9BQU8sT0FBTyxDQUFDLFFBQVEsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDN0QsQ0FBQztnQkFDRixJQUFJLENBQUMsUUFBUSxDQUFDO29CQUNaLEtBQUssRUFBRSxhQUFhO2lCQUNyQixDQUFDLENBQUM7WUFDTCxDQUFDLENBQUM7WUFFRixJQUFJLGlCQUFpQixHQUFHLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUMvQyxJQUFJLENBQUMsUUFBUSxDQUFDO2dCQUNaLEtBQUssRUFBRSxpQkFBaUI7YUFDekIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDO0lBakdGLENBQUM7Q0FrR0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQmFzZUZvdW5kYXRpb24sIHsgRGVmYXVsdEFkYXB0ZXIgfSBmcm9tICcuLi9CYXNlL2ZvdW5kYXRpb24nO1xuaW1wb3J0IHR5cGUgeyBUb2tlbiB9IGZyb20gJ21hcmtkb3duLWl0JztcbmltcG9ydCB0eXBlIHsgQVNUTm9kZSB9IGZyb20gJy4vY29tbW9uL21kQ2FyZC50eXBlcyc7XG5pbXBvcnQgeyBkZWZhdWx0VHlwaW5nQ29uZmlnIH0gZnJvbSAnLi9jb21tb24vbWRDYXJkLnR5cGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBNYXJrZG93bkNhcmRBZGFwdGVyIGV4dGVuZHMgRGVmYXVsdEFkYXB0ZXIge1xuICBsb2NhbGUoa2V5OiBzdHJpbmcsIHBhcmFtcz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz4pOiBzdHJpbmc7XG4gIHR5cGluZ1N0YXJ0OiAoKSA9PiB2b2lkO1xuICB0eXBpbmdFbmQ6ICgpID0+IHZvaWQ7XG4gIHR5cGluZ0V2ZW50OiAoKSA9PiB2b2lkO1xuICBwYXJzZUNvbnRlbnQ6IChjb250ZW50OiBzdHJpbmcpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBjbGFzcyBNYXJrZG93bkNhcmRGb3VuZGF0aW9uIGV4dGVuZHMgQmFzZUZvdW5kYXRpb248TWFya2Rvd25DYXJkQWRhcHRlcj4ge1xuICBjb25zdHJ1Y3RvcihhZGFwdGVyOiBNYXJrZG93bkNhcmRBZGFwdGVyKSB7XG4gICAgc3VwZXIoeyAuLi5hZGFwdGVyIH0pO1xuICB9XG5cbiAgaXNUb2tlbiA9IChub2RlOiBBU1ROb2RlIHwgVG9rZW4pOiBub2RlIGlzIFRva2VuID0+IHtcbiAgICByZXR1cm4gJ3R5cGUnIGluIG5vZGUgJiYgJ2NvbnRlbnQnIGluIG5vZGU7XG4gIH07XG5cbiAgdHlwZXdyaXRlckVuZCA9ICgpID0+IHtcbiAgICB0aGlzLnNldFN0YXRlKHsgaXNUeXBpbmc6IGZhbHNlIH0pO1xuICAgIHRoaXMuX2FkYXB0ZXIudHlwaW5nRW5kPy4oKTtcbiAgfTtcblxuICBnZXRUaGlua0NvbnRlbnQgPSAoY29udGVudDogc3RyaW5nLCB0aGlua09wdGlvbnM6IGFueSkgPT4ge1xuICAgIGNvbnN0IHRoaW5rQ2xhc3MgPSB0aGlua09wdGlvbnM/LmN1c3RvbUNsYXNzIHx8ICdtYy10aGluay1ibG9jayc7XG4gICAgcmV0dXJuIChcbiAgICAgIGNvbnRlbnRcbiAgICAgICAgPy5yZXBsYWNlKCc8dGhpbms+JywgYDxkaXYgY2xhc3M9XCIke3RoaW5rQ2xhc3N9XCI+YClcbiAgICAgICAgPy5yZXBsYWNlKCc8L3RoaW5rPicsICc8L2Rpdj4nKSB8fCAnJ1xuICAgICk7XG4gIH07XG5cbiAgcGFyc2VUeXBpbmdDb250ZW50ID0gKGNvbnRlbnQ6IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IHsgdHlwaW5nT3B0aW9ucyB9ID0gdGhpcy5nZXRQcm9wcygpO1xuICAgIGNvbnN0IHsgdHlwaW5nSW5kZXggfSA9IHRoaXMuZ2V0U3RhdGVzKCk7XG4gICAgY29udGVudCA9IGNvbnRlbnQuc2xpY2UoMCwgdHlwaW5nSW5kZXgpIHx8ICcnO1xuICAgIGNvbnN0IG9wdGlvbnMgPSB7IC4uLmRlZmF1bHRUeXBpbmdDb25maWcsIC4uLnR5cGluZ09wdGlvbnMgfTtcblxuICAgIGlmIChvcHRpb25zLnN0eWxlID09PSAnY3Vyc29yJykge1xuICAgICAgY29udGVudCArPSBgPHNwYW4gY2xhc3M9XCJtYy10eXBld3JpdGVyIG1jLXR5cGV3cml0ZXItY3Vyc29yXCI+fDwvc3Bhbj5gO1xuICAgIH0gZWxzZSBpZiAob3B0aW9ucy5zdHlsZSA9PT0gJ2NvbG9yJyB8fCBvcHRpb25zLnN0eWxlID09PSAnZ3JhZGllbnQnKSB7XG4gICAgICBjb250ZW50ID1cbiAgICAgICAgY29udGVudC5zbGljZSgwLCAtNSkgK1xuICAgICAgICBgPHNwYW4gY2xhc3M9XCJtYy10eXBld3JpdGVyIG1jLXR5cGV3cml0ZXItJHtcbiAgICAgICAgICBvcHRpb25zLnN0eWxlXG4gICAgICAgIH1cIj4ke2NvbnRlbnQuc2xpY2UoLTUpfTwvc3Bhbj5gO1xuICAgIH1cbiAgICByZXR1cm4gY29udGVudCB8fCAnJztcbiAgfTtcblxuICBwYXJzZUNvbnRlbnQgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjb250ZW50LCB0aGlua09wdGlvbnMsIGVuYWJsZVRoaW5rIH0gPSB0aGlzLmdldFByb3BzKCk7XG4gICAgY29uc3QgeyB0eXBpbmcsIGlzVHlwaW5nIH0gPSB0aGlzLmdldFN0YXRlcygpO1xuICAgIGxldCBwYXJzZUNvbnRlbnQgPSBjb250ZW50IHx8ICcnO1xuICAgIGlmICh0eXBpbmcgJiYgaXNUeXBpbmcpIHtcbiAgICAgIHBhcnNlQ29udGVudCA9IHRoaXMucGFyc2VUeXBpbmdDb250ZW50KGNvbnRlbnQpO1xuICAgIH1cblxuICAgIGlmIChlbmFibGVUaGluaykge1xuICAgICAgcGFyc2VDb250ZW50ID0gdGhpcy5nZXRUaGlua0NvbnRlbnQoY29udGVudCwgdGhpbmtPcHRpb25zKTtcbiAgICB9XG5cbiAgICBwYXJzZUNvbnRlbnQgPSB0aGlzLl9hZGFwdGVyLnBhcnNlQ29udGVudChwYXJzZUNvbnRlbnQpO1xuICB9O1xuXG4gIHR5cGV3cml0ZXJTdGFydCA9ICgpID0+IHtcbiAgICBjb25zdCB7IHR5cGluZ09wdGlvbnMgfSA9IHRoaXMuZ2V0UHJvcHMoKTtcbiAgICBjb25zdCB7IHRpbWVyIH0gPSB0aGlzLmdldFN0YXRlcygpO1xuICAgIGlmICh0aW1lcikge1xuICAgICAgY2xlYXJUaW1lb3V0KHRpbWVyKTtcbiAgICB9XG5cbiAgICB0aGlzLnNldFN0YXRlKHsgaXNUeXBpbmc6IHRydWUgfSk7XG4gICAgdGhpcy5fYWRhcHRlci50eXBpbmdTdGFydD8uKCk7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHsgLi4uZGVmYXVsdFR5cGluZ0NvbmZpZywgLi4udHlwaW5nT3B0aW9ucyB9O1xuXG4gICAgY29uc3QgdHlwaW5nU3RlcCA9ICgpID0+IHtcbiAgICAgIGNvbnN0IHsgdHlwaW5nSW5kZXgsIGNvbnRlbnQgfSA9IHRoaXMuZ2V0U3RhdGVzKCk7XG5cbiAgICAgIGxldCBzdGVwID0gb3B0aW9ucy5zdGVwIHx8IDI7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShvcHRpb25zLnN0ZXApKSB7XG4gICAgICAgIHN0ZXAgPVxuICAgICAgICAgIG9wdGlvbnMuc3RlcFswXSArXG4gICAgICAgICAgTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogKG9wdGlvbnMuc3RlcFsxXSAtIG9wdGlvbnMuc3RlcFswXSkpO1xuICAgICAgfVxuICAgICAgbGV0IGluZGV4ID0gdHlwaW5nSW5kZXggKyBzdGVwO1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7IHR5cGluZ0luZGV4OiBpbmRleCB9KTtcbiAgICAgIHRoaXMucGFyc2VDb250ZW50KCk7XG4gICAgICB0aGlzLl9hZGFwdGVyLnR5cGluZ0V2ZW50KCk7XG5cbiAgICAgIGlmIChpbmRleCA+PSBjb250ZW50IS5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy50eXBld3JpdGVyRW5kKCk7XG4gICAgICAgIHRoaXMucGFyc2VDb250ZW50KCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgbGV0IHR5cGluZ1RpbWVvdXQgPSBzZXRUaW1lb3V0KFxuICAgICAgICB0eXBpbmdTdGVwLFxuICAgICAgICB0eXBlb2Ygb3B0aW9ucy5pbnRlcnZhbCA9PT0gJ251bWJlcicgPyBvcHRpb25zLmludGVydmFsIDogNTBcbiAgICAgICk7XG4gICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgdGltZXI6IHR5cGluZ1RpbWVvdXQsXG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgbGV0IHR5cGluZ1N0ZXBUaW1lb3V0ID0gc2V0VGltZW91dCh0eXBpbmdTdGVwKTtcbiAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgIHRpbWVyOiB0eXBpbmdTdGVwVGltZW91dCxcbiAgICB9KTtcbiAgfTtcbn1cbiJdfQ==
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public-api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0ZWNoYXQtbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzLW5nL3NyYy9tYXRlY2hhdC1uZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
@@ -1,8 +0,0 @@
1
- /*
2
- * Public API Surface of components-ng
3
- */
4
- export * from './Bubble/index';
5
- export * from './Input/index';
6
- export * from './Locale/index';
7
- export * from './MarkdownCard/index';
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMtbmcvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgY29tcG9uZW50cy1uZ1xuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vQnViYmxlL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vSW5wdXQvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9Mb2NhbGUvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9NYXJrZG93bkNhcmQvaW5kZXgnO1xuIl19
package/public-api.d.ts DELETED
@@ -1,4 +0,0 @@
1
- export * from './Bubble/index';
2
- export * from './Input/index';
3
- export * from './Locale/index';
4
- export * from './MarkdownCard/index';