ripple 0.3.84 → 0.3.86

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 (59) hide show
  1. package/CHANGELOG.md +81 -0
  2. package/package.json +3 -3
  3. package/src/constants.js +4 -0
  4. package/src/runtime/internal/client/blocks.js +53 -0
  5. package/src/runtime/internal/client/component.js +3 -3
  6. package/src/runtime/internal/client/constants.js +4 -0
  7. package/src/runtime/internal/client/for.js +87 -14
  8. package/src/runtime/internal/client/if.js +18 -2
  9. package/src/runtime/internal/client/index.js +1 -0
  10. package/src/runtime/internal/client/operations.js +25 -0
  11. package/src/runtime/internal/client/runtime.js +62 -10
  12. package/src/runtime/internal/client/switch.js +33 -5
  13. package/src/runtime/internal/client/template.js +10 -2
  14. package/src/runtime/internal/client/try.js +12 -2
  15. package/src/runtime/internal/client/types.d.ts +4 -0
  16. package/tests/client/__snapshots__/for.test.tsrx.snap +0 -2
  17. package/tests/client/compiler/compiler.basic.test.tsrx +5 -2
  18. package/tests/client/composite/__snapshots__/composite.render.test.tsrx.snap +0 -4
  19. package/tests/client/for-single-root-items.test.tsrx +130 -0
  20. package/tests/client/scoped-flush.test.tsrx +105 -0
  21. package/tests/hydration/compiled/client/basic.js +198 -214
  22. package/tests/hydration/compiled/client/composite.js +23 -72
  23. package/tests/hydration/compiled/client/for.js +66 -72
  24. package/tests/hydration/compiled/client/hmr.js +2 -13
  25. package/tests/hydration/compiled/client/html.js +619 -479
  26. package/tests/hydration/compiled/client/if-children.js +72 -84
  27. package/tests/hydration/compiled/client/if-fragment-controlflow.js +463 -0
  28. package/tests/hydration/compiled/client/if.js +87 -92
  29. package/tests/hydration/compiled/client/mixed-control-flow.js +120 -160
  30. package/tests/hydration/compiled/client/nested-control-flow.js +288 -360
  31. package/tests/hydration/compiled/client/portal.js +15 -21
  32. package/tests/hydration/compiled/client/reactivity.js +7 -12
  33. package/tests/hydration/compiled/client/switch.js +113 -115
  34. package/tests/hydration/compiled/client/track-async-serialization.js +71 -122
  35. package/tests/hydration/compiled/client/try.js +26 -41
  36. package/tests/hydration/compiled/server/basic.js +295 -556
  37. package/tests/hydration/compiled/server/composite.js +31 -50
  38. package/tests/hydration/compiled/server/events.js +37 -173
  39. package/tests/hydration/compiled/server/for.js +236 -847
  40. package/tests/hydration/compiled/server/head.js +110 -241
  41. package/tests/hydration/compiled/server/hmr.js +14 -41
  42. package/tests/hydration/compiled/server/html-in-template.js +14 -38
  43. package/tests/hydration/compiled/server/html.js +951 -1176
  44. package/tests/hydration/compiled/server/if-children.js +59 -493
  45. package/tests/hydration/compiled/server/if-fragment-controlflow.js +227 -0
  46. package/tests/hydration/compiled/server/if.js +57 -209
  47. package/tests/hydration/compiled/server/mixed-control-flow.js +144 -250
  48. package/tests/hydration/compiled/server/nested-control-flow.js +309 -559
  49. package/tests/hydration/compiled/server/portal.js +94 -156
  50. package/tests/hydration/compiled/server/reactivity.js +23 -65
  51. package/tests/hydration/compiled/server/return.js +6 -16
  52. package/tests/hydration/compiled/server/switch.js +91 -219
  53. package/tests/hydration/compiled/server/track-async-serialization.js +211 -256
  54. package/tests/hydration/compiled/server/try.js +67 -126
  55. package/tests/hydration/components/html.tsrx +75 -0
  56. package/tests/hydration/components/if-fragment-controlflow.tsrx +145 -0
  57. package/tests/hydration/html.test.js +50 -0
  58. package/tests/hydration/if-fragment-controlflow.test.js +95 -0
  59. package/tests/server/compiler.test.tsrx +6 -2
@@ -10,35 +10,22 @@ export function ForIf() {
10
10
  ];
11
11
 
