src/BusyModal.js
import {Controller} from "./Controller.js";
/** @private */
class BusyModal extends Controller {
constructor(parent, cfg = {}) {
super(parent, cfg);
const busyModalBackdropElement = cfg.busyModalBackdropElement || document.body;
if (!busyModalBackdropElement) {
throw "Missing config: busyModalBackdropElement";
}
this._modal = document.createElement("div");
this._modal.classList.add("xeokit-busy-modal");
this._modal.innerHTML = '<div class="xeokit-busy-modal-content"><div class="xeokit-busy-modal-body"><div class="xeokit-busy-modal-message">Default text</div></div></div>';
busyModalBackdropElement.appendChild(this._modal);
this._modalVisible = false;
this._modal.style.display = 'hidden';
}
show(message) {
this._modalVisible = true;
this._modal.querySelector('.xeokit-busy-modal-message').innerText = message;
this._modal.style.display = 'block';
}
hide() {
this._modalVisible = false;
this._modal.style.display = 'none';
}
destroy() {
super.destroy();
if (this._modal) {
this._modal.parentNode.removeChild(this._modal);
this._modal = null;
}
}
}
export {BusyModal};