import type { IPropertyPanePagesStateMap } from '../propertyPane/PropertyPane'; import type { IPropertyPaneConditionalGroup } from '../propertyPaneConditionalGroup/IPropertyPaneConditionalGroup'; import type { IDynamicConfiguration } from '../propertyPaneDynamicData/IDynamicConfiguration'; import type { PropertyPaneFieldType } from '../propertyPaneFields/propertyPaneField/IPropertyPaneField'; import type { IPropertyPaneGroup, IPropertyPaneColumns } from '../propertyPaneGroup/IPropertyPaneGroup'; /** * PropertyPanePage props. * * @internal */ export interface IPropertyPanePageProps { /** * Page number (used for internal purposes). */ pageNumber: number; /** * Description of the page. */ pageDescription: string; /** * 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; /** * An array of PropertyPaneGroups or PropertyPaneConditionalGroups to be displayed. */ propertyGroups: (IPropertyPaneGroup | IPropertyPaneConditionalGroup)[]; /** * An multidimensional array of columns each containing an array of PropertyPaneGroups or PropertyPaneConditionalGroups to be displayed. */ propertyColumns: IPropertyPaneColumns | undefined; /** * 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; /** * Callback method, which sets the PropertyPanePage element as the container for all the elements * within the PropertyPanePage. This is used to get the first focusable element within the container * to set the focus to. */ setContainerDiv: (propertyPanePage: HTMLDivElement | null) => void; /** * 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; /** * 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; /** * Boolean flag to inidicate if independent scrolling should be enabled on each column. */ isScrollingEnabled?: boolean; } /** * PropertyPanePage interface. * * @public */ export interface IPropertyPanePage { /** * Indicates whether the groups on the PropertyPanePage are displayed as accordion or not. */ displayGroupsAsAccordion?: boolean; /** * PropertyPane page title. * * @beta */ title?: string; /** * PropertyPane page header. */ header?: IPropertyPanePageHeader; /** * List of groups to be displayed on the PropertyPane page. */ groups: (IPropertyPaneGroup | IPropertyPaneConditionalGroup)[]; /** * List of a list of groups to be displayed on a PropertyPane page. Used for multi columns. * @internal */ columns?: IPropertyPaneColumns; /** * Boolean flag to determine if multi columns should include scrolling. * @internal */ independentColumnScrolling?: boolean; } /** * PropertyPane header. * This header remains same for all the pages. * * @public */ export interface IPropertyPanePageHeader { /** * Header to display. */ description: string; /** * Image url for the background image. * * @deprecated This property is not used. */ image?: string; } //# sourceMappingURL=IPropertyPanePage.d.ts.map