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.
Files changed (131) hide show
  1. package/README.md +686 -241
  2. package/browser/pseudo-dom.js +3576 -735
  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 +17 -43
  7. package/dist/classes/PseudoHTMLDocument.js +24 -94
  8. package/dist/classes/PseudoHTMLDocument.min.js +1 -1
  9. package/dist/classes/PseudoNodeList.d.ts +34 -34
  10. package/dist/classes/PseudoNodeList.js +71 -71
  11. package/dist/factories/createEvent.d.ts +28 -28
  12. package/dist/factories/createEvent.js +56 -56
  13. package/dist/factories/cssSelectAdapter.d.ts +23 -0
  14. package/dist/factories/cssSelectAdapter.js +87 -0
  15. package/dist/factories/cssSelectAdapter.min.js +1 -0
  16. package/dist/factories/eventDefaults.d.ts +31 -31
  17. package/dist/factories/eventDefaults.js +105 -105
  18. package/dist/factories/generateDocument.d.ts +11 -11
  19. package/dist/factories/generateDocument.js +65 -65
  20. package/dist/factories/generateNodeList.d.ts +9 -9
  21. package/dist/factories/generateNodeList.js +13 -13
  22. package/dist/factories/query.d.ts +33 -0
  23. package/dist/factories/query.js +66 -0
  24. package/dist/factories/query.min.js +1 -0
  25. package/dist/functions/activeElement.d.ts +14 -14
  26. package/dist/functions/activeElement.js +33 -33
  27. package/dist/functions/getElementById.d.ts +13 -0
  28. package/dist/functions/getElementById.js +33 -0
  29. package/dist/functions/getElementById.min.js +1 -0
  30. package/dist/functions/getParentNodes.d.ts +11 -11
  31. package/dist/functions/getParentNodes.js +22 -22
  32. package/dist/functions/getParentNodesFromAttribute.d.ts +14 -14
  33. package/dist/functions/getParentNodesFromAttribute.js +29 -29
  34. package/dist/functions/modifierState.d.ts +29 -29
  35. package/dist/functions/modifierState.js +41 -41
  36. package/dist/interfaces/PseudoAnimation.d.ts +3 -3
  37. package/dist/interfaces/PseudoAnimation.js +5 -5
  38. package/dist/interfaces/PseudoAttr.d.ts +11 -11
  39. package/dist/interfaces/PseudoAttr.js +5 -5
  40. package/dist/interfaces/PseudoDOMTokenList.d.ts +16 -16
  41. package/dist/interfaces/PseudoDOMTokenList.js +5 -5
  42. package/dist/interfaces/PseudoDocument.d.ts +32 -0
  43. package/dist/interfaces/PseudoDocument.js +5 -5
  44. package/dist/interfaces/PseudoDocumentFragment.d.ts +7 -0
  45. package/dist/interfaces/PseudoDocumentFragment.js +5 -5
  46. package/dist/interfaces/PseudoElement.d.ts +702 -689
  47. package/dist/interfaces/PseudoElement.js +5 -5
  48. package/dist/interfaces/PseudoEvent.d.ts +79 -79
  49. package/dist/interfaces/PseudoEvent.js +10 -10
  50. package/dist/interfaces/PseudoEventTarget.d.ts +46 -46
  51. package/dist/interfaces/PseudoEventTarget.js +5 -5
  52. package/dist/interfaces/PseudoHTMLCollection.d.ts +23 -23
  53. package/dist/interfaces/PseudoHTMLCollection.js +5 -5
  54. package/dist/interfaces/PseudoHTMLElement.d.ts +22 -22
  55. package/dist/interfaces/PseudoHTMLElement.js +5 -5
  56. package/dist/interfaces/PseudoHTMLSlotElement.d.ts +3 -3
  57. package/dist/interfaces/PseudoHTMLSlotElement.js +5 -5
  58. package/dist/interfaces/PseudoNamedNodeMap.d.ts +11 -11
  59. package/dist/interfaces/PseudoNamedNodeMap.js +5 -5
  60. package/dist/interfaces/PseudoNode.d.ts +179 -179
  61. package/dist/interfaces/PseudoNode.js +5 -5
  62. package/dist/interfaces/PseudoShadowRoot.d.ts +3 -3
  63. package/dist/interfaces/PseudoShadowRoot.js +5 -5
  64. package/dist/main.d.ts +63 -63
  65. package/dist/main.js +155 -155
  66. package/dist/services/AnimationService.d.ts +4 -4
  67. package/dist/services/AnimationService.js +16 -16
  68. package/dist/services/AttrService.d.ts +37 -37
  69. package/dist/services/AttrService.js +81 -81
  70. package/dist/services/CommentService.d.ts +1 -1
  71. package/dist/services/CommentService.js +13 -13
  72. package/dist/services/CustomEventService.d.ts +37 -37
  73. package/dist/services/CustomEventService.js +35 -35
  74. package/dist/services/DOMTokenListService.d.ts +33 -33
  75. package/dist/services/DOMTokenListService.js +117 -117
  76. package/dist/services/DocumentFragmentService.d.ts +8 -0
  77. package/dist/services/DocumentFragmentService.js +18 -0
  78. package/dist/services/DocumentFragmentService.min.js +1 -1
  79. package/dist/services/DocumentService.d.ts +35 -1
  80. package/dist/services/DocumentService.js +72 -0
  81. package/dist/services/DocumentService.min.js +1 -1
  82. package/dist/services/ElementService.d.ts +191 -178
  83. package/dist/services/ElementService.js +426 -406
  84. package/dist/services/ElementService.min.js +1 -1
  85. package/dist/services/EventService.d.ts +120 -120
  86. package/dist/services/EventService.js +250 -250
  87. package/dist/services/EventTargetService.d.ts +84 -84
  88. package/dist/services/EventTargetService.js +232 -232
  89. package/dist/services/FocusEventService.d.ts +32 -32
  90. package/dist/services/FocusEventService.js +35 -35
  91. package/dist/services/HTMLCollectionService.d.ts +54 -49
  92. package/dist/services/HTMLCollectionService.js +92 -75
  93. package/dist/services/HTMLCollectionService.min.js +1 -1
  94. package/dist/services/HTMLElementService.d.ts +57 -57
  95. package/dist/services/HTMLElementService.js +163 -163
  96. package/dist/services/HTMLSlotElementService.d.ts +4 -4
  97. package/dist/services/HTMLSlotElementService.js +9 -9
  98. package/dist/services/InputEventService.d.ts +41 -41
  99. package/dist/services/InputEventService.js +47 -47
  100. package/dist/services/KeyboardEventService.d.ts +70 -70
  101. package/dist/services/KeyboardEventService.js +86 -86
  102. package/dist/services/MouseEventService.d.ts +80 -80
  103. package/dist/services/MouseEventService.js +108 -108
  104. package/dist/services/NamedNodeMapService.d.ts +23 -23
  105. package/dist/services/NamedNodeMapService.js +77 -77
  106. package/dist/services/NodeService.d.ts +297 -271
  107. package/dist/services/NodeService.js +721 -679
  108. package/dist/services/NodeService.min.js +1 -1
  109. package/dist/services/PointerEventService.d.ts +51 -51
  110. package/dist/services/PointerEventService.js +67 -67
  111. package/dist/services/ShadowRootService.d.ts +4 -4
  112. package/dist/services/ShadowRootService.js +9 -9
  113. package/dist/services/TextService.d.ts +1 -1
  114. package/dist/services/TextService.js +13 -13
  115. package/dist/services/UIEventService.d.ts +43 -43
  116. package/dist/services/UIEventService.js +42 -42
  117. package/dist/simulate.d.ts +32 -32
  118. package/dist/simulate.js +115 -115
  119. package/package.json +4 -3
  120. package/dist/classes.d.ts +0 -20
  121. package/dist/classes.js +0 -31
  122. package/dist/classes.min.js +0 -1
  123. package/dist/factories/generateNode.d.ts +0 -32
  124. package/dist/factories/generateNode.js +0 -85
  125. package/dist/factories/generateNode.min.js +0 -1
  126. package/dist/factories.d.ts +0 -11
  127. package/dist/factories.js +0 -27
  128. package/dist/factories.min.js +0 -1
  129. package/dist/functions.d.ts +0 -5
  130. package/dist/functions.js +0 -23
  131. package/dist/functions.min.js +0 -1
