Latest repo

This commit is contained in:
Marc
2025-06-02 16:42:16 +00:00
parent 53ddf1a329
commit cde5fae175
27907 changed files with 3875388 additions and 1 deletions

37
node_modules/make-event-props/dist/cjs/index.d.ts generated vendored Normal file
View File

@@ -0,0 +1,37 @@
export declare const clipboardEvents: readonly ["onCopy", "onCut", "onPaste"];
export declare const compositionEvents: readonly ["onCompositionEnd", "onCompositionStart", "onCompositionUpdate"];
export declare const focusEvents: readonly ["onFocus", "onBlur"];
export declare const formEvents: readonly ["onInput", "onInvalid", "onReset", "onSubmit"];
export declare const imageEvents: readonly ["onLoad", "onError"];
export declare const keyboardEvents: readonly ["onKeyDown", "onKeyPress", "onKeyUp"];
export declare const mediaEvents: readonly ["onAbort", "onCanPlay", "onCanPlayThrough", "onDurationChange", "onEmptied", "onEncrypted", "onEnded", "onError", "onLoadedData", "onLoadedMetadata", "onLoadStart", "onPause", "onPlay", "onPlaying", "onProgress", "onRateChange", "onSeeked", "onSeeking", "onStalled", "onSuspend", "onTimeUpdate", "onVolumeChange", "onWaiting"];
export declare const mouseEvents: readonly ["onClick", "onContextMenu", "onDoubleClick", "onMouseDown", "onMouseEnter", "onMouseLeave", "onMouseMove", "onMouseOut", "onMouseOver", "onMouseUp"];
export declare const dragEvents: readonly ["onDrag", "onDragEnd", "onDragEnter", "onDragExit", "onDragLeave", "onDragOver", "onDragStart", "onDrop"];
export declare const selectionEvents: readonly ["onSelect"];
export declare const touchEvents: readonly ["onTouchCancel", "onTouchEnd", "onTouchMove", "onTouchStart"];
export declare const pointerEvents: readonly ["onPointerDown", "onPointerMove", "onPointerUp", "onPointerCancel", "onGotPointerCapture", "onLostPointerCapture", "onPointerEnter", "onPointerLeave", "onPointerOver", "onPointerOut"];
export declare const uiEvents: readonly ["onScroll"];
export declare const wheelEvents: readonly ["onWheel"];
export declare const animationEvents: readonly ["onAnimationStart", "onAnimationEnd", "onAnimationIteration"];
export declare const transitionEvents: readonly ["onTransitionEnd"];
export declare const otherEvents: readonly ["onToggle"];
export declare const changeEvents: readonly ["onChange"];
export declare const allEvents: readonly ["onCopy", "onCut", "onPaste", "onCompositionEnd", "onCompositionStart", "onCompositionUpdate", "onFocus", "onBlur", "onInput", "onInvalid", "onReset", "onSubmit", "onLoad", "onError", "onKeyDown", "onKeyPress", "onKeyUp", "onAbort", "onCanPlay", "onCanPlayThrough", "onDurationChange", "onEmptied", "onEncrypted", "onEnded", "onError", "onLoadedData", "onLoadedMetadata", "onLoadStart", "onPause", "onPlay", "onPlaying", "onProgress", "onRateChange", "onSeeked", "onSeeking", "onStalled", "onSuspend", "onTimeUpdate", "onVolumeChange", "onWaiting", "onClick", "onContextMenu", "onDoubleClick", "onMouseDown", "onMouseEnter", "onMouseLeave", "onMouseMove", "onMouseOut", "onMouseOver", "onMouseUp", "onDrag", "onDragEnd", "onDragEnter", "onDragExit", "onDragLeave", "onDragOver", "onDragStart", "onDrop", "onSelect", "onTouchCancel", "onTouchEnd", "onTouchMove", "onTouchStart", "onPointerDown", "onPointerMove", "onPointerUp", "onPointerCancel", "onGotPointerCapture", "onLostPointerCapture", "onPointerEnter", "onPointerLeave", "onPointerOver", "onPointerOut", "onScroll", "onWheel", "onAnimationStart", "onAnimationEnd", "onAnimationIteration", "onTransitionEnd", "onChange", "onToggle"];
type AllEvents = (typeof allEvents)[number];
type EventHandler<ArgsType> = (event: any, args: ArgsType) => void;
type EventHandlerWithoutArgs<ArgsType, OriginalEventHandler> = OriginalEventHandler extends (event: infer Event, args: ArgsType) => void ? (event: Event) => void : never;
export type EventProps<ArgsType> = {
[K in AllEvents]?: EventHandler<ArgsType>;
};
type Props<ArgsType> = Record<string, unknown> & EventProps<ArgsType>;
type EventPropsWithoutArgs<ArgsType, PropsType> = {
[K in keyof PropsType as K extends AllEvents ? K : never]: EventHandlerWithoutArgs<ArgsType, PropsType[K]>;
};
/**
* Returns an object with on-event callback props curried with provided args.
* @param {Object} props Props passed to a component.
* @param {Function=} getArgs A function that returns argument(s) on-event callbacks
* shall be curried with.
*/
export default function makeEventProps<ArgsType, PropsType extends Props<ArgsType> = Props<ArgsType>>(props: PropsType, getArgs?: (eventName: string) => ArgsType): EventPropsWithoutArgs<ArgsType, PropsType>;
export {};

