fa0cfba55c8a39681b25088070d391d1e81d51c9db41e9a20accf69a353ec3fc805cc32574085bd95e79e71d6e9ed03a857502a1546a6748744475fc5f9edf 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. import { defineComponent, toRef, unref, openBlock, createElementBlock, mergeProps, Fragment, renderList, renderSlot, createVNode, normalizeClass, createBlock, createCommentVNode, normalizeProps } from 'vue';
  2. import { skeletonProps } from './skeleton.mjs';
  3. import SkeletonItem from './skeleton-item2.mjs';
  4. import _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';
  5. import { useThrottleRender } from '../../../hooks/use-throttle-render/index.mjs';
  6. import { useNamespace } from '../../../hooks/use-namespace/index.mjs';
  7. const __default__ = defineComponent({
  8. name: "ElSkeleton"
  9. });
  10. const _sfc_main = /* @__PURE__ */ defineComponent({
  11. ...__default__,
  12. props: skeletonProps,
  13. setup(__props, { expose }) {
  14. const props = __props;
  15. const ns = useNamespace("skeleton");
  16. const uiLoading = useThrottleRender(toRef(props, "loading"), props.throttle);
  17. expose({
  18. uiLoading
  19. });
  20. return (_ctx, _cache) => {
  21. return unref(uiLoading) ? (openBlock(), createElementBlock("div", mergeProps({
  22. key: 0,
  23. class: [unref(ns).b(), unref(ns).is("animated", _ctx.animated)]
  24. }, _ctx.$attrs), [
  25. (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.count, (i) => {
  26. return openBlock(), createElementBlock(Fragment, { key: i }, [
  27. unref(uiLoading) ? renderSlot(_ctx.$slots, "template", { key: i }, () => [
  28. createVNode(SkeletonItem, {
  29. class: normalizeClass(unref(ns).is("first")),
  30. variant: "p"
  31. }, null, 8, ["class"]),
  32. (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.rows, (item) => {
  33. return openBlock(), createBlock(SkeletonItem, {
  34. key: item,
  35. class: normalizeClass([
  36. unref(ns).e("paragraph"),
  37. unref(ns).is("last", item === _ctx.rows && _ctx.rows > 1)
  38. ]),
  39. variant: "p"
  40. }, null, 8, ["class"]);
  41. }), 128))
  42. ]) : createCommentVNode("v-if", true)
  43. ], 64);
  44. }), 128))
  45. ], 16)) : renderSlot(_ctx.$slots, "default", normalizeProps(mergeProps({ key: 1 }, _ctx.$attrs)));
  46. };
  47. }
  48. });
  49. var Skeleton = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "skeleton.vue"]]);
  50. export { Skeleton as default };
  51. //# sourceMappingURL=skeleton2.mjs.map