IClientSideWebPartManifest interface
The client-side SharePoint framework identifies a Web Part by its manifest. All Web Parts are expected to have a manifest.
- Extends
Remarks
The manifest is a schematized JSON blob that is used in multiple parts of the SharePoint infrastructure to identify, load and process a Web Part. The schema for this manifest is completely owned and versioned by Microsoft. There are some required properties in the manifest and some optional properties. Optional properties need to be provided only if the Web Part needs the specific functionality. An invalid manifest could lead to issues with Web Part loading and functionality problems.
Properties
| ai |
Optional AI properties for the web part including the structure of AI properties and the mapping between AI properties and the web part property bag. If provided, AI scenarios like LLM agent in SharePoint Pages will be able to interact with the web part. For example, Creating a web part, modifying existing web part, better understanding of the web part's data structure, etc. |
| can |
Indicates whether the web part uses the property pane to update the configuration of the web part. |
| disabled |
If true, this web part is disabled on SharePoint classic pages |
| experimental |
An untyped property bag for experimental flags not ready for production. |
| flexible |
Definition: Defines the default sizing of webpart in flexible sections, as well as if it supports dynamic resizing. Example:
|
| hidden |
If true, this web part should not be displayed in the modern SharePoint toolbox. |
| image |
Definition: Url of the image image used for preview |
| json |
Optional JSON schema definition of the web part's properties. If provided, the schema will be provide additional validation for the type safety of the web part's persisted format. |
| preconfigured |
A Web Part can have pre-configured properties like the title, description, toolbox group name and Web Part specific custom properties. And there can be multiple instances of these pre-configured properties. |
| required |
The set of capabilities this web part requires from the host page in order to be usable. If the host does not support one of the required capabilities, the web part will not be visible in the toolbox. |
| supported |
Definition: An array defining what host types are supported |
| supports |
Definition: If true, this web part supports and has been tested for full bleed experience. |
| supports |
Definition: If true, notifies that the web part will render an iframe with a page from the same SharePoint tenant (domain). Example: display a SharePoint Page in an iframe. |
| supports |
Definition: If true, this web part supports and has been tested for theme variants experience. |
| use |
Definition: - If true, the web part will be disposed and reloaded when the web part data is updated by an external source. - If false, the web part data will be deserialized and the properties of the web part will be updated, onAfterPropertiesUpdatedExternally will be executed. - If undefined, web parts developed with SPFx version below 1.9 will default to true and web parts developed with a SPFx version 1.9 or greater will default to false. |
Property Details
aiProperties
Note
This API is provided as a preview for developers and may change based on feedback that we receive. Do not use this API in a production environment.
Optional AI properties for the web part including the structure of AI properties and the mapping between AI properties and the web part property bag. If provided, AI scenarios like LLM agent in SharePoint Pages will be able to interact with the web part. For example, Creating a web part, modifying existing web part, better understanding of the web part's data structure, etc.
aiProperties?: IAIProperties;
Property Value
canUpdateConfiguration
Indicates whether the web part uses the property pane to update the configuration of the web part.
canUpdateConfiguration?: boolean;
Property Value
boolean
Remarks
Default value is true if the property is not explicitly defined.
disabledOnClassicSharepoint
If true, this web part is disabled on SharePoint classic pages
disabledOnClassicSharepoint?: boolean;
Property Value
boolean
Remarks
Certain web parts may not be required on or apply to SharePoint classic pages. This flag helps control that. If this flag is true, the web part will not appear in the classic page web part gallery.
experimentalData
Note
This API is provided as a preview for developers and may change based on feedback that we receive. Do not use this API in a production environment.
An untyped property bag for experimental flags not ready for production.
experimentalData?: {
[key: string]: any;
};
Property Value
{ [key: string]: any; }
flexibleLayoutSizing
Definition: Defines the default sizing of webpart in flexible sections, as well as if it supports dynamic resizing. Example:
flexibleLayoutSizing: {
supportsDynamicResizing: false,
defaultColumnWidth: 22,
defaultRowHeight: 21
}
flexibleLayoutSizing?: IFlexibleLayoutSizing;
Property Value
Remarks
Ensure this remains up to date with IFlexibleControlSizingData in FlexibleControl.types.ts
hiddenFromToolbox
If true, this web part should not be displayed in the modern SharePoint toolbox.
hiddenFromToolbox?: boolean;
Property Value
boolean
Remarks
Usage: Use this flag if it is not appropriate to display a web part in the modern toolbox. This property is not used in Classic SharePoint. By default, all web parts are enabled to be displayed in the toolbox. Such web parts can be provisioned on pages though API or be added to the page in a pre configured way.
imagePreviewUrl
Definition: Url of the image image used for preview
imagePreviewUrl?: string;
Property Value
string
Remarks
Usage: Use this string to specify that a preview image should be used instead of a preview rendering of the web part. This can either be a absolute url or a relative URL which will be resolved based on the internal base module url
jsonSchema
Optional JSON schema definition of the web part's properties. If provided, the schema will be provide additional validation for the type safety of the web part's persisted format.
jsonSchema?: {
[key: string]: unknown;
};
Property Value
{ [key: string]: unknown; }
Remarks
Current support JSON Schema draft v4+ schemas
preconfiguredEntries
A Web Part can have pre-configured properties like the title, description, toolbox group name and Web Part specific custom properties. And there can be multiple instances of these pre-configured properties.
preconfiguredEntries: IClientSideWebPartManifestEntry<TProperties>[];
Property Value
IClientSideWebPartManifestEntry<TProperties>[]
Remarks
This helps support scenarios where an organization may want to present multiple pre-configured entries for a Web Part in the Toolbox. Each entry is expected to configure the Web Part with a different set of pre-configured properties. A developer may decide to seed some initial values for these properties but an organization admin can go ahead and customize these properties per the needs of his/her organization. The properties can also be modified by the author of the page.
Usage: help display a Web Part in the Toolbox, PropertyPane and the initial rendering of the Web Part.
Type: JSON object
Supported values: Array of IClientSideWebPartManifestEntry objects.
Example:
[{
title:"Image Web Part",
description: "This Web Part displays an image",
group: "Media",
iconFontName: "image",
properties: {
imageSource: "https://contoso.akamaihd.net/files/mountRainier.jpg",
captionText: "Mount Rainier"
requiredCapabilities
Note
This API is provided as a preview for developers and may change based on feedback that we receive. Do not use this API in a production environment.
The set of capabilities this web part requires from the host page in order to be usable. If the host does not support one of the required capabilities, the web part will not be visible in the toolbox.
requiredCapabilities?: ICapabilityCollection;
Property Value
Remarks
Example { "BingMapKey": true, "AuthModel": ["OpenIDConnect"] }
supportedHosts
Definition: An array defining what host types are supported
supportedHosts?: Array<'SharePointFullPage' | 'SharePointWebPart' | 'TeamsTab' | 'TeamsPersonalApp' | 'TeamsMeetingApp'>;
Property Value
Array<'SharePointFullPage' | 'SharePointWebPart' | 'TeamsTab' | 'TeamsPersonalApp' | 'TeamsMeetingApp'>
Remarks
Usage: Use this array to define all hosts that are supported. The default value is SharePointWebPart if nothing is provided. If SharePointFullPage is added the solution will be available when adding full page apps. If SharePointWebPart is added the solution will be available when adding webparts to a page. If TeamsTab, TeamsPersonalApp, or TeamsMeetingApp is added the solution will be available when using teams. TeamsMeetingApp cannot be used with TeamsTab or TeamsPersonalTab.
supportsFullBleed
Definition: If true, this web part supports and has been tested for full bleed experience.
supportsFullBleed?: boolean;
Property Value
boolean
Remarks
Usage: Use this flag if a web part supports full bleed experience and has been tested as such. In this context, full bleed is a term used to denote that the web part takes the whole width of the containing page. Full bleed experiences require special treatment and testing. By default no web parts support full bleed experiences.
supportsSelfFramingInTeams
Definition: If true, notifies that the web part will render an iframe with a page from the same SharePoint tenant (domain). Example: display a SharePoint Page in an iframe.
supportsSelfFramingInTeams?: boolean;
Property Value
boolean
Remarks
Usage: Use this flag if a web part will render an iframe with a page from the same SharePoint tenant (domain) and will be hosted as a Teams application (supportedHosts contains any of Teams hosts).
supportsThemeVariants
Definition: If true, this web part supports and has been tested for theme variants experience.
supportsThemeVariants?: boolean;
Property Value
boolean
Remarks
Usage: Use this flag if a web part supports theme variants and has been tested as such. In order to support theme variants, web parts must have the capability to render correctly in the context of a theme variant. A web part may or may not need to be updated to support theme variants, but should always be tested before enabling this flag. By default no web parts support theme variants.
useFallbackWhenPropertiesUpdatedExternally
Note
This API is provided as a preview for developers and may change based on feedback that we receive. Do not use this API in a production environment.
Definition: - If true, the web part will be disposed and reloaded when the web part data is updated by an external source. - If false, the web part data will be deserialized and the properties of the web part will be updated, onAfterPropertiesUpdatedExternally will be executed. - If undefined, web parts developed with SPFx version below 1.9 will default to true and web parts developed with a SPFx version 1.9 or greater will default to false.
useFallbackWhenPropertiesUpdatedExternally?: boolean;
Property Value
boolean
Remarks
By default, onAfterPropertiesUpdatedExternally will re-render the web part. If your web part requires specialized logic, then it is recommended to override onAfterPropertiesUpdatedExternally.