ripple 0.3.68 → 0.3.69

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 (182) hide show
  1. package/CHANGELOG.md +48 -0
  2. package/package.json +3 -3
  3. package/src/jsx-runtime.d.ts +2 -2
  4. package/src/runtime/element.js +1 -1
  5. package/src/runtime/index-client.js +11 -11
  6. package/src/runtime/index-server.js +7 -4
  7. package/src/runtime/internal/client/bindings.js +1 -1
  8. package/src/runtime/internal/client/blocks.js +13 -4
  9. package/src/runtime/internal/client/component.js +55 -0
  10. package/src/runtime/internal/client/composite.js +4 -2
  11. package/src/runtime/internal/client/expression.js +65 -7
  12. package/src/runtime/internal/client/hmr.js +54 -43
  13. package/src/runtime/internal/client/index.js +5 -1
  14. package/src/runtime/internal/client/portal.js +70 -69
  15. package/src/runtime/internal/client/render.js +3 -0
  16. package/src/runtime/internal/server/index.js +92 -8
  17. package/tests/client/__snapshots__/html.test.tsrx.snap +3 -3
  18. package/tests/client/array/array.copy-within.test.tsrx +33 -31
  19. package/tests/client/array/array.derived.test.tsrx +186 -169
  20. package/tests/client/array/array.iteration.test.tsrx +40 -37
  21. package/tests/client/array/array.mutations.test.tsrx +113 -101
  22. package/tests/client/array/array.static.test.tsrx +119 -101
  23. package/tests/client/array/array.to-methods.test.tsrx +24 -21
  24. package/tests/client/async-suspend.test.tsrx +247 -246
  25. package/tests/client/basic/__snapshots__/basic.rendering.test.tsrx.snap +0 -1
  26. package/tests/client/basic/basic.attributes.test.tsrx +428 -423
  27. package/tests/client/basic/basic.collections.test.tsrx +109 -102
  28. package/tests/client/basic/basic.components.test.tsrx +323 -205
  29. package/tests/client/basic/basic.errors.test.tsrx +91 -91
  30. package/tests/client/basic/basic.events.test.tsrx +114 -115
  31. package/tests/client/basic/basic.get-set.test.tsrx +97 -87
  32. package/tests/client/basic/basic.hmr.test.tsrx +19 -16
  33. package/tests/client/basic/basic.reactivity.test.tsrx +199 -191
  34. package/tests/client/basic/basic.rendering.test.tsrx +272 -182
  35. package/tests/client/basic/basic.styling.test.tsrx +23 -22
  36. package/tests/client/basic/basic.utilities.test.tsrx +10 -8
  37. package/tests/client/boundaries.test.tsrx +26 -26
  38. package/tests/client/compiler/__snapshots__/compiler.assignments.test.rsrx.snap +5 -5
  39. package/tests/client/compiler/__snapshots__/compiler.assignments.test.tsrx.snap +5 -5
  40. package/tests/client/compiler/compiler.assignments.test.tsrx +77 -81
  41. package/tests/client/compiler/compiler.attributes.test.tsrx +15 -15
  42. package/tests/client/compiler/compiler.basic.test.tsrx +322 -314
  43. package/tests/client/compiler/compiler.regex.test.tsrx +44 -47
  44. package/tests/client/compiler/compiler.tracked-access.test.tsrx +38 -38
  45. package/tests/client/compiler/compiler.try-in-function.test.tsrx +16 -16
  46. package/tests/client/compiler/compiler.typescript.test.tsrx +2 -2
  47. package/tests/client/composite/composite.dynamic-components.test.tsrx +47 -48
  48. package/tests/client/composite/composite.generics.test.tsrx +168 -192
  49. package/tests/client/composite/composite.props.test.tsrx +97 -81
  50. package/tests/client/composite/composite.reactivity.test.tsrx +177 -147
  51. package/tests/client/composite/composite.render.test.tsrx +122 -105
  52. package/tests/client/computed-properties.test.tsrx +28 -28
  53. package/tests/client/context.test.tsrx +21 -21
  54. package/tests/client/css/global-additional-cases.test.tsrx +58 -58
  55. package/tests/client/css/global-advanced-selectors.test.tsrx +16 -16
  56. package/tests/client/css/global-at-rules.test.tsrx +10 -10
  57. package/tests/client/css/global-basic.test.tsrx +14 -14
  58. package/tests/client/css/global-classes-ids.test.tsrx +14 -14
  59. package/tests/client/css/global-combinators.test.tsrx +10 -10
  60. package/tests/client/css/global-complex-nesting.test.tsrx +14 -14
  61. package/tests/client/css/global-edge-cases.test.tsrx +18 -18
  62. package/tests/client/css/global-keyframes.test.tsrx +12 -12
  63. package/tests/client/css/global-nested.test.tsrx +10 -10
  64. package/tests/client/css/global-pseudo.test.tsrx +12 -12
  65. package/tests/client/css/global-scoping.test.tsrx +20 -20
  66. package/tests/client/css/style-identifier.test.tsrx +143 -291
  67. package/tests/client/date.test.tsrx +146 -133
  68. package/tests/client/dynamic-elements.test.tsrx +398 -365
  69. package/tests/client/events.test.tsrx +292 -290
  70. package/tests/client/for.test.tsrx +156 -153
  71. package/tests/client/head.test.tsrx +105 -96
  72. package/tests/client/html.test.tsrx +122 -26
  73. package/tests/client/input-value.test.tsrx +1361 -1314
  74. package/tests/client/lazy-array.test.tsrx +16 -13
  75. package/tests/client/lazy-destructuring.test.tsrx +257 -213
  76. package/tests/client/map.test.tsrx +65 -60
  77. package/tests/client/media-query.test.tsrx +22 -20
  78. package/tests/client/object.test.tsrx +87 -81
  79. package/tests/client/portal.test.tsrx +57 -51
  80. package/tests/client/ref.test.tsrx +233 -202
  81. package/tests/client/return.test.tsrx +71 -2560
  82. package/tests/client/set.test.tsrx +54 -45
  83. package/tests/client/svg.test.tsrx +216 -186
  84. package/tests/client/switch.test.tsrx +194 -193
  85. package/tests/client/track-async-hydration.test.tsrx +18 -14
  86. package/tests/client/tracked-index-access.test.tsrx +28 -18
  87. package/tests/client/try.test.tsrx +675 -548
  88. package/tests/client/tsx.test.tsrx +373 -311
  89. package/tests/client/typescript-generics.test.tsrx +145 -145
  90. package/tests/client/url/url.derived.test.tsrx +33 -28
  91. package/tests/client/url/url.parsing.test.tsrx +61 -51
  92. package/tests/client/url/url.partial-removal.test.tsrx +56 -48
  93. package/tests/client/url/url.reactivity.test.tsrx +142 -125
  94. package/tests/client/url/url.serialization.test.tsrx +13 -11
  95. package/tests/client/url-search-params/url-search-params.derived.test.tsrx +34 -29
  96. package/tests/client/url-search-params/url-search-params.initialization.test.tsrx +25 -21
  97. package/tests/client/url-search-params/url-search-params.iteration.test.tsrx +50 -45
  98. package/tests/client/url-search-params/url-search-params.mutation.test.tsrx +111 -99
  99. package/tests/client/url-search-params/url-search-params.retrieval.test.tsrx +49 -43
  100. package/tests/client/url-search-params/url-search-params.serialization.test.tsrx +14 -12
  101. package/tests/client/url-search-params/url-search-params.tracked-url.test.tsrx +16 -14
  102. package/tests/hydration/basic.test.js +3 -3
  103. package/tests/hydration/compiled/client/basic.js +586 -651
  104. package/tests/hydration/compiled/client/composite.js +79 -104
  105. package/tests/hydration/compiled/client/events.js +140 -148
  106. package/tests/hydration/compiled/client/for.js +1005 -1018
  107. package/tests/hydration/compiled/client/head.js +124 -134
  108. package/tests/hydration/compiled/client/hmr.js +41 -48
  109. package/tests/hydration/compiled/client/html-in-template.js +38 -41
  110. package/tests/hydration/compiled/client/html.js +970 -1314
  111. package/tests/hydration/compiled/client/if-children.js +234 -249
  112. package/tests/hydration/compiled/client/if.js +182 -189
  113. package/tests/hydration/compiled/client/mixed-control-flow.js +347 -303
  114. package/tests/hydration/compiled/client/nested-control-flow.js +1084 -832
  115. package/tests/hydration/compiled/client/portal.js +65 -85
  116. package/tests/hydration/compiled/client/reactivity.js +84 -90
  117. package/tests/hydration/compiled/client/return.js +38 -1939
  118. package/tests/hydration/compiled/client/switch.js +218 -224
  119. package/tests/hydration/compiled/client/track-async-serialization.js +250 -259
  120. package/tests/hydration/compiled/client/try.js +123 -132
  121. package/tests/hydration/compiled/server/basic.js +773 -831
  122. package/tests/hydration/compiled/server/composite.js +166 -191
  123. package/tests/hydration/compiled/server/events.js +170 -184
  124. package/tests/hydration/compiled/server/for.js +851 -909
  125. package/tests/hydration/compiled/server/head.js +206 -216
  126. package/tests/hydration/compiled/server/hmr.js +64 -72
  127. package/tests/hydration/compiled/server/html-in-template.js +42 -76
  128. package/tests/hydration/compiled/server/html.js +1362 -1667
  129. package/tests/hydration/compiled/server/if-children.js +419 -445
  130. package/tests/hydration/compiled/server/if.js +194 -208
  131. package/tests/hydration/compiled/server/mixed-control-flow.js +249 -257
  132. package/tests/hydration/compiled/server/nested-control-flow.js +491 -515
  133. package/tests/hydration/compiled/server/portal.js +152 -160
  134. package/tests/hydration/compiled/server/reactivity.js +94 -106
  135. package/tests/hydration/compiled/server/return.js +28 -2172
  136. package/tests/hydration/compiled/server/switch.js +274 -286
  137. package/tests/hydration/compiled/server/track-async-serialization.js +340 -358
  138. package/tests/hydration/compiled/server/try.js +167 -185
  139. package/tests/hydration/components/basic.tsrx +320 -272
  140. package/tests/hydration/components/composite.tsrx +44 -32
  141. package/tests/hydration/components/events.tsrx +101 -91
  142. package/tests/hydration/components/for.tsrx +510 -452
  143. package/tests/hydration/components/head.tsrx +87 -80
  144. package/tests/hydration/components/hmr.tsrx +22 -17
  145. package/tests/hydration/components/html-in-template.tsrx +22 -17
  146. package/tests/hydration/components/html.tsrx +525 -443
  147. package/tests/hydration/components/if-children.tsrx +158 -148
  148. package/tests/hydration/components/if.tsrx +109 -95
  149. package/tests/hydration/components/mixed-control-flow.tsrx +100 -96
  150. package/tests/hydration/components/nested-control-flow.tsrx +215 -203
  151. package/tests/hydration/components/portal.tsrx +41 -34
  152. package/tests/hydration/components/reactivity.tsrx +37 -27
  153. package/tests/hydration/components/return.tsrx +12 -556
  154. package/tests/hydration/components/switch.tsrx +120 -114
  155. package/tests/hydration/components/track-async-serialization.tsrx +107 -91
  156. package/tests/hydration/components/try.tsrx +55 -40
  157. package/tests/hydration/html.test.js +4 -4
  158. package/tests/hydration/return.test.js +13 -532
  159. package/tests/server/await.test.tsrx +3 -3
  160. package/tests/server/basic.attributes.test.tsrx +264 -195
  161. package/tests/server/basic.components.test.tsrx +296 -169
  162. package/tests/server/basic.test.tsrx +300 -198
  163. package/tests/server/compiler.test.tsrx +62 -60
  164. package/tests/server/composite.props.test.tsrx +77 -63
  165. package/tests/server/composite.test.tsrx +168 -192
  166. package/tests/server/context.test.tsrx +18 -12
  167. package/tests/server/dynamic-elements.test.tsrx +197 -180
  168. package/tests/server/for.test.tsrx +85 -78
  169. package/tests/server/head.test.tsrx +50 -43
  170. package/tests/server/html-nesting-validation.test.tsrx +8 -8
  171. package/tests/server/if.test.tsrx +57 -51
  172. package/tests/server/lazy-destructuring.test.tsrx +366 -294
  173. package/tests/server/return.test.tsrx +76 -1355
  174. package/tests/server/streaming-ssr.test.tsrx +4 -75
  175. package/tests/server/style-identifier.test.tsrx +169 -148
  176. package/tests/server/switch.test.tsrx +91 -85
  177. package/tests/server/track-async-serialization.test.tsrx +105 -85
  178. package/tests/server/try.test.tsrx +374 -280
  179. package/tests/utils/compiler-compat-config.test.js +2 -2
  180. package/tests/utils/runtime-imports.test.js +10 -0
  181. package/types/index.d.ts +8 -0
  182. package/tests/client/__snapshots__/html.test.rsrx.snap +0 -40
