Overview
The ShadowTemplateMixin lets you define a component template that will be used to popuplate the shadow subtree of new component instances. These helpers, especially the html function, are intended to simplify the creation of such templates.
In particular, these helpers can be useful in patching templates inherited from a base class.
Some of these functions take descriptors that can either be a class, a tag name, or an HTML template. These are generally used to fill specific roles in an element's template; see element roles.
API
create Element(descriptor) static method
Create an element from a role descriptor (a component class constructor or an HTML tag name).
If the descriptor is an HTML template, and the resulting document fragment contains a single top-level node, that node is returned directly (instead of the fragment).
Parameters:
- descriptor:
(component class constructor)|HTMLTemplateElement|string
– the descriptor that will be used to create the element
Returns: Element
the new element
replace(original, replacement) static method
Replace an original node in a tree or document fragment with the indicated replacement node. The attributes, classes, styles, and child nodes of the original node will be moved to the replacement.
Parameters:
- original:
Node
– an existing node to be replaced - replacement:
Node
– the node to replace the existing node with
Returns: Node
the updated replacement node
transmute(original, descriptor) static method
Replace a node with a new element, transferring all attributes, classes, styles, and child nodes from the original(s) to the replacement(s).
The descriptor used for the replacements can be a 1) component class constructor, 2) an HTML tag name, or 3) an HTML template. For #1 and #2, if the existing elements that match the selector are already of the desired class/tag name, the replacement operation is skipped.
Parameters:
- original:
Element
– the node to replace - descriptor:
(component class constructor)|HTMLTemplateElement|string
– the descriptor used to generate the replacement element
Returns: Element
the replacement node(s)