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.
Files changed (122) hide show
  1. package/README.md +432 -13
  2. package/browser/pseudo-dom.js +3364 -603
  3. package/browser/pseudo-dom.min.js +1 -1
  4. package/dist/classes/PseudoEventListener.d.ts +96 -96
  5. package/dist/classes/PseudoEventListener.js +151 -151
  6. package/dist/classes/PseudoHTMLDocument.d.ts +67 -67
  7. package/dist/classes/PseudoHTMLDocument.js +144 -144
  8. package/dist/classes/PseudoNodeList.d.ts +34 -34
  9. package/dist/classes/PseudoNodeList.js +71 -71
  10. package/dist/classes.d.ts +20 -20
  11. package/dist/classes.js +31 -31
  12. package/dist/factories/createEvent.d.ts +28 -28
  13. package/dist/factories/createEvent.js +56 -56
  14. package/dist/factories/cssSelectAdapter.d.ts +23 -0
  15. package/dist/factories/cssSelectAdapter.js +87 -0
  16. package/dist/factories/cssSelectAdapter.min.js +1 -0
  17. package/dist/factories/eventDefaults.d.ts +31 -31
  18. package/dist/factories/eventDefaults.js +105 -105
  19. package/dist/factories/generateDocument.d.ts +11 -11
  20. package/dist/factories/generateDocument.js +65 -65
  21. package/dist/factories/generateNode.d.ts +32 -32
  22. package/dist/factories/generateNode.js +85 -85
  23. package/dist/factories/generateNodeList.d.ts +9 -9
  24. package/dist/factories/generateNodeList.js +13 -13
  25. package/dist/factories/query.d.ts +33 -0
  26. package/dist/factories/query.js +66 -0
  27. package/dist/factories/query.min.js +1 -0
  28. package/dist/factories.d.ts +11 -11
  29. package/dist/factories.js +27 -27
  30. package/dist/functions/activeElement.d.ts +14 -14
  31. package/dist/functions/activeElement.js +33 -33
  32. package/dist/functions/getParentNodes.d.ts +11 -11
  33. package/dist/functions/getParentNodes.js +22 -22
  34. package/dist/functions/getParentNodesFromAttribute.d.ts +14 -14
  35. package/dist/functions/getParentNodesFromAttribute.js +29 -29
  36. package/dist/functions/modifierState.d.ts +29 -29
  37. package/dist/functions/modifierState.js +41 -41
  38. package/dist/functions.d.ts +5 -5
  39. package/dist/functions.js +23 -23
  40. package/dist/interfaces/PseudoAnimation.d.ts +3 -3
  41. package/dist/interfaces/PseudoAnimation.js +5 -5
  42. package/dist/interfaces/PseudoAttr.d.ts +11 -11
  43. package/dist/interfaces/PseudoAttr.js +5 -5
  44. package/dist/interfaces/PseudoDOMTokenList.d.ts +16 -16
  45. package/dist/interfaces/PseudoDOMTokenList.js +5 -5
  46. package/dist/interfaces/PseudoDocument.d.ts +7 -0
  47. package/dist/interfaces/PseudoDocument.js +5 -5
  48. package/dist/interfaces/PseudoDocumentFragment.d.ts +3 -3
  49. package/dist/interfaces/PseudoDocumentFragment.js +5 -5
  50. package/dist/interfaces/PseudoElement.d.ts +20 -7
  51. package/dist/interfaces/PseudoElement.js +5 -5
  52. package/dist/interfaces/PseudoEvent.d.ts +79 -79
  53. package/dist/interfaces/PseudoEvent.js +10 -10
  54. package/dist/interfaces/PseudoEventTarget.d.ts +46 -46
  55. package/dist/interfaces/PseudoEventTarget.js +5 -5
  56. package/dist/interfaces/PseudoHTMLCollection.d.ts +23 -23
  57. package/dist/interfaces/PseudoHTMLCollection.js +5 -5
  58. package/dist/interfaces/PseudoHTMLElement.d.ts +22 -22
  59. package/dist/interfaces/PseudoHTMLElement.js +5 -5
  60. package/dist/interfaces/PseudoHTMLSlotElement.d.ts +3 -3
  61. package/dist/interfaces/PseudoHTMLSlotElement.js +5 -5
  62. package/dist/interfaces/PseudoNamedNodeMap.d.ts +11 -11
  63. package/dist/interfaces/PseudoNamedNodeMap.js +5 -5
  64. package/dist/interfaces/PseudoNode.d.ts +179 -179
  65. package/dist/interfaces/PseudoNode.js +5 -5
  66. package/dist/interfaces/PseudoShadowRoot.d.ts +3 -3
  67. package/dist/interfaces/PseudoShadowRoot.js +5 -5
  68. package/dist/main.d.ts +63 -63
  69. package/dist/main.js +155 -155
  70. package/dist/services/AnimationService.d.ts +4 -4
  71. package/dist/services/AnimationService.js +16 -16
  72. package/dist/services/AttrService.d.ts +37 -37
  73. package/dist/services/AttrService.js +81 -81
  74. package/dist/services/CommentService.d.ts +1 -1
  75. package/dist/services/CommentService.js +13 -13
  76. package/dist/services/CustomEventService.d.ts +37 -37
  77. package/dist/services/CustomEventService.js +35 -35
  78. package/dist/services/DOMTokenListService.d.ts +33 -33
  79. package/dist/services/DOMTokenListService.js +117 -117
  80. package/dist/services/DocumentFragmentService.d.ts +13 -13
  81. package/dist/services/DocumentFragmentService.js +24 -24
  82. package/dist/services/DocumentService.d.ts +7 -0
  83. package/dist/services/DocumentService.js +23 -0
  84. package/dist/services/DocumentService.min.js +1 -1
  85. package/dist/services/ElementService.d.ts +13 -0
  86. package/dist/services/ElementService.js +20 -0
  87. package/dist/services/ElementService.min.js +1 -1
  88. package/dist/services/EventService.d.ts +120 -120
  89. package/dist/services/EventService.js +250 -250
  90. package/dist/services/EventTargetService.d.ts +84 -84
  91. package/dist/services/EventTargetService.js +232 -232
  92. package/dist/services/FocusEventService.d.ts +32 -32
  93. package/dist/services/FocusEventService.js +35 -35
  94. package/dist/services/HTMLCollectionService.d.ts +11 -6
  95. package/dist/services/HTMLCollectionService.js +25 -8
  96. package/dist/services/HTMLCollectionService.min.js +1 -1
  97. package/dist/services/HTMLElementService.d.ts +57 -57
  98. package/dist/services/HTMLElementService.js +163 -163
  99. package/dist/services/HTMLSlotElementService.d.ts +4 -4
  100. package/dist/services/HTMLSlotElementService.js +9 -9
  101. package/dist/services/InputEventService.d.ts +41 -41
  102. package/dist/services/InputEventService.js +47 -47
  103. package/dist/services/KeyboardEventService.d.ts +70 -70
  104. package/dist/services/KeyboardEventService.js +86 -86
  105. package/dist/services/MouseEventService.d.ts +80 -80
  106. package/dist/services/MouseEventService.js +108 -108
  107. package/dist/services/NamedNodeMapService.d.ts +23 -23
  108. package/dist/services/NamedNodeMapService.js +77 -77
  109. package/dist/services/NodeService.d.ts +26 -0
  110. package/dist/services/NodeService.js +42 -0
  111. package/dist/services/NodeService.min.js +1 -1
  112. package/dist/services/PointerEventService.d.ts +51 -51
  113. package/dist/services/PointerEventService.js +67 -67
  114. package/dist/services/ShadowRootService.d.ts +4 -4
  115. package/dist/services/ShadowRootService.js +9 -9
  116. package/dist/services/TextService.d.ts +1 -1
  117. package/dist/services/TextService.js +13 -13
  118. package/dist/services/UIEventService.d.ts +43 -43
  119. package/dist/services/UIEventService.js +42 -42
  120. package/dist/simulate.d.ts +32 -32
  121. package/dist/simulate.js +115 -115
  122. package/package.json +3 -2
@@ -1,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;
@@ -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;