treeloom 0.0.0-stage → 2.1.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 (289) hide show
  1. package/LICENSE +373 -0
  2. package/README.md +91 -2
  3. package/browser/treeloom.js +11232 -0
  4. package/browser/treeloom.min.js +1 -0
  5. package/browser/treeloomRenderOnly.js +11115 -0
  6. package/browser/treeloomRenderOnly.min.js +1 -0
  7. package/dist/deflate/domItemToJson.d.ts +14 -0
  8. package/dist/deflate/domItemToJson.js +43 -0
  9. package/dist/deflate/domItemToJson.min.js +1 -0
  10. package/dist/deflate/index.d.ts +7 -0
  11. package/dist/deflate/index.js +19 -0
  12. package/dist/deflate/index.min.js +1 -0
  13. package/dist/deflate/removeEmptyProperties.d.ts +8 -0
  14. package/dist/deflate/removeEmptyProperties.js +43 -0
  15. package/dist/deflate/removeEmptyProperties.min.js +1 -0
  16. package/dist/diff/appliedSnapshot.d.ts +34 -0
  17. package/dist/diff/appliedSnapshot.js +134 -0
  18. package/dist/diff/appliedSnapshot.min.js +1 -0
  19. package/dist/diff/createChangeList.d.ts +9 -0
  20. package/dist/diff/createChangeList.js +44 -0
  21. package/dist/diff/createChangeList.min.js +1 -0
  22. package/dist/diff/domItemChanges.d.ts +9 -0
  23. package/dist/diff/domItemChanges.js +167 -0
  24. package/dist/diff/domItemChanges.min.js +1 -0
  25. package/dist/diff/domItemHasAttribute.d.ts +11 -0
  26. package/dist/diff/domItemHasAttribute.js +63 -0
  27. package/dist/diff/domItemHasAttribute.min.js +1 -0
  28. package/dist/diff/elementChanges.d.ts +10 -0
  29. package/dist/diff/elementChanges.js +151 -0
  30. package/dist/diff/elementChanges.min.js +1 -0
  31. package/dist/diff/elementHasAttribute.d.ts +10 -0
  32. package/dist/diff/elementHasAttribute.js +70 -0
  33. package/dist/diff/elementHasAttribute.min.js +1 -0
  34. package/dist/diff/getAssignedStyles.d.ts +9 -0
  35. package/dist/diff/getAssignedStyles.js +22 -0
  36. package/dist/diff/getAssignedStyles.min.js +1 -0
  37. package/dist/diff/index.d.ts +9 -0
  38. package/dist/diff/index.js +27 -0
  39. package/dist/diff/index.min.js +1 -0
  40. package/dist/diff/types.d.ts +17 -0
  41. package/dist/diff/types.js +8 -0
  42. package/dist/diff/types.min.js +1 -0
  43. package/dist/domItem/index.d.ts +34 -0
  44. package/dist/domItem/index.js +81 -0
  45. package/dist/domItem/index.min.js +1 -0
  46. package/dist/domItem/objects/addDomItemProperties.d.ts +7 -0
  47. package/dist/domItem/objects/addDomItemProperties.js +27 -0
  48. package/dist/domItem/objects/addDomItemProperties.min.js +1 -0
  49. package/dist/domItem/objects/createCoreItem.d.ts +9 -0
  50. package/dist/domItem/objects/createCoreItem.js +53 -0
  51. package/dist/domItem/objects/createCoreItem.min.js +1 -0
  52. package/dist/domItem/objects/createDomItem.d.ts +10 -0
  53. package/dist/domItem/objects/createDomItem.js +40 -0
  54. package/dist/domItem/objects/createDomItem.min.js +1 -0
  55. package/dist/domItem/objects/documentDomItem.d.ts +12 -0
  56. package/dist/domItem/objects/documentDomItem.js +36 -0
  57. package/dist/domItem/objects/documentDomItem.min.js +1 -0
  58. package/dist/domItem/objects/documentItem.d.ts +18 -0
  59. package/dist/domItem/objects/documentItem.js +40 -0
  60. package/dist/domItem/objects/documentItem.min.js +1 -0
  61. package/dist/domItem/objects/initChildren.d.ts +6 -0
  62. package/dist/domItem/objects/initChildren.js +44 -0
  63. package/dist/domItem/objects/initChildren.min.js +1 -0
  64. package/dist/domItem/objects/initRoot.d.ts +9 -0
  65. package/dist/domItem/objects/initRoot.js +32 -0
  66. package/dist/domItem/objects/initRoot.min.js +1 -0
  67. package/dist/domItem/query/gatherChildItems.d.ts +12 -0
  68. package/dist/domItem/query/gatherChildItems.js +19 -0
  69. package/dist/domItem/query/gatherChildItems.min.js +1 -0
  70. package/dist/domItem/query/getChildTest.d.ts +8 -0
  71. package/dist/domItem/query/getChildTest.js +15 -0
  72. package/dist/domItem/query/getChildTest.min.js +1 -0
  73. package/dist/domItem/query/getChildrenByClass.d.ts +11 -0
  74. package/dist/domItem/query/getChildrenByClass.js +26 -0
  75. package/dist/domItem/query/getChildrenByClass.min.js +1 -0
  76. package/dist/domItem/query/getChildrenByName.d.ts +9 -0
  77. package/dist/domItem/query/getChildrenByName.js +23 -0
  78. package/dist/domItem/query/getChildrenByName.min.js +1 -0
  79. package/dist/domItem/query/getChildrenFromAttribute.d.ts +13 -0
  80. package/dist/domItem/query/getChildrenFromAttribute.js +28 -0
  81. package/dist/domItem/query/getChildrenFromAttribute.min.js +1 -0
  82. package/dist/domItem/query/getItemByElement.d.ts +11 -0
  83. package/dist/domItem/query/getItemByElement.js +29 -0
  84. package/dist/domItem/query/getItemByElement.min.js +1 -0
  85. package/dist/domItem/query/getParentsByClass.d.ts +12 -0
  86. package/dist/domItem/query/getParentsByClass.js +40 -0
  87. package/dist/domItem/query/getParentsByClass.min.js +1 -0
  88. package/dist/domItem/query/getParentsByName.d.ts +9 -0
  89. package/dist/domItem/query/getParentsByName.js +23 -0
  90. package/dist/domItem/query/getParentsByName.min.js +1 -0
  91. package/dist/domItem/query/getParentsByTagName.d.ts +9 -0
  92. package/dist/domItem/query/getParentsByTagName.js +23 -0
  93. package/dist/domItem/query/getParentsByTagName.min.js +1 -0
  94. package/dist/domItem/query/getParentsFromAttribute.d.ts +13 -0
  95. package/dist/domItem/query/getParentsFromAttribute.js +39 -0
  96. package/dist/domItem/query/getParentsFromAttribute.min.js +1 -0
  97. package/dist/domItem/traits/defineTrait.d.ts +10 -0
  98. package/dist/domItem/traits/defineTrait.js +26 -0
  99. package/dist/domItem/traits/defineTrait.min.js +1 -0
  100. package/dist/domItem/traits/definitions.d.ts +7 -0
  101. package/dist/domItem/traits/definitions.js +20 -0
  102. package/dist/domItem/traits/definitions.min.js +1 -0
  103. package/dist/domItem/traits/getNonSerializableKeys.d.ts +9 -0
  104. package/dist/domItem/traits/getNonSerializableKeys.js +25 -0
  105. package/dist/domItem/traits/getNonSerializableKeys.min.js +1 -0
  106. package/dist/domItem/traits/getTraitDefinition.d.ts +7 -0
  107. package/dist/domItem/traits/getTraitDefinition.js +20 -0
  108. package/dist/domItem/traits/getTraitDefinition.min.js +1 -0
  109. package/dist/domItem/traits/hasTrait.d.ts +8 -0
  110. package/dist/domItem/traits/hasTrait.js +15 -0
  111. package/dist/domItem/traits/hasTrait.min.js +1 -0
  112. package/dist/domItem/traits/hasTraits.d.ts +9 -0
  113. package/dist/domItem/traits/hasTraits.js +16 -0
  114. package/dist/domItem/traits/hasTraits.min.js +1 -0
  115. package/dist/domItem/traits/isDomItem.d.ts +8 -0
  116. package/dist/domItem/traits/isDomItem.js +21 -0
  117. package/dist/domItem/traits/isDomItem.min.js +1 -0
  118. package/dist/domItem/traits/withTrait.d.ts +11 -0
  119. package/dist/domItem/traits/withTrait.js +30 -0
  120. package/dist/domItem/traits/withTrait.min.js +1 -0
  121. package/dist/domItem/tree/appendChild.d.ts +8 -0
  122. package/dist/domItem/tree/appendChild.js +19 -0
  123. package/dist/domItem/tree/appendChild.min.js +1 -0
  124. package/dist/domItem/tree/getItemByPath.d.ts +10 -0
  125. package/dist/domItem/tree/getItemByPath.js +23 -0
  126. package/dist/domItem/tree/getItemByPath.min.js +1 -0
  127. package/dist/domItem/tree/getItemPath.d.ts +9 -0
  128. package/dist/domItem/tree/getItemPath.js +31 -0
  129. package/dist/domItem/tree/getItemPath.min.js +1 -0
  130. package/dist/domItem/tree/getTopParentItem.d.ts +8 -0
  131. package/dist/domItem/tree/getTopParentItem.js +29 -0
  132. package/dist/domItem/tree/getTopParentItem.min.js +1 -0
  133. package/dist/domItem/tree/insertChild.d.ts +11 -0
  134. package/dist/domItem/tree/insertChild.js +22 -0
  135. package/dist/domItem/tree/insertChild.min.js +1 -0
  136. package/dist/domItem/tree/itemIdIndex.d.ts +43 -0
  137. package/dist/domItem/tree/itemIdIndex.js +118 -0
  138. package/dist/domItem/tree/itemIdIndex.min.js +1 -0
  139. package/dist/domItem/tree/removeChild.d.ts +8 -0
  140. package/dist/domItem/tree/removeChild.js +21 -0
  141. package/dist/domItem/tree/removeChild.min.js +1 -0
  142. package/dist/domItem/tree/setParentItemReferences.d.ts +7 -0
  143. package/dist/domItem/tree/setParentItemReferences.js +24 -0
  144. package/dist/domItem/tree/setParentItemReferences.min.js +1 -0
  145. package/dist/domItem/types.d.ts +131 -0
  146. package/dist/domItem/types.js +8 -0
  147. package/dist/domItem/types.min.js +1 -0
  148. package/dist/events/functions/activateListener.d.ts +10 -0
  149. package/dist/events/functions/activateListener.js +45 -0
  150. package/dist/events/functions/activateListener.min.js +1 -0
  151. package/dist/events/functions/addEventListener.d.ts +23 -0
  152. package/dist/events/functions/addEventListener.js +54 -0
  153. package/dist/events/functions/addEventListener.min.js +1 -0
  154. package/dist/events/functions/applyActiveListeners.d.ts +9 -0
  155. package/dist/events/functions/applyActiveListeners.js +52 -0
  156. package/dist/events/functions/applyActiveListeners.min.js +1 -0
  157. package/dist/events/functions/assignListener.d.ts +12 -0
  158. package/dist/events/functions/assignListener.js +39 -0
  159. package/dist/events/functions/assignListener.min.js +1 -0
  160. package/dist/events/functions/bindAllListeners.d.ts +10 -0
  161. package/dist/events/functions/bindAllListeners.js +28 -0
  162. package/dist/events/functions/bindAllListeners.min.js +1 -0
  163. package/dist/events/functions/bindElementListeners.d.ts +7 -0
  164. package/dist/events/functions/bindElementListeners.js +34 -0
  165. package/dist/events/functions/bindElementListeners.min.js +1 -0
  166. package/dist/events/functions/bindListeners.d.ts +9 -0
  167. package/dist/events/functions/bindListeners.js +23 -0
  168. package/dist/events/functions/bindListeners.min.js +1 -0
  169. package/dist/events/functions/deactivateListener.d.ts +13 -0
  170. package/dist/events/functions/deactivateListener.js +58 -0
  171. package/dist/events/functions/deactivateListener.min.js +1 -0
  172. package/dist/events/functions/deactivateListeners.d.ts +7 -0
  173. package/dist/events/functions/deactivateListeners.js +22 -0
  174. package/dist/events/functions/deactivateListeners.min.js +1 -0
  175. package/dist/events/functions/findEventListener.d.ts +22 -0
  176. package/dist/events/functions/findEventListener.js +61 -0
  177. package/dist/events/functions/findEventListener.min.js +1 -0
  178. package/dist/events/functions/fullAddEventListener.d.ts +20 -0
  179. package/dist/events/functions/fullAddEventListener.js +45 -0
  180. package/dist/events/functions/fullAddEventListener.min.js +1 -0
  181. package/dist/events/functions/fullRemoveEventListener.d.ts +22 -0
  182. package/dist/events/functions/fullRemoveEventListener.js +37 -0
  183. package/dist/events/functions/fullRemoveEventListener.min.js +1 -0
  184. package/dist/events/functions/listenerOptions.d.ts +12 -0
  185. package/dist/events/functions/listenerOptions.js +31 -0
  186. package/dist/events/functions/listenerOptions.min.js +1 -0
  187. package/dist/events/functions/makeEventHandler.d.ts +10 -0
  188. package/dist/events/functions/makeEventHandler.js +23 -0
  189. package/dist/events/functions/makeEventHandler.min.js +1 -0
  190. package/dist/events/functions/makeForwardingListener.d.ts +11 -0
  191. package/dist/events/functions/makeForwardingListener.js +46 -0
  192. package/dist/events/functions/makeForwardingListener.min.js +1 -0
  193. package/dist/events/functions/receiveForwardedEvent.d.ts +23 -0
  194. package/dist/events/functions/receiveForwardedEvent.js +40 -0
  195. package/dist/events/functions/receiveForwardedEvent.min.js +1 -0
  196. package/dist/events/functions/registerListener.d.ts +11 -0
  197. package/dist/events/functions/registerListener.js +25 -0
  198. package/dist/events/functions/registerListener.min.js +1 -0
  199. package/dist/events/functions/registerListeners.d.ts +10 -0
  200. package/dist/events/functions/registerListeners.js +26 -0
  201. package/dist/events/functions/registerListeners.min.js +1 -0
  202. package/dist/events/functions/removeEventListener.d.ts +18 -0
  203. package/dist/events/functions/removeEventListener.js +42 -0
  204. package/dist/events/functions/removeEventListener.min.js +1 -0
  205. package/dist/events/functions/retrieveListener.d.ts +14 -0
  206. package/dist/events/functions/retrieveListener.js +39 -0
  207. package/dist/events/functions/retrieveListener.min.js +1 -0
  208. package/dist/events/functions/revokeActiveListeners.d.ts +12 -0
  209. package/dist/events/functions/revokeActiveListeners.js +54 -0
  210. package/dist/events/functions/revokeActiveListeners.min.js +1 -0
  211. package/dist/events/functions/setForwardEvents.d.ts +11 -0
  212. package/dist/events/functions/setForwardEvents.js +26 -0
  213. package/dist/events/functions/setForwardEvents.min.js +1 -0
  214. package/dist/events/functions/unassignListener.d.ts +12 -0
  215. package/dist/events/functions/unassignListener.js +32 -0
  216. package/dist/events/functions/unassignListener.min.js +1 -0
  217. package/dist/events/index.d.ts +37 -0
  218. package/dist/events/index.js +72 -0
  219. package/dist/events/index.min.js +1 -0
  220. package/dist/events/objects/createEventListener.d.ts +13 -0
  221. package/dist/events/objects/createEventListener.js +30 -0
  222. package/dist/events/objects/createEventListener.min.js +1 -0
  223. package/dist/events/objects/createEventProxy.d.ts +10 -0
  224. package/dist/events/objects/createEventProxy.js +48 -0
  225. package/dist/events/objects/createEventProxy.min.js +1 -0
  226. package/dist/events/objects/createEventResponder.d.ts +8 -0
  227. package/dist/events/objects/createEventResponder.js +27 -0
  228. package/dist/events/objects/createEventResponder.min.js +1 -0
  229. package/dist/events/objects/options/getListenerOptions.d.ts +6 -0
  230. package/dist/events/objects/options/getListenerOptions.js +22 -0
  231. package/dist/events/objects/options/getListenerOptions.min.js +1 -0
  232. package/dist/events/objects/options/numberToOptions.d.ts +8 -0
  233. package/dist/events/objects/options/numberToOptions.js +21 -0
  234. package/dist/events/objects/options/numberToOptions.min.js +1 -0
  235. package/dist/events/objects/options/optionsToNumber.d.ts +9 -0
  236. package/dist/events/objects/options/optionsToNumber.js +27 -0
  237. package/dist/events/objects/options/optionsToNumber.min.js +1 -0
  238. package/dist/events/objects/options.d.ts +6 -0
  239. package/dist/events/objects/options.js +24 -0
  240. package/dist/events/objects/options.min.js +1 -0
  241. package/dist/events/types.d.ts +87 -0
  242. package/dist/events/types.js +8 -0
  243. package/dist/events/types.min.js +1 -0
  244. package/dist/inflate/index.d.ts +4 -0
  245. package/dist/inflate/index.js +17 -0
  246. package/dist/inflate/index.min.js +1 -0
  247. package/dist/inflate/jsonToDomItem.d.ts +7 -0
  248. package/dist/inflate/jsonToDomItem.js +30 -0
  249. package/dist/inflate/jsonToDomItem.min.js +1 -0
  250. package/dist/main.d.ts +2 -0
  251. package/dist/main.js +24 -0
  252. package/dist/main.min.js +1 -0
  253. package/dist/render/generateElement.d.ts +7 -0
  254. package/dist/render/generateElement.js +41 -0
  255. package/dist/render/generateElement.min.js +1 -0
  256. package/dist/render/index.d.ts +9 -0
  257. package/dist/render/index.js +27 -0
  258. package/dist/render/index.min.js +1 -0
  259. package/dist/render/reconcile.d.ts +16 -0
  260. package/dist/render/reconcile.js +169 -0
  261. package/dist/render/reconcile.min.js +1 -0
  262. package/dist/render/renderHtml.d.ts +16 -0
  263. package/dist/render/renderHtml.js +57 -0
  264. package/dist/render/renderHtml.min.js +1 -0
  265. package/dist/render/updateChildNodes.d.ts +7 -0
  266. package/dist/render/updateChildNodes.js +53 -0
  267. package/dist/render/updateChildNodes.min.js +1 -0
  268. package/dist/render/updateElement.d.ts +14 -0
  269. package/dist/render/updateElement.js +113 -0
  270. package/dist/render/updateElement.min.js +1 -0
  271. package/dist/render/updateElements.d.ts +9 -0
  272. package/dist/render/updateElements.js +33 -0
  273. package/dist/render/updateElements.min.js +1 -0
  274. package/dist/renderOnly.d.ts +2 -0
  275. package/dist/renderOnly.js +27 -0
  276. package/dist/renderOnly.min.js +1 -0
  277. package/dist/sync/index.d.ts +6 -0
  278. package/dist/sync/index.js +21 -0
  279. package/dist/sync/index.min.js +1 -0
  280. package/dist/sync/updateChildren.d.ts +7 -0
  281. package/dist/sync/updateChildren.js +38 -0
  282. package/dist/sync/updateChildren.min.js +1 -0
  283. package/dist/sync/updateDomItem.d.ts +8 -0
  284. package/dist/sync/updateDomItem.js +53 -0
  285. package/dist/sync/updateDomItem.min.js +1 -0
  286. package/dist/sync/updateDomItems.d.ts +9 -0
  287. package/dist/sync/updateDomItems.js +33 -0
  288. package/dist/sync/updateDomItems.min.js +1 -0
  289. package/package.json +74 -4
