{"version":3,"file":"resolve-component-props.mjs","sources":["../../../../../src/utils/component-options/resolve-component-props.ts"],"sourcesContent":["import type { ComponentOptions } from 'vue'\nimport type { DefineComponentOptions, ExtractComponentProps } from './types'\n\nfunction normalizeProps (props: any) {\n  switch (true) {\n    case Array.isArray(props):\n      return props.reduce((acc: Record<string, unknown>, prop: string) => ({ ...acc, [prop]: null }), {})\n    case typeof props === 'object' && props !== null:\n      return props\n    default:\n      return {}\n  }\n}\n\nfunction mergeProps (to: Record<string, any>, from: Record<string, any>, optionsType = 'props') {\n  const { mixins, extends: extendsOptions } = from\n\n  extendsOptions && mergeProps(to, extendsOptions, optionsType)\n  mixins && mixins.forEach((m: any) => mergeProps(to, m, optionsType))\n\n  const props = normalizeProps(from[optionsType])\n\n  for (const key in props) {\n    to[key] = props[key]\n  }\n}\n\nfunction getComponentOptions (component: DefineComponentOptions): ComponentOptions {\n  if (component.options) {\n    return component.options\n  }\n\n  if (component.__vccOpts || component.__b) {\n    return { ...component.__vccOpts, ...component.__b }\n  }\n\n  return component\n}\n\nfunction resolveProps (options: any, optionsType = 'props') {\n  const mixins = options.mixins ?? []\n  const extendsOptions = options.extends ?? []\n  const result: Record<string, any> = {}\n\n  mergeProps(result, extendsOptions, optionsType)\n\n  for (let i = 0; i < mixins.length; i++) {\n    mergeProps(result, mixins[i], optionsType)\n  }\n\n  Object.assign(result, normalizeProps(options[optionsType]))\n\n  return result\n}\n\n/** Extract all component props, from mixins and VueClassComponent */\nexport const getComponentProps = <T extends DefineComponentOptions>(component: T) => {\n  return resolveProps(getComponentOptions(component)) as ExtractComponentProps<T>\n}\n"],"names":[],"mappings":"AAGA,SAAS,eAAgB,OAAY;AACnC,UAAQ,MAAM;AAAA,IACZ,KAAK,MAAM,QAAQ,KAAK;AACtB,aAAO,MAAM,OAAO,CAAC,KAA8B,UAAkB,EAAE,GAAG,KAAK,CAAC,IAAI,GAAG,SAAS,CAAE,CAAA;AAAA,IACpG,MAAK,OAAO,UAAU,YAAY,UAAU;AACnC,aAAA;AAAA,IACT;AACE,aAAO;EACX;AACF;AAEA,SAAS,WAAY,IAAyB,MAA2B,cAAc,SAAS;AAC9F,QAAM,EAAE,QAAQ,SAAS,eAAA,IAAmB;AAE1B,oBAAA,WAAW,IAAI,gBAAgB,WAAW;AAClD,YAAA,OAAO,QAAQ,CAAC,MAAW,WAAW,IAAI,GAAG,WAAW,CAAC;AAEnE,QAAM,QAAQ,eAAe,KAAK,WAAW,CAAC;AAE9C,aAAW,OAAO,OAAO;AACpB,OAAA,GAAG,IAAI,MAAM,GAAG;AAAA,EACrB;AACF;AAEA,SAAS,oBAAqB,WAAqD;AACjF,MAAI,UAAU,SAAS;AACrB,WAAO,UAAU;AAAA,EACnB;AAEI,MAAA,UAAU,aAAa,UAAU,KAAK;AACxC,WAAO,EAAE,GAAG,UAAU,WAAW,GAAG,UAAU,IAAI;AAAA,EACpD;AAEO,SAAA;AACT;AAEA,SAAS,aAAc,SAAc,cAAc,SAAS;AACpD,QAAA,SAAS,QAAQ,UAAU;AAC3B,QAAA,iBAAiB,QAAQ,WAAW;AAC1C,QAAM,SAA8B,CAAA;AAEzB,aAAA,QAAQ,gBAAgB,WAAW;AAE9C,WAAS,IAAI,GAAG,IAAI,OAAO,QAAQ,KAAK;AACtC,eAAW,QAAQ,OAAO,CAAC,GAAG,WAAW;AAAA,EAC3C;AAEA,SAAO,OAAO,QAAQ,eAAe,QAAQ,WAAW,CAAC,CAAC;AAEnD,SAAA;AACT;AAGa,MAAA,oBAAoB,CAAmC,cAAiB;AAC5E,SAAA,aAAa,oBAAoB,SAAS,CAAC;AACpD;"}