vue-element-ui-x 1.0.4 → 1.0.5

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 (91) hide show
  1. package/lib/components/Sender/index.js +1 -1
  2. package/lib/components/ThoughtChain/index.js +30 -30
  3. package/lib/index.common.js +1 -1
  4. package/lib/index.esm.js +1 -1
  5. package/lib/index.js +774 -774
  6. package/lib/index.umd.js +1 -1
  7. package/package.json +5 -10
  8. package/src/components/Attachments/index.js +0 -8
  9. package/src/components/Attachments/src/main.vue +0 -529
  10. package/src/components/Bubble/index.js +0 -6
  11. package/src/components/Bubble/src/main.vue +0 -288
  12. package/src/components/BubbleList/index.js +0 -8
  13. package/src/components/BubbleList/src/loading.vue +0 -75
  14. package/src/components/BubbleList/src/main.vue +0 -444
  15. package/src/components/Conversations/index.js +0 -8
  16. package/src/components/Conversations/src/components/item.vue +0 -350
  17. package/src/components/Conversations/src/main.vue +0 -587
  18. package/src/components/FilesCard/index.js +0 -8
  19. package/src/components/FilesCard/src/fileSvg/audio.vue +0 -38
  20. package/src/components/FilesCard/src/fileSvg/changeFileName.bat +0 -18
  21. package/src/components/FilesCard/src/fileSvg/code.vue +0 -35
  22. package/src/components/FilesCard/src/fileSvg/database.vue +0 -94
  23. package/src/components/FilesCard/src/fileSvg/excel.vue +0 -38
  24. package/src/components/FilesCard/src/fileSvg/file.vue +0 -40
  25. package/src/components/FilesCard/src/fileSvg/image.vue +0 -40
  26. package/src/components/FilesCard/src/fileSvg/index.js +0 -46
  27. package/src/components/FilesCard/src/fileSvg/link.vue +0 -54
  28. package/src/components/FilesCard/src/fileSvg/mark.vue +0 -38
  29. package/src/components/FilesCard/src/fileSvg/pdf.vue +0 -38
  30. package/src/components/FilesCard/src/fileSvg/ppt.vue +0 -38
  31. package/src/components/FilesCard/src/fileSvg/three.vue +0 -38
  32. package/src/components/FilesCard/src/fileSvg/txt.vue +0 -38
  33. package/src/components/FilesCard/src/fileSvg/unknown.vue +0 -54
  34. package/src/components/FilesCard/src/fileSvg/video.vue +0 -38
  35. package/src/components/FilesCard/src/fileSvg/word.vue +0 -38
  36. package/src/components/FilesCard/src/fileSvg/zip.vue +0 -38
  37. package/src/components/FilesCard/src/main.vue +0 -403
  38. package/src/components/FilesCard/src/options.js +0 -18
  39. package/src/components/Prompts/index.js +0 -8
  40. package/src/components/Prompts/src/main.vue +0 -248
  41. package/src/components/Sender/index.js +0 -8
  42. package/src/components/Sender/src/components/ClearButton.vue +0 -28
  43. package/src/components/Sender/src/components/Loading.vue +0 -53
  44. package/src/components/Sender/src/components/LoadingButton.vue +0 -37
  45. package/src/components/Sender/src/components/SendButton.vue +0 -26
  46. package/src/components/Sender/src/components/SpeechButton.vue +0 -24
  47. package/src/components/Sender/src/components/SpeechLoading.vue +0 -87
  48. package/src/components/Sender/src/components/SpeechLoadingButton.vue +0 -41
  49. package/src/components/Sender/src/main.vue +0 -803
  50. package/src/components/Thinking/index.js +0 -8
  51. package/src/components/Thinking/src/main.vue +0 -199
  52. package/src/components/ThoughtChain/index.js +0 -8
  53. package/src/components/ThoughtChain/src/main.vue +0 -291
  54. package/src/components/Typewriter/index.js +0 -8
  55. package/src/components/Typewriter/src/main.vue +0 -255
  56. package/src/components/Welcome/index.js +0 -8
  57. package/src/components/Welcome/src/main.vue +0 -151
  58. package/src/index.js +0 -104
  59. package/src/locale/index.js +0 -97
  60. package/src/locale/lang/ar.js +0 -18
  61. package/src/locale/lang/de.js +0 -18
  62. package/src/locale/lang/en.js +0 -18
  63. package/src/locale/lang/es.js +0 -18
  64. package/src/locale/lang/fr.js +0 -18
  65. package/src/locale/lang/index.js +0 -62
  66. package/src/locale/lang/it.js +0 -18
  67. package/src/locale/lang/ja.js +0 -18
  68. package/src/locale/lang/ko.js +0 -18
  69. package/src/locale/lang/pt-br.js +0 -18
  70. package/src/locale/lang/ru-RU.js +0 -18
  71. package/src/locale/lang/zh-CN.js +0 -18
  72. package/src/locale/lang/zh-TW.js +0 -18
  73. package/src/locale/mixin.js +0 -9
  74. package/src/mixins/index.js +0 -49
  75. package/src/mixins/recordMixin.js +0 -117
  76. package/src/mixins/sendMixin.js +0 -450
  77. package/src/mixins/streamMixin.js +0 -497
  78. package/src/styles/Attachments.scss +0 -236
  79. package/src/styles/Bubble.scss +0 -158
  80. package/src/styles/BubbleList.scss +0 -148
  81. package/src/styles/Conversations.scss +0 -283
  82. package/src/styles/FilesCard.scss +0 -222
  83. package/src/styles/Prompts.scss +0 -197
  84. package/src/styles/Sender.scss +0 -207
  85. package/src/styles/Thinking.scss +0 -142
  86. package/src/styles/ThoughtChain.scss +0 -113
  87. package/src/styles/Typewriter.scss +0 -66
  88. package/src/styles/Welcome.scss +0 -283
  89. package/src/theme/var.scss +0 -183
  90. package/src/utils/index.js +0 -199
  91. package/src/utils/scrollDetector.js +0 -34
package/lib/index.js CHANGED
@@ -5579,6 +5579,26 @@ module.exports = [
5579
5579
  ];
5580
5580
 
5581
5581
 
5582
+ /***/ }),
5583
+
5584
+ /***/ 1519:
5585
+ /***/ ((module, __webpack_exports__, __webpack_require__) => {
5586
+
5587
+ "use strict";
5588
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
5589
+ /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
5590
+ /* harmony export */ });
5591
+ /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6314);
5592
+ /* 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__);
5593
+ // Imports
5594
+
5595
+ var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]});
5596
+ // Module
5597
+ ___CSS_LOADER_EXPORT___.push([module.id, "[data-v-1df1b25f]:root{--color-primary: #409eff;--color-success: #67c23a;--color-warning: #e6a23c;--color-danger: #f56c6c;--color-info: #909399}.el-x-thoughtchain-item-dot[data-v-1df1b25f]{display:flex;justify-content:center;align-items:center}.el-x-thoughtchain-item-dot .el-button[data-v-1df1b25f]{cursor:default !important}.el-x-thoughtchain .el-collapse[data-v-1df1b25f]{border:none}.el-x-thoughtchain .el-collapse .el-collapse-item__header[data-v-1df1b25f]{height:20px;font-weight:normal}.el-x-thoughtchain .el-collapse .el-collapse-item__arrow[data-v-1df1b25f]{margin:0 0 0 8px}.el-x-thoughtchain .el-collapse .el-collapse-item__header[data-v-1df1b25f]{margin-bottom:5px}.el-x-thoughtchain .el-collapse .el-collapse-item__header[data-v-1df1b25f],.el-x-thoughtchain .el-collapse .el-collapse-item__wrap[data-v-1df1b25f]{border:none}.el-x-thoughtchain .el-collapse .el-collapse-item__content[data-v-1df1b25f]{color:#909399;padding:0}.el-x-thoughtchain .el-timeline[data-v-1df1b25f]{padding:10px 0 0 5px}.el-x-thoughtchain .el-timeline-item__timestamp[data-v-1df1b25f]{color:#303133}.el-x-thoughtchain .el-timeline-item__content[data-v-1df1b25f]{color:#909399}.el-x-thoughtchain .el-timeline-item[data-v-1df1b25f]{list-style:none !important}.thought-chain-move[data-v-1df1b25f],.thought-chain-enter-active[data-v-1df1b25f],.thought-chain-leave-active[data-v-1df1b25f]{transition:all .5s ease}.thought-chain-enter[data-v-1df1b25f],.thought-chain-leave-to[data-v-1df1b25f]{opacity:0;transform:translateY(10px) scaleY(0.9)}.thought-chain-leave-active[data-v-1df1b25f]{position:absolute}.el-x-thoughtchain-loading[data-v-1df1b25f]{animation:thoughtchain-rotating-1df1b25f 1.5s linear infinite;transform-origin:center center;will-change:transform;backface-visibility:hidden;-webkit-font-smoothing:antialiased}@keyframes thoughtchain-rotating-1df1b25f{0%{transform:rotate(0deg)}25%{transform:rotate(90deg)}50%{transform:rotate(180deg)}75%{transform:rotate(270deg)}100%{transform:rotate(360deg)}}", ""]);
5598
+ // Exports
5599
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
5600
+
5601
+
5582
5602
  /***/ }),
5583
5603
 
5584
5604
  /***/ 1525:
@@ -28773,602 +28793,245 @@ module.exports=/[\0-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-
28773
28793
 
28774
28794
  /***/ }),
28775
28795
 
