fmode-ng 0.0.39 → 0.0.41

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 (100) hide show
  1. package/esm2022/fmode-ng.mjs +5 -10
  2. package/esm2022/lib/aigc/agent/agent.prompt.mjs +122 -10
  3. package/esm2022/lib/aigc/agent/index.mjs +2 -10
  4. package/esm2022/lib/aigc/avatar/avatar.module.mjs +45 -10
  5. package/esm2022/lib/aigc/avatar/comp-avatar-particle/avatar.role.mjs +2 -10
  6. package/esm2022/lib/aigc/avatar/comp-avatar-particle/comp-avatar-particle.component.mjs +315 -10
  7. package/esm2022/lib/aigc/avatar/comp-avatar-particle/index.mjs +3 -10
  8. package/esm2022/lib/aigc/avatar/comp-avatar-particle/role-points.class.mjs +57 -10
  9. package/esm2022/lib/aigc/avatar/comp-avatar-role-image/comp-avatar-role-image.component.mjs +97 -10
  10. package/esm2022/lib/aigc/avatar/comp-avatar-role-video/comp-avatar-role-video.component.mjs +104 -10
  11. package/esm2022/lib/aigc/avatar/comp-avatar-talk/comp-avatar-talk.component.mjs +111 -10
  12. package/esm2022/lib/aigc/avatar/index.mjs +8 -10
  13. package/esm2022/lib/aigc/avatar/interface-avatar-role.mjs +2 -10
  14. package/esm2022/lib/aigc/avatar/modal-chat-voice-input/modal-chat-voice-input.component.mjs +166 -8
  15. package/esm2022/lib/aigc/chat/chat-header-area/comp-header-area.component.mjs +36 -10
  16. package/esm2022/lib/aigc/chat/chat-header-area/index.mjs +2 -10
  17. package/esm2022/lib/aigc/chat/chat-list/chat-list.component.mjs +141 -8
  18. package/esm2022/lib/aigc/chat/chat-list/index.mjs +2 -10
  19. package/esm2022/lib/aigc/chat/chat-message-area/comp-message-area.component.mjs +40 -10
  20. package/esm2022/lib/aigc/chat/chat-message-area/index.mjs +2 -10
  21. package/esm2022/lib/aigc/chat/chat-message-card/comp-message-card.component.mjs +92 -10
  22. package/esm2022/lib/aigc/chat/chat-message-card/index.mjs +2 -10
  23. package/esm2022/lib/aigc/chat/chat-modal-input/index.mjs +2 -10
  24. package/esm2022/lib/aigc/chat/chat-modal-input/modal-audio-message/modal-audio-message.component.mjs +207 -8
  25. package/esm2022/lib/aigc/chat/chat-modal-input/modal-input.component.mjs +236 -10
  26. package/esm2022/lib/aigc/chat/chat-panel/chat-panel.component.mjs +137 -10
  27. package/esm2022/lib/aigc/chat/comp-role-prompt/comp-role-prompt.component.mjs +69 -10
  28. package/esm2022/lib/aigc/chat/comp-role-prompt/index.mjs +2 -10
  29. package/esm2022/lib/aigc/chat/index.mjs +8 -10
  30. package/esm2022/lib/aigc/comp-markdown-preview/clipboard.service.mjs +82 -10
  31. package/esm2022/lib/aigc/comp-markdown-preview/markdown-parse.mjs +269 -8
  32. package/esm2022/lib/aigc/comp-markdown-preview/markdown-preview.component.mjs +51 -10
  33. package/esm2022/lib/aigc/comp-markdown-preview/markdown-preview.module.mjs +24 -10
  34. package/esm2022/lib/aigc/comp-markdown-preview/plugins/md-mathjax/index.mjs +94 -10
  35. package/esm2022/lib/aigc/index.mjs +13 -10
  36. package/esm2022/lib/aigc/service-fmai/fmai.service.mjs +21 -10
  37. package/esm2022/lib/aigc/service-fmai/service-chat/chat-class.mjs +736 -8
  38. package/esm2022/lib/aigc/service-fmai/service-chat/chat.service.mjs +181 -8
  39. package/esm2022/lib/aigc/service-fmai/service-chat/index.mjs +7 -10
  40. package/esm2022/lib/aigc/service-fmai/service-chat/mask-list.mjs +194 -9
  41. package/esm2022/lib/aigc/service-fmai/service-chat/pipes/chat-content.pipe.mjs +27 -10
  42. package/esm2022/lib/aigc/service-fmai/service-chat/pipes/hidexml.pipe.mjs +27 -10
  43. package/esm2022/lib/aigc/service-fmai/service-chat/utilnow.pipe.mjs +68 -10
  44. package/esm2022/lib/aigc/service-fmai/service-imagine/imagine.service.mjs +229 -8
  45. package/esm2022/lib/aigc/service-fmai/service-imagine/index.mjs +2 -10
  46. package/esm2022/lib/aigc/voice/audio.player.mjs +52 -10
  47. package/esm2022/lib/aigc/voice/class-asr.mjs +79 -8
  48. package/esm2022/lib/aigc/voice/fmode-voice.service.mjs +501 -8
  49. package/esm2022/lib/aigc/voice/index.mjs +3 -10
  50. package/esm2022/lib/aigc/voice/lib/pcm2wav.mjs +38 -10
  51. package/esm2022/lib/aigc/voice/lib/resample.mjs +34 -10
  52. package/esm2022/lib/aigc/voice/tts/fmode-tts-class.mjs +233 -8
  53. package/esm2022/lib/aigc/voice/tts/index.mjs +2 -10
  54. package/esm2022/lib/map/comp-poi-picker/comp-poi-picker.component.mjs +190 -10
  55. package/esm2022/lib/map/comp-poi-picker/comp-poi-picker.module.mjs +33 -10
  56. package/esm2022/lib/map/index.mjs +4 -10
  57. package/esm2022/lib/map/map.module.mjs +61 -10
  58. package/esm2022/lib/map/page-loca-scatter/page-loca-scatter.component.mjs +110 -10
  59. package/esm2022/lib/map/page-map.start/page-map.start.component.mjs +98 -8
  60. package/esm2022/lib/map/page-plan-route/page-plan-route.component.mjs +100 -8
  61. package/esm2022/lib/nova-cloud/index.mjs +2 -10
  62. package/esm2022/lib/nova-cloud/nova-cloud.service.mjs +148 -10
  63. package/esm2022/lib/platform/cross.service.mjs +63 -10
  64. package/esm2022/lib/platform/index.mjs +2 -10
  65. package/esm2022/lib/social/index.mjs +2 -10
  66. package/esm2022/lib/social/wechat/wechat-jssdk.service.mjs +236 -8
  67. package/esm2022/lib/storage/comp-hwobs-manager/hwobs-manager.component.mjs +59 -10
  68. package/esm2022/lib/storage/index.mjs +5 -10
  69. package/esm2022/lib/storage/service-hwobs/hwobs.service.mjs +130 -8
  70. package/esm2022/lib/storage/service-upload/index.mjs +2 -10
  71. package/esm2022/lib/storage/service-upload/nova-upload.service.mjs +462 -8
  72. package/esm2022/lib/storage/service-upload/util-file-md5.mjs +28 -10
  73. package/esm2022/lib/storage/storage.module.mjs +41 -10
  74. package/esm2022/lib/user/account/account.service.mjs +221 -10
  75. package/esm2022/lib/user/captcha/captcha.component.mjs +135 -10
  76. package/esm2022/lib/user/comp-user-avatar/comp-user-avatar.component.mjs +62 -10
  77. package/esm2022/lib/user/index.mjs +17 -10
  78. package/esm2022/lib/user/login/auth.guard.mjs +28 -10
  79. package/esm2022/lib/user/login/auth.service.mjs +373 -8
  80. package/esm2022/lib/user/login/login.component.mjs +913 -10
  81. package/esm2022/lib/user/modal-user-login/modal-user-login.component.mjs +273 -10
  82. package/esm2022/lib/user/profile/auth-profile.guard.mjs +27 -10
  83. package/esm2022/lib/user/profile/auth-profile.service.mjs +122 -10
  84. package/esm2022/lib/user/profile/profile-bind/profile-bind.component.mjs +115 -10
  85. package/esm2022/lib/user/profile/profile.module.mjs +57 -10
  86. package/esm2022/lib/user/staff/index.mjs +4 -10
  87. package/esm2022/lib/user/staff/staff.guard.mjs +26 -10
  88. package/esm2022/lib/user/staff/staff.module.mjs +18 -10
  89. package/esm2022/lib/user/staff/staff.service.mjs +85 -10
  90. package/esm2022/lib/user/user-name.pipe.mjs +29 -10
  91. package/esm2022/lib/user/user.module.mjs +106 -10
  92. package/esm2022/lib/video/fm-video/fm-video.component.mjs +67 -10
  93. package/esm2022/lib/video/index.mjs +2 -10
  94. package/esm2022/public-api.mjs +13 -10
  95. package/fesm2022/fmode-ng.mjs +8895 -7
  96. package/fesm2022/fmode-ng.mjs.map +1 -1
  97. package/lib/user/login/auth.service.d.ts +18 -3
  98. package/lib/user/modal-user-login/modal-user-login.component.d.ts +4 -2
  99. package/package.json +1 -1
  100. package/LICENSE.md +0 -8
