import type { IPropertyPanePagesStateMap } from '../propertyPane/PropertyPane'; import type { IDynamicConfiguration } from '../propertyPaneDynamicData/IDynamicConfiguration'; import type { IPropertyPaneGroup } from '../propertyPaneGroup/IPropertyPaneGroup'; /** * Property pane conditional group. * * @public */ export interface IPropertyPaneConditionalGroup { /** * Primary group to show */ primaryGroup: IPropertyPaneGroup; /** * Secondary group to show */ secondaryGroup: IPropertyPaneGroup; /** * Indicating whether the property pane should show primary group or * the secondary group. */ showSecondaryGroup: boolean; /** * Callback when user clicks to show primary group. */ onShowPrimaryGroup?: () => void; /** * Callback when user clicks to show secondary group. */ onShowSecondaryGroup?: () => void; } /** * Property pane conditional group props. * * @internal */ export interface IPropertyPaneConditionalGroupProps extends IPropertyPaneConditionalGroup { /** * Index of the current conditions group on the page. * Used in generating the key for the react component. */ index: number; /** * 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. * Defaullt value is false. */ displayGroupsAsAccordion?: boolean; /** * Callback triggered when there is a change in any of the PropertyPaneFields. */ onChange?: (targetProperty: string, value: unknown) => 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; } /** * @internal */ export interface IPropretyPaneConditionalGroupState { showSecondaryGroup: boolean; } //# sourceMappingURL=IPropertyPaneConditionalGroup.d.ts.map