@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,448 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* tdesign v1.1.0-alpha.5
|
|
3
|
+
* (c) 2026 tdesign
|
|
4
|
+
* @license MIT
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { J as JsonRenderActivityRenderer, r as reactFastCompare } from './dep-1007ac80.js';
|
|
8
|
+
import { A2UIJsonRenderActivityRenderer } from '../chat-engine/components/json-render/renderer/A2UIJsonRenderActivityRenderer.js';
|
|
9
|
+
import '../chat-engine/components/json-render/renderer/index.js';
|
|
10
|
+
import '../chat-engine/components/json-render/contexts/index.js';
|
|
11
|
+
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
12
|
+
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
13
|
+
import React, { useRef, useMemo, useCallback, memo } from 'react';
|
|
14
|
+
import { JsonRenderButton } from '../chat-engine/components/json-render/catalog/atomic/button.js';
|
|
15
|
+
import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
|
|
16
|
+
import { Input, Space, Button } from 'tdesign-react';
|
|
17
|
+
import '../chat-engine/components/json-render/catalog/catalog-to-prompt.js';
|
|
18
|
+
import _typeof from '@babel/runtime/helpers/typeof';
|
|
19
|
+
import { getByPath } from '@json-render/core';
|
|
20
|
+
import { useData } from '../chat-engine/components/json-render/contexts/data.js';
|
|
21
|
+
import { JsonRenderCard } from '../chat-engine/components/json-render/catalog/atomic/card.js';
|
|
22
|
+
import { JsonRenderText } from '../chat-engine/components/json-render/catalog/atomic/text.js';
|
|
23
|
+
import { JsonRenderRow, JsonRenderCol, JsonRenderSpace, JsonRenderColumn, JsonRenderDivider } from '../chat-engine/components/json-render/catalog/atomic/layout.js';
|
|
24
|
+
import '../chat-engine/components/json-render/contexts/visibility.js';
|
|
25
|
+
import '../chat-engine/components/json-render/contexts/actions.js';
|
|
26
|
+
import '../chat-engine/components/json-render/contexts/validation.js';
|
|
27
|
+
|
|
28
|
+
var _excluded$2 = ["value", "defaultValue", "placeholder", "disabled", "readonly", "size", "type", "maxlength", "clearable", "status", "onChange", "onBlur", "onFocus", "onEnter", "onClear"],
|
|
29
|
+
_excluded2$1 = ["label", "valuePath", "placeholder", "type", "disabled", "size"];
|
|
30
|
+
function ownKeys$4(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; }
|
|
31
|
+
function _objectSpread$4(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$4(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$4(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
32
|
+
var JsonRenderInput = function JsonRenderInput(_ref) {
|
|
33
|
+
var element = _ref.element;
|
|
34
|
+
var _element$props = element.props,
|
|
35
|
+
value = _element$props.value,
|
|
36
|
+
defaultValue = _element$props.defaultValue,
|
|
37
|
+
placeholder = _element$props.placeholder,
|
|
38
|
+
_element$props$disabl = _element$props.disabled,
|
|
39
|
+
disabled = _element$props$disabl === void 0 ? false : _element$props$disabl,
|
|
40
|
+
_element$props$readon = _element$props.readonly,
|
|
41
|
+
readonly = _element$props$readon === void 0 ? false : _element$props$readon,
|
|
42
|
+
_element$props$size = _element$props.size,
|
|
43
|
+
size = _element$props$size === void 0 ? "medium" : _element$props$size,
|
|
44
|
+
_element$props$type = _element$props.type,
|
|
45
|
+
type = _element$props$type === void 0 ? "text" : _element$props$type,
|
|
46
|
+
maxlength = _element$props.maxlength,
|
|
47
|
+
_element$props$cleara = _element$props.clearable,
|
|
48
|
+
clearable = _element$props$cleara === void 0 ? false : _element$props$cleara,
|
|
49
|
+
status = _element$props.status,
|
|
50
|
+
onChange = _element$props.onChange,
|
|
51
|
+
onBlur = _element$props.onBlur,
|
|
52
|
+
onFocus = _element$props.onFocus,
|
|
53
|
+
onEnter = _element$props.onEnter,
|
|
54
|
+
onClear = _element$props.onClear,
|
|
55
|
+
restProps = _objectWithoutProperties(_element$props, _excluded$2);
|
|
56
|
+
return /* @__PURE__ */React.createElement(Input, _objectSpread$4({
|
|
57
|
+
value: value,
|
|
58
|
+
defaultValue: defaultValue,
|
|
59
|
+
placeholder: placeholder,
|
|
60
|
+
disabled: disabled,
|
|
61
|
+
readonly: readonly,
|
|
62
|
+
size: size,
|
|
63
|
+
type: type,
|
|
64
|
+
maxlength: maxlength,
|
|
65
|
+
clearable: clearable,
|
|
66
|
+
status: status,
|
|
67
|
+
onChange: onChange,
|
|
68
|
+
onBlur: onBlur,
|
|
69
|
+
onFocus: onFocus,
|
|
70
|
+
onEnter: onEnter,
|
|
71
|
+
onClear: onClear
|
|
72
|
+
}, restProps));
|
|
73
|
+
};
|
|
74
|
+
JsonRenderInput.displayName = "JsonRenderInput";
|
|
75
|
+
var JsonRenderTextField = function JsonRenderTextField(_ref2) {
|
|
76
|
+
var _getByPath;
|
|
77
|
+
var element = _ref2.element;
|
|
78
|
+
var _element$props2 = element.props,
|
|
79
|
+
label = _element$props2.label,
|
|
80
|
+
valuePath = _element$props2.valuePath,
|
|
81
|
+
placeholder = _element$props2.placeholder,
|
|
82
|
+
_element$props2$type = _element$props2.type,
|
|
83
|
+
type = _element$props2$type === void 0 ? "text" : _element$props2$type,
|
|
84
|
+
_element$props2$disab = _element$props2.disabled,
|
|
85
|
+
disabled = _element$props2$disab === void 0 ? false : _element$props2$disab,
|
|
86
|
+
_element$props2$size = _element$props2.size,
|
|
87
|
+
size = _element$props2$size === void 0 ? "medium" : _element$props2$size,
|
|
88
|
+
restProps = _objectWithoutProperties(_element$props2, _excluded2$1);
|
|
89
|
+
var _useData = useData(),
|
|
90
|
+
data = _useData.data,
|
|
91
|
+
set = _useData.set;
|
|
92
|
+
var value = valuePath ? (_getByPath = getByPath(data, valuePath)) !== null && _getByPath !== void 0 ? _getByPath : "" : "";
|
|
93
|
+
var handleChange = function handleChange(newValue) {
|
|
94
|
+
if (valuePath) {
|
|
95
|
+
set(valuePath, newValue);
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
if (label) {
|
|
99
|
+
return /* @__PURE__ */React.createElement(Space, {
|
|
100
|
+
direction: "vertical",
|
|
101
|
+
size: 4,
|
|
102
|
+
style: {
|
|
103
|
+
width: "100%"
|
|
104
|
+
}
|
|
105
|
+
}, /* @__PURE__ */React.createElement("label", {
|
|
106
|
+
style: {
|
|
107
|
+
fontSize: "14px",
|
|
108
|
+
fontWeight: 500
|
|
109
|
+
}
|
|
110
|
+
}, label), /* @__PURE__ */React.createElement(Input, _objectSpread$4({
|
|
111
|
+
value: value,
|
|
112
|
+
placeholder: placeholder,
|
|
113
|
+
type: type,
|
|
114
|
+
disabled: disabled,
|
|
115
|
+
size: size,
|
|
116
|
+
onChange: handleChange
|
|
117
|
+
}, restProps)));
|
|
118
|
+
}
|
|
119
|
+
return /* @__PURE__ */React.createElement(Input, _objectSpread$4({
|
|
120
|
+
value: value,
|
|
121
|
+
placeholder: placeholder,
|
|
122
|
+
type: type,
|
|
123
|
+
disabled: disabled,
|
|
124
|
+
size: size,
|
|
125
|
+
onChange: handleChange
|
|
126
|
+
}, restProps));
|
|
127
|
+
};
|
|
128
|
+
JsonRenderTextField.displayName = "JsonRenderTextField";
|
|
129
|
+
|
|
130
|
+
var _excluded$1 = ["valuePath", "disabledPath", "action", "disabled"];
|
|
131
|
+
function ownKeys$3(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; }
|
|
132
|
+
function _objectSpread$3(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$3(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$3(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
133
|
+
function resolveActionParams(params, data) {
|
|
134
|
+
var maxDepth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 10;
|
|
135
|
+
var resolved = {};
|
|
136
|
+
var stack = [{
|
|
137
|
+
source: params,
|
|
138
|
+
target: resolved,
|
|
139
|
+
depth: 0
|
|
140
|
+
}];
|
|
141
|
+
while (stack.length > 0) {
|
|
142
|
+
var _stack$pop = stack.pop(),
|
|
143
|
+
source = _stack$pop.source,
|
|
144
|
+
target = _stack$pop.target,
|
|
145
|
+
depth = _stack$pop.depth;
|
|
146
|
+
if (depth >= maxDepth) {
|
|
147
|
+
Object.assign(target, source);
|
|
148
|
+
continue;
|
|
149
|
+
}
|
|
150
|
+
for (var _i = 0, _Object$entries = Object.entries(source); _i < _Object$entries.length; _i++) {
|
|
151
|
+
var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),
|
|
152
|
+
key = _Object$entries$_i[0],
|
|
153
|
+
value = _Object$entries$_i[1];
|
|
154
|
+
if (value && _typeof(value) === "object" && "path" in value) {
|
|
155
|
+
var pathValue = value.path;
|
|
156
|
+
target[key] = getByPath(data, pathValue);
|
|
157
|
+
} else if (value && _typeof(value) === "object" && !Array.isArray(value)) {
|
|
158
|
+
var nestedTarget = {};
|
|
159
|
+
target[key] = nestedTarget;
|
|
160
|
+
stack.push({
|
|
161
|
+
source: value,
|
|
162
|
+
target: nestedTarget,
|
|
163
|
+
depth: depth + 1
|
|
164
|
+
});
|
|
165
|
+
} else {
|
|
166
|
+
target[key] = value;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
return resolved;
|
|
171
|
+
}
|
|
172
|
+
function A2UIBoundInner(_ref) {
|
|
173
|
+
var element = _ref.element,
|
|
174
|
+
children = _ref.children,
|
|
175
|
+
onAction = _ref.onAction,
|
|
176
|
+
WrappedComponent = _ref.WrappedComponent,
|
|
177
|
+
valueField = _ref.valueField,
|
|
178
|
+
onChangeField = _ref.onChangeField,
|
|
179
|
+
supportsAction = _ref.supportsAction,
|
|
180
|
+
actionTrigger = _ref.actionTrigger;
|
|
181
|
+
var _useData = useData(),
|
|
182
|
+
data = _useData.data,
|
|
183
|
+
set = _useData.set;
|
|
184
|
+
var _element$props = element.props,
|
|
185
|
+
valuePath = _element$props.valuePath,
|
|
186
|
+
disabledPath = _element$props.disabledPath,
|
|
187
|
+
action = _element$props.action,
|
|
188
|
+
staticDisabled = _element$props.disabled,
|
|
189
|
+
componentProps = _objectWithoutProperties(_element$props, _excluded$1);
|
|
190
|
+
var dataRef = useRef(data);
|
|
191
|
+
dataRef.current = data;
|
|
192
|
+
var boundValue = useMemo(function () {
|
|
193
|
+
if (valuePath) {
|
|
194
|
+
var _getByPath;
|
|
195
|
+
return (_getByPath = getByPath(data, valuePath)) !== null && _getByPath !== void 0 ? _getByPath : "";
|
|
196
|
+
}
|
|
197
|
+
return void 0;
|
|
198
|
+
}, [valuePath, valuePath ? getByPath(data, valuePath) : void 0]);
|
|
199
|
+
var boundDisabled = useMemo(function () {
|
|
200
|
+
if (disabledPath) {
|
|
201
|
+
return Boolean(getByPath(data, disabledPath));
|
|
202
|
+
}
|
|
203
|
+
return staticDisabled !== null && staticDisabled !== void 0 ? staticDisabled : false;
|
|
204
|
+
}, [disabledPath, disabledPath ? getByPath(data, disabledPath) : void 0, staticDisabled]);
|
|
205
|
+
var setRef = useRef(set);
|
|
206
|
+
setRef.current = set;
|
|
207
|
+
var handleChange = useCallback(function (newValue) {
|
|
208
|
+
if (valuePath) {
|
|
209
|
+
setRef.current(valuePath, newValue);
|
|
210
|
+
}
|
|
211
|
+
}, [valuePath]);
|
|
212
|
+
var handleAction = useCallback(function () {
|
|
213
|
+
if (!action || !onAction) return;
|
|
214
|
+
var actionObj = typeof action === "string" ? {
|
|
215
|
+
name: action,
|
|
216
|
+
params: {}
|
|
217
|
+
} : action;
|
|
218
|
+
var resolvedParams = actionObj.params ? resolveActionParams(actionObj.params, dataRef.current) : {};
|
|
219
|
+
var resolvedAction = {
|
|
220
|
+
name: actionObj.name,
|
|
221
|
+
params: resolvedParams
|
|
222
|
+
};
|
|
223
|
+
onAction(resolvedAction);
|
|
224
|
+
}, [action, onAction]);
|
|
225
|
+
var finalProps = useMemo(function () {
|
|
226
|
+
var props = _objectSpread$3(_objectSpread$3({}, componentProps), {}, {
|
|
227
|
+
disabled: boundDisabled
|
|
228
|
+
});
|
|
229
|
+
if (valuePath !== void 0) {
|
|
230
|
+
props[valueField] = boundValue;
|
|
231
|
+
props[onChangeField] = handleChange;
|
|
232
|
+
}
|
|
233
|
+
if (supportsAction && action) {
|
|
234
|
+
var originalHandler = componentProps[actionTrigger];
|
|
235
|
+
props[actionTrigger] = function () {
|
|
236
|
+
if (typeof originalHandler === "function") {
|
|
237
|
+
originalHandler.apply(void 0, arguments);
|
|
238
|
+
}
|
|
239
|
+
handleAction.apply(void 0, arguments);
|
|
240
|
+
};
|
|
241
|
+
}
|
|
242
|
+
return props;
|
|
243
|
+
}, [componentProps, boundDisabled, valuePath, valueField, boundValue, onChangeField, handleChange, supportsAction, action, actionTrigger, handleAction]);
|
|
244
|
+
return /* @__PURE__ */React.createElement(WrappedComponent, _objectSpread$3({}, finalProps), children);
|
|
245
|
+
}
|
|
246
|
+
function withA2UIBinding(WrappedComponent) {
|
|
247
|
+
var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
248
|
+
var _config$valueField = config.valueField,
|
|
249
|
+
valueField = _config$valueField === void 0 ? "value" : _config$valueField,
|
|
250
|
+
_config$onChangeField = config.onChangeField,
|
|
251
|
+
onChangeField = _config$onChangeField === void 0 ? "onChange" : _config$onChangeField,
|
|
252
|
+
_config$supportsActio = config.supportsAction,
|
|
253
|
+
supportsAction = _config$supportsActio === void 0 ? false : _config$supportsActio,
|
|
254
|
+
_config$actionTrigger = config.actionTrigger,
|
|
255
|
+
actionTrigger = _config$actionTrigger === void 0 ? "onClick" : _config$actionTrigger;
|
|
256
|
+
var A2UIBoundComponent = function A2UIBoundComponent(props) {
|
|
257
|
+
return /* @__PURE__ */React.createElement(A2UIBoundInner, _objectSpread$3(_objectSpread$3({}, props), {}, {
|
|
258
|
+
WrappedComponent: WrappedComponent,
|
|
259
|
+
valueField: valueField,
|
|
260
|
+
onChangeField: onChangeField,
|
|
261
|
+
supportsAction: supportsAction,
|
|
262
|
+
actionTrigger: actionTrigger
|
|
263
|
+
}));
|
|
264
|
+
};
|
|
265
|
+
A2UIBoundComponent.displayName = "withA2UIBinding(".concat(WrappedComponent.displayName || WrappedComponent.name || "Component", ")");
|
|
266
|
+
return /*#__PURE__*/memo(A2UIBoundComponent, function (prevProps, nextProps) {
|
|
267
|
+
if (prevProps.element === nextProps.element) return true;
|
|
268
|
+
var prevEl = prevProps.element;
|
|
269
|
+
var nextEl = nextProps.element;
|
|
270
|
+
if (prevEl.type !== nextEl.type) return false;
|
|
271
|
+
if (prevEl.key !== nextEl.key) return false;
|
|
272
|
+
var prevElProps = prevEl.props || {};
|
|
273
|
+
var nextElProps = nextEl.props || {};
|
|
274
|
+
var prevKeys = Object.keys(prevElProps);
|
|
275
|
+
var nextKeys = Object.keys(nextElProps);
|
|
276
|
+
if (prevKeys.length !== nextKeys.length) return false;
|
|
277
|
+
for (var _i2 = 0, _prevKeys = prevKeys; _i2 < _prevKeys.length; _i2++) {
|
|
278
|
+
var key = _prevKeys[_i2];
|
|
279
|
+
if (prevElProps[key] !== nextElProps[key]) return false;
|
|
280
|
+
}
|
|
281
|
+
return true;
|
|
282
|
+
});
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
var _excluded = ["label"],
|
|
286
|
+
_excluded2 = ["label", "children"];
|
|
287
|
+
function ownKeys$2(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; }
|
|
288
|
+
function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$2(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$2(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
289
|
+
var BaseInput = function BaseInput(_ref) {
|
|
290
|
+
var label = _ref.label,
|
|
291
|
+
props = _objectWithoutProperties(_ref, _excluded);
|
|
292
|
+
if (label) {
|
|
293
|
+
return /* @__PURE__ */React.createElement(Space, {
|
|
294
|
+
direction: "vertical",
|
|
295
|
+
size: 4,
|
|
296
|
+
style: {
|
|
297
|
+
width: "100%"
|
|
298
|
+
}
|
|
299
|
+
}, /* @__PURE__ */React.createElement("label", {
|
|
300
|
+
style: {
|
|
301
|
+
fontSize: "14px",
|
|
302
|
+
fontWeight: 500
|
|
303
|
+
}
|
|
304
|
+
}, label), /* @__PURE__ */React.createElement(Input, _objectSpread$2({}, props)));
|
|
305
|
+
}
|
|
306
|
+
return /* @__PURE__ */React.createElement(Input, _objectSpread$2({}, props));
|
|
307
|
+
};
|
|
308
|
+
BaseInput.displayName = "BaseInput";
|
|
309
|
+
var BaseButton = function BaseButton(_ref2) {
|
|
310
|
+
var label = _ref2.label,
|
|
311
|
+
children = _ref2.children,
|
|
312
|
+
props = _objectWithoutProperties(_ref2, _excluded2);
|
|
313
|
+
var content = label || children;
|
|
314
|
+
return /* @__PURE__ */React.createElement(Button, _objectSpread$2({}, props), content);
|
|
315
|
+
};
|
|
316
|
+
BaseButton.displayName = "BaseButton";
|
|
317
|
+
var A2UITextField = withA2UIBinding(BaseInput, {
|
|
318
|
+
valueField: "value",
|
|
319
|
+
onChangeField: "onChange",
|
|
320
|
+
supportsAction: false
|
|
321
|
+
});
|
|
322
|
+
var A2UIButton = withA2UIBinding(BaseButton, {
|
|
323
|
+
supportsAction: true
|
|
324
|
+
});
|
|
325
|
+
var a2uiRegistry = {
|
|
326
|
+
TextField: A2UITextField,
|
|
327
|
+
Button: A2UIButton,
|
|
328
|
+
Card: JsonRenderCard,
|
|
329
|
+
Text: JsonRenderText,
|
|
330
|
+
Row: JsonRenderRow,
|
|
331
|
+
Col: JsonRenderCol,
|
|
332
|
+
Space: JsonRenderSpace,
|
|
333
|
+
Column: JsonRenderColumn,
|
|
334
|
+
Divider: JsonRenderDivider
|
|
335
|
+
};
|
|
336
|
+
function createA2UIRegistry(customComponents) {
|
|
337
|
+
return _objectSpread$2(_objectSpread$2({}, a2uiRegistry), customComponents);
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
function ownKeys$1(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; }
|
|
341
|
+
function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
342
|
+
function createJsonRenderActivityConfig() {
|
|
343
|
+
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
344
|
+
var _options$activityType = options.activityType,
|
|
345
|
+
activityType = _options$activityType === void 0 ? "json-render" : _options$activityType,
|
|
346
|
+
_options$registry = options.registry,
|
|
347
|
+
registry = _options$registry === void 0 ? tdesignRegistry : _options$registry,
|
|
348
|
+
_options$actionHandle = options.actionHandlers,
|
|
349
|
+
actionHandlers = _options$actionHandle === void 0 ? {} : _options$actionHandle,
|
|
350
|
+
_options$debug = options.debug,
|
|
351
|
+
debug = _options$debug === void 0 ? false : _options$debug,
|
|
352
|
+
_options$description = options.description,
|
|
353
|
+
description = _options$description === void 0 ? "json-render \u52A8\u6001 UI \u6E32\u67D3\u5668" : _options$description;
|
|
354
|
+
return {
|
|
355
|
+
activityType: activityType,
|
|
356
|
+
component: /*#__PURE__*/React.memo(function (props) {
|
|
357
|
+
return /* @__PURE__ */React.createElement(JsonRenderActivityRenderer, _objectSpread$1(_objectSpread$1({}, props), {}, {
|
|
358
|
+
registry: registry,
|
|
359
|
+
actionHandlers: actionHandlers,
|
|
360
|
+
debug: debug
|
|
361
|
+
}));
|
|
362
|
+
}),
|
|
363
|
+
description: description
|
|
364
|
+
};
|
|
365
|
+
}
|
|
366
|
+
function createA2UIJsonRenderActivityConfig() {
|
|
367
|
+
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
368
|
+
var _options$activityType2 = options.activityType,
|
|
369
|
+
activityType = _options$activityType2 === void 0 ? "a2ui-json-render" : _options$activityType2,
|
|
370
|
+
_options$registry2 = options.registry,
|
|
371
|
+
registry = _options$registry2 === void 0 ? a2uiRegistry : _options$registry2,
|
|
372
|
+
_options$actionHandle2 = options.actionHandlers,
|
|
373
|
+
actionHandlers = _options$actionHandle2 === void 0 ? {} : _options$actionHandle2,
|
|
374
|
+
_options$debug2 = options.debug,
|
|
375
|
+
debug = _options$debug2 === void 0 ? false : _options$debug2,
|
|
376
|
+
_options$description2 = options.description,
|
|
377
|
+
description = _options$description2 === void 0 ? "A2UI + json-render \u9002\u914D\u6E32\u67D3\u5668" : _options$description2;
|
|
378
|
+
return {
|
|
379
|
+
activityType: activityType,
|
|
380
|
+
component: /*#__PURE__*/React.memo(function (props) {
|
|
381
|
+
return /* @__PURE__ */React.createElement(A2UIJsonRenderActivityRenderer, _objectSpread$1(_objectSpread$1({}, props), {}, {
|
|
382
|
+
registry: registry,
|
|
383
|
+
actionHandlers: actionHandlers,
|
|
384
|
+
debug: debug
|
|
385
|
+
}));
|
|
386
|
+
}),
|
|
387
|
+
description: description
|
|
388
|
+
};
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
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; }
|
|
392
|
+
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; }
|
|
393
|
+
function withStableProps(Component) {
|
|
394
|
+
return /*#__PURE__*/React.memo(Component, function (prevProps, nextProps) {
|
|
395
|
+
var prevElement = prevProps.element;
|
|
396
|
+
var nextElement = nextProps.element;
|
|
397
|
+
if (prevProps.children !== nextProps.children) {
|
|
398
|
+
return false;
|
|
399
|
+
}
|
|
400
|
+
if (prevElement === nextElement) return true;
|
|
401
|
+
if (prevElement.id !== nextElement.id || prevElement.type !== nextElement.type) {
|
|
402
|
+
return false;
|
|
403
|
+
}
|
|
404
|
+
return reactFastCompare(prevElement.props, nextElement.props);
|
|
405
|
+
});
|
|
406
|
+
}
|
|
407
|
+
var tdesignRegistry = {
|
|
408
|
+
Button: JsonRenderButton,
|
|
409
|
+
Input: JsonRenderInput,
|
|
410
|
+
TextField: JsonRenderTextField,
|
|
411
|
+
Card: JsonRenderCard,
|
|
412
|
+
Text: JsonRenderText,
|
|
413
|
+
Row: JsonRenderRow,
|
|
414
|
+
Col: JsonRenderCol,
|
|
415
|
+
Space: JsonRenderSpace,
|
|
416
|
+
Column: JsonRenderColumn,
|
|
417
|
+
Divider: JsonRenderDivider,
|
|
418
|
+
button: JsonRenderButton,
|
|
419
|
+
input: JsonRenderInput,
|
|
420
|
+
textfield: JsonRenderTextField,
|
|
421
|
+
card: JsonRenderCard,
|
|
422
|
+
text: JsonRenderText,
|
|
423
|
+
row: JsonRenderRow,
|
|
424
|
+
col: JsonRenderCol,
|
|
425
|
+
space: JsonRenderSpace,
|
|
426
|
+
column: JsonRenderColumn,
|
|
427
|
+
divider: JsonRenderDivider
|
|
428
|
+
};
|
|
429
|
+
function createCustomRegistry(customComponents) {
|
|
430
|
+
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
431
|
+
var _options$enableStable = options.enableStableProps,
|
|
432
|
+
enableStableProps = _options$enableStable === void 0 ? true : _options$enableStable;
|
|
433
|
+
var processedComponents = {};
|
|
434
|
+
if (enableStableProps) {
|
|
435
|
+
for (var _i = 0, _Object$entries = Object.entries(customComponents); _i < _Object$entries.length; _i++) {
|
|
436
|
+
var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),
|
|
437
|
+
name = _Object$entries$_i[0],
|
|
438
|
+
Component = _Object$entries$_i[1];
|
|
439
|
+
processedComponents[name] = withStableProps(Component);
|
|
440
|
+
}
|
|
441
|
+
} else {
|
|
442
|
+
Object.assign(processedComponents, customComponents);
|
|
443
|
+
}
|
|
444
|
+
return _objectSpread(_objectSpread({}, tdesignRegistry), processedComponents);
|
|
445
|
+
}
|
|
446
|
+
|
|
447
|
+
export { A2UITextField as A, JsonRenderInput as J, a2uiRegistry as a, createA2UIRegistry as b, createCustomRegistry as c, A2UIButton as d, withA2UIBinding as e, createJsonRenderActivityConfig as f, createA2UIJsonRenderActivityConfig as g, JsonRenderTextField as h, tdesignRegistry as t, withStableProps as w };
|
|
448
|
+
//# sourceMappingURL=dep-56f5e08e.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dep-56f5e08e.js","sources":["../../../pro-components/chat/chat-engine/components/json-render/catalog/atomic/input.tsx","../../../pro-components/chat/chat-engine/components/json-render/registry/a2ui-binding.tsx","../../../pro-components/chat/chat-engine/components/json-render/registry/a2ui-registry.tsx","../../../pro-components/chat/chat-engine/components/json-render/registry/config.tsx","../../../pro-components/chat/chat-engine/components/json-render/registry/index.ts"],"sourcesContent":["/**\n * TDesign Input 组件适配 json-render\n * \n * 这是纯净的 json-render Input 组件,不包含 A2UI 协议绑定逻辑\n * 如需 A2UI 支持,请使用 a2uiRegistry 中的 A2UITextField\n */\n\nimport React from 'react';\nimport { Input, Space } from 'tdesign-react';\nimport type { InputProps } from 'tdesign-react';\nimport type { ComponentRenderProps } from '../../types';\nimport { useData } from '../..';\nimport { getByPath } from '@json-render/core';\n\n/**\n * json-render Input 组件(基础版本,不带数据绑定)\n */\nexport const JsonRenderInput: React.FC<ComponentRenderProps> = ({ element }) => {\n const {\n value,\n defaultValue,\n placeholder,\n disabled = false,\n readonly = false,\n size = 'medium',\n type = 'text',\n maxlength,\n clearable = false,\n status,\n onChange,\n onBlur,\n onFocus,\n onEnter,\n onClear,\n ...restProps\n } = element.props as InputProps;\n\n return (\n <Input\n value={value}\n defaultValue={defaultValue}\n placeholder={placeholder}\n disabled={disabled}\n readonly={readonly}\n size={size}\n type={type}\n maxlength={maxlength}\n clearable={clearable}\n status={status}\n onChange={onChange}\n onBlur={onBlur}\n onFocus={onFocus}\n onEnter={onEnter}\n onClear={onClear}\n {...restProps}\n />\n );\n};\n\nJsonRenderInput.displayName = 'JsonRenderInput';\n\n/**\n * json-render TextField 组件(带 label 和 valuePath 数据绑定)\n * \n * 这是标准 json-render 的 TextField,支持 valuePath 但不支持 A2UI 的 disabledPath\n * 如需完整 A2UI 支持,请使用 a2uiRegistry 中的 A2UITextField\n */\nexport const JsonRenderTextField: React.FC<ComponentRenderProps> = ({ element }) => {\n const {\n label,\n valuePath,\n placeholder,\n type = 'text',\n disabled = false,\n size = 'medium',\n ...restProps\n } = element.props as InputProps & {\n label?: string;\n valuePath?: string;\n };\n\n const { data, set } = useData();\n\n const value = valuePath ? (getByPath(data, valuePath) as string) ?? '' : '';\n\n const handleChange = (newValue: string) => {\n if (valuePath) {\n set(valuePath, newValue);\n }\n };\n\n if (label) {\n return (\n <Space direction=\"vertical\" size={4} style={{ width: '100%' }}>\n <label style={{ fontSize: '14px', fontWeight: 500 }}>{label}</label>\n <Input\n value={value}\n placeholder={placeholder}\n type={type}\n disabled={disabled}\n size={size}\n onChange={handleChange}\n {...restProps}\n />\n </Space>\n );\n }\n\n return (\n <Input\n value={value}\n placeholder={placeholder}\n type={type}\n disabled={disabled}\n size={size}\n onChange={handleChange}\n {...restProps}\n />\n );\n};\n\nJsonRenderTextField.displayName = 'JsonRenderTextField';\n\nexport default JsonRenderInput;\n","/**\n * A2UI 数据绑定 HOC\n * \n * 统一处理 A2UI 协议的标准字段:\n * - valuePath: 值的数据绑定路径(如 /userInfo/name)\n * - disabledPath: disabled 状态的数据绑定路径(如 /formDisabled)\n * - action.context: action 参数中的动态数据绑定\n * \n * 性能优化:\n * - 使用 React.memo + 精确值比较避免不必要渲染\n * - Action 参数延迟解析(触发时才计算)\n * - 使用 useRef 缓存回调函数避免重建\n * \n * 使用方式:\n * ```tsx\n * // 创建支持 A2UI 绑定的 Input\n * const A2UIInput = withA2UIBinding(Input, {\n * valueField: 'value',\n * onChangeField: 'onChange',\n * });\n * \n * // 创建支持 action 的 Button\n * const A2UIButton = withA2UIBinding(Button, {\n * supportsAction: true,\n * actionTrigger: 'onClick', // 默认\n * });\n * \n * // Input 支持 onEnter 触发 action\n * const A2UISearchInput = withA2UIBinding(Input, {\n * valueField: 'value',\n * onChangeField: 'onChange',\n * supportsAction: true,\n * actionTrigger: 'onEnter',\n * });\n * ```\n */\n\nimport React, { useCallback, useRef, memo, useMemo } from 'react';\nimport type { ComponentRenderProps } from '../renderer';\nimport { getByPath } from '@json-render/core';\nimport type { Action } from '@json-render/core';\nimport { useData } from '..';\n\n/**\n * A2UI 绑定配置\n */\nexport interface A2UIBindingConfig {\n /** 组件的值字段名,默认 'value' */\n valueField?: string;\n /** 组件的 onChange 字段名,默认 'onChange' */\n onChangeField?: string;\n /** 是否支持 action 绑定,默认 false */\n supportsAction?: boolean;\n /** \n * Action 触发事件名,默认 'onClick'\n * 可设置为 'onEnter'、'onChange' 等\n */\n actionTrigger?: string;\n}\n\n/**\n * 解析 action params 中的动态数据绑定\n * 将 { path: '/xxx' } 格式的引用替换为实际数据\n * \n * 性能优化:使用迭代替代递归,减少调用栈深度\n */\nfunction resolveActionParams(\n params: Record<string, unknown>,\n data: Record<string, unknown>,\n maxDepth = 10,\n): Record<string, unknown> {\n const resolved: Record<string, unknown> = {};\n \n // 使用栈迭代处理,避免深递归\n const stack: Array<{\n source: Record<string, unknown>;\n target: Record<string, unknown>;\n depth: number;\n }> = [{ source: params, target: resolved, depth: 0 }];\n \n while (stack.length > 0) {\n const { source, target, depth } = stack.pop()!;\n \n if (depth >= maxDepth) {\n // 防止无限递归\n Object.assign(target, source);\n continue;\n }\n \n for (const [key, value] of Object.entries(source)) {\n if (value && typeof value === 'object' && 'path' in value) {\n // 动态绑定:{ path: '/userInfo' } → 实际数据\n const pathValue = (value as { path: string }).path;\n target[key] = getByPath(data, pathValue);\n } else if (value && typeof value === 'object' && !Array.isArray(value)) {\n // 嵌套对象,加入栈处理\n const nestedTarget: Record<string, unknown> = {};\n target[key] = nestedTarget;\n stack.push({\n source: value as Record<string, unknown>,\n target: nestedTarget,\n depth: depth + 1,\n });\n } else {\n // 静态值直接保留\n target[key] = value;\n }\n }\n }\n \n return resolved;\n}\n\n/**\n * A2UI 数据绑定 HOC 内部组件\n * 处理实际的数据绑定逻辑\n */\ninterface A2UIBoundInnerProps<P> extends ComponentRenderProps {\n WrappedComponent: React.ComponentType<P>;\n valueField: string;\n onChangeField: string;\n supportsAction: boolean;\n actionTrigger: string;\n}\n\nfunction A2UIBoundInner<P extends Record<string, any>>({\n element,\n children,\n onAction,\n WrappedComponent,\n valueField,\n onChangeField,\n supportsAction,\n actionTrigger,\n}: A2UIBoundInnerProps<P>) {\n const { data, set } = useData();\n \n // 提取 A2UI 特有字段\n const {\n valuePath,\n disabledPath,\n action,\n disabled: staticDisabled,\n ...componentProps\n } = element.props as P & {\n valuePath?: string;\n disabledPath?: string;\n action?: string | Action;\n disabled?: boolean;\n };\n\n // 使用 ref 缓存 data,action 触发时获取最新值\n const dataRef = useRef(data);\n dataRef.current = data;\n\n // 提取绑定的值(只在真正需要的路径变化时才变)\n const boundValue = useMemo(() => {\n if (valuePath) {\n return getByPath(data, valuePath) ?? '';\n }\n return undefined;\n }, [valuePath, valuePath ? getByPath(data, valuePath) : undefined]);\n\n // 提取 disabled 状态\n const boundDisabled = useMemo(() => {\n if (disabledPath) {\n return Boolean(getByPath(data, disabledPath));\n }\n return staticDisabled ?? false;\n }, [disabledPath, disabledPath ? getByPath(data, disabledPath) : undefined, staticDisabled]);\n\n // 使用 ref 缓存 set 函数,避免 handleChange 重建\n const setRef = useRef(set);\n setRef.current = set;\n\n // 创建稳定的 onChange 处理器\n const handleChange = useCallback((newValue: unknown) => {\n if (valuePath) {\n setRef.current(valuePath, newValue);\n }\n }, [valuePath]);\n\n // 创建稳定的 action 处理器(延迟解析,触发时才获取最新 data)\n const handleAction = useCallback(() => {\n if (!action || !onAction) return;\n\n // 标准化 action 格式\n const actionObj: Action = typeof action === 'string'\n ? { name: action, params: {} }\n : action;\n\n // 使用最新的 data 解析参数\n const resolvedParams = actionObj.params\n ? resolveActionParams(actionObj.params as Record<string, unknown>, dataRef.current)\n : {};\n\n const resolvedAction: Action = {\n name: actionObj.name,\n params: resolvedParams,\n };\n\n onAction(resolvedAction);\n }, [action, onAction]);\n\n // 构建最终 props\n const finalProps = useMemo(() => {\n const props: any = {\n ...componentProps,\n disabled: boundDisabled,\n };\n\n // 如果有 valuePath,注入值和 onChange\n if (valuePath !== undefined) {\n props[valueField] = boundValue;\n props[onChangeField] = handleChange;\n }\n\n // 如果支持 action,注入到指定的触发事件\n if (supportsAction && action) {\n const originalHandler = componentProps[actionTrigger];\n props[actionTrigger] = (...args: unknown[]) => {\n // 先调用原始处理器\n if (typeof originalHandler === 'function') {\n originalHandler(...args);\n }\n // 再触发 action\n handleAction(...args);\n };\n }\n\n return props;\n }, [\n componentProps,\n boundDisabled,\n valuePath,\n valueField,\n boundValue,\n onChangeField,\n handleChange,\n supportsAction,\n action,\n actionTrigger,\n handleAction,\n ]);\n\n return (\n <WrappedComponent {...finalProps as P}>\n {children}\n </WrappedComponent>\n );\n}\n\n/**\n * A2UI 数据绑定 HOC\n * \n * 自动处理 A2UI 协议的标准字段,让原子组件保持纯净\n * \n * @param WrappedComponent 原始组件\n * @param config 绑定配置\n */\nexport function withA2UIBinding<P extends Record<string, any>>(\n WrappedComponent: React.ComponentType<P>,\n config: A2UIBindingConfig = {},\n): React.FC<ComponentRenderProps> {\n const {\n valueField = 'value',\n onChangeField = 'onChange',\n supportsAction = false,\n actionTrigger = 'onClick',\n } = config;\n\n const A2UIBoundComponent: React.FC<ComponentRenderProps> = (props) => {\n return (\n <A2UIBoundInner\n {...props}\n WrappedComponent={WrappedComponent}\n valueField={valueField}\n onChangeField={onChangeField}\n supportsAction={supportsAction}\n actionTrigger={actionTrigger}\n />\n );\n };\n\n A2UIBoundComponent.displayName = `withA2UIBinding(${WrappedComponent.displayName || WrappedComponent.name || 'Component'})`;\n\n // 使用 memo 包装,通过精确比较避免不必要渲染\n return memo(A2UIBoundComponent, (prevProps, nextProps) => {\n // element 引用相同,跳过渲染\n if (prevProps.element === nextProps.element) return true;\n \n // 比较关键字段\n const prevEl = prevProps.element;\n const nextEl = nextProps.element;\n \n if (prevEl.type !== nextEl.type) return false;\n if (prevEl.key !== nextEl.key) return false;\n \n // 比较 props(浅比较)\n const prevElProps = prevEl.props || {};\n const nextElProps = nextEl.props || {};\n const prevKeys = Object.keys(prevElProps);\n const nextKeys = Object.keys(nextElProps);\n \n if (prevKeys.length !== nextKeys.length) return false;\n \n for (const key of prevKeys) {\n if (prevElProps[key] !== nextElProps[key]) return false;\n }\n \n return true;\n });\n}\n\nexport default withA2UIBinding;\n","/**\n * A2UI 专用组件注册表\n * \n * 使用 withA2UIBinding HOC 包装原子组件,自动处理 A2UI 协议字段:\n * - valuePath: 值的数据绑定(如 /userInfo/name)\n * - disabledPath: disabled 状态的数据绑定(如 /formDisabled)\n * - action.context: action 参数中的动态数据绑定({ path: '/xxx' } 格式)\n * \n * 与 tdesignRegistry 的区别:\n * - tdesignRegistry: 纯净的 TDesign 组件,用于直接的 json-render schema\n * - a2uiRegistry: 支持 A2UI 协议的组件,用于 A2UI → json-render 转换后的渲染\n * \n * 使用方式:\n * ```tsx\n * // 业务使用 A2UI 协议时\n * const config = createA2UIJsonRenderActivityConfig({\n * registry: a2uiRegistry, // 内置 A2UI 组件\n * // 或扩展自定义组件\n * registry: createA2UIRegistry({\n * MyCustomComponent: withA2UIBinding(MyComponent, { supportsAction: true }),\n * }),\n * });\n * ```\n */\n\nimport React from 'react';\nimport { Input, Button, Space } from 'tdesign-react';\nimport type { InputProps, ButtonProps } from 'tdesign-react';\nimport type { ComponentRegistry } from '../renderer';\nimport { withA2UIBinding } from './a2ui-binding';\n\n// 导入纯净组件和布局组件(这些不需要 A2UI 绑定)\nimport { JsonRenderCard } from '../catalog/atomic/card';\nimport { JsonRenderText } from '../catalog/atomic/text';\nimport {\n JsonRenderRow,\n JsonRenderCol,\n JsonRenderSpace,\n JsonRenderColumn,\n JsonRenderDivider,\n} from '../catalog/atomic/layout';\n\n// ==================== 基础组件包装器 ====================\n\n/**\n * 基础 Input 组件(用于 HOC 包装)\n * 接收标准 InputProps,由 HOC 注入 value/onChange/disabled\n */\nconst BaseInput: React.FC<InputProps & { label?: string }> = ({\n label,\n ...props\n}) => {\n if (label) {\n return (\n <Space direction=\"vertical\" size={4} style={{ width: '100%' }}>\n <label style={{ fontSize: '14px', fontWeight: 500 }}>{label}</label>\n <Input {...props} />\n </Space>\n );\n }\n return <Input {...props} />;\n};\n\nBaseInput.displayName = 'BaseInput';\n\n/**\n * 基础 Button 组件(用于 HOC 包装)\n * 接收标准 ButtonProps,由 HOC 注入 onClick/disabled\n */\nconst BaseButton: React.FC<ButtonProps & { label?: string }> = ({\n label,\n children,\n ...props\n}) => {\n const content = label || children;\n return <Button {...props}>{content}</Button>;\n};\n\nBaseButton.displayName = 'BaseButton';\n\n// ==================== A2UI 组件(通过 HOC 生成)====================\n\n/**\n * A2UI TextField 组件\n * 自动支持 valuePath/disabledPath 数据绑定\n */\nexport const A2UITextField = withA2UIBinding<InputProps & { label?: string }>(\n BaseInput,\n {\n valueField: 'value',\n onChangeField: 'onChange',\n supportsAction: false,\n },\n);\n\n/**\n * A2UI Button 组件\n * 自动支持 disabledPath 和 action.context 动态绑定\n */\nexport const A2UIButton = withA2UIBinding<ButtonProps & { label?: string }>(\n BaseButton,\n {\n supportsAction: true,\n },\n);\n\n// ==================== A2UI Registry ====================\n\n/**\n * A2UI 专用组件注册表\n * \n * 用于 A2UI 协议转换后的渲染,组件自动支持:\n * - valuePath: 值绑定到 dataModel\n * - disabledPath: disabled 状态绑定到 dataModel\n * - action.context: action 参数动态解析\n * \n * @example\n * ```tsx\n * import { a2uiRegistry } from './catalog/a2ui-registry';\n * \n * const config = createA2UIJsonRenderActivityConfig({\n * registry: a2uiRegistry, // 使用 A2UI 专用 registry\n * actionHandlers: { ... },\n * });\n * ```\n */\nexport const a2uiRegistry: ComponentRegistry = {\n // A2UI 绑定组件(通过 HOC 包装)\n TextField: A2UITextField,\n Button: A2UIButton,\n \n // 纯净组件(布局类不需要 A2UI 绑定)\n Card: JsonRenderCard,\n Text: JsonRenderText,\n Row: JsonRenderRow,\n Col: JsonRenderCol,\n Space: JsonRenderSpace,\n Column: JsonRenderColumn,\n Divider: JsonRenderDivider,\n};\n\n/**\n * 创建自定义 A2UI 组件注册表\n * \n * 基于 a2uiRegistry 扩展自定义组件\n * 自定义组件如需支持 A2UI 协议,请使用 withA2UIBinding 包装\n * \n * @example\n * ```tsx\n * import { createA2UIRegistry, withA2UIBinding } from '@tdesign-react/chat';\n * \n * // 创建支持 A2UI 的自定义组件\n * const A2UIDatePicker = withA2UIBinding(DatePicker, {\n * valueField: 'value',\n * onChangeField: 'onChange',\n * });\n * \n * const customRegistry = createA2UIRegistry({\n * DatePicker: A2UIDatePicker,\n * });\n * ```\n */\nexport function createA2UIRegistry(\n customComponents: ComponentRegistry,\n): ComponentRegistry {\n return {\n ...a2uiRegistry,\n ...customComponents,\n };\n}\n\nexport default a2uiRegistry;\n","/**\n * json-render Activity 配置工厂函数\n * 便捷创建 ActivityConfig 用于注册\n */\n\nimport React from 'react';\nimport type { ComponentRegistry } from '../renderer';\nimport type { ActivityConfig } from '../../activity/types';\nimport type { JsonRenderActivityProps } from '../types';\nimport { JsonRenderActivityRenderer } from '../renderer/JsonRenderActivityRenderer';\nimport { A2UIJsonRenderActivityRenderer } from '../renderer/A2UIJsonRenderActivityRenderer';\nimport { a2uiRegistry, tdesignRegistry } from '.';\n\n/**\n * json-render Activity 配置选项\n */\nexport interface JsonRenderActivityConfigOptions {\n /** Activity 类型标识,默认 'json-render' */\n activityType?: string;\n /** 组件注册表,默认使用 tdesignRegistry */\n registry?: ComponentRegistry;\n /** \n * Action 处理器映射表\n * \n * 重要:json-render 采用预定义 action 模式\n * - AI/服务端只能生成在此预定义的 action 名称\n * - 每个 action 对应一个具体的处理函数\n * - 这确保了生成式 UI 的安全性和可控性\n * \n * @example\n * ```tsx\n * actionHandlers: {\n * // 表单提交\n * submit: async (params) => {\n * await api.submitForm(params);\n * MessagePlugin.success('提交成功');\n * },\n * \n * // 表单重置\n * reset: async (params) => {\n * // 注意:如需清空表单,应在组件内部使用 useData().update()\n * MessagePlugin.info('表单已重置');\n * },\n * \n * // 删除操作\n * delete: async (params) => {\n * await api.deleteItem(params.id);\n * },\n * \n * // 刷新数据\n * refresh: async () => {\n * await refetchData();\n * }\n * }\n * ```\n */\n actionHandlers?: Record<string, (params: Record<string, unknown>) => void | Promise<void>>;\n /** 显示调试信息 */\n debug?: boolean;\n /** 描述信息 */\n description?: string;\n}\n\n/**\n * 创建 json-render Activity 配置\n * \n * @example\n * 基础用法 - 预定义 action handlers\n * ```tsx\n * const jsonRenderConfig = createJsonRenderActivityConfig({\n * activityType: 'json-render',\n * actionHandlers: {\n * submit: async (params) => {\n * console.log('提交表单:', params);\n * await api.submit(params);\n * MessagePlugin.success('提交成功');\n * },\n * reset: async (params) => {\n * MessagePlugin.info('表单已重置');\n * },\n * delete: async (params) => {\n * await api.delete(params.id);\n * }\n * },\n * });\n * \n * useAgentActivity(jsonRenderConfig);\n * ```\n * \n * @example\n * 结合 ChatEngine 发送消息到服务端\n * ```tsx\n * const jsonRenderConfig = createJsonRenderActivityConfig({\n * actionHandlers: {\n * submit: async (params) => {\n * // 发送到服务端处理\n * await chatEngine.sendAIMessage({\n * params: { userActionMessage: { name: 'submit', params } },\n * sendRequest: true,\n * });\n * },\n * reset: async (params) => {\n * // 本地处理,不发送到服务端\n * MessagePlugin.info('已重置');\n * },\n * },\n * });\n * ```\n * \n * @example\n * 配合自定义组件注册表\n * ```tsx\n * import { createCustomRegistry } from './catalog';\n * \n * const jsonRenderConfig = createJsonRenderActivityConfig({\n * registry: createCustomRegistry({\n * MyCustomComponent: MyComponentRenderer,\n * }),\n * actionHandlers: {\n * custom_action: async (params) => {\n * // 处理自定义操作\n * },\n * },\n * });\n * ```\n */\nexport function createJsonRenderActivityConfig(\n options: JsonRenderActivityConfigOptions = {},\n): ActivityConfig<JsonRenderActivityProps['content']> {\n const {\n activityType = 'json-render',\n registry = tdesignRegistry,\n actionHandlers = {},\n debug = false,\n description = 'json-render 动态 UI 渲染器',\n } = options;\n\n return {\n activityType,\n component: React.memo((props: JsonRenderActivityProps) => (\n <JsonRenderActivityRenderer\n {...props}\n registry={registry}\n actionHandlers={actionHandlers}\n debug={debug}\n />\n )),\n description,\n };\n}\n\n/**\n * 创建 A2UI + json-render Activity 配置\n * 支持将 A2UI 协议转换为 json-render Schema 渲染\n * \n * 注意:默认使用 a2uiRegistry,自动支持 valuePath/disabledPath/action.context 绑定\n * \n * @example\n * ```tsx\n * const a2uiJsonRenderConfig = createA2UIJsonRenderActivityConfig({\n * activityType: 'a2ui-json-render',\n * actionHandlers: {\n * submit: async (params) => {\n * console.log('提交:', params);\n * },\n * cancel: async (params) => {\n * console.log('取消');\n * },\n * },\n * });\n * \n * useAgentActivity(a2uiJsonRenderConfig);\n * ```\n */\nexport function createA2UIJsonRenderActivityConfig(\n options: JsonRenderActivityConfigOptions = {},\n): ActivityConfig<any> {\n const {\n activityType = 'a2ui-json-render',\n registry = a2uiRegistry, // A2UI 默认使用 a2uiRegistry\n actionHandlers = {},\n debug = false,\n description = 'A2UI + json-render 适配渲染器',\n } = options;\n\n return {\n activityType,\n component: React.memo((props: any) => (\n <A2UIJsonRenderActivityRenderer\n {...props}\n registry={registry}\n actionHandlers={actionHandlers}\n debug={debug}\n />\n )),\n description,\n };\n}\n","/**\n * TDesign ComponentRegistry(React 组件注册表)\n * 用于 json-render 渲染层的组件映射\n * \n * 重要概念区分:\n * - ComponentRegistry(本文件):渲染层,映射组件名到 React 组件(传给 Renderer)\n * - Catalog(catalog.ts):约束层,定义组件 props schema 和 actions 白名单(给 AI/服务端)\n * \n * Registry 分类:\n * - tdesignRegistry: 纯净的 TDesign 组件,用于直接的 json-render schema\n * - a2uiRegistry: 支持 A2UI 协议的组件,自动处理 valuePath/disabledPath/action.context\n * \n * 详见:ARCHITECTURE.md\n */\n\nimport React from 'react';\nimport isEqual from 'react-fast-compare';\nimport type { ComponentRegistry, ComponentRenderProps } from '../renderer';\nimport { JsonRenderButton } from '../catalog/atomic/button';\nimport { JsonRenderInput, JsonRenderTextField } from '../catalog/atomic/input';\nimport { JsonRenderCard } from '../catalog/atomic/card';\nimport { JsonRenderText } from '../catalog/atomic/text';\nimport {\n JsonRenderRow,\n JsonRenderCol,\n JsonRenderSpace,\n JsonRenderColumn,\n JsonRenderDivider,\n} from '../catalog/atomic/layout';\n\n/**\n * 高性能组件包装器\n * 使用 React.memo + react-fast-compare 实现深比较\n * \n * 原理:\n * - json-render 每次渲染都会创建新的 element 对象引用\n * - 默认的 React.memo 浅比较会认为 props 变化了\n * - 使用 react-fast-compare 进行高效深比较,只在内容真正变化时才重渲染\n * \n * 性能说明(来自 performance_suggestion.md):\n * - react-fast-compare 比 JSON.stringify 更快(短路比较)\n * - 发现第一个不同属性时立即停止,不会遍历整个对象\n * - 处理了循环引用等边缘情况\n * \n * 重要:必须同时比较 element.props 和 children\n * - element.props 变化:组件自身的属性发生变化\n * - children 变化:子组件树发生变化(深层更新场景)\n */\nexport function withStableProps<P extends ComponentRenderProps>(\n Component: React.ComponentType<P>,\n): React.MemoExoticComponent<React.ComponentType<P>> {\n return React.memo(Component, (prevProps, nextProps) => {\n const prevElement = prevProps.element as any;\n const nextElement = nextProps.element as any;\n \n // 1. children 变化必须重渲染\n // 深层更新时,父组件的 element 可能不变,但 children(子组件树)会变化\n if (prevProps.children !== nextProps.children) {\n return false;\n }\n \n // 2. element 引用相同,跳过渲染\n if (prevElement === nextElement) return true;\n \n // 3. 快速路径:id 或 type 不同,需要重渲染\n if (prevElement.id !== nextElement.id || prevElement.type !== nextElement.type) {\n return false;\n }\n \n // 4. 使用 react-fast-compare 进行高效深比较\n return isEqual(prevElement.props, nextElement.props);\n });\n}\n\n/**\n * TDesign 内置组件注册表(渲染层)\n * \n * 这是框架内置的原子组件集合,提供基础 UI 渲染能力\n * 业务层可以通过 createCustomRegistry 扩展自定义组件\n * \n * 使用方式:\n * ```tsx\n * import { tdesignRegistry } from '@tdesign-react/chat';\n * \n * const config = createJsonRenderActivityConfig({\n * registry: tdesignRegistry,\n * actionHandlers: { ... },\n * });\n * ```\n * \n * Schema 示例:\n * ```json\n * {\n * \"root\": \"btn1\",\n * \"elements\": {\n * \"btn1\": {\n * \"key\": \"btn1\",\n * \"type\": \"Button\",\n * \"props\": {\n * \"variant\": \"base\",\n * \"theme\": \"primary\",\n * \"children\": \"点击我\",\n * \"action\": \"submit\"\n * }\n * }\n * }\n * }\n * ```\n */\nexport const tdesignRegistry: ComponentRegistry = {\n // 基础组件\n Button: JsonRenderButton,\n Input: JsonRenderInput,\n TextField: JsonRenderTextField,\n Card: JsonRenderCard,\n Text: JsonRenderText,\n\n // 布局组件\n Row: JsonRenderRow,\n Col: JsonRenderCol,\n Space: JsonRenderSpace,\n Column: JsonRenderColumn,\n Divider: JsonRenderDivider,\n\n // 别名(兼容不同命名风格)\n button: JsonRenderButton,\n input: JsonRenderInput,\n textfield: JsonRenderTextField,\n card: JsonRenderCard,\n text: JsonRenderText,\n row: JsonRenderRow,\n col: JsonRenderCol,\n space: JsonRenderSpace,\n column: JsonRenderColumn,\n divider: JsonRenderDivider,\n};\n\n/**\n * createCustomRegistry 配置选项\n */\nexport interface CreateCustomRegistryOptions {\n /**\n * 是否自动包装组件以优化性能\n * 使用 React.memo + react-fast-compare 深比较 element.props\n * \n * @default true\n */\n enableStableProps?: boolean;\n}\n\n/**\n * 创建自定义组件注册表(扩展内置组件)\n * \n * 用于渲染层:扩展自定义业务组件的 React 实现\n * \n * 性能优化(默认开启):\n * - 自动使用 withStableProps 包装组件\n * - 使用 react-fast-compare 进行高效深比较\n * - 业务组件无需手动写 React.memo 比较函数\n * \n * @example\n * ```tsx\n * import { createCustomRegistry } from '@tdesign-react/chat';\n * import type { ComponentRenderProps } from '@json-render/react';\n * \n * // 定义自定义组件(无需手动 React.memo)\n * const StatusCard: React.FC<ComponentRenderProps> = ({ element }) => (\n * <div className=\"status-card\">{element.props.status}</div>\n * );\n * \n * const ProgressBar: React.FC<ComponentRenderProps> = ({ element }) => (\n * <div className=\"progress-bar\" style={{ width: `${element.props.percentage}%` }} />\n * );\n * \n * // 扩展 registry(自动优化性能)\n * const customRegistry = createCustomRegistry({\n * StatusCard,\n * ProgressBar,\n * });\n * \n * // 禁用自动优化(如果需要自己控制)\n * const customRegistry = createCustomRegistry(\n * { StatusCard, ProgressBar },\n * { enableStableProps: false }\n * );\n * ```\n * \n * 注意:\n * - 这里只定义渲染层的组件映射\n * - 约束层(Catalog)需要使用 createCustomCatalog 定义(见 catalog.ts)\n * - 两者需要保持组件名称一致\n */\nexport function createCustomRegistry(\n customComponents: ComponentRegistry,\n options: CreateCustomRegistryOptions = {},\n): ComponentRegistry {\n const { enableStableProps = true } = options;\n\n // 如果启用性能优化,自动包装组件\n const processedComponents: ComponentRegistry = {};\n \n if (enableStableProps) {\n for (const [name, Component] of Object.entries(customComponents)) {\n processedComponents[name] = withStableProps(Component as React.ComponentType<ComponentRenderProps>);\n }\n } else {\n Object.assign(processedComponents, customComponents);\n }\n\n return {\n ...tdesignRegistry,\n ...processedComponents,\n };\n}\n\n// ==================== 重新导出 A2UI Registry ====================\n// A2UI 专用组件,支持 valuePath/disabledPath/action.context 自动绑定\nexport { a2uiRegistry, createA2UIRegistry, A2UITextField, A2UIButton } from './a2ui-registry';\n\n\n// 配置工厂\nexport type { JsonRenderActivityConfigOptions } from './config';\n// 默认导出配置函数\nexport { createJsonRenderActivityConfig, createA2UIJsonRenderActivityConfig } from './config';\n\n// ==================== 重新导出 A2UI Binding HOC ====================\nexport { withA2UIBinding } from './a2ui-binding';\nexport type { A2UIBindingConfig } from './a2ui-binding';"],"names":["JsonRenderInput","_ref","element","_element$props","props","value","defaultValue","placeholder","_element$props$disabl","disabled","_element$props$readon","readonly","_element$props$size","size","_element$props$type","type","maxlength","_element$props$cleara","clearable","status","onChange","onBlur","onFocus","onEnter","onClear","restProps","_objectWithoutProperties","_excluded","React","createElement","Input","_objectSpread","displayName","JsonRenderTextField","_ref2","_getByPath","_element$props2","label","valuePath","_element$props2$type","_element$props2$disab","_element$props2$size","_excluded2","_useData","useData","data","set","getByPath","handleChange","newValue","Space","direction","style","width","fontSize","fontWeight","resolveActionParams","params","maxDepth","arguments","length","undefined","resolved","stack","source","target","depth","_stack$pop","pop","Object","assign","_i","_Object$entries","entries","_Object$entries$_i","_slicedToArray","key","_typeof","pathValue","path","Array","isArray","nestedTarget","push","A2UIBoundInner","children","onAction","WrappedComponent","valueField","onChangeField","supportsAction","actionTrigger","disabledPath","action","staticDisabled","componentProps","dataRef","useRef","current","boundValue","useMemo","boundDisabled","Boolean","setRef","useCallback","handleAction","actionObj","name","resolvedParams","resolvedAction","finalProps","originalHandler","apply","withA2UIBinding","config","_config$valueField","_config$onChangeField","_config$supportsActio","_config$actionTrigger","A2UIBoundComponent","concat","memo","prevProps","nextProps","prevEl","nextEl","prevElProps","nextElProps","prevKeys","keys","nextKeys","_i2","_prevKeys","BaseInput","BaseButton","content","Button","A2UITextField","A2UIButton","a2uiRegistry","TextField","Card","JsonRenderCard","Text","JsonRenderText","Row","JsonRenderRow","Col","JsonRenderCol","JsonRenderSpace","Column","JsonRenderColumn","Divider","JsonRenderDivider","createA2UIRegistry","customComponents","createJsonRenderActivityConfig","options","_options$activityType","activityType","_options$registry","registry","tdesignRegistry","_options$actionHandle","actionHandlers","_options$debug","debug","_options$description","description","component","JsonRenderActivityRenderer","createA2UIJsonRenderActivityConfig","_options$activityType2","_options$registry2","_options$actionHandle2","_options$debug2","_options$description2","A2UIJsonRenderActivityRenderer","withStableProps","Component","prevElement","nextElement","id","isEqual","JsonRenderButton","button","input","textfield","card","text","row","col","space","column","divider","createCustomRegistry","_options$enableStable","enableStableProps","processedComponents"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAiBaA,eAAkD,GAAA,SAAlDA,eAAkDA,CAAAC,IAAA,EAAiB;AAAA,EAAA,IAAdC,OAAA,GAAAD,IAAA,CAAAC,OAAA,CAAA;AAC1D,EAAA,IAAAC,cAAA,GAiBFD,OAAQ,CAAAE,KAAA;IAhBVC,KAAA,GAAAF,cAAA,CAAAE,KAAA;IACAC,YAAA,GAAAH,cAAA,CAAAG,YAAA;IACAC,WAAA,GAAAJ,cAAA,CAAAI,WAAA;IAAAC,qBAAA,GAAAL,cAAA,CACAM,QAAW;AAAXA,IAAAA,QAAW,GAAAD,qBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,GAAAA,qBAAA;IAAAE,qBAAA,GAAAP,cAAA,CACXQ,QAAW;AAAXA,IAAAA,QAAW,GAAAD,qBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,GAAAA,qBAAA;IAAAE,mBAAA,GAAAT,cAAA,CACXU,IAAO;AAAPA,IAAAA,IAAO,GAAAD,mBAAA,KAAA,KAAA,CAAA,GAAA,QAAA,GAAAA,mBAAA;IAAAE,mBAAA,GAAAX,cAAA,CACPY,IAAO;AAAPA,IAAAA,IAAO,GAAAD,mBAAA,KAAA,KAAA,CAAA,GAAA,MAAA,GAAAA,mBAAA;IACPE,SAAA,GAAAb,cAAA,CAAAa,SAAA;IAAAC,qBAAA,GAAAd,cAAA,CACAe,SAAY;AAAZA,IAAAA,SAAY,GAAAD,qBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,GAAAA,qBAAA;IACZE,MAAA,GAAAhB,cAAA,CAAAgB,MAAA;IACAC,QAAA,GAAAjB,cAAA,CAAAiB,QAAA;IACAC,MAAA,GAAAlB,cAAA,CAAAkB,MAAA;IACAC,OAAA,GAAAnB,cAAA,CAAAmB,OAAA;IACAC,OAAA,GAAApB,cAAA,CAAAoB,OAAA;IACAC,OAAA,GAAArB,cAAA,CAAAqB,OAAA;AACGC,IAAAA,SAAA,GAAAC,wBAAA,CAAAvB,cAAA,EAAAwB,WAAA,CAAA,CAAA;AAGL,EAAA,sBACGC,KAAA,CAAAC,aAAA,CAAAC,KAAA,EAAAC,eAAA,CAAA;AACC1B,IAAAA,KAAA,EAAAA,KAAA;AACAC,IAAAA,YAAA,EAAAA,YAAA;AACAC,IAAAA,WAAA,EAAAA,WAAA;AACAE,IAAAA,QAAA,EAAAA,QAAA;AACAE,IAAAA,QAAA,EAAAA,QAAA;AACAE,IAAAA,IAAA,EAAAA,IAAA;AACAE,IAAAA,IAAA,EAAAA,IAAA;AACAC,IAAAA,SAAA,EAAAA,SAAA;AACAE,IAAAA,SAAA,EAAAA,SAAA;AACAC,IAAAA,MAAA,EAAAA,MAAA;AACAC,IAAAA,QAAA,EAAAA,QAAA;AACAC,IAAAA,MAAA,EAAAA,MAAA;AACAC,IAAAA,OAAA,EAAAA,OAAA;AACAC,IAAAA,OAAA,EAAAA,OAAA;AACAC,IAAAA,OAAA,EAAAA,OAAAA;GACIC,EAAAA,SAAA,CACN,CAAA,CAAA;AAEJ,EAAA;AAEAzB,eAAA,CAAgBgC,WAAc,GAAA,iBAAA,CAAA;IAQjBC,mBAAsD,GAAA,SAAtDA,mBAAsDA,CAAAC,KAAA,EAAiB;AAAA,EAAA,IAAAC,UAAA,CAAA;AAAA,EAAA,IAAdjC,OAAA,GAAAgC,KAAA,CAAAhC,OAAA,CAAA;AAC9D,EAAA,IAAAkC,eAAA,GAQFlC,OAAQ,CAAAE,KAAA;IAPViC,KAAA,GAAAD,eAAA,CAAAC,KAAA;IACAC,SAAA,GAAAF,eAAA,CAAAE,SAAA;IACA/B,WAAA,GAAA6B,eAAA,CAAA7B,WAAA;IAAAgC,oBAAA,GAAAH,eAAA,CACArB,IAAO;AAAPA,IAAAA,IAAO,GAAAwB,oBAAA,KAAA,KAAA,CAAA,GAAA,MAAA,GAAAA,oBAAA;IAAAC,qBAAA,GAAAJ,eAAA,CACP3B,QAAW;AAAXA,IAAAA,QAAW,GAAA+B,qBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,GAAAA,qBAAA;IAAAC,oBAAA,GAAAL,eAAA,CACXvB,IAAO;AAAPA,IAAAA,IAAO,GAAA4B,oBAAA,KAAA,KAAA,CAAA,GAAA,QAAA,GAAAA,oBAAA;AACJhB,IAAAA,SAAA,GAAAC,wBAAA,CAAAU,eAAA,EAAAM,YAAA,CAAA,CAAA;AAML,EAAA,IAAAC,QAAA,GAAsBC,OAAQ,EAAA;IAAtBC,IAAA,GAAAF,QAAA,CAAAE,IAAA;IAAMC,GAAI,GAAAH,QAAA,CAAJG,GAAI,CAAA;AAElB,EAAA,IAAMzC,QAAQiC,SAAa,IAAAH,UAAA,GAAAY,SAAA,CAAUF,IAAM,EAAAP,SAAS,oDAAgB,EAAK,GAAA,EAAA,CAAA;AAEnE,EAAA,IAAAU,YAAA,GAAe,SAAfA,YAAAA,CAAgBC,QAAqB,EAAA;AACzC,IAAA,IAAIX,SAAW,EAAA;AACbQ,MAAAA,GAAA,CAAIR,WAAWW,QAAQ,CAAA,CAAA;AACzB,KAAA;GACF,CAAA;AAEA,EAAA,IAAIZ,KAAO,EAAA;AACT,IAAA,sBACGT,KAAA,CAAAC,aAAA,CAAAqB,KAAA,EAAA;AAAMC,MAAAA,SAAU,EAAA,UAAA;AAAWtC,MAAAA,IAAM,EAAA,CAAA;AAAGuC,MAAAA,KAAA,EAAO;AAAEC,QAAAA,KAAA,EAAO,MAAA;AAAO,OAAA;AAAA,KAAA,iBACzDzB,KAAA,CAAAC,aAAA,CAAA,OAAA,EAAA;AAAMuB,MAAAA,KAAO,EAAA;AAAEE,QAAAA,QAAU,EAAA,MAAA;AAAQC,QAAAA,YAAY,GAAA;AAAI,OAAA;KAAI,EAAAlB,KAAM,kBAC3DT,KAAA,CAAAC,aAAA,CAAAC,KAAA,EAAAC,eAAA,CAAA;AACC1B,MAAAA,KAAA,EAAAA,KAAA;AACAE,MAAAA,WAAA,EAAAA,WAAA;AACAQ,MAAAA,IAAA,EAAAA,IAAA;AACAN,MAAAA,QAAA,EAAAA,QAAA;AACAI,MAAAA,IAAA,EAAAA,IAAA;AACAO,MAAAA,QAAU,EAAA4B,YAAAA;KACNvB,EAAAA,SAAA,CACN,CACF,CAAA,CAAA;AAEJ,GAAA;AAEA,EAAA,sBACGG,KAAA,CAAAC,aAAA,CAAAC,KAAA,EAAAC,eAAA,CAAA;AACC1B,IAAAA,KAAA,EAAAA,KAAA;AACAE,IAAAA,WAAA,EAAAA,WAAA;AACAQ,IAAAA,IAAA,EAAAA,IAAA;AACAN,IAAAA,QAAA,EAAAA,QAAA;AACAI,IAAAA,IAAA,EAAAA,IAAA;AACAO,IAAAA,QAAU,EAAA4B,YAAAA;GACNvB,EAAAA,SAAA,CACN,CAAA,CAAA;AAEJ,EAAA;AAEAQ,mBAAA,CAAoBD,WAAc,GAAA,qBAAA;;;;;ACvDlC,SAASwB,mBACPA,CAAAC,MAAA,EACAZ,IACA,EACyB;AAAA,EAAA,IADzBa,QAAA,GAAAC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAW,EACc,CAAA;EACzB,IAAMG,WAAoC,EAAC,CAAA;EAGrC,IAAAC,KAAA,GAID,CAAC;AAAEC,IAAAA,MAAA,EAAQP;AAAQQ,IAAAA,MAAQ,EAAAH,QAAA;AAAUI,IAAAA,KAAO,EAAA,CAAA;AAAE,GAAC,CAAA,CAAA;AAE7C,EAAA,OAAAH,KAAA,CAAMH,SAAS,CAAG,EAAA;AACvB,IAAA,IAAAO,UAAA,GAAkCJ,MAAMK,GAAI,EAAA;MAApCJ,MAAQ,GAAAG,UAAA,CAARH,MAAQ;MAAAC,MAAA,GAAAE,UAAA,CAAAF,MAAA;MAAQC,KAAM,GAAAC,UAAA,CAAND,KAAM,CAAA;IAE9B,IAAIA,SAASR,QAAU,EAAA;AAEdW,MAAAA,MAAA,CAAAC,MAAA,CAAOL,QAAQD,MAAM,CAAA,CAAA;AAC5B,MAAA,SAAA;AACF,KAAA;AAEA,IAAA,KAAA,IAAAO,EAAA,GAAAC,CAAAA,EAAAA,eAAA,GAA2BH,MAAO,CAAAI,OAAA,CAAQT,MAAM,CAAG,EAAAO,EAAA,GAAAC,eAAA,CAAAZ,MAAA,EAAAW,EAAA,EAAA,EAAA;AAAnD,MAAA,IAAAG,kBAAA,GAAAC,cAAA,CAAAH,eAAA,CAAAD,EAAA,CAAA,EAAA,CAAA,CAAA;AAAYK,QAAAA,GAAK,GAAAF,kBAAA,CAAA,CAAA,CAAA;AAAArE,QAAAA,KAAK,GAAAqE,kBAAA,CAAA,CAAA,CAAA,CAAA;MACpB,IAAIrE,KAAS,IAAAwE,OAAA,CAAOxE,KAAU,CAAA,KAAA,QAAA,IAAY,UAAUA,KAAO,EAAA;AAEzD,QAAA,IAAMyE,YAAazE,KAA2B,CAAA0E,IAAA,CAAA;QACvCd,MAAA,CAAAW,GAAA,CAAA,GAAO7B,SAAU,CAAAF,IAAA,EAAMiC,SAAS,CAAA,CAAA;AACzC,OAAA,MAAA,IAAWzE,SAASwE,OAAA,CAAOxE,KAAA,CAAA,KAAU,YAAY,CAAC2E,KAAA,CAAMC,OAAQ,CAAA5E,KAAK,CAAG,EAAA;QAEtE,IAAM6E,eAAwC,EAAC,CAAA;AAC/CjB,QAAAA,MAAA,CAAOW,GAAO,CAAA,GAAAM,YAAA,CAAA;QACdnB,KAAA,CAAMoB,IAAK,CAAA;AACTnB,UAAAA,MAAQ,EAAA3D,KAAA;AACR4D,UAAAA,MAAQ,EAAAiB,YAAA;UACRhB,OAAOA,KAAQ,GAAA,CAAA;AACjB,SAAC,CAAA,CAAA;AACH,OAAO,MAAA;AAELD,QAAAA,MAAA,CAAOW,GAAO,CAAA,GAAAvE,KAAA,CAAA;AAChB,OAAA;AACF,KAAA;AACF,GAAA;AAEO,EAAA,OAAAyD,QAAA,CAAA;AACT,CAAA;AAcA,SAASsB,cAA8CA,CAAAnF,IAAA,EAS5B;AAAA,EAAA,IARzBC,OAAA,GAAAD,IAAA,CAAAC,OAAA;IACAmF,QAAA,GAAApF,IAAA,CAAAoF,QAAA;IACAC,QAAA,GAAArF,IAAA,CAAAqF,QAAA;IACAC,gBAAA,GAAAtF,IAAA,CAAAsF,gBAAA;IACAC,UAAA,GAAAvF,IAAA,CAAAuF,UAAA;IACAC,aAAA,GAAAxF,IAAA,CAAAwF,aAAA;IACAC,cAAA,GAAAzF,IAAA,CAAAyF,cAAA;IACAC,aAAA,GAAA1F,IAAA,CAAA0F,aAAA,CAAA;AAEA,EAAA,IAAAhD,QAAA,GAAsBC,OAAQ,EAAA;IAAtBC,IAAA,GAAAF,QAAA,CAAAE,IAAA;IAAMC,GAAI,GAAAH,QAAA,CAAJG,GAAI,CAAA;AAGZ,EAAA,IAAA3C,cAAA,GAMFD,OAAQ,CAAAE,KAAA;IALVkC,SAAA,GAAAnC,cAAA,CAAAmC,SAAA;IACAsD,YAAA,GAAAzF,cAAA,CAAAyF,YAAA;IACAC,MAAA,GAAA1F,cAAA,CAAA0F,MAAA;IACUC,cAAA,GAAA3F,cAAA,CAAVM,QAAU;AACPsF,IAAAA,cAAA,GAAArE,wBAAA,CAAAvB,cAAA,EAAAwB,WAAA,CAAA,CAAA;AASC,EAAA,IAAAqE,OAAA,GAAUC,OAAOpD,IAAI,CAAA,CAAA;EAC3BmD,OAAA,CAAQE,OAAU,GAAArD,IAAA,CAAA;AAGZ,EAAA,IAAAsD,UAAA,GAAaC,QAAQ,YAAM;AAC/B,IAAA,IAAI9D,SAAW,EAAA;AAAA,MAAA,IAAAH,UAAA,CAAA;AACN,MAAA,OAAA,CAAAA,UAAA,GAAAY,SAAA,CAAUF,IAAM,EAAAP,SAAS,CAAK,MAAAH,IAAAA,IAAAA,UAAA,KAAAA,KAAAA,CAAAA,GAAAA,UAAA,GAAA,EAAA,CAAA;AACvC,KAAA;AACO,IAAA,OAAA,KAAA,CAAA,CAAA;AACT,GAAA,EAAG,CAACG,SAAW,EAAAA,SAAA,GAAYS,UAAUF,IAAM,EAAAP,SAAS,CAAI,GAAA,KAAA,CAAS,CAAC,CAAA,CAAA;AAG5D,EAAA,IAAA+D,aAAA,GAAgBD,QAAQ,YAAM;AAClC,IAAA,IAAIR,YAAc,EAAA;MAChB,OAAOU,OAAQ,CAAAvD,SAAA,CAAUF,IAAM,EAAA+C,YAAY,CAAC,CAAA,CAAA;AAC9C,KAAA;AACA,IAAA,OAAOE,cAAkB,KAAlBA,IAAAA,IAAAA,cAAkB,KAAlBA,KAAAA,CAAAA,GAAAA,cAAkB,GAAA,KAAA,CAAA;AAC3B,GAAA,EAAG,CAACF,YAAA,EAAcA,YAAe,GAAA7C,SAAA,CAAUF,MAAM+C,YAAY,CAAA,GAAI,KAAW,CAAA,EAAAE,cAAc,CAAC,CAAA,CAAA;AAGrF,EAAA,IAAAS,MAAA,GAASN,OAAOnD,GAAG,CAAA,CAAA;EACzByD,MAAA,CAAOL,OAAU,GAAApD,GAAA,CAAA;AAGX,EAAA,IAAAE,YAAA,GAAewD,WAAY,CAAA,UAACvD,QAAsB,EAAA;AACtD,IAAA,IAAIX,SAAW,EAAA;AACNiE,MAAAA,MAAA,CAAAL,OAAA,CAAQ5D,WAAWW,QAAQ,CAAA,CAAA;AACpC,KAAA;AACF,GAAA,EAAG,CAACX,SAAS,CAAC,CAAA,CAAA;AAGR,EAAA,IAAAmE,YAAA,GAAeD,YAAY,YAAM;AACjC,IAAA,IAAA,CAACX,UAAU,CAACP,QAAA,EAAU,OAAA;AAGpB,IAAA,IAAAoB,SAAA,GAAoB,OAAOb,MAAA,KAAW,QACxC,GAAA;AAAEc,MAAAA,MAAMd,MAAQ;AAAApC,MAAAA,MAAA,EAAQ,EAAC;AAAE,KAC3B,GAAAoC,MAAA,CAAA;AAGE,IAAA,IAAAe,cAAA,GAAiBF,UAAUjD,MAC7B,GAAAD,mBAAA,CAAoBkD,UAAUjD,MAAmC,EAAAuC,OAAA,CAAQE,OAAO,CAAA,GAChF,EAAC,CAAA;AAEL,IAAA,IAAMW,cAAyB,GAAA;MAC7BF,MAAMD,SAAU,CAAAC,IAAA;AAChBlD,MAAAA,MAAQ,EAAAmD,cAAAA;KACV,CAAA;IAEAtB,QAAA,CAASuB,cAAc,CAAA,CAAA;AACzB,GAAG,EAAA,CAAChB,MAAQ,EAAAP,QAAQ,CAAC,CAAA,CAAA;AAGf,EAAA,IAAAwB,UAAA,GAAaV,QAAQ,YAAM;AAC/B,IAAA,IAAMhG,KAAa,GAAA2B,eAAA,CAAAA,eAAA,KACdgE,cAAA,CAAA,EAAA,EAAA,EAAA;AACHtF,MAAAA,QAAU,EAAA4F,aAAAA;KACZ,CAAA,CAAA;AAGA,IAAA,IAAI/D,cAAc,KAAW,CAAA,EAAA;AAC3BlC,MAAAA,KAAA,CAAMoF,UAAc,CAAA,GAAAW,UAAA,CAAA;AACpB/F,MAAAA,KAAA,CAAMqF,aAAiB,CAAA,GAAAzC,YAAA,CAAA;AACzB,KAAA;IAGA,IAAI0C,kBAAkBG,MAAQ,EAAA;AAC5B,MAAA,IAAMkB,kBAAkBhB,cAAe,CAAAJ,aAAA,CAAA,CAAA;AACjCvF,MAAAA,KAAA,CAAAuF,aAAA,CAAA,GAAiB,YAAwB;AAEzC,QAAA,IAAA,OAAOoB,oBAAoB,UAAY,EAAA;AACzCA,UAAAA,eAAA,CAAAC,KAAA,CAAArD,KAAAA,CAAAA,EAAAA,SAAuB,CAAA,CAAA;AACzB,SAAA;AAEA8C,QAAAA,YAAA,CAAAO,KAAA,CAAArD,KAAAA,CAAAA,EAAAA,SAAoB,CAAA,CAAA;OACtB,CAAA;AACF,KAAA;AAEO,IAAA,OAAAvD,KAAA,CAAA;GACN,EAAA,CACD2F,cAAA,EACAM,aAAA,EACA/D,SAAA,EACAkD,UAAA,EACAW,UAAA,EACAV,aAAA,EACAzC,YAAA,EACA0C,cAAA,EACAG,MAAA,EACAF,aAAA,EACAc,YAAA,CACD,CAAA,CAAA;AAED,EAAA,sBACG7E,KAAA,CAAAC,aAAA,CAAA0D,gBAAA,EAAAxD,eAAA,CAAqB+E,EAAAA,EAAAA,UAAA,CACnBzB,EAAAA,QACH,CAAA,CAAA;AAEJ,CAAA;AAUO,SAAS4B,eACdA,CAAA1B,gBAAA,EAEgC;AAAA,EAAA,IADhC2B,MAA4B,GAAAvD,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAA,EACI,CAAA;AAC1B,EAAA,IAAAwD,kBAAA,GAKFD,MAAA,CAJF1B,UAAa;AAAbA,IAAAA,UAAa,GAAA2B,kBAAA,KAAA,KAAA,CAAA,GAAA,OAAA,GAAAA,kBAAA;IAAAC,qBAAA,GAIXF,MAAA,CAHFzB,aAAgB;AAAhBA,IAAAA,aAAgB,GAAA2B,qBAAA,KAAA,KAAA,CAAA,GAAA,UAAA,GAAAA,qBAAA;IAAAC,qBAAA,GAGdH,MAAA,CAFFxB,cAAiB;AAAjBA,IAAAA,cAAiB,GAAA2B,qBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,GAAAA,qBAAA;IAAAC,qBAAA,GAEfJ,MAAA,CADFvB,aAAgB;AAAhBA,IAAAA,aAAgB,GAAA2B,qBAAA,KAAA,KAAA,CAAA,GAAA,SAAA,GAAAA,qBAAA,CAAA;AAGZ,EAAA,IAAAC,kBAAA,GAAqD,SAArDA,kBAAAA,CAAsDnH,KAAU,EAAA;IACpE,sBACGwB,KAAA,CAAAC,aAAA,CAAAuD,cAAA,EAAArD,eAAA,CAAAA,eAAA,CAAA,EAAA,EACK3B,KAAA,CAAA,EAAA,EAAA,EAAA;AACJmF,MAAAA,gBAAA,EAAAA,gBAAA;AACAC,MAAAA,UAAA,EAAAA,UAAA;AACAC,MAAAA,aAAA,EAAAA,aAAA;AACAC,MAAAA,cAAA,EAAAA,cAAA;AACAC,MAAAA,aAAA,EAAAA,aAAAA;AAAA,KAAA,CACF,CAAA,CAAA;GAEJ,CAAA;AAEA4B,EAAAA,kBAAA,CAAmBvF,WAAc,GAAAwF,kBAAAA,CAAAA,MAAA,CAAmBjC,gBAAiB,CAAAvD,WAAA,IAAeuD,iBAAiBoB,IAAQ,IAAA,WAAA,EAAA,GAAA,CAAA,CAAA;EAG7G,oBAAOc,IAAK,CAAAF,kBAAA,EAAoB,UAACG,SAAA,EAAWC,SAAc,EAAA;IAEpD,IAAAD,SAAA,CAAUxH,YAAYyH,SAAU,CAAAzH,OAAA,EAAgB,OAAA,IAAA,CAAA;AAGpD,IAAA,IAAM0H,SAASF,SAAU,CAAAxH,OAAA,CAAA;AACzB,IAAA,IAAM2H,SAASF,SAAU,CAAAzH,OAAA,CAAA;IAErB,IAAA0H,MAAA,CAAO7G,SAAS8G,MAAO,CAAA9G,IAAA,EAAa,OAAA,KAAA,CAAA;IACpC,IAAA6G,MAAA,CAAOhD,QAAQiD,MAAO,CAAAjD,GAAA,EAAY,OAAA,KAAA,CAAA;AAGhC,IAAA,IAAAkD,WAAA,GAAcF,MAAO,CAAAxH,KAAA,IAAS,EAAC,CAAA;AAC/B,IAAA,IAAA2H,WAAA,GAAcF,MAAO,CAAAzH,KAAA,IAAS,EAAC,CAAA;AAC/B,IAAA,IAAA4H,QAAA,GAAW3D,MAAO,CAAA4D,IAAA,CAAKH,WAAW,CAAA,CAAA;AAClC,IAAA,IAAAI,QAAA,GAAW7D,MAAO,CAAA4D,IAAA,CAAKF,WAAW,CAAA,CAAA;IAEpC,IAAAC,QAAA,CAASpE,WAAWsE,QAAS,CAAAtE,MAAA,EAAe,OAAA,KAAA,CAAA;AAEhD,IAAA,KAAA,IAAAuE,GAAA,GAAA,CAAA,EAAAC,SAAA,GAAkBJ,QAAU,EAAAG,GAAA,GAAAC,SAAA,CAAAxE,MAAA,EAAAuE,GAAA,EAAA,EAAA;AAA5B,MAAA,IAAWvD;MACL,IAAAkD,WAAA,CAAYlD,SAASmD,WAAY,CAAAnD,GAAA,CAAA,EAAa,OAAA,KAAA,CAAA;AACpD,KAAA;AAEO,IAAA,OAAA,IAAA,CAAA;AACT,GAAC,CAAA,CAAA;AACH;;;;;;ACxQA,IAAMyD,YAAuD,SAAvDA,gBAGA;AAAA,EAAA,IAFJhG,KAAA,GAAApC,IAAA,CAAAoC,KAAA;AACGjC,IAAAA,KAAA,GAAAsB,wBAAA,CAAAzB,IAAA,EAAA0B,SAAA,CAAA,CAAA;AAEH,EAAA,IAAIU,KAAO,EAAA;AACT,IAAA,sBACGT,KAAA,CAAAC,aAAA,CAAAqB,KAAA,EAAA;AAAMC,MAAAA,SAAU,EAAA,UAAA;AAAWtC,MAAAA,IAAM,EAAA,CAAA;AAAGuC,MAAAA,KAAA,EAAO;AAAEC,QAAAA,KAAA,EAAO,MAAA;AAAO,OAAA;AAAA,KAAA,iBACzDzB,KAAA,CAAAC,aAAA,CAAA,OAAA,EAAA;AAAMuB,MAAAA,KAAO,EAAA;AAAEE,QAAAA,QAAU,EAAA,MAAA;AAAQC,QAAAA,YAAY,GAAA;AAAI,OAAA;AAAI,KAAA,EAAAlB,KAAM,kBAC3DT,KAAA,CAAAC,aAAA,CAAAC,KAAA,EAAAC,eAAA,CAAA,EAAA,EAAU3B,KAAA,CAAO,CACpB,CAAA,CAAA;AAEJ,GAAA;EACA,sBAAQwB,KAAA,CAAAC,aAAA,CAAAC,KAAA,EAAAC,eAAA,CAAA,EAAA,EAAU3B,KAAA,CAAO,CAAA,CAAA;AAC3B,CAAA,CAAA;AAEAiI,SAAA,CAAUrG,WAAc,GAAA,WAAA,CAAA;AAMxB,IAAMsG,aAAyD,SAAzDA,kBAIA;AAAA,EAAA,IAHJjG,KAAA,GAAAH,KAAA,CAAAG,KAAA;IACAgD,QAAA,GAAAnD,KAAA,CAAAmD,QAAA;AACGjF,IAAAA,KAAA,GAAAsB,wBAAA,CAAAQ,KAAA,EAAAQ,UAAA,CAAA,CAAA;AAEH,EAAA,IAAM6F,UAAUlG,KAAS,IAAAgD,QAAA,CAAA;AACzB,EAAA,sBAAQzD,KAAA,CAAAC,aAAA,CAAA2G,MAAA,EAAAzG,eAAA,CAAW3B,EAAAA,EAAAA,KAAA,CAAQmI,EAAAA,OAAQ,CAAA,CAAA;AACrC,CAAA,CAAA;AAEAD,UAAA,CAAWtG,WAAc,GAAA,YAAA,CAAA;IAQZyG,aAAgB,GAAAxB,eAAA,CAC3BoB,SAAA,EACA;AACE7C,EAAAA,UAAY,EAAA,OAAA;AACZC,EAAAA,aAAe,EAAA,UAAA;AACfC,EAAAA,cAAgB,EAAA,KAAA;AAClB,CACF,EAAA;IAMagD,UAAa,GAAAzB,eAAA,CACxBqB,UAAA,EACA;AACE5C,EAAAA,cAAgB,EAAA,IAAA;AAClB,CACF,EAAA;AAsBO,IAAMiD,YAAkC,GAAA;AAE7CC,EAAAA,SAAW,EAAAH,aAAA;AACXD,EAAAA,MAAQ,EAAAE,UAAA;AAGRG,EAAAA,IAAM,EAAAC,cAAA;AACNC,EAAAA,IAAM,EAAAC,cAAA;AACNC,EAAAA,GAAK,EAAAC,aAAA;AACLC,EAAAA,GAAK,EAAAC,aAAA;AACLlG,EAAAA,KAAO,EAAAmG,eAAA;AACPC,EAAAA,MAAQ,EAAAC,gBAAA;AACRC,EAAAA,OAAS,EAAAC,iBAAAA;AACX,EAAA;AAuBO,SAASC,mBACdC,gBACmB,EAAA;AACZ,EAAA,OAAA5H,eAAA,CAAAA,eAAA,CACF4G,EAAAA,EAAAA,YAAA,GACAgB,gBAAA,CAAA,CAAA;AAEP;;;;AC3CgB,SAAAC,8BAAAA,GAEsC;AAAA,EAAA,IADpDC,OAA2C,GAAAlG,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAA,EACS,CAAA;AAC9C,EAAA,IAAAmG,qBAAA,GAMFD,OAAA,CALFE,YAAe;AAAfA,IAAAA,YAAe,GAAAD,qBAAA,KAAA,KAAA,CAAA,GAAA,aAAA,GAAAA,qBAAA;IAAAE,iBAAA,GAKbH,OAAA,CAJFI,QAAW;AAAXA,IAAAA,QAAW,GAAAD,iBAAA,KAAAE,KAAAA,CAAAA,GAAAA,eAAA,GAAAF,iBAAA;IAAAG,qBAAA,GAITN,OAAA,CAHFO;AAAAA,IAAAA,oDAAiB,EAAC,GAAAD,qBAAA;IAAAE,cAAA,GAGhBR,OAAA,CAFFS,KAAQ;AAARA,IAAAA,KAAQ,GAAAD,cAAA,KAAA,KAAA,CAAA,GAAA,KAAA,GAAAA,cAAA;IAAAE,oBAAA,GAENV,OAAA,CADFW,WAAc;AAAdA,IAAAA,WAAc,GAAAD,oBAAA,KAAA,KAAA,CAAA,GAAA,gDAAA,GAAAA,oBAAA,CAAA;EAGT,OAAA;AACLR,IAAAA,YAAA,EAAAA,YAAA;AACAU,IAAAA,SAAW,eAAA7I,KAAA,CAAM6F,IAAK,CAAA,UAACrH;4BACpBwB,KAAA,CAAAC,aAAA,CAAA6I,0BAAA,EAAA3I,eAAA,CAAAA,eAAA,CAAA,EAAA,EACK3B,KAAA,CAAA,EAAA,EAAA,EAAA;AACJ6J,QAAAA,QAAA,EAAAA,QAAA;AACAG,QAAAA,cAAA,EAAAA,cAAA;AACAE,QAAAA,KAAA,EAAAA,KAAAA;AAAA,OAAA,CACF,CACD,CAAA;KAAA,CAAA;AACDE,IAAAA,WAAA,EAAAA,WAAAA;GACF,CAAA;AACF,CAAA;AAyBgB,SAAAG,kCAAAA,GAEO;AAAA,EAAA,IADrBd,OAA2C,GAAAlG,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAA,EACtB,CAAA;AACf,EAAA,IAAAiH,sBAAA,GAMFf,OAAA,CALFE,YAAe;AAAfA,IAAAA,YAAe,GAAAa,sBAAA,KAAA,KAAA,CAAA,GAAA,kBAAA,GAAAA,sBAAA;IAAAC,kBAAA,GAKbhB,OAAA,CAJFI,QAAW;AAAXA,IAAAA,QAAW,GAAAY,kBAAA,KAAAlC,KAAAA,CAAAA,GAAAA,YAAA,GAAAkC,kBAAA;IAAAC,sBAAA,GAITjB,OAAA,CAHFO;AAAAA,IAAAA,qDAAiB,EAAC,GAAAU,sBAAA;IAAAC,eAAA,GAGhBlB,OAAA,CAFFS,KAAQ;AAARA,IAAAA,KAAQ,GAAAS,eAAA,KAAA,KAAA,CAAA,GAAA,KAAA,GAAAA,eAAA;IAAAC,qBAAA,GAENnB,OAAA,CADFW,WAAc;AAAdA,IAAAA,WAAc,GAAAQ,qBAAA,KAAA,KAAA,CAAA,GAAA,mDAAA,GAAAA,qBAAA,CAAA;EAGT,OAAA;AACLjB,IAAAA,YAAA,EAAAA,YAAA;AACAU,IAAAA,SAAW,eAAA7I,KAAA,CAAM6F,IAAK,CAAA,UAACrH;4BACpBwB,KAAA,CAAAC,aAAA,CAAAoJ,8BAAA,EAAAlJ,eAAA,CAAAA,eAAA,CAAA,EAAA,EACK3B,KAAA,CAAA,EAAA,EAAA,EAAA;AACJ6J,QAAAA,QAAA,EAAAA,QAAA;AACAG,QAAAA,cAAA,EAAAA,cAAA;AACAE,QAAAA,KAAA,EAAAA,KAAAA;AAAA,OAAA,CACF,CACD,CAAA;KAAA,CAAA;AACDE,IAAAA,WAAA,EAAAA,WAAAA;GACF,CAAA;AACF;;;;ACrJO,SAASU,gBACdC,SACmD,EAAA;EACnD,oBAAOvJ,KAAM,CAAA6F,IAAA,CAAK0D,SAAW,EAAA,UAACzD,WAAWC,SAAc,EAAA;AACrD,IAAA,IAAMyD,cAAc1D,SAAU,CAAAxH,OAAA,CAAA;AAC9B,IAAA,IAAMmL,cAAc1D,SAAU,CAAAzH,OAAA,CAAA;AAI1B,IAAA,IAAAwH,SAAA,CAAUrC,QAAa,KAAAsC,SAAA,CAAUtC,QAAU,EAAA;AACtC,MAAA,OAAA,KAAA,CAAA;AACT,KAAA;AAGA,IAAA,IAAI+F,WAAgB,KAAAC,WAAA,EAAoB,OAAA,IAAA,CAAA;AAGxC,IAAA,IAAID,YAAYE,EAAO,KAAAD,WAAA,CAAYC,MAAMF,WAAY,CAAArK,IAAA,KAASsK,YAAYtK,IAAM,EAAA;AACvE,MAAA,OAAA,KAAA,CAAA;AACT,KAAA;IAGA,OAAOwK,gBAAQ,CAAAH,WAAA,CAAYhL,KAAO,EAAAiL,WAAA,CAAYjL,KAAK,CAAA,CAAA;AACrD,GAAC,CAAA,CAAA;AACH,CAAA;AAqCO,IAAM8J,eAAqC,GAAA;AAEhD1B,EAAAA,MAAQ,EAAAgD,gBAAA;AACR1J,EAAAA,KAAO,EAAA9B,eAAA;AACP4I,EAAAA,SAAW,EAAA3G,mBAAA;AACX4G,EAAAA,IAAM,EAAAC,cAAA;AACNC,EAAAA,IAAM,EAAAC,cAAA;AAGNC,EAAAA,GAAK,EAAAC,aAAA;AACLC,EAAAA,GAAK,EAAAC,aAAA;AACLlG,EAAAA,KAAO,EAAAmG,eAAA;AACPC,EAAAA,MAAQ,EAAAC,gBAAA;AACRC,EAAAA,OAAS,EAAAC,iBAAA;AAGTgC,EAAAA,MAAQ,EAAAD,gBAAA;AACRE,EAAAA,KAAO,EAAA1L,eAAA;AACP2L,EAAAA,SAAW,EAAA1J,mBAAA;AACX2J,EAAAA,IAAM,EAAA9C,cAAA;AACN+C,EAAAA,IAAM,EAAA7C,cAAA;AACN8C,EAAAA,GAAK,EAAA5C,aAAA;AACL6C,EAAAA,GAAK,EAAA3C,aAAA;AACL4C,EAAAA,KAAO,EAAA3C,eAAA;AACP4C,EAAAA,MAAQ,EAAA1C,gBAAA;AACR2C,EAAAA,OAAS,EAAAzC,iBAAAA;AACX,EAAA;AAyDO,SAAS0C,oBACdA,CAAAxC,gBAAA,EAEmB;AAAA,EAAA,IADnBE,OAAuC,GAAAlG,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAA,EACpB,CAAA;AACb,EAAA,IAAAyI,qBAAA,GAA+BvC,OAAA,CAA7BwC,iBAAoB;AAApBA,IAAAA,iBAAoB,GAAAD,qBAAA,KAAA,KAAA,CAAA,GAAA,IAAA,GAAAA,qBAAA,CAAA;EAG5B,IAAME,sBAAyC,EAAC,CAAA;AAEhD,EAAA,IAAID,iBAAmB,EAAA;AACrB,IAAA,KAAA,IAAA9H,EAAA,GAAAC,CAAAA,EAAAA,eAAA,GAAgCH,MAAO,CAAAI,OAAA,CAAQkF,gBAAgB,CAAG,EAAApF,EAAA,GAAAC,eAAA,CAAAZ,MAAA,EAAAW,EAAA,EAAA,EAAA;AAAlE,MAAA,IAAAG,kBAAA,GAAAC,cAAA,CAAAH,eAAA,CAAAD,EAAA,CAAA,EAAA,CAAA,CAAA;AAAYoC,QAAAA,IAAM,GAAAjC,kBAAA,CAAA,CAAA,CAAA;AAAAyG,QAAAA,SAAS,GAAAzG,kBAAA,CAAA,CAAA,CAAA,CAAA;AACL4H,MAAAA,mBAAA,CAAA3F,IAAA,CAAA,GAAQuE,gBAAgBC,SAAsD,CAAA,CAAA;AACpG,KAAA;AACF,GAAO,MAAA;AACE9G,IAAAA,MAAA,CAAAC,MAAA,CAAOgI,qBAAqB3C,gBAAgB,CAAA,CAAA;AACrD,GAAA;AAEO,EAAA,OAAA5H,aAAA,CAAAA,aAAA,CACFmI,EAAAA,EAAAA,eAAA,GACAoC,mBAAA,CAAA,CAAA;AAEP;;;;"}
|