@tdesign-react/chat 1.1.0-alpha.5 → 1.1.0-alpha.6
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/es/_chunks/dep-1007ac80.js +205 -0
- package/es/_chunks/dep-1007ac80.js.map +1 -0
- package/es/_chunks/dep-16520c2b.js +1247 -0
- package/es/_chunks/dep-16520c2b.js.map +1 -0
- package/es/_chunks/dep-1743bd61.js +438 -0
- package/es/_chunks/dep-1743bd61.js.map +1 -0
- package/es/_chunks/dep-56f5e08e.js +448 -0
- package/es/_chunks/dep-56f5e08e.js.map +1 -0
- package/es/_chunks/dep-96eca06f.js +169 -0
- package/es/_chunks/dep-96eca06f.js.map +1 -0
- package/es/_util/reactify.js +1 -1
- package/es/_util/useDynamicStyle.js +1 -1
- package/es/attachments/index.js +1 -1
- package/es/chat-actionbar/index.js +1 -1
- package/es/chat-engine/components/activity/index.js +3 -1
- package/es/chat-engine/components/activity/index.js.map +1 -1
- package/es/chat-engine/components/activity/registry.js +1 -1
- package/es/chat-engine/components/activity/render.d.ts +4 -0
- package/es/chat-engine/components/activity/render.js +14 -2
- package/es/chat-engine/components/activity/render.js.map +1 -1
- package/es/chat-engine/components/activity/types.js +1 -1
- package/es/chat-engine/components/index.js +28 -20
- package/es/chat-engine/components/index.js.map +1 -1
- package/es/chat-engine/components/json-render/catalog/atomic/button.d.ts +14 -0
- package/es/chat-engine/components/json-render/catalog/atomic/button.js +71 -0
- package/es/chat-engine/components/json-render/catalog/atomic/button.js.map +1 -0
- package/es/chat-engine/components/json-render/catalog/atomic/card.d.ts +11 -0
- package/es/chat-engine/components/json-render/catalog/atomic/card.js +57 -0
- package/es/chat-engine/components/json-render/catalog/atomic/card.js.map +1 -0
- package/es/chat-engine/components/json-render/catalog/atomic/input.d.ts +20 -0
- package/es/chat-engine/components/json-render/catalog/atomic/input.js +76 -0
- package/es/chat-engine/components/json-render/catalog/atomic/input.js.map +1 -0
- package/es/chat-engine/components/json-render/catalog/atomic/layout.d.ts +44 -0
- package/es/chat-engine/components/json-render/catalog/atomic/layout.js +129 -0
- package/es/chat-engine/components/json-render/catalog/atomic/layout.js.map +1 -0
- package/es/chat-engine/components/json-render/catalog/atomic/text.d.ts +11 -0
- package/es/chat-engine/components/json-render/catalog/atomic/text.js +31 -0
- package/es/chat-engine/components/json-render/catalog/atomic/text.js.map +1 -0
- package/es/chat-engine/components/json-render/catalog/catalog-to-prompt.d.ts +614 -0
- package/es/chat-engine/components/json-render/catalog/catalog-to-prompt.js +779 -0
- package/es/chat-engine/components/json-render/catalog/catalog-to-prompt.js.map +1 -0
- package/es/chat-engine/components/json-render/contexts/actions.d.ts +5 -0
- package/es/chat-engine/components/json-render/contexts/actions.js +39 -16
- package/es/chat-engine/components/json-render/contexts/actions.js.map +1 -1
- package/es/chat-engine/components/json-render/contexts/data.d.ts +99 -7
- package/es/chat-engine/components/json-render/contexts/data.js +155 -76
- package/es/chat-engine/components/json-render/contexts/data.js.map +1 -1
- package/es/chat-engine/components/json-render/contexts/index.d.ts +4 -0
- package/es/chat-engine/components/json-render/contexts/index.js +27 -0
- package/es/chat-engine/components/json-render/contexts/index.js.map +1 -0
- package/es/chat-engine/components/json-render/contexts/store.d.ts +67 -0
- package/es/chat-engine/components/json-render/contexts/store.js +104 -0
- package/es/chat-engine/components/json-render/contexts/store.js.map +1 -0
- package/es/chat-engine/components/json-render/contexts/tree.d.ts +44 -0
- package/es/chat-engine/components/json-render/contexts/tree.js +78 -0
- package/es/chat-engine/components/json-render/contexts/tree.js.map +1 -0
- package/es/chat-engine/components/json-render/contexts/validation.js +13 -5
- package/es/chat-engine/components/json-render/contexts/validation.js.map +1 -1
- package/es/chat-engine/components/json-render/contexts/visibility.d.ts +12 -2
- package/es/chat-engine/components/json-render/contexts/visibility.js +32 -22
- package/es/chat-engine/components/json-render/contexts/visibility.js.map +1 -1
- package/es/chat-engine/components/json-render/index.d.ts +9 -32
- package/es/chat-engine/components/json-render/index.js +59 -19
- package/es/chat-engine/components/json-render/index.js.map +1 -1
- package/es/chat-engine/components/json-render/registry/a2ui-binding.d.ts +64 -0
- package/es/chat-engine/components/json-render/registry/a2ui-binding.js +76 -0
- package/es/chat-engine/components/json-render/registry/a2ui-binding.js.map +1 -0
- package/es/chat-engine/components/json-render/registry/a2ui-registry.d.ts +78 -0
- package/es/chat-engine/components/json-render/registry/a2ui-registry.js +76 -0
- package/es/chat-engine/components/json-render/registry/a2ui-registry.js.map +1 -0
- package/es/chat-engine/components/json-render/registry/config.d.ts +142 -0
- package/es/chat-engine/components/json-render/registry/config.js +76 -0
- package/es/chat-engine/components/json-render/registry/config.js.map +1 -0
- package/es/chat-engine/components/json-render/registry/index.d.ts +137 -0
- package/es/chat-engine/components/json-render/registry/index.js +76 -0
- package/es/chat-engine/components/json-render/registry/index.js.map +1 -0
- package/es/chat-engine/components/json-render/renderer/A2UIJsonRenderActivityRenderer.d.ts +35 -0
- package/es/chat-engine/components/json-render/renderer/A2UIJsonRenderActivityRenderer.js +271 -0
- package/es/chat-engine/components/json-render/renderer/A2UIJsonRenderActivityRenderer.js.map +1 -0
- package/es/chat-engine/components/json-render/renderer/JsonRenderActivityRenderer.d.ts +44 -0
- package/es/chat-engine/components/json-render/renderer/JsonRenderActivityRenderer.js +63 -0
- package/es/chat-engine/components/json-render/renderer/JsonRenderActivityRenderer.js.map +1 -0
- package/es/chat-engine/components/json-render/renderer/JsonUIRenderer.d.ts +44 -0
- package/es/chat-engine/components/json-render/renderer/JsonUIRenderer.js +131 -0
- package/es/chat-engine/components/json-render/renderer/JsonUIRenderer.js.map +1 -0
- package/es/chat-engine/components/json-render/renderer/_index.d.ts +71 -0
- package/es/chat-engine/components/json-render/renderer/_index.js +133 -0
- package/es/chat-engine/components/json-render/renderer/_index.js.map +1 -0
- package/es/chat-engine/components/json-render/renderer/index.d.ts +71 -0
- package/es/chat-engine/components/json-render/renderer/index.js +125 -0
- package/es/chat-engine/components/json-render/renderer/index.js.map +1 -0
- package/es/chat-engine/components/json-render/types.d.ts +37 -19
- package/es/chat-engine/components/json-render/types.js +1 -1
- package/es/chat-engine/components/provider/agent-state.js +14 -7
- package/es/chat-engine/components/provider/agent-state.js.map +1 -1
- package/es/chat-engine/components/toolcall/index.js +14 -7
- package/es/chat-engine/components/toolcall/index.js.map +1 -1
- package/es/chat-engine/components/toolcall/registry.js +1 -1
- package/es/chat-engine/components/toolcall/render.js +16 -9
- package/es/chat-engine/components/toolcall/render.js.map +1 -1
- package/es/chat-engine/components/toolcall/types.js +1 -1
- package/es/chat-engine/core/adapters/a2ui/index.d.ts +10 -0
- package/es/chat-engine/core/adapters/a2ui/index.js +24 -0
- package/es/chat-engine/core/adapters/a2ui/index.js.map +1 -0
- package/es/chat-engine/core/adapters/a2ui/processor/A2uiMessageProcessor.d.ts +197 -0
- package/es/chat-engine/core/adapters/a2ui/processor/A2uiMessageProcessor.js +438 -0
- package/es/chat-engine/core/adapters/a2ui/processor/A2uiMessageProcessor.js.map +1 -0
- package/es/chat-engine/core/adapters/a2ui/processor/ComponentTree.d.ts +53 -0
- package/es/chat-engine/core/adapters/a2ui/processor/ComponentTree.js +158 -0
- package/es/chat-engine/core/adapters/a2ui/processor/ComponentTree.js.map +1 -0
- package/es/chat-engine/core/adapters/a2ui/processor/DataStore.d.ts +63 -0
- package/es/chat-engine/core/adapters/a2ui/processor/DataStore.js +172 -0
- package/es/chat-engine/core/adapters/a2ui/processor/DataStore.js.map +1 -0
- package/es/chat-engine/core/adapters/a2ui/processor/PathResolver.d.ts +47 -0
- package/es/chat-engine/core/adapters/a2ui/processor/PathResolver.js +99 -0
- package/es/chat-engine/core/adapters/a2ui/processor/PathResolver.js.map +1 -0
- package/es/chat-engine/core/adapters/a2ui/types/index.d.ts +4 -0
- package/es/chat-engine/core/adapters/a2ui/types/index.js +9 -0
- package/es/chat-engine/core/adapters/a2ui/types/index.js.map +1 -0
- package/es/chat-engine/core/adapters/a2ui/types/types.d.ts +770 -0
- package/es/chat-engine/core/adapters/a2ui/types/types.js +104 -0
- package/es/chat-engine/core/adapters/a2ui/types/types.js.map +1 -0
- package/es/chat-engine/core/adapters/a2ui/utils/binding.d.ts +34 -0
- package/es/chat-engine/core/adapters/a2ui/utils/binding.js +1784 -0
- package/es/chat-engine/core/adapters/a2ui/utils/binding.js.map +1 -0
- package/es/chat-engine/core/adapters/a2ui/utils/index.d.ts +5 -0
- package/es/chat-engine/core/adapters/a2ui/utils/index.js +13 -0
- package/es/chat-engine/core/adapters/a2ui/utils/index.js.map +1 -0
- package/es/chat-engine/core/adapters/a2ui/utils/validation.d.ts +70 -0
- package/es/chat-engine/core/adapters/a2ui/utils/validation.js +333 -0
- package/es/chat-engine/core/adapters/a2ui/utils/validation.js.map +1 -0
- package/es/chat-engine/core/adapters/agui/ActivityManager.d.ts +93 -0
- package/es/chat-engine/core/adapters/agui/ActivityManager.js +148 -0
- package/es/chat-engine/core/adapters/agui/ActivityManager.js.map +1 -0
- package/es/chat-engine/core/adapters/agui/StateManager.d.ts +99 -0
- package/es/chat-engine/core/adapters/agui/StateManager.js +172 -0
- package/es/chat-engine/core/adapters/agui/StateManager.js.map +1 -0
- package/es/chat-engine/core/adapters/agui/event-mapper.d.ts +1 -1
- package/es/chat-engine/core/adapters/agui/event-mapper.js +7 -7
- package/es/chat-engine/core/adapters/agui/event-mapper.js.map +1 -1
- package/es/chat-engine/core/adapters/agui/index.d.ts +4 -7
- package/es/chat-engine/core/adapters/agui/index.js +11 -16
- package/es/chat-engine/core/adapters/agui/index.js.map +1 -1
- package/es/chat-engine/core/adapters/agui/types/events.d.ts +1550 -0
- package/es/chat-engine/core/adapters/agui/types/events.js +15 -0
- package/es/chat-engine/core/adapters/agui/types/events.js.map +1 -0
- package/es/chat-engine/core/adapters/agui/types/index.d.ts +818 -0
- package/es/chat-engine/core/adapters/agui/types/index.js +277 -0
- package/es/chat-engine/core/adapters/agui/types/index.js.map +1 -0
- package/es/chat-engine/core/adapters/agui/utils.js +1 -1
- package/es/chat-engine/core/adapters/index.d.ts +5 -0
- package/es/chat-engine/core/adapters/index.js +34 -0
- package/es/chat-engine/core/adapters/index.js.map +1 -0
- package/es/chat-engine/core/adapters/json-render/SurfaceStateManager.d.ts +114 -0
- package/es/chat-engine/core/adapters/json-render/SurfaceStateManager.js +194 -0
- package/es/chat-engine/core/adapters/json-render/SurfaceStateManager.js.map +1 -0
- package/es/chat-engine/core/adapters/json-render/a2ui-to-jsonrender.d.ts +49 -0
- package/es/chat-engine/core/adapters/json-render/a2ui-to-jsonrender.js +307 -0
- package/es/chat-engine/core/adapters/json-render/a2ui-to-jsonrender.js.map +1 -0
- package/es/chat-engine/core/adapters/json-render/engine.d.ts +58 -0
- package/es/chat-engine/core/adapters/json-render/engine.js +88 -0
- package/es/chat-engine/core/adapters/json-render/engine.js.map +1 -0
- package/es/chat-engine/core/adapters/json-render/index.d.ts +8 -0
- package/es/chat-engine/core/adapters/json-render/index.js +18 -0
- package/es/chat-engine/core/adapters/json-render/index.js.map +1 -0
- package/es/chat-engine/core/adapters/json-render/types/a2ui.d.ts +96 -0
- package/es/chat-engine/core/adapters/json-render/types/a2ui.js +7 -0
- package/es/chat-engine/core/adapters/json-render/types/a2ui.js.map +1 -0
- package/es/chat-engine/core/adapters/json-render/types/core.d.ts +49 -0
- package/es/chat-engine/core/adapters/json-render/types/core.js +7 -0
- package/es/chat-engine/core/adapters/json-render/types/core.js.map +1 -0
- package/es/chat-engine/core/adapters/json-render/types/index.d.ts +5 -0
- package/es/chat-engine/core/adapters/json-render/types/index.js +9 -0
- package/es/chat-engine/core/adapters/json-render/types/index.js.map +1 -0
- package/es/chat-engine/core/event-bus/ChatEventBus.js +1 -1
- package/es/chat-engine/core/event-bus/index.js +1 -1
- package/es/chat-engine/core/event-bus/types.js +1 -1
- package/es/chat-engine/core/index.d.ts +2 -3
- package/es/chat-engine/core/index.js +16 -8
- package/es/chat-engine/core/index.js.map +1 -1
- package/es/chat-engine/core/processor/index.js +1 -1
- package/es/chat-engine/core/server/batch-client.js +1 -1
- package/es/chat-engine/core/server/connection-manager.js +1 -1
- package/es/chat-engine/core/server/errors.js +1 -1
- package/es/chat-engine/core/server/index.js +1 -1
- package/es/chat-engine/core/server/llm-service.js +15 -17
- package/es/chat-engine/core/server/llm-service.js.map +1 -1
- package/es/chat-engine/core/server/sse-client.js +1 -1
- package/es/chat-engine/core/server/sse-parser.js +1 -1
- package/es/chat-engine/core/server/types.js +1 -1
- package/es/chat-engine/core/store/message.js +6 -4
- package/es/chat-engine/core/store/message.js.map +1 -1
- package/es/chat-engine/core/store/model.js +2 -1
- package/es/chat-engine/core/store/model.js.map +1 -1
- package/es/chat-engine/core/store/reactiveState.d.ts +4 -0
- package/es/chat-engine/core/store/reactiveState.js +15 -1235
- package/es/chat-engine/core/store/reactiveState.js.map +1 -1
- package/es/chat-engine/core/type.d.ts +8 -19
- package/es/chat-engine/core/type.js +1 -1
- package/es/chat-engine/core/utils/eventEmitter.js +1 -1
- package/es/chat-engine/core/utils/immutable-patch.d.ts +61 -0
- package/es/chat-engine/core/utils/immutable-patch.js +147 -0
- package/es/chat-engine/core/utils/immutable-patch.js.map +1 -0
- package/es/chat-engine/core/utils/index.d.ts +7 -2
- package/es/chat-engine/core/utils/index.js +8 -12
- package/es/chat-engine/core/utils/index.js.map +1 -1
- package/es/chat-engine/core/utils/json-patch/helpers.js +1 -1
- package/es/chat-engine/core/utils/json-patch/index.js +1 -1
- package/es/chat-engine/core/utils/logger.js +1 -1
- package/es/chat-engine/core/utils/performance.d.ts +94 -0
- package/es/chat-engine/core/utils/performance.js +205 -0
- package/es/chat-engine/core/utils/performance.js.map +1 -0
- package/es/chat-engine/hooks/index.js +14 -7
- package/es/chat-engine/hooks/index.js.map +1 -1
- package/es/chat-engine/hooks/useAgentActivity.js +1 -1
- package/es/chat-engine/hooks/useAgentState.js +14 -7
- package/es/chat-engine/hooks/useAgentState.js.map +1 -1
- package/es/chat-engine/hooks/useAgentToolcall.js +1 -1
- package/es/chat-engine/hooks/useChat.js +14 -7
- package/es/chat-engine/hooks/useChat.js.map +1 -1
- package/es/chat-engine/index.js +28 -20
- package/es/chat-engine/index.js.map +1 -1
- package/es/chat-filecard/index.js +1 -1
- package/es/chat-loading/index.js +1 -1
- package/es/chat-markdown/index.js +1 -1
- package/es/chat-message/index.js +1 -1
- package/es/chat-sender/index.js +1 -1
- package/es/chat-thinking/index.js +1 -1
- package/es/chatbot/index.js +1 -1
- package/es/index.js +28 -20
- package/es/index.js.map +1 -1
- package/es/style/index.js +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* tdesign v1.1.0-alpha.5
|
|
3
|
+
* (c) 2026 tdesign
|
|
4
|
+
* @license MIT
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
|
|
8
|
+
import _createClass from '@babel/runtime/helpers/createClass';
|
|
9
|
+
import _possibleConstructorReturn from '@babel/runtime/helpers/possibleConstructorReturn';
|
|
10
|
+
import _getPrototypeOf from '@babel/runtime/helpers/getPrototypeOf';
|
|
11
|
+
import _inherits from '@babel/runtime/helpers/inherits';
|
|
12
|
+
import { createContext, useContext, useCallback, useSyncExternalStore } from 'react';
|
|
13
|
+
import { Store } from './store.js';
|
|
14
|
+
import '@babel/runtime/helpers/defineProperty';
|
|
15
|
+
|
|
16
|
+
function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
|
|
17
|
+
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
18
|
+
var TreeStore = /*#__PURE__*/function (_Store) {
|
|
19
|
+
function TreeStore() {
|
|
20
|
+
_classCallCheck(this, TreeStore);
|
|
21
|
+
return _callSuper(this, TreeStore, [null]);
|
|
22
|
+
}
|
|
23
|
+
_inherits(TreeStore, _Store);
|
|
24
|
+
return _createClass(TreeStore, [{
|
|
25
|
+
key: "setTree",
|
|
26
|
+
value: function setTree(tree) {
|
|
27
|
+
this.setState(tree);
|
|
28
|
+
}
|
|
29
|
+
}, {
|
|
30
|
+
key: "getTree",
|
|
31
|
+
value: function getTree() {
|
|
32
|
+
return this.getState();
|
|
33
|
+
}
|
|
34
|
+
}, {
|
|
35
|
+
key: "getElement",
|
|
36
|
+
value: function getElement(key) {
|
|
37
|
+
var _this$getState;
|
|
38
|
+
return (_this$getState = this.getState()) === null || _this$getState === void 0 ? void 0 : _this$getState.elements[key];
|
|
39
|
+
}
|
|
40
|
+
}, {
|
|
41
|
+
key: "getRoot",
|
|
42
|
+
value: function getRoot() {
|
|
43
|
+
var _this$getState2;
|
|
44
|
+
return (_this$getState2 = this.getState()) === null || _this$getState2 === void 0 ? void 0 : _this$getState2.root;
|
|
45
|
+
}
|
|
46
|
+
}]);
|
|
47
|
+
}(Store);
|
|
48
|
+
var RenderContext = /*#__PURE__*/createContext(null);
|
|
49
|
+
function useRenderContext() {
|
|
50
|
+
var ctx = useContext(RenderContext);
|
|
51
|
+
if (!ctx) throw new Error("ElementRenderer must be used within RenderContext");
|
|
52
|
+
return ctx;
|
|
53
|
+
}
|
|
54
|
+
function useElement(elementKey) {
|
|
55
|
+
var _useRenderContext = useRenderContext(),
|
|
56
|
+
store = _useRenderContext.store;
|
|
57
|
+
var subscribe = useCallback(function (onStoreChange) {
|
|
58
|
+
return store.subscribe(onStoreChange);
|
|
59
|
+
}, [store]);
|
|
60
|
+
var getSnapshot = useCallback(function () {
|
|
61
|
+
return store.getElement(elementKey);
|
|
62
|
+
}, [store, elementKey]);
|
|
63
|
+
return useSyncExternalStore(subscribe, getSnapshot, getSnapshot);
|
|
64
|
+
}
|
|
65
|
+
function useRoot() {
|
|
66
|
+
var _useRenderContext2 = useRenderContext(),
|
|
67
|
+
store = _useRenderContext2.store;
|
|
68
|
+
var subscribe = useCallback(function (onStoreChange) {
|
|
69
|
+
return store.subscribe(onStoreChange);
|
|
70
|
+
}, [store]);
|
|
71
|
+
var getSnapshot = useCallback(function () {
|
|
72
|
+
return store.getRoot();
|
|
73
|
+
}, [store]);
|
|
74
|
+
return useSyncExternalStore(subscribe, getSnapshot, getSnapshot);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
export { RenderContext, TreeStore, useElement, useRenderContext, useRoot };
|
|
78
|
+
//# sourceMappingURL=tree.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tree.js","sources":["../../../../../../pro-components/chat/chat-engine/components/json-render/contexts/tree.tsx"],"sourcesContent":["import React, { createContext, useContext, useSyncExternalStore, useCallback } from \"react\";\nimport type {\n UIElement,\n UITree,\n} from \"@json-render/core\";\nimport { Store } from \"./store\";\nimport type { ComponentRenderer, ComponentRegistry } from '../types';\n\n/**\n * TreeStore - 外部 store,支持细粒度订阅\n * \n * 继承自通用 Store 基类,提供 UITree 的管理能力:\n * - 配合上游 Structural Sharing(结构共享)使用\n * - 上游 applyPatchImmutable 只重建被修改的节点\n * - 未修改的节点保持原引用\n * - getSnapshot 直接比较引用即可判断是否变化\n */\nexport class TreeStore extends Store<UITree | null> {\n constructor() {\n super(null);\n }\n \n setTree(tree: UITree | null) {\n this.setState(tree);\n }\n \n getTree() {\n return this.getState();\n }\n \n getElement(key: string): UIElement | undefined {\n return this.getState()?.elements[key];\n }\n \n getRoot(): string | undefined {\n return this.getState()?.root;\n }\n}\n\n/**\n * Context 只传递稳定引用\n */\ninterface RenderContextValue {\n store: TreeStore;\n registry: ComponentRegistry;\n loading?: boolean;\n fallback?: ComponentRenderer;\n}\n\nexport const RenderContext = createContext<RenderContextValue | null>(null);\n\nexport function useRenderContext(): RenderContextValue {\n const ctx = useContext(RenderContext);\n if (!ctx) throw new Error('ElementRenderer must be used within RenderContext');\n return ctx;\n}\n\n/**\n * 使用 useSyncExternalStore 订阅特定 element\n * \n * 依赖上游的 Structural Sharing:\n * - 如果 element 引用没变,说明内容没变,直接返回\n * - 如果 element 引用变了,说明内容变了,返回新引用触发重渲染\n */\nexport function useElement(elementKey: string): UIElement | undefined {\n const { store } = useRenderContext();\n \n const subscribe = useCallback(\n (onStoreChange: () => void) => store.subscribe(onStoreChange),\n [store]\n );\n \n // 直接返回 element 引用\n // 由于上游使用 Structural Sharing,引用相同 = 内容相同\n const getSnapshot = useCallback(() => {\n return store.getElement(elementKey);\n }, [store, elementKey]);\n \n return useSyncExternalStore(subscribe, getSnapshot, getSnapshot);\n}\n\n/**\n * Hook: 订阅 root key\n */\nexport function useRoot(): string | undefined {\n const { store } = useRenderContext();\n \n const subscribe = useCallback(\n (onStoreChange: () => void) => store.subscribe(onStoreChange),\n [store]\n );\n \n const getSnapshot = useCallback(() => store.getRoot(), [store]);\n \n return useSyncExternalStore(subscribe, getSnapshot, getSnapshot);\n}\n"],"names":["TreeStore","_classCallCheck","_callSuper","_inherits","_Store","_createClass","key","value","setTree","tree","setState","getTree","getState","getElement","_this$getState","elements","getRoot","_this$getState2","root","Store","RenderContext","createContext","useRenderContext","ctx","useContext","Error","useElement","elementKey","_useRenderContext","store","subscribe","useCallback","onStoreChange","getSnapshot","useSyncExternalStore","useRoot","_useRenderContext2"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* tdesign v1.1.0-alpha.
|
|
2
|
+
* tdesign v1.1.0-alpha.5
|
|
3
3
|
* (c) 2026 tdesign
|
|
4
4
|
* @license MIT
|
|
5
5
|
*/
|
|
@@ -10,7 +10,15 @@ import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
|
10
10
|
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
11
11
|
import React, { createContext, useState, useCallback, useMemo, useContext } from 'react';
|
|
12
12
|
import { runValidation } from '@json-render/core';
|
|
13
|
-
import {
|
|
13
|
+
import { useDataState } from './data.js';
|
|
14
|
+
import '@babel/runtime/helpers/classCallCheck';
|
|
15
|
+
import '@babel/runtime/helpers/createClass';
|
|
16
|
+
import '@babel/runtime/helpers/possibleConstructorReturn';
|
|
17
|
+
import '@babel/runtime/helpers/getPrototypeOf';
|
|
18
|
+
import '@babel/runtime/helpers/inherits';
|
|
19
|
+
import '../../../../_chunks/dep-16520c2b.js';
|
|
20
|
+
import '@babel/runtime/helpers/wrapNativeSuper';
|
|
21
|
+
import './store.js';
|
|
14
22
|
|
|
15
23
|
"use client";
|
|
16
24
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
@@ -22,9 +30,9 @@ function ValidationProvider(_ref) {
|
|
|
22
30
|
var _ref$customFunctions = _ref.customFunctions,
|
|
23
31
|
customFunctions = _ref$customFunctions === void 0 ? {} : _ref$customFunctions,
|
|
24
32
|
children = _ref.children;
|
|
25
|
-
var
|
|
26
|
-
data =
|
|
27
|
-
authState =
|
|
33
|
+
var _useDataState = useDataState(),
|
|
34
|
+
data = _useDataState.data,
|
|
35
|
+
authState = _useDataState.authState;
|
|
28
36
|
var _useState = useState({}),
|
|
29
37
|
_useState2 = _slicedToArray(_useState, 2),
|
|
30
38
|
fieldStates = _useState2[0],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.js","sources":["../../../../../../pro-components/chat/chat-engine/components/json-render/contexts/validation.tsx"],"sourcesContent":["\"use client\";\n\nimport React, {\n createContext,\n useContext,\n useState,\n useCallback,\n useMemo,\n type ReactNode,\n} from \"react\";\nimport {\n runValidation,\n type ValidationConfig,\n type ValidationFunction,\n type ValidationResult,\n} from \"@json-render/core\";\nimport { useData } from \"./data\";\n\n/**\n * Field validation state\n */\nexport interface FieldValidationState {\n /** Whether the field has been touched */\n touched: boolean;\n /** Whether the field has been validated */\n validated: boolean;\n /** Validation result */\n result: ValidationResult | null;\n}\n\n/**\n * Validation context value\n */\nexport interface ValidationContextValue {\n /** Custom validation functions from catalog */\n customFunctions: Record<string, ValidationFunction>;\n /** Validation state by field path */\n fieldStates: Record<string, FieldValidationState>;\n /** Validate a field */\n validate: (path: string, config: ValidationConfig) => ValidationResult;\n /** Mark field as touched */\n touch: (path: string) => void;\n /** Clear validation for a field */\n clear: (path: string) => void;\n /** Validate all fields */\n validateAll: () => boolean;\n /** Register field config */\n registerField: (path: string, config: ValidationConfig) => void;\n}\n\nconst ValidationContext = createContext<ValidationContextValue | null>(null);\n\n/**\n * Props for ValidationProvider\n */\nexport interface ValidationProviderProps {\n /** Custom validation functions from catalog */\n customFunctions?: Record<string, ValidationFunction>;\n children: ReactNode;\n}\n\n/**\n * Provider for validation\n */\nexport function ValidationProvider({\n customFunctions = {},\n children,\n}: ValidationProviderProps) {\n const { data, authState } = useData();\n const [fieldStates, setFieldStates] = useState<\n Record<string, FieldValidationState>\n >({});\n const [fieldConfigs, setFieldConfigs] = useState<\n Record<string, ValidationConfig>\n >({});\n\n const registerField = useCallback(\n (path: string, config: ValidationConfig) => {\n setFieldConfigs((prev) => ({ ...prev, [path]: config }));\n },\n [],\n );\n\n const validate = useCallback(\n (path: string, config: ValidationConfig): ValidationResult => {\n const value = data[path.split(\"/\").filter(Boolean).join(\".\")];\n const result = runValidation(config, {\n value,\n dataModel: data,\n customFunctions,\n authState,\n });\n\n setFieldStates((prev) => ({\n ...prev,\n [path]: {\n touched: prev[path]?.touched ?? true,\n validated: true,\n result,\n },\n }));\n\n return result;\n },\n [data, customFunctions, authState],\n );\n\n const touch = useCallback((path: string) => {\n setFieldStates((prev) => ({\n ...prev,\n [path]: {\n ...prev[path],\n touched: true,\n validated: prev[path]?.validated ?? false,\n result: prev[path]?.result ?? null,\n },\n }));\n }, []);\n\n const clear = useCallback((path: string) => {\n setFieldStates((prev) => {\n const { [path]: _, ...rest } = prev;\n return rest;\n });\n }, []);\n\n const validateAll = useCallback(() => {\n let allValid = true;\n\n for (const [path, config] of Object.entries(fieldConfigs)) {\n const result = validate(path, config);\n if (!result.valid) {\n allValid = false;\n }\n }\n\n return allValid;\n }, [fieldConfigs, validate]);\n\n const value = useMemo<ValidationContextValue>(\n () => ({\n customFunctions,\n fieldStates,\n validate,\n touch,\n clear,\n validateAll,\n registerField,\n }),\n [\n customFunctions,\n fieldStates,\n validate,\n touch,\n clear,\n validateAll,\n registerField,\n ],\n );\n\n return (\n <ValidationContext.Provider value={value}>\n {children}\n </ValidationContext.Provider>\n );\n}\n\n/**\n * Hook to access validation context\n */\nexport function useValidation(): ValidationContextValue {\n const ctx = useContext(ValidationContext);\n if (!ctx) {\n throw new Error(\"useValidation must be used within a ValidationProvider\");\n }\n return ctx;\n}\n\n/**\n * Hook to get validation state for a field\n */\nexport function useFieldValidation(\n path: string,\n config?: ValidationConfig,\n): {\n state: FieldValidationState;\n validate: () => ValidationResult;\n touch: () => void;\n clear: () => void;\n errors: string[];\n isValid: boolean;\n} {\n const {\n fieldStates,\n validate: validateField,\n touch: touchField,\n clear: clearField,\n registerField,\n } = useValidation();\n\n // Register field on mount\n React.useEffect(() => {\n if (config) {\n registerField(path, config);\n }\n }, [path, config, registerField]);\n\n const state = fieldStates[path] ?? {\n touched: false,\n validated: false,\n result: null,\n };\n\n const validate = useCallback(\n () => validateField(path, config ?? { checks: [] }),\n [path, config, validateField],\n );\n\n const touch = useCallback(() => touchField(path), [path, touchField]);\n const clear = useCallback(() => clearField(path), [path, clearField]);\n\n return {\n state,\n validate,\n touch,\n clear,\n errors: state.result?.errors ?? [],\n isValid: state.result?.valid ?? true,\n };\n}\n"],"names":["_toPropertyKey","t","i","_toPrimitive","_typeof","r","e","Symbol","toPrimitive","call","TypeError","String","Number","ownKeys","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","ValidationContext","createContext","ValidationProvider","_ref","_ref$customFunctions","customFunctions","children","_useData","useData","data","authState","_useState","useState","_useState2","_slicedToArray","fieldStates","setFieldStates","_useState3","_useState4","fieldConfigs","setFieldConfigs","registerField","useCallback","path","config","prev","validate","value","split","Boolean","join","result","runValidation","dataModel","_prev$path$touched","_prev$path","touched","validated","touch","_prev$path$validated","_prev$path2","_prev$path$result","_prev$path3","clear","_","rest","_objectWithoutProperties","map","validateAll","allValid","_i","_Object$entries","entries","_Object$entries$_i","valid","useMemo","React","createElement","Provider","useValidation","ctx","useContext","Error","useFieldValidation","_fieldStates$path","_state$result$errors","_state$result","_state$result$valid","_state$result2","_useValidation","validateField","touchField","clearField","useEffect","state","checks","errors","isValid"],"mappings":";;;;;;;;;;;;;;AAAA,YAAA,CAAA;AAAA,SAAAA,cAAAC,CAAAA,CAAA,EAAAC,EAAAA,IAAAA,CAAA,GAAAC,YAAA,CAAAF,CAAA,EAAA,QAAA,CAAA,CAAA,CAAA,OAAA,QAAA,IAAAG,OAAA,CAAAF,CAAA,CAAAA,GAAAA,CAAA,GAAAA,CAAA,GAAA,EAAA,CAAA,EAAA;AAAA,SAAAC,YAAAA,CAAAF,CAAA,EAAAI,CAAA,oBAAAD,OAAA,CAAAH,CAAA,CAAAA,IAAAA,CAAAA,CAAA,SAAAA,CAAA,CAAA,CAAA,IAAAK,CAAA,GAAAL,CAAA,CAAAM,MAAA,CAAAC,WAAA,CAAA,CAAA,CAAA,IAAA,KAAA,CAAA,KAAAF,CAAA,EAAA,EAAA,IAAAJ,CAAA,GAAAI,CAAA,CAAAG,IAAA,CAAAR,CAAA,EAAAI,CAAA,IAAAD,SAAAA,CAAAA,CAAAA,CAAAA,IAAAA,QAAAA,IAAAA,OAAA,CAAAF,CAAA,UAAAA,CAAA,CAAA,CAAA,MAAA,IAAAQ,SAAA,CAAAL,8CAAAA,CAAAA,CAAAA,EAAAA,CAAAA,OAAAA,CAAAA,QAAAA,KAAAA,CAAA,GAAAM,MAAA,GAAAC,MAAA,EAAAX,CAAA,CAAA,CAAA,EAAA;AAAA,SAAAY,OAAAA,CAAAP,CAAA,EAAAD,CAAA,EAAA,EAAA,IAAAJ,CAAA,GAAAa,MAAA,CAAAC,IAAA,CAAAT,CAAA,OAAAQ,MAAA,CAAAE,qBAAA,EAAA,EAAA,IAAAC,CAAA,GAAAH,MAAA,CAAAE,qBAAA,CAAAV,CAAA,CAAA,CAAA,CAAAD,CAAA,KAAAY,CAAA,GAAAA,CAAA,CAAAC,MAAA,CAAAb,UAAAA,CAAA,EAAAS,EAAAA,OAAAA,MAAA,CAAAK,wBAAA,CAAAb,CAAA,EAAAD,CAAA,EAAAe,UAAA,CAAA,EAAA,CAAA,CAAA,EAAAnB,CAAA,CAAAoB,IAAA,CAAAC,KAAA,CAAArB,CAAA,EAAAgB,CAAA,CAAA,CAAA,EAAA,CAAA,OAAAhB,CAAA,CAAA,EAAA;AAAA,SAAAsB,cAAAjB,CAAA,EAAA,EAAA,KAAA,IAAAD,CAAA,GAAAA,CAAAA,EAAAA,CAAA,GAAAmB,SAAA,CAAAC,MAAA,EAAApB,CAAA,EAAAJ,EAAAA,EAAAA,IAAAA,CAAA,WAAAuB,SAAA,CAAAnB,CAAA,CAAAmB,GAAAA,SAAA,CAAAnB,CAAA,QAAAA,CAAA,GAAA,CAAA,GAAAQ,OAAA,CAAAC,MAAA,CAAAb,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAAyB,OAAA,CAAArB,UAAAA,CAAA,IAAAsB,eAAA,CAAArB,CAAA,EAAAD,CAAA,EAAAJ,CAAA,CAAAI,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,GAAAS,MAAA,CAAAc,yBAAA,GAAAd,MAAA,CAAAe,gBAAA,CAAAvB,CAAA,EAAAQ,MAAA,CAAAc,yBAAA,CAAA3B,CAAA,KAAAY,OAAA,CAAAC,MAAA,CAAAb,CAAA,CAAAyB,CAAAA,CAAAA,OAAA,WAAArB,CAAA,EAAA,EAAAS,MAAA,CAAAgB,cAAA,CAAAxB,CAAA,EAAAD,CAAA,EAAAS,MAAA,CAAAK,wBAAA,CAAAlB,CAAA,EAAAI,CAAA,iBAAAC,CAAA,CAAA,EAAA;AAkDA,IAAMyB,iBAAA,gBAAoBC,cAA6C,IAAI,CAAA,CAAA;AAcpE,SAASC,kBAAmBA,CAAAC,IAAA,EAGP;AAAA,EAAA,IAAAC,oBAAA,GAAAD,IAAA,CAF1BE;AAAAA,IAAAA,oDAAkB,EAAC,GAAAD,oBAAA;IACnBE,QAAA,GAAAH,IAAA,CAAAG,QAAA,CAAA;AAEA,EAAA,IAAAC,QAAA,GAA4BC,OAAQ,EAAA;IAA5BC,IAAA,GAAAF,QAAA,CAAAE,IAAA;IAAMC,SAAU,GAAAH,QAAA,CAAVG,SAAU,CAAA;AACxB,EAAA,IAAAC,SAAA,GAAsCC,QAAA,CAEpC,EAAE,CAAA;IAAAC,UAAA,GAAAC,cAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAFGI,IAAAA,WAAa,GAAAF,UAAA,CAAA,CAAA,CAAA;AAAAG,IAAAA,cAAc,GAAAH,UAAA,CAAA,CAAA,CAAA,CAAA;AAGlC,EAAA,IAAAI,UAAA,GAAwCL,QAAA,CAEtC,EAAE,CAAA;IAAAM,UAAA,GAAAJ,cAAA,CAAAG,UAAA,EAAA,CAAA,CAAA;AAFGE,IAAAA,YAAc,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAAE,IAAAA,eAAe,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;EAIpC,IAAMG,aAAgB,GAAAC,WAAA,CACpB,UAACC,MAAcC,MAA6B,EAAA;IAC1BJ,eAAA,CAAA,UAACK;yCAAeA,EAAAA,EAAAA,+BAAOF,IAAA,EAAOC;KAAS,CAAA,CAAA;GACzD,EACA,EACF,CAAA,CAAA;EAEA,IAAME,QAAW,GAAAJ,WAAA,CACf,UAACC,MAAcC,MAA+C,EAAA;IACtDG,IAAAA,MAAAA,GAAQlB,IAAK,CAAAc,IAAA,CAAKK,KAAM,CAAA,GAAG,EAAEzC,MAAO,CAAA0C,OAAO,CAAE,CAAAC,IAAA,CAAK,GAAG,CAAA,CAAA,CAAA;AACrD,IAAA,IAAAC,MAAA,GAASC,cAAcR,MAAQ,EAAA;AACnCG,MAAAA,KAAAA,EAAAA,MAAAA;AACAM,MAAAA,SAAW,EAAAxB,IAAA;AACXJ,MAAAA,eAAA,EAAAA,eAAA;AACAK,MAAAA,SAAA,EAAAA,SAAAA;AACF,KAAC,CAAA,CAAA;IAEDM,cAAA,CAAe,UAACS,IAAU,EAAA;MAAA,IAAAS,kBAAA,EAAAC,UAAA,CAAA;MAAA,OAAA3C,aAAA,CAAAA,aAAA,CAAA,EAAA,EACrBiC,IAAA,CAAA7B,EAAAA,EAAAA,EAAAA,eAAA,CACF2B,EAAAA,EAAAA,IAAO,EAAA;QACNa,OAAA,EAAA,CAAAF,kBAAA,GAAAC,CAAAA,UAAA,GAASV,IAAK,CAAAF,IAAA,CAAA,MAAA,IAAA,IAAAY,UAAA,KAALA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,UAAA,CAAYC,OAAW,MAAA,IAAA,IAAAF,kBAAA,KAAAA,KAAAA,CAAAA,GAAAA,kBAAA,GAAA,IAAA;AAChCG,QAAAA,SAAW,EAAA,IAAA;AACXN,QAAAA,MAAA,EAAAA,MAAAA;OACF,CAAA,CAAA,CAAA;AAAA,KACA,CAAA,CAAA;AAEK,IAAA,OAAAA,MAAA,CAAA;GACT,EACA,CAACtB,IAAM,EAAAJ,eAAA,EAAiBK,SAAS,CACnC,CAAA,CAAA;AAEM,EAAA,IAAA4B,KAAA,GAAQhB,WAAY,CAAA,UAACC,IAAiB,EAAA;IAC1CP,cAAA,CAAe,UAACS,IAAU,EAAA;AAAA,MAAA,IAAAc,oBAAA,EAAAC,WAAA,EAAAC,iBAAA,EAAAC,WAAA,CAAA;AAAA,MAAA,OAAAlD,aAAA,CAAAA,aAAA,CACrBiC,EAAAA,EAAAA,IAAA,OAAA7B,eAAA,CAAA,EAAA,EACF2B,IAAO,EAAA/B,aAAA,CAAAA,aAAA,KACHiC,IAAK,CAAAF,IAAA,CAAA,CAAA,EAAA,EAAA,EAAA;AACRa,QAAAA,OAAS,EAAA,IAAA;QACTC,SAAA,EAAA,CAAAE,oBAAA,GAAAC,CAAAA,WAAA,GAAWf,IAAK,CAAAF,IAAA,CAAA,MAAA,IAAA,IAAAiB,WAAA,KAALA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,WAAA,CAAYH,SAAa,MAAA,IAAA,IAAAE,oBAAA,KAAAA,KAAAA,CAAAA,GAAAA,oBAAA,GAAA,KAAA;AACpCR,QAAAA,MAAA,GAAAU,iBAAA,GAAA,CAAAC,WAAA,GAAQjB,IAAK,CAAAF,IAAA,CAAA,cAAAmB,WAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAALA,WAAA,CAAYX,MAAU,cAAAU,iBAAA,KAAA,KAAA,CAAA,GAAAA,iBAAA,GAAA,IAAA;AAAA,OAAA,CAAA,CAAA,CAAA,CAAA;AAAA,KAEhC,CAAA,CAAA;GACJ,EAAG,EAAE,CAAA,CAAA;AAEC,EAAA,IAAAE,KAAA,GAAQrB,WAAY,CAAA,UAACC,IAAiB,EAAA;IAC1CP,cAAA,CAAe,UAACS,IAAS,EAAA;AACvB,MAAA,IAAgBmB,CAAM,GAASnB,IAAA,CAAtBF,IAAA,CAAA;QAAasB,IAAA,GAAAC,wBAAA,CAASrB,IAAA,GAAtBF,IAAA,CAAA,CAAAwB,GAAA,CAAA9E,cAAA,CAAA,CAAA,CAAA;AACF,MAAA,OAAA4E,IAAA,CAAA;AACT,KAAC,CAAA,CAAA;GACH,EAAG,EAAE,CAAA,CAAA;AAEC,EAAA,IAAAG,WAAA,GAAc1B,YAAY,YAAM;IACpC,IAAI2B,QAAW,GAAA,IAAA,CAAA;AAEf,IAAA,KAAA,IAAAC,EAAA,GAAAC,CAAAA,EAAAA,eAAA,GAA6BpE,MAAO,CAAAqE,OAAA,CAAQjC,YAAY,CAAG,EAAA+B,EAAA,GAAAC,eAAA,CAAAzD,MAAA,EAAAwD,EAAA,EAAA,EAAA;AAA3D,MAAA,IAAAG,kBAAA,GAAAvC,cAAA,CAAAqC,eAAA,CAAAD,EAAA,CAAA,EAAA,CAAA,CAAA;AAAY3B,QAAAA,IAAM,GAAA8B,kBAAA,CAAA,CAAA,CAAA;AAAA7B,QAAAA,MAAM,GAAA6B,kBAAA,CAAA,CAAA,CAAA,CAAA;AAChB,MAAA,IAAAtB,MAAA,GAASL,QAAS,CAAAH,IAAA,EAAMC,MAAM,CAAA,CAAA;AAChC,MAAA,IAAA,CAACO,OAAOuB,KAAO,EAAA;AACNL,QAAAA,QAAA,GAAA,KAAA,CAAA;AACb,OAAA;AACF,KAAA;AAEO,IAAA,OAAAA,QAAA,CAAA;AACT,GAAG,EAAA,CAAC9B,YAAc,EAAAO,QAAQ,CAAC,CAAA,CAAA;EAE3B,IAAMC,KAAQ,GAAA4B,OAAA,CACZ,YAAA;IAAA,OAAO;AACLlD,MAAAA,eAAA,EAAAA,eAAA;AACAU,MAAAA,WAAA,EAAAA,WAAA;AACAW,MAAAA,QAAA,EAAAA,QAAA;AACAY,MAAAA,KAAA,EAAAA,KAAA;AACAK,MAAAA,KAAA,EAAAA,KAAA;AACAK,MAAAA,WAAA,EAAAA,WAAA;AACA3B,MAAAA,aAAA,EAAAA,aAAAA;KACF,CAAA;AAAA,GAAA,EACA,CACEhB,eAAA,EACAU,WAAA,EACAW,QAAA,EACAY,KAAA,EACAK,KAAA,EACAK,WAAA,EACA3B,aAAA,CAEJ,CAAA,CAAA;EAGE,sBAAAmC,KAAA,CAAAC,aAAA,CAACzD,kBAAkB0D,QAAlB,EAAA;AAA2B/B,IAAAA,KAAA,EAAAA,KAAAA;GAAA,EACzBrB,QACH,CAAA,CAAA;AAEJ,CAAA;AAKO,SAASqD,aAAwCA,GAAA;AAChD,EAAA,IAAAC,GAAA,GAAMC,WAAW7D,iBAAiB,CAAA,CAAA;EACxC,IAAI,CAAC4D,GAAK,EAAA;AACF,IAAA,MAAA,IAAIE,MAAM,wDAAwD,CAAA,CAAA;AAC1E,GAAA;AACO,EAAA,OAAAF,GAAA,CAAA;AACT,CAAA;AAKgB,SAAAG,kBAAAA,CACdxC,MACAC,MAQA,EAAA;EAAA,IAAAwC,iBAAA,EAAAC,oBAAA,EAAAC,aAAA,EAAAC,mBAAA,EAAAC,cAAA,CAAA;AACM,EAAA,IAAAC,cAAA,GAMFV,aAAc,EAAA;IALhB5C,WAAA,GAAAsD,cAAA,CAAAtD,WAAA;IACUuD,aAAA,GAAAD,cAAA,CAAV3C,QAAU;IACH6C,UAAA,GAAAF,cAAA,CAAP/B,KAAO;IACAkC,UAAA,GAAAH,cAAA,CAAP1B,KAAO;IACPtB,aAAA,GAAAgD,cAAA,CAAAhD,aAAA,CAAA;EAIFmC,KAAA,CAAMiB,UAAU,YAAM;AACpB,IAAA,IAAIjD,MAAQ,EAAA;AACVH,MAAAA,aAAA,CAAcE,MAAMC,MAAM,CAAA,CAAA;AAC5B,KAAA;GACC,EAAA,CAACD,IAAM,EAAAC,MAAA,EAAQH,aAAa,CAAC,CAAA,CAAA;AAE1B,EAAA,IAAAqD,KAAA,GAAA,CAAAV,iBAAA,GAAQjD,YAAYQ,IAAS,CAAA,MAAAyC,IAAAA,IAAAA,iBAAA,KAAAA,KAAAA,CAAAA,GAAAA,iBAAA,GAAA;AACjC5B,IAAAA,OAAS,EAAA,KAAA;AACTC,IAAAA,SAAW,EAAA,KAAA;AACXN,IAAAA,MAAQ,EAAA,IAAA;GACV,CAAA;EAEA,IAAML,QAAW,GAAAJ,WAAA,CACf,YAAA;IAAA,OAAMgD,cAAc/C,IAAM,EAAAC,MAAA,KAAAA,IAAAA,IAAAA,MAAA,KAAAA,KAAAA,CAAAA,GAAAA,MAAA,GAAU;AAAEmD,MAAAA,MAAQ,EAAA,EAAA;AAAG,KAAC,CAAA,CAAA;AAAA,GAAA,EAClD,CAACpD,IAAM,EAAAC,MAAA,EAAQ8C,aAAa,CAC9B,CAAA,CAAA;EAEM,IAAAhC,KAAA,GAAQhB,YAAY,YAAA;IAAA,OAAMiD,UAAA,CAAWhD,IAAI,CAAG,CAAA;AAAA,GAAA,EAAA,CAACA,IAAM,EAAAgD,UAAU,CAAC,CAAA,CAAA;EAC9D,IAAA5B,KAAA,GAAQrB,YAAY,YAAA;IAAA,OAAMkD,UAAA,CAAWjD,IAAI,CAAG,CAAA;AAAA,GAAA,EAAA,CAACA,IAAM,EAAAiD,UAAU,CAAC,CAAA,CAAA;EAE7D,OAAA;AACLE,IAAAA,KAAA,EAAAA,KAAA;AACAhD,IAAAA,QAAA,EAAAA,QAAA;AACAY,IAAAA,KAAA,EAAAA,KAAA;AACAK,IAAAA,KAAA,EAAAA,KAAA;AACAiC,IAAAA,MAAQ,GAAAX,oBAAA,GAAA,CAAAC,aAAA,GAAAQ,KAAA,CAAM3C,MAAQ,MAAA,IAAA,IAAAmC,aAAA,KAAdA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,aAAA,CAAcU,MAAA,MAAA,IAAA,IAAAX,oBAAA,KAAAA,KAAAA,CAAAA,GAAAA,oBAAA,GAAU,EAAC;AACjCY,IAAAA,OAAA,GAAAV,mBAAA,GAAA,CAAAC,cAAA,GAASM,KAAM,CAAA3C,MAAA,MAAA,IAAA,IAAAqC,cAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAANA,cAAA,CAAcd,KAAS,cAAAa,mBAAA,KAAA,KAAA,CAAA,GAAAA,mBAAA,GAAA,IAAA;GAClC,CAAA;AACF;;;;"}
|
|
1
|
+
{"version":3,"file":"validation.js","sources":["../../../../../../pro-components/chat/chat-engine/components/json-render/contexts/validation.tsx"],"sourcesContent":["\"use client\";\n\nimport React, {\n createContext,\n useContext,\n useState,\n useCallback,\n useMemo,\n type ReactNode,\n} from \"react\";\nimport {\n runValidation,\n type ValidationConfig,\n type ValidationFunction,\n type ValidationResult,\n} from \"@json-render/core\";\nimport { useDataState } from \"./data\";\n\n/**\n * Field validation state\n */\nexport interface FieldValidationState {\n /** Whether the field has been touched */\n touched: boolean;\n /** Whether the field has been validated */\n validated: boolean;\n /** Validation result */\n result: ValidationResult | null;\n}\n\n/**\n * Validation context value\n */\nexport interface ValidationContextValue {\n /** Custom validation functions from catalog */\n customFunctions: Record<string, ValidationFunction>;\n /** Validation state by field path */\n fieldStates: Record<string, FieldValidationState>;\n /** Validate a field */\n validate: (path: string, config: ValidationConfig) => ValidationResult;\n /** Mark field as touched */\n touch: (path: string) => void;\n /** Clear validation for a field */\n clear: (path: string) => void;\n /** Validate all fields */\n validateAll: () => boolean;\n /** Register field config */\n registerField: (path: string, config: ValidationConfig) => void;\n}\n\nconst ValidationContext = createContext<ValidationContextValue | null>(null);\n\n/**\n * Props for ValidationProvider\n */\nexport interface ValidationProviderProps {\n /** Custom validation functions from catalog */\n customFunctions?: Record<string, ValidationFunction>;\n children: ReactNode;\n}\n\n/**\n * Provider for validation\n */\nexport function ValidationProvider({\n customFunctions = {},\n children,\n}: ValidationProviderProps) {\n const { data, authState } = useDataState();\n const [fieldStates, setFieldStates] = useState<\n Record<string, FieldValidationState>\n >({});\n const [fieldConfigs, setFieldConfigs] = useState<\n Record<string, ValidationConfig>\n >({});\n\n const registerField = useCallback(\n (path: string, config: ValidationConfig) => {\n setFieldConfigs((prev) => ({ ...prev, [path]: config }));\n },\n [],\n );\n\n const validate = useCallback(\n (path: string, config: ValidationConfig): ValidationResult => {\n const value = data[path.split(\"/\").filter(Boolean).join(\".\")];\n const result = runValidation(config, {\n value,\n dataModel: data,\n customFunctions,\n authState,\n });\n\n setFieldStates((prev) => ({\n ...prev,\n [path]: {\n touched: prev[path]?.touched ?? true,\n validated: true,\n result,\n },\n }));\n\n return result;\n },\n [data, customFunctions, authState],\n );\n\n const touch = useCallback((path: string) => {\n setFieldStates((prev) => ({\n ...prev,\n [path]: {\n ...prev[path],\n touched: true,\n validated: prev[path]?.validated ?? false,\n result: prev[path]?.result ?? null,\n },\n }));\n }, []);\n\n const clear = useCallback((path: string) => {\n setFieldStates((prev) => {\n const { [path]: _, ...rest } = prev;\n return rest;\n });\n }, []);\n\n const validateAll = useCallback(() => {\n let allValid = true;\n\n for (const [path, config] of Object.entries(fieldConfigs)) {\n const result = validate(path, config);\n if (!result.valid) {\n allValid = false;\n }\n }\n\n return allValid;\n }, [fieldConfigs, validate]);\n\n const value = useMemo<ValidationContextValue>(\n () => ({\n customFunctions,\n fieldStates,\n validate,\n touch,\n clear,\n validateAll,\n registerField,\n }),\n [\n customFunctions,\n fieldStates,\n validate,\n touch,\n clear,\n validateAll,\n registerField,\n ],\n );\n\n return (\n <ValidationContext.Provider value={value}>\n {children}\n </ValidationContext.Provider>\n );\n}\n\n/**\n * Hook to access validation context\n */\nexport function useValidation(): ValidationContextValue {\n const ctx = useContext(ValidationContext);\n if (!ctx) {\n throw new Error(\"useValidation must be used within a ValidationProvider\");\n }\n return ctx;\n}\n\n/**\n * Hook to get validation state for a field\n */\nexport function useFieldValidation(\n path: string,\n config?: ValidationConfig,\n): {\n state: FieldValidationState;\n validate: () => ValidationResult;\n touch: () => void;\n clear: () => void;\n errors: string[];\n isValid: boolean;\n} {\n const {\n fieldStates,\n validate: validateField,\n touch: touchField,\n clear: clearField,\n registerField,\n } = useValidation();\n\n // Register field on mount\n React.useEffect(() => {\n if (config) {\n registerField(path, config);\n }\n }, [path, config, registerField]);\n\n const state = fieldStates[path] ?? {\n touched: false,\n validated: false,\n result: null,\n };\n\n const validate = useCallback(\n () => validateField(path, config ?? { checks: [] }),\n [path, config, validateField],\n );\n\n const touch = useCallback(() => touchField(path), [path, touchField]);\n const clear = useCallback(() => clearField(path), [path, clearField]);\n\n return {\n state,\n validate,\n touch,\n clear,\n errors: state.result?.errors ?? [],\n isValid: state.result?.valid ?? true,\n };\n}\n"],"names":["_toPropertyKey","t","i","_toPrimitive","_typeof","r","e","Symbol","toPrimitive","call","TypeError","String","Number","ownKeys","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","ValidationContext","createContext","ValidationProvider","_ref","_ref$customFunctions","customFunctions","children","_useDataState","useDataState","data","authState","_useState","useState","_useState2","_slicedToArray","fieldStates","setFieldStates","_useState3","_useState4","fieldConfigs","setFieldConfigs","registerField","useCallback","path","config","prev","validate","value","split","Boolean","join","result","runValidation","dataModel","_prev$path$touched","_prev$path","touched","validated","touch","_prev$path$validated","_prev$path2","_prev$path$result","_prev$path3","clear","_","rest","_objectWithoutProperties","map","validateAll","allValid","_i","_Object$entries","entries","_Object$entries$_i","valid","useMemo","React","createElement","Provider","useValidation","ctx","useContext","Error","useFieldValidation","_fieldStates$path","_state$result$errors","_state$result","_state$result$valid","_state$result2","_useValidation","validateField","touchField","clearField","useEffect","state","checks","errors","isValid"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,YAAA,CAAA;AAAA,SAAAA,cAAAC,CAAAA,CAAA,EAAAC,EAAAA,IAAAA,CAAA,GAAAC,YAAA,CAAAF,CAAA,EAAA,QAAA,CAAA,CAAA,CAAA,OAAA,QAAA,IAAAG,OAAA,CAAAF,CAAA,CAAAA,GAAAA,CAAA,GAAAA,CAAA,GAAA,EAAA,CAAA,EAAA;AAAA,SAAAC,YAAAA,CAAAF,CAAA,EAAAI,CAAA,oBAAAD,OAAA,CAAAH,CAAA,CAAAA,IAAAA,CAAAA,CAAA,SAAAA,CAAA,CAAA,CAAA,IAAAK,CAAA,GAAAL,CAAA,CAAAM,MAAA,CAAAC,WAAA,CAAA,CAAA,CAAA,IAAA,KAAA,CAAA,KAAAF,CAAA,EAAA,EAAA,IAAAJ,CAAA,GAAAI,CAAA,CAAAG,IAAA,CAAAR,CAAA,EAAAI,CAAA,IAAAD,SAAAA,CAAAA,CAAAA,CAAAA,IAAAA,QAAAA,IAAAA,OAAA,CAAAF,CAAA,UAAAA,CAAA,CAAA,CAAA,MAAA,IAAAQ,SAAA,CAAAL,8CAAAA,CAAAA,CAAAA,EAAAA,CAAAA,OAAAA,CAAAA,QAAAA,KAAAA,CAAA,GAAAM,MAAA,GAAAC,MAAA,EAAAX,CAAA,CAAA,CAAA,EAAA;AAAA,SAAAY,OAAAA,CAAAP,CAAA,EAAAD,CAAA,EAAA,EAAA,IAAAJ,CAAA,GAAAa,MAAA,CAAAC,IAAA,CAAAT,CAAA,OAAAQ,MAAA,CAAAE,qBAAA,EAAA,EAAA,IAAAC,CAAA,GAAAH,MAAA,CAAAE,qBAAA,CAAAV,CAAA,CAAA,CAAA,CAAAD,CAAA,KAAAY,CAAA,GAAAA,CAAA,CAAAC,MAAA,CAAAb,UAAAA,CAAA,EAAAS,EAAAA,OAAAA,MAAA,CAAAK,wBAAA,CAAAb,CAAA,EAAAD,CAAA,EAAAe,UAAA,CAAA,EAAA,CAAA,CAAA,EAAAnB,CAAA,CAAAoB,IAAA,CAAAC,KAAA,CAAArB,CAAA,EAAAgB,CAAA,CAAA,CAAA,EAAA,CAAA,OAAAhB,CAAA,CAAA,EAAA;AAAA,SAAAsB,cAAAjB,CAAA,EAAA,EAAA,KAAA,IAAAD,CAAA,GAAAA,CAAAA,EAAAA,CAAA,GAAAmB,SAAA,CAAAC,MAAA,EAAApB,CAAA,EAAAJ,EAAAA,EAAAA,IAAAA,CAAA,WAAAuB,SAAA,CAAAnB,CAAA,CAAAmB,GAAAA,SAAA,CAAAnB,CAAA,QAAAA,CAAA,GAAA,CAAA,GAAAQ,OAAA,CAAAC,MAAA,CAAAb,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAAyB,OAAA,CAAArB,UAAAA,CAAA,IAAAsB,eAAA,CAAArB,CAAA,EAAAD,CAAA,EAAAJ,CAAA,CAAAI,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,GAAAS,MAAA,CAAAc,yBAAA,GAAAd,MAAA,CAAAe,gBAAA,CAAAvB,CAAA,EAAAQ,MAAA,CAAAc,yBAAA,CAAA3B,CAAA,KAAAY,OAAA,CAAAC,MAAA,CAAAb,CAAA,CAAAyB,CAAAA,CAAAA,OAAA,WAAArB,CAAA,EAAA,EAAAS,MAAA,CAAAgB,cAAA,CAAAxB,CAAA,EAAAD,CAAA,EAAAS,MAAA,CAAAK,wBAAA,CAAAlB,CAAA,EAAAI,CAAA,iBAAAC,CAAA,CAAA,EAAA;AAkDA,IAAMyB,iBAAA,gBAAoBC,cAA6C,IAAI,CAAA,CAAA;AAcpE,SAASC,kBAAmBA,CAAAC,IAAA,EAGP;AAAA,EAAA,IAAAC,oBAAA,GAAAD,IAAA,CAF1BE;AAAAA,IAAAA,oDAAkB,EAAC,GAAAD,oBAAA;IACnBE,QAAA,GAAAH,IAAA,CAAAG,QAAA,CAAA;AAEA,EAAA,IAAAC,aAAA,GAA4BC,YAAa,EAAA;IAAjCC,IAAA,GAAAF,aAAA,CAAAE,IAAA;IAAMC,SAAU,GAAAH,aAAA,CAAVG,SAAU,CAAA;AACxB,EAAA,IAAAC,SAAA,GAAsCC,QAAA,CAEpC,EAAE,CAAA;IAAAC,UAAA,GAAAC,cAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAFGI,IAAAA,WAAa,GAAAF,UAAA,CAAA,CAAA,CAAA;AAAAG,IAAAA,cAAc,GAAAH,UAAA,CAAA,CAAA,CAAA,CAAA;AAGlC,EAAA,IAAAI,UAAA,GAAwCL,QAAA,CAEtC,EAAE,CAAA;IAAAM,UAAA,GAAAJ,cAAA,CAAAG,UAAA,EAAA,CAAA,CAAA;AAFGE,IAAAA,YAAc,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAAE,IAAAA,eAAe,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;EAIpC,IAAMG,aAAgB,GAAAC,WAAA,CACpB,UAACC,MAAcC,MAA6B,EAAA;IAC1BJ,eAAA,CAAA,UAACK;yCAAeA,EAAAA,EAAAA,+BAAOF,IAAA,EAAOC;KAAS,CAAA,CAAA;GACzD,EACA,EACF,CAAA,CAAA;EAEA,IAAME,QAAW,GAAAJ,WAAA,CACf,UAACC,MAAcC,MAA+C,EAAA;IACtDG,IAAAA,MAAAA,GAAQlB,IAAK,CAAAc,IAAA,CAAKK,KAAM,CAAA,GAAG,EAAEzC,MAAO,CAAA0C,OAAO,CAAE,CAAAC,IAAA,CAAK,GAAG,CAAA,CAAA,CAAA;AACrD,IAAA,IAAAC,MAAA,GAASC,cAAcR,MAAQ,EAAA;AACnCG,MAAAA,KAAAA,EAAAA,MAAAA;AACAM,MAAAA,SAAW,EAAAxB,IAAA;AACXJ,MAAAA,eAAA,EAAAA,eAAA;AACAK,MAAAA,SAAA,EAAAA,SAAAA;AACF,KAAC,CAAA,CAAA;IAEDM,cAAA,CAAe,UAACS,IAAU,EAAA;MAAA,IAAAS,kBAAA,EAAAC,UAAA,CAAA;MAAA,OAAA3C,aAAA,CAAAA,aAAA,CAAA,EAAA,EACrBiC,IAAA,CAAA7B,EAAAA,EAAAA,EAAAA,eAAA,CACF2B,EAAAA,EAAAA,IAAO,EAAA;QACNa,OAAA,EAAA,CAAAF,kBAAA,GAAAC,CAAAA,UAAA,GAASV,IAAK,CAAAF,IAAA,CAAA,MAAA,IAAA,IAAAY,UAAA,KAALA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,UAAA,CAAYC,OAAW,MAAA,IAAA,IAAAF,kBAAA,KAAAA,KAAAA,CAAAA,GAAAA,kBAAA,GAAA,IAAA;AAChCG,QAAAA,SAAW,EAAA,IAAA;AACXN,QAAAA,MAAA,EAAAA,MAAAA;OACF,CAAA,CAAA,CAAA;AAAA,KACA,CAAA,CAAA;AAEK,IAAA,OAAAA,MAAA,CAAA;GACT,EACA,CAACtB,IAAM,EAAAJ,eAAA,EAAiBK,SAAS,CACnC,CAAA,CAAA;AAEM,EAAA,IAAA4B,KAAA,GAAQhB,WAAY,CAAA,UAACC,IAAiB,EAAA;IAC1CP,cAAA,CAAe,UAACS,IAAU,EAAA;AAAA,MAAA,IAAAc,oBAAA,EAAAC,WAAA,EAAAC,iBAAA,EAAAC,WAAA,CAAA;AAAA,MAAA,OAAAlD,aAAA,CAAAA,aAAA,CACrBiC,EAAAA,EAAAA,IAAA,OAAA7B,eAAA,CAAA,EAAA,EACF2B,IAAO,EAAA/B,aAAA,CAAAA,aAAA,KACHiC,IAAK,CAAAF,IAAA,CAAA,CAAA,EAAA,EAAA,EAAA;AACRa,QAAAA,OAAS,EAAA,IAAA;QACTC,SAAA,EAAA,CAAAE,oBAAA,GAAAC,CAAAA,WAAA,GAAWf,IAAK,CAAAF,IAAA,CAAA,MAAA,IAAA,IAAAiB,WAAA,KAALA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,WAAA,CAAYH,SAAa,MAAA,IAAA,IAAAE,oBAAA,KAAAA,KAAAA,CAAAA,GAAAA,oBAAA,GAAA,KAAA;AACpCR,QAAAA,MAAA,GAAAU,iBAAA,GAAA,CAAAC,WAAA,GAAQjB,IAAK,CAAAF,IAAA,CAAA,cAAAmB,WAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAALA,WAAA,CAAYX,MAAU,cAAAU,iBAAA,KAAA,KAAA,CAAA,GAAAA,iBAAA,GAAA,IAAA;AAAA,OAAA,CAAA,CAAA,CAAA,CAAA;AAAA,KAEhC,CAAA,CAAA;GACJ,EAAG,EAAE,CAAA,CAAA;AAEC,EAAA,IAAAE,KAAA,GAAQrB,WAAY,CAAA,UAACC,IAAiB,EAAA;IAC1CP,cAAA,CAAe,UAACS,IAAS,EAAA;AACvB,MAAA,IAAgBmB,CAAM,GAASnB,IAAA,CAAtBF,IAAA,CAAA;QAAasB,IAAA,GAAAC,wBAAA,CAASrB,IAAA,GAAtBF,IAAA,CAAA,CAAAwB,GAAA,CAAA9E,cAAA,CAAA,CAAA,CAAA;AACF,MAAA,OAAA4E,IAAA,CAAA;AACT,KAAC,CAAA,CAAA;GACH,EAAG,EAAE,CAAA,CAAA;AAEC,EAAA,IAAAG,WAAA,GAAc1B,YAAY,YAAM;IACpC,IAAI2B,QAAW,GAAA,IAAA,CAAA;AAEf,IAAA,KAAA,IAAAC,EAAA,GAAAC,CAAAA,EAAAA,eAAA,GAA6BpE,MAAO,CAAAqE,OAAA,CAAQjC,YAAY,CAAG,EAAA+B,EAAA,GAAAC,eAAA,CAAAzD,MAAA,EAAAwD,EAAA,EAAA,EAAA;AAA3D,MAAA,IAAAG,kBAAA,GAAAvC,cAAA,CAAAqC,eAAA,CAAAD,EAAA,CAAA,EAAA,CAAA,CAAA;AAAY3B,QAAAA,IAAM,GAAA8B,kBAAA,CAAA,CAAA,CAAA;AAAA7B,QAAAA,MAAM,GAAA6B,kBAAA,CAAA,CAAA,CAAA,CAAA;AAChB,MAAA,IAAAtB,MAAA,GAASL,QAAS,CAAAH,IAAA,EAAMC,MAAM,CAAA,CAAA;AAChC,MAAA,IAAA,CAACO,OAAOuB,KAAO,EAAA;AACNL,QAAAA,QAAA,GAAA,KAAA,CAAA;AACb,OAAA;AACF,KAAA;AAEO,IAAA,OAAAA,QAAA,CAAA;AACT,GAAG,EAAA,CAAC9B,YAAc,EAAAO,QAAQ,CAAC,CAAA,CAAA;EAE3B,IAAMC,KAAQ,GAAA4B,OAAA,CACZ,YAAA;IAAA,OAAO;AACLlD,MAAAA,eAAA,EAAAA,eAAA;AACAU,MAAAA,WAAA,EAAAA,WAAA;AACAW,MAAAA,QAAA,EAAAA,QAAA;AACAY,MAAAA,KAAA,EAAAA,KAAA;AACAK,MAAAA,KAAA,EAAAA,KAAA;AACAK,MAAAA,WAAA,EAAAA,WAAA;AACA3B,MAAAA,aAAA,EAAAA,aAAAA;KACF,CAAA;AAAA,GAAA,EACA,CACEhB,eAAA,EACAU,WAAA,EACAW,QAAA,EACAY,KAAA,EACAK,KAAA,EACAK,WAAA,EACA3B,aAAA,CAEJ,CAAA,CAAA;EAGE,sBAAAmC,KAAA,CAAAC,aAAA,CAACzD,kBAAkB0D,QAAlB,EAAA;AAA2B/B,IAAAA,KAAA,EAAAA,KAAAA;GAAA,EACzBrB,QACH,CAAA,CAAA;AAEJ,CAAA;AAKO,SAASqD,aAAwCA,GAAA;AAChD,EAAA,IAAAC,GAAA,GAAMC,WAAW7D,iBAAiB,CAAA,CAAA;EACxC,IAAI,CAAC4D,GAAK,EAAA;AACF,IAAA,MAAA,IAAIE,MAAM,wDAAwD,CAAA,CAAA;AAC1E,GAAA;AACO,EAAA,OAAAF,GAAA,CAAA;AACT,CAAA;AAKgB,SAAAG,kBAAAA,CACdxC,MACAC,MAQA,EAAA;EAAA,IAAAwC,iBAAA,EAAAC,oBAAA,EAAAC,aAAA,EAAAC,mBAAA,EAAAC,cAAA,CAAA;AACM,EAAA,IAAAC,cAAA,GAMFV,aAAc,EAAA;IALhB5C,WAAA,GAAAsD,cAAA,CAAAtD,WAAA;IACUuD,aAAA,GAAAD,cAAA,CAAV3C,QAAU;IACH6C,UAAA,GAAAF,cAAA,CAAP/B,KAAO;IACAkC,UAAA,GAAAH,cAAA,CAAP1B,KAAO;IACPtB,aAAA,GAAAgD,cAAA,CAAAhD,aAAA,CAAA;EAIFmC,KAAA,CAAMiB,UAAU,YAAM;AACpB,IAAA,IAAIjD,MAAQ,EAAA;AACVH,MAAAA,aAAA,CAAcE,MAAMC,MAAM,CAAA,CAAA;AAC5B,KAAA;GACC,EAAA,CAACD,IAAM,EAAAC,MAAA,EAAQH,aAAa,CAAC,CAAA,CAAA;AAE1B,EAAA,IAAAqD,KAAA,GAAA,CAAAV,iBAAA,GAAQjD,YAAYQ,IAAS,CAAA,MAAAyC,IAAAA,IAAAA,iBAAA,KAAAA,KAAAA,CAAAA,GAAAA,iBAAA,GAAA;AACjC5B,IAAAA,OAAS,EAAA,KAAA;AACTC,IAAAA,SAAW,EAAA,KAAA;AACXN,IAAAA,MAAQ,EAAA,IAAA;GACV,CAAA;EAEA,IAAML,QAAW,GAAAJ,WAAA,CACf,YAAA;IAAA,OAAMgD,cAAc/C,IAAM,EAAAC,MAAA,KAAAA,IAAAA,IAAAA,MAAA,KAAAA,KAAAA,CAAAA,GAAAA,MAAA,GAAU;AAAEmD,MAAAA,MAAQ,EAAA,EAAA;AAAG,KAAC,CAAA,CAAA;AAAA,GAAA,EAClD,CAACpD,IAAM,EAAAC,MAAA,EAAQ8C,aAAa,CAC9B,CAAA,CAAA;EAEM,IAAAhC,KAAA,GAAQhB,YAAY,YAAA;IAAA,OAAMiD,UAAA,CAAWhD,IAAI,CAAG,CAAA;AAAA,GAAA,EAAA,CAACA,IAAM,EAAAgD,UAAU,CAAC,CAAA,CAAA;EAC9D,IAAA5B,KAAA,GAAQrB,YAAY,YAAA;IAAA,OAAMkD,UAAA,CAAWjD,IAAI,CAAG,CAAA;AAAA,GAAA,EAAA,CAACA,IAAM,EAAAiD,UAAU,CAAC,CAAA,CAAA;EAE7D,OAAA;AACLE,IAAAA,KAAA,EAAAA,KAAA;AACAhD,IAAAA,QAAA,EAAAA,QAAA;AACAY,IAAAA,KAAA,EAAAA,KAAA;AACAK,IAAAA,KAAA,EAAAA,KAAA;AACAiC,IAAAA,MAAQ,GAAAX,oBAAA,GAAA,CAAAC,aAAA,GAAAQ,KAAA,CAAM3C,MAAQ,MAAA,IAAA,IAAAmC,aAAA,KAAdA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,aAAA,CAAcU,MAAA,MAAA,IAAA,IAAAX,oBAAA,KAAAA,KAAAA,CAAAA,GAAAA,oBAAA,GAAU,EAAC;AACjCY,IAAAA,OAAA,GAAAV,mBAAA,GAAA,CAAAC,cAAA,GAASM,KAAM,CAAA3C,MAAA,MAAA,IAAA,IAAAqC,cAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAANA,cAAA,CAAcd,KAAS,cAAAa,mBAAA,KAAA,KAAA,CAAA,GAAAA,mBAAA,GAAA,IAAA;GAClC,CAAA;AACF;;;;"}
|
|
@@ -6,8 +6,8 @@ import { type VisibilityCondition, type VisibilityContext as CoreVisibilityConte
|
|
|
6
6
|
export interface VisibilityContextValue {
|
|
7
7
|
/** Evaluate a visibility condition */
|
|
8
8
|
isVisible: (condition: VisibilityCondition | undefined) => boolean;
|
|
9
|
-
/**
|
|
10
|
-
|
|
9
|
+
/** Get the current visibility context (for advanced use) */
|
|
10
|
+
getCtx: () => CoreVisibilityContext;
|
|
11
11
|
}
|
|
12
12
|
/**
|
|
13
13
|
* Props for VisibilityProvider
|
|
@@ -17,6 +17,16 @@ export interface VisibilityProviderProps {
|
|
|
17
17
|
}
|
|
18
18
|
/**
|
|
19
19
|
* Provider for visibility evaluation
|
|
20
|
+
*
|
|
21
|
+
* 性能优化:
|
|
22
|
+
* - 不订阅 data 变化,避免 data 变化导致所有组件重渲染
|
|
23
|
+
* - isVisible 函数在调用时才读取最新 data(延迟读取)
|
|
24
|
+
* - Context value 保持稳定引用
|
|
25
|
+
*
|
|
26
|
+
* 设计说明:
|
|
27
|
+
* - Visibility 判断通常在渲染时执行,不需要触发重渲染
|
|
28
|
+
* - 当 data 变化时,ElementRenderer 会因其他原因重渲染,然后调用 isVisible
|
|
29
|
+
* - 此时 isVisible 读取最新的 data 进行判断
|
|
20
30
|
*/
|
|
21
31
|
export declare function VisibilityProvider({ children }: VisibilityProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
22
32
|
/**
|
|
@@ -1,42 +1,52 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* tdesign v1.1.0-alpha.
|
|
2
|
+
* tdesign v1.1.0-alpha.5
|
|
3
3
|
* (c) 2026 tdesign
|
|
4
4
|
* @license MIT
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import React, { createContext,
|
|
7
|
+
import React, { createContext, useRef, useContext } from 'react';
|
|
8
8
|
import { evaluateVisibility } from '@json-render/core';
|
|
9
|
-
import {
|
|
10
|
-
import '
|
|
9
|
+
import { useDataStore } from './data.js';
|
|
10
|
+
import { useStableCallback } from './store.js';
|
|
11
11
|
import '@babel/runtime/helpers/defineProperty';
|
|
12
|
+
import '@babel/runtime/helpers/typeof';
|
|
12
13
|
import '@babel/runtime/helpers/slicedToArray';
|
|
14
|
+
import '@babel/runtime/helpers/classCallCheck';
|
|
15
|
+
import '@babel/runtime/helpers/createClass';
|
|
16
|
+
import '@babel/runtime/helpers/possibleConstructorReturn';
|
|
17
|
+
import '@babel/runtime/helpers/getPrototypeOf';
|
|
18
|
+
import '@babel/runtime/helpers/inherits';
|
|
19
|
+
import '../../../../_chunks/dep-16520c2b.js';
|
|
20
|
+
import '@babel/runtime/helpers/wrapNativeSuper';
|
|
13
21
|
|
|
14
22
|
"use client";
|
|
15
23
|
var VisibilityContext = /*#__PURE__*/createContext(null);
|
|
16
24
|
function VisibilityProvider(_ref) {
|
|
17
25
|
var children = _ref.children;
|
|
18
|
-
var
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
var
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
}, [data, authState]);
|
|
27
|
-
var isVisible = useMemo(function () {
|
|
28
|
-
return function (condition) {
|
|
29
|
-
return evaluateVisibility(condition, ctx);
|
|
26
|
+
var dataStore = useDataStore();
|
|
27
|
+
var storeRef = useRef(dataStore);
|
|
28
|
+
storeRef.current = dataStore;
|
|
29
|
+
var isVisible = useStableCallback(function (condition) {
|
|
30
|
+
var store = storeRef.current;
|
|
31
|
+
var ctx = {
|
|
32
|
+
dataModel: store.getData(),
|
|
33
|
+
authState: store.getAuthState()
|
|
30
34
|
};
|
|
31
|
-
|
|
32
|
-
|
|
35
|
+
return evaluateVisibility(condition, ctx);
|
|
36
|
+
});
|
|
37
|
+
var getCtx = useStableCallback(function () {
|
|
38
|
+
var store = storeRef.current;
|
|
33
39
|
return {
|
|
34
|
-
|
|
35
|
-
|
|
40
|
+
dataModel: store.getData(),
|
|
41
|
+
authState: store.getAuthState()
|
|
36
42
|
};
|
|
37
|
-
}
|
|
43
|
+
});
|
|
44
|
+
var valueRef = useRef({
|
|
45
|
+
isVisible: isVisible,
|
|
46
|
+
getCtx: getCtx
|
|
47
|
+
});
|
|
38
48
|
return /* @__PURE__ */React.createElement(VisibilityContext.Provider, {
|
|
39
|
-
value:
|
|
49
|
+
value: valueRef.current
|
|
40
50
|
}, children);
|
|
41
51
|
}
|
|
42
52
|
function useVisibility() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"visibility.js","sources":["../../../../../../pro-components/chat/chat-engine/components/json-render/contexts/visibility.tsx"],"sourcesContent":["\"use client\";\n\nimport React, {\n createContext,\n useContext,\n
|
|
1
|
+
{"version":3,"file":"visibility.js","sources":["../../../../../../pro-components/chat/chat-engine/components/json-render/contexts/visibility.tsx"],"sourcesContent":["\"use client\";\n\nimport React, {\n createContext,\n useContext,\n useRef,\n type ReactNode,\n} from \"react\";\nimport {\n evaluateVisibility,\n type VisibilityCondition,\n type VisibilityContext as CoreVisibilityContext,\n} from \"@json-render/core\";\nimport { useDataStore, type DataStore } from \"./data\";\nimport { useStableCallback } from \"./store\";\n\n/**\n * Visibility context value\n */\nexport interface VisibilityContextValue {\n /** Evaluate a visibility condition */\n isVisible: (condition: VisibilityCondition | undefined) => boolean;\n /** Get the current visibility context (for advanced use) */\n getCtx: () => CoreVisibilityContext;\n}\n\nconst VisibilityContext = createContext<VisibilityContextValue | null>(null);\n\n/**\n * Props for VisibilityProvider\n */\nexport interface VisibilityProviderProps {\n children: ReactNode;\n}\n\n/**\n * Provider for visibility evaluation\n * \n * 性能优化:\n * - 不订阅 data 变化,避免 data 变化导致所有组件重渲染\n * - isVisible 函数在调用时才读取最新 data(延迟读取)\n * - Context value 保持稳定引用\n * \n * 设计说明:\n * - Visibility 判断通常在渲染时执行,不需要触发重渲染\n * - 当 data 变化时,ElementRenderer 会因其他原因重渲染,然后调用 isVisible\n * - 此时 isVisible 读取最新的 data 进行判断\n */\nexport function VisibilityProvider({ children }: VisibilityProviderProps) {\n // 获取 DataStore 实例,不订阅状态变化\n const dataStore = useDataStore();\n \n // 使用 ref 存储 store,保持函数引用稳定\n const storeRef = useRef<DataStore>(dataStore);\n storeRef.current = dataStore;\n\n // 延迟读取:isVisible 在调用时才读取最新 data\n const isVisible = useStableCallback(\n (condition: VisibilityCondition | undefined) => {\n const store = storeRef.current;\n const ctx: CoreVisibilityContext = {\n dataModel: store.getData(),\n authState: store.getAuthState(),\n };\n return evaluateVisibility(condition, ctx);\n },\n );\n\n // 获取当前 context(用于高级场景)\n const getCtx = useStableCallback((): CoreVisibilityContext => {\n const store = storeRef.current;\n return {\n dataModel: store.getData(),\n authState: store.getAuthState(),\n };\n });\n\n // Context value 使用 ref 保持稳定引用\n const valueRef = useRef<VisibilityContextValue>({ isVisible, getCtx });\n\n return (\n <VisibilityContext.Provider value={valueRef.current}>\n {children}\n </VisibilityContext.Provider>\n );\n}\n\n/**\n * Hook to access visibility evaluation\n */\nexport function useVisibility(): VisibilityContextValue {\n const ctx = useContext(VisibilityContext);\n if (!ctx) {\n throw new Error(\"useVisibility must be used within a VisibilityProvider\");\n }\n return ctx;\n}\n\n/**\n * Hook to check if a condition is visible\n */\nexport function useIsVisible(\n condition: VisibilityCondition | undefined,\n): boolean {\n const { isVisible } = useVisibility();\n return isVisible(condition);\n}\n"],"names":["VisibilityContext","createContext","VisibilityProvider","_ref","children","dataStore","useDataStore","storeRef","useRef","current","isVisible","useStableCallback","condition","store","ctx","dataModel","getData","authState","getAuthState","evaluateVisibility","getCtx","valueRef","React","createElement","Provider","value","useVisibility","useContext","Error","useIsVisible","_useVisibility"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,YAAA,CAAA;AA0BA,IAAMA,iBAAA,gBAAoBC,cAA6C,IAAI,CAAA,CAAA;AAsB3D,SAAAC,kBAAAA,CAAAC,IAAA,EAA0D;AAAA,EAAA,IAArCC,QAAA,GAAAD,IAAA,CAAAC,QAAA,CAAA;AAEnC,EAAA,IAAMC,YAAYC,YAAa,EAAA,CAAA;AAGzB,EAAA,IAAAC,QAAA,GAAWC,OAAkBH,SAAS,CAAA,CAAA;EAC5CE,QAAA,CAASE,OAAU,GAAAJ,SAAA,CAAA;AAGnB,EAAA,IAAMK,SAAY,GAAAC,iBAAA,CAChB,UAACC,SAA+C,EAAA;AAC9C,IAAA,IAAMC,QAAQN,QAAS,CAAAE,OAAA,CAAA;AACvB,IAAA,IAAMK,GAA6B,GAAA;AACjCC,MAAAA,SAAA,EAAWF,MAAMG,OAAQ,EAAA;AACzBC,MAAAA,SAAA,EAAWJ,MAAMK,YAAa,EAAA;KAChC,CAAA;AACO,IAAA,OAAAC,kBAAA,CAAmBP,WAAWE,GAAG,CAAA,CAAA;AAC1C,GACF,CAAA,CAAA;AAGM,EAAA,IAAAM,MAAA,GAAST,kBAAkB,YAA6B;AAC5D,IAAA,IAAME,QAAQN,QAAS,CAAAE,OAAA,CAAA;IAChB,OAAA;AACLM,MAAAA,SAAA,EAAWF,MAAMG,OAAQ,EAAA;AACzBC,MAAAA,SAAA,EAAWJ,MAAMK,YAAa,EAAA;KAChC,CAAA;AACF,GAAC,CAAA,CAAA;EAGD,IAAMG,QAAW,GAAAb,MAAA,CAA+B;AAAEE,IAAAA,SAAA,EAAAA,SAAA;AAAWU,IAAAA,QAAAA,MAAAA;AAAO,GAAC,CAAA,CAAA;EAGnE,sBAAAE,KAAA,CAAAC,aAAA,CAACvB,kBAAkBwB,QAAlB,EAAA;IAA2BC,OAAOJ,QAAS,CAAAZ,OAAAA;GAAA,EACzCL,QACH,CAAA,CAAA;AAEJ,CAAA;AAKO,SAASsB,aAAwCA,GAAA;AAChD,EAAA,IAAAZ,GAAA,GAAMa,WAAW3B,iBAAiB,CAAA,CAAA;EACxC,IAAI,CAACc,GAAK,EAAA;AACF,IAAA,MAAA,IAAIc,MAAM,wDAAwD,CAAA,CAAA;AAC1E,GAAA;AACO,EAAA,OAAAd,GAAA,CAAA;AACT,CAAA;AAKO,SAASe,aACdjB,SACS,EAAA;AACH,EAAA,IAAAkB,cAAA,GAAgBJ,aAAc,EAAA;IAA5BhB,SAAU,GAAAoB,cAAA,CAAVpB,SAAU,CAAA;EAClB,OAAOA,UAAUE,SAAS,CAAA,CAAA;AAC5B;;;;"}
|
|
@@ -2,35 +2,12 @@
|
|
|
2
2
|
* json-render 集成模块入口
|
|
3
3
|
* 导出所有核心 API 和类型
|
|
4
4
|
*/
|
|
5
|
-
export { JsonRenderActivityRenderer } from './JsonRenderActivityRenderer';
|
|
6
|
-
export type
|
|
7
|
-
export
|
|
8
|
-
export
|
|
9
|
-
export {
|
|
10
|
-
export {
|
|
11
|
-
export
|
|
12
|
-
export type
|
|
13
|
-
export {
|
|
14
|
-
export type { CreateCustomRegistryOptions } from './catalog/index';
|
|
15
|
-
export { tdesignCatalog, createCustomCatalog, tdesignComponentList, tdesignActionList, generateCatalogPrompt, } from './catalog/index';
|
|
16
|
-
export type { Catalog } from '@json-render/core';
|
|
17
|
-
export type { PromptTemplateMode, CustomTemplateGenerator, ComponentDoc, NormalizedComponentDoc } from './catalog';
|
|
18
|
-
export { a2uiRegistry, createA2UIRegistry, A2UITextField, A2UIButton } from './catalog/index';
|
|
19
|
-
export { withA2UIBinding } from './catalog/index';
|
|
20
|
-
export type { A2UIBindingConfig } from './catalog/index';
|
|
21
|
-
export { JsonRenderButton } from './catalog/button';
|
|
22
|
-
export { JsonRenderInput } from './catalog/input';
|
|
23
|
-
export { JsonRenderCard } from './catalog/card';
|
|
24
|
-
export { JsonRenderRow, JsonRenderCol, JsonRenderSpace, JsonRenderDivider, } from './catalog/layout';
|
|
25
|
-
export { createJsonRenderActivityConfig, defaultJsonRenderActivityConfig, createA2UIJsonRenderActivityConfig, defaultA2UIJsonRenderActivityConfig, } from './config';
|
|
26
|
-
export type { JsonRenderActivityConfigOptions } from './config';
|
|
27
|
-
export * from './adapters';
|
|
28
|
-
export { surfaceStateManager, SurfaceStateManager } from './SurfaceStateManager';
|
|
29
|
-
export type { SurfaceCache, SurfaceSubscriber } from './SurfaceStateManager';
|
|
30
|
-
export { createJsonRenderActivityConfig as default } from './config';
|
|
31
|
-
export { DataProvider, useData, useDataValue, useDataBinding, type DataContextValue, type DataProviderProps, } from "./contexts/data";
|
|
32
|
-
export { VisibilityProvider, useVisibility, useIsVisible, type VisibilityContextValue, type VisibilityProviderProps, } from "./contexts/visibility";
|
|
33
|
-
export { ActionProvider, useActions, useAction, ConfirmDialog, type ActionContextValue, type ActionProviderProps, type PendingConfirmation, type ConfirmDialogProps, } from "./contexts/actions";
|
|
34
|
-
export { ValidationProvider, useValidation, useFieldValidation, type ValidationContextValue, type ValidationProviderProps, type FieldValidationState, } from "./contexts/validation";
|
|
35
|
-
export { Renderer, JSONUIProvider, createRendererFromCatalog, type ComponentRenderProps, type ComponentRenderer, type ComponentRegistry, type RendererProps, type JSONUIProviderProps, } from "./renderer";
|
|
36
|
-
export * from './catalog';
|
|
5
|
+
export { type JsonRenderActivityRendererProps, JsonRenderActivityRenderer } from './renderer/JsonRenderActivityRenderer';
|
|
6
|
+
export { type A2UIJsonRenderActivityRendererProps, A2UIJsonRenderActivityRenderer } from './renderer/A2UIJsonRenderActivityRenderer';
|
|
7
|
+
export * from './contexts';
|
|
8
|
+
export { tdesignRegistry, createCustomRegistry, withStableProps, a2uiRegistry, createA2UIRegistry, A2UITextField, A2UIButton, withA2UIBinding, } from './registry';
|
|
9
|
+
export type { CreateCustomRegistryOptions, JsonRenderActivityConfigOptions, A2UIBindingConfig, } from './registry';
|
|
10
|
+
export { createJsonRenderActivityConfig, createA2UIJsonRenderActivityConfig, } from './registry';
|
|
11
|
+
export * from './catalog/catalog-to-prompt';
|
|
12
|
+
export type * from './types';
|
|
13
|
+
export type { JSONUIProviderProps, } from "./renderer/JsonUIRenderer";
|
|
@@ -1,36 +1,76 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* tdesign v1.1.0-alpha.
|
|
2
|
+
* tdesign v1.1.0-alpha.5
|
|
3
3
|
* (c) 2026 tdesign
|
|
4
4
|
* @license MIT
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
export {
|
|
8
|
-
export {
|
|
9
|
-
|
|
10
|
-
export {
|
|
11
|
-
export {
|
|
12
|
-
export {
|
|
13
|
-
import './adapters/index.js';
|
|
14
|
-
export { SurfaceStateManager, surfaceStateManager } from './SurfaceStateManager.js';
|
|
15
|
-
export { DataProvider, useData, useDataBinding, useDataValue } from './contexts/data.js';
|
|
7
|
+
export { JsonRenderActivityRenderer } from './renderer/JsonRenderActivityRenderer.js';
|
|
8
|
+
export { A2UIJsonRenderActivityRenderer } from './renderer/A2UIJsonRenderActivityRenderer.js';
|
|
9
|
+
import './contexts/index.js';
|
|
10
|
+
export { d as A2UIButton, A as A2UITextField, a as a2uiRegistry, g as createA2UIJsonRenderActivityConfig, b as createA2UIRegistry, c as createCustomRegistry, f as createJsonRenderActivityConfig, t as tdesignRegistry, e as withA2UIBinding, w as withStableProps } from '../../../_chunks/dep-1743bd61.js';
|
|
11
|
+
export { createCustomCatalog, generateCatalogPrompt, tdesignActionList, tdesignCatalog, tdesignComponentList } from './catalog/catalog-to-prompt.js';
|
|
12
|
+
export { DataProvider, useDataBinding, useDataState, useDataStore, useDataUpdate, useDataValue } from './contexts/data.js';
|
|
16
13
|
export { VisibilityProvider, useIsVisible, useVisibility } from './contexts/visibility.js';
|
|
17
14
|
export { ActionProvider, ConfirmDialog, useAction, useActions } from './contexts/actions.js';
|
|
18
15
|
export { ValidationProvider, useFieldValidation, useValidation } from './contexts/validation.js';
|
|
19
|
-
export { JSONUIProvider, Renderer, createRendererFromCatalog } from './renderer.js';
|
|
20
|
-
export { createCustomCatalog, generateCatalogPrompt, tdesignActionList, tdesignCatalog, tdesignComponentList } from './catalog.js';
|
|
21
|
-
export { default as A2UIAdapter, applyA2UIDataUpdate, applyA2UIUpdates, convertA2UIMessagesToJsonRender } from './adapters/a2ui-to-jsonrender.js';
|
|
22
16
|
import 'react';
|
|
17
|
+
import '../../../_chunks/dep-96eca06f.js';
|
|
23
18
|
import '@babel/runtime/helpers/typeof';
|
|
24
|
-
import '
|
|
19
|
+
import './renderer/JsonUIRenderer.js';
|
|
25
20
|
import '@babel/runtime/helpers/defineProperty';
|
|
26
|
-
import '
|
|
27
|
-
import 'tdesign-react';
|
|
28
|
-
import '@json-render/core';
|
|
29
|
-
import './catalog/text.js';
|
|
21
|
+
import './contexts/tree.js';
|
|
30
22
|
import '@babel/runtime/helpers/classCallCheck';
|
|
31
23
|
import '@babel/runtime/helpers/createClass';
|
|
32
|
-
import '@babel/runtime/helpers/
|
|
24
|
+
import '@babel/runtime/helpers/possibleConstructorReturn';
|
|
25
|
+
import '@babel/runtime/helpers/getPrototypeOf';
|
|
26
|
+
import '@babel/runtime/helpers/inherits';
|
|
27
|
+
import './contexts/store.js';
|
|
28
|
+
import '@json-render/core';
|
|
29
|
+
import '@babel/runtime/helpers/slicedToArray';
|
|
30
|
+
import '../../../_chunks/dep-16520c2b.js';
|
|
31
|
+
import '@babel/runtime/helpers/wrapNativeSuper';
|
|
33
32
|
import '@babel/runtime/helpers/asyncToGenerator';
|
|
34
33
|
import '@babel/runtime/regenerator';
|
|
34
|
+
import '@babel/runtime/helpers/objectWithoutProperties';
|
|
35
|
+
import '../../core/index.js';
|
|
36
|
+
import '../../core/adapters/agui/index.js';
|
|
37
|
+
import '@babel/runtime/helpers/toConsumableArray';
|
|
38
|
+
import '../../core/adapters/agui/event-mapper.js';
|
|
39
|
+
import '../../core/adapters/agui/types/index.js';
|
|
35
40
|
import 'zod';
|
|
41
|
+
import '../../core/adapters/agui/StateManager.js';
|
|
42
|
+
import '../../core/utils/index.js';
|
|
43
|
+
import '../../core/utils/immutable-patch.js';
|
|
44
|
+
import '@babel/runtime/helpers/toArray';
|
|
45
|
+
import '../../core/adapters/agui/ActivityManager.js';
|
|
46
|
+
import '../../core/adapters/agui/utils.js';
|
|
47
|
+
import '../../core/event-bus/index.js';
|
|
48
|
+
import '../../core/event-bus/ChatEventBus.js';
|
|
49
|
+
import '../../core/event-bus/types.js';
|
|
50
|
+
import '../../core/store/message.js';
|
|
51
|
+
import '@babel/runtime/helpers/get';
|
|
52
|
+
import '../../core/store/reactiveState.js';
|
|
53
|
+
import '../../core/processor/index.js';
|
|
54
|
+
import '../../core/server/index.js';
|
|
55
|
+
import '../../core/server/llm-service.js';
|
|
56
|
+
import '../../core/utils/logger.js';
|
|
57
|
+
import '../../core/server/batch-client.js';
|
|
58
|
+
import '../../core/utils/eventEmitter.js';
|
|
59
|
+
import '../../core/server/errors.js';
|
|
60
|
+
import '../../core/server/sse-client.js';
|
|
61
|
+
import '../../core/server/connection-manager.js';
|
|
62
|
+
import '../../core/server/sse-parser.js';
|
|
63
|
+
import '../../core/server/types.js';
|
|
64
|
+
import '../../core/adapters/index.js';
|
|
65
|
+
import '../../core/adapters/json-render/index.js';
|
|
66
|
+
import '../../core/adapters/json-render/a2ui-to-jsonrender.js';
|
|
67
|
+
import '../../core/adapters/json-render/types/a2ui.js';
|
|
68
|
+
import '../../core/adapters/json-render/SurfaceStateManager.js';
|
|
69
|
+
import '../../core/adapters/json-render/types/index.js';
|
|
70
|
+
import '../../core/adapters/json-render/types/core.js';
|
|
71
|
+
import './catalog/atomic/button.js';
|
|
72
|
+
import 'tdesign-react';
|
|
73
|
+
import './catalog/atomic/card.js';
|
|
74
|
+
import './catalog/atomic/text.js';
|
|
75
|
+
import './catalog/atomic/layout.js';
|
|
36
76
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A2UI 数据绑定 HOC
|
|
3
|
+
*
|
|
4
|
+
* 统一处理 A2UI 协议的标准字段:
|
|
5
|
+
* - valuePath: 值的数据绑定路径(如 /userInfo/name)
|
|
6
|
+
* - disabledPath: disabled 状态的数据绑定路径(如 /formDisabled)
|
|
7
|
+
* - action.context: action 参数中的动态数据绑定
|
|
8
|
+
*
|
|
9
|
+
* 性能优化:
|
|
10
|
+
* - 使用 React.memo + 精确值比较避免不必要渲染
|
|
11
|
+
* - Action 参数延迟解析(触发时才计算)
|
|
12
|
+
* - 使用 useRef 缓存回调函数避免重建
|
|
13
|
+
*
|
|
14
|
+
* 使用方式:
|
|
15
|
+
* ```tsx
|
|
16
|
+
* // 创建支持 A2UI 绑定的 Input
|
|
17
|
+
* const A2UIInput = withA2UIBinding(Input, {
|
|
18
|
+
* valueField: 'value',
|
|
19
|
+
* onChangeField: 'onChange',
|
|
20
|
+
* });
|
|
21
|
+
*
|
|
22
|
+
* // 创建支持 action 的 Button
|
|
23
|
+
* const A2UIButton = withA2UIBinding(Button, {
|
|
24
|
+
* supportsAction: true,
|
|
25
|
+
* actionTrigger: 'onClick', // 默认
|
|
26
|
+
* });
|
|
27
|
+
*
|
|
28
|
+
* // Input 支持 onEnter 触发 action
|
|
29
|
+
* const A2UISearchInput = withA2UIBinding(Input, {
|
|
30
|
+
* valueField: 'value',
|
|
31
|
+
* onChangeField: 'onChange',
|
|
32
|
+
* supportsAction: true,
|
|
33
|
+
* actionTrigger: 'onEnter',
|
|
34
|
+
* });
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
import React from 'react';
|
|
38
|
+
import { type ComponentRenderProps } from '../types';
|
|
39
|
+
/**
|
|
40
|
+
* A2UI 绑定配置
|
|
41
|
+
*/
|
|
42
|
+
export interface A2UIBindingConfig {
|
|
43
|
+
/** 组件的值字段名,默认 'value' */
|
|
44
|
+
valueField?: string;
|
|
45
|
+
/** 组件的 onChange 字段名,默认 'onChange' */
|
|
46
|
+
onChangeField?: string;
|
|
47
|
+
/** 是否支持 action 绑定,默认 false */
|
|
48
|
+
supportsAction?: boolean;
|
|
49
|
+
/**
|
|
50
|
+
* Action 触发事件名,默认 'onClick'
|
|
51
|
+
* 可设置为 'onEnter'、'onChange' 等
|
|
52
|
+
*/
|
|
53
|
+
actionTrigger?: string;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* A2UI 数据绑定 HOC
|
|
57
|
+
*
|
|
58
|
+
* 自动处理 A2UI 协议的标准字段,让原子组件保持纯净
|
|
59
|
+
*
|
|
60
|
+
* @param WrappedComponent 原始组件
|
|
61
|
+
* @param config 绑定配置
|
|
62
|
+
*/
|
|
63
|
+
export declare function withA2UIBinding<P extends Record<string, any>>(WrappedComponent: React.ComponentType<P>, config?: A2UIBindingConfig): React.FC<ComponentRenderProps>;
|
|
64
|
+
export default withA2UIBinding;
|