@microsoft/sp-module-interfaces 1.21.1 → 1.22.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/dist/index-internal-beta.d.ts +17 -0
  2. package/dist/index-internal-public.d.ts +16 -0
  3. package/dist/index-internal.d.ts +724 -14
  4. package/lib-commonjs/index.js +1 -2
  5. package/lib-commonjs/manifestHelpers.js +1 -1
  6. package/lib-commonjs/manifestSchemaValidator.js +1 -1
  7. package/lib-commonjs/manifestSchemas/IAdaptiveCardExtensionManifest.js +1 -1
  8. package/lib-commonjs/manifestSchemas/IClientSideApplicationManifest.js +1 -1
  9. package/lib-commonjs/manifestSchemas/IClientSideAssemblyManifest.js +1 -1
  10. package/lib-commonjs/manifestSchemas/IClientSideComponentLoaderConfiguration.js +1 -1
  11. package/lib-commonjs/manifestSchemas/IClientSideComponentManifest.js +1 -1
  12. package/lib-commonjs/manifestSchemas/IClientSideExtensionManifest.js +1 -1
  13. package/lib-commonjs/manifestSchemas/IClientSideLibraryManifest.js +1 -1
  14. package/lib-commonjs/manifestSchemas/IClientSideManifestBase.js +1 -1
  15. package/lib-commonjs/manifestSchemas/IClientSideMultiVersionManifest.js +1 -1
  16. package/lib-commonjs/manifestSchemas/IClientSideWebPartManifest.js +1 -1
  17. package/lib-commonjs/manifestSchemas/ICommandSetExtensionManifest.js +1 -1
  18. package/lib-commonjs/manifestSchemas/IPrefabAppManifest.js +1 -1
  19. package/lib-commonjs/manifestSchemas/ManifestType.js +1 -1
  20. package/lib-commonjs/manifestSchemas/examples/application_1.manifest.js +1 -1
  21. package/lib-commonjs/manifestSchemas/examples/application_2.manifest.js +1 -1
  22. package/lib-commonjs/manifestSchemas/examples/application_3.manifest.js +1 -1
  23. package/lib-commonjs/manifestSchemas/examples/assembly_1.manifest.js +1 -1
  24. package/lib-commonjs/manifestSchemas/examples/commandSet_1.manifest.js +1 -1
  25. package/lib-commonjs/manifestSchemas/examples/extension_1.manifest.js +1 -1
  26. package/lib-commonjs/manifestSchemas/examples/extension_2.manifest.js +1 -1
  27. package/lib-commonjs/manifestSchemas/examples/extension_3.manifest.js +1 -1
  28. package/lib-commonjs/manifestSchemas/examples/extension_4.manifest.js +1 -1
  29. package/lib-commonjs/manifestSchemas/examples/library_1.manifest.js +1 -1
  30. package/lib-commonjs/manifestSchemas/examples/multi-version_1.manifest.js +1 -1
  31. package/lib-commonjs/manifestSchemas/examples/prefab_1.manifest.js +1 -1
  32. package/lib-commonjs/manifestSchemas/examples/prefab_2.manifest.js +1 -1
  33. package/lib-commonjs/manifestSchemas/examples/webpart.manifest.json +62 -0
  34. package/lib-commonjs/manifestSchemas/examples/webpart_1.manifest.js +63 -1
  35. package/lib-commonjs/manifestSchemas/examples/webpart_2.manifest.js +63 -1
  36. package/lib-commonjs/manifestSchemas/jsonSchemas/client-side-component-loader-configuration.schema.json +6 -1
  37. package/lib-commonjs/manifestSchemas/jsonSchemas/client-side-web-part-manifest.schema.json +59 -0
  38. package/lib-commonjs/manifestSchemas/jsonSchemas/component-fallback-version.schema.json +106 -0
  39. package/lib-dts/index.d.ts +1 -1
  40. package/lib-dts/manifestSchemas/IClientSideComponentLoaderConfiguration.d.ts +76 -0
  41. package/lib-dts/manifestSchemas/IClientSideWebPartManifest.d.ts +80 -0
  42. package/lib-dts/tsdoc-metadata.json +1 -1
  43. package/lib-esm/index.js +1 -2
  44. package/lib-esm/manifestHelpers.js +1 -1
  45. package/lib-esm/manifestSchemaValidator.js +1 -1
  46. package/lib-esm/manifestSchemas/IAdaptiveCardExtensionManifest.js +1 -1
  47. package/lib-esm/manifestSchemas/IClientSideApplicationManifest.js +1 -1
  48. package/lib-esm/manifestSchemas/IClientSideAssemblyManifest.js +1 -1
  49. package/lib-esm/manifestSchemas/IClientSideComponentLoaderConfiguration.js +1 -1
  50. package/lib-esm/manifestSchemas/IClientSideComponentManifest.js +1 -1
  51. package/lib-esm/manifestSchemas/IClientSideExtensionManifest.js +1 -1
  52. package/lib-esm/manifestSchemas/IClientSideLibraryManifest.js +1 -1
  53. package/lib-esm/manifestSchemas/IClientSideManifestBase.js +1 -1
  54. package/lib-esm/manifestSchemas/IClientSideMultiVersionManifest.js +1 -1
  55. package/lib-esm/manifestSchemas/IClientSideWebPartManifest.js +1 -1
  56. package/lib-esm/manifestSchemas/ICommandSetExtensionManifest.js +1 -1
  57. package/lib-esm/manifestSchemas/IPrefabAppManifest.js +1 -1
  58. package/lib-esm/manifestSchemas/ManifestType.js +1 -1
  59. package/lib-esm/manifestSchemas/examples/application_1.manifest.js +1 -1
  60. package/lib-esm/manifestSchemas/examples/application_2.manifest.js +1 -1
  61. package/lib-esm/manifestSchemas/examples/application_3.manifest.js +1 -1
  62. package/lib-esm/manifestSchemas/examples/assembly_1.manifest.js +1 -1
  63. package/lib-esm/manifestSchemas/examples/commandSet_1.manifest.js +1 -1
  64. package/lib-esm/manifestSchemas/examples/extension_1.manifest.js +1 -1
  65. package/lib-esm/manifestSchemas/examples/extension_2.manifest.js +1 -1
  66. package/lib-esm/manifestSchemas/examples/extension_3.manifest.js +1 -1
  67. package/lib-esm/manifestSchemas/examples/extension_4.manifest.js +1 -1
  68. package/lib-esm/manifestSchemas/examples/library_1.manifest.js +1 -1
  69. package/lib-esm/manifestSchemas/examples/multi-version_1.manifest.js +1 -1
  70. package/lib-esm/manifestSchemas/examples/prefab_1.manifest.js +1 -1
  71. package/lib-esm/manifestSchemas/examples/prefab_2.manifest.js +1 -1
  72. package/lib-esm/manifestSchemas/examples/webpart.manifest.json +62 -0
  73. package/lib-esm/manifestSchemas/examples/webpart_1.manifest.js +63 -1
  74. package/lib-esm/manifestSchemas/examples/webpart_2.manifest.js +63 -1
  75. package/lib-esm/manifestSchemas/jsonSchemas/client-side-component-loader-configuration.schema.json +6 -1
  76. package/lib-esm/manifestSchemas/jsonSchemas/client-side-web-part-manifest.schema.json +59 -0
  77. package/lib-esm/manifestSchemas/jsonSchemas/component-fallback-version.schema.json +106 -0
  78. package/package.json +4 -4