28776
- /***/ 6109:
28796
+ /***/ 6280:
28797
+ /***/ ((module, __webpack_exports__, __webpack_require__) => {
28798
+
28799
+ "use strict";
28800
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
28801
+ /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
28802
+ /* harmony export */ });
28803
+ /* harmony import */ var _css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6314);
28804
+ /* harmony import */ var _css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__);
28805
+ // Imports
28806
+
28807
+ var ___CSS_LOADER_EXPORT___ = _css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]});
28808
+ // Module
28809
+ ___CSS_LOADER_EXPORT___.push([module.id, "/**\n * prism.js default theme for JavaScript, CSS and HTML\n * Based on dabblet (http://dabblet.com)\n * @author Lea Verou\n */\n\ncode[class*=\"language-\"],\npre[class*=\"language-\"] {\n\tcolor: black;\n\tbackground: none;\n\ttext-shadow: 0 1px white;\n\tfont-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;\n\tfont-size: 1em;\n\ttext-align: left;\n\twhite-space: pre;\n\tword-spacing: normal;\n\tword-break: normal;\n\tword-wrap: normal;\n\tline-height: 1.5;\n\n\t-moz-tab-size: 4;\n\t-o-tab-size: 4;\n\ttab-size: 4;\n\n\t-webkit-hyphens: none;\n\t-moz-hyphens: none;\n\t-ms-hyphens: none;\n\thyphens: none;\n}\n\npre[class*=\"language-\"]::-moz-selection, pre[class*=\"language-\"] ::-moz-selection,\ncode[class*=\"language-\"]::-moz-selection, code[class*=\"language-\"] ::-moz-selection {\n\ttext-shadow: none;\n\tbackground: #b3d4fc;\n}\n\npre[class*=\"language-\"]::selection, pre[class*=\"language-\"] ::selection,\ncode[class*=\"language-\"]::selection, code[class*=\"language-\"] ::selection {\n\ttext-shadow: none;\n\tbackground: #b3d4fc;\n}\n\n@media print {\n\tcode[class*=\"language-\"],\n\tpre[class*=\"language-\"] {\n\t\ttext-shadow: none;\n\t}\n}\n\n/* Code blocks */\npre[class*=\"language-\"] {\n\tpadding: 1em;\n\tmargin: .5em 0;\n\toverflow: auto;\n}\n\n:not(pre) > code[class*=\"language-\"],\npre[class*=\"language-\"] {\n\tbackground: #f5f2f0;\n}\n\n/* Inline code */\n:not(pre) > code[class*=\"language-\"] {\n\tpadding: .1em;\n\tborder-radius: .3em;\n\twhite-space: normal;\n}\n\n.token.comment,\n.token.prolog,\n.token.doctype,\n.token.cdata {\n\tcolor: slategray;\n}\n\n.token.punctuation {\n\tcolor: #999;\n}\n\n.token.namespace {\n\topacity: .7;\n}\n\n.token.property,\n.token.tag,\n.token.boolean,\n.token.number,\n.token.constant,\n.token.symbol,\n.token.deleted {\n\tcolor: #905;\n}\n\n.token.selector,\n.token.attr-name,\n.token.string,\n.token.char,\n.token.builtin,\n.token.inserted {\n\tcolor: #690;\n}\n\n.token.operator,\n.token.entity,\n.token.url,\n.language-css .token.string,\n.style .token.string {\n\tcolor: #9a6e3a;\n\t/* This background color was intended by the author of this theme. */\n\tbackground: hsla(0, 0%, 100%, .5);\n}\n\n.token.atrule,\n.token.attr-value,\n.token.keyword {\n\tcolor: #07a;\n}\n\n.token.function,\n.token.class-name {\n\tcolor: #DD4A68;\n}\n\n.token.regex,\n.token.important,\n.token.variable {\n\tcolor: #e90;\n}\n\n.token.important,\n.token.bold {\n\tfont-weight: bold;\n}\n.token.italic {\n\tfont-style: italic;\n}\n\n.token.entity {\n\tcursor: help;\n}\n", ""]);
28810
+ // Exports
28811
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
28812
+
28813
+
28814
+ /***/ }),
28815
+
28816
+ /***/ 6314:
28817
+ /***/ ((module) => {
28818
+
28819
+ "use strict";
28820
+
28821
+
28822
+ /*
28823
+ MIT License http://www.opensource.org/licenses/mit-license.php
28824
+ Author Tobias Koppers @sokra
28825
+ */
28826
+ // css base code, injected by the css-loader
28827
+ // eslint-disable-next-line func-names
28828
+ module.exports = function (cssWithMappingToString) {
28829
+ var list = []; // return the list of modules as css string
28830
+
28831
+ list.toString = function toString() {
28832
+ return this.map(function (item) {
28833
+ var content = cssWithMappingToString(item);
28834
+
28835
+ if (item[2]) {
28836
+ return "@media ".concat(item[2], " {").concat(content, "}");
28837
+ }
28838
+
28839
+ return content;
28840
+ }).join("");
28841
+ }; // import a list of modules into the list
28842
+ // eslint-disable-next-line func-names
28843
+
28844
+
28845
+ list.i = function (modules, mediaQuery, dedupe) {
28846
+ if (typeof modules === "string") {
28847
+ // eslint-disable-next-line no-param-reassign
28848
+ modules = [[null, modules, ""]];
28849
+ }
28850
+
28851
+ var alreadyImportedModules = {};
28852
+
28853
+ if (dedupe) {
28854
+ for (var i = 0; i < this.length; i++) {
28855
+ // eslint-disable-next-line prefer-destructuring
28856
+ var id = this[i][0];
28857
+
28858
+ if (id != null) {
28859
+ alreadyImportedModules[id] = true;
28860
+ }
28861
+ }
28862
+ }
28863
+
28864
+ for (var _i = 0; _i < modules.length; _i++) {
28865
+ var item = [].concat(modules[_i]);
28866
+
28867
+ if (dedupe && alreadyImportedModules[item[0]]) {
28868
+ // eslint-disable-next-line no-continue
28869
+ continue;
28870
+ }
28871
+
28872
+ if (mediaQuery) {
28873
+ if (!item[2]) {
28874
+ item[2] = mediaQuery;
28875
+ } else {
28876
+ item[2] = "".concat(mediaQuery, " and ").concat(item[2]);
28877
+ }
28878
+ }
28879
+
28880
+ list.push(item);
28881
+ }
28882
+ };
28883
+
28884
+ return list;
28885
+ };
28886
+
28887
+ /***/ }),
28888
+
28889
+ /***/ 6321:
28890
+ /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
28891
+
28892
+ "use strict";
28893
+ /** internal
28894
+ * class Core
28895
+ *
28896
+ * Top-level rules executor. Glues block/inline parsers and does intermediate
28897
+ * transformations.
28898
+ **/
28899
+
28900
+
28901
+
28902
+ var Ruler = __webpack_require__(2378);
28903
+
28904
+
28905
+ var _rules = [
28906
+ [ 'normalize', __webpack_require__(803) ],
28907
+ [ 'block', __webpack_require__(3437) ],
28908
+ [ 'inline', __webpack_require__(3547) ],
28909
+ [ 'linkify', __webpack_require__(986) ],
28910
+ [ 'replacements', __webpack_require__(203) ],
28911
+ [ 'smartquotes', __webpack_require__(5260) ]
28912
+ ];
28913
+
28914
+
28915
+ /**
28916
+ * new Core()
28917
+ **/
28918
+ function Core() {
28919
+ /**
28920
+ * Core#ruler -> Ruler
28921
+ *
28922
+ * [[Ruler]] instance. Keep configuration of core rules.
28923
+ **/
28924
+ this.ruler = new Ruler();
28925
+
28926
+ for (var i = 0; i < _rules.length; i++) {
28927
+ this.ruler.push(_rules[i][0], _rules[i][1]);
28928
+ }
28929
+ }
28930
+
28931
+
28932
+ /**
28933
+ * Core.process(state)
28934
+ *
28935
+ * Executes core chain rules.
28936
+ **/
28937
+ Core.prototype.process = function (state) {
28938
+ var i, l, rules;
28939
+
28940
+ rules = this.ruler.getRules('');
28941
+
28942
+ for (i = 0, l = rules.length; i < l; i++) {
28943
+ rules[i](state);
28944
+ }
28945
+ };
28946
+
28947
+ Core.prototype.State = __webpack_require__(1839);
28948
+
28949
+
28950
+ module.exports = Core;
28951
+
28952
+
28953
+ /***/ }),
28954
+
28955
+ /***/ 6355:
28956
+ /***/ ((module, __webpack_exports__, __webpack_require__) => {
28957
+
28958
+ "use strict";
28959
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
28960
+ /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
28961
+ /* harmony export */ });
28962
+ /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6314);
28963
+ /* 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__);
28964
+ // Imports
28965
+
28966
+ var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]});
28967
+ // Module
28968
+ ___CSS_LOADER_EXPORT___.push([module.id, "[data-v-5b4c3366]:root{--color-primary: #409eff;--color-success: #67c23a;--color-warning: #e6a23c;--color-danger: #f56c6c;--color-info: #909399}.el-x-sender[data-v-5b4c3366]{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 var(--el-x-sender-header-animation-duration)}.el-x-sender[data-v-5b4c3366]:after{content:\"\";position:absolute;top:0;right:0;bottom:0;left: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-5b4c3366]: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-5b4c3366]:focus-within::after{border-width:2px}.el-x-sender .el-x-sender-header-wrap[data-v-5b4c3366]{display:flex;flex-direction:column;gap:8px;width:100%;margin:0;padding:0}.el-x-sender .slide-enter-active[data-v-5b4c3366],.el-x-sender .slide-leave-active[data-v-5b4c3366]{height:calc-size(max-content,size);opacity:1;transition:height var(--el-x-sender-header-animation-duration),opacity var(--el-x-sender-header-animation-duration),border var(--el-x-sender-header-animation-duration);overflow:hidden}.el-x-sender .slide-enter[data-v-5b4c3366],.el-x-sender .slide-leave-to[data-v-5b4c3366]{height:0;opacity:0 !important}.el-x-sender .slide-enter-to[data-v-5b4c3366],.el-x-sender .slide-leave[data-v-5b4c3366]{height:calc-size(max-content,size);opacity:1}.el-x-sender .slide-enter-active .el-x-sender-header-wrap[data-v-5b4c3366],.el-x-sender .slide-leave-active .el-x-sender-header-wrap[data-v-5b4c3366]{min-height:0;overflow:hidden}.el-x-sender .el-x-sender-header[data-v-5b4c3366]{border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#dcdfe6}.el-x-sender .el-x-sender-content[data-v-5b4c3366]{display:flex;gap:8px;width:100%;padding-top:12px;padding-bottom:12px;padding-left:16px;padding-right:12px;box-sizing:border-box;align-items:flex-end}.el-x-sender .el-x-sender-content .el-x-sender-prefix[data-v-5b4c3366]{flex:none}.el-x-sender .el-x-sender-content .el-x-sender-input[data-v-5b4c3366]{height:100%;display:flex;align-items:center;align-self:center}.el-x-sender .el-x-sender-content .el-x-sender-input[data-v-5b4c3366] .el-textarea__inner{padding:0 !important;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-5b4c3366]{display:flex;gap:8px;flex-direction:row-reverse}.el-x-sender .content-variant-updown[data-v-5b4c3366]{display:flex;flex-direction:column;align-items:initial}.el-x-sender .content-variant-updown .el-x-sender-updown-wrap[data-v-5b4c3366]{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-5b4c3366]{flex:initial}.el-x-sender .content-variant-updown .el-x-sender-updown-wrap .el-x-sender-action-list[data-v-5b4c3366]{margin-left:auto}.el-x-sender .el-x-sender-footer[data-v-5b4c3366]{border-top-width:1px;border-top-style:solid;border-top-color:#dcdfe6}.el-x-sender-disabled[data-v-5b4c3366]{background-color:#f5f7fa;pointer-events:none}[data-v-5b4c3366] .el-x-sender-trigger-popover{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}", ""]);
28969
+ // Exports
28970
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
28971
+
28972
+
28973
+ /***/ }),
28974
+
28975
+ /***/ 6449:
28976
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
28977
+
28978
+ "use strict";
28979
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
28980
+ /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
28981
+ /* harmony export */ });
28982
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
28983
+ el_x: {
28984
+ thinking: {
28985
+ start: '开始思考',
28986
+ processing: '思考中...',
28987
+ completed: '思考完成',
28988
+ error: '思考遇到问题',
28989
+ errorContent: '思考过程中出现错误'
28990
+ },
28991
+ sender: {
28992
+ placeholder: '请输入内容'
28993
+ },
28994
+ common: {
28995
+ loading: '加载中...',
28996
+ success: '成功',
28997
+ error: '错误',
28998
+ warning: '警告'
28999
+ }
29000
+ }
29001
+ });
29002
+
29003
+ /***/ }),
29004
+
29005
+ /***/ 6493:
28777
29006
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
28778
29007
 
