pseudo-dom 0.5.1 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (122) hide show
  1. package/README.md +1495 -119
  2. package/browser/pseudo-dom.js +3539 -482
  3. package/browser/pseudo-dom.min.js +1 -1
  4. package/dist/classes/PseudoEventListener.d.ts +96 -96
  5. package/dist/classes/PseudoEventListener.js +151 -151
  6. package/dist/classes/PseudoHTMLDocument.d.ts +67 -67
  7. package/dist/classes/PseudoHTMLDocument.js +144 -144
  8. package/dist/classes/PseudoNodeList.d.ts +34 -34
  9. package/dist/classes/PseudoNodeList.js +71 -71
  10. package/dist/classes.d.ts +20 -20
  11. package/dist/classes.js +31 -31
  12. package/dist/factories/createEvent.d.ts +28 -28
  13. package/dist/factories/createEvent.js +56 -56
  14. package/dist/factories/cssSelectAdapter.d.ts +23 -0
  15. package/dist/factories/cssSelectAdapter.js +87 -0
  16. package/dist/factories/cssSelectAdapter.min.js +1 -0
  17. package/dist/factories/eventDefaults.d.ts +31 -31
  18. package/dist/factories/eventDefaults.js +105 -105
  19. package/dist/factories/generateDocument.d.ts +11 -11
  20. package/dist/factories/generateDocument.js +65 -65
  21. package/dist/factories/generateNode.d.ts +32 -32
  22. package/dist/factories/generateNode.js +85 -85
  23. package/dist/factories/generateNodeList.d.ts +9 -9
  24. package/dist/factories/generateNodeList.js +13 -13
  25. package/dist/factories/query.d.ts +33 -0
  26. package/dist/factories/query.js +66 -0
  27. package/dist/factories/query.min.js +1 -0
  28. package/dist/factories.d.ts +11 -11
  29. package/dist/factories.js +27 -27
  30. package/dist/functions/activeElement.d.ts +14 -14
  31. package/dist/functions/activeElement.js +33 -33
  32. package/dist/functions/getParentNodes.d.ts +11 -11
  33. package/dist/functions/getParentNodes.js +22 -22
  34. package/dist/functions/getParentNodesFromAttribute.d.ts +14 -14
  35. package/dist/functions/getParentNodesFromAttribute.js +29 -29
  36. package/dist/functions/modifierState.d.ts +29 -29
  37. package/dist/functions/modifierState.js +41 -41
  38. package/dist/functions.d.ts +5 -5
  39. package/dist/functions.js +23 -23
  40. package/dist/interfaces/PseudoAnimation.d.ts +3 -3
  41. package/dist/interfaces/PseudoAnimation.js +5 -5
  42. package/dist/interfaces/PseudoAttr.d.ts +11 -11
  43. package/dist/interfaces/PseudoAttr.js +5 -5
  44. package/dist/interfaces/PseudoDOMTokenList.d.ts +16 -16
  45. package/dist/interfaces/PseudoDOMTokenList.js +5 -5
  46. package/dist/interfaces/PseudoDocument.d.ts +7 -0
  47. package/dist/interfaces/PseudoDocument.js +5 -5
  48. package/dist/interfaces/PseudoDocumentFragment.d.ts +3 -3
  49. package/dist/interfaces/PseudoDocumentFragment.js +5 -5
  50. package/dist/interfaces/PseudoElement.d.ts +48 -24
  51. package/dist/interfaces/PseudoElement.js +5 -5
  52. package/dist/interfaces/PseudoEvent.d.ts +79 -79
  53. package/dist/interfaces/PseudoEvent.js +10 -10
  54. package/dist/interfaces/PseudoEventTarget.d.ts +46 -46
  55. package/dist/interfaces/PseudoEventTarget.js +5 -5
  56. package/dist/interfaces/PseudoHTMLCollection.d.ts +23 -2
  57. package/dist/interfaces/PseudoHTMLCollection.js +5 -5
  58. package/dist/interfaces/PseudoHTMLElement.d.ts +22 -22
  59. package/dist/interfaces/PseudoHTMLElement.js +5 -5
  60. package/dist/interfaces/PseudoHTMLSlotElement.d.ts +3 -3
  61. package/dist/interfaces/PseudoHTMLSlotElement.js +5 -5
  62. package/dist/interfaces/PseudoNamedNodeMap.d.ts +11 -11
  63. package/dist/interfaces/PseudoNamedNodeMap.js +5 -5
  64. package/dist/interfaces/PseudoNode.d.ts +179 -179
  65. package/dist/interfaces/PseudoNode.js +5 -5
  66. package/dist/interfaces/PseudoShadowRoot.d.ts +3 -3
  67. package/dist/interfaces/PseudoShadowRoot.js +5 -5
  68. package/dist/main.d.ts +63 -63
  69. package/dist/main.js +155 -155
  70. package/dist/services/AnimationService.d.ts +4 -4
  71. package/dist/services/AnimationService.js +16 -16
  72. package/dist/services/AttrService.d.ts +37 -37
  73. package/dist/services/AttrService.js +81 -81
  74. package/dist/services/CommentService.d.ts +1 -1
  75. package/dist/services/CommentService.js +13 -13
  76. package/dist/services/CustomEventService.d.ts +37 -37
  77. package/dist/services/CustomEventService.js +35 -35
  78. package/dist/services/DOMTokenListService.d.ts +33 -33
  79. package/dist/services/DOMTokenListService.js +117 -117
  80. package/dist/services/DocumentFragmentService.d.ts +13 -13
  81. package/dist/services/DocumentFragmentService.js +24 -24
  82. package/dist/services/DocumentService.d.ts +7 -0
  83. package/dist/services/DocumentService.js +23 -0
  84. package/dist/services/DocumentService.min.js +1 -1
  85. package/dist/services/ElementService.d.ts +77 -1
  86. package/dist/services/ElementService.js +143 -0
  87. package/dist/services/ElementService.min.js +1 -1
  88. package/dist/services/EventService.d.ts +120 -120
  89. package/dist/services/EventService.js +250 -250
  90. package/dist/services/EventTargetService.d.ts +84 -84
  91. package/dist/services/EventTargetService.js +232 -232
  92. package/dist/services/FocusEventService.d.ts +32 -32
  93. package/dist/services/FocusEventService.js +35 -35
  94. package/dist/services/HTMLCollectionService.d.ts +51 -0
  95. package/dist/services/HTMLCollectionService.js +85 -1
  96. package/dist/services/HTMLCollectionService.min.js +1 -1
  97. package/dist/services/HTMLElementService.d.ts +57 -57
  98. package/dist/services/HTMLElementService.js +163 -163
  99. package/dist/services/HTMLSlotElementService.d.ts +4 -4
  100. package/dist/services/HTMLSlotElementService.js +9 -9
  101. package/dist/services/InputEventService.d.ts +41 -41
  102. package/dist/services/InputEventService.js +47 -47
  103. package/dist/services/KeyboardEventService.d.ts +70 -70
  104. package/dist/services/KeyboardEventService.js +86 -86
  105. package/dist/services/MouseEventService.d.ts +80 -80
  106. package/dist/services/MouseEventService.js +108 -108
  107. package/dist/services/NamedNodeMapService.d.ts +23 -23
  108. package/dist/services/NamedNodeMapService.js +77 -77
  109. package/dist/services/NodeService.d.ts +75 -1
  110. package/dist/services/NodeService.js +145 -7
  111. package/dist/services/NodeService.min.js +1 -1
  112. package/dist/services/PointerEventService.d.ts +51 -51
  113. package/dist/services/PointerEventService.js +67 -67
  114. package/dist/services/ShadowRootService.d.ts +4 -4
  115. package/dist/services/ShadowRootService.js +9 -9
  116. package/dist/services/TextService.d.ts +1 -1
  117. package/dist/services/TextService.js +13 -13
  118. package/dist/services/UIEventService.d.ts +43 -43
  119. package/dist/services/UIEventService.js +42 -42
  120. package/dist/simulate.d.ts +32 -32
  121. package/dist/simulate.js +115 -115
  122. package/package.json +3 -2