@@ -1,10 +1,271 @@
1
-
1
+ import hljs from 'highlight.js';
2
+ import MarkdownIt from "markdown-it";
3
+ import $ from "jquery";
4
+ /**
5
+ * 自定义插件
6
+ */
7
+ import { MarkdownMathJax } from './plugins/md-mathjax';
8
+ /**
9
+ * use插件
10
+ */
11
+ import abbr from 'markdown-it-abbr';
12
+ import footnote from 'markdown-it-footnote';
13
+ import deflist from 'markdown-it-deflist';
14
+ import mark from 'markdown-it-mark';
15
+ import ins from 'markdown-it-ins';
16
+ import sub from 'markdown-it-sub';
17
+ import sup from 'markdown-it-sup';
18
+ // import imsize from 'markdown-it-imsize' // fs path
19
+ import ruby from 'markdown-it-ruby';
20
+ let md = new MarkdownIt({
21
+ html: true, // 在源码中启用 HTML 标签
22
+ xhtmlOut: true, // 使用 '/' 来闭合单标签 (比如 <br />)。
23
+ // 这个选项只对完全的 CommonMark 模式兼容。
24
+ breaks: false, // 转换段落里的 '\n' 到 <br>。
25
+ // langPrefix: 'language-', // 给围栏代码块的 CSS 语言前缀。对于额外的高亮代码非常有用。
26
+ linkify: false, // 将类似 URL 的文本自动转换为链接。
27
+ // 启用一些语言中立的替换 + 引号美化
28
+ typographer: false,
29
+ // 双 + 单引号替换对,当 typographer 启用时。
30
+ // 或者智能引号等,可以是 String 或 Array。
31
+ //
32
+ // 比方说,你可以支持 '«»„“' 给俄罗斯人使用, '„“‚‘' 给德国人使用。
33
+ // 还有 ['«\xA0', '\xA0»', '‹\xA0', '\xA0›'] 给法国人使用(包括 nbsp)。
34
+ quotes: '“”‘’',
35
+ // 高亮函数,会返回转义的HTML。
36
+ // 或 '' 如果源字符串未更改,则应在外部进行转义。
37
+ // 如果结果以 <pre ... 开头,内部包装器则会跳过。
38
+ // highlight: function (/*str, lang*/) { return ''; }
39
+ highlight: function (str, lang) {
40
+ if (lang && hljs.getLanguage(lang)) {
41
+ try {
42
+ let hljsCode = hljs.highlight(str, { language: lang }).value;
43
+ return `<pre style="position:relative;padding:10px;" class="hljs lang-${lang}"><code>${hljsCode}</code><small class="hljs-lang"><span class="sr-only">Language:</span>${lang}</small></pre>`;
44
+ }
45
+ catch (__) { }
46
+ }
47
+ return ''; // use external default escaping
48
+ }
49
+ });
50
+ md.use(abbr);
51
+ md.use(footnote);
52
+ md.use(deflist);
53
+ md.use(mark);
54
+ md.use(ins);
55
+ md.use(sub);
56
+ md.use(sup);
57
+ // md.use(katex);
58
+ // md.use(figure, {
59
+ // render: (content, displayMode) => {
60
+ // // render tex here and return
61
+ // },
62
+ // }); // 加载@mdit/tex 被mathjax依赖
63
+ // const mathjaxInstance = createMathjaxInstance({output:"svg"});
64
+ // md.use(mathjax,mathjaxInstance)
65
+ // import MathJax from 'mathjax';
66
+ // (window as any).MathJax = MathJax;
67
+ // (window as any).markdownitMathjax = {
68
+ // messageStyle: 'none',
69
+ // skipStartupTypeset: true,
70
+ // tex2jax: {
71
+ // inlineMath: [['$', '$'], ['\\[', '\\]'],['\\(', '\\)']],
72
+ // processEscapes: true
73
+ // },
74
+ // TeX: {
75
+ // extensions: ['mhchem.js']
76
+ // }
77
+ // };
78
+ // (window as any).MathJax = {
79
+ // messageStyle: 'none',
80
+ // skipStartupTypeset: true,
81
+ // tex2jax: {
82
+ // inlineMath: [['$', '$'], ['\\(', '\\)']],
83
+ // processEscapes: true
84
+ // },
85
+ // TeX: {
86
+ // extensions: ['mhchem.js']
87
+ // }
88
+ // }
89
+ // md.use(mathjax3)
90
+ // md.use(mathjax())
91
+ // md.use(mathjax({
92
+ // beforeMath: '<span class="mathjax raw">',
93
+ // afterMath: '</span>',
94
+ // beforeInlineMath: '<span class="mathjax raw">\\(',
95
+ // afterInlineMath: '\\)</span>',
96
+ // beforeDisplayMath: '<span class="mathjax raw">\\[',
97
+ // afterDisplayMath: '\\]</span>'
98
+ // }))
99
+ // md.use(imsize)
100
+ md.use(ruby);
101
+ /**
102
+ * PlantUML 插件
103
+ */
104
+ const mditConfig = {
105
+ plantumlServer: 'https://www.plantuml.com/plantuml'
106
+ };
107
+ import plantumlEncoder from 'plantuml-encoder';
108
+ /**
109
+ * uml代码转图片地址方法
110
+ * @param {*} umlCode
111
+ * @returns
112
+ * @example
113
+ * console.log(makePlantumlURL(`@startuml
114
+ start
115
+ :创建本地仓库;
116
+ :运行git init;
117
+ :使用git add .;
118
+ :使用git commit -m "xxx";
119
+ :使用git remote add origin xxx;
120
+ :使用git push -u origin "master";
121
+ stop
122
+ @enduml`))
123
+ */
124
+ function makePlantumlURL(umlCode) {
125
+ const format = 'svg';
126
+ const code = plantumlEncoder.encode(umlCode);
127
+ return `${mditConfig.plantumlServer}/${format}/${code}`;
128
+ }
129
+ // https://github.com/qjebbs/vscode-plantuml/tree/master/src/markdown-it-plantuml
130
+ md.renderer.rules['plantuml'] = (tokens, idx, options, env, self) => {
131
+ const token = tokens[idx];
132
+ if (token.type !== 'plantuml') {
133
+ return tokens[idx].content;
134
+ }
135
+ const url = makePlantumlURL(token.content);
136
+ return `
137
+ <img src="${url}" />
138
+ <pre style="position:relative;padding:10px;" class="hljs lang-plantuml"><code>${token.content}</code><small class="hljs-lang"><span class="sr-only">Language:</span>plantuml</small></pre>
139
+ `;
140
+ };
141
+ // https://github.com/qjebbs/vscode-plantuml/tree/master/src/markdown-it-plantuml
142
+ // 默认不支持rules['plantuml'] 需要通过ruler push
143
+ md.core.ruler.push('plantuml', (state) => {
144
+ const blockTokens = state.tokens;
145
+ for (const blockToken of blockTokens) {
146
+ if (blockToken.type === 'fence' && blockToken.info === 'plantuml') {
147
+ blockToken.type = 'plantuml';
148
+ }
149
+ }
150
+ });
151
+ // regex for extra tags
152
+ const spaceregex = /\s*/;
153
+ const notinhtmltagregex = /(?![^<]*>|[^<>]*<\/)/;
154
+ let coloregex = /\[color=([#|(|)|\s|,|\w]*?)\]/;
155
+ coloregex = new RegExp(coloregex.source + notinhtmltagregex.source, 'g');
156
+ let nameregex = /\[name=(.*?)\]/;
157
+ let timeregex = /\[time=([:|,|+|-|(|)|\s|\w]*?)\]/;
158
+ const nameandtimeregex = new RegExp(nameregex.source + spaceregex.source + timeregex.source + notinhtmltagregex.source, 'g');
159
+ nameregex = new RegExp(nameregex.source + notinhtmltagregex.source, 'g');
160
+ timeregex = new RegExp(timeregex.source + notinhtmltagregex.source, 'g');
161
+ function replaceExtraTags(html) {
162
+ console.log("replaceExtraTags", html);
163
+ html = html.replace(coloregex, '<span class="color" data-color="$1"></span>');
164
+ html = html.replace(nameandtimeregex, '<small><i class="fa fa-user"></i> $1 <i class="fa fa-clock-o"></i> $2</small>');
165
+ html = html.replace(nameregex, '<small><i class="fa fa-user"></i> $1</small>');
166
+ html = html.replace(timeregex, '<small><i class="fa fa-clock-o"></i> $1</small>');
167
+ console.log("replaceExtraTags", html);
168
+ return html;
169
+ }
170
+ // 生命周期:生成HTML后,动态修正生成内容:dynamic event or object binding here
171
+ function finishView(html) {
172
+ let mdDivEl = $.parseHTML(`<html><body><div id="topmd">${html}</div></body></html>`)[0];
173
+ let mdhtml$ = $(mdDivEl);
174
+ /************************************************
175
+ * 第一步:需操作DOM,进行页面修正
176
+ */
2
177
  /**
3
- * @copyright © 未来飞马 © 未来全栈 www.fmode.cn
4
- * 版权所有 © 未来飞马 © 江西脑控科技有限公司 Copyright © Fmode Technology Co., Ltd.
5
- * 保留所有权利 All Rights Reserved.
6
- * /home/ryan/workspace/nova/nova-admin/dist/fmode-ng/esm2022/lib/aigc/comp-markdown-preview/markdown-parse.mjs
178
+ * BlockQuote 引用增强插件
179
+ */
180
+ // blockquote 修正引用标签
181
+ let blockquote = mdhtml$.find('blockquote.raw').removeClass('raw');
182
+ blockquote = mdhtml$.find('blockquote');
183
+ let blockquoteP = $(blockquote).find('p');
184
+ blockquoteP.each((key, value) => {
185
+ let htmlStr = $(value).html();
186
+ htmlStr = replaceExtraTags(htmlStr);
187
+ value.innerHTML = htmlStr;
188
+ $(value).html(htmlStr);
189
+ blockquoteP[key].innerHTML = htmlStr;
190
+ $(blockquoteP[key]).html(htmlStr);
191
+ });
192
+ // 引用标签颜色渲染 color tag in blockquote will change its left border color
193
+ let blockquoteColor = blockquote.find('.color');
194
+ blockquoteColor.each((key, value) => {
195
+ let dataColor = $(value).attr('data-color');
196
+ $(value).closest('blockquote').css('border-left-color', dataColor);
197
+ });
198
+ let style = `<style>
199
+ .markdown-section {
200
+ color: black;
201
+ text-align: left;
202
+ }
203
+ .markdown-section pre .hljs-lang{
204
+ text-transform: uppercase;
205
+ font-weight: 700;
206
+ font-size: .75rem;
207
+ line-height: 1rem;
208
+ padding-top: .25rem;
209
+ padding-bottom: .25rem;
210
+ padding-left: .5rem;
211
+ padding-right: .5rem;
212
+ background-color: rgba(0,0,0,.3);
213
+ border-bottom-left-radius: .375rem;
214
+ top:0;
215
+ right:0;
216
+ position:absolute;
217
+ }
218
+
219
+ }
220
+ .markdown-section pre .hljs {
221
+ position:relative!important;
222
+ background: #272822!important;
223
+ padding:10px!important;
224
+ color: #ddd;
225
+ text-shadow: none!important;
226
+ }
227
+
228
+ .markdown-section blockquote {
229
+ margin: 0;
230
+ margin-bottom: 0px;
231
+ margin-bottom: .85em;
232
+ padding: 0 15px;
233
+ color: #858585;
234
+ border-left: 4px solid #e5e5e5;
235
+ border-left-color: rgb(229, 229, 229);
236
+ }
237
+ .markdown-section img {
238
+ max-width:100%;
239
+ }
240
+ </style>`;
241
+ let result = style + (mdhtml$.html() || html);
242
+ /************************************************
243
+ * 第二步:无需操作DOM,替换文本信息
7
244
  */
8
- import hljs from"highlight.js";import MarkdownIt from"markdown-it";import $ from"jquery";import{MarkdownMathJax}from"./plugins/md-mathjax";import abbr from"markdown-it-abbr";import footnote from"markdown-it-footnote";import deflist from"markdown-it-deflist";import mark from"markdown-it-mark";import ins from"markdown-it-ins";import sub from"markdown-it-sub";import sup from"markdown-it-sup";import ruby from"markdown-it-ruby";let md=new MarkdownIt({html:!0,xhtmlOut:!0,breaks:!1,linkify:!1,typographer:!1,quotes:"“”‘’",highlight:function(e,n){if(n&&hljs.getLanguage(n))try{return`<pre style="position:relative;padding:10px;" class="hljs lang-${n}"><code>${hljs.highlight(e,{language:n}).value}</code><small class="hljs-lang"><span class="sr-only">Language:</span>${n}</small></pre>`}catch(e){}return""}});md.use(abbr),md.use(footnote),md.use(deflist),md.use(mark),md.use(ins),md.use(sub),md.use(sup),md.use(ruby);const mditConfig={plantumlServer:"https://www.plantuml.com/plantuml"};import plantumlEncoder from"plantuml-encoder";function makePlantumlURL(e){const n=plantumlEncoder.encode(e);return`${mditConfig.plantumlServer}/svg/${n}`}md.renderer.rules.plantuml=(e,n,t,r,o)=>{const a=e[n];if("plantuml"!==a.type)return e[n].content;return`\n <img src="${makePlantumlURL(a.content)}" />\n <pre style="position:relative;padding:10px;" class="hljs lang-plantuml"><code>${a.content}</code><small class="hljs-lang"><span class="sr-only">Language:</span>plantuml</small></pre>\n `},md.core.ruler.push("plantuml",(e=>{const n=e.tokens;for(const e of n)"fence"===e.type&&"plantuml"===e.info&&(e.type="plantuml")}));const spaceregex=/\s*/,notinhtmltagregex=/(?![^<]*>|[^<>]*<\/)/;let coloregex=/\[color=([#|(|)|\s|,|\w]*?)\]/;coloregex=new RegExp(coloregex.source+notinhtmltagregex.source,"g");let nameregex=/\[name=(.*?)\]/,timeregex=/\[time=([:|,|+|-|(|)|\s|\w]*?)\]/;const nameandtimeregex=new RegExp(nameregex.source+spaceregex.source+timeregex.source+notinhtmltagregex.source,"g");function replaceExtraTags(e){return console.log("replaceExtraTags",e),e=(e=(e=(e=e.replace(coloregex,'<span class="color" data-color="$1"></span>')).replace(nameandtimeregex,'<small><i class="fa fa-user"></i> $1 <i class="fa fa-clock-o"></i> $2</small>')).replace(nameregex,'<small><i class="fa fa-user"></i> $1</small>')).replace(timeregex,'<small><i class="fa fa-clock-o"></i> $1</small>'),console.log("replaceExtraTags",e),e}function finishView(e){let n=$.parseHTML(`<html><body><div id="topmd">${e}</div></body></html>`)[0],t=$(n),r=t.find("blockquote.raw").removeClass("raw");r=t.find("blockquote");let o=$(r).find("p");o.each(((e,n)=>{let t=$(n).html();t=replaceExtraTags(t),n.innerHTML=t,$(n).html(t),o[e].innerHTML=t,$(o[e]).html(t)})),r.find(".color").each(((e,n)=>{let t=$(n).attr("data-color");$(n).closest("blockquote").css("border-left-color",t)}));let a="<style>\n .markdown-section {\n color: black;\n text-align: left;\n }\n .markdown-section pre .hljs-lang{\n text-transform: uppercase;\n font-weight: 700;\n font-size: .75rem;\n line-height: 1rem;\n padding-top: .25rem;\n padding-bottom: .25rem;\n padding-left: .5rem;\n padding-right: .5rem;\n background-color: rgba(0,0,0,.3);\n border-bottom-left-radius: .375rem;\n top:0;\n right:0;\n position:absolute;\n}\n\n }\n .markdown-section pre .hljs {\n position:relative!important;\n background: #272822!important;\n padding:10px!important;\n color: #ddd;\n text-shadow: none!important;\n }\n\n .markdown-section blockquote {\n margin: 0;\n margin-bottom: 0px;\n margin-bottom: .85em;\n padding: 0 15px;\n color: #858585;\n border-left: 4px solid #e5e5e5;\n border-left-color: rgb(229, 229, 229);\n }\n .markdown-section img {\n max-width:100%;\n }\n </style>"+(t.html()||e);return a=a.replaceAll('src="/uploads/','src="https://md.fmode.cn/uploads/'),a}nameregex=new RegExp(nameregex.source+notinhtmltagregex.source,"g"),timeregex=new RegExp(timeregex.source+notinhtmltagregex.source,"g");export class MarkdownParse{constructor(){}parseToHTML(e){this.info("markdown",e),e=(new MarkdownMathJax).text_to_mathjax(e,{output:"svg"});let n=md.render(e);return n=finishView(n),n}info(...e){}}
9
- var MODULE_PATH_NEED = `6K+l5paH5Lu25piv5pys6aG555uu55qE5LiA6YOo5YiGIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBDb21wb25lbnRzIGluIEZtb2RlIEluYy4KICAgIOeJiOadg+aJgOaciSDCqSDmnKrmnaXpo57pqawgwqkg5rGf6KW/6ISR5o6n56eR5oqA5pyJ6ZmQ5YWs5Y+4IENvcHlyaWdodCDCqSBGbW9kZSBUZWNobm9sb2d5IENvLiwgTHRkLgogICAg5L+d55WZ5omA5pyJ5p2D5YipIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICDkuKXnpoHlnKjmnKrnu4/mjojmnYPnmoTmg4XlhrXkuIvvvIzpgJrov4fku7vkvZXlqpLku4vlpI3liLbmraTmlofku7YgVW5hdXRob3JpemVkIGNvcHlpbmcgb2YgdGhpcyBmaWxlLCB2aWEgYW55IG1lZGl1bSBpcyBzdHJpY3RseSBwcm9oaWJpdGVkCiAgICDor6Xmlofku7bmmK/kuJPmnInnmoTmnLrlr4bmlofku7YgUHJvcHJpZXRhcnkgYW5kIGNvbmZpZGVudGlhbAogICAKICAgIENvcHlyaWdodCAyMDIxLW5vdyBGbW9kZSBJbmMuIHN1cHBvcnRAZm1vZGUuY24uIDE4NjA3MDA3MDczLgogICAg5L+d55WZ5omA5pyJ5p2D5YipIEFsbCByaWdodHMgcmVzZXJ2ZWQuCgogICAgUEFUSDovaG9tZS9yeWFuL3dvcmtzcGFjZS9ub3ZhL25vdmEtYWRtaW4vZGlzdC9mbW9kZS1uZy9lc20yMDIyL2xpYi9haWdjL2NvbXAtbWFya2Rvd24tcHJldmlldy9tYXJrZG93bi1wYXJzZS5tanM=`
10
-
245
+ /**
246
+ * uploads 修正附件地址
247
+ */
248
+ result = result.replaceAll('src="/uploads/', 'src="https://md.fmode.cn/uploads/');
249
+ return result;
250
+ }
251
+ export class MarkdownParse {
252
+ constructor() {
253
+ }
254
+ parseToHTML(markdown) {
255
+ this.info("markdown", markdown);
256
+ // 由于md=>html会转义原文本中的 \( 为 (,\[ 为 [,因此需要先mathjax转换再转markdown
257
+ let mdMathJax = new MarkdownMathJax();
258
+ markdown = mdMathJax.text_to_mathjax(markdown, {
259
+ output: "svg"
260
+ });
261
+ let htmlResult = md.render(markdown);
262
+ // this.info("html",htmlResult)
263
+ htmlResult = finishView(htmlResult);
264
+ // this.info("html plus",htmlResult)
265
+ return htmlResult;
266
+ }
267
+ info(...args) {
268
+ // console.log(...args)
269
+ }
270
+ }
271
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2Rvd24tcGFyc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mbW9kZS1uZy9zcmMvbGliL2FpZ2MvY29tcC1tYXJrZG93bi1wcmV2aWV3L21hcmtkb3duLXBhcnNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sSUFBSSxNQUFNLGNBQWMsQ0FBQztBQUNoQyxPQUFPLFVBQVUsTUFBTSxhQUFhLENBQUM7QUFDckMsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBRXZCOztHQUVHO0FBQ0gsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXZEOztHQUVHO0FBQ0QsT0FBTyxJQUFJLE1BQU0sa0JBQWtCLENBQUE7QUFDbkMsT0FBTyxRQUFRLE1BQU0sc0JBQXNCLENBQUE7QUFDM0MsT0FBTyxPQUFPLE1BQU0scUJBQXFCLENBQUE7QUFDekMsT0FBTyxJQUFJLE1BQU0sa0JBQWtCLENBQUE7QUFDbkMsT0FBTyxHQUFHLE1BQU0saUJBQWlCLENBQUE7QUFDakMsT0FBTyxHQUFHLE1BQU0saUJBQWlCLENBQUE7QUFDakMsT0FBTyxHQUFHLE1BQU0saUJBQWlCLENBQUE7QUFDbkMsc0RBQXNEO0FBQ3BELE9BQU8sSUFBSSxNQUFNLGtCQUFrQixDQUFBO0FBRXJDLElBQUksRUFBRSxHQUFHLElBQUksVUFBVSxDQUFDO0lBQ3BCLElBQUksRUFBVSxJQUFJLEVBQVMsaUJBQWlCO0lBQzVDLFFBQVEsRUFBTSxJQUFJLEVBQVMsNkJBQTZCO0lBQzVCLDZCQUE2QjtJQUN6RCxNQUFNLEVBQVEsS0FBSyxFQUFTLHNCQUFzQjtJQUNsRCxpRUFBaUU7SUFDakUsT0FBTyxFQUFPLEtBQUssRUFBUyxzQkFBc0I7SUFFbEQscUJBQXFCO0lBQ3JCLFdBQVcsRUFBRyxLQUFLO0lBRW5CLGdDQUFnQztJQUNoQyw4QkFBOEI7SUFDOUIsRUFBRTtJQUNGLDRDQUE0QztJQUM1Qywy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Ozs7Ozs7Ozs7Ozs7V0EwQ0gsQ0FBQTtJQUNULElBQUksTUFBTSxHQUFHLEtBQUssR0FBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSSxJQUFJLENBQUMsQ0FBQTtJQUU5Qzs7T0FFRztJQUNIOztNQUVFO0lBQ0YsTUFBTSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLEVBQUMsbUNBQW1DLENBQUMsQ0FBQTtJQUNoRixPQUFPLE1BQU0sQ0FBQTtBQUNmLENBQUM7QUFFRCxNQUFNLE9BQU8sYUFBYTtJQUN0QjtJQUNBLENBQUM7SUFFRCxXQUFXLENBQUMsUUFBWTtRQUN0QixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBQyxRQUFRLENBQUMsQ0FBQTtRQUU5Qiw0REFBNEQ7UUFDNUQsSUFBSSxTQUFTLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQTtRQUNyQyxRQUFRLEdBQUcsU0FBUyxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUM7WUFDNUMsTUFBTSxFQUFDLEtBQUs7U0FDYixDQUFDLENBQUM7UUFFSCxJQUFJLFVBQVUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXJDLCtCQUErQjtRQUMvQixVQUFVLEdBQUcsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3BDLG9DQUFvQztRQUNwQyxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0lBQ0QsSUFBSSxDQUFDLEdBQUcsSUFBUTtRQUNkLHVCQUF1QjtJQUN6QixDQUFDO0NBR0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgaGxqcyBmcm9tICdoaWdobGlnaHQuanMnO1xuaW1wb3J0IE1hcmtkb3duSXQgZnJvbSBcIm1hcmtkb3duLWl0XCI7XG5pbXBvcnQgJCBmcm9tIFwianF1ZXJ5XCI7XG5cbi8qKlxuICog6Ieq5a6a5LmJ5o+S5Lu2XG4gKi9cbmltcG9ydCB7IE1hcmtkb3duTWF0aEpheCB9IGZyb20gJy4vcGx1Z2lucy9tZC1tYXRoamF4JztcblxuLyoqXG4gKiB1c2Xmj5Lku7ZcbiAqL1xuICBpbXBvcnQgYWJiciBmcm9tICdtYXJrZG93bi1pdC1hYmJyJ1xuICBpbXBvcnQgZm9vdG5vdGUgZnJvbSAnbWFya2Rvd24taXQtZm9vdG5vdGUnXG4gIGltcG9ydCBkZWZsaXN0IGZyb20gJ21hcmtkb3duLWl0LWRlZmxpc3QnXG4gIGltcG9ydCBtYXJrIGZyb20gJ21hcmtkb3duLWl0LW1hcmsnXG4gIGltcG9ydCBpbnMgZnJvbSAnbWFya2Rvd24taXQtaW5zJ1xuICBpbXBvcnQgc3ViIGZyb20gJ21hcmtkb3duLWl0LXN1YidcbiAgaW1wb3J0IHN1cCBmcm9tICdtYXJrZG93bi1pdC1zdXAnXG4vLyAgaW1wb3J0IGltc2l6ZSBmcm9tICdtYXJrZG93bi1pdC1pbXNpemUnIC8vIGZzIHBhdGhcbiAgaW1wb3J0IHJ1YnkgZnJvbSAnbWFya2Rvd24taXQtcnVieSdcblxubGV0IG1kID0gbmV3IE1hcmtkb3duSXQoe1xuICAgIGh0bWw6ICAgICAgICAgdHJ1ZSwgICAgICAgIC8vIOWcqOa6kOeggeS4reWQr+eUqCBIVE1MIOagh+etvlxuICAgIHhodG1sT3V0OiAgICAgdHJ1ZSwgICAgICAgIC8vIOS9v+eUqCAnLycg5p2l6Zet5ZCI5Y2V5qCH562+IO+8iOavlOWmgiA8YnIgLz7vvInjgIJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g6L+Z5Liq6YCJ6aG55Y+q5a+55a6M5YWo55qEIENvbW1vbk1hcmsg5qih5byP5YW85a6544CCXG4gICAgYnJlYWtzOiAgICAgICBmYWxzZSwgICAgICAgIC8vIOi9rOaNouauteiQvemHjOeahCAnXFxuJyDliLAgPGJyPuOAglxuICAgIC8vIGxhbmdQcmVmaXg6ICAgJ2xhbmd1YWdlLScsICAvLyDnu5nlm7TmoI/ku6PnoIHlnZfnmoQgQ1NTIOivreiogOWJjee8gOOAguWvueS6jumineWklueahOmrmOS6ruS7o+eggemdnuW4uOacieeUqOOAglxuICAgIGxpbmtpZnk6ICAgICAgZmFsc2UsICAgICAgICAvLyDlsIbnsbvkvLwgVVJMIOeahOaWh+acrOiHquWKqOi9rOaNouS4uumTvuaOpeOAglxuICBcbiAgICAvLyDlkK/nlKjkuIDkupvor63oqIDkuK3nq4vnmoTmm7/mjaIgKyDlvJXlj7fnvo7ljJZcbiAgICB0eXBvZ3JhcGhlcjogIGZhbHNlLFxuICBcbiAgICAvLyDlj4wgKyDljZXlvJXlj7fmm7/mjaLlr7nvvIzlvZMgdHlwb2dyYXBoZXIg5ZCv55So5pe244CCXG4gICAgLy8g5oiW6ICF5pm66IO95byV5Y+3562J77yM5Y+v5Lul5pivIFN0cmluZyDmiJYgQXJyYXnjgIJcbiAgICAvL1xuICAgIC8vIOavlOaWueivtO+8jOS9oOWPr+S7peaUr+aMgSAnwqvCu+KAnuKAnCcg57uZ5L+E572X5pav5Lq65L2/55So77yMICfigJ7igJzigJrigJgnICDnu5nlvrflm73kurrkvb/nlKjjgIJcbiAgICAvLyDov5jmnIkgWyfCq1xceEEwJywgJ1xceEEwwrsnLCAn4oC5XFx4QTAnLCAnXFx4QTDigLonXSDnu5nms5Xlm73kurrkvb/nlKjvvIjljIXmi6wgbmJzcO+8ieOAglxuICAgIHF1b3RlczogJ+KAnOKAneKAmOKAmScsXG4gIFxuICAgIC8vIOmrmOS6ruWHveaVsO+8jOS8mui/lOWbnui9rOS5ieeahEhUTUzjgIJcbiAgICAvLyDmiJYgJycg5aaC5p6c5rqQ5a2X56ym5Liy5pyq5pu05pS577yM5YiZ5bqU5Zyo5aSW6YOo6L+b6KGM6L2s5LmJ44CCXG4gICAgLy8g5aaC5p6c57uT5p6c5LulIDxwcmUgLi4uIOW8gOWktO+8jOWGhemDqOWMheijheWZqOWImeS8mui3s+i/h+OAglxuICAgIC8vIGhpZ2hsaWdodDogZnVuY3Rpb24gKC8qc3RyLCBsYW5nKi8pIHsgcmV0dXJuICcnOyB9XG4gICAgaGlnaGxpZ2h0OiBmdW5jdGlvbiAoc3RyOmFueSwgbGFuZzphbnkpIHtcbiAgICAgICAgaWYgKGxhbmcgJiYgaGxqcy5nZXRMYW5ndWFnZShsYW5nKSkge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBsZXQgaGxqc0NvZGUgPSBobGpzLmhpZ2hsaWdodChzdHIsIHsgbGFuZ3VhZ2U6IGxhbmcgfSkudmFsdWVcbiAgICAgICAgICAgIHJldHVybiBgPHByZSBzdHlsZT1cInBvc2l0aW9uOnJlbGF0aXZlO3BhZGRpbmc6MTBweDtcIiBjbGFzcz1cImhsanMgbGFuZy0ke2xhbmd9XCI+PGNvZGU+JHtobGpzQ29kZX08L2NvZGU+PHNtYWxsIGNsYXNzPVwiaGxqcy1sYW5nXCI+PHNwYW4gY2xhc3M9XCJzci1vbmx5XCI+TGFuZ3VhZ2U6PC9zcGFuPiR7bGFuZ308L3NtYWxsPjwvcHJlPmA7XG4gICAgICAgICAgfSBjYXRjaCAoX18pIHt9XG4gICAgICAgIH1cbiAgICBcbiAgICAgICAgcmV0dXJuICcnOyAvLyB1c2UgZXh0ZXJuYWwgZGVmYXVsdCBlc2NhcGluZ1xuICAgICAgfVxuICB9KTtcbiAgXG4gXG4gIFxuICAgICBtZC51c2UoYWJicilcbiAgICAgbWQudXNlKGZvb3Rub3RlKVxuICAgICBtZC51c2UoZGVmbGlzdClcbiAgICAgbWQudXNlKG1hcmspXG4gICAgIG1kLnVzZShpbnMpXG4gICAgIG1kLnVzZShzdWIpO1xuICAgICBtZC51c2Uoc3VwKTtcblxuICAgIC8vICBtZC51c2Uoa2F0ZXgpO1xuXG4gICAgLy8gIG1kLnVzZShmaWd1cmUsIHtcbiAgICAvLyAgIHJlbmRlcjogKGNvbnRlbnQsIGRpc3BsYXlNb2RlKSA9PiB7XG4gICAgLy8gICAgIC8vIHJlbmRlciB0ZXggaGVyZSBhbmQgcmV0dXJuXG4gICAgLy8gICB9LFxuICAgIC8vIH0pOyAvLyDliqDovb1AbWRpdC90ZXgg6KKrbWF0aGpheOS+nei1llxuICAgIC8vICBjb25zdCBtYXRoamF4SW5zdGFuY2UgPSBjcmVhdGVNYXRoamF4SW5zdGFuY2Uoe291dHB1dDpcInN2Z1wifSk7XG4gICAgLy8gIG1kLnVzZShtYXRoamF4LG1hdGhqYXhJbnN0YW5jZSlcbiAgICAvLyBpbXBvcnQgTWF0aEpheCBmcm9tICdtYXRoamF4JztcbiAgICAvLyAod2luZG93IGFzIGFueSkuTWF0aEpheCA9IE1hdGhKYXg7XG4gICAgLy8gKHdpbmRvdyBhcyBhbnkpLm1hcmtkb3duaXRNYXRoamF4ID0ge1xuICAgIC8vICAgbWVzc2FnZVN0eWxlOiAnbm9uZScsXG4gICAgLy8gICBza2lwU3RhcnR1cFR5cGVzZXQ6IHRydWUsXG4gICAgLy8gICB0ZXgyamF4OiB7XG4gICAgLy8gICAgIGlubGluZU1hdGg6IFtbJyQnLCAnJCddLCBbJ1xcXFxbJywgJ1xcXFxdJ10sWydcXFxcKCcsICdcXFxcKSddXSxcbiAgICAvLyAgICAgcHJvY2Vzc0VzY2FwZXM6IHRydWVcbiAgICAvLyAgIH0sXG4gICAgLy8gICBUZVg6IHtcbiAgICAvLyAgICAgZXh0ZW5zaW9uczogWydtaGNoZW0uanMnXVxuICAgIC8vICAgfVxuICAgIC8vIH07XG5cbiAgICAvLyAod2luZG93IGFzIGFueSkuTWF0aEpheCA9IHtcbiAgICAvLyAgIG1lc3NhZ2VTdHlsZTogJ25vbmUnLFxuICAgIC8vICAgc2tpcFN0YXJ0dXBUeXBlc2V0OiB0cnVlLFxuICAgIC8vICAgdGV4MmpheDoge1xuICAgIC8vICAgICBpbmxpbmVNYXRoOiBbWyckJywgJyQnXSwgWydcXFxcKCcsICdcXFxcKSddXSxcbiAgICAvLyAgICAgcHJvY2Vzc0VzY2FwZXM6IHRydWVcbiAgICAvLyAgIH0sXG4gICAgLy8gICBUZVg6IHtcbiAgICAvLyAgICAgZXh0ZW5zaW9uczogWydtaGNoZW0uanMnXVxuICAgICAgLy8gfVxuICAgIC8vIH1cblxuICAgIC8vIG1kLnVzZShtYXRoamF4MylcbiAgICAvLyBtZC51c2UobWF0aGpheCgpKVxuICAgIC8vIG1kLnVzZShtYXRoamF4KHtcbiAgICAvLyAgIGJlZm9yZU1hdGg6ICc8c3BhbiBjbGFzcz1cIm1hdGhqYXggcmF3XCI+JyxcbiAgICAvLyAgIGFmdGVyTWF0aDogJzwvc3Bhbj4nLFxuICAgIC8vICAgYmVmb3JlSW5saW5lTWF0aDogJzxzcGFuIGNsYXNzPVwibWF0aGpheCByYXdcIj5cXFxcKCcsXG4gICAgLy8gICBhZnRlcklubGluZU1hdGg6ICdcXFxcKTwvc3Bhbj4nLFxuICAgIC8vICAgYmVmb3JlRGlzcGxheU1hdGg6ICc8c3BhbiBjbGFzcz1cIm1hdGhqYXggcmF3XCI+XFxcXFsnLFxuICAgIC8vICAgYWZ0ZXJEaXNwbGF5TWF0aDogJ1xcXFxdPC9zcGFuPidcbiAgICAvLyB9KSlcblxuICAgIC8vICBtZC51c2UoaW1zaXplKVxuICAgICBtZC51c2UocnVieSlcbiAgXG4gIC8qKlxuICAgKiBQbGFudFVNTCDmj5Lku7ZcbiAgICovXG4gIGNvbnN0IG1kaXRDb25maWcgPSB7XG4gICAgcGxhbnR1bWxTZXJ2ZXI6J2h0dHBzOi8vd3d3LnBsYW50dW1sLmNvbS9wbGFudHVtbCdcbiAgfVxuICBcbiAgaW1wb3J0IHBsYW50dW1sRW5jb2RlciBmcm9tICdwbGFudHVtbC1lbmNvZGVyJ1xuICAgLyoqXG4gICAgICogdW1s5Luj56CB6L2s5Zu+54mH5Zyw5Z2A5pa55rOVXG4gICAgICogQHBhcmFtIHsqfSB1bWxDb2RlIFxuICAgICAqIEByZXR1cm5zIFxuICAgICAqIEBleGFtcGxlXG4gICAgICogY29uc29sZS5sb2cobWFrZVBsYW50dW1sVVJMKGBAc3RhcnR1bWxcbiAgICAgICAgc3RhcnRcbiAgICAgICAgOuWIm+W7uuacrOWcsOS7k+W6kztcbiAgICAgICAgOui/kOihjGdpdCBpbml0O1xuICAgICAgICA65L2/55SoZ2l0IGFkZCAuO1xuICAgICAgICA65L2/55SoZ2l0IGNvbW1pdCAtbSBcInh4eFwiO1xuICAgICAgICA65L2/55SoZ2l0IHJlbW90ZSBhZGQgb3JpZ2luIHh4eDtcbiAgICAgICAgOuS9v+eUqGdpdCBwdXNoIC11IG9yaWdpbiBcIm1hc3RlclwiO1xuICAgICAgICBzdG9wXG4gICAgICAgIEBlbmR1bWxgKSlcbiAgICAqL1xuXG5cblxuICAgICBmdW5jdGlvbiBtYWtlUGxhbnR1bWxVUkwodW1sQ29kZTphbnkpe1xuICAgICAgICBjb25zdCBmb3JtYXQgPSAnc3ZnJ1xuICAgICAgICBjb25zdCBjb2RlID0gcGxhbnR1bWxFbmNvZGVyLmVuY29kZSh1bWxDb2RlKVxuICAgICAgICByZXR1cm4gYCR7bWRpdENvbmZpZy5wbGFudHVtbFNlcnZlcn0vJHtmb3JtYXR9LyR7Y29kZX1gXG4gICAgfVxuICBcblxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vcWplYmJzL3ZzY29kZS1wbGFudHVtbC90cmVlL21hc3Rlci9zcmMvbWFya2Rvd24taXQtcGxhbnR1bWxcbiAgbWQucmVuZGVyZXIucnVsZXNbJ3BsYW50dW1sJ10gPSAodG9rZW5zOmFueSwgaWR4OmFueSwgb3B0aW9uczphbnksIGVudjphbnksIHNlbGY6YW55KSAgPT4ge1xuICAgIGNvbnN0IHRva2VuID0gdG9rZW5zW2lkeF1cbiAgICBpZiAodG9rZW4udHlwZSAhPT0gJ3BsYW50dW1sJykge1xuICAgICAgICByZXR1cm4gdG9rZW5zW2lkeF0uY29udGVudFxuICAgIH1cbiAgICBjb25zdCB1cmwgPSBtYWtlUGxhbnR1bWxVUkwodG9rZW4uY29udGVudClcbiAgICByZXR1cm4gYFxuICAgIDxpbWcgc3JjPVwiJHt1cmx9XCIgLz5cbiAgICA8cHJlIHN0eWxlPVwicG9zaXRpb246cmVsYXRpdmU7cGFkZGluZzoxMHB4O1wiIGNsYXNzPVwiaGxqcyBsYW5nLXBsYW50dW1sXCI+PGNvZGU+JHt0b2tlbi5jb250ZW50fTwvY29kZT48c21hbGwgY2xhc3M9XCJobGpzLWxhbmdcIj48c3BhbiBjbGFzcz1cInNyLW9ubHlcIj5MYW5ndWFnZTo8L3NwYW4+cGxhbnR1bWw8L3NtYWxsPjwvcHJlPlxuICAgIGBcbn1cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9xamViYnMvdnNjb2RlLXBsYW50dW1sL3RyZWUvbWFzdGVyL3NyYy9tYXJrZG93bi1pdC1wbGFudHVtbFxuLy8g6buY6K6k5LiN5pSv5oyBcnVsZXNbJ3BsYW50dW1sJ10g6ZyA6KaB6YCa6L+HcnVsZXIgcHVzaFxubWQuY29yZS5ydWxlci5wdXNoKCdwbGFudHVtbCcsIChzdGF0ZTphbnkpID0+IHtcbiAgICBjb25zdCBibG9ja1Rva2VucyA9IHN0YXRlLnRva2Vuc1xuICAgIGZvciAoY29uc3QgYmxvY2tUb2tlbiBvZiBibG9ja1Rva2Vucykge1xuICAgICAgaWYgKGJsb2NrVG9rZW4udHlwZSA9PT0gJ2ZlbmNlJyAmJiBibG9ja1Rva2VuLmluZm8gPT09ICdwbGFudHVtbCcpIHtcbiAgICAgICAgYmxvY2tUb2tlbi50eXBlID0gJ3BsYW50dW1sJ1xuICAgICAgfVxuICAgIH1cbiAgfSlcblxuICAvLyByZWdleCBmb3IgZXh0cmEgdGFnc1xuICBjb25zdCBzcGFjZXJlZ2V4ID0gL1xccyovXG4gIGNvbnN0IG5vdGluaHRtbHRhZ3JlZ2V4ID0gLyg/IVtePF0qPnxbXjw+XSo8XFwvKS9cbiAgbGV0IGNvbG9yZWdleCA9IC9cXFtjb2xvcj0oWyN8KHwpfFxcc3wsfFxcd10qPylcXF0vXG5jb2xvcmVnZXggPSBuZXcgUmVnRXhwKGNvbG9yZWdleC5zb3VyY2UgKyBub3Rpbmh0bWx0YWdyZWdleC5zb3VyY2UsICdnJylcbmxldCBuYW1lcmVnZXggPSAvXFxbbmFtZT0oLio/KVxcXS9cbmxldCB0aW1lcmVnZXggPSAvXFxbdGltZT0oWzp8LHwrfC18KHwpfFxcc3xcXHddKj8pXFxdL1xuY29uc3QgbmFtZWFuZHRpbWVyZWdleCA9IG5ldyBSZWdFeHAobmFtZXJlZ2V4LnNvdXJjZSArIHNwYWNlcmVnZXguc291cmNlICsgdGltZXJlZ2V4LnNvdXJjZSArIG5vdGluaHRtbHRhZ3JlZ2V4LnNvdXJjZSwgJ2cnKVxubmFtZXJlZ2V4ID0gbmV3IFJlZ0V4cChuYW1lcmVnZXguc291cmNlICsgbm90aW5odG1sdGFncmVnZXguc291cmNlLCAnZycpXG50aW1lcmVnZXggPSBuZXcgUmVnRXhwKHRpbWVyZWdleC5zb3VyY2UgKyBub3Rpbmh0bWx0YWdyZWdleC5zb3VyY2UsICdnJylcblxuZnVuY3Rpb24gcmVwbGFjZUV4dHJhVGFncyAoaHRtbDphbnkpIHsgXG4gIGNvbnNvbGUubG9nKFwicmVwbGFjZUV4dHJhVGFnc1wiLGh0bWwpXG4gIGh0bWwgPSBodG1sLnJlcGxhY2UoY29sb3JlZ2V4LCAnPHNwYW4gY2xhc3M9XCJjb2xvclwiIGRhdGEtY29sb3I9XCIkMVwiPjwvc3Bhbj4nKVxuICBodG1sID0gaHRtbC5yZXBsYWNlKG5hbWVhbmR0aW1lcmVnZXgsICc8c21hbGw+PGkgY2xhc3M9XCJmYSBmYS11c2VyXCI+PC9pPiAkMSA8aSBjbGFzcz1cImZhIGZhLWNsb2NrLW9cIj48L2k+ICQyPC9zbWFsbD4nKVxuICBodG1sID0gaHRtbC5yZXBsYWNlKG5hbWVyZWdleCwgJzxzbWFsbD48aSBjbGFzcz1cImZhIGZhLXVzZXJcIj48L2k+ICQxPC9zbWFsbD4nKVxuICBodG1sID0gaHRtbC5yZXBsYWNlKHRpbWVyZWdleCwgJzxzbWFsbD48aSBjbGFzcz1cImZhIGZhLWNsb2NrLW9cIj48L2k+ICQxPC9zbWFsbD4nKVxuICBjb25zb2xlLmxvZyhcInJlcGxhY2VFeHRyYVRhZ3NcIixodG1sKVxuICByZXR1cm4gaHRtbFxufVxuXG5cbi8vIOeUn+WRveWRqOacn++8mueUn+aIkEhUTUzlkI7vvIzliqjmgIHkv67mraPnlJ/miJDlhoXlrrnvvJpkeW5hbWljIGV2ZW50IG9yIG9iamVjdCBiaW5kaW5nIGhlcmVcbmZ1bmN0aW9uIGZpbmlzaFZpZXcgKGh0bWw6YW55KSB7XG5cbiAgbGV0IG1kRGl2RWwgPSAkLnBhcnNlSFRNTChgPGh0bWw+PGJvZHk+PGRpdiBpZD1cInRvcG1kXCI+JHtodG1sfTwvZGl2PjwvYm9keT48L2h0bWw+YClbMF1cbiAgbGV0IG1kaHRtbCQgPSAkKG1kRGl2RWwpXG5cbiAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICog56ys5LiA5q2l77ya6ZyA5pON5L2cRE9N77yM6L+b6KGM6aG16Z2i5L+u5q2jXG4gICAqL1xuICAvKipcbiAgICogQmxvY2tRdW90ZSDlvJXnlKjlop7lvLrmj5Lku7ZcbiAgKi9cbiAgLy8gYmxvY2txdW90ZSDkv67mraPlvJXnlKjmoIfnrb5cbiAgbGV0IGJsb2NrcXVvdGUgPSBtZGh0bWwkLmZpbmQoJ2Jsb2NrcXVvdGUucmF3JykucmVtb3ZlQ2xhc3MoJ3JhdycpXG4gIGJsb2NrcXVvdGUgPSBtZGh0bWwkLmZpbmQoJ2Jsb2NrcXVvdGUnKVxuXG4gIGxldCBibG9ja3F1b3RlUCA9ICQoYmxvY2txdW90ZSkuZmluZCgncCcpXG4gIGJsb2NrcXVvdGVQLmVhY2goKGtleTphbnksIHZhbHVlOmFueSkgPT4ge1xuICAgIGxldCBodG1sU3RyID0gJCh2YWx1ZSkuaHRtbCgpXG4gICAgaHRtbFN0ciA9IHJlcGxhY2VFeHRyYVRhZ3MoaHRtbFN0cilcbiAgICB2YWx1ZS5pbm5lckhUTUwgPSBodG1sU3RyXG4gICAgJCh2YWx1ZSkuaHRtbChodG1sU3RyKVxuICAgIGJsb2NrcXVvdGVQW2tleV0uaW5uZXJIVE1MID0gaHRtbFN0cjtcbiAgICAkKGJsb2NrcXVvdGVQW2tleV0pLmh0bWwoaHRtbFN0cilcbiAgfSlcblxuICAvLyDlvJXnlKjmoIfnrb7popzoibLmuLLmn5MgY29sb3IgdGFnIGluIGJsb2NrcXVvdGUgd2lsbCBjaGFuZ2UgaXRzIGxlZnQgYm9yZGVyIGNvbG9yXG4gIGxldCBibG9ja3F1b3RlQ29sb3IgPSBibG9ja3F1b3RlLmZpbmQoJy5jb2xvcicpXG4gIGJsb2NrcXVvdGVDb2xvci5lYWNoKChrZXk6YW55LCB2YWx1ZTphbnkpID0+IHtcbiAgICBsZXQgZGF0YUNvbG9yOmFueSA9ICQodmFsdWUpLmF0dHIoJ2RhdGEtY29sb3InKVxuICAgICQodmFsdWUpLmNsb3Nlc3QoJ2Jsb2NrcXVvdGUnKS5jc3MoJ2JvcmRlci1sZWZ0LWNvbG9yJywgZGF0YUNvbG9yKVxuICB9KVxuXG4gIFxuICBsZXQgc3R5bGUgPSBgPHN0eWxlPlxuICAgIC5tYXJrZG93bi1zZWN0aW9uIHtcbiAgICAgIGNvbG9yOiBibGFjaztcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgfVxuICAgIC5tYXJrZG93bi1zZWN0aW9uIHByZSAuaGxqcy1sYW5ne1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICBmb250LXNpemU6IC43NXJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxcmVtO1xuICAgICAgcGFkZGluZy10b3A6IC4yNXJlbTtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAuMjVyZW07XG4gICAgICBwYWRkaW5nLWxlZnQ6IC41cmVtO1xuICAgICAgcGFkZGluZy1yaWdodDogLjVyZW07XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLC4zKTtcbiAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IC4zNzVyZW07XG4gICAgICB0b3A6MDtcbiAgICAgIHJpZ2h0OjA7XG4gICAgICBwb3NpdGlvbjphYnNvbHV0ZTtcbn1cblxuICAgIH1cbiAgICAubWFya2Rvd24tc2VjdGlvbiBwcmUgLmhsanMge1xuICAgICAgICBwb3NpdGlvbjpyZWxhdGl2ZSFpbXBvcnRhbnQ7XG4gICAgICAgIGJhY2tncm91bmQ6ICMyNzI4MjIhaW1wb3J0YW50O1xuICAgICAgICBwYWRkaW5nOjEwcHghaW1wb3J0YW50O1xuICAgICAgICBjb2xvcjogI2RkZDtcbiAgICAgICAgdGV4dC1zaGFkb3c6IG5vbmUhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5tYXJrZG93bi1zZWN0aW9uIGJsb2NrcXVvdGUge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDBweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogLjg1ZW07XG4gICAgICAgIHBhZGRpbmc6IDAgMTVweDtcbiAgICAgICAgY29sb3I6ICM4NTg1ODU7XG4gICAgICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQgI2U1ZTVlNTtcbiAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHJnYigyMjksIDIyOSwgMjI5KTtcbiAgICB9XG4gICAgLm1hcmtkb3duLXNlY3Rpb24gaW1nIHtcbiAgICAgIG1heC13aWR0aDoxMDAlO1xuICB9XG4gIDwvc3R5bGU+YFxuICBsZXQgcmVzdWx0ID0gc3R5bGUgICsgKG1kaHRtbCQuaHRtbCgpIHx8IGh0bWwpXG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiDnrKzkuozmraXvvJrml6DpnIDmk43kvZxET03vvIzmm7/mjaLmlofmnKzkv6Hmga9cbiAgICovXG4gIC8qKlxuICAgKiB1cGxvYWRzIOS/ruato+mZhOS7tuWcsOWdgFxuICAqL1xuICByZXN1bHQgPSByZXN1bHQucmVwbGFjZUFsbCgnc3JjPVwiL3VwbG9hZHMvJywnc3JjPVwiaHR0cHM6Ly9tZC5mbW9kZS5jbi91cGxvYWRzLycpXG4gIHJldHVybiByZXN1bHRcbn1cblxuZXhwb3J0IGNsYXNzIE1hcmtkb3duUGFyc2V7XG4gICAgY29uc3RydWN0b3IoKXtcbiAgICB9IFxuXG4gICAgcGFyc2VUb0hUTUwobWFya2Rvd246YW55KXtcbiAgICAgIHRoaXMuaW5mbyhcIm1hcmtkb3duXCIsbWFya2Rvd24pXG5cbiAgICAgIC8vIOeUseS6jm1kPT5odG1s5Lya6L2s5LmJ5Y6f5paH5pys5Lit55qEIFxcKCDkuLogKO+8jFxcWyDkuLogW++8jOWboOatpOmcgOimgeWFiG1hdGhqYXjovazmjaLlho3ovaxtYXJrZG93blxuICAgICAgbGV0IG1kTWF0aEpheCA9IG5ldyBNYXJrZG93bk1hdGhKYXgoKVxuICAgICAgbWFya2Rvd24gPSBtZE1hdGhKYXgudGV4dF90b19tYXRoamF4KG1hcmtkb3duLHtcbiAgICAgICAgb3V0cHV0Olwic3ZnXCJcbiAgICAgIH0pO1xuXG4gICAgICBsZXQgaHRtbFJlc3VsdCA9IG1kLnJlbmRlcihtYXJrZG93bik7XG5cbiAgICAgIC8vIHRoaXMuaW5mbyhcImh0bWxcIixodG1sUmVzdWx0KVxuICAgICAgaHRtbFJlc3VsdCA9IGZpbmlzaFZpZXcoaHRtbFJlc3VsdCk7XG4gICAgICAvLyB0aGlzLmluZm8oXCJodG1sIHBsdXNcIixodG1sUmVzdWx0KVxuICAgICAgcmV0dXJuIGh0bWxSZXN1bHQ7XG4gICAgfVxuICAgIGluZm8oLi4uYXJnczphbnkpe1xuICAgICAgLy8gY29uc29sZS5sb2coLi4uYXJncylcbiAgICB9XG4gICAgLy8gTWFya2Rvd24gVGV4dCB0byBIVE1MXG4gICAgLy8gSFRNTCBET00gdG8gRW5oYW5jZSBIVE1MIERPTVxufSJdfQ==
@@ -1,10 +1,51 @@
1
-
2
- /**
3
- * @copyright © 未来飞马 © 未来全栈 www.fmode.cn
4
- * 版权所有 © 未来飞马 © 江西脑控科技有限公司 Copyright © Fmode Technology Co., Ltd.
5
- * 保留所有权利 All Rights Reserved.
6
- * /home/ryan/workspace/nova/nova-admin/dist/fmode-ng/esm2022/lib/aigc/comp-markdown-preview/markdown-preview.component.mjs
7
- */
8
- import{Component,ElementRef,Input,Renderer2,ViewChild}from"@angular/core";import{DomSanitizer}from"@angular/platform-browser";import{MarkdownParse}from"./markdown-parse";import*as i0 from"@angular/core";import*as i1 from"@angular/platform-browser";import*as i2 from"@angular/common";export class MarkdownPreviewComponent{constructor(e,n){this.domSan=e,this.renderer=n,this.content="",this.render=!0}ngAfterViewInit(){this.renderMdToHTML()}renderMdToHTML(){if(!this.render)return;let e=(new MarkdownParse).parseToHTML(this.content);this.safeHTML=this.domSan.bypassSecurityTrustHtml(e);let n=this.renderer.createElement("div");n.innerHTML=e,this.renderer.appendChild(this.mdContent.nativeElement,n)}static{this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"17.3.12",ngImport:i0,type:MarkdownPreviewComponent,deps:[{token:i1.DomSanitizer},{token:i0.Renderer2}],target:i0.ɵɵFactoryTarget.Component})}static{this.ɵcmp=i0.ɵɵngDeclareComponent({minVersion:"14.0.0",version:"17.3.12",type:MarkdownPreviewComponent,selector:"fm-markdown-preview",inputs:{content:"content",render:"render"},viewQueries:[{propertyName:"mdContent",first:!0,predicate:["mdContent"],descendants:!0}],ngImport:i0,template:'<div class="message-body">\n <div *ngIf="render" #mdContent class="markdown-section">\n </div>\n <div *ngIf="!render" class="pre-section">\n {{content}}\n </div>\n</div>',styles:[":host{overflow-x:auto}.message-body div{text-align:left;overflow-x:auto}.message-body .pre-section{white-space:pre-wrap}.markdown-section blockquote{margin:0 0 .85em;padding:0 15px;color:#858585;border-left:4px solid #e5e5e5;border-left-color:#e5e5e5}\n"],dependencies:[{kind:"directive",type:i2.NgIf,selector:"[ngIf]",inputs:["ngIf","ngIfThen","ngIfElse"]}]})}}i0.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"17.3.12",ngImport:i0,type:MarkdownPreviewComponent,decorators:[{type:Component,args:[{selector:"fm-markdown-preview",template:'<div class="message-body">\n <div *ngIf="render" #mdContent class="markdown-section">\n </div>\n <div *ngIf="!render" class="pre-section">\n {{content}}\n </div>\n</div>',styles:[":host{overflow-x:auto}.message-body div{text-align:left;overflow-x:auto}.message-body .pre-section{white-space:pre-wrap}.markdown-section blockquote{margin:0 0 .85em;padding:0 15px;color:#858585;border-left:4px solid #e5e5e5;border-left-color:#e5e5e5}\n"]}]}],ctorParameters:()=>[{type:i1.DomSanitizer},{type:i0.Renderer2}],propDecorators:{content:[{type:Input}],mdContent:[{type:ViewChild,args:["mdContent"]}],render:[{type:Input}]}});
9
- var MODULE_PATH_NEED = `6K+l5paH5Lu25piv5pys6aG555uu55qE5LiA6YOo5YiGIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBDb21wb25lbnRzIGluIEZtb2RlIEluYy4KICAgIOeJiOadg+aJgOaciSDCqSDmnKrmnaXpo57pqawgwqkg5rGf6KW/6ISR5o6n56eR5oqA5pyJ6ZmQ5YWs5Y+4IENvcHlyaWdodCDCqSBGbW9kZSBUZWNobm9sb2d5IENvLiwgTHRkLgogICAg5L+d55WZ5omA5pyJ5p2D5YipIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICDkuKXnpoHlnKjmnKrnu4/mjojmnYPnmoTmg4XlhrXkuIvvvIzpgJrov4fku7vkvZXlqpLku4vlpI3liLbmraTmlofku7YgVW5hdXRob3JpemVkIGNvcHlpbmcgb2YgdGhpcyBmaWxlLCB2aWEgYW55IG1lZGl1bSBpcyBzdHJpY3RseSBwcm9oaWJpdGVkCiAgICDor6Xmlofku7bmmK/kuJPmnInnmoTmnLrlr4bmlofku7YgUHJvcHJpZXRhcnkgYW5kIGNvbmZpZGVudGlhbAogICAKICAgIENvcHlyaWdodCAyMDIxLW5vdyBGbW9kZSBJbmMuIHN1cHBvcnRAZm1vZGUuY24uIDE4NjA3MDA3MDczLgogICAg5L+d55WZ5omA5pyJ5p2D5YipIEFsbCByaWdodHMgcmVzZXJ2ZWQuCgogICAgUEFUSDovaG9tZS9yeWFuL3dvcmtzcGFjZS9ub3ZhL25vdmEtYWRtaW4vZGlzdC9mbW9kZS1uZy9lc20yMDIyL2xpYi9haWdjL2NvbXAtbWFya2Rvd24tcHJldmlldy9tYXJrZG93bi1wcmV2aWV3LmNvbXBvbmVudC5tanM=`
10
-
1
+ import { Component, ElementRef, Input, Renderer2, ViewChild } from '@angular/core';
2
+ import { DomSanitizer } from '@angular/platform-browser';
3
+ import { MarkdownParse } from "./markdown-parse";
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/platform-browser";
6
+ import * as i2 from "@angular/common";
7
+ /**
8
+ * Markdown 文档高级渲染组件
9
+ * @name fm-markdown-preview
10
+ * @public
11
+ */
12
+ export class MarkdownPreviewComponent {
13
+ constructor(domSan, renderer) {
14
+ this.domSan = domSan;
15
+ this.renderer = renderer;
16
+ this.content = ``;
17
+ /**
18
+ * 是否开启MD渲染,默认开启
19
+ * @default true
20
+ */
21
+ this.render = true;
22
+ }
23
+ ngAfterViewInit() {
24
+ this.renderMdToHTML();
25
+ }
26
+ renderMdToHTML() {
27
+ if (!this.render)
28
+ return;
29
+ let mdparser = new MarkdownParse();
30
+ let htmlResult = mdparser.parseToHTML(this.content);
31
+ this.safeHTML = this.domSan.bypassSecurityTrustHtml(htmlResult);
32
+ let mdDiv = this.renderer.createElement("div");
33
+ mdDiv.innerHTML = htmlResult;
34
+ // console.log(mdDiv.innerHTML)
35
+ this.renderer.appendChild(this.mdContent.nativeElement, mdDiv);
36
+ }
37
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MarkdownPreviewComponent, deps: [{ token: i1.DomSanitizer }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
38
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MarkdownPreviewComponent, selector: "fm-markdown-preview", inputs: { content: "content", render: "render" }, viewQueries: [{ propertyName: "mdContent", first: true, predicate: ["mdContent"], descendants: true }], ngImport: i0, template: "<div class=\"message-body\">\n <div *ngIf=\"render\" #mdContent class=\"markdown-section\">\n </div>\n <div *ngIf=\"!render\" class=\"pre-section\">\n {{content}}\n </div>\n</div>", styles: [":host{overflow-x:auto}.message-body div{text-align:left;overflow-x:auto}.message-body .pre-section{white-space:pre-wrap}.markdown-section blockquote{margin:0 0 .85em;padding:0 15px;color:#858585;border-left:4px solid #e5e5e5;border-left-color:#e5e5e5}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
39
+ }
40
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MarkdownPreviewComponent, decorators: [{
41
+ type: Component,
42
+ args: [{ selector: 'fm-markdown-preview', template: "<div class=\"message-body\">\n <div *ngIf=\"render\" #mdContent class=\"markdown-section\">\n </div>\n <div *ngIf=\"!render\" class=\"pre-section\">\n {{content}}\n </div>\n</div>", styles: [":host{overflow-x:auto}.message-body div{text-align:left;overflow-x:auto}.message-body .pre-section{white-space:pre-wrap}.markdown-section blockquote{margin:0 0 .85em;padding:0 15px;color:#858585;border-left:4px solid #e5e5e5;border-left-color:#e5e5e5}\n"] }]
43
+ }], ctorParameters: () => [{ type: i1.DomSanitizer }, { type: i0.Renderer2 }], propDecorators: { content: [{
44
+ type: Input
45
+ }], mdContent: [{
46
+ type: ViewChild,
47
+ args: ['mdContent']
48
+ }], render: [{
49
+ type: Input
50
+ }] } });
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2Rvd24tcHJldmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mbW9kZS1uZy9zcmMvbGliL2FpZ2MvY29tcC1tYXJrZG93bi1wcmV2aWV3L21hcmtkb3duLXByZXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZm1vZGUtbmcvc3JjL2xpYi9haWdjL2NvbXAtbWFya2Rvd24tcHJldmlldy9tYXJrZG93bi1wcmV2aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRyxPQUFPLEVBQUUsWUFBWSxFQUFZLE1BQU0sMkJBQTJCLENBQUM7QUFFbkUsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGtCQUFrQixDQUFDOzs7O0FBRS9DOzs7O0dBSUc7QUFNSCxNQUFNLE9BQU8sd0JBQXdCO0lBV25DLFlBQ1UsTUFBbUIsRUFDbkIsUUFBa0I7UUFEbEIsV0FBTSxHQUFOLE1BQU0sQ0FBYTtRQUNuQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBWm5CLFlBQU8sR0FBVSxFQUFFLENBQUE7UUFLNUI7OztXQUdHO1FBQ00sV0FBTSxHQUFXLElBQUksQ0FBQTtJQUs5QixDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQTtJQUN2QixDQUFDO0lBRUQsY0FBYztRQUNaLElBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTTtZQUFFLE9BQU07UUFDdkIsSUFBSSxRQUFRLEdBQUcsSUFBSSxhQUFhLEVBQUUsQ0FBQTtRQUNsQyxJQUFJLFVBQVUsR0FBRyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUNuRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsdUJBQXVCLENBQUMsVUFBVSxDQUFDLENBQUE7UUFFL0QsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0MsS0FBSyxDQUFDLFNBQVMsR0FBRyxVQUFVLENBQUM7UUFDN0IsK0JBQStCO1FBRS9CLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUFDLEtBQUssQ0FBQyxDQUFBO0lBRS9ELENBQUM7K0dBakNVLHdCQUF3QjttR0FBeEIsd0JBQXdCLHFOQ2ZyQyx3TUFNTTs7NEZEU08sd0JBQXdCO2tCQUxwQyxTQUFTOytCQUNFLHFCQUFxQjt5R0FLdEIsT0FBTztzQkFBZixLQUFLO2dCQUdrQixTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVc7Z0JBTWIsTUFBTTtzQkFBZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgUmVuZGVyZXIyLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERvbVNhbml0aXplciwgU2FmZUh0bWwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcblxuaW1wb3J0IHtNYXJrZG93blBhcnNlfSBmcm9tIFwiLi9tYXJrZG93bi1wYXJzZVwiO1xuXG4vKipcbiAqIE1hcmtkb3duIOaWh+aho+mrmOe6p+a4suafk+e7hOS7tlxuICogQG5hbWUgZm0tbWFya2Rvd24tcHJldmlld1xuICogQHB1YmxpY1xuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmbS1tYXJrZG93bi1wcmV2aWV3JyxcbiAgdGVtcGxhdGVVcmw6ICcuL21hcmtkb3duLXByZXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tYXJrZG93bi1wcmV2aWV3LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgTWFya2Rvd25QcmV2aWV3Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCAge1xuICBASW5wdXQoKSBjb250ZW50OnN0cmluZyA9IGBgXG4gIHNhZmVIVE1MOlNhZmVIdG1sXG5cbiAgQFZpZXdDaGlsZCgnbWRDb250ZW50JykgbWRDb250ZW50OiBFbGVtZW50UmVmO1xuICBcbiAgLyoqXG4gICAqIOaYr+WQpuW8gOWQr01E5riy5p+T77yM6buY6K6k5byA5ZCvXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIEBJbnB1dCgpIHJlbmRlcjpib29sZWFuID0gdHJ1ZVxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGRvbVNhbjpEb21TYW5pdGl6ZXIsXG4gICAgcHJpdmF0ZSByZW5kZXJlcjpSZW5kZXJlcjJcbiAgICApe1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCl7XG4gICAgdGhpcy5yZW5kZXJNZFRvSFRNTCgpXG4gIH1cblxuICByZW5kZXJNZFRvSFRNTCgpe1xuICAgIGlmKCF0aGlzLnJlbmRlcikgcmV0dXJuXG4gICAgbGV0IG1kcGFyc2VyID0gbmV3IE1hcmtkb3duUGFyc2UoKVxuICAgIGxldCBodG1sUmVzdWx0ID0gbWRwYXJzZXIucGFyc2VUb0hUTUwodGhpcy5jb250ZW50KVxuICAgIHRoaXMuc2FmZUhUTUwgPSB0aGlzLmRvbVNhbi5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChodG1sUmVzdWx0KVxuXG4gICAgbGV0IG1kRGl2ID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xuICAgIG1kRGl2LmlubmVySFRNTCA9IGh0bWxSZXN1bHQ7XG4gICAgLy8gY29uc29sZS5sb2cobWREaXYuaW5uZXJIVE1MKVxuXG4gICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLm1kQ29udGVudC5uYXRpdmVFbGVtZW50LG1kRGl2KVxuICAgIFxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibWVzc2FnZS1ib2R5XCI+XG4gICAgPGRpdiAqbmdJZj1cInJlbmRlclwiICNtZENvbnRlbnQgY2xhc3M9XCJtYXJrZG93bi1zZWN0aW9uXCI+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cIiFyZW5kZXJcIiBjbGFzcz1cInByZS1zZWN0aW9uXCI+XG4gICAgICAgIHt7Y29udGVudH19XG4gICAgPC9kaXY+XG48L2Rpdj4iXX0=
@@ -1,10 +1,24 @@
1
-
2
- /**
3
- * @copyright © 未来飞马 © 未来全栈 www.fmode.cn
4
- * 版权所有 © 未来飞马 © 江西脑控科技有限公司 Copyright © Fmode Technology Co., Ltd.
5
- * 保留所有权利 All Rights Reserved.
6
- * /home/ryan/workspace/nova/nova-admin/dist/fmode-ng/esm2022/lib/aigc/comp-markdown-preview/markdown-preview.module.mjs
7
- */
8
- import{NgModule}from"@angular/core";import{CommonModule}from"@angular/common";import{MarkdownPreviewComponent}from"./markdown-preview.component";import*as i0 from"@angular/core";export class MarkdownPreviewModule{static{this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"17.3.12",ngImport:i0,type:MarkdownPreviewModule,deps:[],target:i0.ɵɵFactoryTarget.NgModule})}static{this.ɵmod=i0.ɵɵngDeclareNgModule({minVersion:"14.0.0",version:"17.3.12",ngImport:i0,type:MarkdownPreviewModule,declarations:[MarkdownPreviewComponent],imports:[CommonModule],exports:[MarkdownPreviewComponent]})}static{this.ɵinj=i0.ɵɵngDeclareInjector({minVersion:"12.0.0",version:"17.3.12",ngImport:i0,type:MarkdownPreviewModule,imports:[CommonModule]})}}i0.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"17.3.12",ngImport:i0,type:MarkdownPreviewModule,decorators:[{type:NgModule,args:[{declarations:[MarkdownPreviewComponent],imports:[CommonModule],exports:[MarkdownPreviewComponent]}]}]});
9
- var MODULE_PATH_NEED = `6K+l5paH5Lu25piv5pys6aG555uu55qE5LiA6YOo5YiGIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBDb21wb25lbnRzIGluIEZtb2RlIEluYy4KICAgIOeJiOadg+aJgOaciSDCqSDmnKrmnaXpo57pqawgwqkg5rGf6KW/6ISR5o6n56eR5oqA5pyJ6ZmQ5YWs5Y+4IENvcHlyaWdodCDCqSBGbW9kZSBUZWNobm9sb2d5IENvLiwgTHRkLgogICAg5L+d55WZ5omA5pyJ5p2D5YipIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICDkuKXnpoHlnKjmnKrnu4/mjojmnYPnmoTmg4XlhrXkuIvvvIzpgJrov4fku7vkvZXlqpLku4vlpI3liLbmraTmlofku7YgVW5hdXRob3JpemVkIGNvcHlpbmcgb2YgdGhpcyBmaWxlLCB2aWEgYW55IG1lZGl1bSBpcyBzdHJpY3RseSBwcm9oaWJpdGVkCiAgICDor6Xmlofku7bmmK/kuJPmnInnmoTmnLrlr4bmlofku7YgUHJvcHJpZXRhcnkgYW5kIGNvbmZpZGVudGlhbAogICAKICAgIENvcHlyaWdodCAyMDIxLW5vdyBGbW9kZSBJbmMuIHN1cHBvcnRAZm1vZGUuY24uIDE4NjA3MDA3MDczLgogICAg5L+d55WZ5omA5pyJ5p2D5YipIEFsbCByaWdodHMgcmVzZXJ2ZWQuCgogICAgUEFUSDovaG9tZS9yeWFuL3dvcmtzcGFjZS9ub3ZhL25vdmEtYWRtaW4vZGlzdC9mbW9kZS1uZy9lc20yMDIyL2xpYi9haWdjL2NvbXAtbWFya2Rvd24tcHJldmlldy9tYXJrZG93bi1wcmV2aWV3Lm1vZHVsZS5tanM=`
10
-
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { MarkdownPreviewComponent } from './markdown-preview.component';
4
+ import * as i0 from "@angular/core";
5
+ export class MarkdownPreviewModule {
6
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MarkdownPreviewModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
7
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: MarkdownPreviewModule, declarations: [MarkdownPreviewComponent], imports: [CommonModule], exports: [MarkdownPreviewComponent] }); }
8
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MarkdownPreviewModule, imports: [CommonModule] }); }
9
+ }
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MarkdownPreviewModule, decorators: [{
11
+ type: NgModule,
12
+ args: [{
13
+ declarations: [
14
+ MarkdownPreviewComponent
15
+ ],
16
+ imports: [
17
+ CommonModule,
18
+ ],
19
+ exports: [
20
+ MarkdownPreviewComponent
21
+ ]
22
+ }]
23
+ }] });
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2Rvd24tcHJldmlldy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mbW9kZS1uZy9zcmMvbGliL2FpZ2MvY29tcC1tYXJrZG93bi1wcmV2aWV3L21hcmtkb3duLXByZXZpZXcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDOztBQWN4RSxNQUFNLE9BQU8scUJBQXFCOytHQUFyQixxQkFBcUI7Z0hBQXJCLHFCQUFxQixpQkFUOUIsd0JBQXdCLGFBR3hCLFlBQVksYUFHWix3QkFBd0I7Z0hBR2YscUJBQXFCLFlBTjlCLFlBQVk7OzRGQU1ILHFCQUFxQjtrQkFYakMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osd0JBQXdCO3FCQUN6QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTtxQkFDYjtvQkFDRCxPQUFPLEVBQUM7d0JBQ04sd0JBQXdCO3FCQUN6QjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWFya2Rvd25QcmV2aWV3Q29tcG9uZW50IH0gZnJvbSAnLi9tYXJrZG93bi1wcmV2aWV3LmNvbXBvbmVudCc7XG5cblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgTWFya2Rvd25QcmV2aWV3Q29tcG9uZW50XG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gIF0sXG4gIGV4cG9ydHM6W1xuICAgIE1hcmtkb3duUHJldmlld0NvbXBvbmVudFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIE1hcmtkb3duUHJldmlld01vZHVsZSB7IH1cbiJdfQ==
@@ -1,10 +1,94 @@
1
-
2
- /**
3
- * @copyright © 未来飞马 © 未来全栈 www.fmode.cn
4
- * 版权所有 © 未来飞马 © 江西脑控科技有限公司 Copyright © Fmode Technology Co., Ltd.
5
- * 保留所有权利 All Rights Reserved.
6
- * /home/ryan/workspace/nova/nova-admin/dist/fmode-ng/esm2022/lib/aigc/comp-markdown-preview/plugins/md-mathjax/index.mjs
7
- */
8
- import{mathjax}from"mathjax-full/js/mathjax";import{TeX}from"mathjax-full/js/input/tex";import{SVG}from"mathjax-full/js/output/svg";import{CHTML}from"mathjax-full/js/output/chtml";import{AllPackages}from"mathjax-full/js/input/tex/AllPackages";import{liteAdaptor}from"mathjax-full/js/adaptors/liteAdaptor";import{RegisterHTMLHandler}from"mathjax-full/js/handlers/html";export class MarkdownMathJax{constructor(t){this.options=t,this.adaptor=liteAdaptor(),RegisterHTMLHandler(this.adaptor)}text_to_mathjax(t,a){if(!t?.length)return"";if(!t?.replace)return"";a=a||this.options;let r=new SVG({fontCache:"local"});"chtml"==a?.output&&(r=new CHTML);const e=mathjax.document("",{skipHtmlTags:["script","noscript","style","textarea","pre","code","annotation","annotation-xml"],InputJax:new TeX({processEscapes:!0,packages:AllPackages}),OutputJax:r}),o={em:16,ex:8,containerWidth:1280};return[/\$\$\ (.+?)\ \$\$/g,/\$\$(.+?)\$\$/g,/\$\$\n(.+?)\n\$\$/g,/\$(.+?)\$/g,/\\\((.+?)\\\)/g,/\\\[(.+?)\\\]/g].forEach((a=>{t=t.replace(a,((t,a)=>{let r=e.convert(`${a}`,o);return`<span class="mathjax raw" style="margin-left:10px;margin-right:10px;">${this.adaptor.innerHTML(r)}</span>`}))})),t}}
9
- var MODULE_PATH_NEED = `6K+l5paH5Lu25piv5pys6aG555uu55qE5LiA6YOo5YiGIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBDb21wb25lbnRzIGluIEZtb2RlIEluYy4KICAgIOeJiOadg+aJgOaciSDCqSDmnKrmnaXpo57pqawgwqkg5rGf6KW/6ISR5o6n56eR5oqA5pyJ6ZmQ5YWs5Y+4IENvcHlyaWdodCDCqSBGbW9kZSBUZWNobm9sb2d5IENvLiwgTHRkLgogICAg5L+d55WZ5omA5pyJ5p2D5YipIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICDkuKXnpoHlnKjmnKrnu4/mjojmnYPnmoTmg4XlhrXkuIvvvIzpgJrov4fku7vkvZXlqpLku4vlpI3liLbmraTmlofku7YgVW5hdXRob3JpemVkIGNvcHlpbmcgb2YgdGhpcyBmaWxlLCB2aWEgYW55IG1lZGl1bSBpcyBzdHJpY3RseSBwcm9oaWJpdGVkCiAgICDor6Xmlofku7bmmK/kuJPmnInnmoTmnLrlr4bmlofku7YgUHJvcHJpZXRhcnkgYW5kIGNvbmZpZGVudGlhbAogICAKICAgIENvcHlyaWdodCAyMDIxLW5vdyBGbW9kZSBJbmMuIHN1cHBvcnRAZm1vZGUuY24uIDE4NjA3MDA3MDczLgogICAg5L+d55WZ5omA5pyJ5p2D5YipIEFsbCByaWdodHMgcmVzZXJ2ZWQuCgogICAgUEFUSDovaG9tZS9yeWFuL3dvcmtzcGFjZS9ub3ZhL25vdmEtYWRtaW4vZGlzdC9mbW9kZS1uZy9lc20yMDIyL2xpYi9haWdjL2NvbXAtbWFya2Rvd24tcHJldmlldy9wbHVnaW5zL21kLW1hdGhqYXgvaW5kZXgubWpz`
10
-
1
+ import { mathjax } from "mathjax-full/js/mathjax";
2
+ import { TeX } from "mathjax-full/js/input/tex";
3
+ import { SVG } from "mathjax-full/js/output/svg";
4
+ import { CHTML } from "mathjax-full/js/output/chtml";
5
+ import { AllPackages } from "mathjax-full/js/input/tex/AllPackages";
6
+ import { liteAdaptor } from "mathjax-full/js/adaptors/liteAdaptor";
7
+ import { RegisterHTMLHandler } from "mathjax-full/js/handlers/html";
8
+ export class MarkdownMathJax {
9
+ constructor(options) {
10
+ this.options = options;
11
+ this.adaptor = liteAdaptor();
12
+ RegisterHTMLHandler(this.adaptor);
13
+ }
14
+ text_to_mathjax(math, options) {
15
+ if (!math?.length)
16
+ return "";
17
+ if (!math?.replace)
18
+ return "";
19
+ options = options || this.options;
20
+ let output = new SVG({ fontCache: 'local' });
21
+ if (options?.output == "chtml") {
22
+ output = new CHTML();
23
+ }
24
+ // 设置输入输出参数
25
+ const mathjax_document = mathjax.document('', {
26
+ skipHtmlTags: [
27
+ 'script', "noscript", 'style', "textarea", "pre", "code", "annotation", "annotation-xml"
28
+ ],
29
+ InputJax: new TeX({
30
+ // displayMath: [['\$\$', '\$\$'], ['\\\[', '\\\]']],
31
+ // inlineMath: [['\$', '\$'],['\\\(', '\\\)']],
32
+ processEscapes: true,
33
+ packages: AllPackages,
34
+ }),
35
+ OutputJax: output
36
+ });
37
+ const mathjax_options = {
38
+ em: 16,
39
+ ex: 8,
40
+ containerWidth: 1280
41
+ };
42
+ // Preprocess the input to handle inline and block math separately
43
+ let regxList = [
44
+ /\$\$\ (.+?)\ \$\$/g, /\$\$(.+?)\$\$/g, /\$\$\n(.+?)\n\$\$/g,
45
+ /\$(.+?)\$/g, /\\\((.+?)\\\)/g, /\\\[(.+?)\\\]/g
46
+ ];
47
+ regxList.forEach(regx => {
48
+ math = math
49
+ .replace(regx, (match, p1) => {
50
+ // Inline math
51
+ let node = mathjax_document.convert(`${p1}`, mathjax_options);
52
+ let nodeHtml = `<span class="mathjax raw" style="margin-left:10px;margin-right:10px;">${this.adaptor.innerHTML(node)}</span>`;
53
+ return nodeHtml;
54
+ });
55
+ });
56
+ return math;
57
+ // math
58
+ // .replace(/\$\$\ (.+?)\ \$\$/g, (match, p1) => {
59
+ // // Inline math
60
+ // let node = mathjax_document.convert(`${p1}`, mathjax_options) as any;
61
+ // return this.adaptor.innerHTML(node);
62
+ // })
63
+ // .replace(/\$\$(.+?)\$\$/g, (match, p1) => {
64
+ // // Inline math
65
+ // let node = mathjax_document.convert(`${p1}`, mathjax_options) as any;
66
+ // return this.adaptor.innerHTML(node);
67
+ // })
68
+ // .replace(/\$\$\n(.+?)\n\$\$/g, (match, p1) => {
69
+ // // Inline math
70
+ // let node = mathjax_document.convert(`${p1}`, mathjax_options) as any;
71
+ // return this.adaptor.innerHTML(node);
72
+ // })
73
+ // .replace(/\$(.+?)\$/g, (match, p1) => {
74
+ // // Inline math
75
+ // let node = mathjax_document.convert(`${p1}`, mathjax_options) as any;
76
+ // return this.adaptor.innerHTML(node);
77
+ // })
78
+ // .replace(/\\\((.+?)\\\)/g, (match, p1) => {
79
+ // // Inline math
80
+ // let node = mathjax_document.convert(`${p1}`, mathjax_options) as any;
81
+ // return this.adaptor.innerHTML(node);
82
+ // })
83
+ // .replace(/\\\[(.+?)\\\]/g, (match, p1) => {
84
+ // // Inline math
85
+ // let node = mathjax_document.convert(`${p1}`, mathjax_options) as any;
86
+ // return this.adaptor.innerHTML(node);
87
+ // })
88
+ // return processedMath;
89
+ // 内置Tex内容筛选(不如正则准确)
90
+ // let node:any = mathjax_document.convert(math,mathjax_options) as any;
91
+ // return adaptor.innerHTML(node);
92
+ }
93
+ }
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mbW9kZS1uZy9zcmMvbGliL2FpZ2MvY29tcC1tYXJrZG93bi1wcmV2aWV3L3BsdWdpbnMvbWQtbWF0aGpheC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbEQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDckQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUVwRSxNQUFNLE9BQU8sZUFBZTtJQUl4QixZQUFZLE9BQVk7UUFDcEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxXQUFXLEVBQUUsQ0FBQztRQUM3QixtQkFBbUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUNELGVBQWUsQ0FBQyxJQUFRLEVBQUMsT0FBWTtRQUNqQyxJQUFHLENBQUMsSUFBSSxFQUFFLE1BQU07WUFBRSxPQUFPLEVBQUUsQ0FBQTtRQUMzQixJQUFHLENBQUMsSUFBSSxFQUFFLE9BQU87WUFBRSxPQUFPLEVBQUUsQ0FBQTtRQUM1QixPQUFPLEdBQUcsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUE7UUFDakMsSUFBSSxNQUFNLEdBQU8sSUFBSSxHQUFHLENBQUMsRUFBQyxTQUFTLEVBQUMsT0FBTyxFQUFDLENBQUMsQ0FBQztRQUM5QyxJQUFHLE9BQU8sRUFBRSxNQUFNLElBQUUsT0FBTyxFQUFDLENBQUM7WUFDN0IsTUFBTSxHQUFHLElBQUksS0FBSyxFQUFFLENBQUE7UUFDcEIsQ0FBQztRQUNELFdBQVc7UUFDWCxNQUFNLGdCQUFnQixHQUFPLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFDO1lBQ2pELFlBQVksRUFBQztnQkFDVCxRQUFRLEVBQUMsVUFBVSxFQUFDLE9BQU8sRUFBQyxVQUFVLEVBQUMsS0FBSyxFQUFDLE1BQU0sRUFBQyxZQUFZLEVBQUMsZ0JBQWdCO2FBQ3BGO1lBQ0QsUUFBUSxFQUFDLElBQUksR0FBRyxDQUFDO2dCQUNiLHFEQUFxRDtnQkFDckQsK0NBQStDO2dCQUMvQyxjQUFjLEVBQUUsSUFBSTtnQkFDcEIsUUFBUSxFQUFDLFdBQVc7YUFDdkIsQ0FBQztZQUNGLFNBQVMsRUFBQyxNQUFNO1NBQ2YsQ0FBQyxDQUFBO1FBQ0YsTUFBTSxlQUFlLEdBQUc7WUFDeEIsRUFBRSxFQUFDLEVBQUU7WUFDTCxFQUFFLEVBQUMsQ0FBQztZQUNKLGNBQWMsRUFBQyxJQUFJO1NBQ2xCLENBQUE7UUFFRCxrRUFBa0U7UUFDbEUsSUFBSSxRQUFRLEdBQUc7WUFDWCxvQkFBb0IsRUFBQyxnQkFBZ0IsRUFBQyxvQkFBb0I7WUFDMUQsWUFBWSxFQUFDLGdCQUFnQixFQUFDLGdCQUFnQjtTQUNqRCxDQUFBO1FBQ0QsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUEsRUFBRTtZQUNuQixJQUFJLEdBQUcsSUFBSTtpQkFDVixPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFO2dCQUM3QixjQUFjO2dCQUNkLElBQUksSUFBSSxHQUFHLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLGVBQWUsQ0FBUSxDQUFDO2dCQUNyRSxJQUFJLFFBQVEsR0FBRyx5RUFBeUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQTtnQkFDN0gsT0FBTyxRQUFRLENBQUM7WUFDaEIsQ0FBQyxDQUFDLENBQUE7UUFDTixDQUFDLENBQUMsQ0FBQTtRQUNGLE9BQVEsSUFBSSxDQUFBO1FBQ1osT0FBTztRQUNQLGtEQUFrRDtRQUNsRCxpQkFBaUI7UUFDakIsd0VBQXdFO1FBQ3hFLHVDQUF1QztRQUN2QyxLQUFLO1FBQ0wsOENBQThDO1FBQzlDLHFCQUFxQjtRQUNyQiw0RUFBNEU7UUFDNUUsMkNBQTJDO1FBQzNDLEtBQUs7UUFDTCxrREFBa0Q7UUFDbEQscUJBQXFCO1FBQ3JCLDRFQUE0RTtRQUM1RSwyQ0FBMkM7UUFDM0MsS0FBSztRQUNMLDBDQUEwQztRQUMxQyxxQkFBcUI7UUFDckIsNEVBQTRFO1FBQzVFLDJDQUEyQztRQUMzQyxLQUFLO1FBQ0wsOENBQThDO1FBQzlDLHFCQUFxQjtRQUNyQiw0RUFBNEU7UUFDNUUsMkNBQTJDO1FBQzNDLEtBQUs7UUFDTCw4Q0FBOEM7UUFDOUMscUJBQXFCO1FBQ3JCLDRFQUE0RTtRQUM1RSwyQ0FBMkM7UUFDM0MsS0FBSztRQUNMLHdCQUF3QjtRQUV4QixvQkFBb0I7UUFDcEIsd0VBQXdFO1FBQ3hFLGtDQUFrQztJQUN0QyxDQUFDO0NBRUoiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuaW1wb3J0IHsgbWF0aGpheCB9IGZyb20gXCJtYXRoamF4LWZ1bGwvanMvbWF0aGpheFwiO1xuaW1wb3J0IHsgVGVYIH0gZnJvbSBcIm1hdGhqYXgtZnVsbC9qcy9pbnB1dC90ZXhcIjtcbmltcG9ydCB7IFNWRyB9IGZyb20gXCJtYXRoamF4LWZ1bGwvanMvb3V0cHV0L3N2Z1wiO1xuaW1wb3J0IHsgQ0hUTUwgfSBmcm9tIFwibWF0aGpheC1mdWxsL2pzL291dHB1dC9jaHRtbFwiO1xuaW1wb3J0IHsgQWxsUGFja2FnZXMgfSBmcm9tIFwibWF0aGpheC1mdWxsL2pzL2lucHV0L3RleC9BbGxQYWNrYWdlc1wiO1xuaW1wb3J0IHsgbGl0ZUFkYXB0b3IgfSBmcm9tIFwibWF0aGpheC1mdWxsL2pzL2FkYXB0b3JzL2xpdGVBZGFwdG9yXCI7XG5pbXBvcnQgeyBSZWdpc3RlckhUTUxIYW5kbGVyIH0gZnJvbSBcIm1hdGhqYXgtZnVsbC9qcy9oYW5kbGVycy9odG1sXCI7XG5cbmV4cG9ydCBjbGFzcyBNYXJrZG93bk1hdGhKYXh7XG5cbiAgICBvcHRpb25zOmFueVxuICAgIGFkYXB0b3I6YW55XG4gICAgY29uc3RydWN0b3Iob3B0aW9ucz86YW55KXtcbiAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgICAgICAgdGhpcy5hZGFwdG9yID0gbGl0ZUFkYXB0b3IoKTtcbiAgICAgICAgUmVnaXN0ZXJIVE1MSGFuZGxlcih0aGlzLmFkYXB0b3IpO1xuICAgIH1cbiAgICB0ZXh0X3RvX21hdGhqYXgobWF0aDphbnksb3B0aW9ucz86YW55KTphbnl7XG4gICAgICAgIGlmKCFtYXRoPy5sZW5ndGgpIHJldHVybiBcIlwiXG4gICAgICAgIGlmKCFtYXRoPy5yZXBsYWNlKSByZXR1cm4gXCJcIlxuICAgICAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB0aGlzLm9wdGlvbnNcbiAgICAgICAgbGV0IG91dHB1dDphbnkgPSBuZXcgU1ZHKHtmb250Q2FjaGU6J2xvY2FsJ30pO1xuICAgICAgICBpZihvcHRpb25zPy5vdXRwdXQ9PVwiY2h0bWxcIil7XG4gICAgICAgIG91dHB1dCA9IG5ldyBDSFRNTCgpXG4gICAgICAgIH1cbiAgICAgICAgLy8g6K6+572u6L6T5YWl6L6T5Ye65Y+C5pWwXG4gICAgICAgIGNvbnN0IG1hdGhqYXhfZG9jdW1lbnQ6YW55ID0gbWF0aGpheC5kb2N1bWVudCgnJyx7XG4gICAgICAgIHNraXBIdG1sVGFnczpbXG4gICAgICAgICAgICAnc2NyaXB0JyxcIm5vc2NyaXB0XCIsJ3N0eWxlJyxcInRleHRhcmVhXCIsXCJwcmVcIixcImNvZGVcIixcImFubm90YXRpb25cIixcImFubm90YXRpb24teG1sXCJcbiAgICAgICAgXSxcbiAgICAgICAgSW5wdXRKYXg6bmV3IFRlWCh7XG4gICAgICAgICAgICAvLyBkaXNwbGF5TWF0aDogW1snXFwkXFwkJywgJ1xcJFxcJCddLCBbJ1xcXFxcXFsnLCAnXFxcXFxcXSddXSxcbiAgICAgICAgICAgIC8vIGlubGluZU1hdGg6IFtbJ1xcJCcsICdcXCQnXSxbJ1xcXFxcXCgnLCAnXFxcXFxcKSddXSxcbiAgICAgICAgICAgIHByb2Nlc3NFc2NhcGVzOiB0cnVlLFxuICAgICAgICAgICAgcGFja2FnZXM6QWxsUGFja2FnZXMsXG4gICAgICAgIH0pLFxuICAgICAgICBPdXRwdXRKYXg6b3V0cHV0XG4gICAgICAgIH0pXG4gICAgICAgIGNvbnN0IG1hdGhqYXhfb3B0aW9ucyA9IHtcbiAgICAgICAgZW06MTYsXG4gICAgICAgIGV4OjgsXG4gICAgICAgIGNvbnRhaW5lcldpZHRoOjEyODBcbiAgICAgICAgfVxuICAgIFxuICAgICAgICAvLyBQcmVwcm9jZXNzIHRoZSBpbnB1dCB0byBoYW5kbGUgaW5saW5lIGFuZCBibG9jayBtYXRoIHNlcGFyYXRlbHlcbiAgICAgICAgbGV0IHJlZ3hMaXN0ID0gW1xuICAgICAgICAgICAgL1xcJFxcJFxcICguKz8pXFwgXFwkXFwkL2csL1xcJFxcJCguKz8pXFwkXFwkL2csL1xcJFxcJFxcbiguKz8pXFxuXFwkXFwkL2csXG4gICAgICAgICAgICAvXFwkKC4rPylcXCQvZywvXFxcXFxcKCguKz8pXFxcXFxcKS9nLC9cXFxcXFxbKC4rPylcXFxcXFxdL2dcbiAgICAgICAgXVxuICAgICAgICByZWd4TGlzdC5mb3JFYWNoKHJlZ3g9PntcbiAgICAgICAgICAgIG1hdGggPSBtYXRoXG4gICAgICAgICAgICAucmVwbGFjZShyZWd4LCAobWF0Y2gsIHAxKSA9PiB7XG4gICAgICAgICAgICAvLyBJbmxpbmUgbWF0aFxuICAgICAgICAgICAgbGV0IG5vZGUgPSBtYXRoamF4X2RvY3VtZW50LmNvbnZlcnQoYCR7cDF9YCwgbWF0aGpheF9vcHRpb25zKSBhcyBhbnk7XG4gICAgICAgICAgICBsZXQgbm9kZUh0bWwgPSBgPHNwYW4gY2xhc3M9XCJtYXRoamF4IHJhd1wiIHN0eWxlPVwibWFyZ2luLWxlZnQ6MTBweDttYXJnaW4tcmlnaHQ6MTBweDtcIj4ke3RoaXMuYWRhcHRvci5pbm5lckhUTUwobm9kZSl9PC9zcGFuPmBcbiAgICAgICAgICAgIHJldHVybiBub2RlSHRtbDtcbiAgICAgICAgICAgIH0pXG4gICAgICAgIH0pXG4gICAgICAgIHJldHVybiAgbWF0aFxuICAgICAgICAvLyBtYXRoXG4gICAgICAgIC8vIC5yZXBsYWNlKC9cXCRcXCRcXCAoLis/KVxcIFxcJFxcJC9nLCAobWF0Y2gsIHAxKSA9PiB7XG4gICAgICAgIC8vIC8vIElubGluZSBtYXRoXG4gICAgICAgIC8vIGxldCBub2RlID0gbWF0aGpheF9kb2N1bWVudC5jb252ZXJ0KGAke3AxfWAsIG1hdGhqYXhfb3B0aW9ucykgYXMgYW55O1xuICAgICAgICAvLyByZXR1cm4gdGhpcy5hZGFwdG9yLmlubmVySFRNTChub2RlKTtcbiAgICAgICAgLy8gfSlcbiAgICAgICAgLy8gLnJlcGxhY2UoL1xcJFxcJCguKz8pXFwkXFwkL2csIChtYXRjaCwgcDEpID0+IHtcbiAgICAgICAgLy8gICAgIC8vIElubGluZSBtYXRoXG4gICAgICAgIC8vICAgICBsZXQgbm9kZSA9IG1hdGhqYXhfZG9jdW1lbnQuY29udmVydChgJHtwMX1gLCBtYXRoamF4X29wdGlvbnMpIGFzIGFueTtcbiAgICAgICAgLy8gICAgIHJldHVybiB0aGlzLmFkYXB0b3IuaW5uZXJIVE1MKG5vZGUpO1xuICAgICAgICAvLyB9KVxuICAgICAgICAvLyAucmVwbGFjZSgvXFwkXFwkXFxuKC4rPylcXG5cXCRcXCQvZywgKG1hdGNoLCBwMSkgPT4ge1xuICAgICAgICAvLyAgICAgLy8gSW5saW5lIG1hdGhcbiAgICAgICAgLy8gICAgIGxldCBub2RlID0gbWF0aGpheF9kb2N1bWVudC5jb252ZXJ0KGAke3AxfWAsIG1hdGhqYXhfb3B0aW9ucykgYXMgYW55O1xuICAgICAgICAvLyAgICAgcmV0dXJuIHRoaXMuYWRhcHRvci5pbm5lckhUTUwobm9kZSk7XG4gICAgICAgIC8vIH0pXG4gICAgICAgIC8vIC5yZXBsYWNlKC9cXCQoLis/KVxcJC9nLCAobWF0Y2gsIHAxKSA9PiB7XG4gICAgICAgIC8vICAgICAvLyBJbmxpbmUgbWF0aFxuICAgICAgICAvLyAgICAgbGV0IG5vZGUgPSBtYXRoamF4X2RvY3VtZW50LmNvbnZlcnQoYCR7cDF9YCwgbWF0aGpheF9vcHRpb25zKSBhcyBhbnk7XG4gICAgICAgIC8vICAgICByZXR1cm4gdGhpcy5hZGFwdG9yLmlubmVySFRNTChub2RlKTtcbiAgICAgICAgLy8gfSlcbiAgICAgICAgLy8gLnJlcGxhY2UoL1xcXFxcXCgoLis/KVxcXFxcXCkvZywgKG1hdGNoLCBwMSkgPT4ge1xuICAgICAgICAvLyAgICAgLy8gSW5saW5lIG1hdGhcbiAgICAgICAgLy8gICAgIGxldCBub2RlID0gbWF0aGpheF9kb2N1bWVudC5jb252ZXJ0KGAke3AxfWAsIG1hdGhqYXhfb3B0aW9ucykgYXMgYW55O1xuICAgICAgICAvLyAgICAgcmV0dXJuIHRoaXMuYWRhcHRvci5pbm5lckhUTUwobm9kZSk7XG4gICAgICAgIC8vIH0pXG4gICAgICAgIC8vIC5yZXBsYWNlKC9cXFxcXFxbKC4rPylcXFxcXFxdL2csIChtYXRjaCwgcDEpID0+IHtcbiAgICAgICAgLy8gICAgIC8vIElubGluZSBtYXRoXG4gICAgICAgIC8vICAgICBsZXQgbm9kZSA9IG1hdGhqYXhfZG9jdW1lbnQuY29udmVydChgJHtwMX1gLCBtYXRoamF4X29wdGlvbnMpIGFzIGFueTtcbiAgICAgICAgLy8gICAgIHJldHVybiB0aGlzLmFkYXB0b3IuaW5uZXJIVE1MKG5vZGUpO1xuICAgICAgICAvLyB9KVxuICAgICAgICAvLyByZXR1cm4gcHJvY2Vzc2VkTWF0aDtcbiAgICAgICAgXG4gICAgICAgIC8vIOWGhee9rlRleOWGheWuueetm+mAiSjkuI3lpoLmraPliJnlh4bnoa4pXG4gICAgICAgIC8vIGxldCBub2RlOmFueSA9IG1hdGhqYXhfZG9jdW1lbnQuY29udmVydChtYXRoLG1hdGhqYXhfb3B0aW9ucykgYXMgYW55O1xuICAgICAgICAvLyByZXR1cm4gYWRhcHRvci5pbm5lckhUTUwobm9kZSk7XG4gICAgfVxuICBcbn0iXX0=
@@ -1,10 +1,13 @@
1
-
2
- /**
3
- * @copyright © 未来飞马 © 未来全栈 www.fmode.cn
4
- * 版权所有 © 未来飞马 © 江西脑控科技有限公司 Copyright © Fmode Technology Co., Ltd.
5
- * 保留所有权利 All Rights Reserved.
6
- * /home/ryan/workspace/nova/nova-admin/dist/fmode-ng/esm2022/lib/aigc/index.mjs
7
- */
8
- export*from"./service-fmai/fmai.service";export*from"./service-fmai/service-imagine";export*from"./service-fmai/service-chat";export*from"./comp-markdown-preview/plugins/md-mathjax/index";export*from"./comp-markdown-preview/markdown-parse";export*from"./comp-markdown-preview/markdown-preview.module";export*from"./comp-markdown-preview/markdown-preview.component";export*from"./comp-markdown-preview/clipboard.service";export*from"./voice";export*from"./avatar";export*from"./agent";export*from"./chat";
9
- var MODULE_PATH_NEED = `6K+l5paH5Lu25piv5pys6aG555uu55qE5LiA6YOo5YiGIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBDb21wb25lbnRzIGluIEZtb2RlIEluYy4KICAgIOeJiOadg+aJgOaciSDCqSDmnKrmnaXpo57pqawgwqkg5rGf6KW/6ISR5o6n56eR5oqA5pyJ6ZmQ5YWs5Y+4IENvcHlyaWdodCDCqSBGbW9kZSBUZWNobm9sb2d5IENvLiwgTHRkLgogICAg5L+d55WZ5omA5pyJ5p2D5YipIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICDkuKXnpoHlnKjmnKrnu4/mjojmnYPnmoTmg4XlhrXkuIvvvIzpgJrov4fku7vkvZXlqpLku4vlpI3liLbmraTmlofku7YgVW5hdXRob3JpemVkIGNvcHlpbmcgb2YgdGhpcyBmaWxlLCB2aWEgYW55IG1lZGl1bSBpcyBzdHJpY3RseSBwcm9oaWJpdGVkCiAgICDor6Xmlofku7bmmK/kuJPmnInnmoTmnLrlr4bmlofku7YgUHJvcHJpZXRhcnkgYW5kIGNvbmZpZGVudGlhbAogICAKICAgIENvcHlyaWdodCAyMDIxLW5vdyBGbW9kZSBJbmMuIHN1cHBvcnRAZm1vZGUuY24uIDE4NjA3MDA3MDczLgogICAg5L+d55WZ5omA5pyJ5p2D5YipIEFsbCByaWdodHMgcmVzZXJ2ZWQuCgogICAgUEFUSDovaG9tZS9yeWFuL3dvcmtzcGFjZS9ub3ZhL25vdmEtYWRtaW4vZGlzdC9mbW9kZS1uZy9lc20yMDIyL2xpYi9haWdjL2luZGV4Lm1qcw==`
10
-
1
+ export * from "./service-fmai/fmai.service";
2
+ export * from "./service-fmai/service-imagine";
3
+ export * from "./service-fmai/service-chat";
4
+ export * from "./comp-markdown-preview/plugins/md-mathjax/index";
5
+ export * from "./comp-markdown-preview/markdown-parse";
6
+ export * from "./comp-markdown-preview/markdown-preview.module";
7
+ export * from "./comp-markdown-preview/markdown-preview.component";
8
+ export * from "./comp-markdown-preview/clipboard.service";
9
+ export * from "./voice";
10
+ export * from "./avatar";
11
+ export * from "./agent";
12
+ export * from "./chat";
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mbW9kZS1uZy9zcmMvbGliL2FpZ2MvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw2QkFBNkIsQ0FBQTtBQUMzQyxjQUFjLGdDQUFnQyxDQUFBO0FBQzlDLGNBQWMsNkJBQTZCLENBQUE7QUFDM0MsY0FBYyxrREFBa0QsQ0FBQTtBQUNoRSxjQUFjLHdDQUF3QyxDQUFBO0FBQ3RELGNBQWMsaURBQWlELENBQUE7QUFDL0QsY0FBYyxvREFBb0QsQ0FBQTtBQUNsRSxjQUFjLDJDQUEyQyxDQUFBO0FBQ3pELGNBQWMsU0FBUyxDQUFBO0FBQ3ZCLGNBQWMsVUFBVSxDQUFBO0FBQ3hCLGNBQWMsU0FBUyxDQUFBO0FBQ3ZCLGNBQWMsUUFBUSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vc2VydmljZS1mbWFpL2ZtYWkuc2VydmljZVwiXG5leHBvcnQgKiBmcm9tIFwiLi9zZXJ2aWNlLWZtYWkvc2VydmljZS1pbWFnaW5lXCJcbmV4cG9ydCAqIGZyb20gXCIuL3NlcnZpY2UtZm1haS9zZXJ2aWNlLWNoYXRcIlxuZXhwb3J0ICogZnJvbSBcIi4vY29tcC1tYXJrZG93bi1wcmV2aWV3L3BsdWdpbnMvbWQtbWF0aGpheC9pbmRleFwiXG5leHBvcnQgKiBmcm9tIFwiLi9jb21wLW1hcmtkb3duLXByZXZpZXcvbWFya2Rvd24tcGFyc2VcIlxuZXhwb3J0ICogZnJvbSBcIi4vY29tcC1tYXJrZG93bi1wcmV2aWV3L21hcmtkb3duLXByZXZpZXcubW9kdWxlXCJcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXAtbWFya2Rvd24tcHJldmlldy9tYXJrZG93bi1wcmV2aWV3LmNvbXBvbmVudFwiIFxuZXhwb3J0ICogZnJvbSBcIi4vY29tcC1tYXJrZG93bi1wcmV2aWV3L2NsaXBib2FyZC5zZXJ2aWNlXCIgXG5leHBvcnQgKiBmcm9tIFwiLi92b2ljZVwiXG5leHBvcnQgKiBmcm9tIFwiLi9hdmF0YXJcIlxuZXhwb3J0ICogZnJvbSBcIi4vYWdlbnRcIlxuZXhwb3J0ICogZnJvbSBcIi4vY2hhdFwiIl19