ripple 0.3.127 → 0.4.0

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 (192) hide show
  1. package/CHANGELOG.md +293 -0
  2. package/package.json +10 -4
  3. package/src/runtime/element.js +23 -6
  4. package/src/runtime/index-client.js +81 -41
  5. package/src/runtime/index-server.js +1 -0
  6. package/src/runtime/internal/client/blocks.js +192 -114
  7. package/src/runtime/internal/client/component.js +4 -30
  8. package/src/runtime/internal/client/composite.js +12 -13
  9. package/src/runtime/internal/client/constants.js +14 -5
  10. package/src/runtime/internal/client/context.js +12 -19
  11. package/src/runtime/internal/client/css.js +7 -9
  12. package/src/runtime/internal/client/events.js +178 -90
  13. package/src/runtime/internal/client/expression.js +185 -124
  14. package/src/runtime/internal/client/for.js +616 -264
  15. package/src/runtime/internal/client/head.js +10 -5
  16. package/src/runtime/internal/client/html.js +1 -0
  17. package/src/runtime/internal/client/hydration.js +152 -10
  18. package/src/runtime/internal/client/if.js +239 -50
  19. package/src/runtime/internal/client/index.js +9 -13
  20. package/src/runtime/internal/client/operations.js +44 -51
  21. package/src/runtime/internal/client/portal.js +163 -85
  22. package/src/runtime/internal/client/render.js +44 -25
  23. package/src/runtime/internal/client/rpc.js +3 -3
  24. package/src/runtime/internal/client/runtime.js +799 -576
  25. package/src/runtime/internal/client/selector.js +77 -0
  26. package/src/runtime/internal/client/template.js +133 -158
  27. package/src/runtime/internal/client/transport.js +38 -0
  28. package/src/runtime/internal/client/try.js +465 -426
  29. package/src/runtime/internal/client/types.d.ts +65 -21
  30. package/src/runtime/internal/client/utils.js +1 -3
  31. package/src/runtime/internal/server/dynamic.js +20 -21
  32. package/src/runtime/internal/server/index.js +327 -275
  33. package/src/runtime/internal/server/rpc.js +3 -2
  34. package/src/runtime/internal/server/transport.js +16 -0
  35. package/src/runtime/transport.js +21 -0
  36. package/tests/client/__snapshots__/for.test.tsrx.snap +0 -5
  37. package/tests/client/array/array.copy-within.test.tsrx +12 -12
  38. package/tests/client/array/array.derived.test.tsrx +46 -46
  39. package/tests/client/array/array.iteration.test.tsrx +10 -10
  40. package/tests/client/array/array.mutations.test.tsrx +20 -20
  41. package/tests/client/array/array.static.test.tsrx +11 -11
  42. package/tests/client/array/array.to-methods.test.tsrx +6 -6
  43. package/tests/client/async-suspend.test.tsrx +74 -75
  44. package/tests/client/basic/basic.attributes.test.tsrx +86 -83
  45. package/tests/client/basic/basic.collections.test.tsrx +12 -12
  46. package/tests/client/basic/basic.components.test.tsrx +99 -25
  47. package/tests/client/basic/basic.errors.test.tsrx +18 -18
  48. package/tests/client/basic/basic.events.test.tsrx +42 -42
  49. package/tests/client/basic/basic.get-set.test.tsrx +8 -8
  50. package/tests/client/basic/basic.reactivity.test.tsrx +97 -29
  51. package/tests/client/basic/basic.rendering.test.tsrx +25 -25
  52. package/tests/client/basic/basic.utilities.test.tsrx +3 -3
  53. package/tests/client/boundaries.test.tsrx +8 -8
  54. package/tests/client/boxed-locals.test.tsrx +452 -0
  55. package/tests/client/compiler/__snapshots__/compiler.assignments.test.tsrx.snap +6 -6
  56. package/tests/client/compiler/compiler.assignments.test.tsrx +9 -73
  57. package/tests/client/compiler/compiler.attributes.test.tsrx +23 -23
  58. package/tests/client/compiler/compiler.basic.test.tsrx +15 -60
  59. package/tests/client/compiler/compiler.tracked-access.test.tsrx +18 -43
  60. package/tests/client/compiler/compiler.try-in-function.test.tsrx +2 -2
  61. package/tests/client/composite/__snapshots__/composite.render.test.tsrx.snap +0 -1
  62. package/tests/client/composite/composite.dynamic-components.test.tsrx +77 -6
  63. package/tests/client/composite/composite.props.test.tsrx +149 -12
  64. package/tests/client/composite/composite.reactivity.test.tsrx +51 -52
  65. package/tests/client/composite/composite.render.test.tsrx +26 -9
  66. package/tests/client/css/scoped-styles.test.tsrx +8 -8
  67. package/tests/client/date.test.tsrx +42 -42
  68. package/tests/client/derived-release.test.tsrx +370 -0
  69. package/tests/client/dynamic-elements.test.tsrx +45 -45
  70. package/tests/client/events.test.tsrx +97 -71
  71. package/tests/client/for-selector.test.tsrx +221 -0
  72. package/tests/client/for-single-root-items.test.tsrx +118 -3
  73. package/tests/client/for.test.tsrx +332 -31
  74. package/tests/client/head.test.tsrx +19 -19
  75. package/tests/client/html.test.tsrx +11 -9
  76. package/tests/client/if-block.test.tsrx +80 -0
  77. package/tests/client/map.test.tsrx +16 -16
  78. package/tests/client/media-query.test.tsrx +7 -7
  79. package/tests/client/portal.test.tsrx +224 -26
  80. package/tests/client/primitive-text.test.tsrx +50 -0
  81. package/tests/client/prop-kind-switch.test.tsrx +141 -0
  82. package/tests/client/ref.test.tsrx +17 -17
  83. package/tests/client/return.test.tsrx +26 -3
  84. package/tests/client/root-boundary.test.tsrx +42 -0
  85. package/tests/client/scoped-flush.test.tsrx +8 -8
  86. package/tests/client/set.test.tsrx +6 -6
  87. package/tests/client/svg.test.tsrx +11 -11
  88. package/tests/client/switch.test.tsrx +44 -44
  89. package/tests/client/track-async-hydration.test.tsrx +4 -4
  90. package/tests/client/try.test.tsrx +151 -83
  91. package/tests/client/tsx.test.tsrx +43 -40
  92. package/tests/client/url/url.derived.test.tsrx +6 -6
  93. package/tests/client/url-search-params/url-search-params.derived.test.tsrx +8 -8
  94. package/tests/client/url-search-params/url-search-params.iteration.test.tsrx +10 -10
  95. package/tests/client/url-search-params/url-search-params.mutation.test.tsrx +10 -10
  96. package/tests/client/url-search-params/url-search-params.retrieval.test.tsrx +18 -18
  97. package/tests/client/url-search-params/url-search-params.serialization.test.tsrx +2 -2
  98. package/tests/hydration/basic.test.js +74 -1
  99. package/tests/hydration/build-components.js +22 -1
  100. package/tests/hydration/compiled/client/basic.js +1142 -713
  101. package/tests/hydration/compiled/client/composite.js +151 -100
  102. package/tests/hydration/compiled/client/events.js +190 -150
  103. package/tests/hydration/compiled/client/for.js +1472 -1126
  104. package/tests/hydration/compiled/client/fragment-cursor.js +2341 -0
  105. package/tests/hydration/compiled/client/head.js +255 -199
  106. package/tests/hydration/compiled/client/hmr.js +54 -41
  107. package/tests/hydration/compiled/client/html-in-template.js +54 -39
  108. package/tests/hydration/compiled/client/html.js +1633 -1263
  109. package/tests/hydration/compiled/client/if-children.js +420 -270
  110. package/tests/hydration/compiled/client/if-fragment-controlflow.js +363 -317
  111. package/tests/hydration/compiled/client/if.js +229 -219
  112. package/tests/hydration/compiled/client/mixed-control-flow.js +420 -400
  113. package/tests/hydration/compiled/client/nested-control-flow.js +1326 -1255
  114. package/tests/hydration/compiled/client/portal.js +87 -95
  115. package/tests/hydration/compiled/client/reactivity.js +140 -83
  116. package/tests/hydration/compiled/client/return.js +28 -19
  117. package/tests/hydration/compiled/client/streaming.js +390 -306
  118. package/tests/hydration/compiled/client/switch.js +258 -266
  119. package/tests/hydration/compiled/client/track-async-serialization.js +448 -280
  120. package/tests/hydration/compiled/client/try.js +173 -129
  121. package/tests/hydration/compiled/client/typed-text.js +71 -0
  122. package/tests/hydration/compiled/fixtures/money.js +10 -0
  123. package/tests/hydration/compiled/server/basic.js +123 -6
  124. package/tests/hydration/compiled/server/composite.js +16 -30
  125. package/tests/hydration/compiled/server/events.js +19 -19
  126. package/tests/hydration/compiled/server/for.js +109 -49
  127. package/tests/hydration/compiled/server/fragment-cursor.js +1687 -0
  128. package/tests/hydration/compiled/server/head.js +20 -28
  129. package/tests/hydration/compiled/server/hmr.js +2 -2
  130. package/tests/hydration/compiled/server/html.js +71 -247
  131. package/tests/hydration/compiled/server/if-children.js +107 -15
  132. package/tests/hydration/compiled/server/if.js +11 -15
  133. package/tests/hydration/compiled/server/mixed-control-flow.js +8 -8
  134. package/tests/hydration/compiled/server/portal.js +14 -22
  135. package/tests/hydration/compiled/server/reactivity.js +14 -46
  136. package/tests/hydration/compiled/server/streaming.js +19 -19
  137. package/tests/hydration/compiled/server/switch.js +8 -8
  138. package/tests/hydration/compiled/server/track-async-serialization.js +150 -23
  139. package/tests/hydration/compiled/server/try.js +8 -8
  140. package/tests/hydration/compiled/server/typed-text.js +17 -0
  141. package/tests/hydration/components/basic.tsrx +44 -8
  142. package/tests/hydration/components/composite.tsrx +2 -2
  143. package/tests/hydration/components/events.tsrx +25 -25
  144. package/tests/hydration/components/for.tsrx +115 -67
  145. package/tests/hydration/components/fragment-cursor.tsrx +650 -0
  146. package/tests/hydration/components/head.tsrx +16 -16
  147. package/tests/hydration/components/hmr.tsrx +2 -2
  148. package/tests/hydration/components/html.tsrx +7 -7
  149. package/tests/hydration/components/if-children.tsrx +72 -25
  150. package/tests/hydration/components/if.tsrx +18 -18
  151. package/tests/hydration/components/mixed-control-flow.tsrx +11 -11
  152. package/tests/hydration/components/portal.tsrx +3 -3
  153. package/tests/hydration/components/reactivity.tsrx +16 -16
  154. package/tests/hydration/components/streaming.tsrx +20 -20
  155. package/tests/hydration/components/switch.tsrx +20 -20
  156. package/tests/hydration/components/text-types.ts +4 -0
  157. package/tests/hydration/components/track-async-serialization.tsrx +80 -26
  158. package/tests/hydration/components/try.tsrx +8 -8
  159. package/tests/hydration/components/typed-text.tsrx +22 -0
  160. package/tests/hydration/fixtures/money.js +10 -0
  161. package/tests/hydration/for.test.js +36 -0
  162. package/tests/hydration/fragment-cursor.test.js +111 -0
  163. package/tests/hydration/if-children.test.js +24 -0
  164. package/tests/hydration/streaming.test.js +19 -0
  165. package/tests/hydration/track-async-serialization.test.js +87 -2
  166. package/tests/hydration/tsconfig.text-types.json +10 -0
  167. package/tests/hydration/typed-text.test.js +34 -0
  168. package/tests/server/await.test.tsrx +3 -3
  169. package/tests/server/basic.attributes.test.tsrx +42 -42
  170. package/tests/server/basic.components.test.tsrx +64 -8
  171. package/tests/server/basic.test.tsrx +34 -32
  172. package/tests/server/compiler.test.tsrx +1 -70
  173. package/tests/server/composite.props.test.tsrx +6 -6
  174. package/tests/server/dynamic-elements.test.tsrx +31 -8
  175. package/tests/server/for.test.tsrx +94 -0
  176. package/tests/server/head.test.tsrx +11 -11
  177. package/tests/server/scoped-styles.test.tsrx +2 -2
  178. package/tests/server/streaming-ssr.test.tsrx +48 -43
  179. package/tests/server/track-async-serialization.test.tsrx +204 -21
  180. package/tests/server/try.test.tsrx +48 -48
  181. package/tests/types/transport.ts +40 -0
  182. package/tests/utils/vite-plugin-config.test.js +23 -0
  183. package/types/index.d.ts +48 -7
  184. package/types/server.d.ts +3 -0
  185. package/types/transport.d.ts +15 -0
  186. package/src/runtime/internal/client/switch.js +0 -113
  187. package/src/utils/errors.js +0 -13
  188. package/tests/client/lazy-array.test.tsrx +0 -31
  189. package/tests/client/lazy-destructuring.test.tsrx +0 -438
  190. package/tests/client/tracked-index-access.test.tsrx +0 -113
  191. package/tests/server/lazy-destructuring.test.tsrx +0 -595
  192. package/tests/server/tracked-index-access.test.tsrx +0 -76
