@rcsb/rcsb-saguaro-app
Version:
RCSB 1D Saguaro Web App
64 lines • 3.48 kB
JavaScript
import { jsx as _jsx } from "react/jsx-runtime";
import { LoaderSpinner } from "./LoaderSpinner";
import { createRoot } from "react-dom/client";
import { SelectButtonManager } from "./SelectButtonManager";
export class ComponentsManager {
static buildSelectButton(elementId, options, config) {
var _a;
ComponentsManager.selectButtonMap.set(elementId, new SelectButtonManager(elementId));
(_a = ComponentsManager.selectButtonMap.get(elementId)) === null || _a === void 0 ? void 0 : _a.createButton(options, config);
}
static addSelectButton(elementId, options, config) {
var _a;
(_a = ComponentsManager.selectButtonMap.get(elementId)) === null || _a === void 0 ? void 0 : _a.addButton(options, config);
}
static clearSelectButton(elementId) {
var _a;
if (ComponentsManager.selectButtonMap.has(elementId)) {
(_a = ComponentsManager.selectButtonMap.get(elementId)) === null || _a === void 0 ? void 0 : _a.unmountButton();
ComponentsManager.selectButtonMap.delete(elementId);
}
}
static clearAdditionalSelectButton(elementId) {
var _a;
(_a = ComponentsManager.selectButtonMap.get(elementId)) === null || _a === void 0 ? void 0 : _a.unmountAdditionalButton();
}
static buildLoaderSpinner(elementId) {
var _a, _b;
const id = elementId + ComponentsManager.loaderSpinner;
if (!ComponentsManager.nodeMap.has(id)) {
ComponentsManager.hideElement(elementId);
const div = document.createElement("div");
div.setAttribute("id", id);
(_a = document.getElementById(elementId)) === null || _a === void 0 ? void 0 : _a.prepend(div);
ComponentsManager.nodeMap.set(id, { reactRoot: createRoot(div), htmlElement: div });
(_b = ComponentsManager.nodeMap.get(id)) === null || _b === void 0 ? void 0 : _b.reactRoot.render(_jsx(LoaderSpinner, {}));
}
}
static unmountLoaderSpinner(elementId) {
var _a, _b;
const id = elementId + ComponentsManager.loaderSpinner;
if (ComponentsManager.nodeMap.has(id)) {
(_a = ComponentsManager.nodeMap.get(id)) === null || _a === void 0 ? void 0 : _a.reactRoot.unmount();
(_b = ComponentsManager.nodeMap.get(id)) === null || _b === void 0 ? void 0 : _b.htmlElement.remove();
ComponentsManager.nodeMap.delete(id);
ComponentsManager.showElement(elementId);
}
}
static hideElement(elementId) {
var _a, _b, _c;
for (let i = 0; i < ((_b = (_a = document.getElementById(elementId)) === null || _a === void 0 ? void 0 : _a.children.length) !== null && _b !== void 0 ? _b : 0); i++) {
((_c = document.getElementById(elementId)) === null || _c === void 0 ? void 0 : _c.children.item(i)).style.visibility = "hidden";
}
}
static showElement(elementId) {
var _a, _b, _c;
for (let i = 0; i < ((_b = (_a = document.getElementById(elementId)) === null || _a === void 0 ? void 0 : _a.children.length) !== null && _b !== void 0 ? _b : 0); i++) {
((_c = document.getElementById(elementId)) === null || _c === void 0 ? void 0 : _c.children.item(i)).style.visibility = "visible";
}
}
}
ComponentsManager.loaderSpinner = "_loaderSpinner";
ComponentsManager.selectButtonMap = new Map();
ComponentsManager.nodeMap = new Map();
//# sourceMappingURL=ComponentsManager.js.map