byt-lingxiao-ai 0.3.0 → 0.3.3

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 (40) hide show
  1. package/components/AiMessage.vue +39 -21
  2. package/components/ChatAvatar.vue +8 -1
  3. package/components/ChatMessageList.vue +29 -10
  4. package/components/ChatRobot.vue +5 -0
  5. package/components/ChatWindow.vue +115 -5
  6. package/components/ChatWindowHeader.vue +3 -0
  7. package/components/assets/arrow.png +0 -0
  8. package/components/assets/empty.png +0 -0
  9. package/components/assets/entering.png +0 -0
  10. package/components/assets/logo.png +0 -0
  11. package/components/assets/normal.png +0 -0
  12. package/components/assets/output.png +0 -0
  13. package/components/assets/speaking.png +0 -0
  14. package/components/assets/think.png +0 -0
  15. package/components/assets/thinking.png +0 -0
  16. package/components/assets/waiting.png +0 -0
  17. package/components/config/index.js +4 -0
  18. package/components/mixins/messageMixin.js +11 -5
  19. package/dist/img/empty.f36cb82e.png +0 -0
  20. package/dist/img/entering.4ef198fb.png +0 -0
  21. package/dist/img/normal.30197a82.png +0 -0
  22. package/dist/img/output.1dfa94eb.png +0 -0
  23. package/dist/img/speaking.fa87fedb.png +0 -0
  24. package/dist/img/thinking.21ad5ca5.png +0 -0
  25. package/dist/img/waiting.460478ef.png +0 -0
  26. package/dist/index.common.js +222 -89
  27. package/dist/index.common.js.map +1 -1
  28. package/dist/index.css +2 -2
  29. package/dist/index.umd.js +222 -89
  30. package/dist/index.umd.js.map +1 -1
  31. package/dist/index.umd.min.js +1 -1
  32. package/dist/index.umd.min.js.map +1 -1
  33. package/package.json +1 -1
  34. package/components/assets/byt.mp3 +0 -0
  35. package/dist/img/entering.42f05909.png +0 -0
  36. package/dist/img/normal.13f08ecb.png +0 -0
  37. package/dist/img/output.85c6bd8b.png +0 -0
  38. package/dist/img/speaking.3ce8b666.png +0 -0
  39. package/dist/img/thinking.05f29a84.png +0 -0
  40. package/dist/img/waiting.ac21d76e.png +0 -0
