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.
- package/LICENSE +373 -0
- package/README.md +91 -2
- package/browser/treeloom.js +11232 -0
- package/browser/treeloom.min.js +1 -0
- package/browser/treeloomRenderOnly.js +11115 -0
- package/browser/treeloomRenderOnly.min.js +1 -0
- package/dist/deflate/domItemToJson.d.ts +14 -0
- package/dist/deflate/domItemToJson.js +43 -0
- package/dist/deflate/domItemToJson.min.js +1 -0
- package/dist/deflate/index.d.ts +7 -0
- package/dist/deflate/index.js +19 -0
- package/dist/deflate/index.min.js +1 -0
- package/dist/deflate/removeEmptyProperties.d.ts +8 -0
- package/dist/deflate/removeEmptyProperties.js +43 -0
- package/dist/deflate/removeEmptyProperties.min.js +1 -0
- package/dist/diff/appliedSnapshot.d.ts +34 -0
- package/dist/diff/appliedSnapshot.js +134 -0
- package/dist/diff/appliedSnapshot.min.js +1 -0
- package/dist/diff/createChangeList.d.ts +9 -0
- package/dist/diff/createChangeList.js +44 -0
- package/dist/diff/createChangeList.min.js +1 -0
- package/dist/diff/domItemChanges.d.ts +9 -0
- package/dist/diff/domItemChanges.js +167 -0
- package/dist/diff/domItemChanges.min.js +1 -0
- package/dist/diff/domItemHasAttribute.d.ts +11 -0
- package/dist/diff/domItemHasAttribute.js +63 -0
- package/dist/diff/domItemHasAttribute.min.js +1 -0
- package/dist/diff/elementChanges.d.ts +10 -0
- package/dist/diff/elementChanges.js +151 -0
- package/dist/diff/elementChanges.min.js +1 -0
- package/dist/diff/elementHasAttribute.d.ts +10 -0
- package/dist/diff/elementHasAttribute.js +70 -0
- package/dist/diff/elementHasAttribute.min.js +1 -0
- package/dist/diff/getAssignedStyles.d.ts +9 -0
- package/dist/diff/getAssignedStyles.js +22 -0
- package/dist/diff/getAssignedStyles.min.js +1 -0
- package/dist/diff/index.d.ts +9 -0
- package/dist/diff/index.js +27 -0
- package/dist/diff/index.min.js +1 -0
- package/dist/diff/types.d.ts +17 -0
- package/dist/diff/types.js +8 -0
- package/dist/diff/types.min.js +1 -0
- package/dist/domItem/index.d.ts +34 -0
- package/dist/domItem/index.js +81 -0
- package/dist/domItem/index.min.js +1 -0
- package/dist/domItem/objects/addDomItemProperties.d.ts +7 -0
- package/dist/domItem/objects/addDomItemProperties.js +27 -0
- package/dist/domItem/objects/addDomItemProperties.min.js +1 -0
- package/dist/domItem/objects/createCoreItem.d.ts +9 -0
- package/dist/domItem/objects/createCoreItem.js +53 -0
- package/dist/domItem/objects/createCoreItem.min.js +1 -0
- package/dist/domItem/objects/createDomItem.d.ts +10 -0
- package/dist/domItem/objects/createDomItem.js +40 -0
- package/dist/domItem/objects/createDomItem.min.js +1 -0
- package/dist/domItem/objects/documentDomItem.d.ts +12 -0
- package/dist/domItem/objects/documentDomItem.js +36 -0
- package/dist/domItem/objects/documentDomItem.min.js +1 -0
- package/dist/domItem/objects/documentItem.d.ts +18 -0
- package/dist/domItem/objects/documentItem.js +40 -0
- package/dist/domItem/objects/documentItem.min.js +1 -0
- package/dist/domItem/objects/initChildren.d.ts +6 -0
- package/dist/domItem/objects/initChildren.js +44 -0
- package/dist/domItem/objects/initChildren.min.js +1 -0
- package/dist/domItem/objects/initRoot.d.ts +9 -0
- package/dist/domItem/objects/initRoot.js +32 -0
- package/dist/domItem/objects/initRoot.min.js +1 -0
- package/dist/domItem/query/gatherChildItems.d.ts +12 -0
- package/dist/domItem/query/gatherChildItems.js +19 -0
- package/dist/domItem/query/gatherChildItems.min.js +1 -0
- package/dist/domItem/query/getChildTest.d.ts +8 -0
- package/dist/domItem/query/getChildTest.js +15 -0
- package/dist/domItem/query/getChildTest.min.js +1 -0
- package/dist/domItem/query/getChildrenByClass.d.ts +11 -0
- package/dist/domItem/query/getChildrenByClass.js +26 -0
- package/dist/domItem/query/getChildrenByClass.min.js +1 -0
- package/dist/domItem/query/getChildrenByName.d.ts +9 -0
- package/dist/domItem/query/getChildrenByName.js +23 -0
- package/dist/domItem/query/getChildrenByName.min.js +1 -0
- package/dist/domItem/query/getChildrenFromAttribute.d.ts +13 -0
- package/dist/domItem/query/getChildrenFromAttribute.js +28 -0
- package/dist/domItem/query/getChildrenFromAttribute.min.js +1 -0
- package/dist/domItem/query/getItemByElement.d.ts +11 -0
- package/dist/domItem/query/getItemByElement.js +29 -0
- package/dist/domItem/query/getItemByElement.min.js +1 -0
- package/dist/domItem/query/getParentsByClass.d.ts +12 -0
- package/dist/domItem/query/getParentsByClass.js +40 -0
- package/dist/domItem/query/getParentsByClass.min.js +1 -0
- package/dist/domItem/query/getParentsByName.d.ts +9 -0
- package/dist/domItem/query/getParentsByName.js +23 -0
- package/dist/domItem/query/getParentsByName.min.js +1 -0
- package/dist/domItem/query/getParentsByTagName.d.ts +9 -0
- package/dist/domItem/query/getParentsByTagName.js +23 -0
- package/dist/domItem/query/getParentsByTagName.min.js +1 -0
- package/dist/domItem/query/getParentsFromAttribute.d.ts +13 -0
- package/dist/domItem/query/getParentsFromAttribute.js +39 -0
- package/dist/domItem/query/getParentsFromAttribute.min.js +1 -0
- package/dist/domItem/traits/defineTrait.d.ts +10 -0
- package/dist/domItem/traits/defineTrait.js +26 -0
- package/dist/domItem/traits/defineTrait.min.js +1 -0
- package/dist/domItem/traits/definitions.d.ts +7 -0
- package/dist/domItem/traits/definitions.js +20 -0
- package/dist/domItem/traits/definitions.min.js +1 -0
- package/dist/domItem/traits/getNonSerializableKeys.d.ts +9 -0
- package/dist/domItem/traits/getNonSerializableKeys.js +25 -0
- package/dist/domItem/traits/getNonSerializableKeys.min.js +1 -0
- package/dist/domItem/traits/getTraitDefinition.d.ts +7 -0
- package/dist/domItem/traits/getTraitDefinition.js +20 -0
- package/dist/domItem/traits/getTraitDefinition.min.js +1 -0
- package/dist/domItem/traits/hasTrait.d.ts +8 -0
- package/dist/domItem/traits/hasTrait.js +15 -0
- package/dist/domItem/traits/hasTrait.min.js +1 -0
- package/dist/domItem/traits/hasTraits.d.ts +9 -0
- package/dist/domItem/traits/hasTraits.js +16 -0
- package/dist/domItem/traits/hasTraits.min.js +1 -0
- package/dist/domItem/traits/isDomItem.d.ts +8 -0
- package/dist/domItem/traits/isDomItem.js +21 -0
- package/dist/domItem/traits/isDomItem.min.js +1 -0
- package/dist/domItem/traits/withTrait.d.ts +11 -0
- package/dist/domItem/traits/withTrait.js +30 -0
- package/dist/domItem/traits/withTrait.min.js +1 -0
- package/dist/domItem/tree/appendChild.d.ts +8 -0
- package/dist/domItem/tree/appendChild.js +19 -0
- package/dist/domItem/tree/appendChild.min.js +1 -0
- package/dist/domItem/tree/getItemByPath.d.ts +10 -0
- package/dist/domItem/tree/getItemByPath.js +23 -0
- package/dist/domItem/tree/getItemByPath.min.js +1 -0
- package/dist/domItem/tree/getItemPath.d.ts +9 -0
- package/dist/domItem/tree/getItemPath.js +31 -0
- package/dist/domItem/tree/getItemPath.min.js +1 -0
- package/dist/domItem/tree/getTopParentItem.d.ts +8 -0
- package/dist/domItem/tree/getTopParentItem.js +29 -0
- package/dist/domItem/tree/getTopParentItem.min.js +1 -0
- package/dist/domItem/tree/insertChild.d.ts +11 -0
- package/dist/domItem/tree/insertChild.js +22 -0
- package/dist/domItem/tree/insertChild.min.js +1 -0
- package/dist/domItem/tree/itemIdIndex.d.ts +43 -0
- package/dist/domItem/tree/itemIdIndex.js +118 -0
- package/dist/domItem/tree/itemIdIndex.min.js +1 -0
- package/dist/domItem/tree/removeChild.d.ts +8 -0
- package/dist/domItem/tree/removeChild.js +21 -0
- package/dist/domItem/tree/removeChild.min.js +1 -0
- package/dist/domItem/tree/setParentItemReferences.d.ts +7 -0
- package/dist/domItem/tree/setParentItemReferences.js +24 -0
- package/dist/domItem/tree/setParentItemReferences.min.js +1 -0
- package/dist/domItem/types.d.ts +131 -0
- package/dist/domItem/types.js +8 -0
- package/dist/domItem/types.min.js +1 -0
- package/dist/events/functions/activateListener.d.ts +10 -0
- package/dist/events/functions/activateListener.js +45 -0
- package/dist/events/functions/activateListener.min.js +1 -0
- package/dist/events/functions/addEventListener.d.ts +23 -0
- package/dist/events/functions/addEventListener.js +54 -0
- package/dist/events/functions/addEventListener.min.js +1 -0
- package/dist/events/functions/applyActiveListeners.d.ts +9 -0
- package/dist/events/functions/applyActiveListeners.js +52 -0
- package/dist/events/functions/applyActiveListeners.min.js +1 -0
- package/dist/events/functions/assignListener.d.ts +12 -0
- package/dist/events/functions/assignListener.js +39 -0
- package/dist/events/functions/assignListener.min.js +1 -0
- package/dist/events/functions/bindAllListeners.d.ts +10 -0
- package/dist/events/functions/bindAllListeners.js +28 -0
- package/dist/events/functions/bindAllListeners.min.js +1 -0
- package/dist/events/functions/bindElementListeners.d.ts +7 -0
- package/dist/events/functions/bindElementListeners.js +34 -0
- package/dist/events/functions/bindElementListeners.min.js +1 -0
- package/dist/events/functions/bindListeners.d.ts +9 -0
- package/dist/events/functions/bindListeners.js +23 -0
- package/dist/events/functions/bindListeners.min.js +1 -0
- package/dist/events/functions/deactivateListener.d.ts +13 -0
- package/dist/events/functions/deactivateListener.js +58 -0
- package/dist/events/functions/deactivateListener.min.js +1 -0
- package/dist/events/functions/deactivateListeners.d.ts +7 -0
- package/dist/events/functions/deactivateListeners.js +22 -0
- package/dist/events/functions/deactivateListeners.min.js +1 -0
- package/dist/events/functions/findEventListener.d.ts +22 -0
- package/dist/events/functions/findEventListener.js +61 -0
- package/dist/events/functions/findEventListener.min.js +1 -0
- package/dist/events/functions/fullAddEventListener.d.ts +20 -0
- package/dist/events/functions/fullAddEventListener.js +45 -0
- package/dist/events/functions/fullAddEventListener.min.js +1 -0
- package/dist/events/functions/fullRemoveEventListener.d.ts +22 -0
- package/dist/events/functions/fullRemoveEventListener.js +37 -0
- package/dist/events/functions/fullRemoveEventListener.min.js +1 -0
- package/dist/events/functions/listenerOptions.d.ts +12 -0
- package/dist/events/functions/listenerOptions.js +31 -0
- package/dist/events/functions/listenerOptions.min.js +1 -0
- package/dist/events/functions/makeEventHandler.d.ts +10 -0
- package/dist/events/functions/makeEventHandler.js +23 -0
- package/dist/events/functions/makeEventHandler.min.js +1 -0
- package/dist/events/functions/makeForwardingListener.d.ts +11 -0
- package/dist/events/functions/makeForwardingListener.js +46 -0
- package/dist/events/functions/makeForwardingListener.min.js +1 -0
- package/dist/events/functions/receiveForwardedEvent.d.ts +23 -0
- package/dist/events/functions/receiveForwardedEvent.js +40 -0
- package/dist/events/functions/receiveForwardedEvent.min.js +1 -0
- package/dist/events/functions/registerListener.d.ts +11 -0
- package/dist/events/functions/registerListener.js +25 -0
- package/dist/events/functions/registerListener.min.js +1 -0
- package/dist/events/functions/registerListeners.d.ts +10 -0
- package/dist/events/functions/registerListeners.js +26 -0
- package/dist/events/functions/registerListeners.min.js +1 -0
- package/dist/events/functions/removeEventListener.d.ts +18 -0
- package/dist/events/functions/removeEventListener.js +42 -0
- package/dist/events/functions/removeEventListener.min.js +1 -0
- package/dist/events/functions/retrieveListener.d.ts +14 -0
- package/dist/events/functions/retrieveListener.js +39 -0
- package/dist/events/functions/retrieveListener.min.js +1 -0
- package/dist/events/functions/revokeActiveListeners.d.ts +12 -0
- package/dist/events/functions/revokeActiveListeners.js +54 -0
- package/dist/events/functions/revokeActiveListeners.min.js +1 -0
- package/dist/events/functions/setForwardEvents.d.ts +11 -0
- package/dist/events/functions/setForwardEvents.js +26 -0
- package/dist/events/functions/setForwardEvents.min.js +1 -0
- package/dist/events/functions/unassignListener.d.ts +12 -0
- package/dist/events/functions/unassignListener.js +32 -0
- package/dist/events/functions/unassignListener.min.js +1 -0
- package/dist/events/index.d.ts +37 -0
- package/dist/events/index.js +72 -0
- package/dist/events/index.min.js +1 -0
- package/dist/events/objects/createEventListener.d.ts +13 -0
- package/dist/events/objects/createEventListener.js +30 -0
- package/dist/events/objects/createEventListener.min.js +1 -0
- package/dist/events/objects/createEventProxy.d.ts +10 -0
- package/dist/events/objects/createEventProxy.js +48 -0
- package/dist/events/objects/createEventProxy.min.js +1 -0
- package/dist/events/objects/createEventResponder.d.ts +8 -0
- package/dist/events/objects/createEventResponder.js +27 -0
- package/dist/events/objects/createEventResponder.min.js +1 -0
- package/dist/events/objects/options/getListenerOptions.d.ts +6 -0
- package/dist/events/objects/options/getListenerOptions.js +22 -0
- package/dist/events/objects/options/getListenerOptions.min.js +1 -0
- package/dist/events/objects/options/numberToOptions.d.ts +8 -0
- package/dist/events/objects/options/numberToOptions.js +21 -0
- package/dist/events/objects/options/numberToOptions.min.js +1 -0
- package/dist/events/objects/options/optionsToNumber.d.ts +9 -0
- package/dist/events/objects/options/optionsToNumber.js +27 -0
- package/dist/events/objects/options/optionsToNumber.min.js +1 -0
- package/dist/events/objects/options.d.ts +6 -0
- package/dist/events/objects/options.js +24 -0
- package/dist/events/objects/options.min.js +1 -0
- package/dist/events/types.d.ts +87 -0
- package/dist/events/types.js +8 -0
- package/dist/events/types.min.js +1 -0
- package/dist/inflate/index.d.ts +4 -0
- package/dist/inflate/index.js +17 -0
- package/dist/inflate/index.min.js +1 -0
- package/dist/inflate/jsonToDomItem.d.ts +7 -0
- package/dist/inflate/jsonToDomItem.js +30 -0
- package/dist/inflate/jsonToDomItem.min.js +1 -0
- package/dist/main.d.ts +2 -0
- package/dist/main.js +24 -0
- package/dist/main.min.js +1 -0
- package/dist/render/generateElement.d.ts +7 -0
- package/dist/render/generateElement.js +41 -0
- package/dist/render/generateElement.min.js +1 -0
- package/dist/render/index.d.ts +9 -0
- package/dist/render/index.js +27 -0
- package/dist/render/index.min.js +1 -0
- package/dist/render/reconcile.d.ts +16 -0
- package/dist/render/reconcile.js +169 -0
- package/dist/render/reconcile.min.js +1 -0
- package/dist/render/renderHtml.d.ts +16 -0
- package/dist/render/renderHtml.js +57 -0
- package/dist/render/renderHtml.min.js +1 -0
- package/dist/render/updateChildNodes.d.ts +7 -0
- package/dist/render/updateChildNodes.js +53 -0
- package/dist/render/updateChildNodes.min.js +1 -0
- package/dist/render/updateElement.d.ts +14 -0
- package/dist/render/updateElement.js +113 -0
- package/dist/render/updateElement.min.js +1 -0
- package/dist/render/updateElements.d.ts +9 -0
- package/dist/render/updateElements.js +33 -0
- package/dist/render/updateElements.min.js +1 -0
- package/dist/renderOnly.d.ts +2 -0
- package/dist/renderOnly.js +27 -0
- package/dist/renderOnly.min.js +1 -0
- package/dist/sync/index.d.ts +6 -0
- package/dist/sync/index.js +21 -0
- package/dist/sync/index.min.js +1 -0
- package/dist/sync/updateChildren.d.ts +7 -0
- package/dist/sync/updateChildren.js +38 -0
- package/dist/sync/updateChildren.min.js +1 -0
- package/dist/sync/updateDomItem.d.ts +8 -0
- package/dist/sync/updateDomItem.js +53 -0
- package/dist/sync/updateDomItem.min.js +1 -0
- package/dist/sync/updateDomItems.d.ts +9 -0
- package/dist/sync/updateDomItems.js +33 -0
- package/dist/sync/updateDomItems.min.js +1 -0
- 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,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;
|