import { computed } from 'vue'; import { createNamespace, addUnit } from '../utils'; const [createComponent, bem] = createNamespace('loading'); export default createComponent({ props: { size: [Number, String], color: String, vertical: Boolean, textSize: [Number, String], type: { type: String, default: 'circular', }, }, setup(props, { slots }) { const SpinIcon = []; for (let i = 0; i < 12; i++) { SpinIcon.push(); } const CircularIcon = ( ); const renderText = () => { if (slots.default) { return ( {slots.default()} ); } }; const spinnerStyle = computed(() => { const style = { color: props.color, }; if (props.size) { const size = addUnit(props.size); style.width = size; style.height = size; } return style; }); return () => { const { type, vertical } = props; return (
{type === 'spinner' ? SpinIcon : CircularIcon} {renderText()}
); }; }, });