UNPKG

@varlet/ui

Version:

A Vue3 component library based on Material Design 2 and 3, supporting mobile and desktop.

88 lines (87 loc) 3.22 kB
var __defProp = Object.defineProperty; var __defProps = Object.defineProperties; var __getOwnPropDescs = Object.getOwnPropertyDescriptors; var __getOwnPropSymbols = Object.getOwnPropertySymbols; var __hasOwnProp = Object.prototype.hasOwnProperty; var __propIsEnum = Object.prototype.propertyIsEnumerable; var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; var __spreadValues = (a, b) => { for (var prop in b || (b = {})) if (__hasOwnProp.call(b, prop)) __defNormalProp(a, prop, b[prop]); if (__getOwnPropSymbols) for (var prop of __getOwnPropSymbols(b)) { if (__propIsEnum.call(b, prop)) __defNormalProp(a, prop, b[prop]); } return a; }; var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b)); import { nextTick, reactive } from "vue"; import { call, inBrowser, isArray, isString } from "@varlet/shared"; import { mountInstance, withInstall, withPropsDefaultsSetter } from "../utils/components.mjs"; import VarImagePreview from "./ImagePreview.mjs"; import { props as imagePreviewProps } from "./props.mjs"; let singletonOptions; let defaultOptions = {}; function normalizeOptions(options = {}) { if (isString(options)) { return __spreadProps(__spreadValues({}, defaultOptions), { images: [options] }); } if (isArray(options)) { return __spreadProps(__spreadValues({}, defaultOptions), { images: options }); } return __spreadValues(__spreadValues({}, defaultOptions), options); } function ImagePreview(options) { if (!inBrowser()) { return; } ImagePreview.close(); const imagePreviewOptions = normalizeOptions(options); const reactiveImagePreviewOptions = reactive(imagePreviewOptions); reactiveImagePreviewOptions.teleport = "body"; singletonOptions = reactiveImagePreviewOptions; const { unmountInstance } = mountInstance(VarImagePreview, reactiveImagePreviewOptions, { onClose: () => call(reactiveImagePreviewOptions.onClose), onClosed: () => { call(reactiveImagePreviewOptions.onClosed); unmountInstance(); singletonOptions === reactiveImagePreviewOptions && (singletonOptions = null); }, onRouteChange: () => { unmountInstance(); singletonOptions === reactiveImagePreviewOptions && (singletonOptions = null); }, "onUpdate:show": (value) => { reactiveImagePreviewOptions.show = value; } }); reactiveImagePreviewOptions.show = true; } ImagePreview.close = () => { if (singletonOptions != null) { const prevSingletonOptions = singletonOptions; singletonOptions = null; nextTick().then(() => { prevSingletonOptions.show = false; }); } }; ImagePreview.setDefaultOptions = (options) => { defaultOptions = options; }; ImagePreview.resetDefaultOptions = () => { defaultOptions = {}; }; ImagePreview.Component = VarImagePreview; withInstall(VarImagePreview); withInstall(VarImagePreview, ImagePreview); withPropsDefaultsSetter(ImagePreview, imagePreviewProps); const _ImagePreviewComponent = VarImagePreview; var stdin_default = ImagePreview; export { _ImagePreviewComponent, stdin_default as default, imagePreviewProps };