@@ -1,56 +1,56 @@
1
- 'use strict'
2
-
3
- Object.defineProperty(exports, '__esModule', {
4
- value: true
5
- })
6
- exports.createEvent = void 0
7
- const EventService_1 = require('../services/EventService')
8
- const UIEventService_1 = require('../services/UIEventService')
9
- const MouseEventService_1 = require('../services/MouseEventService')
10
- const PointerEventService_1 = require('../services/PointerEventService')
11
- const KeyboardEventService_1 = require('../services/KeyboardEventService')
12
- const FocusEventService_1 = require('../services/FocusEventService')
13
- const InputEventService_1 = require('../services/InputEventService')
14
- const CustomEventService_1 = require('../services/CustomEventService')
15
- const eventDefaults_1 = require('./eventDefaults')
16
- const eventClasses = {
17
- Event: EventService_1.EventService,
18
- UIEvent: UIEventService_1.UIEventService,
19
- MouseEvent: MouseEventService_1.MouseEventService,
20
- PointerEvent: PointerEventService_1.PointerEventService,
21
- KeyboardEvent: KeyboardEventService_1.KeyboardEventService,
22
- FocusEvent: FocusEventService_1.FocusEventService,
23
- InputEvent: InputEventService_1.InputEventService,
24
- CustomEvent: CustomEventService_1.CustomEventService
25
- }
26
- /**
27
- * Create an event of the kind which suits its type (a click is a MouseEvent, a keydown a KeyboardEvent, ...).
28
- * By default this is like using the constructor of the event in a script: nothing bubbles or can be cancelled unless
29
- * the init says so, and the event is not trusted. With browser: true the event is created the way the browser creates
30
- * it, using the standard options for its type (see eventDefaults), and trusted: true makes it look like it came from a
31
- * real user action (isTrusted).
32
- * @function createEvent
33
- * @param {string} type The type of the event, such as click
34
- * @param {Object} [init={}] The options for the event (bubbles, cancelable, composed and those of its kind of event)
35
- * @param {CreateEventOptions} [options={}] Whether the browser is creating the event, and whether it is trusted
36
- * @returns {EventService}
37
- */
38
- const createEvent = (type, init = {}, {
39
- browser = false,
40
- trusted = false
41
- } = {}) => {
42
- const definition = eventDefaults_1.eventDefaults[type]
43
- const options = browser && definition
44
- ? Object.assign({
45
- bubbles: definition.bubbles,
46
- cancelable: definition.cancelable,
47
- composed: definition.composed
48
- }, init)
49
- : init
50
- const EventClass = eventClasses[definition ? definition.interface : 'Event']
51
- const event = new EventClass(type, options)
52
- event.inner.trusted = trusted
53
- return event
54
- }
55
- exports.createEvent = createEvent
56
- exports.default = exports.createEvent
1
+ 'use strict'
2
+
3
+ Object.defineProperty(exports, '__esModule', {
4
+ value: true
5
+ })
6
+ exports.createEvent = void 0
7
+ const EventService_1 = require('../services/EventService')
8
+ const UIEventService_1 = require('../services/UIEventService')
9
+ const MouseEventService_1 = require('../services/MouseEventService')
10
+ const PointerEventService_1 = require('../services/PointerEventService')
11
+ const KeyboardEventService_1 = require('../services/KeyboardEventService')
12
+ const FocusEventService_1 = require('../services/FocusEventService')
13
+ const InputEventService_1 = require('../services/InputEventService')
14
+ const CustomEventService_1 = require('../services/CustomEventService')
15
+ const eventDefaults_1 = require('./eventDefaults')
16
+ const eventClasses = {
17
+ Event: EventService_1.EventService,
18
+ UIEvent: UIEventService_1.UIEventService,
19
+ MouseEvent: MouseEventService_1.MouseEventService,
20
+ PointerEvent: PointerEventService_1.PointerEventService,
21
+ KeyboardEvent: KeyboardEventService_1.KeyboardEventService,
22
+ FocusEvent: FocusEventService_1.FocusEventService,
23
+ InputEvent: InputEventService_1.InputEventService,
24
+ CustomEvent: CustomEventService_1.CustomEventService
25
+ }
26
+ /**
27
+ * Create an event of the kind which suits its type (a click is a MouseEvent, a keydown a KeyboardEvent, ...).
28
+ * By default this is like using the constructor of the event in a script: nothing bubbles or can be cancelled unless
29
+ * the init says so, and the event is not trusted. With browser: true the event is created the way the browser creates
30
+ * it, using the standard options for its type (see eventDefaults), and trusted: true makes it look like it came from a
31
+ * real user action (isTrusted).
32
+ * @function createEvent
33
+ * @param {string} type The type of the event, such as click
34
+ * @param {Object} [init={}] The options for the event (bubbles, cancelable, composed and those of its kind of event)
35
+ * @param {CreateEventOptions} [options={}] Whether the browser is creating the event, and whether it is trusted
36
+ * @returns {EventService}
37
+ */
38
+ const createEvent = (type, init = {}, {
39
+ browser = false,
40
+ trusted = false
41
+ } = {}) => {
42
+ const definition = eventDefaults_1.eventDefaults[type]
43
+ const options = browser && definition
44
+ ? Object.assign({
45
+ bubbles: definition.bubbles,
46
+ cancelable: definition.cancelable,
47
+ composed: definition.composed
48
+ }, init)
49
+ : init
50
+ const EventClass = eventClasses[definition ? definition.interface : 'Event']
51
+ const event = new EventClass(type, options)
52
+ event.inner.trusted = trusted
53
+ return event
54
+ }
55
+ exports.createEvent = createEvent
56
+ exports.default = exports.createEvent
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Maps pseudo-dom's own Node / Element API onto the Adapter interface css-select needs to query a tree which is not
3
+ * domutils' own (css-select's own Adapter<Node, ElementNode> type). Every method here is one pseudo-dom already has
4
+ * under a different name; nothing here reimplements DOM behaviour.
5
+ * @memberOf module:factories
6
+ * @type {Object}
7
+ */
8
+ export declare const cssSelectAdapter: {
9
+ isTag: (node: any) => boolean;
10
+ existsOne: (test: (elem: any) => boolean, elems: Array<any>) => boolean;
11
+ getAttributeValue: (elem: any, name: string) => string | undefined;
12
+ getChildren: (node: any) => Array<any>;
13
+ getName: (elem: any) => string;
14
+ getParent: (node: any) => any | null;
15
+ getSiblings: (node: any) => Array<any>;
16
+ prevElementSibling: (node: any) => any | null;
17
+ getText: (node: any) => string;
18
+ hasAttrib: (elem: any, name: string) => boolean;
19
+ removeSubsets: (nodes: Array<any>) => Array<any>;
20
+ findAll: (test: (elem: any) => boolean, nodes: Array<any>) => Array<any>;
21
+ findOne: (test: (elem: any) => boolean, nodes: Array<any>) => any | null;
22
+ };
23
+ export default cssSelectAdapter;
@@ -0,0 +1,87 @@
1
+ 'use strict'
2
+
3
+ require('core-js/modules/esnext.iterator.constructor.js')
4
+ require('core-js/modules/esnext.iterator.filter.js')
5
+ require('core-js/modules/esnext.iterator.for-each.js')
6
+ require('core-js/modules/esnext.iterator.some.js')
7
+ Object.defineProperty(exports, '__esModule', {
8
+ value: true
9
+ })
10
+ exports.cssSelectAdapter = void 0
11
+ /**
12
+ * @file The css-select Adapter which lets it query pseudo-dom's own tree, instead of the domutils-based tree it
13
+ * defaults to.
14
+ * @author Joshua Heagle <joshuaheagle@gmail.com>
15
+ * @version 1.0.0
16
+ */
17
+ const NodeService_1 = require('../services/NodeService')
18
+ /**
19
+ * Walk up from a node (not including it) to find the nearest element, in the given direction.
20
+ * @param {*} node The node to start from
21
+ * @param {'nextSibling'|'previousSibling'} direction Which sibling reference to follow
22
+ * @returns {*|null}
23
+ */
24
+ const nearestElementSibling = (node, direction) => {
25
+ let current = node ? node[direction] : null
26
+ while (current && current.nodeType !== NodeService_1.NodeService.ELEMENT_NODE) {
27
+ current = current[direction]
28
+ }
29
+ return current || null
30
+ }
31
+ /**
32
+ * Maps pseudo-dom's own Node / Element API onto the Adapter interface css-select needs to query a tree which is not
33
+ * domutils' own (css-select's own Adapter<Node, ElementNode> type). Every method here is one pseudo-dom already has
34
+ * under a different name; nothing here reimplements DOM behaviour.
35
+ * @memberOf module:factories
36
+ * @type {Object}
37
+ */
38
+ exports.cssSelectAdapter = {
39
+ isTag: node => !!node && node.nodeType === NodeService_1.NodeService.ELEMENT_NODE,
40
+ existsOne: (test, elems) => elems.some(elem => exports.cssSelectAdapter.isTag(elem) && (test(elem) || exports.cssSelectAdapter.existsOne(test, exports.cssSelectAdapter.getChildren(elem)))),
41
+ // pseudo-dom's className / classList are kept in sync with each other, but not with a literal 'class' attribute
42
+ // (there is no such special-cased attribute here, unlike a real DOM) - so the 'class' css-select needs for class
43
+ // selectors is read from className instead.
44
+ getAttributeValue: (elem, name) => {
45
+ const value = name === 'class' ? elem.className : elem.getAttribute(name)
46
+ return value === null || value === undefined ? undefined : value
47
+ },
48
+ getChildren: node => Array.from(node.childNodes),
49
+ getName: elem => elem.tagName,
50
+ getParent: node => node.parentNode,
51
+ // Unlike jQuery's siblings(), this is expected to include the node itself
52
+ getSiblings: node => node.parentNode ? Array.from(node.parentNode.childNodes) : [node],
53
+ prevElementSibling: node => nearestElementSibling(node, 'previousSibling'),
54
+ getText: node => node.textContent || '',
55
+ hasAttrib: (elem, name) => elem.hasAttribute(name),
56
+ removeSubsets: nodes => nodes.filter((node, index) => !nodes.some((other, otherIndex) => otherIndex !== index && typeof other.contains === 'function' && other !== node && other.contains(node))),
57
+ findAll: (test, nodes) => {
58
+ const found = []
59
+ const visit = list => list.forEach(node => {
60
+ if (!exports.cssSelectAdapter.isTag(node)) {
61
+ return
62
+ }
63
+ if (test(node)) {
64
+ found.push(node)
65
+ }
66
+ visit(exports.cssSelectAdapter.getChildren(node))
67
+ })
68
+ visit(nodes)
69
+ return found
70
+ },
71
+ findOne: (test, nodes) => {
72
+ for (const node of nodes) {
73
+ if (!exports.cssSelectAdapter.isTag(node)) {
74
+ continue
75
+ }
76
+ if (test(node)) {
77
+ return node
78
+ }
79
+ const inChildren = exports.cssSelectAdapter.findOne(test, exports.cssSelectAdapter.getChildren(node))
80
+ if (inChildren) {
81
+ return inChildren
82
+ }
83
+ }
84
+ return null
85
+ }
86
+ }
87
+ exports.default = exports.cssSelectAdapter
@@ -0,0 +1 @@
1
+ "use strict";require("core-js/modules/esnext.iterator.constructor.js"),require("core-js/modules/esnext.iterator.filter.js"),require("core-js/modules/esnext.iterator.for-each.js"),require("core-js/modules/esnext.iterator.some.js"),Object.defineProperty(exports,"__esModule",{value:!0}),exports.cssSelectAdapter=void 0;const NodeService_1=require("../services/NodeService"),nearestElementSibling=(e,t)=>{let r=e?e[t]:null;for(;r&&r.nodeType!==NodeService_1.NodeService.ELEMENT_NODE;)r=r[t];return r||null};exports.cssSelectAdapter={isTag:e=>!!e&&e.nodeType===NodeService_1.NodeService.ELEMENT_NODE,existsOne:(e,t)=>t.some(t=>exports.cssSelectAdapter.isTag(t)&&(e(t)||exports.cssSelectAdapter.existsOne(e,exports.cssSelectAdapter.getChildren(t)))),getAttributeValue:(e,t)=>{const r="class"===t?e.className:e.getAttribute(t);return null==r?void 0:r},getChildren:e=>Array.from(e.childNodes),getName:e=>e.tagName,getParent:e=>e.parentNode,getSiblings:e=>e.parentNode?Array.from(e.parentNode.childNodes):[e],prevElementSibling:e=>nearestElementSibling(e,"previousSibling"),getText:e=>e.textContent||"",hasAttrib:(e,t)=>e.hasAttribute(t),removeSubsets:e=>e.filter((t,r)=>!e.some((e,s)=>s!==r&&"function"==typeof e.contains&&e!==t&&e.contains(t))),findAll:(e,t)=>{const r=[],s=t=>t.forEach(t=>{exports.cssSelectAdapter.isTag(t)&&(e(t)&&r.push(t),s(exports.cssSelectAdapter.getChildren(t)))});return s(t),r},findOne:(e,t)=>{for(const r of t){if(!exports.cssSelectAdapter.isTag(r))continue;if(e(r))return r;const t=exports.cssSelectAdapter.findOne(e,exports.cssSelectAdapter.getChildren(r));if(t)return t}return null}},exports.default=exports.cssSelectAdapter;
@@ -1,31 +1,31 @@
1
- /**
2
- * @file The standard event types of the browser, and how the browser creates them.
3
- * @author Joshua Heagle <joshuaheagle@gmail.com>
4
- * @version 1.0.0
5
- */
6
- /**
7
- * How the browser creates an event of a standard type: whether it bubbles, whether it can be cancelled, whether it
8
- * crosses the boundary of a shadow tree, and which kind of event object it is.
9
- * @typedef {Object} EventDefinition
10
- * @property {boolean} bubbles - After the target, the event goes back up through the ancestors (the capture phase, going down, always happens)
11
- * @property {boolean} cancelable - preventDefault() can stop the default action
12
- * @property {boolean} composed - The event crosses the boundary of a shadow tree
13
- * @property {string} interface - The kind of event object: Event, UIEvent, MouseEvent, PointerEvent, KeyboardEvent, FocusEvent, InputEvent or CustomEvent
14
- */
15
- export type EventDefinition = {
16
- bubbles: boolean;
17
- cancelable: boolean;
18
- composed: boolean;
19
- interface: 'Event' | 'UIEvent' | 'MouseEvent' | 'PointerEvent' | 'KeyboardEvent' | 'FocusEvent' | 'InputEvent' | 'CustomEvent';
20
- };
21
- /**
22
- * The events which the browser itself creates (for a user action, or for something like element.click()) have these
23
- * options. A script which creates an event with the constructor gets none of them (everything is false) unless it asks
24
- * for them, which is why createEvent only uses this table when it is told the browser is creating the event.
25
- * The values follow the UI Events, HTML, Pointer Events, Clipboard, Drag and Drop, Touch and CSS specifications.
26
- * @type {Object.<string, EventDefinition>}
27
- */
28
- export declare const eventDefaults: {
29
- [type: string]: EventDefinition;
30
- };
31
- export default eventDefaults;
1
+ /**
2
+ * @file The standard event types of the browser, and how the browser creates them.
3
+ * @author Joshua Heagle <joshuaheagle@gmail.com>
4
+ * @version 1.0.0
5
+ */
6
+ /**
7
+ * How the browser creates an event of a standard type: whether it bubbles, whether it can be cancelled, whether it
8
+ * crosses the boundary of a shadow tree, and which kind of event object it is.
9
+ * @typedef {Object} EventDefinition
10
+ * @property {boolean} bubbles - After the target, the event goes back up through the ancestors (the capture phase, going down, always happens)
11
+ * @property {boolean} cancelable - preventDefault() can stop the default action
12
+ * @property {boolean} composed - The event crosses the boundary of a shadow tree
13
+ * @property {string} interface - The kind of event object: Event, UIEvent, MouseEvent, PointerEvent, KeyboardEvent, FocusEvent, InputEvent or CustomEvent
14
+ */
15
+ export type EventDefinition = {
16
+ bubbles: boolean;
17
+ cancelable: boolean;
18
+ composed: boolean;
19
+ interface: 'Event' | 'UIEvent' | 'MouseEvent' | 'PointerEvent' | 'KeyboardEvent' | 'FocusEvent' | 'InputEvent' | 'CustomEvent';
20
+ };
21
+ /**
22
+ * The events which the browser itself creates (for a user action, or for something like element.click()) have these
23
+ * options. A script which creates an event with the constructor gets none of them (everything is false) unless it asks
24
+ * for them, which is why createEvent only uses this table when it is told the browser is creating the event.
25
+ * The values follow the UI Events, HTML, Pointer Events, Clipboard, Drag and Drop, Touch and CSS specifications.
26
+ * @type {Object.<string, EventDefinition>}
27
+ */
28
+ export declare const eventDefaults: {
29
+ [type: string]: EventDefinition;
30
+ };
31
+ export default eventDefaults;
@@ -1,105 +1,105 @@
1
- 'use strict'
2
-
3
- /**
4
- * @file The standard event types of the browser, and how the browser creates them.
5
- * @author Joshua Heagle <joshuaheagle@gmail.com>
6
- * @version 1.0.0
7
- */
8
- Object.defineProperty(exports, '__esModule', {
9
- value: true
10
- })
11
- exports.eventDefaults = void 0
12
- const define = (bubbles, cancelable, composed, eventInterface = 'Event') => ({
13
- bubbles,
14
- cancelable,
15
- composed,
16
- interface: eventInterface
17
- })
18
- /**
19
- * The events which the browser itself creates (for a user action, or for something like element.click()) have these
20
- * options. A script which creates an event with the constructor gets none of them (everything is false) unless it asks
21
- * for them, which is why createEvent only uses this table when it is told the browser is creating the event.
22
- * The values follow the UI Events, HTML, Pointer Events, Clipboard, Drag and Drop, Touch and CSS specifications.
23
- * @type {Object.<string, EventDefinition>}
24
- */
25
- exports.eventDefaults = {
26
- // Mouse (UI Events)
27
- click: define(true, true, true, 'MouseEvent'),
28
- auxclick: define(true, true, true, 'MouseEvent'),
29
- dblclick: define(true, true, true, 'MouseEvent'),
30
- contextmenu: define(true, true, true, 'MouseEvent'),
31
- mousedown: define(true, true, true, 'MouseEvent'),
32
- mouseup: define(true, true, true, 'MouseEvent'),
33
- mousemove: define(true, true, true, 'MouseEvent'),
34
- mouseover: define(true, true, true, 'MouseEvent'),
35
- mouseout: define(true, true, true, 'MouseEvent'),
36
- mouseenter: define(false, false, true, 'MouseEvent'),
37
- mouseleave: define(false, false, true, 'MouseEvent'),
38
- wheel: define(true, true, true, 'MouseEvent'),
39
- // Pointer (Pointer Events)
40
- pointerdown: define(true, true, true, 'PointerEvent'),
41
- pointerup: define(true, true, true, 'PointerEvent'),
42
- pointermove: define(true, true, true, 'PointerEvent'),
43
- pointerover: define(true, true, true, 'PointerEvent'),
44
- pointerout: define(true, true, true, 'PointerEvent'),
45
- pointerenter: define(false, false, true, 'PointerEvent'),
46
- pointerleave: define(false, false, true, 'PointerEvent'),
47
- pointercancel: define(true, false, true, 'PointerEvent'),
48
- gotpointercapture: define(true, false, true, 'PointerEvent'),
49
- lostpointercapture: define(true, false, true, 'PointerEvent'),
50
- // Keyboard (UI Events)
51
- keydown: define(true, true, true, 'KeyboardEvent'),
52
- keypress: define(true, true, true, 'KeyboardEvent'),
53
- keyup: define(true, true, true, 'KeyboardEvent'),
54
- // Focus (UI Events): focus and blur do not bubble, focusin and focusout do
55
- focus: define(false, false, true, 'FocusEvent'),
56
- blur: define(false, false, true, 'FocusEvent'),
57
- focusin: define(true, false, true, 'FocusEvent'),
58
- focusout: define(true, false, true, 'FocusEvent'),
59
- // Forms (HTML, Input Events)
60
- beforeinput: define(true, true, true, 'InputEvent'),
61
- input: define(true, false, true, 'InputEvent'),
62
- change: define(true, false, false),
63
- select: define(true, false, false),
64
- submit: define(true, true, false),
65
- reset: define(true, true, false),
66
- invalid: define(false, true, false),
67
- toggle: define(false, false, false),
68
- // Loading and the page (HTML)
69
- load: define(false, false, false),
70
- error: define(false, false, false),
71
- abort: define(false, false, false),
72
- scroll: define(false, false, false),
73
- scrollend: define(false, false, false),
74
- resize: define(false, false, false),
75
- DOMContentLoaded: define(true, false, false),
76
- readystatechange: define(false, false, false),
77
- visibilitychange: define(true, false, false),
78
- // Clipboard
79
- copy: define(true, true, true),
80
- cut: define(true, true, true),
81
- paste: define(true, true, true),
82
- // Drag and drop
83
- drag: define(true, true, true, 'MouseEvent'),
84
- dragstart: define(true, true, true, 'MouseEvent'),
85
- dragend: define(true, false, true, 'MouseEvent'),
86
- dragenter: define(true, true, true, 'MouseEvent'),
87
- dragover: define(true, true, true, 'MouseEvent'),
88
- dragleave: define(true, false, true, 'MouseEvent'),
89
- drop: define(true, true, true, 'MouseEvent'),
90
- // Touch
91
- touchstart: define(true, true, true, 'UIEvent'),
92
- touchmove: define(true, true, true, 'UIEvent'),
93
- touchend: define(true, true, true, 'UIEvent'),
94
- touchcancel: define(true, false, true, 'UIEvent'),
95
- // Animations and transitions (CSS)
96
- animationstart: define(true, false, false),
97
- animationiteration: define(true, false, false),
98
- animationend: define(true, false, false),
99
- animationcancel: define(true, false, false),
100
- transitionrun: define(true, false, false),
101
- transitionstart: define(true, false, false),
102
- transitionend: define(true, false, false),
103
- transitioncancel: define(true, false, false)
104
- }
105
- exports.default = exports.eventDefaults
1
+ 'use strict'
2
+
3
+ /**
4
+ * @file The standard event types of the browser, and how the browser creates them.
5
+ * @author Joshua Heagle <joshuaheagle@gmail.com>
6
+ * @version 1.0.0
7
+ */
8
+ Object.defineProperty(exports, '__esModule', {
9
+ value: true
10
+ })
11
+ exports.eventDefaults = void 0
12
+ const define = (bubbles, cancelable, composed, eventInterface = 'Event') => ({
13
+ bubbles,
14
+ cancelable,
15
+ composed,
16
+ interface: eventInterface
17
+ })
18
+ /**
19
+ * The events which the browser itself creates (for a user action, or for something like element.click()) have these
20
+ * options. A script which creates an event with the constructor gets none of them (everything is false) unless it asks
21
+ * for them, which is why createEvent only uses this table when it is told the browser is creating the event.
22
+ * The values follow the UI Events, HTML, Pointer Events, Clipboard, Drag and Drop, Touch and CSS specifications.
23
+ * @type {Object.<string, EventDefinition>}
24
+ */
25
+ exports.eventDefaults = {
26
+ // Mouse (UI Events)
27
+ click: define(true, true, true, 'MouseEvent'),
28
+ auxclick: define(true, true, true, 'MouseEvent'),
29
+ dblclick: define(true, true, true, 'MouseEvent'),
30
+ contextmenu: define(true, true, true, 'MouseEvent'),
31
+ mousedown: define(true, true, true, 'MouseEvent'),
32
+ mouseup: define(true, true, true, 'MouseEvent'),
33
+ mousemove: define(true, true, true, 'MouseEvent'),
34
+ mouseover: define(true, true, true, 'MouseEvent'),
35
+ mouseout: define(true, true, true, 'MouseEvent'),
36
+ mouseenter: define(false, false, true, 'MouseEvent'),
37
+ mouseleave: define(false, false, true, 'MouseEvent'),
38
+ wheel: define(true, true, true, 'MouseEvent'),
39
+ // Pointer (Pointer Events)
40
+ pointerdown: define(true, true, true, 'PointerEvent'),
41
+ pointerup: define(true, true, true, 'PointerEvent'),
42
+ pointermove: define(true, true, true, 'PointerEvent'),
43
+ pointerover: define(true, true, true, 'PointerEvent'),
44
+ pointerout: define(true, true, true, 'PointerEvent'),
45
+ pointerenter: define(false, false, true, 'PointerEvent'),
46
+ pointerleave: define(false, false, true, 'PointerEvent'),
47
+ pointercancel: define(true, false, true, 'PointerEvent'),
48
+ gotpointercapture: define(true, false, true, 'PointerEvent'),
49
+ lostpointercapture: define(true, false, true, 'PointerEvent'),
50
+ // Keyboard (UI Events)
51
+ keydown: define(true, true, true, 'KeyboardEvent'),
52
+ keypress: define(true, true, true, 'KeyboardEvent'),
53
+ keyup: define(true, true, true, 'KeyboardEvent'),
54
+ // Focus (UI Events): focus and blur do not bubble, focusin and focusout do
55
+ focus: define(false, false, true, 'FocusEvent'),
56
+ blur: define(false, false, true, 'FocusEvent'),
57
+ focusin: define(true, false, true, 'FocusEvent'),
58
+ focusout: define(true, false, true, 'FocusEvent'),
59
+ // Forms (HTML, Input Events)
60
+ beforeinput: define(true, true, true, 'InputEvent'),
61
+ input: define(true, false, true, 'InputEvent'),
62
+ change: define(true, false, false),
63
+ select: define(true, false, false),
64
+ submit: define(true, true, false),
65
+ reset: define(true, true, false),
66
+ invalid: define(false, true, false),
67
+ toggle: define(false, false, false),
68
+ // Loading and the page (HTML)
69
+ load: define(false, false, false),
70
+ error: define(false, false, false),
71
+ abort: define(false, false, false),
72
+ scroll: define(false, false, false),
73
+ scrollend: define(false, false, false),
74
+ resize: define(false, false, false),
75
+ DOMContentLoaded: define(true, false, false),
76
+ readystatechange: define(false, false, false),
77
+ visibilitychange: define(true, false, false),
78
+ // Clipboard
79
+ copy: define(true, true, true),
80
+ cut: define(true, true, true),
81
+ paste: define(true, true, true),
82
+ // Drag and drop
83
+ drag: define(true, true, true, 'MouseEvent'),
84
+ dragstart: define(true, true, true, 'MouseEvent'),
85
+ dragend: define(true, false, true, 'MouseEvent'),
86
+ dragenter: define(true, true, true, 'MouseEvent'),
87
+ dragover: define(true, true, true, 'MouseEvent'),
88
+ dragleave: define(true, false, true, 'MouseEvent'),
89
+ drop: define(true, true, true, 'MouseEvent'),
90
+ // Touch
91
+ touchstart: define(true, true, true, 'UIEvent'),
92
+ touchmove: define(true, true, true, 'UIEvent'),
93
+ touchend: define(true, true, true, 'UIEvent'),
94
+ touchcancel: define(true, false, true, 'UIEvent'),
95
+ // Animations and transitions (CSS)
96
+ animationstart: define(true, false, false),
97
+ animationiteration: define(true, false, false),
98
+ animationend: define(true, false, false),
99
+ animationcancel: define(true, false, false),
100
+ transitionrun: define(true, false, false),
101
+ transitionstart: define(true, false, false),
102
+ transitionend: define(true, false, false),
103
+ transitioncancel: define(true, false, false)
104
+ }
105
+ exports.default = exports.eventDefaults
@@ -1,11 +1,11 @@
1
- import PseudoEventTarget from '../services/EventTargetService';
2
- /**
3
- * Construct the Pseudo Dom to provide access to Dom objects which are otherwise not available outside the browser
4
- * context.
5
- * @function generateDocument
6
- * @param {Object} root
7
- * @param {Object} context
8
- * @returns {Window|PseudoEventTarget}
9
- */
10
- declare const generateDocument: (root: Window | any, context?: object) => Window | PseudoEventTarget;
11
- export default generateDocument;
1
+ import PseudoEventTarget from '../services/EventTargetService';
2
+ /**
3
+ * Construct the Pseudo Dom to provide access to Dom objects which are otherwise not available outside the browser
4
+ * context.
5
+ * @function generateDocument
6
+ * @param {Object} root
7
+ * @param {Object} context
8
+ * @returns {Window|PseudoEventTarget}
9
+ */
10
+ declare const generateDocument: (root: Window | any, context?: object) => Window | PseudoEventTarget;
11
+ export default generateDocument;