Skip to content

Latest commit

 

History

History
43 lines (31 loc) · 236 KB

breaking-changes.md

File metadata and controls

43 lines (31 loc) · 236 KB

Breaking Changes in the last four months

  • Additional Q&A about breaking changes can be found here
  • To ask a question about breaking changes use this

8.55.0.5

7928571Add edit title experience



**Expected Errors:**

- Since the new API (UpdatableHeader) was added to the part's container/context the build errors and runtime issues would be expected for partners who have unit tests that are manually created part's container/context for that tests.

**Solution:**

- If you have unit tests that are manually created part's container/context and receive any build/runtime errors about the updatableHeader is not defined you will need to update the places in your tests where part's container/context is created to add this lines 

                const updatableHeader = {
                    enableForExtensionRenderedHeader: (partOnChange: (partHeader: UpdatableHeader.PartHeader) => void, options?: UpdatableHeader.Options) => {
                        if (!updatableHeader.options()) {
                            updatableHeader.options(options || {});
                            updatableHeader.updatedHeader.subscribe(this, (partHeader) => {
                                partHeader && partOnChange(partHeader);
                            });
                        }
                    },
                    updatedHeader: ko.observable<UpdatableHeader.PartHeader>(),
                    options: ko.observable<UpdatableHeader.Options>(),
                };

// your container part definition const partContainer = {
// intialization of some other fields that were here before
updatableHeader,
};
                // or for your part context definition                 const partContext = {
                   // intialization of some other fields that were here before
                   
                   updatableHeader,
              };

**Reason For Breaking Change**

- By numerous requests for partners and customers we introduce ability for users to change the part titles on dashboard.
   For parts that used standard parts title/subtitle this support would be added automatically;
   For parts that rendered their own title/subtitle - these parts would need to enableForExtensionRenderedHeader method to enable this functionality;

8.43.0.5

9702120Adopt the SAL library for token validation

** Expected Errors: ** 

- You may see `System.Reflection.ReflectionTypeLoadException: Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.` errors for the following libraries:

<PackageReference Update="Microsoft.IdentityModel.S2S" Version="[3.14.0]" />
<PackageReference Update="Microsoft.IdentityModel.Protocols.OpenIdConnect" Version="[6.11.0]" />
<PackageReference Update="Microsoft.Identity.Client" Version="[4.15.0]" />
<PackageReference Update="Microsoft.IdentityModel.Tokens" Version="[6.11.0]" />
<PackageReference Update="System.IdentityModel.Tokens.Jwt" Version="[6.11.0]" />
<PackageReference Update="Microsoft.IdentityModel.JsonWebTokens" Version="[6.11.0]" />
<PackageReference Update="Microsoft.IdentityModel.Logging" Version="[6.11.0]" />

- In your extension's web.config file, add the following entry. This contains the application ID of the portal's AAD application and will never change. This should only be required
<add key="Microsoft.Portal.Security.AzureActiveDirectory.AadAuthenticationConfiguration.ClientId" value="c44b4083-3bb0-49c1-b47d-974e53cbdf3c" />

- You may see an error similar to the following `Unable to find version '3.14.0' of package 'Microsoft.IdentityModel.S2S.Tokens'.` during the nuget package installation process.
Please use the Portal SDK version the contains the following fix for the package inclusion: "Bug 10955536: Include the Microsoft.IdentityModel.S2S as one of the external packages shipped with the Microsoft.Portal.Security.AadCore nuget package." Otherwise, you'll need to include the Microsoft.IdentityModel.S2S package v3.14.0 in your extension's ADO feed: https://identitydivision.visualstudio.com/DevEx/_packaging?_a=package&feed=IDDP%40Release&package=Microsoft.IdentityModel.S2S&protocolType=NuGet&version=3.14.0&view=overview

** Solution: **

- Add or update the existing package references for the libraries listed above in your extension's packages.config file (or equivalent).
- Add these package references to your CSPROJ file as well

** Reason for breaking change: **

The Microsoft.Portal.AadCore assembly has a new dependency on the ServiceAuthLibrary (SAL). For more information about the SAL library, please see the following page: https://identitydivision.visualstudio.com/DevEx/_wiki/wikis/DevEx.wiki/56/ServiceAuthLibrary-SAL-

8.16.0.5

9896588Require extension name in C# test framework and pass that in the Url


The C# test framework now requires a partner team email to be provided starting with version 1.0.232.0.  

** Expected Errors: **
If a partner team email is not provided, the C# test framework will throw an exception at runtime with a message similar to the following:
    "A partner team email must be provided via environment variable or in your app.config file via the value 'PartnerTeamEmail'."

** Solution: **
The partner team email can be provided in 1 of 2 ways:
  1.  The environment variable "PartnerTeamEmail" can be set with the team's email.  eg: in a command line "SET PartnerTeamEmail[email protected]"
  2.  The configuration setting "PartnerTeamEmail" can be set in the app.config.  eg:  <add key="PartnerTeamEmail" value="myTeamEmail@microsoft.com" />
If both are provided, the environment variable will take precedence.

** Reason for Breaking Change**

The email is required so that we can correlate the incoming test traffic telemetry with the their team owners.  

8.13.0.5

9856363OBSOLETE: FxImpl.Azure.BaseResourceDropDown



**Expected Errors:** FxImpl.Azure.BaseResourceDropDown is obsolete. Its usage will be flagged as a compile-time typescript error at build time.

FxImpl.Azure.BaseResourceDropDown

FxImpl.Azure.BaseResourceDropDown.FilterComboBoxResult

FxImpl.Azure.BaseResourceDropDown.Config

FxImpl.Azure.BaseResourceDropDown<T>

**Solution:**  Use Fx/Controls/BaseResourceDropDown instead.

**Reason For Breaking Change:** The newer control has better accessibility support.

8.7.0.5

9849043[AzurePortal-Test] Require extension name in msportalfx-test config and pass that in the Url



Expected Errors:

- When running azureportal-tests (formerly msportalfx-test), the PortalConfigurationManager class will throw a runtime error `No partner team name has been provided! The name can be specified as '--partnerTeam' argument, 'partnerTeam' environment variable or 'partnerTeam' field in config.json. For details see https://aka.ms/portalfx/e2e-testing#partner-team-name`

Solution:

- If you receive this error, follow instructions in the error message or see an example at https://aka.ms/portalfx/e2e-testing#partner-team-name

Reason For Breaking Change

- Having an ability to see a footprint of which team runs an extension test.

8.5.0.5

10044366Deprecate JQuery Promise and Deferred helpers

JQuery Promise and Deferred helpers are being deprecated in the Portal framework.  Please switch to native promises.

MsPortalFx.Helpers.Deferred --  Use defer() from the "Fx" module.
MsPortalFx.Helpers.resolve -- Use Promise.resove().
MsPortalFx.Helpers.reject -- Use Promise.reject().

The JQuery helpers are being deprecated and eventually removed.  JQuery promises are non-standard.  For consistent behavior and better performance extensions should use native promises.

