Home / Function/ element() — svelte Function Reference

element() — svelte Function Reference

Architecture documentation for the element() function in svelte-element.js from the svelte codebase.

Entity Profile

Dependency Diagram

graph TD
  0ea8cc86_b858_f4aa_3e5d_68ffcb0df96a["element()"]
  d44c164a_8773_0ccd_b05e_92f2db5172c5["svelte-element.js"]
  0ea8cc86_b858_f4aa_3e5d_68ffcb0df96a -->|defined in| d44c164a_8773_0ccd_b05e_92f2db5172c5
  b31601aa_35ce_7827_5394_99fb97fa27d2["hydrate_next()"]
  0ea8cc86_b858_f4aa_3e5d_68ffcb0df96a -->|calls| b31601aa_35ce_7827_5394_99fb97fa27d2
  1bd7dd6f_4c22_6f44_9747_fc5ea0deaa7b["block()"]
  0ea8cc86_b858_f4aa_3e5d_68ffcb0df96a -->|calls| 1bd7dd6f_4c22_6f44_9747_fc5ea0deaa7b
  8783b6d3_ff2d_7032_cf54_f6a71da85e37["ensure()"]
  0ea8cc86_b858_f4aa_3e5d_68ffcb0df96a -->|calls| 8783b6d3_ff2d_7032_cf54_f6a71da85e37
  d4f2071b_0f08_019b_a9cb_af73d3474607["set_should_intro()"]
  0ea8cc86_b858_f4aa_3e5d_68ffcb0df96a -->|calls| d4f2071b_0f08_019b_a9cb_af73d3474607
  e23e5c5c_05b1_afa5_e280_5c89012b55a7["assign_nodes()"]
  0ea8cc86_b858_f4aa_3e5d_68ffcb0df96a -->|calls| e23e5c5c_05b1_afa5_e280_5c89012b55a7
  1f8b4192_1e2b_e1e2_0124_82f532b0751c["is_raw_text_element()"]
  0ea8cc86_b858_f4aa_3e5d_68ffcb0df96a -->|calls| 1f8b4192_1e2b_e1e2_0124_82f532b0751c
  e3f9d623_9f97_2d01_0473_63e757414179["append()"]
  0ea8cc86_b858_f4aa_3e5d_68ffcb0df96a -->|calls| e3f9d623_9f97_2d01_0473_63e757414179
  f3bd5a62_2879_ccbe_7046_712cbf9eeaab["get_first_child()"]
  0ea8cc86_b858_f4aa_3e5d_68ffcb0df96a -->|calls| f3bd5a62_2879_ccbe_7046_712cbf9eeaab
  ec54e18a_a454_5d8c_9e00_7bc16e4f49c4["create_text()"]
  0ea8cc86_b858_f4aa_3e5d_68ffcb0df96a -->|calls| ec54e18a_a454_5d8c_9e00_7bc16e4f49c4
  f5b61c69_d41c_bdb7_b931_5b8b3374332c["set_hydrating()"]
  0ea8cc86_b858_f4aa_3e5d_68ffcb0df96a -->|calls| f5b61c69_d41c_bdb7_b931_5b8b3374332c
  40f27ad3_30bb_8f2a_3fb3_757088cf7428["set_hydrate_node()"]
  0ea8cc86_b858_f4aa_3e5d_68ffcb0df96a -->|calls| 40f27ad3_30bb_8f2a_3fb3_757088cf7428
  57f35e2f_a295_bb76_dbaa_8aed52d58d01["set_animation_effect_override()"]
  0ea8cc86_b858_f4aa_3e5d_68ffcb0df96a -->|calls| 57f35e2f_a295_bb76_dbaa_8aed52d58d01
  20340432_01a2_6741_abf4_60ccab51cdb3["teardown()"]
  0ea8cc86_b858_f4aa_3e5d_68ffcb0df96a -->|calls| 20340432_01a2_6741_abf4_60ccab51cdb3
  style 0ea8cc86_b858_f4aa_3e5d_68ffcb0df96a fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/svelte/src/internal/client/dom/blocks/svelte-element.js lines 31–152

export function element(node, get_tag, is_svg, render_fn, get_namespace, location) {
	let was_hydrating = hydrating;

	if (hydrating) {
		hydrate_next();
	}

	var filename = DEV && location && component_context?.function[FILENAME];

	/** @type {null | Element} */
	var element = null;

	if (hydrating && hydrate_node.nodeType === ELEMENT_NODE) {
		element = /** @type {Element} */ (hydrate_node);
		hydrate_next();
	}

	var anchor = /** @type {TemplateNode} */ (hydrating ? hydrate_node : node);

	/**
	 * We track this so we can set it when changing the element, allowing any
	 * `animate:` directive to bind itself to the correct block
	 */
	var parent_effect = /** @type {Effect} */ (active_effect);

	var branches = new BranchManager(anchor, false);

	block(() => {
		const next_tag = get_tag() || null;
		var ns = get_namespace ? get_namespace() : is_svg || next_tag === 'svg' ? NAMESPACE_SVG : null;

		if (next_tag === null) {
			branches.ensure(null, null);
			set_should_intro(true);
			return;
		}

		branches.ensure(next_tag, (anchor) => {
			if (next_tag) {
				element = hydrating
					? /** @type {Element} */ (element)
					: ns
						? document.createElementNS(ns, next_tag)
						: document.createElement(next_tag);

				if (DEV && location) {
					// @ts-expect-error
					element.__svelte_meta = {
						parent: dev_stack,
						loc: {
							file: filename,
							line: location[0],
							column: location[1]
						}
					};
				}

				assign_nodes(element, element);

				if (render_fn) {
					if (hydrating && is_raw_text_element(next_tag)) {
						// prevent hydration glitches
						element.append(document.createComment(''));
					}

					// If hydrating, use the existing ssr comment as the anchor so that the
					// inner open and close methods can pick up the existing nodes correctly
					var child_anchor = hydrating
						? get_first_child(element)
						: element.appendChild(create_text());

					if (hydrating) {
						if (child_anchor === null) {
							set_hydrating(false);
						} else {
							set_hydrate_node(child_anchor);
						}
					}

					set_animation_effect_override(parent_effect);

Domain

Subdomains

Frequently Asked Questions

What does element() do?
element() is a function in the svelte codebase, defined in packages/svelte/src/internal/client/dom/blocks/svelte-element.js.
Where is element() defined?
element() is defined in packages/svelte/src/internal/client/dom/blocks/svelte-element.js at line 31.
What does element() call?
element() calls 13 function(s): append, assign_nodes, block, create_text, ensure, get_first_child, hydrate_next, is_raw_text_element, and 5 more.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free