pull/12215/head
Rich Harris 2 months ago
parent 6dabf23f63
commit 59f1ecfa9d

@ -53,19 +53,19 @@ export function template(content, flags) {
if (!is_fragment) node = /** @type {Node} */ (node.firstChild);
}
var clone = use_import_node ? document.importNode(node, true) : node.cloneNode(true);
var clone = /** @type {import('#client').TemplateNode} */ (
use_import_node ? document.importNode(node, true) : node.cloneNode(true)
);
var start = is_fragment
? has_start
? /** @type {import('#client').TemplateNode} */ (clone.firstChild)
: unset
? undefined
: null
: /** @type {import('#client').TemplateNode} */ (clone);
if (is_fragment) {
var first = /** @type {import('#client').TemplateNode} */ (clone.firstChild);
var start = has_start ? first : unset ? undefined : null;
var end = /** @type {import('#client').TemplateNode} */ (clone.lastChild);
var end = /** @type {import('#client').TemplateNode} */ (is_fragment ? clone.lastChild : clone);
assign_nodes(start, end, /** @type {import('#client').TemplateNode} */ (clone.firstChild));
assign_nodes(start, end, first);
} else {
assign_nodes(clone, clone);
}
return clone;
};
@ -110,6 +110,7 @@ export function ns_template(content, flags, ns = 'svg') {
var node;
var has_start = !content.startsWith('<!>');
var unset = (flags & TEMPLATE_UNSET_START) !== 0;
return () => {
if (hydrating) {
@ -132,17 +133,17 @@ export function ns_template(content, flags, ns = 'svg') {
}
}
var clone = node.cloneNode(true);
var clone = /** @type {import('#client').TemplateNode} */ (node.cloneNode(true));
var start = is_fragment
? has_start
? /** @type {import('#client').TemplateNode} */ (clone.firstChild)
: null
: /** @type {import('#client').TemplateNode} */ (clone);
if (is_fragment) {
var first = /** @type {import('#client').TemplateNode} */ (clone.firstChild);
var start = has_start ? first : unset ? undefined : null;
var end = /** @type {import('#client').TemplateNode} */ (clone.lastChild);
var end = /** @type {import('#client').TemplateNode} */ (is_fragment ? clone.lastChild : clone);
assign_nodes(start, end);
assign_nodes(start, end, first);
} else {
assign_nodes(clone, clone);
}
return clone;
};

Loading…
Cancel
Save