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.
- package/README.md +1495 -119
- package/browser/pseudo-dom.js +3539 -482
- package/browser/pseudo-dom.min.js +1 -1
- package/dist/classes/PseudoEventListener.d.ts +96 -96
- package/dist/classes/PseudoEventListener.js +151 -151
- package/dist/classes/PseudoHTMLDocument.d.ts +67 -67
- package/dist/classes/PseudoHTMLDocument.js +144 -144
- package/dist/classes/PseudoNodeList.d.ts +34 -34
- package/dist/classes/PseudoNodeList.js +71 -71
- package/dist/classes.d.ts +20 -20
- package/dist/classes.js +31 -31
- package/dist/factories/createEvent.d.ts +28 -28
- package/dist/factories/createEvent.js +56 -56
- package/dist/factories/cssSelectAdapter.d.ts +23 -0
- package/dist/factories/cssSelectAdapter.js +87 -0
- package/dist/factories/cssSelectAdapter.min.js +1 -0
- package/dist/factories/eventDefaults.d.ts +31 -31
- package/dist/factories/eventDefaults.js +105 -105
- package/dist/factories/generateDocument.d.ts +11 -11
- package/dist/factories/generateDocument.js +65 -65
- package/dist/factories/generateNode.d.ts +32 -32
- package/dist/factories/generateNode.js +85 -85
- package/dist/factories/generateNodeList.d.ts +9 -9
- package/dist/factories/generateNodeList.js +13 -13
- package/dist/factories/query.d.ts +33 -0
- package/dist/factories/query.js +66 -0
- package/dist/factories/query.min.js +1 -0
- package/dist/factories.d.ts +11 -11
- package/dist/factories.js +27 -27
- package/dist/functions/activeElement.d.ts +14 -14
- package/dist/functions/activeElement.js +33 -33
- package/dist/functions/getParentNodes.d.ts +11 -11
- package/dist/functions/getParentNodes.js +22 -22
- package/dist/functions/getParentNodesFromAttribute.d.ts +14 -14
- package/dist/functions/getParentNodesFromAttribute.js +29 -29
- package/dist/functions/modifierState.d.ts +29 -29
- package/dist/functions/modifierState.js +41 -41
- package/dist/functions.d.ts +5 -5
- package/dist/functions.js +23 -23
- package/dist/interfaces/PseudoAnimation.d.ts +3 -3
- package/dist/interfaces/PseudoAnimation.js +5 -5
- package/dist/interfaces/PseudoAttr.d.ts +11 -11
- package/dist/interfaces/PseudoAttr.js +5 -5
- package/dist/interfaces/PseudoDOMTokenList.d.ts +16 -16
- package/dist/interfaces/PseudoDOMTokenList.js +5 -5
- package/dist/interfaces/PseudoDocument.d.ts +7 -0
- package/dist/interfaces/PseudoDocument.js +5 -5
- package/dist/interfaces/PseudoDocumentFragment.d.ts +3 -3
- package/dist/interfaces/PseudoDocumentFragment.js +5 -5
- package/dist/interfaces/PseudoElement.d.ts +48 -24
- package/dist/interfaces/PseudoElement.js +5 -5
- package/dist/interfaces/PseudoEvent.d.ts +79 -79
- package/dist/interfaces/PseudoEvent.js +10 -10
- package/dist/interfaces/PseudoEventTarget.d.ts +46 -46
- package/dist/interfaces/PseudoEventTarget.js +5 -5
- package/dist/interfaces/PseudoHTMLCollection.d.ts +23 -2
- package/dist/interfaces/PseudoHTMLCollection.js +5 -5
- package/dist/interfaces/PseudoHTMLElement.d.ts +22 -22
- package/dist/interfaces/PseudoHTMLElement.js +5 -5
- package/dist/interfaces/PseudoHTMLSlotElement.d.ts +3 -3
- package/dist/interfaces/PseudoHTMLSlotElement.js +5 -5
- package/dist/interfaces/PseudoNamedNodeMap.d.ts +11 -11
- package/dist/interfaces/PseudoNamedNodeMap.js +5 -5
- package/dist/interfaces/PseudoNode.d.ts +179 -179
- package/dist/interfaces/PseudoNode.js +5 -5
- package/dist/interfaces/PseudoShadowRoot.d.ts +3 -3
- package/dist/interfaces/PseudoShadowRoot.js +5 -5
- package/dist/main.d.ts +63 -63
- package/dist/main.js +155 -155
- package/dist/services/AnimationService.d.ts +4 -4
- package/dist/services/AnimationService.js +16 -16
- package/dist/services/AttrService.d.ts +37 -37
- package/dist/services/AttrService.js +81 -81
- package/dist/services/CommentService.d.ts +1 -1
- package/dist/services/CommentService.js +13 -13
- package/dist/services/CustomEventService.d.ts +37 -37
- package/dist/services/CustomEventService.js +35 -35
- package/dist/services/DOMTokenListService.d.ts +33 -33
- package/dist/services/DOMTokenListService.js +117 -117
- package/dist/services/DocumentFragmentService.d.ts +13 -13
- package/dist/services/DocumentFragmentService.js +24 -24
- package/dist/services/DocumentService.d.ts +7 -0
- package/dist/services/DocumentService.js +23 -0
- package/dist/services/DocumentService.min.js +1 -1
- package/dist/services/ElementService.d.ts +77 -1
- package/dist/services/ElementService.js +143 -0
- package/dist/services/ElementService.min.js +1 -1
- package/dist/services/EventService.d.ts +120 -120
- package/dist/services/EventService.js +250 -250
- package/dist/services/EventTargetService.d.ts +84 -84
- package/dist/services/EventTargetService.js +232 -232
- package/dist/services/FocusEventService.d.ts +32 -32
- package/dist/services/FocusEventService.js +35 -35
- package/dist/services/HTMLCollectionService.d.ts +51 -0
- package/dist/services/HTMLCollectionService.js +85 -1
- package/dist/services/HTMLCollectionService.min.js +1 -1
- package/dist/services/HTMLElementService.d.ts +57 -57
- package/dist/services/HTMLElementService.js +163 -163
- package/dist/services/HTMLSlotElementService.d.ts +4 -4
- package/dist/services/HTMLSlotElementService.js +9 -9
- package/dist/services/InputEventService.d.ts +41 -41
- package/dist/services/InputEventService.js +47 -47
- package/dist/services/KeyboardEventService.d.ts +70 -70
- package/dist/services/KeyboardEventService.js +86 -86
- package/dist/services/MouseEventService.d.ts +80 -80
- package/dist/services/MouseEventService.js +108 -108
- package/dist/services/NamedNodeMapService.d.ts +23 -23
- package/dist/services/NamedNodeMapService.js +77 -77
- package/dist/services/NodeService.d.ts +75 -1
- package/dist/services/NodeService.js +145 -7
- package/dist/services/NodeService.min.js +1 -1
- package/dist/services/PointerEventService.d.ts +51 -51
- package/dist/services/PointerEventService.js +67 -67
- package/dist/services/ShadowRootService.d.ts +4 -4
- package/dist/services/ShadowRootService.js +9 -9
- package/dist/services/TextService.d.ts +1 -1
- package/dist/services/TextService.js +13 -13
- package/dist/services/UIEventService.d.ts +43 -43
- package/dist/services/UIEventService.js +42 -42
- package/dist/simulate.d.ts +32 -32
- package/dist/simulate.js +115 -115
- 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;
|