{"version":3,"file":"loading.mjs","sources":["../../../../../../packages/components/loading/src/loading.ts"],"sourcesContent":["import {\n  buildProps,\n  definePropType,\n  isNumber,\n  isStringNumber,\n} from '@vuesax-alpha/utils'\n\nimport { useColorProp } from '@vuesax-alpha/hooks'\nimport type { MaybeRef } from '@vuesax-alpha/utils'\nimport type { ExtractPropTypes } from 'vue'\nimport type Loading from './loading.vue'\n\nexport const loadingTypes = [\n  'atom',\n  'ball',\n  'scale',\n  'waves',\n  'border',\n  'points',\n  'square',\n  'circles',\n  'corners',\n  'default',\n  'gradient',\n  'rectangle',\n  'square-rotate',\n] as const\n\nexport type LoadingType = (typeof loadingTypes)[number]\n\nexport const loadingProps = buildProps({\n  type: {\n    type: definePropType<LoadingType>(String),\n    values: loadingTypes,\n    default: 'default',\n  },\n  text: { type: String },\n  scale: {\n    type: definePropType<string | number>([String, Number]),\n    validator: (scale: string | number) =>\n      isNumber(scale) || isStringNumber(scale),\n    default: 1,\n  },\n  color: useColorProp,\n  target: {\n    type: definePropType<string | HTMLElement>([String, Object]),\n  },\n  opacity: {\n    type: definePropType<string | number>([String, Number]),\n    validator: (scale: string | number) =>\n      isNumber(scale) || isStringNumber(scale),\n    default: 0.6,\n  },\n  percent: {\n    type: definePropType<string | number>([String, Number]),\n    validator: (scale: string | number) =>\n      isNumber(scale) || isStringNumber(scale),\n  },\n  progress: {\n    type: definePropType<string | number>([String, Number]),\n    validator: (progress: string | number) =>\n      isNumber(progress) || isStringNumber(progress),\n  },\n  background: useColorProp,\n})\n\nexport type LoadingProps = ExtractPropTypes<typeof loadingProps>\nexport type LoadingInstance = InstanceType<typeof Loading>\n\nexport type LoadingParams = Partial<LoadingProps & { visible: boolean }>\nexport type LoadingParamsRef = {\n  [P in keyof LoadingParams]?: MaybeRef<LoadingParams[P]>\n}\n\nexport interface LoadingHandle {\n  close: () => void\n  setText: (text: string) => void\n  setProgress: (progress: number) => void\n  setPercent: (percent: number) => void\n}\n\nexport type LoadingFn = (options?: LoadingParamsRef) => LoadingHandle\n"],"names":[],"mappings":";;;;;;AAYO,MAAM,YAAe,GAAA;AAAA,EAC1B,MAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA;AAAA,EACA,OAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,WAAA;AAAA,EACA,eAAA;AACF,EAAA;AAIO,MAAM,eAAe,UAAW,CAAA;AAAA,EACrC,IAAM,EAAA;AAAA,IACJ,IAAA,EAAM,eAA4B,MAAM,CAAA;AAAA,IACxC,MAAQ,EAAA,YAAA;AAAA,IACR,OAAS,EAAA,SAAA;AAAA,GACX;AAAA,EACA,IAAA,EAAM,EAAE,IAAA,EAAM,MAAO,EAAA;AAAA,EACrB,KAAO,EAAA;AAAA,IACL,IAAM,EAAA,cAAA,CAAgC,CAAC,MAAA,EAAQ,MAAM,CAAC,CAAA;AAAA,IACtD,WAAW,CAAC,KAAA,KACV,SAAS,KAAK,CAAA,IAAK,eAAe,KAAK,CAAA;AAAA,IACzC,OAAS,EAAA,CAAA;AAAA,GACX;AAAA,EACA,KAAO,EAAA,YAAA;AAAA,EACP,MAAQ,EAAA;AAAA,IACN,IAAM,EAAA,cAAA,CAAqC,CAAC,MAAA,EAAQ,MAAM,CAAC,CAAA;AAAA,GAC7D;AAAA,EACA,OAAS,EAAA;AAAA,IACP,IAAM,EAAA,cAAA,CAAgC,CAAC,MAAA,EAAQ,MAAM,CAAC,CAAA;AAAA,IACtD,WAAW,CAAC,KAAA,KACV,SAAS,KAAK,CAAA,IAAK,eAAe,KAAK,CAAA;AAAA,IACzC,OAAS,EAAA,GAAA;AAAA,GACX;AAAA,EACA,OAAS,EAAA;AAAA,IACP,IAAM,EAAA,cAAA,CAAgC,CAAC,MAAA,EAAQ,MAAM,CAAC,CAAA;AAAA,IACtD,WAAW,CAAC,KAAA,KACV,SAAS,KAAK,CAAA,IAAK,eAAe,KAAK,CAAA;AAAA,GAC3C;AAAA,EACA,QAAU,EAAA;AAAA,IACR,IAAM,EAAA,cAAA,CAAgC,CAAC,MAAA,EAAQ,MAAM,CAAC,CAAA;AAAA,IACtD,WAAW,CAAC,QAAA,KACV,SAAS,QAAQ,CAAA,IAAK,eAAe,QAAQ,CAAA;AAAA,GACjD;AAAA,EACA,UAAY,EAAA,YAAA;AACd,CAAC;;;;"}