@@ -11,9 +11,261 @@ export declare type ComponentType = 'Application' | 'WebPart' | 'Library' | 'Ext
11
11
  */
12
12
  export declare type ExtensionType = 'Unknown' | 'ApplicationCustomizer' | 'FieldCustomizer' | 'ListViewCommandSet' | 'SearchQueryModifier';
13
13
 
14
- /* Excluded from this release type: IAdaptiveCardExtensionManifest */
14
+ /**
15
+ * @beta
16
+ */
17
+ export declare interface IAdaptiveCardExtensionManifest<TProperties> extends IClientSideComponentManifest {
18
+ /* Excluded from this release type: connectedTeamsAppId */
19
+ /* Excluded from this release type: isPendingTeamsAppSync */
20
+ /* Excluded from this release type: connectedSPFXAppId */
21
+ /**
22
+ * Definition: An array defining what host types are supported
23
+ *
24
+ *
25
+ * @remarks
26
+ * Usage: Use this array to define all hosts that are supported.
27
+ *
28
+ */
29
+ supportedHosts?: ReadonlyArray<'Dashboard'>;
30
+ /**
31
+ * Definition: If true, this ACE supports and has been tested for theme variants experience.
32
+ *
33
+ * @remarks
34
+ * Usage: Use this flag if a ACE supports theme variants and has been tested as such.
35
+ * In order to support theme variants, ACEs must have the capability to render correctly in the context
36
+ * of a theme variant. An ACE may or may not need to be updated to support theme variants, but should
37
+ * always be tested before enabling this flag. By default no ACEs support theme variants.
38
+ *
39
+ */
40
+ supportsThemeVariants?: boolean;
41
+ /**
42
+ * An untyped property bag for experimental flags not ready for production.
43
+ *
44
+ */
45
+ experimentalData?: {
46
+ [key: string]: any;
47
+ };
48
+ /**
49
+ * If true, this AdaptiveCardExtension should not be displayed in the modern SharePoint toolbox.
50
+ *
51
+ * @remarks
52
+ * Usage: Use this flag if it is not appropriate to display a AdaptiveCardExtension in the modern toolbox. By default,
53
+ * all AdaptiveCardExtensions are enabled to be displayed in the toolbox if supportedHosts contains 'SharePointWebPart'
54
+ * Such AdaptiveCardExtensions can be provisioned on pages though API or be added to the page in a pre configured way.
55
+ */
56
+ hiddenFromToolbox?: boolean;
57
+ /* Excluded from this release type: isolationLevel */
58
+ /**
59
+ * The scope of the personalization on how an AdaptiveCardExtension can be personalized by an end user.
60
+ *
61
+ * @beta
62
+ */
63
+ personalization?: 'Disallow' | 'Allow';
64
+ /**
65
+ * Definition:
66
+ * - If true, the AdaptiveCardExtension will be disposed and reloaded when the AdaptiveCardExtension data is updated by an external source.
67
+ * - If false, the AdaptiveCardExtension data will be deserialized and the properties of the AdaptiveCardExtension will be updated,
68
+ * onAfterPropertiesUpdatedExternally will be executed.
69
+ * - If undefined, AdaptiveCardExtensions developed with SPFx version below 1.9 will default to true and AdaptiveCardExtensions developed with
70
+ * a SPFx version 1.9 or greater will default to false.
71
+ *
72
+ * @remarks
73
+ * By default, onAfterPropertiesUpdatedExternally will re-render the AdaptiveCardExtension. If your AdaptiveCardExtension requires specialized
74
+ * logic, then it is recommended to override onAfterPropertiesUpdatedExternally.
75
+ */
76
+ useFallbackWhenPropertiesUpdatedExternally?: boolean;
77
+ /**
78
+ * A AdaptiveCardExtension can have pre-configured properties like the title, description, iconImageUrl, officeFabricIconFontName, toolbox group name
79
+ * and AdaptiveCardExtension specific custom properties. And there can be multiple instances of these pre-configured properties.
80
+ *
81
+ * @remarks
82
+ * This helps support scenarios where an organization may want to present multiple pre-configured entries
83
+ * for a AdaptiveCardExtension in the Toolbox. Each entry is expected to configure the AdaptiveCardExtension with a different set
84
+ * of pre-configured properties. A developer may decide to seed some initial values for these properties
85
+ * but an organization admin can go ahead and customize these properties per the needs of his/her organization.
86
+ * The properties can also be modified by the author of the page.
87
+ *
88
+ * Usage: help display a AdaptiveCardExtension in the Toolbox, PropertyPane and the initial rendering of the AdaptiveCardExtension.
89
+ *
90
+ * Type: JSON object
91
+ *
92
+ * Supported values: Array of `IClientSideWebPartManifestEntry` objects.
93
+ *
94
+ * Example:
95
+ * ```
96
+ * [{
97
+ * "groupId": "5c03119e-3074-46fd-976b-c60198311f70",
98
+ * "group": { "default": "Advanced" },
99
+ * "title": { "id": "$./ManifestStrings.resx:PrimaryTextL1Template;" },
100
+ * "description": { "id": "$./ManifestStrings.resx:PrimaryTextL1TemplateDescription;" },
101
+ * "officeFabricIconFontName": "Balloons",
102
+ * "properties": {
103
+ * "templateType": "primaryText",
104
+ * "title": "Primary Text",
105
+ * "primaryText": "Basic card",
106
+ * "description": "This is an example.",
107
+ * "cardSize": "Medium"
108
+ * }
109
+ * }]
110
+ * ```
111
+ */
112
+ preconfiguredEntries: IAdaptiveCardExtensionManifestEntry<TProperties>[];
113
+ }
15
114
 
