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,423 +2,507 @@
2
2
  import * as _$_ from 'ripple/internal/client';
3
3
 
4
4
  var root = _$_.template(`<div class="resolved"><span class="value"> </span><button class="inc">inc</button></div>`, 0);
5
+
6
+ function render(__prev) {
7
+ var __a = __prev._data.value + ':' + __prev._count.value;
8
+
9
+ if (__prev.a !== __a) {
10
+ _$_.set_text(__prev._expression, __prev.a = __a);
11
+ }
12
+ }
13
+
14
+ function BasicContent_render(__anchor, __block) {
15
+ const data = _$_.track_async(() => controls.basic.promise, __block, '703e438e');
16
+ const count = _$_.track(0, __block, '928bce39');
17
+ var div = root();
18
+
19
+ {
20
+ var span = _$_.hydrating ? _$_.hydrate_child() : div.firstChild;
21
+
22
+ {
23
+ var expression = _$_.hydrating ? _$_.hydrate_text() : span.firstChild;
24
+ }
25
+
26
+ var button = _$_.hydrating ? _$_.hydrate_sibling() : span.nextSibling;
27
+
28
+ button.__click = () => count.value++;
29
+ }
30
+
31
+ _$_.render(render, { a: ' ', _data: data, _count: count, _expression: expression });
32
+ _$_.append(__anchor, div);
33
+ }
34
+
35
+ BasicContent[_$_.$r] = BasicContent_render;
36
+
5
37
  var root_3 = _$_.template(`<!><footer class="after-async">after-async</footer>`, 1, 2);
6
38
  var root_4 = _$_.template(`<p class="loading">loading...</p>`, 0);
7
39
  var root_2 = _$_.template(`<span class="before">before</span><!><span class="sibling-after">sibling-after</span>`, 1, 3);
8
40
  var root_1 = _$_.template(`<!>`, 1, 1);
41
+
42
+ function StreamPending_render(__anchor, __block) {
43
+ var fragment = root_1();
44
+ var node_2 = _$_.first_child_frag(fragment);
45
+
46
+ _$_.expression(node_2, () => _$_.tsrx_element((__anchor, __block) => {
47
+ var fragment_1 = root_2();
48
+ var span_1 = _$_.first_child_frag(fragment_1);
49
+ var node = _$_.hydrating ? _$_.hydrate_sibling() : span_1.nextSibling;
50
+
51
+ _$_.try(
52
+ node,
53
+ (__anchor) => {
54
+ var fragment_2 = root_3();
55
+ var node_1 = _$_.first_child_frag(fragment_2);
56
+
57
+ _$_.render_component(BasicContent, node_1, {});
58
+ _$_.next();
59
+ _$_.append(__anchor, fragment_2);
60
+ },
61
+ null,
62
+ (__anchor) => {
63
+ var p = root_4();
64
+
65
+ _$_.append(__anchor, p);
66
+ }
67
+ );
68
+
69
+ _$_.next();
70
+ _$_.append(__anchor, fragment_1);
71
+ }));
72
+
73
+ _$_.append(__anchor, fragment);
74
+ }
75
+
76
+ StreamPending[_$_.$r] = StreamPending_render;
77
+
9
78
  var root_5 = _$_.template(`<p class="resolved"> </p>`, 0);
79
+
80
+ function CatchOnlyContent_render(__anchor, __block) {
81
+ const data = _$_.track_async(() => controls.catchOnly.promise, __block, '50f939c6');
82
+ var p_1 = root_5();
83
+
84
+ {
85
+ var expression_1 = _$_.hydrating ? _$_.hydrate_child() : p_1.firstChild;
86
+
87
+ _$_.expression(expression_1, () => data.value);
88
+ _$_.hydrating && _$_.pop(p_1);
89
+ }
90
+
91
+ _$_.append(__anchor, p_1);
92
+ }
93
+
94
+ CatchOnlyContent[_$_.$r] = CatchOnlyContent_render;
95
+
10
96
  var root_8 = _$_.template(`<em class="caught"> </em>`, 0);
