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
@@ -28450,12 +28450,13 @@ if (typeof window !== 'undefined') {
28450
28450
  var es_iterator_constructor = __webpack_require__(8111);
28451
28451
  // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.for-each.js
28452
28452
  var es_iterator_for_each = __webpack_require__(7588);
28453
- ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.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
28453
+ ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.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
28454
28454
  var render = function render() {
28455
28455
  var _vm = this,
28456
28456
  _c = _vm._self._c;
28457
28457
  return _c('div', {
28458
- staticClass: "chat"
28458
+ staticClass: "chat",
28459
+ style: _vm.chatStyle
28459
28460
  }, [_c('audio', {
28460
28461
  ref: "audioPlayer",
28461
28462
  staticClass: "hidden-audio",
@@ -28477,14 +28478,13 @@ var render = function render() {
28477
28478
  "status": _vm.avaterStatus
28478
28479
  },
28479
28480
  on: {
28480
- "click": _vm.toggleWindow
28481
+ "mousedown": _vm.startDrag
28481
28482
  }
28482
28483
  }), _c('ChatWindowDialog', {
28483
28484
  attrs: {
28484
28485
  "messages": _vm.messages,
28485
28486
  "input-message": _vm.inputMessage,
28486
- "think-status": _vm.thinkStatus,
28487
- "loading": _vm.isLoading
28487
+ "think-status": _vm.thinkStatus
28488
28488
  },
28489
28489
  on: {
28490
28490
  "update:inputMessage": function ($event) {
@@ -28521,15 +28521,15 @@ var es_set_is_superset_of_v2 = __webpack_require__(2475);
28521
28521
  var es_set_symmetric_difference_v2 = __webpack_require__(5024);
28522
28522
  // EXTERNAL MODULE: ./node_modules/core-js/modules/es.set.union.v2.js
28523
28523
  var es_set_union_v2 = __webpack_require__(1698);
28524
- ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.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
28525
- var ChatRobotvue_type_template_id_3d936cb2_scoped_true_render = function render() {
28524
+ ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.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
28525
+ var ChatRobotvue_type_template_id_ad4ce922_scoped_true_render = function render() {
28526
28526
  var _vm = this,
28527
28527
  _c = _vm._self._c;
28528
28528
  return _c('div', {
28529
28529
  class: ['chat-robot', _vm.status]
28530
28530
  });
28531
28531
  };
28532
- var ChatRobotvue_type_template_id_3d936cb2_scoped_true_staticRenderFns = [];
28532
+ var ChatRobotvue_type_template_id_ad4ce922_scoped_true_staticRenderFns = [];
28533
28533
 
28534
28534
  ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/ChatRobot.vue?vue&type=script&lang=js
28535
28535
  /* harmony default export */ var ChatRobotvue_type_script_lang_js = ({
@@ -28540,14 +28540,19 @@ var ChatRobotvue_type_template_id_3d936cb2_scoped_true_staticRenderFns = [];
28540
28540
  required: true,
28541
28541
  validator: value => ['entering', 'waiting', 'speaking'].includes(value)
28542
28542
  }
28543
+ },
28544
+ watch: {
28545
+ status(newStatus, oldStatus) {
28546
+ console.log('机器人状态变化:', newStatus, oldStatus);
28547
+ }
28543
28548
  }
28544
28549
  });
28545
28550
  ;// ./components/ChatRobot.vue?vue&type=script&lang=js
28546
28551
  /* harmony default export */ var components_ChatRobotvue_type_script_lang_js = (ChatRobotvue_type_script_lang_js);
28547
- ;// ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-12.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-12.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-12.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
28552
+ ;// ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-12.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-12.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-12.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
28548
28553
  // extracted by mini-css-extract-plugin
28549
28554
 
28550
- ;// ./components/ChatRobot.vue?vue&type=style&index=0&id=3d936cb2&prod&scoped=true&lang=css
28555
+ ;// ./components/ChatRobot.vue?vue&type=style&index=0&id=ad4ce922&prod&scoped=true&lang=css
28551
28556
 
28552
28557
  ;// ./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js
28553
28558
  /* globals __VUE_SSR_CONTEXT__ */
@@ -28658,25 +28663,25 @@ function normalizeComponent(
28658
28663
 
28659
28664
  var component = normalizeComponent(
28660
28665
  components_ChatRobotvue_type_script_lang_js,
28661
- ChatRobotvue_type_template_id_3d936cb2_scoped_true_render,
28662
- ChatRobotvue_type_template_id_3d936cb2_scoped_true_staticRenderFns,
28666
+ ChatRobotvue_type_template_id_ad4ce922_scoped_true_render,
28667
+ ChatRobotvue_type_template_id_ad4ce922_scoped_true_staticRenderFns,
28663
28668
  false,
28664
28669
  null,
28665
- "3d936cb2",
28670
+ "ad4ce922",
28666
28671
  null
28667
28672
 
28668
28673
  )
28669
28674
 
28670
28675
  /* harmony default export */ var ChatRobot = (component.exports);
28671
- ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.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
28672
- var ChatAvatarvue_type_template_id_0c02b1ca_scoped_true_render = function render() {
28676
+ ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.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
28677
+ var ChatAvatarvue_type_template_id_45540794_scoped_true_render = function render() {
28673
28678
  var _vm = this,
28674
28679
  _c = _vm._self._c;
28675
28680
  return _c('div', {
28676
28681
  staticClass: "chat-ai",
28677
28682
  on: {
28678
- "click": function ($event) {
28679
- return _vm.$emit('click');
28683
+ "mousedown": function ($event) {
28684
+ return _vm.$emit('mousedown');
28680
28685
  }
28681
28686
  }
28682
28687
  }, [_c('div', {
@@ -28685,7 +28690,7 @@ var ChatAvatarvue_type_template_id_0c02b1ca_scoped_true_render = function render
28685
28690
  staticClass: "chat-ai-text"
28686
28691
  }, [_vm._v(_vm._s(_vm.statusText))])]);
28687
28692
  };
28688
- var ChatAvatarvue_type_template_id_0c02b1ca_scoped_true_staticRenderFns = [];
28693
+ var ChatAvatarvue_type_template_id_45540794_scoped_true_staticRenderFns = [];
28689
28694
 
28690
28695
  ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/ChatAvatar.vue?vue&type=script&lang=js
28691
28696
  /* harmony default export */ var ChatAvatarvue_type_script_lang_js = ({
@@ -28710,10 +28715,10 @@ var ChatAvatarvue_type_template_id_0c02b1ca_scoped_true_staticRenderFns = [];
28710
28715
  });
28711
28716
  ;// ./components/ChatAvatar.vue?vue&type=script&lang=js
28712
28717
  /* harmony default export */ var components_ChatAvatarvue_type_script_lang_js = (ChatAvatarvue_type_script_lang_js);
28713
- ;// ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-12.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-12.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-12.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
28718
+ ;// ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-12.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-12.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-12.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
28714
28719
  // extracted by mini-css-extract-plugin
28715
28720
 
28716
- ;// ./components/ChatAvatar.vue?vue&type=style&index=0&id=0c02b1ca&prod&scoped=true&lang=css
28721
+ ;// ./components/ChatAvatar.vue?vue&type=style&index=0&id=45540794&prod&scoped=true&lang=css
28717
28722
 
28718
28723
  ;// ./components/ChatAvatar.vue
28719
28724
 
@@ -28726,11 +28731,11 @@ var ChatAvatarvue_type_template_id_0c02b1ca_scoped_true_staticRenderFns = [];
28726
28731
 
28727
28732
  var ChatAvatar_component = normalizeComponent(
28728
28733
  components_ChatAvatarvue_type_script_lang_js,
28729
- ChatAvatarvue_type_template_id_0c02b1ca_scoped_true_render,
28730
- ChatAvatarvue_type_template_id_0c02b1ca_scoped_true_staticRenderFns,
28734
+ ChatAvatarvue_type_template_id_45540794_scoped_true_render,
28735
+ ChatAvatarvue_type_template_id_45540794_scoped_true_staticRenderFns,
28731
28736
  false,
28732
28737
  null,
28733
- "0c02b1ca",
28738
+ "45540794",
28734
28739
  null
28735
28740
 
28736
28741
  )
@@ -28794,8 +28799,8 @@ var ChatWindowDialogvue_type_template_id_1424b8b1_scoped_true_render = function
28794
28799
  };
28795
28800
  var ChatWindowDialogvue_type_template_id_1424b8b1_scoped_true_staticRenderFns = [];
28796
28801
 
28797
- ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.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
28798
- var ChatWindowHeadervue_type_template_id_90ac64ba_scoped_true_render = function render() {
28802
+ ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.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
28803
+ var ChatWindowHeadervue_type_template_id_428ec56e_scoped_true_render = function render() {
28799
28804
  var _vm = this,
28800
28805
  _c = _vm._self._c;
28801
28806
  return _c('div', {
@@ -28880,13 +28885,15 @@ var ChatWindowHeadervue_type_template_id_90ac64ba_scoped_true_render = function
28880
28885
  }
28881
28886
  })])])]);
28882
28887
  };
28883
- var ChatWindowHeadervue_type_template_id_90ac64ba_scoped_true_staticRenderFns = [];
28888
+ var ChatWindowHeadervue_type_template_id_428ec56e_scoped_true_staticRenderFns = [];
28884
28889
 
28885
28890
  ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./components/ChatWindowHeader.vue?vue&type=script&lang=js
28886
28891
  /* harmony default export */ var ChatWindowHeadervue_type_script_lang_js = ({
28887
28892
  name: 'ChatWindowHeader',
28888
28893
  methods: {
28889
28894
  handleOpen() {
28895
+ // const chatId = ''
28896
+ // const baseUrl = window.location.protocol + '//' + window.location.hostname + ':3100/c/' + chatId;
28890
28897
  const baseUrl = window.location.protocol + '//' + window.location.hostname + ':3100/';
28891
28898
  window.open(baseUrl, '_blank');
28892
28899
  }
@@ -28894,10 +28901,10 @@ var ChatWindowHeadervue_type_template_id_90ac64ba_scoped_true_staticRenderFns =
28894
28901
  });
28895
28902
  ;// ./components/ChatWindowHeader.vue?vue&type=script&lang=js
28896
28903
  /* harmony default export */ var components_ChatWindowHeadervue_type_script_lang_js = (ChatWindowHeadervue_type_script_lang_js);
28897
- ;// ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-12.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-12.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-12.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
28904
+ ;// ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-12.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-12.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-12.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
28898
28905
  // extracted by mini-css-extract-plugin
28899
28906
 
28900
- ;// ./components/ChatWindowHeader.vue?vue&type=style&index=0&id=90ac64ba&prod&scoped=true&lang=css
28907
+ ;// ./components/ChatWindowHeader.vue?vue&type=style&index=0&id=428ec56e&prod&scoped=true&lang=css
28901
28908
 
28902
28909
  ;// ./components/ChatWindowHeader.vue
28903
28910
 
@@ -28910,24 +28917,26 @@ var ChatWindowHeadervue_type_template_id_90ac64ba_scoped_true_staticRenderFns =
28910
28917
 
28911
28918
  var ChatWindowHeader_component = normalizeComponent(
28912
28919
  components_ChatWindowHeadervue_type_script_lang_js,
28913
- ChatWindowHeadervue_type_template_id_90ac64ba_scoped_true_render,
28914
- ChatWindowHeadervue_type_template_id_90ac64ba_scoped_true_staticRenderFns,
28920
+ ChatWindowHeadervue_type_template_id_428ec56e_scoped_true_render,
28921
+ ChatWindowHeadervue_type_template_id_428ec56e_scoped_true_staticRenderFns,
28915
28922
  false,
28916
28923
  null,
28917
- "90ac64ba",
28924
+ "428ec56e",
28918
28925
  null
28919
28926
 
28920
28927
  )
28921
28928
 
28922
28929
  /* harmony default export */ var ChatWindowHeader = (ChatWindowHeader_component.exports);
28923
- ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.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
28924
- var ChatMessageListvue_type_template_id_53715846_scoped_true_render = function render() {
28930
+ ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.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
28931
+ var ChatMessageListvue_type_template_id_dfc4454c_scoped_true_render = function render() {
28925
28932
  var _vm = this,
28926
28933
  _c = _vm._self._c;
28927
28934
  return _c('div', {
28928
28935
  ref: "chatArea",
28929
28936
  staticClass: "chat-window-content scrollbar-hide"
28930
- }, _vm._l(_vm.messages, function (message) {
28937
+ }, [_vm.messages.length === 0 ? _c('div', {
28938
+ staticClass: "chat-window-empty"
28939
+ }) : _vm._e(), _vm._l(_vm.messages, function (message) {
28931
28940
  return _c('div', {
28932
28941
  key: message.id,
28933
28942
  staticClass: "chat-window-message"
@@ -28938,18 +28947,17 @@ var ChatMessageListvue_type_template_id_53715846_scoped_true_render = function r
28938
28947
  }) : _c('AiMessage', {
28939
28948
  attrs: {
28940
28949
  "message": message,
28941
- "think-status": _vm.thinkStatus,
28942
- "loading": _vm.isLoading
28950
+ "think-status": _vm.thinkStatus
28943
28951
  },
28944
28952
  on: {
28945
- "thinking-click": function ($event) {
28946
- return _vm.$emit('thinking-click');
28953
+ "thinking-toggle": function ($event) {
28954
+ return _vm.handleThinkingToggle(message);
28947
28955
  }
28948
28956
  }
28949
28957
  })], 1);
28950
- }), 0);
28958
+ })], 2);
28951
28959
  };
28952
- var ChatMessageListvue_type_template_id_53715846_scoped_true_staticRenderFns = [];
28960
+ var ChatMessageListvue_type_template_id_dfc4454c_scoped_true_staticRenderFns = [];
28953
28961
 
28954
28962
  ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.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
28955
28963
  var UserMessagevue_type_template_id_6a2b6167_scoped_true_render = function render() {
@@ -29001,15 +29009,15 @@ var UserMessage_component = normalizeComponent(
29001
29009
  )
29002
29010
 
29003
29011
  /* harmony default export */ var UserMessage = (UserMessage_component.exports);
29004
- ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.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
29005
- var AiMessagevue_type_template_id_a8b0fba0_scoped_true_render = function render() {
29012
+ ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.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
29013
+ var AiMessagevue_type_template_id_6e022f2c_scoped_true_render = function render() {
29006
29014
  var _vm = this,
29007
29015
  _c = _vm._self._c;
29008
29016
  return _c('div', {
29009
29017
  staticClass: "chat-window-message-ai"
29010
29018
  }, [_c('div', {
29011
29019
  staticClass: "ai-render"
29012
- }, [_vm.loading ? _c('div', {
29020
+ }, [_vm.isLoading ? _c('div', {
29013
29021
  staticClass: "ai-loading"
29014
29022
  }, [_c('div', {
29015
29023
  staticClass: "dot"
@@ -29021,12 +29029,12 @@ var AiMessagevue_type_template_id_a8b0fba0_scoped_true_render = function render(
29021
29029
  staticClass: "ai-thinking",
29022
29030
  on: {
29023
29031
  "click": function ($event) {
29024
- return _vm.$emit('thinking-click');
29032
+ return _vm.$emit('thinking-toggle');
29025
29033
  }
29026
29034
  }
29027
29035
  }, [_c('div', {
29028
29036
  staticClass: "ai-thinking-time"
29029
- }, [_vm._v("思考用时" + _vm._s(_vm.message.time) + "秒")]), _vm.thinkStatus ? _c('div', {
29037
+ }, [_vm._v(_vm._s(_vm.message.time ? `思考用时${_vm.message.time}秒` : '思考中...'))]), _vm.thinkingExpanded ? _c('div', {
29030
29038
  staticClass: "ai-thinking-content"
29031
29039
  }, [_vm._v(_vm._s(_vm.message.thinking))]) : _vm._e()]) : _vm._e(), _c('div', {
29032
29040
  staticClass: "ai-content markdown-body",
@@ -29035,7 +29043,7 @@ var AiMessagevue_type_template_id_a8b0fba0_scoped_true_render = function render(
29035
29043
  }
29036
29044
  })])]);
29037
29045
  };
29038
- var AiMessagevue_type_template_id_a8b0fba0_scoped_true_staticRenderFns = [];
29046
+ var AiMessagevue_type_template_id_6e022f2c_scoped_true_staticRenderFns = [];
29039
29047
 
29040
29048
  // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.filter.js
29041
29049
  var es_iterator_filter = __webpack_require__(2489);
@@ -30846,13 +30854,20 @@ function parseMarkdown(text) {
30846
30854
  html = html.replace(/(<li>.*?<\/li>)/gs, '<ul>$1</ul>');
30847
30855
  html = html.replace(/^\s*\d+\.\s+(.+)$/gm, '<li>$1</li>');
30848
30856
  html = html.replace(/^>\s+(.+)$/gm, '<blockquote>$1</blockquote>');
30857
+ // 解析Markdown链接
30849
30858
  html = html.replace(/\[([^\]]+)\]\(([^)]+)\)/g, '<a href="$2" target="_blank">$1</a>');
30850
30859
  html = html.replace(/!\[([^\]]*)\]\(([^)]+)\)/g, '<img src="$2" alt="$1" />');
30851
30860
  html = html.replace(/^-{3,}$/gm, '<hr>');
30852
- html = html.replace(/\n/g, '<br>');
30861
+ // 解析简单URL
30862
+ const simpleUrlRegex = /(https?:\/\/[^\s<>"']+)/g;
30863
+ html = html.replace(simpleUrlRegex, match => {
30864
+ return `<a href="${match}" aria-current="page">${match}</a>`;
30865
+ });
30866
+
30867
+ // html = html.replace(/\n/g, '<br>');
30868
+
30853
30869
  return html;
30854
30870
  }
30855
-
30856
30871
  // 解析表格
30857
30872
  function parseTable(text) {
30858
30873
  const lines = text.split('\n');
@@ -30889,7 +30904,6 @@ function parseTable(text) {
30889
30904
  }
30890
30905
  return result.join('\n');
30891
30906
  }
30892
-
30893
30907
  // 渲染表格
30894
30908
  function renderTable(rows) {
30895
30909
  if (rows.length < 2) return rows.join('\n');
@@ -30910,7 +30924,7 @@ function renderTable(rows) {
30910
30924
  if (cells.length > 0) {
30911
30925
  html += '<tr>';
30912
30926
  cells.forEach(cell => {
30913
- html += `<td>${cell.trim()}</td>`;
30927
+ html += `<td><div class="table-cell">${cell.trim()}</div></td>`;
30914
30928
  });
30915
30929
  html += '</tr>';
30916
30930
  }
@@ -30919,7 +30933,6 @@ function renderTable(rows) {
30919
30933
  html += '</table></div>';
30920
30934
  return html;
30921
30935
  }
30922
-
30923
30936
  // HTML 转义
30924
30937
  function escapeHtml(text) {
30925
30938
  const map = {
@@ -30937,19 +30950,17 @@ function escapeHtml(text) {
30937
30950
  message: {
30938
30951
  type: Object,
30939
30952
  required: true
30940
- },
30941
- thinkStatus: {
30942
- type: Boolean,
30943
- default: true
30944
- },
30945
- loading: {
30946
- type: Boolean,
30947
- default: false
30948
30953
  }
30949
30954
  },
30950
30955
  computed: {
30956
+ thinkingExpanded() {
30957
+ return this.message.thinkingExpanded !== false;
30958
+ },
30951
30959
  renderedContent() {
30952
30960
  return parseMarkdown(this.message.content);
30961
+ },
30962
+ isLoading() {
30963
+ return this.message.loading === true;
30953
30964
  }
30954
30965
  },
30955
30966
  watch: {
@@ -30960,10 +30971,10 @@ function escapeHtml(text) {
30960
30971
  });
30961
30972
  ;// ./components/AiMessage.vue?vue&type=script&lang=js
30962
30973
  /* harmony default export */ var components_AiMessagevue_type_script_lang_js = (AiMessagevue_type_script_lang_js);
30963
- ;// ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-12.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-12.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-12.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
30974
+ ;// ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-12.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-12.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-12.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
30964
30975
  // extracted by mini-css-extract-plugin
30965
30976
 
30966
- ;// ./components/AiMessage.vue?vue&type=style&index=0&id=a8b0fba0&prod&scoped=true&lang=css
30977
+ ;// ./components/AiMessage.vue?vue&type=style&index=0&id=6e022f2c&prod&scoped=true&lang=css
30967
30978
 
30968
30979
  ;// ./components/AiMessage.vue
30969
30980
 
@@ -30976,11 +30987,11 @@ function escapeHtml(text) {
30976
30987
 
30977
30988
  var AiMessage_component = normalizeComponent(
30978
30989
  components_AiMessagevue_type_script_lang_js,
30979
- AiMessagevue_type_template_id_a8b0fba0_scoped_true_render,
30980
- AiMessagevue_type_template_id_a8b0fba0_scoped_true_staticRenderFns,
30990
+ AiMessagevue_type_template_id_6e022f2c_scoped_true_render,
30991
+ AiMessagevue_type_template_id_6e022f2c_scoped_true_staticRenderFns,
30981
30992
  false,
30982
30993
  null,
30983
- "a8b0fba0",
30994
+ "6e022f2c",
30984
30995
  null
30985
30996
 
30986
30997
  )
@@ -31003,13 +31014,22 @@ var AiMessage_component = normalizeComponent(
31003
31014
  thinkStatus: {
31004
31015
  type: Boolean,
31005
31016
  default: true
31006
- },
31007
- isLoading: {
31008
- type: Boolean,
31009
- default: false
31017
+ }
31018
+ },
31019
+ computed: {
31020
+ lastMessageObject() {
31021
+ const len = this.messages.length;
31022
+ if (len === 0) {
31023
+ return null;
31024
+ }
31025
+ return this.messages[len - 1];
31010
31026
  }
31011
31027
  },
31012
31028
  methods: {
31029
+ handleThinkingToggle(message) {
31030
+ console.log('handleThinkingToggle', message);
31031
+ this.$set(message, 'thinkingExpanded', !message.thinkingExpanded);
31032
+ },
31013
31033
  scrollToBottom() {
31014
31034
  this.$nextTick(() => {
31015
31035
  const chatArea = this.$refs.chatArea;
@@ -31020,20 +31040,23 @@ var AiMessage_component = normalizeComponent(
31020
31040
  }
31021
31041
  },
31022
31042
  watch: {
31023
- messages: {
31024
- handler() {
31025
- this.scrollToBottom();
31043
+ lastMessageObject: {
31044
+ handler(newMsg) {
31045
+ if (newMsg) {
31046
+ this.scrollToBottom();
31047
+ }
31026
31048
  },
31027
- deep: true
31049
+ deep: true,
31050
+ immediate: true
31028
31051
  }
31029
31052
  }
31030
31053
  });
31031
31054
  ;// ./components/ChatMessageList.vue?vue&type=script&lang=js
31032
31055
  /* harmony default export */ var components_ChatMessageListvue_type_script_lang_js = (ChatMessageListvue_type_script_lang_js);
31033
- ;// ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-12.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-12.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-12.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
31056
+ ;// ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-12.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-12.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-12.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
31034
31057
  // extracted by mini-css-extract-plugin
31035
31058
 
31036
- ;// ./components/ChatMessageList.vue?vue&type=style&index=0&id=53715846&prod&scoped=true&lang=css
31059
+ ;// ./components/ChatMessageList.vue?vue&type=style&index=0&id=dfc4454c&prod&scoped=true&lang=css
31037
31060
 
31038
31061
  ;// ./components/ChatMessageList.vue
31039
31062
 
@@ -31046,11 +31069,11 @@ var AiMessage_component = normalizeComponent(
31046
31069
 
31047
31070
  var ChatMessageList_component = normalizeComponent(
31048
31071
  components_ChatMessageListvue_type_script_lang_js,
31049
- ChatMessageListvue_type_template_id_53715846_scoped_true_render,
31050
- ChatMessageListvue_type_template_id_53715846_scoped_true_staticRenderFns,
31072
+ ChatMessageListvue_type_template_id_dfc4454c_scoped_true_render,
31073
+ ChatMessageListvue_type_template_id_dfc4454c_scoped_true_staticRenderFns,
31051
31074
  false,
31052
31075
  null,
31053
- "53715846",
31076
+ "dfc4454c",
31054
31077
  null
31055
31078
 
31056
31079
  )
@@ -31366,6 +31389,9 @@ var es_typed_array_with = __webpack_require__(9577);
31366
31389
  }
31367
31390
  });
31368
31391
  ;// ./components/config/index.js
31392
+ const baseUrl = window.location.protocol + '//' + window.location.hostname;
31393
+ const chatPort = '3100';
31394
+ console.log(baseUrl, chatPort);
31369
31395
  const API_URL = 'http://192.168.8.87:3100/lingxiao-byt/api/v1/mcp/ask';
31370
31396
  const WS_URL = 'ws://192.168.8.9:9999/ai_model/ws/voice-stream';
31371
31397
  const AUDIO_URL = '/minio/lingxiaoai/byt.mp3';
@@ -31757,8 +31783,7 @@ class StreamParser {
31757
31783
  /* harmony default export */ var messageMixin = ({
31758
31784
  data() {
31759
31785
  return {
31760
- streamParser: null,
31761
- isLoading: false
31786
+ streamParser: null
31762
31787
  };
31763
31788
  },
31764
31789
  created() {
@@ -31768,7 +31793,6 @@ class StreamParser {
31768
31793
  // 约60fps
31769
31794
  debug: "production" === 'development'
31770
31795
  });
31771
- this.isLoading = true;
31772
31796
  },
31773
31797
  methods: {
31774
31798
  createAiMessage() {
@@ -31779,7 +31803,9 @@ class StreamParser {
31779
31803
  time: '',
31780
31804
  thinking: '',
31781
31805
  charts: [],
31782
- content: ''
31806
+ content: '',
31807
+ loading: true,
31808
+ thinkingExpanded: true
31783
31809
  };
31784
31810
  this.messages.push(message);
31785
31811
  this.currentMessage = message;
@@ -31842,14 +31868,17 @@ class StreamParser {
31842
31868
  }
31843
31869
  console.log(`流处理完成,总耗时: ${duration}ms`);
31844
31870
  this.avaterStatus = 'normal';
31845
- this.isLoading = false;
31846
31871
  } catch (error) {
31847
31872
  console.error('发送消息失败:', error);
31848
31873
  if (this.currentMessage) {
31849
31874
  this.currentMessage.content = '抱歉,发生了错误,请重试。';
31850
31875
  this.$forceUpdate();
31851
31876
  }
31852
- this.isLoading = false;
31877
+ } finally {
31878
+ // 确保加载状态关闭
31879
+ if (this.currentMessage) {
31880
+ this.currentMessage.loading = false;
31881
+ }
31853
31882
  }
31854
31883
  },
31855
31884
  /**
@@ -31886,7 +31915,9 @@ class StreamParser {
31886
31915
  handleStreamUpdate(result) {
31887
31916
  if (!this.currentMessage) return;
31888
31917
  console.log('收到更新:', result);
31889
-
31918
+ if (this.currentMessage.loading) {
31919
+ this.currentMessage.loading = false;
31920
+ }
31890
31921
  // 更新思考内容
31891
31922
  if (result.thinking) {
31892
31923
  this.currentMessage.thinking += result.thinking;
@@ -31961,14 +31992,45 @@ const FRAME_SIZE = 512;
31961
31992
  thinkStatus: true,
31962
31993
  jumpedTimePoints: new Set(),
31963
31994
  SAMPLE_RATE,
31964
- FRAME_SIZE
31995
+ FRAME_SIZE,
31996
+ dragThreshold: 5,
31997
+ // 拖拽阈值
31998
+ isDragging: false,
31999
+ dragStartX: 0,
32000
+ dragStartY: 0,
32001
+ currentX: 10,
32002
+ currentY: 20,
32003
+ initialX: 10,
32004
+ initialY: 20,
32005
+ hasMoved: false
31965
32006
  };
31966
32007
  },
32008
+ computed: {
32009
+ chatStyle() {
32010
+ if (this.robotStatus === 'leaving' && !this.visible) {
32011
+ return {
32012
+ right: `${this.currentX}px`,
32013
+ bottom: `${this.currentY}px`,
32014
+ cursor: this.isDragging ? 'grabbing' : 'grab',
32015
+ transition: this.isDragging ? 'none' : 'right 0.3s ease, bottom 0.3s ease'
32016
+ };
32017
+ }
32018
+ return {
32019
+ cursor: 'pointer'
32020
+ };
32021
+ }
32022
+ },
31967
32023
  mounted() {
31968
32024
  this.initWebSocket();
31969
32025
  if (this.appendToBody) {
31970
32026
  this.appendToBodyHandler();
31971
32027
  }
32028
+ this.$nextTick(() => {
32029
+ const chatEl = this.$el;
32030
+ const style = window.getComputedStyle(chatEl);
32031
+ this.initialX = this.currentX = parseInt(style.right, 10) || 10;
32032
+ this.initialY = this.currentY = parseInt(style.bottom, 10) || 20;
32033
+ });
31972
32034
  },
31973
32035
  beforeDestroy() {
31974
32036
  if (this.appendToBody && this.$el.parentElement === document.body) {
@@ -31976,10 +32038,74 @@ const FRAME_SIZE = 512;
31976
32038
  }
31977
32039
  this.closeWebSocket();
31978
32040
  this.stopRecording();
32041
+
32042
+ // 移除全局事件监听器
32043
+ document.removeEventListener('mousemove', this.onDrag);
32044
+ document.removeEventListener('mouseup', this.stopDrag);
31979
32045
  },
31980
32046
  methods: {
31981
32047
  toggleWindow() {
31982
32048
  this.visible = !this.visible;
32049
+ if (this.visible) {
32050
+ this.currentX = this.initialX;
32051
+ this.currentY = this.initialY;
32052
+ }
32053
+ },
32054
+ startDrag() {
32055
+ console.log('startDrag');
32056
+ if (this.robotStatus !== 'leaving' && this.visible) return;
32057
+ this.isDragging = true;
32058
+ this.hasMoved = false;
32059
+
32060
+ // 记录鼠标的初始位置
32061
+ this.dragStartX = event.clientX;
32062
+ this.dragStartY = event.clientY;
32063
+
32064
+ // 绑定全局事件监听器
32065
+ document.addEventListener('mousemove', this.onDrag);
32066
+ document.addEventListener('mouseup', this.stopDrag);
32067
+ },
32068
+ onDrag(event) {
32069
+ if (!this.isDragging) return;
32070
+
32071
+ // 鼠标位移量
32072
+ const deltaX = event.clientX - this.dragStartX;
32073
+ const deltaY = event.clientY - this.dragStartY;
32074
+ if (Math.abs(deltaX) > this.dragThreshold || Math.abs(deltaY) > this.dragThreshold) {
32075
+ console.log('移动超过阈值');
32076
+ this.hasMoved = true; // 只要移动超过阈值,就标记为拖拽
32077
+ }
32078
+
32079
+ // 获取 .chat 容器的尺寸
32080
+ const chatEl = this.$el;
32081
+ const chatWidth = chatEl.offsetWidth;
32082
+ const chatHeight = chatEl.offsetHeight;
32083
+ let newX = this.currentX - deltaX;
32084
+ let newY = this.currentY - deltaY;
32085
+
32086
+ // 视口宽度和高度
32087
+ const viewportWidth = window.innerWidth;
32088
+ const viewportHeight = window.innerHeight;
32089
+ newX = Math.max(0, newX);
32090
+ newX = Math.min(viewportWidth - chatWidth, newX);
32091
+ newY = Math.max(0, newY);
32092
+ newY = Math.min(viewportHeight - chatHeight, newY);
32093
+
32094
+ // 更新位置
32095
+ this.currentX = newX;
32096
+ this.currentY = newY;
32097
+
32098
+ // 重新设置新的拖拽起始点,实现平滑拖拽
32099
+ this.dragStartX = event.clientX;
32100
+ this.dragStartY = event.clientY;
32101
+ },
32102
+ stopDrag() {
32103
+ this.isDragging = false;
32104
+ document.removeEventListener('mousemove', this.onDrag);
32105
+ document.removeEventListener('mouseup', this.stopDrag);
32106
+ if (!this.hasMoved) {
32107
+ this.toggleWindow();
32108
+ }
31983
32109
  },
31984
32110
  handleThinkingClick() {
31985
32111
  this.thinkStatus = !this.thinkStatus;
@@ -32003,8 +32129,14 @@ const FRAME_SIZE = 512;
32003
32129
  }
32004
32130
  fetch(TIME_JUMP_POINTS_URL).then(response => response.json()).then(data => {
32005
32131
  console.log('时间跳转点:', data);
32132
+ console.log('当前时间:', currentTime);
32006
32133
  data.forEach(point => {
32007
- if (currentTime >= point.time && currentTime < point.time + 0.5 && !this.jumpedTimePoints.has(point.time)) {
32134
+ console.log('跳转点:', point);
32135
+ console.log('跳转时间:', point.time);
32136
+ console.log('当前时间:', currentTime);
32137
+ console.log('是否已跳转:', this.jumpedTimePoints.has(point.time));
32138
+ console.log('跳转时间范围:', currentTime >= point.time && currentTime < point.time + 1);
32139
+ if (currentTime >= point.time && currentTime < point.time + 1 && !this.jumpedTimePoints.has(point.time)) {
32008
32140
  this.jumpedTimePoints.add(point.time);
32009
32141
  this.$appOptions.store.dispatch('tags/addTagview', {
32010
32142
  path: point.url,
@@ -32026,16 +32158,17 @@ const FRAME_SIZE = 512;
32026
32158
  },
32027
32159
  onAudioEnded() {
32028
32160
  this.robotStatus = 'leaving';
32161
+ this.avaterStatus = 'normal';
32029
32162
  this.jumpedTimePoints.clear();
32030
32163
  }
32031
32164
  }
32032
32165
  });
32033
32166
  ;// ./components/ChatWindow.vue?vue&type=script&lang=js
32034
32167
  /* harmony default export */ var components_ChatWindowvue_type_script_lang_js = (ChatWindowvue_type_script_lang_js);
32035
- ;// ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-12.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-12.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-12.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
32168
+ ;// ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-12.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-12.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-12.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
32036
32169
  // extracted by mini-css-extract-plugin
32037
32170
 
32038
- ;// ./components/ChatWindow.vue?vue&type=style&index=0&id=14ff12bc&prod&scoped=true&lang=css
32171
+ ;// ./components/ChatWindow.vue?vue&type=style&index=0&id=382b928f&prod&scoped=true&lang=css
32039
32172
 
32040
32173
  ;// ./components/ChatWindow.vue
32041
32174
 
@@ -32052,7 +32185,7 @@ var ChatWindow_component = normalizeComponent(
32052
32185
  staticRenderFns,
32053
32186
  false,
32054
32187
  null,
32055
- "14ff12bc",
32188
+ "382b928f",
32056
32189
  null
32057
32190
 
32058
32191
  )