@quasar/quasar-ui-qcalendar
Version:
QCalendar - Day/Month/Week Calendars, Popups, Date Pickers, Schedules, Agendas, Planners and Tasks for your Vue Apps
60 lines (59 loc) • 2.98 kB
TypeScript
import { EmitFn } from 'vue';
import { EmitListeners } from './useEmitListeners';
/**
* Defines the structure for a mouse event configuration.
*/
interface MouseEventOptions {
event: string;
button?: number;
prevent?: boolean;
stop?: boolean;
result?: any;
}
/**
* Defines a function signature for event transformation.
*/
type GetEventFunction = (_event: MouseEvent | TouchEvent, _eventName: string) => any;
/**
* Generates mouse event handlers based on event listeners.
* @param {Function} emit - Vue's emit function.
* @param {Ref<Listeners>} listeners - Vue ref containing event listeners.
* @param {Record<string, MouseEventOptions>} events - Object defining mouse events and their options.
* @param {GetEventFunction} getEvent - Function to transform event objects.
* @returns {Record<string, Function | Function[]>} - The mapped mouse event handlers.
*/
export declare function getMouseEventHandlers(emit: EmitFn, listeners: EmitListeners, events: Record<string, MouseEventOptions>, getEvent: GetEventFunction): Record<string, Function | Function[]>;
/**
* Returns default mouse event handlers based on a suffix.
* @param {Function} emit - Vue's emit function.
* @param {Ref<Listeners>} listeners - Vue ref containing event listeners.
* @param {string} suffix - Event suffix (e.g., '-day' for 'click-day').
* @param {GetEventFunction} getEvent - Function to transform event objects.
* @returns {Record<string, Function | Function[]>} - The mapped event handlers.
*/
export declare function getDefaultMouseEventHandlers(emit: EmitFn, listeners: EmitListeners, suffix: string, getEvent: GetEventFunction): Record<string, Function | Function[]>;
/**
* Generates event names for different mouse interactions.
* @param {string} suffix - Event suffix (e.g., '-day' for 'click-day').
* @returns {Record<string, MouseEventOptions>} - The event name map.
*/
export declare function getMouseEventName(suffix: string): Record<string, MouseEventOptions>;
/**
* Returns an array of raw event names based on a suffix.
* @param {string} suffix - Event suffix.
* @returns {string[]} - The raw event names.
*/
export declare function getRawMouseEvents(suffix: string): string[];
/**
* Default function export that provides mouse event handling utilities.
* @param {Function} emit - Vue's emit function.
* @param {Ref<Listeners>} listeners - Vue ref containing event listeners.
* @returns {Object} - Functions for managing mouse event handlers.
*/
export default function useMouseEvents(emit: EmitFn, listeners: EmitListeners): {
getMouseEventHandlers: (_events: Record<string, MouseEventOptions>, _getEvent: GetEventFunction) => Record<string, Function | Function[]>;
getDefaultMouseEventHandlers: (_suffix: string, _getEvent: GetEventFunction) => Record<string, Function | Function[]>;
getMouseEventName: (_suffix: string) => Record<string, MouseEventOptions>;
getRawMouseEvents: (_suffix: string) => string[];
};
export {};