solid-js 1.2.2 → 1.2.6
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 +20 -5
- package/dist/dev.js +20 -5
- package/dist/solid.cjs +20 -5
- package/dist/solid.js +20 -5
- package/html/dist/html.cjs +3 -2
- package/html/dist/html.js +3 -2
- package/package.json +14 -14
- package/store/dist/dev.cjs +2 -2
- package/store/dist/dev.js +3 -3
- package/store/dist/store.cjs +2 -2
- package/store/dist/store.js +2 -2
- package/store/types/store.d.ts +1 -1
- package/types/jsx.d.ts +2 -0
- package/web/dist/dev.cjs +31 -24
- package/web/dist/dev.js +31 -24
- package/web/dist/server.cjs +3 -1
- package/web/dist/server.js +3 -1
- package/web/dist/web.cjs +31 -24
- package/web/dist/web.js +31 -24
package/dist/dev.cjs
CHANGED
|
@@ -195,10 +195,12 @@ function createSignal(value, options) {
|
|
|
195
195
|
}];
|
|
196
196
|
}
|
|
197
197
|
function createComputed(fn, value, options) {
|
|
198
|
-
|
|
198
|
+
const c = createComputation(fn, value, true, STALE, options );
|
|
199
|
+
if (Scheduler && Transition && Transition.running) Updates.push(c);else updateComputation(c);
|
|
199
200
|
}
|
|
200
201
|
function createRenderEffect(fn, value, options) {
|
|
201
|
-
|
|
202
|
+
const c = createComputation(fn, value, false, STALE, options );
|
|
203
|
+
if (Scheduler && Transition && Transition.running) Updates.push(c);else updateComputation(c);
|
|
202
204
|
}
|
|
203
205
|
function createEffect(fn, value, options) {
|
|
204
206
|
runEffects = runUserEffects;
|
|
@@ -215,7 +217,10 @@ function createMemo(fn, value, options) {
|
|
|
215
217
|
c.observers = null;
|
|
216
218
|
c.observerSlots = null;
|
|
217
219
|
c.comparator = options.equals || undefined;
|
|
218
|
-
|
|
220
|
+
if (Scheduler && Transition && Transition.running) {
|
|
221
|
+
c.tState = STALE;
|
|
222
|
+
Updates.push(c);
|
|
223
|
+
} else updateComputation(c);
|
|
219
224
|
return readSignal.bind(c);
|
|
220
225
|
}
|
|
221
226
|
function createResource(source, fetcher, options) {
|
|
@@ -1207,6 +1212,9 @@ function splitProps(props, ...keys) {
|
|
|
1207
1212
|
Object.defineProperty(clone, key, descriptors[key] ? descriptors[key] : {
|
|
1208
1213
|
get() {
|
|
1209
1214
|
return props[key];
|
|
1215
|
+
},
|
|
1216
|
+
set() {
|
|
1217
|
+
return true;
|
|
1210
1218
|
}
|
|
1211
1219
|
});
|
|
1212
1220
|
}
|
|
@@ -1409,9 +1417,12 @@ function Suspense(props) {
|
|
|
1409
1417
|
inFallback,
|
|
1410
1418
|
effects: [],
|
|
1411
1419
|
resolved: false
|
|
1412
|
-
}
|
|
1420
|
+
},
|
|
1421
|
+
owner = getOwner();
|
|
1413
1422
|
const listContext = useContext(SuspenseListContext);
|
|
1414
1423
|
if (listContext) [showContent, showFallback] = listContext.register(store.inFallback);
|
|
1424
|
+
let dispose;
|
|
1425
|
+
onCleanup(() => dispose && dispose());
|
|
1415
1426
|
return createComponent(SuspenseContext.Provider, {
|
|
1416
1427
|
value: store,
|
|
1417
1428
|
get children() {
|
|
@@ -1420,13 +1431,17 @@ function Suspense(props) {
|
|
|
1420
1431
|
const inFallback = store.inFallback(),
|
|
1421
1432
|
visibleContent = showContent ? showContent() : true,
|
|
1422
1433
|
visibleFallback = showFallback ? showFallback() : true;
|
|
1434
|
+
dispose && dispose();
|
|
1423
1435
|
if (!inFallback && visibleContent) {
|
|
1424
1436
|
store.resolved = true;
|
|
1425
1437
|
resumeEffects(store.effects);
|
|
1426
1438
|
return rendered;
|
|
1427
1439
|
}
|
|
1428
1440
|
if (!visibleFallback) return;
|
|
1429
|
-
return
|
|
1441
|
+
return createRoot(disposer => {
|
|
1442
|
+
dispose = disposer;
|
|
1443
|
+
return props.fallback;
|
|
1444
|
+
}, owner);
|
|
1430
1445
|
});
|
|
1431
1446
|
}
|
|
1432
1447
|
});
|
package/dist/dev.js
CHANGED
|
@@ -191,10 +191,12 @@ function createSignal(value, options) {
|
|
|
191
191
|
}];
|
|
192
192
|
}
|
|
193
193
|
function createComputed(fn, value, options) {
|
|
194
|
-
|
|
194
|
+
const c = createComputation(fn, value, true, STALE, options );
|
|
195
|
+
if (Scheduler && Transition && Transition.running) Updates.push(c);else updateComputation(c);
|
|
195
196
|
}
|
|
196
197
|
function createRenderEffect(fn, value, options) {
|
|
197
|
-
|
|
198
|
+
const c = createComputation(fn, value, false, STALE, options );
|
|
199
|
+
if (Scheduler && Transition && Transition.running) Updates.push(c);else updateComputation(c);
|
|
198
200
|
}
|
|
199
201
|
function createEffect(fn, value, options) {
|
|
200
202
|
runEffects = runUserEffects;
|
|
@@ -211,7 +213,10 @@ function createMemo(fn, value, options) {
|
|
|
211
213
|
c.observers = null;
|
|
212
214
|
c.observerSlots = null;
|
|
213
215
|
c.comparator = options.equals || undefined;
|
|
214
|
-
|
|
216
|
+
if (Scheduler && Transition && Transition.running) {
|
|
217
|
+
c.tState = STALE;
|
|
218
|
+
Updates.push(c);
|
|
219
|
+
} else updateComputation(c);
|
|
215
220
|
return readSignal.bind(c);
|
|
216
221
|
}
|
|
217
222
|
function createResource(source, fetcher, options) {
|
|
@@ -1203,6 +1208,9 @@ function splitProps(props, ...keys) {
|
|
|
1203
1208
|
Object.defineProperty(clone, key, descriptors[key] ? descriptors[key] : {
|
|
1204
1209
|
get() {
|
|
1205
1210
|
return props[key];
|
|
1211
|
+
},
|
|
1212
|
+
set() {
|
|
1213
|
+
return true;
|
|
1206
1214
|
}
|
|
1207
1215
|
});
|
|
1208
1216
|
}
|
|
@@ -1405,9 +1413,12 @@ function Suspense(props) {
|
|
|
1405
1413
|
inFallback,
|
|
1406
1414
|
effects: [],
|
|
1407
1415
|
resolved: false
|
|
1408
|
-
}
|
|
1416
|
+
},
|
|
1417
|
+
owner = getOwner();
|
|
1409
1418
|
const listContext = useContext(SuspenseListContext);
|
|
1410
1419
|
if (listContext) [showContent, showFallback] = listContext.register(store.inFallback);
|
|
1420
|
+
let dispose;
|
|
1421
|
+
onCleanup(() => dispose && dispose());
|
|
1411
1422
|
return createComponent(SuspenseContext.Provider, {
|
|
1412
1423
|
value: store,
|
|
1413
1424
|
get children() {
|
|
@@ -1416,13 +1427,17 @@ function Suspense(props) {
|
|
|
1416
1427
|
const inFallback = store.inFallback(),
|
|
1417
1428
|
visibleContent = showContent ? showContent() : true,
|
|
1418
1429
|
visibleFallback = showFallback ? showFallback() : true;
|
|
1430
|
+
dispose && dispose();
|
|
1419
1431
|
if (!inFallback && visibleContent) {
|
|
1420
1432
|
store.resolved = true;
|
|
1421
1433
|
resumeEffects(store.effects);
|
|
1422
1434
|
return rendered;
|
|
1423
1435
|
}
|
|
1424
1436
|
if (!visibleFallback) return;
|
|
1425
|
-
return
|
|
1437
|
+
return createRoot(disposer => {
|
|
1438
|
+
dispose = disposer;
|
|
1439
|
+
return props.fallback;
|
|
1440
|
+
}, owner);
|
|
1426
1441
|
});
|
|
1427
1442
|
}
|
|
1428
1443
|
});
|
package/dist/solid.cjs
CHANGED
|
@@ -192,10 +192,12 @@ function createSignal(value, options) {
|
|
|
192
192
|
}];
|
|
193
193
|
}
|
|
194
194
|
function createComputed(fn, value, options) {
|
|
195
|
-
|
|
195
|
+
const c = createComputation(fn, value, true, STALE);
|
|
196
|
+
if (Scheduler && Transition && Transition.running) Updates.push(c);else updateComputation(c);
|
|
196
197
|
}
|
|
197
198
|
function createRenderEffect(fn, value, options) {
|
|
198
|
-
|
|
199
|
+
const c = createComputation(fn, value, false, STALE);
|
|
200
|
+
if (Scheduler && Transition && Transition.running) Updates.push(c);else updateComputation(c);
|
|
199
201
|
}
|
|
200
202
|
function createEffect(fn, value, options) {
|
|
201
203
|
runEffects = runUserEffects;
|
|
@@ -212,7 +214,10 @@ function createMemo(fn, value, options) {
|
|
|
212
214
|
c.observers = null;
|
|
213
215
|
c.observerSlots = null;
|
|
214
216
|
c.comparator = options.equals || undefined;
|
|
215
|
-
|
|
217
|
+
if (Scheduler && Transition && Transition.running) {
|
|
218
|
+
c.tState = STALE;
|
|
219
|
+
Updates.push(c);
|
|
220
|
+
} else updateComputation(c);
|
|
216
221
|
return readSignal.bind(c);
|
|
217
222
|
}
|
|
218
223
|
function createResource(source, fetcher, options) {
|
|
@@ -1131,6 +1136,9 @@ function splitProps(props, ...keys) {
|
|
|
1131
1136
|
Object.defineProperty(clone, key, descriptors[key] ? descriptors[key] : {
|
|
1132
1137
|
get() {
|
|
1133
1138
|
return props[key];
|
|
1139
|
+
},
|
|
1140
|
+
set() {
|
|
1141
|
+
return true;
|
|
1134
1142
|
}
|
|
1135
1143
|
});
|
|
1136
1144
|
}
|
|
@@ -1333,9 +1341,12 @@ function Suspense(props) {
|
|
|
1333
1341
|
inFallback,
|
|
1334
1342
|
effects: [],
|
|
1335
1343
|
resolved: false
|
|
1336
|
-
}
|
|
1344
|
+
},
|
|
1345
|
+
owner = getOwner();
|
|
1337
1346
|
const listContext = useContext(SuspenseListContext);
|
|
1338
1347
|
if (listContext) [showContent, showFallback] = listContext.register(store.inFallback);
|
|
1348
|
+
let dispose;
|
|
1349
|
+
onCleanup(() => dispose && dispose());
|
|
1339
1350
|
return createComponent(SuspenseContext.Provider, {
|
|
1340
1351
|
value: store,
|
|
1341
1352
|
get children() {
|
|
@@ -1344,13 +1355,17 @@ function Suspense(props) {
|
|
|
1344
1355
|
const inFallback = store.inFallback(),
|
|
1345
1356
|
visibleContent = showContent ? showContent() : true,
|
|
1346
1357
|
visibleFallback = showFallback ? showFallback() : true;
|
|
1358
|
+
dispose && dispose();
|
|
1347
1359
|
if (!inFallback && visibleContent) {
|
|
1348
1360
|
store.resolved = true;
|
|
1349
1361
|
resumeEffects(store.effects);
|
|
1350
1362
|
return rendered;
|
|
1351
1363
|
}
|
|
1352
1364
|
if (!visibleFallback) return;
|
|
1353
|
-
return
|
|
1365
|
+
return createRoot(disposer => {
|
|
1366
|
+
dispose = disposer;
|
|
1367
|
+
return props.fallback;
|
|
1368
|
+
}, owner);
|
|
1354
1369
|
});
|
|
1355
1370
|
}
|
|
1356
1371
|
});
|
package/dist/solid.js
CHANGED
|
@@ -188,10 +188,12 @@ function createSignal(value, options) {
|
|
|
188
188
|
}];
|
|
189
189
|
}
|
|
190
190
|
function createComputed(fn, value, options) {
|
|
191
|
-
|
|
191
|
+
const c = createComputation(fn, value, true, STALE);
|
|
192
|
+
if (Scheduler && Transition && Transition.running) Updates.push(c);else updateComputation(c);
|
|
192
193
|
}
|
|
193
194
|
function createRenderEffect(fn, value, options) {
|
|
194
|
-
|
|
195
|
+
const c = createComputation(fn, value, false, STALE);
|
|
196
|
+
if (Scheduler && Transition && Transition.running) Updates.push(c);else updateComputation(c);
|
|
195
197
|
}
|
|
196
198
|
function createEffect(fn, value, options) {
|
|
197
199
|
runEffects = runUserEffects;
|
|
@@ -208,7 +210,10 @@ function createMemo(fn, value, options) {
|
|
|
208
210
|
c.observers = null;
|
|
209
211
|
c.observerSlots = null;
|
|
210
212
|
c.comparator = options.equals || undefined;
|
|
211
|
-
|
|
213
|
+
if (Scheduler && Transition && Transition.running) {
|
|
214
|
+
c.tState = STALE;
|
|
215
|
+
Updates.push(c);
|
|
216
|
+
} else updateComputation(c);
|
|
212
217
|
return readSignal.bind(c);
|
|
213
218
|
}
|
|
214
219
|
function createResource(source, fetcher, options) {
|
|
@@ -1127,6 +1132,9 @@ function splitProps(props, ...keys) {
|
|
|
1127
1132
|
Object.defineProperty(clone, key, descriptors[key] ? descriptors[key] : {
|
|
1128
1133
|
get() {
|
|
1129
1134
|
return props[key];
|
|
1135
|
+
},
|
|
1136
|
+
set() {
|
|
1137
|
+
return true;
|
|
1130
1138
|
}
|
|
1131
1139
|
});
|
|
1132
1140
|
}
|
|
@@ -1329,9 +1337,12 @@ function Suspense(props) {
|
|
|
1329
1337
|
inFallback,
|
|
1330
1338
|
effects: [],
|
|
1331
1339
|
resolved: false
|
|
1332
|
-
}
|
|
1340
|
+
},
|
|
1341
|
+
owner = getOwner();
|
|
1333
1342
|
const listContext = useContext(SuspenseListContext);
|
|
1334
1343
|
if (listContext) [showContent, showFallback] = listContext.register(store.inFallback);
|
|
1344
|
+
let dispose;
|
|
1345
|
+
onCleanup(() => dispose && dispose());
|
|
1335
1346
|
return createComponent(SuspenseContext.Provider, {
|
|
1336
1347
|
value: store,
|
|
1337
1348
|
get children() {
|
|
@@ -1340,13 +1351,17 @@ function Suspense(props) {
|
|
|
1340
1351
|
const inFallback = store.inFallback(),
|
|
1341
1352
|
visibleContent = showContent ? showContent() : true,
|
|
1342
1353
|
visibleFallback = showFallback ? showFallback() : true;
|
|
1354
|
+
dispose && dispose();
|
|
1343
1355
|
if (!inFallback && visibleContent) {
|
|
1344
1356
|
store.resolved = true;
|
|
1345
1357
|
resumeEffects(store.effects);
|
|
1346
1358
|
return rendered;
|
|
1347
1359
|
}
|
|
1348
1360
|
if (!visibleFallback) return;
|
|
1349
|
-
return
|
|
1361
|
+
return createRoot(disposer => {
|
|
1362
|
+
dispose = disposer;
|
|
1363
|
+
return props.fallback;
|
|
1364
|
+
}, owner);
|
|
1350
1365
|
});
|
|
1351
1366
|
}
|
|
1352
1367
|
});
|
package/html/dist/html.cjs
CHANGED
|
@@ -358,7 +358,8 @@ function createHTML(r, {
|
|
|
358
358
|
childOptions = Object.assign({}, options, {
|
|
359
359
|
first: true,
|
|
360
360
|
decl: [],
|
|
361
|
-
exprs: []
|
|
361
|
+
exprs: [],
|
|
362
|
+
parent: false
|
|
362
363
|
});
|
|
363
364
|
parseNode(children, childOptions);
|
|
364
365
|
props.push(`children: () => { ${childOptions.exprs.join(";\n")}}`);
|
|
@@ -399,8 +400,8 @@ function createHTML(r, {
|
|
|
399
400
|
decl: [],
|
|
400
401
|
exprs: []
|
|
401
402
|
});
|
|
402
|
-
parseNode(child, childOptions);
|
|
403
403
|
options.templateNodes.push([child]);
|
|
404
|
+
parseNode(child, childOptions);
|
|
404
405
|
parts.push(`function() { ${childOptions.decl.join(",\n") + ";\n" + childOptions.exprs.join(";\n") + `;\nreturn _$el${id};\n`}}()`);
|
|
405
406
|
options.counter = childOptions.counter;
|
|
406
407
|
options.templateId = childOptions.templateId;
|
package/html/dist/html.js
CHANGED
|
@@ -356,7 +356,8 @@ function createHTML(r, {
|
|
|
356
356
|
childOptions = Object.assign({}, options, {
|
|
357
357
|
first: true,
|
|
358
358
|
decl: [],
|
|
359
|
-
exprs: []
|
|
359
|
+
exprs: [],
|
|
360
|
+
parent: false
|
|
360
361
|
});
|
|
361
362
|
parseNode(children, childOptions);
|
|
362
363
|
props.push(`children: () => { ${childOptions.exprs.join(";\n")}}`);
|
|
@@ -397,8 +398,8 @@ function createHTML(r, {
|
|
|
397
398
|
decl: [],
|
|
398
399
|
exprs: []
|
|
399
400
|
});
|
|
400
|
-
parseNode(child, childOptions);
|
|
401
401
|
options.templateNodes.push([child]);
|
|
402
|
+
parseNode(child, childOptions);
|
|
402
403
|
parts.push(`function() { ${childOptions.decl.join(",\n") + ";\n" + childOptions.exprs.join(";\n") + `;\nreturn _$el${id};\n`}}()`);
|
|
403
404
|
options.counter = childOptions.counter;
|
|
404
405
|
options.templateId = childOptions.templateId;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "solid-js",
|
|
3
3
|
"description": "A declarative JavaScript library for building user interfaces.",
|
|
4
|
-
"version": "1.2.
|
|
4
|
+
"version": "1.2.6",
|
|
5
5
|
"author": "Ryan Carniato",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"homepage": "https://github.com/solidjs/solid#readme",
|
|
@@ -36,10 +36,6 @@
|
|
|
36
36
|
],
|
|
37
37
|
"exports": {
|
|
38
38
|
".": {
|
|
39
|
-
"development": {
|
|
40
|
-
"import": "./dist/dev.js",
|
|
41
|
-
"require": "./dist/dev.cjs"
|
|
42
|
-
},
|
|
43
39
|
"browser": {
|
|
44
40
|
"import": "./dist/solid.js",
|
|
45
41
|
"require": "./dist/solid.cjs"
|
|
@@ -48,15 +44,15 @@
|
|
|
48
44
|
"import": "./dist/server.js",
|
|
49
45
|
"require": "./dist/server.cjs"
|
|
50
46
|
},
|
|
47
|
+
"development": {
|
|
48
|
+
"import": "./dist/dev.js",
|
|
49
|
+
"require": "./dist/dev.cjs"
|
|
50
|
+
},
|
|
51
51
|
"import": "./dist/solid.js",
|
|
52
52
|
"require": "./dist/solid.cjs"
|
|
53
53
|
},
|
|
54
54
|
"./dist/*": "./dist/*",
|
|
55
55
|
"./store": {
|
|
56
|
-
"development": {
|
|
57
|
-
"import": "./store/dist/dev.js",
|
|
58
|
-
"require": "./store/dist/dev.cjs"
|
|
59
|
-
},
|
|
60
56
|
"browser": {
|
|
61
57
|
"import": "./store/dist/store.js",
|
|
62
58
|
"require": "./store/dist/store.cjs"
|
|
@@ -65,15 +61,15 @@
|
|
|
65
61
|
"import": "./store/dist/server.js",
|
|
66
62
|
"require": "./store/dist/server.cjs"
|
|
67
63
|
},
|
|
64
|
+
"development": {
|
|
65
|
+
"import": "./store/dist/dev.js",
|
|
66
|
+
"require": "./store/dist/dev.cjs"
|
|
67
|
+
},
|
|
68
68
|
"import": "./store/dist/store.js",
|
|
69
69
|
"require": "./store/dist/store.cjs"
|
|
70
70
|
},
|
|
71
71
|
"./store/dist/*": "./store/dist/*",
|
|
72
72
|
"./web": {
|
|
73
|
-
"development": {
|
|
74
|
-
"import": "./web/dist/dev.js",
|
|
75
|
-
"require": "./web/dist/dev.cjs"
|
|
76
|
-
},
|
|
77
73
|
"browser": {
|
|
78
74
|
"import": "./web/dist/web.js",
|
|
79
75
|
"require": "./web/dist/web.cjs"
|
|
@@ -82,6 +78,10 @@
|
|
|
82
78
|
"import": "./web/dist/server.js",
|
|
83
79
|
"require": "./web/dist/server.cjs"
|
|
84
80
|
},
|
|
81
|
+
"development": {
|
|
82
|
+
"import": "./web/dist/dev.js",
|
|
83
|
+
"require": "./web/dist/dev.cjs"
|
|
84
|
+
},
|
|
85
85
|
"import": "./web/dist/web.js",
|
|
86
86
|
"require": "./web/dist/web.cjs"
|
|
87
87
|
},
|
|
@@ -132,5 +132,5 @@
|
|
|
132
132
|
"compiler",
|
|
133
133
|
"performance"
|
|
134
134
|
],
|
|
135
|
-
"gitHead": "
|
|
135
|
+
"gitHead": "bbdf3c645de60be9ef569199c4357f2836024149"
|
|
136
136
|
}
|
package/store/dist/dev.cjs
CHANGED
|
@@ -31,7 +31,7 @@ function wrap$1(value, name) {
|
|
|
31
31
|
return p;
|
|
32
32
|
}
|
|
33
33
|
function isWrappable(obj) {
|
|
34
|
-
return obj != null && typeof obj === "object" && (!obj.__proto__ || obj.__proto__ === Object.prototype || Array.isArray(obj));
|
|
34
|
+
return obj != null && typeof obj === "object" && (obj[solidJs.$PROXY] || !obj.__proto__ || obj.__proto__ === Object.prototype || Array.isArray(obj));
|
|
35
35
|
}
|
|
36
36
|
function unwrap(item, set = new Set()) {
|
|
37
37
|
let result, unwrapped, v, prop;
|
|
@@ -65,7 +65,7 @@ function getDataNodes(target) {
|
|
|
65
65
|
}
|
|
66
66
|
function proxyDescriptor(target, property) {
|
|
67
67
|
const desc = Reflect.getOwnPropertyDescriptor(target, property);
|
|
68
|
-
if (!desc || desc.get || property === solidJs.$PROXY || property === $NODE || property === $NAME) return desc;
|
|
68
|
+
if (!desc || desc.get || !desc.configurable || property === solidJs.$PROXY || property === $NODE || property === $NAME) return desc;
|
|
69
69
|
delete desc.value;
|
|
70
70
|
delete desc.writable;
|
|
71
71
|
desc.get = () => target[solidJs.$PROXY][property];
|
package/store/dist/dev.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { $PROXY, DEV, getListener, batch, createSignal } from 'solid-js';
|
|
2
2
|
|
|
3
3
|
const $RAW = Symbol("store-raw"),
|
|
4
4
|
$NODE = Symbol("store-node"),
|
|
@@ -27,7 +27,7 @@ function wrap$1(value, name) {
|
|
|
27
27
|
return p;
|
|
28
28
|
}
|
|
29
29
|
function isWrappable(obj) {
|
|
30
|
-
return obj != null && typeof obj === "object" && (!obj.__proto__ || obj.__proto__ === Object.prototype || Array.isArray(obj));
|
|
30
|
+
return obj != null && typeof obj === "object" && (obj[$PROXY] || !obj.__proto__ || obj.__proto__ === Object.prototype || Array.isArray(obj));
|
|
31
31
|
}
|
|
32
32
|
function unwrap(item, set = new Set()) {
|
|
33
33
|
let result, unwrapped, v, prop;
|
|
@@ -61,7 +61,7 @@ function getDataNodes(target) {
|
|
|
61
61
|
}
|
|
62
62
|
function proxyDescriptor(target, property) {
|
|
63
63
|
const desc = Reflect.getOwnPropertyDescriptor(target, property);
|
|
64
|
-
if (!desc || desc.get || property === $PROXY || property === $NODE || property === $NAME) return desc;
|
|
64
|
+
if (!desc || desc.get || !desc.configurable || property === $PROXY || property === $NODE || property === $NAME) return desc;
|
|
65
65
|
delete desc.value;
|
|
66
66
|
delete desc.writable;
|
|
67
67
|
desc.get = () => target[$PROXY][property];
|
package/store/dist/store.cjs
CHANGED
|
@@ -28,7 +28,7 @@ function wrap$1(value, name) {
|
|
|
28
28
|
return p;
|
|
29
29
|
}
|
|
30
30
|
function isWrappable(obj) {
|
|
31
|
-
return obj != null && typeof obj === "object" && (!obj.__proto__ || obj.__proto__ === Object.prototype || Array.isArray(obj));
|
|
31
|
+
return obj != null && typeof obj === "object" && (obj[solidJs.$PROXY] || !obj.__proto__ || obj.__proto__ === Object.prototype || Array.isArray(obj));
|
|
32
32
|
}
|
|
33
33
|
function unwrap(item, set = new Set()) {
|
|
34
34
|
let result, unwrapped, v, prop;
|
|
@@ -62,7 +62,7 @@ function getDataNodes(target) {
|
|
|
62
62
|
}
|
|
63
63
|
function proxyDescriptor(target, property) {
|
|
64
64
|
const desc = Reflect.getOwnPropertyDescriptor(target, property);
|
|
65
|
-
if (!desc || desc.get || property === solidJs.$PROXY || property === $NODE || property === $NAME) return desc;
|
|
65
|
+
if (!desc || desc.get || !desc.configurable || property === solidJs.$PROXY || property === $NODE || property === $NAME) return desc;
|
|
66
66
|
delete desc.value;
|
|
67
67
|
delete desc.writable;
|
|
68
68
|
desc.get = () => target[solidJs.$PROXY][property];
|
package/store/dist/store.js
CHANGED
|
@@ -24,7 +24,7 @@ function wrap$1(value, name) {
|
|
|
24
24
|
return p;
|
|
25
25
|
}
|
|
26
26
|
function isWrappable(obj) {
|
|
27
|
-
return obj != null && typeof obj === "object" && (!obj.__proto__ || obj.__proto__ === Object.prototype || Array.isArray(obj));
|
|
27
|
+
return obj != null && typeof obj === "object" && (obj[$PROXY] || !obj.__proto__ || obj.__proto__ === Object.prototype || Array.isArray(obj));
|
|
28
28
|
}
|
|
29
29
|
function unwrap(item, set = new Set()) {
|
|
30
30
|
let result, unwrapped, v, prop;
|
|
@@ -58,7 +58,7 @@ function getDataNodes(target) {
|
|
|
58
58
|
}
|
|
59
59
|
function proxyDescriptor(target, property) {
|
|
60
60
|
const desc = Reflect.getOwnPropertyDescriptor(target, property);
|
|
61
|
-
if (!desc || desc.get || property === $PROXY || property === $NODE || property === $NAME) return desc;
|
|
61
|
+
if (!desc || desc.get || !desc.configurable || property === $PROXY || property === $NODE || property === $NAME) return desc;
|
|
62
62
|
delete desc.value;
|
|
63
63
|
delete desc.writable;
|
|
64
64
|
desc.get = () => target[$PROXY][property];
|
package/store/types/store.d.ts
CHANGED
|
@@ -33,7 +33,7 @@ export declare type Store<T> = {
|
|
|
33
33
|
} & {
|
|
34
34
|
[$RAW]?: T;
|
|
35
35
|
} & AddSymbolToPrimitive<T> & AddSymbolIterator<T> & AddSymbolToStringTag<T> & AddCallable<T>;
|
|
36
|
-
export declare function isWrappable(obj: any):
|
|
36
|
+
export declare function isWrappable(obj: any): any;
|
|
37
37
|
export declare function unwrap<T extends StoreNode>(item: any, set?: Set<unknown>): T;
|
|
38
38
|
export declare function getDataNodes(target: StoreNode): any;
|
|
39
39
|
export declare function proxyDescriptor(target: StoreNode, property: string | number | symbol): PropertyDescriptor | undefined;
|
package/types/jsx.d.ts
CHANGED
|
@@ -92,6 +92,7 @@ export namespace JSX {
|
|
|
92
92
|
onFocusIn?: EventHandlerUnion<T, FocusEvent>;
|
|
93
93
|
onBlur?: EventHandlerUnion<T, FocusEvent>;
|
|
94
94
|
onChange?: EventHandlerUnion<T, Event>;
|
|
95
|
+
onInvalid?: EventHandlerUnion<T, Event>;
|
|
95
96
|
onInput?: EventHandlerUnion<T, InputEvent>;
|
|
96
97
|
onBeforeInput?: EventHandlerUnion<T, InputEvent>;
|
|
97
98
|
onReset?: EventHandlerUnion<T, Event>;
|
|
@@ -180,6 +181,7 @@ export namespace JSX {
|
|
|
180
181
|
onfocusin?: EventHandlerUnion<T, FocusEvent>;
|
|
181
182
|
onblur?: EventHandlerUnion<T, FocusEvent>;
|
|
182
183
|
onchange?: EventHandlerUnion<T, Event>;
|
|
184
|
+
oninvalid?: EventHandlerUnion<T, Event>;
|
|
183
185
|
oninput?: EventHandlerUnion<T, InputEvent>;
|
|
184
186
|
onbeforeinput?: EventHandlerUnion<T, InputEvent>;
|
|
185
187
|
onreset?: EventHandlerUnion<T, Event>;
|
package/web/dist/dev.cjs
CHANGED
|
@@ -203,36 +203,19 @@ function insert(parent, accessor, marker, initial) {
|
|
|
203
203
|
solidJs.createRenderEffect(current => insertExpression(parent, accessor(), current, marker), initial);
|
|
204
204
|
}
|
|
205
205
|
function assign(node, props, isSVG, skipChildren, prevProps = {}) {
|
|
206
|
-
|
|
206
|
+
for (const prop in prevProps) {
|
|
207
|
+
if (!(prop in props)) {
|
|
208
|
+
if (prop === "children") continue;
|
|
209
|
+
assignProp(node, prop, null, prevProps[prop], isSVG);
|
|
210
|
+
}
|
|
211
|
+
}
|
|
207
212
|
for (const prop in props) {
|
|
208
213
|
if (prop === "children") {
|
|
209
214
|
if (!skipChildren) insertExpression(node, props.children);
|
|
210
215
|
continue;
|
|
211
216
|
}
|
|
212
217
|
const value = props[prop];
|
|
213
|
-
|
|
214
|
-
if (prop === "style") {
|
|
215
|
-
style(node, value, prevProps[prop]);
|
|
216
|
-
} else if (prop === "classList") {
|
|
217
|
-
classList(node, value, prevProps[prop]);
|
|
218
|
-
} else if (prop === "ref") {
|
|
219
|
-
value(node);
|
|
220
|
-
} else if (prop.slice(0, 3) === "on:") {
|
|
221
|
-
node.addEventListener(prop.slice(3), value);
|
|
222
|
-
} else if (prop.slice(0, 10) === "oncapture:") {
|
|
223
|
-
node.addEventListener(prop.slice(10), value, true);
|
|
224
|
-
} else if (prop.slice(0, 2) === "on") {
|
|
225
|
-
const name = prop.slice(2).toLowerCase();
|
|
226
|
-
const delegate = DelegatedEvents.has(name);
|
|
227
|
-
addEventListener(node, name, value, delegate);
|
|
228
|
-
delegate && delegateEvents([name]);
|
|
229
|
-
} else if ((isChildProp = ChildProperties.has(prop)) || !isSVG && (PropAliases[prop] || (isProp = Properties.has(prop))) || (isCE = node.nodeName.includes("-"))) {
|
|
230
|
-
if (isCE && !isProp && !isChildProp) node[toPropertyName(prop)] = value;else node[PropAliases[prop] || prop] = value;
|
|
231
|
-
} else {
|
|
232
|
-
const ns = isSVG && prop.indexOf(":") > -1 && SVGNamespace[prop.split(":")[0]];
|
|
233
|
-
if (ns) setAttributeNS(node, ns, prop, value);else setAttribute(node, Aliases[prop] || prop, value);
|
|
234
|
-
}
|
|
235
|
-
prevProps[prop] = value;
|
|
218
|
+
prevProps[prop] = assignProp(node, prop, value, prevProps[prop], isSVG);
|
|
236
219
|
}
|
|
237
220
|
}
|
|
238
221
|
function hydrate(code, element) {
|
|
@@ -314,6 +297,30 @@ function toggleClassKey(node, key, value) {
|
|
|
314
297
|
const classNames = key.trim().split(/\s+/);
|
|
315
298
|
for (let i = 0, nameLen = classNames.length; i < nameLen; i++) node.classList.toggle(classNames[i], value);
|
|
316
299
|
}
|
|
300
|
+
function assignProp(node, prop, value, prev, isSVG) {
|
|
301
|
+
let isCE, isProp, isChildProp;
|
|
302
|
+
if (prop === "style") return style(node, value, prev);
|
|
303
|
+
if (prop === "classList") return classList(node, value, prev);
|
|
304
|
+
if (value === prev) return prev;
|
|
305
|
+
if (prop === "ref") {
|
|
306
|
+
value(node);
|
|
307
|
+
} else if (prop.slice(0, 3) === "on:") {
|
|
308
|
+
node.addEventListener(prop.slice(3), value);
|
|
309
|
+
} else if (prop.slice(0, 10) === "oncapture:") {
|
|
310
|
+
node.addEventListener(prop.slice(10), value, true);
|
|
311
|
+
} else if (prop.slice(0, 2) === "on") {
|
|
312
|
+
const name = prop.slice(2).toLowerCase();
|
|
313
|
+
const delegate = DelegatedEvents.has(name);
|
|
314
|
+
addEventListener(node, name, value, delegate);
|
|
315
|
+
delegate && delegateEvents([name]);
|
|
316
|
+
} else if ((isChildProp = ChildProperties.has(prop)) || !isSVG && (PropAliases[prop] || (isProp = Properties.has(prop))) || (isCE = node.nodeName.includes("-"))) {
|
|
317
|
+
if (isCE && !isProp && !isChildProp) node[toPropertyName(prop)] = value;else node[PropAliases[prop] || prop] = value;
|
|
318
|
+
} else {
|
|
319
|
+
const ns = isSVG && prop.indexOf(":") > -1 && SVGNamespace[prop.split(":")[0]];
|
|
320
|
+
if (ns) setAttributeNS(node, ns, prop, value);else setAttribute(node, Aliases[prop] || prop, value);
|
|
321
|
+
}
|
|
322
|
+
return value;
|
|
323
|
+
}
|
|
317
324
|
function eventHandler(e) {
|
|
318
325
|
const key = `$$${e.type}`;
|
|
319
326
|
let node = e.composedPath && e.composedPath()[0] || e.target;
|
package/web/dist/dev.js
CHANGED
|
@@ -200,36 +200,19 @@ function insert(parent, accessor, marker, initial) {
|
|
|
200
200
|
createRenderEffect(current => insertExpression(parent, accessor(), current, marker), initial);
|
|
201
201
|
}
|
|
202
202
|
function assign(node, props, isSVG, skipChildren, prevProps = {}) {
|
|
203
|
-
|
|
203
|
+
for (const prop in prevProps) {
|
|
204
|
+
if (!(prop in props)) {
|
|
205
|
+
if (prop === "children") continue;
|
|
206
|
+
assignProp(node, prop, null, prevProps[prop], isSVG);
|
|
207
|
+
}
|
|
208
|
+
}
|
|
204
209
|
for (const prop in props) {
|
|
205
210
|
if (prop === "children") {
|
|
206
211
|
if (!skipChildren) insertExpression(node, props.children);
|
|
207
212
|
continue;
|
|
208
213
|
}
|
|
209
214
|
const value = props[prop];
|
|
210
|
-
|
|
211
|
-
if (prop === "style") {
|
|
212
|
-
style(node, value, prevProps[prop]);
|
|
213
|
-
} else if (prop === "classList") {
|
|
214
|
-
classList(node, value, prevProps[prop]);
|
|
215
|
-
} else if (prop === "ref") {
|
|
216
|
-
value(node);
|
|
217
|
-
} else if (prop.slice(0, 3) === "on:") {
|
|
218
|
-
node.addEventListener(prop.slice(3), value);
|
|
219
|
-
} else if (prop.slice(0, 10) === "oncapture:") {
|
|
220
|
-
node.addEventListener(prop.slice(10), value, true);
|
|
221
|
-
} else if (prop.slice(0, 2) === "on") {
|
|
222
|
-
const name = prop.slice(2).toLowerCase();
|
|
223
|
-
const delegate = DelegatedEvents.has(name);
|
|
224
|
-
addEventListener(node, name, value, delegate);
|
|
225
|
-
delegate && delegateEvents([name]);
|
|
226
|
-
} else if ((isChildProp = ChildProperties.has(prop)) || !isSVG && (PropAliases[prop] || (isProp = Properties.has(prop))) || (isCE = node.nodeName.includes("-"))) {
|
|
227
|
-
if (isCE && !isProp && !isChildProp) node[toPropertyName(prop)] = value;else node[PropAliases[prop] || prop] = value;
|
|
228
|
-
} else {
|
|
229
|
-
const ns = isSVG && prop.indexOf(":") > -1 && SVGNamespace[prop.split(":")[0]];
|
|
230
|
-
if (ns) setAttributeNS(node, ns, prop, value);else setAttribute(node, Aliases[prop] || prop, value);
|
|
231
|
-
}
|
|
232
|
-
prevProps[prop] = value;
|
|
215
|
+
prevProps[prop] = assignProp(node, prop, value, prevProps[prop], isSVG);
|
|
233
216
|
}
|
|
234
217
|
}
|
|
235
218
|
function hydrate(code, element) {
|
|
@@ -311,6 +294,30 @@ function toggleClassKey(node, key, value) {
|
|
|
311
294
|
const classNames = key.trim().split(/\s+/);
|
|
312
295
|
for (let i = 0, nameLen = classNames.length; i < nameLen; i++) node.classList.toggle(classNames[i], value);
|
|
313
296
|
}
|
|
297
|
+
function assignProp(node, prop, value, prev, isSVG) {
|
|
298
|
+
let isCE, isProp, isChildProp;
|
|
299
|
+
if (prop === "style") return style(node, value, prev);
|
|
300
|
+
if (prop === "classList") return classList(node, value, prev);
|
|
301
|
+
if (value === prev) return prev;
|
|
302
|
+
if (prop === "ref") {
|
|
303
|
+
value(node);
|
|
304
|
+
} else if (prop.slice(0, 3) === "on:") {
|
|
305
|
+
node.addEventListener(prop.slice(3), value);
|
|
306
|
+
} else if (prop.slice(0, 10) === "oncapture:") {
|
|
307
|
+
node.addEventListener(prop.slice(10), value, true);
|
|
308
|
+
} else if (prop.slice(0, 2) === "on") {
|
|
309
|
+
const name = prop.slice(2).toLowerCase();
|
|
310
|
+
const delegate = DelegatedEvents.has(name);
|
|
311
|
+
addEventListener(node, name, value, delegate);
|
|
312
|
+
delegate && delegateEvents([name]);
|
|
313
|
+
} else if ((isChildProp = ChildProperties.has(prop)) || !isSVG && (PropAliases[prop] || (isProp = Properties.has(prop))) || (isCE = node.nodeName.includes("-"))) {
|
|
314
|
+
if (isCE && !isProp && !isChildProp) node[toPropertyName(prop)] = value;else node[PropAliases[prop] || prop] = value;
|
|
315
|
+
} else {
|
|
316
|
+
const ns = isSVG && prop.indexOf(":") > -1 && SVGNamespace[prop.split(":")[0]];
|
|
317
|
+
if (ns) setAttributeNS(node, ns, prop, value);else setAttribute(node, Aliases[prop] || prop, value);
|
|
318
|
+
}
|
|
319
|
+
return value;
|
|
320
|
+
}
|
|
314
321
|
function eventHandler(e) {
|
|
315
322
|
const key = `$$${e.type}`;
|
|
316
323
|
let node = e.composedPath && e.composedPath()[0] || e.target;
|
package/web/dist/server.cjs
CHANGED
|
@@ -449,6 +449,8 @@ function ssrSpread(props, isSVG, skipChildren) {
|
|
|
449
449
|
result += `class="${ssrClassList(value)}"`;
|
|
450
450
|
} else if (BooleanAttributes.has(prop)) {
|
|
451
451
|
if (value) result += prop;else continue;
|
|
452
|
+
} else if (prop === "ref" || prop.slice(0, 2) === "on") {
|
|
453
|
+
continue;
|
|
452
454
|
} else {
|
|
453
455
|
result += `${Aliases[prop] || prop}="${escape(value, true)}"`;
|
|
454
456
|
}
|
|
@@ -525,7 +527,7 @@ function generateHydrationScript() {
|
|
|
525
527
|
resources,
|
|
526
528
|
eventNames = ["click", "input"]
|
|
527
529
|
} = solidJs.sharedConfig.context;
|
|
528
|
-
let s = `<script${nonce ? ` nonce="${nonce}"` : ""}>(()=>{_$HYDRATION={events:[],completed:new WeakSet};const t=e=>e&&e.hasAttribute&&(e.hasAttribute("data-hk")
|
|
530
|
+
let s = `<script${nonce ? ` nonce="${nonce}"` : ""}>(()=>{_$HYDRATION={events:[],completed:new WeakSet};const t=e=>e&&e.hasAttribute&&(e.hasAttribute("data-hk")?e:t(e.host&&e.host instanceof Node?e.host:e.parentNode)),e=e=>{let o=e.composedPath&&e.composedPath()[0]||e.target,s=t(o);s&&!_$HYDRATION.completed.has(s)&&_$HYDRATION.events.push([s,e])};["${eventNames.join('","')}"].forEach(t=>document.addEventListener(t,e))})();`;
|
|
529
531
|
if (streaming) {
|
|
530
532
|
s += `(()=>{const e=_$HYDRATION,o={};e.startResource=e=>{let r;o[e]=[new Promise(e=>r=e),r]},e.resolveResource=(e,r)=>{const n=o[e];if(!n)return o[e]=[r];n[1](r)},e.loadResource=e=>{const r=o[e];if(r)return r[0]}})();`;
|
|
531
533
|
}
|
package/web/dist/server.js
CHANGED
|
@@ -446,6 +446,8 @@ function ssrSpread(props, isSVG, skipChildren) {
|
|
|
446
446
|
result += `class="${ssrClassList(value)}"`;
|
|
447
447
|
} else if (BooleanAttributes.has(prop)) {
|
|
448
448
|
if (value) result += prop;else continue;
|
|
449
|
+
} else if (prop === "ref" || prop.slice(0, 2) === "on") {
|
|
450
|
+
continue;
|
|
449
451
|
} else {
|
|
450
452
|
result += `${Aliases[prop] || prop}="${escape(value, true)}"`;
|
|
451
453
|
}
|
|
@@ -522,7 +524,7 @@ function generateHydrationScript() {
|
|
|
522
524
|
resources,
|
|
523
525
|
eventNames = ["click", "input"]
|
|
524
526
|
} = sharedConfig.context;
|
|
525
|
-
let s = `<script${nonce ? ` nonce="${nonce}"` : ""}>(()=>{_$HYDRATION={events:[],completed:new WeakSet};const t=e=>e&&e.hasAttribute&&(e.hasAttribute("data-hk")
|
|
527
|
+
let s = `<script${nonce ? ` nonce="${nonce}"` : ""}>(()=>{_$HYDRATION={events:[],completed:new WeakSet};const t=e=>e&&e.hasAttribute&&(e.hasAttribute("data-hk")?e:t(e.host&&e.host instanceof Node?e.host:e.parentNode)),e=e=>{let o=e.composedPath&&e.composedPath()[0]||e.target,s=t(o);s&&!_$HYDRATION.completed.has(s)&&_$HYDRATION.events.push([s,e])};["${eventNames.join('","')}"].forEach(t=>document.addEventListener(t,e))})();`;
|
|
526
528
|
if (streaming) {
|
|
527
529
|
s += `(()=>{const e=_$HYDRATION,o={};e.startResource=e=>{let r;o[e]=[new Promise(e=>r=e),r]},e.resolveResource=(e,r)=>{const n=o[e];if(!n)return o[e]=[r];n[1](r)},e.loadResource=e=>{const r=o[e];if(r)return r[0]}})();`;
|
|
528
530
|
}
|
package/web/dist/web.cjs
CHANGED
|
@@ -202,36 +202,19 @@ function insert(parent, accessor, marker, initial) {
|
|
|
202
202
|
solidJs.createRenderEffect(current => insertExpression(parent, accessor(), current, marker), initial);
|
|
203
203
|
}
|
|
204
204
|
function assign(node, props, isSVG, skipChildren, prevProps = {}) {
|
|
205
|
-
|
|
205
|
+
for (const prop in prevProps) {
|
|
206
|
+
if (!(prop in props)) {
|
|
207
|
+
if (prop === "children") continue;
|
|
208
|
+
assignProp(node, prop, null, prevProps[prop], isSVG);
|
|
209
|
+
}
|
|
210
|
+
}
|
|
206
211
|
for (const prop in props) {
|
|
207
212
|
if (prop === "children") {
|
|
208
213
|
if (!skipChildren) insertExpression(node, props.children);
|
|
209
214
|
continue;
|
|
210
215
|
}
|
|
211
216
|
const value = props[prop];
|
|
212
|
-
|
|
213
|
-
if (prop === "style") {
|
|
214
|
-
style(node, value, prevProps[prop]);
|
|
215
|
-
} else if (prop === "classList") {
|
|
216
|
-
classList(node, value, prevProps[prop]);
|
|
217
|
-
} else if (prop === "ref") {
|
|
218
|
-
value(node);
|
|
219
|
-
} else if (prop.slice(0, 3) === "on:") {
|
|
220
|
-
node.addEventListener(prop.slice(3), value);
|
|
221
|
-
} else if (prop.slice(0, 10) === "oncapture:") {
|
|
222
|
-
node.addEventListener(prop.slice(10), value, true);
|
|
223
|
-
} else if (prop.slice(0, 2) === "on") {
|
|
224
|
-
const name = prop.slice(2).toLowerCase();
|
|
225
|
-
const delegate = DelegatedEvents.has(name);
|
|
226
|
-
addEventListener(node, name, value, delegate);
|
|
227
|
-
delegate && delegateEvents([name]);
|
|
228
|
-
} else if ((isChildProp = ChildProperties.has(prop)) || !isSVG && (PropAliases[prop] || (isProp = Properties.has(prop))) || (isCE = node.nodeName.includes("-"))) {
|
|
229
|
-
if (isCE && !isProp && !isChildProp) node[toPropertyName(prop)] = value;else node[PropAliases[prop] || prop] = value;
|
|
230
|
-
} else {
|
|
231
|
-
const ns = isSVG && prop.indexOf(":") > -1 && SVGNamespace[prop.split(":")[0]];
|
|
232
|
-
if (ns) setAttributeNS(node, ns, prop, value);else setAttribute(node, Aliases[prop] || prop, value);
|
|
233
|
-
}
|
|
234
|
-
prevProps[prop] = value;
|
|
217
|
+
prevProps[prop] = assignProp(node, prop, value, prevProps[prop], isSVG);
|
|
235
218
|
}
|
|
236
219
|
}
|
|
237
220
|
function hydrate(code, element) {
|
|
@@ -313,6 +296,30 @@ function toggleClassKey(node, key, value) {
|
|
|
313
296
|
const classNames = key.trim().split(/\s+/);
|
|
314
297
|
for (let i = 0, nameLen = classNames.length; i < nameLen; i++) node.classList.toggle(classNames[i], value);
|
|
315
298
|
}
|
|
299
|
+
function assignProp(node, prop, value, prev, isSVG) {
|
|
300
|
+
let isCE, isProp, isChildProp;
|
|
301
|
+
if (prop === "style") return style(node, value, prev);
|
|
302
|
+
if (prop === "classList") return classList(node, value, prev);
|
|
303
|
+
if (value === prev) return prev;
|
|
304
|
+
if (prop === "ref") {
|
|
305
|
+
value(node);
|
|
306
|
+
} else if (prop.slice(0, 3) === "on:") {
|
|
307
|
+
node.addEventListener(prop.slice(3), value);
|
|
308
|
+
} else if (prop.slice(0, 10) === "oncapture:") {
|
|
309
|
+
node.addEventListener(prop.slice(10), value, true);
|
|
310
|
+
} else if (prop.slice(0, 2) === "on") {
|
|
311
|
+
const name = prop.slice(2).toLowerCase();
|
|
312
|
+
const delegate = DelegatedEvents.has(name);
|
|
313
|
+
addEventListener(node, name, value, delegate);
|
|
314
|
+
delegate && delegateEvents([name]);
|
|
315
|
+
} else if ((isChildProp = ChildProperties.has(prop)) || !isSVG && (PropAliases[prop] || (isProp = Properties.has(prop))) || (isCE = node.nodeName.includes("-"))) {
|
|
316
|
+
if (isCE && !isProp && !isChildProp) node[toPropertyName(prop)] = value;else node[PropAliases[prop] || prop] = value;
|
|
317
|
+
} else {
|
|
318
|
+
const ns = isSVG && prop.indexOf(":") > -1 && SVGNamespace[prop.split(":")[0]];
|
|
319
|
+
if (ns) setAttributeNS(node, ns, prop, value);else setAttribute(node, Aliases[prop] || prop, value);
|
|
320
|
+
}
|
|
321
|
+
return value;
|
|
322
|
+
}
|
|
316
323
|
function eventHandler(e) {
|
|
317
324
|
const key = `$$${e.type}`;
|
|
318
325
|
let node = e.composedPath && e.composedPath()[0] || e.target;
|
package/web/dist/web.js
CHANGED
|
@@ -199,36 +199,19 @@ function insert(parent, accessor, marker, initial) {
|
|
|
199
199
|
createRenderEffect(current => insertExpression(parent, accessor(), current, marker), initial);
|
|
200
200
|
}
|
|
201
201
|
function assign(node, props, isSVG, skipChildren, prevProps = {}) {
|
|
202
|
-
|
|
202
|
+
for (const prop in prevProps) {
|
|
203
|
+
if (!(prop in props)) {
|
|
204
|
+
if (prop === "children") continue;
|
|
205
|
+
assignProp(node, prop, null, prevProps[prop], isSVG);
|
|
206
|
+
}
|
|
207
|
+
}
|
|
203
208
|
for (const prop in props) {
|
|
204
209
|
if (prop === "children") {
|
|
205
210
|
if (!skipChildren) insertExpression(node, props.children);
|
|
206
211
|
continue;
|
|
207
212
|
}
|
|
208
213
|
const value = props[prop];
|
|
209
|
-
|
|
210
|
-
if (prop === "style") {
|
|
211
|
-
style(node, value, prevProps[prop]);
|
|
212
|
-
} else if (prop === "classList") {
|
|
213
|
-
classList(node, value, prevProps[prop]);
|
|
214
|
-
} else if (prop === "ref") {
|
|
215
|
-
value(node);
|
|
216
|
-
} else if (prop.slice(0, 3) === "on:") {
|
|
217
|
-
node.addEventListener(prop.slice(3), value);
|
|
218
|
-
} else if (prop.slice(0, 10) === "oncapture:") {
|
|
219
|
-
node.addEventListener(prop.slice(10), value, true);
|
|
220
|
-
} else if (prop.slice(0, 2) === "on") {
|
|
221
|
-
const name = prop.slice(2).toLowerCase();
|
|
222
|
-
const delegate = DelegatedEvents.has(name);
|
|
223
|
-
addEventListener(node, name, value, delegate);
|
|
224
|
-
delegate && delegateEvents([name]);
|
|
225
|
-
} else if ((isChildProp = ChildProperties.has(prop)) || !isSVG && (PropAliases[prop] || (isProp = Properties.has(prop))) || (isCE = node.nodeName.includes("-"))) {
|
|
226
|
-
if (isCE && !isProp && !isChildProp) node[toPropertyName(prop)] = value;else node[PropAliases[prop] || prop] = value;
|
|
227
|
-
} else {
|
|
228
|
-
const ns = isSVG && prop.indexOf(":") > -1 && SVGNamespace[prop.split(":")[0]];
|
|
229
|
-
if (ns) setAttributeNS(node, ns, prop, value);else setAttribute(node, Aliases[prop] || prop, value);
|
|
230
|
-
}
|
|
231
|
-
prevProps[prop] = value;
|
|
214
|
+
prevProps[prop] = assignProp(node, prop, value, prevProps[prop], isSVG);
|
|
232
215
|
}
|
|
233
216
|
}
|
|
234
217
|
function hydrate(code, element) {
|
|
@@ -310,6 +293,30 @@ function toggleClassKey(node, key, value) {
|
|
|
310
293
|
const classNames = key.trim().split(/\s+/);
|
|
311
294
|
for (let i = 0, nameLen = classNames.length; i < nameLen; i++) node.classList.toggle(classNames[i], value);
|
|
312
295
|
}
|
|
296
|
+
function assignProp(node, prop, value, prev, isSVG) {
|
|
297
|
+
let isCE, isProp, isChildProp;
|
|
298
|
+
if (prop === "style") return style(node, value, prev);
|
|
299
|
+
if (prop === "classList") return classList(node, value, prev);
|
|
300
|
+
if (value === prev) return prev;
|
|
301
|
+
if (prop === "ref") {
|
|
302
|
+
value(node);
|
|
303
|
+
} else if (prop.slice(0, 3) === "on:") {
|
|
304
|
+
node.addEventListener(prop.slice(3), value);
|
|
305
|
+
} else if (prop.slice(0, 10) === "oncapture:") {
|
|
306
|
+
node.addEventListener(prop.slice(10), value, true);
|
|
307
|
+
} else if (prop.slice(0, 2) === "on") {
|
|
308
|
+
const name = prop.slice(2).toLowerCase();
|
|
309
|
+
const delegate = DelegatedEvents.has(name);
|
|
310
|
+
addEventListener(node, name, value, delegate);
|
|
311
|
+
delegate && delegateEvents([name]);
|
|
312
|
+
} else if ((isChildProp = ChildProperties.has(prop)) || !isSVG && (PropAliases[prop] || (isProp = Properties.has(prop))) || (isCE = node.nodeName.includes("-"))) {
|
|
313
|
+
if (isCE && !isProp && !isChildProp) node[toPropertyName(prop)] = value;else node[PropAliases[prop] || prop] = value;
|
|
314
|
+
} else {
|
|
315
|
+
const ns = isSVG && prop.indexOf(":") > -1 && SVGNamespace[prop.split(":")[0]];
|
|
316
|
+
if (ns) setAttributeNS(node, ns, prop, value);else setAttribute(node, Aliases[prop] || prop, value);
|
|
317
|
+
}
|
|
318
|
+
return value;
|
|
319
|
+
}
|
|
313
320
|
function eventHandler(e) {
|
|
314
321
|
const key = `$$${e.type}`;
|
|
315
322
|
let node = e.composedPath && e.composedPath()[0] || e.target;
|