120
node_modules/make-event-props/dist/cjs/index.js generated vendored Normal file
View File

@@ -0,0 +1,120 @@
"use strict";
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
if (ar || !(i in from)) {
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
ar[i] = from[i];
}
}
return to.concat(ar || Array.prototype.slice.call(from));
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.allEvents = exports.changeEvents = exports.otherEvents = exports.transitionEvents = exports.animationEvents = exports.wheelEvents = exports.uiEvents = exports.pointerEvents = exports.touchEvents = exports.selectionEvents = exports.dragEvents = exports.mouseEvents = exports.mediaEvents = exports.keyboardEvents = exports.imageEvents = exports.formEvents = exports.focusEvents = exports.compositionEvents = exports.clipboardEvents = void 0;
// As defined on the list of supported events: https://reactjs.org/docs/events.html
exports.clipboardEvents = ['onCopy', 'onCut', 'onPaste'];
exports.compositionEvents = [
'onCompositionEnd',
'onCompositionStart',
'onCompositionUpdate',
];
exports.focusEvents = ['onFocus', 'onBlur'];
exports.formEvents = ['onInput', 'onInvalid', 'onReset', 'onSubmit'];
exports.imageEvents = ['onLoad', 'onError'];
exports.keyboardEvents = ['onKeyDown', 'onKeyPress', 'onKeyUp'];
exports.mediaEvents = [
'onAbort',
'onCanPlay',
'onCanPlayThrough',
'onDurationChange',
'onEmptied',
'onEncrypted',
'onEnded',
'onError',
'onLoadedData',
'onLoadedMetadata',
'onLoadStart',
'onPause',
'onPlay',
'onPlaying',
'onProgress',
'onRateChange',
'onSeeked',
'onSeeking',
'onStalled',
'onSuspend',
'onTimeUpdate',
'onVolumeChange',
'onWaiting',
];
exports.mouseEvents = [
'onClick',
'onContextMenu',
'onDoubleClick',
'onMouseDown',
'onMouseEnter',
'onMouseLeave',
'onMouseMove',
'onMouseOut',
'onMouseOver',
'onMouseUp',
];
exports.dragEvents = [
'onDrag',
'onDragEnd',
'onDragEnter',
'onDragExit',
'onDragLeave',
'onDragOver',
'onDragStart',
'onDrop',
];
exports.selectionEvents = ['onSelect'];
exports.touchEvents = ['onTouchCancel', 'onTouchEnd', 'onTouchMove', 'onTouchStart'];
exports.pointerEvents = [
'onPointerDown',
'onPointerMove',
'onPointerUp',
'onPointerCancel',
'onGotPointerCapture',
'onLostPointerCapture',
'onPointerEnter',
'onPointerLeave',
'onPointerOver',
'onPointerOut',
];
exports.uiEvents = ['onScroll'];
exports.wheelEvents = ['onWheel'];
exports.animationEvents = [
'onAnimationStart',
'onAnimationEnd',
'onAnimationIteration',
];
exports.transitionEvents = ['onTransitionEnd'];
exports.otherEvents = ['onToggle'];
exports.changeEvents = ['onChange'];
exports.allEvents = __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], exports.clipboardEvents, true), exports.compositionEvents, true), exports.focusEvents, true), exports.formEvents, true), exports.imageEvents, true), exports.keyboardEvents, true), exports.mediaEvents, true), exports.mouseEvents, true), exports.dragEvents, true), exports.selectionEvents, true), exports.touchEvents, true), exports.pointerEvents, true), exports.uiEvents, true), exports.wheelEvents, true), exports.animationEvents, true), exports.transitionEvents, true), exports.changeEvents, true), exports.otherEvents, true);
/**
* Returns an object with on-event callback props curried with provided args.
* @param {Object} props Props passed to a component.
* @param {Function=} getArgs A function that returns argument(s) on-event callbacks
* shall be curried with.
*/
function makeEventProps(props, getArgs) {
var eventProps = {};
exports.allEvents.forEach(function (eventName) {
var eventHandler = props[eventName];
if (!eventHandler) {
return;
}
if (getArgs) {
eventProps[eventName] = (function (event) {
return eventHandler(event, getArgs(eventName));
});
}
else {
eventProps[eventName] = eventHandler;
}
});
return eventProps;
}
exports.default = makeEventProps;