@@ -2,439 +2,459 @@
2
2
  import * as _$_ from 'ripple/internal/client';
3
3
 
4
4
  var root_1 = _$_.template(`<div> </div>`, 0);
5
+
6
+ function render(__prev) {
7
+ var __pattern = _$_.get(__prev._pattern);
8
+ var __a = `A-${__pattern.id}`;
9
+
10
+ if (__prev.a !== __a) {
11
+ _$_.set_text(__prev._expression, __prev.a = __a);
12
+ }
13
+
14
+ var __b = `row row-${__pattern.id} kind-a`;
15
+
16
+ if (__prev.b !== __b) {
17
+ _$_.set_class(__prev._div, __prev.b = __b, void 0, true);
18
+ }
19
+ }
20
+
5
21
  var root_2 = _$_.template(`<div>pending a</div>`, 0);
22
+
23
+ function render_1(__prev) {
24
+ var __a = `pending pending-${_$_.get(__prev._pattern).id}`;
25
+
26
+ if (__prev.a !== __a) {
27
+ _$_.set_class(__prev._div_1, __prev.a = __a, void 0, true);
28
+ }
29
+ }
30
+
6
31
  var root_3 = _$_.template(`<div> </div>`, 0);
32
+
33
+ function render_2(__prev) {
34
+ var __pattern_1 = _$_.get(__prev._pattern);
35
+ var __a = `B-${__pattern_1.id}`;
36
+
37
+ if (__prev.a !== __a) {
38
+ _$_.set_text(__prev._expression_1, __prev.a = __a);
39
+ }
40
+
41
+ var __b = `row row-${__pattern_1.id} kind-b`;
42
+
43
+ if (__prev.b !== __b) {
44
+ _$_.set_class(__prev._div_2, __prev.b = __b, void 0, true);
45
+ }
46
+ }
47
+
7
48
  var root_4 = _$_.template(`<div>pending b</div>`, 0);