12
12
  _$_.regular_block(() => {
13
- _$_.output_push('<ul');
14
- _$_.output_push(' class="for-if"');
15
- _$_.output_push('>');
13
+ let __out = '';
16
14
 
17
- {
18
- _$_.output_push('<!--[-->');
15
+ __out += '<ul class="for-if"><!--[-->';
19
16
 
20
- for (const item of items) {
21
- _$_.output_push('<!--[-->');
17
+ for (const item of items) {
18
+ __out += '<!--[-->';
22
19
 
23
- if (item.show) {
24
- _$_.output_push('<li');
25
- _$_.output_push(_$_.attr('class', `item item-${item.id}`));
26
- _$_.output_push('>');
27
-
28
- {
29
- _$_.output_push(_$_.escape(item.label));
30
- }
31
-
32
- _$_.output_push('</li>');
33
- }
34
-
35
- _$_.output_push('<!--]-->');
20
+ if (item.show) {
21
+ __out += '<li' + _$_.attr('class', `item item-${item.id}`) + '>' + _$_.escape(item.label) + '</li>';
36
22
  }
37
23
 
38
- _$_.output_push('<!--]-->');
24
+ __out += '<!--]-->';
39
25
  }
40
26
 
41
- _$_.output_push('</ul>');
27
+ __out += '<!--]--></ul>';
28
+ _$_.output_push(__out);
42
29
  });
43
30
  });
44
31
  }
@@ -52,45 +39,28 @@ export function ForSwitch() {
52
39
  ];
53
40
 
54
41
  _$_.regular_block(() => {
55
- _$_.output_push('<ul');
56
- _$_.output_push(' class="for-switch"');
57
- _$_.output_push('>');
58
-
59
- {
60
- _$_.output_push('<!--[-->');
42
+ let __out = '';
61
43
 
62
- for (const item of items) {
63
- _$_.output_push('<!--[-->');
44
+ __out += '<ul class="for-switch"><!--[-->';
64
45
 
65
- switch (item.kind) {
66
- case 'a':
67
- _$_.output_push('<li');
68
- _$_.output_push(_$_.attr('class', `item item-${item.id} kind-a`));
69
- _$_.output_push('>');
70
- {
71
- _$_.output_push(_$_.escape(`A-${item.id}`));
72
- }
73
- _$_.output_push('</li>');
74
- break;
46
+ for (const item of items) {
47
+ __out += '<!--[-->';
75
48
 
76
- default:
77
- _$_.output_push('<li');
78
- _$_.output_push(_$_.attr('class', `item item-${item.id} kind-b`));
79
- _$_.output_push('>');
80
- {
81
- _$_.output_push(_$_.escape(`B-${item.id}`));
82
- }
83
- _$_.output_push('</li>');
84
- break;
85
- }
49
+ switch (item.kind) {
50
+ case 'a':
51
+ __out += '<li' + _$_.attr('class', `item item-${item.id} kind-a`) + '>' + _$_.escape(`A-${item.id}`) + '</li>';
52
+ break;
86
53
 
87
- _$_.output_push('<!--]-->');
54
+ default:
55
+ __out += '<li' + _$_.attr('class', `item item-${item.id} kind-b`) + '>' + _$_.escape(`B-${item.id}`) + '</li>';
56
+ break;
88
57
  }
89
58
 
90
- _$_.output_push('<!--]-->');
59
+ __out += '<!--]-->';
91
60
  }
92
61
 
93
- _$_.output_push('</ul>');
62
+ __out += '<!--]--></ul>';
63
+ _$_.output_push(__out);
94
64
  });
95
65
  });
96
66
  }
@@ -101,45 +71,28 @@ export function IfSwitch() {
101
71
  const kind = 'a';
102
72
 
103
73
  _$_.regular_block(() => {
104
- _$_.output_push('<div');
105
- _$_.output_push(' class="if-switch"');
106
- _$_.output_push('>');
74
+ let __out = '';
107
75
 
108
- {
109
- _$_.output_push('<!--[-->');
76
+ __out += '<div class="if-switch"><!--[-->';
110
77
 
111
- if (show) {
112
- _$_.output_push('<!--[-->');
78
+ if (show) {
79
+ __out += '<!--[-->';
113
80
 
114
- switch (kind) {
115
- case 'a':
116
- _$_.output_push('<p');
117
- _$_.output_push(' class="case-a"');
118
- _$_.output_push('>');
119
- {
120
- _$_.output_push('Case A');
121
- }
122
- _$_.output_push('</p>');
123
- break;
124
-
125
- default:
126
- _$_.output_push('<p');
127
- _$_.output_push(' class="case-default"');
128
- _$_.output_push('>');
129
- {
130
- _$_.output_push('Default');
131
- }
132
- _$_.output_push('</p>');
133
- break;
134
- }
81
+ switch (kind) {
82
+ case 'a':
83
+ __out += '<p class="case-a">Case A</p>';
84
+ break;
135
85
 
136
- _$_.output_push('<!--]-->');
86
+ default:
87
+ __out += '<p class="case-default">Default</p>';
88
+ break;
137
89
  }
138
90
 
139
- _$_.output_push('<!--]-->');
91
+ __out += '<!--]-->';
140
92
  }
141
93
 
142
- _$_.output_push('</div>');
94
+ __out += '<!--]--></div>';
95
+ _$_.output_push(__out);
143
96
  });
144
97
  });
145
98
  }
