pseudo-dom 0.6.0 → 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 +432 -13
- package/browser/pseudo-dom.js +3364 -603
- 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 +20 -7
- 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 +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 +13 -0
- package/dist/services/ElementService.js +20 -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 +11 -6
- package/dist/services/HTMLCollectionService.js +25 -8
- 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 +26 -0
- package/dist/services/NodeService.js +42 -0
- 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,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,32 +1,32 @@
|
|
|
1
|
-
import { TreeLinker } from 'collect-your-stuff/dist/collections/linked-tree-list/TreeLinker';
|
|
2
|
-
import { NodeService } from '../services/NodeService';
|
|
3
|
-
import { PseudoNode } from '../interfaces/PseudoNode';
|
|
4
|
-
import { PseudoElement } from '../interfaces/PseudoElement';
|
|
5
|
-
/**
|
|
6
|
-
* A node which is stored in a TreeLinker (for example by a list built from an array of values). It finds its siblings
|
|
7
|
-
* from that linker, and its parent from the linker's parent when it has not been given one by appendChild.
|
|
8
|
-
* @author Joshua Heagle <joshuaheagle@gmail.com>
|
|
9
|
-
* @class
|
|
10
|
-
* @augments NodeService
|
|
11
|
-
*/
|
|
12
|
-
export declare class LinkedNode extends NodeService {
|
|
13
|
-
/**
|
|
14
|
-
* @param {TreeLinker} linker The linker holding this node
|
|
15
|
-
* @param {string|null} value The value of the node
|
|
16
|
-
* @constructor
|
|
17
|
-
*/
|
|
18
|
-
constructor(linker: TreeLinker, value?: string | null);
|
|
19
|
-
get isConnected(): boolean;
|
|
20
|
-
get parentNode(): PseudoNode | null;
|
|
21
|
-
get parentElement(): PseudoElement | null;
|
|
22
|
-
}
|
|
23
|
-
export declare class NodeFactory extends TreeLinker {
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Create a TreeLinker class whose linkers each store a node (a LinkedNode) as their data, this can be used to build a
|
|
27
|
-
* tree (or list) of nodes from plain values.
|
|
28
|
-
* @function generateNode
|
|
29
|
-
* @returns {Function} The NodeFactory class (a TreeLinker) to use as the linker class
|
|
30
|
-
*/
|
|
31
|
-
declare const generateNode: () => typeof NodeFactory;
|
|
32
|
-
export default generateNode;
|
|
1
|
+
import { TreeLinker } from 'collect-your-stuff/dist/collections/linked-tree-list/TreeLinker';
|
|
2
|
+
import { NodeService } from '../services/NodeService';
|
|
3
|
+
import { PseudoNode } from '../interfaces/PseudoNode';
|
|
4
|
+
import { PseudoElement } from '../interfaces/PseudoElement';
|
|
5
|
+
/**
|
|
6
|
+
* A node which is stored in a TreeLinker (for example by a list built from an array of values). It finds its siblings
|
|
7
|
+
* from that linker, and its parent from the linker's parent when it has not been given one by appendChild.
|
|
8
|
+
* @author Joshua Heagle <joshuaheagle@gmail.com>
|
|
9
|
+
* @class
|
|
10
|
+
* @augments NodeService
|
|
11
|
+
*/
|
|
12
|
+
export declare class LinkedNode extends NodeService {
|
|
13
|
+
/**
|
|
14
|
+
* @param {TreeLinker} linker The linker holding this node
|
|
15
|
+
* @param {string|null} value The value of the node
|
|
16
|
+
* @constructor
|
|
17
|
+
*/
|
|
18
|
+
constructor(linker: TreeLinker, value?: string | null);
|
|
19
|
+
get isConnected(): boolean;
|
|
20
|
+
get parentNode(): PseudoNode | null;
|
|
21
|
+
get parentElement(): PseudoElement | null;
|
|
22
|
+
}
|
|
23
|
+
export declare class NodeFactory extends TreeLinker {
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Create a TreeLinker class whose linkers each store a node (a LinkedNode) as their data, this can be used to build a
|
|
27
|
+
* tree (or list) of nodes from plain values.
|
|
28
|
+
* @function generateNode
|
|
29
|
+
* @returns {Function} The NodeFactory class (a TreeLinker) to use as the linker class
|
|
30
|
+
*/
|
|
31
|
+
declare const generateNode: () => typeof NodeFactory;
|
|
32
|
+
export default generateNode;
|
|
@@ -1,85 +1,85 @@
|
|
|
1
|
-
'use strict'
|
|
2
|
-
|
|
3
|
-
require('core-js/modules/esnext.iterator.constructor.js')
|
|
4
|
-
require('core-js/modules/esnext.iterator.reduce.js')
|
|
5
|
-
Object.defineProperty(exports, '__esModule', {
|
|
6
|
-
value: true
|
|
7
|
-
})
|
|
8
|
-
exports.NodeFactory = exports.LinkedNode = void 0
|
|
9
|
-
const TreeLinker_1 = require('collect-your-stuff/dist/collections/linked-tree-list/TreeLinker')
|
|
10
|
-
const NodeService_1 = require('../services/NodeService')
|
|
11
|
-
/**
|
|
12
|
-
* A node which is stored in a TreeLinker (for example by a list built from an array of values). It finds its siblings
|
|
13
|
-
* from that linker, and its parent from the linker's parent when it has not been given one by appendChild.
|
|
14
|
-
* @author Joshua Heagle <joshuaheagle@gmail.com>
|
|
15
|
-
* @class
|
|
16
|
-
* @augments NodeService
|
|
17
|
-
*/
|
|
18
|
-
class LinkedNode extends NodeService_1.NodeService {
|
|
19
|
-
/**
|
|
20
|
-
* @param {TreeLinker} linker The linker holding this node
|
|
21
|
-
* @param {string|null} value The value of the node
|
|
22
|
-
* @constructor
|
|
23
|
-
*/
|
|
24
|
-
constructor (linker, value = '') {
|
|
25
|
-
super()
|
|
26
|
-
this.listLinker = linker
|
|
27
|
-
this.nodeValue = value
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
get isConnected () {
|
|
31
|
-
return !!this.parentNode
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
get parentNode () {
|
|
35
|
-
if (this.parent) {
|
|
36
|
-
return this.parent
|
|
37
|
-
}
|
|
38
|
-
const parentLinker = this.listLinker ? this.listLinker.parent : null
|
|
39
|
-
return parentLinker ? parentLinker.data : null
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
get parentElement () {
|
|
43
|
-
const parent = this.parentNode
|
|
44
|
-
return parent && parent.nodeType === NodeService_1.NodeService.ELEMENT_NODE ? parent : null
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
exports.LinkedNode = LinkedNode
|
|
48
|
-
class NodeFactory extends TreeLinker_1.TreeLinker {}
|
|
49
|
-
exports.NodeFactory = NodeFactory
|
|
50
|
-
/**
|
|
51
|
-
* Create a TreeLinker class whose linkers each store a node (a LinkedNode) as their data, this can be used to build a
|
|
52
|
-
* tree (or list) of nodes from plain values.
|
|
53
|
-
* @function generateNode
|
|
54
|
-
* @returns {Function} The NodeFactory class (a TreeLinker) to use as the linker class
|
|
55
|
-
*/
|
|
56
|
-
const generateNode = () => {
|
|
57
|
-
NodeFactory.fromArray = (values = [], LinkerClass = NodeFactory) => values.reduce((list, element) => {
|
|
58
|
-
if (typeof element !== 'object') {
|
|
59
|
-
element = {
|
|
60
|
-
data: element
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
const newElement = new LinkerClass(Object.assign({}, element, {
|
|
64
|
-
prev: list.tail
|
|
65
|
-
}))
|
|
66
|
-
newElement.data = new LinkedNode(newElement, element.data)
|
|
67
|
-
if (list.head === null) {
|
|
68
|
-
return {
|
|
69
|
-
head: newElement,
|
|
70
|
-
tail: newElement
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
list.tail.next = newElement
|
|
74
|
-
newElement.prev = list.tail
|
|
75
|
-
return {
|
|
76
|
-
head: list.head,
|
|
77
|
-
tail: newElement
|
|
78
|
-
}
|
|
79
|
-
}, {
|
|
80
|
-
head: null,
|
|
81
|
-
tail: null
|
|
82
|
-
})
|
|
83
|
-
return NodeFactory
|
|
84
|
-
}
|
|
85
|
-
exports.default = generateNode
|
|
1
|
+
'use strict'
|
|
2
|
+
|
|
3
|
+
require('core-js/modules/esnext.iterator.constructor.js')
|
|
4
|
+
require('core-js/modules/esnext.iterator.reduce.js')
|
|
5
|
+
Object.defineProperty(exports, '__esModule', {
|
|
6
|
+
value: true
|
|
7
|
+
})
|
|
8
|
+
exports.NodeFactory = exports.LinkedNode = void 0
|
|
9
|
+
const TreeLinker_1 = require('collect-your-stuff/dist/collections/linked-tree-list/TreeLinker')
|
|
10
|
+
const NodeService_1 = require('../services/NodeService')
|
|
11
|
+
/**
|
|
12
|
+
* A node which is stored in a TreeLinker (for example by a list built from an array of values). It finds its siblings
|
|
13
|
+
* from that linker, and its parent from the linker's parent when it has not been given one by appendChild.
|
|
14
|
+
* @author Joshua Heagle <joshuaheagle@gmail.com>
|
|
15
|
+
* @class
|
|
16
|
+
* @augments NodeService
|
|
17
|
+
*/
|
|
18
|
+
class LinkedNode extends NodeService_1.NodeService {
|
|
19
|
+
/**
|
|
20
|
+
* @param {TreeLinker} linker The linker holding this node
|
|
21
|
+
* @param {string|null} value The value of the node
|
|
22
|
+
* @constructor
|
|
23
|
+
*/
|
|
24
|
+
constructor (linker, value = '') {
|
|
25
|
+
super()
|
|
26
|
+
this.listLinker = linker
|
|
27
|
+
this.nodeValue = value
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
get isConnected () {
|
|
31
|
+
return !!this.parentNode
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
get parentNode () {
|
|
35
|
+
if (this.parent) {
|
|
36
|
+
return this.parent
|
|
37
|
+
}
|
|
38
|
+
const parentLinker = this.listLinker ? this.listLinker.parent : null
|
|
39
|
+
return parentLinker ? parentLinker.data : null
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
get parentElement () {
|
|
43
|
+
const parent = this.parentNode
|
|
44
|
+
return parent && parent.nodeType === NodeService_1.NodeService.ELEMENT_NODE ? parent : null
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
exports.LinkedNode = LinkedNode
|
|
48
|
+
class NodeFactory extends TreeLinker_1.TreeLinker {}
|
|
49
|
+
exports.NodeFactory = NodeFactory
|
|
50
|
+
/**
|
|
51
|
+
* Create a TreeLinker class whose linkers each store a node (a LinkedNode) as their data, this can be used to build a
|
|
52
|
+
* tree (or list) of nodes from plain values.
|
|
53
|
+
* @function generateNode
|
|
54
|
+
* @returns {Function} The NodeFactory class (a TreeLinker) to use as the linker class
|
|
55
|
+
*/
|
|
56
|
+
const generateNode = () => {
|
|
57
|
+
NodeFactory.fromArray = (values = [], LinkerClass = NodeFactory) => values.reduce((list, element) => {
|
|
58
|
+
if (typeof element !== 'object') {
|
|
59
|
+
element = {
|
|
60
|
+
data: element
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
const newElement = new LinkerClass(Object.assign({}, element, {
|
|
64
|
+
prev: list.tail
|
|
65
|
+
}))
|
|
66
|
+
newElement.data = new LinkedNode(newElement, element.data)
|
|
67
|
+
if (list.head === null) {
|
|
68
|
+
return {
|
|
69
|
+
head: newElement,
|
|
70
|
+
tail: newElement
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
list.tail.next = newElement
|
|
74
|
+
newElement.prev = list.tail
|
|
75
|
+
return {
|
|
76
|
+
head: list.head,
|
|
77
|
+
tail: newElement
|
|
78
|
+
}
|
|
79
|
+
}, {
|
|
80
|
+
head: null,
|
|
81
|
+
tail: null
|
|
82
|
+
})
|
|
83
|
+
return NodeFactory
|
|
84
|
+
}
|
|
85
|
+
exports.default = generateNode
|
|
@@ -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;
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
'use strict'
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', {
|
|
4
|
+
value: true
|
|
5
|
+
})
|
|
6
|
+
exports.closest = exports.matches = exports.querySelector = exports.querySelectorAll = void 0
|
|
7
|
+
/**
|
|
8
|
+
* @file Selector queries (querySelector, querySelectorAll, matches, closest), built on css-select and the
|
|
9
|
+
* cssSelectAdapter which lets it query pseudo-dom's own tree.
|
|
10
|
+
* @author Joshua Heagle <joshuaheagle@gmail.com>
|
|
11
|
+
* @version 1.0.0
|
|
12
|
+
*/
|
|
13
|
+
const css_select_1 = require('css-select')
|
|
14
|
+
const cssSelectAdapter_1 = require('./cssSelectAdapter')
|
|
15
|
+
/**
|
|
16
|
+
* All of the elements below (not including) scope which match the selector, in tree order.
|
|
17
|
+
* @memberOf module:factories
|
|
18
|
+
* @param {string} selector A CSS selector
|
|
19
|
+
* @param {*} scope The node to search below
|
|
20
|
+
* @returns {Array<*>}
|
|
21
|
+
*/
|
|
22
|
+
const querySelectorAll = (selector, scope) => (0, css_select_1.selectAll)(selector, scope, {
|
|
23
|
+
adapter: cssSelectAdapter_1.cssSelectAdapter
|
|
24
|
+
})
|
|
25
|
+
exports.querySelectorAll = querySelectorAll
|
|
26
|
+
/**
|
|
27
|
+
* The first element below (not including) scope which matches the selector, in tree order, or null when there is none.
|
|
28
|
+
* @memberOf module:factories
|
|
29
|
+
* @param {string} selector A CSS selector
|
|
30
|
+
* @param {*} scope The node to search below
|
|
31
|
+
* @returns {*|null}
|
|
32
|
+
*/
|
|
33
|
+
const querySelector = (selector, scope) => (0, css_select_1.selectOne)(selector, scope, {
|
|
34
|
+
adapter: cssSelectAdapter_1.cssSelectAdapter
|
|
35
|
+
})
|
|
36
|
+
exports.querySelector = querySelector
|
|
37
|
+
/**
|
|
38
|
+
* Whether an element itself (not its descendants) matches the selector.
|
|
39
|
+
* @memberOf module:factories
|
|
40
|
+
* @param {*} element The element to test
|
|
41
|
+
* @param {string} selector A CSS selector
|
|
42
|
+
* @returns {boolean}
|
|
43
|
+
*/
|
|
44
|
+
const matches = (element, selector) => (0, css_select_1.is)(element, selector, {
|
|
45
|
+
adapter: cssSelectAdapter_1.cssSelectAdapter
|
|
46
|
+
})
|
|
47
|
+
exports.matches = matches
|
|
48
|
+
/**
|
|
49
|
+
* The nearest ancestor of an element (starting with the element itself) which matches the selector, or null when
|
|
50
|
+
* none of them do.
|
|
51
|
+
* @memberOf module:factories
|
|
52
|
+
* @param {*} element The element to start from
|
|
53
|
+
* @param {string} selector A CSS selector
|
|
54
|
+
* @returns {*|null}
|
|
55
|
+
*/
|
|
56
|
+
const closest = (element, selector) => {
|
|
57
|
+
let current = element
|
|
58
|
+
while (current && cssSelectAdapter_1.cssSelectAdapter.isTag(current)) {
|
|
59
|
+
if ((0, exports.matches)(current, selector)) {
|
|
60
|
+
return current
|
|
61
|
+
}
|
|
62
|
+
current = current.parentNode
|
|
63
|
+
}
|
|
64
|
+
return null
|
|
65
|
+
}
|
|
66
|
+
exports.closest = closest
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.closest=exports.matches=exports.querySelector=exports.querySelectorAll=void 0;const css_select_1=require("css-select"),cssSelectAdapter_1=require("./cssSelectAdapter"),querySelectorAll=(e,s)=>(0,css_select_1.selectAll)(e,s,{adapter:cssSelectAdapter_1.cssSelectAdapter});exports.querySelectorAll=querySelectorAll;const querySelector=(e,s)=>(0,css_select_1.selectOne)(e,s,{adapter:cssSelectAdapter_1.cssSelectAdapter});exports.querySelector=querySelector;const matches=(e,s)=>(0,css_select_1.is)(e,s,{adapter:cssSelectAdapter_1.cssSelectAdapter});exports.matches=matches;const closest=(e,s)=>{let t=e;for(;t&&cssSelectAdapter_1.cssSelectAdapter.isTag(t);){if((0,exports.matches)(t,s))return t;t=t.parentNode}return null};exports.closest=closest;
|
package/dist/factories.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
declare const _default: {
|
|
2
|
-
generateNode: () => typeof import("./factories/generateNode").NodeFactory;
|
|
3
|
-
nodeListFactory: (innerList?: import("collect-your-stuff/dist/collections/linked-tree-list/TreeLinker").TreeLinker | null) => import("./classes/PseudoNodeList").PseudoNodeList;
|
|
4
|
-
createEvent: (type: string, init?: {
|
|
5
|
-
[option: string]: any;
|
|
6
|
-
}, { browser, trusted }?: import("./factories/createEvent").CreateEventOptions) => import("./main").PseudoEvent;
|
|
7
|
-
eventDefaults: {
|
|
8
|
-
[type: string]: import("./factories/eventDefaults").EventDefinition;
|
|
9
|
-
};
|
|
10
|
-
};
|
|
11
|
-
export default _default;
|
|
1
|
+
declare const _default: {
|
|
2
|
+
generateNode: () => typeof import("./factories/generateNode").NodeFactory;
|
|
3
|
+
nodeListFactory: (innerList?: import("collect-your-stuff/dist/collections/linked-tree-list/TreeLinker").TreeLinker | null) => import("./classes/PseudoNodeList").PseudoNodeList;
|
|
4
|
+
createEvent: (type: string, init?: {
|
|
5
|
+
[option: string]: any;
|
|
6
|
+
}, { browser, trusted }?: import("./factories/createEvent").CreateEventOptions) => import("./main").PseudoEvent;
|
|
7
|
+
eventDefaults: {
|
|
8
|
+
[type: string]: import("./factories/eventDefaults").EventDefinition;
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
export default _default;
|
package/dist/factories.js
CHANGED
|
@@ -1,27 +1,27 @@
|
|
|
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
|
-
/**
|
|
14
|
-
* @file All of the Pseudo Dom Helper functions for generating DOM objects.
|
|
15
|
-
* @author Joshua Heagle <joshuaheagle@gmail.com>
|
|
16
|
-
* @version 1.0.0
|
|
17
|
-
*/
|
|
18
|
-
const generateNode_1 = __importDefault(require('./factories/generateNode'))
|
|
19
|
-
const generateNodeList_1 = __importDefault(require('./factories/generateNodeList'))
|
|
20
|
-
const createEvent_1 = __importDefault(require('./factories/createEvent'))
|
|
21
|
-
const eventDefaults_1 = __importDefault(require('./factories/eventDefaults'))
|
|
22
|
-
exports.default = {
|
|
23
|
-
generateNode: generateNode_1.default,
|
|
24
|
-
nodeListFactory: generateNodeList_1.default,
|
|
25
|
-
createEvent: createEvent_1.default,
|
|
26
|
-
eventDefaults: eventDefaults_1.default
|
|
27
|
-
}
|
|
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
|
+
/**
|
|
14
|
+
* @file All of the Pseudo Dom Helper functions for generating DOM objects.
|
|
15
|
+
* @author Joshua Heagle <joshuaheagle@gmail.com>
|
|
16
|
+
* @version 1.0.0
|
|
17
|
+
*/
|
|
18
|
+
const generateNode_1 = __importDefault(require('./factories/generateNode'))
|
|
19
|
+
const generateNodeList_1 = __importDefault(require('./factories/generateNodeList'))
|
|
20
|
+
const createEvent_1 = __importDefault(require('./factories/createEvent'))
|
|
21
|
+
const eventDefaults_1 = __importDefault(require('./factories/eventDefaults'))
|
|
22
|
+
exports.default = {
|
|
23
|
+
generateNode: generateNode_1.default,
|
|
24
|
+
nodeListFactory: generateNodeList_1.default,
|
|
25
|
+
createEvent: createEvent_1.default,
|
|
26
|
+
eventDefaults: eventDefaults_1.default
|
|
27
|
+
}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Find the element which has the focus in a tree.
|
|
3
|
-
* @function getActiveElement
|
|
4
|
-
* @param {Object} root The root node of the tree
|
|
5
|
-
* @returns {Object|null}
|
|
6
|
-
*/
|
|
7
|
-
export declare const getActiveElement: (root: object) => any | null;
|
|
8
|
-
/**
|
|
9
|
-
* Remember the element which has the focus in a tree.
|
|
10
|
-
* @function setActiveElement
|
|
11
|
-
* @param {Object} root The root node of the tree
|
|
12
|
-
* @param {Object|null} element The element which now has the focus, or null when nothing has it
|
|
13
|
-
*/
|
|
14
|
-
export declare const setActiveElement: (root: object, element: any | null) => void;
|
|
1
|
+
/**
|
|
2
|
+
* Find the element which has the focus in a tree.
|
|
3
|
+
* @function getActiveElement
|
|
4
|
+
* @param {Object} root The root node of the tree
|
|
5
|
+
* @returns {Object|null}
|
|
6
|
+
*/
|
|
7
|
+
export declare const getActiveElement: (root: object) => any | null;
|
|
8
|
+
/**
|
|
9
|
+
* Remember the element which has the focus in a tree.
|
|
10
|
+
* @function setActiveElement
|
|
11
|
+
* @param {Object} root The root node of the tree
|
|
12
|
+
* @param {Object|null} element The element which now has the focus, or null when nothing has it
|
|
13
|
+
*/
|
|
14
|
+
export declare const setActiveElement: (root: object, element: any | null) => void;
|