49
+
50
+ function render_3(__prev) {
51
+ var __a = `pending pending-${_$_.get(__prev._pattern).id}`;
52
+
53
+ if (__prev.a !== __a) {
54
+ _$_.set_class(__prev._div_3, __prev.a = __a, void 0, true);
55
+ }
56
+ }
57
+
58
+ function switch_case_0(__anchor, pattern) {
59
+ _$_.try(
60
+ __anchor,
61
+ (__anchor) => {
62
+ var div = root_1();
63
+
64
+ {
65
+ var expression = _$_.hydrating ? _$_.hydrate_text() : div.firstChild;
66
+ }
67
+
68
+ _$_.render(render, {
69
+ a: ' ',
70
+ b: _$_.UNINITIALIZED,
71
+ _pattern: pattern,
72
+ _expression: expression,
73
+ _div: div
74
+ });
75
+
76
+ _$_.append(__anchor, div);
77
+ },
78
+ null,
79
+ (__anchor) => {
80
+ var div_1 = root_2();
81
+
82
+ _$_.render(render_1, { a: _$_.UNINITIALIZED, _pattern: pattern, _div_1: div_1 });
83
+ _$_.append(__anchor, div_1);
84
+ },
85
+ true
86
+ );
87
+ }
88
+
89
+ function switch_case_default(__anchor, pattern) {
90
+ _$_.try(
91
+ __anchor,
92
+ (__anchor) => {
93
+ var div_2 = root_3();
94
+
95
+ {
96
+ var expression_1 = _$_.hydrating ? _$_.hydrate_text() : div_2.firstChild;
97
+ }
98
+
99
+ _$_.render(render_2, {
100
+ a: ' ',
101
+ b: _$_.UNINITIALIZED,
102
+ _pattern: pattern,
103
+ _expression_1: expression_1,
104
+ _div_2: div_2
105
+ });
106
+
107
+ _$_.append(__anchor, div_2);
108
+ },
109
+ null,
110
+ (__anchor) => {
111
+ var div_3 = root_4();
112
+
113
+ _$_.render(render_3, { a: _$_.UNINITIALIZED, _pattern: pattern, _div_3: div_3 });
114
+ _$_.append(__anchor, div_3);
115
+ },
116
+ true
117
+ );
118
+ }
119
+
120
+ function switch_1(pattern) {
121
+ switch (_$_.get(pattern).kind) {
122
+ case 'a':
123
+ return switch_case_0;
124
+
125
+ default:
126
+ return switch_case_default;
127
+ }
128
+ }
129
+
130
+ function consequent(__anchor, pattern) {
131
+ _$_.switch(__anchor, switch_1, true, pattern);
132
+ }
133
+
134
+ function if_1(pattern) {
135
+ if (_$_.get(pattern).enabled) return consequent;
136
+ }
137
+
8
138
  var root = _$_.template(`<section class="mixed-static"></section>`, 0);
