test/node_modules/@vuepress/plugin-medium-zoom/lib/client/config.js
2024-08-13 09:27:52 +08:00

26 lines
854 B
JavaScript

import { wait } from '@vuepress/helper/client';
import mediumZoom from 'medium-zoom';
import { defineClientConfig } from 'vuepress/client';
import { mediumZoomSymbol } from './composables/index.js';
import './styles/vars.css';
import './styles/medium-zoom.css';
const selector = __MZ_SELECTOR__;
const zoomOptions = __MZ_ZOOM_OPTIONS__;
const delay = __MZ_DELAY__;
export default defineClientConfig({
enhance({ app, router }) {
if (__VUEPRESS_SSR__ || !selector)
return;
// create zoom instance and provide it
const zoom = mediumZoom(zoomOptions);
zoom.refresh = (sel = selector) => {
zoom.detach();
zoom.attach(sel);
};
app.provide(mediumZoomSymbol, zoom);
router.afterEach(() => {
wait(delay).then(() => zoom.refresh());
});
},
});