8.4.0.5

9856493OBSOLETE: MsPortalFx.ViewModels.Controls.Documents.DiscussionThread

 

**Expected Errors:*
You will receive a warning at build time stating that MsPortalFx.ViewModels.Controls.Documents.DiscussionThread and its associated types are obsolete.
The following types are obsolete:
  • MsPortalFx.ViewModels.Controls.Documents.DiscussionThread.DiscussionSaveResult
  • MsPortalFx.ViewModels.Controls.Documents.DiscussionThread.DiscussionCommentSaveResult
  • MsPortalFx.ViewModels.Controls.Documents.DiscussionThread.DiscussionThreadSaveResult
  • MsPortalFx.ViewModels.Controls.Documents.DiscussionThread.DiscussionAuthor
  • MsPortalFx.ViewModels.Controls.Documents.DiscussionThread.DiscussionItem
  • MsPortalFx.ViewModels.Controls.Documents.DiscussionThread.DiscussionComment
  • MsPortalFx.ViewModels.Controls.Documents.DiscussionThread.DiscussionCommentViewModel
  •  MsPortalFx.ViewModels.Controls.Documents.DiscussionThread.DiscussionThread
  • MsPortalFx.ViewModels.Controls.Documents.DiscussionThread.DiscussionThreadViewModel
**Solution** 

Please use Fx/Controls/CustomHTML instead.

**Reason for Breaking Change**
MsPortalFx.ViewModels.Controls.Documents.DiscussionThread is no longer supported. The viewModel and its associated types have been obsoleted in the May2021 breaking SDK release. Please use Fx/Controls/CustomHTML which uses AMD imports that improves Portal performance.

8.3.0.5

9856310OBSOLETE: MsPortalFx.ViewModels.Controls.Lists.ListView

The MsPortalFx.ViewModels.Controls.Lists.ListView is obsolete.  Please use "Fx/Controls/ListView" instead.

If you are using the ListView you will run into compilation errors with the following types:

MsPortalFx.ViewModels.Controls.Lists.ListView.Extensions
MsPortalFx.ViewModels.Controls.Lists.ListView.GroupOrder
MsPortalFx.ViewModels.Controls.Lists.ListView.SelectionMode
MsPortalFx.ViewModels.Controls.Lists.ListView.ItemMetadata
MsPortalFx.ViewModels.Controls.Lists.ListView.ListViewItem
MsPortalFx.ViewModels.Controls.Lists.ListView.Item
MsPortalFx.ViewModels.Controls.Lists.ListView.SelectableEventObject
MsPortalFx.ViewModels.Controls.Lists.ListView.GroupableOptions
MsPortalFx.ViewModels.Controls.Lists.ListView.SelectableOptions
MsPortalFx.ViewModels.Controls.Lists.ListView.FilterableOptions
MsPortalFx.ViewModels.Controls.Lists.ListView.ExtensionOptions
MsPortalFx.ViewModels.Controls.Lists.ListView.Group
MsPortalFx.ViewModels.Controls.Lists.ListView.Contract
MsPortalFx.ViewModels.Controls.Lists.ListView.ViewModel

8.2.0.5

9995761PRE-REMOVE: MsPortalFx.ViewModels.Controls.Wizard - log error in constructor for 6 more months



**Expected Errors:** MsPortalFx.ViewModels.Controls.Wizard is obsolete and no longer a supported navigation/layout model. Its usage will be flagged as a compile-time typescript error at build time.

MsPortalFx.ViewModels.Controls.Wizard.WizardMode

MsPortalFx.ViewModels.Controls.Wizard.
StepType

MsPortalFx.ViewModels.Controls.Wizard.WizardStepSelection

MsPortalFx.ViewModels.Controls.Wizard.StepState

MsPortalFx.ViewModels.Controls.Wizard.StepInput

MsPortalFx.ViewModels.Controls.Wizard.StepOutput

MsPortalFx.ViewModels.Controls.Wizard.WizardState

MsPortalFx.ViewModels.Controls.Wizard.SelectorStep

MsPortalFx.ViewModels.Controls.Wizard.Contract

MsPortalFx.ViewModels.Controls.Wizard.WizardStepBase

MsPortalFx.ViewModels.Controls.Wizard.WizardStep

MsPortalFx.ViewModels.Controls.Wizard.ViewModel

**Solution:** Redesign the blades for better full screen blade experiences.

**Reason For Breaking Change** This control is no longer a supported navigation/layout model and has been communicated as deprecated for 2+ years. Extensions should redesign affected blades for a better full-screen experience.

9995760PRE-REMOVE: MsPortalFx.ViewModels.Forms.StaticSection - log error in constructor for 6 more months



**Expected Errors:** MsPortalFx.ViewModels.Forms.StaticSection.ViewModel is obsolete. Its usage will be flagged as a compile-time typescript error at build time.

**Solution:** Please use Fx/Controls/Section instead.


9995756PRE-REMOVE: MsPortalFx.ViewModels.Forms.CreatorAndSelectorV2 - log error in constructor for 6 more months


**Expected Errors:** MsPortalFx.ViewModels.Forms.CreatorAndSelectorV2.ObsoleteCreatorAndSelectorValue has been removed and its usage is now runtime-breaking.

MsPortalFx.ViewModels.Forms.CreatorAndSelectorV2.Mode is obsolete. Its usage will be flagged as a compile-time typescript error at build time.

**Solution:** Redesign the blades for better full screen blade experiences.

**Reason For Breaking Change** This control is no longer a supported navigation/layout model and has been communicated as deprecated for 2+ years. Extensions should redesign the blades for a better full-screen experience.

9995755PRE-REMOVE: MsPortalFx.ViewModels.Obsolete.Forms.DropDown - log error in constructor for 6 more months



**Expected Errors:** MsPortalFx.ViewModels.Obsolete.Forms.DropDown is obsolete and its usage gets flagged as a compile-time typescript error at build time:

MsPortalFx.ViewModels.Obsolete.Forms.DropDown.ViewModel is obsolete.

**Solution:** Please use Fx/Controls/DropDown instead.

**Reason For Breaking Change:** The latter control has a better accessibility support in the new variant.

9885996await for window resize in test fx

 

 

**Expected Errors:** 

 

- Expected build errors for usages of PortalWebDriver.createWebDriver as now it returns a promise. This function should not be used by extensions though.

 

**Solution:** 

 

- add 'await' before the function call

 

**Reason For Breaking Change** 

 

- This is a bug fix. The test should not start executing before the window has been resized.

9880506Convert Q to async/await in msportalfx-test notificationpane helper code

 

 

**Expected Errors:** 

 

- If you are using the public method "waitForNewNotification" in msportalfx-test from the src\msportalfx-test\src\Notifications\NotificationsPane.ts file, but specifically using it for Q promise only functionality, or have a type return expected from this method that is Q.Promise then build errors might happen as a result of type conflict.

 

**Solution:** 

 

- Simply update the type to expect a native promise instead of a Q.Promise. If you are relying on functionality only available in a Q.Promise, then simply wrap the result of this public method with a Q like so:

