Document.d.ts 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. import { Group } from '../display-objects';
  2. import type { DisplayObject } from '../display-objects';
  3. import type { BaseStyleProps } from '../types';
  4. import type { DisplayObjectConfig, IAnimationTimeline, ICanvas, IDocument, IElement, INode } from './interfaces';
  5. import { Node } from './Node';
  6. /**
  7. * the entry of DOM tree
  8. * Document -> Node -> EventTarget
  9. * @see https://developer.mozilla.org/en-US/docs/Web/API/Document
  10. */
  11. export declare class Document extends Node implements IDocument {
  12. constructor();
  13. get children(): IElement[];
  14. get childElementCount(): number;
  15. get firstElementChild(): IElement | null;
  16. get lastElementChild(): IElement | null;
  17. /**
  18. * only document has defaultView, points to canvas,
  19. * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/defaultView
  20. */
  21. defaultView: ICanvas | null;
  22. /**
  23. * the root element of document, eg. <html>
  24. * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/documentElement
  25. */
  26. readonly documentElement: Group;
  27. /**
  28. * document.timeline in WAAPI
  29. */
  30. readonly timeline: IAnimationTimeline;
  31. readonly ownerDocument: any;
  32. /**
  33. * @example const circle = document.createElement('circle', { style: { r: 10 } });
  34. */
  35. createElement<T extends DisplayObject<StyleProps>, StyleProps extends BaseStyleProps>(tagName: string, options: DisplayObjectConfig<StyleProps>): T;
  36. createElementNS<T extends DisplayObject<StyleProps>, StyleProps extends BaseStyleProps>(namespaceURI: string, tagName: string, options: DisplayObjectConfig<StyleProps>): T;
  37. cloneNode(deep?: boolean): this;
  38. destroy(): void;
  39. /**
  40. * Picking 2D graphics with RBush based on BBox, fast but inaccurate.
  41. */
  42. elementsFromBBox(minX: number, minY: number, maxX: number, maxY: number): DisplayObject[];
  43. elementFromPointSync(x: number, y: number): DisplayObject;
  44. /**
  45. * Do picking with API instead of triggering interactive events.
  46. *
  47. * @see https://developer.mozilla.org/zh-CN/docs/Web/API/Document/elementFromPoint
  48. */
  49. elementFromPoint(x: number, y: number): Promise<DisplayObject>;
  50. elementsFromPointSync(x: number, y: number): DisplayObject[];
  51. /**
  52. * Do picking with API instead of triggering interactive events.
  53. *
  54. * @see https://developer.mozilla.org/zh-CN/docs/Web/API/Document/elementsFromPoint
  55. */
  56. elementsFromPoint(x: number, y: number): Promise<DisplayObject[]>;
  57. /**
  58. * eg. Uncaught DOMException: Failed to execute 'appendChild' on 'Node': Only one element on document allowed.
  59. */
  60. appendChild<T extends INode>(newChild: T, index?: number): T;
  61. insertBefore<T extends INode>(newChild: T, refChild: INode | null): T;
  62. removeChild<T extends INode>(oldChild: T, destroy?: boolean): T;
  63. replaceChild<T extends INode>(newChild: INode, oldChild: T, destroy?: boolean): T;
  64. append(...nodes: INode[]): void;
  65. prepend(...nodes: INode[]): void;
  66. /**
  67. * Execute query on documentElement.
  68. */
  69. getElementById<E extends IElement = IElement>(id: string): E | null;
  70. getElementsByName<E extends IElement = IElement>(name: string): E[];
  71. getElementsByTagName<E extends IElement = IElement>(tagName: string): E[];
  72. getElementsByClassName<E extends IElement = IElement>(className: string): E[];
  73. querySelector<E extends IElement = IElement>(selectors: string): E | null;
  74. querySelectorAll<E extends IElement = IElement>(selectors: string): E[];
  75. find<E extends IElement = IElement>(filter: (node: E) => boolean): E | null;
  76. findAll<E extends IElement = IElement>(filter: (node: E) => boolean): E[];
  77. }
  78. //# sourceMappingURL=Document.d.ts.map