UNPKG

4.3 kBJavaScriptView Raw
1var __create = Object.create;
2var __defProp = Object.defineProperty;
3var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4var __getOwnPropNames = Object.getOwnPropertyNames;
5var __getProtoOf = Object.getPrototypeOf;
6var __hasOwnProp = Object.prototype.hasOwnProperty;
7var __export = (target, all) => {
8 for (var name2 in all)
9 __defProp(target, name2, { get: all[name2], enumerable: true });
10};
11var __copyProps = (to, from, except, desc) => {
12 if (from && typeof from === "object" || typeof from === "function") {
13 for (let key of __getOwnPropNames(from))
14 if (!__hasOwnProp.call(to, key) && key !== except)
15 __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16 }
17 return to;
18};
19var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20 // If the importer is in node compatibility mode or this is not an ESM
21 // file that has been converted to a CommonJS file using a Babel-
22 // compatible transform (i.e. "__esModule" has not been set), then set
23 // "default" to the CommonJS "module.exports" for node compatibility.
24 isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25 mod
26));
27var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28var stdin_exports = {};
29__export(stdin_exports, {
30 default: () => stdin_default,
31 skeletonProps: () => skeletonProps
32});
33module.exports = __toCommonJS(stdin_exports);
34var import_vue = require("vue");
35var import_utils = require("../utils");
36var import_skeleton_title = __toESM(require("../skeleton-title"));
37var import_skeleton_avatar = __toESM(require("../skeleton-avatar"));
38var import_skeleton_paragraph = __toESM(require("../skeleton-paragraph"));
39const [name, bem] = (0, import_utils.createNamespace)("skeleton");
40const DEFAULT_LAST_ROW_WIDTH = "60%";
41const skeletonProps = {
42 row: (0, import_utils.makeNumericProp)(0),
43 round: Boolean,
44 title: Boolean,
45 titleWidth: import_utils.numericProp,
46 avatar: Boolean,
47 avatarSize: import_utils.numericProp,
48 avatarShape: (0, import_utils.makeStringProp)("round"),
49 loading: import_utils.truthProp,
50 animate: import_utils.truthProp,
51 rowWidth: {
52 type: [Number, String, Array],
53 default: import_skeleton_paragraph.DEFAULT_ROW_WIDTH
54 }
55};
56var stdin_default = (0, import_vue.defineComponent)({
57 name,
58 inheritAttrs: false,
59 props: skeletonProps,
60 setup(props, {
61 slots,
62 attrs
63 }) {
64 const renderAvatar = () => {
65 if (props.avatar) {
66 return (0, import_vue.createVNode)(import_skeleton_avatar.default, {
67 "avatarShape": props.avatarShape,
68 "avatarSize": props.avatarSize
69 }, null);
70 }
71 };
72 const renderTitle = () => {
73 if (props.title) {
74 return (0, import_vue.createVNode)(import_skeleton_title.default, {
75 "round": props.round,
76 "titleWidth": props.titleWidth
77 }, null);
78 }
79 };
80 const getRowWidth = (index) => {
81 const {
82 rowWidth
83 } = props;
84 if (rowWidth === import_skeleton_paragraph.DEFAULT_ROW_WIDTH && index === +props.row - 1) {
85 return DEFAULT_LAST_ROW_WIDTH;
86 }
87 if (Array.isArray(rowWidth)) {
88 return rowWidth[index];
89 }
90 return rowWidth;
91 };
92 const renderRows = () => Array(+props.row).fill("").map((_, i) => (0, import_vue.createVNode)(import_skeleton_paragraph.default, {
93 "key": i,
94 "round": props.round,
95 "rowWidth": (0, import_utils.addUnit)(getRowWidth(i))
96 }, null));
97 const renderContents = () => {
98 if (slots.template) {
99 return slots.template();
100 }
101 return (0, import_vue.createVNode)(import_vue.Fragment, null, [renderAvatar(), (0, import_vue.createVNode)("div", {
102 "class": bem("content")
103 }, [renderTitle(), renderRows()])]);
104 };
105 return () => {
106 var _a;
107 if (!props.loading) {
108 return (_a = slots.default) == null ? void 0 : _a.call(slots);
109 }
110 return (0, import_vue.createVNode)("div", (0, import_vue.mergeProps)({
111 "class": bem({
112 animate: props.animate,
113 round: props.round
114 })
115 }, attrs), [renderContents()]);
116 };
117 }
118});