import { use } from '../utils'; import { inherit } from '../utils/functional'; // Types import { CreateElement, RenderContext } from 'vue/types'; import { DefaultSlots } from '../utils/use/sfc'; export type LoadingProps = { size?: string; type: string; color: string; }; const [sfc, bem] = use('loading'); const DEFAULT_COLOR = '#c9c9c9'; function Loading( h: CreateElement, props: LoadingProps, slots: DefaultSlots, ctx: RenderContext ) { const { color, size, type } = props; const style = { color, width: size, height: size }; const Spin = []; if (type === 'spinner') { for (let i = 0; i < 12; i++) { Spin.push(); } } const Circular = type === 'circular' && ( ); return (
{Spin} {Circular} {slots.default && {slots.default()}}
); } Loading.props = { size: String, type: { type: String, default: 'circular' }, color: { type: String, default: DEFAULT_COLOR } }; export default sfc(Loading);