View File

@@ -0,0 +1 @@
export {};

223
node_modules/make-event-props/dist/cjs/index.spec.js generated vendored Normal file
View File

@@ -0,0 +1,223 @@
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
if (ar || !(i in from)) {
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
ar[i] = from[i];
}
}
return to.concat(ar || Array.prototype.slice.call(from));
};
Object.defineProperty(exports, "__esModule", { value: true });
var jsx_runtime_1 = require("react/jsx-runtime");
var vitest_1 = require("vitest");
var index_js_1 = __importStar(require("./index.js"));
(0, vitest_1.describe)('makeEventProps()', function () {
var fakeEvent = {};
(0, vitest_1.it)('returns object with valid and only valid event callbacks', function () {
var props = {
onClick: vitest_1.vi.fn(),
someInvalidProp: vitest_1.vi.fn(),
};
var result = (0, index_js_1.default)(props);
(0, vitest_1.expect)(result).toMatchObject({ onClick: vitest_1.expect.any(Function) });
});
(0, vitest_1.it)('calls getArgs function on event invoke if given', function () {
var props = {
onClick: vitest_1.vi.fn(),
someInvalidProp: vitest_1.vi.fn(),
};
var getArgs = vitest_1.vi.fn();
var result = (0, index_js_1.default)(props, getArgs);
// getArgs shall not be invoked before a given event is fired
(0, vitest_1.expect)(getArgs).not.toHaveBeenCalled();
result.onClick(fakeEvent);
(0, vitest_1.expect)(getArgs).toHaveBeenCalledTimes(1);
(0, vitest_1.expect)(getArgs).toHaveBeenCalledWith('onClick');
});
(0, vitest_1.it)('properly calls callbacks given in props given no getArgs function', function () {
var props = {
onClick: vitest_1.vi.fn(),
};
var result = (0, index_js_1.default)(props);
result.onClick(fakeEvent);
(0, vitest_1.expect)(props.onClick).toHaveBeenCalledWith(fakeEvent);
});
(0, vitest_1.it)('properly calls callbacks given in props given getArgs function', function () {
var props = {
onClick: vitest_1.vi.fn(),
};
var getArgs = vitest_1.vi.fn();
var args = {};
getArgs.mockReturnValue(args);
var result = (0, index_js_1.default)(props, getArgs);
result.onClick(fakeEvent);
(0, vitest_1.expect)(props.onClick).toHaveBeenCalledWith(fakeEvent, args);
});
(0, vitest_1.it)('should not filter out valid event props', function () {
var props = {
onClick: vitest_1.vi.fn(),
};
var result = (0, index_js_1.default)(props);
// @ts-expect-no-error
result.onClick;
});
(0, vitest_1.it)('should filter out invalid event props', function () {
var props = {
someInvalidProp: vitest_1.vi.fn(),
};
var result = (0, index_js_1.default)(props);
// @ts-expect-error-next-line
result.someInvalidProp;
});
(0, vitest_1.it)('should allow valid onClick handler to be passed', function () {
var props = {
// eslint-disable-next-line @typescript-eslint/no-unused-vars
onClick: function (event) {
// Intentionally empty
},
};
// @ts-expect-no-error
(0, index_js_1.default)(props);
});
(0, vitest_1.it)('should not allow invalid onClick handler to be passed', function () {
var props = {
onClick: 'potato',
};
// @ts-expect-error-next-line
(0, index_js_1.default)(props);
});
(0, vitest_1.it)('should allow onClick handler with extra args to be passed if getArgs is provided', function () {
var props = {
// eslint-disable-next-line @typescript-eslint/no-unused-vars
onClick: function (event, args) {
// Intentionally empty
},
};
// @ts-expect-no-error
(0, index_js_1.default)(props, function () { return 'hello'; });
});
(0, vitest_1.it)('should not allow onClick handler with extra args to be passed if getArgs is not provided', function () {
var props = {
// eslint-disable-next-line @typescript-eslint/no-unused-vars
onClick: function (event, args) {
// Intentionally empty
},
};
// @ts-expect-error-next-line
(0, index_js_1.default)(props);
});
(0, vitest_1.it)('should not allow onClick handler with extra args to be passed if getArgs is provided but returns different type', function () {
var props = {
// eslint-disable-next-line @typescript-eslint/no-unused-vars
onClick: function (event, args) {
// Intentionally empty
},
};
// @ts-expect-error-next-line
(0, index_js_1.default)(props, function () { return 5; });
});
(0, vitest_1.it)('should allow div onClick handler to be passed to div', function () {
var props = {
// eslint-disable-next-line @typescript-eslint/no-unused-vars
onClick: function (event) {
// Intentionally empty
},
};
var result = (0, index_js_1.default)(props);
// @ts-expect-no-error
(0, jsx_runtime_1.jsx)("div", { onClick: result.onClick });
});
(0, vitest_1.it)('should not allow div onClick handler to be passed to button', function () {
var props = {
// eslint-disable-next-line @typescript-eslint/no-unused-vars
onClick: function (event) {
// Intentionally empty
},
};
var result = (0, index_js_1.default)(props);
// @ts-expect-error-next-line
(0, jsx_runtime_1.jsx)("button", { onClick: result.onClick });
});
(0, vitest_1.it)('should allow div onClick handler with extra args to be passed to div if getArgs is provided', function () {
var props = {
// eslint-disable-next-line @typescript-eslint/no-unused-vars
onClick: function (event, args) {
// Intentionally empty
},
};
var result = (0, index_js_1.default)(props, function () { return 'hello'; });
// @ts-expect-no-error
(0, jsx_runtime_1.jsx)("div", { onClick: result.onClick });
});
(0, vitest_1.it)('should not allow div onClick handler with extra args to be passed to button if getArgs is provided', function () {
var props = {
// eslint-disable-next-line @typescript-eslint/no-unused-vars
onClick: function (event, args) {
// Intentionally empty
},
};
var result = (0, index_js_1.default)(props, function () { return 'hello'; });
// @ts-expect-error-next-line
(0, jsx_runtime_1.jsx)("button", { onClick: result.onClick });
});
(0, vitest_1.it)('should allow onClick handler with valid extra args to be passed with args explicitly typed', function () {
var props = {
// eslint-disable-next-line @typescript-eslint/no-unused-vars
onClick: function (event, args) {
// Intentionally empty
},
};
// @ts-expect-no-error
(0, index_js_1.default)(props, function () { return 'hello'; });
});
(0, vitest_1.it)('should not allow onClick handler with invalid extra args to be passed with args explicitly typed', function () {
var props = {
// eslint-disable-next-line @typescript-eslint/no-unused-vars
onClick: function (event, args) {
// Intentionally empty
},
};
// @ts-expect-error-next-line
(0, index_js_1.default)(props, function () { return 'hello'; });
});
(0, vitest_1.it)('should allow getArgs returning valid type to be passed with args explicitly typed', function () {
var props = {};
// @ts-expect-no-error
(0, index_js_1.default)(props, function () { return 'hello'; });
});
(0, vitest_1.it)('should not allow getArgs returning invalid type to be passed with args explicitly typed', function () {
var props = {};
// @ts-expect-error-next-line
(0, index_js_1.default)(props, function () { return 5; });
});
});
(0, vitest_1.describe)('allEvents', function () {
(0, vitest_1.it)('should contain all events', function () {
var sortedAllEvents = new Set(__spreadArray([], index_js_1.allEvents, true).sort());
(0, vitest_1.expect)(sortedAllEvents).toMatchSnapshot();
});
});

