- Additional Q&A about breaking changes can be found here
- To ask a question about breaking changes use this
12804917 | Remove SVGo nupkg from within Tools nupkg
The SVGo NUPKG was included inside the Microsoft.Portal.Tools NUPKG, as well as the unpacked version. As of this change, only the unpacked (loose) version of SVGo is included in the Microsoft.Portal.Tools NUPKG. The targets files used by the SDK do not use the packed version of SVGo (only the loose version). |
12375340 | [Notifications] Update Modal Template to Align with Fluent UI
**Expected Errors** No error expected. This is an addition of a new field to an existing API. |
8495610 | Add IBrowserElement to enable side-by-side Playwright support for @microsoft/azureportal-test
Added IBrowserAutomation and IBrowserElement abstractions to @microsoft/azureportal-test. Api's have been updated to return these abstractions i.e. api's now return and take IBrowserElement instances instead of webdriver.WebElement. The actual instance of webdriver.WebElement can be accessed using the 'element' property on the IBrowserElement instance. **Expected Error** error TS2352: Conversion of type 'IBrowserElement' to type 'WebElement' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first. Type 'IBrowserElement' is missing the following properties from type 'WebElement': getDriver, getId, getCssValue, submit, and 2 more. **Solution:** Reference the WebElement using the 'element' property on IBrowserElement. (await resourceRow.getWebElement()).element; **Reason For Breaking Change** This has allowed adding support for additional browser automation framework like Playwright (https://playwright.dev/). |
12541722 | [Breaking] deprecate policyValidationFactory and createPolicyValidationFactory
**Expected Errors:** Usage of the `policyValidationFactory` on create blade context, and `import { createPolicyValidationFactory } from "Fx/ResourceManagement/Policies"' are now deprecated **Solution:** Do not implement custom policy validators and remove usage from creates. **Reason For Breaking Change:** A more comprehensive policy API covering creates as well as management scenarios is being created and is projected to be available in early 2022 |
12540997 | [Deprecate] Deprecate MsPortalFx.ViewModels.Toolbars **Expected Errors:** You will hit eslint errors regarding deprecated APIs when using view model or types from MsPortalFx.ViewModels.Toolbars namespace. **Solution:** If you have any reference to MsPortalFx.ViewModels.Toolbars types, please migrate to equivalent types in Fx/Controls/Toolbar. Eg. How to migrate MsPortalFx.ViewModels.Toolbars.OpenBladeButton to Fx/Controls/Toolbar, import * as Toolbar from "Fx/Controls/Toolbar"; const openBladeButton = Toolbar.ToolbarItems.createBasicButton(container, { label: ClientResources.Toolbar.openBlade, icon: MsPortalFx.Base.Images.Commit(), onClick: { bladeReference: BladeReferences.forBlade("OpenedFromToolbarBlade").createReference() }, telemetryName: "OpeneBladeCommand", }); **Reason For Breaking Change** FX APIs nested in the MsPortalFx.* namespace aren't located in AMD modules. AMD modules can be selectively loaded and this results in better perf. For this reason, all modern FX APIs for controls are located in 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. |
12531781 | Deprecate MsPortalFx.Base.Promise and MsPortalFx.Base.PromiseV
To improve performance the Portal framework is standardizing on native Promises. All Portal APIs that previously used MsPortalFx.Base.Promise or MsPortalFx.Base.PromiseV<T> have been updated to use the TypeScript native Promise<T> type. To make extension conversion easier the MsPortalFx.Base.Promise and MsPortalFx.Base.PromiseV<T> types have been re-defined to be compatible with Promise<T>. They have also been deprecated. Extensions can search and replace with the Promise<T> type or ignore the deprecation warnings and change them when convenient. MsPortalFx.Base.Promise is not generic but is equivalent to MsPortalFx.Base.PromiseV<any>. For search and replace it should be replaced with Promise<any> for the best compatibility with current code. You will get compile errors if you are using a promise type not compatible with an API requiring Promise<T>. To fix you can wrap with Q() or use a native Promise<T>. Any code that is already using Q or native Promise will be compatible and not require a change. This works for Q because the Portal implementation of Q.Promise extends the native Promise. |
12530398 | [Breaking change] Update JQuery definition to reflect update to the 3.x release
The runtime JQuery library is being migrated to 3.x release. While this is mostly no-op at runtime, there are a few changes in the API that are needing attention to help migrate to the 4.x branch in the future if used in your code. This is already in flight and has received very few reports of problems. Continue reading to detect if a runtime issue could be related to the update. **Expected Errors:** At build time: There may be type that are missing or marked as deprecated if you use some older JQuery methods. This type definition update should flag where to pay attention for removed or updated behaviors. At runtime: The JQuery 3.x update is currently flighted in MPAC and fully deployed in RC and is no-op for most folks since the API internally remained working, There has been very minimal problems reported, though some have noticed changes in promise timings. If you notice some problems related to promises mixing between JQuery and other libraries, please reach out to the framework team. **Solution:**
**Reason For Breaking Change:** Maintaining security of the JQuery 2.x release is becoming impractical. The 3.x release helps stay more current with that, and minimize the custom changes made in the release. In addition, the 3.x release has better Promise support that are more compatible with all other promise libraries and native promises. |
12529778 | [Breaking] Make Obsolete MsPortalFx.Azure.ResourceManager.Pickers.Specs.Infobox **Expected Errors:** Usage of the MsPortalFx.Azure.ResourceManager.Pickers.Specs.Infobox is now Obsolete **Solution:** Please switch to using "Fx/Specs/Dropdown" for spec selection purposes. **Reason For Breaking Change:** Pickers are an obsolete concept in the portal. |
12496927 | Obsolete some MsPortalFx promise types
Several Promise related API have been changed and will cause compilation errors. MsPortalFx.Base.Internal.ThenableV The internal type ThenableV is obsolete. This type is internal and should not be in use by extensions. Please use PromiseLike<T> instead. MsPortalFx.Base.Internal.PromiseBase This internal type PromiseBase is obsolete. This type is internal and should not be in use by extensions. Please use Promise<T> instead. MsPortalFx.NativePromise This type NativePromise is obsolete. This type was an alias for Promise<T>. Please use Promise<T> instead. MsPortalFx.Base.PromiseVN The type PromiseVN is obsolete. Please use Promise<T> or Q.Promise<T> instead. Q.Promise is the only portal promise that supports progress notifications. MsPortalFx.Base.PromiseN The type PromiseN is obsolete. Please use Promise<T> or Q.Promise<T> instead. Q.Promise is the only portal promise that supports progress notifications. The definition of catch was changed to match the native Promise<T> definition. This may identify some bugs in catch usage or could require some type conversion. When possible please use the native Promise<T> or Q.Promise<T> instead of MsPortalFx.Base.Promise or MsPortalFx.Base.PromiseV. |
12492575 | [Deprecate] Deprecate MsPortalFx.ViewModels.FileDownload
**Expected Errors:** You will hit eslint errors regarding deprecated APIs when using view model or types from MsPortalFx.ViewModels.FileDownload namespace. **Solution:** MsPortalFx FileDownload control was obsoleted in Nov2020 and the current deprecation is for common FileDownload types. If you have any reference to MsPortalFx.ViewModels.FileDownload types, please migrate to equivalent types in Fx/Controls/FileDownload for file download scenarios and Fx/Controls/Toolbar for file download usage in toolbar. **Reason For Breaking Change** FX APIs nested in the MsPortalFx.* namespace aren't located in AMD modules. AMD modules can be selectively loaded and this results in better perf. For this reason, all modern FX APIs for controls are located in 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. |
12492433 | [Deprecate] Deprecate MsPortalFx.ViewModels.FileUpload and FxImpl.FileUpload **Expected Errors:** You will hit eslint errors when using any types in the below namespaces as they are getting deprecated, MsPortalFx.ViewModels.FileUpload, FxImpl.FileUpload **Solution:** MsPortalFx FileUpload control was obsoleted in Nov 2020 and the current deprecated namespaces is for common FileUpload types. If you have any references to the types in those namespaces, please migrate to equivalent types in Fx/Controls/FileUpload for file upload scenarios and Fx/Controls/Toolbar for file upload usage in toolbar. **Reason For Breaking Change** FX APIs nested in the MsPortalFx.* namespace aren't located in AMD modules. AMD modules can be selectively loaded and this results in better perf. For this reason, all modern FX APIs for controls are located in 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. |
12475924 | Use native Promise for control APIs
To improve performance the Portal framework is standardizing on native Promises. All control APIs have been updated to use the native Promise type instead of Q.Promise, MsPortalFx.Base.Promise, or MsPortalFx.Base.PromiseV. In most cases this will compile without error. However, in some case you may need to convert to a native Promise or a Q.Promise (which extends native Promise in the portal.) When the Portal was created it used JQuery Promises and then later adapted to Q Promises. We now have native Promises or pollyfills in all browsers. TypeScript includes definitions for Promise and support for async/await using them. The native Promises are faster and standard so the Portal is in the process of transitioning APIs to use them. To help aid in this process the Q.Promise implementation in the Portal framework is now type and run-time compatible with native Promises. This means that you can continue to pass Q.Promise to APIs that are now typed Promise without error. For APIs that used to return Q.Promise and now return Promise you can wrap the return value with Q() as required. In both cases you now have the option of removing Q.Promise and using native Promises. Below is a list of the affected public APIs: "Fx/Controls/Accordion" SectionOptions content "Fx/Controls/AreaChart" Contract setSeriesSelections "Fx/Controls/BarChart" Contract setSeriesSelections "Fx/Controls/BaseResourceDropDown" Subscription.Options customFetch "Fx/Controls/BaseResourceDropDown" Location.Options customFetch "Fx/Controls/BaseResourceDropDown" ResourceGroup.Options customFetch "Fx/Controls/ComboBox" Options onFilter "Fx/Controls/DiffEditor" Contract refresh "Fx/Controls/DiffEditor" Contract save "Fx/Controls/DropDown" Options customFilter "Fx/Controls/DropDown" Options selectAllOverride "Fx/Controls/Editor" Contract refresh "Fx/Controls/Editor" Contract save "Fx/Controls/FileDownload" DownloadContextCallback "Fx/Controls/FileDownload" OAuthDownloadOptions downloadContext "Fx/Controls/FileDownload" SasLikeDownloadOptions downloadContext "Fx/Controls/FileDownload" BlobUriDownloadOptions downloadContext "Fx/Controls/FileDownload" DataUriDownloadOptions downloadContext "Fx/Controls/FileUpload" AuthorizationContext fetchAuthorization "Fx/Controls/FileUpload" AsyncUploadTaskContract resume "Fx/Controls/FileUpload" AsyncUploadTaskContract pause "Fx/Controls/FileUpload" AsyncUploadTaskContract cancel "Fx/Controls/FileUpload" AsyncUploadTaskContract complete "Fx/Controls/FileUpload" AsyncUploadTaskContract abort "Fx/Controls/FileUpload" AsyncUploadTaskContract dispose "Fx/Controls/FileUpload" AsyncUploadTaskContract getNextChunk "Fx/Controls/FileUpload" Contract addUploadTasks "Fx/Controls/FileUpload" Contract resetUploadTasks "Fx/Controls/FileUpload" EventHandlerContracts.fileUploadSasUri renew "Fx/Controls/FileUpload" EventHandlerContracts.fileUploadAuthorization renew "Fx/Controls/FileUploadManagement" getUploadInfos "Fx/Controls/FileUploadManagement" getResumableUploadInfos "Fx/Controls/FileUploadManagement" getAsyncUploadTasks "Fx/Controls/FileUploadManagement" invokeUploadAction "Fx/Controls/FileUploadManagement" getNextChunk "Fx/Controls/FileUploadManagement" registerRenewSasUriCallback "Fx/Controls/FileUploadManagement" registerRenewAuthorizationCallback "Fx/Controls/FormBase" Contract triggerValidation "Fx/Controls/FormBase" Contract clearValidation "Fx/Controls/Graph" Contract zoomToFit "Fx/Controls/Graph" Contract zoomIn "Fx/Controls/Graph" Contract zoomOut "Fx/Controls/Graph" Contract zoomTo100Percent "Fx/Controls/Graph" Contract cocusOnNode "Fx/Controls/Graph" Contract focusOnEdge "Fx/Controls/Graph" Contract bringRectIntoView "Fx/Controls/Graph" Contract addEdge "Fx/Controls/Graph" Contract duplicateSelectedEntities "Fx/Controls/Graph" Contract deleteEntities "Fx/Controls/Graph" Contract getLayoutNoOverlaps "Fx/Controls/Graph" Contract setNodeRects "Fx/Controls/Graph" Contract getNodeRects "Fx/Controls/Graph" ViewModel getLayoutNoOverlaps "Fx/Controls/Graph" ViewModel setNodeRects "Fx/Controls/Graph" ViewModel getNodeRects "Fx/Controls/Graph" ViewModel zoomToFit "Fx/Controls/Graph" ViewModel zoomIn "Fx/Controls/Graph" ViewModel zoomOut "Fx/Controls/Graph" ViewModel zoomTo100Percent "Fx/Controls/Graph" ViewModel focusOnNode "Fx/Controls/Graph" ViewModel focusOnEdge "Fx/Controls/Graph" ViewModel bringRectIntoView "Fx/Controls/Graph" ViewModel addEdge "Fx/Controls/Graph" ViewModel duplicateSelectedEntities "Fx/Controls/Graph" ViewModel deleteEntities "Fx/Controls/LineChart" Contract setSeriesSelections "Fx/Controls/ListView" ContextMenuOptions supplyMenuCommands "Fx/Controls/ListView" ContextMenuOptions supplyMenuBulkCommands "Fx/Controls/Menu" ViewModel initialize "Fx/Controls/MonitorChartV2" Contract metricsDataProvider "Fx/Controls/MonitorChartV2" MetricsDataProvider getFilterAttributes "Fx/Controls/MonitorChartV2" MetricsDataProvider getFilterValues "Fx/Controls/Pill" InlineEditor onEditModeExited "Fx/Controls/Pill" DialogEditor onEditModeExited "Fx/Controls/Pill" Options createEditor "Fx/Controls/ScatterChart" Contract setSeriesSelections "Fx/Controls/SearchBox" Options update "Fx/Controls/SearchBox" Options submit "Fx/Controls/SearchBox" Contract reset "Fx/Controls/Section" Contract triggerValidation "Fx/Controls/Section" Contract clearValidation "Fx/Controls/Splitter2" PaneOptions content "Fx/Controls/Storage/BlobContainerDropDown" generateSasUri "Fx/Controls/TabControl" Contract triggerValidation "Fx/Controls/TagsByResource" Contract triggerValidation "Fx/Controls/TagsByResource" Command execute "Fx/Controls/Toolbar" FileUploadButtonContract resetUploadTasks FxImpl.Azure.BaseResourceDropDown BaseResourceDropDown clearValidation FxImpl.Azure.BaseResourceDropDown BaseResourceDropDown triggerValidation MsPortalFx.ViewModels.Controls.Lists.Grid ViewModel reset MsPortalFx.ViewModels.Controls.Lists.Grid ViewModel resetCallback MsPortalFx.ViewModels.Controls.Lists.Grid GridResetCallback MsPortalFx.ViewModels.Controls.Lists.Grid GridCallback MsPortalFx.ViewModels.Controls.Lists.Grid Contract reset MsPortalFx.ViewModels.Controls.Lists.Grid Contract resetCallback MsPortalFx.ViewModels.Controls.Lists.Grid GroupDropDownFormFieldInfo customFilter MsPortalFx.ViewModels.Controls.Lists.Grid GroupDropDownFormFieldInfo selectAllOverride FxImpl.ViewModels.Controls.Lists.Grid Actions sort MsPortalFx.ViewModels Field clearValidation MsPortalFx.ViewModels Field triggerValidation MsPortalFx.ViewModels FormElement clearValidation MsPortalFx.ViewModels FormElement triggerValidation MsPortalFx.ViewModels CustomValidationOptionsV validate MsPortalFx.ViewModels CustomFormValidationV validate MsPortalFx.ViewModels CustomValidationV validate MsPortalFx.ViewModels CustomValidationV constructor MsPortalFx.ViewModels.FileUpload UploadActionCallback MsPortalFx.ViewModels.FileUpload GetNextChunkCallback MsPortalFx.ViewModels.FileUpload AsyncUploadTaskContract resume MsPortalFx.ViewModels.FileUpload AsyncUploadTaskContract pause MsPortalFx.ViewModels.FileUpload AsyncUploadTaskContract cancel MsPortalFx.ViewModels.FileUpload AsyncUploadTaskContract complete MsPortalFx.ViewModels.FileUpload AsyncUploadTaskContract abort MsPortalFx.ViewModels.FileUpload AsyncUploadTaskContract dispose MsPortalFx.ViewModels.FileUpload AsyncUploadTaskContract getNextChunk MsPortalFx.ViewModels.FileUpload AuthorizationContext fetchAuthorization MsPortalFx.ViewModels.FileUpload getUploadInfos MsPortalFx.ViewModels.FileUpload getResumableUploadInfos MsPortalFx.ViewModels.FileUpload getAsyncUploadTasks MsPortalFx.ViewModels.FileUpload invokeUploadAction MsPortalFx.ViewModels.FileUpload getNextChunk MsPortalFx.ViewModels.FileUpload registerRenewSasUriCallback MsPortalFx.ViewModels.FileUpload registerRenewAuthorizationCallback MsPortalFx.ViewModels.FileUpload AsyncUploadTask resume MsPortalFx.ViewModels.FileUpload AsyncUploadTask pause MsPortalFx.ViewModels.FileUpload AsyncUploadTask cancel MsPortalFx.ViewModels.FileUpload AsyncUploadTask complete MsPortalFx.ViewModels.FileUpload AsyncUploadTask abort MsPortalFx.ViewModels.FileUpload AsyncUploadTask dispose MsPortalFx.ViewModels.FileUpload AsyncUploadTask getNextChunk MsPortalFx.ViewModels.Forms.AsyncFileUpload execUpload MsPortalFx.ViewModels.Forms.Base.Input ViewModel clearValidation MsPortalFx.ViewModels.Forms.Base.Input ViewModel triggerValidation MsPortalFx.ViewModels.Forms.Base Section clearValidation MsPortalFx.ViewModels.Forms.Base Section triggerValidation MsPortalFx.ViewModels FormProperties triggerValidation |
12467877 | Promise and Promise rejection handling changes
Several Promise related API have been changed and will cause compilation errors.
|
12453439 | [Breaking change] "Update" API of Searchbox as required **Expected Errors:** Usage of the `update` option of `Fx/Controls/SearchBox` is now required and its absence will be flagged as a compile-time error at build time: **Solution:** Please set the `update` callback in all Fx/Controls/SearchBox `create` calls. **Reason For Breaking Change:** The `update` callback is needed to return the number of results (as set in extension code) for screen-readers to announce it. |
12451947 | Obsolete MsPortalFx.ViewModels.Controls.Lists.TreeView
MsPortalFx.ViewModels.Controls.Lists.TreeView is now obsolete. This will cause compile errors for extensions that have not removed usage of the previously deprecated 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:.
The UI rendering for the TreeView has not been modified. All existing test harnesses that manipulate the UI should continue to work without change. |
12435914 | Update Portal SDK to TypeScript 4.4
The tooling was updated to use TypeScript 4.4 (update from TypeScript 4.2). 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` and others were updated to support the new syntax in TypeScript 4.4 (in particular, we updated all the packages in the `@typescript-eslint` scope, which require version 5.*). Please also be sure to update any npm dependencies in your own package.json files or global environment to use `typescript` 4.4.4 and the newer `@typescript-eslint` packages. Additionally, the newer `@typescript-eslint` packages do depend on newer versions of node than the previous versions, so if you see warnings like the following, make sure to update your version of node in your environment to the latest minor version according to the version you are using (note that it doesn't require updating major versions, there is still support for node v12, v14 and v16). ``` error @typescript-eslint/eslint-plugin@5.2.0: The engine "node" is incompatible with this module. Expected version "^12.22.0 || ^14.17.0 || >=16.0.0". Got "XX.XX.XX" error Found incompatible module. ``` |
12424986 | Form controls breaking changes Nov 2021 **Expected Errors:** Usages of the following APIs will be flagged as a compile-time linting errors at build time: - MsPortalFx.ViewModels.Controls.PartPinner (MsPortalFx.ViewModels.Controls.PartPinner.Options and MsPortalFx.ViewModels.Controls.PartPinner.ViewModel) - MsPortalFx.ViewModels.Forms.OptionsGroup (MsPortalFx.ViewModels.Forms.OptionsGroup.Options and MsPortalFx.ViewModels.Forms.OptionsGroup.ViewModel) Usages of the following APIs will be flagged as a compile-time errors at build time: - Fx/Specs/DropDown - FxImpl.Azure.BaseResourceDropDown - MsPortalFx.ViewModels.ClickableLink - MsPortalFx.ViewModels.Controls.InfoBox - MsPortalFx.ViewModels.Controls.Unsupported.AzureMediaPlayer **Solution:** Please use the following controls instead respectively: - `import * as FxPinner from "Fx/Pinner"`; - Fx/Controls/OptionsGroup but please keep in mind that OptionsGroup as a whole would be phased out at some point during alignment with Fluent UI APIs as the latter framework does not offer it. Instead, please consider redesigning your blade to use RadioButtons (Fx/Controls/RadioButtons). - Fx/Controls/DropDown - Fx/Controls/BaseResourceDropDown - `import { ClickableLink } from "Fx/Composition";` - Fx/Controls/InfoBox - Fx/Controls/Video **Reason For Breaking Change:** Newer controls have better accessibility support. |
10981484 | Add telemetry for CopyableLabel's onClick event |
10981484 | Add telemetry for CopyableLabel's onClick event No description available for this breaking change. |
10955536 | Include the Microsoft.IdentityModel.S2S as one of the external packages shipped with the Microsoft.Portal.Security.AadCore nuget package.
** Expected Errors: ** - You may see `Unable to find version '3.14.0' of package 'Microsoft.IdentityModel.S2S.Tokens'.` errors during the nuget package installation process. ** Solution: ** - For those using the newer PackageReference format, simply update the version of the Microsoft.Portal.Security.AadCore package to the newest version in your package reference. The build will generate the bin folder with all the dependencies automatically. - For those using the old packages.config format, update the version of the Microsoft.Portal.Security.AadCore package in the package.json file, and add the explicit reference to the assembly as follows to the CSPROJ: ``` <Reference include="Microsoft.IdentityModel.S2S"> <HintPath>$(PkgMicrosoft_Portal_Security_AadCore)\lib\net45\Microsoft.IdentityModel.S2S.dll</HintPath> </Reference> ``` ** Reason for breaking change: ** The Microsoft.Portal.AadCore assembly had a new dependency on the Microsoft.IdentityModel.S2S library as part of the work item below where this package inclusion was missed. Product Backlog Item 9702120: Adopt the SAL library for token validation |
9218700 | Add FileUpload React Control to Samples |
10591766 | Remove building Cloud Service package from Portal repo Support for cloud services has been removed, as usage of cloud services for Azure first-party services has been deprecated for some time. If an extension is still using the Portal SDK for C# code, and is building it as a web project (has a web.config) there might be a runtime break when the website loads into IIS. ** Expected Error ** Could not load type 'Microsoft.Portal.Framework.CloudSettingsReader' from assembly 'Microsoft.Portal.Azure' ** Solution ** Find the setting "MsPortalFx:SettingsReader" in the web.config, and remove the Microsoft.Portal.Framework.CloudSettingsReader class from that list. Example: BEFORE: <add key="MsPortalFx:SettingsReader" value="[ 'Microsoft.Portal.Framework.CloudSettingsReader, Microsoft.Portal.Azure', 'Microsoft.Portal.Framework.ConfigurationFileReader, Microsoft.Portal.Core']"/> AFTER: <add key="MsPortalFx:SettingsReader" value="['Microsoft.Portal.Framework.ConfigurationFileReader, Microsoft.Portal.Core']"/> |
10608752 | Make Fx Section and MsPortalFx SectionBase compatible "MsPortalFx.ViewModels.Forms.Base.Section" has been modified to make it compatible with "Fx/Controls/Section". To do this the extension from "MsPortalFx.ViewModels.FormElement" was removed along with the "_msPortalFxClearValidation" and "validate" properties. "_msPortalFxClearValidation" is internal to the portal and should not be breaking. However, "validate" is an older form of "triggerValidation". It should be uncommon to use "validate" and it can be replaced with "triggerValidation". This change is being make to allow "Fx/Controls/Section" to be used in older forms where the "sections" property requires the section to be compatible with "MsPortalFx.ViewModels.Forms.Base.Section". |
10539518 | Make actionmodifer a string No description available for this breaking change. |
10172907 | Make a smaller button for ClipboardButton |
9856493 | OBSOLETE: 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:
**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. |
9856310 | OBSOLETE: 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 |
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. |
10044366 | Deprecate 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. |