11
97
  var root_7 = _$_.template(`<span class="before">before</span><!>`, 1, 2);
12
98
  var root_6 = _$_.template(`<!>`, 1, 1);
13
- var root_9 = _$_.template(`<p class="resolved"> </p>`, 0);
14
- var root_10 = _$_.template(`<em class="caught"> </em>`, 0);
15
- var root_11 = _$_.template(`<p class="loading">loading...</p>`, 0);
16
- var root_12 = _$_.template(`<p class="resolved"> </p>`, 0);
17
- var root_13 = _$_.template(`<p class="loading">loading...</p>`, 0);
18
- var root_14 = _$_.template(`<section class="root-catch"> </section>`, 0);
19
- var root_15 = _$_.template(`<p class="root-pending">root-loading</p>`, 0);
20
- var root_17 = _$_.template(`<p class="head-content"> </p>`, 0);
21
- var root_16 = _$_.template(`<!>`, 1, 1);
22
- var root_18 = _$_.template(`<p class="loading">loading...</p>`, 0);
23
- var root_19 = _$_.template(`<p class="root-async"> </p>`, 0);
24
- var root_20 = _$_.template(`<p class="outer"> </p>`, 0);
25
- var root_21 = _$_.template(`<p class="inner"> </p>`, 0);
26
- var root_23 = _$_.template(`<p class="inner-loading">inner-loading</p>`, 0);
27
- var root_22 = _$_.template(`<!><!>`, 1, 2);
28
- var root_24 = _$_.template(`<p class="outer-loading">outer-loading</p>`, 0);
29
99
 
