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.
- package/LICENSE +373 -0
- package/README.md +72 -2
- package/browser/treeloom.js +11006 -0
- package/browser/treeloom.min.js +1 -0
- package/browser/treeloomRenderOnly.js +10530 -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/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 +154 -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 +8 -0
- package/dist/render/index.js +25 -0
- package/dist/render/index.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 +56 -0
- package/dist/render/updateChildNodes.min.js +1 -0
- package/dist/render/updateElement.d.ts +14 -0
- package/dist/render/updateElement.js +110 -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 +49 -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,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;
|
|
@@ -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,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};
|