16
- /* Excluded from this release type: IAdaptiveCardExtensionManifestEntry */
115
+ /**
116
+ * This interface specifies the set of properties that can be pre-configured by a AdaptiveCardExtension developer. Each
117
+ * pre-configured instance of the AdaptiveCardExtension will need a copy of these properties. Organization admins and
118
+ * content authors can modify these properties on a need basis.
119
+ *
120
+ * @beta
121
+ */
122
+ export declare interface IAdaptiveCardExtensionManifestEntry<TProperties> {
123
+ /**
124
+ * Size of the AdaptiveCardExtension when it is rendered. This is value must be one of the supported CardSizes
125
+ * ["Medium", "Large"] defined in the sp-adaptive-card-base project.
126
+ */
127
+ cardSize: string;
128
+ /**
129
+ * Title of the AdaptiveCardExtension represented as a single a dictionary of locale keys to title values. This
130
+ * value will be displayed to the user in the toolbox.
131
+ *
132
+ * @remarks
133
+ * This title should be used in the Toolbox and other display areas. The AdaptiveCardExtension developer may give
134
+ * an initial title to the AdaptiveCardExtension. The organization admin and page author will have the ability to
135
+ * change this title as per need.
136
+ *
137
+ * Usage: display the name of the AdaptiveCardExtension in the toolbox, web part gallery and the page.
138
+ *
139
+ * Supported values: a dictionary of locale keys to strings. Should always have a `'default'` key.
140
+ *
141
+ * Example: `"My Webpart"`
142
+ * ```
143
+ * {
144
+ * "default": "My WebPart"
145
+ * "en-us": "My WebPart",
146
+ * "fr-fr": "Ma WebPart",
147
+ * "zh": "我的 web 部件"
148
+ * }
149
+ * ```
150
+ */
151
+ title: ILocalizedString;
152
+ /**
153
+ * Description of the AdaptiveCardExtension represented as a dictionary of locale keys to description values. This
154
+ * value will be displayed to the user in the toolbox. This description should be used in the Toolbox tooltip and
155
+ * other display areas.
156
+ *
157
+ * @remarks
158
+ * The AdaptiveCardExtension developer may give an initial description to the AdaptiveCardExtension. The organization
159
+ * admin and page author will have the ability to change this description as per need.
160
+ *
161
+ * Usage: display the description of the AdaptiveCardExtension in the toolbox tooltip, web part gallery and the page.
162
+ *
163
+ * Supported values: a dictionary of locale keys to strings. Should always have a `'default'` key.
164
+ *
165
+ * Example: `"A tool for displaying neat information."`
166
+ *
167
+ * ```
168
+ * {
169
+ * "default": "A tool for displaying neat information.",
170
+ * "en-us": "A tool for displaying neat information.",
171
+ * "fr-fr": "Un outil d'affichage des informations soignées.",
172
+ * "zh": "用於顯示整潔資訊的工具。"
173
+ * }
174
+ * ```
175
+ */
176
+ description: ILocalizedString;
177
+ /**
178
+ * The icon for the AdaptiveCardExtension, to be displayed in the toolbox, represented as a character name in the
179
+ * Office 365 icon font file.
180
+ *
181
+ * @remarks
182
+ * The icon font is specified here: {@link https://aka.ms/uifabric-icons} If this field has
183
+ * a value, the {@link IClientSideWebPartManifestEntry.iconImageUrl} field will be ignored.
184
+ *
185
+ * Supported values: Any character name in the Office 365 Icon Font.
186
+ *
187
+ * Example: "graph"
188
+ */
189
+ officeFabricIconFontName?: string;
190
+ /**
191
+ * The icon for the AdaptiveCardExtension, to be displayed in the toolbox, represented an image URL. The image at the
192
+ * URL must be exactly 40x28 px (SPPPLAT VSO#218660 to fix the size of the icon image).
193
+ *
194
+ * @remarks
195
+ * If the {@link IClientSideWebPartManifestEntry.officeFabricIconFontName} field does not have a value,
196
+ * this field must have a value. This value can be an absolute URL (e.g. `"http://example.com/icons/my-icon.png"`) or
197
+ * a relative file path (e.g. `"./icons/my-icon.png"`). In the latter case, the path will be resolved relative to
198
+ * the folder containing the input manifest. The icon file will be copied to the deployment folder like an asset,
199
+ * and the output manifest's iconImageUrl will be replaced with a URL relative to the URL used to load all other
200
+ * assets (the loaderConfig.internalModuleBaseUrls property).
201
+ *
202
+ * Supported values: Any absolute URL.
203
+ *
204
+ * Example: `"https://contoso.akamaihd.net/files/myWebpartIcon.png"`
205
+ */
206
+ iconImageUrl?: string;
207
+ /**
208
+ * The group id to determine which modern group contains the AdaptiveCardExtension in modern site page. The SharePoint
209
+ * Framework reserves group ids for predefined groups. The developer can pick one from those groups. If the developer
210
+ * fills an id not in the predefined groups, it falls back to Other group.
211
+ *
212
+ * @remarks
213
+ *
214
+ * Supported values: the GUID from PredefinedGroup list
215
+ *
216
+ * Example: `"cf066440-0614-43d6-98ae-0b31cf14c7c3"`
217
+ *
218
+ * @beta
219
+ */
220
+ groupId: PredefinedGroup | string;
221
+ /**
222
+ * This field is used to tag a AdaptiveCardExtension with keywords that are different from the AdaptiveCardExtension group name.
223
+ * Tags can be used for categorization and searching of AdaptiveCardExtensions. For example, in the toolbox.
224
+ *
225
+ * @remarks
226
+ *
227
+ * Example `[{ "default": "image" }, { "default": "media" }, { "default": "picture" }, ...]`
228
+ *
229
+ * @beta
230
+ */
231
+ tags?: ILocalizedString[];
232
+ /**
233
+ * Definition: Use this field to specify the data version of the pre-configured data provided to the AdaptiveCardExtension.
234
+ * Note that data version is different from the version field in the manifest.
235
+ *
236
+ * @remarks
237
+ * The manifest version is used to control the versioning of the AdaptiveCardExtension code, while data version is used
238
+ * to control the versioning of the serialized data of the AdaptiveCardExtension. Refer to dataVersion field of your
239
+ * AdaptiveCardExtension for more information.
240
+ *
241
+ * Usage: versioning and evolving the serialized data of the AdaptiveCardExtension
242
+ *
243
+ * Type: string representing a {@link http://semver.org | semantic version} with only two parts
244
+ *
245
+ * Supported values: MAJOR.MINOR
246
+ *
247
+ * Example: `"1.0"`
248
+ */
249
+ dataVersion?: string;
250
+ /**
251
+ * Every AdaptiveCardExtension is expected to have some custom properties. For example, a page AdaptiveCardExtension might define
252
+ * properties for the page URL and caption text. A list AdaptiveCardExtension may have the list ID and list title as its
253
+ * properties, and so on.
254
+ *
255
+ * @remarks
256
+ *
257
+ * The SharePoint Framework passes these properties to the AdaptiveCardExtensions when they are loaded. The AdaptiveCardExtension developer
258
+ * fully controls the schema for these properties. The AdaptiveCardExtension developer should follow versioning rules when
259
+ * updating the properties.
260
+ *
261
+ * Usage: rendering of the AdaptiveCardExtension
262
+ *
263
+ * Example: `{"imageSource": "https://contoso.akamaihd.net/files/contosoLogo.jpg", "captionText": "Contoso logo"}"`
264
+ */
265
+ properties: TProperties;
266
+ }
267
+
268
+ /* Excluded from this release type: IAIProperties */
17
269
 
18
270
  /* Excluded from this release type: ICapabilityCollection */
19
271
 
@@ -37,7 +289,120 @@ export declare interface IClientSideAssemblyManifest extends IClientSideComponen
37
289
  rootComponentId: string;
38
290
  }
39
291
 
40
- /* Excluded from this release type: IClientSideComponentLoaderConfiguration */
292
+ /**
293
+ * This interface describes how a client-side component is to be loaded and initialized by a SharePoint client
294
+ * framework. It contains all data for loading an entrypoint script and its dependency scripts.
295
+ *
296
+ * @beta
297
+ */
298
+ export declare interface IClientSideComponentLoaderConfiguration {
299
+ /**
300
+ * This is an array of fully-qualified paths to be prepended to each of the script resource paths with the
301
+ * "internal" or "localized" type. If one fails to load, the loader will attempt to load from the next until there
302
+ * are no base paths remaining.
303
+ *
304
+ * @remarks
305
+ * All "internal" and "localized" script resources that do not have fully-qualified URLs
306
+ * as their "path" field values must be hosted under each of the paths listed in this property. For example, if an
307
+ * internal module's "path" field value is `"master_2015-04-20/my-application.bundle_1928f8a0.js"` and this field's
308
+ * value is `[ "https://contoso.akamaihd.net/files/", "https://contoso.msecnd.net/files/" ]`, the loader will first
309
+ * attempt to load this script resource from the URL
310
+ * `"https://contoso.akamaihd.net/files/master_2015-04-20/my-application.bundle_1928f8a0.js"`. If loading from
311
+ * that URL fails, the loader will then attempt to load this script resource from
312
+ * `"https://contoso.msecnd.net/files/master_2015-04-20/my-application.bundle_1928f8a0.js"`. If that URL fails
313
+ * to load, the component will fail to load and an error will be returned. It is important to note that the support
314
+ * for multiple base URLs is purely for failover support. This means that all files must be present on all hosts
315
+ * listed in this field.
316
+ *
317
+ * Usage: Base URLs for script resources with the "internal" or "localized" type.
318
+ *
319
+ * Supported values: Any URL that contains all internal scripts referenced in the "scriptResources" dictionary.
320
+ *
321
+ * Example: `[ "https://contoso.akamaihd.net/files/", "https://contoso.msecnd.net/files/" ]`
322
+ */
323
+ internalModuleBaseUrls: string[];
324
+ /**
325
+ * This is the ID of one of the entries in the "scriptResources" dictionary.
326
+ *
327
+ * @remarks
328
+ * The loader will download and evaluate the script resource referenced in this field, resolve all dependencies
329
+ * against the keys in the "scriptResources", and return the exported object to the loader's calling function.
330
+ * The entry referenced in the "scriptResources" dictionary must be of the "internal" or the "localized" type.
331
+ *
332
+ * Supported values: An entry in the "scriptResources" dictionary that defines the base exported module of the
333
+ * component.
334
+ *
335
+ * Example: `"myApplication.bundle"`
336
+ */
337
+ entryModuleId: string;
338
+ /**
339
+ * The module referenced by the "entryModuleId" field may export an object with several fields.
340
+ *
341
+ * @remarks
342
+ * This value optionally references the name of a field on the object exported by the module referenced by the
343
+ * `entryModuleId` field. When this field has a value, the value of the referenced field on the object exported
344
+ * by the module referenced by the `entryModuleId` field is returned when this manifest is loaded instead of
345
+ * the base exported object. For example, if entryModuleId refers to a module with with a top-level export of
346
+ * `{ foo: 'bar', baz: 123 }` and:
347
+ *
348
+ * - if this field is unset, the value returned by the module loader is `{ foo: 'bar', baz: 123 }`
349
+ *
350
+ * - if this field is set to `foo`, the value returned by the module loader is `bar`
351
+ *
352
+ * - if this field is set to `bar`, the value returned by the module loader is undefined (as `bar` is not a key in
353
+ * the top-level export).
354
+ *
355
+ * Example: `mySpWebpart`
356
+ */
357
+ exportName?: string;
358
+ /**
359
+ * This is a dictionary of named script resources. `path` and `localizedPath` modules may reference each
360
+ * other and `manifest` modules are expected to be provided by the framework runtime. The resource named in the
361
+ * `entryModuleId` must contain the component's exported object.
362
+ *
363
+ * @remarks
364
+ *
365
+ * Supported values: A dictionary of named script resources.
366
+ *
367
+ * Example:
368
+ *
369
+ * ```
370
+ * {
371
+ * "myApplication.bundle": {
372
+ * "type": "path",
373
+ * "path": "master_2015-04-20/my-application.bundle_1928f8a0.js"
374
+ * },
375
+ * "@microsoft/sp-client-base": {
376
+ * "type": "component",
377
+ * "id": "af59c2b3-2da7-41fd-8b72-3939817960af",
378
+ * "version": "latest"
379
+ * },
380
+ * "@microsoft/sp-client-preview": {
381
+ * "type": "component",
382
+ * "id": "4d5eb168-6729-49a8-aec7-0e397f486b6e",
383
+ * "version": "latest"
384
+ * },
385
+ * "jQuery": {
386
+ * "type": "component",
387
+ * "id": "00000000-0000-0000-0000-000000000000",
388
+ * "version": "2.2.4",
389
+ * "path": "https://code.jquery.com/jquery-2.2.4.min.js"
390
+ * },
391
+ * "myApplication_strings": {
392
+ * "type": "localizedPath",
393
+ * "defaultPath": "master_2015-04-20/my-application_strings_default_af378e0d.js",
394
+ * "paths": {
395
+ * "en-us": "master_2015-04-20/my-application_strings_en-us_d38ff012.js",
396
+ * "fr-fr": "master_2015-04-20/my-application_strings_fr-fr_138af7e4.js"
397
+ * }
398
+ * }
399
+ * }
400
+ * ```
401
+ */
402
+ scriptResources: {
403
+ [name: string]: IModuleConfiguration;
404
+ };
405
+ }
41
406
 
42
407
  /**
43
408
  * All client-side components built on the SharePoint framework need a valid component manifest. This interface
@@ -146,7 +511,19 @@ export declare interface IClientSideComponentManifest extends IClientSideManifes
146
511
  * Usage: Requires Custom Script to be allowed in order for this component to be installed and run.
147
512
  */
148
513
  requiresCustomScript?: boolean;
149
- /* Excluded from this release type: loaderConfig */
514
+ /**
515
+ * This portion of the configuration describes how the component is to be loaded and initialized by a
516
+ * client. It contains an enumeration of scripts that the component requires along with a single
517
+ * entry point script.
518
+ *
519
+ * @remarks
520
+ * Usage: Loading a component.
521
+ *
522
+ * See `IClientSideComponentLoaderConfiguration` for more information and examples.
523
+ *
524
+ * @beta
525
+ */
526
+ loaderConfig: IClientSideComponentLoaderConfiguration;
150
527
  /* Excluded from this release type: isolatedDomain */
151
528
  /* Excluded from this release type: storeAppId */
152
529
  /* Excluded from this release type: mpnId */
@@ -283,6 +660,7 @@ export declare interface IClientSideWebPartManifest<TProperties> extends IClient
283
660
  */
284
661
  supportsThemeVariants?: boolean;
285
662
  /* Excluded from this release type: useFallbackWhenPropertiesUpdatedExternally */
663
+ /* Excluded from this release type: idleLoadComponents */
286
664
  /**
287
665
  * A Web Part can have pre-configured properties like the title, description, toolbox group name and Web
288
666
  * Part specific custom properties. And there can be multiple instances of these pre-configured properties.
@@ -373,6 +751,7 @@ export declare interface IClientSideWebPartManifest<TProperties> extends IClient
373
751
  * Ensure this remains up to date with IFlexibleControlSizingData in FlexibleControl.types.ts
374
752
  */
375
753
  flexibleLayoutSizing?: IFlexibleLayoutSizing;
754
+ /* Excluded from this release type: aiProperties */
376
755
  }
377
756
 
378
757
  /**
@@ -462,9 +841,42 @@ export declare interface IClientSideWebPartManifestEntry<TProperties> {
462
841
  * Example: `"https://contoso.akamaihd.net/files/myWebpartIcon.png"`
463
842
  */
464
843
  iconImageUrl?: string;
