UNPKG

@rcsb/rcsb-saguaro-app

Version:
68 lines (67 loc) 3.67 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ComponentsManager = void 0; const jsx_runtime_1 = require("react/jsx-runtime"); const LoaderSpinner_1 = require("./LoaderSpinner"); const client_1 = require("react-dom/client"); const SelectButtonManager_1 = require("./SelectButtonManager"); class ComponentsManager { static buildSelectButton(elementId, options, config) { var _a; ComponentsManager.selectButtonMap.set(elementId, new SelectButtonManager_1.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: (0, client_1.createRoot)(div), htmlElement: div }); (_b = ComponentsManager.nodeMap.get(id)) === null || _b === void 0 ? void 0 : _b.reactRoot.render((0, jsx_runtime_1.jsx)(LoaderSpinner_1.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"; } } } exports.ComponentsManager = ComponentsManager; ComponentsManager.loaderSpinner = "_loaderSpinner"; ComponentsManager.selectButtonMap = new Map(); ComponentsManager.nodeMap = new Map();