3
node_modules/make-event-props/dist/cjs/package.json generated vendored Normal file
View File

@@ -0,0 +1,3 @@
{
"type": "commonjs"
}

37
node_modules/make-event-props/dist/esm/index.d.ts generated vendored Normal file
View File

@@ -0,0 +1,37 @@
export declare const clipboardEvents: readonly ["onCopy", "onCut", "onPaste"];
export declare const compositionEvents: readonly ["onCompositionEnd", "onCompositionStart", "onCompositionUpdate"];
export declare const focusEvents: readonly ["onFocus", "onBlur"];
export declare const formEvents: readonly ["onInput", "onInvalid", "onReset", "onSubmit"];
export declare const imageEvents: readonly ["onLoad", "onError"];
export declare const keyboardEvents: readonly ["onKeyDown", "onKeyPress", "onKeyUp"];
export declare const mediaEvents: readonly ["onAbort", "onCanPlay", "onCanPlayThrough", "onDurationChange", "onEmptied", "onEncrypted", "onEnded", "onError", "onLoadedData", "onLoadedMetadata", "onLoadStart", "onPause", "onPlay", "onPlaying", "onProgress", "onRateChange", "onSeeked", "onSeeking", "onStalled", "onSuspend", "onTimeUpdate", "onVolumeChange", "onWaiting"];
export declare const mouseEvents: readonly ["onClick", "onContextMenu", "onDoubleClick", "onMouseDown", "onMouseEnter", "onMouseLeave", "onMouseMove", "onMouseOut", "onMouseOver", "onMouseUp"];
export declare const dragEvents: readonly ["onDrag", "onDragEnd", "onDragEnter", "onDragExit", "onDragLeave", "onDragOver", "onDragStart", "onDrop"];
export declare const selectionEvents: readonly ["onSelect"];
export declare const touchEvents: readonly ["onTouchCancel", "onTouchEnd", "onTouchMove", "onTouchStart"];
export declare const pointerEvents: readonly ["onPointerDown", "onPointerMove", "onPointerUp", "onPointerCancel", "onGotPointerCapture", "onLostPointerCapture", "onPointerEnter", "onPointerLeave", "onPointerOver", "onPointerOut"];
export declare const uiEvents: readonly ["onScroll"];
export declare const wheelEvents: readonly ["onWheel"];
export declare const animationEvents: readonly ["onAnimationStart", "onAnimationEnd", "onAnimationIteration"];
export declare const transitionEvents: readonly ["onTransitionEnd"];
export declare const otherEvents: readonly ["onToggle"];
export declare const changeEvents: readonly ["onChange"];
export declare const allEvents: readonly ["onCopy", "onCut", "onPaste", "onCompositionEnd", "onCompositionStart", "onCompositionUpdate", "onFocus", "onBlur", "onInput", "onInvalid", "onReset", "onSubmit", "onLoad", "onError", "onKeyDown", "onKeyPress", "onKeyUp", "onAbort", "onCanPlay", "onCanPlayThrough", "onDurationChange", "onEmptied", "onEncrypted", "onEnded", "onError", "onLoadedData", "onLoadedMetadata", "onLoadStart", "onPause", "onPlay", "onPlaying", "onProgress", "onRateChange", "onSeeked", "onSeeking", "onStalled", "onSuspend", "onTimeUpdate", "onVolumeChange", "onWaiting", "onClick", "onContextMenu", "onDoubleClick", "onMouseDown", "onMouseEnter", "onMouseLeave", "onMouseMove", "onMouseOut", "onMouseOver", "onMouseUp", "onDrag", "onDragEnd", "onDragEnter", "onDragExit", "onDragLeave", "onDragOver", "onDragStart", "onDrop", "onSelect", "onTouchCancel", "onTouchEnd", "onTouchMove", "onTouchStart", "onPointerDown", "onPointerMove", "onPointerUp", "onPointerCancel", "onGotPointerCapture", "onLostPointerCapture", "onPointerEnter", "onPointerLeave", "onPointerOver", "onPointerOut", "onScroll", "onWheel", "onAnimationStart", "onAnimationEnd", "onAnimationIteration", "onTransitionEnd", "onChange", "onToggle"];
type AllEvents = (typeof allEvents)[number];
type EventHandler<ArgsType> = (event: any, args: ArgsType) => void;
type EventHandlerWithoutArgs<ArgsType, OriginalEventHandler> = OriginalEventHandler extends (event: infer Event, args: ArgsType) => void ? (event: Event) => void : never;
export type EventProps<ArgsType> = {
[K in AllEvents]?: EventHandler<ArgsType>;
};
type Props<ArgsType> = Record<string, unknown> & EventProps<ArgsType>;
type EventPropsWithoutArgs<ArgsType, PropsType> = {
[K in keyof PropsType as K extends AllEvents ? K : never]: EventHandlerWithoutArgs<ArgsType, PropsType[K]>;
};
/**
* Returns an object with on-event callback props curried with provided args.
* @param {Object} props Props passed to a component.
* @param {Function=} getArgs A function that returns argument(s) on-event callbacks
* shall be curried with.
*/
export default function makeEventProps<ArgsType, PropsType extends Props<ArgsType> = Props<ArgsType>>(props: PropsType, getArgs?: (eventName: string) => ArgsType): EventPropsWithoutArgs<ArgsType, PropsType>;
export {};

