@tdesign-react/chat 1.0.0-beta.1 → 1.0.0-beta.2
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.
- package/README.md +9 -1
- package/es/chatbot/core/adapters/agui/events.d.ts +92 -92
- package/es/chatbot/core/adapters/agui/types.d.ts +102 -102
- package/es/chatbot/index.d.ts +1 -2
- package/es/chatbot/index.js +1 -1
- package/es/chatbot/index.js.map +1 -1
- package/es/index.js +0 -1
- package/es/index.js.map +1 -1
- package/package.json +2 -2
- package/es/_util/_reactify.d.ts +0 -7
- package/es/_util/_reactify.js +0 -381
- package/es/_util/_reactify.js.map +0 -1
- package/es/_util/reactifyLazy.d.ts +0 -16
- package/es/_util/reactifyLazy.js +0 -74
- package/es/_util/reactifyLazy.js.map +0 -1
- package/es/_util/reactify_v2.d.ts +0 -7
- package/es/_util/reactify_v2.js +0 -391
- package/es/_util/reactify_v2.js.map +0 -1
- package/es/chatbot/components/toolcall/toolcallRenderer.d.ts +0 -12
- package/es/chatbot/components/toolcall/toolcallRenderer.js +0 -132
- package/es/chatbot/components/toolcall/toolcallRenderer.js.map +0 -1
- package/es/chatbot/core/adapters/agui/state/StateManager.d.ts +0 -60
- package/es/chatbot/core/adapters/agui/state/StateManager.js +0 -160
- package/es/chatbot/core/adapters/agui/state/StateManager.js.map +0 -1
- package/es/chatbot/core/adapters/agui/state/types.d.ts +0 -63
- package/es/chatbot/core/adapters/agui/state/types.js +0 -7
- package/es/chatbot/core/adapters/agui/state/types.js.map +0 -1
- package/es/chatbot/core/adapters/agui/state-manager-fixed.d.ts +0 -107
- package/es/chatbot/core/adapters/agui/state-manager-fixed.js +0 -189
- package/es/chatbot/core/adapters/agui/state-manager-fixed.js.map +0 -1
- package/es/chatbot/hooks/useAgentStateAction.d.ts +0 -9
- package/es/chatbot/hooks/useAgentStateAction.js +0 -101
- package/es/chatbot/hooks/useAgentStateAction.js.map +0 -1
- package/es/chatbot/hooks/useAgentToolcallAction.d.ts +0 -6
- package/es/chatbot/hooks/useAgentToolcallAction.js +0 -29
- package/es/chatbot/hooks/useAgentToolcallAction.js.map +0 -1
- package/es/chatbot/useChat.d.ts +0 -10
- package/es/chatbot/useChat.js +0 -55
- package/es/chatbot/useChat.js.map +0 -1
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* tdesign v1.0.1-beta.18
|
|
3
|
-
* (c) 2025 tdesign
|
|
4
|
-
* @license MIT
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
8
|
-
import { useState, useEffect } from 'react';
|
|
9
|
-
import '../core/adapters/agui/index.js';
|
|
10
|
-
import { stateManager } from '../core/adapters/agui/state/StateManager.js';
|
|
11
|
-
import '@babel/runtime/helpers/classCallCheck';
|
|
12
|
-
import '@babel/runtime/helpers/createClass';
|
|
13
|
-
import '../core/adapters/agui/event-mapper.js';
|
|
14
|
-
import '@babel/runtime/helpers/toConsumableArray';
|
|
15
|
-
import '@babel/runtime/helpers/typeof';
|
|
16
|
-
import '@babel/runtime/helpers/defineProperty';
|
|
17
|
-
import '../core/adapters/agui/events.js';
|
|
18
|
-
import 'zod';
|
|
19
|
-
import '../core/adapters/agui/types.js';
|
|
20
|
-
import '@babel/runtime/helpers/possibleConstructorReturn';
|
|
21
|
-
import '@babel/runtime/helpers/getPrototypeOf';
|
|
22
|
-
import '@babel/runtime/helpers/inherits';
|
|
23
|
-
import '@babel/runtime/helpers/wrapNativeSuper';
|
|
24
|
-
import '../core/utils/index.js';
|
|
25
|
-
|
|
26
|
-
function useAgentState() {
|
|
27
|
-
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
28
|
-
var initialState = options.initialState,
|
|
29
|
-
targetStateKey = options.stateKey;
|
|
30
|
-
var _useState = useState(function () {
|
|
31
|
-
var map = /* @__PURE__ */new Map();
|
|
32
|
-
if (targetStateKey) {
|
|
33
|
-
var targetState = stateManager.getState(targetStateKey);
|
|
34
|
-
if (targetState !== void 0) {
|
|
35
|
-
map.set(targetStateKey, targetState);
|
|
36
|
-
}
|
|
37
|
-
} else {
|
|
38
|
-
var currentStateKey2 = stateManager.getCurrentStateKey();
|
|
39
|
-
if (currentStateKey2) {
|
|
40
|
-
var currentState = stateManager.getCurrentState();
|
|
41
|
-
if (currentState !== void 0) {
|
|
42
|
-
map.set(currentStateKey2, currentState);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
return map;
|
|
47
|
-
}),
|
|
48
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
49
|
-
stateMap = _useState2[0],
|
|
50
|
-
setStateMap = _useState2[1];
|
|
51
|
-
var _useState3 = useState(function () {
|
|
52
|
-
return targetStateKey || stateManager.getCurrentStateKey();
|
|
53
|
-
}),
|
|
54
|
-
_useState4 = _slicedToArray(_useState3, 2),
|
|
55
|
-
currentStateKey = _useState4[0],
|
|
56
|
-
setCurrentStateKey = _useState4[1];
|
|
57
|
-
var _useState5 = useState(false),
|
|
58
|
-
_useState6 = _slicedToArray(_useState5, 2),
|
|
59
|
-
updating = _useState6[0],
|
|
60
|
-
setUpdating = _useState6[1];
|
|
61
|
-
useEffect(function () {
|
|
62
|
-
if (targetStateKey) {
|
|
63
|
-
var unsubscribe2 = stateManager.subscribe(targetStateKey, function (newState) {
|
|
64
|
-
setStateMap(function (prev) {
|
|
65
|
-
var newMap = new Map(prev);
|
|
66
|
-
newMap.set(targetStateKey, newState);
|
|
67
|
-
return newMap;
|
|
68
|
-
});
|
|
69
|
-
setUpdating(false);
|
|
70
|
-
});
|
|
71
|
-
return unsubscribe2;
|
|
72
|
-
}
|
|
73
|
-
var unsubscribe = stateManager.subscribeToCurrentState(function (newState, newStateKey) {
|
|
74
|
-
if (newStateKey) {
|
|
75
|
-
setStateMap(function (prev) {
|
|
76
|
-
var newMap = new Map(prev);
|
|
77
|
-
newMap.set(newStateKey, newState);
|
|
78
|
-
return newMap;
|
|
79
|
-
});
|
|
80
|
-
setCurrentStateKey(newStateKey);
|
|
81
|
-
} else {
|
|
82
|
-
setStateMap(/* @__PURE__ */new Map());
|
|
83
|
-
setCurrentStateKey(null);
|
|
84
|
-
}
|
|
85
|
-
setUpdating(false);
|
|
86
|
-
});
|
|
87
|
-
return unsubscribe;
|
|
88
|
-
}, [targetStateKey]);
|
|
89
|
-
var displayStateKey = targetStateKey || currentStateKey;
|
|
90
|
-
var displayState = displayStateKey ? stateMap.get(displayStateKey) : void 0;
|
|
91
|
-
return {
|
|
92
|
-
state: displayState !== void 0 ? displayState : initialState || null,
|
|
93
|
-
stateKey: displayStateKey,
|
|
94
|
-
updating: updating,
|
|
95
|
-
stateMap: stateMap,
|
|
96
|
-
setStateMap: setStateMap
|
|
97
|
-
};
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
export { useAgentState };
|
|
101
|
-
//# sourceMappingURL=useAgentStateAction.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useAgentStateAction.js","sources":["../../../../pro-components/chat/chatbot/hooks/useAgentStateAction.ts"],"sourcesContent":["import { useState, useEffect } from 'react';\nimport { stateManager } from '../core/adapters/agui';\nimport type { StateActionOptions, UseStateActionReturn } from '../core/adapters/agui';\n\n/**\n/**\n * 状态订阅Hook\n * 支持两种模式:\n * 1. 不指定stateKey:订阅当前活跃stateKey的状态(会跟随最新状态变化)\n * 2. 指定stateKey:订阅特定stateKey的状态(不会跟随其他stateKey变化)\n */\nexport function useAgentState<T = any>(options: StateActionOptions = {}): UseStateActionReturn<T> {\n const { initialState, stateKey: targetStateKey } = options;\n\n // 状态Map:stateKey -> state\n const [stateMap, setStateMap] = useState<Map<string, T>>(() => {\n const map = new Map<string, T>();\n\n if (targetStateKey) {\n // 如果指定了stateKey,获取该stateKey的状态\n const targetState = stateManager.getState(targetStateKey);\n if (targetState !== undefined) {\n map.set(targetStateKey, targetState);\n }\n } else {\n // 如果没有指定stateKey,获取当前stateKey的状态\n const currentStateKey = stateManager.getCurrentStateKey();\n if (currentStateKey) {\n const currentState = stateManager.getCurrentState();\n if (currentState !== undefined) {\n map.set(currentStateKey, currentState);\n }\n }\n }\n\n return map;\n });\n\n const [currentStateKey, setCurrentStateKey] = useState<string | null>(\n () => targetStateKey || stateManager.getCurrentStateKey(),\n );\n\n const [updating, setUpdating] = useState(false);\n\n // 订阅状态变化\n useEffect(() => {\n if (targetStateKey) {\n // 模式1:订阅特定stateKey的状态\n const unsubscribe = stateManager.subscribe(targetStateKey, (newState: T) => {\n setStateMap((prev) => {\n const newMap = new Map(prev);\n newMap.set(targetStateKey, newState);\n return newMap;\n });\n setUpdating(false);\n });\n\n return unsubscribe;\n }\n // 模式2:订阅当前活跃stateKey的状态\n const unsubscribe = stateManager.subscribeToCurrentState((newState: T, newStateKey: string | null) => {\n if (newStateKey) {\n setStateMap((prev) => {\n const newMap = new Map(prev);\n newMap.set(newStateKey, newState);\n return newMap;\n });\n setCurrentStateKey(newStateKey);\n } else {\n // 如果没有当前stateKey,清空状态\n setStateMap(new Map());\n setCurrentStateKey(null);\n }\n setUpdating(false);\n });\n\n return unsubscribe;\n }, [targetStateKey]);\n\n // 获取当前应该显示的状态\n const displayStateKey = targetStateKey || currentStateKey;\n const displayState = displayStateKey ? stateMap.get(displayStateKey) : undefined;\n\n return {\n state: displayState !== undefined ? displayState : initialState || null,\n stateKey: displayStateKey,\n updating,\n stateMap,\n setStateMap,\n };\n}\n"],"names":["useAgentState","options","arguments","length","undefined","initialState","targetStateKey","stateKey","_useState","useState","map","Map","targetState","stateManager","getState","set","currentStateKey","getCurrentStateKey","currentState","getCurrentState","_useState2","_slicedToArray","stateMap","setStateMap","_useState3","_useState4","setCurrentStateKey","_useState5","_useState6","updating","setUpdating","useEffect","unsubscribe","subscribe","newState","prev","newMap","subscribeToCurrentState","newStateKey","displayStateKey","displayState","get","state"],"mappings":"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"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import type { AgentToolcallConfig } from '../components/toolcall/types';
|
|
2
|
-
/**
|
|
3
|
-
* 统一的、智能的 Agent Toolcall 适配器 Hook
|
|
4
|
-
* 用于注册 Agent Toolcall 配置到全局注册表
|
|
5
|
-
*/
|
|
6
|
-
export declare function useAgentToolcall<TArgs extends object = any, TResult = any, TResponse = any>(config: AgentToolcallConfig<TArgs, TResult, TResponse>): AgentToolcallConfig<TArgs, TResult, TResponse>;
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* tdesign v1.0.1-beta.18
|
|
3
|
-
* (c) 2025 tdesign
|
|
4
|
-
* @license MIT
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
import { useRef, useEffect } from 'react';
|
|
8
|
-
import { agentToolcallRegistry } from '../components/toolcall/registry.js';
|
|
9
|
-
import '@babel/runtime/helpers/classCallCheck';
|
|
10
|
-
import '@babel/runtime/helpers/createClass';
|
|
11
|
-
import '@babel/runtime/helpers/defineProperty';
|
|
12
|
-
|
|
13
|
-
function useAgentToolcall(config) {
|
|
14
|
-
var configRef = useRef(config);
|
|
15
|
-
useEffect(function () {
|
|
16
|
-
agentToolcallRegistry.register(config);
|
|
17
|
-
return function () {
|
|
18
|
-
agentToolcallRegistry.unregister(config.name);
|
|
19
|
-
};
|
|
20
|
-
}, [config.name]);
|
|
21
|
-
useEffect(function () {
|
|
22
|
-
configRef.current = config;
|
|
23
|
-
agentToolcallRegistry.register(config);
|
|
24
|
-
}, [config]);
|
|
25
|
-
return configRef.current;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
export { useAgentToolcall };
|
|
29
|
-
//# sourceMappingURL=useAgentToolcallAction.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useAgentToolcallAction.js","sources":["../../../../pro-components/chat/chatbot/hooks/useAgentToolcallAction.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\nimport type { AgentToolcallConfig } from '../components/toolcall/types';\nimport { agentToolcallRegistry } from '../components/toolcall/registry';\n\n/**\n * 统一的、智能的 Agent Toolcall 适配器 Hook\n * 用于注册 Agent Toolcall 配置到全局注册表\n */\nexport function useAgentToolcall<TArgs extends object = any, TResult = any, TResponse = any>(\n config: AgentToolcallConfig<TArgs, TResult, TResponse>,\n) {\n const configRef = useRef(config);\n\n useEffect(() => {\n // 注册 Agent Toolcall\n agentToolcallRegistry.register(config);\n\n // 清理函数:组件卸载时取消注册\n return () => {\n agentToolcallRegistry.unregister(config.name);\n };\n }, [config.name]);\n\n // 更新配置引用\n useEffect(() => {\n configRef.current = config;\n agentToolcallRegistry.register(config);\n }, [config]);\n\n return configRef.current;\n}\n"],"names":["useAgentToolcall","config","configRef","useRef","useEffect","agentToolcallRegistry","register","unregister","name","current"],"mappings":";;;;;;;;;;;;AAQO,SAASA,iBACdC,MACA,EAAA;AACM,EAAA,IAAAC,SAAA,GAAYC,OAAOF,MAAM,CAAA,CAAA;AAE/BG,EAAAA,SAAA,CAAU,YAAM;AAEdC,IAAAA,qBAAA,CAAsBC,SAASL,MAAM,CAAA,CAAA;AAGrC,IAAA,OAAO,YAAM;AACWI,MAAAA,qBAAA,CAAAE,UAAA,CAAWN,OAAOO,IAAI,CAAA,CAAA;KAC9C,CAAA;AACF,GAAG,EAAA,CAACP,MAAO,CAAAO,IAAI,CAAC,CAAA,CAAA;AAGhBJ,EAAAA,SAAA,CAAU,YAAM;IACdF,SAAA,CAAUO,OAAU,GAAAR,MAAA,CAAA;AACpBI,IAAAA,qBAAA,CAAsBC,SAASL,MAAM,CAAA,CAAA;AACvC,GAAA,EAAG,CAACA,MAAM,CAAC,CAAA,CAAA;EAEX,OAAOC,SAAU,CAAAO,OAAA,CAAA;AACnB;;;;"}
|
package/es/chatbot/useChat.d.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import type { ChatMessagesData, ChatStatus } from 'tdesign-web-components/lib/chatbot/core/type';
|
|
2
|
-
import { TdChatProps } from 'tdesign-web-components';
|
|
3
|
-
import ChatEngine from 'tdesign-web-components/lib/chatbot/core';
|
|
4
|
-
export type IUseChat = Pick<TdChatProps, 'defaultMessages' | 'chatServiceConfig'>;
|
|
5
|
-
export type IChatEngine = typeof ChatEngine;
|
|
6
|
-
export declare const useChat: ({ defaultMessages: initialMessages, chatServiceConfig }: IUseChat) => {
|
|
7
|
-
chatEngine: ChatEngine;
|
|
8
|
-
messages: ChatMessagesData[];
|
|
9
|
-
status: ChatStatus;
|
|
10
|
-
};
|
package/es/chatbot/useChat.js
DELETED
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* tdesign v1.0.1-beta.14
|
|
3
|
-
* (c) 2025 tdesign
|
|
4
|
-
* @license MIT
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
8
|
-
import { useState, useRef, useEffect } from 'react';
|
|
9
|
-
import ChatEngine from 'tdesign-web-components/lib/chatbot/core';
|
|
10
|
-
|
|
11
|
-
var useChat = function useChat(_ref) {
|
|
12
|
-
var initialMessages = _ref.defaultMessages,
|
|
13
|
-
chatServiceConfig = _ref.chatServiceConfig;
|
|
14
|
-
var _useState = useState([]),
|
|
15
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
16
|
-
messages = _useState2[0],
|
|
17
|
-
setMessage = _useState2[1];
|
|
18
|
-
var _useState3 = useState("idle"),
|
|
19
|
-
_useState4 = _slicedToArray(_useState3, 2),
|
|
20
|
-
status = _useState4[0],
|
|
21
|
-
setStatus = _useState4[1];
|
|
22
|
-
var chatEngineRef = useRef(new ChatEngine());
|
|
23
|
-
var msgSubscribeRef = useRef(null);
|
|
24
|
-
var chatEngine = chatEngineRef.current;
|
|
25
|
-
var syncState = function syncState(state) {
|
|
26
|
-
var _state$at;
|
|
27
|
-
setMessage(state);
|
|
28
|
-
setStatus(((_state$at = state.at(-1)) === null || _state$at === void 0 ? void 0 : _state$at.status) || "idle");
|
|
29
|
-
};
|
|
30
|
-
var subscribeToChat = function subscribeToChat() {
|
|
31
|
-
msgSubscribeRef.current = chatEngine.messageStore.subscribe(function (state) {
|
|
32
|
-
syncState(state.messages);
|
|
33
|
-
});
|
|
34
|
-
};
|
|
35
|
-
var initChat = function initChat() {
|
|
36
|
-
chatEngine.init(chatServiceConfig, initialMessages);
|
|
37
|
-
syncState(initialMessages);
|
|
38
|
-
subscribeToChat();
|
|
39
|
-
};
|
|
40
|
-
useEffect(function () {
|
|
41
|
-
initChat();
|
|
42
|
-
return function () {
|
|
43
|
-
var _msgSubscribeRef$curr;
|
|
44
|
-
return (_msgSubscribeRef$curr = msgSubscribeRef.current) === null || _msgSubscribeRef$curr === void 0 ? void 0 : _msgSubscribeRef$curr.call(msgSubscribeRef);
|
|
45
|
-
};
|
|
46
|
-
}, []);
|
|
47
|
-
return {
|
|
48
|
-
chatEngine: chatEngine,
|
|
49
|
-
messages: messages,
|
|
50
|
-
status: status
|
|
51
|
-
};
|
|
52
|
-
};
|
|
53
|
-
|
|
54
|
-
export { useChat };
|
|
55
|
-
//# sourceMappingURL=useChat.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useChat.js","sources":["../../../pro-components/chat/chatbot/useChat.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport type { ChatMessagesData, ChatStatus } from 'tdesign-web-components/lib/chatbot/core/type';\nimport { TdChatProps } from 'tdesign-web-components';\nimport ChatEngine from 'tdesign-web-components/lib/chatbot/core';\n\n// @ts-ignore\nexport type IUseChat = Pick<TdChatProps, 'defaultMessages' | 'chatServiceConfig'>;\nexport type IChatEngine = typeof ChatEngine;\n\nexport const useChat = ({ defaultMessages: initialMessages, chatServiceConfig }: IUseChat) => {\n const [messages, setMessage] = useState<ChatMessagesData[]>([]);\n const [status, setStatus] = useState<ChatStatus>('idle');\n const chatEngineRef = useRef<ChatEngine>(new ChatEngine());\n const msgSubscribeRef = useRef<null | (() => void)>(null);\n\n const chatEngine = chatEngineRef.current;\n\n const syncState = (state: ChatMessagesData[]) => {\n setMessage(state);\n setStatus(state.at(-1)?.status || 'idle');\n };\n\n const subscribeToChat = () => {\n msgSubscribeRef.current = chatEngine.messageStore.subscribe((state) => {\n syncState(state.messages);\n });\n };\n\n const initChat = () => {\n // @ts-ignore\n chatEngine.init(chatServiceConfig, initialMessages);\n // @ts-ignore\n syncState(initialMessages);\n subscribeToChat();\n };\n\n useEffect(() => {\n initChat();\n return () => msgSubscribeRef.current?.();\n }, []);\n\n return {\n chatEngine,\n messages,\n status,\n };\n};\n"],"names":["useChat","initialMessages","_ref","defaultMessages","chatServiceConfig","_useState","useState","_useState2","_slicedToArray","messages","setMessage","_useState3","_useState4","status","setStatus","chatEngineRef","useRef","ChatEngine","msgSubscribeRef","chatEngine","current","syncState","state","_state$at","at","subscribeToChat","messageStore","subscribe","initChat","init","useEffect","_msgSubscribeRef$curr","call"],"mappings":";;;;;;;;;;IASaA,UAAU,SAAVA,cAAiF;AAAA,EAAA,IAAnDC,eAAA,GAAAC,IAAA,CAAjBC,eAAiB;IAAiBC,yBAAAA;AAC1D,EAAA,IAAAC,SAAA,GAA+BC,QAAA,CAA6B,EAAE,CAAA;IAAAC,UAAA,GAAAC,cAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAAvDI,IAAAA,QAAU,GAAAF,UAAA,CAAA,CAAA,CAAA;AAAAG,IAAAA,UAAU,GAAAH,UAAA,CAAA,CAAA,CAAA,CAAA;AAC3B,EAAA,IAAAI,UAAA,GAA4BL,SAAqB,MAAM,CAAA;IAAAM,UAAA,GAAAJ,cAAA,CAAAG,UAAA,EAAA,CAAA,CAAA;AAAhDE,IAAAA,MAAA,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAQE,IAAAA,SAAS,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;EACxB,IAAMG,aAAgB,GAAAC,MAAA,CAAmB,IAAIC,UAAA,EAAY,CAAA,CAAA;AACnD,EAAA,IAAAC,eAAA,GAAkBF,OAA4B,IAAI,CAAA,CAAA;AAExD,EAAA,IAAMG,aAAaJ,aAAc,CAAAK,OAAA,CAAA;AAE3B,EAAA,IAAAC,SAAA,GAAY,SAAZA,SAAAA,CAAaC,KAA8B,EAAA;AAAA,IAAA,IAAAC,SAAA,CAAA;IAC/Cb,UAAA,CAAWY,KAAK,CAAA,CAAA;AAChBR,IAAAA,SAAA,CAAU,CAAAS,CAAAA,SAAA,GAAAD,KAAM,CAAAE,EAAA,CAAG,CAAE,CAAA,CAAA,MAAA,IAAA,IAAAD,SAAA,KAAXA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,SAAA,CAAcV,WAAU,MAAM,CAAA,CAAA;GAC1C,CAAA;AAEA,EAAA,IAAMY,kBAAkB,SAAlBA,kBAAwB;IAC5BP,eAAA,CAAgBE,OAAU,GAAAD,UAAA,CAAWO,YAAa,CAAAC,SAAA,CAAU,UAACL,KAAU,EAAA;AACrED,MAAAA,SAAA,CAAUC,MAAMb,QAAQ,CAAA,CAAA;AAC1B,KAAC,CAAA,CAAA;GACH,CAAA;AAEA,EAAA,IAAMmB,WAAW,SAAXA,WAAiB;AAEVT,IAAAA,UAAA,CAAAU,IAAA,CAAKzB,mBAAmBH,eAAe,CAAA,CAAA;IAElDoB,SAAA,CAAUpB,eAAe,CAAA,CAAA;AACTwB,IAAAA,eAAA,EAAA,CAAA;GAClB,CAAA;AAEAK,EAAAA,SAAA,CAAU,YAAM;AACLF,IAAAA,QAAA,EAAA,CAAA;IACF,OAAA,YAAA;AAAA,MAAA,IAAAG,qBAAA,CAAA;AAAA,MAAA,OAAA,CAAAA,qBAAA,GAAMb,gBAAgBE,OAAU,MAAA,IAAA,IAAAW,qBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAA1BA,qBAAA,CAAAC,IAAA,CAAAd,eAA0B,CAAA,CAAA;AAAA,KAAA,CAAA;GACzC,EAAG,EAAE,CAAA,CAAA;EAEE,OAAA;AACLC,IAAAA,UAAA,EAAAA,UAAA;AACAV,IAAAA,QAAA,EAAAA,QAAA;AACAI,IAAAA,MAAA,EAAAA,MAAAA;GACF,CAAA;AACF;;;;"}
|