Skip to content

Commit 985d259

Browse files
committed
Updating 1.14 release notes
1 parent 161eec3 commit 985d259

File tree

6 files changed

+151
-125
lines changed

6 files changed

+151
-125
lines changed
30.4 KB
Loading
Loading
Loading
64.3 KB
Loading

docs/spfx/release-1.14.md

Lines changed: 150 additions & 124 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,15 @@
11
---
22
title: SharePoint Framework v1.14 release notes
33
description: Release notes for the SharePoint Framework v1.14 release
4-
ms.date: 2/10/2022
4+
ms.date: 2/17/2022
55
ms.prod: sharepoint
66
ms.localizationpriority: high
77
---
88
# SharePoint Framework v1.14 release notes
99

1010
There will be multiple public preview release using the **@next** tag in the [NPMJS.org](https://www.npmjs.org) registry before final release candidates and a final public release.
1111

12-
[!INCLUDE [spfx-release-beta](../../includes/snippets/spfx-release-beta.md)]
13-
14-
- Release Candidate 1 **Released:** February 10, 2022
15-
- beta.5 **Released:** January 26, 2022
16-
- beta.4 **Released:** December 8, 2021
12+
**Released:** February 17, 2021
1713

1814
[!INCLUDE [spfx-release-notes-common](../../includes/snippets/spfx-release-notes-common.md)]
1915

@@ -44,114 +40,199 @@ npm install @microsoft/generator-sharepoint@next --global
4440

4541
## New features and capabilities
4642

47-
### Adaptive Card Extensions card view caching
43+
### Adaptive Card Extension updates for Viva Connections
44+
45+
#### Updated the ACE scaffolding for Viva Connections
4846

49-
For improved performance, SharePoint Framework now supports local caching of your Adaptive Card Extension's card views. The cached card view will be immediately rendered when loading your Adaptive Card Extension. After Adaptive Card Extension loads, it can optionally update the card view.
47+
Updated Adaptive Card Extensions scaffolding to be more succinct.
48+
49+
#### Get Current ViewNavigator for Adaptive Card Extension
5050

5151
```typescript
52-
interface ICacheSettings {
53-
/**
54-
* Whether cache is enabled. Default: true
55-
*/
56-
isEnabled: boolean;
57-
/**
58-
* Expiry time in seconds. Default: 86400 seconds (24 hours)
59-
*/
60-
expiryTimeInSeconds: number;
61-
62-
/**
63-
* Returns the Card View used to generate the cached card.
64-
* By default, the currently rendered Card View will be used to cache the card.
65-
*/
66-
cachedCardView?: () => BaseCardView;
67-
}
68-
BaseAdaptiveCardExtension.getCacheSettings(): Partial<ICacheSettings>;
52+
BaseAdaptiveCardExtension.navigator
6953
```
7054

71-
By default caching is enabled with default settings. An Adaptive Card Extension can customize its
72-
cache settings by overriding `getCacheSettings` to return the settings it wants to override.
55+
If the current `renderType` is `Card` then returns `BaseAdaptiveCardExtension.cardNavigator`. If the current `renderType` is `QuickView` then returns `BaseAdaptiveCardExtension.quickViewNavigator`.
7356

74-
When the last known card view shouldn't be cached, you can provide a specific card view to be
75-
cached and displayed on the next page load through `ICacheSettings.cachedCardView`. This card view
76-
doesn't need to have been previously registered.
57+
### List View Command Set Updates
7758

78-
An Adaptive Card Extension can also locally cache its current state. By default no state is cached.
59+
#### Inform ListView on Command Set Changes
7960

8061
```typescript
81-
BaseAdaptiveCardExtension.getCachedState(state: TState): Partial<TState>;
62+
BaseListViewCommandSet.raiseOnChange: () => void
8263
```
8364

84-
If `getCachedState` is overridden, then the cached values will be provided when the Adaptive Card
85-
Extension is initialized on the next page load.
65+
Use this method to fire `onChange` event and initialize a reflow of the ListView.
8666

87-
`onInit` has a new overload, which passes information about the cached card state. If the card wasn't
88-
loaded from a cached card view, then `cachedLoadParameters` will be `undefined`.
67+
#### Expanded List View Accessor State
68+
69+
`ListViewAccessor` provides expanded state of the current list view. **New** state properties are listed below.
70+
71+
- `rows` - currently rendered rows in the list view.
72+
- `selectedRows` - selected rows in the list view.
73+
- `list` - basic information about the list rendered by the list view.
74+
- `view` - basic information about the view rendered by the list view.
75+
- `folderInfo` - folder information for the list view.
76+
- `appliedFilters` - filters applied to the list view.
77+
- `sortField` - sort field name.
78+
- `sortAscending` - specifies whether the list view is sorted ascending or descending.
79+
80+
#### List View State Changed Event
8981

9082
```typescript
91-
interface ICachedLoadParameters {
92-
state: TState;
93-
}
94-
BaseAdaptiveCardExtension.onInit(cachedLoadParameters?: ICachedLoadParameters): Promise<void>;
83+
ListViewAccessor.listViewStateChangedEvent: SPEvent<ListViewStateChangedEventArgs>
9584
```
9685

97-
Initial state of the Adaptive Card Extension can be seeded from the cached state. The cached state can also be used to determine if any further logic needs to be executed.
86+
This event gets raised every time the list view state changes. The arguments contain type of occured event (see `ListViewAccessorStateChanges`) and previous state of the list view (see `IListViewAccessorState`).
9887

99-
State caching and the cache expiry time can be used to determine when
100-
expensive remote calls need to be made by the Adaptive Card Extension.
88+
#### List Command Set Command Disabled Property
10189

102-
Caching can help significantly improve the perceived performance for your Adaptive Card Extension.
90+
```typescript
91+
Command.disabled: boolean | undefined;
92+
```
93+
94+
### Web Part specific updates
10395

104-
### Web Part lifecycle method for theme changes
96+
#### Predefined Web Part Picker Group for Web Parts in Development
97+
98+
```typescript
99+
PredefinedGroup.Local = '8b7bf6f1-a56a-4aa3-8657-7eb6e7e6af61';
100+
```
101+
102+
The group displays locally debugged web parts.
103+
104+
#### Callback to Clear DOM Element Before Loading Indicator or Error Element is Displayed
105+
106+
```typescript
107+
IClientSideWebPartStatusRenderer.displayLoadingIndicator(domElement: Element, loadingMessage: string, timeout?: number, clearDomElementCallback?: ClearDomElementCallback): void;
108+
IClientSideWebPartStatusRenderer.renderError(domElement: HTMLElement, error: Error | string, clearDomElementCallback?: ClearDomElementCallback);
109+
```
110+
111+
Use `clearDomElementCallback` to clear the DOM node.
112+
113+
#### Web Part lifecycle method for theme changes
105114

106115
```typescript
107116
BaseClientSideWebPart.onThemeChanged(theme: IReadonlyTheme | undefined): void;
108117
```
109118

110-
When a theme is initialized or changed on a page, `onThemeChanged` will be invoked with the new theme.
119+
When a theme is initialized or changed on a page, `onThemeChanged` will be invoked with the new
120+
theme.
111121

112-
> [!NOTE]
122+
> [!IMPORTANT]
113123
> `render` should not be invoked in `onThemeChanged`. Calling `render` can lead to unpredicted re-flow of the web part. `render` will automatically be invoked if needed.
114124
115-
### Detect if a component is loading from localhost
125+
#### Updated Web Part Templates
126+
127+
- No Framework, and React templates are updated with new user-friendly UI
128+
- New "Minimal" template is added: allows to start development with the minimal amount of code provisioned.
129+
130+
### Other generic updates and changes
131+
132+
#### Changes to Scaffolding Options and Prompts
133+
134+
The next propmts were deprecated in favor to their defaults:
135+
136+
- Solution description
137+
- Environment (SharePoint) version
138+
- Tenant-wide deployment
139+
- Isolated permissions
140+
- Component description
141+
142+
#### Detect if a component is loading from localhost
116143

117144
```typescript
118145
BaseComponentContext.isServedFromLocalhost(): boolean;
119146
```
120147

121148
Any SPFx component can now check if it's currently running from code served locally.
122149

123-
### Hide a Property Pane group name
150+
#### Hide a Property Pane group name
124151

125152
```typescript
126153
IPropertyPaneGroup.isGroupNameHidden?: boolean;
127154
```
128155

129-
`isGroupNameHidden` can be used to skip the rendering of the Property Pane group name to avoid an empty group header being displayed.
156+
`isGroupNameHidden` can be used to skip the rendering of the Property Pane group name to avoid an
157+
empty group header being displayed.
130158

131159
The default value of `isGroupNameHidden` is false.
132160

133-
### Updated Web Part Templates
161+
#### ipAddress Property in serve.json
162+
New property `ipAddress` has been added to `serve.json` configuration. This parameter is helpful when using Docker containers. For example, to set the serve host as '0.0.0.0'.
163+
This property will be explicitly used to wind up the server, meaning all debug URLs and webpack configurations will not be affected.
134164

135-
- No Framework, and React templates are updated with new end-user friendly UI for SharePoint and Microsoft Teams with theme detection, section background color support and more.
136-
- New "Minimal" template is added: allows to start development with the minimal amount of code provisioned.
165+
## Preview Features and Capabilities
166+
167+
Following features are still in preview status as part of the 1.14 release and should not be used in production. We are looking into releasing them officially as part of the upcoming 1.15 release.
168+
169+
### Adaptive Card Extensions card view caching
137170

138-
### Get Current ViewNavigator for Adaptive Card Extension
171+
For improved performance, SPFx now supports local caching of your Adaptive Card Extension's
172+
card views. The cached card view will be immediately rendered when loading your Adaptive Card
173+
Extension. After your Adaptive Card Extension loads, it can optionally update the card view.
139174

140175
```typescript
141-
BaseAdaptiveCardExtension.navigator
176+
interface ICacheSettings {
177+
/**
178+
* Whether cache is enabled. Default: true
179+
*/
180+
isEnabled: boolean;
181+
/**
182+
* Expiry time in seconds. Default: 86400 seconds (24 hours)
183+
*/
184+
expiryTimeInSeconds: number;
185+
186+
/**
187+
* Returns the Card View used to generate the cached card.
188+
* By default, the currently rendered Card View will be used to cache the card.
189+
*/
190+
cachedCardView?: () => BaseCardView;
191+
}
192+
BaseAdaptiveCardExtension.getCacheSettings(): Partial<ICacheSettings>;
142193
```
143194

144-
If the current `renderType` is `Card` then returns `BaseAdaptiveCardExtension.cardNavigator`. If the current `renderType` is `QuickView` then returns `BaseAdaptiveCardExtension.quickViewNavigator`.
195+
By default caching is enabled with default settings. An Adaptive Card Extension can customize its
196+
cache settings by overriding `getCacheSettings` to return the settings it wants to override.
145197

146-
#### Error Handler Method. This method will be invoked when an Action throws an error.
198+
When the last known card view shouldn't be cached, you can provide a specific card view to be
199+
cached and displayed on the next page load through `ICacheSettings.cachedCardView`. This card view
200+
doesn't need to have been previously registered.
201+
202+
An Adaptive Card Extension can also locally cache its current state. By default no state is cached.
203+
204+
```typescript
205+
BaseAdaptiveCardExtension.getCachedState(state: TState): Partial<TState>;
206+
```
207+
208+
If `getCachedState` is overridden, then the cached values will be provided when the Adaptive Card
209+
Extension is initialized on the next page load.
210+
211+
`onInit` has a new overload, which passes information about the cached card state. If the card wasn't
212+
loaded from a cached card view, then `cachedLoadParameters` will be `undefined`.
213+
214+
```typescript
215+
interface ICachedLoadParameters {
216+
state: TState;
217+
}
218+
BaseAdaptiveCardExtension.onInit(cachedLoadParameters?: ICachedLoadParameters): Promise<void>;
219+
```
220+
221+
Your Adaptive Card Extension's initial state can be seeded from the cached state. The cached state can also be used to determine if any further logic needs to be executed.
222+
223+
State caching and the cache expiry time can be used to determine when expensive remote calls need to be made by the Adaptive Card Extension.
224+
225+
Caching can help significantly improve the perceived performance for your Adaptive Card Extension.
226+
227+
### Error Handler Method. This method will be invoked when an Action throws an error
147228

148229
```typescript
149230
BaseView.onActionError(error: IActionErrorArguments): void
150231
```
151232

152233
Override this method to handle errors from Adaptive Card actions.
153234

154-
### New Action types for media and geolocation.
235+
### New Action types for media and geolocation
155236

156237
> [!NOTE]
157238
> These new actions are **only available in the browser** currently. Viva Connections desktop and Viva Connections mobile support will be enabled later.
@@ -165,6 +246,7 @@ Get Location | Not Supported | Supported | Supported
165246
Show Location | Not Supported | Supported | Supported
166247

167248
```typescript
249+
168250
ISPFxAdaptiveCard.actions?: (
169251
| ISubmitAction
170252
| IOpenUrlAction
@@ -189,7 +271,7 @@ The SelectMedia and Location action can be configured as shown below:
189271
type: 'VivaAction.GetLocation',
190272
id: 'Get Location',
191273
parameters: {chooseLocationOnMap: true}
192-
},
274+
}
193275
{
194276
type: 'VivaAction.ShowLocation',
195277
id: 'Show Location',
@@ -198,79 +280,23 @@ The SelectMedia and Location action can be configured as shown below:
198280
]
199281
```
200282

201-
### List View Command Set Updates
202-
203-
> [NOTE!]
204-
> Although the APIs are added, the functionality may not be available on some tenants.
205-
206-
#### Inform ListView on Command Set Changes
207-
208-
```typescript
209-
BaseListViewCommandSet.raiseOnChange: () => void
210-
```
211-
212-
Use this method to fire `onChange` event and initialize a reflow of the ListView.
283+
The actions will be rendered as below
213284

214-
#### Expanded List View Accessor State
285+
Location Action:
215286

216-
`ListViewAccessor` provides expanded state of the current list view. **New** state properties are listed below.
287+
![Image showing a site footer with a logo](../images/release-notes/114/___location-action.jpg)
217288

218-
- `rows` - currently rendered rows in the list view.
219-
- `selectedRows` - selected rows in the list view.
220-
- `list` - basic information about the list rendered by the list view.
221-
- `view` - basic information about the view rendered by the list view.
222-
- `folderInfo` - folder information for the list view.
223-
- `appliedFilters` - filters applied to the list view.
224-
- `sortField` - sort field name.
225-
- `sortAscending` - specifies whether the list view is sorted ascending or descending.
226-
227-
#### List View State Changed Event
228-
229-
```typescript
230-
ListViewAccessor.listViewStateChangedEvent: SPEvent<ListViewStateChangedEventArgs>
231-
```
289+
Select Media Action:
232290

233-
This event gets raised every time the list view state changes. The arguments contain type of occurred event (see `ListViewAccessorStateChanges`) and previous state of the list view (see `IListViewAccessorState`).
291+
![Image showing a site footer with a logo](../images/release-notes/114/file-action.jpg)
234292

235-
#### List Command Set Command Disabled Property
236-
237-
```typescript
238-
Command.disabled: boolean | undefined;
239-
```
240-
241-
### Predefined Web Part Picker Group for Web Parts in Development
242-
243-
```typescript
244-
PredefinedGroup.Local = '8b7bf6f1-a56a-4aa3-8657-7eb6e7e6af61';
245-
```
246-
247-
The group displays locally debugged web parts.
248-
249-
### Call back to Clear DOM Element Before Loading Indicator or Error Element is Displayed
250-
251-
```typescript
252-
IClientSideWebPartStatusRenderer.displayLoadingIndicator(domElement: Element, loadingMessage: string, timeout?: number, clearDomElementCallback?: ClearDomElementCallback): void;
253-
IClientSideWebPartStatusRenderer.renderError(domElement: HTMLElement, error: Error | string, clearDomElementCallback?: ClearDomElementCallback);
254-
```
255-
256-
Use `clearDomElementCallback` to clear the DOM node.
257-
258-
### ipAddress Property in serve.json
259-
260-
New property `ipAddress` has been added to `serve.json` configuration. This parameter is helpful when using Docker containers. For example, to set the serve host as '0.0.0.0'.
261-
This property will be explicitly used to wind up the server, meaning all debug URLs and webpack configurations won't be affected.
293+
The Location Action can be used to get your current ___location, show your current or a custom ___location on a map, and choose your current ___location from a map. In the browser it uses Bing Maps as the mapping interface:
262294

295+
![Image showing a site footer with a logo](../images/release-notes/114/___location-panel.jpg)
263296

264-
### Changes to Scaffolding Options and Prompts
297+
The Select Media Action can be used to select Images from your native device. In the browser it uses the file picker to help access relavant files:
265298

266-
- New prompt for solution description is added.
267-
- "Tenant-wide deployment" prompt is removed. The property is set to `true` by default and can be changed manually or using `skip-feature-deployment` argument.
268-
- The next prompts were deprecated in favor to their defaults:
269-
- Solution description
270-
- Environment (SharePoint) version
271-
- Tenant-wide deployment
272-
- Isolated permissions
273-
- Component description
299+
![Image showing a site footer with a logo](../images/release-notes/114/media-panel.jpg)
274300

275301
## Deprecations and removed items in this release
276302

docs/toc.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -450,7 +450,7 @@
450450
items:
451451
- name: Overview
452452
href: spfx/roadmap.md
453-
- name: SPFx v1.14 RC - February 10, 2022
453+
- name: SPFx v1.14 - February 17, 2022
454454
href: spfx/release-1.14.md
455455
- name: SPFx v1.13.1 - November 23, 2021
456456
href: spfx/release-1.13.1.md

0 commit comments

Comments
 (0)