package/dist/index.umd.js CHANGED
@@ -28460,12 +28460,13 @@ if (typeof window !== 'undefined') {
28460
28460
  var es_iterator_constructor = __webpack_require__(8111);
28461
28461
  // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.for-each.js
28462
28462
  var es_iterator_for_each = __webpack_require__(7588);
28463
- ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/ChatWindow.vue?vue&type=template&id=14ff12bc&scoped=true
28463
+ ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/ChatWindow.vue?vue&type=template&id=382b928f&scoped=true
28464
28464
  var render = function render() {
28465
28465
  var _vm = this,
28466
28466
  _c = _vm._self._c;
28467
28467
  return _c('div', {
28468
- staticClass: "chat"
28468
+ staticClass: "chat",
28469
+ style: _vm.chatStyle
28469
28470
  }, [_c('audio', {
28470
28471
  ref: "audioPlayer",
28471
28472
  staticClass: "hidden-audio",
@@ -28487,14 +28488,13 @@ var render = function render() {
28487
28488
  "status": _vm.avaterStatus
28488
28489
  },
28489
28490
  on: {
28490
- "click": _vm.toggleWindow
28491
+ "mousedown": _vm.startDrag
28491
28492
  }
28492
28493
  }), _c('ChatWindowDialog', {
28493
28494
  attrs: {
28494
28495
  "messages": _vm.messages,
28495
28496
  "input-message": _vm.inputMessage,
28496
- "think-status": _vm.thinkStatus,
28497
- "loading": _vm.isLoading
28497
+ "think-status": _vm.thinkStatus
28498
28498
  },
28499
28499
  on: {
28500
28500
  "update:inputMessage": function ($event) {
@@ -28531,15 +28531,15 @@ var es_set_is_superset_of_v2 = __webpack_require__(2475);
28531
28531
  var es_set_symmetric_difference_v2 = __webpack_require__(5024);
28532
28532
  // EXTERNAL MODULE: ./node_modules/core-js/modules/es.set.union.v2.js
28533
28533
  var es_set_union_v2 = __webpack_require__(1698);
28534
- ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/ChatRobot.vue?vue&type=template&id=3d936cb2&scoped=true
28535
- var ChatRobotvue_type_template_id_3d936cb2_scoped_true_render = function render() {
28534
+ ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/ChatRobot.vue?vue&type=template&id=ad4ce922&scoped=true
28535
+ var ChatRobotvue_type_template_id_ad4ce922_scoped_true_render = function render() {
28536
28536
  var _vm = this,
28537
28537
  _c = _vm._self._c;
28538
28538
  return _c('div', {
28539
28539
  class: ['chat-robot', _vm.status]
28540
28540
  });
28541
28541
  };
28542
- var ChatRobotvue_type_template_id_3d936cb2_scoped_true_staticRenderFns = [];
28542
+ var ChatRobotvue_type_template_id_ad4ce922_scoped_true_staticRenderFns = [];
28543
28543
 
28544
28544
  ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/ChatRobot.vue?vue&type=script&lang=js
28545
28545
  /* harmony default export */ var ChatRobotvue_type_script_lang_js = ({
@@ -28550,14 +28550,19 @@ var ChatRobotvue_type_template_id_3d936cb2_scoped_true_staticRenderFns = [];
28550
28550
  required: true,
28551
28551
  validator: value => ['entering', 'waiting', 'speaking'].includes(value)
28552
28552
  }
28553
+ },
28554
+ watch: {
28555
+ status(newStatus, oldStatus) {
28556
+ console.log('机器人状态变化:', newStatus, oldStatus);
28557
+ }
28553
28558
  }
28554
28559
  });
28555
28560
  ;// ./components/ChatRobot.vue?vue&type=script&lang=js
28556
28561
  /* harmony default export */ var components_ChatRobotvue_type_script_lang_js = (ChatRobotvue_type_script_lang_js);
28557
- ;// ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-54.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-54.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-54.use[2]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/ChatRobot.vue?vue&type=style&index=0&id=3d936cb2&prod&scoped=true&lang=css
28562
+ ;// ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-54.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-54.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-54.use[2]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/ChatRobot.vue?vue&type=style&index=0&id=ad4ce922&prod&scoped=true&lang=css
28558
28563
  // extracted by mini-css-extract-plugin
28559
28564
 
28560
- ;// ./components/ChatRobot.vue?vue&type=style&index=0&id=3d936cb2&prod&scoped=true&lang=css
28565
+ ;// ./components/ChatRobot.vue?vue&type=style&index=0&id=ad4ce922&prod&scoped=true&lang=css
28561
28566
 
28562
28567
  ;// ./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js
28563
28568
  /* globals __VUE_SSR_CONTEXT__ */
@@ -28668,25 +28673,25 @@ function normalizeComponent(
28668
28673
 
28669
28674
  var component = normalizeComponent(
28670
28675
  components_ChatRobotvue_type_script_lang_js,
28671
- ChatRobotvue_type_template_id_3d936cb2_scoped_true_render,
28672
- ChatRobotvue_type_template_id_3d936cb2_scoped_true_staticRenderFns,
28676
+ ChatRobotvue_type_template_id_ad4ce922_scoped_true_render,
28677
+ ChatRobotvue_type_template_id_ad4ce922_scoped_true_staticRenderFns,
28673
28678
  false,
28674
28679
  null,
28675
- "3d936cb2",
28680
+ "ad4ce922",
28676
28681
  null
28677
28682
 
28678
28683
  )
28679
28684
 
28680
28685
  /* harmony default export */ var ChatRobot = (component.exports);
28681
- ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/ChatAvatar.vue?vue&type=template&id=0c02b1ca&scoped=true
28682
- var ChatAvatarvue_type_template_id_0c02b1ca_scoped_true_render = function render() {
28686
+ ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/ChatAvatar.vue?vue&type=template&id=45540794&scoped=true
28687
+ var ChatAvatarvue_type_template_id_45540794_scoped_true_render = function render() {
28683
28688
  var _vm = this,
28684
28689
  _c = _vm._self._c;
28685
28690
  return _c('div', {
28686
28691
  staticClass: "chat-ai",
28687
28692
  on: {
28688
- "click": function ($event) {
28689
- return _vm.$emit('click');
28693
+ "mousedown": function ($event) {
28694
+ return _vm.$emit('mousedown');
28690
28695
  }
28691
28696
  }
28692
28697
  }, [_c('div', {
@@ -28695,7 +28700,7 @@ var ChatAvatarvue_type_template_id_0c02b1ca_scoped_true_render = function render
28695
28700
  staticClass: "chat-ai-text"
28696
28701
  }, [_vm._v(_vm._s(_vm.statusText))])]);
28697
28702
  };
28698
- var ChatAvatarvue_type_template_id_0c02b1ca_scoped_true_staticRenderFns = [];
28703
+ var ChatAvatarvue_type_template_id_45540794_scoped_true_staticRenderFns = [];
28699
28704
 
28700
28705
  ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/ChatAvatar.vue?vue&type=script&lang=js
28701
28706
  /* harmony default export */ var ChatAvatarvue_type_script_lang_js = ({
@@ -28720,10 +28725,10 @@ var ChatAvatarvue_type_template_id_0c02b1ca_scoped_true_staticRenderFns = [];
28720
28725
  });
28721
28726
  ;// ./components/ChatAvatar.vue?vue&type=script&lang=js
28722
28727
  /* harmony default export */ var components_ChatAvatarvue_type_script_lang_js = (ChatAvatarvue_type_script_lang_js);
28723
- ;// ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-54.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-54.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-54.use[2]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/ChatAvatar.vue?vue&type=style&index=0&id=0c02b1ca&prod&scoped=true&lang=css
28728
+ ;// ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-54.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-54.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-54.use[2]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/ChatAvatar.vue?vue&type=style&index=0&id=45540794&prod&scoped=true&lang=css
28724
28729
  // extracted by mini-css-extract-plugin
28725
28730
 
28726
- ;// ./components/ChatAvatar.vue?vue&type=style&index=0&id=0c02b1ca&prod&scoped=true&lang=css
28731
+ ;// ./components/ChatAvatar.vue?vue&type=style&index=0&id=45540794&prod&scoped=true&lang=css
28727
28732
 
28728
28733
  ;// ./components/ChatAvatar.vue
28729
28734
 
@@ -28736,11 +28741,11 @@ var ChatAvatarvue_type_template_id_0c02b1ca_scoped_true_staticRenderFns = [];
28736
28741
 
28737
28742
  var ChatAvatar_component = normalizeComponent(
28738
28743
  components_ChatAvatarvue_type_script_lang_js,
28739
- ChatAvatarvue_type_template_id_0c02b1ca_scoped_true_render,
28740
- ChatAvatarvue_type_template_id_0c02b1ca_scoped_true_staticRenderFns,
28744
+ ChatAvatarvue_type_template_id_45540794_scoped_true_render,
28745
+ ChatAvatarvue_type_template_id_45540794_scoped_true_staticRenderFns,
28741
28746
  false,
28742
28747
  null,
28743
- "0c02b1ca",
28748
+ "45540794",
28744
28749
  null
28745
28750
 
28746
28751
  )
@@ -28804,8 +28809,8 @@ var ChatWindowDialogvue_type_template_id_1424b8b1_scoped_true_render = function
28804
28809
  };
28805
28810
  var ChatWindowDialogvue_type_template_id_1424b8b1_scoped_true_staticRenderFns = [];
28806
28811
 
28807
- ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/ChatWindowHeader.vue?vue&type=template&id=90ac64ba&scoped=true
28808
- var ChatWindowHeadervue_type_template_id_90ac64ba_scoped_true_render = function render() {
28812
+ ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/ChatWindowHeader.vue?vue&type=template&id=428ec56e&scoped=true
28813
+ var ChatWindowHeadervue_type_template_id_428ec56e_scoped_true_render = function render() {
28809
28814
  var _vm = this,
28810
28815
  _c = _vm._self._c;
28811
28816
  return _c('div', {
@@ -28890,13 +28895,15 @@ var ChatWindowHeadervue_type_template_id_90ac64ba_scoped_true_render = function
28890
28895
  }
28891
28896
  })])])]);
28892
28897
  };
28893
- var ChatWindowHeadervue_type_template_id_90ac64ba_scoped_true_staticRenderFns = [];
28898
+ var ChatWindowHeadervue_type_template_id_428ec56e_scoped_true_staticRenderFns = [];
28894
28899
 
28895
28900
  ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/ChatWindowHeader.vue?vue&type=script&lang=js
28896
28901
  /* harmony default export */ var ChatWindowHeadervue_type_script_lang_js = ({
28897
28902
  name: 'ChatWindowHeader',
28898
28903
  methods: {
28899
28904
  handleOpen() {
28905
+ // const chatId = ''
28906
+ // const baseUrl = window.location.protocol + '//' + window.location.hostname + ':3100/c/' + chatId;
28900
28907
  const baseUrl = window.location.protocol + '//' + window.location.hostname + ':3100/';
28901
28908
  window.open(baseUrl, '_blank');
28902
28909
  }
@@ -28904,10 +28911,10 @@ var ChatWindowHeadervue_type_template_id_90ac64ba_scoped_true_staticRenderFns =
28904
28911
  });
28905
28912
  ;// ./components/ChatWindowHeader.vue?vue&type=script&lang=js
28906
28913
  /* harmony default export */ var components_ChatWindowHeadervue_type_script_lang_js = (ChatWindowHeadervue_type_script_lang_js);
28907
- ;// ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-54.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-54.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-54.use[2]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/ChatWindowHeader.vue?vue&type=style&index=0&id=90ac64ba&prod&scoped=true&lang=css
28914
+ ;// ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-54.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-54.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-54.use[2]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/ChatWindowHeader.vue?vue&type=style&index=0&id=428ec56e&prod&scoped=true&lang=css
28908
28915
  // extracted by mini-css-extract-plugin
28909
28916
 
28910
- ;// ./components/ChatWindowHeader.vue?vue&type=style&index=0&id=90ac64ba&prod&scoped=true&lang=css
28917
+ ;// ./components/ChatWindowHeader.vue?vue&type=style&index=0&id=428ec56e&prod&scoped=true&lang=css
28911
28918
 
28912
28919
  ;// ./components/ChatWindowHeader.vue
28913
28920
 
@@ -28920,24 +28927,26 @@ var ChatWindowHeadervue_type_template_id_90ac64ba_scoped_true_staticRenderFns =
28920
28927
 
28921
28928
  var ChatWindowHeader_component = normalizeComponent(
28922
28929
  components_ChatWindowHeadervue_type_script_lang_js,
28923
- ChatWindowHeadervue_type_template_id_90ac64ba_scoped_true_render,
28924
- ChatWindowHeadervue_type_template_id_90ac64ba_scoped_true_staticRenderFns,
28930
+ ChatWindowHeadervue_type_template_id_428ec56e_scoped_true_render,
28931
+ ChatWindowHeadervue_type_template_id_428ec56e_scoped_true_staticRenderFns,
28925
28932
  false,
28926
28933
  null,
28927
- "90ac64ba",
28934
+ "428ec56e",
28928
28935
  null
28929
28936
 
28930
28937
  )
28931
28938
 
28932
28939
  /* harmony default export */ var ChatWindowHeader = (ChatWindowHeader_component.exports);
28933
- ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/ChatMessageList.vue?vue&type=template&id=53715846&scoped=true
28934
- var ChatMessageListvue_type_template_id_53715846_scoped_true_render = function render() {
28940
+ ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/ChatMessageList.vue?vue&type=template&id=dfc4454c&scoped=true
28941
+ var ChatMessageListvue_type_template_id_dfc4454c_scoped_true_render = function render() {
28935
28942
  var _vm = this,
28936
28943
  _c = _vm._self._c;
28937
28944
  return _c('div', {
28938
28945
  ref: "chatArea",
28939
28946
  staticClass: "chat-window-content scrollbar-hide"
28940
- }, _vm._l(_vm.messages, function (message) {
28947
+ }, [_vm.messages.length === 0 ? _c('div', {
28948
+ staticClass: "chat-window-empty"
28949
+ }) : _vm._e(), _vm._l(_vm.messages, function (message) {
28941
28950
  return _c('div', {
28942
28951
  key: message.id,
28943
28952
  staticClass: "chat-window-message"
@@ -28948,18 +28957,17 @@ var ChatMessageListvue_type_template_id_53715846_scoped_true_render = function r
28948
28957
  }) : _c('AiMessage', {
28949
28958
  attrs: {
28950
28959
  "message": message,
28951
- "think-status": _vm.thinkStatus,
28952
- "loading": _vm.isLoading
28960
+ "think-status": _vm.thinkStatus
28953
28961
  },
28954
28962
  on: {
28955
- "thinking-click": function ($event) {
28956
- return _vm.$emit('thinking-click');
28963
+ "thinking-toggle": function ($event) {
28964
+ return _vm.handleThinkingToggle(message);
28957
28965
  }
28958
28966
  }
28959
28967
  })], 1);
28960
- }), 0);
28968
+ })], 2);
28961
28969
  };
28962
- var ChatMessageListvue_type_template_id_53715846_scoped_true_staticRenderFns = [];
28970
+ var ChatMessageListvue_type_template_id_dfc4454c_scoped_true_staticRenderFns = [];
28963
28971
 
28964
28972
  ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/UserMessage.vue?vue&type=template&id=6a2b6167&scoped=true
28965
28973
  var UserMessagevue_type_template_id_6a2b6167_scoped_true_render = function render() {
@@ -29011,15 +29019,15 @@ var UserMessage_component = normalizeComponent(
29011
29019
  )
29012
29020
 
29013
29021
  /* harmony default export */ var UserMessage = (UserMessage_component.exports);
29014
- ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/AiMessage.vue?vue&type=template&id=a8b0fba0&scoped=true
29015
- var AiMessagevue_type_template_id_a8b0fba0_scoped_true_render = function render() {
29022
+ ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/AiMessage.vue?vue&type=template&id=6e022f2c&scoped=true
29023
+ var AiMessagevue_type_template_id_6e022f2c_scoped_true_render = function render() {
29016
29024
  var _vm = this,
29017
29025
  _c = _vm._self._c;
29018
29026
  return _c('div', {
29019
29027
  staticClass: "chat-window-message-ai"
29020
29028
  }, [_c('div', {
29021
29029
  staticClass: "ai-render"
29022
- }, [_vm.loading ? _c('div', {
29030
+ }, [_vm.isLoading ? _c('div', {
29023
29031
  staticClass: "ai-loading"
29024
29032
  }, [_c('div', {
29025
29033
  staticClass: "dot"
@@ -29031,12 +29039,12 @@ var AiMessagevue_type_template_id_a8b0fba0_scoped_true_render = function render(
29031
29039
  staticClass: "ai-thinking",
29032
29040
  on: {
29033
29041
  "click": function ($event) {
29034
- return _vm.$emit('thinking-click');
29042
+ return _vm.$emit('thinking-toggle');
29035
29043
  }
29036
29044
  }
29037
29045
  }, [_c('div', {
29038
29046
  staticClass: "ai-thinking-time"
29039
- }, [_vm._v("思考用时" + _vm._s(_vm.message.time) + "秒")]), _vm.thinkStatus ? _c('div', {
29047
+ }, [_vm._v(_vm._s(_vm.message.time ? `思考用时${_vm.message.time}秒` : '思考中...'))]), _vm.thinkingExpanded ? _c('div', {
29040
29048
  staticClass: "ai-thinking-content"
29041
29049
  }, [_vm._v(_vm._s(_vm.message.thinking))]) : _vm._e()]) : _vm._e(), _c('div', {
29042
29050
  staticClass: "ai-content markdown-body",
@@ -29045,7 +29053,7 @@ var AiMessagevue_type_template_id_a8b0fba0_scoped_true_render = function render(
29045
29053
  }
29046
29054
  })])]);
29047
29055
  };
29048
- var AiMessagevue_type_template_id_a8b0fba0_scoped_true_staticRenderFns = [];
29056
+ var AiMessagevue_type_template_id_6e022f2c_scoped_true_staticRenderFns = [];
29049
29057
 
29050
29058
  // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.filter.js
29051
29059
  var es_iterator_filter = __webpack_require__(2489);
@@ -30856,13 +30864,20 @@ function parseMarkdown(text) {
30856
30864
  html = html.replace(/(<li>.*?<\/li>)/gs, '<ul>$1</ul>');
30857
30865
  html = html.replace(/^\s*\d+\.\s+(.+)$/gm, '<li>$1</li>');
30858
30866
  html = html.replace(/^>\s+(.+)$/gm, '<blockquote>$1</blockquote>');
30867
+ // 解析Markdown链接
30859
30868
  html = html.replace(/\[([^\]]+)\]\(([^)]+)\)/g, '<a href="$2" target="_blank">$1</a>');
30860
30869
  html = html.replace(/!\[([^\]]*)\]\(([^)]+)\)/g, '<img src="$2" alt="$1" />');
30861
30870
  html = html.replace(/^-{3,}$/gm, '<hr>');
30862
- html = html.replace(/\n/g, '<br>');
30871
+ // 解析简单URL
30872
+ const simpleUrlRegex = /(https?:\/\/[^\s<>"']+)/g;
30873
+ html = html.replace(simpleUrlRegex, match => {
30874
+ return `<a href="${match}" aria-current="page">${match}</a>`;
30875
+ });
30876
+
30877
+ // html = html.replace(/\n/g, '<br>');
30878
+
30863
30879
  return html;
30864
30880
  }
30865
-
30866
30881
  // 解析表格
30867
30882
  function parseTable(text) {
30868
30883
  const lines = text.split('\n');
@@ -30899,7 +30914,6 @@ function parseTable(text) {
30899
30914
  }
30900
30915
  return result.join('\n');
30901
30916
  }
30902
-
30903
30917
  // 渲染表格
30904
30918
  function renderTable(rows) {
30905
30919
  if (rows.length < 2) return rows.join('\n');
@@ -30920,7 +30934,7 @@ function renderTable(rows) {
30920
30934
  if (cells.length > 0) {
30921
30935
  html += '<tr>';
30922
30936
  cells.forEach(cell => {
30923
- html += `<td>${cell.trim()}</td>`;
30937
+ html += `<td><div class="table-cell">${cell.trim()}</div></td>`;
30924
30938
  });
30925
30939
  html += '</tr>';
30926
30940
  }
@@ -30929,7 +30943,6 @@ function renderTable(rows) {
30929
30943
  html += '</table></div>';
30930
30944
  return html;
30931
30945
  }
30932
-
30933
30946
  // HTML 转义
30934
30947
  function escapeHtml(text) {
30935
30948
  const map = {
@@ -30947,19 +30960,17 @@ function escapeHtml(text) {
30947
30960
  message: {
30948
30961
  type: Object,
30949
30962
  required: true
30950
- },
30951
- thinkStatus: {
30952
- type: Boolean,
30953
- default: true
30954
- },
30955
- loading: {
30956
- type: Boolean,
30957
- default: false
30958
30963
  }
30959
30964
  },
30960
30965
  computed: {
30966
+ thinkingExpanded() {
30967
+ return this.message.thinkingExpanded !== false;
30968
+ },
30961
30969
  renderedContent() {
30962
30970
  return parseMarkdown(this.message.content);
30971
+ },
30972
+ isLoading() {
30973
+ return this.message.loading === true;
30963
30974
  }
30964
30975
  },
30965
30976
  watch: {
@@ -30970,10 +30981,10 @@ function escapeHtml(text) {
30970
30981
  });
30971
30982
  ;// ./components/AiMessage.vue?vue&type=script&lang=js
30972
30983
  /* harmony default export */ var components_AiMessagevue_type_script_lang_js = (AiMessagevue_type_script_lang_js);
30973
- ;// ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-54.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-54.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-54.use[2]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/AiMessage.vue?vue&type=style&index=0&id=a8b0fba0&prod&scoped=true&lang=css
30984
+ ;// ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-54.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-54.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-54.use[2]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/AiMessage.vue?vue&type=style&index=0&id=6e022f2c&prod&scoped=true&lang=css
30974
30985
  // extracted by mini-css-extract-plugin
30975
30986
 
30976
- ;// ./components/AiMessage.vue?vue&type=style&index=0&id=a8b0fba0&prod&scoped=true&lang=css
30987
+ ;// ./components/AiMessage.vue?vue&type=style&index=0&id=6e022f2c&prod&scoped=true&lang=css
30977
30988
 
30978
30989
  ;// ./components/AiMessage.vue
30979
30990
 
@@ -30986,11 +30997,11 @@ function escapeHtml(text) {
30986
30997
 
30987
30998
  var AiMessage_component = normalizeComponent(
30988
30999
  components_AiMessagevue_type_script_lang_js,
30989
- AiMessagevue_type_template_id_a8b0fba0_scoped_true_render,
30990
- AiMessagevue_type_template_id_a8b0fba0_scoped_true_staticRenderFns,
31000
+ AiMessagevue_type_template_id_6e022f2c_scoped_true_render,
31001
+ AiMessagevue_type_template_id_6e022f2c_scoped_true_staticRenderFns,
30991
31002
  false,
30992
31003
  null,
30993
- "a8b0fba0",
31004
+ "6e022f2c",
30994
31005
  null
30995
31006
 
30996
31007
  )
@@ -31013,13 +31024,22 @@ var AiMessage_component = normalizeComponent(
31013
31024
  thinkStatus: {
31014
31025
  type: Boolean,
31015
31026
  default: true
31016
- },
31017
- isLoading: {
31018
- type: Boolean,
31019
- default: false
31027
+ }
31028
+ },
31029
+ computed: {
31030
+ lastMessageObject() {
31031
+ const len = this.messages.length;
31032
+ if (len === 0) {
31033
+ return null;
31034
+ }
31035
+ return this.messages[len - 1];
31020
31036
  }
31021
31037
  },
31022
31038
  methods: {
31039
+ handleThinkingToggle(message) {
31040
+ console.log('handleThinkingToggle', message);
31041
+ this.$set(message, 'thinkingExpanded', !message.thinkingExpanded);
31042
+ },
31023
31043
  scrollToBottom() {
31024
31044
  this.$nextTick(() => {
31025
31045
  const chatArea = this.$refs.chatArea;
@@ -31030,20 +31050,23 @@ var AiMessage_component = normalizeComponent(
31030
31050
  }
31031
31051
  },
31032
31052
  watch: {
31033
- messages: {
31034
- handler() {
31035
- this.scrollToBottom();
31053
+ lastMessageObject: {
31054
+ handler(newMsg) {
31055
+ if (newMsg) {
31056
+ this.scrollToBottom();
31057
+ }
31036
31058
  },
31037
- deep: true
31059
+ deep: true,
31060
+ immediate: true
31038
31061
  }
31039
31062
  }
31040
31063
  });
31041
31064
  ;// ./components/ChatMessageList.vue?vue&type=script&lang=js
31042
31065
  /* harmony default export */ var components_ChatMessageListvue_type_script_lang_js = (ChatMessageListvue_type_script_lang_js);
31043
- ;// ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-54.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-54.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-54.use[2]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/ChatMessageList.vue?vue&type=style&index=0&id=53715846&prod&scoped=true&lang=css
31066
+ ;// ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-54.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-54.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-54.use[2]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/ChatMessageList.vue?vue&type=style&index=0&id=dfc4454c&prod&scoped=true&lang=css
31044
31067
  // extracted by mini-css-extract-plugin
31045
31068
 
31046
- ;// ./components/ChatMessageList.vue?vue&type=style&index=0&id=53715846&prod&scoped=true&lang=css
31069
+ ;// ./components/ChatMessageList.vue?vue&type=style&index=0&id=dfc4454c&prod&scoped=true&lang=css
31047
31070
 
31048
31071
  ;// ./components/ChatMessageList.vue
31049
31072
 
@@ -31056,11 +31079,11 @@ var AiMessage_component = normalizeComponent(
31056
31079
 
31057
31080
  var ChatMessageList_component = normalizeComponent(
31058
31081
  components_ChatMessageListvue_type_script_lang_js,
31059
- ChatMessageListvue_type_template_id_53715846_scoped_true_render,
31060
- ChatMessageListvue_type_template_id_53715846_scoped_true_staticRenderFns,
31082
+ ChatMessageListvue_type_template_id_dfc4454c_scoped_true_render,
31083
+ ChatMessageListvue_type_template_id_dfc4454c_scoped_true_staticRenderFns,
31061
31084
  false,
31062
31085
  null,
31063
- "53715846",
31086
+ "dfc4454c",
31064
31087
  null
31065
31088
 
31066
31089
  )
@@ -31376,6 +31399,9 @@ var es_typed_array_with = __webpack_require__(9577);
31376
31399
  }
31377
31400
  });
31378
31401
  ;// ./components/config/index.js
31402
+ const baseUrl = window.location.protocol + '//' + window.location.hostname;
31403
+ const chatPort = '3100';
31404
+ console.log(baseUrl, chatPort);
31379
31405
  const API_URL = 'http://192.168.8.87:3100/lingxiao-byt/api/v1/mcp/ask';
31380
31406
  const WS_URL = 'ws://192.168.8.9:9999/ai_model/ws/voice-stream';
31381
31407
  const AUDIO_URL = '/minio/lingxiaoai/byt.mp3';
@@ -31767,8 +31793,7 @@ class StreamParser {
31767
31793
  /* harmony default export */ var messageMixin = ({
31768
31794
  data() {
31769
31795
  return {
31770
- streamParser: null,
31771
- isLoading: false
31796
+ streamParser: null
31772
31797
  };
31773
31798
  },
31774
31799
  created() {
@@ -31778,7 +31803,6 @@ class StreamParser {
31778
31803
  // 约60fps
31779
31804
  debug: "production" === 'development'
31780
31805
  });
31781
- this.isLoading = true;
31782
31806
  },
31783
31807
  methods: {
31784
31808
  createAiMessage() {
@@ -31789,7 +31813,9 @@ class StreamParser {
31789
31813
  time: '',
31790
31814
  thinking: '',
31791
31815
  charts: [],
31792
- content: ''
31816
+ content: '',
31817
+ loading: true,
31818
+ thinkingExpanded: true
31793
31819
  };
31794
31820
  this.messages.push(message);
31795
31821
  this.currentMessage = message;
@@ -31852,14 +31878,17 @@ class StreamParser {
31852
31878
  }
31853
31879
  console.log(`流处理完成,总耗时: ${duration}ms`);
31854
31880
  this.avaterStatus = 'normal';
31855
- this.isLoading = false;
31856
31881
  } catch (error) {
31857
31882
  console.error('发送消息失败:', error);
31858
31883
  if (this.currentMessage) {
31859
31884
  this.currentMessage.content = '抱歉,发生了错误,请重试。';
31860
31885
  this.$forceUpdate();
31861
31886
  }
31862
- this.isLoading = false;
31887
+ } finally {
31888
+ // 确保加载状态关闭
31889
+ if (this.currentMessage) {
31890
+ this.currentMessage.loading = false;
31891
+ }
31863
31892
  }
31864
31893
  },
31865
31894
  /**
@@ -31896,7 +31925,9 @@ class StreamParser {
31896
31925
  handleStreamUpdate(result) {
31897
31926
  if (!this.currentMessage) return;
31898
31927
  console.log('收到更新:', result);
31899
-
31928
+ if (this.currentMessage.loading) {
31929
+ this.currentMessage.loading = false;
31930
+ }
31900
31931
  // 更新思考内容
31901
31932
  if (result.thinking) {
31902
31933
  this.currentMessage.thinking += result.thinking;
@@ -31971,14 +32002,45 @@ const FRAME_SIZE = 512;
31971
32002
  thinkStatus: true,
31972
32003
  jumpedTimePoints: new Set(),
31973
32004
  SAMPLE_RATE,
31974
- FRAME_SIZE
32005
+ FRAME_SIZE,
32006
+ dragThreshold: 5,
32007
+ // 拖拽阈值
32008
+ isDragging: false,
32009
+ dragStartX: 0,
32010
+ dragStartY: 0,
32011
+ currentX: 10,
32012
+ currentY: 20,
32013
+ initialX: 10,
32014
+ initialY: 20,
32015
+ hasMoved: false
31975
32016
  };
31976
32017
  },
32018
+ computed: {
32019
+ chatStyle() {
32020
+ if (this.robotStatus === 'leaving' && !this.visible) {
32021
+ return {
32022
+ right: `${this.currentX}px`,
32023
+ bottom: `${this.currentY}px`,
32024
+ cursor: this.isDragging ? 'grabbing' : 'grab',
32025
+ transition: this.isDragging ? 'none' : 'right 0.3s ease, bottom 0.3s ease'
32026
+ };
32027
+ }
32028
+ return {
32029
+ cursor: 'pointer'
32030
+ };
32031
+ }
32032
+ },
31977
32033
  mounted() {
31978
32034
  this.initWebSocket();
31979
32035
  if (this.appendToBody) {
31980
32036
  this.appendToBodyHandler();
31981
32037
  }
32038
+ this.$nextTick(() => {
32039
+ const chatEl = this.$el;
32040
+ const style = window.getComputedStyle(chatEl);
32041
+ this.initialX = this.currentX = parseInt(style.right, 10) || 10;
32042
+ this.initialY = this.currentY = parseInt(style.bottom, 10) || 20;
32043
+ });
31982
32044
  },
31983
32045
  beforeDestroy() {
31984
32046
  if (this.appendToBody && this.$el.parentElement === document.body) {
@@ -31986,10 +32048,74 @@ const FRAME_SIZE = 512;
31986
32048
  }
31987
32049
  this.closeWebSocket();
31988
32050
  this.stopRecording();
32051
+
32052
+ // 移除全局事件监听器
32053
+ document.removeEventListener('mousemove', this.onDrag);
32054
+ document.removeEventListener('mouseup', this.stopDrag);
31989
32055
  },
31990
32056
  methods: {
31991
32057
  toggleWindow() {
31992
32058
  this.visible = !this.visible;
32059
+ if (this.visible) {
32060
+ this.currentX = this.initialX;
32061
+ this.currentY = this.initialY;
32062
+ }
32063
+ },
32064
+ startDrag() {
32065
+ console.log('startDrag');
32066
+ if (this.robotStatus !== 'leaving' && this.visible) return;
32067
+ this.isDragging = true;
32068
+ this.hasMoved = false;
32069
+
32070
+ // 记录鼠标的初始位置
32071
+ this.dragStartX = event.clientX;
32072
+ this.dragStartY = event.clientY;
32073
+
32074
+ // 绑定全局事件监听器
32075
+ document.addEventListener('mousemove', this.onDrag);
32076
+ document.addEventListener('mouseup', this.stopDrag);
32077
+ },
32078
+ onDrag(event) {
32079
+ if (!this.isDragging) return;
32080
+
32081
+ // 鼠标位移量
32082
+ const deltaX = event.clientX - this.dragStartX;
32083
+ const deltaY = event.clientY - this.dragStartY;
32084
+ if (Math.abs(deltaX) > this.dragThreshold || Math.abs(deltaY) > this.dragThreshold) {
32085
+ console.log('移动超过阈值');
32086
+ this.hasMoved = true; // 只要移动超过阈值,就标记为拖拽
32087
+ }
32088
+
32089
+ // 获取 .chat 容器的尺寸
32090
+ const chatEl = this.$el;
32091
+ const chatWidth = chatEl.offsetWidth;
32092
+ const chatHeight = chatEl.offsetHeight;
32093
+ let newX = this.currentX - deltaX;
32094
+ let newY = this.currentY - deltaY;
32095
+
32096
+ // 视口宽度和高度
32097
+ const viewportWidth = window.innerWidth;
32098
+ const viewportHeight = window.innerHeight;
32099
+ newX = Math.max(0, newX);
32100
+ newX = Math.min(viewportWidth - chatWidth, newX);
32101
+ newY = Math.max(0, newY);
32102
+ newY = Math.min(viewportHeight - chatHeight, newY);
32103
+
32104
+ // 更新位置
32105
+ this.currentX = newX;
32106
+ this.currentY = newY;
32107
+
32108
+ // 重新设置新的拖拽起始点,实现平滑拖拽
32109
+ this.dragStartX = event.clientX;
32110
+ this.dragStartY = event.clientY;
32111
+ },
32112
+ stopDrag() {
32113
+ this.isDragging = false;
32114
+ document.removeEventListener('mousemove', this.onDrag);
32115
+ document.removeEventListener('mouseup', this.stopDrag);
32116
+ if (!this.hasMoved) {
32117
+ this.toggleWindow();
32118
+ }
31993
32119
  },
31994
32120
  handleThinkingClick() {
31995
32121
  this.thinkStatus = !this.thinkStatus;
@@ -32013,8 +32139,14 @@ const FRAME_SIZE = 512;
32013
32139
  }
32014
32140
  fetch(TIME_JUMP_POINTS_URL).then(response => response.json()).then(data => {
32015
32141
  console.log('时间跳转点:', data);
32142
+ console.log('当前时间:', currentTime);
32016
32143
  data.forEach(point => {
32017
- if (currentTime >= point.time && currentTime < point.time + 0.5 && !this.jumpedTimePoints.has(point.time)) {
32144
+ console.log('跳转点:', point);
32145
+ console.log('跳转时间:', point.time);
32146
+ console.log('当前时间:', currentTime);
32147
+ console.log('是否已跳转:', this.jumpedTimePoints.has(point.time));
32148
+ console.log('跳转时间范围:', currentTime >= point.time && currentTime < point.time + 1);
32149
+ if (currentTime >= point.time && currentTime < point.time + 1 && !this.jumpedTimePoints.has(point.time)) {
32018
32150
  this.jumpedTimePoints.add(point.time);
32019
32151
  this.$appOptions.store.dispatch('tags/addTagview', {
32020
32152
  path: point.url,
@@ -32036,16 +32168,17 @@ const FRAME_SIZE = 512;
32036
32168
  },
32037
32169
  onAudioEnded() {
32038
32170
  this.robotStatus = 'leaving';
32171
+ this.avaterStatus = 'normal';
32039
32172
  this.jumpedTimePoints.clear();
32040
32173
  }
32041
32174
  }
32042
32175
  });
32043
32176
  ;// ./components/ChatWindow.vue?vue&type=script&lang=js
32044
32177
  /* harmony default export */ var components_ChatWindowvue_type_script_lang_js = (ChatWindowvue_type_script_lang_js);
32045
- ;// ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-54.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-54.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-54.use[2]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/ChatWindow.vue?vue&type=style&index=0&id=14ff12bc&prod&scoped=true&lang=css
32178
+ ;// ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-54.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-54.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-54.use[2]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/ChatWindow.vue?vue&type=style&index=0&id=382b928f&prod&scoped=true&lang=css
32046
32179
  // extracted by mini-css-extract-plugin
32047
32180
 
32048
- ;// ./components/ChatWindow.vue?vue&type=style&index=0&id=14ff12bc&prod&scoped=true&lang=css
32181
+ ;// ./components/ChatWindow.vue?vue&type=style&index=0&id=382b928f&prod&scoped=true&lang=css
32049
32182
 
32050
32183
  ;// ./components/ChatWindow.vue
32051
32184
 
@@ -32062,7 +32195,7 @@ var ChatWindow_component = normalizeComponent(
32062
32195
  staticRenderFns,
32063
32196
  false,
32064
32197
  null,
32065
- "14ff12bc",
32198
+ "382b928f",
32066
32199
  null
32067
32200
 
32068
32201
  )