import type { IPropertyPaneField, PropertyPaneFieldType } from '../propertyPaneFields/propertyPaneField/IPropertyPaneField'; import type { IPropertyPanePagesStateMap } from '../propertyPane/PropertyPane'; import type { IDynamicConfiguration } from '../propertyPaneDynamicData/IDynamicConfiguration'; import type { IPropertyPaneConditionalGroup } from '../propertyPaneConditionalGroup/IPropertyPaneConditionalGroup'; /** * PropertyPane group. Group is part of the PropertyPanePage. * * @public */ export interface IPropertyPaneGroup { /** * Display name for the group. * * @remarks * For performance reasons, it's highly recommended to keep this name unique within the property pane page. * If left empty, the group header will not render (not recommended for accordions). */ groupName?: string; /** * Indicates whether group name should be hidden. * * @remarks * The default value is false. * Use this option to skip the rendering of group name to avoid empty group header being displayed. * @public */ isGroupNameHidden?: boolean; /** * Indicates whether the PropertyPane group is collapsed or not. * * @remarks * The default value is false. */ isCollapsed?: boolean; /** * List of PropertyPane fields. */ groupFields: IPropertyPaneField[]; } /** * Interface for PropertyPaneGroup props. * * @internal */ export interface IPropertyPaneGroupProps extends IPropertyPaneGroup { /** * Page on which the current group is present. */ pageNumber: number; /** * Callback method to indicate that the end user has changed the state of the PropertyPane group. */ propertyPaneGroupStateChanged: (pageNumber: number, groupName: string, isCollapsed: boolean) => void; /** * Dictionary to maintain the state of all the groups, after the end user modifies it. */ propertyPanePagesStateMap: IPropertyPanePagesStateMap; /** * Indicates whether the groups on the PropertyPanePage should be displayed as an Accordion or not. * Default value is false. */ displayGroupsAsAccordion?: boolean; /** * Callback triggered when there is a change in any of the PropertyPaneFields. */ onChange?: (targetProperty: string, value: unknown, fieldType?: PropertyPaneFieldType) => void; /** * Properties bag of the web part. */ properties?: any; /** * Callback to set the entry state of the PropertyPane. * This callback internally is responsible for changing the state of 'Apply'/'Cancel' buttons and * update the invalidEntries dictionary. */ setEntryState?: (targetProperty: string, isValidEntry: boolean) => void; /** * Dynamic data internal configuration. * * @remarks * This contract represents all the required dynamic data related configuration * for the component. This data is essential in creating the dynamic properties. * This is filled by the framework. For example in BaseWebPart class for web parts. */ dynamicConfiguration: IDynamicConfiguration; /** * Boolean flag to indicate if expansion styling should be applied. */ isPropertyPaneExpanded?: boolean; } /** * Typing for the property pane columns. * * @internal */ export interface IPropertyPaneColumns { left: { groups: Array; focusTrapZone?: boolean; }; right: { groups: Array; focusTrapZone?: boolean; }; } //# sourceMappingURL=IPropertyPaneGroup.d.ts.map