| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 | import { mergeProps as _mergeProps, createVNode as _createVNode } from "vue";import { defineComponent } from "vue";import { addUnit, truthProp, numericProp, getSizeStyle, makeStringProp, makeNumericProp, createNamespace } from "../utils/index.mjs";const [name, bem] = createNamespace("skeleton");const DEFAULT_ROW_WIDTH = "100%";const DEFAULT_LAST_ROW_WIDTH = "60%";const skeletonProps = {  row: makeNumericProp(0),  title: Boolean,  round: Boolean,  avatar: Boolean,  loading: truthProp,  animate: truthProp,  avatarSize: numericProp,  titleWidth: numericProp,  avatarShape: makeStringProp("round"),  rowWidth: {    type: [Number, String, Array],    default: DEFAULT_ROW_WIDTH  }};var stdin_default = defineComponent({  name,  inheritAttrs: false,  props: skeletonProps,  setup(props, {    slots,    attrs  }) {    const renderAvatar = () => {      if (props.avatar) {        return _createVNode("div", {          "class": bem("avatar", props.avatarShape),          "style": getSizeStyle(props.avatarSize)        }, null);      }    };    const renderTitle = () => {      if (props.title) {        return _createVNode("h3", {          "class": bem("title"),          "style": {            width: addUnit(props.titleWidth)          }        }, null);      }    };    const getRowWidth = (index) => {      const {        rowWidth      } = props;      if (rowWidth === DEFAULT_ROW_WIDTH && index === +props.row - 1) {        return DEFAULT_LAST_ROW_WIDTH;      }      if (Array.isArray(rowWidth)) {        return rowWidth[index];      }      return rowWidth;    };    const renderRows = () => Array(+props.row).fill("").map((_, i) => _createVNode("div", {      "class": bem("row"),      "style": {        width: addUnit(getRowWidth(i))      }    }, null));    return () => {      var _a;      if (!props.loading) {        return (_a = slots.default) == null ? void 0 : _a.call(slots);      }      return _createVNode("div", _mergeProps({        "class": bem({          animate: props.animate,          round: props.round        })      }, attrs), [renderAvatar(), _createVNode("div", {        "class": bem("content")      }, [renderTitle(), renderRows()])]);    };  }});export {  stdin_default as default};
 |