ripple 0.2.208 → 0.2.210

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 (108) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/README.md +2 -1
  3. package/package.json +2 -6
  4. package/shims/rollup-estree-types.d.ts +1 -1
  5. package/src/compiler/index.d.ts +1 -0
  6. package/src/compiler/index.js +7 -1
  7. package/src/compiler/phases/1-parse/index.js +15 -6
  8. package/src/compiler/phases/2-analyze/css-analyze.js +100 -104
  9. package/src/compiler/phases/2-analyze/index.js +215 -2
  10. package/src/compiler/phases/3-transform/client/index.js +388 -50
  11. package/src/compiler/phases/3-transform/segments.js +123 -39
  12. package/src/compiler/phases/3-transform/server/index.js +266 -13
  13. package/src/compiler/types/index.d.ts +16 -3
  14. package/src/compiler/utils.js +1 -15
  15. package/src/constants.js +0 -2
  16. package/src/helpers.d.ts +4 -0
  17. package/src/html-tree-validation.js +211 -0
  18. package/src/jsx-runtime.d.ts +260 -259
  19. package/src/jsx-runtime.js +12 -12
  20. package/src/runtime/array.js +17 -17
  21. package/src/runtime/create-subscriber.js +1 -1
  22. package/src/runtime/index-client.js +1 -5
  23. package/src/runtime/index-server.js +15 -0
  24. package/src/runtime/internal/client/compat.js +3 -3
  25. package/src/runtime/internal/client/composite.js +6 -1
  26. package/src/runtime/internal/client/head.js +50 -4
  27. package/src/runtime/internal/client/html.js +73 -12
  28. package/src/runtime/internal/client/hydration.js +12 -0
  29. package/src/runtime/internal/client/index.js +1 -1
  30. package/src/runtime/internal/client/portal.js +54 -29
  31. package/src/runtime/internal/client/rpc.js +3 -1
  32. package/src/runtime/internal/client/switch.js +5 -0
  33. package/src/runtime/internal/client/template.js +117 -11
  34. package/src/runtime/internal/client/try.js +1 -0
  35. package/src/runtime/internal/server/index.js +113 -1
  36. package/src/runtime/internal/server/rpc.js +4 -4
  37. package/src/runtime/map.js +2 -2
  38. package/src/runtime/object.js +6 -6
  39. package/src/runtime/proxy.js +12 -11
  40. package/src/runtime/reactive-value.js +9 -1
  41. package/src/runtime/set.js +12 -7
  42. package/src/runtime/url-search-params.js +0 -1
  43. package/src/server/index.js +4 -0
  44. package/src/utils/hashing.js +15 -0
  45. package/src/utils/normalize_css_property_name.js +1 -1
  46. package/tests/client/array/array.mutations.test.ripple +8 -8
  47. package/tests/client/basic/basic.errors.test.ripple +28 -0
  48. package/tests/client/basic/basic.events.test.ripple +6 -3
  49. package/tests/client/basic/basic.utilities.test.ripple +1 -1
  50. package/tests/client/compiler/compiler.regex.test.ripple +10 -8
  51. package/tests/client/composite/composite.generics.test.ripple +5 -2
  52. package/tests/client/dynamic-elements.test.ripple +30 -1
  53. package/tests/client/function-overload-import.ripple +6 -7
  54. package/tests/client/html.test.ripple +0 -1
  55. package/tests/client/object.test.ripple +2 -2
  56. package/tests/client/portal.test.ripple +3 -3
  57. package/tests/client/return.test.ripple +2500 -0
  58. package/tests/client/try.test.ripple +69 -0
  59. package/tests/client/typescript-generics.test.ripple +1 -1
  60. package/tests/client/url/url.derived.test.ripple +1 -1
  61. package/tests/client/url/url.parsing.test.ripple +3 -3
  62. package/tests/client/url/url.partial-removal.test.ripple +7 -7
  63. package/tests/client/url/url.reactivity.test.ripple +15 -15
  64. package/tests/client/url/url.serialization.test.ripple +2 -2
  65. package/tests/hydration/basic.test.js +23 -0
  66. package/tests/hydration/build-components.js +10 -4
  67. package/tests/hydration/compiled/client/basic.js +165 -3
  68. package/tests/hydration/compiled/client/for.js +1140 -23
  69. package/tests/hydration/compiled/client/head.js +234 -0
  70. package/tests/hydration/compiled/client/html.js +135 -0
  71. package/tests/hydration/compiled/client/portal.js +172 -0
  72. package/tests/hydration/compiled/client/reactivity.js +3 -1
  73. package/tests/hydration/compiled/client/return.js +1976 -0
  74. package/tests/hydration/compiled/client/switch.js +162 -0
  75. package/tests/hydration/compiled/server/basic.js +249 -0
  76. package/tests/hydration/compiled/server/events.js +1 -1
  77. package/tests/hydration/compiled/server/for.js +891 -1
  78. package/tests/hydration/compiled/server/head.js +291 -0
  79. package/tests/hydration/compiled/server/html.js +133 -0
  80. package/tests/hydration/compiled/server/if.js +1 -1
  81. package/tests/hydration/compiled/server/portal.js +250 -0
  82. package/tests/hydration/compiled/server/reactivity.js +1 -1
  83. package/tests/hydration/compiled/server/return.js +1969 -0
  84. package/tests/hydration/compiled/server/switch.js +130 -0
  85. package/tests/hydration/components/basic.ripple +55 -0
  86. package/tests/hydration/components/for.ripple +403 -0
  87. package/tests/hydration/components/head.ripple +111 -0
  88. package/tests/hydration/components/html.ripple +38 -0
  89. package/tests/hydration/components/portal.ripple +49 -0
  90. package/tests/hydration/components/return.ripple +564 -0
  91. package/tests/hydration/components/switch.ripple +51 -0
  92. package/tests/hydration/for.test.js +363 -0
  93. package/tests/hydration/head.test.js +105 -0
  94. package/tests/hydration/html.test.js +46 -0
  95. package/tests/hydration/portal.test.js +71 -0
  96. package/tests/hydration/return.test.js +544 -0
  97. package/tests/hydration/switch.test.js +42 -0
  98. package/tests/server/basic.attributes.test.ripple +1 -1
  99. package/tests/server/compiler.test.ripple +22 -0
  100. package/tests/server/composite.test.ripple +5 -2
  101. package/tests/server/html-nesting-validation.test.ripple +237 -0
  102. package/tests/server/return.test.ripple +1379 -0
  103. package/tests/setup-hydration.js +6 -1
  104. package/tests/utils/escaping.test.js +3 -1
  105. package/tests/utils/normalize_css_property_name.test.js +0 -1
  106. package/tests/utils/patterns.test.js +6 -2
  107. package/tests/utils/sanitize_template_string.test.js +3 -2
  108. package/types/server.d.ts +16 -0
