solid-js 1.8.0-beta.2 → 1.8.1
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.
- package/dist/dev.js +532 -297
- package/dist/server.js +168 -74
- package/dist/solid.js +459 -255
- package/h/dist/h.js +34 -8
- package/h/jsx-runtime/dist/jsx.js +1 -1
- package/h/jsx-runtime/types/index.d.ts +11 -8
- package/h/types/hyperscript.d.ts +11 -11
- package/html/dist/html.js +216 -94
- package/html/types/lit.d.ts +45 -31
- package/package.json +1 -1
- package/store/dist/dev.js +114 -42
- package/store/dist/server.js +19 -8
- package/store/dist/store.js +105 -39
- package/store/types/index.d.ts +21 -7
- package/store/types/modifiers.d.ts +6 -3
- package/store/types/mutable.d.ts +5 -2
- package/store/types/server.d.ts +12 -4
- package/store/types/store.d.ts +218 -61
- package/types/index.d.ts +72 -9
- package/types/reactive/array.d.ts +12 -4
- package/types/reactive/observable.d.ts +25 -17
- package/types/reactive/scheduler.d.ts +9 -6
- package/types/reactive/signal.d.ts +228 -140
- package/types/render/Suspense.d.ts +5 -5
- package/types/render/component.d.ts +62 -31
- package/types/render/flow.d.ts +43 -31
- package/types/render/hydration.d.ts +13 -13
- package/types/server/index.d.ts +56 -2
- package/types/server/reactive.d.ts +67 -40
- package/types/server/rendering.d.ts +166 -95
- package/universal/dist/dev.js +28 -12
- package/universal/dist/universal.js +28 -12
- package/universal/types/index.d.ts +3 -1
- package/universal/types/universal.d.ts +0 -1
- package/web/dist/dev.cjs +2 -2
- package/web/dist/dev.js +617 -81
- package/web/dist/server.js +175 -92
- package/web/dist/web.cjs +1 -6
- package/web/dist/web.js +611 -85
- package/web/types/client.d.ts +2 -2
- package/web/types/core.d.ts +10 -1
- package/web/types/index.d.ts +27 -10
- package/web/types/server-mock.d.ts +47 -32
package/web/dist/dev.js
CHANGED
|
@@ -1,14 +1,82 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import {
|
|
2
|
+
createRoot,
|
|
3
|
+
sharedConfig,
|
|
4
|
+
createRenderEffect,
|
|
5
|
+
untrack,
|
|
6
|
+
enableHydration,
|
|
7
|
+
getOwner,
|
|
8
|
+
createEffect,
|
|
9
|
+
runWithOwner,
|
|
10
|
+
createMemo,
|
|
11
|
+
createSignal,
|
|
12
|
+
onCleanup,
|
|
13
|
+
splitProps,
|
|
14
|
+
$DEVCOMP
|
|
15
|
+
} from "solid-js";
|
|
16
|
+
export {
|
|
17
|
+
ErrorBoundary,
|
|
18
|
+
For,
|
|
19
|
+
Index,
|
|
20
|
+
Match,
|
|
21
|
+
Show,
|
|
22
|
+
Suspense,
|
|
23
|
+
SuspenseList,
|
|
24
|
+
Switch,
|
|
25
|
+
createComponent,
|
|
26
|
+
createRenderEffect as effect,
|
|
27
|
+
getOwner,
|
|
28
|
+
createMemo as memo,
|
|
29
|
+
mergeProps,
|
|
30
|
+
untrack
|
|
31
|
+
} from "solid-js";
|
|
3
32
|
|
|
4
|
-
const booleans = [
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
33
|
+
const booleans = [
|
|
34
|
+
"allowfullscreen",
|
|
35
|
+
"async",
|
|
36
|
+
"autofocus",
|
|
37
|
+
"autoplay",
|
|
38
|
+
"checked",
|
|
39
|
+
"controls",
|
|
40
|
+
"default",
|
|
41
|
+
"disabled",
|
|
42
|
+
"formnovalidate",
|
|
43
|
+
"hidden",
|
|
44
|
+
"indeterminate",
|
|
45
|
+
"ismap",
|
|
46
|
+
"loop",
|
|
47
|
+
"multiple",
|
|
48
|
+
"muted",
|
|
49
|
+
"nomodule",
|
|
50
|
+
"novalidate",
|
|
51
|
+
"open",
|
|
52
|
+
"playsinline",
|
|
53
|
+
"readonly",
|
|
54
|
+
"required",
|
|
55
|
+
"reversed",
|
|
56
|
+
"seamless",
|
|
57
|
+
"selected"
|
|
58
|
+
];
|
|
59
|
+
const Properties = /*#__PURE__*/ new Set([
|
|
60
|
+
"className",
|
|
61
|
+
"value",
|
|
62
|
+
"readOnly",
|
|
63
|
+
"formNoValidate",
|
|
64
|
+
"isMap",
|
|
65
|
+
"noModule",
|
|
66
|
+
"playsInline",
|
|
67
|
+
...booleans
|
|
68
|
+
]);
|
|
69
|
+
const ChildProperties = /*#__PURE__*/ new Set([
|
|
70
|
+
"innerHTML",
|
|
71
|
+
"textContent",
|
|
72
|
+
"innerText",
|
|
73
|
+
"children"
|
|
74
|
+
]);
|
|
75
|
+
const Aliases = /*#__PURE__*/ Object.assign(Object.create(null), {
|
|
8
76
|
className: "class",
|
|
9
77
|
htmlFor: "for"
|
|
10
78
|
});
|
|
11
|
-
const PropAliases = /*#__PURE__*/Object.assign(Object.create(null), {
|
|
79
|
+
const PropAliases = /*#__PURE__*/ Object.assign(Object.create(null), {
|
|
12
80
|
class: "className",
|
|
13
81
|
formnovalidate: {
|
|
14
82
|
$: "formNoValidate",
|
|
@@ -35,19 +103,395 @@ const PropAliases = /*#__PURE__*/Object.assign(Object.create(null), {
|
|
|
35
103
|
});
|
|
36
104
|
function getPropAlias(prop, tagName) {
|
|
37
105
|
const a = PropAliases[prop];
|
|
38
|
-
return typeof a === "object" ? a[tagName] ? a["$"] : undefined : a;
|
|
39
|
-
}
|
|
40
|
-
const DelegatedEvents = /*#__PURE__*/new Set([
|
|
41
|
-
|
|
42
|
-
"
|
|
43
|
-
"
|
|
44
|
-
"
|
|
45
|
-
"
|
|
106
|
+
return typeof a === "object" ? (a[tagName] ? a["$"] : undefined) : a;
|
|
107
|
+
}
|
|
108
|
+
const DelegatedEvents = /*#__PURE__*/ new Set([
|
|
109
|
+
"beforeinput",
|
|
110
|
+
"click",
|
|
111
|
+
"dblclick",
|
|
112
|
+
"contextmenu",
|
|
113
|
+
"focusin",
|
|
114
|
+
"focusout",
|
|
115
|
+
"input",
|
|
116
|
+
"keydown",
|
|
117
|
+
"keyup",
|
|
118
|
+
"mousedown",
|
|
119
|
+
"mousemove",
|
|
120
|
+
"mouseout",
|
|
121
|
+
"mouseover",
|
|
122
|
+
"mouseup",
|
|
123
|
+
"pointerdown",
|
|
124
|
+
"pointermove",
|
|
125
|
+
"pointerout",
|
|
126
|
+
"pointerover",
|
|
127
|
+
"pointerup",
|
|
128
|
+
"touchend",
|
|
129
|
+
"touchmove",
|
|
130
|
+
"touchstart"
|
|
131
|
+
]);
|
|
132
|
+
const SVGElements = /*#__PURE__*/ new Set([
|
|
133
|
+
"altGlyph",
|
|
134
|
+
"altGlyphDef",
|
|
135
|
+
"altGlyphItem",
|
|
136
|
+
"animate",
|
|
137
|
+
"animateColor",
|
|
138
|
+
"animateMotion",
|
|
139
|
+
"animateTransform",
|
|
140
|
+
"circle",
|
|
141
|
+
"clipPath",
|
|
142
|
+
"color-profile",
|
|
143
|
+
"cursor",
|
|
144
|
+
"defs",
|
|
145
|
+
"desc",
|
|
146
|
+
"ellipse",
|
|
147
|
+
"feBlend",
|
|
148
|
+
"feColorMatrix",
|
|
149
|
+
"feComponentTransfer",
|
|
150
|
+
"feComposite",
|
|
151
|
+
"feConvolveMatrix",
|
|
152
|
+
"feDiffuseLighting",
|
|
153
|
+
"feDisplacementMap",
|
|
154
|
+
"feDistantLight",
|
|
155
|
+
"feFlood",
|
|
156
|
+
"feFuncA",
|
|
157
|
+
"feFuncB",
|
|
158
|
+
"feFuncG",
|
|
159
|
+
"feFuncR",
|
|
160
|
+
"feGaussianBlur",
|
|
161
|
+
"feImage",
|
|
162
|
+
"feMerge",
|
|
163
|
+
"feMergeNode",
|
|
164
|
+
"feMorphology",
|
|
165
|
+
"feOffset",
|
|
166
|
+
"fePointLight",
|
|
167
|
+
"feSpecularLighting",
|
|
168
|
+
"feSpotLight",
|
|
169
|
+
"feTile",
|
|
170
|
+
"feTurbulence",
|
|
171
|
+
"filter",
|
|
172
|
+
"font",
|
|
173
|
+
"font-face",
|
|
174
|
+
"font-face-format",
|
|
175
|
+
"font-face-name",
|
|
176
|
+
"font-face-src",
|
|
177
|
+
"font-face-uri",
|
|
178
|
+
"foreignObject",
|
|
179
|
+
"g",
|
|
180
|
+
"glyph",
|
|
181
|
+
"glyphRef",
|
|
182
|
+
"hkern",
|
|
183
|
+
"image",
|
|
184
|
+
"line",
|
|
185
|
+
"linearGradient",
|
|
186
|
+
"marker",
|
|
187
|
+
"mask",
|
|
188
|
+
"metadata",
|
|
189
|
+
"missing-glyph",
|
|
190
|
+
"mpath",
|
|
191
|
+
"path",
|
|
192
|
+
"pattern",
|
|
193
|
+
"polygon",
|
|
194
|
+
"polyline",
|
|
195
|
+
"radialGradient",
|
|
196
|
+
"rect",
|
|
197
|
+
"set",
|
|
198
|
+
"stop",
|
|
199
|
+
"svg",
|
|
200
|
+
"switch",
|
|
201
|
+
"symbol",
|
|
202
|
+
"text",
|
|
203
|
+
"textPath",
|
|
204
|
+
"tref",
|
|
205
|
+
"tspan",
|
|
206
|
+
"use",
|
|
207
|
+
"view",
|
|
208
|
+
"vkern"
|
|
209
|
+
]);
|
|
46
210
|
const SVGNamespace = {
|
|
47
211
|
xlink: "http://www.w3.org/1999/xlink",
|
|
48
212
|
xml: "http://www.w3.org/XML/1998/namespace"
|
|
49
213
|
};
|
|
50
|
-
const DOMElements = /*#__PURE__*/new Set([
|
|
214
|
+
const DOMElements = /*#__PURE__*/ new Set([
|
|
215
|
+
"html",
|
|
216
|
+
"base",
|
|
217
|
+
"head",
|
|
218
|
+
"link",
|
|
219
|
+
"meta",
|
|
220
|
+
"style",
|
|
221
|
+
"title",
|
|
222
|
+
"body",
|
|
223
|
+
"address",
|
|
224
|
+
"article",
|
|
225
|
+
"aside",
|
|
226
|
+
"footer",
|
|
227
|
+
"header",
|
|
228
|
+
"main",
|
|
229
|
+
"nav",
|
|
230
|
+
"section",
|
|
231
|
+
"body",
|
|
232
|
+
"blockquote",
|
|
233
|
+
"dd",
|
|
234
|
+
"div",
|
|
235
|
+
"dl",
|
|
236
|
+
"dt",
|
|
237
|
+
"figcaption",
|
|
238
|
+
"figure",
|
|
239
|
+
"hr",
|
|
240
|
+
"li",
|
|
241
|
+
"ol",
|
|
242
|
+
"p",
|
|
243
|
+
"pre",
|
|
244
|
+
"ul",
|
|
245
|
+
"a",
|
|
246
|
+
"abbr",
|
|
247
|
+
"b",
|
|
248
|
+
"bdi",
|
|
249
|
+
"bdo",
|
|
250
|
+
"br",
|
|
251
|
+
"cite",
|
|
252
|
+
"code",
|
|
253
|
+
"data",
|
|
254
|
+
"dfn",
|
|
255
|
+
"em",
|
|
256
|
+
"i",
|
|
257
|
+
"kbd",
|
|
258
|
+
"mark",
|
|
259
|
+
"q",
|
|
260
|
+
"rp",
|
|
261
|
+
"rt",
|
|
262
|
+
"ruby",
|
|
263
|
+
"s",
|
|
264
|
+
"samp",
|
|
265
|
+
"small",
|
|
266
|
+
"span",
|
|
267
|
+
"strong",
|
|
268
|
+
"sub",
|
|
269
|
+
"sup",
|
|
270
|
+
"time",
|
|
271
|
+
"u",
|
|
272
|
+
"var",
|
|
273
|
+
"wbr",
|
|
274
|
+
"area",
|
|
275
|
+
"audio",
|
|
276
|
+
"img",
|
|
277
|
+
"map",
|
|
278
|
+
"track",
|
|
279
|
+
"video",
|
|
280
|
+
"embed",
|
|
281
|
+
"iframe",
|
|
282
|
+
"object",
|
|
283
|
+
"param",
|
|
284
|
+
"picture",
|
|
285
|
+
"portal",
|
|
286
|
+
"source",
|
|
287
|
+
"svg",
|
|
288
|
+
"math",
|
|
289
|
+
"canvas",
|
|
290
|
+
"noscript",
|
|
291
|
+
"script",
|
|
292
|
+
"del",
|
|
293
|
+
"ins",
|
|
294
|
+
"caption",
|
|
295
|
+
"col",
|
|
296
|
+
"colgroup",
|
|
297
|
+
"table",
|
|
298
|
+
"tbody",
|
|
299
|
+
"td",
|
|
300
|
+
"tfoot",
|
|
301
|
+
"th",
|
|
302
|
+
"thead",
|
|
303
|
+
"tr",
|
|
304
|
+
"button",
|
|
305
|
+
"datalist",
|
|
306
|
+
"fieldset",
|
|
307
|
+
"form",
|
|
308
|
+
"input",
|
|
309
|
+
"label",
|
|
310
|
+
"legend",
|
|
311
|
+
"meter",
|
|
312
|
+
"optgroup",
|
|
313
|
+
"option",
|
|
314
|
+
"output",
|
|
315
|
+
"progress",
|
|
316
|
+
"select",
|
|
317
|
+
"textarea",
|
|
318
|
+
"details",
|
|
319
|
+
"dialog",
|
|
320
|
+
"menu",
|
|
321
|
+
"summary",
|
|
322
|
+
"details",
|
|
323
|
+
"slot",
|
|
324
|
+
"template",
|
|
325
|
+
"acronym",
|
|
326
|
+
"applet",
|
|
327
|
+
"basefont",
|
|
328
|
+
"bgsound",
|
|
329
|
+
"big",
|
|
330
|
+
"blink",
|
|
331
|
+
"center",
|
|
332
|
+
"content",
|
|
333
|
+
"dir",
|
|
334
|
+
"font",
|
|
335
|
+
"frame",
|
|
336
|
+
"frameset",
|
|
337
|
+
"hgroup",
|
|
338
|
+
"image",
|
|
339
|
+
"keygen",
|
|
340
|
+
"marquee",
|
|
341
|
+
"menuitem",
|
|
342
|
+
"nobr",
|
|
343
|
+
"noembed",
|
|
344
|
+
"noframes",
|
|
345
|
+
"plaintext",
|
|
346
|
+
"rb",
|
|
347
|
+
"rtc",
|
|
348
|
+
"shadow",
|
|
349
|
+
"spacer",
|
|
350
|
+
"strike",
|
|
351
|
+
"tt",
|
|
352
|
+
"xmp",
|
|
353
|
+
"a",
|
|
354
|
+
"abbr",
|
|
355
|
+
"acronym",
|
|
356
|
+
"address",
|
|
357
|
+
"applet",
|
|
358
|
+
"area",
|
|
359
|
+
"article",
|
|
360
|
+
"aside",
|
|
361
|
+
"audio",
|
|
362
|
+
"b",
|
|
363
|
+
"base",
|
|
364
|
+
"basefont",
|
|
365
|
+
"bdi",
|
|
366
|
+
"bdo",
|
|
367
|
+
"bgsound",
|
|
368
|
+
"big",
|
|
369
|
+
"blink",
|
|
370
|
+
"blockquote",
|
|
371
|
+
"body",
|
|
372
|
+
"br",
|
|
373
|
+
"button",
|
|
374
|
+
"canvas",
|
|
375
|
+
"caption",
|
|
376
|
+
"center",
|
|
377
|
+
"cite",
|
|
378
|
+
"code",
|
|
379
|
+
"col",
|
|
380
|
+
"colgroup",
|
|
381
|
+
"content",
|
|
382
|
+
"data",
|
|
383
|
+
"datalist",
|
|
384
|
+
"dd",
|
|
385
|
+
"del",
|
|
386
|
+
"details",
|
|
387
|
+
"dfn",
|
|
388
|
+
"dialog",
|
|
389
|
+
"dir",
|
|
390
|
+
"div",
|
|
391
|
+
"dl",
|
|
392
|
+
"dt",
|
|
393
|
+
"em",
|
|
394
|
+
"embed",
|
|
395
|
+
"fieldset",
|
|
396
|
+
"figcaption",
|
|
397
|
+
"figure",
|
|
398
|
+
"font",
|
|
399
|
+
"footer",
|
|
400
|
+
"form",
|
|
401
|
+
"frame",
|
|
402
|
+
"frameset",
|
|
403
|
+
"head",
|
|
404
|
+
"header",
|
|
405
|
+
"hgroup",
|
|
406
|
+
"hr",
|
|
407
|
+
"html",
|
|
408
|
+
"i",
|
|
409
|
+
"iframe",
|
|
410
|
+
"image",
|
|
411
|
+
"img",
|
|
412
|
+
"input",
|
|
413
|
+
"ins",
|
|
414
|
+
"kbd",
|
|
415
|
+
"keygen",
|
|
416
|
+
"label",
|
|
417
|
+
"legend",
|
|
418
|
+
"li",
|
|
419
|
+
"link",
|
|
420
|
+
"main",
|
|
421
|
+
"map",
|
|
422
|
+
"mark",
|
|
423
|
+
"marquee",
|
|
424
|
+
"menu",
|
|
425
|
+
"menuitem",
|
|
426
|
+
"meta",
|
|
427
|
+
"meter",
|
|
428
|
+
"nav",
|
|
429
|
+
"nobr",
|
|
430
|
+
"noembed",
|
|
431
|
+
"noframes",
|
|
432
|
+
"noscript",
|
|
433
|
+
"object",
|
|
434
|
+
"ol",
|
|
435
|
+
"optgroup",
|
|
436
|
+
"option",
|
|
437
|
+
"output",
|
|
438
|
+
"p",
|
|
439
|
+
"param",
|
|
440
|
+
"picture",
|
|
441
|
+
"plaintext",
|
|
442
|
+
"portal",
|
|
443
|
+
"pre",
|
|
444
|
+
"progress",
|
|
445
|
+
"q",
|
|
446
|
+
"rb",
|
|
447
|
+
"rp",
|
|
448
|
+
"rt",
|
|
449
|
+
"rtc",
|
|
450
|
+
"ruby",
|
|
451
|
+
"s",
|
|
452
|
+
"samp",
|
|
453
|
+
"script",
|
|
454
|
+
"section",
|
|
455
|
+
"select",
|
|
456
|
+
"shadow",
|
|
457
|
+
"slot",
|
|
458
|
+
"small",
|
|
459
|
+
"source",
|
|
460
|
+
"spacer",
|
|
461
|
+
"span",
|
|
462
|
+
"strike",
|
|
463
|
+
"strong",
|
|
464
|
+
"style",
|
|
465
|
+
"sub",
|
|
466
|
+
"summary",
|
|
467
|
+
"sup",
|
|
468
|
+
"table",
|
|
469
|
+
"tbody",
|
|
470
|
+
"td",
|
|
471
|
+
"template",
|
|
472
|
+
"textarea",
|
|
473
|
+
"tfoot",
|
|
474
|
+
"th",
|
|
475
|
+
"thead",
|
|
476
|
+
"time",
|
|
477
|
+
"title",
|
|
478
|
+
"tr",
|
|
479
|
+
"track",
|
|
480
|
+
"tt",
|
|
481
|
+
"u",
|
|
482
|
+
"ul",
|
|
483
|
+
"var",
|
|
484
|
+
"video",
|
|
485
|
+
"wbr",
|
|
486
|
+
"xmp",
|
|
487
|
+
"input",
|
|
488
|
+
"h1",
|
|
489
|
+
"h2",
|
|
490
|
+
"h3",
|
|
491
|
+
"h4",
|
|
492
|
+
"h5",
|
|
493
|
+
"h6"
|
|
494
|
+
]);
|
|
51
495
|
|
|
52
496
|
function reconcileArrays(parentNode, a, b) {
|
|
53
497
|
let bLength = b.length,
|
|
@@ -68,7 +512,7 @@ function reconcileArrays(parentNode, a, b) {
|
|
|
68
512
|
bEnd--;
|
|
69
513
|
}
|
|
70
514
|
if (aEnd === aStart) {
|
|
71
|
-
const node = bEnd < bLength ? bStart ? b[bStart - 1].nextSibling : b[bEnd - bStart] : after;
|
|
515
|
+
const node = bEnd < bLength ? (bStart ? b[bStart - 1].nextSibling : b[bEnd - bStart]) : after;
|
|
72
516
|
while (bStart < bEnd) parentNode.insertBefore(b[bStart++], node);
|
|
73
517
|
} else if (bEnd === bStart) {
|
|
74
518
|
while (aStart < aEnd) {
|
|
@@ -111,7 +555,9 @@ function render(code, element, init, options = {}) {
|
|
|
111
555
|
let disposer;
|
|
112
556
|
createRoot(dispose => {
|
|
113
557
|
disposer = dispose;
|
|
114
|
-
element === document
|
|
558
|
+
element === document
|
|
559
|
+
? code()
|
|
560
|
+
: insert(element, code(), element.firstChild ? null : undefined, init);
|
|
115
561
|
}, options.owner);
|
|
116
562
|
return () => {
|
|
117
563
|
disposer();
|
|
@@ -121,11 +567,17 @@ function render(code, element, init, options = {}) {
|
|
|
121
567
|
function template(html, isCE, isSVG) {
|
|
122
568
|
let node;
|
|
123
569
|
const create = () => {
|
|
570
|
+
if (sharedConfig.context)
|
|
571
|
+
throw new Error(
|
|
572
|
+
"Failed attempt to create new DOM elements during hydration. Check that the libraries you are using support hydration."
|
|
573
|
+
);
|
|
124
574
|
const t = document.createElement("template");
|
|
125
575
|
t.innerHTML = html;
|
|
126
576
|
return isSVG ? t.content.firstChild.firstChild : t.content.firstChild;
|
|
127
577
|
};
|
|
128
|
-
const fn = isCE
|
|
578
|
+
const fn = isCE
|
|
579
|
+
? () => untrack(() => document.importNode(node || (node = create()), true))
|
|
580
|
+
: () => (node || (node = create())).cloneNode(true);
|
|
129
581
|
fn.cloneNode = fn;
|
|
130
582
|
return fn;
|
|
131
583
|
}
|
|
@@ -150,15 +602,18 @@ function setProperty(node, name, value) {
|
|
|
150
602
|
}
|
|
151
603
|
function setAttribute(node, name, value) {
|
|
152
604
|
if (sharedConfig.context) return;
|
|
153
|
-
if (value == null) node.removeAttribute(name);
|
|
605
|
+
if (value == null) node.removeAttribute(name);
|
|
606
|
+
else node.setAttribute(name, value);
|
|
154
607
|
}
|
|
155
608
|
function setAttributeNS(node, namespace, name, value) {
|
|
156
609
|
if (sharedConfig.context) return;
|
|
157
|
-
if (value == null) node.removeAttributeNS(namespace, name);
|
|
610
|
+
if (value == null) node.removeAttributeNS(namespace, name);
|
|
611
|
+
else node.setAttributeNS(namespace, name, value);
|
|
158
612
|
}
|
|
159
613
|
function className(node, value) {
|
|
160
614
|
if (sharedConfig.context) return;
|
|
161
|
-
if (value == null) node.removeAttribute("class");
|
|
615
|
+
if (value == null) node.removeAttribute("class");
|
|
616
|
+
else node.className = value;
|
|
162
617
|
}
|
|
163
618
|
function addEventListener(node, name, handler, delegate) {
|
|
164
619
|
if (delegate) {
|
|
@@ -168,7 +623,7 @@ function addEventListener(node, name, handler, delegate) {
|
|
|
168
623
|
} else node[`$$${name}`] = handler;
|
|
169
624
|
} else if (Array.isArray(handler)) {
|
|
170
625
|
const handlerFn = handler[0];
|
|
171
|
-
node.addEventListener(name, handler[0] = e => handlerFn.call(node, handler[1], e));
|
|
626
|
+
node.addEventListener(name, (handler[0] = e => handlerFn.call(node, handler[1], e)));
|
|
172
627
|
} else node.addEventListener(name, handler);
|
|
173
628
|
}
|
|
174
629
|
function classList(node, value, prev = {}) {
|
|
@@ -193,7 +648,7 @@ function classList(node, value, prev = {}) {
|
|
|
193
648
|
function style(node, value, prev) {
|
|
194
649
|
if (!value) return prev ? setAttribute(node, "style") : value;
|
|
195
650
|
const nodeStyle = node.style;
|
|
196
|
-
if (typeof value === "string") return nodeStyle.cssText = value;
|
|
651
|
+
if (typeof value === "string") return (nodeStyle.cssText = value);
|
|
197
652
|
typeof prev === "string" && (nodeStyle.cssText = prev = undefined);
|
|
198
653
|
prev || (prev = {});
|
|
199
654
|
value || (value = {});
|
|
@@ -214,7 +669,9 @@ function style(node, value, prev) {
|
|
|
214
669
|
function spread(node, props = {}, isSVG, skipChildren) {
|
|
215
670
|
const prevProps = {};
|
|
216
671
|
if (!skipChildren) {
|
|
217
|
-
createRenderEffect(
|
|
672
|
+
createRenderEffect(
|
|
673
|
+
() => (prevProps.children = insertExpression(node, props.children, prevProps.children))
|
|
674
|
+
);
|
|
218
675
|
}
|
|
219
676
|
createRenderEffect(() => props.ref && props.ref(node));
|
|
220
677
|
createRenderEffect(() => assign(node, props, isSVG, true, prevProps, true));
|
|
@@ -273,9 +730,9 @@ function hydrate$1(code, element, options = {}) {
|
|
|
273
730
|
}
|
|
274
731
|
function getNextElement(template) {
|
|
275
732
|
let node, key;
|
|
276
|
-
if (!sharedConfig.context || !(node = sharedConfig.registry.get(key = getHydrationKey()))) {
|
|
277
|
-
if (sharedConfig.context)
|
|
278
|
-
|
|
733
|
+
if (!sharedConfig.context || !(node = sharedConfig.registry.get((key = getHydrationKey())))) {
|
|
734
|
+
if (sharedConfig.context)
|
|
735
|
+
throw new Error(`Hydration Mismatch. Unable to find DOM nodes for hydration key: ${key}`);
|
|
279
736
|
return template();
|
|
280
737
|
}
|
|
281
738
|
if (sharedConfig.completed) sharedConfig.completed.add(node);
|
|
@@ -294,7 +751,8 @@ function getNextMarker(start) {
|
|
|
294
751
|
while (end) {
|
|
295
752
|
if (end.nodeType === 8) {
|
|
296
753
|
const v = end.nodeValue;
|
|
297
|
-
if (v === "$") count++;
|
|
754
|
+
if (v === "$") count++;
|
|
755
|
+
else if (v === "/") {
|
|
298
756
|
if (count === 0) return [end, current];
|
|
299
757
|
count--;
|
|
300
758
|
}
|
|
@@ -308,10 +766,7 @@ function getNextMarker(start) {
|
|
|
308
766
|
function runHydrationEvents() {
|
|
309
767
|
if (sharedConfig.events && !sharedConfig.events.queued) {
|
|
310
768
|
queueMicrotask(() => {
|
|
311
|
-
const {
|
|
312
|
-
completed,
|
|
313
|
-
events
|
|
314
|
-
} = sharedConfig;
|
|
769
|
+
const { completed, events } = sharedConfig;
|
|
315
770
|
events.queued = false;
|
|
316
771
|
while (events.length) {
|
|
317
772
|
const [el, e] = events[0];
|
|
@@ -328,7 +783,8 @@ function toPropertyName(name) {
|
|
|
328
783
|
}
|
|
329
784
|
function toggleClassKey(node, key, value) {
|
|
330
785
|
const classNames = key.trim().split(/\s+/);
|
|
331
|
-
for (let i = 0, nameLen = classNames.length; i < nameLen; i++)
|
|
786
|
+
for (let i = 0, nameLen = classNames.length; i < nameLen; i++)
|
|
787
|
+
node.classList.toggle(classNames[i], value);
|
|
332
788
|
}
|
|
333
789
|
function assignProp(node, prop, value, prev, isSVG, skipRef) {
|
|
334
790
|
let isCE, isProp, isChildProp, propAlias, forceProp;
|
|
@@ -358,21 +814,30 @@ function assignProp(node, prop, value, prev, isSVG, skipRef) {
|
|
|
358
814
|
}
|
|
359
815
|
} else if (prop.slice(0, 5) === "attr:") {
|
|
360
816
|
setAttribute(node, prop.slice(5), value);
|
|
361
|
-
} else if (
|
|
817
|
+
} else if (
|
|
818
|
+
(forceProp = prop.slice(0, 5) === "prop:") ||
|
|
819
|
+
(isChildProp = ChildProperties.has(prop)) ||
|
|
820
|
+
(!isSVG &&
|
|
821
|
+
((propAlias = getPropAlias(prop, node.tagName)) || (isProp = Properties.has(prop)))) ||
|
|
822
|
+
(isCE = node.nodeName.includes("-"))
|
|
823
|
+
) {
|
|
362
824
|
if (forceProp) {
|
|
363
825
|
prop = prop.slice(5);
|
|
364
826
|
isProp = true;
|
|
365
827
|
} else if (sharedConfig.context) return value;
|
|
366
|
-
if (prop === "class" || prop === "className") className(node, value);
|
|
828
|
+
if (prop === "class" || prop === "className") className(node, value);
|
|
829
|
+
else if (isCE && !isProp && !isChildProp) node[toPropertyName(prop)] = value;
|
|
830
|
+
else node[propAlias || prop] = value;
|
|
367
831
|
} else {
|
|
368
832
|
const ns = isSVG && prop.indexOf(":") > -1 && SVGNamespace[prop.split(":")[0]];
|
|
369
|
-
if (ns) setAttributeNS(node, ns, prop, value);
|
|
833
|
+
if (ns) setAttributeNS(node, ns, prop, value);
|
|
834
|
+
else setAttribute(node, Aliases[prop] || prop, value);
|
|
370
835
|
}
|
|
371
836
|
return value;
|
|
372
837
|
}
|
|
373
838
|
function eventHandler(e) {
|
|
374
839
|
const key = `$$${e.type}`;
|
|
375
|
-
let node = e.composedPath && e.composedPath()[0] || e.target;
|
|
840
|
+
let node = (e.composedPath && e.composedPath()[0]) || e.target;
|
|
376
841
|
if (e.target !== node) {
|
|
377
842
|
Object.defineProperty(e, "target", {
|
|
378
843
|
configurable: true,
|
|
@@ -402,7 +867,8 @@ function insertExpression(parent, value, current, marker, unwrapArray) {
|
|
|
402
867
|
let cleaned = [];
|
|
403
868
|
for (let i = 0; i < current.length; i++) {
|
|
404
869
|
const node = current[i];
|
|
405
|
-
if (node.nodeType === 8 && node.data.slice(0, 2) === "!$") node.remove();
|
|
870
|
+
if (node.nodeType === 8 && node.data.slice(0, 2) === "!$") node.remove();
|
|
871
|
+
else cleaned.push(node);
|
|
406
872
|
}
|
|
407
873
|
current = cleaned;
|
|
408
874
|
}
|
|
@@ -410,7 +876,7 @@ function insertExpression(parent, value, current, marker, unwrapArray) {
|
|
|
410
876
|
if (value === current) return current;
|
|
411
877
|
const t = typeof value,
|
|
412
878
|
multi = marker !== undefined;
|
|
413
|
-
parent = multi && current[0] && current[0].parentNode || parent;
|
|
879
|
+
parent = (multi && current[0] && current[0].parentNode) || parent;
|
|
414
880
|
if (t === "string" || t === "number") {
|
|
415
881
|
if (sharedConfig.context) return current;
|
|
416
882
|
if (t === "number") value = value.toString();
|
|
@@ -439,7 +905,7 @@ function insertExpression(parent, value, current, marker, unwrapArray) {
|
|
|
439
905
|
const array = [];
|
|
440
906
|
const currentArray = current && Array.isArray(current);
|
|
441
907
|
if (normalizeIncomingArray(array, value, current, unwrapArray)) {
|
|
442
|
-
createRenderEffect(() => current = insertExpression(parent, array, current, marker, true));
|
|
908
|
+
createRenderEffect(() => (current = insertExpression(parent, array, current, marker, true)));
|
|
443
909
|
return () => current;
|
|
444
910
|
}
|
|
445
911
|
if (sharedConfig.context) {
|
|
@@ -448,7 +914,7 @@ function insertExpression(parent, value, current, marker, unwrapArray) {
|
|
|
448
914
|
let node = array[0];
|
|
449
915
|
let nodes = [node];
|
|
450
916
|
while ((node = node.nextSibling) !== marker) nodes.push(node);
|
|
451
|
-
return current = nodes;
|
|
917
|
+
return (current = nodes);
|
|
452
918
|
}
|
|
453
919
|
if (array.length === 0) {
|
|
454
920
|
current = cleanChildren(parent, current, marker);
|
|
@@ -463,9 +929,9 @@ function insertExpression(parent, value, current, marker, unwrapArray) {
|
|
|
463
929
|
}
|
|
464
930
|
current = array;
|
|
465
931
|
} else if (value.nodeType) {
|
|
466
|
-
if (sharedConfig.context && value.parentNode) return current = multi ? [value] : value;
|
|
932
|
+
if (sharedConfig.context && value.parentNode) return (current = multi ? [value] : value);
|
|
467
933
|
if (Array.isArray(current)) {
|
|
468
|
-
if (multi) return current = cleanChildren(parent, current, marker, value);
|
|
934
|
+
if (multi) return (current = cleanChildren(parent, current, marker, value));
|
|
469
935
|
cleanChildren(parent, current, null, value);
|
|
470
936
|
} else if (current == null || current === "" || !parent.firstChild) {
|
|
471
937
|
parent.appendChild(value);
|
|
@@ -480,21 +946,28 @@ function normalizeIncomingArray(normalized, array, current, unwrap) {
|
|
|
480
946
|
let item = array[i],
|
|
481
947
|
prev = current && current[i],
|
|
482
948
|
t;
|
|
483
|
-
if (item == null || item === true || item === false)
|
|
949
|
+
if (item == null || item === true || item === false);
|
|
950
|
+
else if ((t = typeof item) === "object" && item.nodeType) {
|
|
484
951
|
normalized.push(item);
|
|
485
952
|
} else if (Array.isArray(item)) {
|
|
486
953
|
dynamic = normalizeIncomingArray(normalized, item, prev) || dynamic;
|
|
487
954
|
} else if (t === "function") {
|
|
488
955
|
if (unwrap) {
|
|
489
956
|
while (typeof item === "function") item = item();
|
|
490
|
-
dynamic =
|
|
957
|
+
dynamic =
|
|
958
|
+
normalizeIncomingArray(
|
|
959
|
+
normalized,
|
|
960
|
+
Array.isArray(item) ? item : [item],
|
|
961
|
+
Array.isArray(prev) ? prev : [prev]
|
|
962
|
+
) || dynamic;
|
|
491
963
|
} else {
|
|
492
964
|
normalized.push(item);
|
|
493
965
|
dynamic = true;
|
|
494
966
|
}
|
|
495
967
|
} else {
|
|
496
968
|
const value = String(item);
|
|
497
|
-
if (prev && prev.nodeType === 3 && prev.data === value) normalized.push(prev);
|
|
969
|
+
if (prev && prev.nodeType === 3 && prev.data === value) normalized.push(prev);
|
|
970
|
+
else normalized.push(document.createTextNode(value));
|
|
498
971
|
}
|
|
499
972
|
}
|
|
500
973
|
return dynamic;
|
|
@@ -503,7 +976,7 @@ function appendNodes(parent, array, marker = null) {
|
|
|
503
976
|
for (let i = 0, len = array.length; i < len; i++) parent.insertBefore(array[i], marker);
|
|
504
977
|
}
|
|
505
978
|
function cleanChildren(parent, current, marker, replacement) {
|
|
506
|
-
if (marker === undefined) return parent.textContent = "";
|
|
979
|
+
if (marker === undefined) return (parent.textContent = "");
|
|
507
980
|
const node = replacement || document.createTextNode("");
|
|
508
981
|
if (current.length) {
|
|
509
982
|
let inserted = false;
|
|
@@ -511,7 +984,9 @@ function cleanChildren(parent, current, marker, replacement) {
|
|
|
511
984
|
const el = current[i];
|
|
512
985
|
if (node !== el) {
|
|
513
986
|
const isParent = el.parentNode === parent;
|
|
514
|
-
if (!inserted && !i)
|
|
987
|
+
if (!inserted && !i)
|
|
988
|
+
isParent ? parent.replaceChild(node, el) : parent.insertBefore(node, marker);
|
|
989
|
+
else isParent && el.remove();
|
|
515
990
|
} else inserted = true;
|
|
516
991
|
}
|
|
517
992
|
} else parent.insertBefore(node, marker);
|
|
@@ -522,7 +997,8 @@ function gatherHydratable(element, root) {
|
|
|
522
997
|
for (let i = 0; i < templates.length; i++) {
|
|
523
998
|
const node = templates[i];
|
|
524
999
|
const key = node.getAttribute("data-hk");
|
|
525
|
-
if ((!root || key.startsWith(root)) && !sharedConfig.registry.has(key))
|
|
1000
|
+
if ((!root || key.startsWith(root)) && !sharedConfig.registry.has(key))
|
|
1001
|
+
sharedConfig.registry.set(key, node);
|
|
526
1002
|
}
|
|
527
1003
|
}
|
|
528
1004
|
function getHydrationKey() {
|
|
@@ -574,42 +1050,47 @@ const hydrate = (...args) => {
|
|
|
574
1050
|
return hydrate$1(...args);
|
|
575
1051
|
};
|
|
576
1052
|
function Portal(props) {
|
|
577
|
-
const {
|
|
578
|
-
useShadow
|
|
579
|
-
} = props,
|
|
1053
|
+
const { useShadow } = props,
|
|
580
1054
|
marker = document.createTextNode(""),
|
|
581
1055
|
mount = () => props.mount || document.body,
|
|
582
1056
|
owner = getOwner();
|
|
583
1057
|
let content;
|
|
584
1058
|
let hydrating = !!sharedConfig.context;
|
|
585
|
-
createEffect(
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
1059
|
+
createEffect(
|
|
1060
|
+
() => {
|
|
1061
|
+
if (hydrating) getOwner().user = hydrating = false;
|
|
1062
|
+
content || (content = runWithOwner(owner, () => createMemo(() => props.children)));
|
|
1063
|
+
const el = mount();
|
|
1064
|
+
if (el instanceof HTMLHeadElement) {
|
|
1065
|
+
const [clean, setClean] = createSignal(false);
|
|
1066
|
+
const cleanup = () => setClean(true);
|
|
1067
|
+
createRoot(dispose => insert(el, () => (!clean() ? content() : dispose()), null));
|
|
1068
|
+
onCleanup(cleanup);
|
|
1069
|
+
} else {
|
|
1070
|
+
const container = createElement(props.isSVG ? "g" : "div", props.isSVG),
|
|
1071
|
+
renderRoot =
|
|
1072
|
+
useShadow && container.attachShadow
|
|
1073
|
+
? container.attachShadow({
|
|
1074
|
+
mode: "open"
|
|
1075
|
+
})
|
|
1076
|
+
: container;
|
|
1077
|
+
Object.defineProperty(container, "_$host", {
|
|
1078
|
+
get() {
|
|
1079
|
+
return marker.parentNode;
|
|
1080
|
+
},
|
|
1081
|
+
configurable: true
|
|
1082
|
+
});
|
|
1083
|
+
insert(renderRoot, content);
|
|
1084
|
+
el.appendChild(container);
|
|
1085
|
+
props.ref && props.ref(container);
|
|
1086
|
+
onCleanup(() => el.removeChild(container));
|
|
1087
|
+
}
|
|
1088
|
+
},
|
|
1089
|
+
undefined,
|
|
1090
|
+
{
|
|
1091
|
+
render: !hydrating
|
|
609
1092
|
}
|
|
610
|
-
|
|
611
|
-
render: !hydrating
|
|
612
|
-
});
|
|
1093
|
+
);
|
|
613
1094
|
return marker;
|
|
614
1095
|
}
|
|
615
1096
|
function Dynamic(props) {
|
|
@@ -632,4 +1113,59 @@ function Dynamic(props) {
|
|
|
632
1113
|
});
|
|
633
1114
|
}
|
|
634
1115
|
|
|
635
|
-
export {
|
|
1116
|
+
export {
|
|
1117
|
+
Aliases,
|
|
1118
|
+
voidFn as Assets,
|
|
1119
|
+
ChildProperties,
|
|
1120
|
+
DOMElements,
|
|
1121
|
+
DelegatedEvents,
|
|
1122
|
+
Dynamic,
|
|
1123
|
+
Hydration,
|
|
1124
|
+
voidFn as HydrationScript,
|
|
1125
|
+
NoHydration,
|
|
1126
|
+
Portal,
|
|
1127
|
+
Properties,
|
|
1128
|
+
SVGElements,
|
|
1129
|
+
SVGNamespace,
|
|
1130
|
+
addEventListener,
|
|
1131
|
+
assign,
|
|
1132
|
+
classList,
|
|
1133
|
+
className,
|
|
1134
|
+
clearDelegatedEvents,
|
|
1135
|
+
delegateEvents,
|
|
1136
|
+
dynamicProperty,
|
|
1137
|
+
escape,
|
|
1138
|
+
voidFn as generateHydrationScript,
|
|
1139
|
+
voidFn as getAssets,
|
|
1140
|
+
getHydrationKey,
|
|
1141
|
+
getNextElement,
|
|
1142
|
+
getNextMarker,
|
|
1143
|
+
getNextMatch,
|
|
1144
|
+
getPropAlias,
|
|
1145
|
+
hydrate,
|
|
1146
|
+
innerHTML,
|
|
1147
|
+
insert,
|
|
1148
|
+
isDev,
|
|
1149
|
+
isServer,
|
|
1150
|
+
render,
|
|
1151
|
+
renderToStream,
|
|
1152
|
+
renderToString,
|
|
1153
|
+
renderToStringAsync,
|
|
1154
|
+
resolveSSRNode,
|
|
1155
|
+
runHydrationEvents,
|
|
1156
|
+
setAttribute,
|
|
1157
|
+
setAttributeNS,
|
|
1158
|
+
setProperty,
|
|
1159
|
+
spread,
|
|
1160
|
+
ssr,
|
|
1161
|
+
ssrAttribute,
|
|
1162
|
+
ssrClassList,
|
|
1163
|
+
ssrElement,
|
|
1164
|
+
ssrHydrationKey,
|
|
1165
|
+
ssrSpread,
|
|
1166
|
+
ssrStyle,
|
|
1167
|
+
style,
|
|
1168
|
+
template,
|
|
1169
|
+
use,
|
|
1170
|
+
voidFn as useAssets
|
|
1171
|
+
};
|