treeloom 0.0.0-stage → 2.0.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 (283) hide show
  1. package/LICENSE +373 -0
  2. package/README.md +72 -2
  3. package/browser/treeloom.js +11006 -0
  4. package/browser/treeloom.min.js +1 -0
  5. package/browser/treeloomRenderOnly.js +10530 -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/createChangeList.d.ts +9 -0
  17. package/dist/diff/createChangeList.js +44 -0
  18. package/dist/diff/createChangeList.min.js +1 -0
  19. package/dist/diff/domItemChanges.d.ts +9 -0
  20. package/dist/diff/domItemChanges.js +154 -0
  21. package/dist/diff/domItemChanges.min.js +1 -0
  22. package/dist/diff/domItemHasAttribute.d.ts +11 -0
  23. package/dist/diff/domItemHasAttribute.js +63 -0
  24. package/dist/diff/domItemHasAttribute.min.js +1 -0
  25. package/dist/diff/elementChanges.d.ts +10 -0
  26. package/dist/diff/elementChanges.js +151 -0
  27. package/dist/diff/elementChanges.min.js +1 -0
  28. package/dist/diff/elementHasAttribute.d.ts +10 -0
  29. package/dist/diff/elementHasAttribute.js +70 -0
  30. package/dist/diff/elementHasAttribute.min.js +1 -0
  31. package/dist/diff/getAssignedStyles.d.ts +9 -0
  32. package/dist/diff/getAssignedStyles.js +22 -0
  33. package/dist/diff/getAssignedStyles.min.js +1 -0
  34. package/dist/diff/index.d.ts +9 -0
  35. package/dist/diff/index.js +27 -0
  36. package/dist/diff/index.min.js +1 -0
  37. package/dist/diff/types.d.ts +17 -0
  38. package/dist/diff/types.js +8 -0
  39. package/dist/diff/types.min.js +1 -0
  40. package/dist/domItem/index.d.ts +34 -0
  41. package/dist/domItem/index.js +81 -0
  42. package/dist/domItem/index.min.js +1 -0
  43. package/dist/domItem/objects/addDomItemProperties.d.ts +7 -0
  44. package/dist/domItem/objects/addDomItemProperties.js +27 -0
  45. package/dist/domItem/objects/addDomItemProperties.min.js +1 -0
  46. package/dist/domItem/objects/createCoreItem.d.ts +9 -0
  47. package/dist/domItem/objects/createCoreItem.js +53 -0
  48. package/dist/domItem/objects/createCoreItem.min.js +1 -0
  49. package/dist/domItem/objects/createDomItem.d.ts +10 -0
  50. package/dist/domItem/objects/createDomItem.js +40 -0
  51. package/dist/domItem/objects/createDomItem.min.js +1 -0
  52. package/dist/domItem/objects/documentDomItem.d.ts +12 -0
  53. package/dist/domItem/objects/documentDomItem.js +36 -0
  54. package/dist/domItem/objects/documentDomItem.min.js +1 -0
  55. package/dist/domItem/objects/documentItem.d.ts +18 -0
  56. package/dist/domItem/objects/documentItem.js +40 -0
  57. package/dist/domItem/objects/documentItem.min.js +1 -0
  58. package/dist/domItem/objects/initChildren.d.ts +6 -0
  59. package/dist/domItem/objects/initChildren.js +44 -0
  60. package/dist/domItem/objects/initChildren.min.js +1 -0
  61. package/dist/domItem/objects/initRoot.d.ts +9 -0
  62. package/dist/domItem/objects/initRoot.js +32 -0
  63. package/dist/domItem/objects/initRoot.min.js +1 -0
  64. package/dist/domItem/query/gatherChildItems.d.ts +12 -0
  65. package/dist/domItem/query/gatherChildItems.js +19 -0
  66. package/dist/domItem/query/gatherChildItems.min.js +1 -0
  67. package/dist/domItem/query/getChildTest.d.ts +8 -0
  68. package/dist/domItem/query/getChildTest.js +15 -0
  69. package/dist/domItem/query/getChildTest.min.js +1 -0
  70. package/dist/domItem/query/getChildrenByClass.d.ts +11 -0
  71. package/dist/domItem/query/getChildrenByClass.js +26 -0
  72. package/dist/domItem/query/getChildrenByClass.min.js +1 -0
  73. package/dist/domItem/query/getChildrenByName.d.ts +9 -0
  74. package/dist/domItem/query/getChildrenByName.js +23 -0
  75. package/dist/domItem/query/getChildrenByName.min.js +1 -0
  76. package/dist/domItem/query/getChildrenFromAttribute.d.ts +13 -0
  77. package/dist/domItem/query/getChildrenFromAttribute.js +28 -0
  78. package/dist/domItem/query/getChildrenFromAttribute.min.js +1 -0
  79. package/dist/domItem/query/getItemByElement.d.ts +11 -0
  80. package/dist/domItem/query/getItemByElement.js +29 -0
  81. package/dist/domItem/query/getItemByElement.min.js +1 -0
  82. package/dist/domItem/query/getParentsByClass.d.ts +12 -0
  83. package/dist/domItem/query/getParentsByClass.js +40 -0
  84. package/dist/domItem/query/getParentsByClass.min.js +1 -0
  85. package/dist/domItem/query/getParentsByName.d.ts +9 -0
  86. package/dist/domItem/query/getParentsByName.js +23 -0
  87. package/dist/domItem/query/getParentsByName.min.js +1 -0
  88. package/dist/domItem/query/getParentsByTagName.d.ts +9 -0
  89. package/dist/domItem/query/getParentsByTagName.js +23 -0
  90. package/dist/domItem/query/getParentsByTagName.min.js +1 -0
  91. package/dist/domItem/query/getParentsFromAttribute.d.ts +13 -0
  92. package/dist/domItem/query/getParentsFromAttribute.js +39 -0
  93. package/dist/domItem/query/getParentsFromAttribute.min.js +1 -0
  94. package/dist/domItem/traits/defineTrait.d.ts +10 -0
  95. package/dist/domItem/traits/defineTrait.js +26 -0
  96. package/dist/domItem/traits/defineTrait.min.js +1 -0
  97. package/dist/domItem/traits/definitions.d.ts +7 -0
  98. package/dist/domItem/traits/definitions.js +20 -0
  99. package/dist/domItem/traits/definitions.min.js +1 -0
  100. package/dist/domItem/traits/getNonSerializableKeys.d.ts +9 -0
  101. package/dist/domItem/traits/getNonSerializableKeys.js +25 -0
  102. package/dist/domItem/traits/getNonSerializableKeys.min.js +1 -0
  103. package/dist/domItem/traits/getTraitDefinition.d.ts +7 -0
  104. package/dist/domItem/traits/getTraitDefinition.js +20 -0
  105. package/dist/domItem/traits/getTraitDefinition.min.js +1 -0
  106. package/dist/domItem/traits/hasTrait.d.ts +8 -0
  107. package/dist/domItem/traits/hasTrait.js +15 -0
  108. package/dist/domItem/traits/hasTrait.min.js +1 -0
  109. package/dist/domItem/traits/hasTraits.d.ts +9 -0
  110. package/dist/domItem/traits/hasTraits.js +16 -0
  111. package/dist/domItem/traits/hasTraits.min.js +1 -0
  112. package/dist/domItem/traits/isDomItem.d.ts +8 -0
  113. package/dist/domItem/traits/isDomItem.js +21 -0
  114. package/dist/domItem/traits/isDomItem.min.js +1 -0
  115. package/dist/domItem/traits/withTrait.d.ts +11 -0
  116. package/dist/domItem/traits/withTrait.js +30 -0
  117. package/dist/domItem/traits/withTrait.min.js +1 -0
  118. package/dist/domItem/tree/appendChild.d.ts +8 -0
  119. package/dist/domItem/tree/appendChild.js +19 -0
  120. package/dist/domItem/tree/appendChild.min.js +1 -0
  121. package/dist/domItem/tree/getItemByPath.d.ts +10 -0
  122. package/dist/domItem/tree/getItemByPath.js +23 -0
  123. package/dist/domItem/tree/getItemByPath.min.js +1 -0
  124. package/dist/domItem/tree/getItemPath.d.ts +9 -0
  125. package/dist/domItem/tree/getItemPath.js +31 -0
  126. package/dist/domItem/tree/getItemPath.min.js +1 -0
  127. package/dist/domItem/tree/getTopParentItem.d.ts +8 -0
  128. package/dist/domItem/tree/getTopParentItem.js +29 -0
  129. package/dist/domItem/tree/getTopParentItem.min.js +1 -0
  130. package/dist/domItem/tree/insertChild.d.ts +11 -0
  131. package/dist/domItem/tree/insertChild.js +22 -0
  132. package/dist/domItem/tree/insertChild.min.js +1 -0
  133. package/dist/domItem/tree/itemIdIndex.d.ts +43 -0
  134. package/dist/domItem/tree/itemIdIndex.js +118 -0
  135. package/dist/domItem/tree/itemIdIndex.min.js +1 -0
  136. package/dist/domItem/tree/removeChild.d.ts +8 -0
  137. package/dist/domItem/tree/removeChild.js +21 -0
  138. package/dist/domItem/tree/removeChild.min.js +1 -0
  139. package/dist/domItem/tree/setParentItemReferences.d.ts +7 -0
  140. package/dist/domItem/tree/setParentItemReferences.js +24 -0
  141. package/dist/domItem/tree/setParentItemReferences.min.js +1 -0
  142. package/dist/domItem/types.d.ts +131 -0
  143. package/dist/domItem/types.js +8 -0
  144. package/dist/domItem/types.min.js +1 -0
  145. package/dist/events/functions/activateListener.d.ts +10 -0
  146. package/dist/events/functions/activateListener.js +45 -0
  147. package/dist/events/functions/activateListener.min.js +1 -0
  148. package/dist/events/functions/addEventListener.d.ts +23 -0
  149. package/dist/events/functions/addEventListener.js +54 -0
  150. package/dist/events/functions/addEventListener.min.js +1 -0
  151. package/dist/events/functions/applyActiveListeners.d.ts +9 -0
  152. package/dist/events/functions/applyActiveListeners.js +52 -0
  153. package/dist/events/functions/applyActiveListeners.min.js +1 -0
  154. package/dist/events/functions/assignListener.d.ts +12 -0
  155. package/dist/events/functions/assignListener.js +39 -0
  156. package/dist/events/functions/assignListener.min.js +1 -0
  157. package/dist/events/functions/bindAllListeners.d.ts +10 -0
  158. package/dist/events/functions/bindAllListeners.js +28 -0
  159. package/dist/events/functions/bindAllListeners.min.js +1 -0
  160. package/dist/events/functions/bindElementListeners.d.ts +7 -0
  161. package/dist/events/functions/bindElementListeners.js +34 -0
  162. package/dist/events/functions/bindElementListeners.min.js +1 -0
  163. package/dist/events/functions/bindListeners.d.ts +9 -0
  164. package/dist/events/functions/bindListeners.js +23 -0
  165. package/dist/events/functions/bindListeners.min.js +1 -0
  166. package/dist/events/functions/deactivateListener.d.ts +13 -0
  167. package/dist/events/functions/deactivateListener.js +58 -0
  168. package/dist/events/functions/deactivateListener.min.js +1 -0
  169. package/dist/events/functions/deactivateListeners.d.ts +7 -0
  170. package/dist/events/functions/deactivateListeners.js +22 -0
  171. package/dist/events/functions/deactivateListeners.min.js +1 -0
  172. package/dist/events/functions/findEventListener.d.ts +22 -0
  173. package/dist/events/functions/findEventListener.js +61 -0
  174. package/dist/events/functions/findEventListener.min.js +1 -0
  175. package/dist/events/functions/fullAddEventListener.d.ts +20 -0
  176. package/dist/events/functions/fullAddEventListener.js +45 -0
  177. package/dist/events/functions/fullAddEventListener.min.js +1 -0
  178. package/dist/events/functions/fullRemoveEventListener.d.ts +22 -0
  179. package/dist/events/functions/fullRemoveEventListener.js +37 -0
  180. package/dist/events/functions/fullRemoveEventListener.min.js +1 -0
  181. package/dist/events/functions/listenerOptions.d.ts +12 -0
  182. package/dist/events/functions/listenerOptions.js +31 -0
  183. package/dist/events/functions/listenerOptions.min.js +1 -0
  184. package/dist/events/functions/makeEventHandler.d.ts +10 -0
  185. package/dist/events/functions/makeEventHandler.js +23 -0
  186. package/dist/events/functions/makeEventHandler.min.js +1 -0
  187. package/dist/events/functions/makeForwardingListener.d.ts +11 -0
  188. package/dist/events/functions/makeForwardingListener.js +46 -0
  189. package/dist/events/functions/makeForwardingListener.min.js +1 -0
  190. package/dist/events/functions/receiveForwardedEvent.d.ts +23 -0
  191. package/dist/events/functions/receiveForwardedEvent.js +40 -0
  192. package/dist/events/functions/receiveForwardedEvent.min.js +1 -0
  193. package/dist/events/functions/registerListener.d.ts +11 -0
  194. package/dist/events/functions/registerListener.js +25 -0
  195. package/dist/events/functions/registerListener.min.js +1 -0
  196. package/dist/events/functions/registerListeners.d.ts +10 -0
  197. package/dist/events/functions/registerListeners.js +26 -0
  198. package/dist/events/functions/registerListeners.min.js +1 -0
  199. package/dist/events/functions/removeEventListener.d.ts +18 -0
  200. package/dist/events/functions/removeEventListener.js +42 -0
  201. package/dist/events/functions/removeEventListener.min.js +1 -0
  202. package/dist/events/functions/retrieveListener.d.ts +14 -0
  203. package/dist/events/functions/retrieveListener.js +39 -0
  204. package/dist/events/functions/retrieveListener.min.js +1 -0
  205. package/dist/events/functions/revokeActiveListeners.d.ts +12 -0
  206. package/dist/events/functions/revokeActiveListeners.js +54 -0
  207. package/dist/events/functions/revokeActiveListeners.min.js +1 -0
  208. package/dist/events/functions/setForwardEvents.d.ts +11 -0
  209. package/dist/events/functions/setForwardEvents.js +26 -0
  210. package/dist/events/functions/setForwardEvents.min.js +1 -0
  211. package/dist/events/functions/unassignListener.d.ts +12 -0
  212. package/dist/events/functions/unassignListener.js +32 -0
  213. package/dist/events/functions/unassignListener.min.js +1 -0
  214. package/dist/events/index.d.ts +37 -0
  215. package/dist/events/index.js +72 -0
  216. package/dist/events/index.min.js +1 -0
  217. package/dist/events/objects/createEventListener.d.ts +13 -0
  218. package/dist/events/objects/createEventListener.js +30 -0
  219. package/dist/events/objects/createEventListener.min.js +1 -0
  220. package/dist/events/objects/createEventProxy.d.ts +10 -0
  221. package/dist/events/objects/createEventProxy.js +48 -0
  222. package/dist/events/objects/createEventProxy.min.js +1 -0
  223. package/dist/events/objects/createEventResponder.d.ts +8 -0
  224. package/dist/events/objects/createEventResponder.js +27 -0
  225. package/dist/events/objects/createEventResponder.min.js +1 -0
  226. package/dist/events/objects/options/getListenerOptions.d.ts +6 -0
  227. package/dist/events/objects/options/getListenerOptions.js +22 -0
  228. package/dist/events/objects/options/getListenerOptions.min.js +1 -0
  229. package/dist/events/objects/options/numberToOptions.d.ts +8 -0
  230. package/dist/events/objects/options/numberToOptions.js +21 -0
  231. package/dist/events/objects/options/numberToOptions.min.js +1 -0
  232. package/dist/events/objects/options/optionsToNumber.d.ts +9 -0
  233. package/dist/events/objects/options/optionsToNumber.js +27 -0
  234. package/dist/events/objects/options/optionsToNumber.min.js +1 -0
  235. package/dist/events/objects/options.d.ts +6 -0
  236. package/dist/events/objects/options.js +24 -0
  237. package/dist/events/objects/options.min.js +1 -0
  238. package/dist/events/types.d.ts +87 -0
  239. package/dist/events/types.js +8 -0
  240. package/dist/events/types.min.js +1 -0
  241. package/dist/inflate/index.d.ts +4 -0
  242. package/dist/inflate/index.js +17 -0
  243. package/dist/inflate/index.min.js +1 -0
  244. package/dist/inflate/jsonToDomItem.d.ts +7 -0
  245. package/dist/inflate/jsonToDomItem.js +30 -0
  246. package/dist/inflate/jsonToDomItem.min.js +1 -0
  247. package/dist/main.d.ts +2 -0
  248. package/dist/main.js +24 -0
  249. package/dist/main.min.js +1 -0
  250. package/dist/render/generateElement.d.ts +7 -0
  251. package/dist/render/generateElement.js +41 -0
  252. package/dist/render/generateElement.min.js +1 -0
  253. package/dist/render/index.d.ts +8 -0
  254. package/dist/render/index.js +25 -0
  255. package/dist/render/index.min.js +1 -0
  256. package/dist/render/renderHtml.d.ts +16 -0
  257. package/dist/render/renderHtml.js +57 -0
  258. package/dist/render/renderHtml.min.js +1 -0
  259. package/dist/render/updateChildNodes.d.ts +7 -0
  260. package/dist/render/updateChildNodes.js +56 -0
  261. package/dist/render/updateChildNodes.min.js +1 -0
  262. package/dist/render/updateElement.d.ts +14 -0
  263. package/dist/render/updateElement.js +110 -0
  264. package/dist/render/updateElement.min.js +1 -0
  265. package/dist/render/updateElements.d.ts +9 -0
  266. package/dist/render/updateElements.js +33 -0
  267. package/dist/render/updateElements.min.js +1 -0
  268. package/dist/renderOnly.d.ts +2 -0
  269. package/dist/renderOnly.js +27 -0
  270. package/dist/renderOnly.min.js +1 -0
  271. package/dist/sync/index.d.ts +6 -0
  272. package/dist/sync/index.js +21 -0
  273. package/dist/sync/index.min.js +1 -0
  274. package/dist/sync/updateChildren.d.ts +7 -0
  275. package/dist/sync/updateChildren.js +38 -0
  276. package/dist/sync/updateChildren.min.js +1 -0
  277. package/dist/sync/updateDomItem.d.ts +8 -0
  278. package/dist/sync/updateDomItem.js +49 -0
  279. package/dist/sync/updateDomItem.min.js +1 -0
  280. package/dist/sync/updateDomItems.d.ts +9 -0
  281. package/dist/sync/updateDomItems.js +33 -0
  282. package/dist/sync/updateDomItems.min.js +1 -0
  283. package/package.json +74 -4
