element-plus
Version:
A Component Library for Vue 3
54 lines (49 loc) • 1.71 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var index = require('./index.js');
const INSTANCE_NAME = "ElLoading";
const createInstance = (el, binding) => {
const textExr = el.getAttribute("element-loading-text");
const spinnerExr = el.getAttribute("element-loading-spinner");
const svgExr = el.getAttribute("element-loading-svg");
const svgViewBoxExr = el.getAttribute("element-loading-svg-view-box");
const backgroundExr = el.getAttribute("element-loading-background");
const customClassExr = el.getAttribute("element-loading-custom-class");
const vm = binding.instance;
el[INSTANCE_NAME] = index["default"]({
text: vm && vm[textExr] || textExr,
svg: vm && vm[svgExr] || svgExr,
svgViewBox: vm && vm[svgViewBoxExr] || svgViewBoxExr,
spinner: vm && vm[spinnerExr] || spinnerExr,
background: vm && vm[backgroundExr] || backgroundExr,
customClass: vm && vm[customClassExr] || customClassExr,
fullscreen: !!binding.modifiers.fullscreen,
target: binding.modifiers.fullscreen ? null : el,
body: !!binding.modifiers.body,
visible: true,
lock: !!binding.modifiers.lock
});
};
const vLoading = {
mounted(el, binding) {
if (binding.value) {
createInstance(el, binding);
}
},
updated(el, binding) {
const instance = el[INSTANCE_NAME];
if (binding.oldValue !== binding.value) {
if (binding.value) {
createInstance(el, binding);
} else {
instance == null ? void 0 : instance.close();
}
}
},
unmounted(el) {
var _a;
(_a = el[INSTANCE_NAME]) == null ? void 0 : _a.close();
}
};
exports["default"] = vLoading;
//# sourceMappingURL=directive.js.map