@marko/runtime-tags 0.1.2 → 0.1.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/debug/dom.js +63 -2
- package/dist/debug/dom.mjs +63 -2
- package/dist/debug/html.js +5 -3
- package/dist/debug/html.mjs +4 -2
- package/dist/dom/compat.d.ts +16 -0
- package/dist/dom.d.ts +2 -1
- package/dist/dom.js +96 -46
- package/dist/dom.mjs +96 -46
- package/dist/html/writer.d.ts +1 -1
- package/dist/html.d.ts +1 -1
- package/dist/html.js +5 -3
- package/dist/html.mjs +4 -2
- package/package.json +18 -13
- package/dist/debug/dom.js.map +0 -7
- package/dist/debug/dom.mjs.map +0 -7
- package/dist/debug/html.js.map +0 -7
- package/dist/debug/html.mjs.map +0 -7
- package/dist/dom.js.map +0 -7
- package/dist/dom.mjs.map +0 -7
- package/dist/html.js.map +0 -7
- package/dist/html.mjs.map +0 -7
package/dist/debug/dom.js
CHANGED
|
@@ -27,6 +27,7 @@ __export(dom_exports, {
|
|
|
27
27
|
childClosures: () => childClosures,
|
|
28
28
|
classAttr: () => classAttr,
|
|
29
29
|
closure: () => closure,
|
|
30
|
+
compat: () => compat,
|
|
30
31
|
conditional: () => conditional,
|
|
31
32
|
conditionalOnlyChild: () => conditionalOnlyChild,
|
|
32
33
|
createRenderer: () => createRenderer,
|
|
@@ -53,7 +54,6 @@ __export(dom_exports, {
|
|
|
53
54
|
loopTo: () => loopTo,
|
|
54
55
|
nextTagId: () => nextTagId,
|
|
55
56
|
on: () => on,
|
|
56
|
-
patchConditionals: () => patchConditionals,
|
|
57
57
|
prepare: () => prepare,
|
|
58
58
|
props: () => props,
|
|
59
59
|
queueEffect: () => queueEffect,
|
|
@@ -1408,4 +1408,65 @@ var ClientTemplate = class {
|
|
|
1408
1408
|
);
|
|
1409
1409
|
}
|
|
1410
1410
|
};
|
|
1411
|
-
|
|
1411
|
+
|
|
1412
|
+
// src/dom/compat.ts
|
|
1413
|
+
var compat = {
|
|
1414
|
+
register,
|
|
1415
|
+
patchConditionals,
|
|
1416
|
+
queueEffect,
|
|
1417
|
+
isRenderer(renderer) {
|
|
1418
|
+
return renderer.___clone !== void 0;
|
|
1419
|
+
},
|
|
1420
|
+
getStartNode(scope) {
|
|
1421
|
+
return scope.___startNode;
|
|
1422
|
+
},
|
|
1423
|
+
setScopeNodes(scope, startNode, endNode) {
|
|
1424
|
+
scope.___startNode = startNode;
|
|
1425
|
+
scope.___endNode = endNode;
|
|
1426
|
+
},
|
|
1427
|
+
runComponentEffects() {
|
|
1428
|
+
runEffects(this.effects);
|
|
1429
|
+
},
|
|
1430
|
+
resolveRenderer(renderer) {
|
|
1431
|
+
if (renderer && typeof renderer === "object") {
|
|
1432
|
+
if (Array.isArray(renderer)) {
|
|
1433
|
+
const [registerId, scopeId] = renderer;
|
|
1434
|
+
const scope = scopeLookup[scopeId];
|
|
1435
|
+
return getRegisteredWithScope(registerId, scope);
|
|
1436
|
+
}
|
|
1437
|
+
if (renderer.___clone) {
|
|
1438
|
+
return renderer;
|
|
1439
|
+
}
|
|
1440
|
+
}
|
|
1441
|
+
},
|
|
1442
|
+
createRenderer(setup, clone, args) {
|
|
1443
|
+
const renderer = createRenderer("", void 0, setup, void 0, 1, args);
|
|
1444
|
+
renderer.___clone = clone;
|
|
1445
|
+
return renderer;
|
|
1446
|
+
},
|
|
1447
|
+
render(isHydrate, out, component, renderer, input) {
|
|
1448
|
+
const args = renderer.___args || noop;
|
|
1449
|
+
let existing = false;
|
|
1450
|
+
let scope = isHydrate ? component.scope = scopeLookup[out.global.componentIdToScopeId[component.id]] : component.scope;
|
|
1451
|
+
component.effects = prepare(() => {
|
|
1452
|
+
if (!scope) {
|
|
1453
|
+
scope = component.scope = createScopeWithRenderer(renderer, out.global);
|
|
1454
|
+
const closures = renderer.___closureSignals;
|
|
1455
|
+
if (closures) {
|
|
1456
|
+
for (const signal of closures) {
|
|
1457
|
+
signal(component.scope, true);
|
|
1458
|
+
}
|
|
1459
|
+
}
|
|
1460
|
+
} else {
|
|
1461
|
+
args(scope, input, 1);
|
|
1462
|
+
existing = true;
|
|
1463
|
+
}
|
|
1464
|
+
args(scope, input);
|
|
1465
|
+
});
|
|
1466
|
+
if (!existing) {
|
|
1467
|
+
return scope.___startNode === scope.___endNode ? scope.___startNode : scope.___startNode.parentNode;
|
|
1468
|
+
}
|
|
1469
|
+
}
|
|
1470
|
+
};
|
|
1471
|
+
function noop() {
|
|
1472
|
+
}
|
package/dist/debug/dom.mjs
CHANGED
|
@@ -1333,6 +1333,68 @@ var ClientTemplate = class {
|
|
|
1333
1333
|
);
|
|
1334
1334
|
}
|
|
1335
1335
|
};
|
|
1336
|
+
|
|
1337
|
+
// src/dom/compat.ts
|
|
1338
|
+
var compat = {
|
|
1339
|
+
register,
|
|
1340
|
+
patchConditionals,
|
|
1341
|
+
queueEffect,
|
|
1342
|
+
isRenderer(renderer) {
|
|
1343
|
+
return renderer.___clone !== void 0;
|
|
1344
|
+
},
|
|
1345
|
+
getStartNode(scope) {
|
|
1346
|
+
return scope.___startNode;
|
|
1347
|
+
},
|
|
1348
|
+
setScopeNodes(scope, startNode, endNode) {
|
|
1349
|
+
scope.___startNode = startNode;
|
|
1350
|
+
scope.___endNode = endNode;
|
|
1351
|
+
},
|
|
1352
|
+
runComponentEffects() {
|
|
1353
|
+
runEffects(this.effects);
|
|
1354
|
+
},
|
|
1355
|
+
resolveRenderer(renderer) {
|
|
1356
|
+
if (renderer && typeof renderer === "object") {
|
|
1357
|
+
if (Array.isArray(renderer)) {
|
|
1358
|
+
const [registerId, scopeId] = renderer;
|
|
1359
|
+
const scope = scopeLookup[scopeId];
|
|
1360
|
+
return getRegisteredWithScope(registerId, scope);
|
|
1361
|
+
}
|
|
1362
|
+
if (renderer.___clone) {
|
|
1363
|
+
return renderer;
|
|
1364
|
+
}
|
|
1365
|
+
}
|
|
1366
|
+
},
|
|
1367
|
+
createRenderer(setup, clone, args) {
|
|
1368
|
+
const renderer = createRenderer("", void 0, setup, void 0, 1, args);
|
|
1369
|
+
renderer.___clone = clone;
|
|
1370
|
+
return renderer;
|
|
1371
|
+
},
|
|
1372
|
+
render(isHydrate, out, component, renderer, input) {
|
|
1373
|
+
const args = renderer.___args || noop;
|
|
1374
|
+
let existing = false;
|
|
1375
|
+
let scope = isHydrate ? component.scope = scopeLookup[out.global.componentIdToScopeId[component.id]] : component.scope;
|
|
1376
|
+
component.effects = prepare(() => {
|
|
1377
|
+
if (!scope) {
|
|
1378
|
+
scope = component.scope = createScopeWithRenderer(renderer, out.global);
|
|
1379
|
+
const closures = renderer.___closureSignals;
|
|
1380
|
+
if (closures) {
|
|
1381
|
+
for (const signal of closures) {
|
|
1382
|
+
signal(component.scope, true);
|
|
1383
|
+
}
|
|
1384
|
+
}
|
|
1385
|
+
} else {
|
|
1386
|
+
args(scope, input, 1);
|
|
1387
|
+
existing = true;
|
|
1388
|
+
}
|
|
1389
|
+
args(scope, input);
|
|
1390
|
+
});
|
|
1391
|
+
if (!existing) {
|
|
1392
|
+
return scope.___startNode === scope.___endNode ? scope.___startNode : scope.___startNode.parentNode;
|
|
1393
|
+
}
|
|
1394
|
+
}
|
|
1395
|
+
};
|
|
1396
|
+
function noop() {
|
|
1397
|
+
}
|
|
1336
1398
|
export {
|
|
1337
1399
|
attr,
|
|
1338
1400
|
attrs,
|
|
@@ -1341,6 +1403,7 @@ export {
|
|
|
1341
1403
|
childClosures,
|
|
1342
1404
|
classAttr,
|
|
1343
1405
|
closure,
|
|
1406
|
+
compat,
|
|
1344
1407
|
conditional,
|
|
1345
1408
|
conditionalOnlyChild,
|
|
1346
1409
|
createRenderer,
|
|
@@ -1367,7 +1430,6 @@ export {
|
|
|
1367
1430
|
loopTo,
|
|
1368
1431
|
nextTagId,
|
|
1369
1432
|
on,
|
|
1370
|
-
patchConditionals,
|
|
1371
1433
|
prepare,
|
|
1372
1434
|
props,
|
|
1373
1435
|
queueEffect,
|
|
@@ -1385,4 +1447,3 @@ export {
|
|
|
1385
1447
|
values,
|
|
1386
1448
|
write
|
|
1387
1449
|
};
|
|
1388
|
-
//# sourceMappingURL=dom.mjs.map
|
package/dist/debug/html.js
CHANGED
|
@@ -20,7 +20,6 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
20
20
|
// src/html.ts
|
|
21
21
|
var html_exports = {};
|
|
22
22
|
__export(html_exports, {
|
|
23
|
-
$_streamData: () => $_streamData,
|
|
24
23
|
attr: () => attr,
|
|
25
24
|
attrs: () => attrs,
|
|
26
25
|
classAttr: () => classAttr,
|
|
@@ -35,6 +34,7 @@ __export(html_exports, {
|
|
|
35
34
|
escapeXML: () => escapeXML,
|
|
36
35
|
fork: () => fork,
|
|
37
36
|
getRegistryInfo: () => getRegistryInfo,
|
|
37
|
+
getStreamData: () => getStreamData,
|
|
38
38
|
makeSerializable: () => makeSerializable,
|
|
39
39
|
markResumeControlEnd: () => markResumeControlEnd,
|
|
40
40
|
markResumeControlSingleNodeEnd: () => markResumeControlSingleNodeEnd,
|
|
@@ -690,6 +690,9 @@ var reorderRuntimeString = String(reorder_runtime_default).replace(
|
|
|
690
690
|
);
|
|
691
691
|
var $_buffer = null;
|
|
692
692
|
var $_streamData = null;
|
|
693
|
+
function getStreamData() {
|
|
694
|
+
return $_streamData;
|
|
695
|
+
}
|
|
693
696
|
function createRenderFn(renderer) {
|
|
694
697
|
return (stream, input = {}, $global, streamState = {}) => {
|
|
695
698
|
let remainingChildren = 1;
|
|
@@ -1285,7 +1288,6 @@ var ServerTemplate = class {
|
|
|
1285
1288
|
};
|
|
1286
1289
|
// Annotate the CommonJS export names for ESM import in node:
|
|
1287
1290
|
0 && (module.exports = {
|
|
1288
|
-
$_streamData,
|
|
1289
1291
|
attr,
|
|
1290
1292
|
attrs,
|
|
1291
1293
|
classAttr,
|
|
@@ -1300,6 +1302,7 @@ var ServerTemplate = class {
|
|
|
1300
1302
|
escapeXML,
|
|
1301
1303
|
fork,
|
|
1302
1304
|
getRegistryInfo,
|
|
1305
|
+
getStreamData,
|
|
1303
1306
|
makeSerializable,
|
|
1304
1307
|
markResumeControlEnd,
|
|
1305
1308
|
markResumeControlSingleNodeEnd,
|
|
@@ -1320,4 +1323,3 @@ var ServerTemplate = class {
|
|
|
1320
1323
|
writeEffect,
|
|
1321
1324
|
writeScope
|
|
1322
1325
|
});
|
|
1323
|
-
//# sourceMappingURL=html.js.map
|
package/dist/debug/html.mjs
CHANGED
|
@@ -631,6 +631,9 @@ var reorderRuntimeString = String(reorder_runtime_default).replace(
|
|
|
631
631
|
);
|
|
632
632
|
var $_buffer = null;
|
|
633
633
|
var $_streamData = null;
|
|
634
|
+
function getStreamData() {
|
|
635
|
+
return $_streamData;
|
|
636
|
+
}
|
|
634
637
|
function createRenderFn(renderer) {
|
|
635
638
|
return (stream, input = {}, $global, streamState = {}) => {
|
|
636
639
|
let remainingChildren = 1;
|
|
@@ -1225,7 +1228,6 @@ var ServerTemplate = class {
|
|
|
1225
1228
|
}
|
|
1226
1229
|
};
|
|
1227
1230
|
export {
|
|
1228
|
-
$_streamData,
|
|
1229
1231
|
attr,
|
|
1230
1232
|
attrs,
|
|
1231
1233
|
classAttr,
|
|
@@ -1240,6 +1242,7 @@ export {
|
|
|
1240
1242
|
escapeXML,
|
|
1241
1243
|
fork,
|
|
1242
1244
|
getRegistryInfo,
|
|
1245
|
+
getStreamData,
|
|
1243
1246
|
makeSerializable,
|
|
1244
1247
|
markResumeControlEnd,
|
|
1245
1248
|
markResumeControlSingleNodeEnd,
|
|
@@ -1260,4 +1263,3 @@ export {
|
|
|
1260
1263
|
writeEffect,
|
|
1261
1264
|
writeScope
|
|
1262
1265
|
};
|
|
1263
|
-
//# sourceMappingURL=html.mjs.map
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { patchConditionals } from "./control-flow";
|
|
2
|
+
import { queueEffect } from "./queue";
|
|
3
|
+
import { type Renderer } from "./renderer";
|
|
4
|
+
import { register } from "./resume";
|
|
5
|
+
export declare const compat: {
|
|
6
|
+
register: typeof register;
|
|
7
|
+
patchConditionals: typeof patchConditionals;
|
|
8
|
+
queueEffect: typeof queueEffect;
|
|
9
|
+
isRenderer(renderer: any): boolean;
|
|
10
|
+
getStartNode(scope: any): any;
|
|
11
|
+
setScopeNodes(scope: any, startNode: Node, endNode: Node): void;
|
|
12
|
+
runComponentEffects(this: any): void;
|
|
13
|
+
resolveRenderer(renderer: any): any;
|
|
14
|
+
createRenderer(setup: Renderer["___setup"], clone: Renderer["___clone"], args: Renderer["___args"]): Renderer;
|
|
15
|
+
render(isHydrate: boolean, out: any, component: any, renderer: Renderer, input: any): any;
|
|
16
|
+
};
|
package/dist/dom.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { conditional, conditionalOnlyChild, inConditionalScope, loopOf, loopIn, loopTo, inLoopScope,
|
|
1
|
+
export { conditional, conditionalOnlyChild, inConditionalScope, loopOf, loopIn, loopTo, inLoopScope, } from "./dom/control-flow";
|
|
2
2
|
export { data, html, attr, attrs, classAttr, styleAttr, props, lifecycle, } from "./dom/dom";
|
|
3
3
|
export { resetAbortSignal, getAbortSignal } from "./dom/abort-signal";
|
|
4
4
|
export { on } from "./dom/event";
|
|
@@ -9,3 +9,4 @@ export type { Scope } from "./common/types";
|
|
|
9
9
|
export { createRenderer, dynamicTagAttrs, createScopeWithRenderer, } from "./dom/renderer";
|
|
10
10
|
export { createTemplate } from "./dom/template";
|
|
11
11
|
export { value, initValue, intersection, closure, dynamicClosure, dynamicSubscribers, childClosures, setTagVar, tagVarSignal, nextTagId, inChild, values, intersections, } from "./dom/signals";
|
|
12
|
+
export { compat } from "./dom/compat";
|
package/dist/dom.js
CHANGED
|
@@ -24,6 +24,7 @@ __export(dom_exports, {
|
|
|
24
24
|
childClosures: () => childClosures,
|
|
25
25
|
classAttr: () => classAttr,
|
|
26
26
|
closure: () => closure,
|
|
27
|
+
compat: () => compat,
|
|
27
28
|
conditional: () => conditional,
|
|
28
29
|
conditionalOnlyChild: () => conditionalOnlyChild,
|
|
29
30
|
createRenderer: () => createRenderer,
|
|
@@ -50,7 +51,6 @@ __export(dom_exports, {
|
|
|
50
51
|
loopTo: () => loopTo,
|
|
51
52
|
nextTagId: () => nextTagId,
|
|
52
53
|
on: () => on,
|
|
53
|
-
patchConditionals: () => patchConditionals,
|
|
54
54
|
prepare: () => prepare,
|
|
55
55
|
props: () => props,
|
|
56
56
|
queueEffect: () => queueEffect,
|
|
@@ -73,26 +73,26 @@ module.exports = __toCommonJS(dom_exports);
|
|
|
73
73
|
// src/dom/scope.ts
|
|
74
74
|
function createScope($global) {
|
|
75
75
|
let scope = {};
|
|
76
|
-
return scope.
|
|
76
|
+
return scope.p = !0, scope.$global = $global, scope;
|
|
77
77
|
}
|
|
78
78
|
var emptyScope = createScope({});
|
|
79
79
|
function getEmptyScope(marker) {
|
|
80
|
-
return emptyScope.a = emptyScope.
|
|
80
|
+
return emptyScope.a = emptyScope.b = marker, emptyScope;
|
|
81
81
|
}
|
|
82
82
|
function write(scope, localIndex, value2) {
|
|
83
83
|
return scope[localIndex] !== value2 ? (scope[localIndex] = value2, 1) : 0;
|
|
84
84
|
}
|
|
85
85
|
function binder(bind) {
|
|
86
86
|
return (scope, value2) => {
|
|
87
|
-
scope.
|
|
88
|
-
let bound = scope.
|
|
89
|
-
return bound || (bound = bind(scope, value2), scope.
|
|
87
|
+
scope.i ??= /* @__PURE__ */ new Map();
|
|
88
|
+
let bound = scope.i.get(value2);
|
|
89
|
+
return bound || (bound = bind(scope, value2), scope.i.set(value2, bound)), bound;
|
|
90
90
|
};
|
|
91
91
|
}
|
|
92
92
|
var bindRenderer = binder(
|
|
93
93
|
(ownerScope, renderer) => renderer && {
|
|
94
94
|
...renderer,
|
|
95
|
-
|
|
95
|
+
j: ownerScope
|
|
96
96
|
}
|
|
97
97
|
), bindFunction = binder(
|
|
98
98
|
(boundScope, fn) => fn.length ? function(...args) {
|
|
@@ -102,38 +102,38 @@ var bindRenderer = binder(
|
|
|
102
102
|
}
|
|
103
103
|
);
|
|
104
104
|
function destroyScope(scope) {
|
|
105
|
-
_destroyScope(scope), scope._?.
|
|
106
|
-
let closureSignals = scope.
|
|
105
|
+
_destroyScope(scope), scope._?.g?.delete(scope);
|
|
106
|
+
let closureSignals = scope.q?.c;
|
|
107
107
|
if (closureSignals)
|
|
108
108
|
for (let signal of closureSignals)
|
|
109
|
-
signal.
|
|
109
|
+
signal.h?.(scope);
|
|
110
110
|
return scope;
|
|
111
111
|
}
|
|
112
112
|
function _destroyScope(scope) {
|
|
113
|
-
let cleanup = scope.
|
|
113
|
+
let cleanup = scope.g;
|
|
114
114
|
if (cleanup)
|
|
115
115
|
for (let instance of cleanup)
|
|
116
116
|
_destroyScope(instance);
|
|
117
|
-
let controllers = scope.
|
|
117
|
+
let controllers = scope.k;
|
|
118
118
|
if (controllers)
|
|
119
119
|
for (let ctrl of controllers.values())
|
|
120
120
|
ctrl.abort();
|
|
121
121
|
}
|
|
122
122
|
function onDestroy(scope) {
|
|
123
123
|
let parentScope = scope._;
|
|
124
|
-
for (; parentScope && !parentScope.
|
|
125
|
-
(parentScope.
|
|
124
|
+
for (; parentScope && !parentScope.g?.has(scope); )
|
|
125
|
+
(parentScope.g ||= /* @__PURE__ */ new Set()).add(scope), scope = parentScope, parentScope = scope._;
|
|
126
126
|
}
|
|
127
127
|
function removeAndDestroyScope(scope) {
|
|
128
128
|
destroyScope(scope);
|
|
129
|
-
let current = scope.a, stop = scope.
|
|
129
|
+
let current = scope.a, stop = scope.b.nextSibling;
|
|
130
130
|
for (; current !== stop; ) {
|
|
131
131
|
let next = current.nextSibling;
|
|
132
132
|
current.remove(), current = next;
|
|
133
133
|
}
|
|
134
134
|
}
|
|
135
135
|
function insertBefore(scope, parent, nextSibling) {
|
|
136
|
-
let current = scope.a, stop = scope.
|
|
136
|
+
let current = scope.a, stop = scope.b.nextSibling;
|
|
137
137
|
for (; current !== stop; ) {
|
|
138
138
|
let next = current.nextSibling;
|
|
139
139
|
parent.insertBefore(current, nextSibling), current = next;
|
|
@@ -259,14 +259,14 @@ function isVoid(value2) {
|
|
|
259
259
|
|
|
260
260
|
// src/dom/abort-signal.ts
|
|
261
261
|
function resetAbortSignal(scope, id) {
|
|
262
|
-
let controllers = scope.
|
|
262
|
+
let controllers = scope.k;
|
|
263
263
|
if (controllers) {
|
|
264
264
|
let ctrl = controllers.get(id);
|
|
265
265
|
ctrl && (ctrl.abort(), controllers.delete(id));
|
|
266
266
|
}
|
|
267
267
|
}
|
|
268
268
|
function getAbortSignal(scope, id) {
|
|
269
|
-
let controllers = scope.
|
|
269
|
+
let controllers = scope.k ??= /* @__PURE__ */ new Map(), controller = controllers.get(id);
|
|
270
270
|
return controller || (onDestroy(scope), controllers.set(id, controller = new AbortController())), controller.signal;
|
|
271
271
|
}
|
|
272
272
|
|
|
@@ -378,18 +378,18 @@ function walkInternal(walkCodes, scope, currentWalkIndex) {
|
|
|
378
378
|
// src/dom/renderer.ts
|
|
379
379
|
function createScopeWithRenderer(renderer, $global, ownerScope) {
|
|
380
380
|
let newScope = createScope($global);
|
|
381
|
-
if (newScope._ = renderer.
|
|
382
|
-
for (let signal of renderer.
|
|
381
|
+
if (newScope._ = renderer.j || ownerScope, newScope.q = renderer, initRenderer(renderer, newScope), renderer.c)
|
|
382
|
+
for (let signal of renderer.c)
|
|
383
383
|
signal.e?.(newScope);
|
|
384
384
|
return newScope;
|
|
385
385
|
}
|
|
386
386
|
function initRenderer(renderer, scope) {
|
|
387
|
-
let dom = typeof renderer == "string" ? document.createElement(renderer) : renderer.
|
|
387
|
+
let dom = typeof renderer == "string" ? document.createElement(renderer) : renderer.f();
|
|
388
388
|
return walk(
|
|
389
389
|
dom.nodeType === 11 /* DocumentFragment */ ? dom.firstChild : dom,
|
|
390
|
-
renderer.
|
|
390
|
+
renderer.l ?? " ",
|
|
391
391
|
scope
|
|
392
|
-
), scope.a = dom.nodeType === 11 /* DocumentFragment */ ? dom.firstChild : dom, scope.
|
|
392
|
+
), scope.a = dom.nodeType === 11 /* DocumentFragment */ ? dom.firstChild : dom, scope.b = dom.nodeType === 11 /* DocumentFragment */ ? dom.lastChild : dom, renderer.m && renderer.m(scope), dom;
|
|
393
393
|
}
|
|
394
394
|
function dynamicTagAttrs(nodeAccessor, renderBody, inputIsArgs) {
|
|
395
395
|
return (scope, getAttrs, clean) => {
|
|
@@ -423,23 +423,23 @@ function dynamicTagAttrs(nodeAccessor, renderBody, inputIsArgs) {
|
|
|
423
423
|
}
|
|
424
424
|
function createRenderer(template, walks, setup, closureSignals, hasUserEffects = 0, args) {
|
|
425
425
|
return {
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
426
|
+
n: template,
|
|
427
|
+
l: walks && /* @__PURE__ */ trimWalkString(walks),
|
|
428
|
+
m: setup,
|
|
429
|
+
f: _clone,
|
|
430
|
+
c: new Set(closureSignals),
|
|
431
431
|
r: hasUserEffects,
|
|
432
|
-
|
|
432
|
+
o: void 0,
|
|
433
433
|
d: args,
|
|
434
|
-
|
|
434
|
+
j: void 0
|
|
435
435
|
};
|
|
436
436
|
}
|
|
437
437
|
function _clone() {
|
|
438
|
-
let sourceNode = this.
|
|
438
|
+
let sourceNode = this.o;
|
|
439
439
|
if (!sourceNode) {
|
|
440
|
-
let walks = this.
|
|
441
|
-
this.
|
|
442
|
-
this.
|
|
440
|
+
let walks = this.l, ensureFragment = walks && walks.length < 4 && walks.charCodeAt(walks.length - 1) !== 32 /* Get */;
|
|
441
|
+
this.o = sourceNode = parse(
|
|
442
|
+
this.n,
|
|
443
443
|
ensureFragment
|
|
444
444
|
);
|
|
445
445
|
}
|
|
@@ -484,7 +484,7 @@ function closure(ownerValueAccessor, fn, _getOwnerScope, intersection2, valueWit
|
|
|
484
484
|
currentMark = scope[markAccessor] = (scope[markAccessor] ?? 0) + 1;
|
|
485
485
|
else if (scope[markAccessor] === void 0) {
|
|
486
486
|
ownerScope = getOwnerScope(scope), ownerValueAccessor2 = getOwnerValueAccessor(scope);
|
|
487
|
-
let ownerMark = ownerScope[ownerValueAccessor2 + "#" /* Mark */], ownerHasRun = ownerMark === void 0 ? !ownerScope.
|
|
487
|
+
let ownerMark = ownerScope[ownerValueAccessor2 + "#" /* Mark */], ownerHasRun = ownerMark === void 0 ? !ownerScope.p : ownerMark === 0;
|
|
488
488
|
scope[markAccessor] = (currentMark = ownerHasRun ? 1 : 2) - 1, clean = void 0;
|
|
489
489
|
} else
|
|
490
490
|
currentMark = scope[markAccessor]--, clean = scope[cleanAccessor] &&= clean;
|
|
@@ -506,7 +506,7 @@ function dynamicClosure(ownerValueAccessor, fn, _getOwnerScope, intersection2, v
|
|
|
506
506
|
bindFunction(scope, signalFn)
|
|
507
507
|
);
|
|
508
508
|
},
|
|
509
|
-
|
|
509
|
+
h(scope) {
|
|
510
510
|
let ownerScope = getOwnerScope(scope), providerSubscriptionsAccessor = getOwnerValueAccessor(scope) + "*" /* Subscribers */;
|
|
511
511
|
ownerScope[providerSubscriptionsAccessor]?.delete(
|
|
512
512
|
bindFunction(scope, signalFn)
|
|
@@ -525,10 +525,10 @@ function childClosures(closureSignals, childAccessor) {
|
|
|
525
525
|
for (let closureSignal of closureSignals)
|
|
526
526
|
closureSignal.e?.(childScope);
|
|
527
527
|
},
|
|
528
|
-
|
|
528
|
+
h(scope) {
|
|
529
529
|
let childScope = scope[childAccessor];
|
|
530
530
|
for (let closureSignal of closureSignals)
|
|
531
|
-
closureSignal.
|
|
531
|
+
closureSignal.h?.(childScope);
|
|
532
532
|
}
|
|
533
533
|
});
|
|
534
534
|
}
|
|
@@ -548,7 +548,7 @@ function setTagVar(scope, childAccessor, tagVarSignal2) {
|
|
|
548
548
|
);
|
|
549
549
|
}
|
|
550
550
|
var tagVarSignal = (scope, value2, clean) => scope["/" /* TagVariable */]?.(value2, clean), renderBodyClosures = (renderBody, childScope, clean) => {
|
|
551
|
-
let signals = renderBody?.
|
|
551
|
+
let signals = renderBody?.c;
|
|
552
552
|
if (signals)
|
|
553
553
|
for (let signal of signals)
|
|
554
554
|
signal(childScope, clean);
|
|
@@ -593,7 +593,7 @@ function inConditionalScope(signal, nodeAccessor) {
|
|
|
593
593
|
let conditionalScope = scope[scopeAccessor];
|
|
594
594
|
if (conditionalScope) {
|
|
595
595
|
let conditionalRenderer = scope[rendererAccessor];
|
|
596
|
-
(!conditionalRenderer?.
|
|
596
|
+
(!conditionalRenderer?.c || conditionalRenderer.c.has(signal)) && signal(conditionalScope, clean);
|
|
597
597
|
}
|
|
598
598
|
};
|
|
599
599
|
}
|
|
@@ -649,7 +649,7 @@ function loopTo(nodeAccessor, renderer) {
|
|
|
649
649
|
});
|
|
650
650
|
}
|
|
651
651
|
function loop(nodeAccessor, renderer, forEach) {
|
|
652
|
-
let loopScopeAccessor = nodeAccessor + "!" /* LoopScopeArray */, closureSignals = renderer.
|
|
652
|
+
let loopScopeAccessor = nodeAccessor + "!" /* LoopScopeArray */, closureSignals = renderer.c, params = renderer.d;
|
|
653
653
|
return (scope, value2, clean) => {
|
|
654
654
|
if (clean) {
|
|
655
655
|
for (let childScope of scope[loopScopeAccessor]) {
|
|
@@ -679,7 +679,7 @@ function loop(nodeAccessor, renderer, forEach) {
|
|
|
679
679
|
if (referenceIsMarker) {
|
|
680
680
|
oldMap === emptyMarkerMap && getEmptyScope(referenceNode);
|
|
681
681
|
let oldLastChild = oldArray[oldArray.length - 1];
|
|
682
|
-
afterReference = oldLastChild.
|
|
682
|
+
afterReference = oldLastChild.b.nextSibling, parentNode = oldLastChild.a.parentNode;
|
|
683
683
|
} else
|
|
684
684
|
afterReference = null, parentNode = referenceNode;
|
|
685
685
|
reconcile(parentNode, oldArray, newArray, afterReference);
|
|
@@ -729,7 +729,7 @@ function register(id, obj) {
|
|
|
729
729
|
}
|
|
730
730
|
function getRegisteredWithScope(registryId, scope) {
|
|
731
731
|
let obj = registeredObjects.get(registryId);
|
|
732
|
-
return scope ? obj.
|
|
732
|
+
return scope ? obj.n ? bindRenderer(scope, obj) : bindFunction(scope, obj) : obj;
|
|
733
733
|
}
|
|
734
734
|
var scopeLookup = {};
|
|
735
735
|
function init(runtimeId = "M" /* DefaultRuntimeId */) {
|
|
@@ -765,7 +765,7 @@ function init(runtimeId = "M" /* DefaultRuntimeId */) {
|
|
|
765
765
|
else if (token === "]" /* SectionEnd */) {
|
|
766
766
|
if (scope[data2] = currentNode, scopeId < currentScopeId) {
|
|
767
767
|
let currScope = scopeLookup[currentScopeId], currParent = currentNode.parentNode, startNode = currScope.a;
|
|
768
|
-
currParent !== startNode.parentNode && currParent.prepend(startNode), currScope.
|
|
768
|
+
currParent !== startNode.parentNode && currParent.prepend(startNode), currScope.b = currentNode.previousSibling, currentScopeId = stack.pop();
|
|
769
769
|
}
|
|
770
770
|
} else if (token === "|" /* SectionSingleNodesEnd */) {
|
|
771
771
|
scope[parseInt(data2)] = currentNode;
|
|
@@ -776,7 +776,7 @@ function init(runtimeId = "M" /* DefaultRuntimeId */) {
|
|
|
776
776
|
let childScope = getScope(childScopeIds[i]);
|
|
777
777
|
for (; (currentNode = currentNode.previousSibling).nodeType === 8; )
|
|
778
778
|
;
|
|
779
|
-
childScope.a = childScope.
|
|
779
|
+
childScope.a = childScope.b = currentNode;
|
|
780
780
|
}
|
|
781
781
|
}
|
|
782
782
|
}
|
|
@@ -901,4 +901,54 @@ var createTemplate = (renderer, templateId) => register(templateId, new ClientTe
|
|
|
901
901
|
);
|
|
902
902
|
}
|
|
903
903
|
};
|
|
904
|
-
|
|
904
|
+
|
|
905
|
+
// src/dom/compat.ts
|
|
906
|
+
var compat = {
|
|
907
|
+
register,
|
|
908
|
+
patchConditionals,
|
|
909
|
+
queueEffect,
|
|
910
|
+
isRenderer(renderer) {
|
|
911
|
+
return renderer.f !== void 0;
|
|
912
|
+
},
|
|
913
|
+
getStartNode(scope) {
|
|
914
|
+
return scope.a;
|
|
915
|
+
},
|
|
916
|
+
setScopeNodes(scope, startNode, endNode) {
|
|
917
|
+
scope.a = startNode, scope.b = endNode;
|
|
918
|
+
},
|
|
919
|
+
runComponentEffects() {
|
|
920
|
+
runEffects(this.effects);
|
|
921
|
+
},
|
|
922
|
+
resolveRenderer(renderer) {
|
|
923
|
+
if (renderer && typeof renderer == "object") {
|
|
924
|
+
if (Array.isArray(renderer)) {
|
|
925
|
+
let [registerId, scopeId] = renderer, scope = scopeLookup[scopeId];
|
|
926
|
+
return getRegisteredWithScope(registerId, scope);
|
|
927
|
+
}
|
|
928
|
+
if (renderer.f)
|
|
929
|
+
return renderer;
|
|
930
|
+
}
|
|
931
|
+
},
|
|
932
|
+
createRenderer(setup, clone, args) {
|
|
933
|
+
let renderer = createRenderer("", void 0, setup, void 0, 1, args);
|
|
934
|
+
return renderer.f = clone, renderer;
|
|
935
|
+
},
|
|
936
|
+
render(isHydrate, out, component, renderer, input) {
|
|
937
|
+
let args = renderer.d || noop, existing = !1, scope = isHydrate ? component.scope = scopeLookup[out.global.componentIdToScopeId[component.id]] : component.scope;
|
|
938
|
+
if (component.effects = prepare(() => {
|
|
939
|
+
if (scope)
|
|
940
|
+
args(scope, input, 1), existing = !0;
|
|
941
|
+
else {
|
|
942
|
+
scope = component.scope = createScopeWithRenderer(renderer, out.global);
|
|
943
|
+
let closures = renderer.c;
|
|
944
|
+
if (closures)
|
|
945
|
+
for (let signal of closures)
|
|
946
|
+
signal(component.scope, !0);
|
|
947
|
+
}
|
|
948
|
+
args(scope, input);
|
|
949
|
+
}), !existing)
|
|
950
|
+
return scope.a === scope.b ? scope.a : scope.a.parentNode;
|
|
951
|
+
}
|
|
952
|
+
};
|
|
953
|
+
function noop() {
|
|
954
|
+
}
|