Q(notificationsPane.waitForNewNotification)

 

**Reason For Breaking Change** 

 

- We are systematically removing our use of Q throughout the entire codebase and replacing them with native promises. This is for perf as well as other reasons. This is merely one small removal of a Q.Promise use case.


9870059Update ServiceToServiceAccessTokenProvider from ADAL to MSAL

9865491Replace AjaxMin with NUglify minifier (JavaScript and CSS)

9856534OBSOLETE: MsPortalFx.ViewModels.Controls.SpecComparisonTable

 

**Expected Errors:*
You will receive a warning at build time stating that MsPortalFx.ViewModels.Controls.SpecComparisonTable and its associated types are obsolete.
The following types are obsolete:
  • MsPortalFx.ViewModels.Controls.SpecComparisonTable.Options
  • MsPortalFx.ViewModels.Controls.SpecComparisonTable.Colors
  • MsPortalFx.ViewModels.Controls.SpecComparisonTable.Header
  • MsPortalFx.ViewModels.Controls.SpecComparisonTable.Row
  • MsPortalFx.ViewModels.Controls.SpecComparisonTable.ViewModel
**Solution** 

Please use Fx/Controls/DataGrid, Fx/Controls/EditableGrid, or a custom implementation instead.

**Reason for Breaking Change**
MsPortalFx.ViewModels.Controls.SpecComparisonTable is no longer supported. The viewModel and its associated types have been obsoleted in the May2021 breaking SDK release. Please use Fx/Controls/DataGrid, Fx/Controls/EditableGrid which use AMD imports that improves Portal performance.

9856528DEPRECATE: MsPortalFx.ViewModels.Controls.Unsupported.AzureMediaPlayer

 

**Expected Errors:*
You will receive a warning at build time stating that MsPortalFx.ViewModels.Controls.Unsupported.AzureMediaPlayer and its associated types are deprecated.
The following types are deprecated:
  • MsPortalFx.ViewModels.Controls.Unsupported.AzureMediaPlayer.Options
  • MsPortalFx.ViewModels.Controls.Unsupported.AzureMediaPlayer.LogoConfig
  • MsPortalFx.ViewModels.Controls.Unsupported.AzureMediaPlayer.Source
  • MsPortalFx.ViewModels.Controls.Unsupported.AzureMediaPlayer.ProtectionInfo
  • MsPortalFx.ViewModels.Controls.Unsupported.AzureMediaPlayer.ProtectionType
  • MsPortalFx.ViewModels.Controls.Unsupported.AzureMediaPlayer.StreamingFormatMimeType
  • MsPortalFx.ViewModels.Controls.Unsupported.AzureMediaPlayer.ViewModel
**Solution** 

Please use Fx/Controls/Video instead.

**Reason for Breaking Change**
MsPortalFx.ViewModels.Controls.Unsupported.AzureMediaPlayer is no longer supported. The viewModel and its associated types have been deprecated in the May2021 breaking SDK release. Please use Fx/Controls/Video which uses AMD imports that improves Portal performance.

9856521DEPRECATE: Fx/Specs/DropDown



**Expected Errors:** Fx/Specs/DropDown is deprecated. Usage of Fx/Specs/DropDown view models and options will be flagged as a compile-time TSLint error at build time.

Fx/Specs/DropDown.PricingBladeSelection

Fx/Specs/DropDown.PricingBladeReferenceClass

Fx/Specs/DropDown.PricingBladeReferenceFactory

Fx/Specs/DropDown.BaseOptions

Fx/Specs/DropDown.Options

Fx/Specs/DropDown.OptionsWithBladeReference

Fx/Specs/DropDown.SelectableSection

Fx/Specs/DropDown.DropDown

**Solution:** Please use Fx/Controls/DropDown instead. Pickers in general are an older pattern that has been replaced by the new create experience with tabs and drop-downs, e.g. samples at https://df.onecloud.azure-test.net/#blade/SamplesExtension/CreateLauncherBlade.

**Reason For Breaking Change:** This control is part of an old pattern as described above.

9856512DEPRECATE: MsPortalFx.ViewModels.Controls.Lists.TreeView

MsPortalFx.ViewModels.Controls.Lists.TreeView has been deprecated.  You should encounter deprecation errors when compiling if you are using this control.

Instances of this control can be replaced with the "Fx/Controls/TreeView" control.  The AMD control works similarly to the old control but with slightly enhanced contracts and options.  The full details of the new API are in intellisense supplied by the Fx.d.ts file from your SDK.  However, you can also see the API here:


The following short descriptions of the changes should help converting to the new control:.
  • Control is now imported as an AMD module from "Fx/Controls/TreeView".
  • The control is created with a "create" function instead of constructor.
  • Instead of a ViewModel the control has a Contract.
  • "ExtensionsOptions" interface was renamed to "Options".
  • "Extensions" enum and bit flags were removed. Instead setting an option enables it.
  • The "extensions" and "extensionsOptions" properties were removed from the contract.
  • The "items" constructor param was changed to an option.
  • The following internal options/properties were removed from public view "loadingPath", "syncToken", "toggleNodeCallback".
  • New options were added tor "htmlTemplates" and "pathSeparator" and the corresponding contract properties were removed.
  • All promises were changed to native "Promise" type (You can still use Q if you want because it now extends native Promise in the framework).
  • The "supplyCommands" option was moved from "selection" to "contextMenu".
  • Toolbar types where changed to "Fx/Controls/Toolbar" types.
  • The "commandGroup" property was removed from the item contract.
  • The "TSelection" generic type was removed along with the "createSelection" callback. Instead we have a fixed "SelectedItem" type that includes the item and path.
  • The "selectableData" property and types were removed. Instead we have two properties on the contract "selectedPaths" which gets or sets the current selection and "selectedItems" that returns the current selection. These work for both single and multiple selection.
  • The "initialPath" option was removed. It was a strange option that only worked in single select. Setting the "selectedPaths" before the widget is created is equivalent.
  • Added readonly to properties where applicable.  Initial values should be set through options now.
  • readonly was added to Item and Metadata properties.  This may require you to construct the properties all at once.
  • rightClick renamed to contextMenu
  • onDemandLoadable renamed to deferredLoading
  • loadByContinuationToken renamed sequentialLoading
  • loadMoreNode renamed loadMoreChildItems
  • added canLoadMoreRootItems option
The UI rendering for the TreeView has not been modified.  All existing test harnesses that manipulate the UI should continue to work without change.

9856502DEPRECATE: MsPortalFx.ViewModels.ClickableLink



**Expected Errors:** MsPortalFx.ViewModels.ClickableLink is deprecated. Usage of MsPortalFx.ViewModels.ClickableLink will be flagged as a compile-time TSLint error at build time.

**Solution:** Please use `import { ClickableLink } from "Fx/Composition";` instead.

**Reason For Breaking Change:** This control has a better accessibility support in the new variant plus consistency with the newest APIs.

9856480DEPRECATE: MsPortalFx.ViewModels.Controls.Command

 

