winbox-ui-next
Version:
We Design Vue 2.0: A Vue.js 3 UI Library
40 lines (39 loc) • 1.22 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports[Symbol.toStringTag] = "Module";
var vue = require("vue");
var vooks = require("vooks");
var evtd = require("evtd");
const teleportDisabled = "__disabled__";
function useAdjustedTo(props) {
const fullscreenElementRef = vue.ref();
if (typeof document !== "undefined") {
fullscreenElementRef.value = document.fullscreenElement;
const handleFullscreenChange = () => {
fullscreenElementRef.value = document.fullscreenElement;
};
vue.onMounted(() => {
evtd.on("fullscreenchange", document, handleFullscreenChange);
});
vue.onBeforeUnmount(() => {
evtd.off("fullscreenchange", document, handleFullscreenChange);
});
}
return vooks.useMemo(() => {
const { to } = props;
if (to !== void 0) {
if (to === false)
return teleportDisabled;
if (to === true)
return fullscreenElementRef.value || "body";
return to;
}
return to != null ? to : fullscreenElementRef.value || "body";
});
}
useAdjustedTo.tdkey = teleportDisabled;
useAdjustedTo.propTo = {
type: [String, Object, Boolean],
default: void 0
};
exports.useAdjustedTo = useAdjustedTo;