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