UNPKG

xdesign-vue-next

Version:

XDesign Component for vue-next

1 lines 1.73 kB
{"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 * @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":["isString","emitEventMethodName","args","vm"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeO,SAAA,SAAA,CAAA,EAAA,EAAA,SAAA,EAAA;AACD,EAAA,IAAA,mBAAA,CAAA;AACA,EAAA,IAAAA,UAAA,CAAA,SAAA,CAAA,EAAA;AACFC,IAAAA,mBAAAA,GAAAA,kBAAAA,CAAAA,SAAAA,CAAAA,CAAAA;AACF,GAAA;;AAJ4FC,IAAAA,IAAAA,CAAAA,IAAAA,GAAAA,CAAAA,CAAAA,GAAAA,SAAAA,CAAAA,IAAAA,CAAAA,CAAAA;AAAS,GAAA;;AAKrD,IAAA,IAAA,UAAA,CAAA;AAC3C,IAAA,CAAA,UAAA,GAAA,EAAA,CAAA,MAAA,EAAA,mBAAA,CAAA,CAAA,KAAA,CAAA,UAAA,EAAA,IAAA,CAAA,CAAA;AACL,GAAA,MAAA;AACKC,IAAAA,EAAAA,CAAAA,KAAAA,CAAAA,KAAAA,CAAAA,EAAAA,EAAAA,CAAAA,SAAAA,CAAAA,CAAAA,MAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA;AACL,GAAA;AACF;;;;"}