'use strict'; var chunkB35DANTX_cjs = require('./chunk-B35DANTX.cjs'); var vue = require('vue'); function disposeWithScope(dispose) { if (vue.getCurrentScope()) vue.onScopeDispose(dispose); } function useWindowManager(options) { const wm = chunkB35DANTX_cjs.createWindowManager(options); disposeWithScope(() => wm.destroy()); return wm; } function useWmState(wm) { const state = vue.shallowRef(wm.getState()); disposeWithScope( wm.subscribe((next) => { state.value = next; }) ); return state; } function useWmWindow(wm, id) { const state = useWmState(wm); return vue.computed(() => state.value.windows[vue.toValue(id)]); } function useDesktop(wm, target, options) { const binder = chunkB35DANTX_cjs.createDesktopBinder(wm, options); vue.watch( target, (element, _previous, onCleanup) => { if (element) onCleanup(binder.bindDesktop(element)); }, { immediate: true, flush: "post" } ); return binder; } function useWmWindowEl(binder, id, target, options) { vue.watch( [target, () => vue.toValue(id)], ([element, windowId], _previous, onCleanup) => { if (element && windowId) onCleanup(binder.bindWindow(windowId, element, options)); }, { immediate: true, flush: "post" } ); } exports.useDesktop = useDesktop; exports.useWindowManager = useWindowManager; exports.useWmState = useWmState; exports.useWmWindow = useWmWindow; exports.useWmWindowEl = useWmWindowEl; //# sourceMappingURL=vue.cjs.map //# sourceMappingURL=vue.cjs.map