**Expected Errors:*
You will receive a warning with the following message:
"MsPortalFx.ViewModels.Controls.Command and its associated types are deprecated. Please integrate your command logic directly at its point-of-use, removing the MsPortalFx.ViewModels.Controls.Command wrapper." 

The following interfaces and classes are deprecated:
  • MsPortalFx.ViewModels.Controls.Command.Status
  • MsPortalFx.ViewModels.Controls.Command.Handler
  • MsPortalFx.ViewModels.Controls.Command.Contract
  • MsPortalFx.ViewModels.Controls.Command.ViewModel
  • MsPortalFx.ViewModels.Controls.Command.DelegatingHandler
**Solution**
 Please integrate your command logic directly at its point-of-use, removing the MsPortalFx.ViewModels.Controls.Command wrapper.

**Reason for Breaking Change**
MsPortalFx.ViewModels.Controls.Command is no longer supported. The viewModel has been deprecated in the May2021 breaking SDK release.

9856472Obsolete: MsPortalFx.ViewModels.Controls.Data.QueryBuilder

 

**Expected Errors:*
You will receive a warning at build time stating that MsPortalFx.ViewModels.Controls.Data.QueryBuilder and its associated types are obsolete.
The following types are obsolete:
  • MsPortalFx.ViewModels.Controls.Data.QueryBuilder.QueryLoading
  • MsPortalFx.ViewModels.Controls.Data.QueryBuilder.QueryLoadingStatus
  • MsPortalFx.ViewModels.Controls.Data.QueryBuilder.CallbackMethodQuery
  • MsPortalFx.ViewModels.Controls.Data.QueryBuilder.CallbackMethodType
  • MsPortalFx.ViewModels.Controls.Data.QueryBuilder.CallbackMethod
  • MsPortalFx.ViewModels.Controls.Data.QueryBuilder.QueryExpressionType
  • MsPortalFx.ViewModels.Controls.Data.QueryBuilder.QueryExpression
  • MsPortalFx.ViewModels.Controls.Data.QueryBuilder.QueryGroup
  • MsPortalFx.ViewModels.Controls.Data.QueryBuilder.QueryPredicate
  • MsPortalFx.ViewModels.Controls.Data.QueryBuilder.QueryPredicateOperands
  • MsPortalFx.ViewModels.Controls.Data.QueryBuilder.QueryPredicateOperandValue
  • MsPortalFx.ViewModels.Controls.Data.QueryBuilder.Schema
  • MsPortalFx.ViewModels.Controls.Data.QueryBuilder.SchemaObject
  • MsPortalFx.ViewModels.Controls.Data.QueryBuilder.SchemaConnector
  • MsPortalFx.ViewModels.Controls.Data.QueryBuilder.SchemaField
  • MsPortalFx.ViewModels.Controls.Data.QueryBuilder.SchemaOperand
  • MsPortalFx.ViewModels.Controls.Data.QueryBuilder.SchemaOperator
  • MsPortalFx.ViewModels.Controls.Data.QueryBuilder.ResourceStrings
  • MsPortalFx.ViewModels.Controls.Data.QueryBuilder.ResourceItem
  • MsPortalFx.ViewModels.Controls.Data.QueryBuilder.ISchemaObjectBaseViewModel
  • MsPortalFx.ViewModels.Controls.Data.QueryBuilder.ISchemaConnectorViewModel
  • MsPortalFx.ViewModels.Controls.Data.QueryBuilder.IQueryExpressionViewModel
  • MsPortalFx.ViewModels.Controls.Data.QueryBuilder.ISchemaFieldViewModel
  • MsPortalFx.ViewModels.Controls.Data.QueryBuilder.ISchemaOperatorViewModel
  • MsPortalFx.ViewModels.Controls.Data.QueryBuilder.ISchemaOperandViewModel
  • MsPortalFx.ViewModels.Controls.Data.QueryBuilder.IQueryPredicateOperandViewModel
  • MsPortalFx.ViewModels.Controls.Data.QueryBuilder.IQueryPredicateViewModel
  • MsPortalFx.ViewModels.Controls.Data.QueryBuilder.IQueryGroupViewModel
  • MsPortalFx.ViewModels.Controls.Data.QueryBuilder.IQueryViewModel
  • MsPortalFx.ViewModels.Controls.Data.QueryBuilder.Contract
  • **Expected Errors:*
You will receive a warning at build time stating that MsPortalFx.ViewModels.Controls.Notice and its associated types are deprecated.
The following types are deprecated:
  • MsPortalFx.ViewModels.Controls.Notice.ViewModel
  • MsPortalFx.ViewModels.Controls.Notice.ImageType
**Solution**
 Please use Fx/Controls/CustomHtml instead.

**Reason for Breaking Change**
MsPortalFx.ViewModels.Controls.Notice is no longer supported. The viewModel has been deprecated in the May2021 breaking SDK release. Please use Fx/Controls/CustomHtml which uses AMD imports that improves Portal performance.

9856445OBSOLETE: MsPortalFx.ViewModels.Controls.Lists.Gallery

The MsPortalFx.ViewModels.Controls.Lists.Gallery is obsolete.  Please use "Fx/Controls/ListView" in gallery mode instead.

If you are using the Gallery you will run into compilation errors on the following types:

MsPortalFx.ViewModels.Controls.Lists.Gallery.Contract
MsPortalFx.ViewModels.Controls.Lists.Gallery.ViewModel

You may also run into compilation errors with types in the base ListView control:

MsPortalFx.ViewModels.Controls.Lists.ListView.Extensions
MsPortalFx.ViewModels.Controls.Lists.ListView.GroupOrder
MsPortalFx.ViewModels.Controls.Lists.ListView.SelectionMode
MsPortalFx.ViewModels.Controls.Lists.ListView.ItemMetadata
MsPortalFx.ViewModels.Controls.Lists.ListView.ListViewItem
MsPortalFx.ViewModels.Controls.Lists.ListView.Item
MsPortalFx.ViewModels.Controls.Lists.ListView.SelectableEventObject
MsPortalFx.ViewModels.Controls.Lists.ListView.GroupableOptions
MsPortalFx.ViewModels.Controls.Lists.ListView.SelectableOptions
MsPortalFx.ViewModels.Controls.Lists.ListView.FilterableOptions
MsPortalFx.ViewModels.Controls.Lists.ListView.ExtensionOptions
MsPortalFx.ViewModels.Controls.Lists.ListView.Group
MsPortalFx.ViewModels.Controls.Lists.ListView.Contract
MsPortalFx.ViewModels.Controls.Lists.ListView.ViewModel

9856435OBSOLETE: MsPortalFx.ViewModels.Controls.DeleteAssetConfirmation



**Expected Errors:** MsPortalFx.ViewModels.Controls.DeleteAssetConfirmation is obsolete. Its usage will be flagged as a compile-time typescript error at build time.

MsPortalFx.ViewModels.Controls.DeleteAssetConfirmation.GridOptions