139
+
140
+ function MixedControlFlowStatic_render(__anchor, __block) {
141
+ const rows = [
142
+ { id: 1, kind: 'a', enabled: true },
143
+ { id: 2, kind: 'b', enabled: true },
144
+ { id: 3, kind: 'a', enabled: false }
145
+ ];
146
+
147
+ var section = root();
148
+
149
+ {
150
+ _$_.for_keyed(
151
+ section,
152
+ () => rows,
153
+ (__anchor, pattern) => {
154
+ _$_.if(__anchor, if_1, true, pattern);
155
+ },
156
+ 4,
157
+ (pattern) => _$_.get(pattern).id
158
+ );
159
+
160
+ _$_.hydrating && _$_.pop(section);
161
+ }
162
+
163
+ _$_.append(__anchor, section);
164
+ }
165
+
166
+ MixedControlFlowStatic[_$_.$r] = MixedControlFlowStatic_render;
167
+
9
168
  var root_8 = _$_.template(`<p> </p>`, 0);
169
+
170
+ function render_4(__prev) {
171
+ var __pattern_1_1 = _$_.get(__prev._pattern_1);
172
+ var __a = `A:${__pattern_1_1.label}`;
173
+
174
+ if (__prev.a !== __a) {
175
+ _$_.set_text(__prev._expression_2, __prev.a = __a);
176
+ }
177
+
178
+ var __b = `item item-${__pattern_1_1.id}`;
179
+
180
+ if (__prev.b !== __b) {
181
+ _$_.set_class(__prev._p, __prev.b = __b, void 0, true);
182
+ }
183
+ }
184
+
10
185
  var root_9 = _$_.template(`<p class="pending">pending a</p>`, 0);
11
186
  var root_10 = _$_.template(`<p> </p>`, 0);
187
+
188
+ function render_5(__prev) {
189
+ var __pattern_1_2 = _$_.get(__prev._pattern_1);
190
+ var __a = `B:${__pattern_1_2.label}`;
191
+
192
+ if (__prev.a !== __a) {
193
+ _$_.set_text(__prev._expression_3, __prev.a = __a);
194
+ }
195
+
196
+ var __b = `item item-${__pattern_1_2.id}`;
197
+
198
+ if (__prev.b !== __b) {
199
+ _$_.set_class(__prev._p_2, __prev.b = __b, void 0, true);
200
+ }
201
+ }
202
+
12
203
  var root_11 = _$_.template(`<p class="pending">pending b</p>`, 0);
