@lynx-js/react 0.121.0 → 0.121.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.
Files changed (167) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/package.json +2 -2
  3. package/runtime/lib/core/commit-context.d.ts +8 -0
  4. package/runtime/lib/core/commit-context.js +18 -0
  5. package/runtime/lib/core/commit-context.js.map +1 -0
  6. package/runtime/lib/core/forceRootRender.d.ts +7 -0
  7. package/runtime/lib/core/forceRootRender.js +40 -0
  8. package/runtime/lib/core/forceRootRender.js.map +1 -0
  9. package/runtime/lib/core/globalProps.d.ts +31 -0
  10. package/runtime/lib/core/globalProps.js +55 -0
  11. package/runtime/lib/core/globalProps.js.map +1 -0
  12. package/runtime/lib/core/hooks/useLynxGlobalEventListener.js +1 -1
  13. package/runtime/lib/core/hooks/useLynxGlobalEventListener.js.map +1 -1
  14. package/runtime/lib/{snapshot/compat → core}/initData.d.ts +1 -1
  15. package/runtime/lib/{snapshot/compat → core}/initData.js +4 -5
  16. package/runtime/lib/core/initData.js.map +1 -0
  17. package/runtime/lib/core/lynx-data-processors.d.ts +2 -0
  18. package/runtime/lib/core/lynx-data-processors.js +53 -0
  19. package/runtime/lib/core/lynx-data-processors.js.map +1 -0
  20. package/runtime/lib/core/lynx-page-data.d.ts +1 -0
  21. package/runtime/lib/core/lynx-page-data.js +14 -0
  22. package/runtime/lib/core/lynx-page-data.js.map +1 -0
  23. package/runtime/lib/core/lynx-update-data.d.ts +11 -0
  24. package/runtime/lib/core/lynx-update-data.js +21 -0
  25. package/runtime/lib/core/lynx-update-data.js.map +1 -0
  26. package/runtime/lib/core/ref.d.ts +37 -0
  27. package/runtime/lib/core/ref.js +108 -0
  28. package/runtime/lib/core/ref.js.map +1 -0
  29. package/runtime/lib/core/reload-version.d.ts +2 -0
  30. package/runtime/lib/{snapshot/lifecycle/pass.js → core/reload-version.js} +4 -5
  31. package/runtime/lib/core/reload-version.js.map +1 -0
  32. package/runtime/lib/element-template/background/attr-slots.d.ts +6 -1
  33. package/runtime/lib/element-template/background/attr-slots.js +35 -2
  34. package/runtime/lib/element-template/background/attr-slots.js.map +1 -1
  35. package/runtime/lib/element-template/background/commit-context.d.ts +3 -3
  36. package/runtime/lib/element-template/background/commit-context.js +15 -18
  37. package/runtime/lib/element-template/background/commit-context.js.map +1 -1
  38. package/runtime/lib/element-template/background/commit-hook.d.ts +1 -1
  39. package/runtime/lib/element-template/background/commit-hook.js +66 -41
  40. package/runtime/lib/element-template/background/commit-hook.js.map +1 -1
  41. package/runtime/lib/element-template/background/destroy.js +9 -6
  42. package/runtime/lib/element-template/background/destroy.js.map +1 -1
  43. package/runtime/lib/element-template/background/document.js +1 -7
  44. package/runtime/lib/element-template/background/document.js.map +1 -1
  45. package/runtime/lib/element-template/background/hydrate.d.ts +1 -1
  46. package/runtime/lib/element-template/background/hydrate.js +53 -36
  47. package/runtime/lib/element-template/background/hydrate.js.map +1 -1
  48. package/runtime/lib/element-template/background/hydration-listener.js +55 -9
  49. package/runtime/lib/element-template/background/hydration-listener.js.map +1 -1
  50. package/runtime/lib/element-template/background/instance.d.ts +12 -10
  51. package/runtime/lib/element-template/background/instance.js +113 -115
  52. package/runtime/lib/element-template/background/instance.js.map +1 -1
  53. package/runtime/lib/element-template/client/root.d.ts +7 -0
  54. package/runtime/lib/element-template/client/root.js +3 -6
  55. package/runtime/lib/element-template/client/root.js.map +1 -1
  56. package/runtime/lib/element-template/debug/alog.d.ts +7 -0
  57. package/runtime/lib/element-template/debug/alog.js +10 -0
  58. package/runtime/lib/element-template/debug/alog.js.map +1 -1
  59. package/runtime/lib/element-template/debug/elementPAPICall.js +4 -0
  60. package/runtime/lib/element-template/debug/elementPAPICall.js.map +1 -1
  61. package/runtime/lib/element-template/hydration-map.d.ts +5 -0
  62. package/runtime/lib/element-template/hydration-map.js +12 -0
  63. package/runtime/lib/element-template/hydration-map.js.map +1 -0
  64. package/runtime/lib/element-template/index.d.ts +22 -1
  65. package/runtime/lib/element-template/index.js +32 -2
  66. package/runtime/lib/element-template/index.js.map +1 -1
  67. package/runtime/lib/element-template/internal.d.ts +1 -1
  68. package/runtime/lib/element-template/internal.js +2 -3
  69. package/runtime/lib/element-template/internal.js.map +1 -1
  70. package/runtime/lib/element-template/lynx/env.js +5 -48
  71. package/runtime/lib/element-template/lynx/env.js.map +1 -1
  72. package/runtime/lib/element-template/native/index.d.ts +1 -1
  73. package/runtime/lib/element-template/native/index.js +28 -2
  74. package/runtime/lib/element-template/native/index.js.map +1 -1
  75. package/runtime/lib/element-template/native/main-thread-api.js +27 -5
  76. package/runtime/lib/element-template/native/main-thread-api.js.map +1 -1
  77. package/runtime/lib/element-template/native/patch-listener.js +5 -1
  78. package/runtime/lib/element-template/native/patch-listener.js.map +1 -1
  79. package/runtime/lib/element-template/native/reload.d.ts +2 -0
  80. package/runtime/lib/element-template/native/reload.js +64 -0
  81. package/runtime/lib/element-template/native/reload.js.map +1 -0
  82. package/runtime/lib/element-template/prop-adapters/event.d.ts +1 -0
  83. package/runtime/lib/element-template/prop-adapters/event.js +4 -1
  84. package/runtime/lib/element-template/prop-adapters/event.js.map +1 -1
  85. package/runtime/lib/element-template/prop-adapters/ref.d.ts +26 -0
  86. package/runtime/lib/element-template/prop-adapters/ref.js +107 -0
  87. package/runtime/lib/element-template/prop-adapters/ref.js.map +1 -0
  88. package/runtime/lib/element-template/prop-adapters/spread.js +8 -1
  89. package/runtime/lib/element-template/prop-adapters/spread.js.map +1 -1
  90. package/runtime/lib/element-template/protocol/opcodes.d.ts +1 -0
  91. package/runtime/lib/element-template/protocol/opcodes.js +1 -0
  92. package/runtime/lib/element-template/protocol/opcodes.js.map +1 -1
  93. package/runtime/lib/element-template/protocol/types.d.ts +50 -2
  94. package/runtime/lib/element-template/runtime/page/page.d.ts +5 -2
  95. package/runtime/lib/element-template/runtime/page/page.js +12 -0
  96. package/runtime/lib/element-template/runtime/page/page.js.map +1 -1
  97. package/runtime/lib/element-template/runtime/patch.js +70 -1
  98. package/runtime/lib/element-template/runtime/patch.js.map +1 -1
  99. package/runtime/lib/element-template/runtime/render/render-main-thread.d.ts +3 -1
  100. package/runtime/lib/element-template/runtime/render/render-main-thread.js +25 -7
  101. package/runtime/lib/element-template/runtime/render/render-main-thread.js.map +1 -1
  102. package/runtime/lib/element-template/runtime/render/render-to-opcodes.js +9 -3
  103. package/runtime/lib/element-template/runtime/render/render-to-opcodes.js.map +1 -1
  104. package/runtime/lib/element-template/runtime/template/attr-slot-plan.d.ts +1 -0
  105. package/runtime/lib/element-template/runtime/template/attr-slot-plan.js +4 -0
  106. package/runtime/lib/element-template/runtime/template/attr-slot-plan.js.map +1 -1
  107. package/runtime/lib/element-template/runtime/template/handle.js +0 -1
  108. package/runtime/lib/element-template/runtime/template/handle.js.map +1 -1
  109. package/runtime/lib/element-template/runtime/template/registry.js +1 -1
  110. package/runtime/lib/element-template/runtime/template/registry.js.map +1 -1
  111. package/runtime/lib/internal.d.ts +1 -1
  112. package/runtime/lib/internal.js +1 -1
  113. package/runtime/lib/internal.js.map +1 -1
  114. package/runtime/lib/lynx-api.d.ts +3 -8
  115. package/runtime/lib/lynx-api.js +8 -45
  116. package/runtime/lib/lynx-api.js.map +1 -1
  117. package/runtime/lib/snapshot/debug/vnodeSource.js +1 -1
  118. package/runtime/lib/snapshot/debug/vnodeSource.js.map +1 -1
  119. package/runtime/lib/snapshot/lifecycle/patch/commit.d.ts +0 -1
  120. package/runtime/lib/snapshot/lifecycle/patch/commit.js +3 -8
  121. package/runtime/lib/snapshot/lifecycle/patch/commit.js.map +1 -1
  122. package/runtime/lib/snapshot/lifecycle/patch/updateMainThread.js +1 -1
  123. package/runtime/lib/snapshot/lifecycle/patch/updateMainThread.js.map +1 -1
  124. package/runtime/lib/snapshot/lifecycle/ref/delay.d.ts +6 -13
  125. package/runtime/lib/snapshot/lifecycle/ref/delay.js +9 -30
  126. package/runtime/lib/snapshot/lifecycle/ref/delay.js.map +1 -1
  127. package/runtime/lib/snapshot/lifecycle/reload.js +2 -2
  128. package/runtime/lib/snapshot/lifecycle/reload.js.map +1 -1
  129. package/runtime/lib/snapshot/list/list.js +1 -1
  130. package/runtime/lib/snapshot/list/list.js.map +1 -1
  131. package/runtime/lib/snapshot/list/listUpdateInfo.js +3 -2
  132. package/runtime/lib/snapshot/list/listUpdateInfo.js.map +1 -1
  133. package/runtime/lib/snapshot/lynx/calledByNative.js +2 -8
  134. package/runtime/lib/snapshot/lynx/calledByNative.js.map +1 -1
  135. package/runtime/lib/snapshot/lynx/component.js +2 -2
  136. package/runtime/lib/snapshot/lynx/component.js.map +1 -1
  137. package/runtime/lib/snapshot/lynx/env.js +5 -51
  138. package/runtime/lib/snapshot/lynx/env.js.map +1 -1
  139. package/runtime/lib/snapshot/lynx/runWithForce.js +9 -39
  140. package/runtime/lib/snapshot/lynx/runWithForce.js.map +1 -1
  141. package/runtime/lib/snapshot/lynx/tt.js +9 -29
  142. package/runtime/lib/snapshot/lynx/tt.js.map +1 -1
  143. package/runtime/lib/snapshot/snapshot/backgroundSnapshot.js +3 -3
  144. package/runtime/lib/snapshot/snapshot/backgroundSnapshot.js.map +1 -1
  145. package/runtime/lib/snapshot/snapshot/list.js +1 -1
  146. package/runtime/lib/snapshot/snapshot/list.js.map +1 -1
  147. package/runtime/lib/snapshot/snapshot/ref.d.ts +3 -5
  148. package/runtime/lib/snapshot/snapshot/ref.js +16 -59
  149. package/runtime/lib/snapshot/snapshot/ref.js.map +1 -1
  150. package/runtime/lib/snapshot/snapshot/snapshotInstanceHydrationMap.js +1 -1
  151. package/runtime/lib/snapshot/snapshot/snapshotInstanceHydrationMap.js.map +1 -1
  152. package/runtime/lib/tsconfig.tsbuildinfo +1 -1
  153. package/runtime/lib/worklet-runtime/workletRuntime.js +1 -1
  154. package/runtime/lib/worklet-runtime/workletRuntime.js.map +1 -1
  155. package/runtime/worklet-runtime/dev.js +2 -2
  156. package/testing-library/dist/env/index.js +2 -8
  157. package/testing-library/dist/plugins/index.js +12 -1
  158. package/transform/dist/wasm.cjs +1 -1
  159. package/runtime/lib/element-template/hooks/react.d.ts +0 -14
  160. package/runtime/lib/element-template/hooks/react.js +0 -24
  161. package/runtime/lib/element-template/hooks/react.js.map +0 -1
  162. package/runtime/lib/element-template/runtime/components/slot.d.ts +0 -1
  163. package/runtime/lib/element-template/runtime/components/slot.js +0 -11
  164. package/runtime/lib/element-template/runtime/components/slot.js.map +0 -1
  165. package/runtime/lib/snapshot/compat/initData.js.map +0 -1
  166. package/runtime/lib/snapshot/lifecycle/pass.d.ts +0 -3
  167. package/runtime/lib/snapshot/lifecycle/pass.js.map +0 -1
