import { Card, Image } from "./components/index.js"; import { md5 } from "../previews/page-previews/components/index.js"; const ImageShortcode = { label: "Bild", openTag: "{{< ", closeTag: " >}}", separator: " ", toProps: (args) => { if (args.length > 0) { return { src: args .find((arg) => arg.startsWith("src=")) ?.split("=")[1] .replaceAll('"', "") ?? "", }; } return { src: "" }; }, toArgs: ({ src }) => { return [`src=\"${src}\"`]; }, control: ({ src, onChange, controlProps }) => { const { collection, field, entry } = controlProps; const handleChange = ({ path }) => { onChange({ src: path }); }; const handleOpenMediaLibrary = useMediaInsert( src, { collection, field }, handleChange ); const assetSource = useMediaAsset(src, collection, field, entry); return Card( Image({ label: "Bild", assetSource, handleOpenMediaLibrary, }) ); }, preview: ({ src }) => { return h( "div", { className: "col-lg-3 col-md-4 col-sm-6" }, h( "a", { className: "vb-gallery", "data-gall": md5(src) }, h("img", { className: "img-thumbnail w-100 h-100", style: { objectFit: "cover" }, src, }) ) ); }, }; export default ImageShortcode;