MsPortalFx.ViewModels.Controls.DeleteAssetConfirmation.Options

MsPortalFx.ViewModels.Controls.DeleteAssetConfirmation.ViewModel

MsPortalFx.ViewModels.DeleteAssetConfirmation.InputData

MsPortalFx.ViewModels.DeleteAssetConfirmation.PartViewModelOptions

MsPortalFx.ViewModels.DeleteAssetConfirmation.BladeViewModel

MsPortalFx.ViewModels.DeleteAssetConfirmation.CommandViewModel

MsPortalFx.ViewModels.DeleteAssetConfirmation.PartViewModel


**Solution:**  Use Fx/Controls instead of MsPortalFx Controls.

**Reason For Breaking Change:** Newer Fx controls have better accessibility support. DeleteAssetConfirmation was a pattern in now obsolete MsPortalFx Controls.

9856423OBSOLETE: FxObsolete/Controls/BaseResourceDropDown



**Expected Errors:** FxObsolete/Controls/BaseResourceDropDown is obsolete. Its usage will be flagged as a compile-time typescript error at build time. 

FxObsolete/Controls/BaseResourceDropDown.Contract

FxObsolete/Controls/BaseResourceDropDown.Options

FxObsolete/Controls/BaseResourceDropDown.ResourceGroupOptions

FxObsolete/Controls/BaseResourceDropDown.LocationOptions

**Solution:**  Use Fx/Controls/BaseResourceDropDown instead.

**Reason For Breaking Change:** The newer control has better accessibility support.

9856389OBSOLETE: FxImpl.ViewModels.Controls.Lists.Base

The namespace FxImpl.ViewModels.Controls.Lists.List.Base has been removed.  All "FxImpl" types are internal framework implementation.  This should not affect extensions unless they inadvertently use types in this namespace.

FxImpl.ViewModels.Controls.Lists.List.Base.ActionHandler -- Remove usage of this type.
FxImpl.ViewModels.Controls.Lists.List.Base.ActionSource -- Remove usage of this type.

If you are using MsPortalFx.Azure.ResourceFilter you could also get compilation errors using the actionHandler option or property.  The actionHandler option and property have been deprecated.

MsPortalFx.Azure.ResourceFilter.Options.actionHandler -- Remove usage of this option.
MsPortalFx.Azure.ResourceFilter.ViewModel.actionHandler -- Remove usage of this property.

9856371OBSOLETE: FxImpl.Controls.Menu

Menu control interfaces were removed form the "FxImpl" namespace.  The "FxImpl" namespace is intended for internal framework implementation.  These interfaces should not be used by extensions but they are public and sometimes they are used or exposed unknowingly.  The removal of these interfaces will cause compile issues if you are inadvertently using them. These compile issues can be fixed by referencing the appropriate public interface from the SDK instead.

FxImpl.Controls.Menu.MenuItemItem - Use the public MenuItem from the "Fx/Controls/Menu" module or from the MsPortalFx.Assets namespace instead.
FxImpl.Controls.Menu.MenuGroup - Use  the public MenuGroup from the "Fx/Controls/Menu" module or from the MsPortalFx.Assets namespace instead.
FxImpl.Controls.Menu.MenuItemBase - Use the public MenuItemBase from the "Fx/Controls/Menu" module instead.
FxImpl.Controls.Menu.Options - Use Options from the "Fx/Controls/Menu" module instead.

FxImpl.MenuData - Interface for internal menu properties that is no longer available.
FxImpl.MenuItem - Use the public MenuItem from the "Fx/Controls/Menu" module or from the public MsPortalFx.Assets namespace instead.  The public interfaces will not have the internal properties for the internal interface.

This change was done to separate internal implementation details from the public Menu types in the SDK.

9856363OBSOLETE: FxImpl.Azure.BaseResourceDropDown



**Expected Errors:** FxImpl.Azure.BaseResourceDropDown is obsolete. Its usage will be flagged as a compile-time typescript error at build time.

FxImpl.Azure.BaseResourceDropDown

FxImpl.Azure.BaseResourceDropDown.FilterComboBoxResult

FxImpl.Azure.BaseResourceDropDown.Config

FxImpl.Azure.BaseResourceDropDown<T>

**Solution:**  Use Fx/Controls/BaseResourceDropDown instead.

**Reason For Breaking Change:** The newer control has better accessibility support.

9856361OBSOLETE: MsPortalFx.ViewModels.Controls.ValueUpdateTrigger



**Expected Errors:** MsPortalFx.ViewModels.Controls.ValueUpdateTrigger is obsolete. Its usage will be flagged as a compile-time typescript error at build time.

**Solution:**  Use Fx/Controls instead of MsPortalFx Controls.

**Reason For Breaking Change:** The newer controls have better accessibility support. ValueUpdateTrigger was a pattern in now obsolete MsPortalFx Controls.

9856353REMOVE: MsPortalFx.ViewModels.Forms.CreatorAndSelectorV2


**Expected Errors:** MsPortalFx.ViewModels.Forms.CreatorAndSelectorV2 has been removed and is now runtime-breaking and no longer a supported navigation/layout model. Please redesign the blades for better full screen blade experiences.

MsPortalFx.ViewModels.Forms.CreatorAndSelectorV2.Mode

MsPortalFx.ViewModels.Forms.CreatorAndSelectorV2.CreatorAndSelectorValue

MsPortalFx.ViewModels.Forms.CreatorAndSelectorV2.Options

MsPortalFx.ViewModels.Forms.CreatorAndSelectorV2.ViewModel

**Solution:** Redesign the blades for better full screen blade experiences.

**Reason For Breaking Change** This control is no longer a supported navigation/layout model and has been communicated as deprecated for 2+ years. Extensions should redesign the blades for a better full-screen experience.

9856310OBSOLETE: MsPortalFx.ViewModels.Controls.Lists.ListView

The MsPortalFx.ViewModels.Controls.Lists.ListView is obsolete.  Please use "Fx/Controls/ListView" instead.

If you are using the ListView you will run into compilation errors with the following types:

MsPortalFx.ViewModels.Controls.Lists.ListView.Extensions
MsPortalFx.ViewModels.Controls.Lists.ListView.GroupOrder
MsPortalFx.ViewModels.Controls.Lists.ListView.SelectionMode
MsPortalFx.ViewModels.Controls.Lists.ListView.ItemMetadata
MsPortalFx.ViewModels.Controls.Lists.ListView.ListViewItem
MsPortalFx.ViewModels.Controls.Lists.ListView.Item
MsPortalFx.ViewModels.Controls.Lists.ListView.SelectableEventObject
MsPortalFx.ViewModels.Controls.Lists.ListView.GroupableOptions
MsPortalFx.ViewModels.Controls.Lists.ListView.SelectableOptions
MsPortalFx.ViewModels.Controls.Lists.ListView.FilterableOptions
MsPortalFx.ViewModels.Controls.Lists.ListView.ExtensionOptions
MsPortalFx.ViewModels.Controls.Lists.ListView.Group
MsPortalFx.ViewModels.Controls.Lists.ListView.Contract
MsPortalFx.ViewModels.Controls.Lists.ListView.ViewModel

