@lynx-js/react 0.121.1 → 0.121.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/CHANGELOG.md +26 -0
- package/package.json +4 -4
- package/runtime/lazy/element-template-import.js +73 -0
- package/runtime/lazy/import.js +4 -0
- package/runtime/lazy/target.js +23 -0
- package/runtime/lib/{snapshot/legacy-react-runtime/index.d.ts → core/compat/legacy-react-runtime.d.ts} +4 -4
- package/runtime/lib/{snapshot/legacy-react-runtime/index.js → core/compat/legacy-react-runtime.js} +6 -6
- package/runtime/lib/core/compat/legacy-react-runtime.js.map +1 -0
- package/runtime/lib/{snapshot → core}/compat/lynxComponent.d.ts +2 -1
- package/runtime/lib/{snapshot → core}/compat/lynxComponent.js +11 -5
- package/runtime/lib/core/compat/lynxComponent.js.map +1 -0
- package/runtime/lib/core/component.d.ts +2 -0
- package/runtime/lib/{snapshot/lynx → core}/component.js +37 -31
- package/runtime/lib/core/component.js.map +1 -0
- package/runtime/lib/{snapshot/lynx/dynamic-js.js → core/lynx/dynamic-import.js} +1 -1
- package/runtime/lib/core/lynx/dynamic-import.js.map +1 -0
- package/runtime/lib/core/lynx/lazy-bundle.js.map +1 -0
- package/runtime/lib/core/lynx/runtime-backend.d.ts +5 -0
- package/runtime/lib/core/lynx/runtime-backend.js +20 -0
- package/runtime/lib/core/lynx/runtime-backend.js.map +1 -0
- package/runtime/lib/core/performance.d.ts +30 -0
- package/runtime/lib/core/performance.js +145 -0
- package/runtime/lib/core/performance.js.map +1 -0
- package/runtime/lib/element-template/background/commit-hook.js +2 -2
- package/runtime/lib/element-template/background/commit-hook.js.map +1 -1
- package/runtime/lib/element-template/background/document.js +7 -1
- package/runtime/lib/element-template/background/document.js.map +1 -1
- package/runtime/lib/element-template/background/hydrate.d.ts +2 -3
- package/runtime/lib/element-template/background/hydrate.js +211 -55
- package/runtime/lib/element-template/background/hydrate.js.map +1 -1
- package/runtime/lib/element-template/background/hydration-listener.js +6 -25
- package/runtime/lib/element-template/background/hydration-listener.js.map +1 -1
- package/runtime/lib/element-template/background/instance.d.ts +30 -3
- package/runtime/lib/element-template/background/instance.js +209 -28
- package/runtime/lib/element-template/background/instance.js.map +1 -1
- package/runtime/lib/element-template/debug/alog.d.ts +14 -0
- package/runtime/lib/element-template/debug/alog.js +23 -0
- package/runtime/lib/element-template/debug/alog.js.map +1 -1
- package/runtime/lib/element-template/debug/elementPAPICall.js +1 -0
- package/runtime/lib/element-template/debug/elementPAPICall.js.map +1 -1
- package/runtime/lib/element-template/index.d.ts +3 -2
- package/runtime/lib/element-template/index.js +6 -7
- package/runtime/lib/element-template/index.js.map +1 -1
- package/runtime/lib/element-template/internal.d.ts +4 -0
- package/runtime/lib/element-template/internal.js +4 -4
- package/runtime/lib/element-template/internal.js.map +1 -1
- package/runtime/lib/element-template/lynx/performance.d.ts +0 -21
- package/runtime/lib/element-template/lynx/performance.js +4 -121
- package/runtime/lib/element-template/lynx/performance.js.map +1 -1
- package/runtime/lib/element-template/native/index.js +1 -1
- package/runtime/lib/element-template/native/index.js.map +1 -1
- package/runtime/lib/element-template/native/main-thread-api.js +1 -1
- package/runtime/lib/element-template/native/main-thread-api.js.map +1 -1
- package/runtime/lib/element-template/native/mts-destroy.js +2 -0
- package/runtime/lib/element-template/native/mts-destroy.js.map +1 -1
- package/runtime/lib/element-template/native/patch-listener.js +1 -1
- package/runtime/lib/element-template/native/patch-listener.js.map +1 -1
- package/runtime/lib/element-template/native/reload-background.d.ts +1 -0
- package/runtime/lib/element-template/native/{reload.js → reload-background.js} +1 -26
- package/runtime/lib/element-template/native/reload-background.js.map +1 -0
- package/runtime/lib/element-template/native/{reload.d.ts → reload-main-thread.d.ts} +0 -1
- package/runtime/lib/element-template/native/reload-main-thread.js +35 -0
- package/runtime/lib/element-template/native/reload-main-thread.js.map +1 -0
- package/runtime/lib/element-template/protocol/opcodes.d.ts +3 -0
- package/runtime/lib/element-template/protocol/opcodes.js +3 -0
- package/runtime/lib/element-template/protocol/opcodes.js.map +1 -1
- package/runtime/lib/element-template/protocol/template-type.d.ts +6 -0
- package/runtime/lib/element-template/protocol/template-type.js +20 -0
- package/runtime/lib/element-template/protocol/template-type.js.map +1 -0
- package/runtime/lib/element-template/protocol/types.d.ts +33 -13
- package/runtime/lib/element-template/runtime/list/list.d.ts +65 -0
- package/runtime/lib/element-template/runtime/list/list.js +587 -0
- package/runtime/lib/element-template/runtime/list/list.js.map +1 -0
- package/runtime/lib/element-template/runtime/patch.js +177 -74
- package/runtime/lib/element-template/runtime/patch.js.map +1 -1
- package/runtime/lib/element-template/runtime/render/render-main-thread.js +13 -0
- package/runtime/lib/element-template/runtime/render/render-main-thread.js.map +1 -1
- package/runtime/lib/element-template/runtime/render/render-opcodes.js +80 -43
- package/runtime/lib/element-template/runtime/render/render-opcodes.js.map +1 -1
- package/runtime/lib/element-template/runtime/render/render-to-opcodes.js +32 -1
- package/runtime/lib/element-template/runtime/render/render-to-opcodes.js.map +1 -1
- package/runtime/lib/element-template/runtime/template/handle.d.ts +3 -2
- package/runtime/lib/element-template/runtime/template/handle.js +5 -0
- package/runtime/lib/element-template/runtime/template/handle.js.map +1 -1
- package/runtime/lib/element-template/runtime/template/registry.d.ts +2 -0
- package/runtime/lib/element-template/runtime/template/registry.js +5 -0
- package/runtime/lib/element-template/runtime/template/registry.js.map +1 -1
- package/runtime/lib/element-template/runtime-backend-marker.js +6 -0
- package/runtime/lib/element-template/runtime-backend-marker.js.map +1 -0
- package/runtime/lib/index.d.ts +1 -1
- package/runtime/lib/index.js +3 -1
- package/runtime/lib/index.js.map +1 -1
- package/runtime/lib/internal.d.ts +4 -3
- package/runtime/lib/internal.js +5 -4
- package/runtime/lib/internal.js.map +1 -1
- package/runtime/lib/runtime-backend-marker.d.ts +1 -0
- package/runtime/lib/runtime-backend-marker.js +6 -0
- package/runtime/lib/runtime-backend-marker.js.map +1 -0
- package/runtime/lib/snapshot/lifecycle/patch/commit.js +1 -1
- package/runtime/lib/snapshot/lifecycle/patch/commit.js.map +1 -1
- package/runtime/lib/snapshot/lifecycle/patch/updateMainThread.js +1 -1
- package/runtime/lib/snapshot/lifecycle/patch/updateMainThread.js.map +1 -1
- package/runtime/lib/snapshot/lynx/calledByNative.js +1 -1
- package/runtime/lib/snapshot/lynx/calledByNative.js.map +1 -1
- package/runtime/lib/snapshot/lynx/performance.d.ts +0 -21
- package/runtime/lib/snapshot/lynx/performance.js +7 -121
- package/runtime/lib/snapshot/lynx/performance.js.map +1 -1
- package/runtime/lib/snapshot/lynx/tt.js +1 -1
- package/runtime/lib/snapshot/lynx/tt.js.map +1 -1
- package/runtime/lib/snapshot/snapshot/backgroundSnapshot.js +1 -1
- package/runtime/lib/snapshot/snapshot/backgroundSnapshot.js.map +1 -1
- package/runtime/lib/snapshot/snapshot/snapshot.js +1 -1
- package/runtime/lib/snapshot/snapshot/snapshot.js.map +1 -1
- package/runtime/lib/tsconfig.tsbuildinfo +1 -1
- package/runtime/worklet-runtime/dev.js +1 -2
- package/runtime/worklet-runtime/main.js +1 -1
- package/testing-library/dist/{rslib-runtime.js → 0~rslib-runtime.js} +14 -13
- package/testing-library/dist/env/vitest.js +1 -1
- package/testing-library/dist/plugins/index.js +1 -1
- package/testing-library/dist/pure.js +18 -18
- package/testing-library/dist/rstest-config.js +2 -4
- package/testing-library/dist/setupFiles/common/bootstrap.js +1 -0
- package/testing-library/dist/setupFiles/common/runtime-setup.js +1 -1
- package/testing-library/dist/setupFiles/inner/rstest.js +2 -1
- package/testing-library/dist/setupFiles/inner/vitest.js +2 -1
- package/testing-library/dist/type-entry/index.js +1 -0
- package/transform/dist/wasm.cjs +113 -40
- package/runtime/lib/element-template/native/reload.js.map +0 -1
- package/runtime/lib/snapshot/compat/lynxComponent.js.map +0 -1
- package/runtime/lib/snapshot/legacy-react-runtime/index.js.map +0 -1
- package/runtime/lib/snapshot/lynx/component.js.map +0 -1
- package/runtime/lib/snapshot/lynx/dynamic-js.js.map +0 -1
- package/runtime/lib/snapshot/lynx/lazy-bundle.js.map +0 -1
- package/testing-library/dist/881.js +0 -1
- /package/runtime/lib/{snapshot/lynx/dynamic-js.d.ts → core/lynx/dynamic-import.d.ts} +0 -0
- /package/runtime/lib/{snapshot → core}/lynx/lazy-bundle.d.ts +0 -0
- /package/runtime/lib/{snapshot → core}/lynx/lazy-bundle.js +0 -0
- /package/runtime/lib/{snapshot/lynx/component.d.ts → element-template/runtime-backend-marker.d.ts} +0 -0
- /package/testing-library/dist/{0~123.js → 0~@rstest/adapter-rsbuild.js} +0 -0
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// Copyright 2026 The Lynx Authors. All rights reserved.
|
|
2
2
|
// Licensed under the Apache License Version 2.0 that can be found in the
|
|
3
3
|
// LICENSE file in the root directory of this source tree.
|
|
4
|
+
import { composeElementTemplateListAttributes, createElementTemplateListStateFromItems, flushInitialElementTemplateListUpdates, flushPendingElementTemplateListUpdates, insertElementTemplateListItem, markElementTemplateListDestroyed, registerElementTemplateListState, removeElementTemplateListItem, updateElementTemplateListAttributes, updateElementTemplateListItem, } from './list/list.js';
|
|
4
5
|
import { elementTemplateRegistry } from './template/registry.js';
|
|
5
6
|
import { ElementTemplateUpdateOps } from '../protocol/opcodes.js';
|
|
6
7
|
export function applyElementTemplateUpdateCommands(stream) {
|
|
@@ -22,10 +23,10 @@ export function applyElementTemplateUpdateCommands(stream) {
|
|
|
22
23
|
}
|
|
23
24
|
}
|
|
24
25
|
const resolvedElementSlots = resolveElementSlots(elementSlots);
|
|
25
|
-
if (
|
|
26
|
+
if (resolvedElementSlots === undefined) {
|
|
26
27
|
continue;
|
|
27
28
|
}
|
|
28
|
-
const nativeRef = __CreateElementTemplate(templateKey, bundleUrl, normalizeAttributeSlots(attributeSlots), resolvedElementSlots
|
|
29
|
+
const nativeRef = __CreateElementTemplate(templateKey, bundleUrl, normalizeAttributeSlots(attributeSlots), resolvedElementSlots, handleId);
|
|
29
30
|
if (nativeRef) {
|
|
30
31
|
elementTemplateRegistry.set(handleId, nativeRef);
|
|
31
32
|
}
|
|
@@ -35,10 +36,17 @@ export function applyElementTemplateUpdateCommands(stream) {
|
|
|
35
36
|
const targetId = stream[i++];
|
|
36
37
|
const attrSlotIndex = stream[i++];
|
|
37
38
|
const value = stream[i++];
|
|
38
|
-
const nativeRef =
|
|
39
|
+
const nativeRef = resolveTargetHandle(targetId, 'target');
|
|
39
40
|
if (!nativeRef) {
|
|
40
41
|
continue;
|
|
41
42
|
}
|
|
43
|
+
if (attrSlotIndex === 0) {
|
|
44
|
+
const listAttributes = updateElementTemplateListAttributes(targetId, value);
|
|
45
|
+
if (listAttributes) {
|
|
46
|
+
__SetAttributeOfElementTemplate(nativeRef, attrSlotIndex, listAttributes, null);
|
|
47
|
+
break;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
42
50
|
__SetAttributeOfElementTemplate(nativeRef, attrSlotIndex, value, null);
|
|
43
51
|
break;
|
|
44
52
|
}
|
|
@@ -48,6 +56,7 @@ export function applyElementTemplateUpdateCommands(stream) {
|
|
|
48
56
|
const attributes = stream[i++];
|
|
49
57
|
const elementSlots = stream[i++];
|
|
50
58
|
const options = stream[i++];
|
|
59
|
+
const isTypedList = type === 'list';
|
|
51
60
|
if (__DEV__) {
|
|
52
61
|
const createError = validateCreateHandleId(handleId);
|
|
53
62
|
if (createError) {
|
|
@@ -55,28 +64,91 @@ export function applyElementTemplateUpdateCommands(stream) {
|
|
|
55
64
|
continue;
|
|
56
65
|
}
|
|
57
66
|
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
67
|
+
if (__DEV__ && elementSlots != null && !Array.isArray(elementSlots)) {
|
|
68
|
+
lynx.reportError(new Error('ElementTemplate update create elementSlots must be an array, null, or undefined.'));
|
|
69
|
+
continue;
|
|
70
|
+
}
|
|
71
|
+
if (__DEV__
|
|
72
|
+
&& isTypedList
|
|
73
|
+
&& !isTypedListElementSlotsEmpty(elementSlots)) {
|
|
74
|
+
lynx.reportError(new Error('ElementTemplate typed list create must keep logical children in options.listChildren.'));
|
|
75
|
+
continue;
|
|
76
|
+
}
|
|
77
|
+
const resolvedElementSlots = isTypedList ? null : resolveElementSlots(elementSlots);
|
|
78
|
+
if (resolvedElementSlots === undefined) {
|
|
61
79
|
continue;
|
|
62
80
|
}
|
|
63
|
-
|
|
81
|
+
let resolvedListItems = null;
|
|
82
|
+
let nativeOptions;
|
|
83
|
+
if (isTypedList) {
|
|
84
|
+
const listChildren = getTypedListChildren(options);
|
|
85
|
+
if (__DEV__ && !Array.isArray(listChildren)) {
|
|
86
|
+
lynx.reportError(new Error('ElementTemplate typed list create must keep logical children in options.listChildren.'));
|
|
87
|
+
continue;
|
|
88
|
+
}
|
|
89
|
+
resolvedListItems = resolveTypedListItems(listChildren);
|
|
90
|
+
if (resolvedListItems === null) {
|
|
91
|
+
continue;
|
|
92
|
+
}
|
|
93
|
+
nativeOptions = resolveTypedListOptions(options, resolvedListItems);
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
nativeOptions = options;
|
|
97
|
+
}
|
|
98
|
+
const listState = resolvedListItems
|
|
99
|
+
? createElementTemplateListStateFromItems(resolvedListItems, attributes)
|
|
100
|
+
: null;
|
|
101
|
+
const typedAttributes = listState
|
|
102
|
+
? composeElementTemplateListAttributes(undefined, listState)
|
|
103
|
+
: attributes;
|
|
104
|
+
const nativeRef = __CreateTypedElementTemplate(type, typedAttributes, isTypedList ? null : resolvedElementSlots, handleId, nativeOptions);
|
|
64
105
|
if (nativeRef) {
|
|
65
106
|
elementTemplateRegistry.set(handleId, nativeRef);
|
|
107
|
+
if (listState) {
|
|
108
|
+
registerElementTemplateListState(handleId, listState, true, nativeRef);
|
|
109
|
+
}
|
|
66
110
|
}
|
|
67
111
|
break;
|
|
68
112
|
}
|
|
113
|
+
case ElementTemplateUpdateOps.insertTypedListItem: {
|
|
114
|
+
const listId = stream[i++];
|
|
115
|
+
const item = stream[i++];
|
|
116
|
+
const beforeId = stream[i++];
|
|
117
|
+
const resolvedItem = resolveTypedListItem(item, 'typed list insert item');
|
|
118
|
+
if (resolvedItem === null) {
|
|
119
|
+
continue;
|
|
120
|
+
}
|
|
121
|
+
insertElementTemplateListItem(listId, resolvedItem, beforeId);
|
|
122
|
+
break;
|
|
123
|
+
}
|
|
124
|
+
case ElementTemplateUpdateOps.removeTypedListItem: {
|
|
125
|
+
const listId = stream[i++];
|
|
126
|
+
const itemId = stream[i++];
|
|
127
|
+
const removedSubtreeHandleIds = stream[i++];
|
|
128
|
+
removeElementTemplateListItem(listId, itemId, removedSubtreeHandleIds);
|
|
129
|
+
break;
|
|
130
|
+
}
|
|
131
|
+
case ElementTemplateUpdateOps.updateTypedListItem: {
|
|
132
|
+
const listId = stream[i++];
|
|
133
|
+
const item = stream[i++];
|
|
134
|
+
const resolvedItem = resolveTypedListItem(item, 'typed list update item');
|
|
135
|
+
if (resolvedItem === null) {
|
|
136
|
+
continue;
|
|
137
|
+
}
|
|
138
|
+
updateElementTemplateListItem(listId, resolvedItem);
|
|
139
|
+
break;
|
|
140
|
+
}
|
|
69
141
|
case ElementTemplateUpdateOps.insertNode: {
|
|
70
142
|
const targetId = stream[i++];
|
|
71
143
|
const elementSlotIndex = stream[i++];
|
|
72
144
|
const childId = stream[i++];
|
|
73
145
|
const referenceId = stream[i++];
|
|
74
|
-
const nativeRef =
|
|
75
|
-
const childRef =
|
|
146
|
+
const nativeRef = resolveTargetHandle(targetId, 'target');
|
|
147
|
+
const childRef = resolveTargetHandle(childId, 'child');
|
|
76
148
|
if (!nativeRef || !childRef) {
|
|
77
149
|
continue;
|
|
78
150
|
}
|
|
79
|
-
const referenceRef = referenceId === 0 ? null :
|
|
151
|
+
const referenceRef = referenceId === 0 ? null : resolveTargetHandle(referenceId, 'reference');
|
|
80
152
|
if (referenceId !== 0 && !referenceRef) {
|
|
81
153
|
continue;
|
|
82
154
|
}
|
|
@@ -88,92 +160,123 @@ export function applyElementTemplateUpdateCommands(stream) {
|
|
|
88
160
|
const elementSlotIndex = stream[i++];
|
|
89
161
|
const childId = stream[i++];
|
|
90
162
|
const removedSubtreeHandleIds = stream[i++];
|
|
91
|
-
const nativeRef =
|
|
92
|
-
const childRef =
|
|
163
|
+
const nativeRef = resolveTargetHandle(targetId, 'target');
|
|
164
|
+
const childRef = resolveTargetHandle(childId, 'child');
|
|
93
165
|
if (!nativeRef || !childRef) {
|
|
94
166
|
continue;
|
|
95
167
|
}
|
|
96
168
|
__RemoveNodeFromElementTemplate(nativeRef, elementSlotIndex, childRef);
|
|
97
|
-
|
|
98
|
-
// strong refs after a successful detach lets JS GC reclaim the subtree.
|
|
99
|
-
for (const handleId of removedSubtreeHandleIds) {
|
|
100
|
-
elementTemplateRegistry.delete(handleId);
|
|
101
|
-
}
|
|
169
|
+
releaseRemovedSubtreeHandles(removedSubtreeHandleIds);
|
|
102
170
|
break;
|
|
103
171
|
}
|
|
104
172
|
default: {
|
|
105
|
-
|
|
173
|
+
if (__DEV__) {
|
|
174
|
+
lynx.reportError(new Error(`ElementTemplate update opcode ${String(op)} is not supported.`));
|
|
175
|
+
}
|
|
106
176
|
}
|
|
107
177
|
}
|
|
108
178
|
}
|
|
179
|
+
flushPendingListUpdates();
|
|
180
|
+
}
|
|
181
|
+
function flushPendingListUpdates() {
|
|
182
|
+
applyListFlushResults(flushPendingElementTemplateListUpdates());
|
|
183
|
+
applyListFlushResults(flushInitialElementTemplateListUpdates());
|
|
184
|
+
}
|
|
185
|
+
function applyListFlushResults(results) {
|
|
186
|
+
for (let index = 0; index < results.length; index += 1) {
|
|
187
|
+
const result = results[index];
|
|
188
|
+
const listRef = resolveTargetHandle(result.uid, 'typed list');
|
|
189
|
+
if (!listRef) {
|
|
190
|
+
continue;
|
|
191
|
+
}
|
|
192
|
+
__SetAttributeOfElementTemplate(listRef, 0, result.attributes, null);
|
|
193
|
+
if (result.removedSubtreeHandleIds) {
|
|
194
|
+
releaseRemovedSubtreeHandles(result.removedSubtreeHandleIds);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
function releaseRemovedSubtreeHandles(removedSubtreeHandleIds) {
|
|
199
|
+
for (const handleId of removedSubtreeHandleIds) {
|
|
200
|
+
const pendingRemovedSubtreeHandleIds = markElementTemplateListDestroyed(handleId);
|
|
201
|
+
elementTemplateRegistry.delete(handleId);
|
|
202
|
+
if (pendingRemovedSubtreeHandleIds) {
|
|
203
|
+
releaseRemovedSubtreeHandles(pendingRemovedSubtreeHandleIds);
|
|
204
|
+
}
|
|
205
|
+
}
|
|
109
206
|
}
|
|
110
207
|
function resolveElementSlots(elementSlots) {
|
|
111
|
-
if (
|
|
112
|
-
return
|
|
208
|
+
if (elementSlots == null) {
|
|
209
|
+
return null;
|
|
113
210
|
}
|
|
114
211
|
let hasError = false;
|
|
115
|
-
const value =
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
212
|
+
const value = [];
|
|
213
|
+
for (let slotIndex = 0; slotIndex < elementSlots.length; slotIndex += 1) {
|
|
214
|
+
const children = elementSlots[slotIndex];
|
|
215
|
+
if (children == null) {
|
|
216
|
+
continue;
|
|
217
|
+
}
|
|
218
|
+
if (__DEV__ && !Array.isArray(children)) {
|
|
219
|
+
lynx.reportError(new Error(`ElementTemplate create slot ${slotIndex} must be an array of child handles, null, or undefined.`));
|
|
220
|
+
hasError = true;
|
|
221
|
+
continue;
|
|
122
222
|
}
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
const
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
if (__DEV__ && childRef === null) {
|
|
223
|
+
const resolvedChildren = [];
|
|
224
|
+
for (let childIndex = 0; childIndex < children.length; childIndex += 1) {
|
|
225
|
+
const childId = children[childIndex];
|
|
226
|
+
const childRef = resolveTargetHandle(childId, 'child');
|
|
227
|
+
if (childRef === null) {
|
|
129
228
|
hasError = true;
|
|
229
|
+
continue;
|
|
130
230
|
}
|
|
131
|
-
|
|
132
|
-
})
|
|
133
|
-
.filter((childRef) => childRef !== null);
|
|
134
|
-
});
|
|
135
|
-
return { hasError, value };
|
|
136
|
-
}
|
|
137
|
-
function resolveRuntimeOptions(options) {
|
|
138
|
-
if (options == null) {
|
|
139
|
-
return { hasError: false, value: options };
|
|
140
|
-
}
|
|
141
|
-
const listChildren = options.listChildren;
|
|
142
|
-
if (!Array.isArray(listChildren)) {
|
|
143
|
-
return { hasError: false, value: options };
|
|
144
|
-
}
|
|
145
|
-
const resolvedListChildren = [];
|
|
146
|
-
for (let index = 0; index < listChildren.length; index++) {
|
|
147
|
-
const child = listChildren[index];
|
|
148
|
-
if (child == null
|
|
149
|
-
|| typeof child !== 'object'
|
|
150
|
-
|| !('__etHandleRef' in child)
|
|
151
|
-
|| !Number.isInteger(child.__etHandleRef)) {
|
|
152
|
-
lynx.reportError(new Error(`ElementTemplate update options.listChildren[${index}] must contain a valid __etHandleRef.`));
|
|
153
|
-
return {
|
|
154
|
-
hasError: true,
|
|
155
|
-
value: null,
|
|
156
|
-
};
|
|
231
|
+
resolvedChildren.push(childRef);
|
|
157
232
|
}
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
233
|
+
value[slotIndex] = resolvedChildren;
|
|
234
|
+
}
|
|
235
|
+
if (hasError) {
|
|
236
|
+
return undefined;
|
|
237
|
+
}
|
|
238
|
+
return value;
|
|
239
|
+
}
|
|
240
|
+
function resolveTypedListOptions(options, items) {
|
|
241
|
+
return {
|
|
242
|
+
...options,
|
|
243
|
+
listChildren: items.map(item => item.ref),
|
|
244
|
+
};
|
|
245
|
+
}
|
|
246
|
+
function getTypedListChildren(options) {
|
|
247
|
+
return (__DEV__ ? options?.listChildren : options.listChildren);
|
|
248
|
+
}
|
|
249
|
+
function resolveTypedListItems(items) {
|
|
250
|
+
const resolvedItems = [];
|
|
251
|
+
for (let index = 0; index < items.length; index += 1) {
|
|
252
|
+
const resolvedItem = resolveTypedListItem(items[index], `typed list item ${index}`);
|
|
253
|
+
if (resolvedItem === null) {
|
|
254
|
+
return null;
|
|
164
255
|
}
|
|
165
|
-
|
|
256
|
+
resolvedItems.push(resolvedItem);
|
|
257
|
+
}
|
|
258
|
+
return resolvedItems;
|
|
259
|
+
}
|
|
260
|
+
function resolveTypedListItem(item, role) {
|
|
261
|
+
const ref = resolveTargetHandle(item.__etHandleRef, role);
|
|
262
|
+
if (ref === null) {
|
|
263
|
+
return null;
|
|
166
264
|
}
|
|
167
265
|
return {
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
}),
|
|
266
|
+
uid: item.__etHandleRef,
|
|
267
|
+
ref,
|
|
268
|
+
templateKey: item.type,
|
|
269
|
+
platformInfo: item.platformInfo,
|
|
173
270
|
};
|
|
174
271
|
}
|
|
175
|
-
function
|
|
176
|
-
|
|
272
|
+
function isTypedListElementSlotsEmpty(elementSlots) {
|
|
273
|
+
if (!Array.isArray(elementSlots)) {
|
|
274
|
+
return true;
|
|
275
|
+
}
|
|
276
|
+
return elementSlots.every(slot => slot == null || (Array.isArray(slot) && slot.length === 0));
|
|
277
|
+
}
|
|
278
|
+
function resolveTargetHandle(id, role) {
|
|
279
|
+
const nativeRef = elementTemplateRegistry.getTarget(id);
|
|
177
280
|
if (!nativeRef) {
|
|
178
281
|
lynx.reportError(new Error(`ElementTemplate update ${role} handle ${id} not found.`));
|
|
179
282
|
return null;
|
|
@@ -206,7 +309,7 @@ function validateCreateTemplatePayload(handleId, attributeSlots, elementSlots) {
|
|
|
206
309
|
return null;
|
|
207
310
|
}
|
|
208
311
|
function normalizeAttributeSlots(attributeSlots) {
|
|
209
|
-
if (
|
|
312
|
+
if (attributeSlots == null) {
|
|
210
313
|
return attributeSlots;
|
|
211
314
|
}
|
|
212
315
|
return attributeSlots.map((value) => (value === undefined ? null : value));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"patch.js","sourceRoot":"","sources":["../../../src/element-template/runtime/patch.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"patch.js","sourceRoot":"","sources":["../../../src/element-template/runtime/patch.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,8 +9,10 @@ import { render as renderToString } from './render-to-opcodes.js';
|
|
|
9
9
|
import { getReloadVersion } from '../../../core/reload-version.js';
|
|
10
10
|
import { profileEnd, profileStart } from '../../debug/profile.js';
|
|
11
11
|
import { ElementTemplateLifecycleConstant } from '../../protocol/lifecycle-constant.js';
|
|
12
|
+
import { flushInitialElementTemplateListUpdates } from '../list/list.js';
|
|
12
13
|
import { insertRootIntoPage, removeRootFromPage } from '../page/page.js';
|
|
13
14
|
import { __root } from '../page/root-instance.js';
|
|
15
|
+
import { getElementTemplateNativeRef } from '../template/registry.js';
|
|
14
16
|
// ET reload reuses the native page, so the main-thread render path owns the
|
|
15
17
|
// root refs it appended and can remove only those roots before rebuilding.
|
|
16
18
|
let mainThreadRootRefs = [];
|
|
@@ -43,6 +45,7 @@ function renderMainThread() {
|
|
|
43
45
|
for (const rootRef of rootRefs) {
|
|
44
46
|
insertRootIntoPage(rootRef);
|
|
45
47
|
}
|
|
48
|
+
flushInitialListUpdates();
|
|
46
49
|
mainThreadRootRefs = rootRefs;
|
|
47
50
|
}
|
|
48
51
|
finally {
|
|
@@ -67,5 +70,15 @@ function renderMainThread() {
|
|
|
67
70
|
profileEnd();
|
|
68
71
|
}
|
|
69
72
|
}
|
|
73
|
+
function flushInitialListUpdates() {
|
|
74
|
+
const results = flushInitialElementTemplateListUpdates();
|
|
75
|
+
for (let index = 0; index < results.length; index += 1) {
|
|
76
|
+
const result = results[index];
|
|
77
|
+
const listRef = getElementTemplateNativeRef(result.uid);
|
|
78
|
+
if (listRef) {
|
|
79
|
+
__SetAttributeOfElementTemplate(listRef, 0, result.attributes, null);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
70
83
|
export { removeMainThreadRootRefs, renderMainThread, resetMainThreadRootRefs };
|
|
71
84
|
//# sourceMappingURL=render-main-thread.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render-main-thread.js","sourceRoot":"","sources":["../../../../src/element-template/runtime/render/render-main-thread.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAE1D;;GAEG;AAEH,OAAO,EAAE,gCAAgC,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,MAAM,IAAI,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,gCAAgC,EAAE,MAAM,sCAAsC,CAAC;AAExF,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"render-main-thread.js","sourceRoot":"","sources":["../../../../src/element-template/runtime/render/render-main-thread.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,86 +2,110 @@
|
|
|
2
2
|
// Licensed under the Apache License Version 2.0 that can be found in the
|
|
3
3
|
// LICENSE file in the root directory of this source tree.
|
|
4
4
|
import { __OpAttr, __OpBegin, __OpEnd, __OpSlot, __OpText } from './render-to-opcodes.js';
|
|
5
|
+
import { parseElementTemplateType } from '../../protocol/template-type.js';
|
|
6
|
+
import { composeElementTemplateListAttributes, createElementTemplateListState, registerElementTemplateListItem, registerElementTemplateListState, } from '../list/list.js';
|
|
5
7
|
import { __etAttrPlanMap } from '../template/attr-slot-plan.js';
|
|
6
|
-
import { createElementTemplateWithReservedHandle, reserveElementTemplateId } from '../template/handle.js';
|
|
8
|
+
import { createElementTemplateWithReservedHandle, createTypedElementTemplateWithReservedHandle, reserveElementTemplateId, } from '../template/handle.js';
|
|
7
9
|
const BUILTIN_RAW_TEXT_TEMPLATE_KEY = '_et_builtin_raw_text';
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
return;
|
|
12
|
-
}
|
|
13
|
-
/* v8 ignore end */
|
|
10
|
+
const TYPED_LIST_HOST_TYPE = 'list';
|
|
11
|
+
const EMPTY_LIST_ITEM_UIDS = [];
|
|
12
|
+
function appendChildToParent(parentTemplateKey, parentActiveElementSlot, parentListItemUids, rootRefs, elementRef, uid) {
|
|
14
13
|
if (parentTemplateKey === null) {
|
|
15
14
|
rootRefs.push(elementRef);
|
|
16
15
|
return;
|
|
17
16
|
}
|
|
18
|
-
if (!parentActiveElementSlot) {
|
|
17
|
+
if (__DEV__ && !parentActiveElementSlot) {
|
|
19
18
|
throw new Error(`Template '${parentTemplateKey}' received a child outside of any element slot.`);
|
|
20
19
|
}
|
|
21
20
|
parentActiveElementSlot.push(elementRef);
|
|
21
|
+
parentListItemUids?.push(uid);
|
|
22
22
|
}
|
|
23
23
|
export function renderOpcodesIntoElementTemplate(opcodes) {
|
|
24
24
|
const rootRefs = [];
|
|
25
|
-
const
|
|
25
|
+
const typeStack = [null];
|
|
26
26
|
const attributeSlotsStack = [undefined];
|
|
27
|
+
const typedAttributesStack = [undefined];
|
|
27
28
|
const elementSlotsStack = [undefined];
|
|
29
|
+
const listItemUidsStack = [undefined];
|
|
28
30
|
const activeElementSlotStack = [undefined];
|
|
31
|
+
const activeListItemUidsStack = [undefined];
|
|
32
|
+
const listItemPlatformInfoStack = [undefined];
|
|
33
|
+
const deferredListItemMarkerStack = [false];
|
|
29
34
|
let stackTop = 0;
|
|
30
35
|
for (let i = 0; i < opcodes.length;) {
|
|
31
36
|
const opcode = opcodes[i];
|
|
32
37
|
switch (opcode) {
|
|
33
38
|
case __OpBegin: {
|
|
34
39
|
const vnode = opcodes[i + 1];
|
|
40
|
+
const props = vnode.props;
|
|
35
41
|
stackTop += 1;
|
|
36
|
-
|
|
42
|
+
typeStack[stackTop] = vnode.type;
|
|
37
43
|
attributeSlotsStack[stackTop] = undefined;
|
|
44
|
+
typedAttributesStack[stackTop] = undefined;
|
|
38
45
|
elementSlotsStack[stackTop] = undefined;
|
|
46
|
+
listItemUidsStack[stackTop] = undefined;
|
|
39
47
|
activeElementSlotStack[stackTop] = undefined;
|
|
48
|
+
activeListItemUidsStack[stackTop] = undefined;
|
|
49
|
+
listItemPlatformInfoStack[stackTop] = props?.['__listItemPlatformInfo'];
|
|
50
|
+
deferredListItemMarkerStack[stackTop] = props?.['isReady'] !== undefined;
|
|
40
51
|
i += 2;
|
|
41
52
|
break;
|
|
42
53
|
}
|
|
43
54
|
case __OpEnd: {
|
|
44
|
-
if (stackTop === 0) {
|
|
55
|
+
if (__DEV__ && stackTop === 0) {
|
|
45
56
|
throw new Error('Instruction mismatch: Popped root frame at __OpEnd');
|
|
46
57
|
}
|
|
47
|
-
const
|
|
58
|
+
const type = typeStack[stackTop];
|
|
48
59
|
const attributeSlots = attributeSlotsStack[stackTop];
|
|
60
|
+
const typedAttributes = typedAttributesStack[stackTop];
|
|
49
61
|
const elementSlots = elementSlotsStack[stackTop];
|
|
62
|
+
const listItemUids = listItemUidsStack[stackTop];
|
|
63
|
+
const listItemPlatformInfo = listItemPlatformInfoStack[stackTop];
|
|
64
|
+
const deferredListItemMarker = deferredListItemMarkerStack[stackTop];
|
|
50
65
|
stackTop -= 1;
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
// The Root frame is manually pushed and has no __OpBegin.
|
|
54
|
-
// So we should never pop the Root frame via __OpEnd unless there's an extra End.
|
|
55
|
-
if (templateKey === null) {
|
|
56
|
-
// This should effectively not happen if opcodes are balanced?
|
|
57
|
-
// Actually, if we are at root, and opcode has __OpEnd, it implies we are closing a component.
|
|
58
|
-
// The structure is: Root -> [Begin ... End] -> Root.
|
|
59
|
-
// Wait, if opcodes list ends, loop finishes.
|
|
60
|
-
// __OpEnd corresponds to a component.
|
|
61
|
-
// So if we pop, we must get a valid component frame.
|
|
62
|
-
/* v8 ignore start -- the synthetic root frame cannot be popped by balanced opcodes. */
|
|
63
|
-
throw new Error('Instruction mismatch: Popped root frame at __OpEnd');
|
|
64
|
-
/* v8 ignore end */
|
|
65
|
-
}
|
|
66
|
-
const concreteTemplateKey = templateKey;
|
|
67
|
-
const parentTemplateKey = templateKeyStack[stackTop];
|
|
66
|
+
const concreteType = type;
|
|
67
|
+
const parentTemplateKey = stackTop === 0 ? null : typeStack[stackTop];
|
|
68
68
|
const parentActiveElementSlot = activeElementSlotStack[stackTop];
|
|
69
|
-
const
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
69
|
+
const parentListItemUids = activeListItemUidsStack[stackTop];
|
|
70
|
+
if (concreteType === TYPED_LIST_HOST_TYPE) {
|
|
71
|
+
const listChildren = elementSlots?.[0] ?? [];
|
|
72
|
+
const listState = createElementTemplateListState(listItemUids ?? EMPTY_LIST_ITEM_UIDS, typedAttributes ?? null);
|
|
73
|
+
const attrsWithCallbacks = composeElementTemplateListAttributes(undefined, listState);
|
|
74
|
+
const handleId = reserveElementTemplateId();
|
|
75
|
+
const elementRef = createTypedElementTemplateWithReservedHandle(handleId, TYPED_LIST_HOST_TYPE, attrsWithCallbacks, null, { listChildren });
|
|
76
|
+
registerElementTemplateListState(handleId, listState, true, elementRef);
|
|
77
|
+
appendChildToParent(parentTemplateKey, parentActiveElementSlot, parentListItemUids, rootRefs, elementRef, handleId);
|
|
78
|
+
i += 1;
|
|
79
|
+
break;
|
|
74
80
|
}
|
|
75
|
-
|
|
76
|
-
|
|
81
|
+
if (__DEV__ && parentTemplateKey === TYPED_LIST_HOST_TYPE) {
|
|
82
|
+
if (deferredListItemMarker) {
|
|
83
|
+
throw new Error('Element Template typed list does not support deferred list items.');
|
|
84
|
+
}
|
|
85
|
+
if (listItemPlatformInfo === undefined) {
|
|
86
|
+
throw new Error('Element Template typed list received a non-list-item root in logical slot $0.');
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
const attrPlan = __etAttrPlanMap[concreteType];
|
|
90
|
+
const handleId = reserveElementTemplateId();
|
|
91
|
+
let preparedAttributeSlots = attributeSlots ?? null;
|
|
92
|
+
if (attrPlan !== undefined) {
|
|
93
|
+
preparedAttributeSlots = attributeSlots?.slice() ?? [];
|
|
77
94
|
for (let planIndex = 0; planIndex < attrPlan.length; planIndex += 2) {
|
|
78
95
|
const attrSlotIndex = attrPlan[planIndex];
|
|
79
96
|
const adapter = attrPlan[planIndex + 1];
|
|
80
97
|
preparedAttributeSlots[attrSlotIndex] = adapter(handleId, attrSlotIndex, preparedAttributeSlots[attrSlotIndex]);
|
|
81
98
|
}
|
|
82
|
-
elementRef = createElementTemplateWithReservedHandle(handleId, concreteTemplateKey, null, preparedAttributeSlots, elementSlots ?? null);
|
|
83
99
|
}
|
|
84
|
-
|
|
100
|
+
const nativeTemplate = parseElementTemplateType(concreteType);
|
|
101
|
+
const elementRef = createElementTemplateWithReservedHandle(handleId, nativeTemplate.templateKey, nativeTemplate.bundleUrl, preparedAttributeSlots, elementSlots ?? null);
|
|
102
|
+
if (listItemPlatformInfo !== undefined) {
|
|
103
|
+
registerElementTemplateListItem(handleId, elementRef, {
|
|
104
|
+
templateKey: concreteType,
|
|
105
|
+
platformInfo: listItemPlatformInfo,
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
appendChildToParent(parentTemplateKey, parentActiveElementSlot, parentListItemUids, rootRefs, elementRef, handleId);
|
|
85
109
|
i += 1;
|
|
86
110
|
break;
|
|
87
111
|
}
|
|
@@ -91,28 +115,44 @@ export function renderOpcodesIntoElementTemplate(opcodes) {
|
|
|
91
115
|
if (name === 'attributeSlots') {
|
|
92
116
|
attributeSlotsStack[stackTop] = value;
|
|
93
117
|
}
|
|
118
|
+
else if (name === 'typedAttributes') {
|
|
119
|
+
typedAttributesStack[stackTop] = value;
|
|
120
|
+
}
|
|
94
121
|
i += 3;
|
|
95
122
|
break;
|
|
96
123
|
}
|
|
97
124
|
case __OpSlot: {
|
|
98
125
|
const slotId = opcodes[i + 1];
|
|
126
|
+
if (__DEV__ && typeStack[stackTop] === TYPED_LIST_HOST_TYPE && slotId !== 0) {
|
|
127
|
+
throw new Error('Element Template typed list only supports logical slot $0.');
|
|
128
|
+
}
|
|
99
129
|
const elementSlots = elementSlotsStack[stackTop] ?? (elementSlotsStack[stackTop] = []);
|
|
100
130
|
const activeElementSlot = elementSlots[slotId] = [];
|
|
101
131
|
activeElementSlotStack[stackTop] = activeElementSlot;
|
|
132
|
+
if (typeStack[stackTop] === TYPED_LIST_HOST_TYPE && slotId === 0) {
|
|
133
|
+
const activeListItemUids = listItemUidsStack[stackTop] = [];
|
|
134
|
+
activeListItemUidsStack[stackTop] = activeListItemUids;
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
activeListItemUidsStack[stackTop] = undefined;
|
|
138
|
+
}
|
|
102
139
|
i += 2;
|
|
103
140
|
break;
|
|
104
141
|
}
|
|
105
142
|
case __OpText: {
|
|
106
143
|
const text = opcodes[i + 1];
|
|
144
|
+
const parentTemplateKey = stackTop === 0 ? null : typeStack[stackTop];
|
|
145
|
+
if (__DEV__ && parentTemplateKey === TYPED_LIST_HOST_TYPE) {
|
|
146
|
+
throw new Error('Element Template typed list received text logical child.');
|
|
147
|
+
}
|
|
107
148
|
const handleId = reserveElementTemplateId();
|
|
108
149
|
const textRef = createElementTemplateWithReservedHandle(handleId, BUILTIN_RAW_TEXT_TEMPLATE_KEY, null, [String(text)], []);
|
|
109
|
-
const parentTemplateKey = templateKeyStack[stackTop];
|
|
110
150
|
if (parentTemplateKey === null) {
|
|
111
151
|
rootRefs.push(textRef);
|
|
112
152
|
}
|
|
113
153
|
else {
|
|
114
154
|
const activeElementSlot = activeElementSlotStack[stackTop];
|
|
115
|
-
if (!activeElementSlot) {
|
|
155
|
+
if (__DEV__ && !activeElementSlot) {
|
|
116
156
|
throw new Error(`Template '${parentTemplateKey}' received a text child outside of any element slot.`);
|
|
117
157
|
}
|
|
118
158
|
activeElementSlot.push(textRef);
|
|
@@ -121,9 +161,6 @@ export function renderOpcodesIntoElementTemplate(opcodes) {
|
|
|
121
161
|
break;
|
|
122
162
|
}
|
|
123
163
|
default:
|
|
124
|
-
// Unknown opcode, maybe skip? or throw?
|
|
125
|
-
// renderToString loop increments manually.
|
|
126
|
-
// If we hit here, something is desync.
|
|
127
164
|
throw new Error(`Unknown opcode: ${opcode}`);
|
|
128
165
|
}
|
|
129
166
|
}
|