UNPKG

ant-design-x-vue-next

Version:

Ant Design X for Vue — community continuation aligned with @ant-design/x

126 lines (125 loc) 4.49 kB
import { defineComponent as M, useSlots as V, computed as N, createVNode as t, Fragment as D } from "vue"; import { Spin as G, Empty as $, Typography as j } from "ant-design-vue"; import { b as p } from "../chunks/module-chunk.mjs"; import k from "../_util/hooks/use-x-component-config.mjs"; import q from "../locale/useLocale.mjs"; import "../x-provider/index.mjs"; import z from "./style/index.mjs"; import H from "../x-provider/hooks/use-x-provider-context.mjs"; const ee = /* @__PURE__ */ M({ name: "AXFolderFilePreview", __name: "FilePreview", props: { prefixCls: null, style: null, classNames: null, styles: null, selectedFile: { default: () => [] }, previewRender: { type: Function }, fileContent: { default: "" }, loading: { type: Boolean, default: !1 }, previewTitle: { type: [Boolean, Function] }, getFileNode: { type: Function }, emptyRender: { type: Boolean } }, setup(h) { const e = h, n = V(), [P] = q("Folder"), { getPrefixCls: E } = H(), d = N(() => E("folder", e.prefixCls)), _ = k("folder"), [, S, L] = z(d), s = N(() => `${d.value}-preview`), B = (i = "") => { const r = i.split("."); return r[r.length - 1] || ""; }, I = (i) => i.toLowerCase() || "txt", X = (i, r) => t("pre", { "data-language": r }, [t("code", null, [i.replace(/\n$/, "")])]); return () => { var r, y, w; const i = () => { var g, F, C, R, T, x; if (e.loading) return t("div", { class: p(`${s.value}-loading-container`, (g = e.classNames) == null ? void 0 : g.previewRender) }, [t(G, null, null)]); if (!e.selectedFile || e.selectedFile.length === 0) { if (e.emptyRender === !1 || e.emptyRender === null) return n.empty ? t("div", { class: p(`${s.value}-empty-container`, (F = e.classNames) == null ? void 0 : F.previewRender) }, [n.empty()]) : null; const A = n.empty ? n.empty() : typeof e.emptyRender == "function" ? e.emptyRender() : e.emptyRender || t($, { image: $.PRESENTED_IMAGE_SIMPLE, description: P.value.selectFile }, null); return t("div", { class: p(`${s.value}-empty-container`, (C = e.classNames) == null ? void 0 : C.previewRender) }, [A]); } const l = (R = e.getFileNode) == null ? void 0 : R.call(e, e.selectedFile), v = (l == null ? void 0 : l.title) || e.selectedFile[e.selectedFile.length - 1], u = e.selectedFile, b = e.selectedFile[e.selectedFile.length - 1], m = I(B(b)), o = e.fileContent || ""; let a; e.previewTitle === !1 || e.previewTitle === null ? a = null : n.previewTitle ? a = n.previewTitle({ title: v, path: u, content: o }) : e.previewTitle ? a = typeof e.previewTitle == "function" ? e.previewTitle({ title: v, path: u, content: o }) : e.previewTitle : a = t("div", { class: `${s.value}-title` }, [t("span", { class: `${s.value}-filename` }, [v]), t("span", { class: `${s.value}-copy` }, [t(j.Text, { copyable: { text: o } }, null)])]); const f = X(o, m); let c; return n.preview ? c = n.preview({ content: o, path: u, title: l == null ? void 0 : l.title, language: m, originNode: f }) : e.previewRender ? typeof e.previewRender == "function" ? c = e.previewRender({ content: o, path: u, title: l == null ? void 0 : l.title, language: m }, { originNode: f }) : c = e.previewRender : c = f, t(D, null, [a ? t("div", { class: p(`${s.value}-title-wrapper`, (T = e.classNames) == null ? void 0 : T.previewTitle) }, [a]) : null, t("div", { class: p(`${s.value}-content`, (x = e.classNames) == null ? void 0 : x.previewRender) }, [c])]); }; return t("div", { class: p(`${d.value}-preview`, (r = e.classNames) == null ? void 0 : r.filePreview, S.value, L), style: { ...(y = _.value.styles) == null ? void 0 : y.filePreview, ...(w = e.styles) == null ? void 0 : w.filePreview, ...e.style } }, [i()]); }; } }); export { ee as default };