Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Deprecate UI1.0 #2536

Merged
merged 75 commits into from
Oct 25, 2021
Merged

Deprecate UI1.0 #2536

merged 75 commits into from
Oct 25, 2021

Conversation

GerardasB
Copy link
Contributor

This PR deprecates components from @itwin/appui-layout-react that are not intended to be used by applications and are considered to be an implementation detail of @itwin/appui-react package.
This PR also deprecates some of the UI1.0 related components/interfaces from @itwin/appui-react and @itwin/appui-layout-react packages in favor of UI2.0.

@GerardasB GerardasB requested a review from a team as a code owner October 19, 2021 17:21
@calebmshafer
Copy link
Member

@GerardasB is this target correct? I thought @NancyMcCallB had already merged the 3.0 deprecation?

@bsteinbk
Copy link
Contributor

@GerardasB is this target correct? I thought @NancyMcCallB had already merged the 3.0 deprecation?

@calebmshafer @NancyMcCallB asked Gerardas to go back through the ninezone stuff, since he is the most familiar with it, and deprecate everything that was UI 1.0 specific, so it could be removed in 4.0 update.

@calebmshafer
Copy link
Member

@bsteinbk ah okay, I thought the target branch ui/deprecation-for-3.0 was an older branch not a new one.

@@ -30,7 +30,7 @@ export function BackstageComposerActionItem({ item }: BackstageComposerActionIte
item.execute();
}, [manager, item]);
return (
<NZ_BackstageItem
<NZ_BackstageItem // eslint-disable-line deprecation/deprecation
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I did not realize we still used BackstageItem from NZ. So they are not 1.0 specific right?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's right, Backstage components are re-used in both UI versions.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should make it @internal but not deprecate in that case.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is @internal, I've only added @deprecated tag to add a comment that suggests a substitution.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

but I don't see anything we can use to replace NZ_BackstageItem and I missing something?

@GerardasB GerardasB merged commit f7cc411 into ui/deprecation-for-3.0 Oct 25, 2021
@GerardasB GerardasB deleted the deprecate-UI1.0 branch October 25, 2021 10:20
NancyMcCallB added a commit that referenced this pull request Nov 10, 2021
* DEprecat StableWidgetDef

* Deprecate UI1.0 (#2536)

* Deprecate AppButton in favor of BackstageAppButton.

* Internal NestedGroup.

* Internal BackArrow used in NestedGroup.

* Internal BackButton used in ModalFrontstage.

* Deprecate Backstage in favor of BackstageComposer.

* Deprecate BackstageItem in favor of CommandLaunchBackstageItem.

* Deprecate BackstageSeparator in favor of SeparatorBackstageItem.

* Internal BackTarget.

* Internal MergeTarget.

* Internal SplitterTarget.

* Internal Outline.

* Mark as internal instead of deprecation.

* Internal Cell.

* Internal Columns.

* Deprecate withContainIn HOC.

* Internal ExpandableButton.

* Internal NineZoneStagePanelManager.

* Internal NineZoneStagePanelsManager.

* Deprecate ToolbarWidgetDefBase (base class for deprecated NavigationWidgetDef and ToolWidgetDef).

* Deprecate ToolbarPanelAlignment.

* Internal NineZoneStagePanelPaneManager.

* Internal NineZoneManager.

* Deprecate Toast in favor of ToastMessage.

* Internal NineZoneNestedStagePanelsManager.

* Deprecate Direction and OrthogonalDirection in favor of components-react.

* Internal DisabledResizeHandles.

* Deprecate SafeAreaInsets.

* Internal ToolbarIcon.

* Internal ToolbarButton.

* Internal TabMode.

* Internal Tab.

* Internal TabGroup.

* Internal TabSeparator.

* Internal ResizeGrip.

* Deprecate WidgetContent.

* Internal ToolsArea.

* Internal NavigationArea.

* Internal Stacked.

* Deprecate HorizontalAnchor.

* Internal Tools.

* Internal GroupTool.

* Internal GroupToolExpander.

* Deprecate toolbar group components.

* Deprecate ExpandableItem.

* Internal withDragInteraction.

* Internal Items.

* Internal ToolbarItem.

* Internal UserProfile.

* Internal Footer.

* Internal ToolAssistance.

* Internal SnapMode.

* Internal MessageCenter.

* Internal footer message components.

* Internal TitleBarButton.

* Deprecate Tooltip.

* Internal StagePanels.

* Deprecate Toolbar in favor of ToolbarComposer.

* Remove unused NestedToolSettings.

* Remove unused ToolSettingsPopup.

* Remove unused ScrollableToolSettings.

* Internal ToolSettings.

* Internal Zones component.

* Fix barrel imports.

* Disable deprecation lint rule.

* Do not deprecate SafeAreaInsets.

* eslint disable deprecations.

* Deprecate WidgetChangeHandler.

* Deprecate FrontstageComposer.

* Deprecate TargetChangeHandler.

* Fix linter errors.

* Remove deprecation from BackstageItem.

* Internal BackstageComposerItem.

* Remove deprecation from BackstageSeparator.

* Remove deprecation from Backstage.

* Deprecate CommandLaunchBackstageItem, FrontstageLaunchBackstageItem, SeparatorBackstageItem.

* Rename directories in preparation for merge from master

* Rename appui SaveView classes

* Lint errors

* Extract-api

* Extract-api

* Add Popup group for docs

* Rush change

* Remove deprecation from AppButton

* extract-api

* extract-api

Co-authored-by: GerardasB <[email protected]>
pmconne added a commit that referenced this pull request Nov 19, 2021
* Various code coverage.   Fix infinite loop in "out of graph" case in InsertAndRetriangulateContext" (#2639)

* Assorted coverage improvement.
Exposes an infinite loop in InsertAndRetriangulationContext
  when aiming at an exterior point.   This is now caught with a controlled
  return but does not clearly identify the case for the caller.
(Triangulation code which uses this has always been structured to avoid
  the bad case.)

* Add a member to HalfEdgePositionDetail so it can convey the
"outside" hit case.

* 3.0.0-dev.112

* update root mocharc to remove checking for lib/tests to clean up useless warnings (#2658)

add a mocharc in imodel-transformer for that, this should clean up a sea of useless warnings about missing tests

Co-authored-by: Arun George <[email protected]>

* Clean up skybox (#2661)

* core-common

* DisplayStyle3dSettings has an Environment member.

* ...

* Comment out stuff to get core-frontend compiling.

* Remove texture image provider.

* EnvironmentDecorations.

* Load skybox; image url is just a string.

* Image from URL; cache sky cube textures.

* Hook up decorations; move EnvironmentDecorations to separate file.

* adjust frontend-devtools.

* adjust backend

* wheee...

* WIP EnvironmentEditor is bad.

* fix.

* adjust tests.

* docs.

* fix core-common tests.

* detachFromViewport must call super.

* adjust core-full-stack-tests.

* extract-api

* lint

* NextVersion.md

* fix md table layout

* fix md table layout

* remove empty test file

* extract-api...

* fix doc links.

* merge cleanup.

* Revert "remove empty test file"

This reverts commit b6e19cb.

* WIP tests.

* tests

* tests.

* Finish tests.

* lint, api

* keyins for setting sky sphere/cube.

* extract-api

* document constraints on sky cube images.

* clean up types used to create graphics from skybox.

* Relocate OIDC sign in tool (#2542)

* Move oidc sign in tool to auth-clients

* Adjust VirtualizedPropertyGrid category header height (#2664)

* Add to the glossary a definition for reality data (#2663)

* Clean up build-tools package (#2546)

* Clean up build-tools package of rush scripts

* Remove non-null assertions from imodeljs-backend (#2642)

* Remove non-null assertions from core/backend.

* Replace exceptions with eslint-disable-lines and assertions where appropriate. Remove braces for single-line statements.

* Remove asserts in favor of expectCurrentActivity.

* 3.0.0-dev.113

* Fix terrain skirt height to match earlier versions (#2633)

* Pass next level for skirt calculation to reproduce previous result

* change

Co-authored-by: Ray.Bentley <[email protected]>

* Typedoc version bump (#2670)

* Support for Typedoc v.022.x

* Rush update

* Fix various broken docs links

* Rush change

* Update renderer string for buggy Intel chips (#2673)

* Fix styling of disabled Number and QuantityNumber components (#2667)

* Update disabled styling for NumberInput and QuantityNumberInput

* rush change

* Update ViewportComponent to function component that properly processes async method (#2668)

* Update to call viewportRef before calling viewManager.addViewport.

* Update to match imodel prop processing of original class component.

* Must clone viewstate to avoid trying to use same viewstate in different viewports.

* rush change

* 3.0.0-dev.114

* Refactor the CloudStorageService setup to be more extensible  (#2486)

* Refactor CloudStorageService setup to be more extensible

* API changes and changelog

* Unit tests

* api

* Unit test for cleanup

* Cleanup unit tests

* Upgrade instructions

* Fix tests

* Use links in NextVersion

* Fix styling of number editor to properly fit into toolsettings (#2679)

* Fix sizing of number editor and fix popup display z-order issue due to setting appendTo prop.

* rush change

* Clean up deprecation and public tags for 3.0 (#2671)

* DEprecat StableWidgetDef

* Deprecate UI1.0 (#2536)

* Deprecate AppButton in favor of BackstageAppButton.

* Internal NestedGroup.

* Internal BackArrow used in NestedGroup.

* Internal BackButton used in ModalFrontstage.

* Deprecate Backstage in favor of BackstageComposer.

* Deprecate BackstageItem in favor of CommandLaunchBackstageItem.

* Deprecate BackstageSeparator in favor of SeparatorBackstageItem.

* Internal BackTarget.

* Internal MergeTarget.

* Internal SplitterTarget.

* Internal Outline.

* Mark as internal instead of deprecation.

* Internal Cell.

* Internal Columns.

* Deprecate withContainIn HOC.

* Internal ExpandableButton.

* Internal NineZoneStagePanelManager.

* Internal NineZoneStagePanelsManager.

* Deprecate ToolbarWidgetDefBase (base class for deprecated NavigationWidgetDef and ToolWidgetDef).

* Deprecate ToolbarPanelAlignment.

* Internal NineZoneStagePanelPaneManager.

* Internal NineZoneManager.

* Deprecate Toast in favor of ToastMessage.

* Internal NineZoneNestedStagePanelsManager.

* Deprecate Direction and OrthogonalDirection in favor of components-react.

* Internal DisabledResizeHandles.

* Deprecate SafeAreaInsets.

* Internal ToolbarIcon.

* Internal ToolbarButton.

* Internal TabMode.

* Internal Tab.

* Internal TabGroup.

* Internal TabSeparator.

* Internal ResizeGrip.

* Deprecate WidgetContent.

* Internal ToolsArea.

* Internal NavigationArea.

* Internal Stacked.

* Deprecate HorizontalAnchor.

* Internal Tools.

* Internal GroupTool.

* Internal GroupToolExpander.

* Deprecate toolbar group components.

* Deprecate ExpandableItem.

* Internal withDragInteraction.

* Internal Items.

* Internal ToolbarItem.

* Internal UserProfile.

* Internal Footer.

* Internal ToolAssistance.

* Internal SnapMode.

* Internal MessageCenter.

* Internal footer message components.

* Internal TitleBarButton.

* Deprecate Tooltip.

* Internal StagePanels.

* Deprecate Toolbar in favor of ToolbarComposer.

* Remove unused NestedToolSettings.

* Remove unused ToolSettingsPopup.

* Remove unused ScrollableToolSettings.

* Internal ToolSettings.

* Internal Zones component.

* Fix barrel imports.

* Disable deprecation lint rule.

* Do not deprecate SafeAreaInsets.

* eslint disable deprecations.

* Deprecate WidgetChangeHandler.

* Deprecate FrontstageComposer.

* Deprecate TargetChangeHandler.

* Fix linter errors.

* Remove deprecation from BackstageItem.

* Internal BackstageComposerItem.

* Remove deprecation from BackstageSeparator.

* Remove deprecation from Backstage.

* Deprecate CommandLaunchBackstageItem, FrontstageLaunchBackstageItem, SeparatorBackstageItem.

* Rename directories in preparation for merge from master

* Rename appui SaveView classes

* Lint errors

* Extract-api

* Extract-api

* Add Popup group for docs

* Rush change

* Remove deprecation from AppButton

* extract-api

* extract-api

Co-authored-by: GerardasB <[email protected]>

* Initial support for cloud workspace containers (#2656)

* wip

* add workspace member to IModelDb

* extract-api

* doc error

* doc error

* allow organization and iTwin settings in appSettings for ipc hosts

* cruft

* wip

* wip

* wip

* allow WorkspaceFiles to be closed without dropping from Workspace

* wip

* rename WorkspaceContainerVersion

* extract-api

* doc link error

* wip

* wip

* don't use daemon for test

* use dbAlias rather than versionName

* extract-api

* use IModelError for cancelled

* Make copy-config script agnostic to imodeljs repo directory name. (#2680)

* Make `IModelDb.embedFont` @internal (#2682)

* make IModelDb.embedFont internal

* rush change

* Support multi-select of sub-entities. (#2683)

* map-layers widget: Use QuantityNumericInput for 'Elevation Offset' and 'Model Height' fields instead of hardcoded units. (#2666)

* WIP - adding quantity value input/numeric control

* basic functionality in place

* Rename control and add new unit test to quantity package.

* Add unit test for QuantityNumberInput component

* extract-api and rush change

* rush update

* Update documentation and add entry in NextVersion.md

* WIP

* Fixed tests and code cleanup

* Added changelog

* Removed unwanted changes

* Fixed typo.

Co-authored-by: bsteinbk <[email protected]>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* 3.0.0-dev.115

* Use iTwin reality-data-client (#2655)

* use new realitydata client where possible
* added allowed categories for @itwin/reality-data-client

Co-authored-by: marc-andre.cote <[email protected]>

* Fix crash when opening stage with very slow content control (#2685)

* Don't emit any state change messages unit frontstageDef isReady after all controls report back as ready.

* Defer setting Ninezone in fronstageDef until 'isReady' is set.

* rush change and extract-api

* Updarte api csv files (#2687)

* Remove duplicate files created by bad merge. (#2688)

* Improve tree-shaking in core-geometry. (#2686)

* Improve tree-shaking in core-geometry.

* Move interpolatePointAndTangent to Ray3d.

* Fix comment.

* 3.0.0-dev.116

* Fix sky cube rendering (#2697)

* Sky cube primitive buffers must be bound when attempting to draw a sky cube.

* rush change

* Add tests which verify that skies render properly.

* Forget to add SkyRender.test.ts.

* Geocoord status doc (#2694)

* GeoCoordStatus documentation only

* Extract API

* rush change

* Minor doc change

* View independent transparency override (#2692)

* FeatureAppearance.viewDependenTransparency.

* test

* test

* OvrFlags.ViewIndependentTransparency

* Update shader.

* It's working.

* docs

* fix point cloud shaders.

* Make it work in HiddenLine mode.

* extract-api

* tests.

* Update view-independent-transparency-override_2021-11-12-15-20.json

trivial change to trigger build

* 3.0.0-dev.117

* 3.0.0-dev.118

* 3.0.0-dev.119

* Add User preferences API to replace settings service (#2291)

This PR makes 4 main changes;

- Drops the Product Settings Service client
- Remove the IModelApp.setting API in favor of a new IModelApp.userPreferences API that is more focused directly on the user configurability of an application versus conflating both user preferences and shared configuration.
- Remove, or update, the various wrappers in place within the Presentation and AppUI code.
- Move the MapLayersSettingsService implementation out of frontend into the Map Layers Extension along with the "sharedSetting" functionality

The overall strategy moving forward for the concept we called "Settings" before 3.0 is, make a clear distinction between what is within control of the user of the application (i.e. their own preferences) and what is within the control of the admin of an iTwin/iModel (i.e. workspace configuration).

The goal of the UserPreferences API is to make it easily adaptable by any backing implementation. The easiest of which would be to use localStorage for caching of those preferences locally as the API is modeled after the web standard Storage API.

This switch of focus did break the existing Map Layers functionality as at a core level we do not yet have a iTwin config system that can be leveraged. For this reason (and I think it's better separation), I moved the MapLayersSettingService class to the Map Layer Extension and users of the Extension will need to configure an implementation of the interface.

* Merge feature overrides (#2706)

* remove old changelogs (#2708)

* Fix minor typo in NextVersion.md (#2709)

* add env file reading support to imodel-transformer test-app  (#2684)

* add no login on fully offline cli args, and login default oidc vars which were removed

* support copy-config in imodel-transformer test-app

* update lockfile after adding dotenv dep, fix .env path

* allow requiresLogin to be undefined, and use type assertion in conditionals that satisfy requiresLogin

* add newline to end of template cfg file

* add notes in usage and readme about need for .env to use online connection arguments

* add dotenv expand in case people's env files rely on that

* replace all nonnull-assertions with casts in Main.ts

* remove need for undefined access token state, by lazily fetching it in any conditionals where it is required

* don't throw an error on no .env file since that is valid for offline iModels transforming

* add an assert earlier if online use isn't configured correctly, for a more direct error message

* IModelHubUtils.getAccessToken already caches so removing redundant lazy cache and directly getting the token

* replace IModelHubUtils sign in logic with more direct usage of existing host auth logic

* don't startup native host, since it leaves an unnecessary IpcHost error and we weren't using it before anyway

* don't rerun sign in post host initialization

* rename getAccessToken to acquireAccessToken to indicate that it is not the same as getAccessToken from a backend auth client

Co-authored-by: Michael Belousov <[email protected]>

* 3.0.0-dev.120

* Skip full schema load for checking a schema custom attribute (#2713)

* do not load full schema to check for ca

* changes

* lint

Co-authored-by: Affan Khan <[email protected]>
Co-authored-by: Paul Connelly <[email protected]>

* Rename ui-test-extension to ui-items-providers-test (#2701)

* rename ui-test-extension to ui-items-providers-test

* Update so GeneralUiItemsProvider only uses abstract definitions.

* allowing overflow on floating widgets will break auto sizing.

* Only do isReady checking in FrontstageDef not in components as it messes up widget panels.

* Adding comments and renaming to be more generic.

* add new sample content control

* rush change

* fix lint errors

* Dynamics should honor appearance overrides appliled to original element. Added blend tools. (#2717)

* Deactivated 2 tests that were based on wrong behavior and added a new… (#2711)

* Deactivated 2 tests that were based on wrong behavior and added a new correct one.

* rush change

* 3.0.0-dev.121

* Fix link to discussion forums (#2723)

* Fix warning during appui-react unit test (#2728)

* Fix error 'setting state on unmounted frontstage' seen during unit test.

* Explicitly mark onRestartTool as async (#2724)

* UI: Fix PropertyGrid unit test producing a warning (#2732)

* Presentation: Remove ModelsTreeProps.enablePreloading flag (#2734)

* Remove deprecation for Zone and ZoneProps (#2733)

* Undeprecate necessary UI 1.0 classes/interfaces

* rush change

* Clean up ui/learning docs (#2702)

* WIP

* WIP

* WIP

* Provide specifics about defining a stage.

* Framework updates

* More doc cleanup & fix broken links

* rush change

* Errors

* More errors

* update augment section

* Add missing example.

* fix punctuation

* Minor cleanup

Co-authored-by: bsteinbk <[email protected]>

* 3.0.0-dev.122

* Fixing default config file for firefox on mac (#2736)

* Fixes to iModelJSLogoCard (#2737)

* Protect logo card styling and make sure the about
box works properly in pop-out viewports.

* Rush change

* Filter out duplicates from UiItemsProviders (#2738)

* Don't allow duplicate backstage items

* Filter duplicate statusbar items

* Fix getItemDefForTool to pass arguments to run method.

* Add test to verify duplicate  widget are filtered out.

* extract api

* rush change

* Replace cpx dependency with cpx2 (#2714)

* replace cpx with cpx2

* drop unneeded dependencies

Co-authored-by: Caleb Shafer <[email protected]>

* Update to relative links (#2739)

* 3.0.0-dev.123

* Allow user to remove stage launcher entry from backstage if only one stage is available. (#2742)

* Add requested ability to hide stage entry in backstage if only one stage is available.

* Add requested ability to hide stage entry in backstage if only one stage is available.

* rush change

* Fix for KOQ comparison failure (#2715)

* fix for KOQ comparison failure

* change log

* @bentley/imodeljs-native 3.0.18

* Migrated from Toggle to ToggleSwitch component in map-layers widget (#2721)

* WIP

* Fixed issue with viewport mock.

* Added changelog

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* Export CategoryVisibilityHandler for tree-widget-react (#2725)

Co-authored-by: Arun George <[email protected]>

* downlodv2checkpoint -> clouddbtransfer

* New definition of TreeFlags cannot be seen by addon until addon is integrated - work around with `any` until then.

* extract-api

* lint

Co-authored-by: EarlinLutz <[email protected]>
Co-authored-by: imodeljs-admin <[email protected]>
Co-authored-by: Arun George <[email protected]>
Co-authored-by: Arun George <[email protected]>
Co-authored-by: Patrick Bell <[email protected]>
Co-authored-by: Robert Lukasonok <[email protected]>
Co-authored-by: EricPaquetB <[email protected]>
Co-authored-by: Caleb Shafer <[email protected]>
Co-authored-by: Daniel Toby <[email protected]>
Co-authored-by: RBBentley <[email protected]>
Co-authored-by: Ray.Bentley <[email protected]>
Co-authored-by: williamkbentley <[email protected]>
Co-authored-by: Bill Steinbock <[email protected]>
Co-authored-by: DovileVirbalaite <[email protected]>
Co-authored-by: NancyMcCallB <[email protected]>
Co-authored-by: GerardasB <[email protected]>
Co-authored-by: kabentley <[email protected]>
Co-authored-by: bbastings <[email protected]>
Co-authored-by: Michel D'Astous <[email protected]>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Co-authored-by: mcote01 <[email protected]>
Co-authored-by: marc-andre.cote <[email protected]>
Co-authored-by: Bill Goehrig <[email protected]>
Co-authored-by: markschlosseratbentley <47000437+markschlosseratbentley@users.noreply.github.com>
Co-authored-by: AlainRobertAtBentley <[email protected]>
Co-authored-by: Michael Belousov <[email protected]>
Co-authored-by: Michael Belousov <[email protected]>
Co-authored-by: affank <[email protected]>
Co-authored-by: Affan Khan <[email protected]>
Co-authored-by: mgooding <[email protected]>
Co-authored-by: Saulius Skliutas <[email protected]>
Co-authored-by: DStradley <[email protected]>
Co-authored-by: Seamus Kirby <[email protected]>
Co-authored-by: christophermlawson <[email protected]>
Co-authored-by: nick.tessier <[email protected]>
Co-authored-by: karolisab <[email protected]>
Co-authored-by: Grigas <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants