/** * Type of client-side component. * @public */ export declare type ComponentType = 'Application' | 'WebPart' | 'Library' | 'Extension' | 'AdaptiveCardExtension' | 'Prefab'; /** * The type of client-side extension. Used by IClientSideExtensionManifest.extensionType. * * @public */ export declare type ExtensionType = 'Unknown' | 'ApplicationCustomizer' | 'FieldCustomizer' | 'ListViewCommandSet' | 'SearchQueryModifier'; /** * @beta */ export declare interface IAdaptiveCardExtensionManifest extends IClientSideComponentManifest { /* Excluded from this release type: connectedTeamsAppId */ /* Excluded from this release type: isPendingTeamsAppSync */ /* Excluded from this release type: connectedSPFXAppId */ /** * Definition: An array defining what host types are supported * * * @remarks * Usage: Use this array to define all hosts that are supported. * */ supportedHosts?: ReadonlyArray<'Dashboard'>; /** * Definition: If true, this ACE supports and has been tested for theme variants experience. * * @remarks * Usage: Use this flag if a ACE supports theme variants and has been tested as such. * In order to support theme variants, ACEs must have the capability to render correctly in the context * of a theme variant. An ACE may or may not need to be updated to support theme variants, but should * always be tested before enabling this flag. By default no ACEs support theme variants. * */ supportsThemeVariants?: boolean; /** * An untyped property bag for experimental flags not ready for production. * */ experimentalData?: { [key: string]: any; }; /** * If true, this AdaptiveCardExtension should not be displayed in the modern SharePoint toolbox. * * @remarks * Usage: Use this flag if it is not appropriate to display a AdaptiveCardExtension in the modern toolbox. By default, * all AdaptiveCardExtensions are enabled to be displayed in the toolbox if supportedHosts contains 'SharePointWebPart' * Such AdaptiveCardExtensions can be provisioned on pages though API or be added to the page in a pre configured way. */ hiddenFromToolbox?: boolean; /* Excluded from this release type: isolationLevel */ /** * The scope of the personalization on how an AdaptiveCardExtension can be personalized by an end user. * * @beta */ personalization?: 'Disallow' | 'Allow'; /** * Definition: * - If true, the AdaptiveCardExtension will be disposed and reloaded when the AdaptiveCardExtension data is updated by an external source. * - If false, the AdaptiveCardExtension data will be deserialized and the properties of the AdaptiveCardExtension will be updated, * onAfterPropertiesUpdatedExternally will be executed. * - If undefined, AdaptiveCardExtensions developed with SPFx version below 1.9 will default to true and AdaptiveCardExtensions developed with * a SPFx version 1.9 or greater will default to false. * * @remarks * By default, onAfterPropertiesUpdatedExternally will re-render the AdaptiveCardExtension. If your AdaptiveCardExtension requires specialized * logic, then it is recommended to override onAfterPropertiesUpdatedExternally. */ useFallbackWhenPropertiesUpdatedExternally?: boolean; /** * A AdaptiveCardExtension can have pre-configured properties like the title, description, iconImageUrl, officeFabricIconFontName, toolbox group name * and AdaptiveCardExtension specific custom properties. And there can be multiple instances of these pre-configured properties. * * @remarks * This helps support scenarios where an organization may want to present multiple pre-configured entries * for a AdaptiveCardExtension in the Toolbox. Each entry is expected to configure the AdaptiveCardExtension 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 AdaptiveCardExtension in the Toolbox, PropertyPane and the initial rendering of the AdaptiveCardExtension. * * Type: JSON object * * Supported values: Array of `IClientSideWebPartManifestEntry` objects. * * Example: * ``` * [{ * "groupId": "5c03119e-3074-46fd-976b-c60198311f70", * "group": { "default": "Advanced" }, * "title": { "id": "$./ManifestStrings.resx:PrimaryTextL1Template;" }, * "description": { "id": "$./ManifestStrings.resx:PrimaryTextL1TemplateDescription;" }, * "officeFabricIconFontName": "Balloons", * "properties": { * "templateType": "primaryText", * "title": "Primary Text", * "primaryText": "Basic card", * "description": "This is an example.", * "cardSize": "Medium" * } * }] * ``` */ preconfiguredEntries: IAdaptiveCardExtensionManifestEntry[]; } /** * This interface specifies the set of properties that can be pre-configured by a AdaptiveCardExtension developer. Each * pre-configured instance of the AdaptiveCardExtension will need a copy of these properties. Organization admins and * content authors can modify these properties on a need basis. * * @beta */ export declare interface IAdaptiveCardExtensionManifestEntry { /** * Size of the AdaptiveCardExtension when it is rendered. This is value must be one of the supported CardSizes * ["Medium", "Large"] defined in the sp-adaptive-card-base project. */ cardSize: string; /** * Title of the AdaptiveCardExtension represented as a single a dictionary of locale keys to title values. This * value will be displayed to the user in the toolbox. * * @remarks * This title should be used in the Toolbox and other display areas. The AdaptiveCardExtension developer may give * an initial title to the AdaptiveCardExtension. The organization admin and page author will have the ability to * change this title as per need. * * Usage: display the name of the AdaptiveCardExtension in the toolbox, web part gallery and the page. * * Supported values: a dictionary of locale keys to strings. Should always have a `'default'` key. * * Example: `"My Webpart"` * ``` * { * "default": "My WebPart" * "en-us": "My WebPart", * "fr-fr": "Ma WebPart", * "zh": "我的 web 部件" * } * ``` */ title: ILocalizedString; /** * Description of the AdaptiveCardExtension represented as a dictionary of locale keys to description values. This * value will be displayed to the user in the toolbox. This description should be used in the Toolbox tooltip and * other display areas. * * @remarks * The AdaptiveCardExtension developer may give an initial description to the AdaptiveCardExtension. The organization * admin and page author will have the ability to change this description as per need. * * Usage: display the description of the AdaptiveCardExtension in the toolbox tooltip, web part gallery and the page. * * Supported values: a dictionary of locale keys to strings. Should always have a `'default'` key. * * Example: `"A tool for displaying neat information."` * * ``` * { * "default": "A tool for displaying neat information.", * "en-us": "A tool for displaying neat information.", * "fr-fr": "Un outil d'affichage des informations soignées.", * "zh": "用於顯示整潔資訊的工具。" * } * ``` */ description: ILocalizedString; /** * The icon for the AdaptiveCardExtension, to be displayed in the toolbox, represented as a character name in the * Office 365 icon font file. * * @remarks * The icon font is specified here: {@link https://aka.ms/uifabric-icons} If this field has * a value, the {@link IClientSideWebPartManifestEntry.iconImageUrl} field will be ignored. * * Supported values: Any character name in the Office 365 Icon Font. * * Example: "graph" */ officeFabricIconFontName?: string; /** * The icon for the AdaptiveCardExtension, to be displayed in the toolbox, represented an image URL. The image at the * URL must be exactly 40x28 px (SPPPLAT VSO#218660 to fix the size of the icon image). * * @remarks * If the {@link IClientSideWebPartManifestEntry.officeFabricIconFontName} field does not have a value, * this field must have a value. This value can be an absolute URL (e.g. `"http://example.com/icons/my-icon.png"`) or * a relative file path (e.g. `"./icons/my-icon.png"`). In the latter case, the path will be resolved relative to * the folder containing the input manifest. The icon file will be copied to the deployment folder like an asset, * and the output manifest's iconImageUrl will be replaced with a URL relative to the URL used to load all other * assets (the loaderConfig.internalModuleBaseUrls property). * * Supported values: Any absolute URL. * * Example: `"https://contoso.akamaihd.net/files/myWebpartIcon.png"` */ iconImageUrl?: string; /** * The group id to determine which modern group contains the AdaptiveCardExtension in modern site page. The SharePoint * Framework reserves group ids for predefined groups. The developer can pick one from those groups. If the developer * fills an id not in the predefined groups, it falls back to Other group. * * @remarks * * Supported values: the GUID from PredefinedGroup list * * Example: `"cf066440-0614-43d6-98ae-0b31cf14c7c3"` * * @beta */ groupId: PredefinedGroup | string; /** * This field is used to tag a AdaptiveCardExtension with keywords that are different from the AdaptiveCardExtension group name. * Tags can be used for categorization and searching of AdaptiveCardExtensions. For example, in the toolbox. * * @remarks * * Example `[{ "default": "image" }, { "default": "media" }, { "default": "picture" }, ...]` * * @beta */ tags?: ILocalizedString[]; /** * Definition: Use this field to specify the data version of the pre-configured data provided to the AdaptiveCardExtension. * Note that data version is different from the version field in the manifest. * * @remarks * The manifest version is used to control the versioning of the AdaptiveCardExtension code, while data version is used * to control the versioning of the serialized data of the AdaptiveCardExtension. Refer to dataVersion field of your * AdaptiveCardExtension for more information. * * Usage: versioning and evolving the serialized data of the AdaptiveCardExtension * * Type: string representing a {@link http://semver.org | semantic version} with only two parts * * Supported values: MAJOR.MINOR * * Example: `"1.0"` */ dataVersion?: string; /** * Every AdaptiveCardExtension is expected to have some custom properties. For example, a page AdaptiveCardExtension might define * properties for the page URL and caption text. A list AdaptiveCardExtension may have the list ID and list title as its * properties, and so on. * * @remarks * * The SharePoint Framework passes these properties to the AdaptiveCardExtensions when they are loaded. The AdaptiveCardExtension developer * fully controls the schema for these properties. The AdaptiveCardExtension developer should follow versioning rules when * updating the properties. * * Usage: rendering of the AdaptiveCardExtension * * Example: `{"imageSource": "https://contoso.akamaihd.net/files/contosoLogo.jpg", "captionText": "Contoso logo"}"` */ properties: TProperties; } /* Excluded from this release type: IAIProperties */ /* Excluded from this release type: ICapabilityCollection */ /* Excluded from this release type: IClientSideApplicationManifest */ /** * A library is defined by this manifest. Libraries currently do not have any additional properties. * * @public */ export declare interface IClientSideAssemblyManifest extends IClientSideComponentManifest { /** * The ID of the component from which the assembly is built. * * @remarks * * Supported values: any GUID * * Example: "dbef608d-3ad5-4f8f-b139-d916f2f0a294" */ rootComponentId: string; } /** * This interface describes how a client-side component is to be loaded and initialized by a SharePoint client * framework. It contains all data for loading an entrypoint script and its dependency scripts. * * @beta */ export declare interface IClientSideComponentLoaderConfiguration { /** * This is an array of fully-qualified paths to be prepended to each of the script resource paths with the * "internal" or "localized" type. If one fails to load, the loader will attempt to load from the next until there * are no base paths remaining. * * @remarks * All "internal" and "localized" script resources that do not have fully-qualified URLs * as their "path" field values must be hosted under each of the paths listed in this property. For example, if an * internal module's "path" field value is `"master_2015-04-20/my-application.bundle_1928f8a0.js"` and this field's * value is `[ "https://contoso.akamaihd.net/files/", "https://contoso.msecnd.net/files/" ]`, the loader will first * attempt to load this script resource from the URL * `"https://contoso.akamaihd.net/files/master_2015-04-20/my-application.bundle_1928f8a0.js"`. If loading from * that URL fails, the loader will then attempt to load this script resource from * `"https://contoso.msecnd.net/files/master_2015-04-20/my-application.bundle_1928f8a0.js"`. If that URL fails * to load, the component will fail to load and an error will be returned. It is important to note that the support * for multiple base URLs is purely for failover support. This means that all files must be present on all hosts * listed in this field. * * Usage: Base URLs for script resources with the "internal" or "localized" type. * * Supported values: Any URL that contains all internal scripts referenced in the "scriptResources" dictionary. * * Example: `[ "https://contoso.akamaihd.net/files/", "https://contoso.msecnd.net/files/" ]` */ internalModuleBaseUrls: string[]; /** * This is the ID of one of the entries in the "scriptResources" dictionary. * * @remarks * The loader will download and evaluate the script resource referenced in this field, resolve all dependencies * against the keys in the "scriptResources", and return the exported object to the loader's calling function. * The entry referenced in the "scriptResources" dictionary must be of the "internal" or the "localized" type. * * Supported values: An entry in the "scriptResources" dictionary that defines the base exported module of the * component. * * Example: `"myApplication.bundle"` */ entryModuleId: string; /** * The module referenced by the "entryModuleId" field may export an object with several fields. * * @remarks * This value optionally references the name of a field on the object exported by the module referenced by the * `entryModuleId` field. When this field has a value, the value of the referenced field on the object exported * by the module referenced by the `entryModuleId` field is returned when this manifest is loaded instead of * the base exported object. For example, if entryModuleId refers to a module with with a top-level export of * `{ foo: 'bar', baz: 123 }` and: * * - if this field is unset, the value returned by the module loader is `{ foo: 'bar', baz: 123 }` * * - if this field is set to `foo`, the value returned by the module loader is `bar` * * - if this field is set to `bar`, the value returned by the module loader is undefined (as `bar` is not a key in * the top-level export). * * Example: `mySpWebpart` */ exportName?: string; /** * This is a dictionary of named script resources. `path` and `localizedPath` modules may reference each * other and `manifest` modules are expected to be provided by the framework runtime. The resource named in the * `entryModuleId` must contain the component's exported object. * * @remarks * * Supported values: A dictionary of named script resources. * * Example: * * ``` * { * "myApplication.bundle": { * "type": "path", * "path": "master_2015-04-20/my-application.bundle_1928f8a0.js" * }, * "@microsoft/sp-client-base": { * "type": "component", * "id": "af59c2b3-2da7-41fd-8b72-3939817960af", * "version": "latest" * }, * "@microsoft/sp-client-preview": { * "type": "component", * "id": "4d5eb168-6729-49a8-aec7-0e397f486b6e", * "version": "latest" * }, * "jQuery": { * "type": "component", * "id": "00000000-0000-0000-0000-000000000000", * "version": "2.2.4", * "path": "https://code.jquery.com/jquery-2.2.4.min.js" * }, * "myApplication_strings": { * "type": "localizedPath", * "defaultPath": "master_2015-04-20/my-application_strings_default_af378e0d.js", * "paths": { * "en-us": "master_2015-04-20/my-application_strings_en-us_d38ff012.js", * "fr-fr": "master_2015-04-20/my-application_strings_fr-fr_138af7e4.js" * } * } * } * ``` */ scriptResources: { [name: string]: IModuleConfiguration; }; } /** * All client-side components built on the SharePoint framework need a valid component manifest. This interface * represents properties that are required by all types of client-side components like Applications and Web Parts. * Component specific manifests will extend this interface to add properties required by that component type. * * @remarks * * The schema of this manifest is owned and versioned by Microsoft. Following rules should be followed while changing * this schema. This set of rules can also be called the "manifest upgrade rules". * * - For minor changes, new properties can be added to this schema in a backwards-compatible way. i.e. the code * that processes the manifest should be able to handle the absence of those new properties. * * - Try to model your changes as minor SemVer increments. Major version changes should be avoided because they * impose a migration cost on developers. * * - The `'manifestVersion'` should be bumped for all small or big changes. * * @privateRemarks * * This schema should be at all times kept in sync with the server-side code file * SPClientSideComponentManifest.cs. * * @public */ export declare interface IClientSideComponentManifest extends IClientSideManifestBase { /** * Type of client-side component. Components with the "Application" type are defined by the * "IClientSideApplicationManifest" interface. Components with the "WebPart" type are defined by the * "IClientSideWebPartManifest" interface. Components with the "Library" type are defined by the * "IClientSideLibraryManifest" interface. Components with the "AdaptiveCardExtension" type are defined * by the "IAdaptiveCardExtensionManifest" interface. * * @remarks * * Usage: To help bundling, loading, enumeration, and initialization of components based on their contents. * * Supported values: `"Application"`, `"WebPart"`, `"Library"`, `"Extension"`, `"AdaptiveCardExtension"` */ componentType: ComponentType; /** * A short name usually given by developer. It does not need to be localized and is expected to stay * the same through the lifetime of the component. If an application overrides the `ClientSideApplication.alias` * property, `ClientSideApplication.alias` is given precedence over the value provided in the manifest. * * @remarks * * Usage: A short name to identify a client-side component by developer. * * Supported values: Allowed characters are a-z, A-Z, and '-'. Not longer than 40 characters. * * Example: `"NewFeed"` * * @privateRemarks * telemetry data is categorized based on alias. If alias changes, new telemetry date for this * component will be put in a new category. It breaks history data if alias changes. */ alias: string; /* Excluded from this release type: isInternal */ /* Excluded from this release type: _isDebug */ /** * Client-side component version. The value of this field is expected to be controlled by the developer * of the client-side component. * * @remarks * * The purpose of this field is to help client-side component developers upgrade their client-side components * in a managed way. This helps the consumers of the client-side component make decisions about when and how * to upgrade the client-side component. As the developer evolves the code for their client-side * component, they can decide to bump the MAJOR, MINOR or PATCH version of the component. * * All incompatible API changes should result in a MAJOR version bump. Backwards compatible functionality * changes should result in a MINOR version bump, and backwards compatible bug fixes should result in a * PATCH version bump. Please see {@link http://semver.org} for more details on how to manage the version * of your components. * * Usage: Versioning and evolving a client-side component safely in a controlled way. * * Supported values: string representing a {@link http://semver.org | semantic version} i.e. MAJOR.MINOR.PATCH * * Example: `"1.0.0"` */ version: string; /* Excluded from this release type: preloadComponents */ /** * This property is used to keep older components that don't explicitly use fabric CSS. * For the most part, webparts build after using spfx 1.1 don't need this. */ loadLegacyFabricCss?: boolean; /** * This property is provided for backwards compatibility. It no longer has any effect. * * @deprecated Use requiresCustomScript instead of safeWithCustomScriptDisabled. */ safeWithCustomScriptDisabled?: boolean; /** * If true, the component can only be installed on sites where Custom Script is enabled. * This should be set to true if the component allows authors to execute arbitrary scripts on the page. * * @remarks * Defaults to false. See * https://support.office.com/en-us/article/Turn-scripting-capabilities-on-or-off-1f2c515f-5d7e-448a-9fd7-835da935584f * for more information. * * Usage: Requires Custom Script to be allowed in order for this component to be installed and run. */ requiresCustomScript?: boolean; /** * This portion of the configuration describes how the component is to be loaded and initialized by a * client. It contains an enumeration of scripts that the component requires along with a single * entry point script. * * @remarks * Usage: Loading a component. * * See `IClientSideComponentLoaderConfiguration` for more information and examples. * * @beta */ loaderConfig: IClientSideComponentLoaderConfiguration; /* Excluded from this release type: isolatedDomain */ /* Excluded from this release type: storeAppId */ /* Excluded from this release type: mpnId */ /* Excluded from this release type: componentDeveloperName */ /* Excluded from this release type: properties */ /* Excluded from this release type: manifestActivatedTime */ /* Excluded from this release type: experimentalData */ } /** * This is the manifest for a client-side extension. * * @public */ export declare interface IClientSideExtensionManifest extends IClientSideComponentManifest { /** * Specifies the type of client-side extension. Some extension types support additional manifest * fields beyond SPClientSideExtensionManifest. */ extensionType: ExtensionType; } /** * A library is defined by this manifest. Libraries currently do not have any additional properties. * * @public */ export declare interface IClientSideLibraryManifest extends IClientSideComponentManifest { } /** * This interface defines members that are common between all deployable manifests. * * @public */ export declare interface IClientSideManifestBase { /** * Version of the component manifest schema. The value of this field is controlled by Microsoft. The * purpose of this field is to help manage upgrades of the component manifest schema. * * @remarks * * A component developer needs to only confirm that they are using the correct value per the * manifest schema. Please read the "manifest upgrade rules" for more details on when the schema * could change. Note, manifest schema version upgrade will be considered a big API change event * and will be advertised broadly. * * Usage: To help support multiple manifest schema versions. * * Supported values: A positive integer. * * Example: `1` */ manifestVersion: number; /** * A universally unique component id. Each client-side component is required to have this id. * Once an id has been used for a component, it cannot be changed. A change in this value is * treated same as the creation of a new component. Two components are never expected to have * the same id. * * Usage: Uniquely identify a client-side component. * * Supported values: a GUID string * * Example: `"dbef608d-3ad5-4f8f-b139-d916f2f0a294"` */ id: string; } /* Excluded from this release type: IClientSideMultiVersionManifest */ /** * The client-side SharePoint framework identifies a Web Part by its manifest. All Web Parts are expected to have a * manifest. * * @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. * * @public */ export declare interface IClientSideWebPartManifest extends IClientSideComponentManifest { /** * Indicates whether the web part uses the property pane to update the configuration * of the web part. * * @remarks * Default value is `true` if the property is not explicitly defined. */ canUpdateConfiguration?: boolean; /** * If true, this web part is disabled on SharePoint classic pages * * @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. */ disabledOnClassicSharepoint?: boolean; /* Excluded from this release type: experimentalData */ /** * If true, this web part should not be displayed in the modern SharePoint toolbox. * * @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. */ hiddenFromToolbox?: boolean; /** * Definition: If true, this web part supports and has been tested for full bleed experience. * * @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. */ supportsFullBleed?: boolean; /* Excluded from this release type: requiredCapabilities */ /* Excluded from this release type: isolationLevel */ /** * Definition: If true, this web part supports and has been tested for theme variants experience. * * @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. * */ supportsThemeVariants?: boolean; /* Excluded from this release type: useFallbackWhenPropertiesUpdatedExternally */ /* Excluded from this release type: idleLoadComponents */ /** * 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. * * @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" * } * }] * ``` */ preconfiguredEntries: IClientSideWebPartManifestEntry[]; /** * Definition: An array defining what host types are supported * * @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. * */ supportedHosts?: Array<'SharePointFullPage' | 'SharePointWebPart' | 'TeamsTab' | 'TeamsPersonalApp' | 'TeamsMeetingApp'>; /** * Definition: Url of the image image used for preview * * @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 */ imagePreviewUrl?: string; /* Excluded from this release type: propertiesMetadata */ /** * 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. * * @remarks Current support JSON Schema draft v4+ schemas * * @public */ jsonSchema?: { [key: string]: unknown; }; /** * 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. * * @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). */ supportsSelfFramingInTeams?: boolean; /** * 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 * } * ``` * @remarks * Ensure this remains up to date with IFlexibleControlSizingData in FlexibleControl.types.ts */ flexibleLayoutSizing?: IFlexibleLayoutSizing; /* Excluded from this release type: aiProperties */ } /** * This interface specifies the set of properties that can be pre-configured by a Web Part developer. Each * pre-configured instance of the Web Part will need a copy of these properties. Organization admins and * content authors can modify these properties on a need basis. * * @public */ export declare interface IClientSideWebPartManifestEntry { /** * Title of the web part represented as a single a dictionary of locale keys to title values. This * value will be displayed to the user in the toolbox. * * @remarks * This title should be used in the Toolbox and other display areas. The Web Part developer may give * an initial title to the web part. The organization admin and page author will have the ability to * change this title as per need. * * Usage: display the name of the web part in the toolbox, web part gallery and the page. * * Supported values: a dictionary of locale keys to strings. Should always have a `'default'` key. * * Example: `"My Webpart"` * ``` * { * "default": "My WebPart" * "en-us": "My WebPart", * "fr-fr": "Ma WebPart", * "zh": "我的 web 部件" * } * ``` */ title: ILocalizedString; /** * Description of the web part represented as a dictionary of locale keys to description values. This * value will be displayed to the user in the toolbox. This description should be used in the Toolbox tooltip and * other display areas. * * @remarks * The Web Part developer may give an initial description to the web part. The organization * admin and page author will have the ability to change this description as per need. * * Usage: display the description of the web part in the toolbox tooltip, web part gallery and the page. * * Supported values: a dictionary of locale keys to strings. Should always have a `'default'` key. * * Example: `"A tool for displaying neat information."` * * ``` * { * "default": "A tool for displaying neat information.", * "en-us": "A tool for displaying neat information.", * "fr-fr": "Un outil d'affichage des informations soignées.", * "zh": "用於顯示整潔資訊的工具。" * } * ``` */ description: ILocalizedString; /** * The icon for the Web Part, to be displayed in the toolbox, represented as a character name in the * Office 365 icon font file. * * @remarks * The icon font is specified here: {@link https://aka.ms/uifabric-icons} If this field has * a value, the {@link IClientSideWebPartManifestEntry.iconImageUrl} field will be ignored. * * Supported values: Any character name in the Office 365 Icon Font. * * Example: "graph" */ officeFabricIconFontName?: string; /** * The icon for the web part, to be displayed in the toolbox, represented an image URL. The image at the * URL must be exactly 40x28 px (SPPPLAT VSO#218660 to fix the size of the icon image). * * @remarks * If the {@link IClientSideWebPartManifestEntry.officeFabricIconFontName} field does not have a value, * this field must have a value. This value can be an absolute URL (e.g. `"http://example.com/icons/my-icon.png"`) or * a relative file path (e.g. `"./icons/my-icon.png"`). In the latter case, the path will be resolved relative to * the folder containing the input manifest. The icon file will be copied to the deployment folder like an asset, * and the output manifest's iconImageUrl will be replaced with a URL relative to the URL used to load all other * assets (the loaderConfig.internalModuleBaseUrls property). * * Supported values: Any absolute URL. * * Example: `"https://contoso.akamaihd.net/files/myWebpartIcon.png"` */ iconImageUrl?: string; /** * The group id to determine which modern group contains the web part in modern site page. The SharePoint * Framework reserves group ids for predefined groups. The developer can pick one from those groups. If the developer * fills an id not in the predefined groups, it falls back to Other group. * * @remarks * * Supported values: the GUID from PredefinedGroup list * * Example: `"cf066440-0614-43d6-98ae-0b31cf14c7c3"` * * @beta */ groupId: PredefinedGroup | string; /** * The group name in web part picker to contain the web part in the classic page. If no value is provided, * then the web part will be displayed in the Miscellaneous group. * * @remarks * * Example: `{ "default": "Media and Content" }` * * @beta */ group?: ILocalizedString; /** * This field is used to tag a web part with keywords that are different from the web part group name. * Tags can be used for categorization and searching of web parts. For example, in the web part toolbox. * * @remarks * * Example `[{ "default": "image" }, { "default": "media" }, { "default": "picture" }, ...]` * * @beta */ tags?: ILocalizedString[]; /** * Definition: Use this field to specify the data version of the pre-configured data provided to the web part. * Note that data version is different from the version field in the manifest. * * @remarks * The manifest version is used to control the versioning of the web part code, while data version is used * to control the versioning of the serialized data of the web part. Refer to dataVersion field of your * web part for more information. * * Usage: versioning and evolving the serialized data of the web part * * Type: string representing a {@link http://semver.org | semantic version} with only two parts * * Supported values: MAJOR.MINOR * * Example: `"1.0"` */ dataVersion?: string; /** * Every web part is expected to have some custom properties. For example, an image web part might define * properties for the image URL and caption text. A list web part may have the list ID and list title as its * properties, and so on. * * @remarks * * The SharePoint Framework passes these properties to the web parts when they are loaded. The web part developer * fully controls the schema for these properties. The web part developer should follow versioning rules when * updating the properties. * * Usage: rendering of the web part * * Example: `{"imageSource": "https://contoso.akamaihd.net/files/contosoLogo.jpg", "captionText": "Contoso logo"}"` */ properties: TProperties; /** * The icon for the Application pages. * * @remarks * If this field is not defined, then the iconimageurl is used instead as the icon for Full Page apps. * This value can be an absolute URL (e.g. `"http://example.com/icons/my-icon.png"`) or a relative file path * (e.g. `"./icons/my-icon.png"`). In the latter case, the path will be resolved relative to the folder containing * the input manifest. * * Supported values: Any absolute URL. * * Example: `"https://contoso.akamaihd.net/files/myWebpartIcon.png"` */ fullPageAppIconImageUrl?: string; } /** * Manifest that is relevant to a Web Part instance. * * @public */ export declare interface IClientSideWebPartManifestInstance extends IClientSideComponentManifest { } /** * Used by ICommandSetExtensionManifest, this defines a command to be displayed by * a UI surface such as a menu, tool bar, etc. * * @public */ export declare interface ICommandDefinition { /** * A short label to be displayed by the associated button, menu item, etc. * Example: "Show information" */ title: ILocalizedString; /** * Type of the item. * Currently only "command" is allowed. */ type: 'command'; /** * Custom accessibility text for the browser's "aria-label" attribute. If omitted, the title property * will be used by default. * Example: "Show information. Press ENTER to select." */ ariaLabel?: ILocalizedString; /** * An optional URL for an image to be displayed next to the command. The requirements for this image * are defined by the type of extension; some extension types may not display the image at all. * * @remarks * This value can be an absolute URL (e.g. "http://example.com/icons/my-icon.png") or * a relative file path (e.g. "./icons/my-icon.png"). In the latter case, the path will be resolved relative to * the folder containing the input manifest. The icon file will be copied to the deployment folder like an asset, * and the output manifest's iconImageUrl will be replaced with a URL relative to the URL used to load all other * assets (the loaderConfig.internalModuleBaseUrls property). */ iconImageUrl?: string; } /** * This is the manifest for a client-side extension that defines a set of custom commands * that can be shown in a menu, tool bar, etc. * * @privateRemarks * * Why is this called "ICommandSetExtensionManifest" and not "IListViewCommandSetExtensionManifest"? * Eventually other command set classes will be introduced, for example something like: * BaseListViewCommandSet, BasePublishingCommandSet, BaseSharePointHomeCommandSet, etc. * Although their contexts will be different, most likely they will all share the same * manifest type. Thus the manifest schema will remain the same, but the extensionType * will expand to something like this: * * extensionType: 'ListViewCommandSet' | 'PublishingCommandSet' | 'SharePointHomeCommandSet'; * * @public */ export declare interface ICommandSetExtensionManifest extends IClientSideExtensionManifest { /** * {@inheritDoc IClientSideExtensionManifest.extensionType} */ extensionType: 'ListViewCommandSet'; /** * A table of items defined by this command set. The object key is the Item ID. * * @remarks * * The Item ID is a unique identifier that event handlers use to recognize the command * The identifier must consist of upper-case letters, numbers, and underscores. * Example: "SHOW_INFO" */ items: { [itemId: string]: ICommandDefinition; }; } /* Excluded from this release type: _IComponentFallbackVersion */ /** * This is the interface for a script module with the "component" type. Modules of this type will be provided via * manifests. In order for the dependency to be loaded, the manifest must be available on the site. * * @beta */ export declare interface IComponentModuleConfiguration extends IModuleConfigurationBase { type: 'component'; /** * The version of the framework-supplied component to be loaded. For framework runtime component such as * `@microsoft/sp-client-base`, it is recommended the version of the framework component the component was developed * against be specified. * * @remarks * * Supported values: string representing a {@link http://semver.org | semantic version}, or "latest". * * Example: `"2.2.4"` */ version: string; /** * The ID of the framework-supplied component to be loaded. * * @remarks * * Supported values: string representing a component's ID. * * Example: `"0d910c1c-13b9-4e1c-9aa4-b008c5e42d7d"` */ id: string; /** * A path to the framework-supplied component in case the framework fails to load the requested version. * * @remarks * This must be either a fully-qualified URL, or a path under the paths specified in the `internalModuleBaseUrls` * field. If this field is not specified and the version is not available in the framework runtime, the closest * matching version of the component will be provided instead. * * Supported values: The path to the component either as a fully-qualified URL or as a path under the * paths provided in the "internalModuleBaseUrls" field. * * Example: `"https://code.jquery.com/jquery-2.2.4.min.js"` */ failoverPath?: string | IIntegrityPath; /* Excluded from this release type: fallbackVersion */ } /** * Flexible layout sizing data * @public */ export declare interface IFlexibleLayoutSizing { /** * If true webpart can resize to any width between minimum and 70 columns * Otherwise webpart is slot resized to 22, 34, 48, or 70 columns */ supportsDynamicResizing?: boolean; /** * Default column width for the webpart, used by drop hint */ defaultColumnWidth?: number; /** * Default row height for the webpart, used by drop hint */ defaultRowHeight?: number; } /* Excluded from this release type: _IFlightedComponent */ /* Excluded from this release type: _IFlightOrKillSwitch */ /* Excluded from this release type: _IIdleLoadComponent */ /** * A path with the subresource integrity hash of the resource. * * @beta */ export declare interface IIntegrityPath { /** * The path to the resource. */ path: string; /** * The subresource integrity hash of the resource referenced in {@link IIntegrityPath.path}. */ integrity?: string; } /* Excluded from this release type: _IKillSwitchComponent */ /** * This is the interface for a script module with the "localizedPath" type. * * @remarks * Modules of this type must be provided by the component developer. These script resources are similar to those of * the "path" type, but they may be present at a number of different paths, to be selected by the user's locale. * Paths in this module type are loaded exactly the same way as "internal" modules are. * * @beta */ export declare interface ILocalizedPathModuleConfiguration extends IModuleConfigurationBase { type: 'localizedPath'; /** * A path to this module's default locale javascript resource either as a fully-qualified URL or as a * path under the paths provided in the "internalModuleBaseUrls" field. * * @remarks * If the user's locale does not resolve to one of the paths specified in the "paths" field, the path in this * field is used. Paths in this module type are treated exactly the same way paths in modules of the "internal" * type are treated. * * Supported values: The path to the default locale version of the module either as a fully-qualified URL or as a path * under the paths provided in the "internalModuleBaseUrls" field. * * Example: `"master_2015-04-20/my-application_strings_default_af378e0d.js"` */ defaultPath: string | IIntegrityPath; /** * This is a dictionary of locale keys (in the `"ll-cc"` format) to paths to this module's locale * javascript resource either as a fully-qualified URL or as a path under the paths provided in the * `"internalModuleBaseUrls"` field. * * @remarks * The loader will attempt to resolve the user's locale to one of the paths provided by this field, and will load * the script resource under that path. If the user's locale does not resolve to one of the paths specified in this * field, the path in `"defaultPath"` field is used. For example, if the user's locale is `"en-gb"`, and this field's * value contains the keys `[ "en-us", "en-gb", "fr-fr" ]`, the path specified by the `"en-gb"` key will be used. * If the user's locale is "en-gb", and this field's value contains the keys `[ "en-us", "fr-fr" ]`, the path * specified by the `"en-us"` key will be used. If the user's locale is `"en-gb"`, and this field's value contains * the keys `[ "es-es", "fr-fr" ]`, the path specified by the "defaultPath" field will be used. * Paths in this module type are treated exactly the same way paths in modules of the "internal" type are treated. * * Supported values: A dictionary of locale-to-path mappings. * * Example: * ``` * { * "en-us": "master_2015-04-20/my-application_strings_en-us_d38ff012.js", * "fr-fr": "master_2015-04-20/my-application_strings_fr-fr_138af7e4.js" * } * ``` */ paths?: { [locale: string]: string | IIntegrityPath; }; } /** * A set of localized strings. * * @remarks * Supported values: * * - An Id referring to a localized resource. In this case it requires an 'id' key. * * - A dictionary of locale keys to strings. In this case it requires a 'default' key. * * ``` * Example 1: "My Application" * { * "id": "$myStrings:myStrings.MyApplication;" * } * Example 2: "My Application" * { * "default": "My Application" * "en-us": "My Application", * "fr-fr": "Ma demande", * "zh": "我的應用程式" * } * ``` * * Notes on string ids: * * - Ids have the following structure: `$:;` * * - `resourceName` needs to be a `localizedResource` in the config.json. * * - `expression` is an expression that will be evaluated to access the string from the resource module. * * If your resource is a dictionary, access it through `"$resource:resource.MyString;"` * or `"$resource:resource[\"MyString\"];"` * * For more complex cases, run an appropriate expression to access your resource and return the string. * * @public */ export declare interface ILocalizedString { default?: string; id?: string; [locale: string]: string | undefined; } /** * @beta */ export declare type IModuleConfiguration = IComponentModuleConfiguration | IPathModuleConfiguration | ILocalizedPathModuleConfiguration; /** * This is the base interface for a script module's definition. * * @beta */ export declare interface IModuleConfigurationBase { /** * The type of the script block. `"component"` modules come from a component, * `"path"` and `"localizedPath"` modules must be available on the paths provided in * the `"internalModuleBaseUrls"` field. * * @remarks * * Modules with the `"path"` type use the `IPathModuleConfiguration` interface. * * Modules with the `"component"` type use the `IComponentModuleConfiguration` interface. * Modules with the "localizedPath" type use the `ILocalizedPathModuleConfiguration` interface. * * Supported values: `"component"`, `"path"`, `"localizedPath"` * * Example: `"localized"` */ type: 'component' | 'path' | 'localizedPath'; /** * If set to `true`, this module should not be preloaded when loading the component. * * @remarks * The most common case for setting this property to "true" is when a module is defined in a manifest, * but is not required for the module referenced in "entryModuleId" to load. Modules may be defined that * are loaded asynchronously, and these modules do not need to be preloaded. This field implicitly defaults * to `false`. * * Usage: Instructs the module loader to not preload this module. */ shouldNotPreload?: boolean; } /* Excluded from this release type: _IOperatorOrSwitch */ /** * This is the interface for a script module with the "path" type. Modules of this type must be provided by the * component developer. * * @beta */ export declare interface IPathModuleConfiguration extends IModuleConfigurationBase { type: 'path'; /** * A path to this module's javascript resource either as a fully-qualified URL or as a path under the * paths provided in the `internalModuleBaseUrls` field. * * @remarks * * For example, if this field's value is `"master_2015-04-20/my-application.bundle_1928f8a0.js"` and * the `"internalModuleBaseUrls"` field's value is * `[ "https://contoso.akamaihd.net/files/", "https://contoso.msecnd.net/files/" ]`, the loader will * first attempt to load this script resource from the URL * `"https://contoso.akamaihd.net/files/master_2015-04-20/my-application.bundle_1928f8a0.js"`. * If loading from that URL fails, the loader will then attempt to load this script resource from * `"https://contoso.msecnd.net/files/master_2015-04-20/my-application.bundle_1928f8a0.js"`. * If that URL fails to load, the component will fail to load and an error will be returned. * * Supported values: The path to the module either as a fully-qualified URL or as a path under the * paths provided in the "internalModuleBaseUrls" field. * * Example: `"master_2015-04-20/my-application.bundle_1928f8a0.js"` */ path: string | IIntegrityPath; /** * If this property is specified, this module is considered non-AMD and * the module loader will not expect "define" or "require" to be called. * * @remarks * In order to load scripts that don't follow the AMD/module-pattern where "define" or "require" is * called and dependencies are explicitly listed and exports are explicitly returned, the module loader needs to * know which global variable must be examined. If this property is specified, this module is considered non-AMD and * the module loader will not expect "define" or "require" to be called. Instead, it will wait for the script to * finish loading and examine the global variable specified in this field. * * Supported values: Variable names that are expected to be populated after this module is loaded. For example, * if this module is describing jQuery, this value should probably be "$". If an empty string is specified, * the module loader will throw an exception and the component will fail to load. * * Example: `"$"` */ globalName?: string; /** * For non-AMD/module-pattern scripts that have dependencies (for example, jQuery plugins), the module * loader will ensure that those dependencies are already loaded. * * @remarks * Entries in the array specified in this field must refer to other non-AMD modules in this component. This field * is not required to have a value for non-AMD modules. If any values are specified that do not refer to other * modules in the same component manifest that this module is specified, the module loader will throw an exception * and the component will fail to load. * * Supported values: Names of other non-AMD-pattern modules in this loader configuration, as specified by the key * `IClientSideComponentLoaderConfiguration.scriptResources[]` * * Example: `["jquery"]` */ globalDependencies?: string[]; } /* Excluded from this release type: IPrefabAppManifest */ /* Excluded from this release type: IPrefabAppOnDemandSiteScript */ /* Excluded from this release type: IPrefabAppOnInstallSiteScript */ /* Excluded from this release type: IPrefabAppSiteScriptBase */ /* Excluded from this release type: IPrefabAppSiteSettingsLink */ /* Excluded from this release type: IPrefabAppToolboxEntry */ /* Excluded from this release type: IPreloadOptions */ /* Excluded from this release type: ISiteScriptActionBase */ /* Excluded from this release type: ManifestType */ /** * Predefined web part group. * * @beta */ export declare const enum PredefinedGroup { /** * Text, media and content. * * This group includes web parts that display text, multi-media, documents, information from the web, and other * rich content. * * @beta */ TextMediaAndContent = "cf066440-0614-43d6-98ae-0b31cf14c7c3", /** * Discovery. * * This group includes web parts that organize, group, and filter content to help users discover information. * * @beta */ DocumentsListsAndLibraries = "1edbd9a8-0bfb-4aa2-9afd-14b8c45dd489", /** * Communication and collaboration. * * This group includes web parts that facilitate information sharing, team work, and social interactions. * * @beta */ Feeds = "75e22ed5-fa14-4829-850a-c890608aca2d", /** * Planning and process. * * This group includes web parts that empower team productivity with the use of planning and process tools. * * @beta */ NewsPeopleAndEvents = "1bc7927e-4a5e-4520-b540-71305c79c20a", /** * Business and intelligence. * * This group includes web parts for tracking and analyzing data, and for integrating business flow with pages. * * @beta */ DataAnalysis = "4aca9e90-eff5-4fa1-bac7-728f5f157b66", /** * Regional information * * This group includes web parts that display information based on current region and geographical location * * @beta */ RegionalInformation = "cfc8bda5-cb9b-49e3-8526-2ee6e52b256a", /** * Other. * * This group includes web parts not in other groups. * * @beta */ Advanced = "5c03119e-3074-46fd-976b-c60198311f70", /** * Other. * * This group includes local web parts. * * @beta */ Local = "8b7bf6f1-a56a-4aa3-8657-7eb6e7e6af61" } /* Excluded from this release type: PrefabAppSiteScript */ /* Excluded from this release type: SiteScriptType */ export { }