@blueking/ai-ui-sdk 0.0.15-beta.3 → 0.0.15-beta.31

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 (89) hide show
  1. package/dist/assets/images/ai.png +0 -0
  2. package/dist/assets/images/user.png +0 -0
  3. package/dist/assets/svg/picture-fail.svg +1 -0
  4. package/dist/common/util.d.ts +10 -0
  5. package/dist/common/util.js +34 -0
  6. package/dist/component/render-image/index.script.vue.js +37 -0
  7. package/dist/component/render-image/index.vue.d.ts +6 -0
  8. package/dist/component/render-image/index.vue.js +3 -0
  9. package/dist/component/render-input/index.script.vue.js +210 -0
  10. package/dist/component/render-input/index.vue.css +124 -0
  11. package/dist/component/render-input/index.vue.d.ts +20 -0
  12. package/dist/component/render-input/index.vue.js +5 -0
  13. package/dist/component/render-input/render-drag.script.vue.js +61 -0
  14. package/dist/component/render-input/render-drag.vue.css +28 -0
  15. package/dist/component/render-input/render-drag.vue.d.ts +13 -0
  16. package/dist/component/render-input/render-drag.vue.js +5 -0
  17. package/dist/component/render-input/render-quill.script.vue.js +197 -0
  18. package/dist/component/render-input/render-quill.vue.css +27 -0
  19. package/dist/component/render-input/render-quill.vue.d.ts +24 -0
  20. package/dist/component/render-input/render-quill.vue.js +4 -0
  21. package/dist/component/render-knowledge-icon/index.script.vue.js +40 -0
  22. package/dist/component/render-knowledge-icon/index.vue.css +4 -0
  23. package/dist/component/render-knowledge-icon/index.vue.d.ts +14 -0
  24. package/dist/component/render-knowledge-icon/index.vue.js +5 -0
  25. package/dist/component/render-markdown/mark-down-code.d.ts +2 -0
  26. package/dist/component/render-markdown/mark-down-code.js +171 -0
  27. package/dist/component/render-markdown/mark-down-emoji.d.ts +2 -0
  28. package/dist/component/render-markdown/mark-down-emoji.js +4 -0
  29. package/dist/component/render-markdown/mark-down.d.ts +74 -0
  30. package/dist/component/render-markdown/mark-down.js +147 -0
  31. package/dist/component/render-markdown/mark-down.postcss.css +129 -0
  32. package/dist/component/render-message/index.d.ts +61 -0
  33. package/dist/component/render-message/index.js +110 -0
  34. package/dist/component/render-message/openai-message.script.vue.js +215 -0
  35. package/dist/component/render-message/openai-message.vue.css +99 -0
  36. package/dist/component/render-message/openai-message.vue.d.ts +15 -0
  37. package/dist/component/render-message/openai-message.vue.js +5 -0
  38. package/dist/component/render-message/skeleton-message.script.vue.js +7 -0
  39. package/dist/component/render-message/skeleton-message.vue.css +7 -0
  40. package/dist/component/render-message/skeleton-message.vue.d.ts +2 -0
  41. package/dist/component/render-message/skeleton-message.vue.js +6 -0
  42. package/dist/component/render-message/system-message.script.vue.js +17 -0
  43. package/dist/component/render-message/system-message.vue.css +18 -0
  44. package/dist/component/render-message/system-message.vue.d.ts +6 -0
  45. package/dist/component/render-message/system-message.vue.js +5 -0
  46. package/dist/component/render-message/time-message.script.vue.js +41 -0
  47. package/dist/component/render-message/time-message.vue.css +14 -0
  48. package/dist/component/render-message/time-message.vue.d.ts +6 -0
  49. package/dist/component/render-message/time-message.vue.js +5 -0
  50. package/dist/component/render-message/token-expired-message.script.vue.js +78 -0
  51. package/dist/component/render-message/token-expired-message.vue.css +56 -0
  52. package/dist/component/render-message/token-expired-message.vue.d.ts +15 -0
  53. package/dist/component/render-message/token-expired-message.vue.js +5 -0
  54. package/dist/component/render-message/user-message.script.vue.js +230 -0
  55. package/dist/component/render-message/user-message.vue.css +90 -0
  56. package/dist/component/render-message/user-message.vue.d.ts +21 -0
  57. package/dist/component/render-message/user-message.vue.js +5 -0
  58. package/dist/component/render-stop/index.script.vue.js +24 -0
  59. package/dist/component/render-stop/index.vue.css +18 -0
  60. package/dist/component/render-stop/index.vue.d.ts +6 -0
  61. package/dist/component/render-stop/index.vue.js +5 -0
  62. package/dist/component.d.ts +5 -0
  63. package/dist/component.js +6 -0
  64. package/dist/css/fonts/iconcool.eot +0 -0
  65. package/dist/css/fonts/iconcool.svg +30 -0
  66. package/dist/css/fonts/iconcool.ttf +0 -0
  67. package/dist/css/fonts/iconcool.woff +0 -0
  68. package/dist/css/iconcool.js +1 -1
  69. package/dist/css/style.css +34 -4
  70. package/dist/event/index.js +2 -1
  71. package/dist/hooks/use-chat.d.ts +8 -8
  72. package/dist/hooks/use-chat.js +88 -51
  73. package/dist/hooks/use-click-proxy.js +1 -1
  74. package/dist/hooks/use-http.d.ts +1 -0
  75. package/dist/hooks/use-http.js +4 -0
  76. package/dist/hooks/use-mouse-drag.d.ts +13 -0
  77. package/dist/hooks/use-mouse-drag.js +59 -0
  78. package/dist/hooks/use-reference-doc.js +4 -4
  79. package/dist/http/fetch/error-interceptor.js +23 -2
  80. package/dist/http/fetch/index.js +5 -6
  81. package/dist/http/helper/agent.d.ts +7 -0
  82. package/dist/http/helper/agent.js +10 -0
  83. package/dist/http/helper/session.js +1 -1
  84. package/dist/types/agent.d.ts +12 -0
  85. package/dist/types/enum.d.ts +6 -1
  86. package/dist/types/enum.js +7 -1
  87. package/dist/types/model.d.ts +14 -0
  88. package/dist/types/session.d.ts +4 -2
  89. package/package.json +25 -5
