UNPKG

comic-plus

Version:

<p align="center"> <img width="200px" src="./logo.png"/> </p>

81 lines (80 loc) 2.43 kB
import { defineComponent, ref, openBlock, createElementBlock, normalizeStyle, createElementVNode, renderSlot, createVNode, unref, createCommentVNode } from "vue"; import "../style/image.css"; import { preview } from "../../preview-image/index.mjs"; import { imageProps, imageEmits } from "./main.props.mjs"; import "../../../icons/index.mjs"; import { Picture, ErrorPicture } from "../../../icons/components/components.mjs"; const _hoisted_1 = ["src", "alt", "loading"]; const _hoisted_2 = { key: 0, class: "cu-image__loading" }; const _hoisted_3 = { key: 1, class: "cu-image__error" }; const _sfc_main = /* @__PURE__ */ defineComponent({ ...{ name: "CuImage" }, __name: "main", props: imageProps, emits: imageEmits, setup(__props, { emit: __emit }) { const props = __props; const emit = __emit; const loadType = ref("load"); function loaded() { loadType.value = "loaded"; emit("load"); } function error() { loadType.value = "error"; emit("error"); } function handleClick() { if (props.previewList) { preview(props.previewList, props.current); } } return (_ctx, _cache) => { return openBlock(), createElementBlock("span", { class: "cu-image", style: normalizeStyle({ cursor: _ctx.previewList ? "pointer" : "default" }), onClick: handleClick }, [ createElementVNode("img", { src: _ctx.src, alt: _ctx.alt, width: "100%", height: "100%", onLoad: loaded, onError: error, loading: _ctx.loading, style: normalizeStyle({ "object-fit": props.fit }) }, null, 44, _hoisted_1), loadType.value === "load" ? (openBlock(), createElementBlock("div", _hoisted_2, [ renderSlot(_ctx.$slots, "load", {}, () => [ createVNode(unref(Picture), { class: "empty", size: "1.5rem" }) ]) ])) : createCommentVNode("", true), loadType.value === "error" ? (openBlock(), createElementBlock("div", _hoisted_3, [ renderSlot(_ctx.$slots, "error", {}, () => [ createVNode(unref(ErrorPicture), { class: "empty", size: "1.5rem" }) ]) ])) : createCommentVNode("", true) ], 4); }; } }); export { _sfc_main as default };