116
node_modules/make-event-props/dist/esm/index.js generated vendored Normal file
View File

@@ -0,0 +1,116 @@
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
if (ar || !(i in from)) {
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
ar[i] = from[i];
}
}
return to.concat(ar || Array.prototype.slice.call(from));
};
// As defined on the list of supported events: https://reactjs.org/docs/events.html
export var clipboardEvents = ['onCopy', 'onCut', 'onPaste'];
export var compositionEvents = [
'onCompositionEnd',
'onCompositionStart',
'onCompositionUpdate',
];
export var focusEvents = ['onFocus', 'onBlur'];
export var formEvents = ['onInput', 'onInvalid', 'onReset', 'onSubmit'];
export var imageEvents = ['onLoad', 'onError'];
export var keyboardEvents = ['onKeyDown', 'onKeyPress', 'onKeyUp'];
export var mediaEvents = [
'onAbort',
'onCanPlay',
'onCanPlayThrough',
'onDurationChange',
'onEmptied',
'onEncrypted',
'onEnded',
'onError',
'onLoadedData',
'onLoadedMetadata',
'onLoadStart',
'onPause',
'onPlay',
'onPlaying',
'onProgress',
'onRateChange',
'onSeeked',
'onSeeking',
'onStalled',
'onSuspend',
'onTimeUpdate',
'onVolumeChange',
'onWaiting',
];
export var mouseEvents = [
'onClick',
'onContextMenu',
'onDoubleClick',
'onMouseDown',
'onMouseEnter',
'onMouseLeave',
'onMouseMove',
'onMouseOut',
'onMouseOver',
'onMouseUp',
];
export var dragEvents = [
'onDrag',
'onDragEnd',
'onDragEnter',
'onDragExit',
'onDragLeave',
'onDragOver',
'onDragStart',
'onDrop',
];
export var selectionEvents = ['onSelect'];
export var touchEvents = ['onTouchCancel', 'onTouchEnd', 'onTouchMove', 'onTouchStart'];
export var pointerEvents = [
'onPointerDown',
'onPointerMove',
'onPointerUp',
'onPointerCancel',
'onGotPointerCapture',
'onLostPointerCapture',
'onPointerEnter',
'onPointerLeave',
'onPointerOver',
'onPointerOut',
];
export var uiEvents = ['onScroll'];
export var wheelEvents = ['onWheel'];
export var animationEvents = [
'onAnimationStart',
'onAnimationEnd',
'onAnimationIteration',
];
export var transitionEvents = ['onTransitionEnd'];
export var otherEvents = ['onToggle'];
export var changeEvents = ['onChange'];
export var allEvents = __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], clipboardEvents, true), compositionEvents, true), focusEvents, true), formEvents, true), imageEvents, true), keyboardEvents, true), mediaEvents, true), mouseEvents, true), dragEvents, true), selectionEvents, true), touchEvents, true), pointerEvents, true), uiEvents, true), wheelEvents, true), animationEvents, true), transitionEvents, true), changeEvents, true), otherEvents, true);
/**
* Returns an object with on-event callback props curried with provided args.
* @param {Object} props Props passed to a component.
* @param {Function=} getArgs A function that returns argument(s) on-event callbacks
* shall be curried with.
*/
export default function makeEventProps(props, getArgs) {
var eventProps = {};
allEvents.forEach(function (eventName) {
var eventHandler = props[eventName];
if (!eventHandler) {
return;
}
if (getArgs) {
eventProps[eventName] = (function (event) {
return eventHandler(event, getArgs(eventName));
});
}
else {
eventProps[eventName] = eventHandler;
}
});
return eventProps;
}

