pseudo-dom 0.6.0 → 0.8.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 +686 -241
- package/browser/pseudo-dom.js +3576 -735
- 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 +17 -43
- package/dist/classes/PseudoHTMLDocument.js +24 -94
- package/dist/classes/PseudoHTMLDocument.min.js +1 -1
- package/dist/classes/PseudoNodeList.d.ts +34 -34
- package/dist/classes/PseudoNodeList.js +71 -71
- 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/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/functions/activeElement.d.ts +14 -14
- package/dist/functions/activeElement.js +33 -33
- package/dist/functions/getElementById.d.ts +13 -0
- package/dist/functions/getElementById.js +33 -0
- package/dist/functions/getElementById.min.js +1 -0
- 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/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 +32 -0
- package/dist/interfaces/PseudoDocument.js +5 -5
- package/dist/interfaces/PseudoDocumentFragment.d.ts +7 -0
- package/dist/interfaces/PseudoDocumentFragment.js +5 -5
- package/dist/interfaces/PseudoElement.d.ts +702 -689
- 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 -23
- 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 +8 -0
- package/dist/services/DocumentFragmentService.js +18 -0
- package/dist/services/DocumentFragmentService.min.js +1 -1
- package/dist/services/DocumentService.d.ts +35 -1
- package/dist/services/DocumentService.js +72 -0
- package/dist/services/DocumentService.min.js +1 -1
- package/dist/services/ElementService.d.ts +191 -178
- package/dist/services/ElementService.js +426 -406
- 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 +54 -49
- package/dist/services/HTMLCollectionService.js +92 -75
- 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 +297 -271
- package/dist/services/NodeService.js +721 -679
- 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 +4 -3
- package/dist/classes.d.ts +0 -20
- package/dist/classes.js +0 -31
- package/dist/classes.min.js +0 -1
- package/dist/factories/generateNode.d.ts +0 -32
- package/dist/factories/generateNode.js +0 -85
- package/dist/factories/generateNode.min.js +0 -1
- package/dist/factories.d.ts +0 -11
- package/dist/factories.js +0 -27
- package/dist/factories.min.js +0 -1
- package/dist/functions.d.ts +0 -5
- package/dist/functions.js +0 -23
- package/dist/functions.min.js +0 -1
|
@@ -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;
|
|
@@ -1,65 +1,65 @@
|
|
|
1
|
-
'use strict'
|
|
2
|
-
|
|
3
|
-
const __importDefault = void 0 && (void 0).__importDefault || function (mod) {
|
|
4
|
-
return mod && mod.__esModule
|
|
5
|
-
? mod
|
|
6
|
-
: {
|
|
7
|
-
default: mod
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
Object.defineProperty(exports, '__esModule', {
|
|
11
|
-
value: true
|
|
12
|
-
})
|
|
13
|
-
const EventTargetService_1 = __importDefault(require('../services/EventTargetService'))
|
|
14
|
-
const NodeService_1 = require('../services/NodeService')
|
|
15
|
-
const ElementService_1 = require('../services/ElementService')
|
|
16
|
-
const HTMLElementService_1 = require('../services/HTMLElementService')
|
|
17
|
-
const PseudoHTMLDocument_1 = __importDefault(require('../classes/PseudoHTMLDocument'))
|
|
18
|
-
/**
|
|
19
|
-
* Construct the Pseudo Dom to provide access to Dom objects which are otherwise not available outside the browser
|
|
20
|
-
* context.
|
|
21
|
-
* @function generateDocument
|
|
22
|
-
* @param {Object} root
|
|
23
|
-
* @param {Object} context
|
|
24
|
-
* @returns {Window|PseudoEventTarget}
|
|
25
|
-
*/
|
|
26
|
-
const generateDocument = (root, context = {}) => {
|
|
27
|
-
/**
|
|
28
|
-
*
|
|
29
|
-
* @type {Window|PseudoEventTarget}
|
|
30
|
-
*/
|
|
31
|
-
const newWindow = typeof root.document === 'undefined' ? root : new EventTargetService_1.default()
|
|
32
|
-
/**
|
|
33
|
-
* @type {Node|PseudoNode}
|
|
34
|
-
*/
|
|
35
|
-
const Node = root.Node || new NodeService_1.NodeService()
|
|
36
|
-
if (typeof newWindow.Node === 'undefined') {
|
|
37
|
-
newWindow.Node = Node
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
*
|
|
41
|
-
* @type {Element|PseudoElement}
|
|
42
|
-
*/
|
|
43
|
-
const Element = root.Element || new ElementService_1.ElementService()
|
|
44
|
-
if (typeof newWindow.Element === 'undefined') {
|
|
45
|
-
newWindow.Element = Element
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Create an instance of HTMLElement if not available
|
|
49
|
-
* @type {HTMLElement|PseudoHTMLElement}
|
|
50
|
-
*/
|
|
51
|
-
const HTMLElement = root.HTMLElement || new HTMLElementService_1.HTMLElementService()
|
|
52
|
-
if (typeof newWindow.HTMLElement === 'undefined') {
|
|
53
|
-
newWindow.HTMLElement = HTMLElement
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Define document when not available
|
|
57
|
-
* @type {Document|PseudoHTMLDocument}
|
|
58
|
-
*/
|
|
59
|
-
const document = root.document || new PseudoHTMLDocument_1.default()
|
|
60
|
-
if (typeof newWindow.document === 'undefined') {
|
|
61
|
-
newWindow.document = document
|
|
62
|
-
}
|
|
63
|
-
return context ? Object.assign(context, newWindow) : Object.assign(root, newWindow)
|
|
64
|
-
}
|
|
65
|
-
exports.default = generateDocument
|
|
1
|
+
'use strict'
|
|
2
|
+
|
|
3
|
+
const __importDefault = void 0 && (void 0).__importDefault || function (mod) {
|
|
4
|
+
return mod && mod.__esModule
|
|
5
|
+
? mod
|
|
6
|
+
: {
|
|
7
|
+
default: mod
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
Object.defineProperty(exports, '__esModule', {
|
|
11
|
+
value: true
|
|
12
|
+
})
|
|
13
|
+
const EventTargetService_1 = __importDefault(require('../services/EventTargetService'))
|
|
14
|
+
const NodeService_1 = require('../services/NodeService')
|
|
15
|
+
const ElementService_1 = require('../services/ElementService')
|
|
16
|
+
const HTMLElementService_1 = require('../services/HTMLElementService')
|
|
17
|
+
const PseudoHTMLDocument_1 = __importDefault(require('../classes/PseudoHTMLDocument'))
|
|
18
|
+
/**
|
|
19
|
+
* Construct the Pseudo Dom to provide access to Dom objects which are otherwise not available outside the browser
|
|
20
|
+
* context.
|
|
21
|
+
* @function generateDocument
|
|
22
|
+
* @param {Object} root
|
|
23
|
+
* @param {Object} context
|
|
24
|
+
* @returns {Window|PseudoEventTarget}
|
|
25
|
+
*/
|
|
26
|
+
const generateDocument = (root, context = {}) => {
|
|
27
|
+
/**
|
|
28
|
+
*
|
|
29
|
+
* @type {Window|PseudoEventTarget}
|
|
30
|
+
*/
|
|
31
|
+
const newWindow = typeof root.document === 'undefined' ? root : new EventTargetService_1.default()
|
|
32
|
+
/**
|
|
33
|
+
* @type {Node|PseudoNode}
|
|
34
|
+
*/
|
|
35
|
+
const Node = root.Node || new NodeService_1.NodeService()
|
|
36
|
+
if (typeof newWindow.Node === 'undefined') {
|
|
37
|
+
newWindow.Node = Node
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
*
|
|
41
|
+
* @type {Element|PseudoElement}
|
|
42
|
+
*/
|
|
43
|
+
const Element = root.Element || new ElementService_1.ElementService()
|
|
44
|
+
if (typeof newWindow.Element === 'undefined') {
|
|
45
|
+
newWindow.Element = Element
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Create an instance of HTMLElement if not available
|
|
49
|
+
* @type {HTMLElement|PseudoHTMLElement}
|
|
50
|
+
*/
|
|
51
|
+
const HTMLElement = root.HTMLElement || new HTMLElementService_1.HTMLElementService()
|
|
52
|
+
if (typeof newWindow.HTMLElement === 'undefined') {
|
|
53
|
+
newWindow.HTMLElement = HTMLElement
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Define document when not available
|
|
57
|
+
* @type {Document|PseudoHTMLDocument}
|
|
58
|
+
*/
|
|
59
|
+
const document = root.document || new PseudoHTMLDocument_1.default()
|
|
60
|
+
if (typeof newWindow.document === 'undefined') {
|
|
61
|
+
newWindow.document = document
|
|
62
|
+
}
|
|
63
|
+
return context ? Object.assign(context, newWindow) : Object.assign(root, newWindow)
|
|
64
|
+
}
|
|
65
|
+
exports.default = generateDocument
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { PseudoNodeList } from '../classes/PseudoNodeList';
|
|
2
|
-
import { TreeLinker } from 'collect-your-stuff/dist/collections/linked-tree-list/TreeLinker';
|
|
3
|
-
/**
|
|
4
|
-
* Create a PseudoNodeList, optionally starting from an existing chain of linkers.
|
|
5
|
-
* @param {TreeLinker|null} [innerList=null]
|
|
6
|
-
* @returns {PseudoNodeList}
|
|
7
|
-
*/
|
|
8
|
-
declare const generateNodeList: (innerList?: TreeLinker | null) => PseudoNodeList;
|
|
9
|
-
export default generateNodeList;
|
|
1
|
+
import { PseudoNodeList } from '../classes/PseudoNodeList';
|
|
2
|
+
import { TreeLinker } from 'collect-your-stuff/dist/collections/linked-tree-list/TreeLinker';
|
|
3
|
+
/**
|
|
4
|
+
* Create a PseudoNodeList, optionally starting from an existing chain of linkers.
|
|
5
|
+
* @param {TreeLinker|null} [innerList=null]
|
|
6
|
+
* @returns {PseudoNodeList}
|
|
7
|
+
*/
|
|
8
|
+
declare const generateNodeList: (innerList?: TreeLinker | null) => PseudoNodeList;
|
|
9
|
+
export default generateNodeList;
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
'use strict'
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', {
|
|
4
|
-
value: true
|
|
5
|
-
})
|
|
6
|
-
const PseudoNodeList_1 = require('../classes/PseudoNodeList')
|
|
7
|
-
/**
|
|
8
|
-
* Create a PseudoNodeList, optionally starting from an existing chain of linkers.
|
|
9
|
-
* @param {TreeLinker|null} [innerList=null]
|
|
10
|
-
* @returns {PseudoNodeList}
|
|
11
|
-
*/
|
|
12
|
-
const generateNodeList = (innerList = null) => new PseudoNodeList_1.PseudoNodeList().initialize(innerList)
|
|
13
|
-
exports.default = generateNodeList
|
|
1
|
+
'use strict'
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', {
|
|
4
|
+
value: true
|
|
5
|
+
})
|
|
6
|
+
const PseudoNodeList_1 = require('../classes/PseudoNodeList')
|
|
7
|
+
/**
|
|
8
|
+
* Create a PseudoNodeList, optionally starting from an existing chain of linkers.
|
|
9
|
+
* @param {TreeLinker|null} [innerList=null]
|
|
10
|
+
* @returns {PseudoNodeList}
|
|
11
|
+
*/
|
|
12
|
+
const generateNodeList = (innerList = null) => new PseudoNodeList_1.PseudoNodeList().initialize(innerList)
|
|
13
|
+
exports.default = generateNodeList
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* All of the elements below (not including) scope which match the selector, in tree order.
|
|
3
|
+
* @memberOf module:factories
|
|
4
|
+
* @param {string} selector A CSS selector
|
|
5
|
+
* @param {*} scope The node to search below
|
|
6
|
+
* @returns {Array<*>}
|
|
7
|
+
*/
|
|
8
|
+
export declare const querySelectorAll: (selector: string, scope: any) => Array<any>;
|
|
9
|
+
/**
|
|
10
|
+
* The first element below (not including) scope which matches the selector, in tree order, or null when there is none.
|
|
11
|
+
* @memberOf module:factories
|
|
12
|
+
* @param {string} selector A CSS selector
|
|
13
|
+
* @param {*} scope The node to search below
|
|
14
|
+
* @returns {*|null}
|
|
15
|
+
*/
|
|
16
|
+
export declare const querySelector: (selector: string, scope: any) => any | null;
|
|
17
|
+
/**
|
|
18
|
+
* Whether an element itself (not its descendants) matches the selector.
|
|
19
|
+
* @memberOf module:factories
|
|
20
|
+
* @param {*} element The element to test
|
|
21
|
+
* @param {string} selector A CSS selector
|
|
22
|
+
* @returns {boolean}
|
|
23
|
+
*/
|
|
24
|
+
export declare const matches: (element: any, selector: string) => boolean;
|
|
25
|
+
/**
|
|
26
|
+
* The nearest ancestor of an element (starting with the element itself) which matches the selector, or null when
|
|
27
|
+
* none of them do.
|
|
28
|
+
* @memberOf module:factories
|
|
29
|
+
* @param {*} element The element to start from
|
|
30
|
+
* @param {string} selector A CSS selector
|
|
31
|
+
* @returns {*|null}
|
|
32
|
+
*/
|
|
33
|
+
export declare const closest: (element: any, selector: string) => any | null;
|