30
- import { track, trackAsync } from 'ripple';
100
+ function StreamCatchOnly_render(__anchor, __block) {
101
+ var fragment_3 = root_6();
102
+ var node_4 = _$_.first_child_frag(fragment_3);
31
103
 
32
- function make() {
33
- let resolve = () => {};
34
- let reject = () => {};
104
+ _$_.expression(node_4, () => _$_.tsrx_element((__anchor, __block) => {
105
+ var fragment_4 = root_7();
106
+ var span_2 = _$_.first_child_frag(fragment_4);
107
+ var node_3 = _$_.hydrating ? _$_.hydrate_sibling() : span_2.nextSibling;
35
108
 
36
- const promise = new Promise((res, rej) => {
37
- resolve = res;
38
- reject = rej;
39
- });
109
+ _$_.try(
110
+ node_3,
111
+ (__anchor) => {
112
+ _$_.render_component(CatchOnlyContent, __anchor, {});
113
+ },
114
+ (__anchor, e) => {
115
+ var em = root_8();
40
116
 
41
- return { promise, resolve, reject };
117
+ {
118
+ var expression_2 = _$_.hydrating ? _$_.hydrate_child() : em.firstChild;
119
+
120
+ _$_.expression(expression_2, () => e.message);
121
+ _$_.hydrating && _$_.pop(em);
122
+ }
123
+
124
+ _$_.append(__anchor, em);
125
+ }
126
+ );
127
+
128
+ _$_.append(__anchor, fragment_4);
129
+ }));
130
+
131
+ _$_.append(__anchor, fragment_3);
42
132
  }
43
133
 
44
- export const controls = {};
134
+ StreamCatchOnly[_$_.$r] = StreamCatchOnly_render;
45
135
 
46
- export function resetControls() {
47
- var __block = _$_.scope();
136
+ var root_9 = _$_.template(`<p class="resolved"> </p>`, 0);
48
137
 
49
- controls.basic = make();
50
- controls.catchOnly = make();
51
- controls.rejects = make();
52
- controls.noCatch = make();
53
- controls.outer = make();
54
- controls.inner = make();
55
- controls.rootDirect = make();
56
- controls.head = make();
138
+ function RejectContent_render(__anchor, __block) {
139
+ const data = _$_.track_async(() => controls.rejects.promise, __block, '96452a54');
140
+ var p_2 = root_9();
141
+
142
+ {
143
+ var expression_3 = _$_.hydrating ? _$_.hydrate_child() : p_2.firstChild;
144
+
145
+ _$_.expression(expression_3, () => data.value);
146
+ _$_.hydrating && _$_.pop(p_2);
147
+ }
148
+
149
+ _$_.append(__anchor, p_2);
57
150
  }
58
151
 
59
- resetControls();
152
+ RejectContent[_$_.$r] = RejectContent_render;
60
153
 
61
- function BasicContent() {
62
- return _$_.tsrx_element((__anchor, __block) => {
63
- let lazy = _$_.track_async(() => controls.basic.promise, __block, '703e438e');
64
- let lazy_1 = _$_.track(0, __block, '928bce39');
65
- var div = root();
154
+ var root_10 = _$_.template(`<em class="caught"> </em>`, 0);
155
+ var root_11 = _$_.template(`<p class="loading">loading...</p>`, 0);
66
156
 
67
- {
68
- var span = _$_.child(div);
157
+ function StreamRejects_render(__anchor, __block) {
158
+ _$_.try(
159
+ __anchor,
160
+ (__anchor) => {
161
+ _$_.render_component(RejectContent, __anchor, {});
162
+ },
163
+ (__anchor, e) => {
164
+ var em_1 = root_10();
69
165
 
70
166
  {
71
- var expression = _$_.child(span, true);
167
+ var expression_4 = _$_.hydrating ? _$_.hydrate_child() : em_1.firstChild;
72
168
 
73
- _$_.pop(span);
169
+ _$_.expression(expression_4, () => e.message);
170
+ _$_.hydrating && _$_.pop(em_1);
74
171
  }
75
172
 
76
- var button = _$_.sibling(span);
173
+ _$_.append(__anchor, em_1);
174
+ },
175
+ (__anchor) => {
176
+ var p_3 = root_11();
77
177
 
78
- button.__click = () => _$_.update(lazy_1);
79
- }
178
+ _$_.append(__anchor, p_3);
179
+ },
180
+ true
181
+ );
182
+ }
80
183
 
81
- _$_.render(() => {
82
- _$_.set_text(expression, lazy.value + ':' + lazy_1.value);
83
- });
184
+ StreamRejects[_$_.$r] = StreamRejects_render;
84
185
 
85
- _$_.append(__anchor, div);
86
- });
186
+ var root_12 = _$_.template(`<p class="resolved"> </p>`, 0);
187
+
188
+ function NoCatchContent_render(__anchor, __block) {
189
+ const data = _$_.track_async(() => controls.noCatch.promise, __block, '6baa716b');
190
+ var p_4 = root_12();
191
+
192
+ {
193
+ var expression_5 = _$_.hydrating ? _$_.hydrate_child() : p_4.firstChild;
194
+
195
+ _$_.expression(expression_5, () => data.value);
196
+ _$_.hydrating && _$_.pop(p_4);
197
+ }
198
+
199
+ _$_.append(__anchor, p_4);
87
200
  }
88
201
 
89
- export function StreamPending() {
90
- return _$_.tsrx_element((__anchor, __block) => {
91
- var fragment = root_1();
92
- var node_2 = _$_.first_child_frag(fragment);
202
+ NoCatchContent[_$_.$r] = NoCatchContent_render;
203
+
204
+ var root_13 = _$_.template(`<p class="loading">loading...</p>`, 0);
93
205
 
94
- _$_.expression(node_2, () => _$_.tsrx_element((__anchor, __block) => {
95
- var fragment_1 = root_2();
96
- var span_1 = _$_.first_child_frag(fragment_1);
97
- var node = _$_.sibling(span_1);
206
+ function StreamNoCatch_render(__anchor, __block) {
207
+ _$_.try(
208
+ __anchor,
209
+ (__anchor) => {
210
+ _$_.render_component(NoCatchContent, __anchor, {});
211
+ },
212
+ null,
213
+ (__anchor) => {
214
+ var p_5 = root_13();
215
+
216
+ _$_.append(__anchor, p_5);
217
+ },
218
+ true
219
+ );
220
+ }
98
221
 
99
- _$_.try(
100
- node,
101
- (__anchor) => {
102
- var fragment_2 = root_3();
103
- var node_1 = _$_.first_child_frag(fragment_2);
222
+ StreamNoCatch[_$_.$r] = StreamNoCatch_render;
104
223
 
105
- _$_.render_component(BasicContent, node_1, {});
106
- _$_.append(__anchor, fragment_2);
107
- },
108
- null,
109
- (__anchor) => {
110
- var p = root_4();
224
+ var root_14 = _$_.template(`<section class="root-catch"> </section>`, 0);
111
225
 
112
- _$_.append(__anchor, p);
113
- }
114
- );
226
+ function RootCatch_render(__anchor, __block, { error, reset }) {
227
+ var section = root_14();
115
228
 
116
- _$_.append(__anchor, fragment_1);
117
- }));
229
+ _$_.event('Click', section, reset);
118
230
 
119
- _$_.append(__anchor, fragment);
120
- });
231
+ {
232
+ var expression_6 = _$_.hydrating ? _$_.hydrate_child() : section.firstChild;
233
+
234
+ _$_.expression(expression_6, () => error.message);
235
+ _$_.hydrating && _$_.pop(section);
236
+ }
237
+
238
+ _$_.append(__anchor, section);
121
239
  }
122
240
 
123
- function CatchOnlyContent() {
124
- return _$_.tsrx_element((__anchor, __block) => {
125
- let lazy_2 = _$_.track_async(() => controls.catchOnly.promise, __block, '50f939c6');
126
- var p_1 = root_5();
241
+ RootCatch[_$_.$r] = RootCatch_render;
127
242
 
128
- {
129
- var expression_1 = _$_.child(p_1);
243
+ var root_15 = _$_.template(`<p class="root-pending">root-loading</p>`, 0);
130
244
 
131
- _$_.expression(expression_1, () => lazy_2.value);
132
- _$_.pop(p_1);
133
- }
245
+ function RootPending_render(__anchor, __block) {
246
+ var p_6 = root_15();
134
247
 
135
- _$_.append(__anchor, p_1);
136
- });
248
+ _$_.append(__anchor, p_6);
137
249
  }
138
250
 
139
- export function StreamCatchOnly() {
140
- return _$_.tsrx_element((__anchor, __block) => {
141
- var fragment_3 = root_6();
142
- var node_4 = _$_.first_child_frag(fragment_3);
251
+ RootPending[_$_.$r] = RootPending_render;
143
252
 
144
- _$_.expression(node_4, () => _$_.tsrx_element((__anchor, __block) => {
145
- var fragment_4 = root_7();
146
- var span_2 = _$_.first_child_frag(fragment_4);
147
- var node_3 = _$_.sibling(span_2);
253
+ var root_17 = _$_.template(`<p class="head-content"> </p>`, 0);
254
+ var root_16 = _$_.template(`<!>`, 1, 1);
148
255
 
149
- _$_.try(
150
- node_3,
151
- (__anchor) => {
152
- _$_.render_component(CatchOnlyContent, __anchor, {});
153
- },
154
- (__anchor, e) => {
155
- var em = root_8();
256
+ function HeadContent_render(__anchor, __block) {
257
+ const data = _$_.track_async(() => controls.head.promise, __block, '9cd3c3cd');
258
+ var fragment_5 = root_16();
259
+ var node_5 = _$_.first_child_frag(fragment_5);
156
260
 
157
- {
158
- var expression_2 = _$_.child(em);
261
+ _$_.expression(node_5, () => _$_.tsrx_element((__anchor, __block) => {
262
+ {
263
+ var consequent = (__anchor) => {
264
+ var p_7 = root_17();
159
265
 
160
- _$_.expression(expression_2, () => e.message);
161
- _$_.pop(em);
162
- }
266
+ {
267
+ var expression_7 = _$_.hydrating ? _$_.hydrate_child() : p_7.firstChild;
163
268
 
164
- _$_.append(__anchor, em);
269
+ _$_.expression(expression_7, () => data.value);
270
+ _$_.hydrating && _$_.pop(p_7);
165
271
  }
166
- );
167
272
 
168
- _$_.append(__anchor, fragment_4);
169
- }));
273
+ _$_.head('1ad4258e', (__anchor) => {
274
+ _$_.render(() => {
275
+ _$_.document.title = 'title:' + data.value;
276
+ });
277
+ });
170
278
 
171
- _$_.append(__anchor, fragment_3);
172
- });
173
- }
279
+ _$_.append(__anchor, p_7);
280
+ };
174
281
 
175
- function RejectContent() {
176
- return _$_.tsrx_element((__anchor, __block) => {
177
- let lazy_3 = _$_.track_async(() => controls.rejects.promise, __block, '96452a54');
178
- var p_2 = root_9();
282
+ _$_.if(
283
+ __anchor,
284
+ () => {
285
+ if (data.value) return consequent;
286
+ },
287
+ true
288
+ );
289
+ }
290
+ }));
179
291
 
180
- {
181
- var expression_3 = _$_.child(p_2);
292
+ _$_.append(__anchor, fragment_5);
293
+ }
182
294
 
183
- _$_.expression(expression_3, () => lazy_3.value);
184
- _$_.pop(p_2);
185
- }
295
+ HeadContent[_$_.$r] = HeadContent_render;
186
296
 
187
- _$_.append(__anchor, p_2);
188
- });
297
+ var root_18 = _$_.template(`<p class="loading">loading...</p>`, 0);
298
+
299
+ function StreamHead_render(__anchor, __block) {
300
+ _$_.try(
301
+ __anchor,
302
+ (__anchor) => {
303
+ _$_.render_component(HeadContent, __anchor, {});
304
+ },
305
+ null,
306
+ (__anchor) => {
307
+ var p_8 = root_18();
308
+
309
+ _$_.append(__anchor, p_8);
310
+ },
311
+ true
312
+ );
189
313
  }
190
314
 
191
- export function StreamRejects() {
192
- return _$_.tsrx_element((__anchor, __block) => {
193
- _$_.try(
194
- __anchor,
195
- (__anchor) => {
196
- _$_.render_component(RejectContent, __anchor, {});
197
- },
198
- (__anchor, e) => {
199
- var em_1 = root_10();
315
+ StreamHead[_$_.$r] = StreamHead_render;
200
316
 
201
- {
202
- var expression_4 = _$_.child(em_1);
317
+ var root_19 = _$_.template(`<p class="root-async"> </p>`, 0);
203
318
 
204
- _$_.expression(expression_4, () => e.message);
205
- _$_.pop(em_1);
206
- }
319
+ function StreamRootDirect_render(__anchor, __block) {
320
+ const data = _$_.track_async(() => controls.rootDirect.promise, __block, 'bc9e61da');
321
+ var p_9 = root_19();
207
322
 
208
- _$_.append(__anchor, em_1);
209
- },
210
- (__anchor) => {
211
- var p_3 = root_11();
323
+ {
324
+ var expression_8 = _$_.hydrating ? _$_.hydrate_child() : p_9.firstChild;
212
325
 
213
- _$_.append(__anchor, p_3);
214
- },
215
- true
216
- );
217
- });
326
+ _$_.expression(expression_8, () => data.value);
327
+ _$_.hydrating && _$_.pop(p_9);
328
+ }
329
+
330
+ _$_.append(__anchor, p_9);
218
331
  }
219
332
 
220
- function NoCatchContent() {
221
- return _$_.tsrx_element((__anchor, __block) => {
222
- let lazy_4 = _$_.track_async(() => controls.noCatch.promise, __block, '6baa716b');
223
- var p_4 = root_12();
333
+ StreamRootDirect[_$_.$r] = StreamRootDirect_render;
224
334
 
225
- {
226
- var expression_5 = _$_.child(p_4);
335
+ var root_20 = _$_.template(`<p class="outer"> </p>`, 0);
227
336
 
228
- _$_.expression(expression_5, () => lazy_4.value);
229
- _$_.pop(p_4);
230
- }
337
+ function OuterContent_render(__anchor, __block) {
338
+ const data = _$_.track_async(() => controls.outer.promise, __block, '35931cce');
339
+ var p_10 = root_20();
231
340
 
232
- _$_.append(__anchor, p_4);
233
- });
234
- }
341
+ {
342
+ var expression_9 = _$_.hydrating ? _$_.hydrate_child() : p_10.firstChild;
235
343
 
236
- export function StreamNoCatch() {
237
- return _$_.tsrx_element((__anchor, __block) => {
238
- _$_.try(
239
- __anchor,
240
- (__anchor) => {
241
- _$_.render_component(NoCatchContent, __anchor, {});
242
- },
243
- null,
244
- (__anchor) => {
245
- var p_5 = root_13();
344
+ _$_.expression(expression_9, () => data.value);
345
+ _$_.hydrating && _$_.pop(p_10);
346
+ }
246
347
 
247
- _$_.append(__anchor, p_5);
248
- },
249
- true
250
- );
251
- });
348
+ _$_.append(__anchor, p_10);
252
349
  }
253
350
 
254
- export function RootCatch({ error, reset }) {
255
- return _$_.tsrx_element((__anchor, __block) => {
256
- var section = root_14();
257
-
258
- _$_.event('Click', section, reset);
351
+ OuterContent[_$_.$r] = OuterContent_render;
259
352
 
260
- {
261
- var expression_6 = _$_.child(section);
353
+ var root_21 = _$_.template(`<p class="inner"> </p>`, 0);
262
354
 
263
- _$_.expression(expression_6, () => error.message);
264
- _$_.pop(section);
265
- }
355
+ function InnerContent_render(__anchor, __block) {
356
+ const data = _$_.track_async(() => controls.inner.promise, __block, '6c7d38ed');
357
+ var p_11 = root_21();
266
358
 
267
- _$_.append(__anchor, section);
268
- });
269
- }
359
+ {
360
+ var expression_10 = _$_.hydrating ? _$_.hydrate_child() : p_11.firstChild;
270
361
 
271
- export function RootPending() {
272
- return _$_.tsrx_element((__anchor, __block) => {
273
- var p_6 = root_15();
362
+ _$_.expression(expression_10, () => data.value);
363
+ _$_.hydrating && _$_.pop(p_11);
364
+ }
274
365
 
275
- _$_.append(__anchor, p_6);
276
- });
366
+ _$_.append(__anchor, p_11);
277
367
  }
278
368
 
279
- function HeadContent() {
280
- return _$_.tsrx_element((__anchor, __block) => {
281
- let lazy_5 = _$_.track_async(() => controls.head.promise, __block, '9cd3c3cd');
282
- var fragment_5 = root_16();
283
- var node_5 = _$_.first_child_frag(fragment_5);
369
+ InnerContent[_$_.$r] = InnerContent_render;
284
370
 
285
- _$_.expression(node_5, () => _$_.tsrx_element((__anchor, __block) => {
286
- {
287
- var consequent = (__anchor) => {
288
- var p_7 = root_17();
371
+ var root_23 = _$_.template(`<p class="inner-loading">inner-loading</p>`, 0);
372
+ var root_22 = _$_.template(`<!><!>`, 1, 2);
373
+ var root_24 = _$_.template(`<p class="outer-loading">outer-loading</p>`, 0);
289
374
 
290
- {
291
- var expression_7 = _$_.child(p_7);
375
+ function StreamNested_render(__anchor, __block) {
376
+ _$_.try(
377
+ __anchor,
378
+ (__anchor) => {
379
+ var fragment_6 = root_22();
380
+ var node_6 = _$_.first_child_frag(fragment_6);
292
381
 
293
- _$_.expression(expression_7, () => lazy_5.value);
294
- _$_.pop(p_7);
295
- }
382
+ _$_.render_component(OuterContent, node_6, {});
296
383
 
297
- _$_.head('814bacd9', (__anchor) => {
298
- _$_.render(() => {
299
- _$_.document.title = 'title:' + lazy_5.value;
300
- });
301
- });
384
+ var node_7 = _$_.hydrating ? _$_.hydrate_sibling() : node_6.nextSibling;
302
385
 
303
- _$_.append(__anchor, p_7);
304
- };
386
+ _$_.try(
387
+ node_7,
388
+ (__anchor) => {
389
+ _$_.render_component(InnerContent, __anchor, {});
390
+ },
391
+ null,
392
+ (__anchor) => {
393
+ var p_12 = root_23();
305
394
 
306
- _$_.if(
307
- __anchor,
308
- (__render) => {
309
- if (lazy_5.value) __render(consequent);
310
- },
311
- true
312
- );
313
- }
314
- }));
395
+ _$_.append(__anchor, p_12);
396
+ }
397
+ );
315
398
 
316
- _$_.append(__anchor, fragment_5);
317
- });
399
+ _$_.append(__anchor, fragment_6);
400
+ },
401
+ null,
402
+ (__anchor) => {
403
+ var p_13 = root_24();
404
+
405
+ _$_.append(__anchor, p_13);
406
+ },
407
+ true
408
+ );
318
409
  }
319
410
 
320
- export function StreamHead() {
321
- return _$_.tsrx_element((__anchor, __block) => {
322
- _$_.try(
323
- __anchor,
324
- (__anchor) => {
325
- _$_.render_component(HeadContent, __anchor, {});
326
- },
327
- null,
328
- (__anchor) => {
329
- var p_8 = root_18();
411
+ StreamNested[_$_.$r] = StreamNested_render;
330
412
 
331
- _$_.append(__anchor, p_8);
332
- },
333
- true
334
- );
413
+ import { track, trackAsync } from 'ripple';
414
+
415
+ function make() {
416
+ let resolve = () => {};
417
+ let reject = () => {};
418
+
419
+ const promise = new Promise((res, rej) => {
420
+ resolve = res;
421
+ reject = rej;
335
422
  });
423
+
424
+ return { promise, resolve, reject };
336
425
  }
337
426
 
338
- export function StreamRootDirect() {
339
- return _$_.tsrx_element((__anchor, __block) => {
340
- let lazy_6 = _$_.track_async(() => controls.rootDirect.promise, __block, 'bc9e61da');
341
- var p_9 = root_19();
427
+ export const controls = {};
342
428
 
343
- {
344
- var expression_8 = _$_.child(p_9);
429
+ export function resetControls() {
430
+ var __block = _$_.scope();
345
431
 
346
- _$_.expression(expression_8, () => lazy_6.value);
347
- _$_.pop(p_9);
348
- }
432
+ controls.basic = make();
433
+ controls.catchOnly = make();
434
+ controls.rejects = make();
435
+ controls.noCatch = make();
436
+ controls.outer = make();
437
+ controls.inner = make();
438
+ controls.rootDirect = make();
439
+ controls.head = make();
440
+ }
349
441
 
350
- _$_.append(__anchor, p_9);
351
- });
442
+ resetControls();
443
+
444
+ function BasicContent() {
445
+ return _$_.tsrx_element(BasicContent_render);
352
446
  }
353
447
 
354
- function OuterContent() {
355
- return _$_.tsrx_element((__anchor, __block) => {
356
- let lazy_7 = _$_.track_async(() => controls.outer.promise, __block, '35931cce');
357
- var p_10 = root_20();
448
+ export function StreamPending() {
449
+ return _$_.tsrx_element(StreamPending_render);
450
+ }
358
451
 
359
- {
360
- var expression_9 = _$_.child(p_10);
452
+ function CatchOnlyContent() {
453
+ return _$_.tsrx_element(CatchOnlyContent_render);
454
+ }
361
455
 
362
- _$_.expression(expression_9, () => lazy_7.value);
363
- _$_.pop(p_10);
364
- }
456
+ export function StreamCatchOnly() {
457
+ return _$_.tsrx_element(StreamCatchOnly_render);
458
+ }
365
459
 
366
- _$_.append(__anchor, p_10);
367
- });
460
+ function RejectContent() {
461
+ return _$_.tsrx_element(RejectContent_render);
368
462
  }
369
463
 
370
- function InnerContent() {
371
- return _$_.tsrx_element((__anchor, __block) => {
372
- let lazy_8 = _$_.track_async(() => controls.inner.promise, __block, '6c7d38ed');
373
- var p_11 = root_21();
464
+ export function StreamRejects() {
465
+ return _$_.tsrx_element(StreamRejects_render);
466
+ }
374
467
 
375
- {
376
- var expression_10 = _$_.child(p_11);
468
+ function NoCatchContent() {
469
+ return _$_.tsrx_element(NoCatchContent_render);
470
+ }
377
471
 
378
- _$_.expression(expression_10, () => lazy_8.value);
379
- _$_.pop(p_11);
380
- }
472
+ export function StreamNoCatch() {
473
+ return _$_.tsrx_element(StreamNoCatch_render);
474
+ }
381
475
 
382
- _$_.append(__anchor, p_11);
383
- });
476
+ export function RootCatch(__props) {
477
+ return _$_.tsrx_element(RootCatch_render, __props);
384
478
  }
385
479
 
386
- export function StreamNested() {
387
- return _$_.tsrx_element((__anchor, __block) => {
388
- _$_.try(
389
- __anchor,
390
- (__anchor) => {
391
- var fragment_6 = root_22();
392
- var node_6 = _$_.first_child_frag(fragment_6);
480
+ export function RootPending() {
481
+ return _$_.tsrx_element(RootPending_render);
482
+ }
393
483
 
394
- _$_.render_component(OuterContent, node_6, {});
484
+ function HeadContent() {
485
+ return _$_.tsrx_element(HeadContent_render);
486
+ }
395
487
 
396
- var node_7 = _$_.sibling(node_6);
488
+ export function StreamHead() {
489
+ return _$_.tsrx_element(StreamHead_render);
490
+ }
397
491
 
398
- _$_.try(
399
- node_7,
400
- (__anchor) => {
401
- _$_.render_component(InnerContent, __anchor, {});
402
- },
403
- null,
404
- (__anchor) => {
405
- var p_12 = root_23();
492
+ export function StreamRootDirect() {
493
+ return _$_.tsrx_element(StreamRootDirect_render);
494
+ }
406
495
 
407
- _$_.append(__anchor, p_12);
408
- }
409
- );
496
+ function OuterContent() {
497
+ return _$_.tsrx_element(OuterContent_render);
498
+ }
410
499
 
411
- _$_.append(__anchor, fragment_6);
412
- },
413
- null,
414
- (__anchor) => {
415
- var p_13 = root_24();
500
+ function InnerContent() {
501
+ return _$_.tsrx_element(InnerContent_render);
502
+ }
416
503
 
417
- _$_.append(__anchor, p_13);
418
- },
419
- true
420
- );
421
- });
504
+ export function StreamNested() {
505
+ return _$_.tsrx_element(StreamNested_render);
422
506
  }
423
507
 
424
508
  _$_.delegate(['click']);