fabric
Version:
Object model for HTML5 canvas, and SVG-to-canvas parser. Backed by jsdom and node-canvas.
1 lines • 1.94 kB
Source Map (JSON)
{"version":3,"file":"wrapWithFireEvent.mjs","sources":["../../../src/controls/wrapWithFireEvent.ts"],"sourcesContent":["import type {\n TModificationEvents,\n Transform,\n TransformActionHandler,\n} from '../EventTypeDefs';\nimport { fireEvent } from './fireEvent';\nimport { commonEventInfo } from './util';\n\n/**\n * Wrap an action handler with firing an event if the action is performed\n * @param {TModificationEvents} eventName the event we want to fire\n * @param {TransformActionHandler<T>} actionHandler the function to wrap\n * @param {object} extraEventInfo extra information to pas to the event handler\n * @return {TransformActionHandler<T>} a function with an action handler signature\n */\nexport const wrapWithFireEvent = <\n T extends Transform,\n P extends object = Record<string, never>,\n>(\n eventName: TModificationEvents,\n actionHandler: TransformActionHandler<T>,\n extraEventInfo?: P,\n) => {\n return ((eventData, transform, x, y) => {\n const actionPerformed = actionHandler(eventData, transform, x, y);\n if (actionPerformed) {\n fireEvent(eventName, {\n ...commonEventInfo(eventData, transform, x, y),\n ...extraEventInfo,\n });\n }\n return actionPerformed;\n }) as TransformActionHandler<T>;\n};\n"],"names":["wrapWithFireEvent","eventName","actionHandler","extraEventInfo","eventData","transform","x","y","actionPerformed","fireEvent","_objectSpread","commonEventInfo"],"mappings":";;;;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMA,iBAAiB,GAAGA,CAI/BC,SAA8B,EAC9BC,aAAwC,EACxCC,cAAkB,KACf;EACH,OAAQ,CAACC,SAAS,EAAEC,SAAS,EAAEC,CAAC,EAAEC,CAAC,KAAK;IACtC,MAAMC,eAAe,GAAGN,aAAa,CAACE,SAAS,EAAEC,SAAS,EAAEC,CAAC,EAAEC,CAAC,CAAC,CAAA;AACjE,IAAA,IAAIC,eAAe,EAAE;MACnBC,SAAS,CAACR,SAAS,EAAAS,cAAA,CAAAA,cAAA,CAAA,EAAA,EACdC,eAAe,CAACP,SAAS,EAAEC,SAAS,EAAEC,CAAC,EAAEC,CAAC,CAAC,CAC3CJ,EAAAA,cAAc,CAClB,CAAC,CAAA;AACJ,KAAA;AACA,IAAA,OAAOK,eAAe,CAAA;GACvB,CAAA;AACH;;;;"}