@@ -0,0 +1 @@
1
+ "use strict";var __importDefault=function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0});const si_funciona_1=__importDefault(require("si-funciona")),documentItem_1=__importDefault(require("../../domItem/objects/documentItem")),registerListeners=(e,t=(0,documentItem_1.default)())=>(si_funciona_1.default.mergeObjectsMutable(t.eventActions,e),t);exports.default=registerListeners;
@@ -0,0 +1,18 @@
1
+ import type { DomItem } from '../../domItem/types';
2
+ import type { EventName, ListenerFunction, ListenerOptions } from '../types';
3
+ /**
4
+ * Find and remove an event listener from a DomItem: detaches it from the element first (via
5
+ * {@link deactivateListener}) if it was active, then splices its descriptor out of eventListeners. A no-op if no
6
+ * matching listener is found.
7
+ *
8
+ * item is the last parameter (instead of customArgs/options having literal defaults) so this can be curried and
9
+ * piped directly - see {@link fullAddEventListener} for an example of the pattern.
10
+ * @param eventName - The name of the trigger event the listener was registered under.
11
+ * @param listenerFunction - The listener function to match against.
12
+ * @param customArgs - The custom args the listener was registered with.
13
+ * @param options - The options the listener was registered with.
14
+ * @param item - The DomItem to remove the listener from.
15
+ * @returns The same DomItem, with the matching listener removed if one was found.
16
+ */
17
+ declare const removeEventListener: (eventName: EventName, listenerFunction: string | ListenerFunction, customArgs: object | null | undefined, options: ListenerOptions | null | undefined, item: DomItem) => DomItem;
18
+ export default removeEventListener;
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+
3
+ /* This Source Code Form is subject to the terms of the Mozilla Public
4
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
5
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
6
+ var __importDefault = void 0 && (void 0).__importDefault || function (mod) {
7
+ return mod && mod.__esModule ? mod : {
8
+ "default": mod
9
+ };
10
+ };
11
+ Object.defineProperty(exports, "__esModule", {
12
+ value: true
13
+ });
14
+ const findEventListener_1 = __importDefault(require("./findEventListener"));
15
+ const deactivateListener_1 = __importDefault(require("./deactivateListener"));
16
+ /**
17
+ * Find and remove an event listener from a DomItem: detaches it from the element first (via
18
+ * {@link deactivateListener}) if it was active, then splices its descriptor out of eventListeners. A no-op if no
19
+ * matching listener is found.
20
+ *
21
+ * item is the last parameter (instead of customArgs/options having literal defaults) so this can be curried and
22
+ * piped directly - see {@link fullAddEventListener} for an example of the pattern.
23
+ * @param eventName - The name of the trigger event the listener was registered under.
24
+ * @param listenerFunction - The listener function to match against.
25
+ * @param customArgs - The custom args the listener was registered with.
26
+ * @param options - The options the listener was registered with.
27
+ * @param item - The DomItem to remove the listener from.
28
+ * @returns The same DomItem, with the matching listener removed if one was found.
29
+ */
30
+ const removeEventListener = (eventName, listenerFunction, customArgs, options, item) => {
31
+ const [listenerIndex, foundListener] = (0, findEventListener_1.default)(eventName, listenerFunction, customArgs, options, item);
32
+ if (listenerIndex < 0 || typeof foundListener === 'undefined') {
33
+ // listener not found
34
+ return item;
35
+ }
36
+ if (foundListener.listenerActive === true) {
37
+ item = (0, deactivateListener_1.default)(eventName, foundListener, item);
38
+ }
39
+ item.eventListeners[eventName].splice(listenerIndex, 1);
40
+ return item;
41
+ };
42
+ exports.default = removeEventListener;
@@ -0,0 +1 @@
1
+ "use strict";var __importDefault=function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0});const findEventListener_1=__importDefault(require("./findEventListener")),deactivateListener_1=__importDefault(require("./deactivateListener")),removeEventListener=(e,t,r,i,n)=>{const[s,u]=(0,findEventListener_1.default)(e,t,r,i,n);return s<0||void 0===u||(!0===u.listenerActive&&(n=(0,deactivateListener_1.default)(e,u,n)),n.eventListeners[e].splice(s,1)),n};exports.default=removeEventListener;
@@ -0,0 +1,14 @@
1
+ import type { DomItemRoot } from '../../domItem/types';
2
+ import type { ListenerFunction } from '../types';
3
+ /**
4
+ * Based on the provided function / listener name, retrieve the associated function from the root domEvents.DomItem.
5
+ * If a raw function is passed instead of a registered name, it is returned as-is - see {@link EventListener}'s
6
+ * listenerFunc property for the tradeoffs of that discretionary path. When the root has forwardEvents set (render-
7
+ * only mode - see setForwardEvents), every name resolves to a forwarder instead, whether or not it is registered in
8
+ * eventActions: see makeForwardingListener.
9
+ * @param listenerName - The name of one of the registered listener functions, or an
10
+ * already-resolved listener function.
11
+ * @param parent - The parent DomItem which is DomItemRoot which stores eventListeners property.
12
+ */
13
+ declare const retrieveListener: (listenerName: string | ListenerFunction, parent?: DomItemRoot) => ListenerFunction;
14
+ export default retrieveListener;
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+
3
+ /* This Source Code Form is subject to the terms of the Mozilla Public
4
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
5
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
6
+ require("core-js/modules/es.array.includes.js");
7
+ var __importDefault = void 0 && (void 0).__importDefault || function (mod) {
8
+ return mod && mod.__esModule ? mod : {
9
+ "default": mod
10
+ };
11
+ };
12
+ Object.defineProperty(exports, "__esModule", {
13
+ value: true
14
+ });
15
+ const documentItem_1 = __importDefault(require("../../domItem/objects/documentItem"));
16
+ const makeForwardingListener_1 = __importDefault(require("./makeForwardingListener"));
17
+ /**
18
+ * Based on the provided function / listener name, retrieve the associated function from the root domEvents.DomItem.
19
+ * If a raw function is passed instead of a registered name, it is returned as-is - see {@link EventListener}'s
20
+ * listenerFunc property for the tradeoffs of that discretionary path. When the root has forwardEvents set (render-
21
+ * only mode - see setForwardEvents), every name resolves to a forwarder instead, whether or not it is registered in
22
+ * eventActions: see makeForwardingListener.
23
+ * @param listenerName - The name of one of the registered listener functions, or an
24
+ * already-resolved listener function.
25
+ * @param parent - The parent DomItem which is DomItemRoot which stores eventListeners property.
26
+ */
27
+ const retrieveListener = (listenerName, parent = (0, documentItem_1.default)()) => {
28
+ if (typeof listenerName === 'function') {
29
+ return listenerName;
30
+ }
31
+ if (parent.forwardEvents) {
32
+ return (0, makeForwardingListener_1.default)(listenerName, parent.forwardEvents);
33
+ }
34
+ if (!Object.keys(parent.eventActions).includes(listenerName)) {
35
+ throw new Error(`Undefined listener function on this DomItemRoot: ${listenerName}`);
36
+ }
37
+ return parent.eventActions[listenerName];
38
+ };
39
+ exports.default = retrieveListener;
@@ -0,0 +1 @@
1
+ "use strict";require("core-js/modules/es.array.includes.js");var __importDefault=function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0});const documentItem_1=__importDefault(require("../../domItem/objects/documentItem")),makeForwardingListener_1=__importDefault(require("./makeForwardingListener")),retrieveListener=(e,t=(0,documentItem_1.default)())=>{if("function"==typeof e)return e;if(t.forwardEvents)return(0,makeForwardingListener_1.default)(e,t.forwardEvents);if(!Object.keys(t.eventActions).includes(e))throw new Error(`Undefined listener function on this DomItemRoot: ${e}`);return t.eventActions[e]};exports.default=retrieveListener;
@@ -0,0 +1,12 @@
1
+ import type { DomItem } from '../../domItem/types';
2
+ import type { EventName } from '../types';
3
+ /**
4
+ * Detach every active listener for one event type from a DomItem's element, regardless of which EventListener
5
+ * descriptor each one belongs to, and clear that event's activeListeners bucket. Unlike {@link deactivateListener},
6
+ * this does not update the listenerActive/activeResponder state on the individual descriptors.
7
+ * @param eventName - The name of the trigger event whose active listeners will be revoked.
8
+ * @param item - The DomItem to revoke active listeners from.
9
+ * @returns The same DomItem, with all active listeners for this event detached.
10
+ */
11
+ declare const revokeActiveListeners: (eventName: EventName, item: DomItem) => DomItem;
12
+ export default revokeActiveListeners;
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+
3
+ /* This Source Code Form is subject to the terms of the Mozilla Public
4
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
5
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
6
+ var __importDefault = void 0 && (void 0).__importDefault || function (mod) {
7
+ return mod && mod.__esModule ? mod : {
8
+ "default": mod
9
+ };
10
+ };
11
+ Object.defineProperty(exports, "__esModule", {
12
+ value: true
13
+ });
14
+ const si_funciona_1 = __importDefault(require("si-funciona"));
15
+ const getListenerOptions_1 = __importDefault(require("../objects/options/getListenerOptions"));
16
+ const numberToOptions_1 = __importDefault(require("../objects/options/numberToOptions"));
17
+ const unassignListener_1 = __importDefault(require("./unassignListener"));
18
+ /**
19
+ * Detach every active listener for one event type from a DomItem's element, regardless of which EventListener
20
+ * descriptor each one belongs to, and clear that event's activeListeners bucket. Unlike {@link deactivateListener},
21
+ * this does not update the listenerActive/activeResponder state on the individual descriptors.
22
+ * @param eventName - The name of the trigger event whose active listeners will be revoked.
23
+ * @param item - The DomItem to revoke active listeners from.
24
+ * @returns The same DomItem, with all active listeners for this event detached.
25
+ */
26
+ const revokeActiveListeners = (eventName, item) => {
27
+ const listenerOptions = (0, getListenerOptions_1.default)();
28
+ const eventOptions = si_funciona_1.default.dotGet(item, `activeListeners.${eventName}`);
29
+ if (eventOptions === null) {
30
+ return item;
31
+ }
32
+ si_funciona_1.default.objectKeys(eventOptions).forEach(binaryOptions => {
33
+ const optionsToUse = (0, numberToOptions_1.default)(listenerOptions, parseInt(binaryOptions));
34
+ const usesSignal = !!optionsToUse.signal;
35
+ if (!usesSignal) {
36
+ // Abort signal must be undefined if it is not required.
37
+ delete optionsToUse.signal;
38
+ }
39
+ ;
40
+ item.activeListeners[eventName][Number(binaryOptions)].forEach(eventResponder => {
41
+ if (!eventResponder.assignedHandler) {
42
+ // never actually attached to the element, nothing to detach
43
+ return;
44
+ }
45
+ const finalOptions = usesSignal ? Object.assign({}, optionsToUse, {
46
+ signal: eventResponder.abort.signal
47
+ }) : optionsToUse;
48
+ (0, unassignListener_1.default)(eventName, item.element, eventResponder.assignedHandler, finalOptions);
49
+ });
50
+ });
51
+ delete item.activeListeners[eventName];
52
+ return item;
53
+ };
54
+ exports.default = revokeActiveListeners;
@@ -0,0 +1 @@
1
+ "use strict";var __importDefault=function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0});const si_funciona_1=__importDefault(require("si-funciona")),getListenerOptions_1=__importDefault(require("../objects/options/getListenerOptions")),numberToOptions_1=__importDefault(require("../objects/options/numberToOptions")),unassignListener_1=__importDefault(require("./unassignListener")),revokeActiveListeners=(e,t)=>{const n=(0,getListenerOptions_1.default)(),s=si_funciona_1.default.dotGet(t,`activeListeners.${e}`);return null===s||(si_funciona_1.default.objectKeys(s).forEach(s=>{const i=(0,numberToOptions_1.default)(n,parseInt(s)),r=!!i.signal;r||delete i.signal,t.activeListeners[e][Number(s)].forEach(n=>{if(!n.assignedHandler)return;const s=r?Object.assign({},i,{signal:n.abort.signal}):i;(0,unassignListener_1.default)(e,t.element,n.assignedHandler,s)})}),delete t.activeListeners[e]),t};exports.default=revokeActiveListeners;
@@ -0,0 +1,11 @@
1
+ import type { DomItemRoot } from '../../domItem/types';
2
+ import type { ForwardEventsFunction } from '../types';
3
+ /**
4
+ * Switch the root item into render-only mode: every registered listener name resolves to a forwarder instead of a
5
+ * local function (see retrieveListener, makeForwardingListener), so no local listener functions need to be
6
+ * registered at all.
7
+ * @param transport - Called with the envelope of each forwarded event.
8
+ * @param parent - The parent DomItem which is DomItemRoot to switch into render-only mode.
9
+ */
10
+ declare const setForwardEvents: (transport: ForwardEventsFunction, parent?: DomItemRoot) => DomItemRoot;
11
+ export default setForwardEvents;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+
3
+ /* This Source Code Form is subject to the terms of the Mozilla Public
4
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
5
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
6
+ var __importDefault = void 0 && (void 0).__importDefault || function (mod) {
7
+ return mod && mod.__esModule ? mod : {
8
+ "default": mod
9
+ };
10
+ };
11
+ Object.defineProperty(exports, "__esModule", {
12
+ value: true
13
+ });
14
+ const documentItem_1 = __importDefault(require("../../domItem/objects/documentItem"));
15
+ /**
16
+ * Switch the root item into render-only mode: every registered listener name resolves to a forwarder instead of a
17
+ * local function (see retrieveListener, makeForwardingListener), so no local listener functions need to be
18
+ * registered at all.
19
+ * @param transport - Called with the envelope of each forwarded event.
20
+ * @param parent - The parent DomItem which is DomItemRoot to switch into render-only mode.
21
+ */
22
+ const setForwardEvents = (transport, parent = (0, documentItem_1.default)()) => {
23
+ parent.forwardEvents = transport;
24
+ return parent;
25
+ };
26
+ exports.default = setForwardEvents;
@@ -0,0 +1 @@
1
+ "use strict";var __importDefault=function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0});const documentItem_1=__importDefault(require("../../domItem/objects/documentItem")),setForwardEvents=(e,t=(0,documentItem_1.default)())=>(t.forwardEvents=e,t);exports.default=setForwardEvents;
@@ -0,0 +1,12 @@
1
+ import type { EventHandler, ListenerOptions, ListenerTarget } from '../types';
2
+ /**
3
+ * Provide compatibility for unassigning listeners.
4
+ * @param trigger - The name of the event which will trigger the listenerFunction on the element. (keyof HTMLElementEventMap)
5
+ * @param elem - An element to append the listener onto
6
+ * @param fn - The function which will be invoked when the
7
+ * event is triggered
8
+ * @param options - Additional options to how the event will be
9
+ * fired
10
+ */
11
+ declare const unassignListener: (trigger: string, elem: ListenerTarget, fn: EventHandler, options?: ListenerOptions) => EventHandler;
12
+ export default unassignListener;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+
3
+ /* This Source Code Form is subject to the terms of the Mozilla Public
4
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
5
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
6
+ var __importDefault = void 0 && (void 0).__importDefault || function (mod) {
7
+ return mod && mod.__esModule ? mod : {
8
+ "default": mod
9
+ };
10
+ };
11
+ Object.defineProperty(exports, "__esModule", {
12
+ value: true
13
+ });
14
+ const listenerOptions_1 = __importDefault(require("./listenerOptions"));
15
+ /**
16
+ * Provide compatibility for unassigning listeners.
17
+ * @param trigger - The name of the event which will trigger the listenerFunction on the element. (keyof HTMLElementEventMap)
18
+ * @param elem - An element to append the listener onto
19
+ * @param fn - The function which will be invoked when the
20
+ * event is triggered
21
+ * @param options - Additional options to how the event will be
22
+ * fired
23
+ */
24
+ const unassignListener = (trigger, elem, fn, options = false) => {
25
+ // Removing a listener may be done differently based on the browser support
26
+ if (elem.removeEventListener) {
27
+ // Latest support is provided from removeEventListener with the options parameter varying slightly
28
+ elem.removeEventListener(trigger, fn, (0, listenerOptions_1.default)(options));
29
+ }
30
+ return fn;
31
+ };
32
+ exports.default = unassignListener;
@@ -0,0 +1 @@
1
+ "use strict";var __importDefault=function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0});const listenerOptions_1=__importDefault(require("./listenerOptions")),unassignListener=(e,t,n,r=!1)=>(t.removeEventListener&&t.removeEventListener(e,n,(0,listenerOptions_1.default)(r)),n);exports.default=unassignListener;
@@ -0,0 +1,37 @@
1
+ declare const _default: {
2
+ activateListener: (eventName: import("./types").EventName, eventListener: import("./types").ListenerDescriptor, item: import("../domItem/types").DomItem) => import("../domItem/types").DomItem;
3
+ addEventListener: (eventName: import("./types").EventName, listenerFunction: string | import("./types").ListenerFunction, customArgs: object | null | undefined, options: import("./types").ListenerOptions | null | undefined, item: import("../domItem/types").DomItem) => import("../domItem/types").DomItem;
4
+ applyActiveListeners: (eventName: import("./types").EventName, item: import("../domItem/types").DomItem) => import("../domItem/types").DomItem;
5
+ assignListener: (trigger: string, elem: import("./types").ListenerTarget, fn: import("./types").EventHandler, options?: import("./types").ListenerOptions) => import("./types").EventHandler;
6
+ bindAllListeners: (item: import("../domItem/types").DomItem) => import("../domItem/types").DomItem;
7
+ bindElementListeners: (item: import("../domItem/types").DomItem) => import("../domItem/types").DomItem;
8
+ bindListeners: (item: import("../domItem/types").DomItem) => import("../domItem/types").DomItem;
9
+ deactivateListener: (eventName: import("./types").EventName, eventListener: import("./types").ListenerDescriptor, item: import("../domItem/types").DomItem) => import("../domItem/types").DomItem;
10
+ deactivateListeners: (item: import("../domItem/types").DomItem) => import("../domItem/types").DomItem;
11
+ findEventListener: (eventName: import("./types").EventName, listenerFunction: string | import("./types").ListenerFunction, customArgs: object | null | undefined, options: import("./types").ListenerOptions | null | undefined, item: import("../domItem/types").DomItem) => [number, import("./types").ListenerDescriptor | undefined];
12
+ fullAddEventListener: (eventName: import("./types").EventName, listener: import("./types").ListenerFunction, name: string | null | undefined, customArgs: object | null | undefined, options: import("./types").ListenerOptions | null | undefined, item: import("../domItem/types").DomItem) => import("../domItem/types").DomItem;
13
+ fullRemoveEventListener: (eventName: import("./types").EventName, listener: import("./types").ListenerFunction, name: string | null | undefined, customArgs: object | null | undefined, options: import("./types").ListenerOptions | null | undefined, item: import("../domItem/types").DomItem) => import("../domItem/types").DomItem;
14
+ listenerOptions: {
15
+ (options?: import("./types").ListenerOptions | null): import("./types").ListenerOptions | null;
16
+ supportsOptions?: boolean;
17
+ };
18
+ makeEventHandler: (listener: import("./types").ListenerFunction, item: import("../domItem/types").DomItem, ...args: unknown[]) => import("./types").EventHandler;
19
+ makeForwardingListener: (listenerName: string, transport: import("./types").ForwardEventsFunction) => import("./types").ListenerFunction;
20
+ receiveForwardedEvent: (root: import("../domItem/types").DomItemRoot, envelope: import("./types").ForwardedEvent, validator?: import("./functions/receiveForwardedEvent").ForwardedEventValidator) => void;
21
+ registerListener: (listener: import("./types").ListenerFunction, name?: string, parent?: import("../domItem/types").DomItemRoot) => Record<string, import("./types").ListenerFunction>;
22
+ registerListeners: (listeners: import("./types").ListenerFunction[] | Record<string, import("./types").ListenerFunction>, parent?: import("../domItem/types").DomItemRoot) => import("../domItem/types").DomItemRoot;
23
+ removeEventListener: (eventName: import("./types").EventName, listenerFunction: string | import("./types").ListenerFunction, customArgs: object | null | undefined, options: import("./types").ListenerOptions | null | undefined, item: import("../domItem/types").DomItem) => import("../domItem/types").DomItem;
24
+ retrieveListener: (listenerName: string | import("./types").ListenerFunction, parent?: import("../domItem/types").DomItemRoot) => import("./types").ListenerFunction;
25
+ revokeActiveListeners: (eventName: import("./types").EventName, item: import("../domItem/types").DomItem) => import("../domItem/types").DomItem;
26
+ setForwardEvents: (transport: import("./types").ForwardEventsFunction, parent?: import("../domItem/types").DomItemRoot) => import("../domItem/types").DomItemRoot;
27
+ unassignListener: (trigger: string, elem: import("./types").ListenerTarget, fn: import("./types").EventHandler, options?: import("./types").ListenerOptions) => import("./types").EventHandler;
28
+ createEventListener: ({ listenerFunc, listenerArgs, listenerOptions, listenerActive }?: Partial<import("./types").ListenerDescriptor>) => import("./types").ListenerDescriptor;
29
+ createEventProxy: (event: Event, item: import("../domItem/types").DomItem) => import("./types").EventProxy;
30
+ createEventResponder: (eventHandler: import("./types").EventHandler, abort?: AbortController | boolean | null) => import("./types").EventResponder;
31
+ options: {
32
+ getListenerOptions: () => import("./types").OptionsTemplate;
33
+ numberToOptions: (optionsTemplate: import("./types").OptionsTemplate, binaryOptions: number) => import("./types").OptionsObject;
34
+ optionsToNumber: (optionsTemplate: import("./types").OptionsTemplate, listenerOptions?: import("./types").ListenerOptions | null) => number;
35
+ };
36
+ };
37
+ export default _default;
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+
3
+ /* This Source Code Form is subject to the terms of the Mozilla Public
4
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
5
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
6
+ var __importDefault = void 0 && (void 0).__importDefault || function (mod) {
7
+ return mod && mod.__esModule ? mod : {
8
+ "default": mod
9
+ };
10
+ };
11
+ Object.defineProperty(exports, "__esModule", {
12
+ value: true
13
+ });
14
+ /**
15
+ * Setting up and handling events for items in a Virtual DOM (DomItem tree)
16
+ */
17
+ const activateListener_1 = __importDefault(require("./functions/activateListener"));
18
+ const addEventListener_1 = __importDefault(require("./functions/addEventListener"));
19
+ const applyActiveListeners_1 = __importDefault(require("./functions/applyActiveListeners"));
20
+ const assignListener_1 = __importDefault(require("./functions/assignListener"));
21
+ const bindAllListeners_1 = __importDefault(require("./functions/bindAllListeners"));
22
+ const bindElementListeners_1 = __importDefault(require("./functions/bindElementListeners"));
23
+ const bindListeners_1 = __importDefault(require("./functions/bindListeners"));
24
+ const deactivateListener_1 = __importDefault(require("./functions/deactivateListener"));
25
+ const deactivateListeners_1 = __importDefault(require("./functions/deactivateListeners"));
26
+ const findEventListener_1 = __importDefault(require("./functions/findEventListener"));
27
+ const fullAddEventListener_1 = __importDefault(require("./functions/fullAddEventListener"));
28
+ const fullRemoveEventListener_1 = __importDefault(require("./functions/fullRemoveEventListener"));
29
+ const listenerOptions_1 = __importDefault(require("./functions/listenerOptions"));
30
+ const makeEventHandler_1 = __importDefault(require("./functions/makeEventHandler"));
31
+ const makeForwardingListener_1 = __importDefault(require("./functions/makeForwardingListener"));
32
+ const receiveForwardedEvent_1 = __importDefault(require("./functions/receiveForwardedEvent"));
33
+ const registerListener_1 = __importDefault(require("./functions/registerListener"));
34
+ const registerListeners_1 = __importDefault(require("./functions/registerListeners"));
35
+ const removeEventListener_1 = __importDefault(require("./functions/removeEventListener"));
36
+ const retrieveListener_1 = __importDefault(require("./functions/retrieveListener"));
37
+ const revokeActiveListeners_1 = __importDefault(require("./functions/revokeActiveListeners"));
38
+ const setForwardEvents_1 = __importDefault(require("./functions/setForwardEvents"));
39
+ const unassignListener_1 = __importDefault(require("./functions/unassignListener"));
40
+ const createEventListener_1 = __importDefault(require("./objects/createEventListener"));
41
+ const createEventProxy_1 = __importDefault(require("./objects/createEventProxy"));
42
+ const createEventResponder_1 = __importDefault(require("./objects/createEventResponder"));
43
+ const options_1 = __importDefault(require("./objects/options"));
44
+ exports.default = {
45
+ activateListener: activateListener_1.default,
46
+ addEventListener: addEventListener_1.default,
47
+ applyActiveListeners: applyActiveListeners_1.default,
48
+ assignListener: assignListener_1.default,
49
+ bindAllListeners: bindAllListeners_1.default,
50
+ bindElementListeners: bindElementListeners_1.default,
51
+ bindListeners: bindListeners_1.default,
52
+ deactivateListener: deactivateListener_1.default,
53
+ deactivateListeners: deactivateListeners_1.default,
54
+ findEventListener: findEventListener_1.default,
55
+ fullAddEventListener: fullAddEventListener_1.default,
56
+ fullRemoveEventListener: fullRemoveEventListener_1.default,
57
+ listenerOptions: listenerOptions_1.default,
58
+ makeEventHandler: makeEventHandler_1.default,
59
+ makeForwardingListener: makeForwardingListener_1.default,
60
+ receiveForwardedEvent: receiveForwardedEvent_1.default,
61
+ registerListener: registerListener_1.default,
62
+ registerListeners: registerListeners_1.default,
63
+ removeEventListener: removeEventListener_1.default,
64
+ retrieveListener: retrieveListener_1.default,
65
+ revokeActiveListeners: revokeActiveListeners_1.default,
66
+ setForwardEvents: setForwardEvents_1.default,
67
+ unassignListener: unassignListener_1.default,
68
+ createEventListener: createEventListener_1.default,
69
+ createEventProxy: createEventProxy_1.default,
70
+ createEventResponder: createEventResponder_1.default,
71
+ options: options_1.default
72
+ };
@@ -0,0 +1 @@
1
+ "use strict";var __importDefault=function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0});const activateListener_1=__importDefault(require("./functions/activateListener")),addEventListener_1=__importDefault(require("./functions/addEventListener")),applyActiveListeners_1=__importDefault(require("./functions/applyActiveListeners")),assignListener_1=__importDefault(require("./functions/assignListener")),bindAllListeners_1=__importDefault(require("./functions/bindAllListeners")),bindElementListeners_1=__importDefault(require("./functions/bindElementListeners")),bindListeners_1=__importDefault(require("./functions/bindListeners")),deactivateListener_1=__importDefault(require("./functions/deactivateListener")),deactivateListeners_1=__importDefault(require("./functions/deactivateListeners")),findEventListener_1=__importDefault(require("./functions/findEventListener")),fullAddEventListener_1=__importDefault(require("./functions/fullAddEventListener")),fullRemoveEventListener_1=__importDefault(require("./functions/fullRemoveEventListener")),listenerOptions_1=__importDefault(require("./functions/listenerOptions")),makeEventHandler_1=__importDefault(require("./functions/makeEventHandler")),makeForwardingListener_1=__importDefault(require("./functions/makeForwardingListener")),receiveForwardedEvent_1=__importDefault(require("./functions/receiveForwardedEvent")),registerListener_1=__importDefault(require("./functions/registerListener")),registerListeners_1=__importDefault(require("./functions/registerListeners")),removeEventListener_1=__importDefault(require("./functions/removeEventListener")),retrieveListener_1=__importDefault(require("./functions/retrieveListener")),revokeActiveListeners_1=__importDefault(require("./functions/revokeActiveListeners")),setForwardEvents_1=__importDefault(require("./functions/setForwardEvents")),unassignListener_1=__importDefault(require("./functions/unassignListener")),createEventListener_1=__importDefault(require("./objects/createEventListener")),createEventProxy_1=__importDefault(require("./objects/createEventProxy")),createEventResponder_1=__importDefault(require("./objects/createEventResponder")),options_1=__importDefault(require("./objects/options"));exports.default={activateListener:activateListener_1.default,addEventListener:addEventListener_1.default,applyActiveListeners:applyActiveListeners_1.default,assignListener:assignListener_1.default,bindAllListeners:bindAllListeners_1.default,bindElementListeners:bindElementListeners_1.default,bindListeners:bindListeners_1.default,deactivateListener:deactivateListener_1.default,deactivateListeners:deactivateListeners_1.default,findEventListener:findEventListener_1.default,fullAddEventListener:fullAddEventListener_1.default,fullRemoveEventListener:fullRemoveEventListener_1.default,listenerOptions:listenerOptions_1.default,makeEventHandler:makeEventHandler_1.default,makeForwardingListener:makeForwardingListener_1.default,receiveForwardedEvent:receiveForwardedEvent_1.default,registerListener:registerListener_1.default,registerListeners:registerListeners_1.default,removeEventListener:removeEventListener_1.default,retrieveListener:retrieveListener_1.default,revokeActiveListeners:revokeActiveListeners_1.default,setForwardEvents:setForwardEvents_1.default,unassignListener:unassignListener_1.default,createEventListener:createEventListener_1.default,createEventProxy:createEventProxy_1.default,createEventResponder:createEventResponder_1.default,options:options_1.default};
@@ -0,0 +1,13 @@
1
+ import type { ListenerDescriptor } from '../types';
2
+ /**
3
+ * Prepare an eventListener object to attach to a DOMItem
4
+ * @param listenerProperties
5
+ * @param listenerProperties.listenerFunc - The function or name (string) of the listener
6
+ * action - see {@link EventListener}'s listenerFunc property for when to use which.
7
+ * @param listenerProperties.listenerArgs - Additional parameters to apply to the function
8
+ * @param listenerProperties.listenerOptions - The listener options to apply to the element
9
+ * @param listenerProperties.listenerActive - Flag for listener applied to element
10
+ * @returns An EventListener descriptor ready to be pushed onto a DomItem's eventListeners
11
+ */
12
+ declare const createEventListener: ({ listenerFunc, listenerArgs, listenerOptions, listenerActive }?: Partial<ListenerDescriptor>) => ListenerDescriptor;
13
+ export default createEventListener;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ /* This Source Code Form is subject to the terms of the Mozilla Public
4
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
5
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
6
+ Object.defineProperty(exports, "__esModule", {
7
+ value: true
8
+ });
9
+ /**
10
+ * Prepare an eventListener object to attach to a DOMItem
11
+ * @param listenerProperties
12
+ * @param listenerProperties.listenerFunc - The function or name (string) of the listener
13
+ * action - see {@link EventListener}'s listenerFunc property for when to use which.
14
+ * @param listenerProperties.listenerArgs - Additional parameters to apply to the function
15
+ * @param listenerProperties.listenerOptions - The listener options to apply to the element
16
+ * @param listenerProperties.listenerActive - Flag for listener applied to element
17
+ * @returns An EventListener descriptor ready to be pushed onto a DomItem's eventListeners
18
+ */
19
+ const createEventListener = ({
20
+ listenerFunc,
21
+ listenerArgs = null,
22
+ listenerOptions = false,
23
+ listenerActive = false
24
+ } = {}) => ({
25
+ listenerFunc: listenerFunc,
26
+ listenerArgs,
27
+ listenerOptions,
28
+ listenerActive
29
+ });
30
+ exports.default = createEventListener;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});const createEventListener=({listenerFunc:e,listenerArgs:t=null,listenerOptions:s=!1,listenerActive:n=!1}={})=>({listenerFunc:e,listenerArgs:t,listenerOptions:s,listenerActive:n});exports.default=createEventListener;
@@ -0,0 +1,10 @@
1
+ import type { DomItem } from '../../domItem/types';
2
+ import type { EventProxy } from '../types';
3
+ /**
4
+ * Return a modified version of the event: adds domItemTarget and currentDomItemTarget, next to the real DOM's own
5
+ * target and currentTarget.
6
+ * @param event
7
+ * @param item - The DomItem the listener is attached to (this event's currentTarget).
8
+ */
9
+ declare const createEventProxy: (event: Event, item: DomItem) => EventProxy;
10
+ export default createEventProxy;
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+
3
+ /* This Source Code Form is subject to the terms of the Mozilla Public
4
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
5
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
6
+ var __importDefault = void 0 && (void 0).__importDefault || function (mod) {
7
+ return mod && mod.__esModule ? mod : {
8
+ "default": mod
9
+ };
10
+ };
11
+ Object.defineProperty(exports, "__esModule", {
12
+ value: true
13
+ });
14
+ const getItemByElement_1 = __importDefault(require("../../domItem/query/getItemByElement"));
15
+ /**
16
+ * Return a modified version of the event: adds domItemTarget and currentDomItemTarget, next to the real DOM's own
17
+ * target and currentTarget.
18
+ * @param event
19
+ * @param item - The DomItem the listener is attached to (this event's currentTarget).
20
+ */
21
+ const createEventProxy = (event, item) => new Proxy(Object.defineProperties(event, {
22
+ immediatePropagationStopped: {
23
+ enumerable: true,
24
+ value: false,
25
+ writable: true
26
+ },
27
+ currentDomItemTarget: {
28
+ enumerable: true,
29
+ value: item,
30
+ writable: true
31
+ },
32
+ domItemTarget: {
33
+ enumerable: true,
34
+ value: (0, getItemByElement_1.default)(item, event.target),
35
+ writable: true
36
+ }
37
+ }), {
38
+ get(thisEvent, prop) {
39
+ if (prop === 'stopImmediatePropagation') {
40
+ thisEvent.immediatePropagationStopped = true;
41
+ }
42
+ // Read from the event itself rather than the proxy: Event's methods and accessors rely on internal slots
43
+ // (private fields since Node 24), which throw when `this` is the proxy.
44
+ const value = Reflect.get(thisEvent, prop);
45
+ return typeof value === 'function' && prop !== 'constructor' ? value.bind(thisEvent) : value;
46
+ }
47
+ });
48
+ exports.default = createEventProxy;
@@ -0,0 +1 @@
1
+ "use strict";var __importDefault=function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0});const getItemByElement_1=__importDefault(require("../../domItem/query/getItemByElement")),createEventProxy=(e,t)=>new Proxy(Object.defineProperties(e,{immediatePropagationStopped:{enumerable:!0,value:!1,writable:!0},currentDomItemTarget:{enumerable:!0,value:t,writable:!0},domItemTarget:{enumerable:!0,value:(0,getItemByElement_1.default)(t,e.target),writable:!0}}),{get(e,t){"stopImmediatePropagation"===t&&(e.immediatePropagationStopped=!0);const r=Reflect.get(e,t);return"function"==typeof r&&"constructor"!==t?r.bind(e):r}});exports.default=createEventProxy;
@@ -0,0 +1,8 @@
1
+ import type { EventHandler, EventResponder } from '../types';
2
+ /**
3
+ * Store the handler function and associated abort controller instance if available to be used when events are triggered.
4
+ * @param eventHandler - The eventHandler wrapped function to be called for the event.
5
+ * @param abort - Assign an AbortSignal provided or create one (if true), otherwise null.
6
+ */
7
+ declare const createEventResponder: (eventHandler: EventHandler, abort?: AbortController | boolean | null) => EventResponder;
8
+ export default createEventResponder;
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ /* This Source Code Form is subject to the terms of the Mozilla Public
4
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
5
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
6
+ Object.defineProperty(exports, "__esModule", {
7
+ value: true
8
+ });
9
+ /**
10
+ * Store the handler function and associated abort controller instance if available to be used when events are triggered.
11
+ * @param eventHandler - The eventHandler wrapped function to be called for the event.
12
+ * @param abort - Assign an AbortSignal provided or create one (if true), otherwise null.
13
+ */
14
+ const createEventResponder = (eventHandler, abort = null) => {
15
+ if (abort === true) {
16
+ abort = new AbortController();
17
+ }
18
+ if (abort === false) {
19
+ abort = null;
20
+ }
21
+ return Object.assign({}, {
22
+ handler: eventHandler,
23
+ abort,
24
+ assignedHandler: null
25
+ });
26
+ };
27
+ exports.default = createEventResponder;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});const createEventResponder=(e,t=null)=>(!0===t&&(t=new AbortController),!1===t&&(t=null),Object.assign({},{handler:e,abort:t,assignedHandler:null}));exports.default=createEventResponder;
@@ -0,0 +1,6 @@
1
+ import type { OptionsTemplate } from '../../types';
2
+ /**
3
+ * Retrieve the OptionsTemplate for EventListenerOptions.
4
+ */
5
+ declare const getListenerOptions: () => OptionsTemplate;
6
+ export default getListenerOptions;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+
3
+ /* This Source Code Form is subject to the terms of the Mozilla Public
4
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
5
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
6
+ Object.defineProperty(exports, "__esModule", {
7
+ value: true
8
+ });
9
+ const CAPTURE = 1;
10
+ const ONCE = 2;
11
+ const PASSIVE = 4;
12
+ const SIGNAL = 8;
13
+ /**
14
+ * Retrieve the OptionsTemplate for EventListenerOptions.
15
+ */
16
+ const getListenerOptions = () => ({
17
+ capture: CAPTURE,
18
+ once: ONCE,
19
+ passive: PASSIVE,
20
+ signal: SIGNAL
21
+ });
22
+ exports.default = getListenerOptions;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});const CAPTURE=1,ONCE=2,PASSIVE=4,SIGNAL=8,getListenerOptions=()=>({capture:1,once:2,passive:4,signal:8});exports.default=getListenerOptions;
@@ -0,0 +1,8 @@
1
+ import type { OptionsObject, OptionsTemplate } from '../../types';
2
+ /**
3
+ * Take an integer representation of the listener options and convert them to the listener options object.
4
+ * @param optionsTemplate
5
+ * @param binaryOptions
6
+ */
7
+ declare const numberToOptions: (optionsTemplate: OptionsTemplate, binaryOptions: number) => OptionsObject;
8
+ export default numberToOptions;