{"version":3,"file":"props.mjs","sources":["../../../../packages/utils/props.ts"],"sourcesContent":["import type { Api, ReqBefore, ReqAfter, Method } from '@el-plus/utils/http'\nimport type { PropType, SetupContext, MaybeRef, ExtractPropTypes } from 'vue'\nimport { useAttrs } from 'vue'\nexport const apiProps = {\n  api: {\n    type: [String, Function] as PropType<Api>,\n  },\n  method: {\n    type: String as PropType<Method>,\n  },\n  reqData: {\n    type: Object,\n  },\n  reqParams: {\n    type: Object,\n  },\n  reqBefore: {\n    type: Function as PropType<ReqBefore>,\n  },\n  reqAfter: {\n    type: Function as PropType<ReqAfter>,\n  },\n}\ntype IVisible = boolean | ((T: unknown) => boolean)\nexport const visibleProps = {\n  show: {\n    type: [Boolean, Function] as PropType<IVisible>,\n  },\n  hide: {\n    type: [Boolean, Function] as PropType<IVisible>,\n  },\n}\nexport type VisibleProps = ExtractPropTypes<typeof visibleProps>\nexport const prepareProps = <T extends Record<string, any>>( // eslint-disable-line @typescript-eslint/no-explicit-any\n  props: T,\n  excludeKeys: string[] = [],\n): Partial<T> => {\n  return Object.keys(props).reduce((acc, key) => {\n    if (!excludeKeys.includes(key)) {\n      acc[key as keyof T] = props[key]\n    }\n    return acc\n  }, {} as Partial<T>)\n}\n\nexport type IDisabled = boolean | ((...args: any[]) => boolean)\nexport const disabledProps = {\n  disabled: {\n    type: [Boolean, Function] as PropType<IDisabled>,\n  },\n}\nexport type DisabledProps = ExtractPropTypes<typeof disabledProps>\nexport const prepareEvents = <T extends Record<string, unknown> | string[]>(\n  emit: SetupContext<T>['emit'],\n  eventKeys: string[],\n  // (keyof T & string)[] = [],\n) => {\n  return eventKeys.reduce(\n    (acc, key) => {\n      // 转换on+事件名\n      let eventName\n      if (key.startsWith('on')) {\n        eventName = key\n      } else {\n        if (key.includes('-')) {\n          eventName =\n            'on' +\n            key\n              .split('-')\n              .map((word) => word.charAt(0).toUpperCase() + word.slice(1))\n              .join('')\n        } else {\n          eventName = `on${key.charAt(0).toUpperCase()}${key.slice(1)}`\n        }\n      }\n      acc[eventName] = (...args: unknown[]) => emit(key, ...args)\n      return acc\n    },\n    {} as Record<string, unknown>,\n  )\n}\n\nexport const prepareClassNames = () => {\n  return useAttrs().class || ''\n}\nexport const prepareStyles = () => {\n  return useAttrs().style || {}\n}\n"],"names":[],"mappings":";;AAGO,MAAM,QAAA,GAAW;AAAA,EACtB,GAAA,EAAK;AAAA,IACH,IAAA,EAAM,CAAC,MAAA,EAAQ,QAAQ;AAAA,GACzB;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,IAAA,EAAM;AAAA,GACR;AAAA,EACA,OAAA,EAAS;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EACA,SAAA,EAAW;AAAA,IACT,IAAA,EAAM;AAAA,GACR;AAAA,EACA,SAAA,EAAW;AAAA,IACT,IAAA,EAAM;AAAA,GACR;AAAA,EACA,QAAA,EAAU;AAAA,IACR,IAAA,EAAM;AAAA;AAEV;AAEO,MAAM,YAAA,GAAe;AAAA,EAC1B,IAAA,EAAM;AAAA,IACJ,IAAA,EAAM,CAAC,OAAA,EAAS,QAAQ;AAAA,GAC1B;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,IAAA,EAAM,CAAC,OAAA,EAAS,QAAQ;AAAA;AAE5B;AAEO,MAAM,YAAA,GAAe,CAC1B,KAAA,EACA,WAAA,GAAwB,EAAC,KACV;AACf,EAAA,OAAO,OAAO,IAAA,CAAK,KAAK,EAAE,MAAA,CAAO,CAAC,KAAK,GAAA,KAAQ;AAC7C,IAAA,IAAI,CAAC,WAAA,CAAY,QAAA,CAAS,GAAG,CAAA,EAAG;AAC9B,MAAA,GAAA,CAAI,GAAc,CAAA,GAAI,KAAA,CAAM,GAAG,CAAA;AAAA,IACjC;AACA,IAAA,OAAO,GAAA;AAAA,EACT,CAAA,EAAG,EAAgB,CAAA;AACrB;AAGO,MAAM,aAAA,GAAgB;AAAA,EAC3B,QAAA,EAAU;AAAA,IACR,IAAA,EAAM,CAAC,OAAA,EAAS,QAAQ;AAAA;AAE5B;AAEO,MAAM,aAAA,GAAgB,CAC3B,IAAA,EACA,SAAA,KAEG;AACH,EAAA,OAAO,SAAA,CAAU,MAAA;AAAA,IACf,CAAC,KAAK,GAAA,KAAQ;AAEZ,MAAA,IAAI,SAAA;AACJ,MAAA,IAAI,GAAA,CAAI,UAAA,CAAW,IAAI,CAAA,EAAG;AACxB,QAAA,SAAA,GAAY,GAAA;AAAA,MACd,CAAA,MAAO;AACL,QAAA,IAAI,GAAA,CAAI,QAAA,CAAS,GAAG,CAAA,EAAG;AACrB,UAAA,SAAA,GACE,IAAA,GACA,IACG,KAAA,CAAM,GAAG,EACT,GAAA,CAAI,CAAC,SAAS,IAAA,CAAK,MAAA,CAAO,CAAC,CAAA,CAAE,WAAA,KAAgB,IAAA,CAAK,KAAA,CAAM,CAAC,CAAC,CAAA,CAC1D,KAAK,EAAE,CAAA;AAAA,QACd,CAAA,MAAO;AACL,UAAA,SAAA,GAAY,CAAA,EAAA,EAAK,GAAA,CAAI,MAAA,CAAO,CAAC,CAAA,CAAE,WAAA,EAAa,CAAA,EAAG,GAAA,CAAI,KAAA,CAAM,CAAC,CAAC,CAAA,CAAA;AAAA,QAC7D;AAAA,MACF;AACA,MAAA,GAAA,CAAI,SAAS,CAAA,GAAI,CAAA,GAAI,SAAoB,IAAA,CAAK,GAAA,EAAK,GAAG,IAAI,CAAA;AAC1D,MAAA,OAAO,GAAA;AAAA,IACT,CAAA;AAAA,IACA;AAAC,GACH;AACF;AAEO,MAAM,oBAAoB,MAAM;AACrC,EAAA,OAAO,QAAA,GAAW,KAAA,IAAS,EAAA;AAC7B;AACO,MAAM,gBAAgB,MAAM;AACjC,EAAA,OAAO,QAAA,EAAS,CAAE,KAAA,IAAS,EAAC;AAC9B;;;;"}