{"version":3,"file":"event.mjs","sources":["../../src/utils/event.ts"],"sourcesContent":["import { ComponentPublicInstance } from 'vue';\nimport isFunction from 'lodash/isFunction';\nimport isString from 'lodash/isString';\n\nimport { getPropsApiByEvent } from './helper';\nexport type EmitEventName = { event: string; method: string } | string;\n\n/**\n * 组件对外传递事件\n * @param vm 组件实例\n * @param eventName 事件名(注意使用中划线)\n * @param args 事件参数\n * @example emitEvent<[SearchEvent]>(this, 'search', {query: ''});\n * @example emitEvent<[TransferValue[], TargetParams]>(this, 'change', newTargetValue, params);\n * @example emitEvent<[SearchEvent[], TargetParams]>(this, { event: 'search', method: 'onChange' }, {query: ''});\n */\nexport function emitEvent<T extends any[]>(vm: ComponentPublicInstance, eventName: string, ...args: T) {\n  let emitEventMethodName: string;\n  if (isString(eventName)) {\n    emitEventMethodName = getPropsApiByEvent(eventName);\n  }\n  if (isFunction(vm.$props[emitEventMethodName])) {\n    vm.$props[emitEventMethodName](...args);\n  } else {\n    vm.$emit(eventName, ...args);\n  }\n}\n"],"names":["emitEvent","vm","eventName","emitEventMethodName","isString","getPropsApiByEvent","_len","arguments","length","args","Array","_key","isFunction","$props","_vm$$props","apply","$emit","concat"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAgBgB,SAAAA,SAAAA,CAA2BC,EAA6B,EAAAC,SAAA,EAA+B;AACjG,EAAA,IAAAC,mBAAA,CAAA;AACA,EAAA,IAAAC,UAAA,CAASF,SAAS,CAAG,EAAA;AACvBC,IAAAA,mBAAA,GAAsBE,mBAAmBH,SAAS,CAAA,CAAA;AACpD,GAAA;EAAA,KAAAI,IAAAA,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAJ4FC,IAAS,OAAAC,KAAA,CAAAJ,IAAA,GAAAA,CAAAA,GAAAA,IAAA,WAAAK,IAAA,GAAA,CAAA,EAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA,EAAA,EAAA;AAATF,IAAAA,IAAS,CAAAE,IAAA,GAAAJ,CAAAA,CAAAA,GAAAA,SAAA,CAAAI,IAAA,CAAA,CAAA;AAAA,GAAA;EAKrG,IAAIC,YAAW,CAAAX,EAAA,CAAGY,MAAO,CAAAV,mBAAA,CAAoB,CAAG,EAAA;AAAA,IAAA,IAAAW,UAAA,CAAA;AAC3C,IAAA,CAAAA,UAAA,GAAAb,EAAA,CAAAY,MAAA,EAAOV,mBAAqB,CAAA,CAAAY,KAAA,CAAAD,UAAA,EAAGL,IAAI,CAAA,CAAA;AACxC,GAAO,MAAA;AACFR,IAAAA,EAAA,CAAAe,KAAA,CAAAD,KAAA,CAAAd,EAAA,EAAMC,CAAAA,SAAW,CAAAe,CAAAA,MAAA,CAAGR,IAAI,CAAA,CAAA,CAAA;AAC7B,GAAA;AACF;;;;"}