@tdesign-react/chat 1.0.2-alpha.8 → 1.1.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/_chunks/dep-f2051ebd.js +839 -0
- package/es/_chunks/dep-f2051ebd.js.map +1 -0
- package/es/_util/reactify.d.ts +1 -2
- package/es/_util/reactify.js +81 -231
- 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/_example-js/base.d.ts +2 -0
- package/es/chat-actionbar/_example-js/custom.d.ts +2 -0
- package/es/chat-actionbar/_example-js/style.d.ts +2 -0
- package/es/chat-actionbar/index.js +4 -6
- package/es/chat-actionbar/index.js.map +1 -1
- package/es/chat-attachments/_example-js/base.d.ts +2 -0
- package/es/chat-attachments/_example-js/scroll-x.d.ts +2 -0
- package/es/chat-attachments/_example-js/scroll-y.d.ts +2 -0
- package/es/chat-attachments/index.js +3 -1
- package/es/chat-attachments/index.js.map +1 -1
- package/es/chat-engine/_example-js/agui-basic.d.ts +10 -0
- package/es/chat-engine/_example-js/agui-comprehensive.d.ts +2 -0
- package/es/chat-engine/_example-js/agui-test.d.ts +11 -0
- package/es/chat-engine/_example-js/agui-toolcall.d.ts +5 -0
- package/es/chat-engine/_example-js/agui-videoclip.d.ts +8 -0
- package/es/chat-engine/_example-js/agui.d.ts +1 -0
- package/es/chat-engine/_example-js/basic.d.ts +9 -0
- package/es/chat-engine/_example-js/components/HotelCard.d.ts +3 -0
- package/es/chat-engine/_example-js/components/HumanInputForm.d.ts +6 -0
- package/es/chat-engine/_example-js/components/HumanInputResult.d.ts +3 -0
- package/es/chat-engine/_example-js/components/ItineraryCard.d.ts +3 -0
- package/es/chat-engine/_example-js/components/PlanningStatePanel.d.ts +4 -0
- package/es/chat-engine/_example-js/components/Toolcall.d.ts +4 -0
- package/es/chat-engine/_example-js/components/WeatherCard.d.ts +3 -0
- package/es/chat-engine/_example-js/components/login.d.ts +1 -0
- package/es/chat-engine/_example-js/comprehensive.d.ts +12 -0
- package/es/chat-engine/_example-js/custom-content.d.ts +1 -0
- package/es/chat-engine/_example-js/hookComponent.d.ts +1 -0
- package/es/chat-engine/_example-js/initial-messages.d.ts +9 -0
- package/es/chat-engine/_example-js/instance-methods.d.ts +13 -0
- package/es/chat-engine/_example-js/travel-actions.d.ts +91 -0
- package/es/chat-engine/_example-js/travelToolcall.d.ts +1 -0
- 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/{chatbot/components/toolcall → chat-engine/components/activity}/index.d.ts +1 -0
- package/es/chat-engine/components/activity/index.js +18 -0
- package/es/chat-engine/components/activity/index.js.map +1 -0
- package/es/chat-engine/components/activity/registry.d.ts +44 -0
- package/es/{chatbot/components/toolcall → chat-engine/components/activity}/registry.js +32 -22
- package/es/chat-engine/components/activity/registry.js.map +1 -0
- package/es/chat-engine/components/activity/render.d.ts +11 -0
- package/es/chat-engine/components/activity/render.js +107 -0
- package/es/chat-engine/components/activity/render.js.map +1 -0
- package/es/chat-engine/components/activity/types.d.ts +32 -0
- package/es/chat-engine/components/activity/types.js +7 -0
- package/es/chat-engine/components/activity/types.js.map +1 -0
- package/es/chat-engine/components/index.d.ts +4 -0
- package/es/chat-engine/components/index.js +76 -0
- package/es/chat-engine/components/index.js.map +1 -0
- 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/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/index.d.ts +127 -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 +549 -0
- package/es/chat-engine/components/json-render/catalog.js +147 -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 +74 -0
- package/es/chat-engine/components/json-render/contexts/actions.js +290 -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 +45 -0
- package/es/chat-engine/components/json-render/contexts/data.js +104 -0
- package/es/chat-engine/components/json-render/contexts/data.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 +151 -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 +29 -0
- package/es/chat-engine/components/json-render/contexts/visibility.js +56 -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 +34 -0
- package/es/chat-engine/components/json-render/index.js +36 -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/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 +69 -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 +39 -2
- package/es/chat-engine/components/provider/agent-state.js.map +1 -1
- package/es/chat-engine/components/toolcall/index.js +35 -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 +102 -26
- 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/agui/activity-manager.d.ts +102 -0
- package/es/chat-engine/core/adapters/agui/activity-manager.js +144 -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 +415 -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 +95 -0
- package/es/chat-engine/core/adapters/agui/index.js +195 -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 +168 -0
- package/es/chat-engine/core/adapters/agui/state-manager.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/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 +754 -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 +263 -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 +65 -0
- package/es/chat-engine/core/store/model.js.map +1 -0
- package/es/chat-engine/core/store/reactiveState.d.ts +52 -0
- package/es/chat-engine/core/store/reactiveState.js +1359 -0
- package/es/chat-engine/core/store/reactiveState.js.map +1 -0
- package/es/chat-engine/core/type.d.ts +271 -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/index.d.ts +33 -0
- package/es/chat-engine/core/utils/index.js +999 -0
- package/es/chat-engine/core/utils/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/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/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.d.ts +4 -0
- package/es/chat-engine/hooks/index.js +54 -0
- package/es/chat-engine/hooks/index.js.map +1 -0
- package/es/chat-engine/hooks/useAgentActivity.d.ts +15 -0
- package/es/chat-engine/hooks/useAgentActivity.js +73 -0
- package/es/chat-engine/hooks/useAgentActivity.js.map +1 -0
- package/es/chat-engine/hooks/useAgentState.js +39 -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 +3 -3
- package/es/chat-engine/hooks/useChat.js +41 -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 +3 -3
- package/es/chat-engine/index.js +61 -5
- package/es/chat-engine/index.js.map +1 -1
- package/es/chat-filecard/_example-js/base.d.ts +1 -0
- package/es/chat-filecard/index.js +4 -6
- package/es/chat-filecard/index.js.map +1 -1
- package/es/chat-loading/_example-js/base.d.ts +2 -0
- package/es/chat-loading/_example-js/text.d.ts +2 -0
- package/es/chat-loading/index.js +4 -6
- package/es/chat-loading/index.js.map +1 -1
- package/es/chat-markdown/_example-js/base.d.ts +1 -0
- package/es/chat-markdown/_example-js/custom.d.ts +2 -0
- package/es/chat-markdown/_example-js/event.d.ts +1 -0
- package/es/chat-markdown/_example-js/footnote.d.ts +2 -0
- package/es/chat-markdown/_example-js/plugin.d.ts +2 -0
- package/es/chat-markdown/_example-js/theme.d.ts +2 -0
- package/es/chat-markdown/index.js +4 -6
- package/es/chat-markdown/index.js.map +1 -1
- package/es/chat-message/_example-js/action.d.ts +1 -0
- package/es/chat-message/_example-js/base.d.ts +1 -0
- package/es/chat-message/_example-js/configure.d.ts +1 -0
- package/es/chat-message/_example-js/content.d.ts +1 -0
- package/es/chat-message/_example-js/custom.d.ts +1 -0
- package/es/chat-message/_example-js/handle-actions.d.ts +7 -0
- package/es/chat-message/_example-js/status.d.ts +1 -0
- package/es/chat-message/_example-js/think.d.ts +1 -0
- package/es/chat-message/index.js +4 -6
- package/es/chat-message/index.js.map +1 -1
- package/es/chat-sender/_example-js/attachment.d.ts +2 -0
- package/es/chat-sender/_example-js/base.d.ts +2 -0
- package/es/chat-sender/_example-js/custom.d.ts +2 -0
- package/es/chat-sender/index.js +4 -6
- package/es/chat-sender/index.js.map +1 -1
- package/es/chat-thinking/_example-js/base.d.ts +1 -0
- package/es/chat-thinking/_example-js/style.d.ts +1 -0
- package/es/chat-thinking/index.js +4 -6
- package/es/chat-thinking/index.js.map +1 -1
- package/es/chatbot/_example-js/agent.d.ts +1 -0
- package/es/chatbot/_example-js/agui.d.ts +13 -0
- package/es/chatbot/_example-js/backup/travel.d.ts +1 -0
- package/es/chatbot/_example-js/basic.d.ts +1 -0
- package/es/chatbot/_example-js/code.d.ts +1 -0
- package/es/chatbot/_example-js/components/ItineraryCard.d.ts +3 -0
- package/es/chatbot/_example-js/components/login.d.ts +1 -0
- package/es/chatbot/_example-js/comprehensive.d.ts +1 -0
- package/es/chatbot/_example-js/custom-content.d.ts +1 -0
- package/es/chatbot/_example-js/custom-merge.d.ts +1 -0
- package/es/chatbot/_example-js/custom.d.ts +1 -0
- package/es/chatbot/_example-js/docs.d.ts +1 -0
- package/es/chatbot/_example-js/image.d.ts +1 -0
- package/es/chatbot/_example-js/initial-messages.d.ts +9 -0
- package/es/chatbot/_example-js/instance-methods.d.ts +14 -0
- package/es/chatbot/_example-js/nostream.d.ts +1 -0
- package/es/chatbot/_example-js/quick-start.d.ts +9 -0
- package/es/chatbot/_example-js/research.d.ts +1 -0
- package/es/chatbot/_example-js/role-message-config.d.ts +22 -0
- package/es/chatbot/_example-js/sender-config.d.ts +20 -0
- package/es/chatbot/_example-js/service-config.d.ts +17 -0
- package/es/chatbot/_example-js/simple.d.ts +1 -0
- package/es/chatbot/_example-js/utils/messageRenderer.d.ts +5 -0
- 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 +59 -9
- package/es/index.js.map +1 -1
- package/es/style/index.js +1 -1
- package/package.json +6 -3
- package/es/chatbot/components/provider/agent-state.d.ts +0 -5
- package/es/chatbot/components/provider/agent-state.js +0 -28
- package/es/chatbot/components/provider/agent-state.js.map +0 -1
- package/es/chatbot/components/toolcall/index.js +0 -19
- package/es/chatbot/components/toolcall/registry.d.ts +0 -35
- package/es/chatbot/components/toolcall/registry.js.map +0 -1
- package/es/chatbot/components/toolcall/render.d.ts +0 -13
- package/es/chatbot/components/toolcall/render.js +0 -207
- package/es/chatbot/components/toolcall/render.js.map +0 -1
- package/es/chatbot/components/toolcall/types.d.ts +0 -57
- package/es/chatbot/components/toolcall/types.js +0 -15
- package/es/chatbot/components/toolcall/types.js.map +0 -1
- package/es/chatbot/hooks/useAgentState.d.ts +0 -40
- package/es/chatbot/hooks/useAgentState.js +0 -76
- package/es/chatbot/hooks/useAgentState.js.map +0 -1
- package/es/chatbot/hooks/useAgentToolcall.d.ts +0 -28
- package/es/chatbot/hooks/useAgentToolcall.js +0 -78
- package/es/chatbot/hooks/useAgentToolcall.js.map +0 -1
- package/es/chatbot/hooks/useChat.d.ts +0 -11
- package/es/chatbot/hooks/useChat.js +0 -66
- package/es/chatbot/hooks/useChat.js.map +0 -1
- /package/es/{chatbot/components/toolcall → chat-engine/hooks/a2ui}/index.js.map +0 -0
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
import { type DataModel, type AuthState } from "@json-render/core";
|
|
3
|
+
/**
|
|
4
|
+
* Data context value
|
|
5
|
+
*/
|
|
6
|
+
export interface DataContextValue {
|
|
7
|
+
/** The current data model */
|
|
8
|
+
data: DataModel;
|
|
9
|
+
/** Auth state for visibility evaluation */
|
|
10
|
+
authState?: AuthState;
|
|
11
|
+
/** Get a value by path */
|
|
12
|
+
get: (path: string) => unknown;
|
|
13
|
+
/** Set a value by path */
|
|
14
|
+
set: (path: string, value: unknown) => void;
|
|
15
|
+
/** Update multiple values at once */
|
|
16
|
+
update: (updates: Record<string, unknown>) => void;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Props for DataProvider
|
|
20
|
+
*/
|
|
21
|
+
export interface DataProviderProps {
|
|
22
|
+
/** Initial data model */
|
|
23
|
+
initialData?: DataModel;
|
|
24
|
+
/** Auth state */
|
|
25
|
+
authState?: AuthState;
|
|
26
|
+
/** Callback when data changes */
|
|
27
|
+
onDataChange?: (path: string, value: unknown) => void;
|
|
28
|
+
children: ReactNode;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Provider for data model context
|
|
32
|
+
*/
|
|
33
|
+
export declare function DataProvider({ initialData, authState, onDataChange, children, }: DataProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
34
|
+
/**
|
|
35
|
+
* Hook to access the data context
|
|
36
|
+
*/
|
|
37
|
+
export declare function useData(): DataContextValue;
|
|
38
|
+
/**
|
|
39
|
+
* Hook to get a value from the data model
|
|
40
|
+
*/
|
|
41
|
+
export declare function useDataValue<T>(path: string): T | undefined;
|
|
42
|
+
/**
|
|
43
|
+
* Hook to get and set a value from the data model (like useState)
|
|
44
|
+
*/
|
|
45
|
+
export declare function useDataBinding<T>(path: string): [T | undefined, (value: T) => void];
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* tdesign v1.0.2-alpha.15
|
|
3
|
+
* (c) 2026 tdesign
|
|
4
|
+
* @license MIT
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import _typeof from '@babel/runtime/helpers/typeof';
|
|
8
|
+
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
9
|
+
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
10
|
+
import React, { createContext, useState, useEffect, useCallback, useMemo, useContext } from 'react';
|
|
11
|
+
import { getByPath, setByPath } from '@json-render/core';
|
|
12
|
+
|
|
13
|
+
"use client";
|
|
14
|
+
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; }
|
|
15
|
+
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; }
|
|
16
|
+
var DataContext = /*#__PURE__*/createContext(null);
|
|
17
|
+
function DataProvider(_ref) {
|
|
18
|
+
var _ref$initialData = _ref.initialData,
|
|
19
|
+
initialData = _ref$initialData === void 0 ? {} : _ref$initialData,
|
|
20
|
+
authState = _ref.authState,
|
|
21
|
+
onDataChange = _ref.onDataChange,
|
|
22
|
+
children = _ref.children;
|
|
23
|
+
var _useState = useState(initialData),
|
|
24
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
25
|
+
data = _useState2[0],
|
|
26
|
+
setData = _useState2[1];
|
|
27
|
+
useEffect(function () {
|
|
28
|
+
setData(function (prev) {
|
|
29
|
+
var next = _objectSpread({}, prev);
|
|
30
|
+
for (var _i = 0, _Object$entries = Object.entries(initialData); _i < _Object$entries.length; _i++) {
|
|
31
|
+
var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),
|
|
32
|
+
key = _Object$entries$_i[0],
|
|
33
|
+
value2 = _Object$entries$_i[1];
|
|
34
|
+
if (_typeof(value2) === "object" && value2 !== null && !Array.isArray(value2) && _typeof(next[key]) === "object" && next[key] !== null) {
|
|
35
|
+
next[key] = _objectSpread(_objectSpread({}, next[key]), value2);
|
|
36
|
+
} else {
|
|
37
|
+
next[key] = value2;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return next;
|
|
41
|
+
});
|
|
42
|
+
}, [initialData]);
|
|
43
|
+
var get = useCallback(function (path) {
|
|
44
|
+
return getByPath(data, path);
|
|
45
|
+
}, [data]);
|
|
46
|
+
var set = useCallback(function (path, value2) {
|
|
47
|
+
setData(function (prev) {
|
|
48
|
+
var next = _objectSpread({}, prev);
|
|
49
|
+
setByPath(next, path, value2);
|
|
50
|
+
return next;
|
|
51
|
+
});
|
|
52
|
+
onDataChange === null || onDataChange === void 0 || onDataChange(path, value2);
|
|
53
|
+
}, [onDataChange]);
|
|
54
|
+
var update = useCallback(function (updates) {
|
|
55
|
+
setData(function (prev) {
|
|
56
|
+
var next = _objectSpread({}, prev);
|
|
57
|
+
for (var _i2 = 0, _Object$entries2 = Object.entries(updates); _i2 < _Object$entries2.length; _i2++) {
|
|
58
|
+
var _Object$entries2$_i = _slicedToArray(_Object$entries2[_i2], 2),
|
|
59
|
+
path = _Object$entries2$_i[0],
|
|
60
|
+
value2 = _Object$entries2$_i[1];
|
|
61
|
+
setByPath(next, path, value2);
|
|
62
|
+
onDataChange === null || onDataChange === void 0 || onDataChange(path, value2);
|
|
63
|
+
}
|
|
64
|
+
return next;
|
|
65
|
+
});
|
|
66
|
+
}, [onDataChange]);
|
|
67
|
+
var value = useMemo(function () {
|
|
68
|
+
return {
|
|
69
|
+
data: data,
|
|
70
|
+
authState: authState,
|
|
71
|
+
get: get,
|
|
72
|
+
set: set,
|
|
73
|
+
update: update
|
|
74
|
+
};
|
|
75
|
+
}, [data, authState, get, set, update]);
|
|
76
|
+
return /* @__PURE__ */React.createElement(DataContext.Provider, {
|
|
77
|
+
value: value
|
|
78
|
+
}, children);
|
|
79
|
+
}
|
|
80
|
+
function useData() {
|
|
81
|
+
var ctx = useContext(DataContext);
|
|
82
|
+
if (!ctx) {
|
|
83
|
+
throw new Error("useData must be used within a DataProvider");
|
|
84
|
+
}
|
|
85
|
+
return ctx;
|
|
86
|
+
}
|
|
87
|
+
function useDataValue(path) {
|
|
88
|
+
var _useData = useData(),
|
|
89
|
+
get = _useData.get;
|
|
90
|
+
return get(path);
|
|
91
|
+
}
|
|
92
|
+
function useDataBinding(path) {
|
|
93
|
+
var _useData2 = useData(),
|
|
94
|
+
get = _useData2.get,
|
|
95
|
+
set = _useData2.set;
|
|
96
|
+
var value = get(path);
|
|
97
|
+
var setValue = useCallback(function (newValue) {
|
|
98
|
+
return set(path, newValue);
|
|
99
|
+
}, [path, set]);
|
|
100
|
+
return [value, setValue];
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
export { DataProvider, useData, useDataBinding, useDataValue };
|
|
104
|
+
//# sourceMappingURL=data.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data.js","sources":["../../../../../../pro-components/chat/chat-engine/components/json-render/contexts/data.tsx"],"sourcesContent":["\"use client\";\n\nimport React, {\n createContext,\n useContext,\n useState,\n useCallback,\n useMemo,\n useEffect,\n type ReactNode,\n} from \"react\";\nimport {\n getByPath,\n setByPath,\n type DataModel,\n type AuthState,\n} from \"@json-render/core\";\n\n/**\n * Data context value\n */\nexport interface DataContextValue {\n /** The current data model */\n data: DataModel;\n /** Auth state for visibility evaluation */\n authState?: AuthState;\n /** Get a value by path */\n get: (path: string) => unknown;\n /** Set a value by path */\n set: (path: string, value: unknown) => void;\n /** Update multiple values at once */\n update: (updates: Record<string, unknown>) => void;\n}\n\nconst DataContext = createContext<DataContextValue | null>(null);\n\n/**\n * Props for DataProvider\n */\nexport interface DataProviderProps {\n /** Initial data model */\n initialData?: DataModel;\n /** Auth state */\n authState?: AuthState;\n /** Callback when data changes */\n onDataChange?: (path: string, value: unknown) => void;\n children: ReactNode;\n}\n\n/**\n * Provider for data model context\n */\nexport function DataProvider({\n initialData = {},\n authState,\n onDataChange,\n children,\n}: DataProviderProps) {\n const [data, setData] = useState<DataModel>(initialData);\n\n // Sync initialData changes into internal state\n // This allows server-driven updates (e.g., A2UI updateDataModel) to reflect in the UI\n useEffect(() => {\n setData((prev) => {\n // Deep merge initialData into current state (preserves user input)\n const next = { ...prev };\n for (const [key, value] of Object.entries(initialData)) {\n if (typeof value === 'object' && value !== null && !Array.isArray(value) && typeof next[key] === 'object' && next[key] !== null) {\n next[key] = { ...next[key] as object, ...value as object };\n } else {\n next[key] = value;\n }\n }\n return next;\n });\n }, [initialData]);\n\n const get = useCallback((path: string) => getByPath(data, path), [data]);\n\n const set = useCallback(\n (path: string, value: unknown) => {\n setData((prev) => {\n const next = { ...prev };\n setByPath(next, path, value);\n return next;\n });\n onDataChange?.(path, value);\n },\n [onDataChange],\n );\n\n const update = useCallback(\n (updates: Record<string, unknown>) => {\n setData((prev) => {\n const next = { ...prev };\n for (const [path, value] of Object.entries(updates)) {\n setByPath(next, path, value);\n onDataChange?.(path, value);\n }\n return next;\n });\n },\n [onDataChange],\n );\n\n const value = useMemo<DataContextValue>(\n () => ({\n data,\n authState,\n get,\n set,\n update,\n }),\n [data, authState, get, set, update],\n );\n\n return <DataContext.Provider value={value}>{children}</DataContext.Provider>;\n}\n\n/**\n * Hook to access the data context\n */\nexport function useData(): DataContextValue {\n const ctx = useContext(DataContext);\n if (!ctx) {\n throw new Error(\"useData must be used within a DataProvider\");\n }\n return ctx;\n}\n\n/**\n * Hook to get a value from the data model\n */\nexport function useDataValue<T>(path: string): T | undefined {\n const { get } = useData();\n return get(path) as T | undefined;\n}\n\n/**\n * Hook to get and set a value from the data model (like useState)\n */\nexport function useDataBinding<T>(\n path: string,\n): [T | undefined, (value: T) => void] {\n const { get, set } = useData();\n const value = get(path) as T | undefined;\n const setValue = useCallback(\n (newValue: T) => set(path, newValue),\n [path, set],\n );\n return [value, setValue];\n}\n"],"names":["ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","DataContext","createContext","DataProvider","_ref","_ref$initialData","initialData","authState","onDataChange","children","_useState","useState","_useState2","_slicedToArray","data","setData","useEffect","prev","next","_i","_Object$entries","entries","_Object$entries$_i","key","value","_typeof","Array","isArray","get","useCallback","path","getByPath","set","setByPath","update","updates","_i2","_Object$entries2","_Object$entries2$_i","useMemo","React","createElement","Provider","useData","ctx","useContext","Error","useDataValue","_useData","useDataBinding","_useData2","setValue","newValue"],"mappings":"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"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
import { type ValidationConfig, type ValidationFunction, type ValidationResult } from "@json-render/core";
|
|
3
|
+
/**
|
|
4
|
+
* Field validation state
|
|
5
|
+
*/
|
|
6
|
+
export interface FieldValidationState {
|
|
7
|
+
/** Whether the field has been touched */
|
|
8
|
+
touched: boolean;
|
|
9
|
+
/** Whether the field has been validated */
|
|
10
|
+
validated: boolean;
|
|
11
|
+
/** Validation result */
|
|
12
|
+
result: ValidationResult | null;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Validation context value
|
|
16
|
+
*/
|
|
17
|
+
export interface ValidationContextValue {
|
|
18
|
+
/** Custom validation functions from catalog */
|
|
19
|
+
customFunctions: Record<string, ValidationFunction>;
|
|
20
|
+
/** Validation state by field path */
|
|
21
|
+
fieldStates: Record<string, FieldValidationState>;
|
|
22
|
+
/** Validate a field */
|
|
23
|
+
validate: (path: string, config: ValidationConfig) => ValidationResult;
|
|
24
|
+
/** Mark field as touched */
|
|
25
|
+
touch: (path: string) => void;
|
|
26
|
+
/** Clear validation for a field */
|
|
27
|
+
clear: (path: string) => void;
|
|
28
|
+
/** Validate all fields */
|
|
29
|
+
validateAll: () => boolean;
|
|
30
|
+
/** Register field config */
|
|
31
|
+
registerField: (path: string, config: ValidationConfig) => void;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Props for ValidationProvider
|
|
35
|
+
*/
|
|
36
|
+
export interface ValidationProviderProps {
|
|
37
|
+
/** Custom validation functions from catalog */
|
|
38
|
+
customFunctions?: Record<string, ValidationFunction>;
|
|
39
|
+
children: ReactNode;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Provider for validation
|
|
43
|
+
*/
|
|
44
|
+
export declare function ValidationProvider({ customFunctions, children, }: ValidationProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
45
|
+
/**
|
|
46
|
+
* Hook to access validation context
|
|
47
|
+
*/
|
|
48
|
+
export declare function useValidation(): ValidationContextValue;
|
|
49
|
+
/**
|
|
50
|
+
* Hook to get validation state for a field
|
|
51
|
+
*/
|
|
52
|
+
export declare function useFieldValidation(path: string, config?: ValidationConfig): {
|
|
53
|
+
state: FieldValidationState;
|
|
54
|
+
validate: () => ValidationResult;
|
|
55
|
+
touch: () => void;
|
|
56
|
+
clear: () => void;
|
|
57
|
+
errors: string[];
|
|
58
|
+
isValid: boolean;
|
|
59
|
+
};
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* tdesign v1.0.2-alpha.15
|
|
3
|
+
* (c) 2026 tdesign
|
|
4
|
+
* @license MIT
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import _typeof from '@babel/runtime/helpers/typeof';
|
|
8
|
+
import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
|
|
9
|
+
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
10
|
+
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
11
|
+
import React, { createContext, useState, useCallback, useMemo, useContext } from 'react';
|
|
12
|
+
import { runValidation } from '@json-render/core';
|
|
13
|
+
import { useData } from './data.js';
|
|
14
|
+
|
|
15
|
+
"use client";
|
|
16
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
17
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
18
|
+
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; }
|
|
19
|
+
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; }
|
|
20
|
+
var ValidationContext = /*#__PURE__*/createContext(null);
|
|
21
|
+
function ValidationProvider(_ref) {
|
|
22
|
+
var _ref$customFunctions = _ref.customFunctions,
|
|
23
|
+
customFunctions = _ref$customFunctions === void 0 ? {} : _ref$customFunctions,
|
|
24
|
+
children = _ref.children;
|
|
25
|
+
var _useData = useData(),
|
|
26
|
+
data = _useData.data,
|
|
27
|
+
authState = _useData.authState;
|
|
28
|
+
var _useState = useState({}),
|
|
29
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
30
|
+
fieldStates = _useState2[0],
|
|
31
|
+
setFieldStates = _useState2[1];
|
|
32
|
+
var _useState3 = useState({}),
|
|
33
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
34
|
+
fieldConfigs = _useState4[0],
|
|
35
|
+
setFieldConfigs = _useState4[1];
|
|
36
|
+
var registerField = useCallback(function (path, config) {
|
|
37
|
+
setFieldConfigs(function (prev) {
|
|
38
|
+
return _objectSpread(_objectSpread({}, prev), {}, _defineProperty({}, path, config));
|
|
39
|
+
});
|
|
40
|
+
}, []);
|
|
41
|
+
var validate = useCallback(function (path, config) {
|
|
42
|
+
var value2 = data[path.split("/").filter(Boolean).join(".")];
|
|
43
|
+
var result = runValidation(config, {
|
|
44
|
+
value: value2,
|
|
45
|
+
dataModel: data,
|
|
46
|
+
customFunctions: customFunctions,
|
|
47
|
+
authState: authState
|
|
48
|
+
});
|
|
49
|
+
setFieldStates(function (prev) {
|
|
50
|
+
var _prev$path$touched, _prev$path;
|
|
51
|
+
return _objectSpread(_objectSpread({}, prev), {}, _defineProperty({}, path, {
|
|
52
|
+
touched: (_prev$path$touched = (_prev$path = prev[path]) === null || _prev$path === void 0 ? void 0 : _prev$path.touched) !== null && _prev$path$touched !== void 0 ? _prev$path$touched : true,
|
|
53
|
+
validated: true,
|
|
54
|
+
result: result
|
|
55
|
+
}));
|
|
56
|
+
});
|
|
57
|
+
return result;
|
|
58
|
+
}, [data, customFunctions, authState]);
|
|
59
|
+
var touch = useCallback(function (path) {
|
|
60
|
+
setFieldStates(function (prev) {
|
|
61
|
+
var _prev$path$validated, _prev$path2, _prev$path$result, _prev$path3;
|
|
62
|
+
return _objectSpread(_objectSpread({}, prev), {}, _defineProperty({}, path, _objectSpread(_objectSpread({}, prev[path]), {}, {
|
|
63
|
+
touched: true,
|
|
64
|
+
validated: (_prev$path$validated = (_prev$path2 = prev[path]) === null || _prev$path2 === void 0 ? void 0 : _prev$path2.validated) !== null && _prev$path$validated !== void 0 ? _prev$path$validated : false,
|
|
65
|
+
result: (_prev$path$result = (_prev$path3 = prev[path]) === null || _prev$path3 === void 0 ? void 0 : _prev$path3.result) !== null && _prev$path$result !== void 0 ? _prev$path$result : null
|
|
66
|
+
})));
|
|
67
|
+
});
|
|
68
|
+
}, []);
|
|
69
|
+
var clear = useCallback(function (path) {
|
|
70
|
+
setFieldStates(function (prev) {
|
|
71
|
+
var _ = prev[path],
|
|
72
|
+
rest = _objectWithoutProperties(prev, [path].map(_toPropertyKey));
|
|
73
|
+
return rest;
|
|
74
|
+
});
|
|
75
|
+
}, []);
|
|
76
|
+
var validateAll = useCallback(function () {
|
|
77
|
+
var allValid = true;
|
|
78
|
+
for (var _i = 0, _Object$entries = Object.entries(fieldConfigs); _i < _Object$entries.length; _i++) {
|
|
79
|
+
var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),
|
|
80
|
+
path = _Object$entries$_i[0],
|
|
81
|
+
config = _Object$entries$_i[1];
|
|
82
|
+
var result = validate(path, config);
|
|
83
|
+
if (!result.valid) {
|
|
84
|
+
allValid = false;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
return allValid;
|
|
88
|
+
}, [fieldConfigs, validate]);
|
|
89
|
+
var value = useMemo(function () {
|
|
90
|
+
return {
|
|
91
|
+
customFunctions: customFunctions,
|
|
92
|
+
fieldStates: fieldStates,
|
|
93
|
+
validate: validate,
|
|
94
|
+
touch: touch,
|
|
95
|
+
clear: clear,
|
|
96
|
+
validateAll: validateAll,
|
|
97
|
+
registerField: registerField
|
|
98
|
+
};
|
|
99
|
+
}, [customFunctions, fieldStates, validate, touch, clear, validateAll, registerField]);
|
|
100
|
+
return /* @__PURE__ */React.createElement(ValidationContext.Provider, {
|
|
101
|
+
value: value
|
|
102
|
+
}, children);
|
|
103
|
+
}
|
|
104
|
+
function useValidation() {
|
|
105
|
+
var ctx = useContext(ValidationContext);
|
|
106
|
+
if (!ctx) {
|
|
107
|
+
throw new Error("useValidation must be used within a ValidationProvider");
|
|
108
|
+
}
|
|
109
|
+
return ctx;
|
|
110
|
+
}
|
|
111
|
+
function useFieldValidation(path, config) {
|
|
112
|
+
var _fieldStates$path, _state$result$errors, _state$result, _state$result$valid, _state$result2;
|
|
113
|
+
var _useValidation = useValidation(),
|
|
114
|
+
fieldStates = _useValidation.fieldStates,
|
|
115
|
+
validateField = _useValidation.validate,
|
|
116
|
+
touchField = _useValidation.touch,
|
|
117
|
+
clearField = _useValidation.clear,
|
|
118
|
+
registerField = _useValidation.registerField;
|
|
119
|
+
React.useEffect(function () {
|
|
120
|
+
if (config) {
|
|
121
|
+
registerField(path, config);
|
|
122
|
+
}
|
|
123
|
+
}, [path, config, registerField]);
|
|
124
|
+
var state = (_fieldStates$path = fieldStates[path]) !== null && _fieldStates$path !== void 0 ? _fieldStates$path : {
|
|
125
|
+
touched: false,
|
|
126
|
+
validated: false,
|
|
127
|
+
result: null
|
|
128
|
+
};
|
|
129
|
+
var validate = useCallback(function () {
|
|
130
|
+
return validateField(path, config !== null && config !== void 0 ? config : {
|
|
131
|
+
checks: []
|
|
132
|
+
});
|
|
133
|
+
}, [path, config, validateField]);
|
|
134
|
+
var touch = useCallback(function () {
|
|
135
|
+
return touchField(path);
|
|
136
|
+
}, [path, touchField]);
|
|
137
|
+
var clear = useCallback(function () {
|
|
138
|
+
return clearField(path);
|
|
139
|
+
}, [path, clearField]);
|
|
140
|
+
return {
|
|
141
|
+
state: state,
|
|
142
|
+
validate: validate,
|
|
143
|
+
touch: touch,
|
|
144
|
+
clear: clear,
|
|
145
|
+
errors: (_state$result$errors = (_state$result = state.result) === null || _state$result === void 0 ? void 0 : _state$result.errors) !== null && _state$result$errors !== void 0 ? _state$result$errors : [],
|
|
146
|
+
isValid: (_state$result$valid = (_state$result2 = state.result) === null || _state$result2 === void 0 ? void 0 : _state$result2.valid) !== null && _state$result$valid !== void 0 ? _state$result$valid : true
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
export { ValidationProvider, useFieldValidation, useValidation };
|
|
151
|
+
//# sourceMappingURL=validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.js","sources":["../../../../../../pro-components/chat/chat-engine/components/json-render/contexts/validation.tsx"],"sourcesContent":["\"use client\";\n\nimport React, {\n createContext,\n useContext,\n useState,\n useCallback,\n useMemo,\n type ReactNode,\n} from \"react\";\nimport {\n runValidation,\n type ValidationConfig,\n type ValidationFunction,\n type ValidationResult,\n} from \"@json-render/core\";\nimport { useData } from \"./data\";\n\n/**\n * Field validation state\n */\nexport interface FieldValidationState {\n /** Whether the field has been touched */\n touched: boolean;\n /** Whether the field has been validated */\n validated: boolean;\n /** Validation result */\n result: ValidationResult | null;\n}\n\n/**\n * Validation context value\n */\nexport interface ValidationContextValue {\n /** Custom validation functions from catalog */\n customFunctions: Record<string, ValidationFunction>;\n /** Validation state by field path */\n fieldStates: Record<string, FieldValidationState>;\n /** Validate a field */\n validate: (path: string, config: ValidationConfig) => ValidationResult;\n /** Mark field as touched */\n touch: (path: string) => void;\n /** Clear validation for a field */\n clear: (path: string) => void;\n /** Validate all fields */\n validateAll: () => boolean;\n /** Register field config */\n registerField: (path: string, config: ValidationConfig) => void;\n}\n\nconst ValidationContext = createContext<ValidationContextValue | null>(null);\n\n/**\n * Props for ValidationProvider\n */\nexport interface ValidationProviderProps {\n /** Custom validation functions from catalog */\n customFunctions?: Record<string, ValidationFunction>;\n children: ReactNode;\n}\n\n/**\n * Provider for validation\n */\nexport function ValidationProvider({\n customFunctions = {},\n children,\n}: ValidationProviderProps) {\n const { data, authState } = useData();\n const [fieldStates, setFieldStates] = useState<\n Record<string, FieldValidationState>\n >({});\n const [fieldConfigs, setFieldConfigs] = useState<\n Record<string, ValidationConfig>\n >({});\n\n const registerField = useCallback(\n (path: string, config: ValidationConfig) => {\n setFieldConfigs((prev) => ({ ...prev, [path]: config }));\n },\n [],\n );\n\n const validate = useCallback(\n (path: string, config: ValidationConfig): ValidationResult => {\n const value = data[path.split(\"/\").filter(Boolean).join(\".\")];\n const result = runValidation(config, {\n value,\n dataModel: data,\n customFunctions,\n authState,\n });\n\n setFieldStates((prev) => ({\n ...prev,\n [path]: {\n touched: prev[path]?.touched ?? true,\n validated: true,\n result,\n },\n }));\n\n return result;\n },\n [data, customFunctions, authState],\n );\n\n const touch = useCallback((path: string) => {\n setFieldStates((prev) => ({\n ...prev,\n [path]: {\n ...prev[path],\n touched: true,\n validated: prev[path]?.validated ?? false,\n result: prev[path]?.result ?? null,\n },\n }));\n }, []);\n\n const clear = useCallback((path: string) => {\n setFieldStates((prev) => {\n const { [path]: _, ...rest } = prev;\n return rest;\n });\n }, []);\n\n const validateAll = useCallback(() => {\n let allValid = true;\n\n for (const [path, config] of Object.entries(fieldConfigs)) {\n const result = validate(path, config);\n if (!result.valid) {\n allValid = false;\n }\n }\n\n return allValid;\n }, [fieldConfigs, validate]);\n\n const value = useMemo<ValidationContextValue>(\n () => ({\n customFunctions,\n fieldStates,\n validate,\n touch,\n clear,\n validateAll,\n registerField,\n }),\n [\n customFunctions,\n fieldStates,\n validate,\n touch,\n clear,\n validateAll,\n registerField,\n ],\n );\n\n return (\n <ValidationContext.Provider value={value}>\n {children}\n </ValidationContext.Provider>\n );\n}\n\n/**\n * Hook to access validation context\n */\nexport function useValidation(): ValidationContextValue {\n const ctx = useContext(ValidationContext);\n if (!ctx) {\n throw new Error(\"useValidation must be used within a ValidationProvider\");\n }\n return ctx;\n}\n\n/**\n * Hook to get validation state for a field\n */\nexport function useFieldValidation(\n path: string,\n config?: ValidationConfig,\n): {\n state: FieldValidationState;\n validate: () => ValidationResult;\n touch: () => void;\n clear: () => void;\n errors: string[];\n isValid: boolean;\n} {\n const {\n fieldStates,\n validate: validateField,\n touch: touchField,\n clear: clearField,\n registerField,\n } = useValidation();\n\n // Register field on mount\n React.useEffect(() => {\n if (config) {\n registerField(path, config);\n }\n }, [path, config, registerField]);\n\n const state = fieldStates[path] ?? {\n touched: false,\n validated: false,\n result: null,\n };\n\n const validate = useCallback(\n () => validateField(path, config ?? { checks: [] }),\n [path, config, validateField],\n );\n\n const touch = useCallback(() => touchField(path), [path, touchField]);\n const clear = useCallback(() => clearField(path), [path, clearField]);\n\n return {\n state,\n validate,\n touch,\n clear,\n errors: state.result?.errors ?? [],\n isValid: state.result?.valid ?? true,\n };\n}\n"],"names":["_toPropertyKey","t","i","_toPrimitive","_typeof","r","e","Symbol","toPrimitive","call","TypeError","String","Number","ownKeys","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","ValidationContext","createContext","ValidationProvider","_ref","_ref$customFunctions","customFunctions","children","_useData","useData","data","authState","_useState","useState","_useState2","_slicedToArray","fieldStates","setFieldStates","_useState3","_useState4","fieldConfigs","setFieldConfigs","registerField","useCallback","path","config","prev","validate","value","split","Boolean","join","result","runValidation","dataModel","_prev$path$touched","_prev$path","touched","validated","touch","_prev$path$validated","_prev$path2","_prev$path$result","_prev$path3","clear","_","rest","_objectWithoutProperties","map","validateAll","allValid","_i","_Object$entries","entries","_Object$entries$_i","valid","useMemo","React","createElement","Provider","useValidation","ctx","useContext","Error","useFieldValidation","_fieldStates$path","_state$result$errors","_state$result","_state$result$valid","_state$result2","_useValidation","validateField","touchField","clearField","useEffect","state","checks","errors","isValid"],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
import { type VisibilityCondition, type VisibilityContext as CoreVisibilityContext } from "@json-render/core";
|
|
3
|
+
/**
|
|
4
|
+
* Visibility context value
|
|
5
|
+
*/
|
|
6
|
+
export interface VisibilityContextValue {
|
|
7
|
+
/** Evaluate a visibility condition */
|
|
8
|
+
isVisible: (condition: VisibilityCondition | undefined) => boolean;
|
|
9
|
+
/** The underlying visibility context */
|
|
10
|
+
ctx: CoreVisibilityContext;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Props for VisibilityProvider
|
|
14
|
+
*/
|
|
15
|
+
export interface VisibilityProviderProps {
|
|
16
|
+
children: ReactNode;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Provider for visibility evaluation
|
|
20
|
+
*/
|
|
21
|
+
export declare function VisibilityProvider({ children }: VisibilityProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
22
|
+
/**
|
|
23
|
+
* Hook to access visibility evaluation
|
|
24
|
+
*/
|
|
25
|
+
export declare function useVisibility(): VisibilityContextValue;
|
|
26
|
+
/**
|
|
27
|
+
* Hook to check if a condition is visible
|
|
28
|
+
*/
|
|
29
|
+
export declare function useIsVisible(condition: VisibilityCondition | undefined): boolean;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* tdesign v1.0.2-alpha.15
|
|
3
|
+
* (c) 2026 tdesign
|
|
4
|
+
* @license MIT
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import React, { createContext, useMemo, useContext } from 'react';
|
|
8
|
+
import { evaluateVisibility } from '@json-render/core';
|
|
9
|
+
import { useData } from './data.js';
|
|
10
|
+
import '@babel/runtime/helpers/typeof';
|
|
11
|
+
import '@babel/runtime/helpers/defineProperty';
|
|
12
|
+
import '@babel/runtime/helpers/slicedToArray';
|
|
13
|
+
|
|
14
|
+
"use client";
|
|
15
|
+
var VisibilityContext = /*#__PURE__*/createContext(null);
|
|
16
|
+
function VisibilityProvider(_ref) {
|
|
17
|
+
var children = _ref.children;
|
|
18
|
+
var _useData = useData(),
|
|
19
|
+
data = _useData.data,
|
|
20
|
+
authState = _useData.authState;
|
|
21
|
+
var ctx = useMemo(function () {
|
|
22
|
+
return {
|
|
23
|
+
dataModel: data,
|
|
24
|
+
authState: authState
|
|
25
|
+
};
|
|
26
|
+
}, [data, authState]);
|
|
27
|
+
var isVisible = useMemo(function () {
|
|
28
|
+
return function (condition) {
|
|
29
|
+
return evaluateVisibility(condition, ctx);
|
|
30
|
+
};
|
|
31
|
+
}, [ctx]);
|
|
32
|
+
var value = useMemo(function () {
|
|
33
|
+
return {
|
|
34
|
+
isVisible: isVisible,
|
|
35
|
+
ctx: ctx
|
|
36
|
+
};
|
|
37
|
+
}, [isVisible, ctx]);
|
|
38
|
+
return /* @__PURE__ */React.createElement(VisibilityContext.Provider, {
|
|
39
|
+
value: value
|
|
40
|
+
}, children);
|
|
41
|
+
}
|
|
42
|
+
function useVisibility() {
|
|
43
|
+
var ctx = useContext(VisibilityContext);
|
|
44
|
+
if (!ctx) {
|
|
45
|
+
throw new Error("useVisibility must be used within a VisibilityProvider");
|
|
46
|
+
}
|
|
47
|
+
return ctx;
|
|
48
|
+
}
|
|
49
|
+
function useIsVisible(condition) {
|
|
50
|
+
var _useVisibility = useVisibility(),
|
|
51
|
+
isVisible = _useVisibility.isVisible;
|
|
52
|
+
return isVisible(condition);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export { VisibilityProvider, useIsVisible, useVisibility };
|
|
56
|
+
//# sourceMappingURL=visibility.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"visibility.js","sources":["../../../../../../pro-components/chat/chat-engine/components/json-render/contexts/visibility.tsx"],"sourcesContent":["\"use client\";\n\nimport React, {\n createContext,\n useContext,\n useMemo,\n type ReactNode,\n} from \"react\";\nimport {\n evaluateVisibility,\n type VisibilityCondition,\n type VisibilityContext as CoreVisibilityContext,\n} from \"@json-render/core\";\nimport { useData } from \"./data\";\n\n/**\n * Visibility context value\n */\nexport interface VisibilityContextValue {\n /** Evaluate a visibility condition */\n isVisible: (condition: VisibilityCondition | undefined) => boolean;\n /** The underlying visibility context */\n ctx: CoreVisibilityContext;\n}\n\nconst VisibilityContext = createContext<VisibilityContextValue | null>(null);\n\n/**\n * Props for VisibilityProvider\n */\nexport interface VisibilityProviderProps {\n children: ReactNode;\n}\n\n/**\n * Provider for visibility evaluation\n */\nexport function VisibilityProvider({ children }: VisibilityProviderProps) {\n const { data, authState } = useData();\n\n const ctx: CoreVisibilityContext = useMemo(\n () => ({\n dataModel: data,\n authState,\n }),\n [data, authState],\n );\n\n const isVisible = useMemo(\n () => (condition: VisibilityCondition | undefined) =>\n evaluateVisibility(condition, ctx),\n [ctx],\n );\n\n const value = useMemo<VisibilityContextValue>(\n () => ({ isVisible, ctx }),\n [isVisible, ctx],\n );\n\n return (\n <VisibilityContext.Provider value={value}>\n {children}\n </VisibilityContext.Provider>\n );\n}\n\n/**\n * Hook to access visibility evaluation\n */\nexport function useVisibility(): VisibilityContextValue {\n const ctx = useContext(VisibilityContext);\n if (!ctx) {\n throw new Error(\"useVisibility must be used within a VisibilityProvider\");\n }\n return ctx;\n}\n\n/**\n * Hook to check if a condition is visible\n */\nexport function useIsVisible(\n condition: VisibilityCondition | undefined,\n): boolean {\n const { isVisible } = useVisibility();\n return isVisible(condition);\n}\n"],"names":["VisibilityContext","createContext","VisibilityProvider","_ref","children","_useData","useData","data","authState","ctx","useMemo","dataModel","isVisible","condition","evaluateVisibility","value","React","createElement","Provider","useVisibility","useContext","Error","useIsVisible","_useVisibility"],"mappings":";;;;;;;;;;;;;AAAA,YAAA,CAAA;AAyBA,IAAMA,iBAAA,gBAAoBC,cAA6C,IAAI,CAAA,CAAA;AAY3D,SAAAC,kBAAAA,CAAAC,IAAA,EAA0D;AAAA,EAAA,IAArCC,QAAA,GAAAD,IAAA,CAAAC,QAAA,CAAA;AACnC,EAAA,IAAAC,QAAA,GAA4BC,OAAQ,EAAA;IAA5BC,IAAA,GAAAF,QAAA,CAAAE,IAAA;IAAMC,SAAU,GAAAH,QAAA,CAAVG,SAAU,CAAA;EAExB,IAAMC,GAA6B,GAAAC,OAAA,CACjC,YAAA;IAAA,OAAO;AACLC,MAAAA,SAAW,EAAAJ,IAAA;AACXC,MAAAA,SAAA,EAAAA,SAAAA;KACF,CAAA;AAAA,GAAA,EACA,CAACD,MAAMC,SAAS,CAClB,CAAA,CAAA;EAEA,IAAMI,SAAY,GAAAF,OAAA,CAChB,YAAA;AAAA,IAAA,OAAM,UAACG,SACL,EAAA;AAAA,MAAA,OAAAC,kBAAA,CAAmBD,WAAWJ,GAAG,CAAA,CAAA;AAAA,KAAA,CAAA;GACnC,EAAA,CAACA,GAAG,CACN,CAAA,CAAA;EAEA,IAAMM,KAAQ,GAAAL,OAAA,CACZ,YAAA;IAAA,OAAO;AAAEE,MAAAA,SAAA,EAAAA,SAAA;AAAWH,MAAAA,GAAI,EAAJA,GAAAA;KAAI,CAAA;AAAA,GAAA,EACxB,CAACG,WAAWH,GAAG,CACjB,CAAA,CAAA;EAGE,sBAAAO,KAAA,CAAAC,aAAA,CAACjB,kBAAkBkB,QAAlB,EAAA;AAA2BH,IAAAA,KAAA,EAAAA,KAAAA;GAAA,EACzBX,QACH,CAAA,CAAA;AAEJ,CAAA;AAKO,SAASe,aAAwCA,GAAA;AAChD,EAAA,IAAAV,GAAA,GAAMW,WAAWpB,iBAAiB,CAAA,CAAA;EACxC,IAAI,CAACS,GAAK,EAAA;AACF,IAAA,MAAA,IAAIY,MAAM,wDAAwD,CAAA,CAAA;AAC1E,GAAA;AACO,EAAA,OAAAZ,GAAA,CAAA;AACT,CAAA;AAKO,SAASa,aACdT,SACS,EAAA;AACH,EAAA,IAAAU,cAAA,GAAgBJ,aAAc,EAAA;IAA5BP,SAAU,GAAAW,cAAA,CAAVX,SAAU,CAAA;EAClB,OAAOA,UAAUC,SAAS,CAAA,CAAA;AAC5B;;;;"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* json-render 引擎封装
|
|
3
|
+
* 提供高性能的增量渲染能力
|
|
4
|
+
*/
|
|
5
|
+
import type { UIElement } from '@json-render/core';
|
|
6
|
+
import type { ComponentRegistry } from './renderer';
|
|
7
|
+
import type { JsonRenderSchema, DeltaInfo } from './types';
|
|
8
|
+
/**
|
|
9
|
+
* json-render 引擎管理器
|
|
10
|
+
* 负责 Schema 缓存、增量更新和性能优化
|
|
11
|
+
*/
|
|
12
|
+
export declare class JsonRenderEngine {
|
|
13
|
+
private currentSchema;
|
|
14
|
+
private registry;
|
|
15
|
+
constructor(registry: ComponentRegistry);
|
|
16
|
+
/**
|
|
17
|
+
* 全量渲染
|
|
18
|
+
* 用于 ACTIVITY_SNAPSHOT 事件
|
|
19
|
+
*/
|
|
20
|
+
setSchema(schema: JsonRenderSchema): void;
|
|
21
|
+
/**
|
|
22
|
+
* 获取当前 Schema
|
|
23
|
+
*/
|
|
24
|
+
getSchema(): JsonRenderSchema | null;
|
|
25
|
+
/**
|
|
26
|
+
* 增量更新
|
|
27
|
+
* 用于 ACTIVITY_DELTA 事件
|
|
28
|
+
*
|
|
29
|
+
* @param newSchema 应用 JSON Patch 后的完整 Schema
|
|
30
|
+
* @param deltaInfo 增量信息(可选,用于进一步优化)
|
|
31
|
+
*/
|
|
32
|
+
patchSchema(newSchema: JsonRenderSchema, deltaInfo?: DeltaInfo): void;
|
|
33
|
+
/**
|
|
34
|
+
* 重置引擎状态
|
|
35
|
+
*/
|
|
36
|
+
reset(): void;
|
|
37
|
+
/**
|
|
38
|
+
* 获取组件注册表
|
|
39
|
+
*/
|
|
40
|
+
getRegistry(): ComponentRegistry;
|
|
41
|
+
/**
|
|
42
|
+
* 更新组件注册表
|
|
43
|
+
*/
|
|
44
|
+
updateRegistry(registry: ComponentRegistry): void;
|
|
45
|
+
/**
|
|
46
|
+
* 验证 Schema 是否有效
|
|
47
|
+
*/
|
|
48
|
+
validateSchema(schema: JsonRenderSchema): boolean;
|
|
49
|
+
/**
|
|
50
|
+
* 提取增量元素(基于 deltaInfo)
|
|
51
|
+
* 用于性能优化场景
|
|
52
|
+
*/
|
|
53
|
+
extractDeltaElements(schema: JsonRenderSchema, deltaInfo: DeltaInfo): Record<string, UIElement>;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* 创建 json-render 引擎实例
|
|
57
|
+
*/
|
|
58
|
+
export declare function createJsonRenderEngine(registry: ComponentRegistry): JsonRenderEngine;
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* tdesign v1.0.2-alpha.15
|
|
3
|
+
* (c) 2026 tdesign
|
|
4
|
+
* @license MIT
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
|
|
8
|
+
import _createClass from '@babel/runtime/helpers/createClass';
|
|
9
|
+
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
10
|
+
|
|
11
|
+
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; }
|
|
12
|
+
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; }
|
|
13
|
+
var JsonRenderEngine = /*#__PURE__*/function () {
|
|
14
|
+
function JsonRenderEngine(registry) {
|
|
15
|
+
_classCallCheck(this, JsonRenderEngine);
|
|
16
|
+
_defineProperty(this, "currentSchema", null);
|
|
17
|
+
this.registry = registry;
|
|
18
|
+
}
|
|
19
|
+
return _createClass(JsonRenderEngine, [{
|
|
20
|
+
key: "setSchema",
|
|
21
|
+
value: function setSchema(schema) {
|
|
22
|
+
this.currentSchema = schema;
|
|
23
|
+
}
|
|
24
|
+
}, {
|
|
25
|
+
key: "getSchema",
|
|
26
|
+
value: function getSchema() {
|
|
27
|
+
return this.currentSchema;
|
|
28
|
+
}
|
|
29
|
+
}, {
|
|
30
|
+
key: "patchSchema",
|
|
31
|
+
value: function patchSchema(newSchema, deltaInfo) {
|
|
32
|
+
if (!this.currentSchema) {
|
|
33
|
+
this.currentSchema = newSchema;
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
this.currentSchema = newSchema;
|
|
37
|
+
if (deltaInfo) {
|
|
38
|
+
console.debug("[json-render] \u589E\u91CF\u66F4\u65B0\u8303\u56F4:", deltaInfo);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}, {
|
|
42
|
+
key: "reset",
|
|
43
|
+
value: function reset() {
|
|
44
|
+
this.currentSchema = null;
|
|
45
|
+
}
|
|
46
|
+
}, {
|
|
47
|
+
key: "getRegistry",
|
|
48
|
+
value: function getRegistry() {
|
|
49
|
+
return this.registry;
|
|
50
|
+
}
|
|
51
|
+
}, {
|
|
52
|
+
key: "updateRegistry",
|
|
53
|
+
value: function updateRegistry(registry) {
|
|
54
|
+
this.registry = _objectSpread(_objectSpread({}, this.registry), registry);
|
|
55
|
+
}
|
|
56
|
+
}, {
|
|
57
|
+
key: "validateSchema",
|
|
58
|
+
value: function validateSchema(schema) {
|
|
59
|
+
if (!schema || !schema.root || !schema.elements) {
|
|
60
|
+
console.error("[json-render] Schema \u9A8C\u8BC1\u5931\u8D25\uFF1A\u7F3A\u5C11 root \u6216 elements");
|
|
61
|
+
return false;
|
|
62
|
+
}
|
|
63
|
+
var rootElement = schema.elements[schema.root];
|
|
64
|
+
if (!rootElement) {
|
|
65
|
+
console.error("[json-render] Schema \u9A8C\u8BC1\u5931\u8D25\uFF1Aroot \u5143\u7D20\u4E0D\u5B58\u5728");
|
|
66
|
+
return false;
|
|
67
|
+
}
|
|
68
|
+
return true;
|
|
69
|
+
}
|
|
70
|
+
}, {
|
|
71
|
+
key: "extractDeltaElements",
|
|
72
|
+
value: function extractDeltaElements(schema, deltaInfo) {
|
|
73
|
+
var elementKeys = Object.keys(schema.elements);
|
|
74
|
+
var deltaKeys = elementKeys.slice(deltaInfo.fromIndex, deltaInfo.toIndex);
|
|
75
|
+
var deltaElements = {};
|
|
76
|
+
deltaKeys.forEach(function (key) {
|
|
77
|
+
deltaElements[key] = schema.elements[key];
|
|
78
|
+
});
|
|
79
|
+
return deltaElements;
|
|
80
|
+
}
|
|
81
|
+
}]);
|
|
82
|
+
}();
|
|
83
|
+
function createJsonRenderEngine(registry) {
|
|
84
|
+
return new JsonRenderEngine(registry);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
export { JsonRenderEngine, createJsonRenderEngine };
|
|
88
|
+
//# sourceMappingURL=engine.js.map
|