@@ -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;
@@ -0,0 +1,21 @@
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
+ /**
16
+ * Take an integer representation of the listener options and convert them to the listener options object.
17
+ * @param optionsTemplate
18
+ * @param binaryOptions
19
+ */
20
+ const numberToOptions = (optionsTemplate, binaryOptions) => si_funciona_1.default.mapObject(optionsTemplate, flag => !!(binaryOptions & flag));
21
+ exports.default = numberToOptions;
@@ -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")),numberToOptions=(e,t)=>si_funciona_1.default.mapObject(e,e=>!!(t&e));exports.default=numberToOptions;
@@ -0,0 +1,9 @@
1
+ import type { ListenerOptions, OptionsTemplate } from '../../types';
2
+ /**
3
+ * Take the given options and convert them (using binary) to an integer. Given listener options, each one is assigned a
4
+ * bitwise position. The resulting binary number represents any possible combination of the available flags set.
5
+ * @param optionsTemplate
6
+ * @param listenerOptions
7
+ */
8
+ declare const optionsToNumber: (optionsTemplate: OptionsTemplate, listenerOptions?: ListenerOptions | null) => number;
9
+ export default optionsToNumber;
@@ -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
+ 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
+ /**
16
+ * Take the given options and convert them (using binary) to an integer. Given listener options, each one is assigned a
17
+ * bitwise position. The resulting binary number represents any possible combination of the available flags set.
18
+ * @param optionsTemplate
19
+ * @param listenerOptions
20
+ */
21
+ const optionsToNumber = (optionsTemplate, listenerOptions) => {
22
+ if (!listenerOptions) {
23
+ return 0;
24
+ }
25
+ return si_funciona_1.default.reduceObject(optionsTemplate, (binaryOptions, flag, name) => listenerOptions[name] ? binaryOptions | flag : binaryOptions, 0);
26
+ };
27
+ exports.default = optionsToNumber;
@@ -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")),optionsToNumber=(e,t)=>t?si_funciona_1.default.reduceObject(e,(e,o,u)=>t[u]?e|o:e,0):0;exports.default=optionsToNumber;
@@ -0,0 +1,6 @@
1
+ declare const _default: {
2
+ getListenerOptions: () => import("../types").OptionsTemplate;
3
+ numberToOptions: (optionsTemplate: import("../types").OptionsTemplate, binaryOptions: number) => import("../types").OptionsObject;
4
+ optionsToNumber: (optionsTemplate: import("../types").OptionsTemplate, listenerOptions?: import("../types").ListenerOptions | null) => number;
5
+ };
6
+ export default _default;
@@ -0,0 +1,24 @@
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
+ * Be able to use Flags (Options) in a well-formed way.
16
+ */
17
+ const getListenerOptions_1 = __importDefault(require("./options/getListenerOptions"));
18
+ const numberToOptions_1 = __importDefault(require("./options/numberToOptions"));
19
+ const optionsToNumber_1 = __importDefault(require("./options/optionsToNumber"));
20
+ exports.default = {
21
+ getListenerOptions: getListenerOptions_1.default,
22
+ numberToOptions: numberToOptions_1.default,
23
+ optionsToNumber: optionsToNumber_1.default
24
+ };
@@ -0,0 +1 @@
1
+ "use strict";var __importDefault=function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0});const getListenerOptions_1=__importDefault(require("./options/getListenerOptions")),numberToOptions_1=__importDefault(require("./options/numberToOptions")),optionsToNumber_1=__importDefault(require("./options/optionsToNumber"));exports.default={getListenerOptions:getListenerOptions_1.default,numberToOptions:numberToOptions_1.default,optionsToNumber:optionsToNumber_1.default};
@@ -0,0 +1,87 @@
1
+ import type { DomItem } from '../domItem/types';
2
+ /** The name of a DOM event: click, submit, keydown, ... */
3
+ export type EventName = string;
4
+ /** The old boolean form of the options argument of addEventListener. */
5
+ export type UseCapture = boolean;
6
+ /** The listener options which treeloom understands (each one is a flag, see {@link OptionsTemplate}). */
7
+ export type OptionsObject = {
8
+ /** Events of this type are dispatched to the listener before any other target beneath it. */
9
+ capture?: boolean;
10
+ /** The listener is removed after it has been invoked once. */
11
+ once?: boolean;
12
+ /** The listener will never call preventDefault(). */
13
+ passive?: boolean;
14
+ /** The listener is removed when the AbortSignal's abort() is called. */
15
+ signal?: boolean | AbortSignal;
16
+ };
17
+ /** The options given with a listener: an options object, or just the useCapture boolean. */
18
+ export type ListenerOptions = OptionsObject | UseCapture;
19
+ /** An Event which also remembers whether stopImmediatePropagation() was called on it, and carries the DomItems
20
+ * target/currentTarget correspond to. */
21
+ export type EventProxy = Event & {
22
+ immediatePropagationStopped: boolean;
23
+ /** The DomItem whose element matches the real event's target, searched for within currentDomItemTarget's own
24
+ * subtree (an event's target is always itself or a descendant of the item a listener is attached to - that is
25
+ * what bubbling means). Null when none is found. */
26
+ domItemTarget: DomItem | null;
27
+ /** The DomItem the listener is attached to (the real event's currentTarget). */
28
+ currentDomItemTarget: DomItem;
29
+ };
30
+ /**
31
+ * A function which handles an event on a DomItem. It receives the event, the DomItem which owns the listener and any
32
+ * listenerArgs. (The extra arguments are whatever the listener needs, so they can only be typed by the listener.)
33
+ */
34
+ export type ListenerFunction = (event: EventProxy | Event, target: DomItem, ...args: any[]) => unknown;
35
+ /** A listenerFunction wrapped so it skips events which stopped propagating, ready to be attached to an element. */
36
+ export type EventHandler = (event?: EventProxy | Event | null) => unknown;
37
+ /** The description of one listener on a DomItem: what to call, with what, and how. */
38
+ export type ListenerDescriptor = {
39
+ /** Prefer a string name registered with registerListener: it survives being converted to json. */
40
+ listenerFunc: string | ListenerFunction;
41
+ /** Additional arguments for the listener function. */
42
+ listenerArgs?: object | null;
43
+ listenerOptions?: ListenerOptions;
44
+ /** Whether this listener has been applied to the element. */
45
+ listenerActive?: boolean;
46
+ /** Set while the listener is active: the responder which attaches it to the element and can detach it again. */
47
+ activeResponder?: EventResponder | null;
48
+ };
49
+ /** All the listeners of one event type. */
50
+ export type EventListeners = ListenerDescriptor[];
51
+ /** What a forwarded event is packaged as in render-only mode. See retrieveListener, makeForwardingListener. */
52
+ export type ForwardedEvent = {
53
+ /** The id of the item the event fired on (domItemTarget, falling back to the item the listener is attached
54
+ * to when no domItemTarget was found) - read directly off that item's own id, not computed. Resolution is a
55
+ * lookup (getItemById) rather than a tree walk, so it still finds the right item even if the receiving end's
56
+ * own tree does not match the sending end's shape exactly (see getItemById vs the position-based
57
+ * getItemPath/getItemByPath this replaced). */
58
+ itemId: number;
59
+ /** The type of event which fired (event.type). */
60
+ eventType: EventName;
61
+ /** The registered name of the listener which would have run locally. */
62
+ listenerFunc: string;
63
+ /** The custom args the listener was registered with. */
64
+ data: unknown[];
65
+ /** Live state read directly off the real event's target when present - a listener which reads e.g.
66
+ * (event.target as HTMLInputElement).checked needs this replayed onto the real target on the receiving end
67
+ * (see receiveForwardedEvent), since the two ends' elements are otherwise independent objects. */
68
+ targetState?: {
69
+ checked?: boolean;
70
+ value?: string;
71
+ };
72
+ };
73
+ /** Where a forwarded event's envelope is sent, in render-only mode. Set on the root item with setForwardEvents. */
74
+ export type ForwardEventsFunction = (envelope: ForwardedEvent) => unknown;
75
+ /** An event handler and the way to detach it again: the handler as attached, and an optional AbortController. */
76
+ export type EventResponder = {
77
+ handler: EventHandler;
78
+ abort: AbortController | null;
79
+ /** The exact function reference passed to the element's addEventListener, needed to remove it again. */
80
+ assignedHandler: EventHandler | null;
81
+ };
82
+ /** Bit flags for each of the listener options. */
83
+ export type OptionsTemplate = Record<string, number>;
84
+ /** What treeloom needs from an element to attach a listener, including the very old ways of doing it. */
85
+ export type ListenerTarget = EventTarget & {
86
+ attachEvent?: (eventName: string, handler: EventHandler) => void;
87
+ };
@@ -0,0 +1,8 @@
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
+ });
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});
@@ -0,0 +1,4 @@
1
+ declare const _default: {
2
+ jsonToDomItem: (jsonString: string) => import("../domItem/types").DomItem;
3
+ };
4
+ export default _default;
@@ -0,0 +1,17 @@
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 jsonToDomItem_1 = __importDefault(require("./jsonToDomItem"));
15
+ exports.default = {
16
+ jsonToDomItem: jsonToDomItem_1.default
17
+ };
@@ -0,0 +1 @@
1
+ "use strict";var __importDefault=function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0});const jsonToDomItem_1=__importDefault(require("./jsonToDomItem"));exports.default={jsonToDomItem:jsonToDomItem_1.default};
@@ -0,0 +1,7 @@
1
+ import type { DomItem } from '../domItem/types';
2
+ /**
3
+ * Convert DOM Item to JSON string.
4
+ * @param jsonString
5
+ */
6
+ declare const jsonToDomItem: (jsonString: string) => DomItem;
7
+ export default jsonToDomItem;