@@ -150,54 +103,28 @@ export function IfSwitchHidden() {
150
103
  const kind = 'a';
151
104
 
152
105
  _$_.regular_block(() => {
153
- _$_.output_push('<div');
154
- _$_.output_push(' class="if-switch-hidden"');
155
- _$_.output_push('>');
106
+ let __out = '';
156
107
 
157
- {
158
- _$_.output_push('<!--[-->');
159
-
160
- if (show) {
161
- _$_.output_push('<!--[-->');
162
-
163
- switch (kind) {
164
- case 'a':
165
- _$_.output_push('<p');
166
- _$_.output_push(' class="case-a"');
167
- _$_.output_push('>');
168
- {
169
- _$_.output_push('Case A');
170
- }
171
- _$_.output_push('</p>');
172
- break;
173
-
174
- default:
175
- _$_.output_push('<p');
176
- _$_.output_push(' class="case-default"');
177
- _$_.output_push('>');
178
- {
179
- _$_.output_push('Default');
180
- }
181
- _$_.output_push('</p>');
182
- break;
183
- }
108
+ __out += '<div class="if-switch-hidden"><!--[-->';
184
109
 
185
- _$_.output_push('<!--]-->');
186
- }
110
+ if (show) {
111
+ __out += '<!--[-->';
187
112
 
188
- _$_.output_push('<!--]-->');
189
- _$_.output_push('<p');
190
- _$_.output_push(' class="after"');
191
- _$_.output_push('>');
113
+ switch (kind) {
114
+ case 'a':
115
+ __out += '<p class="case-a">Case A</p>';
116
+ break;
192
117
 
193
- {
194
- _$_.output_push('after');
118
+ default:
119
+ __out += '<p class="case-default">Default</p>';
120
+ break;
195
121
  }
196
122
 
197
- _$_.output_push('</p>');
123
+ __out += '<!--]-->';
198
124
  }
199
125
 
200
- _$_.output_push('</div>');
126
+ __out += '<!--]--><p class="after">after</p></div>';
127
+ _$_.output_push(__out);
201
128
  });
202
129
  });
203
130
  }
