index.js 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  3. exports.__esModule = true;
  4. exports["default"] = void 0;
  5. var _babelHelperVueJsxMergeProps = _interopRequireDefault(require("@vue/babel-helper-vue-jsx-merge-props"));
  6. var _utils = require("../utils");
  7. var _functional = require("../utils/functional");
  8. var _use = (0, _utils.use)('loading'),
  9. sfc = _use[0],
  10. bem = _use[1];
  11. var DEFAULT_COLOR = '#c9c9c9';
  12. function Loading(h, props, slots, ctx) {
  13. var color = props.color,
  14. size = props.size,
  15. type = props.type;
  16. var colorType = color === 'white' || color === 'black' ? color : '';
  17. var style = {
  18. color: color === 'black' ? DEFAULT_COLOR : color,
  19. width: size,
  20. height: size
  21. };
  22. var Spin = [];
  23. if (type === 'spinner') {
  24. for (var i = 0; i < 12; i++) {
  25. Spin.push(h("i"));
  26. }
  27. }
  28. var Circular = type === 'circular' && h("svg", {
  29. "class": bem('circular'),
  30. "attrs": {
  31. "viewBox": "25 25 50 50"
  32. }
  33. }, [h("circle", {
  34. "attrs": {
  35. "cx": "50",
  36. "cy": "50",
  37. "r": "20",
  38. "fill": "none"
  39. }
  40. })]);
  41. return h("div", (0, _babelHelperVueJsxMergeProps["default"])([{
  42. "class": bem([type, colorType]),
  43. "style": style
  44. }, (0, _functional.inherit)(ctx, true)]), [h("span", {
  45. "class": bem('spinner', type)
  46. }, [Spin, Circular])]);
  47. }
  48. Loading.props = {
  49. size: String,
  50. type: {
  51. type: String,
  52. "default": 'circular'
  53. },
  54. color: {
  55. type: String,
  56. "default": DEFAULT_COLOR
  57. }
  58. };
  59. var _default = sfc(Loading);
  60. exports["default"] = _default;