@geogirafe/lib-geoportal
Version:
GeoGirafe is a flexible application to build online geoportals.
41 lines (40 loc) • 1.52 kB
TypeScript
import GirafeResizableElement from '../../base/GirafeResizableElement.js';
import IGirafePanel from '../../tools/state/igirafepanel.js';
/**
* A panel component that extends GirafeResizableElement.
* Used as main Left and Right panels on the app.
* It has a state toggle manager that can activate or deactivate
* toggle paths based on changes in its state.
* It also has methods to shows/hide itself based on the state toggle paths and state.
*
* To have the toggle on the state working, the component must implement the IGirafePanel interface
* and be added to the lr-panel:
* <girafe-lr-panel>
* <any slot="main"></any>
* <any slot="main"></any>
* </girafe-lr-panel>
*/
declare class LRPanelComponent extends GirafeResizableElement {
protected templateUrl: string | null;
protected styleUrls: string[] | null;
template: () => import("uhtml").Hole;
private stateToggleManager?;
panelTitle: string;
get hasMultipleChilds(): boolean;
constructor();
protected connectedCallback(): void;
/**
* Closes the panel by deactivating all state toggles and hiding itself.
*/
closePanel(): void;
/**
* Retrieve the (valid boolean) toggle paths from child elements of the main slot.
*/
private retrieveTogglePanels;
/**
* Subscribes to changes in togglePaths and shows or hides the component based on the changes.
*/
private registerOnChildChange;
renderPanel(panel: IGirafePanel): void;
}
export default LRPanelComponent;