@@ -0,0 +1,147 @@
1
+ function _define_property(obj, key, value) {
2
+ if (key in obj) {
3
+ Object.defineProperty(obj, key, {
4
+ value: value,
5
+ enumerable: true,
6
+ configurable: true,
7
+ writable: true
8
+ });
9
+ } else {
10
+ obj[key] = value;
11
+ }
12
+ return obj;
13
+ }
14
+ function _object_spread(target) {
15
+ for(var i = 1; i < arguments.length; i++){
16
+ var source = arguments[i] != null ? arguments[i] : {};
17
+ var ownKeys = Object.keys(source);
18
+ if (typeof Object.getOwnPropertySymbols === "function") {
19
+ ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
20
+ return Object.getOwnPropertyDescriptor(source, sym).enumerable;
21
+ }));
22
+ }
23
+ ownKeys.forEach(function(key) {
24
+ _define_property(target, key, source[key]);
25
+ });
26
+ }
27
+ return target;
28
+ }
29
+ function ownKeys(object, enumerableOnly) {
30
+ var keys = Object.keys(object);
31
+ if (Object.getOwnPropertySymbols) {
32
+ var symbols = Object.getOwnPropertySymbols(object);
33
+ if (enumerableOnly) {
34
+ symbols = symbols.filter(function(sym) {
35
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
36
+ });
37
+ }
38
+ keys.push.apply(keys, symbols);
39
+ }
40
+ return keys;
41
+ }
42
+ function _object_spread_props(target, source) {
43
+ source = source != null ? source : {};
44
+ if (Object.getOwnPropertyDescriptors) {
45
+ Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
46
+ } else {
47
+ ownKeys(Object(source)).forEach(function(key) {
48
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
49
+ });
50
+ }
51
+ return target;
52
+ }
53
+ import { defineComponent, h } from 'vue';
54
+ import Mavon from 'x-mavon-editor';
55
+ import { MarkDownCodePlugin } from './mark-down-code.js';
56
+ import { MarkDownEmojiPlugin } from './mark-down-emoji.js';
57
+ import 'x-mavon-editor/dist/css/index.css';
58
+ import 'x-mavon-editor/dist/markdown/github-markdown.min.css';
59
+ import 'x-mavon-editor/dist/highlightjs/styles/atom-one-dark.min.css';
60
+ import 'x-mavon-editor/dist/highlightjs/highlight.min.js';
61
+ import 'x-mavon-editor/dist/highlightjs/languages/javascript.min.js';
62
+ import 'x-mavon-editor/dist/highlightjs/languages/css.min.js';
63
+ import 'x-mavon-editor/dist/highlightjs/languages/python.min.js';
64
+ import 'x-mavon-editor/dist/highlightjs/languages/java.min.js';
65
+ import 'x-mavon-editor/dist/highlightjs/languages/php.min.js';
66
+ import 'x-mavon-editor/dist/highlightjs/languages/ruby.min.js';
67
+ import 'x-mavon-editor/dist/highlightjs/languages/swift.min.js';
68
+ import 'x-mavon-editor/dist/highlightjs/languages/go.min.js';
69
+ import 'x-mavon-editor/dist/highlightjs/languages/perl.min.js';
70
+ import 'x-mavon-editor/dist/highlightjs/languages/sql.min.js';
71
+ import 'x-mavon-editor/dist/highlightjs/languages/xml.min.js';
72
+ import 'x-mavon-editor/dist/highlightjs/languages/json.min.js';
73
+ import 'x-mavon-editor/dist/highlightjs/languages/typescript.min.js';
74
+ import 'x-mavon-editor/dist/highlightjs/languages/bash.min.js';
75
+ import 'x-mavon-editor/dist/highlightjs/languages/markdown.min.js';
76
+ import 'x-mavon-editor/dist/katex/katex.min.css';
77
+ import 'x-mavon-editor/dist/katex/katex.min.js';
78
+ import './mark-down.postcss.css';
79
+ const defaultMDProps = {
80
+ defaultOpen: 'preview',
81
+ editable: false,
82
+ subfield: false,
83
+ toolbarsFlag: false,
84
+ boxShadow: false,
85
+ xssOptions: {
86
+ whiteList: {
87
+ a: [
88
+ 'href',
89
+ 'target',
90
+ 'class',
91
+ 'title'
92
+ ],
93
+ section: [
94
+ 'class'
95
+ ],
96
+ i: [
97
+ 'class'
98
+ ],
99
+ span: [
100
+ 'class'
101
+ ],
102
+ svg: [
103
+ 'class'
104
+ ],
105
+ use: [
106
+ 'href'
107
+ ],
108
+ ul: [
109
+ 'class'
110
+ ],
111
+ li: [
112
+ 'class',
113
+ 'title'
114
+ ]
115
+ }
116
+ }
117
+ };
118
+ export default defineComponent({
119
+ props: {
120
+ value: {
121
+ type: String
122
+ },
123
+ isCode: {
124
+ type: Boolean,
125
+ default: false
126
+ },
127
+ previewBackground: {
128
+ type: String,
129
+ default: '#fff'
130
+ }
131
+ },
132
+ setup (props) {
133
+ const mdRef = (md)=>{
134
+ if (!md) return;
135
+ // 注册代码块插件
136
+ MarkDownCodePlugin(md.markdownIt);
137
+ // 注册表情插件
138
+ MarkDownEmojiPlugin(md.markdownIt);
139
+ };
140
+ return ()=>h(Mavon.mavonEditor, _object_spread_props(_object_spread({}, defaultMDProps), {
141
+ previewBackground: props.previewBackground,
142
+ modelValue: props.value,
143
+ codeStyle: 'atom-one-dark',
144
+ ref: mdRef
145
+ }));
146
+ }
147
+ });
@@ -0,0 +1,129 @@
1
+ .v-note-wrapper.markdown-body {
2
+ border: none !important;
3
+ min-height: auto;
4
+ background: transparent;
5
+ }
6
+
7
+ .v-show-content {
8
+ height: auto !important;
9
+ font-size: 14px !important;
10
+ padding: 8px 25px !important;
11
+ min-height: 37px !important;
12
+ }
13
+
14
+ .v-show-content p {
15
+ margin-bottom: 0 !important;
16
+ }
17
+
18
+ .v-show-content p + p {
19
+ margin-top: 16px;
20
+ }
21
+
22
+ .full-screen-wrap.markdown-body .code-header {
23
+ height: 40px;
24
+ justify-content: space-between;
25
+ background: #2e2e2e;
26
+ border-radius: 2px 2px 0 0;
27
+ padding: 0 18px;
28
+ color: #c4c6cc;
29
+ }
30
+
31
+ .full-screen-wrap.markdown-body .code-header .ai-ui-sdk-un-full-screen,
32
+ .full-screen-wrap.markdown-body .code-header .ai-ui-sdk-full-screen,
33
+ .full-screen-wrap.markdown-body .code-header .ai-ui-sdk-copy {
34
+ margin-right: 12px;
35
+ }
36
+
37
+ .full-screen-wrap.markdown-body .code-header .ai-ui-sdk-icon {
38
+ color: #979ba5;
39
+ cursor: pointer;
40
+ }
41
+
42
+ .full-screen-wrap.markdown-body .code-header .ai-ui-sdk-icon:hover {
43
+ color: #3a84ff;
44
+ }
45
+
46
+ .full-screen-wrap.markdown-body .code-header + pre {
47
+ max-height: 500px;
48
+ overflow-y: auto;
49
+ color: #abb2bf !important;
50
+ background: #1a1a1a !important;
51
+ border-radius: 0 0 2px 2px !important;
52
+ font-size: 14px !important;
53
+ padding: 16px;
54
+ line-height: 1.45;
55
+ }
56
+
57
+ .full-screen-wrap.markdown-body .code-header + pre code {
58
+ font-size: 14px !important;
59
+ }
60
+
61
+ .full-screen-wrap.markdown-body .code-header + pre .hljs-comment {
62
+ color: #6a9954;
63
+ font-style: inherit;
64
+ }
65
+
66
+ .full-screen-wrap.markdown-body .code-header + pre .hljs {
67
+ overflow: initial;
68
+ background: #1a1a1a !important;
69
+ }
70
+
71
+ .full-screen-wrap.markdown-body .code-header + pre::-webkit-scrollbar-track {
72
+ background: #2e2e2e;
73
+ border-left: 1px solid #3d3d3d;
74
+ border-top: 1px solid #3d3d3d;
75
+ }
76
+
77
+ .full-screen-wrap.markdown-body .code-header + pre::-webkit-scrollbar {
78
+ width: 14px;
79
+ height: 14px;
80
+ }
81
+
82
+ .full-screen-wrap.markdown-body .code-header + pre::-webkit-scrollbar-corner {
83
+ background: #2e2e2e !important;
84
+ }
85
+
86
+ .full-screen-wrap.markdown-body .code-header + pre::-webkit-scrollbar-thumb {
87
+ height: 5px;
88
+ border-radius: 1px;
89
+ background: rgb(121 121 121 / 40%);
90
+ border: 1px solid #63656e;
91
+ }
92
+
93
+ .full-screen-wrap.markdown-body:not(:first-child) {
94
+ margin-top: 8px !important;
95
+ }
96
+
97
+ .full-screen-wrap.markdown-body:not(:last-child) {
98
+ margin-bottom: 8px !important;
99
+ }
100
+
101
+ .full-screen-wrap.markdown-body.full-screen {
102
+ margin-top: 0 !important;
103
+ }
104
+
105
+ .full-screen-wrap.markdown-body.full-screen .code-header {
106
+ margin: 0;
107
+ }
108
+
109
+ .full-screen-wrap.markdown-body.full-screen pre {
110
+ max-height: calc(100vh - 40px);
111
+ height: calc(100vh - 40px);
112
+ }
113
+
114
+ .full-screen-wrap.markdown-body .full-screen-wrap.full-screen {
115
+ margin-top: 0 !important;
116
+ }
117
+
118
+ .full-screen-wrap.markdown-body .full-screen-wrap.full-screen .code-header {
119
+ margin: 0;
120
+ }
121
+
122
+ .full-screen-wrap.markdown-body .full-screen-wrap.full-screen pre {
123
+ max-height: calc(100vh - 40px);
124
+ height: calc(100vh - 40px);
125
+ }
126
+
127
+ .v-note-img-wrapper {
128
+ display: none !important;
129
+ }
@@ -0,0 +1,61 @@
1
+ import { type PropType } from 'vue';
2
+ import type { ISessionContent, ISession } from '@/types/session';
3
+ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
4
+ sessionContent: {
5
+ type: PropType<ISessionContent>;
6
+ required: true;
7
+ };
8
+ isOperateHistory: {
9
+ type: BooleanConstructor;
10
+ required: true;
11
+ };
12
+ selected: {
13
+ type: BooleanConstructor;
14
+ required: true;
15
+ };
16
+ visible: {
17
+ type: BooleanConstructor;
18
+ required: true;
19
+ };
20
+ sessionLoadingMap: {
21
+ type: PropType<Record<string, boolean>>;
22
+ required: true;
23
+ };
24
+ currentSession: {
25
+ type: PropType<ISession>;
26
+ required: true;
27
+ };
28
+ }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("select" | "modify-session-content" | "clear-session" | "plus-prompt-by-session-content" | "re-generate" | "delete-session-content")[], "select" | "modify-session-content" | "clear-session" | "plus-prompt-by-session-content" | "re-generate" | "delete-session-content", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
29
+ sessionContent: {
30
+ type: PropType<ISessionContent>;
31
+ required: true;
32
+ };
33
+ isOperateHistory: {
34
+ type: BooleanConstructor;
35
+ required: true;
36
+ };
37
+ selected: {
38
+ type: BooleanConstructor;
39
+ required: true;
40
+ };
41
+ visible: {
42
+ type: BooleanConstructor;
43
+ required: true;
44
+ };
45
+ sessionLoadingMap: {
46
+ type: PropType<Record<string, boolean>>;
47
+ required: true;
48
+ };
49
+ currentSession: {
50
+ type: PropType<ISession>;
51
+ required: true;
52
+ };
53
+ }>> & Readonly<{
54
+ onSelect?: ((...args: any[]) => any) | undefined;
55
+ "onModify-session-content"?: ((...args: any[]) => any) | undefined;
56
+ "onClear-session"?: ((...args: any[]) => any) | undefined;
57
+ "onPlus-prompt-by-session-content"?: ((...args: any[]) => any) | undefined;
58
+ "onRe-generate"?: ((...args: any[]) => any) | undefined;
59
+ "onDelete-session-content"?: ((...args: any[]) => any) | undefined;
60
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
61
+ export default _default;
@@ -0,0 +1,110 @@
1
+ import { defineComponent, h } from 'vue';
2
+ import OpenaiMessage from './openai-message.vue.js';
3
+ import SystemMessage from './system-message.vue.js';
4
+ import TimeMessage from './time-message.vue.js';
5
+ import TokenExpiredMessage from './token-expired-message.vue.js';
6
+ import UserMessage from './user-message.vue.js';
7
+ import { SessionContentRole } from '../../types/enum.js';
8
+ export default defineComponent({
9
+ props: {
10
+ sessionContent: {
11
+ type: Object,
12
+ required: true
13
+ },
14
+ isOperateHistory: {
15
+ type: Boolean,
16
+ required: true
17
+ },
18
+ selected: {
19
+ type: Boolean,
20
+ required: true
21
+ },
22
+ visible: {
23
+ type: Boolean,
24
+ required: true
25
+ },
26
+ sessionLoadingMap: {
27
+ type: Object,
28
+ required: true
29
+ },
30
+ currentSession: {
31
+ type: Object,
32
+ required: true
33
+ }
34
+ },
35
+ emits: [
36
+ 'select',
37
+ 'modify-session-content',
38
+ 'clear-session',
39
+ 'plus-prompt-by-session-content',
40
+ 're-generate',
41
+ 'delete-session-content'
42
+ ],
43
+ render () {
44
+ const vm = this;
45
+ const props = {
46
+ sessionContent: vm.sessionContent,
47
+ isOperateHistory: vm.isOperateHistory,
48
+ selected: vm.selected,
49
+ visible: vm.visible,
50
+ sessionLoadingMap: vm.sessionLoadingMap,
51
+ currentSession: vm.currentSession,
52
+ class: vm.$attrs.class,
53
+ onSelect (selected) {
54
+ vm.$emit('select', vm.sessionContent, selected);
55
+ },
56
+ onModifySessionContent (sessionContent) {
57
+ vm.$emit('modify-session-content', sessionContent);
58
+ },
59
+ onClearSession () {
60
+ vm.$emit('clear-session');
61
+ },
62
+ onPlusPromptBySessionContent (sessionContent) {
63
+ vm.$emit('plus-prompt-by-session-content', sessionContent);
64
+ },
65
+ onReGenerate (sessionContent) {
66
+ vm.$emit('re-generate', sessionContent);
67
+ },
68
+ onDeleteSessionContent (sessionContent) {
69
+ vm.$emit('delete-session-content', sessionContent);
70
+ }
71
+ };
72
+ // renders
73
+ const renders = [];
74
+ // 非隐藏的才展示时间
75
+ if (![
76
+ SessionContentRole.Hidden,
77
+ SessionContentRole.HiddenAi,
78
+ SessionContentRole.HiddenGuide,
79
+ SessionContentRole.HiddenRole,
80
+ SessionContentRole.HiddenUser,
81
+ SessionContentRole.TemplateHidden
82
+ ].includes(this.sessionContent.role)) {
83
+ renders.push(h(TimeMessage, props));
84
+ }
85
+ // 接下来展示组件内容
86
+ switch(this.sessionContent.role){
87
+ case SessionContentRole.Ai:
88
+ case SessionContentRole.TemplateAi:
89
+ case SessionContentRole.Guide:
90
+ case SessionContentRole.TemplateGuide:
91
+ case SessionContentRole.Pause:
92
+ renders.push(h(OpenaiMessage, props));
93
+ break;
94
+ case SessionContentRole.System:
95
+ renders.push(h(SystemMessage, props));
96
+ break;
97
+ case SessionContentRole.User:
98
+ case SessionContentRole.TemplateUser:
99
+ case SessionContentRole.Role:
100
+ case SessionContentRole.TemplateRole:
101
+ case SessionContentRole.UserImage:
102
+ renders.push(h(UserMessage, props));
103
+ break;
104
+ case SessionContentRole.TokenExpired:
105
+ renders.push(h(TokenExpiredMessage, props));
106
+ break;
107
+ }
108
+ return renders;
109
+ }
110
+ });
@@ -0,0 +1,215 @@
1
+ function _define_property(obj, key, value) {
2
+ if (key in obj) {
3
+ Object.defineProperty(obj, key, {
4
+ value: value,
5
+ enumerable: true,
6
+ configurable: true,
7
+ writable: true
8
+ });
9
+ } else {
10
+ obj[key] = value;
11
+ }
12
+ return obj;
13
+ }
14
+ function _object_spread(target) {
15
+ for(var i = 1; i < arguments.length; i++){
16
+ var source = arguments[i] != null ? arguments[i] : {};
17
+ var ownKeys = Object.keys(source);
18
+ if (typeof Object.getOwnPropertySymbols === "function") {
19
+ ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
20
+ return Object.getOwnPropertyDescriptor(source, sym).enumerable;
21
+ }));
22
+ }
23
+ ownKeys.forEach(function(key) {
24
+ _define_property(target, key, source[key]);
25
+ });
26
+ }
27
+ return target;
28
+ }
29
+ function ownKeys(object, enumerableOnly) {
30
+ var keys = Object.keys(object);
31
+ if (Object.getOwnPropertySymbols) {
32
+ var symbols = Object.getOwnPropertySymbols(object);
33
+ if (enumerableOnly) {
34
+ symbols = symbols.filter(function(sym) {
35
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
36
+ });
37
+ }
38
+ keys.push.apply(keys, symbols);
39
+ }
40
+ return keys;
41
+ }
42
+ function _object_spread_props(target, source) {
43
+ source = source != null ? source : {};
44
+ if (Object.getOwnPropertyDescriptors) {
45
+ Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
46
+ } else {
47
+ ownKeys(Object(source)).forEach(function(key) {
48
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
49
+ });
50
+ }
51
+ return target;
52
+ }
53
+ import { defineComponent as _defineComponent } from 'vue';
54
+ import { createElementVNode as _createElementVNode, unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, createBlock as _createBlock, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, Fragment as _Fragment, withDirectives as _withDirectives, normalizeClass as _normalizeClass } from "vue";
55
+ import _imports_0 from '../../assets/images/ai.png';
56
+ const _hoisted_1 = {
57
+ class: "ai-message-home g-flex-row"
58
+ };
59
+ const _hoisted_2 = {
60
+ key: 0,
61
+ class: "ai-ui-sdk-icon ai-ui-sdk-warning-circle-fill"
62
+ };
63
+ const _hoisted_3 = {
64
+ key: 1,
65
+ class: "ai-ui-sdk-icon ai-ui-sdk-quanquan"
66
+ };
67
+ const _hoisted_4 = {
68
+ key: 5,
69
+ class: "message-tools g-flex-row"
70
+ };
71
+ const _hoisted_5 = {
72
+ class: "tool-rate g-flex-row"
73
+ };
74
+ const _hoisted_6 = {
75
+ class: "rate-tip"
76
+ };
77
+ const _hoisted_7 = {
78
+ class: "tool-icons g-flex-row"
79
+ };
80
+ import { computed, ref } from 'vue';
81
+ import { bkTooltips as vBkTooltips } from 'bkui-vue';
82
+ import SkeletonMessage from './skeleton-message.vue.js';
83
+ import { handleCopy } from '../../common/util.js';
84
+ import RenderMarkdown from '../render-markdown/mark-down.js';
85
+ import { SessionContentStatus } from '../../types/enum.js';
86
+ export default /*@__PURE__*/ _defineComponent({
87
+ props: {
88
+ sessionContent: {},
89
+ isOperateHistory: {
90
+ type: Boolean
91
+ },
92
+ selected: {
93
+ type: Boolean
94
+ },
95
+ visible: {
96
+ type: Boolean
97
+ }
98
+ },
99
+ emits: [
100
+ "select",
101
+ "modify-session-content"
102
+ ],
103
+ setup (__props, { emit: __emit }) {
104
+ const props = __props;
105
+ const emits = __emit;
106
+ const rateHoverTips = ref('');
107
+ const rateTip = computed(()=>getRateTip(props.sessionContent.rate));
108
+ const getRateTip = (val)=>{
109
+ const tipMap = {
110
+ 1: '1星(很不满意)',
111
+ 2: '2星(不满意)',
112
+ 3: '3星(基本满意)',
113
+ 4: '4星(比较满意)',
114
+ 5: '5星(非常满意)'
115
+ };
116
+ return tipMap[val] || '尚未打分';
117
+ };
118
+ const handleRateChange = (rate)=>{
119
+ const sessionContent = _object_spread_props(_object_spread({}, props.sessionContent), {
120
+ rate
121
+ });
122
+ emits('modify-session-content', sessionContent);
123
+ };
124
+ const handleHoverRateChange = (val)=>{
125
+ rateHoverTips.value = getRateTip(val);
126
+ };
127
+ const handelCheck = (selected)=>{
128
+ emits('select', selected);
129
+ };
130
+ return (_ctx, _cache)=>{
131
+ const _component_bk_checkbox = _resolveComponent("bk-checkbox");
132
+ const _component_bk_rate = _resolveComponent("bk-rate");
133
+ return _openBlock(), _createElementBlock("section", _hoisted_1, [
134
+ _cache[2] || (_cache[2] = _createElementVNode("span", {
135
+ class: "message-photo"
136
+ }, [
137
+ _createElementVNode("img", {
138
+ src: _imports_0
139
+ })
140
+ ], -1 /* HOISTED */ )),
141
+ _cache[3] || (_cache[3] = _createElementVNode("br", null, null, -1 /* HOISTED */ )),
142
+ _ctx.visible ? (_openBlock(), _createElementBlock("p", {
143
+ key: 0,
144
+ class: _normalizeClass([
145
+ 'ai-content',
146
+ _ctx.sessionContent.status
147
+ ]),
148
+ onClick: _cache[1] || (_cache[1] = ($event)=>handelCheck(!_ctx.selected))
149
+ }, [
150
+ _ctx.sessionContent.status === _unref(SessionContentStatus).Fail ? (_openBlock(), _createElementBlock("i", _hoisted_2)) : _createCommentVNode("v-if", true),
151
+ _ctx.sessionContent.status === _unref(SessionContentStatus).Loading ? (_openBlock(), _createElementBlock("i", _hoisted_3)) : _createCommentVNode("v-if", true),
152
+ _ctx.isOperateHistory ? (_openBlock(), _createBlock(_component_bk_checkbox, {
153
+ class: "message-check",
154
+ "model-value": _ctx.selected,
155
+ key: String(_ctx.selected)
156
+ }, null, 8 /* PROPS */ , [
157
+ "model-value"
158
+ ])) : _createCommentVNode("v-if", true),
159
+ [
160
+ _unref(SessionContentStatus).Success,
161
+ _unref(SessionContentStatus).Loading
162
+ ].includes(_ctx.sessionContent.status) ? (_openBlock(), _createBlock(_unref(RenderMarkdown), {
163
+ key: 3,
164
+ value: _ctx.sessionContent.content
165
+ }, null, 8 /* PROPS */ , [
166
+ "value"
167
+ ])) : (_openBlock(), _createElementBlock(_Fragment, {
168
+ key: 4
169
+ }, [
170
+ _createTextVNode(_toDisplayString(_ctx.sessionContent.content), 1 /* TEXT */ )
171
+ ], 64 /* STABLE_FRAGMENT */ )),
172
+ _ctx.sessionContent.status === _unref(SessionContentStatus).Success ? (_openBlock(), _createElementBlock("span", _hoisted_4, [
173
+ _createElementVNode("span", _hoisted_5, [
174
+ _withDirectives((_openBlock(), _createBlock(_component_bk_rate, {
175
+ size: "small",
176
+ key: rateHoverTips.value,
177
+ "model-value": _ctx.sessionContent.rate,
178
+ onChange: handleRateChange,
179
+ onHoverChange: handleHoverRateChange
180
+ }, null, 8 /* PROPS */ , [
181
+ "model-value"
182
+ ])), [
183
+ [
184
+ _unref(vBkTooltips),
185
+ {
186
+ content: rateHoverTips.value,
187
+ placement: 'top'
188
+ }
189
+ ]
190
+ ]),
191
+ _createElementVNode("span", _hoisted_6, _toDisplayString(rateTip.value), 1 /* TEXT */ )
192
+ ]),
193
+ _createElementVNode("span", _hoisted_7, [
194
+ _withDirectives(_createElementVNode("i", {
195
+ class: "ai-ui-sdk-icon ai-ui-sdk-copy",
196
+ onClick: _cache[0] || (_cache[0] = ($event)=>_unref(handleCopy)(_ctx.sessionContent.content))
197
+ }, null, 512 /* NEED_PATCH */ ), [
198
+ [
199
+ _unref(vBkTooltips),
200
+ {
201
+ content: '复制',
202
+ placement: 'top'
203
+ }
204
+ ]
205
+ ])
206
+ ])
207
+ ])) : _createCommentVNode("v-if", true)
208
+ ], 2 /* CLASS */ )) : (_openBlock(), _createBlock(SkeletonMessage, {
209
+ key: 1,
210
+ class: "skeleton-message"
211
+ }))
212
+ ]);
213
+ };
214
+ }
215
+ });