Element.js 982 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. import { createVNode as _createVNode } from "vue";
  2. import classNames from '../_util/classNames';
  3. export const skeletonElementProps = () => ({
  4. prefixCls: String,
  5. size: [String, Number],
  6. shape: String,
  7. active: {
  8. type: Boolean,
  9. default: undefined
  10. }
  11. });
  12. const Element = props => {
  13. const {
  14. prefixCls,
  15. size,
  16. shape
  17. } = props;
  18. const sizeCls = classNames({
  19. [`${prefixCls}-lg`]: size === 'large',
  20. [`${prefixCls}-sm`]: size === 'small'
  21. });
  22. const shapeCls = classNames({
  23. [`${prefixCls}-circle`]: shape === 'circle',
  24. [`${prefixCls}-square`]: shape === 'square',
  25. [`${prefixCls}-round`]: shape === 'round'
  26. });
  27. const sizeStyle = typeof size === 'number' ? {
  28. width: `${size}px`,
  29. height: `${size}px`,
  30. lineHeight: `${size}px`
  31. } : {};
  32. return _createVNode("span", {
  33. "class": classNames(prefixCls, sizeCls, shapeCls),
  34. "style": sizeStyle
  35. }, null);
  36. };
  37. Element.displayName = 'SkeletonElement';
  38. export default Element;