{"version":3,"file":"initDefaultProps.cjs","sources":["../../../../../packages/utils/vue/initDefaultProps.ts"],"sourcesContent":["import type { PropType } from 'vue';\nimport type { VueTypeDef, VueTypeValidableDef } from 'vue-types';\n\nexport function initDefaultProps<T>(types: T, defaultProps: {\n  [K in keyof T]?: T[K] extends VueTypeValidableDef<infer U>\n    ? U\n    : T[K] extends VueTypeDef<infer U>\n      ? U\n      : T[K] extends { type: PropType<infer U> }\n        ? U\n        : any;\n}): T {\n  const propTypes: T = { ...types };\n  Object.keys(defaultProps).forEach((k) => {\n    const prop = propTypes[k] as VueTypeValidableDef;\n    if (prop) {\n      if (prop.type || prop.default)\n        prop.default = defaultProps[k];\n      else if (prop.def)\n        prop.def(defaultProps[k]);\n      else\n        propTypes[k] = { type: prop, default: defaultProps[k] };\n    } else {\n      throw new Error(`not have ${k} prop`);\n    }\n  });\n  return propTypes;\n}\n"],"names":[],"mappings":";;AAGgB,SAAA,gBAAA,CAAoB,OAAU,YAQxC,EAAA;AACJ,EAAM,MAAA,SAAA,GAAe,EAAE,GAAG,KAAM,EAAA,CAAA;AAChC,EAAA,MAAA,CAAO,IAAK,CAAA,YAAY,CAAE,CAAA,OAAA,CAAQ,CAAC,CAAM,KAAA;AACvC,IAAM,MAAA,IAAA,GAAO,UAAU,CAAC,CAAA,CAAA;AACxB,IAAA,IAAI,IAAM,EAAA;AACR,MAAI,IAAA,IAAA,CAAK,QAAQ,IAAK,CAAA,OAAA;AACpB,QAAK,IAAA,CAAA,OAAA,GAAU,aAAa,CAAC,CAAA,CAAA;AAAA,WAAA,IACtB,IAAK,CAAA,GAAA;AACZ,QAAK,IAAA,CAAA,GAAA,CAAI,YAAa,CAAA,CAAC,CAAC,CAAA,CAAA;AAAA;AAExB,QAAU,SAAA,CAAA,CAAC,IAAI,EAAE,IAAA,EAAM,MAAM,OAAS,EAAA,YAAA,CAAa,CAAC,CAAE,EAAA,CAAA;AAAA,KACnD,MAAA;AACL,MAAA,MAAM,IAAI,KAAA,CAAM,CAAY,SAAA,EAAA,CAAC,CAAO,KAAA,CAAA,CAAA,CAAA;AAAA,KACtC;AAAA,GACD,CAAA,CAAA;AACD,EAAO,OAAA,SAAA,CAAA;AACT;;;;"}