9856296REMOVE: MsPortalFx.ViewModels.Forms.StaticSection



**Expected Errors:** MsPortalFx.ViewModels.Forms.StaticSection has been removed and its usage is now runtime-breaking.

MsPortalFx.ViewModels.Forms.StaticSection.ViewModel

**Solution:** Please use Fx/Controls/Section instead.


9856292OBSOLETE: MsPortalFx.ViewModels.Controls.Visualization.SimpleChart



**Expected Errors:**
You will hit compile time errors when using MsPortalFx view models for the below controls,
MsPortalFx.ViewModels.Controls.Visualization.SimpleChart

You will hit tslint errors when using MsPortalFx view models for the below Parts,
MsPortalFx.ViewModels.ChartPart
MsPortalFx.ViewModels.SimpleChartPart

**Solution:**
For obsoleted SimpleChart, please migrate to the new AMD modules in Fx/Controls/,
Fx/Controls/LineChart
Fx/Controls/BarChart
Fx/Controls/AreaChart
Fx/Controls/ScatterChart.

For deprecated chart parts, please use custom part with new AMD modules in Fx/Controls,
Fx/Controls/LineChart
Fx/Controls/BarChart
Fx/Controls/AreaChart
Fx/Controls/ScatterChart.

Eg.

        const lineChart = LineChart.create<Date, number>(container, {
            series: series,
            xAxis: {
                formatOptions: Globalization.DateTimeFormat.shortDatePattern,
            },
            yAxis: {
                unit: ko.observable(MsPortalFx.UnitConversion.Unit.Kilobytes),
                displaySIUnit: true,
            },
            showLegend: true,
            metricsRules: this._createMetricRules(),
            events: {
                seriesClick: () => {
                    // Handle seriesClick event.
                },
            },
            ariaLabel: ClientResources.simpleLineChartAriaLabel,
            ariaDesc: ClientResources.simpleLineChartDesc,
        });

Please take a look at playground sample @ https://aka.ms/portalfx/playground

**Reason For Breaking Change**
MsPortalFx namespace is a non-AMD module. For perf reasons we have exposed new AMD modules under Fx/Controls and asking partners to migrate to new API patterns.
Please refer to https://aka.ms/portalfx/breaking for more details.

9856289REMOVE: MsPortalFx.ViewModels.Controls.Wizard



**Expected Errors:** MsPortalFx.ViewModels.Controls.Wizard has been removed and its usage is now runtime-breaking and no longer a supported navigation/layout model.

MsPortalFx.ViewModels.Controls.Wizard.WizardMode

MsPortalFx.ViewModels.Controls.Wizard.
StepType

MsPortalFx.ViewModels.Controls.Wizard.WizardStepSelection

MsPortalFx.ViewModels.Controls.Wizard.StepState

MsPortalFx.ViewModels.Controls.Wizard.StepInput

MsPortalFx.ViewModels.Controls.Wizard.StepOutput

MsPortalFx.ViewModels.Controls.Wizard.WizardState

MsPortalFx.ViewModels.Controls.Wizard.SelectorStep

MsPortalFx.ViewModels.Controls.Wizard.Contract

MsPortalFx.ViewModels.Controls.Wizard.WizardStepBase

MsPortalFx.ViewModels.Controls.Wizard.WizardStep

MsPortalFx.ViewModels.Controls.Wizard.ViewModel

**Solution:** Redesign the blades for better full screen blade experiences.

**Reason For Breaking Change** This control is no longer a supported navigation/layout model and has been communicated as deprecated for 2+ years. Extensions should redesign affected blades for a better full-screen experience.

9856282OBSOLETE: MsPortalFx.ViewModels.Controls.Balloon



**Expected Errors:** MsPortalFx.ViewModels.Controls.Balloon 
is obsolete. Its usage will be flagged as a compile-time typescript error at build time.

MsPortalFx.ViewModels.Controls.Balloon.Contract

MsPortalFx.ViewModels.Controls.Balloon.Link

MsPortalFx.ViewModels.Controls.Balloon.ViewModel

MsPortalFx.ViewModels.Controls.Balloon.Box

**Solution:** Please use Fx/Controls/InfoBalloon instead.

**Reason For Breaking Change:** This control has a better accessibility support in the new variant.

9856278OBSOLETE: MsPortalFx.ViewModels.Controls.Documents.Editor

 

**Expected Errors:*
You will receive a warning at build time stating that MsPortalFx.ViewModels.Controls.Documents.Editor and its associated types are obsolete.
The following types are obsolete:
  • MsPortalFx.ViewModels.Controls.Documents.Editor.ContentType
  • MsPortalFx.ViewModels.Controls.Documents.Editor.Options
  • MsPortalFx.ViewModels.Controls.Documents.Editor.CustomContentType
  • MsPortalFx.ViewModels.Controls.Documents.Editor.CustomContentTypeTokenizationRule
  • MsPortalFx.ViewModels.Controls.Documents.Editor.CustomContentTypeTokenizationRegexRule
  • MsPortalFx.ViewModels.Controls.Documents.Editor.CustomContentTypeTokenizationIncludeRule
  • MsPortalFx.ViewModels.Controls.Documents.Editor.CustomContentTypeTokenizationRuleScalarAction
  • MsPortalFx.ViewModels.Controls.Documents.Editor.CustomContentTypeTokenizationRuleAction
  • MsPortalFx.ViewModels.Controls.Documents.Editor.CustomContentTypeTokenizationRuleTokenAction
  • MsPortalFx.ViewModels.Controls.Documents.Editor.CustomContentTypeTokenizationRuleCasesAction
  • MsPortalFx.ViewModels.Controls.Documents.Editor.CustomContentTypeSuggestSupport
  • MsPortalFx.ViewModels.Controls.Documents.Editor.CustomContentTypeSuggestSupportSnippet
  • MsPortalFx.ViewModels.Controls.Documents.Editor.CustomContentTypeAutoCompleteMatcher
  • MsPortalFx.ViewModels.Controls.Documents.Editor.CustomContentTypeAutoIndentMatcher
  • MsPortalFx.ViewModels.Controls.Documents.Editor.JSONSchema
  • MsPortalFx.ViewModels.Controls.Documents.Editor.JSONConfiguration
  • MsPortalFx.ViewModels.Controls.Documents.Editor.TypeScriptExtraLib
  • MsPortalFx.ViewModels.Controls.Documents.Editor.TypeScriptScriptTarget
  • MsPortalFx.ViewModels.Controls.Documents.Editor.TypeScriptCompilerOptions
  • MsPortalFx.ViewModels.Controls.Documents.Editor.TypeScriptConfiguration
  • MsPortalFx.ViewModels.Controls.Documents.Editor.Configuration
  • MsPortalFx.ViewModels.Controls.Documents.Editor.Contract
  • MsPortalFx.ViewModels.Controls.Documents.Editor.MarkerSeverity
  • MsPortalFx.ViewModels.Controls.Documents.Editor.EditorMarker
  • MsPortalFx.ViewModels.Controls.Documents.Editor.EditorRange