@@ -207,51 +134,34 @@ export function ForIfSwitchSingle() {
207
134
  const items = [{ id: 1, kind: 'a', show: true }];
208
135
 
209
136
  _$_.regular_block(() => {
210
- _$_.output_push('<ul');
211
- _$_.output_push(' class="for-if-switch-single"');
212
- _$_.output_push('>');
213
-
214
- {
215
- _$_.output_push('<!--[-->');
216
-
217
- for (const item of items) {
218
- _$_.output_push('<!--[-->');
219
-
220
- if (item.show) {
221
- _$_.output_push('<!--[-->');
222
-
223
- switch (item.kind) {
224
- case 'a':
225
- _$_.output_push('<li');
226
- _$_.output_push(_$_.attr('class', `item item-${item.id} kind-a`));
227
- _$_.output_push('>');
228
- {
229
- _$_.output_push(_$_.escape(`A-${item.id}`));
230
- }
231
- _$_.output_push('</li>');
232
- break;
233
-
234
- default:
235
- _$_.output_push('<li');
236
- _$_.output_push(_$_.attr('class', `item item-${item.id} kind-default`));
237
- _$_.output_push('>');
238
- {
239
- _$_.output_push(_$_.escape(`D-${item.id}`));
240
- }
241
- _$_.output_push('</li>');
242
- break;
243
- }
137
+ let __out = '';
138
+
139
+ __out += '<ul class="for-if-switch-single"><!--[-->';
140
+
141
+ for (const item of items) {
142
+ __out += '<!--[-->';
143
+
144
+ if (item.show) {
145
+ __out += '<!--[-->';
244
146
 
245
- _$_.output_push('<!--]-->');
147
+ switch (item.kind) {
148
+ case 'a':
149
+ __out += '<li' + _$_.attr('class', `item item-${item.id} kind-a`) + '>' + _$_.escape(`A-${item.id}`) + '</li>';
150
+ break;
151
+
152
+ default:
153
+ __out += '<li' + _$_.attr('class', `item item-${item.id} kind-default`) + '>' + _$_.escape(`D-${item.id}`) + '</li>';
154
+ break;
246
155
  }
247
156
 
248
- _$_.output_push('<!--]-->');
157
+ __out += '<!--]-->';
249
158
  }
250
159
 
251
- _$_.output_push('<!--]-->');
160
+ __out += '<!--]-->';
252
161
  }
253
162
 
254
- _$_.output_push('</ul>');
163
+ __out += '<!--]--></ul>';
164
+ _$_.output_push(__out);
255
165
  });
256
166
  });
257
167
  }
@@ -264,51 +174,34 @@ export function ForIfSwitchMulti() {
264
174
  ];
265
175
 
266
176
  _$_.regular_block(() => {
267
- _$_.output_push('<ul');
268
- _$_.output_push(' class="for-if-switch-multi"');
269
- _$_.output_push('>');
270
-
271
- {
272
- _$_.output_push('<!--[-->');
273
-
274
- for (const item of items) {
275
- _$_.output_push('<!--[-->');
276
-
277
- if (item.show) {
278
- _$_.output_push('<!--[-->');
279
-
280
- switch (item.kind) {
281
- case 'a':
282
- _$_.output_push('<li');
283
- _$_.output_push(_$_.attr('class', `item item-${item.id} kind-a`));
284
- _$_.output_push('>');
285
- {
286
- _$_.output_push(_$_.escape(`A-${item.id}`));
287
- }
288
- _$_.output_push('</li>');
289
- break;
290
-
291
- default:
292
- _$_.output_push('<li');
293
- _$_.output_push(_$_.attr('class', `item item-${item.id} kind-b`));
294
- _$_.output_push('>');
295
- {
296
- _$_.output_push(_$_.escape(`B-${item.id}`));
297
- }
298
- _$_.output_push('</li>');
299
- break;
300
- }
177
+ let __out = '';
178
+
179
+ __out += '<ul class="for-if-switch-multi"><!--[-->';
180
+
181
+ for (const item of items) {
182
+ __out += '<!--[-->';
183
+
184
+ if (item.show) {
185
+ __out += '<!--[-->';
186
+
187
+ switch (item.kind) {
188
+ case 'a':
189
+ __out += '<li' + _$_.attr('class', `item item-${item.id} kind-a`) + '>' + _$_.escape(`A-${item.id}`) + '</li>';
190
+ break;
301
191
 
302
- _$_.output_push('<!--]-->');
192
+ default:
193
+ __out += '<li' + _$_.attr('class', `item item-${item.id} kind-b`) + '>' + _$_.escape(`B-${item.id}`) + '</li>';
194
+ break;
303
195
  }
304
196
 
305
- _$_.output_push('<!--]-->');
197
+ __out += '<!--]-->';
306
198
  }
307
199
 
308
- _$_.output_push('<!--]-->');
200
+ __out += '<!--]-->';
309
201
  }
310
202
 
311
- _$_.output_push('</ul>');
203
+ __out += '<!--]--></ul>';
204
+ _$_.output_push(__out);
312
205
  });
313
206
  });
314
207
  }
@@ -322,51 +215,34 @@ export function ForIfSwitchWithDisabled() {
322
215
  ];
323
216
 
324
217
  _$_.regular_block(() => {
325
- _$_.output_push('<ul');
326
- _$_.output_push(' class="for-if-switch-disabled"');
327
- _$_.output_push('>');
328
-
329
- {
330
- _$_.output_push('<!--[-->');
331
-
332
- for (const item of items) {
333
- _$_.output_push('<!--[-->');
334
-
335
- if (item.show) {
336
- _$_.output_push('<!--[-->');
337
-
338
- switch (item.kind) {
339
- case 'a':
340
- _$_.output_push('<li');
341
- _$_.output_push(_$_.attr('class', `item item-${item.id} kind-a`));
342
- _$_.output_push('>');
343
- {
344
- _$_.output_push(_$_.escape(`A-${item.id}`));
345
- }
346
- _$_.output_push('</li>');
347
- break;
348
-
349
- default:
350
- _$_.output_push('<li');
351
- _$_.output_push(_$_.attr('class', `item item-${item.id} kind-b`));
352
- _$_.output_push('>');
353
- {
354
- _$_.output_push(_$_.escape(`B-${item.id}`));
355
- }
356
- _$_.output_push('</li>');
357
- break;
358
- }
218
+ let __out = '';
219
+
220
+ __out += '<ul class="for-if-switch-disabled"><!--[-->';
221
+
222
+ for (const item of items) {
223
+ __out += '<!--[-->';
224
+
225
+ if (item.show) {
226
+ __out += '<!--[-->';
227
+
228
+ switch (item.kind) {
229
+ case 'a':
230
+ __out += '<li' + _$_.attr('class', `item item-${item.id} kind-a`) + '>' + _$_.escape(`A-${item.id}`) + '</li>';
231
+ break;
359
232
 
360
- _$_.output_push('<!--]-->');
233
+ default:
234
+ __out += '<li' + _$_.attr('class', `item item-${item.id} kind-b`) + '>' + _$_.escape(`B-${item.id}`) + '</li>';
235
+ break;
361
236
  }
362
237
 
363
- _$_.output_push('<!--]-->');
238
+ __out += '<!--]-->';
364
239
  }
365
240
 
366
- _$_.output_push('<!--]-->');
241
+ __out += '<!--]-->';
367
242
  }
368
243
 
369
- _$_.output_push('</ul>');
244
+ __out += '<!--]--></ul>';
245
+ _$_.output_push(__out);
370
246
  });
371
247
  });
372
248
  }
@@ -376,410 +252,284 @@ export function SwitchTry() {
376
252
  const kind = 'a';
377
253
 
378
254
  _$_.regular_block(() => {
379
- _$_.output_push('<div');
380
- _$_.output_push(' class="switch-try"');
381
- _$_.output_push('>');
255
+ let __out = '';
256
+
257
+ __out += '<div class="switch-try"><!--[-->';
258
+
259
+ switch (kind) {
260
+ case 'a':
261
+ _$_.output_push(__out);
262
+ __out = '';
263
+ _$_.try_block(
264
+ () => {
265
+ let __out = '';
266
+
267
+ __out += '<!--[--><p class="resolved-a">A resolved</p><!--]-->';
268
+ _$_.output_push(__out);
269
+ },
270
+ null,
271
+ () => {
272
+ let __out = '';
273
+
274
+ __out += '<!--[--><p class="pending-a">A pending</p><!--]-->';
275
+ _$_.output_push(__out);
276
+ }
277
+ );
278
+ break;
382
279
 
383
- {
384
- _$_.output_push('<!--[-->');
280
+ default:
281
+ __out += '<p class="default">Default</p>';
282
+ break;
283
+ }
385
284
 
386
- switch (kind) {
285
+ __out += '<!--]--></div>';
286
+ _$_.output_push(__out);
287
+ });
288
+ });
289
+ }
290
+
291
+ export function ForSwitchTry() {
292
+ return _$_.tsrx_element(() => {
293
+ const items = [{ id: 1, kind: 'a' }, { id: 2, kind: 'b' }];
294
+
295
+ _$_.regular_block(() => {
296
+ let __out = '';
297
+
298
+ __out += '<ul class="for-switch-try"><!--[-->';
299
+
300
+ for (const item of items) {
301
+ __out += '<!--[-->';
302
+
303
+ switch (item.kind) {
387
304
  case 'a':
305
+ _$_.output_push(__out);
306
+ __out = '';
388
307
  _$_.try_block(
389
308
  () => {
390
- _$_.output_push('<!--[-->');
391
- _$_.output_push('<p');
392
- _$_.output_push(' class="resolved-a"');
393
- _$_.output_push('>');
309
+ let __out = '';
394
310
 
395
- {
396
- _$_.output_push('A resolved');
397
- }
398
-
399
- _$_.output_push('</p>');
400
- _$_.output_push('<!--]-->');
311
+ __out += '<!--[--><li' + _$_.attr('class', `item item-${item.id} kind-a`) + '>' + _$_.escape(`A-${item.id}`) + '</li><!--]-->';
312
+ _$_.output_push(__out);
401
313
  },
402
314
  null,
403
315
  () => {
404
- _$_.output_push('<!--[-->');
405
- _$_.output_push('<p');
406
- _$_.output_push(' class="pending-a"');
407
- _$_.output_push('>');
408
-
409
- {
410
- _$_.output_push('A pending');
411
- }
316
+ let __out = '';
412
317
 
413
- _$_.output_push('</p>');
414
- _$_.output_push('<!--]-->');
318
+ __out += '<!--[--><li' + _$_.attr('class', `pending pending-${item.id}`) + '>' + _$_.escape(`pending ${item.id}`) + '</li><!--]-->';
319
+ _$_.output_push(__out);
415
320
  }
416
321
  );
417
322
  break;
418
323
 
419
324
  default:
420
- _$_.output_push('<p');
421
- _$_.output_push(' class="default"');
422
- _$_.output_push('>');
423
- {
424
- _$_.output_push('Default');
425
- }
426
- _$_.output_push('</p>');
325
+ _$_.output_push(__out);
326
+ __out = '';
327
+ _$_.try_block(
328
+ () => {
329
+ let __out = '';
330
+
331
+ __out += '<!--[--><li' + _$_.attr('class', `item item-${item.id} kind-b`) + '>' + _$_.escape(`B-${item.id}`) + '</li><!--]-->';
332
+ _$_.output_push(__out);
333
+ },
334
+ null,
335
+ () => {
336
+ let __out = '';
337
+
338
+ __out += '<!--[--><li' + _$_.attr('class', `pending pending-${item.id}`) + '>' + _$_.escape(`pending ${item.id}`) + '</li><!--]-->';
339
+ _$_.output_push(__out);
340
+ }
341
+ );
427
342
  break;
428
343
  }
429
344
 
430
- _$_.output_push('<!--]-->');
345
+ __out += '<!--]-->';
431
346
  }
432
347
 
433
- _$_.output_push('</div>');
348
+ __out += '<!--]--></ul>';
349
+ _$_.output_push(__out);
434
350
  });
435
351
  });
436
352
  }
437
353
 
438
- export function ForSwitchTry() {
354
+ export function ForIfTry() {
439
355
  return _$_.tsrx_element(() => {
440
- const items = [{ id: 1, kind: 'a' }, { id: 2, kind: 'b' }];
356
+ const items = [{ id: 1, show: true }, { id: 2, show: true }];
357
+
358
+ _$_.regular_block(() => {
359
+ let __out = '';
360
+
361
+ __out += '<ul class="for-if-try"><!--[-->';
362
+
363
+ for (const item of items) {
364
+ __out += '<!--[-->';
365
+
366
+ if (item.show) {
367
+ _$_.output_push(__out);
368
+ __out = '';
369
+
370
+ _$_.try_block(
371
+ () => {
372
+ let __out = '';
373
+
374
+ __out += '<!--[--><li' + _$_.attr('class', `item item-${item.id}`) + '>' + _$_.escape(`item-${item.id}`) + '</li><!--]-->';
375
+ _$_.output_push(__out);
376
+ },
377
+ null,
378
+ () => {
379
+ let __out = '';
380
+
381
+ __out += '<!--[--><li' + _$_.attr('class', `pending pending-${item.id}`) + '>' + _$_.escape(`pending ${item.id}`) + '</li><!--]-->';
382
+ _$_.output_push(__out);
383
+ }
384
+ );
385
+ }
386
+
387
+ __out += '<!--]-->';
388
+ }
389
+
390
+ __out += '<!--]--></ul>';
391
+ _$_.output_push(__out);
392
+ });
393
+ });
394
+ }
395
+
396
+ export function ForIfSwitchTrySingle() {
397
+ return _$_.tsrx_element(() => {
398
+ const items = [{ id: 1, kind: 'a', show: true }];
441
399
 
442
400
  _$_.regular_block(() => {
443
- _$_.output_push('<ul');
444
- _$_.output_push(' class="for-switch-try"');
445
- _$_.output_push('>');
401
+ let __out = '';
402
+
403
+ __out += '<ul class="for-if-switch-try-single"><!--[-->';
446
404
 
447
- {
448
- _$_.output_push('<!--[-->');
405
+ for (const item of items) {
406
+ __out += '<!--[-->';
449
407
 
450
- for (const item of items) {
451
- _$_.output_push('<!--[-->');
408
+ if (item.show) {
409
+ __out += '<!--[-->';
452
410
 
453
411
  switch (item.kind) {
454
412
  case 'a':
413
+ _$_.output_push(__out);
414
+ __out = '';
455
415
  _$_.try_block(
456
416
  () => {
457
- _$_.output_push('<!--[-->');
458
- _$_.output_push('<li');
459
- _$_.output_push(_$_.attr('class', `item item-${item.id} kind-a`));
460
- _$_.output_push('>');
461
-
462
- {
463
- _$_.output_push(_$_.escape(`A-${item.id}`));
464
- }
417
+ let __out = '';
465
418
 
466
- _$_.output_push('</li>');
467
- _$_.output_push('<!--]-->');
419
+ __out += '<!--[--><li' + _$_.attr('class', `item item-${item.id} kind-a`) + '>' + _$_.escape(`A-${item.id}`) + '</li><!--]-->';
420
+ _$_.output_push(__out);
468
421
  },
469
422
  null,
470
423
  () => {
471
- _$_.output_push('<!--[-->');
472
- _$_.output_push('<li');
473
- _$_.output_push(_$_.attr('class', `pending pending-${item.id}`));
474
- _$_.output_push('>');
424
+ let __out = '';
475
425
 
476
- {
477
- _$_.output_push(_$_.escape(`pending ${item.id}`));
478
- }
479
-
480
- _$_.output_push('</li>');
481
- _$_.output_push('<!--]-->');
426
+ __out += '<!--[--><li' + _$_.attr('class', `pending pending-${item.id}`) + '>' + _$_.escape(`pending ${item.id}`) + '</li><!--]-->';
427
+ _$_.output_push(__out);
482
428
  }
483
429
  );
484
430
  break;
485
431
 
486
432
  default:
433
+ _$_.output_push(__out);
434
+ __out = '';
487
435
  _$_.try_block(
488
436
  () => {
489
- _$_.output_push('<!--[-->');
490
- _$_.output_push('<li');
491
- _$_.output_push(_$_.attr('class', `item item-${item.id} kind-b`));
492
- _$_.output_push('>');
493
-
494
- {
495
- _$_.output_push(_$_.escape(`B-${item.id}`));
496
- }
437
+ let __out = '';
497
438
 
498
- _$_.output_push('</li>');
499
- _$_.output_push('<!--]-->');
439
+ __out += '<!--[--><li' + _$_.attr('class', `item item-${item.id} kind-default`) + '>' + _$_.escape(`D-${item.id}`) + '</li><!--]-->';
440
+ _$_.output_push(__out);
500
441
  },
501
442
  null,
502
443
  () => {
503
- _$_.output_push('<!--[-->');
504
- _$_.output_push('<li');
505
- _$_.output_push(_$_.attr('class', `pending pending-${item.id}`));
506
- _$_.output_push('>');
507
-
508
- {
509
- _$_.output_push(_$_.escape(`pending ${item.id}`));
510
- }
444
+ let __out = '';
511
445
 
512
- _$_.output_push('</li>');
513
- _$_.output_push('<!--]-->');
446
+ __out += '<!--[--><li' + _$_.attr('class', `pending pending-${item.id}`) + '>' + _$_.escape(`pending ${item.id}`) + '</li><!--]-->';
447
+ _$_.output_push(__out);
514
448
  }
515
449
  );
516
450
  break;
517
451
  }
518
452
 
519
- _$_.output_push('<!--]-->');
453
+ __out += '<!--]-->';
520
454
  }
521
455
 
522
- _$_.output_push('<!--]-->');
456
+ __out += '<!--]-->';
523
457
  }
524
458
 
525
- _$_.output_push('</ul>');
459
+ __out += '<!--]--></ul>';
460
+ _$_.output_push(__out);
526
461
  });
527
462
  });
528
463
  }
529
464
 
530
- export function ForIfTry() {
465
+ export function ForIfSwitchTryMulti() {
531
466
  return _$_.tsrx_element(() => {
532
- const items = [{ id: 1, show: true }, { id: 2, show: true }];
467
+ const items = [
468
+ { id: 1, kind: 'a', show: true },
469
+ { id: 2, kind: 'b', show: true }
470
+ ];
533
471
 
534
472
  _$_.regular_block(() => {
535
- _$_.output_push('<ul');
536
- _$_.output_push(' class="for-if-try"');
537
- _$_.output_push('>');
473
+ let __out = '';
538
474
 
539
- {
540
- _$_.output_push('<!--[-->');
475
+ __out += '<ul class="for-if-switch-try-multi"><!--[-->';
541
476
 
542
- for (const item of items) {
543
- _$_.output_push('<!--[-->');
477
+ for (const item of items) {
478
+ __out += '<!--[-->';
544
479
 
545
- if (item.show) {
546
- _$_.try_block(
547
- () => {
548
- _$_.output_push('<!--[-->');
549
- _$_.output_push('<li');
550
- _$_.output_push(_$_.attr('class', `item item-${item.id}`));
551
- _$_.output_push('>');
480
+ if (item.show) {
481
+ __out += '<!--[-->';
552
482
 
553
- {
554
- _$_.output_push(_$_.escape(`item-${item.id}`));
555
- }
483
+ switch (item.kind) {
484
+ case 'a':
485
+ _$_.output_push(__out);
486
+ __out = '';
487
+ _$_.try_block(
488
+ () => {
489
+ let __out = '';
556
490
 
557
- _$_.output_push('</li>');
558
- _$_.output_push('<!--]-->');
559
- },
560
- null,
561
- () => {
562
- _$_.output_push('<!--[-->');
563
- _$_.output_push('<li');
564
- _$_.output_push(_$_.attr('class', `pending pending-${item.id}`));
565
- _$_.output_push('>');
491
+ __out += '<!--[--><li' + _$_.attr('class', `item item-${item.id} kind-a`) + '>' + _$_.escape(`A-${item.id}`) + '</li><!--]-->';
492
+ _$_.output_push(__out);
493
+ },
494
+ null,
495
+ () => {
496
+ let __out = '';
566
497
 
567
- {
568
- _$_.output_push(_$_.escape(`pending ${item.id}`));
498
+ __out += '<!--[--><li' + _$_.attr('class', `pending pending-${item.id}`) + '>' + _$_.escape(`pending ${item.id}`) + '</li><!--]-->';
499
+ _$_.output_push(__out);
569
500
  }
501
+ );
502
+ break;
570
503
 
571
- _$_.output_push('</li>');
572
- _$_.output_push('<!--]-->');
573
- }
574
- );
575
- }
576
-
577
- _$_.output_push('<!--]-->');
578
- }
579
-
580
- _$_.output_push('<!--]-->');
581
- }
582
-
583
- _$_.output_push('</ul>');
584
- });
585
- });
586
- }
587
-
588
- export function ForIfSwitchTrySingle() {
589
- return _$_.tsrx_element(() => {
590
- const items = [{ id: 1, kind: 'a', show: true }];
591
-
592
- _$_.regular_block(() => {
593
- _$_.output_push('<ul');
594
- _$_.output_push(' class="for-if-switch-try-single"');
595
- _$_.output_push('>');
596
-
597
- {
598
- _$_.output_push('<!--[-->');
599
-
600
- for (const item of items) {
601
- _$_.output_push('<!--[-->');
602
-
603
- if (item.show) {
604
- _$_.output_push('<!--[-->');
605
-
606
- switch (item.kind) {
607
- case 'a':
608
- _$_.try_block(
609
- () => {
610
- _$_.output_push('<!--[-->');
611
- _$_.output_push('<li');
612
- _$_.output_push(_$_.attr('class', `item item-${item.id} kind-a`));
613
- _$_.output_push('>');
614
-
615
- {
616
- _$_.output_push(_$_.escape(`A-${item.id}`));
617
- }
618
-
619
- _$_.output_push('</li>');
620
- _$_.output_push('<!--]-->');
621
- },
622
- null,
623
- () => {
624
- _$_.output_push('<!--[-->');
625
- _$_.output_push('<li');
626
- _$_.output_push(_$_.attr('class', `pending pending-${item.id}`));
627
- _$_.output_push('>');
628
-
629
- {
630
- _$_.output_push(_$_.escape(`pending ${item.id}`));
631
- }
632
-
633
- _$_.output_push('</li>');
634
- _$_.output_push('<!--]-->');
635
- }
636
- );
637
- break;
638
-
639
- default:
640
- _$_.try_block(
641
- () => {
642
- _$_.output_push('<!--[-->');
643
- _$_.output_push('<li');
644
- _$_.output_push(_$_.attr('class', `item item-${item.id} kind-default`));
645
- _$_.output_push('>');
646
-
647
- {
648
- _$_.output_push(_$_.escape(`D-${item.id}`));
649
- }
650
-
651
- _$_.output_push('</li>');
652
- _$_.output_push('<!--]-->');
653
- },
654
- null,
655
- () => {
656
- _$_.output_push('<!--[-->');
657
- _$_.output_push('<li');
658
- _$_.output_push(_$_.attr('class', `pending pending-${item.id}`));
659
- _$_.output_push('>');
660
-
661
- {
662
- _$_.output_push(_$_.escape(`pending ${item.id}`));
663
- }
664
-
665
- _$_.output_push('</li>');
666
- _$_.output_push('<!--]-->');
667
- }
668
- );
669
- break;
670
- }
671
-
672
- _$_.output_push('<!--]-->');
673
- }
674
-
675
- _$_.output_push('<!--]-->');
676
- }
677
-
678
- _$_.output_push('<!--]-->');
679
- }
680
-
681
- _$_.output_push('</ul>');
682
- });
683
- });
684
- }
685
-
686
- export function ForIfSwitchTryMulti() {
687
- return _$_.tsrx_element(() => {
688
- const items = [
689
- { id: 1, kind: 'a', show: true },
690
- { id: 2, kind: 'b', show: true }
691
- ];
504
+ default:
505
+ _$_.output_push(__out);
506
+ __out = '';
507
+ _$_.try_block(
508
+ () => {
509
+ let __out = '';
692
510
 
693
- _$_.regular_block(() => {
694
- _$_.output_push('<ul');
695
- _$_.output_push(' class="for-if-switch-try-multi"');
696
- _$_.output_push('>');
697
-
698
- {
699
- _$_.output_push('<!--[-->');
700
-
701
- for (const item of items) {
702
- _$_.output_push('<!--[-->');
703
-
704
- if (item.show) {
705
- _$_.output_push('<!--[-->');
706
-
707
- switch (item.kind) {
708
- case 'a':
709
- _$_.try_block(
710
- () => {
711
- _$_.output_push('<!--[-->');
712
- _$_.output_push('<li');
713
- _$_.output_push(_$_.attr('class', `item item-${item.id} kind-a`));
714
- _$_.output_push('>');
715
-
716
- {
717
- _$_.output_push(_$_.escape(`A-${item.id}`));
718
- }
719
-
720
- _$_.output_push('</li>');
721
- _$_.output_push('<!--]-->');
722
- },
723
- null,
724
- () => {
725
- _$_.output_push('<!--[-->');
726
- _$_.output_push('<li');
727
- _$_.output_push(_$_.attr('class', `pending pending-${item.id}`));
728
- _$_.output_push('>');
729
-
730
- {
731
- _$_.output_push(_$_.escape(`pending ${item.id}`));
732
- }
733
-
734
- _$_.output_push('</li>');
735
- _$_.output_push('<!--]-->');
736
- }
737
- );
738
- break;
739
-
740
- default:
741
- _$_.try_block(
742
- () => {
743
- _$_.output_push('<!--[-->');
744
- _$_.output_push('<li');
745
- _$_.output_push(_$_.attr('class', `item item-${item.id} kind-b`));
746
- _$_.output_push('>');
747
-
748
- {
749
- _$_.output_push(_$_.escape(`B-${item.id}`));
750
- }
751
-
752
- _$_.output_push('</li>');
753
- _$_.output_push('<!--]-->');
754
- },
755
- null,
756
- () => {
757
- _$_.output_push('<!--[-->');
758
- _$_.output_push('<li');
759
- _$_.output_push(_$_.attr('class', `pending pending-${item.id}`));
760
- _$_.output_push('>');
761
-
762
- {
763
- _$_.output_push(_$_.escape(`pending ${item.id}`));
764
- }
765
-
766
- _$_.output_push('</li>');
767
- _$_.output_push('<!--]-->');
768
- }
769
- );
770
- break;
771
- }
511
+ __out += '<!--[--><li' + _$_.attr('class', `item item-${item.id} kind-b`) + '>' + _$_.escape(`B-${item.id}`) + '</li><!--]-->';
512
+ _$_.output_push(__out);
513
+ },
514
+ null,
515
+ () => {
516
+ let __out = '';
772
517
 
773
- _$_.output_push('<!--]-->');
518
+ __out += '<!--[--><li' + _$_.attr('class', `pending pending-${item.id}`) + '>' + _$_.escape(`pending ${item.id}`) + '</li><!--]-->';
519
+ _$_.output_push(__out);
520
+ }
521
+ );
522
+ break;
774
523
  }
775
524
 
776
- _$_.output_push('<!--]-->');
525
+ __out += '<!--]-->';
777
526
  }
778
527
 
779
- _$_.output_push('<!--]-->');
528
+ __out += '<!--]-->';
780
529
  }
781
530
 
782
- _$_.output_push('</ul>');
531
+ __out += '<!--]--></ul>';
532
+ _$_.output_push(__out);
783
533
  });
784
534
  });
785
535
  }