import type Component from '../Components/Component'; import type { Options as EditableOption } from '../Components/EditableOptions'; /** * Accordion menu class. */ declare class AccordionMenu { constructor(iconsURLPrefix: string, closeSidebar: Function); private iconsURLPrefix; private closeSidebar; private changedOptions; private chartOptionsJSON; private component?; private oldOptionsBuffer; private confirmationPopup?; waitingForConfirmation: boolean; /** * Renders the menu for given component. * * @param container * The HTML Element to render the menu in. * * @param component * The component to render the menu for. * @param sidebarMainContainer * The main container of the sidebar. */ renderContent(container: HTMLElement, component: Component, sidebarMainContainer: HTMLElement): void; /** * Update the options object with new nested value, based on the property * path. If the objects in the path are not defined, the function will * create them. * * @param propertyPath * Path of the property for which the value should be updated. * Example: ```['chartOptions', 'chart', 'type']``` * * @param value * New value of the property. */ updateOptions(propertyPath: Array, value: boolean | string | number): void; /** * Renders either a basic or nested element. This function can be * recursively called, if there are multiple nested options. * * @param options * Configuration object of the Component options. * * @param parentNode * A container where the accordion is rendered. * * @param component * the component for which the menu should be rendered. */ renderAccordion(options: EditableOption, parentNode: HTMLElement, component: Component): void; /** * Render nested menu for the component. * * @param parentElement * HTML element to which the nested structure should be rendered to * * @param options * configuration object for the options * * @param component * The component instance for the options should be rendered */ renderNested(parentElement: HTMLElement, options: EditableOption, component: Component): void; /** * Closes the sidebar discarding changes. If there are any changes, it will * show a confirmation popup. If no changes, it will close the sidebar. */ cancelChanges(): void; /** * Confirms changes made in the component. * * @fires EditMode#componentChanged */ private confirmChanges; /** * Discards changes made in the component. * * @fires EditMode#componentChangesDiscarded */ private discardChanges; /** * Shows a confirmation popup when the user tries to discard changes. */ private showCancelConfirmationPopup; } export default AccordionMenu;