View File

@@ -0,0 +1 @@
export {};

199
node_modules/make-event-props/dist/esm/index.spec.js generated vendored Normal file
View File

@@ -0,0 +1,199 @@
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
if (ar || !(i in from)) {
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
ar[i] = from[i];
}
}
return to.concat(ar || Array.prototype.slice.call(from));
};
import { jsx as _jsx } from "react/jsx-runtime";
import { describe, expect, it, vi } from 'vitest';
import React from 'react';
import makeEventProps, { allEvents } from './index.js';
describe('makeEventProps()', function () {
var fakeEvent = {};
it('returns object with valid and only valid event callbacks', function () {
var props = {
onClick: vi.fn(),
someInvalidProp: vi.fn(),
};
var result = makeEventProps(props);
expect(result).toMatchObject({ onClick: expect.any(Function) });
});
it('calls getArgs function on event invoke if given', function () {
var props = {
onClick: vi.fn(),
someInvalidProp: vi.fn(),
};
var getArgs = vi.fn();
var result = makeEventProps(props, getArgs);
// getArgs shall not be invoked before a given event is fired
expect(getArgs).not.toHaveBeenCalled();
result.onClick(fakeEvent);
expect(getArgs).toHaveBeenCalledTimes(1);
expect(getArgs).toHaveBeenCalledWith('onClick');
});
it('properly calls callbacks given in props given no getArgs function', function () {
var props = {
onClick: vi.fn(),
};
var result = makeEventProps(props);
result.onClick(fakeEvent);
expect(props.onClick).toHaveBeenCalledWith(fakeEvent);
});
it('properly calls callbacks given in props given getArgs function', function () {
var props = {
onClick: vi.fn(),
};
var getArgs = vi.fn();
var args = {};
getArgs.mockReturnValue(args);
var result = makeEventProps(props, getArgs);
result.onClick(fakeEvent);
expect(props.onClick).toHaveBeenCalledWith(fakeEvent, args);
});
it('should not filter out valid event props', function () {
var props = {
onClick: vi.fn(),
};
var result = makeEventProps(props);
// @ts-expect-no-error
result.onClick;
});
it('should filter out invalid event props', function () {
var props = {
someInvalidProp: vi.fn(),
};
var result = makeEventProps(props);
// @ts-expect-error-next-line
result.someInvalidProp;
});
it('should allow valid onClick handler to be passed', function () {
var props = {
// eslint-disable-next-line @typescript-eslint/no-unused-vars
onClick: function (event) {
// Intentionally empty
},
};
// @ts-expect-no-error
makeEventProps(props);
});
it('should not allow invalid onClick handler to be passed', function () {
var props = {
onClick: 'potato',
};
// @ts-expect-error-next-line
makeEventProps(props);
});
it('should allow onClick handler with extra args to be passed if getArgs is provided', function () {
var props = {
// eslint-disable-next-line @typescript-eslint/no-unused-vars
onClick: function (event, args) {
// Intentionally empty
},
};
// @ts-expect-no-error
makeEventProps(props, function () { return 'hello'; });
});
it('should not allow onClick handler with extra args to be passed if getArgs is not provided', function () {
var props = {
// eslint-disable-next-line @typescript-eslint/no-unused-vars
onClick: function (event, args) {
// Intentionally empty
},
};
// @ts-expect-error-next-line
makeEventProps(props);
});
it('should not allow onClick handler with extra args to be passed if getArgs is provided but returns different type', function () {
var props = {
// eslint-disable-next-line @typescript-eslint/no-unused-vars
onClick: function (event, args) {
// Intentionally empty
},
};
// @ts-expect-error-next-line
makeEventProps(props, function () { return 5; });
});
it('should allow div onClick handler to be passed to div', function () {
var props = {
// eslint-disable-next-line @typescript-eslint/no-unused-vars
onClick: function (event) {
// Intentionally empty
},
};
var result = makeEventProps(props);
// @ts-expect-no-error
_jsx("div", { onClick: result.onClick });
});
it('should not allow div onClick handler to be passed to button', function () {
var props = {
// eslint-disable-next-line @typescript-eslint/no-unused-vars
onClick: function (event) {
// Intentionally empty
},
};
var result = makeEventProps(props);
// @ts-expect-error-next-line
_jsx("button", { onClick: result.onClick });
});
it('should allow div onClick handler with extra args to be passed to div if getArgs is provided', function () {
var props = {
// eslint-disable-next-line @typescript-eslint/no-unused-vars
onClick: function (event, args) {
// Intentionally empty
},
};
var result = makeEventProps(props, function () { return 'hello'; });
// @ts-expect-no-error
_jsx("div", { onClick: result.onClick });
});
it('should not allow div onClick handler with extra args to be passed to button if getArgs is provided', function () {
var props = {
// eslint-disable-next-line @typescript-eslint/no-unused-vars
onClick: function (event, args) {
// Intentionally empty
},
};
var result = makeEventProps(props, function () { return 'hello'; });
// @ts-expect-error-next-line
_jsx("button", { onClick: result.onClick });
});
it('should allow onClick handler with valid extra args to be passed with args explicitly typed', function () {
var props = {
// eslint-disable-next-line @typescript-eslint/no-unused-vars
onClick: function (event, args) {
// Intentionally empty
},
};
// @ts-expect-no-error
makeEventProps(props, function () { return 'hello'; });
});
it('should not allow onClick handler with invalid extra args to be passed with args explicitly typed', function () {
var props = {
// eslint-disable-next-line @typescript-eslint/no-unused-vars
onClick: function (event, args) {
// Intentionally empty
},
};
// @ts-expect-error-next-line
makeEventProps(props, function () { return 'hello'; });
});
it('should allow getArgs returning valid type to be passed with args explicitly typed', function () {
var props = {};
// @ts-expect-no-error
makeEventProps(props, function () { return 'hello'; });
});
it('should not allow getArgs returning invalid type to be passed with args explicitly typed', function () {
var props = {};
// @ts-expect-error-next-line
makeEventProps(props, function () { return 5; });
});
});
describe('allEvents', function () {
it('should contain all events', function () {
var sortedAllEvents = new Set(__spreadArray([], allEvents, true).sort());
expect(sortedAllEvents).toMatchSnapshot();
});
});