465
- /* Excluded from this release type: groupId */
466
- /* Excluded from this release type: group */
467
- /* Excluded from this release type: tags */
844
+ /**
845
+ * The group id to determine which modern group contains the web part in modern site page. The SharePoint
846
+ * Framework reserves group ids for predefined groups. The developer can pick one from those groups. If the developer
847
+ * fills an id not in the predefined groups, it falls back to Other group.
848
+ *
849
+ * @remarks
850
+ *
851
+ * Supported values: the GUID from PredefinedGroup list
852
+ *
853
+ * Example: `"cf066440-0614-43d6-98ae-0b31cf14c7c3"`
854
+ *
855
+ * @beta
856
+ */
857
+ groupId: PredefinedGroup | string;
858
+ /**
859
+ * The group name in web part picker to contain the web part in the classic page. If no value is provided,
860
+ * then the web part will be displayed in the Miscellaneous group.
861
+ *
862
+ * @remarks
863
+ *
864
+ * Example: `{ "default": "Media and Content" }`
865
+ *
866
+ * @beta
867
+ */
868
+ group?: ILocalizedString;
869
+ /**
870
+ * This field is used to tag a web part with keywords that are different from the web part group name.
871
+ * Tags can be used for categorization and searching of web parts. For example, in the web part toolbox.
872
+ *
873
+ * @remarks
874
+ *
875
+ * Example `[{ "default": "image" }, { "default": "media" }, { "default": "picture" }, ...]`
876
+ *
877
+ * @beta
878
+ */
879
+ tags?: ILocalizedString[];
468
880
  /**
469
881
  * Definition: Use this field to specify the data version of the pre-configured data provided to the web part.
470
882
  * Note that data version is different from the version field in the manifest.
@@ -596,7 +1008,54 @@ export declare interface ICommandSetExtensionManifest extends IClientSideExtensi
596
1008
  };
597
1009
  }
598
1010
 
599
- /* Excluded from this release type: IComponentModuleConfiguration */
1011
+ /* Excluded from this release type: _IComponentFallbackVersion */
1012
+
1013
+ /**
1014
+ * This is the interface for a script module with the "component" type. Modules of this type will be provided via
1015
+ * manifests. In order for the dependency to be loaded, the manifest must be available on the site.
1016
+ *
1017
+ * @beta
1018
+ */
1019
+ export declare interface IComponentModuleConfiguration extends IModuleConfigurationBase {
1020
+ type: 'component';
1021
+ /**
1022
+ * The version of the framework-supplied component to be loaded. For framework runtime component such as
1023
+ * `@microsoft/sp-client-base`, it is recommended the version of the framework component the component was developed
1024
+ * against be specified.
1025
+ *
1026
+ * @remarks
1027
+ *
1028
+ * Supported values: string representing a {@link http://semver.org | semantic version}, or "latest".
1029
+ *
1030
+ * Example: `"2.2.4"`
1031
+ */
1032
+ version: string;
1033
+ /**
1034
+ * The ID of the framework-supplied component to be loaded.
1035
+ *
1036
+ * @remarks
1037
+ *
1038
+ * Supported values: string representing a component's ID.
1039
+ *
1040
+ * Example: `"0d910c1c-13b9-4e1c-9aa4-b008c5e42d7d"`
1041
+ */
1042
+ id: string;
1043
+ /**
1044
+ * A path to the framework-supplied component in case the framework fails to load the requested version.
1045
+ *
1046
+ * @remarks
1047
+ * This must be either a fully-qualified URL, or a path under the paths specified in the `internalModuleBaseUrls`
1048
+ * field. If this field is not specified and the version is not available in the framework runtime, the closest
1049
+ * matching version of the component will be provided instead.
1050
+ *
1051
+ * Supported values: The path to the component either as a fully-qualified URL or as a path under the
1052
+ * paths provided in the "internalModuleBaseUrls" field.
1053
+ *
1054
+ * Example: `"https://code.jquery.com/jquery-2.2.4.min.js"`
1055
+ */
1056
+ failoverPath?: string | IIntegrityPath;
1057
+ /* Excluded from this release type: fallbackVersion */
1058
+ }
600
1059
 
601
1060
  /**
602
1061
  * Flexible layout sizing data
@@ -618,9 +1077,86 @@ export declare interface IFlexibleLayoutSizing {
618
1077
  defaultRowHeight?: number;
619
1078
  }
620
1079
 
621
- /* Excluded from this release type: IIntegrityPath */
1080
+ /* Excluded from this release type: _IFlightedComponent */
622
1081
 
623
- /* Excluded from this release type: ILocalizedPathModuleConfiguration */
1082
+ /* Excluded from this release type: _IFlightOrKillSwitch */
1083
+
1084
+ /* Excluded from this release type: _IIdleLoadComponent */
1085
+
1086
+ /**
1087
+ * A path with the subresource integrity hash of the resource.
1088
+ *
1089
+ * @beta
1090
+ */
1091
+ export declare interface IIntegrityPath {
1092
+ /**
1093
+ * The path to the resource.
1094
+ */
1095
+ path: string;
1096
+ /**
1097
+ * The subresource integrity hash of the resource referenced in {@link IIntegrityPath.path}.
1098
+ */
1099
+ integrity?: string;
1100
+ }
1101
+
1102
+ /* Excluded from this release type: _IKillSwitchComponent */
1103
+
1104
+ /**
1105
+ * This is the interface for a script module with the "localizedPath" type.
1106
+ *
1107
+ * @remarks
1108
+ * Modules of this type must be provided by the component developer. These script resources are similar to those of
1109
+ * the "path" type, but they may be present at a number of different paths, to be selected by the user's locale.
1110
+ * Paths in this module type are loaded exactly the same way as "internal" modules are.
1111
+ *
1112
+ * @beta
1113
+ */
1114
+ export declare interface ILocalizedPathModuleConfiguration extends IModuleConfigurationBase {
1115
+ type: 'localizedPath';
1116
+ /**
1117
+ * A path to this module's default locale javascript resource either as a fully-qualified URL or as a
1118
+ * path under the paths provided in the "internalModuleBaseUrls" field.
1119
+ *
1120
+ * @remarks
1121
+ * If the user's locale does not resolve to one of the paths specified in the "paths" field, the path in this
1122
+ * field is used. Paths in this module type are treated exactly the same way paths in modules of the "internal"
1123
+ * type are treated.
1124
+ *
1125
+ * Supported values: The path to the default locale version of the module either as a fully-qualified URL or as a path
1126
+ * under the paths provided in the "internalModuleBaseUrls" field.
1127
+ *
1128
+ * Example: `"master_2015-04-20/my-application_strings_default_af378e0d.js"`
1129
+ */
1130
+ defaultPath: string | IIntegrityPath;
1131
+ /**
1132
+ * This is a dictionary of locale keys (in the `"ll-cc"` format) to paths to this module's locale
1133
+ * javascript resource either as a fully-qualified URL or as a path under the paths provided in the
1134
+ * `"internalModuleBaseUrls"` field.
1135
+ *
1136
+ * @remarks
1137
+ * The loader will attempt to resolve the user's locale to one of the paths provided by this field, and will load
1138
+ * the script resource under that path. If the user's locale does not resolve to one of the paths specified in this
1139
+ * field, the path in `"defaultPath"` field is used. For example, if the user's locale is `"en-gb"`, and this field's
1140
+ * value contains the keys `[ "en-us", "en-gb", "fr-fr" ]`, the path specified by the `"en-gb"` key will be used.
1141
+ * If the user's locale is "en-gb", and this field's value contains the keys `[ "en-us", "fr-fr" ]`, the path
1142
+ * specified by the `"en-us"` key will be used. If the user's locale is `"en-gb"`, and this field's value contains
1143
+ * the keys `[ "es-es", "fr-fr" ]`, the path specified by the "defaultPath" field will be used.
1144
+ * Paths in this module type are treated exactly the same way paths in modules of the "internal" type are treated.
1145
+ *
1146
+ * Supported values: A dictionary of locale-to-path mappings.
1147
+ *
1148
+ * Example:
1149
+ * ```
1150
+ * {
1151
+ * "en-us": "master_2015-04-20/my-application_strings_en-us_d38ff012.js",
1152
+ * "fr-fr": "master_2015-04-20/my-application_strings_fr-fr_138af7e4.js"
1153
+ * }
1154
+ * ```
1155
+ */
1156
+ paths?: {
1157
+ [locale: string]: string | IIntegrityPath;
1158
+ };
1159
+ }
624
1160
 
625
1161
  /**
626
1162
  * A set of localized strings.
@@ -668,11 +1204,114 @@ export declare interface ILocalizedString {
668
1204
  [locale: string]: string | undefined;
669
1205
  }
670
1206
 
671
- /* Excluded from this release type: IModuleConfiguration */
1207
+ /**
1208
+ * @beta
1209
+ */
1210
+ export declare type IModuleConfiguration = IComponentModuleConfiguration | IPathModuleConfiguration | ILocalizedPathModuleConfiguration;
672
1211
 
673
- /* Excluded from this release type: IModuleConfigurationBase */
1212
+ /**
1213
+ * This is the base interface for a script module's definition.
1214
+ *
1215
+ * @beta
1216
+ */
1217
+ export declare interface IModuleConfigurationBase {
1218
+ /**
1219
+ * The type of the script block. `"component"` modules come from a component,
1220
+ * `"path"` and `"localizedPath"` modules must be available on the paths provided in
1221
+ * the `"internalModuleBaseUrls"` field.
1222
+ *
1223
+ * @remarks
1224
+ *
1225
+ * Modules with the `"path"` type use the `IPathModuleConfiguration` interface.
1226
+ *
1227
+ * Modules with the `"component"` type use the `IComponentModuleConfiguration` interface.
1228
+ * Modules with the "localizedPath" type use the `ILocalizedPathModuleConfiguration` interface.
1229
+ *
1230
+ * Supported values: `"component"`, `"path"`, `"localizedPath"`
1231
+ *
1232
+ * Example: `"localized"`
1233
+ */
1234
+ type: 'component' | 'path' | 'localizedPath';
1235
+ /**
1236
+ * If set to `true`, this module should not be preloaded when loading the component.
1237
+ *
1238
+ * @remarks
1239
+ * The most common case for setting this property to "true" is when a module is defined in a manifest,
1240
+ * but is not required for the module referenced in "entryModuleId" to load. Modules may be defined that
1241
+ * are loaded asynchronously, and these modules do not need to be preloaded. This field implicitly defaults
1242
+ * to `false`.
1243
+ *
1244
+ * Usage: Instructs the module loader to not preload this module.
1245
+ */
1246
+ shouldNotPreload?: boolean;
1247
+ }
674
1248
 
