UNPKG

tdesign-vue-next

Version:
1 lines 2.41 kB
{"version":3,"file":"event.mjs","sources":["../../../components/utils/event.ts"],"sourcesContent":["import { ComponentPublicInstance } from 'vue';\nimport { camelCase, isFunction, isString } from 'lodash-es';\n\nexport type EmitEventName = { event: string; method: string } | string;\n\n// keyboard-event => onKeyboardEvent\nexport function getPropsApiByEvent(eventName: string) {\n return camelCase(`on-${eventName}`);\n}\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[]>(\n vm: ComponentPublicInstance & { $props: Record<string, any> },\n eventName: string,\n ...args: T\n) {\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":["getPropsApiByEvent","eventName","camelCase","concat","emitEvent","vm","emitEventMethodName","isString","_len","arguments","length","args","Array","_key","isFunction","$props","_vm$$props","apply","$emit"],"mappings":";;;;;;;;AAMO,SAASA,mBAAmBC,SAAmB,EAAA;AAC7C,EAAA,OAAAC,SAAA,CAAAC,KAAAA,CAAAA,MAAA,CAAgBF,SAAW,CAAA,CAAA,CAAA;AACpC,CAAA;AAWgB,SAAAG,SAAAA,CACdC,EACA,EAAAJ,SAAA,EAEA;AACI,EAAA,IAAAK,mBAAA,CAAA;AACA,EAAA,IAAAC,QAAA,CAASN,SAAS,CAAG,EAAA;AACvBK,IAAAA,mBAAA,GAAsBN,mBAAmBC,SAAS,CAAA,CAAA;AACpD,GAAA;EAAA,KAAAO,IAAAA,IAAA,GAAAC,SAAA,CAAAC,MAAA,EALGC,IACH,OAAAC,KAAA,CAAAJ,IAAA,GAAAA,CAAAA,GAAAA,IAAA,WAAAK,IAAA,GAAA,CAAA,EAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA,EAAA,EAAA;AADGF,IAAAA,IACH,CAAAE,IAAA,GAAAJ,CAAAA,CAAAA,GAAAA,SAAA,CAAAI,IAAA,CAAA,CAAA;AAAA,GAAA;EAKA,IAAIC,UAAW,CAAAT,EAAA,CAAGU,MAAO,CAAAT,mBAAA,CAAoB,CAAG,EAAA;AAAA,IAAA,IAAAU,UAAA,CAAA;AAC3C,IAAA,CAAAA,UAAA,GAAAX,EAAA,CAAAU,MAAA,EAAOT,mBAAqB,CAAA,CAAAW,KAAA,CAAAD,UAAA,EAAGL,IAAI,CAAA,CAAA;AACxC,GAAO,MAAA;AACFN,IAAAA,EAAA,CAAAa,KAAA,CAAAD,KAAA,CAAAZ,EAAA,EAAMJ,CAAAA,SAAW,CAAAE,CAAAA,MAAA,CAAGQ,IAAI,CAAA,CAAA,CAAA;AAC7B,GAAA;AACF;;;;"}