package/dist/simulate.js CHANGED
@@ -1,115 +1,115 @@
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
- exports.keyPress = exports.click = void 0
14
- /**
15
- * @file Simulate what a user does, with the events the browser sends for it.
16
- * @author Joshua Heagle <joshuaheagle@gmail.com>
17
- * @version 1.0.0
18
- * @module pseudoDom/simulate
19
- */
20
- const createEvent_1 = __importDefault(require('./factories/createEvent'))
21
- const activeElement_1 = require('./functions/activeElement')
22
- const send = (target, type, init) => target.dispatchEvent((0, createEvent_1.default)(type, init, {
23
- browser: true,
24
- trusted: true
25
- }))
26
- /**
27
- * The nearest element (starting with the element itself) which can have the focus.
28
- * @param {*} element Where to start
29
- * @returns {*|null}
30
- */
31
- const focusableFrom = element => {
32
- let current = element
33
- while (current) {
34
- if (current.canFocus) {
35
- return current
36
- }
37
- current = current.parentNode
38
- }
39
- return null
40
- }
41
- /**
42
- * Click an element the way a user does: pointerdown and mousedown, then the focus moves to the nearest element which
43
- * can have it (or is taken away from the one which had it) unless mousedown was cancelled, then pointerup, mouseup
44
- * and finally click. Every event is trusted and has the options the browser gives it. A disabled element gets nothing.
45
- * @function click
46
- * @param {*} element The element to click
47
- * @param {Object} [init={}] Options for the events (for example clientX, clientY, shiftKey)
48
- * @returns {boolean} False when the click was cancelled (or the element is disabled), so its default action did not happen
49
- */
50
- const click = (element, init = {}) => {
51
- if (element.hasAttribute && element.hasAttribute('disabled')) {
52
- return false
53
- }
54
- const pointer = Object.assign({
55
- pointerId: 1,
56
- pointerType: 'mouse',
57
- isPrimary: true,
58
- button: 0
59
- }, init)
60
- send(element, 'pointerdown', Object.assign({
61
- buttons: 1
62
- }, pointer))
63
- if (send(element, 'mousedown', Object.assign({
64
- buttons: 1,
65
- detail: 1
66
- }, init, {
67
- button: 0
68
- }))) {
69
- const focusable = focusableFrom(element)
70
- if (focusable) {
71
- focusable.focus()
72
- } else {
73
- const active = (0, activeElement_1.getActiveElement)(element.getRootNode())
74
- if (active) {
75
- active.blur()
76
- }
77
- }
78
- }
79
- send(element, 'pointerup', Object.assign({
80
- buttons: 0
81
- }, pointer))
82
- send(element, 'mouseup', Object.assign({
83
- buttons: 0,
84
- detail: 1
85
- }, init, {
86
- button: 0
87
- }))
88
- return send(element, 'click', Object.assign({
89
- detail: 1
90
- }, init, {
91
- button: 0
92
- }))
93
- }
94
- exports.click = click
95
- /**
96
- * Press and release a key on an element (the element which has the focus, or one given): keydown and then keyup.
97
- * @function keyPress
98
- * @param {*} element The element which gets the key
99
- * @param {string} key The value of the key, such as a or Enter
100
- * @param {Object} [init={}] Options for the events (for example code, shiftKey)
101
- * @returns {boolean} False when keydown was cancelled, so its default action did not happen
102
- */
103
- const keyPress = (element, key, init = {}) => {
104
- const options = Object.assign({
105
- key
106
- }, init)
107
- const proceeded = send(element, 'keydown', options)
108
- send(element, 'keyup', options)
109
- return proceeded
110
- }
111
- exports.keyPress = keyPress
112
- exports.default = {
113
- click: exports.click,
114
- keyPress: exports.keyPress
115
- }
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
+ exports.keyPress = exports.click = void 0
14
+ /**
15
+ * @file Simulate what a user does, with the events the browser sends for it.
16
+ * @author Joshua Heagle <joshuaheagle@gmail.com>
17
+ * @version 1.0.0
18
+ * @module pseudoDom/simulate
19
+ */
20
+ const createEvent_1 = __importDefault(require('./factories/createEvent'))
21
+ const activeElement_1 = require('./functions/activeElement')
22
+ const send = (target, type, init) => target.dispatchEvent((0, createEvent_1.default)(type, init, {
23
+ browser: true,
24
+ trusted: true
25
+ }))
26
+ /**
27
+ * The nearest element (starting with the element itself) which can have the focus.
28
+ * @param {*} element Where to start
29
+ * @returns {*|null}
30
+ */
31
+ const focusableFrom = element => {
32
+ let current = element
33
+ while (current) {
34
+ if (current.canFocus) {
35
+ return current
36
+ }
37
+ current = current.parentNode
38
+ }
39
+ return null
40
+ }
41
+ /**
42
+ * Click an element the way a user does: pointerdown and mousedown, then the focus moves to the nearest element which
43
+ * can have it (or is taken away from the one which had it) unless mousedown was cancelled, then pointerup, mouseup
44
+ * and finally click. Every event is trusted and has the options the browser gives it. A disabled element gets nothing.
45
+ * @function click
46
+ * @param {*} element The element to click
47
+ * @param {Object} [init={}] Options for the events (for example clientX, clientY, shiftKey)
48
+ * @returns {boolean} False when the click was cancelled (or the element is disabled), so its default action did not happen
49
+ */
50
+ const click = (element, init = {}) => {
51
+ if (element.hasAttribute && element.hasAttribute('disabled')) {
52
+ return false
53
+ }
54
+ const pointer = Object.assign({
55
+ pointerId: 1,
56
+ pointerType: 'mouse',
57
+ isPrimary: true,
58
+ button: 0
59
+ }, init)
60
+ send(element, 'pointerdown', Object.assign({
61
+ buttons: 1
62
+ }, pointer))
63
+ if (send(element, 'mousedown', Object.assign({
64
+ buttons: 1,
65
+ detail: 1
66
+ }, init, {
67
+ button: 0
68
+ }))) {
69
+ const focusable = focusableFrom(element)
70
+ if (focusable) {
71
+ focusable.focus()
72
+ } else {
73
+ const active = (0, activeElement_1.getActiveElement)(element.getRootNode())
74
+ if (active) {
75
+ active.blur()
76
+ }
77
+ }
78
+ }
79
+ send(element, 'pointerup', Object.assign({
80
+ buttons: 0
81
+ }, pointer))
82
+ send(element, 'mouseup', Object.assign({
83
+ buttons: 0,
84
+ detail: 1
85
+ }, init, {
86
+ button: 0
87
+ }))
88
+ return send(element, 'click', Object.assign({
89
+ detail: 1
90
+ }, init, {
91
+ button: 0
92
+ }))
93
+ }
94
+ exports.click = click
95
+ /**
96
+ * Press and release a key on an element (the element which has the focus, or one given): keydown and then keyup.
97
+ * @function keyPress
98
+ * @param {*} element The element which gets the key
99
+ * @param {string} key The value of the key, such as a or Enter
100
+ * @param {Object} [init={}] Options for the events (for example code, shiftKey)
101
+ * @returns {boolean} False when keydown was cancelled, so its default action did not happen
102
+ */
103
+ const keyPress = (element, key, init = {}) => {
104
+ const options = Object.assign({
105
+ key
106
+ }, init)
107
+ const proceeded = send(element, 'keydown', options)
108
+ send(element, 'keyup', options)
109
+ return proceeded
110
+ }
111
+ exports.keyPress = keyPress
112
+ exports.default = {
113
+ click: exports.click,
114
+ keyPress: exports.keyPress
115
+ }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "pseudo-dom",
3
3
  "description": "Mock the DOM on the server side for managing state and testing",
