@tdesign-react/chat 1.0.2 → 1.1.0-alpha.10
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/CHANGELOG.md +0 -4
- package/README.md +76 -22
- 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-24472232.js +839 -0
- package/es/_chunks/dep-24472232.js.map +1 -0
- package/es/_chunks/dep-3864b369.js +839 -0
- package/es/_chunks/dep-3864b369.js.map +1 -0
- package/es/_chunks/dep-3e40d789.js +169 -0
- package/es/_chunks/dep-3e40d789.js.map +1 -0
- package/es/_chunks/dep-4dedfbef.js +438 -0
- package/es/_chunks/dep-4dedfbef.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-688e4aaa.js +438 -0
- package/es/_chunks/dep-688e4aaa.js.map +1 -0
- package/es/_chunks/dep-870f0d35.js +839 -0
- package/es/_chunks/dep-870f0d35.js.map +1 -0
- package/es/_chunks/dep-96eca06f.js +169 -0
- package/es/_chunks/dep-96eca06f.js.map +1 -0
- package/es/_chunks/dep-ba3bd553.js +169 -0
- package/es/_chunks/dep-ba3bd553.js.map +1 -0
- package/es/_chunks/dep-bcb234a1.js +839 -0
- package/es/_chunks/dep-bcb234a1.js.map +1 -0
- package/es/_chunks/dep-de8ac730.js +1247 -0
- package/es/_chunks/dep-de8ac730.js.map +1 -0
- package/es/_chunks/dep-e9dbff09.js +1247 -0
- package/es/_chunks/dep-e9dbff09.js.map +1 -0
- package/es/_chunks/dep-ebc4cf30.js +1247 -0
- package/es/_chunks/dep-ebc4cf30.js.map +1 -0
- package/es/_chunks/dep-f2051ebd.js +839 -0
- package/es/_chunks/dep-f2051ebd.js.map +1 -0
- package/es/_chunks/dep-f691a67e.js +438 -0
- package/es/_chunks/dep-f691a67e.js.map +1 -0
- package/es/_chunks/dep-f8016301.js +169 -0
- package/es/_chunks/dep-f8016301.js.map +1 -0
- package/es/_util/reactify.d.ts +1 -2
- package/es/_util/reactify.js +103 -233
- package/es/_util/reactify.js.map +1 -1
- package/es/_util/useDynamicStyle.js +1 -1
- package/es/attachments/index.js +4 -6
- package/es/attachments/index.js.map +1 -1
- package/es/chat-actionbar/index.d.ts +13 -4
- package/es/chat-actionbar/index.js +37 -9
- package/es/chat-actionbar/index.js.map +1 -1
- package/es/chat-engine/components/a2ui/A2UIActivityRenderer.d.ts +196 -0
- package/es/chat-engine/components/a2ui/A2UIActivityRenderer.js +301 -0
- package/es/chat-engine/components/a2ui/A2UIActivityRenderer.js.map +1 -0
- package/es/chat-engine/components/a2ui/A2UIComponentRenderer.d.ts +37 -0
- package/es/chat-engine/components/a2ui/A2UIComponentRenderer.js +116 -0
- package/es/chat-engine/components/a2ui/A2UIComponentRenderer.js.map +1 -0
- package/es/chat-engine/components/a2ui/A2UIErrorBoundary.d.ts +42 -0
- package/es/chat-engine/components/a2ui/A2UIErrorBoundary.js +113 -0
- package/es/chat-engine/components/a2ui/A2UIErrorBoundary.js.map +1 -0
- package/es/chat-engine/components/a2ui/A2UISkeleton.d.ts +60 -0
- package/es/chat-engine/components/a2ui/A2UISkeleton.js +197 -0
- package/es/chat-engine/components/a2ui/A2UISkeleton.js.map +1 -0
- package/es/chat-engine/components/a2ui/A2UISurfaceRenderer.d.ts +44 -0
- package/es/chat-engine/components/a2ui/A2UISurfaceRenderer.js +139 -0
- package/es/chat-engine/components/a2ui/A2UISurfaceRenderer.js.map +1 -0
- package/es/chat-engine/components/a2ui/containers/A2UICard.d.ts +22 -0
- package/es/chat-engine/components/a2ui/containers/A2UICard.js +82 -0
- package/es/chat-engine/components/a2ui/containers/A2UICard.js.map +1 -0
- package/es/chat-engine/components/a2ui/containers/A2UIColumn.d.ts +18 -0
- package/es/chat-engine/components/a2ui/containers/A2UIColumn.js +81 -0
- package/es/chat-engine/components/a2ui/containers/A2UIColumn.js.map +1 -0
- package/es/chat-engine/components/a2ui/containers/A2UIList.d.ts +14 -0
- package/es/chat-engine/components/a2ui/containers/A2UIList.js +62 -0
- package/es/chat-engine/components/a2ui/containers/A2UIList.js.map +1 -0
- package/es/chat-engine/components/a2ui/containers/A2UIRow.d.ts +20 -0
- package/es/chat-engine/components/a2ui/containers/A2UIRow.js +84 -0
- package/es/chat-engine/components/a2ui/containers/A2UIRow.js.map +1 -0
- package/es/chat-engine/components/a2ui/containers/A2UITabs.d.ts +14 -0
- package/es/chat-engine/components/a2ui/containers/A2UITabs.js +69 -0
- package/es/chat-engine/components/a2ui/containers/A2UITabs.js.map +1 -0
- package/es/chat-engine/components/a2ui/containers/index.d.ts +8 -0
- package/es/chat-engine/components/a2ui/containers/index.js +30 -0
- package/es/chat-engine/components/a2ui/containers/index.js.map +1 -0
- package/es/chat-engine/components/a2ui/index.d.ts +11 -0
- package/es/chat-engine/components/a2ui/index.js +62 -0
- package/es/chat-engine/components/a2ui/index.js.map +1 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIButton.d.ts +33 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIButton.js +80 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIButton.js.map +1 -0
- package/es/chat-engine/components/a2ui/primitives/A2UICheckBox.d.ts +12 -0
- package/es/chat-engine/components/a2ui/primitives/A2UICheckBox.js +43 -0
- package/es/chat-engine/components/a2ui/primitives/A2UICheckBox.js.map +1 -0
- package/es/chat-engine/components/a2ui/primitives/A2UICheckboxGroup.d.ts +50 -0
- package/es/chat-engine/components/a2ui/primitives/A2UICheckboxGroup.js +54 -0
- package/es/chat-engine/components/a2ui/primitives/A2UICheckboxGroup.js.map +1 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIChoicePicker.d.ts +13 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIChoicePicker.js +89 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIChoicePicker.js.map +1 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIDivider.d.ts +12 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIDivider.js +25 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIDivider.js.map +1 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIIcon.d.ts +13 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIIcon.js +138942 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIIcon.js.map +1 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIImage.d.ts +12 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIImage.js +75 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIImage.js.map +1 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIInput.d.ts +20 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIInput.js +63 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIInput.js.map +1 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIRadioGroup.d.ts +56 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIRadioGroup.js +64 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIRadioGroup.js.map +1 -0
- package/es/chat-engine/components/a2ui/primitives/A2UISlider.d.ts +12 -0
- package/es/chat-engine/components/a2ui/primitives/A2UISlider.js +55 -0
- package/es/chat-engine/components/a2ui/primitives/A2UISlider.js.map +1 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIText.d.ts +12 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIText.js +104 -0
- package/es/chat-engine/components/a2ui/primitives/A2UIText.js.map +1 -0
- package/es/chat-engine/components/a2ui/primitives/A2UITextField.d.ts +12 -0
- package/es/chat-engine/components/a2ui/primitives/A2UITextField.js +80 -0
- package/es/chat-engine/components/a2ui/primitives/A2UITextField.js.map +1 -0
- package/es/chat-engine/components/a2ui/primitives/index.d.ts +15 -0
- package/es/chat-engine/components/a2ui/primitives/index.js +39 -0
- package/es/chat-engine/components/a2ui/primitives/index.js.map +1 -0
- package/es/chat-engine/components/a2ui/registry.d.ts +35 -0
- package/es/chat-engine/components/a2ui/registry.js +74 -0
- package/es/chat-engine/components/a2ui/registry.js.map +1 -0
- package/es/chat-engine/components/activity/index.d.ts +1 -0
- package/es/chat-engine/components/activity/index.js +3 -2
- 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 +1 -1
- package/es/chat-engine/components/activity/render.js +4 -3
- 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.d.ts +1 -0
- package/es/chat-engine/components/index.js +62 -5
- package/es/chat-engine/components/index.js.map +1 -1
- package/es/chat-engine/components/json-render/A2UIJsonRenderActivityRenderer.d.ts +36 -0
- package/es/chat-engine/components/json-render/A2UIJsonRenderActivityRenderer.js +36 -0
- package/es/chat-engine/components/json-render/A2UIJsonRenderActivityRenderer.js.map +1 -0
- package/es/chat-engine/components/json-render/JsonRenderActivityRenderer.d.ts +46 -0
- package/es/chat-engine/components/json-render/JsonRenderActivityRenderer.js +36 -0
- package/es/chat-engine/components/json-render/JsonRenderActivityRenderer.js.map +1 -0
- package/es/chat-engine/components/json-render/SurfaceStateManager.d.ts +113 -0
- package/es/chat-engine/components/json-render/SurfaceStateManager.js +195 -0
- package/es/chat-engine/components/json-render/SurfaceStateManager.js.map +1 -0
- package/es/chat-engine/components/json-render/adapters/a2ui-to-jsonrender.d.ts +49 -0
- package/es/chat-engine/components/json-render/adapters/a2ui-to-jsonrender.js +307 -0
- package/es/chat-engine/components/json-render/adapters/a2ui-to-jsonrender.js.map +1 -0
- package/es/chat-engine/components/json-render/adapters/a2ui-types.d.ts +96 -0
- package/es/chat-engine/components/json-render/adapters/a2ui-types.js +7 -0
- package/es/chat-engine/components/json-render/adapters/a2ui-types.js.map +1 -0
- package/es/chat-engine/components/json-render/adapters/index.d.ts +7 -0
- package/es/chat-engine/components/json-render/adapters/index.js +11 -0
- package/es/chat-engine/components/json-render/adapters/index.js.map +1 -0
- package/es/chat-engine/components/json-render/catalog/a2ui-binding.d.ts +64 -0
- package/es/chat-engine/components/json-render/catalog/a2ui-binding.js +36 -0
- package/es/chat-engine/components/json-render/catalog/a2ui-binding.js.map +1 -0
- package/es/chat-engine/components/json-render/catalog/a2ui-registry.d.ts +78 -0
- package/es/chat-engine/components/json-render/catalog/a2ui-registry.js +36 -0
- package/es/chat-engine/components/json-render/catalog/a2ui-registry.js.map +1 -0
- 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/button.d.ts +14 -0
- package/es/chat-engine/components/json-render/catalog/button.js +71 -0
- package/es/chat-engine/components/json-render/catalog/button.js.map +1 -0
- package/es/chat-engine/components/json-render/catalog/card.d.ts +11 -0
- package/es/chat-engine/components/json-render/catalog/card.js +57 -0
- package/es/chat-engine/components/json-render/catalog/card.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/catalog/index.d.ts +128 -0
- package/es/chat-engine/components/json-render/catalog/index.js +36 -0
- package/es/chat-engine/components/json-render/catalog/index.js.map +1 -0
- package/es/chat-engine/components/json-render/catalog/input.d.ts +20 -0
- package/es/chat-engine/components/json-render/catalog/input.js +36 -0
- package/es/chat-engine/components/json-render/catalog/input.js.map +1 -0
- package/es/chat-engine/components/json-render/catalog/layout.d.ts +44 -0
- package/es/chat-engine/components/json-render/catalog/layout.js +129 -0
- package/es/chat-engine/components/json-render/catalog/layout.js.map +1 -0
- package/es/chat-engine/components/json-render/catalog/text.d.ts +11 -0
- package/es/chat-engine/components/json-render/catalog/text.js +31 -0
- package/es/chat-engine/components/json-render/catalog/text.js.map +1 -0
- package/es/chat-engine/components/json-render/catalog.d.ts +614 -0
- package/es/chat-engine/components/json-render/catalog.js +779 -0
- package/es/chat-engine/components/json-render/catalog.js.map +1 -0
- package/es/chat-engine/components/json-render/config.d.ts +154 -0
- package/es/chat-engine/components/json-render/config.js +36 -0
- package/es/chat-engine/components/json-render/config.js.map +1 -0
- package/es/chat-engine/components/json-render/contexts/actions.d.ts +79 -0
- package/es/chat-engine/components/json-render/contexts/actions.js +313 -0
- package/es/chat-engine/components/json-render/contexts/actions.js.map +1 -0
- package/es/chat-engine/components/json-render/contexts/data.d.ts +137 -0
- package/es/chat-engine/components/json-render/contexts/data.js +183 -0
- package/es/chat-engine/components/json-render/contexts/data.js.map +1 -0
- 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.d.ts +59 -0
- package/es/chat-engine/components/json-render/contexts/validation.js +159 -0
- package/es/chat-engine/components/json-render/contexts/validation.js.map +1 -0
- package/es/chat-engine/components/json-render/contexts/visibility.d.ts +39 -0
- package/es/chat-engine/components/json-render/contexts/visibility.js +66 -0
- package/es/chat-engine/components/json-render/contexts/visibility.js.map +1 -0
- package/es/chat-engine/components/json-render/engine.d.ts +58 -0
- package/es/chat-engine/components/json-render/engine.js +88 -0
- package/es/chat-engine/components/json-render/engine.js.map +1 -0
- package/es/chat-engine/components/json-render/index.d.ts +13 -0
- package/es/chat-engine/components/json-render/index.js +76 -0
- package/es/chat-engine/components/json-render/index.js.map +1 -0
- package/es/chat-engine/components/json-render/performance.d.ts +91 -0
- package/es/chat-engine/components/json-render/performance.js +135 -0
- package/es/chat-engine/components/json-render/performance.js.map +1 -0
- 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/renderer.d.ts +71 -0
- package/es/chat-engine/components/json-render/renderer.js +124 -0
- package/es/chat-engine/components/json-render/renderer.js.map +1 -0
- package/es/chat-engine/components/json-render/types.d.ts +87 -0
- package/es/chat-engine/components/json-render/types.js +7 -0
- package/es/chat-engine/components/json-render/types.js.map +1 -0
- package/es/chat-engine/components/provider/agent-state.js +48 -2
- package/es/chat-engine/components/provider/agent-state.js.map +1 -1
- package/es/chat-engine/components/toolcall/index.js +41 -2
- 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.d.ts +1 -1
- package/es/chat-engine/components/toolcall/render.js +41 -2
- 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/a2ui/index.d.ts +10 -0
- package/es/chat-engine/core/a2ui/index.js +24 -0
- package/es/chat-engine/core/a2ui/index.js.map +1 -0
- package/es/chat-engine/core/a2ui/processor/A2uiMessageProcessor.d.ts +197 -0
- package/es/chat-engine/core/a2ui/processor/A2uiMessageProcessor.js +438 -0
- package/es/chat-engine/core/a2ui/processor/A2uiMessageProcessor.js.map +1 -0
- package/es/chat-engine/core/a2ui/processor/ComponentTree.d.ts +53 -0
- package/es/chat-engine/core/a2ui/processor/ComponentTree.js +158 -0
- package/es/chat-engine/core/a2ui/processor/ComponentTree.js.map +1 -0
- package/es/chat-engine/core/a2ui/processor/DataStore.d.ts +63 -0
- package/es/chat-engine/core/a2ui/processor/DataStore.js +172 -0
- package/es/chat-engine/core/a2ui/processor/DataStore.js.map +1 -0
- package/es/chat-engine/core/a2ui/processor/PathResolver.d.ts +47 -0
- package/es/chat-engine/core/a2ui/processor/PathResolver.js +99 -0
- package/es/chat-engine/core/a2ui/processor/PathResolver.js.map +1 -0
- package/es/chat-engine/core/a2ui/types/index.d.ts +4 -0
- package/es/chat-engine/core/a2ui/types/index.js +9 -0
- package/es/chat-engine/core/a2ui/types/index.js.map +1 -0
- package/es/chat-engine/core/a2ui/types/types.d.ts +770 -0
- package/es/chat-engine/core/a2ui/types/types.js +104 -0
- package/es/chat-engine/core/a2ui/types/types.js.map +1 -0
- package/es/chat-engine/core/a2ui/utils/binding.d.ts +34 -0
- package/es/chat-engine/core/a2ui/utils/binding.js +1784 -0
- package/es/chat-engine/core/a2ui/utils/binding.js.map +1 -0
- package/es/chat-engine/core/a2ui/utils/index.d.ts +5 -0
- package/es/chat-engine/core/a2ui/utils/index.js +13 -0
- package/es/chat-engine/core/a2ui/utils/index.js.map +1 -0
- package/es/chat-engine/core/a2ui/utils/validation.d.ts +70 -0
- package/es/chat-engine/core/a2ui/utils/validation.js +333 -0
- package/es/chat-engine/core/a2ui/utils/validation.js.map +1 -0
- 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/activity-manager.d.ts +102 -0
- package/es/chat-engine/core/adapters/agui/activity-manager.js +150 -0
- package/es/chat-engine/core/adapters/agui/activity-manager.js.map +1 -0
- package/es/chat-engine/core/adapters/agui/event-mapper.d.ts +149 -0
- package/es/chat-engine/core/adapters/agui/event-mapper.js +417 -0
- package/es/chat-engine/core/adapters/agui/event-mapper.js.map +1 -0
- package/es/chat-engine/core/adapters/agui/events.d.ts +1550 -0
- package/es/chat-engine/core/adapters/agui/events.js +199 -0
- package/es/chat-engine/core/adapters/agui/events.js.map +1 -0
- package/es/chat-engine/core/adapters/agui/index.d.ts +92 -0
- package/es/chat-engine/core/adapters/agui/index.js +200 -0
- package/es/chat-engine/core/adapters/agui/index.js.map +1 -0
- package/es/chat-engine/core/adapters/agui/state-manager.d.ts +99 -0
- package/es/chat-engine/core/adapters/agui/state-manager.js +174 -0
- package/es/chat-engine/core/adapters/agui/state-manager.js.map +1 -0
- package/es/chat-engine/core/adapters/agui/types/events.d.ts +1570 -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 +854 -0
- package/es/chat-engine/core/adapters/agui/types/index.js +279 -0
- package/es/chat-engine/core/adapters/agui/types/index.js.map +1 -0
- package/es/chat-engine/core/adapters/agui/types.d.ts +818 -0
- package/es/chat-engine/core/adapters/agui/types.js +95 -0
- package/es/chat-engine/core/adapters/agui/types.js.map +1 -0
- package/es/chat-engine/core/adapters/agui/utils.d.ts +203 -0
- package/es/chat-engine/core/adapters/agui/utils.js +330 -0
- package/es/chat-engine/core/adapters/agui/utils.js.map +1 -0
- 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.d.ts +88 -0
- package/es/chat-engine/core/event-bus/ChatEventBus.js +295 -0
- package/es/chat-engine/core/event-bus/ChatEventBus.js.map +1 -0
- package/es/chat-engine/core/event-bus/index.d.ts +5 -0
- package/es/chat-engine/core/event-bus/index.js +13 -0
- package/es/chat-engine/core/event-bus/index.js.map +1 -0
- package/es/chat-engine/core/event-bus/types.d.ts +230 -0
- package/es/chat-engine/core/event-bus/types.js +32 -0
- package/es/chat-engine/core/event-bus/types.js.map +1 -0
- package/es/chat-engine/core/index.d.ts +147 -0
- package/es/chat-engine/core/index.js +760 -0
- package/es/chat-engine/core/index.js.map +1 -0
- package/es/chat-engine/core/processor/index.d.ts +20 -0
- package/es/chat-engine/core/processor/index.js +146 -0
- package/es/chat-engine/core/processor/index.js.map +1 -0
- package/es/chat-engine/core/server/batch-client.d.ts +20 -0
- package/es/chat-engine/core/server/batch-client.js +114 -0
- package/es/chat-engine/core/server/batch-client.js.map +1 -0
- package/es/chat-engine/core/server/connection-manager.d.ts +39 -0
- package/es/chat-engine/core/server/connection-manager.js +84 -0
- package/es/chat-engine/core/server/connection-manager.js.map +1 -0
- package/es/chat-engine/core/server/errors.d.ts +22 -0
- package/es/chat-engine/core/server/errors.js +80 -0
- package/es/chat-engine/core/server/errors.js.map +1 -0
- package/es/chat-engine/core/server/index.d.ts +11 -0
- package/es/chat-engine/core/server/index.js +26 -0
- package/es/chat-engine/core/server/index.js.map +1 -0
- package/es/chat-engine/core/server/llm-service.d.ts +44 -0
- package/es/chat-engine/core/server/llm-service.js +200 -0
- package/es/chat-engine/core/server/llm-service.js.map +1 -0
- package/es/chat-engine/core/server/sse-client.d.ts +77 -0
- package/es/chat-engine/core/server/sse-client.js +362 -0
- package/es/chat-engine/core/server/sse-client.js.map +1 -0
- package/es/chat-engine/core/server/sse-parser.d.ts +49 -0
- package/es/chat-engine/core/server/sse-parser.js +116 -0
- package/es/chat-engine/core/server/sse-parser.js.map +1 -0
- package/es/chat-engine/core/server/types.d.ts +54 -0
- package/es/chat-engine/core/server/types.js +28 -0
- package/es/chat-engine/core/server/types.js.map +1 -0
- package/es/chat-engine/core/store/message.d.ts +27 -0
- package/es/chat-engine/core/store/message.js +267 -0
- package/es/chat-engine/core/store/message.js.map +1 -0
- package/es/chat-engine/core/store/model.d.ts +8 -0
- package/es/chat-engine/core/store/model.js +66 -0
- package/es/chat-engine/core/store/model.js.map +1 -0
- package/es/chat-engine/core/store/reactiveState.d.ts +56 -0
- package/es/chat-engine/core/store/reactiveState.js +139 -0
- package/es/chat-engine/core/store/reactiveState.js.map +1 -0
- package/es/chat-engine/core/type.d.ts +279 -0
- package/es/chat-engine/core/type.js +7 -0
- package/es/chat-engine/core/type.js.map +1 -0
- package/es/chat-engine/core/utils/eventEmitter.d.ts +10 -0
- package/es/chat-engine/core/utils/eventEmitter.js +67 -0
- package/es/chat-engine/core/utils/eventEmitter.js.map +1 -0
- 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 +38 -0
- package/es/chat-engine/core/utils/index.js +125 -0
- package/es/chat-engine/core/utils/index.js.map +1 -0
- package/es/chat-engine/core/utils/json-patch/helpers.d.ts +41 -0
- package/es/chat-engine/core/utils/json-patch/helpers.js +164 -0
- package/es/chat-engine/core/utils/json-patch/helpers.js.map +1 -0
- package/es/chat-engine/core/utils/json-patch/index.d.ts +115 -0
- package/es/chat-engine/core/utils/json-patch/index.js +387 -0
- package/es/chat-engine/core/utils/json-patch/index.js.map +1 -0
- package/es/chat-engine/core/utils/logger.d.ts +30 -0
- package/es/chat-engine/core/utils/logger.js +87 -0
- package/es/chat-engine/core/utils/logger.js.map +1 -0
- 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/a2ui/A2UIContext.d.ts +90 -0
- package/es/chat-engine/hooks/a2ui/A2UIContext.js +97 -0
- package/es/chat-engine/hooks/a2ui/A2UIContext.js.map +1 -0
- package/es/chat-engine/hooks/a2ui/index.d.ts +12 -0
- package/es/chat-engine/hooks/a2ui/index.js +19 -0
- package/es/chat-engine/hooks/a2ui/index.js.map +1 -0
- package/es/chat-engine/hooks/a2ui/useA2UIAction.d.ts +40 -0
- package/es/chat-engine/hooks/a2ui/useA2UIAction.js +74 -0
- package/es/chat-engine/hooks/a2ui/useA2UIAction.js.map +1 -0
- package/es/chat-engine/hooks/a2ui/useA2UISurface.d.ts +36 -0
- package/es/chat-engine/hooks/a2ui/useA2UISurface.js +39 -0
- package/es/chat-engine/hooks/a2ui/useA2UISurface.js.map +1 -0
- package/es/chat-engine/hooks/a2ui/useDataBinding.d.ts +53 -0
- package/es/chat-engine/hooks/a2ui/useDataBinding.js +111 -0
- package/es/chat-engine/hooks/a2ui/useDataBinding.js.map +1 -0
- package/es/chat-engine/hooks/index.js +47 -4
- package/es/chat-engine/hooks/index.js.map +1 -1
- package/es/chat-engine/hooks/useAgentActivity.js +1 -1
- package/es/chat-engine/hooks/useAgentActivity.js.map +1 -1
- package/es/chat-engine/hooks/useAgentState.js +48 -2
- 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.d.ts +2 -2
- package/es/chat-engine/hooks/useChat.js +50 -3
- package/es/chat-engine/hooks/useChat.js.map +1 -1
- package/es/chat-engine/hooks/useJsonRenderActivity.d.ts +56 -0
- package/es/chat-engine/hooks/useJsonRenderActivity.js +63 -0
- package/es/chat-engine/hooks/useJsonRenderActivity.js.map +1 -0
- package/es/chat-engine/index.d.ts +1 -1
- package/es/chat-engine/index.js +61 -5
- package/es/chat-engine/index.js.map +1 -1
- package/es/chat-filecard/index.js +4 -6
- package/es/chat-filecard/index.js.map +1 -1
- package/es/chat-loading/index.js +4 -6
- package/es/chat-loading/index.js.map +1 -1
- package/es/chat-markdown/index.js +4 -6
- package/es/chat-markdown/index.js.map +1 -1
- package/es/chat-message/index.js +4 -6
- package/es/chat-message/index.js.map +1 -1
- package/es/chat-sender/index.js +4 -6
- package/es/chat-sender/index.js.map +1 -1
- package/es/chat-thinking/index.js +4 -6
- package/es/chat-thinking/index.js.map +1 -1
- package/es/chatbot/docs/react-best-practice.d.ts +13 -0
- package/es/chatbot/index.js +4 -6
- package/es/chatbot/index.js.map +1 -1
- package/es/index.js +63 -10
- package/es/index.js.map +1 -1
- package/es/style/index.js +1 -1
- package/package.json +19 -15
- package/es/chatbot/_example-js/agui-toolcall.d.ts +0 -11
|
@@ -0,0 +1,313 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* tdesign v1.1.0-alpha.9
|
|
3
|
+
* (c) 2026 tdesign
|
|
4
|
+
* @license MIT
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import _asyncToGenerator from '@babel/runtime/helpers/asyncToGenerator';
|
|
8
|
+
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
9
|
+
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
10
|
+
import _regeneratorRuntime from '@babel/runtime/regenerator';
|
|
11
|
+
import React, { createContext, useState, useRef, useCallback, useMemo, useContext } from 'react';
|
|
12
|
+
import { executeAction, resolveAction } from '@json-render/core';
|
|
13
|
+
import { useDataStore } from './data.js';
|
|
14
|
+
import { useStableCallback } from './store.js';
|
|
15
|
+
import '@babel/runtime/helpers/typeof';
|
|
16
|
+
import '@babel/runtime/helpers/classCallCheck';
|
|
17
|
+
import '@babel/runtime/helpers/createClass';
|
|
18
|
+
import '@babel/runtime/helpers/possibleConstructorReturn';
|
|
19
|
+
import '@babel/runtime/helpers/getPrototypeOf';
|
|
20
|
+
import '@babel/runtime/helpers/inherits';
|
|
21
|
+
import '../../../../_chunks/dep-de8ac730.js';
|
|
22
|
+
import '@babel/runtime/helpers/wrapNativeSuper';
|
|
23
|
+
|
|
24
|
+
"use client";
|
|
25
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
26
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
27
|
+
var ActionContext = /*#__PURE__*/createContext(null);
|
|
28
|
+
function ActionProvider(_ref) {
|
|
29
|
+
var _ref$handlers = _ref.handlers,
|
|
30
|
+
initialHandlers = _ref$handlers === void 0 ? {} : _ref$handlers,
|
|
31
|
+
navigate = _ref.navigate,
|
|
32
|
+
children = _ref.children;
|
|
33
|
+
var dataStore = useDataStore();
|
|
34
|
+
var _useState = useState(initialHandlers),
|
|
35
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
36
|
+
handlers = _useState2[0],
|
|
37
|
+
setHandlers = _useState2[1];
|
|
38
|
+
var _useState3 = useState(/* @__PURE__ */new Set()),
|
|
39
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
40
|
+
loadingActions = _useState4[0],
|
|
41
|
+
setLoadingActions = _useState4[1];
|
|
42
|
+
var _useState5 = useState(null),
|
|
43
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
44
|
+
pendingConfirmation = _useState6[0],
|
|
45
|
+
setPendingConfirmation = _useState6[1];
|
|
46
|
+
var storeRef = useRef(dataStore);
|
|
47
|
+
storeRef.current = dataStore;
|
|
48
|
+
var handlersRef = useRef(handlers);
|
|
49
|
+
handlersRef.current = handlers;
|
|
50
|
+
var navigateRef = useRef(navigate);
|
|
51
|
+
navigateRef.current = navigate;
|
|
52
|
+
var registerHandler = useCallback(function (name, handler) {
|
|
53
|
+
setHandlers(function (prev) {
|
|
54
|
+
return _objectSpread(_objectSpread({}, prev), {}, _defineProperty({}, name, handler));
|
|
55
|
+
});
|
|
56
|
+
}, []);
|
|
57
|
+
var executeRef = useRef();
|
|
58
|
+
var execute = useStableCallback(/*#__PURE__*/function () {
|
|
59
|
+
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee4(action) {
|
|
60
|
+
var store, data, setData, currentHandlers, currentNavigate, resolved, handler;
|
|
61
|
+
return _regeneratorRuntime.wrap(function (_context4) {
|
|
62
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
63
|
+
case 0:
|
|
64
|
+
store = storeRef.current;
|
|
65
|
+
data = store.getData();
|
|
66
|
+
setData = function setData(path, value2) {
|
|
67
|
+
return store.setByPath(path, value2);
|
|
68
|
+
};
|
|
69
|
+
currentHandlers = handlersRef.current;
|
|
70
|
+
currentNavigate = navigateRef.current;
|
|
71
|
+
resolved = resolveAction(action, data);
|
|
72
|
+
handler = currentHandlers[resolved.name];
|
|
73
|
+
if (handler) {
|
|
74
|
+
_context4.next = 1;
|
|
75
|
+
break;
|
|
76
|
+
}
|
|
77
|
+
console.warn("No handler registered for action: ".concat(resolved.name));
|
|
78
|
+
return _context4.abrupt("return");
|
|
79
|
+
case 1:
|
|
80
|
+
if (!resolved.confirm) {
|
|
81
|
+
_context4.next = 2;
|
|
82
|
+
break;
|
|
83
|
+
}
|
|
84
|
+
return _context4.abrupt("return", new Promise(function (_resolve, _reject) {
|
|
85
|
+
setPendingConfirmation({
|
|
86
|
+
action: resolved,
|
|
87
|
+
handler: handler,
|
|
88
|
+
resolve: function resolve() {
|
|
89
|
+
setPendingConfirmation(null);
|
|
90
|
+
_resolve();
|
|
91
|
+
},
|
|
92
|
+
reject: function reject() {
|
|
93
|
+
setPendingConfirmation(null);
|
|
94
|
+
_reject(new Error("Action cancelled"));
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
}).then(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
|
|
98
|
+
return _regeneratorRuntime.wrap(function (_context2) {
|
|
99
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
100
|
+
case 0:
|
|
101
|
+
setLoadingActions(function (prev) {
|
|
102
|
+
return new Set(prev).add(resolved.name);
|
|
103
|
+
});
|
|
104
|
+
_context2.prev = 1;
|
|
105
|
+
_context2.next = 2;
|
|
106
|
+
return executeAction({
|
|
107
|
+
action: resolved,
|
|
108
|
+
handler: handler,
|
|
109
|
+
setData: setData,
|
|
110
|
+
navigate: currentNavigate,
|
|
111
|
+
executeAction: function () {
|
|
112
|
+
var _executeAction = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(name) {
|
|
113
|
+
var _executeRef$current;
|
|
114
|
+
var subAction;
|
|
115
|
+
return _regeneratorRuntime.wrap(function (_context) {
|
|
116
|
+
while (1) switch (_context.prev = _context.next) {
|
|
117
|
+
case 0:
|
|
118
|
+
subAction = {
|
|
119
|
+
name: name
|
|
120
|
+
};
|
|
121
|
+
_context.next = 1;
|
|
122
|
+
return (_executeRef$current = executeRef.current) === null || _executeRef$current === void 0 ? void 0 : _executeRef$current.call(executeRef, subAction);
|
|
123
|
+
case 1:
|
|
124
|
+
case "end":
|
|
125
|
+
return _context.stop();
|
|
126
|
+
}
|
|
127
|
+
}, _callee);
|
|
128
|
+
}));
|
|
129
|
+
function executeAction(_x2) {
|
|
130
|
+
return _executeAction.apply(this, arguments);
|
|
131
|
+
}
|
|
132
|
+
return executeAction;
|
|
133
|
+
}()
|
|
134
|
+
});
|
|
135
|
+
case 2:
|
|
136
|
+
_context2.prev = 2;
|
|
137
|
+
setLoadingActions(function (prev) {
|
|
138
|
+
var next = new Set(prev);
|
|
139
|
+
next["delete"](resolved.name);
|
|
140
|
+
return next;
|
|
141
|
+
});
|
|
142
|
+
return _context2.finish(2);
|
|
143
|
+
case 3:
|
|
144
|
+
case "end":
|
|
145
|
+
return _context2.stop();
|
|
146
|
+
}
|
|
147
|
+
}, _callee2, null, [[1,, 2, 3]]);
|
|
148
|
+
}))));
|
|
149
|
+
case 2:
|
|
150
|
+
setLoadingActions(function (prev) {
|
|
151
|
+
return new Set(prev).add(resolved.name);
|
|
152
|
+
});
|
|
153
|
+
_context4.prev = 3;
|
|
154
|
+
_context4.next = 4;
|
|
155
|
+
return executeAction({
|
|
156
|
+
action: resolved,
|
|
157
|
+
handler: handler,
|
|
158
|
+
setData: setData,
|
|
159
|
+
navigate: currentNavigate,
|
|
160
|
+
executeAction: function () {
|
|
161
|
+
var _executeAction2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee3(name) {
|
|
162
|
+
var _executeRef$current2;
|
|
163
|
+
var subAction;
|
|
164
|
+
return _regeneratorRuntime.wrap(function (_context3) {
|
|
165
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
166
|
+
case 0:
|
|
167
|
+
subAction = {
|
|
168
|
+
name: name
|
|
169
|
+
};
|
|
170
|
+
_context3.next = 1;
|
|
171
|
+
return (_executeRef$current2 = executeRef.current) === null || _executeRef$current2 === void 0 ? void 0 : _executeRef$current2.call(executeRef, subAction);
|
|
172
|
+
case 1:
|
|
173
|
+
case "end":
|
|
174
|
+
return _context3.stop();
|
|
175
|
+
}
|
|
176
|
+
}, _callee3);
|
|
177
|
+
}));
|
|
178
|
+
function executeAction(_x3) {
|
|
179
|
+
return _executeAction2.apply(this, arguments);
|
|
180
|
+
}
|
|
181
|
+
return executeAction;
|
|
182
|
+
}()
|
|
183
|
+
});
|
|
184
|
+
case 4:
|
|
185
|
+
_context4.prev = 4;
|
|
186
|
+
setLoadingActions(function (prev) {
|
|
187
|
+
var next = new Set(prev);
|
|
188
|
+
next["delete"](resolved.name);
|
|
189
|
+
return next;
|
|
190
|
+
});
|
|
191
|
+
return _context4.finish(4);
|
|
192
|
+
case 5:
|
|
193
|
+
case "end":
|
|
194
|
+
return _context4.stop();
|
|
195
|
+
}
|
|
196
|
+
}, _callee4, null, [[3,, 4, 5]]);
|
|
197
|
+
}));
|
|
198
|
+
return function (_x) {
|
|
199
|
+
return _ref2.apply(this, arguments);
|
|
200
|
+
};
|
|
201
|
+
}());
|
|
202
|
+
executeRef.current = execute;
|
|
203
|
+
var confirm = useCallback(function () {
|
|
204
|
+
pendingConfirmation === null || pendingConfirmation === void 0 || pendingConfirmation.resolve();
|
|
205
|
+
}, [pendingConfirmation]);
|
|
206
|
+
var cancel = useCallback(function () {
|
|
207
|
+
pendingConfirmation === null || pendingConfirmation === void 0 || pendingConfirmation.reject();
|
|
208
|
+
}, [pendingConfirmation]);
|
|
209
|
+
var value = useMemo(function () {
|
|
210
|
+
return {
|
|
211
|
+
handlers: handlers,
|
|
212
|
+
loadingActions: loadingActions,
|
|
213
|
+
pendingConfirmation: pendingConfirmation,
|
|
214
|
+
execute: execute,
|
|
215
|
+
confirm: confirm,
|
|
216
|
+
cancel: cancel,
|
|
217
|
+
registerHandler: registerHandler
|
|
218
|
+
};
|
|
219
|
+
}, [handlers, loadingActions, pendingConfirmation, execute, confirm, cancel, registerHandler]);
|
|
220
|
+
return /* @__PURE__ */React.createElement(ActionContext.Provider, {
|
|
221
|
+
value: value
|
|
222
|
+
}, children);
|
|
223
|
+
}
|
|
224
|
+
function useActions() {
|
|
225
|
+
var ctx = useContext(ActionContext);
|
|
226
|
+
if (!ctx) {
|
|
227
|
+
throw new Error("useActions must be used within an ActionProvider");
|
|
228
|
+
}
|
|
229
|
+
return ctx;
|
|
230
|
+
}
|
|
231
|
+
function useAction(action) {
|
|
232
|
+
var _useActions = useActions(),
|
|
233
|
+
execute = _useActions.execute,
|
|
234
|
+
loadingActions = _useActions.loadingActions;
|
|
235
|
+
var isLoading = loadingActions.has(action.name);
|
|
236
|
+
var executeAction2 = useCallback(function () {
|
|
237
|
+
return execute(action);
|
|
238
|
+
}, [execute, action]);
|
|
239
|
+
return {
|
|
240
|
+
execute: executeAction2,
|
|
241
|
+
isLoading: isLoading
|
|
242
|
+
};
|
|
243
|
+
}
|
|
244
|
+
function ConfirmDialog(_ref4) {
|
|
245
|
+
var _confirm$cancelLabel, _confirm$confirmLabel;
|
|
246
|
+
var confirm = _ref4.confirm,
|
|
247
|
+
onConfirm = _ref4.onConfirm,
|
|
248
|
+
onCancel = _ref4.onCancel;
|
|
249
|
+
var isDanger = confirm.variant === "danger";
|
|
250
|
+
return /* @__PURE__ */React.createElement("div", {
|
|
251
|
+
style: {
|
|
252
|
+
position: "fixed",
|
|
253
|
+
inset: 0,
|
|
254
|
+
backgroundColor: "rgba(0, 0, 0, 0.5)",
|
|
255
|
+
display: "flex",
|
|
256
|
+
alignItems: "center",
|
|
257
|
+
justifyContent: "center",
|
|
258
|
+
zIndex: 50
|
|
259
|
+
},
|
|
260
|
+
onClick: onCancel
|
|
261
|
+
}, /* @__PURE__ */React.createElement("div", {
|
|
262
|
+
style: {
|
|
263
|
+
backgroundColor: "white",
|
|
264
|
+
borderRadius: "8px",
|
|
265
|
+
padding: "24px",
|
|
266
|
+
maxWidth: "400px",
|
|
267
|
+
width: "100%",
|
|
268
|
+
boxShadow: "0 20px 25px -5px rgba(0, 0, 0, 0.1)"
|
|
269
|
+
},
|
|
270
|
+
onClick: function onClick(e) {
|
|
271
|
+
return e.stopPropagation();
|
|
272
|
+
}
|
|
273
|
+
}, /* @__PURE__ */React.createElement("h3", {
|
|
274
|
+
style: {
|
|
275
|
+
margin: "0 0 8px 0",
|
|
276
|
+
fontSize: "18px",
|
|
277
|
+
fontWeight: 600
|
|
278
|
+
}
|
|
279
|
+
}, confirm.title), /* @__PURE__ */React.createElement("p", {
|
|
280
|
+
style: {
|
|
281
|
+
margin: "0 0 24px 0",
|
|
282
|
+
color: "#6b7280"
|
|
283
|
+
}
|
|
284
|
+
}, confirm.message), /* @__PURE__ */React.createElement("div", {
|
|
285
|
+
style: {
|
|
286
|
+
display: "flex",
|
|
287
|
+
gap: "12px",
|
|
288
|
+
justifyContent: "flex-end"
|
|
289
|
+
}
|
|
290
|
+
}, /* @__PURE__ */React.createElement("button", {
|
|
291
|
+
onClick: onCancel,
|
|
292
|
+
style: {
|
|
293
|
+
padding: "8px 16px",
|
|
294
|
+
borderRadius: "6px",
|
|
295
|
+
border: "1px solid #d1d5db",
|
|
296
|
+
backgroundColor: "white",
|
|
297
|
+
cursor: "pointer"
|
|
298
|
+
}
|
|
299
|
+
}, (_confirm$cancelLabel = confirm.cancelLabel) !== null && _confirm$cancelLabel !== void 0 ? _confirm$cancelLabel : "Cancel"), /* @__PURE__ */React.createElement("button", {
|
|
300
|
+
onClick: onConfirm,
|
|
301
|
+
style: {
|
|
302
|
+
padding: "8px 16px",
|
|
303
|
+
borderRadius: "6px",
|
|
304
|
+
border: "none",
|
|
305
|
+
backgroundColor: isDanger ? "#dc2626" : "#3b82f6",
|
|
306
|
+
color: "white",
|
|
307
|
+
cursor: "pointer"
|
|
308
|
+
}
|
|
309
|
+
}, (_confirm$confirmLabel = confirm.confirmLabel) !== null && _confirm$confirmLabel !== void 0 ? _confirm$confirmLabel : "Confirm"))));
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
export { ActionProvider, ConfirmDialog, useAction, useActions };
|
|
313
|
+
//# sourceMappingURL=actions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"actions.js","sources":["../../../../../../pro-components/chat/chat-engine/components/json-render/contexts/actions.tsx"],"sourcesContent":["\"use client\";\n\nimport React, {\n createContext,\n useContext,\n useState,\n useCallback,\n useMemo,\n useRef,\n type ReactNode,\n} from \"react\";\nimport {\n resolveAction,\n executeAction,\n type Action,\n type ActionHandler,\n type ActionConfirm,\n type ResolvedAction,\n} from \"@json-render/core\";\nimport { useDataStore, type DataStore } from \"./data\";\nimport { useStableCallback } from \"./store\";\n\n/**\n * Pending confirmation state\n */\nexport interface PendingConfirmation {\n /** The resolved action */\n action: ResolvedAction;\n /** The action handler */\n handler: ActionHandler;\n /** Resolve callback */\n resolve: () => void;\n /** Reject callback */\n reject: () => void;\n}\n\n/**\n * Action context value\n */\nexport interface ActionContextValue {\n /** Registered action handlers */\n handlers: Record<string, ActionHandler>;\n /** Currently loading action names */\n loadingActions: Set<string>;\n /** Pending confirmation dialog */\n pendingConfirmation: PendingConfirmation | null;\n /** Execute an action */\n execute: (action: Action) => Promise<void>;\n /** Confirm the pending action */\n confirm: () => void;\n /** Cancel the pending action */\n cancel: () => void;\n /** Register an action handler */\n registerHandler: (name: string, handler: ActionHandler) => void;\n}\n\nconst ActionContext = createContext<ActionContextValue | null>(null);\n\n/**\n * Props for ActionProvider\n */\nexport interface ActionProviderProps {\n /** Initial action handlers */\n handlers?: Record<string, ActionHandler>;\n /** Navigation function */\n navigate?: (path: string) => void;\n children: ReactNode;\n}\n\n/**\n * Provider for action execution\n * \n * 性能优化:\n * - execute 函数使用 DataStore 延迟读取 data,避免 data 变化导致函数重建\n * - handlers 和 navigate 通过 ref 访问,保持 execute 引用稳定\n * - Context value 只在必要时更新\n */\nexport function ActionProvider({\n handlers: initialHandlers = {},\n navigate,\n children,\n}: ActionProviderProps) {\n // 获取 DataStore 实例,不订阅状态变化\n const dataStore = useDataStore();\n \n const [handlers, setHandlers] =\n useState<Record<string, ActionHandler>>(initialHandlers);\n const [loadingActions, setLoadingActions] = useState<Set<string>>(new Set());\n const [pendingConfirmation, setPendingConfirmation] =\n useState<PendingConfirmation | null>(null);\n\n // 使用 ref 存储依赖,保持 execute 函数引用稳定\n const storeRef = useRef<DataStore>(dataStore);\n storeRef.current = dataStore;\n \n const handlersRef = useRef(handlers);\n handlersRef.current = handlers;\n \n const navigateRef = useRef(navigate);\n navigateRef.current = navigate;\n\n const registerHandler = useCallback(\n (name: string, handler: ActionHandler) => {\n setHandlers((prev) => ({ ...prev, [name]: handler }));\n },\n [],\n );\n\n // executeRef 用于递归调用\n const executeRef = useRef<(action: Action) => Promise<void>>();\n\n // execute 函数引用稳定,通过 ref 访问最新依赖\n const execute = useStableCallback(async (action: Action) => {\n const store = storeRef.current;\n const data = store.getData();\n const setData = (path: string, value: unknown) => store.setByPath(path, value);\n const currentHandlers = handlersRef.current;\n const currentNavigate = navigateRef.current;\n\n const resolved = resolveAction(action, data);\n const handler = currentHandlers[resolved.name];\n\n if (!handler) {\n console.warn(`No handler registered for action: ${resolved.name}`);\n return;\n }\n\n // If confirmation is required, show dialog\n if (resolved.confirm) {\n return new Promise<void>((resolve, reject) => {\n setPendingConfirmation({\n action: resolved,\n handler,\n resolve: () => {\n setPendingConfirmation(null);\n resolve();\n },\n reject: () => {\n setPendingConfirmation(null);\n reject(new Error(\"Action cancelled\"));\n },\n });\n }).then(async () => {\n setLoadingActions((prev) => new Set(prev).add(resolved.name));\n try {\n await executeAction({\n action: resolved,\n handler,\n setData,\n navigate: currentNavigate,\n executeAction: async (name) => {\n const subAction: Action = { name };\n await executeRef.current?.(subAction);\n },\n });\n } finally {\n setLoadingActions((prev) => {\n const next = new Set(prev);\n next.delete(resolved.name);\n return next;\n });\n }\n });\n }\n\n // Execute immediately\n setLoadingActions((prev) => new Set(prev).add(resolved.name));\n try {\n await executeAction({\n action: resolved,\n handler,\n setData,\n navigate: currentNavigate,\n executeAction: async (name) => {\n const subAction: Action = { name };\n await executeRef.current?.(subAction);\n },\n });\n } finally {\n setLoadingActions((prev) => {\n const next = new Set(prev);\n next.delete(resolved.name);\n return next;\n });\n }\n });\n\n executeRef.current = execute;\n\n const confirm = useCallback(() => {\n pendingConfirmation?.resolve();\n }, [pendingConfirmation]);\n\n const cancel = useCallback(() => {\n pendingConfirmation?.reject();\n }, [pendingConfirmation]);\n\n const value = useMemo<ActionContextValue>(\n () => ({\n handlers,\n loadingActions,\n pendingConfirmation,\n execute,\n confirm,\n cancel,\n registerHandler,\n }),\n [\n handlers,\n loadingActions,\n pendingConfirmation,\n execute,\n confirm,\n cancel,\n registerHandler,\n ],\n );\n\n return (\n <ActionContext.Provider value={value}>{children}</ActionContext.Provider>\n );\n}\n\n/**\n * Hook to access action context\n */\nexport function useActions(): ActionContextValue {\n const ctx = useContext(ActionContext);\n if (!ctx) {\n throw new Error(\"useActions must be used within an ActionProvider\");\n }\n return ctx;\n}\n\n/**\n * Hook to execute an action\n */\nexport function useAction(action: Action): {\n execute: () => Promise<void>;\n isLoading: boolean;\n} {\n const { execute, loadingActions } = useActions();\n const isLoading = loadingActions.has(action.name);\n\n const executeAction = useCallback(() => execute(action), [execute, action]);\n\n return { execute: executeAction, isLoading };\n}\n\n/**\n * Props for ConfirmDialog component\n */\nexport interface ConfirmDialogProps {\n /** The confirmation config */\n confirm: ActionConfirm;\n /** Called when confirmed */\n onConfirm: () => void;\n /** Called when cancelled */\n onCancel: () => void;\n}\n\n/**\n * Default confirmation dialog component\n */\nexport function ConfirmDialog({\n confirm,\n onConfirm,\n onCancel,\n}: ConfirmDialogProps) {\n const isDanger = confirm.variant === \"danger\";\n\n return (\n <div\n style={{\n position: \"fixed\",\n inset: 0,\n backgroundColor: \"rgba(0, 0, 0, 0.5)\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n zIndex: 50,\n }}\n onClick={onCancel}\n >\n <div\n style={{\n backgroundColor: \"white\",\n borderRadius: \"8px\",\n padding: \"24px\",\n maxWidth: \"400px\",\n width: \"100%\",\n boxShadow: \"0 20px 25px -5px rgba(0, 0, 0, 0.1)\",\n }}\n onClick={(e) => e.stopPropagation()}\n >\n <h3\n style={{\n margin: \"0 0 8px 0\",\n fontSize: \"18px\",\n fontWeight: 600,\n }}\n >\n {confirm.title}\n </h3>\n <p\n style={{\n margin: \"0 0 24px 0\",\n color: \"#6b7280\",\n }}\n >\n {confirm.message}\n </p>\n <div\n style={{\n display: \"flex\",\n gap: \"12px\",\n justifyContent: \"flex-end\",\n }}\n >\n <button\n onClick={onCancel}\n style={{\n padding: \"8px 16px\",\n borderRadius: \"6px\",\n border: \"1px solid #d1d5db\",\n backgroundColor: \"white\",\n cursor: \"pointer\",\n }}\n >\n {confirm.cancelLabel ?? \"Cancel\"}\n </button>\n <button\n onClick={onConfirm}\n style={{\n padding: \"8px 16px\",\n borderRadius: \"6px\",\n border: \"none\",\n backgroundColor: isDanger ? \"#dc2626\" : \"#3b82f6\",\n color: \"white\",\n cursor: \"pointer\",\n }}\n >\n {confirm.confirmLabel ?? \"Confirm\"}\n </button>\n </div>\n </div>\n </div>\n );\n}\n"],"names":["ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","ActionContext","createContext","ActionProvider","_ref","_ref$handlers","handlers","initialHandlers","navigate","children","dataStore","useDataStore","_useState","useState","_useState2","_slicedToArray","setHandlers","_useState3","Set","_useState4","loadingActions","setLoadingActions","_useState5","_useState6","pendingConfirmation","setPendingConfirmation","storeRef","useRef","current","handlersRef","navigateRef","registerHandler","useCallback","name","handler","prev","executeRef","execute","useStableCallback","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee4","action","store","data","setData","currentHandlers","currentNavigate","resolved","wrap","_context4","next","getData","path","value","setByPath","resolveAction","console","warn","concat","abrupt","confirm","Promise","resolve","reject","Error","then","_callee2","_context2","add","executeAction","_executeAction","_callee","_executeRef$current","subAction","_context","call","stop","_x2","finish","_executeAction2","_callee3","_executeRef$current2","_context3","_x3","_x","cancel","useMemo","React","createElement","Provider","useActions","ctx","useContext","useAction","_useActions","isLoading","has","ConfirmDialog","_ref4","_confirm$cancelLabel","_confirm$confirmLabel","onConfirm","onCancel","isDanger","variant","style","position","inset","backgroundColor","display","alignItems","justifyContent","zIndex","onClick","borderRadius","padding","maxWidth","width","boxShadow","stopPropagation","margin","fontSize","fontWeight","title","color","message","gap","border","cursor","cancelLabel","confirmLabel"],"mappings":"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"}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
import { type DataModel, type AuthState } from "@json-render/core";
|
|
3
|
+
import { Store } from "./store";
|
|
4
|
+
/**
|
|
5
|
+
* DataStore 状态类型
|
|
6
|
+
*/
|
|
7
|
+
export interface DataStoreState {
|
|
8
|
+
/** 数据模型 */
|
|
9
|
+
data: DataModel;
|
|
10
|
+
/** 认证状态 */
|
|
11
|
+
authState?: AuthState;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* DataStore - 管理表单/组件的数据状态
|
|
15
|
+
*
|
|
16
|
+
* 性能优化:
|
|
17
|
+
* - 使用外部 Store 模式,避免 Context 传递整个 data 导致级联重渲染
|
|
18
|
+
* - 支持细粒度订阅:组件只订阅自己需要的路径
|
|
19
|
+
* - 配合 Structural Sharing,通过引用比较判断变化
|
|
20
|
+
*/
|
|
21
|
+
export declare class DataStore extends Store<DataStoreState> {
|
|
22
|
+
private onDataChange?;
|
|
23
|
+
constructor(initialData?: DataModel, authState?: AuthState, onDataChange?: (path: string, value: unknown) => void);
|
|
24
|
+
/**
|
|
25
|
+
* 获取数据模型
|
|
26
|
+
*/
|
|
27
|
+
getData(): DataModel;
|
|
28
|
+
/**
|
|
29
|
+
* 获取认证状态
|
|
30
|
+
*/
|
|
31
|
+
getAuthState(): AuthState | undefined;
|
|
32
|
+
/**
|
|
33
|
+
* 通过路径获取值
|
|
34
|
+
*/
|
|
35
|
+
getByPath(path: string): unknown;
|
|
36
|
+
/**
|
|
37
|
+
* 通过路径设置值(使用 immer 实现 Structural Sharing)
|
|
38
|
+
*/
|
|
39
|
+
setByPath(path: string, value: unknown): void;
|
|
40
|
+
/**
|
|
41
|
+
* 批量更新多个路径
|
|
42
|
+
*/
|
|
43
|
+
updatePaths(updates: Record<string, unknown>): void;
|
|
44
|
+
/**
|
|
45
|
+
* 合并新数据到现有数据
|
|
46
|
+
*/
|
|
47
|
+
mergeData(newData: DataModel): void;
|
|
48
|
+
/**
|
|
49
|
+
* 更新认证状态
|
|
50
|
+
*/
|
|
51
|
+
setAuthState(authState: AuthState | undefined): void;
|
|
52
|
+
/**
|
|
53
|
+
* 设置 onDataChange 回调
|
|
54
|
+
*/
|
|
55
|
+
setOnDataChange(callback: ((path: string, value: unknown) => void) | undefined): void;
|
|
56
|
+
}
|
|
57
|
+
declare const useDataStore: () => DataStore, useDataSelector: <R>(selector: (state: DataStoreState) => R) => R, useDataStoreState: () => DataStoreState;
|
|
58
|
+
export { useDataStore, useDataSelector, useDataStoreState };
|
|
59
|
+
/**
|
|
60
|
+
* Data context value(兼容旧 API)
|
|
61
|
+
*/
|
|
62
|
+
export interface DataContextValue {
|
|
63
|
+
/** The current data model */
|
|
64
|
+
data: DataModel;
|
|
65
|
+
/** Auth state for visibility evaluation */
|
|
66
|
+
authState?: AuthState;
|
|
67
|
+
/** Get a value by path */
|
|
68
|
+
get: (path: string) => unknown;
|
|
69
|
+
/** Set a value by path */
|
|
70
|
+
set: (path: string, value: unknown) => void;
|
|
71
|
+
/** Update multiple values at once */
|
|
72
|
+
update: (updates: Record<string, unknown>) => void;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Props for DataProvider
|
|
76
|
+
*/
|
|
77
|
+
export interface DataProviderProps {
|
|
78
|
+
/** Initial data model */
|
|
79
|
+
initialData?: DataModel;
|
|
80
|
+
/** Auth state */
|
|
81
|
+
authState?: AuthState;
|
|
82
|
+
/** Callback when data changes */
|
|
83
|
+
onDataChange?: (path: string, value: unknown) => void;
|
|
84
|
+
children: ReactNode;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Provider for data model context
|
|
88
|
+
*
|
|
89
|
+
* 性能优化:
|
|
90
|
+
* - 内部使用 DataStore,支持细粒度订阅
|
|
91
|
+
* - 提供兼容旧 API 的 useData() hook
|
|
92
|
+
* - 推荐使用 useDataValue() 进行细粒度订阅
|
|
93
|
+
*/
|
|
94
|
+
export declare function DataProvider({ initialData, authState, onDataChange, children, }: DataProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
95
|
+
/**
|
|
96
|
+
* 获取指定路径的值(细粒度订阅)
|
|
97
|
+
*
|
|
98
|
+
* 性能优化:只有指定路径的值变化时才重渲染
|
|
99
|
+
*
|
|
100
|
+
* @example
|
|
101
|
+
* const name = useDataValue<string>('/userInfo/name');
|
|
102
|
+
*/
|
|
103
|
+
export declare function useDataValue<T>(path?: string): T | undefined;
|
|
104
|
+
/**
|
|
105
|
+
* 数据绑定 hook(类似 useState 的 API)
|
|
106
|
+
*
|
|
107
|
+
* 返回 [value, setValue] 元组,value 支持细粒度订阅,setValue 引用稳定
|
|
108
|
+
*
|
|
109
|
+
* @example
|
|
110
|
+
* const [name, setName] = useDataBinding<string>('/userInfo/name');
|
|
111
|
+
*/
|
|
112
|
+
export declare function useDataBinding<T>(path?: string): [T | undefined, (value: T) => void];
|
|
113
|
+
/**
|
|
114
|
+
* 批量更新多个路径
|
|
115
|
+
*
|
|
116
|
+
* @example
|
|
117
|
+
* const updatePaths = useDataUpdate();
|
|
118
|
+
* updatePaths({ '/name': 'Alice', '/age': 30 });
|
|
119
|
+
*/
|
|
120
|
+
export declare function useDataUpdate(): (updates: Record<string, unknown>) => void;
|
|
121
|
+
/**
|
|
122
|
+
* 获取整个 data 和 authState(订阅所有变化)
|
|
123
|
+
*
|
|
124
|
+
* ⚠️ 警告:此 hook 会订阅整个 data 对象,任何数据变化都会触发重渲染
|
|
125
|
+
* 仅在以下场景使用:
|
|
126
|
+
* - 需要遍历整个 data 对象
|
|
127
|
+
* - 需要同时访问 data 和 authState
|
|
128
|
+
* - ValidationProvider 等基础设施层
|
|
129
|
+
*
|
|
130
|
+
* 普通组件请使用:
|
|
131
|
+
* - useDataValue() - 细粒度订阅
|
|
132
|
+
* - useDataBinding() - 双向绑定
|
|
133
|
+
*/
|
|
134
|
+
export declare function useDataState(): {
|
|
135
|
+
data: DataModel;
|
|
136
|
+
authState?: AuthState;
|
|
137
|
+
};
|