@@ -30,391 +30,435 @@ var root_25 = _$_.template(`<div class="resolved-row"> </div>`, 0);
30
30
 
31
31
  import { track, trackAsync } from 'ripple';
32
32
 
33
- export function MixedControlFlowStatic(__anchor, _, __block) {
34
- _$_.push_component();
33
+ export function MixedControlFlowStatic() {
34
+ return _$_.tsrx_element((__anchor, __block) => {
35
+ const rows = [
36
+ { id: 1, kind: 'a', enabled: true },
37
+ { id: 2, kind: 'b', enabled: true },
38
+ { id: 3, kind: 'a', enabled: false }
39
+ ];
40
+
41
+ var section_1 = root();
42
+
43
+ {
44
+ _$_.for_keyed(
45
+ section_1,
46
+ () => rows,
47
+ (__anchor, pattern) => {
48
+ var fragment = root_1();
49
+ var node = _$_.first_child_frag(fragment);
35
50
 
36
- const rows = [
37
- { id: 1, kind: 'a', enabled: true },
38
- { id: 2, kind: 'b', enabled: true },
39
- { id: 3, kind: 'a', enabled: false }
40
- ];
51
+ {
52
+ var consequent = (__anchor) => {
53
+ var fragment_1 = root_2();
54
+ var node_1 = _$_.first_child_frag(fragment_1);
55
+
56
+ {
57
+ var switch_case_0 = (__anchor) => {
58
+ var fragment_2 = root_3();
59
+ var node_2 = _$_.first_child_frag(fragment_2);
60
+
61
+ _$_.try(
62
+ node_2,
63
+ (__anchor) => {
64
+ var div_1 = root_4();
65
+
66
+ {
67
+ var expression = _$_.child(div_1, true);
68
+
69
+ _$_.pop(div_1);
70
+ }
71
+
72
+ _$_.render(
73
+ (__prev) => {
74
+ var __a = `A-${_$_.get(pattern).id}`;
75
+
76
+ if (__prev.a !== __a) {
77
+ _$_.set_text(expression, __prev.a = __a);
78
+ }
79
+
80
+ var __b = `row row-${_$_.get(pattern).id} kind-a`;
81
+
82
+ if (__prev.b !== __b) {
83
+ _$_.set_class(div_1, __prev.b = __b, void 0, true);
84
+ }
85
+ },
86
+ { a: ' ', b: Symbol() }
87
+ );
88
+
89
+ _$_.append(__anchor, div_1);
90
+ },
91
+ null,
92
+ (__anchor) => {
93
+ var div_2 = root_5();
94
+
95
+ _$_.render(() => {
96
+ _$_.set_class(div_2, `pending pending-${_$_.get(pattern).id}`, void 0, true);
97
+ });
98
+
99
+ _$_.append(__anchor, div_2);
100
+ }
101
+ );
41
102
 
42
- var section_1 = root();
103
+ _$_.append(__anchor, fragment_2);
104
+ };
43
105
 
44
- {
45
- _$_.for_keyed(
46
- section_1,
47
- () => rows,
48
- (__anchor, pattern) => {
49
- var fragment = root_1();
50
- var node = _$_.first_child_frag(fragment);
106
+ var switch_case_default = (__anchor) => {
107
+ var fragment_3 = root_6();
108
+ var node_3 = _$_.first_child_frag(fragment_3);
51
109
 
52
- {
53
- var consequent = (__anchor) => {
54
- var fragment_1 = root_2();
55
- var node_1 = _$_.first_child_frag(fragment_1);
110
+ _$_.try(
111
+ node_3,
112
+ (__anchor) => {
113
+ var div_3 = root_7();
56
114
 
57
- {
58
- var switch_case_0 = (__anchor) => {
59
- var fragment_2 = root_3();
60
- var node_2 = _$_.first_child_frag(fragment_2);
115
+ {
116
+ var expression_1 = _$_.child(div_3, true);
61
117
 
62
- _$_.try(
63
- node_2,
64
- (__anchor) => {
65
- var div_1 = root_4();
118
+ _$_.pop(div_3);
119
+ }
66
120
 
67
- {
68
- var expression = _$_.child(div_1);
121
+ _$_.render(
122
+ (__prev) => {
123
+ var __a = `B-${_$_.get(pattern).id}`;
69
124
 
70
- _$_.expression(expression, () => `A-${_$_.get(pattern).id}`);
71
- _$_.pop(div_1);
125
+ if (__prev.a !== __a) {
126
+ _$_.set_text(expression_1, __prev.a = __a);
127
+ }
128
+
129
+ var __b = `row row-${_$_.get(pattern).id} kind-b`;
130
+
131
+ if (__prev.b !== __b) {
132
+ _$_.set_class(div_3, __prev.b = __b, void 0, true);
133
+ }
134
+ },
135
+ { a: ' ', b: Symbol() }
136
+ );
137
+
138
+ _$_.append(__anchor, div_3);
139
+ },
140
+ null,
141
+ (__anchor) => {
142
+ var div_4 = root_8();
143
+
144
+ _$_.render(() => {
145
+ _$_.set_class(div_4, `pending pending-${_$_.get(pattern).id}`, void 0, true);
146
+ });
147
+
148
+ _$_.append(__anchor, div_4);
72
149
  }
150
+ );
73
151
 
74
- _$_.render(() => {
75
- _$_.set_class(div_1, `row row-${_$_.get(pattern).id} kind-a`, void 0, true);
76
- });
152
+ _$_.append(__anchor, fragment_3);
153
+ };
77
154
 
78
- _$_.append(__anchor, div_1);
79
- },
80
- null,
81
- (__anchor) => {
82
- var div_2 = root_5();
155
+ _$_.switch(node_1, () => {
156
+ var result = [];
83
157
 
84
- _$_.render(() => {
85
- _$_.set_class(div_2, `pending pending-${_$_.get(pattern).id}`, void 0, true);
86
- });
158
+ switch (_$_.get(pattern).kind) {
159
+ case 'a':
160
+ result.push(switch_case_0);
161
+ return result;
87
162
 
88
- _$_.append(__anchor, div_2);
163
+ default:
164
+ result.push(switch_case_default);
165
+ return result;
89
166
  }
90
- );
167
+ });
168
+ }
91
169
 
92
- _$_.append(__anchor, fragment_2);
93
- };
170
+ _$_.append(__anchor, fragment_1);
171
+ };
94
172
 
95
- var switch_case_default = (__anchor) => {
96
- var fragment_3 = root_6();
97
- var node_3 = _$_.first_child_frag(fragment_3);
173
+ _$_.if(node, (__render) => {
174
+ if (_$_.get(pattern).enabled) __render(consequent);
175
+ });
176
+ }
98
177
 
99
- _$_.try(
100
- node_3,
101
- (__anchor) => {
102
- var div_3 = root_7();
178
+ _$_.append(__anchor, fragment);
179
+ },
180
+ 4,
181
+ (pattern) => _$_.get(pattern).id
182
+ );
103
183
 
104
- {
105
- var expression_1 = _$_.child(div_3);
184
+ _$_.pop(section_1);
185
+ }
106
186
 
107
- _$_.expression(expression_1, () => `B-${_$_.get(pattern).id}`);
108
- _$_.pop(div_3);
109
- }
187
+ _$_.append(__anchor, section_1);
188
+ });
189
+ }
110
190
 
111
- _$_.render(() => {
112
- _$_.set_class(div_3, `row row-${_$_.get(pattern).id} kind-b`, void 0, true);
113
- });
191
+ export function MixedControlFlowReactive() {
192
+ return _$_.tsrx_element((__anchor, __block) => {
193
+ let lazy = _$_.track(true, __block, '5ae53d26');
194
+ let lazy_1 = _$_.track('a', __block, '5b53eda2');
195
+ let lazy_2 = _$_.track([{ id: 1, label: 'One' }, { id: 2, label: 'Two' }], __block, '7890dad6');
196
+ var fragment_4 = root_9();
197
+ var button_1 = _$_.first_child_frag(fragment_4);
114
198
 
115
- _$_.append(__anchor, div_3);
116
- },
117
- null,
118
- (__anchor) => {
119
- var div_4 = root_8();
199
+ button_1.__click = () => {
200
+ _$_.set(lazy, !lazy.value);
201
+ };
120
202
 
121
- _$_.render(() => {
122
- _$_.set_class(div_4, `pending pending-${_$_.get(pattern).id}`, void 0, true);
123
- });
203
+ var button_2 = _$_.sibling(button_1);
124
204
 
125
- _$_.append(__anchor, div_4);
126
- }
127
- );
205
+ button_2.__click = () => {
206
+ _$_.set(lazy_1, lazy_1.value === 'a' ? 'b' : 'a');
207
+ };
128
208
 
129
- _$_.append(__anchor, fragment_3);
130
- };
209
+ var button_3 = _$_.sibling(button_2);
131
210
 
132
- _$_.switch(node_1, () => {
133
- var result = [];
211
+ button_3.__click = () => {
212
+ _$_.set(lazy_2, [...lazy_2.value, { id: 3, label: 'Three' }]);
213
+ };
134
214
 
135
- switch (_$_.get(pattern).kind) {
136
- case 'a':
137
- result.push(switch_case_0);
138
- return result;
215
+ var node_4 = _$_.sibling(button_3);
139
216
 
140
- default:
141
- result.push(switch_case_default);
142
- return result;
143
- }
144
- });
145
- }
217
+ {
218
+ var consequent_1 = (__anchor) => {
219
+ var div_5 = root_10();
146
220
 
147
- _$_.append(__anchor, fragment_1);
148
- };
221
+ {
222
+ _$_.for_keyed(
223
+ div_5,
224
+ () => lazy_2.value,
225
+ (__anchor, pattern_1) => {
226
+ var fragment_5 = root_11();
227
+ var node_5 = _$_.first_child_frag(fragment_5);
228
+
229
+ {
230
+ var switch_case_0_1 = (__anchor) => {
231
+ var fragment_6 = root_12();
232
+ var node_6 = _$_.first_child_frag(fragment_6);
233
+
234
+ _$_.try(
235
+ node_6,
236
+ (__anchor) => {
237
+ var p_1 = root_13();
238
+
239
+ {
240
+ var expression_2 = _$_.child(p_1, true);
241
+
242
+ _$_.pop(p_1);
243
+ }
244
+
245
+ _$_.render(
246
+ (__prev) => {
247
+ var __a = `A:${_$_.get(pattern_1).label}`;
248
+
249
+ if (__prev.a !== __a) {
250
+ _$_.set_text(expression_2, __prev.a = __a);
251
+ }
252
+
253
+ var __b = `item item-${_$_.get(pattern_1).id}`;
254
+
255
+ if (__prev.b !== __b) {
256
+ _$_.set_class(p_1, __prev.b = __b, void 0, true);
257
+ }
258
+ },
259
+ { a: ' ', b: Symbol() }
260
+ );
261
+
262
+ _$_.append(__anchor, p_1);
263
+ },
264
+ null,
265
+ (__anchor) => {
266
+ var p_2 = root_14();
267
+
268
+ _$_.append(__anchor, p_2);
269
+ }
270
+ );
149
271
 
150
- _$_.if(node, (__render) => {
151
- if (_$_.get(pattern).enabled) __render(consequent);
152
- });
153
- }
272
+ _$_.append(__anchor, fragment_6);
273
+ };
154
274
 
155
- _$_.append(__anchor, fragment);
156
- },
157
- 4,
158
- (pattern) => _$_.get(pattern).id
159
- );
275
+ var switch_case_default_1 = (__anchor) => {
276
+ var fragment_7 = root_15();
277
+ var node_7 = _$_.first_child_frag(fragment_7);
160
278
 
161
- _$_.pop(section_1);
162
- }
279
+ _$_.try(
280
+ node_7,
281
+ (__anchor) => {
282
+ var p_3 = root_16();
163
283
 
164
- _$_.append(__anchor, section_1);
165
- _$_.pop_component();
166
- }
284
+ {
285
+ var expression_3 = _$_.child(p_3, true);
167
286
 
168
- export function MixedControlFlowReactive(__anchor, _, __block) {
169
- _$_.push_component();
287
+ _$_.pop(p_3);
288
+ }
170
289
 
171
- let lazy = _$_.track(true, __block, '5ae53d26');
172
- let lazy_1 = _$_.track('a', __block, '5b53eda2');
173
- let lazy_2 = _$_.track([{ id: 1, label: 'One' }, { id: 2, label: 'Two' }], __block, '7890dad6');
174
- var fragment_4 = root_9();
175
- var button_1 = _$_.first_child_frag(fragment_4);
290
+ _$_.render(
291
+ (__prev) => {
292
+ var __a = `B:${_$_.get(pattern_1).label}`;
176
293
 
177
- button_1.__click = () => {
178
- _$_.set(lazy, !lazy.value);
179
- };
294
+ if (__prev.a !== __a) {
295
+ _$_.set_text(expression_3, __prev.a = __a);
296
+ }
180
297
 
181
- var button_2 = _$_.sibling(button_1);
298
+ var __b = `item item-${_$_.get(pattern_1).id}`;
182
299
 
183
- button_2.__click = () => {
184
- _$_.set(lazy_1, lazy_1.value === 'a' ? 'b' : 'a');
185
- };
300
+ if (__prev.b !== __b) {
301
+ _$_.set_class(p_3, __prev.b = __b, void 0, true);
302
+ }
303
+ },
304
+ { a: ' ', b: Symbol() }
305
+ );
186
306
 
187
- var button_3 = _$_.sibling(button_2);
307
+ _$_.append(__anchor, p_3);
308
+ },
309
+ null,
310
+ (__anchor) => {
311
+ var p_4 = root_17();
188
312
 
189
- button_3.__click = () => {
190
- _$_.set(lazy_2, [...lazy_2.value, { id: 3, label: 'Three' }]);
191
- };
313
+ _$_.append(__anchor, p_4);
314
+ }
315
+ );
192
316
 
193
- var node_4 = _$_.sibling(button_3);
317
+ _$_.append(__anchor, fragment_7);
318
+ };
194
319
 
195
- {
196
- var consequent_1 = (__anchor) => {
197
- var div_5 = root_10();
320
+ _$_.switch(node_5, () => {
321
+ var result = [];
198
322
 
199
- {
200
- _$_.for_keyed(
201
- div_5,
202
- () => lazy_2.value,
203
- (__anchor, pattern_1) => {
204
- var fragment_5 = root_11();
205
- var node_5 = _$_.first_child_frag(fragment_5);
323
+ switch (lazy_1.value) {
324
+ case 'a':
325
+ result.push(switch_case_0_1);
326
+ return result;
206
327
 
207
- {
208
- var switch_case_0_1 = (__anchor) => {
209
- var fragment_6 = root_12();
210
- var node_6 = _$_.first_child_frag(fragment_6);
328
+ default:
329
+ result.push(switch_case_default_1);
330
+ return result;
331
+ }
332
+ });
333
+ }
211
334
 
212
- _$_.try(
213
- node_6,
214
- (__anchor) => {
215
- var p_1 = root_13();
335
+ _$_.append(__anchor, fragment_5);
336
+ },
337
+ 4,
338
+ (pattern_1) => _$_.get(pattern_1).id
339
+ );
216
340
 
217
- {
218
- var expression_2 = _$_.child(p_1);
341
+ _$_.pop(div_5);
342
+ }
219
343
 
220
- _$_.expression(expression_2, () => `A:${_$_.get(pattern_1).label}`);
221
- _$_.pop(p_1);
222
- }
344
+ _$_.append(__anchor, div_5);
345
+ };
223
346
 
224
- _$_.render(() => {
225
- _$_.set_class(p_1, `item item-${_$_.get(pattern_1).id}`, void 0, true);
226
- });
347
+ _$_.if(node_4, (__render) => {
348
+ if (lazy.value) __render(consequent_1);
349
+ });
350
+ }
227
351
 
228
- _$_.append(__anchor, p_1);
229
- },
230
- null,
231
- (__anchor) => {
232
- var p_2 = root_14();
352
+ _$_.append(__anchor, fragment_4);
353
+ });
354
+ }
233
355
 
234
- _$_.append(__anchor, p_2);
235
- }
236
- );
356
+ export function MixedControlFlowAsyncPending() {
357
+ return _$_.tsrx_element((__anchor, __block) => {
358
+ const rows = [1, 2];
359
+ const state = 'slow';
360
+ var fragment_8 = root_18();
361
+ var div_6 = _$_.first_child_frag(fragment_8);
362
+ var node_8 = _$_.sibling(div_6);
237
363
 
238
- _$_.append(__anchor, fragment_6);
239
- };
364
+ _$_.for(
365
+ node_8,
366
+ () => rows,
367
+ (__anchor, row) => {
368
+ var fragment_9 = root_19();
369
+ var node_9 = _$_.first_child_frag(fragment_9);
370
+
371
+ {
372
+ var consequent_2 = (__anchor) => {
373
+ var fragment_10 = root_20();
374
+ var node_10 = _$_.first_child_frag(fragment_10);
240
375
 
241
- var switch_case_default_1 = (__anchor) => {
242
- var fragment_7 = root_15();
243
- var node_7 = _$_.first_child_frag(fragment_7);
376
+ {
377
+ var switch_case_0_2 = (__anchor) => {
378
+ var fragment_11 = root_21();
379
+ var node_11 = _$_.first_child_frag(fragment_11);
244
380
 
245
381
  _$_.try(
246
- node_7,
382
+ node_11,
247
383
  (__anchor) => {
248
- var p_3 = root_16();
384
+ var fragment_12 = root_22();
385
+ var node_12 = _$_.first_child_frag(fragment_12);
249
386
 
250
- {
251
- var expression_3 = _$_.child(p_3);
252
-
253
- _$_.expression(expression_3, () => `B:${_$_.get(pattern_1).label}`);
254
- _$_.pop(p_3);
255
- }
256
-
257
- _$_.render(() => {
258
- _$_.set_class(p_3, `item item-${_$_.get(pattern_1).id}`, void 0, true);
259
- });
260
-
261
- _$_.append(__anchor, p_3);
387
+ _$_.render_component(AsyncRow, node_12, { label: `row-${row}` });
388
+ _$_.append(__anchor, fragment_12);
262
389
  },
263
390
  null,
264
391
  (__anchor) => {
265
- var p_4 = root_17();
392
+ var div_7 = root_23();
393
+
394
+ _$_.set_class(div_7, `pending-row pending-row-${row}`, void 0, true);
395
+
396
+ {
397
+ var expression_4 = _$_.child(div_7, true);
398
+
399
+ expression_4.nodeValue = `pending ${row}`;
400
+ _$_.pop(div_7);
401
+ }
266
402
 
267
- _$_.append(__anchor, p_4);
403
+ _$_.append(__anchor, div_7);
268
404
  }
269
405
  );
270
406
 
271
- _$_.append(__anchor, fragment_7);
407
+ _$_.append(__anchor, fragment_11);
272
408
  };
273
409
 
274
- _$_.switch(node_5, () => {
410
+ var switch_case_default_2 = (__anchor) => {
411
+ var div_8 = root_24();
412
+
413
+ _$_.append(__anchor, div_8);
414
+ };
415
+
416
+ _$_.switch(node_10, () => {
275
417
  var result = [];
276
418
 
277
- switch (lazy_1.value) {
278
- case 'a':
279
- result.push(switch_case_0_1);
419
+ switch (state) {
420
+ case 'slow':
421
+ result.push(switch_case_0_2);
280
422
  return result;
281
423
 
282
424
  default:
283
- result.push(switch_case_default_1);
425
+ result.push(switch_case_default_2);
284
426
  return result;
285
427
  }
286
428
  });
287
429
  }
288
430
 
289
- _$_.append(__anchor, fragment_5);
290
- },
291
- 4,
292
- (pattern_1) => _$_.get(pattern_1).id
293
- );
294
-
295
- _$_.pop(div_5);
296
- }
297
-
298
- _$_.append(__anchor, div_5);
299
- };
300
-
301
- _$_.if(node_4, (__render) => {
302
- if (lazy.value) __render(consequent_1);
303
- });
304
- }
305
-
306
- _$_.append(__anchor, fragment_4);
307
- _$_.pop_component();
308
- }
309
-
310
- export function MixedControlFlowAsyncPending(__anchor, _, __block) {
311
- _$_.push_component();
312
-
313
- const rows = [1, 2];
314
- const state = 'slow';
315
- var fragment_8 = root_18();
316
- var div_6 = _$_.first_child_frag(fragment_8);
317
- var node_8 = _$_.sibling(div_6);
318
-
319
- _$_.for(
320
- node_8,
321
- () => rows,
322
- (__anchor, row) => {
323
- var fragment_9 = root_19();
324
- var node_9 = _$_.first_child_frag(fragment_9);
325
-
326
- {
327
- var consequent_2 = (__anchor) => {
328
- var fragment_10 = root_20();
329
- var node_10 = _$_.first_child_frag(fragment_10);
330
-
331
- {
332
- var switch_case_0_2 = (__anchor) => {
333
- var fragment_11 = root_21();
334
- var node_11 = _$_.first_child_frag(fragment_11);
335
-
336
- _$_.try(
337
- node_11,
338
- (__anchor) => {
339
- var fragment_12 = root_22();
340
- var node_12 = _$_.first_child_frag(fragment_12);
341
-
342
- AsyncRow(node_12, { label: `row-${row}` }, _$_.active_block);
343
- _$_.append(__anchor, fragment_12);
344
- },
345
- null,
346
- (__anchor) => {
347
- var div_7 = root_23();
348
-
349
- _$_.set_class(div_7, `pending-row pending-row-${row}`, void 0, true);
350
-
351
- {
352
- var expression_4 = _$_.child(div_7);
353
-
354
- _$_.expression(expression_4, () => `pending ${row}`);
355
- _$_.pop(div_7);
356
- }
357
-
358
- _$_.append(__anchor, div_7);
359
- }
360
- );
361
-
362
- _$_.append(__anchor, fragment_11);
363
- };
364
-
365
- var switch_case_default_2 = (__anchor) => {
366
- var div_8 = root_24();
367
-
368
- _$_.append(__anchor, div_8);
369
- };
370
-
371
- _$_.switch(node_10, () => {
372
- var result = [];
373
-
374
- switch (state) {
375
- case 'slow':
376
- result.push(switch_case_0_2);
377
- return result;
378
-
379
- default:
380
- result.push(switch_case_default_2);
381
- return result;
382
- }
383
- });
384
- }
385
-
386
- _$_.append(__anchor, fragment_10);
387
- };
431
+ _$_.append(__anchor, fragment_10);
432
+ };
388
433
 
389
- _$_.if(node_9, (__render) => {
390
- if (row === 1) __render(consequent_2);
391
- });
392
- }
434
+ _$_.if(node_9, (__render) => {
435
+ if (row === 1) __render(consequent_2);
436
+ });
437
+ }
393
438
 
394
- _$_.append(__anchor, fragment_9);
395
- },
396
- 0
397
- );
439
+ _$_.append(__anchor, fragment_9);
440
+ },
441
+ 0
442
+ );
398
443
 
399
- _$_.append(__anchor, fragment_8);
400
- _$_.pop_component();
444
+ _$_.append(__anchor, fragment_8);
445
+ });
401
446
  }
402
447
 
403
- function AsyncRow(__anchor, { label }, __block) {
404
- _$_.push_component();
405
-
406
- let lazy_3 = _$_.track_async(() => _$_.with_scope(__block, () => Promise.resolve(label)), __block, '10cc79a0');
407
- var div_9 = root_25();
448
+ function AsyncRow({ label }) {
449
+ return _$_.tsrx_element((__anchor, __block) => {
450
+ let lazy_3 = _$_.track_async(() => _$_.with_scope(__block, () => Promise.resolve(label)), __block, '10cc79a0');
451
+ var div_9 = root_25();
408
452
 
409
- {
410
- var expression_5 = _$_.child(div_9);
453
+ {
454
+ var expression_5 = _$_.child(div_9);
411
455
 
412
- _$_.expression(expression_5, () => lazy_3.value);
413
- _$_.pop(div_9);
414
- }
456
+ _$_.expression(expression_5, () => lazy_3.value);
457
+ _$_.pop(div_9);
458
+ }
415
459
 
416
- _$_.append(__anchor, div_9);
417
- _$_.pop_component();
460
+ _$_.append(__anchor, div_9);
461
+ });
418
462
  }
419
463
 
420
464
  _$_.delegate(['click']);