28779
29008
  "use strict";
28780
29009
 
28781
29010
  // EXPORTS
28782
29011
  __webpack_require__.d(__webpack_exports__, {
28783
- "default": () => (/* binding */ ThoughtChain)
29012
+ "default": () => (/* binding */ BubbleList)
28784
29013
  });
28785
29014
 
28786
- ;// ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/ThoughtChain/src/main.vue?vue&type=template&id=86d7e9ae&scoped=true
29015
+ ;// ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/BubbleList/src/main.vue?vue&type=template&id=62f6ce33&scoped=true
28787
29016
  var render = function render() {
28788
29017
  var _vm = this,
28789
29018
  _c = _vm._self._c;
28790
29019
  return _c("div", {
28791
- staticClass: "el-x-thoughtchain"
28792
- }, [_c("el-timeline", {
28793
- ref: "timelineRef",
29020
+ ref: "scrollContainer",
29021
+ staticClass: "el-x-bubble-list",
29022
+ class: {
29023
+ "always-scrollbar": _vm.alwaysShowScrollbar
29024
+ },
28794
29025
  style: {
28795
- maxWidth: _vm.maxWidth
28796
- }
28797
- }, [_c("transition-group", {
28798
- attrs: {
28799
- name: "thought-chain",
28800
- tag: "div"
29026
+ "--el-x-bubble-list-max-height": `${_vm.maxHeight}`,
29027
+ "--el-x-bubble-list-btn-size": `${_vm.btnIconSize}px`
29028
+ },
29029
+ on: {
29030
+ scroll: _vm.handleScroll
28801
29031
  }
28802
- }, _vm._l(_vm.thinkingItems, function (item) {
28803
- return _c("el-timeline-item", {
28804
- key: _vm.getId(item),
28805
- attrs: {
28806
- type: _vm.getType(item),
28807
- icon: _vm.dotIsIcon ? item.icon : "el-icon-more",
28808
- color: _vm.dotIsIcon ? item.iconColor : null,
28809
- size: _vm.dotIsIcon ? item.iconSize : "normal",
28810
- timestamp: _vm.getTitle(item),
28811
- "hide-timestamp": item.hideTitle,
28812
- placement: item.placement || "top"
28813
- }
28814
- }, [!item.isCanExpand ? _c("div", [_c("el-x-typewriter", {
28815
- attrs: {
28816
- content: _vm.getThinkTitle(item),
28817
- "is-markdown": item.isMarkdown,
28818
- typing: item.typing
28819
- }
28820
- })], 1) : !item.isDefaultExpand ? _c("el-collapse", {
28821
- on: {
28822
- change: () => _vm.onExpand(item)
28823
- }
28824
- }, [_c("el-collapse-item", {
28825
- attrs: {
28826
- title: _vm.getThinkTitle(item)
28827
- }
28828
- }, [_c("el-x-typewriter", {
28829
- attrs: {
28830
- content: _vm.getThinkContent(item),
28831
- "is-markdown": item.isMarkdown,
28832
- typing: item.typing
28833
- }
28834
- })], 1)], 1) : _c("el-collapse", {
28835
- on: {
28836
- change: () => _vm.onExpand(item)
28837
- },
28838
- model: {
28839
- value: _vm.defaultActiveNodes,
28840
- callback: function ($$v) {
28841
- _vm.defaultActiveNodes = $$v;
28842
- },
28843
- expression: "defaultActiveNodes"
28844
- }
28845
- }, [_c("el-collapse-item", {
28846
- attrs: {
28847
- title: _vm.getThinkTitle(item),
28848
- name: String(_vm.getId(item))
28849
- }
28850
- }, [_c("el-x-typewriter", {
28851
- attrs: {
28852
- content: _vm.getThinkContent(item),
28853
- "is-markdown": item.isMarkdown,
28854
- typing: item.typing
28855
- }
28856
- })], 1)], 1), _vm._v(" "), !_vm.dotIsIcon ? _c("template", {
28857
- slot: "dot"
28858
- }, [_c("div", {
28859
- staticClass: "el-x-thoughtchain-item-dot",
28860
- style: {
28861
- margin: _vm.dotMargin
28862
- }
28863
- }, [_vm._t("icon", function () {
28864
- return [_c("el-button", {
28865
- attrs: {
28866
- circle: "",
28867
- type: _vm.getType(item),
28868
- loading: _vm.isLoading(item),
28869
- size: _vm.dotSize
28870
- }
28871
- }, [_c("template", {
28872
- slot: "loading"
28873
- }, [_c("i", {
28874
- staticClass: "el-icon-loading el-x-thoughtchain-loading"
28875
- })]), _vm._v(" "), !_vm.isLoading(item) && !_vm.isError(item) ? _c("i", {
28876
- staticClass: "el-icon-check"
28877
- }) : _vm._e(), _vm._v(" "), !_vm.isLoading(item) && _vm.isError(item) ? _c("i", {
28878
- staticClass: "el-icon-close"
28879
- }) : _vm._e()], 2)];
28880
- }, {
28881
- item: item
28882
- })], 2)]) : _vm._e()], 2);
28883
- }), 1)], 1)], 1);
28884
- };
28885
- var staticRenderFns = [];
28886
- render._withStripped = true;
28887
-
28888
- ;// ./src/components/ThoughtChain/src/main.vue?vue&type=template&id=86d7e9ae&scoped=true
28889
-
28890
- // EXTERNAL MODULE: ./node_modules/lodash/lodash.js
28891
- var lodash = __webpack_require__(2543);
28892
- // EXTERNAL MODULE: ./src/components/Typewriter/index.js + 8 modules
28893
- var Typewriter = __webpack_require__(1207);
28894
- ;// ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/ThoughtChain/src/main.vue?vue&type=script&lang=js
28895
-
28896
-
28897
- /* harmony default export */ const mainvue_type_script_lang_js = ({
28898
- name: 'ElXThoughtChain',
28899
- components: {
28900
- ElXTypewriter: Typewriter["default"]
28901
- },
28902
- props: {
28903
- thinkingItems: {
28904
- type: Array,
28905
- default: () => []
28906
- },
28907
- dotIsIcon: {
28908
- type: Boolean,
28909
- default: false
28910
- },
28911
- dotSize: {
28912
- type: String,
28913
- default: 'small'
28914
- },
28915
- maxWidth: {
28916
- type: String,
28917
- default: '600px'
28918
- },
28919
- lineGradient: {
28920
- type: Boolean,
28921
- default: false
28922
- },
28923
- rowKey: {
28924
- type: String,
28925
- default: 'id'
28926
- },
28927
- statusKey: {
28928
- type: String,
28929
- default: 'status'
28930
- },
28931
- statusEnum: {
28932
- type: Object,
28933
- default: () => ({
28934
- loading: {
28935
- value: 'loading',
28936
- type: 'warning'
28937
- },
28938
- error: {
28939
- value: 'error',
28940
- type: 'danger'
28941
- },
28942
- success: {
28943
- value: 'success',
28944
- type: 'success'
28945
- }
28946
- })
28947
- },
28948
- titleKey: {
28949
- type: String,
28950
- default: 'title'
28951
- },
28952
- thinkTitleKey: {
28953
- type: String,
28954
- default: 'thinkTitle'
28955
- },
28956
- thinkContentKey: {
28957
- type: String,
28958
- default: 'thinkContent'
28959
- }
28960
- },
28961
- data() {
28962
- return {
28963
- colorArr: {
28964
- // 使用与SCSS变量对应的字符串表示
28965
- info: 'var(--color-info, #909399)',
28966
- success: 'var(--color-success, #67C23A)',
28967
- warning: 'var(--color-warning, #E6A23C)',
28968
- danger: 'var(--color-danger, #F56C6C)',
28969
- primary: 'var(--color-primary, #409EFF)'
28970
- },
28971
- defaultActiveNodes: []
28972
- };
28973
- },
28974
- computed: {
28975
- dotMargin() {
28976
- switch (this.dotSize) {
28977
- case 'mini':
28978
- return '-8px 0 0 -9px';
28979
- case 'small':
28980
- return '-8px 0 0 -11px';
28981
- case 'medium':
28982
- return '-8px 0 0 -13px';
28983
- default:
28984
- return '-8px 0 0 -16px';
28985
- }
28986
- },
28987
- getLineColor() {
28988
- if (this.thinkingItems.length) {
28989
- const arr = this.thinkingItems.map(item => {
28990
- const _type_ = this.getType(item);
28991
- if (_type_) {
28992
- return this.colorArr[_type_];
28993
- }
28994
- return '';
28995
- });
28996
- return arr;
28997
- }
28998
- return [];
28999
- },
29000
- activeNamesComputed() {
29001
- return this.thinkingItems.filter(item => item.isCanExpand && item.isDefaultExpand).map(item => String(this.getId(item)));
29002
- }
29003
- },
29004
- watch: {
29005
- activeNamesComputed: {
29006
- handler(v) {
29007
- this.defaultActiveNodes = [...v];
29008
- },
29009
- immediate: true
29010
- },
29011
- getLineColor() {
29012
- this.$nextTick(() => {
29013
- this.getEle();
29014
- });
29015
- }
29016
- },
29017
- mounted() {
29018
- this.$nextTick(() => {
29019
- this.getEle();
29020
- });
29021
- },
29022
- methods: {
29023
- onExpand(item) {
29024
- this.$emit('handle-expand', item);
29025
- },
29026
- setRadialGradient(colors, ele) {
29027
- const length = ele.length;
29028
- Array.from(ele).forEach((item, index) => {
29029
- const line = item.children[0];
29030
- if (line) {
29031
- line.setAttribute('style', `
29032
- border: none;
29033
- width:2px;
29034
- background: linear-gradient(to bottom, ${colors[index]} 0% , ${colors[index < length ? index + 1 : index]} 100%);
29035
- `);
29036
- }
29037
- });
29038
- },
29039
- getEle() {
29040
- if (this.getLineColor && this.$refs.timelineRef && this.lineGradient) {
29041
- const ele = this.$refs.timelineRef.$el.children[0].children;
29042
- this.setRadialGradient(this.getLineColor, ele);
29043
- }
29044
- },
29045
- isLoading(item) {
29046
- const status = this.getStatus(item);
29047
- return status === this.statusEnum.loading.value;
29048
- },
29049
- isError(item) {
29050
- const status = this.getStatus(item);
29051
- return status === this.statusEnum.error.value;
29052
- },
29053
- getId(item) {
29054
- return (0,lodash.get)(item, this.rowKey);
29055
- },
29056
- getType(item) {
29057
- const status = this.getStatus(item);
29058
- // 优先查找statusEnum中value匹配的项
29059
- const matchedStatus = Object.values(this.statusEnum).find(s => s.value === status);
29060
- return matchedStatus ? matchedStatus.type : 'success';
29061
- },
29062
- getTitle(item) {
29063
- return (0,lodash.get)(item, this.titleKey) || '';
29064
- },
29065
- getThinkTitle(item) {
29066
- return (0,lodash.get)(item, this.thinkTitleKey) || '';
29067
- },
29068
- getThinkContent(item) {
29069
- return (0,lodash.get)(item, this.thinkContentKey) || '';
29070
- },
29071
- getStatus(item) {
29072
- return (0,lodash.get)(item, this.statusKey);
29073
- }
29074
- }
29075
- });
29076
- ;// ./src/components/ThoughtChain/src/main.vue?vue&type=script&lang=js
29077
- /* harmony default export */ const src_mainvue_type_script_lang_js = (mainvue_type_script_lang_js);
29078
- // EXTERNAL MODULE: ./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js
29079
- var injectStylesIntoStyleTag = __webpack_require__(5072);
29080
- var injectStylesIntoStyleTag_default = /*#__PURE__*/__webpack_require__.n(injectStylesIntoStyleTag);
29081
- // EXTERNAL MODULE: ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-2.use[2]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/ThoughtChain/src/main.vue?vue&type=style&index=0&id=86d7e9ae&prod&lang=scss&scoped=true
29082
- var mainvue_type_style_index_0_id_86d7e9ae_prod_lang_scss_scoped_true = __webpack_require__(9371);
29083
- ;// ./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??clonedRuleSet-2.use[2]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/ThoughtChain/src/main.vue?vue&type=style&index=0&id=86d7e9ae&prod&lang=scss&scoped=true
29084
-
29085
-
29086
-
29087
- var options = {};
29088
-
29089
- options.insert = "head";
29090
- options.singleton = false;
29091
-
29092
- var update = injectStylesIntoStyleTag_default()(mainvue_type_style_index_0_id_86d7e9ae_prod_lang_scss_scoped_true/* default */.A, options);
29093
-
29094
-
29095
-
29096
- /* harmony default export */ const src_mainvue_type_style_index_0_id_86d7e9ae_prod_lang_scss_scoped_true = (mainvue_type_style_index_0_id_86d7e9ae_prod_lang_scss_scoped_true/* default */.A.locals || {});
29097
- ;// ./src/components/ThoughtChain/src/main.vue?vue&type=style&index=0&id=86d7e9ae&prod&lang=scss&scoped=true
29098
-
29099
- // EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
29100
- var componentNormalizer = __webpack_require__(4486);
29101
- ;// ./src/components/ThoughtChain/src/main.vue
29102
-
29103
-
29104
-
29105
- ;
29106
-
29107
-
29108
- /* normalize component */
29109
-
29110
- var component = (0,componentNormalizer/* default */.A)(
29111
- src_mainvue_type_script_lang_js,
29112
- render,
29113
- staticRenderFns,
29114
- false,
29115
- null,
29116
- "86d7e9ae",
29117
- null
29118
-
29119
- )
29120
-
29121
- /* harmony default export */ const main = (component.exports);
29122
- ;// ./src/components/ThoughtChain/index.js
29123
-
29124
-
29125
- /* istanbul ignore next */
29126
- main.install = function (Vue) {
29127
- Vue.component(main.name, main);
29128
- };
29129
- /* harmony default export */ const ThoughtChain = (main);
29130
-
29131
- /***/ }),
29132
-
29133
- /***/ 6280:
29134
- /***/ ((module, __webpack_exports__, __webpack_require__) => {
29135
-
29136
- "use strict";
29137
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
29138
- /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
29139
- /* harmony export */ });
29140
- /* harmony import */ var _css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6314);
29141
- /* harmony import */ var _css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__);
29142
- // Imports
29143
-
29144
- var ___CSS_LOADER_EXPORT___ = _css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]});
29145
- // Module
29146
- ___CSS_LOADER_EXPORT___.push([module.id, "/**\n * prism.js default theme for JavaScript, CSS and HTML\n * Based on dabblet (http://dabblet.com)\n * @author Lea Verou\n */\n\ncode[class*=\"language-\"],\npre[class*=\"language-\"] {\n\tcolor: black;\n\tbackground: none;\n\ttext-shadow: 0 1px white;\n\tfont-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;\n\tfont-size: 1em;\n\ttext-align: left;\n\twhite-space: pre;\n\tword-spacing: normal;\n\tword-break: normal;\n\tword-wrap: normal;\n\tline-height: 1.5;\n\n\t-moz-tab-size: 4;\n\t-o-tab-size: 4;\n\ttab-size: 4;\n\n\t-webkit-hyphens: none;\n\t-moz-hyphens: none;\n\t-ms-hyphens: none;\n\thyphens: none;\n}\n\npre[class*=\"language-\"]::-moz-selection, pre[class*=\"language-\"] ::-moz-selection,\ncode[class*=\"language-\"]::-moz-selection, code[class*=\"language-\"] ::-moz-selection {\n\ttext-shadow: none;\n\tbackground: #b3d4fc;\n}\n\npre[class*=\"language-\"]::selection, pre[class*=\"language-\"] ::selection,\ncode[class*=\"language-\"]::selection, code[class*=\"language-\"] ::selection {\n\ttext-shadow: none;\n\tbackground: #b3d4fc;\n}\n\n@media print {\n\tcode[class*=\"language-\"],\n\tpre[class*=\"language-\"] {\n\t\ttext-shadow: none;\n\t}\n}\n\n/* Code blocks */\npre[class*=\"language-\"] {\n\tpadding: 1em;\n\tmargin: .5em 0;\n\toverflow: auto;\n}\n\n:not(pre) > code[class*=\"language-\"],\npre[class*=\"language-\"] {\n\tbackground: #f5f2f0;\n}\n\n/* Inline code */\n:not(pre) > code[class*=\"language-\"] {\n\tpadding: .1em;\n\tborder-radius: .3em;\n\twhite-space: normal;\n}\n\n.token.comment,\n.token.prolog,\n.token.doctype,\n.token.cdata {\n\tcolor: slategray;\n}\n\n.token.punctuation {\n\tcolor: #999;\n}\n\n.token.namespace {\n\topacity: .7;\n}\n\n.token.property,\n.token.tag,\n.token.boolean,\n.token.number,\n.token.constant,\n.token.symbol,\n.token.deleted {\n\tcolor: #905;\n}\n\n.token.selector,\n.token.attr-name,\n.token.string,\n.token.char,\n.token.builtin,\n.token.inserted {\n\tcolor: #690;\n}\n\n.token.operator,\n.token.entity,\n.token.url,\n.language-css .token.string,\n.style .token.string {\n\tcolor: #9a6e3a;\n\t/* This background color was intended by the author of this theme. */\n\tbackground: hsla(0, 0%, 100%, .5);\n}\n\n.token.atrule,\n.token.attr-value,\n.token.keyword {\n\tcolor: #07a;\n}\n\n.token.function,\n.token.class-name {\n\tcolor: #DD4A68;\n}\n\n.token.regex,\n.token.important,\n.token.variable {\n\tcolor: #e90;\n}\n\n.token.important,\n.token.bold {\n\tfont-weight: bold;\n}\n.token.italic {\n\tfont-style: italic;\n}\n\n.token.entity {\n\tcursor: help;\n}\n", ""]);
29147
- // Exports
29148
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
29149
-
29150
-
29151
- /***/ }),
29152
-
29153
- /***/ 6314:
29154
- /***/ ((module) => {
29155
-
29156
- "use strict";
29157
-
29158
-
29159
- /*
29160
- MIT License http://www.opensource.org/licenses/mit-license.php
29161
- Author Tobias Koppers @sokra
29162
- */
29163
- // css base code, injected by the css-loader
29164
- // eslint-disable-next-line func-names
29165
- module.exports = function (cssWithMappingToString) {
29166
- var list = []; // return the list of modules as css string
29167
-
29168
- list.toString = function toString() {
29169
- return this.map(function (item) {
29170
- var content = cssWithMappingToString(item);
29171
-
29172
- if (item[2]) {
29173
- return "@media ".concat(item[2], " {").concat(content, "}");
29174
- }
29175
-
29176
- return content;
29177
- }).join("");
29178
- }; // import a list of modules into the list
29179
- // eslint-disable-next-line func-names
29180
-
29181
-
29182
- list.i = function (modules, mediaQuery, dedupe) {
29183
- if (typeof modules === "string") {
29184
- // eslint-disable-next-line no-param-reassign
29185
- modules = [[null, modules, ""]];
29186
- }
29187
-
29188
- var alreadyImportedModules = {};
29189
-
29190
- if (dedupe) {
29191
- for (var i = 0; i < this.length; i++) {
29192
- // eslint-disable-next-line prefer-destructuring
29193
- var id = this[i][0];
29194
-
29195
- if (id != null) {
29196
- alreadyImportedModules[id] = true;
29197
- }
29198
- }
29199
- }
29200
-
29201
- for (var _i = 0; _i < modules.length; _i++) {
29202
- var item = [].concat(modules[_i]);
29203
-
29204
- if (dedupe && alreadyImportedModules[item[0]]) {
29205
- // eslint-disable-next-line no-continue
29206
- continue;
29207
- }
29208
-
29209
- if (mediaQuery) {
29210
- if (!item[2]) {
29211
- item[2] = mediaQuery;
29212
- } else {
29213
- item[2] = "".concat(mediaQuery, " and ").concat(item[2]);
29214
- }
29215
- }
29216
-
29217
- list.push(item);
29218
- }
29219
- };
29220
-
29221
- return list;
29222
- };
29223
-
29224
- /***/ }),
29225
-
29226
- /***/ 6321:
29227
- /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
29228
-
29229
- "use strict";
29230
- /** internal
29231
- * class Core
29232
- *
29233
- * Top-level rules executor. Glues block/inline parsers and does intermediate
29234
- * transformations.
29235
- **/
29236
-
29237
-
29238
-
29239
- var Ruler = __webpack_require__(2378);
29240
-
29241
-
29242
- var _rules = [
29243
- [ 'normalize', __webpack_require__(803) ],
29244
- [ 'block', __webpack_require__(3437) ],
29245
- [ 'inline', __webpack_require__(3547) ],
29246
- [ 'linkify', __webpack_require__(986) ],
29247
- [ 'replacements', __webpack_require__(203) ],
29248
- [ 'smartquotes', __webpack_require__(5260) ]
29249
- ];
29250
-
29251
-
29252
- /**
29253
- * new Core()
29254
- **/
29255
- function Core() {
29256
- /**
29257
- * Core#ruler -> Ruler
29258
- *
29259
- * [[Ruler]] instance. Keep configuration of core rules.
29260
- **/
29261
- this.ruler = new Ruler();
29262
-
29263
- for (var i = 0; i < _rules.length; i++) {
29264
- this.ruler.push(_rules[i][0], _rules[i][1]);
29265
- }
29266
- }
29267
-
29268
-
29269
- /**
29270
- * Core.process(state)
29271
- *
29272
- * Executes core chain rules.
29273
- **/
29274
- Core.prototype.process = function (state) {
29275
- var i, l, rules;
29276
-
29277
- rules = this.ruler.getRules('');
29278
-
29279
- for (i = 0, l = rules.length; i < l; i++) {
29280
- rules[i](state);
29281
- }
29282
- };
29283
-
29284
- Core.prototype.State = __webpack_require__(1839);
29285
-
29286
-
29287
- module.exports = Core;
29288
-
29289
-
29290
- /***/ }),
29291
-
29292
- /***/ 6355:
29293
- /***/ ((module, __webpack_exports__, __webpack_require__) => {
29294
-
29295
- "use strict";
29296
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
29297
- /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
29298
- /* harmony export */ });
29299
- /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6314);
29300
- /* 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__);
29301
- // Imports
29302
-
29303
- var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]});
29304
- // Module
29305
- ___CSS_LOADER_EXPORT___.push([module.id, "[data-v-5b4c3366]:root{--color-primary: #409eff;--color-success: #67c23a;--color-warning: #e6a23c;--color-danger: #f56c6c;--color-info: #909399}.el-x-sender[data-v-5b4c3366]{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 var(--el-x-sender-header-animation-duration)}.el-x-sender[data-v-5b4c3366]: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-5b4c3366]: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-5b4c3366]:focus-within::after{border-width:2px}.el-x-sender .el-x-sender-header-wrap[data-v-5b4c3366]{display:flex;flex-direction:column;gap:8px;width:100%;margin:0;padding:0}.el-x-sender .slide-enter-active[data-v-5b4c3366],.el-x-sender .slide-leave-active[data-v-5b4c3366]{height:calc-size(max-content,size);opacity:1;transition:height var(--el-x-sender-header-animation-duration),opacity var(--el-x-sender-header-animation-duration),border var(--el-x-sender-header-animation-duration);overflow:hidden}.el-x-sender .slide-enter[data-v-5b4c3366],.el-x-sender .slide-leave-to[data-v-5b4c3366]{height:0;opacity:0 !important}.el-x-sender .slide-enter-to[data-v-5b4c3366],.el-x-sender .slide-leave[data-v-5b4c3366]{height:calc-size(max-content,size);opacity:1}.el-x-sender .slide-enter-active .el-x-sender-header-wrap[data-v-5b4c3366],.el-x-sender .slide-leave-active .el-x-sender-header-wrap[data-v-5b4c3366]{min-height:0;overflow:hidden}.el-x-sender .el-x-sender-header[data-v-5b4c3366]{border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#dcdfe6}.el-x-sender .el-x-sender-content[data-v-5b4c3366]{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-5b4c3366]{flex:none}.el-x-sender .el-x-sender-content .el-x-sender-input[data-v-5b4c3366]{height:100%;display:flex;align-items:center;align-self:center}.el-x-sender .el-x-sender-content .el-x-sender-input[data-v-5b4c3366] .el-textarea__inner{padding:0 !important;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-5b4c3366]{display:flex;gap:8px;flex-direction:row-reverse}.el-x-sender .content-variant-updown[data-v-5b4c3366]{display:flex;flex-direction:column;align-items:initial}.el-x-sender .content-variant-updown .el-x-sender-updown-wrap[data-v-5b4c3366]{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-5b4c3366]{flex:initial}.el-x-sender .content-variant-updown .el-x-sender-updown-wrap .el-x-sender-action-list[data-v-5b4c3366]{margin-left:auto}.el-x-sender .el-x-sender-footer[data-v-5b4c3366]{border-top-width:1px;border-top-style:solid;border-top-color:#dcdfe6}.el-x-sender-disabled[data-v-5b4c3366]{background-color:#f5f7fa;pointer-events:none}[data-v-5b4c3366] .el-x-sender-trigger-popover{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}", ""]);
29306
- // Exports
29307
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
29308
-
29309
-
29310
- /***/ }),
29311
-
29312
- /***/ 6449:
29313
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
29314
-
29315
- "use strict";
29316
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
29317
- /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
29318
- /* harmony export */ });
29319
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
29320
- el_x: {
29321
- thinking: {
29322
- start: '开始思考',
29323
- processing: '思考中...',
29324
- completed: '思考完成',
29325
- error: '思考遇到问题',
29326
- errorContent: '思考过程中出现错误'
29327
- },
29328
- sender: {
29329
- placeholder: '请输入内容'
29330
- },
29331
- common: {
29332
- loading: '加载中...',
29333
- success: '成功',
29334
- error: '错误',
29335
- warning: '警告'
29336
- }
29337
- }
29338
- });
29339
-
29340
- /***/ }),
29341
-
29342
- /***/ 6493:
29343
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
29344
-
29345
- "use strict";
29346
-
29347
- // EXPORTS
29348
- __webpack_require__.d(__webpack_exports__, {
29349
- "default": () => (/* binding */ BubbleList)
29350
- });
29351
-
29352
- ;// ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/BubbleList/src/main.vue?vue&type=template&id=62f6ce33&scoped=true
29353
- var render = function render() {
29354
- var _vm = this,
29355
- _c = _vm._self._c;
29356
- return _c("div", {
29357
- ref: "scrollContainer",
29358
- staticClass: "el-x-bubble-list",
29359
- class: {
29360
- "always-scrollbar": _vm.alwaysShowScrollbar
29361
- },
29362
- style: {
29363
- "--el-x-bubble-list-max-height": `${_vm.maxHeight}`,
29364
- "--el-x-bubble-list-btn-size": `${_vm.btnIconSize}px`
29365
- },
29366
- on: {
29367
- scroll: _vm.handleScroll
29368
- }
29369
- }, [_vm._l(_vm.list, function (item, index) {
29370
- return _c("Bubble", {
29371
- key: index,
29032
+ }, [_vm._l(_vm.list, function (item, index) {
29033
+ return _c("Bubble", {
29034
+ key: index,
29372
29035
  attrs: {
29373
29036
  content: item.content,
29374
29037
  placement: _vm.defaultPlacement || item.placement,
@@ -30412,210 +30075,567 @@ module.exports = function list(state, startLine, endLine, silent) {
30412
30075
  break;
30413
30076
  }
30414
30077
 
30415
- pos++;
30416
- }
30078
+ pos++;
30079
+ }
30080
+
30081
+ contentStart = pos;
30082
+
30083
+ if (contentStart >= max) {
30084
+ // trimming space in "- \n 3" case, indent is 1 here
30085
+ indentAfterMarker = 1;
30086
+ } else {
30087
+ indentAfterMarker = offset - initial;
30088
+ }
30089
+
30090
+ // If we have more than 4 spaces, the indent is 1
30091
+ // (the rest is just indented code block)
30092
+ if (indentAfterMarker > 4) { indentAfterMarker = 1; }
30093
+
30094
+ // " - test"
30095
+ // ^^^^^ - calculating total length of this thing
30096
+ indent = initial + indentAfterMarker;
30097
+
30098
+ // Run subparser & write tokens
30099
+ token = state.push('list_item_open', 'li', 1);
30100
+ token.markup = String.fromCharCode(markerCharCode);
30101
+ token.map = itemLines = [ startLine, 0 ];
30102
+ if (isOrdered) {
30103
+ token.info = state.src.slice(start, posAfterMarker - 1);
30104
+ }
30105
+
30106
+ // change current state, then restore it after parser subcall
30107
+ oldTight = state.tight;
30108
+ oldTShift = state.tShift[startLine];
30109
+ oldSCount = state.sCount[startLine];
30110
+
30111
+ // - example list
30112
+ // ^ listIndent position will be here
30113
+ // ^ blkIndent position will be here
30114
+ //
30115
+ oldListIndent = state.listIndent;
30116
+ state.listIndent = state.blkIndent;
30117
+ state.blkIndent = indent;
30118
+
30119
+ state.tight = true;
30120
+ state.tShift[startLine] = contentStart - state.bMarks[startLine];
30121
+ state.sCount[startLine] = offset;
30122
+
30123
+ if (contentStart >= max && state.isEmpty(startLine + 1)) {
30124
+ // workaround for this case
30125
+ // (list item is empty, list terminates before "foo"):
30126
+ // ~~~~~~~~
30127
+ // -
30128
+ //
30129
+ // foo
30130
+ // ~~~~~~~~
30131
+ state.line = Math.min(state.line + 2, endLine);
30132
+ } else {
30133
+ state.md.block.tokenize(state, startLine, endLine, true);
30134
+ }
30135
+
30136
+ // If any of list item is tight, mark list as tight
30137
+ if (!state.tight || prevEmptyEnd) {
30138
+ tight = false;
30139
+ }
30140
+ // Item become loose if finish with empty line,
30141
+ // but we should filter last element, because it means list finish
30142
+ prevEmptyEnd = (state.line - startLine) > 1 && state.isEmpty(state.line - 1);
30143
+
30144
+ state.blkIndent = state.listIndent;
30145
+ state.listIndent = oldListIndent;
30146
+ state.tShift[startLine] = oldTShift;
30147
+ state.sCount[startLine] = oldSCount;
30148
+ state.tight = oldTight;
30149
+
30150
+ token = state.push('list_item_close', 'li', -1);
30151
+ token.markup = String.fromCharCode(markerCharCode);
30152
+
30153
+ nextLine = startLine = state.line;
30154
+ itemLines[1] = nextLine;
30155
+ contentStart = state.bMarks[startLine];
30156
+
30157
+ if (nextLine >= endLine) { break; }
30158
+
30159
+ //
30160
+ // Try to check if list is terminated or continued.
30161
+ //
30162
+ if (state.sCount[nextLine] < state.blkIndent) { break; }
30163
+
30164
+ // if it's indented more than 3 spaces, it should be a code block
30165
+ if (state.sCount[startLine] - state.blkIndent >= 4) { break; }
30166
+
30167
+ // fail if terminating block found
30168
+ terminate = false;
30169
+ for (i = 0, l = terminatorRules.length; i < l; i++) {
30170
+ if (terminatorRules[i](state, nextLine, endLine, true)) {
30171
+ terminate = true;
30172
+ break;
30173
+ }
30174
+ }
30175
+ if (terminate) { break; }
30176
+
30177
+ // fail if list has another type
30178
+ if (isOrdered) {
30179
+ posAfterMarker = skipOrderedListMarker(state, nextLine);
30180
+ if (posAfterMarker < 0) { break; }
30181
+ start = state.bMarks[nextLine] + state.tShift[nextLine];
30182
+ } else {
30183
+ posAfterMarker = skipBulletListMarker(state, nextLine);
30184
+ if (posAfterMarker < 0) { break; }
30185
+ }
30186
+
30187
+ if (markerCharCode !== state.src.charCodeAt(posAfterMarker - 1)) { break; }
30188
+ }
30189
+
30190
+ // Finalize list
30191
+ if (isOrdered) {
30192
+ token = state.push('ordered_list_close', 'ol', -1);
30193
+ } else {
30194
+ token = state.push('bullet_list_close', 'ul', -1);
30195
+ }
30196
+ token.markup = String.fromCharCode(markerCharCode);
30197
+
30198
+ listLines[1] = nextLine;
30199
+ state.line = nextLine;
30200
+
30201
+ state.parentType = oldParentType;
30202
+
30203
+ // mark paragraphs tight if needed
30204
+ if (tight) {
30205
+ markTightParagraphs(state, listTokIdx);
30206
+ }
30207
+
30208
+ return true;
30209
+ };
30210
+
30211
+
30212
+ /***/ }),
30213
+
30214
+ /***/ 6757:
30215
+ /***/ ((module) => {
30216
+
30217
+ "use strict";
30218
+ // Parse backticks
30219
+
30220
+
30221
+
30222
+
30223
+ module.exports = function backtick(state, silent) {
30224
+ var start, max, marker, token, matchStart, matchEnd, openerLength, closerLength,
30225
+ pos = state.pos,
30226
+ ch = state.src.charCodeAt(pos);
30227
+
30228
+ if (ch !== 0x60/* ` */) { return false; }
30229
+
30230
+ start = pos;
30231
+ pos++;
30232
+ max = state.posMax;
30233
+
30234
+ // scan marker length
30235
+ while (pos < max && state.src.charCodeAt(pos) === 0x60/* ` */) { pos++; }
30236
+
30237
+ marker = state.src.slice(start, pos);
30238
+ openerLength = marker.length;
30239
+
30240
+ if (state.backticksScanned && (state.backticks[openerLength] || 0) <= start) {
30241
+ if (!silent) state.pending += marker;
30242
+ state.pos += openerLength;
30243
+ return true;
30244
+ }
30245
+
30246
+ matchStart = matchEnd = pos;
30247
+
30248
+ // Nothing found in the cache, scan until the end of the line (or until marker is found)
30249
+ while ((matchStart = state.src.indexOf('`', matchEnd)) !== -1) {
30250
+ matchEnd = matchStart + 1;
30251
+
30252
+ // scan marker length
30253
+ while (matchEnd < max && state.src.charCodeAt(matchEnd) === 0x60/* ` */) { matchEnd++; }
30254
+
30255
+ closerLength = matchEnd - matchStart;
30256
+
30257
+ if (closerLength === openerLength) {
30258
+ // Found matching closer length.
30259
+ if (!silent) {
30260
+ token = state.push('code_inline', 'code', 0);
30261
+ token.markup = marker;
30262
+ token.content = state.src.slice(pos, matchStart)
30263
+ .replace(/\n/g, ' ')
30264
+ .replace(/^ (.+) $/, '$1');
30265
+ }
30266
+ state.pos = matchEnd;
30267
+ return true;
30268
+ }
30269
+
30270
+ // Some different length found, put it in cache as upper limit of where closer can be found
30271
+ state.backticks[closerLength] = matchStart;
30272
+ }
30273
+
30274
+ // Scanned through the end, didn't find anything
30275
+ state.backticksScanned = true;
30417
30276
 
30418
- contentStart = pos;
30277
+ if (!silent) state.pending += marker;
30278
+ state.pos += openerLength;
30279
+ return true;
30280
+ };
30419
30281
 
30420
- if (contentStart >= max) {
30421
- // trimming space in "- \n 3" case, indent is 1 here
30422
- indentAfterMarker = 1;
30423
- } else {
30424
- indentAfterMarker = offset - initial;
30425
- }
30426
30282
 
30427
- // If we have more than 4 spaces, the indent is 1
30428
- // (the rest is just indented code block)
30429
- if (indentAfterMarker > 4) { indentAfterMarker = 1; }
30283
+ /***/ }),
30430
30284
 
30431
- // " - test"
30432
- // ^^^^^ - calculating total length of this thing
30433
- indent = initial + indentAfterMarker;
30285
+ /***/ 6765:
30286
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
30434
30287
 
30435
- // Run subparser & write tokens
30436
- token = state.push('list_item_open', 'li', 1);
30437
- token.markup = String.fromCharCode(markerCharCode);
30438
- token.map = itemLines = [ startLine, 0 ];
30439
- if (isOrdered) {
30440
- token.info = state.src.slice(start, posAfterMarker - 1);
30288
+ "use strict";
30289
+
30290
+ // EXPORTS
30291
+ __webpack_require__.d(__webpack_exports__, {
30292
+ "default": () => (/* binding */ ThoughtChain)
30293
+ });
30294
+
30295
+ ;// ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/ThoughtChain/src/main.vue?vue&type=template&id=1df1b25f&scoped=true
30296
+ var render = function render() {
30297
+ var _vm = this,
30298
+ _c = _vm._self._c;
30299
+ return _c("div", {
30300
+ staticClass: "el-x-thoughtchain"
30301
+ }, [_c("el-timeline", {
30302
+ ref: "timelineRef",
30303
+ style: {
30304
+ maxWidth: _vm.maxWidth
30305
+ }
30306
+ }, [_c("transition-group", {
30307
+ attrs: {
30308
+ name: "thought-chain",
30309
+ tag: "div"
30441
30310
  }
30311
+ }, _vm._l(_vm.thinkingItems, function (item) {
30312
+ return _c("el-timeline-item", {
30313
+ key: _vm.getId(item),
30314
+ attrs: {
30315
+ type: _vm.getType(item),
30316
+ icon: _vm.dotIsIcon ? item.icon : "el-icon-more",
30317
+ color: _vm.dotIsIcon ? item.iconColor : null,
30318
+ size: _vm.dotIsIcon ? item.iconSize || _vm.dotSize : "normal",
30319
+ timestamp: _vm.getTitle(item),
30320
+ "hide-timestamp": item.hideTitle,
30321
+ placement: item.placement || "top"
30322
+ }
30323
+ }, [!item.isCanExpand ? _c("div", [_c("el-x-typewriter", {
30324
+ attrs: {
30325
+ content: _vm.getThinkTitle(item),
30326
+ "is-markdown": item.isMarkdown,
30327
+ typing: item.typing
30328
+ }
30329
+ })], 1) : !item.isDefaultExpand ? _c("el-collapse", {
30330
+ on: {
30331
+ change: () => _vm.onExpand(item)
30332
+ }
30333
+ }, [_c("el-collapse-item", {
30334
+ attrs: {
30335
+ title: _vm.getThinkTitle(item)
30336
+ }
30337
+ }, [_c("el-x-typewriter", {
30338
+ attrs: {
30339
+ content: _vm.getThinkContent(item),
30340
+ "is-markdown": item.isMarkdown,
30341
+ typing: item.typing
30342
+ }
30343
+ })], 1)], 1) : _c("el-collapse", {
30344
+ on: {
30345
+ change: () => _vm.onExpand(item)
30346
+ },
30347
+ model: {
30348
+ value: _vm.defaultActiveNodes,
30349
+ callback: function ($$v) {
30350
+ _vm.defaultActiveNodes = $$v;
30351
+ },
30352
+ expression: "defaultActiveNodes"
30353
+ }
30354
+ }, [_c("el-collapse-item", {
30355
+ attrs: {
30356
+ title: _vm.getThinkTitle(item),
30357
+ name: String(_vm.getId(item))
30358
+ }
30359
+ }, [_c("el-x-typewriter", {
30360
+ attrs: {
30361
+ content: _vm.getThinkContent(item),
30362
+ "is-markdown": item.isMarkdown,
30363
+ typing: item.typing
30364
+ }
30365
+ })], 1)], 1), _vm._v(" "), !_vm.dotIsIcon ? _c("template", {
30366
+ slot: "dot"
30367
+ }, [_c("div", {
30368
+ staticClass: "el-x-thoughtchain-item-dot",
30369
+ style: {
30370
+ margin: _vm.dotMargin
30371
+ }
30372
+ }, [_vm._t("icon", function () {
30373
+ return [_c("el-button", {
30374
+ attrs: {
30375
+ circle: "",
30376
+ type: _vm.getType(item),
30377
+ loading: _vm.isLoading(item),
30378
+ size: _vm.dotSize
30379
+ }
30380
+ }, [_c("template", {
30381
+ slot: "loading"
30382
+ }, [_c("i", {
30383
+ staticClass: "el-icon-loading el-x-thoughtchain-loading"
30384
+ })]), _vm._v(" "), !_vm.isLoading(item) && !_vm.isError(item) ? _c("i", {
30385
+ staticClass: "el-icon-check"
30386
+ }) : _vm._e(), _vm._v(" "), !_vm.isLoading(item) && _vm.isError(item) ? _c("i", {
30387
+ staticClass: "el-icon-close"
30388
+ }) : _vm._e()], 2)];
30389
+ }, {
30390
+ item: item
30391
+ })], 2)]) : _vm._e()], 2);
30392
+ }), 1)], 1)], 1);
30393
+ };
30394
+ var staticRenderFns = [];
30395
+ render._withStripped = true;
30442
30396
 
30443
- // change current state, then restore it after parser subcall
30444
- oldTight = state.tight;
30445
- oldTShift = state.tShift[startLine];
30446
- oldSCount = state.sCount[startLine];
30397
+ ;// ./src/components/ThoughtChain/src/main.vue?vue&type=template&id=1df1b25f&scoped=true
30447
30398
 
30448
- // - example list
30449
- // ^ listIndent position will be here
30450
- // ^ blkIndent position will be here
30451
- //
30452
- oldListIndent = state.listIndent;
30453
- state.listIndent = state.blkIndent;
30454
- state.blkIndent = indent;
30399
+ // EXTERNAL MODULE: ./node_modules/lodash/lodash.js
30400
+ var lodash = __webpack_require__(2543);
30401
+ // EXTERNAL MODULE: ./src/components/Typewriter/index.js + 8 modules
30402
+ var Typewriter = __webpack_require__(1207);
30403
+ ;// ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/ThoughtChain/src/main.vue?vue&type=script&lang=js
30455
30404
 
30456
- state.tight = true;
30457
- state.tShift[startLine] = contentStart - state.bMarks[startLine];
30458
- state.sCount[startLine] = offset;
30459
30405
 
30460
- if (contentStart >= max && state.isEmpty(startLine + 1)) {
30461
- // workaround for this case
30462
- // (list item is empty, list terminates before "foo"):
30463
- // ~~~~~~~~
30464
- // -
30465
- //
30466
- // foo
30467
- // ~~~~~~~~
30468
- state.line = Math.min(state.line + 2, endLine);
30469
- } else {
30470
- state.md.block.tokenize(state, startLine, endLine, true);
30406
+ /* harmony default export */ const mainvue_type_script_lang_js = ({
30407
+ name: 'ElXThoughtChain',
30408
+ components: {
30409
+ ElXTypewriter: Typewriter["default"]
30410
+ },
30411
+ props: {
30412
+ thinkingItems: {
30413
+ type: Array,
30414
+ default: () => []
30415
+ },
30416
+ dotIsIcon: {
30417
+ type: Boolean,
30418
+ default: false
30419
+ },
30420
+ dotSize: {
30421
+ type: String,
30422
+ default: 'small'
30423
+ },
30424
+ maxWidth: {
30425
+ type: String,
30426
+ default: '600px'
30427
+ },
30428
+ lineGradient: {
30429
+ type: Boolean,
30430
+ default: false
30431
+ },
30432
+ rowKey: {
30433
+ type: String,
30434
+ default: 'id'
30435
+ },
30436
+ statusKey: {
30437
+ type: String,
30438
+ default: 'status'
30439
+ },
30440
+ statusEnum: {
30441
+ type: Object,
30442
+ default: () => ({
30443
+ loading: {
30444
+ value: 'loading',
30445
+ type: 'warning'
30446
+ },
30447
+ error: {
30448
+ value: 'error',
30449
+ type: 'danger'
30450
+ },
30451
+ success: {
30452
+ value: 'success',
30453
+ type: 'success'
30454
+ }
30455
+ })
30456
+ },
30457
+ titleKey: {
30458
+ type: String,
30459
+ default: 'title'
30460
+ },
30461
+ thinkTitleKey: {
30462
+ type: String,
30463
+ default: 'thinkTitle'
30464
+ },
30465
+ thinkContentKey: {
30466
+ type: String,
30467
+ default: 'thinkContent'
30468
+ }
30469
+ },
30470
+ data() {
30471
+ return {
30472
+ colorArr: {
30473
+ // 使用与SCSS变量对应的字符串表示
30474
+ info: 'var(--color-info, #909399)',
30475
+ success: 'var(--color-success, #67C23A)',
30476
+ warning: 'var(--color-warning, #E6A23C)',
30477
+ danger: 'var(--color-danger, #F56C6C)',
30478
+ primary: 'var(--color-primary, #409EFF)'
30479
+ },
30480
+ defaultActiveNodes: []
30481
+ };
30482
+ },
30483
+ computed: {
30484
+ dotMargin() {
30485
+ switch (this.dotSize) {
30486
+ case 'mini':
30487
+ return '-8px 0 0 -9px';
30488
+ case 'small':
30489
+ return '-8px 0 0 -11px';
30490
+ case 'medium':
30491
+ return '-8px 0 0 -13px';
30492
+ default:
30493
+ return '-8px 0 0 -16px';
30494
+ }
30495
+ },
30496
+ getLineColor() {
30497
+ if (this.thinkingItems.length) {
30498
+ const arr = this.thinkingItems.map(item => {
30499
+ const _type_ = this.getType(item);
30500
+ if (_type_) {
30501
+ return this.colorArr[_type_];
30502
+ }
30503
+ return '';
30504
+ });
30505
+ return arr;
30506
+ }
30507
+ return [];
30508
+ },
30509
+ activeNamesComputed() {
30510
+ return this.thinkingItems.filter(item => item.isCanExpand && item.isDefaultExpand).map(item => String(this.getId(item)));
30471
30511
  }
30472
-
30473
- // If any of list item is tight, mark list as tight
30474
- if (!state.tight || prevEmptyEnd) {
30475
- tight = false;
30512
+ },
30513
+ watch: {
30514
+ activeNamesComputed: {
30515
+ handler(v) {
30516
+ this.defaultActiveNodes = [...v];
30517
+ },
30518
+ immediate: true
30519
+ },
30520
+ getLineColor() {
30521
+ this.$nextTick(() => {
30522
+ this.getEle();
30523
+ });
30476
30524
  }
30477
- // Item become loose if finish with empty line,
30478
- // but we should filter last element, because it means list finish
30479
- prevEmptyEnd = (state.line - startLine) > 1 && state.isEmpty(state.line - 1);
30480
-
30481
- state.blkIndent = state.listIndent;
30482
- state.listIndent = oldListIndent;
30483
- state.tShift[startLine] = oldTShift;
30484
- state.sCount[startLine] = oldSCount;
30485
- state.tight = oldTight;
30486
-
30487
- token = state.push('list_item_close', 'li', -1);
30488
- token.markup = String.fromCharCode(markerCharCode);
30489
-
30490
- nextLine = startLine = state.line;
30491
- itemLines[1] = nextLine;
30492
- contentStart = state.bMarks[startLine];
30493
-
30494
- if (nextLine >= endLine) { break; }
30495
-
30496
- //
30497
- // Try to check if list is terminated or continued.
30498
- //
30499
- if (state.sCount[nextLine] < state.blkIndent) { break; }
30500
-
30501
- // if it's indented more than 3 spaces, it should be a code block
30502
- if (state.sCount[startLine] - state.blkIndent >= 4) { break; }
30503
-
30504
- // fail if terminating block found
30505
- terminate = false;
30506
- for (i = 0, l = terminatorRules.length; i < l; i++) {
30507
- if (terminatorRules[i](state, nextLine, endLine, true)) {
30508
- terminate = true;
30509
- break;
30525
+ },
30526
+ mounted() {
30527
+ this.$nextTick(() => {
30528
+ this.getEle();
30529
+ });
30530
+ },
30531
+ methods: {
30532
+ onExpand(item) {
30533
+ this.$emit('handle-expand', item);
30534
+ },
30535
+ setRadialGradient(colors, ele) {
30536
+ const length = ele.length;
30537
+ Array.from(ele).forEach((item, index) => {
30538
+ const line = item.children[0];
30539
+ if (line) {
30540
+ line.setAttribute('style', `
30541
+ border: none;
30542
+ width:2px;
30543
+ background: linear-gradient(to bottom, ${colors[index]} 0% , ${colors[index < length ? index + 1 : index]} 100%);
30544
+ `);
30545
+ }
30546
+ });
30547
+ },
30548
+ getEle() {
30549
+ if (this.getLineColor && this.$refs.timelineRef && this.lineGradient) {
30550
+ const ele = this.$refs.timelineRef.$el.children[0].children;
30551
+ this.setRadialGradient(this.getLineColor, ele);
30510
30552
  }
30553
+ },
30554
+ isLoading(item) {
30555
+ const status = this.getStatus(item);
30556
+ return status === this.statusEnum.loading.value;
30557
+ },
30558
+ isError(item) {
30559
+ const status = this.getStatus(item);
30560
+ return status === this.statusEnum.error.value;
30561
+ },
30562
+ getId(item) {
30563
+ return (0,lodash.get)(item, this.rowKey);
30564
+ },
30565
+ getType(item) {
30566
+ const status = this.getStatus(item);
30567
+ // 优先查找statusEnum中value匹配的项
30568
+ const matchedStatus = Object.values(this.statusEnum).find(s => s.value === status);
30569
+ return matchedStatus ? matchedStatus.type : 'success';
30570
+ },
30571
+ getTitle(item) {
30572
+ return (0,lodash.get)(item, this.titleKey) || '';
30573
+ },
30574
+ getThinkTitle(item) {
30575
+ return (0,lodash.get)(item, this.thinkTitleKey) || '';
30576
+ },
30577
+ getThinkContent(item) {
30578
+ return (0,lodash.get)(item, this.thinkContentKey) || '';
30579
+ },
30580
+ getStatus(item) {
30581
+ return (0,lodash.get)(item, this.statusKey);
30511
30582
  }
30512
- if (terminate) { break; }
30513
-
30514
- // fail if list has another type
30515
- if (isOrdered) {
30516
- posAfterMarker = skipOrderedListMarker(state, nextLine);
30517
- if (posAfterMarker < 0) { break; }
30518
- start = state.bMarks[nextLine] + state.tShift[nextLine];
30519
- } else {
30520
- posAfterMarker = skipBulletListMarker(state, nextLine);
30521
- if (posAfterMarker < 0) { break; }
30522
- }
30523
-
30524
- if (markerCharCode !== state.src.charCodeAt(posAfterMarker - 1)) { break; }
30525
- }
30526
-
30527
- // Finalize list
30528
- if (isOrdered) {
30529
- token = state.push('ordered_list_close', 'ol', -1);
30530
- } else {
30531
- token = state.push('bullet_list_close', 'ul', -1);
30532
- }
30533
- token.markup = String.fromCharCode(markerCharCode);
30534
-
30535
- listLines[1] = nextLine;
30536
- state.line = nextLine;
30537
-
30538
- state.parentType = oldParentType;
30539
-
30540
- // mark paragraphs tight if needed
30541
- if (tight) {
30542
- markTightParagraphs(state, listTokIdx);
30543
30583
  }
30584
+ });
30585
+ ;// ./src/components/ThoughtChain/src/main.vue?vue&type=script&lang=js
30586
+ /* harmony default export */ const src_mainvue_type_script_lang_js = (mainvue_type_script_lang_js);
30587
+ // EXTERNAL MODULE: ./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js
30588
+ var injectStylesIntoStyleTag = __webpack_require__(5072);
30589
+ var injectStylesIntoStyleTag_default = /*#__PURE__*/__webpack_require__.n(injectStylesIntoStyleTag);
30590
+ // EXTERNAL MODULE: ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-2.use[2]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/ThoughtChain/src/main.vue?vue&type=style&index=0&id=1df1b25f&prod&lang=scss&scoped=true
30591
+ var mainvue_type_style_index_0_id_1df1b25f_prod_lang_scss_scoped_true = __webpack_require__(1519);
30592
+ ;// ./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??clonedRuleSet-2.use[2]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/ThoughtChain/src/main.vue?vue&type=style&index=0&id=1df1b25f&prod&lang=scss&scoped=true
30544
30593
 
30545
- return true;
30546
- };
30547
-
30548
-
30549
- /***/ }),
30550
-
30551
- /***/ 6757:
30552
- /***/ ((module) => {
30553
-
30554
- "use strict";
30555
- // Parse backticks
30556
-
30594
+
30557
30595
 
30596
+ var options = {};
30558
30597
 
30598
+ options.insert = "head";
30599
+ options.singleton = false;
30559
30600
 
30560
- module.exports = function backtick(state, silent) {
30561
- var start, max, marker, token, matchStart, matchEnd, openerLength, closerLength,
30562
- pos = state.pos,
30563
- ch = state.src.charCodeAt(pos);
30601
+ var update = injectStylesIntoStyleTag_default()(mainvue_type_style_index_0_id_1df1b25f_prod_lang_scss_scoped_true/* default */.A, options);
30564
30602
 
30565
- if (ch !== 0x60/* ` */) { return false; }
30566
30603
 
30567
- start = pos;
30568
- pos++;
30569
- max = state.posMax;
30570
30604
 
30571
- // scan marker length
30572
- while (pos < max && state.src.charCodeAt(pos) === 0x60/* ` */) { pos++; }
30605
+ /* harmony default export */ const src_mainvue_type_style_index_0_id_1df1b25f_prod_lang_scss_scoped_true = (mainvue_type_style_index_0_id_1df1b25f_prod_lang_scss_scoped_true/* default */.A.locals || {});
30606
+ ;// ./src/components/ThoughtChain/src/main.vue?vue&type=style&index=0&id=1df1b25f&prod&lang=scss&scoped=true
30573
30607
 
30574
- marker = state.src.slice(start, pos);
30575
- openerLength = marker.length;
30608
+ // EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
30609
+ var componentNormalizer = __webpack_require__(4486);
30610
+ ;// ./src/components/ThoughtChain/src/main.vue
30576
30611
 
30577
- if (state.backticksScanned && (state.backticks[openerLength] || 0) <= start) {
30578
- if (!silent) state.pending += marker;
30579
- state.pos += openerLength;
30580
- return true;
30581
- }
30582
30612
 
30583
- matchStart = matchEnd = pos;
30584
30613
 
30585
- // Nothing found in the cache, scan until the end of the line (or until marker is found)
30586
- while ((matchStart = state.src.indexOf('`', matchEnd)) !== -1) {
30587
- matchEnd = matchStart + 1;
30614
+ ;
30588
30615
 
30589
- // scan marker length
30590
- while (matchEnd < max && state.src.charCodeAt(matchEnd) === 0x60/* ` */) { matchEnd++; }
30591
30616
 
30592
- closerLength = matchEnd - matchStart;
30617
+ /* normalize component */
30593
30618
 
30594
- if (closerLength === openerLength) {
30595
- // Found matching closer length.
30596
- if (!silent) {
30597
- token = state.push('code_inline', 'code', 0);
30598
- token.markup = marker;
30599
- token.content = state.src.slice(pos, matchStart)
30600
- .replace(/\n/g, ' ')
30601
- .replace(/^ (.+) $/, '$1');
30602
- }
30603
- state.pos = matchEnd;
30604
- return true;
30605
- }
30619
+ var component = (0,componentNormalizer/* default */.A)(
30620
+ src_mainvue_type_script_lang_js,
30621
+ render,
30622
+ staticRenderFns,
30623
+ false,
30624
+ null,
30625
+ "1df1b25f",
30626
+ null
30627
+
30628
+ )
30606
30629
 
30607
- // Some different length found, put it in cache as upper limit of where closer can be found
30608
- state.backticks[closerLength] = matchStart;
30609
- }
30630
+ /* harmony default export */ const main = (component.exports);
30631
+ ;// ./src/components/ThoughtChain/index.js
30610
30632
 
30611
- // Scanned through the end, didn't find anything
30612
- state.backticksScanned = true;
30613
30633
 
30614
- if (!silent) state.pending += marker;
30615
- state.pos += openerLength;
30616
- return true;
30634
+ /* istanbul ignore next */
30635
+ main.install = function (Vue) {
30636
+ Vue.component(main.name, main);
30617
30637
  };
30618
-
30638
+ /* harmony default export */ const ThoughtChain = (main);
30619
30639
 
30620
30640
  /***/ }),
30621
30641
 
@@ -34674,26 +34694,6 @@ exports.P = __webpack_require__(2828);
34674
34694
  exports.Z = __webpack_require__(3978);
34675
34695
 
34676
34696
 
34677
- /***/ }),
34678
-
34679
- /***/ 9371:
34680
- /***/ ((module, __webpack_exports__, __webpack_require__) => {
34681
-
34682
- "use strict";
34683
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
34684
- /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
34685
- /* harmony export */ });
34686
- /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6314);
34687
- /* 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__);
34688
- // Imports
34689
-
34690
- var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]});
34691
- // Module
34692
- ___CSS_LOADER_EXPORT___.push([module.id, "[data-v-86d7e9ae]:root{--color-primary: #409eff;--color-success: #67c23a;--color-warning: #e6a23c;--color-danger: #f56c6c;--color-info: #909399}.el-x-thoughtchain-item-dot[data-v-86d7e9ae]{display:flex;justify-content:center;align-items:center}.el-x-thoughtchain-item-dot .el-button[data-v-86d7e9ae]{cursor:default !important}.el-x-thoughtchain .el-collapse[data-v-86d7e9ae]{border:none}.el-x-thoughtchain .el-collapse .el-collapse-item__header[data-v-86d7e9ae]{height:20px;font-weight:normal}.el-x-thoughtchain .el-collapse .el-collapse-item__arrow[data-v-86d7e9ae]{margin:0 0 0 8px}.el-x-thoughtchain .el-collapse .el-collapse-item__header[data-v-86d7e9ae]{margin-bottom:5px}.el-x-thoughtchain .el-collapse .el-collapse-item__header[data-v-86d7e9ae],.el-x-thoughtchain .el-collapse .el-collapse-item__wrap[data-v-86d7e9ae]{border:none}.el-x-thoughtchain .el-collapse .el-collapse-item__content[data-v-86d7e9ae]{color:#909399;padding:0}.el-x-thoughtchain .el-timeline[data-v-86d7e9ae]{padding:10px 0 0 5px}.el-x-thoughtchain .el-timeline-item__timestamp[data-v-86d7e9ae]{color:#303133}.el-x-thoughtchain .el-timeline-item__content[data-v-86d7e9ae]{color:#909399}.el-x-thoughtchain .el-timeline-item[data-v-86d7e9ae]{list-style:none !important}.thought-chain-move[data-v-86d7e9ae],.thought-chain-enter-active[data-v-86d7e9ae],.thought-chain-leave-active[data-v-86d7e9ae]{transition:all .5s ease}.thought-chain-enter[data-v-86d7e9ae],.thought-chain-leave-to[data-v-86d7e9ae]{opacity:0;transform:translateY(10px) scaleY(0.9)}.thought-chain-leave-active[data-v-86d7e9ae]{position:absolute}.el-x-thoughtchain-loading[data-v-86d7e9ae]{animation:thoughtchain-rotating-86d7e9ae 1.5s linear infinite;transform-origin:center center;will-change:transform;backface-visibility:hidden;-webkit-font-smoothing:antialiased}@keyframes thoughtchain-rotating-86d7e9ae{0%{transform:rotate(0deg)}25%{transform:rotate(90deg)}50%{transform:rotate(180deg)}75%{transform:rotate(270deg)}100%{transform:rotate(360deg)}}", ""]);
34693
- // Exports
34694
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
34695
-
34696
-
34697
34697
  /***/ }),
34698
34698
 
34699
34699
  /***/ 9442:
@@ -37174,7 +37174,7 @@ var Sender = __webpack_require__(650);
37174
37174
  // EXTERNAL MODULE: ./src/components/Thinking/index.js + 7 modules
37175
37175
  var Thinking = __webpack_require__(6784);
37176
37176
  // EXTERNAL MODULE: ./src/components/ThoughtChain/index.js + 7 modules
37177
- var ThoughtChain = __webpack_require__(6109);
37177
+ var ThoughtChain = __webpack_require__(6765);
37178
37178
  // EXTERNAL MODULE: ./src/components/Typewriter/index.js + 8 modules
37179
37179
  var Typewriter = __webpack_require__(1207);
37180
37180
  // EXTERNAL MODULE: ./src/components/Welcome/index.js + 7 modules