@@ -19,6 +19,49 @@ var root_16 = _$_.template(`<span> </span>`, 0);
19
19
  var root_15 = _$_.template(`<div class="container"></div>`, 0);
20
20
  var root_18 = _$_.template(`<div><span class="name"> </span><span class="role"> </span></div>`, 0);
21
21
  var root_17 = _$_.template(`<div></div>`, 0);
22
+ var root_20 = _$_.template(`<li> </li>`, 0);
23
+ var root_19 = _$_.template(`<button class="reorder">Reorder</button><ul></ul>`, 1);
24
+ var root_22 = _$_.template(`<li> </li>`, 0);
25
+ var root_21 = _$_.template(`<button class="update">Update</button><ul></ul>`, 1);
26
+ var root_24 = _$_.template(`<li> </li>`, 0);
27
+ var root_23 = _$_.template(`<button class="shuffle">Shuffle</button><ul></ul>`, 1);
28
+ var root_27 = _$_.template(`<li> </li>`, 0);
29
+ var root_26 = _$_.template(`<ul class="list"></ul>`, 0);
30
+ var root_25 = _$_.template(`<button class="toggle">Toggle List</button><button class="add">Add Item</button><!>`, 1);
31
+ var root_29 = _$_.template(`<li> </li>`, 0);
32
+ var root_28 = _$_.template(`<button class="populate">Populate</button><ul class="list"></ul>`, 1);
33
+ var root_31 = _$_.template(`<li> </li>`, 0);
34
+ var root_30 = _$_.template(`<button class="clear">Clear</button><ul class="list"></ul>`, 1);
35
+ var root_34 = _$_.template(`<span> </span>`, 0);
36
+ var root_33 = _$_.template(`<div></div>`, 0);
37
+ var root_32 = _$_.template(`<button class="add-row">Add Row</button><button class="update-cell">Update Cell</button><div class="grid"></div>`, 1);
38
+ var root_38 = _$_.template(`<li class="member"> </li>`, 0);
39
+ var root_37 = _$_.template(`<div><h3 class="team-name"> </h3><ul></ul></div>`, 0);
40
+ var root_36 = _$_.template(`<div><h2 class="dept-name"> </h2><!></div>`, 0);
41
+ var root_35 = _$_.template(`<div class="org"></div>`, 0);
42
+ var root_40 = _$_.template(`<li> </li>`, 0);
43
+ var root_39 = _$_.template(`<button class="prepend">Prepend</button><ul></ul>`, 1);
44
+ var root_42 = _$_.template(`<li> </li>`, 0);
45
+ var root_41 = _$_.template(`<button class="reorder">Rotate</button><ul></ul>`, 1);
46
+ var root_44 = _$_.template(`<div> </div>`, 0);
47
+ var root_43 = _$_.template(`<div class="wrapper"><header class="before">Before</header><!><footer class="after">After</footer></div><button class="add">Add</button>`, 1);
48
+ var root_46 = _$_.template(`<!>`, 1);
49
+ var root_45 = _$_.template(`<div></div>`, 0);
50
+ var root_47 = _$_.template(`<div><input type="checkbox" class="checkbox"><span> </span></div>`, 0);
51
+ var root_49 = _$_.template(`<li class="single"> </li>`, 0);
52
+ var root_48 = _$_.template(`<ul></ul>`, 0);
53
+ var root_51 = _$_.template(`<li> </li>`, 0);
54
+ var root_50 = _$_.template(`<button class="prepend">Prepend A</button><ul></ul>`, 1);
55
+ var root_53 = _$_.template(`<li> </li>`, 0);
56
+ var root_52 = _$_.template(`<button class="insert">Insert B</button><ul></ul>`, 1);
57
+ var root_55 = _$_.template(`<li> </li>`, 0);
58
+ var root_54 = _$_.template(`<button class="remove-middle">Remove B</button><ul></ul>`, 1);
59
+ var root_57 = _$_.template(`<li> </li>`, 0);
60
+ var root_56 = _$_.template(`<ul class="large-list"></ul>`, 0);
61
+ var root_59 = _$_.template(`<li> </li>`, 0);
62
+ var root_58 = _$_.template(`<button class="swap">Swap First and Last</button><ul></ul>`, 1);
63
+ var root_61 = _$_.template(`<li> </li>`, 0);
64
+ var root_60 = _$_.template(`<button class="reverse">Reverse</button><ul></ul>`, 1);
22
65
 
23
66
  import { track } from 'ripple';
24
67
 
