solid-js 1.8.2 → 1.8.4
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 +1 -1
- package/dist/dev.js +534 -299
- package/dist/server.js +170 -75
- package/dist/solid.cjs +1 -1
- package/dist/solid.js +461 -257
- 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 +47 -31
- package/package.json +7 -3
- 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 +57 -2
- package/types/server/reactive.d.ts +73 -42
- 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 +3 -0
- package/web/dist/dev.js +620 -81
- package/web/dist/server.cjs +17 -5
- package/web/dist/server.js +188 -95
- package/web/dist/storage.cjs +12 -0
- package/web/dist/storage.js +10 -0
- package/web/dist/web.cjs +3 -0
- package/web/dist/web.js +614 -80
- package/web/types/client.d.ts +8 -3
- 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/types/server.d.ts +10 -1
- package/web/types/storage.d.ts +2 -0
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,12 +567,17 @@ function render(code, element, init, options = {}) {
|
|
|
121
567
|
function template(html, isCE, isSVG) {
|
|
122
568
|
let node;
|
|
123
569
|
const create = () => {
|
|
124
|
-
if (sharedConfig.context)
|
|
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
|
+
);
|
|
125
574
|
const t = document.createElement("template");
|
|
126
575
|
t.innerHTML = html;
|
|
127
576
|
return isSVG ? t.content.firstChild.firstChild : t.content.firstChild;
|
|
128
577
|
};
|
|
129
|
-
const fn = isCE
|
|
578
|
+
const fn = isCE
|
|
579
|
+
? () => untrack(() => document.importNode(node || (node = create()), true))
|
|
580
|
+
: () => (node || (node = create())).cloneNode(true);
|
|
130
581
|
fn.cloneNode = fn;
|
|
131
582
|
return fn;
|
|
132
583
|
}
|
|
@@ -151,15 +602,18 @@ function setProperty(node, name, value) {
|
|
|
151
602
|
}
|
|
152
603
|
function setAttribute(node, name, value) {
|
|
153
604
|
if (sharedConfig.context) return;
|
|
154
|
-
if (value == null) node.removeAttribute(name);
|
|
605
|
+
if (value == null) node.removeAttribute(name);
|
|
606
|
+
else node.setAttribute(name, value);
|
|
155
607
|
}
|
|
156
608
|
function setAttributeNS(node, namespace, name, value) {
|
|
157
609
|
if (sharedConfig.context) return;
|
|
158
|
-
if (value == null) node.removeAttributeNS(namespace, name);
|
|
610
|
+
if (value == null) node.removeAttributeNS(namespace, name);
|
|
611
|
+
else node.setAttributeNS(namespace, name, value);
|
|
159
612
|
}
|
|
160
613
|
function className(node, value) {
|
|
161
614
|
if (sharedConfig.context) return;
|
|
162
|
-
if (value == null) node.removeAttribute("class");
|
|
615
|
+
if (value == null) node.removeAttribute("class");
|
|
616
|
+
else node.className = value;
|
|
163
617
|
}
|
|
164
618
|
function addEventListener(node, name, handler, delegate) {
|
|
165
619
|
if (delegate) {
|
|
@@ -169,7 +623,7 @@ function addEventListener(node, name, handler, delegate) {
|
|
|
169
623
|
} else node[`$$${name}`] = handler;
|
|
170
624
|
} else if (Array.isArray(handler)) {
|
|
171
625
|
const handlerFn = handler[0];
|
|
172
|
-
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)));
|
|
173
627
|
} else node.addEventListener(name, handler);
|
|
174
628
|
}
|
|
175
629
|
function classList(node, value, prev = {}) {
|
|
@@ -194,7 +648,7 @@ function classList(node, value, prev = {}) {
|
|
|
194
648
|
function style(node, value, prev) {
|
|
195
649
|
if (!value) return prev ? setAttribute(node, "style") : value;
|
|
196
650
|
const nodeStyle = node.style;
|
|
197
|
-
if (typeof value === "string") return nodeStyle.cssText = value;
|
|
651
|
+
if (typeof value === "string") return (nodeStyle.cssText = value);
|
|
198
652
|
typeof prev === "string" && (nodeStyle.cssText = prev = undefined);
|
|
199
653
|
prev || (prev = {});
|
|
200
654
|
value || (value = {});
|
|
@@ -215,7 +669,9 @@ function style(node, value, prev) {
|
|
|
215
669
|
function spread(node, props = {}, isSVG, skipChildren) {
|
|
216
670
|
const prevProps = {};
|
|
217
671
|
if (!skipChildren) {
|
|
218
|
-
createRenderEffect(
|
|
672
|
+
createRenderEffect(
|
|
673
|
+
() => (prevProps.children = insertExpression(node, props.children, prevProps.children))
|
|
674
|
+
);
|
|
219
675
|
}
|
|
220
676
|
createRenderEffect(() => props.ref && props.ref(node));
|
|
221
677
|
createRenderEffect(() => assign(node, props, isSVG, true, prevProps, true));
|
|
@@ -274,8 +730,9 @@ function hydrate$1(code, element, options = {}) {
|
|
|
274
730
|
}
|
|
275
731
|
function getNextElement(template) {
|
|
276
732
|
let node, key;
|
|
277
|
-
if (!sharedConfig.context || !(node = sharedConfig.registry.get(key = getHydrationKey()))) {
|
|
278
|
-
if (sharedConfig.context)
|
|
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() {
|
|
@@ -536,6 +1012,7 @@ function Hydration(props) {
|
|
|
536
1012
|
return props.children;
|
|
537
1013
|
}
|
|
538
1014
|
function voidFn() {}
|
|
1015
|
+
const RequestContext = Symbol();
|
|
539
1016
|
function innerHTML(parent, content) {
|
|
540
1017
|
!sharedConfig.context && (parent.innerHTML = content);
|
|
541
1018
|
}
|
|
@@ -574,42 +1051,47 @@ const hydrate = (...args) => {
|
|
|
574
1051
|
return hydrate$1(...args);
|
|
575
1052
|
};
|
|
576
1053
|
function Portal(props) {
|
|
577
|
-
const {
|
|
578
|
-
useShadow
|
|
579
|
-
} = props,
|
|
1054
|
+
const { useShadow } = props,
|
|
580
1055
|
marker = document.createTextNode(""),
|
|
581
1056
|
mount = () => props.mount || document.body,
|
|
582
1057
|
owner = getOwner();
|
|
583
1058
|
let content;
|
|
584
1059
|
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
|
-
|
|
1060
|
+
createEffect(
|
|
1061
|
+
() => {
|
|
1062
|
+
if (hydrating) getOwner().user = hydrating = false;
|
|
1063
|
+
content || (content = runWithOwner(owner, () => createMemo(() => props.children)));
|
|
1064
|
+
const el = mount();
|
|
1065
|
+
if (el instanceof HTMLHeadElement) {
|
|
1066
|
+
const [clean, setClean] = createSignal(false);
|
|
1067
|
+
const cleanup = () => setClean(true);
|
|
1068
|
+
createRoot(dispose => insert(el, () => (!clean() ? content() : dispose()), null));
|
|
1069
|
+
onCleanup(cleanup);
|
|
1070
|
+
} else {
|
|
1071
|
+
const container = createElement(props.isSVG ? "g" : "div", props.isSVG),
|
|
1072
|
+
renderRoot =
|
|
1073
|
+
useShadow && container.attachShadow
|
|
1074
|
+
? container.attachShadow({
|
|
1075
|
+
mode: "open"
|
|
1076
|
+
})
|
|
1077
|
+
: container;
|
|
1078
|
+
Object.defineProperty(container, "_$host", {
|
|
1079
|
+
get() {
|
|
1080
|
+
return marker.parentNode;
|
|
1081
|
+
},
|
|
1082
|
+
configurable: true
|
|
1083
|
+
});
|
|
1084
|
+
insert(renderRoot, content);
|
|
1085
|
+
el.appendChild(container);
|
|
1086
|
+
props.ref && props.ref(container);
|
|
1087
|
+
onCleanup(() => el.removeChild(container));
|
|
1088
|
+
}
|
|
1089
|
+
},
|
|
1090
|
+
undefined,
|
|
1091
|
+
{
|
|
1092
|
+
render: !hydrating
|
|
609
1093
|
}
|
|
610
|
-
|
|
611
|
-
render: !hydrating
|
|
612
|
-
});
|
|
1094
|
+
);
|
|
613
1095
|
return marker;
|
|
614
1096
|
}
|
|
615
1097
|
function Dynamic(props) {
|
|
@@ -632,4 +1114,61 @@ function Dynamic(props) {
|
|
|
632
1114
|
});
|
|
633
1115
|
}
|
|
634
1116
|
|
|
635
|
-
export {
|
|
1117
|
+
export {
|
|
1118
|
+
Aliases,
|
|
1119
|
+
voidFn as Assets,
|
|
1120
|
+
ChildProperties,
|
|
1121
|
+
DOMElements,
|
|
1122
|
+
DelegatedEvents,
|
|
1123
|
+
Dynamic,
|
|
1124
|
+
Hydration,
|
|
1125
|
+
voidFn as HydrationScript,
|
|
1126
|
+
NoHydration,
|
|
1127
|
+
Portal,
|
|
1128
|
+
Properties,
|
|
1129
|
+
RequestContext,
|
|
1130
|
+
SVGElements,
|
|
1131
|
+
SVGNamespace,
|
|
1132
|
+
addEventListener,
|
|
1133
|
+
assign,
|
|
1134
|
+
classList,
|
|
1135
|
+
className,
|
|
1136
|
+
clearDelegatedEvents,
|
|
1137
|
+
delegateEvents,
|
|
1138
|
+
dynamicProperty,
|
|
1139
|
+
escape,
|
|
1140
|
+
voidFn as generateHydrationScript,
|
|
1141
|
+
voidFn as getAssets,
|
|
1142
|
+
getHydrationKey,
|
|
1143
|
+
getNextElement,
|
|
1144
|
+
getNextMarker,
|
|
1145
|
+
getNextMatch,
|
|
1146
|
+
getPropAlias,
|
|
1147
|
+
voidFn as getRequestEvent,
|
|
1148
|
+
hydrate,
|
|
1149
|
+
innerHTML,
|
|
1150
|
+
insert,
|
|
1151
|
+
isDev,
|
|
1152
|
+
isServer,
|
|
1153
|
+
render,
|
|
1154
|
+
renderToStream,
|
|
1155
|
+
renderToString,
|
|
1156
|
+
renderToStringAsync,
|
|
1157
|
+
resolveSSRNode,
|
|
1158
|
+
runHydrationEvents,
|
|
1159
|
+
setAttribute,
|
|
1160
|
+
setAttributeNS,
|
|
1161
|
+
setProperty,
|
|
1162
|
+
spread,
|
|
1163
|
+
ssr,
|
|
1164
|
+
ssrAttribute,
|
|
1165
|
+
ssrClassList,
|
|
1166
|
+
ssrElement,
|
|
1167
|
+
ssrHydrationKey,
|
|
1168
|
+
ssrSpread,
|
|
1169
|
+
ssrStyle,
|
|
1170
|
+
style,
|
|
1171
|
+
template,
|
|
1172
|
+
use,
|
|
1173
|
+
voidFn as useAssets
|
|
1174
|
+
};
|