**Expected Errors:** MsPortalFx.ViewModels.Controls.DockedBalloon 
is obsolete. Its usage will be flagged as a compile-time typescript error at build time.

MsPortalFx.ViewModels.Controls.DockedBalloon.Type

MsPortalFx.ViewModels.Controls.DockedBalloon.Contract

MsPortalFx.ViewModels.Controls.DockedBalloon.ViewModel

Additionally, the `balloon` options in Fx/Controls/PairedTimelineBadges have been transitioned from MsPortalFx.ViewModels.Controls.DockedBalloon.ViewModel to Fx/Controls/InfoBalloon.Contract and old usages generate typescript compile-time build errors.


**Solution:** Please use Fx/Controls/InfoBalloon instead.

**Reason For Breaking Change:** This control has a better accessibility support in the new variant.

9856262Obsolete: MsPortalFx.ViewModels.Forms.Selector



**Expected Errors:** MsPortalFx.ViewModels.Forms.Selector is obsolete and no longer a supported navigation/layout model. Please redesign the blades for better full screen blade experiences. Its usage will be flagged as a compile-time typescript error at build time.

MsPortalFx.ViewModels.Forms.Selector.OptionsBase

MsPortalFx.ViewModels.Forms.Selector.Options

MsPortalFx.ViewModels.Forms.Selector.ClicableOptions

MsPortalFx.ViewModels.Forms.Selector.ViewModelBase

MsPortalFx.ViewModels.Forms.Selector.ViewModel

**Solution:** Redesign the blades for better full screen blade experiences.

**Reason For Breaking Change** These three controls are no longer a supported navigation/layout model and has been communicated as deprecated for 2+ years. Extensions should redesign the blades for a better full-screen experience.

9856247OBSOLETE: MsPortalFx.ViewModels.Forms.CustomHtml



**Expected Errors:** Usage of  MsPortalFx.ViewModels.Forms.CustomHtml is obsolete. Its usage will be flagged as a compile-time typescript error at build time. 

MsPortalFx.ViewModels.Forms.CustomHtml.Options

MsPortalFx.ViewModels.Forms.CustomHtml.Viewmodel

**Solution:**  Use Fx/Controls/CustomHtml instead.

**Reason For Breaking Change:** The newer control has better accessibility support.

9856205OBSOLETE: MsPortalFx.ViewModels.Forms.Section



**Expected Errors:** MsPortalFx.ViewModels.Forms.Section is obsolete. Its usage will be flagged as a compile-time typescript error at build time.

MsPortalFx.ViewModels.Forms.Section.Options

MsPortalFx.ViewModels.Forms.Section.SectionStyle
 
MsPortalFx.ViewModels.Forms.Section.TabStyle

MsPortalFx.ViewModels.Forms.Section.SubmitEvent

MsPortalFx.ViewModels.Forms.Section.SubmitEventResult

MsPortalFx.ViewModels.Forms.Section.PopulateSection

MsPortalFx.ViewModels.Forms.Section.ViewModel

**Solution:**  Use Fx/Controls/Section instead.

**Reason For Breaking Change:** The newer control has better accessibility support.

9856192REMOVE: MsPortalFx.ViewModels.Obsolete.Forms.MultiSelectDropDown



**Expected Errors:** MsPortalFx.ViewModels.Obsolete.Forms.MultiSelectDropDown has been removed and is now runtime-breaking after over 6 months of getting flagged as a compile-time typescript error at build time. Additionally, back-compat support for the "MultiselectDropDown" html binding used in Grid1 has been removed.

MsPortalFx.ViewModels.Obsolete.Forms.MultiSelectDropDown.Options<T>

MsPortalFx.ViewModels.Obsolete.Forms.MultiSelectDropDown.ViewModel


**Solution:** Please use Fx/Controls/DropDown instead.

**Reason For Breaking Change:** The newer control has better accessibility support.

9856187REMOVE: MsPortalFx.ViewModels.Obsolete.Forms.GroupDropDown



**Expected Errors:** MsPortalFx.ViewModels.Obsolete.Forms.GroupDropDown has been removed and is now runtime-breaking after over 6 months of getting flagged as a compile-time typescript error at build time:

MsPortalFx
.ViewModels.Obsolete.Forms.GroupDropDown.Item<T>

MsPortalFx
.ViewModels.Obsolete.Forms.GroupDropDown.Group<T>

MsPortalFx
.ViewModels.Obsolete.Forms.GroupDropDown.Options<T>

MsPortalFx.ViewModels.Obsolete.Forms.GroupDropDown.ViewModel<T>

**Solution:** Please use Fx/Controls/DropDown instead.

**Reason For Breaking Change:** The newer control has better accessibility support.

9856183REMOVE: MsPortalFx.ViewModels.Controls.SingleSetting

The obsolete MsPortalFx.ViewModels.Controls.SingleSetting control has been removed from the product.  This control was obsoleted in 2018 and should no longer be in use.  If you are still using it your blade will fail.  Blades must be modified to use custom html instead.

9856180REMOVE: MsPortalFx.ViewModels.Controls.Settings

The obsolete MsPortalFx.ViewModels.Controls.Settings control has been removed from the product.  This control was obsoleted in 2018 and should no longer be in use.  If you are still using it your blade will fail.  Blades must be modified to use custom html instead.

9856159REMOVE: FxImpl.ViewModels.Forms.CreatorAndComboBox



**Expected Errors:** FxImpl.ViewModels.Forms.CreatorAndComboBox has been removed and is now runtime-breaking after over 6 months of getting flagged as a compile-time typescript error at build time:
  • FxImpl.ViewModels.Forms.CreatorAndComboBox.Mode
  • FxImpl.ViewModels.Forms.CreatorAndComboBox.AllowedMode
  • FxImpl.ViewModels.Forms.CreatorAndComboBox.Options
  • FxImpl.ViewModels.Forms.CreatorAndComboBox.ViewModel
**Solution:** For a DropDown or ComboBox please use Fx/Controls/DropDown or Fx/Controls/ComboBox instead. The old creators picker pattern is obsolete: please refer to the new create experiences for replacement patterns (mainly tabs and drop-downs).

**Reason For Breaking Change:** The newer controls have better accessibility support.

9725940Deprecate MsPortalFx.NativePromise

The type MsPortalFx.NativePromise is deprecated.  Please use the native Promise type directly instead of this alias.

9390560Add HtmlContent to properly support html rendering

Before this change, several framework APIs remained that allowed html to be provided through a string-typed 'text' property.  This is a risk for html injection.  The framework has been logging errors to extensions to fix these but in a few cases there was not an actionable way to do so.  Breaking changes to these remaining APIs have been made to allow extensions to properly specify html and avoid html injection.

The following APIs now allow HtmlContent in addition to string text.

    ValidationResult message
    StaticMessageValidation message
    NotRegExMatchValidation successMessage
    RegExMatchValidation successMessage
    InfoBox text