@@ -26,9 +26,12 @@ function dispatchEvent(eventValue, data) {
26
26
  return true;
27
27
  }
28
28
  export function clearEventState() {
29
- pendingEvents.length = 0;
29
+ clearPendingEvents();
30
30
  queuePendingEvents = false;
31
31
  }
32
+ export function clearPendingEvents() {
33
+ pendingEvents.length = 0;
34
+ }
32
35
  export function resetEventStateForRuntime() {
33
36
  clearEventState();
34
37
  queuePendingEvents = true;
@@ -1 +1 @@
1
- {"version":3,"file":"event.js","sourceRoot":"","sources":["../../../src/element-template/prop-adapters/event.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAE1D,OAAO,EAAE,wCAAwC,EAAE,MAAM,0BAA0B,CAAC;AAIpF,MAAM,aAAa,GAAqD,EAAE,CAAC;AAC3E,IAAI,kBAAkB,GAAG,KAAK,CAAC;AAE/B,SAAS,aAAa,CAAC,UAAkB,EAAE,IAAmB;IAC5D,MAAM,OAAO,GAAG,wCAAwC,CAAC,gCAAgC,CAAC,UAAU,CAAC,CAAC;IACtG,IAAI,OAAO,QAAQ,KAAK,WAAW,IAAI,QAAQ,EAAE,CAAC;QAChD,OAAO,CAAC,IAAI,EAAE,CACZ,yDACE,IAAI,CAAC,SAAS,CACZ;YACE,UAAU;YACV,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,cAAc,EAAE,OAAO,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;YACjE,UAAU,EAAE,OAAO,OAAO,KAAK,UAAU;SAC1C,EACD,IAAI,EACJ,CAAC,CAEL,EAAE,CACH,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE,CAAC;QAClC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC;QACF,OAA0B,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,WAAW,CAAC,KAAc,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;IACzB,kBAAkB,GAAG,KAAK,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,yBAAyB;IACvC,eAAe,EAAE,CAAC;IAClB,kBAAkB,GAAG,IAAI,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,UAAkB;IAC7D,MAAM,OAAO,GAAG,wCAAwC,CAAC,gCAAgC,CAAC,UAAU,CAAC,CAAC;IACtG,OAAO,OAAO,OAAO,KAAK,UAAU,CAAC,CAAC,CAAE,OAA0B,CAAC,CAAC,CAAC,SAAS,CAAC;AACjF,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,UAAkB,EAAE,IAAmB;IAClE,IAAI,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC;QACpC,OAAO;IACT,CAAC;IACD,IAAI,kBAAkB,EAAE,CAAC;QACvB,aAAa,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;IACzC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,YAAoB,EACpB,UAAkB,EAClB,IAAmB;IAEnB,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,kBAAkB;IAChC,kBAAkB,GAAG,KAAK,CAAC;IAC3B,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO;IACT,CAAC;IACD,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACvC,KAAK,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,MAAM,EAAE,CAAC;QACxC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"event.js","sourceRoot":"","sources":["../../../src/element-template/prop-adapters/event.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAE1D,OAAO,EAAE,wCAAwC,EAAE,MAAM,0BAA0B,CAAC;AAIpF,MAAM,aAAa,GAAqD,EAAE,CAAC;AAC3E,IAAI,kBAAkB,GAAG,KAAK,CAAC;AAE/B,SAAS,aAAa,CAAC,UAAkB,EAAE,IAAmB;IAC5D,MAAM,OAAO,GAAG,wCAAwC,CAAC,gCAAgC,CAAC,UAAU,CAAC,CAAC;IACtG,IAAI,OAAO,QAAQ,KAAK,WAAW,IAAI,QAAQ,EAAE,CAAC;QAChD,OAAO,CAAC,IAAI,EAAE,CACZ,yDACE,IAAI,CAAC,SAAS,CACZ;YACE,UAAU;YACV,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,cAAc,EAAE,OAAO,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;YACjE,UAAU,EAAE,OAAO,OAAO,KAAK,UAAU;SAC1C,EACD,IAAI,EACJ,CAAC,CAEL,EAAE,CACH,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE,CAAC;QAClC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC;QACF,OAA0B,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,WAAW,CAAC,KAAc,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,kBAAkB,EAAE,CAAC;IACrB,kBAAkB,GAAG,KAAK,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,kBAAkB;IAChC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,yBAAyB;IACvC,eAAe,EAAE,CAAC;IAClB,kBAAkB,GAAG,IAAI,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,UAAkB;IAC7D,MAAM,OAAO,GAAG,wCAAwC,CAAC,gCAAgC,CAAC,UAAU,CAAC,CAAC;IACtG,OAAO,OAAO,OAAO,KAAK,UAAU,CAAC,CAAC,CAAE,OAA0B,CAAC,CAAC,CAAC,SAAS,CAAC;AACjF,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,UAAkB,EAAE,IAAmB;IAClE,IAAI,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC;QACpC,OAAO;IACT,CAAC;IACD,IAAI,kBAAkB,EAAE,CAAC;QACvB,aAAa,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;IACzC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,YAAoB,EACpB,UAAkB,EAClB,IAAmB;IAEnB,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,kBAAkB;IAChC,kBAAkB,GAAG,KAAK,CAAC;IAC3B,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO;IACT,CAAC;IACD,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACvC,KAAK,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,MAAM,EAAE,CAAC;QACxC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC;AACH,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { SelectorRefProxy } from '../../core/ref.js';
2
+ import type { OrdinaryRef, RefProxyForwardedMethods } from '../../core/ref.js';
3
+ import type { SerializableValue } from '../protocol/types.js';
4
+ export type EtRef = OrdinaryRef<ElementTemplateRefProxy>;
5
+ export declare function getRefValue(handleId: number, attrSlotIndex: number): string;
6
+ export declare function flushDelayedRefUiOps(): void;
7
+ export declare function clearDelayedRefUiOps(): void;
8
+ export declare class ElementTemplateRefProxy extends SelectorRefProxy<ElementTemplateRefProxy> {
9
+ private readonly handleId;
10
+ private readonly attrSlotIndex;
11
+ constructor(handleId: number, attrSlotIndex: number);
12
+ protected createProxyTarget(): ElementTemplateRefProxy;
13
+ protected runOrDelay(task: () => void): void;
14
+ get selector(): string;
15
+ }
16
+ export interface ElementTemplateRefProxy extends RefProxyForwardedMethods<ElementTemplateRefProxy> {
17
+ }
18
+ export declare function getRefFromValue(value: unknown): EtRef | null;
19
+ export declare function getSpreadRefFromValue(value: unknown): EtRef | null | undefined;
20
+ export declare function prepareRefAttrSlot(handleId: number, attrSlotIndex: number, value: unknown): SerializableValue | null;
21
+ export declare function prepareSpreadRefAttrValue(handleId: number, attrSlotIndex: number, value: unknown): SerializableValue | null | undefined;
22
+ export declare function queueRefAttrUpdate(oldValue: unknown, newValue: unknown, handleId: number, attrSlotIndex: number): void;
23
+ export declare function flushPendingRefs(): void;
24
+ export declare function clearPendingRefs(): void;
25
+ export declare function hasPendingRefs(): boolean;
26
+ export declare function clearRefState(): void;
@@ -0,0 +1,107 @@
1
+ // Copyright 2026 The Lynx Authors. All rights reserved.
2
+ // Licensed under the Apache License Version 2.0 that can be found in the
3
+ // LICENSE file in the root directory of this source tree.
4
+ import { OrdinaryRefEffectQueue, SelectorRefProxy, normalizeRefValue } from '../../core/ref.js';
5
+ import { hydrationMap } from '../hydration-map.js';
6
+ const refEffectQueue = /*#__PURE__*/ new OrdinaryRefEffectQueue();
7
+ const delayedRefUiOps = [];
8
+ let shouldDelayRefUiOps = true;
9
+ function resolveRefHandleId(handleId) {
10
+ // The proxy may have been handed to user code before hydrate; resolve the id
11
+ // at execution time so the same object follows the hydrated native handle.
12
+ return hydrationMap.get(handleId) ?? handleId;
13
+ }
14
+ function runOrDelayRefUiOp(task) {
15
+ if (!shouldDelayRefUiOps) {
16
+ task();
17
+ return;
18
+ }
19
+ delayedRefUiOps.push(task);
20
+ }
21
+ export function getRefValue(handleId, attrSlotIndex) {
22
+ return `${handleId}-${attrSlotIndex}`;
23
+ }
24
+ export function flushDelayedRefUiOps() {
25
+ const tasks = delayedRefUiOps.splice(0);
26
+ shouldDelayRefUiOps = false;
27
+ for (const task of tasks) {
28
+ task();
29
+ }
30
+ }
31
+ export function clearDelayedRefUiOps() {
32
+ delayedRefUiOps.length = 0;
33
+ }
34
+ export class ElementTemplateRefProxy extends SelectorRefProxy {
35
+ handleId;
36
+ attrSlotIndex;
37
+ constructor(handleId, attrSlotIndex) {
38
+ super();
39
+ this.handleId = handleId;
40
+ this.attrSlotIndex = attrSlotIndex;
41
+ return this.createProxy();
42
+ }
43
+ createProxyTarget() {
44
+ return new ElementTemplateRefProxy(this.handleId, this.attrSlotIndex);
45
+ }
46
+ runOrDelay(task) {
47
+ runOrDelayRefUiOp(task);
48
+ }
49
+ get selector() {
50
+ return `[ref=${getRefValue(resolveRefHandleId(this.handleId), this.attrSlotIndex)}]`;
51
+ }
52
+ }
53
+ export function getRefFromValue(value) {
54
+ return normalizeRefValue(value) ?? null;
55
+ }
56
+ function hasOwnRef(value) {
57
+ return value !== null
58
+ && typeof value === 'object'
59
+ && !Array.isArray(value)
60
+ && Object.prototype.hasOwnProperty.call(value, 'ref');
61
+ }
62
+ export function getSpreadRefFromValue(value) {
63
+ if (!hasOwnRef(value)) {
64
+ return undefined;
65
+ }
66
+ return getRefFromValue(value.ref);
67
+ }
68
+ export function prepareRefAttrSlot(handleId, attrSlotIndex, value) {
69
+ if (__LEPUS__ && value === 1) {
70
+ // The LEPUS transform cannot carry the background ref callback/object into
71
+ // first-screen create, so direct refs arrive here as an internal presence
72
+ // marker. Background JS still validates the real user ref before attaching.
73
+ return getRefValue(handleId, attrSlotIndex);
74
+ }
75
+ if (getRefFromValue(value) === null) {
76
+ return null;
77
+ }
78
+ return getRefValue(handleId, attrSlotIndex);
79
+ }
80
+ export function prepareSpreadRefAttrValue(handleId, attrSlotIndex, value) {
81
+ const ref = getSpreadRefFromValue(value);
82
+ if (ref === undefined) {
83
+ return undefined;
84
+ }
85
+ return ref === null ? null : getRefValue(handleId, attrSlotIndex);
86
+ }
87
+ export function queueRefAttrUpdate(oldValue, newValue, handleId, attrSlotIndex) {
88
+ const oldRef = getRefFromValue(oldValue);
89
+ const newRef = getRefFromValue(newValue);
90
+ refEffectQueue.queue(oldRef, newRef, [handleId, attrSlotIndex]);
91
+ }
92
+ export function flushPendingRefs() {
93
+ refEffectQueue.flush(([handleId, attrSlotIndex]) => new ElementTemplateRefProxy(handleId, attrSlotIndex));
94
+ }
95
+ export function clearPendingRefs() {
96
+ refEffectQueue.clear();
97
+ }
98
+ export function hasPendingRefs() {
99
+ return refEffectQueue.hasPending();
100
+ }
101
+ export function clearRefState() {
102
+ clearPendingRefs();
103
+ hydrationMap.clear();
104
+ clearDelayedRefUiOps();
105
+ shouldDelayRefUiOps = true;
106
+ }
107
+ //# sourceMappingURL=ref.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ref.js","sourceRoot":"","sources":["../../../src/element-template/prop-adapters/ref.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@
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 { getEventValue } from './event-value.js';
5
+ import { prepareSpreadRefAttrValue } from './ref.js';
5
6
  const eventPropKeyRegExp = /^(?:global-bind|bind|catch|capture-bind|capture-catch)[A-Za-z]+$/;
6
7
  const namespacedEventKeyRegExp = /^[A-Za-z-]+:(?:global-bind|bind|catch|capture-bind|capture-catch)[A-Za-z]+$/;
7
8
  function isEventPropKey(key) {
@@ -24,6 +25,13 @@ export function prepareSpreadAttrSlot(handleId, attrSlotIndex, value, _context)
24
25
  prepared['class'] = (spreadValue ?? '');
25
26
  continue;
26
27
  }
28
+ if (key === 'ref') {
29
+ const refValue = prepareSpreadRefAttrValue(handleId, attrSlotIndex, value);
30
+ if (refValue !== undefined) {
31
+ prepared['ref'] = refValue;
32
+ }
33
+ continue;
34
+ }
27
35
  if (isEventPropKey(key)) {
28
36
  prepared[key] = spreadValue === null || spreadValue === undefined || spreadValue === false
29
37
  ? null
@@ -31,7 +39,6 @@ export function prepareSpreadAttrSlot(handleId, attrSlotIndex, value, _context)
31
39
  continue;
32
40
  }
33
41
  if (spreadValue === undefined
34
- || key === 'ref'
35
42
  || key.endsWith(':ref')
36
43
  || key.endsWith(':gesture')
37
44
  || namespacedEventKeyRegExp.test(key)
@@ -1 +1 @@
1
- {"version":3,"file":"spread.js","sourceRoot":"","sources":["../../../src/element-template/prop-adapters/spread.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAE1D,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAOjD,MAAM,kBAAkB,GAAG,kEAAkE,CAAC;AAC9F,MAAM,wBAAwB,GAAG,6EAA6E,CAAC;AAE/G,SAAS,cAAc,CAAC,GAAW;IACjC,OAAO,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACtC,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,QAAgB,EAChB,aAAqB,EACrB,KAAc,EACd,QAAmC;IAEnC,IAAI,KAAK,KAAK,KAAK,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,QAAQ,GAAsC,EAAE,CAAC;IAEvD,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,MAAM,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,GAAG,KAAK,UAAU,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;YACjE,SAAS;QACX,CAAC;QAED,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,WAAW,EAAE,CAAC;YAC3C,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAsB,CAAC;YAC7D,SAAS;QACX,CAAC;QAED,IAAI,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,QAAQ,CAAC,GAAG,CAAC,GAAG,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,KAAK,KAAK;gBACxF,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,aAAa,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC;YAChD,SAAS;QACX,CAAC;QAED,IACE,WAAW,KAAK,SAAS;eACtB,GAAG,KAAK,KAAK;eACb,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC;eACpB,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC;eACxB,wBAAwB,CAAC,IAAI,CAAC,GAAG,CAAC;eAClC,OAAO,WAAW,KAAK,UAAU,EACpC,CAAC;YACD,SAAS;QACX,CAAC;QAED,QAAQ,CAAC,GAAG,CAAC,GAAG,WAAgC,CAAC;IACnD,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"spread.js","sourceRoot":"","sources":["../../../src/element-template/prop-adapters/spread.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAE1D,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;AAOrD,MAAM,kBAAkB,GAAG,kEAAkE,CAAC;AAC9F,MAAM,wBAAwB,GAAG,6EAA6E,CAAC;AAE/G,SAAS,cAAc,CAAC,GAAW;IACjC,OAAO,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACtC,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,QAAgB,EAChB,aAAqB,EACrB,KAAc,EACd,QAAmC;IAEnC,IAAI,KAAK,KAAK,KAAK,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,QAAQ,GAAsC,EAAE,CAAC;IAEvD,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,MAAM,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,GAAG,KAAK,UAAU,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;YACjE,SAAS;QACX,CAAC;QAED,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,WAAW,EAAE,CAAC;YAC3C,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAsB,CAAC;YAC7D,SAAS;QACX,CAAC;QAED,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;YAClB,MAAM,QAAQ,GAAG,yBAAyB,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;YAC3E,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,QAAQ,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC;YAC7B,CAAC;YACD,SAAS;QACX,CAAC;QAED,IAAI,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,QAAQ,CAAC,GAAG,CAAC,GAAG,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,KAAK,KAAK;gBACxF,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,aAAa,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC;YAChD,SAAS;QACX,CAAC;QAED,IACE,WAAW,KAAK,SAAS;eACtB,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC;eACpB,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC;eACxB,wBAAwB,CAAC,IAAI,CAAC,GAAG,CAAC;eAClC,OAAO,WAAW,KAAK,UAAU,EACpC,CAAC;YACD,SAAS;QACX,CAAC;QAED,QAAQ,CAAC,GAAG,CAAC,GAAG,WAAgC,CAAC;IACnD,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -3,5 +3,6 @@ export declare const ElementTemplateUpdateOps: {
3
3
  readonly setAttribute: 2;
4
4
  readonly insertNode: 3;
5
5
  readonly removeNode: 4;
6
+ readonly createTypedElement: 5;
6
7
  };
7
8
  export type ElementTemplateUpdateOp = typeof ElementTemplateUpdateOps[keyof typeof ElementTemplateUpdateOps];
@@ -6,5 +6,6 @@ export const ElementTemplateUpdateOps = {
6
6
  setAttribute: 2,
7
7
  insertNode: 3,
8
8
  removeNode: 4,
9
+ createTypedElement: 5,
9
10
  };
10
11
  //# sourceMappingURL=opcodes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"opcodes.js","sourceRoot":"","sources":["../../../src/element-template/protocol/opcodes.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAE1D,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,cAAc,EAAE,CAAC;IACjB,YAAY,EAAE,CAAC;IACf,UAAU,EAAE,CAAC;IACb,UAAU,EAAE,CAAC;CACL,CAAC"}
1
+ {"version":3,"file":"opcodes.js","sourceRoot":"","sources":["../../../src/element-template/protocol/opcodes.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAE1D,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,cAAc,EAAE,CAAC;IACjB,YAAY,EAAE,CAAC;IACf,UAAU,EAAE,CAAC;IACb,UAAU,EAAE,CAAC;IACb,kBAAkB,EAAE,CAAC;CACb,CAAC"}
@@ -2,13 +2,51 @@ import { ElementTemplateUpdateOps } from './opcodes.js';
2
2
  export type SerializableValue = string | number | boolean | null | SerializableValue[] | {
3
3
  [key: string]: SerializableValue;
4
4
  };
5
- export type RuntimeOptions = Record<string, SerializableValue>;
5
+ export type RuntimeOptionValue = SerializableValue | ElementRef | RuntimeOptionValue[] | {
6
+ [key: string]: RuntimeOptionValue;
7
+ };
8
+ export type RuntimeOptions = Record<string, RuntimeOptionValue>;
9
+ export type RuntimeAttributeSlotValue = SerializableValue | ((...args: unknown[]) => unknown) | RuntimeAttributeSlotValue[] | {
10
+ [key: string]: RuntimeAttributeSlotValue;
11
+ };
12
+ export type RuntimeTypedElementAttributes = Record<string, RuntimeAttributeSlotValue>;
13
+ export type TypedElementAttributesCommand = Record<string, SerializableValue>;
14
+ export interface ElementTemplateHandleRefCommandValue {
15
+ __etHandleRef: number;
16
+ [key: string]: SerializableValue;
17
+ }
18
+ export interface RuntimeOptionsCommand extends Record<string, SerializableValue> {
19
+ listChildren?: ElementTemplateHandleRefCommandValue[];
20
+ }
21
+ export type SerializedRuntimeOptionValue = SerializableValue | SerializedEtNode | SerializedRuntimeOptionValue[] | {
22
+ [key: string]: SerializedRuntimeOptionValue;
23
+ };
24
+ export type SerializedRuntimeOptions = Record<string, SerializedRuntimeOptionValue>;
25
+ export interface SerializedEtNodeBase {
26
+ attributeSlots?: SerializableValue[] | null;
27
+ elementSlots?: SerializedEtNode[][] | null;
28
+ uid: number | string;
29
+ options?: SerializedRuntimeOptions | null;
30
+ }
31
+ export interface SerializedCompiledNode extends SerializedEtNodeBase {
32
+ templateKey: string;
33
+ bundleUrl?: string;
34
+ }
35
+ export interface SerializedTypedNode extends SerializedEtNodeBase {
36
+ type: string;
37
+ }
38
+ export type SerializedEtNode = SerializedCompiledNode | SerializedTypedNode;
39
+ export interface ElementTemplateHydrateCommitContext {
40
+ instances: SerializedEtNode[];
41
+ reloadVersion?: number;
42
+ }
6
43
  export interface SerializedElementTemplate {
7
44
  templateKey: string;
8
45
  bundleUrl?: string;
9
46
  attributeSlots?: SerializableValue[] | null;
10
47
  elementSlots?: SerializedElementTemplate[][] | null;
11
48
  uid: number | string;
49
+ options?: SerializedRuntimeOptions | null;
12
50
  }
13
51
  export type CreateTemplateCommand = [
14
52
  typeof ElementTemplateUpdateOps.createTemplate,
@@ -38,13 +76,23 @@ export type RemoveNodeCommand = [
38
76
  childHandleId: number,
39
77
  removedSubtreeHandleIds: number[]
40
78
  ];
41
- export type ElementTemplateUpdateCommand = CreateTemplateCommand | SetAttributeCommand | InsertNodeCommand | RemoveNodeCommand;
79
+ export type CreateTypedElementCommand = [
80
+ typeof ElementTemplateUpdateOps.createTypedElement,
81
+ handleId: number,
82
+ type: string,
83
+ attributes: TypedElementAttributesCommand | null | undefined,
84
+ elementSlots: number[][] | null | undefined,
85
+ options: RuntimeOptionsCommand | null | undefined
86
+ ];
87
+ export type ElementTemplateUpdateCommand = CreateTemplateCommand | SetAttributeCommand | InsertNodeCommand | RemoveNodeCommand | CreateTypedElementCommand;
42
88
  export type ElementTemplateUpdateCommandStream = ElementTemplateUpdateCommand[number][];
43
89
  export interface ElementTemplateFlushOptions {
44
90
  pipelineOptions?: PipelineOptions;
91
+ triggerDataUpdated?: boolean;
45
92
  }
46
93
  export interface ElementTemplateUpdateCommitContext {
47
94
  ops: ElementTemplateUpdateCommandStream;
48
95
  flushOptions: ElementTemplateFlushOptions;
49
96
  flowIds?: number[];
97
+ reloadVersion?: number;
50
98
  }
@@ -1,2 +1,5 @@
1
- export declare let __page: FiberElement;
2
- export declare function setupPage(page: FiberElement): void;
1
+ export declare let __page: ElementRef;
2
+ export declare function createElementTemplatePage(): ElementRef;
3
+ export declare function setupPage(page: ElementRef): void;
4
+ export declare function insertRootIntoPage(rootRef: ElementRef): void;
5
+ export declare function removeRootFromPage(rootRef: ElementRef): void;
@@ -2,7 +2,19 @@
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
  export let __page;
5
+ const ELEMENT_TEMPLATE_PAGE_TYPE = 'page';
6
+ const ELEMENT_TEMPLATE_PAGE_UID = '0';
7
+ const ELEMENT_TEMPLATE_PAGE_ROOT_SLOT = 0;
8
+ export function createElementTemplatePage() {
9
+ return __CreateTypedElementTemplate(ELEMENT_TEMPLATE_PAGE_TYPE, null, null, ELEMENT_TEMPLATE_PAGE_UID, null);
10
+ }
5
11
  export function setupPage(page) {
6
12
  __page = page;
7
13
  }
14
+ export function insertRootIntoPage(rootRef) {
15
+ __InsertNodeToElementTemplate(__page, ELEMENT_TEMPLATE_PAGE_ROOT_SLOT, rootRef, null);
16
+ }
17
+ export function removeRootFromPage(rootRef) {
18
+ __RemoveNodeFromElementTemplate(__page, ELEMENT_TEMPLATE_PAGE_ROOT_SLOT, rootRef);
19
+ }
8
20
  //# sourceMappingURL=page.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"page.js","sourceRoot":"","sources":["../../../../src/element-template/runtime/page/page.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAE1D,MAAM,CAAC,IAAI,MAAoB,CAAC;AAEhC,MAAM,UAAU,SAAS,CAAC,IAAkB;IAC1C,MAAM,GAAG,IAAI,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"page.js","sourceRoot":"","sources":["../../../../src/element-template/runtime/page/page.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAE1D,MAAM,CAAC,IAAI,MAAkB,CAAC;AAE9B,MAAM,0BAA0B,GAAG,MAAM,CAAC;AAC1C,MAAM,yBAAyB,GAAG,GAAG,CAAC;AACtC,MAAM,+BAA+B,GAAG,CAAC,CAAC;AAE1C,MAAM,UAAU,yBAAyB;IACvC,OAAO,4BAA4B,CAAC,0BAA0B,EAAE,IAAI,EAAE,IAAI,EAAE,yBAAyB,EAAE,IAAI,CAAC,CAAC;AAC/G,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,IAAgB;IACxC,MAAM,GAAG,IAAI,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAAmB;IACpD,6BAA6B,CAAC,MAAM,EAAE,+BAA+B,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;AACxF,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAAmB;IACpD,+BAA+B,CAAC,MAAM,EAAE,+BAA+B,EAAE,OAAO,CAAC,CAAC;AACpF,CAAC"}
@@ -42,6 +42,30 @@ export function applyElementTemplateUpdateCommands(stream) {
42
42
  __SetAttributeOfElementTemplate(nativeRef, attrSlotIndex, value, null);
43
43
  break;
44
44
  }
45
+ case ElementTemplateUpdateOps.createTypedElement: {
46
+ const handleId = stream[i++];
47
+ const type = stream[i++];
48
+ const attributes = stream[i++];
49
+ const elementSlots = stream[i++];
50
+ const options = stream[i++];
51
+ if (__DEV__) {
52
+ const createError = validateCreateHandleId(handleId);
53
+ if (createError) {
54
+ lynx.reportError(createError);
55
+ continue;
56
+ }
57
+ }
58
+ const resolvedElementSlots = resolveElementSlots(elementSlots);
59
+ const resolvedOptions = resolveRuntimeOptions(options);
60
+ if ((__DEV__ && resolvedElementSlots.hasError) || resolvedOptions.hasError) {
61
+ continue;
62
+ }
63
+ const nativeRef = __CreateTypedElementTemplate(type, attributes, resolvedElementSlots.value, handleId, resolvedOptions.value);
64
+ if (nativeRef) {
65
+ elementTemplateRegistry.set(handleId, nativeRef);
66
+ }
67
+ break;
68
+ }
45
69
  case ElementTemplateUpdateOps.insertNode: {
46
70
  const targetId = stream[i++];
47
71
  const elementSlotIndex = stream[i++];
@@ -110,6 +134,44 @@ function resolveElementSlots(elementSlots) {
110
134
  });
111
135
  return { hasError, value };
112
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
+ };
157
+ }
158
+ const ref = resolveHandle(child.__etHandleRef, `options.listChildren[${index}]`);
159
+ if (ref === null) {
160
+ return {
161
+ hasError: true,
162
+ value: null,
163
+ };
164
+ }
165
+ resolvedListChildren.push(ref);
166
+ }
167
+ return {
168
+ hasError: false,
169
+ value: ({
170
+ ...options,
171
+ listChildren: resolvedListChildren,
172
+ }),
173
+ };
174
+ }
113
175
  function resolveHandle(id, role) {
114
176
  const nativeRef = elementTemplateRegistry.get(id);
115
177
  if (!nativeRef) {
@@ -121,13 +183,20 @@ function resolveHandle(id, role) {
121
183
  function isValidHandleId(handleId) {
122
184
  return Number.isInteger(handleId) && handleId !== 0;
123
185
  }
124
- function validateCreateTemplatePayload(handleId, attributeSlots, elementSlots) {
186
+ function validateCreateHandleId(handleId) {
125
187
  if (!isValidHandleId(handleId)) {
126
188
  return new Error(`ElementTemplate update has invalid handleId ${String(handleId)}.`);
127
189
  }
128
190
  if (elementTemplateRegistry.get(handleId)) {
129
191
  return new Error(`ElementTemplate update received duplicate handleId ${handleId}.`);
130
192
  }
193
+ return null;
194
+ }
195
+ function validateCreateTemplatePayload(handleId, attributeSlots, elementSlots) {
196
+ const handleError = validateCreateHandleId(handleId);
197
+ if (handleError) {
198
+ return handleError;
199
+ }
131
200
  if (attributeSlots != null && !Array.isArray(attributeSlots)) {
132
201
  return new Error('ElementTemplate update create attributeSlots must be an array, null, or undefined.');
133
202
  }
@@ -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":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAE1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAYlE,MAAM,UAAU,kCAAkC,CAChD,MAA0C;IAE1C,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;QACzB,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,CAA4B,CAAC;QAElD,QAAQ,EAAE,EAAE,CAAC;YACX,KAAK,wBAAwB,CAAC,cAAc,CAAC,CAAC,CAAC;gBAC7C,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,EAAE,CAAW,CAAC;gBACvC,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,EAAE,CAAW,CAAC;gBAC1C,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,EAAE,CAA8B,CAAC;gBAC3D,MAAM,cAAc,GAAG,MAAM,CAAC,CAAC,EAAE,CAA2C,CAAC;gBAC7E,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,EAAE,CAAkC,CAAC;gBAElE,IAAI,OAAO,EAAE,CAAC;oBACZ,MAAM,WAAW,GAAG,6BAA6B,CAC/C,QAAQ,EACR,cAAc,EACd,YAAY,CACb,CAAC;oBACF,IAAI,WAAW,EAAE,CAAC;wBAChB,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;wBAC9B,SAAS;oBACX,CAAC;gBACH,CAAC;gBAED,MAAM,oBAAoB,GAAG,mBAAmB,CAAC,YAAY,CAAC,CAAC;gBAC/D,IAAI,OAAO,IAAI,oBAAoB,CAAC,QAAQ,EAAE,CAAC;oBAC7C,SAAS;gBACX,CAAC;gBAED,MAAM,SAAS,GAAG,uBAAuB,CACvC,WAAW,EACX,SAAS,EACT,uBAAuB,CAAC,cAAc,CAAC,EACvC,oBAAoB,CAAC,KAAK,EAC1B,QAAQ,CACT,CAAC;gBAEF,IAAI,SAAS,EAAE,CAAC;oBACd,uBAAuB,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;gBACnD,CAAC;gBACD,MAAM;YACR,CAAC;YAED,KAAK,wBAAwB,CAAC,YAAY,CAAC,CAAC,CAAC;gBAC3C,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,EAAE,CAAW,CAAC;gBACvC,MAAM,aAAa,GAAG,MAAM,CAAC,CAAC,EAAE,CAAW,CAAC;gBAC5C,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,EAAE,CAA6B,CAAC;gBACtD,MAAM,SAAS,GAAG,aAAa,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;gBACpD,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,SAAS;gBACX,CAAC;gBACD,+BAA+B,CAAC,SAAS,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;gBACvE,MAAM;YACR,CAAC;YAED,KAAK,wBAAwB,CAAC,kBAAkB,CAAC,CAAC,CAAC;gBACjD,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,EAAE,CAAW,CAAC;gBACvC,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,EAAE,CAAW,CAAC;gBACnC,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,EAAE,CAAqD,CAAC;gBACnF,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,EAAE,CAAkC,CAAC;gBAClE,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,EAAE,CAA6C,CAAC;gBAExE,IAAI,OAAO,EAAE,CAAC;oBACZ,MAAM,WAAW,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC;oBACrD,IAAI,WAAW,EAAE,CAAC;wBAChB,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;wBAC9B,SAAS;oBACX,CAAC;gBACH,CAAC;gBAED,MAAM,oBAAoB,GAAG,mBAAmB,CAAC,YAAY,CAAC,CAAC;gBAC/D,MAAM,eAAe,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;gBACvD,IAAI,CAAC,OAAO,IAAI,oBAAoB,CAAC,QAAQ,CAAC,IAAI,eAAe,CAAC,QAAQ,EAAE,CAAC;oBAC3E,SAAS;gBACX,CAAC;gBAED,MAAM,SAAS,GAAG,4BAA4B,CAC5C,IAAI,EACJ,UAAU,EACV,oBAAoB,CAAC,KAAK,EAC1B,QAAQ,EACR,eAAe,CAAC,KAAK,CACtB,CAAC;gBAEF,IAAI,SAAS,EAAE,CAAC;oBACd,uBAAuB,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;gBACnD,CAAC;gBACD,MAAM;YACR,CAAC;YAED,KAAK,wBAAwB,CAAC,UAAU,CAAC,CAAC,CAAC;gBACzC,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,EAAE,CAAW,CAAC;gBACvC,MAAM,gBAAgB,GAAG,MAAM,CAAC,CAAC,EAAE,CAAW,CAAC;gBAC/C,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,EAAE,CAAW,CAAC;gBACtC,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,EAAE,CAAW,CAAC;gBAC1C,MAAM,SAAS,GAAG,aAAa,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;gBACpD,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBACjD,IAAI,CAAC,SAAS,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAC5B,SAAS;gBACX,CAAC;gBACD,MAAM,YAAY,GAAG,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;gBACxF,IAAI,WAAW,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;oBACvC,SAAS;gBACX,CAAC;gBACD,6BAA6B,CAAC,SAAS,EAAE,gBAAgB,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;gBACnF,MAAM;YACR,CAAC;YAED,KAAK,wBAAwB,CAAC,UAAU,CAAC,CAAC,CAAC;gBACzC,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,EAAE,CAAW,CAAC;gBACvC,MAAM,gBAAgB,GAAG,MAAM,CAAC,CAAC,EAAE,CAAW,CAAC;gBAC/C,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,EAAE,CAAW,CAAC;gBACtC,MAAM,uBAAuB,GAAG,MAAM,CAAC,CAAC,EAAE,CAAa,CAAC;gBACxD,MAAM,SAAS,GAAG,aAAa,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;gBACpD,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBACjD,IAAI,CAAC,SAAS,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAC5B,SAAS;gBACX,CAAC;gBACD,+BAA+B,CAAC,SAAS,EAAE,gBAAgB,EAAE,QAAQ,CAAC,CAAC;gBACvE,qEAAqE;gBACrE,wEAAwE;gBACxE,KAAK,MAAM,QAAQ,IAAI,uBAAuB,EAAE,CAAC;oBAC/C,uBAAuB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAC3C,CAAC;gBACD,MAAM;YACR,CAAC;YAED,OAAO,CAAC,CAAC,CAAC;gBACR,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,iCAAiC,MAAM,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC;YAC/F,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAC1B,YAA2C;IAE3C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;QACjC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAC1C,CAAC;IAED,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE;QACrD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,CAAC,WAAW,CACd,IAAI,KAAK,CAAC,+BAA+B,SAAS,qCAAqC,CAAC,CACzF,CAAC;gBACF,QAAQ,GAAG,IAAI,CAAC;YAClB,CAAC;YACD,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,OAAO,QAAQ;aACZ,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;YACf,MAAM,QAAQ,GAAG,OAAO;gBACtB,CAAC,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC;gBACjC,CAAC,CAAC,CAAC,uBAAuB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC;YACnD,IAAI,OAAO,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;gBACjC,QAAQ,GAAG,IAAI,CAAC;YAClB,CAAC;YACD,OAAO,QAAQ,CAAC;QAClB,CAAC,CAAC;aACD,MAAM,CAAC,CAAC,QAAQ,EAA0B,EAAE,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IACH,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AAC7B,CAAC;AAED,SAAS,qBAAqB,CAC5B,OAAiD;IAEjD,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;QACpB,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IAC7C,CAAC;IAED,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;IAC1C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;QACjC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,OAAyB,EAAE,CAAC;IAC/D,CAAC;IAED,MAAM,oBAAoB,GAAiB,EAAE,CAAC;IAC9C,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QACzD,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QAClC,IACE,KAAK,IAAI,IAAI;eACV,OAAO,KAAK,KAAK,QAAQ;eACzB,CAAC,CAAC,eAAe,IAAI,KAAK,CAAC;eAC3B,CAAC,MAAM,CAAC,SAAS,CAAE,KAAqC,CAAC,aAAa,CAAC,EAC1E,CAAC;YACD,IAAI,CAAC,WAAW,CACd,IAAI,KAAK,CAAC,+CAA+C,KAAK,uCAAuC,CAAC,CACvG,CAAC;YACF,OAAO;gBACL,QAAQ,EAAE,IAAI;gBACd,KAAK,EAAE,IAAI;aACZ,CAAC;QACJ,CAAC;QAED,MAAM,GAAG,GAAG,aAAa,CACvB,KAAK,CAAC,aAAa,EACnB,wBAAwB,KAAK,GAAG,CACjC,CAAC;QACF,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACjB,OAAO;gBACL,QAAQ,EAAE,IAAI;gBACd,KAAK,EAAE,IAAI;aACZ,CAAC;QACJ,CAAC;QACD,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,KAAK;QACf,KAAK,EAAE,CAAC;YACN,GAAG,OAAO;YACV,YAAY,EAAE,oBAAoB;SACnC,CAAmB;KACrB,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,EAAU,EAAE,IAAY;IAC7C,MAAM,SAAS,GAAG,uBAAuB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,0BAA0B,IAAI,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC;QACtF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,eAAe,CAAC,QAAgB;IACvC,OAAO,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,QAAQ,KAAK,CAAC,CAAC;AACtD,CAAC;AAED,SAAS,sBAAsB,CAAC,QAAgB;IAC9C,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/B,OAAO,IAAI,KAAK,CAAC,+CAA+C,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACvF,CAAC;IACD,IAAI,uBAAuB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1C,OAAO,IAAI,KAAK,CAAC,sDAAsD,QAAQ,GAAG,CAAC,CAAC;IACtF,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,6BAA6B,CACpC,QAAgB,EAChB,cAAsD,EACtD,YAA2C;IAE3C,MAAM,WAAW,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IACrD,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,WAAW,CAAC;IACrB,CAAC;IACD,IAAI,cAAc,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;QAC7D,OAAO,IAAI,KAAK,CAAC,oFAAoF,CAAC,CAAC;IACzG,CAAC;IACD,IAAI,YAAY,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;QACzD,OAAO,IAAI,KAAK,CAAC,kFAAkF,CAAC,CAAC;IACvG,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,uBAAuB,CAC9B,cAAsD;IAEtD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;QACnC,OAAO,cAAc,CAAC;IACxB,CAAC;IACD,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7E,CAAC"}
@@ -1,2 +1,4 @@
1
+ declare function resetMainThreadRootRefs(): void;
2
+ declare function removeMainThreadRootRefs(): void;
1
3
  declare function renderMainThread(): void;
2
- export { renderMainThread };
4
+ export { removeMainThreadRootRefs, renderMainThread, resetMainThreadRootRefs };
@@ -6,13 +6,26 @@
6
6
  */
7
7
  import { renderOpcodesIntoElementTemplate } from './render-opcodes.js';
8
8
  import { render as renderToString } from './render-to-opcodes.js';
9
+ import { getReloadVersion } from '../../../core/reload-version.js';
9
10
  import { profileEnd, profileStart } from '../../debug/profile.js';
10
11
  import { ElementTemplateLifecycleConstant } from '../../protocol/lifecycle-constant.js';
11
- import { __page } from '../page/page.js';
12
+ import { insertRootIntoPage, removeRootFromPage } from '../page/page.js';
12
13
  import { __root } from '../page/root-instance.js';
14
+ // ET reload reuses the native page, so the main-thread render path owns the
15
+ // root refs it appended and can remove only those roots before rebuilding.
16
+ let mainThreadRootRefs = [];
17
+ function resetMainThreadRootRefs() {
18
+ mainThreadRootRefs = [];
19
+ }
20
+ function removeMainThreadRootRefs() {
21
+ const rootRefs = mainThreadRootRefs;
22
+ mainThreadRootRefs = [];
23
+ for (const rootRef of rootRefs) {
24
+ removeRootFromPage(rootRef);
25
+ }
26
+ }
13
27
  function renderMainThread() {
14
28
  let opcodes;
15
- let rootRefs = [];
16
29
  profileStart('ReactLynx::renderMainThread');
17
30
  try {
18
31
  opcodes = renderToString(__root.__jsx, undefined);
@@ -26,10 +39,11 @@ function renderMainThread() {
26
39
  }
27
40
  profileStart('ReactLynx::renderOpcodes');
28
41
  try {
29
- rootRefs = renderOpcodesIntoElementTemplate(opcodes).rootRefs;
42
+ const { rootRefs } = renderOpcodesIntoElementTemplate(opcodes);
30
43
  for (const rootRef of rootRefs) {
31
- __AppendElement(__page, rootRef);
44
+ insertRootIntoPage(rootRef);
32
45
  }
46
+ mainThreadRootRefs = rootRefs;
33
47
  }
34
48
  finally {
35
49
  profileEnd();
@@ -37,17 +51,21 @@ function renderMainThread() {
37
51
  profileStart('ReactLynx::packSerializedETInstance');
38
52
  try {
39
53
  const instances = [];
40
- for (const rootRef of rootRefs) {
54
+ for (const rootRef of mainThreadRootRefs) {
41
55
  instances.push(__SerializeElementTemplate(rootRef));
42
56
  }
57
+ const payload = {
58
+ instances,
59
+ reloadVersion: getReloadVersion(),
60
+ };
43
61
  lynx.getJSContext().dispatchEvent({
44
62
  type: ElementTemplateLifecycleConstant.hydrate,
45
- data: instances,
63
+ data: payload,
46
64
  });
47
65
  }
48
66
  finally {
49
67
  profileEnd();
50
68
  }
51
69
  }
52
- export { renderMainThread };
70
+ export { removeMainThreadRootRefs, renderMainThread, resetMainThreadRootRefs };
53
71
  //# 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,UAAU,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,gCAAgC,EAAE,MAAM,sCAAsC,CAAC;AAExF,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAElD,SAAS,gBAAgB;IACvB,IAAI,OAAO,CAAC;IACZ,IAAI,QAAQ,GAAiB,EAAE,CAAC;IAChC,YAAY,CAAC,6BAA6B,CAAC,CAAC;IAC5C,IAAI,CAAC;QACH,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IACpD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,WAAW,CAAC,CAAU,CAAC,CAAC;QAC7B,OAAO,GAAG,EAAE,CAAC;IACf,CAAC;YAAS,CAAC;QACT,UAAU,EAAE,CAAC;IACf,CAAC;IAED,YAAY,CAAC,0BAA0B,CAAC,CAAC;IACzC,IAAI,CAAC;QACH,QAAQ,GAAG,gCAAgC,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC;QAC9D,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;YAAS,CAAC;QACT,UAAU,EAAE,CAAC;IACf,CAAC;IAED,YAAY,CAAC,qCAAqC,CAAC,CAAC;IACpD,IAAI,CAAC;QACH,MAAM,SAAS,GAAgC,EAAE,CAAC;QAClD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,SAAS,CAAC,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAC,CAAC;QACtD,CAAC;QAED,IAAI,CAAC,YAAY,EAAE,CAAC,aAAa,CAAC;YAChC,IAAI,EAAE,gCAAgC,CAAC,OAAO;YAC9C,IAAI,EAAE,SAAS;SAChB,CAAC,CAAC;IACL,CAAC;YAAS,CAAC;QACT,UAAU,EAAE,CAAC;IACf,CAAC;AACH,CAAC;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
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;AAElD,4EAA4E;AAC5E,2EAA2E;AAC3E,IAAI,kBAAkB,GAAiB,EAAE,CAAC;AAE1C,SAAS,uBAAuB;IAC9B,kBAAkB,GAAG,EAAE,CAAC;AAC1B,CAAC;AAED,SAAS,wBAAwB;IAC/B,MAAM,QAAQ,GAAG,kBAAkB,CAAC;IACpC,kBAAkB,GAAG,EAAE,CAAC;IACxB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB;IACvB,IAAI,OAAO,CAAC;IACZ,YAAY,CAAC,6BAA6B,CAAC,CAAC;IAC5C,IAAI,CAAC;QACH,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IACpD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,WAAW,CAAC,CAAU,CAAC,CAAC;QAC7B,OAAO,GAAG,EAAE,CAAC;IACf,CAAC;YAAS,CAAC;QACT,UAAU,EAAE,CAAC;IACf,CAAC;IAED,YAAY,CAAC,0BAA0B,CAAC,CAAC;IACzC,IAAI,CAAC;QACH,MAAM,EAAE,QAAQ,EAAE,GAAG,gCAAgC,CAAC,OAAO,CAAC,CAAC;QAC/D,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAC9B,CAAC;QACD,kBAAkB,GAAG,QAAQ,CAAC;IAChC,CAAC;YAAS,CAAC;QACT,UAAU,EAAE,CAAC;IACf,CAAC;IAED,YAAY,CAAC,qCAAqC,CAAC,CAAC;IACpD,IAAI,CAAC;QACH,MAAM,SAAS,GAAuB,EAAE,CAAC;QACzC,KAAK,MAAM,OAAO,IAAI,kBAAkB,EAAE,CAAC;YACzC,SAAS,CAAC,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAC,CAAC;QACtD,CAAC;QACD,MAAM,OAAO,GAAwC;YACnD,SAAS;YACT,aAAa,EAAE,gBAAgB,EAAE;SAClC,CAAC;QAEF,IAAI,CAAC,YAAY,EAAE,CAAC,aAAa,CAAC;YAChC,IAAI,EAAE,gCAAgC,CAAC,OAAO;YAC9C,IAAI,EAAE,OAAO;SACd,CAAC,CAAC;IACL,CAAC;YAAS,CAAC;QACT,UAAU,EAAE,CAAC;IACf,CAAC;AACH,CAAC;AAED,OAAO,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,CAAC"}
@@ -194,9 +194,15 @@ function renderCompiledEtHostVNode(vnode, props, context, opcodes) {
194
194
  if (attributeSlots !== undefined) {
195
195
  opcodes.push(__OpAttr, 'attributeSlots', attributeSlots);
196
196
  }
197
- // ET host nodes are compiler-generated and encode dynamic element slots in
198
- // `children`, so the runtime can interpret the prop as a slot array directly.
199
- const elementSlots = props.children;
197
+ // ET host nodes are compiler-generated; `swc_plugin_element_template`
198
+ // (lowering.rs) emits dynamic children as `$N` named props only no
199
+ // `children` prop is produced — so the renderer only consumes `$N`.
200
+ let elementSlots;
201
+ for (const name in props) {
202
+ if (name.startsWith('$')) {
203
+ (elementSlots ??= [])[+name.slice(1)] = props[name];
204
+ }
205
+ }
200
206
  if (elementSlots !== undefined) {
201
207
  renderEtSlotArray(elementSlots, context, vnode, opcodes);
202
208
  }
@@ -1 +1 @@
1
- {"version":3,"file":"render-to-opcodes.js","sourceRoot":"","sources":["../../../../src/element-template/runtime/render/render-to-opcodes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"render-to-opcodes.js","sourceRoot":"","sources":["../../../../src/element-template/runtime/render/render-to-opcodes.ts"],"names":[],"mappings":"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"}
@@ -7,5 +7,6 @@ export type EtAttrPlan = (number | EtAttrAdapter)[];
7
7
  export type EtAttrPlanMap = Record<string, EtAttrPlan | undefined>;
8
8
  export declare const __etAttrPlanMap: EtAttrPlanMap;
9
9
  export declare function adaptEventAttrSlot(handleId: number, attrSlotIndex: number, value: unknown, _context?: EtAttrAdapterContext): SerializableValue | null;
10
+ export declare function adaptRefAttrSlot(handleId: number, attrSlotIndex: number, value: unknown, _context?: EtAttrAdapterContext): SerializableValue | null;
10
11
  export declare function adaptSpreadAttrSlot(handleId: number, attrSlotIndex: number, value: unknown, context?: EtAttrAdapterContext): SerializableValue | null;
11
12
  export declare function clearEtAttrPlanMap(): void;