Skeleton.js 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  3. Object.defineProperty(exports, "__esModule", {
  4. value: true
  5. });
  6. exports.skeletonProps = exports.default = void 0;
  7. var _vue = require("vue");
  8. var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
  9. var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
  10. var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
  11. var _classNames2 = _interopRequireDefault(require("../_util/classNames"));
  12. var _propsUtil = require("../_util/props-util");
  13. var _Title = _interopRequireDefault(require("./Title"));
  14. var _Paragraph = _interopRequireDefault(require("./Paragraph"));
  15. var _useConfigInject2 = _interopRequireDefault(require("../_util/hooks/useConfigInject"));
  16. var _Element = _interopRequireDefault(require("./Element"));
  17. var skeletonProps = function skeletonProps() {
  18. return {
  19. active: {
  20. type: Boolean,
  21. default: undefined
  22. },
  23. loading: {
  24. type: Boolean,
  25. default: undefined
  26. },
  27. prefixCls: String,
  28. avatar: {
  29. type: [Boolean, Object],
  30. default: undefined
  31. },
  32. title: {
  33. type: [Boolean, Object],
  34. default: undefined
  35. },
  36. paragraph: {
  37. type: [Boolean, Object],
  38. default: undefined
  39. },
  40. round: {
  41. type: Boolean,
  42. default: undefined
  43. }
  44. };
  45. };
  46. exports.skeletonProps = skeletonProps;
  47. function getComponentProps(prop) {
  48. if (prop && (0, _typeof2.default)(prop) === 'object') {
  49. return prop;
  50. }
  51. return {};
  52. }
  53. function getAvatarBasicProps(hasTitle, hasParagraph) {
  54. if (hasTitle && !hasParagraph) {
  55. // Square avatar
  56. return {
  57. size: 'large',
  58. shape: 'square'
  59. };
  60. }
  61. return {
  62. size: 'large',
  63. shape: 'circle'
  64. };
  65. }
  66. function getTitleBasicProps(hasAvatar, hasParagraph) {
  67. if (!hasAvatar && hasParagraph) {
  68. return {
  69. width: '38%'
  70. };
  71. }
  72. if (hasAvatar && hasParagraph) {
  73. return {
  74. width: '50%'
  75. };
  76. }
  77. return {};
  78. }
  79. function getParagraphBasicProps(hasAvatar, hasTitle) {
  80. var basicProps = {};
  81. // Width
  82. if (!hasAvatar || !hasTitle) {
  83. basicProps.width = '61%';
  84. }
  85. // Rows
  86. if (!hasAvatar && hasTitle) {
  87. basicProps.rows = 3;
  88. } else {
  89. basicProps.rows = 2;
  90. }
  91. return basicProps;
  92. }
  93. var Skeleton = (0, _vue.defineComponent)({
  94. compatConfig: {
  95. MODE: 3
  96. },
  97. name: 'ASkeleton',
  98. props: (0, _propsUtil.initDefaultProps)(skeletonProps(), {
  99. avatar: false,
  100. title: true,
  101. paragraph: true
  102. }),
  103. setup: function setup(props, _ref) {
  104. var slots = _ref.slots;
  105. var _useConfigInject = (0, _useConfigInject2.default)('skeleton', props),
  106. prefixCls = _useConfigInject.prefixCls,
  107. direction = _useConfigInject.direction;
  108. return function () {
  109. var _slots$default;
  110. var loading = props.loading,
  111. avatar = props.avatar,
  112. title = props.title,
  113. paragraph = props.paragraph,
  114. active = props.active,
  115. round = props.round;
  116. var pre = prefixCls.value;
  117. if (loading || props.loading === undefined) {
  118. var _classNames;
  119. var hasAvatar = !!avatar || avatar === '';
  120. var hasTitle = !!title || title === '';
  121. var hasParagraph = !!paragraph || paragraph === '';
  122. // Avatar
  123. var avatarNode;
  124. if (hasAvatar) {
  125. var avatarProps = (0, _objectSpread2.default)((0, _objectSpread2.default)({
  126. prefixCls: "".concat(pre, "-avatar")
  127. }, getAvatarBasicProps(hasTitle, hasParagraph)), getComponentProps(avatar));
  128. avatarNode = (0, _vue.createVNode)("div", {
  129. "class": "".concat(pre, "-header")
  130. }, [(0, _vue.createVNode)(_Element.default, avatarProps, null)]);
  131. }
  132. var contentNode;
  133. if (hasTitle || hasParagraph) {
  134. // Title
  135. var $title;
  136. if (hasTitle) {
  137. var titleProps = (0, _objectSpread2.default)((0, _objectSpread2.default)({
  138. prefixCls: "".concat(pre, "-title")
  139. }, getTitleBasicProps(hasAvatar, hasParagraph)), getComponentProps(title));
  140. $title = (0, _vue.createVNode)(_Title.default, titleProps, null);
  141. }
  142. // Paragraph
  143. var paragraphNode;
  144. if (hasParagraph) {
  145. var paragraphProps = (0, _objectSpread2.default)((0, _objectSpread2.default)({
  146. prefixCls: "".concat(pre, "-paragraph")
  147. }, getParagraphBasicProps(hasAvatar, hasTitle)), getComponentProps(paragraph));
  148. paragraphNode = (0, _vue.createVNode)(_Paragraph.default, paragraphProps, null);
  149. }
  150. contentNode = (0, _vue.createVNode)("div", {
  151. "class": "".concat(pre, "-content")
  152. }, [$title, paragraphNode]);
  153. }
  154. var cls = (0, _classNames2.default)(pre, (_classNames = {}, (0, _defineProperty2.default)(_classNames, "".concat(pre, "-with-avatar"), hasAvatar), (0, _defineProperty2.default)(_classNames, "".concat(pre, "-active"), active), (0, _defineProperty2.default)(_classNames, "".concat(pre, "-rtl"), direction.value === 'rtl'), (0, _defineProperty2.default)(_classNames, "".concat(pre, "-round"), round), _classNames));
  155. return (0, _vue.createVNode)("div", {
  156. "class": cls
  157. }, [avatarNode, contentNode]);
  158. }
  159. return (_slots$default = slots.default) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots);
  160. };
  161. }
  162. });
  163. var _default = Skeleton;
  164. exports.default = _default;