9219252Deprecate Q APIs that no longer do anything or are not needed

Some Q APIs that are no longer applicable to the Portal have been deprecated.  Some previously deprecated types have been removed. In addition some Q API signatures have changed to enhance type safety.  Also, some diagnostic APIs that used deprecated Q APIs have been deprecated.

Q.IPromise - Removed. Use PromiseLike instead.
Q.QPromiseLike - Removed. Use PromiseLike instead.

Q.Promise fin  - Deprecated. Use finally instead
Q.Promise fail - Deprecated. Use catch instead.

Q.longStackSupport - Deprecated. No longer does anything in the portal.
Q.getUnhandledRejections - Deprecated. No longer does anything in the portal.
Q.getUnhandledReasons - Deprecated. No longer does anything in the portal.
Q.resetUnhandledRejections - Deprecated. No longer does anything in the portal.

MsPortalFx.Base.Diagnostics.setPromiseErrorCapturePeriod - Deprecated. No longer does anything.
MsPortalFx.Base.Diagnostics.clearPromiseErrorCaptureTimeout - Deprecated. No longer does anything.

Q.isPromise - Enhanced type safety with type guard.
Q.isPromiseAlike  - Enhanced type safety with type guard.

Previously, Q Promise was changed to extend the native Promise.  With this change unhandled rejections are now managed in the Portal using the native browser mechanisms. The related Q APIs no longer do anything and have been deprecated.

6382277[BREAKING]For RadioButtons.Options, change disabled from KnockoutObservable to KnockoutReadOnlyObservableBase



**Expected Errors:**  The signature of `disabled` options across APIs of multiple controls has been relaxed from type `KnockoutObservable<boolean>;` to type `KnockoutObservableBase<boolean>;and the old type will be flagged as a compile-time error at build time.

MsPortalFx
.ViewModels.Controls.Loadable.Options.disabled

MsPortalFx
.ViewModels.Controls.Loadable.Options.loading

MsPortalFx.ViewModels.Controls.Lists.Grid.FocusableRowMetadata<T>.disabled

MsPortalFx.ViewModels.Controls.Lists.Grid.ReorderRowOptions<TItem>.disabled

MsPortalFx
.ViewModels.Controls.Lists.Grid.ItemMetadata.disabled

MsPortalFx.ViewModels.ParameterCollectionV3.Pickers.PickerBase.Item.disabled










**Solution:** Please use the updated type `KnockoutObservable<boolean>;` instead wherever Extension-side code explicitly specifies the old type.

**Reason For Breaking Change:** Extension devs expressed desires to be able to provide computed observables too for said `disabled` options.

10004261Upgrade Portal SDK to TypeScript 4.2



The tooling was updated to use TypeScript 4.2 (update from TypeScript 4.1).
There were no Portal-specific changes required by this upgrade, but the tooling update itself might cause some breaks in extension code.
See breaking changes and changelog in the official TypeScript site: https://github.com/Microsoft/TypeScript/wiki/Breaking-Changes

In addition, the npm dependencies for `@microsoft/eslint-plugin-azureportal` were updated to support the new syntax in TypeScript 4.2 (in particular, we updated all the packages in the `@typescript-eslint` scope).

Although extensions using ReactViews are compiled using the version of the compiler in the `@microsoft/azureportal-reactview-tools` npm package (TypeScript 3.9 as of 0.13.0), the Portal SDK was compiling the react view code using its own TypeScript compiler version (and then discarding the results, as part of a side-effect of the Ibiza precompilation process). Because of this, there might be some TypeScript 4.2 related errors coming from this process in the Error output stream. If that is the case, please update to `@microsoft/azureportal-reactview-tools` version 0.15.0 or newer, which should resolve this double-compilation. Alternatively (if can't update the tools package yet), set the `listFilesOnly` flag to `true` in the tsconfig.json file that corresponds to the extension using ReactViews (in the `compilerOptions` section).

A common example of this double-compilation issue might be if your build shows the following in the following in the Error output stream:
```
error TS2343: Build:This syntax requires an imported helper named '__spreadArray' which does not exist in 'tslib'. Consider upgrading your version of 'tslib'.
```

There are other similarly related runtime exceptions (that relate to the missing `_spreadArray` function) if someone is using very old versions of the Portal Unit Testing frameworks (especially if using the deprecated `msportalfx-ut` npm package. Notice that this was superseded by `@microsoft/azureportal-ut` and there is no newer version of `msportalfx-ut` that resolves this issue). Updating this npm package should fix these runtime exceptions.

10003350renavigateActivatedBlade is obsolete



The SDK API renavigateActivedBlade is obsolete.

**Expected Errors:**

 

error TS2349: Build:This expression is not callable.

**Solution:**

 

Change the extension code to use openBlade instead.

 

**Reason For Breaking Change**


This API is obsolete and is being retired.

7.289.0.5

9867718Remove obsoleted nuget packages; create samples extension/internal samples extension packages

**Expected errors**
Two obsolete NuGet packages are being removed as part of this change. Anyone still depending on them will break their build.

**Solution**
If the files are found in another Azure Portal SDK NuGet package, please use that.
If the files are not found elsewhere, and you have not migrated to the Hosting Service, please do that migration.
If the files are not found and you have already migrated, please contact the Azure Portal team to identify the files used and why.

**Reason for breaking change**
These packages have been marked obsolete since 2019. We are making some build system changes internal to the Portal's build and removing these projects is part of that process.

7.206.0.5

7928571Add edit title experience



**Expected Errors:**

- Since the new API (UpdatableHeader) was added to the part's container/context the build errors and runtime issues would be expected for partners who have unit tests that are manually created part's container/context for that tests.

**Solution:**

- If you have unit tests that are manually created part's container/context and receive any build/runtime errors about the updatableHeader is not defined you will need to update the places in your tests where part's container/context is created to add this lines 

                const updatableHeader = {
                    enableForExtensionRenderedHeader: (partOnChange: (partHeader: UpdatableHeader.PartHeader) => void, options?: UpdatableHeader.Options) => {
                        if (!updatableHeader.options()) {
                            updatableHeader.options(options || {});
                            updatableHeader.updatedHeader.subscribe(this, (partHeader) => {
                                partHeader && partOnChange(partHeader);
                            });
                        }
                    },
                    updatedHeader: ko.observable<UpdatableHeader.PartHeader>(),
                    options: ko.observable<UpdatableHeader.Options>(),
                };

// your container part definition const partContainer = {
// intialization of some other fields that were here before
updatableHeader,
};
                // or for your part context definition                 const partContext = {
                   // intialization of some other fields that were here before
                   
                   updatableHeader,
              };

**Reason For Breaking Change**

- By numerous requests for partners and customers we introduce ability for users to change the part titles on dashboard.
   For parts that used standard parts title/subtitle this support would be added automatically;
   For parts that rendered their own title/subtitle - these parts would need to enableForExtensionRenderedHeader method to enable this functionality;