vue-element-ui-x 0.1.5 → 0.1.7-beta

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 (92) hide show
  1. package/lib/attachments.js +3082 -0
  2. package/lib/bubble-list.js +13840 -0
  3. package/lib/bubble.js +13125 -0
  4. package/lib/components/Attachments/index.js +6 -6
  5. package/lib/components/Bubble/index.js +188 -192
  6. package/lib/components/BubbleList/index.js +189 -194
  7. package/lib/components/Conversations/index.js +6 -6
  8. package/lib/components/FilesCard/index.js +5 -5
  9. package/lib/components/Prompts/index.js +21 -21
  10. package/lib/components/Sender/index.js +4 -4
  11. package/lib/components/Think/index.js +1 -1
  12. package/lib/components/Thinking/index.js +1 -1
  13. package/lib/components/ThoughtChain/index.js +186 -191
  14. package/lib/components/Typewriter/index.js +182 -186
  15. package/lib/components/Welcome/index.js +1 -1
  16. package/lib/conversations.js +18825 -0
  17. package/lib/files-card.js +2471 -0
  18. package/lib/index.common.js +1 -1
  19. package/lib/index.esm.js +1 -1
  20. package/lib/index.js +1707 -1691
  21. package/lib/index.umd.js +1 -1
  22. package/lib/mixins/index.js +2 -2
  23. package/lib/mixins.js +1016 -0
  24. package/lib/prompts.js +832 -0
  25. package/lib/sender.js +1911 -0
  26. package/lib/think.js +799 -0
  27. package/lib/thinking.js +809 -0
  28. package/lib/thought-chain.js +30391 -0
  29. package/lib/typewriter.js +12788 -0
  30. package/lib/welcome.js +755 -0
  31. package/package.json +3 -4
  32. package/src/components/Attachments/index.js +8 -8
  33. package/src/components/Bubble/index.js +6 -6
  34. package/src/components/Bubble/src/main.vue +299 -299
  35. package/src/components/BubbleList/index.js +8 -8
  36. package/src/components/BubbleList/src/loading.vue +75 -75
  37. package/src/components/BubbleList/src/main.vue +466 -466
  38. package/src/components/Conversations/index.js +8 -8
  39. package/src/components/Conversations/src/main.vue +635 -635
  40. package/src/components/FilesCard/index.js +8 -8
  41. package/src/components/FilesCard/src/fileSvg/audio.vue +38 -38
  42. package/src/components/FilesCard/src/fileSvg/code.vue +35 -35
  43. package/src/components/FilesCard/src/fileSvg/database.vue +94 -94
  44. package/src/components/FilesCard/src/fileSvg/excel.vue +38 -38
  45. package/src/components/FilesCard/src/fileSvg/file.vue +40 -40
  46. package/src/components/FilesCard/src/fileSvg/image.vue +40 -40
  47. package/src/components/FilesCard/src/fileSvg/index.js +46 -46
  48. package/src/components/FilesCard/src/fileSvg/link.vue +54 -54
  49. package/src/components/FilesCard/src/fileSvg/mark.vue +38 -38
  50. package/src/components/FilesCard/src/fileSvg/pdf.vue +38 -38
  51. package/src/components/FilesCard/src/fileSvg/ppt.vue +38 -38
  52. package/src/components/FilesCard/src/fileSvg/three.vue +38 -38
  53. package/src/components/FilesCard/src/fileSvg/txt.vue +38 -38
  54. package/src/components/FilesCard/src/fileSvg/unknown.vue +54 -54
  55. package/src/components/FilesCard/src/fileSvg/video.vue +38 -38
  56. package/src/components/FilesCard/src/fileSvg/word.vue +38 -38
  57. package/src/components/FilesCard/src/fileSvg/zip.vue +38 -38
  58. package/src/components/FilesCard/src/options.js +18 -18
  59. package/src/components/Prompts/index.js +8 -8
  60. package/src/components/Prompts/src/main.vue +248 -248
  61. package/src/components/Sender/index.js +8 -8
  62. package/src/components/Sender/src/components/ClearButton.vue +28 -28
  63. package/src/components/Sender/src/components/Loading.vue +53 -53
  64. package/src/components/Sender/src/components/LoadingButton.vue +39 -39
  65. package/src/components/Sender/src/components/SendButton.vue +26 -26
  66. package/src/components/Sender/src/components/SpeechButton.vue +24 -24
  67. package/src/components/Sender/src/components/SpeechLoading.vue +87 -87
  68. package/src/components/Sender/src/components/SpeechLoadingButton.vue +43 -43
  69. package/src/components/Think/index.js +8 -8
  70. package/src/components/Think/src/main.vue +190 -190
  71. package/src/components/Thinking/index.js +8 -8
  72. package/src/components/Thinking/src/main.vue +195 -195
  73. package/src/components/ThoughtChain/index.js +8 -8
  74. package/src/components/ThoughtChain/src/main.vue +293 -293
  75. package/src/components/Typewriter/index.js +8 -8
  76. package/src/components/Welcome/index.js +8 -8
  77. package/src/components/Welcome/src/main.vue +151 -151
  78. package/src/index.js +23 -3
  79. package/src/styles/Attachments.scss +236 -236
  80. package/src/styles/Bubble.scss +157 -157
  81. package/src/styles/BubbleList.scss +148 -148
  82. package/src/styles/Conversations.scss +260 -260
  83. package/src/styles/FilesCard.scss +221 -221
  84. package/src/styles/Prompts.scss +195 -195
  85. package/src/styles/Sender.scss +199 -199
  86. package/src/styles/Think.scss +134 -134
  87. package/src/styles/Thinking.scss +112 -112
  88. package/src/styles/ThoughtChain.scss +113 -113
  89. package/src/styles/Typewriter.scss +66 -66
  90. package/src/styles/button.scss +302 -0
  91. package/src/styles/var.scss +1052 -0
  92. package/src/theme/var.scss +72 -72
package/lib/index.js CHANGED
@@ -273,7 +273,7 @@ var UNESCAPE_ALL_RE = new RegExp(UNESCAPE_MD_RE.source + '|' + ENTITY_RE.source,
273
273
 
274
274
  var DIGITAL_ENTITY_TEST_RE = /^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))/i;
275
275
 
276
- var entities = __webpack_require__(12);
276
+ var entities = __webpack_require__(13);
277
277
 
278
278
  function replaceEntityPattern(match, name) {
279
279
  var code = 0;
@@ -378,7 +378,7 @@ function isWhiteSpace(code) {
378
378
  ////////////////////////////////////////////////////////////////////////////////
379
379
 
380
380
  /*eslint-disable max-len*/
381
- var UNICODE_PUNCT_RE = __webpack_require__(6);
381
+ var UNICODE_PUNCT_RE = __webpack_require__(7);
382
382
 
383
383
  // Currently without astral characters support.
384
384
  function isPunctChar(ch) {
@@ -492,8 +492,8 @@ function normalizeReference(str) {
492
492
  // bundled size (e.g. a browser build).
493
493
  //
494
494
  exports.lib = {};
495
- exports.lib.mdurl = __webpack_require__(13);
496
- exports.lib.ucmicro = __webpack_require__(34);
495
+ exports.lib.mdurl = __webpack_require__(14);
496
+ exports.lib.ucmicro = __webpack_require__(35);
497
497
 
498
498
  exports.assign = assign;
499
499
  exports.isString = isString;
@@ -2811,10 +2811,935 @@ Prism.languages.js = Prism.languages.javascript;
2811
2811
 
2812
2812
  }());
2813
2813
 
2814
- /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(10)))
2814
+ /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(11)))
2815
2815
 
2816
2816
  /***/ }),
2817
2817
  /* 5 */
2818
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
2819
+
2820
+ "use strict";
2821
+ // ESM COMPAT FLAG
2822
+ __webpack_require__.r(__webpack_exports__);
2823
+
2824
+ // EXPORTS
2825
+ __webpack_require__.d(__webpack_exports__, "createSendUtils", function() { return /* reexport */ createSendUtils; });
2826
+ __webpack_require__.d(__webpack_exports__, "createStreamUtils", function() { return /* reexport */ createStreamUtils; });
2827
+ __webpack_require__.d(__webpack_exports__, "DEFAULT_KV_SEPARATOR", function() { return /* reexport */ DEFAULT_KV_SEPARATOR; });
2828
+ __webpack_require__.d(__webpack_exports__, "DEFAULT_PART_SEPARATOR", function() { return /* reexport */ DEFAULT_PART_SEPARATOR; });
2829
+ __webpack_require__.d(__webpack_exports__, "DEFAULT_STREAM_SEPARATOR", function() { return /* reexport */ DEFAULT_STREAM_SEPARATOR; });
2830
+ __webpack_require__.d(__webpack_exports__, "isValidString", function() { return /* reexport */ isValidString; });
2831
+ __webpack_require__.d(__webpack_exports__, "recordMixin", function() { return /* reexport */ recordMixin; });
2832
+ __webpack_require__.d(__webpack_exports__, "sendMixin", function() { return /* reexport */ sendMixin; });
2833
+ __webpack_require__.d(__webpack_exports__, "splitPart", function() { return /* reexport */ splitPart; });
2834
+ __webpack_require__.d(__webpack_exports__, "splitStream", function() { return /* reexport */ splitStream; });
2835
+ __webpack_require__.d(__webpack_exports__, "streamMixin", function() { return /* reexport */ streamMixin; });
2836
+ __webpack_require__.d(__webpack_exports__, "XRequest", function() { return /* reexport */ XRequest; });
2837
+ __webpack_require__.d(__webpack_exports__, "XStream", function() { return /* reexport */ XStream; });
2838
+
2839
+ // CONCATENATED MODULE: ./src/mixins/recordMixin.js
2840
+ /**
2841
+ * @description 提供语音识别的混入,允许语音输入并处理开始、结束、结果及错误等各种事件。
2842
+ *
2843
+ * @mixin recordMixin
2844
+ */
2845
+
2846
+ /* harmony default export */ var recordMixin = ({
2847
+ data() {
2848
+ return {
2849
+ // 语音识别状态
2850
+ recordLoading: false,
2851
+ // 识别结果
2852
+ recordValue: '',
2853
+ // 识别实例
2854
+ recordRecognition: null,
2855
+ // 配置选项
2856
+ recordOptions: {
2857
+ onError: null,
2858
+ onStart: null,
2859
+ onEnd: null,
2860
+ onResult: null
2861
+ }
2862
+ };
2863
+ },
2864
+ methods: {
2865
+ /**
2866
+ * 初始化语音识别配置
2867
+ * @param {Object} options - 配置选项
2868
+ * @param {Function} [options.onError] - 错误回调
2869
+ * @param {Function} [options.onStart] - 开始回调
2870
+ * @param {Function} [options.onEnd] - 结束回调
2871
+ * @param {Function} [options.onResult] - 结果回调
2872
+ */
2873
+ initRecord(options = {}) {
2874
+ this.recordOptions = {
2875
+ ...this.recordOptions,
2876
+ ...options
2877
+ };
2878
+ },
2879
+ /**
2880
+ * 开始语音识别
2881
+ */
2882
+ startRecord() {
2883
+ if ('webkitSpeechRecognition' in window) {
2884
+ this.recordRecognition = new window.webkitSpeechRecognition();
2885
+ this.recordRecognition.continuous = true;
2886
+ this.recordRecognition.interimResults = true;
2887
+ this.recordRecognition.lang = 'zh-CN';
2888
+ this.recordRecognition.onstart = () => {
2889
+ this.recordLoading = true;
2890
+ this.recordValue = '';
2891
+ if (this.recordOptions.onStart) {
2892
+ this.recordOptions.onStart();
2893
+ }
2894
+ };
2895
+ this.recordRecognition.onend = () => {
2896
+ this.recordLoading = false;
2897
+ if (this.recordOptions.onEnd) {
2898
+ this.recordOptions.onEnd(this.recordValue);
2899
+ }
2900
+ };
2901
+ this.recordRecognition.onerror = e => {
2902
+ this.recordLoading = false;
2903
+ if (this.recordOptions.onError) {
2904
+ this.recordOptions.onError(e);
2905
+ }
2906
+ };
2907
+ this.recordRecognition.onresult = e => {
2908
+ let results = '';
2909
+ for (let i = 0; i <= e.resultIndex; i++) {
2910
+ results += e.results[i][0].transcript;
2911
+ }
2912
+ this.recordValue = results;
2913
+ if (this.recordOptions.onResult) {
2914
+ this.recordOptions.onResult(results);
2915
+ }
2916
+ };
2917
+ this.recordRecognition.start();
2918
+ } else {
2919
+ const error = {
2920
+ code: -1,
2921
+ message: 'The current browser does not support voice recognition'
2922
+ };
2923
+ if (this.recordOptions.onError) {
2924
+ this.recordOptions.onError(error);
2925
+ }
2926
+ }
2927
+ },
2928
+ /**
2929
+ * 停止语音识别
2930
+ */
2931
+ stopRecord() {
2932
+ if (this.recordRecognition) {
2933
+ this.recordRecognition.stop();
2934
+ }
2935
+ },
2936
+ /**
2937
+ * 清理语音识别资源
2938
+ */
2939
+ cleanupRecord() {
2940
+ this.stopRecord();
2941
+ this.recordRecognition = null;
2942
+ }
2943
+ },
2944
+ beforeDestroy() {
2945
+ this.cleanupRecord();
2946
+ }
2947
+ });
2948
+ // CONCATENATED MODULE: ./src/mixins/sendMixin.js
2949
+ /**
2950
+ * XRequest 类 - 用于处理 SSE 和 Fetch 请求
2951
+ */
2952
+ class XRequest {
2953
+ constructor(options = {}) {
2954
+ const {
2955
+ baseURL,
2956
+ onAbort,
2957
+ onMessage,
2958
+ onError,
2959
+ baseOptions,
2960
+ transformer,
2961
+ type,
2962
+ onFinish,
2963
+ onOpen
2964
+ } = options;
2965
+ this._instance = null;
2966
+ this._transformer = transformer;
2967
+ this._baseURL = baseURL || '';
2968
+ this._baseOptions = baseOptions || {};
2969
+ this._onAbort = onAbort;
2970
+ this._onMessage = onMessage;
2971
+ this._onError = onError;
2972
+ this._onOpen = onOpen;
2973
+ this._type = type || 'sse';
2974
+ this._controller = null;
2975
+ this._onFinish = onFinish;
2976
+ this._messages = [];
2977
+ // 添加结束标志和超时控制
2978
+ this._isFinished = false;
2979
+ this._finishTimeout = null;
2980
+
2981
+ // 绑定方法上下文
2982
+ this.abort = this.abort.bind(this);
2983
+ this.send = this.send.bind(this);
2984
+ }
2985
+ _sendWithFetch(url, options = {}) {
2986
+ this._controller = new AbortController();
2987
+ const signal = this._controller.signal;
2988
+ const fetchOptions = {
2989
+ ...options,
2990
+ signal
2991
+ };
2992
+ return fetch(this._baseURL + url, fetchOptions).then(res => res.body).then(async body => {
2993
+ if (!body) {
2994
+ return Promise.reject(new Error('Response body is null in stream mode'));
2995
+ }
2996
+ const reader = body.getReader();
2997
+ const decoder = new TextDecoder('utf-8');
2998
+ let done = false;
2999
+ while (!done) {
3000
+ const {
3001
+ value,
3002
+ done: streamDone
3003
+ } = await reader.read();
3004
+ done = streamDone;
3005
+ if (streamDone) {
3006
+ this._onFinish && this._onFinish(this._messages);
3007
+ return;
3008
+ }
3009
+ if (value) {
3010
+ const chunk = decoder.decode(value, {
3011
+ stream: true
3012
+ });
3013
+ const chunkUse = chunk.startsWith('data: ') ? chunk.slice(6) : chunk;
3014
+ try {
3015
+ const res = this._transformer ? this._transformer(chunkUse) : chunkUse;
3016
+ this._messages.push(res);
3017
+ this._onMessage && this._onMessage(res);
3018
+ } catch (error) {
3019
+ this._onError && this._onError(error);
3020
+ this._controller && this._controller.abort();
3021
+ return Promise.reject(error);
3022
+ }
3023
+ }
3024
+ }
3025
+ }).catch(err => {
3026
+ if (err.name === 'AbortError') {
3027
+ this._onAbort && this._onAbort(this._messages);
3028
+ return;
3029
+ }
3030
+ this._onError && this._onError(err);
3031
+ this._controller && this._controller.abort();
3032
+ });
3033
+ }
3034
+ _sendWithSSE(url, options = {}) {
3035
+ const es = new EventSource(this._baseURL + url, {
3036
+ ...this._baseOptions,
3037
+ ...options
3038
+ });
3039
+ es.onmessage = e => {
3040
+ // 检查是否是结束消息
3041
+ if (e.data === '[DONE]' || e.data === 'data: [DONE]') {
3042
+ this._isFinished = true;
3043
+ this._onFinish && this._onFinish(this._messages);
3044
+ this.abort();
3045
+ return;
3046
+ }
3047
+ const res = this._transformer ? this._transformer(e.data) : e;
3048
+ this._messages.push(res);
3049
+ this._onMessage && this._onMessage(res);
3050
+
3051
+ // 重置超时定时器
3052
+ if (this._finishTimeout) {
3053
+ clearTimeout(this._finishTimeout);
3054
+ }
3055
+
3056
+ // 设置超时检测:如果 10 秒内没有新消息,认为连接可能已结束
3057
+ this._finishTimeout = setTimeout(() => {
3058
+ if (!this._isFinished && es.readyState !== EventSource.CONNECTING) {
3059
+ this._isFinished = true;
3060
+ this._onFinish && this._onFinish(this._messages);
3061
+ this.abort();
3062
+ }
3063
+ }, 10000);
3064
+ };
3065
+ es.onopen = () => {
3066
+ this._onOpen && this._onOpen();
3067
+ };
3068
+ es.onerror = ev => {
3069
+ // 清除超时定时器
3070
+ if (this._finishTimeout) {
3071
+ clearTimeout(this._finishTimeout);
3072
+ this._finishTimeout = null;
3073
+ }
3074
+
3075
+ // 如果已经标记为结束,直接返回
3076
+ if (this._isFinished) {
3077
+ return;
3078
+ }
3079
+
3080
+ // 更可靠的结束检测逻辑
3081
+ if (es.readyState === EventSource.CLOSED || this._messages.length > 0 && es.readyState !== EventSource.CONNECTING) {
3082
+ // 有消息且连接状态不是正在连接,很可能是正常结束
3083
+ this._isFinished = true;
3084
+ this._onFinish && this._onFinish(this._messages);
3085
+ } else {
3086
+ // 真正的错误情况
3087
+ this._onError && this._onError(es, ev);
3088
+ }
3089
+ this.abort();
3090
+ };
3091
+ this._instance = es;
3092
+ return es;
3093
+ }
3094
+ send(url, options = {}) {
3095
+ switch (this._type) {
3096
+ case 'fetch':
3097
+ this._sendWithFetch(url, options);
3098
+ break;
3099
+ default:
3100
+ this._sendWithSSE(url, options);
3101
+ }
3102
+ return this;
3103
+ }
3104
+ abort() {
3105
+ // 清除超时定时器
3106
+ if (this._finishTimeout) {
3107
+ clearTimeout(this._finishTimeout);
3108
+ this._finishTimeout = null;
3109
+ }
3110
+ if (this._instance && this._instance.close) {
3111
+ this._instance.close();
3112
+ }
3113
+ this._instance = null;
3114
+ if (this._controller) {
3115
+ this._controller.abort();
3116
+ }
3117
+ this._controller = null;
3118
+
3119
+ // 只有在未正常结束时才调用 onAbort
3120
+ if (!this._isFinished) {
3121
+ this._onAbort && this._onAbort(this._messages);
3122
+ }
3123
+ this._messages = [];
3124
+ this._isFinished = false;
3125
+ }
3126
+ }
3127
+
3128
+ /**
3129
+ * sendMixin -
3130
+ * 用于处理发送操作管理请求状态的 mixin,支持可选的中止功能,同时支持 Promise 和 SSE(服务端事件)
3131
+ */
3132
+ const sendMixin = {
3133
+ data() {
3134
+ return {
3135
+ loading: false,
3136
+ _sendPromise: null,
3137
+ _sendController: null
3138
+ };
3139
+ },
3140
+ methods: {
3141
+ /**
3142
+ * 初始化发送配置
3143
+ * @param {Object} options - 配置选项
3144
+ * @param {Function} options.onAbort - 中止回调
3145
+ * @param {Function} options.sendHandler - 发送处理器
3146
+ * @param {Function} options.abortHandler - 中止处理器
3147
+ * @param {Function} options.finishHandler - 完成处理器
3148
+ */
3149
+ initSend(options = {}) {
3150
+ this._sendOptions = {
3151
+ onAbort: options.onAbort,
3152
+ sendHandler: options.sendHandler,
3153
+ abortHandler: options.abortHandler,
3154
+ finishHandler: options.finishHandler
3155
+ };
3156
+ },
3157
+ /**
3158
+ * 发送操作
3159
+ * @param {...any} args - 传递给 sendHandler 的参数
3160
+ */
3161
+ handleSend(...args) {
3162
+ if (this.loading) {
3163
+ return;
3164
+ }
3165
+ if (this._sendOptions && this._sendOptions.sendHandler) {
3166
+ this._sendOptions.sendHandler(...args);
3167
+ }
3168
+ this.loading = true;
3169
+ },
3170
+ /**
3171
+ * 中止操作
3172
+ */
3173
+ handleAbort() {
3174
+ this.loading = false;
3175
+ if (this._sendOptions && this._sendOptions.abortHandler) {
3176
+ this._sendOptions.abortHandler();
3177
+ }
3178
+ if (this._sendOptions && this._sendOptions.onAbort) {
3179
+ this._sendOptions.onAbort();
3180
+ }
3181
+ },
3182
+ /**
3183
+ * 完成操作
3184
+ */
3185
+ handleFinish() {
3186
+ this.loading = false;
3187
+ if (this._sendOptions && this._sendOptions.finishHandler) {
3188
+ this._sendOptions.finishHandler();
3189
+ }
3190
+ },
3191
+ /**
3192
+ * 创建 XRequest 实例的便捷方法
3193
+ * @param {Object} options - XRequest 配置选项
3194
+ * @returns {XRequest} XRequest 实例
3195
+ */
3196
+ createXRequest(options = {}) {
3197
+ return new XRequest({
3198
+ ...options,
3199
+ onAbort: (...args) => {
3200
+ this.handleAbort();
3201
+ if (options.onAbort) {
3202
+ options.onAbort(...args);
3203
+ }
3204
+ },
3205
+ onFinish: (...args) => {
3206
+ this.handleFinish();
3207
+ if (options.onFinish) {
3208
+ options.onFinish(...args);
3209
+ }
3210
+ }
3211
+ });
3212
+ }
3213
+ },
3214
+ beforeDestroy() {
3215
+ // 组件销毁时清理资源
3216
+ if (this._sendController) {
3217
+ this._sendController.abort();
3218
+ }
3219
+ }
3220
+ };
3221
+
3222
+ /**
3223
+ * 工具函数版本 - 用于非组件场景
3224
+ * @param {Object} options - 配置选项
3225
+ * @returns {Object} 包含发送相关方法的对象
3226
+ */
3227
+ function createSendUtils(options = {}) {
3228
+ const state = {
3229
+ loading: false
3230
+ };
3231
+ const handleSend = (...args) => {
3232
+ if (state.loading) {
3233
+ return;
3234
+ }
3235
+ if (options.sendHandler) {
3236
+ options.sendHandler(...args);
3237
+ }
3238
+ state.loading = true;
3239
+ };
3240
+ const handleAbort = () => {
3241
+ state.loading = false;
3242
+ if (options.abortHandler) {
3243
+ options.abortHandler();
3244
+ }
3245
+ if (options.onAbort) {
3246
+ options.onAbort();
3247
+ }
3248
+ };
3249
+ const handleFinish = () => {
3250
+ state.loading = false;
3251
+ if (options.finishHandler) {
3252
+ options.finishHandler();
3253
+ }
3254
+ };
3255
+ return {
3256
+ state,
3257
+ send: handleSend,
3258
+ abort: handleAbort,
3259
+ finish: handleFinish
3260
+ };
3261
+ }
3262
+ /* harmony default export */ var mixins_sendMixin = (sendMixin);
3263
+ // CONCATENATED MODULE: ./src/mixins/streamMixin.js
3264
+ /**
3265
+ * @fileoverview Vue2 流式数据处理 Mixin
3266
+ * 从 Vue3 useXStream hooks 转换而来,支持 SSE 数据解析和中断功能
3267
+ * @author Element UI X Team
3268
+ * @version 1.0.0
3269
+ */
3270
+
3271
+ /**
3272
+ * 默认流分隔符
3273
+ * @type {string}
3274
+ * @constant
3275
+ */
3276
+ const DEFAULT_STREAM_SEPARATOR = '\n\n';
3277
+
3278
+ /**
3279
+ * 默认部分分隔符
3280
+ * @type {string}
3281
+ * @constant
3282
+ */
3283
+ const DEFAULT_PART_SEPARATOR = '\n';
3284
+
3285
+ /**
3286
+ * 默认键值分隔符
3287
+ * @type {string}
3288
+ * @constant
3289
+ */
3290
+ const DEFAULT_KV_SEPARATOR = ':';
3291
+
3292
+ /**
3293
+ * SSE 字段类型定义
3294
+ * @typedef {'data'|'event'|'id'|'retry'} SSEFields
3295
+ */
3296
+
3297
+ /**
3298
+ * SSE 输出对象类型
3299
+ * @typedef {Object} SSEOutput
3300
+ * @property {string} [data] - 数据字段
3301
+ * @property {string} [event] - 事件字段
3302
+ * @property {string} [id] - ID字段
3303
+ * @property {string} [retry] - 重试字段
3304
+ */
3305
+
3306
+ /**
3307
+ * 流配置选项
3308
+ * @typedef {Object} XStreamOptions
3309
+ * @property {ReadableStream<Uint8Array>} readableStream - 可读流
3310
+ * @property {TransformStream<string, *>} [transformStream] - 可选的转换流
3311
+ */
3312
+
3313
+ /**
3314
+ * 流状态对象
3315
+ * @typedef {Object} StreamState
3316
+ * @property {Array<*>} data - 流数据数组
3317
+ * @property {Error|null} error - 错误信息
3318
+ * @property {boolean} loading - 加载状态
3319
+ */
3320
+
3321
+ /**
3322
+ * 流回调函数配置
3323
+ * @typedef {Object} StreamCallbacks
3324
+ * @property {function(*): void} [onData] - 数据回调函数
3325
+ * @property {function(Array<*>): void} [onComplete] - 完成回调函数
3326
+ * @property {function(Error): void} [onError] - 错误回调函数
3327
+ * @property {function(): void} [onCancel] - 取消回调函数
3328
+ * @property {function(): void} [onFinish] - 结束回调函数
3329
+ */
3330
+
3331
+ /**
3332
+ * 流工具函数返回对象
3333
+ * @typedef {Object} StreamUtils
3334
+ * @property {StreamState} state - 流状态
3335
+ * @property {function(XStreamOptions): Promise<void>} startStream - 启动流处理
3336
+ * @property {function(): void} cancel - 取消流处理
3337
+ * @property {function(): void} reset - 重置流状态
3338
+ */
3339
+
3340
+ /**
3341
+ * 验证字符串是否有效(非空且非空白)
3342
+ * @param {string} str - 待验证的字符串
3343
+ * @returns {boolean} 是否为有效字符串
3344
+ */
3345
+ const isValidString = str => (str === null || str === undefined ? '' : str).trim() !== '';
3346
+
3347
+ /**
3348
+ * 创建流分割转换器
3349
+ * 按照默认分隔符分割流数据
3350
+ * @returns {TransformStream<string, string>} 流分割转换器
3351
+ */
3352
+ function splitStream() {
3353
+ let buffer = '';
3354
+ return new TransformStream({
3355
+ /**
3356
+ * 转换函数
3357
+ * @param {string} chunk - 数据块
3358
+ * @param {TransformStreamDefaultController<string>} controller - 控制器
3359
+ */
3360
+ transform(chunk, controller) {
3361
+ buffer += chunk;
3362
+ const parts = buffer.split(DEFAULT_STREAM_SEPARATOR);
3363
+ parts.slice(0, -1).forEach(part => {
3364
+ if (isValidString(part)) controller.enqueue(part);
3365
+ });
3366
+ buffer = parts[parts.length - 1];
3367
+ },
3368
+ /**
3369
+ * 刷新函数
3370
+ * @param {TransformStreamDefaultController<string>} controller - 控制器
3371
+ */
3372
+ flush(controller) {
3373
+ if (isValidString(buffer)) controller.enqueue(buffer);
3374
+ }
3375
+ });
3376
+ }
3377
+
3378
+ /**
3379
+ * 创建 SSE 数据解析转换器
3380
+ * 将文本数据解析为 SSE 格式对象
3381
+ * @returns {TransformStream<string, SSEOutput>} SSE 解析转换器
3382
+ */
3383
+ function splitPart() {
3384
+ return new TransformStream({
3385
+ /**
3386
+ * 转换函数
3387
+ * @param {string} partChunk - 数据块
3388
+ * @param {TransformStreamDefaultController<SSEOutput>} controller - 控制器
3389
+ */
3390
+ transform(partChunk, controller) {
3391
+ const lines = partChunk.split(DEFAULT_PART_SEPARATOR);
3392
+ const sseEvent = lines.reduce((acc, line) => {
3393
+ const sepIndex = line.indexOf(DEFAULT_KV_SEPARATOR);
3394
+ if (sepIndex === -1) return acc;
3395
+ const key = line.slice(0, sepIndex);
3396
+ if (!isValidString(key)) return acc;
3397
+ const value = line.slice(sepIndex + 1);
3398
+ return {
3399
+ ...acc,
3400
+ [key]: value
3401
+ };
3402
+ }, {});
3403
+ if (Object.keys(sseEvent).length > 0) controller.enqueue(sseEvent);
3404
+ }
3405
+ });
3406
+ }
3407
+
3408
+ /**
3409
+ * 核心流处理函数(支持中断)
3410
+ * @param {XStreamOptions} options - 配置选项
3411
+ * @param {ReadableStream<Uint8Array>} options.readableStream - 可读流
3412
+ * @param {TransformStream<string, *>} [options.transformStream] - 可选的转换流
3413
+ * @param {AbortSignal} [signal] - 中断信号
3414
+ * @returns {ReadableStream<*>} 处理后的流,支持异步迭代
3415
+ * @throws {TypeError} 当 readableStream 不是 ReadableStream 实例时抛出
3416
+ */
3417
+ function XStream(options, signal) {
3418
+ const {
3419
+ readableStream,
3420
+ transformStream
3421
+ } = options;
3422
+ if (!(readableStream instanceof ReadableStream)) {
3423
+ throw new TypeError('options.readableStream 必须是 ReadableStream 的实例。');
3424
+ }
3425
+ const decoderStream = new TextDecoderStream();
3426
+ const processedStream = transformStream ? readableStream.pipeThrough(decoderStream).pipeThrough(transformStream) : readableStream.pipeThrough(decoderStream).pipeThrough(splitStream()).pipeThrough(splitPart());
3427
+
3428
+ // 为流添加异步迭代器并处理中断信号
3429
+ processedStream[Symbol.asyncIterator] = async function* () {
3430
+ const reader = this.getReader();
3431
+ this.reader = reader; // 保存读取器引用
3432
+ try {
3433
+ while (true) {
3434
+ if (signal && signal.aborted) {
3435
+ await reader.cancel(); // 主动取消 reader
3436
+ break;
3437
+ }
3438
+ const {
3439
+ done,
3440
+ value
3441
+ } = await reader.read();
3442
+ if (done) break;
3443
+ if (value) yield value;
3444
+ }
3445
+ } finally {
3446
+ reader.releaseLock(); // 释放锁
3447
+ }
3448
+ };
3449
+ return processedStream;
3450
+ }
3451
+
3452
+ /**
3453
+ * streamMixin -
3454
+ * 用于处理流式数据的 mixin,支持 SSE 数据解析和中断功能
3455
+ * @namespace streamMixin
3456
+ * @type {Object}
3457
+ */
3458
+ const streamMixin = {
3459
+ /**
3460
+ * 组件数据
3461
+ * @returns {Object} 响应式数据对象
3462
+ * @property {Array<*>} streamData - 流数据数组
3463
+ * @property {Error|null} streamError - 流错误信息
3464
+ * @property {boolean} streamLoading - 流处理状态
3465
+ * @property {AbortController|null} _abortController - 私有:中断控制器
3466
+ * @property {ReadableStream|null} _currentStream - 私有:当前流引用
3467
+ */
3468
+ data() {
3469
+ return {
3470
+ streamData: [],
3471
+ streamError: null,
3472
+ streamLoading: false,
3473
+ _abortController: null,
3474
+ _currentStream: null
3475
+ };
3476
+ },
3477
+ methods: {
3478
+ /**
3479
+ * 启动流式请求
3480
+ * @async
3481
+ * @param {XStreamOptions} options - 流配置选项
3482
+ * @param {ReadableStream<Uint8Array>} options.readableStream - 可读流
3483
+ * @param {TransformStream<string, *>} [options.transformStream] - 可选的转换流
3484
+ * @returns {Promise<void>} 流处理完成的 Promise
3485
+ * @fires streamMixin#stream-data - 收到新数据时触发
3486
+ * @fires streamMixin#stream-complete - 流完成时触发
3487
+ * @fires streamMixin#stream-error - 流错误时触发
3488
+ * @fires streamMixin#stream-finish - 流处理结束时触发
3489
+ * @example
3490
+ * // 基础使用
3491
+ * const response = await fetch('/api/stream')
3492
+ * await this.startStream({ readableStream: response.body })
3493
+ *
3494
+ * // 使用自定义转换流
3495
+ * const customTransform = new TransformStream({ ... })
3496
+ * await this.startStream({
3497
+ * readableStream: response.body,
3498
+ * transformStream: customTransform
3499
+ * })
3500
+ */
3501
+ async startStream(options) {
3502
+ this.streamLoading = true;
3503
+ this.streamError = null;
3504
+ this.streamData = [];
3505
+ this._abortController = new AbortController();
3506
+ this._currentStream = XStream(options, this._abortController.signal);
3507
+ try {
3508
+ for await (const item of this._currentStream) {
3509
+ this.streamData.push(item);
3510
+ // 触发数据更新事件
3511
+ /**
3512
+ * 流数据事件
3513
+ * @event streamMixin#stream-data
3514
+ * @type {*} 流数据项
3515
+ */
3516
+ this.$emit('stream-data', item);
3517
+ }
3518
+ // 流完成事件
3519
+ /**
3520
+ * 流完成事件
3521
+ * @event streamMixin#stream-complete
3522
+ * @type {Array<*>} 所有流数据
3523
+ */
3524
+ this.$emit('stream-complete', this.streamData);
3525
+ } catch (err) {
3526
+ if (err instanceof Error) {
3527
+ this.streamError = err;
3528
+ /**
3529
+ * 流错误事件
3530
+ * @event streamMixin#stream-error
3531
+ * @type {Error} 错误对象
3532
+ */
3533
+ this.$emit('stream-error', err);
3534
+ }
3535
+ } finally {
3536
+ this.streamLoading = false;
3537
+ this._currentStream = null; // 释放流引用
3538
+ this._abortController = null; // 释放控制器
3539
+ /**
3540
+ * 流处理结束事件
3541
+ * @event streamMixin#stream-finish
3542
+ */
3543
+ this.$emit('stream-finish');
3544
+ }
3545
+ },
3546
+ /**
3547
+ * 中断流式请求(强制关闭流)
3548
+ * @returns {void}
3549
+ * @fires streamMixin#stream-cancel - 流被中断时触发
3550
+ * @example
3551
+ * this.cancelStream()
3552
+ */
3553
+ cancelStream() {
3554
+ if (this._abortController) {
3555
+ this._abortController.abort();
3556
+ /**
3557
+ * 流取消事件
3558
+ * @event streamMixin#stream-cancel
3559
+ */
3560
+ this.$emit('stream-cancel');
3561
+ }
3562
+ },
3563
+ /**
3564
+ * 重置流状态
3565
+ * 清空所有数据和状态,但不触发事件
3566
+ * @returns {void}
3567
+ * @example
3568
+ * this.resetStream()
3569
+ */
3570
+ resetStream() {
3571
+ this.streamData = [];
3572
+ this.streamError = null;
3573
+ this.streamLoading = false;
3574
+ this._abortController = null;
3575
+ this._currentStream = null;
3576
+ },
3577
+ /**
3578
+ * 创建流处理器的便捷方法
3579
+ * @param {ReadableStream<Uint8Array>} readableStream - 可读流
3580
+ * @param {TransformStream<string, *>} [transformStream] - 可选的转换流
3581
+ * @returns {XStreamOptions} 流处理器配置对象
3582
+ * @example
3583
+ * const processor = this.createStreamProcessor(response.body)
3584
+ * await this.startStream(processor)
3585
+ */
3586
+ createStreamProcessor(readableStream, transformStream) {
3587
+ return {
3588
+ readableStream,
3589
+ transformStream
3590
+ };
3591
+ }
3592
+ },
3593
+ /**
3594
+ * 组件销毁前的生命周期钩子
3595
+ * 自动清理流资源
3596
+ * @returns {void}
3597
+ */
3598
+ beforeDestroy() {
3599
+ // 组件销毁时清理资源
3600
+ this.cancelStream();
3601
+ }
3602
+ };
3603
+
3604
+ /**
3605
+ * 工具函数版本 - 用于非组件场景
3606
+ * @param {StreamCallbacks} [callbacks={}] - 回调函数配置
3607
+ * @param {function(*): void} [callbacks.onData] - 数据回调函数
3608
+ * @param {function(Array<*>): void} [callbacks.onComplete] - 完成回调函数
3609
+ * @param {function(Error): void} [callbacks.onError] - 错误回调函数
3610
+ * @param {function(): void} [callbacks.onCancel] - 取消回调函数
3611
+ * @param {function(): void} [callbacks.onFinish] - 结束回调函数
3612
+ * @returns {StreamUtils} 包含流处理相关方法的对象
3613
+ * @example
3614
+ * // 基础使用
3615
+ * const streamUtils = createStreamUtils({
3616
+ * onData: (item) => console.log('数据:', item),
3617
+ * onComplete: (allData) => console.log('完成:', allData),
3618
+ * onError: (error) => console.error('错误:', error)
3619
+ * })
3620
+ *
3621
+ * const response = await fetch('/api/stream')
3622
+ * await streamUtils.startStream({ readableStream: response.body })
3623
+ */
3624
+ function createStreamUtils(callbacks = {}) {
3625
+ /**
3626
+ * 流状态对象
3627
+ * @type {StreamState}
3628
+ */
3629
+ const state = {
3630
+ data: [],
3631
+ error: null,
3632
+ loading: false
3633
+ };
3634
+ let abortController = null;
3635
+ let currentStream = null;
3636
+
3637
+ /**
3638
+ * 启动流处理
3639
+ * @async
3640
+ * @param {XStreamOptions} options - 流配置选项
3641
+ * @returns {Promise<void>} 流处理完成的 Promise
3642
+ */
3643
+ const startStream = async options => {
3644
+ state.loading = true;
3645
+ state.error = null;
3646
+ state.data = [];
3647
+ abortController = new AbortController();
3648
+ currentStream = XStream(options, abortController.signal);
3649
+ try {
3650
+ for await (const item of currentStream) {
3651
+ state.data.push(item);
3652
+ if (callbacks.onData) {
3653
+ callbacks.onData(item);
3654
+ }
3655
+ }
3656
+ if (callbacks.onComplete) {
3657
+ callbacks.onComplete(state.data);
3658
+ }
3659
+ } catch (err) {
3660
+ if (err instanceof Error) {
3661
+ state.error = err;
3662
+ if (callbacks.onError) {
3663
+ callbacks.onError(err);
3664
+ }
3665
+ }
3666
+ } finally {
3667
+ state.loading = false;
3668
+ currentStream = null;
3669
+ abortController = null;
3670
+ if (callbacks.onFinish) {
3671
+ callbacks.onFinish();
3672
+ }
3673
+ }
3674
+ };
3675
+
3676
+ /**
3677
+ * 取消流处理
3678
+ * @returns {void}
3679
+ */
3680
+ const cancel = () => {
3681
+ if (abortController) {
3682
+ abortController.abort();
3683
+ if (callbacks.onCancel) {
3684
+ callbacks.onCancel();
3685
+ }
3686
+ }
3687
+ };
3688
+
3689
+ /**
3690
+ * 重置流状态
3691
+ * @returns {void}
3692
+ */
3693
+ const reset = () => {
3694
+ state.data = [];
3695
+ state.error = null;
3696
+ state.loading = false;
3697
+ abortController = null;
3698
+ currentStream = null;
3699
+ };
3700
+ return {
3701
+ state,
3702
+ startStream,
3703
+ cancel,
3704
+ reset
3705
+ };
3706
+ }
3707
+
3708
+ // 导出常量和工具函数
3709
+
3710
+
3711
+ /**
3712
+ * 默认导出 streamMixin
3713
+ * @type {Object}
3714
+ */
3715
+ /* harmony default export */ var mixins_streamMixin = (streamMixin);
3716
+ // CONCATENATED MODULE: ./src/mixins/index.js
3717
+ /**
3718
+ * Mixins 入口文件
3719
+ */
3720
+
3721
+
3722
+
3723
+
3724
+
3725
+ /* harmony default export */ var mixins = __webpack_exports__["default"] = ({
3726
+ recordMixin: recordMixin,
3727
+ sendMixin: sendMixin,
3728
+ XRequest: XRequest,
3729
+ createSendUtils: createSendUtils,
3730
+ streamMixin: streamMixin,
3731
+ createStreamUtils: createStreamUtils,
3732
+ XStream: XStream,
3733
+ splitStream: splitStream,
3734
+ splitPart: splitPart,
3735
+ isValidString: isValidString,
3736
+ DEFAULT_STREAM_SEPARATOR: DEFAULT_STREAM_SEPARATOR,
3737
+ DEFAULT_PART_SEPARATOR: DEFAULT_PART_SEPARATOR,
3738
+ DEFAULT_KV_SEPARATOR: DEFAULT_KV_SEPARATOR
3739
+ });
3740
+
3741
+ /***/ }),
3742
+ /* 6 */
2818
3743
  /***/ (function(module, exports, __webpack_require__) {
2819
3744
 
2820
3745
  /* WEBPACK VAR INJECTION */(function(global, module) {var __WEBPACK_AMD_DEFINE_RESULT__;/**
@@ -20019,16 +20944,16 @@ Prism.languages.js = Prism.languages.javascript;
20019
20944
  else {}
20020
20945
  }.call(this));
20021
20946
 
20022
- /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(10), __webpack_require__(23)(module)))
20947
+ /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(11), __webpack_require__(24)(module)))
20023
20948
 
20024
20949
  /***/ }),
20025
- /* 6 */
20950
+ /* 7 */
20026
20951
  /***/ (function(module, exports) {
20027
20952
 
20028
20953
  module.exports=/[!-#%-\*,-\/:;\?@\[-\]_\{\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166D\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4E\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDF55-\uDF59]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDF3C-\uDF3E]|\uD806[\uDC3B\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDE97-\uDE9A]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F]/
20029
20954
 
20030
20955
  /***/ }),
20031
- /* 7 */
20956
+ /* 8 */
20032
20957
  /***/ (function(module, exports, __webpack_require__) {
20033
20958
 
20034
20959
  "use strict";
@@ -20387,7 +21312,7 @@ module.exports = Ruler;
20387
21312
 
20388
21313
 
20389
21314
  /***/ }),
20390
- /* 8 */
21315
+ /* 9 */
20391
21316
  /***/ (function(module, exports, __webpack_require__) {
20392
21317
 
20393
21318
  "use strict";
@@ -20595,26 +21520,26 @@ module.exports = Token;
20595
21520
 
20596
21521
 
20597
21522
  /***/ }),
20598
- /* 9 */
21523
+ /* 10 */
20599
21524
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
20600
21525
 
20601
21526
  "use strict";
20602
21527
  /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
20603
21528
  /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__);
20604
- /* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_prismjs_themes_prism_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(22);
21529
+ /* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_prismjs_themes_prism_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(23);
20605
21530
  // Imports
20606
21531
 
20607
21532
 
20608
21533
  var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]});
20609
21534
  ___CSS_LOADER_EXPORT___.i(_node_modules_css_loader_dist_cjs_js_node_modules_prismjs_themes_prism_css__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"]);
20610
21535
  // Module
20611
- ___CSS_LOADER_EXPORT___.push([module.i, ".typer-container[data-v-0a15f16e]{overflow-x:auto}.markdown-content[data-v-0a15f16e] ul{list-style-type:disc}.typing-markdown-cursor-foggy.markdown-content[data-v-0a15f16e] h1,.typing-markdown-cursor-foggy.markdown-content[data-v-0a15f16e] h2,.typing-markdown-cursor-foggy.markdown-content[data-v-0a15f16e] h3,.typing-markdown-cursor-foggy.markdown-content[data-v-0a15f16e] h4,.typing-markdown-cursor-foggy.markdown-content[data-v-0a15f16e] h5,.typing-markdown-cursor-foggy.markdown-content[data-v-0a15f16e] h6,.typing-markdown-cursor-foggy.markdown-content[data-v-0a15f16e] p,.typing-markdown-cursor-foggy.markdown-content[data-v-0a15f16e] ol:last-child li,.typing-markdown-cursor-foggy.markdown-content[data-v-0a15f16e] ul:last-child li,.typing-cursor-foggy.markdown-content[data-v-0a15f16e] h1,.typing-cursor-foggy.markdown-content[data-v-0a15f16e] h2,.typing-cursor-foggy.markdown-content[data-v-0a15f16e] h3,.typing-cursor-foggy.markdown-content[data-v-0a15f16e] h4,.typing-cursor-foggy.markdown-content[data-v-0a15f16e] h5,.typing-cursor-foggy.markdown-content[data-v-0a15f16e] h6,.typing-cursor-foggy.markdown-content[data-v-0a15f16e] p,.typing-cursor-foggy.markdown-content[data-v-0a15f16e] ol:last-child li,.typing-cursor-foggy.markdown-content[data-v-0a15f16e] ul:last-child li{position:relative;overflow:hidden}.typing-markdown-cursor-foggy.markdown-content[data-v-0a15f16e] h1:last-child:after,.typing-markdown-cursor-foggy.markdown-content[data-v-0a15f16e] h2:last-child:after,.typing-markdown-cursor-foggy.markdown-content[data-v-0a15f16e] h3:last-child:after,.typing-markdown-cursor-foggy.markdown-content[data-v-0a15f16e] h4:last-child:after,.typing-markdown-cursor-foggy.markdown-content[data-v-0a15f16e] h5:last-child:after,.typing-markdown-cursor-foggy.markdown-content[data-v-0a15f16e] h6:last-child:after,.typing-markdown-cursor-foggy.markdown-content[data-v-0a15f16e] p:last-child:after,.typing-markdown-cursor-foggy.markdown-content[data-v-0a15f16e] ol:last-child li:last-child:after,.typing-markdown-cursor-foggy.markdown-content[data-v-0a15f16e] ul:last-child li:last-child:after,.typing-cursor-foggy.markdown-content[data-v-0a15f16e] h1:last-child:after,.typing-cursor-foggy.markdown-content[data-v-0a15f16e] h2:last-child:after,.typing-cursor-foggy.markdown-content[data-v-0a15f16e] h3:last-child:after,.typing-cursor-foggy.markdown-content[data-v-0a15f16e] h4:last-child:after,.typing-cursor-foggy.markdown-content[data-v-0a15f16e] h5:last-child:after,.typing-cursor-foggy.markdown-content[data-v-0a15f16e] h6:last-child:after,.typing-cursor-foggy.markdown-content[data-v-0a15f16e] p:last-child:after,.typing-cursor-foggy.markdown-content[data-v-0a15f16e] ol:last-child li:last-child:after,.typing-cursor-foggy.markdown-content[data-v-0a15f16e] ul:last-child li:last-child:after{content:'';width:var(--cursor-fog-width);height:1.5em;background:linear-gradient(90deg, transparent, var(--cursor-fog-bg-color));position:absolute;margin-left:calc(-1 * var(--cursor-fog-width))}.typer-content.typing-cursor[data-v-0a15f16e]::after{content:var(--cursor-char);margin-left:2px;display:inline-block}.typer-content.typing-cursor-foggy[data-v-0a15f16e]{position:relative;overflow:hidden}.typer-content.typing-cursor-foggy[data-v-0a15f16e]:last-child:after{content:'';width:var(--cursor-fog-width);height:100%;background:linear-gradient(90deg, transparent, var(--cursor-fog-bg-color));position:absolute;margin-left:calc(-1 * var(--cursor-fog-width))}\n", ""]);
21536
+ ___CSS_LOADER_EXPORT___.push([module.i, ".typer-container[data-v-0a15f16e]{overflow-x:auto}.markdown-content[data-v-0a15f16e] ul{list-style-type:disc}.typing-markdown-cursor-foggy.markdown-content[data-v-0a15f16e] h1,.typing-markdown-cursor-foggy.markdown-content[data-v-0a15f16e] h2,.typing-markdown-cursor-foggy.markdown-content[data-v-0a15f16e] h3,.typing-markdown-cursor-foggy.markdown-content[data-v-0a15f16e] h4,.typing-markdown-cursor-foggy.markdown-content[data-v-0a15f16e] h5,.typing-markdown-cursor-foggy.markdown-content[data-v-0a15f16e] h6,.typing-markdown-cursor-foggy.markdown-content[data-v-0a15f16e] p,.typing-markdown-cursor-foggy.markdown-content[data-v-0a15f16e] ol:last-child li,.typing-markdown-cursor-foggy.markdown-content[data-v-0a15f16e] ul:last-child li,.typing-cursor-foggy.markdown-content[data-v-0a15f16e] h1,.typing-cursor-foggy.markdown-content[data-v-0a15f16e] h2,.typing-cursor-foggy.markdown-content[data-v-0a15f16e] h3,.typing-cursor-foggy.markdown-content[data-v-0a15f16e] h4,.typing-cursor-foggy.markdown-content[data-v-0a15f16e] h5,.typing-cursor-foggy.markdown-content[data-v-0a15f16e] h6,.typing-cursor-foggy.markdown-content[data-v-0a15f16e] p,.typing-cursor-foggy.markdown-content[data-v-0a15f16e] ol:last-child li,.typing-cursor-foggy.markdown-content[data-v-0a15f16e] ul:last-child li{position:relative;overflow:hidden}.typing-markdown-cursor-foggy.markdown-content[data-v-0a15f16e] h1:last-child:after,.typing-markdown-cursor-foggy.markdown-content[data-v-0a15f16e] h2:last-child:after,.typing-markdown-cursor-foggy.markdown-content[data-v-0a15f16e] h3:last-child:after,.typing-markdown-cursor-foggy.markdown-content[data-v-0a15f16e] h4:last-child:after,.typing-markdown-cursor-foggy.markdown-content[data-v-0a15f16e] h5:last-child:after,.typing-markdown-cursor-foggy.markdown-content[data-v-0a15f16e] h6:last-child:after,.typing-markdown-cursor-foggy.markdown-content[data-v-0a15f16e] p:last-child:after,.typing-markdown-cursor-foggy.markdown-content[data-v-0a15f16e] ol:last-child li:last-child:after,.typing-markdown-cursor-foggy.markdown-content[data-v-0a15f16e] ul:last-child li:last-child:after,.typing-cursor-foggy.markdown-content[data-v-0a15f16e] h1:last-child:after,.typing-cursor-foggy.markdown-content[data-v-0a15f16e] h2:last-child:after,.typing-cursor-foggy.markdown-content[data-v-0a15f16e] h3:last-child:after,.typing-cursor-foggy.markdown-content[data-v-0a15f16e] h4:last-child:after,.typing-cursor-foggy.markdown-content[data-v-0a15f16e] h5:last-child:after,.typing-cursor-foggy.markdown-content[data-v-0a15f16e] h6:last-child:after,.typing-cursor-foggy.markdown-content[data-v-0a15f16e] p:last-child:after,.typing-cursor-foggy.markdown-content[data-v-0a15f16e] ol:last-child li:last-child:after,.typing-cursor-foggy.markdown-content[data-v-0a15f16e] ul:last-child li:last-child:after{content:\"\";width:var(--cursor-fog-width);height:1.5em;background:linear-gradient(90deg, transparent, var(--cursor-fog-bg-color));position:absolute;margin-left:calc(-1*var(--cursor-fog-width))}.typer-content.typing-cursor[data-v-0a15f16e]::after{content:var(--cursor-char);margin-left:2px;display:inline-block}.typer-content.typing-cursor-foggy[data-v-0a15f16e]{position:relative;overflow:hidden}.typer-content.typing-cursor-foggy[data-v-0a15f16e]:last-child:after{content:\"\";width:var(--cursor-fog-width);height:100%;background:linear-gradient(90deg, transparent, var(--cursor-fog-bg-color));position:absolute;margin-left:calc(-1*var(--cursor-fog-width))}", ""]);
20612
21537
  // Exports
20613
21538
  /* harmony default export */ __webpack_exports__["a"] = (___CSS_LOADER_EXPORT___);
20614
21539
 
20615
21540
 
20616
21541
  /***/ }),
20617
- /* 10 */
21542
+ /* 11 */
20618
21543
  /***/ (function(module, exports) {
20619
21544
 
20620
21545
  var g;
@@ -20640,7 +21565,7 @@ module.exports = g;
20640
21565
 
20641
21566
 
20642
21567
  /***/ }),
20643
- /* 11 */
21568
+ /* 12 */
20644
21569
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
20645
21570
 
20646
21571
  "use strict";
@@ -20679,11 +21604,11 @@ render._withStripped = true;
20679
21604
  // CONCATENATED MODULE: ./src/components/Typewriter/src/main.vue?vue&type=template&id=0a15f16e&scoped=true
20680
21605
 
20681
21606
  // EXTERNAL MODULE: ./node_modules/dompurify/dist/purify.js
20682
- var purify = __webpack_require__(20);
21607
+ var purify = __webpack_require__(21);
20683
21608
  var purify_default = /*#__PURE__*/__webpack_require__.n(purify);
20684
21609
 
20685
21610
  // EXTERNAL MODULE: ./node_modules/markdown-it/index.js
20686
- var markdown_it = __webpack_require__(21);
21611
+ var markdown_it = __webpack_require__(22);
20687
21612
  var markdown_it_default = /*#__PURE__*/__webpack_require__.n(markdown_it);
20688
21613
 
20689
21614
  // EXTERNAL MODULE: ./node_modules/prismjs/prism.js
@@ -20876,7 +21801,7 @@ var injectStylesIntoStyleTag = __webpack_require__(3);
20876
21801
  var injectStylesIntoStyleTag_default = /*#__PURE__*/__webpack_require__.n(injectStylesIntoStyleTag);
20877
21802
 
20878
21803
  // EXTERNAL MODULE: ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Typewriter/src/main.vue?vue&type=style&index=0&id=0a15f16e&prod&lang=scss&scoped=true
20879
- var mainvue_type_style_index_0_id_0a15f16e_prod_lang_scss_scoped_true = __webpack_require__(9);
21804
+ var mainvue_type_style_index_0_id_0a15f16e_prod_lang_scss_scoped_true = __webpack_require__(10);
20880
21805
 
20881
21806
  // CONCATENATED MODULE: ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Typewriter/src/main.vue?vue&type=style&index=0&id=0a15f16e&prod&lang=scss&scoped=true
20882
21807
 
@@ -20928,7 +21853,7 @@ main.install = function (Vue) {
20928
21853
  /* harmony default export */ var Typewriter = __webpack_exports__["default"] = (main);
20929
21854
 
20930
21855
  /***/ }),
20931
- /* 12 */
21856
+ /* 13 */
20932
21857
  /***/ (function(module, exports, __webpack_require__) {
20933
21858
 
20934
21859
  "use strict";
@@ -20937,43 +21862,43 @@ main.install = function (Vue) {
20937
21862
 
20938
21863
 
20939
21864
  /*eslint quotes:0*/
20940
- module.exports = __webpack_require__(29);
21865
+ module.exports = __webpack_require__(30);
20941
21866
 
20942
21867
 
20943
21868
  /***/ }),
20944
- /* 13 */
21869
+ /* 14 */
20945
21870
  /***/ (function(module, exports, __webpack_require__) {
20946
21871
 
20947
21872
  "use strict";
20948
21873
 
20949
21874
 
20950
21875
 
20951
- module.exports.encode = __webpack_require__(30);
20952
- module.exports.decode = __webpack_require__(31);
20953
- module.exports.format = __webpack_require__(32);
20954
- module.exports.parse = __webpack_require__(33);
21876
+ module.exports.encode = __webpack_require__(31);
21877
+ module.exports.decode = __webpack_require__(32);
21878
+ module.exports.format = __webpack_require__(33);
21879
+ module.exports.parse = __webpack_require__(34);
20955
21880
 
20956
21881
 
20957
21882
  /***/ }),
20958
- /* 14 */
21883
+ /* 15 */
20959
21884
  /***/ (function(module, exports) {
20960
21885
 
20961
21886
  module.exports=/[\0-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/
20962
21887
 
20963
21888
  /***/ }),
20964
- /* 15 */
21889
+ /* 16 */
20965
21890
  /***/ (function(module, exports) {
20966
21891
 
20967
21892
  module.exports=/[\0-\x1F\x7F-\x9F]/
20968
21893
 
20969
21894
  /***/ }),
20970
- /* 16 */
21895
+ /* 17 */
20971
21896
  /***/ (function(module, exports) {
20972
21897
 
20973
21898
  module.exports=/[ \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]/
20974
21899
 
20975
21900
  /***/ }),
20976
- /* 17 */
21901
+ /* 18 */
20977
21902
  /***/ (function(module, exports, __webpack_require__) {
20978
21903
 
20979
21904
  "use strict";
@@ -21008,7 +21933,7 @@ module.exports.HTML_OPEN_CLOSE_TAG_RE = HTML_OPEN_CLOSE_TAG_RE;
21008
21933
 
21009
21934
 
21010
21935
  /***/ }),
21011
- /* 18 */
21936
+ /* 19 */
21012
21937
  /***/ (function(module, exports, __webpack_require__) {
21013
21938
 
21014
21939
  "use strict";
@@ -21145,7 +22070,7 @@ module.exports.postProcess = function strikethrough(state) {
21145
22070
 
21146
22071
 
21147
22072
  /***/ }),
21148
- /* 19 */
22073
+ /* 20 */
21149
22074
  /***/ (function(module, exports, __webpack_require__) {
21150
22075
 
21151
22076
  "use strict";
@@ -21282,10 +22207,10 @@ module.exports.postProcess = function emphasis(state) {
21282
22207
 
21283
22208
 
21284
22209
  /***/ }),
21285
- /* 20 */
22210
+ /* 21 */
21286
22211
  /***/ (function(module, exports, __webpack_require__) {
21287
22212
 
21288
- /*! @license DOMPurify 3.2.6 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.2.6/LICENSE */
22213
+ /*! @license DOMPurify 3.2.5 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.2.5/LICENSE */
21289
22214
 
21290
22215
  (function (global, factory) {
21291
22216
  true ? module.exports = factory() :
@@ -21494,7 +22419,7 @@ module.exports.postProcess = function emphasis(state) {
21494
22419
  const TMPLIT_EXPR = seal(/\$\{[\w\W]*/gm); // eslint-disable-line unicorn/better-regex
21495
22420
  const DATA_ATTR = seal(/^data-[\-\w.\u00B7-\uFFFF]+$/); // eslint-disable-line no-useless-escape
21496
22421
  const ARIA_ATTR = seal(/^aria-[\-\w]+$/); // eslint-disable-line no-useless-escape
21497
- const IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i // eslint-disable-line no-useless-escape
22422
+ const IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i // eslint-disable-line no-useless-escape
21498
22423
  );
21499
22424
  const IS_SCRIPT_OR_DATA = seal(/^(?:\w+script|data):/i);
21500
22425
  const ATTR_WHITESPACE = seal(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g // eslint-disable-line no-control-regex
@@ -21591,7 +22516,7 @@ module.exports.postProcess = function emphasis(state) {
21591
22516
  function createDOMPurify() {
21592
22517
  let window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();
21593
22518
  const DOMPurify = root => createDOMPurify(root);
21594
- DOMPurify.version = '3.2.6';
22519
+ DOMPurify.version = '3.2.5';
21595
22520
  DOMPurify.removed = [];
21596
22521
  if (!window || !window.document || window.document.nodeType !== NODE_TYPE.document || !window.Element) {
21597
22522
  // Not running in a browser, provide a factory function
@@ -21830,8 +22755,8 @@ module.exports.postProcess = function emphasis(state) {
21830
22755
  URI_SAFE_ATTRIBUTES = objectHasOwnProperty(cfg, 'ADD_URI_SAFE_ATTR') ? addToSet(clone(DEFAULT_URI_SAFE_ATTRIBUTES), cfg.ADD_URI_SAFE_ATTR, transformCaseFunc) : DEFAULT_URI_SAFE_ATTRIBUTES;
21831
22756
  DATA_URI_TAGS = objectHasOwnProperty(cfg, 'ADD_DATA_URI_TAGS') ? addToSet(clone(DEFAULT_DATA_URI_TAGS), cfg.ADD_DATA_URI_TAGS, transformCaseFunc) : DEFAULT_DATA_URI_TAGS;
21832
22757
  FORBID_CONTENTS = objectHasOwnProperty(cfg, 'FORBID_CONTENTS') ? addToSet({}, cfg.FORBID_CONTENTS, transformCaseFunc) : DEFAULT_FORBID_CONTENTS;
21833
- FORBID_TAGS = objectHasOwnProperty(cfg, 'FORBID_TAGS') ? addToSet({}, cfg.FORBID_TAGS, transformCaseFunc) : clone({});
21834
- FORBID_ATTR = objectHasOwnProperty(cfg, 'FORBID_ATTR') ? addToSet({}, cfg.FORBID_ATTR, transformCaseFunc) : clone({});
22758
+ FORBID_TAGS = objectHasOwnProperty(cfg, 'FORBID_TAGS') ? addToSet({}, cfg.FORBID_TAGS, transformCaseFunc) : {};
22759
+ FORBID_ATTR = objectHasOwnProperty(cfg, 'FORBID_ATTR') ? addToSet({}, cfg.FORBID_ATTR, transformCaseFunc) : {};
21835
22760
  USE_PROFILES = objectHasOwnProperty(cfg, 'USE_PROFILES') ? cfg.USE_PROFILES : false;
21836
22761
  ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true
21837
22762
  ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true
@@ -22196,7 +23121,7 @@ module.exports.postProcess = function emphasis(state) {
22196
23121
  allowedTags: ALLOWED_TAGS
22197
23122
  });
22198
23123
  /* Detect mXSS attempts abusing namespace confusion */
22199
- if (SAFE_FOR_XML && currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && regExpTest(/<[/\w!]/g, currentNode.innerHTML) && regExpTest(/<[/\w!]/g, currentNode.textContent)) {
23124
+ if (currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && regExpTest(/<[/\w!]/g, currentNode.innerHTML) && regExpTest(/<[/\w!]/g, currentNode.textContent)) {
22200
23125
  _forceRemove(currentNode);
22201
23126
  return true;
22202
23127
  }
@@ -22348,8 +23273,7 @@ module.exports.postProcess = function emphasis(state) {
22348
23273
  value: attrValue
22349
23274
  } = attr;
22350
23275
  const lcName = transformCaseFunc(name);
22351
- const initValue = attrValue;
22352
- let value = name === 'value' ? initValue : stringTrim(initValue);
23276
+ let value = name === 'value' ? attrValue : stringTrim(attrValue);
22353
23277
  /* Execute a hook if present */
22354
23278
  hookEvent.attrName = lcName;
22355
23279
  hookEvent.attrValue = value;
@@ -22375,9 +23299,10 @@ module.exports.postProcess = function emphasis(state) {
22375
23299
  if (hookEvent.forceKeepAttr) {
22376
23300
  continue;
22377
23301
  }
23302
+ /* Remove attribute */
23303
+ _removeAttribute(name, currentNode);
22378
23304
  /* Did the hooks approve of the attribute? */
22379
23305
  if (!hookEvent.keepAttr) {
22380
- _removeAttribute(name, currentNode);
22381
23306
  continue;
22382
23307
  }
22383
23308
  /* Work around a security issue in jQuery 3.0 */
@@ -22394,7 +23319,6 @@ module.exports.postProcess = function emphasis(state) {
22394
23319
  /* Is `value` valid for this attribute? */
22395
23320
  const lcTag = transformCaseFunc(currentNode.nodeName);
22396
23321
  if (!_isValidAttribute(lcTag, lcName, value)) {
22397
- _removeAttribute(name, currentNode);
22398
23322
  continue;
22399
23323
  }
22400
23324
  /* Handle attributes that require Trusted Types */
@@ -22415,23 +23339,19 @@ module.exports.postProcess = function emphasis(state) {
22415
23339
  }
22416
23340
  }
22417
23341
  /* Handle invalid data-* attribute set by try-catching it */
22418
- if (value !== initValue) {
22419
- try {
22420
- if (namespaceURI) {
22421
- currentNode.setAttributeNS(namespaceURI, name, value);
22422
- } else {
22423
- /* Fallback to setAttribute() for browser-unrecognized namespaces e.g. "x-schema". */
22424
- currentNode.setAttribute(name, value);
22425
- }
22426
- if (_isClobbered(currentNode)) {
22427
- _forceRemove(currentNode);
22428
- } else {
22429
- arrayPop(DOMPurify.removed);
22430
- }
22431
- } catch (_) {
22432
- _removeAttribute(name, currentNode);
23342
+ try {
23343
+ if (namespaceURI) {
23344
+ currentNode.setAttributeNS(namespaceURI, name, value);
23345
+ } else {
23346
+ /* Fallback to setAttribute() for browser-unrecognized namespaces e.g. "x-schema". */
23347
+ currentNode.setAttribute(name, value);
22433
23348
  }
22434
- }
23349
+ if (_isClobbered(currentNode)) {
23350
+ _forceRemove(currentNode);
23351
+ } else {
23352
+ arrayPop(DOMPurify.removed);
23353
+ }
23354
+ } catch (_) {}
22435
23355
  }
22436
23356
  /* Execute a hook if present */
22437
23357
  _executeHooks(hooks.afterSanitizeAttributes, currentNode, null);
@@ -22641,18 +23561,18 @@ module.exports.postProcess = function emphasis(state) {
22641
23561
 
22642
23562
 
22643
23563
  /***/ }),
22644
- /* 21 */
23564
+ /* 22 */
22645
23565
  /***/ (function(module, exports, __webpack_require__) {
22646
23566
 
22647
23567
  "use strict";
22648
23568
 
22649
23569
 
22650
23570
 
22651
- module.exports = __webpack_require__(28);
23571
+ module.exports = __webpack_require__(29);
22652
23572
 
22653
23573
 
22654
23574
  /***/ }),
22655
- /* 22 */
23575
+ /* 23 */
22656
23576
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
22657
23577
 
22658
23578
  "use strict";
@@ -22668,7 +23588,7 @@ ___CSS_LOADER_EXPORT___.push([module.i, "/**\n * prism.js default theme for Java
22668
23588
 
22669
23589
 
22670
23590
  /***/ }),
22671
- /* 23 */
23591
+ /* 24 */
22672
23592
  /***/ (function(module, exports) {
22673
23593
 
22674
23594
  module.exports = function(module) {
@@ -22696,7 +23616,7 @@ module.exports = function(module) {
22696
23616
 
22697
23617
 
22698
23618
  /***/ }),
22699
- /* 24 */
23619
+ /* 25 */
22700
23620
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
22701
23621
 
22702
23622
  "use strict";
@@ -22706,13 +23626,13 @@ module.exports = function(module) {
22706
23626
 
22707
23627
  var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]});
22708
23628
  // Module
22709
- ___CSS_LOADER_EXPORT___.push([module.i, ".el-x-filescard[data-v-10b2c201]{width:fit-content;padding:12px;display:flex;flex-wrap:nowrap;gap:8px;align-items:center;border-radius:8px;position:relative;background:rgba(0,0,0,0.06);max-width:var(--elx-files-card-max-width)}.el-x-filescard .el-x-filescard-progress[data-v-10b2c201]{position:absolute;top:0;left:0;bottom:0;background:rgba(0,0,0,0.08);border-radius:8px;transition:width 0.2s ease}.el-x-filescard .el-x-filescard-delete-icon[data-v-10b2c201]{position:absolute;top:-8px;right:-6px;cursor:pointer;color:rgba(0,0,0,0.4);display:none}.el-x-filescard .el-x-filescard-delete-icon[data-v-10b2c201]:hover{color:#ff4d4f}.el-x-filescard:hover .el-x-filescard-delete-icon[data-v-10b2c201]{display:block}.el-x-filescard-square[data-v-10b2c201]{padding:0;margin:0}.el-x-filescard-icon[data-v-10b2c201]{flex:none;font-size:var(--elx-files-card-icon-size)}.el-x-filescard-img[data-v-10b2c201]{flex:none;width:var(--elx-files-card-icon-size);height:var(--elx-files-card-icon-size);border-radius:8px;object-fit:cover}.el-x-filescard-content[data-v-10b2c201]{flex:auto;min-width:0;display:flex;flex-direction:column;align-items:stretch;justify-content:space-between;height:100%}.el-x-filescard-content .el-x-filescard-name[data-v-10b2c201]{display:flex;flex-wrap:nowrap;max-width:100%;font-size:14px}.el-x-filescard-content .el-x-filescard-name .el-x-filescard-name-prefix[data-v-10b2c201]{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-x-filescard-content .el-x-filescard-name .el-x-filescard-name-suffix[data-v-10b2c201]{flex:none}.el-x-filescard-content .el-x-filescard-description[data-v-10b2c201]{flex:none;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:rgba(0,0,0,0.4);font-size:12px}.el-x-filescard-content .el-x-filescard-description-error[data-v-10b2c201]{color:#ff4d4f}.image-preview-container[data-v-10b2c201]{position:relative;padding:0px;width:var(--elx-files-card-icon-size);height:var(--elx-files-card-icon-size);display:inline-block;border-radius:8px;overflow:hidden;transition:all 0.3s}.image-preview-container .preview-mask[data-v-10b2c201]{position:absolute;inset:0;width:100%;display:flex;justify-content:center;align-items:center;opacity:0;background:rgba(0,0,0,0.65);color:#fff;font-size:10px;transition:opacity 0.3s}.image-preview-container .preview-mask .el-icon-view[data-v-10b2c201]{font-size:10px;margin-right:2px;display:flex;align-items:center;height:100%;margin-top:2px}.image-preview-container .preview-mask[data-v-10b2c201]:hover{opacity:1;transition:opacity 0.3s;cursor:pointer}.image-preview-container-square .preview-mask[data-v-10b2c201]{font-size:14px}.image-preview-container-square .preview-mask .el-icon-view[data-v-10b2c201]{font-size:12px}.preview-mask-loading[data-v-10b2c201]{position:absolute;inset:0;width:100%;display:flex;justify-content:center;align-items:center;background:rgba(0,0,0,0.65);color:#fff;transition:all 0.3s}.preview-mask-loading .circle-progress[data-v-10b2c201]{width:100% !important;height:100% !important;display:flex;justify-content:center;align-items:center}.preview-mask-loading .circle-progress .el-progress-circle[data-v-10b2c201]{width:calc(100% - 12px) !important;height:calc(100% - 12px) !important}.preview-mask-loading .circle-progress .el-progress-circle svg>path[data-v-10b2c201]:nth-child(1){stroke:rgba(255,255,255,0.2);stroke-width:8px}.preview-mask-loading .circle-progress .el-progress__text[data-v-10b2c201]{color:#fff;font-size:14px}.preview-mask-error[data-v-10b2c201]{position:absolute;inset:0;width:100%;display:flex;justify-content:center;align-items:center;background:rgba(0,0,0,0.5);font-size:12px;transition:all 0.3s;color:#ff4d4f;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-image-viewer__progress[data-v-10b2c201]{display:none}.fade-enter-active[data-v-10b2c201],.fade-leave-active[data-v-10b2c201]{transition:opacity 0.3s}.fade-enter-from[data-v-10b2c201],.fade-leave-to[data-v-10b2c201]{opacity:0}\n", ""]);
23629
+ ___CSS_LOADER_EXPORT___.push([module.i, ".el-x-filescard[data-v-10b2c201]{width:fit-content;padding:12px;display:flex;flex-wrap:nowrap;gap:8px;align-items:center;border-radius:8px;position:relative;background:rgba(0,0,0,.06);max-width:var(--elx-files-card-max-width)}.el-x-filescard .el-x-filescard-progress[data-v-10b2c201]{position:absolute;top:0;left:0;bottom:0;background:rgba(0,0,0,.08);border-radius:8px;transition:width .2s ease}.el-x-filescard .el-x-filescard-delete-icon[data-v-10b2c201]{position:absolute;top:-8px;right:-6px;cursor:pointer;color:rgba(0,0,0,.4);display:none}.el-x-filescard .el-x-filescard-delete-icon[data-v-10b2c201]:hover{color:#ff4d4f}.el-x-filescard:hover .el-x-filescard-delete-icon[data-v-10b2c201]{display:block}.el-x-filescard-square[data-v-10b2c201]{padding:0;margin:0}.el-x-filescard-icon[data-v-10b2c201]{flex:none;font-size:var(--elx-files-card-icon-size)}.el-x-filescard-img[data-v-10b2c201]{flex:none;width:var(--elx-files-card-icon-size);height:var(--elx-files-card-icon-size);border-radius:8px;object-fit:cover}.el-x-filescard-content[data-v-10b2c201]{flex:auto;min-width:0;display:flex;flex-direction:column;align-items:stretch;justify-content:space-between;height:100%}.el-x-filescard-content .el-x-filescard-name[data-v-10b2c201]{display:flex;flex-wrap:nowrap;max-width:100%;font-size:14px}.el-x-filescard-content .el-x-filescard-name .el-x-filescard-name-prefix[data-v-10b2c201]{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-x-filescard-content .el-x-filescard-name .el-x-filescard-name-suffix[data-v-10b2c201]{flex:none}.el-x-filescard-content .el-x-filescard-description[data-v-10b2c201]{flex:none;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:rgba(0,0,0,.4);font-size:12px}.el-x-filescard-content .el-x-filescard-description-error[data-v-10b2c201]{color:#ff4d4f}.image-preview-container[data-v-10b2c201]{position:relative;padding:0px;width:var(--elx-files-card-icon-size);height:var(--elx-files-card-icon-size);display:inline-block;border-radius:8px;overflow:hidden;transition:all .3s}.image-preview-container .preview-mask[data-v-10b2c201]{position:absolute;inset:0;width:100%;display:flex;justify-content:center;align-items:center;opacity:0;background:rgba(0,0,0,.65);color:#fff;font-size:10px;transition:opacity .3s}.image-preview-container .preview-mask .el-icon-view[data-v-10b2c201]{font-size:10px;margin-right:2px;display:flex;align-items:center;height:100%;margin-top:2px}.image-preview-container .preview-mask[data-v-10b2c201]:hover{opacity:1;transition:opacity .3s;cursor:pointer}.image-preview-container-square .preview-mask[data-v-10b2c201]{font-size:14px}.image-preview-container-square .preview-mask .el-icon-view[data-v-10b2c201]{font-size:12px}.preview-mask-loading[data-v-10b2c201]{position:absolute;inset:0;width:100%;display:flex;justify-content:center;align-items:center;background:rgba(0,0,0,.65);color:#fff;transition:all .3s}.preview-mask-loading .circle-progress[data-v-10b2c201]{width:100% !important;height:100% !important;display:flex;justify-content:center;align-items:center}.preview-mask-loading .circle-progress .el-progress-circle[data-v-10b2c201]{width:calc(100% - 12px) !important;height:calc(100% - 12px) !important}.preview-mask-loading .circle-progress .el-progress-circle svg>path[data-v-10b2c201]:nth-child(1){stroke:hsla(0,0%,100%,.2);stroke-width:8px}.preview-mask-loading .circle-progress .el-progress__text[data-v-10b2c201]{color:#fff;font-size:14px}.preview-mask-error[data-v-10b2c201]{position:absolute;inset:0;width:100%;display:flex;justify-content:center;align-items:center;background:rgba(0,0,0,.5);font-size:12px;transition:all .3s;color:#ff4d4f;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-image-viewer__progress[data-v-10b2c201]{display:none}.fade-enter-active[data-v-10b2c201],.fade-leave-active[data-v-10b2c201]{transition:opacity .3s}.fade-enter-from[data-v-10b2c201],.fade-leave-to[data-v-10b2c201]{opacity:0}", ""]);
22710
23630
  // Exports
22711
23631
  /* harmony default export */ __webpack_exports__["a"] = (___CSS_LOADER_EXPORT___);
22712
23632
 
22713
23633
 
22714
23634
  /***/ }),
22715
- /* 25 */
23635
+ /* 26 */
22716
23636
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
22717
23637
 
22718
23638
  "use strict";
@@ -22722,13 +23642,13 @@ ___CSS_LOADER_EXPORT___.push([module.i, ".el-x-filescard[data-v-10b2c201]{width:
22722
23642
 
22723
23643
  var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]});
22724
23644
  // Module
22725
- ___CSS_LOADER_EXPORT___.push([module.i, "[data-v-716e941e]:root{--color-primary: #409EFF;--color-success: #67C23A;--color-warning: #E6A23C;--color-danger: #F56C6C;--color-info: #909399}.el-x-bubble[data-v-716e941e]{display:flex;gap:var(--el-x-bubble-avatar-placeholder-gap)}.el-x-bubble-avatar-size[data-v-716e941e] .el-avatar{width:var(--el-x-bubble-avatar-placeholder-width);height:var(--el-x-bubble-avatar-placeholder-height)}.el-x-bubble-avatar-placeholder[data-v-716e941e]{width:var(--el-x-bubble-avatar-placeholder-width);height:var(--el-x-bubble-avatar-placeholder-height)}.el-x-bubble-start .el-x-bubble-content-wrapper .el-x-bubble-content-corner[data-v-716e941e]{border-start-start-radius:calc($--el-x-border-radius-base - 2px)}.el-x-bubble-end[data-v-716e941e]{justify-content:end;flex-direction:row-reverse}.el-x-bubble-end .el-x-bubble-content-wrapper[data-v-716e941e]{align-items:flex-end}.el-x-bubble-end .el-x-bubble-content-wrapper .el-x-bubble-content-corner[data-v-716e941e]{border-start-end-radius:calc($--el-x-border-radius-base - 2px)}.el-x-bubble-no-style .el-x-bubble-content-wrapper .el-x-bubble-content[data-v-716e941e]{background-color:transparent;padding:0}.el-x-bubble-content-wrapper[data-v-716e941e]{flex:auto;display:flex;flex-direction:column;align-items:flex-start;min-width:0;max-width:100%}.el-x-bubble-content-wrapper .el-x-bubble-header[data-v-716e941e],.el-x-bubble-content-wrapper .el-x-bubble-content[data-v-716e941e],.el-x-bubble-content-wrapper .el-x-bubble-footer[data-v-716e941e]{font-size:14px;color:#303133;line-height:24px}.el-x-bubble-content-wrapper .el-x-bubble-content[data-v-716e941e]{background-color:#edf2fc;padding:12px 18px;border-radius:calc($--el-x-border-radius-base + 4px);position:relative;box-sizing:border-box;min-width:0;max-width:var(--bubble-content-max-width);color:#303133;font-size:14px;line-height:24px;word-break:break-word}.el-x-bubble-content-wrapper .el-x-bubble-content .no-content[data-v-716e941e]{height:0}.el-x-bubble-content-wrapper .el-x-bubble-content-round[data-v-716e941e]{border-radius:20px}.el-x-bubble-content-wrapper .el-x-bubble-content-filled[data-v-716e941e]{background-color:#edf2fc}.el-x-bubble-content-wrapper .el-x-bubble-content-borderless[data-v-716e941e]{background-color:#edf2fc;border:1px solid #DCDFE6}.el-x-bubble-content-wrapper .el-x-bubble-content-outlined[data-v-716e941e]{background:none;border:1px solid #DCDFE6}.el-x-bubble-content-wrapper .el-x-bubble-content-shadow[data-v-716e941e]{background:none;box-shadow:0 2px 4px rgba(0,0,0,0.12),0 0 6px rgba(0,0,0,0.04)}.el-x-bubble-content-wrapper .el-x-bubble-content-loading[data-v-716e941e]{width:fit-content}.el-x-bubble-content-wrapper .el-x-bubble-content-loading .el-x-bubble-loading-wrap[data-v-716e941e]{display:flex;justify-content:center;align-items:center;gap:5px}.el-x-bubble-content-wrapper .el-x-bubble-content-loading .dot[data-v-716e941e]{width:5px;height:5px;background-color:#409EFF;border-radius:50%;animation:wave-716e941e 1s infinite ease-in-out}@keyframes wave-716e941e{0%,100%{transform:translateY(-2px)}50%{transform:translateY(2px)}}.el-x-bubble-content-wrapper .el-x-bubble-footer[data-v-716e941e]{margin-top:8px}\n", ""]);
23645
+ ___CSS_LOADER_EXPORT___.push([module.i, "[data-v-716e941e]:root{--color-primary: #409EFF;--color-success: #67C23A;--color-warning: #E6A23C;--color-danger: #F56C6C;--color-info: #909399}.el-x-bubble[data-v-716e941e]{display:flex;gap:var(--el-x-bubble-avatar-placeholder-gap)}.el-x-bubble-avatar-size[data-v-716e941e] .el-avatar{width:var(--el-x-bubble-avatar-placeholder-width);height:var(--el-x-bubble-avatar-placeholder-height)}.el-x-bubble-avatar-placeholder[data-v-716e941e]{width:var(--el-x-bubble-avatar-placeholder-width);height:var(--el-x-bubble-avatar-placeholder-height)}.el-x-bubble-start .el-x-bubble-content-wrapper .el-x-bubble-content-corner[data-v-716e941e]{border-start-start-radius:2px}.el-x-bubble-end[data-v-716e941e]{justify-content:end;flex-direction:row-reverse}.el-x-bubble-end .el-x-bubble-content-wrapper[data-v-716e941e]{align-items:flex-end}.el-x-bubble-end .el-x-bubble-content-wrapper .el-x-bubble-content-corner[data-v-716e941e]{border-start-end-radius:2px}.el-x-bubble-no-style .el-x-bubble-content-wrapper .el-x-bubble-content[data-v-716e941e]{background-color:rgba(0,0,0,0);padding:0}.el-x-bubble-content-wrapper[data-v-716e941e]{flex:auto;display:flex;flex-direction:column;align-items:flex-start;min-width:0;max-width:100%}.el-x-bubble-content-wrapper .el-x-bubble-header[data-v-716e941e],.el-x-bubble-content-wrapper .el-x-bubble-content[data-v-716e941e],.el-x-bubble-content-wrapper .el-x-bubble-footer[data-v-716e941e]{font-size:14px;color:#303133;line-height:24px}.el-x-bubble-content-wrapper .el-x-bubble-content[data-v-716e941e]{background-color:#edf2fc;padding:12px 18px;border-radius:8px;position:relative;box-sizing:border-box;min-width:0;max-width:var(--bubble-content-max-width);color:#303133;font-size:14px;line-height:24px;word-break:break-word}.el-x-bubble-content-wrapper .el-x-bubble-content .no-content[data-v-716e941e]{height:0}.el-x-bubble-content-wrapper .el-x-bubble-content-round[data-v-716e941e]{border-radius:20px}.el-x-bubble-content-wrapper .el-x-bubble-content-filled[data-v-716e941e]{background-color:#edf2fc}.el-x-bubble-content-wrapper .el-x-bubble-content-borderless[data-v-716e941e]{background-color:#edf2fc;border:1px solid #dcdfe6}.el-x-bubble-content-wrapper .el-x-bubble-content-outlined[data-v-716e941e]{background:none;border:1px solid #dcdfe6}.el-x-bubble-content-wrapper .el-x-bubble-content-shadow[data-v-716e941e]{background:none;box-shadow:0 2px 4px rgba(0,0,0,.12),0 0 6px rgba(0,0,0,.04)}.el-x-bubble-content-wrapper .el-x-bubble-content-loading[data-v-716e941e]{width:fit-content}.el-x-bubble-content-wrapper .el-x-bubble-content-loading .el-x-bubble-loading-wrap[data-v-716e941e]{display:flex;justify-content:center;align-items:center;gap:5px}.el-x-bubble-content-wrapper .el-x-bubble-content-loading .dot[data-v-716e941e]{width:5px;height:5px;background-color:#409eff;border-radius:50%;animation:wave-716e941e 1s infinite ease-in-out}@keyframes wave-716e941e{0%,100%{transform:translateY(-2px)}50%{transform:translateY(2px)}}.el-x-bubble-content-wrapper .el-x-bubble-footer[data-v-716e941e]{margin-top:8px}", ""]);
22726
23646
  // Exports
22727
23647
  /* harmony default export */ __webpack_exports__["a"] = (___CSS_LOADER_EXPORT___);
22728
23648
 
22729
23649
 
22730
23650
  /***/ }),
22731
- /* 26 */
23651
+ /* 27 */
22732
23652
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
22733
23653
 
22734
23654
  "use strict";
@@ -24574,7 +25494,7 @@ var injectStylesIntoStyleTag = __webpack_require__(3);
24574
25494
  var injectStylesIntoStyleTag_default = /*#__PURE__*/__webpack_require__.n(injectStylesIntoStyleTag);
24575
25495
 
24576
25496
  // EXTERNAL MODULE: ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib??vue-loader-options!./src/components/FilesCard/src/main.vue?vue&type=style&index=0&id=10b2c201&prod&lang=scss&scoped=true
24577
- var mainvue_type_style_index_0_id_10b2c201_prod_lang_scss_scoped_true = __webpack_require__(24);
25497
+ var mainvue_type_style_index_0_id_10b2c201_prod_lang_scss_scoped_true = __webpack_require__(25);
24578
25498
 
24579
25499
  // CONCATENATED MODULE: ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib??vue-loader-options!./src/components/FilesCard/src/main.vue?vue&type=style&index=0&id=10b2c201&prod&lang=scss&scoped=true
24580
25500
 
@@ -24623,7 +25543,7 @@ main.install = function (Vue) {
24623
25543
  /* harmony default export */ var FilesCard = __webpack_exports__["default"] = (main);
24624
25544
 
24625
25545
  /***/ }),
24626
- /* 27 */
25546
+ /* 28 */
24627
25547
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
24628
25548
 
24629
25549
  "use strict";
@@ -24724,7 +25644,7 @@ render._withStripped = true;
24724
25644
  // CONCATENATED MODULE: ./src/components/Bubble/src/main.vue?vue&type=template&id=716e941e&scoped=true
24725
25645
 
24726
25646
  // EXTERNAL MODULE: ./src/components/Typewriter/index.js + 7 modules
24727
- var Typewriter = __webpack_require__(11);
25647
+ var Typewriter = __webpack_require__(12);
24728
25648
 
24729
25649
  // CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Bubble/src/main.vue?vue&type=script&lang=js
24730
25650
 
@@ -24895,7 +25815,7 @@ var injectStylesIntoStyleTag = __webpack_require__(3);
24895
25815
  var injectStylesIntoStyleTag_default = /*#__PURE__*/__webpack_require__.n(injectStylesIntoStyleTag);
24896
25816
 
24897
25817
  // EXTERNAL MODULE: ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Bubble/src/main.vue?vue&type=style&index=0&id=716e941e&prod&lang=scss&scoped=true
24898
- var mainvue_type_style_index_0_id_716e941e_prod_lang_scss_scoped_true = __webpack_require__(25);
25818
+ var mainvue_type_style_index_0_id_716e941e_prod_lang_scss_scoped_true = __webpack_require__(26);
24899
25819
 
24900
25820
  // CONCATENATED MODULE: ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Bubble/src/main.vue?vue&type=style&index=0&id=716e941e&prod&lang=scss&scoped=true
24901
25821
 
@@ -24946,7 +25866,7 @@ main.install = function (Vue) {
24946
25866
  /* harmony default export */ var Bubble = __webpack_exports__["default"] = (main);
24947
25867
 
24948
25868
  /***/ }),
24949
- /* 28 */
25869
+ /* 29 */
24950
25870
  /***/ (function(module, exports, __webpack_require__) {
24951
25871
 
24952
25872
  "use strict";
@@ -24956,20 +25876,20 @@ main.install = function (Vue) {
24956
25876
 
24957
25877
 
24958
25878
  var utils = __webpack_require__(1);
24959
- var helpers = __webpack_require__(36);
24960
- var Renderer = __webpack_require__(40);
24961
- var ParserCore = __webpack_require__(41);
24962
- var ParserBlock = __webpack_require__(49);
24963
- var ParserInline = __webpack_require__(63);
24964
- var LinkifyIt = __webpack_require__(76);
24965
- var mdurl = __webpack_require__(13);
24966
- var punycode = __webpack_require__(78);
25879
+ var helpers = __webpack_require__(37);
25880
+ var Renderer = __webpack_require__(41);
25881
+ var ParserCore = __webpack_require__(42);
25882
+ var ParserBlock = __webpack_require__(50);
25883
+ var ParserInline = __webpack_require__(64);
25884
+ var LinkifyIt = __webpack_require__(77);
25885
+ var mdurl = __webpack_require__(14);
25886
+ var punycode = __webpack_require__(79);
24967
25887
 
24968
25888
 
24969
25889
  var config = {
24970
- default: __webpack_require__(79),
24971
- zero: __webpack_require__(80),
24972
- commonmark: __webpack_require__(81)
25890
+ default: __webpack_require__(80),
25891
+ zero: __webpack_require__(81),
25892
+ commonmark: __webpack_require__(82)
24973
25893
  };
24974
25894
 
24975
25895
  ////////////////////////////////////////////////////////////////////////////////
@@ -25535,13 +26455,13 @@ module.exports = MarkdownIt;
25535
26455
 
25536
26456
 
25537
26457
  /***/ }),
25538
- /* 29 */
26458
+ /* 30 */
25539
26459
  /***/ (function(module) {
25540
26460
 
25541
26461
  module.exports = JSON.parse("{\"Aacute\":\"Á\",\"aacute\":\"á\",\"Abreve\":\"Ă\",\"abreve\":\"ă\",\"ac\":\"∾\",\"acd\":\"∿\",\"acE\":\"∾̳\",\"Acirc\":\"Â\",\"acirc\":\"â\",\"acute\":\"´\",\"Acy\":\"А\",\"acy\":\"а\",\"AElig\":\"Æ\",\"aelig\":\"æ\",\"af\":\"⁡\",\"Afr\":\"𝔄\",\"afr\":\"𝔞\",\"Agrave\":\"À\",\"agrave\":\"à\",\"alefsym\":\"ℵ\",\"aleph\":\"ℵ\",\"Alpha\":\"Α\",\"alpha\":\"α\",\"Amacr\":\"Ā\",\"amacr\":\"ā\",\"amalg\":\"⨿\",\"amp\":\"&\",\"AMP\":\"&\",\"andand\":\"⩕\",\"And\":\"⩓\",\"and\":\"∧\",\"andd\":\"⩜\",\"andslope\":\"⩘\",\"andv\":\"⩚\",\"ang\":\"∠\",\"ange\":\"⦤\",\"angle\":\"∠\",\"angmsdaa\":\"⦨\",\"angmsdab\":\"⦩\",\"angmsdac\":\"⦪\",\"angmsdad\":\"⦫\",\"angmsdae\":\"⦬\",\"angmsdaf\":\"⦭\",\"angmsdag\":\"⦮\",\"angmsdah\":\"⦯\",\"angmsd\":\"∡\",\"angrt\":\"∟\",\"angrtvb\":\"⊾\",\"angrtvbd\":\"⦝\",\"angsph\":\"∢\",\"angst\":\"Å\",\"angzarr\":\"⍼\",\"Aogon\":\"Ą\",\"aogon\":\"ą\",\"Aopf\":\"𝔸\",\"aopf\":\"𝕒\",\"apacir\":\"⩯\",\"ap\":\"≈\",\"apE\":\"⩰\",\"ape\":\"≊\",\"apid\":\"≋\",\"apos\":\"'\",\"ApplyFunction\":\"⁡\",\"approx\":\"≈\",\"approxeq\":\"≊\",\"Aring\":\"Å\",\"aring\":\"å\",\"Ascr\":\"𝒜\",\"ascr\":\"𝒶\",\"Assign\":\"≔\",\"ast\":\"*\",\"asymp\":\"≈\",\"asympeq\":\"≍\",\"Atilde\":\"Ã\",\"atilde\":\"ã\",\"Auml\":\"Ä\",\"auml\":\"ä\",\"awconint\":\"∳\",\"awint\":\"⨑\",\"backcong\":\"≌\",\"backepsilon\":\"϶\",\"backprime\":\"‵\",\"backsim\":\"∽\",\"backsimeq\":\"⋍\",\"Backslash\":\"∖\",\"Barv\":\"⫧\",\"barvee\":\"⊽\",\"barwed\":\"⌅\",\"Barwed\":\"⌆\",\"barwedge\":\"⌅\",\"bbrk\":\"⎵\",\"bbrktbrk\":\"⎶\",\"bcong\":\"≌\",\"Bcy\":\"Б\",\"bcy\":\"б\",\"bdquo\":\"„\",\"becaus\":\"∵\",\"because\":\"∵\",\"Because\":\"∵\",\"bemptyv\":\"⦰\",\"bepsi\":\"϶\",\"bernou\":\"ℬ\",\"Bernoullis\":\"ℬ\",\"Beta\":\"Β\",\"beta\":\"β\",\"beth\":\"ℶ\",\"between\":\"≬\",\"Bfr\":\"𝔅\",\"bfr\":\"𝔟\",\"bigcap\":\"⋂\",\"bigcirc\":\"◯\",\"bigcup\":\"⋃\",\"bigodot\":\"⨀\",\"bigoplus\":\"⨁\",\"bigotimes\":\"⨂\",\"bigsqcup\":\"⨆\",\"bigstar\":\"★\",\"bigtriangledown\":\"▽\",\"bigtriangleup\":\"△\",\"biguplus\":\"⨄\",\"bigvee\":\"⋁\",\"bigwedge\":\"⋀\",\"bkarow\":\"⤍\",\"blacklozenge\":\"⧫\",\"blacksquare\":\"▪\",\"blacktriangle\":\"▴\",\"blacktriangledown\":\"▾\",\"blacktriangleleft\":\"◂\",\"blacktriangleright\":\"▸\",\"blank\":\"␣\",\"blk12\":\"▒\",\"blk14\":\"░\",\"blk34\":\"▓\",\"block\":\"█\",\"bne\":\"=⃥\",\"bnequiv\":\"≡⃥\",\"bNot\":\"⫭\",\"bnot\":\"⌐\",\"Bopf\":\"𝔹\",\"bopf\":\"𝕓\",\"bot\":\"⊥\",\"bottom\":\"⊥\",\"bowtie\":\"⋈\",\"boxbox\":\"⧉\",\"boxdl\":\"┐\",\"boxdL\":\"╕\",\"boxDl\":\"╖\",\"boxDL\":\"╗\",\"boxdr\":\"┌\",\"boxdR\":\"╒\",\"boxDr\":\"╓\",\"boxDR\":\"╔\",\"boxh\":\"─\",\"boxH\":\"═\",\"boxhd\":\"┬\",\"boxHd\":\"╤\",\"boxhD\":\"╥\",\"boxHD\":\"╦\",\"boxhu\":\"┴\",\"boxHu\":\"╧\",\"boxhU\":\"╨\",\"boxHU\":\"╩\",\"boxminus\":\"⊟\",\"boxplus\":\"⊞\",\"boxtimes\":\"⊠\",\"boxul\":\"┘\",\"boxuL\":\"╛\",\"boxUl\":\"╜\",\"boxUL\":\"╝\",\"boxur\":\"└\",\"boxuR\":\"╘\",\"boxUr\":\"╙\",\"boxUR\":\"╚\",\"boxv\":\"│\",\"boxV\":\"║\",\"boxvh\":\"┼\",\"boxvH\":\"╪\",\"boxVh\":\"╫\",\"boxVH\":\"╬\",\"boxvl\":\"┤\",\"boxvL\":\"╡\",\"boxVl\":\"╢\",\"boxVL\":\"╣\",\"boxvr\":\"├\",\"boxvR\":\"╞\",\"boxVr\":\"╟\",\"boxVR\":\"╠\",\"bprime\":\"‵\",\"breve\":\"˘\",\"Breve\":\"˘\",\"brvbar\":\"¦\",\"bscr\":\"𝒷\",\"Bscr\":\"ℬ\",\"bsemi\":\"⁏\",\"bsim\":\"∽\",\"bsime\":\"⋍\",\"bsolb\":\"⧅\",\"bsol\":\"\\\\\",\"bsolhsub\":\"⟈\",\"bull\":\"•\",\"bullet\":\"•\",\"bump\":\"≎\",\"bumpE\":\"⪮\",\"bumpe\":\"≏\",\"Bumpeq\":\"≎\",\"bumpeq\":\"≏\",\"Cacute\":\"Ć\",\"cacute\":\"ć\",\"capand\":\"⩄\",\"capbrcup\":\"⩉\",\"capcap\":\"⩋\",\"cap\":\"∩\",\"Cap\":\"⋒\",\"capcup\":\"⩇\",\"capdot\":\"⩀\",\"CapitalDifferentialD\":\"ⅅ\",\"caps\":\"∩︀\",\"caret\":\"⁁\",\"caron\":\"ˇ\",\"Cayleys\":\"ℭ\",\"ccaps\":\"⩍\",\"Ccaron\":\"Č\",\"ccaron\":\"č\",\"Ccedil\":\"Ç\",\"ccedil\":\"ç\",\"Ccirc\":\"Ĉ\",\"ccirc\":\"ĉ\",\"Cconint\":\"∰\",\"ccups\":\"⩌\",\"ccupssm\":\"⩐\",\"Cdot\":\"Ċ\",\"cdot\":\"ċ\",\"cedil\":\"¸\",\"Cedilla\":\"¸\",\"cemptyv\":\"⦲\",\"cent\":\"¢\",\"centerdot\":\"·\",\"CenterDot\":\"·\",\"cfr\":\"𝔠\",\"Cfr\":\"ℭ\",\"CHcy\":\"Ч\",\"chcy\":\"ч\",\"check\":\"✓\",\"checkmark\":\"✓\",\"Chi\":\"Χ\",\"chi\":\"χ\",\"circ\":\"ˆ\",\"circeq\":\"≗\",\"circlearrowleft\":\"↺\",\"circlearrowright\":\"↻\",\"circledast\":\"⊛\",\"circledcirc\":\"⊚\",\"circleddash\":\"⊝\",\"CircleDot\":\"⊙\",\"circledR\":\"®\",\"circledS\":\"Ⓢ\",\"CircleMinus\":\"⊖\",\"CirclePlus\":\"⊕\",\"CircleTimes\":\"⊗\",\"cir\":\"○\",\"cirE\":\"⧃\",\"cire\":\"≗\",\"cirfnint\":\"⨐\",\"cirmid\":\"⫯\",\"cirscir\":\"⧂\",\"ClockwiseContourIntegral\":\"∲\",\"CloseCurlyDoubleQuote\":\"”\",\"CloseCurlyQuote\":\"’\",\"clubs\":\"♣\",\"clubsuit\":\"♣\",\"colon\":\":\",\"Colon\":\"∷\",\"Colone\":\"⩴\",\"colone\":\"≔\",\"coloneq\":\"≔\",\"comma\":\",\",\"commat\":\"@\",\"comp\":\"∁\",\"compfn\":\"∘\",\"complement\":\"∁\",\"complexes\":\"ℂ\",\"cong\":\"≅\",\"congdot\":\"⩭\",\"Congruent\":\"≡\",\"conint\":\"∮\",\"Conint\":\"∯\",\"ContourIntegral\":\"∮\",\"copf\":\"𝕔\",\"Copf\":\"ℂ\",\"coprod\":\"∐\",\"Coproduct\":\"∐\",\"copy\":\"©\",\"COPY\":\"©\",\"copysr\":\"℗\",\"CounterClockwiseContourIntegral\":\"∳\",\"crarr\":\"↵\",\"cross\":\"✗\",\"Cross\":\"⨯\",\"Cscr\":\"𝒞\",\"cscr\":\"𝒸\",\"csub\":\"⫏\",\"csube\":\"⫑\",\"csup\":\"⫐\",\"csupe\":\"⫒\",\"ctdot\":\"⋯\",\"cudarrl\":\"⤸\",\"cudarrr\":\"⤵\",\"cuepr\":\"⋞\",\"cuesc\":\"⋟\",\"cularr\":\"↶\",\"cularrp\":\"⤽\",\"cupbrcap\":\"⩈\",\"cupcap\":\"⩆\",\"CupCap\":\"≍\",\"cup\":\"∪\",\"Cup\":\"⋓\",\"cupcup\":\"⩊\",\"cupdot\":\"⊍\",\"cupor\":\"⩅\",\"cups\":\"∪︀\",\"curarr\":\"↷\",\"curarrm\":\"⤼\",\"curlyeqprec\":\"⋞\",\"curlyeqsucc\":\"⋟\",\"curlyvee\":\"⋎\",\"curlywedge\":\"⋏\",\"curren\":\"¤\",\"curvearrowleft\":\"↶\",\"curvearrowright\":\"↷\",\"cuvee\":\"⋎\",\"cuwed\":\"⋏\",\"cwconint\":\"∲\",\"cwint\":\"∱\",\"cylcty\":\"⌭\",\"dagger\":\"†\",\"Dagger\":\"‡\",\"daleth\":\"ℸ\",\"darr\":\"↓\",\"Darr\":\"↡\",\"dArr\":\"⇓\",\"dash\":\"‐\",\"Dashv\":\"⫤\",\"dashv\":\"⊣\",\"dbkarow\":\"⤏\",\"dblac\":\"˝\",\"Dcaron\":\"Ď\",\"dcaron\":\"ď\",\"Dcy\":\"Д\",\"dcy\":\"д\",\"ddagger\":\"‡\",\"ddarr\":\"⇊\",\"DD\":\"ⅅ\",\"dd\":\"ⅆ\",\"DDotrahd\":\"⤑\",\"ddotseq\":\"⩷\",\"deg\":\"°\",\"Del\":\"∇\",\"Delta\":\"Δ\",\"delta\":\"δ\",\"demptyv\":\"⦱\",\"dfisht\":\"⥿\",\"Dfr\":\"𝔇\",\"dfr\":\"𝔡\",\"dHar\":\"⥥\",\"dharl\":\"⇃\",\"dharr\":\"⇂\",\"DiacriticalAcute\":\"´\",\"DiacriticalDot\":\"˙\",\"DiacriticalDoubleAcute\":\"˝\",\"DiacriticalGrave\":\"`\",\"DiacriticalTilde\":\"˜\",\"diam\":\"⋄\",\"diamond\":\"⋄\",\"Diamond\":\"⋄\",\"diamondsuit\":\"♦\",\"diams\":\"♦\",\"die\":\"¨\",\"DifferentialD\":\"ⅆ\",\"digamma\":\"ϝ\",\"disin\":\"⋲\",\"div\":\"÷\",\"divide\":\"÷\",\"divideontimes\":\"⋇\",\"divonx\":\"⋇\",\"DJcy\":\"Ђ\",\"djcy\":\"ђ\",\"dlcorn\":\"⌞\",\"dlcrop\":\"⌍\",\"dollar\":\"$\",\"Dopf\":\"𝔻\",\"dopf\":\"𝕕\",\"Dot\":\"¨\",\"dot\":\"˙\",\"DotDot\":\"⃜\",\"doteq\":\"≐\",\"doteqdot\":\"≑\",\"DotEqual\":\"≐\",\"dotminus\":\"∸\",\"dotplus\":\"∔\",\"dotsquare\":\"⊡\",\"doublebarwedge\":\"⌆\",\"DoubleContourIntegral\":\"∯\",\"DoubleDot\":\"¨\",\"DoubleDownArrow\":\"⇓\",\"DoubleLeftArrow\":\"⇐\",\"DoubleLeftRightArrow\":\"⇔\",\"DoubleLeftTee\":\"⫤\",\"DoubleLongLeftArrow\":\"⟸\",\"DoubleLongLeftRightArrow\":\"⟺\",\"DoubleLongRightArrow\":\"⟹\",\"DoubleRightArrow\":\"⇒\",\"DoubleRightTee\":\"⊨\",\"DoubleUpArrow\":\"⇑\",\"DoubleUpDownArrow\":\"⇕\",\"DoubleVerticalBar\":\"∥\",\"DownArrowBar\":\"⤓\",\"downarrow\":\"↓\",\"DownArrow\":\"↓\",\"Downarrow\":\"⇓\",\"DownArrowUpArrow\":\"⇵\",\"DownBreve\":\"̑\",\"downdownarrows\":\"⇊\",\"downharpoonleft\":\"⇃\",\"downharpoonright\":\"⇂\",\"DownLeftRightVector\":\"⥐\",\"DownLeftTeeVector\":\"⥞\",\"DownLeftVectorBar\":\"⥖\",\"DownLeftVector\":\"↽\",\"DownRightTeeVector\":\"⥟\",\"DownRightVectorBar\":\"⥗\",\"DownRightVector\":\"⇁\",\"DownTeeArrow\":\"↧\",\"DownTee\":\"⊤\",\"drbkarow\":\"⤐\",\"drcorn\":\"⌟\",\"drcrop\":\"⌌\",\"Dscr\":\"𝒟\",\"dscr\":\"𝒹\",\"DScy\":\"Ѕ\",\"dscy\":\"ѕ\",\"dsol\":\"⧶\",\"Dstrok\":\"Đ\",\"dstrok\":\"đ\",\"dtdot\":\"⋱\",\"dtri\":\"▿\",\"dtrif\":\"▾\",\"duarr\":\"⇵\",\"duhar\":\"⥯\",\"dwangle\":\"⦦\",\"DZcy\":\"Џ\",\"dzcy\":\"џ\",\"dzigrarr\":\"⟿\",\"Eacute\":\"É\",\"eacute\":\"é\",\"easter\":\"⩮\",\"Ecaron\":\"Ě\",\"ecaron\":\"ě\",\"Ecirc\":\"Ê\",\"ecirc\":\"ê\",\"ecir\":\"≖\",\"ecolon\":\"≕\",\"Ecy\":\"Э\",\"ecy\":\"э\",\"eDDot\":\"⩷\",\"Edot\":\"Ė\",\"edot\":\"ė\",\"eDot\":\"≑\",\"ee\":\"ⅇ\",\"efDot\":\"≒\",\"Efr\":\"𝔈\",\"efr\":\"𝔢\",\"eg\":\"⪚\",\"Egrave\":\"È\",\"egrave\":\"è\",\"egs\":\"⪖\",\"egsdot\":\"⪘\",\"el\":\"⪙\",\"Element\":\"∈\",\"elinters\":\"⏧\",\"ell\":\"ℓ\",\"els\":\"⪕\",\"elsdot\":\"⪗\",\"Emacr\":\"Ē\",\"emacr\":\"ē\",\"empty\":\"∅\",\"emptyset\":\"∅\",\"EmptySmallSquare\":\"◻\",\"emptyv\":\"∅\",\"EmptyVerySmallSquare\":\"▫\",\"emsp13\":\" \",\"emsp14\":\" \",\"emsp\":\" \",\"ENG\":\"Ŋ\",\"eng\":\"ŋ\",\"ensp\":\" \",\"Eogon\":\"Ę\",\"eogon\":\"ę\",\"Eopf\":\"𝔼\",\"eopf\":\"𝕖\",\"epar\":\"⋕\",\"eparsl\":\"⧣\",\"eplus\":\"⩱\",\"epsi\":\"ε\",\"Epsilon\":\"Ε\",\"epsilon\":\"ε\",\"epsiv\":\"ϵ\",\"eqcirc\":\"≖\",\"eqcolon\":\"≕\",\"eqsim\":\"≂\",\"eqslantgtr\":\"⪖\",\"eqslantless\":\"⪕\",\"Equal\":\"⩵\",\"equals\":\"=\",\"EqualTilde\":\"≂\",\"equest\":\"≟\",\"Equilibrium\":\"⇌\",\"equiv\":\"≡\",\"equivDD\":\"⩸\",\"eqvparsl\":\"⧥\",\"erarr\":\"⥱\",\"erDot\":\"≓\",\"escr\":\"ℯ\",\"Escr\":\"ℰ\",\"esdot\":\"≐\",\"Esim\":\"⩳\",\"esim\":\"≂\",\"Eta\":\"Η\",\"eta\":\"η\",\"ETH\":\"Ð\",\"eth\":\"ð\",\"Euml\":\"Ë\",\"euml\":\"ë\",\"euro\":\"€\",\"excl\":\"!\",\"exist\":\"∃\",\"Exists\":\"∃\",\"expectation\":\"ℰ\",\"exponentiale\":\"ⅇ\",\"ExponentialE\":\"ⅇ\",\"fallingdotseq\":\"≒\",\"Fcy\":\"Ф\",\"fcy\":\"ф\",\"female\":\"♀\",\"ffilig\":\"ffi\",\"fflig\":\"ff\",\"ffllig\":\"ffl\",\"Ffr\":\"𝔉\",\"ffr\":\"𝔣\",\"filig\":\"fi\",\"FilledSmallSquare\":\"◼\",\"FilledVerySmallSquare\":\"▪\",\"fjlig\":\"fj\",\"flat\":\"♭\",\"fllig\":\"fl\",\"fltns\":\"▱\",\"fnof\":\"ƒ\",\"Fopf\":\"𝔽\",\"fopf\":\"𝕗\",\"forall\":\"∀\",\"ForAll\":\"∀\",\"fork\":\"⋔\",\"forkv\":\"⫙\",\"Fouriertrf\":\"ℱ\",\"fpartint\":\"⨍\",\"frac12\":\"½\",\"frac13\":\"⅓\",\"frac14\":\"¼\",\"frac15\":\"⅕\",\"frac16\":\"⅙\",\"frac18\":\"⅛\",\"frac23\":\"⅔\",\"frac25\":\"⅖\",\"frac34\":\"¾\",\"frac35\":\"⅗\",\"frac38\":\"⅜\",\"frac45\":\"⅘\",\"frac56\":\"⅚\",\"frac58\":\"⅝\",\"frac78\":\"⅞\",\"frasl\":\"⁄\",\"frown\":\"⌢\",\"fscr\":\"𝒻\",\"Fscr\":\"ℱ\",\"gacute\":\"ǵ\",\"Gamma\":\"Γ\",\"gamma\":\"γ\",\"Gammad\":\"Ϝ\",\"gammad\":\"ϝ\",\"gap\":\"⪆\",\"Gbreve\":\"Ğ\",\"gbreve\":\"ğ\",\"Gcedil\":\"Ģ\",\"Gcirc\":\"Ĝ\",\"gcirc\":\"ĝ\",\"Gcy\":\"Г\",\"gcy\":\"г\",\"Gdot\":\"Ġ\",\"gdot\":\"ġ\",\"ge\":\"≥\",\"gE\":\"≧\",\"gEl\":\"⪌\",\"gel\":\"⋛\",\"geq\":\"≥\",\"geqq\":\"≧\",\"geqslant\":\"⩾\",\"gescc\":\"⪩\",\"ges\":\"⩾\",\"gesdot\":\"⪀\",\"gesdoto\":\"⪂\",\"gesdotol\":\"⪄\",\"gesl\":\"⋛︀\",\"gesles\":\"⪔\",\"Gfr\":\"𝔊\",\"gfr\":\"𝔤\",\"gg\":\"≫\",\"Gg\":\"⋙\",\"ggg\":\"⋙\",\"gimel\":\"ℷ\",\"GJcy\":\"Ѓ\",\"gjcy\":\"ѓ\",\"gla\":\"⪥\",\"gl\":\"≷\",\"glE\":\"⪒\",\"glj\":\"⪤\",\"gnap\":\"⪊\",\"gnapprox\":\"⪊\",\"gne\":\"⪈\",\"gnE\":\"≩\",\"gneq\":\"⪈\",\"gneqq\":\"≩\",\"gnsim\":\"⋧\",\"Gopf\":\"𝔾\",\"gopf\":\"𝕘\",\"grave\":\"`\",\"GreaterEqual\":\"≥\",\"GreaterEqualLess\":\"⋛\",\"GreaterFullEqual\":\"≧\",\"GreaterGreater\":\"⪢\",\"GreaterLess\":\"≷\",\"GreaterSlantEqual\":\"⩾\",\"GreaterTilde\":\"≳\",\"Gscr\":\"𝒢\",\"gscr\":\"ℊ\",\"gsim\":\"≳\",\"gsime\":\"⪎\",\"gsiml\":\"⪐\",\"gtcc\":\"⪧\",\"gtcir\":\"⩺\",\"gt\":\">\",\"GT\":\">\",\"Gt\":\"≫\",\"gtdot\":\"⋗\",\"gtlPar\":\"⦕\",\"gtquest\":\"⩼\",\"gtrapprox\":\"⪆\",\"gtrarr\":\"⥸\",\"gtrdot\":\"⋗\",\"gtreqless\":\"⋛\",\"gtreqqless\":\"⪌\",\"gtrless\":\"≷\",\"gtrsim\":\"≳\",\"gvertneqq\":\"≩︀\",\"gvnE\":\"≩︀\",\"Hacek\":\"ˇ\",\"hairsp\":\" \",\"half\":\"½\",\"hamilt\":\"ℋ\",\"HARDcy\":\"Ъ\",\"hardcy\":\"ъ\",\"harrcir\":\"⥈\",\"harr\":\"↔\",\"hArr\":\"⇔\",\"harrw\":\"↭\",\"Hat\":\"^\",\"hbar\":\"ℏ\",\"Hcirc\":\"Ĥ\",\"hcirc\":\"ĥ\",\"hearts\":\"♥\",\"heartsuit\":\"♥\",\"hellip\":\"…\",\"hercon\":\"⊹\",\"hfr\":\"𝔥\",\"Hfr\":\"ℌ\",\"HilbertSpace\":\"ℋ\",\"hksearow\":\"⤥\",\"hkswarow\":\"⤦\",\"hoarr\":\"⇿\",\"homtht\":\"∻\",\"hookleftarrow\":\"↩\",\"hookrightarrow\":\"↪\",\"hopf\":\"𝕙\",\"Hopf\":\"ℍ\",\"horbar\":\"―\",\"HorizontalLine\":\"─\",\"hscr\":\"𝒽\",\"Hscr\":\"ℋ\",\"hslash\":\"ℏ\",\"Hstrok\":\"Ħ\",\"hstrok\":\"ħ\",\"HumpDownHump\":\"≎\",\"HumpEqual\":\"≏\",\"hybull\":\"⁃\",\"hyphen\":\"‐\",\"Iacute\":\"Í\",\"iacute\":\"í\",\"ic\":\"⁣\",\"Icirc\":\"Î\",\"icirc\":\"î\",\"Icy\":\"И\",\"icy\":\"и\",\"Idot\":\"İ\",\"IEcy\":\"Е\",\"iecy\":\"е\",\"iexcl\":\"¡\",\"iff\":\"⇔\",\"ifr\":\"𝔦\",\"Ifr\":\"ℑ\",\"Igrave\":\"Ì\",\"igrave\":\"ì\",\"ii\":\"ⅈ\",\"iiiint\":\"⨌\",\"iiint\":\"∭\",\"iinfin\":\"⧜\",\"iiota\":\"℩\",\"IJlig\":\"IJ\",\"ijlig\":\"ij\",\"Imacr\":\"Ī\",\"imacr\":\"ī\",\"image\":\"ℑ\",\"ImaginaryI\":\"ⅈ\",\"imagline\":\"ℐ\",\"imagpart\":\"ℑ\",\"imath\":\"ı\",\"Im\":\"ℑ\",\"imof\":\"⊷\",\"imped\":\"Ƶ\",\"Implies\":\"⇒\",\"incare\":\"℅\",\"in\":\"∈\",\"infin\":\"∞\",\"infintie\":\"⧝\",\"inodot\":\"ı\",\"intcal\":\"⊺\",\"int\":\"∫\",\"Int\":\"∬\",\"integers\":\"ℤ\",\"Integral\":\"∫\",\"intercal\":\"⊺\",\"Intersection\":\"⋂\",\"intlarhk\":\"⨗\",\"intprod\":\"⨼\",\"InvisibleComma\":\"⁣\",\"InvisibleTimes\":\"⁢\",\"IOcy\":\"Ё\",\"iocy\":\"ё\",\"Iogon\":\"Į\",\"iogon\":\"į\",\"Iopf\":\"𝕀\",\"iopf\":\"𝕚\",\"Iota\":\"Ι\",\"iota\":\"ι\",\"iprod\":\"⨼\",\"iquest\":\"¿\",\"iscr\":\"𝒾\",\"Iscr\":\"ℐ\",\"isin\":\"∈\",\"isindot\":\"⋵\",\"isinE\":\"⋹\",\"isins\":\"⋴\",\"isinsv\":\"⋳\",\"isinv\":\"∈\",\"it\":\"⁢\",\"Itilde\":\"Ĩ\",\"itilde\":\"ĩ\",\"Iukcy\":\"І\",\"iukcy\":\"і\",\"Iuml\":\"Ï\",\"iuml\":\"ï\",\"Jcirc\":\"Ĵ\",\"jcirc\":\"ĵ\",\"Jcy\":\"Й\",\"jcy\":\"й\",\"Jfr\":\"𝔍\",\"jfr\":\"𝔧\",\"jmath\":\"ȷ\",\"Jopf\":\"𝕁\",\"jopf\":\"𝕛\",\"Jscr\":\"𝒥\",\"jscr\":\"𝒿\",\"Jsercy\":\"Ј\",\"jsercy\":\"ј\",\"Jukcy\":\"Є\",\"jukcy\":\"є\",\"Kappa\":\"Κ\",\"kappa\":\"κ\",\"kappav\":\"ϰ\",\"Kcedil\":\"Ķ\",\"kcedil\":\"ķ\",\"Kcy\":\"К\",\"kcy\":\"к\",\"Kfr\":\"𝔎\",\"kfr\":\"𝔨\",\"kgreen\":\"ĸ\",\"KHcy\":\"Х\",\"khcy\":\"х\",\"KJcy\":\"Ќ\",\"kjcy\":\"ќ\",\"Kopf\":\"𝕂\",\"kopf\":\"𝕜\",\"Kscr\":\"𝒦\",\"kscr\":\"𝓀\",\"lAarr\":\"⇚\",\"Lacute\":\"Ĺ\",\"lacute\":\"ĺ\",\"laemptyv\":\"⦴\",\"lagran\":\"ℒ\",\"Lambda\":\"Λ\",\"lambda\":\"λ\",\"lang\":\"⟨\",\"Lang\":\"⟪\",\"langd\":\"⦑\",\"langle\":\"⟨\",\"lap\":\"⪅\",\"Laplacetrf\":\"ℒ\",\"laquo\":\"«\",\"larrb\":\"⇤\",\"larrbfs\":\"⤟\",\"larr\":\"←\",\"Larr\":\"↞\",\"lArr\":\"⇐\",\"larrfs\":\"⤝\",\"larrhk\":\"↩\",\"larrlp\":\"↫\",\"larrpl\":\"⤹\",\"larrsim\":\"⥳\",\"larrtl\":\"↢\",\"latail\":\"⤙\",\"lAtail\":\"⤛\",\"lat\":\"⪫\",\"late\":\"⪭\",\"lates\":\"⪭︀\",\"lbarr\":\"⤌\",\"lBarr\":\"⤎\",\"lbbrk\":\"❲\",\"lbrace\":\"{\",\"lbrack\":\"[\",\"lbrke\":\"⦋\",\"lbrksld\":\"⦏\",\"lbrkslu\":\"⦍\",\"Lcaron\":\"Ľ\",\"lcaron\":\"ľ\",\"Lcedil\":\"Ļ\",\"lcedil\":\"ļ\",\"lceil\":\"⌈\",\"lcub\":\"{\",\"Lcy\":\"Л\",\"lcy\":\"л\",\"ldca\":\"⤶\",\"ldquo\":\"“\",\"ldquor\":\"„\",\"ldrdhar\":\"⥧\",\"ldrushar\":\"⥋\",\"ldsh\":\"↲\",\"le\":\"≤\",\"lE\":\"≦\",\"LeftAngleBracket\":\"⟨\",\"LeftArrowBar\":\"⇤\",\"leftarrow\":\"←\",\"LeftArrow\":\"←\",\"Leftarrow\":\"⇐\",\"LeftArrowRightArrow\":\"⇆\",\"leftarrowtail\":\"↢\",\"LeftCeiling\":\"⌈\",\"LeftDoubleBracket\":\"⟦\",\"LeftDownTeeVector\":\"⥡\",\"LeftDownVectorBar\":\"⥙\",\"LeftDownVector\":\"⇃\",\"LeftFloor\":\"⌊\",\"leftharpoondown\":\"↽\",\"leftharpoonup\":\"↼\",\"leftleftarrows\":\"⇇\",\"leftrightarrow\":\"↔\",\"LeftRightArrow\":\"↔\",\"Leftrightarrow\":\"⇔\",\"leftrightarrows\":\"⇆\",\"leftrightharpoons\":\"⇋\",\"leftrightsquigarrow\":\"↭\",\"LeftRightVector\":\"⥎\",\"LeftTeeArrow\":\"↤\",\"LeftTee\":\"⊣\",\"LeftTeeVector\":\"⥚\",\"leftthreetimes\":\"⋋\",\"LeftTriangleBar\":\"⧏\",\"LeftTriangle\":\"⊲\",\"LeftTriangleEqual\":\"⊴\",\"LeftUpDownVector\":\"⥑\",\"LeftUpTeeVector\":\"⥠\",\"LeftUpVectorBar\":\"⥘\",\"LeftUpVector\":\"↿\",\"LeftVectorBar\":\"⥒\",\"LeftVector\":\"↼\",\"lEg\":\"⪋\",\"leg\":\"⋚\",\"leq\":\"≤\",\"leqq\":\"≦\",\"leqslant\":\"⩽\",\"lescc\":\"⪨\",\"les\":\"⩽\",\"lesdot\":\"⩿\",\"lesdoto\":\"⪁\",\"lesdotor\":\"⪃\",\"lesg\":\"⋚︀\",\"lesges\":\"⪓\",\"lessapprox\":\"⪅\",\"lessdot\":\"⋖\",\"lesseqgtr\":\"⋚\",\"lesseqqgtr\":\"⪋\",\"LessEqualGreater\":\"⋚\",\"LessFullEqual\":\"≦\",\"LessGreater\":\"≶\",\"lessgtr\":\"≶\",\"LessLess\":\"⪡\",\"lesssim\":\"≲\",\"LessSlantEqual\":\"⩽\",\"LessTilde\":\"≲\",\"lfisht\":\"⥼\",\"lfloor\":\"⌊\",\"Lfr\":\"𝔏\",\"lfr\":\"𝔩\",\"lg\":\"≶\",\"lgE\":\"⪑\",\"lHar\":\"⥢\",\"lhard\":\"↽\",\"lharu\":\"↼\",\"lharul\":\"⥪\",\"lhblk\":\"▄\",\"LJcy\":\"Љ\",\"ljcy\":\"љ\",\"llarr\":\"⇇\",\"ll\":\"≪\",\"Ll\":\"⋘\",\"llcorner\":\"⌞\",\"Lleftarrow\":\"⇚\",\"llhard\":\"⥫\",\"lltri\":\"◺\",\"Lmidot\":\"Ŀ\",\"lmidot\":\"ŀ\",\"lmoustache\":\"⎰\",\"lmoust\":\"⎰\",\"lnap\":\"⪉\",\"lnapprox\":\"⪉\",\"lne\":\"⪇\",\"lnE\":\"≨\",\"lneq\":\"⪇\",\"lneqq\":\"≨\",\"lnsim\":\"⋦\",\"loang\":\"⟬\",\"loarr\":\"⇽\",\"lobrk\":\"⟦\",\"longleftarrow\":\"⟵\",\"LongLeftArrow\":\"⟵\",\"Longleftarrow\":\"⟸\",\"longleftrightarrow\":\"⟷\",\"LongLeftRightArrow\":\"⟷\",\"Longleftrightarrow\":\"⟺\",\"longmapsto\":\"⟼\",\"longrightarrow\":\"⟶\",\"LongRightArrow\":\"⟶\",\"Longrightarrow\":\"⟹\",\"looparrowleft\":\"↫\",\"looparrowright\":\"↬\",\"lopar\":\"⦅\",\"Lopf\":\"𝕃\",\"lopf\":\"𝕝\",\"loplus\":\"⨭\",\"lotimes\":\"⨴\",\"lowast\":\"∗\",\"lowbar\":\"_\",\"LowerLeftArrow\":\"↙\",\"LowerRightArrow\":\"↘\",\"loz\":\"◊\",\"lozenge\":\"◊\",\"lozf\":\"⧫\",\"lpar\":\"(\",\"lparlt\":\"⦓\",\"lrarr\":\"⇆\",\"lrcorner\":\"⌟\",\"lrhar\":\"⇋\",\"lrhard\":\"⥭\",\"lrm\":\"‎\",\"lrtri\":\"⊿\",\"lsaquo\":\"‹\",\"lscr\":\"𝓁\",\"Lscr\":\"ℒ\",\"lsh\":\"↰\",\"Lsh\":\"↰\",\"lsim\":\"≲\",\"lsime\":\"⪍\",\"lsimg\":\"⪏\",\"lsqb\":\"[\",\"lsquo\":\"‘\",\"lsquor\":\"‚\",\"Lstrok\":\"Ł\",\"lstrok\":\"ł\",\"ltcc\":\"⪦\",\"ltcir\":\"⩹\",\"lt\":\"<\",\"LT\":\"<\",\"Lt\":\"≪\",\"ltdot\":\"⋖\",\"lthree\":\"⋋\",\"ltimes\":\"⋉\",\"ltlarr\":\"⥶\",\"ltquest\":\"⩻\",\"ltri\":\"◃\",\"ltrie\":\"⊴\",\"ltrif\":\"◂\",\"ltrPar\":\"⦖\",\"lurdshar\":\"⥊\",\"luruhar\":\"⥦\",\"lvertneqq\":\"≨︀\",\"lvnE\":\"≨︀\",\"macr\":\"¯\",\"male\":\"♂\",\"malt\":\"✠\",\"maltese\":\"✠\",\"Map\":\"⤅\",\"map\":\"↦\",\"mapsto\":\"↦\",\"mapstodown\":\"↧\",\"mapstoleft\":\"↤\",\"mapstoup\":\"↥\",\"marker\":\"▮\",\"mcomma\":\"⨩\",\"Mcy\":\"М\",\"mcy\":\"м\",\"mdash\":\"—\",\"mDDot\":\"∺\",\"measuredangle\":\"∡\",\"MediumSpace\":\" \",\"Mellintrf\":\"ℳ\",\"Mfr\":\"𝔐\",\"mfr\":\"𝔪\",\"mho\":\"℧\",\"micro\":\"µ\",\"midast\":\"*\",\"midcir\":\"⫰\",\"mid\":\"∣\",\"middot\":\"·\",\"minusb\":\"⊟\",\"minus\":\"−\",\"minusd\":\"∸\",\"minusdu\":\"⨪\",\"MinusPlus\":\"∓\",\"mlcp\":\"⫛\",\"mldr\":\"…\",\"mnplus\":\"∓\",\"models\":\"⊧\",\"Mopf\":\"𝕄\",\"mopf\":\"𝕞\",\"mp\":\"∓\",\"mscr\":\"𝓂\",\"Mscr\":\"ℳ\",\"mstpos\":\"∾\",\"Mu\":\"Μ\",\"mu\":\"μ\",\"multimap\":\"⊸\",\"mumap\":\"⊸\",\"nabla\":\"∇\",\"Nacute\":\"Ń\",\"nacute\":\"ń\",\"nang\":\"∠⃒\",\"nap\":\"≉\",\"napE\":\"⩰̸\",\"napid\":\"≋̸\",\"napos\":\"ʼn\",\"napprox\":\"≉\",\"natural\":\"♮\",\"naturals\":\"ℕ\",\"natur\":\"♮\",\"nbsp\":\" \",\"nbump\":\"≎̸\",\"nbumpe\":\"≏̸\",\"ncap\":\"⩃\",\"Ncaron\":\"Ň\",\"ncaron\":\"ň\",\"Ncedil\":\"Ņ\",\"ncedil\":\"ņ\",\"ncong\":\"≇\",\"ncongdot\":\"⩭̸\",\"ncup\":\"⩂\",\"Ncy\":\"Н\",\"ncy\":\"н\",\"ndash\":\"–\",\"nearhk\":\"⤤\",\"nearr\":\"↗\",\"neArr\":\"⇗\",\"nearrow\":\"↗\",\"ne\":\"≠\",\"nedot\":\"≐̸\",\"NegativeMediumSpace\":\"​\",\"NegativeThickSpace\":\"​\",\"NegativeThinSpace\":\"​\",\"NegativeVeryThinSpace\":\"​\",\"nequiv\":\"≢\",\"nesear\":\"⤨\",\"nesim\":\"≂̸\",\"NestedGreaterGreater\":\"≫\",\"NestedLessLess\":\"≪\",\"NewLine\":\"\\n\",\"nexist\":\"∄\",\"nexists\":\"∄\",\"Nfr\":\"𝔑\",\"nfr\":\"𝔫\",\"ngE\":\"≧̸\",\"nge\":\"≱\",\"ngeq\":\"≱\",\"ngeqq\":\"≧̸\",\"ngeqslant\":\"⩾̸\",\"nges\":\"⩾̸\",\"nGg\":\"⋙̸\",\"ngsim\":\"≵\",\"nGt\":\"≫⃒\",\"ngt\":\"≯\",\"ngtr\":\"≯\",\"nGtv\":\"≫̸\",\"nharr\":\"↮\",\"nhArr\":\"⇎\",\"nhpar\":\"⫲\",\"ni\":\"∋\",\"nis\":\"⋼\",\"nisd\":\"⋺\",\"niv\":\"∋\",\"NJcy\":\"Њ\",\"njcy\":\"њ\",\"nlarr\":\"↚\",\"nlArr\":\"⇍\",\"nldr\":\"‥\",\"nlE\":\"≦̸\",\"nle\":\"≰\",\"nleftarrow\":\"↚\",\"nLeftarrow\":\"⇍\",\"nleftrightarrow\":\"↮\",\"nLeftrightarrow\":\"⇎\",\"nleq\":\"≰\",\"nleqq\":\"≦̸\",\"nleqslant\":\"⩽̸\",\"nles\":\"⩽̸\",\"nless\":\"≮\",\"nLl\":\"⋘̸\",\"nlsim\":\"≴\",\"nLt\":\"≪⃒\",\"nlt\":\"≮\",\"nltri\":\"⋪\",\"nltrie\":\"⋬\",\"nLtv\":\"≪̸\",\"nmid\":\"∤\",\"NoBreak\":\"⁠\",\"NonBreakingSpace\":\" \",\"nopf\":\"𝕟\",\"Nopf\":\"ℕ\",\"Not\":\"⫬\",\"not\":\"¬\",\"NotCongruent\":\"≢\",\"NotCupCap\":\"≭\",\"NotDoubleVerticalBar\":\"∦\",\"NotElement\":\"∉\",\"NotEqual\":\"≠\",\"NotEqualTilde\":\"≂̸\",\"NotExists\":\"∄\",\"NotGreater\":\"≯\",\"NotGreaterEqual\":\"≱\",\"NotGreaterFullEqual\":\"≧̸\",\"NotGreaterGreater\":\"≫̸\",\"NotGreaterLess\":\"≹\",\"NotGreaterSlantEqual\":\"⩾̸\",\"NotGreaterTilde\":\"≵\",\"NotHumpDownHump\":\"≎̸\",\"NotHumpEqual\":\"≏̸\",\"notin\":\"∉\",\"notindot\":\"⋵̸\",\"notinE\":\"⋹̸\",\"notinva\":\"∉\",\"notinvb\":\"⋷\",\"notinvc\":\"⋶\",\"NotLeftTriangleBar\":\"⧏̸\",\"NotLeftTriangle\":\"⋪\",\"NotLeftTriangleEqual\":\"⋬\",\"NotLess\":\"≮\",\"NotLessEqual\":\"≰\",\"NotLessGreater\":\"≸\",\"NotLessLess\":\"≪̸\",\"NotLessSlantEqual\":\"⩽̸\",\"NotLessTilde\":\"≴\",\"NotNestedGreaterGreater\":\"⪢̸\",\"NotNestedLessLess\":\"⪡̸\",\"notni\":\"∌\",\"notniva\":\"∌\",\"notnivb\":\"⋾\",\"notnivc\":\"⋽\",\"NotPrecedes\":\"⊀\",\"NotPrecedesEqual\":\"⪯̸\",\"NotPrecedesSlantEqual\":\"⋠\",\"NotReverseElement\":\"∌\",\"NotRightTriangleBar\":\"⧐̸\",\"NotRightTriangle\":\"⋫\",\"NotRightTriangleEqual\":\"⋭\",\"NotSquareSubset\":\"⊏̸\",\"NotSquareSubsetEqual\":\"⋢\",\"NotSquareSuperset\":\"⊐̸\",\"NotSquareSupersetEqual\":\"⋣\",\"NotSubset\":\"⊂⃒\",\"NotSubsetEqual\":\"⊈\",\"NotSucceeds\":\"⊁\",\"NotSucceedsEqual\":\"⪰̸\",\"NotSucceedsSlantEqual\":\"⋡\",\"NotSucceedsTilde\":\"≿̸\",\"NotSuperset\":\"⊃⃒\",\"NotSupersetEqual\":\"⊉\",\"NotTilde\":\"≁\",\"NotTildeEqual\":\"≄\",\"NotTildeFullEqual\":\"≇\",\"NotTildeTilde\":\"≉\",\"NotVerticalBar\":\"∤\",\"nparallel\":\"∦\",\"npar\":\"∦\",\"nparsl\":\"⫽⃥\",\"npart\":\"∂̸\",\"npolint\":\"⨔\",\"npr\":\"⊀\",\"nprcue\":\"⋠\",\"nprec\":\"⊀\",\"npreceq\":\"⪯̸\",\"npre\":\"⪯̸\",\"nrarrc\":\"⤳̸\",\"nrarr\":\"↛\",\"nrArr\":\"⇏\",\"nrarrw\":\"↝̸\",\"nrightarrow\":\"↛\",\"nRightarrow\":\"⇏\",\"nrtri\":\"⋫\",\"nrtrie\":\"⋭\",\"nsc\":\"⊁\",\"nsccue\":\"⋡\",\"nsce\":\"⪰̸\",\"Nscr\":\"𝒩\",\"nscr\":\"𝓃\",\"nshortmid\":\"∤\",\"nshortparallel\":\"∦\",\"nsim\":\"≁\",\"nsime\":\"≄\",\"nsimeq\":\"≄\",\"nsmid\":\"∤\",\"nspar\":\"∦\",\"nsqsube\":\"⋢\",\"nsqsupe\":\"⋣\",\"nsub\":\"⊄\",\"nsubE\":\"⫅̸\",\"nsube\":\"⊈\",\"nsubset\":\"⊂⃒\",\"nsubseteq\":\"⊈\",\"nsubseteqq\":\"⫅̸\",\"nsucc\":\"⊁\",\"nsucceq\":\"⪰̸\",\"nsup\":\"⊅\",\"nsupE\":\"⫆̸\",\"nsupe\":\"⊉\",\"nsupset\":\"⊃⃒\",\"nsupseteq\":\"⊉\",\"nsupseteqq\":\"⫆̸\",\"ntgl\":\"≹\",\"Ntilde\":\"Ñ\",\"ntilde\":\"ñ\",\"ntlg\":\"≸\",\"ntriangleleft\":\"⋪\",\"ntrianglelefteq\":\"⋬\",\"ntriangleright\":\"⋫\",\"ntrianglerighteq\":\"⋭\",\"Nu\":\"Ν\",\"nu\":\"ν\",\"num\":\"#\",\"numero\":\"№\",\"numsp\":\" \",\"nvap\":\"≍⃒\",\"nvdash\":\"⊬\",\"nvDash\":\"⊭\",\"nVdash\":\"⊮\",\"nVDash\":\"⊯\",\"nvge\":\"≥⃒\",\"nvgt\":\">⃒\",\"nvHarr\":\"⤄\",\"nvinfin\":\"⧞\",\"nvlArr\":\"⤂\",\"nvle\":\"≤⃒\",\"nvlt\":\"<⃒\",\"nvltrie\":\"⊴⃒\",\"nvrArr\":\"⤃\",\"nvrtrie\":\"⊵⃒\",\"nvsim\":\"∼⃒\",\"nwarhk\":\"⤣\",\"nwarr\":\"↖\",\"nwArr\":\"⇖\",\"nwarrow\":\"↖\",\"nwnear\":\"⤧\",\"Oacute\":\"Ó\",\"oacute\":\"ó\",\"oast\":\"⊛\",\"Ocirc\":\"Ô\",\"ocirc\":\"ô\",\"ocir\":\"⊚\",\"Ocy\":\"О\",\"ocy\":\"о\",\"odash\":\"⊝\",\"Odblac\":\"Ő\",\"odblac\":\"ő\",\"odiv\":\"⨸\",\"odot\":\"⊙\",\"odsold\":\"⦼\",\"OElig\":\"Œ\",\"oelig\":\"œ\",\"ofcir\":\"⦿\",\"Ofr\":\"𝔒\",\"ofr\":\"𝔬\",\"ogon\":\"˛\",\"Ograve\":\"Ò\",\"ograve\":\"ò\",\"ogt\":\"⧁\",\"ohbar\":\"⦵\",\"ohm\":\"Ω\",\"oint\":\"∮\",\"olarr\":\"↺\",\"olcir\":\"⦾\",\"olcross\":\"⦻\",\"oline\":\"‾\",\"olt\":\"⧀\",\"Omacr\":\"Ō\",\"omacr\":\"ō\",\"Omega\":\"Ω\",\"omega\":\"ω\",\"Omicron\":\"Ο\",\"omicron\":\"ο\",\"omid\":\"⦶\",\"ominus\":\"⊖\",\"Oopf\":\"𝕆\",\"oopf\":\"𝕠\",\"opar\":\"⦷\",\"OpenCurlyDoubleQuote\":\"“\",\"OpenCurlyQuote\":\"‘\",\"operp\":\"⦹\",\"oplus\":\"⊕\",\"orarr\":\"↻\",\"Or\":\"⩔\",\"or\":\"∨\",\"ord\":\"⩝\",\"order\":\"ℴ\",\"orderof\":\"ℴ\",\"ordf\":\"ª\",\"ordm\":\"º\",\"origof\":\"⊶\",\"oror\":\"⩖\",\"orslope\":\"⩗\",\"orv\":\"⩛\",\"oS\":\"Ⓢ\",\"Oscr\":\"𝒪\",\"oscr\":\"ℴ\",\"Oslash\":\"Ø\",\"oslash\":\"ø\",\"osol\":\"⊘\",\"Otilde\":\"Õ\",\"otilde\":\"õ\",\"otimesas\":\"⨶\",\"Otimes\":\"⨷\",\"otimes\":\"⊗\",\"Ouml\":\"Ö\",\"ouml\":\"ö\",\"ovbar\":\"⌽\",\"OverBar\":\"‾\",\"OverBrace\":\"⏞\",\"OverBracket\":\"⎴\",\"OverParenthesis\":\"⏜\",\"para\":\"¶\",\"parallel\":\"∥\",\"par\":\"∥\",\"parsim\":\"⫳\",\"parsl\":\"⫽\",\"part\":\"∂\",\"PartialD\":\"∂\",\"Pcy\":\"П\",\"pcy\":\"п\",\"percnt\":\"%\",\"period\":\".\",\"permil\":\"‰\",\"perp\":\"⊥\",\"pertenk\":\"‱\",\"Pfr\":\"𝔓\",\"pfr\":\"𝔭\",\"Phi\":\"Φ\",\"phi\":\"φ\",\"phiv\":\"ϕ\",\"phmmat\":\"ℳ\",\"phone\":\"☎\",\"Pi\":\"Π\",\"pi\":\"π\",\"pitchfork\":\"⋔\",\"piv\":\"ϖ\",\"planck\":\"ℏ\",\"planckh\":\"ℎ\",\"plankv\":\"ℏ\",\"plusacir\":\"⨣\",\"plusb\":\"⊞\",\"pluscir\":\"⨢\",\"plus\":\"+\",\"plusdo\":\"∔\",\"plusdu\":\"⨥\",\"pluse\":\"⩲\",\"PlusMinus\":\"±\",\"plusmn\":\"±\",\"plussim\":\"⨦\",\"plustwo\":\"⨧\",\"pm\":\"±\",\"Poincareplane\":\"ℌ\",\"pointint\":\"⨕\",\"popf\":\"𝕡\",\"Popf\":\"ℙ\",\"pound\":\"£\",\"prap\":\"⪷\",\"Pr\":\"⪻\",\"pr\":\"≺\",\"prcue\":\"≼\",\"precapprox\":\"⪷\",\"prec\":\"≺\",\"preccurlyeq\":\"≼\",\"Precedes\":\"≺\",\"PrecedesEqual\":\"⪯\",\"PrecedesSlantEqual\":\"≼\",\"PrecedesTilde\":\"≾\",\"preceq\":\"⪯\",\"precnapprox\":\"⪹\",\"precneqq\":\"⪵\",\"precnsim\":\"⋨\",\"pre\":\"⪯\",\"prE\":\"⪳\",\"precsim\":\"≾\",\"prime\":\"′\",\"Prime\":\"″\",\"primes\":\"ℙ\",\"prnap\":\"⪹\",\"prnE\":\"⪵\",\"prnsim\":\"⋨\",\"prod\":\"∏\",\"Product\":\"∏\",\"profalar\":\"⌮\",\"profline\":\"⌒\",\"profsurf\":\"⌓\",\"prop\":\"∝\",\"Proportional\":\"∝\",\"Proportion\":\"∷\",\"propto\":\"∝\",\"prsim\":\"≾\",\"prurel\":\"⊰\",\"Pscr\":\"𝒫\",\"pscr\":\"𝓅\",\"Psi\":\"Ψ\",\"psi\":\"ψ\",\"puncsp\":\" \",\"Qfr\":\"𝔔\",\"qfr\":\"𝔮\",\"qint\":\"⨌\",\"qopf\":\"𝕢\",\"Qopf\":\"ℚ\",\"qprime\":\"⁗\",\"Qscr\":\"𝒬\",\"qscr\":\"𝓆\",\"quaternions\":\"ℍ\",\"quatint\":\"⨖\",\"quest\":\"?\",\"questeq\":\"≟\",\"quot\":\"\\\"\",\"QUOT\":\"\\\"\",\"rAarr\":\"⇛\",\"race\":\"∽̱\",\"Racute\":\"Ŕ\",\"racute\":\"ŕ\",\"radic\":\"√\",\"raemptyv\":\"⦳\",\"rang\":\"⟩\",\"Rang\":\"⟫\",\"rangd\":\"⦒\",\"range\":\"⦥\",\"rangle\":\"⟩\",\"raquo\":\"»\",\"rarrap\":\"⥵\",\"rarrb\":\"⇥\",\"rarrbfs\":\"⤠\",\"rarrc\":\"⤳\",\"rarr\":\"→\",\"Rarr\":\"↠\",\"rArr\":\"⇒\",\"rarrfs\":\"⤞\",\"rarrhk\":\"↪\",\"rarrlp\":\"↬\",\"rarrpl\":\"⥅\",\"rarrsim\":\"⥴\",\"Rarrtl\":\"⤖\",\"rarrtl\":\"↣\",\"rarrw\":\"↝\",\"ratail\":\"⤚\",\"rAtail\":\"⤜\",\"ratio\":\"∶\",\"rationals\":\"ℚ\",\"rbarr\":\"⤍\",\"rBarr\":\"⤏\",\"RBarr\":\"⤐\",\"rbbrk\":\"❳\",\"rbrace\":\"}\",\"rbrack\":\"]\",\"rbrke\":\"⦌\",\"rbrksld\":\"⦎\",\"rbrkslu\":\"⦐\",\"Rcaron\":\"Ř\",\"rcaron\":\"ř\",\"Rcedil\":\"Ŗ\",\"rcedil\":\"ŗ\",\"rceil\":\"⌉\",\"rcub\":\"}\",\"Rcy\":\"Р\",\"rcy\":\"р\",\"rdca\":\"⤷\",\"rdldhar\":\"⥩\",\"rdquo\":\"”\",\"rdquor\":\"”\",\"rdsh\":\"↳\",\"real\":\"ℜ\",\"realine\":\"ℛ\",\"realpart\":\"ℜ\",\"reals\":\"ℝ\",\"Re\":\"ℜ\",\"rect\":\"▭\",\"reg\":\"®\",\"REG\":\"®\",\"ReverseElement\":\"∋\",\"ReverseEquilibrium\":\"⇋\",\"ReverseUpEquilibrium\":\"⥯\",\"rfisht\":\"⥽\",\"rfloor\":\"⌋\",\"rfr\":\"𝔯\",\"Rfr\":\"ℜ\",\"rHar\":\"⥤\",\"rhard\":\"⇁\",\"rharu\":\"⇀\",\"rharul\":\"⥬\",\"Rho\":\"Ρ\",\"rho\":\"ρ\",\"rhov\":\"ϱ\",\"RightAngleBracket\":\"⟩\",\"RightArrowBar\":\"⇥\",\"rightarrow\":\"→\",\"RightArrow\":\"→\",\"Rightarrow\":\"⇒\",\"RightArrowLeftArrow\":\"⇄\",\"rightarrowtail\":\"↣\",\"RightCeiling\":\"⌉\",\"RightDoubleBracket\":\"⟧\",\"RightDownTeeVector\":\"⥝\",\"RightDownVectorBar\":\"⥕\",\"RightDownVector\":\"⇂\",\"RightFloor\":\"⌋\",\"rightharpoondown\":\"⇁\",\"rightharpoonup\":\"⇀\",\"rightleftarrows\":\"⇄\",\"rightleftharpoons\":\"⇌\",\"rightrightarrows\":\"⇉\",\"rightsquigarrow\":\"↝\",\"RightTeeArrow\":\"↦\",\"RightTee\":\"⊢\",\"RightTeeVector\":\"⥛\",\"rightthreetimes\":\"⋌\",\"RightTriangleBar\":\"⧐\",\"RightTriangle\":\"⊳\",\"RightTriangleEqual\":\"⊵\",\"RightUpDownVector\":\"⥏\",\"RightUpTeeVector\":\"⥜\",\"RightUpVectorBar\":\"⥔\",\"RightUpVector\":\"↾\",\"RightVectorBar\":\"⥓\",\"RightVector\":\"⇀\",\"ring\":\"˚\",\"risingdotseq\":\"≓\",\"rlarr\":\"⇄\",\"rlhar\":\"⇌\",\"rlm\":\"‏\",\"rmoustache\":\"⎱\",\"rmoust\":\"⎱\",\"rnmid\":\"⫮\",\"roang\":\"⟭\",\"roarr\":\"⇾\",\"robrk\":\"⟧\",\"ropar\":\"⦆\",\"ropf\":\"𝕣\",\"Ropf\":\"ℝ\",\"roplus\":\"⨮\",\"rotimes\":\"⨵\",\"RoundImplies\":\"⥰\",\"rpar\":\")\",\"rpargt\":\"⦔\",\"rppolint\":\"⨒\",\"rrarr\":\"⇉\",\"Rrightarrow\":\"⇛\",\"rsaquo\":\"›\",\"rscr\":\"𝓇\",\"Rscr\":\"ℛ\",\"rsh\":\"↱\",\"Rsh\":\"↱\",\"rsqb\":\"]\",\"rsquo\":\"’\",\"rsquor\":\"’\",\"rthree\":\"⋌\",\"rtimes\":\"⋊\",\"rtri\":\"▹\",\"rtrie\":\"⊵\",\"rtrif\":\"▸\",\"rtriltri\":\"⧎\",\"RuleDelayed\":\"⧴\",\"ruluhar\":\"⥨\",\"rx\":\"℞\",\"Sacute\":\"Ś\",\"sacute\":\"ś\",\"sbquo\":\"‚\",\"scap\":\"⪸\",\"Scaron\":\"Š\",\"scaron\":\"š\",\"Sc\":\"⪼\",\"sc\":\"≻\",\"sccue\":\"≽\",\"sce\":\"⪰\",\"scE\":\"⪴\",\"Scedil\":\"Ş\",\"scedil\":\"ş\",\"Scirc\":\"Ŝ\",\"scirc\":\"ŝ\",\"scnap\":\"⪺\",\"scnE\":\"⪶\",\"scnsim\":\"⋩\",\"scpolint\":\"⨓\",\"scsim\":\"≿\",\"Scy\":\"С\",\"scy\":\"с\",\"sdotb\":\"⊡\",\"sdot\":\"⋅\",\"sdote\":\"⩦\",\"searhk\":\"⤥\",\"searr\":\"↘\",\"seArr\":\"⇘\",\"searrow\":\"↘\",\"sect\":\"§\",\"semi\":\";\",\"seswar\":\"⤩\",\"setminus\":\"∖\",\"setmn\":\"∖\",\"sext\":\"✶\",\"Sfr\":\"𝔖\",\"sfr\":\"𝔰\",\"sfrown\":\"⌢\",\"sharp\":\"♯\",\"SHCHcy\":\"Щ\",\"shchcy\":\"щ\",\"SHcy\":\"Ш\",\"shcy\":\"ш\",\"ShortDownArrow\":\"↓\",\"ShortLeftArrow\":\"←\",\"shortmid\":\"∣\",\"shortparallel\":\"∥\",\"ShortRightArrow\":\"→\",\"ShortUpArrow\":\"↑\",\"shy\":\"­\",\"Sigma\":\"Σ\",\"sigma\":\"σ\",\"sigmaf\":\"ς\",\"sigmav\":\"ς\",\"sim\":\"∼\",\"simdot\":\"⩪\",\"sime\":\"≃\",\"simeq\":\"≃\",\"simg\":\"⪞\",\"simgE\":\"⪠\",\"siml\":\"⪝\",\"simlE\":\"⪟\",\"simne\":\"≆\",\"simplus\":\"⨤\",\"simrarr\":\"⥲\",\"slarr\":\"←\",\"SmallCircle\":\"∘\",\"smallsetminus\":\"∖\",\"smashp\":\"⨳\",\"smeparsl\":\"⧤\",\"smid\":\"∣\",\"smile\":\"⌣\",\"smt\":\"⪪\",\"smte\":\"⪬\",\"smtes\":\"⪬︀\",\"SOFTcy\":\"Ь\",\"softcy\":\"ь\",\"solbar\":\"⌿\",\"solb\":\"⧄\",\"sol\":\"/\",\"Sopf\":\"𝕊\",\"sopf\":\"𝕤\",\"spades\":\"♠\",\"spadesuit\":\"♠\",\"spar\":\"∥\",\"sqcap\":\"⊓\",\"sqcaps\":\"⊓︀\",\"sqcup\":\"⊔\",\"sqcups\":\"⊔︀\",\"Sqrt\":\"√\",\"sqsub\":\"⊏\",\"sqsube\":\"⊑\",\"sqsubset\":\"⊏\",\"sqsubseteq\":\"⊑\",\"sqsup\":\"⊐\",\"sqsupe\":\"⊒\",\"sqsupset\":\"⊐\",\"sqsupseteq\":\"⊒\",\"square\":\"□\",\"Square\":\"□\",\"SquareIntersection\":\"⊓\",\"SquareSubset\":\"⊏\",\"SquareSubsetEqual\":\"⊑\",\"SquareSuperset\":\"⊐\",\"SquareSupersetEqual\":\"⊒\",\"SquareUnion\":\"⊔\",\"squarf\":\"▪\",\"squ\":\"□\",\"squf\":\"▪\",\"srarr\":\"→\",\"Sscr\":\"𝒮\",\"sscr\":\"𝓈\",\"ssetmn\":\"∖\",\"ssmile\":\"⌣\",\"sstarf\":\"⋆\",\"Star\":\"⋆\",\"star\":\"☆\",\"starf\":\"★\",\"straightepsilon\":\"ϵ\",\"straightphi\":\"ϕ\",\"strns\":\"¯\",\"sub\":\"⊂\",\"Sub\":\"⋐\",\"subdot\":\"⪽\",\"subE\":\"⫅\",\"sube\":\"⊆\",\"subedot\":\"⫃\",\"submult\":\"⫁\",\"subnE\":\"⫋\",\"subne\":\"⊊\",\"subplus\":\"⪿\",\"subrarr\":\"⥹\",\"subset\":\"⊂\",\"Subset\":\"⋐\",\"subseteq\":\"⊆\",\"subseteqq\":\"⫅\",\"SubsetEqual\":\"⊆\",\"subsetneq\":\"⊊\",\"subsetneqq\":\"⫋\",\"subsim\":\"⫇\",\"subsub\":\"⫕\",\"subsup\":\"⫓\",\"succapprox\":\"⪸\",\"succ\":\"≻\",\"succcurlyeq\":\"≽\",\"Succeeds\":\"≻\",\"SucceedsEqual\":\"⪰\",\"SucceedsSlantEqual\":\"≽\",\"SucceedsTilde\":\"≿\",\"succeq\":\"⪰\",\"succnapprox\":\"⪺\",\"succneqq\":\"⪶\",\"succnsim\":\"⋩\",\"succsim\":\"≿\",\"SuchThat\":\"∋\",\"sum\":\"∑\",\"Sum\":\"∑\",\"sung\":\"♪\",\"sup1\":\"¹\",\"sup2\":\"²\",\"sup3\":\"³\",\"sup\":\"⊃\",\"Sup\":\"⋑\",\"supdot\":\"⪾\",\"supdsub\":\"⫘\",\"supE\":\"⫆\",\"supe\":\"⊇\",\"supedot\":\"⫄\",\"Superset\":\"⊃\",\"SupersetEqual\":\"⊇\",\"suphsol\":\"⟉\",\"suphsub\":\"⫗\",\"suplarr\":\"⥻\",\"supmult\":\"⫂\",\"supnE\":\"⫌\",\"supne\":\"⊋\",\"supplus\":\"⫀\",\"supset\":\"⊃\",\"Supset\":\"⋑\",\"supseteq\":\"⊇\",\"supseteqq\":\"⫆\",\"supsetneq\":\"⊋\",\"supsetneqq\":\"⫌\",\"supsim\":\"⫈\",\"supsub\":\"⫔\",\"supsup\":\"⫖\",\"swarhk\":\"⤦\",\"swarr\":\"↙\",\"swArr\":\"⇙\",\"swarrow\":\"↙\",\"swnwar\":\"⤪\",\"szlig\":\"ß\",\"Tab\":\"\\t\",\"target\":\"⌖\",\"Tau\":\"Τ\",\"tau\":\"τ\",\"tbrk\":\"⎴\",\"Tcaron\":\"Ť\",\"tcaron\":\"ť\",\"Tcedil\":\"Ţ\",\"tcedil\":\"ţ\",\"Tcy\":\"Т\",\"tcy\":\"т\",\"tdot\":\"⃛\",\"telrec\":\"⌕\",\"Tfr\":\"𝔗\",\"tfr\":\"𝔱\",\"there4\":\"∴\",\"therefore\":\"∴\",\"Therefore\":\"∴\",\"Theta\":\"Θ\",\"theta\":\"θ\",\"thetasym\":\"ϑ\",\"thetav\":\"ϑ\",\"thickapprox\":\"≈\",\"thicksim\":\"∼\",\"ThickSpace\":\"  \",\"ThinSpace\":\" \",\"thinsp\":\" \",\"thkap\":\"≈\",\"thksim\":\"∼\",\"THORN\":\"Þ\",\"thorn\":\"þ\",\"tilde\":\"˜\",\"Tilde\":\"∼\",\"TildeEqual\":\"≃\",\"TildeFullEqual\":\"≅\",\"TildeTilde\":\"≈\",\"timesbar\":\"⨱\",\"timesb\":\"⊠\",\"times\":\"×\",\"timesd\":\"⨰\",\"tint\":\"∭\",\"toea\":\"⤨\",\"topbot\":\"⌶\",\"topcir\":\"⫱\",\"top\":\"⊤\",\"Topf\":\"𝕋\",\"topf\":\"𝕥\",\"topfork\":\"⫚\",\"tosa\":\"⤩\",\"tprime\":\"‴\",\"trade\":\"™\",\"TRADE\":\"™\",\"triangle\":\"▵\",\"triangledown\":\"▿\",\"triangleleft\":\"◃\",\"trianglelefteq\":\"⊴\",\"triangleq\":\"≜\",\"triangleright\":\"▹\",\"trianglerighteq\":\"⊵\",\"tridot\":\"◬\",\"trie\":\"≜\",\"triminus\":\"⨺\",\"TripleDot\":\"⃛\",\"triplus\":\"⨹\",\"trisb\":\"⧍\",\"tritime\":\"⨻\",\"trpezium\":\"⏢\",\"Tscr\":\"𝒯\",\"tscr\":\"𝓉\",\"TScy\":\"Ц\",\"tscy\":\"ц\",\"TSHcy\":\"Ћ\",\"tshcy\":\"ћ\",\"Tstrok\":\"Ŧ\",\"tstrok\":\"ŧ\",\"twixt\":\"≬\",\"twoheadleftarrow\":\"↞\",\"twoheadrightarrow\":\"↠\",\"Uacute\":\"Ú\",\"uacute\":\"ú\",\"uarr\":\"↑\",\"Uarr\":\"↟\",\"uArr\":\"⇑\",\"Uarrocir\":\"⥉\",\"Ubrcy\":\"Ў\",\"ubrcy\":\"ў\",\"Ubreve\":\"Ŭ\",\"ubreve\":\"ŭ\",\"Ucirc\":\"Û\",\"ucirc\":\"û\",\"Ucy\":\"У\",\"ucy\":\"у\",\"udarr\":\"⇅\",\"Udblac\":\"Ű\",\"udblac\":\"ű\",\"udhar\":\"⥮\",\"ufisht\":\"⥾\",\"Ufr\":\"𝔘\",\"ufr\":\"𝔲\",\"Ugrave\":\"Ù\",\"ugrave\":\"ù\",\"uHar\":\"⥣\",\"uharl\":\"↿\",\"uharr\":\"↾\",\"uhblk\":\"▀\",\"ulcorn\":\"⌜\",\"ulcorner\":\"⌜\",\"ulcrop\":\"⌏\",\"ultri\":\"◸\",\"Umacr\":\"Ū\",\"umacr\":\"ū\",\"uml\":\"¨\",\"UnderBar\":\"_\",\"UnderBrace\":\"⏟\",\"UnderBracket\":\"⎵\",\"UnderParenthesis\":\"⏝\",\"Union\":\"⋃\",\"UnionPlus\":\"⊎\",\"Uogon\":\"Ų\",\"uogon\":\"ų\",\"Uopf\":\"𝕌\",\"uopf\":\"𝕦\",\"UpArrowBar\":\"⤒\",\"uparrow\":\"↑\",\"UpArrow\":\"↑\",\"Uparrow\":\"⇑\",\"UpArrowDownArrow\":\"⇅\",\"updownarrow\":\"↕\",\"UpDownArrow\":\"↕\",\"Updownarrow\":\"⇕\",\"UpEquilibrium\":\"⥮\",\"upharpoonleft\":\"↿\",\"upharpoonright\":\"↾\",\"uplus\":\"⊎\",\"UpperLeftArrow\":\"↖\",\"UpperRightArrow\":\"↗\",\"upsi\":\"υ\",\"Upsi\":\"ϒ\",\"upsih\":\"ϒ\",\"Upsilon\":\"Υ\",\"upsilon\":\"υ\",\"UpTeeArrow\":\"↥\",\"UpTee\":\"⊥\",\"upuparrows\":\"⇈\",\"urcorn\":\"⌝\",\"urcorner\":\"⌝\",\"urcrop\":\"⌎\",\"Uring\":\"Ů\",\"uring\":\"ů\",\"urtri\":\"◹\",\"Uscr\":\"𝒰\",\"uscr\":\"𝓊\",\"utdot\":\"⋰\",\"Utilde\":\"Ũ\",\"utilde\":\"ũ\",\"utri\":\"▵\",\"utrif\":\"▴\",\"uuarr\":\"⇈\",\"Uuml\":\"Ü\",\"uuml\":\"ü\",\"uwangle\":\"⦧\",\"vangrt\":\"⦜\",\"varepsilon\":\"ϵ\",\"varkappa\":\"ϰ\",\"varnothing\":\"∅\",\"varphi\":\"ϕ\",\"varpi\":\"ϖ\",\"varpropto\":\"∝\",\"varr\":\"↕\",\"vArr\":\"⇕\",\"varrho\":\"ϱ\",\"varsigma\":\"ς\",\"varsubsetneq\":\"⊊︀\",\"varsubsetneqq\":\"⫋︀\",\"varsupsetneq\":\"⊋︀\",\"varsupsetneqq\":\"⫌︀\",\"vartheta\":\"ϑ\",\"vartriangleleft\":\"⊲\",\"vartriangleright\":\"⊳\",\"vBar\":\"⫨\",\"Vbar\":\"⫫\",\"vBarv\":\"⫩\",\"Vcy\":\"В\",\"vcy\":\"в\",\"vdash\":\"⊢\",\"vDash\":\"⊨\",\"Vdash\":\"⊩\",\"VDash\":\"⊫\",\"Vdashl\":\"⫦\",\"veebar\":\"⊻\",\"vee\":\"∨\",\"Vee\":\"⋁\",\"veeeq\":\"≚\",\"vellip\":\"⋮\",\"verbar\":\"|\",\"Verbar\":\"‖\",\"vert\":\"|\",\"Vert\":\"‖\",\"VerticalBar\":\"∣\",\"VerticalLine\":\"|\",\"VerticalSeparator\":\"❘\",\"VerticalTilde\":\"≀\",\"VeryThinSpace\":\" \",\"Vfr\":\"𝔙\",\"vfr\":\"𝔳\",\"vltri\":\"⊲\",\"vnsub\":\"⊂⃒\",\"vnsup\":\"⊃⃒\",\"Vopf\":\"𝕍\",\"vopf\":\"𝕧\",\"vprop\":\"∝\",\"vrtri\":\"⊳\",\"Vscr\":\"𝒱\",\"vscr\":\"𝓋\",\"vsubnE\":\"⫋︀\",\"vsubne\":\"⊊︀\",\"vsupnE\":\"⫌︀\",\"vsupne\":\"⊋︀\",\"Vvdash\":\"⊪\",\"vzigzag\":\"⦚\",\"Wcirc\":\"Ŵ\",\"wcirc\":\"ŵ\",\"wedbar\":\"⩟\",\"wedge\":\"∧\",\"Wedge\":\"⋀\",\"wedgeq\":\"≙\",\"weierp\":\"℘\",\"Wfr\":\"𝔚\",\"wfr\":\"𝔴\",\"Wopf\":\"𝕎\",\"wopf\":\"𝕨\",\"wp\":\"℘\",\"wr\":\"≀\",\"wreath\":\"≀\",\"Wscr\":\"𝒲\",\"wscr\":\"𝓌\",\"xcap\":\"⋂\",\"xcirc\":\"◯\",\"xcup\":\"⋃\",\"xdtri\":\"▽\",\"Xfr\":\"𝔛\",\"xfr\":\"𝔵\",\"xharr\":\"⟷\",\"xhArr\":\"⟺\",\"Xi\":\"Ξ\",\"xi\":\"ξ\",\"xlarr\":\"⟵\",\"xlArr\":\"⟸\",\"xmap\":\"⟼\",\"xnis\":\"⋻\",\"xodot\":\"⨀\",\"Xopf\":\"𝕏\",\"xopf\":\"𝕩\",\"xoplus\":\"⨁\",\"xotime\":\"⨂\",\"xrarr\":\"⟶\",\"xrArr\":\"⟹\",\"Xscr\":\"𝒳\",\"xscr\":\"𝓍\",\"xsqcup\":\"⨆\",\"xuplus\":\"⨄\",\"xutri\":\"△\",\"xvee\":\"⋁\",\"xwedge\":\"⋀\",\"Yacute\":\"Ý\",\"yacute\":\"ý\",\"YAcy\":\"Я\",\"yacy\":\"я\",\"Ycirc\":\"Ŷ\",\"ycirc\":\"ŷ\",\"Ycy\":\"Ы\",\"ycy\":\"ы\",\"yen\":\"¥\",\"Yfr\":\"𝔜\",\"yfr\":\"𝔶\",\"YIcy\":\"Ї\",\"yicy\":\"ї\",\"Yopf\":\"𝕐\",\"yopf\":\"𝕪\",\"Yscr\":\"𝒴\",\"yscr\":\"𝓎\",\"YUcy\":\"Ю\",\"yucy\":\"ю\",\"yuml\":\"ÿ\",\"Yuml\":\"Ÿ\",\"Zacute\":\"Ź\",\"zacute\":\"ź\",\"Zcaron\":\"Ž\",\"zcaron\":\"ž\",\"Zcy\":\"З\",\"zcy\":\"з\",\"Zdot\":\"Ż\",\"zdot\":\"ż\",\"zeetrf\":\"ℨ\",\"ZeroWidthSpace\":\"​\",\"Zeta\":\"Ζ\",\"zeta\":\"ζ\",\"zfr\":\"𝔷\",\"Zfr\":\"ℨ\",\"ZHcy\":\"Ж\",\"zhcy\":\"ж\",\"zigrarr\":\"⇝\",\"zopf\":\"𝕫\",\"Zopf\":\"ℤ\",\"Zscr\":\"𝒵\",\"zscr\":\"𝓏\",\"zwj\":\"‍\",\"zwnj\":\"‌\"}");
25542
26462
 
25543
26463
  /***/ }),
25544
- /* 30 */
26464
+ /* 31 */
25545
26465
  /***/ (function(module, exports, __webpack_require__) {
25546
26466
 
25547
26467
  "use strict";
@@ -25646,7 +26566,7 @@ module.exports = encode;
25646
26566
 
25647
26567
 
25648
26568
  /***/ }),
25649
- /* 31 */
26569
+ /* 32 */
25650
26570
  /***/ (function(module, exports, __webpack_require__) {
25651
26571
 
25652
26572
  "use strict";
@@ -25775,7 +26695,7 @@ module.exports = decode;
25775
26695
 
25776
26696
 
25777
26697
  /***/ }),
25778
- /* 32 */
26698
+ /* 33 */
25779
26699
  /***/ (function(module, exports, __webpack_require__) {
25780
26700
 
25781
26701
  "use strict";
@@ -25807,7 +26727,7 @@ module.exports = function format(url) {
25807
26727
 
25808
26728
 
25809
26729
  /***/ }),
25810
- /* 33 */
26730
+ /* 34 */
25811
26731
  /***/ (function(module, exports, __webpack_require__) {
25812
26732
 
25813
26733
  "use strict";
@@ -26126,27 +27046,27 @@ module.exports = urlParse;
26126
27046
 
26127
27047
 
26128
27048
  /***/ }),
26129
- /* 34 */
27049
+ /* 35 */
26130
27050
  /***/ (function(module, exports, __webpack_require__) {
26131
27051
 
26132
27052
  "use strict";
26133
27053
 
26134
27054
 
26135
- exports.Any = __webpack_require__(14);
26136
- exports.Cc = __webpack_require__(15);
26137
- exports.Cf = __webpack_require__(35);
26138
- exports.P = __webpack_require__(6);
26139
- exports.Z = __webpack_require__(16);
27055
+ exports.Any = __webpack_require__(15);
27056
+ exports.Cc = __webpack_require__(16);
27057
+ exports.Cf = __webpack_require__(36);
27058
+ exports.P = __webpack_require__(7);
27059
+ exports.Z = __webpack_require__(17);
26140
27060
 
26141
27061
 
26142
27062
  /***/ }),
26143
- /* 35 */
27063
+ /* 36 */
26144
27064
  /***/ (function(module, exports) {
26145
27065
 
26146
27066
  module.exports=/[\xAD\u0600-\u0605\u061C\u06DD\u070F\u08E2\u180E\u200B-\u200F\u202A-\u202E\u2060-\u2064\u2066-\u206F\uFEFF\uFFF9-\uFFFB]|\uD804[\uDCBD\uDCCD]|\uD82F[\uDCA0-\uDCA3]|\uD834[\uDD73-\uDD7A]|\uDB40[\uDC01\uDC20-\uDC7F]/
26147
27067
 
26148
27068
  /***/ }),
26149
- /* 36 */
27069
+ /* 37 */
26150
27070
  /***/ (function(module, exports, __webpack_require__) {
26151
27071
 
26152
27072
  "use strict";
@@ -26154,13 +27074,13 @@ module.exports=/[\xAD\u0600-\u0605\u061C\u06DD\u070F\u08E2\u180E\u200B-\u200F\u2
26154
27074
 
26155
27075
 
26156
27076
 
26157
- exports.parseLinkLabel = __webpack_require__(37);
26158
- exports.parseLinkDestination = __webpack_require__(38);
26159
- exports.parseLinkTitle = __webpack_require__(39);
27077
+ exports.parseLinkLabel = __webpack_require__(38);
27078
+ exports.parseLinkDestination = __webpack_require__(39);
27079
+ exports.parseLinkTitle = __webpack_require__(40);
26160
27080
 
26161
27081
 
26162
27082
  /***/ }),
26163
- /* 37 */
27083
+ /* 38 */
26164
27084
  /***/ (function(module, exports, __webpack_require__) {
26165
27085
 
26166
27086
  "use strict";
@@ -26215,7 +27135,7 @@ module.exports = function parseLinkLabel(state, start, disableNested) {
26215
27135
 
26216
27136
 
26217
27137
  /***/ }),
26218
- /* 38 */
27138
+ /* 39 */
26219
27139
  /***/ (function(module, exports, __webpack_require__) {
26220
27140
 
26221
27141
  "use strict";
@@ -26304,7 +27224,7 @@ module.exports = function parseLinkDestination(str, pos, max) {
26304
27224
 
26305
27225
 
26306
27226
  /***/ }),
26307
- /* 39 */
27227
+ /* 40 */
26308
27228
  /***/ (function(module, exports, __webpack_require__) {
26309
27229
 
26310
27230
  "use strict";
@@ -26366,7 +27286,7 @@ module.exports = function parseLinkTitle(str, pos, max) {
26366
27286
 
26367
27287
 
26368
27288
  /***/ }),
26369
- /* 40 */
27289
+ /* 41 */
26370
27290
  /***/ (function(module, exports, __webpack_require__) {
26371
27291
 
26372
27292
  "use strict";
@@ -26714,7 +27634,7 @@ module.exports = Renderer;
26714
27634
 
26715
27635
 
26716
27636
  /***/ }),
26717
- /* 41 */
27637
+ /* 42 */
26718
27638
  /***/ (function(module, exports, __webpack_require__) {
26719
27639
 
26720
27640
  "use strict";
@@ -26727,16 +27647,16 @@ module.exports = Renderer;
26727
27647
 
26728
27648
 
26729
27649
 
26730
- var Ruler = __webpack_require__(7);
27650
+ var Ruler = __webpack_require__(8);
26731
27651
 
26732
27652
 
26733
27653
  var _rules = [
26734
- [ 'normalize', __webpack_require__(42) ],
26735
- [ 'block', __webpack_require__(43) ],
26736
- [ 'inline', __webpack_require__(44) ],
26737
- [ 'linkify', __webpack_require__(45) ],
26738
- [ 'replacements', __webpack_require__(46) ],
26739
- [ 'smartquotes', __webpack_require__(47) ]
27654
+ [ 'normalize', __webpack_require__(43) ],
27655
+ [ 'block', __webpack_require__(44) ],
27656
+ [ 'inline', __webpack_require__(45) ],
27657
+ [ 'linkify', __webpack_require__(46) ],
27658
+ [ 'replacements', __webpack_require__(47) ],
27659
+ [ 'smartquotes', __webpack_require__(48) ]
26740
27660
  ];
26741
27661
 
26742
27662
 
@@ -26772,14 +27692,14 @@ Core.prototype.process = function (state) {
26772
27692
  }
26773
27693
  };
26774
27694
 
26775
- Core.prototype.State = __webpack_require__(48);
27695
+ Core.prototype.State = __webpack_require__(49);
26776
27696
 
26777
27697
 
26778
27698
  module.exports = Core;
26779
27699
 
26780
27700
 
26781
27701
  /***/ }),
26782
- /* 42 */
27702
+ /* 43 */
26783
27703
  /***/ (function(module, exports, __webpack_require__) {
26784
27704
 
26785
27705
  "use strict";
@@ -26807,7 +27727,7 @@ module.exports = function normalize(state) {
26807
27727
 
26808
27728
 
26809
27729
  /***/ }),
26810
- /* 43 */
27730
+ /* 44 */
26811
27731
  /***/ (function(module, exports, __webpack_require__) {
26812
27732
 
26813
27733
  "use strict";
@@ -26830,7 +27750,7 @@ module.exports = function block(state) {
26830
27750
 
26831
27751
 
26832
27752
  /***/ }),
26833
- /* 44 */
27753
+ /* 45 */
26834
27754
  /***/ (function(module, exports, __webpack_require__) {
26835
27755
 
26836
27756
  "use strict";
@@ -26850,7 +27770,7 @@ module.exports = function inline(state) {
26850
27770
 
26851
27771
 
26852
27772
  /***/ }),
26853
- /* 45 */
27773
+ /* 46 */
26854
27774
  /***/ (function(module, exports, __webpack_require__) {
26855
27775
 
26856
27776
  "use strict";
@@ -26990,7 +27910,7 @@ module.exports = function linkify(state) {
26990
27910
 
26991
27911
 
26992
27912
  /***/ }),
26993
- /* 46 */
27913
+ /* 47 */
26994
27914
  /***/ (function(module, exports, __webpack_require__) {
26995
27915
 
26996
27916
  "use strict";
@@ -27104,7 +28024,7 @@ module.exports = function replace(state) {
27104
28024
 
27105
28025
 
27106
28026
  /***/ }),
27107
- /* 47 */
28027
+ /* 48 */
27108
28028
  /***/ (function(module, exports, __webpack_require__) {
27109
28029
 
27110
28030
  "use strict";
@@ -27312,7 +28232,7 @@ module.exports = function smartquotes(state) {
27312
28232
 
27313
28233
 
27314
28234
  /***/ }),
27315
- /* 48 */
28235
+ /* 49 */
27316
28236
  /***/ (function(module, exports, __webpack_require__) {
27317
28237
 
27318
28238
  "use strict";
@@ -27320,7 +28240,7 @@ module.exports = function smartquotes(state) {
27320
28240
  //
27321
28241
 
27322
28242
 
27323
- var Token = __webpack_require__(8);
28243
+ var Token = __webpack_require__(9);
27324
28244
 
27325
28245
 
27326
28246
  function StateCore(src, md, env) {
@@ -27339,7 +28259,7 @@ module.exports = StateCore;
27339
28259
 
27340
28260
 
27341
28261
  /***/ }),
27342
- /* 49 */
28262
+ /* 50 */
27343
28263
  /***/ (function(module, exports, __webpack_require__) {
27344
28264
 
27345
28265
  "use strict";
@@ -27351,23 +28271,23 @@ module.exports = StateCore;
27351
28271
 
27352
28272
 
27353
28273
 
27354
- var Ruler = __webpack_require__(7);
28274
+ var Ruler = __webpack_require__(8);
27355
28275
 
27356
28276
 
27357
28277
  var _rules = [
27358
28278
  // First 2 params - rule name & source. Secondary array - list of rules,
27359
28279
  // which can be terminated by this one.
27360
- [ 'table', __webpack_require__(50), [ 'paragraph', 'reference' ] ],
27361
- [ 'code', __webpack_require__(51) ],
27362
- [ 'fence', __webpack_require__(52), [ 'paragraph', 'reference', 'blockquote', 'list' ] ],
27363
- [ 'blockquote', __webpack_require__(53), [ 'paragraph', 'reference', 'blockquote', 'list' ] ],
27364
- [ 'hr', __webpack_require__(54), [ 'paragraph', 'reference', 'blockquote', 'list' ] ],
27365
- [ 'list', __webpack_require__(55), [ 'paragraph', 'reference', 'blockquote' ] ],
27366
- [ 'reference', __webpack_require__(56) ],
27367
- [ 'html_block', __webpack_require__(57), [ 'paragraph', 'reference', 'blockquote' ] ],
27368
- [ 'heading', __webpack_require__(59), [ 'paragraph', 'reference', 'blockquote' ] ],
27369
- [ 'lheading', __webpack_require__(60) ],
27370
- [ 'paragraph', __webpack_require__(61) ]
28280
+ [ 'table', __webpack_require__(51), [ 'paragraph', 'reference' ] ],
28281
+ [ 'code', __webpack_require__(52) ],
28282
+ [ 'fence', __webpack_require__(53), [ 'paragraph', 'reference', 'blockquote', 'list' ] ],
28283
+ [ 'blockquote', __webpack_require__(54), [ 'paragraph', 'reference', 'blockquote', 'list' ] ],
28284
+ [ 'hr', __webpack_require__(55), [ 'paragraph', 'reference', 'blockquote', 'list' ] ],
28285
+ [ 'list', __webpack_require__(56), [ 'paragraph', 'reference', 'blockquote' ] ],
28286
+ [ 'reference', __webpack_require__(57) ],
28287
+ [ 'html_block', __webpack_require__(58), [ 'paragraph', 'reference', 'blockquote' ] ],
28288
+ [ 'heading', __webpack_require__(60), [ 'paragraph', 'reference', 'blockquote' ] ],
28289
+ [ 'lheading', __webpack_require__(61) ],
28290
+ [ 'paragraph', __webpack_require__(62) ]
27371
28291
  ];
27372
28292
 
27373
28293
 
@@ -27461,14 +28381,14 @@ ParserBlock.prototype.parse = function (src, md, env, outTokens) {
27461
28381
  };
27462
28382
 
27463
28383
 
27464
- ParserBlock.prototype.State = __webpack_require__(62);
28384
+ ParserBlock.prototype.State = __webpack_require__(63);
27465
28385
 
27466
28386
 
27467
28387
  module.exports = ParserBlock;
27468
28388
 
27469
28389
 
27470
28390
  /***/ }),
27471
- /* 50 */
28391
+ /* 51 */
27472
28392
  /***/ (function(module, exports, __webpack_require__) {
27473
28393
 
27474
28394
  "use strict";
@@ -27696,7 +28616,7 @@ module.exports = function table(state, startLine, endLine, silent) {
27696
28616
 
27697
28617
 
27698
28618
  /***/ }),
27699
- /* 51 */
28619
+ /* 52 */
27700
28620
  /***/ (function(module, exports, __webpack_require__) {
27701
28621
 
27702
28622
  "use strict";
@@ -27737,7 +28657,7 @@ module.exports = function code(state, startLine, endLine/*, silent*/) {
27737
28657
 
27738
28658
 
27739
28659
  /***/ }),
27740
- /* 52 */
28660
+ /* 53 */
27741
28661
  /***/ (function(module, exports, __webpack_require__) {
27742
28662
 
27743
28663
  "use strict";
@@ -27842,7 +28762,7 @@ module.exports = function fence(state, startLine, endLine, silent) {
27842
28762
 
27843
28763
 
27844
28764
  /***/ }),
27845
- /* 53 */
28765
+ /* 54 */
27846
28766
  /***/ (function(module, exports, __webpack_require__) {
27847
28767
 
27848
28768
  "use strict";
@@ -28133,7 +29053,7 @@ module.exports = function blockquote(state, startLine, endLine, silent) {
28133
29053
 
28134
29054
 
28135
29055
  /***/ }),
28136
- /* 54 */
29056
+ /* 55 */
28137
29057
  /***/ (function(module, exports, __webpack_require__) {
28138
29058
 
28139
29059
  "use strict";
@@ -28185,7 +29105,7 @@ module.exports = function hr(state, startLine, endLine, silent) {
28185
29105
 
28186
29106
 
28187
29107
  /***/ }),
28188
- /* 55 */
29108
+ /* 56 */
28189
29109
  /***/ (function(module, exports, __webpack_require__) {
28190
29110
 
28191
29111
  "use strict";
@@ -28556,7 +29476,7 @@ module.exports = function list(state, startLine, endLine, silent) {
28556
29476
 
28557
29477
 
28558
29478
  /***/ }),
28559
- /* 56 */
29479
+ /* 57 */
28560
29480
  /***/ (function(module, exports, __webpack_require__) {
28561
29481
 
28562
29482
  "use strict";
@@ -28761,7 +29681,7 @@ module.exports = function reference(state, startLine, _endLine, silent) {
28761
29681
 
28762
29682
 
28763
29683
  /***/ }),
28764
- /* 57 */
29684
+ /* 58 */
28765
29685
  /***/ (function(module, exports, __webpack_require__) {
28766
29686
 
28767
29687
  "use strict";
@@ -28770,8 +29690,8 @@ module.exports = function reference(state, startLine, _endLine, silent) {
28770
29690
 
28771
29691
 
28772
29692
 
28773
- var block_names = __webpack_require__(58);
28774
- var HTML_OPEN_CLOSE_TAG_RE = __webpack_require__(17).HTML_OPEN_CLOSE_TAG_RE;
29693
+ var block_names = __webpack_require__(59);
29694
+ var HTML_OPEN_CLOSE_TAG_RE = __webpack_require__(18).HTML_OPEN_CLOSE_TAG_RE;
28775
29695
 
28776
29696
  // An array of opening and corresponding closing sequences for html tags,
28777
29697
  // last argument defines whether it can terminate a paragraph or not
@@ -28842,7 +29762,7 @@ module.exports = function html_block(state, startLine, endLine, silent) {
28842
29762
 
28843
29763
 
28844
29764
  /***/ }),
28845
- /* 58 */
29765
+ /* 59 */
28846
29766
  /***/ (function(module, exports, __webpack_require__) {
28847
29767
 
28848
29768
  "use strict";
@@ -28919,7 +29839,7 @@ module.exports = [
28919
29839
 
28920
29840
 
28921
29841
  /***/ }),
28922
- /* 59 */
29842
+ /* 60 */
28923
29843
  /***/ (function(module, exports, __webpack_require__) {
28924
29844
 
28925
29845
  "use strict";
@@ -28981,7 +29901,7 @@ module.exports = function heading(state, startLine, endLine, silent) {
28981
29901
 
28982
29902
 
28983
29903
  /***/ }),
28984
- /* 60 */
29904
+ /* 61 */
28985
29905
  /***/ (function(module, exports, __webpack_require__) {
28986
29906
 
28987
29907
  "use strict";
@@ -29071,7 +29991,7 @@ module.exports = function lheading(state, startLine, endLine/*, silent*/) {
29071
29991
 
29072
29992
 
29073
29993
  /***/ }),
29074
- /* 61 */
29994
+ /* 62 */
29075
29995
  /***/ (function(module, exports, __webpack_require__) {
29076
29996
 
29077
29997
  "use strict";
@@ -29130,7 +30050,7 @@ module.exports = function paragraph(state, startLine/*, endLine*/) {
29130
30050
 
29131
30051
 
29132
30052
  /***/ }),
29133
- /* 62 */
30053
+ /* 63 */
29134
30054
  /***/ (function(module, exports, __webpack_require__) {
29135
30055
 
29136
30056
  "use strict";
@@ -29138,7 +30058,7 @@ module.exports = function paragraph(state, startLine/*, endLine*/) {
29138
30058
 
29139
30059
 
29140
30060
 
29141
- var Token = __webpack_require__(8);
30061
+ var Token = __webpack_require__(9);
29142
30062
  var isSpace = __webpack_require__(1).isSpace;
29143
30063
 
29144
30064
 
@@ -29368,7 +30288,7 @@ module.exports = StateBlock;
29368
30288
 
29369
30289
 
29370
30290
  /***/ }),
29371
- /* 63 */
30291
+ /* 64 */
29372
30292
  /***/ (function(module, exports, __webpack_require__) {
29373
30293
 
29374
30294
  "use strict";
@@ -29380,31 +30300,31 @@ module.exports = StateBlock;
29380
30300
 
29381
30301
 
29382
30302
 
29383
- var Ruler = __webpack_require__(7);
30303
+ var Ruler = __webpack_require__(8);
29384
30304
 
29385
30305
 
29386
30306
  ////////////////////////////////////////////////////////////////////////////////
29387
30307
  // Parser rules
29388
30308
 
29389
30309
  var _rules = [
29390
- [ 'text', __webpack_require__(64) ],
29391
- [ 'newline', __webpack_require__(65) ],
29392
- [ 'escape', __webpack_require__(66) ],
29393
- [ 'backticks', __webpack_require__(67) ],
29394
- [ 'strikethrough', __webpack_require__(18).tokenize ],
29395
- [ 'emphasis', __webpack_require__(19).tokenize ],
29396
- [ 'link', __webpack_require__(68) ],
29397
- [ 'image', __webpack_require__(69) ],
29398
- [ 'autolink', __webpack_require__(70) ],
29399
- [ 'html_inline', __webpack_require__(71) ],
29400
- [ 'entity', __webpack_require__(72) ]
30310
+ [ 'text', __webpack_require__(65) ],
30311
+ [ 'newline', __webpack_require__(66) ],
30312
+ [ 'escape', __webpack_require__(67) ],
30313
+ [ 'backticks', __webpack_require__(68) ],
30314
+ [ 'strikethrough', __webpack_require__(19).tokenize ],
30315
+ [ 'emphasis', __webpack_require__(20).tokenize ],
30316
+ [ 'link', __webpack_require__(69) ],
30317
+ [ 'image', __webpack_require__(70) ],
30318
+ [ 'autolink', __webpack_require__(71) ],
30319
+ [ 'html_inline', __webpack_require__(72) ],
30320
+ [ 'entity', __webpack_require__(73) ]
29401
30321
  ];
29402
30322
 
29403
30323
  var _rules2 = [
29404
- [ 'balance_pairs', __webpack_require__(73) ],
29405
- [ 'strikethrough', __webpack_require__(18).postProcess ],
29406
- [ 'emphasis', __webpack_require__(19).postProcess ],
29407
- [ 'text_collapse', __webpack_require__(74) ]
30324
+ [ 'balance_pairs', __webpack_require__(74) ],
30325
+ [ 'strikethrough', __webpack_require__(19).postProcess ],
30326
+ [ 'emphasis', __webpack_require__(20).postProcess ],
30327
+ [ 'text_collapse', __webpack_require__(75) ]
29408
30328
  ];
29409
30329
 
29410
30330
 
@@ -29545,14 +30465,14 @@ ParserInline.prototype.parse = function (str, md, env, outTokens) {
29545
30465
  };
29546
30466
 
29547
30467
 
29548
- ParserInline.prototype.State = __webpack_require__(75);
30468
+ ParserInline.prototype.State = __webpack_require__(76);
29549
30469
 
29550
30470
 
29551
30471
  module.exports = ParserInline;
29552
30472
 
29553
30473
 
29554
30474
  /***/ }),
29555
- /* 64 */
30475
+ /* 65 */
29556
30476
  /***/ (function(module, exports, __webpack_require__) {
29557
30477
 
29558
30478
  "use strict";
@@ -29648,7 +30568,7 @@ module.exports = function text(state, silent) {
29648
30568
 
29649
30569
 
29650
30570
  /***/ }),
29651
- /* 65 */
30571
+ /* 66 */
29652
30572
  /***/ (function(module, exports, __webpack_require__) {
29653
30573
 
29654
30574
  "use strict";
@@ -29701,7 +30621,7 @@ module.exports = function newline(state, silent) {
29701
30621
 
29702
30622
 
29703
30623
  /***/ }),
29704
- /* 66 */
30624
+ /* 67 */
29705
30625
  /***/ (function(module, exports, __webpack_require__) {
29706
30626
 
29707
30627
  "use strict";
@@ -29760,7 +30680,7 @@ module.exports = function escape(state, silent) {
29760
30680
 
29761
30681
 
29762
30682
  /***/ }),
29763
- /* 67 */
30683
+ /* 68 */
29764
30684
  /***/ (function(module, exports, __webpack_require__) {
29765
30685
 
29766
30686
  "use strict";
@@ -29830,7 +30750,7 @@ module.exports = function backtick(state, silent) {
29830
30750
 
29831
30751
 
29832
30752
  /***/ }),
29833
- /* 68 */
30753
+ /* 69 */
29834
30754
  /***/ (function(module, exports, __webpack_require__) {
29835
30755
 
29836
30756
  "use strict";
@@ -29985,7 +30905,7 @@ module.exports = function link(state, silent) {
29985
30905
 
29986
30906
 
29987
30907
  /***/ }),
29988
- /* 69 */
30908
+ /* 70 */
29989
30909
  /***/ (function(module, exports, __webpack_require__) {
29990
30910
 
29991
30911
  "use strict";
@@ -30144,7 +31064,7 @@ module.exports = function image(state, silent) {
30144
31064
 
30145
31065
 
30146
31066
  /***/ }),
30147
- /* 70 */
31067
+ /* 71 */
30148
31068
  /***/ (function(module, exports, __webpack_require__) {
30149
31069
 
30150
31070
  "use strict";
@@ -30227,7 +31147,7 @@ module.exports = function autolink(state, silent) {
30227
31147
 
30228
31148
 
30229
31149
  /***/ }),
30230
- /* 71 */
31150
+ /* 72 */
30231
31151
  /***/ (function(module, exports, __webpack_require__) {
30232
31152
 
30233
31153
  "use strict";
@@ -30236,7 +31156,7 @@ module.exports = function autolink(state, silent) {
30236
31156
 
30237
31157
 
30238
31158
 
30239
- var HTML_TAG_RE = __webpack_require__(17).HTML_TAG_RE;
31159
+ var HTML_TAG_RE = __webpack_require__(18).HTML_TAG_RE;
30240
31160
 
30241
31161
 
30242
31162
  function isLetter(ch) {
@@ -30281,7 +31201,7 @@ module.exports = function html_inline(state, silent) {
30281
31201
 
30282
31202
 
30283
31203
  /***/ }),
30284
- /* 72 */
31204
+ /* 73 */
30285
31205
  /***/ (function(module, exports, __webpack_require__) {
30286
31206
 
30287
31207
  "use strict";
@@ -30289,7 +31209,7 @@ module.exports = function html_inline(state, silent) {
30289
31209
 
30290
31210
 
30291
31211
 
30292
- var entities = __webpack_require__(12);
31212
+ var entities = __webpack_require__(13);
30293
31213
  var has = __webpack_require__(1).has;
30294
31214
  var isValidEntityCode = __webpack_require__(1).isValidEntityCode;
30295
31215
  var fromCodePoint = __webpack_require__(1).fromCodePoint;
@@ -30336,7 +31256,7 @@ module.exports = function entity(state, silent) {
30336
31256
 
30337
31257
 
30338
31258
  /***/ }),
30339
- /* 73 */
31259
+ /* 74 */
30340
31260
  /***/ (function(module, exports, __webpack_require__) {
30341
31261
 
30342
31262
  "use strict";
@@ -30473,7 +31393,7 @@ module.exports = function link_pairs(state) {
30473
31393
 
30474
31394
 
30475
31395
  /***/ }),
30476
- /* 74 */
31396
+ /* 75 */
30477
31397
  /***/ (function(module, exports, __webpack_require__) {
30478
31398
 
30479
31399
  "use strict";
@@ -30521,7 +31441,7 @@ module.exports = function text_collapse(state) {
30521
31441
 
30522
31442
 
30523
31443
  /***/ }),
30524
- /* 75 */
31444
+ /* 76 */
30525
31445
  /***/ (function(module, exports, __webpack_require__) {
30526
31446
 
30527
31447
  "use strict";
@@ -30530,7 +31450,7 @@ module.exports = function text_collapse(state) {
30530
31450
 
30531
31451
 
30532
31452
 
30533
- var Token = __webpack_require__(8);
31453
+ var Token = __webpack_require__(9);
30534
31454
  var isWhiteSpace = __webpack_require__(1).isWhiteSpace;
30535
31455
  var isPunctChar = __webpack_require__(1).isPunctChar;
30536
31456
  var isMdAsciiPunct = __webpack_require__(1).isMdAsciiPunct;
@@ -30682,7 +31602,7 @@ module.exports = StateInline;
30682
31602
 
30683
31603
 
30684
31604
  /***/ }),
30685
- /* 76 */
31605
+ /* 77 */
30686
31606
  /***/ (function(module, exports, __webpack_require__) {
30687
31607
 
30688
31608
  "use strict";
@@ -30838,7 +31758,7 @@ function createNormalizer() {
30838
31758
  function compile(self) {
30839
31759
 
30840
31760
  // Load & clone RE patterns.
30841
- var re = self.re = __webpack_require__(77)(self.__opts__);
31761
+ var re = self.re = __webpack_require__(78)(self.__opts__);
30842
31762
 
30843
31763
  // Define dynamic patterns
30844
31764
  var tlds = self.__tlds__.slice();
@@ -31325,7 +32245,7 @@ module.exports = LinkifyIt;
31325
32245
 
31326
32246
 
31327
32247
  /***/ }),
31328
- /* 77 */
32248
+ /* 78 */
31329
32249
  /***/ (function(module, exports, __webpack_require__) {
31330
32250
 
31331
32251
  "use strict";
@@ -31336,10 +32256,10 @@ module.exports = function (opts) {
31336
32256
  var re = {};
31337
32257
 
31338
32258
  // Use direct extract instead of `regenerate` to reduse browserified size
31339
- re.src_Any = __webpack_require__(14).source;
31340
- re.src_Cc = __webpack_require__(15).source;
31341
- re.src_Z = __webpack_require__(16).source;
31342
- re.src_P = __webpack_require__(6).source;
32259
+ re.src_Any = __webpack_require__(15).source;
32260
+ re.src_Cc = __webpack_require__(16).source;
32261
+ re.src_Z = __webpack_require__(17).source;
32262
+ re.src_P = __webpack_require__(7).source;
31343
32263
 
31344
32264
  // \p{\Z\P\Cc\CF} (white spaces + control + format + punctuation)
31345
32265
  re.src_ZPCc = [ re.src_Z, re.src_P, re.src_Cc ].join('|');
@@ -31513,7 +32433,7 @@ module.exports = function (opts) {
31513
32433
 
31514
32434
 
31515
32435
  /***/ }),
31516
- /* 78 */
32436
+ /* 79 */
31517
32437
  /***/ (function(module, exports, __webpack_require__) {
31518
32438
 
31519
32439
  /* WEBPACK VAR INJECTION */(function(module, global) {var __WEBPACK_AMD_DEFINE_RESULT__;/*! https://mths.be/punycode v1.4.1 by @mathias */
@@ -31649,1523 +32569,598 @@ module.exports = function (opts) {
31649
32569
  extra;
31650
32570
  while (counter < length) {
31651
32571
  value = string.charCodeAt(counter++);
31652
- if (value >= 0xD800 && value <= 0xDBFF && counter < length) {
31653
- // high surrogate, and there is a next character
31654
- extra = string.charCodeAt(counter++);
31655
- if ((extra & 0xFC00) == 0xDC00) { // low surrogate
31656
- output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);
31657
- } else {
31658
- // unmatched surrogate; only append this code unit, in case the next
31659
- // code unit is the high surrogate of a surrogate pair
31660
- output.push(value);
31661
- counter--;
31662
- }
31663
- } else {
31664
- output.push(value);
31665
- }
31666
- }
31667
- return output;
31668
- }
31669
-
31670
- /**
31671
- * Creates a string based on an array of numeric code points.
31672
- * @see `punycode.ucs2.decode`
31673
- * @memberOf punycode.ucs2
31674
- * @name encode
31675
- * @param {Array} codePoints The array of numeric code points.
31676
- * @returns {String} The new Unicode string (UCS-2).
31677
- */
31678
- function ucs2encode(array) {
31679
- return map(array, function(value) {
31680
- var output = '';
31681
- if (value > 0xFFFF) {
31682
- value -= 0x10000;
31683
- output += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);
31684
- value = 0xDC00 | value & 0x3FF;
31685
- }
31686
- output += stringFromCharCode(value);
31687
- return output;
31688
- }).join('');
31689
- }
31690
-
31691
- /**
31692
- * Converts a basic code point into a digit/integer.
31693
- * @see `digitToBasic()`
31694
- * @private
31695
- * @param {Number} codePoint The basic numeric code point value.
31696
- * @returns {Number} The numeric value of a basic code point (for use in
31697
- * representing integers) in the range `0` to `base - 1`, or `base` if
31698
- * the code point does not represent a value.
31699
- */
31700
- function basicToDigit(codePoint) {
31701
- if (codePoint - 48 < 10) {
31702
- return codePoint - 22;
31703
- }
31704
- if (codePoint - 65 < 26) {
31705
- return codePoint - 65;
31706
- }
31707
- if (codePoint - 97 < 26) {
31708
- return codePoint - 97;
31709
- }
31710
- return base;
31711
- }
31712
-
31713
- /**
31714
- * Converts a digit/integer into a basic code point.
31715
- * @see `basicToDigit()`
31716
- * @private
31717
- * @param {Number} digit The numeric value of a basic code point.
31718
- * @returns {Number} The basic code point whose value (when used for
31719
- * representing integers) is `digit`, which needs to be in the range
31720
- * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is
31721
- * used; else, the lowercase form is used. The behavior is undefined
31722
- * if `flag` is non-zero and `digit` has no uppercase form.
31723
- */
31724
- function digitToBasic(digit, flag) {
31725
- // 0..25 map to ASCII a..z or A..Z
31726
- // 26..35 map to ASCII 0..9
31727
- return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);
31728
- }
31729
-
31730
- /**
31731
- * Bias adaptation function as per section 3.4 of RFC 3492.
31732
- * https://tools.ietf.org/html/rfc3492#section-3.4
31733
- * @private
31734
- */
31735
- function adapt(delta, numPoints, firstTime) {
31736
- var k = 0;
31737
- delta = firstTime ? floor(delta / damp) : delta >> 1;
31738
- delta += floor(delta / numPoints);
31739
- for (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {
31740
- delta = floor(delta / baseMinusTMin);
31741
- }
31742
- return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));
31743
- }
31744
-
31745
- /**
31746
- * Converts a Punycode string of ASCII-only symbols to a string of Unicode
31747
- * symbols.
31748
- * @memberOf punycode
31749
- * @param {String} input The Punycode string of ASCII-only symbols.
31750
- * @returns {String} The resulting string of Unicode symbols.
31751
- */
31752
- function decode(input) {
31753
- // Don't use UCS-2
31754
- var output = [],
31755
- inputLength = input.length,
31756
- out,
31757
- i = 0,
31758
- n = initialN,
31759
- bias = initialBias,
31760
- basic,
31761
- j,
31762
- index,
31763
- oldi,
31764
- w,
31765
- k,
31766
- digit,
31767
- t,
31768
- /** Cached calculation results */
31769
- baseMinusT;
31770
-
31771
- // Handle the basic code points: let `basic` be the number of input code
31772
- // points before the last delimiter, or `0` if there is none, then copy
31773
- // the first basic code points to the output.
31774
-
31775
- basic = input.lastIndexOf(delimiter);
31776
- if (basic < 0) {
31777
- basic = 0;
31778
- }
31779
-
31780
- for (j = 0; j < basic; ++j) {
31781
- // if it's not a basic code point
31782
- if (input.charCodeAt(j) >= 0x80) {
31783
- error('not-basic');
31784
- }
31785
- output.push(input.charCodeAt(j));
31786
- }
31787
-
31788
- // Main decoding loop: start just after the last delimiter if any basic code
31789
- // points were copied; start at the beginning otherwise.
31790
-
31791
- for (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {
31792
-
31793
- // `index` is the index of the next character to be consumed.
31794
- // Decode a generalized variable-length integer into `delta`,
31795
- // which gets added to `i`. The overflow checking is easier
31796
- // if we increase `i` as we go, then subtract off its starting
31797
- // value at the end to obtain `delta`.
31798
- for (oldi = i, w = 1, k = base; /* no condition */; k += base) {
31799
-
31800
- if (index >= inputLength) {
31801
- error('invalid-input');
31802
- }
31803
-
31804
- digit = basicToDigit(input.charCodeAt(index++));
31805
-
31806
- if (digit >= base || digit > floor((maxInt - i) / w)) {
31807
- error('overflow');
31808
- }
31809
-
31810
- i += digit * w;
31811
- t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);
31812
-
31813
- if (digit < t) {
31814
- break;
31815
- }
31816
-
31817
- baseMinusT = base - t;
31818
- if (w > floor(maxInt / baseMinusT)) {
31819
- error('overflow');
31820
- }
31821
-
31822
- w *= baseMinusT;
31823
-
31824
- }
31825
-
31826
- out = output.length + 1;
31827
- bias = adapt(i - oldi, out, oldi == 0);
31828
-
31829
- // `i` was supposed to wrap around from `out` to `0`,
31830
- // incrementing `n` each time, so we'll fix that now:
31831
- if (floor(i / out) > maxInt - n) {
31832
- error('overflow');
31833
- }
31834
-
31835
- n += floor(i / out);
31836
- i %= out;
31837
-
31838
- // Insert `n` at position `i` of the output
31839
- output.splice(i++, 0, n);
31840
-
31841
- }
31842
-
31843
- return ucs2encode(output);
31844
- }
31845
-
31846
- /**
31847
- * Converts a string of Unicode symbols (e.g. a domain name label) to a
31848
- * Punycode string of ASCII-only symbols.
31849
- * @memberOf punycode
31850
- * @param {String} input The string of Unicode symbols.
31851
- * @returns {String} The resulting Punycode string of ASCII-only symbols.
31852
- */
31853
- function encode(input) {
31854
- var n,
31855
- delta,
31856
- handledCPCount,
31857
- basicLength,
31858
- bias,
31859
- j,
31860
- m,
31861
- q,
31862
- k,
31863
- t,
31864
- currentValue,
31865
- output = [],
31866
- /** `inputLength` will hold the number of code points in `input`. */
31867
- inputLength,
31868
- /** Cached calculation results */
31869
- handledCPCountPlusOne,
31870
- baseMinusT,
31871
- qMinusT;
31872
-
31873
- // Convert the input in UCS-2 to Unicode
31874
- input = ucs2decode(input);
31875
-
31876
- // Cache the length
31877
- inputLength = input.length;
31878
-
31879
- // Initialize the state
31880
- n = initialN;
31881
- delta = 0;
31882
- bias = initialBias;
31883
-
31884
- // Handle the basic code points
31885
- for (j = 0; j < inputLength; ++j) {
31886
- currentValue = input[j];
31887
- if (currentValue < 0x80) {
31888
- output.push(stringFromCharCode(currentValue));
31889
- }
31890
- }
31891
-
31892
- handledCPCount = basicLength = output.length;
31893
-
31894
- // `handledCPCount` is the number of code points that have been handled;
31895
- // `basicLength` is the number of basic code points.
31896
-
31897
- // Finish the basic string - if it is not empty - with a delimiter
31898
- if (basicLength) {
31899
- output.push(delimiter);
31900
- }
31901
-
31902
- // Main encoding loop:
31903
- while (handledCPCount < inputLength) {
31904
-
31905
- // All non-basic code points < n have been handled already. Find the next
31906
- // larger one:
31907
- for (m = maxInt, j = 0; j < inputLength; ++j) {
31908
- currentValue = input[j];
31909
- if (currentValue >= n && currentValue < m) {
31910
- m = currentValue;
31911
- }
31912
- }
31913
-
31914
- // Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,
31915
- // but guard against overflow
31916
- handledCPCountPlusOne = handledCPCount + 1;
31917
- if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {
31918
- error('overflow');
31919
- }
31920
-
31921
- delta += (m - n) * handledCPCountPlusOne;
31922
- n = m;
31923
-
31924
- for (j = 0; j < inputLength; ++j) {
31925
- currentValue = input[j];
31926
-
31927
- if (currentValue < n && ++delta > maxInt) {
31928
- error('overflow');
31929
- }
31930
-
31931
- if (currentValue == n) {
31932
- // Represent delta as a generalized variable-length integer
31933
- for (q = delta, k = base; /* no condition */; k += base) {
31934
- t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);
31935
- if (q < t) {
31936
- break;
31937
- }
31938
- qMinusT = q - t;
31939
- baseMinusT = base - t;
31940
- output.push(
31941
- stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))
31942
- );
31943
- q = floor(qMinusT / baseMinusT);
31944
- }
31945
-
31946
- output.push(stringFromCharCode(digitToBasic(q, 0)));
31947
- bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);
31948
- delta = 0;
31949
- ++handledCPCount;
31950
- }
31951
- }
31952
-
31953
- ++delta;
31954
- ++n;
31955
-
31956
- }
31957
- return output.join('');
31958
- }
31959
-
31960
- /**
31961
- * Converts a Punycode string representing a domain name or an email address
31962
- * to Unicode. Only the Punycoded parts of the input will be converted, i.e.
31963
- * it doesn't matter if you call it on a string that has already been
31964
- * converted to Unicode.
31965
- * @memberOf punycode
31966
- * @param {String} input The Punycoded domain name or email address to
31967
- * convert to Unicode.
31968
- * @returns {String} The Unicode representation of the given Punycode
31969
- * string.
31970
- */
31971
- function toUnicode(input) {
31972
- return mapDomain(input, function(string) {
31973
- return regexPunycode.test(string)
31974
- ? decode(string.slice(4).toLowerCase())
31975
- : string;
31976
- });
31977
- }
31978
-
31979
- /**
31980
- * Converts a Unicode string representing a domain name or an email address to
31981
- * Punycode. Only the non-ASCII parts of the domain name will be converted,
31982
- * i.e. it doesn't matter if you call it with a domain that's already in
31983
- * ASCII.
31984
- * @memberOf punycode
31985
- * @param {String} input The domain name or email address to convert, as a
31986
- * Unicode string.
31987
- * @returns {String} The Punycode representation of the given domain name or
31988
- * email address.
31989
- */
31990
- function toASCII(input) {
31991
- return mapDomain(input, function(string) {
31992
- return regexNonASCII.test(string)
31993
- ? 'xn--' + encode(string)
31994
- : string;
31995
- });
31996
- }
31997
-
31998
- /*--------------------------------------------------------------------------*/
31999
-
32000
- /** Define the public API */
32001
- punycode = {
32002
- /**
32003
- * A string representing the current Punycode.js version number.
32004
- * @memberOf punycode
32005
- * @type String
32006
- */
32007
- 'version': '1.4.1',
32008
- /**
32009
- * An object of methods to convert from JavaScript's internal character
32010
- * representation (UCS-2) to Unicode code points, and back.
32011
- * @see <https://mathiasbynens.be/notes/javascript-encoding>
32012
- * @memberOf punycode
32013
- * @type Object
32014
- */
32015
- 'ucs2': {
32016
- 'decode': ucs2decode,
32017
- 'encode': ucs2encode
32018
- },
32019
- 'decode': decode,
32020
- 'encode': encode,
32021
- 'toASCII': toASCII,
32022
- 'toUnicode': toUnicode
32023
- };
32024
-
32025
- /** Expose `punycode` */
32026
- // Some AMD build optimizers, like r.js, check for specific condition patterns
32027
- // like the following:
32028
- if (
32029
- true
32030
- ) {
32031
- !(__WEBPACK_AMD_DEFINE_RESULT__ = (function() {
32032
- return punycode;
32033
- }).call(exports, __webpack_require__, exports, module),
32034
- __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
32035
- } else {}
32036
-
32037
- }(this));
32038
-
32039
- /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(23)(module), __webpack_require__(10)))
32040
-
32041
- /***/ }),
32042
- /* 79 */
32043
- /***/ (function(module, exports, __webpack_require__) {
32044
-
32045
- "use strict";
32046
- // markdown-it default options
32047
-
32048
-
32049
-
32050
-
32051
- module.exports = {
32052
- options: {
32053
- html: false, // Enable HTML tags in source
32054
- xhtmlOut: false, // Use '/' to close single tags (<br />)
32055
- breaks: false, // Convert '\n' in paragraphs into <br>
32056
- langPrefix: 'language-', // CSS language prefix for fenced blocks
32057
- linkify: false, // autoconvert URL-like texts to links
32058
-
32059
- // Enable some language-neutral replacements + quotes beautification
32060
- typographer: false,
32061
-
32062
- // Double + single quotes replacement pairs, when typographer enabled,
32063
- // and smartquotes on. Could be either a String or an Array.
32064
- //
32065
- // For example, you can use '«»„“' for Russian, '„“‚‘' for German,
32066
- // and ['«\xA0', '\xA0»', '‹\xA0', '\xA0›'] for French (including nbsp).
32067
- quotes: '\u201c\u201d\u2018\u2019', /* “”‘’ */
32068
-
32069
- // Highlighter function. Should return escaped HTML,
32070
- // or '' if the source string is not changed and should be escaped externaly.
32071
- // If result starts with <pre... internal wrapper is skipped.
32072
- //
32073
- // function (/*str, lang*/) { return ''; }
32074
- //
32075
- highlight: null,
32076
-
32077
- maxNesting: 100 // Internal protection, recursion limit
32078
- },
32079
-
32080
- components: {
32081
-
32082
- core: {},
32083
- block: {},
32084
- inline: {}
32085
- }
32086
- };
32087
-
32088
-
32089
- /***/ }),
32090
- /* 80 */
32091
- /***/ (function(module, exports, __webpack_require__) {
32092
-
32093
- "use strict";
32094
- // "Zero" preset, with nothing enabled. Useful for manual configuring of simple
32095
- // modes. For example, to parse bold/italic only.
32096
-
32097
-
32098
-
32099
-
32100
- module.exports = {
32101
- options: {
32102
- html: false, // Enable HTML tags in source
32103
- xhtmlOut: false, // Use '/' to close single tags (<br />)
32104
- breaks: false, // Convert '\n' in paragraphs into <br>
32105
- langPrefix: 'language-', // CSS language prefix for fenced blocks
32106
- linkify: false, // autoconvert URL-like texts to links
32107
-
32108
- // Enable some language-neutral replacements + quotes beautification
32109
- typographer: false,
32110
-
32111
- // Double + single quotes replacement pairs, when typographer enabled,
32112
- // and smartquotes on. Could be either a String or an Array.
32113
- //
32114
- // For example, you can use '«»„“' for Russian, '„“‚‘' for German,
32115
- // and ['«\xA0', '\xA0»', '‹\xA0', '\xA0›'] for French (including nbsp).
32116
- quotes: '\u201c\u201d\u2018\u2019', /* “”‘’ */
32117
-
32118
- // Highlighter function. Should return escaped HTML,
32119
- // or '' if the source string is not changed and should be escaped externaly.
32120
- // If result starts with <pre... internal wrapper is skipped.
32121
- //
32122
- // function (/*str, lang*/) { return ''; }
32123
- //
32124
- highlight: null,
32125
-
32126
- maxNesting: 20 // Internal protection, recursion limit
32127
- },
32572
+ if (value >= 0xD800 && value <= 0xDBFF && counter < length) {
32573
+ // high surrogate, and there is a next character
32574
+ extra = string.charCodeAt(counter++);
32575
+ if ((extra & 0xFC00) == 0xDC00) { // low surrogate
32576
+ output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);
32577
+ } else {
32578
+ // unmatched surrogate; only append this code unit, in case the next
32579
+ // code unit is the high surrogate of a surrogate pair
32580
+ output.push(value);
32581
+ counter--;
32582
+ }
32583
+ } else {
32584
+ output.push(value);
32585
+ }
32586
+ }
32587
+ return output;
32588
+ }
32128
32589
 
32129
- components: {
32590
+ /**
32591
+ * Creates a string based on an array of numeric code points.
32592
+ * @see `punycode.ucs2.decode`
32593
+ * @memberOf punycode.ucs2
32594
+ * @name encode
32595
+ * @param {Array} codePoints The array of numeric code points.
32596
+ * @returns {String} The new Unicode string (UCS-2).
32597
+ */
32598
+ function ucs2encode(array) {
32599
+ return map(array, function(value) {
32600
+ var output = '';
32601
+ if (value > 0xFFFF) {
32602
+ value -= 0x10000;
32603
+ output += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);
32604
+ value = 0xDC00 | value & 0x3FF;
32605
+ }
32606
+ output += stringFromCharCode(value);
32607
+ return output;
32608
+ }).join('');
32609
+ }
32130
32610
 
32131
- core: {
32132
- rules: [
32133
- 'normalize',
32134
- 'block',
32135
- 'inline'
32136
- ]
32137
- },
32611
+ /**
32612
+ * Converts a basic code point into a digit/integer.
32613
+ * @see `digitToBasic()`
32614
+ * @private
32615
+ * @param {Number} codePoint The basic numeric code point value.
32616
+ * @returns {Number} The numeric value of a basic code point (for use in
32617
+ * representing integers) in the range `0` to `base - 1`, or `base` if
32618
+ * the code point does not represent a value.
32619
+ */
32620
+ function basicToDigit(codePoint) {
32621
+ if (codePoint - 48 < 10) {
32622
+ return codePoint - 22;
32623
+ }
32624
+ if (codePoint - 65 < 26) {
32625
+ return codePoint - 65;
32626
+ }
32627
+ if (codePoint - 97 < 26) {
32628
+ return codePoint - 97;
32629
+ }
32630
+ return base;
32631
+ }
32138
32632
 
32139
- block: {
32140
- rules: [
32141
- 'paragraph'
32142
- ]
32143
- },
32633
+ /**
32634
+ * Converts a digit/integer into a basic code point.
32635
+ * @see `basicToDigit()`
32636
+ * @private
32637
+ * @param {Number} digit The numeric value of a basic code point.
32638
+ * @returns {Number} The basic code point whose value (when used for
32639
+ * representing integers) is `digit`, which needs to be in the range
32640
+ * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is
32641
+ * used; else, the lowercase form is used. The behavior is undefined
32642
+ * if `flag` is non-zero and `digit` has no uppercase form.
32643
+ */
32644
+ function digitToBasic(digit, flag) {
32645
+ // 0..25 map to ASCII a..z or A..Z
32646
+ // 26..35 map to ASCII 0..9
32647
+ return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);
32648
+ }
32144
32649
 
32145
- inline: {
32146
- rules: [
32147
- 'text'
32148
- ],
32149
- rules2: [
32150
- 'balance_pairs',
32151
- 'text_collapse'
32152
- ]
32153
- }
32154
- }
32155
- };
32650
+ /**
32651
+ * Bias adaptation function as per section 3.4 of RFC 3492.
32652
+ * https://tools.ietf.org/html/rfc3492#section-3.4
32653
+ * @private
32654
+ */
32655
+ function adapt(delta, numPoints, firstTime) {
32656
+ var k = 0;
32657
+ delta = firstTime ? floor(delta / damp) : delta >> 1;
32658
+ delta += floor(delta / numPoints);
32659
+ for (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {
32660
+ delta = floor(delta / baseMinusTMin);
32661
+ }
32662
+ return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));
32663
+ }
32156
32664
 
32665
+ /**
32666
+ * Converts a Punycode string of ASCII-only symbols to a string of Unicode
32667
+ * symbols.
32668
+ * @memberOf punycode
32669
+ * @param {String} input The Punycode string of ASCII-only symbols.
32670
+ * @returns {String} The resulting string of Unicode symbols.
32671
+ */
32672
+ function decode(input) {
32673
+ // Don't use UCS-2
32674
+ var output = [],
32675
+ inputLength = input.length,
32676
+ out,
32677
+ i = 0,
32678
+ n = initialN,
32679
+ bias = initialBias,
32680
+ basic,
32681
+ j,
32682
+ index,
32683
+ oldi,
32684
+ w,
32685
+ k,
32686
+ digit,
32687
+ t,
32688
+ /** Cached calculation results */
32689
+ baseMinusT;
32157
32690
 
32158
- /***/ }),
32159
- /* 81 */
32160
- /***/ (function(module, exports, __webpack_require__) {
32691
+ // Handle the basic code points: let `basic` be the number of input code
32692
+ // points before the last delimiter, or `0` if there is none, then copy
32693
+ // the first basic code points to the output.
32161
32694
 
32162
- "use strict";
32163
- // Commonmark default options
32695
+ basic = input.lastIndexOf(delimiter);
32696
+ if (basic < 0) {
32697
+ basic = 0;
32698
+ }
32164
32699
 
32700
+ for (j = 0; j < basic; ++j) {
32701
+ // if it's not a basic code point
32702
+ if (input.charCodeAt(j) >= 0x80) {
32703
+ error('not-basic');
32704
+ }
32705
+ output.push(input.charCodeAt(j));
32706
+ }
32165
32707
 
32708
+ // Main decoding loop: start just after the last delimiter if any basic code
32709
+ // points were copied; start at the beginning otherwise.
32166
32710
 
32711
+ for (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {
32167
32712
 
32168
- module.exports = {
32169
- options: {
32170
- html: true, // Enable HTML tags in source
32171
- xhtmlOut: true, // Use '/' to close single tags (<br />)
32172
- breaks: false, // Convert '\n' in paragraphs into <br>
32173
- langPrefix: 'language-', // CSS language prefix for fenced blocks
32174
- linkify: false, // autoconvert URL-like texts to links
32713
+ // `index` is the index of the next character to be consumed.
32714
+ // Decode a generalized variable-length integer into `delta`,
32715
+ // which gets added to `i`. The overflow checking is easier
32716
+ // if we increase `i` as we go, then subtract off its starting
32717
+ // value at the end to obtain `delta`.
32718
+ for (oldi = i, w = 1, k = base; /* no condition */; k += base) {
32175
32719
 
32176
- // Enable some language-neutral replacements + quotes beautification
32177
- typographer: false,
32720
+ if (index >= inputLength) {
32721
+ error('invalid-input');
32722
+ }
32178
32723
 
32179
- // Double + single quotes replacement pairs, when typographer enabled,
32180
- // and smartquotes on. Could be either a String or an Array.
32181
- //
32182
- // For example, you can use '«»„“' for Russian, '„“‚‘' for German,
32183
- // and ['«\xA0', '\xA0»', '‹\xA0', '\xA0›'] for French (including nbsp).
32184
- quotes: '\u201c\u201d\u2018\u2019', /* “”‘’ */
32724
+ digit = basicToDigit(input.charCodeAt(index++));
32185
32725
 
32186
- // Highlighter function. Should return escaped HTML,
32187
- // or '' if the source string is not changed and should be escaped externaly.
32188
- // If result starts with <pre... internal wrapper is skipped.
32189
- //
32190
- // function (/*str, lang*/) { return ''; }
32191
- //
32192
- highlight: null,
32726
+ if (digit >= base || digit > floor((maxInt - i) / w)) {
32727
+ error('overflow');
32728
+ }
32193
32729
 
32194
- maxNesting: 20 // Internal protection, recursion limit
32195
- },
32730
+ i += digit * w;
32731
+ t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);
32196
32732
 
32197
- components: {
32733
+ if (digit < t) {
32734
+ break;
32735
+ }
32198
32736
 
32199
- core: {
32200
- rules: [
32201
- 'normalize',
32202
- 'block',
32203
- 'inline'
32204
- ]
32205
- },
32737
+ baseMinusT = base - t;
32738
+ if (w > floor(maxInt / baseMinusT)) {
32739
+ error('overflow');
32740
+ }
32206
32741
 
32207
- block: {
32208
- rules: [
32209
- 'blockquote',
32210
- 'code',
32211
- 'fence',
32212
- 'heading',
32213
- 'hr',
32214
- 'html_block',
32215
- 'lheading',
32216
- 'list',
32217
- 'reference',
32218
- 'paragraph'
32219
- ]
32220
- },
32742
+ w *= baseMinusT;
32221
32743
 
32222
- inline: {
32223
- rules: [
32224
- 'autolink',
32225
- 'backticks',
32226
- 'emphasis',
32227
- 'entity',
32228
- 'escape',
32229
- 'html_inline',
32230
- 'image',
32231
- 'link',
32232
- 'newline',
32233
- 'text'
32234
- ],
32235
- rules2: [
32236
- 'balance_pairs',
32237
- 'emphasis',
32238
- 'text_collapse'
32239
- ]
32240
- }
32241
- }
32242
- };
32744
+ }
32243
32745
 
32746
+ out = output.length + 1;
32747
+ bias = adapt(i - oldi, out, oldi == 0);
32244
32748
 
32245
- /***/ }),
32246
- /* 82 */
32247
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
32749
+ // `i` was supposed to wrap around from `out` to `0`,
32750
+ // incrementing `n` each time, so we'll fix that now:
32751
+ if (floor(i / out) > maxInt - n) {
32752
+ error('overflow');
32753
+ }
32248
32754
 
32249
- "use strict";
32250
- // ESM COMPAT FLAG
32251
- __webpack_require__.r(__webpack_exports__);
32755
+ n += floor(i / out);
32756
+ i %= out;
32252
32757
 
32253
- // EXPORTS
32254
- __webpack_require__.d(__webpack_exports__, "createSendUtils", function() { return /* reexport */ createSendUtils; });
32255
- __webpack_require__.d(__webpack_exports__, "createStreamUtils", function() { return /* reexport */ createStreamUtils; });
32256
- __webpack_require__.d(__webpack_exports__, "DEFAULT_KV_SEPARATOR", function() { return /* reexport */ DEFAULT_KV_SEPARATOR; });
32257
- __webpack_require__.d(__webpack_exports__, "DEFAULT_PART_SEPARATOR", function() { return /* reexport */ DEFAULT_PART_SEPARATOR; });
32258
- __webpack_require__.d(__webpack_exports__, "DEFAULT_STREAM_SEPARATOR", function() { return /* reexport */ DEFAULT_STREAM_SEPARATOR; });
32259
- __webpack_require__.d(__webpack_exports__, "isValidString", function() { return /* reexport */ isValidString; });
32260
- __webpack_require__.d(__webpack_exports__, "recordMixin", function() { return /* reexport */ recordMixin; });
32261
- __webpack_require__.d(__webpack_exports__, "sendMixin", function() { return /* reexport */ sendMixin; });
32262
- __webpack_require__.d(__webpack_exports__, "splitPart", function() { return /* reexport */ splitPart; });
32263
- __webpack_require__.d(__webpack_exports__, "splitStream", function() { return /* reexport */ splitStream; });
32264
- __webpack_require__.d(__webpack_exports__, "streamMixin", function() { return /* reexport */ streamMixin; });
32265
- __webpack_require__.d(__webpack_exports__, "XRequest", function() { return /* reexport */ XRequest; });
32266
- __webpack_require__.d(__webpack_exports__, "XStream", function() { return /* reexport */ XStream; });
32758
+ // Insert `n` at position `i` of the output
32759
+ output.splice(i++, 0, n);
32267
32760
 
32268
- // CONCATENATED MODULE: ./src/mixins/recordMixin.js
32269
- /**
32270
- * @description 提供语音识别的混入,允许语音输入并处理开始、结束、结果及错误等各种事件。
32271
- *
32272
- * @mixin recordMixin
32273
- */
32761
+ }
32274
32762
 
32275
- /* harmony default export */ var recordMixin = ({
32276
- data() {
32277
- return {
32278
- // 语音识别状态
32279
- recordLoading: false,
32280
- // 识别结果
32281
- recordValue: '',
32282
- // 识别实例
32283
- recordRecognition: null,
32284
- // 配置选项
32285
- recordOptions: {
32286
- onError: null,
32287
- onStart: null,
32288
- onEnd: null,
32289
- onResult: null
32290
- }
32291
- };
32292
- },
32293
- methods: {
32294
- /**
32295
- * 初始化语音识别配置
32296
- * @param {Object} options - 配置选项
32297
- * @param {Function} [options.onError] - 错误回调
32298
- * @param {Function} [options.onStart] - 开始回调
32299
- * @param {Function} [options.onEnd] - 结束回调
32300
- * @param {Function} [options.onResult] - 结果回调
32301
- */
32302
- initRecord(options = {}) {
32303
- this.recordOptions = {
32304
- ...this.recordOptions,
32305
- ...options
32306
- };
32307
- },
32308
- /**
32309
- * 开始语音识别
32310
- */
32311
- startRecord() {
32312
- if ('webkitSpeechRecognition' in window) {
32313
- this.recordRecognition = new window.webkitSpeechRecognition();
32314
- this.recordRecognition.continuous = true;
32315
- this.recordRecognition.interimResults = true;
32316
- this.recordRecognition.lang = 'zh-CN';
32317
- this.recordRecognition.onstart = () => {
32318
- this.recordLoading = true;
32319
- this.recordValue = '';
32320
- if (this.recordOptions.onStart) {
32321
- this.recordOptions.onStart();
32322
- }
32323
- };
32324
- this.recordRecognition.onend = () => {
32325
- this.recordLoading = false;
32326
- if (this.recordOptions.onEnd) {
32327
- this.recordOptions.onEnd(this.recordValue);
32328
- }
32329
- };
32330
- this.recordRecognition.onerror = e => {
32331
- this.recordLoading = false;
32332
- if (this.recordOptions.onError) {
32333
- this.recordOptions.onError(e);
32334
- }
32335
- };
32336
- this.recordRecognition.onresult = e => {
32337
- let results = '';
32338
- for (let i = 0; i <= e.resultIndex; i++) {
32339
- results += e.results[i][0].transcript;
32340
- }
32341
- this.recordValue = results;
32342
- if (this.recordOptions.onResult) {
32343
- this.recordOptions.onResult(results);
32344
- }
32345
- };
32346
- this.recordRecognition.start();
32347
- } else {
32348
- const error = {
32349
- code: -1,
32350
- message: 'The current browser does not support voice recognition'
32351
- };
32352
- if (this.recordOptions.onError) {
32353
- this.recordOptions.onError(error);
32354
- }
32355
- }
32356
- },
32357
- /**
32358
- * 停止语音识别
32359
- */
32360
- stopRecord() {
32361
- if (this.recordRecognition) {
32362
- this.recordRecognition.stop();
32363
- }
32364
- },
32365
- /**
32366
- * 清理语音识别资源
32367
- */
32368
- cleanupRecord() {
32369
- this.stopRecord();
32370
- this.recordRecognition = null;
32371
- }
32372
- },
32373
- beforeDestroy() {
32374
- this.cleanupRecord();
32375
- }
32376
- });
32377
- // CONCATENATED MODULE: ./src/mixins/sendMixin.js
32378
- /**
32379
- * XRequest 类 - 用于处理 SSE 和 Fetch 请求
32380
- */
32381
- class XRequest {
32382
- constructor(options = {}) {
32383
- const {
32384
- baseURL,
32385
- onAbort,
32386
- onMessage,
32387
- onError,
32388
- baseOptions,
32389
- transformer,
32390
- type,
32391
- onFinish,
32392
- onOpen
32393
- } = options;
32394
- this._instance = null;
32395
- this._transformer = transformer;
32396
- this._baseURL = baseURL || '';
32397
- this._baseOptions = baseOptions || {};
32398
- this._onAbort = onAbort;
32399
- this._onMessage = onMessage;
32400
- this._onError = onError;
32401
- this._onOpen = onOpen;
32402
- this._type = type || 'sse';
32403
- this._controller = null;
32404
- this._onFinish = onFinish;
32405
- this._messages = [];
32406
- // 添加结束标志和超时控制
32407
- this._isFinished = false;
32408
- this._finishTimeout = null;
32763
+ return ucs2encode(output);
32764
+ }
32409
32765
 
32410
- // 绑定方法上下文
32411
- this.abort = this.abort.bind(this);
32412
- this.send = this.send.bind(this);
32413
- }
32414
- _sendWithFetch(url, options = {}) {
32415
- this._controller = new AbortController();
32416
- const signal = this._controller.signal;
32417
- const fetchOptions = {
32418
- ...options,
32419
- signal
32420
- };
32421
- return fetch(this._baseURL + url, fetchOptions).then(res => res.body).then(async body => {
32422
- if (!body) {
32423
- return Promise.reject(new Error('Response body is null in stream mode'));
32424
- }
32425
- const reader = body.getReader();
32426
- const decoder = new TextDecoder('utf-8');
32427
- let done = false;
32428
- while (!done) {
32429
- const {
32430
- value,
32431
- done: streamDone
32432
- } = await reader.read();
32433
- done = streamDone;
32434
- if (streamDone) {
32435
- this._onFinish && this._onFinish(this._messages);
32436
- return;
32437
- }
32438
- if (value) {
32439
- const chunk = decoder.decode(value, {
32440
- stream: true
32441
- });
32442
- const chunkUse = chunk.startsWith('data: ') ? chunk.slice(6) : chunk;
32443
- try {
32444
- const res = this._transformer ? this._transformer(chunkUse) : chunkUse;
32445
- this._messages.push(res);
32446
- this._onMessage && this._onMessage(res);
32447
- } catch (error) {
32448
- this._onError && this._onError(error);
32449
- this._controller && this._controller.abort();
32450
- return Promise.reject(error);
32451
- }
32452
- }
32453
- }
32454
- }).catch(err => {
32455
- if (err.name === 'AbortError') {
32456
- this._onAbort && this._onAbort(this._messages);
32457
- return;
32458
- }
32459
- this._onError && this._onError(err);
32460
- this._controller && this._controller.abort();
32461
- });
32462
- }
32463
- _sendWithSSE(url, options = {}) {
32464
- const es = new EventSource(this._baseURL + url, {
32465
- ...this._baseOptions,
32466
- ...options
32467
- });
32468
- es.onmessage = e => {
32469
- // 检查是否是结束消息
32470
- if (e.data === '[DONE]' || e.data === 'data: [DONE]') {
32471
- this._isFinished = true;
32472
- this._onFinish && this._onFinish(this._messages);
32473
- this.abort();
32474
- return;
32475
- }
32476
- const res = this._transformer ? this._transformer(e.data) : e;
32477
- this._messages.push(res);
32478
- this._onMessage && this._onMessage(res);
32766
+ /**
32767
+ * Converts a string of Unicode symbols (e.g. a domain name label) to a
32768
+ * Punycode string of ASCII-only symbols.
32769
+ * @memberOf punycode
32770
+ * @param {String} input The string of Unicode symbols.
32771
+ * @returns {String} The resulting Punycode string of ASCII-only symbols.
32772
+ */
32773
+ function encode(input) {
32774
+ var n,
32775
+ delta,
32776
+ handledCPCount,
32777
+ basicLength,
32778
+ bias,
32779
+ j,
32780
+ m,
32781
+ q,
32782
+ k,
32783
+ t,
32784
+ currentValue,
32785
+ output = [],
32786
+ /** `inputLength` will hold the number of code points in `input`. */
32787
+ inputLength,
32788
+ /** Cached calculation results */
32789
+ handledCPCountPlusOne,
32790
+ baseMinusT,
32791
+ qMinusT;
32479
32792
 
32480
- // 重置超时定时器
32481
- if (this._finishTimeout) {
32482
- clearTimeout(this._finishTimeout);
32483
- }
32793
+ // Convert the input in UCS-2 to Unicode
32794
+ input = ucs2decode(input);
32484
32795
 
32485
- // 设置超时检测:如果 10 秒内没有新消息,认为连接可能已结束
32486
- this._finishTimeout = setTimeout(() => {
32487
- if (!this._isFinished && es.readyState !== EventSource.CONNECTING) {
32488
- this._isFinished = true;
32489
- this._onFinish && this._onFinish(this._messages);
32490
- this.abort();
32491
- }
32492
- }, 10000);
32493
- };
32494
- es.onopen = () => {
32495
- this._onOpen && this._onOpen();
32496
- };
32497
- es.onerror = ev => {
32498
- // 清除超时定时器
32499
- if (this._finishTimeout) {
32500
- clearTimeout(this._finishTimeout);
32501
- this._finishTimeout = null;
32502
- }
32796
+ // Cache the length
32797
+ inputLength = input.length;
32503
32798
 
32504
- // 如果已经标记为结束,直接返回
32505
- if (this._isFinished) {
32506
- return;
32507
- }
32799
+ // Initialize the state
32800
+ n = initialN;
32801
+ delta = 0;
32802
+ bias = initialBias;
32508
32803
 
32509
- // 更可靠的结束检测逻辑
32510
- if (es.readyState === EventSource.CLOSED || this._messages.length > 0 && es.readyState !== EventSource.CONNECTING) {
32511
- // 有消息且连接状态不是正在连接,很可能是正常结束
32512
- this._isFinished = true;
32513
- this._onFinish && this._onFinish(this._messages);
32514
- } else {
32515
- // 真正的错误情况
32516
- this._onError && this._onError(es, ev);
32517
- }
32518
- this.abort();
32519
- };
32520
- this._instance = es;
32521
- return es;
32522
- }
32523
- send(url, options = {}) {
32524
- switch (this._type) {
32525
- case 'fetch':
32526
- this._sendWithFetch(url, options);
32527
- break;
32528
- default:
32529
- this._sendWithSSE(url, options);
32530
- }
32531
- return this;
32532
- }
32533
- abort() {
32534
- // 清除超时定时器
32535
- if (this._finishTimeout) {
32536
- clearTimeout(this._finishTimeout);
32537
- this._finishTimeout = null;
32538
- }
32539
- if (this._instance && this._instance.close) {
32540
- this._instance.close();
32541
- }
32542
- this._instance = null;
32543
- if (this._controller) {
32544
- this._controller.abort();
32545
- }
32546
- this._controller = null;
32804
+ // Handle the basic code points
32805
+ for (j = 0; j < inputLength; ++j) {
32806
+ currentValue = input[j];
32807
+ if (currentValue < 0x80) {
32808
+ output.push(stringFromCharCode(currentValue));
32809
+ }
32810
+ }
32547
32811
 
32548
- // 只有在未正常结束时才调用 onAbort
32549
- if (!this._isFinished) {
32550
- this._onAbort && this._onAbort(this._messages);
32551
- }
32552
- this._messages = [];
32553
- this._isFinished = false;
32554
- }
32555
- }
32812
+ handledCPCount = basicLength = output.length;
32556
32813
 
32557
- /**
32558
- * sendMixin -
32559
- * 用于处理发送操作管理请求状态的 mixin,支持可选的中止功能,同时支持 Promise 和 SSE(服务端事件)
32560
- */
32561
- const sendMixin = {
32562
- data() {
32563
- return {
32564
- loading: false,
32565
- _sendPromise: null,
32566
- _sendController: null
32567
- };
32568
- },
32569
- methods: {
32570
- /**
32571
- * 初始化发送配置
32572
- * @param {Object} options - 配置选项
32573
- * @param {Function} options.onAbort - 中止回调
32574
- * @param {Function} options.sendHandler - 发送处理器
32575
- * @param {Function} options.abortHandler - 中止处理器
32576
- * @param {Function} options.finishHandler - 完成处理器
32577
- */
32578
- initSend(options = {}) {
32579
- this._sendOptions = {
32580
- onAbort: options.onAbort,
32581
- sendHandler: options.sendHandler,
32582
- abortHandler: options.abortHandler,
32583
- finishHandler: options.finishHandler
32584
- };
32585
- },
32586
- /**
32587
- * 发送操作
32588
- * @param {...any} args - 传递给 sendHandler 的参数
32589
- */
32590
- handleSend(...args) {
32591
- if (this.loading) {
32592
- return;
32593
- }
32594
- if (this._sendOptions && this._sendOptions.sendHandler) {
32595
- this._sendOptions.sendHandler(...args);
32596
- }
32597
- this.loading = true;
32598
- },
32599
- /**
32600
- * 中止操作
32601
- */
32602
- handleAbort() {
32603
- this.loading = false;
32604
- if (this._sendOptions && this._sendOptions.abortHandler) {
32605
- this._sendOptions.abortHandler();
32606
- }
32607
- if (this._sendOptions && this._sendOptions.onAbort) {
32608
- this._sendOptions.onAbort();
32609
- }
32610
- },
32611
- /**
32612
- * 完成操作
32613
- */
32614
- handleFinish() {
32615
- this.loading = false;
32616
- if (this._sendOptions && this._sendOptions.finishHandler) {
32617
- this._sendOptions.finishHandler();
32618
- }
32619
- },
32620
- /**
32621
- * 创建 XRequest 实例的便捷方法
32622
- * @param {Object} options - XRequest 配置选项
32623
- * @returns {XRequest} XRequest 实例
32624
- */
32625
- createXRequest(options = {}) {
32626
- return new XRequest({
32627
- ...options,
32628
- onAbort: (...args) => {
32629
- this.handleAbort();
32630
- if (options.onAbort) {
32631
- options.onAbort(...args);
32632
- }
32633
- },
32634
- onFinish: (...args) => {
32635
- this.handleFinish();
32636
- if (options.onFinish) {
32637
- options.onFinish(...args);
32638
- }
32639
- }
32640
- });
32641
- }
32642
- },
32643
- beforeDestroy() {
32644
- // 组件销毁时清理资源
32645
- if (this._sendController) {
32646
- this._sendController.abort();
32647
- }
32648
- }
32649
- };
32814
+ // `handledCPCount` is the number of code points that have been handled;
32815
+ // `basicLength` is the number of basic code points.
32650
32816
 
32651
- /**
32652
- * 工具函数版本 - 用于非组件场景
32653
- * @param {Object} options - 配置选项
32654
- * @returns {Object} 包含发送相关方法的对象
32655
- */
32656
- function createSendUtils(options = {}) {
32657
- const state = {
32658
- loading: false
32659
- };
32660
- const handleSend = (...args) => {
32661
- if (state.loading) {
32662
- return;
32663
- }
32664
- if (options.sendHandler) {
32665
- options.sendHandler(...args);
32666
- }
32667
- state.loading = true;
32668
- };
32669
- const handleAbort = () => {
32670
- state.loading = false;
32671
- if (options.abortHandler) {
32672
- options.abortHandler();
32673
- }
32674
- if (options.onAbort) {
32675
- options.onAbort();
32676
- }
32677
- };
32678
- const handleFinish = () => {
32679
- state.loading = false;
32680
- if (options.finishHandler) {
32681
- options.finishHandler();
32682
- }
32683
- };
32684
- return {
32685
- state,
32686
- send: handleSend,
32687
- abort: handleAbort,
32688
- finish: handleFinish
32689
- };
32690
- }
32691
- /* harmony default export */ var mixins_sendMixin = (sendMixin);
32692
- // CONCATENATED MODULE: ./src/mixins/streamMixin.js
32693
- /**
32694
- * @fileoverview Vue2 流式数据处理 Mixin
32695
- * 从 Vue3 useXStream hooks 转换而来,支持 SSE 数据解析和中断功能
32696
- * @author Element UI X Team
32697
- * @version 1.0.0
32698
- */
32817
+ // Finish the basic string - if it is not empty - with a delimiter
32818
+ if (basicLength) {
32819
+ output.push(delimiter);
32820
+ }
32699
32821
 
32700
- /**
32701
- * 默认流分隔符
32702
- * @type {string}
32703
- * @constant
32704
- */
32705
- const DEFAULT_STREAM_SEPARATOR = '\n\n';
32822
+ // Main encoding loop:
32823
+ while (handledCPCount < inputLength) {
32706
32824
 
32707
- /**
32708
- * 默认部分分隔符
32709
- * @type {string}
32710
- * @constant
32711
- */
32712
- const DEFAULT_PART_SEPARATOR = '\n';
32825
+ // All non-basic code points < n have been handled already. Find the next
32826
+ // larger one:
32827
+ for (m = maxInt, j = 0; j < inputLength; ++j) {
32828
+ currentValue = input[j];
32829
+ if (currentValue >= n && currentValue < m) {
32830
+ m = currentValue;
32831
+ }
32832
+ }
32713
32833
 
32714
- /**
32715
- * 默认键值分隔符
32716
- * @type {string}
32717
- * @constant
32718
- */
32719
- const DEFAULT_KV_SEPARATOR = ':';
32834
+ // Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,
32835
+ // but guard against overflow
32836
+ handledCPCountPlusOne = handledCPCount + 1;
32837
+ if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {
32838
+ error('overflow');
32839
+ }
32720
32840
 
32721
- /**
32722
- * SSE 字段类型定义
32723
- * @typedef {'data'|'event'|'id'|'retry'} SSEFields
32724
- */
32841
+ delta += (m - n) * handledCPCountPlusOne;
32842
+ n = m;
32725
32843
 
32726
- /**
32727
- * SSE 输出对象类型
32728
- * @typedef {Object} SSEOutput
32729
- * @property {string} [data] - 数据字段
32730
- * @property {string} [event] - 事件字段
32731
- * @property {string} [id] - ID字段
32732
- * @property {string} [retry] - 重试字段
32733
- */
32844
+ for (j = 0; j < inputLength; ++j) {
32845
+ currentValue = input[j];
32734
32846
 
32735
- /**
32736
- * 流配置选项
32737
- * @typedef {Object} XStreamOptions
32738
- * @property {ReadableStream<Uint8Array>} readableStream - 可读流
32739
- * @property {TransformStream<string, *>} [transformStream] - 可选的转换流
32740
- */
32847
+ if (currentValue < n && ++delta > maxInt) {
32848
+ error('overflow');
32849
+ }
32741
32850
 
32742
- /**
32743
- * 流状态对象
32744
- * @typedef {Object} StreamState
32745
- * @property {Array<*>} data - 流数据数组
32746
- * @property {Error|null} error - 错误信息
32747
- * @property {boolean} loading - 加载状态
32748
- */
32851
+ if (currentValue == n) {
32852
+ // Represent delta as a generalized variable-length integer
32853
+ for (q = delta, k = base; /* no condition */; k += base) {
32854
+ t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);
32855
+ if (q < t) {
32856
+ break;
32857
+ }
32858
+ qMinusT = q - t;
32859
+ baseMinusT = base - t;
32860
+ output.push(
32861
+ stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))
32862
+ );
32863
+ q = floor(qMinusT / baseMinusT);
32864
+ }
32749
32865
 
32750
- /**
32751
- * 流回调函数配置
32752
- * @typedef {Object} StreamCallbacks
32753
- * @property {function(*): void} [onData] - 数据回调函数
32754
- * @property {function(Array<*>): void} [onComplete] - 完成回调函数
32755
- * @property {function(Error): void} [onError] - 错误回调函数
32756
- * @property {function(): void} [onCancel] - 取消回调函数
32757
- * @property {function(): void} [onFinish] - 结束回调函数
32758
- */
32866
+ output.push(stringFromCharCode(digitToBasic(q, 0)));
32867
+ bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);
32868
+ delta = 0;
32869
+ ++handledCPCount;
32870
+ }
32871
+ }
32759
32872
 
32760
- /**
32761
- * 流工具函数返回对象
32762
- * @typedef {Object} StreamUtils
32763
- * @property {StreamState} state - 流状态
32764
- * @property {function(XStreamOptions): Promise<void>} startStream - 启动流处理
32765
- * @property {function(): void} cancel - 取消流处理
32766
- * @property {function(): void} reset - 重置流状态
32767
- */
32873
+ ++delta;
32874
+ ++n;
32768
32875
 
32769
- /**
32770
- * 验证字符串是否有效(非空且非空白)
32771
- * @param {string} str - 待验证的字符串
32772
- * @returns {boolean} 是否为有效字符串
32773
- */
32774
- const isValidString = str => (str === null || str === undefined ? '' : str).trim() !== '';
32876
+ }
32877
+ return output.join('');
32878
+ }
32775
32879
 
32776
- /**
32777
- * 创建流分割转换器
32778
- * 按照默认分隔符分割流数据
32779
- * @returns {TransformStream<string, string>} 流分割转换器
32780
- */
32781
- function splitStream() {
32782
- let buffer = '';
32783
- return new TransformStream({
32784
- /**
32785
- * 转换函数
32786
- * @param {string} chunk - 数据块
32787
- * @param {TransformStreamDefaultController<string>} controller - 控制器
32788
- */
32789
- transform(chunk, controller) {
32790
- buffer += chunk;
32791
- const parts = buffer.split(DEFAULT_STREAM_SEPARATOR);
32792
- parts.slice(0, -1).forEach(part => {
32793
- if (isValidString(part)) controller.enqueue(part);
32794
- });
32795
- buffer = parts[parts.length - 1];
32796
- },
32797
- /**
32798
- * 刷新函数
32799
- * @param {TransformStreamDefaultController<string>} controller - 控制器
32800
- */
32801
- flush(controller) {
32802
- if (isValidString(buffer)) controller.enqueue(buffer);
32803
- }
32804
- });
32805
- }
32880
+ /**
32881
+ * Converts a Punycode string representing a domain name or an email address
32882
+ * to Unicode. Only the Punycoded parts of the input will be converted, i.e.
32883
+ * it doesn't matter if you call it on a string that has already been
32884
+ * converted to Unicode.
32885
+ * @memberOf punycode
32886
+ * @param {String} input The Punycoded domain name or email address to
32887
+ * convert to Unicode.
32888
+ * @returns {String} The Unicode representation of the given Punycode
32889
+ * string.
32890
+ */
32891
+ function toUnicode(input) {
32892
+ return mapDomain(input, function(string) {
32893
+ return regexPunycode.test(string)
32894
+ ? decode(string.slice(4).toLowerCase())
32895
+ : string;
32896
+ });
32897
+ }
32806
32898
 
32807
- /**
32808
- * 创建 SSE 数据解析转换器
32809
- * 将文本数据解析为 SSE 格式对象
32810
- * @returns {TransformStream<string, SSEOutput>} SSE 解析转换器
32811
- */
32812
- function splitPart() {
32813
- return new TransformStream({
32814
- /**
32815
- * 转换函数
32816
- * @param {string} partChunk - 数据块
32817
- * @param {TransformStreamDefaultController<SSEOutput>} controller - 控制器
32818
- */
32819
- transform(partChunk, controller) {
32820
- const lines = partChunk.split(DEFAULT_PART_SEPARATOR);
32821
- const sseEvent = lines.reduce((acc, line) => {
32822
- const sepIndex = line.indexOf(DEFAULT_KV_SEPARATOR);
32823
- if (sepIndex === -1) return acc;
32824
- const key = line.slice(0, sepIndex);
32825
- if (!isValidString(key)) return acc;
32826
- const value = line.slice(sepIndex + 1);
32827
- return {
32828
- ...acc,
32829
- [key]: value
32830
- };
32831
- }, {});
32832
- if (Object.keys(sseEvent).length > 0) controller.enqueue(sseEvent);
32833
- }
32834
- });
32835
- }
32899
+ /**
32900
+ * Converts a Unicode string representing a domain name or an email address to
32901
+ * Punycode. Only the non-ASCII parts of the domain name will be converted,
32902
+ * i.e. it doesn't matter if you call it with a domain that's already in
32903
+ * ASCII.
32904
+ * @memberOf punycode
32905
+ * @param {String} input The domain name or email address to convert, as a
32906
+ * Unicode string.
32907
+ * @returns {String} The Punycode representation of the given domain name or
32908
+ * email address.
32909
+ */
32910
+ function toASCII(input) {
32911
+ return mapDomain(input, function(string) {
32912
+ return regexNonASCII.test(string)
32913
+ ? 'xn--' + encode(string)
32914
+ : string;
32915
+ });
32916
+ }
32917
+
32918
+ /*--------------------------------------------------------------------------*/
32919
+
32920
+ /** Define the public API */
32921
+ punycode = {
32922
+ /**
32923
+ * A string representing the current Punycode.js version number.
32924
+ * @memberOf punycode
32925
+ * @type String
32926
+ */
32927
+ 'version': '1.4.1',
32928
+ /**
32929
+ * An object of methods to convert from JavaScript's internal character
32930
+ * representation (UCS-2) to Unicode code points, and back.
32931
+ * @see <https://mathiasbynens.be/notes/javascript-encoding>
32932
+ * @memberOf punycode
32933
+ * @type Object
32934
+ */
32935
+ 'ucs2': {
32936
+ 'decode': ucs2decode,
32937
+ 'encode': ucs2encode
32938
+ },
32939
+ 'decode': decode,
32940
+ 'encode': encode,
32941
+ 'toASCII': toASCII,
32942
+ 'toUnicode': toUnicode
32943
+ };
32944
+
32945
+ /** Expose `punycode` */
32946
+ // Some AMD build optimizers, like r.js, check for specific condition patterns
32947
+ // like the following:
32948
+ if (
32949
+ true
32950
+ ) {
32951
+ !(__WEBPACK_AMD_DEFINE_RESULT__ = (function() {
32952
+ return punycode;
32953
+ }).call(exports, __webpack_require__, exports, module),
32954
+ __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
32955
+ } else {}
32956
+
32957
+ }(this));
32958
+
32959
+ /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(24)(module), __webpack_require__(11)))
32960
+
32961
+ /***/ }),
32962
+ /* 80 */
32963
+ /***/ (function(module, exports, __webpack_require__) {
32964
+
32965
+ "use strict";
32966
+ // markdown-it default options
32967
+
32968
+
32969
+
32970
+
32971
+ module.exports = {
32972
+ options: {
32973
+ html: false, // Enable HTML tags in source
32974
+ xhtmlOut: false, // Use '/' to close single tags (<br />)
32975
+ breaks: false, // Convert '\n' in paragraphs into <br>
32976
+ langPrefix: 'language-', // CSS language prefix for fenced blocks
32977
+ linkify: false, // autoconvert URL-like texts to links
32978
+
32979
+ // Enable some language-neutral replacements + quotes beautification
32980
+ typographer: false,
32836
32981
 
32837
- /**
32838
- * 核心流处理函数(支持中断)
32839
- * @param {XStreamOptions} options - 配置选项
32840
- * @param {ReadableStream<Uint8Array>} options.readableStream - 可读流
32841
- * @param {TransformStream<string, *>} [options.transformStream] - 可选的转换流
32842
- * @param {AbortSignal} [signal] - 中断信号
32843
- * @returns {ReadableStream<*>} 处理后的流,支持异步迭代
32844
- * @throws {TypeError} readableStream 不是 ReadableStream 实例时抛出
32845
- */
32846
- function XStream(options, signal) {
32847
- const {
32848
- readableStream,
32849
- transformStream
32850
- } = options;
32851
- if (!(readableStream instanceof ReadableStream)) {
32852
- throw new TypeError('options.readableStream 必须是 ReadableStream 的实例。');
32982
+ // Double + single quotes replacement pairs, when typographer enabled,
32983
+ // and smartquotes on. Could be either a String or an Array.
32984
+ //
32985
+ // For example, you can use '«»„“' for Russian, '„“‚‘' for German,
32986
+ // and ['«\xA0', '\xA0»', '‹\xA0', '\xA0›'] for French (including nbsp).
32987
+ quotes: '\u201c\u201d\u2018\u2019', /* “”‘’ */
32988
+
32989
+ // Highlighter function. Should return escaped HTML,
32990
+ // or '' if the source string is not changed and should be escaped externaly.
32991
+ // If result starts with <pre... internal wrapper is skipped.
32992
+ //
32993
+ // function (/*str, lang*/) { return ''; }
32994
+ //
32995
+ highlight: null,
32996
+
32997
+ maxNesting: 100 // Internal protection, recursion limit
32998
+ },
32999
+
33000
+ components: {
33001
+
33002
+ core: {},
33003
+ block: {},
33004
+ inline: {}
32853
33005
  }
32854
- const decoderStream = new TextDecoderStream();
32855
- const processedStream = transformStream ? readableStream.pipeThrough(decoderStream).pipeThrough(transformStream) : readableStream.pipeThrough(decoderStream).pipeThrough(splitStream()).pipeThrough(splitPart());
33006
+ };
32856
33007
 
32857
- // 为流添加异步迭代器并处理中断信号
32858
- processedStream[Symbol.asyncIterator] = async function* () {
32859
- const reader = this.getReader();
32860
- this.reader = reader; // 保存读取器引用
32861
- try {
32862
- while (true) {
32863
- if (signal && signal.aborted) {
32864
- await reader.cancel(); // 主动取消 reader
32865
- break;
32866
- }
32867
- const {
32868
- done,
32869
- value
32870
- } = await reader.read();
32871
- if (done) break;
32872
- if (value) yield value;
32873
- }
32874
- } finally {
32875
- reader.releaseLock(); // 释放锁
32876
- }
32877
- };
32878
- return processedStream;
32879
- }
32880
33008
 
32881
- /**
32882
- * streamMixin -
32883
- * 用于处理流式数据的 mixin,支持 SSE 数据解析和中断功能
32884
- * @namespace streamMixin
32885
- * @type {Object}
32886
- */
32887
- const streamMixin = {
32888
- /**
32889
- * 组件数据
32890
- * @returns {Object} 响应式数据对象
32891
- * @property {Array<*>} streamData - 流数据数组
32892
- * @property {Error|null} streamError - 流错误信息
32893
- * @property {boolean} streamLoading - 流处理状态
32894
- * @property {AbortController|null} _abortController - 私有:中断控制器
32895
- * @property {ReadableStream|null} _currentStream - 私有:当前流引用
32896
- */
32897
- data() {
32898
- return {
32899
- streamData: [],
32900
- streamError: null,
32901
- streamLoading: false,
32902
- _abortController: null,
32903
- _currentStream: null
32904
- };
33009
+ /***/ }),
33010
+ /* 81 */
33011
+ /***/ (function(module, exports, __webpack_require__) {
33012
+
33013
+ "use strict";
33014
+ // "Zero" preset, with nothing enabled. Useful for manual configuring of simple
33015
+ // modes. For example, to parse bold/italic only.
33016
+
33017
+
33018
+
33019
+
33020
+ module.exports = {
33021
+ options: {
33022
+ html: false, // Enable HTML tags in source
33023
+ xhtmlOut: false, // Use '/' to close single tags (<br />)
33024
+ breaks: false, // Convert '\n' in paragraphs into <br>
33025
+ langPrefix: 'language-', // CSS language prefix for fenced blocks
33026
+ linkify: false, // autoconvert URL-like texts to links
33027
+
33028
+ // Enable some language-neutral replacements + quotes beautification
33029
+ typographer: false,
33030
+
33031
+ // Double + single quotes replacement pairs, when typographer enabled,
33032
+ // and smartquotes on. Could be either a String or an Array.
33033
+ //
33034
+ // For example, you can use '«»„“' for Russian, '„“‚‘' for German,
33035
+ // and ['«\xA0', '\xA0»', '‹\xA0', '\xA0›'] for French (including nbsp).
33036
+ quotes: '\u201c\u201d\u2018\u2019', /* “”‘’ */
33037
+
33038
+ // Highlighter function. Should return escaped HTML,
33039
+ // or '' if the source string is not changed and should be escaped externaly.
33040
+ // If result starts with <pre... internal wrapper is skipped.
33041
+ //
33042
+ // function (/*str, lang*/) { return ''; }
33043
+ //
33044
+ highlight: null,
33045
+
33046
+ maxNesting: 20 // Internal protection, recursion limit
32905
33047
  },
32906
- methods: {
32907
- /**
32908
- * 启动流式请求
32909
- * @async
32910
- * @param {XStreamOptions} options - 流配置选项
32911
- * @param {ReadableStream<Uint8Array>} options.readableStream - 可读流
32912
- * @param {TransformStream<string, *>} [options.transformStream] - 可选的转换流
32913
- * @returns {Promise<void>} 流处理完成的 Promise
32914
- * @fires streamMixin#stream-data - 收到新数据时触发
32915
- * @fires streamMixin#stream-complete - 流完成时触发
32916
- * @fires streamMixin#stream-error - 流错误时触发
32917
- * @fires streamMixin#stream-finish - 流处理结束时触发
32918
- * @example
32919
- * // 基础使用
32920
- * const response = await fetch('/api/stream')
32921
- * await this.startStream({ readableStream: response.body })
32922
- *
32923
- * // 使用自定义转换流
32924
- * const customTransform = new TransformStream({ ... })
32925
- * await this.startStream({
32926
- * readableStream: response.body,
32927
- * transformStream: customTransform
32928
- * })
32929
- */
32930
- async startStream(options) {
32931
- this.streamLoading = true;
32932
- this.streamError = null;
32933
- this.streamData = [];
32934
- this._abortController = new AbortController();
32935
- this._currentStream = XStream(options, this._abortController.signal);
32936
- try {
32937
- for await (const item of this._currentStream) {
32938
- this.streamData.push(item);
32939
- // 触发数据更新事件
32940
- /**
32941
- * 流数据事件
32942
- * @event streamMixin#stream-data
32943
- * @type {*} 流数据项
32944
- */
32945
- this.$emit('stream-data', item);
32946
- }
32947
- // 流完成事件
32948
- /**
32949
- * 流完成事件
32950
- * @event streamMixin#stream-complete
32951
- * @type {Array<*>} 所有流数据
32952
- */
32953
- this.$emit('stream-complete', this.streamData);
32954
- } catch (err) {
32955
- if (err instanceof Error) {
32956
- this.streamError = err;
32957
- /**
32958
- * 流错误事件
32959
- * @event streamMixin#stream-error
32960
- * @type {Error} 错误对象
32961
- */
32962
- this.$emit('stream-error', err);
32963
- }
32964
- } finally {
32965
- this.streamLoading = false;
32966
- this._currentStream = null; // 释放流引用
32967
- this._abortController = null; // 释放控制器
32968
- /**
32969
- * 流处理结束事件
32970
- * @event streamMixin#stream-finish
32971
- */
32972
- this.$emit('stream-finish');
32973
- }
32974
- },
32975
- /**
32976
- * 中断流式请求(强制关闭流)
32977
- * @returns {void}
32978
- * @fires streamMixin#stream-cancel - 流被中断时触发
32979
- * @example
32980
- * this.cancelStream()
32981
- */
32982
- cancelStream() {
32983
- if (this._abortController) {
32984
- this._abortController.abort();
32985
- /**
32986
- * 流取消事件
32987
- * @event streamMixin#stream-cancel
32988
- */
32989
- this.$emit('stream-cancel');
32990
- }
33048
+
33049
+ components: {
33050
+
33051
+ core: {
33052
+ rules: [
33053
+ 'normalize',
33054
+ 'block',
33055
+ 'inline'
33056
+ ]
32991
33057
  },
32992
- /**
32993
- * 重置流状态
32994
- * 清空所有数据和状态,但不触发事件
32995
- * @returns {void}
32996
- * @example
32997
- * this.resetStream()
32998
- */
32999
- resetStream() {
33000
- this.streamData = [];
33001
- this.streamError = null;
33002
- this.streamLoading = false;
33003
- this._abortController = null;
33004
- this._currentStream = null;
33058
+
33059
+ block: {
33060
+ rules: [
33061
+ 'paragraph'
33062
+ ]
33005
33063
  },
33006
- /**
33007
- * 创建流处理器的便捷方法
33008
- * @param {ReadableStream<Uint8Array>} readableStream - 可读流
33009
- * @param {TransformStream<string, *>} [transformStream] - 可选的转换流
33010
- * @returns {XStreamOptions} 流处理器配置对象
33011
- * @example
33012
- * const processor = this.createStreamProcessor(response.body)
33013
- * await this.startStream(processor)
33014
- */
33015
- createStreamProcessor(readableStream, transformStream) {
33016
- return {
33017
- readableStream,
33018
- transformStream
33019
- };
33064
+
33065
+ inline: {
33066
+ rules: [
33067
+ 'text'
33068
+ ],
33069
+ rules2: [
33070
+ 'balance_pairs',
33071
+ 'text_collapse'
33072
+ ]
33020
33073
  }
33021
- },
33022
- /**
33023
- * 组件销毁前的生命周期钩子
33024
- * 自动清理流资源
33025
- * @returns {void}
33026
- */
33027
- beforeDestroy() {
33028
- // 组件销毁时清理资源
33029
- this.cancelStream();
33030
33074
  }
33031
33075
  };
33032
33076
 
33033
- /**
33034
- * 工具函数版本 - 用于非组件场景
33035
- * @param {StreamCallbacks} [callbacks={}] - 回调函数配置
33036
- * @param {function(*): void} [callbacks.onData] - 数据回调函数
33037
- * @param {function(Array<*>): void} [callbacks.onComplete] - 完成回调函数
33038
- * @param {function(Error): void} [callbacks.onError] - 错误回调函数
33039
- * @param {function(): void} [callbacks.onCancel] - 取消回调函数
33040
- * @param {function(): void} [callbacks.onFinish] - 结束回调函数
33041
- * @returns {StreamUtils} 包含流处理相关方法的对象
33042
- * @example
33043
- * // 基础使用
33044
- * const streamUtils = createStreamUtils({
33045
- * onData: (item) => console.log('数据:', item),
33046
- * onComplete: (allData) => console.log('完成:', allData),
33047
- * onError: (error) => console.error('错误:', error)
33048
- * })
33049
- *
33050
- * const response = await fetch('/api/stream')
33051
- * await streamUtils.startStream({ readableStream: response.body })
33052
- */
33053
- function createStreamUtils(callbacks = {}) {
33054
- /**
33055
- * 流状态对象
33056
- * @type {StreamState}
33057
- */
33058
- const state = {
33059
- data: [],
33060
- error: null,
33061
- loading: false
33062
- };
33063
- let abortController = null;
33064
- let currentStream = null;
33065
33077
 
33066
- /**
33067
- * 启动流处理
33068
- * @async
33069
- * @param {XStreamOptions} options - 流配置选项
33070
- * @returns {Promise<void>} 流处理完成的 Promise
33071
- */
33072
- const startStream = async options => {
33073
- state.loading = true;
33074
- state.error = null;
33075
- state.data = [];
33076
- abortController = new AbortController();
33077
- currentStream = XStream(options, abortController.signal);
33078
- try {
33079
- for await (const item of currentStream) {
33080
- state.data.push(item);
33081
- if (callbacks.onData) {
33082
- callbacks.onData(item);
33083
- }
33084
- }
33085
- if (callbacks.onComplete) {
33086
- callbacks.onComplete(state.data);
33087
- }
33088
- } catch (err) {
33089
- if (err instanceof Error) {
33090
- state.error = err;
33091
- if (callbacks.onError) {
33092
- callbacks.onError(err);
33093
- }
33094
- }
33095
- } finally {
33096
- state.loading = false;
33097
- currentStream = null;
33098
- abortController = null;
33099
- if (callbacks.onFinish) {
33100
- callbacks.onFinish();
33101
- }
33102
- }
33103
- };
33078
+ /***/ }),
33079
+ /* 82 */
33080
+ /***/ (function(module, exports, __webpack_require__) {
33104
33081
 
33105
- /**
33106
- * 取消流处理
33107
- * @returns {void}
33108
- */
33109
- const cancel = () => {
33110
- if (abortController) {
33111
- abortController.abort();
33112
- if (callbacks.onCancel) {
33113
- callbacks.onCancel();
33114
- }
33115
- }
33116
- };
33082
+ "use strict";
33083
+ // Commonmark default options
33117
33084
 
33118
- /**
33119
- * 重置流状态
33120
- * @returns {void}
33121
- */
33122
- const reset = () => {
33123
- state.data = [];
33124
- state.error = null;
33125
- state.loading = false;
33126
- abortController = null;
33127
- currentStream = null;
33128
- };
33129
- return {
33130
- state,
33131
- startStream,
33132
- cancel,
33133
- reset
33134
- };
33135
- }
33136
33085
 
33137
- // 导出常量和工具函数
33138
33086
 
33139
33087
 
33140
- /**
33141
- * 默认导出 streamMixin
33142
- * @type {Object}
33143
- */
33144
- /* harmony default export */ var mixins_streamMixin = (streamMixin);
33145
- // CONCATENATED MODULE: ./src/mixins/index.js
33146
- /**
33147
- * Mixins 入口文件
33148
- */
33088
+ module.exports = {
33089
+ options: {
33090
+ html: true, // Enable HTML tags in source
33091
+ xhtmlOut: true, // Use '/' to close single tags (<br />)
33092
+ breaks: false, // Convert '\n' in paragraphs into <br>
33093
+ langPrefix: 'language-', // CSS language prefix for fenced blocks
33094
+ linkify: false, // autoconvert URL-like texts to links
33149
33095
 
33096
+ // Enable some language-neutral replacements + quotes beautification
33097
+ typographer: false,
33150
33098
 
33099
+ // Double + single quotes replacement pairs, when typographer enabled,
33100
+ // and smartquotes on. Could be either a String or an Array.
33101
+ //
33102
+ // For example, you can use '«»„“' for Russian, '„“‚‘' for German,
33103
+ // and ['«\xA0', '\xA0»', '‹\xA0', '\xA0›'] for French (including nbsp).
33104
+ quotes: '\u201c\u201d\u2018\u2019', /* “”‘’ */
33151
33105
 
33106
+ // Highlighter function. Should return escaped HTML,
33107
+ // or '' if the source string is not changed and should be escaped externaly.
33108
+ // If result starts with <pre... internal wrapper is skipped.
33109
+ //
33110
+ // function (/*str, lang*/) { return ''; }
33111
+ //
33112
+ highlight: null,
33152
33113
 
33114
+ maxNesting: 20 // Internal protection, recursion limit
33115
+ },
33116
+
33117
+ components: {
33118
+
33119
+ core: {
33120
+ rules: [
33121
+ 'normalize',
33122
+ 'block',
33123
+ 'inline'
33124
+ ]
33125
+ },
33126
+
33127
+ block: {
33128
+ rules: [
33129
+ 'blockquote',
33130
+ 'code',
33131
+ 'fence',
33132
+ 'heading',
33133
+ 'hr',
33134
+ 'html_block',
33135
+ 'lheading',
33136
+ 'list',
33137
+ 'reference',
33138
+ 'paragraph'
33139
+ ]
33140
+ },
33141
+
33142
+ inline: {
33143
+ rules: [
33144
+ 'autolink',
33145
+ 'backticks',
33146
+ 'emphasis',
33147
+ 'entity',
33148
+ 'escape',
33149
+ 'html_inline',
33150
+ 'image',
33151
+ 'link',
33152
+ 'newline',
33153
+ 'text'
33154
+ ],
33155
+ rules2: [
33156
+ 'balance_pairs',
33157
+ 'emphasis',
33158
+ 'text_collapse'
33159
+ ]
33160
+ }
33161
+ }
33162
+ };
33153
33163
 
33154
- /* harmony default export */ var mixins = __webpack_exports__["default"] = ({
33155
- recordMixin: recordMixin,
33156
- sendMixin: sendMixin,
33157
- XRequest: XRequest,
33158
- createSendUtils: createSendUtils,
33159
- streamMixin: streamMixin,
33160
- createStreamUtils: createStreamUtils,
33161
- XStream: XStream,
33162
- splitStream: splitStream,
33163
- splitPart: splitPart,
33164
- isValidString: isValidString,
33165
- DEFAULT_STREAM_SEPARATOR: DEFAULT_STREAM_SEPARATOR,
33166
- DEFAULT_PART_SEPARATOR: DEFAULT_PART_SEPARATOR,
33167
- DEFAULT_KV_SEPARATOR: DEFAULT_KV_SEPARATOR
33168
- });
33169
33164
 
33170
33165
  /***/ }),
33171
33166
  /* 83 */
@@ -33193,7 +33188,7 @@ function createStreamUtils(callbacks = {}) {
33193
33188
 
33194
33189
  var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]});
33195
33190
  // Module
33196
- ___CSS_LOADER_EXPORT___.push([module.i, "[data-v-4f88f26a]:root{--color-primary: #409EFF;--color-success: #67C23A;--color-warning: #E6A23C;--color-danger: #F56C6C;--color-info: #909399}.card-motion-enter-active[data-v-4f88f26a],.card-motion-move[data-v-4f88f26a],.card-motion-leave-active[data-v-4f88f26a]{transition:all 0.3s ease;opacity:1;transform:translateX(0)}.card-motion-enter[data-v-4f88f26a],.card-motion-leave-to[data-v-4f88f26a]{opacity:0;transform:translateX(-100%)}.card-motion-leave-active[data-v-4f88f26a]{transform:translateX(100%);opacity:0}.el-x-attachments-file-card-wrap[data-v-4f88f26a]{display:flex;height:100%;align-items:center}.el-x-attachments-upload-placeholder[data-v-4f88f26a]{display:inline-block;width:fit-content;align-self:center;margin:6px}.el-x-attachments-card[data-v-4f88f26a]{display:inline-block;vertical-align:top}.el-x-attachments-card-item[data-v-4f88f26a]{margin:6px}.el-x-attachments-prev-btn[data-v-4f88f26a],.el-x-attachments-next-btn[data-v-4f88f26a]{position:absolute;top:50%;transform:translateY(-50%);z-index:10;background-color:rgba(0,0,0,0.3);color:white;border:none;padding:4px 0px;border-radius:3px;transition:background-color 0.3s ease}.el-x-attachments-prev-btn[data-v-4f88f26a]:hover,.el-x-attachments-next-btn[data-v-4f88f26a]:hover{background-color:rgba(0,0,0,0.5)}.el-x-attachments-prev-btn[data-v-4f88f26a]:active,.el-x-attachments-next-btn[data-v-4f88f26a]:active{background-color:rgba(0,0,0,0.7)}.el-x-attachments-prev-btn[data-v-4f88f26a]{left:8px;border-top-left-radius:0px;border-bottom-left-radius:0px}.el-x-attachments-next-btn[data-v-4f88f26a]{right:8px;border-top-right-radius:0px;border-bottom-right-radius:0px}.el-x-attachments-background[data-v-4f88f26a]{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;pointer-events:none}.el-x-attachments-background-start[data-v-4f88f26a]{position:absolute;top:0;left:0;bottom:0;width:50px;background:linear-gradient(to right, rgba(255,255,255,0.8), rgba(255,255,255,0));z-index:5}.el-x-attachments-background-end[data-v-4f88f26a]{position:absolute;top:0;right:0;bottom:0;width:50px;background:linear-gradient(to left, rgba(255,255,255,0.8), rgba(255,255,255,0));z-index:5}.el-x-attachments-overflow-scrollX[data-v-4f88f26a]{height:100%;scrollbar-width:none}.el-x-attachments-overflow-scrollX[data-v-4f88f26a]::-webkit-scrollbar{display:none}.el-x-attachments-overflow-scrollY[data-v-4f88f26a]{width:100%;height:100%}.el-x-attachments-wrapper[data-v-4f88f26a]{position:relative;display:block}.el-x-attachments-upload-btn[data-v-4f88f26a]{display:flex}.el-x-attachments-upload-btn[data-v-4f88f26a] .el-upload{border:1px dashed #DCDFE6;border-radius:6px;cursor:pointer;position:relative;overflow:hidden;transition:all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);box-sizing:border-box;text-align:center}.el-x-attachments-upload-btn[data-v-4f88f26a] .el-upload:hover{border-color:#409EFF}.el-x-attachments-upload-btn[data-v-4f88f26a] .el-upload:hover .uploader-icon{color:#409EFF}.el-x-attachments-upload-btn .uploader-icon[data-v-4f88f26a]{font-size:28px;color:#8c939d;text-align:center;width:var(--el-x-attachments-upload-icon-size);height:var(--el-x-attachments-upload-icon-size);line-height:var(--el-x-attachments-upload-icon-size)}.el-x-attachments-upload-btn[data-v-4f88f26a] .el-upload-dragger{padding:0;width:auto !important;height:auto !important;background-color:transparent}.el-x-attachments-upload-btn[data-v-4f88f26a] .el-upload-dragger:hover .el-icon{color:#409EFF}.el-x-attachments-drop-area[data-v-4f88f26a]{position:absolute !important;top:0 !important;left:0 !important;width:calc(100% - 4px) !important;height:calc(100% - 4px) !important;border-radius:15px !important;border:2px dashed #409EFF !important;z-index:9999 !important;display:flex !important;align-items:center !important;justify-content:center !important;flex-direction:column !important;background:rgba(225,225,225,0.8) !important;backdrop-filter:blur(4px) !important;animation:dragAreaShow-4f88f26a 0.3s ease-in-out !important;pointer-events:none !important}.el-x-attachments-drop-area-icon[data-v-4f88f26a]{font-size:50px !important;color:#409EFF !important;animation:bounce-4f88f26a 1s infinite alternate !important}.el-x-attachments-drop-area-text[data-v-4f88f26a]{font-size:16px !important;color:#409EFF !important;margin-top:10px !important;text-align:center !important;width:100% !important;max-width:300px !important;font-weight:bold !important}@keyframes dragAreaShow-4f88f26a{from{opacity:0;transform:scale(0.9)}to{opacity:1;transform:scale(1)}}@keyframes bounce-4f88f26a{from{transform:translateY(0)}to{transform:translateY(-10px)}}\n", ""]);
33191
+ ___CSS_LOADER_EXPORT___.push([module.i, "[data-v-4f88f26a]:root{--color-primary: #409EFF;--color-success: #67C23A;--color-warning: #E6A23C;--color-danger: #F56C6C;--color-info: #909399}.card-motion-enter-active[data-v-4f88f26a],.card-motion-move[data-v-4f88f26a],.card-motion-leave-active[data-v-4f88f26a]{transition:all .3s ease;opacity:1;transform:translateX(0)}.card-motion-enter[data-v-4f88f26a],.card-motion-leave-to[data-v-4f88f26a]{opacity:0;transform:translateX(-100%)}.card-motion-leave-active[data-v-4f88f26a]{transform:translateX(100%);opacity:0}.el-x-attachments-file-card-wrap[data-v-4f88f26a]{display:flex;height:100%;align-items:center}.el-x-attachments-upload-placeholder[data-v-4f88f26a]{display:inline-block;width:fit-content;align-self:center;margin:6px}.el-x-attachments-card[data-v-4f88f26a]{display:inline-block;vertical-align:top}.el-x-attachments-card-item[data-v-4f88f26a]{margin:6px}.el-x-attachments-prev-btn[data-v-4f88f26a],.el-x-attachments-next-btn[data-v-4f88f26a]{position:absolute;top:50%;transform:translateY(-50%);z-index:10;background-color:rgba(0,0,0,.3);color:#fff;border:none;padding:4px 0px;border-radius:3px;transition:background-color .3s ease}.el-x-attachments-prev-btn[data-v-4f88f26a]:hover,.el-x-attachments-next-btn[data-v-4f88f26a]:hover{background-color:rgba(0,0,0,.5)}.el-x-attachments-prev-btn[data-v-4f88f26a]:active,.el-x-attachments-next-btn[data-v-4f88f26a]:active{background-color:rgba(0,0,0,.7)}.el-x-attachments-prev-btn[data-v-4f88f26a]{left:8px;border-top-left-radius:0px;border-bottom-left-radius:0px}.el-x-attachments-next-btn[data-v-4f88f26a]{right:8px;border-top-right-radius:0px;border-bottom-right-radius:0px}.el-x-attachments-background[data-v-4f88f26a]{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;pointer-events:none}.el-x-attachments-background-start[data-v-4f88f26a]{position:absolute;top:0;left:0;bottom:0;width:50px;background:linear-gradient(to right, rgba(255, 255, 255, 0.8), rgba(255, 255, 255, 0));z-index:5}.el-x-attachments-background-end[data-v-4f88f26a]{position:absolute;top:0;right:0;bottom:0;width:50px;background:linear-gradient(to left, rgba(255, 255, 255, 0.8), rgba(255, 255, 255, 0));z-index:5}.el-x-attachments-overflow-scrollX[data-v-4f88f26a]{height:100%;scrollbar-width:none}.el-x-attachments-overflow-scrollX[data-v-4f88f26a]::-webkit-scrollbar{display:none}.el-x-attachments-overflow-scrollY[data-v-4f88f26a]{width:100%;height:100%}.el-x-attachments-wrapper[data-v-4f88f26a]{position:relative;display:block}.el-x-attachments-upload-btn[data-v-4f88f26a]{display:flex}.el-x-attachments-upload-btn[data-v-4f88f26a] .el-upload{border:1px dashed #dcdfe6;border-radius:6px;cursor:pointer;position:relative;overflow:hidden;transition:all .3s cubic-bezier(0.645, 0.045, 0.355, 1);box-sizing:border-box;text-align:center}.el-x-attachments-upload-btn[data-v-4f88f26a] .el-upload:hover{border-color:#409eff}.el-x-attachments-upload-btn[data-v-4f88f26a] .el-upload:hover .uploader-icon{color:#409eff}.el-x-attachments-upload-btn .uploader-icon[data-v-4f88f26a]{font-size:28px;color:#8c939d;text-align:center;width:var(--el-x-attachments-upload-icon-size);height:var(--el-x-attachments-upload-icon-size);line-height:var(--el-x-attachments-upload-icon-size)}.el-x-attachments-upload-btn[data-v-4f88f26a] .el-upload-dragger{padding:0;width:auto !important;height:auto !important;background-color:rgba(0,0,0,0)}.el-x-attachments-upload-btn[data-v-4f88f26a] .el-upload-dragger:hover .el-icon{color:#409eff}.el-x-attachments-drop-area[data-v-4f88f26a]{position:absolute !important;top:0 !important;left:0 !important;width:calc(100% - 4px) !important;height:calc(100% - 4px) !important;border-radius:15px !important;border:2px dashed #409eff !important;z-index:9999 !important;display:flex !important;align-items:center !important;justify-content:center !important;flex-direction:column !important;background:rgba(225,225,225,.8) !important;backdrop-filter:blur(4px) !important;animation:dragAreaShow-4f88f26a .3s ease-in-out !important;pointer-events:none !important}.el-x-attachments-drop-area-icon[data-v-4f88f26a]{font-size:50px !important;color:#409eff !important;animation:bounce-4f88f26a 1s infinite alternate !important}.el-x-attachments-drop-area-text[data-v-4f88f26a]{font-size:16px !important;color:#409eff !important;margin-top:10px !important;text-align:center !important;width:100% !important;max-width:300px !important;font-weight:bold !important}@keyframes dragAreaShow-4f88f26a{from{opacity:0;transform:scale(0.9)}to{opacity:1;transform:scale(1)}}@keyframes bounce-4f88f26a{from{transform:translateY(0)}to{transform:translateY(-10px)}}", ""]);
33197
33192
  // Exports
33198
33193
  /* harmony default export */ __webpack_exports__["a"] = (___CSS_LOADER_EXPORT___);
33199
33194
 
@@ -33209,7 +33204,7 @@ ___CSS_LOADER_EXPORT___.push([module.i, "[data-v-4f88f26a]:root{--color-primary:
33209
33204
 
33210
33205
  var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]});
33211
33206
  // Module
33212
- ___CSS_LOADER_EXPORT___.push([module.i, "[data-v-1c7b8442]:root{--color-primary: #409EFF;--color-success: #67C23A;--color-warning: #E6A23C;--color-danger: #F56C6C;--color-info: #909399}.el-x-bubble-list[data-v-1c7b8442]{display:flex;flex-direction:column;gap:16px;min-height:0;max-height:var(--el-x-bubble-list-max-height);overflow:auto;scroll-behavior:smooth;position:relative}.el-x-bubble-list[data-v-1c7b8442]::-webkit-scrollbar{width:6px;height:8px}.el-x-bubble-list[data-v-1c7b8442]::-webkit-scrollbar-thumb{background:transparent;background-color:#0003;border-radius:10px;transition:background-color 0.2s ease-in-out}.el-x-bubble-list[data-v-1c7b8442]::-webkit-scrollbar-track{border-radius:10px;background:transparent}.el-x-bubble-list[data-v-1c7b8442]:hover::-webkit-scrollbar-thumb{background:#c1c1c1}.el-x-bubble-list[data-v-1c7b8442]:hover::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.el-x-bubble-list.always-scrollbar[data-v-1c7b8442]::-webkit-scrollbar-thumb{background:#c1c1c1}.el-x-bubble-list.always-scrollbar[data-v-1c7b8442]:hover::-webkit-scrollbar-thumb{background:#a8a8a8}@supports (scrollbar-color: auto){.el-x-bubble-list[data-v-1c7b8442]{scrollbar-color:transparent transparent;scrollbar-width:thin}.el-x-bubble-list[data-v-1c7b8442]:hover{scrollbar-color:#c1c1c1 transparent}.el-x-bubble-list.always-scrollbar[data-v-1c7b8442]{scrollbar-color:#c1c1c1 transparent}}.el-x-bubble-list-default-back-button[data-v-1c7b8442]{position:sticky;user-select:none;cursor:pointer;width:40px;height:40px;padding:10px;box-sizing:border-box;display:flex;align-items:center;justify-content:center;background-color:#ffffff;border-radius:50%;box-shadow:0 0 4px 0 rgba(0,0,0,0.02),0 6px 10px 0 rgba(47,53,64,0.1);transition:all 0.3s ease;z-index:100}.el-x-bubble-list-default-back-button[data-v-1c7b8442]:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,0,0,0.15)}.el-x-bubble-list-default-back-button .el-x-bubble-list-back-to-bottom-icon[data-v-1c7b8442]{font-size:var(--el-x-bubble-list-btn-size);position:relative}.el-x-bubble-list-default-back-button .el-x-bubble-list-back-to-bottom-icon .back-to-bottom-loading-svg-bg[data-v-1c7b8442]{position:absolute;font-size:calc(var(--el-x-bubble-list-btn-size) + 26px);animation:is-loading-1c7b8442 1s infinite linear;width:40px;height:40px}@keyframes is-loading-1c7b8442{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.el-x-bubble-list-default-back-button .back-to-bottom-loading-svg-bg[data-v-1c7b8442]{position:absolute;font-size:calc(var(--el-x-bubble-list-btn-size) + 26px);animation:is-loading-1c7b8442 1s infinite linear;width:40px;height:40px}@keyframes is-loading-1c7b8442{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.el-x-bubble-list-back-to-bottom-solt[data-v-1c7b8442]{position:sticky;user-select:none;cursor:initial;width:fit-content;height:fit-content;padding:0;box-sizing:border-box;display:flex;align-items:center;justify-content:center;box-shadow:initial}.el-x-bubble-list-back-to-bottom-solt[data-v-1c7b8442]:hover{transform:translateY(0px);box-shadow:initial}\n", ""]);
33207
+ ___CSS_LOADER_EXPORT___.push([module.i, "[data-v-1c7b8442]:root{--color-primary: #409EFF;--color-success: #67C23A;--color-warning: #E6A23C;--color-danger: #F56C6C;--color-info: #909399}.el-x-bubble-list[data-v-1c7b8442]{display:flex;flex-direction:column;gap:16px;min-height:0;max-height:var(--el-x-bubble-list-max-height);overflow:auto;scroll-behavior:smooth;position:relative}.el-x-bubble-list[data-v-1c7b8442]::-webkit-scrollbar{width:6px;height:8px}.el-x-bubble-list[data-v-1c7b8442]::-webkit-scrollbar-thumb{background:rgba(0,0,0,0);background-color:rgba(0,0,0,.2);border-radius:10px;transition:background-color .2s ease-in-out}.el-x-bubble-list[data-v-1c7b8442]::-webkit-scrollbar-track{border-radius:10px;background:rgba(0,0,0,0)}.el-x-bubble-list[data-v-1c7b8442]:hover::-webkit-scrollbar-thumb{background:#c1c1c1}.el-x-bubble-list[data-v-1c7b8442]:hover::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.el-x-bubble-list.always-scrollbar[data-v-1c7b8442]::-webkit-scrollbar-thumb{background:#c1c1c1}.el-x-bubble-list.always-scrollbar[data-v-1c7b8442]:hover::-webkit-scrollbar-thumb{background:#a8a8a8}@supports(scrollbar-color: auto){.el-x-bubble-list[data-v-1c7b8442]{scrollbar-color:rgba(0,0,0,0) rgba(0,0,0,0);scrollbar-width:thin}.el-x-bubble-list[data-v-1c7b8442]:hover{scrollbar-color:#c1c1c1 rgba(0,0,0,0)}.el-x-bubble-list.always-scrollbar[data-v-1c7b8442]{scrollbar-color:#c1c1c1 rgba(0,0,0,0)}}.el-x-bubble-list-default-back-button[data-v-1c7b8442]{position:sticky;user-select:none;cursor:pointer;width:40px;height:40px;padding:10px;box-sizing:border-box;display:flex;align-items:center;justify-content:center;background-color:#fff;border-radius:50%;box-shadow:0 0 4px 0 rgba(0,0,0,.02),0 6px 10px 0 rgba(47,53,64,.1);transition:all .3s ease;z-index:100}.el-x-bubble-list-default-back-button[data-v-1c7b8442]:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,0,0,.15)}.el-x-bubble-list-default-back-button .el-x-bubble-list-back-to-bottom-icon[data-v-1c7b8442]{font-size:var(--el-x-bubble-list-btn-size);position:relative}.el-x-bubble-list-default-back-button .el-x-bubble-list-back-to-bottom-icon .back-to-bottom-loading-svg-bg[data-v-1c7b8442]{position:absolute;font-size:calc(var(--el-x-bubble-list-btn-size) + 26px);animation:is-loading-1c7b8442 1s infinite linear;width:40px;height:40px}@keyframes is-loading-1c7b8442{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.el-x-bubble-list-default-back-button .back-to-bottom-loading-svg-bg[data-v-1c7b8442]{position:absolute;font-size:calc(var(--el-x-bubble-list-btn-size) + 26px);animation:is-loading-1c7b8442 1s infinite linear;width:40px;height:40px}@keyframes is-loading-1c7b8442{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.el-x-bubble-list-back-to-bottom-solt[data-v-1c7b8442]{position:sticky;user-select:none;cursor:initial;width:fit-content;height:fit-content;padding:0;box-sizing:border-box;display:flex;align-items:center;justify-content:center;box-shadow:initial}.el-x-bubble-list-back-to-bottom-solt[data-v-1c7b8442]:hover{transform:translateY(0px);box-shadow:initial}", ""]);
33213
33208
  // Exports
33214
33209
  /* harmony default export */ __webpack_exports__["a"] = (___CSS_LOADER_EXPORT___);
33215
33210
 
@@ -33225,7 +33220,7 @@ ___CSS_LOADER_EXPORT___.push([module.i, "[data-v-1c7b8442]:root{--color-primary:
33225
33220
 
33226
33221
  var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]});
33227
33222
  // Module
33228
- ___CSS_LOADER_EXPORT___.push([module.i, ".el-x-conversations-container{display:flex;flex-direction:column;height:100%;position:relative;width:fit-content;box-sizing:border-box;overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,0.1)}.el-x-conversations-list{list-style:none;margin:0;padding:0;flex:1;display:flex;flex-direction:column;box-sizing:border-box}.el-x-conversations-scroll-wrapper{flex:1;overflow:hidden;position:relative}.el-x-conversations-scroll-wrapper::after{content:'';position:absolute;top:0;right:0;width:8px;height:100%;background-color:transparent;pointer-events:none}.el-x-conversations-load-more{display:flex;width:calc(100% - 20px);padding:14px 10px;justify-content:center;align-items:center;font-size:12px;gap:3px;color:#909399;background-color:var(--conversation-list-auto-bg-color, #fff);margin-right:20px;border-radius:8px;height:auto;min-height:var(--conversation-label-height, 20px);box-sizing:border-box}.el-x-conversations-load-more-is-loading{margin-top:2px;animation:spinloading 2s linear infinite}@keyframes spinloading{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.scroll-content{min-height:100%}.loading-more{text-align:center;padding:10px 0;color:#909399;font-size:14px}.el-x-conversation-group{position:relative}.el-x-conversation-group:last-child{margin-bottom:0}.el-x-conversation-group .el-x-conversation-group-title{font-size:14px;color:#909399;padding:8px 0;font-weight:500;margin-bottom:4px;border-radius:4px;border-top-left-radius:0px;border-top-right-radius:0px;width:calc(100% - 10px);box-sizing:border-box}.el-x-conversation-group .sticky-title{position:sticky;top:0;z-index:20;background-color:var(--conversation-list-auto-bg-color, #fff)}.el-x-conversation-group .active-sticky{z-index:10}.el-x-conversation-group .el-x-conversation-group-items{padding-top:0}.scroll-to-top-btn{position:absolute;right:16px;bottom:16px;z-index:99;opacity:0.8;transition:opacity 0.3s}.scroll-to-top-btn:hover{opacity:1}.el-x-conversation-item{padding:14px 10px;margin-right:20px;border-radius:8px;cursor:pointer;transition:background-color 0.2s ease}.el-x-conversation-item+.el-x-conversation-item{margin-top:4px}.el-x-conversation-item.disabled{opacity:0.5;cursor:not-allowed;color:#c0c4cc}.el-x-conversation-item.active{background-color:#f0f0f0}.el-x-conversation-item.hovered,.el-x-conversation-item:hover{background-color:#f0f0f0}.el-x-conversation-item.menu-opened{background-color:#f0f0f0}.el-x-conversation-content{display:flex;align-items:center;height:var(--conversation-label-height, 20px)}.el-x-conversation-content .el-x-conversation-prefix-icon{margin-right:8px;display:flex;justify-content:center;align-items:center}.el-x-conversation-content .el-x-conversation-content-main{flex:1;display:flex;align-items:center;position:relative;overflow:hidden}.el-x-conversation-content .el-x-conversation-label-container{flex:1;display:flex;justify-content:space-between;align-items:center;overflow:hidden}.el-x-conversation-content .el-x-conversation-label{font-size:14px;color:#303133;position:relative;white-space:nowrap}.el-x-conversation-content .el-x-conversation-label.text-gradient{mask-image:linear-gradient(to right, black 60%, transparent 100%);-webkit-mask-image:linear-gradient(to right, black 60%, transparent 100%)}.el-x-conversation-content .el-x-conversation-timestamp{font-size:14px;color:#909399;margin-left:8px}.el-x-conversation-content .el-x-conversation-suffix-icon{margin-left:8px;display:flex;justify-content:center;align-items:center}.el-x-conversation-content .el-x-conversation-dropdown-more{justify-self:center;height:100%;display:flex;align-items:center}.el-x-conversation-content .el-x-conversation-dropdown-more-icon{font-size:16px;padding:2px;border-radius:5px}.el-x-conversation-content .el-x-conversation-dropdown-more-icon:hover{background-color:#d3d3d3}.el-x-conversation-content .el-x-conversation-menu{margin-left:8px;display:flex;align-items:center;opacity:0;transition:opacity 0.2s ease}.hovered .el-x-conversation-content .el-x-conversation-menu,.active .el-x-conversation-content .el-x-conversation-menu{opacity:1}.el-x-conversation-dropdown-menu{max-height:300px;overflow-y:auto}.el-x-conversations-scrollbar{height:100%;overflow-y:auto}.el-x-conversations-scrollbar::-webkit-scrollbar{width:6px}.el-x-conversations-scrollbar::-webkit-scrollbar-thumb{background-color:transparent;border-radius:3px;transition:background-color 0.3s ease}.el-x-conversations-scrollbar::-webkit-scrollbar-track{background-color:transparent}.el-x-conversations-scrollbar:hover::-webkit-scrollbar-thumb{background-color:#e0e0e0}@supports (scrollbar-width: thin){.el-x-conversations-scrollbar{scrollbar-width:thin;scrollbar-color:transparent transparent}.el-x-conversations-scrollbar:hover{scrollbar-color:#e0e0e0 transparent}}\n", ""]);
33223
+ ___CSS_LOADER_EXPORT___.push([module.i, ".el-x-conversations-container{display:flex;flex-direction:column;height:100%;position:relative;width:fit-content;box-sizing:border-box;overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,.1)}.el-x-conversations-list{list-style:none;margin:0;padding:0;flex:1;display:flex;flex-direction:column;box-sizing:border-box}.el-x-conversations-scroll-wrapper{flex:1;overflow:hidden;position:relative}.el-x-conversations-scroll-wrapper::after{content:\"\";position:absolute;top:0;right:0;width:8px;height:100%;background-color:rgba(0,0,0,0);pointer-events:none}.el-x-conversations-load-more{display:flex;width:calc(100% - 20px);padding:14px 10px;justify-content:center;align-items:center;font-size:12px;gap:3px;color:#909399;background-color:var(--conversation-list-auto-bg-color, #fff);margin-right:20px;border-radius:8px;height:auto;min-height:var(--conversation-label-height, 20px);box-sizing:border-box}.el-x-conversations-load-more-is-loading{margin-top:2px;animation:spinloading 2s linear infinite}@keyframes spinloading{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.scroll-content{min-height:100%}.loading-more{text-align:center;padding:10px 0;color:#909399;font-size:14px}.el-x-conversation-group{position:relative}.el-x-conversation-group:last-child{margin-bottom:0}.el-x-conversation-group .el-x-conversation-group-title{font-size:14px;color:#909399;padding:8px 0;font-weight:500;margin-bottom:4px;border-radius:4px;border-top-left-radius:0px;border-top-right-radius:0px;width:calc(100% - 10px);box-sizing:border-box}.el-x-conversation-group .sticky-title{position:sticky;top:0;z-index:20;background-color:var(--conversation-list-auto-bg-color, #fff)}.el-x-conversation-group .active-sticky{z-index:10}.el-x-conversation-group .el-x-conversation-group-items{padding-top:0}.scroll-to-top-btn{position:absolute;right:16px;bottom:16px;z-index:99;opacity:.8;transition:opacity .3s}.scroll-to-top-btn:hover{opacity:1}.el-x-conversation-item{padding:14px 10px;margin-right:20px;border-radius:8px;cursor:pointer;transition:background-color .2s ease}.el-x-conversation-item+.el-x-conversation-item{margin-top:4px}.el-x-conversation-item.disabled{opacity:.5;cursor:not-allowed;color:#c0c4cc}.el-x-conversation-item.active{background-color:#f0f0f0}.el-x-conversation-item.hovered,.el-x-conversation-item:hover{background-color:#f0f0f0}.el-x-conversation-item.menu-opened{background-color:#f0f0f0}.el-x-conversation-content{display:flex;align-items:center;height:var(--conversation-label-height, 20px)}.el-x-conversation-content .el-x-conversation-prefix-icon{margin-right:8px;display:flex;justify-content:center;align-items:center}.el-x-conversation-content .el-x-conversation-content-main{flex:1;display:flex;align-items:center;position:relative;overflow:hidden}.el-x-conversation-content .el-x-conversation-label-container{flex:1;display:flex;justify-content:space-between;align-items:center;overflow:hidden}.el-x-conversation-content .el-x-conversation-label{font-size:14px;color:#303133;position:relative;white-space:nowrap}.el-x-conversation-content .el-x-conversation-label.text-gradient{mask-image:linear-gradient(to right, black 60%, transparent 100%);-webkit-mask-image:linear-gradient(to right, black 60%, transparent 100%)}.el-x-conversation-content .el-x-conversation-timestamp{font-size:14px;color:#909399;margin-left:8px}.el-x-conversation-content .el-x-conversation-suffix-icon{margin-left:8px;display:flex;justify-content:center;align-items:center}.el-x-conversation-content .el-x-conversation-dropdown-more{justify-self:center;height:100%;display:flex;align-items:center}.el-x-conversation-content .el-x-conversation-dropdown-more-icon{font-size:16px;padding:2px;border-radius:5px}.el-x-conversation-content .el-x-conversation-dropdown-more-icon:hover{background-color:#d3d3d3}.el-x-conversation-content .el-x-conversation-menu{margin-left:8px;display:flex;align-items:center;opacity:0;transition:opacity .2s ease}.hovered .el-x-conversation-content .el-x-conversation-menu,.active .el-x-conversation-content .el-x-conversation-menu{opacity:1}.el-x-conversation-dropdown-menu{max-height:300px;overflow-y:auto}.el-x-conversations-scrollbar{height:100%;overflow-y:auto}.el-x-conversations-scrollbar::-webkit-scrollbar{width:6px}.el-x-conversations-scrollbar::-webkit-scrollbar-thumb{background-color:rgba(0,0,0,0);border-radius:3px;transition:background-color .3s ease}.el-x-conversations-scrollbar::-webkit-scrollbar-track{background-color:rgba(0,0,0,0)}.el-x-conversations-scrollbar:hover::-webkit-scrollbar-thumb{background-color:#e0e0e0}@supports(scrollbar-width: thin){.el-x-conversations-scrollbar{scrollbar-width:thin;scrollbar-color:rgba(0,0,0,0) rgba(0,0,0,0)}.el-x-conversations-scrollbar:hover{scrollbar-color:#e0e0e0 rgba(0,0,0,0)}}", ""]);
33229
33224
  // Exports
33230
33225
  /* harmony default export */ __webpack_exports__["a"] = (___CSS_LOADER_EXPORT___);
33231
33226
 
@@ -33241,7 +33236,7 @@ ___CSS_LOADER_EXPORT___.push([module.i, ".el-x-conversations-container{display:f
33241
33236
 
33242
33237
  var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]});
33243
33238
  // Module
33244
- ___CSS_LOADER_EXPORT___.push([module.i, "[data-v-ee2290d4]:root{--color-primary: #409EFF;--color-success: #67C23A;--color-warning: #E6A23C;--color-danger: #F56C6C;--color-info: #909399}.el-x-prompts[data-v-ee2290d4]{max-width:100%}.el-x-prompts[data-v-ee2290d4],.el-x-prompts *[data-v-ee2290d4]{box-sizing:border-box}.el-x-prompts.el-x-prompts-rtl[data-v-ee2290d4]{direction:rtl}.el-x-prompts .el-x-prompts-title[data-v-ee2290d4]{font-weight:normal;font-size:16px;color:#909399;margin-top:0;margin-bottom:0.5em}.el-x-prompts .el-x-prompts-list[data-v-ee2290d4]{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;list-style:none;padding-left:0;margin:0;align-items:stretch}.el-x-prompts .el-x-prompts-list[data-v-ee2290d4]::-webkit-scrollbar{display:none}.el-x-prompts .el-x-prompts-list-wrap[data-v-ee2290d4]{flex-wrap:wrap}.el-x-prompts .el-x-prompts-list-vertical[data-v-ee2290d4]{flex-direction:column;align-items:flex-start}@media screen and (max-width: 768px){.el-x-prompts .el-x-prompts-list[data-v-ee2290d4]{flex-wrap:wrap;gap:8px}.el-x-prompts .el-x-prompts-list-wrap[data-v-ee2290d4]{justify-content:space-between}}.el-x-prompts .el-x-prompts-item[data-v-ee2290d4]{flex:none;display:flex;gap:4px;height:auto;padding:12px 18px;align-items:flex-start;justify-content:flex-start;background:#fff;border-radius:8px;transition:border all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1),background all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);border:1px solid #EBEEF5}@media screen and (max-width: 768px){.el-x-prompts .el-x-prompts-item[data-v-ee2290d4]{width:calc(50% - 4px);min-width:150px;padding:8px 12px}.el-x-prompts-list-wrap .el-x-prompts .el-x-prompts-item[data-v-ee2290d4]{width:calc(50% - 4px);margin-bottom:8px}.el-x-prompts-list-vertical .el-x-prompts .el-x-prompts-item[data-v-ee2290d4]{width:100%}}.el-x-prompts .el-x-prompts-item[data-v-ee2290d4]:not(.el-x-prompts-item-has-nest):hover{cursor:pointer;background:#F5F7FA}.el-x-prompts .el-x-prompts-item[data-v-ee2290d4]:not(.el-x-prompts-item-has-nest):active{background:#ecf5ff}.el-x-prompts .el-x-prompts-item .el-x-prompts-content[data-v-ee2290d4]{flex:auto;min-width:0;display:flex;gap:4px;flex-direction:column;align-items:flex-start}@media screen and (max-width: 768px){.el-x-prompts .el-x-prompts-item .el-x-prompts-content[data-v-ee2290d4]{width:100%;gap:2px}}.el-x-prompts .el-x-prompts-item .el-x-prompts-icon[data-v-ee2290d4],.el-x-prompts .el-x-prompts-item .el-x-prompts-label[data-v-ee2290d4],.el-x-prompts .el-x-prompts-item .el-x-prompts-desc[data-v-ee2290d4]{margin:0;padding:0;font-size:14px;line-height:24px;text-align:start;white-space:normal}@media screen and (max-width: 768px){.el-x-prompts .el-x-prompts-item .el-x-prompts-icon[data-v-ee2290d4],.el-x-prompts .el-x-prompts-item .el-x-prompts-label[data-v-ee2290d4],.el-x-prompts .el-x-prompts-item .el-x-prompts-desc[data-v-ee2290d4]{font-size:14px;line-height:1.4;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}.el-x-prompts .el-x-prompts-item .el-x-prompts-label[data-v-ee2290d4]{color:#303133;font-weight:500}.el-x-prompts .el-x-prompts-item .el-x-prompts-label+.el-x-prompts-desc[data-v-ee2290d4]{color:#909399}.el-x-prompts .el-x-prompts-item.el-x-prompts-item-disabled[data-v-ee2290d4]{pointer-events:none;background:#F5F7FA}.el-x-prompts .el-x-prompts-item.el-x-prompts-item-disabled .el-x-prompts-label[data-v-ee2290d4],.el-x-prompts .el-x-prompts-item.el-x-prompts-item-disabled .el-x-prompts-desc[data-v-ee2290d4]{color:#909399}.el-x-prompts .el-x-prompts-item-has-nest>.el-x-prompts-content>.el-x-prompts-label[data-v-ee2290d4]{font-size:18px;line-height:24px}.el-x-prompts.el-x-prompts-nested[data-v-ee2290d4]{margin-top:5px;align-self:stretch}.el-x-prompts.el-x-prompts-nested .el-x-prompts-list[data-v-ee2290d4]{align-items:stretch}.el-x-prompts.el-x-prompts-nested .el-x-prompts-item[data-v-ee2290d4]{border:0;background:#F5F7FA}\n", ""]);
33239
+ ___CSS_LOADER_EXPORT___.push([module.i, "[data-v-ee2290d4]:root{--color-primary: #409EFF;--color-success: #67C23A;--color-warning: #E6A23C;--color-danger: #F56C6C;--color-info: #909399}.el-x-prompts[data-v-ee2290d4]{max-width:100%}.el-x-prompts[data-v-ee2290d4],.el-x-prompts *[data-v-ee2290d4]{box-sizing:border-box}.el-x-prompts.el-x-prompts-rtl[data-v-ee2290d4]{direction:rtl}.el-x-prompts .el-x-prompts-title[data-v-ee2290d4]{font-weight:normal;font-size:16px;color:#909399;margin-top:0;margin-bottom:.5em}.el-x-prompts .el-x-prompts-list[data-v-ee2290d4]{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;list-style:none;padding-left:0;margin:0;align-items:stretch}.el-x-prompts .el-x-prompts-list[data-v-ee2290d4]::-webkit-scrollbar{display:none}.el-x-prompts .el-x-prompts-list-wrap[data-v-ee2290d4]{flex-wrap:wrap}.el-x-prompts .el-x-prompts-list-vertical[data-v-ee2290d4]{flex-direction:column;align-items:flex-start}@media screen and (max-width: 768px){.el-x-prompts .el-x-prompts-list[data-v-ee2290d4]{flex-wrap:wrap;gap:8px}.el-x-prompts .el-x-prompts-list-wrap[data-v-ee2290d4]{justify-content:space-between}}.el-x-prompts .el-x-prompts-item[data-v-ee2290d4]{flex:none;display:flex;gap:4px;height:auto;padding:12px 18px;align-items:flex-start;justify-content:flex-start;background:#fff;border-radius:8px;transition:border all .3s cubic-bezier(0.645, 0.045, 0.355, 1),background all .3s cubic-bezier(0.645, 0.045, 0.355, 1);border:1px solid #ebeef5}@media screen and (max-width: 768px){.el-x-prompts .el-x-prompts-item[data-v-ee2290d4]{width:calc(50% - 4px);min-width:150px;padding:8px 12px}.el-x-prompts-list-wrap .el-x-prompts .el-x-prompts-item[data-v-ee2290d4]{width:calc(50% - 4px);margin-bottom:8px}.el-x-prompts-list-vertical .el-x-prompts .el-x-prompts-item[data-v-ee2290d4]{width:100%}}.el-x-prompts .el-x-prompts-item[data-v-ee2290d4]:not(.el-x-prompts-item-has-nest):hover{cursor:pointer;background:#f5f7fa}.el-x-prompts .el-x-prompts-item[data-v-ee2290d4]:not(.el-x-prompts-item-has-nest):active{background:rgb(235.9,245.3,255)}.el-x-prompts .el-x-prompts-item .el-x-prompts-content[data-v-ee2290d4]{flex:auto;min-width:0;display:flex;gap:4px;flex-direction:column;align-items:flex-start}@media screen and (max-width: 768px){.el-x-prompts .el-x-prompts-item .el-x-prompts-content[data-v-ee2290d4]{width:100%;gap:2px}}.el-x-prompts .el-x-prompts-item .el-x-prompts-icon[data-v-ee2290d4],.el-x-prompts .el-x-prompts-item .el-x-prompts-label[data-v-ee2290d4],.el-x-prompts .el-x-prompts-item .el-x-prompts-desc[data-v-ee2290d4]{margin:0;padding:0;font-size:14px;line-height:24px;text-align:start;white-space:normal}@media screen and (max-width: 768px){.el-x-prompts .el-x-prompts-item .el-x-prompts-icon[data-v-ee2290d4],.el-x-prompts .el-x-prompts-item .el-x-prompts-label[data-v-ee2290d4],.el-x-prompts .el-x-prompts-item .el-x-prompts-desc[data-v-ee2290d4]{font-size:14px;line-height:1.4;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}.el-x-prompts .el-x-prompts-item .el-x-prompts-label[data-v-ee2290d4]{color:#303133;font-weight:500}.el-x-prompts .el-x-prompts-item .el-x-prompts-label+.el-x-prompts-desc[data-v-ee2290d4]{color:#909399}.el-x-prompts .el-x-prompts-item.el-x-prompts-item-disabled[data-v-ee2290d4]{pointer-events:none;background:#f5f7fa}.el-x-prompts .el-x-prompts-item.el-x-prompts-item-disabled .el-x-prompts-label[data-v-ee2290d4],.el-x-prompts .el-x-prompts-item.el-x-prompts-item-disabled .el-x-prompts-desc[data-v-ee2290d4]{color:#909399}.el-x-prompts .el-x-prompts-item-has-nest>.el-x-prompts-content>.el-x-prompts-label[data-v-ee2290d4]{font-size:18px;line-height:24px}.el-x-prompts.el-x-prompts-nested[data-v-ee2290d4]{margin-top:5px;align-self:stretch}.el-x-prompts.el-x-prompts-nested .el-x-prompts-list[data-v-ee2290d4]{align-items:stretch}.el-x-prompts.el-x-prompts-nested .el-x-prompts-item[data-v-ee2290d4]{border:0;background:#f5f7fa}", ""]);
33245
33240
  // Exports
33246
33241
  /* harmony default export */ __webpack_exports__["a"] = (___CSS_LOADER_EXPORT___);
33247
33242
 
@@ -33257,7 +33252,7 @@ ___CSS_LOADER_EXPORT___.push([module.i, "[data-v-ee2290d4]:root{--color-primary:
33257
33252
 
33258
33253
  var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]});
33259
33254
  // Module
33260
- ___CSS_LOADER_EXPORT___.push([module.i, ".el-x-send-button .el-button .el-icon-brush[data-v-74c70621]{transform:rotate(180deg)}\n", ""]);
33255
+ ___CSS_LOADER_EXPORT___.push([module.i, ".el-x-send-button .el-button .el-icon-brush[data-v-74c70621]{transform:rotate(180deg)}", ""]);
33261
33256
  // Exports
33262
33257
  /* harmony default export */ __webpack_exports__["a"] = (___CSS_LOADER_EXPORT___);
33263
33258
 
@@ -33273,7 +33268,7 @@ ___CSS_LOADER_EXPORT___.push([module.i, ".el-x-send-button .el-button .el-icon-b
33273
33268
 
33274
33269
  var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]});
33275
33270
  // Module
33276
- ___CSS_LOADER_EXPORT___.push([module.i, ".el-x-send-button[data-v-4d4a8cac]{height:32px}.el-x-send-button .el-button[data-v-4d4a8cac]{padding:0;width:32px;height:32px}.el-x-send-button .loading-svg[data-v-4d4a8cac]{color:#409EFF;width:100%}\n", ""]);
33271
+ ___CSS_LOADER_EXPORT___.push([module.i, ".el-x-send-button[data-v-4d4a8cac]{height:32px}.el-x-send-button .el-button[data-v-4d4a8cac]{padding:0;width:32px;height:32px}.el-x-send-button .loading-svg[data-v-4d4a8cac]{color:#409eff;width:100%}", ""]);
33277
33272
  // Exports
33278
33273
  /* harmony default export */ __webpack_exports__["a"] = (___CSS_LOADER_EXPORT___);
33279
33274
 
@@ -33289,7 +33284,7 @@ ___CSS_LOADER_EXPORT___.push([module.i, ".el-x-send-button[data-v-4d4a8cac]{heig
33289
33284
 
33290
33285
  var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]});
33291
33286
  // Module
33292
- ___CSS_LOADER_EXPORT___.push([module.i, ".el-x-send-button .el-button[data-v-1d4ab0c1]{padding:0;width:32px;height:32px}.el-x-send-button .loading-svg[data-v-1d4ab0c1]{color:#409EFF;width:16px}\n", ""]);
33287
+ ___CSS_LOADER_EXPORT___.push([module.i, ".el-x-send-button .el-button[data-v-1d4ab0c1]{padding:0;width:32px;height:32px}.el-x-send-button .loading-svg[data-v-1d4ab0c1]{color:#409eff;width:16px}", ""]);
33293
33288
  // Exports
33294
33289
  /* harmony default export */ __webpack_exports__["a"] = (___CSS_LOADER_EXPORT___);
33295
33290
 
@@ -33305,7 +33300,7 @@ ___CSS_LOADER_EXPORT___.push([module.i, ".el-x-send-button .el-button[data-v-1d4
33305
33300
 
33306
33301
  var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]});
33307
33302
  // Module
33308
- ___CSS_LOADER_EXPORT___.push([module.i, "[data-v-34a8749b]:root{--color-primary: #409EFF;--color-success: #67C23A;--color-warning: #E6A23C;--color-danger: #F56C6C;--color-info: #909399}[data-v-34a8749b]:root{--el-x-sender-trigger-popover-width: fit-content;--el-x-sender-trigger-popover-left: 0px}.el-x-sender[data-v-34a8749b]{width:100%;display:flex;flex-direction:column;position:relative;box-sizing:border-box;box-shadow:0 1px 2px 0 rgba(0,0,0,0.03),0 1px 6px -1px rgba(0,0,0,0.02),0 2px 4px 0 rgba(0,0,0,0.02);transition:background .3s;border-radius:calc(4px * 2);border-color:#DCDFE6;border-width:0;border-style:solid;transition:width 300ms}.el-x-sender[data-v-34a8749b]:after{content:'';position:absolute;inset:0;pointer-events:none;transition:border-color .3s;border-radius:inherit;border-style:inherit;border-color:inherit;border-width:1px}.el-x-sender[data-v-34a8749b]:focus-within{box-shadow:0 2px 4px rgba(0,0,0,0.12),0 0 6px rgba(0,0,0,0.04);border-color:#409EFF}.el-x-sender[data-v-34a8749b]:focus-within::after{border-width:2px}.el-x-sender .el-x-sender-header-wrap[data-v-34a8749b]{display:flex;flex-direction:column;gap:8px;width:100%;margin:0;padding:0}.el-x-sender .slide-enter-active[data-v-34a8749b],.el-x-sender .slide-leave-active[data-v-34a8749b]{transition:height 300ms,opacity 300ms,border 300ms;overflow:hidden}.el-x-sender .slide-enter[data-v-34a8749b],.el-x-sender .slide-leave-to[data-v-34a8749b]{height:0;opacity:0}.el-x-sender .el-x-sender-header[data-v-34a8749b]{border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#DCDFE6}.el-x-sender .el-x-sender-content[data-v-34a8749b]{display:flex;gap:8px;width:100%;padding-block:12px;padding-inline-start:16px;padding-inline-end:12px;box-sizing:border-box;align-items:flex-end}.el-x-sender .el-x-sender-content .el-x-sender-prefix[data-v-34a8749b]{flex:none}.el-x-sender .el-x-sender-content .el-x-sender-input[data-v-34a8749b]{height:100%;display:flex;align-items:center;align-self:center}.el-x-sender .el-x-sender-content .el-x-sender-input[data-v-34a8749b] .el-textarea__inner{padding:0;margin:0;color:#303133;font-size:14px;line-height:24px;list-style:none;position:relative;display:inline-block;box-sizing:border-box;width:100%;min-width:0;max-width:100%;height:auto;min-height:auto !important;border-radius:0;border:none;flex:auto;align-self:center;vertical-align:bottom;resize:none;background-color:transparent;transition:all .3s,height 0s;box-shadow:none !important}.el-x-sender .el-x-sender-content .el-x-sender-action-list-presets[data-v-34a8749b]{display:flex;gap:8px;flex-direction:row-reverse}.el-x-sender .content-variant-updown[data-v-34a8749b]{display:flex;flex-direction:column;align-items:initial}.el-x-sender .content-variant-updown .el-x-sender-updown-wrap[data-v-34a8749b]{display:flex;justify-content:space-between;gap:8px}.el-x-sender .content-variant-updown .el-x-sender-updown-wrap .el-x-sender-prefix[data-v-34a8749b]{flex:initial}.el-x-sender .content-variant-updown .el-x-sender-updown-wrap .el-x-sender-action-list[data-v-34a8749b]{margin-left:auto}.el-x-sender .el-x-sender-footer[data-v-34a8749b]{border-top-width:1px;border-top-style:solid;border-top-color:#DCDFE6}.el-x-sender-disabled[data-v-34a8749b]{background-color:#F5F7FA;pointer-events:none}.el-x-sender-trigger-popover[data-v-34a8749b]{width:fit-content !important;margin-left:0px !important;max-width:calc(100% - 54px) !important;width:var(--el-x-sender-trigger-popover-width) !important;margin-left:var(--el-x-sender-trigger-popover-left) !important}\n", ""]);
33303
+ ___CSS_LOADER_EXPORT___.push([module.i, "[data-v-34a8749b]:root{--color-primary: #409EFF;--color-success: #67C23A;--color-warning: #E6A23C;--color-danger: #F56C6C;--color-info: #909399}[data-v-34a8749b]:root{--el-x-sender-trigger-popover-width: fit-content;--el-x-sender-trigger-popover-left: 0px}.el-x-sender[data-v-34a8749b]{width:100%;display:flex;flex-direction:column;position:relative;box-sizing:border-box;box-shadow:0 1px 2px 0 rgba(0,0,0,.03),0 1px 6px -1px rgba(0,0,0,.02),0 2px 4px 0 rgba(0,0,0,.02);transition:background .3s;border-radius:calc(4px*2);border-color:#dcdfe6;border-width:0;border-style:solid;transition:width 300ms}.el-x-sender[data-v-34a8749b]:after{content:\"\";position:absolute;inset:0;pointer-events:none;transition:border-color .3s;border-radius:inherit;border-style:inherit;border-color:inherit;border-width:1px}.el-x-sender[data-v-34a8749b]:focus-within{box-shadow:0 2px 4px rgba(0,0,0,.12),0 0 6px rgba(0,0,0,.04);border-color:#409eff}.el-x-sender[data-v-34a8749b]:focus-within::after{border-width:2px}.el-x-sender .el-x-sender-header-wrap[data-v-34a8749b]{display:flex;flex-direction:column;gap:8px;width:100%;margin:0;padding:0}.el-x-sender .slide-enter-active[data-v-34a8749b],.el-x-sender .slide-leave-active[data-v-34a8749b]{transition:height 300ms,opacity 300ms,border 300ms;overflow:hidden}.el-x-sender .slide-enter[data-v-34a8749b],.el-x-sender .slide-leave-to[data-v-34a8749b]{height:0;opacity:0}.el-x-sender .el-x-sender-header[data-v-34a8749b]{border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#dcdfe6}.el-x-sender .el-x-sender-content[data-v-34a8749b]{display:flex;gap:8px;width:100%;padding-block:12px;padding-inline-start:16px;padding-inline-end:12px;box-sizing:border-box;align-items:flex-end}.el-x-sender .el-x-sender-content .el-x-sender-prefix[data-v-34a8749b]{flex:none}.el-x-sender .el-x-sender-content .el-x-sender-input[data-v-34a8749b]{height:100%;display:flex;align-items:center;align-self:center}.el-x-sender .el-x-sender-content .el-x-sender-input[data-v-34a8749b] .el-textarea__inner{padding:0;margin:0;color:#303133;font-size:14px;line-height:24px;list-style:none;position:relative;display:inline-block;box-sizing:border-box;width:100%;min-width:0;max-width:100%;height:auto;min-height:auto !important;border-radius:0;border:none;flex:auto;align-self:center;vertical-align:bottom;resize:none;background-color:rgba(0,0,0,0);transition:all .3s,height 0s;box-shadow:none !important}.el-x-sender .el-x-sender-content .el-x-sender-action-list-presets[data-v-34a8749b]{display:flex;gap:8px;flex-direction:row-reverse}.el-x-sender .content-variant-updown[data-v-34a8749b]{display:flex;flex-direction:column;align-items:initial}.el-x-sender .content-variant-updown .el-x-sender-updown-wrap[data-v-34a8749b]{display:flex;justify-content:space-between;gap:8px}.el-x-sender .content-variant-updown .el-x-sender-updown-wrap .el-x-sender-prefix[data-v-34a8749b]{flex:initial}.el-x-sender .content-variant-updown .el-x-sender-updown-wrap .el-x-sender-action-list[data-v-34a8749b]{margin-left:auto}.el-x-sender .el-x-sender-footer[data-v-34a8749b]{border-top-width:1px;border-top-style:solid;border-top-color:#dcdfe6}.el-x-sender-disabled[data-v-34a8749b]{background-color:#f5f7fa;pointer-events:none}.el-x-sender-trigger-popover[data-v-34a8749b]{width:fit-content !important;margin-left:0px !important;max-width:calc(100% - 54px) !important;width:var(--el-x-sender-trigger-popover-width) !important;margin-left:var(--el-x-sender-trigger-popover-left) !important}", ""]);
33309
33304
  // Exports
33310
33305
  /* harmony default export */ __webpack_exports__["a"] = (___CSS_LOADER_EXPORT___);
33311
33306
 
@@ -33321,7 +33316,7 @@ ___CSS_LOADER_EXPORT___.push([module.i, "[data-v-34a8749b]:root{--color-primary:
33321
33316
 
33322
33317
  var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]});
33323
33318
  // Module
33324
- ___CSS_LOADER_EXPORT___.push([module.i, ":root{--color-primary: #409EFF;--color-success: #67C23A;--color-warning: #E6A23C;--color-danger: #F56C6C;--color-info: #909399}.el-x-think{font-family:system-ui, sans-serif;margin:0 auto}.el-x-think .trigger{display:flex;align-items:center;height:100%;width:var(--el-x-think-button-width);gap:8px;padding:8px 12px;border:1px solid #DCDFE6;border-radius:8px;background:#fff;cursor:pointer;margin-bottom:8px}.el-x-think .trigger .el-icon-center{height:100%;display:flex;align-items:center}.el-x-think .trigger .start-color{color:#E6A23C}.el-x-think .trigger .end-color{color:#67C23A}.el-x-think .trigger .is-loading{color:#409EFF}.el-x-think .trigger .error-color{color:#F56C6C}.el-x-think .trigger:hover{background:#f8f8f8}.el-x-think .trigger.disabled{cursor:pointer}.el-x-think .trigger:disabled{cursor:not-allowed;opacity:0.7}.el-x-think .status-icon{font-size:1.2em}.el-x-think .arrow{margin-left:auto;transition:transform var(--el-x-think-animation-duration)}.el-x-think .arrow.expanded{transform:rotate(180deg)}.el-x-think .slide-enter-active,.el-x-think .slide-leave-active{transition:height var(--el-x-think-animation-duration) ease-in-out,opacity var(--el-x-think-animation-duration) ease-in-out;overflow:hidden}.el-x-think .slide-enter,.el-x-think .slide-leave-to{height:0 !important;opacity:0}.el-x-think .content-wrapper{box-sizing:border-box;min-width:0}.el-x-think .content-wrapper.error-state{border-color:#ffd0d0;background:#fff0f0}.el-x-think .content pre{border:1px solid #DCDFE6;background:var(--el-x-think-content-wrapper-background-color);padding:8px 12px;border-radius:8px;max-width:var(--el-x-think-content-wrapper-width);font-size:14px;color:var(--el-x-think-content-wrapper-color);white-space:pre-wrap;font-family:system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue,\r sans-serif;margin:0;line-height:24px}.el-x-think .error-message{color:#F56C6C;height:fit-content;padding:8px;background:#ffeef0;border-radius:4px}.el-x-think .rotate-enter-active,.el-x-think .rotate-leave-active{transition:transform var(--el-x-think-animation-duration)}.el-x-think .rotate-enter,.el-x-think .rotate-leave-to{transform:rotate(0deg)}\n", ""]);
33319
+ ___CSS_LOADER_EXPORT___.push([module.i, ":root{--color-primary: #409EFF;--color-success: #67C23A;--color-warning: #E6A23C;--color-danger: #F56C6C;--color-info: #909399}.el-x-think{font-family:system-ui,sans-serif;margin:0 auto}.el-x-think .trigger{display:flex;align-items:center;height:100%;width:var(--el-x-think-button-width);gap:8px;padding:8px 12px;border:1px solid #dcdfe6;border-radius:8px;background:#fff;cursor:pointer;margin-bottom:8px}.el-x-think .trigger .el-icon-center{height:100%;display:flex;align-items:center}.el-x-think .trigger .start-color{color:#e6a23c}.el-x-think .trigger .end-color{color:#67c23a}.el-x-think .trigger .is-loading{color:#409eff}.el-x-think .trigger .error-color{color:#f56c6c}.el-x-think .trigger:hover{background:#f8f8f8}.el-x-think .trigger.disabled{cursor:pointer}.el-x-think .trigger:disabled{cursor:not-allowed;opacity:.7}.el-x-think .status-icon{font-size:1.2em}.el-x-think .arrow{margin-left:auto;transition:transform var(--el-x-think-animation-duration)}.el-x-think .arrow.expanded{transform:rotate(180deg)}.el-x-think .slide-enter-active,.el-x-think .slide-leave-active{transition:height var(--el-x-think-animation-duration) ease-in-out,opacity var(--el-x-think-animation-duration) ease-in-out;overflow:hidden}.el-x-think .slide-enter,.el-x-think .slide-leave-to{height:0 !important;opacity:0}.el-x-think .content-wrapper{box-sizing:border-box;min-width:0}.el-x-think .content-wrapper.error-state{border-color:#ffd0d0;background:#fff0f0}.el-x-think .content pre{border:1px solid #dcdfe6;background:var(--el-x-think-content-wrapper-background-color);padding:8px 12px;border-radius:8px;max-width:var(--el-x-think-content-wrapper-width);font-size:14px;color:var(--el-x-think-content-wrapper-color);white-space:pre-wrap;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,sans-serif;margin:0;line-height:24px}.el-x-think .error-message{color:#f56c6c;height:fit-content;padding:8px;background:#ffeef0;border-radius:4px}.el-x-think .rotate-enter-active,.el-x-think .rotate-leave-active{transition:transform var(--el-x-think-animation-duration)}.el-x-think .rotate-enter,.el-x-think .rotate-leave-to{transform:rotate(0deg)}", ""]);
33325
33320
  // Exports
33326
33321
  /* harmony default export */ __webpack_exports__["a"] = (___CSS_LOADER_EXPORT___);
33327
33322
 
@@ -33337,7 +33332,7 @@ ___CSS_LOADER_EXPORT___.push([module.i, ":root{--color-primary: #409EFF;--color-
33337
33332
 
33338
33333
  var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]});
33339
33334
  // Module
33340
- ___CSS_LOADER_EXPORT___.push([module.i, "[data-v-6fb5dcd7]:root{--color-primary: #409EFF;--color-success: #67C23A;--color-warning: #E6A23C;--color-danger: #F56C6C;--color-info: #909399}.el-x-thinking[data-v-6fb5dcd7]{margin:0 auto}.trigger[data-v-6fb5dcd7]{display:flex;align-items:center;height:100%;width:var(--el-x-thinking-button-width);gap:4px;padding:8px calc($--el-x-padding-sm + 4px);border:1px solid #DCDFE6;border-radius:8px;background:#fff;cursor:pointer;margin-bottom:4px}.trigger .el-icon-center[data-v-6fb5dcd7]{height:100%;display:flex;align-items:center}.trigger .start-color[data-v-6fb5dcd7]{color:#E6A23C}.trigger .end-color[data-v-6fb5dcd7]{color:#67C23A}.trigger .is-loading[data-v-6fb5dcd7]{color:#409EFF}.trigger .error-color[data-v-6fb5dcd7]{color:#F56C6C}.trigger[data-v-6fb5dcd7]:hover{background:#F5F7FA}.trigger.disabled[data-v-6fb5dcd7]{cursor:pointer}.trigger[data-v-6fb5dcd7]:disabled{cursor:not-allowed;opacity:0.7}.status-icon[data-v-6fb5dcd7]{font-size:16px}.arrow[data-v-6fb5dcd7]{margin-left:auto;transition:transform var(--el-x-thinking-animation-duration)}.arrow.expanded[data-v-6fb5dcd7]{transform:rotate(180deg)}.slide-enter-active[data-v-6fb5dcd7],.slide-leave-active[data-v-6fb5dcd7]{height:max-content;transition:height var(--el-x-thinking-animation-duration) ease-in-out,opacity var(--el-x-thinking-animation-duration) ease-in-out;overflow:hidden}.slide-enter-from[data-v-6fb5dcd7],.slide-leave-to[data-v-6fb5dcd7]{height:0 !important;opacity:0}.content-wrapper[data-v-6fb5dcd7]{box-sizing:border-box;min-width:0}.content pre[data-v-6fb5dcd7]{border:1px solid #DCDFE6;background:var(--el-x-thinking-content-wrapper-background-color);padding:8px calc($--el-x-padding-sm + 4px);border-radius:8px;max-width:var(--el-x-thinking-content-wrapper-width);font-size:14px;color:var(--el-x-thinking-content-wrapper-color);white-space:pre-wrap;margin:0;line-height:24px}.error-state[data-v-6fb5dcd7]{border-color:#fef0f0;background:#fef0f0}.error-message[data-v-6fb5dcd7]{color:#F56C6C;height:fit-content;padding:4px;background:#fef0f0;border-radius:8px}\n", ""]);
33335
+ ___CSS_LOADER_EXPORT___.push([module.i, "[data-v-6fb5dcd7]:root{--color-primary: #409EFF;--color-success: #67C23A;--color-warning: #E6A23C;--color-danger: #F56C6C;--color-info: #909399}.el-x-thinking[data-v-6fb5dcd7]{margin:0 auto}.trigger[data-v-6fb5dcd7]{display:flex;align-items:center;height:100%;width:var(--el-x-thinking-button-width);gap:4px;padding:8px 12px;border:1px solid #dcdfe6;border-radius:8px;background:#fff;cursor:pointer;margin-bottom:4px}.trigger .el-icon-center[data-v-6fb5dcd7]{height:100%;display:flex;align-items:center}.trigger .start-color[data-v-6fb5dcd7]{color:#e6a23c}.trigger .end-color[data-v-6fb5dcd7]{color:#67c23a}.trigger .is-loading[data-v-6fb5dcd7]{color:#409eff}.trigger .error-color[data-v-6fb5dcd7]{color:#f56c6c}.trigger[data-v-6fb5dcd7]:hover{background:#f5f7fa}.trigger.disabled[data-v-6fb5dcd7]{cursor:pointer}.trigger[data-v-6fb5dcd7]:disabled{cursor:not-allowed;opacity:.7}.status-icon[data-v-6fb5dcd7]{font-size:16px}.arrow[data-v-6fb5dcd7]{margin-left:auto;transition:transform var(--el-x-thinking-animation-duration)}.arrow.expanded[data-v-6fb5dcd7]{transform:rotate(180deg)}.slide-enter-active[data-v-6fb5dcd7],.slide-leave-active[data-v-6fb5dcd7]{height:max-content;transition:height var(--el-x-thinking-animation-duration) ease-in-out,opacity var(--el-x-thinking-animation-duration) ease-in-out;overflow:hidden}.slide-enter-from[data-v-6fb5dcd7],.slide-leave-to[data-v-6fb5dcd7]{height:0 !important;opacity:0}.content-wrapper[data-v-6fb5dcd7]{box-sizing:border-box;min-width:0}.content pre[data-v-6fb5dcd7]{border:1px solid #dcdfe6;background:var(--el-x-thinking-content-wrapper-background-color);padding:8px 12px;border-radius:8px;max-width:var(--el-x-thinking-content-wrapper-width);font-size:14px;color:var(--el-x-thinking-content-wrapper-color);white-space:pre-wrap;margin:0;line-height:24px}.error-state[data-v-6fb5dcd7]{border-color:rgb(254,240.3,240.3);background:rgb(254,240.3,240.3)}.error-message[data-v-6fb5dcd7]{color:#f56c6c;height:fit-content;padding:4px;background:rgb(254,240.3,240.3);border-radius:8px}", ""]);
33341
33336
  // Exports
33342
33337
  /* harmony default export */ __webpack_exports__["a"] = (___CSS_LOADER_EXPORT___);
33343
33338
 
@@ -33353,7 +33348,7 @@ ___CSS_LOADER_EXPORT___.push([module.i, "[data-v-6fb5dcd7]:root{--color-primary:
33353
33348
 
33354
33349
  var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]});
33355
33350
  // Module
33356
- ___CSS_LOADER_EXPORT___.push([module.i, "[data-v-49e41fca]:root{--color-primary: #409EFF;--color-success: #67C23A;--color-warning: #E6A23C;--color-danger: #F56C6C;--color-info: #909399}.el-x-thoughtchain-item-dot[data-v-49e41fca]{display:flex;justify-content:center;align-items:center}.el-x-thoughtchain-item-dot .el-button[data-v-49e41fca]{cursor:default !important}.el-x-thoughtchain .el-collapse[data-v-49e41fca]{border:none}.el-x-thoughtchain .el-collapse .el-collapse-item__header[data-v-49e41fca]{height:20px;font-weight:normal}.el-x-thoughtchain .el-collapse .el-collapse-item__arrow[data-v-49e41fca]{margin:0 0 0 8px}.el-x-thoughtchain .el-collapse .el-collapse-item__header[data-v-49e41fca]{margin-bottom:5px}.el-x-thoughtchain .el-collapse .el-collapse-item__header[data-v-49e41fca],.el-x-thoughtchain .el-collapse .el-collapse-item__wrap[data-v-49e41fca]{border:none}.el-x-thoughtchain .el-collapse .el-collapse-item__content[data-v-49e41fca]{color:#909399;padding:0}.el-x-thoughtchain .el-timeline[data-v-49e41fca]{padding:10px 0 0 5px}.el-x-thoughtchain .el-timeline-item__timestamp[data-v-49e41fca]{color:#303133}.el-x-thoughtchain .el-timeline-item__content[data-v-49e41fca]{color:#909399}.el-x-thoughtchain .el-timeline-item[data-v-49e41fca]{list-style:none !important}.thought-chain-move[data-v-49e41fca],.thought-chain-enter-active[data-v-49e41fca],.thought-chain-leave-active[data-v-49e41fca]{transition:all 0.5s ease}.thought-chain-enter[data-v-49e41fca],.thought-chain-leave-to[data-v-49e41fca]{opacity:0;transform:translateY(10px) scaleY(0.9)}.thought-chain-leave-active[data-v-49e41fca]{position:absolute}.el-x-thoughtchain-loading[data-v-49e41fca]{animation:thoughtchain-rotating-49e41fca 1.5s linear infinite;transform-origin:center center;will-change:transform;backface-visibility:hidden;-webkit-font-smoothing:antialiased}@keyframes thoughtchain-rotating-49e41fca{0%{transform:rotate(0deg)}25%{transform:rotate(90deg)}50%{transform:rotate(180deg)}75%{transform:rotate(270deg)}100%{transform:rotate(360deg)}}\n", ""]);
33351
+ ___CSS_LOADER_EXPORT___.push([module.i, "[data-v-49e41fca]:root{--color-primary: #409EFF;--color-success: #67C23A;--color-warning: #E6A23C;--color-danger: #F56C6C;--color-info: #909399}.el-x-thoughtchain-item-dot[data-v-49e41fca]{display:flex;justify-content:center;align-items:center}.el-x-thoughtchain-item-dot .el-button[data-v-49e41fca]{cursor:default !important}.el-x-thoughtchain .el-collapse[data-v-49e41fca]{border:none}.el-x-thoughtchain .el-collapse .el-collapse-item__header[data-v-49e41fca]{height:20px;font-weight:normal}.el-x-thoughtchain .el-collapse .el-collapse-item__arrow[data-v-49e41fca]{margin:0 0 0 8px}.el-x-thoughtchain .el-collapse .el-collapse-item__header[data-v-49e41fca]{margin-bottom:5px}.el-x-thoughtchain .el-collapse .el-collapse-item__header[data-v-49e41fca],.el-x-thoughtchain .el-collapse .el-collapse-item__wrap[data-v-49e41fca]{border:none}.el-x-thoughtchain .el-collapse .el-collapse-item__content[data-v-49e41fca]{color:#909399;padding:0}.el-x-thoughtchain .el-timeline[data-v-49e41fca]{padding:10px 0 0 5px}.el-x-thoughtchain .el-timeline-item__timestamp[data-v-49e41fca]{color:#303133}.el-x-thoughtchain .el-timeline-item__content[data-v-49e41fca]{color:#909399}.el-x-thoughtchain .el-timeline-item[data-v-49e41fca]{list-style:none !important}.thought-chain-move[data-v-49e41fca],.thought-chain-enter-active[data-v-49e41fca],.thought-chain-leave-active[data-v-49e41fca]{transition:all .5s ease}.thought-chain-enter[data-v-49e41fca],.thought-chain-leave-to[data-v-49e41fca]{opacity:0;transform:translateY(10px) scaleY(0.9)}.thought-chain-leave-active[data-v-49e41fca]{position:absolute}.el-x-thoughtchain-loading[data-v-49e41fca]{animation:thoughtchain-rotating-49e41fca 1.5s linear infinite;transform-origin:center center;will-change:transform;backface-visibility:hidden;-webkit-font-smoothing:antialiased}@keyframes thoughtchain-rotating-49e41fca{0%{transform:rotate(0deg)}25%{transform:rotate(90deg)}50%{transform:rotate(180deg)}75%{transform:rotate(270deg)}100%{transform:rotate(360deg)}}", ""]);
33357
33352
  // Exports
33358
33353
  /* harmony default export */ __webpack_exports__["a"] = (___CSS_LOADER_EXPORT___);
33359
33354
 
@@ -33369,7 +33364,7 @@ ___CSS_LOADER_EXPORT___.push([module.i, "[data-v-49e41fca]:root{--color-primary:
33369
33364
 
33370
33365
  var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]});
33371
33366
  // Module
33372
- ___CSS_LOADER_EXPORT___.push([module.i, "[data-v-68cfb339]:root{--color-primary: #409EFF;--color-success: #67C23A;--color-warning: #E6A23C;--color-danger: #F56C6C;--color-info: #909399}.el-x-welcome[data-v-68cfb339]{--border-radius: 4px;--icon-size: 64px;--icon-size-small: 48px;--icon-size-mobile: 40px;--gap: 16px;--gap-small: 8px;--gap-mobile: 12px;--gap-small-mobile: 6px;--padding: 24px;--padding-mobile: 16px;--title-font-size: 16px;--title-font-size-mobile: 14px;--description-font-size: 14px;--description-font-size-mobile: 13px;--color-filled-bg: #e6f4ff;--color-filled-border: #91caff;--color-title: #303133;--color-description: #606266;display:flex;gap:var(--gap);padding:var(--padding);border-radius:var(--border-radius)}.el-x-welcome.el-x-welcome-filled[data-v-68cfb339]{background-color:var(--color-filled-bg);border:1px solid var(--color-filled-border)}.el-x-welcome.el-x-welcome-borderless[data-v-68cfb339]{border:none}.el-x-welcome.el-x-welcome-rtl[data-v-68cfb339]{direction:rtl}@media (max-width: 768px){.el-x-welcome[data-v-68cfb339]{--gap: var(--gap-mobile);--gap-small: var(--gap-small-mobile);--padding: var(--padding-mobile);--title-font-size: var(--title-font-size-mobile);--description-font-size: var(--description-font-size-mobile);gap:var(--gap-mobile);padding:var(--padding-mobile)}}@media (max-width: 480px){.el-x-welcome[data-v-68cfb339]{--icon-size: var(--icon-size-mobile);--padding: 12px;--gap: 8px;--gap-small: 4px;flex-direction:column;align-items:center;text-align:center;padding:12px;gap:8px}.el-x-welcome.el-x-welcome-rtl[data-v-68cfb339]{direction:ltr}}@media (max-width: 320px){.el-x-welcome[data-v-68cfb339]{--padding: 8px;--gap: 6px;--icon-size: 32px;padding:8px;gap:6px}}.el-x-welcome-icon[data-v-68cfb339]{flex:0 0 auto;width:var(--icon-size);height:var(--icon-size);display:flex;align-items:center;justify-content:center;border-radius:calc(var(--border-radius) / 2);overflow:hidden;font-size:24px}.el-x-welcome-icon .icon-image[data-v-68cfb339]{width:100%;height:100%;object-fit:contain;padding:4px}@media (max-width: 768px){.el-x-welcome-icon[data-v-68cfb339]{width:var(--icon-size-small);height:var(--icon-size-small);font-size:20px}}@media (max-width: 480px){.el-x-welcome-icon[data-v-68cfb339]{width:var(--icon-size-mobile);height:var(--icon-size-mobile);font-size:16px;margin-bottom:4px}.el-x-welcome-icon .icon-image[data-v-68cfb339]{padding:2px}}@media (max-width: 320px){.el-x-welcome-icon[data-v-68cfb339]{width:32px;height:32px;font-size:14px}}.content-wrapper[data-v-68cfb339]{flex:1;display:flex;flex-direction:column;gap:var(--gap-small)}@media (max-width: 480px){.content-wrapper[data-v-68cfb339]{align-items:center;text-align:center;width:100%;gap:var(--gap-small-mobile)}}.title-wrapper[data-v-68cfb339]{display:flex;justify-content:space-between;align-items:center;gap:var(--gap-small)}@media (max-width: 768px){.title-wrapper[data-v-68cfb339]{gap:var(--gap-small-mobile)}}@media (max-width: 480px){.title-wrapper[data-v-68cfb339]{flex-direction:column;align-items:center;gap:4px;width:100%}}@media (max-width: 320px){.title-wrapper[data-v-68cfb339]{gap:2px}}.el-x-welcome-title[data-v-68cfb339]{margin:0;font-size:var(--title-font-size);font-weight:600;color:var(--color-title);word-break:break-word}@media (max-width: 768px){.el-x-welcome-title[data-v-68cfb339]{font-size:var(--title-font-size-mobile)}}@media (max-width: 480px){.el-x-welcome-title[data-v-68cfb339]{font-size:14px;text-align:center;line-height:1.4}}@media (max-width: 320px){.el-x-welcome-title[data-v-68cfb339]{font-size:13px}}.el-x-welcome-extra[data-v-68cfb339]{flex-shrink:0;display:flex;align-items:center;gap:var(--gap-small)}.el-x-welcome-extra .el-dropdown[data-v-68cfb339],.el-x-welcome-extra .el-button[data-v-68cfb339],.el-x-welcome-extra .el-link[data-v-68cfb339]{flex-shrink:0}@media (max-width: 768px){.el-x-welcome-extra[data-v-68cfb339]{gap:var(--gap-small-mobile)}.el-x-welcome-extra .el-button[data-v-68cfb339]{font-size:12px;padding:6px 12px}}@media (max-width: 480px){.el-x-welcome-extra[data-v-68cfb339]{justify-content:center;flex-wrap:wrap;gap:4px}.el-x-welcome-extra .el-button[data-v-68cfb339]{font-size:12px;padding:4px 8px;min-height:28px}.el-x-welcome-extra .el-dropdown .el-button[data-v-68cfb339]{font-size:12px;padding:4px 8px}.el-x-welcome-extra .el-link[data-v-68cfb339]{font-size:12px}}@media (max-width: 320px){.el-x-welcome-extra .el-button[data-v-68cfb339]{font-size:11px;padding:3px 6px;min-height:24px}}.el-x-welcome-description[data-v-68cfb339]{margin:0;font-size:var(--description-font-size);color:var(--color-description);line-height:1.5;word-break:break-word}@media (max-width: 768px){.el-x-welcome-description[data-v-68cfb339]{font-size:var(--description-font-size-mobile);line-height:1.4}}@media (max-width: 480px){.el-x-welcome-description[data-v-68cfb339]{font-size:13px;line-height:1.4;text-align:center}}@media (max-width: 320px){.el-x-welcome-description[data-v-68cfb339]{font-size:12px;line-height:1.3}}\n", ""]);
33367
+ ___CSS_LOADER_EXPORT___.push([module.i, "[data-v-68cfb339]:root{--color-primary: #409EFF;--color-success: #67C23A;--color-warning: #E6A23C;--color-danger: #F56C6C;--color-info: #909399}.el-x-welcome[data-v-68cfb339]{--border-radius: 4px;--icon-size: 64px;--icon-size-small: 48px;--icon-size-mobile: 40px;--gap: 16px;--gap-small: 8px;--gap-mobile: 12px;--gap-small-mobile: 6px;--padding: 24px;--padding-mobile: 16px;--title-font-size: 16px;--title-font-size-mobile: 14px;--description-font-size: 14px;--description-font-size-mobile: 13px;--color-filled-bg: #e6f4ff;--color-filled-border: #91caff;--color-title: #303133;--color-description: #606266;display:flex;gap:var(--gap);padding:var(--padding);border-radius:var(--border-radius)}.el-x-welcome.el-x-welcome-filled[data-v-68cfb339]{background-color:var(--color-filled-bg);border:1px solid var(--color-filled-border)}.el-x-welcome.el-x-welcome-borderless[data-v-68cfb339]{border:none}.el-x-welcome.el-x-welcome-rtl[data-v-68cfb339]{direction:rtl}@media(max-width: 768px){.el-x-welcome[data-v-68cfb339]{--gap: var(--gap-mobile);--gap-small: var(--gap-small-mobile);--padding: var(--padding-mobile);--title-font-size: var(--title-font-size-mobile);--description-font-size: var(--description-font-size-mobile);gap:var(--gap-mobile);padding:var(--padding-mobile)}}@media(max-width: 480px){.el-x-welcome[data-v-68cfb339]{--icon-size: var(--icon-size-mobile);--padding: 12px;--gap: 8px;--gap-small: 4px;flex-direction:column;align-items:center;text-align:center;padding:12px;gap:8px}.el-x-welcome.el-x-welcome-rtl[data-v-68cfb339]{direction:ltr}}@media(max-width: 320px){.el-x-welcome[data-v-68cfb339]{--padding: 8px;--gap: 6px;--icon-size: 32px;padding:8px;gap:6px}}.el-x-welcome-icon[data-v-68cfb339]{flex:0 0 auto;width:var(--icon-size);height:var(--icon-size);display:flex;align-items:center;justify-content:center;border-radius:calc(var(--border-radius)/2);overflow:hidden;font-size:24px}.el-x-welcome-icon .icon-image[data-v-68cfb339]{width:100%;height:100%;object-fit:contain;padding:4px}@media(max-width: 768px){.el-x-welcome-icon[data-v-68cfb339]{width:var(--icon-size-small);height:var(--icon-size-small);font-size:20px}}@media(max-width: 480px){.el-x-welcome-icon[data-v-68cfb339]{width:var(--icon-size-mobile);height:var(--icon-size-mobile);font-size:16px;margin-bottom:4px}.el-x-welcome-icon .icon-image[data-v-68cfb339]{padding:2px}}@media(max-width: 320px){.el-x-welcome-icon[data-v-68cfb339]{width:32px;height:32px;font-size:14px}}.content-wrapper[data-v-68cfb339]{flex:1;display:flex;flex-direction:column;gap:var(--gap-small)}@media(max-width: 480px){.content-wrapper[data-v-68cfb339]{align-items:center;text-align:center;width:100%;gap:var(--gap-small-mobile)}}.title-wrapper[data-v-68cfb339]{display:flex;justify-content:space-between;align-items:center;gap:var(--gap-small)}@media(max-width: 768px){.title-wrapper[data-v-68cfb339]{gap:var(--gap-small-mobile)}}@media(max-width: 480px){.title-wrapper[data-v-68cfb339]{flex-direction:column;align-items:center;gap:4px;width:100%}}@media(max-width: 320px){.title-wrapper[data-v-68cfb339]{gap:2px}}.el-x-welcome-title[data-v-68cfb339]{margin:0;font-size:var(--title-font-size);font-weight:600;color:var(--color-title);word-break:break-word}@media(max-width: 768px){.el-x-welcome-title[data-v-68cfb339]{font-size:var(--title-font-size-mobile)}}@media(max-width: 480px){.el-x-welcome-title[data-v-68cfb339]{font-size:14px;text-align:center;line-height:1.4}}@media(max-width: 320px){.el-x-welcome-title[data-v-68cfb339]{font-size:13px}}.el-x-welcome-extra[data-v-68cfb339]{flex-shrink:0;display:flex;align-items:center;gap:var(--gap-small)}.el-x-welcome-extra .el-dropdown[data-v-68cfb339],.el-x-welcome-extra .el-button[data-v-68cfb339],.el-x-welcome-extra .el-link[data-v-68cfb339]{flex-shrink:0}@media(max-width: 768px){.el-x-welcome-extra[data-v-68cfb339]{gap:var(--gap-small-mobile)}.el-x-welcome-extra .el-button[data-v-68cfb339]{font-size:12px;padding:6px 12px}}@media(max-width: 480px){.el-x-welcome-extra[data-v-68cfb339]{justify-content:center;flex-wrap:wrap;gap:4px}.el-x-welcome-extra .el-button[data-v-68cfb339]{font-size:12px;padding:4px 8px;min-height:28px}.el-x-welcome-extra .el-dropdown .el-button[data-v-68cfb339]{font-size:12px;padding:4px 8px}.el-x-welcome-extra .el-link[data-v-68cfb339]{font-size:12px}}@media(max-width: 320px){.el-x-welcome-extra .el-button[data-v-68cfb339]{font-size:11px;padding:3px 6px;min-height:24px}}.el-x-welcome-description[data-v-68cfb339]{margin:0;font-size:var(--description-font-size);color:var(--color-description);line-height:1.5;word-break:break-word}@media(max-width: 768px){.el-x-welcome-description[data-v-68cfb339]{font-size:var(--description-font-size-mobile);line-height:1.4}}@media(max-width: 480px){.el-x-welcome-description[data-v-68cfb339]{font-size:13px;line-height:1.4;text-align:center}}@media(max-width: 320px){.el-x-welcome-description[data-v-68cfb339]{font-size:12px;line-height:1.3}}", ""]);
33373
33368
  // Exports
33374
33369
  /* harmony default export */ __webpack_exports__["a"] = (___CSS_LOADER_EXPORT___);
33375
33370
 
@@ -35324,7 +35319,7 @@ var component = Object(componentNormalizer["a" /* default */])(
35324
35319
 
35325
35320
  /* harmony default export */ var components_item = (component.exports);
35326
35321
  // EXTERNAL MODULE: ./node_modules/lodash/lodash.js
35327
- var lodash = __webpack_require__(5);
35322
+ var lodash = __webpack_require__(6);
35328
35323
 
35329
35324
  // CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Conversations/src/main.vue?vue&type=script&lang=js
35330
35325
 
@@ -35865,7 +35860,7 @@ render._withStripped = true;
35865
35860
  // CONCATENATED MODULE: ./src/components/BubbleList/src/main.vue?vue&type=template&id=1c7b8442&scoped=true
35866
35861
 
35867
35862
  // EXTERNAL MODULE: ./src/components/Bubble/index.js + 7 modules
35868
- var Bubble = __webpack_require__(27);
35863
+ var Bubble = __webpack_require__(28);
35869
35864
 
35870
35865
  // EXTERNAL MODULE: ./src/components/BubbleList/src/loading.vue
35871
35866
  var loading = __webpack_require__(107);
@@ -36454,7 +36449,7 @@ render._withStripped = true;
36454
36449
  // CONCATENATED MODULE: ./src/components/Attachments/src/main.vue?vue&type=template&id=4f88f26a&scoped=true
36455
36450
 
36456
36451
  // EXTERNAL MODULE: ./src/components/FilesCard/index.js + 58 modules
36457
- var FilesCard = __webpack_require__(26);
36452
+ var FilesCard = __webpack_require__(27);
36458
36453
 
36459
36454
  // CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Attachments/src/main.vue?vue&type=script&lang=js
36460
36455
 
@@ -36954,71 +36949,71 @@ render._withStripped = true;
36954
36949
  /* harmony default export */ var mainvue_type_script_lang_js = ({
36955
36950
  name: 'ElXPrompts',
36956
36951
  props: {
36957
- /**
36958
- * 包含多个提示项的列表
36952
+ /**
36953
+ * 包含多个提示项的列表
36959
36954
  */
36960
36955
  items: {
36961
36956
  type: Array,
36962
36957
  default: () => []
36963
36958
  },
36964
- /**
36965
- * 显示在提示列表顶部的标题
36959
+ /**
36960
+ * 显示在提示列表顶部的标题
36966
36961
  */
36967
36962
  title: {
36968
36963
  type: String,
36969
36964
  default: ''
36970
36965
  },
36971
- /**
36972
- * Item 提示项被点击时的回调函数
36966
+ /**
36967
+ * Item 提示项被点击时的回调函数
36973
36968
  */
36974
36969
  onItemClick: {
36975
36970
  type: Function,
36976
36971
  default: null
36977
36972
  },
36978
- /**
36979
- * 提示列表是否垂直排列
36973
+ /**
36974
+ * 提示列表是否垂直排列
36980
36975
  */
36981
36976
  vertical: {
36982
36977
  type: Boolean,
36983
36978
  default: false
36984
36979
  },
36985
- /**
36986
- * 提示列表是否换行
36980
+ /**
36981
+ * 提示列表是否换行
36987
36982
  */
36988
36983
  wrap: {
36989
36984
  type: Boolean,
36990
36985
  default: false
36991
36986
  },
36992
- /**
36993
- * 自定义样式,用于各个提示项的不同部分
36987
+ /**
36988
+ * 自定义样式,用于各个提示项的不同部分
36994
36989
  */
36995
36990
  styles: {
36996
36991
  type: Object,
36997
36992
  default: () => ({})
36998
36993
  },
36999
- /**
37000
- * 自定义样式类名,用于各个提示项的不同部分
36994
+ /**
36995
+ * 自定义样式类名,用于各个提示项的不同部分
37001
36996
  */
37002
36997
  classNames: {
37003
36998
  type: Object,
37004
36999
  default: () => ({})
37005
37000
  },
37006
- /**
37007
- * 根节点的样式类名
37001
+ /**
37002
+ * 根节点的样式类名
37008
37003
  */
37009
37004
  rootClassName: {
37010
37005
  type: String,
37011
37006
  default: ''
37012
37007
  },
37013
- /**
37014
- * 自定义样式
37008
+ /**
37009
+ * 自定义样式
37015
37010
  */
37016
37011
  customStyle: {
37017
37012
  type: Object,
37018
37013
  default: () => ({})
37019
37014
  },
37020
- /**
37021
- * 方向
37015
+ /**
37016
+ * 方向
37022
37017
  */
37023
37018
  direction: {
37024
37019
  type: String,
@@ -37726,10 +37721,10 @@ render._withStripped = true;
37726
37721
  // CONCATENATED MODULE: ./src/components/ThoughtChain/src/main.vue?vue&type=template&id=49e41fca&scoped=true
37727
37722
 
37728
37723
  // EXTERNAL MODULE: ./node_modules/lodash/lodash.js
37729
- var lodash = __webpack_require__(5);
37724
+ var lodash = __webpack_require__(6);
37730
37725
 
37731
37726
  // EXTERNAL MODULE: ./src/components/Typewriter/index.js + 7 modules
37732
- var Typewriter = __webpack_require__(11);
37727
+ var Typewriter = __webpack_require__(12);
37733
37728
 
37734
37729
  // CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./src/components/ThoughtChain/src/main.vue?vue&type=script&lang=js
37735
37730
 
@@ -38201,7 +38196,7 @@ __webpack_require__.r(__webpack_exports__);
38201
38196
  /* harmony import */ var _components_Attachments_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(101);
38202
38197
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ElXAttachments", function() { return _components_Attachments_index_js__WEBPACK_IMPORTED_MODULE_0__["default"]; });
38203
38198
 
38204
- /* harmony import */ var _components_Bubble_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(27);
38199
+ /* harmony import */ var _components_Bubble_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(28);
38205
38200
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ElXBubble", function() { return _components_Bubble_index_js__WEBPACK_IMPORTED_MODULE_1__["default"]; });
38206
38201
 
38207
38202
  /* harmony import */ var _components_BubbleList_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(100);
@@ -38210,7 +38205,7 @@ __webpack_require__.r(__webpack_exports__);
38210
38205
  /* harmony import */ var _components_Conversations_index_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(99);
38211
38206
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ElXConversations", function() { return _components_Conversations_index_js__WEBPACK_IMPORTED_MODULE_3__["default"]; });
38212
38207
 
38213
- /* harmony import */ var _components_FilesCard_index_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(26);
38208
+ /* harmony import */ var _components_FilesCard_index_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(27);
38214
38209
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ElXFilesCard", function() { return _components_FilesCard_index_js__WEBPACK_IMPORTED_MODULE_4__["default"]; });
38215
38210
 
38216
38211
  /* harmony import */ var _components_Prompts_index_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(102);
@@ -38228,20 +38223,28 @@ __webpack_require__.r(__webpack_exports__);
38228
38223
  /* harmony import */ var _components_ThoughtChain_index_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(105);
38229
38224
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ElXThoughtChain", function() { return _components_ThoughtChain_index_js__WEBPACK_IMPORTED_MODULE_9__["default"]; });
38230
38225
 
38231
- /* harmony import */ var _components_Typewriter_index_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(11);
38226
+ /* harmony import */ var _components_Typewriter_index_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(12);
38232
38227
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ElXTypewriter", function() { return _components_Typewriter_index_js__WEBPACK_IMPORTED_MODULE_10__["default"]; });
38233
38228
 
38234
38229
  /* harmony import */ var _components_Welcome_index_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(106);
38235
38230
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ElXWelcome", function() { return _components_Welcome_index_js__WEBPACK_IMPORTED_MODULE_11__["default"]; });
38236
38231
 
38237
- /* harmony import */ var _mixins__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(82);
38232
+ /* harmony import */ var _mixins__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(5);
38238
38233
  /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "customMixins", function() { return _mixins__WEBPACK_IMPORTED_MODULE_12__; });
38239
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "streamMixin", function() { return _mixins__WEBPACK_IMPORTED_MODULE_12__["streamMixin"]; });
38234
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createSendUtils", function() { return _mixins__WEBPACK_IMPORTED_MODULE_12__["createSendUtils"]; });
38240
38235
 
38241
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sendMixin", function() { return _mixins__WEBPACK_IMPORTED_MODULE_12__["sendMixin"]; });
38236
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createStreamUtils", function() { return _mixins__WEBPACK_IMPORTED_MODULE_12__["createStreamUtils"]; });
38242
38237
 
38243
38238
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recordMixin", function() { return _mixins__WEBPACK_IMPORTED_MODULE_12__["recordMixin"]; });
38244
38239
 
38240
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sendMixin", function() { return _mixins__WEBPACK_IMPORTED_MODULE_12__["sendMixin"]; });
38241
+
38242
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "streamMixin", function() { return _mixins__WEBPACK_IMPORTED_MODULE_12__["streamMixin"]; });
38243
+
38244
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "XRequest", function() { return _mixins__WEBPACK_IMPORTED_MODULE_12__["XRequest"]; });
38245
+
38246
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "XStream", function() { return _mixins__WEBPACK_IMPORTED_MODULE_12__["XStream"]; });
38247
+
38245
38248
 
38246
38249
 
38247
38250
 
@@ -38264,19 +38267,32 @@ const install = function (Vue) {
38264
38267
  });
38265
38268
  };
38266
38269
 
38267
- // 默认导出(完整引入)
38268
- /* harmony default export */ __webpack_exports__["default"] = ({
38269
- version: '1.0.0',
38270
- install,
38271
- customMixins: _mixins__WEBPACK_IMPORTED_MODULE_12__,
38272
- ...components
38273
- });
38274
-
38275
38270
  // 具名导出(按需引入)- 组件
38276
38271
 
38277
38272
 
38278
38273
  // 具名导出(按需引入)- Mixins
38279
38274
 
38275
+ // 默认导出(完整引入)
38276
+ const ElementUIX = {
38277
+ version: '1.0.0',
38278
+ install
38279
+ };
38280
+
38281
+ // 将组件添加到默认导出对象中
38282
+ components.forEach(component => {
38283
+ ElementUIX[component.name] = component;
38284
+ });
38285
+
38286
+ // 添加mixins
38287
+ ElementUIX.customMixins = _mixins__WEBPACK_IMPORTED_MODULE_12__;
38288
+ ElementUIX.streamMixin = _mixins__WEBPACK_IMPORTED_MODULE_12__["streamMixin"];
38289
+ ElementUIX.sendMixin = _mixins__WEBPACK_IMPORTED_MODULE_12__["sendMixin"];
38290
+ ElementUIX.recordMixin = _mixins__WEBPACK_IMPORTED_MODULE_12__["recordMixin"];
38291
+ ElementUIX.createStreamUtils = _mixins__WEBPACK_IMPORTED_MODULE_12__["createStreamUtils"];
38292
+ ElementUIX.createSendUtils = _mixins__WEBPACK_IMPORTED_MODULE_12__["createSendUtils"];
38293
+ ElementUIX.XRequest = _mixins__WEBPACK_IMPORTED_MODULE_12__["XRequest"];
38294
+ ElementUIX.XStream = _mixins__WEBPACK_IMPORTED_MODULE_12__["XStream"];
38295
+ /* harmony default export */ __webpack_exports__["default"] = (ElementUIX);
38280
38296
 
38281
38297
  /***/ })
38282
38298
  /******/ ]);