204
+
205
+ function switch_case_0_1(__anchor, { mode, pattern_1 }) {
206
+ _$_.try(
207
+ __anchor,
208
+ (__anchor) => {
209
+ var p = root_8();
210
+
211
+ {
212
+ var expression_2 = _$_.hydrating ? _$_.hydrate_text() : p.firstChild;
213
+ }
214
+
215
+ _$_.render(render_4, {
216
+ a: ' ',
217
+ b: _$_.UNINITIALIZED,
218
+ _pattern_1: pattern_1,
219
+ _expression_2: expression_2,
220
+ _p: p
221
+ });
222
+
223
+ _$_.append(__anchor, p);
224
+ },
225
+ null,
226
+ (__anchor) => {
227
+ var p_1 = root_9();
228
+
229
+ _$_.append(__anchor, p_1);
230
+ },
231
+ true
232
+ );
233
+ }
234
+
235
+ function switch_case_default_1(__anchor, { mode, pattern_1 }) {
236
+ _$_.try(
237
+ __anchor,
238
+ (__anchor) => {
239
+ var p_2 = root_10();
240
+
241
+ {
242
+ var expression_3 = _$_.hydrating ? _$_.hydrate_text() : p_2.firstChild;
243
+ }
244
+
245
+ _$_.render(render_5, {
246
+ a: ' ',
247
+ b: _$_.UNINITIALIZED,
248
+ _pattern_1: pattern_1,
249
+ _expression_3: expression_3,
250
+ _p_2: p_2
251
+ });
252
+
253
+ _$_.append(__anchor, p_2);
254
+ },
255
+ null,
256
+ (__anchor) => {
257
+ var p_3 = root_11();
258
+
259
+ _$_.append(__anchor, p_3);
260
+ },
261
+ true
262
+ );
263
+ }
264
+
265
+ function switch_2({ mode, pattern_1 }) {
266
+ switch (mode.value) {
267
+ case 'a':
268
+ return switch_case_0_1;
269
+
270
+ default:
271
+ return switch_case_default_1;
272
+ }
273
+ }
274
+
13
275
  var root_7 = _$_.template(`<div class="mixed-reactive-list"></div>`, 0);
276
+
277
+ function consequent_1(__anchor, { show, items, mode }) {
278
+ var div_4 = root_7();
279
+
280
+ {
281
+ _$_.for_keyed(
282
+ div_4,
283
+ () => items.value,
284
+ (__anchor, pattern_1) => {
285
+ _$_.switch(__anchor, switch_2, true, { mode, pattern_1 });
286
+ },
287
+ 4,
288
+ (pattern_1) => _$_.get(pattern_1).id
289
+ );
290
+
291
+ _$_.hydrating && _$_.pop(div_4);
292
+ }
293
+
294
+ _$_.append(__anchor, div_4);
295
+ }
296
+
297
+ function if_2({ show, items, mode }) {
298
+ if (show.value) return consequent_1;
299
+ }
300
+
14
301
  var root_6 = _$_.template(`<button class="toggle-show">Toggle Show</button><button class="toggle-mode">Toggle Mode</button><button class="add-item">Add Item</button><!>`, 1, 4);
15
302
  var root_5 = _$_.template(`<!>`, 1, 1);
16
- var root_14 = _$_.template(`<div> </div>`, 0);
17
- var root_15 = _$_.template(`<div class="unexpected">unexpected</div>`, 0);
18
- var root_13 = _$_.template(`<div class="before">before</div><!>`, 1, 2);
19
- var root_12 = _$_.template(`<!>`, 1, 1);
20
- var root_16 = _$_.template(`<div class="resolved-row"> </div>`, 0);
21
303
 
