@ai-group/chat-sdk 0.4.2 → 0.5.0

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 (54) hide show
  1. package/dist/cjs/components/XAiChatbot/styles.js +1 -0
  2. package/dist/cjs/components/XAiChatbot/styles.js.map +2 -2
  3. package/dist/cjs/components/XAiConversations/XAiConversations.stories.js +1 -1
  4. package/dist/cjs/components/XAiConversations/XAiConversations.stories.js.map +2 -2
  5. package/dist/cjs/components/XAiConversations/index.js +41 -15
  6. package/dist/cjs/components/XAiConversations/index.js.map +3 -3
  7. package/dist/cjs/components/XAiProvider/XAiProvider.stories.d.ts +2 -1
  8. package/dist/cjs/components/XAiProvider/XAiProvider.stories.js +88 -34
  9. package/dist/cjs/components/XAiProvider/XAiProvider.stories.js.map +3 -3
  10. package/dist/cjs/components/XAiProvider/index.js +27 -4
  11. package/dist/cjs/components/XAiProvider/index.js.map +2 -2
  12. package/dist/cjs/context/AiProviderContext.d.ts +4 -2
  13. package/dist/cjs/context/AiProviderContext.js.map +2 -2
  14. package/dist/cjs/hooks/useAgentGenerator.d.ts +14 -5
  15. package/dist/cjs/hooks/useAgentGenerator.js +143 -64
  16. package/dist/cjs/hooks/useAgentGenerator.js.map +3 -3
  17. package/dist/cjs/types/XAiChatbot.d.ts +2 -0
  18. package/dist/cjs/types/XAiChatbot.js.map +1 -1
  19. package/dist/cjs/types/XAiConversations.d.ts +14 -2
  20. package/dist/cjs/types/XAiConversations.js.map +1 -1
  21. package/dist/cjs/types/XAiProvider.d.ts +257 -13
  22. package/dist/cjs/types/XAiProvider.js.map +2 -2
  23. package/dist/cjs/utils/umdEntry.d.ts +3 -1
  24. package/dist/cjs/utils/umdEntry.js +5 -2
  25. package/dist/cjs/utils/umdEntry.js.map +3 -3
  26. package/dist/esm/components/XAiChatbot/styles.js +1 -1
  27. package/dist/esm/components/XAiChatbot/styles.js.map +1 -1
  28. package/dist/esm/components/XAiConversations/XAiConversations.stories.js +1 -1
  29. package/dist/esm/components/XAiConversations/XAiConversations.stories.js.map +1 -1
  30. package/dist/esm/components/XAiConversations/index.js +56 -14
  31. package/dist/esm/components/XAiConversations/index.js.map +1 -1
  32. package/dist/esm/components/XAiProvider/XAiProvider.stories.d.ts +2 -1
  33. package/dist/esm/components/XAiProvider/XAiProvider.stories.js +105 -28
  34. package/dist/esm/components/XAiProvider/XAiProvider.stories.js.map +1 -1
  35. package/dist/esm/components/XAiProvider/index.js +24 -7
  36. package/dist/esm/components/XAiProvider/index.js.map +1 -1
  37. package/dist/esm/context/AiProviderContext.d.ts +4 -2
  38. package/dist/esm/context/AiProviderContext.js +1 -0
  39. package/dist/esm/context/AiProviderContext.js.map +1 -1
  40. package/dist/esm/hooks/useAgentGenerator.d.ts +14 -5
  41. package/dist/esm/hooks/useAgentGenerator.js +271 -113
  42. package/dist/esm/hooks/useAgentGenerator.js.map +1 -1
  43. package/dist/esm/types/XAiChatbot.d.ts +2 -0
  44. package/dist/esm/types/XAiChatbot.js.map +1 -1
  45. package/dist/esm/types/XAiConversations.d.ts +14 -2
  46. package/dist/esm/types/XAiConversations.js.map +1 -1
  47. package/dist/esm/types/XAiProvider.d.ts +257 -13
  48. package/dist/esm/types/XAiProvider.js +81 -1
  49. package/dist/esm/types/XAiProvider.js.map +1 -1
  50. package/dist/esm/utils/umdEntry.d.ts +3 -1
  51. package/dist/esm/utils/umdEntry.js +29 -22
  52. package/dist/esm/utils/umdEntry.js.map +1 -1
  53. package/dist/umd/chat-sdk.min.js +1 -1
  54. package/package.json +2 -1
@@ -1,12 +1,30 @@
1
1
  // context/ProviderContext.ts
2
2
  import React from 'react';