@@ -36,9 +79,9 @@ export function StaticForLoop(__anchor, _, __block) {
36
79
  var li_1 = root_1();
37
80
 
38
81
  {
39
- var text = _$_.child(li_1, true);
82
+ var text_1 = _$_.child(li_1, true);
40
83
 
41
- text.nodeValue = item;
84
+ text_1.nodeValue = item;
42
85
  _$_.pop(li_1);
43
86
  }
44
87
 
@@ -68,13 +111,13 @@ export function ForLoopWithIndex(__anchor, _, __block) {
68
111
  var li_2 = root_3();
69
112
 
70
113
  {
71
- var text_1 = _$_.child(li_2, true);
114
+ var text_2 = _$_.child(li_2, true);
72
115
 
73
116
  _$_.pop(li_2);
74
117
  }
75
118
 
76
119
  _$_.render(() => {
77
- _$_.set_text(text_1, `${_$_.get(i)}: ${item}`);
120
+ _$_.set_text(text_2, `${_$_.get(i)}: ${item}`);
78
121
  });
79
122
 
80
123
  _$_.append(__anchor, li_2);
@@ -108,13 +151,13 @@ export function KeyedForLoop(__anchor, _, __block) {
108
151
  var li_3 = root_5();
109
152
 
110
153
  {
111
- var text_2 = _$_.child(li_3, true);
154
+ var text_3 = _$_.child(li_3, true);
112
155
 
113
156
  _$_.pop(li_3);
114
157
  }
115
158
 
116
159
  _$_.render(() => {
117
- _$_.set_text(text_2, _$_.get(pattern).name);
160
+ _$_.set_text(text_3, _$_.get(pattern).name);
118
161
  });
119
162
 
120
163
  _$_.append(__anchor, li_3);
@@ -151,9 +194,9 @@ export function ReactiveForLoopAdd(__anchor, _, __block) {
151
194
  var li_4 = root_7();
152
195
 
153
196
  {
154
- var text_3 = _$_.child(li_4, true);
197
+ var text_4 = _$_.child(li_4, true);
155
198
 
156
- text_3.nodeValue = item;
199
+ text_4.nodeValue = item;
157
200
  _$_.pop(li_4);
158
201
  }
159
202
 
@@ -165,7 +208,8 @@ export function ReactiveForLoopAdd(__anchor, _, __block) {
165
208
  _$_.pop(ul_4);
166
209
  }
167
210
 
168
- _$_.append(__anchor, fragment);
211
+ _$_.next();
212
+ _$_.append(__anchor, fragment, true);
169
213
  _$_.pop_component();
170
214
  }
171
215
 
@@ -190,9 +234,9 @@ export function ReactiveForLoopRemove(__anchor, _, __block) {
190
234
  var li_5 = root_9();
191
235
 
192
236
  {
193
- var text_4 = _$_.child(li_5, true);
237
+ var text_5 = _$_.child(li_5, true);
194
238
 
195
- text_4.nodeValue = item;
239
+ text_5.nodeValue = item;
196
240
  _$_.pop(li_5);
197
241
  }
198
242
 
@@ -204,7 +248,8 @@ export function ReactiveForLoopRemove(__anchor, _, __block) {
204
248
  _$_.pop(ul_5);
205
249
  }
206
250
 
207
- _$_.append(__anchor, fragment_1);
251
+ _$_.next();
252
+ _$_.append(__anchor, fragment_1, true);
208
253
  _$_.pop_component();
209
254
  }
210
255
 
@@ -225,9 +270,9 @@ export function ForLoopInteractive(__anchor, _, __block) {
225
270
  var span_1 = _$_.child(div_2);
226
271
 
227
272
  {
228
- var text_5 = _$_.child(span_1, true);
273
+ var text_6 = _$_.child(span_1, true);
229
274
 
230
- text_5.nodeValue = count;
275
+ text_6.nodeValue = count;
231
276
  _$_.pop(span_1);
232
277
  }
233
278
 
@@ -278,9 +323,9 @@ export function NestedForLoop(__anchor, _, __block) {
278
323
  var span_2 = root_14();
279
324
 
280
325
  {
281
- var text_6 = _$_.child(span_2, true);
326
+ var text_7 = _$_.child(span_2, true);
282
327
 
283
- text_6.nodeValue = cell;
328
+ text_7.nodeValue = cell;
284
329
  _$_.pop(span_2);
285
330
  }
286
331
 
@@ -326,9 +371,9 @@ export function EmptyForLoop(__anchor, _, __block) {
326
371
  var span_3 = root_16();
327
372
 
328
373
  {
329
- var text_7 = _$_.child(span_3, true);
374
+ var text_8 = _$_.child(span_3, true);
330
375
 
331
- text_7.nodeValue = item;
376
+ text_8.nodeValue = item;
332
377
  _$_.pop(span_3);
333
378
  }
334
379
 
@@ -365,7 +410,7 @@ export function ForLoopComplexObjects(__anchor, _, __block) {
365
410
  var span_4 = _$_.child(div_7);
366
411
 
367
412
  {
368
- var text_8 = _$_.child(span_4, true);
413
+ var text_9 = _$_.child(span_4, true);
369
414
 
370
415
  _$_.pop(span_4);
371
416
  }
@@ -373,7 +418,7 @@ export function ForLoopComplexObjects(__anchor, _, __block) {
373
418
  var span_5 = _$_.sibling(span_4);
374
419
 
375
420
  {
376
- var text_9 = _$_.child(span_5, true);
421
+ var text_10 = _$_.child(span_5, true);
377
422
 
378
423
  _$_.pop(span_5);
379
424
  }
@@ -384,13 +429,13 @@ export function ForLoopComplexObjects(__anchor, _, __block) {
384
429
  var __a = _$_.get(pattern_1).name;
385
430
 
386
431
  if (__prev.a !== __a) {
387
- _$_.set_text(text_8, __prev.a = __a);
432
+ _$_.set_text(text_9, __prev.a = __a);
388
433
  }
389
434
 
390
435
  var __b = _$_.get(pattern_1).role;
391
436
 
392
437
  if (__prev.b !== __b) {
393
- _$_.set_text(text_9, __prev.b = __b);
438
+ _$_.set_text(text_10, __prev.b = __b);
394
439
  }
395
440
 
396
441
  var __c = `user-${_$_.get(pattern_1).id}`;
@@ -415,4 +460,1076 @@ export function ForLoopComplexObjects(__anchor, _, __block) {
415
460
  _$_.pop_component();
416
461
  }
417
462
 
418
- _$_.delegate(['click']);
463
+ export function KeyedForLoopReorder(__anchor, _, __block) {
464
+ _$_.push_component();
465
+
466
+ let items = track(
467
+ [
468
+ { id: 1, name: 'First' },
469
+ { id: 2, name: 'Second' },
470
+ { id: 3, name: 'Third' }
471
+ ],
472
+ void 0,
473
+ void 0,
474
+ __block
475
+ );
476
+
477
+ var fragment_2 = root_19();
478
+ var button_4 = _$_.first_child_frag(fragment_2);
479
+
480
+ button_4.__click = () => {
481
+ _$_.set(items, [_$_.get(items)[2], _$_.get(items)[0], _$_.get(items)[1]]);
482
+ };
483
+
484
+ var ul_6 = _$_.sibling(button_4);
485
+
486
+ {
487
+ _$_.for_keyed(
488
+ ul_6,
489
+ () => _$_.get(items),
490
+ (__anchor, pattern_2) => {
491
+ var li_6 = root_20();
492
+
493
+ {
494
+ var text_11 = _$_.child(li_6, true);
495
+
496
+ _$_.pop(li_6);
497
+ }
498
+
499
+ _$_.render(
500
+ (__prev) => {
501
+ var __a = _$_.get(pattern_2).name;
502
+
503
+ if (__prev.a !== __a) {
504
+ _$_.set_text(text_11, __prev.a = __a);
505
+ }
506
+
507
+ var __b = `item-${_$_.get(pattern_2).id}`;
508
+
509
+ if (__prev.b !== __b) {
510
+ _$_.set_class(li_6, __prev.b = __b, void 0, true);
511
+ }
512
+ },
513
+ { a: ' ', b: Symbol() }
514
+ );
515
+
516
+ _$_.append(__anchor, li_6);
517
+ },
518
+ 4,
519
+ (pattern_2) => _$_.get(pattern_2).id
520
+ );
521
+
522
+ _$_.pop(ul_6);
523
+ }
524
+
525
+ _$_.next();
526
+ _$_.append(__anchor, fragment_2, true);
527
+ _$_.pop_component();
528
+ }
529
+
530
+ export function KeyedForLoopUpdate(__anchor, _, __block) {
531
+ _$_.push_component();
532
+
533
+ let items = track([{ id: 1, name: 'Item 1' }, { id: 2, name: 'Item 2' }], void 0, void 0, __block);
534
+ var fragment_3 = root_21();
535
+ var button_5 = _$_.first_child_frag(fragment_3);
536
+
537
+ button_5.__click = () => {
538
+ _$_.set(items, _$_.with_scope(__block, () => _$_.get(items).map((item) => item.id === 1 ? { ...item, name: 'Updated' } : item)));
539
+ };
540
+
541
+ var ul_7 = _$_.sibling(button_5);
542
+
543
+ {
544
+ _$_.for_keyed(
545
+ ul_7,
546
+ () => _$_.get(items),
547
+ (__anchor, pattern_3) => {
548
+ var li_7 = root_22();
549
+
550
+ {
551
+ var text_12 = _$_.child(li_7, true);
552
+
553
+ _$_.pop(li_7);
554
+ }
555
+
556
+ _$_.render(
557
+ (__prev) => {
558
+ var __a = _$_.get(pattern_3).name;
559
+
560
+ if (__prev.a !== __a) {
561
+ _$_.set_text(text_12, __prev.a = __a);
562
+ }
563
+
564
+ var __b = `item-${_$_.get(pattern_3).id}`;
565
+
566
+ if (__prev.b !== __b) {
567
+ _$_.set_class(li_7, __prev.b = __b, void 0, true);
568
+ }
569
+ },
570
+ { a: ' ', b: Symbol() }
571
+ );
572
+
573
+ _$_.append(__anchor, li_7);
574
+ },
575
+ 4,
576
+ (pattern_3) => _$_.get(pattern_3).id
577
+ );
578
+
579
+ _$_.pop(ul_7);
580
+ }
581
+
582
+ _$_.next();
583
+ _$_.append(__anchor, fragment_3, true);
584
+ _$_.pop_component();
585
+ }
586
+
587
+ export function ForLoopMixedOperations(__anchor, _, __block) {
588
+ _$_.push_component();
589
+
590
+ let items = track(['A', 'B', 'C', 'D'], void 0, void 0, __block);
591
+ var fragment_4 = root_23();
592
+ var button_6 = _$_.first_child_frag(fragment_4);
593
+
594
+ button_6.__click = () => {
595
+ _$_.set(items, ['D', 'C', 'A', 'E']);
596
+ };
597
+
598
+ var ul_8 = _$_.sibling(button_6);
599
+
600
+ {
601
+ _$_.for(
602
+ ul_8,
603
+ () => _$_.get(items),
604
+ (__anchor, item) => {
605
+ var li_8 = root_24();
606
+
607
+ _$_.set_class(li_8, `item-${item}`, void 0, true);
608
+
609
+ {
610
+ var text_13 = _$_.child(li_8, true);
611
+
612
+ text_13.nodeValue = item;
613
+ _$_.pop(li_8);
614
+ }
615
+
616
+ _$_.append(__anchor, li_8);
617
+ },
618
+ 4
619
+ );
620
+
621
+ _$_.pop(ul_8);
622
+ }
623
+
624
+ _$_.next();
625
+ _$_.append(__anchor, fragment_4, true);
626
+ _$_.pop_component();
627
+ }
628
+
629
+ export function ForLoopInsideIf(__anchor, _, __block) {
630
+ _$_.push_component();
631
+
632
+ let showList = track(true, void 0, void 0, __block);
633
+ let items = track(['X', 'Y', 'Z'], void 0, void 0, __block);
634
+ var fragment_5 = root_25();
635
+ var button_7 = _$_.first_child_frag(fragment_5);
636
+
637
+ button_7.__click = () => {
638
+ _$_.set(showList, !_$_.get(showList));
639
+ };
640
+
641
+ var button_8 = _$_.sibling(button_7);
642
+
643
+ button_8.__click = () => {
644
+ _$_.set(items, [..._$_.get(items), 'W']);
645
+ };
646
+
647
+ var node = _$_.sibling(button_8);
648
+
649
+ {
650
+ var consequent = (__anchor) => {
651
+ var ul_9 = root_26();
652
+
653
+ {
654
+ _$_.for(
655
+ ul_9,
656
+ () => _$_.get(items),
657
+ (__anchor, item) => {
658
+ var li_9 = root_27();
659
+
660
+ {
661
+ var text_14 = _$_.child(li_9, true);
662
+
663
+ text_14.nodeValue = item;
664
+ _$_.pop(li_9);
665
+ }
666
+
667
+ _$_.append(__anchor, li_9);
668
+ },
669
+ 4
670
+ );
671
+
672
+ _$_.pop(ul_9);
673
+ }
674
+
675
+ _$_.append(__anchor, ul_9);
676
+ };
677
+
678
+ _$_.if(node, (__render) => {
679
+ if (_$_.get(showList)) __render(consequent);
680
+ });
681
+ }
682
+
683
+ _$_.append(__anchor, fragment_5);
684
+ _$_.pop_component();
685
+ }
686
+
687
+ export function ForLoopEmptyToPopulated(__anchor, _, __block) {
688
+ _$_.push_component();
689
+
690
+ let items = track([], void 0, void 0, __block);
691
+ var fragment_6 = root_28();
692
+ var button_9 = _$_.first_child_frag(fragment_6);
693
+
694
+ button_9.__click = () => {
695
+ _$_.set(items, ['One', 'Two', 'Three']);
696
+ };
697
+
698
+ var ul_10 = _$_.sibling(button_9);
699
+
700
+ {
701
+ _$_.for(
702
+ ul_10,
703
+ () => _$_.get(items),
704
+ (__anchor, item) => {
705
+ var li_10 = root_29();
706
+
707
+ {
708
+ var text_15 = _$_.child(li_10, true);
709
+
710
+ text_15.nodeValue = item;
711
+ _$_.pop(li_10);
712
+ }
713
+
714
+ _$_.append(__anchor, li_10);
715
+ },
716
+ 4
717
+ );
718
+
719
+ _$_.pop(ul_10);
720
+ }
721
+
722
+ _$_.next();
723
+ _$_.append(__anchor, fragment_6, true);
724
+ _$_.pop_component();
725
+ }
726
+
727
+ export function ForLoopPopulatedToEmpty(__anchor, _, __block) {
728
+ _$_.push_component();
729
+
730
+ let items = track(['One', 'Two', 'Three'], void 0, void 0, __block);
731
+ var fragment_7 = root_30();
732
+ var button_10 = _$_.first_child_frag(fragment_7);
733
+
734
+ button_10.__click = () => {
735
+ _$_.set(items, []);
736
+ };
737
+
738
+ var ul_11 = _$_.sibling(button_10);
739
+
740
+ {
741
+ _$_.for(
742
+ ul_11,
743
+ () => _$_.get(items),
744
+ (__anchor, item) => {
745
+ var li_11 = root_31();
746
+
747
+ {
748
+ var text_16 = _$_.child(li_11, true);
749
+
750
+ text_16.nodeValue = item;
751
+ _$_.pop(li_11);
752
+ }
753
+
754
+ _$_.append(__anchor, li_11);
755
+ },
756
+ 4
757
+ );
758
+
759
+ _$_.pop(ul_11);
760
+ }
761
+
762
+ _$_.next();
763
+ _$_.append(__anchor, fragment_7, true);
764
+ _$_.pop_component();
765
+ }
766
+
767
+ export function NestedForLoopReactive(__anchor, _, __block) {
768
+ _$_.push_component();
769
+
770
+ let grid = track([[1, 2], [3, 4]], void 0, void 0, __block);
771
+ var fragment_8 = root_32();
772
+ var button_11 = _$_.first_child_frag(fragment_8);
773
+
774
+ button_11.__click = () => {
775
+ _$_.set(grid, [..._$_.get(grid), [5, 6]]);
776
+ };
777
+
778
+ var button_12 = _$_.sibling(button_11);
779
+
780
+ button_12.__click = () => {
781
+ const newGrid = _$_.with_scope(__block, () => _$_.get(grid).map((row) => [...row]));
782
+
783
+ newGrid[0][0] = 99;
784
+ _$_.set(grid, newGrid);
785
+ };
786
+
787
+ var div_8 = _$_.sibling(button_12);
788
+
789
+ {
790
+ _$_.for(
791
+ div_8,
792
+ () => _$_.get(grid),
793
+ (__anchor, row, rowIndex) => {
794
+ var div_9 = root_33();
795
+
796
+ {
797
+ _$_.for(
798
+ div_9,
799
+ () => row,
800
+ (__anchor, cell, colIndex) => {
801
+ var span_6 = root_34();
802
+
803
+ {
804
+ var text_17 = _$_.child(span_6, true);
805
+
806
+ text_17.nodeValue = cell;
807
+ _$_.pop(span_6);
808
+ }
809
+
810
+ _$_.render(() => {
811
+ _$_.set_class(span_6, `cell-${_$_.get(rowIndex)}-${_$_.get(colIndex)}`, void 0, true);
812
+ });
813
+
814
+ _$_.append(__anchor, span_6);
815
+ },
816
+ 12
817
+ );
818
+
819
+ _$_.pop(div_9);
820
+
821
+ _$_.render(() => {
822
+ _$_.set_class(div_9, `row-${_$_.get(rowIndex)}`, void 0, true);
823
+ });
824
+ }
825
+
826
+ _$_.append(__anchor, div_9);
827
+ },
828
+ 12
829
+ );
830
+
831
+ _$_.pop(div_8);
832
+ }
833
+
834
+ _$_.next(2);
835
+ _$_.append(__anchor, fragment_8, true);
836
+ _$_.pop_component();
837
+ }
838
+
839
+ export function ForLoopDeeplyNested(__anchor, _, __block) {
840
+ _$_.push_component();
841
+
842
+ const departments = [
843
+ {
844
+ id: 'd1',
845
+ name: 'Engineering',
846
+
847
+ teams: [
848
+ { id: 't1', name: 'Frontend', members: ['Alice', 'Bob'] },
849
+ { id: 't2', name: 'Backend', members: ['Charlie'] }
850
+ ]
851
+ },
852
+
853
+ {
854
+ id: 'd2',
855
+ name: 'Design',
856
+ teams: [{ id: 't3', name: 'UX', members: ['Diana', 'Eve', 'Frank'] }]
857
+ }
858
+ ];
859
+
860
+ var div_10 = root_35();
861
+
862
+ {
863
+ _$_.for_keyed(
864
+ div_10,
865
+ () => departments,
866
+ (__anchor, pattern_4) => {
867
+ var div_11 = root_36();
868
+
869
+ {
870
+ var h2_1 = _$_.child(div_11);
871
+
872
+ {
873
+ var text_18 = _$_.child(h2_1, true);
874
+
875
+ _$_.pop(h2_1);
876
+ }
877
+
878
+ var node_1 = _$_.sibling(h2_1);
879
+
880
+ _$_.for_keyed(
881
+ node_1,
882
+ () => _$_.get(pattern_4).teams,
883
+ (__anchor, pattern_5) => {
884
+ var div_12 = root_37();
885
+
886
+ {
887
+ var h3_1 = _$_.child(div_12);
888
+
889
+ {
890
+ var text_19 = _$_.child(h3_1, true);
891
+
892
+ _$_.pop(h3_1);
893
+ }
894
+
895
+ var ul_12 = _$_.sibling(h3_1);
896
+
897
+ {
898
+ _$_.for(
899
+ ul_12,
900
+ () => _$_.get(pattern_5).members,
901
+ (__anchor, member) => {
902
+ var li_12 = root_38();
903
+
904
+ {
905
+ var text_20 = _$_.child(li_12, true);
906
+
907
+ text_20.nodeValue = member;
908
+ _$_.pop(li_12);
909
+ }
910
+
911
+ _$_.append(__anchor, li_12);
912
+ },
913
+ 4
914
+ );
915
+
916
+ _$_.pop(ul_12);
917
+ }
918
+ }
919
+
920
+ _$_.render(
921
+ (__prev) => {
922
+ var __a = _$_.get(pattern_5).name;
923
+
924
+ if (__prev.a !== __a) {
925
+ _$_.set_text(text_19, __prev.a = __a);
926
+ }
927
+
928
+ var __b = `team-${_$_.get(pattern_5).id}`;
929
+
930
+ if (__prev.b !== __b) {
931
+ _$_.set_class(div_12, __prev.b = __b, void 0, true);
932
+ }
933
+ },
934
+ { a: ' ', b: Symbol() }
935
+ );
936
+
937
+ _$_.append(__anchor, div_12);
938
+ },
939
+ 0,
940
+ (pattern_5) => _$_.get(pattern_5).id
941
+ );
942
+
943
+ _$_.pop(div_11);
944
+ }
945
+
946
+ _$_.render(
947
+ (__prev) => {
948
+ var __a = _$_.get(pattern_4).name;
949
+
950
+ if (__prev.a !== __a) {
951
+ _$_.set_text(text_18, __prev.a = __a);
952
+ }
953
+
954
+ var __b = `dept-${_$_.get(pattern_4).id}`;
955
+
956
+ if (__prev.b !== __b) {
957
+ _$_.set_class(div_11, __prev.b = __b, void 0, true);
958
+ }
959
+ },
960
+ { a: ' ', b: Symbol() }
961
+ );
962
+
963
+ _$_.append(__anchor, div_11);
964
+ },
965
+ 4,
966
+ (pattern_4) => _$_.get(pattern_4).id
967
+ );
968
+
969
+ _$_.pop(div_10);
970
+ }
971
+
972
+ _$_.append(__anchor, div_10);
973
+ _$_.pop_component();
974
+ }
975
+
976
+ export function ForLoopIndexUpdate(__anchor, _, __block) {
977
+ _$_.push_component();
978
+
979
+ let items = track(['First', 'Second', 'Third'], void 0, void 0, __block);
980
+ var fragment_9 = root_39();
981
+ var button_13 = _$_.first_child_frag(fragment_9);
982
+
983
+ button_13.__click = () => {
984
+ _$_.set(items, ['Zeroth', ..._$_.get(items)]);
985
+ };
986
+
987
+ var ul_13 = _$_.sibling(button_13);
988
+
989
+ {
990
+ _$_.for(
991
+ ul_13,
992
+ () => _$_.get(items),
993
+ (__anchor, item, i) => {
994
+ var li_13 = root_40();
995
+
996
+ {
997
+ var text_21 = _$_.child(li_13, true);
998
+
999
+ _$_.pop(li_13);
1000
+ }
1001
+
1002
+ _$_.render(
1003
+ (__prev) => {
1004
+ var __a = `[${_$_.get(i)}] ${item}`;
1005
+
1006
+ if (__prev.a !== __a) {
1007
+ _$_.set_text(text_21, __prev.a = __a);
1008
+ }
1009
+
1010
+ var __b = `item-${_$_.get(i)}`;
1011
+
1012
+ if (__prev.b !== __b) {
1013
+ _$_.set_class(li_13, __prev.b = __b, void 0, true);
1014
+ }
1015
+ },
1016
+ { a: ' ', b: Symbol() }
1017
+ );
1018
+
1019
+ _$_.append(__anchor, li_13);
1020
+ },
1021
+ 12
1022
+ );
1023
+
1024
+ _$_.pop(ul_13);
1025
+ }
1026
+
1027
+ _$_.next();
1028
+ _$_.append(__anchor, fragment_9, true);
1029
+ _$_.pop_component();
1030
+ }
1031
+
1032
+ export function KeyedForLoopWithIndex(__anchor, _, __block) {
1033
+ _$_.push_component();
1034
+
1035
+ let items = track(
1036
+ [
1037
+ { id: 'a', value: 'Alpha' },
1038
+ { id: 'b', value: 'Beta' },
1039
+ { id: 'c', value: 'Gamma' }
1040
+ ],
1041
+ void 0,
1042
+ void 0,
1043
+ __block
1044
+ );
1045
+
1046
+ var fragment_10 = root_41();
1047
+ var button_14 = _$_.first_child_frag(fragment_10);
1048
+
1049
+ button_14.__click = () => {
1050
+ _$_.set(items, [_$_.get(items)[1], _$_.get(items)[2], _$_.get(items)[0]]);
1051
+ };
1052
+
1053
+ var ul_14 = _$_.sibling(button_14);
1054
+
1055
+ {
1056
+ _$_.for_keyed(
1057
+ ul_14,
1058
+ () => _$_.get(items),
1059
+ (__anchor, pattern_6, i) => {
1060
+ var li_14 = root_42();
1061
+
1062
+ {
1063
+ var text_22 = _$_.child(li_14, true);
1064
+
1065
+ _$_.pop(li_14);
1066
+ }
1067
+
1068
+ _$_.render(
1069
+ (__prev) => {
1070
+ var __a = `[${_$_.get(i)}] ${_$_.get(pattern_6).id}: ${_$_.get(pattern_6).value}`;
1071
+
1072
+ if (__prev.a !== __a) {
1073
+ _$_.set_text(text_22, __prev.a = __a);
1074
+ }
1075
+
1076
+ var __b = _$_.get(i);
1077
+
1078
+ if (__prev.b !== __b) {
1079
+ _$_.set_attribute(li_14, 'data-index', __prev.b = __b);
1080
+ }
1081
+
1082
+ var __c = `item-${_$_.get(pattern_6).id}`;
1083
+
1084
+ if (__prev.c !== __c) {
1085
+ _$_.set_class(li_14, __prev.c = __c, void 0, true);
1086
+ }
1087
+ },
1088
+ { a: ' ', b: void 0, c: Symbol() }
1089
+ );
1090
+
1091
+ _$_.append(__anchor, li_14);
1092
+ },
1093
+ 12,
1094
+ (pattern_6, i) => _$_.get(pattern_6).id
1095
+ );
1096
+
1097
+ _$_.pop(ul_14);
1098
+ }
1099
+
1100
+ _$_.next();
1101
+ _$_.append(__anchor, fragment_10, true);
1102
+ _$_.pop_component();
1103
+ }
1104
+
1105
+ export function ForLoopWithSiblings(__anchor, _, __block) {
1106
+ _$_.push_component();
1107
+
1108
+ let items = track(['A', 'B'], void 0, void 0, __block);
1109
+ var fragment_11 = root_43();
1110
+ var div_13 = _$_.first_child_frag(fragment_11);
1111
+
1112
+ {
1113
+ var header_1 = _$_.child(div_13);
1114
+ var node_2 = _$_.sibling(header_1);
1115
+
1116
+ _$_.for(
1117
+ node_2,
1118
+ () => _$_.get(items),
1119
+ (__anchor, item) => {
1120
+ var div_14 = root_44();
1121
+
1122
+ _$_.set_class(div_14, `item-${item}`, void 0, true);
1123
+
1124
+ {
1125
+ var text_23 = _$_.child(div_14, true);
1126
+
1127
+ text_23.nodeValue = item;
1128
+ _$_.pop(div_14);
1129
+ }
1130
+
1131
+ _$_.append(__anchor, div_14);
1132
+ },
1133
+ 0
1134
+ );
1135
+
1136
+ _$_.pop(div_13);
1137
+ }
1138
+
1139
+ var button_15 = _$_.sibling(div_13);
1140
+
1141
+ button_15.__click = () => {
1142
+ _$_.set(items, [..._$_.get(items), 'C']);
1143
+ };
1144
+
1145
+ _$_.next();
1146
+ _$_.append(__anchor, fragment_11, true);
1147
+ _$_.pop_component();
1148
+ }
1149
+
1150
+ export function ForLoopItemState(__anchor, _, __block) {
1151
+ _$_.push_component();
1152
+
1153
+ const initialItems = [
1154
+ { id: 1, text: 'Todo 1' },
1155
+ { id: 2, text: 'Todo 2' },
1156
+ { id: 3, text: 'Todo 3' }
1157
+ ];
1158
+
1159
+ var div_15 = root_45();
1160
+
1161
+ {
1162
+ _$_.for_keyed(
1163
+ div_15,
1164
+ () => initialItems,
1165
+ (__anchor, pattern_7) => {
1166
+ var fragment_12 = root_46();
1167
+ var node_3 = _$_.first_child_frag(fragment_12);
1168
+
1169
+ TodoItem(
1170
+ node_3,
1171
+ {
1172
+ get id() {
1173
+ return _$_.get(pattern_7).id;
1174
+ },
1175
+
1176
+ get text() {
1177
+ return _$_.get(pattern_7).text;
1178
+ }
1179
+ },
1180
+ _$_.active_block
1181
+ );
1182
+
1183
+ _$_.append(__anchor, fragment_12);
1184
+ },
1185
+ 4,
1186
+ (pattern_7) => _$_.get(pattern_7).id
1187
+ );
1188
+
1189
+ _$_.pop(div_15);
1190
+ }
1191
+
1192
+ _$_.append(__anchor, div_15);
1193
+ _$_.pop_component();
1194
+ }
1195
+
1196
+ function TodoItem(__anchor, props, __block) {
1197
+ _$_.push_component();
1198
+
1199
+ let done = track(false, void 0, void 0, __block);
1200
+ var div_16 = root_47();
1201
+
1202
+ {
1203
+ var input_1 = _$_.child(div_16);
1204
+
1205
+ input_1.__change = (e) => {
1206
+ _$_.set(done, e.target.checked);
1207
+ };
1208
+
1209
+ var span_7 = _$_.sibling(input_1);
1210
+
1211
+ {
1212
+ var text_24 = _$_.child(span_7, true);
1213
+
1214
+ _$_.pop(span_7);
1215
+ }
1216
+ }
1217
+
1218
+ _$_.render(
1219
+ (__prev) => {
1220
+ var __a = _$_.get(done);
1221
+
1222
+ if (__prev.a !== __a) {
1223
+ _$_.set_checked(input_1, __prev.a = __a);
1224
+ }
1225
+
1226
+ var __b = props.text;
1227
+
1228
+ if (__prev.b !== __b) {
1229
+ _$_.set_text(text_24, __prev.b = __b);
1230
+ }
1231
+
1232
+ var __c = _$_.get(done) ? 'completed' : 'pending';
1233
+
1234
+ if (__prev.c !== __c) {
1235
+ _$_.set_class(span_7, __prev.c = __c, void 0, true);
1236
+ }
1237
+
1238
+ var __d = `todo-${props.id}`;
1239
+
1240
+ if (__prev.d !== __d) {
1241
+ _$_.set_class(div_16, __prev.d = __d, void 0, true);
1242
+ }
1243
+ },
1244
+ { a: void 0, b: ' ', c: Symbol(), d: Symbol() }
1245
+ );
1246
+
1247
+ _$_.append(__anchor, div_16);
1248
+ _$_.pop_component();
1249
+ }
1250
+
1251
+ export function ForLoopSingleItem(__anchor, _, __block) {
1252
+ _$_.push_component();
1253
+
1254
+ const items = ['Only'];
1255
+ var ul_15 = root_48();
1256
+
1257
+ {
1258
+ _$_.for(
1259
+ ul_15,
1260
+ () => items,
1261
+ (__anchor, item) => {
1262
+ var li_15 = root_49();
1263
+
1264
+ {
1265
+ var text_25 = _$_.child(li_15, true);
1266
+
1267
+ text_25.nodeValue = item;
1268
+ _$_.pop(li_15);
1269
+ }
1270
+
1271
+ _$_.append(__anchor, li_15);
1272
+ },
1273
+ 4
1274
+ );
1275
+
1276
+ _$_.pop(ul_15);
1277
+ }
1278
+
1279
+ _$_.append(__anchor, ul_15);
1280
+ _$_.pop_component();
1281
+ }
1282
+
1283
+ export function ForLoopAddAtBeginning(__anchor, _, __block) {
1284
+ _$_.push_component();
1285
+
1286
+ let items = track(['B', 'C'], void 0, void 0, __block);
1287
+ var fragment_13 = root_50();
1288
+ var button_16 = _$_.first_child_frag(fragment_13);
1289
+
1290
+ button_16.__click = () => {
1291
+ _$_.set(items, ['A', ..._$_.get(items)]);
1292
+ };
1293
+
1294
+ var ul_16 = _$_.sibling(button_16);
1295
+
1296
+ {
1297
+ _$_.for(
1298
+ ul_16,
1299
+ () => _$_.get(items),
1300
+ (__anchor, item) => {
1301
+ var li_16 = root_51();
1302
+
1303
+ _$_.set_class(li_16, `item-${item}`, void 0, true);
1304
+
1305
+ {
1306
+ var text_26 = _$_.child(li_16, true);
1307
+
1308
+ text_26.nodeValue = item;
1309
+ _$_.pop(li_16);
1310
+ }
1311
+
1312
+ _$_.append(__anchor, li_16);
1313
+ },
1314
+ 4
1315
+ );
1316
+
1317
+ _$_.pop(ul_16);
1318
+ }
1319
+
1320
+ _$_.next();
1321
+ _$_.append(__anchor, fragment_13, true);
1322
+ _$_.pop_component();
1323
+ }
1324
+
1325
+ export function ForLoopAddInMiddle(__anchor, _, __block) {
1326
+ _$_.push_component();
1327
+
1328
+ let items = track(['A', 'C'], void 0, void 0, __block);
1329
+ var fragment_14 = root_52();
1330
+ var button_17 = _$_.first_child_frag(fragment_14);
1331
+
1332
+ button_17.__click = () => {
1333
+ const copy = [..._$_.get(items)];
1334
+
1335
+ _$_.with_scope(__block, () => copy.splice(1, 0, 'B'));
1336
+ _$_.set(items, copy);
1337
+ };
1338
+
1339
+ var ul_17 = _$_.sibling(button_17);
1340
+
1341
+ {
1342
+ _$_.for(
1343
+ ul_17,
1344
+ () => _$_.get(items),
1345
+ (__anchor, item) => {
1346
+ var li_17 = root_53();
1347
+
1348
+ _$_.set_class(li_17, `item-${item}`, void 0, true);
1349
+
1350
+ {
1351
+ var text_27 = _$_.child(li_17, true);
1352
+
1353
+ text_27.nodeValue = item;
1354
+ _$_.pop(li_17);
1355
+ }
1356
+
1357
+ _$_.append(__anchor, li_17);
1358
+ },
1359
+ 4
1360
+ );
1361
+
1362
+ _$_.pop(ul_17);
1363
+ }
1364
+
1365
+ _$_.next();
1366
+ _$_.append(__anchor, fragment_14, true);
1367
+ _$_.pop_component();
1368
+ }
1369
+
1370
+ export function ForLoopRemoveFromMiddle(__anchor, _, __block) {
1371
+ _$_.push_component();
1372
+
1373
+ let items = track(['A', 'B', 'C'], void 0, void 0, __block);
1374
+ var fragment_15 = root_54();
1375
+ var button_18 = _$_.first_child_frag(fragment_15);
1376
+
1377
+ button_18.__click = () => {
1378
+ _$_.set(items, _$_.with_scope(__block, () => _$_.get(items).filter((item) => item !== 'B')));
1379
+ };
1380
+
1381
+ var ul_18 = _$_.sibling(button_18);
1382
+
1383
+ {
1384
+ _$_.for(
1385
+ ul_18,
1386
+ () => _$_.get(items),
1387
+ (__anchor, item) => {
1388
+ var li_18 = root_55();
1389
+
1390
+ _$_.set_class(li_18, `item-${item}`, void 0, true);
1391
+
1392
+ {
1393
+ var text_28 = _$_.child(li_18, true);
1394
+
1395
+ text_28.nodeValue = item;
1396
+ _$_.pop(li_18);
1397
+ }
1398
+
1399
+ _$_.append(__anchor, li_18);
1400
+ },
1401
+ 4
1402
+ );
1403
+
1404
+ _$_.pop(ul_18);
1405
+ }
1406
+
1407
+ _$_.next();
1408
+ _$_.append(__anchor, fragment_15, true);
1409
+ _$_.pop_component();
1410
+ }
1411
+
1412
+ export function ForLoopLargeList(__anchor, _, __block) {
1413
+ _$_.push_component();
1414
+
1415
+ const items = _$_.with_scope(__block, () => Array.from({ length: 50 }, (_, i) => `Item ${i + 1}`));
1416
+ var ul_19 = root_56();
1417
+
1418
+ {
1419
+ _$_.for(
1420
+ ul_19,
1421
+ () => items,
1422
+ (__anchor, item, i) => {
1423
+ var li_19 = root_57();
1424
+
1425
+ {
1426
+ var text_29 = _$_.child(li_19, true);
1427
+
1428
+ text_29.nodeValue = item;
1429
+ _$_.pop(li_19);
1430
+ }
1431
+
1432
+ _$_.render(() => {
1433
+ _$_.set_class(li_19, `item-${_$_.get(i)}`, void 0, true);
1434
+ });
1435
+
1436
+ _$_.append(__anchor, li_19);
1437
+ },
1438
+ 12
1439
+ );
1440
+
1441
+ _$_.pop(ul_19);
1442
+ }
1443
+
1444
+ _$_.append(__anchor, ul_19);
1445
+ _$_.pop_component();
1446
+ }
1447
+
1448
+ export function ForLoopSwap(__anchor, _, __block) {
1449
+ _$_.push_component();
1450
+
1451
+ let items = track(['A', 'B', 'C', 'D'], void 0, void 0, __block);
1452
+ var fragment_16 = root_58();
1453
+ var button_19 = _$_.first_child_frag(fragment_16);
1454
+
1455
+ button_19.__click = () => {
1456
+ const copy = [..._$_.get(items)];
1457
+
1458
+ [copy[0], copy[3]] = [copy[3], copy[0]];
1459
+ _$_.set(items, copy);
1460
+ };
1461
+
1462
+ var ul_20 = _$_.sibling(button_19);
1463
+
1464
+ {
1465
+ _$_.for(
1466
+ ul_20,
1467
+ () => _$_.get(items),
1468
+ (__anchor, item) => {
1469
+ var li_20 = root_59();
1470
+
1471
+ _$_.set_class(li_20, `item-${item}`, void 0, true);
1472
+
1473
+ {
1474
+ var text_30 = _$_.child(li_20, true);
1475
+
1476
+ text_30.nodeValue = item;
1477
+ _$_.pop(li_20);
1478
+ }
1479
+
1480
+ _$_.append(__anchor, li_20);
1481
+ },
1482
+ 4
1483
+ );
1484
+
1485
+ _$_.pop(ul_20);
1486
+ }
1487
+
1488
+ _$_.next();
1489
+ _$_.append(__anchor, fragment_16, true);
1490
+ _$_.pop_component();
1491
+ }
1492
+
1493
+ export function ForLoopReverse(__anchor, _, __block) {
1494
+ _$_.push_component();
1495
+
1496
+ let items = track(['A', 'B', 'C', 'D'], void 0, void 0, __block);
1497
+ var fragment_17 = root_60();
1498
+ var button_20 = _$_.first_child_frag(fragment_17);
1499
+
1500
+ button_20.__click = () => {
1501
+ _$_.set(items, _$_.with_scope(__block, () => [..._$_.get(items)].reverse()));
1502
+ };
1503
+
1504
+ var ul_21 = _$_.sibling(button_20);
1505
+
1506
+ {
1507
+ _$_.for(
1508
+ ul_21,
1509
+ () => _$_.get(items),
1510
+ (__anchor, item) => {
1511
+ var li_21 = root_61();
1512
+
1513
+ _$_.set_class(li_21, `item-${item}`, void 0, true);
1514
+
1515
+ {
1516
+ var text_31 = _$_.child(li_21, true);
1517
+
1518
+ text_31.nodeValue = item;
1519
+ _$_.pop(li_21);
1520
+ }
1521
+
1522
+ _$_.append(__anchor, li_21);
1523
+ },
1524
+ 4
1525
+ );
1526
+
1527
+ _$_.pop(ul_21);
1528
+ }
1529
+
1530
+ _$_.next();
1531
+ _$_.append(__anchor, fragment_17, true);
1532
+ _$_.pop_component();
1533
+ }
1534
+
1535
+ _$_.delegate(['click', 'change']);