22
- import { track, trackAsync } from 'ripple';
304
+ function MixedControlFlowReactive_render(__anchor, __block) {
305
+ const show = _$_.track(true, __block, '5ae53d26');
306
+ const mode = _$_.track('a', __block, '5b53eda2');
307
+ const items = _$_.track([{ id: 1, label: 'One' }, { id: 2, label: 'Two' }], __block, '7890dad6');
308
+ var fragment = root_5();
309
+ var node_1 = _$_.first_child_frag(fragment);
23
310
 
24
- export function MixedControlFlowStatic() {
25
- return _$_.tsrx_element((__anchor, __block) => {
26
- const rows = [
27
- { id: 1, kind: 'a', enabled: true },
28
- { id: 2, kind: 'b', enabled: true },
29
- { id: 3, kind: 'a', enabled: false }
30
- ];
31
-
32
- var section = root();
33
-
34
- {
35
- _$_.for_keyed(
36
- section,
37
- () => rows,
38
- (__anchor, pattern) => {
39
- {
40
- var consequent = (__anchor) => {
41
- {
42
- var switch_case_0 = (__anchor) => {
43
- _$_.try(
44
- __anchor,
45
- (__anchor) => {
46
- var div = root_1();
47
-
48
- {
49
- var expression = _$_.child(div, true);
50
-
51
- _$_.pop(div);
52
- }
53
-
54
- _$_.render(
55
- (__prev) => {
56
- var __a = `A-${_$_.get(pattern).id}`;
57
-
58
- if (__prev.a !== __a) {
59
- _$_.set_text(expression, __prev.a = __a);
60
- }
61
-
62
- var __b = `row row-${_$_.get(pattern).id} kind-a`;
63
-
64
- if (__prev.b !== __b) {
65
- _$_.set_class(div, __prev.b = __b, void 0, true);
66
- }
67
- },
68
- { a: ' ', b: Symbol() }
69
- );
70
-
71
- _$_.append(__anchor, div);
72
- },
73
- null,
74
- (__anchor) => {
75
- var div_1 = root_2();
76
-
77
- _$_.render(() => {
78
- _$_.set_class(div_1, `pending pending-${_$_.get(pattern).id}`, void 0, true);
79
- });
80
-
81
- _$_.append(__anchor, div_1);
82
- },
83
- true
84
- );
85
- };
86
-
87
- var switch_case_default = (__anchor) => {
88
- _$_.try(
89
- __anchor,
90
- (__anchor) => {
91
- var div_2 = root_3();
92
-
93
- {
94
- var expression_1 = _$_.child(div_2, true);
95
-
96
- _$_.pop(div_2);
97
- }
98
-
99
- _$_.render(
100
- (__prev) => {
101
- var __a = `B-${_$_.get(pattern).id}`;
102
-
103
- if (__prev.a !== __a) {
104
- _$_.set_text(expression_1, __prev.a = __a);
105
- }
106
-
107
- var __b = `row row-${_$_.get(pattern).id} kind-b`;
108
-
109
- if (__prev.b !== __b) {
110
- _$_.set_class(div_2, __prev.b = __b, void 0, true);
111
- }
112
- },
113
- { a: ' ', b: Symbol() }
114
- );
115
-
116
- _$_.append(__anchor, div_2);
117
- },
118
- null,
119
- (__anchor) => {
120
- var div_3 = root_4();
121
-
122
- _$_.render(() => {
123
- _$_.set_class(div_3, `pending pending-${_$_.get(pattern).id}`, void 0, true);
124
- });
125
-
126
- _$_.append(__anchor, div_3);
127
- },
128
- true
129
- );
130
- };
131
-
132
- _$_.switch(
133
- __anchor,
134
- () => {
135
- var result = [];
136
-
137
- switch (_$_.get(pattern).kind) {
138
- case 'a':
139
- result.push(switch_case_0);
140
- return result;
141
-
142
- default:
143
- result.push(switch_case_default);
144
- return result;
145
- }
146
- },
147
- true
148
- );
149
- }
150
- };
151
-
152
- _$_.if(
153
- __anchor,
154
- (__render) => {
155
- if (_$_.get(pattern).enabled) __render(consequent);
156
- },
157
- true
158
- );
159
- }
160
- },
161
- 4,
162
- (pattern) => _$_.get(pattern).id
163
- );
164
-
165
- _$_.pop(section);
166
- }
167
-
168
- _$_.append(__anchor, section);
169
- });
170
- }
311
+ _$_.expression(node_1, () => _$_.tsrx_element((__anchor, __block) => {
312
+ var fragment_1 = root_6();
313
+ var button = _$_.first_child_frag(fragment_1);
171
314
 
172
- export function MixedControlFlowReactive() {
173
- return _$_.tsrx_element((__anchor, __block) => {
174
- let lazy = _$_.track(true, __block, '5ae53d26');
175
- let lazy_1 = _$_.track('a', __block, '5b53eda2');
176
- let lazy_2 = _$_.track([{ id: 1, label: 'One' }, { id: 2, label: 'Two' }], __block, '7890dad6');
177
- var fragment = root_5();
178
- var node_1 = _$_.first_child_frag(fragment);
315
+ button.__click = () => {
316
+ show.value = !show.value;
317
+ };
318
+
319
+ var button_1 = _$_.hydrating ? _$_.hydrate_sibling() : button.nextSibling;
320
+
321
+ button_1.__click = () => {
322
+ mode.value = mode.value === 'a' ? 'b' : 'a';
323
+ };
324
+
325
+ var button_2 = _$_.hydrating ? _$_.hydrate_sibling() : button_1.nextSibling;
179
326
 
180
- _$_.expression(node_1, () => _$_.tsrx_element((__anchor, __block) => {
181
- var fragment_1 = root_6();
182
- var button = _$_.first_child_frag(fragment_1);
327
+ button_2.__click = () => {
328
+ items.value = [...items.value, { id: 3, label: 'Three' }];
329
+ };
183
330
 
184
- button.__click = () => {
185
- _$_.set(lazy, !lazy.value);
186
- };
331
+ var node = _$_.hydrating ? _$_.hydrate_sibling() : button_2.nextSibling;
187
332
 
188
- var button_1 = _$_.sibling(button);
333
+ _$_.if(node, if_2, false, { show, items, mode });
334
+ _$_.append(__anchor, fragment_1);
335
+ }));
189
336
 
190
- button_1.__click = () => {
191
- _$_.set(lazy_1, lazy_1.value === 'a' ? 'b' : 'a');
192
- };
337
+ _$_.append(__anchor, fragment);
338
+ }
339
+
340
+ MixedControlFlowReactive[_$_.$r] = MixedControlFlowReactive_render;
193
341
 
194
- var button_2 = _$_.sibling(button_1);
342
+ var root_14 = _$_.template(`<div> </div>`, 0);
343
+ var root_15 = _$_.template(`<div class="unexpected">unexpected</div>`, 0);
195
344
 
196
- button_2.__click = () => {
197
- _$_.set(lazy_2, [...lazy_2.value, { id: 3, label: 'Three' }]);
198
- };
345
+ function switch_case_0_2(__anchor, { state, row }) {
346
+ _$_.try(
347
+ __anchor,
348
+ (__anchor) => {
349
+ _$_.render_component(AsyncRow, __anchor, { label: `row-${row}` });
350
+ },
351
+ null,
352
+ (__anchor) => {
353
+ var div_6 = root_14();
199
354
 
200
- var node = _$_.sibling(button_2);
355
+ _$_.set_class(div_6, `pending-row pending-row-${row}`, void 0, true);
201
356
 
202
357
  {
203
- var consequent_1 = (__anchor) => {
204
- var div_4 = root_7();
205
-
206
- {
207
- _$_.for_keyed(
208
- div_4,
209
- () => lazy_2.value,
210
- (__anchor, pattern_1) => {
211
- {
212
- var switch_case_0_1 = (__anchor) => {
213
- _$_.try(
214
- __anchor,
215
- (__anchor) => {
216
- var p = root_8();
217
-
218
- {
219
- var expression_2 = _$_.child(p, true);
220
-
221
- _$_.pop(p);
222
- }
223
-
224
- _$_.render(
225
- (__prev) => {
226
- var __a = `A:${_$_.get(pattern_1).label}`;
227
-
228
- if (__prev.a !== __a) {
229
- _$_.set_text(expression_2, __prev.a = __a);
230
- }
231
-
232
- var __b = `item item-${_$_.get(pattern_1).id}`;
233
-
234
- if (__prev.b !== __b) {
235
- _$_.set_class(p, __prev.b = __b, void 0, true);
236
- }
237
- },
238
- { a: ' ', b: Symbol() }
239
- );
240
-
241
- _$_.append(__anchor, p);
242
- },
243
- null,
244
- (__anchor) => {
245
- var p_1 = root_9();
246
-
247
- _$_.append(__anchor, p_1);
248
- },
249
- true
250
- );
251
- };
252
-
253
- var switch_case_default_1 = (__anchor) => {
254
- _$_.try(
255
- __anchor,
256
- (__anchor) => {
257
- var p_2 = root_10();
258
-
259
- {
260
- var expression_3 = _$_.child(p_2, true);
261
-
262
- _$_.pop(p_2);
263
- }
264
-
265
- _$_.render(
266
- (__prev) => {
267
- var __a = `B:${_$_.get(pattern_1).label}`;
268
-
269
- if (__prev.a !== __a) {
270
- _$_.set_text(expression_3, __prev.a = __a);
271
- }
272
-
273
- var __b = `item item-${_$_.get(pattern_1).id}`;
274
-
275
- if (__prev.b !== __b) {
276
- _$_.set_class(p_2, __prev.b = __b, void 0, true);
277
- }
278
- },
279
- { a: ' ', b: Symbol() }
280
- );
281
-
282
- _$_.append(__anchor, p_2);
283
- },
284
- null,
285
- (__anchor) => {
286
- var p_3 = root_11();
287
-
288
- _$_.append(__anchor, p_3);
289
- },
290
- true
291
- );
292
- };
293
-
294
- _$_.switch(
295
- __anchor,
296
- () => {
297
- var result = [];
298
-
299
- switch (lazy_1.value) {
300
- case 'a':
301
- result.push(switch_case_0_1);
302
- return result;
303
-
304
- default:
305
- result.push(switch_case_default_1);
306
- return result;
307
- }
308
- },
309
- true
310
- );
311
- }
312
- },
313
- 4,
314
- (pattern_1) => _$_.get(pattern_1).id
315
- );
316
-
317
- _$_.pop(div_4);
318
- }
319
-
320
- _$_.append(__anchor, div_4);
321
- };
322
-
323
- _$_.if(node, (__render) => {
324
- if (lazy.value) __render(consequent_1);
325
- });
358
+ var expression_4 = _$_.hydrating ? _$_.hydrate_text() : div_6.firstChild;
359
+
360
+ expression_4.nodeValue = `pending ${row}`;
326
361
  }
327
362
 
328
- _$_.append(__anchor, fragment_1);
329
- }));
363
+ _$_.append(__anchor, div_6);
364
+ },
365
+ true
366
+ );
367
+ }
368
+
369
+ function switch_case_default_2(__anchor, { state, row }) {
370
+ var div_7 = root_15();
330
371
 
331
- _$_.append(__anchor, fragment);
332
- });
372
+ _$_.append(__anchor, div_7);
333
373
  }
334
374
 
335
- export function MixedControlFlowAsyncPending() {
336
- return _$_.tsrx_element((__anchor, __block) => {
337
- const rows = [1, 2];
338
- const state = 'slow';
339
- var fragment_2 = root_12();
340
- var node_3 = _$_.first_child_frag(fragment_2);
341
-
342
- _$_.expression(node_3, () => _$_.tsrx_element((__anchor, __block) => {
343
- var fragment_3 = root_13();
344
- var div_5 = _$_.first_child_frag(fragment_3);
345
- var node_2 = _$_.sibling(div_5);
346
-
347
- _$_.for(
348
- node_2,
349
- () => rows,
350
- (__anchor, row) => {
351
- {
352
- var consequent_2 = (__anchor) => {
353
- {
354
- var switch_case_0_2 = (__anchor) => {
355
- _$_.try(
356
- __anchor,
357
- (__anchor) => {
358
- _$_.render_component(AsyncRow, __anchor, { label: `row-${row}` });
359
- },
360
- null,
361
- (__anchor) => {
362
- var div_6 = root_14();
363
-
364
- _$_.set_class(div_6, `pending-row pending-row-${row}`, void 0, true);
365
-
366
- {
367
- var expression_4 = _$_.child(div_6, true);
368
-
369
- expression_4.nodeValue = `pending ${row}`;
370
- _$_.pop(div_6);
371
- }
372
-
373
- _$_.append(__anchor, div_6);
374
- },
375
- true
376
- );
377
- };
378
-
379
- var switch_case_default_2 = (__anchor) => {
380
- var div_7 = root_15();
381
-
382
- _$_.append(__anchor, div_7);
383
- };
384
-
385
- _$_.switch(
386
- __anchor,
387
- () => {
388
- var result = [];
389
-
390
- switch (state) {
391
- case 'slow':
392
- result.push(switch_case_0_2);
393
- return result;
394
-
395
- default:
396
- result.push(switch_case_default_2);
397
- return result;
398
- }
399
- },
400
- true
401
- );
402
- }
403
- };
404
-
405
- _$_.if(
406
- __anchor,
407
- (__render) => {
408
- if (row === 1) __render(consequent_2);
409
- },
410
- true
411
- );
412
- }
413
- },
414
- 0
415
- );
416
-
417
- _$_.append(__anchor, fragment_3);
418
- }));
419
-
420
- _$_.append(__anchor, fragment_2);
421
- });
375
+ function switch_3({ state, row }) {
376
+ switch (state) {
377
+ case 'slow':
378
+ return switch_case_0_2;
379
+
380
+ default:
381
+ return switch_case_default_2;
382
+ }
383
+ }
384
+
385
+ function consequent_2(__anchor, { row, state }) {
386
+ _$_.switch(__anchor, switch_3, true, { state, row });
387
+ }
388
+
389
+ function if_3({ row, state }) {
390
+ if (row === 1) return consequent_2;
391
+ }
392
+
393
+ var root_13 = _$_.template(`<div class="before">before</div><!>`, 1, 2);
394
+ var root_12 = _$_.template(`<!>`, 1, 1);
395
+
396
+ function MixedControlFlowAsyncPending_render(__anchor, __block) {
397
+ const rows = [1, 2];
398
+ const state = 'slow';
399
+ var fragment_2 = root_12();
400
+ var node_3 = _$_.first_child_frag(fragment_2);
401
+
402
+ _$_.expression(node_3, () => _$_.tsrx_element((__anchor, __block) => {
403
+ var fragment_3 = root_13();
404
+ var div_5 = _$_.first_child_frag(fragment_3);
405
+ var node_2 = _$_.hydrating ? _$_.hydrate_sibling() : div_5.nextSibling;
406
+
407
+ _$_.for(
408
+ node_2,
409
+ () => rows,
410
+ (__anchor, row) => {
411
+ _$_.if(__anchor, if_3, true, { row, state });
412
+ },
413
+ 0
414
+ );
415
+
416
+ _$_.append(__anchor, fragment_3);
417
+ }));
418
+
419
+ _$_.append(__anchor, fragment_2);
422
420
  }
423
421
 
424
- function AsyncRow({ label }) {
425
- return _$_.tsrx_element((__anchor, __block) => {
426
- let lazy_3 = _$_.track_async(() => _$_.with_scope(__block, () => Promise.resolve(label)), __block, '10cc79a0');
427
- var div_8 = root_16();
422
+ MixedControlFlowAsyncPending[_$_.$r] = MixedControlFlowAsyncPending_render;
423
+
424
+ var root_16 = _$_.template(`<div class="resolved-row"> </div>`, 0);
428
425
 
429
- {
430
- var expression_5 = _$_.child(div_8);
426
+ function AsyncRow_render(__anchor, __block, { label }) {
427
+ const value = _$_.track_async(() => _$_.with_scope(__block, () => Promise.resolve(label)), __block, '10cc79a0');
428
+ var div_8 = root_16();
431
429
 
432
- _$_.expression(expression_5, () => lazy_3.value);
433
- _$_.pop(div_8);
434
- }
430
+ {
431
+ var expression_5 = _$_.hydrating ? _$_.hydrate_child() : div_8.firstChild;
432
+
433
+ _$_.expression(expression_5, () => value.value);
434
+ _$_.hydrating && _$_.pop(div_8);
435
+ }
436
+
437
+ _$_.append(__anchor, div_8);
438
+ }
439
+
440
+ AsyncRow[_$_.$r] = AsyncRow_render;
441
+
442
+ import { track, trackAsync } from 'ripple';
443
+
444
+ export function MixedControlFlowStatic() {
445
+ return _$_.tsrx_element(MixedControlFlowStatic_render);
446
+ }
447
+
448
+ export function MixedControlFlowReactive() {
449
+ return _$_.tsrx_element(MixedControlFlowReactive_render);
450
+ }
451
+
452
+ export function MixedControlFlowAsyncPending() {
453
+ return _$_.tsrx_element(MixedControlFlowAsyncPending_render);
454
+ }
435
455
 
436
- _$_.append(__anchor, div_8);
437
- });
456
+ function AsyncRow(__props) {
457
+ return _$_.tsrx_element(AsyncRow_render, __props);
438
458
  }
439
459
 
440
460
  _$_.delegate(['click']);