3
+
4
+ /**
5
+ * 主题类型
6
+ * @type {'default'}
7
+ * @version 1.0.0
8
+ */
9
+
10
+ /**
11
+ * 错误码枚举(数字格式)
12
+ * @enum {string}
13
+ * @version 1.0.0
14
+ */
3
15
  export var ErrorCodeNum = /*#__PURE__*/function (ErrorCodeNum) {
4
16
  ErrorCodeNum["APP_NOT_ENABLE"] = "client_50017";
5
17
  ErrorCodeNum["APP_DELETED"] = "client_50017";
6
18
  ErrorCodeNum["APP_NOT_FOUND"] = "client_59999";
7
19
  ErrorCodeNum["API_ERROR"] = "client_50054";
8
20
  return ErrorCodeNum;
9
- }({}); // 接口报错
21
+ }({});
22
+
23
+ /**
24
+ * 错误码枚举
25
+ * @enum {string}
26
+ * @version 1.0.0
27
+ */
10
28
  export var ErrorCode = /*#__PURE__*/function (ErrorCode) {
11
29
  ErrorCode["APP_NOT_ENABLE"] = "APP_NOT_ENABLE";
12
30
  ErrorCode["APP_DELETED"] = "APP_DELETED";
@@ -14,6 +32,12 @@ export var ErrorCode = /*#__PURE__*/function (ErrorCode) {
14
32
  ErrorCode["API_ERROR"] = "API_ERROR";
15
33
  return ErrorCode;
16
34
  }({});
35
+
36
+ /**
37
+ * 错误码映射表
38
+ * @type {Record<string, {code: ErrorCode, message: string}>}
39
+ * @version 1.0.0
40
+ */
17
41
  export var ErrorCodeMap = {
18
42
  client_50017: {
19
43
  code: ErrorCode.APP_NOT_ENABLE,
@@ -24,10 +48,66 @@ export var ErrorCodeMap = {
24
48
  message: '应用服务端出错'
25
49
  }
26
50
  };
51
+
52
+ /**
53
+ * 成功状态码枚举
54
+ * @enum {string}
55
+ * @version 1.0.0
56
+ */
27
57
  export var SuccessCode = /*#__PURE__*/function (SuccessCode) {
28
58
  SuccessCode["APP_CONFIG_INIT_SUCCESS"] = "APP_CONFIG_INIT_SUCCESS";
29
59
  SuccessCode["APP_MESSAGES_INIT_SUCCESS"] = "APP_MESSAGES_INIT_SUCCESS";
30
60
  return SuccessCode;
31
61
  }({});
62
+
63
+ /**
64
+ * 错误信息接口
65
+ * @interface Error
66
+ * @version 1.0.0
67
+ */
68
+
69
+ /**
70
+ * 成功信息接口
71
+ * @interface Success
72
+ * @version 1.0.0
73
+ */
74
+
75
+ /**
76
+ * XAiProvider 操作句柄接口
77
+ * @interface XAiProviderHandle
78
+ * @version 1.0.0
79
+ */
80
+
81
+ /**
82
+ * XAiProvider 配置接口
83
+ * @interface XAiProviderConfig
84
+ * @version 1.0.0
85
+ */
86
+
87
+ /**
88
+ * XAiProvider 组件属性接口
89
+ * @interface XAiProviderProps
90
+ * @version 1.0.0
91
+ */
92
+
93
+ /**
94
+ * XAiSDK 组件属性接口
95
+ * @interface XAiSDKProps
96
+ * @extends XAiProviderProps
97
+ * @version 1.0.0
98
+ */
99
+
100
+ /**
101
+ * XAi 上下文类型接口
102
+ * @interface XAiContextType
103
+ * @extends Required<ChatbotMessageFields>
104
+ * @version 1.0.0
105
+ */
106
+
107
+ /**
108
+ * XAi 上下文对象
109
+ * @type {React.Context<XAiContextType | null>}
110
+ * @version 1.0.0
111
+ */
32
112
  export var XAiContext = /*#__PURE__*/React.createContext(null);
33
113
  //# sourceMappingURL=XAiProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","ErrorCodeNum","ErrorCode","ErrorCodeMap","client_50017","code","APP_NOT_ENABLE","message","client_50054","API_ERROR","SuccessCode","XAiContext","createContext"],"sources":["../../../src/types/XAiProvider.ts"],"sourcesContent":["// context/ProviderContext.ts\nimport React, { ReactNode } from 'react';\nimport { AiClient } from 'src/client/base';\nimport type { ChatbotMessageFields } from './XAiChatbot';\nimport { Messages } from '@/types/XAiMessage';\n\nexport type ThemeType = 'default';\n\nexport enum ErrorCodeNum {\n APP_NOT_ENABLE = 'client_50017', // 应用下架\n APP_DELETED = 'client_50017', // 应用删除\n APP_NOT_FOUND = 'client_59999', // 无该应用\n API_ERROR = 'client_50054', // 接口报错\n}\n\nexport enum ErrorCode {\n APP_NOT_ENABLE = 'APP_NOT_ENABLE',\n APP_DELETED = 'APP_DELETED',\n APP_NOT_FOUND = 'APP_NOT_FOUND',\n API_ERROR = 'API_ERROR',\n}\n\nexport const ErrorCodeMap = {\n client_50017: {\n code: ErrorCode.APP_NOT_ENABLE,\n message: '该应用已删除或已下架',\n },\n client_50054: {\n code: ErrorCode.API_ERROR,\n message: '应用服务端出错',\n },\n};\n\nexport enum SuccessCode {\n APP_CONFIG_INIT_SUCCESS = 'APP_CONFIG_INIT_SUCCESS',\n APP_MESSAGES_INIT_SUCCESS = 'APP_MESSAGES_INIT_SUCCESS',\n}\n\nexport interface Error {\n code: ErrorCode;\n message: string;\n}\n\nexport interface Success {\n code: SuccessCode;\n message: string;\n}\n\nexport interface XAiProviderHandle {\n chat: (content: string) => void;\n stopChat: () => void;\n reChat: () => void;\n getAppInfo: () => any;\n getMessages: () => Messages[];\n setCurrentSession: (id: string) => void;\n}\n\nexport interface XAiProviderProps {\n /** AI 服务地址 */\n url: string;\n /** 认证 token */\n token: string;\n /** 配置信息 */\n config?: any;\n /** Provider 唯一标识,用于区分多个 Provider 实例 */\n providerId?: string;\n /** Token 刷新回调 */\n onRefreshToken?: () => Promise<string>;\n /** 应用无法正常渲染回调 */\n onError?: (error: Error) => void;\n /** 应用正常渲染回调 */\n onSuccess?: (success: Success) => void;\n /** 子组件 */\n children: ReactNode;\n}\n\nexport interface XAiSDKProps extends XAiProviderProps {\n theme?: ThemeType;\n componentProps?: {\n id?: string;\n [key: string]: any; // 支持任意 CSS 属性\n };\n}\n\nexport interface XAiContextType extends Required<ChatbotMessageFields> {\n client: AiClient | null;\n token: string;\n loading: boolean;\n error: string | null;\n // ...其它全局配置\n}\n\nexport const XAiContext = React.createContext<XAiContextType | null>(null);\n"],"mappings":"AAAA;AACA,OAAOA,KAAK,MAAqB,OAAO;AAOxC,WAAYC,YAAY,0BAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAA,OAAZA,YAAY;AAAA,OAIM;AAG9B,WAAYC,SAAS,0BAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAAA,OAATA,SAAS;AAAA;AAOrB,OAAO,IAAMC,YAAY,GAAG;EAC1BC,YAAY,EAAE;IACZC,IAAI,EAAEH,SAAS,CAACI,cAAc;IAC9BC,OAAO,EAAE;EACX,CAAC;EACDC,YAAY,EAAE;IACZH,IAAI,EAAEH,SAAS,CAACO,SAAS;IACzBF,OAAO,EAAE;EACX;AACF,CAAC;AAED,WAAYG,WAAW,0BAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAA,OAAXA,WAAW;AAAA;AA2DvB,OAAO,IAAMC,UAAU,gBAAGX,KAAK,CAACY,aAAa,CAAwB,IAAI,CAAC"}
1
+ {"version":3,"names":["React","ErrorCodeNum","ErrorCode","ErrorCodeMap","client_50017","code","APP_NOT_ENABLE","message","client_50054","API_ERROR","SuccessCode","XAiContext","createContext"],"sources":["../../../src/types/XAiProvider.ts"],"sourcesContent":["// context/ProviderContext.ts\nimport React, { ReactNode } from 'react';\nimport { AiClient } from 'src/client/base';\nimport type { ChatbotMessageFields } from './XAiChatbot';\nimport { Messages } from '@/types/XAiMessage';\nimport XAiProvider from '@/components/XAiProvider';\n\n/**\n * 主题类型\n * @type {'default'}\n * @version 1.0.0\n */\nexport type ThemeType = 'default';\n\n/**\n * 错误码枚举(数字格式)\n * @enum {string}\n * @version 1.0.0\n */\nexport enum ErrorCodeNum {\n /** 应用下架 */\n APP_NOT_ENABLE = 'client_50017',\n /** 应用删除 */\n APP_DELETED = 'client_50017',\n /** 无该应用 */\n APP_NOT_FOUND = 'client_59999',\n /** 接口报错 */\n API_ERROR = 'client_50054',\n}\n\n/**\n * 错误码枚举\n * @enum {string}\n * @version 1.0.0\n */\nexport enum ErrorCode {\n /** 应用未启用 */\n APP_NOT_ENABLE = 'APP_NOT_ENABLE',\n /** 应用已删除 */\n APP_DELETED = 'APP_DELETED',\n /** 应用未找到 */\n APP_NOT_FOUND = 'APP_NOT_FOUND',\n /** API 错误 */\n API_ERROR = 'API_ERROR',\n}\n\n/**\n * 错误码映射表\n * @type {Record<string, {code: ErrorCode, message: string}>}\n * @version 1.0.0\n */\nexport const ErrorCodeMap = {\n client_50017: {\n code: ErrorCode.APP_NOT_ENABLE,\n message: '该应用已删除或已下架',\n },\n client_50054: {\n code: ErrorCode.API_ERROR,\n message: '应用服务端出错',\n },\n};\n\n/**\n * 成功状态码枚举\n * @enum {string}\n * @version 1.0.0\n */\nexport enum SuccessCode {\n /** 应用配置初始化成功 */\n APP_CONFIG_INIT_SUCCESS = 'APP_CONFIG_INIT_SUCCESS',\n /** 应用消息初始化成功 */\n APP_MESSAGES_INIT_SUCCESS = 'APP_MESSAGES_INIT_SUCCESS',\n}\n\n/**\n * 错误信息接口\n * @interface Error\n * @version 1.0.0\n */\nexport interface Error {\n /** 错误码 */\n code: ErrorCode;\n /** 错误信息 */\n message: string;\n}\n\n/**\n * 成功信息接口\n * @interface Success\n * @version 1.0.0\n */\nexport interface Success {\n /** 成功状态码 */\n code: SuccessCode;\n /** 成功信息 */\n message: string;\n}\n\n/**\n * XAiProvider 操作句柄接口\n * @interface XAiProviderHandle\n * @version 1.0.0\n */\nexport interface XAiProviderHandle {\n /**\n * 发送聊天消息\n * @param content - 消息内容\n * @type {(content: string) => void}\n * @version 1.0.0\n */\n chat: (content: string) => void;\n \n /**\n * 停止聊天\n * @type {() => void}\n * @version 1.0.0\n */\n stopChat: () => void;\n \n /**\n * 重新发送聊天\n * @type {() => void}\n * @version 1.0.0\n */\n reChat: () => void;\n \n /**\n * 获取应用信息\n * @returns {any} 应用信息对象\n * @type {() => any}\n * @version 1.0.0\n */\n getAppInfo: () => any;\n \n /**\n * 获取消息列表\n * @returns {Messages[]} 消息数组\n * @type {() => Messages[]}\n * @version 1.0.0\n */\n getMessages: () => Messages[];\n \n /**\n * 重新设置当前会话\n * @param id - 会话ID\n * @type {(id: string) => void}\n * @version 1.0.0\n */\n setCurrentSessionDetail: (id: string) => void;\n}\n\nexport interface sessionConfig {\n /**\n * 是否展示会话列表\n * @type {boolean}\n * @default false\n */\n showSessionList?: boolean;\n}\n\n/**\n * XAiProvider 配置接口\n * @interface XAiProviderConfig\n * @version 1.0.0\n */\nexport interface XAiProviderConfig {\n /**\n * 应用唯一编号\n * @type {string}\n * @default undefined\n * @version 1.0.0\n */\n appNo?: string;\n \n /**\n * 授权方式\n * @type {string}\n * @default undefined\n * @version 1.0.0\n */\n pt?: string;\n \n /**\n * 租户key\n * @type {string}\n * @default undefined\n * @version 1.0.0\n */\n tc?: string;\n\n /**\n * 会话配置\n * @type {sessionConfig}\n */\n session?: sessionConfig;\n \n /**\n * 是否启用调试模式\n * @type {boolean}\n * @default false\n * @version 1.0.0\n */\n debug?: boolean;\n}\n\n/**\n * XAiProvider 组件属性接口\n * @interface XAiProviderProps\n * @version 1.0.0\n */\nexport interface XAiProviderProps {\n /**\n * AI 服务地址\n * @type {string}\n * @version 1.0.0\n */\n url: string;\n \n /**\n * 认证 token\n * @type {string}\n * @version 1.0.0\n */\n token: string;\n \n /**\n * 配置信息\n * @type {XAiProviderConfig}\n * @default undefined\n * @version 1.0.0\n */\n config?: XAiProviderConfig;\n \n /**\n * Provider 唯一标识,用于区分多个 Provider 实例\n * @type {string}\n * @default undefined\n * @version 1.0.0\n */\n providerId?: string;\n \n /**\n * Token 刷新回调\n * @type {() => Promise<string>}\n * @default undefined\n * @version 1.0.0\n */\n onRefreshToken?: () => Promise<string>;\n \n /**\n * 应用无法正常渲染回调\n * @type {(error: Error) => void}\n * @default undefined\n * @version 1.0.0\n */\n onError?: (error: Error) => void;\n \n /**\n * 应用正常渲染回调\n * @type {(success: Success) => void}\n * @default undefined\n * @version 1.0.0\n */\n onSuccess?: (success: Success) => void;\n \n /**\n * 消息返回回调\n * @type {(data: Messages) => void}\n * @default undefined\n * @version 1.0.0\n */\n onMessage?: (data: Messages) => void;\n \n /**\n * 子组件\n * @type {ReactNode}\n * @version 1.0.0\n */\n children: ReactNode;\n}\n\n/**\n * XAiSDK 组件属性接口\n * @interface XAiSDKProps\n * @extends XAiProviderProps\n * @version 1.0.0\n */\nexport interface XAiSDKProps extends XAiProviderProps {\n /**\n * 主题类型\n * @type {ThemeType}\n * @default 'default'\n * @version 1.0.0\n */\n theme?: ThemeType;\n \n /**\n * 组件属性配置\n * @type {object}\n * @default undefined\n * @version 1.0.0\n */\n componentProps?: {\n /**\n * 组件ID\n * @type {string}\n * @default undefined\n * @version 1.0.0\n */\n id?: string;\n /** 支持任意 CSS 属性 */\n [key: string]: any;\n };\n}\n\n/**\n * XAi 上下文类型接口\n * @interface XAiContextType\n * @extends Required<ChatbotMessageFields>\n * @version 1.0.0\n */\nexport interface XAiContextType extends Required<ChatbotMessageFields> {\n /**\n * AI 客户端实例\n * @type {AiClient | null}\n * @default null\n * @version 1.0.0\n */\n client: AiClient | null;\n \n /**\n * 认证令牌\n * @type {string}\n * @version 1.0.0\n */\n token: string;\n \n /**\n * 加载状态\n * @type {boolean}\n * @default false\n * @version 1.0.0\n */\n loading: boolean;\n \n /**\n * 错误信息\n * @type {string | null}\n * @default null\n * @version 1.0.0\n */\n error: string | null;\n}\n\n/**\n * XAi 上下文对象\n * @type {React.Context<XAiContextType | null>}\n * @version 1.0.0\n */\nexport const XAiContext = React.createContext<XAiContextType | null>(null);\n"],"mappings":"AAAA;AACA,OAAOA,KAAK,MAAqB,OAAO;;AAMxC;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA,WAAYC,YAAY,0BAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAA,OAAZA,YAAY;AAAA;;AAWxB;AACA;AACA;AACA;AACA;AACA,WAAYC,SAAS,0BAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAAA,OAATA,SAAS;AAAA;;AAWrB;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMC,YAAY,GAAG;EAC1BC,YAAY,EAAE;IACZC,IAAI,EAAEH,SAAS,CAACI,cAAc;IAC9BC,OAAO,EAAE;EACX,CAAC;EACDC,YAAY,EAAE;IACZH,IAAI,EAAEH,SAAS,CAACO,SAAS;IACzBF,OAAO,EAAE;EACX;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,WAAYG,WAAW,0BAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAA,OAAXA,WAAW;AAAA;;AAOvB;AACA;AACA;AACA;AACA;;AAQA;AACA;AACA;AACA;AACA;;AAQA;AACA;AACA;AACA;AACA;;AA0DA;AACA;AACA;AACA;AACA;;AAyCA;AACA;AACA;AACA;AACA;;AAwEA;AACA;AACA;AACA;AACA;AACA;;AA6BA;AACA;AACA;AACA;AACA;AACA;;AAkCA;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMC,UAAU,gBAAGX,KAAK,CAACY,aAAa,CAAwB,IAAI,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
2
  import { XAiSDKProps, XAiProviderHandle } from "../types/XAiProvider";
3
+ import { Messages } from "../types/XAiMessage";
3
4
  declare class XAiWebSDK {
4
5
  container: HTMLElement;
5
6
  props: XAiSDKProps;
@@ -7,6 +8,7 @@ declare class XAiWebSDK {
7
8
  providerRef: React.RefObject<XAiProviderHandle | null>;
8
9
  onError?: (error: any) => void;
9
10
  onSuccess?: (appInfo: any) => void;
11
+ onMessage?: (data: Messages) => void;
10
12
  constructor(container: HTMLElement, props: XAiSDKProps);
11
13
  mount(): void;
12
14
  unmount(): void;
@@ -14,7 +16,7 @@ declare class XAiWebSDK {
14
16
  static create(props: XAiSDKProps): XAiWebSDK;
15
17
  getData(): {
16
18
  appInfo: any;
17
- messages: import("../types").Messages[] | undefined;
19
+ messages: Messages[] | undefined;
18
20
  };
19
21
  chat(text: string): void;
20
22
  stop(): void;
@@ -8,7 +8,9 @@ import React, { createRef } from 'react';
8
8
  import ReactDOM from 'react-dom/client';
9
9
  import XAiProvider from "../components/XAiProvider";
10
10
  import XAiChatbot from "../components/XAiChatbot";
11
+ import XAiConversations from "../components/XAiConversations";
11
12
  import { jsx as _jsx } from "react/jsx-runtime";
13
+ import { jsxs as _jsxs } from "react/jsx-runtime";
12
14
  var XAiWebSDK = /*#__PURE__*/function () {
13
15
  function XAiWebSDK(container, props) {
14
16
  _classCallCheck(this, XAiWebSDK);
@@ -16,43 +18,48 @@ var XAiWebSDK = /*#__PURE__*/function () {
16
18
  _defineProperty(this, "props", void 0);
17
19
  _defineProperty(this, "root", void 0);
18
20
  _defineProperty(this, "providerRef", /*#__PURE__*/createRef());
21
+ // ———— hook ————
19
22
  _defineProperty(this, "onError", void 0);
20
23
  _defineProperty(this, "onSuccess", void 0);
24
+ _defineProperty(this, "onMessage", void 0);
21
25
  this.container = container;
22
26
  this.props = props;
23
27
  this.onError = props.onError;
24
28
  this.onSuccess = props.onSuccess;
29
+ this.onMessage = props.onMessage;
25
30
  this.mount();
26
31
  }
27
32
  _createClass(XAiWebSDK, [{
28
33
  key: "mount",
29
34
  value: function mount() {
30
35
  if (ReactDOM.createRoot) {
36
+ var _this$props$config;
31
37
  this.root = ReactDOM.createRoot(this.container);
32
- this.root.render( /*#__PURE__*/_jsx(XAiProvider, _objectSpread(_objectSpread({
33
- ref: this.providerRef
34
- }, this.props), {}, {
35
- children: /*#__PURE__*/_jsx("div", {
36
- style: {
37
- width: '100%',
38
- height: '100%'
39
- },
40
- children: /*#__PURE__*/_jsx(XAiChatbot, {})
41
- })
42
- })));
38
+ this.root.render( /*#__PURE__*/_jsx("div", {
39
+ style: {
40
+ width: '100%',
41
+ height: '100%'
42
+ },
43
+ children: /*#__PURE__*/_jsxs(XAiProvider, _objectSpread(_objectSpread({
44
+ ref: this.providerRef
45
+ }, this.props), {}, {
46
+ children: [((_this$props$config = this.props.config) === null || _this$props$config === void 0 || (_this$props$config = _this$props$config.session) === null || _this$props$config === void 0 ? void 0 : _this$props$config.showSessionList) && /*#__PURE__*/_jsx(XAiConversations, {}), /*#__PURE__*/_jsx(XAiChatbot, {})]
47
+ }))
48
+ }));
43
49
  } else {
50
+ var _this$props$config2;
44
51
  // @ts-ignore
45
- ReactDOM.render( /*#__PURE__*/_jsx(XAiProvider, _objectSpread(_objectSpread({
46
- ref: this.providerRef
47
- }, this.props), {}, {
48
- children: /*#__PURE__*/_jsx("div", {
49
- style: {
50
- width: '100%',
51
- height: '100%'
52
- },
53
- children: /*#__PURE__*/_jsx(XAiChatbot, {})
54
- })
55
- })), this.container);
52
+ ReactDOM.render( /*#__PURE__*/_jsx("div", {
53
+ style: {
54
+ width: '100%',
55
+ height: '100%'
56
+ },
57
+ children: /*#__PURE__*/_jsxs(XAiProvider, _objectSpread(_objectSpread({
58
+ ref: this.providerRef
59
+ }, this.props), {}, {
60
+ children: [((_this$props$config2 = this.props.config) === null || _this$props$config2 === void 0 || (_this$props$config2 = _this$props$config2.session) === null || _this$props$config2 === void 0 ? void 0 : _this$props$config2.showSessionList) && /*#__PURE__*/_jsx(XAiConversations, {}), /*#__PURE__*/_jsx(XAiChatbot, {})]
61
+ }))
62
+ }), this.container);
56
63
  }
57
64
  }
58
65
  }, {
@@ -1 +1 @@
1
- {"version":3,"names":["React","createRef","ReactDOM","XAiProvider","XAiChatbot","jsx","_jsx","XAiWebSDK","container","props","_classCallCheck","_defineProperty","onError","onSuccess","mount","_createClass","key","value","createRoot","root","render","_objectSpread","ref","providerRef","children","style","width","height","unmount","getData","_this$providerRef$cur","_this$providerRef$cur2","appInfo","current","getAppInfo","messages","getMessages","chat","text","_this$providerRef$cur3","stop","_this$providerRef$cur4","stopChat","reChat","_this$providerRef$cur5","initChatbot","_props$componentProps","componentProps","id","existingContainer","document","getElementById","createElement","_props$componentProps2","styleProps","_objectWithoutProperties","_excluded","Object","assign","parentNode","body","appendChild","create","window"],"sources":["../../../src/utils/umdEntry.tsx"],"sourcesContent":["import React, { createRef } from 'react';\nimport ReactDOM from 'react-dom/client';\nimport { XAiSDKProps, XAiProviderHandle } from '@/types/XAiProvider';\nimport XAiProvider from '@/components/XAiProvider';\nimport XAiChatbot from '../components/XAiChatbot';\n\nclass XAiWebSDK {\n container: HTMLElement;\n\n props: XAiSDKProps;\n\n root: any;\n\n providerRef = createRef<XAiProviderHandle>();\n\n onError?: (error: any) => void;\n\n onSuccess?: (appInfo: any) => void;\n\n constructor(container: HTMLElement, props: XAiSDKProps) {\n this.container = container;\n this.props = props;\n this.onError = props.onError;\n this.onSuccess = props.onSuccess;\n this.mount();\n }\n\n mount() {\n if (ReactDOM.createRoot) {\n this.root = ReactDOM.createRoot(this.container);\n this.root.render(\n <XAiProvider ref={this.providerRef} {...this.props}>\n <div style={{ width: '100%', height: '100%' }}>\n <XAiChatbot />\n </div>\n </XAiProvider>,\n );\n } else {\n // @ts-ignore\n ReactDOM.render(\n <XAiProvider ref={this.providerRef} {...this.props}>\n <div style={{ width: '100%', height: '100%' }}>\n <XAiChatbot />\n </div>\n </XAiProvider>,\n this.container,\n );\n }\n }\n\n unmount() {\n if (this.root && this.root.unmount) {\n this.root.unmount();\n }\n }\n\n // 支持 Coze 风格的语法:new XAiWebSDK.initChatbot()\n static initChatbot(props: XAiSDKProps): XAiWebSDK {\n let container: HTMLElement;\n\n // 检查是否有指定的 componentProps.id\n if (props.componentProps?.id) {\n const existingContainer = document.getElementById(props.componentProps.id);\n if (existingContainer) {\n container = existingContainer;\n } else {\n // 如果指定的 ID 不存在,创建新元素\n container = document.createElement('div');\n container.id = props.componentProps.id;\n }\n } else {\n // 没有指定 ID,创建默认容器\n container = document.createElement('div');\n container.id = 'xai-chatbot-container';\n }\n\n // 设置容器样式 - 将除了 id 以外的所有属性都应用到容器\n if (props.componentProps) {\n const { id, ...styleProps } = props.componentProps;\n Object.assign(container.style, styleProps);\n }\n\n // 如果容器不在 DOM 中,添加到 body\n if (!container.parentNode) {\n document.body.appendChild(container);\n }\n\n return new XAiWebSDK(container, props);\n }\n\n // 兼容旧版本的静态方法\n static create(props: XAiSDKProps): XAiWebSDK {\n return this.initChatbot(props);\n }\n\n // ————对外暴露的方法————\n getData() {\n return {\n appInfo: this.providerRef.current?.getAppInfo(),\n messages: this.providerRef.current?.getMessages(),\n };\n }\n\n chat(text: string) {\n this.providerRef.current?.chat(text);\n }\n\n stop() {\n this.providerRef.current?.stopChat();\n }\n\n reChat() {\n this.providerRef.current?.reChat();\n }\n}\n\n// 兼容 window 方式,也支持 new\n// @ts-ignore\nwindow.XAiWebSDK = XAiWebSDK;\n\n// 支持 ESModule/UMD 直接 import\nexport default XAiWebSDK;\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","createRef","ReactDOM","XAiProvider","XAiChatbot","XAiConversations","jsx","_jsx","jsxs","_jsxs","XAiWebSDK","container","props","_classCallCheck","_defineProperty","onError","onSuccess","onMessage","mount","_createClass","key","value","createRoot","_this$props$config","root","render","style","width","height","children","_objectSpread","ref","providerRef","config","session","showSessionList","_this$props$config2","unmount","getData","_this$providerRef$cur","_this$providerRef$cur2","appInfo","current","getAppInfo","messages","getMessages","chat","text","_this$providerRef$cur3","stop","_this$providerRef$cur4","stopChat","reChat","_this$providerRef$cur5","initChatbot","_props$componentProps","componentProps","id","existingContainer","document","getElementById","createElement","_props$componentProps2","styleProps","_objectWithoutProperties","_excluded","Object","assign","parentNode","body","appendChild","create","window"],"sources":["../../../src/utils/umdEntry.tsx"],"sourcesContent":["import React, { createRef } from 'react';\nimport ReactDOM from 'react-dom/client';\nimport { XAiSDKProps, XAiProviderHandle } from '@/types/XAiProvider';\nimport { Messages } from '@/types/XAiMessage';\nimport XAiProvider from '@/components/XAiProvider';\nimport XAiChatbot from '@/components/XAiChatbot';\nimport XAiConversations from '@/components/XAiConversations';\n\nclass XAiWebSDK {\n container: HTMLElement;\n\n props: XAiSDKProps;\n\n root: any;\n\n providerRef = createRef<XAiProviderHandle>();\n\n // ———— hook ————\n onError?: (error: any) => void;\n\n onSuccess?: (appInfo: any) => void;\n\n onMessage?: (data: Messages) => void;\n\n constructor(container: HTMLElement, props: XAiSDKProps) {\n this.container = container;\n this.props = props;\n this.onError = props.onError;\n this.onSuccess = props.onSuccess;\n this.onMessage = props.onMessage;\n this.mount();\n }\n\n mount() {\n if (ReactDOM.createRoot) {\n this.root = ReactDOM.createRoot(this.container);\n this.root.render(\n <div style={{ width: '100%', height: '100%' }}>\n <XAiProvider ref={this.providerRef} {...this.props}>\n { this.props.config?.session?.showSessionList && <XAiConversations />}\n <XAiChatbot />\n </XAiProvider>\n </div>,\n );\n } else {\n // @ts-ignore\n ReactDOM.render(\n <div style={{ width: '100%', height: '100%' }}>\n <XAiProvider ref={this.providerRef} {...this.props}>\n { this.props.config?.session?.showSessionList && <XAiConversations />}\n <XAiChatbot />\n </XAiProvider>\n </div>,\n this.container,\n );\n }\n }\n\n unmount() {\n if (this.root && this.root.unmount) {\n this.root.unmount();\n }\n }\n\n // 支持 Coze 风格的语法:new XAiWebSDK.initChatbot()\n static initChatbot(props: XAiSDKProps): XAiWebSDK {\n let container: HTMLElement;\n\n // 检查是否有指定的 componentProps.id\n if (props.componentProps?.id) {\n const existingContainer = document.getElementById(props.componentProps.id);\n if (existingContainer) {\n container = existingContainer;\n } else {\n // 如果指定的 ID 不存在,创建新元素\n container = document.createElement('div');\n container.id = props.componentProps.id;\n }\n } else {\n // 没有指定 ID,创建默认容器\n container = document.createElement('div');\n container.id = 'xai-chatbot-container';\n }\n\n // 设置容器样式 - 将除了 id 以外的所有属性都应用到容器\n if (props.componentProps) {\n const { id, ...styleProps } = props.componentProps;\n Object.assign(container.style, styleProps);\n }\n\n // 如果容器不在 DOM 中,添加到 body\n if (!container.parentNode) {\n document.body.appendChild(container);\n }\n\n return new XAiWebSDK(container, props);\n }\n\n // 兼容旧版本的静态方法\n static create(props: XAiSDKProps): XAiWebSDK {\n return this.initChatbot(props);\n }\n\n // ————对外暴露的方法————\n getData() {\n return {\n appInfo: this.providerRef.current?.getAppInfo(),\n messages: this.providerRef.current?.getMessages(),\n };\n }\n\n chat(text: string) {\n this.providerRef.current?.chat(text);\n }\n\n stop() {\n this.providerRef.current?.stopChat();\n }\n\n reChat() {\n this.providerRef.current?.reChat();\n }\n}\n\n// 兼容 window 方式,也支持 new\n// @ts-ignore\nwindow.XAiWebSDK = XAiWebSDK;\n\n// 支持 ESModule/UMD 直接 import\nexport default XAiWebSDK;\n"],"mappings":"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"}