index.d.ts 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. /**
  2. * Set attribute `name` to `val`, or get attr `name`.
  3. *
  4. * @param {Element} el
  5. * @param {String} name
  6. * @param {String} [val]
  7. * @api public
  8. */
  9. export function attr<T extends Element>(el: T, name: string): string;
  10. export function attr<T extends Element>(el: T, name: string, val: null): void;
  11. export function attr<T extends Element>(el: T, name: string, val: string): T;
  12. export function attr<T extends Element>(el: T, name: string, val?: string | null): void | string | T;
  13. /**
  14. * Wrap `el` in a `ClassList`.
  15. *
  16. * @param {Element} el
  17. * @return {ClassList}
  18. * @api public
  19. */
  20. export function classes<T extends Element>(el: T): ClassList<T>;
  21. export class ClassList<T extends Element> {
  22. public list: T["classList"];
  23. public el: T;
  24. constructor(el: T);
  25. add(name: string): this;
  26. remove(name: string | RegExp): this;
  27. removeMatching(re: RegExp): this;
  28. toggle(name: string, force?: boolean): this;
  29. array(): string[];
  30. has(name: string): boolean;
  31. contains(name: string): boolean;
  32. }
  33. /**
  34. * Remove all children from the given element.
  35. */
  36. export function clear<T extends Element>(el: T): T;
  37. export type CSSSelector = string;
  38. export function closest(element: Element, selector: CSSSelector, checkYoSelf?: boolean): Element;
  39. export namespace delegate {
  40. export function bind<T extends EventTarget>(el: T, selector: CSSSelector, type: string, callback: (el: T, e: Event) => void, capture?: boolean): Function;
  41. export function unbind<T extends EventTarget>(el: T, type: string, callback: (el: T, e: Event) => void, capture?: boolean): void;
  42. }
  43. export function domify(dom: string, doc?: HTMLDocument): HTMLElement;
  44. export namespace event {
  45. export function bind<CType extends Function>(el: EventTarget, type: string, fn: CType, capture?: boolean): CType;
  46. export function unbind<CType extends Function>(el: EventTarget , type: string, fn: CType, capture?: boolean): CType;
  47. }
  48. export function matches<K extends keyof HTMLElementTagNameMap>(el: HTMLElementTagNameMap[K], selector: K): el is HTMLElementTagNameMap[K];
  49. export function matches(el: HTMLElement, selector: CSSSelector): boolean;
  50. export function query<K extends keyof HTMLElementTagNameMap>(selectors: K, el?: HTMLElement): HTMLElementTagNameMap[K] | null;
  51. export function query<K extends keyof SVGElementTagNameMap>(selectors: K, el?: HTMLElement): SVGElementTagNameMap[K] | null;
  52. export function query<E extends Element = Element>(selectors: string, el?: HTMLElement): E | null;
  53. export function queryAll<K extends keyof HTMLElementTagNameMap>(selectors: K, el?: HTMLElement): NodeListOf<HTMLElementTagNameMap[K]>;
  54. export function queryAll<K extends keyof SVGElementTagNameMap>(selectors: K, el?: HTMLElement): NodeListOf<SVGElementTagNameMap[K]>;
  55. export function queryAll<E extends Element = Element>(selectors: string, el?: HTMLElement): NodeListOf<E>;
  56. export function remove(el: Element): void;