The HTMLElement.accessKey property sets the keystroke which a user can press to jump to a given element.
ReadonlyaccessThe HTMLElement.accessKeyLabel read-only property returns a string containing the element's browser-assigned access key (if any); otherwise it returns an empty string.
ReadonlyassignedReadonlyATTRIBUTE_ReadonlyattributesThe Element.attributes property returns a live collection of all attribute nodes registered to the specified node.
ReadonlyattributeThe autocapitalize property of the HTMLElement interface represents the element's capitalization behavior for user input.
The autocorrect property of the HTMLElement interface controls whether or not autocorrection of editable text is enabled for spelling and/or punctuation errors.
ReadonlybaseThe read-only baseURI property of the Node interface returns the absolute base URL of the document containing the node.
ReadonlyCDATA_node is a CDATASection node.
ReadonlychildReadonlychildThe read-only childNodes property of the Node interface returns a live the first child node is assigned index 0.
ReadonlychildrenReturns the child elements.
The className property of the of the specified element.
ReadonlyclientThe 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.
ReadonlyclientThe clientLeft read-only property of the Element interface returns the width of the left border of an element in pixels.
ReadonlyclientThe clientTop read-only property of the Element interface returns the width of the top border of an element in pixels.
ReadonlyclientThe 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.
ReadonlyCOMMENT_node is a Comment node.
ReadonlycurrentThe 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.
ReadonlydatasetThe HTMLElement.dir property indicates the text writing directionality of the content of the current element.
ReadonlyDOCUMENT_node is a DocumentFragment node.
ReadonlyDOCUMENT_node is a document.
ReadonlyDOCUMENT_Set when other is a descendant of node.
ReadonlyDOCUMENT_Set when other is an ancestor of node.
ReadonlyDOCUMENT_Set when node and other are not in the same tree.
ReadonlyDOCUMENT_Set when other is following node.
ReadonlyDOCUMENT_ReadonlyDOCUMENT_Set when other is preceding node.
ReadonlyDOCUMENT_node is a doctype.
The draggable property of the HTMLElement interface gets and sets a Boolean primitive indicating if the element is draggable.
Controls how a user initiates cell editing within the table.
ReadonlyELEMENT_node is an element.
ReadonlyENTITY_ReadonlyENTITY_ReadonlyfirstThe read-only firstChild property of the Node interface returns the node's first child in the tree, or null if the node has no children.
ReadonlyfirstReturns the first child that is an element, and null otherwise.
The HTMLElement property hidden reflects the value of the element's hidden attribute.
The id property of the Element interface represents the element's identifier, reflecting the id global attribute.
The HTMLElement property inert reflects the value of the element's inert attribute.
The innerHTML property of the Element interface gets or sets the HTML or XML markup contained within the element.
The innerText property of the HTMLElement interface represents the rendered text content of a node and its descendants.
ReadonlyisThe read-only isConnected property of the Node interface returns a boolean indicating whether the node is connected (directly or indirectly) to a Document object.
ReadonlyisThe lang property of the HTMLElement interface indicates the base language of an element's attribute values and text content, in the form of a MISSING: RFC(5646, 'BCP 47 language identifier tag')].
ReadonlylastThe read-only lastChild property of the Node interface returns the last child of the node, or null if there are no child nodes.
ReadonlylastReturns the last child that is an element, and null otherwise.
ReadonlylocalThe Element.localName read-only property returns the local part of the qualified name of an element.
ReadonlynamespaceThe Element.namespaceURI read-only property returns the namespace URI of the element, or null if the element is not in a namespace.
ReadonlynextReturns the first following sibling that is an element, and null otherwise.
ReadonlynextThe read-only nextSibling property of the Node interface returns the node immediately following the specified one in their parent's Node.childNodes, or returns null if the specified node is the last child in the parent element.
ReadonlynodeThe read-only nodeName property of Node returns the name of the current node as a string.
ReadonlynodeThe read-only nodeType property of a Node interface is an integer that identifies what the node is.
The nodeValue property of the Node interface returns or sets the value of the current node.
OptionalnonceReadonlyNOTATION_ReadonlyoffsetThe offsetHeight read-only property of the HTMLElement interface returns the height of an element, including vertical padding and borders, as an integer.
ReadonlyoffsetThe 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.
ReadonlyoffsetThe HTMLElement.offsetParent read-only property returns a reference to the element which is the closest (nearest in the containment hierarchy) positioned ancestor element.
ReadonlyoffsetThe 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 HTMLelement.offsetParent, the closest positioned ancestor element.
ReadonlyoffsetThe offsetWidth read-only property of the HTMLElement interface returns the layout width of an element as an integer.
Available only in secure contexts.
OptionalontouchcancelOptionalontouchendOptionalontouchmoveOptionalontouchstartThe outerHTML attribute of the Element DOM interface gets the serialized HTML fragment describing the element including its descendants.
The outerText property of the HTMLElement interface returns the same value as HTMLElement.innerText.
ReadonlyownerThe read-only ownerDocument property of the Node interface returns the top-level document object of the node.
ReadonlyparentThe 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.
ReadonlyparentThe read-only parentNode property of the Node interface returns the parent of the specified node in the DOM tree.
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.
ReadonlyprefixThe Element.prefix read-only property returns the namespace prefix of the specified element, or null if no prefix is specified.
ReadonlypreviousReturns the first preceding sibling that is an element, and null otherwise.
ReadonlypreviousThe read-only previousSibling property of the Node interface returns the node immediately preceding the specified one in its parent's or null if the specified node is the first in that list.
ReadonlyPROCESSING_node is a ProcessingInstruction node.
When set, editing is completely disabled.
Allows users to reorder columns by dragging and dropping headers.
Default resizability for all columns.
Can be overridden by setting resizable on the specific column definition.
NOTE: Changing this will not clear current column widths.
A callback function to conditionally apply CSS parts to table rows.
ReadonlyscrollThe 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.
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.
ReadonlyscrollThe 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.
ReadonlyshadowThe Element.shadowRoot read-only property represents the shadow root hosted by the element.
The slot property of the Element interface returns the name of the shadow DOM slot the element is inserted in.
Default sortability for all columns.
Can be overridden by setting sortable on the specific column definition.
NOTE: Changing this will not clear sorted column states.
The spellcheck property of the HTMLElement interface represents a boolean value that controls the spell-checking hint.
Enables visual row striping
ReadonlytagThe tagName read-only property of the Element interface returns the tag name of the element on which it's called.
ReadonlyTEXT_node is a Text node.
The HTMLElement.title property represents the title of the element: the text usually displayed in a 'tooltip' popup when the mouse is over the node.
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.
Static_Static Optional_Static[metadata]Protected StaticfinalizedMarks class as having been finalized, which includes creating properties
from static properties, but does not include all properties created
from decorators.
The Element.classList is a read-only property that returns a live DOMTokenList collection of the class attributes of the element.
The explicit, raw visual layout intent for the table's columns. This property acts as the pure state record. It is strictly symmetrical: reading this property will return the exact array of field names that was most recently set, preserving the user's or developer's exact layout preference.
localStorage or a database).The explicit, raw visual layout intent for the table's columns. This property acts as the pure state record. It is strictly symmetrical: reading this property will return the exact array of field names that was most recently set, preserving the user's or developer's exact layout preference.
localStorage or a database).The definitions for the columns to be rendered. This defines the field mapping, titles, sortability, and other static options.
The definitions for the columns to be rendered. This defines the field mapping, titles, sortability, and other static options.
The dynamic runtime state of the table's columns (visibility, width, and sort order).
Unlike the static columns definitions, columnStates represents the current,
interactive state of the grid. This is primarily used for programmatic control,
or for saving and restoring user preferences (e.g., from localStorage).
The dynamic runtime state of the table's columns (visibility, width, and sort order).
Unlike the static columns definitions, columnStates represents the current,
interactive state of the grid. This is primarily used for programmatic control,
or for saving and restoring user preferences (e.g., from localStorage).
The table controller to use for this table component.
The table controller to use for this table component.
Gets a list of columns with the display role This will always be ordered the same as the visual column order
An optional set of criteria to filter the visible rows. This runs before the global search query is applied. *
An optional custom filter function. Provide this function to bypass the default filter logic.
true to keep the row in the filteredData results, false to exclude it.
controller.filterStrategy = (row, filters) => {
// Example: Custom global search across multiple columns
if (filters.globalSearch) {
const term = filters.globalSearch.toLowerCase();
if (
!row.firstName.toLowerCase().includes(term) &&
!row.lastName.toLowerCase().includes(term)
) {
return false;
}
}
// Example: Strict mathematical matching
if (filters.minAge && row.age < filters.minAge) {
return false;
}
return true;
};
An optional custom filter function. Provide this function to bypass the default filter logic.
true to keep the row in the filteredData results, false to exclude it.
controller.filterStrategy = (row, filters) => {
// Example: Custom global search across multiple columns
if (filters.globalSearch) {
const term = filters.globalSearch.toLowerCase();
if (
!row.firstName.toLowerCase().includes(term) &&
!row.lastName.toLowerCase().includes(term)
) {
return false;
}
}
// Example: Strict mathematical matching
if (filters.minAge && row.age < filters.minAge) {
return false;
}
return true;
};
The part property of the Element interface represents the part identifier(s) of the element (i.e., set using the part attribute), returned as a DOMTokenList.
A callback function used to extract or generate a unique identifier for each row.
A stable, unique ID is heavily relied upon by the grid engine for maintaining row selection state, tracking row metadata, and ensuring optimal rendering performance within the virtual scroller—especially when data is actively being sorted, filtered, or updated.
Default Behavior: * If not provided, the table will automatically attempt to locate an id, key, or _id
property on the row data object. If none are found, it falls back to using the row's original
array index (which will trigger a console warning, as indices are inherently unstable during sorting).
Note: Because this expects a JavaScript function, it is exposed strictly as a property
and does not have a corresponding HTML attribute. You must use the property binding syntax
(.rowIdCallback) in a Lit template.
A callback function used to extract or generate a unique identifier for each row.
A stable, unique ID is heavily relied upon by the grid engine for maintaining row selection state, tracking row metadata, and ensuring optimal rendering performance within the virtual scroller—especially when data is actively being sorted, filtered, or updated.
Default Behavior: * If not provided, the table will automatically attempt to locate an id, key, or _id
property on the row data object. If none are found, it falls back to using the row's original
array index (which will trigger a console warning, as indices are inherently unstable during sorting).
Note: Because this expects a JavaScript function, it is exposed strictly as a property
and does not have a corresponding HTML attribute. You must use the property binding syntax
(.rowIdCallback) in a Lit template.
The row selection method to use.
Enables weighted relevance scoring for search results. When enabled, exact matches and prefix matches are ranked higher than substring matches. Rows are sorted by their relevance score descending.
The current text string used to filter the table data. Setting this property triggers a new search and render cycle.
List of currently selected row indexes.
List of currently selected row indexes.
Configuration options for automatically saving and restoring table state (column width, order, visibility, etc.) to the provided storage interface.
The unique key used to store the table state in the browser. *
OptionalsaveColumnOrder?: booleanSave the current order of columns
OptionalsaveColumnSortOrders?: booleanSave the current column sorting
OptionalsaveColumnStickyPositions?: booleanSave the current column sticky positions
OptionalsaveColumnVisibility?: booleanSave the current column visibility
OptionalsaveColumnWidths?: booleanSave the current column widths
OptionalsaveSearchQuery?: booleanSave the current search query
OptionalsaveSelectedRows?: booleanSave the currently selected rows
Optionalstorage?: StorageInterfaceA storage client for getting and setting values. Defaults to window.localStorage
Configuration options for automatically saving and restoring table state (column width, order, visibility, etc.) to the provided storage interface.
The unique key used to store the table state in the browser. *
OptionalsaveColumnOrder?: booleanSave the current order of columns
OptionalsaveColumnSortOrders?: booleanSave the current column sorting
OptionalsaveColumnStickyPositions?: booleanSave the current column sticky positions
OptionalsaveColumnVisibility?: booleanSave the current column visibility
OptionalsaveColumnWidths?: booleanSave the current column widths
OptionalsaveSearchQuery?: booleanSave the current search query
OptionalsaveSelectedRows?: booleanSave the currently selected rows
Optionalstorage?: StorageInterfaceA storage client for getting and setting values. Defaults to window.localStorage
The textContent property of the Node interface represents the text content of the node and its descendants.
Enables tokenized search behavior.
When enabled, the search query is split into individual tokens using the
searchTokenizer function (defaults to splitting on whitespace).
A row is considered a match if ANY of the tokens appear in the searchable fields.
Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
The HTMLElement.attachInternals() method returns an ElementInternals object.
The Element.attachShadow() method attaches a shadow DOM tree to the specified element and returns a reference to its ShadowRoot.
Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
The checkVisibility() method of the Element interface checks whether the element is visible.
Optionaloptions: CheckVisibilityOptionsThe HTMLElement.click() method simulates a mouse click on an element.
The cloneNode() method of the Node interface returns a duplicate of the node on which this method was called.
Optionalsubtree: booleanThe compareDocumentPosition() method of the Node interface reports the position of its argument node relative to the node on which it is called.
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.
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 (Node.childNodes), one of the children's direct children, and so on.
Deletes the row with the matching ID.
The IDs rows to delete
Deletes a row at a specific original index from the table.
The original index of the row to delete.
Clears all selection.
The dispatchEvent() method of the EventTarget sends an Event to the object, (synchronously) invoking the affected event listeners in the appropriate order.
Export the current visible table data to a CSV file.
The name of the file to save.
Options for configuring what should be exported.
Finds the first row where field matches value
The field name within the row data to search.
The value to match against the field's content.
The found row, or undefined if no match is found.
Finds the original index of the first row where the specified field matches the given value. This searches through the original, unfiltered dataset.
The field name within the row data to search.
The value to match against the field's content.
The original index of the found row, or -1 if no match is found.
The getAttribute() method of the element.
The getAttributeNames() method of the array.
Returns the specified attribute of the specified element, as an Attr node.
The getAttributeNodeNS() method of the Element interface returns the namespaced Attr node of an element.
The getAttributeNS() method of the Element interface returns the string value of the attribute with the specified namespace and name.
The Element.getBoundingClientRect() method returns a 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.
The Element method getElementsByClassName() returns a live 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.
The getHTML() method of the Element interface is used to serialize an element's DOM to an HTML string.
Optionaloptions: GetHTMLOptionsThe getRootNode() method of the Node interface returns the context object's root, which optionally includes the shadow root if it is available.
Optionaloptions: GetRootNodeOptionsGets a copy of the current state of the table.
The Element.hasAttribute() method returns a Boolean value indicating whether the specified element has the specified attribute or not.
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 hasAttributes() method of the Element interface returns a boolean value indicating whether the current element has any attributes or not.
The hasChildNodes() method of the Node interface returns a boolean value indicating whether the given Node has child nodes or not.
The hasPointerCapture() method of the pointer capture for the pointer identified by the given pointer ID.
Hides the specified column
The field name of the column to hide.
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 relative to the element it is invoked upon.
The insertAdjacentHTML() method of the 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.
The isEqualNode() method of the Node interface tests whether two nodes are equal.
The isSameNode() method of the Node interface is a legacy alias the for the === strict equality operator.
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).
The lookupPrefix() method of the Node interface returns a string containing the prefix for a given namespace URI, if present, and null if not.
The matches() method of the Element interface tests whether the element would be selected by the specified CSS selector.
Moves a column to a new position
The column to move
The index or field of the column to move it to.
The normalize() method of the Node interface puts the specified node and all of its sub-tree into a normalized form.
Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
Optionaltitle: stringThis will force the underlying virtual scroller to re-calculate row sizes and positions and re-render. This is specifically here to fix virtual scroll tables that are affected by scale animations. E.g. when put in a yatl-dialog.
The releasePointerCapture() method of the previously set for a specific (PointerEvent) pointer.
Removes node.
The Element method removeAttribute() removes the attribute with the specified name from the element.
The removeAttributeNode() method of the Element interface removes the specified Attr node from the element.
The removeAttributeNS() method of the If you are working with HTML and you don't need to specify the requested attribute as being part of a specific namespace, use the Element.removeAttribute() method instead.
ProtectedrenderProtectedrenderProtectedrenderProtectedrenderProtectedrenderProtectedrenderProtectedrenderProtectedrenderProtectedrenderProtectedrenderProtectedrenderProtectedrenderProtectedrenderProtectedrenderReplace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
The Element.requestFullscreen() method issues an asynchronous request to make the element be displayed in fullscreen mode.
Optionaloptions: FullscreenOptionsThe requestPointerLock() method of the Element interface lets you asynchronously ask for the pointer to be locked on the given element.
Optionaloptions: PointerLockOptionsThe scroll() method of the Element interface scrolls the element to a particular set of coordinates inside a given element.
Optionaloptions: ScrollToOptionsThe scrollBy() method of the Element interface scrolls an element by the given amount.
Optionaloptions: ScrollToOptionsThe 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.
Optionalarg: boolean | ScrollIntoViewOptionsThe scrollTo() method of the Element interface scrolls to a particular set of coordinates inside a given element.
Optionaloptions: ScrollToOptionsScrolls the table to bring the row at the specified original index into view.
The original index of the row (from the initial dataset).
Selects all currently visible rows (for "Select All" checkbox).
The setAttribute() method of the Element interface sets the value of an attribute on the specified element.
The setAttributeNode() method of the Element interface adds a new Attr node to the specified element.
The setAttributeNodeNS() method of the Element interface adds a new namespaced Attr node to an element.
The setHTMLUnsafe() method of the Element interface is used to parse a string of HTML 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 capture target of future pointer events.
Shows the specified column
The field name of the column to show.
The showPopover() method of the HTMLElement interface shows a Popover_API element (i.e., one that has a valid popover attribute) by adding it to the top layer.
Sorts the table by a specified column and order.
If order is null, the sort on this column is removed.
The field name of the column to sort by.
The sort order: 'asc', 'desc', or null to remove sorting for this column.
Clear all other sorting
The toggleAttribute() method of the present and adding it if it is not present) on the given element.
Optionalforce: booleanToggles the visibility of hte specified column
The field name of the column to toggle.
Optionalvisible: booleanOptionally force the visibility state.
The togglePopover() method of the HTMLElement interface toggles a Popover_API element (i.e., one that has a valid popover attribute) between the hidden and showing states.
Optionaloptions: booleanUpdates the data of a row at a specific original index.
The original index of the row to update.
An object containing the new data to assign to the row. Existing fields will be updated, and new fields will be added.
Restores the table to the provided state.
The state to restore the table to.
StaticaddAdds 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.
const myDecorator = (target: typeof ReactiveElement, key: string) => {
target.addInitializer((instance: ReactiveElement) => {
// This is run during construction of the element
new MyController(instance);
});
}
Decorating a field will then cause each instance to run an initializer that adds a controller:
class MyElement extends LitElement {
@myDecorator foo;
}
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.
Protected StaticfinalizeFinishes 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.
StaticobservedSynchronizes 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.
See responding to attribute changes
on MDN for more information about the attributeChangedCallback.
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.
Removes a ReactiveController from the element.
Static OptionaldisableDisable 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');
Static OptionalenabledRead or set all the enabled warning categories for this class.
This property is only used in development builds.
Static OptionalenableEnable 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');
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.
connectedCallback() {
super.connectedCallback();
addEventListener('keydown', this._handleKeydown);
}
Typically, anything done in connectedCallback() should be undone when the
element is disconnected, in disconnectedCallback().
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.
disconnectedCallback() {
super.disconnectedCallback();
window.removeEventListener('keydown', this._handleKeydown);
}
An element may be re-connected after being disconnected.
StaticelementMemoized list of all element properties, including any superclass properties. Created lazily on user subclasses when finalizing the class.
StaticpropertiesUser-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.
StaticcreateCreates 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:
static createProperty(name, options) {
options = Object.assign(options, {myOption: true});
super.createProperty(name, options);
}
Optionaloptions: PropertyDeclaration<unknown, unknown>Protected StaticgetReturns 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,
class MyElement extends LitElement {
static getPropertyDescriptor(name, key, options) {
const defaultDescriptor =
super.getPropertyDescriptor(name, key, options);
const setter = defaultDescriptor.set;
return {
get: defaultDescriptor.get,
set(value) {
setter.call(this, value);
// custom action.
},
configurable: true,
enumerable: true
}
}
}
StaticgetReturns 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.
ReadonlyrenderReadonlyrenderNode or ShadowRoot into which element DOM should be rendered. Defaults to an open shadowRoot.
StaticshadowOptions 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.
ProtectedcreateProtectedrenderInvoked 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.
StaticelementMemoized list of all element styles. Created lazily on user subclasses when finalizing the class.
StaticstylesArray of styles to apply to the element. The styles should be defined using the css tag function, via constructible stylesheets, or imported from native CSS module scripts.
Note on Content Security Policy:
Element styles are implemented with <style> tags when the browser doesn't
support adopted StyleSheets. To use such <style> tags with the style-src
CSP directive, the style-src value must either include 'unsafe-inline' or
nonce-<base64-value> with <base64-value> replaced be a server-generated
nonce.
To provide a nonce to use on generated <style> elements, set
window.litNonce to a server-generated nonce in your page's HTML, before
loading application code:
<script>
// Generated and unique per request:
window.litNonce = 'a1b2c3d4';
</script>
Protected StaticfinalizeTakes 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.
Optionalstyles: CSSResultGroupIs set to true after the first update. The element code cannot assume
that renderRoot exists before the element hasUpdated.
True if there is a pending update as a result of calling requestUpdate().
Should only be read.
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.
A promise of a boolean that resolves to true if the update completed without triggering another update.
ProtectedenableNote, this method should be considered final and not overridden. It is overridden on the element instance with a function that triggers the first update.
ProtectedfirstInvoked when the element is first updated. Implement to perform one time work on the element after update.
firstUpdated() {
this.renderRoot.getElementById('my-text-area').focus();
}
Setting properties inside this method will trigger the element to update again after this update cycle completes.
Map of changed properties with old values
ProtectedgetOverride point for the updateComplete promise.
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:
class MyElement extends LitElement {
override async getUpdateComplete() {
const result = await super.getUpdateComplete();
await this._myChild.updateComplete;
return result;
}
}
A promise of a boolean that resolves to true if the update completed without triggering another update.
ProtectedperformPerforms 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.
Optionalname: PropertyKeyname of requesting property
OptionaloldValue: unknownold value of requesting property
Optionaloptions: PropertyDeclaration<unknown, unknown>property options to use instead of the previously configured options
OptionaluseNewValue: booleanif 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: unknownthe new value of the property. This is only used if
useNewValue is true.
ProtectedscheduleSchedules 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:
override protected async scheduleUpdate(): Promise<unknown> {
await new Promise((resolve) => requestAnimationFrame(() => resolve()));
super.scheduleUpdate();
}
ProtectedshouldControls 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.
Map of changed properties with old values
ProtectedupdateUpdates 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.
Map of changed properties with old values
ProtectedupdatedInvoked whenever the element is updated. Implement to perform post-updating tasks via DOM APIs, for example, focusing an element.
Setting properties inside this method will trigger the element to update again after this update cycle completes.
ProtectedwillInvoked 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}`);
}
}
render() {
return html`SHA: ${this.sha}`;
}
A virtualized data table capable of handling complex sorting, filtering, and tokenized searching.
Element
yatl-table
Fires
yatl-row-click - Fired when a user clicks a row.
Fires
yatl-row-select-request - Fired before the row selection changes. Cancellable
Fires
yatl-row-select - Fired when the row selection changes.
Fires
yatl-column-sort-request - Fired before a column sort order changes. Cancellable.
Fires
yatl-column-sort - Fired when a column sort order changes.
Fires
yatl-column-toggle - Fired when a column's visibility changes.
Fires
yatl-column-resize - Fired after a column has been resized by the user.
Fires
yatl-column-reorder-request - Fired when the user drops a column into a new position. Cancellable.
Fires
yatl-column-reorder - Fired after the column order changes.
Fires
yatl-table-commit-request -
Fires
yatl-table-search - Fired when the search query is updated.
Fires
yatl-table-view-change - Fired when the visible slice of data changes due to sorting, filtering, or data updates. Payload contains the processed rows.
Fires
yatl-table-state-change - Fired when any persistable state (width, order, sort, query) changes. Used for syncing with local storage.