select-dom
Version:
Lightweight querySelector/All/closest wrapper that returns an array and optionally throws if elements are not found
85 lines (84 loc) • 5.97 kB
TypeScript
import type { ParseSelector } from 'typed-query-selector/parser.js';
type BaseElements = ParentNode | Iterable<ParentNode>;
/**
* @param selectors One or more CSS selectors separated by commas
* @param [baseElement] The element to look inside of
* @return The element found, if any
*/
declare function $optional<Selector extends string, Selected extends Element = ParseSelector<Selector, HTMLElement>>(selectors: Selector | readonly Selector[], baseElement?: ParentNode): Selected | undefined;
declare function $optional<Selected extends Element = HTMLElement>(selectors: string | readonly string[], baseElement?: ParentNode): Selected | undefined;
export declare class ElementNotFoundError extends Error {
name: string;
}
/**
* @param selectors One or more CSS selectors separated by commas
* @param [baseElement] The element to look inside of
* @return The element found, or an error
*/
declare function $<Selector extends string, Selected extends Element = ParseSelector<Selector, HTMLElement>>(selectors: Selector | readonly Selector[], baseElement?: ParentNode): Selected;
declare function $<Selected extends Element = HTMLElement>(selectors: string | readonly string[], baseElement?: ParentNode): Selected;
/**
* @param selectors One or more CSS selectors separated by commas
* @param [baseElement] The element to look inside of
* @return The element found, if any
*/
declare function lastElementOptional<Selector extends string, Selected extends Element = ParseSelector<Selector, HTMLElement>>(selectors: Selector | readonly Selector[], baseElement?: ParentNode): Selected | undefined;
declare function lastElementOptional<Selected extends Element = HTMLElement>(selectors: string | readonly string[], baseElement?: ParentNode): Selected | undefined;
/**
* @param selectors One or more CSS selectors separated by commas
* @param [baseElement] The element to look inside of
* @return Whether it's been found
*/
declare function elementExists(selectors: string | readonly string[], baseElement?: ParentNode): boolean;
/**
* @param selectors One or more CSS selectors separated by commas
* @param [baseElement] The element to look inside of
* @return void or throws an error
*/
declare function assertElementExists(selectors: string | readonly string[], baseElement?: ParentNode): void;
/**
* @param selectors One or more CSS selectors separated by commas
* @param [baseElement] The element to look inside of
* @return The number of elements found
*/
declare function countElements(selectors: string | readonly string[], baseElement?: ParentNode): number;
/**
* @param selectors One or more CSS selectors separated by commas
* @param [baseElements] The element or list of elements to look inside of
* @return An array of elements found
*/
declare function $$optional<Selector extends string, Selected extends Element = ParseSelector<Selector, HTMLElement>>(selectors: Selector | readonly Selector[], baseElements?: BaseElements): Selected[];
declare function $$optional<Selected extends Element = HTMLElement>(selectors: string | readonly string[], baseElements?: BaseElements): Selected[];
/**
* @param selectors One or more CSS selectors separated by commas
* @param [baseElements] The element or list of elements to look inside of
* @return An array of elements found
*/
declare function $$<Selector extends string, Selected extends Element = ParseSelector<Selector, HTMLElement>>(selectors: Selector | readonly Selector[], baseElements?: BaseElements): Selected[];
declare function $$<Selected extends Element = HTMLElement>(selectors: string | readonly string[], baseElements?: BaseElements): Selected[];
/**
* @param selectors One or more CSS selectors separated by commas
* @param baseElement The element to start searching from (text nodes are supported)
* @return The closest matching element (including self) found, if any
*/
declare function closestElementOptional<Selector extends string, Selected extends Element = ParseSelector<Selector, HTMLElement>>(selectors: Selector | readonly Selector[], baseElement?: Node): Selected | undefined;
declare function closestElementOptional<Selected extends Element = HTMLElement>(selectors: string | readonly string[], baseElement?: Node): Selected | undefined;
/**
* @param selectors One or more CSS selectors separated by commas
* @param baseElement The element to start searching from (text nodes are supported)
* @return The closest matching element (including self) found, or an error
*/
declare function closestElement<Selector extends string, Selected extends Element = ParseSelector<Selector, HTMLElement>>(selectors: Selector | readonly Selector[], baseElement?: Node): Selected;
declare function closestElement<Selected extends Element = HTMLElement>(selectors: string | readonly string[], baseElement?: Node): Selected;
/** @deprecated Use `closestElement` instead. */
declare const $closest: typeof closestElement;
/** @deprecated Use `closestElementOptional` instead. */
declare const $closestOptional: typeof closestElementOptional;
/**
* @param selectors One or more CSS selectors separated by commas
* @param [baseElement] The element to look inside of
* @return The element found, or an error
*/
declare function lastElement<Selector extends string, Selected extends Element = ParseSelector<Selector, HTMLElement>>(selectors: Selector | readonly Selector[], baseElement?: ParentNode): Selected;
declare function lastElement<Selected extends Element = HTMLElement>(selectors: string | readonly string[], baseElement?: ParentNode): Selected;
export { $, $$, closestElement, lastElement, $optional, $$optional, closestElementOptional, lastElementOptional, elementExists, assertElementExists, countElements, $closest, $closestOptional, };