tangled
alpha
login
or
join now
tombl.dev
/
dhtml
1
fork
atom
a post-component library for building user-interfaces on the web.
1
fork
atom
overview
issues
pulls
pipelines
use document attached node creation methods
tombl.dev
1 year ago
b4ab6b18
8e8f2cd8
verified
This commit was signed with the committer's
known signature
.
tombl.dev
SSH Key Fingerprint:
SHA256:d8AHgL5V+3WdvGdDb3SVBfb0RIRJfkKcqhQ5aG1mVNk=
+6
-6
4 changed files
expand all
collapse all
unified
split
src
client
compiler.ts
parts.ts
root.ts
span.ts
+1
-1
src/client/compiler.ts
reviewed
···
61
61
// also reverse it because that's the correct order for splitting.
62
62
const nodes = [...node.data.matchAll(DYNAMIC_GLOBAL)].reverse().map(match => {
63
63
node.splitText(match.index + match[0].length)
64
64
-
const dyn = new Comment()
64
64
+
const dyn = document.createComment('')
65
65
node.splitText(match.index).replaceWith(dyn)
66
66
return [dyn, parseInt(match[1])] as const
67
67
})
+1
-1
src/client/parts.ts
reviewed
···
178
178
span._start.data = '' + value
179
179
} else {
180
180
delete_contents(span)
181
181
-
if (value !== null) insert_node(span, value instanceof Node ? value : new Text('' + value))
181
181
+
if (value !== null) insert_node(span, value instanceof Node ? value : document.createTextNode('' + value))
182
182
}
183
183
}
184
184
+2
-2
src/client/root.ts
reviewed
···
15
15
}
16
16
17
17
export function create_root_into(parent: Node): Root {
18
18
-
const marker = new Text()
18
18
+
const marker = document.createTextNode('')
19
19
parent.appendChild(marker)
20
20
return create_root(create_span(marker))
21
21
}
22
22
23
23
export function create_root_after(node: Node): Root {
24
24
assert(node.parentNode, 'expected a parent node')
25
25
-
const marker = new Text()
25
25
+
const marker = document.createTextNode('')
26
26
node.parentNode.insertBefore(marker, node.nextSibling)
27
27
return create_root(create_span(marker))
28
28
}
+2
-2
src/client/span.ts
reviewed
···
45
45
}
46
46
47
47
export function extract_contents(span: Span): DocumentFragment {
48
48
-
span._marker = new Text()
48
48
+
span._marker = document.createTextNode('')
49
49
span._parent.insertBefore(span._marker, span._start)
50
50
51
51
const fragment = document.createDocumentFragment()
···
56
56
}
57
57
58
58
export function delete_contents(span: Span): void {
59
59
-
span._marker = new Text()
59
59
+
span._marker = document.createTextNode('')
60
60
span._parent.insertBefore(span._marker, span._start)
61
61
62
62
for (const node of nodes(span)) span._parent.removeChild(node)