{"version":3,"file":"propType.mjs","sources":["../../../../../packages/utils/vue/propType.ts"],"sourcesContent":["import type { VueNode } from '@antdv/types';\nimport type { App, Plugin, PropType } from 'vue';\n\n// https://stackoverflow.com/questions/46176165/ways-to-get-string-literal-type-of-array-values-without-enum-overhead\nexport const tuple = <T extends string[]>(...args: T) => args;\n\nexport const tupleNum = <T extends number[]>(...args: T) => args;\n\nexport function withInstall<T>(comp: T) {\n  const c = comp as any;\n  c.install = function (app: App) {\n    app.component(c.displayName || c.name, comp);\n  };\n\n  return comp as T & Plugin;\n}\n\nexport function eventType<T>() {\n  return { type: [Function, Array] as PropType<T | T[]> };\n}\n\nexport function objectType<T = {}>(defaultVal?: T) {\n  return { type: Object as PropType<T>, default: defaultVal as T };\n}\n\nexport function booleanType(defaultVal?: boolean) {\n  return { type: Boolean, default: defaultVal as boolean };\n}\n\nexport function functionType<T = () => {}>(defaultVal?: T) {\n  return { type: Function as PropType<T>, default: defaultVal as T };\n}\n\nexport function anyType<T = any>(defaultVal?: T, required?: boolean) {\n  const type = { validator: () => true, default: defaultVal as T } as unknown;\n  return required\n    ? (type as {\n        type: PropType<T>;\n        default: T;\n        required: true;\n      })\n    : (type as {\n        default: T;\n        type: PropType<T>;\n      });\n}\nexport function vNodeType<T = VueNode>() {\n  return { validator: () => true } as unknown as { type: PropType<T> };\n}\n\nexport function arrayType<T extends any[]>(defaultVal?: T) {\n  return { type: Array as unknown as PropType<T>, default: defaultVal as T };\n}\n\nexport function stringType<T extends string = string>(defaultVal?: T) {\n  return { type: String as unknown as PropType<T>, default: defaultVal as T };\n}\n\nexport function someType<T>(types?: any[], defaultVal?: T) {\n  return types ? { type: types as PropType<T>, default: defaultVal as T } : anyType<T>(defaultVal);\n}\n"],"names":[],"mappings":"AAIa,MAAA,KAAA,GAAQ,IAAwB,IAAY,KAAA,KAAA;AAE5C,MAAA,QAAA,GAAW,IAAwB,IAAY,KAAA,KAAA;AAErD,SAAS,YAAe,IAAS,EAAA;AACtC,EAAA,MAAM,CAAI,GAAA,IAAA,CAAA;AACV,EAAE,CAAA,CAAA,OAAA,GAAU,SAAU,GAAU,EAAA;AAC9B,IAAA,GAAA,CAAI,SAAU,CAAA,CAAA,CAAE,WAAe,IAAA,CAAA,CAAE,MAAM,IAAI,CAAA,CAAA;AAAA,GAC7C,CAAA;AAEA,EAAO,OAAA,IAAA,CAAA;AACT,CAAA;AAEO,SAAS,SAAe,GAAA;AAC7B,EAAA,OAAO,EAAE,IAAA,EAAM,CAAC,QAAA,EAAU,KAAK,CAAuB,EAAA,CAAA;AACxD,CAAA;AAEO,SAAS,WAAmB,UAAgB,EAAA;AACjD,EAAA,OAAO,EAAE,IAAA,EAAM,MAAuB,EAAA,OAAA,EAAS,UAAgB,EAAA,CAAA;AACjE,CAAA;AAEO,SAAS,YAAY,UAAsB,EAAA;AAChD,EAAA,OAAO,EAAE,IAAA,EAAM,OAAS,EAAA,OAAA,EAAS,UAAsB,EAAA,CAAA;AACzD,CAAA;AAEO,SAAS,aAA2B,UAAgB,EAAA;AACzD,EAAA,OAAO,EAAE,IAAA,EAAM,QAAyB,EAAA,OAAA,EAAS,UAAgB,EAAA,CAAA;AACnE,CAAA;AAEgB,SAAA,OAAA,CAAiB,YAAgB,QAAoB,EAAA;AACnE,EAAA,MAAM,OAAO,EAAE,SAAA,EAAW,MAAM,IAAA,EAAM,SAAS,UAAgB,EAAA,CAAA;AAC/D,EAAA,OAAO,WACF,IAKA,GAAA,IAAA,CAAA;AAIP,CAAA;AACO,SAAS,SAAyB,GAAA;AACvC,EAAO,OAAA,EAAE,SAAW,EAAA,MAAM,IAAK,EAAA,CAAA;AACjC,CAAA;AAEO,SAAS,UAA2B,UAAgB,EAAA;AACzD,EAAA,OAAO,EAAE,IAAA,EAAM,KAAiC,EAAA,OAAA,EAAS,UAAgB,EAAA,CAAA;AAC3E,CAAA;AAEO,SAAS,WAAsC,UAAgB,EAAA;AACpE,EAAA,OAAO,EAAE,IAAA,EAAM,MAAkC,EAAA,OAAA,EAAS,UAAgB,EAAA,CAAA;AAC5E,CAAA;AAEgB,SAAA,QAAA,CAAY,OAAe,UAAgB,EAAA;AACzD,EAAO,OAAA,KAAA,GAAQ,EAAE,IAAM,EAAA,KAAA,EAAsB,SAAS,UAAgB,EAAA,GAAI,QAAW,UAAU,CAAA,CAAA;AACjG;;;;"}