export { getWidth, getHeight, getCanvasDivNode, createDiv, createHTMLElement }; /** * Returns the maximum width that should be used if displaying elements inside of wordpress. * @returns {number} */ function getWidth() { return document.getElementById("3d-graph").clientWidth; } /** * Returns the maximum height that should be used if displaying elements inside of wordpress. * @returns {number} */ function getHeight() { return window.innerHeight - 200; } /** * Returns the div node which encapsulates the canvas the 3d-force-graph is drawn on. * @returns {ChildNode} */ function getCanvasDivNode() { const domNode = document.getElementById("3d-graph"); return domNode.firstChild.firstChild.firstChild; } /** * Creates a new div element. * @param {string} className Class name of the new div element. * @param {HTMLElement} parent Optional parent element of the new div. * @param opts Defines any additional values that should be set for the new div element. * @returns {HTMLDivElement} The new div element. */ function createDiv(className, parent, opts = {}) { opts["className"] = className; return createHTMLElement("div", parent, opts); } /** * Creates a new HTML element with specified options. * @param {string} type Type of the new element (e.g. div or img) * @param {HTMLElement} parent Optional parent for the new element. * @param opts Optional parameters to attach to the new element. * @returns {HTMLElement} */ function createHTMLElement(type, parent, opts = {}) { const node = document.createElement(type); for (const [key, value] of Object.entries(opts)) { node[key] = value; } if (typeof parent !== "undefined") { parent.appendChild(node); } return node; }