@tdesign-react/chat 1.1.0-alpha.1 → 1.1.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/_chunks/dep-870f0d35.js +839 -0
- package/es/_chunks/dep-870f0d35.js.map +1 -0
- package/es/_util/reactify.js +1 -1
- package/es/_util/useDynamicStyle.js +1 -1
- package/es/attachments/index.js +1 -1
- package/es/chat-actionbar/index.js +1 -1
- package/es/chat-engine/components/activity/index.js +1 -1
- package/es/chat-engine/components/activity/registry.js +1 -1
- package/es/chat-engine/components/activity/render.js +1 -1
- package/es/chat-engine/components/activity/types.js +1 -1
- package/es/chat-engine/components/index.js +3 -3
- package/es/chat-engine/components/json-render/A2UIJsonRenderActivityRenderer.js +2 -2
- package/es/chat-engine/components/json-render/JsonRenderActivityRenderer.js +2 -2
- package/es/chat-engine/components/json-render/SurfaceStateManager.js +1 -1
- package/es/chat-engine/components/json-render/adapters/a2ui-to-jsonrender.js +1 -1
- package/es/chat-engine/components/json-render/adapters/a2ui-types.js +1 -1
- package/es/chat-engine/components/json-render/adapters/index.js +1 -1
- package/es/chat-engine/components/json-render/catalog/a2ui-binding.js +2 -2
- package/es/chat-engine/components/json-render/catalog/a2ui-registry.js +2 -2
- package/es/chat-engine/components/json-render/catalog/button.js +1 -1
- package/es/chat-engine/components/json-render/catalog/card.js +1 -1
- package/es/chat-engine/components/json-render/catalog/index.d.ts +2 -1
- package/es/chat-engine/components/json-render/catalog/index.js +3 -3
- package/es/chat-engine/components/json-render/catalog/input.js +2 -2
- package/es/chat-engine/components/json-render/catalog/layout.js +1 -1
- package/es/chat-engine/components/json-render/catalog/text.js +1 -1
- package/es/chat-engine/components/json-render/catalog.d.ts +65 -0
- package/es/chat-engine/components/json-render/catalog.js +414 -2
- package/es/chat-engine/components/json-render/catalog.js.map +1 -1
- package/es/chat-engine/components/json-render/config.js +2 -2
- package/es/chat-engine/components/json-render/contexts/actions.js +1 -1
- package/es/chat-engine/components/json-render/contexts/data.js +1 -1
- package/es/chat-engine/components/json-render/contexts/validation.js +1 -1
- package/es/chat-engine/components/json-render/contexts/visibility.js +1 -1
- package/es/chat-engine/components/json-render/engine.js +1 -1
- package/es/chat-engine/components/json-render/index.d.ts +3 -1
- package/es/chat-engine/components/json-render/index.js +3 -3
- package/es/chat-engine/components/json-render/performance.js +1 -1
- package/es/chat-engine/components/json-render/renderer.js +1 -1
- package/es/chat-engine/components/json-render/types.js +1 -1
- package/es/chat-engine/components/provider/agent-state.js +1 -1
- package/es/chat-engine/components/toolcall/index.js +1 -1
- package/es/chat-engine/components/toolcall/registry.js +1 -1
- package/es/chat-engine/components/toolcall/render.js +1 -1
- package/es/chat-engine/components/toolcall/types.js +1 -1
- package/es/chat-engine/core/adapters/agui/activity-manager.js +1 -1
- package/es/chat-engine/core/adapters/agui/event-mapper.js +1 -1
- package/es/chat-engine/core/adapters/agui/events.js +1 -1
- package/es/chat-engine/core/adapters/agui/index.js +1 -1
- package/es/chat-engine/core/adapters/agui/state-manager.js +1 -1
- package/es/chat-engine/core/adapters/agui/types.js +1 -1
- package/es/chat-engine/core/adapters/agui/utils.js +1 -1
- package/es/chat-engine/core/event-bus/ChatEventBus.js +1 -1
- package/es/chat-engine/core/event-bus/index.js +1 -1
- package/es/chat-engine/core/event-bus/types.js +1 -1
- package/es/chat-engine/core/index.js +1 -1
- package/es/chat-engine/core/processor/index.js +1 -1
- package/es/chat-engine/core/server/batch-client.js +1 -1
- package/es/chat-engine/core/server/connection-manager.js +1 -1
- package/es/chat-engine/core/server/errors.js +1 -1
- package/es/chat-engine/core/server/index.js +1 -1
- package/es/chat-engine/core/server/llm-service.js +1 -1
- package/es/chat-engine/core/server/sse-client.js +1 -1
- package/es/chat-engine/core/server/sse-parser.js +1 -1
- package/es/chat-engine/core/server/types.js +1 -1
- package/es/chat-engine/core/store/message.js +1 -1
- package/es/chat-engine/core/store/model.js +1 -1
- package/es/chat-engine/core/store/reactiveState.js +1 -1
- package/es/chat-engine/core/type.js +1 -1
- package/es/chat-engine/core/utils/eventEmitter.js +1 -1
- package/es/chat-engine/core/utils/index.js +1 -1
- package/es/chat-engine/core/utils/logger.js +1 -1
- package/es/chat-engine/hooks/index.js +1 -1
- package/es/chat-engine/hooks/useAgentActivity.js +1 -1
- package/es/chat-engine/hooks/useAgentState.js +1 -1
- package/es/chat-engine/hooks/useAgentToolcall.js +1 -1
- package/es/chat-engine/hooks/useChat.js +1 -1
- package/es/chat-engine/hooks/useJsonRenderActivity.js +2 -2
- package/es/chat-engine/index.js +3 -3
- package/es/chat-filecard/index.js +1 -1
- package/es/chat-loading/index.js +1 -1
- package/es/chat-markdown/index.js +1 -1
- package/es/chat-message/index.js +1 -1
- package/es/chat-sender/index.js +1 -1
- package/es/chat-thinking/index.js +1 -1
- package/es/chatbot/index.js +1 -1
- package/es/index.js +3 -3
- package/es/style/index.js +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,839 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* tdesign v1.1.0-alpha.1
|
|
3
|
+
* (c) 2026 tdesign
|
|
4
|
+
* @license MIT
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import React, { useMemo, useEffect, useState, useCallback, useRef, memo } from 'react';
|
|
8
|
+
import _typeof from '@babel/runtime/helpers/typeof';
|
|
9
|
+
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
10
|
+
import '../chat-engine/components/json-render/adapters/index.js';
|
|
11
|
+
import { surfaceStateManager } from '../chat-engine/components/json-render/SurfaceStateManager.js';
|
|
12
|
+
import { convertA2UIMessagesToJsonRender } from '../chat-engine/components/json-render/adapters/a2ui-to-jsonrender.js';
|
|
13
|
+
import '../chat-engine/components/json-render/engine.js';
|
|
14
|
+
import '../chat-engine/components/json-render/performance.js';
|
|
15
|
+
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
16
|
+
import { JsonRenderButton } from '../chat-engine/components/json-render/catalog/button.js';
|
|
17
|
+
import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
|
|
18
|
+
import { Input, Space, Button } from 'tdesign-react';
|
|
19
|
+
import { getByPath } from '@json-render/core';
|
|
20
|
+
import { DataProvider, useData } from '../chat-engine/components/json-render/contexts/data.js';
|
|
21
|
+
import { JsonRenderCard } from '../chat-engine/components/json-render/catalog/card.js';
|
|
22
|
+
import { JsonRenderText } from '../chat-engine/components/json-render/catalog/text.js';
|
|
23
|
+
import { JsonRenderRow, JsonRenderCol, JsonRenderSpace, JsonRenderColumn, JsonRenderDivider } from '../chat-engine/components/json-render/catalog/layout.js';
|
|
24
|
+
import '../chat-engine/components/json-render/catalog.js';
|
|
25
|
+
import { VisibilityProvider } from '../chat-engine/components/json-render/contexts/visibility.js';
|
|
26
|
+
import { ActionProvider } from '../chat-engine/components/json-render/contexts/actions.js';
|
|
27
|
+
import '../chat-engine/components/json-render/contexts/validation.js';
|
|
28
|
+
import { Renderer } from '../chat-engine/components/json-render/renderer.js';
|
|
29
|
+
|
|
30
|
+
var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
|
|
31
|
+
|
|
32
|
+
function getDefaultExportFromCjs (x) {
|
|
33
|
+
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
function getDefaultExportFromNamespaceIfPresent (n) {
|
|
37
|
+
return n && Object.prototype.hasOwnProperty.call(n, 'default') ? n['default'] : n;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
function getDefaultExportFromNamespaceIfNotNamed (n) {
|
|
41
|
+
return n && Object.prototype.hasOwnProperty.call(n, 'default') && Object.keys(n).length === 1 ? n['default'] : n;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
function getAugmentedNamespace(n) {
|
|
45
|
+
if (n.__esModule) return n;
|
|
46
|
+
var a = Object.defineProperty({}, '__esModule', {value: true});
|
|
47
|
+
Object.keys(n).forEach(function (k) {
|
|
48
|
+
var d = Object.getOwnPropertyDescriptor(n, k);
|
|
49
|
+
Object.defineProperty(a, k, d.get ? d : {
|
|
50
|
+
enumerable: true,
|
|
51
|
+
get: function () {
|
|
52
|
+
return n[k];
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
return a;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
function commonjsRequire (path) {
|
|
60
|
+
throw new Error('Could not dynamically require "' + path + '". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.');
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
var hasElementType = typeof Element !== 'undefined';
|
|
64
|
+
var hasMap = typeof Map === 'function';
|
|
65
|
+
var hasSet = typeof Set === 'function';
|
|
66
|
+
var hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView;
|
|
67
|
+
|
|
68
|
+
// Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js
|
|
69
|
+
|
|
70
|
+
function equal(a, b) {
|
|
71
|
+
// START: fast-deep-equal es6/index.js 3.1.3
|
|
72
|
+
if (a === b) return true;
|
|
73
|
+
if (a && b && _typeof(a) == 'object' && _typeof(b) == 'object') {
|
|
74
|
+
if (a.constructor !== b.constructor) return false;
|
|
75
|
+
var length, i, keys;
|
|
76
|
+
if (Array.isArray(a)) {
|
|
77
|
+
length = a.length;
|
|
78
|
+
if (length != b.length) return false;
|
|
79
|
+
for (i = length; i-- !== 0;) if (!equal(a[i], b[i])) return false;
|
|
80
|
+
return true;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
// START: Modifications:
|
|
84
|
+
// 1. Extra `has<Type> &&` helpers in initial condition allow es6 code
|
|
85
|
+
// to co-exist with es5.
|
|
86
|
+
// 2. Replace `for of` with es5 compliant iteration using `for`.
|
|
87
|
+
// Basically, take:
|
|
88
|
+
//
|
|
89
|
+
// ```js
|
|
90
|
+
// for (i of a.entries())
|
|
91
|
+
// if (!b.has(i[0])) return false;
|
|
92
|
+
// ```
|
|
93
|
+
//
|
|
94
|
+
// ... and convert to:
|
|
95
|
+
//
|
|
96
|
+
// ```js
|
|
97
|
+
// it = a.entries();
|
|
98
|
+
// while (!(i = it.next()).done)
|
|
99
|
+
// if (!b.has(i.value[0])) return false;
|
|
100
|
+
// ```
|
|
101
|
+
//
|
|
102
|
+
// **Note**: `i` access switches to `i.value`.
|
|
103
|
+
var it;
|
|
104
|
+
if (hasMap && a instanceof Map && b instanceof Map) {
|
|
105
|
+
if (a.size !== b.size) return false;
|
|
106
|
+
it = a.entries();
|
|
107
|
+
while (!(i = it.next()).done) if (!b.has(i.value[0])) return false;
|
|
108
|
+
it = a.entries();
|
|
109
|
+
while (!(i = it.next()).done) if (!equal(i.value[1], b.get(i.value[0]))) return false;
|
|
110
|
+
return true;
|
|
111
|
+
}
|
|
112
|
+
if (hasSet && a instanceof Set && b instanceof Set) {
|
|
113
|
+
if (a.size !== b.size) return false;
|
|
114
|
+
it = a.entries();
|
|
115
|
+
while (!(i = it.next()).done) if (!b.has(i.value[0])) return false;
|
|
116
|
+
return true;
|
|
117
|
+
}
|
|
118
|
+
// END: Modifications
|
|
119
|
+
|
|
120
|
+
if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {
|
|
121
|
+
length = a.length;
|
|
122
|
+
if (length != b.length) return false;
|
|
123
|
+
for (i = length; i-- !== 0;) if (a[i] !== b[i]) return false;
|
|
124
|
+
return true;
|
|
125
|
+
}
|
|
126
|
+
if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;
|
|
127
|
+
// START: Modifications:
|
|
128
|
+
// Apply guards for `Object.create(null)` handling. See:
|
|
129
|
+
// - https://github.com/FormidableLabs/react-fast-compare/issues/64
|
|
130
|
+
// - https://github.com/epoberezkin/fast-deep-equal/issues/49
|
|
131
|
+
if (a.valueOf !== Object.prototype.valueOf && typeof a.valueOf === 'function' && typeof b.valueOf === 'function') return a.valueOf() === b.valueOf();
|
|
132
|
+
if (a.toString !== Object.prototype.toString && typeof a.toString === 'function' && typeof b.toString === 'function') return a.toString() === b.toString();
|
|
133
|
+
// END: Modifications
|
|
134
|
+
|
|
135
|
+
keys = Object.keys(a);
|
|
136
|
+
length = keys.length;
|
|
137
|
+
if (length !== Object.keys(b).length) return false;
|
|
138
|
+
for (i = length; i-- !== 0;) if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;
|
|
139
|
+
// END: fast-deep-equal
|
|
140
|
+
|
|
141
|
+
// START: react-fast-compare
|
|
142
|
+
// custom handling for DOM elements
|
|
143
|
+
if (hasElementType && a instanceof Element) return false;
|
|
144
|
+
|
|
145
|
+
// custom handling for React/Preact
|
|
146
|
+
for (i = length; i-- !== 0;) {
|
|
147
|
+
if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {
|
|
148
|
+
// React-specific: avoid traversing React elements' _owner
|
|
149
|
+
// Preact-specific: avoid traversing Preact elements' __v and __o
|
|
150
|
+
// __v = $_original / $_vnode
|
|
151
|
+
// __o = $_owner
|
|
152
|
+
// These properties contain circular references and are not needed when
|
|
153
|
+
// comparing the actual elements (and not their owners)
|
|
154
|
+
// .$$typeof and ._store on just reasonable markers of elements
|
|
155
|
+
|
|
156
|
+
continue;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
// all other properties should be traversed as usual
|
|
160
|
+
if (!equal(a[keys[i]], b[keys[i]])) return false;
|
|
161
|
+
}
|
|
162
|
+
// END: react-fast-compare
|
|
163
|
+
|
|
164
|
+
// START: fast-deep-equal
|
|
165
|
+
return true;
|
|
166
|
+
}
|
|
167
|
+
return a !== a && b !== b;
|
|
168
|
+
}
|
|
169
|
+
// end fast-deep-equal
|
|
170
|
+
|
|
171
|
+
var reactFastCompare = function isEqual(a, b) {
|
|
172
|
+
try {
|
|
173
|
+
return equal(a, b);
|
|
174
|
+
} catch (error) {
|
|
175
|
+
if ((error.message || '').match(/stack|recursion/i)) {
|
|
176
|
+
// warn on circular references, don't crash
|
|
177
|
+
// browsers give this different errors name and messages:
|
|
178
|
+
// chrome/safari: "RangeError", "Maximum call stack size exceeded"
|
|
179
|
+
// firefox: "InternalError", too much recursion"
|
|
180
|
+
// edge: "Error", "Out of stack space"
|
|
181
|
+
console.warn('react-fast-compare cannot handle circular refs');
|
|
182
|
+
return false;
|
|
183
|
+
}
|
|
184
|
+
// some other error. we should definitely know about these
|
|
185
|
+
throw error;
|
|
186
|
+
}
|
|
187
|
+
};
|
|
188
|
+
|
|
189
|
+
var JsonRenderActivityRendererInner = function JsonRenderActivityRendererInner(_ref) {
|
|
190
|
+
var activityType = _ref.activityType,
|
|
191
|
+
content = _ref.content,
|
|
192
|
+
messageId = _ref.messageId,
|
|
193
|
+
registry = _ref.registry,
|
|
194
|
+
_ref$actionHandlers = _ref.actionHandlers,
|
|
195
|
+
actionHandlers = _ref$actionHandlers === void 0 ? {} : _ref$actionHandlers;
|
|
196
|
+
var isValidSchema = content && content.root && content.elements && content.elements[content.root];
|
|
197
|
+
var renderData = useMemo(function () {
|
|
198
|
+
return (content === null || content === void 0 ? void 0 : content.data) || {};
|
|
199
|
+
}, [content === null || content === void 0 ? void 0 : content.data]);
|
|
200
|
+
return /* @__PURE__ */React.createElement("div", {
|
|
201
|
+
"data-activity-type": activityType,
|
|
202
|
+
"data-message-id": messageId
|
|
203
|
+
}, /* @__PURE__ */React.createElement(DataProvider, {
|
|
204
|
+
initialData: renderData
|
|
205
|
+
}, /* @__PURE__ */React.createElement(VisibilityProvider, null, /* @__PURE__ */React.createElement(ActionProvider, {
|
|
206
|
+
handlers: actionHandlers
|
|
207
|
+
}, /* @__PURE__ */React.createElement(Renderer, {
|
|
208
|
+
tree: content,
|
|
209
|
+
registry: registry
|
|
210
|
+
})))));
|
|
211
|
+
};
|
|
212
|
+
var JsonRenderActivityRenderer = /*#__PURE__*/React.memo(JsonRenderActivityRendererInner, function (prevProps, nextProps) {
|
|
213
|
+
if (prevProps.registry !== nextProps.registry) return false;
|
|
214
|
+
if (prevProps.actionHandlers !== nextProps.actionHandlers) return false;
|
|
215
|
+
if (prevProps.content === nextProps.content) return true;
|
|
216
|
+
return reactFastCompare(prevProps.content, nextProps.content);
|
|
217
|
+
});
|
|
218
|
+
|
|
219
|
+
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
220
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
221
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
222
|
+
function extractSurfaceId(messages) {
|
|
223
|
+
var _iterator = _createForOfIteratorHelper(messages),
|
|
224
|
+
_step;
|
|
225
|
+
try {
|
|
226
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
227
|
+
var msg = _step.value;
|
|
228
|
+
if (msg.createSurface) return msg.createSurface.surfaceId;
|
|
229
|
+
if (msg.updateComponents) return msg.updateComponents.surfaceId;
|
|
230
|
+
if (msg.updateDataModel) return msg.updateDataModel.surfaceId;
|
|
231
|
+
if (msg.deleteSurface) return msg.deleteSurface.surfaceId;
|
|
232
|
+
}
|
|
233
|
+
} catch (err) {
|
|
234
|
+
_iterator.e(err);
|
|
235
|
+
} finally {
|
|
236
|
+
_iterator.f();
|
|
237
|
+
}
|
|
238
|
+
return null;
|
|
239
|
+
}
|
|
240
|
+
function isUIMessages(messages) {
|
|
241
|
+
return messages.some(function (msg) {
|
|
242
|
+
return msg.createSurface || msg.updateComponents || msg.deleteSurface;
|
|
243
|
+
});
|
|
244
|
+
}
|
|
245
|
+
function hasDeletionMessages(messages) {
|
|
246
|
+
return messages.some(function (msg) {
|
|
247
|
+
return msg.deleteSurface;
|
|
248
|
+
});
|
|
249
|
+
}
|
|
250
|
+
function hasCreationMessages(messages) {
|
|
251
|
+
return messages.some(function (msg) {
|
|
252
|
+
return msg.createSurface || msg.updateComponents;
|
|
253
|
+
});
|
|
254
|
+
}
|
|
255
|
+
var A2UIJsonRenderActivityRenderer = function A2UIJsonRenderActivityRenderer(_ref) {
|
|
256
|
+
var activityType = _ref.activityType,
|
|
257
|
+
content = _ref.content,
|
|
258
|
+
messageId = _ref.messageId,
|
|
259
|
+
ext = _ref.ext,
|
|
260
|
+
registry = _ref.registry,
|
|
261
|
+
actionHandlers = _ref.actionHandlers,
|
|
262
|
+
_ref$debug = _ref.debug,
|
|
263
|
+
debug = _ref$debug === void 0 ? false : _ref$debug;
|
|
264
|
+
useEffect(function () {
|
|
265
|
+
surfaceStateManager.setDebug(debug);
|
|
266
|
+
}, [debug]);
|
|
267
|
+
var _useState = useState(0),
|
|
268
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
269
|
+
schemaVersion = _useState2[0],
|
|
270
|
+
setSchemaVersion = _useState2[1];
|
|
271
|
+
var _useMemo = useMemo(function () {
|
|
272
|
+
var msgs = content.messages;
|
|
273
|
+
if (!Array.isArray(msgs) || msgs.length === 0) {
|
|
274
|
+
return {
|
|
275
|
+
surfaceId: null,
|
|
276
|
+
isUI: false,
|
|
277
|
+
isDeletion: false,
|
|
278
|
+
isCreation: false,
|
|
279
|
+
messages: []
|
|
280
|
+
};
|
|
281
|
+
}
|
|
282
|
+
return {
|
|
283
|
+
surfaceId: extractSurfaceId(msgs),
|
|
284
|
+
isUI: isUIMessages(msgs),
|
|
285
|
+
isDeletion: hasDeletionMessages(msgs),
|
|
286
|
+
isCreation: hasCreationMessages(msgs),
|
|
287
|
+
messages: msgs
|
|
288
|
+
};
|
|
289
|
+
}, [content.messages]),
|
|
290
|
+
surfaceId = _useMemo.surfaceId,
|
|
291
|
+
isUI = _useMemo.isUI,
|
|
292
|
+
isDeletion = _useMemo.isDeletion,
|
|
293
|
+
isCreation = _useMemo.isCreation,
|
|
294
|
+
messages = _useMemo.messages;
|
|
295
|
+
var initialSchema = useMemo(function () {
|
|
296
|
+
if (!surfaceId || messages.length === 0) {
|
|
297
|
+
return null;
|
|
298
|
+
}
|
|
299
|
+
if (debug) {
|
|
300
|
+
console.log("[A2UI Adapter] \u5904\u7406\u6D88\u606F:", {
|
|
301
|
+
messageId: messageId,
|
|
302
|
+
surfaceId: surfaceId,
|
|
303
|
+
messagesCount: messages.length,
|
|
304
|
+
messageTypes: messages.map(function (m) {
|
|
305
|
+
return Object.keys(m).filter(function (k) {
|
|
306
|
+
return ["createSurface", "updateComponents", "updateDataModel", "deleteSurface"].includes(k);
|
|
307
|
+
})[0];
|
|
308
|
+
}),
|
|
309
|
+
isUI: isUI,
|
|
310
|
+
isCreation: isCreation,
|
|
311
|
+
isDeletion: isDeletion,
|
|
312
|
+
cachedSurfaces: surfaceStateManager.getAllSurfaceIds()
|
|
313
|
+
});
|
|
314
|
+
}
|
|
315
|
+
if (isDeletion) {
|
|
316
|
+
surfaceStateManager.deleteSurface(surfaceId);
|
|
317
|
+
if (debug) {
|
|
318
|
+
console.log("[A2UI Adapter] \u5220\u9664 Surface:", surfaceId);
|
|
319
|
+
}
|
|
320
|
+
return null;
|
|
321
|
+
}
|
|
322
|
+
if (isCreation) {
|
|
323
|
+
var schema = convertA2UIMessagesToJsonRender(messages);
|
|
324
|
+
if (schema) {
|
|
325
|
+
var _messages$find;
|
|
326
|
+
var catalogId = (_messages$find = messages.find(function (m) {
|
|
327
|
+
return m.createSurface;
|
|
328
|
+
})) === null || _messages$find === void 0 || (_messages$find = _messages$find.createSurface) === null || _messages$find === void 0 ? void 0 : _messages$find.catalogId;
|
|
329
|
+
surfaceStateManager.registerSurface(surfaceId, schema, catalogId);
|
|
330
|
+
if (debug) {
|
|
331
|
+
console.log("[A2UI Adapter] \u521B\u5EFA\u578B\u6D88\u606F\uFF0C\u6CE8\u518C Surface:", {
|
|
332
|
+
surfaceId: surfaceId,
|
|
333
|
+
elementsCount: Object.keys(schema.elements).length,
|
|
334
|
+
data: schema.data
|
|
335
|
+
});
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
return schema;
|
|
339
|
+
}
|
|
340
|
+
var _iterator2 = _createForOfIteratorHelper(messages),
|
|
341
|
+
_step2;
|
|
342
|
+
try {
|
|
343
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
344
|
+
var msg = _step2.value;
|
|
345
|
+
if (msg.updateDataModel) {
|
|
346
|
+
var _msg$updateDataModel = msg.updateDataModel,
|
|
347
|
+
path = _msg$updateDataModel.path,
|
|
348
|
+
op = _msg$updateDataModel.op,
|
|
349
|
+
value = _msg$updateDataModel.value;
|
|
350
|
+
var success = surfaceStateManager.updateData(surfaceId, path, op || "replace", value);
|
|
351
|
+
if (debug) {
|
|
352
|
+
console.log("[A2UI Adapter] \u66F4\u65B0\u578B\u6D88\u606F\uFF0C\u66F4\u65B0\u6570\u636E:", {
|
|
353
|
+
surfaceId: surfaceId,
|
|
354
|
+
path: path,
|
|
355
|
+
op: op || "replace",
|
|
356
|
+
value: value,
|
|
357
|
+
success: success
|
|
358
|
+
});
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
} catch (err) {
|
|
363
|
+
_iterator2.e(err);
|
|
364
|
+
} finally {
|
|
365
|
+
_iterator2.f();
|
|
366
|
+
}
|
|
367
|
+
return null;
|
|
368
|
+
}, [messages, surfaceId, isCreation, isDeletion, isUI, debug, messageId]);
|
|
369
|
+
var handleSchemaUpdate = useCallback(function () {
|
|
370
|
+
if (debug) {
|
|
371
|
+
console.log("[A2UI Adapter] \u6536\u5230\u72B6\u6001\u66F4\u65B0\u901A\u77E5\uFF0C\u89E6\u53D1\u91CD\u6E32\u67D3");
|
|
372
|
+
}
|
|
373
|
+
setSchemaVersion(function (v) {
|
|
374
|
+
return v + 1;
|
|
375
|
+
});
|
|
376
|
+
}, [debug]);
|
|
377
|
+
useEffect(function () {
|
|
378
|
+
if (!isCreation || !surfaceId) {
|
|
379
|
+
return;
|
|
380
|
+
}
|
|
381
|
+
if (debug) {
|
|
382
|
+
console.log("[A2UI Adapter] \u8BA2\u9605 Surface \u72B6\u6001:", surfaceId);
|
|
383
|
+
}
|
|
384
|
+
var unsubscribe = surfaceStateManager.subscribe(surfaceId, handleSchemaUpdate);
|
|
385
|
+
return function () {
|
|
386
|
+
if (debug) {
|
|
387
|
+
console.log("[A2UI Adapter] \u53D6\u6D88\u8BA2\u9605 Surface \u72B6\u6001:", surfaceId);
|
|
388
|
+
}
|
|
389
|
+
unsubscribe();
|
|
390
|
+
};
|
|
391
|
+
}, [isCreation, surfaceId, handleSchemaUpdate, debug]);
|
|
392
|
+
var currentSchema = useMemo(function () {
|
|
393
|
+
if (!isCreation || !surfaceId) {
|
|
394
|
+
return null;
|
|
395
|
+
}
|
|
396
|
+
return surfaceStateManager.getSchema(surfaceId) || initialSchema;
|
|
397
|
+
}, [isCreation, surfaceId, initialSchema, schemaVersion]);
|
|
398
|
+
if (!isUI) {
|
|
399
|
+
if (debug && messages.length > 0) {
|
|
400
|
+
console.log("[A2UI Adapter] \u7EAF\u6570\u636E\u66F4\u65B0\u6D88\u606F\uFF0C\u8DF3\u8FC7\u6E32\u67D3");
|
|
401
|
+
}
|
|
402
|
+
return null;
|
|
403
|
+
}
|
|
404
|
+
if (isDeletion && !isCreation) {
|
|
405
|
+
if (debug) {
|
|
406
|
+
console.log("[A2UI Adapter] \u5220\u9664\u578B\u6D88\u606F\uFF0C\u8DF3\u8FC7\u6E32\u67D3");
|
|
407
|
+
}
|
|
408
|
+
return null;
|
|
409
|
+
}
|
|
410
|
+
return /* @__PURE__ */React.createElement(JsonRenderActivityRenderer, {
|
|
411
|
+
activityType: activityType,
|
|
412
|
+
content: currentSchema,
|
|
413
|
+
messageId: messageId,
|
|
414
|
+
ext: ext,
|
|
415
|
+
registry: registry,
|
|
416
|
+
actionHandlers: actionHandlers
|
|
417
|
+
});
|
|
418
|
+
};
|
|
419
|
+
|
|
420
|
+
var _excluded$2 = ["value", "defaultValue", "placeholder", "disabled", "readonly", "size", "type", "maxlength", "clearable", "status", "onChange", "onBlur", "onFocus", "onEnter", "onClear"],
|
|
421
|
+
_excluded2$1 = ["label", "valuePath", "placeholder", "type", "disabled", "size"];
|
|
422
|
+
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; }
|
|
423
|
+
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; }
|
|
424
|
+
var JsonRenderInput = function JsonRenderInput(_ref) {
|
|
425
|
+
var element = _ref.element;
|
|
426
|
+
var _element$props = element.props,
|
|
427
|
+
value = _element$props.value,
|
|
428
|
+
defaultValue = _element$props.defaultValue,
|
|
429
|
+
placeholder = _element$props.placeholder,
|
|
430
|
+
_element$props$disabl = _element$props.disabled,
|
|
431
|
+
disabled = _element$props$disabl === void 0 ? false : _element$props$disabl,
|
|
432
|
+
_element$props$readon = _element$props.readonly,
|
|
433
|
+
readonly = _element$props$readon === void 0 ? false : _element$props$readon,
|
|
434
|
+
_element$props$size = _element$props.size,
|
|
435
|
+
size = _element$props$size === void 0 ? "medium" : _element$props$size,
|
|
436
|
+
_element$props$type = _element$props.type,
|
|
437
|
+
type = _element$props$type === void 0 ? "text" : _element$props$type,
|
|
438
|
+
maxlength = _element$props.maxlength,
|
|
439
|
+
_element$props$cleara = _element$props.clearable,
|
|
440
|
+
clearable = _element$props$cleara === void 0 ? false : _element$props$cleara,
|
|
441
|
+
status = _element$props.status,
|
|
442
|
+
onChange = _element$props.onChange,
|
|
443
|
+
onBlur = _element$props.onBlur,
|
|
444
|
+
onFocus = _element$props.onFocus,
|
|
445
|
+
onEnter = _element$props.onEnter,
|
|
446
|
+
onClear = _element$props.onClear,
|
|
447
|
+
restProps = _objectWithoutProperties(_element$props, _excluded$2);
|
|
448
|
+
return /* @__PURE__ */React.createElement(Input, _objectSpread$4({
|
|
449
|
+
value: value,
|
|
450
|
+
defaultValue: defaultValue,
|
|
451
|
+
placeholder: placeholder,
|
|
452
|
+
disabled: disabled,
|
|
453
|
+
readonly: readonly,
|
|
454
|
+
size: size,
|
|
455
|
+
type: type,
|
|
456
|
+
maxlength: maxlength,
|
|
457
|
+
clearable: clearable,
|
|
458
|
+
status: status,
|
|
459
|
+
onChange: onChange,
|
|
460
|
+
onBlur: onBlur,
|
|
461
|
+
onFocus: onFocus,
|
|
462
|
+
onEnter: onEnter,
|
|
463
|
+
onClear: onClear
|
|
464
|
+
}, restProps));
|
|
465
|
+
};
|
|
466
|
+
JsonRenderInput.displayName = "JsonRenderInput";
|
|
467
|
+
var JsonRenderTextField = function JsonRenderTextField(_ref2) {
|
|
468
|
+
var _getByPath;
|
|
469
|
+
var element = _ref2.element;
|
|
470
|
+
var _element$props2 = element.props,
|
|
471
|
+
label = _element$props2.label,
|
|
472
|
+
valuePath = _element$props2.valuePath,
|
|
473
|
+
placeholder = _element$props2.placeholder,
|
|
474
|
+
_element$props2$type = _element$props2.type,
|
|
475
|
+
type = _element$props2$type === void 0 ? "text" : _element$props2$type,
|
|
476
|
+
_element$props2$disab = _element$props2.disabled,
|
|
477
|
+
disabled = _element$props2$disab === void 0 ? false : _element$props2$disab,
|
|
478
|
+
_element$props2$size = _element$props2.size,
|
|
479
|
+
size = _element$props2$size === void 0 ? "medium" : _element$props2$size,
|
|
480
|
+
restProps = _objectWithoutProperties(_element$props2, _excluded2$1);
|
|
481
|
+
var _useData = useData(),
|
|
482
|
+
data = _useData.data,
|
|
483
|
+
set = _useData.set;
|
|
484
|
+
var value = valuePath ? (_getByPath = getByPath(data, valuePath)) !== null && _getByPath !== void 0 ? _getByPath : "" : "";
|
|
485
|
+
var handleChange = function handleChange(newValue) {
|
|
486
|
+
if (valuePath) {
|
|
487
|
+
set(valuePath, newValue);
|
|
488
|
+
}
|
|
489
|
+
};
|
|
490
|
+
if (label) {
|
|
491
|
+
return /* @__PURE__ */React.createElement(Space, {
|
|
492
|
+
direction: "vertical",
|
|
493
|
+
size: 4,
|
|
494
|
+
style: {
|
|
495
|
+
width: "100%"
|
|
496
|
+
}
|
|
497
|
+
}, /* @__PURE__ */React.createElement("label", {
|
|
498
|
+
style: {
|
|
499
|
+
fontSize: "14px",
|
|
500
|
+
fontWeight: 500
|
|
501
|
+
}
|
|
502
|
+
}, label), /* @__PURE__ */React.createElement(Input, _objectSpread$4({
|
|
503
|
+
value: value,
|
|
504
|
+
placeholder: placeholder,
|
|
505
|
+
type: type,
|
|
506
|
+
disabled: disabled,
|
|
507
|
+
size: size,
|
|
508
|
+
onChange: handleChange
|
|
509
|
+
}, restProps)));
|
|
510
|
+
}
|
|
511
|
+
return /* @__PURE__ */React.createElement(Input, _objectSpread$4({
|
|
512
|
+
value: value,
|
|
513
|
+
placeholder: placeholder,
|
|
514
|
+
type: type,
|
|
515
|
+
disabled: disabled,
|
|
516
|
+
size: size,
|
|
517
|
+
onChange: handleChange
|
|
518
|
+
}, restProps));
|
|
519
|
+
};
|
|
520
|
+
JsonRenderTextField.displayName = "JsonRenderTextField";
|
|
521
|
+
|
|
522
|
+
var _excluded$1 = ["valuePath", "disabledPath", "action", "disabled"];
|
|
523
|
+
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; }
|
|
524
|
+
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; }
|
|
525
|
+
function resolveActionParams(params, data) {
|
|
526
|
+
var maxDepth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 10;
|
|
527
|
+
var resolved = {};
|
|
528
|
+
var stack = [{
|
|
529
|
+
source: params,
|
|
530
|
+
target: resolved,
|
|
531
|
+
depth: 0
|
|
532
|
+
}];
|
|
533
|
+
while (stack.length > 0) {
|
|
534
|
+
var _stack$pop = stack.pop(),
|
|
535
|
+
source = _stack$pop.source,
|
|
536
|
+
target = _stack$pop.target,
|
|
537
|
+
depth = _stack$pop.depth;
|
|
538
|
+
if (depth >= maxDepth) {
|
|
539
|
+
Object.assign(target, source);
|
|
540
|
+
continue;
|
|
541
|
+
}
|
|
542
|
+
for (var _i = 0, _Object$entries = Object.entries(source); _i < _Object$entries.length; _i++) {
|
|
543
|
+
var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),
|
|
544
|
+
key = _Object$entries$_i[0],
|
|
545
|
+
value = _Object$entries$_i[1];
|
|
546
|
+
if (value && _typeof(value) === "object" && "path" in value) {
|
|
547
|
+
var pathValue = value.path;
|
|
548
|
+
target[key] = getByPath(data, pathValue);
|
|
549
|
+
} else if (value && _typeof(value) === "object" && !Array.isArray(value)) {
|
|
550
|
+
var nestedTarget = {};
|
|
551
|
+
target[key] = nestedTarget;
|
|
552
|
+
stack.push({
|
|
553
|
+
source: value,
|
|
554
|
+
target: nestedTarget,
|
|
555
|
+
depth: depth + 1
|
|
556
|
+
});
|
|
557
|
+
} else {
|
|
558
|
+
target[key] = value;
|
|
559
|
+
}
|
|
560
|
+
}
|
|
561
|
+
}
|
|
562
|
+
return resolved;
|
|
563
|
+
}
|
|
564
|
+
function A2UIBoundInner(_ref) {
|
|
565
|
+
var element = _ref.element,
|
|
566
|
+
children = _ref.children,
|
|
567
|
+
onAction = _ref.onAction,
|
|
568
|
+
WrappedComponent = _ref.WrappedComponent,
|
|
569
|
+
valueField = _ref.valueField,
|
|
570
|
+
onChangeField = _ref.onChangeField,
|
|
571
|
+
supportsAction = _ref.supportsAction,
|
|
572
|
+
actionTrigger = _ref.actionTrigger;
|
|
573
|
+
var _useData = useData(),
|
|
574
|
+
data = _useData.data,
|
|
575
|
+
set = _useData.set;
|
|
576
|
+
var _element$props = element.props,
|
|
577
|
+
valuePath = _element$props.valuePath,
|
|
578
|
+
disabledPath = _element$props.disabledPath,
|
|
579
|
+
action = _element$props.action,
|
|
580
|
+
staticDisabled = _element$props.disabled,
|
|
581
|
+
componentProps = _objectWithoutProperties(_element$props, _excluded$1);
|
|
582
|
+
var dataRef = useRef(data);
|
|
583
|
+
dataRef.current = data;
|
|
584
|
+
var boundValue = useMemo(function () {
|
|
585
|
+
if (valuePath) {
|
|
586
|
+
var _getByPath;
|
|
587
|
+
return (_getByPath = getByPath(data, valuePath)) !== null && _getByPath !== void 0 ? _getByPath : "";
|
|
588
|
+
}
|
|
589
|
+
return void 0;
|
|
590
|
+
}, [valuePath, valuePath ? getByPath(data, valuePath) : void 0]);
|
|
591
|
+
var boundDisabled = useMemo(function () {
|
|
592
|
+
if (disabledPath) {
|
|
593
|
+
return Boolean(getByPath(data, disabledPath));
|
|
594
|
+
}
|
|
595
|
+
return staticDisabled !== null && staticDisabled !== void 0 ? staticDisabled : false;
|
|
596
|
+
}, [disabledPath, disabledPath ? getByPath(data, disabledPath) : void 0, staticDisabled]);
|
|
597
|
+
var setRef = useRef(set);
|
|
598
|
+
setRef.current = set;
|
|
599
|
+
var handleChange = useCallback(function (newValue) {
|
|
600
|
+
if (valuePath) {
|
|
601
|
+
setRef.current(valuePath, newValue);
|
|
602
|
+
}
|
|
603
|
+
}, [valuePath]);
|
|
604
|
+
var handleAction = useCallback(function () {
|
|
605
|
+
if (!action || !onAction) return;
|
|
606
|
+
var actionObj = typeof action === "string" ? {
|
|
607
|
+
name: action,
|
|
608
|
+
params: {}
|
|
609
|
+
} : action;
|
|
610
|
+
var resolvedParams = actionObj.params ? resolveActionParams(actionObj.params, dataRef.current) : {};
|
|
611
|
+
var resolvedAction = {
|
|
612
|
+
name: actionObj.name,
|
|
613
|
+
params: resolvedParams
|
|
614
|
+
};
|
|
615
|
+
onAction(resolvedAction);
|
|
616
|
+
}, [action, onAction]);
|
|
617
|
+
var finalProps = useMemo(function () {
|
|
618
|
+
var props = _objectSpread$3(_objectSpread$3({}, componentProps), {}, {
|
|
619
|
+
disabled: boundDisabled
|
|
620
|
+
});
|
|
621
|
+
if (valuePath !== void 0) {
|
|
622
|
+
props[valueField] = boundValue;
|
|
623
|
+
props[onChangeField] = handleChange;
|
|
624
|
+
}
|
|
625
|
+
if (supportsAction && action) {
|
|
626
|
+
var originalHandler = componentProps[actionTrigger];
|
|
627
|
+
props[actionTrigger] = function () {
|
|
628
|
+
if (typeof originalHandler === "function") {
|
|
629
|
+
originalHandler.apply(void 0, arguments);
|
|
630
|
+
}
|
|
631
|
+
handleAction.apply(void 0, arguments);
|
|
632
|
+
};
|
|
633
|
+
}
|
|
634
|
+
return props;
|
|
635
|
+
}, [componentProps, boundDisabled, valuePath, valueField, boundValue, onChangeField, handleChange, supportsAction, action, actionTrigger, handleAction]);
|
|
636
|
+
return /* @__PURE__ */React.createElement(WrappedComponent, _objectSpread$3({}, finalProps), children);
|
|
637
|
+
}
|
|
638
|
+
function withA2UIBinding(WrappedComponent) {
|
|
639
|
+
var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
640
|
+
var _config$valueField = config.valueField,
|
|
641
|
+
valueField = _config$valueField === void 0 ? "value" : _config$valueField,
|
|
642
|
+
_config$onChangeField = config.onChangeField,
|
|
643
|
+
onChangeField = _config$onChangeField === void 0 ? "onChange" : _config$onChangeField,
|
|
644
|
+
_config$supportsActio = config.supportsAction,
|
|
645
|
+
supportsAction = _config$supportsActio === void 0 ? false : _config$supportsActio,
|
|
646
|
+
_config$actionTrigger = config.actionTrigger,
|
|
647
|
+
actionTrigger = _config$actionTrigger === void 0 ? "onClick" : _config$actionTrigger;
|
|
648
|
+
var A2UIBoundComponent = function A2UIBoundComponent(props) {
|
|
649
|
+
return /* @__PURE__ */React.createElement(A2UIBoundInner, _objectSpread$3(_objectSpread$3({}, props), {}, {
|
|
650
|
+
WrappedComponent: WrappedComponent,
|
|
651
|
+
valueField: valueField,
|
|
652
|
+
onChangeField: onChangeField,
|
|
653
|
+
supportsAction: supportsAction,
|
|
654
|
+
actionTrigger: actionTrigger
|
|
655
|
+
}));
|
|
656
|
+
};
|
|
657
|
+
A2UIBoundComponent.displayName = "withA2UIBinding(".concat(WrappedComponent.displayName || WrappedComponent.name || "Component", ")");
|
|
658
|
+
return /*#__PURE__*/memo(A2UIBoundComponent, function (prevProps, nextProps) {
|
|
659
|
+
if (prevProps.element === nextProps.element) return true;
|
|
660
|
+
var prevEl = prevProps.element;
|
|
661
|
+
var nextEl = nextProps.element;
|
|
662
|
+
if (prevEl.type !== nextEl.type) return false;
|
|
663
|
+
if (prevEl.key !== nextEl.key) return false;
|
|
664
|
+
var prevElProps = prevEl.props || {};
|
|
665
|
+
var nextElProps = nextEl.props || {};
|
|
666
|
+
var prevKeys = Object.keys(prevElProps);
|
|
667
|
+
var nextKeys = Object.keys(nextElProps);
|
|
668
|
+
if (prevKeys.length !== nextKeys.length) return false;
|
|
669
|
+
for (var _i2 = 0, _prevKeys = prevKeys; _i2 < _prevKeys.length; _i2++) {
|
|
670
|
+
var key = _prevKeys[_i2];
|
|
671
|
+
if (prevElProps[key] !== nextElProps[key]) return false;
|
|
672
|
+
}
|
|
673
|
+
return true;
|
|
674
|
+
});
|
|
675
|
+
}
|
|
676
|
+
|
|
677
|
+
var _excluded = ["label"],
|
|
678
|
+
_excluded2 = ["label", "children"];
|
|
679
|
+
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; }
|
|
680
|
+
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; }
|
|
681
|
+
var BaseInput = function BaseInput(_ref) {
|
|
682
|
+
var label = _ref.label,
|
|
683
|
+
props = _objectWithoutProperties(_ref, _excluded);
|
|
684
|
+
if (label) {
|
|
685
|
+
return /* @__PURE__ */React.createElement(Space, {
|
|
686
|
+
direction: "vertical",
|
|
687
|
+
size: 4,
|
|
688
|
+
style: {
|
|
689
|
+
width: "100%"
|
|
690
|
+
}
|
|
691
|
+
}, /* @__PURE__ */React.createElement("label", {
|
|
692
|
+
style: {
|
|
693
|
+
fontSize: "14px",
|
|
694
|
+
fontWeight: 500
|
|
695
|
+
}
|
|
696
|
+
}, label), /* @__PURE__ */React.createElement(Input, _objectSpread$2({}, props)));
|
|
697
|
+
}
|
|
698
|
+
return /* @__PURE__ */React.createElement(Input, _objectSpread$2({}, props));
|
|
699
|
+
};
|
|
700
|
+
BaseInput.displayName = "BaseInput";
|
|
701
|
+
var BaseButton = function BaseButton(_ref2) {
|
|
702
|
+
var label = _ref2.label,
|
|
703
|
+
children = _ref2.children,
|
|
704
|
+
props = _objectWithoutProperties(_ref2, _excluded2);
|
|
705
|
+
var content = label || children;
|
|
706
|
+
return /* @__PURE__ */React.createElement(Button, _objectSpread$2({}, props), content);
|
|
707
|
+
};
|
|
708
|
+
BaseButton.displayName = "BaseButton";
|
|
709
|
+
var A2UITextField = withA2UIBinding(BaseInput, {
|
|
710
|
+
valueField: "value",
|
|
711
|
+
onChangeField: "onChange",
|
|
712
|
+
supportsAction: false
|
|
713
|
+
});
|
|
714
|
+
var A2UIButton = withA2UIBinding(BaseButton, {
|
|
715
|
+
supportsAction: true
|
|
716
|
+
});
|
|
717
|
+
var a2uiRegistry = {
|
|
718
|
+
TextField: A2UITextField,
|
|
719
|
+
Button: A2UIButton,
|
|
720
|
+
Card: JsonRenderCard,
|
|
721
|
+
Text: JsonRenderText,
|
|
722
|
+
Row: JsonRenderRow,
|
|
723
|
+
Col: JsonRenderCol,
|
|
724
|
+
Space: JsonRenderSpace,
|
|
725
|
+
Column: JsonRenderColumn,
|
|
726
|
+
Divider: JsonRenderDivider
|
|
727
|
+
};
|
|
728
|
+
function createA2UIRegistry(customComponents) {
|
|
729
|
+
return _objectSpread$2(_objectSpread$2({}, a2uiRegistry), customComponents);
|
|
730
|
+
}
|
|
731
|
+
|
|
732
|
+
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; }
|
|
733
|
+
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; }
|
|
734
|
+
function withStableProps(Component) {
|
|
735
|
+
return /*#__PURE__*/React.memo(Component, function (prevProps, nextProps) {
|
|
736
|
+
var prevElement = prevProps.element;
|
|
737
|
+
var nextElement = nextProps.element;
|
|
738
|
+
if (prevElement === nextElement) return true;
|
|
739
|
+
if (prevElement.id !== nextElement.id || prevElement.type !== nextElement.type) {
|
|
740
|
+
return false;
|
|
741
|
+
}
|
|
742
|
+
return reactFastCompare(prevElement.props, nextElement.props);
|
|
743
|
+
});
|
|
744
|
+
}
|
|
745
|
+
var tdesignRegistry = {
|
|
746
|
+
Button: JsonRenderButton,
|
|
747
|
+
Input: JsonRenderInput,
|
|
748
|
+
TextField: JsonRenderTextField,
|
|
749
|
+
Card: JsonRenderCard,
|
|
750
|
+
Text: JsonRenderText,
|
|
751
|
+
Row: JsonRenderRow,
|
|
752
|
+
Col: JsonRenderCol,
|
|
753
|
+
Space: JsonRenderSpace,
|
|
754
|
+
Column: JsonRenderColumn,
|
|
755
|
+
Divider: JsonRenderDivider,
|
|
756
|
+
button: JsonRenderButton,
|
|
757
|
+
input: JsonRenderInput,
|
|
758
|
+
textfield: JsonRenderTextField,
|
|
759
|
+
card: JsonRenderCard,
|
|
760
|
+
text: JsonRenderText,
|
|
761
|
+
row: JsonRenderRow,
|
|
762
|
+
col: JsonRenderCol,
|
|
763
|
+
space: JsonRenderSpace,
|
|
764
|
+
column: JsonRenderColumn,
|
|
765
|
+
divider: JsonRenderDivider
|
|
766
|
+
};
|
|
767
|
+
function createCustomRegistry(customComponents) {
|
|
768
|
+
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
769
|
+
var _options$enableStable = options.enableStableProps,
|
|
770
|
+
enableStableProps = _options$enableStable === void 0 ? true : _options$enableStable;
|
|
771
|
+
var processedComponents = {};
|
|
772
|
+
if (enableStableProps) {
|
|
773
|
+
for (var _i = 0, _Object$entries = Object.entries(customComponents); _i < _Object$entries.length; _i++) {
|
|
774
|
+
var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),
|
|
775
|
+
name = _Object$entries$_i[0],
|
|
776
|
+
Component = _Object$entries$_i[1];
|
|
777
|
+
processedComponents[name] = withStableProps(Component);
|
|
778
|
+
}
|
|
779
|
+
} else {
|
|
780
|
+
Object.assign(processedComponents, customComponents);
|
|
781
|
+
}
|
|
782
|
+
return _objectSpread$1(_objectSpread$1({}, tdesignRegistry), processedComponents);
|
|
783
|
+
}
|
|
784
|
+
|
|
785
|
+
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; }
|
|
786
|
+
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; }
|
|
787
|
+
function createJsonRenderActivityConfig() {
|
|
788
|
+
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
789
|
+
var _options$activityType = options.activityType,
|
|
790
|
+
activityType = _options$activityType === void 0 ? "json-render" : _options$activityType,
|
|
791
|
+
_options$registry = options.registry,
|
|
792
|
+
registry = _options$registry === void 0 ? tdesignRegistry : _options$registry,
|
|
793
|
+
_options$actionHandle = options.actionHandlers,
|
|
794
|
+
actionHandlers = _options$actionHandle === void 0 ? {} : _options$actionHandle,
|
|
795
|
+
_options$debug = options.debug,
|
|
796
|
+
debug = _options$debug === void 0 ? false : _options$debug,
|
|
797
|
+
_options$description = options.description,
|
|
798
|
+
description = _options$description === void 0 ? "json-render \u52A8\u6001 UI \u6E32\u67D3\u5668" : _options$description;
|
|
799
|
+
return {
|
|
800
|
+
activityType: activityType,
|
|
801
|
+
component: /*#__PURE__*/React.memo(function (props) {
|
|
802
|
+
return /* @__PURE__ */React.createElement(JsonRenderActivityRenderer, _objectSpread(_objectSpread({}, props), {}, {
|
|
803
|
+
registry: registry,
|
|
804
|
+
actionHandlers: actionHandlers,
|
|
805
|
+
debug: debug
|
|
806
|
+
}));
|
|
807
|
+
}),
|
|
808
|
+
description: description
|
|
809
|
+
};
|
|
810
|
+
}
|
|
811
|
+
var defaultJsonRenderActivityConfig = createJsonRenderActivityConfig();
|
|
812
|
+
function createA2UIJsonRenderActivityConfig() {
|
|
813
|
+
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
814
|
+
var _options$activityType2 = options.activityType,
|
|
815
|
+
activityType = _options$activityType2 === void 0 ? "a2ui-json-render" : _options$activityType2,
|
|
816
|
+
_options$registry2 = options.registry,
|
|
817
|
+
registry = _options$registry2 === void 0 ? a2uiRegistry : _options$registry2,
|
|
818
|
+
_options$actionHandle2 = options.actionHandlers,
|
|
819
|
+
actionHandlers = _options$actionHandle2 === void 0 ? {} : _options$actionHandle2,
|
|
820
|
+
_options$debug2 = options.debug,
|
|
821
|
+
debug = _options$debug2 === void 0 ? false : _options$debug2,
|
|
822
|
+
_options$description2 = options.description,
|
|
823
|
+
description = _options$description2 === void 0 ? "A2UI + json-render \u9002\u914D\u6E32\u67D3\u5668" : _options$description2;
|
|
824
|
+
return {
|
|
825
|
+
activityType: activityType,
|
|
826
|
+
component: /*#__PURE__*/React.memo(function (props) {
|
|
827
|
+
return /* @__PURE__ */React.createElement(A2UIJsonRenderActivityRenderer, _objectSpread(_objectSpread({}, props), {}, {
|
|
828
|
+
registry: registry,
|
|
829
|
+
actionHandlers: actionHandlers,
|
|
830
|
+
debug: debug
|
|
831
|
+
}));
|
|
832
|
+
}),
|
|
833
|
+
description: description
|
|
834
|
+
};
|
|
835
|
+
}
|
|
836
|
+
var defaultA2UIJsonRenderActivityConfig = createA2UIJsonRenderActivityConfig();
|
|
837
|
+
|
|
838
|
+
export { A2UIJsonRenderActivityRenderer as A, JsonRenderActivityRenderer as J, a2uiRegistry as a, createA2UIRegistry as b, createCustomRegistry as c, A2UITextField as d, A2UIButton as e, withA2UIBinding as f, JsonRenderInput as g, createJsonRenderActivityConfig as h, defaultJsonRenderActivityConfig as i, createA2UIJsonRenderActivityConfig as j, defaultA2UIJsonRenderActivityConfig as k, JsonRenderTextField as l, tdesignRegistry as t, withStableProps as w };
|
|
839
|
+
//# sourceMappingURL=dep-870f0d35.js.map
|