maz-ui
Version:
A standalone components library for Vue.Js 3 & Nuxt.Js 3
39 lines (38 loc) • 1.73 kB
JavaScript
import { defineComponent, onMounted, onUnmounted, createBlock, openBlock, Teleport, createElementVNode, mergeProps, createVNode, createElementBlock, createCommentVNode, renderSlot } from "vue";
import MazSpinner from "./MazSpinner.js";
import { _ as _export_sfc } from "../chunks/_plugin-vue_export-helper.B--vMWp3.js";
import '../assets/MazFullscreenLoader.W0InbLUf.css';const _hoisted_1 = { key: 0 }, _sfc_main = /* @__PURE__ */ defineComponent({
inheritAttrs: !1,
__name: "MazFullscreenLoader",
props: {
color: { default: "primary" },
size: { default: "3em" },
teleportSelector: { default: "body" }
},
setup(__props) {
function addClassToDocument() {
document.documentElement.classList.add("--maz-fullscreen-loader-present");
}
function removeClassFromDocument() {
document.documentElement.classList.remove("--maz-fullscreen-loader-present");
}
return onMounted(() => {
addClassToDocument();
}), onUnmounted(() => {
removeClassFromDocument();
}), (_ctx, _cache) => (openBlock(), createBlock(Teleport, { to: __props.teleportSelector }, [
createElementVNode("div", mergeProps({ class: "m-fullscreen-loader m-reset-css" }, _ctx.$attrs), [
createVNode(MazSpinner, {
color: __props.color,
size: __props.size
}, null, 8, ["color", "size"]),
_ctx.$slots.default ? (openBlock(), createElementBlock("span", _hoisted_1, [
renderSlot(_ctx.$slots, "default", {}, void 0, !0)
])) : createCommentVNode("", !0)
], 16)
], 8, ["to"]));
}
}), MazFullscreenLoader = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-205ca873"]]);
export {
MazFullscreenLoader as default
};