element-vir
Version:
Heroic. Reactive. Declarative. Type safe. Web components without compromise.
45 lines (44 loc) • 1.49 kB
TypeScript
import { type MaybePromise } from '@augment-vir/common';
import { type PartInfo } from '../../lit-exports/all-lit-exports.js';
/**
* The callback / listener passed to {@link onDomCreated}. The `element` parameter is a reference to
* the DOM element that the directive was attached to.
*
* @category Internal
*/
export type OnDomCreatedCallback = (element: Element) => MaybePromise<void>;
/**
* A directive that fires its listener only once, when the element that it's attached to is
* constructed. This is particularly useful for getting references to internal elements immediately
* after they've rendered.
*
* @category Directives
* @example
*
* ```ts
* import {html, defineElement, onDomCreated} from 'element-vir';
*
* const MyElement = defineElement()({
* tagName: 'my-element',
* render() {
* return html`
* <div
* ${onDomCreated((element) => {
* console.log('created!', element);
* })}
* >
* Some div
* </div>
* `;
* },
* });
* ```
*/
export declare const onDomCreated: (callback: OnDomCreatedCallback) => import("lit-html/directive.js").DirectiveResult<{
new (partInfo: PartInfo): {
element: Element | undefined;
update(partInfo: PartInfo, [callback]: [OnDomCreatedCallback]): undefined;
render(callback: OnDomCreatedCallback): undefined;
readonly _$isConnected: boolean;
};
}>;