675
- /* Excluded from this release type: IPathModuleConfiguration */
1249
+ /* Excluded from this release type: _IOperatorOrSwitch */
1250
+
1251
+ /**
1252
+ * This is the interface for a script module with the "path" type. Modules of this type must be provided by the
1253
+ * component developer.
1254
+ *
1255
+ * @beta
1256
+ */
1257
+ export declare interface IPathModuleConfiguration extends IModuleConfigurationBase {
1258
+ type: 'path';
1259
+ /**
1260
+ * A path to this module's javascript resource either as a fully-qualified URL or as a path under the
1261
+ * paths provided in the `internalModuleBaseUrls` field.
1262
+ *
1263
+ * @remarks
1264
+ *
1265
+ * For example, if this field's value is `"master_2015-04-20/my-application.bundle_1928f8a0.js"` and
1266
+ * the `"internalModuleBaseUrls"` field's value is
1267
+ * `[ "https://contoso.akamaihd.net/files/", "https://contoso.msecnd.net/files/" ]`, the loader will
1268
+ * first attempt to load this script resource from the URL
1269
+ * `"https://contoso.akamaihd.net/files/master_2015-04-20/my-application.bundle_1928f8a0.js"`.
1270
+ * If loading from that URL fails, the loader will then attempt to load this script resource from
1271
+ * `"https://contoso.msecnd.net/files/master_2015-04-20/my-application.bundle_1928f8a0.js"`.
1272
+ * If that URL fails to load, the component will fail to load and an error will be returned.
1273
+ *
1274
+ * Supported values: The path to the module either as a fully-qualified URL or as a path under the
1275
+ * paths provided in the "internalModuleBaseUrls" field.
1276
+ *
1277
+ * Example: `"master_2015-04-20/my-application.bundle_1928f8a0.js"`
1278
+ */
1279
+ path: string | IIntegrityPath;
1280
+ /**
1281
+ * If this property is specified, this module is considered non-AMD and
1282
+ * the module loader will not expect "define" or "require" to be called.
1283
+ *
1284
+ * @remarks
1285
+ * In order to load scripts that don't follow the AMD/module-pattern where "define" or "require" is
1286
+ * called and dependencies are explicitly listed and exports are explicitly returned, the module loader needs to
1287
+ * know which global variable must be examined. If this property is specified, this module is considered non-AMD and
1288
+ * the module loader will not expect "define" or "require" to be called. Instead, it will wait for the script to
1289
+ * finish loading and examine the global variable specified in this field.
1290
+ *
1291
+ * Supported values: Variable names that are expected to be populated after this module is loaded. For example,
1292
+ * if this module is describing jQuery, this value should probably be "$". If an empty string is specified,
1293
+ * the module loader will throw an exception and the component will fail to load.
1294
+ *
1295
+ * Example: `"$"`
1296
+ */
1297
+ globalName?: string;
1298
+ /**
1299
+ * For non-AMD/module-pattern scripts that have dependencies (for example, jQuery plugins), the module
1300
+ * loader will ensure that those dependencies are already loaded.
1301
+ *
1302
+ * @remarks
1303
+ * Entries in the array specified in this field must refer to other non-AMD modules in this component. This field
1304
+ * is not required to have a value for non-AMD modules. If any values are specified that do not refer to other
1305
+ * modules in the same component manifest that this module is specified, the module loader will throw an exception
1306
+ * and the component will fail to load.
1307
+ *
1308
+ * Supported values: Names of other non-AMD-pattern modules in this loader configuration, as specified by the key
1309
+ * `IClientSideComponentLoaderConfiguration.scriptResources[]`
1310
+ *
1311
+ * Example: `["jquery"]`
1312
+ */
1313
+ globalDependencies?: string[];
1314
+ }
676
1315
 
677
1316
  /* Excluded from this release type: IPrefabAppManifest */
678
1317
 
@@ -692,7 +1331,78 @@ export declare interface ILocalizedString {
692
1331
 
693
1332
  /* Excluded from this release type: ManifestType */
694
1333
 
695
- /* Excluded from this release type: PredefinedGroup */
1334
+ /**
1335
+ * Predefined web part group.
1336
+ *
1337
+ * @beta
1338
+ */
1339
+ export declare const enum PredefinedGroup {
1340
+ /**
1341
+ * Text, media and content.
1342
+ *
1343
+ * This group includes web parts that display text, multi-media, documents, information from the web, and other
1344
+ * rich content.
1345
+ *
1346
+ * @beta
1347
+ */
1348
+ TextMediaAndContent = "cf066440-0614-43d6-98ae-0b31cf14c7c3",
1349
+ /**
1350
+ * Discovery.
1351
+ *
1352
+ * This group includes web parts that organize, group, and filter content to help users discover information.
1353
+ *
1354
+ * @beta
1355
+ */
1356
+ DocumentsListsAndLibraries = "1edbd9a8-0bfb-4aa2-9afd-14b8c45dd489",
1357
+ /**
1358
+ * Communication and collaboration.
1359
+ *
1360
+ * This group includes web parts that facilitate information sharing, team work, and social interactions.
1361
+ *
1362
+ * @beta
1363
+ */
1364
+ Feeds = "75e22ed5-fa14-4829-850a-c890608aca2d",
1365
+ /**
1366
+ * Planning and process.
1367
+ *
1368
+ * This group includes web parts that empower team productivity with the use of planning and process tools.
1369
+ *
1370
+ * @beta
1371
+ */
1372
+ NewsPeopleAndEvents = "1bc7927e-4a5e-4520-b540-71305c79c20a",
1373
+ /**
1374
+ * Business and intelligence.
1375
+ *
1376
+ * This group includes web parts for tracking and analyzing data, and for integrating business flow with pages.
1377
+ *
1378
+ * @beta
1379
+ */
1380
+ DataAnalysis = "4aca9e90-eff5-4fa1-bac7-728f5f157b66",
1381
+ /**
1382
+ * Regional information
1383
+ *
1384
+ * This group includes web parts that display information based on current region and geographical location
1385
+ *
1386
+ * @beta
1387
+ */
1388
+ RegionalInformation = "cfc8bda5-cb9b-49e3-8526-2ee6e52b256a",
1389
+ /**
1390
+ * Other.
1391
+ *
1392
+ * This group includes web parts not in other groups.
1393
+ *
1394
+ * @beta
1395
+ */
1396
+ Advanced = "5c03119e-3074-46fd-976b-c60198311f70",
1397
+ /**
1398
+ * Other.
1399
+ *
1400
+ * This group includes local web parts.
1401
+ *
1402
+ * @beta
1403
+ */
1404
+ Local = "8b7bf6f1-a56a-4aa3-8657-7eb6e7e6af61"
1405
+ }
696
1406
 
697
1407
  /* Excluded from this release type: PrefabAppSiteScript */
698
1408