@highcharts/dashboards
Version:
Highcharts Dashboards framework
92 lines (90 loc) • 2.99 kB
TypeScript
import type Component from '../Components/Component';
import type EditableOptions 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<string>, 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: EditableOptions.Options, 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: EditableOptions.Options, 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;