@itwin/frontend-devtools
Version:
Debug menu and supporting UI widgets
46 lines • 1.92 kB
JavaScript
;
/*---------------------------------------------------------------------------------------------
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
* See LICENSE.md in the project root for license terms and full copyright notice.
*--------------------------------------------------------------------------------------------*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.createNestedMenu = createNestedMenu;
/** @packageDocumentation
* @module Controls
*/
const Button_1 = require("./Button");
/** @alpha */
function createNestedMenu(props) {
const div = document.createElement("div");
const body = undefined !== props.body ? props.body : document.createElement("div");
const header = document.createElement("div");
div.appendChild(header);
div.appendChild(body);
header.style.width = "100%";
const label = document.createElement("label");
label.innerText = undefined !== props.label ? props.label : "";
header.appendChild(label);
let isExpanded = undefined !== props.expand ? props.expand : false;
body.style.display = isExpanded ? "block" : "none";
const toggleMenuButton = (0, Button_1.createButton)({
parent: header,
inline: true,
value: isExpanded ? "-" : "+",
handler: () => undefined,
});
header.onclick = () => {
isExpanded = !isExpanded;
body.style.display = isExpanded ? "block" : "none";
toggleMenuButton.button.value = isExpanded ? "-" : "+";
if (undefined !== props.handler)
props.handler(isExpanded);
};
toggleMenuButton.div.style.cssFloat = "right";
header.appendChild(document.createElement("hr"));
if (undefined !== props.parent)
props.parent.appendChild(div);
if (undefined !== props.id)
div.id = props.id;
return { body, label, div };
}
//# sourceMappingURL=NestedMenu.js.map