版博士V2.0程序
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

преди 1 година
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306
  1. import IElement from '../element/IElement';
  2. import IHTMLElement from '../html-element/IHTMLElement';
  3. import IWindow from '../../window/IWindow';
  4. import TreeWalker from '../../tree-walker/TreeWalker';
  5. import Event from '../../event/Event';
  6. import DOMImplementation from '../../dom-implementation/DOMImplementation';
  7. import INodeFilter from '../../tree-walker/INodeFilter';
  8. import IAttr from '../attr/IAttr';
  9. import IDocumentType from '../document-type/IDocumentType';
  10. import IParentNode from '../parent-node/IParentNode';
  11. import INode from '../node/INode';
  12. import ICharacterData from '../character-data/ICharacterData';
  13. import IDocumentFragment from '../document-fragment/IDocumentFragment';
  14. import Selection from '../../selection/Selection';
  15. import IHTMLCollection from '../element/IHTMLCollection';
  16. import IHTMLScriptElement from '../html-script-element/IHTMLScriptElement';
  17. import CSSStyleSheet from '../../css/CSSStyleSheet';
  18. import Location from '../../location/Location';
  19. import DocumentReadyStateEnum from './DocumentReadyStateEnum';
  20. import INodeList from '../node/INodeList';
  21. import Range from '../../range/Range';
  22. import IProcessingInstruction from '../processing-instruction/IProcessingInstruction';
  23. import VisibilityStateEnum from './VisibilityStateEnum';
  24. /**
  25. * Document.
  26. */
  27. export default interface IDocument extends IParentNode {
  28. readonly defaultView: IWindow;
  29. readonly implementation: DOMImplementation;
  30. readonly documentElement: IHTMLElement;
  31. readonly doctype: IDocumentType;
  32. readonly body: IHTMLElement;
  33. readonly head: IHTMLElement;
  34. readonly scripts: IHTMLCollection<IHTMLScriptElement>;
  35. readonly activeElement: IHTMLElement;
  36. readonly styleSheets: CSSStyleSheet[];
  37. readonly scrollingElement: IHTMLElement;
  38. readonly location: Location;
  39. readonly readyState: DocumentReadyStateEnum;
  40. readonly charset: string;
  41. readonly characterSet: string;
  42. readonly URL: string;
  43. readonly documentURI: string;
  44. readonly visibilityState: VisibilityStateEnum;
  45. readonly hidden: boolean;
  46. cookie: string;
  47. title: string;
  48. onreadystatechange: (event: Event) => void;
  49. onpointerlockchange: (event: Event) => void;
  50. onpointerlockerror: (event: Event) => void;
  51. onbeforecopy: (event: Event) => void;
  52. onbeforecut: (event: Event) => void;
  53. onbeforepaste: (event: Event) => void;
  54. onfreeze: (event: Event) => void;
  55. onresume: (event: Event) => void;
  56. onsearch: (event: Event) => void;
  57. onvisibilitychange: (event: Event) => void;
  58. onfullscreenchange: (event: Event) => void;
  59. onfullscreenerror: (event: Event) => void;
  60. onwebkitfullscreenchange: (event: Event) => void;
  61. onwebkitfullscreenerror: (event: Event) => void;
  62. onbeforexrselect: (event: Event) => void;
  63. onabort: (event: Event) => void;
  64. onbeforeinput: (event: Event) => void;
  65. onblur: (event: Event) => void;
  66. oncancel: (event: Event) => void;
  67. oncanplay: (event: Event) => void;
  68. oncanplaythrough: (event: Event) => void;
  69. onchange: (event: Event) => void;
  70. onclick: (event: Event) => void;
  71. onclose: (event: Event) => void;
  72. oncontextlost: (event: Event) => void;
  73. oncontextmenu: (event: Event) => void;
  74. oncontextrestored: (event: Event) => void;
  75. oncuechange: (event: Event) => void;
  76. ondblclick: (event: Event) => void;
  77. ondrag: (event: Event) => void;
  78. ondragend: (event: Event) => void;
  79. ondragenter: (event: Event) => void;
  80. ondragleave: (event: Event) => void;
  81. ondragover: (event: Event) => void;
  82. ondragstart: (event: Event) => void;
  83. ondrop: (event: Event) => void;
  84. ondurationchange: (event: Event) => void;
  85. onemptied: (event: Event) => void;
  86. onended: (event: Event) => void;
  87. onerror: (event: Event) => void;
  88. onfocus: (event: Event) => void;
  89. onformdata: (event: Event) => void;
  90. oninput: (event: Event) => void;
  91. oninvalid: (event: Event) => void;
  92. onkeydown: (event: Event) => void;
  93. onkeypress: (event: Event) => void;
  94. onkeyup: (event: Event) => void;
  95. onload: (event: Event) => void;
  96. onloadeddata: (event: Event) => void;
  97. onloadedmetadata: (event: Event) => void;
  98. onloadstart: (event: Event) => void;
  99. onmousedown: (event: Event) => void;
  100. onmouseenter: (event: Event) => void;
  101. onmouseleave: (event: Event) => void;
  102. onmousemove: (event: Event) => void;
  103. onmouseout: (event: Event) => void;
  104. onmouseover: (event: Event) => void;
  105. onmouseup: (event: Event) => void;
  106. onmousewheel: (event: Event) => void;
  107. onpause: (event: Event) => void;
  108. onplay: (event: Event) => void;
  109. onplaying: (event: Event) => void;
  110. onprogress: (event: Event) => void;
  111. onratechange: (event: Event) => void;
  112. onreset: (event: Event) => void;
  113. onresize: (event: Event) => void;
  114. onscroll: (event: Event) => void;
  115. onsecuritypolicyviolation: (event: Event) => void;
  116. onseeked: (event: Event) => void;
  117. onseeking: (event: Event) => void;
  118. onselect: (event: Event) => void;
  119. onslotchange: (event: Event) => void;
  120. onstalled: (event: Event) => void;
  121. onsubmit: (event: Event) => void;
  122. onsuspend: (event: Event) => void;
  123. ontimeupdate: (event: Event) => void;
  124. ontoggle: (event: Event) => void;
  125. onvolumechange: (event: Event) => void;
  126. onwaiting: (event: Event) => void;
  127. onwebkitanimationend: (event: Event) => void;
  128. onwebkitanimationiteration: (event: Event) => void;
  129. onwebkitanimationstart: (event: Event) => void;
  130. onwebkittransitionend: (event: Event) => void;
  131. onwheel: (event: Event) => void;
  132. onauxclick: (event: Event) => void;
  133. ongotpointercapture: (event: Event) => void;
  134. onlostpointercapture: (event: Event) => void;
  135. onpointerdown: (event: Event) => void;
  136. onpointermove: (event: Event) => void;
  137. onpointerrawupdate: (event: Event) => void;
  138. onpointerup: (event: Event) => void;
  139. onpointercancel: (event: Event) => void;
  140. onpointerover: (event: Event) => void;
  141. onpointerout: (event: Event) => void;
  142. onpointerenter: (event: Event) => void;
  143. onpointerleave: (event: Event) => void;
  144. onselectstart: (event: Event) => void;
  145. onselectionchange: (event: Event) => void;
  146. onanimationend: (event: Event) => void;
  147. onanimationiteration: (event: Event) => void;
  148. onanimationstart: (event: Event) => void;
  149. ontransitionrun: (event: Event) => void;
  150. ontransitionstart: (event: Event) => void;
  151. ontransitionend: (event: Event) => void;
  152. ontransitioncancel: (event: Event) => void;
  153. oncopy: (event: Event) => void;
  154. oncut: (event: Event) => void;
  155. onpaste: (event: Event) => void;
  156. onbeforematch: (event: Event) => void;
  157. /**
  158. * Replaces the document HTML with new HTML.
  159. *
  160. * @param html HTML.
  161. */
  162. write(html: string): void;
  163. /**
  164. * Opens the document.
  165. *
  166. * @returns Document.
  167. */
  168. open(): IDocument;
  169. /**
  170. * Closes the document.
  171. */
  172. close(): void;
  173. /**
  174. * Creates an element.
  175. *
  176. * @param tagName Tag name.
  177. * @param [options] Options.
  178. * @returns Element.
  179. */
  180. createElement(tagName: string, options?: {
  181. is: string;
  182. }): IElement;
  183. /**
  184. * Creates an element with the specified namespace URI and qualified name.
  185. *
  186. * @param tagName Tag name.
  187. * @param [options] Options.
  188. * @returns Element.
  189. */
  190. createElementNS(namespaceURI: string, qualifiedName: string, options?: {
  191. is: string;
  192. }): IElement;
  193. /**
  194. * Creates a text node.
  195. *
  196. * @param data Text data.
  197. * @returns Text node.
  198. */
  199. createTextNode(data?: string): ICharacterData;
  200. /**
  201. * Creates a comment node.
  202. *
  203. * @param data Text data.
  204. * @returns Text node.
  205. */
  206. createComment(data?: string): ICharacterData;
  207. /**
  208. * Creates a document fragment.
  209. *
  210. * @returns Document fragment.
  211. */
  212. createDocumentFragment(): IDocumentFragment;
  213. /**
  214. * Creates a Tree Walker.
  215. *
  216. * @param root Root.
  217. * @param [whatToShow] What to show.
  218. * @param [filter] Filter.
  219. */
  220. createTreeWalker(root: INode, whatToShow: number, filter: INodeFilter): TreeWalker;
  221. /**
  222. * Creates an event.
  223. *
  224. * @deprecated
  225. * @param _type Type.
  226. * @returns Event.
  227. */
  228. createEvent(_type: string): Event;
  229. /**
  230. * Creates an Attr node.
  231. *
  232. * @param name Name.
  233. * @returns Attribute.
  234. */
  235. createAttribute(name: string): IAttr;
  236. /**
  237. * Creates a namespaced Attr node.
  238. *
  239. * @param namespaceURI Namespace URI.
  240. * @param qualifiedName Qualified name.
  241. * @returns Element.
  242. */
  243. createAttributeNS(namespaceURI: string, qualifiedName: string): IAttr;
  244. /**
  245. * Imports a node.
  246. *
  247. * @param node Node to import.
  248. * @param Imported Node.
  249. */
  250. importNode(node: INode): INode;
  251. /**
  252. * Creates a range.
  253. *
  254. * @returns Range.
  255. */
  256. createRange(): Range;
  257. /**
  258. * Returns an element by ID.
  259. *
  260. * @param id ID.
  261. * @returns Matching element.
  262. */
  263. getElementById(id: string): IElement;
  264. /**
  265. * Returns an elements by name.
  266. *
  267. * @param name Name.
  268. * @returns Matching element.
  269. */
  270. getElementsByName(name: string): INodeList<IElement>;
  271. /**
  272. * Clones a node.
  273. *
  274. * @override
  275. * @param [deep=false] "true" to clone deep.
  276. * @returns Cloned node.
  277. */
  278. cloneNode(deep: boolean): IDocument;
  279. /**
  280. * Adopts a node.
  281. *
  282. * @param node Node to adopt.
  283. * @returns Adopted node.
  284. */
  285. adoptNode(node: INode): INode;
  286. /**
  287. * Returns selection.
  288. *
  289. * @returns Selection.
  290. */
  291. getSelection(): Selection;
  292. /**
  293. * Returns a boolean value indicating whether the document or any element inside the document has focus.
  294. *
  295. * @returns "true" if the document has focus.
  296. */
  297. hasFocus(): boolean;
  298. /**
  299. * Creates a Processing Instruction node.
  300. *
  301. * @returns IProcessingInstruction.
  302. * @param target
  303. * @param data
  304. */
  305. createProcessingInstruction(target: string, data: string): IProcessingInstruction;
  306. }