4
- "version": "0.6.0",
4
+ "version": "0.8.0",
5
5
  "main": "dist/main.js",
6
6
  "types": "dist/main.d.ts",
7
7
  "author": "Joshua Heagle",
@@ -18,12 +18,13 @@
18
18
  "watch:test": "gulp watchTest"
19
19
  },
20
20
  "dependencies": {
21
- "collect-your-stuff": "^2.1.1",
21
+ "collect-your-stuff": "^2.1.2",
22
22
  "core-js": "^3.50.0",
23
+ "css-select": "^6.0.0",
23
24
  "si-funciona": "^2.6.1"
24
25
  },
25
26
  "devDependencies": {
26
- "js-build-tools": "^5.0.0",
27
+ "js-build-tools": "^5.2.0",
27
28
  "jsdoc": "^4.0.5",
28
29
  "standard": "^17.1.2",
29
30
  "test-filesystem": "^1.5.1"
package/dist/classes.d.ts DELETED
@@ -1,20 +0,0 @@
1
- /**
2
- * @file All of the Pseudo Dom classes for replicating DOM structure.
3
- * @author Joshua Heagle <joshuaheagle@gmail.com>
4
- * @version 1.0.0
5
- */
6
- import { EventService as PseudoEvent } from './services/EventService';
7
- import PseudoEventTarget from './services/EventTargetService';
8
- import { NodeService as PseudoNode } from './services/NodeService';
9
- import { ElementService as PseudoElement } from './services/ElementService';
10
- import { HTMLElementService as PseudoHTMLElement } from './services/HTMLElementService';
11
- import PseudoHTMLDocument from './classes/PseudoHTMLDocument';
12
- declare const _default: {
13
- PseudoEvent: typeof PseudoEvent;
14
- PseudoEventTarget: typeof PseudoEventTarget;
15
- PseudoNode: typeof PseudoNode;
16
- PseudoElement: typeof PseudoElement;
17
- PseudoHTMLElement: typeof PseudoHTMLElement;
18
- PseudoHTMLDocument: typeof PseudoHTMLDocument;
19
- };
20
- export default _default;
package/dist/classes.js DELETED
@@ -1,31 +0,0 @@
1
- 'use strict'
2
-
3
- /**
4
- * @file All of the Pseudo Dom classes for replicating DOM structure.
5
- * @author Joshua Heagle <joshuaheagle@gmail.com>
6
- * @version 1.0.0
7
- */
8
- const __importDefault = void 0 && (void 0).__importDefault || function (mod) {
9
- return mod && mod.__esModule
10
- ? mod
11
- : {
12
- default: mod
13
- }
14
- }
15
- Object.defineProperty(exports, '__esModule', {
16
- value: true
17
- })
18
- const EventService_1 = require('./services/EventService')
19
- const EventTargetService_1 = __importDefault(require('./services/EventTargetService'))
20
- const NodeService_1 = require('./services/NodeService')
21
- const ElementService_1 = require('./services/ElementService')
22
- const HTMLElementService_1 = require('./services/HTMLElementService')
23
- const PseudoHTMLDocument_1 = __importDefault(require('./classes/PseudoHTMLDocument'))
24
- exports.default = {
25
- PseudoEvent: EventService_1.EventService,
26
- PseudoEventTarget: EventTargetService_1.default,
27
- PseudoNode: NodeService_1.NodeService,
28
- PseudoElement: ElementService_1.ElementService,
29
- PseudoHTMLElement: HTMLElementService_1.HTMLElementService,
30
- PseudoHTMLDocument: PseudoHTMLDocument_1.default
31
- }
@@ -1 +0,0 @@
1
- "use strict";var __importDefault=function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0});const EventService_1=require("./services/EventService"),EventTargetService_1=__importDefault(require("./services/EventTargetService")),NodeService_1=require("./services/NodeService"),ElementService_1=require("./services/ElementService"),HTMLElementService_1=require("./services/HTMLElementService"),PseudoHTMLDocument_1=__importDefault(require("./classes/PseudoHTMLDocument"));exports.default={PseudoEvent:EventService_1.EventService,PseudoEventTarget:EventTargetService_1.default,PseudoNode:NodeService_1.NodeService,PseudoElement:ElementService_1.ElementService,PseudoHTMLElement:HTMLElementService_1.HTMLElementService,PseudoHTMLDocument:PseudoHTMLDocument_1.default};
@@ -1,32 +0,0 @@
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 +0,0 @@
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 +0,0 @@
1
- "use strict";require("core-js/modules/esnext.iterator.constructor.js"),require("core-js/modules/esnext.iterator.reduce.js"),Object.defineProperty(exports,"__esModule",{value:!0}),exports.NodeFactory=exports.LinkedNode=void 0;const TreeLinker_1=require("collect-your-stuff/dist/collections/linked-tree-list/TreeLinker"),NodeService_1=require("../services/NodeService");class LinkedNode extends NodeService_1.NodeService{constructor(e,t=""){super(),this.listLinker=e,this.nodeValue=t}get isConnected(){return!!this.parentNode}get parentNode(){if(this.parent)return this.parent;const e=this.listLinker?this.listLinker.parent:null;return e?e.data:null}get parentElement(){const e=this.parentNode;return e&&e.nodeType===NodeService_1.NodeService.ELEMENT_NODE?e:null}}exports.LinkedNode=LinkedNode;class NodeFactory extends TreeLinker_1.TreeLinker{}exports.NodeFactory=NodeFactory;const generateNode=()=>(NodeFactory.fromArray=(e=[],t=NodeFactory)=>e.reduce((e,r)=>{"object"!=typeof r&&(r={data:r});const o=new t(Object.assign({},r,{prev:e.tail}));return o.data=new LinkedNode(o,r.data),null===e.head?{head:o,tail:o}:(e.tail.next=o,o.prev=e.tail,{head:e.head,tail:o})},{head:null,tail:null}),NodeFactory);exports.default=generateNode;
@@ -1,11 +0,0 @@
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 DELETED
@@ -1,27 +0,0 @@
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 +0,0 @@
1
- "use strict";var __importDefault=function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0});const generateNode_1=__importDefault(require("./factories/generateNode")),generateNodeList_1=__importDefault(require("./factories/generateNodeList")),createEvent_1=__importDefault(require("./factories/createEvent")),eventDefaults_1=__importDefault(require("./factories/eventDefaults"));exports.default={generateNode:generateNode_1.default,nodeListFactory:generateNodeList_1.default,createEvent:createEvent_1.default,eventDefaults:eventDefaults_1.default};
@@ -1,5 +0,0 @@
1
- declare const _default: {
2
- getParentNodes: (node: import("./interfaces/PseudoEventTarget").PseudoEventTarget | import("./interfaces/PseudoNode").PseudoNode | any) => Array<import("./interfaces/PseudoNode").PseudoNode>;
3
- getParentNodesFromAttribute: (attr: string, value: boolean | number | string, node: import("./interfaces/PseudoEventTarget").PseudoEventTarget | import("./interfaces/PseudoNode").PseudoNode | any) => Array<import("./interfaces/PseudoNode").PseudoNode>;
4
- };
5
- export default _default;
package/dist/functions.js DELETED
@@ -1,23 +0,0 @@
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 Helper functions for managing interactions with DOM classes
15
- * @author Joshua Heagle <joshuaheagle@gmail.com>
16
- * @version 1.0.0
17
- */
18
- const getParentNodes_1 = __importDefault(require('./functions/getParentNodes'))
19
- const getParentNodesFromAttribute_1 = __importDefault(require('./functions/getParentNodesFromAttribute'))
20
- exports.default = {
21
- getParentNodes: getParentNodes_1.default,
22
- getParentNodesFromAttribute: getParentNodesFromAttribute_1.default
23
- }
@@ -1 +0,0 @@
1
- "use strict";var __importDefault=function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0});const getParentNodes_1=__importDefault(require("./functions/getParentNodes")),getParentNodesFromAttribute_1=__importDefault(require("./functions/getParentNodesFromAttribute"));exports.default={getParentNodes:getParentNodes_1.default,getParentNodesFromAttribute:getParentNodesFromAttribute_1.default};