The HTMLElement.accessKeyLabel read-only property returns a string containing the element's browser-assigned access key (if any); otherwise it returns an empty string.
The Element.attributes property returns a live collection of all attribute nodes registered to the specified node. It is a NamedNodeMap, not an Array, so it has no Array methods and the Attr nodes' indexes may differ among browsers. To be more specific, attributes is a key/value pair of strings that represents any information regarding that attribute.
The autocapitalize property of the HTMLElement interface represents the element's capitalization behavior for user input. It is available on all HTML elements, though it doesn't affect all of them, including:
The autocorrect property of the HTMLElement interface controls whether or not autocorrection of editable text is enabled for spelling and/or punctuation errors.
The read-only childNodes property of the Node interface returns a live NodeList of child nodes of the given element where the first child node is assigned index 0. Child nodes include elements, text and comments.
The clientHeight read-only property of the Element interface is zero for elements with no CSS or inline layout boxes; otherwise, it's the inner height of an element in pixels. It includes padding but excludes borders, margins, and horizontal scrollbars (if present).
The clientLeft read-only property of the Element interface returns the width of the left border of an element in pixels. It includes the width of the vertical scrollbar if the text direction of the element is right-to-left and if there is an overflow causing a left vertical scrollbar to be rendered. clientLeft does not include the left margin or the left padding.
The clientWidth read-only property of the Element interface is zero for inline elements and elements with no CSS; otherwise, it's the inner width of an element in pixels. It includes padding but excludes borders, margins, and vertical scrollbars (if present).
The currentCSSZoom read-only property of the Element interface provides the "effective" CSS zoom of an element, taking into account the zoom applied to the element and all its parent elements.
The HTMLElement property inert reflects the value of the element's inert attribute. It is a boolean value that, when present, makes the browser "ignore" user input events for the element, including focus events and events from assistive technologies. The browser may also ignore page search and text selection in the element. This can be useful when building UIs such as modals where you would want to "trap" the focus inside the modal when it's visible.
The innerHTML property of the Element interface gets or sets the HTML or XML markup contained within the element, omitting any shadow roots in both cases.
The read-only isConnected property of the Node interface returns a boolean indicating whether the node is connected (directly or indirectly) to a Document object.
The lang property of the HTMLElement interface indicates the base language of an element's attribute values and text content, in the form of a BCP 47 language tag. It reflects the element's lang attribute; the xml:lang attribute does not affect this property.
The read-only nextSibling property of the Node interface returns the node immediately following the specified one in their parent's childNodes, or returns null if the specified node is the last child in the parent element.
The read-only nodeType property of a Node interface is an integer that identifies what the node is. It distinguishes different kinds of nodes from each other, such as elements, text, and comments.
The offsetHeight read-only property of the HTMLElement interface returns the height of an element, including vertical padding and borders, as an integer.
The offsetLeft read-only property of the HTMLElement interface returns the number of pixels that the upper left corner of the current element is offset to the left within the HTMLElement.offsetParent node.
The HTMLElement.offsetParent read-only property returns a reference to the element which is the closest (nearest in the containment hierarchy) positioned ancestor element.
The offsetTop read-only property of the HTMLElement interface returns the distance from the outer border of the current element (including its margin) to the top padding edge of the offsetParent, the closest positioned ancestor element.
The outerHTML attribute of the Element interface gets or sets the HTML or XML markup of the element and its descendants, omitting any shadow roots in both cases.
The outerText property of the HTMLElement interface returns the same value as HTMLElement.innerText. When used as a setter it replaces the whole current node with the given text (this differs from innerText, which replaces the content inside the current node).
The read-only parentElement property of Node interface returns the DOM node's parent Element, or null if the node either has no parent, or its parent isn't a DOM Element. Node.parentNode on the other hand returns any kind of parent, regardless of its type.
The popover property of the HTMLElement interface gets and sets an element's popover state via JavaScript ("auto", "hint", or "manual"), and can be used for feature detection.
The read-only previousSibling property of the Node interface returns the node immediately preceding the specified one in its parent's childNodes list, or null if the specified node is the first in that list.
The scrollHeight read-only property of the Element interface is a measurement of the height of an element's content, including content not visible on the screen due to overflow.
The scrollLeft property of the Element interface gets or sets the number of pixels by which an element's content is scrolled from its left edge. This value is subpixel precise in modern browsers, meaning that it isn't necessarily a whole number.
The scrollTop property of the Element interface gets or sets the number of pixels by which an element's content is scrolled from its top edge. This value is subpixel precise in modern browsers, meaning that it isn't necessarily a whole number.
The scrollWidth read-only property of the Element interface is a measurement of the width of an element's content, including content not visible on the screen due to overflow.
The spellcheck property of the HTMLElement interface represents a boolean value that controls the spell-checking hint. It is available on all HTML elements, though it doesn't affect all of them.
The translate property of the HTMLElement interface indicates whether an element's attribute values and the values of its Text node children are to be translated when the page is localized, or whether to leave them unchanged.
The writingSuggestions property of the HTMLElement interface is a string indicating if browser-provided writing suggestions should be enabled under the scope of the element or not.
Marks class as having been finalized, which includes creating properties
from static properties, but does not include all properties created
from decorators.
Nocollapse
StaticReadonlystyles
styles:CSSResult[] = ...
classList
getclassList():DOMTokenList
The read-only classList property of the Element interface contains a live DOMTokenList collection representing the class attribute of the element. This can then be used to manipulate the class list.
The read-only part property of the Element interface contains a DOMTokenList object representing the part identifier(s) of the element. It reflects the element's part content attribute. These can be used to style parts of a shadow DOM, via the ::part pseudo-element.
The HTMLElement.attachInternals() method returns an ElementInternals object. This method allows a custom element to participate in HTML forms. The ElementInternals interface provides utilities for working with these elements in the same way you would work with any standard HTML form element, and also exposes the Accessibility Object Model to the element.
The HTMLElement.click() method simulates a mouse click on an element. When called on an element, the element's click event is fired (unless its disabled attribute is set).
The cloneNode() method of the Node interface returns a duplicate of the node on which this method was called. Its parameter controls if the subtree contained in the node is also cloned or not.
The closest() method of the Element interface traverses the element and its parents (heading toward the document root) until it finds a node that matches the specified CSS selector.
The computedStyleMap() method of the Element interface returns a StylePropertyMapReadOnly interface which provides a read-only representation of a CSS declaration block that is an alternative to CSSStyleDeclaration.
Reference to the created Context Consumer Controller instance
Description
Subscribe to a context. The callback fires when the context resolves, again if the context is replaced, and can also be invoked with undefined if the context is unprovided or the host disconnects. Use this whenever a controller or element needs the context at setup time — both for ongoing observation and for reading values immediately on resolve. This is the default choice; prefer it over getContext unless the context is only needed inside a later user action.
Memberof
UmbClassInterface
contains
contains(other:Node|null):boolean
The contains() method of the Node interface returns a boolean value indicating whether a node is a descendant of a given node, that is the node itself, one of its direct children (childNodes), one of the children's direct children, and so on.
The dispatchEvent() method of the EventTarget sends an Event to the object, (synchronously) invoking the affected event listeners in the appropriate order. The normal event processing rules (including the capturing and optional bubbling phase) also apply to events dispatched manually with dispatchEvent().
The getAttributeNames() method of the Element interface returns the attribute names of the element as an Array of strings. If the element has no attributes it returns an empty array.
The getAttributeNS() method of the Element interface returns the string value of the attribute with the specified namespace and name. If the named attribute does not exist, the value returned will either be null or "" (the empty string); see Notes for details.
The Element.getBoundingClientRect() method returns a DOMRect object providing information about the size of an element and its position relative to the viewport.
The getClientRects() method of the Element interface returns a collection of DOMRect objects that indicate the bounding rectangles for each CSS border box in a client.
A Promise resolving to the Context API instance when available, or undefined when applicable.
Description
Retrieve a context once as a Promise. Use this only when the context is first needed inside a user action or event handler that runs later (for example a button click, a property action, or an entity action execute()). For setup-time access — including a single immediate read — use consumeContext instead so the controller lifecycle handles resolution and cleanup. The returned Promise may reject if the context is not found before the default timeout; callers should handle rejection and/or pass preventTimeout in the options when waiting longer is expected.
The Element method getElementsByClassName() returns a live HTMLCollection which contains every descendant element which has the specified class name or names.
The Element.getElementsByTagNameNS() method returns a live HTMLCollection of elements with the given tag name belonging to the given namespace. It is similar to Document.getElementsByTagNameNS, except that its search is restricted to descendants of the specified element.
The hasAttributeNS() method of the Element interface returns a boolean value indicating whether the current element has the specified attribute with the specified namespace.
The hasPointerCapture() method of the Element interface checks whether the element on which it is invoked has pointer capture for the pointer identified by the given pointer ID.
The hidePopover() method of the HTMLElement interface hides a popover element (i.e., one that has a valid popover attribute) by removing it from the top layer and styling it with display: none.
The insertAdjacentElement() method of the Element interface inserts a given element node at a given position relative to the element it is invoked upon.
The insertAdjacentHTML() method of the Element interface parses the specified input as HTML or XML and inserts the resulting nodes into the DOM tree at a specified position.
The insertAdjacentText() method of the Element interface, given a relative position and a string, inserts a new text node at the given position relative to the element it is called from.
The isDefaultNamespace() method of the Node interface accepts a namespace URI as an argument. It returns a boolean value that is true if the namespace is the default namespace on the given node and false if not. The default namespace can be retrieved with Node.lookupNamespaceURI() by passing null as the argument.
The isEqualNode() method of the Node interface tests whether two nodes are equal. Two nodes are equal when they have the same type, defining characteristics (for elements, this would be their ID, number of children, and so forth), its attributes match, and so on. The specific set of data points that must match varies depending on the types of the nodes.
The isSameNode() method of the Node interface is a legacy alias the for the === strict equality operator. That is, it tests whether two nodes are the same (in other words, whether they reference the same object).
The lookupNamespaceURI() method of the Node interface takes a prefix as parameter and returns the namespace URI associated with it on the given node if found (and null if not). This method's existence allows Node objects to be passed as a namespace resolver to XPathEvaluator.createExpression() and XPathEvaluator.evaluate().
The lookupPrefix() method of the Node interface returns a string containing the prefix for a given namespace URI, if present, and null if not. When multiple prefixes are possible, the first prefix is returned.
The normalize() method of the Node interface puts the specified node and all of its sub-tree into a normalized form. In a normalized sub-tree, no text nodes in the sub-tree are empty and there are no adjacent text nodes.
Define an explicit controller alias. If not defined then one will be generated based on the callback function. If null is parsed no controller alias will be given.
The releasePointerCapture() method of the Element interface releases (stops) pointer capture that was previously set for a specific (PointerEvent) pointer.
The Element interface's scrollIntoView() method scrolls the element's ancestor containers such that the element on which scrollIntoView() is called is visible to the user.
The setAttribute() method of the Element interface sets the value of an attribute on the specified element. If the attribute already exists, the value is updated; otherwise a new attribute is added with the specified name and value.
The setHTMLUnsafe() method of the Element interface is used to parse HTML input into a DocumentFragment, optionally filtering out unwanted elements and attributes, and those that don't belong in the context, and then using it to replace the element's subtree in the DOM.
The setPointerCapture() method of the Element interface is used to designate a specific element as the capture target of future pointer events. Subsequent events for the pointer will be targeted at the capture element until capture is released (via Element.releasePointerCapture() or the pointerup event is fired).
The showPopover() method of the HTMLElement interface shows a popover element (i.e., one that has a valid popover attribute) by adding it to the top layer.
The toggleAttribute() method of the Element interface toggles a Boolean attribute (removing it if it is present and adding it if it is not present) on the given element.
The togglePopover() method of the HTMLElement interface toggles a popover element (i.e., one that has a valid popover attribute) between the hidden and showing states.
Adds an initializer function to the class that is called during instance
construction.
This is useful for code that runs against a ReactiveElement
subclass, such as a decorator, that needs to do work for each
instance, such as setting up a ReactiveController.
constmyDecorator = (target: typeofReactiveElement, key: string) => { target.addInitializer((instance: ReactiveElement) => { // This is run during construction of the element newMyController(instance); }); }
Decorating a field will then cause each instance to run an initializer
that adds a controller:
Initializers are stored per-constructor. Adding an initializer to a
subclass does not add it to a superclass. Since initializers are run in
constructors, initializers will run in order of the class hierarchy,
starting with superclasses and progressing to the instance's class.
Parameters
initializer: Initializer
Returns void
Nocollapse
ProtectedStaticfinalize
finalize():void
Finishes setting up the class so that it's ready to be registered
as a custom element and instantiated.
This method is called by the ReactiveElement.observedAttributes getter.
If you override the observedAttributes getter, you must either call
super.observedAttributes to trigger finalization, or call finalize()
yourself.
Returns void
Nocollapse
attributes
StaticobservedAttributes
getobservedAttributes():string[]
Returns a list of attributes corresponding to the registered properties.
Synchronizes property values when attributes change.
Specifically, when an attribute is set, the corresponding property is set.
You should rarely need to implement this callback. If this method is
overridden, super.attributeChangedCallback(name, _old, value) must be
called.
Registers a ReactiveController to participate in the element's reactive
update cycle. The element automatically calls into any registered
controllers during its lifecycle callbacks.
If the element is connected when addController() is called, the
controller's hostConnected() callback will be immediately called.
Disable the given warning category for this class.
This method only exists in development builds, so it should be accessed
with a guard like:
// Disable for all ReactiveElement subclasses ReactiveElement.disableWarning?.('migration');
// Disable for only MyElement and subclasses MyElement.disableWarning?.('migration');
Nocollapse
StaticOptionalenabledWarnings
enabledWarnings?:WarningKind[]
Read or set all the enabled warning categories for this class.
This property is only used in development builds.
Nocollapse
StaticOptionalenableWarning
enableWarning?:(warningKind:WarningKind)=>void
Enable the given warning category for this class.
This method only exists in development builds, so it should be accessed
with a guard like:
// Enable for all ReactiveElement subclasses ReactiveElement.enableWarning?.('migration');
// Enable for only MyElement and subclasses MyElement.enableWarning?.('migration');
Nocollapse
lifecycle
connectedCallback
connectedCallback():void
Invoked when the component is added to the document's DOM.
In connectedCallback() you should setup tasks that should only occur when
the element is connected to the document. The most common of these is
adding event listeners to nodes external to the element, like a keydown
event handler added to the window.
Typically, anything done in connectedCallback() should be undone when the
element is disconnected, in disconnectedCallback().
Returns void
disconnectedCallback
disconnectedCallback():void
Invoked when the component is removed from the document's DOM.
This callback is the main signal to the element that it may no longer be
used. disconnectedCallback() should ensure that nothing is holding a
reference to the element (such as event listeners added to nodes external
to the element), so that it is free to be garbage collected.
An element may be re-connected after being disconnected.
Returns void
properties
StaticelementProperties
elementProperties:PropertyDeclarationMap
Memoized list of all element properties, including any superclass
properties. Created lazily on user subclasses when finalizing the class.
Nocollapse
Staticproperties
properties:PropertyDeclarations
User-supplied object that maps property names to PropertyDeclaration
objects containing options for configuring reactive properties. When
a reactive property is set the element will update and render.
By default properties are public fields, and as such, they should be
considered as primarily settable by element users, either via attribute or
the property itself.
Generally, properties that are changed by the element should be private or
protected fields and should use the state: true option. Properties
marked as state do not reflect from the corresponding attribute
However, sometimes element code does need to set a public property. This
should typically only be done in response to user interaction, and an event
should be fired informing the user; for example, a checkbox sets its
checked property when clicked and fires a changed event. Mutating
public properties should typically not be done for non-primitive (object or
array) properties. In other cases when an element needs to manage state, a
private property set with the state: true option should be used. When
needed, state properties can be initialized via public properties to
facilitate complex interactions.
Creates a property accessor on the element prototype if one does not exist
and stores a PropertyDeclaration for the property with the
given options. The property setter calls the property's hasChanged
property option or uses a strict identity check to determine whether or not
to request an update.
This method may be overridden to customize properties; however,
when doing so, it's important to call super.createProperty to ensure
the property is setup correctly. This method calls
getPropertyDescriptor internally to get a descriptor to install.
To customize what properties do when they are get or set, override
getPropertyDescriptor. To customize the options for a property,
implement createProperty like this:
Returns a property descriptor to be defined on the given named property.
If no descriptor is returned, the property will not become an accessor.
For example,
Returns the property options associated with the given property.
These options are defined with a PropertyDeclaration via the properties
object or the @property decorator and are registered in
createProperty(...).
Note, this method should be considered "final" and not overridden. To
customize the options for a given property, override
createProperty.
Parameters
name: PropertyKey
Returns PropertyDeclaration<unknown,unknown>
Nocollapse
Final
rendering
ReadonlyrenderOptions
renderOptions:RenderOptions
ReadonlyrenderRoot
renderRoot:HTMLElement|DocumentFragment
Node or ShadowRoot into which element DOM should be rendered. Defaults
to an open shadowRoot.
StaticshadowRootOptions
shadowRootOptions:ShadowRootInit
Options used when calling attachShadow. Set this property to customize
the options for the shadowRoot; for example, to create a closed
shadowRoot: {mode: 'closed'}.
Note, these options are used in createRenderRoot. If this method
is customized, options should be respected if possible.
Nocollapse
ProtectedcreateRenderRoot
createRenderRoot():HTMLElement|DocumentFragment
Returns HTMLElement|DocumentFragment
render
render():TemplateResult<1>
Invoked on each update to perform rendering tasks. This method may return
any value renderable by lit-html's ChildPart - typically a
TemplateResult. Setting properties inside this method will not trigger
the element to update.
Returns TemplateResult<1>
styles
StaticelementStyles
elementStyles:CSSResultOrNative[]
Memoized list of all element styles.
Created lazily on user subclasses when finalizing the class.
Takes the styles the user supplied via the static styles property and
returns the array of styles to apply to the element.
Override this method to integrate into a style management system.
Styles are deduplicated preserving the last instance in the list. This
is a performance optimization to avoid duplicated styles that can occur
especially when composing via subclassing. The last item is kept to try
to preserve the cascade order with the assumption that it's most important
that last added styles override previous styles.
Parameters
Optionalstyles: CSSResultGroup
Returns CSSResultOrNative[]
Nocollapse
updates
hasUpdated
hasUpdated:boolean
Is set to true after the first update. The element code cannot assume
that renderRoot exists before the element hasUpdated.
isUpdatePending
isUpdatePending:boolean
True if there is a pending update as a result of calling requestUpdate().
Should only be read.
updateComplete
getupdateComplete():Promise<boolean>
Returns a Promise that resolves when the element has completed updating.
The Promise value is a boolean that is true if the element completed the
update without triggering another update. The Promise result is false if
a property was set inside updated(). If the Promise is rejected, an
exception was thrown during the update.
To await additional asynchronous work, override the getUpdateComplete
method. For example, it is sometimes useful to await a rendered element
before fulfilling this Promise. To do this, first await
super.getUpdateComplete(), then any subsequent state.
Returns Promise<boolean>
A promise of a boolean that resolves to true if the update completed
without triggering another update.
ProtectedenableUpdating
enableUpdating(_requestedUpdate:boolean):void
Note, this method should be considered final and not overridden. It is
overridden on the element instance with a function that triggers the first
update.
It is not safe to override the updateComplete getter directly due to a
limitation in TypeScript which means it is not possible to call a
superclass getter (e.g. super.updateComplete.then(...)) when the target
language is ES5 (https://github.com/microsoft/TypeScript/issues/338).
This method should be overridden instead. For example:
A promise of a boolean that resolves to true if the update completed
without triggering another update.
ProtectedperformUpdate
performUpdate():void
Performs an element update. Note, if an exception is thrown during the
update, firstUpdated and updated will not be called.
Call performUpdate() to immediately process a pending update. This should
generally not be needed, but it can be done in rare cases when you need to
update synchronously.
Requests an update which is processed asynchronously. This should be called
when an element should update based on some state not triggered by setting
a reactive property. In this case, pass no arguments. It should also be
called when manually implementing a property setter. In this case, pass the
property name and oldValue to ensure that any configured property
options are honored.
property options to use instead of the previously
configured options
OptionaluseNewValue: boolean
if true, the newValue argument is used instead of
reading the property value. This is important to use if the reactive
property is a standard private accessor, as opposed to a plain
property, since private members can't be dynamically read by name.
OptionalnewValue: unknown
the new value of the property. This is only used if
useNewValue is true.
Returns void
ProtectedscheduleUpdate
scheduleUpdate():void|Promise<unknown>
Schedules an element update. You can override this method to change the
timing of updates by returning a Promise. The update will await the
returned Promise, and you should resolve the Promise to allow the update
to proceed. If this method is overridden, super.scheduleUpdate()
must be called.
For instance, to schedule updates to occur just before the next frame:
overrideprotectedasyncscheduleUpdate(): Promise<unknown> { await new Promise((resolve) =>requestAnimationFrame(() =>resolve())); super.scheduleUpdate(); }
Controls whether or not update() should be called when the element requests
an update. By default, this method always returns true, but this can be
customized to control when to update.
Updates the element. This method reflects property values to attributes
and calls render to render DOM via lit-html. Setting properties inside
this method will not trigger another update.
Invoked before update() to compute values needed during the update.
Implement willUpdate to compute property values that depend on other
properties and are used in the rest of the update process.
willUpdate(changedProperties) { // only need to check changed properties for an expensive computation. if (changedProperties.has('firstName') || changedProperties.has('lastName')) { this.sha = computeSHA(`${this.firstName}${this.lastName}`); } }
The
HTMLElement.accessKeyproperty sets the keystroke which a user can press to jump to a given element.MDN Reference